summaryrefslogtreecommitdiff
path: root/arm9
diff options
context:
space:
mode:
Diffstat (limited to 'arm9')
-rw-r--r--arm9/Makefile175
-rw-r--r--arm9/arm9.lcf84
-rw-r--r--arm9/asm/CARD_arm9.s1782
-rw-r--r--arm9/asm/CP_arm9.s42
-rw-r--r--arm9/asm/CTRDG_arm9.s3238
-rw-r--r--arm9/asm/DGT_arm9.s1017
-rw-r--r--arm9/asm/FS_arm9.s3011
-rw-r--r--arm9/asm/GX_arm9.s5256
-rw-r--r--arm9/asm/MATH_arm9.s320
-rw-r--r--arm9/asm/MI_arm9.s1082
-rw-r--r--arm9/asm/OS_arm9.s4759
-rw-r--r--arm9/asm/PM_arm9.s1125
-rw-r--r--arm9/asm/PXI_arm9.s266
-rw-r--r--arm9/asm/RTC_arm9.s1028
-rw-r--r--arm9/asm/SDK_AUTOLOAD_LIST.s21
-rw-r--r--arm9/asm/SND_arm9.s1655
-rw-r--r--arm9/asm/SPI_arm9.s1487
-rw-r--r--arm9/asm/STD_arm9.s17117
-rw-r--r--arm9/asm/WM_arm9.s3744
-rw-r--r--arm9/asm/arm9_itcm.s505
-rw-r--r--arm9/asm/arm9overlay.s5
-rw-r--r--arm9/asm/crt0.s283
-rw-r--r--arm9/asm/filesystem.s648
-rw-r--r--arm9/asm/macros.inc1
-rw-r--r--arm9/asm/macros/function.inc24
-rw-r--r--arm9/asm/rom2.s7
-rw-r--r--arm9/asm/rom2_2.s734
-rw-r--r--arm9/asm/scrcmd.s24605
-rw-r--r--arm9/asm/secure.s29
-rw-r--r--arm9/asm/unk_02000E0C.s2758
-rw-r--r--arm9/asm/unk_020023C0.s8340
-rw-r--r--arm9/asm/unk_02006864.s109321
-rw-r--r--arm9/asm/unk_02038C78.s1744
-rw-r--r--arm9/asm/unk_02046030.s142185
-rw-r--r--arm9/asm/unk_0208AC14.s42449
-rw-r--r--arm9/asm/unk_020AF030.s26835
-rw-r--r--arm9/asm/unk_10b724.s4
-rw-r--r--arm9/global.inc3521
-rw-r--r--arm9/src/FUN_02000DF4.c12
-rw-r--r--arm9/src/main.c110
-rw-r--r--arm9/src/script.c163
-rw-r--r--arm9/src/string_util.c153
-rw-r--r--arm9/undefined_syms.txt506
43 files changed, 412151 insertions, 0 deletions
diff --git a/arm9/Makefile b/arm9/Makefile
new file mode 100644
index 00000000..d97cfb95
--- /dev/null
+++ b/arm9/Makefile
@@ -0,0 +1,175 @@
+# Makefile to build Pokemon Diamond image
+
+.PHONY: clean tidy all default patch_mwasmarm
+
+# Try to include devkitarm if installed
+TOOLCHAIN := $(DEVKITARM)
+
+ifneq (,$(wildcard $(TOOLCHAIN)/base_tools))
+include $(TOOLCHAIN)/base_tools
+endif
+
+### Default target ###
+
+default: all
+
+# If you are using WSL, it is recommended you build with NOWINE=1.
+WSLENV ?= no
+ifeq ($(WSLENV),)
+NOWINE = 1
+else
+NOWINE = 0
+endif
+
+ifeq ($(OS),Windows_NT)
+EXE := .exe
+WINE :=
+else
+EXE :=
+WINE := wine
+endif
+
+ifeq ($(NOWINE),1)
+WINE :=
+endif
+
+################ Target Executable and Sources ###############
+
+BUILD_DIR := build
+
+TARGET := arm9
+
+ROM := $(BUILD_DIR)/$(TARGET).bin
+ELF := $(BUILD_DIR)/$(TARGET).elf
+LD_SCRIPT := arm9.lcf
+
+# Directories containing source files
+SRC_DIRS := src
+ASM_DIRS := asm data files
+
+C_FILES := $(foreach dir,$(SRC_DIRS),$(wildcard $(dir)/*.c))
+S_FILES := $(foreach dir,$(ASM_DIRS),$(wildcard $(dir)/*.s))
+
+# Object files
+O_FILES := $(foreach file,$(C_FILES),$(BUILD_DIR)/$(file:.c=.o)) \
+ $(foreach file,$(S_FILES),$(BUILD_DIR)/$(file:.s=.o)) \
+
+##################### Compiler Options #######################
+
+MWCCVERSION := 2.0/base
+TOOLS_DIR = ../tools
+
+CROSS := arm-none-eabi-
+
+MWCCARM := $(TOOLS_DIR)/mwccarm/$(MWCCVERSION)/mwccarm.exe
+# Argh... due to EABI version shenanigans, we can't use GNU LD to link together
+# MWCC built objects and GNU built ones. mwldarm, however, doesn't care, so we
+# have to use mwldarm for now.
+# TODO: Is there a hack workaround to let us go back to GNU LD? Ideally, the
+# only dependency should be MWCCARM.
+MWLDARM := $(TOOLS_DIR)/mwccarm/$(MWCCVERSION)/mwldarm.exe
+MWASMARM := $(TOOLS_DIR)/mwccarm/$(MWCCVERSION)/mwasmarm.exe
+
+AS := $(WINE) $(MWASMARM)
+CC := $(WINE) $(MWCCARM)
+CPP := cpp -P
+LD := $(WINE) $(MWLDARM)
+AR := $(CROSS)ar
+OBJDUMP := $(CROSS)objdump
+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 v5te -thumb -fp soft -lang c99 -Cpp_exceptions off -ir ../include
+LDFLAGS = -map -nodead -w off -proc v5te -interworking -map -symtab -m _start
+
+####################### Other Tools #########################
+
+# DS TOOLS
+SHA1SUM = sha1sum
+JSONPROC = $(TOOLS_DIR)/jsonproc/jsonproc
+GFX = $(TOOLS_DIR)/nitrogfx/nitrogfx
+MWASMARM_PATCHER = $(TOOLS_DIR)/mwasmarm_patcher/mwasmarm_patcher$(EXE)
+
+TOOLDIRS = $(filter-out $(TOOLS_DIR)/mwccarm,$(wildcard $(TOOLS_DIR)/*))
+TOOLBASE = $(TOOLDIRS:$(TOOLS_DIR)/%=%)
+TOOLS = $(foreach tool,$(TOOLBASE),$(TOOLS_DIR)/$(tool)/$(tool)$(EXE))
+
+######################### Targets ###########################
+
+infoshell = $(foreach line, $(shell $1 | sed "s/ /__SPACE__/g"), $(info $(subst __SPACE__, ,$(line))))
+
+# Build tools when building the rom
+# Disable dependency scanning for clean/tidy/tools
+ifeq (,$(filter-out all,$(MAKECMDGOALS)))
+$(call infoshell, $(MAKE) tools patch_mwasmarm)
+else
+NODEP := 1
+endif
+
+.PHONY: all clean mostlyclean tidy tools $(TOOLDIRS) patch_mwasmarm
+
+MAKEFLAGS += --no-print-directory
+
+all: $(ROM)
+ # @$(SHA1SUM) -c $(TARGET).sha1
+
+clean: mostlyclean
+ make -C $(TOOLS_DIR)/mwasmarm_patcher clean
+
+mostlyclean: tidy
+ find . \( -iname '*.1bpp' -o -iname '*.4bpp' -o -iname '*.8bpp' -o -iname '*.gbapal' -o -iname '*.lz' \) -exec $(RM) {} +
+
+tidy:
+ $(RM) -r $(BUILD_DIR)
+
+tools: $(TOOLDIRS)
+
+$(TOOLDIRS):
+ @$(MAKE) -C $@
+
+$(MWASMARM): patch_mwasmarm
+
+patch_mwasmarm:
+ $(MWASMARM_PATCHER) $(MWASMARM)
+
+ALL_DIRS := $(BUILD_DIR) $(addprefix $(BUILD_DIR)/,$(SRC_DIRS) $(ASM_DIRS))
+
+$(BUILD_DIR)/%.o: %.c
+ $(CC) -c $(CFLAGS) -o $@ $<
+
+$(BUILD_DIR)/%.o: %.s
+ $(AS) $(ASFLAGS) $< -o $@
+
+$(BUILD_DIR)/$(LD_SCRIPT): $(LD_SCRIPT) undefined_syms.txt
+ $(CPP) $(VERSION_CFLAGS) -MMD -MP -MT $@ -MF $@.d -I include/ -I . -DBUILD_DIR=$(BUILD_DIR) -o $@ $<
+
+$(ELF): $(O_FILES) $(BUILD_DIR)/$(LD_SCRIPT)
+ $(LD) $(LDFLAGS) $(BUILD_DIR)/$(LD_SCRIPT) -o $(ELF) $(O_FILES)
+
+$(ROM): $(ELF)
+ $(OBJCOPY) -O binary --gap-fill=0xFF $< $@
+
+# Make sure build directory exists before compiling anything
+DUMMY != mkdir -p $(ALL_DIRS)
+
+%.4bpp: %.png
+ $(GFX) $< $@
+
+%.gbapal: %.png
+ $(GFX) $< $@
+
+%.gbapal: %.pal
+ $(GFX) $< $@
+
+%.lz: %
+ $(GFX) $< $@
+
+%.png: ;
+%.pal: ;
+
+$(BUILD_DIR)/data/icon.o: graphics/icon.4bpp graphics/icon.gbapal
+
+### Debug Print ###
+
+print-% : ; $(info $* is a $(flavor $*) variable set to [$($*)]) @true
diff --git a/arm9/arm9.lcf b/arm9/arm9.lcf
new file mode 100644
index 00000000..c5f29baf
--- /dev/null
+++ b/arm9/arm9.lcf
@@ -0,0 +1,84 @@
+MEMORY {
+ .itcm (RWX) : ORIGIN=0x01FF8000, LENGTH=0
+ .text (RX) : ORIGIN=0x02000000, LENGTH=0
+ .data (R) : ORIGIN=0x20EC710, LENGTH=0
+ .autoload (R) : ORIGIN=0x02107700, LENGTH=0
+ .bss (RWX) : ORIGIN=0x02106FA0, LENGTH=0
+ .ewram (RWX) : ORIGIN=0x023E0000, LENGTH=0
+ .dtcm (RW) : ORIGIN=0x027E0000, LENGTH=0
+ .overlay (RX) : ORIGIN=0, LENGTH=0
+}
+
+SECTIONS {
+#include "undefined_syms.txt"
+ .text : AT (0x0) {
+ secure.o (.text)
+ crt0.o (.text)
+ main.o (.text)
+ FUN_02000DF4.o (.text)
+ unk_02000E0C.o (.text)
+ string_util.o (.text)
+ unk_020023C0.o (.text)
+ filesystem.o (.text)
+ unk_02006864.o (.text)
+ script.o (.text)
+ unk_02038C78.o (.text)
+ scrcmd.o (.text)
+ unk_02046030.o (.text)
+ unk_0208AC14.o (.text)
+ unk_020AF030.o (.text)
+ /* SDK */
+ GX_arm9.o (.text)
+ OS_arm9.o (.text)
+ MI_arm9.o (.text)
+ SND_arm9.o (.text)
+ PXI_arm9.o (.text)
+ FS_arm9.o (.text)
+ DGT_arm9.o (.text)
+ CP_arm9.o (.text)
+ SPI_arm9.o (.text)
+ PM_arm9.o (.text)
+ RTC_arm9.o (.text)
+ CARD_arm9.o (.text)
+ WM_arm9.o (.text)
+ CTRDG_arm9.o (.text)
+ MATH_arm9.o (.text)
+ STD_arm9.o (.text)
+ } > .text
+
+ .data : AT (0xEC710) {
+ rom2.o (.data)
+ string_util.o (.data)
+ rom2_2.o (.data)
+ } > .data
+
+ SDK_AUTOLOAD_START = .;
+ SDK_STATIC_BSS_START = .;
+ SDK_STATIC_BSS_END = . + 0xd0540;
+
+ .itcm : AT (0x106FA0)
+ {
+ SDK_AUTOLOAD_ITCM_START = .;
+ arm9_itcm.o (.itcm)
+ SDK_AUTOLOAD_ITCM_END = .;
+ . = 0x01FF8720;
+ SDK_SECTION_ARENA_ITCM_START = .;
+ } > .itcm
+
+ .autoload : AT (0x107700) {
+ SDK_AUTOLOAD_LIST.o (.data)
+ unk_10b724.o (.text)
+ } > .autoload
+
+ .overlay : AT (0x107800) {
+ arm9overlay.o (.text)
+ } > .overlay
+
+ .dtcm : AT (0x1076A0) {
+ SDK_AUTOLOAD_DTCM_START = .;
+ OS_arm9.o (.dtcm)
+ SDK_AUTOLOAD_DTCM_END = .;
+ SDK_SECTION_ARENA_DTCM_START = 0x027E0080;
+ } > .dtcm
+
+}
diff --git a/arm9/asm/CARD_arm9.s b/arm9/asm/CARD_arm9.s
new file mode 100644
index 00000000..664e85f5
--- /dev/null
+++ b/arm9/asm/CARD_arm9.s
@@ -0,0 +1,1782 @@
+ .include "asm/macros.inc"
+ .include "global.inc"
+
+ .text
+
+ arm_func_start CARD_UnlockBackup
+CARD_UnlockBackup: ; 0x020D66A0
+ ldr ip, _020D66AC ; =CARDi_UnlockResource
+ mov r1, #0x2
+ bx r12
+ .balign 4
+_020D66AC: .word CARDi_UnlockResource
+
+ arm_func_start CARD_LockBackup
+CARD_LockBackup: ; 0x020D66B0
+ ldr ip, _020D66BC ; =CARDi_LockResource
+ mov r1, #0x2
+ bx r12
+ .balign 4
+_020D66BC: .word CARDi_LockResource
+
+ arm_func_start CARD_UnlockRom
+CARD_UnlockRom: ; 0x020D66C0
+ stmdb sp!, {r4,lr}
+ mov r4, r0
+ bl OS_UnlockCard
+ mov r0, r4
+ mov r1, #0x1
+ bl CARDi_UnlockResource
+ ldmia sp!, {r4,lr}
+ bx lr
+
+ arm_func_start CARD_LockRom
+CARD_LockRom: ; 0x020D66E0
+ stmdb sp!, {r4,lr}
+ mov r4, r0
+ mov r1, #0x1
+ bl CARDi_LockResource
+ mov r0, r4
+ bl OS_TryLockCard
+ ldmia sp!, {r4,lr}
+ bx lr
+
+ arm_func_start CARD_GetResultCode
+CARD_GetResultCode: ; 0x020D6700
+ ldr r0, _020D6710 ; =0x021D55C0
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0x0]
+ bx lr
+ .balign 4
+_020D6710: .word 0x021D55C0
+
+ arm_func_start FUN_020D6714
+FUN_020D6714: ; 0x020D6714
+ ldr r0, _020D672C ; =0x021D55C0
+ ldr r0, [r0, #0x114]
+ ands r0, r0, #0x4
+ moveq r0, #0x1
+ movne r0, #0x0
+ bx lr
+ .balign 4
+_020D672C: .word 0x021D55C0
+
+ arm_func_start CARDi_WaitAsync
+CARDi_WaitAsync: ; 0x020D6730
+ stmdb sp!, {r4-r6,lr}
+ ldr r6, _020D6788 ; =0x021D55C0
+ bl OS_DisableInterrupts
+ ldr r1, [r6, #0x114]
+ mov r5, r0
+ ands r0, r1, #0x4
+ beq _020D6764
+ add r4, r6, #0x10c
+_020D6750:
+ mov r0, r4
+ bl OS_SleepThread
+ ldr r0, [r6, #0x114]
+ ands r0, r0, #0x4
+ bne _020D6750
+_020D6764:
+ mov r0, r5
+ bl OS_RestoreInterrupts
+_020D676C: ; 0x020D676C
+ ldr r0, [r6, #0x0]
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ moveq r0, #0x1
+ movne r0, #0x0
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+ .balign 4
+_020D6788: .word 0x021D55C0
+
+ arm_func_start CARD_Enable
+CARD_Enable: ; 0x020D678C
+ ldr r1, _020D6798 ; =0x021D555C
+ str r0, [r1, #0x0]
+ bx lr
+ .balign 4
+_020D6798: .word 0x021D555C
+
+ arm_func_start CARD_CheckEnabled
+CARD_CheckEnabled: ; 0x020D679C
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ bl CARD_IsEnabled
+_020D67A8: ; 0x020D67A8
+ cmp r0, #0x0
+ addne sp, sp, #0x4
+ ldmneia sp!, {lr}
+ bxne lr
+ bl OS_Terminate
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+
+ arm_func_start CARD_IsEnabled
+CARD_IsEnabled:
+ ldr r0, _020D67D4 ; =0x021D555C
+ ldr r0, [r0, #0x0]
+ bx lr
+ .balign 4
+_020D67D4: .word 0x021D555C
+
+ arm_func_start CARDi_InitCommon
+CARDi_InitCommon: ; 0x020D67D8
+ stmdb sp!, {r4,lr}
+ sub sp, sp, #0x8
+ ldr r4, _020D68B8 ; =0x021D55C0
+ ldr r1, _020D68BC ; =0x021D5560
+ mvn r2, #0x2
+ mov r0, #0x0
+ str r2, [r4, #0x8]
+ mov r2, #0x60
+ str r0, [r4, #0xc]
+ str r0, [r4, #0x18]
+ str r1, [r4, #0x0]
+ bl MIi_CpuClearFast
+ ldr r0, _020D68BC ; =0x021D5560
+ mov r1, #0x60
+ bl DC_FlushRange
+ ldr r0, _020D68C0 ; =0x027FFC40
+ ldrh r0, [r0, #0x0]
+ cmp r0, #0x2
+ beq _020D6834
+ ldr r0, _020D68C4 ; =0x027FFE00
+ ldr r1, _020D68C8 ; =0x027FFA80
+ mov r2, #0x160
+ bl MI_CpuCopy8
+_020D6834:
+ mov r2, #0x0
+ str r2, [r4, #0x14]
+ ldr r0, [r4, #0x14]
+ mov r1, #0x4
+ str r0, [r4, #0x10]
+ str r2, [r4, #0x110]
+ ldr r3, [r4, #0x110]
+ mov r0, #0x400
+ str r3, [r4, #0x10c]
+ str r1, [r4, #0x108]
+ str r0, [sp, #0x0]
+ ldr r12, [r4, #0x108]
+ ldr r1, _020D68CC ; =CARDi_TaskThread
+ ldr r3, _020D68D0 ; =0x021D5BE0
+ add r0, r4, #0x44
+ str r12, [sp, #0x4]
+ bl OS_CreateThread
+ add r0, r4, #0x44
+ bl OS_WakeupThreadDirect
+ ldr r1, _020D68D4 ; =CARDi_OnFifoRecv
+ mov r0, #0xb
+ bl PXI_SetFifoRecvCallback
+ ldr r0, _020D68C0 ; =0x027FFC40
+ ldrh r0, [r0, #0x0]
+ cmp r0, #0x2
+ addeq sp, sp, #0x8
+ ldmeqia sp!, {r4,lr}
+ bxeq lr
+ mov r0, #0x1
+ bl CARD_Enable
+ add sp, sp, #0x8
+ ldmia sp!, {r4,lr}
+ bx lr
+ .balign 4
+_020D68B8: .word 0x021D55C0
+_020D68BC: .word 0x021D5560
+_020D68C0: .word 0x027FFC40
+_020D68C4: .word 0x027FFE00
+_020D68C8: .word 0x027FFA80
+_020D68CC: .word CARDi_TaskThread
+_020D68D0: .word 0x021D5BE0
+_020D68D4: .word CARDi_OnFifoRecv
+
+ arm_func_start CARDi_UnlockResource
+CARDi_UnlockResource: ; 0x020D68D8
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0x4
+ ldr r5, _020D6978 ; =0x021D55C0
+ mov r7, r0
+ mov r6, r1
+ bl OS_DisableInterrupts
+ mov r1, r5
+ mov r4, r0
+ ldr r0, [r1, #0x8]
+ cmp r0, r7
+ bne _020D6910
+ ldr r0, [r5, #0xc]
+ cmp r0, #0x0
+ bne _020D6918
+_020D6910:
+ bl OS_Terminate
+ b _020D6958
+_020D6918:
+ ldr r0, [r5, #0x18]
+ cmp r0, r6
+ beq _020D6928
+ bl OS_Terminate
+_020D6928:
+ ldr r0, [r5, #0xc]
+ sub r0, r0, #0x1
+ str r0, [r5, #0xc]
+ ldr r0, [r5, #0xc]
+ cmp r0, #0x0
+ bne _020D6958
+ mvn r0, #0x2
+ str r0, [r5, #0x8]
+ mov r1, #0x0
+ add r0, r5, #0x10
+ str r1, [r5, #0x18]
+ bl OS_WakeupThread
+_020D6958:
+ ldr r1, [r5, #0x0]
+ mov r2, #0x0
+ mov r0, r4
+ str r2, [r1, #0x0]
+ bl OS_RestoreInterrupts
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r7,lr}
+ bx lr
+ .balign 4
+_020D6978: .word 0x021D55C0
+
+ arm_func_start CARDi_LockResource
+CARDi_LockResource: ; 0x020D697C
+ stmdb sp!, {r4-r9,lr}
+ sub sp, sp, #0x4
+ ldr r5, _020D6A14 ; =0x021D55C0
+ mov r7, r0
+ mov r6, r1
+ bl OS_DisableInterrupts
+ ldr r1, [r5, #0x8]
+ mov r4, r0
+ cmp r1, r7
+ bne _020D69B8
+ ldr r0, [r5, #0x18]
+ cmp r0, r6
+ beq _020D69E8
+ bl OS_Terminate
+ b _020D69E8
+_020D69B8:
+ ldr r0, [r5, #0x8]
+ mvn r8, #0x2
+ cmp r0, r8
+ beq _020D69E0
+ add r9, r5, #0x10
+_020D69CC:
+ mov r0, r9
+ bl OS_SleepThread
+ ldr r0, [r5, #0x8]
+ cmp r0, r8
+ bne _020D69CC
+_020D69E0:
+ str r7, [r5, #0x8]
+ str r6, [r5, #0x18]
+_020D69E8:
+ ldr r1, [r5, #0xc]
+ mov r0, r4
+ add r1, r1, #0x1
+ str r1, [r5, #0xc]
+ ldr r1, [r5, #0x0]
+ mov r2, #0x0
+ str r2, [r1, #0x0]
+ bl OS_RestoreInterrupts
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r9,lr}
+ bx lr
+ .balign 4
+_020D6A14: .word 0x021D55C0
+
+ arm_func_start CARDi_SetTask
+CARDi_SetTask: ; 0x020D6A18
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ ldr r4, _020D6A5C ; =0x021D55C0
+ mov r5, r0
+ ldr r1, [r4, #0x108]
+ add r0, r4, #0x44
+ bl OS_SetThreadPriority
+ add r0, r4, #0x44
+ str r0, [r4, #0x104]
+ str r5, [r4, #0x40]
+ ldr r1, [r4, #0x114]
+ orr r1, r1, #0x8
+ str r1, [r4, #0x114]
+ bl OS_WakeupThreadDirect
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,lr}
+ bx lr
+ .balign 4
+_020D6A5C: .word 0x021D55C0
+
+ arm_func_start FUN_020D6A60
+FUN_020D6A60: ; 0x020D6A60
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ ldr r1, _020D6D60 ; =0x021D55C0
+ mov r5, r0
+ ldr r4, [r1, #0x0]
+ mov r1, #0x0
+ add r0, r4, #0x18
+ mov r2, #0x48
+ bl MI_CpuFill8
+_020D6A84: ; 0x020D6A84
+ cmp r5, #0x0
+ str r5, [r4, #0x4]
+ mov r0, #0x3f
+ addeq sp, sp, #0x4
+ str r0, [r4, #0x4c]
+ ldmeqia sp!, {r4-r5,lr}
+ bxeq lr
+ mov r0, r5, asr #0x8
+ and r0, r0, #0xff
+ mov r2, #0x1
+ mov r3, r2, lsl r0
+ and r1, r5, #0xff
+ str r3, [r4, #0x18]
+ mov r0, #0xff
+ strb r0, [r4, #0x48]
+ cmp r1, #0x1
+ bne _020D6B80
+ cmp r3, #0x200
+ beq _020D6AE4
+ cmp r3, #0x2000
+ beq _020D6B04
+ cmp r3, #0x10000
+ beq _020D6B28
+ b _020D6D38
+_020D6AE4:
+ mov r0, #0x10
+ str r0, [r4, #0x20]
+ str r2, [r4, #0x24]
+ mov r0, #0x5
+ str r0, [r4, #0x28]
+ mov r0, #0xf0
+ strb r0, [r4, #0x48]
+ b _020D6B48
+_020D6B04:
+ mov r0, #0x20
+ str r0, [r4, #0x20]
+ mov r0, #0x2
+ str r0, [r4, #0x24]
+ mov r0, #0x5
+ str r0, [r4, #0x28]
+ mov r0, #0x0
+ strb r0, [r4, #0x48]
+ b _020D6B48
+_020D6B28:
+ mov r0, #0x80
+ str r0, [r4, #0x20]
+ mov r0, #0x2
+ str r0, [r4, #0x24]
+ mov r0, #0xa
+ str r0, [r4, #0x28]
+ mov r0, #0x0
+ strb r0, [r4, #0x48]
+_020D6B48:
+ ldr r0, [r4, #0x20]
+ add sp, sp, #0x4
+ str r0, [r4, #0x1c]
+ ldr r0, [r4, #0x4c]
+ orr r0, r0, #0x40
+ str r0, [r4, #0x4c]
+ ldr r0, [r4, #0x4c]
+ orr r0, r0, #0x100
+ str r0, [r4, #0x4c]
+ ldr r0, [r4, #0x4c]
+ orr r0, r0, #0x200
+ str r0, [r4, #0x4c]
+ ldmia sp!, {r4-r5,lr}
+ bx lr
+_020D6B80:
+ cmp r1, #0x2
+ bne _020D6CD8
+ cmp r3, #0x100000
+ bhi _020D6BB8
+ cmp r3, #0x100000
+ bhs _020D6BD8
+ cmp r3, #0x40000
+ bhi _020D6BAC
+ cmp r3, #0x40000
+ beq _020D6BD8
+ b _020D6D38
+_020D6BAC:
+ cmp r3, #0x80000
+ beq _020D6BD8
+ b _020D6D38
+_020D6BB8:
+ cmp r3, #0x200000
+ bhi _020D6BCC
+ cmp r3, #0x200000
+ beq _020D6C10
+ b _020D6D38
+_020D6BCC:
+ cmp r3, #0x800000
+ beq _020D6C48
+ b _020D6D38
+_020D6BD8:
+ mov r0, #0x19
+ str r0, [r4, #0x2c]
+ mov r1, #0x12c
+ str r1, [r4, #0x30]
+ ldr r0, _020D6D64 ; =0x00001388
+ str r1, [r4, #0x44]
+ str r0, [r4, #0x3c]
+ ldr r0, [r4, #0x4c]
+ orr r0, r0, #0x80
+ str r0, [r4, #0x4c]
+ ldr r0, [r4, #0x4c]
+ orr r0, r0, #0x400
+ str r0, [r4, #0x4c]
+ b _020D6C7C
+_020D6C10:
+ mov r1, #0x3e8
+ ldr r0, _020D6D68 ; =0x00000BB8
+ str r1, [r4, #0x3c]
+ ldr r1, _020D6D6C ; =0x00004268
+ str r0, [r4, #0x40]
+ ldr r0, _020D6D70 ; =0x00009C40
+ str r1, [r4, #0x34]
+ str r0, [r4, #0x38]
+ mov r0, #0x0
+ strb r0, [r4, #0x48]
+ ldr r0, [r4, #0x4c]
+ orr r0, r0, #0x1000
+ str r0, [r4, #0x4c]
+ b _020D6C7C
+_020D6C48:
+ mov r1, #0x3e8
+ ldr r0, _020D6D68 ; =0x00000BB8
+ str r1, [r4, #0x3c]
+ ldr r1, _020D6D74 ; =0x000109A0
+ str r0, [r4, #0x40]
+ ldr r0, _020D6D78 ; =0x00027100
+ str r1, [r4, #0x34]
+ str r0, [r4, #0x38]
+ mov r0, #0x0
+ strb r0, [r4, #0x48]
+ ldr r0, [r4, #0x4c]
+ orr r0, r0, #0x1000
+ str r0, [r4, #0x4c]
+_020D6C7C:
+ mov r0, #0x10000
+ str r0, [r4, #0x1c]
+ mov r0, #0x100
+ str r0, [r4, #0x20]
+ mov r0, #0x3
+ str r0, [r4, #0x24]
+ mov r0, #0x5
+ str r0, [r4, #0x28]
+ ldr r0, [r4, #0x4c]
+ add sp, sp, #0x4
+ orr r0, r0, #0x40
+ str r0, [r4, #0x4c]
+ ldr r0, [r4, #0x4c]
+ orr r0, r0, #0x100
+ str r0, [r4, #0x4c]
+ ldr r0, [r4, #0x4c]
+ orr r0, r0, #0x200
+ str r0, [r4, #0x4c]
+ ldr r0, [r4, #0x4c]
+ orr r0, r0, #0x800
+ str r0, [r4, #0x4c]
+ ldmia sp!, {r4-r5,lr}
+ bx lr
+_020D6CD8:
+ cmp r1, #0x3
+ bne _020D6D38
+ cmp r3, #0x2000
+ beq _020D6CF0
+ cmp r3, #0x8000
+ bne _020D6D38
+_020D6CF0:
+ str r3, [r4, #0x20]
+ str r3, [r4, #0x1c]
+ mov r0, #0x2
+ str r0, [r4, #0x24]
+ mov r0, #0x0
+ strb r0, [r4, #0x48]
+ ldr r0, [r4, #0x4c]
+ add sp, sp, #0x4
+ orr r0, r0, #0x40
+ str r0, [r4, #0x4c]
+ ldr r0, [r4, #0x4c]
+ orr r0, r0, #0x100
+ str r0, [r4, #0x4c]
+ ldr r0, [r4, #0x4c]
+ orr r0, r0, #0x200
+ str r0, [r4, #0x4c]
+ ldmia sp!, {r4-r5,lr}
+ bx lr
+_020D6D38:
+ mov r1, #0x0
+ str r1, [r4, #0x4]
+ str r1, [r4, #0x18]
+ ldr r0, _020D6D60 ; =0x021D55C0
+ mov r1, #0x3
+ ldr r0, [r0, #0x0]
+ str r1, [r0, #0x0]
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,lr}
+ bx lr
+ .balign 4
+_020D6D60: .word 0x021D55C0
+_020D6D64: .word 0x00001388
+_020D6D68: .word 0x00000BB8
+_020D6D6C: .word 0x00004268
+_020D6D70: .word 0x00009C40
+_020D6D74: .word 0x000109A0
+_020D6D78: .word 0x00027100
+
+ arm_func_start CARD_CancelBackupAsync
+CARD_CancelBackupAsync: ; 0x020D6D7C
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ bl OS_DisableInterrupts
+ ldr r1, _020D6DA8 ; =0x021D55C0
+ ldr r2, [r1, #0x114]
+ orr r2, r2, #0x40
+ str r2, [r1, #0x114]
+ bl OS_RestoreInterrupts
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+ .balign 4
+_020D6DA8: .word 0x021D55C0
+
+ arm_func_start CARD_TryWaitBackupAsync
+CARD_TryWaitBackupAsync: ; 0x020D6DAC
+ ldr ip, _020D6DB4 ; =FUN_020D6714
+ bx r12
+ .balign 4
+_020D6DB4: .word FUN_020D6714
+
+ arm_func_start CARD_WaitBackupAsync
+CARD_WaitBackupAsync: ; 0x020D6DB8
+ ldr ip, _020D6DC0 ; =CARDi_WaitAsync
+ bx r12
+ .balign 4
+_020D6DC0: .word CARDi_WaitAsync
+
+ arm_func_start CARD_IdentifyBackup
+CARD_IdentifyBackup: ; 0x020D6DC4
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0x4
+ mov r5, r0
+ ldr r0, _020D6F00 ; =0x02000C3C
+ ldr r7, _020D6F04 ; =0x021D55C0
+ bl OSi_ReferSymbol
+_020D6DDC: ; 0x020D6DDC
+ cmp r5, #0x0
+ bne _020D6DE8
+ bl OS_Terminate
+_020D6DE8:
+ bl CARD_CheckEnabled
+ bl OS_DisableInterrupts
+ ldr r1, [r7, #0x114]
+ mov r4, r0
+ ands r0, r1, #0x4
+ beq _020D6E18
+ add r6, r7, #0x10c
+_020D6E04:
+ mov r0, r6
+ bl OS_SleepThread
+ ldr r0, [r7, #0x114]
+ ands r0, r0, #0x4
+ bne _020D6E04
+_020D6E18:
+ ldr r0, [r7, #0x114]
+ mov r1, #0x0
+ orr r0, r0, #0x4
+ str r0, [r7, #0x114]
+ str r1, [r7, #0x38]
+ mov r0, r4
+ str r1, [r7, #0x3c]
+ bl OS_RestoreInterrupts
+ mov r0, r5
+ bl FUN_020D6A60
+ ldr r0, _020D6F08 ; =0x021D3498
+ ldr r1, _020D6F04 ; =0x021D55C0
+ ldr r2, [r0, #0x4]
+ mov r0, r7
+ str r2, [r1, #0x104]
+ mov r1, #0x2
+ mov r2, #0x1
+ bl CARDi_Request
+_020D6E60: ; 0x020D6E60
+ ldr r0, [r7, #0x0]
+ mov r1, #0x0
+ str r1, [r0, #0xc]
+ ldr r0, [r7, #0x0]
+ add r1, r7, #0x120
+ str r1, [r0, #0x10]
+ ldr r1, [r7, #0x0]
+ mov r2, #0x1
+ mov r0, r7
+ str r2, [r1, #0x14]
+ mov r1, #0x6
+ bl CARDi_Request
+ ldr r6, [r7, #0x38]
+ ldr r5, [r7, #0x3c]
+ bl OS_DisableInterrupts
+ mov r4, r0
+ ldr r1, [r7, #0x114]
+ add r0, r7, #0x10c
+ bic r1, r1, #0x4c
+ str r1, [r7, #0x114]
+ bl OS_WakeupThread
+ ldr r0, [r7, #0x114]
+ ands r0, r0, #0x10
+ beq _020D6EC8
+ add r0, r7, #0x44
+ bl OS_WakeupThreadDirect
+_020D6EC8:
+ mov r0, r4
+ bl OS_RestoreInterrupts
+_020D6ED0: ; 0x020D6ED0
+ cmp r6, #0x0
+ beq _020D6EE0
+ mov r0, r5
+ blx r6
+_020D6EE0:
+ ldr r0, [r7, #0x0]
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ moveq r0, #0x1
+ movne r0, #0x0
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r7,lr}
+ bx lr
+ .balign 4
+_020D6F00: .word 0x02000C3C
+_020D6F04: .word 0x021D55C0
+_020D6F08: .word 0x021D3498
+
+ arm_func_start CARD_GetBackupSectorSize
+CARD_GetBackupSectorSize: ; 0x020D6F0C
+ ldr r0, _020D6F1C ; =0x021D55C0
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0x1c]
+ bx lr
+ .balign 4
+_020D6F1C: .word 0x021D55C0
+
+ arm_func_start CARDi_RequestStreamCommand
+CARDi_RequestStreamCommand: ; 0x020D6F20
+ stmdb sp!, {r4-r10,lr}
+ mov r10, r0
+ ldr r6, _020D7004 ; =0x021D55C0
+ ldr r0, _020D7008 ; =0x02000C3C
+ mov r9, r1
+ mov r8, r2
+ mov r7, r3
+ bl OSi_ReferSymbol
+ bl OS_DisableInterrupts
+ ldr r1, [r6, #0x114]
+ mov r5, r0
+ ands r0, r1, #0x4
+ beq _020D6F6C
+ add r4, r6, #0x10c
+_020D6F58:
+ mov r0, r4
+ bl OS_SleepThread
+ ldr r0, [r6, #0x114]
+ ands r0, r0, #0x4
+ bne _020D6F58
+_020D6F6C:
+ ldr r0, [r6, #0x114]
+ ldr r1, [sp, #0x20]
+ orr r0, r0, #0x4
+ str r0, [r6, #0x114]
+ str r7, [r6, #0x38]
+ mov r0, r5
+ str r1, [r6, #0x3c]
+ bl OS_RestoreInterrupts
+ str r10, [r6, #0x1c]
+ str r9, [r6, #0x20]
+ ldr r0, [sp, #0x24]
+ ldr r1, [sp, #0x28]
+ str r8, [r6, #0x24]
+ ldr r2, [sp, #0x2c]
+ str r1, [r6, #0x2c]
+ ldr r1, [sp, #0x30]
+ str r2, [r6, #0x30]
+ str r1, [r6, #0x34]
+ cmp r0, #0x0
+ beq _020D6FD0
+ ldr r0, _020D700C ; =CARDi_RequestStreamCommandCore
+ bl CARDi_SetTask
+ mov r0, #0x1
+ ldmia sp!, {r4-r10,lr}
+ bx lr
+_020D6FD0:
+ ldr r0, _020D7010 ; =0x021D3498
+ ldr r1, _020D7004 ; =0x021D55C0
+ ldr r2, [r0, #0x4]
+ mov r0, r6
+ str r2, [r1, #0x104]
+ bl CARDi_RequestStreamCommandCore
+_020D6FE8: ; 0x020D6FE8
+ ldr r0, [r6, #0x0]
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ moveq r0, #0x1
+ movne r0, #0x0
+ ldmia sp!, {r4-r10,lr}
+ bx lr
+ .balign 4
+_020D7004: .word 0x021D55C0
+_020D7008: .word 0x02000C3C
+_020D700C: .word CARDi_RequestStreamCommandCore
+_020D7010: .word 0x021D3498
+
+ arm_func_start CARDi_RequestStreamCommandCore
+CARDi_RequestStreamCommandCore:
+ stmdb sp!, {r4-r11,lr}
+ sub sp, sp, #0x4
+ mov r9, r0
+ ldr r8, [r9, #0x2c]
+ ldr r0, _020D720C ; =0x02000C3C
+ ldr r7, [r9, #0x34]
+ ldr r10, [r9, #0x30]
+ mov r6, #0x100
+ bl OSi_ReferSymbol
+ cmp r8, #0xb
+ bne _020D7048
+ bl CARD_GetBackupSectorSize
+ mov r6, r0
+_020D7048:
+ mov r0, #0x1
+ add r4, r9, #0x120
+ mov r11, #0x9
+ str r0, [sp, #0x0]
+_020D7058:
+ ldr r5, [r9, #0x24]
+ ldr r0, [r9, #0x0]
+ cmp r6, r5
+ movcc r5, r6
+ str r5, [r0, #0x14]
+ ldr r0, [r9, #0x114]
+ ands r0, r0, #0x40
+ beq _020D7094
+ ldr r0, [r9, #0x114]
+ mov r1, #0x7
+ bic r0, r0, #0x40
+ str r0, [r9, #0x114]
+ ldr r0, [r9, #0x0]
+ str r1, [r0, #0x0]
+ b _020D71A8
+_020D7094:
+ cmp r7, #0x3
+ addls pc, pc, r7, lsl #0x2
+ b _020D7124
+_020D70A0:
+ b _020D70B0
+_020D70A4:
+ b _020D70D4
+_020D70A8:
+ b _020D70D4
+_020D70AC:
+ b _020D710C
+_020D70B0:
+ mov r1, r5
+ add r0, r9, #0x120
+ bl DC_InvalidateRange
+ ldr r1, [r9, #0x1c]
+ ldr r0, [r9, #0x0]
+ str r1, [r0, #0xc]
+ ldr r0, [r9, #0x0]
+ str r4, [r0, #0x10]
+ b _020D7124
+_020D70D4:
+ ldr r0, [r9, #0x1c]
+ mov r1, r4
+ mov r2, r5
+ bl MI_CpuCopy8
+ mov r1, r5
+ add r0, r9, #0x120
+ bl DC_FlushRange
+ bl DC_WaitWriteBufferEmpty
+_020D70F4: ; 0x020D70F4
+ ldr r0, [r9, #0x0]
+ str r4, [r0, #0xc]
+ ldr r1, [r9, #0x20]
+ ldr r0, [r9, #0x0]
+ str r1, [r0, #0x10]
+ b _020D7124
+_020D710C:
+ ldr r1, [r9, #0x1c]
+ ldr r0, [r9, #0x0]
+ str r1, [r0, #0xc]
+ ldr r1, [r9, #0x20]
+ ldr r0, [r9, #0x0]
+ str r1, [r0, #0x10]
+_020D7124:
+ mov r0, r9
+ mov r1, r8
+ mov r2, r10
+ bl CARDi_Request
+_020D7134: ; 0x020D7134
+ cmp r0, #0x0
+ beq _020D71A8
+ cmp r7, #0x2
+ bne _020D7160
+ ldr r2, [sp, #0x0]
+ mov r0, r9
+ mov r1, r11
+ bl CARDi_Request
+_020D7154: ; 0x020D7154
+ cmp r0, #0x0
+ bne _020D7178
+ b _020D71A8
+_020D7160:
+ cmp r7, #0x0
+ bne _020D7178
+ ldr r1, [r9, #0x20]
+ mov r2, r5
+ add r0, r9, #0x120
+ bl MI_CpuCopy8
+_020D7178:
+ ldr r0, [r9, #0x1c]
+ add r0, r0, r5
+ str r0, [r9, #0x1c]
+ ldr r0, [r9, #0x20]
+ add r0, r0, r5
+ str r0, [r9, #0x20]
+ ldr r0, [r9, #0x24]
+ sub r0, r0, r5
+ str r0, [r9, #0x24]
+ ldr r0, [r9, #0x24]
+ cmp r0, #0x0
+ bne _020D7058
+_020D71A8:
+ ldr r6, [r9, #0x38]
+ ldr r5, [r9, #0x3c]
+ bl OS_DisableInterrupts
+ ldr r1, [r9, #0x114]
+ mov r4, r0
+ bic r0, r1, #0x4c
+ str r0, [r9, #0x114]
+ add r0, r9, #0x10c
+ bl OS_WakeupThread
+ ldr r0, [r9, #0x114]
+ ands r0, r0, #0x10
+ beq _020D71E0
+ add r0, r9, #0x44
+ bl OS_WakeupThreadDirect
+_020D71E0:
+ mov r0, r4
+ bl OS_RestoreInterrupts
+_020D71E8: ; 0x020D71E8
+ cmp r6, #0x0
+ addeq sp, sp, #0x4
+ ldmeqia sp!, {r4-r11,lr}
+ bxeq lr
+ mov r0, r5
+ blx r6
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r11,lr}
+ bx lr
+ .balign 4
+_020D720C: .word 0x02000C3C
+
+ arm_func_start CARDi_GetRomAccessor
+CARDi_GetRomAccessor: ; 0x020D7210
+ ldr r0, _020D7218 ; =CARDi_ReadCard
+ bx lr
+ .balign 4
+_020D7218: .word CARDi_ReadCard
+
+ arm_func_start CARD_WaitRomAsync
+CARD_WaitRomAsync: ; 0x020D721C
+ ldr ip, _020D7224 ; =CARDi_WaitAsync
+ bx r12
+ .balign 4
+_020D7224: .word CARDi_WaitAsync
+
+ arm_func_start CARD_Init
+CARD_Init: ; 0x020D7228
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldr ip, _020D72A0 ; =0x021D55C0
+ ldr r0, [r12, #0x114]
+ cmp r0, #0x0
+ addne sp, sp, #0x4
+ ldmneia sp!, {lr}
+ bxne lr
+ mov r0, #0x1
+ str r0, [r12, #0x114]
+ mov r3, #0x0
+ str r3, [r12, #0x24]
+ ldr r0, [r12, #0x24]
+ mvn r1, #0x0
+ str r0, [r12, #0x20]
+ ldr r2, [r12, #0x20]
+ ldr r0, _020D72A4 ; =0x021D5BE0
+ str r2, [r12, #0x1c]
+ str r1, [r12, #0x28]
+ str r3, [r12, #0x38]
+ str r3, [r12, #0x3c]
+ str r3, [r0, #0x0]
+ bl CARDi_InitCommon
+ bl CARDi_GetRomAccessor
+ ldr r1, _020D72A8 ; =0x021D5C00
+ str r0, [r1, #0x0]
+ bl CARD_InitPulledOutCallback
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+ .balign 4
+_020D72A0: .word 0x021D55C0
+_020D72A4: .word 0x021D5BE0
+_020D72A8: .word 0x021D5C00
+
+ arm_func_start CARDi_ReadRom
+CARDi_ReadRom: ; 0x020D72AC
+ stmdb sp!, {r4-r11,lr}
+ sub sp, sp, #0x4
+ ldr r6, _020D73C0 ; =0x021D55C0
+ mov r10, r0
+ mov r9, r1
+ mov r8, r2
+ mov r7, r3
+ ldr fp, _020D73C4 ; =0x021D5C00
+ bl CARD_CheckEnabled
+ bl OS_DisableInterrupts
+ ldr r1, [r6, #0x114]
+ mov r5, r0
+ ands r0, r1, #0x4
+ beq _020D72FC
+ add r4, r6, #0x10c
+_020D72E8:
+ mov r0, r4
+ bl OS_SleepThread
+ ldr r0, [r6, #0x114]
+ ands r0, r0, #0x4
+ bne _020D72E8
+_020D72FC:
+ ldr r1, [r6, #0x114]
+ ldr r0, [sp, #0x28]
+ orr r1, r1, #0x4
+ str r1, [r6, #0x114]
+ ldr r1, [sp, #0x2c]
+ str r0, [r6, #0x38]
+ mov r0, r5
+ str r1, [r6, #0x3c]
+ bl OS_RestoreInterrupts
+ ldr r0, _020D73C8 ; =0x021D5BE0
+ str r10, [r6, #0x28]
+ ldr r0, [r0, #0x0]
+ cmp r10, #0x3
+ add r0, r9, r0
+ str r0, [r6, #0x1c]
+ str r8, [r6, #0x20]
+ str r7, [r6, #0x24]
+ bhi _020D734C
+ mov r0, r10
+ bl MI_StopDma
+_020D734C:
+ mov r0, r11
+ bl CARDi_TryReadCardDma
+_020D7354: ; 0x020D7354
+ cmp r0, #0x0
+ beq _020D7380
+ ldr r0, [sp, #0x30]
+ cmp r0, #0x0
+ addne sp, sp, #0x4
+ ldmneia sp!, {r4-r11,lr}
+ bxne lr
+ bl CARD_WaitRomAsync
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r11,lr}
+ bx lr
+_020D7380:
+ ldr r0, [sp, #0x30]
+ cmp r0, #0x0
+ beq _020D73A0
+ ldr r0, _020D73CC ; =CARDi_ReadRomSyncCore
+ bl CARDi_SetTask
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r11,lr}
+ bx lr
+_020D73A0:
+ ldr r1, _020D73D0 ; =0x021D3498
+ mov r0, r6
+ ldr r1, [r1, #0x4]
+ str r1, [r6, #0x104]
+ bl CARDi_ReadRomSyncCore
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r11,lr}
+ bx lr
+ .balign 4
+_020D73C0: .word 0x021D55C0
+_020D73C4: .word 0x021D5C00
+_020D73C8: .word 0x021D5BE0
+_020D73CC: .word CARDi_ReadRomSyncCore
+_020D73D0: .word 0x021D3498
+
+ arm_func_start CARDi_ReadRomSyncCore
+CARDi_ReadRomSyncCore: ; 0x020D73D4
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0x4
+ ldr r4, _020D7478 ; =0x021D5C00
+ mov r0, r4
+ bl CARDi_ReadFromCache
+_020D73E8: ; 0x020D73E8
+ cmp r0, #0x0
+ beq _020D73FC
+ ldr r1, [r4, #0x0]
+ mov r0, r4
+ blx r1
+_020D73FC:
+ ldr r7, _020D747C ; =0x021D55C0
+ bl CARDi_ReadRomIDCore
+ bl CARDi_CheckPulledOutCore
+_020D7408: ; 0x020D7408
+ ldr r0, [r7, #0x0]
+ mov r1, #0x0
+ str r1, [r0, #0x0]
+ ldr r6, [r7, #0x38]
+ ldr r5, [r7, #0x3c]
+ bl OS_DisableInterrupts
+ ldr r1, [r7, #0x114]
+ mov r4, r0
+ bic r0, r1, #0x4c
+ str r0, [r7, #0x114]
+ add r0, r7, #0x10c
+ bl OS_WakeupThread
+ ldr r0, [r7, #0x114]
+ ands r0, r0, #0x10
+ beq _020D744C
+ add r0, r7, #0x44
+ bl OS_WakeupThreadDirect
+_020D744C:
+ mov r0, r4
+ bl OS_RestoreInterrupts
+_020D7454: ; 0x020D7454
+ cmp r6, #0x0
+ addeq sp, sp, #0x4
+ ldmeqia sp!, {r4-r7,lr}
+ bxeq lr
+ mov r0, r5
+ blx r6
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r7,lr}
+ bx lr
+ .balign 4
+_020D7478: .word 0x021D5C00
+_020D747C: .word 0x021D55C0
+
+ arm_func_start CARDi_ReadRomIDCore
+CARDi_ReadRomIDCore: ; 0x020D7480
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ mov r0, #0xb8000000
+ mov r1, #0x0
+ bl CARDi_SetRomOp
+ ldr r1, _020D74DC ; =0x02106A50
+ mov r0, #0x2000
+ ldr r1, [r1, #0x0]
+ rsb r0, r0, #0x0
+ ldr r2, [r1, #0x60]
+ ldr r1, _020D74E0 ; =0x040001A4
+ bic r2, r2, #0x7000000
+ orr r2, r2, #0xa7000000
+ and r0, r2, r0
+ str r0, [r1, #0x0]
+_020D74BC:
+ ldr r0, [r1, #0x0]
+ ands r0, r0, #0x800000
+ beq _020D74BC
+ ldr r0, _020D74E4 ; =0x04100010
+ ldr r0, [r0, #0x0]
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+ .balign 4
+_020D74DC: .word 0x02106A50
+_020D74E0: .word 0x040001A4
+_020D74E4: .word 0x04100010
+
+ arm_func_start CARDi_ReadCard
+CARDi_ReadCard: ; 0x020D74E8
+ stmdb sp!, {r4-r11,lr}
+ sub sp, sp, #0x4
+ mov r10, r0
+ ldr sb, _020D75DC ; =0x021D55C0
+ add r7, r10, #0x20
+ ldr r5, _020D75E0 ; =0x04100010
+ ldr r6, _020D75E4 ; =0x040001A4
+ mov r11, #0x0
+ mov r0, #0x200
+ rsb r4, r0, #0x0
+_020D7510:
+ ldr r0, [r9, #0x1c]
+ and r1, r0, r4
+ cmp r1, r0
+ bne _020D7538
+ ldr r8, [r9, #0x20]
+ ands r0, r8, #0x3
+ bne _020D7538
+ ldr r0, [r9, #0x24]
+ cmp r0, #0x200
+ bhs _020D7540
+_020D7538:
+ mov r8, r7
+ str r1, [r10, #0x8]
+_020D7540:
+ mov r0, r1, lsr #0x8
+ orr r0, r0, #0xb7000000
+ mov r1, r1, lsl #0x18
+ bl CARDi_SetRomOp
+ ldr r1, [r10, #0x4]
+ mov r0, r11
+ str r1, [r6, #0x0]
+_020D755C:
+ ldr r2, [r6, #0x0]
+ ands r1, r2, #0x800000
+ beq _020D7578
+ ldr r1, [r5, #0x0]
+ cmp r0, #0x200
+ strcc r1, [r8, r0, lsl #0x2]
+ addcc r0, r0, #0x1
+_020D7578:
+ ands r1, r2, #0x80000000
+ bne _020D755C
+ ldr r0, [r9, #0x20]
+ cmp r8, r0
+ bne _020D75C0
+ ldr r2, [r9, #0x1c]
+ ldr r1, [r9, #0x20]
+ ldr r0, [r9, #0x24]
+ add r2, r2, #0x200
+ add r1, r1, #0x200
+ subs r0, r0, #0x200
+ str r2, [r9, #0x1c]
+ str r1, [r9, #0x20]
+ str r0, [r9, #0x24]
+ bne _020D7510
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r11,lr}
+ bx lr
+_020D75C0:
+ mov r0, r10
+ bl CARDi_ReadFromCache
+_020D75C8: ; 0x020D75C8
+ cmp r0, #0x0
+ bne _020D7510
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r11,lr}
+ bx lr
+ .balign 4
+_020D75DC: .word 0x021D55C0
+_020D75E0: .word 0x04100010
+_020D75E4: .word 0x040001A4
+
+ arm_func_start CARDi_TryReadCardDma
+CARDi_TryReadCardDma:
+ stmdb sp!, {r4-r11,lr}
+ sub sp, sp, #0x4
+ ldr fp, _020D7748 ; =0x021D55C0
+ mov r7, #0x0
+ ldr r9, [r11, #0x20]
+ mov r10, r0
+ mov r6, r7
+ mov r5, r7
+ mov r1, r7
+ ands r4, r9, #0x1f
+ ldr r8, [r11, #0x24]
+ bne _020D7624
+ ldr r0, [r11, #0x28]
+ cmp r0, #0x3
+ movls r1, #0x1
+_020D7624:
+ cmp r1, #0x0
+ beq _020D7678
+ bl OS_GetDTCMAddress
+ ldr r1, _020D774C ; =0x01FF8000
+ add r2, r9, r8
+ cmp r2, r1
+ mov r3, #0x1
+ mov r1, #0x0
+ bls _020D7650
+ cmp r9, #0x2000000
+ movcc r1, r3
+_020D7650:
+ cmp r1, #0x0
+ bne _020D7670
+ cmp r0, r2
+ bhs _020D766C
+ add r0, r0, #0x4000
+ cmp r0, r9
+ bhi _020D7670
+_020D766C:
+ mov r3, #0x0
+_020D7670:
+ cmp r3, #0x0
+ moveq r5, #0x1
+_020D7678:
+ cmp r5, #0x0
+ beq _020D7694
+ ldr r1, [r11, #0x1c]
+ ldr r0, _020D7750 ; =0x000001FF
+ orr r1, r1, r8
+ ands r0, r1, r0
+ moveq r6, #0x1
+_020D7694:
+ cmp r6, #0x0
+ beq _020D76A4
+ cmp r8, #0x0
+ movne r7, #0x1
+_020D76A4:
+ ldr r0, _020D7754 ; =0x02106A50
+ cmp r7, #0x0
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0x60]
+ bic r0, r0, #0x7000000
+ orr r0, r0, #0xa1000000
+ str r0, [r10, #0x4]
+ beq _020D7738
+ bl OS_DisableInterrupts
+ mov r5, r0
+ mov r0, r9
+ mov r1, r8
+ bl IC_InvalidateRange
+_020D76D8: ; 0x020D76D8
+ cmp r4, #0x0
+ beq _020D7700
+ sub r9, r9, r4
+ mov r0, r9
+ mov r1, #0x20
+ bl DC_StoreRange
+ add r0, r9, r8
+ mov r1, #0x20
+ bl DC_StoreRange
+ add r8, r8, #0x20
+_020D7700:
+ mov r0, r9
+ mov r1, r8
+ bl DC_InvalidateRange
+ bl DC_WaitWriteBufferEmpty
+ ldr r1, _020D7758 ; =CARDi_OnReadCard
+ mov r0, #0x80000
+ bl OS_SetIrqFunction
+ mov r0, #0x80000
+ bl OS_ResetRequestIrqMask
+ mov r0, #0x80000
+ bl OS_EnableIrqMask
+ mov r0, r5
+ bl OS_RestoreInterrupts
+ bl CARDi_SetCardDma
+_020D7738:
+ mov r0, r7
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r11,lr}
+ bx lr
+ .balign 4
+_020D7748: .word cardi_common
+_020D774C: .word 0x01FF8000
+_020D7750: .word 0x000001FF
+_020D7754: .word 0x02106A50
+_020D7758: .word CARDi_OnReadCard
+
+ arm_func_start CARDi_OnReadCard
+CARDi_OnReadCard: ; 0x020D775C
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0x4
+ ldr r0, _020D7838 ; =0x021D55C0
+ ldr r0, [r0, #0x28]
+ bl MI_StopDma
+ ldr r0, _020D7838 ; =0x021D55C0
+ ldr r3, [r0, #0x1c]
+ ldr r2, [r0, #0x20]
+ ldr r1, [r0, #0x24]
+ add r3, r3, #0x200
+ add r2, r2, #0x200
+ subs r1, r1, #0x200
+ str r3, [r0, #0x1c]
+ str r2, [r0, #0x20]
+ str r1, [r0, #0x24]
+ bne _020D7828
+ mov r0, #0x80000
+ bl OS_DisableIrqMask
+ mov r0, #0x80000
+ bl OS_ResetRequestIrqMask
+ ldr r7, _020D7838 ; =0x021D55C0
+ bl CARDi_ReadRomIDCore
+ bl CARDi_CheckPulledOutCore
+_020D77B8: ; 0x020D77B8
+ ldr r0, [r7, #0x0]
+ mov r1, #0x0
+ str r1, [r0, #0x0]
+ ldr r6, [r7, #0x38]
+ ldr r5, [r7, #0x3c]
+ bl OS_DisableInterrupts
+ ldr r1, [r7, #0x114]
+ mov r4, r0
+ bic r0, r1, #0x4c
+ str r0, [r7, #0x114]
+ add r0, r7, #0x10c
+ bl OS_WakeupThread
+ ldr r0, [r7, #0x114]
+ ands r0, r0, #0x10
+ beq _020D77FC
+ add r0, r7, #0x44
+ bl OS_WakeupThreadDirect
+_020D77FC:
+ mov r0, r4
+ bl OS_RestoreInterrupts
+_020D7804: ; 0x020D7804
+ cmp r6, #0x0
+ addeq sp, sp, #0x4
+ ldmeqia sp!, {r4-r7,lr}
+ bxeq lr
+ mov r0, r5
+ blx r6
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r7,lr}
+ bx lr
+_020D7828:
+ bl CARDi_SetCardDma
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r7,lr}
+ bx lr
+ .balign 4
+_020D7838: .word 0x021D55C0
+
+ arm_func_start CARDi_SetCardDma
+CARDi_SetCardDma: ; 0x020D783C
+ stmdb sp!, {r4,lr}
+ ldr r4, _020D7884 ; =0x021D55C0
+ ldr r1, _020D7888 ; =0x04100010
+ ldr r0, [r4, #0x28]
+ ldr r2, [r4, #0x20]
+ mov r3, #0x200
+ bl MIi_CardDmaCopy32
+ ldr r1, [r4, #0x1c]
+ mov r0, r1, lsr #0x8
+ orr r0, r0, #0xb7000000
+ mov r1, r1, lsl #0x18
+ bl CARDi_SetRomOp
+ ldr r0, _020D788C ; =0x021D5C00
+ ldr r1, _020D7890 ; =0x040001A4
+ ldr r0, [r0, #0x4]
+ str r0, [r1, #0x0]
+ ldmia sp!, {r4,lr}
+ bx lr
+ .balign 4
+_020D7884: .word 0x021D55C0
+_020D7888: .word 0x04100010
+_020D788C: .word 0x021D5C00
+_020D7890: .word 0x040001A4
+
+ arm_func_start CARDi_SetRomOp
+CARDi_SetRomOp: ; 0x020D7894
+ ldr r3, _020D790C ; =0x040001A4
+_020D7898:
+ ldr r2, [r3, #0x0]
+ ands r2, r2, #0x80000000
+ bne _020D7898
+ ldr r3, _020D7910 ; =0x040001A1
+ mov r12, #0xc0
+ ldr r2, _020D7914 ; =0x040001A8
+ strb r12, [r3, #0x0]
+ mov r12, r0, lsr #0x18
+ ldr r3, _020D7918 ; =0x040001A9
+ strb r12, [r2, #0x0]
+ mov r12, r0, lsr #0x10
+ ldr r2, _020D791C ; =0x040001AA
+ strb r12, [r3, #0x0]
+ mov r12, r0, lsr #0x8
+ ldr r3, _020D7920 ; =0x040001AB
+ strb r12, [r2, #0x0]
+ ldr r2, _020D7924 ; =0x040001AC
+ strb r0, [r3, #0x0]
+ mov r3, r1, lsr #0x18
+ ldr r0, _020D7928 ; =0x040001AD
+ strb r3, [r2, #0x0]
+ mov r3, r1, lsr #0x10
+ ldr r2, _020D792C ; =0x040001AE
+ strb r3, [r0, #0x0]
+ mov r3, r1, lsr #0x8
+ ldr r0, _020D7930 ; =0x040001AF
+ strb r3, [r2, #0x0]
+ strb r1, [r0, #0x0]
+ bx lr
+ .balign 4
+_020D790C: .word 0x040001A4
+_020D7910: .word 0x040001A1
+_020D7914: .word 0x040001A8
+_020D7918: .word 0x040001A9
+_020D791C: .word 0x040001AA
+_020D7920: .word 0x040001AB
+_020D7924: .word 0x040001AC
+_020D7928: .word 0x040001AD
+_020D792C: .word 0x040001AE
+_020D7930: .word 0x040001AF
+
+ arm_func_start CARDi_ReadFromCache
+CARDi_ReadFromCache:
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ ldr r5, _020D79C8 ; =0x021D55C0
+ mov r1, #0x200
+ ldr r3, [r5, #0x1c]
+ rsb r1, r1, #0x0
+ ldr r2, [r0, #0x8]
+ and r3, r3, r1
+ cmp r3, r2
+ bne _020D79AC
+ ldr r2, [r5, #0x1c]
+ ldr r1, [r5, #0x24]
+ sub r3, r2, r3
+ rsb r4, r3, #0x200
+ cmp r4, r1
+ movhi r4, r1
+ add r0, r0, #0x20
+ ldr r1, [r5, #0x20]
+ mov r2, r4
+ add r0, r0, r3
+ bl MI_CpuCopy8
+ ldr r0, [r5, #0x1c]
+ add r0, r0, r4
+ str r0, [r5, #0x1c]
+ ldr r0, [r5, #0x20]
+ add r0, r0, r4
+ str r0, [r5, #0x20]
+ ldr r0, [r5, #0x24]
+ sub r0, r0, r4
+ str r0, [r5, #0x24]
+_020D79AC:
+ ldr r0, [r5, #0x24]
+ cmp r0, #0x0
+ movne r0, #0x1
+ moveq r0, #0x0
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,lr}
+ bx lr
+ .balign 4
+_020D79C8: .word 0x021D55C0
+
+ arm_func_start CARDi_Request
+CARDi_Request:
+ stmdb sp!, {r4-r11,lr}
+ sub sp, sp, #0x4
+ mov r6, r0
+ ldr r0, [r6, #0x114]
+ mov r5, r1
+ mov r4, r2
+ ands r0, r0, #0x2
+ bne _020D7A44
+ ldr r1, [r6, #0x114]
+ mov r0, #0xb
+ orr r2, r1, #0x2
+ mov r1, #0x1
+ str r2, [r6, #0x114]
+ bl PXI_IsCallbackReady
+_020D7A04: ; 0x020D7A04
+ cmp r0, #0x0
+ bne _020D7A34
+ mov r9, #0x64
+ mov r8, #0xb
+ mov r7, #0x1
+_020D7A18:
+ mov r0, r9
+ bl OS_SpinWait
+ mov r0, r8
+ mov r1, r7
+ bl PXI_IsCallbackReady
+_020D7A2C: ; 0x020D7A2C
+ cmp r0, #0x0
+ beq _020D7A18
+_020D7A34:
+ mov r0, r6
+ mov r1, #0x0
+ mov r2, #0x1
+ bl CARDi_Request
+_020D7A44:
+ ldr r0, [r6, #0x0]
+ mov r1, #0x60
+ bl DC_FlushRange
+ bl DC_WaitWriteBufferEmpty
+ mov r9, #0xb
+ mov r8, #0x1
+ mov r7, #0x0
+ mov r11, #0x60
+_020D7A64:
+ str r5, [r6, #0x4]
+ ldr r0, [r6, #0x114]
+ orr r0, r0, #0x20
+ str r0, [r6, #0x114]
+_020D7A74:
+ mov r0, r9
+ mov r1, r5
+ mov r2, r8
+ bl PXI_SendWordByFifo
+_020D7A84: ; 0x020D7A84
+ cmp r0, #0x0
+ blt _020D7A74
+ cmp r5, #0x0
+ bne _020D7AB0
+ ldr r10, [r6, #0x0]
+_020D7A98:
+ mov r0, r9
+ mov r1, r10
+ mov r2, r8
+ bl PXI_SendWordByFifo
+_020D7AA8: ; 0x020D7AA8
+ cmp r0, #0x0
+ blt _020D7A98
+_020D7AB0:
+ bl OS_DisableInterrupts
+ ldr r1, [r6, #0x114]
+ mov r10, r0
+ ands r0, r1, #0x20
+ beq _020D7AD8
+_020D7AC4:
+ mov r0, r7
+ bl OS_SleepThread
+ ldr r0, [r6, #0x114]
+ ands r0, r0, #0x20
+ bne _020D7AC4
+_020D7AD8:
+ mov r0, r10
+ bl OS_RestoreInterrupts
+_020D7AE0: ; 0x020D7AE0
+ ldr r0, [r6, #0x0]
+ mov r1, r11
+ bl DC_InvalidateRange
+_020D7AEC: ; 0x020D7AEC
+ ldr r0, [r6, #0x0]
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x4
+ bne _020D7B08
+ sub r4, r4, #0x1
+ cmp r4, #0x0
+ bgt _020D7A64
+_020D7B08:
+ cmp r0, #0x0
+ moveq r0, #0x1
+ movne r0, #0x0
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r11,lr}
+ bx lr
+
+ arm_func_start CARDi_TaskThread
+CARDi_TaskThread: ; 0x020D7B20
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0x4
+ ldr r5, _020D7B78 ; =0x021D55C0
+ mov r6, #0x0
+ add r7, r5, #0x44
+_020D7B34:
+ bl OS_DisableInterrupts
+ ldr r1, [r5, #0x114]
+ mov r4, r0
+ ands r0, r1, #0x8
+ bne _020D7B60
+_020D7B48:
+ mov r0, r6
+ str r7, [r5, #0x104]
+ bl OS_SleepThread
+ ldr r0, [r5, #0x114]
+ ands r0, r0, #0x8
+ beq _020D7B48
+_020D7B60:
+ mov r0, r4
+ bl OS_RestoreInterrupts
+ ldr r1, [r5, #0x40]
+ mov r0, r5
+ blx r1
+ b _020D7B34
+ .balign 4
+_020D7B78: .word 0x021D55C0
+
+ arm_func_start CARDi_OnFifoRecv
+CARDi_OnFifoRecv: ; 0x020D7B7C
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ cmp r0, #0xb
+ addne sp, sp, #0x4
+ ldmneia sp!, {lr}
+ bxne lr
+ cmp r2, #0x0
+ addeq sp, sp, #0x4
+ ldmeqia sp!, {lr}
+ bxeq lr
+ ldr r1, _020D7BC8 ; =0x021D55C0
+ ldr r0, [r1, #0x114]
+ bic r0, r0, #0x20
+ str r0, [r1, #0x114]
+ ldr r0, [r1, #0x104]
+ bl OS_WakeupThreadDirect
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+ .balign 4
+_020D7BC8: .word 0x021D55C0
+
+ arm_func_start CARDi_SendtoPxi
+CARDi_SendtoPxi: ; 0x020D7BCC
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0x4
+ mov r7, r0
+ mov r6, r1
+ mov r1, r7
+ mov r0, #0xe
+ mov r2, #0x0
+ bl PXI_SendWordByFifo
+_020D7BEC: ; 0x020D7BEC
+ cmp r0, #0x0
+ addeq sp, sp, #0x4
+ ldmeqia sp!, {r4-r7,lr}
+ bxeq lr
+ mov r5, #0xe
+ mov r4, #0x0
+_020D7C04:
+ mov r0, r6
+ blx SVC_WaitByLoop
+ mov r0, r5
+ mov r1, r7
+ mov r2, r4
+ bl PXI_SendWordByFifo
+_020D7C1C: ; 0x020D7C1C
+ cmp r0, #0x0
+ bne _020D7C04
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r7,lr}
+ bx lr
+
+ arm_func_start CARDi_CheckPulledOutCore
+CARDi_CheckPulledOutCore:
+ stmdb sp!, {r4,lr}
+ sub sp, sp, #0x8
+ ldr r1, _020D7C94 ; =0x027FFC10
+ ldrh r1, [r1, #0x0]
+ cmp r1, #0x0
+ ldreq r1, _020D7C98 ; =0x027FF800
+ ldrne r1, _020D7C9C ; =0x027FFC00
+ ldr r1, [r1, #0x0]
+ str r1, [sp, #0x0]
+ ldr r1, [sp, #0x0]
+ cmp r0, r1
+ addeq sp, sp, #0x8
+ ldmeqia sp!, {r4,lr}
+ bxeq lr
+ bl OS_DisableInterrupts
+ mov r4, r0
+ mov r0, #0xe
+ mov r1, #0x11
+ mov r2, #0x0
+ bl CARDi_PulledOutCallback
+ mov r0, r4
+ bl OS_RestoreInterrupts
+ add sp, sp, #0x8
+ ldmia sp!, {r4,lr}
+ bx lr
+ .balign 4
+_020D7C94: .word 0x027FFC10
+_020D7C98: .word 0x027FF800
+_020D7C9C: .word 0x027FFC00
+
+ arm_func_start CARD_TerminateForPulledOut
+CARD_TerminateForPulledOut: ; 0x020D7CA0
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ ldr r0, _020D7D10 ; =0x027FFFA8
+ mov r5, #0x1
+ ldrh r0, [r0, #0x0]
+ and r0, r0, #0x8000
+ movs r0, r0, asr #0xf
+ beq _020D7CEC
+ bl PM_ForceToPowerOff
+ cmp r0, #0x4
+ bne _020D7CE4
+ ldr r4, _020D7D14 ; =0x000A3A47
+_020D7CD0:
+ mov r0, r4
+ bl OS_SpinWait
+ bl PM_ForceToPowerOff
+ cmp r0, #0x4
+ beq _020D7CD0
+_020D7CE4:
+ cmp r0, #0x0
+ moveq r5, #0x0
+_020D7CEC:
+ cmp r5, #0x0
+ beq _020D7D00
+ mov r0, #0x1
+ mov r1, r0
+ bl CARDi_SendtoPxi
+_020D7D00:
+ bl OS_Terminate
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,lr}
+ bx lr
+ .balign 4
+_020D7D10: .word 0x027FFFA8
+_020D7D14: .word 0x000A3A47
+
+ arm_func_start CARD_IsPulledOut
+CARD_IsPulledOut: ; 0x020D7D18
+ ldr r0, _020D7D24 ; =0x021D5E20
+ ldr r0, [r0, #0x0]
+ bx lr
+ .balign 4
+_020D7D24: .word 0x021D5E20
+
+ arm_func_start CARDi_PulledOutCallback
+CARDi_PulledOutCallback: ; 0x020D7D28
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ and r0, r1, #0x3f
+ cmp r0, #0x11
+ bne _020D7D90
+ ldr r2, _020D7DA0 ; =0x021D5E20
+ ldr r0, [r2, #0x0]
+ cmp r0, #0x0
+ addne sp, sp, #0x4
+ ldmneia sp!, {lr}
+ bxne lr
+ ldr r1, _020D7DA4 ; =0x021D5E24
+ mov r0, #0x1
+ ldr r1, [r1, #0x0]
+ str r0, [r2, #0x0]
+ cmp r1, #0x0
+ beq _020D7D70
+ blx r1
+_020D7D70:
+ cmp r0, #0x0
+ addeq sp, sp, #0x4
+ ldmeqia sp!, {lr}
+ bxeq lr
+ bl CARD_TerminateForPulledOut
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+_020D7D90:
+ bl OS_Terminate
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+ .balign 4
+_020D7DA0: .word 0x021D5E20
+_020D7DA4: .word 0x021D5E24
+
+ arm_func_start CARD_InitPulledOutCallback
+CARD_InitPulledOutCallback: ; 0x020D7DA8
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ bl PXI_Init
+ ldr r1, _020D7DD8 ; =CARDi_PulledOutCallback
+ mov r0, #0xe
+ bl PXI_SetFifoRecvCallback
+ ldr r0, _020D7DDC ; =0x021D5E24
+ mov r1, #0x0
+ str r1, [r0, #0x0]
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+ .balign 4
+_020D7DD8: .word CARDi_PulledOutCallback
+_020D7DDC: .word 0x021D5E24
diff --git a/arm9/asm/CP_arm9.s b/arm9/asm/CP_arm9.s
new file mode 100644
index 00000000..c756e8e2
--- /dev/null
+++ b/arm9/asm/CP_arm9.s
@@ -0,0 +1,42 @@
+ .include "asm/macros.inc"
+ .include "global.inc"
+ .section .text
+
+ arm_func_start CP_SaveContext
+CP_SaveContext: ; 0x020D3648
+ ldr r1, _020D3684 ; =0x04000290
+ stmdb sp!, {r4}
+ ldmia r1, {r2-r4,r12}
+ stmia r0!, {r2-r4,r12}
+ ldrh r12, [r1, #-0x10]
+ add r1, r1, #0x28
+ ldmia r1, {r2-r3}
+ stmia r0!, {r2-r3}
+ and r12, r12, #0x3
+ ldrh r2, [r1, #-0x8]
+ strh r12, [r0, #0x0]
+ and r2, r2, #0x1
+ strh r2, [r0, #0x2]
+ ldmia sp!, {r4}
+ bx lr
+ .balign 4
+_020D3684: .word 0x04000290
+
+ arm_func_start CP_RestoreContext
+CP_RestoreContext: ; 0x020D3688
+ stmdb sp!, {r4}
+ ldr r1, _020D36C0 ; =0x04000290
+ ldmia r0, {r2-r4,r12}
+ stmia r1, {r2-r4,r12}
+ ldrh r2, [r0, #0x18]
+ ldrh r3, [r0, #0x1a]
+ strh r2, [r1, #-0x10]
+ strh r3, [r1, #0x20]
+ add r0, r0, #0x10
+ add r1, r1, #0x28
+ ldmia r0, {r2-r3}
+ stmia r1, {r2-r3}
+ ldmia sp!, {r4}
+ bx lr
+ .balign 4
+_020D36C0: .word 0x04000290
diff --git a/arm9/asm/CTRDG_arm9.s b/arm9/asm/CTRDG_arm9.s
new file mode 100644
index 00000000..301ea233
--- /dev/null
+++ b/arm9/asm/CTRDG_arm9.s
@@ -0,0 +1,3238 @@
+ .include "asm/macros.inc"
+ .include "global.inc"
+
+ .text
+
+ arm_func_start CTRDG_CheckEnabled
+CTRDG_CheckEnabled:
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ bl CTRDG_IsOptionCartridge
+_020DB128: ; 0x020DB128
+ cmp r0, #0x0
+ addne sp, sp, #0x4
+ ldmneia sp!, {lr}
+ bxne lr
+ bl CTRDG_IsEnabled
+_020DB13C: ; 0x020DB13C
+ cmp r0, #0x0
+ addne sp, sp, #0x4
+ ldmneia sp!, {lr}
+ bxne lr
+ bl OS_Terminate
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+
+ arm_func_start CTRDG_Enable
+CTRDG_Enable: ; 0x020DB15C
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ mov r5, r0
+ bl OS_DisableInterrupts
+ ldr r1, _020DB1AC ; =0x021D6940
+ mov r4, r0
+ str r5, [r1, #0x0]
+ bl CTRDG_IsOptionCartridge
+_020DB17C: ; 0x020DB17C
+ cmp r0, #0x0
+ bne _020DB198
+ cmp r5, #0x0
+ movne r1, #0x1000
+ moveq r1, #0x5000
+ mov r0, #0xf000
+ bl OS_SetDPermissionsForProtectionRegion
+_020DB198:
+ mov r0, r4
+ bl OS_RestoreInterrupts
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,lr}
+ bx lr
+ .balign 4
+_020DB1AC: .word 0x021D6940
+
+ arm_func_start CTRDG_IsEnabled
+CTRDG_IsEnabled:
+ ldr r0, _020DB1BC ; =0x021D6940
+ ldr r0, [r0, #0x0]
+ bx lr
+ .balign 4
+_020DB1BC: .word 0x021D6940
+
+ arm_func_start CTRDGi_AccessCommon
+CTRDGi_AccessCommon: ; 0x020DB1C0
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0x4
+ mov r7, r0
+ mov r6, r1
+ mov r5, r2
+ mov r4, r3
+ bl CTRDG_IsExisting
+_020DB1DC: ; 0x020DB1DC
+ cmp r0, #0x0
+ addeq sp, sp, #0x4
+ moveq r0, #0x0
+ ldmeqia sp!, {r4-r7,lr}
+ bxeq lr
+ bl CTRDG_CheckEnabled
+ ldr r0, _020DB2BC ; =0x021D6944
+ ldrh r0, [r0, #0x2]
+ bl OS_LockCartridge
+ cmp r4, #0x21
+ bhi _020DB240
+ cmp r4, #0x21
+ bhs _020DB270
+ cmp r4, #0x11
+ bhi _020DB234
+ cmp r4, #0x10
+ blo _020DB294
+ cmp r4, #0x10
+ beq _020DB290
+ cmp r4, #0x11
+ beq _020DB260
+ b _020DB294
+_020DB234:
+ cmp r4, #0x20
+ streqh r6, [r7, #0x0]
+ b _020DB294
+_020DB240:
+ cmp r4, #0x40
+ bhi _020DB254
+ cmp r4, #0x40
+ streq r6, [r7, #0x0]
+ b _020DB294
+_020DB254:
+ cmp r4, #0x41
+ beq _020DB280
+ b _020DB294
+_020DB260:
+ cmp r5, #0x0
+ ldrneb r0, [r7, #0x0]
+ strneb r0, [r5, #0x0]
+ b _020DB294
+_020DB270:
+ cmp r5, #0x0
+ ldrneh r0, [r7, #0x0]
+ strneh r0, [r5, #0x0]
+ b _020DB294
+_020DB280:
+ cmp r5, #0x0
+ ldrne r0, [r7, #0x0]
+ strne r0, [r5, #0x0]
+ b _020DB294
+_020DB290:
+ strb r6, [r7, #0x0]
+_020DB294:
+ ldr r0, _020DB2BC ; =0x021D6944
+ ldrh r0, [r0, #0x2]
+ bl OS_UnlockCartridge
+ bl CTRDG_IsExisting
+_020DB2A4: ; 0x020DB2A4
+ cmp r0, #0x0
+ movne r0, #0x1
+ moveq r0, #0x0
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r7,lr}
+ bx lr
+ .balign 4
+_020DB2BC: .word 0x021D6944
+
+ arm_func_start CTRDG_Read32
+CTRDG_Read32: ; 0x020DB2C0
+ ldr ip, _020DB2D4 ; =CTRDGi_AccessCommon
+ mov r2, r1
+ mov r1, #0x0
+ mov r3, #0x41
+ bx r12
+ .balign 4
+_020DB2D4: .word CTRDGi_AccessCommon
+
+ arm_func_start CTRDGi_CopyCommon
+CTRDGi_CopyCommon: ; 0x020DB2D8
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0x4
+ mov r7, r0
+ mov r6, r1
+ mov r5, r2
+ mov r4, r3
+ bl CTRDG_IsExisting
+_020DB2F4: ; 0x020DB2F4
+ cmp r0, #0x0
+ addeq sp, sp, #0x4
+ moveq r0, #0x0
+ ldmeqia sp!, {r4-r7,lr}
+ bxeq lr
+ bl CTRDG_CheckEnabled
+ ldr r0, _020DB42C ; =0x021D6944
+ ldrh r0, [r0, #0x2]
+ bl OS_LockCartridge
+ ldr r0, [sp, #0x18]
+ ands r0, r0, #0x1
+ bne _020DB338
+ mov r0, r7
+ bl MI_StopDma
+ mov r0, r5
+ mov r1, r4
+ bl DC_FlushRange
+_020DB338:
+ ldr r0, [sp, #0x18]
+ cmp r0, #0x11
+ bhi _020DB36C
+ cmp r0, #0x10
+ blo _020DB360
+ cmp r0, #0x10
+ beq _020DB38C
+ cmp r0, #0x11
+ beq _020DB3BC
+ b _020DB404
+_020DB360:
+ cmp r0, #0x1
+ beq _020DB3E4
+ b _020DB404
+_020DB36C:
+ cmp r0, #0x20
+ bhi _020DB380
+ cmp r0, #0x20
+ beq _020DB3A4
+ b _020DB404
+_020DB380:
+ cmp r0, #0x21
+ beq _020DB3D0
+ b _020DB404
+_020DB38C:
+ mov r0, r7
+ mov r1, r6
+ mov r2, r5
+ mov r3, r4
+ bl MI_DmaCopy16
+ b _020DB404
+_020DB3A4:
+ mov r0, r7
+ mov r1, r6
+ mov r2, r5
+ mov r3, r4
+ bl MI_DmaCopy32
+ b _020DB404
+_020DB3BC:
+ mov r0, r6
+ mov r1, r5
+ mov r2, r4
+ bl MIi_CpuCopy16
+ b _020DB404
+_020DB3D0:
+ mov r0, r6
+ mov r1, r5
+ mov r2, r4
+ bl MIi_CpuCopy32
+ b _020DB404
+_020DB3E4:
+ cmp r4, #0x0
+ mov r1, #0x0
+ bls _020DB404
+_020DB3F0:
+ ldrb r0, [r6], #0x1
+ add r1, r1, #0x1
+ cmp r1, r4
+ strb r0, [r5], #0x1
+ blo _020DB3F0
+_020DB404:
+ ldr r0, _020DB42C ; =0x021D6944
+ ldrh r0, [r0, #0x2]
+ bl OS_UnlockCartridge
+ bl CTRDG_IsExisting
+_020DB414: ; 0x020DB414
+ cmp r0, #0x0
+ movne r0, #0x1
+ moveq r0, #0x0
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r7,lr}
+ bx lr
+ .balign 4
+_020DB42C: .word 0x021D6944
+
+ arm_func_start CTRDG_CpuCopy32
+CTRDG_CpuCopy32: ; 0x020DB430
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ mov lr, r1
+ mov r3, r2
+ mov r12, #0x21
+ mov r1, r0
+ mov r2, lr
+ mov r0, #0x0
+ str r12, [sp, #0x0]
+ bl CTRDGi_CopyCommon
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+
+ arm_func_start CTRDG_CpuCopy16
+CTRDG_CpuCopy16: ; 0x020DB464
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ mov lr, r1
+ mov r3, r2
+ mov r12, #0x11
+ mov r1, r0
+ mov r2, lr
+ mov r0, #0x0
+ str r12, [sp, #0x0]
+ bl CTRDGi_CopyCommon
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+
+ arm_func_start CTRDG_CpuCopy8
+CTRDG_CpuCopy8: ; 0x020DB498
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ mov lr, r1
+ mov r3, r2
+ cmp lr, #0x8000000
+ blo _020DB4DC
+ ldr r2, _020DB500 ; =0x0A010000
+ cmp lr, r2
+ bhs _020DB4DC
+ mov r12, #0x1
+ mov r2, r0
+ mov r0, #0x0
+ str r12, [sp, #0x0]
+ bl CTRDGi_CopyCommon
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+_020DB4DC:
+ mov r12, #0x1
+ mov r1, r0
+ mov r2, lr
+ mov r0, #0x0
+ str r12, [sp, #0x0]
+ bl CTRDGi_CopyCommon
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+ .balign 4
+_020DB500: .word 0x0A010000
+
+ arm_func_start CTRDGi_SendtoPxi
+CTRDGi_SendtoPxi: ; 0x020DB504
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0x4
+ mov r7, r0
+ mov r1, r7
+ mov r0, #0xd
+ mov r2, #0x0
+ bl PXI_SendWordByFifo
+_020DB520: ; 0x020DB520
+ cmp r0, #0x0
+ addeq sp, sp, #0x4
+ ldmeqia sp!, {r4-r7,lr}
+ bxeq lr
+ mov r6, #0x1
+ mov r5, #0xd
+ mov r4, #0x0
+_020DB53C:
+ mov r0, r6
+ blx SVC_WaitByLoop
+ mov r0, r5
+ mov r1, r7
+ mov r2, r4
+ bl PXI_SendWordByFifo
+_020DB554: ; 0x020DB554
+ cmp r0, #0x0
+ bne _020DB53C
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r7,lr}
+ bx lr
+
+ arm_func_start CTRDGi_UnlockByProcessor
+CTRDGi_UnlockByProcessor: ; 0x020DB568
+ stmdb sp!, {r4,lr}
+ mov r4, r1
+ ldr r1, [r4, #0x0]
+ cmp r1, #0x0
+ bne _020DB580
+ bl OS_UnlockCartridge
+_020DB580:
+ ldr r0, [r4, #0x4]
+ bl OS_RestoreInterrupts
+ ldmia sp!, {r4,lr}
+ bx lr
+
+ arm_func_start CTRDGi_LockByProcessor
+CTRDGi_LockByProcessor: ; 0x020DB590
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0x4
+ mov r7, r0
+ mov r6, r1
+ ldr r5, _020DB60C ; =0x027FFFE8
+ mov r4, #0x1
+_020DB5A8:
+ bl OS_DisableInterrupts
+ str r0, [r6, #0x4]
+ mov r0, r5
+ bl OS_ReadOwnerOfLockWord
+ and r0, r0, #0x40
+ str r0, [r6, #0x0]
+ ldr r0, [r6, #0x0]
+ cmp r0, #0x0
+ addne sp, sp, #0x4
+ ldmneia sp!, {r4-r7,lr}
+ bxne lr
+ mov r0, r7
+ bl OS_TryLockCartridge
+_020DB5DC: ; 0x020DB5DC
+ cmp r0, #0x0
+ addeq sp, sp, #0x4
+ ldmeqia sp!, {r4-r7,lr}
+ bxeq lr
+ ldr r0, [r6, #0x4]
+ bl OS_RestoreInterrupts
+ mov r0, r4
+ blx SVC_WaitByLoop
+ b _020DB5A8
+_020DB600: ; 0x020DB600
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r7,lr}
+ bx lr
+ .balign 4
+_020DB60C: .word 0x027FFFE8
+
+ arm_func_start CTRDGi_RestoreAccessCycle
+CTRDGi_RestoreAccessCycle: ; 0x020DB610
+ ldr r3, _020DB640 ; =0x04000204
+ ldr r2, [r0, #0x0]
+ ldrh r1, [r3, #0x0]
+ bic r1, r1, #0xc
+ orr r1, r1, r2, lsl #0x2
+ strh r1, [r3, #0x0]
+ ldrh r1, [r3, #0x0]
+ ldr r2, [r0, #0x4]
+ bic r0, r1, #0x10
+ orr r0, r0, r2, lsl #0x4
+ strh r0, [r3, #0x0]
+ bx lr
+ .balign 4
+_020DB640: .word 0x04000204
+
+ arm_func_start CTRDGi_ChangeLatestAccessCycle
+CTRDGi_ChangeLatestAccessCycle: ; 0x020DB644
+ ldr r2, _020DB688 ; =0x04000204
+ ldrh r1, [r2, #0x0]
+ and r1, r1, #0xc
+ mov r1, r1, asr #0x2
+ str r1, [r0, #0x0]
+ ldrh r1, [r2, #0x0]
+ and r1, r1, #0x10
+ mov r1, r1, asr #0x4
+ str r1, [r0, #0x4]
+ ldrh r0, [r2, #0x0]
+ bic r0, r0, #0xc
+ orr r0, r0, #0xc
+ strh r0, [r2, #0x0]
+ ldrh r0, [r2, #0x0]
+ bic r0, r0, #0x10
+ strh r0, [r2, #0x0]
+ bx lr
+ .balign 4
+_020DB688: .word 0x04000204
+
+ arm_func_start CTRDG_IsExisting
+CTRDG_IsExisting:
+ stmdb sp!, {r4,lr}
+ sub sp, sp, #0x10
+ ldr r2, _020DB798 ; =0x027FFC30
+ ldr r0, _020DB79C ; =0x0000FFFF
+ ldrh r1, [r2, #0x0]
+ mov r4, #0x1
+ cmp r1, r0
+ addeq sp, sp, #0x10
+ moveq r0, #0x0
+ ldmeqia sp!, {r4,lr}
+ bxeq lr
+ ldrb r0, [r2, #0x5]
+ mov r0, r0, lsl #0x1e
+ mov r0, r0, lsr #0x1f
+ cmp r0, #0x1
+ addeq sp, sp, #0x10
+ moveq r0, #0x0
+ ldmeqia sp!, {r4,lr}
+ bxeq lr
+ ldr r0, _020DB7A0 ; =0x021D6944
+ add r1, sp, #0x0
+ ldrh r0, [r0, #0x2]
+ bl CTRDGi_LockByProcessor
+ add r0, sp, #0x8
+ bl CTRDGi_ChangeLatestAccessCycle
+ mov r0, #0x8000000
+ ldrb r2, [r0, #0xb2]
+ cmp r2, #0x96
+ bne _020DB714
+ ldr r1, _020DB798 ; =0x027FFC30
+ ldrh r0, [r0, #0xbe]
+ ldrh r1, [r1, #0x0]
+ cmp r1, r0
+ bne _020DB75C
+_020DB714:
+ cmp r2, #0x96
+ beq _020DB734
+ ldr r1, _020DB798 ; =0x027FFC30
+ ldr r0, _020DB7A4 ; =0x0801FFFE
+ ldrh r1, [r1, #0x0]
+ ldrh r0, [r0, #0x0]
+ cmp r1, r0
+ bne _020DB75C
+_020DB734:
+ ldr r2, _020DB798 ; =0x027FFC30
+ mov r0, #0x8000000
+ ldr r1, [r2, #0x8]
+ ldr r0, [r0, #0xac]
+ cmp r1, r0
+ beq _020DB770
+ ldrb r0, [r2, #0x5]
+ mov r0, r0, lsl #0x1f
+ movs r0, r0, lsr #0x1f
+ beq _020DB770
+_020DB75C:
+ ldr r1, _020DB798 ; =0x027FFC30
+ mov r4, #0x0
+ ldrb r0, [r1, #0x5]
+ orr r0, r0, #0x2
+ strb r0, [r1, #0x5]
+_020DB770:
+ add r0, sp, #0x8
+ bl CTRDGi_RestoreAccessCycle
+ ldr r0, _020DB7A0 ; =0x021D6944
+ add r1, sp, #0x0
+ ldrh r0, [r0, #0x2]
+ bl CTRDGi_UnlockByProcessor
+ mov r0, r4
+ add sp, sp, #0x10
+ ldmia sp!, {r4,lr}
+ bx lr
+ .balign 4
+_020DB798: .word 0x027FFC30
+_020DB79C: .word 0x0000FFFF
+_020DB7A0: .word 0x021D6944
+_020DB7A4: .word 0x0801FFFE
+
+ arm_func_start CTRDG_IsPulledOut
+CTRDG_IsPulledOut: ; 0x020DB7A8
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldr r2, _020DB800 ; =0x027FFC30
+ ldr r0, _020DB804 ; =0x0000FFFF
+ ldrh r1, [r2, #0x0]
+ cmp r1, r0
+ addeq sp, sp, #0x4
+ moveq r0, #0x0
+ ldmeqia sp!, {lr}
+ bxeq lr
+ ldrb r0, [r2, #0x5]
+ mov r0, r0, lsl #0x1e
+ movs r0, r0, lsr #0x1f
+ bne _020DB7E4
+ bl CTRDG_IsExisting
+_020DB7E4:
+ ldr r0, _020DB800 ; =0x027FFC30
+ ldrb r0, [r0, #0x5]
+ mov r0, r0, lsl #0x1e
+ mov r0, r0, lsr #0x1f
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+ .balign 4
+_020DB800: .word 0x027FFC30
+_020DB804: .word 0x0000FFFF
+
+ arm_func_start CTRDGi_GetAgbMakerCodeAtInit
+CTRDGi_GetAgbMakerCodeAtInit: ; 0x020DB808
+ stmdb sp!, {r4,lr}
+ mov r4, #0x0
+ bl CTRDGi_IsAgbCartridgeAtInit
+_020DB814: ; 0x020DB814
+ cmp r0, #0x0
+ ldrne r0, _020DB82C ; =0x027FFC30
+ ldrneh r4, [r0, #0x6]
+ mov r0, r4
+ ldmia sp!, {r4,lr}
+ bx lr
+ .balign 4
+_020DB82C: .word 0x027FFC30
+
+ arm_func_start CTRDG_GetAgbMakerCode
+CTRDG_GetAgbMakerCode: ; 0x020DB830
+ stmdb sp!, {r4,lr}
+ mov r4, #0x0
+ bl CTRDG_IsExisting
+_020DB83C: ; 0x020DB83C
+ cmp r0, #0x0
+ beq _020DB84C
+ bl CTRDGi_GetAgbMakerCodeAtInit
+ mov r4, r0
+_020DB84C:
+ mov r0, r4
+ ldmia sp!, {r4,lr}
+ bx lr
+
+ arm_func_start CTRDGi_GetAgbGameCodeAtInit
+CTRDGi_GetAgbGameCodeAtInit: ; 0x020DB858
+ stmdb sp!, {r4,lr}
+ mov r4, #0x0
+ bl CTRDGi_IsAgbCartridgeAtInit
+_020DB864: ; 0x020DB864
+ cmp r0, #0x0
+ ldrne r0, _020DB87C ; =0x027FFC30
+ ldrne r4, [r0, #0x8]
+ mov r0, r4
+ ldmia sp!, {r4,lr}
+ bx lr
+ .balign 4
+_020DB87C: .word 0x027FFC30
+
+ arm_func_start CTRDG_GetAgbGameCode
+CTRDG_GetAgbGameCode: ; 0x020DB880
+ stmdb sp!, {r4,lr}
+ mov r4, #0x0
+ bl CTRDG_IsExisting
+_020DB88C: ; 0x020DB88C
+ cmp r0, #0x0
+ beq _020DB89C
+ bl CTRDGi_GetAgbGameCodeAtInit
+ mov r4, r0
+_020DB89C:
+ mov r0, r4
+ ldmia sp!, {r4,lr}
+ bx lr
+
+ arm_func_start CTRDGi_IsAgbCartridgeAtInit
+CTRDGi_IsAgbCartridgeAtInit:
+ ldr r0, _020DB8BC ; =0x027FFC30
+ ldrb r0, [r0, #0x5]
+ mov r0, r0, lsl #0x1f
+ mov r0, r0, lsr #0x1f
+ bx lr
+ .balign 4
+_020DB8BC: .word 0x027FFC30
+
+ arm_func_start CTRDG_IsOptionCartridge
+CTRDG_IsOptionCartridge:
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ bl CTRDG_IsExisting
+_020DB8CC: ; 0x020DB8CC
+ cmp r0, #0x0
+ beq _020DB8EC
+ bl CTRDGi_IsAgbCartridgeAtInit
+_020DB8D8: ; 0x020DB8D8
+ cmp r0, #0x0
+ addeq sp, sp, #0x4
+ moveq r0, #0x1
+ ldmeqia sp!, {lr}
+ bxeq lr
+_020DB8EC:
+ mov r0, #0x0
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+
+ arm_func_start CTRDG_IsAgbCartridge
+CTRDG_IsAgbCartridge: ; 0x020DB8FC
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ bl CTRDG_IsExisting
+_020DB908: ; 0x020DB908
+ cmp r0, #0x0
+ beq _020DB928
+ bl CTRDGi_IsAgbCartridgeAtInit
+_020DB914: ; 0x020DB914
+ cmp r0, #0x0
+ addne sp, sp, #0x4
+ movne r0, #0x1
+ ldmneia sp!, {lr}
+ bxne lr
+_020DB928:
+ mov r0, #0x0
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+
+ arm_func_start CTRDGi_InitCommon
+CTRDGi_InitCommon: ; 0x020DB938
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldr r1, _020DB970 ; =0x021D6944
+ mov r3, #0x0
+ ldr r2, _020DB974 ; =0x05000001
+ add r0, sp, #0x0
+ str r3, [sp, #0x0]
+ blx FUN_020002FE
+ bl OS_GetLockID
+ ldr r1, _020DB970 ; =0x021D6944
+ strh r0, [r1, #0x2]
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+ .balign 4
+_020DB970: .word 0x021D6944
+_020DB974: .word 0x05000001
+
+ arm_func_start CTRDGi_CallbackForSetPhi
+CTRDGi_CallbackForSetPhi: ; 0x020DB978
+ ldr r0, _020DB988 ; =0x021D694C
+ mov r1, #0x0
+ str r1, [r0, #0x0]
+ bx lr
+ .balign 4
+_020DB988: .word 0x021D694C
+
+ arm_func_start CTRDG_TerminateForPulledOut
+CTRDG_TerminateForPulledOut: ; 0x020DB98C
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ mov r0, #0x2
+ bl CTRDGi_SendtoPxi
+ bl OS_Terminate
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+
+ arm_func_start CTRDGi_PulledOutCallback
+CTRDGi_PulledOutCallback: ; 0x020DB9AC
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ and r0, r1, #0x3f
+ cmp r0, #0x11
+ bne _020DBA14
+ ldr r0, _020DBA24 ; =0x021D6954
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ addne sp, sp, #0x4
+ ldmneia sp!, {lr}
+ bxne lr
+ ldr r1, _020DBA28 ; =0x021D6958
+ mov r0, #0x0
+ ldr r1, [r1, #0x0]
+ cmp r1, #0x0
+ beq _020DB9F0
+ blx r1
+_020DB9F0:
+ cmp r0, #0x0
+ beq _020DB9FC
+ bl CTRDG_TerminateForPulledOut
+_020DB9FC:
+ ldr r0, _020DBA24 ; =0x021D6954
+ mov r1, #0x1
+ str r1, [r0, #0x0]
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+_020DBA14:
+ bl OS_Terminate
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+ .balign 4
+_020DBA24: .word 0x021D6954
+_020DBA28: .word 0x021D6958
+
+ arm_func_start CTRDGi_CallbackForInitModuleInfo
+CTRDGi_CallbackForInitModuleInfo: ; 0x020DBA2C
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ and r0, r1, #0x3f
+ cmp r0, #0x1
+ ldreq r0, _020DBA64 ; =0x021D6944
+ moveq r1, #0x1
+ streqh r1, [r0, #0x0]
+ addeq sp, sp, #0x4
+ ldmeqia sp!, {lr}
+ bxeq lr
+ bl OS_Terminate
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+ .balign 4
+_020DBA64: .word 0x021D6944
+
+ arm_func_start CTRDGi_InitModuleInfo
+CTRDGi_InitModuleInfo: ; 0x020DBA68
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0x14
+ ldr r0, _020DBC50 ; =0x021D6948
+ ldr r1, [r0, #0x0]
+ cmp r1, #0x0
+ addne sp, sp, #0x14
+ ldmneia sp!, {r4-r7,lr}
+ bxne lr
+ ldr r1, _020DBC54 ; =0x04000300
+ mov r2, #0x1
+ str r2, [r0, #0x0]
+ ldrh r0, [r1, #0x0]
+ ands r0, r0, #0x1
+ addeq sp, sp, #0x14
+ ldmeqia sp!, {r4-r7,lr}
+ bxeq lr
+ mov r0, #0x40000
+ bl OS_SetIrqMask
+ ldr r3, _020DBC58 ; =0x04000208
+ mov r2, #0x1
+ ldrh r4, [r3, #0x0]
+ ldr r1, _020DBC5C ; =0x021D6944
+ mov r6, r0
+ strh r2, [r3, #0x0]
+ ldrh r0, [r1, #0x2]
+ add r1, sp, #0x0
+ bl CTRDGi_LockByProcessor
+ ldr r1, _020DBC60 ; =0x04000204
+ add r0, sp, #0x8
+ ldrh r1, [r1, #0x0]
+ and r1, r1, #0x8000
+ mov r5, r1, asr #0xf
+ bl CTRDGi_ChangeLatestAccessCycle
+ ldr r3, _020DBC60 ; =0x04000204
+ ldr r0, _020DBC64 ; =0x021D6960
+ ldrh r2, [r3, #0x0]
+ add r0, r0, #0x80
+ mov r1, #0x40
+ bic r2, r2, #0x8000
+ strh r2, [r3, #0x0]
+ bl DC_InvalidateRange
+ ldr r2, _020DBC64 ; =0x021D6960
+ ldr r1, _020DBC68 ; =0x08000080
+ mov r0, #0x1
+ mov r3, #0x40
+ add r2, r2, #0x80
+ bl MI_DmaCopy16
+ ldr r2, _020DBC60 ; =0x04000204
+ add r0, sp, #0x8
+ ldrh r1, [r2, #0x0]
+ bic r1, r1, #0x8000
+ orr r1, r1, r5, lsl #0xf
+ strh r1, [r2, #0x0]
+ bl CTRDGi_RestoreAccessCycle
+ ldr r0, _020DBC5C ; =0x021D6944
+ add r1, sp, #0x0
+ ldrh r0, [r0, #0x2]
+ bl CTRDGi_UnlockByProcessor
+ ldr r0, _020DBC6C ; =0x027FFF9B
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x0
+ bne _020DBB70
+ ldr r0, _020DBC70 ; =0x027FFF9A
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x0
+ bne _020DBBDC
+_020DBB70:
+ ldr r2, _020DBC64 ; =0x021D6960
+ ldr r0, _020DBC74 ; =0x027FFC30
+ ldrh r1, [r2, #0xbe]
+ mov r3, #0x0
+ strh r1, [r0, #0x0]
+_020DBB84:
+ add r0, r2, r3
+ ldrb r1, [r0, #0xb5]
+ add r0, r3, #0x2700000
+ add r0, r0, #0xff000
+ add r3, r3, #0x1
+ strb r1, [r0, #0xC32]
+ cmp r3, #0x3
+ blt _020DBB84
+ ldrh r0, [r2, #0xb0]
+ ldr r1, _020DBC74 ; =0x027FFC30
+ strh r0, [r1, #0x6]
+ ldr r0, [r2, #0xac]
+ str r0, [r1, #0x8]
+ bl CTRDG_IsExisting
+_020DBBBC: ; 0x020DBBBC
+ cmp r0, #0x0
+ movne r2, #0x1
+ ldr r1, _020DBC6C ; =0x027FFF9B
+ moveq r2, #0x0
+ strb r2, [r1, #0x0]
+ ldr r0, _020DBC70 ; =0x027FFF9A
+ mov r1, #0x1
+ strb r1, [r0, #0x0]
+_020DBBDC:
+ ldr r0, _020DBC78 ; =0xFFFF0020
+ ldr r1, _020DBC7C ; =0x021D6964
+ mov r2, #0x9c
+ bl MIi_CpuCopy32
+ bl DC_FlushAll
+ ldr r0, _020DBC64 ; =0x021D6960
+ add r0, r0, #0xfe000000
+ mov r0, r0, lsr #0x5
+ mov r0, r0, lsl #0x6
+ orr r0, r0, #0x1
+ bl CTRDGi_SendtoPxi
+ ldr r5, _020DBC5C ; =0x021D6944
+ ldrh r0, [r5, #0x0]
+ cmp r0, #0x1
+ beq _020DBC30
+ mov r7, #0x1
+_020DBC1C:
+ mov r0, r7
+ blx SVC_WaitByLoop
+ ldrh r0, [r5, #0x0]
+ cmp r0, #0x1
+ bne _020DBC1C
+_020DBC30:
+ ldr r2, _020DBC58 ; =0x04000208
+ mov r0, r6
+ ldrh r1, [r2, #0x0]
+ strh r4, [r2, #0x0]
+ bl OS_SetIrqMask
+ add sp, sp, #0x14
+ ldmia sp!, {r4-r7,lr}
+ bx lr
+ .balign 4
+_020DBC50: .word 0x021D6948
+_020DBC54: .word 0x04000300
+_020DBC58: .word 0x04000208
+_020DBC5C: .word 0x021D6944
+_020DBC60: .word 0x04000204
+_020DBC64: .word 0x021D6960
+_020DBC68: .word 0x08000080
+_020DBC6C: .word 0x027FFF9B
+_020DBC70: .word 0x027FFF9A
+_020DBC74: .word 0x027FFC30
+_020DBC78: .word 0xFFFF0020
+_020DBC7C: .word 0x021D6964
+
+ arm_func_start CTRDG_Init
+CTRDG_Init: ; 0x020DBC80
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ ldr r0, _020DBD34 ; =0x021D6950
+ ldr r1, [r0, #0x0]
+ cmp r1, #0x0
+ addne sp, sp, #0x4
+ ldmneia sp!, {r4-r5,lr}
+ bxne lr
+ mov r1, #0x1
+ str r1, [r0, #0x0]
+ bl CTRDGi_InitCommon
+ ldr r0, _020DBD38 ; =0x021D6954
+ mov r1, #0x0
+ str r1, [r0, #0x0]
+ bl PXI_Init
+ mov r5, #0xd
+ mov r4, #0x1
+_020DBCC4:
+ mov r0, r5
+ mov r1, r4
+ bl PXI_IsCallbackReady
+_020DBCD0: ; 0x020DBCD0
+ cmp r0, #0x0
+ beq _020DBCC4
+ ldr r1, _020DBD3C ; =CTRDGi_CallbackForInitModuleInfo
+ mov r0, #0xd
+ bl PXI_SetFifoRecvCallback
+ bl CTRDGi_InitModuleInfo
+ mov r0, #0xd
+ mov r1, #0x0
+ bl PXI_SetFifoRecvCallback
+ ldr r1, _020DBD40 ; =CTRDGi_PulledOutCallback
+ mov r0, #0xd
+ bl PXI_SetFifoRecvCallback
+ ldr r1, _020DBD44 ; =0x021D6958
+ mov r2, #0x0
+ ldr r0, _020DBD48 ; =0x021D6A20
+ str r2, [r1, #0x0]
+ bl CTRDGi_InitTaskThread
+ ldr r1, _020DBD4C ; =CTRDGi_CallbackForSetPhi
+ mov r0, #0x11
+ bl PXI_SetFifoRecvCallback
+_020DBD20: ; 0x020DBD20
+ mov r0, #0x0
+ bl CTRDG_Enable
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,lr}
+ bx lr
+ .balign 4
+_020DBD34: .word 0x021D6950
+_020DBD38: .word 0x021D6954
+_020DBD3C: .word CTRDGi_CallbackForInitModuleInfo
+_020DBD40: .word CTRDGi_PulledOutCallback
+_020DBD44: .word 0x021D6958
+_020DBD48: .word 0x021D6A20
+_020DBD4C: .word CTRDGi_CallbackForSetPhi
+
+ arm_func_start CTRDG_IdentifyAgbBackup
+CTRDG_IdentifyAgbBackup: ; 0x020DBD50
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0x4
+ mov r7, r0
+ cmp r7, #0x1
+ mov r0, #0x1
+ bhi _020DBEAC
+ bl OS_GetLockID
+ ldr r1, _020DBED8 ; =0x021D6B0C
+ strh r0, [r1, #0x0]
+ ldrh r0, [r1, #0x0]
+ bl OS_LockCartridge
+ ldr r6, _020DBEDC ; =0x04000204
+ ldr r1, _020DBEE0 ; =0x02103FE4
+ ldrh r3, [r6, #0x0]
+ ldrh r2, [r6, #0x0]
+ ldr r0, _020DBEE4 ; =0x021D6B28
+ and r4, r3, #0x3
+ bic r2, r2, #0x3
+ orr r2, r2, #0x3
+ strh r2, [r6, #0x0]
+ str r1, [r0, #0x0]
+ bl CTRDGi_ReadFlashID
+ ldr r2, _020DBEDC ; =0x04000204
+ mov r6, r0
+ ldrh r1, [r2, #0x0]
+ cmp r7, #0x0
+ ldreq r5, _020DBEE8 ; =0x02103FF4
+ bic r1, r1, #0x3
+ orr r1, r1, r4
+ cmp r7, #0x1
+ ldr r0, _020DBED8 ; =0x021D6B0C
+ strh r1, [r2, #0x0]
+ ldrh r0, [r0, #0x0]
+ ldreq r5, _020DBEEC ; =0x02103FE8
+ bl OS_UnlockCartridge2
+ ldr r2, [r5, #0x0]
+ mov r0, #0x1
+ ldrh r1, [r2, #0x38]
+ cmp r1, #0x0
+ beq _020DBE14
+ and r3, r6, #0xff
+_020DBDF4:
+ ldrh r1, [r2, #0x38]
+ cmp r3, r1
+ moveq r0, #0x0
+ beq _020DBE14
+ ldr r2, [r5, #0x4]!
+ ldrh r1, [r2, #0x38]
+ cmp r1, #0x0
+ bne _020DBDF4
+_020DBE14:
+ ldr r2, [r2, #0x0]
+ ldr r1, _020DBEF0 ; =0x021D6B14
+ ldr r3, _020DBEF4 ; =0x021D6B34
+ str r2, [r1, #0x0]
+ ldr r1, [r5, #0x0]
+ ldr r2, _020DBEF8 ; =0x021D6B2C
+ ldr r4, [r1, #0x4]
+ ldr r1, _020DBEFC ; =0x021D6B18
+ str r4, [r3, #0x0]
+ ldr r3, [r5, #0x0]
+ ldr r6, _020DBF00 ; =0x021D6B1C
+ ldr r3, [r3, #0x8]
+ ldr r4, _020DBF04 ; =0x021D6B30
+ str r3, [r2, #0x0]
+ ldr r2, [r5, #0x0]
+ ldr r3, _020DBF08 ; =0x021D6B24
+ ldr r7, [r2, #0xc]
+ ldr r2, _020DBEE4 ; =0x021D6B28
+ str r7, [r1, #0x0]
+ ldr r7, [r5, #0x0]
+ ldr r1, _020DBF0C ; =0x021D6B20
+ ldr r7, [r7, #0x10]
+ add sp, sp, #0x4
+ str r7, [r6, #0x0]
+ ldr r6, [r5, #0x0]
+ ldr r6, [r6, #0x14]
+ str r6, [r4, #0x0]
+ ldr r4, [r5, #0x0]
+ ldr r4, [r4, #0x18]
+ str r4, [r3, #0x0]
+ ldr r3, [r5, #0x0]
+ ldr r3, [r3, #0x1c]
+ str r3, [r2, #0x0]
+ ldr r2, [r5, #0x0]
+ add r2, r2, #0x20
+ str r2, [r1, #0x0]
+ ldmia sp!, {r4-r7,lr}
+ bx lr
+_020DBEAC:
+ cmp r7, #0x2
+ addne sp, sp, #0x4
+ ldmneia sp!, {r4-r7,lr}
+ bxne lr
+ bl OS_GetLockID
+ ldr r1, _020DBF10 ; =0x021D6B4C
+ strh r0, [r1, #0x0]
+ mov r0, #0x0
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r7,lr}
+ bx lr
+ .balign 4
+_020DBED8: .word 0x021D6B0C
+_020DBEDC: .word 0x04000204
+_020DBEE0: .word 0x02103FE4
+_020DBEE4: .word 0x021D6B28
+_020DBEE8: .word 0x02103FF4
+_020DBEEC: .word 0x02103FE8
+_020DBEF0: .word 0x021D6B14
+_020DBEF4: .word 0x021D6B34
+_020DBEF8: .word 0x021D6B2C
+_020DBEFC: .word 0x021D6B18
+_020DBF00: .word 0x021D6B1C
+_020DBF04: .word 0x021D6B30
+_020DBF08: .word 0x021D6B24
+_020DBF0C: .word 0x021D6B20
+_020DBF10: .word 0x021D6B4C
+
+ arm_func_start CTRDG_WriteAndVerifyAgbFlashAsync
+CTRDG_WriteAndVerifyAgbFlashAsync: ; 0x020DBF14
+ stmdb sp!, {lr}
+ sub sp, sp, #0x24
+ str r1, [sp, #0xc]
+ strh r0, [sp, #0x20]
+ str r2, [sp, #0x18]
+ ldr r1, _020DBF44 ; =CTRDGi_WriteAndVerifyAgbFlashSectorCore
+ add r0, sp, #0x0
+ mov r2, r3
+ bl CTRDGi_SetTask
+ add sp, sp, #0x24
+ ldmia sp!, {lr}
+ bx lr
+ .balign 4
+_020DBF44: .word CTRDGi_WriteAndVerifyAgbFlashSectorCore
+
+ arm_func_start CTRDG_VerifyAgbFlash
+CTRDG_VerifyAgbFlash:
+ stmdb sp!, {lr}
+ sub sp, sp, #0x24
+ strh r0, [sp, #0x20]
+ add r0, sp, #0x0
+ str r1, [sp, #0xc]
+ str r2, [sp, #0x18]
+ bl CTRDGi_VerifyAgbFlashCore
+ add sp, sp, #0x24
+ ldmia sp!, {lr}
+ bx lr
+
+ arm_func_start CTRDG_WriteAgbFlashSector
+CTRDG_WriteAgbFlashSector:
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldr r2, _020DBF90 ; =0x021D6B14
+ ldr r2, [r2, #0x0]
+ blx r2
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+ .balign 4
+_020DBF90: .word 0x021D6B14
+
+ arm_func_start CTRDG_ReadAgbFlash
+CTRDG_ReadAgbFlash: ; 0x020DBF94
+ stmdb sp!, {lr}
+ sub sp, sp, #0x24
+ strh r0, [sp, #0x20]
+ add r0, sp, #0x0
+ str r1, [sp, #0x14]
+ str r2, [sp, #0x1c]
+ str r3, [sp, #0x18]
+ bl CTRDGi_ReadAgbFlashCore
+ add sp, sp, #0x24
+ ldmia sp!, {lr}
+ bx lr
+
+ arm_func_start CTRDGi_WriteAndVerifyAgbFlashSectorCore
+CTRDGi_WriteAndVerifyAgbFlashSectorCore: ; 0x020DBFC0
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0x24
+ mov r4, r0
+ ldmia r4!, {r0-r3}
+ add r12, sp, #0x0
+ stmia r12!, {r0-r3}
+ ldmia r4!, {r0-r3}
+ stmia r12!, {r0-r3}
+ ldr r0, [r4, #0x0]
+ mov r7, #0x0
+ str r0, [r12, #0x0]
+ ldrh r6, [sp, #0x20]
+ ldr r5, [sp, #0xc]
+ ldr r4, [sp, #0x18]
+_020DBFF8:
+ mov r0, r6
+ mov r1, r5
+ bl CTRDG_WriteAgbFlashSector
+_020DC004: ; 0x020DC004
+ cmp r0, #0x0
+ bne _020DC02C
+ mov r0, r6
+ mov r1, r5
+ mov r2, r4
+ bl CTRDG_VerifyAgbFlash
+_020DC01C: ; 0x020DC01C
+ cmp r0, #0x0
+ addeq sp, sp, #0x24
+ ldmeqia sp!, {r4-r7,lr}
+ bxeq lr
+_020DC02C:
+ add r1, r7, #0x1
+ mov r1, r1, lsl #0x10
+ mov r7, r1, lsr #0x10
+ cmp r7, #0x3
+ blo _020DBFF8
+ add sp, sp, #0x24
+ ldmia sp!, {r4-r7,lr}
+ bx lr
+
+ arm_func_start CTRDGi_VerifyAgbFlashCore
+CTRDGi_VerifyAgbFlashCore: ; 0x020DC04C
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0x24
+ mov r5, r0
+ ldmia r5!, {r0-r3}
+ add r4, sp, #0x0
+ stmia r4!, {r0-r3}
+ ldmia r5!, {r0-r3}
+ stmia r4!, {r0-r3}
+ ldr r0, _020DC128 ; =0x021D6B0C
+ ldr r1, [r5, #0x0]
+ ldrh r0, [r0, #0x0]
+ str r1, [r4, #0x0]
+ ldrh r6, [sp, #0x20]
+ ldr r5, [sp, #0xc]
+ ldr r4, [sp, #0x18]
+ bl OS_LockCartridge
+ ldr r3, _020DC12C ; =0x04000204
+ ldr r0, _020DC130 ; =0x021D6B20
+ ldrh r2, [r3, #0x0]
+ ldrh r1, [r3, #0x0]
+ and r7, r2, #0x3
+ bic r1, r1, #0x3
+ orr r1, r1, #0x3
+ strh r1, [r3, #0x0]
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x20000
+ bne _020DC0D4
+ mov r0, r6, lsl #0xc
+ mov r0, r0, lsr #0x10
+ bl CTRDGi_SetFlashBankMx
+ and r0, r6, #0xf
+ mov r0, r0, lsl #0x10
+ mov r6, r0, lsr #0x10
+_020DC0D4:
+ ldr r1, _020DC130 ; =0x021D6B20
+ mov r0, r5
+ ldr r1, [r1, #0x0]
+ mov r2, r4
+ ldrh r1, [r1, #0x8]
+ mov r1, r6, lsl r1
+ add r1, r1, #0xa000000
+ bl CTRDGi_VerifyFlashSectorCore
+ ldr r3, _020DC12C ; =0x04000204
+ ldr r1, _020DC128 ; =0x021D6B0C
+ ldrh r2, [r3, #0x0]
+ mov r4, r0
+ bic r0, r2, #0x3
+ orr r0, r0, r7
+ strh r0, [r3, #0x0]
+ ldrh r0, [r1, #0x0]
+ bl OS_UnlockCartridge2
+ mov r0, r4
+ add sp, sp, #0x24
+ ldmia sp!, {r4-r7,lr}
+ bx lr
+ .balign 4
+_020DC128: .word 0x021D6B0C
+_020DC12C: .word 0x04000204
+_020DC130: .word 0x021D6B20
+
+ arm_func_start CTRDGi_VerifyFlashSectorCore
+CTRDGi_VerifyFlashSectorCore: ; 0x020DC134
+ cmp r2, #0x0
+ sub r2, r2, #0x1
+ beq _020DC160
+_020DC140:
+ ldrb r12, [r1], #0x1
+ ldrb r3, [r0], #0x1
+ cmp r12, r3
+ subne r0, r1, #0x1
+ bxne lr
+ cmp r2, #0x0
+ sub r2, r2, #0x1
+ bne _020DC140
+_020DC160:
+ mov r0, #0x0
+ bx lr
+
+ arm_func_start CTRDGi_ReadAgbFlashCore
+CTRDGi_ReadAgbFlashCore: ; 0x020DC168
+ stmdb sp!, {r4-r8,lr}
+ sub sp, sp, #0x28
+ mov r5, r0
+ ldmia r5!, {r0-r3}
+ add r4, sp, #0x0
+ stmia r4!, {r0-r3}
+ ldmia r5!, {r0-r3}
+ stmia r4!, {r0-r3}
+ ldr r0, _020DC25C ; =0x021D6B0C
+ ldr r1, [r5, #0x0]
+ ldrh r0, [r0, #0x0]
+ str r1, [r4, #0x0]
+ ldrh r7, [sp, #0x20]
+ ldr r6, [sp, #0x14]
+ ldr r5, [sp, #0x1c]
+ ldr r4, [sp, #0x18]
+ bl OS_LockCartridge
+ ldr r3, _020DC260 ; =0x04000204
+ ldr r0, _020DC264 ; =0x021D6B20
+ ldrh r2, [r3, #0x0]
+ ldrh r1, [r3, #0x0]
+ and r8, r2, #0x3
+ bic r1, r1, #0x3
+ orr r1, r1, #0x3
+ strh r1, [r3, #0x0]
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x20000
+ bne _020DC1F4
+ mov r0, r7, lsl #0xc
+ mov r0, r0, lsr #0x10
+ bl CTRDGi_SetFlashBankMx
+ and r0, r7, #0xf
+ mov r0, r0, lsl #0x10
+ mov r7, r0, lsr #0x10
+_020DC1F4:
+ ldr r0, _020DC264 ; =0x021D6B20
+ cmp r4, #0x0
+ ldr r0, [r0, #0x0]
+ sub r4, r4, #0x1
+ ldrh r0, [r0, #0x8]
+ mov r0, r7, lsl r0
+ add r0, r0, #0xa000000
+ add r1, r6, r0
+ beq _020DC22C
+_020DC218:
+ ldrb r0, [r1], #0x1
+ cmp r4, #0x0
+ sub r4, r4, #0x1
+ strb r0, [r5], #0x1
+ bne _020DC218
+_020DC22C:
+ ldr r2, _020DC260 ; =0x04000204
+ ldr r0, _020DC25C ; =0x021D6B0C
+ ldrh r1, [r2, #0x0]
+ bic r1, r1, #0x3
+ orr r1, r1, r8
+ strh r1, [r2, #0x0]
+ ldrh r0, [r0, #0x0]
+ bl OS_UnlockCartridge2
+ mov r0, #0x0
+ add sp, sp, #0x28
+ ldmia sp!, {r4-r8,lr}
+ bx lr
+ .balign 4
+_020DC25C: .word 0x021D6B0C
+_020DC260: .word 0x04000204
+_020DC264: .word 0x021D6B20
+
+ arm_func_start CTRDGi_PollingSR1MCOMMON
+CTRDGi_PollingSR1MCOMMON: ; 0x020DC268
+ stmdb sp!, {r4-r8,lr}
+ mov r8, r0
+ mov r7, r1
+ mov r6, r2
+ mov r5, #0x0
+ bl StartFlashTimer
+ ldr r4, _020DC318 ; =0x021D6B10
+_020DC284:
+ bl CheckFlashTimer
+ mov r0, r7
+ bl CTRDGi_ReadSrFunc
+ cmp r0, r6
+ beq _020DC300
+ ands r0, r0, #0x20
+ beq _020DC2CC
+ mov r0, r7
+ bl CTRDGi_ReadSrFunc
+_020DC2A8: ; 0x020DC2A8
+ cmp r6, r0
+ beq _020DC300
+ orr r0, r8, #0xa000
+ mov r0, r0, lsl #0x10
+ ldr r1, _020DC31C ; =0x0A005555
+ mov r2, #0xf0
+ strb r2, [r1, #0x0]
+ mov r5, r0, lsr #0x10
+ b _020DC300
+_020DC2CC:
+ ldrh r0, [r4, #0x0]
+ cmp r0, #0x0
+ beq _020DC284
+ mov r0, r7
+ bl CTRDGi_ReadSrFunc
+_020DC2E0: ; 0x020DC2E0
+ cmp r6, r0
+ beq _020DC300
+ orr r0, r8, #0xc000
+ mov r0, r0, lsl #0x10
+ ldr r1, _020DC31C ; =0x0A005555
+ mov r2, #0xf0
+ strb r2, [r1, #0x0]
+ mov r5, r0, lsr #0x10
+_020DC300:
+ bl CTRDG_IsExisting
+_020DC304: ; 0x020DC304
+ cmp r0, #0x0
+ moveq r5, #0x1000
+ mov r0, r5
+ ldmia sp!, {r4-r8,lr}
+ bx lr
+ .balign 4
+_020DC318: .word 0x021D6B10
+_020DC31C: .word 0x0A005555
+
+ arm_func_start CTRDGi_PollingSR512kCOMMON
+CTRDGi_PollingSR512kCOMMON: ; 0x020DC320
+ stmdb sp!, {r4-r8,lr}
+ mov r4, r0
+ mov r8, r1
+ mov r7, r2
+ mov r6, #0x0
+ bl StartFlashTimer
+ ldr r5, _020DC3A8 ; =0x021D6B10
+_020DC33C:
+ mov r0, r8
+ bl CTRDGi_ReadSrFunc
+ cmp r0, r7
+ beq _020DC390
+ ldrh r0, [r5, #0x0]
+ cmp r0, #0x0
+ beq _020DC33C
+ mov r0, r8
+ bl CTRDGi_ReadSrFunc
+_020DC360: ; 0x020DC360
+ cmp r7, r0
+ beq _020DC390
+ ldr r0, _020DC3AC ; =0x021D6B20
+ ldr r0, [r0, #0x0]
+ ldrh r0, [r0, #0x18]
+ cmp r0, #0xc2
+ ldreq r0, _020DC3B0 ; =0x0A005555
+ moveq r1, #0xf0
+ streqb r1, [r0, #0x0]
+ orr r0, r4, #0xc000
+ mov r0, r0, lsl #0x10
+ mov r6, r0, lsr #0x10
+_020DC390:
+ bl CTRDG_IsExisting
+_020DC394: ; 0x020DC394
+ cmp r0, #0x0
+ moveq r6, #0x1000
+ mov r0, r6
+ ldmia sp!, {r4-r8,lr}
+ bx lr
+ .balign 4
+_020DC3A8: .word 0x021D6B10
+_020DC3AC: .word 0x021D6B20
+_020DC3B0: .word 0x0A005555
+
+ arm_func_start CTRDGi_ReadSrFunc
+CTRDGi_ReadSrFunc:
+ ldrb r0, [r0, #0x0]
+ bx lr
+
+ arm_func_start CheckFlashTimer
+CheckFlashTimer: ; 0x020DC3BC
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ bl OS_GetTick
+ ldr r3, _020DC420 ; =0x021D6B44
+ ldr r2, _020DC424 ; =0x000082EA
+ ldr r12, [r3, #0x0]
+ ldr r3, [r3, #0x4]
+ subs r12, r0, r12
+ sbc r0, r1, r3
+ mov r1, r0, lsl #0x6
+ orr r1, r1, r12, lsr #0x1a
+ mov r0, r12, lsl #0x6
+ mov r3, #0x0
+ bl _ll_udiv
+ ldr r2, _020DC428 ; =0x021D6B3C
+ ldr r3, [r2, #0x4]
+ ldr r2, [r2, #0x0]
+ cmp r3, r1
+ cmpeq r2, r0
+ ldrls r0, _020DC42C ; =0x021D6B10
+ movls r1, #0x1
+ strlsh r1, [r0, #0x0]
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+ .balign 4
+_020DC420: .word 0x021D6B44
+_020DC424: .word 0x000082EA
+_020DC428: .word 0x021D6B3C
+_020DC42C: .word 0x021D6B10
+
+ arm_func_start StartFlashTimer
+StartFlashTimer: ; 0x020DC430
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldr r1, _020DC47C ; =0x021D6B28
+ ldr r2, _020DC480 ; =0x021D6B10
+ mov r3, #0x0
+ ldr r1, [r1, #0x0]
+ strh r3, [r2, #0x0]
+ mov r0, r0, lsl #0x1
+ ldrh r1, [r1, r0]
+ ldr r0, _020DC484 ; =0x021D6B3C
+ str r1, [r0, #0x0]
+ str r3, [r0, #0x4]
+ bl OS_GetTick
+ ldr r2, _020DC488 ; =0x021D6B44
+ str r0, [r2, #0x0]
+ str r1, [r2, #0x4]
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+ .balign 4
+_020DC47C: .word 0x021D6B28
+_020DC480: .word 0x021D6B10
+_020DC484: .word 0x021D6B3C
+_020DC488: .word 0x021D6B44
+
+ arm_func_start CTRDGi_ReadFlashID
+CTRDGi_ReadFlashID: ; 0x020DC48C
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ ldr r5, _020DC590 ; =0x04000208
+ mov r0, #0x0
+ ldrh r2, [r5, #0x0]
+ ldr r1, _020DC594 ; =0x021D6B38
+ ldr r4, _020DC598 ; =0x0A005555
+ strh r0, [r5, #0x0]
+ str r2, [r1, #0x0]
+ mov r3, #0xaa
+ ldr r2, _020DC59C ; =0x0A002AAA
+ strb r3, [r4, #0x0]
+ mov r3, #0x55
+ strb r3, [r2, #0x0]
+ mov r2, #0x90
+ strb r2, [r4, #0x0]
+ ldrh r2, [r5, #0x0]
+ ldr r1, [r1, #0x0]
+ strh r1, [r5, #0x0]
+ bl StartFlashTimer
+ ldr r4, _020DC5A0 ; =0x021D6B10
+ ldrh r0, [r4, #0x0]
+ cmp r0, #0x0
+ bne _020DC4FC
+_020DC4EC:
+ bl CheckFlashTimer
+ ldrh r0, [r4, #0x0]
+ cmp r0, #0x0
+ beq _020DC4EC
+_020DC4FC:
+ ldr r0, _020DC5A4 ; =0x0A000001
+ bl CTRDGi_ReadSrFunc
+ mov r4, r0, lsl #0x18
+ mov r0, #0xa000000
+ bl CTRDGi_ReadSrFunc
+ ldr ip, _020DC590 ; =0x04000208
+ orr r4, r0, r4, lsr #0x10
+ ldrh r2, [r12, #0x0]
+ mov r0, #0x0
+ ldr r1, _020DC594 ; =0x021D6B38
+ strh r0, [r12, #0x0]
+ ldr r5, _020DC598 ; =0x0A005555
+ str r2, [r1, #0x0]
+ mov r3, #0xaa
+ ldr r2, _020DC59C ; =0x0A002AAA
+ strb r3, [r5, #0x0]
+ mov r3, #0x55
+ strb r3, [r2, #0x0]
+ mov r2, #0xf0
+ strb r2, [r5, #0x0]
+ strb r2, [r5, #0x0]
+ ldrh r2, [r12, #0x0]
+ ldr r1, [r1, #0x0]
+ strh r1, [r12, #0x0]
+ bl StartFlashTimer
+ ldr r5, _020DC5A0 ; =0x021D6B10
+ ldrh r0, [r5, #0x0]
+ cmp r0, #0x0
+ bne _020DC580
+_020DC570:
+ bl CheckFlashTimer
+ ldrh r0, [r5, #0x0]
+ cmp r0, #0x0
+ beq _020DC570
+_020DC580:
+ mov r0, r4
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,lr}
+ bx lr
+ .balign 4
+_020DC590: .word 0x04000208
+_020DC594: .word 0x021D6B38
+_020DC598: .word 0x0A005555
+_020DC59C: .word 0x0A002AAA
+_020DC5A0: .word 0x021D6B10
+_020DC5A4: .word 0x0A000001
+
+ arm_func_start CTRDGi_SetFlashBankMx
+CTRDGi_SetFlashBankMx: ; 0x020DC5A8
+ ldr r3, _020DC5D4 ; =0x0A005555
+ mov r2, #0xaa
+ ldr r1, _020DC5D8 ; =0x0A002AAA
+ strb r2, [r3, #0x0]
+ mov r2, #0x55
+ strb r2, [r1, #0x0]
+ mov r1, #0xb0
+ strb r1, [r3, #0x0]
+ mov r1, #0xa000000
+ strb r0, [r1, #0x0]
+ bx lr
+ .balign 4
+_020DC5D4: .word 0x0A005555
+_020DC5D8: .word 0x0A002AAA
+
+ arm_func_start CTRDGi_WriteFlashSectorAsyncAT
+CTRDGi_WriteFlashSectorAsyncAT: ; 0x020DC5DC
+ stmdb sp!, {lr}
+ sub sp, sp, #0x24
+ str r1, [sp, #0xc]
+ strh r0, [sp, #0x20]
+ ldr r1, _020DC604 ; =CTRDGi_WriteFlashSectorCoreAT
+ add r0, sp, #0x0
+ bl CTRDGi_SetTask
+ add sp, sp, #0x24
+ ldmia sp!, {lr}
+ bx lr
+ .balign 4
+_020DC604: .word CTRDGi_WriteFlashSectorCoreAT
+
+ arm_func_start CTRDGi_EraseFlashSectorAsyncAT
+CTRDGi_EraseFlashSectorAsyncAT: ; 0x020DC608
+ stmdb sp!, {lr}
+ sub sp, sp, #0x24
+ mov r2, r1
+ strh r0, [sp, #0x20]
+ ldr r1, _020DC630 ; =CTRDGi_EraseFlashSectorCoreAT
+ add r0, sp, #0x0
+ bl CTRDGi_SetTask
+ add sp, sp, #0x24
+ ldmia sp!, {lr}
+ bx lr
+ .balign 4
+_020DC630: .word CTRDGi_EraseFlashSectorCoreAT
+
+ arm_func_start CTRDGi_WriteFlashSectorAT
+CTRDGi_WriteFlashSectorAT: ; 0x020DC634
+ stmdb sp!, {lr}
+ sub sp, sp, #0x24
+ strh r0, [sp, #0x20]
+ add r0, sp, #0x0
+ str r1, [sp, #0xc]
+ bl CTRDGi_WriteFlashSectorCoreAT
+ mov r0, r0, lsl #0x10
+ mov r0, r0, lsr #0x10
+ add sp, sp, #0x24
+ ldmia sp!, {lr}
+ bx lr
+
+ arm_func_start CTRDGi_EraseFlashSectorAT
+CTRDGi_EraseFlashSectorAT:
+ stmdb sp!, {lr}
+ sub sp, sp, #0x24
+ strh r0, [sp, #0x20]
+ add r0, sp, #0x0
+ bl CTRDGi_EraseFlashSectorCoreAT
+ mov r0, r0, lsl #0x10
+ mov r0, r0, lsr #0x10
+ add sp, sp, #0x24
+ ldmia sp!, {lr}
+ bx lr
+
+ arm_func_start CTRDGi_WriteFlash4KBAsyncAT
+CTRDGi_WriteFlash4KBAsyncAT: ; 0x020DC688
+ stmdb sp!, {lr}
+ sub sp, sp, #0x24
+ str r1, [sp, #0xc]
+ strh r0, [sp, #0x20]
+ ldr r1, _020DC6B0 ; =CTRDGi_WriteFlash4KBCoreAT
+ add r0, sp, #0x0
+ bl CTRDGi_SetTask
+ add sp, sp, #0x24
+ ldmia sp!, {lr}
+ bx lr
+ .balign 4
+_020DC6B0: .word CTRDGi_WriteFlash4KBCoreAT
+
+ arm_func_start CTRDGi_EraseFlash4KBAsyncAT
+CTRDGi_EraseFlash4KBAsyncAT: ; 0x020DC6B4
+ stmdb sp!, {lr}
+ sub sp, sp, #0x24
+ mov r2, r1
+ strh r0, [sp, #0x20]
+ ldr r1, _020DC6DC ; =CTRDGi_EraseFlash4KBCoreAT
+ add r0, sp, #0x0
+ bl CTRDGi_SetTask
+ add sp, sp, #0x24
+ ldmia sp!, {lr}
+ bx lr
+ .balign 4
+_020DC6DC: .word CTRDGi_EraseFlash4KBCoreAT
+
+ arm_func_start CTRDGi_EraseFlashChipAsyncAT
+CTRDGi_EraseFlashChipAsyncAT: ; 0x020DC6E0
+ stmdb sp!, {lr}
+ sub sp, sp, #0x24
+ ldr r1, _020DC704 ; =CTRDGi_EraseFlashChipCoreAT
+ mov r2, r0
+ add r0, sp, #0x0
+ bl CTRDGi_SetTask
+ add sp, sp, #0x24
+ ldmia sp!, {lr}
+ bx lr
+ .balign 4
+_020DC704: .word CTRDGi_EraseFlashChipCoreAT
+
+ arm_func_start CTRDGi_WriteFlash4KBAT
+CTRDGi_WriteFlash4KBAT: ; 0x020DC708
+ stmdb sp!, {lr}
+ sub sp, sp, #0x24
+ strh r0, [sp, #0x20]
+ add r0, sp, #0x0
+ str r1, [sp, #0xc]
+ bl CTRDGi_WriteFlash4KBCoreAT
+ mov r0, r0, lsl #0x10
+ mov r0, r0, lsr #0x10
+ add sp, sp, #0x24
+ ldmia sp!, {lr}
+ bx lr
+
+ arm_func_start CTRDGi_EraseFlash4KBAT
+CTRDGi_EraseFlash4KBAT: ; 0x020DC734
+ stmdb sp!, {lr}
+ sub sp, sp, #0x24
+ strh r0, [sp, #0x20]
+ add r0, sp, #0x0
+ bl CTRDGi_EraseFlash4KBCoreAT
+ mov r0, r0, lsl #0x10
+ mov r0, r0, lsr #0x10
+ add sp, sp, #0x24
+ ldmia sp!, {lr}
+ bx lr
+
+ arm_func_start CTRDGi_EraseFlashChipAT
+CTRDGi_EraseFlashChipAT: ; 0x020DC75C
+ stmdb sp!, {lr}
+ sub sp, sp, #0x24
+ add r0, sp, #0x0
+ bl CTRDGi_EraseFlashChipCoreAT
+ mov r0, r0, lsl #0x10
+ mov r0, r0, lsr #0x10
+ add sp, sp, #0x24
+ ldmia sp!, {lr}
+ bx lr
+
+ arm_func_start CTRDGi_WriteFlash4KBCoreAT
+CTRDGi_WriteFlash4KBCoreAT: ; 0x020DC780
+ stmdb sp!, {r4-r9,lr}
+ sub sp, sp, #0x24
+ mov r5, r0
+ ldmia r5!, {r0-r3}
+ add r4, sp, #0x0
+ stmia r4!, {r0-r3}
+ ldmia r5!, {r0-r3}
+ stmia r4!, {r0-r3}
+ ldr r0, [r5, #0x0]
+ str r0, [r4, #0x0]
+ ldrh r0, [sp, #0x20]
+ ldr r7, [sp, #0xc]
+ cmp r0, #0x10
+ addcs sp, sp, #0x24
+ ldrhs r0, _020DC85C ; =0x000080FF
+ ldmcsia sp!, {r4-r9,lr}
+ bxcs lr
+ ldr r1, _020DC860 ; =0x0210400C
+ mov r0, r0, lsl #0x15
+ ldr r1, [r1, #0x24]
+ ldr r4, _020DC864 ; =0x021D6B08
+ mov r8, r0, lsr #0x10
+ strh r1, [r4, #0x0]
+ ldrh r0, [r4, #0x0]
+ cmp r0, #0x0
+ beq _020DC84C
+ ldr r0, _020DC868 ; =0x02104048
+ ldr r6, [r0, #0x24]
+ mov r5, #0x2
+_020DC7F4:
+ mov r9, r5
+_020DC7F8:
+ mov r0, r8
+ mov r1, r7
+ bl CTRDGi_WriteFlashSectorAT
+ movs r12, r0
+ beq _020DC81C
+ sub r0, r9, #0x1
+ mov r0, r0, lsl #0x10
+ movs r9, r0, lsr #0x10
+ bne _020DC7F8
+_020DC81C:
+ cmp r12, #0x0
+ bne _020DC84C
+ ldrh r1, [r4, #0x0]
+ add r0, r8, #0x1
+ mov r0, r0, lsl #0x10
+ sub r1, r1, r6
+ strh r1, [r4, #0x0]
+ ldrh r1, [r4, #0x0]
+ add r7, r7, r6
+ mov r8, r0, lsr #0x10
+ cmp r1, #0x0
+ bne _020DC7F4
+_020DC84C:
+ mov r0, r12
+ add sp, sp, #0x24
+ ldmia sp!, {r4-r9,lr}
+ bx lr
+ .balign 4
+_020DC85C: .word 0x000080FF
+_020DC860: .word 0x0210400C
+_020DC864: .word 0x021D6B08
+_020DC868: .word 0x02104048
+
+ arm_func_start CTRDGi_WriteFlashSectorCoreAT
+CTRDGi_WriteFlashSectorCoreAT: ; 0x020DC86C
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x24
+ mov r5, r0
+ add r4, sp, #0x0
+ ldmia r5!, {r0-r3}
+ stmia r4!, {r0-r3}
+ ldmia r5!, {r0-r3}
+ stmia r4!, {r0-r3}
+ ldr r0, _020DC984 ; =0x021D6B0C
+ ldr r1, [r5, #0x0]
+ ldrh r0, [r0, #0x0]
+ str r1, [r4, #0x0]
+ ldr r4, [sp, #0xc]
+ bl OS_LockCartridge
+ ldr r5, _020DC988 ; =0x04000204
+ ldr r1, _020DC98C ; =0x021D6B20
+ ldrh r0, [r5, #0x0]
+ ldr r1, [r1, #0x0]
+ ldrh r2, [r5, #0x0]
+ ldr r3, [r1, #0x10]
+ ldr r1, _020DC990 ; =0x02104048
+ bic r2, r2, #0x3
+ orr r2, r2, r3
+ strh r2, [r5, #0x0]
+ ldr r5, _020DC994 ; =0x04000208
+ ldrh lr, [sp, #0x20]
+ ldrh r12, [r1, #0x28]
+ ldrh r2, [r5, #0x0]
+ mov r3, #0x0
+ mov lr, lr, lsl r12
+ strh r3, [r5, #0x0]
+ ldr ip, _020DC998 ; =0x0A005555
+ mov r5, #0xaa
+ strb r5, [r12, #0x0]
+ ldr r3, _020DC99C ; =0x0A002AAA
+ mov r5, #0x55
+ strb r5, [r3, #0x0]
+ mov r3, #0xa0
+ strb r3, [r12, #0x0]
+ ldr r3, [r1, #0x24]
+ and r5, r0, #0x3
+ cmp r3, #0x0
+ add r1, lr, #0xa000000
+ beq _020DC92C
+_020DC91C:
+ ldrb r0, [r4], #0x1
+ subs r3, r3, #0x1
+ strb r0, [r1], #0x1
+ bne _020DC91C
+_020DC92C:
+ ldr ip, _020DC994 ; =0x04000208
+ ldr r3, _020DC9A0 ; =0x021D6B24
+ ldrh r0, [r12, #0x0]
+ sub r1, r1, #0x1
+ mov r0, #0x1
+ strh r2, [r12, #0x0]
+ ldrb r2, [r4, #-0x1]
+ ldr r3, [r3, #0x0]
+ blx r3
+ ldr r3, _020DC988 ; =0x04000204
+ ldr r1, _020DC984 ; =0x021D6B0C
+ ldrh r2, [r3, #0x0]
+ mov r4, r0
+ bic r0, r2, #0x3
+ orr r0, r0, r5
+ strh r0, [r3, #0x0]
+ ldrh r0, [r1, #0x0]
+ bl OS_UnlockCartridge2
+ mov r0, r4
+ add sp, sp, #0x24
+ ldmia sp!, {r4-r5,lr}
+ bx lr
+ .balign 4
+_020DC984: .word 0x021D6B0C
+_020DC988: .word 0x04000204
+_020DC98C: .word 0x021D6B20
+_020DC990: .word 0x02104048
+_020DC994: .word 0x04000208
+_020DC998: .word 0x0A005555
+_020DC99C: .word 0x0A002AAA
+_020DC9A0: .word 0x021D6B24
+
+ arm_func_start CTRDGi_EraseFlash4KBCoreAT
+CTRDGi_EraseFlash4KBCoreAT: ; 0x020DC9A4
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0x24
+ mov r5, r0
+ ldmia r5!, {r0-r3}
+ add r4, sp, #0x0
+ stmia r4!, {r0-r3}
+ ldmia r5!, {r0-r3}
+ stmia r4!, {r0-r3}
+ ldr r0, [r5, #0x0]
+ str r0, [r4, #0x0]
+ ldrh r0, [sp, #0x20]
+ cmp r0, #0x10
+ addcs sp, sp, #0x24
+ ldrhs r0, _020DCA54 ; =0x000080FF
+ ldmcsia sp!, {r4-r7,lr}
+ bxcs lr
+ mov r0, r0, lsl #0x15
+ mov r5, r0, lsr #0x10
+ mov r6, #0x0
+ mov r4, #0x2
+_020DC9F4:
+ mov r7, r4
+_020DC9F8:
+ mov r0, r5
+ bl CTRDGi_EraseFlashSectorAT
+_020DCA00: ; 0x020DCA00
+ cmp r0, #0x0
+ beq _020DCA18
+ sub r1, r7, #0x1
+ mov r1, r1, lsl #0x10
+ movs r7, r1, lsr #0x10
+ bne _020DC9F8
+_020DCA18:
+ add r1, r5, #0x1
+ mov r1, r1, lsl #0x10
+ cmp r0, #0x0
+ mov r5, r1, lsr #0x10
+ addne sp, sp, #0x24
+ ldmneia sp!, {r4-r7,lr}
+ bxne lr
+ add r1, r6, #0x1
+ mov r1, r1, lsl #0x10
+ mov r6, r1, lsr #0x10
+ cmp r6, #0x20
+ blo _020DC9F4
+ add sp, sp, #0x24
+ ldmia sp!, {r4-r7,lr}
+ bx lr
+ .balign 4
+_020DCA54: .word 0x000080FF
+
+ arm_func_start CTRDGi_EraseFlashSectorCoreAT
+CTRDGi_EraseFlashSectorCoreAT: ; 0x020DCA58
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x24
+ mov r5, r0
+ ldmia r5!, {r0-r3}
+ add r4, sp, #0x0
+ stmia r4!, {r0-r3}
+ ldmia r5!, {r0-r3}
+ stmia r4!, {r0-r3}
+ ldr r0, [r5, #0x0]
+ ldr r1, _020DCB80 ; =0x02104048
+ str r0, [r4, #0x0]
+ ldr r0, _020DCB84 ; =0x021D6B0C
+ ldrh r2, [sp, #0x20]
+ ldrh r1, [r1, #0x28]
+ ldrh r0, [r0, #0x0]
+ mov r1, r2, lsl r1
+ add r5, r1, #0xa000000
+ bl OS_LockCartridge
+ ldr r4, _020DCB88 ; =0x04000204
+ ldr r1, _020DCB8C ; =0x021D6B20
+ ldrh r0, [r4, #0x0]
+ ldr r2, [r1, #0x0]
+ ldrh r1, [r4, #0x0]
+ ldr r2, [r2, #0x10]
+ ldr r3, _020DCB90 ; =0x04000208
+ bic r1, r1, #0x3
+ orr r1, r1, r2
+ strh r1, [r4, #0x0]
+ ldrh r2, [r3, #0x0]
+ mov r1, #0x0
+ ldr r4, _020DCB94 ; =0x0A005555
+ strh r1, [r3, #0x0]
+ mov r3, #0xaa
+ strb r3, [r4, #0x0]
+ ldr r1, _020DCB98 ; =0x0A002AAA
+ mov r3, #0x55
+ strb r3, [r1, #0x0]
+ mov r3, #0xa0
+ strb r3, [r4, #0x0]
+ ldr r1, _020DCB80 ; =0x02104048
+ and r4, r0, #0x3
+ ldr r1, [r1, #0x24]
+ cmp r1, #0x0
+ beq _020DCB18
+ mov r0, #0xff
+_020DCB0C:
+ strb r0, [r5], #0x1
+ subs r1, r1, #0x1
+ bne _020DCB0C
+_020DCB18:
+ ldr ip, _020DCB90 ; =0x04000208
+ ldr r3, _020DCB9C ; =0x021D6B24
+ ldrh r0, [r12, #0x0]
+ sub r1, r5, #0x1
+ strh r2, [r12, #0x0]
+ ldr r3, [r3, #0x0]
+ mov r0, #0x1
+ mov r2, #0xff
+ blx r3
+ ldr r2, _020DCB88 ; =0x04000204
+ movs r5, r0
+ ldrh r1, [r2, #0x0]
+ andne r0, r5, #0xff00
+ orrne r0, r0, #0x2
+ movne r0, r0, lsl #0x10
+ bic r1, r1, #0x3
+ movne r5, r0, lsr #0x10
+ orr r1, r1, r4
+ ldr r0, _020DCB84 ; =0x021D6B0C
+ strh r1, [r2, #0x0]
+ ldrh r0, [r0, #0x0]
+ bl OS_UnlockCartridge2
+ mov r0, r5
+ add sp, sp, #0x24
+ ldmia sp!, {r4-r5,lr}
+ bx lr
+ .balign 4
+_020DCB80: .word 0x02104048
+_020DCB84: .word 0x021D6B0C
+_020DCB88: .word 0x04000204
+_020DCB8C: .word 0x021D6B20
+_020DCB90: .word 0x04000208
+_020DCB94: .word 0x0A005555
+_020DCB98: .word 0x0A002AAA
+_020DCB9C: .word 0x021D6B24
+
+ arm_func_start CTRDGi_EraseFlashChipCoreAT
+CTRDGi_EraseFlashChipCoreAT: ; 0x020DCBA0
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ ldr r0, _020DCC7C ; =0x021D6B0C
+ ldrh r0, [r0, #0x0]
+ bl OS_LockCartridge
+ ldr r4, _020DCC80 ; =0x04000204
+ ldr r0, _020DCC84 ; =0x021D6B20
+ ldrh r3, [r4, #0x0]
+ ldr r0, [r0, #0x0]
+ ldrh r1, [r4, #0x0]
+ ldr r2, [r0, #0x10]
+ ldr r0, _020DCC88 ; =0x04000208
+ bic r1, r1, #0x3
+ orr r1, r1, r2
+ strh r1, [r4, #0x0]
+ ldrh r4, [r0, #0x0]
+ mov r2, #0x0
+ ldr r1, _020DCC8C ; =0x021D6B38
+ strh r2, [r0, #0x0]
+ ldr lr, _020DCC90 ; =0x0A005555
+ str r4, [r1, #0x0]
+ mov r5, #0xaa
+ ldr r4, _020DCC94 ; =0x0A002AAA
+ strb r5, [lr, #0x0]
+ mov r12, #0x55
+ strb r12, [r4, #0x0]
+ mov r2, #0x80
+ strb r2, [lr, #0x0]
+ strb r5, [lr, #0x0]
+ strb r12, [r4, #0x0]
+ mov r2, #0x10
+ strb r2, [lr, #0x0]
+ ldrh r2, [r0, #0x0]
+ ldr r2, [r1, #0x0]
+ ldr r1, _020DCC98 ; =0x021D6B24
+ strh r2, [r0, #0x0]
+ ldr r4, [r1, #0x0]
+ mov r0, #0x3
+ mov r1, #0xa000000
+ mov r2, #0xff
+ and r5, r3, #0x3
+ blx r4
+ ldr r3, _020DCC80 ; =0x04000204
+ ldr r1, _020DCC7C ; =0x021D6B0C
+ ldrh r2, [r3, #0x0]
+ mov r4, r0
+ bic r0, r2, #0x3
+ orr r0, r0, r5
+ strh r0, [r3, #0x0]
+ ldrh r0, [r1, #0x0]
+ bl OS_UnlockCartridge2
+ mov r0, r4
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,lr}
+ bx lr
+ .balign 4
+_020DCC7C: .word 0x021D6B0C
+_020DCC80: .word 0x04000204
+_020DCC84: .word 0x021D6B20
+_020DCC88: .word 0x04000208
+_020DCC8C: .word 0x021D6B38
+_020DCC90: .word 0x0A005555
+_020DCC94: .word 0x0A002AAA
+_020DCC98: .word 0x021D6B24
+
+ arm_func_start CTRDGi_WriteFlashSectorAsyncLE
+CTRDGi_WriteFlashSectorAsyncLE: ; 0x020DCC9C
+ stmdb sp!, {lr}
+ sub sp, sp, #0x24
+ str r1, [sp, #0xc]
+ strh r0, [sp, #0x20]
+ ldr r1, _020DCCC4 ; =CTRDGi_WriteFlashSectorCoreLE
+ add r0, sp, #0x0
+ bl CTRDGi_SetTask
+ add sp, sp, #0x24
+ ldmia sp!, {lr}
+ bx lr
+ .balign 4
+_020DCCC4: .word CTRDGi_WriteFlashSectorCoreLE
+
+ arm_func_start CTRDGi_EraseFlashSectorAsyncLE
+CTRDGi_EraseFlashSectorAsyncLE: ; 0x020DCCC8
+ stmdb sp!, {lr}
+ sub sp, sp, #0x24
+ mov r2, r1
+ strh r0, [sp, #0x20]
+ ldr r1, _020DCCF0 ; =CTRDGi_EraseFlashSectorCoreLE
+ add r0, sp, #0x0
+ bl CTRDGi_SetTask
+ add sp, sp, #0x24
+ ldmia sp!, {lr}
+ bx lr
+ .balign 4
+_020DCCF0: .word CTRDGi_EraseFlashSectorCoreLE
+
+ arm_func_start CTRDGi_EraseFlashChipAsyncLE
+CTRDGi_EraseFlashChipAsyncLE: ; 0x020DCCF4
+ stmdb sp!, {lr}
+ sub sp, sp, #0x24
+ ldr r1, _020DCD18 ; =CTRDGi_EraseFlashChipCoreLE
+ mov r2, r0
+ add r0, sp, #0x0
+ bl CTRDGi_SetTask
+ add sp, sp, #0x24
+ ldmia sp!, {lr}
+ bx lr
+ .balign 4
+_020DCD18: .word CTRDGi_EraseFlashChipCoreLE
+
+ arm_func_start CTRDGi_WriteFlashSectorLE
+CTRDGi_WriteFlashSectorLE: ; 0x020DCD1C
+ stmdb sp!, {lr}
+ sub sp, sp, #0x24
+ strh r0, [sp, #0x20]
+ add r0, sp, #0x0
+ str r1, [sp, #0xc]
+ bl CTRDGi_WriteFlashSectorCoreLE
+ mov r0, r0, lsl #0x10
+ mov r0, r0, lsr #0x10
+ add sp, sp, #0x24
+ ldmia sp!, {lr}
+ bx lr
+
+ arm_func_start CTRDGi_EraseFlashSectorLE
+CTRDGi_EraseFlashSectorLE: ; 0x020DCD48
+ stmdb sp!, {lr}
+ sub sp, sp, #0x24
+ strh r0, [sp, #0x20]
+ add r0, sp, #0x0
+ bl CTRDGi_EraseFlashSectorCoreLE
+ mov r0, r0, lsl #0x10
+ mov r0, r0, lsr #0x10
+ add sp, sp, #0x24
+ ldmia sp!, {lr}
+ bx lr
+
+ arm_func_start CTRDGi_EraseFlashChipLE
+CTRDGi_EraseFlashChipLE: ; 0x020DCD70
+ stmdb sp!, {lr}
+ sub sp, sp, #0x24
+ add r0, sp, #0x0
+ bl CTRDGi_EraseFlashChipCoreLE
+ mov r0, r0, lsl #0x10
+ mov r0, r0, lsr #0x10
+ add sp, sp, #0x24
+ ldmia sp!, {lr}
+ bx lr
+
+ arm_func_start CTRDGi_VerifyFlashErase
+CTRDGi_VerifyFlashErase: ; 0x020DCD94
+ stmdb sp!, {r4-r6,lr}
+ ldr r2, _020DCE14 ; =0x021D6B0C
+ mov r4, r0
+ ldrh r0, [r2, #0x0]
+ mov r5, r1
+ bl OS_LockCartridge
+ ldr ip, _020DCE18 ; =0x04000204
+ ldr r0, _020DCE1C ; =0x021D6B20
+ ldrh r3, [r12, #0x0]
+ ldr r0, [r0, #0x0]
+ ldrh r1, [r12, #0x0]
+ ldr r2, [r0, #0x10]
+ mov r0, r4
+ bic r1, r1, #0x3
+ orr r1, r1, r2
+ strh r1, [r12, #0x0]
+ and r6, r3, #0x3
+ mov r4, #0x0
+ blx r5
+ cmp r0, #0x0
+ ldr r2, _020DCE18 ; =0x04000204
+ ldr r0, _020DCE14 ; =0x021D6B0C
+ ldrh r1, [r2, #0x0]
+ ldrne r4, _020DCE20 ; =0x00008004
+ bic r1, r1, #0x3
+ orr r1, r1, r6
+ strh r1, [r2, #0x0]
+ ldrh r0, [r0, #0x0]
+ bl OS_UnlockCartridge2
+ mov r0, r4
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+ .balign 4
+_020DCE14: .word 0x021D6B0C
+_020DCE18: .word 0x04000204
+_020DCE1C: .word 0x021D6B20
+_020DCE20: .word 0x00008004
+
+ arm_func_start CTRDGi_VerifyFlashCoreFF
+CTRDGi_VerifyFlashCoreFF: ; 0x020DCE24
+ ldr r1, _020DCE54 ; =0x021D6B20
+ ldr r1, [r1, #0x0]
+ ldr r2, [r1, #0x4]
+ cmp r2, #0x0
+ beq _020DCE4C
+_020DCE38:
+ ldrb r1, [r0], #0x1
+ cmp r1, #0xff
+ bne _020DCE4C
+ subs r2, r2, #0x1
+ bne _020DCE38
+_020DCE4C:
+ mov r0, r2
+ bx lr
+ .balign 4
+_020DCE54: .word 0x021D6B20
+
+ arm_func_start CTRDGi_WriteFlashSectorCoreLE
+CTRDGi_WriteFlashSectorCoreLE: ; 0x020DCE58
+ stmdb sp!, {r4-r9,lr}
+ sub sp, sp, #0x24
+ mov r5, r0
+ ldmia r5!, {r0-r3}
+ add r4, sp, #0x0
+ stmia r4!, {r0-r3}
+ ldmia r5!, {r0-r3}
+ stmia r4!, {r0-r3}
+ ldr r0, [r5, #0x0]
+ str r0, [r4, #0x0]
+ ldrh r7, [sp, #0x20]
+ ldr r6, [sp, #0xc]
+ cmp r7, #0x10
+ addcs sp, sp, #0x24
+ ldrhs r0, _020DD018 ; =0x000080FF
+ ldmcsia sp!, {r4-r9,lr}
+ bxcs lr
+ ldr r0, _020DD01C ; =0x021D6B20
+ mov r9, #0x0
+ ldr r0, [r0, #0x0]
+ ldrh r0, [r0, #0x8]
+ mov r0, r7, lsl r0
+ add r4, r0, #0xa000000
+ ldr r5, _020DD020 ; =CTRDGi_VerifyFlashCoreFF
+_020DCEB8:
+ mov r0, r7
+ bl CTRDGi_EraseFlashSectorLE
+ movs r8, r0
+ bne _020DCEE0
+ mov r0, r4
+ mov r1, r5
+ bl CTRDGi_VerifyFlashErase
+ mov r0, r0, lsl #0x10
+ movs r8, r0, lsr #0x10
+ beq _020DCF04
+_020DCEE0:
+ add r0, r9, #0x1
+ mov r0, r0, lsl #0x10
+ cmp r9, #0x50
+ mov r9, r0, lsr #0x10
+ bne _020DCEB8
+ add sp, sp, #0x24
+ mov r0, r8
+ ldmia sp!, {r4-r9,lr}
+ bx lr
+_020DCF04:
+ mov r5, #0x1
+ cmp r9, #0x0
+ movne r5, #0x6
+ cmp r5, #0x1
+ mov r9, #0x1
+ blo _020DCF38
+_020DCF1C:
+ mov r0, r7
+ bl CTRDGi_EraseFlashSectorLE
+ add r0, r9, #0x1
+ mov r0, r0, lsl #0x10
+ mov r9, r0, lsr #0x10
+ cmp r9, r5
+ bls _020DCF1C
+_020DCF38:
+ ldr r0, _020DD024 ; =0x021D6B0C
+ ldrh r0, [r0, #0x0]
+ bl OS_LockCartridge
+ ldr r5, _020DD028 ; =0x04000204
+ ldr r1, _020DD01C ; =0x021D6B20
+ ldrh r0, [r5, #0x0]
+ ldr r3, [r1, #0x0]
+ ldrh r2, [r5, #0x0]
+ ldr r3, [r3, #0x10]
+ ldr r7, _020DD02C ; =0x021D6B08
+ bic r2, r2, #0x3
+ orr r2, r2, r3
+ strh r2, [r5, #0x0]
+ ldr r1, [r1, #0x0]
+ ldr sb, _020DD030 ; =0x04000208
+ ldr r1, [r1, #0x4]
+ mov r2, #0x0
+ strh r1, [r7, #0x0]
+ ldrh r3, [r9, #0x0]
+ ldr r1, _020DD034 ; =0x021D6B38
+ and r5, r0, #0x3
+ strh r2, [r9, #0x0]
+ ldrh r0, [r7, #0x0]
+ str r3, [r1, #0x0]
+ cmp r0, #0x0
+ beq _020DCFD4
+_020DCFA0:
+ mov r0, r6
+ mov r1, r4
+ bl CTRDGi_ProgramFlashByteLE
+ movs r8, r0
+ bne _020DCFD4
+ ldrh r0, [r7, #0x0]
+ add r6, r6, #0x1
+ add r4, r4, #0x1
+ sub r0, r0, #0x1
+ strh r0, [r7, #0x0]
+ ldrh r0, [r7, #0x0]
+ cmp r0, #0x0
+ bne _020DCFA0
+_020DCFD4:
+ ldr r3, _020DD030 ; =0x04000208
+ ldr r0, _020DD034 ; =0x021D6B38
+ ldrh r1, [r3, #0x0]
+ ldr r0, [r0, #0x0]
+ ldr r2, _020DD028 ; =0x04000204
+ strh r0, [r3, #0x0]
+ ldrh r1, [r2, #0x0]
+ ldr r0, _020DD024 ; =0x021D6B0C
+ bic r1, r1, #0x3
+ orr r1, r1, r5
+ strh r1, [r2, #0x0]
+ ldrh r0, [r0, #0x0]
+ bl OS_UnlockCartridge2
+ mov r0, r8
+ add sp, sp, #0x24
+ ldmia sp!, {r4-r9,lr}
+ bx lr
+ .balign 4
+_020DD018: .word 0x000080FF
+_020DD01C: .word 0x021D6B20
+_020DD020: .word CTRDGi_VerifyFlashCoreFF
+_020DD024: .word 0x021D6B0C
+_020DD028: .word 0x04000204
+_020DD02C: .word 0x021D6B08
+_020DD030: .word 0x04000208
+_020DD034: .word 0x021D6B38
+
+ arm_func_start CTRDGi_ProgramFlashByteLE
+CTRDGi_ProgramFlashByteLE: ; 0x020DD038
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldr ip, _020DD08C ; =0x0A005555
+ mov r3, #0xaa
+ ldr r2, _020DD090 ; =0x0A002AAA
+ strb r3, [r12, #0x0]
+ mov r3, #0x55
+ mov lr, r0
+ strb r3, [r2, #0x0]
+ mov r0, #0xa0
+ strb r0, [r12, #0x0]
+ ldrb r2, [lr, #0x0]
+ ldr r3, _020DD094 ; =0x021D6B24
+ mov r0, #0x1
+ strb r2, [r1, #0x0]
+ ldrb r2, [lr, #0x0]
+ ldr r3, [r3, #0x0]
+ blx r3
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+ .balign 4
+_020DD08C: .word 0x0A005555
+_020DD090: .word 0x0A002AAA
+_020DD094: .word 0x021D6B24
+
+ arm_func_start CTRDGi_EraseFlashSectorCoreLE
+CTRDGi_EraseFlashSectorCoreLE: ; 0x020DD098
+ stmdb sp!, {r4-r6,lr}
+ sub sp, sp, #0x28
+ mov r5, r0
+ ldmia r5!, {r0-r3}
+ add r4, sp, #0x0
+ stmia r4!, {r0-r3}
+ ldmia r5!, {r0-r3}
+ stmia r4!, {r0-r3}
+ ldr r0, [r5, #0x0]
+ str r0, [r4, #0x0]
+ ldrh r4, [sp, #0x20]
+ cmp r4, #0x10
+ addcs sp, sp, #0x28
+ ldrhs r0, _020DD1B8 ; =0x000080FF
+ ldmcsia sp!, {r4-r6,lr}
+ bxcs lr
+ ldr r0, _020DD1BC ; =0x021D6B0C
+ ldrh r0, [r0, #0x0]
+ bl OS_LockCartridge
+ ldr r6, _020DD1C0 ; =0x04000204
+ ldr r1, _020DD1C4 ; =0x021D6B20
+ ldrh r3, [r6, #0x0]
+ ldr r0, [r1, #0x0]
+ ldrh r2, [r6, #0x0]
+ ldr r5, [r0, #0x10]
+ ldr r0, _020DD1C8 ; =0x04000208
+ bic r2, r2, #0x3
+ orr r2, r2, r5
+ strh r2, [r6, #0x0]
+ ldr r1, [r1, #0x0]
+ ldrh r5, [r0, #0x0]
+ ldrh r12, [r1, #0x8]
+ mov r1, #0x0
+ ldr r2, _020DD1CC ; =0x021D6B38
+ strh r1, [r0, #0x0]
+ mov r6, r4, lsl r12
+ ldr lr, _020DD1D0 ; =0x0A005555
+ str r5, [r2, #0x0]
+ mov r5, #0xaa
+ ldr r4, _020DD1D4 ; =0x0A002AAA
+ strb r5, [lr, #0x0]
+ mov r12, #0x55
+ strb r12, [r4, #0x0]
+ mov r1, #0x80
+ strb r1, [lr, #0x0]
+ strb r5, [lr, #0x0]
+ strb r12, [r4, #0x0]
+ add r1, r6, #0xa000000
+ mov r4, #0x30
+ strb r4, [r1, #0x0]
+ ldrh r4, [r0, #0x0]
+ ldr r4, [r2, #0x0]
+ ldr r2, _020DD1D8 ; =0x021D6B24
+ strh r4, [r0, #0x0]
+ ldr r4, [r2, #0x0]
+ mov r0, #0x2
+ mov r2, #0xff
+ and r5, r3, #0x3
+ blx r4
+ ldr r3, _020DD1C0 ; =0x04000204
+ ldr r1, _020DD1BC ; =0x021D6B0C
+ ldrh r2, [r3, #0x0]
+ mov r4, r0
+ bic r0, r2, #0x3
+ orr r0, r0, r5
+ strh r0, [r3, #0x0]
+ ldrh r0, [r1, #0x0]
+ bl OS_UnlockCartridge2
+ mov r0, r4
+ add sp, sp, #0x28
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+ .balign 4
+_020DD1B8: .word 0x000080FF
+_020DD1BC: .word 0x021D6B0C
+_020DD1C0: .word 0x04000204
+_020DD1C4: .word 0x021D6B20
+_020DD1C8: .word 0x04000208
+_020DD1CC: .word 0x021D6B38
+_020DD1D0: .word 0x0A005555
+_020DD1D4: .word 0x0A002AAA
+_020DD1D8: .word 0x021D6B24
+
+ arm_func_start CTRDGi_EraseFlashChipCoreLE
+CTRDGi_EraseFlashChipCoreLE: ; 0x020DD1DC
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ ldr r0, _020DD2B8 ; =0x021D6B0C
+ ldrh r0, [r0, #0x0]
+ bl OS_LockCartridge
+ ldr r4, _020DD2BC ; =0x04000204
+ ldr r0, _020DD2C0 ; =0x021D6B20
+ ldrh r3, [r4, #0x0]
+ ldr r0, [r0, #0x0]
+ ldrh r1, [r4, #0x0]
+ ldr r2, [r0, #0x10]
+ ldr r0, _020DD2C4 ; =0x04000208
+ bic r1, r1, #0x3
+ orr r1, r1, r2
+ strh r1, [r4, #0x0]
+ ldrh r4, [r0, #0x0]
+ mov r2, #0x0
+ ldr r1, _020DD2C8 ; =0x021D6B38
+ strh r2, [r0, #0x0]
+ ldr lr, _020DD2CC ; =0x0A005555
+ str r4, [r1, #0x0]
+ mov r5, #0xaa
+ ldr r4, _020DD2D0 ; =0x0A002AAA
+ strb r5, [lr, #0x0]
+ mov r12, #0x55
+ strb r12, [r4, #0x0]
+ mov r2, #0x80
+ strb r2, [lr, #0x0]
+ strb r5, [lr, #0x0]
+ strb r12, [r4, #0x0]
+ mov r2, #0x10
+ strb r2, [lr, #0x0]
+ ldrh r2, [r0, #0x0]
+ ldr r2, [r1, #0x0]
+ ldr r1, _020DD2D4 ; =0x021D6B24
+ strh r2, [r0, #0x0]
+ ldr r4, [r1, #0x0]
+ mov r0, #0x3
+ mov r1, #0xa000000
+ mov r2, #0xff
+ and r5, r3, #0x3
+ blx r4
+ ldr r3, _020DD2BC ; =0x04000204
+ ldr r1, _020DD2B8 ; =0x021D6B0C
+ ldrh r2, [r3, #0x0]
+ mov r4, r0
+ bic r0, r2, #0x3
+ orr r0, r0, r5
+ strh r0, [r3, #0x0]
+ ldrh r0, [r1, #0x0]
+ bl OS_UnlockCartridge2
+ mov r0, r4
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,lr}
+ bx lr
+ .balign 4
+_020DD2B8: .word 0x021D6B0C
+_020DD2BC: .word 0x04000204
+_020DD2C0: .word 0x021D6B20
+_020DD2C4: .word 0x04000208
+_020DD2C8: .word 0x021D6B38
+_020DD2CC: .word 0x0A005555
+_020DD2D0: .word 0x0A002AAA
+_020DD2D4: .word 0x021D6B24
+
+ arm_func_start CTRDGi_WriteFlashSectorAsyncMX
+CTRDGi_WriteFlashSectorAsyncMX: ; 0x020DD2D8
+ stmdb sp!, {lr}
+ sub sp, sp, #0x24
+ str r1, [sp, #0xc]
+ strh r0, [sp, #0x20]
+ ldr r1, _020DD300 ; =CTRDGi_WriteFlashSectorCoreMX
+ add r0, sp, #0x0
+ bl CTRDGi_SetTask
+ add sp, sp, #0x24
+ ldmia sp!, {lr}
+ bx lr
+ .balign 4
+_020DD300: .word CTRDGi_WriteFlashSectorCoreMX
+
+ arm_func_start CTRDGi_EraseFlashSectorAsyncMX
+CTRDGi_EraseFlashSectorAsyncMX: ; 0x020DD304
+ stmdb sp!, {lr}
+ sub sp, sp, #0x24
+ mov r2, r1
+ strh r0, [sp, #0x20]
+ ldr r1, _020DD32C ; =CTRDGi_EraseFlashSectorCoreMX
+ add r0, sp, #0x0
+ bl CTRDGi_SetTask
+ add sp, sp, #0x24
+ ldmia sp!, {lr}
+ bx lr
+ .balign 4
+_020DD32C: .word CTRDGi_EraseFlashSectorCoreMX
+
+ arm_func_start CTRDGi_EraseFlashChipAsyncMX
+CTRDGi_EraseFlashChipAsyncMX: ; 0x020DD330
+ stmdb sp!, {lr}
+ sub sp, sp, #0x24
+ ldr r1, _020DD354 ; =CTRDGi_EraseFlashChipCoreMX
+ mov r2, r0
+ add r0, sp, #0x0
+ bl CTRDGi_SetTask
+ add sp, sp, #0x24
+ ldmia sp!, {lr}
+ bx lr
+ .balign 4
+_020DD354: .word CTRDGi_EraseFlashChipCoreMX
+
+ arm_func_start CTRDGi_WriteFlashSectorMX
+CTRDGi_WriteFlashSectorMX: ; 0x020DD358
+ stmdb sp!, {lr}
+ sub sp, sp, #0x24
+ strh r0, [sp, #0x20]
+ add r0, sp, #0x0
+ str r1, [sp, #0xc]
+ bl CTRDGi_WriteFlashSectorCoreMX
+ mov r0, r0, lsl #0x10
+ mov r0, r0, lsr #0x10
+ add sp, sp, #0x24
+ ldmia sp!, {lr}
+ bx lr
+
+ arm_func_start CTRDGi_EraseFlashSectorMX
+CTRDGi_EraseFlashSectorMX: ; 0x020DD384
+ stmdb sp!, {lr}
+ sub sp, sp, #0x24
+ strh r0, [sp, #0x20]
+ add r0, sp, #0x0
+ bl CTRDGi_EraseFlashSectorCoreMX
+ mov r0, r0, lsl #0x10
+ mov r0, r0, lsr #0x10
+ add sp, sp, #0x24
+ ldmia sp!, {lr}
+ bx lr
+
+ arm_func_start CTRDGi_EraseFlashChipMX
+CTRDGi_EraseFlashChipMX: ; 0x020DD3AC
+ stmdb sp!, {lr}
+ sub sp, sp, #0x24
+ add r0, sp, #0x0
+ bl CTRDGi_EraseFlashChipCoreMX
+ mov r0, r0, lsl #0x10
+ mov r0, r0, lsr #0x10
+ add sp, sp, #0x24
+ ldmia sp!, {lr}
+ bx lr
+
+ arm_func_start CTRDGi_WriteFlashSectorCoreMX
+CTRDGi_WriteFlashSectorCoreMX: ; 0x020DD3D0
+ stmdb sp!, {r4-r8,lr}
+ sub sp, sp, #0x28
+ mov r5, r0
+ ldmia r5!, {r0-r3}
+ add r4, sp, #0x0
+ stmia r4!, {r0-r3}
+ ldmia r5!, {r0-r3}
+ stmia r4!, {r0-r3}
+ ldr r0, _020DD540 ; =0x021D6B20
+ ldr r1, [r5, #0x0]
+ ldr r0, [r0, #0x0]
+ str r1, [r4, #0x0]
+ ldrh r5, [sp, #0x20]
+ ldrh r0, [r0, #0xa]
+ ldr r4, [sp, #0xc]
+ cmp r5, r0
+ addcs sp, sp, #0x28
+ ldrhs r0, _020DD544 ; =0x000080FF
+ ldmcsia sp!, {r4-r8,lr}
+ bxcs lr
+ mov r0, r5
+ bl CTRDGi_EraseFlashSectorMX
+ movs r6, r0
+ addne sp, sp, #0x28
+ ldmneia sp!, {r4-r8,lr}
+ bxne lr
+ ldr r0, _020DD548 ; =0x021D6B0C
+ ldrh r0, [r0, #0x0]
+ bl OS_LockCartridge
+ ldr r7, _020DD54C ; =0x04000204
+ ldr r0, _020DD540 ; =0x021D6B20
+ ldrh r3, [r7, #0x0]
+ ldr r2, [r0, #0x0]
+ ldrh r1, [r7, #0x0]
+ mov r0, r5, lsl #0xc
+ ldr r2, [r2, #0x10]
+ bic r1, r1, #0x3
+ orr r1, r1, r2
+ mov r0, r0, lsr #0x10
+ strh r1, [r7, #0x0]
+ and r7, r3, #0x3
+ bl CTRDGi_SetFlashBankMx
+ ldr r0, _020DD540 ; =0x021D6B20
+ and r1, r5, #0xf
+ ldr r3, [r0, #0x0]
+ mov r0, r1, lsl #0x10
+ ldr r2, [r3, #0x4]
+ ldr r8, _020DD550 ; =0x021D6B08
+ ldr r1, _020DD554 ; =0x04000208
+ strh r2, [r8, #0x0]
+ ldrh r3, [r3, #0x8]
+ mov r5, r0, lsr #0x10
+ ldrh r2, [r1, #0x0]
+ mov r0, #0x0
+ mov r3, r5, lsl r3
+ strh r0, [r1, #0x0]
+ ldrh r1, [r8, #0x0]
+ ldr r0, _020DD558 ; =0x021D6B38
+ add r5, r3, #0xa000000
+ str r2, [r0, #0x0]
+ cmp r1, #0x0
+ beq _020DD4FC
+_020DD4C8:
+ mov r0, r4
+ mov r1, r5
+ bl CTRDGi_ProgramFlashByteMX
+ movs r6, r0
+ bne _020DD4FC
+ ldrh r0, [r8, #0x0]
+ add r4, r4, #0x1
+ add r5, r5, #0x1
+ sub r0, r0, #0x1
+ strh r0, [r8, #0x0]
+ ldrh r0, [r8, #0x0]
+ cmp r0, #0x0
+ bne _020DD4C8
+_020DD4FC:
+ ldr r3, _020DD554 ; =0x04000208
+ ldr r0, _020DD558 ; =0x021D6B38
+ ldrh r1, [r3, #0x0]
+ ldr r0, [r0, #0x0]
+ ldr r2, _020DD54C ; =0x04000204
+ strh r0, [r3, #0x0]
+ ldrh r1, [r2, #0x0]
+ ldr r0, _020DD548 ; =0x021D6B0C
+ bic r1, r1, #0x3
+ orr r1, r1, r7
+ strh r1, [r2, #0x0]
+ ldrh r0, [r0, #0x0]
+ bl OS_UnlockCartridge2
+ mov r0, r6
+ add sp, sp, #0x28
+ ldmia sp!, {r4-r8,lr}
+ bx lr
+ .balign 4
+_020DD540: .word 0x021D6B20
+_020DD544: .word 0x000080FF
+_020DD548: .word 0x021D6B0C
+_020DD54C: .word 0x04000204
+_020DD550: .word 0x021D6B08
+_020DD554: .word 0x04000208
+_020DD558: .word 0x021D6B38
+
+ arm_func_start CTRDGi_ProgramFlashByteMX
+CTRDGi_ProgramFlashByteMX: ; 0x020DD55C
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldr ip, _020DD5B0 ; =0x0A005555
+ mov r3, #0xaa
+ ldr r2, _020DD5B4 ; =0x0A002AAA
+ strb r3, [r12, #0x0]
+ mov r3, #0x55
+ mov lr, r0
+ strb r3, [r2, #0x0]
+ mov r0, #0xa0
+ strb r0, [r12, #0x0]
+ ldrb r2, [lr, #0x0]
+ ldr r3, _020DD5B8 ; =0x021D6B24
+ mov r0, #0x1
+ strb r2, [r1, #0x0]
+ ldrb r2, [lr, #0x0]
+ ldr r3, [r3, #0x0]
+ blx r3
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+ .balign 4
+_020DD5B0: .word 0x0A005555
+_020DD5B4: .word 0x0A002AAA
+_020DD5B8: .word 0x021D6B24
+
+ arm_func_start CTRDGi_EraseFlashSectorCoreMX
+CTRDGi_EraseFlashSectorCoreMX: ; 0x020DD5BC
+ stmdb sp!, {r4-r11,lr}
+ sub sp, sp, #0x34
+ mov r5, r0
+ ldmia r5!, {r0-r3}
+ add r4, sp, #0x10
+ stmia r4!, {r0-r3}
+ ldmia r5!, {r0-r3}
+ stmia r4!, {r0-r3}
+ ldr r0, _020DD748 ; =0x021D6B20
+ ldr r1, [r5, #0x0]
+ ldr r0, [r0, #0x0]
+ str r1, [r4, #0x0]
+ ldrh r4, [sp, #0x30]
+ ldrh r0, [r0, #0xa]
+ cmp r4, r0
+ addcs sp, sp, #0x34
+ ldrhs r0, _020DD74C ; =0x000080FF
+ ldmcsia sp!, {r4-r11,lr}
+ bxcs lr
+ ldr r0, _020DD750 ; =0x021D6B0C
+ ldrh r0, [r0, #0x0]
+ bl OS_LockCartridge
+ ldr r5, _020DD754 ; =0x04000204
+ ldr r0, _020DD748 ; =0x021D6B20
+ ldrh r3, [r5, #0x0]
+ ldr r2, [r0, #0x0]
+ ldrh r1, [r5, #0x0]
+ mov r0, r4, lsl #0xc
+ ldr r2, [r2, #0x10]
+ bic r1, r1, #0x3
+ orr r1, r1, r2
+ strh r1, [r5, #0x0]
+ and r1, r3, #0x3
+ mov r0, r0, lsr #0x10
+ str r1, [sp, #0x0]
+ bl CTRDGi_SetFlashBankMx
+ and r0, r4, #0xf
+ mov r0, r0, lsl #0x10
+ mov r9, r0, lsr #0x10
+ mov r0, #0x2
+ mov r10, #0x0
+ str r0, [sp, #0x8]
+ mov r0, #0xff
+ ldr r8, _020DD758 ; =0x04000208
+ mov r11, r10
+ mov r7, #0xaa
+ mov r6, #0x55
+ mov r5, #0x80
+ mov r4, #0x30
+ str r0, [sp, #0xc]
+_020DD684:
+ ldr r0, _020DD748 ; =0x021D6B20
+ ldrh r12, [r8, #0x0]
+ ldr r0, [r0, #0x0]
+ ldr r3, _020DD75C ; =0x021D6B38
+ ldrh r1, [r0, #0x8]
+ ldr r0, [sp, #0x8]
+ ldr r2, [sp, #0xc]
+ strh r11, [r8, #0x0]
+ str r12, [r3, #0x0]
+ ldr r3, _020DD760 ; =0x0A005555
+ mov r1, r9, lsl r1
+ strb r7, [r3, #0x0]
+ ldr r3, _020DD764 ; =0x0A002AAA
+ add r1, r1, #0xa000000
+ strb r6, [r3, #0x0]
+ ldr r3, _020DD760 ; =0x0A005555
+ strb r5, [r3, #0x0]
+ strb r7, [r3, #0x0]
+ ldr r3, _020DD764 ; =0x0A002AAA
+ strb r6, [r3, #0x0]
+ strb r4, [r1, #0x0]
+ ldrh r3, [r8, #0x0]
+ ldr r3, _020DD75C ; =0x021D6B38
+ ldr r3, [r3, #0x0]
+ strh r3, [r8, #0x0]
+ ldr r3, _020DD768 ; =0x021D6B24
+ ldr r3, [r3, #0x0]
+ blx r3
+ str r0, [sp, #0x4]
+ ands r0, r0, #0xa000
+ beq _020DD714
+ cmp r10, #0x0
+ addeq r0, r10, #0x1
+ moveq r0, r0, lsl #0x10
+ moveq r10, r0, lsr #0x10
+ beq _020DD684
+_020DD714:
+ ldr r2, _020DD754 ; =0x04000204
+ ldr r1, _020DD750 ; =0x021D6B0C
+ ldrh r0, [r2, #0x0]
+ bic r3, r0, #0x3
+ ldr r0, [sp, #0x0]
+ orr r0, r3, r0
+ strh r0, [r2, #0x0]
+ ldrh r0, [r1, #0x0]
+ bl OS_UnlockCartridge2
+ ldr r0, [sp, #0x4]
+ add sp, sp, #0x34
+ ldmia sp!, {r4-r11,lr}
+ bx lr
+ .balign 4
+_020DD748: .word 0x021D6B20
+_020DD74C: .word 0x000080FF
+_020DD750: .word 0x021D6B0C
+_020DD754: .word 0x04000204
+_020DD758: .word 0x04000208
+_020DD75C: .word 0x021D6B38
+_020DD760: .word 0x0A005555
+_020DD764: .word 0x0A002AAA
+_020DD768: .word 0x021D6B24
+
+ arm_func_start CTRDGi_EraseFlashChipCoreMX
+CTRDGi_EraseFlashChipCoreMX: ; 0x020DD76C
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ ldr r0, _020DD848 ; =0x021D6B0C
+ ldrh r0, [r0, #0x0]
+ bl OS_LockCartridge
+ ldr r4, _020DD84C ; =0x04000204
+ ldr r0, _020DD850 ; =0x021D6B20
+ ldrh r3, [r4, #0x0]
+ ldr r0, [r0, #0x0]
+ ldrh r1, [r4, #0x0]
+ ldr r2, [r0, #0x10]
+ ldr r0, _020DD854 ; =0x04000208
+ bic r1, r1, #0x3
+ orr r1, r1, r2
+ strh r1, [r4, #0x0]
+ ldrh r4, [r0, #0x0]
+ mov r2, #0x0
+ ldr r1, _020DD858 ; =0x021D6B38
+ strh r2, [r0, #0x0]
+ ldr lr, _020DD85C ; =0x0A005555
+ str r4, [r1, #0x0]
+ mov r5, #0xaa
+ ldr r4, _020DD860 ; =0x0A002AAA
+ strb r5, [lr, #0x0]
+ mov r12, #0x55
+ strb r12, [r4, #0x0]
+ mov r2, #0x80
+ strb r2, [lr, #0x0]
+ strb r5, [lr, #0x0]
+ strb r12, [r4, #0x0]
+ mov r2, #0x10
+ strb r2, [lr, #0x0]
+ ldrh r2, [r0, #0x0]
+ ldr r2, [r1, #0x0]
+ ldr r1, _020DD864 ; =0x021D6B24
+ strh r2, [r0, #0x0]
+ ldr r4, [r1, #0x0]
+ mov r0, #0x3
+ mov r1, #0xa000000
+ mov r2, #0xff
+ and r5, r3, #0x3
+ blx r4
+ ldr r3, _020DD84C ; =0x04000204
+ ldr r1, _020DD848 ; =0x021D6B0C
+ ldrh r2, [r3, #0x0]
+ mov r4, r0
+ bic r0, r2, #0x3
+ orr r0, r0, r5
+ strh r0, [r3, #0x0]
+ ldrh r0, [r1, #0x0]
+ bl OS_UnlockCartridge2
+ mov r0, r4
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,lr}
+ bx lr
+ .balign 4
+_020DD848: .word 0x021D6B0C
+_020DD84C: .word 0x04000204
+_020DD850: .word 0x021D6B20
+_020DD854: .word 0x04000208
+_020DD858: .word 0x021D6B38
+_020DD85C: .word 0x0A005555
+_020DD860: .word 0x0A002AAA
+_020DD864: .word 0x021D6B24
+
+ arm_func_start FUN_020DD868
+FUN_020DD868: ; 0x020DD868
+ stmdb sp!, {lr}
+ sub sp, sp, #0x24
+ str r1, [sp, #0xc]
+ strh r0, [sp, #0x20]
+ ldr r1, _020DD890 ; =FUN_020DD8C0
+ add r0, sp, #0x0
+ bl CTRDGi_SetTask
+ add sp, sp, #0x24
+ ldmia sp!, {lr}
+ bx lr
+ .balign 4
+_020DD890: .word FUN_020DD8C0
+
+ arm_func_start FUN_020DD894
+FUN_020DD894: ; 0x020DD894
+ stmdb sp!, {lr}
+ sub sp, sp, #0x24
+ strh r0, [sp, #0x20]
+ add r0, sp, #0x0
+ str r1, [sp, #0xc]
+ bl FUN_020DD8C0
+ mov r0, r0, lsl #0x10
+ mov r0, r0, lsr #0x10
+ add sp, sp, #0x24
+ ldmia sp!, {lr}
+ bx lr
+
+ arm_func_start FUN_020DD8C0
+FUN_020DD8C0: ; 0x020DD8C0
+ stmdb sp!, {r4-r8,lr}
+ sub sp, sp, #0x28
+ mov r5, r0
+ ldmia r5!, {r0-r3}
+ add r4, sp, #0x0
+ stmia r4!, {r0-r3}
+ ldmia r5!, {r0-r3}
+ stmia r4!, {r0-r3}
+ ldr r0, _020DD9E8 ; =0x021D6B20
+ ldr r1, [r5, #0x0]
+ ldr r0, [r0, #0x0]
+ str r1, [r4, #0x0]
+ ldrh r5, [sp, #0x20]
+ ldrh r0, [r0, #0xa]
+ ldr r4, [sp, #0xc]
+ cmp r5, r0
+ addcs sp, sp, #0x28
+ ldrhs r0, _020DD9EC ; =0x000080FF
+ ldmcsia sp!, {r4-r8,lr}
+ bxcs lr
+ mov r0, r5
+ bl CTRDGi_EraseFlashSectorLE
+ movs r6, r0
+ addne sp, sp, #0x28
+ ldmneia sp!, {r4-r8,lr}
+ bxne lr
+ ldr r0, _020DD9F0 ; =0x021D6B0C
+ ldrh r0, [r0, #0x0]
+ bl OS_LockCartridge
+ ldr r7, _020DD9F4 ; =0x04000204
+ ldr r0, _020DD9E8 ; =0x021D6B20
+ ldrh r3, [r7, #0x0]
+ ldr r2, [r0, #0x0]
+ ldrh r1, [r7, #0x0]
+ ldr r2, [r2, #0x10]
+ ldr r8, _020DD9F8 ; =0x021D6B08
+ bic r1, r1, #0x3
+ orr r1, r1, r2
+ strh r1, [r7, #0x0]
+ ldr r1, [r0, #0x0]
+ and r7, r3, #0x3
+ ldr r0, [r1, #0x4]
+ strh r0, [r8, #0x0]
+ ldrh r1, [r1, #0x8]
+ ldrh r0, [r8, #0x0]
+ mov r1, r5, lsl r1
+ cmp r0, #0x0
+ add r5, r1, #0xa000000
+ beq _020DD9B8
+_020DD984:
+ mov r0, r4
+ mov r1, r5
+ bl CTRDGi_ProgramFlashByteLE
+ movs r6, r0
+ bne _020DD9B8
+ ldrh r0, [r8, #0x0]
+ add r4, r4, #0x1
+ add r5, r5, #0x1
+ sub r0, r0, #0x1
+ strh r0, [r8, #0x0]
+ ldrh r0, [r8, #0x0]
+ cmp r0, #0x0
+ bne _020DD984
+_020DD9B8:
+ ldr r2, _020DD9F4 ; =0x04000204
+ ldr r0, _020DD9F0 ; =0x021D6B0C
+ ldrh r1, [r2, #0x0]
+ bic r1, r1, #0x3
+ orr r1, r1, r7
+ strh r1, [r2, #0x0]
+ ldrh r0, [r0, #0x0]
+ bl OS_UnlockCartridge2
+ mov r0, r6
+ add sp, sp, #0x28
+ ldmia sp!, {r4-r8,lr}
+ bx lr
+ .balign 4
+_020DD9E8: .word 0x021D6B20
+_020DD9EC: .word 0x000080FF
+_020DD9F0: .word 0x021D6B0C
+_020DD9F4: .word 0x04000204
+_020DD9F8: .word 0x021D6B08
+
+ arm_func_start CTRDGi_SetTask
+CTRDGi_SetTask: ; 0x020DD9FC
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0x4
+ ldr r3, _020DDAA8 ; =0x021D6B50
+ mov r7, r0
+ mov r4, r1
+ mov r6, r2
+ ldr r5, [r3, #0x0]
+ bl CTRDGi_IsTaskAvailable
+_020DDA1C: ; 0x020DDA1C
+ cmp r0, #0x0
+ bne _020DDA28
+ bl OS_Terminate
+_020DDA28:
+ ldr r0, _020DDAAC ; =0x021D6B54
+ ldrb r0, [r0, #0x22]
+ cmp r0, #0x0
+ beq _020DDA3C
+ bl OS_Terminate
+_020DDA3C:
+ bl OS_DisableInterrupts
+ mov r1, #0x1
+ strb r1, [r7, #0x22]
+ str r4, [r7, #0x0]
+ add r1, r5, #0xc4
+ cmp r7, r1
+ mov r4, r0
+ ldreq r0, _020DDAA8 ; =0x021D6B50
+ str r6, [r7, #0x4]
+ moveq r1, #0x0
+ streq r1, [r0, #0x0]
+ ldr ip, _020DDAAC ; =0x021D6B54
+ ldmia r7!, {r0-r3}
+ mov r6, r12
+ stmia r12!, {r0-r3}
+ ldmia r7!, {r0-r3}
+ stmia r12!, {r0-r3}
+ ldr r1, [r7, #0x0]
+ mov r0, r5
+ str r1, [r12, #0x0]
+ str r6, [r5, #0xc0]
+ bl OS_WakeupThreadDirect
+ mov r0, r4
+ bl OS_RestoreInterrupts
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r7,lr}
+ bx lr
+ .balign 4
+_020DDAA8: .word 0x021D6B50
+_020DDAAC: .word 0x021D6B54
+
+ arm_func_start CTRDGi_TaskThread
+CTRDGi_TaskThread: ; 0x020DDAB0
+ stmdb sp!, {r4-r10,lr}
+ sub sp, sp, #0x28
+ ldr r6, _020DDB94 ; =0x021D6B54
+ ldr r5, _020DDB98 ; =0x021D6B50
+ mov r4, r0
+ add r9, sp, #0x0
+ mov r8, #0x0
+ mov r7, #0x24
+_020DDAD0:
+ mov r0, r9
+ mov r1, r8
+ mov r2, r7
+ bl MI_CpuFill8
+ bl OS_DisableInterrupts
+ ldr r1, [r4, #0xc0]
+ mov r10, r0
+ cmp r1, #0x0
+ bne _020DDB08
+_020DDAF4:
+ mov r0, r8
+ bl OS_SleepThread
+ ldr r0, [r4, #0xc0]
+ cmp r0, #0x0
+ beq _020DDAF4
+_020DDB08:
+ ldr lr, [r4, #0xc0]
+ add r12, sp, #0x0
+ ldmia lr!, {r0-r3}
+ stmia r12!, {r0-r3}
+ ldmia lr!, {r0-r3}
+ stmia r12!, {r0-r3}
+ ldr r1, [lr, #0x0]
+ mov r0, r10
+ str r1, [r12, #0x0]
+ bl OS_RestoreInterrupts
+ ldr r1, [sp, #0x0]
+ cmp r1, #0x0
+ beq _020DDB48
+ mov r0, r9
+ blx r1
+ str r0, [sp, #0x8]
+_020DDB48:
+ bl OS_DisableInterrupts
+ ldr r1, [sp, #0x4]
+ mov r10, r0
+ strb r8, [r6, #0x22]
+ cmp r1, #0x0
+ beq _020DDB68
+ mov r0, r9
+ blx r1
+_020DDB68:
+ ldr r0, [r5, #0x0]
+ cmp r0, #0x0
+ beq _020DDB84
+ mov r0, r10
+ str r8, [r4, #0xc0]
+ bl OS_RestoreInterrupts
+ b _020DDAD0
+_020DDB84:
+ bl OS_ExitThread
+ add sp, sp, #0x28
+ ldmia sp!, {r4-r10,lr}
+ bx lr
+ .balign 4
+_020DDB94: .word 0x021D6B54
+_020DDB98: .word 0x021D6B50
+
+ arm_func_start CTRDGi_InitTaskInfo
+CTRDGi_InitTaskInfo:
+ ldr ip, _020DDBAC ; =MI_CpuFill8
+ mov r1, #0x0
+ mov r2, #0x24
+ bx r12
+ .balign 4
+_020DDBAC: .word MI_CpuFill8
+
+ arm_func_start CTRDGi_IsTaskAvailable
+CTRDGi_IsTaskAvailable:
+ ldr r0, _020DDBC8 ; =0x021D6B50
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ movne r0, #0x1
+ moveq r0, #0x0
+ bx lr
+ .balign 4
+_020DDBC8: .word 0x021D6B50
+
+ arm_func_start CTRDGi_InitTaskThread
+CTRDGi_InitTaskThread: ; 0x020DDBCC
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0xc
+ mov r5, r0
+ bl OS_DisableInterrupts
+ ldr r1, _020DDC4C ; =0x021D6B50
+ mov r4, r0
+ ldr r0, [r1, #0x0]
+ cmp r0, #0x0
+ bne _020DDC38
+ add r0, r5, #0xc4
+ str r5, [r1, #0x0]
+ bl CTRDGi_InitTaskInfo
+ ldr r0, _020DDC50 ; =0x021D6B54
+ bl CTRDGi_InitTaskInfo
+_020DDC04: ; 0x020DDC04
+ mov r0, #0x0
+ str r0, [r5, #0xc0]
+ mov r2, #0x400
+ ldr r1, _020DDC54 ; =CTRDGi_TaskThread
+ ldr r3, _020DDC58 ; =0x021D6F78
+ mov r0, r5
+ str r2, [sp, #0x0]
+ mov r2, #0x14
+ str r2, [sp, #0x4]
+ mov r2, r5
+ bl OS_CreateThread
+ mov r0, r5
+ bl OS_WakeupThreadDirect
+_020DDC38:
+ mov r0, r4
+ bl OS_RestoreInterrupts
+ add sp, sp, #0xc
+ ldmia sp!, {r4-r5,lr}
+ bx lr
+ .balign 4
+_020DDC4C: .word 0x021D6B50
+_020DDC50: .word 0x021D6B54
+_020DDC54: .word CTRDGi_TaskThread
+_020DDC58: .word 0x021D6F78
diff --git a/arm9/asm/DGT_arm9.s b/arm9/asm/DGT_arm9.s
new file mode 100644
index 00000000..d5ef358d
--- /dev/null
+++ b/arm9/asm/DGT_arm9.s
@@ -0,0 +1,1017 @@
+ .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 MATH_CalcHMACSHA1
+MATH_CalcHMACSHA1: ; 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/FS_arm9.s b/arm9/asm/FS_arm9.s
new file mode 100644
index 00000000..8fcbff7a
--- /dev/null
+++ b/arm9/asm/FS_arm9.s
@@ -0,0 +1,3011 @@
+ .include "asm/macros.inc
+ .include "global.inc"
+ .section .text
+
+ arm_func_start FSi_TranslateCommand
+FSi_TranslateCommand:
+ stmdb sp!, {r4-r8,lr}
+ mov r8, r0
+ ldr r0, [r8, #0xc]
+ mov r7, r1
+ mov r1, #0x1
+ ldr r5, [r8, #0x8]
+ mov r4, r1, lsl r7
+ ands r0, r0, #0x4
+ moveq r1, #0x0
+ cmp r1, #0x0
+ ldrne r0, [r5, #0x1c]
+ orrne r0, r0, #0x200
+ strne r0, [r5, #0x1c]
+ ldreq r0, [r5, #0x1c]
+ orreq r0, r0, #0x100
+ streq r0, [r5, #0x1c]
+ ldr r0, [r5, #0x58]
+ ands r0, r0, r4
+ beq _020CFFE4
+ ldr r2, [r5, #0x54]
+ mov r0, r8
+ mov r1, r7
+ blx r2
+ mov r6, r0
+ cmp r6, #0x8
+ addls pc, pc, r6, lsl #0x2
+ b _020CFFE8
+_020CFFA0:
+ b _020CFFC4
+ b _020CFFC4
+ b _020CFFE8
+ b _020CFFE8
+ b _020CFFC4
+ b _020CFFE8
+ b _020CFFE8
+ b _020CFFE8
+ b _020CFFCC
+_020CFFC4:
+ str r6, [r8, #0x14]
+ b _020CFFE8
+_020CFFCC:
+ ldr r1, [r5, #0x58]
+ mvn r0, r4
+ and r0, r1, r0
+ str r0, [r5, #0x58]
+ mov r6, #0x7
+ b _020CFFE8
+_020CFFE4:
+ mov r6, #0x7
+_020CFFE8:
+ cmp r6, #0x7
+ bne _020D0004
+ ldr r1, _020D00AC ; =0x02103F80
+ mov r0, r8
+ ldr r1, [r1, r7, lsl #0x2]
+ blx r1
+ mov r6, r0
+_020D0004:
+ cmp r6, #0x6
+ bne _020D0060
+ ldr r0, [r8, #0xc]
+ ands r0, r0, #0x4
+ movne r0, #0x1
+ moveq r0, #0x0
+ cmp r0, #0x0
+ beq _020D00A0
+ bl OS_DisableInterrupts
+ ldr r1, [r5, #0x1c]
+ mov r4, r0
+ ands r0, r1, #0x200
+ beq _020D0050
+ add r6, r5, #0xc
+_020D003C:
+ mov r0, r6
+ bl OS_SleepThread
+ ldr r0, [r5, #0x1c]
+ ands r0, r0, #0x200
+ bne _020D003C
+_020D0050:
+ mov r0, r4
+ ldr r6, [r8, #0x14]
+ bl OS_RestoreInterrupts
+ b _020D00A0
+_020D0060:
+ ldr r0, [r8, #0xc]
+ ands r0, r0, #0x4
+ movne r0, #0x1
+ moveq r0, #0x0
+ cmp r0, #0x0
+ ldrne r0, [r5, #0x1c]
+ bicne r0, r0, #0x200
+ strne r0, [r5, #0x1c]
+ strne r6, [r8, #0x14]
+ bne _020D00A0
+ ldr r1, [r5, #0x1c]
+ mov r0, r8
+ bic r2, r1, #0x100
+ mov r1, r6
+ str r2, [r5, #0x1c]
+ bl FSi_ReleaseCommand
+_020D00A0:
+ mov r0, r6
+ ldmia sp!, {r4-r8,lr}
+ bx lr
+ .balign 4
+_020D00AC: .word 0x02103F80
+
+ arm_func_start FSi_ReleaseCommand
+FSi_ReleaseCommand:
+ stmdb sp!, {r4-r6,lr}
+ mov r6, r0
+ mov r5, r1
+ bl OS_DisableInterrupts
+ ldr r1, [r6, #0x0]
+ mov r4, r0
+ ldr r0, [r6, #0x4]
+ cmp r1, #0x0
+ strne r0, [r1, #0x4]
+ cmp r0, #0x0
+ strne r1, [r0, #0x0]
+ mov r0, #0x0
+ str r0, [r6, #0x0]
+ ldr r1, [r6, #0x0]
+ add r0, r6, #0x18
+ str r1, [r6, #0x4]
+ ldr r1, [r6, #0xc]
+ bic r1, r1, #0x4f
+ str r1, [r6, #0xc]
+ str r5, [r6, #0x14]
+ bl OS_WakeupThread
+ mov r0, r4
+ bl OS_RestoreInterrupts
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+
+ arm_func_start FSi_CloseFileCommand
+FSi_CloseFileCommand: ; 0x020D0114
+ mov r0, #0x0
+ bx lr
+
+ arm_func_start FSi_OpenFileDirectCommand
+FSi_OpenFileDirectCommand: ; 0x020D011C
+ ldr r1, [r0, #0x30]
+ str r1, [r0, #0x24]
+ ldr r1, [r0, #0x30]
+ str r1, [r0, #0x2c]
+ ldr r1, [r0, #0x34]
+ str r1, [r0, #0x28]
+ ldr r1, [r0, #0x38]
+ str r1, [r0, #0x20]
+ mov r0, #0x0
+ bx lr
+
+ arm_func_start FSi_OpenFileFastCommand
+FSi_OpenFileFastCommand: ; 0x020D0144
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x14
+ mov r5, r0
+ ldr r1, [r5, #0x8]
+ ldr r4, [r5, #0x34]
+ ldr r0, [r1, #0x30]
+ mov r2, r4, lsl #0x3
+ cmp r2, r0
+ addcs sp, sp, #0x14
+ movcs r0, #0x1
+ ldmcsia sp!, {r4-r5,lr}
+ bxcs lr
+ str r1, [sp, #0x8]
+ ldr r1, [r1, #0x2c]
+ add r0, sp, #0x8
+ add r3, r1, r2
+ add r1, sp, #0x0
+ mov r2, #0x8
+ str r3, [sp, #0xc]
+ bl FSi_ReadTable
+_020D0194:
+ cmp r0, #0
+ addne sp, sp, #0x14
+ ldmneia sp!, {r4-r5,lr}
+ bxne lr
+ ldr r1, [sp]
+ mov r0, r5
+ str r1, [r5, #0x30]
+ ldr r2, [sp, #0x4]
+ mov r1, #7
+ str r2, [r5, #0x34]
+ str r4, [r5, #0x38]
+ bl FSi_TranslateCommand
+ add sp, sp, #0x14
+ ldmia sp!, {r4-r5,lr}
+ bx lr
+
+ arm_func_start FSi_GetPathCommand
+FSi_GetPathCommand: ; 0x020D01D0
+ stmdb sp!, {r4-r11,lr}
+ sub sp, sp, #0xe4
+ mov r4, r0
+ ldr r1, [r4, #0x8]
+ add r0, sp, #0x98
+ add r11, r4, #0x30
+ str r1, [sp, #0x0]
+ bl FS_InitFile
+ ldr r0, [r4, #0x8]
+ str r0, [sp, #0xa0]
+ ldr r0, [r4, #0xc]
+ ands r0, r0, #0x20
+ movne r0, #0x1
+ moveq r0, #0x0
+ cmp r0, #0x0
+ ldrneh r5, [r4, #0x24]
+ movne r4, #0x10000
+ bne _020D02BC
+ ldrh r0, [r11, #0x8]
+ ldr r4, [r4, #0x20]
+ cmp r0, #0x0
+ ldrneh r5, [r11, #0xa]
+ bne _020D02BC
+ mov r10, #0x0
+ mov r9, r10
+ mov r5, #0x10000
+ add r8, sp, #0x98
+ mov r6, #0x3
+ mov r7, #0x1
+_020D0244:
+ mov r0, r8
+ mov r1, r10
+ bl FSi_SeekDirDirect
+ add r2, sp, #0x4
+ cmp r10, #0x0
+ mov r0, r8
+ mov r1, r6
+ ldreq r9, [sp, #0xc4]
+ str r2, [sp, #0xc8]
+ str r7, [sp, #0xcc]
+ bl FSi_TranslateCommand
+_020D0270:
+ cmp r0, #0x0
+ bne _020D02A8
+_020D0278:
+ ldr r0, [sp, #0x10]
+ cmp r0, #0x0
+ bne _020D0294
+ ldr r0, [sp, #0x8]
+ cmp r0, r4
+ ldreqh r5, [sp, #0xbc]
+ beq _020D02A8
+_020D0294:
+ mov r0, r8
+ mov r1, r6
+ bl FSi_TranslateCommand
+ cmp r0, #0x0
+ beq _020D0278
+_020D02A8:
+ cmp r5, #0x10000
+ bne _020D02BC
+ add sl, sl, #0x1
+ cmp sl, r9
+ bcc _020D0244
+_020D02BC:
+ cmp r5, #0x10000
+ moveq r0, #0x0
+ streqh r0, [r11, #0x8]
+ addeq sp, sp, #0xe4
+ moveq r0, #0x1
+ ldmeqia sp!, {r4-r11,lr}
+ bxeq lr
+ ldrh r0, [r11, #0x8]
+ cmp r0, #0x0
+ bne _020D03B8
+ ldr r0, [sp, #0x0]
+ mov r1, #0x0
+ ldr r0, [r0, #0x0]
+ cmp r0, #0xff
+ addls r9, r1, #0x1
+ bls _020D0308
+ cmp r0, #0xff00
+ addls r9, r1, #0x2
+ addhi r9, r1, #0x3
+_020D0308:
+ cmp r4, #0x10000
+ ldrne r0, [sp, #0x14]
+ add r9, r9, #0x2
+ addne r9, r9, r0
+ mov r10, r5
+ cmp r5, #0x0
+ beq _020D03AC
+ add r0, sp, #0x98
+ mov r1, r5
+ bl FSi_SeekDirDirect
+ add r8, sp, #0x98
+ mov r6, #0x3
+ mov r7, #0x1
+_020D033C:
+ ldr r1, [sp, #0xc4]
+ mov r0, r8
+ bl FSi_SeekDirDirect
+ add r2, sp, #0x4
+ mov r0, r8
+ mov r1, r6
+ str r2, [sp, #0xc8]
+ str r7, [sp, #0xcc]
+ bl FSi_TranslateCommand
+_020D0360:
+ cmp r0, #0x0
+ bne _020D03A0
+_020D0368:
+ ldr r0, [sp, #0x10]
+ cmp r0, #0x0
+ beq _020D038C
+ ldrh r0, [sp, #0x8]
+ cmp r0, sl
+ ldreq r0, [sp, #0x14]
+ addeq r0, r0, #0x1
+ addeq r9, r9, r0
+ beq _020D03A0
+_020D038C:
+ mov r0, r8
+ mov r1, r6
+ bl FSi_TranslateCommand
+ cmp r0, #0x0
+ beq _020D0368
+_020D03A0:
+ ldrh sl, [sp, #0xbc]
+ cmp sl, #0x0
+ bne _020D033C
+_020D03AC:
+ add r0, r9, #0x1
+ strh r0, [r11, #0x8]
+ strh r5, [r11, #0xa]
+_020D03B8:
+ ldr r7, [r11, #0x0]
+ cmp r7, #0x0
+ addeq sp, sp, #0xe4
+ moveq r0, #0x0
+ ldmeqia sp!, {r4-r11,lr}
+ bxeq lr
+ ldrh r6, [r11, #0x8]
+ ldr r0, [r11, #0x4]
+ cmp r0, r6
+ addcc sp, sp, #0xe4
+ movcc r0, #0x1
+ ldmccia sp!, {r4-r11,lr}
+ bxcc lr
+ ldr r0, [sp, #0x0]
+ mov r9, #0x0
+ ldr r0, [r0, #0x0]
+ cmp r0, #0xff
+ movls r8, #0x1
+ bls _020D0410
+ cmp r0, #0xff00
+ movls r8, #0x2
+ movhi r8, #0x3
+_020D0410:
+ ldr r0, [sp, #0x0]
+ mov r1, r7
+ mov r2, r8
+ bl MI_CpuCopy8
+ add r1, r9, r8
+ ldr r0, _020D058C ; =0x0210682C
+ add r1, r7, r1
+ mov r2, #0x2
+ bl MI_CpuCopy8
+ add r0, sp, #0x98
+ mov r1, r5
+ bl FSi_SeekDirDirect
+ cmp r4, #0x10000
+ beq _020D04C4
+ add r3, sp, #0x4
+ mov r2, #0x0
+ add r0, sp, #0x98
+ mov r1, #0x3
+ str r3, [sp, #0xc8]
+ str r2, [sp, #0xcc]
+ bl FSi_TranslateCommand
+_020D0464:
+ cmp r0, #0x0
+ bne _020D04A0
+ add r9, sp, #0x98
+ mov r8, #0x3
+_020D0474:
+ ldr r0, [sp, #0x10]
+ cmp r0, #0x0
+ bne _020D048C
+ ldr r0, [sp, #0x8]
+ cmp r0, r4
+ beq _020D04A0
+_020D048C:
+ mov r0, r9
+ mov r1, r8
+ bl FSi_TranslateCommand
+ cmp r0, #0x0
+ beq _020D0474
+_020D04A0:
+ ldr r0, [sp, #0x14]
+ add r1, r7, r6
+ add r4, r0, #0x1
+ add r0, sp, #0x18
+ mov r2, r4
+ sub r1, r1, r4
+ bl MI_CpuCopy8
+ sub r6, r6, r4
+ b _020D04D4
+_020D04C4:
+ add r0, r7, r6
+ mov r1, #0x0
+ strb r1, [r0, #-0x1]
+ sub r6, r6, #0x1
+_020D04D4:
+ cmp r5, #0x0
+ beq _020D057C
+ add r10, sp, #0x98
+ add r11, sp, #0x4
+ mov r4, #0x3
+ mov r9, #0x0
+ mov r8, #0x2f
+_020D04F0:
+ ldr r1, [sp, #0xc4]
+ mov r0, r10
+ bl FSi_SeekDirDirect
+ add r2, r7, r6
+ mov r0, r10
+ mov r1, r4
+ str r11, [sp, #0xc8]
+ str r9, [sp, #0xcc]
+ strb r8, [r2, #-0x1]
+ sub r6, r6, #0x1
+ bl FSi_TranslateCommand
+_020D051C:
+ cmp r0, #0x0
+ bne _020D0570
+_020D0524:
+ ldr r0, [sp, #0x10]
+ cmp r0, #0x0
+ beq _020D055C
+ ldrh r0, [sp, #0x8]
+ cmp r0, r5
+ bne _020D055C
+ ldr r5, [sp, #0x14]
+ add r1, r7, r6
+ add r0, sp, #0x18
+ mov r2, r5
+ sub r1, r1, r5
+ bl MI_CpuCopy8
+ sub r6, r6, r5
+ b _020D0570
+_020D055C:
+ mov r0, sl
+ mov r1, r4
+ bl FSi_TranslateCommand
+ cmp r0, #0x0
+ beq _020D0524
+_020D0570:
+ ldrh r5, [sp, #0xbc]
+ cmp r5, #0x0
+ bne _020D04F0
+_020D057C:
+ mov r0, #0x0
+ add sp, sp, #0xe4
+ ldmia sp!, {r4-r11,lr}
+ bx lr
+ .balign 4
+_020D058C: .word 0x0210682C
+
+ arm_func_start FSi_FindPathCommand
+FSi_FindPathCommand: ; 0x020D0590
+ stmdb sp!, {r4-r11,lr}
+ sub sp, sp, #0x9c
+ mov r10, r0
+ ldr r2, [r10, #0x40]
+ ldr r9, [r10, #0x3c]
+ mov r1, #0x2
+ str r2, [sp, #0x0]
+ bl FSi_TranslateCommand
+ ldrb r1, [r9, #0x0]
+ cmp r1, #0x0
+ beq _020D0780
+ mov r0, #0x2
+ add r11, sp, #0x1c
+ mov r4, #0x3
+ mov r5, #0x1
+ mov r6, #0x0
+ str r0, [sp, #0x4]
+_020D05D4:
+ mov r7, r6
+ b _020D05E0
+_020D05DC:
+ add r7, r7, #0x1
+_020D05E0:
+ ldrb r8, [r9, r7]
+ mov r0, r6
+ cmp r8, #0x0
+ beq _020D0600
+ cmp r8, #0x2f
+ beq _020D0600
+ cmp r8, #0x5c
+ movne r0, r5
+_020D0600:
+ cmp r0, #0x0
+ bne _020D05DC
+ cmp r8, #0x0
+ bne _020D061C
+ ldr r0, [sp, #0x0]
+ cmp r0, #0x0
+ beq _020D0620
+_020D061C:
+ mov r8, r5
+_020D0620:
+ cmp r7, #0x0
+ addeq sp, sp, #0x9c
+ moveq r0, #0x1
+ ldmeqia sp!, {r4-r11,lr}
+ bxeq lr
+ cmp r1, #0x2e
+ bne _020D068C
+ cmp r7, #0x1
+ addeq r9, r9, #0x1
+ beq _020D0764
+ ldrb r0, [r9, #0x1]
+ cmp r7, #0x2
+ moveq r1, r5
+ movne r1, r6
+ cmp r0, #0x2e
+ moveq r0, r5
+ movne r0, r6
+ ands r0, r1, r0
+ beq _020D068C
+ ldrh r0, [r10, #0x24]
+ cmp r0, #0x0
+ beq _020D0684
+ ldr r1, [r10, #0x2c]
+ mov r0, r10
+ bl FSi_SeekDirDirect
+_020D0684:
+ add r9, r9, #0x2
+ b _020D0764
+_020D068C:
+ cmp r7, #0x7f
+ addgt sp, sp, #0x9c
+ movgt r0, #0x1
+ ldmgtia sp!, {r4-r11,lr}
+ bxgt lr
+ add r0, sp, #0x8
+ str r0, [r10, #0x30]
+ str r6, [r10, #0x34]
+_020D06AC:
+ mov r0, r10
+ mov r1, r4
+ bl FSi_TranslateCommand
+_020D06B8:
+ cmp r0, #0x0
+ addne sp, sp, #0x9c
+ movne r0, #0x1
+ ldmneia sp!, {r4-r11,lr}
+ bxne lr
+ ldr r0, [sp, #0x14]
+ cmp r8, r0
+ bne _020D06AC
+ ldr r0, [sp, #0x18]
+ cmp r7, r0
+ bne _020D06AC
+ mov r0, r9
+ mov r1, fp
+ mov r2, r7
+ bl FSi_StrNICmp
+ cmp r0, #0x0
+ bne _020D06AC
+ cmp r8, #0x0
+ beq _020D0728
+ add r0, sp, #0x8
+ add r3, sl, #0x30
+ ldmia r0, {r0, r1, r2}
+ stmia r3, {r0, r1, r2}
+ ldr r1, [sp, #0x4]
+ mov r0, sl
+ add r9, r9, r7
+ bl FSi_TranslateCommand
+ b _020D0764
+_020D0728:
+ ldr r0, [sp]
+ cmp r0, #0x0
+ addne sp, sp, #0x9c
+ movne r0, #0x1
+ ldmneia sp!, {r4-r11,lr}
+ bxne lr
+ ldr r3, [sl, #0x44]
+ ldr r2, [sp, #0x8]
+ ldr r1, [sp, #0xC]
+ add sp, sp, #0x9c
+ str r2, [r3]
+ str r1, [r3, #0x4]
+ mov r0, #0x0
+ ldmia sp!, {r4-r11,lr}
+ bx lr
+_020D0764:
+ ldrb r0, [r9, #0x0]
+ cmp r0, #0x0
+ movne r0, r5
+ moveq r0, r6
+ ldrb r1, [r9, r0]!
+ cmp r1, #0x0
+ bne _020D05D4
+_020D0780:
+ ldr r0, [sp, #0x0]
+ cmp r0, #0x0
+ moveq r0, #0x1
+ addne r0, r10, #0x20
+ ldrne r3, [r10, #0x44]
+ ldmneia r0, {r0-r2}
+ stmneia r3, {r0-r2}
+ movne r0, #0x0
+ add sp, sp, #0x9c
+ ldmia sp!, {r4-r11,lr}
+ bx lr
+
+ arm_func_start FSi_ReadDirCommand
+FSi_ReadDirCommand: ; 0x020D07AC
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0xc
+ mov r5, r0
+ ldr r4, [r5, #0x30]
+ ldr r1, [r5, #0x8]
+ add r0, sp, #0x4
+ str r1, [sp, #0x4]
+ ldr r3, [r5, #0x28]
+ add r1, sp, #0x0
+ mov r2, #0x1
+ str r3, [sp, #0x8]
+ bl FSi_ReadTable
+_020D07DC:
+ cmp r0, #0x0
+ addne sp, sp, #0xC
+ ldmneia sp!, {r4-r5,lr}
+ bxne lr
+ ldrb r1, [sp]
+ and r2, r1, #0x7F
+ mov r1, r1, asr #0x7
+ str r2, [r4, #0x10]
+ and r1, r1, #0x1
+ str r1, [r4, #0xC]
+ ldr r2, [r4, #0x10]
+ cmp r2, #0x0
+ addeq sp, sp, #0xC
+ moveq r0, #0x1
+ ldmeqia sp!, {r4-r5,lr}
+ bxeq lr
+ ldr r1, [r5, #0x34]
+ cmp r1, #0x0
+ bne _020D0858
+ add r0, sp, #0x4
+ add r1, r4, #0x14
+ bl FSi_ReadTable
+ cmp r0, #0x0
+ addne sp, sp, #0xC
+ ldmneia sp!, {r4-r5,lr}
+ bxne lr
+ ldr r1, [r4, #0x10]
+ mov r2, #0x0
+ add r1, r4, r1
+ strb r2, [r1, #0x14]
+ b _020D0864
+_020D0858:
+ ldr r1, [sp, #0x8]
+ add r1, r1, r2
+ str r1, [sp, #0x8]
+_020D0864:
+ ldr r1, [r4, #0xC]
+ cmp r1, #0x0
+ beq _020D08B8
+ add r0, sp, #0x4
+ add r1, sp, #0x2
+ mov r2, #0x2
+ bl FSi_ReadTable
+ cmp r0, #0x0
+ addne sp, sp, #0xC
+ ldmneia sp!, {r4-r5,lr}
+ bxne lr
+ ldr r2, [r5, #0x8]
+ ldr r1, _020D08E8
+ str r2, [r4]
+ ldrh r3, [sp, #0x2]
+ mov r2, #0x0
+ and r1, r3, r1
+ strh r1, [r4, #0x4]
+ strh r2, [r4, #0x6]
+ str r2, [r4, #0x8]
+ b _020D08D4
+_020D08B8:
+ ldr r1, [r5, #0x8]
+ str r1, [r4]
+ ldrh r1, [r5, #0x26]
+ str r1, [r4, #0x4]
+ ldrh r1, [r5, #0x26]
+ add r1, r1, #0x1
+ strh r1, [r5, #0x26]
+_020D08D4:
+ ldr r1, [sp, #0x8]
+ str r1, [r5, #0x28]
+ add sp, sp, #0xC
+ ldmia sp!, {r4-r5,lr}
+ bx lr
+_020D08E8: .word 0x00000FFF
+
+ arm_func_start FSi_SeekDirCommand
+FSi_SeekDirCommand: ; 0x020D08EC
+ stmdb sp!, {r4-r6,lr}
+ sub sp, sp, #0x10
+ mov r6, r0
+ ldr r5, [r6, #0x8]
+ add r4, r6, #0x30
+ str r5, [sp, #0x8]
+ ldrh r1, [r4, #0x4]
+ ldr r2, [r5, #0x34]
+ add r0, sp, #0x8
+ add r3, r2, r1, lsl #0x3
+ add r1, sp, #0x0
+ mov r2, #0x8
+ str r3, [sp, #0xc]
+ bl FSi_ReadTable
+ movs r3, r0
+ bne _020D0978
+ add r12, r6, #0x20
+ ldmia r4, {r0-r2}
+ stmia r12, {r0-r2}
+ ldrh r0, [r4, #0x6]
+ cmp r0, #0x0
+ bne _020D0968
+ ldr r0, [r4, #0x8]
+ cmp r0, #0x0
+ bne _020D0968
+ ldrh r0, [sp, #0x4]
+ strh r0, [r6, #0x26]
+ ldr r1, [r5, #0x34]
+ ldr r0, [sp, #0x0]
+ add r0, r1, r0
+ str r0, [r6, #0x28]
+_020D0968:
+ ldrh r1, [sp, #0x6]
+ ldr r0, _020D0988 ; =0x00000FFF
+ and r0, r1, r0
+ str r0, [r6, #0x2c]
+_020D0978:
+ mov r0, r3
+ add sp, sp, #0x10
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+ .balign 4
+_020D0988: .word 0x00000FFF
+
+ arm_func_start FSi_WriteFileCommand
+FSi_WriteFileCommand: ; 0x020D098C
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldr r2, [r0, #0x2c]
+ ldr r3, [r0, #0x38]
+ ldr lr, [r0, #0x8]
+ ldr r1, [r0, #0x30]
+ add r12, r2, r3
+ str r12, [r0, #0x2c]
+ ldr r12, [lr, #0x4c]
+ mov r0, lr
+ blx r12
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+
+ arm_func_start FSi_ReadFileCommand
+FSi_ReadFileCommand: ; 0x020D09C4
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldr r2, [r0, #0x2c]
+ ldr r3, [r0, #0x38]
+ ldr lr, [r0, #0x8]
+ ldr r1, [r0, #0x30]
+ add r12, r2, r3
+ str r12, [r0, #0x2c]
+ ldr r12, [lr, #0x48]
+ mov r0, lr
+ blx r12
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+
+ arm_func_start FSi_SeekDirDirect
+FSi_SeekDirDirect: ; 0x020D09FC
+ ldr r3, [r0, #0xc]
+ mov r2, #0x0
+ orr r3, r3, #0x4
+ str r3, [r0, #0xc]
+ ldr r3, [r0, #0x8]
+ ldr ip, _020D0A2C ; =FSi_TranslateCommand
+ str r3, [r0, #0x30]
+ str r2, [r0, #0x38]
+ strh r2, [r0, #0x36]
+ strh r1, [r0, #0x34]
+ mov r1, #0x2
+ bx r12
+ .balign 4
+_020D0A2C: .word FSi_TranslateCommand
+
+ arm_func_start FSi_ReadTable
+FSi_ReadTable:
+ stmdb sp!, {r4-r8,lr}
+ mov r7, r0
+ ldr r5, [r7, #0x0]
+ mov r6, r2
+ ldr r2, [r5, #0x1c]
+ mov r0, r5
+ orr r2, r2, #0x200
+ str r2, [r5, #0x1c]
+ ldr r2, [r7, #0x4]
+ ldr r4, [r5, #0x50]
+ mov r3, r6
+ blx r4
+ cmp r0, #0x0
+ beq _020D0A7C
+ cmp r0, #0x1
+ beq _020D0A7C
+ cmp r0, #0x6
+ beq _020D0A8C
+ b _020D0AC8
+_020D0A7C:
+ ldr r1, [r5, #0x1c]
+ bic r1, r1, #0x200
+ str r1, [r5, #0x1c]
+ b _020D0AC8
+_020D0A8C:
+ bl OS_DisableInterrupts
+ ldr r1, [r5, #0x1c]
+ mov r4, r0
+ ands r0, r1, #0x200
+ beq _020D0AB8
+ add r8, r5, #0xc
+_020D0AA4:
+ mov r0, r8
+ bl OS_SleepThread
+ ldr r0, [r5, #0x1c]
+ ands r0, r0, #0x200
+ bne _020D0AA4
+_020D0AB8:
+ mov r0, r4
+ bl OS_RestoreInterrupts
+ ldr r0, [r5, #0x24]
+ ldr r0, [r0, #0x14]
+_020D0AC8:
+ ldr r1, [r7, #0x4]
+ add r1, r1, r6
+ str r1, [r7, #0x4]
+ ldmia sp!, {r4-r8,lr}
+ bx lr
+
+ arm_func_start FSi_StrNICmp
+FSi_StrNICmp: ; 0x020D0ADC
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ cmp r2, #0x0
+ mov lr, #0x0
+ bls _020D0B30
+_020D0AF0:
+ ldrb r12, [r0, lr]
+ ldrb r3, [r1, lr]
+ sub r12, r12, #0x41
+ cmp r12, #0x19
+ sub r3, r3, #0x41
+ addls r12, r12, #0x20
+ cmp r3, #0x19
+ addls r3, r3, #0x20
+ cmp r12, r3
+ addne sp, sp, #0x4
+ subne r0, r12, r3
+ ldmneia sp!, {lr}
+ bxne lr
+ add lr, lr, #0x1
+ cmp lr, r2
+ blo _020D0AF0
+_020D0B30:
+ mov r0, #0x0
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+
+ arm_func_start FS_NotifyArchiveAsyncEnd
+FS_NotifyArchiveAsyncEnd: ; 0x020D0B40
+ stmdb sp!, {r4-r6,lr}
+ mov r4, r0
+ ldr r0, [r4, #0x1c]
+ mov r6, r1
+ ands r0, r0, #0x100
+ beq _020D0B8C
+ ldr r2, [r4, #0x1c]
+ ldr r0, [r4, #0x24]
+ bic r2, r2, #0x100
+ str r2, [r4, #0x1c]
+ bl FSi_ReleaseCommand
+ mov r0, r4
+ bl FSi_NextCommand
+_020D0B74:
+ cmp r0, #0x0
+ ldmeqia sp!, {r4-r6,lr}
+ bxeq lr
+ bl FSi_ExecuteAsyncCommand
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+_020D0B8C:
+ ldr r5, [r4, #0x24]
+ bl OS_DisableInterrupts
+ str r6, [r5, #0x14]
+ ldr r1, [r4, #0x1c]
+ mov r5, r0
+ bic r1, r1, #0x200
+ add r0, r4, #0xc
+ str r1, [r4, #0x1c]
+ bl OS_WakeupThread
+ mov r0, r5
+ bl OS_RestoreInterrupts
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+
+ arm_func_start FS_SetArchiveProc
+FS_SetArchiveProc: ; 0x020D0BC0
+ cmp r2, #0x0
+ moveq r1, #0x0
+ beq _020D0BD4
+ cmp r1, #0x0
+ moveq r2, #0x0
+_020D0BD4:
+ str r1, [r0, #0x54]
+ str r2, [r0, #0x58]
+ bx lr
+
+ arm_func_start FS_ResumeArchive
+FS_ResumeArchive:
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0x4
+ mov r4, r0
+ mov r6, #0x0
+ bl OS_DisableInterrupts
+ ldr r1, [r4, #0x1c]
+ mov r5, r0
+ ands r0, r1, #0x8
+ movne r0, #0x1
+ moveq r0, r6
+ cmp r0, #0x0
+ moveq r7, #0x1
+ movne r7, #0x0
+ cmp r7, #0x0
+ bne _020D0C34
+ ldr r1, [r4, #0x1c]
+ mov r0, r4
+ bic r1, r1, #0x8
+ str r1, [r4, #0x1c]
+ bl FSi_NextCommand
+ mov r6, r0
+_020D0C34:
+ mov r0, r5
+ bl OS_RestoreInterrupts
+_020D0C3C:
+ cmp r6, #0x0
+ beq _020D0C4C
+ mov r0, r6
+ bl FSi_ExecuteAsyncCommand
+_020D0C4C:
+ mov r0, r7
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r7, lr}
+ bx lr
+
+ arm_func_start FS_SuspendArchive
+FS_SuspendArchive: ; 0x020D0C5C
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0x4
+ mov r6, r0
+ bl OS_DisableInterrupts
+ ldr r1, [r6, #0x1c]
+ mov r4, r0
+ ands r0, r1, #0x8
+ movne r0, #0x1
+ moveq r0, #0x0
+ cmp r0, #0x0
+ moveq r5, #0x1
+ movne r5, #0x0
+ cmp r5, #0x0
+ beq _020D0CD4
+ ldr r0, [r6, #0x1c]
+ ands r0, r0, #0x10
+ beq _020D0CC8
+ ldr r0, [r6, #0x1c]
+ orr r0, r0, #0x40
+ str r0, [r6, #0x1c]
+ add r7, r6, #0x14
+_020D0CB0:
+ mov r0, r7
+ bl OS_SleepThread
+ ldr r0, [r6, #0x1c]
+ ands r0, r0, #0x40
+ bne _020D0CB0
+ b _020D0CD4
+_020D0CC8:
+ ldr r0, [r6, #0x1c]
+ orr r0, r0, #0x8
+ str r0, [r6, #0x1c]
+_020D0CD4:
+ mov r0, r4
+ bl OS_RestoreInterrupts
+ mov r0, r5
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r7,lr}
+ bx lr
+
+ arm_func_start FS_UnloadArchiveTables
+FS_UnloadArchiveTables: ; 0x020D0CEC
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ mov r5, r0
+ ldr r0, [r5, #0x1c]
+ mov r4, #0x0
+ ands r0, r0, #0x2
+ movne r0, #0x1
+ moveq r0, r4
+ cmp r0, #0x0
+ beq _020D0D74
+ mov r0, r5
+ bl FS_SuspendArchive
+ ldr r1, [r5, #0x1c]
+ ands r1, r1, #0x4
+ movne r1, #0x1
+ moveq r1, #0x0
+ cmp r1, #0x0
+ beq _020D0D64
+ ldr r2, [r5, #0x1c]
+ mov r1, #0x0
+ bic r2, r2, #0x4
+ str r2, [r5, #0x1c]
+ ldr r4, [r5, #0x44]
+ str r1, [r5, #0x44]
+ ldr r1, [r5, #0x3c]
+ str r1, [r5, #0x2c]
+ ldr r1, [r5, #0x40]
+ str r1, [r5, #0x34]
+ ldr r1, [r5, #0x48]
+ str r1, [r5, #0x50]
+_020D0D64:
+ cmp r0, #0x0
+ beq _020D0D74
+ mov r0, r5
+ bl FS_ResumeArchive
+_020D0D74:
+ mov r0, r4
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,lr}
+ bx lr
+
+ arm_func_start FUN_020D0D84
+FUN_020D0D84: ; 0x020D0D84
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0x4c
+ mov r7, r0
+ ldr r3, [r7, #0x30]
+ ldr r0, [r7, #0x38]
+ mov r6, r1
+ add r0, r3, r0
+ add r0, r0, #0x20
+ add r0, r0, #0x1f
+ bic r5, r0, #0x1f
+ cmp r5, r2
+ bhi _020D0E9C
+ add r1, r6, #0x1f
+ add r0, sp, #0x4
+ bic r4, r1, #0x1f
+ bl FS_InitFile
+ ldr r2, [r7, #0x2c]
+ mvn r0, #0x0
+ str r0, [sp, #0x0]
+ ldr r3, [r7, #0x30]
+ add r0, sp, #0x4
+ mov r1, r7
+ add r3, r2, r3
+ bl FS_OpenFileDirect
+_020D0DE4:
+ cmp r0, #0x0
+ beq _020D0E1C
+ ldr r2, [r7, #0x30]
+ add r0, sp, #0x4
+ mov r1, r4
+ bl FS_ReadFile
+ cmp r0, #0x0
+ bge _020D0E14
+ ldr r2, [r7, #0x30]
+ mov r0, r4
+ mov r1, #0x0
+ bl MI_CpuFill8
+_020D0E14:
+ add r0, sp, #0x4
+ bl FS_CloseFile
+_020D0E1C:
+ str r4, [r7, #0x2C]
+ ldr ip, [r7, #0x30]
+ ldr r2, [r7, #0x34]
+ mvn r0, #0x0
+ str r0, [sp]
+ ldr r3, [r7, #0x38]
+ add r0, sp, #0x4
+ mov r1, r7
+ add r3, r2, r3
+ add r4, r4, ip
+ bl FS_OpenFileDirect
+ cmp r0, #0x0
+ beq _020D0E80
+ ldr r2, [r7, #0x38]
+ add r0, sp, #0x4
+ mov r1, r4
+ bl FS_ReadFile
+ cmp r0, #0x0
+ bge _020D0E78
+ ldr r2, [r7, #0x38]
+ mov r0, r4
+ mov r1, #0x0
+ bl MI_CpuFill8
+_020D0E78:
+ add r0, sp, #0x4
+ bl FS_CloseFile
+_020D0E80:
+ str r4, [r7, #0x34]
+ ldr r0, _020D0EAC
+ str r6, [r7, #0x44]
+ str r0, [r7, #0x50]
+ ldr r0, [r7, #0x1C]
+ orr r0, r0, #0x4
+ str r0, [r7, #0x1C]
+_020D0E9C:
+ mov r0, r5
+ add sp, sp, #0x4C
+ ldmia sp!, {r4-r7,lr}
+ bx lr
+_020D0EAC:
+ .word FSi_ReadMemoryCore
+
+ arm_func_start FUN_020D0EB0
+FUN_020D0EB0: ; 0x020D0EB0
+ stmdb sp!, {r4-r8,lr}
+ mov r5, r0
+ bl OS_DisableInterrupts
+ ldr r1, [r5, #0x1c]
+ mov r4, r0
+ ands r0, r1, #0x2
+ movne r0, #0x1
+ moveq r0, #0x0
+ cmp r0, #0x0
+ beq _020D0F64
+ mov r0, r5
+ ldr r1, [r5, #0x1c]
+ bl FS_SuspendArchive
+ ldr r1, [r5, #0x1c]
+ mov r7, r0
+ orr r0, r1, #0x80
+ str r0, [r5, #0x1c]
+ ldr r0, [r5, #0x24]
+ cmp r0, #0x0
+ beq _020D0F1C
+ mov r6, #0x3
+_020D0F04:
+ ldr r8, [r0, #0x4]
+ mov r1, r6
+ bl FSi_ReleaseCommand
+ mov r0, r8
+ cmp r8, #0x0
+ bne _020D0F04
+_020D0F1C:
+ mov r0, #0x0
+ str r0, [r5, #0x24]
+ cmp r7, #0x0
+ beq _020D0F34
+ mov r0, r5
+ bl FS_ResumeArchive
+_020D0F34:
+ mov r0, #0x0
+ str r0, [r5, #0x28]
+ str r0, [r5, #0x2c]
+ str r0, [r5, #0x30]
+ str r0, [r5, #0x34]
+ str r0, [r5, #0x38]
+ str r0, [r5, #0x40]
+ ldr r0, [r5, #0x40]
+ str r0, [r5, #0x3c]
+ ldr r0, [r5, #0x1c]
+ bic r0, r0, #0xa2
+ str r0, [r5, #0x1c]
+_020D0F64:
+ mov r0, r4
+ bl OS_RestoreInterrupts
+ mov r0, #0x1
+ ldmia sp!, {r4-r8,lr}
+ bx lr
+
+ arm_func_start FS_LoadArchive
+FS_LoadArchive: ; 0x020D0F78
+ str r1, [r0, #0x28]
+ str r3, [r0, #0x30]
+ str r2, [r0, #0x3c]
+ ldr r1, [r0, #0x3c]
+ ldr r2, [sp, #0x4]
+ str r1, [r0, #0x2c]
+ str r2, [r0, #0x38]
+ ldr r1, [sp, #0x0]
+ ldr r2, [sp, #0x8]
+ str r1, [r0, #0x40]
+ ldr r1, [r0, #0x40]
+ cmp r2, #0x0
+ str r1, [r0, #0x34]
+ ldreq r2, _020D0FE8 ; =FSi_ReadMemCallback
+ ldr r1, [sp, #0xc]
+ str r2, [r0, #0x48]
+ cmp r1, #0x0
+ ldreq r1, _020D0FEC ; =FSi_WriteMemCallback
+ str r1, [r0, #0x4c]
+ ldr r2, [r0, #0x48]
+ mov r1, #0x0
+ str r2, [r0, #0x50]
+ str r1, [r0, #0x44]
+ ldr r1, [r0, #0x1c]
+ orr r1, r1, #0x2
+ str r1, [r0, #0x1c]
+ mov r0, #0x1
+ bx lr
+ .balign 4
+_020D0FE8: .word FSi_ReadMemCallback
+_020D0FEC: .word FSi_WriteMemCallback
+
+ arm_func_start FUN_020D0FF0
+FUN_020D0FF0: ; 0x020D0FF0
+ stmdb sp!, {r4,lr}
+ mov r4, r0
+ ldr r0, [r4, #0x0]
+ cmp r0, #0x0
+ ldmeqia sp!, {r4,lr}
+ bxeq lr
+ bl OS_DisableInterrupts
+ ldr r2, [r4, #0x4]
+ mov r3, #0x0
+ cmp r2, #0x0
+ ldrne r1, [r4, #0x8]
+ strne r1, [r2, #0x8]
+ ldr r2, [r4, #0x8]
+ cmp r2, #0x0
+ ldrne r1, [r4, #0x4]
+ strne r1, [r2, #0x4]
+ str r3, [r4, #0x0]
+ str r3, [r4, #0x8]
+ ldr r1, [r4, #0x8]
+ ldr r2, _020D1080 ; =0x021D53EC
+ str r1, [r4, #0x4]
+ ldr r1, [r4, #0x1c]
+ bic r1, r1, #0x1
+ str r1, [r4, #0x1c]
+ ldr r1, [r2, #0x0]
+ cmp r1, r4
+ bne _020D1074
+ ldr r1, _020D1084 ; =0x021D53E8
+ str r3, [r2, #0x8]
+ ldr r1, [r1, #0x0]
+ strh r3, [r2, #0x6]
+ str r1, [r2, #0x0]
+ strh r3, [r2, #0x4]
+_020D1074:
+ bl OS_RestoreInterrupts
+ ldmia sp!, {r4,lr}
+ bx lr
+ .balign 4
+_020D1080: .word 0x021D53EC
+_020D1084: .word 0x021D53E8
+
+ arm_func_start FS_RegisterArchiveName
+FS_RegisterArchiveName: ; 0x020D1088
+ stmdb sp!, {r4-r8,lr}
+ mov r6, r1
+ mov r5, r2
+ mov r7, r0
+ mov r8, #0x0
+ bl OS_DisableInterrupts
+ mov r4, r0
+ mov r0, r6
+ mov r1, r5
+ bl FS_FindArchive
+_020D10B0:
+ cmp r0, #0x0
+ bne _020D112C
+ ldr r1, _020D1140
+ ldr r2, [r1]
+ cmp r2, #0x0
+ bne _020D10E8
+ ldr r0, _020D1144
+ mov r2, r8
+ str r7, [r1]
+ str r7, [r0]
+ str r2, [r0, #0x8]
+ strh r2, [r0, #0x6]
+ strh r2, [r0, #0x4]
+ b _020D110C
+_020D10E8:
+ ldr r0, [r2, #0x4]
+ cmp r0, #0x0
+ beq _020D1104
+_020D10F4:
+ mov r2, r0
+ ldr r0, [r0, #0x4]
+ cmp r0, #0x0
+ bne _020D10F4
+_020D1104:
+ str r7, [r2, #0x4]
+ str r2, [r7, #0x8]
+_020D110C:
+ mov r0, r6
+ mov r1, r5
+ bl FSi_GetPackedName
+ str r0, [r7]
+ ldr r0, [r7, #0x1C]
+ mov r8, #0x1
+ orr r0, r0, #0x1
+ str r0, [r7, #0x1C]
+_020D112C:
+ mov r0, r4
+ bl OS_RestoreInterrupts
+ mov r0, r8
+ ldmia sp!, {r4-r8,lr}
+ bx lr
+_020D1140: .word 0x021D53E8
+_020D1144: .word 0x021D53EC
+
+ arm_func_start FS_FindArchive
+FS_FindArchive:
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ bl FSi_GetPackedName
+ mov r5, r0
+ bl OS_DisableInterrupts
+ ldr r1, _020D1194 ; =0x021D53E8
+ ldr r4, [r1, #0x0]
+ b _020D116C
+_020D1168:
+ ldr r4, [r4, #0x4]
+_020D116C:
+ cmp r4, #0x0
+ beq _020D1180
+ ldr r1, [r4, #0x0]
+ cmp r1, r5
+ bne _020D1168
+_020D1180:
+ bl OS_RestoreInterrupts
+ mov r0, r4
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,lr}
+ bx lr
+ .balign 4
+_020D1194: .word 0x021D53E8
+
+ arm_func_start FS_InitArchive
+FS_InitArchive: ; 0x020D1198
+ stmdb sp!, {r4,lr}
+ mov r1, #0x0
+ mov r2, #0x5c
+ mov r4, r0
+ bl MI_CpuFill8
+ mov r1, #0x0
+ str r1, [r4, #0x10]
+ ldr r0, [r4, #0x10]
+ str r0, [r4, #0xc]
+ str r1, [r4, #0x18]
+ ldr r0, [r4, #0x18]
+ str r0, [r4, #0x14]
+ ldmia sp!, {r4,lr}
+ bx lr
+
+ arm_func_start FSi_SendCommand
+FSi_SendCommand:
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0x4
+ mov r7, r0
+ ldr r6, [r7, #0x8]
+ mov r2, #0x1
+ str r1, [r7, #0x10]
+ mov r0, #0x2
+ str r0, [r7, #0x14]
+ ldr r0, [r7, #0xc]
+ mov r5, r2, lsl r1
+ orr r0, r0, #0x1
+ str r0, [r7, #0xc]
+ bl OS_DisableInterrupts
+ ldr r1, [r6, #0x1c]
+ mov r4, r0
+ ands r0, r1, #0x80
+ beq _020D1238
+ mov r0, r7
+ mov r1, #0x3
+ bl FSi_ReleaseCommand
+ mov r0, r4
+ bl OS_RestoreInterrupts
+ add sp, sp, #0x4
+ mov r0, #0x0
+ ldmia sp!, {r4-r7,lr}
+ bx lr
+_020D1238:
+ ands r0, r5, #0x1fc
+ ldrne r0, [r7, #0xc]
+ add r2, r6, #0x20
+ orrne r0, r0, #0x4
+ strne r0, [r7, #0xc]
+ ldr r1, [r7, #0x0]
+ ldr r0, [r7, #0x4]
+ cmp r1, #0x0
+ strne r0, [r1, #0x4]
+ cmp r0, #0x0
+ strne r1, [r0, #0x0]
+ ldr r0, [r2, #0x4]
+ cmp r0, #0x0
+ beq _020D1280
+_020D1270:
+ mov r2, r0
+ ldr r0, [r0, #0x4]
+ cmp r0, #0x0
+ bne _020D1270
+_020D1280:
+ str r7, [r2, #0x4]
+ str r2, [r7, #0x0]
+ mov r1, #0x0
+ str r1, [r7, #0x4]
+ ldr r0, [r6, #0x1c]
+ ands r0, r0, #0x8
+ movne r1, #0x1
+ cmp r1, #0x0
+ bne _020D132C
+ ldr r0, [r6, #0x1c]
+ ands r0, r0, #0x10
+ bne _020D132C
+ ldr r1, [r6, #0x1c]
+ mov r0, r4
+ orr r1, r1, #0x10
+ str r1, [r6, #0x1c]
+ bl OS_RestoreInterrupts
+ ldr r0, [r6, #0x58]
+ ands r0, r0, #0x200
+ beq _020D12E0
+ ldr r2, [r6, #0x54]
+ mov r0, r7
+ mov r1, #0x9
+ blx r2
+_020D12E0:
+ bl OS_DisableInterrupts
+ ldr r1, [r7, #0xc]
+ orr r1, r1, #0x40
+ str r1, [r7, #0xc]
+ ldr r1, [r7, #0xc]
+ ands r1, r1, #0x4
+ movne r1, #0x1
+ moveq r1, #0x0
+ cmp r1, #0x0
+ bne _020D1324
+ bl OS_RestoreInterrupts
+ mov r0, r7
+ bl FSi_ExecuteAsyncCommand
+ add sp, sp, #0x4
+ mov r0, #0x1
+ ldmia sp!, {r4-r7,lr}
+ bx lr
+_020D1324:
+ bl OS_RestoreInterrupts
+ b _020D1378
+_020D132C:
+ ldr r0, [r7, #0xc]
+ ands r0, r0, #0x4
+ movne r0, #0x1
+ moveq r0, #0x0
+ cmp r0, #0x0
+ bne _020D135C
+ mov r0, r4
+ bl OS_RestoreInterrupts
+ add sp, sp, #0x4
+ mov r0, #0x1
+ ldmia sp!, {r4-r7,lr}
+ bx lr
+_020D135C:
+ add r0, r7, #0x18
+ bl OS_SleepThread
+ ldr r0, [r7, #0xc]
+ ands r0, r0, #0x40
+ beq _020D135C
+ mov r0, r4
+ bl OS_RestoreInterrupts
+_020D1378:
+ mov r0, r7
+ bl FSi_ExecuteSyncCommand
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r7,lr}
+ bx lr
+
+ arm_func_start FSi_ExecuteSyncCommand
+FSi_ExecuteSyncCommand: ; 0x020D138C
+ stmdb sp!, {r4,lr}
+ mov r4, r0
+ ldr r1, [r4, #0x10]
+ bl FSi_TranslateCommand
+ mov r1, r0
+ mov r0, r4
+ bl FSi_ReleaseCommand
+ ldr r0, [r4, #0x8]
+ bl FSi_NextCommand
+_020D13B0:
+ cmp r0, #0x0
+ beq _020D13BC
+ bl FSi_ExecuteAsyncCommand
+_020D13BC:
+ ldr r0, [r4, #0x14]
+ cmp r0, #0x0
+ moveq r0, #0x1
+ movne r0, #0x0
+ ldmia sp!, {r4,lr}
+ bx lr
+
+ arm_func_start FSi_ExecuteAsyncCommand
+FSi_ExecuteAsyncCommand: ; 0x020D13D4
+ stmdb sp!, {r4-r8,lr}
+ movs r6, r0
+ ldr r5, [r6, #0x8]
+ ldmeqia sp!, {r4-r8,lr}
+ bxeq lr
+ mov r7, #0x0
+ mov r8, #0x1
+_020D13F0:
+ bl OS_DisableInterrupts
+ ldr r1, [r6, #0xc]
+ mov r4, r0
+ orr r0, r1, #0x40
+ str r0, [r6, #0xc]
+ ldr r0, [r6, #0xc]
+ ands r0, r0, #0x4
+ movne r0, r8
+ moveq r0, r7
+ cmp r0, #0x0
+ beq _020D1434
+ add r0, r6, #0x18
+ bl OS_WakeupThread
+ mov r0, r4
+ bl OS_RestoreInterrupts
+ ldmia sp!, {r4-r8,lr}
+ bx lr
+_020D1434:
+ ldr r1, [r6, #0xc]
+ mov r0, r4
+ orr r1, r1, #0x8
+ str r1, [r6, #0xc]
+ bl OS_RestoreInterrupts
+ ldr r1, [r6, #0x10]
+ mov r0, r6
+ bl FSi_TranslateCommand
+ cmp r0, #0x6
+ ldmeqia sp!, {r4-r8,lr}
+ bxeq lr
+ mov r0, r5
+ bl FSi_NextCommand
+ movs r6, r0
+ bne _020D13F0
+ ldmia sp!, {r4-r8,lr}
+ bx lr
+
+ arm_func_start FSi_NextCommand
+FSi_NextCommand:
+ stmdb sp!, {r4-r9,lr}
+ sub sp, sp, #0x4c
+ mov r6, r0
+ bl OS_DisableInterrupts
+ ldr r1, [r6, #0x1c]
+ mov r5, r0
+ ands r0, r1, #0x20
+ beq _020D1500
+ ldr r0, [r6, #0x1c]
+ bic r0, r0, #0x20
+ str r0, [r6, #0x1c]
+ ldr r0, [r6, #0x24]
+ cmp r0, #0x0
+ beq _020D1500
+ mov r8, #0x0
+ mov r9, #0x1
+ mov r7, #0x3
+_020D14BC:
+ ldr r1, [r0, #0xc]
+ ldr r4, [r0, #0x4]
+ ands r1, r1, #0x2
+ movne r1, r9
+ moveq r1, r8
+ cmp r1, #0x0
+ beq _020D14F4
+ ldr r1, [r6, #0x24]
+ cmp r1, r0
+ mov r1, r7
+ streq r4, [r6, #0x24]
+ bl FSi_ReleaseCommand
+_020D14EC:
+ cmp r4, #0x0
+ ldreq r4, [r6, #0x24]
+_020D14F4:
+ mov r0, r4
+ cmp r4, #0x0
+ bne _020D14BC
+_020D1500:
+ ldr r0, [r6, #0x1c]
+ ands r0, r0, #0x40
+ bne _020D15EC
+ ldr r0, [r6, #0x1c]
+ ands r0, r0, #0x8
+ movne r0, #0x1
+ moveq r0, #0x0
+ cmp r0, #0x0
+ bne _020D15EC
+ ldr r4, [r6, #0x24]
+ cmp r4, #0x0
+ beq _020D15EC
+ ldr r0, [r6, #0x1c]
+ ands r0, r0, #0x10
+ movne r0, #0x1
+ moveq r0, #0x0
+ cmp r0, #0x0
+ moveq r7, #0x1
+ movne r7, #0x0
+ cmp r7, #0x0
+ ldrne r0, [r6, #0x1c]
+ orrne r0, r0, #0x10
+ strne r0, [r6, #0x1c]
+ mov r0, r5
+ bl OS_RestoreInterrupts
+_020D1564:
+ cmp r7, #0x0
+ beq _020D1588
+ ldr r0, [r6, #0x58]
+ ands r0, r0, #0x200
+ beq _020D1588
+ ldr r2, [r6, #0x54]
+ mov r0, r4
+ mov r1, #0x9
+ blx r2
+_020D1588:
+ bl OS_DisableInterrupts
+ ldr r1, [r4, #0xC]
+ mov r5, r0
+ orr r0, r1, #0x40
+ str r0, [r4, #0xC]
+ ldr r0, [r4, #0xC]
+ ands r0, r0, #0x4
+ movne r0, #0x1
+ moveq r0, #0x0
+ cmp r0, #0x0
+ beq _020D15D4
+ add r0, r4, #0x18
+ bl OS_WakeupThread
+ mov r0, r5
+ bl OS_RestoreInterrupts
+ add sp, sp, #0x4c
+ mov r0, #0x0
+ ldmia sp!, {r4-r9, lr}
+ bx lr
+_020D15D4:
+ mov r0, r5
+ bl OS_RestoreInterrupts
+ add sp, sp, #0x4c
+ mov r0, r4
+ ldmia sp!, {r4-r9, lr}
+ bx lr
+_020D15EC:
+ ldr r0, [r6, #0x1c]
+ ands r0, r0, #0x10
+ beq _020D162C
+ ldr r0, [r6, #0x1c]
+ bic r0, r0, #0x10
+ str r0, [r6, #0x1c]
+ ldr r0, [r6, #0x58]
+ ands r0, r0, #0x400
+ beq _020D162C
+ add r0, sp, #0x0
+ bl FS_InitFile
+ str r6, [sp, #0x8]
+ ldr r2, [r6, #0x54]
+ add r0, sp, #0x0
+ mov r1, #0xa
+ blx r2
+_020D162C:
+ ldr r0, [r6, #0x1c]
+ ands r0, r0, #0x40
+ beq _020D1658
+ ldr r1, [r6, #0x1c]
+ add r0, r6, #0x14
+ bic r1, r1, #0x40
+ str r1, [r6, #0x1c]
+ ldr r1, [r6, #0x1c]
+ orr r1, r1, #0x8
+ str r1, [r6, #0x1c]
+ bl OS_WakeupThread
+_020D1658:
+ mov r0, r5
+ bl OS_RestoreInterrupts
+_020D1660:
+ mov r0, #0x0
+ add sp, sp, #0x4c
+ ldmia sp!, {r4-r9, lr}
+ bx lr
+
+ arm_func_start FSi_ReadMemoryCore
+FSi_ReadMemoryCore: ; 0x020D1670
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ mov r0, r2
+ mov r2, r3
+ bl MI_CpuCopy8
+_020D1684:
+ mov r0, #0x0
+ add sp, sp, #0x4
+ ldmfd sp!, {lr}
+ bx lr
+
+ arm_func_start FSi_WriteMemCallback
+FSi_WriteMemCallback: ; 0x020D1694
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldr r12, [r0, #0x28]
+ mov r0, r1
+ add r1, r12, r2
+ mov r2, r3
+ bl MI_CpuCopy8
+_020D16B0:
+ mov r0, #0x0
+ add sp, sp, #0x4
+ ldmfd sp!, {lr}
+ bx lr
+
+ arm_func_start FSi_ReadMemCallback
+FSi_ReadMemCallback: ; 0x020D16C0
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldr r0, [r0, #0x28]
+ add r0, r0, r2
+ mov r2, r3
+ bl MI_CpuCopy8
+_020D16D8:
+ mov r0, #0x0
+ add sp, sp, #0x4
+ ldmfd sp!, {lr}
+ bx lr
+
+ arm_func_start FSi_GetPackedName
+FSi_GetPackedName: ; 0x020D16E8
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ cmp r1, #0x3
+ mov lr, #0x0
+ bgt _020D173C
+ mov r12, lr
+ cmp r1, #0x0
+ ble _020D173C
+ mov r3, lr
+_020D170C:
+ ldrb r2, [r0, r12]
+ cmp r2, #0x0
+ beq _020D173C
+ sub r2, r2, #0x41
+ cmp r2, #0x19
+ addls r2, r2, #0x61
+ addhi r2, r2, #0x41
+ add r12, r12, #0x1
+ orr lr, lr, r2, lsl r3
+ cmp r12, r1
+ add r3, r3, #0x8
+ blt _020D170C
+_020D173C:
+ mov r0, lr
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+
+ arm_func_start FS_ChangeDir
+FS_ChangeDir: ; 0x020D174C
+ stmdb sp!, {r4,lr}
+ sub sp, sp, #0x58
+ mov r4, r0
+ add r0, sp, #0xc
+ bl FS_InitFile
+ add r0, sp, #0xc
+ add r3, sp, #0x0
+ mov r1, r4
+ mov r2, #0x0
+ bl FSi_FindPath
+_020D1774:
+ cmp r0, #0x0
+ moveq r0, #0x0
+ addne r0, sp, #0x0
+ ldrne r3, _020D179C
+ ldmneia r0, {r0, r1, r2}
+ stmneia r3, {r0, r1, r2}
+ movne r0, #0x1
+ add sp, sp, #0x58
+ ldmia sp!, {r4, lr}
+ bx lr
+_020D179C: .word 0x021D53EC
+
+ arm_func_start FS_SeekFile
+FS_SeekFile: ; 0x020D17A0
+ cmp r2, #0x0
+ beq _020D17BC
+ cmp r2, #0x1
+ beq _020D17C8
+ cmp r2, #0x2
+ beq _020D17D4
+ b _020D17E0
+_020D17BC:
+ ldr r2, [r0, #0x24]
+ add r1, r1, r2
+ b _020D17E8
+_020D17C8:
+ ldr r2, [r0, #0x2c]
+ add r1, r1, r2
+ b _020D17E8
+_020D17D4:
+ ldr r2, [r0, #0x28]
+ add r1, r1, r2
+ b _020D17E8
+_020D17E0:
+ mov r0, #0x0
+ bx lr
+_020D17E8:
+ ldr r2, [r0, #0x24]
+ cmp r1, r2
+ movlt r1, r2
+ ldr r2, [r0, #0x28]
+ cmp r1, r2
+ movgt r1, r2
+ str r1, [r0, #0x2c]
+ mov r0, #0x1
+ bx lr
+
+ arm_func_start FS_ReadFile
+FS_ReadFile: ; 0x020D180C
+ ldr ip, _020D1818 ; =FUN_020D1AAC
+ mov r3, #0x0
+ bx r12
+ .balign 4
+_020D1818: .word FUN_020D1AAC
+
+ arm_func_start FS_ReadFileAsync
+FS_ReadFileAsync: ; 0x020D181C
+ ldr ip, _020D1828 ; =FUN_020D1AAC
+ mov r3, #0x1
+ bx r12
+ .balign 4
+_020D1828: .word FUN_020D1AAC
+
+ arm_func_start FS_WaitAsync
+FS_WaitAsync: ; 0x020D182C
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0x4
+ mov r6, r0
+ mov r5, #0x0
+ bl OS_DisableInterrupts
+ ldr r1, [r6, #0xc]
+ mov r4, r0
+ ands r0, r1, #0x1
+ movne r0, #0x1
+ moveq r0, r5
+ cmp r0, #0x0
+ beq _020D18BC
+ ldr r0, [r6, #0xc]
+ ands r0, r0, #0x44
+ moveq r5, #0x1
+ movne r5, #0x0
+ cmp r5, #0x0
+ beq _020D189C
+ ldr r0, [r6, #0xc]
+ orr r0, r0, #0x4
+ str r0, [r6, #0xc]
+ add r7, r6, #0x18
+_020D1884:
+ mov r0, r7
+ bl OS_SleepThread
+ ldr r0, [r6, #0xc]
+ ands r0, r0, #0x40
+ beq _020D1884
+ b _020D18BC
+_020D189C:
+ add r0, r6, #0x18
+ bl OS_SleepThread
+ ldr r0, [r6, #0xc]
+ ands r0, r0, #0x1
+ movne r0, #0x1
+ moveq r0, #0x0
+ cmp r0, #0x0
+ bne _020D189C
+_020D18BC:
+ mov r0, r4
+ bl OS_RestoreInterrupts
+_020D18C4:
+ cmp r5, #0x0
+ beq _020D18E0
+ mov r0, r6
+ bl FSi_ExecuteSyncCommand
+ add sp, sp, #4
+ ldmia sp!, {r4-r7,lr}
+ bx lr
+_020D18E0:
+ ldr r0, [r6, #0x14]
+ cmp r0, #0x0
+ moveq r0, #0x1
+ movne r0, #0x0
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r7,lr}
+ bx lr
+
+ arm_func_start FS_CloseFile
+FS_CloseFile: ; 0x020D18FC
+ stmdb sp!, {r4,lr}
+ mov r1, #0x8
+ mov r4, r0
+ bl FSi_SendCommand
+_020D190C:
+ cmp r0, #0x0
+ moveq r0, #0x0
+ ldmeqia sp!, {r4,lr}
+ bxeq lr
+ mov r0, #0x0
+ str r0, [r4, #0x8]
+ mov r0, #0xE
+ str r0, [r4, #0x10]
+ ldr r1, [r4, #0xC]
+ mov r0, #0x1
+ bic r1, r1, #0x30
+ str r1, [r4, #0xC]
+ ldmia sp!, {r4,lr}
+ bx lr
+
+ arm_func_start FS_OpenFile
+FS_OpenFile: ; 0x020D1944
+ stmdb sp!, {r4,lr}
+ sub sp, sp, #0x8
+ mov r4, r0
+ add r0, sp, #0x0
+ bl FS_ConvertPathToFileID
+_020D1958:
+ cmp r0, #0x0
+ beq _020D1984
+ add r1, sp, #0x0
+ mov r0, r4
+ ldmia r1, {r1, r2}
+ bl FS_OpenFileFast
+ cmp r0, #0x0
+ addne sp, sp, #0x8
+ movne r0, #0x1
+ ldmneia sp!, {r4, lr}
+ bxne lr
+_020D1984:
+ mov r0, #0x0
+ add sp, sp, #0x8
+ ldmia sp!, {r4, lr}
+ bx lr
+
+ arm_func_start FS_OpenFileFast
+FS_OpenFileFast:
+ stmdb sp!, {r0-r3}
+ stmdb sp!, {r4,lr}
+ ldr r1, [sp, #0xc]
+ mov r4, r0
+ cmp r1, #0x0
+ moveq r0, #0x0
+ ldmeqia sp!, {r4,lr}
+ addeq sp, sp, #0x10
+ bxeq lr
+ str r1, [r4, #0x8]
+ ldr r3, [sp, #0xc]
+ ldr r2, [sp, #0x10]
+ mov r1, #0x6
+ str r3, [r4, #0x30]
+ str r2, [r4, #0x34]
+ bl FSi_SendCommand
+_020D19D4:
+ cmp r0, #0x0
+ moveq r0, #0x0
+ ldmeqia sp!, {r4, lr}
+ addeq sp, sp, #0x10
+ bxeq lr
+ ldr r1, [r4, #0xC]
+ mov r0, #0x1
+ orr r1, r1, #0x10
+ str r1, [r4, #0xC]
+ ldr r1, [r4, #0xC]
+ bic r1, r1, #0x20
+ str r1, [r4, #0xC]
+ ldmia sp!, {r4, lr}
+ add sp, sp, #0x10
+ bx lr
+
+ arm_func_start FS_OpenFileDirect
+FS_OpenFileDirect:
+ stmdb sp!, {r4,lr}
+ mov r4, r0
+ str r1, [r4, #0x8]
+ ldr r12, [sp, #0x8]
+ mov r1, #0x7
+ str r12, [r4, #0x38]
+ str r2, [r4, #0x30]
+ str r3, [r4, #0x34]
+ bl FSi_SendCommand
+_020D1A34:
+ cmp r0, #0x0
+ moveq r0, #0x0
+ ldmeqia sp!, {r4, lr}
+ bxeq lr
+ ldr r1, [r4, #0xC]
+ mov r0, #0x1
+ orr r1, r1, #0x10
+ str r1, [r4, #0xC]
+ ldr r1, [r4, #0xC]
+ bic r1, r1, #0x20
+ str r1, [r4, #0xC]
+ ldmia sp!, {r4, lr}
+ bx lr
+
+ arm_func_start FS_ConvertPathToFileID
+FS_ConvertPathToFileID:
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4c
+ mov r5, r0
+ add r0, sp, #0x0
+ mov r4, r1
+ bl FS_InitFile
+_020D1A80:
+ add r0, sp, #0x0
+ mov r1, r4
+ mov r2, r5
+ mov r3, #0x0
+ bl FSi_FindPath
+ cmp r0, #0x0
+ movne r0, #0x1
+ moveq r0, #0x0
+ add sp, sp, #0x4C
+ ldmia sp!, {r4-r5, lr}
+ bx lr
+
+ arm_func_start FUN_020D1AAC
+FUN_020D1AAC: ; 0x020D1AAC
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0x4
+ mov r7, r0
+ ldr r4, [r7, #0x2c]
+ ldr r0, [r7, #0x28]
+ mov r6, r2
+ str r1, [r7, #0x30]
+ sub r0, r0, r4
+ cmp r6, r0
+ movgt r6, r0
+ cmp r6, #0x0
+ movlt r6, #0x0
+ str r2, [r7, #0x34]
+ mov r5, r3
+ str r6, [r7, #0x38]
+ cmp r5, #0x0
+ ldreq r0, [r7, #0xc]
+ mov r1, #0x0
+ orreq r0, r0, #0x4
+ streq r0, [r7, #0xc]
+ mov r0, r7
+ bl FSi_SendCommand
+_020D1B04:
+ cmp r5, #0x0
+ bne _020D1B24
+ mov r0, r7
+ bl FS_WaitAsync
+ cmp r0, #0x0
+ ldrne r0, [r7, #0x2C]
+ subne r6, r0, r4
+ mvneq r6, #0x0
+_020D1B24:
+ mov r0, r6
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r7, lr}
+ bx lr
+
+ arm_func_start FSi_FindPath
+FSi_FindPath:
+ stmdb sp!, {r4-r8,lr}
+ sub sp, sp, #0x10
+ mov r7, r1
+ ldrb r1, [r7, #0x0]
+ mov r8, r0
+ mov r6, r2
+ mov r5, r3
+ cmp r1, #0x2f
+ beq _020D1B60
+ cmp r1, #0x5c
+ bne _020D1B84
+_020D1B60:
+ ldr r0, _020D1C90 ; =0x021D53EC
+ mov r1, #0x0
+ ldr r0, [r0, #0x0]
+ strh r1, [sp, #0x4]
+ str r0, [sp, #0x0]
+ str r1, [sp, #0x8]
+ strh r1, [sp, #0x6]
+ add r7, r7, #0x1
+ b _020D1C40
+_020D1B84:
+ ldr r0, _020D1C90 ; =0x021D53EC
+ add r3, sp, #0x0
+ ldmia r0, {r0-r2}
+ stmia r3, {r0-r2}
+ mov r4, #0x0
+_020D1B98:
+ ldrb r0, [r7, r4]
+ cmp r0, #0x0
+ beq _020D1C40
+ cmp r0, #0x2f
+ beq _020D1C40
+ cmp r0, #0x5c
+ beq _020D1C40
+ cmp r0, #0x3a
+ bne _020D1C34
+ mov r0, r7
+ mov r1, r4
+ bl FS_FindArchive
+_020D1BC8:
+ cmp r0, #0x0
+ addeq sp, sp, #0x10
+ moveq r0, #0x0
+ ldmeqia sp!, {r4-r8,lr}
+ bxeq lr
+ ldr r1, [r0, #0x1C]
+ ands r1, r1, #0x2
+ movne r1, #0x1
+ moveq r1, #0x0
+ cmp r1, #0x0
+ addeq sp, sp, #0x10
+ moveq r0, #0x0
+ ldmeqia sp!, {r4-r8,lr}
+ bxeq lr
+ mov r1, #0x0
+ str r0, [sp]
+ str r1, [sp, #0x8]
+ strh r1, [sp, #0x6]
+ strh r1, [sp, #0x4]
+ add r0, r4, #0x1
+ ldrb r0, [r7, r0]!
+ cmp r0, #0x2f
+ beq _020D1C2C
+ cmp r0, #0x5c
+ bne _020D1C40
+_020D1C2C:
+ add r7, r7, #0x1
+ b _020D1C40
+_020D1C34:
+ add r4, r4, #0x1
+ cmp r4, #0x3
+ ble _020D1B98
+_020D1C40:
+ ldr r1, [sp, #0x0]
+ add r0, sp, #0x0
+ str r1, [r8, #0x8]
+ str r7, [r8, #0x3c]
+ add r3, r8, #0x30
+ ldmia r0, {r0-r2}
+ stmia r3, {r0-r2}
+ cmp r5, #0x0
+ movne r0, #0x1
+ strne r0, [r8, #0x40]
+ strne r5, [r8, #0x44]
+ moveq r0, #0x0
+ streq r0, [r8, #0x40]
+ mov r0, r8
+ mov r1, #0x4
+ streq r6, [r8, #0x44]
+ bl FSi_SendCommand
+ add sp, sp, #0x10
+ ldmia sp!, {r4-r8,lr}
+ bx lr
+ .balign 4
+_020D1C90: .word 0x021D53EC
+
+ arm_func_start FS_InitFile
+FS_InitFile:
+ mov r3, #0x0
+ str r3, [r0, #0x0]
+ ldr r2, [r0, #0x0]
+ mov r1, #0xe
+ str r2, [r0, #0x4]
+ str r3, [r0, #0x1c]
+ ldr r2, [r0, #0x1c]
+ str r2, [r0, #0x18]
+ str r3, [r0, #0x8]
+ str r1, [r0, #0x10]
+ str r3, [r0, #0xc]
+ bx lr
+
+ arm_func_start FS_IsAvailable
+FS_IsAvailable: ; 0x020D1CC4
+ ldr r0, _020D1CD0 ; =0x021D53F8
+ ldr r0, [r0, #0x0]
+ bx lr
+ .balign 4
+_020D1CD0: .word 0x021D53F8
+
+ arm_func_start FS_Init
+FS_Init: ; 0x020D1CD4
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldr r1, _020D1D0C ; =0x021D53F8
+ ldr r2, [r1, #0x0]
+ cmp r2, #0x0
+ addne sp, sp, #0x4
+ ldmneia sp!, {lr}
+ bxne lr
+ mov r2, #0x1
+ str r2, [r1, #0x0]
+ bl FSi_InitRom
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+ .balign 4
+_020D1D0C: .word 0x021D53F8
+
+ arm_func_start FS_TryLoadTable
+FS_TryLoadTable: ; 0x020D1D10
+ ldr ip, _020D1D28 ; =FUN_020D0D84
+ mov r3, r0
+ mov r2, r1
+ ldr r0, _020D1D2C ; =0x021D5414
+ mov r1, r3
+ bx r12
+ .balign 4
+_020D1D28: .word FUN_020D0D84
+_020D1D2C: .word 0x021D5414
+
+ arm_func_start FS_SetDefaultDMA
+FS_SetDefaultDMA: ; 0x020D1D30
+ stmdb sp!, {r4-r6,lr}
+ mov r6, r0
+ bl OS_DisableInterrupts
+ mov r5, r0
+ ldr r1, _020D1D7C ; =0x021D5400
+ ldr r0, _020D1D80 ; =0x021D5414
+ ldr r4, [r1, #0x0]
+ bl FS_SuspendArchive
+ ldr r1, _020D1D7C ; =0x021D5400
+ cmp r0, #0x0
+ str r6, [r1, #0x0]
+ beq _020D1D68
+ ldr r0, _020D1D80 ; =0x021D5414
+ bl FS_ResumeArchive
+_020D1D68:
+ mov r0, r5
+ bl OS_RestoreInterrupts
+ mov r0, r4
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+ .balign 4
+_020D1D7C: .word 0x021D5400
+_020D1D80: .word 0x021D5414
+
+ arm_func_start FSi_InitRom
+FSi_InitRom: ; 0x020D1D84
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x14
+ ldr r1, _020D1EE8 ; =0x021D5400
+ str r0, [r1, #0x0]
+ bl OS_GetLockID
+ ldr r3, _020D1EEC ; =0x021D53FC
+ ldr r2, _020D1EF0 ; =0x021D5404
+ mov r12, #0x0
+ ldr r1, _020D1EF4 ; =0x021D540C
+ str r0, [r3, #0x0]
+ str r12, [r2, #0x0]
+ str r12, [r2, #0x4]
+ str r12, [r1, #0x0]
+ str r12, [r1, #0x4]
+ bl CARD_Init
+ ldr r0, _020D1EF8 ; =0x021D5414
+ bl FS_InitArchive
+ ldr r0, _020D1EF8 ; =0x021D5414
+ ldr r1, _020D1EFC ; =0x02106830
+ mov r2, #0x3
+ bl FS_RegisterArchiveName
+ ldr r0, _020D1F00 ; =0x027FFC40
+ ldrh r0, [r0, #0x0]
+ cmp r0, #0x2
+ bne _020D1E4C
+ ldr ip, _020D1EF0 ; =0x021D5404
+ mvn r2, #0x0
+ ldr r3, _020D1EF4 ; =0x021D540C
+ mov lr, #0x0
+ ldr r0, _020D1EF8 ; =0x021D5414
+ ldr r1, _020D1F04 ; =FSi_EmptyArchiveProc
+ str r2, [r12, #0x0]
+ str lr, [r12, #0x4]
+ str r2, [r3, #0x0]
+ str lr, [r3, #0x4]
+ bl FS_SetArchiveProc
+ mov r1, #0x0
+ str r1, [sp, #0x0]
+ ldr r0, _020D1F08 ; =FSi_ReadDummyCallback
+ str r1, [sp, #0x4]
+ str r0, [sp, #0x8]
+ ldr ip, _020D1F0C ; =FSi_WriteDummyCallback
+ ldr r0, _020D1EF8 ; =0x021D5414
+ mov r2, r1
+ mov r3, r1
+ str r12, [sp, #0xc]
+ bl FS_LoadArchive
+ add sp, sp, #0x14
+ ldmia sp!, {r4-r5,lr}
+ bx lr
+_020D1E4C:
+ ldr r5, _020D1F10 ; =0x027FFE40
+ ldr r0, _020D1EF8 ; =0x021D5414
+ ldr r1, _020D1F14 ; =FSi_RomArchiveProc
+ ldr r2, _020D1F18 ; =0x00000602
+ ldr r4, _020D1F1C ; =0x027FFE48
+ bl FS_SetArchiveProc
+ ldr r1, [r5, #0x0]
+ mvn r0, #0x0
+ cmp r1, r0
+ addeq sp, sp, #0x14
+ ldmeqia sp!, {r4-r5,lr}
+ bxeq lr
+ cmp r1, #0x0
+ addeq sp, sp, #0x14
+ ldmeqia sp!, {r4-r5,lr}
+ bxeq lr
+ ldr r2, [r4, #0x0]
+ cmp r2, r0
+ addeq sp, sp, #0x14
+ ldmeqia sp!, {r4-r5,lr}
+ bxeq lr
+ cmp r2, #0x0
+ addeq sp, sp, #0x14
+ ldmeqia sp!, {r4-r5,lr}
+ bxeq lr
+ str r1, [sp, #0x0]
+ ldr r0, [r5, #0x4]
+ ldr r1, _020D1F20 ; =FSi_ReadRomCallback
+ str r0, [sp, #0x4]
+ ldr r0, _020D1F0C ; =FSi_WriteDummyCallback
+ str r1, [sp, #0x8]
+ str r0, [sp, #0xc]
+ ldr r3, [r4, #0x4]
+ ldr r0, _020D1EF8 ; =0x021D5414
+ mov r1, #0x0
+ bl FS_LoadArchive
+ add sp, sp, #0x14
+ ldmia sp!, {r4-r5,lr}
+ bx lr
+ .balign 4
+_020D1EE8: .word 0x021D5400
+_020D1EEC: .word 0x021D53FC
+_020D1EF0: .word 0x021D5404
+_020D1EF4: .word 0x021D540C
+_020D1EF8: .word 0x021D5414
+_020D1EFC: .word 0x02106830
+_020D1F00: .word 0x027FFC40
+_020D1F04: .word FSi_EmptyArchiveProc
+_020D1F08: .word FSi_ReadDummyCallback
+_020D1F0C: .word FSi_WriteDummyCallback
+_020D1F10: .word 0x027FFE40
+_020D1F14: .word FSi_RomArchiveProc
+_020D1F18: .word 0x00000602
+_020D1F1C: .word 0x027FFE48
+_020D1F20: .word FSi_ReadRomCallback
+
+ arm_func_start FSi_EmptyArchiveProc
+FSi_EmptyArchiveProc: ; 0x020D1F24
+ mov r0, #0x4
+ bx lr
+
+ arm_func_start FSi_ReadDummyCallback
+FSi_ReadDummyCallback: ; 0x020D1F2C
+ mov r0, #0x1
+ bx lr
+
+ arm_func_start FSi_RomArchiveProc
+FSi_RomArchiveProc: ; 0x020D1F34
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ cmp r1, #0x1
+ beq _020D1FA0
+ cmp r1, #0x9
+ beq _020D1F58
+ cmp r1, #0xa
+ beq _020D1F7C
+ b _020D1FB0
+_020D1F58:
+ ldr r0, _020D1FC0 ; =0x021D53FC
+ ldr r0, [r0, #0x0]
+ mov r0, r0, lsl #0x10
+ mov r0, r0, lsr #0x10
+ bl CARD_LockRom
+ add sp, sp, #0x4
+ mov r0, #0x0
+ ldmia sp!, {lr}
+ bx lr
+_020D1F7C:
+ ldr r0, _020D1FC0 ; =0x021D53FC
+ ldr r0, [r0, #0x0]
+ mov r0, r0, lsl #0x10
+ mov r0, r0, lsr #0x10
+ bl CARD_UnlockRom
+ add sp, sp, #0x4
+ mov r0, #0x0
+ ldmia sp!, {lr}
+ bx lr
+_020D1FA0:
+ add sp, sp, #0x4
+ mov r0, #0x4
+ ldmia sp!, {lr}
+ bx lr
+_020D1FB0:
+ mov r0, #0x8
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+ .balign 4
+_020D1FC0: .word 0x021D53FC
+
+ arm_func_start FSi_WriteDummyCallback
+FSi_WriteDummyCallback: ; 0x020D1FC4
+ mov r0, #0x1
+ bx lr
+
+ arm_func_start FSi_ReadRomCallback
+FSi_ReadRomCallback: ; 0x020D1FCC
+ stmdb sp!, {lr}
+ sub sp, sp, #0xc
+ ldr ip, _020D2010 ; =FSi_OnRomReadDone
+ mov lr, r1
+ str r12, [sp, #0x0]
+ str r0, [sp, #0x4]
+ mov r1, #0x1
+ ldr r0, _020D2014 ; =0x021D5400
+ str r1, [sp, #0x8]
+ mov r1, r2
+ ldr r0, [r0, #0x0]
+ mov r2, lr
+ bl CARDi_ReadRom
+ mov r0, #0x6
+ add sp, sp, #0xc
+ ldmia sp!, {lr}
+ bx lr
+ .balign 4
+_020D2010: .word FSi_OnRomReadDone
+_020D2014: .word 0x021D5400
+
+ arm_func_start FSi_OnRomReadDone
+FSi_OnRomReadDone: ; 0x020D2018
+ stmdb sp!, {r4,lr}
+ mov r4, r0
+ bl CARD_IsPulledOut
+_020D2024:
+ cmp r0, #0x0
+ movne r1, #0x5
+ moveq r1, #0x0
+ mov r0, r4
+ bl FS_NotifyArchiveAsyncEnd
+ ldmia sp!, {r4,lr}
+ bx lr
+
+
+ arm_func_start FS_UnloadOverlay
+FS_UnloadOverlay: ; 0x020D2040
+ stmdb sp!, {lr}
+ sub sp, sp, #0x2c
+ mov r3, r0
+ mov r2, r1
+ add r0, sp, #0x0
+ mov r1, r3
+ bl FS_LoadOverlayInfo
+_020D205C:
+ cmp r0, #0x0
+ beq _020D2074
+ add r0, sp, #0x0
+ bl FS_UnloadOverlayImage
+ cmp r0, #0x0
+ bne _020D2084
+_020D2074:
+ add sp, sp, #0x2c
+ mov r0, #0x0
+ ldmfd sp!, {lr}
+ bx lr
+_020D2084:
+ mov r0, #0x1
+ add sp, sp, #0x2c
+ ldmfd sp!, {lr}
+ bx lr
+
+ arm_func_start FS_LoadOverlay
+FS_LoadOverlay: ; 0x020D2094
+ stmdb sp!, {lr}
+ sub sp, sp, #0x2c
+ mov r3, r0
+ mov r2, r1
+ add r0, sp, #0x0
+ mov r1, r3
+ bl FS_LoadOverlayInfo
+_020D20B0:
+ cmp r0, #0x0
+ beq _020D20C8
+ add r0, sp, #0x0
+ bl FS_LoadOverlayImage
+ cmp r0, #0x0
+ bne _020D20D8
+_020D20C8:
+ add sp, sp, #0x2c
+ mov r0, #0x0
+ ldmfd sp!, {lr}
+ bx lr
+_020D20D8:
+ add r0, sp, #0x0
+ bl FS_StartOverlay
+ mov r0, #0x1
+ add sp, sp, #0x2c
+ ldmfd sp!, {lr}
+ bx lr
+
+ arm_func_start FS_UnloadOverlayImage
+FS_UnloadOverlayImage: ; 0x020D20F0
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ bl FS_EndOverlay
+ mov r0, #0x1
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+
+ arm_func_start FS_EndOverlay
+FS_EndOverlay: ; 0x020D210C
+ stmdb sp!, {r4-r11,lr}
+ sub sp, sp, #0x4
+ ldr r8, _020D220C ; =0x021D74C8
+ mov r11, r0
+ mov r9, #0x0
+_020D2120:
+ ldr r1, [r11, #0x8]
+ ldr r0, [r11, #0xc]
+ ldr r5, [r11, #0x4]
+ add r0, r1, r0
+ mov r7, r9
+ mov r6, r9
+ add r4, r5, r0
+ bl OS_DisableInterrupts
+ ldr lr, [r8, #0x0]
+ mov r10, r9
+ mov r12, lr
+ cmp lr, #0x0
+ beq _020D21C4
+_020D2154:
+ ldr r2, [r12, #0x8]
+ ldr r3, [r12, #0x0]
+ cmp r2, #0x0
+ ldr r1, [r12, #0x4]
+ bne _020D2178
+ cmp r1, r5
+ blo _020D2178
+ cmp r1, r4
+ blo _020D2188
+_020D2178:
+ cmp r2, r5
+ blo _020D21B4
+ cmp r2, r4
+ bhs _020D21B4
+_020D2188:
+ cmp r6, #0x0
+ strne r12, [r6, #0x0]
+ moveq r7, r12
+ cmp lr, r12
+ streq r3, [r8, #0x0]
+ moveq lr, r3
+ str r9, [r12, #0x0]
+ cmp r10, #0x0
+ mov r6, r12
+ strne r3, [r10, #0x0]
+ b _020D21B8
+_020D21B4:
+ mov r10, r12
+_020D21B8:
+ mov r12, r3
+ cmp r3, #0x0
+ bne _020D2154
+_020D21C4:
+ bl OS_RestoreInterrupts
+_020D21C8:
+ cmp r7, #0x0
+ addeq sp, sp, #0x4
+ ldmeqia sp!, {r4-r11, lr}
+ bxeq lr
+_020D21D8:
+ ldr r1, [r7, #0x4]
+ ldr r4, [r7]
+ cmp r1, #0x0
+ beq _020D21F0
+ ldr r0, [r7, #0x8]
+ blx r1
+_020D21F0:
+ mov r7, r4
+ cmp r4, #0x0
+ bne _020D21D8
+ b _020D2120
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r11, lr}
+ bx lr
+_020D220C: .word 0x021D74C8
+
+ arm_func_start FS_StartOverlay
+FS_StartOverlay: ; 0x020D2210
+ stmdb sp!, {r4-r6,lr}
+ mov r5, r0
+ bl FSi_GetOverlayBinarySize
+ ldr r1, _020D2300 ; =0x027FFC40
+ mov r4, r0
+ ldrh r0, [r1, #0x0]
+ cmp r0, #0x2
+ bne _020D22A4
+ ldrb r1, [r5, #0x1f]
+ mov r0, #0x0
+ ands r1, r1, #0x2
+ beq _020D2280
+ ldr r1, _020D2304 ; =0x02106F84
+ ldr r3, _020D2308 ; =0x02106F84
+ ldr r2, _020D230C ; =0x66666667
+ sub r12, r1, r3
+ smull r1, lr, r2, r12
+ mov lr, lr, asr #0x3
+ mov r1, r12, lsr #0x1f
+ ldr r2, [r5, #0x0]
+ add lr, r1, lr
+ cmp r2, lr
+ bhs _020D2280
+ mov r0, #0x14
+ mla r0, r2, r0, r3
+ ldr r1, [r5, #0x4]
+ mov r2, r4
+ bl FSi_CompareDigest
+_020D2280:
+ cmp r0, #0x0
+ bne _020D22A4
+ ldr r0, [r5, #0x4]
+ mov r2, r4
+ mov r1, #0x0
+ bl MI_CpuFill8
+ bl OS_Terminate
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+_020D22A4:
+ ldrb r0, [r5, #0x1f]
+ ands r0, r0, #0x1
+ beq _020D22BC
+ ldr r0, [r5, #0x4]
+ add r0, r0, r4
+ bl MIi_UncompressBackward
+_020D22BC:
+ ldr r0, [r5, #0x4]
+ ldr r1, [r5, #0x8]
+ bl DC_FlushRange
+ ldr r6, [r5, #0x10]
+ ldr r4, [r5, #0x14]
+ cmp r6, r4
+ ldmcsia sp!, {r4-r6,lr}
+ bxcs lr
+_020D22DC:
+ ldr r0, [r6, #0x0]
+ cmp r0, #0x0
+ beq _020D22EC
+ blx r0
+_020D22EC:
+ add r6, r6, #0x4
+ cmp r6, r4
+ blo _020D22DC
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+ .balign 4
+_020D2300: .word 0x027FFC40
+_020D2304: .word 0x02106F84
+_020D2308: .word 0x02106F84
+_020D230C: .word 0x66666667
+
+ arm_func_start FSi_CompareDigest
+FSi_CompareDigest:
+ stmdb sp!, {r4-r6,lr}
+ sub sp, sp, #0x58
+ mov r4, r0
+ mov r6, r1
+ mov r5, r2
+ add r0, sp, #0x4
+ mov r1, #0x0
+ mov r2, #0x14
+ bl MI_CpuFill8
+ ldr r0, _020D23AC ; =0x02106834
+ ldr r1, _020D23B0 ; =0x02106838
+ ldr r0, [r0, #0x0]
+ ldr r2, [r1, #0x0]
+ add r1, sp, #0x18
+ bl MI_CpuCopy8
+ ldr r3, _020D23B0 ; =0x02106838
+ mov r1, r6
+ ldr r12, [r3, #0x0]
+ mov r2, r5
+ add r0, sp, #0x4
+ add r3, sp, #0x18
+ str r12, [sp, #0x0]
+ bl MATH_CalcHMACSHA1
+ add r2, sp, #0x4
+ mov r3, #0x0
+_020D2374:
+ ldr r1, [r2, #0x0]
+ ldr r0, [r4, r3]
+ cmp r1, r0
+ bne _020D2394
+ add r3, r3, #0x4
+ cmp r3, #0x14
+ add r2, r2, #0x4
+ blo _020D2374
+_020D2394:
+ cmp r3, #0x14
+ moveq r0, #0x1
+ movne r0, #0x0
+ add sp, sp, #0x58
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+ .balign 4
+_020D23AC: .word 0x02106834
+_020D23B0: .word 0x02106838
+
+ arm_func_start FS_LoadOverlayImage
+FS_LoadOverlayImage: ; 0x020D23B4
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x54
+ mov r5, r0
+ add r0, sp, #0x8
+ bl FS_InitFile
+_020D23C8:
+ add r0, sp, #0x0
+ mov r1, r5
+ bl FS_GetOverlayFileID
+ add r1, sp, #0x0
+ add r0, sp, #0x8
+ ldmia r1, {r1, r2}
+ bl FS_OpenFileFast
+ cmp r0, #0x0
+ addeq sp, sp, #0x54
+ moveq r0, #0x0
+ ldmeqia sp!, {r4-r5, lr}
+ bxeq lr
+ mov r0, r5
+ bl FSi_GetOverlayBinarySize
+ mov r4, r0
+ mov r0, r5
+ bl FS_ClearOverlayImage
+ ldr r1, [r5, #0x4]
+ add r0, sp, #0x8
+ mov r2, r4
+ bl FS_ReadFile
+ cmp r4, r0
+ beq _020D243C
+ add r0, sp, #0x8
+ bl FS_CloseFile
+ add sp, sp, #0x54
+ mov r0, #0x0
+ ldmia sp!, {r4-r5, lr}
+ bx lr
+_020D243C:
+ add r0, sp, #0x8
+ bl FS_CloseFile
+ mov r0, #0x1
+ add sp, sp, #0x54
+ ldmia sp!, {r4-r5, lr}
+ bx lr
+
+ arm_func_start FS_LoadOverlayImageAsync
+FS_LoadOverlayImageAsync: ; 0x020D2454
+ stmdb sp!, {r4-r6,lr}
+ sub sp, sp, #0x8
+ mov r5, r1
+ mov r6, r0
+ mov r0, r5
+ bl FS_InitFile
+_020D246C:
+ add r0, sp, #0x0
+ mov r1, r6
+ bl FS_GetOverlayFileID
+ add r1, sp, #0x0
+ mov r0, r5
+ ldmia r1, {r1, r2}
+ bl FS_OpenFileFast
+ cmp r0, #0x0
+ addeq sp, sp, #0x8
+ moveq r0, #0x0
+ ldmeqia sp!, {r4-r6, lr}
+ bxeq lr
+ mov r0, r6
+ bl FSi_GetOverlayBinarySize
+ mov r4, r0
+ mov r0, r6
+ bl FS_ClearOverlayImage
+ ldr r1, [r6, #0x4]
+ mov r0, r5
+ mov r2, r4
+ bl FS_ReadFileAsync
+ cmp r4, r0
+ addeq sp, sp, #0x8
+ moveq r0, #0x1
+ ldmeqia sp!, {r4-r6, lr}
+ bxeq lr
+ mov r0, r5
+ bl FS_CloseFile
+ mov r0, #0x0
+ add sp, sp, #0x8
+ ldmia sp!, {r4-r6, lr}
+ bx lr
+
+ arm_func_start FS_LoadOverlayInfo
+FS_LoadOverlayInfo:
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x64
+ movs r4, r1
+ mov r5, r0
+ ldreq r0, _020D25EC ; =0x021D5404
+ ldrne r0, _020D25F0 ; =0x021D540C
+ ldr r3, [r0, #0x0]
+ cmp r3, #0x0
+ beq _020D25A8
+ ldr r0, [r0, #0x4]
+ mov r2, r2, lsl #0x5
+ cmp r2, r0
+ addcs sp, sp, #0x64
+ movcs r0, #0x0
+ ldmcsia sp!, {r4-r5,lr}
+ bxcs lr
+ add r0, r3, r2
+ mov r1, r5
+ mov r2, #0x20
+ bl MI_CpuCopy8
+ add r0, sp, #0x18
+ str r4, [r5, #0x20]
+ bl FS_InitFile
+ add r0, sp, #0x10
+ mov r1, r5
+ bl FS_GetOverlayFileID
+ add r1, sp, #0x10
+ add r0, sp, #0x18
+ ldmia r1, {r1-r2}
+ bl FS_OpenFileFast
+_020D2564:
+ cmp r0, #0x0
+ addeq sp, sp, #0x64
+ moveq r0, #0x0
+ ldmeqia sp!, {r4-r5,lr}
+ bxeq lr
+ ldr r1, [sp, #0x3c]
+ add r0, sp, #0x18
+ str r1, [r5, #0x24]
+ ldr r2, [sp, #0x40]
+ ldr r1, [sp, #0x3c]
+ sub r1, r2, r1
+ str r1, [r5, #0x28]
+ bl FS_CloseFile
+ add sp, sp, #0x64
+ mov r0, #0x1
+ ldmia sp!, {r4-r5,lr}
+ bx lr
+_020D25A8:
+ ldr r1, _020D25F4 ; =0x027FFE50
+ ldr ip, _020D25F8 ; =0x027FFE58
+ ldr r0, [r1, #0x0]
+ ldr r3, _020D25FC ; =0x021D5414
+ str r0, [sp, #0x0]
+ ldr r1, [r1, #0x4]
+ mov r0, r5
+ str r1, [sp, #0x4]
+ ldr r5, [r12, #0x0]
+ mov r1, r4
+ str r5, [sp, #0x8]
+ ldr r4, [r12, #0x4]
+ str r4, [sp, #0xc]
+ bl FSi_LoadOverlayInfoCore
+ add sp, sp, #0x64
+ ldmia sp!, {r4-r5,lr}
+ bx lr
+ .balign 4
+_020D25EC: .word 0x021D5404
+_020D25F0: .word 0x021D540C
+_020D25F4: .word 0x027FFE50
+_020D25F8: .word 0x027FFE58
+_020D25FC: .word 0x021D5414
+
+ arm_func_start FSi_LoadOverlayInfoCore
+FSi_LoadOverlayInfoCore: ; 0x020D2600
+ stmdb sp!, {r4-r9,lr}
+ sub sp, sp, #0x54
+ movs r9, r1
+ ldreq r5, [sp, #0x74]
+ ldreq r6, [sp, #0x70]
+ ldrne r5, [sp, #0x7c]
+ ldrne r6, [sp, #0x78]
+ mov r7, r2, lsl #0x5
+ cmp r7, r5
+ mov r4, r0
+ mov r8, r3
+ addcs sp, sp, #0x54
+ movcs r0, #0x0
+ ldmcsia sp!, {r4-r9,lr}
+ bxcs lr
+ add r0, sp, #0xc
+ bl FS_InitFile
+ mvn r12, #0x0
+ add r0, sp, #0xc
+ mov r1, r8
+ add r2, r6, r7
+ add r3, r6, r5
+ str r12, [sp, #0x0]
+ bl FS_OpenFileDirect
+_020D2660:
+ cmp r0, #0
+ addeq sp, sp, #0x54
+ moveq r0, #0
+ ldmeqia sp!, {r4-r9, lr}
+ bxeq lr
+ add r0, sp, #12
+ mov r1, r4
+ mov r2, #32
+ bl FS_ReadFile
+ cmp r0, #32
+ beq _020D26A4
+ add r0, sp, #12
+ bl FS_CloseFile
+ add sp, sp, #0x54
+ mov r0, #0x0
+ ldmia sp!, {r4-r9, lr}
+ bx lr
+_020D26A4:
+ add r0, sp, #0xC
+ bl FS_CloseFile
+ add r0, sp, #0x4
+ mov r1, r4
+ str r9, [r4, #0x20]
+ bl FS_GetOverlayFileID
+ add r1, sp, #0x4
+ add r0, sp, #0xC
+ ldmia r1, {r1, r2}
+ bl FS_OpenFileFast
+ cmp r0, #0x0
+ addeq sp, sp, #0x54
+ moveq r0, #0x0
+ ldmeqia sp!, {r4-r9, lr}
+ bxeq lr
+ ldr r1, [sp, #0x30]
+ add r0, sp, #0xC
+ str r1, [r4, #0x24]
+ ldr r2, [sp, #0x34]
+ ldr r1, [sp, #0x30]
+ sub r1, r2, r1
+ str r1, [r4, #0x28]
+ bl FS_CloseFile
+ mov r0, #0x1
+ add sp, sp, #0x54
+ ldmia sp!, {r4-r9, lr}
+ bx lr
+
+ arm_func_start FS_GetOverlayFileID
+FS_GetOverlayFileID: ; 0x020D2710
+ sub sp, sp, #0x8
+ ldr r2, _020D2734 ; =0x021D5414
+ str r2, [sp, #0x0]
+ ldr r1, [r1, #0x18]
+ str r1, [sp, #0x4]
+ str r2, [r0, #0x0]
+ str r1, [r0, #0x4]
+ add sp, sp, #0x8
+ bx lr
+ .balign 4
+_020D2734: .word 0x021D5414
+
+ arm_func_start FS_ClearOverlayImage
+FS_ClearOverlayImage: ; 0x020D2738
+ stmdb sp!, {r4-r6,lr}
+ ldr r5, [r0, #0x8]
+ ldr r1, [r0, #0xc]
+ ldr r6, [r0, #0x4]
+ add r4, r5, r1
+ mov r0, r6
+ mov r1, r4
+ bl IC_InvalidateRange
+ mov r0, r6
+ mov r1, r4
+ bl DC_InvalidateRange
+ add r0, r6, r5
+ sub r2, r4, r5
+ mov r1, #0x0
+ bl MI_CpuFill8
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+
+ arm_func_start FSi_GetOverlayBinarySize
+FSi_GetOverlayBinarySize: ; 0x020D277C
+ ldrb r1, [r0, #0x1f]
+ ands r1, r1, #0x1
+ ldrne r0, [r0, #0x1c]
+ movne r0, r0, lsl #0x8
+ movne r0, r0, lsr #0x8
+ ldreq r0, [r0, #0x8]
+ bx lr
diff --git a/arm9/asm/GX_arm9.s b/arm9/asm/GX_arm9.s
new file mode 100644
index 00000000..59a548b2
--- /dev/null
+++ b/arm9/asm/GX_arm9.s
@@ -0,0 +1,5256 @@
+ .include "asm/macros.inc"
+ .include "global.inc"
+
+ .text
+
+ arm_func_start GXx_SetMasterBrightness_
+GXx_SetMasterBrightness_: ; 0x020C5978
+ cmp r1, #0x0
+ moveq r1, #0x0
+ streqh r1, [r0, #0x0]
+ bxeq lr
+ cmp r1, #0x0
+ orrgt r1, r1, #0x4000
+ strgth r1, [r0, #0x0]
+ rsble r1, r1, #0x0
+ orrle r1, r1, #0x8000
+ strleh r1, [r0, #0x0]
+ bx lr
+
+ arm_func_start GXS_SetGraphicsMode
+GXS_SetGraphicsMode: ; 0x020C59A4
+ ldr r2, _020C59BC ; =0x04001000
+ ldr r1, [r2, #0x0]
+ bic r1, r1, #0x7
+ orr r0, r1, r0
+ str r0, [r2, #0x0]
+ bx lr
+ .balign 4
+_020C59BC: .word 0x04001000
+
+ arm_func_start GX_SetGraphicsMode
+GX_SetGraphicsMode: ; 0x020C59C0
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldr r3, _020C5A28 ; =0x02106810
+ mov lr, #0x4000000
+ ldrh r12, [r3, #0x0]
+ ldr lr, [lr, #0x0]
+ ldr r3, _020C5A2C ; =0x021D33C0
+ cmp r12, #0x0
+ strh r0, [r3, #0x0]
+ ldr r3, _020C5A30 ; =0xFFF0FFF0
+ moveq r0, #0x0
+ and r3, lr, r3
+ orr r0, r3, r0, lsl #0x10
+ orr r0, r1, r0
+ orr r1, r0, r2, lsl #0x3
+ mov r12, #0x4000000
+ ldr r0, _020C5A2C ; =0x021D33C0
+ str r1, [r12, #0x0]
+ ldrh r0, [r0, #0x0]
+ cmp r0, #0x0
+ ldreq r0, _020C5A28 ; =0x02106810
+ moveq r1, #0x0
+ streqh r1, [r0, #0x0]
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+ .balign 4
+_020C5A28: .word 0x02106810
+_020C5A2C: .word 0x021D33C0
+_020C5A30: .word 0xFFF0FFF0
+
+ arm_func_start GX_DispOn
+GX_DispOn: ; 0x020C5A34
+ ldr r0, _020C5A78 ; =0x021D33C0
+ ldr r1, _020C5A7C ; =0x02106810
+ ldrh r2, [r0, #0x0]
+ mov r0, #0x1
+ strh r0, [r1, #0x0]
+ cmp r2, #0x0
+ moveq r1, #0x4000000
+ ldreq r0, [r1, #0x0]
+ orreq r0, r0, #0x10000
+ streq r0, [r1, #0x0]
+ bxeq lr
+ mov r1, #0x4000000
+ ldr r0, [r1, #0x0]
+ bic r0, r0, #0x30000
+ orr r0, r0, r2, lsl #0x10
+ str r0, [r1, #0x0]
+ bx lr
+ .balign 4
+_020C5A78: .word 0x021D33C0
+_020C5A7C: .word 0x02106810
+
+ arm_func_start GX_DispOff
+GX_DispOff: ; 0x020C5A80
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ mov lr, #0x4000000
+ ldr r12, [lr, #0x0]
+ ldr r1, _020C5AC0 ; =0x02106810
+ and r2, r12, #0x30000
+ mov r3, #0x0
+ ldr r0, _020C5AC4 ; =0x021D33C0
+ mov r2, r2, lsr #0x10
+ strh r3, [r1, #0x0]
+ strh r2, [r0, #0x0]
+ bic r0, r12, #0x30000
+ str r0, [lr, #0x0]
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+ .balign 4
+_020C5AC0: .word 0x02106810
+_020C5AC4: .word 0x021D33C0
+
+ arm_func_start GX_VBlankIntr
+GX_VBlankIntr: ; 0x020C5AC8
+ ldr r2, _020C5AF4 ; =0x04000004
+ cmp r0, #0x0
+ ldrh r0, [r2, #0x0]
+ ldrneh r1, [r2, #0x0]
+ and r0, r0, #0x8
+ orrne r1, r1, #0x8
+ strneh r1, [r2, #0x0]
+ ldreqh r1, [r2, #0x0]
+ biceq r1, r1, #0x8
+ streqh r1, [r2, #0x0]
+ bx lr
+ .balign 4
+_020C5AF4: .word 0x04000004
+
+ arm_func_start GX_HBlankIntr
+GX_HBlankIntr: ; 0x020C5AF8
+ ldr r2, _020C5B24 ; =0x04000004
+ cmp r0, #0x0
+ ldrh r0, [r2, #0x0]
+ ldrneh r1, [r2, #0x0]
+ and r0, r0, #0x10
+ orrne r1, r1, #0x10
+ strneh r1, [r2, #0x0]
+ ldreqh r1, [r2, #0x0]
+ biceq r1, r1, #0x10
+ streqh r1, [r2, #0x0]
+ bx lr
+ .balign 4
+_020C5B24: .word 0x04000004
+
+ arm_func_start GX_Init
+GX_Init: ; 0x020C5B28
+ stmdb sp!, {r4-r6,lr}
+ ldr r3, _020C5C68 ; =0x04000304
+ ldr r0, _020C5C6C ; =0xFFFFFDF1
+ ldrh r2, [r3, #0x0]
+ ldr r1, _020C5C70 ; =0x0000020E
+ orr r2, r2, #0x8000
+ strh r2, [r3, #0x0]
+ ldrh r2, [r3, #0x0]
+ and r0, r2, r0
+ orr r0, r0, r1
+ strh r0, [r3, #0x0]
+ ldrh r0, [r3, #0x0]
+ orr r0, r0, #0x1
+ strh r0, [r3, #0x0]
+ bl GX_InitGXState
+ ldr r5, _020C5C74 ; =0x021D33BC
+ ldrh r0, [r5, #0x0]
+ cmp r0, #0x0
+ bne _020C5B9C
+ mvn r4, #0x2
+_020C5B78:
+ bl OS_GetLockID
+ mov r6, r0
+ cmp r6, r4
+ bne _020C5B8C
+ bl OS_Terminate
+_020C5B8C:
+ strh r6, [r5, #0x0]
+ ldrh r0, [r5, #0x0]
+ cmp r0, #0x0
+ beq _020C5B78
+_020C5B9C:
+ ldr r0, _020C5C78 ; =0x04000004
+ mov r2, #0x0
+ strh r2, [r0, #0x0]
+ mov r1, #0x4000000
+ ldr r0, _020C5C7C ; =0x02106814
+ str r2, [r1, #0x0]
+ ldr r0, [r0, #0x0]
+ mvn r1, #0x0
+ cmp r0, r1
+ beq _020C5BF4
+ ldr r1, _020C5C80 ; =0x04000008
+ mov r3, #0x60
+ bl MI_DmaFill32
+ ldr r1, _020C5C84 ; =0x0400006C
+ mov r2, #0x0
+ ldr r0, _020C5C7C ; =0x02106814
+ strh r2, [r1, #0x0]
+ ldr r0, [r0, #0x0]
+ ldr r1, _020C5C88 ; =0x04001000
+ mov r3, #0x70
+ bl MI_DmaFill32
+ b _020C5C1C
+_020C5BF4:
+ ldr r1, _020C5C80 ; =0x04000008
+ mov r0, r2
+ mov r2, #0x60
+ bl MIi_CpuClear32
+ ldr r3, _020C5C84 ; =0x0400006C
+ mov r0, #0x0
+ ldr r1, _020C5C88 ; =0x04001000
+ mov r2, #0x70
+ strh r0, [r3, #0x0]
+ bl MIi_CpuClear32
+_020C5C1C:
+ ldr r1, _020C5C8C ; =0x04000020
+ mov r2, #0x100
+ ldr r0, _020C5C90 ; =0x04000026
+ strh r2, [r1, #0x0]
+ ldr r1, _020C5C94 ; =0x04000030
+ strh r2, [r0, #0x0]
+ ldr r0, _020C5C98 ; =0x04000036
+ strh r2, [r1, #0x0]
+ ldr r1, _020C5C9C ; =0x04001020
+ strh r2, [r0, #0x0]
+ ldr r0, _020C5CA0 ; =0x04001026
+ strh r2, [r1, #0x0]
+ ldr r1, _020C5CA4 ; =0x04001030
+ strh r2, [r0, #0x0]
+ ldr r0, _020C5CA8 ; =0x04001036
+ strh r2, [r1, #0x0]
+ strh r2, [r0, #0x0]
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+ .balign 4
+_020C5C68: .word 0x04000304
+_020C5C6C: .word 0xFFFFFDF1
+_020C5C70: .word 0x0000020E
+_020C5C74: .word 0x021D33BC
+_020C5C78: .word 0x04000004
+_020C5C7C: .word 0x02106814
+_020C5C80: .word 0x04000008
+_020C5C84: .word 0x0400006C
+_020C5C88: .word 0x04001000
+_020C5C8C: .word 0x04000020
+_020C5C90: .word 0x04000026
+_020C5C94: .word 0x04000030
+_020C5C98: .word 0x04000036
+_020C5C9C: .word 0x04001020
+_020C5CA0: .word 0x04001026
+_020C5CA4: .word 0x04001030
+_020C5CA8: .word 0x04001036
+
+ arm_func_start GX_InitGXState
+GX_InitGXState: ; 0x020C5CAC
+ ldr r0, _020C5D14 ; =0x021D33C4
+ mov r3, #0x0
+ ldr r2, _020C5D18 ; =0x04000240
+ strh r3, [r0, #0x0]
+ strh r3, [r0, #0x2]
+ strh r3, [r0, #0x4]
+ strh r3, [r0, #0x6]
+ strh r3, [r0, #0x8]
+ strh r3, [r0, #0xa]
+ strh r3, [r0, #0xc]
+ strh r3, [r0, #0xe]
+ strh r3, [r0, #0x10]
+ strh r3, [r0, #0x12]
+ strh r3, [r0, #0x14]
+ strh r3, [r0, #0x16]
+ strh r3, [r0, #0x18]
+ ldr r1, _020C5D1C ; =0x04000244
+ str r3, [r2, #0x0]
+ ldr r0, _020C5D20 ; =0x04000245
+ strb r3, [r1, #0x0]
+ ldr r1, _020C5D24 ; =0x04000246
+ strb r3, [r0, #0x0]
+ ldr r0, _020C5D28 ; =0x04000248
+ strb r3, [r1, #0x0]
+ strh r3, [r0, #0x0]
+ bx lr
+ .balign 4
+_020C5D14: .word 0x021D33C4
+_020C5D18: .word 0x04000240
+_020C5D1C: .word 0x04000244
+_020C5D20: .word 0x04000245
+_020C5D24: .word 0x04000246
+_020C5D28: .word 0x04000248
+
+ arm_func_start GX_GetBankForSubOBJExtPltt
+GX_GetBankForSubOBJExtPltt: ; 0x020C5D2C
+ ldr r0, _020C5D38 ; =0x021D33C4
+ ldrh r0, [r0, #0x18]
+ bx lr
+ .balign 4
+_020C5D38: .word 0x021D33C4
+
+ arm_func_start GX_GetBankForSubBGExtPltt
+GX_GetBankForSubBGExtPltt: ; 0x020C5D3C
+ ldr r0, _020C5D48 ; =0x021D33C4
+ ldrh r0, [r0, #0x16]
+ bx lr
+ .balign 4
+_020C5D48: .word 0x021D33C4
+
+ arm_func_start GX_GetBankForSubOBJ
+GX_GetBankForSubOBJ: ; 0x020C5D4C
+ ldr r0, _020C5D58 ; =0x021D33C4
+ ldrh r0, [r0, #0x14]
+ bx lr
+ .balign 4
+_020C5D58: .word 0x021D33C4
+
+ arm_func_start GX_GetBankForSubBGExtPltt_2
+GX_GetBankForSubBGExtPltt_2: ; 0x020C5D5C
+ ldr r0, _020C5D68 ; =0x021D33C4
+ ldrh r0, [r0, #0x12]
+ bx lr
+ .balign 4
+_020C5D68: .word 0x021D33C4
+
+ arm_func_start GX_GetBankForLCDC
+GX_GetBankForLCDC: ; 0x020C5D6C
+ ldr r0, _020C5D78 ; =0x021D33C4
+ ldrh r0, [r0, #0x0]
+ bx lr
+ .balign 4
+_020C5D78: .word 0x021D33C4
+
+ arm_func_start GX_GetBankForTexPltt
+GX_GetBankForTexPltt: ; 0x020C5D7C
+ ldr r0, _020C5D88 ; =0x021D33C4
+
+ arm_func_start FUN_020C5D80
+FUN_020C5D80: ; 0x020C5D80
+ ldrh r0, [r0, #0xa]
+ bx lr
+ .balign 4
+_020C5D88: .word 0x021D33C4
+
+ arm_func_start FUN_020C5D8C
+FUN_020C5D8C: ; 0x020C5D8C
+ ldr r0, _020C5D98 ; =0x021D33C4
+ ldrh r0, [r0, #0x8]
+ bx lr
+ .balign 4
+_020C5D98: .word 0x021D33C4
+
+ arm_func_start GX_GetBankForOBJExtPltt
+GX_GetBankForOBJExtPltt: ; 0x020C5D9C
+ ldr r0, _020C5DA8 ; =0x021D33C4
+ ldrh r0, [r0, #0x10]
+ bx lr
+ .balign 4
+_020C5DA8: .word 0x021D33C4
+
+ arm_func_start GX_GetBankForBGExtPltt
+GX_GetBankForBGExtPltt: ; 0x020C5DAC
+ ldr r0, _020C5DB8 ; =0x021D33C4
+ ldrh r0, [r0, #0xe]
+ bx lr
+ .balign 4
+_020C5DB8: .word 0x021D33C4
+
+ arm_func_start GX_GetBankForOBJ
+GX_GetBankForOBJ: ; 0x020C5DBC
+ ldr r0, _020C5DC8 ; =0x021D33C4
+ ldrh r0, [r0, #0x4]
+ bx lr
+ .balign 4
+_020C5DC8: .word 0x021D33C4
+
+ arm_func_start GX_GetBankForBGExtPltt_2
+GX_GetBankForBGExtPltt_2: ; 0x020C5DCC
+ ldr r0, _020C5DD8 ; =0x021D33C4
+ ldrh r0, [r0, #0x2]
+ bx lr
+ .balign 4
+_020C5DD8: .word 0x021D33C4
+
+ arm_func_start GX_DisableBankForSubOBJExtPltt
+GX_DisableBankForSubOBJExtPltt: ; 0x020C5DDC
+ ldr r2, _020C5DF8 ; =0x04001000
+ ldr ip, _020C5DFC ; =FUN_020C5F28
+ ldr r1, [r2, #0x0]
+ ldr r0, _020C5E00 ; =0x021D33DC
+ bic r1, r1, #0x80000000
+ str r1, [r2, #0x0]
+ bx r12
+ .balign 4
+_020C5DF8: .word 0x04001000
+_020C5DFC: .word FUN_020C5F28
+_020C5E00: .word 0x021D33DC
+
+ arm_func_start FUN_020C5E04
+FUN_020C5E04: ; 0x020C5E04
+ ldr r2, _020C5E20 ; =0x04001000
+ ldr ip, _020C5E24 ; =FUN_020C5F28
+ ldr r1, [r2, #0x0]
+ ldr r0, _020C5E28 ; =0x021D33DA
+ bic r1, r1, #0x40000000
+ str r1, [r2, #0x0]
+ bx r12
+ .balign 4
+_020C5E20: .word 0x04001000
+_020C5E24: .word FUN_020C5F28
+_020C5E28: .word 0x021D33DA
+
+ arm_func_start GX_DisableBankForSubOBJExtPltt_2
+GX_DisableBankForSubOBJExtPltt_2: ; 0x020C5E2C
+ ldr ip, _020C5E38 ; =FUN_020C5F28
+ ldr r0, _020C5E3C ; =0x021D33D8
+ bx r12
+ .balign 4
+_020C5E38: .word FUN_020C5F28
+_020C5E3C: .word 0x021D33D8
+
+ arm_func_start GX_DisableBankForSubBGExtPltt
+GX_DisableBankForSubBGExtPltt: ; 0x020C5E40
+ ldr ip, _020C5E4C ; =FUN_020C5F28
+ ldr r0, _020C5E50 ; =0x021D33D6
+ bx r12
+ .balign 4
+_020C5E4C: .word FUN_020C5F28
+_020C5E50: .word 0x021D33D6
+
+ arm_func_start GX_DisableBankForLCDC
+GX_DisableBankForLCDC: ; 0x020C5E54
+ ldr ip, _020C5E60 ; =FUN_020C5F28
+ ldr r0, _020C5E64 ; =0x021D33C4
+ bx r12
+ .balign 4
+_020C5E60: .word FUN_020C5F28
+_020C5E64: .word 0x021D33C4
+
+ arm_func_start GX_DisableBankForARM7
+GX_DisableBankForARM7: ; 0x020C5E68
+ ldr ip, _020C5E74 ; =FUN_020C5F28
+ ldr r0, _020C5E78 ; =0x021D33CA
+ bx r12
+ .balign 4
+_020C5E74: .word FUN_020C5F28
+_020C5E78: .word 0x021D33CA
+
+ arm_func_start GX_DisableBankForClearImage
+GX_DisableBankForClearImage: ; 0x020C5E7C
+ ldr ip, _020C5E88 ; =FUN_020C5F28
+ ldr r0, _020C5E8C ; =0x021D33D0
+ bx r12
+ .balign 4
+_020C5E88: .word FUN_020C5F28
+_020C5E8C: .word 0x021D33D0
+
+ arm_func_start GX_DisableBankForTexPltt
+GX_DisableBankForTexPltt: ; 0x020C5E90
+ ldr ip, _020C5E9C ; =FUN_020C5F28
+ ldr r0, _020C5EA0 ; =0x021D33CE
+ bx r12
+ .balign 4
+_020C5E9C: .word FUN_020C5F28
+_020C5EA0: .word 0x021D33CE
+
+ arm_func_start GX_DisableBankForTexPltt_2
+GX_DisableBankForTexPltt_2: ; 0x020C5EA4
+ ldr ip, _020C5EB0 ; =FUN_020C5F28
+ ldr r0, _020C5EB4 ; =0x021D33CC
+ bx r12
+ .balign 4
+_020C5EB0: .word FUN_020C5F28
+_020C5EB4: .word 0x021D33CC
+
+ arm_func_start GX_DisableBankForOBJExtPltt
+GX_DisableBankForOBJExtPltt: ; 0x020C5EB8
+ mov r2, #0x4000000
+ ldr r1, [r2, #0x0]
+ ldr ip, _020C5ED4 ; =FUN_020C5F28
+ bic r1, r1, #0x80000000
+ ldr r0, _020C5ED8 ; =0x021D33D4
+ str r1, [r2, #0x0]
+ bx r12
+ .balign 4
+_020C5ED4: .word FUN_020C5F28
+_020C5ED8: .word 0x021D33D4
+
+ arm_func_start GX_DisableBankForBGExtPltt
+GX_DisableBankForBGExtPltt: ; 0x020C5EDC
+ mov r2, #0x4000000
+ ldr r1, [r2, #0x0]
+ ldr ip, _020C5EF8 ; =FUN_020C5F28
+ bic r1, r1, #0x40000000
+ ldr r0, _020C5EFC ; =0x021D33D2
+ str r1, [r2, #0x0]
+ bx r12
+ .balign 4
+_020C5EF8: .word FUN_020C5F28
+_020C5EFC: .word 0x021D33D2
+
+ arm_func_start GX_DisableBankForOBJExtPltt_2
+GX_DisableBankForOBJExtPltt_2: ; 0x020C5F00
+ ldr ip, _020C5F0C ; =FUN_020C5F28
+ ldr r0, _020C5F10 ; =0x021D33C8
+ bx r12
+ .balign 4
+_020C5F0C: .word FUN_020C5F28
+_020C5F10: .word 0x021D33C8
+
+ arm_func_start disableBankForX_
+disableBankForX_: ; 0x020C5F14
+ ldr ip, _020C5F20 ; =FUN_020C5F28
+ ldr r0, _020C5F24 ; =0x021D33C6
+ bx r12
+ .balign 4
+_020C5F20: .word FUN_020C5F28
+_020C5F24: .word 0x021D33C6
+
+ arm_func_start FUN_020C5F28
+FUN_020C5F28: ; 0x020C5F28
+ stmdb sp!, {r4,lr}
+ ldrh r4, [r0, #0x0]
+ mov r1, #0x0
+ strh r1, [r0, #0x0]
+ ands r0, r4, #0x1
+ ldrne r0, _020C5FE4 ; =0x04000240
+ strneb r1, [r0, #0x0]
+ ands r0, r4, #0x2
+ ldrne r0, _020C5FE8 ; =0x04000241
+ movne r1, #0x0
+ strneb r1, [r0, #0x0]
+ ands r0, r4, #0x4
+ ldrne r0, _020C5FEC ; =0x04000242
+ movne r1, #0x0
+ strneb r1, [r0, #0x0]
+ ands r0, r4, #0x8
+ ldrne r0, _020C5FF0 ; =0x04000243
+ movne r1, #0x0
+ strneb r1, [r0, #0x0]
+ ands r0, r4, #0x10
+ ldrne r0, _020C5FF4 ; =0x04000244
+ movne r1, #0x0
+ strneb r1, [r0, #0x0]
+ ands r0, r4, #0x20
+ ldrne r0, _020C5FF8 ; =0x04000245
+ movne r1, #0x0
+ strneb r1, [r0, #0x0]
+ ands r0, r4, #0x40
+ ldrne r0, _020C5FFC ; =0x04000246
+ movne r1, #0x0
+ strneb r1, [r0, #0x0]
+ ands r0, r4, #0x80
+ ldrne r0, _020C6000 ; =0x04000248
+ movne r1, #0x0
+ strneb r1, [r0, #0x0]
+ ands r0, r4, #0x100
+ ldrne r0, _020C6004 ; =0x04000249
+ movne r1, #0x0
+ strneb r1, [r0, #0x0]
+ ldr r1, _020C6008 ; =0x021D33BC
+ mov r0, r4, lsl #0x10
+ ldrh r1, [r1, #0x0]
+ mov r0, r0, lsr #0x10
+ bl OSi_UnlockVram
+ mov r0, r4
+ ldmia sp!, {r4,lr}
+ bx lr
+ .balign 4
+_020C5FE4: .word 0x04000240
+_020C5FE8: .word 0x04000241
+_020C5FEC: .word 0x04000242
+_020C5FF0: .word 0x04000243
+_020C5FF4: .word 0x04000244
+_020C5FF8: .word 0x04000245
+_020C5FFC: .word 0x04000246
+_020C6000: .word 0x04000248
+_020C6004: .word 0x04000249
+_020C6008: .word 0x021D33BC
+
+ arm_func_start GX_ResetBankForSubOBJ
+GX_ResetBankForSubOBJ: ; 0x020C600C
+ ldr r2, _020C6028 ; =0x04001000
+ ldr ip, _020C602C ; =FUN_020C6130
+ ldr r1, [r2, #0x0]
+ ldr r0, _020C6030 ; =0x021D33DC
+ bic r1, r1, #0x80000000
+ str r1, [r2, #0x0]
+ bx r12
+ .balign 4
+_020C6028: .word 0x04001000
+_020C602C: .word FUN_020C6130
+_020C6030: .word 0x021D33DC
+
+ arm_func_start FUN_020C6034
+FUN_020C6034: ; 0x020C6034
+ ldr r2, _020C6050 ; =0x04001000
+ ldr ip, _020C6054 ; =FUN_020C6130
+ ldr r1, [r2, #0x0]
+ ldr r0, _020C6058 ; =0x021D33DA
+ bic r1, r1, #0x40000000
+ str r1, [r2, #0x0]
+ bx r12
+ .balign 4
+_020C6050: .word 0x04001000
+_020C6054: .word FUN_020C6130
+_020C6058: .word 0x021D33DA
+
+ arm_func_start FUN_020C605C
+FUN_020C605C: ; 0x020C605C
+ ldr ip, _020C6068 ; =FUN_020C6130
+ ldr r0, _020C606C ; =0x021D33D8
+ bx r12
+ .balign 4
+_020C6068: .word FUN_020C6130
+_020C606C: .word 0x021D33D8
+
+ arm_func_start GX_ResetBankForSubBG
+GX_ResetBankForSubBG: ; 0x020C6070
+ ldr ip, _020C607C ; =FUN_020C6130
+ ldr r0, _020C6080 ; =0x021D33D6
+ bx r12
+ .balign 4
+_020C607C: .word FUN_020C6130
+_020C6080: .word 0x021D33D6
+
+ arm_func_start GX_ResetBankForClearImage
+GX_ResetBankForClearImage: ; 0x020C6084
+ ldr ip, _020C6090 ; =FUN_020C6130
+ ldr r0, _020C6094 ; =0x021D33D0
+ bx r12
+ .balign 4
+_020C6090: .word FUN_020C6130
+_020C6094: .word 0x021D33D0
+
+ arm_func_start GX_ResetBankForTexPltt
+GX_ResetBankForTexPltt: ; 0x020C6098
+ ldr ip, _020C60A4 ; =FUN_020C6130
+ ldr r0, _020C60A8 ; =0x021D33CE
+ bx r12
+ .balign 4
+_020C60A4: .word FUN_020C6130
+_020C60A8: .word 0x021D33CE
+
+ arm_func_start GX_ResetBankForTex
+GX_ResetBankForTex: ; 0x020C60AC
+ ldr ip, _020C60B8 ; =FUN_020C6130
+ ldr r0, _020C60BC ; =0x021D33CC
+ bx r12
+ .balign 4
+_020C60B8: .word FUN_020C6130
+_020C60BC: .word 0x021D33CC
+
+ arm_func_start GX_ResetBankForOBJExtPltt
+GX_ResetBankForOBJExtPltt: ; 0x020C60C0
+ mov r2, #0x4000000
+ ldr r1, [r2, #0x0]
+ ldr ip, _020C60DC ; =FUN_020C6130
+ bic r1, r1, #0x80000000
+ ldr r0, _020C60E0 ; =0x021D33D4
+ str r1, [r2, #0x0]
+ bx r12
+ .balign 4
+_020C60DC: .word FUN_020C6130
+_020C60E0: .word 0x021D33D4
+
+ arm_func_start GX_ResetBankForBGExtPltt
+GX_ResetBankForBGExtPltt: ; 0x020C60E4
+ mov r2, #0x4000000
+ ldr r1, [r2, #0x0]
+ ldr ip, _020C6100 ; =FUN_020C6130
+ bic r1, r1, #0x40000000
+ ldr r0, _020C6104 ; =0x021D33D2
+ str r1, [r2, #0x0]
+ bx r12
+ .balign 4
+_020C6100: .word FUN_020C6130
+_020C6104: .word 0x021D33D2
+
+ arm_func_start GX_ResetBankForOBJ
+GX_ResetBankForOBJ: ; 0x020C6108
+ ldr ip, _020C6114 ; =FUN_020C6130
+ ldr r0, _020C6118 ; =0x021D33C8
+ bx r12
+ .balign 4
+_020C6114: .word FUN_020C6130
+_020C6118: .word 0x021D33C8
+
+ arm_func_start GX_ResetBankForBG
+GX_ResetBankForBG: ; 0x020C611C
+ ldr ip, _020C6128 ; =FUN_020C6130
+ ldr r0, _020C612C ; =0x021D33C6
+ bx r12
+ .balign 4
+_020C6128: .word FUN_020C6130
+_020C612C: .word 0x021D33C6
+
+ arm_func_start FUN_020C6130
+FUN_020C6130: ; 0x020C6130
+ stmdb sp!, {r4,lr}
+ ldrh r4, [r0, #0x0]
+ mov r2, #0x0
+ ldr r1, _020C6164 ; =0x021D33C4
+ strh r2, [r0, #0x0]
+ ldrh r2, [r1, #0x0]
+ mov r0, r4
+ orr r2, r2, r4
+ strh r2, [r1, #0x0]
+ bl GX_VRAMCNT_SetLCDC_
+ mov r0, r4
+ ldmia sp!, {r4,lr}
+ bx lr
+ .balign 4
+_020C6164: .word 0x021D33C4
+
+ arm_func_start GX_SetBankForSubOBJExtPltt
+GX_SetBankForSubOBJExtPltt: ; 0x020C6168
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldr r1, _020C61E8 ; =0x021D33C4
+ mvn r12, r0
+ ldrh r2, [r1, #0x18]
+ ldrh r3, [r1, #0x0]
+ cmp r0, #0x0
+ strh r0, [r1, #0x18]
+ orr r2, r3, r2
+ and r2, r12, r2
+ strh r2, [r1, #0x0]
+ beq _020C61C0
+ cmp r0, #0x100
+ bne _020C61D0
+ ldr r3, _020C61EC ; =0x04001000
+ ldr r0, _020C61F0 ; =0x04000249
+ ldr r2, [r3, #0x0]
+ mov r1, #0x83
+ orr r2, r2, #0x80000000
+ str r2, [r3, #0x0]
+ strb r1, [r0, #0x0]
+ b _020C61D0
+_020C61C0:
+ ldr r1, _020C61EC ; =0x04001000
+ ldr r0, [r1, #0x0]
+ bic r0, r0, #0x80000000
+ str r0, [r1, #0x0]
+_020C61D0:
+ ldr r0, _020C61E8 ; =0x021D33C4
+ ldrh r0, [r0, #0x0]
+ bl GX_VRAMCNT_SetLCDC_
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+ .balign 4
+_020C61E8: .word 0x021D33C4
+_020C61EC: .word 0x04001000
+_020C61F0: .word 0x04000249
+
+ arm_func_start GX_SetBankForSubBGExtPltt
+GX_SetBankForSubBGExtPltt: ; 0x020C61F4
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldr r1, _020C6274 ; =0x021D33C4
+ mvn r12, r0
+ ldrh r2, [r1, #0x16]
+ ldrh r3, [r1, #0x0]
+ cmp r0, #0x0
+ strh r0, [r1, #0x16]
+ orr r2, r3, r2
+ and r2, r12, r2
+ strh r2, [r1, #0x0]
+ beq _020C624C
+ cmp r0, #0x80
+ bne _020C625C
+ ldr r3, _020C6278 ; =0x04001000
+ ldr r0, _020C627C ; =0x04000248
+ ldr r2, [r3, #0x0]
+ mov r1, #0x82
+ orr r2, r2, #0x40000000
+ str r2, [r3, #0x0]
+ strb r1, [r0, #0x0]
+ b _020C625C
+_020C624C:
+ ldr r1, _020C6278 ; =0x04001000
+ ldr r0, [r1, #0x0]
+ bic r0, r0, #0x40000000
+ str r0, [r1, #0x0]
+_020C625C:
+ ldr r0, _020C6274 ; =0x021D33C4
+ ldrh r0, [r0, #0x0]
+ bl GX_VRAMCNT_SetLCDC_
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+ .balign 4
+_020C6274: .word 0x021D33C4
+_020C6278: .word 0x04001000
+_020C627C: .word 0x04000248
+
+ arm_func_start GX_SetBankForSubOBJ
+GX_SetBankForSubOBJ: ; 0x020C6280
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldr r1, _020C62F0 ; =0x021D33C4
+ mvn r12, r0
+ ldrh r2, [r1, #0x14]
+ ldrh r3, [r1, #0x0]
+ cmp r0, #0x0
+ strh r0, [r1, #0x14]
+ orr r2, r3, r2
+ and r2, r12, r2
+ strh r2, [r1, #0x0]
+ beq _020C62D8
+ cmp r0, #0x8
+ beq _020C62CC
+ cmp r0, #0x100
+ ldreq r0, _020C62F4 ; =0x04000249
+ moveq r1, #0x82
+ streqb r1, [r0, #0x0]
+ b _020C62D8
+_020C62CC:
+ ldr r0, _020C62F8 ; =0x04000243
+ mov r1, #0x84
+ strb r1, [r0, #0x0]
+_020C62D8:
+ ldr r0, _020C62F0 ; =0x021D33C4
+ ldrh r0, [r0, #0x0]
+ bl GX_VRAMCNT_SetLCDC_
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+ .balign 4
+_020C62F0: .word 0x021D33C4
+_020C62F4: .word 0x04000249
+_020C62F8: .word 0x04000243
+
+ arm_func_start GX_SetBankForSubBG
+GX_SetBankForSubBG: ; 0x020C62FC
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldr r1, _020C6398 ; =0x021D33C4
+ mvn r12, r0
+ ldrh r2, [r1, #0x12]
+ ldrh r3, [r1, #0x0]
+ cmp r0, #0x80
+ strh r0, [r1, #0x12]
+ orr r2, r3, r2
+ and r2, r12, r2
+ strh r2, [r1, #0x0]
+ bgt _020C6360
+ cmp r0, #0x80
+ bge _020C6374
+ cmp r0, #0x4
+ bgt _020C6380
+ cmp r0, #0x0
+ blt _020C6380
+ cmp r0, #0x0
+ beq _020C6380
+ cmp r0, #0x4
+ ldreq r0, _020C639C ; =0x04000242
+ moveq r1, #0x84
+ streqb r1, [r0, #0x0]
+ b _020C6380
+_020C6360:
+ cmp r0, #0x180
+ bne _020C6380
+ ldr r0, _020C63A0 ; =0x04000249
+ mov r1, #0x81
+ strb r1, [r0, #0x0]
+_020C6374:
+ ldr r0, _020C63A4 ; =0x04000248
+ mov r1, #0x81
+ strb r1, [r0, #0x0]
+_020C6380:
+ ldr r0, _020C6398 ; =0x021D33C4
+ ldrh r0, [r0, #0x0]
+ bl GX_VRAMCNT_SetLCDC_
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+ .balign 4
+_020C6398: .word 0x021D33C4
+_020C639C: .word 0x04000242
+_020C63A0: .word 0x04000249
+_020C63A4: .word 0x04000248
+
+ arm_func_start GX_SetBankForLCDC
+GX_SetBankForLCDC: ; 0x020C63A8
+ ldr r1, _020C63C0 ; =0x021D33C4
+ ldr ip, _020C63C4 ; =GX_VRAMCNT_SetLCDC_
+ ldrh r2, [r1, #0x0]
+ orr r2, r2, r0
+ strh r2, [r1, #0x0]
+ bx r12
+ .balign 4
+_020C63C0: .word 0x021D33C4
+_020C63C4: .word GX_VRAMCNT_SetLCDC_
+
+ arm_func_start GX_SetBankForARM7
+GX_SetBankForARM7: ; 0x020C63C8
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldr r1, _020C6474 ; =0x021D33C4
+ mvn r12, r0
+ ldrh r2, [r1, #0x6]
+ ldrh r3, [r1, #0x0]
+ cmp r0, #0x8
+ strh r0, [r1, #0x6]
+ orr r2, r3, r2
+ and r2, r12, r2
+ strh r2, [r1, #0x0]
+ bgt _020C642C
+ cmp r0, #0x8
+ bge _020C6450
+ cmp r0, #0x4
+ bgt _020C645C
+ cmp r0, #0x0
+ blt _020C645C
+ cmp r0, #0x0
+ beq _020C645C
+ cmp r0, #0x4
+ ldreq r0, _020C6478 ; =0x04000242
+ moveq r1, #0x82
+ streqb r1, [r0, #0x0]
+ b _020C645C
+_020C642C:
+ cmp r0, #0xc
+ bne _020C645C
+ ldr r1, _020C647C ; =0x04000243
+ mov r2, #0x8a
+ strb r2, [r1, #0x0]
+ ldr r0, _020C6478 ; =0x04000242
+ mov r1, #0x82
+ strb r1, [r0, #0x0]
+ b _020C645C
+_020C6450:
+ ldr r0, _020C647C ; =0x04000243
+ mov r1, #0x82
+ strb r1, [r0, #0x0]
+_020C645C:
+ ldr r0, _020C6474 ; =0x021D33C4
+ ldrh r0, [r0, #0x0]
+ bl GX_VRAMCNT_SetLCDC_
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+ .balign 4
+_020C6474: .word 0x021D33C4
+_020C6478: .word 0x04000242
+_020C647C: .word 0x04000243
+
+ arm_func_start GX_SetBankForClearImage
+GX_SetBankForClearImage: ; 0x020C6480
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldr r1, _020C65A8 ; =0x021D33C4
+ mvn r12, r0
+ ldrh r2, [r1, #0xc]
+ ldrh r3, [r1, #0x0]
+ cmp r0, #0xc
+ strh r0, [r1, #0xc]
+ orr r2, r3, r2
+ and r2, r12, r2
+ strh r2, [r1, #0x0]
+ addls pc, pc, r0, lsl #0x2
+ b _020C6590
+_020C64B4: ; 0x020C64B4
+ b _020C6540
+_020C64B8: ; 0x020C64B8
+ b _020C6554
+_020C64BC: ; 0x020C64BC
+ b _020C64F4
+_020C64C0: ; 0x020C64C0
+ b _020C64E8
+_020C64C4: ; 0x020C64C4
+ b _020C6574
+_020C64C8: ; 0x020C64C8
+ b _020C6590
+_020C64CC: ; 0x020C64CC
+ b _020C6590
+_020C64D0: ; 0x020C64D0
+ b _020C6590
+_020C64D4: ; 0x020C64D4
+ b _020C6520
+_020C64D8: ; 0x020C64D8
+ b _020C6590
+_020C64DC: ; 0x020C64DC
+ b _020C6590
+_020C64E0: ; 0x020C64E0
+ b _020C6590
+_020C64E4: ; 0x020C64E4
+ b _020C6514
+_020C64E8:
+ ldr r0, _020C65AC ; =0x04000240
+ mov r1, #0x93
+ strb r1, [r0, #0x0]
+_020C64F4:
+ ldr r0, _020C65B0 ; =0x04000241
+ mov r2, #0x9b
+ ldr r1, _020C65B4 ; =0x04000060
+ strb r2, [r0, #0x0]
+ ldrh r0, [r1, #0x0]
+ orr r0, r0, #0x4000
+ strh r0, [r1, #0x0]
+ b _020C6590
+_020C6514:
+ ldr r0, _020C65B8 ; =0x04000242
+ mov r1, #0x93
+ strb r1, [r0, #0x0]
+_020C6520:
+ ldr r0, _020C65BC ; =0x04000243
+ mov r2, #0x9b
+ ldr r1, _020C65B4 ; =0x04000060
+ strb r2, [r0, #0x0]
+ ldrh r0, [r1, #0x0]
+ orr r0, r0, #0x4000
+ strh r0, [r1, #0x0]
+ b _020C6590
+_020C6540:
+ ldr r1, _020C65B4 ; =0x04000060
+ ldrh r0, [r1, #0x0]
+ bic r0, r0, #0x4000
+ strh r0, [r1, #0x0]
+ b _020C6590
+_020C6554:
+ ldr r0, _020C65AC ; =0x04000240
+ mov r2, #0x9b
+ ldr r1, _020C65B4 ; =0x04000060
+ strb r2, [r0, #0x0]
+ ldrh r0, [r1, #0x0]
+ orr r0, r0, #0x4000
+ strh r0, [r1, #0x0]
+ b _020C6590
+_020C6574:
+ ldr r0, _020C65B8 ; =0x04000242
+ mov r2, #0x9b
+ ldr r1, _020C65B4 ; =0x04000060
+ strb r2, [r0, #0x0]
+ ldrh r0, [r1, #0x0]
+ orr r0, r0, #0x4000
+ strh r0, [r1, #0x0]
+_020C6590:
+ ldr r0, _020C65A8 ; =0x021D33C4
+ ldrh r0, [r0, #0x0]
+ bl GX_VRAMCNT_SetLCDC_
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+ .balign 4
+_020C65A8: .word 0x021D33C4
+_020C65AC: .word 0x04000240
+_020C65B0: .word 0x04000241
+_020C65B4: .word 0x04000060
+_020C65B8: .word 0x04000242
+_020C65BC: .word 0x04000243
+
+ arm_func_start GX_SetBankForTexPltt
+GX_SetBankForTexPltt: ; 0x020C65C0
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldr r1, _020C66A4 ; =0x021D33C4
+ mvn r12, r0
+ ldrh r2, [r1, #0xa]
+ ldrh r3, [r1, #0x0]
+ cmp r0, #0x30
+ strh r0, [r1, #0xa]
+ orr r2, r3, r2
+ and r2, r12, r2
+ strh r2, [r1, #0x0]
+ bgt _020C661C
+ cmp r0, #0x30
+ bge _020C6674
+ cmp r0, #0x10
+ bgt _020C6610
+ cmp r0, #0x10
+ bge _020C6680
+ cmp r0, #0x0
+ b _020C668C
+_020C6610:
+ cmp r0, #0x20
+ beq _020C6658
+ b _020C668C
+_020C661C:
+ cmp r0, #0x60
+ bgt _020C6640
+ cmp r0, #0x60
+ bge _020C664C
+ cmp r0, #0x40
+ ldreq r0, _020C66A8 ; =0x04000246
+ moveq r1, #0x83
+ streqb r1, [r0, #0x0]
+ b _020C668C
+_020C6640:
+ cmp r0, #0x70
+ beq _020C6668
+ b _020C668C
+_020C664C:
+ ldr r0, _020C66A8 ; =0x04000246
+ mov r1, #0x8b
+ strb r1, [r0, #0x0]
+_020C6658:
+ ldr r0, _020C66AC ; =0x04000245
+ mov r1, #0x83
+ strb r1, [r0, #0x0]
+ b _020C668C
+_020C6668:
+ ldr r0, _020C66A8 ; =0x04000246
+ mov r1, #0x9b
+ strb r1, [r0, #0x0]
+_020C6674:
+ ldr r0, _020C66AC ; =0x04000245
+ mov r1, #0x93
+ strb r1, [r0, #0x0]
+_020C6680:
+ ldr r0, _020C66B0 ; =0x04000244
+ mov r1, #0x83
+ strb r1, [r0, #0x0]
+_020C668C:
+ ldr r0, _020C66A4 ; =0x021D33C4
+ ldrh r0, [r0, #0x0]
+ bl GX_VRAMCNT_SetLCDC_
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+ .balign 4
+_020C66A4: .word 0x021D33C4
+_020C66A8: .word 0x04000246
+_020C66AC: .word 0x04000245
+_020C66B0: .word 0x04000244
+
+ arm_func_start GX_SetBankForTex
+GX_SetBankForTex: ; 0x020C66B4
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldr r1, _020C689C ; =0x021D33C4
+ mvn r12, r0
+ ldrh r2, [r1, #0x8]
+ ldrh r3, [r1, #0x0]
+ cmp r0, #0x0
+ strh r0, [r1, #0x8]
+ orr r2, r3, r2
+ and r2, r12, r2
+ strh r2, [r1, #0x0]
+ bne _020C66FC
+ ldr r2, _020C68A0 ; =0x04000060
+ ldr r0, _020C68A4 ; =0x0000CFFE
+ ldrh r1, [r2, #0x0]
+ and r0, r1, r0
+ strh r0, [r2, #0x0]
+ b _020C6884
+_020C66FC:
+ ldr r2, _020C68A0 ; =0x04000060
+ cmp r0, #0xf
+ ldrh r1, [r2, #0x0]
+ bic r1, r1, #0x3000
+ orr r1, r1, #0x1
+ strh r1, [r2, #0x0]
+ addls pc, pc, r0, lsl #0x2
+ b _020C6884
+_020C671C: ; 0x020C671C
+ b _020C6884
+_020C6720: ; 0x020C6720
+ b _020C6878
+_020C6724: ; 0x020C6724
+ b _020C6844
+_020C6728: ; 0x020C6728
+ b _020C686C
+_020C672C: ; 0x020C672C
+ b _020C681C
+_020C6730: ; 0x020C6730
+ b _020C675C
+_020C6734: ; 0x020C6734
+ b _020C6838
+_020C6738: ; 0x020C6738
+ b _020C6860
+_020C673C: ; 0x020C673C
+ b _020C6800
+_020C6740: ; 0x020C6740
+ b _020C6778
+_020C6744: ; 0x020C6744
+ b _020C6794
+_020C6748: ; 0x020C6748
+ b _020C67B0
+_020C674C: ; 0x020C674C
+ b _020C6810
+_020C6750: ; 0x020C6750
+ b _020C67D8
+_020C6754: ; 0x020C6754
+ b _020C682C
+_020C6758: ; 0x020C6758
+ b _020C6854
+_020C675C:
+ ldr r1, _020C68A8 ; =0x04000240
+ mov r2, #0x83
+ ldr r0, _020C68AC ; =0x04000242
+ strb r2, [r1, #0x0]
+ mov r1, #0x8b
+ strb r1, [r0, #0x0]
+ b _020C6884
+_020C6778:
+ ldr r1, _020C68A8 ; =0x04000240
+ mov r2, #0x83
+ ldr r0, _020C68B0 ; =0x04000243
+ strb r2, [r1, #0x0]
+ mov r1, #0x8b
+ strb r1, [r0, #0x0]
+ b _020C6884
+_020C6794:
+ ldr r1, _020C68B4 ; =0x04000241
+ mov r2, #0x83
+ ldr r0, _020C68B0 ; =0x04000243
+ strb r2, [r1, #0x0]
+ mov r1, #0x8b
+ strb r1, [r0, #0x0]
+ b _020C6884
+_020C67B0:
+ ldr r0, _020C68A8 ; =0x04000240
+ mov r2, #0x83
+ ldr r1, _020C68B4 ; =0x04000241
+ strb r2, [r0, #0x0]
+ mov r2, #0x8b
+ ldr r0, _020C68B0 ; =0x04000243
+ strb r2, [r1, #0x0]
+ mov r1, #0x93
+ strb r1, [r0, #0x0]
+ b _020C6884
+_020C67D8:
+ ldr r0, _020C68A8 ; =0x04000240
+ mov r2, #0x83
+ ldr r1, _020C68AC ; =0x04000242
+ strb r2, [r0, #0x0]
+ mov r2, #0x8b
+ ldr r0, _020C68B0 ; =0x04000243
+ strb r2, [r1, #0x0]
+ mov r1, #0x93
+ strb r1, [r0, #0x0]
+ b _020C6884
+_020C6800:
+ ldr r0, _020C68B0 ; =0x04000243
+ mov r1, #0x83
+ strb r1, [r0, #0x0]
+ b _020C6884
+_020C6810:
+ ldr r0, _020C68B0 ; =0x04000243
+ mov r1, #0x8b
+ strb r1, [r0, #0x0]
+_020C681C:
+ ldr r0, _020C68AC ; =0x04000242
+ mov r1, #0x83
+ strb r1, [r0, #0x0]
+ b _020C6884
+_020C682C:
+ ldr r0, _020C68B0 ; =0x04000243
+ mov r1, #0x93
+ strb r1, [r0, #0x0]
+_020C6838:
+ ldr r0, _020C68AC ; =0x04000242
+ mov r1, #0x8b
+ strb r1, [r0, #0x0]
+_020C6844:
+ ldr r0, _020C68B4 ; =0x04000241
+ mov r1, #0x83
+ strb r1, [r0, #0x0]
+ b _020C6884
+_020C6854:
+ ldr r0, _020C68B0 ; =0x04000243
+ mov r1, #0x9b
+ strb r1, [r0, #0x0]
+_020C6860:
+ ldr r0, _020C68AC ; =0x04000242
+ mov r1, #0x93
+ strb r1, [r0, #0x0]
+_020C686C:
+ ldr r0, _020C68B4 ; =0x04000241
+ mov r1, #0x8b
+ strb r1, [r0, #0x0]
+_020C6878:
+ ldr r0, _020C68A8 ; =0x04000240
+ mov r1, #0x83
+ strb r1, [r0, #0x0]
+_020C6884:
+ ldr r0, _020C689C ; =0x021D33C4
+ ldrh r0, [r0, #0x0]
+ bl GX_VRAMCNT_SetLCDC_
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+ .balign 4
+_020C689C: .word 0x021D33C4
+_020C68A0: .word 0x04000060
+_020C68A4: .word 0x0000CFFE
+_020C68A8: .word 0x04000240
+_020C68AC: .word 0x04000242
+_020C68B0: .word 0x04000243
+_020C68B4: .word 0x04000241
+
+ arm_func_start GX_SetBankForOBJExtPltt
+GX_SetBankForOBJExtPltt: ; 0x020C68B8
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldr r1, _020C6964 ; =0x021D33C4
+ mvn r12, r0
+ ldrh r2, [r1, #0x10]
+ ldrh r3, [r1, #0x0]
+ cmp r0, #0x0
+ strh r0, [r1, #0x10]
+ orr r2, r3, r2
+ and r2, r12, r2
+ strh r2, [r1, #0x0]
+ beq _020C693C
+ cmp r0, #0x20
+ beq _020C68FC
+ cmp r0, #0x40
+ beq _020C691C
+ b _020C694C
+_020C68FC:
+ mov r2, #0x4000000
+ ldr r1, [r2, #0x0]
+ ldr r0, _020C6968 ; =0x04000245
+ orr r1, r1, #0x80000000
+ str r1, [r2, #0x0]
+ mov r1, #0x85
+ strb r1, [r0, #0x0]
+ b _020C694C
+_020C691C:
+ mov r2, #0x4000000
+ ldr r1, [r2, #0x0]
+ ldr r0, _020C696C ; =0x04000246
+ orr r1, r1, #0x80000000
+ str r1, [r2, #0x0]
+ mov r1, #0x85
+ strb r1, [r0, #0x0]
+ b _020C694C
+_020C693C:
+ mov r1, #0x4000000
+ ldr r0, [r1, #0x0]
+ bic r0, r0, #0x80000000
+ str r0, [r1, #0x0]
+_020C694C:
+ ldr r0, _020C6964 ; =0x021D33C4
+ ldrh r0, [r0, #0x0]
+ bl GX_VRAMCNT_SetLCDC_
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+ .balign 4
+_020C6964: .word 0x021D33C4
+_020C6968: .word 0x04000245
+_020C696C: .word 0x04000246
+
+ arm_func_start GX_SetBankForBGExtPltt
+GX_SetBankForBGExtPltt: ; 0x020C6970
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldr r1, _020C6A74 ; =0x021D33C4
+ mvn r12, r0
+ ldrh r2, [r1, #0xe]
+ ldrh r3, [r1, #0x0]
+ cmp r0, #0x20
+ strh r0, [r1, #0xe]
+ orr r2, r3, r2
+ and r2, r12, r2
+ strh r2, [r1, #0x0]
+ bgt _020C69D4
+ cmp r0, #0x20
+ bge _020C6A40
+ cmp r0, #0x0
+ bgt _020C69C8
+ cmp r0, #0x0
+ moveq r1, #0x4000000
+ ldreq r0, [r1, #0x0]
+ biceq r0, r0, #0x40000000
+ streq r0, [r1, #0x0]
+ b _020C6A5C
+_020C69C8:
+ cmp r0, #0x10
+ beq _020C69F4
+ b _020C6A5C
+_020C69D4:
+ cmp r0, #0x40
+ bgt _020C69E8
+ cmp r0, #0x40
+ beq _020C6A14
+ b _020C6A5C
+_020C69E8:
+ cmp r0, #0x60
+ beq _020C6A34
+ b _020C6A5C
+_020C69F4:
+ mov r2, #0x4000000
+ ldr r1, [r2, #0x0]
+ ldr r0, _020C6A78 ; =0x04000244
+ orr r1, r1, #0x40000000
+ str r1, [r2, #0x0]
+ mov r1, #0x84
+ strb r1, [r0, #0x0]
+ b _020C6A5C
+_020C6A14:
+ mov r2, #0x4000000
+ ldr r1, [r2, #0x0]
+ ldr r0, _020C6A7C ; =0x04000246
+ orr r1, r1, #0x40000000
+ str r1, [r2, #0x0]
+ mov r1, #0x8c
+ strb r1, [r0, #0x0]
+ b _020C6A5C
+_020C6A34:
+ ldr r0, _020C6A7C ; =0x04000246
+ mov r1, #0x8c
+ strb r1, [r0, #0x0]
+_020C6A40:
+ ldr r0, _020C6A80 ; =0x04000245
+ mov r1, #0x84
+ strb r1, [r0, #0x0]
+ mov r1, #0x4000000
+ ldr r0, [r1, #0x0]
+ orr r0, r0, #0x40000000
+ str r0, [r1, #0x0]
+_020C6A5C:
+ ldr r0, _020C6A74 ; =0x021D33C4
+ ldrh r0, [r0, #0x0]
+ bl GX_VRAMCNT_SetLCDC_
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+ .balign 4
+_020C6A74: .word 0x021D33C4
+_020C6A78: .word 0x04000244
+_020C6A7C: .word 0x04000246
+_020C6A80: .word 0x04000245
+
+ arm_func_start GX_SetBankForOBJ
+GX_SetBankForOBJ: ; 0x020C6A84
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldr r1, _020C6BD8 ; =0x021D33C4
+ mvn r12, r0
+ ldrh r2, [r1, #0x4]
+ ldrh r3, [r1, #0x0]
+ cmp r0, #0x30
+ strh r0, [r1, #0x4]
+ orr r2, r3, r2
+ and r2, r12, r2
+ strh r2, [r1, #0x0]
+ bgt _020C6AF4
+ cmp r0, #0x30
+ bge _020C6B70
+ cmp r0, #0x10
+ bgt _020C6AE8
+ cmp r0, #0x10
+ bge _020C6B7C
+ cmp r0, #0x3
+ addls pc, pc, r0, lsl #0x2
+ b _020C6BC0
+_020C6AD8: ; 0x020C6AD8
+ b _020C6BC0
+_020C6ADC: ; 0x020C6ADC
+ b _020C6B44
+_020C6AE0: ; 0x020C6AE0
+ b _020C6B54
+_020C6AE4: ; 0x020C6AE4
+ b _020C6B38
+_020C6AE8:
+ cmp r0, #0x20
+ beq _020C6BB4
+ b _020C6BC0
+_020C6AF4:
+ cmp r0, #0x50
+ bgt _020C6B18
+ cmp r0, #0x50
+ bge _020C6B8C
+ cmp r0, #0x40
+ ldreq r0, _020C6BDC ; =0x04000246
+ moveq r1, #0x82
+ streqb r1, [r0, #0x0]
+ b _020C6BC0
+_020C6B18:
+ cmp r0, #0x60
+ bgt _020C6B2C
+ cmp r0, #0x60
+ beq _020C6BA8
+ b _020C6BC0
+_020C6B2C:
+ cmp r0, #0x70
+ beq _020C6B64
+ b _020C6BC0
+_020C6B38:
+ ldr r0, _020C6BE0 ; =0x04000241
+ mov r1, #0x8a
+ strb r1, [r0, #0x0]
+_020C6B44:
+ ldr r0, _020C6BE4 ; =0x04000240
+ mov r1, #0x82
+ strb r1, [r0, #0x0]
+ b _020C6BC0
+_020C6B54:
+ ldr r0, _020C6BE0 ; =0x04000241
+ mov r1, #0x82
+ strb r1, [r0, #0x0]
+ b _020C6BC0
+_020C6B64:
+ ldr r0, _020C6BDC ; =0x04000246
+ mov r1, #0x9a
+ strb r1, [r0, #0x0]
+_020C6B70:
+ ldr r0, _020C6BE8 ; =0x04000245
+ mov r1, #0x92
+ strb r1, [r0, #0x0]
+_020C6B7C:
+ ldr r0, _020C6BEC ; =0x04000244
+ mov r1, #0x82
+ strb r1, [r0, #0x0]
+ b _020C6BC0
+_020C6B8C:
+ ldr r1, _020C6BDC ; =0x04000246
+ mov r2, #0x92
+ ldr r0, _020C6BEC ; =0x04000244
+ strb r2, [r1, #0x0]
+ mov r1, #0x82
+ strb r1, [r0, #0x0]
+ b _020C6BC0
+_020C6BA8:
+ ldr r0, _020C6BDC ; =0x04000246
+ mov r1, #0x8a
+ strb r1, [r0, #0x0]
+_020C6BB4:
+ ldr r0, _020C6BE8 ; =0x04000245
+ mov r1, #0x82
+ strb r1, [r0, #0x0]
+_020C6BC0:
+ ldr r0, _020C6BD8 ; =0x021D33C4
+ ldrh r0, [r0, #0x0]
+ bl GX_VRAMCNT_SetLCDC_
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+ .balign 4
+_020C6BD8: .word 0x021D33C4
+_020C6BDC: .word 0x04000246
+_020C6BE0: .word 0x04000241
+_020C6BE4: .word 0x04000240
+_020C6BE8: .word 0x04000245
+_020C6BEC: .word 0x04000244
+
+ arm_func_start GX_SetBankForBG
+GX_SetBankForBG: ; 0x020C6BF0
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldr r1, _020C6E88 ; =0x021D33C4
+ mvn r12, r0
+ ldrh r2, [r1, #0x2]
+ ldrh r3, [r1, #0x0]
+ cmp r0, #0x40
+ strh r0, [r1, #0x2]
+ orr r2, r3, r2
+ and r2, r12, r2
+ strh r2, [r1, #0x0]
+ bgt _020C6CCC
+ cmp r0, #0x40
+ bge _020C6E64
+ cmp r0, #0x20
+ bgt _020C6CC0
+ cmp r0, #0x0
+ addge pc, pc, r0, lsl #0x2
+ b _020C6E70
+_020C6C3C: ; 0x020C6C3C
+ b _020C6E70
+_020C6C40: ; 0x020C6C40
+ b _020C6D6C
+_020C6C44: ; 0x020C6C44
+ b _020C6D38
+_020C6C48: ; 0x020C6C48
+ b _020C6D60
+_020C6C4C: ; 0x020C6C4C
+ b _020C6D10
+_020C6C50: ; 0x020C6C50
+ b _020C6DB0
+_020C6C54: ; 0x020C6C54
+ b _020C6D2C
+_020C6C58: ; 0x020C6C58
+ b _020C6D54
+_020C6C5C: ; 0x020C6C5C
+ b _020C6CF4
+_020C6C60: ; 0x020C6C60
+ b _020C6DCC
+_020C6C64: ; 0x020C6C64
+ b _020C6DE8
+_020C6C68: ; 0x020C6C68
+ b _020C6D7C
+_020C6C6C: ; 0x020C6C6C
+ b _020C6D04
+_020C6C70: ; 0x020C6C70
+ b _020C6DA4
+_020C6C74: ; 0x020C6C74
+ b _020C6D20
+_020C6C78: ; 0x020C6C78
+ b _020C6D48
+_020C6C7C: ; 0x020C6C7C
+ b _020C6E1C
+_020C6C80: ; 0x020C6C80
+ b _020C6E70
+_020C6C84: ; 0x020C6C84
+ b _020C6E70
+_020C6C88: ; 0x020C6C88
+ b _020C6E70
+_020C6C8C: ; 0x020C6C8C
+ b _020C6E70
+_020C6C90: ; 0x020C6C90
+ b _020C6E70
+_020C6C94: ; 0x020C6C94
+ b _020C6E70
+_020C6C98: ; 0x020C6C98
+ b _020C6E70
+_020C6C9C: ; 0x020C6C9C
+ b _020C6E70
+_020C6CA0: ; 0x020C6CA0
+ b _020C6E70
+_020C6CA4: ; 0x020C6CA4
+ b _020C6E70
+_020C6CA8: ; 0x020C6CA8
+ b _020C6E70
+_020C6CAC: ; 0x020C6CAC
+ b _020C6E70
+_020C6CB0: ; 0x020C6CB0
+ b _020C6E70
+_020C6CB4: ; 0x020C6CB4
+ b _020C6E70
+_020C6CB8: ; 0x020C6CB8
+ b _020C6E70
+_020C6CBC: ; 0x020C6CBC
+ b _020C6E54
+_020C6CC0:
+ cmp r0, #0x30
+ beq _020C6E10
+ b _020C6E70
+_020C6CCC:
+ cmp r0, #0x60
+ bgt _020C6CE8
+ cmp r0, #0x60
+ bge _020C6E48
+ cmp r0, #0x50
+ beq _020C6E2C
+ b _020C6E70
+_020C6CE8:
+ cmp r0, #0x70
+ beq _020C6E04
+ b _020C6E70
+_020C6CF4:
+ ldr r0, _020C6E8C ; =0x04000243
+ mov r1, #0x81
+ strb r1, [r0, #0x0]
+ b _020C6E70
+_020C6D04:
+ ldr r0, _020C6E8C ; =0x04000243
+ mov r1, #0x89
+ strb r1, [r0, #0x0]
+_020C6D10:
+ ldr r0, _020C6E90 ; =0x04000242
+ mov r1, #0x81
+ strb r1, [r0, #0x0]
+ b _020C6E70
+_020C6D20:
+ ldr r0, _020C6E8C ; =0x04000243
+ mov r1, #0x91
+ strb r1, [r0, #0x0]
+_020C6D2C:
+ ldr r0, _020C6E90 ; =0x04000242
+ mov r1, #0x89
+ strb r1, [r0, #0x0]
+_020C6D38:
+ ldr r0, _020C6E94 ; =0x04000241
+ mov r1, #0x81
+ strb r1, [r0, #0x0]
+ b _020C6E70
+_020C6D48:
+ ldr r0, _020C6E8C ; =0x04000243
+ mov r1, #0x99
+ strb r1, [r0, #0x0]
+_020C6D54:
+ ldr r0, _020C6E90 ; =0x04000242
+ mov r1, #0x91
+ strb r1, [r0, #0x0]
+_020C6D60:
+ ldr r0, _020C6E94 ; =0x04000241
+ mov r1, #0x89
+ strb r1, [r0, #0x0]
+_020C6D6C:
+ ldr r0, _020C6E98 ; =0x04000240
+ mov r1, #0x81
+ strb r1, [r0, #0x0]
+ b _020C6E70
+_020C6D7C:
+ ldr r0, _020C6E98 ; =0x04000240
+ mov r2, #0x81
+ ldr r1, _020C6E94 ; =0x04000241
+ strb r2, [r0, #0x0]
+ mov r2, #0x89
+ ldr r0, _020C6E8C ; =0x04000243
+ strb r2, [r1, #0x0]
+ mov r1, #0x91
+ strb r1, [r0, #0x0]
+ b _020C6E70
+_020C6DA4:
+ ldr r0, _020C6E8C ; =0x04000243
+ mov r1, #0x91
+ strb r1, [r0, #0x0]
+_020C6DB0:
+ ldr r1, _020C6E98 ; =0x04000240
+ mov r2, #0x81
+ ldr r0, _020C6E90 ; =0x04000242
+ strb r2, [r1, #0x0]
+ mov r1, #0x89
+ strb r1, [r0, #0x0]
+ b _020C6E70
+_020C6DCC:
+ ldr r1, _020C6E98 ; =0x04000240
+ mov r2, #0x81
+ ldr r0, _020C6E8C ; =0x04000243
+ strb r2, [r1, #0x0]
+ mov r1, #0x89
+ strb r1, [r0, #0x0]
+ b _020C6E70
+_020C6DE8:
+ ldr r1, _020C6E94 ; =0x04000241
+ mov r2, #0x81
+ ldr r0, _020C6E8C ; =0x04000243
+ strb r2, [r1, #0x0]
+ mov r1, #0x89
+ strb r1, [r0, #0x0]
+ b _020C6E70
+_020C6E04:
+ ldr r0, _020C6E9C ; =0x04000246
+ mov r1, #0x99
+ strb r1, [r0, #0x0]
+_020C6E10:
+ ldr r0, _020C6EA0 ; =0x04000245
+ mov r1, #0x91
+ strb r1, [r0, #0x0]
+_020C6E1C:
+ ldr r0, _020C6EA4 ; =0x04000244
+ mov r1, #0x81
+ strb r1, [r0, #0x0]
+ b _020C6E70
+_020C6E2C:
+ ldr r1, _020C6E9C ; =0x04000246
+ mov r2, #0x91
+ ldr r0, _020C6EA4 ; =0x04000244
+ strb r2, [r1, #0x0]
+ mov r1, #0x81
+ strb r1, [r0, #0x0]
+ b _020C6E70
+_020C6E48:
+ ldr r0, _020C6E9C ; =0x04000246
+ mov r1, #0x89
+ strb r1, [r0, #0x0]
+_020C6E54:
+ ldr r0, _020C6EA0 ; =0x04000245
+ mov r1, #0x81
+ strb r1, [r0, #0x0]
+ b _020C6E70
+_020C6E64:
+ ldr r0, _020C6E9C ; =0x04000246
+ mov r1, #0x81
+ strb r1, [r0, #0x0]
+_020C6E70:
+ ldr r0, _020C6E88 ; =0x021D33C4
+ ldrh r0, [r0, #0x0]
+ bl GX_VRAMCNT_SetLCDC_
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+ .balign 4
+_020C6E88: .word 0x021D33C4
+_020C6E8C: .word 0x04000243
+_020C6E90: .word 0x04000242
+_020C6E94: .word 0x04000241
+_020C6E98: .word 0x04000240
+_020C6E9C: .word 0x04000246
+_020C6EA0: .word 0x04000245
+_020C6EA4: .word 0x04000244
+
+ arm_func_start GX_VRAMCNT_SetLCDC_
+GX_VRAMCNT_SetLCDC_: ; 0x020C6EA8
+ ands r1, r0, #0x1
+ ldrne r1, _020C6F3C ; =0x04000240
+ movne r2, #0x80
+ strneb r2, [r1, #0x0]
+ ands r1, r0, #0x2
+ ldrne r1, _020C6F40 ; =0x04000241
+ movne r2, #0x80
+ strneb r2, [r1, #0x0]
+ ands r1, r0, #0x4
+ ldrne r1, _020C6F44 ; =0x04000242
+ movne r2, #0x80
+ strneb r2, [r1, #0x0]
+ ands r1, r0, #0x8
+ ldrne r1, _020C6F48 ; =0x04000243
+ movne r2, #0x80
+ strneb r2, [r1, #0x0]
+ ands r1, r0, #0x10
+ ldrne r1, _020C6F4C ; =0x04000244
+ movne r2, #0x80
+ strneb r2, [r1, #0x0]
+ ands r1, r0, #0x20
+ ldrne r1, _020C6F50 ; =0x04000245
+ movne r2, #0x80
+ strneb r2, [r1, #0x0]
+ ands r1, r0, #0x40
+ ldrne r1, _020C6F54 ; =0x04000246
+ movne r2, #0x80
+ strneb r2, [r1, #0x0]
+ ands r1, r0, #0x80
+ ldrne r1, _020C6F58 ; =0x04000248
+ movne r2, #0x80
+ strneb r2, [r1, #0x0]
+ ands r0, r0, #0x100
+ ldrne r0, _020C6F5C ; =0x04000249
+ movne r1, #0x80
+ strneb r1, [r0, #0x0]
+ bx lr
+ .balign 4
+_020C6F3C: .word 0x04000240
+_020C6F40: .word 0x04000241
+_020C6F44: .word 0x04000242
+_020C6F48: .word 0x04000243
+_020C6F4C: .word 0x04000244
+_020C6F50: .word 0x04000245
+_020C6F54: .word 0x04000246
+_020C6F58: .word 0x04000248
+_020C6F5C: .word 0x04000249
+
+ arm_func_start G2S_GetBG3CharPtr
+G2S_GetBG3CharPtr: ; 0x020C6F60
+ ldr r1, _020C6FA8 ; =0x04001000
+ ldr r0, _020C6FAC ; =0x0400100E
+ ldr r1, [r1, #0x0]
+ ldrh r2, [r0, #0x0]
+ and r0, r1, #0x7
+ cmp r0, #0x3
+ blt _020C6F8C
+ cmp r0, #0x6
+ bge _020C6FA0
+ ands r0, r2, #0x80
+ bne _020C6FA0
+_020C6F8C:
+ and r0, r2, #0x3c
+ mov r0, r0, lsr #0x2
+ mov r0, r0, lsl #0xe
+ add r0, r0, #0x6200000
+ bx lr
+_020C6FA0:
+ mov r0, #0x0
+ bx lr
+ .balign 4
+_020C6FA8: .word 0x04001000
+_020C6FAC: .word 0x0400100E
+
+ arm_func_start G2_GetBG3CharPtr
+G2_GetBG3CharPtr: ; 0x020C6FB0
+ mov r0, #0x4000000
+ ldr r1, [r0, #0x0]
+ ldr r0, _020C700C ; =0x0400000E
+ and r1, r1, #0x7
+ cmp r1, #0x3
+ ldrh r2, [r0, #0x0]
+ blt _020C6FDC
+ cmp r1, #0x6
+ bge _020C7004
+ ands r0, r2, #0x80
+ bne _020C7004
+_020C6FDC:
+ mov r0, #0x4000000
+ ldr r1, [r0, #0x0]
+ and r0, r2, #0x3c
+ and r1, r1, #0x7000000
+ mov r1, r1, lsr #0x18
+ mov r1, r1, lsl #0x10
+ add r1, r1, #0x6000000
+ mov r0, r0, lsr #0x2
+ add r0, r1, r0, lsl #0xe
+ bx lr
+_020C7004:
+ mov r0, #0x0
+ bx lr
+ .balign 4
+_020C700C: .word 0x0400000E
+
+ arm_func_start G2S_GetBG2CharPtr
+G2S_GetBG2CharPtr: ; 0x020C7010
+ ldr r1, _020C7050 ; =0x04001000
+ ldr r0, _020C7054 ; =0x0400100C
+ ldr r1, [r1, #0x0]
+ ldrh r2, [r0, #0x0]
+ and r0, r1, #0x7
+ cmp r0, #0x5
+ blt _020C7034
+ ands r0, r2, #0x80
+ bne _020C7048
+_020C7034:
+ and r0, r2, #0x3c
+ mov r0, r0, lsr #0x2
+ mov r0, r0, lsl #0xe
+ add r0, r0, #0x6200000
+ bx lr
+_020C7048:
+ mov r0, #0x0
+ bx lr
+ .balign 4
+_020C7050: .word 0x04001000
+_020C7054: .word 0x0400100C
+
+ arm_func_start G2_GetBG2CharPtr
+G2_GetBG2CharPtr: ; 0x020C7058
+ mov r0, #0x4000000
+ ldr r1, [r0, #0x0]
+ ldr r0, _020C70AC ; =0x0400000C
+ and r1, r1, #0x7
+ cmp r1, #0x5
+ ldrh r2, [r0, #0x0]
+ blt _020C707C
+ ands r0, r2, #0x80
+ bne _020C70A4
+_020C707C:
+ mov r0, #0x4000000
+ ldr r1, [r0, #0x0]
+ and r0, r2, #0x3c
+ and r1, r1, #0x7000000
+ mov r1, r1, lsr #0x18
+ mov r1, r1, lsl #0x10
+ add r1, r1, #0x6000000
+ mov r0, r0, lsr #0x2
+ add r0, r1, r0, lsl #0xe
+ bx lr
+_020C70A4:
+ mov r0, #0x0
+ bx lr
+ .balign 4
+_020C70AC: .word 0x0400000C
+
+ arm_func_start G2S_GetBG1CharPtr
+G2S_GetBG1CharPtr: ; 0x020C70B0
+ ldr r0, _020C70CC ; =0x0400100A
+ ldrh r0, [r0, #0x0]
+ and r0, r0, #0x3c
+ mov r0, r0, asr #0x2
+ mov r0, r0, lsl #0xe
+ add r0, r0, #0x6200000
+ bx lr
+ .balign 4
+_020C70CC: .word 0x0400100A
+
+ arm_func_start G2_GetBG1CharPtr
+G2_GetBG1CharPtr: ; 0x020C70D0
+ ldr r1, _020C7100 ; =0x0400000A
+ mov r0, #0x4000000
+ ldrh r1, [r1, #0x0]
+ ldr r0, [r0, #0x0]
+ and r0, r0, #0x7000000
+ mov r0, r0, lsr #0x18
+ and r1, r1, #0x3c
+ mov r0, r0, lsl #0x10
+ mov r1, r1, asr #0x2
+ add r0, r0, #0x6000000
+ add r0, r0, r1, lsl #0xe
+ bx lr
+ .balign 4
+_020C7100: .word 0x0400000A
+
+ arm_func_start G2S_GetBG0CharPtr
+G2S_GetBG0CharPtr: ; 0x020C7104
+ ldr r0, _020C7120 ; =0x04001008
+ ldrh r0, [r0, #0x0]
+ and r0, r0, #0x3c
+ mov r0, r0, asr #0x2
+ mov r0, r0, lsl #0xe
+ add r0, r0, #0x6200000
+ bx lr
+ .balign 4
+_020C7120: .word 0x04001008
+
+ arm_func_start G2_GetBG0CharPtr
+G2_GetBG0CharPtr: ; 0x020C7124
+ ldr r1, _020C7154 ; =0x04000008
+ mov r0, #0x4000000
+ ldrh r1, [r1, #0x0]
+ ldr r0, [r0, #0x0]
+ and r0, r0, #0x7000000
+ mov r0, r0, lsr #0x18
+ and r1, r1, #0x3c
+ mov r0, r0, lsl #0x10
+ mov r1, r1, asr #0x2
+ add r0, r0, #0x6000000
+ add r0, r0, r1, lsl #0xe
+ bx lr
+ .balign 4
+_020C7154: .word 0x04000008
+
+ arm_func_start G2S_GetBG3ScrPtr
+G2S_GetBG3ScrPtr: ; 0x020C7158
+ ldr r1, _020C71D0 ; =0x04001000
+ ldr r0, _020C71D4 ; =0x0400100E
+ ldr r1, [r1, #0x0]
+ ldrh r2, [r0, #0x0]
+ and r3, r1, #0x7
+ cmp r3, #0x6
+ and r0, r2, #0x1f00
+ mov r1, r0, lsr #0x8
+ addls pc, pc, r3, lsl #0x2
+ b _020C71C8
+_020C7180: ; 0x020C7180
+ b _020C719C
+_020C7184: ; 0x020C7184
+ b _020C719C
+_020C7188: ; 0x020C7188
+ b _020C719C
+_020C718C: ; 0x020C718C
+ b _020C71A8
+_020C7190: ; 0x020C7190
+ b _020C71A8
+_020C7194: ; 0x020C7194
+ b _020C71A8
+_020C7198: ; 0x020C7198
+ b _020C71C0
+_020C719C:
+ mov r0, r1, lsl #0xb
+ add r0, r0, #0x6200000
+ bx lr
+_020C71A8:
+ ands r0, r2, #0x80
+ movne r0, r1, lsl #0xe
+ addne r0, r0, #0x6200000
+ moveq r0, r1, lsl #0xb
+ addeq r0, r0, #0x6200000
+ bx lr
+_020C71C0:
+ mov r0, #0x0
+ bx lr
+_020C71C8:
+ mov r0, #0x0
+ bx lr
+ .balign 4
+_020C71D0: .word 0x04001000
+_020C71D4: .word 0x0400100E
+
+ arm_func_start G2_GetBG3ScrPtr
+G2_GetBG3ScrPtr: ; 0x020C71D8
+ ldr r0, _020C7260 ; =0x0400000E
+ mov r2, #0x4000000
+ ldr r1, [r2, #0x0]
+ ldrh r3, [r0, #0x0]
+ ldr r0, [r2, #0x0]
+ and r12, r1, #0x7
+ and r0, r0, #0x38000000
+ mov r1, r0, lsr #0x1b
+ and r0, r3, #0x1f00
+ mov r2, r1, lsl #0x10
+ cmp r12, #0x6
+ mov r1, r0, lsr #0x8
+ addls pc, pc, r12, lsl #0x2
+ b _020C7258
+_020C7210:
+ b _020C722C
+_020C7214:
+ b _020C722C
+_020C7218:
+ b _020C722C
+_020C721C:
+ b _020C7238
+_020C7220:
+ b _020C7238
+_020C7224:
+ b _020C7238
+_020C7228:
+ b _020C7250
+_020C722C:
+ add r0, r2, #0x6000000
+ add r0, r0, r1, lsl #0xb
+ bx lr
+_020C7238:
+ ands r0, r3, #0x80
+ movne r0, r1, lsl #0xe
+ addne r0, r0, #0x6000000
+ addeq r0, r2, #0x6000000
+ addeq r0, r0, r1, lsl #0xb
+ bx lr
+_020C7250:
+ mov r0, #0x0
+ bx lr
+_020C7258:
+ mov r0, #0x0
+ bx lr
+ .balign 4
+_020C7260: .word 0x0400000E
+
+ arm_func_start G2S_GetBG2ScrPtr
+G2S_GetBG2ScrPtr: ; 0x020C7264
+ ldr r1, _020C72DC ; =0x04001000
+ ldr r0, _020C72E0 ; =0x0400100C
+ ldr r1, [r1, #0x0]
+ ldrh r2, [r0, #0x0]
+ and r3, r1, #0x7
+ cmp r3, #0x6
+ and r0, r2, #0x1f00
+ mov r1, r0, lsr #0x8
+ addls pc, pc, r3, lsl #0x2
+ b _020C72D4
+_020C728C: ; 0x020C728C
+ b _020C72A8
+_020C7290: ; 0x020C7290
+ b _020C72A8
+_020C7294: ; 0x020C7294
+ b _020C72A8
+_020C7298: ; 0x020C7298
+ b _020C72A8
+_020C729C: ; 0x020C729C
+ b _020C72A8
+_020C72A0: ; 0x020C72A0
+ b _020C72B4
+_020C72A4: ; 0x020C72A4
+ b _020C72CC
+_020C72A8:
+ mov r0, r1, lsl #0xb
+ add r0, r0, #0x6200000
+ bx lr
+_020C72B4:
+ ands r0, r2, #0x80
+ movne r0, r1, lsl #0xe
+ addne r0, r0, #0x6200000
+ moveq r0, r1, lsl #0xb
+ addeq r0, r0, #0x6200000
+ bx lr
+_020C72CC:
+ mov r0, #0x0
+ bx lr
+_020C72D4:
+ mov r0, #0x0
+ bx lr
+ .balign 4
+_020C72DC: .word 0x04001000
+_020C72E0: .word 0x0400100C
+
+ arm_func_start G2_GetBG2ScrPtr
+G2_GetBG2ScrPtr: ; 0x020C72E4
+ ldr r0, _020C736C ; =0x0400000C
+ mov r2, #0x4000000
+ ldr r1, [r2, #0x0]
+ ldrh r3, [r0, #0x0]
+ ldr r0, [r2, #0x0]
+ and r12, r1, #0x7
+ and r0, r0, #0x38000000
+ mov r1, r0, lsr #0x1b
+ and r0, r3, #0x1f00
+ mov r2, r1, lsl #0x10
+ cmp r12, #0x6
+ mov r1, r0, lsr #0x8
+ addls pc, pc, r12, lsl #0x2
+ b _020C7364
+_020C731C:
+ b _020C7338
+_020C7320:
+ b _020C7338
+_020C7324:
+ b _020C7338
+_020C7328:
+ b _020C7338
+_020C732C:
+ b _020C7338
+_020C7330:
+ b _020C7344
+_020C7334:
+ b _020C735C
+_020C7338:
+ add r0, r2, #0x6000000
+ add r0, r0, r1, lsl #0xb
+ bx lr
+_020C7344:
+ ands r0, r3, #0x80
+ movne r0, r1, lsl #0xe
+ addne r0, r0, #0x6000000
+ addeq r0, r2, #0x6000000
+ addeq r0, r0, r1, lsl #0xb
+ bx lr
+_020C735C:
+ mov r0, #0x6000000
+ bx lr
+_020C7364:
+ mov r0, #0x0
+ bx lr
+ .balign 4
+_020C736C: .word 0x0400000C
+
+ arm_func_start G2S_GetBG1ScrPtr
+G2S_GetBG1ScrPtr: ; 0x020C7370
+ ldr r0, _020C738C ; =0x0400100A
+ ldrh r0, [r0, #0x0]
+ and r0, r0, #0x1f00
+ mov r0, r0, asr #0x8
+ mov r0, r0, lsl #0xb
+ add r0, r0, #0x6200000
+ bx lr
+ .balign 4
+_020C738C: .word 0x0400100A
+
+ arm_func_start G2_GetBG1ScrPtr
+G2_GetBG1ScrPtr: ; 0x020C7390
+ ldr r1, _020C73C0 ; =0x0400000A
+ mov r0, #0x4000000
+ ldrh r1, [r1, #0x0]
+ ldr r0, [r0, #0x0]
+ and r0, r0, #0x38000000
+ mov r0, r0, lsr #0x1b
+ and r1, r1, #0x1f00
+ mov r0, r0, lsl #0x10
+ mov r1, r1, asr #0x8
+ add r0, r0, #0x6000000
+ add r0, r0, r1, lsl #0xb
+ bx lr
+ .balign 4
+_020C73C0: .word 0x0400000A
+
+ arm_func_start G2S_GetBG0ScrPtr
+G2S_GetBG0ScrPtr: ; 0x020C73C4
+ ldr r0, _020C73E0 ; =0x04001008
+ ldrh r0, [r0, #0x0]
+ and r0, r0, #0x1f00
+ mov r0, r0, asr #0x8
+ mov r0, r0, lsl #0xb
+ add r0, r0, #0x6200000
+ bx lr
+ .balign 4
+_020C73E0: .word 0x04001008
+
+ arm_func_start G2_GetBG0ScrPtr
+G2_GetBG0ScrPtr: ; 0x020C73E4
+ ldr r1, _020C7414 ; =0x04000008
+ mov r0, #0x4000000
+ ldrh r1, [r1, #0x0]
+ ldr r0, [r0, #0x0]
+ and r0, r0, #0x38000000
+ mov r0, r0, lsr #0x1b
+ and r1, r1, #0x1f00
+ mov r0, r0, lsl #0x10
+ mov r1, r1, asr #0x8
+ add r0, r0, #0x6000000
+ add r0, r0, r1, lsl #0xb
+ bx lr
+ .balign 4
+_020C7414: .word 0x04000008
+
+ arm_func_start G2x_ChangeBlendBrightness_
+G2x_ChangeBlendBrightness_: ; 0x020C7418
+ cmp r1, #0x0
+ ldrh r3, [r0, #0x0]
+ bge _020C7444
+ and r2, r3, #0xc0
+ cmp r2, #0x80
+ biceq r2, r3, #0xc0
+ orreq r2, r2, #0xc0
+ streqh r2, [r0, #0x0]
+ rsb r1, r1, #0x0
+ strh r1, [r0, #0x4]
+ bx lr
+_020C7444:
+ and r2, r3, #0xc0
+ cmp r2, #0xc0
+ biceq r2, r3, #0xc0
+ orreq r2, r2, #0x80
+ streqh r2, [r0, #0x0]
+ strh r1, [r0, #0x4]
+ bx lr
+
+ arm_func_start G2x_SetBlendBrightnessExt_
+G2x_SetBlendBrightnessExt_: ; 0x020C7460
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldr lr, [sp, #0x8]
+ ldr r12, [sp, #0xc]
+ orr r3, r3, lr, lsl #0x8
+ cmp r12, #0x0
+ orrge r1, r1, #0x80
+ strh r3, [r0, #0x2]
+ orrge r1, r1, r2, lsl #0x8
+ strgeh r1, [r0, #0x0]
+ strgeh r12, [r0, #0x4]
+ addge sp, sp, #0x4
+ ldmgeia sp!, {lr}
+ bxge lr
+ orr r1, r1, #0xc0
+ orr r1, r1, r2, lsl #0x8
+ strh r1, [r0, #0x0]
+ rsb r1, r12, #0x0
+ strh r1, [r0, #0x4]
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+
+ arm_func_start G2x_SetBlendBrightness_
+G2x_SetBlendBrightness_: ; 0x020C74B8
+ cmp r2, #0x0
+ orrlt r1, r1, #0xc0
+ strlth r1, [r0, #0x0]
+ rsblt r1, r2, #0x0
+ strlth r1, [r0, #0x4]
+ orrge r1, r1, #0x80
+ strgeh r1, [r0, #0x0]
+ strgeh r2, [r0, #0x4]
+ bx lr
+
+ arm_func_start G2x_SetBlendAlpha_
+G2x_SetBlendAlpha_: ; 0x020C74DC
+ ldr r12, [sp, #0x0]
+ orr r1, r1, #0x40
+ orr r2, r1, r2, lsl #0x8
+ orr r1, r3, r12, lsl #0x8
+ orr r1, r2, r1, lsl #0x10
+ str r1, [r0, #0x0]
+ bx lr
+
+ arm_func_start G2x_SetBGyAffine_
+G2x_SetBGyAffine_: ; 0x020C74F8
+ stmdb sp!, {r4-r6,lr}
+ ldr r5, [r1, #0x0]
+ ldr r4, [r1, #0x4]
+ mov r12, r5, lsl #0xc
+ mov lr, r4, lsl #0xc
+ mov r5, r12, asr #0x10
+ mov r4, lr, asr #0x10
+ mov r12, r5, lsl #0x10
+ mov lr, r4, lsl #0x10
+ mov r5, r12, lsr #0x10
+ mov r4, lr, lsr #0x10
+ orr r4, r5, r4, lsl #0x10
+ str r4, [r0, #0x0]
+ ldr r5, [r1, #0x8]
+ ldr r4, [r1, #0xc]
+ mov r12, r5, lsl #0xc
+ mov lr, r4, lsl #0xc
+ mov r5, r12, asr #0x10
+ mov r4, lr, asr #0x10
+ mov r12, r5, lsl #0x10
+ mov lr, r4, lsl #0x10
+ ldr r4, [sp, #0x14]
+ ldr r6, [sp, #0x10]
+ mov r12, r12, lsr #0x10
+ mov r5, lr, lsr #0x10
+ orr r5, r12, r5, lsl #0x10
+ str r5, [r0, #0x4]
+ ldr r12, [r1, #0x4]
+ sub r5, r4, r3
+ ldr r4, [r1, #0xc]
+ mul lr, r12, r5
+ mul r5, r4, r5
+ ldr r12, [r1, #0x0]
+ sub r6, r6, r2
+ ldr r4, [r1, #0x8]
+ mla r1, r12, r6, lr
+ mla r5, r4, r6, r5
+ add r1, r1, r2, lsl #0xc
+ add r2, r5, r3, lsl #0xc
+ mov r1, r1, asr #0x4
+ str r1, [r0, #0x8]
+ mov r1, r2, asr #0x4
+ str r1, [r0, #0xc]
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+
+ arm_func_start G3B_End
+G3B_End: ; 0x020C75AC
+ ldr r1, [r0, #0x0]
+ mov r2, #0x41
+ str r2, [r1, #0x0]
+ ldr r1, [r0, #0x4]
+ str r1, [r0, #0x0]
+ ldr r1, [r0, #0x0]
+ add r1, r1, #0x4
+ str r1, [r0, #0x4]
+ bx lr
+
+ arm_func_start G3B_Begin
+G3B_Begin: ; 0x020C75D0
+ ldr r2, [r0, #0x0]
+ mov r3, #0x40
+ str r3, [r2, #0x0]
+ ldr r2, [r0, #0x4]
+ str r1, [r2, #0x0]
+ ldr r1, [r0, #0x4]
+ add r1, r1, #0x4
+ str r1, [r0, #0x0]
+ ldr r1, [r0, #0x0]
+ add r1, r1, #0x4
+ str r1, [r0, #0x4]
+ bx lr
+
+ arm_func_start G3B_LightColor
+G3B_LightColor: ; 0x020C7600
+ ldr r3, [r0, #0x0]
+ mov r12, #0x33
+ str r12, [r3, #0x0]
+ ldr r3, [r0, #0x4]
+ orr r1, r2, r1, lsl #0x1e
+ str r1, [r3, #0x0]
+ ldr r1, [r0, #0x4]
+ add r1, r1, #0x4
+ str r1, [r0, #0x0]
+ ldr r1, [r0, #0x0]
+ add r1, r1, #0x4
+ str r1, [r0, #0x4]
+ bx lr
+
+ arm_func_start G3B_LightVector
+G3B_LightVector: ; 0x020C7634
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ ldr ip, _020C7694 ; =0x000003FF
+ ldrsh r4, [sp, #0x10]
+ ldr lr, [r0, #0x0]
+ mov r5, #0x32
+ str r5, [lr, #0x0]
+ and lr, r12, r2, asr #0x3
+ and r2, r12, r3, asr #0x3
+ and r3, r12, r4, asr #0x3
+ orr r2, lr, r2, lsl #0xa
+ orr r3, r2, r3, lsl #0x14
+ ldr r2, [r0, #0x4]
+ orr r1, r3, r1, lsl #0x1e
+ str r1, [r2, #0x0]
+ ldr r1, [r0, #0x4]
+ add r1, r1, #0x4
+ str r1, [r0, #0x0]
+ ldr r1, [r0, #0x0]
+ add r1, r1, #0x4
+ str r1, [r0, #0x4]
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,lr}
+ bx lr
+ .balign 4
+_020C7694: .word 0x000003FF
+
+ arm_func_start G3B_MaterialColorSpecEmi
+G3B_MaterialColorSpecEmi: ; 0x020C7698
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldr r12, [r0, #0x0]
+ mov lr, #0x31
+ cmp r3, #0x0
+ movne r3, #0x1
+ str lr, [r12, #0x0]
+ orr r2, r1, r2, lsl #0x10
+ moveq r3, #0x0
+ ldr r1, [r0, #0x4]
+ orr r2, r2, r3, lsl #0xf
+ str r2, [r1, #0x0]
+ ldr r1, [r0, #0x4]
+ add r1, r1, #0x4
+ str r1, [r0, #0x0]
+ ldr r1, [r0, #0x0]
+ add r1, r1, #0x4
+ str r1, [r0, #0x4]
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+
+ arm_func_start G3B_MaterialColorDiffAmb
+G3B_MaterialColorDiffAmb: ; 0x020C76EC
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldr r12, [r0, #0x0]
+ mov lr, #0x30
+ cmp r3, #0x0
+ movne r3, #0x1
+ str lr, [r12, #0x0]
+ orr r2, r1, r2, lsl #0x10
+ moveq r3, #0x0
+ ldr r1, [r0, #0x4]
+ orr r2, r2, r3, lsl #0xf
+ str r2, [r1, #0x0]
+ ldr r1, [r0, #0x4]
+ add r1, r1, #0x4
+ str r1, [r0, #0x0]
+ ldr r1, [r0, #0x0]
+ add r1, r1, #0x4
+ str r1, [r0, #0x4]
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+
+ arm_func_start G3B_PolygonAttr
+G3B_PolygonAttr: ; 0x020C7740
+ orr r1, r1, r2, lsl #0x4
+ ldr r2, [r0, #0x0]
+ mov r12, #0x29
+ str r12, [r2, #0x0]
+ ldr r2, [sp, #0x8]
+ orr r1, r1, r3, lsl #0x6
+ ldr r3, [sp, #0x0]
+ orr r1, r2, r1
+ ldr r12, [sp, #0x4]
+ orr r2, r1, r3, lsl #0x18
+ ldr r1, [r0, #0x4]
+ orr r2, r2, r12, lsl #0x10
+ str r2, [r1, #0x0]
+ ldr r1, [r0, #0x4]
+ add r1, r1, #0x4
+ str r1, [r0, #0x0]
+ ldr r1, [r0, #0x0]
+ add r1, r1, #0x4
+ str r1, [r0, #0x4]
+ bx lr
+
+ arm_func_start G3B_Vtx
+G3B_Vtx: ; 0x020C7790
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldr r12, [r0, #0x0]
+ mov lr, #0x23
+ str lr, [r12, #0x0]
+ mov r1, r1, lsl #0x10
+ mov r2, r2, lsl #0x10
+ mov lr, r1, lsr #0x10
+ mov r12, r2, lsr #0x10
+ mov r1, r3, lsl #0x10
+ ldr r2, [r0, #0x4]
+ orr r3, lr, r12, lsl #0x10
+ str r3, [r2, #0x0]
+ ldr r2, [r0, #0x4]
+ mov r1, r1, lsr #0x10
+ str r1, [r2, #0x4]
+ ldr r1, [r0, #0x4]
+ add r1, r1, #0x8
+ str r1, [r0, #0x0]
+ ldr r1, [r0, #0x0]
+ add r1, r1, #0x4
+ str r1, [r0, #0x4]
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+
+ arm_func_start G3B_Normal
+G3B_Normal: ; 0x020C77F4
+ stmdb sp!, {r4,lr}
+ ldr ip, _020C7844 ; =0x000003FF
+ ldr lr, [r0, #0x0]
+ mov r4, #0x21
+ str r4, [lr, #0x0]
+ and lr, r12, r1, asr #0x3
+ and r1, r12, r2, asr #0x3
+ and r3, r12, r3, asr #0x3
+ orr r2, lr, r1, lsl #0xa
+ ldr r1, [r0, #0x4]
+ orr r2, r2, r3, lsl #0x14
+ str r2, [r1, #0x0]
+ ldr r1, [r0, #0x4]
+ add r1, r1, #0x4
+ str r1, [r0, #0x0]
+ ldr r1, [r0, #0x0]
+ add r1, r1, #0x4
+ str r1, [r0, #0x4]
+ ldmia sp!, {r4,lr}
+ bx lr
+ .balign 4
+_020C7844: .word 0x000003FF
+
+ arm_func_start G3B_Color
+G3B_Color: ; 0x020C7848
+ ldr r2, [r0, #0x0]
+ mov r3, #0x20
+ str r3, [r2, #0x0]
+ ldr r2, [r0, #0x4]
+ str r1, [r2, #0x0]
+ ldr r1, [r0, #0x4]
+ add r1, r1, #0x4
+ str r1, [r0, #0x0]
+ ldr r1, [r0, #0x0]
+ add r1, r1, #0x4
+ str r1, [r0, #0x4]
+ bx lr
+
+ arm_func_start G3B_LoadMtx44
+G3B_LoadMtx44: ; 0x020C7878
+ stmdb sp!, {r4,lr}
+ mov r4, r0
+ bl G3BS_LoadMtx44
+ ldr r0, [r4, #0x4]
+ add r0, r0, #0x40
+ str r0, [r4, #0x0]
+ ldr r0, [r4, #0x0]
+ add r0, r0, #0x4
+ str r0, [r4, #0x4]
+ ldmia sp!, {r4,lr}
+ bx lr
+
+ arm_func_start G3B_PopMtx
+G3B_PopMtx: ; 0x020C78A4
+ ldr r2, [r0, #0x0]
+ mov r3, #0x12
+ str r3, [r2, #0x0]
+ ldr r2, [r0, #0x4]
+ str r1, [r2, #0x0]
+ ldr r1, [r0, #0x4]
+ add r1, r1, #0x4
+ str r1, [r0, #0x0]
+ ldr r1, [r0, #0x0]
+ add r1, r1, #0x4
+ str r1, [r0, #0x4]
+ bx lr
+
+ arm_func_start G3B_PushMtx
+G3B_PushMtx: ; 0x020C78D4
+ ldr r1, [r0, #0x0]
+ mov r2, #0x11
+ str r2, [r1, #0x0]
+ ldr r1, [r0, #0x4]
+ str r1, [r0, #0x0]
+ ldr r1, [r0, #0x0]
+ add r1, r1, #0x4
+ str r1, [r0, #0x4]
+ bx lr
+
+ arm_func_start G3BS_LoadMtx44
+G3BS_LoadMtx44: ; 0x020C78F8
+ mov r3, r0
+ ldr r0, [r3, #0x0]
+ mov r2, #0x16
+ str r2, [r0, #0x0]
+ mov r0, r1
+ ldr ip, _020C7918 ; =MI_Copy64B
+ ldr r1, [r3, #0x4]
+ bx r12
+ .balign 4
+_020C7918: .word MI_Copy64B
+
+ arm_func_start G3_MultMtx33
+G3_MultMtx33: ; 0x020C791C
+ ldr r1, _020C7930 ; =0x04000400
+ mov r2, #0x1a
+ ldr ip, _020C7934 ; =MI_Copy36B
+ str r2, [r1, #0x0]
+ bx r12
+ .balign 4
+_020C7930: .word 0x04000400
+_020C7934: .word MI_Copy36B
+
+ arm_func_start G3_MultMtx43
+G3_MultMtx43:
+ ldr r1, _020C794C ; =0x04000400
+ mov r2, #0x19
+ ldr ip, _020C7950 ; =GX_SendFifo48B
+ str r2, [r1, #0x0]
+ bx r12
+ .balign 4
+_020C794C: .word 0x04000400
+_020C7950: .word GX_SendFifo48B
+
+ arm_func_start G3_LoadMtx43
+G3_LoadMtx43: ; 0x020C7954
+ ldr r1, _020C7968 ; =0x04000400
+ mov r2, #0x17
+ ldr ip, _020C796C ; =GX_SendFifo48B
+ str r2, [r1, #0x0]
+ bx r12
+ .balign 4
+_020C7968: .word 0x04000400
+_020C796C: .word GX_SendFifo48B
+
+ arm_func_start GXi_NopClearFifo128_
+GXi_NopClearFifo128_: ; 0x020C7970
+ mov r1, #0x0
+ mov r2, #0x0
+ mov r3, #0x0
+ mov r12, #0x0
+ stmia r0, {r1-r3,r12}
+ stmia r0, {r1-r3,r12}
+ stmia r0, {r1-r3,r12}
+ stmia r0, {r1-r3,r12}
+ stmia r0, {r1-r3,r12}
+ stmia r0, {r1-r3,r12}
+ stmia r0, {r1-r3,r12}
+ stmia r0, {r1-r3,r12}
+ stmia r0, {r1-r3,r12}
+ stmia r0, {r1-r3,r12}
+ stmia r0, {r1-r3,r12}
+ stmia r0, {r1-r3,r12}
+ stmia r0, {r1-r3,r12}
+ stmia r0, {r1-r3,r12}
+ stmia r0, {r1-r3,r12}
+ stmia r0, {r1-r3,r12}
+ stmia r0, {r1-r3,r12}
+ stmia r0, {r1-r3,r12}
+ stmia r0, {r1-r3,r12}
+ stmia r0, {r1-r3,r12}
+ stmia r0, {r1-r3,r12}
+ stmia r0, {r1-r3,r12}
+ stmia r0, {r1-r3,r12}
+ stmia r0, {r1-r3,r12}
+ stmia r0, {r1-r3,r12}
+ stmia r0, {r1-r3,r12}
+ stmia r0, {r1-r3,r12}
+ stmia r0, {r1-r3,r12}
+ stmia r0, {r1-r3,r12}
+ stmia r0, {r1-r3,r12}
+ stmia r0, {r1-r3,r12}
+ stmia r0, {r1-r3,r12}
+ bx lr
+
+ arm_func_start G3X_SetHOffset
+G3X_SetHOffset: ; 0x020C7A04
+ ldr r1, _020C7A10 ; =0x04000010
+ str r0, [r1, #0x0]
+ bx lr
+ .balign 4
+_020C7A10: .word 0x04000010
+
+ arm_func_start G3X_GetBoxTestResult
+G3X_GetBoxTestResult: ; 0x020C7A14
+ ldr r2, _020C7A38 ; =0x04000600
+ ldr r1, [r2, #0x0]
+ ands r1, r1, #0x1
+ ldreq r1, [r2, #0x0]
+ mvnne r0, #0x0
+ andeq r1, r1, #0x2
+ streq r1, [r0, #0x0]
+ moveq r0, #0x0
+ bx lr
+ .balign 4
+_020C7A38: .word 0x04000600
+
+ arm_func_start G3X_GetMtxStackLevelPJ
+G3X_GetMtxStackLevelPJ:
+ ldr r2, _020C7A64 ; =0x04000600
+ ldr r1, [r2, #0x0]
+ ands r1, r1, #0x4000
+ ldreq r1, [r2, #0x0]
+ mvnne r0, #0x0
+ andeq r1, r1, #0x2000
+ moveq r1, r1, lsr #0xd
+ streq r1, [r0, #0x0]
+ moveq r0, #0x0
+ bx lr
+ .balign 4
+_020C7A64: .word 0x04000600
+
+ arm_func_start G3X_GetMtxStackLevelPV
+G3X_GetMtxStackLevelPV:
+ ldr r2, _020C7A90 ; =0x04000600
+ ldr r1, [r2, #0x0]
+ ands r1, r1, #0x4000
+ ldreq r1, [r2, #0x0]
+ mvnne r0, #0x0
+ andeq r1, r1, #0x1f00
+ moveq r1, r1, lsr #0x8
+ streq r1, [r0, #0x0]
+ moveq r0, #0x0
+ bx lr
+ .balign 4
+_020C7A90: .word 0x04000600
+
+ arm_func_start G3X_InitTable
+G3X_InitTable: ; 0x020C7A94
+ stmdb sp!, {lr}
+ sub sp, sp, #0xc
+ ldr r0, _020C7B2C ; =0x02106814
+ mvn r1, #0x0
+ ldr r0, [r0, #0x0]
+ cmp r0, r1
+ beq _020C7AE4
+ mov r2, #0x0
+ str r2, [sp, #0x0]
+ ldr r1, _020C7B30 ; =0x04000330
+ mov r3, #0x10
+ str r2, [sp, #0x4]
+ bl MI_DmaFill32Async
+ ldr r0, _020C7B2C ; =0x02106814
+ ldr r1, _020C7B34 ; =0x04000360
+ ldr r0, [r0, #0x0]
+ mov r2, #0x0
+ mov r3, #0x60
+ bl MI_DmaFill32
+ b _020C7B04
+_020C7AE4:
+ ldr r1, _020C7B30 ; =0x04000330
+ mov r0, #0x0
+ mov r2, #0x10
+ bl MIi_CpuClear32
+ ldr r1, _020C7B34 ; =0x04000360
+ mov r0, #0x0
+ mov r2, #0x60
+ bl MIi_CpuClear32
+_020C7B04:
+ mov r2, #0x0
+ ldr r0, _020C7B38 ; =0x040004D0
+ mov r1, r2
+_020C7B10:
+ add r2, r2, #0x1
+ str r1, [r0, #0x0]
+ cmp r2, #0x20
+ blt _020C7B10
+ add sp, sp, #0xc
+ ldmia sp!, {lr}
+ bx lr
+ .balign 4
+_020C7B2C: .word 0x02106814
+_020C7B30: .word 0x04000330
+_020C7B34: .word 0x04000360
+_020C7B38: .word 0x040004D0
+
+ arm_func_start G3X_SetClearColor
+G3X_SetClearColor: ; 0x020C7B3C
+ orr r0, r0, r1, lsl #0x10
+ ldr r12, [sp, #0x0]
+ orr r3, r0, r3, lsl #0x18
+ cmp r12, #0x0
+ ldr r1, _020C7B64 ; =0x04000350
+ orrne r3, r3, #0x8000
+ ldr r0, _020C7B68 ; =0x04000354
+ str r3, [r1, #0x0]
+ strh r2, [r0, #0x0]
+ bx lr
+ .balign 4
+_020C7B64: .word 0x04000350
+_020C7B68: .word 0x04000354
+
+ arm_func_start G3X_SetFogTable
+G3X_SetFogTable: ; 0x020C7B6C
+ ldr ip, _020C7B78 ; =0x020CE2C4
+ ldr r1, _020C7B7C ; =0x04000360
+ bx r12
+ .balign 4
+_020C7B78: .word 0x020CE2C4
+_020C7B7C: .word 0x04000360
+
+ arm_func_start G3X_SetEdgeColorTable
+G3X_SetEdgeColorTable: ; 0x020C7B80
+ ldr ip, _020C7B90 ; =MIi_CpuCopy16
+ ldr r1, _020C7B94 ; =0x04000330
+ mov r2, #0x10
+ bx r12
+ .balign 4
+_020C7B90: .word MIi_CpuCopy16
+_020C7B94: .word 0x04000330
+
+ arm_func_start G3X_GetVectorMtx
+G3X_GetVectorMtx:
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldr r2, _020C7BD8 ; =0x04000600
+ mov r1, r0
+ ldr r0, [r2, #0x0]
+ ands r0, r0, #0x8000000
+ addne sp, sp, #0x4
+ mvnne r0, #0x0
+ ldmneia sp!, {lr}
+ bxne lr
+ ldr r0, _020C7BDC ; =0x04000680
+ bl MI_Copy36B
+_020C7BC8: ; 0x020C7BC8
+ mov r0, #0x0
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+ .balign 4
+_020C7BD8: .word 0x04000600
+_020C7BDC: .word 0x04000680
+
+ arm_func_start G3X_GetClipMtx
+G3X_GetClipMtx:
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldr r2, _020C7C20 ; =0x04000600
+ mov r1, r0
+ ldr r0, [r2, #0x0]
+ ands r0, r0, #0x8000000
+ addne sp, sp, #0x4
+ mvnne r0, #0x0
+ ldmneia sp!, {lr}
+ bxne lr
+ ldr r0, _020C7C24 ; =0x04000640
+ bl MI_Copy64B
+_020C7C10: ; 0x020C7C10
+ mov r0, #0x0
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+ .balign 4
+_020C7C20: .word 0x04000600
+_020C7C24: .word 0x04000640
+
+ arm_func_start G3X_SetFog
+G3X_SetFog: ; 0x020C7C28
+ cmp r0, #0x0
+ ldreq r2, _020C7C70 ; =0x04000060
+ ldreq r0, _020C7C74 ; =0x0000CF7F
+ ldreqh r1, [r2, #0x0]
+ andeq r0, r1, r0
+ streqh r0, [r2, #0x0]
+ bxeq lr
+ ldr r0, _020C7C78 ; =0x0400035C
+ ldr ip, _020C7C70 ; =0x04000060
+ strh r3, [r0, #0x0]
+ mov r0, r2, lsl #0x8
+ orr r0, r0, r1, lsl #0x6
+ ldrh r3, [r12, #0x0]
+ orr r0, r0, #0x80
+ bic r1, r3, #0x3f40
+ orr r0, r1, r0
+ strh r0, [r12, #0x0]
+ bx lr
+ .balign 4
+_020C7C70: .word 0x04000060
+_020C7C74: .word 0x0000CF7F
+_020C7C78: .word 0x0400035C
+
+ arm_func_start G3X_ResetMtxStack_2
+G3X_ResetMtxStack_2: ; 0x020C7C7C
+ stmdb sp!, {r4,lr}
+ sub sp, sp, #0x8
+ ldr r1, _020C7D18 ; =0x04000600
+ ldr r0, [r1, #0x0]
+ orr r0, r0, #0x8000
+ str r0, [r1, #0x0]
+ add r4, sp, #0x0
+_020C7C98:
+ mov r0, r4
+ bl G3X_GetMtxStackLevelPV
+_020C7CA0: ; 0x020C7CA0
+ cmp r0, #0x0
+ bne _020C7C98
+ add r4, sp, #0x4
+_020C7CAC:
+ mov r0, r4
+ bl G3X_GetMtxStackLevelPJ
+_020C7CB4: ; 0x020C7CB4
+ cmp r0, #0x0
+ bne _020C7CAC
+ ldr r2, _020C7D1C ; =0x04000440
+ mov r1, #0x3
+ str r1, [r2, #0x0]
+ ldr r0, _020C7D20 ; =0x04000454
+ mov r1, #0x0
+ str r1, [r0, #0x0]
+ str r1, [r2, #0x0]
+ ldr r1, [sp, #0x4]
+ cmp r1, #0x0
+ ldrne r0, _020C7D24 ; =0x04000448
+ strne r1, [r0, #0x0]
+ ldr r0, _020C7D1C ; =0x04000440
+ mov r1, #0x2
+ str r1, [r0, #0x0]
+ ldr r2, [sp, #0x0]
+ ldr r1, _020C7D24 ; =0x04000448
+ ldr r0, _020C7D20 ; =0x04000454
+ str r2, [r1, #0x0]
+ mov r1, #0x0
+ str r1, [r0, #0x0]
+ add sp, sp, #0x8
+ ldmia sp!, {r4,lr}
+ bx lr
+ .balign 4
+_020C7D18: .word 0x04000600
+_020C7D1C: .word 0x04000440
+_020C7D20: .word 0x04000454
+_020C7D24: .word 0x04000448
+
+ arm_func_start G3X_InitMtxStack
+G3X_InitMtxStack: ; 0x020C7D28
+ stmdb sp!, {r4,lr}
+ sub sp, sp, #0x8
+ ldr r1, _020C7DC8 ; =0x04000600
+ ldr r0, [r1, #0x0]
+ orr r0, r0, #0x8000
+ str r0, [r1, #0x0]
+ add r4, sp, #0x0
+_020C7D44:
+ mov r0, r4
+ bl G3X_GetMtxStackLevelPV
+_020C7D4C: ; 0x020C7D4C
+ cmp r0, #0x0
+ bne _020C7D44
+ add r4, sp, #0x4
+_020C7D58:
+ mov r0, r4
+ bl G3X_GetMtxStackLevelPJ
+_020C7D60: ; 0x020C7D60
+ cmp r0, #0x0
+ bne _020C7D58
+ ldr r2, _020C7DCC ; =0x04000440
+ mov r1, #0x3
+ str r1, [r2, #0x0]
+ ldr r0, _020C7DD0 ; =0x04000454
+ mov r1, #0x0
+ str r1, [r0, #0x0]
+ str r1, [r2, #0x0]
+ ldr r1, [sp, #0x4]
+ ldr r2, _020C7DD0 ; =0x04000454
+ cmp r1, #0x0
+ ldrne r0, _020C7DD4 ; =0x04000448
+ mov r3, #0x0
+ strne r1, [r0, #0x0]
+ ldr r0, _020C7DCC ; =0x04000440
+ str r3, [r2, #0x0]
+ mov r1, #0x2
+ str r1, [r0, #0x0]
+ ldr r1, [sp, #0x0]
+ ldr r0, _020C7DD4 ; =0x04000448
+ str r1, [r0, #0x0]
+ str r3, [r2, #0x0]
+ add sp, sp, #0x8
+ ldmia sp!, {r4,lr}
+ bx lr
+ .balign 4
+_020C7DC8: .word 0x04000600
+_020C7DCC: .word 0x04000440
+_020C7DD0: .word 0x04000454
+_020C7DD4: .word 0x04000448
+
+ arm_func_start G3X_ClearFifo
+G3X_ClearFifo: ; 0x020C7DD8
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldr r0, _020C7E04 ; =0x04000400
+ bl GXi_NopClearFifo128_
+ ldr r1, _020C7E08 ; =0x04000600
+_020C7DEC:
+ ldr r0, [r1, #0x0]
+ ands r0, r0, #0x8000000
+ bne _020C7DEC
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+ .balign 4
+_020C7E04: .word 0x04000400
+_020C7E08: .word 0x04000600
+
+ arm_func_start G3X_ResetMtxStack
+G3X_ResetMtxStack: ; 0x020C7E0C
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldr r2, _020C7E7C ; =0x04000600
+_020C7E18:
+ ldr r0, [r2, #0x0]
+ ands r0, r0, #0x8000000
+ bne _020C7E18
+ ldr r0, [r2, #0x0]
+ ldr r1, _020C7E80 ; =0x04000060
+ orr r0, r0, #0x8000
+ str r0, [r2, #0x0]
+ ldrh r0, [r1, #0x0]
+ orr r0, r0, #0x2000
+ strh r0, [r1, #0x0]
+ ldrh r0, [r1, #0x0]
+ orr r0, r0, #0x1000
+ strh r0, [r1, #0x0]
+ bl G3X_ResetMtxStack_2
+ ldr r2, _020C7E84 ; =0x001F0080
+ ldr r0, _020C7E88 ; =0x040004A4
+ ldr r1, _020C7E8C ; =0x040004A8
+ str r2, [r0, #0x0]
+ mov r2, #0x0
+ ldr r0, _020C7E90 ; =0x040004AC
+ str r2, [r1, #0x0]
+ str r2, [r0, #0x0]
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+ .balign 4
+_020C7E7C: .word 0x04000600
+_020C7E80: .word 0x04000060
+_020C7E84: .word 0x001F0080
+_020C7E88: .word 0x040004A4
+_020C7E8C: .word 0x040004A8
+_020C7E90: .word 0x040004AC
+
+ arm_func_start G3X_Init
+G3X_Init: ; 0x020C7E94
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ bl G3X_ClearFifo
+ ldr r0, _020C7FAC ; =0x04000504
+ mov r1, #0x0
+ str r1, [r0, #0x0]
+ ldr r1, _020C7FB0 ; =0x04000600
+_020C7EB0:
+ ldr r0, [r1, #0x0]
+ ands r0, r0, #0x8000000
+ bne _020C7EB0
+ ldr r0, _020C7FB4 ; =0x04000060
+ mov r3, #0x0
+ strh r3, [r0, #0x0]
+ ldr r2, _020C7FB8 ; =0x04000010
+ str r3, [r1, #0x0]
+ str r3, [r2, #0x0]
+ ldrh r12, [r0, #0x0]
+ ldr r2, _020C7FBC ; =0xFFFFCFFD
+ ldr r3, _020C7FC0 ; =0x0000CFFB
+ orr r12, r12, #0x2000
+ strh r12, [r0, #0x0]
+ ldrh r12, [r0, #0x0]
+ orr r12, r12, #0x1000
+ strh r12, [r0, #0x0]
+ ldrh r12, [r0, #0x0]
+ and r2, r12, r2
+ strh r2, [r0, #0x0]
+ ldrh r2, [r0, #0x0]
+ bic r2, r2, #0x3000
+ orr r2, r2, #0x10
+ strh r2, [r0, #0x0]
+ ldrh r2, [r0, #0x0]
+ and r2, r2, r3
+ strh r2, [r0, #0x0]
+ ldr r0, [r1, #0x0]
+ orr r0, r0, #0x8000
+ str r0, [r1, #0x0]
+ ldr r0, [r1, #0x0]
+ bic r0, r0, #0xc0000000
+ orr r0, r0, #0x80000000
+ str r0, [r1, #0x0]
+ bl G3X_InitMtxStack
+ ldr r0, _020C7FC4 ; =0x04000350
+ mov r3, #0x0
+ ldr r2, _020C7FC8 ; =0x00007FFF
+ ldr r1, _020C7FCC ; =0x04000354
+ str r3, [r0, #0x0]
+ ldr r0, _020C7FD0 ; =0x04000356
+ strh r2, [r1, #0x0]
+ ldr r1, _020C7FD4 ; =0x04000358
+ strh r3, [r0, #0x0]
+ ldr r0, _020C7FD8 ; =0x0400035C
+ str r3, [r1, #0x0]
+ ldr r1, _020C7FDC ; =0x04000008
+ strh r3, [r0, #0x0]
+ ldrh r0, [r1, #0x0]
+ bic r0, r0, #0x3
+ strh r0, [r1, #0x0]
+ bl G3X_InitTable
+ ldr r2, _020C7FE0 ; =0x001F0080
+ ldr r0, _020C7FE4 ; =0x040004A4
+ ldr r1, _020C7FE8 ; =0x040004A8
+ str r2, [r0, #0x0]
+ mov r2, #0x0
+ ldr r0, _020C7FEC ; =0x040004AC
+ str r2, [r1, #0x0]
+ str r2, [r0, #0x0]
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+ .balign 4
+_020C7FAC: .word 0x04000504
+_020C7FB0: .word 0x04000600
+_020C7FB4: .word 0x04000060
+_020C7FB8: .word 0x04000010
+_020C7FBC: .word 0xFFFFCFFD
+_020C7FC0: .word 0x0000CFFB
+_020C7FC4: .word 0x04000350
+_020C7FC8: .word 0x00007FFF
+_020C7FCC: .word 0x04000354
+_020C7FD0: .word 0x04000356
+_020C7FD4: .word 0x04000358
+_020C7FD8: .word 0x0400035C
+_020C7FDC: .word 0x04000008
+_020C7FE0: .word 0x001F0080
+_020C7FE4: .word 0x040004A4
+_020C7FE8: .word 0x040004A8
+_020C7FEC: .word 0x040004AC
+
+ arm_func_start G3_RotZ
+G3_RotZ: ; 0x020C7FF0
+ ldr r3, _020C8028 ; =0x04000468
+ mov r2, #0x0
+ str r1, [r3, #0x0]
+ str r0, [r3, #0x0]
+ str r2, [r3, #0x0]
+ rsb r0, r0, #0x0
+ str r0, [r3, #0x0]
+ str r1, [r3, #0x0]
+ str r2, [r3, #0x0]
+ str r2, [r3, #0x0]
+ str r2, [r3, #0x0]
+ mov r0, #0x1000
+ str r0, [r3, #0x0]
+ bx lr
+ .balign 4
+_020C8028: .word 0x04000468
+
+ arm_func_start G3_RotY
+G3_RotY: ; 0x020C802C
+ ldr ip, _020C8064 ; =0x04000468
+ mov r3, #0x0
+ str r1, [r12, #0x0]
+ str r3, [r12, #0x0]
+ rsb r2, r0, #0x0
+ str r2, [r12, #0x0]
+ str r3, [r12, #0x0]
+ mov r2, #0x1000
+ str r2, [r12, #0x0]
+ str r3, [r12, #0x0]
+ str r0, [r12, #0x0]
+ str r3, [r12, #0x0]
+ str r1, [r12, #0x0]
+ bx lr
+ .balign 4
+_020C8064: .word 0x04000468
+
+ arm_func_start G3_RotX
+G3_RotX: ; 0x020C8068
+ ldr r3, _020C80A0 ; =0x04000468
+ mov r2, #0x1000
+ str r2, [r3, #0x0]
+ mov r2, #0x0
+ str r2, [r3, #0x0]
+ str r2, [r3, #0x0]
+ str r2, [r3, #0x0]
+ str r1, [r3, #0x0]
+ str r0, [r3, #0x0]
+ str r2, [r3, #0x0]
+ rsb r0, r0, #0x0
+ str r0, [r3, #0x0]
+ str r1, [r3, #0x0]
+ bx lr
+ .balign 4
+_020C80A0: .word 0x04000468
+
+ arm_func_start G3i_LookAt_
+G3i_LookAt_: ; 0x020C80A4
+ stmdb sp!, {r4-r9,lr}
+ sub sp, sp, #0x24
+ mov r9, r0
+ ldr r6, [r9, #0x0]
+ ldr r5, [r2, #0x0]
+ add r0, sp, #0x0
+ sub r5, r6, r5
+ str r5, [sp, #0x0]
+ ldr r7, [r9, #0x4]
+ ldr r6, [r2, #0x4]
+ mov r5, r1
+ sub r1, r7, r6
+ str r1, [sp, #0x4]
+ ldr r6, [r9, #0x8]
+ ldr r2, [r2, #0x8]
+ mov r1, r0
+ sub r2, r6, r2
+ mov r8, r3
+ str r2, [sp, #0x8]
+ ldr r7, [sp, #0x40]
+ bl VEC_Normalize
+ add r1, sp, #0x0
+ add r2, sp, #0xc
+ mov r0, r5
+ bl VEC_CrossProduct
+ add r0, sp, #0xc
+ mov r1, r0
+ bl VEC_Normalize
+_020C8114: ; 0x020C8114
+ add r0, sp, #0x0
+ add r1, sp, #0xc
+ add r2, sp, #0x18
+ bl VEC_CrossProduct
+_020C8124: ; 0x020C8124
+ cmp r8, #0x0
+ beq _020C8184
+ ldr r0, _020C8234 ; =0x04000440
+ mov r1, #0x2
+ str r1, [r0, #0x0]
+ ldr r0, [sp, #0xc]
+ ldr r4, _020C8238 ; =0x0400045C
+ str r0, [r4, #0x0]
+ ldr r0, [sp, #0x18]
+ str r0, [r4, #0x0]
+ ldr r0, [sp, #0x0]
+ str r0, [r4, #0x0]
+ ldr r0, [sp, #0x10]
+ str r0, [r4, #0x0]
+ ldr r0, [sp, #0x1c]
+ str r0, [r4, #0x0]
+ ldr r0, [sp, #0x4]
+ str r0, [r4, #0x0]
+ ldr r0, [sp, #0x14]
+ str r0, [r4, #0x0]
+ ldr r0, [sp, #0x20]
+ str r0, [r4, #0x0]
+ ldr r0, [sp, #0x8]
+ str r0, [r4, #0x0]
+_020C8184:
+ add r1, sp, #0xc
+ mov r0, r9
+ bl VEC_DotProduct
+ rsb r6, r0, #0x0
+ add r1, sp, #0x18
+ mov r0, r9
+ bl VEC_DotProduct
+ rsb r5, r0, #0x0
+ add r1, sp, #0x0
+ mov r0, r9
+ bl VEC_DotProduct
+_020C81B0: ; 0x020C81B0
+ cmp r8, #0x0
+ strne r6, [r4, #0x0]
+ rsb r0, r0, #0x0
+ strne r5, [r4, #0x0]
+ strne r0, [r4, #0x0]
+ cmp r7, #0x0
+ addeq sp, sp, #0x24
+ ldmeqia sp!, {r4-r9,lr}
+ bxeq lr
+ ldr r1, [sp, #0xc]
+ str r1, [r7, #0x0]
+ ldr r1, [sp, #0x18]
+ str r1, [r7, #0x4]
+ ldr r1, [sp, #0x0]
+ str r1, [r7, #0x8]
+ ldr r1, [sp, #0x10]
+ str r1, [r7, #0xc]
+ ldr r1, [sp, #0x1c]
+ str r1, [r7, #0x10]
+ ldr r1, [sp, #0x4]
+ str r1, [r7, #0x14]
+ ldr r1, [sp, #0x14]
+ str r1, [r7, #0x18]
+ ldr r1, [sp, #0x20]
+ str r1, [r7, #0x1c]
+ ldr r1, [sp, #0x8]
+ str r1, [r7, #0x20]
+ str r6, [r7, #0x24]
+ str r5, [r7, #0x28]
+ str r0, [r7, #0x2c]
+ add sp, sp, #0x24
+ ldmia sp!, {r4-r9,lr}
+ bx lr
+ .balign 4
+_020C8234: .word 0x04000440
+_020C8238: .word 0x0400045C
+
+ arm_func_start G3i_OrthoW_
+G3i_OrthoW_: ; 0x020C823C
+ stmdb sp!, {r4-r11,lr}
+ sub sp, sp, #0x34
+ str r2, [sp, #0x8]
+ str r0, [sp, #0x0]
+ ldr r0, [sp, #0x8]
+ mov r2, r3
+ ldr r7, [sp, #0x64]
+ sub r0, r2, r0
+ str r3, [sp, #0xc]
+ str r1, [sp, #0x4]
+ ldr r8, [sp, #0x60]
+ ldr r6, [sp, #0x68]
+ bl FX_InvAsync
+_020C8270: ; 0x020C8270
+ cmp r7, #0x0
+ ldrne r0, _020C8528 ; =0x04000440
+ movne r1, #0x0
+ ldrne r4, _020C852C ; =0x04000458
+ strne r1, [r0, #0x0]
+ cmp r6, #0x0
+ beq _020C82B8
+ mov r0, #0x0
+ str r0, [r6, #0x4]
+ str r0, [r6, #0x8]
+ str r0, [r6, #0xc]
+ str r0, [r6, #0x10]
+ str r0, [r6, #0x18]
+ str r0, [r6, #0x1c]
+ str r0, [r6, #0x20]
+ str r0, [r6, #0x24]
+ str r0, [r6, #0x2c]
+ str r8, [r6, #0x3c]
+_020C82B8:
+ bl FX_GetDivResultFx64c
+ mov r5, r0
+ str r1, [sp, #0x14]
+ ldr sb, _020C8530 ; =0x04000290
+ mov r3, #0x0
+ ldr r1, [sp, #0x0]
+ ldr r0, [sp, #0x4]
+ str r3, [r9, #0x0]
+ mov r2, #0x1000
+ sub r1, r1, r0
+ ldr r0, _020C8534 ; =0x04000298
+ str r2, [r9, #0x4]
+ str r1, [r0, #0x0]
+ cmp r8, #0x1000
+ str r3, [r0, #0x4]
+ beq _020C8318
+ mov r9, r8, asr #0x1f
+ umull r0, r1, r5, r8
+ mla r1, r5, r9, r1
+ ldr r5, [sp, #0x14]
+ mla r1, r5, r8, r1
+ bl _ll_sdiv
+ mov r5, r0
+ str r1, [sp, #0x14]
+_020C8318:
+ ldr r0, [sp, #0x14]
+ mov r2, r5, lsl #0xd
+ mov r1, r0, lsl #0xd
+ mov r0, #0x80000000
+ adds r0, r2, r0
+ orr r1, r1, r5, lsr #0x13
+ adc r1, r1, #0x0
+ cmp r7, #0x0
+ mov r0, #0x0
+ strne r1, [r4, #0x0]
+ strne r0, [r4, #0x0]
+ strne r0, [r4, #0x0]
+ strne r0, [r4, #0x0]
+ strne r0, [r4, #0x0]
+ cmp r6, #0x0
+ strne r1, [r6, #0x0]
+ bl FX_GetDivResultFx64c
+ mov r11, r0
+ str r1, [sp, #0x2c]
+ ldr r0, _020C8530 ; =0x04000290
+ mov r3, #0x0
+ mov r2, #0x1000
+ str r3, [r0, #0x0]
+ str r2, [r0, #0x4]
+ ldr r9, [sp, #0x58]
+ ldr r1, [sp, #0x5c]
+ ldr r0, _020C8534 ; =0x04000298
+ sub r1, r9, r1
+ str r1, [r0, #0x0]
+ cmp r8, #0x1000
+ str r3, [r0, #0x4]
+ beq _020C83B8
+ mov r9, r8, asr #0x1f
+ umull r0, r1, r11, r8
+ mla r1, r11, r9, r1
+ ldr r9, [sp, #0x2c]
+ mla r1, r9, r8, r1
+ bl _ll_sdiv
+ mov r11, r0
+ str r1, [sp, #0x2c]
+_020C83B8:
+ ldr r0, [sp, #0x2c]
+ mov r3, r11, lsl #0xd
+ mov r2, r0, lsl #0xd
+ mov r0, #0x80000000
+ orr r2, r2, r11, lsr #0x13
+ adds r0, r3, r0
+ adc r0, r2, #0x0
+ cmp r7, #0x0
+ mov r1, #0x0
+ strne r0, [r4, #0x0]
+ strne r1, [r4, #0x0]
+ strne r1, [r4, #0x0]
+ strne r1, [r4, #0x0]
+ strne r1, [r4, #0x0]
+ cmp r6, #0x0
+ strne r0, [r6, #0x14]
+ bl FX_GetDivResultFx64c
+ cmp r8, #0x1000
+ beq _020C8428
+ mov r9, r8, asr #0x1f
+ mov r2, #0x1000
+ mov r3, #0x0
+ umull r12, r10, r0, r8
+ mla r10, r0, r9, r10
+ mov r0, r12
+ mla r10, r1, r8, r10
+ mov r1, r10
+ bl _ll_sdiv
+_020C8428:
+ mov r9, r1, lsl #0xd
+ mov r10, r0, lsl #0xd
+ mov r2, #0x80000000
+ orr r9, r9, r0, lsr #0x13
+ adds r2, r10, r2
+ adc r2, r9, #0x0
+ cmp r7, #0x0
+ mov r3, #0x0
+ strne r2, [r4, #0x0]
+ strne r3, [r4, #0x0]
+ cmp r6, #0x0
+ strne r2, [r6, #0x28]
+ ldr r3, [sp, #0xc]
+ ldr r2, [sp, #0x8]
+ add r9, r3, r2
+ rsb lr, r9, #0x0
+ ldr r3, [sp, #0x0]
+ ldr r2, [sp, #0x4]
+ ldr r9, [sp, #0x5c]
+ add r2, r3, r2
+ ldr r3, [sp, #0x58]
+ rsb r12, r2, #0x0
+ add r3, r9, r3
+ mov r9, r12, asr #0x1f
+ str r9, [sp, #0x20]
+ mov r9, r3, asr #0x1f
+ str r9, [sp, #0x24]
+ umull r10, r9, r5, lr
+ mov r2, lr, asr #0x1f
+ str r2, [sp, #0x1c]
+ str r10, [sp, #0x18]
+ ldr r10, [sp, #0x1c]
+ mov r2, #0x80000000
+ mla r9, r5, r10, r9
+ ldr r5, [sp, #0x14]
+ mla r9, r5, lr, r9
+ ldr r5, [sp, #0x18]
+ adds r5, r5, r2
+ adc r10, r9, #0x0
+ ldr r5, [sp, #0x20]
+ umull lr, r9, r11, r12
+ mla r9, r11, r5, r9
+ ldr r5, [sp, #0x2c]
+ mla r9, r5, r12, r9
+ adds r5, lr, r2
+ adc r5, r9, #0x0
+ umull r11, r9, r0, r3
+ adds r2, r11, r2
+ ldr r2, [sp, #0x24]
+ mla r9, r0, r2, r9
+ mla r9, r1, r3, r9
+ adc r0, r9, #0x0
+ cmp r7, #0x0
+ strne r10, [r4, #0x0]
+ strne r5, [r4, #0x0]
+ strne r0, [r4, #0x0]
+ strne r8, [r4, #0x0]
+ cmp r6, #0x0
+ strne r10, [r6, #0x30]
+ strne r5, [r6, #0x34]
+ strne r0, [r6, #0x38]
+ add sp, sp, #0x34
+ ldmia sp!, {r4-r11,lr}
+ bx lr
+ .balign 4
+_020C8528: .word 0x04000440
+_020C852C: .word 0x04000458
+_020C8530: .word 0x04000290
+_020C8534: .word 0x04000298
+
+ arm_func_start G3i_PerspectiveW_
+G3i_PerspectiveW_: ; 0x020C8538
+ stmdb sp!, {r4-r10,lr}
+ mov r5, r0
+ mov r0, r1
+ mov r1, r5
+ ldr r6, [sp, #0x24]
+ mov r9, r2
+ mov r8, r3
+ ldr r5, [sp, #0x2c]
+ bl FX_Div
+ mov r7, r0
+ cmp r6, #0x1000
+ mulne r1, r7, r6
+ movne r0, r1, asr #0xb
+ addne r0, r1, r0, lsr #0x14
+ movne r7, r0, asr #0xc
+ ldr r0, [sp, #0x28]
+ ldr r2, _020C8718 ; =0x04000290
+ cmp r0, #0x0
+ mov r3, #0x0
+ str r3, [r2, #0x0]
+ ldr r1, _020C871C ; =0x04000298
+ str r7, [r2, #0x4]
+ str r9, [r1, #0x0]
+ ldrne r0, _020C8720 ; =0x04000440
+ str r3, [r1, #0x4]
+ ldrne r4, _020C8724 ; =0x04000458
+ strne r3, [r0, #0x0]
+ cmp r5, #0x0
+ beq _020C85E4
+ mov r1, #0x0
+ str r1, [r5, #0x4]
+ str r1, [r5, #0x8]
+ str r1, [r5, #0xc]
+ str r1, [r5, #0x10]
+ str r1, [r5, #0x18]
+ str r1, [r5, #0x1c]
+ str r1, [r5, #0x20]
+ str r1, [r5, #0x24]
+ rsb r0, r6, #0x0
+ str r0, [r5, #0x2c]
+ str r1, [r5, #0x30]
+ str r1, [r5, #0x34]
+ str r1, [r5, #0x3c]
+_020C85E4:
+ bl FX_GetDivResult
+ ldr r3, [sp, #0x20]
+ ldr r1, [sp, #0x28]
+ ldr sb, _020C8718 ; =0x04000290
+ mov r12, #0x0
+ str r12, [r9, #0x0]
+ mov r10, #0x1000
+ ldr r2, _020C871C ; =0x04000298
+ str r10, [r9, #0x4]
+ sub r3, r8, r3
+ str r3, [r2, #0x0]
+ str r12, [r2, #0x4]
+ cmp r1, #0x0
+ beq _020C8644
+ str r0, [r4, #0x0]
+ str r12, [r4, #0x0]
+ str r12, [r4, #0x0]
+ str r12, [r4, #0x0]
+ str r12, [r4, #0x0]
+ str r7, [r4, #0x0]
+ str r12, [r4, #0x0]
+ str r12, [r4, #0x0]
+ str r12, [r4, #0x0]
+ str r12, [r4, #0x0]
+_020C8644:
+ cmp r5, #0x0
+ strne r0, [r5, #0x0]
+ strne r7, [r5, #0x14]
+ bl FX_GetDivResultFx64c
+ cmp r6, #0x1000
+ beq _020C8680
+ mov r2, r6, asr #0x1f
+ umull r7, r3, r0, r6
+ mla r3, r0, r2, r3
+ mla r3, r1, r6, r3
+ mov r0, r7
+ mov r1, r3
+ mov r2, #0x1000
+ mov r3, #0x0
+ bl _ll_sdiv
+_020C8680:
+ ldr r3, [sp, #0x20]
+ mov r10, r8, lsl #0x1
+ add r12, r3, r8
+ mov r2, r12, asr #0x1f
+ umull r7, lr, r0, r12
+ mla lr, r0, r2, lr
+ mov r9, #0x80000000
+ smull r3, r2, r10, r3
+ mla lr, r1, r12, lr
+ adds r7, r7, r9
+ mov r8, #0x800
+ adc r7, lr, #0x0
+ adds r3, r3, r8
+ adc r2, r2, #0x0
+ mov r3, r3, lsr #0xc
+ orr r3, r3, r2, lsl #0x14
+ umull r10, r8, r0, r3
+ mov r2, r3, asr #0x1f
+ adds r9, r10, r9
+ mla r8, r0, r2, r8
+ mla r8, r1, r3, r8
+ ldr r0, [sp, #0x28]
+ adc r2, r8, #0x0
+ cmp r0, #0x0
+ mov r0, #0x0
+ beq _020C8704
+ str r7, [r4, #0x0]
+ rsb r1, r6, #0x0
+ str r1, [r4, #0x0]
+ str r0, [r4, #0x0]
+ str r0, [r4, #0x0]
+ str r2, [r4, #0x0]
+ str r0, [r4, #0x0]
+_020C8704:
+ cmp r5, #0x0
+ strne r7, [r5, #0x28]
+ strne r2, [r5, #0x38]
+ ldmia sp!, {r4-r10,lr}
+ bx lr
+ .balign 4
+_020C8718: .word 0x04000290
+_020C871C: .word 0x04000298
+_020C8720: .word 0x04000440
+_020C8724: .word 0x04000458
+
+ arm_func_start GXS_EndLoadOBJExtPltt
+GXS_EndLoadOBJExtPltt: ; 0x020C8728
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldr r0, _020C876C ; =0x02106814
+ mvn r1, #0x0
+ ldr r0, [r0, #0x0]
+ cmp r0, r1
+ beq _020C8748
+ bl MI_WaitDma
+_020C8748:
+ ldr r0, _020C8770 ; =0x021D33F8
+ ldr r0, [r0, #0x0]
+ bl GX_SetBankForSubOBJExtPltt
+ ldr r0, _020C8770 ; =0x021D33F8
+ mov r1, #0x0
+ str r1, [r0, #0x0]
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+ .balign 4
+_020C876C: .word 0x02106814
+_020C8770: .word 0x021D33F8
+
+ arm_func_start GXS_LoadOBJExtPltt
+GXS_LoadOBJExtPltt: ; 0x020C8774
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0xc
+ ldr r3, _020C87E0 ; =0x02106814
+ mvn r12, #0x0
+ ldr lr, [r3, #0x0]
+ mov r5, r0
+ mov r4, r1
+ mov r3, r2
+ cmp lr, r12
+ beq _020C87C8
+ ldr r2, _020C87E4 ; =0x068A0000
+ mov r12, #0x0
+ str r12, [sp, #0x0]
+ mov r0, lr
+ mov r1, r5
+ add r2, r4, r2
+ str r12, [sp, #0x4]
+ bl MI_DmaCopy32Async
+ add sp, sp, #0xc
+ ldmia sp!, {r4-r5,lr}
+ bx lr
+_020C87C8:
+ ldr r1, _020C87E4 ; =0x068A0000
+ add r1, r4, r1
+ bl MIi_CpuCopy32
+ add sp, sp, #0xc
+ ldmia sp!, {r4-r5,lr}
+ bx lr
+ .balign 4
+_020C87E0: .word 0x02106814
+_020C87E4: .word 0x068A0000
+
+ arm_func_start GXS_BeginLoadOBJExtPltt
+GXS_BeginLoadOBJExtPltt: ; 0x020C87E8
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ bl GX_ResetBankForSubOBJ
+ ldr r1, _020C8808 ; =0x021D33F8
+ str r0, [r1, #0x0]
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+ .balign 4
+_020C8808: .word 0x021D33F8
+
+ arm_func_start GXS_EndLoadBGExtPltt
+GXS_EndLoadBGExtPltt: ; 0x020C880C
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldr r0, _020C8850 ; =0x02106814
+ mvn r1, #0x0
+ ldr r0, [r0, #0x0]
+ cmp r0, r1
+ beq _020C882C
+ bl MI_WaitDma
+_020C882C:
+ ldr r0, _020C8854 ; =0x021D33E0
+ ldr r0, [r0, #0x0]
+ bl GX_SetBankForSubBGExtPltt
+ ldr r0, _020C8854 ; =0x021D33E0
+ mov r1, #0x0
+ str r1, [r0, #0x0]
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+ .balign 4
+_020C8850: .word 0x02106814
+_020C8854: .word 0x021D33E0
+
+ arm_func_start GXS_LoadBGExtPltt
+GXS_LoadBGExtPltt: ; 0x020C8858
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0xc
+ ldr r3, _020C88C4 ; =0x02106814
+ mvn r12, #0x0
+ ldr lr, [r3, #0x0]
+ mov r5, r0
+ mov r4, r1
+ mov r3, r2
+ cmp lr, r12
+ beq _020C88AC
+ ldr r2, _020C88C8 ; =0x06898000
+ mov r12, #0x0
+ str r12, [sp, #0x0]
+ mov r0, lr
+ mov r1, r5
+ add r2, r4, r2
+ str r12, [sp, #0x4]
+ bl MI_DmaCopy32Async
+ add sp, sp, #0xc
+ ldmia sp!, {r4-r5,lr}
+ bx lr
+_020C88AC:
+ ldr r1, _020C88C8 ; =0x06898000
+ add r1, r4, r1
+ bl MIi_CpuCopy32
+ add sp, sp, #0xc
+ ldmia sp!, {r4-r5,lr}
+ bx lr
+ .balign 4
+_020C88C4: .word 0x02106814
+_020C88C8: .word 0x06898000
+
+ arm_func_start GXS_BeginLoadBGExtPltt
+GXS_BeginLoadBGExtPltt: ; 0x020C88CC
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ bl FUN_020C6034
+ ldr r1, _020C88EC ; =0x021D33E0
+ str r0, [r1, #0x0]
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+ .balign 4
+_020C88EC: .word 0x021D33E0
+
+ arm_func_start GX_EndLoadOBJExtPltt
+GX_EndLoadOBJExtPltt: ; 0x020C88F0
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldr r0, _020C893C ; =0x02106814
+ mvn r1, #0x0
+ ldr r0, [r0, #0x0]
+ cmp r0, r1
+ beq _020C8910
+ bl MI_WaitDma
+_020C8910:
+ ldr r0, _020C8940 ; =0x021D33E8
+ ldr r0, [r0, #0x0]
+ bl GX_SetBankForOBJExtPltt
+ ldr r1, _020C8940 ; =0x021D33E8
+ mov r2, #0x0
+ ldr r0, _020C8944 ; =0x021D33E4
+ str r2, [r1, #0x0]
+ str r2, [r0, #0x0]
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+ .balign 4
+_020C893C: .word 0x02106814
+_020C8940: .word 0x021D33E8
+_020C8944: .word 0x021D33E4
+
+ arm_func_start GX_LoadOBJExtPltt
+GX_LoadOBJExtPltt: ; 0x020C8948
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0xc
+ ldr ip, _020C89B4 ; =0x021D33E4
+ ldr r3, _020C89B8 ; =0x02106814
+ ldr r4, [r12, #0x0]
+ ldr lr, [r3, #0x0]
+ mvn r12, #0x0
+ mov r5, r0
+ mov r3, r2
+ cmp lr, r12
+ add r4, r4, r1
+ beq _020C89A0
+ mov r12, #0x0
+ str r12, [sp, #0x0]
+ mov r0, lr
+ mov r1, r5
+ mov r2, r4
+ str r12, [sp, #0x4]
+ bl MI_DmaCopy32Async
+ add sp, sp, #0xc
+ ldmia sp!, {r4-r5,lr}
+ bx lr
+_020C89A0:
+ mov r1, r4
+ bl MIi_CpuCopy32
+ add sp, sp, #0xc
+ ldmia sp!, {r4-r5,lr}
+ bx lr
+ .balign 4
+_020C89B4: .word 0x021D33E4
+_020C89B8: .word 0x02106814
+
+ arm_func_start GX_BeginLoadOBJExtPltt
+GX_BeginLoadOBJExtPltt: ; 0x020C89BC
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ bl GX_ResetBankForOBJExtPltt
+ ldr r1, _020C8A1C ; =0x021D33E8
+ cmp r0, #0x0
+ str r0, [r1, #0x0]
+ addeq sp, sp, #0x4
+ ldmeqia sp!, {lr}
+ bxeq lr
+ cmp r0, #0x20
+ beq _020C8A04
+ cmp r0, #0x40
+ ldreq r1, _020C8A20 ; =0x06894000
+ ldreq r0, _020C8A24 ; =0x021D33E4
+ add sp, sp, #0x4
+ streq r1, [r0, #0x0]
+ ldmia sp!, {lr}
+ bx lr
+_020C8A04:
+ ldr r1, _020C8A28 ; =0x06890000
+ ldr r0, _020C8A24 ; =0x021D33E4
+ str r1, [r0, #0x0]
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+ .balign 4
+_020C8A1C: .word 0x021D33E8
+_020C8A20: .word 0x06894000
+_020C8A24: .word 0x021D33E4
+_020C8A28: .word 0x06890000
+
+ arm_func_start GX_EndLoadBGExtPltt
+GX_EndLoadBGExtPltt: ; 0x020C8A2C
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldr r0, _020C8A80 ; =0x02106814
+ mvn r1, #0x0
+ ldr r0, [r0, #0x0]
+ cmp r0, r1
+ beq _020C8A4C
+ bl MI_WaitDma
+_020C8A4C:
+ ldr r0, _020C8A84 ; =0x021D33F4
+ ldr r0, [r0, #0x0]
+ bl GX_SetBankForBGExtPltt
+ ldr r2, _020C8A84 ; =0x021D33F4
+ mov r3, #0x0
+ ldr r1, _020C8A88 ; =0x021D33F0
+ ldr r0, _020C8A8C ; =0x021D33EC
+ str r3, [r2, #0x0]
+ str r3, [r1, #0x0]
+ str r3, [r0, #0x0]
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+ .balign 4
+_020C8A80: .word 0x02106814
+_020C8A84: .word 0x021D33F4
+_020C8A88: .word 0x021D33F0
+_020C8A8C: .word 0x021D33EC
+
+ arm_func_start GX_LoadBGExtPltt
+GX_LoadBGExtPltt: ; 0x020C8A90
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0xc
+ ldr lr, _020C8B04 ; =0x021D33F0
+ ldr ip, _020C8B08 ; =0x021D33EC
+ ldr r3, _020C8B0C ; =0x02106814
+ ldr lr, [lr, #0x0]
+ ldr r4, [r12, #0x0]
+ add r5, lr, r1
+ ldr lr, [r3, #0x0]
+ mvn r12, #0x0
+ mov r1, r0
+ mov r3, r2
+ cmp lr, r12
+ sub r4, r5, r4
+ beq _020C8AF0
+ mov r12, #0x0
+ str r12, [sp, #0x0]
+ mov r0, lr
+ mov r2, r4
+ str r12, [sp, #0x4]
+ bl MI_DmaCopy32Async
+ add sp, sp, #0xc
+ ldmia sp!, {r4-r5,lr}
+ bx lr
+_020C8AF0:
+ mov r1, r4
+ bl MIi_CpuCopy32
+ add sp, sp, #0xc
+ ldmia sp!, {r4-r5,lr}
+ bx lr
+ .balign 4
+_020C8B04: .word 0x021D33F0
+_020C8B08: .word 0x021D33EC
+_020C8B0C: .word 0x02106814
+
+ arm_func_start GX_BeginLoadBGExtPltt
+GX_BeginLoadBGExtPltt: ; 0x020C8B10
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ bl GX_ResetBankForBGExtPltt
+ ldr r1, _020C8BFC ; =0x021D33F4
+ cmp r0, #0x20
+ str r0, [r1, #0x0]
+ bgt _020C8B60
+ cmp r0, #0x20
+ bge _020C8BD8
+ cmp r0, #0x0
+ bgt _020C8B4C
+ add sp, sp, #0x4
+ cmp r0, #0x0
+ ldmia sp!, {lr}
+ bx lr
+_020C8B4C:
+ cmp r0, #0x10
+ beq _020C8B90
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+_020C8B60:
+ cmp r0, #0x40
+ bgt _020C8B7C
+ cmp r0, #0x40
+ beq _020C8BB4
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+_020C8B7C:
+ cmp r0, #0x60
+ beq _020C8BD8
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+_020C8B90:
+ ldr r3, _020C8C00 ; =0x06880000
+ ldr r1, _020C8C04 ; =0x021D33F0
+ ldr r0, _020C8C08 ; =0x021D33EC
+ mov r2, #0x0
+ str r3, [r1, #0x0]
+ str r2, [r0, #0x0]
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+_020C8BB4:
+ ldr r3, _020C8C0C ; =0x06894000
+ ldr r1, _020C8C04 ; =0x021D33F0
+ ldr r0, _020C8C08 ; =0x021D33EC
+ mov r2, #0x4000
+ str r3, [r1, #0x0]
+ str r2, [r0, #0x0]
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+_020C8BD8:
+ ldr r3, _020C8C10 ; =0x06890000
+ ldr r1, _020C8C04 ; =0x021D33F0
+ ldr r0, _020C8C08 ; =0x021D33EC
+ mov r2, #0x0
+ str r3, [r1, #0x0]
+ str r2, [r0, #0x0]
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+ .balign 4
+_020C8BFC: .word 0x021D33F4
+_020C8C00: .word 0x06880000
+_020C8C04: .word 0x021D33F0
+_020C8C08: .word 0x021D33EC
+_020C8C0C: .word 0x06894000
+_020C8C10: .word 0x06890000
+
+ arm_func_start GXS_LoadBG3Char
+GXS_LoadBG3Char: ; 0x020C8C14
+ stmdb sp!, {r4-r6,lr}
+ mov r6, r0
+ mov r5, r1
+ mov r4, r2
+ bl G2S_GetBG3CharPtr
+ ldr r1, _020C8C78 ; =0x02106814
+ mov r12, r0
+ ldr r0, [r1, #0x0]
+ mvn r1, #0x0
+ cmp r0, r1
+ beq _020C8C60
+ cmp r4, #0x30
+ bls _020C8C60
+ mov r1, r6
+ mov r3, r4
+ add r2, r12, r5
+ bl MI_DmaCopy32
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+_020C8C60:
+ mov r0, r6
+ mov r2, r4
+ add r1, r12, r5
+ bl MIi_CpuCopy32
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+ .balign 4
+_020C8C78: .word 0x02106814
+
+ arm_func_start GX_LoadBG3Char
+GX_LoadBG3Char: ; 0x020C8C7C
+ stmdb sp!, {r4-r6,lr}
+ mov r6, r0
+ mov r5, r1
+ mov r4, r2
+ bl G2_GetBG3CharPtr
+ ldr r1, _020C8CE0 ; =0x02106814
+ mov r12, r0
+ ldr r0, [r1, #0x0]
+ mvn r1, #0x0
+ cmp r0, r1
+ beq _020C8CC8
+ cmp r4, #0x30
+ bls _020C8CC8
+ mov r1, r6
+ mov r3, r4
+ add r2, r12, r5
+ bl MI_DmaCopy32
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+_020C8CC8:
+ mov r0, r6
+ mov r2, r4
+ add r1, r12, r5
+ bl MIi_CpuCopy32
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+ .balign 4
+_020C8CE0: .word 0x02106814
+
+ arm_func_start GXS_LoadBG2Char
+GXS_LoadBG2Char: ; 0x020C8CE4
+ stmdb sp!, {r4-r6,lr}
+ mov r6, r0
+ mov r5, r1
+ mov r4, r2
+ bl G2S_GetBG2CharPtr
+ ldr r1, _020C8D48 ; =0x02106814
+ mov r12, r0
+ ldr r0, [r1, #0x0]
+ mvn r1, #0x0
+ cmp r0, r1
+ beq _020C8D30
+ cmp r4, #0x30
+ bls _020C8D30
+ mov r1, r6
+ mov r3, r4
+ add r2, r12, r5
+ bl MI_DmaCopy32
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+_020C8D30:
+ mov r0, r6
+ mov r2, r4
+ add r1, r12, r5
+ bl MIi_CpuCopy32
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+ .balign 4
+_020C8D48: .word 0x02106814
+
+ arm_func_start GX_LoadBG2Char
+GX_LoadBG2Char: ; 0x020C8D4C
+ stmdb sp!, {r4-r6,lr}
+ mov r6, r0
+ mov r5, r1
+ mov r4, r2
+ bl G2_GetBG2CharPtr
+ ldr r1, _020C8DB0 ; =0x02106814
+ mov r12, r0
+ ldr r0, [r1, #0x0]
+ mvn r1, #0x0
+ cmp r0, r1
+ beq _020C8D98
+ cmp r4, #0x30
+ bls _020C8D98
+ mov r1, r6
+ mov r3, r4
+ add r2, r12, r5
+ bl MI_DmaCopy32
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+_020C8D98:
+ mov r0, r6
+ mov r2, r4
+ add r1, r12, r5
+ bl MIi_CpuCopy32
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+ .balign 4
+_020C8DB0: .word 0x02106814
+
+ arm_func_start GXS_LoadBG1Char
+GXS_LoadBG1Char: ; 0x020C8DB4
+ stmdb sp!, {r4-r6,lr}
+ mov r6, r0
+ mov r5, r1
+ mov r4, r2
+ bl G2S_GetBG1CharPtr
+ ldr r1, _020C8E18 ; =0x02106814
+ mov r12, r0
+ ldr r0, [r1, #0x0]
+ mvn r1, #0x0
+ cmp r0, r1
+ beq _020C8E00
+ cmp r4, #0x30
+ bls _020C8E00
+ mov r1, r6
+ mov r3, r4
+ add r2, r12, r5
+ bl MI_DmaCopy32
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+_020C8E00:
+ mov r0, r6
+ mov r2, r4
+ add r1, r12, r5
+ bl MIi_CpuCopy32
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+ .balign 4
+_020C8E18: .word 0x02106814
+
+ arm_func_start GX_LoadBG1Char
+GX_LoadBG1Char: ; 0x020C8E1C
+ stmdb sp!, {r4-r6,lr}
+ mov r6, r0
+ mov r5, r1
+ mov r4, r2
+ bl G2_GetBG1CharPtr
+ ldr r1, _020C8E80 ; =0x02106814
+ mov r12, r0
+ ldr r0, [r1, #0x0]
+ mvn r1, #0x0
+ cmp r0, r1
+ beq _020C8E68
+ cmp r4, #0x30
+ bls _020C8E68
+ mov r1, r6
+ mov r3, r4
+ add r2, r12, r5
+ bl MI_DmaCopy32
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+_020C8E68:
+ mov r0, r6
+ mov r2, r4
+ add r1, r12, r5
+ bl MIi_CpuCopy32
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+ .balign 4
+_020C8E80: .word 0x02106814
+
+ arm_func_start GXS_LoadBG0Char
+GXS_LoadBG0Char: ; 0x020C8E84
+ stmdb sp!, {r4-r6,lr}
+ mov r6, r0
+ mov r5, r1
+ mov r4, r2
+ bl G2S_GetBG0CharPtr
+ ldr r1, _020C8EE8 ; =0x02106814
+ mov r12, r0
+ ldr r0, [r1, #0x0]
+ mvn r1, #0x0
+ cmp r0, r1
+ beq _020C8ED0
+ cmp r4, #0x30
+ bls _020C8ED0
+ mov r1, r6
+ mov r3, r4
+ add r2, r12, r5
+ bl MI_DmaCopy32
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+_020C8ED0:
+ mov r0, r6
+ mov r2, r4
+ add r1, r12, r5
+ bl MIi_CpuCopy32
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+ .balign 4
+_020C8EE8: .word 0x02106814
+
+ arm_func_start GX_LoadBG0Char
+GX_LoadBG0Char: ; 0x020C8EEC
+ stmdb sp!, {r4-r6,lr}
+ mov r6, r0
+ mov r5, r1
+ mov r4, r2
+ bl G2_GetBG0CharPtr
+ ldr r1, _020C8F50 ; =0x02106814
+ mov r12, r0
+ ldr r0, [r1, #0x0]
+ mvn r1, #0x0
+ cmp r0, r1
+ beq _020C8F38
+ cmp r4, #0x30
+ bls _020C8F38
+ mov r1, r6
+ mov r3, r4
+ add r2, r12, r5
+ bl MI_DmaCopy32
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+_020C8F38:
+ mov r0, r6
+ mov r2, r4
+ add r1, r12, r5
+ bl MIi_CpuCopy32
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+ .balign 4
+_020C8F50: .word 0x02106814
+
+ arm_func_start GXS_LoadBG3Scr
+GXS_LoadBG3Scr: ; 0x020C8F54
+ stmdb sp!, {r4-r6,lr}
+ mov r6, r0
+ mov r5, r1
+ mov r4, r2
+ bl G2S_GetBG3ScrPtr
+ ldr r1, _020C8FB8 ; =0x02106814
+ mov r12, r0
+ ldr r0, [r1, #0x0]
+ mvn r1, #0x0
+ cmp r0, r1
+ beq _020C8FA0
+ cmp r4, #0x1c
+ bls _020C8FA0
+ mov r1, r6
+ mov r3, r4
+ add r2, r12, r5
+ bl MI_DmaCopy16
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+_020C8FA0:
+ mov r0, r6
+ mov r2, r4
+ add r1, r12, r5
+ bl MIi_CpuCopy16
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+ .balign 4
+_020C8FB8: .word 0x02106814
+
+ arm_func_start GX_LoadBG3Scr
+GX_LoadBG3Scr: ; 0x020C8FBC
+ stmdb sp!, {r4-r6,lr}
+ mov r6, r0
+ mov r5, r1
+ mov r4, r2
+ bl G2_GetBG3ScrPtr
+ ldr r1, _020C9020 ; =0x02106814
+ mov r12, r0
+ ldr r0, [r1, #0x0]
+ mvn r1, #0x0
+ cmp r0, r1
+ beq _020C9008
+ cmp r4, #0x1c
+ bls _020C9008
+ mov r1, r6
+ mov r3, r4
+ add r2, r12, r5
+ bl MI_DmaCopy16
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+_020C9008:
+ mov r0, r6
+ mov r2, r4
+ add r1, r12, r5
+ bl MIi_CpuCopy16
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+ .balign 4
+_020C9020: .word 0x02106814
+
+ arm_func_start GXS_LoadBG2Scr
+GXS_LoadBG2Scr: ; 0x020C9024
+ stmdb sp!, {r4-r6,lr}
+ mov r6, r0
+ mov r5, r1
+ mov r4, r2
+ bl G2S_GetBG2ScrPtr
+ ldr r1, _020C9088 ; =0x02106814
+ mov r12, r0
+ ldr r0, [r1, #0x0]
+ mvn r1, #0x0
+ cmp r0, r1
+ beq _020C9070
+ cmp r4, #0x1c
+ bls _020C9070
+ mov r1, r6
+ mov r3, r4
+ add r2, r12, r5
+ bl MI_DmaCopy16
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+_020C9070:
+ mov r0, r6
+ mov r2, r4
+ add r1, r12, r5
+ bl MIi_CpuCopy16
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+ .balign 4
+_020C9088: .word 0x02106814
+
+ arm_func_start GX_LoadBG2Scr
+GX_LoadBG2Scr: ; 0x020C908C
+ stmdb sp!, {r4-r6,lr}
+ mov r6, r0
+ mov r5, r1
+ mov r4, r2
+ bl G2_GetBG2ScrPtr
+ ldr r1, _020C90F0 ; =0x02106814
+ mov r12, r0
+ ldr r0, [r1, #0x0]
+ mvn r1, #0x0
+ cmp r0, r1
+ beq _020C90D8
+ cmp r4, #0x1c
+ bls _020C90D8
+ mov r1, r6
+ mov r3, r4
+ add r2, r12, r5
+ bl MI_DmaCopy16
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+_020C90D8:
+ mov r0, r6
+ mov r2, r4
+ add r1, r12, r5
+ bl MIi_CpuCopy16
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+ .balign 4
+_020C90F0: .word 0x02106814
+
+ arm_func_start GXS_LoadBG1Scr
+GXS_LoadBG1Scr: ; 0x020C90F4
+ stmdb sp!, {r4-r6,lr}
+ mov r6, r0
+ mov r5, r1
+ mov r4, r2
+ bl G2S_GetBG1ScrPtr
+ ldr r1, _020C9158 ; =0x02106814
+ mov r12, r0
+ ldr r0, [r1, #0x0]
+ mvn r1, #0x0
+ cmp r0, r1
+ beq _020C9140
+ cmp r4, #0x1c
+ bls _020C9140
+ mov r1, r6
+ mov r3, r4
+ add r2, r12, r5
+ bl MI_DmaCopy16
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+_020C9140:
+ mov r0, r6
+ mov r2, r4
+ add r1, r12, r5
+ bl MIi_CpuCopy16
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+ .balign 4
+_020C9158: .word 0x02106814
+
+ arm_func_start GX_LoadBG1Scr
+GX_LoadBG1Scr: ; 0x020C915C
+ stmdb sp!, {r4-r6,lr}
+ mov r6, r0
+ mov r5, r1
+ mov r4, r2
+ bl G2_GetBG1ScrPtr
+ ldr r1, _020C91C0 ; =0x02106814
+ mov r12, r0
+ ldr r0, [r1, #0x0]
+ mvn r1, #0x0
+ cmp r0, r1
+ beq _020C91A8
+ cmp r4, #0x1c
+ bls _020C91A8
+ mov r1, r6
+ mov r3, r4
+ add r2, r12, r5
+ bl MI_DmaCopy16
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+_020C91A8:
+ mov r0, r6
+ mov r2, r4
+ add r1, r12, r5
+ bl MIi_CpuCopy16
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+ .balign 4
+_020C91C0: .word 0x02106814
+
+ arm_func_start GXS_LoadBG0Scr
+GXS_LoadBG0Scr: ; 0x020C91C4
+ stmdb sp!, {r4-r6,lr}
+ mov r6, r0
+ mov r5, r1
+ mov r4, r2
+ bl G2S_GetBG0ScrPtr
+ ldr r1, _020C9228 ; =0x02106814
+ mov r12, r0
+ ldr r0, [r1, #0x0]
+ mvn r1, #0x0
+ cmp r0, r1
+ beq _020C9210
+ cmp r4, #0x1c
+ bls _020C9210
+ mov r1, r6
+ mov r3, r4
+ add r2, r12, r5
+ bl MI_DmaCopy16
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+_020C9210:
+ mov r0, r6
+ mov r2, r4
+ add r1, r12, r5
+ bl MIi_CpuCopy16
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+ .balign 4
+_020C9228: .word 0x02106814
+
+ arm_func_start GX_LoadBG0Scr
+GX_LoadBG0Scr: ; 0x020C922C
+ stmdb sp!, {r4-r6,lr}
+ mov r6, r0
+ mov r5, r1
+ mov r4, r2
+ bl G2_GetBG0ScrPtr
+ ldr r1, _020C9290 ; =0x02106814
+ mov r12, r0
+ ldr r0, [r1, #0x0]
+ mvn r1, #0x0
+ cmp r0, r1
+ beq _020C9278
+ cmp r4, #0x1c
+ bls _020C9278
+ mov r1, r6
+ mov r3, r4
+ add r2, r12, r5
+ bl MI_DmaCopy16
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+_020C9278:
+ mov r0, r6
+ mov r2, r4
+ add r1, r12, r5
+ bl MIi_CpuCopy16
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+ .balign 4
+_020C9290: .word 0x02106814
+
+ arm_func_start GXS_LoadOBJ
+GXS_LoadOBJ: ; 0x020C9294
+ stmdb sp!, {r4,lr}
+ ldr r3, _020C92F0 ; =0x02106814
+ mov r4, r0
+ ldr r0, [r3, #0x0]
+ mvn r12, #0x0
+ mov lr, r1
+ mov r3, r2
+ cmp r0, r12
+ mov r12, #0x6600000
+ beq _020C92D8
+ cmp r3, #0x30
+ bls _020C92D8
+ mov r1, r4
+ add r2, r12, lr
+ bl MI_DmaCopy32
+ ldmia sp!, {r4,lr}
+ bx lr
+_020C92D8:
+ mov r0, r4
+ mov r2, r3
+ add r1, r12, lr
+ bl MIi_CpuCopy32
+ ldmia sp!, {r4,lr}
+ bx lr
+ .balign 4
+_020C92F0: .word 0x02106814
+
+ arm_func_start GX_LoadOBJ
+GX_LoadOBJ: ; 0x020C92F4
+ stmdb sp!, {r4,lr}
+ ldr r3, _020C9350 ; =0x02106814
+ mov r4, r0
+ ldr r0, [r3, #0x0]
+ mvn r12, #0x0
+ mov lr, r1
+ mov r3, r2
+ cmp r0, r12
+ mov r12, #0x6400000
+ beq _020C9338
+ cmp r3, #0x30
+ bls _020C9338
+ mov r1, r4
+ add r2, r12, lr
+ bl MI_DmaCopy32
+ ldmia sp!, {r4,lr}
+ bx lr
+_020C9338:
+ mov r0, r4
+ mov r2, r3
+ add r1, r12, lr
+ bl MIi_CpuCopy32
+ ldmia sp!, {r4,lr}
+ bx lr
+ .balign 4
+_020C9350: .word 0x02106814
+
+ arm_func_start GXS_LoadOAM
+GXS_LoadOAM: ; 0x020C9354
+ stmdb sp!, {r4,lr}
+ ldr r3, _020C93B4 ; =0x02106814
+ mov r4, r0
+ ldr r0, [r3, #0x0]
+ mvn r12, #0x0
+ mov lr, r1
+ mov r3, r2
+ cmp r0, r12
+ beq _020C9398
+ cmp r3, #0x30
+ bls _020C9398
+ ldr r2, _020C93B8 ; =0x07000400
+ mov r1, r4
+ add r2, lr, r2
+ bl MI_DmaCopy32
+ ldmia sp!, {r4,lr}
+ bx lr
+_020C9398:
+ ldr r1, _020C93B8 ; =0x07000400
+ mov r0, r4
+ mov r2, r3
+ add r1, lr, r1
+ bl MIi_CpuCopy32
+ ldmia sp!, {r4,lr}
+ bx lr
+ .balign 4
+_020C93B4: .word 0x02106814
+_020C93B8: .word 0x07000400
+
+ arm_func_start GX_LoadOAM
+GX_LoadOAM: ; 0x020C93BC
+ stmdb sp!, {r4,lr}
+ ldr r3, _020C9414 ; =0x02106814
+ mov r4, r0
+ ldr r0, [r3, #0x0]
+ mvn r12, #0x0
+ mov lr, r1
+ mov r3, r2
+ cmp r0, r12
+ beq _020C93FC
+ cmp r3, #0x30
+ bls _020C93FC
+ mov r1, r4
+ add r2, lr, #0x7000000
+ bl MI_DmaCopy32
+ ldmia sp!, {r4,lr}
+ bx lr
+_020C93FC:
+ mov r0, r4
+ mov r2, r3
+ add r1, lr, #0x7000000
+ bl MIi_CpuCopy32
+ ldmia sp!, {r4,lr}
+ bx lr
+ .balign 4
+_020C9414: .word 0x02106814
+
+ arm_func_start GXS_LoadOBJPltt
+GXS_LoadOBJPltt: ; 0x020C9418
+ stmdb sp!, {r4,lr}
+ ldr r3, _020C9478 ; =0x02106814
+ mov r4, r0
+ ldr r0, [r3, #0x0]
+ mvn r12, #0x0
+ mov lr, r1
+ mov r3, r2
+ cmp r0, r12
+ beq _020C945C
+ cmp r3, #0x1c
+ bls _020C945C
+ ldr r2, _020C947C ; =0x05000600
+ mov r1, r4
+ add r2, lr, r2
+ bl MI_DmaCopy16
+ ldmia sp!, {r4,lr}
+ bx lr
+_020C945C:
+ ldr r1, _020C947C ; =0x05000600
+ mov r0, r4
+ mov r2, r3
+ add r1, lr, r1
+ bl MIi_CpuCopy16
+ ldmia sp!, {r4,lr}
+ bx lr
+ .balign 4
+_020C9478: .word 0x02106814
+_020C947C: .word 0x05000600
+
+ arm_func_start GX_LoadOBJPltt
+GX_LoadOBJPltt: ; 0x020C9480
+ stmdb sp!, {r4,lr}
+ ldr r3, _020C94E0 ; =0x02106814
+ mov r4, r0
+ ldr r0, [r3, #0x0]
+ mvn r12, #0x0
+ mov lr, r1
+ mov r3, r2
+ cmp r0, r12
+ beq _020C94C4
+ cmp r3, #0x1c
+ bls _020C94C4
+ ldr r2, _020C94E4 ; =0x05000200
+ mov r1, r4
+ add r2, lr, r2
+ bl MI_DmaCopy16
+ ldmia sp!, {r4,lr}
+ bx lr
+_020C94C4:
+ ldr r1, _020C94E4 ; =0x05000200
+ mov r0, r4
+ mov r2, r3
+ add r1, lr, r1
+ bl MIi_CpuCopy16
+ ldmia sp!, {r4,lr}
+ bx lr
+ .balign 4
+_020C94E0: .word 0x02106814
+_020C94E4: .word 0x05000200
+
+ arm_func_start GXS_LoadBGPltt
+GXS_LoadBGPltt: ; 0x020C94E8
+ stmdb sp!, {r4,lr}
+ ldr r3, _020C9548 ; =0x02106814
+ mov r4, r0
+ ldr r0, [r3, #0x0]
+ mvn r12, #0x0
+ mov lr, r1
+ mov r3, r2
+ cmp r0, r12
+ beq _020C952C
+ cmp r3, #0x1c
+ bls _020C952C
+ ldr r2, _020C954C ; =0x05000400
+ mov r1, r4
+ add r2, lr, r2
+ bl MI_DmaCopy16
+ ldmia sp!, {r4,lr}
+ bx lr
+_020C952C:
+ ldr r1, _020C954C ; =0x05000400
+ mov r0, r4
+ mov r2, r3
+ add r1, lr, r1
+ bl MIi_CpuCopy16
+ ldmia sp!, {r4,lr}
+ bx lr
+ .balign 4
+_020C9548: .word 0x02106814
+_020C954C: .word 0x05000400
+
+ arm_func_start GX_LoadBGPltt
+GX_LoadBGPltt: ; 0x020C9550
+ stmdb sp!, {r4,lr}
+ ldr r3, _020C95A8 ; =0x02106814
+ mov r4, r0
+ ldr r0, [r3, #0x0]
+ mvn r12, #0x0
+ mov lr, r1
+ mov r3, r2
+ cmp r0, r12
+ beq _020C9590
+ cmp r3, #0x1c
+ bls _020C9590
+ mov r1, r4
+ add r2, lr, #0x5000000
+ bl MI_DmaCopy16
+ ldmia sp!, {r4,lr}
+ bx lr
+_020C9590:
+ mov r0, r4
+ mov r2, r3
+ add r1, lr, #0x5000000
+ bl MIi_CpuCopy16
+ ldmia sp!, {r4,lr}
+ bx lr
+ .balign 4
+_020C95A8: .word 0x02106814
+
+ arm_func_start GX_EndLoadClearImage
+GX_EndLoadClearImage: ; 0x020C95AC
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldr r0, _020C95F8 ; =0x02106814
+ mvn r1, #0x0
+ ldr r0, [r0, #0x0]
+ cmp r0, r1
+ beq _020C95CC
+ bl MI_WaitDma
+_020C95CC:
+ ldr r0, _020C95FC ; =0x021D33FC
+ ldr r0, [r0, #0x0]
+ bl GX_SetBankForClearImage
+ ldr r1, _020C95FC ; =0x021D33FC
+ mov r2, #0x0
+ ldr r0, _020C9600 ; =0x021D340C
+ str r2, [r1, #0x0]
+ str r2, [r0, #0x0]
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+ .balign 4
+_020C95F8: .word 0x02106814
+_020C95FC: .word 0x021D33FC
+_020C9600: .word 0x021D340C
+
+ arm_func_start GX_LoadClearImageDepth
+GX_LoadClearImageDepth: ; 0x020C9604
+ stmdb sp!, {r4,lr}
+ sub sp, sp, #0x8
+ ldr r3, _020C9670 ; =0x021D340C
+ ldr r2, _020C9674 ; =0x02106814
+ ldr r12, [r3, #0x0]
+ ldr lr, [r2, #0x0]
+ mvn r2, #0x0
+ mov r4, r0
+ mov r3, r1
+ cmp lr, r2
+ add r2, r12, #0x20000
+ beq _020C9658
+ mov r12, #0x0
+ str r12, [sp, #0x0]
+ mov r0, lr
+ mov r1, r4
+ str r12, [sp, #0x4]
+ bl MI_DmaCopy32Async
+ add sp, sp, #0x8
+ ldmia sp!, {r4,lr}
+ bx lr
+_020C9658:
+ mov r1, r2
+ mov r2, r3
+ bl MIi_CpuCopy32
+ add sp, sp, #0x8
+ ldmia sp!, {r4,lr}
+ bx lr
+ .balign 4
+_020C9670: .word 0x021D340C
+_020C9674: .word 0x02106814
+
+ arm_func_start GX_LoadClearImageColor
+GX_LoadClearImageColor: ; 0x020C9678
+ stmdb sp!, {r4,lr}
+ sub sp, sp, #0x8
+ ldr r2, _020C96E0 ; =0x02106814
+ ldr ip, _020C96E4 ; =0x021D340C
+ ldr lr, [r2, #0x0]
+ mvn r2, #0x0
+ mov r4, r0
+ mov r3, r1
+ cmp lr, r2
+ ldr r2, [r12, #0x0]
+ beq _020C96C8
+ mov r12, #0x0
+ str r12, [sp, #0x0]
+ mov r0, lr
+ mov r1, r4
+ str r12, [sp, #0x4]
+ bl MI_DmaCopy32Async
+ add sp, sp, #0x8
+ ldmia sp!, {r4,lr}
+ bx lr
+_020C96C8:
+ mov r1, r2
+ mov r2, r3
+ bl MIi_CpuCopy32
+ add sp, sp, #0x8
+ ldmia sp!, {r4,lr}
+ bx lr
+ .balign 4
+_020C96E0: .word 0x02106814
+_020C96E4: .word 0x021D340C
+
+ arm_func_start GX_BeginLoadClearImage
+GX_BeginLoadClearImage: ; 0x020C96E8
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ bl GX_ResetBankForClearImage
+ ldr r1, _020C979C ; =0x021D33FC
+ cmp r0, #0xc
+ str r0, [r1, #0x0]
+ addls pc, pc, r0, lsl #0x2
+ b _020C9790
+_020C9708:
+ b _020C9790
+_020C970C:
+ b _020C976C
+_020C9710:
+ b _020C973C
+_020C9714:
+ b _020C973C
+_020C9718:
+ b _020C9784
+_020C971C:
+ b _020C9790
+_020C9720:
+ b _020C9790
+_020C9724:
+ b _020C9790
+_020C9728:
+ b _020C9754
+_020C972C:
+ b _020C9790
+_020C9730:
+ b _020C9790
+_020C9734:
+ b _020C9790
+_020C9738:
+ b _020C9754
+_020C973C:
+ ldr r0, _020C97A0 ; =0x021D340C
+ mov r1, #0x6800000
+ str r1, [r0, #0x0]
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+_020C9754:
+ ldr r1, _020C97A4 ; =0x06840000
+ ldr r0, _020C97A0 ; =0x021D340C
+ add sp, sp, #0x4
+ str r1, [r0, #0x0]
+ ldmia sp!, {lr}
+ bx lr
+_020C976C:
+ ldr r1, _020C97A8 ; =0x067E0000
+ ldr r0, _020C97A0 ; =0x021D340C
+ add sp, sp, #0x4
+ str r1, [r0, #0x0]
+ ldmia sp!, {lr}
+ bx lr
+_020C9784:
+ ldr r1, _020C97AC ; =0x06820000
+ ldr r0, _020C97A0 ; =0x021D340C
+ str r1, [r0, #0x0]
+_020C9790:
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+ .balign 4
+_020C979C: .word 0x021D33FC
+_020C97A0: .word 0x021D340C
+_020C97A4: .word 0x06840000
+_020C97A8: .word 0x067E0000
+_020C97AC: .word 0x06820000
+
+ arm_func_start GX_EndLoadTexPltt
+GX_EndLoadTexPltt: ; 0x020C97B0
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldr r0, _020C97FC ; =0x02106814
+ mvn r1, #0x0
+ ldr r0, [r0, #0x0]
+ cmp r0, r1
+ beq _020C97D0
+ bl MI_WaitDma
+_020C97D0:
+ ldr r0, _020C9800 ; =0x021D3408
+ ldr r0, [r0, #0x0]
+ bl GX_SetBankForTexPltt
+ ldr r1, _020C9800 ; =0x021D3408
+ mov r2, #0x0
+ ldr r0, _020C9804 ; =0x021D3404
+ str r2, [r1, #0x0]
+ str r2, [r0, #0x0]
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+ .balign 4
+_020C97FC: .word 0x02106814
+_020C9800: .word 0x021D3408
+_020C9804: .word 0x021D3404
+
+ arm_func_start GX_LoadTexPltt
+GX_LoadTexPltt: ; 0x020C9808
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0xc
+ ldr ip, _020C9874 ; =0x021D3404
+ ldr r3, _020C9878 ; =0x02106814
+ ldr r4, [r12, #0x0]
+ ldr lr, [r3, #0x0]
+ mvn r12, #0x0
+ mov r5, r0
+ mov r3, r2
+ cmp lr, r12
+ add r4, r4, r1
+ beq _020C9860
+ mov r12, #0x0
+ str r12, [sp, #0x0]
+ mov r0, lr
+ mov r1, r5
+ mov r2, r4
+ str r12, [sp, #0x4]
+ bl MI_DmaCopy32Async
+ add sp, sp, #0xc
+ ldmia sp!, {r4-r5,lr}
+ bx lr
+_020C9860:
+ mov r1, r4
+ bl MIi_CpuCopy32
+ add sp, sp, #0xc
+ ldmia sp!, {r4-r5,lr}
+ bx lr
+ .balign 4
+_020C9874: .word 0x021D3404
+_020C9878: .word 0x02106814
+
+ arm_func_start GX_BeginLoadTexPltt
+GX_BeginLoadTexPltt: ; 0x020C987C
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ bl GX_ResetBankForTexPltt
+ mov r3, r0, asr #0x4
+ ldr r2, _020C98B8 ; =0x021D3408
+ ldr r1, _020C98BC ; =0x02103B3C
+ mov r3, r3, lsl #0x1
+ ldrh r3, [r1, r3]
+ ldr r1, _020C98C0 ; =0x021D3404
+ str r0, [r2, #0x0]
+ mov r0, r3, lsl #0xc
+ str r0, [r1, #0x0]
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+ .balign 4
+_020C98B8: .word 0x021D3408
+_020C98BC: .word 0x02103B3C
+_020C98C0: .word 0x021D3404
+
+ arm_func_start GX_EndLoadTex
+GX_EndLoadTex: ; 0x020C98C4
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldr r0, _020C9920 ; =0x02106814
+ mvn r1, #0x0
+ ldr r0, [r0, #0x0]
+ cmp r0, r1
+ beq _020C98E4
+ bl MI_WaitDma
+_020C98E4:
+ ldr r0, _020C9924 ; =0x021D3410
+ ldr r0, [r0, #0x0]
+ bl GX_SetBankForTex
+ ldr r3, _020C9928 ; =0x021D3418
+ mov r12, #0x0
+ ldr r2, _020C992C ; =0x021D3414
+ ldr r1, _020C9930 ; =0x021D3400
+ ldr r0, _020C9924 ; =0x021D3410
+ str r12, [r3, #0x0]
+ str r12, [r2, #0x0]
+ str r12, [r1, #0x0]
+ str r12, [r0, #0x0]
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+ .balign 4
+_020C9920: .word 0x02106814
+_020C9924: .word 0x021D3410
+_020C9928: .word 0x021D3418
+_020C992C: .word 0x021D3414
+_020C9930: .word 0x021D3400
+
+ arm_func_start GX_LoadTex
+GX_LoadTex: ; 0x020C9934
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0xc
+ ldr r3, _020C9A88 ; =0x021D3414
+ mov r7, r0
+ ldr r5, [r3, #0x0]
+ mov r6, r2
+ cmp r5, #0x0
+ ldreq r0, _020C9A8C ; =0x021D3400
+ ldreq r0, [r0, #0x0]
+ addeq r2, r0, r1
+ beq _020C9A34
+ ldr r0, _020C9A90 ; =0x021D3418
+ add r2, r1, r6
+ ldr r4, [r0, #0x0]
+ cmp r2, r4
+ ldrlo r0, _020C9A8C ; =0x021D3400
+ ldrcc r0, [r0, #0x0]
+ addcc r2, r0, r1
+ blo _020C9A34
+ cmp r1, r4
+ addcs r0, r5, r1
+ subcs r2, r0, r4
+ bhs _020C9A34
+ ldr r2, _020C9A8C ; =0x021D3400
+ ldr r0, _020C9A94 ; =0x02106814
+ ldr r3, [r2, #0x0]
+ ldr r0, [r0, #0x0]
+ mvn r2, #0x0
+ cmp r0, r2
+ sub r4, r4, r1
+ add r2, r3, r1
+ beq _020C99CC
+ cmp r4, #0x30
+ bls _020C99CC
+ mov r1, r7
+ mov r3, r4
+ bl MI_DmaCopy32
+ b _020C99DC
+_020C99CC:
+ mov r1, r2
+ mov r0, r7
+ mov r2, r4
+ bl MIi_CpuCopy32
+_020C99DC:
+ ldr r0, _020C9A94 ; =0x02106814
+ mvn r1, #0x0
+ ldr r0, [r0, #0x0]
+ cmp r0, r1
+ beq _020C9A18
+ mov r12, #0x0
+ str r12, [sp, #0x0]
+ mov r2, r5
+ add r1, r7, r4
+ sub r3, r6, r4
+ str r12, [sp, #0x4]
+ bl MI_DmaCopy32Async
+ add sp, sp, #0xc
+ ldmia sp!, {r4-r7,lr}
+ bx lr
+_020C9A18:
+ mov r1, r5
+ add r0, r7, r4
+ sub r2, r6, r4
+ bl MIi_CpuCopy32
+ add sp, sp, #0xc
+ ldmia sp!, {r4-r7,lr}
+ bx lr
+_020C9A34:
+ ldr r0, _020C9A94 ; =0x02106814
+ mvn r1, #0x0
+ ldr r0, [r0, #0x0]
+ cmp r0, r1
+ beq _020C9A6C
+ mov r4, #0x0
+ str r4, [sp, #0x0]
+ mov r1, r7
+ mov r3, r6
+ str r4, [sp, #0x4]
+ bl MI_DmaCopy32Async
+ add sp, sp, #0xc
+ ldmia sp!, {r4-r7,lr}
+ bx lr
+_020C9A6C:
+ mov r1, r2
+ mov r0, r7
+ mov r2, r6
+ bl MIi_CpuCopy32
+ add sp, sp, #0xc
+ ldmia sp!, {r4-r7,lr}
+ bx lr
+ .balign 4
+_020C9A88: .word 0x021D3414
+_020C9A8C: .word 0x021D3400
+_020C9A90: .word 0x021D3418
+_020C9A94: .word 0x02106814
+
+ arm_func_start GX_BeginLoadTex
+GX_BeginLoadTex: ; 0x020C9A98
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ bl GX_ResetBankForTex
+ mov r1, #0x6
+ mul r12, r0, r1
+ ldr r3, _020C9AFC ; =0x02103B4C
+ ldr r2, _020C9B00 ; =0x02103B4E
+ ldr r1, _020C9B04 ; =0x02103B50
+ ldrh r5, [r3, r12]
+ ldrh r4, [r2, r12]
+ ldrh lr, [r1, r12]
+ ldr ip, _020C9B08 ; =0x021D3410
+ ldr r3, _020C9B0C ; =0x021D3400
+ mov r5, r5, lsl #0xc
+ ldr r2, _020C9B10 ; =0x021D3414
+ mov r4, r4, lsl #0xc
+ ldr r1, _020C9B14 ; =0x021D3418
+ mov lr, lr, lsl #0xc
+ str r0, [r12, #0x0]
+ str r5, [r3, #0x0]
+ str r4, [r2, #0x0]
+ str lr, [r1, #0x0]
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,lr}
+ bx lr
+ .balign 4
+_020C9AFC: .word 0x02103B4C
+_020C9B00: .word 0x02103B4E
+_020C9B04: .word 0x02103B50
+_020C9B08: .word 0x021D3410
+_020C9B0C: .word 0x021D3400
+_020C9B10: .word 0x021D3414
+_020C9B14: .word 0x021D3418
+
+ arm_func_start G3_EndMakeDL
+G3_EndMakeDL: ; 0x020C9B18
+ ldr r3, [r0, #0x0]
+ ldr r2, [r0, #0x8]
+ cmp r2, r3
+ moveq r0, #0x0
+ bxeq lr
+ and r1, r3, #0x3
+ cmp r1, #0x3
+ addls pc, pc, r1, lsl #0x2
+ b _020C9B8C
+_020C9B3C:
+ b _020C9B4C
+_020C9B40:
+ b _020C9B54
+_020C9B44:
+ b _020C9B64
+_020C9B48:
+ b _020C9B78
+_020C9B4C:
+ sub r0, r3, r2
+ bx lr
+_020C9B54:
+ add r1, r3, #0x1
+ str r1, [r0, #0x0]
+ mov r1, #0x0
+ strb r1, [r3, #0x0]
+_020C9B64:
+ ldr r3, [r0, #0x0]
+ mov r1, #0x0
+ add r2, r3, #0x1
+ str r2, [r0, #0x0]
+ strb r1, [r3, #0x0]
+_020C9B78:
+ ldr r3, [r0, #0x0]
+ mov r1, #0x0
+ add r2, r3, #0x1
+ str r2, [r0, #0x0]
+ strb r1, [r3, #0x0]
+_020C9B8C:
+ ldr r1, [r0, #0x10]
+ cmp r1, #0x0
+ beq _020C9BB0
+ ldr r3, [r0, #0x4]
+ mov r1, #0x0
+ add r2, r3, #0x4
+ str r2, [r0, #0x4]
+ str r1, [r3, #0x0]
+ str r1, [r0, #0x10]
+_020C9BB0:
+ ldr r1, [r0, #0x4]
+ str r1, [r0, #0x0]
+ ldr r1, [r0, #0x0]
+ ldr r0, [r0, #0x8]
+ sub r0, r1, r0
+ bx lr
+
+ arm_func_start G3_BeginMakeDL
+G3_BeginMakeDL: ; 0x020C9BC8
+ str r2, [r0, #0xc]
+ str r1, [r0, #0x8]
+ str r1, [r0, #0x0]
+ add r1, r1, #0x4
+ str r1, [r0, #0x4]
+ mov r1, #0x0
+ str r1, [r0, #0x10]
+ bx lr
+
+ arm_func_start GX_SendFifo48B
+GX_SendFifo48B: ; 0x020C9BE8
+ ldmia r0!, {r2-r3,r12}
+ stmia r1, {r2-r3,r12}
+ ldmia r0!, {r2-r3,r12}
+ stmia r1, {r2-r3,r12}
+ ldmia r0!, {r2-r3,r12}
+ stmia r1, {r2-r3,r12}
+ ldmia r0!, {r2-r3,r12}
+ stmia r1, {r2-r3,r12}
+ bx lr
diff --git a/arm9/asm/MATH_arm9.s b/arm9/asm/MATH_arm9.s
new file mode 100644
index 00000000..02dcfbcf
--- /dev/null
+++ b/arm9/asm/MATH_arm9.s
@@ -0,0 +1,320 @@
+ .include "asm/macros.inc"
+ .include "global.inc"
+
+ .text
+
+ arm_func_start MATH_CountPopulation
+MATH_CountPopulation: ; 0x020DDC5C
+ ldr r1, _020DDC94 ; =0x55555555
+ ldr r2, _020DDC98 ; =0x33333333
+ and r1, r1, r0, lsr #0x1
+ sub r0, r0, r1
+ and r1, r0, r2
+ and r0, r2, r0, lsr #0x2
+ add r1, r1, r0
+ ldr r0, _020DDC9C ; =0x0F0F0F0F
+ add r1, r1, r1, lsr #0x4
+ and r0, r1, r0
+ add r0, r0, r0, lsr #0x8
+ add r0, r0, r0, lsr #0x10
+ and r0, r0, #0xff
+ bx lr
+ .balign 4
+_020DDC94: .word 0x55555555
+_020DDC98: .word 0x33333333
+_020DDC9C: .word 0x0F0F0F0F
+
+ arm_func_start MATH_CalcSHA1
+MATH_CalcSHA1: ; 0x020DDCA0
+ stmdb sp!, {r4-r6,lr}
+ sub sp, sp, #0x68
+ mov r6, r0
+ add r0, sp, #0x0
+ mov r5, r1
+ mov r4, r2
+ bl MATH_SHA1Init
+_020DDCBC: ; 0x020DDCBC
+ add r0, sp, #0x0
+ mov r1, r5
+ mov r2, r4
+ bl MATH_SHA1Update
+_020DDCCC: ; 0x020DDCCC
+ add r0, sp, #0x0
+ mov r1, r6
+ bl MATH_SHA1GetHash
+ add sp, sp, #0x68
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+
+ arm_func_start MATH_CalcMD5
+MATH_CalcMD5: ; 0x020DDCE4
+ stmdb sp!, {r4-r6,lr}
+ sub sp, sp, #0x58
+ mov r6, r0
+ add r0, sp, #0x0
+ mov r5, r1
+ mov r4, r2
+ bl DGT_Hash1Reset
+_020DDD00: ; 0x020DDD00
+ add r0, sp, #0x0
+ mov r1, r5
+ mov r2, r4
+ bl DGT_Hash1SetSource
+ add r1, sp, #0x0
+ mov r0, r6
+ bl DGT_Hash1GetDigest_R
+ add sp, sp, #0x58
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+
+ arm_func_start MATH_CalcCRC32
+MATH_CalcCRC32: ; 0x020DDD28
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ mov lr, r1
+ mvn r12, #0x0
+ mov r3, r2
+ add r1, sp, #0x0
+ mov r2, lr
+ str r12, [sp, #0x0]
+ bl MATHi_CRC32UpdateRev
+_020DDD4C: ; 0x020DDD4C
+ ldr r0, [sp, #0x0]
+ mvn r0, r0
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+
+ arm_func_start MATH_CalcCRC16CCITT
+MATH_CalcCRC16CCITT: ; 0x020DDD60
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldr ip, _020DDD94 ; =0x0000FFFF
+ mov lr, r1
+ mov r3, r2
+ add r1, sp, #0x0
+ mov r2, lr
+ strh r12, [sp, #0x0]
+ bl MATHi_CRC16Update
+ ldrh r0, [sp, #0x0]
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+ .balign 4
+_020DDD94: .word 0x0000FFFF
+
+ arm_func_start MATH_CalcCRC16
+MATH_CalcCRC16: ; 0x020DDD98
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ mov lr, r1
+ mov r12, #0x0
+ mov r3, r2
+ add r1, sp, #0x0
+ mov r2, lr
+ strh r12, [sp, #0x0]
+ bl MATHi_CRC16UpdateRev
+ ldrh r0, [sp, #0x0]
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+
+ arm_func_start MATH_CalcCRC8
+MATH_CalcCRC8: ; 0x020DDDCC
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ mov lr, r1
+ mov r12, #0x0
+ mov r3, r2
+ add r1, sp, #0x0
+ mov r2, lr
+ strb r12, [sp, #0x0]
+ bl MATHi_CRC8Update
+_020DDDF0: ; 0x020DDDF0
+ ldrb r0, [sp, #0x0]
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+
+ arm_func_start MATHi_CRC32UpdateRev
+MATHi_CRC32UpdateRev:
+ stmdb sp!, {r4,lr}
+ cmp r3, #0x0
+ ldr r4, [r1, #0x0]
+ mov lr, #0x0
+ bls _020DDE38
+_020DDE14:
+ ldrb r12, [r2, #0x0]
+ add lr, lr, #0x1
+ cmp lr, r3
+ eor r12, r4, r12
+ and r12, r12, #0xff
+ ldr r12, [r0, r12, lsl #0x2]
+ add r2, r2, #0x1
+ eor r4, r12, r4, lsr #0x8
+ blo _020DDE14
+_020DDE38:
+ str r4, [r1, #0x0]
+ ldmia sp!, {r4,lr}
+ bx lr
+
+ arm_func_start MATHi_CRC32InitTableRev
+MATHi_CRC32InitTableRev: ; 0x020DDE44
+ stmdb sp!, {r4,lr}
+ mov lr, #0x0
+ mov r3, lr
+_020DDE50:
+ mov r4, lr
+ mov r12, r3
+_020DDE58:
+ ands r2, r4, #0x1
+ eorne r4, r1, r4, lsr #0x1
+ add r12, r12, #0x1
+ moveq r4, r4, lsr #0x1
+ cmp r12, #0x8
+ blo _020DDE58
+ str r4, [r0, lr, lsl #0x2]
+ add lr, lr, #0x1
+ cmp lr, #0x100
+ blo _020DDE50
+ ldmia sp!, {r4,lr}
+ bx lr
+
+ arm_func_start MATHi_CRC16UpdateRev
+MATHi_CRC16UpdateRev: ; 0x020DDE88
+ stmdb sp!, {r4,lr}
+ cmp r3, #0x0
+ ldrh r4, [r1, #0x0]
+ mov lr, #0x0
+ bls _020DDEC4
+_020DDE9C:
+ ldrb r12, [r2, #0x0]
+ add lr, lr, #0x1
+ cmp lr, r3
+ eor r12, r4, r12
+ and r12, r12, #0xff
+ mov r12, r12, lsl #0x1
+ ldrh r12, [r0, r12]
+ add r2, r2, #0x1
+ eor r4, r12, r4, lsr #0x8
+ blo _020DDE9C
+_020DDEC4:
+ strh r4, [r1, #0x0]
+ ldmia sp!, {r4,lr}
+ bx lr
+
+ arm_func_start MATHi_CRC16Update
+MATHi_CRC16Update: ; 0x020DDED0
+ stmdb sp!, {r4,lr}
+ cmp r3, #0x0
+ ldrh r4, [r1, #0x0]
+ mov lr, #0x0
+ bls _020DDF0C
+_020DDEE4:
+ ldrb r12, [r2, #0x0]
+ add lr, lr, #0x1
+ cmp lr, r3
+ eor r12, r12, r4, lsr #0x8
+ and r12, r12, #0xff
+ mov r12, r12, lsl #0x1
+ ldrh r12, [r0, r12]
+ add r2, r2, #0x1
+ eor r4, r12, r4, lsl #0x8
+ blo _020DDEE4
+_020DDF0C:
+ strh r4, [r1, #0x0]
+ ldmia sp!, {r4,lr}
+ bx lr
+
+ arm_func_start MATHi_CRC16InitTableRev
+MATHi_CRC16InitTableRev: ; 0x020DDF18
+ stmdb sp!, {r4,lr}
+ mov lr, #0x0
+ mov r3, lr
+_020DDF24:
+ mov r4, lr
+ mov r12, r3
+_020DDF2C:
+ ands r2, r4, #0x1
+ eorne r4, r1, r4, lsr #0x1
+ add r12, r12, #0x1
+ moveq r4, r4, lsr #0x1
+ cmp r12, #0x8
+ blo _020DDF2C
+ mov r2, lr, lsl #0x1
+ add lr, lr, #0x1
+ strh r4, [r0, r2]
+ cmp lr, #0x100
+ blo _020DDF24
+ ldmia sp!, {r4,lr}
+ bx lr
+
+ arm_func_start MATHi_CRC16InitTable
+MATHi_CRC16InitTable: ; 0x020DDF60
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ mov r4, #0x0
+ mov r12, r4
+ mov r3, r4
+_020DDF74:
+ mov r5, r12
+ mov lr, r3
+_020DDF7C:
+ ands r2, r5, #0x8000
+ eorne r5, r1, r5, lsl #0x1
+ add lr, lr, #0x1
+ moveq r5, r5, lsl #0x1
+ cmp lr, #0x8
+ blo _020DDF7C
+ mov r2, r4, lsl #0x1
+ add r4, r4, #0x1
+ strh r5, [r0, r2]
+ cmp r4, #0x100
+ add r12, r12, #0x100
+ blo _020DDF74
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,lr}
+ bx lr
+
+ arm_func_start MATHi_CRC8Update
+MATHi_CRC8Update:
+ stmdb sp!, {r4,lr}
+ cmp r3, #0x0
+ ldrb r4, [r1, #0x0]
+ mov lr, #0x0
+ bls _020DDFEC
+_020DDFCC:
+ ldrb r12, [r2, #0x0]
+ add lr, lr, #0x1
+ cmp lr, r3
+ eor r12, r4, r12
+ and r12, r12, #0xff
+ add r2, r2, #0x1
+ ldrb r4, [r0, r12]
+ blo _020DDFCC
+_020DDFEC:
+ strb r4, [r1, #0x0]
+ ldmia sp!, {r4,lr}
+ bx lr
+
+ arm_func_start MATHi_CRC8InitTable
+MATHi_CRC8InitTable: ; 0x020DDFF8
+ stmdb sp!, {r4,lr}
+ mov lr, #0x0
+ mov r3, lr
+_020DE004:
+ mov r4, lr
+ mov r12, r3
+_020DE00C:
+ ands r2, r4, #0x80
+ eorne r4, r1, r4, lsl #0x1
+ add r12, r12, #0x1
+ moveq r4, r4, lsl #0x1
+ cmp r12, #0x8
+ blo _020DE00C
+ strb r4, [r0, lr]
+ add lr, lr, #0x1
+ cmp lr, #0x100
+ blo _020DE004
+ ldmia sp!, {r4,lr}
+ bx lr
diff --git a/arm9/asm/MI_arm9.s b/arm9/asm/MI_arm9.s
new file mode 100644
index 00000000..82747b38
--- /dev/null
+++ b/arm9/asm/MI_arm9.s
@@ -0,0 +1,1082 @@
+ .include "asm/macros.inc"
+ .include "global.inc"
+ .section .text
+
+
+ arm_func_start MI_SetWramBank
+MI_SetWramBank:
+ ldr r1, _020CD870 ; =0x04000247
+ strb r0, [r1, #0x0]
+ bx lr
+ .balign 4
+_020CD870: .word 0x04000247
+
+ arm_func_start MIi_CheckDma0SourceAddress
+MIi_CheckDma0SourceAddress:
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ cmp r0, #0x0
+ addne sp, sp, #0x4
+ ldmneia sp!, {lr}
+ bxne lr
+ cmp r3, #0x0
+ and r0, r1, #0xff000000
+ beq _020CD8A4
+ cmp r3, #0x800000
+ subeq r1, r1, r2
+ b _020CD8A8
+_020CD8A4:
+ add r1, r1, r2
+_020CD8A8:
+ cmp r0, #0x4000000
+ beq _020CD8D4
+ cmp r0, #0x8000000
+ bhs _020CD8D4
+ and r0, r1, #0xff000000
+ cmp r0, #0x4000000
+ beq _020CD8D4
+ cmp r0, #0x8000000
+ addcc sp, sp, #0x4
+ ldmccia sp!, {lr}
+ bxcc lr
+_020CD8D4:
+ bl OS_Terminate
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+
+ arm_func_start MIi_CheckAnotherAutoDMA
+MIi_CheckAnotherAutoDMA: ; 0x020CD8E4
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0x4
+ ldr r4, _020CD994 ; =0x040000B8
+ mov r7, r0
+ mov r6, r1
+ mov r5, #0x0
+_020CD8FC:
+ cmp r5, r7
+ beq _020CD978
+ ldr r1, [r4, #0x0]
+ ands r0, r1, #0x80000000
+ beq _020CD978
+ and r0, r1, #0x38000000
+ cmp r0, r6
+ beq _020CD978
+ cmp r0, #0x8000000
+ bne _020CD92C
+ cmp r6, #0x10000000
+ beq _020CD978
+_020CD92C:
+ cmp r0, #0x10000000
+ bne _020CD93C
+ cmp r6, #0x8000000
+ beq _020CD978
+_020CD93C:
+ cmp r0, #0x18000000
+ beq _020CD974
+ cmp r0, #0x20000000
+ beq _020CD974
+ cmp r0, #0x28000000
+ beq _020CD974
+ cmp r0, #0x30000000
+ beq _020CD974
+ cmp r0, #0x38000000
+ beq _020CD974
+ cmp r0, #0x8000000
+ beq _020CD974
+ cmp r0, #0x10000000
+ bne _020CD978
+_020CD974:
+ bl OS_Terminate
+_020CD978:
+ add r5, r5, #0x1
+ cmp r5, #0x3
+ add r4, r4, #0xc
+ blt _020CD8FC
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r7,lr}
+ bx lr
+ .balign 4
+_020CD994: .word 0x040000B8
+
+ arm_func_start MI_StopDma
+MI_StopDma: ; 0x020CD998
+ stmdb sp!, {r4,lr}
+ mov r4, r0
+ bl OS_DisableInterrupts
+ mov r1, #0x6
+ mul r1, r4, r1
+ add r1, r1, #0x5
+ mov r1, r1, lsl #0x1
+ add r1, r1, #0x4000000
+ ldrh r2, [r1, #0xb0]
+ cmp r4, #0x0
+ bic r2, r2, #0x3a00
+ strh r2, [r1, #0xb0]
+ ldrh r2, [r1, #0xb0]
+ bic r2, r2, #0x8000
+ strh r2, [r1, #0xb0]
+ ldrh r2, [r1, #0xb0]
+ ldrh r1, [r1, #0xb0]
+ bne _020CDA08
+ mov r1, #0xc
+ mul r12, r4, r1
+ ldr r1, _020CDA14 ; =0x040000B0
+ add r2, r12, #0x4000000
+ mov r3, #0x0
+ str r3, [r2, #0xb0]
+ add r2, r12, r1
+ ldr r1, _020CDA18 ; =0x81400001
+ str r3, [r2, #0x4]
+ str r1, [r2, #0x8]
+_020CDA08:
+ bl OS_RestoreInterrupts
+ ldmia sp!, {r4,lr}
+ bx lr
+ .balign 4
+_020CDA14: .word 0x040000B0
+_020CDA18: .word 0x81400001
+
+ arm_func_start MI_WaitDma
+MI_WaitDma:
+ stmdb sp!, {r4,lr}
+ mov r4, r0
+ bl OS_DisableInterrupts
+ mov r1, #0x3
+ mul r2, r4, r1
+ ldr r1, _020CDA84 ; =0x040000B0
+ add r2, r2, #0x2
+ add r2, r1, r2, lsl #0x2
+_020CDA3C:
+ ldr r1, [r2, #0x0]
+ ands r1, r1, #0x80000000
+ bne _020CDA3C
+ cmp r4, #0x0
+ bne _020CDA78
+ mov r1, #0xc
+ mul r12, r4, r1
+ ldr r1, _020CDA84 ; =0x040000B0
+ add r2, r12, #0x4000000
+ mov r3, #0x0
+ str r3, [r2, #0xb0]
+ add r2, r12, r1
+ ldr r1, _020CDA88 ; =0x81400001
+ str r3, [r2, #0x4]
+ str r1, [r2, #0x8]
+_020CDA78:
+ bl OS_RestoreInterrupts
+ ldmia sp!, {r4,lr}
+ bx lr
+ .balign 4
+_020CDA84: .word 0x040000B0
+_020CDA88: .word 0x81400001
+
+ arm_func_start MI_DmaCopy32Async
+MI_DmaCopy32Async: ; 0x020CDA8C
+ stmdb sp!, {r4-r8,lr}
+ mov r5, r3
+ mov r6, r2
+ mov r2, r5
+ mov r3, #0x0
+ mov r8, r0
+ mov r7, r1
+ ldr r4, [sp, #0x18]
+ bl MIi_CheckDma0SourceAddress
+_020CDAB0:
+ cmp r5, #0x0
+ bne _020CDAD4
+ cmp r4, #0x0
+ ldmeqia sp!, {r4-r8, lr}
+ bxeq lr
+ ldr r0, [sp, #0x1C]
+ blx r4
+ ldmia sp!, {r4-r8, lr}
+ bx lr
+_020CDAD4:
+ mov r0, r8
+ bl MI_WaitDma
+ cmp r4, #0x0
+ beq _020CDB14
+ ldr r2, [sp, #0x1C]
+ mov r0, r8
+ mov r1, r4
+ bl OSi_EnterDmaCallback
+ mov r3, r5, lsr #0x2
+ mov r0, r8
+ mov r1, r7
+ mov r2, r6
+ orr r3, r3, #0xc4000000
+ bl MIi_DmaSetParams
+ ldmia sp!, {r4-r8, lr}
+ bx lr
+_020CDB14:
+ mov r3, r5, lsr #0x2
+ mov r0, r8
+ mov r1, r7
+ mov r2, r6
+ orr r3, r3, #0x84000000
+ bl MIi_DmaSetParams
+ ldmia sp!, {r4-r8, lr}
+ bx lr
+
+ arm_func_start MI_DmaFill32Async
+MI_DmaFill32Async: ; 0x020CDB34
+ stmdb sp!, {r4-r8,lr}
+ movs r4, r3
+ mov r7, r0
+ mov r6, r1
+ mov r5, r2
+ ldr r8, [sp, #0x18]
+ bne _020CDB6C
+ cmp r8, #0x0
+ ldmeqia sp!, {r4-r8,lr}
+ bxeq lr
+ ldr r0, [sp, #0x1c]
+ blx r8
+ ldmia sp!, {r4-r8,lr}
+ bx lr
+_020CDB6C:
+ bl MI_WaitDma
+_020CDB70:
+ cmp r8, #0x0
+ beq _020CDBC8
+ ldr r2, [sp, #0x1C]
+ mov r0, r7
+ mov r1, r8
+ bl OSi_EnterDmaCallback
+ bl OS_DisableInterrupts
+ mov r3, r4, lsr #2
+ ldr r1, _20CDC08
+ mov r2, r7, lsl #2
+ add r2, r2, #0x4000000
+ str r5, [r2, #0xE0]
+ mov r4, r0
+ add r1, r1, r7, lsl #0x2
+ mov r0, r7
+ mov r2, r6
+ orr r3, r3, #0xc5000000
+ bl MIi_DmaSetParams_noInt
+ mov r0, r4
+ bl OS_RestoreInterrupts
+ ldmia sp!, {r4-r8,lr}
+ bx lr
+_020CDBC8:
+ bl OS_DisableInterrupts
+ ldr r1, _20CDC08
+ mov r2, r7, lsl #0x2
+ mov r3, r4, lsr #0x2
+ mov r4, r0
+ add ip, r2, #0x4000000
+ mov r0, r7
+ mov r2, r6
+ add r1, r1, r7, lsl #0x2
+ orr r3, r3, #0x85000000
+ str r5, [ip, #0xE0]
+ bl MIi_DmaSetParams_noInt
+ mov r0, r4
+ bl OS_RestoreInterrupts
+ ldmia sp!, {r4-r8,lr}
+ bx lr
+_20CDC08: .word 0x040000E0
+
+ arm_func_start MI_DmaCopy16
+MI_DmaCopy16: ; 0x020CDC0C
+ stmdb sp!, {r4-r8,lr}
+ movs r5, r3
+ mov r8, r0
+ mov r7, r1
+ mov r6, r2
+ ldmeqia sp!, {r4-r8,lr}
+ bxeq lr
+ mov r2, r5
+ mov r3, #0x0
+ bl MIi_CheckDma0SourceAddress
+ mov r0, #0x3
+ mul r1, r8, r0
+ ldr r0, _020CDC80 ; =0x040000B0
+ add r1, r1, #0x2
+ add r4, r0, r1, lsl #0x2
+_020CDC48:
+ ldr r0, [r4, #0x0]
+ ands r0, r0, #0x80000000
+ bne _020CDC48
+ mov r3, r5, lsr #0x1
+ mov r0, r8
+ mov r1, r7
+ mov r2, r6
+ orr r3, r3, #0x80000000
+ bl MIi_DmaSetParams_wait
+_020CDC6C:
+ ldr r0, [r4]
+ ands r0, r0, #0x80000000
+ bne _020CDC6C
+ ldmia sp!, {r4-r8,lr}
+ bx lr
+_020CDC80: .word 0x040000B0
+
+ arm_func_start MI_DmaCopy32
+MI_DmaCopy32: ; 0x020CDC84
+ stmdb sp!, {r4-r8,lr}
+ mov r5, r3
+ mov r6, r2
+ mov r2, r5
+ mov r3, #0x0
+ mov r8, r0
+ mov r7, r1
+ bl MIi_CheckDma0SourceAddress
+_020CDCA4:
+ cmp r5, #0x0
+ ldmeqia sp!, {r4-r8,lr}
+ bxeq lr
+ mov r0, #0x3
+ mul r1, r8, r0
+ ldr r0, _020CDCFC
+ add r1, r1, #0x2
+ add r4, r0, r1, lsl #0x2
+_020CDCC4:
+ ldr r0, [r4]
+ ands r0, r0, #0x80000000
+ bne _020CDCC4
+ mov r3, r5, lsr #0x2
+ mov r0, r8
+ mov r1, r7
+ mov r2, r6
+ orr r3, r3, #0x84000000
+ bl MIi_DmaSetParams_wait
+_020CDCE8:
+ ldr r0, [r4]
+ ands r0, r0, #0x80000000
+ bne _020CDCE8
+ ldmia sp!, {r4-r8,lr}
+ bx lr
+_020CDCFC: .word 0x040000B0
+
+ arm_func_start MI_DmaFill32
+MI_DmaFill32: ; 0x020CDD00
+ stmdb sp!, {r4-r8,lr}
+ movs r4, r3
+ mov r8, r0
+ mov r7, r1
+ mov r6, r2
+ ldmeqia sp!, {r4-r8,lr}
+ bxeq lr
+ mov r0, #0x3
+ mul r1, r8, r0
+ ldr r0, _020CDD88 ; =0x040000B0
+ add r1, r1, #0x2
+ add r5, r0, r1, lsl #0x2
+_020CDD30:
+ ldr r0, [r5, #0x0]
+ ands r0, r0, #0x80000000
+ bne _020CDD30
+ bl OS_DisableInterrupts
+ ldr r1, _020CDD8C ; =0x040000E0
+ mov r2, r8, lsl #0x2
+ mov r3, r4, lsr #0x2
+ mov r4, r0
+ add r12, r2, #0x4000000
+ mov r0, r8
+ mov r2, r7
+ add r1, r1, r8, lsl #0x2
+ orr r3, r3, #0x85000000
+ str r6, [r12, #0xe0]
+ bl MIi_DmaSetParams_wait_noInt
+ mov r0, r4
+ bl OS_RestoreInterrupts
+_020CDD74:
+ ldr r0, [r5]
+ ands r0, r0, #0x80000000
+ bne _020CDD74
+ ldmia sp!, {r4-r8,lr}
+ bx lr
+_020CDD88: .word 0x040000B0
+_020CDD8C: .word 0x040000E0
+
+ arm_func_start MI_HBlankDmaCopy16
+MI_HBlankDmaCopy16: ; 0x020CDD90
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0x4
+ mov r6, r1
+ mov r7, r0
+ mov r4, r3
+ mov r1, #0x10000000
+ mov r5, r2
+ bl MIi_CheckAnotherAutoDMA
+ mov r0, r7
+ mov r1, r6
+ mov r2, r4
+ mov r3, #0x0
+ bl MIi_CheckDma0SourceAddress
+_020CDDC4:
+ cmp r4, #0x0
+ addeq sp, sp, #0x4
+ ldmeqia sp!, {r4-r7, lr}
+ bxeq lr
+ mov r0, r7
+ bl MI_WaitDma
+ ldr r3, _020CDE00
+ mov r0, r7
+ mov r1, r6
+ mov r2, r5
+ orr r3, r3, r4, lsr #0x1
+ bl MIi_DmaSetParams
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r7,lr}
+ bx lr
+_020CDE00: .word 0x92600000
+
+ arm_func_start MI_HBlankDmaCopy32
+MI_HBlankDmaCopy32: ; 0x020CDE04
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0x4
+ mov r6, r1
+ mov r7, r0
+ mov r4, r3
+ mov r1, #0x10000000
+ mov r5, r2
+ bl MIi_CheckAnotherAutoDMA
+ mov r0, r7
+ mov r1, r6
+ mov r2, r4
+ mov r3, #0x0
+ bl MIi_CheckDma0SourceAddress
+_020CDE38:
+ cmp r4, #0x0
+ addeq sp, sp, #0x4
+ ldmeqia sp!, {r4-r7,lr}
+ bxeq lr
+ mov r0, r7
+ bl MI_WaitDma
+ ldr r3, _020CDE74
+ mov r0, r7
+ mov r1, r6
+ mov r2, r5
+ orr r3, r3, r4, lsr #0x2
+ bl MIi_DmaSetParams
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r7,lr}
+ bx lr
+_020CDE74: .word 0x96600000
+
+ arm_func_start MIi_DMAFastCallback
+MIi_DMAFastCallback: ; 0x020CDE78
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldr r0, _020CDEB4 ; =0x021D37FC
+ mov r2, #0x0
+ ldr r1, [r0, #0x10]
+ str r2, [r0, #0x0]
+ cmp r1, #0x0
+ addeq sp, sp, #0x4
+ ldr r0, [r0, #0x14]
+ ldmeqia sp!, {lr}
+ bxeq lr
+ blx r1
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+ .balign 4
+_020CDEB4: .word 0x021D37FC
+
+ arm_func_start MI_SendGXCommandAsyncFast
+MI_SendGXCommandAsyncFast: ; 0x020CDEB8
+ stmdb sp!, {r4-r6,lr}
+ movs r4, r2
+ mov r6, r0
+ mov r5, r1
+ bne _020CDEE8
+ cmp r3, #0x0
+ ldmeqia sp!, {r4-r6,lr}
+ bxeq lr
+ ldr r0, [sp, #0x10]
+ blx r3
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+_020CDEE8:
+ ldr r2, _020CDF6C ; =0x021D37FC
+ ldr r0, [r2, #0x0]
+ cmp r0, #0x0
+ bne _020CDEE8
+ ldr r12, [sp, #0x10]
+ mov lr, #0x1
+ mov r0, r6
+ mov r1, #0x38000000
+ str lr, [r2, #0x0]
+ str r6, [r2, #0x4]
+ str r3, [r2, #0x10]
+ str r12, [r2, #0x14]
+ bl MIi_CheckAnotherAutoDMA
+ mov r0, r6
+ mov r1, r5
+ mov r2, r4
+ mov r3, #0x0
+ bl MIi_CheckDma0SourceAddress
+ mov r0, r6
+ bl MI_WaitDma
+ mov r0, r6
+ ldr r1, _020CDF70 ; =MIi_DMAFastCallback
+ mov r2, #0x0
+ bl OSi_EnterDmaCallback
+ mov r0, r6
+ mov r1, r5
+ ldr r2, _020CDF74 ; =0x04000400
+ mov r3, #0x3c00000
+ rsb r3, r3, #0x0
+ orr r3, r3, r4, lsr #0x2
+ bl MIi_DmaSetParams
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+ .balign 4
+_020CDF6C: .word 0x021D37FC
+_020CDF70: .word MIi_DMAFastCallback
+_020CDF74: .word 0x04000400
+
+ arm_func_start MIi_DMACallback
+MIi_DMACallback: ; 0x020CDF78
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ mov r0, #0x200000
+ bl OS_DisableIrqMask
+ ldr r2, _020CDFE4 ; =0x04000600
+ ldr r0, _020CDFE8 ; =0x021D37FC
+ ldr r1, [r2, #0x0]
+ ldr r3, [r0, #0x18]
+ bic r1, r1, #0xc0000000
+ orr r1, r1, r3, lsl #0x1e
+ str r1, [r2, #0x0]
+ ldr r1, [r0, #0x1c]
+ mov r0, #0x200000
+ bl OS_SetIrqFunction
+ ldr r0, _020CDFE8 ; =0x021D37FC
+ mov r2, #0x0
+ ldr r1, [r0, #0x10]
+ str r2, [r0, #0x0]
+ cmp r1, #0x0
+ addeq sp, sp, #0x4
+ ldr r0, [r0, #0x14]
+ ldmeqia sp!, {lr}
+ bxeq lr
+ blx r1
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+ .balign 4
+_020CDFE4: .word 0x04000600
+_020CDFE8: .word 0x021D37FC
+
+ arm_func_start MIi_FIFOCallback
+MIi_FIFOCallback: ; 0x020CDFEC
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ ldr r0, _020CE0A4 ; =0x021D37FC
+ ldr r4, [r0, #0xc]
+ cmp r4, #0x0
+ addeq sp, sp, #0x4
+ ldmeqia sp!, {r4-r5,lr}
+ bxeq lr
+ ldr r0, _020CE0A4 ; =0x021D37FC
+ cmp r4, #0x1d8
+ ldr r5, [r0, #0x8]
+ movcs r4, #0x1d8
+ ldr r2, [r0, #0xc]
+ add r1, r5, r4
+ subs r2, r2, r4
+ str r2, [r0, #0xc]
+ str r1, [r0, #0x8]
+ bne _020CE078
+ ldr r0, [r0, #0x4]
+ ldr r1, _020CE0A8 ; =MIi_DMACallback
+ mov r2, #0x0
+ bl OSi_EnterDmaCallback
+ mov r0, #0x3bc00000
+ rsb r3, r0, #0x0
+ ldr r1, _020CE0A4 ; =0x021D37FC
+ ldr r2, _020CE0AC ; =0x04000400
+ ldr r0, [r1, #0x4]
+ mov r1, r5
+ orr r3, r3, r4, lsr #0x2
+ bl MIi_DmaSetParams
+ mov r0, #0x200000
+ bl OS_ResetRequestIrqMask
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,lr}
+ bx lr
+_020CE078:
+ ldr r3, _020CE0B0 ; =0x84400000
+ ldr r0, [r0, #0x4]
+ ldr r2, _020CE0AC ; =0x04000400
+ mov r1, r5
+ orr r3, r3, r4, lsr #0x2
+ bl MIi_DmaSetParams
+ mov r0, #0x200000
+ bl OS_ResetRequestIrqMask
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,lr}
+ bx lr
+ .balign 4
+_020CE0A4: .word 0x021D37FC
+_020CE0A8: .word MIi_DMACallback
+_020CE0AC: .word 0x04000400
+_020CE0B0: .word 0x84400000
+
+ arm_func_start MI_SendGXCommandAsync
+MI_SendGXCommandAsync: ; 0x020CE0B4
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ mov r4, r0
+ cmp r2, #0x0
+ bne _020CE0EC
+ cmp r3, #0x0
+ addeq sp, sp, #0x4
+ ldmeqia sp!, {r4-r5,lr}
+ bxeq lr
+ ldr r0, [sp, #0x10]
+ blx r3
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,lr}
+ bx lr
+_020CE0EC:
+ ldr r0, _020CE1BC ; =0x021D37FC
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ bne _020CE0EC
+ ldr r5, _020CE1C0 ; =0x04000600
+_020CE100:
+ ldr r0, [r5, #0x0]
+ and r0, r0, #0x7000000
+ mov r0, r0, lsr #0x18
+ ands r0, r0, #0x2
+ beq _020CE100
+ ldr ip, _020CE1BC ; =0x021D37FC
+ ldr lr, [sp, #0x10]
+ str r3, [r12, #0x10]
+ mov r5, #0x1
+ mov r0, r4
+ mov r3, #0x0
+ str r5, [r12, #0x0]
+ str r4, [r12, #0x4]
+ str r1, [r12, #0x8]
+ str r2, [r12, #0xc]
+ str lr, [r12, #0x14]
+ bl MIi_CheckDma0SourceAddress
+ mov r0, r4
+ bl MI_WaitDma
+ bl OS_DisableInterrupts
+ ldr r1, _020CE1C0 ; =0x04000600
+ mov r4, r0
+ ldr r0, [r1, #0x0]
+ ldr r1, _020CE1BC ; =0x021D37FC
+ and r0, r0, #0xc0000000
+ mov r2, r0, lsr #0x1e
+ mov r0, #0x200000
+ str r2, [r1, #0x18]
+ bl OS_GetIrqFunction
+ ldr r1, _020CE1BC ; =0x021D37FC
+ ldr r2, _020CE1C0 ; =0x04000600
+ str r0, [r1, #0x1c]
+ ldr r0, [r2, #0x0]
+ ldr r1, _020CE1C4 ; =MIi_FIFOCallback
+ bic r0, r0, #0xc0000000
+ orr r3, r0, #0x40000000
+ mov r0, #0x200000
+ str r3, [r2, #0x0]
+ bl OS_SetIrqFunction
+ mov r0, #0x200000
+ bl OS_EnableIrqMask
+ bl MIi_FIFOCallback
+ mov r0, r4
+ bl OS_RestoreInterrupts
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,lr}
+ bx lr
+ .balign 4
+_020CE1BC: .word 0x021D37FC
+_020CE1C0: .word 0x04000600
+_020CE1C4: .word MIi_FIFOCallback
+
+ arm_func_start MIi_CpuClear16
+MIi_CpuClear16: ; 0x020CE1C8
+ mov r3, #0x0
+_020CE1CC:
+ cmp r3, r2
+ strlth r0, [r1, r3]
+ addlt r3, r3, #0x2
+ blt _020CE1CC
+ bx lr
+
+ arm_func_start MIi_CpuCopy16
+MIi_CpuCopy16: ; 0x020CE1E0
+ mov r12, #0x0
+_020CE1E4:
+ cmp r12, r2
+ ldrlth r3, [r0, r12]
+ strlth r3, [r1, r12]
+ addlt r12, r12, #0x2
+ blt _020CE1E4
+ bx lr
+
+ arm_func_start MIi_CpuClear32
+MIi_CpuClear32: ; 0x020CE1FC
+ add r12, r1, r2
+_020CE200:
+ cmp r1, r12
+ stmltia r1!, {r0}
+ blt _020CE200
+ bx lr
+
+ arm_func_start MIi_CpuCopy32
+MIi_CpuCopy32: ; 0x020CE210
+ add r12, r1, r2
+_020CE214:
+ cmp r1, r12
+ ldmltia r0!, {r2}
+ stmltia r1!, {r2}
+ blt _020CE214
+ bx lr
+
+ arm_func_start MIi_CpuSend32
+MIi_CpuSend32: ; 0x020CE228
+ add r12, r0, r2
+_020CE22C:
+ cmp r0, r12
+ ldmltia r0!, {r2}
+ strlt r2, [r1, #0x0]
+ blt _020CE22C
+ bx lr
+
+ arm_func_start MIi_CpuClearFast
+MIi_CpuClearFast: ; 0x020CE240
+ stmdb sp!, {r4-r9}
+ add r9, r1, r2
+ mov r12, r2, lsr #0x5
+ add r12, r1, r12, lsl #0x5
+ mov r2, r0
+ mov r3, r2
+ mov r4, r2
+ mov r5, r2
+ mov r6, r2
+ mov r7, r2
+ mov r8, r2
+_020CE26C:
+ cmp r1, r12
+ stmltia r1!, {r0,r2-r8}
+ blt _020CE26C
+_020CE278:
+ cmp r1, r9
+ stmltia r1!, {r0}
+ blt _020CE278
+ ldmia sp!, {r4-r9}
+ bx lr
+
+ arm_func_start MIi_CpuCopyFast
+MIi_CpuCopyFast: ; 0x020CE28C
+ stmdb sp!, {r4-r10}
+ add r10, r1, r2
+ mov r12, r2, lsr #0x5
+ add r12, r1, r12, lsl #0x5
+_020CE29C:
+ cmp r1, r12
+ ldmltia r0!, {r2-r9}
+ stmltia r1!, {r2-r9}
+ blt _020CE29C
+_020CE2AC:
+ cmp r1, r10
+ ldmltia r0!, {r2}
+ stmltia r1!, {r2}
+ blt _020CE2AC
+ ldmia sp!, {r4-r10}
+ bx lr
+
+ arm_func_start FUN_020CE2C4
+FUN_020CE2C4:
+ ldmia r0!, {r2, r3, ip}
+ stmia r1!, {r2, r3, ip}
+ ldmia r0!, {r2, r3, ip}
+ stmia r1!, {r2, r3, ip}
+ ldmia r0!, {r2, r3}
+ stmia r1!, {r2, r3}
+ bx lr
+
+ arm_func_start MI_Copy36B
+MI_Copy36B: ; 0x020CE2E0
+ ldmia r0!, {r2-r3,r12}
+ stmia r1!, {r2-r3,r12}
+ ldmia r0!, {r2-r3,r12}
+ stmia r1!, {r2-r3,r12}
+ ldmia r0!, {r2-r3,r12}
+ stmia r1!, {r2-r3,r12}
+ bx lr
+
+ arm_func_start MI_Copy48B
+MI_Copy48B: ; 0x020CE2FC
+ ldmia r0!, {r2-r3,r12}
+ stmia r1!, {r2-r3,r12}
+ ldmia r0!, {r2-r3,r12}
+ stmia r1!, {r2-r3,r12}
+ ldmia r0!, {r2-r3,r12}
+ stmia r1!, {r2-r3,r12}
+ ldmia r0!, {r2-r3,r12}
+ stmia r1!, {r2-r3,r12}
+ bx lr
+
+ arm_func_start MI_Copy64B
+MI_Copy64B: ; 0x020CE320
+ ldmia r0!, {r2-r3,r12}
+ stmia r1!, {r2-r3,r12}
+ ldmia r0!, {r2-r3,r12}
+ stmia r1!, {r2-r3,r12}
+ ldmia r0!, {r2-r3,r12}
+ stmia r1!, {r2-r3,r12}
+ ldmia r0!, {r2-r3,r12}
+ stmia r1!, {r2-r3,r12}
+ ldmia r0, {r0,r2-r3,r12}
+ stmia r1!, {r0,r2-r3,r12}
+ bx lr
+
+ arm_func_start MI_CpuFill8
+MI_CpuFill8: ; 0x020CE34C
+ cmp r2, #0x0
+ bxeq lr
+ tst r0, #0x1
+ beq _020CE378
+ ldrh r12, [r0, #-0x1]
+ and r12, r12, #0xff
+ orr r3, r12, r1, lsl #0x8
+ strh r3, [r0, #-0x1]
+ add r0, r0, #0x1
+ subs r2, r2, #0x1
+ bxeq lr
+_020CE378:
+ cmp r2, #0x2
+ blo _020CE3C0
+ orr r1, r1, r1, lsl #0x8
+ tst r0, #0x2
+ beq _020CE398
+ strh r1, [r0], #0x2
+ subs r2, r2, #0x2
+ bxeq lr
+_020CE398:
+ orr r1, r1, r1, lsl #0x10
+ bics r3, r2, #0x3
+ beq _020CE3B8
+ sub r2, r2, r3
+ add r12, r3, r0
+_020CE3AC:
+ str r1, [r0], #0x4
+ cmp r0, r12
+ blo _020CE3AC
+_020CE3B8:
+ tst r2, #0x2
+ strneh r1, [r0], #0x2
+_020CE3C0:
+ tst r2, #0x1
+ bxeq lr
+ ldrh r3, [r0, #0x0]
+ and r3, r3, #0xff00
+ and r1, r1, #0xff
+ orr r1, r1, r3
+ strh r1, [r0, #0x0]
+ bx lr
+
+ arm_func_start MI_CpuCopy8
+MI_CpuCopy8:
+ cmp r2, #0x0
+ bxeq lr
+ tst r1, #0x1
+ beq _020CE420
+ ldrh r12, [r1, #-0x1]
+ and r12, r12, #0xff
+ tst r0, #0x1
+ ldrneh r3, [r0, #-0x1]
+ movne r3, r3, lsr #0x8
+ ldreqh r3, [r0, #0x0]
+ orr r3, r12, r3, lsl #0x8
+ strh r3, [r1, #-0x1]
+ add r0, r0, #0x1
+ add r1, r1, #0x1
+ subs r2, r2, #0x1
+ bxeq lr
+_020CE420:
+ eor r12, r1, r0
+ tst r12, #0x1
+ beq _020CE474
+ bic r0, r0, #0x1
+ ldrh r12, [r0], #0x2
+ mov r3, r12, lsr #0x8
+ subs r2, r2, #0x2
+ blo _020CE458
+_020CE440:
+ ldrh r12, [r0], #0x2
+ orr r12, r3, r12, lsl #0x8
+ strh r12, [r1], #0x2
+ mov r3, r12, lsr #0x10
+ subs r2, r2, #0x2
+ bhs _020CE440
+_020CE458:
+ tst r2, #0x1
+ bxeq lr
+ ldrh r12, [r1, #0x0]
+ and r12, r12, #0xff00
+ orr r12, r12, r3
+ strh r12, [r1, #0x0]
+ bx lr
+_020CE474:
+ tst r12, #0x2
+ beq _020CE4A0
+ bics r3, r2, #0x1
+ beq _020CE4EC
+ sub r2, r2, r3
+ add r12, r3, r1
+_020CE48C:
+ ldrh r3, [r0], #0x2
+ strh r3, [r1], #0x2
+ cmp r1, r12
+ blo _020CE48C
+ b _020CE4EC
+_020CE4A0:
+ cmp r2, #0x2
+ blo _020CE4EC
+ tst r1, #0x2
+ beq _020CE4C0
+ ldrh r3, [r0], #0x2
+ strh r3, [r1], #0x2
+ subs r2, r2, #0x2
+ bxeq lr
+_020CE4C0:
+ bics r3, r2, #0x3
+ beq _020CE4E0
+ sub r2, r2, r3
+ add r12, r3, r1
+_020CE4D0:
+ ldr r3, [r0], #0x4
+ str r3, [r1], #0x4
+ cmp r1, r12
+ blo _020CE4D0
+_020CE4E0:
+ tst r2, #0x2
+ ldrneh r3, [r0], #0x2
+ strneh r3, [r1], #0x2
+_020CE4EC:
+ tst r2, #0x1
+ bxeq lr
+ ldrh r2, [r1, #0x0]
+ ldrh r0, [r0, #0x0]
+ and r2, r2, #0xff00
+ and r0, r0, #0xff
+ orr r0, r2, r0
+ strh r0, [r1, #0x0]
+ bx lr
+
+ thumb_func_start MI_Zero36B
+MI_Zero36B: ; 0x020CE510
+ mov r1, #0x0
+ mov r2, #0x0
+ mov r3, #0x0
+ stmia r0!, {r1-r3}
+ stmia r0!, {r1-r3}
+ stmia r0!, {r1-r3}
+ bx lr
+
+ arm_func_start MI_SwapWord
+MI_SwapWord: ; 0x020CE520
+ swp r0, r0, [r1]
+ bx lr
+
+ arm_func_start MI_UncompressLZ8
+MI_UncompressLZ8: ; 0x020CE528
+ stmdb sp!, {r4-r6,lr}
+ ldr r5, [r0], #0x4
+ mov r2, r5, lsr #0x8
+_020CE534:
+ cmp r2, #0x0
+ ble _020CE5B4
+ ldrb lr, [r0], #0x1
+ mov r4, #0x8
+_020CE544:
+ subs r4, r4, #0x1
+ blt _020CE534
+ tst lr, #0x80
+ bne _020CE568
+ ldrb r6, [r0], #0x1
+ .word 0xE1416096
+ add r1, r1, #0x1
+ sub r2, r2, #0x1
+ b _020CE5A4
+_020CE568:
+ ldrb r5, [r0, #0x0]
+ mov r6, #0x3
+ add r3, r6, r5, asr #0x4
+ ldrb r6, [r0], #0x1
+ and r5, r6, #0xf
+ mov r12, r5, lsl #0x8
+ ldrb r6, [r0], #0x1
+ orr r5, r6, r12
+ add r12, r5, #0x1
+ sub r2, r2, r3
+_020CE590:
+ ldrb r5, [r1, -r12]
+ .word 0xE1415095
+ add r1, r1, #0x1
+ subs r3, r3, #0x1
+ bgt _020CE590
+_020CE5A4:
+ cmp r2, #0x0
+ movgt lr, lr, lsl #0x1
+ bgt _020CE544
+ b _020CE534
+_020CE5B4:
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+
+ arm_func_start MIi_CardDmaCopy32
+MIi_CardDmaCopy32: ; 0x020CE5BC
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0x4
+ mov r5, r1
+ mov r6, r0
+ mov r7, r3
+ mvn r1, #0x0
+ mov r4, r2
+ bl MIi_CheckAnotherAutoDMA
+ mov r0, r6
+ mov r1, r5
+ mov r2, r7
+ mov r3, #0x1000000
+ bl MIi_CheckDma0SourceAddress
+_020CE5F0:
+ cmp r7, #0x0
+ addeq sp, sp, #0x4
+ ldmeqia sp!, {r4-r7, lr}
+ bxeq lr
+ mov r0, #0x3
+ mul r1, r6, r0
+ ldr r0, _020CE640
+ add r1, r1, #0x2
+ add r1, r0, r1, lsl #0x2
+_020CE614:
+ ldr r0, [r1]
+ ands r0, r0, #0x80000000
+ bne _020CE614
+ ldr r3, _020CE644
+ mov r0, r6
+ mov r1, r5
+ mov r2, r4
+ bl MIi_DmaSetParams
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r7, lr}
+ bx lr
+_020CE640: .word 0x040000B0
+_020CE644: .word 0xAf000001
+
+ arm_func_start MI_Init
+MI_Init: ; 0x020CE648
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ mov r0, #0x3
+ bl MI_SetWramBank
+ mov r0, #0x0
+ bl MI_StopDma
+ add sp, sp, #0x4
+ ldmfd sp!, {lr}
+ bx lr
+
diff --git a/arm9/asm/OS_arm9.s b/arm9/asm/OS_arm9.s
new file mode 100644
index 00000000..1323e376
--- /dev/null
+++ b/arm9/asm/OS_arm9.s
@@ -0,0 +1,4759 @@
+ .include "asm/macros.inc"
+ .include "global.inc"
+ .extern isInitialized
+
+ .section .dtcm
+ .balign 16, 0
+ .global OS_IRQTable
+OS_IRQTable: ; 027E0000 ;10b6a0
+ .word OS_IrqDummy
+ .word OS_IrqDummy
+ .word OS_IrqDummy
+ .word OSi_IrqTimer0
+ .word OSi_IrqTimer1
+ .word OSi_IrqTimer2
+ .word OSi_IrqTimer3
+ .word OS_IrqDummy
+ .word OSi_IrqDma0
+ .word OSi_IrqDma1
+ .word OSi_IrqDma2
+ .word OSi_IrqDma3
+ .word OS_IrqDummy
+ .word OS_IrqDummy
+ .word OS_IrqDummy
+ .word OS_IrqDummy
+ .word OS_IrqDummy
+ .word OS_IrqDummy
+ .word OS_IrqDummy
+ .word OS_IrqDummy
+ .word OS_IrqDummy
+ .word OS_IrqDummy
+ .balign 16, 0
+
+ .global OSi_IrqThreadQueue
+OSi_IrqThreadQueue: ; 027E0060
+
+ .section .text
+
+ arm_func_start OS_WaitIrq
+OS_WaitIrq:
+ stmdb sp!, {r4-r6,lr}
+ mov r5, r0
+ mov r4, r1
+ bl OS_DisableInterrupts
+ cmp r5, #0x0
+ beq _020C9C3C
+ ldr r1, _020C9C80 ; =0x027E0000
+ mvn r2, r4
+ add r1, r1, #0x3000
+ ldr r3, [r1, #0xff8]
+ and r2, r3, r2
+ str r2, [r1, #0xff8]
+_020C9C3C:
+ bl OS_RestoreInterrupts
+ ldr r1, _020C9C80 ; =0x027E0000
+ add r0, r1, #0x3000
+ ldr r0, [r0, #0xff8]
+ ands r0, r4, r0
+ ldmneia sp!, {r4-r6,lr}
+ bxne lr
+ ldr r0, _020C9C84 ; =0x00003FF8
+ add r6, r1, r0
+ ldr r5, _020C9C88 ; =0x027E0060
+_020C9C64:
+ mov r0, r5
+ bl OS_SleepThread
+ ldr r0, [r6, #0x0]
+ ands r0, r4, r0
+ beq _020C9C64
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+ .balign 4
+_020C9C80: .word 0x027E0000
+_020C9C84: .word 0x00003FF8
+_020C9C88: .word 0x027E0060
+
+ arm_func_start OSi_IrqTimer3
+OSi_IrqTimer3: ; 0x020C9C8C
+ ldr ip, _020C9C98 ; =OSi_IrqCallback
+ mov r0, #0x7
+ bx r12
+ .balign 4
+_020C9C98: .word OSi_IrqCallback
+
+ arm_func_start OSi_IrqTimer2
+OSi_IrqTimer2: ; 0x020C9C9C
+ ldr ip, _020C9CA8 ; =OSi_IrqCallback
+ mov r0, #0x6
+ bx r12
+ .balign 4
+_020C9CA8: .word OSi_IrqCallback
+
+ arm_func_start OSi_IrqTimer1
+OSi_IrqTimer1: ; 0x020C9CAC
+ ldr ip, _020C9CB8 ; =OSi_IrqCallback
+ mov r0, #0x5
+ bx r12
+ .balign 4
+_020C9CB8: .word OSi_IrqCallback
+
+ arm_func_start OSi_IrqTimer0
+OSi_IrqTimer0: ; 0x020C9CBC
+ ldr ip, _020C9CC8 ; =OSi_IrqCallback
+ mov r0, #0x4
+ bx r12
+ .balign 4
+_020C9CC8: .word OSi_IrqCallback
+
+ arm_func_start OSi_IrqDma3
+OSi_IrqDma3: ; 0x020C9CCC
+ ldr ip, _020C9CD8 ; =OSi_IrqCallback
+ mov r0, #0x3
+ bx r12
+ .balign 4
+_020C9CD8: .word OSi_IrqCallback
+
+ arm_func_start OSi_IrqDma2
+OSi_IrqDma2: ; 0x020C9CDC
+ ldr ip, _020C9CE8 ; =OSi_IrqCallback
+ mov r0, #0x2
+ bx r12
+ .balign 4
+_020C9CE8: .word OSi_IrqCallback
+
+ arm_func_start OSi_IrqDma1
+OSi_IrqDma1: ; 0x020C9CEC
+ ldr ip, _020C9CF8 ; =OSi_IrqCallback
+ mov r0, #0x1
+ bx r12
+ .balign 4
+_020C9CF8: .word OSi_IrqCallback
+
+ arm_func_start OSi_IrqDma0
+OSi_IrqDma0: ; 0x020C9CFC
+ ldr ip, _020C9D08 ; =OSi_IrqCallback
+ mov r0, #0x0
+ bx r12
+ .balign 4
+_020C9D08: .word OSi_IrqCallback
+
+ arm_func_start OSi_IrqCallback
+OSi_IrqCallback: ; 0x020C9D0C
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ mov r1, #0xc
+ mul r4, r0, r1
+ ldr r2, _020C9D94 ; =OSi_IrqCallbackInfo
+ ldr r3, _020C9D98 ; =0x02106818
+ mov r0, r0, lsl #0x1
+ ldr r1, [r2, r4]
+ ldrh r3, [r3, r0]
+ mov r5, #0x1
+ mov r0, #0x0
+ str r0, [r2, r4]
+ cmp r1, #0x0
+ mov r5, r5, lsl r3
+ beq _020C9D54
+ ldr r0, _020C9D9C ; =0x021D3424
+ ldr r0, [r0, r4]
+ blx r1
+_020C9D54:
+ ldr r0, _020C9DA0 ; =0x027E0000
+ ldr r1, _020C9DA4 ; =0x021D3420
+ add r0, r0, #0x3000
+ ldr r2, [r0, #0xff8]
+ orr r2, r2, r5
+ str r2, [r0, #0xff8]
+ ldr r0, [r1, r4]
+ cmp r0, #0x0
+ addne sp, sp, #0x4
+ ldmneia sp!, {r4-r5,lr}
+ bxne lr
+ mov r0, r5
+ bl OS_DisableIrqMask
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,lr}
+ bx lr
+ .balign 4
+_020C9D94: .word OSi_IrqCallbackInfo
+_020C9D98: .word OSi_IrqCallbackInfoIndex
+_020C9D9C: .word OSi_IrqCallbackInfo + 8
+_020C9DA0: .word SDK_AUTOLOAD_DTCM_START
+_020C9DA4: .word OSi_IrqCallbackInfo + 4
+
+ arm_func_start OS_IrqDummy
+OS_IrqDummy: ; 0x020C9DA8
+ bx lr
+
+ arm_func_start OS_SetIrqStackChecker
+OS_SetIrqStackChecker: ; 0x020C9DAC
+ ldr ip, _020C9DD0 ; =0x027E0000
+ ldr r3, _020C9DD4 ; =0xFDDB597D
+ add r0, r12, #0x3000
+ ldr r2, _020C9DD8 ; =0x7BF9DD5B
+ ldr r1, _020C9DDC ; =0x00000400
+ str r3, [r0, #0xf7c]
+ add r0, r12, #0x3f80
+ str r2, [r0, -r1]
+ bx lr
+ .balign 4
+_020C9DD0: .word 0x027E0000
+_020C9DD4: .word 0xFDDB597D
+_020C9DD8: .word 0x7BF9DD5B
+_020C9DDC: .word 0x00000400
+
+ arm_func_start OS_ResetRequestIrqMask
+OS_ResetRequestIrqMask: ; 0x020C9DE0
+ ldr ip, _020C9E0C ; =0x04000208
+ mov r1, #0x0
+ ldrh r3, [r12, #0x0]
+ ldr r2, _020C9E10 ; =0x04000214
+ strh r1, [r12, #0x0]
+ ldr r1, [r2, #0x0]
+ str r0, [r2, #0x0]
+ ldrh r0, [r12, #0x0]
+ mov r0, r1
+ strh r3, [r12, #0x0]
+ bx lr
+ .balign 4
+_020C9E0C: .word 0x04000208
+_020C9E10: .word 0x04000214
+
+ arm_func_start OS_DisableIrqMask
+OS_DisableIrqMask: ; 0x020C9E14
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldr lr, _020C9E54 ; =0x04000208
+ mov r3, #0x0
+ ldrh r12, [lr, #0x0]
+ ldr r2, _020C9E58 ; =0x04000210
+ mvn r1, r0
+ strh r3, [lr, #0x0]
+ ldr r0, [r2, #0x0]
+ and r1, r0, r1
+ str r1, [r2, #0x0]
+ ldrh r1, [lr, #0x0]
+ strh r12, [lr, #0x0]
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+ .balign 4
+_020C9E54: .word 0x04000208
+_020C9E58: .word 0x04000210
+
+ arm_func_start OS_EnableIrqMask
+OS_EnableIrqMask: ; 0x020C9E5C
+ ldr ip, _020C9E8C ; =0x04000208
+ mov r1, #0x0
+ ldrh r3, [r12, #0x0]
+ ldr r2, _020C9E90 ; =0x04000210
+ strh r1, [r12, #0x0]
+ ldr r1, [r2, #0x0]
+ orr r0, r1, r0
+ str r0, [r2, #0x0]
+ ldrh r0, [r12, #0x0]
+ mov r0, r1
+ strh r3, [r12, #0x0]
+ bx lr
+ .balign 4
+_020C9E8C: .word 0x04000208
+_020C9E90: .word 0x04000210
+
+ arm_func_start OS_SetIrqMask
+OS_SetIrqMask: ; 0x020C9E94
+ ldr ip, _020C9EC0 ; =0x04000208
+ mov r1, #0x0
+ ldrh r3, [r12, #0x0]
+ ldr r2, _020C9EC4 ; =0x04000210
+ strh r1, [r12, #0x0]
+ ldr r1, [r2, #0x0]
+ str r0, [r2, #0x0]
+ ldrh r0, [r12, #0x0]
+ mov r0, r1
+ strh r3, [r12, #0x0]
+ bx lr
+ .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
+
+ arm_func_start OSi_EnterDmaCallback
+OSi_EnterDmaCallback: ; 0x020C9F14
+ stmdb sp!, {r4-r6,lr}
+ mov r3, #0xc
+ mul r6, r0, r3
+ ldr ip, _020C9F54 ; =OSi_IrqCallbackInfo
+ add r4, r0, #0x8
+ mov r5, #0x1
+ mov r0, r5, lsl r4
+ ldr r3, _020C9F58 ; =0x021D3424
+ str r1, [r12, r6]
+ str r2, [r3, r6]
+ bl OS_EnableIrqMask
+ and r1, r0, r5, lsl r4
+ ldr r0, _020C9F5C ; =0x021D3420
+ str r1, [r0, r6]
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+ .balign 4
+_020C9F54: .word OSi_IrqCallbackInfo
+_020C9F58: .word OSi_IrqCallbackInfo + 8
+_020C9F5C: .word OSi_IrqCallbackInfo + 4
+
+ arm_func_start OS_GetIrqFunction
+OS_GetIrqFunction: ; 0x020C9F60
+ ldr r2, _020C9FE4 ; =0x027E0000
+ mov r3, #0x0
+_020C9F68:
+ ands r1, r0, #0x1
+ beq _020C9FC8
+ cmp r3, #0x8
+ blt _020C9F98
+ cmp r3, #0xb
+ bgt _020C9F98
+ sub r1, r3, #0x8
+ mov r0, #0xc
+ mul r2, r1, r0
+ ldr r0, _020C9FE8 ; =OSi_IrqCallbackInfo
+ ldr r0, [r0, r2]
+ bx lr
+_020C9F98:
+ cmp r3, #0x3
+ blt _020C9FC0
+ cmp r3, #0x6
+ bgt _020C9FC0
+ add r1, r3, #0x1
+ mov r0, #0xc
+ mul r2, r1, r0
+ ldr r0, _020C9FE8 ; =OSi_IrqCallbackInfo
+ ldr r0, [r0, r2]
+ bx lr
+_020C9FC0:
+ ldr r0, [r2, #0x0]
+ bx lr
+_020C9FC8:
+ add r3, r3, #0x1
+ cmp r3, #0x16
+ mov r0, r0, lsr #0x1
+ add r2, r2, #0x4
+ blt _020C9F68
+ mov r0, #0x0
+ bx lr
+ .balign 4
+_020C9FE4: .word 0x027E0000
+_020C9FE8: .word OSi_IrqCallbackInfo
+
+ arm_func_start OS_SetIrqFunction
+OS_SetIrqFunction: ; 0x020C9FEC
+ stmdb sp!, {r4-r8,lr}
+ mov r8, #0x0
+ ldr lr, _020CA074 ; =0x027E0000
+ ldr r5, _020CA078 ; =OSi_IrqCallbackInfo
+ mov r6, r8
+ mov r12, r8
+ mov r3, #0x1
+ mov r2, #0xc
+_020CA00C:
+ ands r4, r0, #0x1
+ beq _020CA05C
+ mov r7, r6
+ cmp r8, #0x8
+ blt _020CA030
+ cmp r8, #0xb
+ suble r4, r8, #0x8
+ mlale r7, r4, r2, r5
+ ble _020CA04C
+_020CA030:
+ cmp r8, #0x3
+ blt _020CA048
+ cmp r8, #0x6
+ addle r4, r8, #0x1
+ mlale r7, r4, r2, r5
+ ble _020CA04C
+_020CA048:
+ str r1, [lr, r8, lsl #0x2]
+_020CA04C:
+ cmp r7, #0x0
+ strne r1, [r7, #0x0]
+ strne r12, [r7, #0x8]
+ strne r3, [r7, #0x4]
+_020CA05C:
+ add r8, r8, #0x1
+ cmp r8, #0x16
+ mov r0, r0, lsr #0x1
+ blt _020CA00C
+ ldmia sp!, {r4-r8,lr}
+ bx lr
+ .balign 4
+_020CA074: .word 0x027E0000
+_020CA078: .word OSi_IrqCallbackInfo
+
+ arm_func_start OS_InitIrqTable
+OS_InitIrqTable: ; 0x020CA07C
+ ldr r0, _020CA090 ; =0x027E0060
+ mov r1, #0x0
+ str r1, [r0, #0x4]
+ str r1, [r0, #0x0]
+ bx lr
+ .balign 4
+_020CA090: .word 0x027E0060
+
+ arm_func_start OS_UnlockCartridge
+OS_UnlockCartridge: ; 0x020CA094
+ ldr r1, _020CA09C ; =OS_UnlockCartridge2
+ bx r1
+ .balign 4
+_020CA09C: .word OS_UnlockCartridge2
+
+ arm_func_start OS_GetLockID
+OS_GetLockID: ; 0x020CA0A0
+ ldr r3, _020CA0F0 ; =0x027FFFB0
+ ldr r1, [r3, #0x0]
+ clz r2, r1
+ cmp r2, #0x20
+ movne r0, #0x40
+ bne _020CA0D4
+ add r3, r3, #0x4
+ ldr r1, [r3, #0x0]
+ clz r2, r1
+ cmp r2, #0x20
+ ldr r0, _020CA0F4 ; =0xFFFFFFFD
+ bxeq lr
+ mov r0, #0x60
+_020CA0D4:
+ add r0, r0, r2
+ mov r1, #0x80000000
+ mov r1, r1, lsr r2
+ ldr r2, [r3, #0x0]
+ bic r2, r2, r1
+ str r2, [r3, #0x0]
+ bx lr
+ .balign 4
+_020CA0F0: .word 0x027FFFB0
+_020CA0F4: .word 0xFFFFFFFD
+
+ arm_func_start OS_ReleaseLockID
+OS_ReleaseLockID: ; 0x020CA0F8
+ ldr r3, _020CA124 ; =0x027FFFB0
+ cmp r0, #0x60
+ addpl r3, r3, #0x4
+ subpl r0, r0, #0x60
+ submi r0, r0, #0x40
+ mov r1, #0x80000000
+ mov r1, r1, lsr r0
+ ldr r2, [r3, #0x0]
+ orr r2, r2, r1
+ str r2, [r3, #0x0]
+ bx lr
+ .balign 4
+_020CA124: .word 0x027FFFB0
+
+ arm_func_start OS_ReadOwnerOfLockWord
+OS_ReadOwnerOfLockWord: ; 0x020CA128
+ ldrh r0, [r0, #0x4]
+ bx lr
+
+ arm_func_start OSi_FreeCardBus
+OSi_FreeCardBus: ; 0x020CA130
+ ldr r1, _020CA144 ; =0x04000204
+ ldrh r0, [r1, #0x0]
+ orr r0, r0, #0x800
+ strh r0, [r1, #0x0]
+ bx lr
+ .balign 4
+_020CA144: .word 0x04000204
+
+ arm_func_start OSi_AllocateCardBus
+OSi_AllocateCardBus: ; 0x020CA148
+ ldr r1, _020CA15C ; =0x04000204
+ ldrh r0, [r1, #0x0]
+ bic r0, r0, #0x800
+ strh r0, [r1, #0x0]
+ bx lr
+ .balign 4
+_020CA15C: .word 0x04000204
+
+ arm_func_start OS_UnlockCard
+OS_UnlockCard: ; 0x020CA160
+ ldr ip, _020CA170 ; =OS_UnlockByWord
+ ldr r1, _020CA174 ; =0x027FFFE0
+ ldr r2, _020CA178 ; =OSi_FreeCardBus
+ bx r12
+ .balign 4
+_020CA170: .word OS_UnlockByWord
+_020CA174: .word 0x027FFFE0
+_020CA178: .word OSi_FreeCardBus
+
+ arm_func_start OS_TryLockCard
+OS_TryLockCard: ; 0x020CA17C
+ ldr ip, _020CA18C ; =OS_TryLockByWord
+ ldr r1, _020CA190 ; =0x027FFFE0
+ ldr r2, _020CA194 ; =OSi_AllocateCardBus
+ bx r12
+ .balign 4
+_020CA18C: .word OS_TryLockByWord
+_020CA190: .word 0x027FFFE0
+_020CA194: .word OSi_AllocateCardBus
+
+ arm_func_start OSi_FreeCartridgeBus
+OSi_FreeCartridgeBus: ; 0x020CA198
+ ldr r1, _020CA1AC ; =0x04000204
+ ldrh r0, [r1, #0x0]
+ orr r0, r0, #0x80
+ strh r0, [r1, #0x0]
+ bx lr
+ .balign 4
+_020CA1AC: .word 0x04000204
+
+ arm_func_start OSi_AllocateCartridgeBus
+OSi_AllocateCartridgeBus: ; 0x020CA1B0
+ ldr r1, _020CA1C4 ; =0x04000204
+ ldrh r0, [r1, #0x0]
+ bic r0, r0, #0x80
+ strh r0, [r1, #0x0]
+ bx lr
+ .balign 4
+_020CA1C4: .word 0x04000204
+
+ arm_func_start OS_TryLockCartridge
+OS_TryLockCartridge: ; 0x020CA1C8
+ ldr ip, _020CA1DC ; =OSi_DoTryLockByWord
+ ldr r1, _020CA1E0 ; =0x027FFFE8
+ ldr r2, _020CA1E4 ; =OSi_AllocateCartridgeBus
+ mov r3, #0x1
+ bx r12
+ .balign 4
+_020CA1DC: .word OSi_DoTryLockByWord
+_020CA1E0: .word 0x027FFFE8
+_020CA1E4: .word OSi_AllocateCartridgeBus
+
+ arm_func_start OS_UnlockCartridge2
+OS_UnlockCartridge2: ; 0x020CA1E8
+ ldr ip, _020CA1FC ; =FUN_020CA2B8
+ ldr r1, _020CA200 ; =0x027FFFE8
+ ldr r2, _020CA204 ; =OSi_FreeCartridgeBus
+ mov r3, #0x1
+ bx r12
+ .balign 4
+_020CA1FC: .word FUN_020CA2B8
+_020CA200: .word 0x027FFFE8
+_020CA204: .word OSi_FreeCartridgeBus
+
+ arm_func_start OS_LockCartridge
+OS_LockCartridge: ; 0x020CA208
+ ldr ip, _020CA21C ; =FUN_020CA358
+ ldr r1, _020CA220 ; =0x027FFFE8
+ ldr r2, _020CA224 ; =OSi_AllocateCartridgeBus
+ mov r3, #0x1
+ bx r12
+ .balign 4
+_020CA21C: .word FUN_020CA358
+_020CA220: .word 0x027FFFE8
+_020CA224: .word OSi_AllocateCartridgeBus
+
+ arm_func_start OSi_DoTryLockByWord
+OSi_DoTryLockByWord:
+ stmdb sp!, {r4-r9,lr}
+ sub sp, sp, #0x4
+ movs r6, r3
+ mov r9, r0
+ mov r8, r1
+ mov r7, r2
+ beq _020CA250
+ bl OS_DisableInterrupts_IrqAndFiq
+ mov r5, r0
+ b _020CA258
+_020CA250:
+ bl OS_DisableInterrupts
+ mov r5, r0
+_020CA258:
+ mov r0, r9
+ mov r1, r8
+ bl MI_SwapWord
+ movs r4, r0
+ bne _020CA27C
+ cmp r7, #0x0
+ beq _020CA278
+ blx r7
+_020CA278:
+ strh r9, [r8, #0x4]
+_020CA27C:
+ cmp r6, #0x0
+ beq _020CA290
+ mov r0, r5
+ bl OS_RestoreInterrupts_IrqAndFiq
+ b _020CA298
+_020CA290:
+ mov r0, r5
+ bl OS_RestoreInterrupts
+_020CA298:
+ mov r0, r4
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r9,lr}
+ bx lr
+
+ arm_func_start OS_UnlockByWord
+OS_UnlockByWord: ; 0x020CA2A8
+ ldr ip, _020CA2B4 ; =FUN_020CA2B8
+ mov r3, #0x0
+ bx r12
+ .balign 4
+_020CA2B4: .word FUN_020CA2B8
+
+ arm_func_start FUN_020CA2B8
+FUN_020CA2B8: ; 0x020CA2B8
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0x4
+ mov r7, r1
+ ldrh r1, [r7, #0x4]
+ mov r6, r2
+ mov r5, r3
+ cmp r0, r1
+ addne sp, sp, #0x4
+ mvnne r0, #0x1
+ ldmneia sp!, {r4-r7,lr}
+ bxne lr
+ cmp r5, #0x0
+ beq _020CA2F8
+ bl OS_DisableInterrupts_IrqAndFiq
+ mov r4, r0
+ b _020CA300
+_020CA2F8:
+ bl OS_DisableInterrupts
+ mov r4, r0
+_020CA300:
+ mov r0, #0x0
+ strh r0, [r7, #0x4]
+ cmp r6, #0x0
+ beq _020CA314
+ blx r6
+_020CA314:
+ mov r0, #0x0
+ str r0, [r7, #0x0]
+ cmp r5, #0x0
+ beq _020CA330
+ mov r0, r4
+ bl OS_RestoreInterrupts_IrqAndFiq
+ b _020CA338
+_020CA330:
+ mov r0, r4
+ bl OS_RestoreInterrupts
+_020CA338:
+ mov r0, #0x0
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r7,lr}
+ bx lr
+
+ arm_func_start OS_TryLockByWord
+OS_TryLockByWord: ; 0x020CA348
+ ldr ip, _020CA354 ; =FUN_020CA358
+ mov r3, #0x0
+ bx r12
+ .balign 4
+_020CA354: .word FUN_020CA358
+
+ arm_func_start FUN_020CA358
+FUN_020CA358: ; 0x020CA358
+ stmdb sp!, {r4-r8,lr}
+ mov r8, r0
+ mov r7, r1
+ mov r6, r2
+ mov r5, r3
+ bl OSi_DoTryLockByWord
+ cmp r0, #0x0
+ ldmleia sp!, {r4-r8,lr}
+ bxle lr
+ mov r4, #0x400
+_020CA380:
+ mov r0, r4
+ blx SVC_WaitByLoop
+ mov r0, r8
+ mov r1, r7
+ mov r2, r6
+ mov r3, r5
+ bl OSi_DoTryLockByWord
+ cmp r0, #0x0
+ bgt _020CA380
+ ldmia sp!, {r4-r8,lr}
+ bx lr
+
+ arm_func_start OS_InitLock
+OS_InitLock: ; 0x020CA3AC
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ ldr r0, _020CA484 ; =isInitialized
+ ldr r1, [r0, #0x0]
+ cmp r1, #0x0
+ addne sp, sp, #0x4
+ ldmneia sp!, {r4-r5,lr}
+ bxne lr
+ mov r2, #0x1
+ ldr r1, _020CA488 ; =0x027FFFF0
+ str r2, [r0, #0x0]
+ mov r2, #0x0
+ mov r0, #0x7e
+ str r2, [r1, #0x0]
+ bl OS_TryLockByWord
+ ldr r5, _020CA488 ; =0x027FFFF0
+ ldrh r0, [r5, #0x6]
+ cmp r0, #0x0
+ beq _020CA410
+ mov r4, #0x400
+_020CA3FC:
+ mov r0, r4
+ blx SVC_WaitByLoop
+ ldrh r0, [r5, #0x6]
+ cmp r0, #0x0
+ bne _020CA3FC
+_020CA410:
+ ldr r2, _020CA48C ; =0x027FFFB0
+ mvn r12, #0x0
+ mov r0, #0x10000
+ ldr r3, _020CA490 ; =0x027FFFB4
+ ldr r1, _020CA494 ; =0x027FFFC0
+ str r12, [r2, #0x0]
+ rsb r12, r0, #0x0
+ mov r0, #0x0
+ mov r2, #0x28
+ str r12, [r3, #0x0]
+ bl MIi_CpuClear32
+ ldr ip, _020CA498 ; =0x04000204
+ ldr r1, _020CA488 ; =0x027FFFF0
+ ldrh r3, [r12, #0x0]
+ mov r0, #0x7e
+ mov r2, #0x0
+ orr r3, r3, #0x800
+ strh r3, [r12, #0x0]
+ ldrh r3, [r12, #0x0]
+ orr r3, r3, #0x80
+ strh r3, [r12, #0x0]
+ bl OS_UnlockByWord
+ ldr r1, _020CA488 ; =0x027FFFF0
+ mov r0, #0x7f
+ mov r2, #0x0
+ bl OS_TryLockByWord
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,lr}
+ bx lr
+ .balign 4
+_020CA484: .word isInitialized
+_020CA488: .word 0x027FFFF0
+_020CA48C: .word 0x027FFFB0
+_020CA490: .word 0x027FFFB4
+_020CA494: .word 0x027FFFC0
+_020CA498: .word 0x04000204
+
+ 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
+
+ arm_func_start OS_IsThreadAvailable
+OS_IsThreadAvailable: ; 0x020CAED0
+ ldr r0, _020CAEDC ; =OSi_IsThreadInitialized
+ ldr r0, [r0, #0x0]
+ bx lr
+ .balign 4
+_020CAEDC: .word OSi_IsThreadInitialized
+
+ arm_func_start OS_SetThreadDestructor
+OS_SetThreadDestructor:
+ str r1, [r0, #0xb4]
+ bx lr
+
+ arm_func_start OS_EnableScheduler
+OS_EnableScheduler: ; 0x020CAEE8
+ stmdb sp!, {r4,lr}
+ bl OS_DisableInterrupts
+ ldr r1, _020CAF1C ; =OSi_RescheduleCount
+ mov r4, #0x0
+ ldr r3, [r1, #0x0]
+ cmp r3, #0x0
+ subne r2, r3, #0x1
+ movne r4, r3
+ strne r2, [r1, #0x0]
+ bl OS_RestoreInterrupts
+ mov r0, r4
+ ldmia sp!, {r4,lr}
+ bx lr
+ .balign 4
+_020CAF1C: .word OSi_RescheduleCount
+
+ arm_func_start OS_DisableScheduler
+OS_DisableScheduler: ; 0x020CAF20
+ stmdb sp!, {r4,lr}
+ bl OS_DisableInterrupts
+ ldr r2, _020CAF54 ; =OSi_RescheduleCount
+ mvn r1, #0x0
+ ldr r3, [r2, #0x0]
+ cmp r3, r1
+ addcc r1, r3, #0x1
+ movcc r4, r3
+ strcc r1, [r2, #0x0]
+ bl OS_RestoreInterrupts
+ mov r0, r4
+ ldmia sp!, {r4,lr}
+ bx lr
+ .balign 4
+_020CAF54: .word OSi_RescheduleCount
+
+ arm_func_start OSi_IdleThreadProc
+OSi_IdleThreadProc: ; 0x020CAF58
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ bl OS_EnableInterrupts
+_020CAF64:
+ bl OS_Halt
+ b _020CAF64
+
+ arm_func_start OS_SetSwitchThreadCallback
+OS_SetSwitchThreadCallback: ; 0x020CAF6C
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ mov r5, r0
+ bl OS_DisableInterrupts
+ ldr r1, _020CAF9C ; =OSi_ThreadInfo
+ ldr r4, [r1, #0xc]
+ str r5, [r1, #0xc]
+ bl OS_RestoreInterrupts
+ mov r0, r4
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,lr}
+ bx lr
+ .balign 4
+_020CAF9C: .word OSi_ThreadInfo
+
+ arm_func_start OSi_SleepAlarmCallback
+OSi_SleepAlarmCallback: ; 0x020CAFA0
+ ldr r2, [r0, #0x0]
+ mov r1, #0x0
+ str r1, [r0, #0x0]
+ ldr ip, _020CAFBC ; =OS_WakeupThreadDirect
+ mov r0, r2
+ str r1, [r2, #0xb0]
+ bx r12
+ .balign 4
+_020CAFBC: .word OS_WakeupThreadDirect
+
+ arm_func_start OS_Sleep
+OS_Sleep: ; 0x020CAFC0
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x34
+ mov r4, r0
+ add r0, sp, #0x8
+ bl OS_CreateAlarm
+ ldr r0, _020CB060 ; =OSi_CurrentThreadPtr
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0x0]
+ str r0, [sp, #0x4]
+ bl OS_DisableInterrupts
+ ldr r1, _020CB064 ; =0x000082EA
+ mov r2, #0x0
+ umull r5, r3, r4, r1
+ mla r3, r4, r2, r3
+ mla r3, r2, r1, r3
+ mov r1, r5, lsr #0x6
+ mov r4, r0
+ ldr r5, [sp, #0x4]
+ add r0, sp, #0x8
+ add r2, sp, #0x4
+ str r0, [r5, #0xb0]
+ str r2, [sp, #0x0]
+ mov r2, r3, lsr #0x6
+ orr r1, r1, r3, lsl #0x1a
+ ldr r3, _020CB068 ; =OSi_SleepAlarmCallback
+ bl OS_SetAlarm
+ ldr r0, [sp, #0x4]
+ cmp r0, #0x0
+ beq _020CB04C
+ mov r5, #0x0
+_020CB038:
+ mov r0, r5
+ bl OS_SleepThread
+ ldr r0, [sp, #0x4]
+ cmp r0, #0x0
+ bne _020CB038
+_020CB04C:
+ mov r0, r4
+ bl OS_RestoreInterrupts
+ add sp, sp, #0x34
+ ldmia sp!, {r4-r5,lr}
+ bx lr
+ .balign 4
+_020CB060: .word OSi_CurrentThreadPtr
+_020CB064: .word 0x000082EA
+_020CB068: .word OSi_SleepAlarmCallback
+
+ arm_func_start OS_GetThreadPriority
+OS_GetThreadPriority: ; 0x020CB06C
+ ldr r0, [r0, #0x70]
+ bx lr
+
+ arm_func_start OS_SetThreadPriority
+OS_SetThreadPriority: ; 0x020CB074
+ stmdb sp!, {r4-r8,lr}
+ ldr r2, _020CB120 ; =OSi_ThreadInfo
+ mov r6, r0
+ mov r5, r1
+ ldr r8, [r2, #0x8]
+ mov r7, #0x0
+ bl OS_DisableInterrupts
+ mov r4, r0
+ b _020CB0A0
+_020CB098:
+ mov r7, r8
+ ldr r8, [r8, #0x68]
+_020CB0A0:
+ cmp r8, #0x0
+ beq _020CB0B0
+ cmp r8, r6
+ bne _020CB098
+_020CB0B0:
+ cmp r8, #0x0
+ beq _020CB0C4
+ ldr r0, _020CB124 ; =OSi_IdleThread
+ cmp r8, r0
+ bne _020CB0D8
+_020CB0C4:
+ mov r0, r4
+ bl OS_RestoreInterrupts
+_020CB0CC:
+ mov r0, #0x0
+ ldmia sp!, {r4-r8,lr}
+ bx lr
+_020CB0D8:
+ ldr r0, [r8, #0x70]
+ cmp r0, r5
+ beq _020CB10C
+ cmp r7, #0x0
+ ldreq r1, [r6, #0x68]
+ ldreq r0, _020CB120 ; =OSi_ThreadInfo
+ streq r1, [r0, #0x8]
+ ldrne r0, [r6, #0x68]
+ strne r0, [r7, #0x68]
+ mov r0, r6
+ str r5, [r6, #0x70]
+ bl OSi_InsertThreadToList
+ bl OSi_RescheduleThread
+_020CB10C:
+ mov r0, r4
+ bl OS_RestoreInterrupts
+ mov r0, #0x1
+ ldmia sp!, {r4-r8,lr}
+ bx lr
+ .balign 4
+_020CB120: .word OSi_ThreadInfo
+_020CB124: .word OSi_IdleThread
+
+ arm_func_start OS_YieldThread
+OS_YieldThread: ; 0x020CB128
+ stmdb sp!, {r4-r8,lr}
+ ldr r0, _020CB1E0 ; =OSi_ThreadInfo
+ mov r7, #0x0
+ mov r6, r7
+ mov r5, r7
+ ldr r8, [r0, #0x4]
+ bl OS_DisableInterrupts
+ ldr r1, _020CB1E0 ; =OSi_ThreadInfo
+ mov r4, r0
+ ldr r2, [r1, #0x8]
+ mov r0, r7
+ cmp r2, #0x0
+ beq _020CB188
+ ldr r1, [r8, #0x70]
+_020CB160:
+ cmp r2, r8
+ moveq r7, r0
+ ldr r0, [r2, #0x70]
+ cmp r1, r0
+ moveq r6, r2
+ mov r0, r2
+ ldr r2, [r2, #0x68]
+ addeq r5, r5, #0x1
+ cmp r2, #0x0
+ bne _020CB160
+_020CB188:
+ cmp r5, #0x1
+ ble _020CB198
+ cmp r6, r8
+ bne _020CB1A8
+_020CB198:
+ mov r0, r4
+ bl OS_RestoreInterrupts
+ ldmia sp!, {r4-r8,lr}
+ bx lr
+_020CB1A8:
+ cmp r7, #0x0
+ ldreq r1, [r8, #0x68]
+ ldreq r0, _020CB1E0 ; =OSi_ThreadInfo
+ streq r1, [r0, #0x8]
+ ldrne r0, [r8, #0x68]
+ strne r0, [r7, #0x68]
+ ldr r0, [r6, #0x68]
+ str r0, [r8, #0x68]
+ str r8, [r6, #0x68]
+ bl OSi_RescheduleThread
+ mov r0, r4
+ bl OS_RestoreInterrupts
+ ldmia sp!, {r4-r8,lr}
+ bx lr
+ .balign 4
+_020CB1E0: .word OSi_ThreadInfo
+
+ arm_func_start OS_RescheduleThread
+OS_RescheduleThread: ; 0x020CB1E4
+ stmdb sp!, {r4,lr}
+ bl OS_DisableInterrupts
+ mov r4, r0
+ bl OSi_RescheduleThread
+ mov r0, r4
+ bl OS_RestoreInterrupts
+ ldmia sp!, {r4,lr}
+ bx lr
+
+ arm_func_start OS_SelectThread
+OS_SelectThread: ; 0x020CB204
+ ldr r0, _020CB22C ; =OSi_ThreadInfo
+ ldr r0, [r0, #0x8]
+ b _020CB214
+_020CB210:
+ ldr r0, [r0, #0x68]
+_020CB214:
+ cmp r0, #0x0
+ bxeq lr
+ ldr r1, [r0, #0x64]
+ cmp r1, #0x1
+ bne _020CB210
+ bx lr
+ .balign 4
+_020CB22C: .word OSi_ThreadInfo
+
+ arm_func_start OS_WakeupThreadDirect
+OS_WakeupThreadDirect: ; 0x020CB230
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ mov r5, r0
+ bl OS_DisableInterrupts
+ mov r1, #0x1
+ mov r4, r0
+ str r1, [r5, #0x64]
+ bl OSi_RescheduleThread
+ mov r0, r4
+ bl OS_RestoreInterrupts
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,lr}
+ bx lr
+
+ arm_func_start OS_WakeupThread
+OS_WakeupThread: ; 0x020CB264
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0x4
+ mov r5, r0
+ bl OS_DisableInterrupts
+ ldr r1, [r5, #0x0]
+ mov r4, r0
+ cmp r1, #0x0
+ beq _020CB2D0
+ cmp r1, #0x0
+ beq _020CB2BC
+ mov r7, #0x1
+ mov r6, #0x0
+_020CB294:
+ mov r0, r5
+ bl OSi_RemoveLinkFromQueue
+ str r7, [r0, #0x64]
+ str r6, [r0, #0x78]
+ str r6, [r0, #0x80]
+ ldr r1, [r0, #0x80]
+ str r1, [r0, #0x7c]
+ ldr r0, [r5, #0x0]
+ cmp r0, #0x0
+ bne _020CB294
+_020CB2BC:
+ mov r0, #0x0
+ str r0, [r5, #0x4]
+ ldr r0, [r5, #0x4]
+ str r0, [r5, #0x0]
+ bl OSi_RescheduleThread
+_020CB2D0:
+ mov r0, r4
+ bl OS_RestoreInterrupts
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r7,lr}
+ bx lr
+
+ arm_func_start OS_SleepThread
+OS_SleepThread:
+ stmdb sp!, {r4-r6,lr}
+ mov r6, r0
+ bl OS_DisableInterrupts
+ ldr r1, _020CB334 ; =OSi_CurrentThreadPtr
+ mov r5, r0
+ ldr r0, [r1, #0x0]
+ cmp r6, #0x0
+ ldr r4, [r0, #0x0]
+ beq _020CB318
+ mov r0, r6
+ mov r1, r4
+ str r6, [r4, #0x78]
+ bl OSi_InsertLinkToQueue
+_020CB318:
+ mov r0, #0x0
+ str r0, [r4, #0x64]
+ bl OSi_RescheduleThread
+ mov r0, r5
+ bl OS_RestoreInterrupts
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+ .balign 4
+_020CB334: .word OSi_CurrentThreadPtr
+
+ arm_func_start OS_IsThreadTerminated
+OS_IsThreadTerminated: ; 0x020CB338
+ ldr r0, [r0, #0x64]
+ cmp r0, #0x2
+ moveq r0, #0x1
+ movne r0, #0x0
+ bx lr
+
+ arm_func_start OS_JoinThread
+OS_JoinThread: ; 0x020CB34C
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ mov r5, r0
+ bl OS_DisableInterrupts
+ ldr r1, [r5, #0x64]
+ mov r4, r0
+ cmp r1, #0x2
+ beq _020CB374
+ add r0, r5, #0x9c
+ bl OS_SleepThread
+_020CB374:
+ mov r0, r4
+ bl OS_RestoreInterrupts
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,lr}
+ bx lr
+
+ arm_func_start OSi_CancelThreadAlarmForSleep
+OSi_CancelThreadAlarmForSleep: ; 0x020CB388
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldr r0, [r0, #0xb0]
+ cmp r0, #0x0
+ addeq sp, sp, #0x4
+ ldmeqia sp!, {lr}
+ bxeq lr
+ bl OS_CancelAlarm
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+
+ arm_func_start OS_DestroyThread
+OS_DestroyThread: ; 0x020CB3B4
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ mov r5, r0
+ bl OS_DisableInterrupts
+ ldr r1, _020CB438 ; =OSi_ThreadInfo
+ mov r4, r0
+ ldr r0, [r1, #0x4]
+ cmp r0, r5
+ bne _020CB3DC
+ bl OSi_ExitThread_Destroy
+_020CB3DC:
+ bl OS_DisableScheduler
+ mov r0, r5
+ bl OSi_UnlockAllMutex
+ mov r0, r5
+ bl OSi_CancelThreadAlarmForSleep
+ ldr r0, [r5, #0x78]
+ cmp r0, #0x0
+ beq _020CB404
+ mov r1, r5
+ bl OSi_RemoveSpecifiedLinkFromQueue
+_020CB404:
+ mov r0, r5
+ bl OSi_RemoveThreadFromList
+ mov r1, #0x2
+ add r0, r5, #0x9c
+ str r1, [r5, #0x64]
+ bl OS_WakeupThread
+ bl OS_EnableScheduler
+ mov r0, r4
+ bl OS_RestoreInterrupts
+ bl OS_RescheduleThread
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,lr}
+ bx lr
+ .balign 4
+_020CB438: .word OSi_ThreadInfo
+
+ arm_func_start OSi_ExitThread_Destroy
+OSi_ExitThread_Destroy: ; 0x020CB43C
+ stmdb sp!, {r4,lr}
+ ldr r0, _020CB498 ; =OSi_CurrentThreadPtr
+ ldr r0, [r0, #0x0]
+ ldr r4, [r0, #0x0]
+ bl OS_DisableScheduler
+ mov r0, r4
+ bl OSi_UnlockAllMutex
+ ldr r0, [r4, #0x78]
+ cmp r0, #0x0
+ beq _020CB46C
+ mov r1, r4
+ bl OSi_RemoveSpecifiedLinkFromQueue
+_020CB46C:
+ mov r0, r4
+ bl OSi_RemoveThreadFromList
+ mov r1, #0x2
+ add r0, r4, #0x9c
+ str r1, [r4, #0x64]
+ bl OS_WakeupThread
+ bl OS_EnableScheduler
+ bl OS_RescheduleThread
+ bl OS_Terminate
+ ldmia sp!, {r4,lr}
+ bx lr
+ .balign 4
+_020CB498: .word OSi_CurrentThreadPtr
+
+ arm_func_start OSi_ExitThread_Destroy2
+OSi_ExitThread_Destroy2: ; 0x020CB49C
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldr r1, _020CB4DC ; =OSi_CurrentThreadPtr
+ ldr r1, [r1, #0x0]
+ ldr r3, [r1, #0x0]
+ ldr r2, [r3, #0xb4]
+ cmp r2, #0x0
+ beq _020CB4CC
+ mov r1, #0x0
+ str r1, [r3, #0xb4]
+ blx r2
+ bl OS_DisableInterrupts
+_020CB4CC:
+ bl OSi_ExitThread_Destroy
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+ .balign 4
+_020CB4DC: .word OSi_CurrentThreadPtr
+
+ arm_func_start OSi_ExitThread_ArgSpecified
+OSi_ExitThread_ArgSpecified: ; 0x020CB4E0
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ ldr r2, _020CB548 ; =OSi_StackForDestructor
+ mov r5, r0
+ ldr r2, [r2, #0x0]
+ mov r4, r1
+ cmp r2, #0x0
+ beq _020CB534
+ ldr r1, _020CB54C ; =OSi_ExitThread_Destroy2
+ bl OS_InitContext
+ str r4, [r5, #0x4]
+ ldr r1, [r5, #0x0]
+ mov r0, r5
+ orr r1, r1, #0x80
+ str r1, [r5, #0x0]
+ mov r1, #0x1
+ str r1, [r5, #0x64]
+ bl OS_LoadContext
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,lr}
+ bx lr
+_020CB534:
+ mov r0, r4
+ bl OSi_ExitThread_Destroy2
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,lr}
+ bx lr
+ .balign 4
+_020CB548: .word OSi_StackForDestructor
+_020CB54C: .word OSi_ExitThread_Destroy2
+
+ arm_func_start OS_ExitThread
+OS_ExitThread: ; 0x020CB550
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ bl OS_DisableInterrupts
+ ldr r0, _020CB578 ; =OSi_ThreadInfo
+ mov r1, #0x0
+ ldr r0, [r0, #0x4]
+ bl OSi_ExitThread_ArgSpecified
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+ .balign 4
+_020CB578: .word OSi_ThreadInfo
+
+ arm_func_start OS_CreateThread
+OS_CreateThread: ; 0x020CB57C
+ stmdb sp!, {r4-r8,lr}
+ mov r8, r0
+ mov r5, r1
+ mov r7, r2
+ mov r6, r3
+ bl OS_DisableInterrupts
+ mov r4, r0
+ bl OSi_GetUnusedThreadId
+ ldr r2, [sp, #0x1c]
+ mov r1, #0x0
+ str r2, [r8, #0x70]
+ str r0, [r8, #0x6c]
+ str r1, [r8, #0x64]
+ str r1, [r8, #0x74]
+ mov r0, r8
+ bl OSi_InsertThreadToList
+ mov r1, r5
+ str r6, [r8, #0x94]
+ ldr r0, [sp, #0x18]
+ mov r12, #0x0
+ sub r5, r6, r0
+ sub r2, r6, #0x4
+ str r5, [r8, #0x90]
+ str r12, [r8, #0x98]
+ ldr r3, _020CB678 ; =0xFDDB597D
+ ldr r0, [r8, #0x94]
+ ldr r6, _020CB67C ; =0x7BF9DD5B
+ str r3, [r0, #-0x4]
+ ldr r3, [r8, #0x90]
+ mov r0, r8
+ str r6, [r3, #0x0]
+ str r12, [r8, #0xa0]
+ ldr r3, [r8, #0xa0]
+ str r3, [r8, #0x9c]
+ bl OS_InitContext
+ str r7, [r8, #0x4]
+ add r1, r5, #0x4
+ ldr r2, _020CB680 ; =OS_ExitThread
+ mov r0, #0x0
+ str r2, [r8, #0x3c]
+ ldr r2, [sp, #0x18]
+ sub r2, r2, #0x8
+ bl MIi_CpuClear32
+ mov r1, #0x0
+ str r1, [r8, #0x84]
+ str r1, [r8, #0x88]
+ str r1, [r8, #0x8c]
+ mov r0, r8
+ bl OS_SetThreadDestructor
+_020CB640:
+ mov r0, #0x0
+ str r0, [r8, #0x78]
+ str r0, [r8, #0x80]
+ ldr r2, [r8, #0x80]
+ add r1, r8, #0xA4
+ str r2, [r8, #0x7C]
+ mov r2, #0xC
+ bl MIi_CpuClear32
+ mov r0, r4
+ mov r1, #0x0
+ str r1, [r8, #0xB0]
+ bl OS_RestoreInterrupts
+ ldmia sp!, {r4-r8, lr}
+ bx lr
+_020CB678: .word 0xFDDB597D
+_020CB67C: .word 0x7BF9DD5B
+_020CB680: .word OS_ExitThread
+
+ arm_func_start OS_InitThread
+OS_InitThread: ; 0x020CB684
+ stmdb sp!, {r4-r6,lr}
+ sub sp, sp, #0x8
+ ldr r3, _020CB7A4 ; =OSi_IsThreadInitialized
+ ldr r0, [r3, #0x0]
+ cmp r0, #0x0
+ addne sp, sp, #0x8
+ ldmneia sp!, {r4-r6,lr}
+ bxne lr
+ ldr ip, _020CB7A8 ; =0x00000000
+ ldr r1, _020CB7AC ; =0x021D3568
+ mov lr, #0x0
+ ldr r0, _020CB7B0 ; =OSi_ThreadInfo
+ mov r6, #0x1
+ mov r4, #0x10
+ str r1, [r0, #0x8]
+ str r1, [r0, #0x4]
+ cmp r12, #0x0
+ ldrle r0, _020CB7B4 ; =0x027E0080
+ str r4, [r1, #0x70]
+ suble r4, r0, r12
+ str lr, [r1, #0x6c]
+ str r6, [r1, #0x64]
+ str lr, [r1, #0x68]
+ str lr, [r1, #0x74]
+ ldrgt r1, _020CB7B8 ; =0x027E0000
+ ldrgt r0, _020CB7BC ; =0x00000400
+ addgt r1, r1, #0x3f80
+ subgt r0, r1, r0
+ subgt r4, r0, r12
+ ldr r1, _020CB7B8 ; =0x027E0000
+ ldr r5, _020CB7C0 ; =0x021D349C
+ ldr r2, _020CB7C4 ; =OSi_CurrentThreadPtr
+ ldr r0, _020CB7BC ; =0x00000400
+ str r5, [r2, #0x0]
+ ldr r2, _020CB7AC ; =0x021D3568
+ add r1, r1, #0x3f80
+ str r6, [r3, #0x0]
+ sub r3, r1, r0
+ mov r0, #0x0
+ ldr r1, _020CB7C8 ; =0xFDDB597D
+ str r3, [r2, #0x94]
+ str r4, [r2, #0x90]
+ str r0, [r2, #0x98]
+ str r1, [r3, #-0x4]
+ ldr r3, [r2, #0x90]
+ ldr ip, _020CB7CC ; =0x7BF9DD5B
+ ldr r1, _020CB7B0 ; =OSi_ThreadInfo
+ str r12, [r3, #0x0]
+ ldr r3, _020CB7D0 ; =0x027FFFA0
+ str r0, [r2, #0xa0]
+ str r0, [r2, #0x9c]
+ strh r0, [r1, #0x0]
+ strh r0, [r1, #0x2]
+ str r1, [r3, #0x0]
+ bl OS_SetSwitchThreadCallback
+ mov r2, #0xc8
+ str r2, [sp, #0x0]
+ mov r12, #0x1f
+ ldr r0, _020CB7D4 ; =OSi_IdleThread
+ ldr r1, _020CB7D8 ; =OSi_IdleThreadProc
+ ldr r3, _020CB7DC ; =OSi_Initialized
+ mov r2, #0x0
+ str r12, [sp, #0x4]
+ bl OS_CreateThread
+ ldr r0, _020CB7D4 ; =OSi_IdleThread
+ mov r2, #0x20
+ mov r1, #0x1
+ str r2, [r0, #0x70]
+ str r1, [r0, #0x64]
+ add sp, sp, #0x8
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+ .balign 4
+_020CB7A4: .word OSi_IsThreadInitialized
+_020CB7A8: .word SDK_SYS_STACKSIZE
+_020CB7AC: .word OSi_LauncherThread
+_020CB7B0: .word OSi_ThreadInfo
+_020CB7B4: .word SDK_SECTION_ARENA_DTCM_START
+_020CB7B8: .word SDK_AUTOLOAD_DTCM_START
+_020CB7BC: .word SDK_IRQ_STACKSIZE
+_020CB7C0: .word OSi_ThreadInfo+4
+_020CB7C4: .word OSi_CurrentThreadPtr
+_020CB7C8: .word 0xFDDB597D
+_020CB7CC: .word 0x7BF9DD5B
+_020CB7D0: .word 0x027FFFA0
+_020CB7D4: .word OSi_IdleThread
+_020CB7D8: .word OSi_IdleThreadProc
+_020CB7DC: .word OSi_IdleThreadStack+0xc8
+
+ arm_func_start OSi_RescheduleThread
+OSi_RescheduleThread: ; 0x020CB7E0
+ stmdb sp!, {r4-r6,lr}
+ ldr r0, _020CB8BC ; =OSi_RescheduleCount
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ ldmneia sp!, {r4-r6,lr}
+ bxne lr
+ ldr r4, _020CB8C0 ; =OSi_ThreadInfo
+ ldrh r0, [r4, #0x2]
+ cmp r0, #0x0
+ bne _020CB814
+ bl OS_GetProcMode
+ cmp r0, #0x12
+ bne _020CB824
+_020CB814:
+ mov r0, #0x1
+ strh r0, [r4, #0x0]
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+_020CB824:
+ ldr r0, _020CB8C4 ; =OSi_CurrentThreadPtr
+ ldr r0, [r0, #0x0]
+ ldr r6, [r0, #0x0]
+ bl OS_SelectThread
+ mov r5, r0
+ cmp r6, r5
+ ldmeqia sp!, {r4-r6,lr}
+ bxeq lr
+ cmp r5, #0x0
+ ldmeqia sp!, {r4-r6,lr}
+ bxeq lr
+ ldr r0, [r6, #0x64]
+ cmp r0, #0x2
+ beq _020CB870
+ mov r0, r6
+ bl OS_SaveContext
+_020CB864:
+ cmp r0, #0x0
+ ldmneia sp!, {r4-r6,lr}
+ bxne lr
+_020CB870:
+ ldr r0, _020CB8C8 ; =0x021D348C
+ ldr r2, [r0, #0x0]
+ cmp r2, #0x0
+ beq _020CB88C
+ mov r0, r6
+ mov r1, r5
+ blx r2
+_020CB88C:
+ ldr r2, [r4, #0xc]
+ cmp r2, #0x0
+ beq _020CB8A4
+ mov r0, r6
+ mov r1, r5
+ blx r2
+_020CB8A4:
+ ldr r1, _020CB8C0 ; =OSi_ThreadInfo
+ mov r0, r5
+ str r5, [r1, #0x4]
+ bl OS_LoadContext
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+ .balign 4
+_020CB8BC: .word OSi_RescheduleCount
+_020CB8C0: .word OSi_ThreadInfo
+_020CB8C4: .word OSi_CurrentThreadPtr
+_020CB8C8: .word OSi_SystemCallbackInSwitchThread
+
+ arm_func_start OSi_RemoveThreadFromList
+OSi_RemoveThreadFromList: ; 0x020CB8CC
+ ldr r1, _020CB910 ; =OSi_ThreadInfo
+ mov r2, #0x0
+ ldr r1, [r1, #0x8]
+ b _020CB8E4
+_020CB8DC:
+ mov r2, r1
+ ldr r1, [r1, #0x68]
+_020CB8E4:
+ cmp r1, #0x0
+ beq _020CB8F4
+ cmp r1, r0
+ bne _020CB8DC
+_020CB8F4:
+ cmp r2, #0x0
+ ldreq r1, [r0, #0x68]
+ ldreq r0, _020CB910 ; =OSi_ThreadInfo
+ streq r1, [r0, #0x8]
+ ldrne r0, [r0, #0x68]
+ strne r0, [r2, #0x68]
+ bx lr
+ .balign 4
+_020CB910: .word OSi_ThreadInfo
+
+ arm_func_start OSi_InsertThreadToList
+OSi_InsertThreadToList: ; 0x020CB914
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldr r1, _020CB978 ; =OSi_ThreadInfo
+ mov r12, #0x0
+ ldr r3, [r1, #0x8]
+ mov lr, r3
+ b _020CB938
+_020CB930:
+ mov r12, lr
+ ldr lr, [lr, #0x68]
+_020CB938:
+ cmp lr, #0x0
+ beq _020CB950
+ ldr r2, [lr, #0x70]
+ ldr r1, [r0, #0x70]
+ cmp r2, r1
+ blo _020CB930
+_020CB950:
+ cmp r12, #0x0
+ ldreq r1, _020CB978 ; =OSi_ThreadInfo
+ streq r3, [r0, #0x68]
+ streq r0, [r1, #0x8]
+ ldrne r1, [r12, #0x68]
+ strne r1, [r0, #0x68]
+ strne r0, [r12, #0x68]
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+ .balign 4
+_020CB978: .word OSi_ThreadInfo
+
+ arm_func_start OSi_RemoveMutexLinkFromQueue
+OSi_RemoveMutexLinkFromQueue: ; 0x020CB97C
+ ldr r2, [r0, #0x0]
+ cmp r2, #0x0
+ beq _020CB9A4
+ ldr r1, [r2, #0x10]
+ str r1, [r0, #0x0]
+ cmp r1, #0x0
+ movne r0, #0x0
+ strne r0, [r1, #0x14]
+ moveq r1, #0x0
+ streq r1, [r0, #0x4]
+_020CB9A4:
+ mov r0, r2
+ bx lr
+
+ arm_func_start OSi_RemoveSpecifiedLinkFromQueue
+OSi_RemoveSpecifiedLinkFromQueue: ; 0x020CB9AC
+ ldr r2, [r0, #0x0]
+ mov r12, r2
+ cmp r2, #0x0
+ beq _020CB9F8
+_020CB9BC:
+ cmp r12, r1
+ ldr r3, [r12, #0x80]
+ bne _020CB9EC
+ cmp r2, r12
+ ldr r2, [r12, #0x7c]
+ streq r3, [r0, #0x0]
+ strne r3, [r2, #0x80]
+ ldr r1, [r0, #0x4]
+ cmp r1, r12
+ streq r2, [r0, #0x4]
+ strne r2, [r3, #0x7c]
+ b _020CB9F8
+_020CB9EC:
+ mov r12, r3
+ cmp r3, #0x0
+ bne _020CB9BC
+_020CB9F8:
+ mov r0, r12
+ bx lr
+
+ arm_func_start OSi_RemoveLinkFromQueue
+OSi_RemoveLinkFromQueue: ; 0x020CBA00
+ ldr r2, [r0, #0x0]
+ cmp r2, #0x0
+ beq _020CBA2C
+ ldr r1, [r2, #0x80]
+ str r1, [r0, #0x0]
+ cmp r1, #0x0
+ movne r0, #0x0
+ strne r0, [r1, #0x7c]
+ moveq r1, #0x0
+ streq r1, [r0, #0x4]
+ streq r1, [r2, #0x78]
+_020CBA2C:
+ mov r0, r2
+ bx lr
+
+ arm_func_start OSi_InsertLinkToQueue
+OSi_InsertLinkToQueue:
+ ldr r12, [r0, #0x0]
+ b _020CBA48
+_020CBA3C:
+ cmp r12, r1
+ bxeq lr
+ ldr r12, [r12, #0x80]
+_020CBA48:
+ cmp r12, #0x0
+ beq _020CBA60
+ ldr r3, [r12, #0x70]
+ ldr r2, [r1, #0x70]
+ cmp r3, r2
+ bls _020CBA3C
+_020CBA60:
+ cmp r12, #0x0
+ bne _020CBA8C
+ ldr r2, [r0, #0x4]
+ cmp r2, #0x0
+ streq r1, [r0, #0x0]
+ strne r1, [r2, #0x80]
+ str r2, [r1, #0x7c]
+ mov r2, #0x0
+ str r2, [r1, #0x80]
+ str r1, [r0, #0x4]
+ bx lr
+_020CBA8C:
+ ldr r2, [r12, #0x7c]
+ cmp r2, #0x0
+ streq r1, [r0, #0x0]
+ strne r1, [r2, #0x80]
+ str r2, [r1, #0x7c]
+ str r12, [r1, #0x80]
+ str r1, [r12, #0x7c]
+ bx lr
+
+ arm_func_start OSi_GetUnusedThreadId
+OSi_GetUnusedThreadId: ; 0x020CBAAC
+ ldr r1, _020CBAC0 ; =OSi_ThreadIdCount
+ ldr r0, [r1, #0x0]
+ add r0, r0, #0x1
+ str r0, [r1, #0x0]
+ bx lr
+ .balign 4
+_020CBAC0: .word OSi_ThreadIdCount
+
+ arm_func_start OS_InitContext
+OS_InitContext: ; 0x020CBAC4
+ add r1, r1, #0x4
+ str r1, [r0, #0x40]
+ str r2, [r0, #0x44]
+ sub r2, r2, #0x40
+ tst r2, #0x4
+ subne r2, r2, #0x4
+ str r2, [r0, #0x38]
+ ands r1, r1, #0x1
+ movne r1, #0x3f
+ moveq r1, #0x1f
+ str r1, [r0, #0x0]
+ mov r1, #0x0
+ str r1, [r0, #0x4]
+ str r1, [r0, #0x8]
+ str r1, [r0, #0xc]
+ str r1, [r0, #0x10]
+ str r1, [r0, #0x14]
+ str r1, [r0, #0x18]
+ str r1, [r0, #0x1c]
+ str r1, [r0, #0x20]
+ str r1, [r0, #0x24]
+ str r1, [r0, #0x28]
+ str r1, [r0, #0x2c]
+ str r1, [r0, #0x30]
+ str r1, [r0, #0x34]
+ str r1, [r0, #0x3c]
+ bx lr
+
+ arm_func_start OS_SaveContext
+OS_SaveContext:
+ stmdb sp!, {r0,lr}
+ add r0, r0, #0x48
+ ldr r1, _020CBB78 ; =CP_SaveContext
+ blx r1
+ ldmia sp!, {r0,lr}
+ add r1, r0, #0x0
+ mrs r2, cpsr
+ str r2, [r1], #0x4
+ mov r0, #0xd3
+ msr cpsr_c, r0
+ str sp, [r1, #0x40]
+ msr cpsr_c, r2
+ mov r0, #0x1
+ stmia r1, {r0-lr}
+ add r0, pc, #0x8 ; =_020CBB78
+ str r0, [r1, #0x3c]
+ mov r0, #0x0
+ bx lr
+ .balign 4
+_020CBB78: .word CP_SaveContext
+
+ arm_func_start OS_LoadContext
+OS_LoadContext: ; 0x020CBB7C
+ stmdb sp!, {r0,lr}
+ add r0, r0, #0x48
+ ldr r1, _020CBBBC ; =CP_RestoreContext
+ blx r1
+ ldmia sp!, {r0,lr}
+ mrs r1, cpsr
+ bic r1, r1, #0x1f
+ orr r1, r1, #0xd3
+ msr cpsr_c, r1
+ ldr r1, [r0], #0x4
+ msr spsr_fsxc, r1
+ ldr sp, [r0, #0x40]
+ ldr lr, [r0, #0x3c]
+ ldmia r0, {r0-lr}^
+ mov r0, r0
+ subs pc, lr, #0x4
+ .balign 4
+_020CBBBC: .word CP_RestoreContext
+
+ arm_func_start OS_GetConsoleType
+OS_GetConsoleType: ; 0x020CBBC0
+ ldr r0, _020CBBD0 ; =0x82000001
+ ldr r1, _020CBBD4 ; =0x02106828
+ str r0, [r1, #0x0]
+ bx lr
+ .balign 4
+_020CBBD0: .word 0x82000001
+_020CBBD4: .word 0x02106828
+
+ arm_func_start OS_IsRunOnEmulator
+OS_IsRunOnEmulator:
+ mov r0, #0x0
+ bx lr
+
+ arm_func_start OS_ReadMessage
+OS_ReadMessage: ; 0x020CBBE0
+ stmdb sp!, {r4-r8,lr}
+ mov r6, r0
+ mov r5, r1
+ mov r7, r2
+ bl OS_DisableInterrupts
+ ldr r1, [r6, #0x1c]
+ mov r4, r0
+ cmp r1, #0x0
+ bne _020CBC3C
+ and r8, r7, #0x1
+ add r7, r6, #0x8
+_020CBC0C:
+ cmp r8, #0x0
+ bne _020CBC28
+ mov r0, r4
+ bl OS_RestoreInterrupts
+_020CBC1C:
+ mov r0, #0x0
+ ldmia sp!, {r4-r8,lr}
+ bx lr
+_020CBC28:
+ mov r0, r7
+ bl OS_SleepThread
+ ldr r0, [r6, #0x1c]
+ cmp r0, #0x0
+ beq _020CBC0C
+_020CBC3C:
+ cmp r5, #0x0
+ ldrne r1, [r6, #0x10]
+ ldrne r0, [r6, #0x18]
+ ldrne r0, [r1, r0, lsl #0x2]
+ strne r0, [r5, #0x0]
+ mov r0, r4
+ bl OS_RestoreInterrupts
+ mov r0, #0x1
+ ldmia sp!, {r4-r8,lr}
+ bx lr
+
+ arm_func_start OS_JamMessage
+OS_JamMessage: ; 0x020CBC64
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0x4
+ mov r6, r0
+ mov r5, r1
+ mov r7, r2
+ bl OS_DisableInterrupts
+ ldr r1, [r6, #0x14]
+ ldr r2, [r6, #0x1c]
+ mov r4, r0
+ cmp r1, r2
+ bgt _020CBCCC
+ and r7, r7, #0x1
+_020CBC94:
+ cmp r7, #0x0
+ bne _020CBCB4
+ mov r0, r4
+ bl OS_RestoreInterrupts
+ add sp, sp, #0x4
+ mov r0, #0x0
+ ldmia sp!, {r4-r7,lr}
+ bx lr
+_020CBCB4:
+ mov r0, r6
+ bl OS_SleepThread
+ ldr r1, [r6, #0x14]
+ ldr r0, [r6, #0x1c]
+ cmp r1, r0
+ ble _020CBC94
+_020CBCCC:
+ ldr r0, [r6, #0x18]
+ add r0, r0, r1
+ sub r0, r0, #0x1
+ bl _s32_div_f
+ str r1, [r6, #0x18]
+ ldr r2, [r6, #0x10]
+ ldr r1, [r6, #0x18]
+ add r0, r6, #0x8
+ str r5, [r2, r1, lsl #0x2]
+ ldr r1, [r6, #0x1c]
+ add r1, r1, #0x1
+ str r1, [r6, #0x1c]
+ bl OS_WakeupThread
+ mov r0, r4
+ bl OS_RestoreInterrupts
+ mov r0, #0x1
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r7,lr}
+ bx lr
+
+ arm_func_start OS_ReceiveMessage
+OS_ReceiveMessage: ; 0x020CBD18
+ stmdb sp!, {r4-r8,lr}
+ mov r6, r0
+ mov r5, r1
+ mov r7, r2
+ bl OS_DisableInterrupts
+ ldr r1, [r6, #0x1c]
+ mov r4, r0
+ cmp r1, #0x0
+ bne _020CBD74
+ and r8, r7, #0x1
+ add r7, r6, #0x8
+_020CBD44:
+ cmp r8, #0x0
+ bne _020CBD60
+ mov r0, r4
+ bl OS_RestoreInterrupts
+_020CBD54:
+ mov r0, #0x0
+ ldmia sp!, {r4-r8,lr}
+ bx lr
+_020CBD60:
+ mov r0, r7
+ bl OS_SleepThread
+ ldr r0, [r6, #0x1c]
+ cmp r0, #0x0
+ beq _020CBD44
+_020CBD74:
+ cmp r5, #0x0
+ ldrne r1, [r6, #0x10]
+ ldrne r0, [r6, #0x18]
+ ldrne r0, [r1, r0, lsl #0x2]
+ strne r0, [r5, #0x0]
+ ldr r0, [r6, #0x18]
+ ldr r1, [r6, #0x14]
+ add r0, r0, #0x1
+ bl _s32_div_f
+ str r1, [r6, #0x18]
+ ldr r1, [r6, #0x1c]
+ mov r0, r6
+ sub r1, r1, #0x1
+ str r1, [r6, #0x1c]
+ bl OS_WakeupThread
+ mov r0, r4
+ bl OS_RestoreInterrupts
+ mov r0, #0x1
+ ldmia sp!, {r4-r8,lr}
+ bx lr
+
+ arm_func_start OS_SendMessage
+OS_SendMessage: ; 0x020CBDC4
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0x4
+ mov r6, r0
+ mov r5, r1
+ mov r7, r2
+ bl OS_DisableInterrupts
+ ldr r2, [r6, #0x1c]
+ ldr r1, [r6, #0x14]
+ mov r4, r0
+ cmp r1, r2
+ bgt _020CBE2C
+ and r7, r7, #0x1
+_020CBDF4:
+ cmp r7, #0x0
+ bne _020CBE14
+ mov r0, r4
+ bl OS_RestoreInterrupts
+ add sp, sp, #0x4
+ mov r0, #0x0
+ ldmia sp!, {r4-r7,lr}
+ bx lr
+_020CBE14:
+ mov r0, r6
+ bl OS_SleepThread
+ ldr r2, [r6, #0x1c]
+ ldr r1, [r6, #0x14]
+ cmp r1, r2
+ ble _020CBDF4
+_020CBE2C:
+ ldr r0, [r6, #0x18]
+ add r0, r0, r2
+ bl _s32_div_f
+ ldr r2, [r6, #0x10]
+ add r0, r6, #0x8
+ str r5, [r2, r1, lsl #0x2]
+ ldr r1, [r6, #0x1c]
+ add r1, r1, #0x1
+ str r1, [r6, #0x1c]
+ bl OS_WakeupThread
+ mov r0, r4
+ bl OS_RestoreInterrupts
+ mov r0, #0x1
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r7,lr}
+ bx lr
+
+ arm_func_start OS_InitMessageQueue
+OS_InitMessageQueue: ; 0x020CBE6C
+ mov r12, #0x0
+ str r12, [r0, #0x4]
+ ldr r3, [r0, #0x4]
+ str r3, [r0, #0x0]
+ str r12, [r0, #0xc]
+ ldr r3, [r0, #0xc]
+ str r3, [r0, #0x8]
+ str r1, [r0, #0x10]
+ str r2, [r0, #0x14]
+ str r12, [r0, #0x18]
+ str r12, [r0, #0x1c]
+ bx lr
+
+ arm_func_start OSi_DequeueItem
+OSi_DequeueItem: ; 0x020CBE9C
+ ldr r2, [r1, #0x10]
+ ldr r1, [r1, #0x14]
+ cmp r2, #0x0
+ streq r1, [r0, #0x8c]
+ strne r1, [r2, #0x14]
+ cmp r1, #0x0
+ streq r2, [r0, #0x88]
+ strne r2, [r1, #0x10]
+ bx lr
+
+ arm_func_start OSi_EnqueueTail
+OSi_EnqueueTail: ; 0x020CBEC0
+ ldr r2, [r0, #0x8c]
+ cmp r2, #0x0
+ streq r1, [r0, #0x88]
+ strne r1, [r2, #0x10]
+ str r2, [r1, #0x14]
+ mov r2, #0x0
+ str r2, [r1, #0x10]
+ str r1, [r0, #0x8c]
+ bx lr
+
+ arm_func_start OS_TryLockMutex
+OS_TryLockMutex: ; 0x020CBEE4
+ stmdb sp!, {r4-r6,lr}
+ mov r5, r0
+ bl OS_DisableInterrupts
+ ldr r2, [r5, #0x8]
+ ldr r1, _020CBF54 ; =OSi_ThreadInfo
+ mov r4, r0
+ cmp r2, #0x0
+ ldr r0, [r1, #0x4]
+ bne _020CBF28
+ str r0, [r5, #0x8]
+ ldr r2, [r5, #0xc]
+ mov r1, r5
+ add r2, r2, #0x1
+ str r2, [r5, #0xc]
+ bl OSi_EnqueueTail
+ mov r6, #0x1
+ b _020CBF40
+_020CBF28:
+ cmp r2, r0
+ ldreq r0, [r5, #0xc]
+ moveq r6, #0x1
+ addeq r0, r0, #0x1
+ streq r0, [r5, #0xc]
+ movne r6, #0x0
+_020CBF40:
+ mov r0, r4
+ bl OS_RestoreInterrupts
+ mov r0, r6
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+ .balign 4
+_020CBF54: .word OSi_ThreadInfo
+
+ arm_func_start OSi_UnlockAllMutex
+OSi_UnlockAllMutex: ; 0x020CBF58
+ stmdb sp!, {r4-r6,lr}
+ mov r6, r0
+ ldr r0, [r6, #0x88]
+ cmp r0, #0x0
+ ldmeqia sp!, {r4-r6,lr}
+ bxeq lr
+ add r5, r6, #0x88
+ mov r4, #0x0
+_020CBF78:
+ mov r0, r5
+ bl OSi_RemoveMutexLinkFromQueue
+ str r4, [r0, #0xc]
+ str r4, [r0, #0x8]
+ bl OS_WakeupThread
+ ldr r0, [r6, #0x88]
+ cmp r0, #0x0
+ bne _020CBF78
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+
+ arm_func_start OS_UnlockMutex
+OS_UnlockMutex: ; 0x020CBFA0
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ mov r5, r0
+ bl OS_DisableInterrupts
+ ldr r1, _020CC00C ; =OSi_ThreadInfo
+ mov r4, r0
+ ldr r0, [r1, #0x4]
+ ldr r1, [r5, #0x8]
+ cmp r1, r0
+ bne _020CBFF8
+ ldr r1, [r5, #0xc]
+ sub r1, r1, #0x1
+ str r1, [r5, #0xc]
+ ldr r1, [r5, #0xc]
+ cmp r1, #0x0
+ bne _020CBFF8
+ mov r1, r5
+ bl OSi_DequeueItem
+ mov r1, #0x0
+ mov r0, r5
+ str r1, [r5, #0x8]
+ bl OS_WakeupThread
+_020CBFF8:
+ mov r0, r4
+ bl OS_RestoreInterrupts
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,lr}
+ bx lr
+ .balign 4
+_020CC00C: .word OSi_ThreadInfo
+
+ arm_func_start OS_LockMutex
+OS_LockMutex: ; 0x020CC010
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0x4
+ mov r5, r0
+ bl OS_DisableInterrupts
+ ldr r1, _020CC098 ; =OSi_ThreadInfo
+ mov r4, r0
+ ldr r7, [r1, #0x4]
+ mov r6, #0x0
+_020CC030:
+ ldr r0, [r5, #0x8]
+ cmp r0, #0x0
+ bne _020CC05C
+ str r7, [r5, #0x8]
+ ldr r1, [r5, #0xc]
+ mov r0, r7
+ add r2, r1, #0x1
+ mov r1, r5
+ str r2, [r5, #0xc]
+ bl OSi_EnqueueTail
+ b _020CC084
+_020CC05C:
+ cmp r0, r7
+ ldreq r0, [r5, #0xc]
+ addeq r0, r0, #0x1
+ streq r0, [r5, #0xc]
+ beq _020CC084
+ mov r0, r5
+ str r5, [r7, #0x84]
+ bl OS_SleepThread
+ str r6, [r7, #0x84]
+ b _020CC030
+_020CC084:
+ mov r0, r4
+ bl OS_RestoreInterrupts
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r7,lr}
+ bx lr
+ .balign 4
+_020CC098: .word OSi_ThreadInfo
+
+ arm_func_start OS_InitMutex
+OS_InitMutex: ; 0x020CC09C
+ mov r2, #0x0
+ str r2, [r0, #0x4]
+ ldr r1, [r0, #0x4]
+ str r1, [r0, #0x0]
+ str r2, [r0, #0x8]
+ str r2, [r0, #0xc]
+ bx lr
+
+ arm_func_start DC_InvalidateAll
+DC_InvalidateAll: ; 0x020CC0B8
+ mov r0, #0x0
+ mcr p15, 0x0, r0, c7, c6, 0x0
+ bx lr
+
+ arm_func_start DC_StoreAll
+DC_StoreAll: ; 0x020CC0C4
+ mov r1, #0x0
+_020CC0C8:
+ mov r0, #0x0
+_020CC0CC:
+ orr r2, r1, r0
+ mcr p15, 0x0, r2, c7, c10, 0x2
+ add r0, r0, #0x20
+ cmp r0, #0x400
+ blt _020CC0CC
+ add r1, r1, #0x40000000
+ cmp r1, #0x0
+ bne _020CC0C8
+ bx lr
+
+ arm_func_start DC_FlushAll
+DC_FlushAll: ; 0x020CC0F0
+ mov r12, #0x0
+ mov r1, #0x0
+_020CC0F8:
+ mov r0, #0x0
+_020CC0FC:
+ orr r2, r1, r0
+ mcr p15, 0x0, r12, c7, c10, 0x4
+ mcr p15, 0x0, r2, c7, c14, 0x2
+ add r0, r0, #0x20
+ cmp r0, #0x400
+ blt _020CC0FC
+ add r1, r1, #0x40000000
+ cmp r1, #0x0
+ bne _020CC0F8
+ bx lr
+
+ arm_func_start DC_InvalidateRange
+DC_InvalidateRange: ; 0x020CC124
+ add r1, r1, r0
+ bic r0, r0, #0x1f
+_020CC12C:
+ mcr p15, 0x0, r0, c7, c6, 0x1
+ add r0, r0, #0x20
+ cmp r0, r1
+ blt _020CC12C
+ bx lr
+
+ arm_func_start DC_StoreRange
+DC_StoreRange: ; 0x020CC140
+ add r1, r1, r0
+ bic r0, r0, #0x1f
+_020CC148:
+ mcr p15, 0x0, r0, c7, c10, 0x1
+ add r0, r0, #0x20
+ cmp r0, r1
+ blt _020CC148
+ bx lr
+
+ arm_func_start DC_FlushRange
+DC_FlushRange: ; 0x020CC15C
+ mov r12, #0x0
+ add r1, r1, r0
+ bic r0, r0, #0x1f
+_020CC168:
+ mcr p15, 0x0, r12, c7, c10, 0x4
+ mcr p15, 0x0, r0, c7, c14, 0x1
+ add r0, r0, #0x20
+ cmp r0, r1
+ blt _020CC168
+ bx lr
+
+ arm_func_start DC_WaitWriteBufferEmpty
+DC_WaitWriteBufferEmpty: ; 0x020CC180
+ mov r0, #0x0
+ mcr p15, 0x0, r0, c7, c10, 0x4
+ bx lr
+
+ arm_func_start IC_InvalidateAll
+IC_InvalidateAll: ; 0x020CC18C
+ mov r0, #0x0
+ mcr p15, 0x0, r0, c7, c5, 0x0
+ bx lr
+
+ arm_func_start IC_InvalidateRange
+IC_InvalidateRange:
+ add r1, r1, r0
+ bic r0, r0, #0x1f
+_020CC1A0:
+ mcr p15, 0x0, r0, c7, c5, 0x1
+ add r0, r0, #0x20
+ cmp r0, r1
+ blt _020CC1A0
+ bx lr
+
+ arm_func_start OS_Init
+OS_Init: ; 0x020CC1B4
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ bl OS_InitArena
+ bl PXI_Init
+ bl OS_InitLock
+ bl OS_InitArenaEx
+ bl OS_InitIrqTable
+ bl OS_SetIrqStackChecker
+ bl OS_InitException
+ bl MI_Init
+ bl OS_InitVAlarm
+ bl OSi_InitVramExclusive
+ bl OS_InitThread
+ bl OS_InitReset
+ bl CTRDG_Init
+ bl CARD_Init
+ bl PM_Init
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+
+ arm_func_start OS_AllocFromArenaHi
+OS_AllocFromArenaHi: ; 0x020CC204
+ stmdb sp!, {r4-r6,lr}
+ mov r4, r0
+ mov r6, r1
+ mov r5, r2
+ bl OS_GetArenaHi
+_020CC218:
+ cmp r0, #0x0
+ moveq r0, #0x0
+ ldmeqia sp!, {r4-r6,lr}
+ bxeq lr
+ sub r1, r5, #0x1
+ mvn r2, r1
+ and r0, r0, r2
+ sub r1, r0, r6
+ mov r0, r4
+ and r5, r1, r2
+ bl OS_GetArenaLo
+ cmp r5, r0
+ movcc r0, #0x0
+ ldmccia sp!, {r4-r6, lr}
+ bxcc lr
+ mov r0, r4
+ mov r1, r5
+ bl OS_SetArenaHi
+ mov r0, r5
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+
+ arm_func_start OS_AllocFromArenaLo
+OS_AllocFromArenaLo: ; 0x020CC26C
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0x4
+ mov r7, r0
+ mov r6, r1
+ mov r5, r2
+ bl OS_GetArenaLo
+_020CC284:
+ cmp r0, #0x0
+ addeq sp, sp, #0x4
+ moveq r0, #0x0
+ ldmeqia sp!, {r4-r7, lr}
+ bxeq lr
+ add r0, r0, r5
+ sub r1, r5, #0x1
+ mvn r2, r1
+ sub r0, r0, #0x1
+ and r4, r2, r0
+ add r0, r4, r6
+ add r0, r0, r5
+ sub r1, r0, #0x1
+ mov r0, r7
+ and r5, r2, r1
+ bl OS_GetArenaHi
+ cmp r5, r0
+ addhi sp, sp, #0x4
+ movhi r0, #0x0
+ ldmhiia sp!, {r4-r7, lr}
+ bxhi lr
+ mov r0, r7
+ mov r1, r5
+ bl OS_SetArenaLo
+ mov r0, r4
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r7, lr}
+ bx lr
+
+ arm_func_start OS_SetArenaLo
+OS_SetArenaLo: ; 0x020CC2F4
+ mov r0, r0, lsl #0x2
+ add r0, r0, #0x2700000
+ add r0, r0, #0xff000
+ str r1, [r0, #0xda0]
+ bx lr
+
+ arm_func_start OS_SetArenaHi
+OS_SetArenaHi:
+ mov r0, r0, lsl #0x2
+ add r0, r0, #0x2700000
+ add r0, r0, #0xff000
+ str r1, [r0, #0xdc4]
+ bx lr
+
+ arm_func_start OS_GetInitArenaLo
+OS_GetInitArenaLo: ; 0x020CC31C
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ cmp r0, #0x6
+ addls pc, pc, r0, lsl #0x2
+ b _020CC3DC
+_020CC330:
+ b _020CC34C
+ b _020CC3DC
+ b _020CC35C
+ b _020CC39C
+ b _020CC3AC
+ b _020CC3BC
+ b _020CC3CC
+_020CC34C:
+ add sp, sp, #0x4
+ ldr r0, _020CC3EC ; =0x0225FFA0
+ ldmfd sp!, {lr}
+ bx lr
+_020CC35C:
+ ldr r0, _020CC3F0 ; =OSi_MainExArenaEnabled
+ ldr r0, [r0]
+ cmp r0, #0x0
+ beq _020CC37C
+ bl OS_GetConsoleType
+ and r0, r0, #0x3
+ cmp r0, #0x1
+ bne _020CC38C
+_020CC37C:
+ add sp, sp, #0x4
+ mov r0, #0x0
+ ldmfd sp!, {lr}
+ bx lr
+_020CC38C:
+ add sp, sp, #0x4
+ ldr r0, _020CC3F4 ; =0x023E0000
+ ldmfd sp!, {lr}
+ bx lr
+_020CC39C:
+ add sp, sp, #0x4
+ ldr r0, _020CC3F8 ; =0x01FF8720
+ ldmfd sp!, {lr}
+ bx lr
+_020CC3AC:
+ add sp, sp, #0x4
+ ldr r0, _020CC3FC ; =0x027E0080
+ ldmfd sp!, {lr}
+ bx lr
+_020CC3BC:
+ add sp, sp, #0x4
+ ldr r0, _020CC400 ; =0x027FF000
+ ldmfd sp!, {lr}
+ bx lr
+_020CC3CC:
+ add sp, sp, #0x4
+ ldr r0, _020CC404 ; =0x037F8000
+ ldmfd sp!, {lr}
+ bx lr
+_020CC3DC:
+ mov r0, #0x0
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+_020CC3EC: .word SDK_MAIN_ARENA_LO
+_020CC3F0: .word OSi_MainExArenaEnabled
+_020CC3F4: .word SDK_SECTION_ARENA_EX_START
+_020CC3F8: .word SDK_SECTION_ARENA_ITCM_START
+_020CC3FC: .word SDK_SECTION_ARENA_DTCM_START
+_020CC400: .word 0x027FF000
+_020CC404: .word 0x037F8000
+
+ arm_func_start OS_GetInitArenaHi
+OS_GetInitArenaHi: ; 0x020CC408
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ cmp r0, #0x6
+ addls pc, pc, r0, lsl #0x2
+ b _020CC508
+_020CC41C:
+ b _020CC438
+ b _020CC508
+ b _020CC448
+ b _020CC488
+ b _020CC498
+ b _020CC4E8
+ b _020CC4F8
+_020CC438:
+ add sp, sp, #0x4
+ ldr r0, _020CC518 ; =0x023E0000
+ ldmfd sp!, {lr}
+ bx lr
+_020CC448:
+ ldr r0, _020CC51C ; =OSi_MainExArenaEnabled
+ ldr r0, [r0]
+ cmp r0, #0x0
+ beq _020CC468
+ bl OS_GetConsoleType
+ and r0, r0, #0x3
+ cmp r0, #0x1
+ bne _020CC478
+_020CC468:
+ add sp, sp, #0x4
+ mov r0, #0x0
+ ldmfd sp!, {lr}
+ bx lr
+_020CC478:
+ add sp, sp, #0x4
+ mov r0, #0x2700000
+ ldmfd sp!, {lr}
+ bx lr
+_020CC488:
+ add sp, sp, #0x4
+ mov r0, #0x2000000
+ ldmfd sp!, {lr}
+ bx lr
+_020CC498:
+ ldr r0, _020CC520 ; =0x027E0000
+ ldr r1, _020CC524 ; =0x00000000
+ ldr r2, _020CC528 ; =0x00000400
+ add r3, r0, #0x3f80
+ cmp r1, #0x0
+ sub r2, r3, r2
+ bne _020CC4CC
+ ldr r1, _020CC52C ; =0x027E0080
+ add sp, sp, #0x4
+ cmp r0, r1
+ movcc r0, r1
+ ldmfd sp!, {lr}
+ bx lr
+_020CC4CC:
+ cmp r1, #0x0
+ ldrlt r0, _020CC52C ; =0x027E0080
+ add sp, sp, #0x4
+ sublt r0, r0, r1
+ subge r0, r2, r1
+ ldmfd sp!, {lr}
+ bx lr
+_020CC4E8:
+ add sp, sp, #0x4
+ ldr r0, _020CC530 ; =0x027FF680
+ ldmfd sp!, {lr}
+ bx lr
+_020CC4F8:
+ add sp, sp, #0x4
+ ldr r0, _020CC534 ; =0x037F8000
+ ldmfd sp!, {lr}
+ bx lr
+_020CC508:
+ mov r0, #0x0
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+_020CC518: .word 0x023E0000
+_020CC51C: .word OSi_MainExArenaEnabled
+_020CC520: .word 0x027E0000
+_020CC524: .word 0x00000000
+_020CC528: .word 0x00000400
+_020CC52C: .word 0x027E0080
+_020CC530: .word 0x027FF680
+_020CC534: .word 0x037F8000
+
+ arm_func_start OS_GetArenaLo
+OS_GetArenaLo:
+ mov r0, r0, lsl #0x2
+ add r0, r0, #0x2700000
+ add r0, r0, #0xff000
+ ldr r0, [r0, #0xda0]
+ bx lr
+
+ arm_func_start OS_GetArenaHi
+OS_GetArenaHi:
+ mov r0, r0, lsl #0x2
+ add r0, r0, #0x2700000
+ add r0, r0, #0xff000
+ ldr r0, [r0, #0xdc4]
+ bx lr
+
+ arm_func_start OS_InitArenaEx
+OS_InitArenaEx: ; 0x020CC560
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ mov r0, #0x2
+ bl OS_GetInitArenaHi
+ mov r1, r0
+ mov r0, #0x2
+ bl OS_SetArenaHi
+ mov r0, #0x2
+ bl OS_GetInitArenaLo
+ mov r1, r0
+ mov r0, #0x2
+ bl OS_SetArenaLo
+ ldr r0, _020CC5D4 ; =OSi_MainExArenaEnabled
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ beq _020CC5B8
+ bl OS_GetConsoleType
+ and r0, r0, #0x3
+ cmp r0, #0x1
+ addne sp, sp, #0x4
+ ldmneia sp!, {lr}
+ bxne lr
+_020CC5B8:
+ ldr r0, _020CC5D8 ; =0x0200002B
+ bl OS_SetProtectionRegion1
+ ldr r0, _020CC5DC ; =0x023E0021
+ bl OS_SetProtectionRegion2
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+ .balign 4
+_020CC5D4: .word OSi_MainExArenaEnabled
+_020CC5D8: .word 0x0200002B
+_020CC5DC: .word 0x023E0021
+
+ arm_func_start OS_InitArena
+OS_InitArena: ; 0x020CC5E0
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldr r1, _020CC6F4 ; =OSi_Initialized
+ ldr r0, [r1, #0x0]
+ cmp r0, #0x0
+ addne sp, sp, #0x4
+ ldmneia sp!, {lr}
+ bxne lr
+ mov r2, #0x1
+ mov r0, #0x0
+ str r2, [r1, #0x0]
+ bl OS_GetInitArenaHi
+ mov r1, r0
+ mov r0, #0x0
+ bl OS_SetArenaHi
+_020CC61C:
+ mov r0, #0x0
+ bl OS_GetInitArenaLo
+ mov r1, r0
+ mov r0, #0x0
+ bl OS_SetArenaLo
+ mov r0, #0x2
+ mov r1, #0x0
+ bl OS_SetArenaLo
+ mov r0, #0x2
+ mov r1, #0x0
+ bl OS_SetArenaHi
+ mov r0, #0x3
+ bl OS_GetInitArenaHi
+ mov r1, r0
+ mov r0, #0x3
+ bl OS_SetArenaHi
+ mov r0, #0x3
+ bl OS_GetInitArenaLo
+ mov r1, r0
+ mov r0, #0x3
+ bl OS_SetArenaLo
+ mov r0, #0x4
+ bl OS_GetInitArenaHi
+ mov r1, r0
+ mov r0, #0x4
+ bl OS_SetArenaHi
+ mov r0, #0x4
+ bl OS_GetInitArenaLo
+ mov r1, r0
+ mov r0, #0x4
+ bl OS_SetArenaLo
+ mov r0, #0x5
+ bl OS_GetInitArenaHi
+ mov r1, r0
+ mov r0, #0x5
+ bl OS_SetArenaHi
+ mov r0, #0x5
+ bl OS_GetInitArenaLo
+ mov r1, r0
+ mov r0, #0x5
+ bl OS_SetArenaLo
+ mov r0, #0x6
+ bl OS_GetInitArenaHi
+ mov r1, r0
+ mov r0, #0x6
+ bl OS_SetArenaHi
+ mov r0, #0x6
+ bl OS_GetInitArenaLo
+ mov r1, r0
+ mov r0, #0x6
+ bl OS_SetArenaLo
+ add sp, sp, #0x4
+ ldmfd sp!, {lr}
+ bx lr
+_020CC6F4: .word OSi_Initialized
+
+ arm_func_start OS_FreeToHeap
+OS_FreeToHeap: ; 0x020CC6F8
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0x4
+ mov r7, r0
+ mov r5, r1
+ mov r4, r2
+ bl OS_DisableInterrupts
+ ldr r1, _020CC768 ; =OSi_HeapInfo
+ mov r6, r0
+ ldr r0, [r1, r7, lsl #0x2]
+ cmp r5, #0x0
+ ldrlt r5, [r0, #0x0]
+ ldr r1, [r0, #0x10]
+ mov r0, #0xc
+ mla r7, r5, r0, r1
+ sub r4, r4, #0x20
+ ldr r0, [r7, #0x8]
+ mov r1, r4
+ bl DLExtract
+ str r0, [r7, #0x8]
+ ldr r0, [r7, #0x4]
+ mov r1, r4
+ bl DLInsert
+ str r0, [r7, #0x4]
+ mov r0, r6
+ bl OS_RestoreInterrupts
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r7,lr}
+ bx lr
+ .balign 4
+_020CC768: .word OSi_HeapInfo
+
+ arm_func_start OS_AllocFromHeap
+OS_AllocFromHeap: ; 0x020CC76C
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0x4
+ mov r6, r0
+ mov r5, r1
+ mov r7, r2
+ bl OS_DisableInterrupts
+ ldr r1, _020CC894 ; =OSi_HeapInfo
+ mov r4, r0
+ ldr r1, [r1, r6, lsl #0x2]
+ cmp r1, #0x0
+ bne _020CC7AC
+ bl OS_RestoreInterrupts
+ add sp, sp, #0x4
+ mov r0, #0x0
+ ldmia sp!, {r4-r7,lr}
+ bx lr
+_020CC7AC:
+ cmp r5, #0x0
+ ldrlt r5, [r1, #0x0]
+ ldr r1, [r1, #0x10]
+ mov r0, #0xc
+ mla r6, r5, r0, r1
+ ldr r0, [r6, #0x4]
+ add r1, r7, #0x20
+ add r1, r1, #0x1f
+ mov r5, r0
+ cmp r0, #0x0
+ bic r7, r1, #0x1f
+ beq _020CC7F4
+_020CC7DC:
+ ldr r1, [r5, #0x8]
+ cmp r7, r1
+ ble _020CC7F4
+ ldr r5, [r5, #0x4]
+ cmp r5, #0x0
+ bne _020CC7DC
+_020CC7F4:
+ cmp r5, #0x0
+ bne _020CC814
+ mov r0, r4
+ bl OS_RestoreInterrupts
+ add sp, sp, #0x4
+ mov r0, #0x0
+ ldmia sp!, {r4-r7,lr}
+ bx lr
+_020CC814:
+ ldr r1, [r5, #0x8]
+ sub r1, r1, r7
+ cmp r1, #0x40
+ bhs _020CC834
+ mov r1, r5
+ bl DLExtract
+ str r0, [r6, #0x4]
+ b _020CC86C
+_020CC834:
+ str r7, [r5, #0x8]
+ add r2, r5, r7
+ str r1, [r2, #0x8]
+ ldr r0, [r5, #0x0]
+ str r0, [r5, r7]
+ ldr r0, [r5, #0x4]
+ str r0, [r2, #0x4]
+ ldr r0, [r2, #0x4]
+ cmp r0, #0x0
+ strne r2, [r0, #0x0]
+ ldr r0, [r2, #0x0]
+ cmp r0, #0x0
+ strne r2, [r0, #0x4]
+ streq r2, [r6, #0x4]
+_020CC86C:
+ ldr r0, [r6, #0x8]
+ mov r1, r5
+ bl DLAddFront
+ str r0, [r6, #0x8]
+ mov r0, r4
+ bl OS_RestoreInterrupts
+ add r0, r5, #0x20
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r7,lr}
+ bx lr
+ .balign 4
+_020CC894: .word OSi_HeapInfo
+
+ arm_func_start DLInsert
+DLInsert: ; 0x020CC898
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ mov r12, r0
+ cmp r0, #0x0
+ mov lr, #0x0
+ beq _020CC8C8
+_020CC8B0:
+ cmp r1, r12
+ bls _020CC8C8
+ mov lr, r12
+ ldr r12, [r12, #0x4]
+ cmp r12, #0x0
+ bne _020CC8B0
+_020CC8C8:
+ str r12, [r1, #0x4]
+ str lr, [r1, #0x0]
+ cmp r12, #0x0
+ beq _020CC908
+ str r1, [r12, #0x0]
+ ldr r3, [r1, #0x8]
+ add r2, r1, r3
+ cmp r2, r12
+ bne _020CC908
+ ldr r2, [r12, #0x8]
+ add r2, r3, r2
+ str r2, [r1, #0x8]
+ ldr r12, [r12, #0x4]
+ str r12, [r1, #0x4]
+ cmp r12, #0x0
+ strne r1, [r12, #0x0]
+_020CC908:
+ cmp lr, #0x0
+ beq _020CC950
+ str r1, [lr, #0x4]
+ ldr r2, [lr, #0x8]
+ add r3, lr, r2
+ cmp r3, r1
+ addne sp, sp, #0x4
+ ldmneia sp!, {lr}
+ bxne lr
+ ldr r1, [r1, #0x8]
+ add sp, sp, #0x4
+ add r1, r2, r1
+ str r1, [lr, #0x8]
+ str r12, [lr, #0x4]
+ cmp r12, #0x0
+ strne lr, [r12, #0x0]
+ ldmia sp!, {lr}
+ bx lr
+_020CC950:
+ mov r0, r1
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+
+ arm_func_start DLExtract
+DLExtract: ; 0x020CC960
+ ldr r3, [r1, #0x4]
+ cmp r3, #0x0
+ ldrne r2, [r1, #0x0]
+ strne r2, [r3, #0x0]
+ ldr r2, [r1, #0x0]
+ cmp r2, #0x0
+ ldreq r0, [r1, #0x4]
+ ldrne r1, [r1, #0x4]
+ strne r1, [r2, #0x4]
+ bx lr
+
+ arm_func_start DLAddFront
+DLAddFront: ; 0x020CC988
+ str r0, [r1, #0x4]
+ mov r2, #0x0
+ str r2, [r1, #0x0]
+ cmp r0, #0x0
+ strne r1, [r0, #0x0]
+ mov r0, r1
+ bx lr
+
+ arm_func_start OS_GetDTCMAddress
+OS_GetDTCMAddress: ; 0x020CC9A4
+ mrc p15, 0x0, r0, c9, c1, 0x0
+ ldr r1, _020CC9B4 ; =0xFFFFF000
+ and r0, r0, r1
+ bx lr
+ .balign 4
+_020CC9B4: .word 0xFFFFF000
+
+ arm_func_start OS_EnableProtectionUnit
+OS_EnableProtectionUnit: ; 0x020CC9B8
+ mrc p15, 0x0, r0, c1, c0, 0x0
+ orr r0, r0, #0x1
+ mcr p15, 0x0, r0, c1, c0, 0x0
+ bx lr
+
+ arm_func_start OS_DisableProtectionUnit
+OS_DisableProtectionUnit: ; 0x020CC9C8
+ mrc p15, 0x0, r0, c1, c0, 0x0
+ bic r0, r0, #0x1
+ mcr p15, 0x0, r0, c1, c0, 0x0
+ bx lr
+
+ arm_func_start OS_SetDPermissionsForProtectionRegion
+OS_SetDPermissionsForProtectionRegion: ; 0x020CC9D8
+ mrc p15, 0x0, r2, c5, c0, 0x2
+ bic r2, r2, r0
+ orr r2, r2, r1
+ mcr p15, 0x0, r2, c5, c0, 0x2
+ bx lr
+
+ arm_func_start OS_SetProtectionRegion1
+OS_SetProtectionRegion1: ; 0x020CC9EC
+ mcr p15, 0x0, r0, c6, c1, 0x0
+ bx lr
+
+ arm_func_start OS_SetProtectionRegion2
+OS_SetProtectionRegion2: ; 0x020CC9F4
+ mcr p15, 0x0, r0, c6, c2, 0x0
+ bx lr
+
+ arm_func_start OSi_ExceptionHandler
+OSi_ExceptionHandler: ; 0x020CC9FC
+ ldr ip, _020CCA68 ; =OSi_DebuggerHandler
+ ldr r12, [r12, #0x0]
+ cmp r12, #0x0
+ movne lr, pc
+ bxne r12
+ ldr ip, _020CCA6C ; =0x02000000
+ stmdb r12!, {r0-r3,sp-lr}
+ and r0, sp, #0x1
+ mov sp, r12
+ mrs r1, cpsr
+ and r1, r1, #0x1f
+ teq r1, #0x17
+ bne _020CCA38
+ bl OSi_GetAndDisplayContext
+ b _020CCA44
+_020CCA38:
+ teq r1, #0x1b
+ bne _020CCA44
+ bl OSi_GetAndDisplayContext
+_020CCA44:
+ ldr ip, _020CCA68 ; =OSi_DebuggerHandler
+ ldr r12, [r12, #0x0]
+ cmp r12, #0x0
+_020CCA50:
+ beq _020CCA50
+_020CCA54:
+ mov r0, r0
+ b _020CCA54
+_020CCA5C:
+ ldmia sp!, {r0-r3,ip,lr}
+ mov sp, ip
+ bx lr
+_020CCA68: .word OSi_DebuggerHandler
+_020CCA6C: .word 0x02000000
+
+ arm_func_start OSi_GetAndDisplayContext
+OSi_GetAndDisplayContext: ; 0x020CCA70
+ stmdb sp!, {r0,lr}
+ bl OSi_SetExContext
+ bl OSi_DisplayExContext
+ ldmia sp!, {r0,lr}
+ bx lr
+
+ arm_func_start OSi_SetExContext
+OSi_SetExContext: ; 0x020CCA84
+ ldr r1, _020CCB10 ; =OSi_ExContext
+ mrs r2, cpsr
+ str r2, [r1, #0x74]
+ str r0, [r1, #0x6c]
+ ldr r0, [r12, #0x0]
+ str r0, [r1, #0x4]
+ ldr r0, [r12, #0x4]
+ str r0, [r1, #0x8]
+ ldr r0, [r12, #0x8]
+ str r0, [r1, #0xc]
+ ldr r0, [r12, #0xc]
+ str r0, [r1, #0x10]
+ ldr r2, [r12, #0x10]
+ bic r2, r2, #0x1
+ add r0, r1, #0x14
+ stmia r0, {r4-r11}
+ str r12, [r1, #0x70]
+ ldr r0, [r2, #0x0]
+ str r0, [r1, #0x64]
+ ldr r3, [r2, #0x4]
+ str r3, [r1, #0x0]
+ ldr r0, [r2, #0x8]
+ str r0, [r1, #0x34]
+ ldr r0, [r2, #0xc]
+ str r0, [r1, #0x40]
+ mrs r0, cpsr
+ orr r3, r3, #0x80
+ bic r3, r3, #0x20
+ msr cpsr_fsxc, r3
+ str sp, [r1, #0x38]
+ str lr, [r1, #0x3c]
+ mrs r2, spsr
+ str r2, [r1, #0x7c]
+ msr cpsr_fsxc, r0
+ bx lr
+ .balign 4
+_020CCB10: .word OSi_ExContext
+
+ arm_func_start OSi_DisplayExContext
+OSi_DisplayExContext: ; 0x020CCB14
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldr r0, _020CCB70 ; =OSi_UserExceptionHandler
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ addeq sp, sp, #0x4
+ ldmeqia sp!, {lr}
+ bxeq lr
+ mov r0, sp
+ ldr r1, _020CCB74 ; =0x0000009F
+ msr cpsr_fsxc, r1
+ mov sp, r0
+ bl OS_EnableProtectionUnit
+ ldr r1, _020CCB78 ; =OSi_UserExceptionHandlerArg
+ ldr r0, _020CCB70 ; =OSi_UserExceptionHandler
+ ldr r1, [r1, #0x0]
+ ldr r2, [r0, #0x0]
+ ldr r0, _020CCB7C ; =OSi_ExContext
+ blx r2
+ bl OS_DisableProtectionUnit
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+ .balign 4
+_020CCB70: .word OSi_UserExceptionHandler
+_020CCB74: .word 0x0000009F
+_020CCB78: .word OSi_UserExceptionHandlerArg
+_020CCB7C: .word OSi_ExContext
+
+ arm_func_start OS_InitException
+OS_InitException: ; 0x020CCB80
+ ldr r0, _020CCBDC ; =0x027FFD9C
+ ldr r1, [r0, #0x0]
+ cmp r1, #0x2600000
+ blo _020CCBA0
+ cmp r1, #0x2800000
+ ldrlo r0, _020CCBE0 ; =OSi_DebuggerHandler
+ strcc r1, [r0, #0x0]
+ blo _020CCBAC
+_020CCBA0:
+ ldr r0, _020CCBE0 ; =OSi_DebuggerHandler
+ mov r1, #0x0
+ str r1, [r0, #0x0]
+_020CCBAC:
+ ldr r0, _020CCBE0 ; =OSi_DebuggerHandler
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ ldreq r2, _020CCBE4 ; =OSi_ExceptionHandler
+ ldreq r1, _020CCBDC ; =0x027FFD9C
+ ldreq r0, _020CCBE8 ; =0x027E3000
+ streq r2, [r1, #0x0]
+ streq r2, [r0, #0xfdc]
+ ldr r0, _020CCBEC ; =OSi_UserExceptionHandler
+ mov r1, #0x0
+ str r1, [r0, #0x0]
+ bx lr
+ .balign 4
+_020CCBDC: .word 0x027FFD9C
+_020CCBE0: .word OSi_DebuggerHandler
+_020CCBE4: .word OSi_ExceptionHandler
+_020CCBE8: .word 0x027E3000
+_020CCBEC: .word OSi_UserExceptionHandler
+
+ arm_func_start OSi_SetTimerReserved
+OSi_SetTimerReserved: ; 0x020CCBF0
+ ldr r1, _020CCC08 ; =OSi_TimerReserved
+ mov r2, #0x1
+ ldrh r3, [r1, #0x0]
+ orr r0, r3, r2, lsl r0
+ strh r0, [r1, #0x0]
+ bx lr
+ .balign 4
+_020CCC08: .word OSi_TimerReserved
+
+ arm_func_start OS_GetTickLo
+OS_GetTickLo: ; 0x020CCC0C
+ ldr r0, _020CCC18 ; =0x04000100
+ ldrh r0, [r0, #0x0]
+ bx lr
+ .balign 4
+_020CCC18: .word 0x04000100
+
+ arm_func_start OS_GetTick
+OS_GetTick: ; 0x020CCC1C
+ stmdb sp!, {lr}
+ sub sp, sp, #0xc
+ bl OS_DisableInterrupts
+ ldr r1, _020CCCBC ; =0x04000100
+ ldr r3, _020CCCC0 ; =OSi_TickCounter
+ ldrh r12, [r1, #0x0]
+ ldr r2, _020CCCC4 ; =0x0000FFFF
+ mvn r1, #0x0
+ strh r12, [sp, #0x0]
+ ldr r12, [r3, #0x0]
+ ldr r3, [r3, #0x4]
+ and r1, r12, r1
+ and r2, r3, r2
+ str r1, [sp, #0x4]
+ ldr r1, _020CCCC8 ; =0x04000214
+ str r2, [sp, #0x8]
+ ldr r1, [r1, #0x0]
+ ands r1, r1, #0x8
+ beq _020CCC90
+ ldrh r1, [sp, #0x0]
+ ands r1, r1, #0x8000
+ bne _020CCC90
+ ldr r3, [sp, #0x4]
+ mov r1, #0x1
+ ldr r2, [sp, #0x8]
+ adds r3, r3, r1
+ adc r1, r2, #0x0
+ str r3, [sp, #0x4]
+ str r1, [sp, #0x8]
+_020CCC90:
+ bl OS_RestoreInterrupts
+ ldr r2, [sp, #0x4]
+ ldr r1, [sp, #0x8]
+ ldrh r0, [sp, #0x0]
+ mov r1, r1, lsl #0x10
+ orr r1, r1, r2, lsr #0x10
+ orr r1, r1, r0, asr #0x1f
+ orr r0, r0, r2, lsl #0x10
+ add sp, sp, #0xc
+ ldmia sp!, {lr}
+ bx lr
+ .balign 4
+_020CCCBC: .word 0x04000100
+_020CCCC0: .word OSi_TickCounter
+_020CCCC4: .word 0x0000FFFF
+_020CCCC8: .word 0x04000214
+
+ arm_func_start OSi_CountUpTick
+OSi_CountUpTick: ; 0x020CCCCC
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldr r2, _020CCD40 ; =OSi_TickCounter
+ ldr r1, _020CCD44 ; =OSi_NeedResetTimer
+ ldr r12, [r2, #0x0]
+ mov r0, #0x1
+ ldr r3, [r2, #0x4]
+ adds r12, r12, r0
+ ldr r0, [r1, #0x0]
+ adc r3, r3, #0x0
+ str r12, [r2, #0x0]
+ str r3, [r2, #0x4]
+ cmp r0, #0x0
+ mov r3, #0x0
+ beq _020CCD24
+ ldr r2, _020CCD48 ; =0x04000102
+ ldr r0, _020CCD4C ; =0x04000100
+ strh r3, [r2, #0x0]
+ strh r3, [r0, #0x0]
+ mov r0, #0xc1
+ strh r0, [r2, #0x0]
+ str r3, [r1, #0x0]
+_020CCD24:
+ mov r0, #0x0
+ ldr r1, _020CCD50 ; =OSi_CountUpTick
+ mov r2, r0
+ bl OSi_EnterTimerCallback
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+ .balign 4
+_020CCD40: .word OSi_TickCounter
+_020CCD44: .word OSi_NeedResetTimer
+_020CCD48: .word 0x04000102
+_020CCD4C: .word 0x04000100
+_020CCD50: .word OSi_CountUpTick
+
+ arm_func_start OS_IsTickAvailable
+OS_IsTickAvailable: ; 0x020CCD54
+ ldr r0, _020CCD60 ; =OSi_UseTick
+ ldrh r0, [r0, #0x0]
+ bx lr
+ .balign 4
+_020CCD60: .word OSi_UseTick
+
+ arm_func_start OS_InitTick
+OS_InitTick: ; 0x020CCD64
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldr r1, _020CCDE8 ; =OSi_UseTick
+ ldrh r0, [r1, #0x0]
+ cmp r0, #0x0
+ addne sp, sp, #0x4
+ ldmneia sp!, {lr}
+ bxne lr
+ mov r2, #0x1
+ mov r0, #0x0
+ strh r2, [r1, #0x0]
+ bl OSi_SetTimerReserved
+ ldr r0, _020CCDEC ; =OSi_TickCounter
+ mov r2, #0x0
+ str r2, [r0, #0x0]
+ ldr r3, _020CCDF0 ; =0x04000102
+ str r2, [r0, #0x4]
+ ldr r0, _020CCDF4 ; =0x04000100
+ strh r2, [r3, #0x0]
+ ldr r1, _020CCDF8 ; =OSi_CountUpTick
+ strh r2, [r0, #0x0]
+ mov r2, #0xc1
+ mov r0, #0x8
+ strh r2, [r3, #0x0]
+ bl OS_SetIrqFunction
+ mov r0, #0x8
+ bl OS_EnableIrqMask
+ ldr r0, _020CCDFC ; =OSi_NeedResetTimer
+ mov r1, #0x0
+ str r1, [r0, #0x0]
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+ .balign 4
+_020CCDE8: .word OSi_UseTick
+_020CCDEC: .word OSi_TickCounter
+_020CCDF0: .word 0x04000102
+_020CCDF4: .word 0x04000100
+_020CCDF8: .word OSi_CountUpTick
+_020CCDFC: .word OSi_NeedResetTimer
+
+ arm_func_start OSi_AlarmHandler
+OSi_AlarmHandler: ; 0x020CCE00
+ stmdb sp!, {r0,lr}
+ bl OSi_ArrangeTimer
+ ldmia sp!, {r0,lr}
+ bx lr
+
+ arm_func_start OSi_ArrangeTimer
+OSi_ArrangeTimer: ; 0x020CCE10
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ ldr r1, _020CCF1C ; =0x04000106
+ mov r2, #0x0
+ mov r0, #0x10
+ strh r2, [r1, #0x0]
+ bl OS_DisableIrqMask
+ ldr r0, _020CCF20 ; =0x027E0000
+ add r0, r0, #0x3000
+ ldr r1, [r0, #0xff8]
+ orr r1, r1, #0x10
+ str r1, [r0, #0xff8]
+ bl OS_GetTick
+ ldr r2, _020CCF24 ; =OSi_AlarmQueue
+ ldr r4, [r2, #0x0]
+ cmp r4, #0x0
+ addeq sp, sp, #0x4
+ ldmeqia sp!, {r4-r5,lr}
+ bxeq lr
+ ldr r3, [r4, #0x10]
+ ldr r12, [r4, #0xc]
+ cmp r1, r3
+ cmpeq r0, r12
+ bhs _020CCE84
+ mov r0, r4
+ bl OSi_SetTimer
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,lr}
+ bx lr
+_020CCE84:
+ ldr r1, [r4, #0x18]
+ cmp r1, #0x0
+ moveq r0, #0x0
+ streq r0, [r2, #0x4]
+ str r1, [r2, #0x0]
+ movne r0, #0x0
+ strne r0, [r1, #0x14]
+ ldr r2, [r4, #0x1c]
+ ldr r1, [r4, #0x20]
+ mov r0, #0x0
+ cmp r1, r0
+ ldr r5, [r4, #0x0]
+ cmpeq r2, r0
+ streq r0, [r4, #0x0]
+ cmp r5, #0x0
+ beq _020CCECC
+ ldr r0, [r4, #0x4]
+ blx r5
+_020CCECC:
+ ldr r2, [r4, #0x1c]
+ ldr r0, [r4, #0x20]
+ mov r1, #0x0
+ cmp r0, r1
+ cmpeq r2, r1
+ beq _020CCEF4
+ mov r0, r4
+ mov r2, r1
+ str r5, [r4, #0x0]
+ bl OSi_InsertAlarm
+_020CCEF4:
+ ldr r0, _020CCF24 ; =OSi_AlarmQueue
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ addeq sp, sp, #0x4
+ ldmeqia sp!, {r4-r5,lr}
+ bxeq lr
+ bl OSi_SetTimer
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,lr}
+ bx lr
+ .balign 4
+_020CCF1C: .word 0x04000106
+_020CCF20: .word 0x027E0000
+_020CCF24: .word OSi_AlarmQueue
+
+ arm_func_start OS_CancelAlarm
+OS_CancelAlarm: ; 0x020CCF28
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ mov r5, r0
+ bl OS_DisableInterrupts
+ ldr r1, [r5, #0x0]
+ mov r4, r0
+ cmp r1, #0x0
+ bne _020CCF58
+ bl OS_RestoreInterrupts
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,lr}
+ bx lr
+_020CCF58:
+ ldr r0, [r5, #0x18]
+ cmp r0, #0x0
+ ldreq r2, [r5, #0x14]
+ ldreq r1, _020CCFBC ; =OSi_AlarmQueue
+ streq r2, [r1, #0x4]
+ ldrne r1, [r5, #0x14]
+ strne r1, [r0, #0x14]
+ ldr r1, [r5, #0x14]
+ cmp r1, #0x0
+ strne r0, [r1, #0x18]
+ bne _020CCF98
+ ldr r1, _020CCFBC ; =OSi_AlarmQueue
+ cmp r0, #0x0
+ str r0, [r1, #0x0]
+ beq _020CCF98
+ bl OSi_SetTimer
+_020CCF98:
+ mov r1, #0x0
+ str r1, [r5, #0x0]
+ str r1, [r5, #0x1c]
+ mov r0, r4
+ str r1, [r5, #0x20]
+ bl OS_RestoreInterrupts
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,lr}
+ bx lr
+ .balign 4
+_020CCFBC: .word OSi_AlarmQueue
+
+ arm_func_start OS_SetAlarm
+OS_SetAlarm: ; 0x020CCFC0
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0x4
+ movs r6, r0
+ mov r5, r1
+ mov r4, r2
+ mov r7, r3
+ beq _020CCFE8
+ ldr r0, [r6, #0x0]
+ cmp r0, #0x0
+ beq _020CCFEC
+_020CCFE8:
+ bl OS_Terminate
+_020CCFEC:
+ bl OS_DisableInterrupts
+ mov r1, #0x0
+ str r1, [r6, #0x1c]
+ str r1, [r6, #0x20]
+ str r7, [r6, #0x0]
+ ldr r1, [sp, #0x18]
+ mov r7, r0
+ str r1, [r6, #0x4]
+ bl OS_GetTick
+ adds r3, r5, r0
+ adc r2, r4, r1
+ mov r0, r6
+ mov r1, r3
+ bl OSi_InsertAlarm
+ mov r0, r7
+ bl OS_RestoreInterrupts
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r7,lr}
+ bx lr
+
+ arm_func_start OSi_InsertAlarm
+OSi_InsertAlarm: ; 0x020CD038
+ stmdb sp!, {r4-r8,lr}
+ mov r8, r0
+ ldr r4, [r8, #0x1c]
+ ldr r3, [r8, #0x20]
+ mov r0, #0x0
+ cmp r3, r0
+ mov r7, r1
+ mov r6, r2
+ cmpeq r4, r0
+ beq _020CD0B4
+ bl OS_GetTick
+ ldr r6, [r8, #0x28]
+ ldr r7, [r8, #0x24]
+ cmp r6, r1
+ cmpeq r7, r0
+ bhs _020CD0B4
+ ldr r5, [r8, #0x1c]
+ ldr r4, [r8, #0x20]
+ subs r0, r0, r7
+ mov r2, r5
+ mov r3, r4
+ sbc r1, r1, r6
+ bl _ll_udiv
+ mov r2, #0x1
+ adds r2, r0, r2
+ adc r0, r1, #0x0
+ umull r3, r1, r5, r2
+ mla r1, r5, r0, r1
+ mla r1, r4, r2, r1
+ adds r7, r7, r3
+ adc r6, r6, r1
+_020CD0B4:
+ str r7, [r8, #0xc]
+ ldr r0, _020CD174 ; =OSi_AlarmQueue
+ str r6, [r8, #0x10]
+ ldr r4, [r0, #0x0]
+ cmp r4, #0x0
+ beq _020CD134
+ mov r1, #0x0
+_020CD0D0:
+ ldr r2, [r4, #0xc]
+ ldr r0, [r4, #0x10]
+ subs r3, r7, r2
+ sbc r2, r6, r0
+ subs r0, r3, r1
+ sbcs r0, r2, r1
+ bge _020CD128
+ ldr r0, [r4, #0x14]
+ str r0, [r8, #0x14]
+ str r8, [r4, #0x14]
+ str r4, [r8, #0x18]
+ ldr r0, [r8, #0x14]
+ cmp r0, #0x0
+ strne r8, [r0, #0x18]
+ ldmneia sp!, {r4-r8,lr}
+ bxne lr
+ ldr r1, _020CD174 ; =OSi_AlarmQueue
+ mov r0, r8
+ str r8, [r1, #0x0]
+ bl OSi_SetTimer
+ ldmia sp!, {r4-r8,lr}
+ bx lr
+_020CD128:
+ ldr r4, [r4, #0x18]
+ cmp r4, #0x0
+ bne _020CD0D0
+_020CD134:
+ ldr r1, _020CD174 ; =OSi_AlarmQueue
+ mov r0, #0x0
+ str r0, [r8, #0x18]
+ ldr r0, [r1, #0x4]
+ str r8, [r1, #0x4]
+ str r0, [r8, #0x14]
+ cmp r0, #0x0
+ strne r8, [r0, #0x18]
+ ldmneia sp!, {r4-r8,lr}
+ bxne lr
+ mov r0, r8
+ str r8, [r1, #0x4]
+ str r8, [r1, #0x0]
+ bl OSi_SetTimer
+ ldmia sp!, {r4-r8,lr}
+ bx lr
+ .balign 4
+_020CD174: .word OSi_AlarmQueue
+
+ arm_func_start OS_CreateAlarm
+OS_CreateAlarm: ; 0x020CD178
+ mov r1, #0x0
+ str r1, [r0, #0x0]
+ str r1, [r0, #0x8]
+ bx lr
+
+ arm_func_start OS_IsAlarmAvailable
+OS_IsAlarmAvailable: ; 0x020CD188
+ ldr r0, _020CD194 ; =OSi_UseAlarm
+ ldrh r0, [r0, #0x0]
+ bx lr
+ .balign 4
+_020CD194: .word OSi_UseAlarm
+
+ arm_func_start OS_InitAlarm
+OS_InitAlarm: ; 0x020CD198
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldr r1, _020CD1E8 ; =OSi_UseAlarm
+ ldrh r0, [r1, #0x0]
+ cmp r0, #0x0
+ addne sp, sp, #0x4
+ ldmneia sp!, {lr}
+ bxne lr
+ mov r0, #0x1
+ strh r0, [r1, #0x0]
+ bl OSi_SetTimerReserved
+ ldr r1, _020CD1EC ; =OSi_AlarmQueue
+ mov r2, #0x0
+ mov r0, #0x10
+ str r2, [r1, #0x0]
+ str r2, [r1, #0x4]
+ bl OS_DisableIrqMask
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+ .balign 4
+_020CD1E8: .word OSi_UseAlarm
+_020CD1EC: .word OSi_AlarmQueue
+
+ arm_func_start OSi_SetTimer
+OSi_SetTimer: ; 0x020CD1F0
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ mov r4, r0
+ bl OS_GetTick
+ ldr r3, _020CD27C ; =0x04000106
+ mov r2, #0x0
+ strh r2, [r3, #0x0]
+ ldr r12, [r4, #0xc]
+ ldr r3, [r4, #0x10]
+ subs r5, r12, r0
+ sbc r4, r3, r1
+ ldr r1, _020CD280 ; =OSi_AlarmHandler
+ mov r0, #0x1
+ bl OSi_EnterTimerCallback
+ mov r2, #0x0
+ subs r0, r5, r2
+ sbcs r0, r4, r2
+ ldrlt r2, _020CD284 ; =0x0000FFFE
+ blt _020CD254
+ mov r0, #0x10000
+ subs r0, r5, r0
+ sbcs r0, r4, r2
+ mvnlt r0, r5
+ movlt r0, r0, lsl #0x10
+ movlt r2, r0, lsr #0x10
+_020CD254:
+ ldr r0, _020CD288 ; =0x04000104
+ ldr r1, _020CD27C ; =0x04000106
+ strh r2, [r0, #0x0]
+ mov r2, #0xc1
+ mov r0, #0x10
+ strh r2, [r1, #0x0]
+ bl OS_EnableIrqMask
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,lr}
+ bx lr
+ .balign 4
+_020CD27C: .word 0x04000106
+_020CD280: .word OSi_AlarmHandler
+_020CD284: .word 0x0000FFFE
+_020CD288: .word 0x04000104
+
+ arm_func_start OS_InitVAlarm
+OS_InitVAlarm: ; 0x020CD28C
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldr r2, _020CD2EC ; =OSi_UseVAlarm
+ ldrh r0, [r2, #0x0]
+ cmp r0, #0x0
+ addne sp, sp, #0x4
+ ldmneia sp!, {lr}
+ bxne lr
+ ldr r1, _020CD2F0 ; =OSi_VAlarmQueue
+ mov r3, #0x0
+ mov r12, #0x1
+ mov r0, #0x4
+ strh r12, [r2, #0x0]
+ str r3, [r1, #0x0]
+ str r3, [r1, #0x4]
+ bl OS_DisableIrqMask
+ ldr r1, _020CD2F4 ; =OSi_VFrameCount
+ mov r2, #0x0
+ ldr r0, _020CD2F8 ; =OSi_PreviousVCount
+ str r2, [r1, #0x0]
+ str r2, [r0, #0x0]
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+ .balign 4
+_020CD2EC: .word OSi_UseVAlarm
+_020CD2F0: .word OSi_VAlarmQueue
+_020CD2F4: .word OSi_VFrameCount
+_020CD2F8: .word OSi_PreviousVCount
+
+ arm_func_start OS_EnableInterrupts
+OS_EnableInterrupts: ; 0x020CD2FC
+ mrs r0, cpsr
+ bic r1, r0, #0x80
+ msr cpsr_c, r1
+ and r0, r0, #0x80
+ bx lr
+
+ arm_func_start OS_DisableInterrupts
+OS_DisableInterrupts:
+ mrs r0, cpsr
+ orr r1, r0, #0x80
+ msr cpsr_c, r1
+ and r0, r0, #0x80
+ bx lr
+
+ arm_func_start OS_RestoreInterrupts
+OS_RestoreInterrupts:
+ mrs r1, cpsr
+ bic r2, r1, #0x80
+ orr r2, r2, r0
+ msr cpsr_c, r2
+ and r0, r1, #0x80
+ bx lr
+
+ arm_func_start OS_DisableInterrupts_IrqAndFiq
+OS_DisableInterrupts_IrqAndFiq: ; 0x020CD33C
+ mrs r0, cpsr
+ orr r1, r0, #0xc0
+ msr cpsr_c, r1
+ and r0, r0, #0xc0
+ bx lr
+
+ arm_func_start OS_RestoreInterrupts_IrqAndFiq
+OS_RestoreInterrupts_IrqAndFiq: ; 0x020CD350
+ mrs r1, cpsr
+ bic r2, r1, #0xc0
+ orr r2, r2, r0
+ msr cpsr_c, r2
+ and r0, r1, #0xc0
+ bx lr
+
+ arm_func_start OS_GetCpsrIrq
+OS_GetCpsrIrq: ; 0x020CD368
+ mrs r0, cpsr
+ and r0, r0, #0x80
+ bx lr
+
+ arm_func_start OS_GetProcMode
+OS_GetProcMode: ; 0x020CD374
+ mrs r0, cpsr
+ and r0, r0, #0x1f
+ bx lr
+
+ arm_func_start OS_SpinWait
+OS_SpinWait:
+ subs r0, r0, #0x4
+ bhs OS_SpinWait
+ bx lr
+
+ arm_func_start OS_WaitVBlankIntr
+OS_WaitVBlankIntr: ; 0x020CD38C
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ mov r0, #0x1
+ blx SVC_WaitByLoop
+ mov r0, #0x1
+ mov r1, r0
+ bl OS_WaitIrq
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+
+ arm_func_start OS_ResetSystem
+OS_ResetSystem: ; 0x020CD3B4
+ stmdb sp!, {r4,lr}
+ ldr r1, _020CD42C ; =0x027FFC40
+ mov r4, r0
+ ldrh r0, [r1, #0x0]
+ cmp r0, #0x2
+ bne _020CD3D0
+ bl OS_Terminate
+_020CD3D0:
+ bl OS_GetLockID
+ mov r0, r0, lsl #0x10
+ mov r0, r0, lsr #0x10
+ bl CARD_LockRom
+_020CD3E0:
+ mov r0, #0x0
+ bl MI_StopDma
+ mov r0, #0x1
+ bl MI_StopDma
+ mov r0, #0x2
+ bl MI_StopDma
+ mov r0, #0x3
+ bl MI_StopDma
+ mov r0, #0x40000
+ bl OS_SetIrqMask
+ mvn r0, #0x0
+ bl OS_ResetRequestIrqMask
+ ldr r1, _020CD430
+ mov r0, #0x10
+ str r4, [r1]
+ bl OSi_SendToPxi
+ bl OSi_DoResetSystem
+ ldmia sp!, {r4, lr}
+ bx lr
+_020CD42C: .word 0x027FFC40
+_020CD430: .word 0x027FFC20
+
+ arm_func_start OSi_SendToPxi
+OSi_SendToPxi: ; 0x020CD434
+ stmdb sp!, {r4-r6,lr}
+ mov r6, r0, lsl #0x8
+ mov r5, #0xc
+ mov r4, #0x0
+_020CD444:
+ mov r0, r5
+ mov r1, r6
+ mov r2, r4
+ bl PXI_SendWordByFifo
+_020CD454:
+ cmp r0, #0x0
+ bne _020CD444
+ ldmia sp!, {r4-r6, lr}
+ bx lr
+
+ arm_func_start OSi_CommonCallback
+OSi_CommonCallback: ; OSi_CommonCallback
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ and r0, r1, #0x7f00
+ mov r0, r0, lsl #0x8
+ mov r0, r0, lsr #0x10
+ cmp r0, #0x10
+ ldreq r0, _020CD4A4 ; =OSi_IsResetOccurred
+ moveq r1, #0x1
+ streqh r1, [r0, #0x0]
+ addeq sp, sp, #0x4
+ ldmeqia sp!, {lr}
+ bxeq lr
+ bl OS_Terminate
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+ .balign 4
+_020CD4A4: .word OSi_IsResetOccurred
+
+ arm_func_start OS_InitReset
+OS_InitReset: ; 0x020CD4A8
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ ldr r0, _020CD508 ; =0x021D37DC
+ ldrh r1, [r0, #0x0]
+ cmp r1, #0x0
+ addne sp, sp, #0x4
+ ldmneia sp!, {r4-r5,lr}
+ bxne lr
+ mov r1, #0x1
+ strh r1, [r0, #0x0]
+ bl PXI_Init
+ mov r5, #0xc
+ mov r4, #0x1
+_020CD4DC:
+ mov r0, r5
+ mov r1, r4
+ bl PXI_IsCallbackReady
+_020CD4E8:
+ cmp r0, #0x0
+ beq _020CD4DC
+ ldr r1, _020CD50C
+ mov r0, #0xC
+ bl PXI_SetFifoRecvCallback
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5, lr}
+ bx lr
+_020CD508: .word OSi_IsInitReset
+_020CD50C: .word OSi_CommonCallback
+
+ arm_func_start OS_GetOwnerRtcOffset
+OS_GetOwnerRtcOffset: ; 0x020CD510
+ ldr r1, _020CD520 ; =0x027FFC80
+ ldr r0, [r1, #0x68]
+ ldr r1, [r1, #0x6c]
+ bx lr
+ .balign 4
+_020CD520: .word 0x027FFC80
+
+ arm_func_start OS_GetOwnerInfo
+OS_GetOwnerInfo: ; 0x020CD524
+ stmdb sp!, {r4,lr}
+ ldr ip, _020CD59C ; =0x027FFC80
+ mov r4, r0
+ ldrh r2, [r12, #0x64]
+ add r0, r12, #0x6
+ add r1, r4, #0x4
+ mov r2, r2, lsl #0x1d
+ mov r2, r2, lsr #0x1d
+ strb r2, [r4, #0x0]
+ ldrb r3, [r12, #0x2]
+ mov r2, #0x14
+ mov r3, r3, lsl #0x1c
+ mov r3, r3, lsr #0x1c
+ strb r3, [r4, #0x1]
+ ldrb r3, [r12, #0x3]
+ strb r3, [r4, #0x2]
+ ldrb r3, [r12, #0x4]
+ strb r3, [r4, #0x3]
+ ldrb r3, [r12, #0x1a]
+ strh r3, [r4, #0x18]
+ ldrb r3, [r12, #0x50]
+ strh r3, [r4, #0x4e]
+ bl MIi_CpuCopy16
+ ldr r0, _020CD59C ; =0x027FFC80
+ add r1, r4, #0x1a
+ add r0, r0, #0x1c
+ mov r2, #0x34
+ bl MIi_CpuCopy16
+ ldmia sp!, {r4,lr}
+ bx lr
+ .balign 4
+_020CD59C: .word 0x027FFC80
+
+ arm_func_start OS_GetMacAddress
+OS_GetMacAddress: ; 0x020CD5A0
+ ldr ip, _020CD5B4 ; =MI_CpuCopy8
+ mov r1, r0
+ ldr r0, _020CD5B8 ; =0x027FFCF4
+ mov r2, #0x6
+ bx r12
+ .balign 4
+_020CD5B4: .word MI_CpuCopy8
+_020CD5B8: .word 0x027FFCF4
+
+ arm_func_start OsCountZeroBits
+OsCountZeroBits: ; 0x020CD5BC
+ clz r0, r0
+ bx lr
+
+ arm_func_start OSi_UnlockVram
+OSi_UnlockVram: ; 0x020CD5C4
+ stmdb sp!, {r4-r10,lr}
+ mov r5, r0
+ mov r10, r1
+ bl OS_DisableInterrupts
+ ldr r4, _020CD640 ; =OSi_vramExclusive
+ ldr r1, _020CD644 ; =0x000001FF
+ ldr r2, [r4, #0x0]
+ mov r8, r0
+ and r0, r5, r2
+ and r9, r0, r1
+ ldr r6, _020CD648 ; =OSi_vramLockId
+ mov r7, #0x1
+ mov r5, #0x0
+_020CD5F8:
+ mov r0, r9
+ bl OsCountZeroBits
+ rsbs r2, r0, #0x1f
+ bmi _020CD630
+ mov r1, r2, lsl #0x1
+ ldrh r0, [r6, r1]
+ mvn r2, r7, lsl r2
+ cmp r10, r0
+ ldreq r0, [r4, #0x0]
+ and r9, r9, r2
+ andeq r0, r0, r2
+ streqh r5, [r6, r1]
+ streq r0, [r4, #0x0]
+ b _020CD5F8
+_020CD630:
+ mov r0, r8
+ bl OS_RestoreInterrupts
+ ldmia sp!, {r4-r10,lr}
+ bx lr
+ .balign 4
+_020CD640: .word OSi_vramExclusive
+_020CD644: .word 0x000001FF
+_020CD648: .word OSi_vramLockId
+
+ arm_func_start OSi_TryLockVram
+OSi_TryLockVram: ; 0x020CD64C
+ stmdb sp!, {r4-r9,lr}
+ sub sp, sp, #0x4
+ mov r6, r0
+ mov r8, r1
+ bl OS_DisableInterrupts
+ ldr r1, _020CD714 ; =OSi_vramExclusive
+ mov r7, r0
+ ldr r0, [r1, #0x0]
+ and r5, r6, r0
+ ldr sb, _020CD718 ; =OSi_vramLockId
+ mov r4, #0x1
+_020CD678:
+ mov r0, r5
+ bl OsCountZeroBits
+ rsbs r1, r0, #0x1f
+ bmi _020CD6B8
+ mov r0, r1, lsl #0x1
+ ldrh r0, [r9, r0]
+ mvn r1, r4, lsl r1
+ cmp r8, r0
+ and r5, r5, r1
+ beq _020CD678
+ mov r0, r7
+ bl OS_RestoreInterrupts
+ add sp, sp, #0x4
+ mov r0, #0x0
+ ldmia sp!, {r4-r9,lr}
+ bx lr
+_020CD6B8:
+ ldr r0, _020CD71C ; =0x000001FF
+ and r6, r6, r0
+ ldr r4, _020CD718 ; =OSi_vramLockId
+ ldr sb, _020CD714 ; =OSi_vramExclusive
+ mov r5, #0x1
+_020CD6CC:
+ mov r0, r6
+ bl OsCountZeroBits
+ rsbs r1, r0, #0x1f
+ bmi _020CD6FC
+ ldr r0, [r9, #0x0]
+ mvn r2, r5, lsl r1
+ orr r0, r0, r5, lsl r1
+ mov r1, r1, lsl #0x1
+ strh r8, [r4, r1]
+ str r0, [r9, #0x0]
+ and r6, r6, r2
+ b _020CD6CC
+_020CD6FC:
+ mov r0, r7
+ bl OS_RestoreInterrupts
+ mov r0, #0x1
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r9,lr}
+ bx lr
+ .balign 4
+_020CD714: .word OSi_vramExclusive
+_020CD718: .word OSi_vramLockId
+_020CD71C: .word 0x000001FF
+
+ arm_func_start OSi_InitVramExclusive
+OSi_InitVramExclusive: ; 0x020CD720
+ ldr r0, _020CD74C ; =OSi_vramExclusive
+ mov r3, #0x0
+ str r3, [r0, #0x0]
+ ldr r0, _020CD750 ; =OSi_vramLockId
+ mov r2, r3
+_020CD734:
+ mov r1, r3, lsl #0x1
+ add r3, r3, #0x1
+ strh r2, [r0, r1]
+ cmp r3, #0x9
+ blt _020CD734
+ bx lr
+ .balign 4
+_020CD74C: .word OSi_vramExclusive
+_020CD750: .word OSi_vramLockId
+
+ arm_func_start OS_GetLowEntropyData
+OS_GetLowEntropyData: ; 0x020CD754
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0x4
+ ldr r1, _020CD82C ; =0x04000006
+ ldr r2, _020CD830 ; =0x027FFC00
+ ldrh r7, [r1, #0x0]
+ add r4, r2, #0x80
+ mov r6, r0
+ add r5, r4, #0x74
+ bl OS_GetTickLo
+ orr r0, r0, r7, lsl #0x10
+ str r0, [r6, #0x0]
+ ldr r1, _020CD834 ; =OSi_TickCounter
+ ldr r0, _020CD830 ; =0x027FFC00
+ ldr r3, [r1, #0x0]
+ ldrh r5, [r5, #0x4]
+ ldr r2, [r1, #0x4]
+ ldr r2, _020CD838 ; =0x04000600
+ eor r3, r3, r5, lsl #0x10
+ str r3, [r6, #0x4]
+ ldr r3, [r1, #0x0]
+ ldr r3, [r1, #0x4]
+ ldr r1, [r4, #0x74]
+ ldr r4, [r0, #0x3c]
+ eor r1, r3, r1
+ eor r1, r4, r1
+ str r1, [r6, #0x8]
+ ldr r3, [r6, #0x8]
+ ldr r2, [r2, #0x0]
+ add r1, r0, #0x300
+ eor r2, r3, r2
+ str r2, [r6, #0x8]
+ ldr r2, [r0, #0x1e8]
+ ldr r3, _020CD83C ; =0x04000130
+ str r2, [r6, #0xc]
+ ldr r4, [r0, #0x1ec]
+ ldr r2, _020CD840 ; =0x027FFFA8
+ str r4, [r6, #0x10]
+ ldrh r4, [r1, #0x94]
+ ldr r0, [r0, #0x390]
+ eor r0, r0, r4, lsl #0x10
+ str r0, [r6, #0x14]
+ ldrh r4, [r1, #0xaa]
+ ldrh r0, [r1, #0xac]
+ orr r0, r0, r4, lsl #0x10
+ str r0, [r6, #0x18]
+ ldrh r3, [r3, #0x0]
+ ldrh r0, [r2, #0x0]
+ ldrh r1, [r1, #0x98]
+ orr r0, r3, r0
+ orr r0, r0, r1, lsl #0x10
+ str r0, [r6, #0x1c]
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r7,lr}
+ bx lr
+ .balign 4
+_020CD82C: .word 0x04000006
+_020CD830: .word 0x027FFC00
+_020CD834: .word OSi_TickCounter
+_020CD838: .word 0x04000600
+_020CD83C: .word 0x04000130
+_020CD840: .word 0x027FFFA8
+
+ arm_func_start OS_Halt
+OS_Halt: ; 0x020CD844
+ mov r0, #0x0
+ mcr p15, 0x0, r0, c7, c0, 0x4
+ bx lr
+
+ arm_func_start OS_Terminate
+OS_Terminate: ; 0x020CD850
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+_020CD858:
+ bl OS_DisableInterrupts
+ bl OS_Halt
+ b _020CD858
diff --git a/arm9/asm/PM_arm9.s b/arm9/asm/PM_arm9.s
new file mode 100644
index 00000000..331c0fa9
--- /dev/null
+++ b/arm9/asm/PM_arm9.s
@@ -0,0 +1,1125 @@
+ .include "asm/macros.inc"
+ .include "global.inc"
+
+ .text
+
+ arm_func_start PM_DeletePostSleepCallback
+PM_DeletePostSleepCallback: ; 0x020D4AE8
+ ldr ip, _020D4AF8 ; =0x020D4B78
+ mov r1, r0
+ ldr r0, _020D4AFC ; =0x021D54E0
+ bx r12
+ .balign 4
+_020D4AF8: .word 0x020D4B78
+_020D4AFC: .word 0x021D54E0
+
+ arm_func_start PM_DeletePreSleepCallback
+PM_DeletePreSleepCallback: ; 0x020D4B00
+ ldr ip, _020D4B10 ; =0x020D4B78
+ mov r1, r0
+ ldr r0, _020D4B14 ; =0x021D54D8
+ bx r12
+ .balign 4
+_020D4B10: .word 0x020D4B78
+_020D4B14: .word 0x021D54D8
+
+ arm_func_start PM_AppendPostSleepCallback
+PM_AppendPostSleepCallback: ; 0x020D4B18
+ ldr ip, _020D4B28 ; =FUN_020D4BC4
+ mov r1, r0
+ ldr r0, _020D4B2C ; =0x021D54E0
+ bx r12
+ .balign 4
+_020D4B28: .word FUN_020D4BC4
+_020D4B2C: .word 0x021D54E0
+
+ arm_func_start PM_PrependPreSleepCallback
+PM_PrependPreSleepCallback: ; 0x020D4B30
+ ldr ip, _020D4B40 ; =FUN_020D4C0C
+ mov r1, r0
+ ldr r0, _020D4B44 ; =0x021D54D8
+ bx r12
+ .balign 4
+_020D4B40: .word FUN_020D4C0C
+_020D4B44: .word 0x021D54D8
+
+ arm_func_start PMi_ExecuteList
+PMi_ExecuteList: ; 0x020D4B48
+ stmdb sp!, {r4,lr}
+ movs r4, r0
+ ldmeqia sp!, {r4,lr}
+ bxeq lr
+_020D4B58:
+ ldr r0, [r4, #0x4]
+ ldr r1, [r4, #0x0]
+ blx r1
+ ldr r4, [r4, #0x8]
+ cmp r4, #0x0
+ bne _020D4B58
+ ldmia sp!, {r4,lr}
+ bx lr
+
+ arm_func_start FUN_020D4B78
+FUN_020D4B78:
+ cmp r0, #0x0
+ bxeq lr
+ ldr r3, [r0]
+ mov r2, r3
+ cmp r3, #0x0
+ bxeq lr
+_020D4B90:
+ cmp r3, r1
+ bne _020D4BB0
+ cmp r3, r2
+ ldreq r1, [r3, #0x8]
+ streq r1, [r0]
+ ldrne r0, [r3, #0x8]
+ strne r0, [r2, #0x8]
+ bx lr
+_020D4BB0:
+ mov r2, r3
+ ldr r3, [r3, #0x8]
+ cmp r3, #0x0
+ bne _020D4B90
+ bx lr
+
+ arm_func_start FUN_020D4BC4
+FUN_020D4BC4: ; 0x020D4BC4
+ cmp r0, #0x0
+ bxeq lr
+ ldr r2, [r0, #0x0]
+ cmp r2, #0x0
+ moveq r2, #0x0
+ streq r2, [r1, #0x8]
+ streq r1, [r0, #0x0]
+ bxeq lr
+ ldr r0, [r2, #0x8]
+ cmp r0, #0x0
+ beq _020D4C00
+_020D4BF0:
+ mov r2, r0
+ ldr r0, [r0, #0x8]
+ cmp r0, #0x0
+ bne _020D4BF0
+_020D4C00:
+ str r0, [r1, #0x8]
+ str r1, [r2, #0x8]
+ bx lr
+
+ arm_func_start FUN_020D4C0C
+FUN_020D4C0C: ; 0x020D4C0C
+ cmp r0, #0x0
+ ldrne r2, [r0, #0x0]
+ strne r2, [r1, #0x8]
+ strne r1, [r0, #0x0]
+ bx lr
+
+ arm_func_start PM_GetLEDPattern
+PM_GetLEDPattern: ; 0x020D4C20
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldr r1, _020D4C58 ; =0x020D587C
+ add r2, sp, #0x0
+ bl PM_GetLEDPatternAsync
+_020D4C34:
+ cmp r0, #0x0
+ addne sp, sp, #0x4
+ ldmnefd sp!, {lr}
+ bxne lr
+ bl PMi_WaitBusy
+ ldr r0, [sp]
+ add sp, sp, #0x4
+ ldmfd sp!, {lr}
+ bx lr
+_020D4C58: .word 0x020D587C
+
+ arm_func_start PM_GetLEDPatternAsync
+PM_GetLEDPatternAsync:
+ stmdb sp!, {r4-r6,lr}
+ mov r6, r0
+ mov r5, r1
+ mov r4, r2
+ bl PMi_Lock
+_020D4C70:
+ cmp r0, #0x0
+ moveq r0, #0x1
+ ldmeqia sp!, {r4-r6,lr}
+ bxeq lr
+ ldr r1, _020D4CA4
+ ldr r0, _020D4CA8
+ str r5, [r1, #0x4]
+ str r4, [r1, #0x8]
+ str r6, [r1, #0xC]
+ bl PMi_SendPxiData
+ mov r0, #0x0
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+_020D4CA4: .word 0x021D54E4
+_020D4CA8: .word 0x03006700
+
+ arm_func_start PMi_SendLEDPatternCommand
+PMi_SendLEDPatternCommand: ; 0x020D4CAC
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldr r1, _020D4CE4 ; =0x020D587C
+ add r2, sp, #0x0
+ bl PMi_SendLEDPatternCommandAsync
+_020D4CC0:
+ cmp r0, #0x0
+ addne sp, sp, #0x4
+ ldmnefd sp!, {lr}
+ bxne lr
+ bl PMi_WaitBusy
+ ldr r0, [sp]
+ add sp, sp, #0x4
+ ldmfd sp!, {lr}
+ bx lr
+_020D4CE4: .word 0x020D587C
+
+ arm_func_start PMi_SendLEDPatternCommandAsync
+PMi_SendLEDPatternCommandAsync:
+ stmdb sp!, {r4-r6,lr}
+ mov r6, r0
+ mov r5, r1
+ mov r4, r2
+ bl PMi_Lock
+_020D4CFC:
+ cmp r0, #0x0
+ moveq r0, #0x1
+ ldmeqia sp!, {r4-r6,lr}
+ bxeq lr
+ ldr r0, _020D4D34
+ ldr r1, _020D4D38
+ and r2, r6, #0xff
+ orr r0, r2, r0
+ str r5, [r1, #0x4]
+ str r4, [r1, #0x8]
+ bl PMi_SendPxiData
+ mov r0, #0x0
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+_020D4D34: .word 0x03006600
+_020D4D38: .word 0x021D54E4
+
+ arm_func_start PM_GetLCDPower
+PM_GetLCDPower: ; 0x020D4D3C
+ ldr r0, _020D4D54 ; =0x04000304
+ ldrh r0, [r0, #0x0]
+ ands r0, r0, #0x1
+ movne r0, #0x1
+ moveq r0, #0x0
+ bx lr
+ .balign 4
+_020D4D54: .word 0x04000304
+
+ arm_func_start PM_SetLCDPower
+PM_SetLCDPower: ; 0x020D4D58
+ ldr ip, _020D4D74 ; =PMi_SetLCDPower
+ mov r1, #0x0
+ cmp r0, #0x1
+ movne r0, #0x0
+ mov r2, r1
+ mov r3, #0x1
+ bx r12
+ .balign 4
+_020D4D74: .word PMi_SetLCDPower
+
+ arm_func_start PMi_SetLCDPower
+PMi_SetLCDPower: ; 0x020D4D78
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ cmp r0, #0x0
+ beq _020D4E00
+ cmp r0, #0x1
+ bne _020D4E4C
+ cmp r2, #0x0
+ bne _020D4DC0
+ ldr r2, _020D4E5C ; =0x027FFC3C
+ ldr r0, _020D4E60 ; =0x021D54DC
+ ldr r2, [r2, #0x0]
+ ldr r0, [r0, #0x0]
+ sub r0, r2, r0
+ cmp r0, #0x7
+ addls sp, sp, #0x4
+ movls r0, #0x0
+ ldmlsia sp!, {lr}
+ bxls lr
+_020D4DC0:
+ cmp r1, #0x0
+ beq _020D4DEC
+ cmp r3, #0x0
+ beq _020D4DDC
+ mov r0, r1
+ bl PMi_SetLED
+ b _020D4DEC
+_020D4DDC:
+ mov r0, r1
+ mov r1, #0x0
+ mov r2, r1
+ bl PMi_SetLEDAsync
+_020D4DEC:
+ ldr r1, _020D4E64 ; =0x04000304
+ ldrh r0, [r1, #0x0]
+ orr r0, r0, #0x1
+ strh r0, [r1, #0x0]
+ b _020D4E4C
+_020D4E00:
+ ldr lr, _020D4E64 ; =0x04000304
+ ldr r2, _020D4E5C ; =0x027FFC3C
+ ldrh r12, [lr, #0x0]
+ ldr r0, _020D4E60 ; =0x021D54DC
+ cmp r1, #0x0
+ bic r12, r12, #0x1
+ strh r12, [lr, #0x0]
+ ldr r2, [r2, #0x0]
+ str r2, [r0, #0x0]
+ beq _020D4E4C
+ cmp r3, #0x0
+ beq _020D4E3C
+ mov r0, r1
+ bl PMi_SetLED
+ b _020D4E4C
+_020D4E3C:
+ mov r0, r1
+ mov r1, #0x0
+ mov r2, r1
+ bl PMi_SetLEDAsync
+_020D4E4C:
+ mov r0, #0x1
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+ .balign 4
+_020D4E5C: .word 0x027FFC3C
+_020D4E60: .word 0x021D54DC
+_020D4E64: .word 0x04000304
+
+ arm_func_start PM_GoSleepMode
+PM_GoSleepMode: ; 0x020D4E68
+ stmdb sp!, {r4-r11,lr}
+ sub sp, sp, #0x1c
+ ldr r3, _020D5084 ; =0x021D54D8
+ mov r10, r0
+ ldr r0, [r3, #0x0]
+ mov r9, r1
+ mov r11, r2
+ mov r8, #0x0
+ bl PMi_ExecuteList
+ ldr r1, _020D5088 ; =0x04000208
+ mov r0, r8
+ ldrh r4, [r1, #0x0]
+ strh r0, [r1, #0x0]
+ bl OS_DisableInterrupts
+_020D4EA0:
+ str r0, [sp]
+ ldr r0, _020D508C
+ bl OS_DisableIrqMask
+ str r0, [sp, #0x4]
+ mov r0, #0x40000
+ bl OS_SetIrqMask
+ ldr r0, [sp]
+ bl OS_RestoreInterrupts
+ ldr r2, _020D5088
+ mov r1, #0x1
+ ldrh r0, [r2]
+ ands r0, sl, #0x8
+ strh r1, [r2]
+ beq _020D4EE8
+ ldr r0, _020D5090
+ ldrh r0, [r0]
+ cmp r0, #0x2
+ biceq sl, sl, #0x8
+_020D4EE8:
+ ands r0, sl, #0x10
+ beq _020D4EFC
+ bl CTRDG_IsExisting
+ cmp r0, #0x0
+ biceq sl, sl, #0x10
+_020D4EFC:
+ ldr r0, _020D5094
+ mov r1, #0x4000000
+ ldr r7, [r1]
+ ldr r6, [r0]
+ bl PM_GetLCDPower
+ str r0, [sp, #0x8]
+ add r0, sp, #0xC
+ add r1, sp, #0x10
+ bl PM_GetBackLight
+ mov r0, #0x2
+ mov r1, #0x0
+ bl PM_SetBackLight
+ ldr r2, _020D5098
+ ldr r0, [r2]
+ str r0, [sp, #0x14]
+_020D4F38:
+ ldr r1, [r2]
+ ldr r0, [sp, #0x14]
+ cmp r0, r1
+ beq _020D4F38
+ ldr r0, [r2]
+ mov r2, #0x4000000
+ str r0, [sp, #0x14]
+ ldr r0, [r2]
+ ldr r1, _020D5094
+ bic r0, r0, #0x30000
+ str r0, [r2]
+ ldr r0, [r1]
+ bic r0, r0, #0x10000
+ str r0, [r1]
+ ldr r2, _020D5098
+_020D4F74:
+ ldr r1, [r2]
+ ldr r0, [sp, #0x14]
+ cmp r0, r1
+ beq _020D4F74
+ ldr r0, [r2]
+ str r0, [sp, #0x14]
+ ldr r2, _020D5098
+_020D4F90:
+ ldr r1, [r2]
+ ldr r0, [sp, #0x14]
+ cmp r0, r1
+ beq _020D4F90
+ ldr r0, [sp, #0xC]
+ ldr r1, [sp, #0x10]
+ orr r0, sl, r0, lsl #0x5
+ orr r0, r0, r1, lsl #0x6
+ mov r0, r0, lsl #0x10
+ mov r5, r0, lsr #0x10
+ orr r0, r9, fp
+ mov r0, r0, lsl #0x10
+ mov r9, r0, lsr #0x10
+_020D4FC4:
+ mov r0, r5
+ mov r1, r9
+ bl PMi_SendSleepStart
+ cmp r0, #0x0
+ bne _020D4FC4
+ bl OS_Halt
+ ldr r0, _020D509C
+ bl OS_SpinWait
+ ands r0, sl, #0x8
+ beq _020D4FFC
+ ldr r0, _020D50A0
+ ldr r0, [r0]
+ ands r0, r0, #0x100000
+ movne r8, #0x1
+_020D4FFC:
+ cmp r8, #0x0
+ bne _020D5040
+ ldr r0, [sp, #0x8]
+ cmp r0, #0x1
+ bne _020D5028
+ mov r0, #0x1
+ mov r1, r0
+ mov r2, r0
+ mov r3, #0x0
+ bl PMi_SetLCDPower
+ b _020D5030
+_020D5028:
+ mov r0, #0x1
+ bl PMi_SetLED
+_020D5030:
+ mov r1, #0x4000000
+ ldr r0, _020D5094
+ str r7, [r1]
+ str r6, [r0]
+_020D5040:
+ bl OS_DisableInterrupts
+ ldr r0, [sp, #0x4]
+ bl OS_SetIrqMask
+ ldr r0, [sp]
+ bl OS_RestoreInterrupts
+ ldr r1, _020D5088
+ cmp r8, #0x0
+ ldrh r0, [r1]
+ strh r4, [r1]
+ beq _020D506C
+ bl PM_ForceToPowerOff
+_020D506C:
+ ldr r0, _020D50A4
+ ldr r0, [r0]
+ bl PMi_ExecuteList
+ add sp, sp, #0x1C
+ ldmia sp!, {r4-r11, lr}
+ bx lr
+_020D5084: .word 0x021D54D8
+_020D5088: .word 0x04000208
+_020D508C: .word 0x003FFFFF
+_020D5090: .word 0x027FFC40
+_020D5094: .word 0x04001000
+_020D5098: .word 0x027FFC3C
+_020D509C: .word 0x00996A00
+_020D50A0: .word 0x04000214
+_020D50A4: .word 0x021D54E0
+
+
+ arm_func_start PMi_SendPxiData
+PMi_SendPxiData: ; 0x020D50A8
+ stmdb sp!, {r4-r6,lr}
+ mov r6, r0
+ mov r5, #0x8
+ mov r4, #0x0
+_020D50B8:
+ mov r0, r5
+ mov r1, r6
+ mov r2, r4
+ bl PXI_SendWordByFifo
+_020D50C8:
+ cmp r0, #0
+ bne _020D50B8
+ ldmia sp!, {r4-r6, lr}
+ bx lr
+
+ arm_func_start PM_GetBackLight
+PM_GetBackLight: ; 0x020D50D8
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ mov r4, r1
+ mov r5, r0
+ add r1, sp, #0x0
+ mov r0, #0x0
+ bl PMi_ReadRegister
+_020D50F4:
+ cmp r0, #0x0
+ addne sp, sp, #0x4
+ ldmneia sp!, {r4-r5,lr}
+ bxne lr
+ cmp r5, #0x0
+ beq _020D5120
+ ldrh r1, [sp]
+ ands r1, r1, #0x8
+ movne r1, #0x1
+ moveq r1, #0x0
+ str r1, [r5]
+_020D5120:
+ cmp r4, #0x0
+ addeq sp, sp, #0x4
+ ldmeqia sp!, {r4-r5,lr}
+ bxeq lr
+ ldrh r1, [sp]
+ ands r1, r1, #0x4
+ movne r1, #0x1
+ moveq r1, #0x0
+ str r1, [r4]
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,lr}
+ bx lr
+
+ arm_func_start PM_SetAmpGain
+PM_SetAmpGain: ; 0x020D5150
+ ldr ip, _020D5164 ; =FUN_020D53DC
+ mov r0, r0, lsl #0x10
+ mov r1, r0, lsr #0x10
+ mov r0, #0x3
+ bx r12
+ .balign 4
+_020D5164: .word FUN_020D53DC
+
+ arm_func_start PM_SetAmp
+PM_SetAmp: ; 0x020D5168
+ ldr ip, _020D517C ; =FUN_020D53DC
+ mov r0, r0, lsl #0x10
+ mov r1, r0, lsr #0x10
+ mov r0, #0x2
+ bx r12
+ .balign 4
+_020D517C: .word FUN_020D53DC
+
+ arm_func_start PM_ForceToPowerOff
+PM_ForceToPowerOff: ; 0x020D5180
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldr r0, _020D51B8 ; =PMi_DummyCallback
+ add r1, sp, #0x0
+ bl PM_ForceToPowerOffAsync
+_020D5194: ; 0x020D5194
+ cmp r0, #0x0
+ addne sp, sp, #0x4
+ ldmneia sp!, {lr}
+ bxne lr
+ bl PMi_WaitBusy
+_020D51A8: ; 0x020D51A8
+ ldr r0, [sp, #0x0]
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+ .balign 4
+_020D51B8: .word PMi_DummyCallback
+
+ arm_func_start PM_ForceToPowerOffAsync
+PM_ForceToPowerOffAsync:
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0xc
+ mov r7, r0
+ ldr r0, _020D5268 ; =0x00996A00
+ mov r6, r1
+ bl OS_SpinWait
+ bl PM_GetLCDPower
+ cmp r0, #0x1
+ beq _020D524C
+ add r0, sp, #0x0
+ add r1, sp, #0x4
+ bl PM_GetBackLight
+_020D51EC: ; 0x020D51EC
+ ldr r0, [sp, #0x0]
+ cmp r0, #0x0
+ beq _020D5204
+ mov r0, #0x0
+ mov r1, r0
+ bl PM_SetBackLight
+_020D5204:
+ ldr r0, [sp, #0x4]
+ cmp r0, #0x0
+ beq _020D521C
+ mov r0, #0x1
+ mov r1, #0x0
+ bl PM_SetBackLight
+_020D521C:
+ mov r0, #0x1
+ bl PM_SetLCDPower
+_020D5224: ; 0x020D5224
+ cmp r0, #0x0
+ bne _020D524C
+ ldr r5, _020D5268 ; =0x00996A00
+ mov r4, #0x1
+_020D5234:
+ mov r0, r5
+ bl OS_SpinWait
+ mov r0, r4
+ bl PM_SetLCDPower
+_020D5244: ; 0x020D5244
+ cmp r0, #0x0
+ beq _020D5234
+_020D524C:
+ mov r1, r7
+ mov r2, r6
+ mov r0, #0xe
+ bl PM_SendUtilityCommandAsync
+ add sp, sp, #0xc
+ ldmia sp!, {r4-r7,lr}
+ bx lr
+ .balign 4
+_020D5268: .word 0x00996A00
+
+ arm_func_start PM_SetBackLight
+PM_SetBackLight: ; 0x020D526C
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldr r2, _020D52A4 ; =PMi_DummyCallback
+ add r3, sp, #0x0
+ bl PM_SetBackLightAsync
+_020D5280: ; 0x020D5280
+ cmp r0, #0x0
+ addne sp, sp, #0x4
+ ldmneia sp!, {lr}
+ bxne lr
+ bl PMi_WaitBusy
+_020D5294: ; 0x020D5294
+ ldr r0, [sp, #0x0]
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+ .balign 4
+_020D52A4: .word PMi_DummyCallback
+
+ arm_func_start PM_SetBackLightAsync
+PM_SetBackLightAsync:
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ cmp r0, #0x0
+ mov r12, #0x0
+ bne _020D52D0
+ cmp r1, #0x1
+ moveq r12, #0x6
+ cmp r1, #0x0
+ moveq r12, #0x7
+ b _020D5304
+_020D52D0:
+ cmp r0, #0x1
+ bne _020D52EC
+ cmp r1, #0x1
+ moveq r12, #0x4
+ cmp r1, #0x0
+ moveq r12, #0x5
+ b _020D5304
+_020D52EC:
+ cmp r0, #0x2
+ bne _020D5304
+ cmp r1, #0x1
+ moveq r12, #0x8
+ cmp r1, #0x0
+ moveq r12, #0x9
+_020D5304:
+ cmp r12, #0x0
+ addeq sp, sp, #0x4
+ ldreq r0, _020D5334 ; =0x0000FFFF
+ ldmeqia sp!, {lr}
+ bxeq lr
+ mov r1, r2
+ mov r0, r12
+ mov r2, r3
+ bl PM_SendUtilityCommandAsync
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+ .balign 4
+_020D5334: .word 0x0000FFFF
+
+ arm_func_start PMi_SetLED
+PMi_SetLED: ; 0x020D5338
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldr r1, _020D5370 ; =PMi_DummyCallback
+ add r2, sp, #0x0
+ bl PMi_SetLEDAsync
+_020D534C: ; 0x020D534C
+ cmp r0, #0x0
+ addne sp, sp, #0x4
+ ldmneia sp!, {lr}
+ bxne lr
+ bl PMi_WaitBusy
+_020D5360: ; 0x020D5360
+ ldr r0, [sp, #0x0]
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+ .balign 4
+_020D5370: .word PMi_DummyCallback
+
+ arm_func_start PMi_SetLEDAsync
+PMi_SetLEDAsync:
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ cmp r0, #0x1
+ beq _020D5398
+ cmp r0, #0x2
+ beq _020D53A8
+ cmp r0, #0x3
+ beq _020D53A0
+ b _020D53B0
+_020D5398:
+ mov r0, #0x1
+ b _020D53B4
+_020D53A0:
+ mov r0, #0x2
+ b _020D53B4
+_020D53A8:
+ mov r0, #0x3
+ b _020D53B4
+_020D53B0:
+ mov r0, #0x0
+_020D53B4:
+ cmp r0, #0x0
+ addeq sp, sp, #0x4
+ ldreq r0, _020D53D8 ; =0x0000FFFF
+ ldmeqia sp!, {lr}
+ bxeq lr
+ bl PM_SendUtilityCommandAsync
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+ .balign 4
+_020D53D8: .word 0x0000FFFF
+
+ arm_func_start FUN_020D53DC
+FUN_020D53DC: ; 0x020D53DC
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldr r2, _020D5414 ; =PMi_DummyCallback
+ add r3, sp, #0x0
+ bl PMi_WriteRegisterAsync
+_020D53F0: ; 0x020D53F0
+ cmp r0, #0x0
+ addne sp, sp, #0x4
+ ldmneia sp!, {lr}
+ bxne lr
+ bl PMi_WaitBusy
+_020D5404: ; 0x020D5404
+ ldr r0, [sp, #0x0]
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+ .balign 4
+_020D5414: .word PMi_DummyCallback
+
+ arm_func_start PMi_WriteRegisterAsync
+PMi_WriteRegisterAsync:
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0x4
+ mov r7, r0
+ mov r4, r1
+ mov r6, r2
+ mov r5, r3
+ bl PMi_Lock
+_020D5434: ; 0x020D5434
+ cmp r0, #0x0
+ addeq sp, sp, #0x4
+ moveq r0, #0x1
+ ldmeqia sp!, {r4-r7,lr}
+ bxeq lr
+ ldr r0, _020D5488 ; =0x02006400
+ ldr r1, _020D548C ; =0x021D54E4
+ and r2, r7, #0xff
+ orr r0, r2, r0
+ str r6, [r1, #0x4]
+ str r5, [r1, #0x8]
+ bl PMi_SendPxiData
+ ldr r0, _020D5490 ; =0x0000FFFF
+ ldr r1, _020D5494 ; =0x01010000
+ and r0, r4, r0
+ orr r0, r0, r1
+ bl PMi_SendPxiData
+_020D5478: ; 0x020D5478
+ mov r0, #0x0
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r7,lr}
+ bx lr
+ .balign 4
+_020D5488: .word 0x02006400
+_020D548C: .word 0x021D54E4
+_020D5490: .word 0x0000FFFF
+_020D5494: .word 0x01010000
+
+ arm_func_start PMi_ReadRegister
+PMi_ReadRegister:
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldr r2, _020D54D0 ; =PMi_DummyCallback
+ add r3, sp, #0x0
+ bl PMi_ReadRegisterAsync
+_020D54AC: ; 0x020D54AC
+ cmp r0, #0x0
+ addne sp, sp, #0x4
+ ldmneia sp!, {lr}
+ bxne lr
+ bl PMi_WaitBusy
+_020D54C0: ; 0x020D54C0
+ ldr r0, [sp, #0x0]
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+ .balign 4
+_020D54D0: .word PMi_DummyCallback
+
+ arm_func_start PMi_ReadRegisterAsync
+PMi_ReadRegisterAsync:
+ stmdb sp!, {r4-r8,lr}
+ mov r7, r0
+ mov r6, r1
+ mov r5, r2
+ mov r4, r3
+ bl PMi_Lock
+_020D54EC: ; 0x020D54EC
+ cmp r0, #0x0
+ moveq r0, #0x1
+ ldmeqia sp!, {r4-r8,lr}
+ bxeq lr
+ ldr ip, _020D553C ; =0x021D550C
+ ldr r1, _020D5540 ; =0x021D54E4
+ ldr r0, _020D5544 ; =0x03006500
+ and r2, r7, #0xff
+ mov lr, r7, lsl #0x3
+ mov r8, #0x0
+ ldr r3, _020D5548 ; =0x021D5510
+ strh r8, [r12, lr]
+ orr r0, r2, r0
+ str r5, [r1, #0x4]
+ str r4, [r1, #0x8]
+ str r6, [r3, r7, lsl #0x3]
+ bl PMi_SendPxiData
+ mov r0, r8
+ ldmia sp!, {r4-r8,lr}
+ bx lr
+ .balign 4
+_020D553C: .word 0x021D550C
+_020D5540: .word 0x021D54E4
+_020D5544: .word 0x03006500
+_020D5548: .word 0x021D5510
+
+ arm_func_start PM_SendUtilityCommandAsync
+PM_SendUtilityCommandAsync: ; 0x020D554C
+ stmdb sp!, {r4-r6,lr}
+ mov r4, r0
+ mov r6, r1
+ mov r5, r2
+ bl PMi_Lock
+_020D5560: ; 0x020D5560
+ cmp r0, #0x0
+ moveq r0, #0x1
+ ldmeqia sp!, {r4-r6,lr}
+ bxeq lr
+ mov r2, r4, lsr #0x10
+ ldr r1, _020D55B0 ; =0x021D54E4
+ ldr r0, _020D55B4 ; =0x02006300
+ and r2, r2, #0xff
+ orr r0, r2, r0
+ str r6, [r1, #0x4]
+ str r5, [r1, #0x8]
+ bl PMi_SendPxiData
+ ldr r0, _020D55B8 ; =0x0000FFFF
+ ldr r1, _020D55BC ; =0x01010000
+ and r0, r4, r0
+ orr r0, r0, r1
+ bl PMi_SendPxiData
+_020D55A4: ; 0x020D55A4
+ mov r0, #0x0
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+ .balign 4
+_020D55B0: .word 0x021D54E4
+_020D55B4: .word 0x02006300
+_020D55B8: .word 0x0000FFFF
+_020D55BC: .word 0x01010000
+
+ arm_func_start PMi_SendSleepStart
+PMi_SendSleepStart: ; 0x020D55C0
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ mov r5, r0
+ mov r4, r1
+ bl PMi_Lock
+_020D55D4: ; 0x020D55D4
+ cmp r0, #0x0
+ addeq sp, sp, #0x4
+ moveq r0, #0x1
+ ldmeqia sp!, {r4-r5,lr}
+ bxeq lr
+ ldr r1, _020D5660 ; =0x021D54D0
+ mov r2, #0x0
+ ldr r0, _020D5664 ; =0x03006000
+ str r2, [r1, #0x0]
+ bl PMi_SendPxiData
+ ldr r1, _020D5660 ; =0x021D54D0
+_020D5600:
+ ldr r0, [r1, #0x0]
+ cmp r0, #0x0
+ beq _020D5600
+ mov r0, #0x0
+ ldr ip, _020D5668 ; =0x021D54D4
+ str r0, [r1, #0x0]
+ mov r2, r0
+ mov r3, r0
+ mov r1, #0x2
+ str r0, [r12, #0x0]
+ bl PMi_SetLCDPower
+ ldr r0, _020D566C ; =0x02006100
+ and r1, r5, #0xff
+ orr r0, r1, r0
+ bl PMi_SendPxiData
+ ldr r0, _020D5670 ; =0x0000FFFF
+ ldr r1, _020D5674 ; =0x01010000
+ and r0, r4, r0
+ orr r0, r0, r1
+ bl PMi_SendPxiData
+_020D5650: ; 0x020D5650
+ mov r0, #0x0
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,lr}
+ bx lr
+ .balign 4
+_020D5660: .word 0x021D54D0
+_020D5664: .word 0x03006000
+_020D5668: .word 0x021D54D4
+_020D566C: .word 0x02006100
+_020D5670: .word 0x0000FFFF
+_020D5674: .word 0x01010000
+
+ arm_func_start PMi_CommonCallback
+PMi_CommonCallback: ; 0x020D5678
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ cmp r2, #0x0
+ beq _020D569C
+ mov r0, #0x2
+ bl PMi_CallCallbackAndUnlock
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+_020D569C:
+ and r0, r1, #0x7f00
+ mov r0, r0, lsl #0x8
+ and r1, r1, #0xff
+ mov r2, r0, lsr #0x10
+ mov r0, r1, lsl #0x10
+ cmp r2, #0x70
+ mov r0, r0, lsr #0x10
+ blo _020D56FC
+ cmp r2, #0x74
+ bhi _020D56FC
+ ldr r1, _020D5750 ; =0x021D5510
+ sub r2, r2, #0x70
+ and r0, r0, #0xff
+ ldr r1, [r1, r2, lsl #0x3]
+ mov r0, r0, lsl #0x10
+ mov r0, r0, lsr #0x10
+ cmp r1, #0x0
+ strneh r0, [r1, #0x0]
+ mov r1, r2, lsl #0x3
+ ldr r0, _020D5754 ; =0x021D550C
+ mov r2, #0x1
+ strh r2, [r0, r1]
+ mov r0, #0x0
+ b _020D5740
+_020D56FC:
+ cmp r2, #0x60
+ ldreq r1, _020D5758 ; =0x021D54D0
+ moveq r2, #0x1
+ streq r2, [r1, #0x0]
+ beq _020D5740
+ cmp r2, #0x62
+ ldreq r1, _020D575C ; =0x021D54D4
+ moveq r2, #0x1
+ streq r2, [r1, #0x0]
+ beq _020D5740
+ cmp r2, #0x67
+ bne _020D5740
+ ldr r1, _020D5760 ; =0x021D54E4
+ ldr r1, [r1, #0xc]
+ cmp r1, #0x0
+ strne r0, [r1, #0x0]
+ mov r0, #0x0
+_020D5740:
+ bl PMi_CallCallbackAndUnlock
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+ .balign 4
+_020D5750: .word 0x021D5510
+_020D5754: .word 0x021D550C
+_020D5758: .word 0x021D54D0
+_020D575C: .word 0x021D54D4
+_020D5760: .word 0x021D54E4
+
+ arm_func_start PM_Init
+PM_Init: ; 0x020D5764
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ ldr r1, _020D580C ; =0x021D54CC
+ ldrh r0, [r1, #0x0]
+ cmp r0, #0x0
+ addne sp, sp, #0x4
+ ldmneia sp!, {r4-r5,lr}
+ bxne lr
+ ldr r0, _020D5810 ; =0x021D54E4
+ mov r2, #0x0
+ mov r3, #0x1
+ strh r3, [r1, #0x0]
+ str r2, [r0, #0x0]
+ str r2, [r0, #0x4]
+ bl PXI_Init
+ mov r5, #0x8
+ mov r4, #0x1
+_020D57A8:
+ mov r0, r5
+ mov r1, r4
+ bl PXI_IsCallbackReady
+_020D57B4: ; 0x020D57B4
+ cmp r0, #0x0
+ beq _020D57A8
+ ldr r1, _020D5814 ; =PMi_CommonCallback
+ mov r0, #0x8
+ bl PXI_SetFifoRecvCallback
+ mov r3, #0x0
+ ldr r0, _020D5818 ; =0x021D550C
+ mov r2, r3
+_020D57D4:
+ mov r1, r3, lsl #0x3
+ add r3, r3, #0x1
+ strh r2, [r0, r1]
+ cmp r3, #0x5
+ blt _020D57D4
+ ldr r0, _020D581C ; =0x021D54F4
+ bl OS_InitMutex
+ ldr r1, _020D5820 ; =0x027FFC3C
+ ldr r0, _020D5824 ; =0x021D54DC
+ ldr r1, [r1, #0x0]
+ str r1, [r0, #0x0]
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,lr}
+ bx lr
+ .balign 4
+_020D580C: .word 0x021D54CC
+_020D5810: .word 0x021D54E4
+_020D5814: .word PMi_CommonCallback
+_020D5818: .word 0x021D550C
+_020D581C: .word 0x021D54F4
+_020D5820: .word 0x027FFC3C
+_020D5824: .word 0x021D54DC
+
+ arm_func_start PMi_CallCallbackAndUnlock
+PMi_CallCallbackAndUnlock: ; 0x020D5828
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldr r2, _020D5878 ; =0x021D54E4
+ ldr r1, [r2, #0x0]
+ ldr r12, [r2, #0x4]
+ cmp r1, #0x0
+ movne r3, #0x0
+ strne r3, [r2, #0x0]
+ cmp r12, #0x0
+ addeq sp, sp, #0x4
+ ldr r1, [r2, #0x8]
+ ldmeqia sp!, {lr}
+ bxeq lr
+ ldr r2, _020D5878 ; =0x021D54E4
+ mov r3, #0x0
+ str r3, [r2, #0x4]
+ blx r12
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+ .balign 4
+_020D5878: .word 0x021D54E4
+
+ arm_func_start PMi_DummyCallback
+PMi_DummyCallback: ; 0x020D587C
+ str r0, [r1, #0x0]
+ bx lr
+
+ arm_func_start PMi_WaitBusy
+PMi_WaitBusy:
+ stmdb sp!, {r4,lr}
+ ldr r4, _020D58C0 ; =0x021D54E4
+ ldr r0, [r4, #0x0]
+ cmp r0, #0x0
+ ldmeqia sp!, {r4,lr}
+ bxeq lr
+_020D589C:
+ bl OS_GetCpsrIrq
+ cmp r0, #0x80
+ bne _020D58AC
+ bl PXIi_HandlerRecvFifoNotEmpty
+_020D58AC:
+ ldr r0, [r4, #0x0]
+ cmp r0, #0x0
+ bne _020D589C
+ ldmia sp!, {r4,lr}
+ bx lr
+ .balign 4
+_020D58C0: .word 0x021D54E4
+
+ arm_func_start PMi_Lock
+PMi_Lock:
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ bl OS_DisableInterrupts
+ ldr r1, _020D5910 ; =0x021D54E4
+ ldr r2, [r1, #0x0]
+ cmp r2, #0x0
+ beq _020D58F4
+ bl OS_RestoreInterrupts
+ add sp, sp, #0x4
+ mov r0, #0x0
+ ldmia sp!, {lr}
+ bx lr
+_020D58F4:
+ mov r2, #0x1
+ str r2, [r1, #0x0]
+ bl OS_RestoreInterrupts
+ mov r0, #0x1
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+ .balign 4
+_020D5910: .word 0x021D54E4
diff --git a/arm9/asm/PXI_arm9.s b/arm9/asm/PXI_arm9.s
new file mode 100644
index 00000000..ab3af5de
--- /dev/null
+++ b/arm9/asm/PXI_arm9.s
@@ -0,0 +1,266 @@
+ .include "asm/macros.inc"
+ .include "global.inc"
+ .section .text
+
+ arm_func_start PXI_Init
+PXI_Init: ; 0x020CFBB0
+ ldr ip, _020CFBB8 ; =PXI_InitFifo
+ bx r12
+ .balign 4
+_020CFBB8: .word PXI_InitFifo
+
+ arm_func_start PXIi_HandlerRecvFifoNotEmpty
+PXIi_HandlerRecvFifoNotEmpty: ; 0x020CFBBC
+ stmdb sp!, {r4-r10,lr}
+ sub sp, sp, #0x8
+ ldr sl, _020CFCD4 ; =0x04000184
+ ldr r5, _020CFCD8 ; =0x021D5368
+ ldr r4, _020CFCDC ; =0x04000188
+ mov r7, #0x4100000
+ mov r6, #0x0
+ mvn r8, #0x3
+ mvn r9, #0x2
+_020CFBE0:
+ ldrh r0, [r10, #0x0]
+ ands r0, r0, #0x4000
+ ldrneh r0, [r10, #0x0]
+ movne r1, r9
+ orrne r0, r0, #0xc000
+ strneh r0, [r10, #0x0]
+ bne _020CFC28
+ bl OS_DisableInterrupts
+ ldrh r1, [r10, #0x0]
+ ands r1, r1, #0x100
+ beq _020CFC18
+ bl OS_RestoreInterrupts
+ mov r1, r8
+ b _020CFC28
+_020CFC18:
+ ldr r1, [r7, #0x0]
+ str r1, [sp, #0x0]
+ bl OS_RestoreInterrupts
+ mov r1, r6
+_020CFC28:
+ cmp r1, r8
+ addeq sp, sp, #0x8
+ ldmeqia sp!, {r4-r10,lr}
+ bxeq lr
+ mvn r0, #0x2
+ cmp r1, r0
+ beq _020CFBE0
+ ldr r1, [sp, #0x0]
+ mov r0, r1, lsl #0x1b
+ movs r0, r0, lsr #0x1b
+ beq _020CFBE0
+ ldr r3, [r5, r0, lsl #0x2]
+ cmp r3, #0x0
+ beq _020CFC74
+ mov r2, r1, lsl #0x1a
+ mov r1, r1, lsr #0x6
+ mov r2, r2, lsr #0x1f
+ blx r3
+ b _020CFBE0
+_020CFC74:
+ mov r0, r1, lsl #0x1a
+ movs r0, r0, lsr #0x1f
+ bne _020CFBE0
+ orr r0, r1, #0x20
+ str r0, [sp, #0x0]
+ ldrh r0, [r10, #0x0]
+ ands r0, r0, #0x4000
+ ldrneh r0, [r10, #0x0]
+ orrne r0, r0, #0xc000
+ strneh r0, [r10, #0x0]
+ bne _020CFBE0
+ bl OS_DisableInterrupts
+ ldrh r1, [r10, #0x0]
+ ands r1, r1, #0x2
+ beq _020CFCB8
+ bl OS_RestoreInterrupts
+ b _020CFBE0
+_020CFCB8:
+ ldr r1, [sp, #0x0]
+ str r1, [r4, #0x0]
+ bl OS_RestoreInterrupts
+ b _020CFBE0
+_020CFCC8:
+ add sp, sp, #0x8
+ ldmia sp!, {r4-r10, lr}
+ bx lr
+_020CFCD4: .word 0x04000184
+_020CFCD8: .word 0x021D5368
+_020CFCDC: .word 0x04000188
+
+ arm_func_start PXI_SendWordByFifo
+PXI_SendWordByFifo:
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldr r3, [sp, #0x0]
+ and r0, r0, #0x1f
+ bic r3, r3, #0x1f
+ orr r12, r3, r0
+ bic r3, r12, #0x20
+ and r0, r2, #0x1
+ orr r3, r3, r0, lsl #0x5
+ str r12, [sp, #0x0]
+ and r2, r3, #0x3f
+ bic r0, r1, #0xfc000000
+ orr r0, r2, r0, lsl #0x6
+ str r3, [sp, #0x0]
+ ldr r2, _020CFD8C ; =0x04000184
+ str r0, [sp, #0x0]
+ ldrh r0, [r2, #0x0]
+ ands r0, r0, #0x4000
+ ldrneh r1, [r2, #0x0]
+ addne sp, sp, #0x4
+ mvnne r0, #0x0
+ orrne r1, r1, #0xc000
+ strneh r1, [r2, #0x0]
+ ldmneia sp!, {lr}
+ bxne lr
+ bl OS_DisableInterrupts
+ ldr r1, _020CFD8C ; =0x04000184
+ ldrh r1, [r1, #0x0]
+ ands r1, r1, #0x2
+ beq _020CFD6C
+ bl OS_RestoreInterrupts
+ add sp, sp, #0x4
+ mvn r0, #0x1
+ ldmia sp!, {lr}
+ bx lr
+_020CFD6C:
+ ldr r2, [sp, #0x0]
+ ldr r1, _020CFD90 ; =0x04000188
+ str r2, [r1, #0x0]
+ bl OS_RestoreInterrupts
+_020CFD7C:
+ mov r0, #0x0
+ add sp, sp, #0x4
+ ldmfd sp!, {lr}
+ bx lr
+_020CFD8C: .word 0x04000184
+_020CFD90: .word 0x04000188
+
+ arm_func_start PXI_IsCallbackReady
+PXI_IsCallbackReady:
+ ldr r2, _020CFDB8 ; =0x027FFC00
+ mov r3, #0x1
+ add r1, r2, r1, lsl #0x2
+ mov r2, r3, lsl r0
+ ldr r0, [r1, #0x388]
+ ands r0, r2, r0
+ moveq r3, #0x0
+ mov r0, r3
+ bx lr
+ .balign 4
+_020CFDB8: .word 0x027FFC00
+
+ arm_func_start PXI_SetFifoRecvCallback
+PXI_SetFifoRecvCallback: ; 0x020CFDBC
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ mov r4, r0
+ mov r5, r1
+ bl OS_DisableInterrupts
+ ldr r1, _020CFE20 ; =0x021D5368
+ cmp r5, #0x0
+ str r5, [r1, r4, lsl #0x2]
+ beq _020CFDF8
+ ldr r3, _020CFE24 ; =0x027FFC00
+ mov r1, #0x1
+ ldr r2, [r3, #0x388]
+ orr r1, r2, r1, lsl r4
+ str r1, [r3, #0x388]
+ b _020CFE10
+_020CFDF8:
+ ldr r3, _020CFE24 ; =0x027FFC00
+ mov r1, #0x1
+ mvn r1, r1, lsl r4
+ ldr r2, [r3, #0x388]
+ and r1, r2, r1
+ str r1, [r3, #0x388]
+_020CFE10:
+ bl OS_RestoreInterrupts
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,lr}
+ bx lr
+ .balign 4
+_020CFE20: .word 0x021D5368
+_020CFE24: .word 0x027FFC00
+
+ arm_func_start PXI_InitFifo
+PXI_InitFifo: ; 0x020CFE28
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ bl OS_DisableInterrupts
+ ldr r1, _020CFF18 ; =0x021D5364
+ mov r4, r0
+ ldrh r0, [r1, #0x0]
+ cmp r0, #0x0
+ bne _020CFF04
+ mov r2, #0x1
+ ldr r0, _020CFF1C ; =0x027FFC00
+ strh r2, [r1, #0x0]
+ mov r2, #0x0
+ str r2, [r0, #0x388]
+ ldr r0, _020CFF20 ; =0x021D5368
+ mov r1, r2
+_020CFE64:
+ str r1, [r0, r2, lsl #0x2]
+ add r2, r2, #0x1
+ cmp r2, #0x20
+ blt _020CFE64
+ ldr r2, _020CFF24 ; =0x0000C408
+ ldr r1, _020CFF28 ; =0x04000184
+ mov r0, #0x40000
+ strh r2, [r1, #0x0]
+ bl OS_ResetRequestIrqMask
+ ldr r1, _020CFF2C ; =PXIi_HandlerRecvFifoNotEmpty
+ mov r0, #0x40000
+ bl OS_SetIrqFunction
+ mov r0, #0x40000
+ bl OS_EnableIrqMask
+ mov r12, #0x0
+ ldr r3, _020CFF30 ; =0x04000180
+ mov r1, r12
+ mov r2, #0x3e8
+_020CFEAC:
+ ldrh r0, [r3, #0x0]
+ ands lr, r0, #0xf
+ mov r0, lr, lsl #0x8
+ strh r0, [r3, #0x0]
+ bne _020CFEC8
+ cmp r12, #0x4
+ bgt _020CFF04
+_020CFEC8:
+ ldrh r0, [r3, #0x0]
+ mov r5, r2
+ and r0, r0, #0xf
+ cmp r0, lr
+ bne _020CFEFC
+_020CFEDC:
+ cmp r5, #0x0
+ movle r12, r1
+ ble _020CFEFC
+ ldrh r0, [r3, #0x0]
+ sub r5, r5, #0x1
+ and r0, r0, #0xf
+ cmp r0, lr
+ beq _020CFEDC
+_020CFEFC:
+ add r12, r12, #0x1
+ b _020CFEAC
+_020CFF04:
+ mov r0, r4
+ bl OS_RestoreInterrupts
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,lr}
+ bx lr
+ .balign 4
+_020CFF18: .word 0x021D5364
+_020CFF1C: .word 0x027FFC00
+_020CFF20: .word 0x021D5368
+_020CFF24: .word 0x0000C408
+_020CFF28: .word 0x04000184
+_020CFF2C: .word PXIi_HandlerRecvFifoNotEmpty
+_020CFF30: .word 0x04000180
diff --git a/arm9/asm/RTC_arm9.s b/arm9/asm/RTC_arm9.s
new file mode 100644
index 00000000..8116f8de
--- /dev/null
+++ b/arm9/asm/RTC_arm9.s
@@ -0,0 +1,1028 @@
+ .include "asm/macros.inc"
+ .include "global.inc"
+
+ .text
+
+ arm_func_start RtcWaitBusy
+RtcWaitBusy: ; 0x020D5914
+ ldr ip, _020D5928 ; =0x021D5538
+_020D5918:
+ ldr r0, [r12, #0x0]
+ cmp r0, #0x1
+ beq _020D5918
+ bx lr
+ .balign 4
+_020D5928: .word 0x021D5538
+
+ arm_func_start RtcGetResultCallback
+RtcGetResultCallback: ; 0x020D592C
+ ldr r1, _020D5938 ; =0x021D5538
+ str r0, [r1, #0x20]
+ bx lr
+ .balign 4
+_020D5938: .word 0x021D5538
+
+ arm_func_start RtcBCD2HEX
+RtcBCD2HEX: ; 0x020D593C
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ mov r5, #0x0
+ mov r3, r5
+ mov r2, r5
+_020D5950:
+ mov r1, r0, lsr r2
+ and r1, r1, #0xf
+ cmp r1, #0xa
+ addcs sp, sp, #0x4
+ movcs r0, #0x0
+ ldmcsia sp!, {r4-r5,lr}
+ bxcs lr
+ add r3, r3, #0x1
+ cmp r3, #0x8
+ add r2, r2, #0x4
+ blt _020D5950
+ mov r12, #0x0
+ mov lr, r12
+ mov r4, #0x1
+ mov r2, #0xa
+_020D598C:
+ mov r1, r0, lsr lr
+ and r3, r1, #0xf
+ mul r1, r4, r2
+ mla r5, r4, r3, r5
+ add r12, r12, #0x1
+ mov r4, r1
+ cmp r12, #0x8
+ add lr, lr, #0x4
+ blt _020D598C
+ mov r0, r5
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,lr}
+ bx lr
+
+ arm_func_start RtcCommonCallback
+RtcCommonCallback: ; 0x020D59C0
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ cmp r2, #0x0
+ beq _020D5A30
+ ldr r0, _020D5F30 ; =0x021D5538
+ ldr r2, _020D5F30 ; =0x021D5538
+ ldr r1, [r0, #0x18]
+ ldr r4, [r2, #0x4]
+ cmp r1, #0x0
+ movne r1, #0x0
+ strne r1, [r0, #0x18]
+ ldr r0, _020D5F30 ; =0x021D5538
+ ldr r1, [r0, #0x0]
+ cmp r1, #0x0
+ movne r1, #0x0
+ strne r1, [r0, #0x0]
+ cmp r4, #0x0
+ addeq sp, sp, #0x4
+ ldmeqia sp!, {r4-r5,lr}
+ bxeq lr
+ ldr r1, [r2, #0x10]
+ mov r3, #0x0
+ mov r0, #0x6
+ str r3, [r2, #0x4]
+ blx r4
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,lr}
+ bx lr
+_020D5A30:
+ and r0, r1, #0x7f00
+ mov r0, r0, lsr #0x8
+ and r0, r0, #0xff
+ cmp r0, #0x30
+ and r2, r1, #0xff
+ bne _020D5A70
+ ldr r0, _020D5F30 ; =0x021D5538
+ ldr r0, [r0, #0x1c]
+ cmp r0, #0x0
+ addeq sp, sp, #0x4
+ ldmeqia sp!, {r4-r5,lr}
+ bxeq lr
+ blx r0
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,lr}
+ bx lr
+_020D5A70:
+ cmp r2, #0x0
+ bne _020D5E88
+ ldr r0, _020D5F30 ; =0x021D5538
+ mov r5, #0x0
+ ldr r1, [r0, #0x14]
+ cmp r1, #0xf
+ addls pc, pc, r1, lsl #0x2
+ b _020D5E74
+_020D5A90:
+ b _020D5AD0
+_020D5A94:
+ b _020D5B24
+_020D5A98:
+ b _020D5B74
+_020D5A9C:
+ b _020D5ED0
+_020D5AA0:
+ b _020D5ED0
+_020D5AA4:
+ b _020D5ED0
+_020D5AA8:
+ b _020D5C1C
+_020D5AAC:
+ b _020D5C4C
+_020D5AB0:
+ b _020D5C70
+_020D5AB4:
+ b _020D5D14
+_020D5AB8:
+ b _020D5DC8
+_020D5ABC:
+ b _020D5ED0
+_020D5AC0:
+ b _020D5ED0
+_020D5AC4:
+ b _020D5ED0
+_020D5AC8:
+ b _020D5ED0
+_020D5ACC:
+ b _020D5ED0
+_020D5AD0:
+ ldr r1, _020D5F34 ; =0x027FFDE8
+ ldr r4, [r0, #0x8]
+ ldrb r0, [r1, #0x0]
+ bl RtcBCD2HEX
+ ldr r1, _020D5F34 ; =0x027FFDE8
+ str r0, [r4, #0x0]
+ ldr r0, [r1, #0x0]
+ mov r0, r0, lsl #0x13
+ mov r0, r0, lsr #0x1b
+ bl RtcBCD2HEX
+ ldr r1, _020D5F34 ; =0x027FFDE8
+ str r0, [r4, #0x4]
+ ldr r0, [r1, #0x0]
+ mov r0, r0, lsl #0xa
+ mov r0, r0, lsr #0x1a
+ bl RtcBCD2HEX
+ str r0, [r4, #0x8]
+ mov r0, r4
+ bl RTC_GetDayOfWeek
+ str r0, [r4, #0xc]
+ b _020D5ED0
+_020D5B24:
+ ldr r1, _020D5F38 ; =0x027FFDEC
+ ldr r4, [r0, #0x8]
+ ldr r0, [r1, #0x0]
+ mov r0, r0, lsl #0x1a
+ mov r0, r0, lsr #0x1a
+ bl RtcBCD2HEX
+ ldr r1, _020D5F38 ; =0x027FFDEC
+ str r0, [r4, #0x0]
+ ldr r0, [r1, #0x0]
+ mov r0, r0, lsl #0x11
+ mov r0, r0, lsr #0x19
+ bl RtcBCD2HEX
+ ldr r1, _020D5F38 ; =0x027FFDEC
+ str r0, [r4, #0x4]
+ ldr r0, [r1, #0x0]
+ mov r0, r0, lsl #0x9
+ mov r0, r0, lsr #0x19
+ bl RtcBCD2HEX
+ str r0, [r4, #0x8]
+ b _020D5ED0
+_020D5B74:
+ ldr r1, _020D5F34 ; =0x027FFDE8
+ ldr r4, [r0, #0x8]
+ ldr r0, [r1, #0x0]
+ and r0, r0, #0xff
+ bl RtcBCD2HEX
+ ldr r1, _020D5F34 ; =0x027FFDE8
+ str r0, [r4, #0x0]
+ ldr r0, [r1, #0x0]
+ mov r0, r0, lsl #0x13
+ mov r0, r0, lsr #0x1b
+ bl RtcBCD2HEX
+ ldr r1, _020D5F34 ; =0x027FFDE8
+ str r0, [r4, #0x4]
+ ldr r0, [r1, #0x0]
+ mov r0, r0, lsl #0xa
+ mov r0, r0, lsr #0x1a
+ bl RtcBCD2HEX
+ str r0, [r4, #0x8]
+ mov r0, r4
+ bl RTC_GetDayOfWeek
+ ldr r1, _020D5F38 ; =0x027FFDEC
+ str r0, [r4, #0xc]
+ ldr r0, [r1, #0x0]
+ ldr r1, _020D5F30 ; =0x021D5538
+ mov r0, r0, lsl #0x1a
+ mov r0, r0, lsr #0x1a
+ ldr r4, [r1, #0xc]
+ bl RtcBCD2HEX
+ ldr r1, _020D5F38 ; =0x027FFDEC
+ str r0, [r4, #0x0]
+ ldr r0, [r1, #0x0]
+ mov r0, r0, lsl #0x11
+ mov r0, r0, lsr #0x19
+ bl RtcBCD2HEX
+ ldr r1, _020D5F38 ; =0x027FFDEC
+ str r0, [r4, #0x4]
+ ldr r0, [r1, #0x0]
+ mov r0, r0, lsl #0x9
+ mov r0, r0, lsr #0x19
+ bl RtcBCD2HEX
+ str r0, [r4, #0x8]
+ b _020D5ED0
+_020D5C1C:
+ ldr r1, _020D5F3C ; =0x027FFDEA
+ ldr r2, [r0, #0x8]
+ ldrh r0, [r1, #0x0]
+ mov r0, r0, lsl #0x1c
+ mov r0, r0, lsr #0x1c
+ cmp r0, #0x4
+ bne _020D5C44
+ mov r0, #0x1
+ str r0, [r2, #0x0]
+ b _020D5ED0
+_020D5C44:
+ str r5, [r2, #0x0]
+ b _020D5ED0
+_020D5C4C:
+ ldr r1, _020D5F3C ; =0x027FFDEA
+ ldr r2, [r0, #0x8]
+ ldrh r0, [r1, #0x0]
+ mov r0, r0, lsl #0x19
+ movs r0, r0, lsr #0x1f
+ movne r0, #0x1
+ strne r0, [r2, #0x0]
+ streq r5, [r2, #0x0]
+ b _020D5ED0
+_020D5C70:
+ ldr r1, _020D5F38 ; =0x027FFDEC
+ ldr r4, [r0, #0x8]
+ ldr r0, [r1, #0x0]
+ mov r0, r0, lsl #0x1d
+ mov r0, r0, lsr #0x1d
+ str r0, [r4, #0x0]
+ ldr r0, [r1, #0x0]
+ mov r0, r0, lsl #0x12
+ mov r0, r0, lsr #0x1a
+ bl RtcBCD2HEX
+ ldr r1, _020D5F38 ; =0x027FFDEC
+ str r0, [r4, #0x4]
+ ldr r0, [r1, #0x0]
+ mov r0, r0, lsl #0x9
+ mov r0, r0, lsr #0x19
+ bl RtcBCD2HEX
+ str r0, [r4, #0x8]
+ mov r1, r5
+ ldr r0, _020D5F38 ; =0x027FFDEC
+ str r1, [r4, #0xc]
+ ldr r0, [r0, #0x0]
+ mov r0, r0, lsl #0x18
+ movs r0, r0, lsr #0x1f
+ ldrne r0, [r4, #0xc]
+ addne r0, r0, #0x1
+ strne r0, [r4, #0xc]
+ ldr r0, _020D5F38 ; =0x027FFDEC
+ ldr r0, [r0, #0x0]
+ mov r0, r0, lsl #0x10
+ movs r0, r0, lsr #0x1f
+ ldrne r0, [r4, #0xc]
+ addne r0, r0, #0x2
+ strne r0, [r4, #0xc]
+ ldr r0, _020D5F38 ; =0x027FFDEC
+ ldr r0, [r0, #0x0]
+ mov r0, r0, lsl #0x8
+ movs r0, r0, lsr #0x1f
+ ldrne r0, [r4, #0xc]
+ addne r0, r0, #0x4
+ strne r0, [r4, #0xc]
+ b _020D5ED0
+_020D5D14:
+ ldr r3, [r0, #0x18]
+ cmp r3, #0x0
+ bne _020D5DC0
+ ldr r1, [r0, #0x8]
+ ldr r1, [r1, #0x0]
+ cmp r1, #0x1
+ bne _020D5D7C
+ ldr r2, _020D5F3C ; =0x027FFDEA
+ ldrh r1, [r2, #0x0]
+ mov r1, r1, lsl #0x1c
+ mov r1, r1, lsr #0x1c
+ cmp r1, #0x4
+ beq _020D5ED0
+ add r1, r3, #0x1
+ str r1, [r0, #0x18]
+ ldrh r0, [r2, #0x0]
+ bic r0, r0, #0xf
+ orr r0, r0, #0x4
+ strh r0, [r2, #0x0]
+ bl RTCi_WriteRawStatus2Async
+_020D5D64: ; 0x020D5D64
+ cmp r0, #0x0
+ moveq r1, r5
+ ldreq r0, _020D5F30 ; =0x021D5538
+ moveq r5, #0x3
+ streq r1, [r0, #0x18]
+ b _020D5ED0
+_020D5D7C:
+ ldr r2, _020D5F3C ; =0x027FFDEA
+ ldrh r1, [r2, #0x0]
+ mov r1, r1, lsl #0x1c
+ movs r1, r1, lsr #0x1c
+ beq _020D5ED0
+ add r1, r3, #0x1
+ str r1, [r0, #0x18]
+ ldrh r0, [r2, #0x0]
+ bic r0, r0, #0xf
+ strh r0, [r2, #0x0]
+ bl RTCi_WriteRawStatus2Async
+_020D5DA8: ; 0x020D5DA8
+ cmp r0, #0x0
+ moveq r1, r5
+ ldreq r0, _020D5F30 ; =0x021D5538
+ moveq r5, #0x3
+ streq r1, [r0, #0x18]
+ b _020D5ED0
+_020D5DC0:
+ str r5, [r0, #0x18]
+ b _020D5ED0
+_020D5DC8:
+ ldr r3, [r0, #0x18]
+ cmp r3, #0x0
+ bne _020D5E6C
+ ldr r1, [r0, #0x8]
+ ldr r1, [r1, #0x0]
+ cmp r1, #0x1
+ bne _020D5E28
+ ldr r2, _020D5F3C ; =0x027FFDEA
+ ldrh r1, [r2, #0x0]
+ mov r1, r1, lsl #0x19
+ movs r1, r1, lsr #0x1f
+ bne _020D5ED0
+ add r1, r3, #0x1
+ str r1, [r0, #0x18]
+ ldrh r0, [r2, #0x0]
+ orr r0, r0, #0x40
+ strh r0, [r2, #0x0]
+ bl RTCi_WriteRawStatus2Async
+_020D5E10: ; 0x020D5E10
+ cmp r0, #0x0
+ moveq r1, r5
+ ldreq r0, _020D5F30 ; =0x021D5538
+ moveq r5, #0x3
+ streq r1, [r0, #0x18]
+ b _020D5ED0
+_020D5E28:
+ ldr r2, _020D5F3C ; =0x027FFDEA
+ ldrh r1, [r2, #0x0]
+ mov r1, r1, lsl #0x19
+ movs r1, r1, lsr #0x1f
+ beq _020D5ED0
+ add r1, r3, #0x1
+ str r1, [r0, #0x18]
+ ldrh r0, [r2, #0x0]
+ bic r0, r0, #0x40
+ strh r0, [r2, #0x0]
+ bl RTCi_WriteRawStatus2Async
+_020D5E54: ; 0x020D5E54
+ cmp r0, #0x0
+ moveq r1, r5
+ ldreq r0, _020D5F30 ; =0x021D5538
+ moveq r5, #0x3
+ streq r1, [r0, #0x18]
+ b _020D5ED0
+_020D5E6C:
+ str r5, [r0, #0x18]
+ b _020D5ED0
+_020D5E74:
+ ldr r0, _020D5F30 ; =0x021D5538
+ mov r1, #0x0
+ str r1, [r0, #0x18]
+ mov r5, #0x4
+ b _020D5ED0
+_020D5E88:
+ ldr r0, _020D5F30 ; =0x021D5538
+ mov r1, #0x0
+ str r1, [r0, #0x18]
+ cmp r2, #0x4
+ addls pc, pc, r2, lsl #0x2
+ b _020D5ECC
+_020D5EA0:
+ b _020D5ECC
+_020D5EA4:
+ b _020D5EB4
+_020D5EA8:
+ b _020D5EBC
+_020D5EAC:
+ b _020D5EC4
+_020D5EB0:
+ b _020D5ECC
+_020D5EB4:
+ mov r5, #0x4
+ b _020D5ED0
+_020D5EBC:
+ mov r5, #0x5
+ b _020D5ED0
+_020D5EC4:
+ mov r5, #0x1
+ b _020D5ED0
+_020D5ECC:
+ mov r5, #0x6
+_020D5ED0:
+ ldr r0, _020D5F30 ; =0x021D5538
+ ldr r1, [r0, #0x18]
+ cmp r1, #0x0
+ addne sp, sp, #0x4
+ ldmneia sp!, {r4-r5,lr}
+ bxne lr
+ ldr r2, _020D5F30 ; =0x021D5538
+ ldr r1, [r0, #0x0]
+ ldr r4, [r2, #0x4]
+ cmp r1, #0x0
+ movne r1, #0x0
+ strne r1, [r0, #0x0]
+ cmp r4, #0x0
+ addeq sp, sp, #0x4
+ ldmeqia sp!, {r4-r5,lr}
+ bxeq lr
+ ldr r1, [r2, #0x10]
+ mov r3, #0x0
+ mov r0, r5
+ str r3, [r2, #0x4]
+ blx r4
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,lr}
+ bx lr
+ .balign 4
+_020D5F30: .word 0x021D5538
+_020D5F34: .word 0x027FFDE8
+_020D5F38: .word 0x027FFDEC
+_020D5F3C: .word 0x027FFDEA
+
+ arm_func_start RTC_GetDateTimeAsync
+RTC_GetDateTimeAsync: ; 0x020D5F40
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0x4
+ mov r7, r0
+ mov r6, r1
+ mov r5, r2
+ mov r4, r3
+ bl OS_DisableInterrupts
+ ldr r1, _020D5FCC ; =0x021D5538
+ ldr r2, [r1, #0x0]
+ cmp r2, #0x0
+ beq _020D5F80
+ bl OS_RestoreInterrupts
+ add sp, sp, #0x4
+ mov r0, #0x1
+ ldmia sp!, {r4-r7,lr}
+ bx lr
+_020D5F80:
+ mov r2, #0x1
+ str r2, [r1, #0x0]
+ bl OS_RestoreInterrupts
+ ldr r0, _020D5FCC ; =0x021D5538
+ mov r2, #0x2
+ mov r1, #0x0
+ str r2, [r0, #0x14]
+ str r1, [r0, #0x18]
+ str r7, [r0, #0x8]
+ str r6, [r0, #0xc]
+ str r5, [r0, #0x4]
+ str r4, [r0, #0x10]
+ bl RTCi_ReadRawDateTimeAsync
+_020D5FB4: ; 0x020D5FB4
+ cmp r0, #0x0
+ movne r0, #0x0
+ moveq r0, #0x3
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r7,lr}
+ bx lr
+ .balign 4
+_020D5FCC: .word 0x021D5538
+
+ arm_func_start RTC_GetTime
+RTC_GetTime: ; 0x020D5FD0
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldr r1, _020D600C ; =RtcGetResultCallback
+ mov r2, #0x0
+ bl RTC_GetTimeAsync
+ ldr r1, _020D6010 ; =0x021D5538
+ cmp r0, #0x0
+ str r0, [r1, #0x20]
+ bne _020D5FF8
+ bl RtcWaitBusy
+_020D5FF8:
+ ldr r0, _020D6010 ; =0x021D5538
+ ldr r0, [r0, #0x20]
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+ .balign 4
+_020D600C: .word RtcGetResultCallback
+_020D6010: .word 0x021D5538
+
+ arm_func_start RTC_GetTimeAsync
+RTC_GetTimeAsync: ; 0x020D6014
+ stmdb sp!, {r4-r6,lr}
+ mov r6, r0
+ mov r5, r1
+ mov r4, r2
+ bl OS_DisableInterrupts
+ ldr r1, _020D608C ; =0x021D5538
+ ldr r2, [r1, #0x0]
+ cmp r2, #0x0
+ beq _020D6048
+ bl OS_RestoreInterrupts
+ mov r0, #0x1
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+_020D6048:
+ mov r2, #0x1
+ str r2, [r1, #0x0]
+ bl OS_RestoreInterrupts
+ ldr r0, _020D608C ; =0x021D5538
+ mov r2, #0x1
+ mov r1, #0x0
+ str r2, [r0, #0x14]
+ str r1, [r0, #0x18]
+ str r6, [r0, #0x8]
+ str r5, [r0, #0x4]
+ str r4, [r0, #0x10]
+ bl RTCi_ReadRawTimeAsync
+_020D6078: ; 0x020D6078
+ cmp r0, #0x0
+ movne r0, #0x0
+ moveq r0, #0x3
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+ .balign 4
+_020D608C: .word 0x021D5538
+
+ arm_func_start RTC_GetDate
+RTC_GetDate: ; 0x020D6090
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldr r1, _020D60CC ; =RtcGetResultCallback
+ mov r2, #0x0
+ bl RTC_GetDateAsync
+ ldr r1, _020D60D0 ; =0x021D5538
+ cmp r0, #0x0
+ str r0, [r1, #0x20]
+ bne _020D60B8
+ bl RtcWaitBusy
+_020D60B8:
+ ldr r0, _020D60D0 ; =0x021D5538
+ ldr r0, [r0, #0x20]
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+ .balign 4
+_020D60CC: .word RtcGetResultCallback
+_020D60D0: .word 0x021D5538
+
+ arm_func_start RTC_GetDateAsync
+RTC_GetDateAsync: ; 0x020D60D4
+ stmdb sp!, {r4-r6,lr}
+ mov r6, r0
+ mov r5, r1
+ mov r4, r2
+ bl OS_DisableInterrupts
+ ldr r1, _020D6148 ; =0x021D5538
+ ldr r2, [r1, #0x0]
+ cmp r2, #0x0
+ beq _020D6108
+ bl OS_RestoreInterrupts
+ mov r0, #0x1
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+_020D6108:
+ mov r2, #0x1
+ str r2, [r1, #0x0]
+ bl OS_RestoreInterrupts
+ ldr r0, _020D6148 ; =0x021D5538
+ mov r1, #0x0
+ str r1, [r0, #0x14]
+ str r1, [r0, #0x18]
+ str r6, [r0, #0x8]
+ str r5, [r0, #0x4]
+ str r4, [r0, #0x10]
+ bl RTCi_ReadRawDateAsync
+_020D6134: ; 0x020D6134
+ cmp r0, #0x0
+ movne r0, #0x0
+ moveq r0, #0x3
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+ .balign 4
+_020D6148: .word 0x021D5538
+
+ arm_func_start RTC_Init
+RTC_Init: ; 0x020D614C
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ ldr r1, _020D61C8 ; =0x021D5534
+ ldrh r0, [r1, #0x0]
+ cmp r0, #0x0
+ addne sp, sp, #0x4
+ ldmneia sp!, {r4-r5,lr}
+ bxne lr
+ ldr r0, _020D61CC ; =0x021D5538
+ mov r2, #0x0
+ mov r3, #0x1
+ strh r3, [r1, #0x0]
+ str r2, [r0, #0x0]
+ str r2, [r0, #0x4]
+ str r2, [r0, #0x1c]
+ str r2, [r0, #0x8]
+ str r2, [r0, #0xc]
+ bl PXI_Init
+ mov r5, #0x5
+ mov r4, #0x1
+_020D619C:
+ mov r0, r5
+ mov r1, r4
+ bl PXI_IsCallbackReady
+_020D61A8: ; 0x020D61A8
+ cmp r0, #0x0
+ beq _020D619C
+ ldr r1, _020D61D0 ; =RtcCommonCallback
+ mov r0, #0x5
+ bl PXI_SetFifoRecvCallback
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,lr}
+ bx lr
+ .balign 4
+_020D61C8: .word 0x021D5534
+_020D61CC: .word 0x021D5538
+_020D61D0: .word RtcCommonCallback
+
+ arm_func_start FUN_020D61D4
+FUN_020D61D4: ; 0x020D61D4
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ mov r0, r0, lsl #0x8
+ and r1, r0, #0x7f00
+ mov r0, #0x5
+ mov r2, #0x0
+ bl PXI_SendWordByFifo
+_020D61F0: ; 0x020D61F0
+ cmp r0, #0x0
+ movge r0, #0x1
+ movlt r0, #0x0
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+
+ arm_func_start RTCi_WriteRawStatus2Async
+RTCi_WriteRawStatus2Async:
+ ldr ip, _020D6214 ; =FUN_020D61D4
+ mov r0, #0x27
+ bx r12
+ .balign 4
+_020D6214: .word FUN_020D61D4
+
+ arm_func_start RTCi_ReadRawTimeAsync
+RTCi_ReadRawTimeAsync:
+ ldr ip, _020D6224 ; =FUN_020D61D4
+ mov r0, #0x12
+ bx r12
+ .balign 4
+_020D6224: .word FUN_020D61D4
+
+ arm_func_start RTCi_ReadRawDateAsync
+RTCi_ReadRawDateAsync:
+ ldr ip, _020D6234 ; =FUN_020D61D4
+ mov r0, #0x11
+ bx r12
+ .balign 4
+_020D6234: .word FUN_020D61D4
+
+ arm_func_start RTCi_ReadRawDateTimeAsync
+RTCi_ReadRawDateTimeAsync:
+ ldr ip, _020D6244 ; =FUN_020D61D4
+ mov r0, #0x10
+ bx r12
+ .balign 4
+_020D6244: .word FUN_020D61D4
+
+ arm_func_start RTC_GetDayOfWeek
+RTC_GetDayOfWeek: ; 0x020D6248
+ stmdb sp!, {r4-r6,lr}
+ ldr r1, [r0, #0x4]
+ ldr r2, [r0, #0x0]
+ sub r3, r1, #0x2
+ cmp r3, #0x1
+ add lr, r2, #0x7d0
+ ldr r4, _020D630C ; =0x51EB851F
+ sublt lr, lr, #0x1
+ ldr r12, [r0, #0x8]
+ smull r0, r2, r4, lr
+ addlt r3, r3, #0xc
+ mov r1, #0x1a
+ mul r0, r3, r1
+ smull r1, r3, r4, lr
+ ldr r5, _020D6310 ; =0x66666667
+ sub r0, r0, #0x2
+ smull r4, r1, r5, r0
+ mov r4, lr, lsr #0x1f
+ mov r2, r2, asr #0x5
+ mov r3, r3, asr #0x5
+ add r3, r4, r3
+ ldr r5, _020D6314 ; =0x00000064
+ add r2, r4, r2
+ smull r2, r4, r5, r2
+ sub r2, lr, r2
+ mov r1, r1, asr #0x2
+ mov r0, r0, lsr #0x1f
+ add r1, r0, r1
+ mov r4, r2, asr #0x1
+ add r0, r12, r1
+ add r1, r2, r4, lsr #0x1e
+ add r2, r2, r0
+ mov r6, r3, asr #0x1
+ add r0, r3, r6, lsr #0x1e
+ add r1, r2, r1, asr #0x2
+ add r1, r1, r0, asr #0x2
+ mov r0, #0x5
+ mla r4, r3, r0, r1
+ ldr r3, _020D6318 ; =0x92492493
+ mov r1, r4, lsr #0x1f
+ smull r2, r0, r3, r4
+ add r0, r4, r0
+ mov r0, r0, asr #0x2
+ ldr r2, _020D631C ; =0x00000007
+ add r0, r1, r0
+ smull r0, r1, r2, r0
+ sub r0, r4, r0
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+ .balign 4
+_020D630C: .word 0x51EB851F
+_020D6310: .word 0x66666667
+_020D6314: .word 0x00000064
+_020D6318: .word 0x92492493
+_020D631C: .word 0x00000007
+
+ arm_func_start RTC_ConvertSecondToDateTime
+RTC_ConvertSecondToDateTime: ; 0x020D6320
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0x4
+ mov r5, r2
+ mov r12, #0x0
+ mov r4, r3
+ subs r2, r5, r12
+ sbcs r2, r4, r12
+ mov r7, r0
+ mov r6, r1
+ movlt r5, r12
+ movlt r4, r12
+ blt _020D6364
+ ldr r1, _020D63B0 ; =0xBC19137F
+ subs r0, r1, r5
+ sbcs r0, r12, r4
+ movlt r5, r1
+ movlt r4, r12
+_020D6364:
+ ldr r2, _020D63B4 ; =0x00015180
+ mov r0, r5
+ mov r1, r4
+ mov r3, #0x0
+ bl _ll_mod
+ mov r1, r0
+ mov r0, r6
+ bl RTCi_ConvertSecondToTime
+ ldr r2, _020D63B4 ; =0x00015180
+ mov r0, r5
+ mov r1, r4
+ mov r3, #0x0
+ bl _ll_sdiv
+ mov r1, r0
+ mov r0, r7
+ bl RTC_ConvertDayToDate
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r7,lr}
+ bx lr
+ .balign 4
+_020D63B0: .word 0xBC19137F
+_020D63B4: .word 0x00015180
+
+ arm_func_start RTCi_ConvertSecondToTime
+RTCi_ConvertSecondToTime: ; 0x020D63B8
+ stmdb sp!, {r4-r6,lr}
+ ldr r2, _020D6448 ; =0x0001517F
+ cmp r1, #0x0
+ movlt r1, #0x0
+ cmp r1, r2
+ ldr ip, _020D644C ; =0x88888889
+ movgt r1, r2
+ smull r2, r3, r12, r1
+ smull r2, lr, r12, r1
+ ldr r5, _020D6450 ; =0x91A2B3C5
+ add r3, r1, r3
+ smull r4, r2, r5, r1
+ mov r5, r1, lsr #0x1f
+ mov r3, r3, asr #0x5
+ add r3, r5, r3
+ smull r4, r6, r12, r3
+ add lr, r1, lr
+ mov lr, lr, asr #0x5
+ add r6, r3, r6
+ add r2, r1, r2
+ ldr r4, _020D6454 ; =0x0000003C
+ add lr, r5, lr
+ smull r12, lr, r4, lr
+ sub lr, r1, r12
+ mov r2, r2, asr #0xb
+ mov r6, r6, asr #0x5
+ mov r1, r3, lsr #0x1f
+ add r6, r1, r6
+ smull r1, r12, r4, r6
+ str lr, [r0, #0x8]
+ sub r6, r3, r1
+ str r6, [r0, #0x4]
+ add r2, r5, r2
+ str r2, [r0, #0x0]
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+ .balign 4
+_020D6448: .word 0x0001517F
+_020D644C: .word 0x88888889
+_020D6450: .word 0x91A2B3C5
+_020D6454: .word 0x0000003C
+
+ arm_func_start RTC_ConvertDayToDate
+RTC_ConvertDayToDate: ; 0x020D6458
+ stmdb sp!, {r4,lr}
+ ldr r2, _020D6560 ; =0x00008EAC
+ cmp r1, #0x0
+ movlt r1, #0x0
+ cmp r1, r2
+ movgt r1, r2
+ ldr r3, _020D6564 ; =0x92492493
+ add lr, r1, #0x6
+ smull r2, r4, r3, lr
+ add r4, lr, r4
+ mov r4, r4, asr #0x2
+ mov r2, lr, lsr #0x1f
+ ldr ip, _020D6568 ; =0x00000007
+ add r4, r2, r4
+ smull r2, r3, r12, r4
+ sub r4, lr, r2
+ ldr r2, _020D656C ; =0x0000016D
+ ldr r3, _020D6570 ; =0x0000016E
+ str r4, [r0, #0xc]
+ mov lr, #0x0
+_020D64A8:
+ ands r12, lr, #0x3
+ moveq r12, r3
+ movne r12, r2
+ mov r4, r1
+ subs r1, r1, r12
+ movmi r1, r4
+ bmi _020D64D0
+ add lr, lr, #0x1
+ cmp lr, #0x63
+ blo _020D64A8
+_020D64D0:
+ ldr r2, _020D656C ; =0x0000016D
+ str lr, [r0, #0x0]
+ cmp r1, r2
+ movgt r1, r2
+ ands r2, lr, #0x3
+ bne _020D6518
+ cmp r1, #0x3c
+ bge _020D6514
+ cmp r1, #0x1f
+ movlt r2, #0x1
+ subge r1, r1, #0x1f
+ movge r2, #0x2
+ str r2, [r0, #0x4]
+ add r1, r1, #0x1
+ str r1, [r0, #0x8]
+ ldmia sp!, {r4,lr}
+ bx lr
+_020D6514:
+ sub r1, r1, #0x1
+_020D6518:
+ ldr r3, _020D6574 ; =0x02106A20
+ mov r4, #0xb
+_020D6520:
+ ldr r2, [r3, r4, lsl #0x2]
+ mov r12, r4, lsl #0x2
+ cmp r1, r2
+ blt _020D6550
+ add r2, r4, #0x1
+ str r2, [r0, #0x4]
+ ldr r2, [r3, r12]
+ sub r1, r1, r2
+ add r1, r1, #0x1
+ str r1, [r0, #0x8]
+ ldmia sp!, {r4,lr}
+ bx lr
+_020D6550:
+ subs r4, r4, #0x1
+ bpl _020D6520
+ ldmia sp!, {r4,lr}
+ bx lr
+ .balign 4
+_020D6560: .word 0x00008EAC
+_020D6564: .word 0x92492493
+_020D6568: .word 0x00000007
+_020D656C: .word 0x0000016D
+_020D6570: .word 0x0000016E
+_020D6574: .word 0x02106A20
+
+ arm_func_start RTC_ConvertDateTimeToSecond
+RTC_ConvertDateTimeToSecond: ; 0x020D6578
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ mov r5, r1
+ bl RTC_ConvertDateToDay
+ mov r4, r0
+ mvn r0, #0x0
+ cmp r4, r0
+ addeq sp, sp, #0x4
+ moveq r1, r0
+ ldmeqia sp!, {r4-r5,lr}
+ bxeq lr
+ mov r0, r5
+ bl RTCi_ConvertTimeToSecond
+ mvn r2, #0x0
+ cmp r0, r2
+ moveq r1, r2
+ beq _020D65DC
+ ldr r1, _020D65EC ; =0x00015180
+ mov r2, #0x0
+ umull r12, r3, r4, r1
+ mla r3, r4, r2, r3
+ mov r2, r4, asr #0x1f
+ mla r3, r2, r1, r3
+ adds r2, r0, r12
+ adc r1, r3, r0, asr #0x1f
+_020D65DC:
+ mov r0, r2
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,lr}
+ bx lr
+ .balign 4
+_020D65EC: .word 0x00015180
+
+ arm_func_start RTCi_ConvertTimeToSecond
+RTCi_ConvertTimeToSecond: ; 0x020D65F0
+ ldr r3, [r0, #0x4]
+ ldr r2, [r0, #0x0]
+ mov r1, #0x3c
+ mla r3, r2, r1, r3
+ ldr r0, [r0, #0x8]
+ mla r0, r3, r1, r0
+ bx lr
+
+ arm_func_start RTC_ConvertDateToDay
+RTC_ConvertDateToDay: ; 0x020D660C
+ ldr r3, [r0, #0x0]
+ cmp r3, #0x64
+ bhs _020D665C
+ ldr r2, [r0, #0x4]
+ cmp r2, #0x1
+ blo _020D665C
+ cmp r2, #0xc
+ bhi _020D665C
+ ldr r1, [r0, #0x8]
+ cmp r1, #0x1
+ blo _020D665C
+ cmp r1, #0x1f
+ bhi _020D665C
+ ldr r0, [r0, #0xc]
+ cmp r0, #0x7
+ bge _020D665C
+ cmp r2, #0x1
+ blo _020D665C
+ cmp r2, #0xc
+ bls _020D6664
+_020D665C:
+ mvn r0, #0x0
+ bx lr
+_020D6664:
+ ldr r0, _020D6698 ; =0x02106A1C
+ sub r1, r1, #0x1
+ ldr r0, [r0, r2, lsl #0x2]
+ cmp r2, #0x3
+ add r2, r1, r0
+ blo _020D6684
+ ands r0, r3, #0x3
+ addeq r2, r2, #0x1
+_020D6684:
+ ldr r0, _020D669C ; =0x0000016D
+ add r1, r3, #0x3
+ mla r0, r3, r0, r2
+ add r0, r0, r1, lsr #0x2
+ bx lr
+ .balign 4
+_020D6698: .word 0x02106A1C
+_020D669C: .word 0x0000016D
diff --git a/arm9/asm/SDK_AUTOLOAD_LIST.s b/arm9/asm/SDK_AUTOLOAD_LIST.s
new file mode 100644
index 00000000..a2d1d5fe
--- /dev/null
+++ b/arm9/asm/SDK_AUTOLOAD_LIST.s
@@ -0,0 +1,21 @@
+ .include "asm/macros.inc"
+ .include "global.inc"
+ .section .data
+
+ .global SDK_AUTOLOAD_LIST
+SDK_AUTOLOAD_LIST: ; 0x02107700
+ .word SDK_AUTOLOAD_ITCM_START
+ .word 0x00000700
+ .word 0x00000000
+
+ .word SDK_AUTOLOAD_DTCM_START
+ .word 0x00000060
+ .word 0x00000020
+
+ .word 0x02400000
+ .word 0x00000000
+ .word 0x00000000
+
+ .global SDK_AUTOLOAD_LIST_END
+SDK_AUTOLOAD_LIST_END:
+
diff --git a/arm9/asm/SND_arm9.s b/arm9/asm/SND_arm9.s
new file mode 100644
index 00000000..99351712
--- /dev/null
+++ b/arm9/asm/SND_arm9.s
@@ -0,0 +1,1655 @@
+ .include "asm/macros.inc"
+ .include "global.inc"
+ .section .text
+
+ arm_func_start PushCommand_impl
+PushCommand_impl: ; 0x020CE66C
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0x4
+ mov r7, r0
+ mov r0, #0x1
+ mov r6, r1
+ mov r5, r2
+ mov r4, r3
+ bl SND_AllocCommand
+_020CE68C:
+ cmp r0, #0x0
+ addeq sp, sp, #0x4
+ ldmeqia sp!, {r4-r7, lr}
+ bxeq lr
+ str r7, [r0, #0x4]
+ str r6, [r0, #0x8]
+ str r5, [r0, #0xc]
+ ldr r1, [sp, #0x18]
+ str r4, [r0, #0x10]
+ str r1, [r0, #0x14]
+ bl SND_PushCommand
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r7, lr}
+ bx lr
+
+ arm_func_start SNDi_SetTrackParam
+SNDi_SetTrackParam: ; 0x020CE6C4
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldr r12, [sp, #0x8]
+ mov lr, r2
+ str r3, [sp, #0x0]
+ mov r2, r1
+ orr r1, r0, r12, lsl #0x18
+ mov r3, lr
+ mov r0, #0x7
+ bl PushCommand_impl
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+
+ arm_func_start FUN_020CE6F8
+FUN_020CE6F8: ; 0x020CE6F8
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ mov lr, r1
+ mov r12, r2
+ str r3, [sp, #0x0]
+ mov r1, r0
+ mov r2, lr
+ mov r3, r12
+ mov r0, #0x6
+ bl PushCommand_impl
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+
+ arm_func_start SND_ResetMasterPan
+SND_ResetMasterPan: ; 0x020CE72C
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ mov r2, #0x0
+ mov r3, r2
+ mov r0, #0x18
+ mvn r1, #0x0
+ str r2, [sp, #0x0]
+ bl PushCommand_impl
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+
+ arm_func_start SND_SetMasterPan
+SND_SetMasterPan: ; 0x020CE758
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ mov r2, #0x0
+ mov r1, r0
+ mov r3, r2
+ mov r0, #0x18
+ str r2, [sp, #0x0]
+ bl PushCommand_impl
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+
+ arm_func_start SND_SetOutputSelector
+SND_SetOutputSelector: ; 0x020CE784
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ mov lr, r1
+ mov r12, r2
+ str r3, [sp, #0x0]
+ mov r1, r0
+ mov r2, lr
+ mov r3, r12
+ mov r0, #0x19
+ bl PushCommand_impl
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+
+ arm_func_start SND_InvalidateWaveData
+SND_InvalidateWaveData: ; 0x020CE7B8
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ mov r2, r1
+ mov r3, #0x0
+ mov r1, r0
+ mov r0, #0x20
+ str r3, [sp, #0x0]
+ bl PushCommand_impl
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+
+ arm_func_start SND_InvalidateBankData
+SND_InvalidateBankData: ; 0x020CE7E4
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ mov r2, r1
+ mov r3, #0x0
+ mov r1, r0
+ mov r0, #0x1f
+ str r3, [sp, #0x0]
+ bl PushCommand_impl
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+
+ arm_func_start SND_InvalidateSeqData
+SND_InvalidateSeqData: ; 0x020CE810
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ mov r2, r1
+ mov r3, #0x0
+ mov r1, r0
+ mov r0, #0x1e
+ str r3, [sp, #0x0]
+ bl PushCommand_impl
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+
+ arm_func_start SND_SetupChannelPcm
+SND_SetupChannelPcm: ; 0x020CE83C
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ ldr r12, [sp, #0x18]
+ mov r3, r3, lsl #0x1a
+ orr r4, r3, r1, lsl #0x18
+ ldr r5, [sp, #0x24]
+ mov r3, r12, lsl #0x18
+ ldr r1, [sp, #0x1c]
+ ldr r12, [sp, #0x10]
+ orr r4, r4, r5, lsl #0x10
+ orr r4, r12, r4
+ ldr lr, [sp, #0x20]
+ orr r3, r3, r1, lsl #0x16
+ ldr r12, [sp, #0x14]
+ orr r1, r0, lr, lsl #0x10
+ orr r3, r12, r3
+ mov r0, #0xe
+ str r4, [sp, #0x0]
+ bl PushCommand_impl
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,lr}
+ bx lr
+
+ arm_func_start SND_SetChannelPan
+SND_SetChannelPan: ; 0x020CE894
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ mov r2, r1
+ mov r3, #0x0
+ mov r1, r0
+ mov r0, #0x15
+ str r3, [sp, #0x0]
+ bl PushCommand_impl
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+
+ arm_func_start SND_SetChannelVolume
+SND_SetChannelVolume: ; 0x020CE8C0
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ mov lr, r1
+ mov r3, r2
+ mov r12, #0x0
+ mov r1, r0
+ mov r2, lr
+ mov r0, #0x14
+ str r12, [sp, #0x0]
+ bl PushCommand_impl
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+
+ arm_func_start SND_SetChannelTimer
+SND_SetChannelTimer: ; 0x020CE8F4
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ mov r2, r1
+ mov r3, #0x0
+ mov r1, r0
+ mov r0, #0x13
+ str r3, [sp, #0x0]
+ bl PushCommand_impl
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+
+ arm_func_start SND_UnlockChannel
+SND_UnlockChannel: ; 0x020CE920
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ mov r2, r1
+ mov r3, #0x0
+ mov r1, r0
+ mov r0, #0x1b
+ str r3, [sp, #0x0]
+ bl PushCommand_impl
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+
+ arm_func_start SND_LockChannel
+SND_LockChannel: ; 0x020CE94C
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ mov r2, r1
+ mov r3, #0x0
+ mov r1, r0
+ mov r0, #0x1a
+ str r3, [sp, #0x0]
+ bl PushCommand_impl
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+
+ arm_func_start SND_SetupAlarm
+SND_SetupAlarm: ; 0x020CE978
+ stmdb sp!, {r4-r6,lr}
+ sub sp, sp, #0x8
+ mov r4, r2
+ mov r5, r1
+ ldr r2, [sp, #0x18]
+ mov r6, r0
+ mov r1, r3
+ bl SNDi_SetAlarmHandler
+_020CE998:
+ str r0, [sp]
+ mov r1, r6
+ mov r2, r5
+ mov r3, r4
+ mov r0, #0x12
+ bl PushCommand_impl
+ add sp, sp, #0x8
+ ldmia sp!, {r4-r6, lr}
+ bx lr
+
+ arm_func_start SND_SetupCapture
+SND_SetupCapture: ; 0x020CE9BC
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ mov r0, r0, lsl #0x1f
+ orr r0, r0, r1, lsl #0x1e
+ ldr r12, [sp, #0x8]
+ mov r1, r2
+ orr r0, r0, r12, lsl #0x1d
+ ldr r2, [sp, #0xc]
+ mov lr, #0x0
+ orr r0, r0, r2, lsl #0x1c
+ ldr r12, [sp, #0x10]
+ mov r2, r3
+ orr r3, r0, r12, lsl #0x1b
+ mov r0, #0x11
+ str lr, [sp, #0x0]
+ bl PushCommand_impl
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+
+ arm_func_start SND_StopTimer
+SND_StopTimer: ; 0x020CEA08
+ stmdb sp!, {r4-r9,lr}
+ sub sp, sp, #0x4
+ mov r7, r2
+ mov r9, r0
+ mov r8, r1
+ mov r6, r3
+ mov r4, r7
+ mov r5, #0x0
+ b _020CEA44
+_020CEA2C:
+ ands r0, r4, #0x1
+ beq _020CEA3C
+ mov r0, r5
+ bl SNDi_IncAlarmId
+_020CEA3C:
+ add r5, r5, #0x1
+ mov r4, r4, lsr #0x1
+_020CEA44:
+ cmp r5, #0x8
+ bge _020CEA54
+ cmp r4, #0x0
+ bne _020CEA2C
+_020CEA54:
+ mov r1, r9
+ mov r2, r8
+ mov r3, r7
+ mov r0, #0xd
+ str r6, [sp, #0x0]
+ bl PushCommand_impl
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r9,lr}
+ bx lr
+
+ arm_func_start SND_StartTimer
+SND_StartTimer: ; 0x020CEA78
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ mov lr, r1
+ mov r12, r2
+ str r3, [sp, #0x0]
+ mov r1, r0
+ mov r2, lr
+ mov r3, r12
+ mov r0, #0xc
+ bl PushCommand_impl
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+
+ arm_func_start SND_SetTrackAllocatableChannel
+SND_SetTrackAllocatableChannel: ; 0x020CEAAC
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ mov lr, r1
+ mov r3, r2
+ mov r12, #0x0
+ mov r1, r0
+ mov r2, lr
+ mov r0, #0x9
+ str r12, [sp, #0x0]
+ bl PushCommand_impl
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+
+ arm_func_start SND_SetTrackPan
+SND_SetTrackPan: ; 0x020CEAE0
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ mov r3, r2
+ mov r12, #0x1
+ mov r2, #0x9
+ str r12, [sp, #0x0]
+ bl SNDi_SetTrackParam
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+
+ arm_func_start SND_SetTrackPitch
+SND_SetTrackPitch: ; 0x020CEB08
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ mov r3, r2
+ mov r12, #0x2
+ mov r2, #0xc
+ str r12, [sp, #0x0]
+ bl SNDi_SetTrackParam
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+
+ arm_func_start SND_SetPlayerChannelPriority
+SND_SetPlayerChannelPriority: ; 0x020CEB30
+ ldr ip, _020CEB44 ; =FUN_020CE6F8
+ mov r2, r1
+ mov r1, #0x4
+ mov r3, #0x1
+ bx r12
+ .balign 4
+_020CEB44: .word FUN_020CE6F8
+
+ arm_func_start SND_SetPlayerVolume
+SND_SetPlayerVolume: ; 0x020CEB48
+ ldr ip, _020CEB5C ; =FUN_020CE6F8
+ mov r2, r1
+ mov r1, #0x6
+ mov r3, #0x2
+ bx r12
+ .balign 4
+_020CEB5C: .word FUN_020CE6F8
+
+ arm_func_start SND_PauseSeq
+SND_PauseSeq: ; 0x020CEB60
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ mov r2, r1
+ mov r3, #0x0
+ mov r1, r0
+ mov r0, #0x4
+ str r3, [sp, #0x0]
+ bl PushCommand_impl
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+
+ arm_func_start SND_StartPreparedSeq
+SND_StartPreparedSeq: ; 0x020CEB8C
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ mov r2, #0x0
+ mov r1, r0
+ mov r3, r2
+ mov r0, #0x3
+ str r2, [sp, #0x0]
+ bl PushCommand_impl
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+
+ arm_func_start SND_PrepareSeq
+SND_PrepareSeq: ; 0x020CEBB8
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ mov lr, r1
+ mov r12, r2
+ str r3, [sp, #0x0]
+ mov r1, r0
+ mov r2, lr
+ mov r3, r12
+ mov r0, #0x2
+ bl PushCommand_impl
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+
+ arm_func_start SND_StopSeq
+SND_StopSeq: ; 0x020CEBEC
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ mov r2, #0x0
+ mov r1, r0
+ mov r3, r2
+ mov r0, #0x1
+ str r2, [sp, #0x0]
+ bl PushCommand_impl
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+
+ arm_func_start SNDi_UnlockMutex
+SNDi_UnlockMutex: ; 0x020CEC18
+ ldr ip, _020CEC24 ; =OS_UnlockMutex
+ ldr r0, _020CEC28 ; =0x021D3820
+ bx r12
+ .balign 4
+_020CEC24: .word OS_UnlockMutex
+_020CEC28: .word 0x021D3820
+
+ arm_func_start SNDi_LockMutex
+SNDi_LockMutex: ; 0x020CEC2C
+ ldr ip, _020CEC38 ; =OS_LockMutex
+ ldr r0, _020CEC3C ; =0x021D3820
+ bx r12
+ .balign 4
+_020CEC38: .word OS_LockMutex
+_020CEC3C: .word 0x021D3820
+
+ arm_func_start SND_Init
+SND_Init: ; 0x020CEC40
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldr r1, _020CEC84 ; =0x021D381C
+ ldr r0, [r1, #0x0]
+ cmp r0, #0x0
+ addne sp, sp, #0x4
+ ldmneia sp!, {lr}
+ bxne lr
+ ldr r0, _020CEC88 ; =0x021D3820
+ mov r2, #0x1
+ str r2, [r1, #0x0]
+ bl OS_InitMutex
+ bl SND_CommandInit
+ bl SND_AlarmInit
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+ .balign 4
+_020CEC84: .word 0x021D381C
+_020CEC88: .word 0x021D3820
+
+ arm_func_start IsCommandAvailable
+IsCommandAvailable:
+ stmdb sp!, {r4,lr}
+ bl OS_IsRunOnEmulator
+_020CEC94:
+ cmp r0, #0x0
+ moveq r0, #0x1
+ ldmeqia sp!, {r4, lr}
+ bxeq lr
+ bl OS_DisableInterrupts
+ ldr r1, _020CECD0
+ mov r2, #0x10
+ str r2, [r1]
+ ldr r4, [r1]
+ bl OS_RestoreInterrupts
+ cmp r4, #0x0
+ movne r0, #0x1
+ moveq r0, #0x0
+ ldmia sp!, {r4, lr}
+ bx lr
+_020CECD0: .word 0x04FFF200
+
+ arm_func_start AllocCommand
+AllocCommand: ; 0x020CECD4
+ stmdb sp!, {r4,lr}
+ bl OS_DisableInterrupts
+ ldr r1, _020CED24 ; =0x021D3838
+ ldr r4, [r1, #0x0]
+ cmp r4, #0x0
+ bne _020CECFC
+ bl OS_RestoreInterrupts
+_020CECF0:
+ mov r0, #0x0
+ ldmia sp!, {r4, lr}
+ bx lr
+_020CECFC:
+ ldr r2, [r4, #0x0]
+ str r2, [r1, #0x0]
+ cmp r2, #0x0
+ ldreq r1, _020CED28 ; =0x021D3848
+ moveq r2, #0x0
+ streq r2, [r1, #0x0]
+ bl OS_RestoreInterrupts
+ mov r0, r4
+ ldmia sp!, {r4,lr}
+ bx lr
+ .balign 4
+_020CED24: .word 0x021D3838
+_020CED28: .word 0x021D3848
+
+ arm_func_start RequestCommandProc
+RequestCommandProc: ; 0x020CED2C
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ mov r5, #0x7
+ mov r4, #0x0
+_020CED3C:
+ mov r0, r5
+ mov r1, r4
+ mov r2, r4
+ bl PXI_SendWordByFifo
+_020CED4C:
+ cmp r0, #0
+ blt _020CED3C
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,lr}
+ bx lr
+
+ arm_func_start InitPXI
+InitPXI: ; 0x020CED60
+ stmdb sp!, {r4-r6,lr}
+ ldr r1, _020CEDC8 ; =PxiFifoCallback
+ mov r0, #0x7
+ bl PXI_SetFifoRecvCallback
+ bl IsCommandAvailable
+_020CED74:
+ cmp r0, #0x0
+ ldmeqia sp!, {r4-r6, lr}
+ bxeq lr
+ mov r0, #0x7
+ mov r1, #0x1
+ bl PXI_IsCallbackReady
+ cmp r0, #0x0
+ ldmneia sp!, {r4-r6, lr}
+ bxne lr
+ mov r6, #0x64
+ mov r5, #0x7
+ mov r4, #0x1
+_020CEDA4:
+ mov r0, r6
+ bl OS_SpinWait
+ mov r0, r5
+ mov r1, r4
+ bl PXI_IsCallbackReady
+ cmp r0, #0x0
+ beq _020CEDA4
+ ldmia sp!, {r4-r6, lr}
+ bx lr
+_020CEDC8: .word PxiFifoCallback
+
+ arm_func_start PxiFifoCallback
+PxiFifoCallback: ; 0x020CEDCC
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ mov r5, r1
+ bl OS_DisableInterrupts
+ mov r4, r0
+ mov r0, r5
+ bl SNDi_CallAlarmHandler
+ mov r0, r4
+ bl OS_RestoreInterrupts
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,lr}
+ bx lr
+
+ arm_func_start SND_CountWaitingCommand
+SND_CountWaitingCommand: ; 0x020CEDFC
+ stmdb sp!, {r4,lr}
+ bl SND_CountFreeCommand
+ mov r4, r0
+ bl SND_CountReservedCommand
+ rsb r1, r4, #0x100
+ sub r0, r1, r0
+ ldmia sp!, {r4,lr}
+ bx lr
+
+ arm_func_start SND_CountReservedCommand
+SND_CountReservedCommand: ; 0x020CEE1C
+ stmdb sp!, {r4,lr}
+ bl OS_DisableInterrupts
+ ldr r1, _020CEE58 ; =0x021D3840
+ mov r4, #0x0
+ ldr r1, [r1, #0x0]
+ cmp r1, #0x0
+ beq _020CEE48
+_020CEE38:
+ ldr r1, [r1, #0x0]
+ add r4, r4, #0x1
+ cmp r1, #0x0
+ bne _020CEE38
+_020CEE48:
+ bl OS_RestoreInterrupts
+ mov r0, r4
+ ldmia sp!, {r4,lr}
+ bx lr
+ .balign 4
+_020CEE58: .word 0x021D3840
+
+ arm_func_start SND_CountFreeCommand
+SND_CountFreeCommand: ; 0x020CEE5C
+ stmdb sp!, {r4,lr}
+ bl OS_DisableInterrupts
+ ldr r1, _020CEE98 ; =0x021D3838
+ mov r4, #0x0
+ ldr r1, [r1, #0x0]
+ cmp r1, #0x0
+ beq _020CEE88
+_020CEE78:
+ ldr r1, [r1, #0x0]
+ add r4, r4, #0x1
+ cmp r1, #0x0
+ bne _020CEE78
+_020CEE88:
+ bl OS_RestoreInterrupts
+ mov r0, r4
+ ldmia sp!, {r4,lr}
+ bx lr
+ .balign 4
+_020CEE98: .word 0x021D3838
+
+ arm_func_start SND_IsFinishedCommandTag
+SND_IsFinishedCommandTag:
+ stmdb sp!, {r4,lr}
+ mov r4, r0
+ bl OS_DisableInterrupts
+ ldr r1, _020CEEEC ; =0x021D383C
+ ldr r1, [r1, #0x0]
+ cmp r4, r1
+ bls _020CEECC
+ sub r1, r4, r1
+ cmp r1, #0x80000000
+ movcc r4, #0x0
+ movcs r4, #0x1
+ b _020CEEDC
+_020CEECC:
+ sub r1, r1, r4
+ cmp r1, #0x80000000
+ movcc r4, #0x1
+ movcs r4, #0x0
+_020CEEDC:
+ bl OS_RestoreInterrupts
+ mov r0, r4
+ ldmia sp!, {r4,lr}
+ bx lr
+ .balign 4
+_020CEEEC: .word 0x021D383C
+
+ arm_func_start SND_GetCurrentCommandTag
+SND_GetCurrentCommandTag: ; 0x020CEEF0
+ stmdb sp!, {r4,lr}
+ bl OS_DisableInterrupts
+ ldr r1, _020CEF24 ; =0x021D3840
+ ldr r1, [r1, #0x0]
+ cmp r1, #0x0
+ ldreq r1, _020CEF28 ; =0x021D383C
+ ldreq r4, [r1, #0x0]
+ ldrne r1, _020CEF2C ; =0x021D3858
+ ldrne r4, [r1, #0x0]
+ bl OS_RestoreInterrupts
+ mov r0, r4
+ ldmia sp!, {r4,lr}
+ bx lr
+ .balign 4
+_020CEF24: .word 0x021D3840
+_020CEF28: .word 0x021D383C
+_020CEF2C: .word 0x021D3858
+
+ arm_func_start SND_WaitForCommandProc
+SND_WaitForCommandProc: ; 0x020CEF30
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ mov r5, r0
+ bl SND_IsFinishedCommandTag
+_020CEF40:
+ cmp r0, #0x0
+ addne sp, sp, #0x4
+ ldmneia sp!, {r4-r5, lr}
+ bxne lr
+ mov r4, #0x0
+_020CEF54:
+ mov r0, r4
+ bl SND_RecvCommandReply
+ cmp r0, #0x0
+ bne _020CEF54
+ mov r0, r5
+ bl SND_IsFinishedCommandTag
+ cmp r0, #0x0
+ addne sp, sp, #0x4
+ ldmneia sp!, {r4-r5, lr}
+ bxne lr
+ bl RequestCommandProc
+ mov r0, r5
+ bl SND_IsFinishedCommandTag
+ cmp r0, #0x0
+ addne sp, sp, #0x4
+ ldmneia sp!, {r4-r5, lr}
+ bxne lr
+ mov r4, #0x1
+_020CEF9C:
+ mov r0, r4
+ bl SND_RecvCommandReply
+ mov r0, r5
+ bl SND_IsFinishedCommandTag
+ cmp r0, #0x0
+ beq _020CEF9C
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5, lr}
+ bx lr
+
+ arm_func_start SND_FlushCommand
+SND_FlushCommand: ; 0x020CEFC0
+ stmdb sp!, {r4-r9,lr}
+ sub sp, sp, #0x4
+ mov r5, r0
+ bl OS_DisableInterrupts
+ ldr r1, _020CF164 ; =0x021D3840
+ mov r4, r0
+ ldr r1, [r1, #0x0]
+ cmp r1, #0x0
+ bne _020CEFF8
+ bl OS_RestoreInterrupts
+ add sp, sp, #0x4
+ mov r0, #0x1
+ ldmia sp!, {r4-r9,lr}
+ bx lr
+_020CEFF8:
+ ldr r1, _020CF168 ; =0x021D3854
+ ldr r1, [r1, #0x0]
+ cmp r1, #0x8
+ blt _020CF03C
+ ands r1, r5, #0x1
+ bne _020CF024
+ bl OS_RestoreInterrupts
+ add sp, sp, #0x4
+ mov r0, #0x0
+ ldmia sp!, {r4-r9,lr}
+ bx lr
+_020CF024:
+ mov r0, #0x1
+ bl SND_RecvCommandReply
+ ldr r0, _020CF168 ; =0x021D3854
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x8
+ bge _020CF024
+_020CF03C:
+ ldr r0, _020CF16C ; =0x021D3B00
+ mov r1, #0x1800
+ bl DC_FlushRange
+ ldr r1, _020CF164 ; =0x021D3840
+ mov r0, #0x7
+ ldr r1, [r1, #0x0]
+ mov r2, #0x0
+ bl PXI_SendWordByFifo
+_020CF05C:
+ cmp r0, #0x0
+ bge _020CF0E0
+ ands r0, r5, #0x1
+ bne _020CF084
+ mov r0, r4
+ bl OS_RestoreInterrupts
+ add sp, sp, #0x4
+ mov r0, #0x0
+ ldmia sp!, {r4-r9, lr}
+ bx lr
+_020CF084:
+ ldr r1, _020CF164
+ mov r0, #0x7
+ ldr r1, [r1]
+ mov r2, #0x0
+ bl PXI_SendWordByFifo
+ cmp r0, #0x0
+ bge _020CF0E0
+ ldr r6, _020CF164
+ mov r9, #0x64
+ mov r8, #0x7
+ mov r7, #0x0
+_020CF0B0:
+ mov r0, r4
+ bl OS_RestoreInterrupts
+ mov r0, r9
+ bl OS_SpinWait
+ bl OS_DisableInterrupts
+ mov r4, r0
+ mov r0, r8
+ ldr r1, [r6]
+ mov r2, r7
+ bl PXI_SendWordByFifo
+ cmp r0, #0x0
+ blt _020CF0B0
+_020CF0E0:
+ ands r0, r5, #0x2
+ beq _020CF0EC
+ bl RequestCommandProc
+_020CF0EC:
+ ldr r0, _020CF170
+ ldr r1, _020CF164
+ ldr r3, [r0]
+ ldr r5, [r1]
+ add r1, r3, #0x1
+ ldr r2, _020CF174
+ str r1, [r0]
+ str r5, [r2, r3, lsl #2]
+ cmp r1, #0x8
+ movgt r1, #0x0
+ ldr r2, _020CF168
+ strgt r1, [r0]
+ ldr r1, _020CF178
+ ldr r3, [r2]
+ ldr r0, [r1]
+ add ip, r3, #0x1
+ add r6, r0, #0x1
+ ldr r5, _020CF164
+ mov lr, #0x0
+ ldr r3, _020CF17C
+ mov r0, r4
+ str lr, [r5]
+ str lr, [r3]
+ str ip, [r2]
+ str r6, [r1]
+ bl OS_RestoreInterrupts
+ mov r0, #0x1
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r9, lr}
+ bx lr
+_020CF164: .word 0x021D3840
+_020CF168: .word 0x021D3854
+_020CF16C: .word 0x021D3B00
+_020CF170: .word 0x021D3850
+_020CF174: .word 0x021D385C
+_020CF178: .word 0x021D3858
+_020CF17C: .word 0x021D3844
+
+ arm_func_start SND_PushCommand
+SND_PushCommand: ; 0x020CF180
+ stmdb sp!, {r4,lr}
+ mov r4, r0
+ bl OS_DisableInterrupts
+ ldr r2, _020CF1C0 ; =0x021D3844
+ ldr r1, [r2, #0x0]
+ cmp r1, #0x0
+ ldreq r1, _020CF1C4 ; =0x021D3840
+ streq r4, [r2, #0x0]
+ streq r4, [r1, #0x0]
+ strne r4, [r1, #0x0]
+ strne r4, [r2, #0x0]
+ mov r1, #0x0
+ str r1, [r4, #0x0]
+ bl OS_RestoreInterrupts
+ ldmia sp!, {r4,lr}
+ bx lr
+ .balign 4
+_020CF1C0: .word 0x021D3844
+_020CF1C4: .word 0x021D3840
+
+ arm_func_start SND_AllocCommand
+SND_AllocCommand:
+ stmdb sp!, {r4,lr}
+ mov r4, r0
+ bl IsCommandAvailable
+_020CF1D4:
+ cmp r0, #0x0
+ moveq r0, #0x0
+ ldmeqia sp!, {r4,lr}
+ bxeq lr
+ bl AllocCommand
+ cmp r0, #0x0
+ ldmneia sp!, {r4,lr}
+ bxne lr
+ ands r0, r4, #0x1
+ moveq r0, #0x0
+ ldmeqia sp!, {r4,lr}
+ bxeq lr
+ bl SND_CountWaitingCommand
+ cmp r0, #0x0
+ ble _020CF238
+ mov r4, #0x0
+_020CF214:
+ mov r0, r4
+ bl SND_RecvCommandReply
+ cmp r0, #0x0
+ bne _020CF214
+ bl AllocCommand
+ cmp r0, #0x0
+ beq _020CF240
+ ldmia sp!, {r4,lr}
+ bx lr
+_020CF238:
+ mov r0, #0x1
+ bl SND_FlushCommand
+_020CF240:
+ bl RequestCommandProc
+ mov r4, #0x1
+_020CF248:
+ mov r0, r4
+ bl SND_RecvCommandReply
+ bl AllocCommand
+ cmp r0, #0x0
+ beq _020CF248
+ ldmia sp!, {r4,lr}
+ bx lr
+
+ arm_func_start SND_RecvCommandReply
+SND_RecvCommandReply: ; 0x020CF264
+ stmdb sp!, {r4-r6,lr}
+ mov r4, r0
+ bl OS_DisableInterrupts
+ mov r5, r0
+ ands r0, r4, #0x1
+ beq _020CF2C0
+ bl SNDi_GetFinishedCommandTag
+ ldr r4, _020CF380 ; =0x021D383C
+ ldr r1, [r4, #0x0]
+ cmp r1, r0
+ bne _020CF2E8
+ mov r6, #0x64
+_020CF294:
+ mov r0, r5
+ bl OS_RestoreInterrupts
+ mov r0, r6
+ bl OS_SpinWait
+ bl OS_DisableInterrupts
+ mov r5, r0
+ bl SNDi_GetFinishedCommandTag
+ ldr r1, [r4, #0x0]
+ cmp r1, r0
+ beq _020CF294
+ b _020CF2E8
+_020CF2C0:
+ bl SNDi_GetFinishedCommandTag
+ ldr r1, _020CF380 ; =0x021D383C
+ ldr r1, [r1, #0x0]
+ cmp r1, r0
+ bne _020CF2E8
+ mov r0, r5
+ bl OS_RestoreInterrupts
+_020CF2DC:
+ mov r0, #0x0
+ ldmia sp!, {r4-r6, lr}
+ bx lr
+_020CF2E8:
+ ldr r0, _020CF384 ; =0x021D384C
+ ldr r2, _020CF388 ; =0x021D385C
+ ldr r3, [r0, #0x0]
+ add r1, r3, #0x1
+ ldr r4, [r2, r3, lsl #0x2]
+ str r1, [r0, #0x0]
+ cmp r1, #0x8
+ movgt r1, #0x0
+ strgt r1, [r0, #0x0]
+ ldr r0, [r4, #0x0]
+ mov r1, r4
+ cmp r0, #0x0
+ beq _020CF32C
+_020CF31C:
+ ldr r1, [r1, #0x0]
+ ldr r0, [r1, #0x0]
+ cmp r0, #0x0
+ bne _020CF31C
+_020CF32C:
+ ldr r0, _020CF38C ; =0x021D3848
+ ldr r3, _020CF390 ; =0x021D3854
+ ldr r0, [r0, #0x0]
+ ldr r2, _020CF380 ; =0x021D383C
+ cmp r0, #0x0
+ strne r4, [r0, #0x0]
+ ldreq r0, _020CF394 ; =0x021D3838
+ ldr lr, [r3, #0x0]
+ streq r4, [r0, #0x0]
+ ldr ip, _020CF38C ; =0x021D3848
+ sub r6, lr, #0x1
+ ldr r0, [r2, #0x0]
+ str r1, [r12, #0x0]
+ add lr, r0, #0x1
+ mov r0, r5
+ str r6, [r3, #0x0]
+ str lr, [r2, #0x0]
+ bl OS_RestoreInterrupts
+ mov r0, r4
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+ .balign 4
+_020CF380: .word 0x021D383C
+_020CF384: .word 0x021D384C
+_020CF388: .word 0x021D385C
+_020CF38C: .word 0x021D3848
+_020CF390: .word 0x021D3854
+_020CF394: .word 0x021D3838
+
+ arm_func_start SND_CommandInit
+SND_CommandInit: ; 0x020CF398
+ stmdb sp!, {r4-r11,lr}
+ sub sp, sp, #0x4
+ bl InitPXI
+ ldr r3, _020CF478 ; =0x021D3B00
+ ldr r0, _020CF47C ; =0x021D3838
+ mov r4, #0x0
+ str r3, [r0, #0x0]
+ mov r1, r3
+ mov r0, #0x18
+_020CF3BC:
+ add r4, r4, #0x1
+ mla r2, r4, r0, r1
+ cmp r4, #0xff
+ str r2, [r3], #0x18
+ blt _020CF3BC
+ ldr r7, _020CF480 ; =0x021D4B00
+ mov r10, #0x0
+ ldr r5, _020CF484 ; =0x021D3840
+ ldr r4, _020CF488 ; =0x021D3844
+ ldr lr, _020CF48C ; =0x021D3854
+ ldr ip, _020CF490 ; =0x021D384C
+ ldr r3, _020CF494 ; =0x021D3850
+ ldr r1, _020CF498 ; =0x021D383C
+ ldr sb, _020CF49C ; =0x021D52E8
+ ldr r6, _020CF4A0 ; =0x021D3848
+ ldr r2, _020CF4A4 ; =0x021D3858
+ mov r8, #0x1
+ ldr r0, _020CF4A8 ; =0x021D3880
+ ldr fp, _020CF4AC ; =0x021D5360
+ str r9, [r6, #0x0]
+ str r10, [r7, #0x7e8]
+ str r10, [r5, #0x0]
+ str r10, [r4, #0x0]
+ str r10, [lr, #0x0]
+ str r10, [r12, #0x0]
+ str r10, [r3, #0x0]
+ str r8, [r2, #0x0]
+ str r10, [r1, #0x0]
+ str r0, [r11, #0x0]
+ bl SNDi_InitSharedWork
+ mov r0, r8
+ bl SND_AllocCommand
+_020CF43C:
+ cmp r0, #0x0
+ addeq sp, sp, #0x4
+ ldmeqia sp!, {r4-r11, lr}
+ bxeq lr
+ mov r2, #0x1D
+ mov r1, fp
+ str r2, [r0, #0x4]
+ ldr r1, [r1]
+ str r1, [r0, #0x8]
+ bl SND_PushCommand
+ mov r0, r8
+ bl SND_FlushCommand
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r11, lr}
+ bx lr
+_020CF478: .word 0x021D3B00
+_020CF47C: .word 0x021D3838
+_020CF480: .word 0x021D4B00
+_020CF484: .word 0x021D3840
+_020CF488: .word 0x021D3844
+_020CF48C: .word 0x021D3854
+_020CF490: .word 0x021D384C
+_020CF494: .word 0x021D3850
+_020CF498: .word 0x021D383C
+_020CF49C: .word 0x021D52E8
+_020CF4A0: .word 0x021D3848
+_020CF4A4: .word 0x021D3858
+_020CF4A8: .word 0x021D3880
+_020CF4AC: .word 0x021D5360
+
+ arm_func_start SNDi_CallAlarmHandler
+SNDi_CallAlarmHandler: ; 0x020CF4B0
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldr r3, _020CF50C ; =0x021D5300
+ and r2, r0, #0xff
+ mov r1, #0xc
+ mla r3, r2, r1, r3
+ mov r1, r0, asr #0x8
+ ldrb r0, [r3, #0x8]
+ and r1, r1, #0xff
+ cmp r1, r0
+ addne sp, sp, #0x4
+ ldmneia sp!, {lr}
+ bxne lr
+ ldr r1, [r3, #0x0]
+ cmp r1, #0x0
+ addeq sp, sp, #0x4
+ ldmeqia sp!, {lr}
+ bxeq lr
+ ldr r0, [r3, #0x4]
+ blx r1
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+ .balign 4
+_020CF50C: .word 0x021D5300
+
+ arm_func_start SNDi_SetAlarmHandler
+SNDi_SetAlarmHandler:
+ mov r3, #0xc
+ mul r3, r0, r3
+ ldr r0, _020CF53C ; =0x021D5300
+ str r1, [r0, r3]
+ add r1, r0, r3
+ str r2, [r1, #0x4]
+ ldrb r0, [r1, #0x8]
+ add r0, r0, #0x1
+ strb r0, [r1, #0x8]
+ ldrb r0, [r1, #0x8]
+ bx lr
+ .balign 4
+_020CF53C: .word 0x021D5300
+
+ arm_func_start SNDi_IncAlarmId
+SNDi_IncAlarmId: ; 0x020CF540
+ ldr r2, _020CF55C ; =0x021D5300
+ mov r1, #0xc
+ mla r1, r0, r1, r2
+ ldrb r0, [r1, #0x8]
+ add r0, r0, #0x1
+ strb r0, [r1, #0x8]
+ bx lr
+ .balign 4
+_020CF55C: .word 0x021D5300
+
+ arm_func_start SND_AlarmInit
+SND_AlarmInit: ; 0x020CF560
+ ldr r1, _020CF58C ; =0x021D5300
+ mov r2, #0x0
+ mov r0, r2
+_020CF56C:
+ str r0, [r1, #0x0]
+ str r0, [r1, #0x4]
+ add r2, r2, #0x1
+ strb r0, [r1, #0x8]
+ cmp r2, #0x8
+ add r1, r1, #0xc
+ blt _020CF56C
+ bx lr
+ .balign 4
+_020CF58C: .word 0x021D5300
+
+ arm_func_start SNDi_InitSharedWork
+SNDi_InitSharedWork: ; 0x020CF590
+ stmdb sp!, {r4,lr}
+ mov r4, #0x0
+ str r4, [r0, #0x4]
+ strh r4, [r0, #0x8]
+ strh r4, [r0, #0xa]
+ mov r12, r0
+ str r4, [r0, #0x0]
+ mov r3, r4
+ mvn r2, #0x0
+_020CF5B4:
+ mov lr, r3
+ str r3, [r12, #0x40]
+_020CF5BC:
+ add r1, r12, lr, lsl #0x1
+ add lr, lr, #0x1
+ strh r2, [r1, #0x20]
+ cmp lr, #0x10
+ blt _020CF5BC
+ add r4, r4, #0x1
+ cmp r4, #0x10
+ add r12, r12, #0x24
+ blt _020CF5B4
+ mov r3, #0x0
+ mvn r2, #0x0
+_020CF5E8:
+ add r1, r0, r3, lsl #0x1
+ add r1, r1, #0x200
+ add r3, r3, #0x1
+ strh r2, [r1, #0x60]
+ cmp r3, #0x10
+ blt _020CF5E8
+ mov r1, #0x280
+ bl DC_FlushRange
+ ldmia sp!, {r4,lr}
+ bx lr
+
+ arm_func_start SNDi_GetFinishedCommandTag
+SNDi_GetFinishedCommandTag: ; 0x020CF610
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldr r0, _020CF640 ; =0x021D5360
+ mov r1, #0x4
+ ldr r0, [r0, #0x0]
+ bl DC_InvalidateRange
+ ldr r0, _020CF640 ; =0x021D5360
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0x0]
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+ .balign 4
+_020CF640: .word 0x021D5360
+
+ arm_func_start SND_GetPlayerTickCounter
+SND_GetPlayerTickCounter: ; 0x020CF644
+ stmdb sp!, {r4,lr}
+ mov r1, #0x24
+ mul r4, r0, r1
+ ldr r0, _020CF680 ; =0x021D5360
+ mov r1, #0x4
+ ldr r0, [r0, #0x0]
+ add r0, r0, #0x40
+ add r0, r0, r4
+ bl DC_InvalidateRange
+ ldr r0, _020CF680 ; =0x021D5360
+ ldr r0, [r0, #0x0]
+ add r0, r0, r4
+ ldr r0, [r0, #0x40]
+ ldmia sp!, {r4,lr}
+ bx lr
+ .balign 4
+_020CF680: .word 0x021D5360
+
+ arm_func_start SND_GetChannelStatus
+SND_GetChannelStatus: ; 0x020CF684
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldr r0, _020CF6B8 ; =0x021D5360
+ mov r1, #0x2
+ ldr r0, [r0, #0x0]
+ add r0, r0, #0x8
+ bl DC_InvalidateRange
+ ldr r0, _020CF6B8 ; =0x021D5360
+ ldr r0, [r0, #0x0]
+ ldrh r0, [r0, #0x8]
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+ .balign 4
+_020CF6B8: .word 0x021D5360
+
+ arm_func_start SND_GetPlayerStatus
+SND_GetPlayerStatus: ; 0x020CF6BC
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldr r0, _020CF6F0 ; =0x021D5360
+ mov r1, #0x4
+ ldr r0, [r0, #0x0]
+ add r0, r0, #0x4
+ bl DC_InvalidateRange
+ ldr r0, _020CF6F0 ; =0x021D5360
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0x4]
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+ .balign 4
+_020CF6F0: .word 0x021D5360
+
+ arm_func_start SND_CalcChannelVolume
+SND_CalcChannelVolume: ; 0x020CF6F4
+ ldr r1, _020CF75C ; =0xFFFFFD2D
+ cmp r0, r1
+ movlt r0, r1
+ blt _020CF70C
+ cmp r0, #0x0
+ movgt r0, #0x0
+_020CF70C:
+ ldr r1, _020CF760 ; =0x000002D3
+ ldr r2, _020CF764 ; =0x02103CAC
+ add r3, r0, r1
+ mvn r1, #0xef
+ cmp r0, r1
+ ldrb r2, [r2, r3]
+ movlt r0, #0x3
+ blt _020CF74C
+ mvn r1, #0x77
+ cmp r0, r1
+ movlt r0, #0x2
+ blt _020CF74C
+ mvn r1, #0x3b
+ cmp r0, r1
+ movlt r0, #0x1
+ movge r0, #0x0
+_020CF74C:
+ orr r0, r2, r0, lsl #0x8
+ mov r0, r0, lsl #0x10
+ mov r0, r0, lsr #0x10
+ bx lr
+ .balign 4
+_020CF75C: .word 0xFFFFFD2D
+_020CF760: .word 0x000002D3
+_020CF764: .word 0x02103CAC
+
+ arm_func_start SND_GetWaveDataAddress
+SND_GetWaveDataAddress: ; 0x020CF768
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ mov r5, r0
+ mov r4, r1
+ bl SNDi_LockMutex
+ add r0, r5, r4, lsl #0x2
+ ldr r4, [r0, #0x3c]
+ cmp r4, #0x0
+ beq _020CF798
+ cmp r4, #0x2000000
+ addcc r4, r5, r4
+ b _020CF79C
+_020CF798:
+ mov r4, #0x0
+_020CF79C:
+ bl SNDi_UnlockMutex
+ mov r0, r4
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,lr}
+ bx lr
+
+ arm_func_start SND_SetWaveDataAddress
+SND_SetWaveDataAddress: ; 0x020CF7B0
+ stmdb sp!, {r4-r6,lr}
+ mov r6, r0
+ mov r5, r1
+ mov r4, r2
+ bl SNDi_LockMutex
+ add r0, r6, #0x3c
+ add r2, r6, r5, lsl #0x2
+ add r0, r0, r5, lsl #0x2
+ mov r1, #0x4
+ str r4, [r2, #0x3c]
+ bl DC_StoreRange
+ bl SNDi_UnlockMutex
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+
+ arm_func_start SND_GetWaveDataCount
+SND_GetWaveDataCount: ; 0x020CF7E8
+ ldr r0, [r0, #0x38]
+ bx lr
+
+ arm_func_start SND_GetNextInstData
+SND_GetNextInstData: ; 0x020CF7F0
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ ldr r4, [r2, #0x0]
+ ldr r3, [r0, #0x38]
+ cmp r4, r3
+ bhs _020CF9B8
+ mov r12, #0x0
+_020CF80C:
+ add r3, r0, r4, lsl #0x2
+ ldr r4, [r3, #0x3c]
+ strb r4, [r1, #0x0]
+ ldrb r3, [r1, #0x0]
+ cmp r3, #0x10
+ bgt _020CF850
+ cmp r3, #0x10
+ bge _020CF8A8
+ cmp r3, #0x5
+ addls pc, pc, r3, lsl #0x2
+ b _020CF998
+_020CF838:
+ b _020CF998
+ b _020CF85C
+ b _020CF85C
+ b _020CF85C
+ b _020CF85C
+ b _020CF85C
+_020CF850:
+ cmp r3, #0x11
+ beq _020CF924
+ b _020CF998
+_020CF85C:
+ mov r3, r4, lsr #0x8
+ add r5, r0, r4, lsr #0x8
+ ldrh r4, [r0, r3]
+ ldrh r3, [r5, #0x2]
+ add sp, sp, #0x4
+ mov r0, #0x1
+ strh r4, [r1, #0x2]
+ strh r3, [r1, #0x4]
+ ldrh r4, [r5, #0x4]
+ ldrh r3, [r5, #0x6]
+ strh r4, [r1, #0x6]
+ strh r3, [r1, #0x8]
+ ldrh r3, [r5, #0x8]
+ strh r3, [r1, #0xA]
+ ldr r1, [r2]
+ add r1, r1, #0x1
+ str r1, [r2]
+ ldmia sp!, {r4-r5,lr}
+ bx lr
+_020CF8A8:
+ add r5, r0, r4, lsr #0x8
+ b _020CF904
+_020CF8B0:
+ mov r0, #0xc
+ mla r12, lr, r0, r5
+ ldrh r4, [r12, #0x2]
+ ldrh r3, [r12, #0x4]
+ add sp, sp, #0x4
+ mov r0, #0x1
+ strh r4, [r1, #0x0]
+ strh r3, [r1, #0x2]
+ ldrh r4, [r12, #0x6]
+ ldrh r3, [r12, #0x8]
+ strh r4, [r1, #0x4]
+ strh r3, [r1, #0x6]
+ ldrh r4, [r12, #0xa]
+ ldrh r3, [r12, #0xc]
+ strh r4, [r1, #0x8]
+ strh r3, [r1, #0xa]
+ ldr r1, [r2, #0x4]
+ add r1, r1, #0x1
+ str r1, [r2, #0x4]
+ ldmia sp!, {r4-r5,lr}
+ bx lr
+_020CF904:
+ ldrb r4, [r5, #0x1]
+ ldrb r3, [r5, #0x0]
+ ldr lr, [r2, #0x4]
+ sub r3, r4, r3
+ add r3, r3, #0x1
+ cmp lr, r3
+ blo _020CF8B0
+ b _020CF998
+_020CF924:
+ add r4, r0, r4, lsr #0x8
+ b _020CF98C
+_020CF92C:
+ ldrb lr, [r4, r3]
+ cmp lr, #0x0
+ beq _020CF998
+ mov r0, #0xc
+ mla lr, r3, r0, r4
+ ldrh r12, [lr, #0x8]
+ ldrh r3, [lr, #0xa]
+ add sp, sp, #0x4
+ mov r0, #0x1
+ strh r12, [r1, #0x0]
+ strh r3, [r1, #0x2]
+ ldrh r12, [lr, #0xc]
+ ldrh r3, [lr, #0xe]
+ strh r12, [r1, #0x4]
+ strh r3, [r1, #0x6]
+ ldrh r12, [lr, #0x10]
+ ldrh r3, [lr, #0x12]
+ strh r12, [r1, #0x8]
+ strh r3, [r1, #0xa]
+ ldr r1, [r2, #0x4]
+ add r1, r1, #0x1
+ str r1, [r2, #0x4]
+ ldmia sp!, {r4-r5,lr}
+ bx lr
+_020CF98C:
+ ldr r3, [r2, #0x4]
+ cmp r3, #0x8
+ blo _020CF92C
+_020CF998:
+ ldr r3, [r2, #0x0]
+ add r3, r3, #0x1
+ str r3, [r2, #0x0]
+ str r12, [r2, #0x4]
+ ldr r4, [r2, #0x0]
+ ldr r3, [r0, #0x38]
+ cmp r4, r3
+ blo _020CF80C
+_020CF9B8:
+ mov r0, #0x0
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,lr}
+ bx lr
+
+ arm_func_start SND_GetFirstInstDataPos
+SND_GetFirstInstDataPos: ; 0x020CF9C8
+ sub sp, sp, #0x8
+ mov r1, #0x0
+ str r1, [sp, #0x0]
+ str r1, [sp, #0x4]
+ str r1, [r0, #0x0]
+ str r1, [r0, #0x4]
+ add sp, sp, #0x8
+ bx lr
+
+ arm_func_start SND_DestroyWaveArc
+SND_DestroyWaveArc: ; 0x020CF9E8
+ stmdb sp!, {r4-r6,lr}
+ mov r4, r0
+ bl SNDi_LockMutex
+ ldr r0, [r4, #0x18]
+ cmp r0, #0x0
+ beq _020CFA28
+ mov r5, #0x0
+ mov r4, #0x8
+_020CFA08:
+ ldr r6, [r0, #0x4]
+ mov r1, r4
+ str r5, [r0, #0x0]
+ str r5, [r0, #0x4]
+ bl DC_StoreRange
+ mov r0, r6
+ cmp r6, #0x0
+ bne _020CFA08
+_020CFA28:
+ bl SNDi_UnlockMutex
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+
+ arm_func_start SND_DestroyBank
+SND_DestroyBank: ; 0x020CFA34
+ stmdb sp!, {r4-r8,lr}
+ mov r7, r0
+ bl SNDi_LockMutex
+ add r5, r7, #0x18
+ mov r6, #0x0
+ mov r8, #0x8
+ mov r4, #0x3c
+_020CFA50:
+ add r1, r7, r6, lsl #0x3
+ ldr r0, [r1, #0x18]
+ cmp r0, #0x0
+ beq _020CFAB8
+ ldr r3, [r0, #0x18]
+ cmp r5, r3
+ bne _020CFA80
+ ldr r2, [r1, #0x1c]
+ mov r1, r4
+ str r2, [r0, #0x18]
+ bl DC_StoreRange
+ b _020CFAB8
+_020CFA80:
+ cmp r3, #0x0
+ beq _020CFAA0
+_020CFA88:
+ ldr r0, [r3, #0x4]
+ cmp r5, r0
+ beq _020CFAA0
+ mov r3, r0
+ cmp r0, #0x0
+ bne _020CFA88
+_020CFAA0:
+ add r0, r7, r6, lsl #0x3
+ ldr r2, [r0, #0x1c]
+ mov r0, r3
+ mov r1, r8
+ str r2, [r3, #0x4]
+ bl DC_StoreRange
+_020CFAB8:
+ add r6, r6, #0x1
+ cmp r6, #0x4
+ add r5, r5, #0x8
+ blt _020CFA50
+ bl SNDi_UnlockMutex
+ ldmia sp!, {r4-r8,lr}
+ bx lr
+
+ arm_func_start SND_AssignWaveArc
+SND_AssignWaveArc: ; 0x020CFAD4
+ stmdb sp!, {r4-r6,lr}
+ mov r6, r0
+ mov r5, r1
+ mov r4, r2
+ bl SNDi_LockMutex
+ add r3, r6, r5, lsl #0x3
+ ldr r2, [r3, #0x18]
+ mov r12, r5, lsl #0x3
+ cmp r2, #0x0
+ beq _020CFB70
+ cmp r4, r2
+ bne _020CFB10
+ bl SNDi_UnlockMutex
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+_020CFB10:
+ add r1, r6, #0x18
+ ldr r0, [r2, #0x18]
+ add r12, r1, r12
+ cmp r12, r0
+ bne _020CFB3C
+ ldr r0, [r3, #0x1c]
+ mov r1, #0x3c
+ str r0, [r2, #0x18]
+ ldr r0, [r3, #0x18]
+ bl DC_StoreRange
+ b _020CFB70
+_020CFB3C:
+ cmp r0, #0x0
+ beq _020CFB5C
+_020CFB44:
+ ldr r1, [r0, #0x4]
+ cmp r12, r1
+ beq _020CFB5C
+ mov r0, r1
+ cmp r1, #0x0
+ bne _020CFB44
+_020CFB5C:
+ add r1, r6, r5, lsl #0x3
+ ldr r2, [r1, #0x1c]
+ mov r1, #0x8
+ str r2, [r0, #0x4]
+ bl DC_StoreRange
+_020CFB70:
+ add r0, r6, #0x18
+ ldr r1, [r4, #0x18]
+ add r0, r0, r5, lsl #0x3
+ str r0, [r4, #0x18]
+ add r0, r6, r5, lsl #0x3
+ str r1, [r0, #0x1c]
+ str r4, [r0, #0x18]
+ bl SNDi_UnlockMutex
+ mov r0, r6
+ mov r1, #0x3c
+ bl DC_StoreRange
+ mov r0, r4
+ mov r1, #0x3c
+ bl DC_StoreRange
+ ldmia sp!, {r4-r6,lr}
+ bx lr
diff --git a/arm9/asm/SPI_arm9.s b/arm9/asm/SPI_arm9.s
new file mode 100644
index 00000000..915bb22c
--- /dev/null
+++ b/arm9/asm/SPI_arm9.s
@@ -0,0 +1,1487 @@
+ .include "asm/macros.inc"
+ .include "global.inc"
+ .section .text
+
+ arm_func_start TP_CheckError
+TP_CheckError: ; 0x020D36C4
+ ldr r1, _020D36D4 ; =0x021D5474
+ ldrh r1, [r1, #0x34]
+ and r0, r1, r0
+ bx lr
+ .balign 4
+_020D36D4: .word 0x021D5474
+
+ arm_func_start TP_WaitBusy
+TP_WaitBusy: ; 0x020D36D8
+ ldr r1, _020D36EC ; =0x021D5474
+_020D36DC:
+ ldrh r2, [r1, #0x36]
+ ands r2, r2, r0
+ bne _020D36DC
+ bx lr
+ .balign 4
+_020D36EC: .word 0x021D5474
+
+ arm_func_start TP_GetCalibratedPoint
+TP_GetCalibratedPoint: ; 0x020D36F0
+ stmdb sp!, {r4-r6,lr}
+ ldr r2, _020D3818 ; =0x021D5474
+ ldrh r2, [r2, #0x30]
+ cmp r2, #0x0
+ bne _020D372C
+ ldrh r3, [r1, #0x0]
+ ldrh r2, [r1, #0x2]
+ strh r3, [r0, #0x0]
+ strh r2, [r0, #0x2]
+ ldrh r2, [r1, #0x4]
+ ldrh r1, [r1, #0x6]
+ strh r2, [r0, #0x4]
+ strh r1, [r0, #0x6]
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+_020D372C:
+ ldrh r3, [r1, #0x4]
+ ldr r2, _020D381C ; =0x021D548C
+ strh r3, [r0, #0x4]
+ ldrh r3, [r1, #0x6]
+ strh r3, [r0, #0x6]
+ ldrh r3, [r1, #0x4]
+ cmp r3, #0x0
+ moveq r1, #0x0
+ streqh r1, [r0, #0x0]
+ streqh r1, [r0, #0x2]
+ ldmeqia sp!, {r4-r6,lr}
+ bxeq lr
+ ldrh r4, [r1, #0x0]
+ ldr r3, [r2, #0x0]
+ ldr lr, [r2, #0x8]
+ mov r12, r4, lsl #0x2
+ mov r4, r12, asr #0x1f
+ subs r12, r12, r3
+ sbc r3, r4, r3, asr #0x1f
+ umull r6, r5, lr, r12
+ mla r5, lr, r3, r5
+ mov r3, lr, asr #0x1f
+ mla r5, r3, r12, r5
+ mov r3, r6, lsr #0x16
+ orr r3, r3, r5, lsl #0xa
+ strh r3, [r0, #0x0]
+ ldrsh r3, [r0, #0x0]
+ cmp r3, #0x0
+ movlt r3, #0x0
+ strlth r3, [r0, #0x0]
+ blt _020D37B4
+ cmp r3, #0xff
+ movgt r3, #0xff
+ strgth r3, [r0, #0x0]
+_020D37B4:
+ ldrh r3, [r1, #0x2]
+ ldr r1, [r2, #0xc]
+ ldr r12, [r2, #0x14]
+ mov r3, r3, lsl #0x2
+ mov r2, r3, asr #0x1f
+ subs r3, r3, r1
+ sbc r1, r2, r1, asr #0x1f
+ umull r4, lr, r12, r3
+ mla lr, r12, r1, lr
+ mov r1, r12, asr #0x1f
+ mla lr, r1, r3, lr
+ mov r1, r4, lsr #0x16
+ orr r1, r1, lr, lsl #0xa
+ strh r1, [r0, #0x2]
+ ldrsh r1, [r0, #0x2]
+ cmp r1, #0x0
+ movlt r1, #0x0
+ strlth r1, [r0, #0x2]
+ ldmltia sp!, {r4-r6,lr}
+ bxlt lr
+ cmp r1, #0xbf
+ movgt r1, #0xbf
+ strgth r1, [r0, #0x2]
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+ .balign 4
+_020D3818: .word 0x021D5474
+_020D381C: .word 0x021D548C
+
+ arm_func_start TP_CalcCalibrateParam
+TP_CalcCalibrateParam:
+ stmdb sp!, {r4-r11,lr}
+ sub sp, sp, #0x4
+ mov r6, r1
+ mov r7, r0
+ mov r5, r2
+ mov r4, r3
+ cmp r6, #0x1000
+ bhs _020D3860
+ cmp r5, #0x1000
+ bhs _020D3860
+ ldrh r8, [sp, #0x2c]
+ cmp r8, #0x1000
+ bhs _020D3860
+ ldrh r3, [sp, #0x30]
+ cmp r3, #0x1000
+ blo _020D3870
+_020D3860:
+ add sp, sp, #0x4
+ mov r0, #0x1
+ ldmia sp!, {r4-r11,lr}
+ bx lr
+_020D3870:
+ cmp r4, #0x100
+ bhs _020D389C
+ ldrh r2, [sp, #0x34]
+ cmp r2, #0x100
+ bhs _020D389C
+ ldrh r1, [sp, #0x28]
+ cmp r1, #0xc0
+ bhs _020D389C
+ ldrh r0, [sp, #0x38]
+ cmp r0, #0xc0
+ blo _020D38AC
+_020D389C:
+ add sp, sp, #0x4
+ mov r0, #0x1
+ ldmia sp!, {r4-r11,lr}
+ bx lr
+_020D38AC:
+ cmp r4, r2
+ beq _020D38CC
+ cmp r1, r0
+ beq _020D38CC
+ cmp r6, r8
+ beq _020D38CC
+ cmp r5, r3
+ bne _020D38DC
+_020D38CC:
+ add sp, sp, #0x4
+ mov r0, #0x1
+ ldmia sp!, {r4-r11,lr}
+ bx lr
+_020D38DC:
+ bl OS_DisableInterrupts
+ ldrh r1, [sp, #0x2c]
+ ldr r3, _020D3A80 ; =0x04000280
+ ldr fp, _020D3A84 ; =0x04000290
+ str r1, [sp, #0x0]
+ ldr r2, [sp, #0x0]
+ ldrh r1, [sp, #0x34]
+ sub r9, r6, r2
+ mov r2, #0x0
+ mov r12, r9, lsl #0x8
+ strh r2, [r3, #0x0]
+ str r12, [r11, #0x0]
+ ldrh r8, [sp, #0x30]
+ ldrh r10, [sp, #0x38]
+ ldrh r9, [sp, #0x28]
+ ldr fp, _020D3A88 ; =0x04000298
+ sub r12, r4, r1
+ str r12, [r11, #0x0]
+ str r2, [r11, #0x4]
+ sub r11, r5, r8
+ sub r2, r9, r10
+_020D3930:
+ ldrh r12, [r3, #0x0]
+ ands r12, r12, #0x8000
+ bne _020D3930
+ ldr ip, _020D3A8C ; =0x040002A0
+ mov r11, r11, lsl #0x8
+ ldr lr, [r12, #0x0]
+ mov r12, #0x0
+ strh r12, [r3, #0x0]
+ ldr r3, _020D3A84 ; =0x04000290
+ cmp lr, #0x8000
+ str r11, [r3, #0x0]
+ ldr r3, _020D3A88 ; =0x04000298
+ str r2, [r3, #0x0]
+ mov r2, r3
+ str r12, [r2, #0x4]
+ bge _020D3980
+ mov r2, #0x8000
+ rsb r2, r2, #0x0
+ cmp lr, r2
+ bge _020D3994
+_020D3980:
+ bl OS_RestoreInterrupts
+ add sp, sp, #0x4
+ mov r0, #0x1
+ ldmia sp!, {r4-r11,lr}
+ bx lr
+_020D3994:
+ strh lr, [r7, #0x4]
+ ldrsh r11, [r7, #0x4]
+ add r3, r4, r1
+ ldr r1, [sp, #0x0]
+ add r4, r6, r1
+ mul r1, r11, r3
+ mov r3, r4, lsl #0x8
+ sub r1, r3, r1
+ mov r1, r1, lsl #0x9
+ mov r1, r1, asr #0x10
+ cmp r1, #0x8000
+ bge _020D39CC
+ cmp r1, r2
+ bge _020D39E0
+_020D39CC:
+ bl OS_RestoreInterrupts
+ add sp, sp, #0x4
+ mov r0, #0x1
+ ldmia sp!, {r4-r11,lr}
+ bx lr
+_020D39E0:
+ ldr r2, _020D3A80 ; =0x04000280
+ strh r1, [r7, #0x0]
+_020D39E8:
+ ldrh r1, [r2, #0x0]
+ ands r1, r1, #0x8000
+ bne _020D39E8
+ ldr r1, _020D3A8C ; =0x040002A0
+ ldr r4, [r1, #0x0]
+ bl OS_RestoreInterrupts
+ cmp r4, #0x8000
+ bge _020D3A18
+ mov r0, #0x8000
+ rsb r1, r0, #0x0
+ cmp r4, r1
+ bge _020D3A28
+_020D3A18:
+ add sp, sp, #0x4
+ mov r0, #0x1
+ ldmia sp!, {r4-r11,lr}
+ bx lr
+_020D3A28:
+ strh r4, [r7, #0x6]
+ ldrsh r2, [r7, #0x6]
+ add r0, r9, r10
+ add r3, r5, r8
+ mul r0, r2, r0
+ mov r2, r3, lsl #0x8
+ sub r0, r2, r0
+ mov r0, r0, lsl #0x9
+ mov r0, r0, asr #0x10
+ cmp r0, #0x8000
+ bge _020D3A5C
+ cmp r0, r1
+ bge _020D3A6C
+_020D3A5C:
+ add sp, sp, #0x4
+ mov r0, #0x1
+ ldmia sp!, {r4-r11,lr}
+ bx lr
+_020D3A6C:
+ strh r0, [r7, #0x2]
+ mov r0, #0x0
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r11,lr}
+ bx lr
+ .balign 4
+_020D3A80: .word 0x04000280
+_020D3A84: .word 0x04000290
+_020D3A88: .word 0x04000298
+_020D3A8C: .word 0x040002A0
+
+ arm_func_start TP_GetLatestIndexInAuto
+TP_GetLatestIndexInAuto: ; 0x020D3A90
+ ldr r0, _020D3A9C ; =0x021D5474
+ ldrh r0, [r0, #0xc]
+ bx lr
+ .balign 4
+_020D3A9C: .word 0x021D5474
+
+ arm_func_start TP_GetLatestRawPointInAuto
+TP_GetLatestRawPointInAuto: ; 0x020D3AA0
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ mov r1, #0x3
+ ldr lr, _020D3C10 ; =0x021D5474
+ strh r1, [r0, #0x6]
+ ldrh r1, [lr, #0xe]
+ ldrh r3, [lr, #0xc]
+ cmp r1, #0x1
+ beq _020D3AD0
+ ldrh r1, [lr, #0x14]
+ cmp r1, #0x1
+ bne _020D3B0C
+_020D3AD0:
+ ldr r1, _020D3C10 ; =0x021D5474
+ mov r2, r3, lsl #0x3
+ ldr r1, [r1, #0x10]
+ add sp, sp, #0x4
+ add r3, r1, r3, lsl #0x3
+ ldrh r2, [r1, r2]
+ ldrh r1, [r3, #0x2]
+ strh r2, [r0, #0x0]
+ strh r1, [r0, #0x2]
+ ldrh r2, [r3, #0x4]
+ ldrh r1, [r3, #0x6]
+ strh r2, [r0, #0x4]
+ strh r1, [r0, #0x6]
+ ldmia sp!, {r4-r5,lr}
+ bx lr
+_020D3B0C:
+ add r1, r0, #0x6
+ mov r12, #0x0
+ b _020D3BE0
+_020D3B18:
+ subs r5, r3, r12
+ ldr r2, [lr, #0x10]
+ addmi r5, r5, r4
+ add r2, r2, r5, lsl #0x3
+ ldrh r4, [r2, #0x4]
+ cmp r4, #0x0
+ bne _020D3B60
+ ldrh r3, [r2, #0x0]
+ ldrh r1, [r2, #0x2]
+ add sp, sp, #0x4
+ strh r3, [r0, #0x0]
+ strh r1, [r0, #0x2]
+ ldrh r3, [r2, #0x4]
+ ldrh r1, [r2, #0x6]
+ strh r3, [r0, #0x4]
+ strh r1, [r0, #0x6]
+ ldmia sp!, {r4-r5,lr}
+ bx lr
+_020D3B60:
+ ldrh r4, [r0, #0x6]
+ ands r4, r4, #0x1
+ beq _020D3B90
+ ldrh r4, [r2, #0x6]
+ ands r4, r4, #0x1
+ bne _020D3B90
+ ldrh r4, [r2, #0x0]
+ cmp r12, #0x0
+ strh r4, [r0, #0x0]
+ ldrneh r4, [r1, #0x0]
+ bicne r4, r4, #0x1
+ strneh r4, [r1, #0x0]
+_020D3B90:
+ ldrh r4, [r0, #0x6]
+ ands r4, r4, #0x2
+ beq _020D3BC0
+ ldrh r4, [r2, #0x6]
+ ands r4, r4, #0x2
+ bne _020D3BC0
+ ldrh r2, [r2, #0x2]
+ cmp r12, #0x0
+ strh r2, [r0, #0x2]
+ ldrneh r2, [r1, #0x0]
+ bicne r2, r2, #0x2
+ strneh r2, [r1, #0x0]
+_020D3BC0:
+ ldrh r2, [r0, #0x6]
+ cmp r2, #0x0
+ moveq r1, #0x1
+ streqh r1, [r0, #0x4]
+ addeq sp, sp, #0x4
+ ldmeqia sp!, {r4-r5,lr}
+ bxeq lr
+ add r12, r12, #0x1
+_020D3BE0:
+ ldrh r2, [lr, #0xe]
+ cmp r12, r2
+ bge _020D3BFC
+ ldrh r4, [lr, #0x14]
+ sub r2, r4, #0x1
+ cmp r12, r2
+ blt _020D3B18
+_020D3BFC:
+ mov r1, #0x1
+ strh r1, [r0, #0x4]
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,lr}
+ bx lr
+ .balign 4
+_020D3C10: .word 0x021D5474
+
+ arm_func_start TP_RequestAutoSamplingStopAsync
+TP_RequestAutoSamplingStopAsync: ; 0x020D3C14
+ stmdb sp!, {r4,lr}
+ bl OS_DisableInterrupts
+ mov r4, r0
+ ldr r1, _020D3CB0 ; =0x03000200
+ mov r0, #0x6
+ mov r2, #0x0
+ bl PXI_SendWordByFifo
+_020D3C30:
+ cmp r0, #0x0
+ movge r0, #0x1
+ movlt r0, #0x0
+ cmp r0, #0x0
+ bne _020D3C84
+ mov r0, r4
+ bl OS_RestoreInterrupts
+ ldr r0, _020D3CB4
+ ldrh r1, [r0, #0x34]
+ ldr r3, [r0]
+ orr r1, r1, #0x4
+ strh r1, [r0, #0x34]
+ cmp r3, #0x0
+ ldmeqia sp!, {r4, lr}
+ bxeq lr
+ mov r0, #0x2
+ mov r1, #0x4
+ mov r2, #0x0
+ blx r3
+ ldmia sp!, {r4, lr}
+ bx lr
+_020D3C84:
+ ldr r1, _020D3CB4
+ mov r0, r4
+ ldrh r2, [r1, #0x36]
+ orr r2, r2, #0x4
+ strh r2, [r1, #0x36]
+ ldrh r2, [r1, #0x34]
+ bic r2, r2, #0x4
+ strh r2, [r1, #0x34]
+ bl OS_RestoreInterrupts
+ ldmia sp!, {r4, lr}
+ bx lr
+_020D3CB0: .word 0x03000200
+_020D3CB4: .word 0x021D5474
+
+ arm_func_start TP_RequestAutoSamplingStartAsync
+TP_RequestAutoSamplingStartAsync: ; 0x020D3CB8
+ stmdb sp!, {r4-r6,lr}
+ ldr r4, _020D3DC0 ; =0x021D5474
+ mov r5, r1
+ mov r12, #0x0
+ mov r6, r0
+ str r2, [r4, #0x10]
+ strh r12, [r4, #0xc]
+ strh r5, [r4, #0xe]
+ strh r3, [r4, #0x14]
+ cmp r3, #0x0
+ bls _020D3D00
+ mov r1, r12
+_020D3CE8:
+ ldr r0, [r4, #0x10]
+ add r0, r0, r12, lsl #0x3
+ add r12, r12, #0x1
+ strh r1, [r0, #0x4]
+ cmp r12, r3
+ blo _020D3CE8
+_020D3D00:
+ bl OS_DisableInterrupts
+ mov r4, r0
+ ldr r0, _020D3DC4 ; =0x02000100
+ and r1, r5, #0xff
+ orr r1, r1, r0
+ mov r0, #0x6
+ mov r2, #0x0
+ bl PXI_SendWordByFifo
+_020D3D20:
+ cmp r0, #0x0
+ movlt r0, #0x0
+ blt _020D3D4C
+ ldr r1, _020D3DC8
+ mov r0, #0x6
+ orr r1, r6, r1
+ mov r2, #0x0
+ bl PXI_SendWordByFifo
+ cmp r0, #0x0
+ movlt r0, #0x0
+ movge r0, #0x1
+_020D3D4C:
+ ands r0, r0, #0xFF
+ bne _020D3D94
+ mov r0, r4
+ bl OS_RestoreInterrupts
+ ldr r0, _020D3DC0
+ ldrh r1, [r0, #0x34]
+ ldr r3, [r0]
+ orr r1, r1, #0x2
+ strh r1, [r0, #0x34]
+ cmp r3, #0x0
+ ldmeqia sp!, {r4-r6, lr}
+ bxeq lr
+ mov r0, #0x1
+ mov r1, #0x4
+ mov r2, #0x0
+ blx r3
+ ldmia sp!, {r4-r6, lr}
+ bx lr
+_020D3D94:
+ ldr r1, _020D3DC0
+ mov r0, r4
+ ldrh r2, [r1, #0x36]
+ orr r2, r2, #0x2
+ strh r2, [r1, #0x36]
+ ldrh r2, [r1, #0x34]
+ bic r2, r2, #0x2
+ strh r2, [r1, #0x34]
+ bl OS_RestoreInterrupts
+ ldmia sp!, {r4-r6, lr}
+ bx lr
+_020D3DC0: .word 0x021D5474
+_020D3DC4: .word 0x02000100
+_020D3DC8: .word 0x01010000
+
+ arm_func_start TP_WaitRawResult
+TP_WaitRawResult: ; 0x020D3DCC
+ stmdb sp!, {r4,lr}
+ mov r4, r0
+ mov r0, #0x1
+ bl TP_WaitBusy
+ ldr r1, _020D3E20 ; =0x021D5474
+ ldrh r0, [r1, #0x34]
+ ands r0, r0, #0x1
+ movne r0, #0x1
+ ldmneia sp!, {r4,lr}
+ bxne lr
+ ldrh r3, [r1, #0x4]
+ ldrh r2, [r1, #0x6]
+ mov r0, #0x0
+ strh r3, [r4, #0x0]
+ strh r2, [r4, #0x2]
+ ldrh r2, [r1, #0x8]
+ ldrh r1, [r1, #0xa]
+ strh r2, [r4, #0x4]
+ strh r1, [r4, #0x6]
+ ldmia sp!, {r4,lr}
+ bx lr
+ .balign 4
+_020D3E20: .word 0x021D5474
+
+ arm_func_start TP_RequestSamplingAsync
+TP_RequestSamplingAsync: ; 0x020D3E24
+ stmdb sp!, {r4,lr}
+ bl OS_DisableInterrupts
+ mov r4, r0
+ mov r0, #0x6
+ mov r1, #0x3000000
+ mov r2, #0x0
+ bl PXI_SendWordByFifo
+_020D3E40:
+ cmp r0, #0x0
+ movge r0, #0x1
+ movlt r0, #0x0
+ cmp r0, #0x0
+ bne _020D3E94
+ mov r0, r4
+ bl OS_RestoreInterrupts
+ ldr r0, _20D3EC0
+ ldrh r1, [r0, #0x34]
+ ldr r3, [r0]
+ orr r1, r1, #0x1
+ strh r1, [r0, #0x34]
+ cmp r3, #0x0
+ ldmeqia sp!, {r4, lr}
+ bxeq lr
+ mov r0, #0x0
+ mov r2, r0
+ mov r1, #0x4
+ blx r3
+ ldmia sp!, {r4, lr}
+ bx lr
+_020D3E94:
+ ldr r1, _20D3EC0
+ mov r0, r4
+ ldrh r2, [r1, #0x36]
+ orr r2, r2, #0x1
+ strh r2, [r1, #0x36]
+ ldrh r2, [r1, #0x34]
+ bic r2, r2, #0x1
+ strh r2, [r1, #0x34]
+ bl OS_RestoreInterrupts
+ ldmia sp!, {r4, lr}
+ bx lr
+_20D3EC0: .word 0x021D5474
+
+ arm_func_start TP_SetCalibrateParam
+TP_SetCalibrateParam: ; 0x020D3EC4
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ movs r4, r0
+ ldreq r0, _020D3FF8 ; =0x021D5474
+ moveq r1, #0x0
+ streqh r1, [r0, #0x30]
+ addeq sp, sp, #0x4
+ ldmeqia sp!, {r4-r5,lr}
+ bxeq lr
+ bl OS_DisableInterrupts
+ ldrsh lr, [r4, #0x4]
+ cmp lr, #0x0
+ beq _020D3F50
+ ldr r5, _020D3FFC ; =0x04000280
+ mov r12, #0x0
+ ldr r2, _020D4000 ; =0x04000290
+ strh r12, [r5, #0x0]
+ mov r3, #0x10000000
+ ldr r1, _020D4004 ; =0x04000298
+ str r3, [r2, #0x0]
+ str lr, [r1, #0x0]
+ str r12, [r1, #0x4]
+ ldrsh r2, [r4, #0x0]
+ ldr r1, _020D3FF8 ; =0x021D5474
+ str r2, [r1, #0x18]
+ ldrsh r2, [r4, #0x4]
+ str r2, [r1, #0x1c]
+_020D3F30:
+ ldrh r1, [r5, #0x0]
+ ands r1, r1, #0x8000
+ bne _020D3F30
+ ldr r2, _020D4008 ; =0x040002A0
+ ldr r1, _020D3FF8 ; =0x021D5474
+ ldr r2, [r2, #0x0]
+ str r2, [r1, #0x20]
+ b _020D3F64
+_020D3F50:
+ ldr r1, _020D3FF8 ; =0x021D5474
+ mov r2, #0x0
+ str r2, [r1, #0x18]
+ str r2, [r1, #0x1c]
+ str r2, [r1, #0x20]
+_020D3F64:
+ ldrsh r5, [r4, #0x6]
+ cmp r5, #0x0
+ beq _020D3FC8
+ ldr ip, _020D3FFC ; =0x04000280
+ mov lr, #0x0
+ ldr r2, _020D4000 ; =0x04000290
+ strh lr, [r12, #0x0]
+ mov r3, #0x10000000
+ ldr r1, _020D4004 ; =0x04000298
+ str r3, [r2, #0x0]
+ str r5, [r1, #0x0]
+ str lr, [r1, #0x4]
+ ldrsh r2, [r4, #0x2]
+ ldr r1, _020D3FF8 ; =0x021D5474
+ str r2, [r1, #0x24]
+ ldrsh r2, [r4, #0x6]
+ str r2, [r1, #0x28]
+_020D3FA8:
+ ldrh r1, [r12, #0x0]
+ ands r1, r1, #0x8000
+ bne _020D3FA8
+ ldr r2, _020D4008 ; =0x040002A0
+ ldr r1, _020D3FF8 ; =0x021D5474
+ ldr r2, [r2, #0x0]
+ str r2, [r1, #0x2c]
+ b _020D3FDC
+_020D3FC8:
+ ldr r1, _020D3FF8 ; =0x021D5474
+ mov r2, #0x0
+ str r2, [r1, #0x24]
+ str r2, [r1, #0x28]
+ str r2, [r1, #0x2c]
+_020D3FDC:
+ bl OS_RestoreInterrupts
+ ldr r0, _020D3FF8 ; =0x021D5474
+ mov r1, #0x1
+ strh r1, [r0, #0x30]
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,lr}
+ bx lr
+ .balign 4
+_020D3FF8: .word 0x021D5474
+_020D3FFC: .word 0x04000280
+_020D4000: .word 0x04000290
+_020D4004: .word 0x04000298
+_020D4008: .word 0x040002A0
+
+ arm_func_start TP_GetUserInfo
+TP_GetUserInfo: ; 0x020D400C
+ stmdb sp!, {r4-r6,lr}
+ sub sp, sp, #0x18
+ ldr ip, _020D40B4 ; =0x027FFC80
+ mov r4, r0
+ ldrh r1, [r12, #0x58]
+ ldrh r2, [r12, #0x5a]
+ ldrb r3, [r12, #0x5c]
+ cmp r1, #0x0
+ ldrb lr, [r12, #0x5d]
+ ldrh r6, [r12, #0x5e]
+ ldrh r5, [r12, #0x60]
+ ldrb r0, [r12, #0x62]
+ ldrb r12, [r12, #0x63]
+ bne _020D405C
+ cmp r6, #0x0
+ bne _020D405C
+ cmp r2, #0x0
+ bne _020D405C
+ cmp r5, #0x0
+ beq _020D4080
+_020D405C:
+ str lr, [sp, #0x0]
+ str r6, [sp, #0x4]
+ str r5, [sp, #0x8]
+ str r0, [sp, #0xc]
+ mov r0, r4
+ str r12, [sp, #0x10]
+ bl TP_CalcCalibrateParam
+_020D4078:
+ cmp r0, #0
+ beq _020D40A4
+_020D4080:
+ mov r0, #0x0
+ strh r0, [r4, #0x0]
+ strh r0, [r4, #0x2]
+ strh r0, [r4, #0x4]
+ strh r0, [r4, #0x6]
+ add sp, sp, #0x18
+ mov r0, #0x1
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+_020D40A4:
+ mov r0, #0x1
+ add sp, sp, #0x18
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+_020D40B4: .word 0x027FFC80
+
+ arm_func_start TP_Init
+TP_Init: ; 0x020D40B8
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ ldr r0, _020D413C ; =0x021D5470
+ ldrh r1, [r0, #0x0]
+ cmp r1, #0x0
+ addne sp, sp, #0x4
+ ldmneia sp!, {r4-r5,lr}
+ bxne lr
+ mov r1, #0x1
+ strh r1, [r0, #0x0]
+ bl PXI_Init
+ ldr r0, _020D4140 ; =0x021D5474
+ mov r1, #0x0
+ strh r1, [r0, #0x32]
+ strh r1, [r0, #0x36]
+ strh r1, [r0, #0xc]
+ str r1, [r0, #0x0]
+ str r1, [r0, #0x10]
+ strh r1, [r0, #0x30]
+ strh r1, [r0, #0x34]
+ mov r5, #0x6
+ mov r4, #0x1
+_020D4110:
+ mov r0, r5
+ mov r1, r4
+ bl PXI_IsCallbackReady
+_020D411C:
+ cmp r0, #0x0
+ beq _020D4110
+ ldr r1, _020D4144
+ mov r0, #0x6
+ bl PXI_SetFifoRecvCallback
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,lr}
+ bx lr
+_020D413C: .word 0x021D5470 ; initial$7594
+_020D4140: .word 0x021D5474 ; tpState
+_020D4144: .word TPi_TpCallback
+
+ arm_func_start TPi_TpCallback
+TPi_TpCallback: ; 0x020D4148
+ stmdb sp!, {r4,lr}
+ sub sp, sp, #0x8
+ mov r0, r1, lsl #0x10
+ mov r3, r0, lsr #0x10
+ and r0, r3, #0x7f00
+ mov r0, r0, lsl #0x8
+ cmp r2, #0x0
+ mov r0, r0, lsr #0x10
+ beq _020D41AC
+ ldr r1, _020D43FC ; =0x021D5474
+ mov r2, #0x1
+ ldrh r4, [r1, #0x34]
+ ldr r3, [r1, #0x0]
+ orr r2, r4, r2, lsl r0
+ cmp r3, #0x0
+ strh r2, [r1, #0x34]
+ addeq sp, sp, #0x8
+ ldmeqia sp!, {r4,lr}
+ bxeq lr
+ mov r1, #0x4
+ mov r2, #0x0
+ blx r3
+ add sp, sp, #0x8
+ ldmia sp!, {r4,lr}
+ bx lr
+_020D41AC:
+ cmp r0, #0x10
+ bne _020D427C
+ ldr r1, _020D43FC ; =0x021D5474
+ ldrh r3, [r1, #0xc]
+ ldrh r2, [r1, #0x14]
+ add r3, r3, #0x1
+ strh r3, [r1, #0xc]
+ ldrh r3, [r1, #0xc]
+ cmp r3, r2
+ movcs r2, #0x0
+ strcsh r2, [r1, #0xc]
+ ldr r1, _020D4400 ; =0x027FFFAA
+ ldr r2, _020D43FC ; =0x021D5474
+ ldrh r3, [r1, #0x0]
+ ldr r1, _020D4404 ; =0x027FFFAC
+ ldrh r12, [r2, #0xc]
+ strh r3, [sp, #0x0]
+ ldrh r1, [r1, #0x0]
+ ldr r4, [r2, #0x10]
+ mov lr, r12, lsl #0x3
+ strh r1, [sp, #0x2]
+ ldr r3, [sp, #0x0]
+ add r1, r4, r12, lsl #0x3
+ mov r3, r3, lsl #0x14
+ mov r3, r3, lsr #0x14
+ strh r3, [r4, lr]
+ ldr r3, [sp, #0x0]
+ mov r3, r3, lsl #0x8
+ mov r3, r3, lsr #0x14
+ strh r3, [r1, #0x2]
+ ldr r3, [sp, #0x0]
+ mov r3, r3, lsl #0x7
+ mov r3, r3, lsr #0x1f
+ and r3, r3, #0xff
+ strh r3, [r1, #0x4]
+ ldr r3, [sp, #0x0]
+ mov r3, r3, lsl #0x5
+ mov r3, r3, lsr #0x1e
+ and r3, r3, #0xff
+ strh r3, [r1, #0x6]
+ ldr r3, [r2, #0x0]
+ cmp r3, #0x0
+ addeq sp, sp, #0x8
+ ldmeqia sp!, {r4,lr}
+ bxeq lr
+ ldrh r2, [r2, #0xc]
+ mov r1, #0x0
+ and r2, r2, #0xff
+ blx r3
+ add sp, sp, #0x8
+ ldmia sp!, {r4,lr}
+ bx lr
+_020D427C:
+ ands r1, r1, #0x1000000
+ addeq sp, sp, #0x8
+ ldmeqia sp!, {r4,lr}
+ bxeq lr
+ and r1, r3, #0xff
+ cmp r1, #0x4
+ addls pc, pc, r1, lsl #0x2
+ b _020D43EC
+_020D429C:
+ b _020D42B0
+ b _020D43EC
+ b _020D4390
+ b _020D4398
+ b _020D4388
+_020D42B0:
+ cmp r0, #0x0
+ beq _020D42D4
+ cmp r0, #0x1
+ beq _020D4338
+ cmp r0, #0x2
+ ldreq r1, _020D43FC
+ moveq r2, #0x0
+ streqh r2, [r1, #0x32]
+ b _020D4344
+_020D42D4:
+ ldr r1, _020D4400
+ ldr r3, _020D4404
+ ldrh ip, [r1]
+ ldr r1, _020D43FC
+ mov r2, #0x0
+ strh ip, [sp, #0x4]
+ ldrh r3, [r3]
+ strh r3, [sp, #0x6]
+ ldr ip, [sp, #0x4]
+ strh r2, [r1, #0x32]
+ mov r3, ip, lsl #0x7
+ mov r2, ip, lsl #0x5
+ mov lr, ip, lsl #0x14
+ mov ip, ip, lsl #0x8
+ mov r3, r3, lsr #0x1F
+ mov r2, r2, lsr #0x1E
+ mov lr, lr, lsr #0x14
+ mov ip, ip, lsr #0x14
+ and r3, r3, #0xFF
+ and r2, r2, #0xFF
+ strh lr, [r1, #0x4]
+ strh ip, [r1, #0x6]
+ strh r3, [r1, #0x8]
+ strh r2, [r1, #0xA]
+ b _020D4344
+_020D4338:
+ ldr r1, _020D43FC
+ mov r2, #0x2
+ strh r2, [r1, #0x32]
+_020D4344:
+ ldr r1, _020D43FC
+ mov r2, #0x1
+ ldrh ip, [r1, #0x36]
+ mvn r2, r2, lsl r0
+ ldr r3, [r1]
+ and r2, ip, r2
+ cmp r3, #0x0
+ strh r2, [r1, #0x36]
+ addeq sp, sp, #0x8
+ ldmeqia sp!, {r4, lr}
+ bxeq lr
+ mov r1, #0x0
+ mov r2, r1
+ blx r3
+ add sp, sp, #0x8
+ ldmia sp!, {r4, lr}
+ bx lr
+_020D4388:
+ mov r4, #0x3
+ b _020D439C
+_020D4390:
+ mov r4, #0x1
+ b _020D439C
+_020D4398:
+ mov r4, #0x2
+_020D439C:
+ ldr r1, _020D43FC
+ mov lr, #0x1
+ ldrh ip, [r1, #0x34]
+ ldr r3, [r1]
+ mvn r2, lr, lsl r0
+ orr ip, ip, lr, lsl r0
+ strh ip, [r1, #0x34]
+ ldrh ip, [r1, #0x36]
+ cmp r3, #0x0
+ addeq sp, sp, #0x8
+ and r2, ip, r2
+ strh r2, [r1, #0x36]
+ ldmeqia sp!, {r4, lr}
+ bxeq lr
+ and r1, r4, #0xff
+ mov r2, #0x0
+ blx r3
+ add sp, sp, #0x8
+ ldmia sp!, {r4, lr}
+ bx lr
+_020D43EC:
+ bl OS_Terminate
+ add sp, sp, #0x8
+ ldmia sp!, {r4,lr}
+ bx lr
+ .balign 4
+_020D43FC: .word 0x021D5474
+_020D4400: .word 0x027FFFAA
+_020D4404: .word 0x027FFFAC
+
+ arm_func_start MicWaitBusy
+MicWaitBusy: ; 0x020D4408
+ ldr ip, _020D441C ; =0x021D54B0
+_020D440C:
+ ldr r0, [r12, #0x0]
+ cmp r0, #0x1
+ beq _020D440C
+ bx lr
+ .balign 4
+_020D441C: .word 0x021D54B0
+
+ arm_func_start MicGetResultCallback
+MicGetResultCallback: ; 0x020D4420
+ ldr r1, _020D442C ; =0x021D54B0
+ str r0, [r1, #0xc]
+ bx lr
+ .balign 4
+_020D442C: .word 0x021D54B0
+
+ arm_func_start MicStopAutoSampling
+MicStopAutoSampling:
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldr r1, _020D4460 ; =0x03004200
+ mov r0, #0x9
+ mov r2, #0x0
+ bl PXI_SendWordByFifo
+_020D4448:
+ cmp r0, #0x0
+ movge r0, #0x1
+ movlt r0, #0x0
+ add sp, sp, #4
+ ldmfd sp!, {lr}
+ bx lr
+_020D4460: .word 0x03004200
+
+ arm_func_start MicStartAutoSampling
+MicStartAutoSampling: ; 0x020D4464
+ stmdb sp!, {r4-r6,lr}
+ ldr ip, _020D4584 ; =0x02004100
+ mov r6, r0
+ mov r5, r1
+ mov r4, r2
+ orr r1, r3, r12
+ mov r0, #0x9
+ mov r2, #0x0
+ bl PXI_SendWordByFifo
+_020D4488:
+ cmp r0, #0x0
+ movlt r0, #0x0
+ ldmltia sp!, {r4-r6, lr}
+ bxlt lr
+ mov r0, r6, lsr #0x10
+ orr r1, r0, #0x10000
+ mov r0, #0x9
+ mov r2, #0x0
+ bl PXI_SendWordByFifo
+ cmp r0, #0x0
+ movlt r0, #0x0
+ ldmltia sp!, {r4-r6, lr}
+ bxlt lr
+ ldr r1, _020D4588
+ mov r0, #0x9
+ and r1, r6, r1
+ orr r1, r1, #0x20000
+ mov r2, #0x0
+ bl PXI_SendWordByFifo
+ cmp r0, #0x0
+ movlt r0, #0x0
+ ldmltia sp!, {r4-r6, lr}
+ bxlt lr
+ mov r0, r5, lsr #0x10
+ orr r1, r0, #0x30000
+ mov r0, #0x9
+ mov r2, #0x0
+ bl PXI_SendWordByFifo
+ cmp r0, #0x0
+ movlt r0, #0x0
+ ldmltia sp!, {r4-r6, lr}
+ bxlt lr
+ ldr r1, _020D4588
+ mov r0, #0x9
+ and r1, r5, r1
+ orr r1, r1, #0x40000
+ mov r2, #0x0
+ bl PXI_SendWordByFifo
+ cmp r0, #0x0
+ movlt r0, #0x0
+ ldmltia sp!, {r4-r6, lr}
+ bxlt lr
+ mov r0, r4, lsr #0x10
+ orr r1, r0, #0x50000
+ mov r0, #0x9
+ mov r2, #0x0
+ bl PXI_SendWordByFifo
+ cmp r0, #0x0
+ movlt r0, #0x0
+ ldmltia sp!, {r4-r6, lr}
+ bxlt lr
+ ldr r0, _020D4588
+ ldr r1, _020D458C
+ and r0, r4, r0
+ orr r1, r0, r1
+ mov r0, #0x9
+ mov r2, #0x0
+ bl PXI_SendWordByFifo
+ cmp r0, #0x0
+ movge r0, #0x1
+ movlt r0, #0x0
+ ldmia sp!, {r4-r6, lr}
+ bx lr
+_020D4584: .word 0x02004100
+_020D4588: .word 0x0000FFFF
+_020D458C: .word 0x01060000
+
+ arm_func_start MicDoSampling
+MicDoSampling: ; 0x020D4590
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldr r1, _020D45C4 ; =0x03004000
+ mov r2, #0x0
+ orr r1, r0, r1
+ mov r0, #0x9
+ bl PXI_SendWordByFifo
+_020D45AC:
+ cmp r0, #0x0
+ movge r0, #0x1
+ movlt r0, #0x0
+ add sp, sp, #0x4
+ ldmfd sp!, {lr}
+ bx lr
+_020D45C4: .word 0x03004000
+
+ arm_func_start MicCommonCallback
+MicCommonCallback: ; 0x020D45C8
+ stmdb sp!, {r4,lr}
+ mov r4, r1
+ cmp r2, #0x0
+ beq _020D4610
+ ldr r0, _020D4700 ; =0x021D54B0
+ ldr r2, _020D4700 ; =0x021D54B0
+ ldr r1, [r0, #0x0]
+ ldr r12, [r2, #0x4]
+ cmp r1, #0x0
+ movne r1, #0x0
+ strne r1, [r0, #0x0]
+ cmp r12, #0x0
+ beq _020D4610
+ ldr r1, [r2, #0x8]
+ mov r3, #0x0
+ mov r0, #0x6
+ str r3, [r2, #0x4]
+ blx r12
+_020D4610:
+ and r0, r4, #0xff
+ mov r1, r0, lsl #0x10
+ and r2, r4, #0x7f00
+ mov r0, r2, lsl #0x8
+ mov r1, r1, lsr #0x10
+ cmp r1, #0x4
+ mov r2, r0, lsr #0x10
+ addls pc, pc, r1, lsl #0x2
+ b _020D4670
+_020D4634:
+ b _020D4648
+ b _020D4650
+ b _020D4658
+ b _020D4660
+ b _020D4668
+_020D4648:
+ mov r0, #0x0
+ b _020D4674
+_020D4650:
+ mov r0, #0x4
+ b _020D4674
+_020D4658:
+ mov r0, #0x2
+ b _020D4674
+_020D4660:
+ mov r0, #0x5
+ b _020D4674
+_020D4668:
+ mov r0, #0x1
+ b _020D4674
+_020D4670:
+ mov r0, #0x6
+_020D4674:
+ cmp r2, #0x51
+ bne _020D46A0
+ ldr r1, _020D4700 ; =0x021D54B0
+ ldr r2, [r1, #0x10]
+ cmp r2, #0x0
+ ldmeqia sp!, {r4,lr}
+ bxeq lr
+ ldr r1, [r1, #0x14]
+ blx r2
+ ldmia sp!, {r4,lr}
+ bx lr
+_020D46A0:
+ cmp r2, #0x40
+ bne _020D46C0
+ ldr r1, _020D4700 ; =0x021D54B0
+ ldr r2, [r1, #0x18]
+ cmp r2, #0x0
+ ldrne r1, _020D4704 ; =0x027FFF94
+ ldrneh r1, [r1, #0x0]
+ strneh r1, [r2, #0x0]
+_020D46C0:
+ ldr r1, _020D4700 ; =0x021D54B0
+ ldr r2, [r1, #0x0]
+ cmp r2, #0x0
+ movne r2, #0x0
+ strne r2, [r1, #0x0]
+ ldr r2, _020D4700 ; =0x021D54B0
+ ldr r4, [r2, #0x4]
+ cmp r4, #0x0
+ ldmeqia sp!, {r4,lr}
+ bxeq lr
+ ldr r1, [r2, #0x8]
+ mov r3, #0x0
+ str r3, [r2, #0x4]
+ blx r4
+ ldmia sp!, {r4,lr}
+ bx lr
+ .balign 4
+_020D4700: .word 0x021D54B0
+_020D4704: .word 0x027FFF94
+
+ arm_func_start MIC_GetLastSamplingAddress
+MIC_GetLastSamplingAddress: ; 0x020D4708
+ ldr r0, _020D4714 ; =0x027FFF90
+ ldr r0, [r0, #0x0]
+ bx lr
+ .balign 4
+_020D4714: .word 0x027FFF90
+
+ arm_func_start MIC_StopAutoSampling
+MIC_StopAutoSampling: ; 0x020D4718
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldr r0, _020D4754 ; =MicGetResultCallback
+ mov r1, #0x0
+ bl MIC_StopAutoSamplingAsync
+ ldr r1, _020D4758 ; =0x021D54B0
+ cmp r0, #0x0
+ str r0, [r1, #0xc]
+ bne _020D4740
+ bl MicWaitBusy
+_020D4740:
+ ldr r0, _020D4758 ; =0x021D54B0
+ ldr r0, [r0, #0xc]
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+ .balign 4
+_020D4754: .word MicGetResultCallback
+_020D4758: .word 0x021D54B0
+
+ arm_func_start MIC_StopAutoSamplingAsync
+MIC_StopAutoSamplingAsync: ; 0x020D475C
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ mov r5, r0
+ mov r4, r1
+ bl OS_DisableInterrupts
+ ldr r1, _020D47C8 ; =0x021D54B0
+ ldr r2, [r1, #0x0]
+ cmp r2, #0x0
+ beq _020D4794
+ bl OS_RestoreInterrupts
+ add sp, sp, #0x4
+ mov r0, #0x1
+ ldmia sp!, {r4-r5,lr}
+ bx lr
+_020D4794:
+ mov r2, #0x1
+ str r2, [r1, #0x0]
+ bl OS_RestoreInterrupts
+ ldr r0, _020D47C8 ; =0x021D54B0
+ str r5, [r0, #0x4]
+ str r4, [r0, #0x8]
+ bl MicStopAutoSampling
+_020D47B0:
+ cmp r0, #0x0
+ movne r0, #0x0
+ moveq r0, #0x3
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5, lr}
+ bx lr
+_020D47C8: .word 0x021D54B0
+
+ arm_func_start MIC_StartAutoSampling
+MIC_StartAutoSampling: ; 0x020D47CC
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldr r1, _020D4808 ; =MicGetResultCallback
+ mov r2, #0x0
+ bl MIC_StartAutoSamplingAsync
+ ldr r1, _020D480C ; =0x021D54B0
+ cmp r0, #0x0
+ str r0, [r1, #0xc]
+ bne _020D47F4
+ bl MicWaitBusy
+_020D47F4:
+ ldr r0, _020D480C ; =0x021D54B0
+ ldr r0, [r0, #0xc]
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+ .balign 4
+_020D4808: .word MicGetResultCallback
+_020D480C: .word 0x021D54B0
+
+ arm_func_start MIC_StartAutoSamplingAsync
+MIC_StartAutoSamplingAsync: ; 0x020D4810
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0x4
+ mov r7, r0
+ ldr r0, [r7, #0x4]
+ mov r6, r1
+ ands r0, r0, #0x1f
+ mov r5, r2
+ addne sp, sp, #0x4
+ movne r0, #0x2
+ ldmneia sp!, {r4-r7,lr}
+ bxne lr
+ ldr r1, [r7, #0x8]
+ ands r0, r1, #0x1f
+ addne sp, sp, #0x4
+ movne r0, #0x2
+ ldmneia sp!, {r4-r7,lr}
+ bxne lr
+ cmp r1, #0x0
+ addeq sp, sp, #0x4
+ moveq r0, #0x2
+ ldmeqia sp!, {r4-r7,lr}
+ bxeq lr
+ ldr r0, [r7, #0xc]
+ cmp r0, #0x400
+ addcc sp, sp, #0x4
+ movcc r0, #0x2
+ ldmccia sp!, {r4-r7,lr}
+ bxcc lr
+ ldr r0, [r7, #0x0]
+ cmp r0, #0x5
+ addls pc, pc, r0, lsl #0x2
+ b _020D48D8
+_020D4890:
+ b _020D48A8
+ b _020D48B0
+ b _020D48B8
+ b _020D48C0
+ b _020D48C8
+ b _020D48D0
+_020D48A8:
+ mov r1, #0x0
+ b _020D48E8
+_020D48B0:
+ mov r1, #0x1
+ b _020D48E8
+_020D48B8:
+ mov r1, #0x2
+ b _020D48E8
+_020D48C0:
+ mov r1, #0x3
+ b _020D48E8
+_020D48C8:
+ mov r1, #0x5
+ b _020D48E8
+_020D48D0:
+ mov r1, #0x7
+ b _020D48E8
+_020D48D8:
+ add sp, sp, #0x4
+ mov r0, #0x2
+ ldmia sp!, {r4-r7,lr}
+ bx lr
+_020D48E8:
+ ldr r0, [r7, #0x10]
+ cmp r0, #0x0
+ orrne r0, r1, #0x10
+ andne r0, r0, #0xff
+ andeq r0, r1, #0xff
+ and r4, r0, #0xff
+ bl OS_DisableInterrupts
+ ldr r1, _020D497C
+ ldr r2, [r1]
+ cmp r2, #0x0
+ beq _020D4928
+ bl OS_RestoreInterrupts
+ add sp, sp, #0x4
+ mov r0, #0x1
+ ldmia sp!, {r4-r7,lr}
+ bx lr
+_020D4928:
+ mov r2, #0x1
+ str r2, [r1]
+ bl OS_RestoreInterrupts
+ ldr r0, _020D497C
+ mov r3, r4
+ str r6, [r0, #0x4]
+ str r5, [r0, #0x8]
+ ldr r1, [r7, #0x14]
+ str r1, [r0, #0x10]
+ ldr r1, [r7, #0x18]
+ str r1, [r0, #0x14]
+ ldr r0, [r7, #0x4]
+ ldr r1, [r7, #0x8]
+ ldr r2, [r7, #0xC]
+ bl MicStartAutoSampling
+ cmp r0, #0x0
+ movne r0, #0x0
+ moveq r0, #0x3
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r7,lr}
+ bx lr
+_020D497C: .word 0x021D54B0
+
+ arm_func_start MIC_DoSamplingAsync
+MIC_DoSamplingAsync: ; 0x020D4980
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0x4
+ cmp r0, #0x6
+ mov r7, r1
+ mov r6, r2
+ mov r5, r3
+ addge sp, sp, #0x4
+ movge r0, #0x2
+ ldmgeia sp!, {r4-r7,lr}
+ bxge lr
+ cmp r0, #0x3
+ addls pc, pc, r0, lsl #0x2
+ b _020D49E4
+_020D49B4:
+ b _020D49C4
+ b _020D49CC
+ b _020D49D4
+ b _020D49DC
+_020D49C4:
+ mov r4, #0x0
+ b _020D49F4
+_020D49CC:
+ mov r4, #0x1
+ b _020D49F4
+_020D49D4:
+ mov r4, #0x2
+ b _020D49F4
+_020D49DC:
+ mov r4, #0x3
+ b _020D49F4
+_020D49E4:
+ add sp, sp, #0x4
+ mov r0, #0x2
+ ldmia sp!, {r4-r7,lr}
+ bx lr
+_020D49F4:
+ bl OS_DisableInterrupts
+ ldr r1, _020D4A58
+ ldr r2, [r1]
+ cmp r2, #0x0
+ beq _020D4A1C
+ bl OS_RestoreInterrupts
+ add sp, sp, #0x4
+ mov r0, #0x1
+ ldmia sp!, {r4-r7,lr}
+ bx lr
+_020D4A1C:
+ mov r2, #0x1
+ str r2, [r1]
+ bl OS_RestoreInterrupts
+ ldr r1, _020D4A58
+ mov r0, r4
+ str r6, [r1, #0x4]
+ str r5, [r1, #0x8]
+ str r7, [r1, #0x18]
+ bl MicDoSampling
+ cmp r0, #0x0
+ movne r0, #0x0
+ moveq r0, #0x3
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r7,lr}
+ bx lr
+_020D4A58: .word 0x021D54B0
+
+ arm_func_start MIC_Init
+MIC_Init: ; 0x020D4A5C
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ ldr r1, _020D4AD8 ; =0x021D54AC
+ ldrh r0, [r1, #0x0]
+ cmp r0, #0x0
+ addne sp, sp, #0x4
+ ldmneia sp!, {r4-r5,lr}
+ bxne lr
+ ldr r0, _020D4ADC ; =0x021D54B0
+ mov r2, #0x0
+ mov r3, #0x1
+ strh r3, [r1, #0x0]
+ str r2, [r0, #0x0]
+ str r2, [r0, #0x4]
+ bl PXI_Init
+ mov r5, #0x9
+ mov r4, #0x1
+_020D4AA0:
+ mov r0, r5
+ mov r1, r4
+ bl PXI_IsCallbackReady
+_020D4AAC:
+ cmp r0, #0x0
+ beq _020D4AA0
+ ldr r2, _020D4AE0
+ mov r3, #0x0
+ ldr r1, _020D4AE4
+ mov r0, #0x9
+ str r3, [r2]
+ bl PXI_SetFifoRecvCallback
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5, lr}
+ bx lr
+_020D4AD8: .word 0x021D54AC
+_020D4ADC: .word 0x021D54B0
+_020D4AE0: .word 0x027FFF90
+_020D4AE4: .word MicCommonCallback
diff --git a/arm9/asm/STD_arm9.s b/arm9/asm/STD_arm9.s
new file mode 100644
index 00000000..b38ac8e4
--- /dev/null
+++ b/arm9/asm/STD_arm9.s
@@ -0,0 +1,17117 @@
+ .include "asm/macros.inc"
+ .include "global.inc"
+
+ .text
+
+ arm_func_start STD_CompareNString
+STD_CompareNString: ; 0x020DE03C
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ cmp r2, #0x0
+ beq _020DE080
+ cmp r2, #0x0
+ mov lr, #0x0
+ ble _020DE080
+_020DE058:
+ ldrb r12, [r0, lr]
+ ldrb r3, [r1, lr]
+ cmp r12, r3
+ addne sp, sp, #0x4
+ subne r0, r12, r3
+ ldmneia sp!, {lr}
+ bxne lr
+ add lr, lr, #0x1
+ cmp lr, r2
+ blt _020DE058
+_020DE080:
+ mov r0, #0x0
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+
+ arm_func_start STD_CompareString
+STD_CompareString: ; 0x020DE090
+ b _020DE09C
+_020DE094:
+ add r0, r0, #0x1
+ add r1, r1, #0x1
+_020DE09C:
+ ldrsb r2, [r1, #0x0]
+ ldrsb r3, [r0, #0x0]
+ cmp r3, r2
+ bne _020DE0B4
+ cmp r3, #0x0
+ bne _020DE094
+_020DE0B4:
+ sub r0, r3, r2
+ bx lr
+
+ arm_func_start STD_GetStringLength
+STD_GetStringLength: ; 0x020DE0BC
+ ldrsb r1, [r0, #0x0]
+ mov r2, #0x0
+ cmp r1, #0x0
+ beq _020DE0DC
+_020DE0CC:
+ add r2, r2, #0x1
+ ldrsb r1, [r0, r2]
+ cmp r1, #0x0
+ bne _020DE0CC
+_020DE0DC:
+ mov r0, r2
+ bx lr
+
+ arm_func_start STD_CopyLString
+STD_CopyLString: ; 0x020DE0E4
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ sub r12, r2, #0x1
+ cmp r12, #0x0
+ mov lr, #0x0
+ ble _020DE120
+_020DE0FC:
+ ldrsb r3, [r1, #0x0]
+ strb r3, [r0, lr]
+ ldrsb r3, [r1, #0x0]
+ cmp r3, #0x0
+ beq _020DE120
+ add lr, lr, #0x1
+ cmp lr, r12
+ add r1, r1, #0x1
+ blt _020DE0FC
+_020DE120:
+ sub r3, r2, #0x1
+ cmp lr, r3
+ blt _020DE138
+ cmp r2, #0x0
+ movne r2, #0x0
+ strneb r2, [r0, lr]
+_020DE138:
+ mov r0, r1
+ bl STD_GetStringLength
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+
+ arm_func_start abort
+abort: ; 0x020DE14C
+ stmdb sp!, {r3,lr}
+ mov r0, #0x1
+ bl raise
+ ldr r1, _020DE16C ; =0x021D6F78
+ mov r0, #0x1
+ str r0, [r1, #0xc]
+ bl exit
+ ldmia sp!, {r3,pc}
+ .balign 4
+_020DE16C: .word 0x021D6F78
+
+ arm_func_start exit
+exit: ; 0x020DE170
+ stmdb sp!, {r4,lr}
+ ldr r1, _020DE1B8 ; =0x021D6F78
+ mov r4, r0
+ ldr r0, [r1, #0xc]
+ cmp r0, #0x0
+ bne _020DE1AC
+ bl __destroy_global_chain
+ ldr r0, _020DE1B8 ; =0x021D6F78
+ ldr r0, [r0, #0x4]
+ cmp r0, #0x0
+ beq _020DE1AC
+ blx r0
+ ldr r0, _020DE1B8 ; =0x021D6F78
+ mov r1, #0x0
+ str r1, [r0, #0x4]
+_020DE1AC:
+ mov r0, r4
+ bl __exit
+ ldmia sp!, {r4,pc}
+ .balign 4
+_020DE1B8: .word 0x021D6F78
+
+ arm_func_start __exit
+__exit: ; 0x020DE1BC
+ stmdb sp!, {r3-r5,lr}
+ ldr r0, _020DE2CC ; =0x021D70D0
+ bl OS_TryLockMutex
+_020DE1C8: ; 0x020DE1C8
+ cmp r0, #0x0
+ bne _020DE1F4
+ ldr r0, _020DE2D0 ; =0x021D3498
+ ldr r1, _020DE2D4 ; =0x021D7088
+ ldr r2, [r0, #0x4]
+ ldr r0, _020DE2D8 ; =0x021D70AC
+ ldr r3, [r2, #0x6c]
+ mov r2, #0x1
+ str r3, [r1, #0x0]
+ str r2, [r0, #0x0]
+ b _020DE24C
+_020DE1F4:
+ ldr r0, _020DE2D0 ; =0x021D3498
+ ldr r1, _020DE2D4 ; =0x021D7088
+ ldr r0, [r0, #0x4]
+ ldr r1, [r1, #0x0]
+ ldr r0, [r0, #0x6c]
+ cmp r1, r0
+ bne _020DE224
+ ldr r0, _020DE2D8 ; =0x021D70AC
+ ldr r1, [r0, #0x0]
+ add r1, r1, #0x1
+ str r1, [r0, #0x0]
+ b _020DE24C
+_020DE224:
+ ldr r0, _020DE2CC ; =0x021D70D0
+ bl OS_LockMutex
+ ldr r0, _020DE2D0 ; =0x021D3498
+ ldr r1, _020DE2D4 ; =0x021D7088
+ ldr r2, [r0, #0x4]
+ ldr r0, _020DE2D8 ; =0x021D70AC
+ ldr r3, [r2, #0x6c]
+ mov r2, #0x1
+ str r3, [r1, #0x0]
+ str r2, [r0, #0x0]
+_020DE24C:
+ ldr r4, _020DE2DC ; =0x021D6F78
+ ldr r0, [r4, #0x8]
+ cmp r0, #0x0
+ ble _020DE280
+ ldr r5, _020DE2E0 ; =0x021D6F88
+_020DE260:
+ ldr r0, [r4, #0x8]
+ sub r1, r0, #0x1
+ ldr r0, [r5, r1, lsl #0x2]
+ str r1, [r4, #0x8]
+ blx r0
+ ldr r0, [r4, #0x8]
+ cmp r0, #0x0
+ bgt _020DE260
+_020DE280:
+ ldr r0, _020DE2D8 ; =0x021D70AC
+ ldr r1, [r0, #0x0]
+ subs r1, r1, #0x1
+ str r1, [r0, #0x0]
+ bne _020DE29C
+ ldr r0, _020DE2CC ; =0x021D70D0
+ bl OS_UnlockMutex
+_020DE29C:
+ ldr r0, _020DE2DC ; =0x021D6F78
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ beq _020DE2BC
+ blx r0
+ ldr r0, _020DE2DC ; =0x021D6F78
+ mov r1, #0x0
+ str r1, [r0, #0x0]
+_020DE2BC:
+ mov r0, #0x0
+ bl fflush
+ bl _ExitProcess
+ ldmia sp!, {r3-r5,pc}
+ .balign 4
+_020DE2CC: .word 0x021D70D0
+_020DE2D0: .word 0x021D3498
+_020DE2D4: .word 0x021D7088
+_020DE2D8: .word 0x021D70AC
+_020DE2DC: .word 0x021D6F78
+_020DE2E0: .word 0x021D6F88
+
+ arm_func_start nan
+nan: ; 0x020DE2E4
+ ldr r0, _020DE2F4 ; =0x02106B78
+ ldr ip, _020DE2F8 ; =_f2d
+ ldr r0, [r0, #0x0]
+ bx r12
+ .balign 4
+_020DE2F4: .word 0x02106B78
+_020DE2F8: .word _f2d
+
+ arm_func_start __flush_line_buffered_output_files
+__flush_line_buffered_output_files:
+ stmdb sp!, {r3-r9,lr}
+ ldr r0, _020DE384 ; =0x02106A58
+ mov r4, #0x0
+ mov r5, #0x1
+ mov r8, r0
+ mvn r9, #0x0
+ mov r7, r4
+ mov r6, #0x4c
+_020DE31C:
+ ldr r1, [r0, #0x4]
+ mov r2, r1, lsl #0x16
+ movs r2, r2, lsr #0x1d
+ beq _020DE35C
+ mov r1, r1, lsl #0x19
+ mov r1, r1, lsr #0x1e
+ tst r1, #0x1
+ beq _020DE35C
+ ldr r1, [r0, #0x8]
+ mov r1, r1, lsl #0x1d
+ mov r1, r1, lsr #0x1d
+ cmp r1, #0x1
+ bne _020DE35C
+ bl fflush
+_020DE354: ; 0x020DE354
+ cmp r0, #0x0
+ movne r4, r9
+_020DE35C:
+ cmp r5, #0x3
+ movge r0, r7
+ bge _020DE374
+ mul r0, r5, r6
+ add r5, r5, #0x1
+ add r0, r8, r0
+_020DE374:
+ cmp r0, #0x0
+ bne _020DE31C
+ mov r0, r4
+ ldmia sp!, {r3-r9,pc}
+ .balign 4
+_020DE384: .word 0x02106A58
+
+ arm_func_start __flush_all
+__flush_all: ; 0x020DE388
+ stmdb sp!, {r3-r9,lr}
+ ldr r0, _020DE3EC ; =0x02106A58
+ mov r4, #0x0
+ mov r5, #0x1
+ mov r8, r0
+ mvn r9, #0x0
+ mov r7, r4
+ mov r6, #0x4c
+_020DE3A8:
+ ldr r1, [r0, #0x4]
+ mov r1, r1, lsl #0x16
+ movs r1, r1, lsr #0x1d
+ beq _020DE3C4
+ bl fflush
+_020DE3BC: ; 0x020DE3BC
+ cmp r0, #0x0
+ movne r4, r9
+_020DE3C4:
+ cmp r5, #0x3
+ movge r0, r7
+ bge _020DE3DC
+ mul r0, r5, r6
+ add r5, r5, #0x1
+ add r0, r8, r0
+_020DE3DC:
+ cmp r0, #0x0
+ bne _020DE3A8
+ mov r0, r4
+ ldmia sp!, {r3-r9,pc}
+ .balign 4
+_020DE3EC: .word 0x02106A58
+
+ arm_func_start abs
+abs: ; 0x020DE3F0
+ cmp r0, #0x0
+ rsblt r0, r0, #0x0
+ bx lr
+
+ arm_func_start __msl_assertion_failed
+__msl_assertion_failed: ; 0x020DE3FC
+ stmdb sp!, {r3-r4,lr}
+ sub sp, sp, #0x4
+ mov r4, r0
+ mov lr, r1
+ mov r12, r2
+ str r3, [sp, #0x0]
+ ldr r0, _020DE434 ; =0x02106B3C
+ mov r1, r4
+ mov r2, lr
+ mov r3, r12
+ bl printf
+ bl abort
+ add sp, sp, #0x4
+ ldmia sp!, {r3-r4,pc}
+ .balign 4
+_020DE434: .word 0x02106B3C
+
+ arm_func_start __convert_from_newlines
+__convert_from_newlines:
+ bx lr
+
+ arm_func_start __convert_to_newlines
+__convert_to_newlines:
+ bx lr
+
+ arm_func_start __prep_buffer
+__prep_buffer:
+ ldr r1, [r0, #0x1c]
+ str r1, [r0, #0x24]
+ ldr r3, [r0, #0x20]
+ str r3, [r0, #0x28]
+ ldr r2, [r0, #0x18]
+ ldr r1, [r0, #0x2c]
+ and r1, r2, r1
+ sub r1, r3, r1
+ str r1, [r0, #0x28]
+ ldr r1, [r0, #0x18]
+ str r1, [r0, #0x34]
+ bx lr
+
+ arm_func_start __load_buffer
+__load_buffer:
+ stmdb sp!, {r4-r6,lr}
+ mov r5, r2
+ mov r4, r0
+ mov r6, r1
+ bl __prep_buffer
+ cmp r5, #0x1
+ ldreq r0, [r4, #0x20]
+ add r2, r4, #0x28
+ streq r0, [r4, #0x28]
+ ldr r0, [r4, #0x0]
+ ldr r1, [r4, #0x1c]
+ ldr r3, [r4, #0x48]
+ ldr r12, [r4, #0x3c]
+ blx r12
+ cmp r0, #0x2
+ moveq r1, #0x0
+ streq r1, [r4, #0x28]
+ cmp r6, #0x0
+ ldrne r1, [r4, #0x28]
+ strne r1, [r6, #0x0]
+ cmp r0, #0x0
+ ldmneia sp!, {r4-r6,pc}
+_020DE4C8: ; 0x020DE4C8
+ ldr r1, [r4, #0x18]
+ ldr r0, [r4, #0x28]
+ add r0, r1, r0
+ str r0, [r4, #0x18]
+ ldr r0, [r4, #0x4]
+ mov r0, r0, lsl #0x13
+ movs r0, r0, lsr #0x1f
+ bne _020DE4F4
+ ldr r0, [r4, #0x1c]
+ add r1, r4, #0x28
+ bl __convert_to_newlines
+_020DE4F4:
+ mov r0, #0x0
+ ldmia sp!, {r4-r6,pc}
+
+ arm_func_start __flush_buffer
+__flush_buffer:
+ stmdb sp!, {r3-r5,lr}
+ mov r5, r0
+ ldr r2, [r5, #0x24]
+ ldr r0, [r5, #0x1c]
+ mov r4, r1
+ subs r0, r2, r0
+ beq _020DE574
+ str r0, [r5, #0x28]
+ ldr r0, [r5, #0x4]
+ mov r0, r0, lsl #0x13
+ movs r0, r0, lsr #0x1f
+ bne _020DE538
+ ldr r0, [r5, #0x1c]
+ add r1, r5, #0x28
+ bl __convert_from_newlines
+_020DE538:
+ ldr r0, [r5, #0x0]
+ ldr r1, [r5, #0x1c]
+ ldr r3, [r5, #0x48]
+ ldr r12, [r5, #0x40]
+ add r2, r5, #0x28
+ blx r12
+ cmp r4, #0x0
+ ldrne r1, [r5, #0x28]
+ strne r1, [r4, #0x0]
+ cmp r0, #0x0
+ ldmneia sp!, {r3-r5,pc}
+_020DE564: ; 0x020DE564
+ ldr r1, [r5, #0x18]
+ ldr r0, [r5, #0x28]
+ add r0, r1, r0
+ str r0, [r5, #0x18]
+_020DE574:
+ mov r0, r5
+ bl __prep_buffer
+_020DE57C: ; 0x020DE57C
+ mov r0, #0x0
+ ldmia sp!, {r3-r5,pc}
+
+ arm_func_start fread
+fread: ; 0x020DE584
+ stmdb sp!, {r4-r10,lr}
+ ldr r4, _020DE67C ; =0x02106A58
+ mov r7, r3
+ cmp r7, r4
+ moveq r6, #0x2
+ mov r10, r0
+ movne r6, #0x5
+ mov r0, #0x18
+ mul r4, r6, r0
+ ldr r5, _020DE680 ; =0x021D70D0
+ mov r9, r1
+ add r0, r5, r4
+ mov r8, r2
+ bl OS_TryLockMutex
+_020DE5BC: ; 0x020DE5BC
+ cmp r0, #0x0
+ bne _020DE5E8
+ ldr r0, _020DE684 ; =0x021D3498
+ ldr r2, _020DE688 ; =0x021D7088
+ ldr r1, [r0, #0x4]
+ ldr r0, _020DE68C ; =0x021D70AC
+ ldr r3, [r1, #0x6c]
+ mov r1, #0x1
+ str r3, [r2, r6, lsl #0x2]
+ str r1, [r0, r6, lsl #0x2]
+ b _020DE640
+_020DE5E8:
+ ldr r0, _020DE684 ; =0x021D3498
+ ldr r1, _020DE688 ; =0x021D7088
+ ldr r0, [r0, #0x4]
+ ldr r1, [r1, r6, lsl #0x2]
+ ldr r0, [r0, #0x6c]
+ cmp r1, r0
+ bne _020DE618
+ ldr r1, _020DE68C ; =0x021D70AC
+ ldr r0, [r1, r6, lsl #0x2]
+ add r0, r0, #0x1
+ str r0, [r1, r6, lsl #0x2]
+ b _020DE640
+_020DE618:
+ add r0, r5, r4
+ bl OS_LockMutex
+ ldr r0, _020DE684 ; =0x021D3498
+ ldr r2, _020DE688 ; =0x021D7088
+ ldr r1, [r0, #0x4]
+ ldr r0, _020DE68C ; =0x021D70AC
+ ldr r3, [r1, #0x6c]
+ mov r1, #0x1
+ str r3, [r2, r6, lsl #0x2]
+ str r1, [r0, r6, lsl #0x2]
+_020DE640:
+ mov r0, r10
+ mov r1, r9
+ mov r2, r8
+ mov r3, r7
+ bl __fread
+ ldr r1, _020DE68C ; =0x021D70AC
+ mov r7, r0
+ ldr r0, [r1, r6, lsl #0x2]
+ subs r0, r0, #0x1
+ str r0, [r1, r6, lsl #0x2]
+ bne _020DE674
+ add r0, r5, r4
+ bl OS_UnlockMutex
+_020DE674:
+ mov r0, r7
+ ldmia sp!, {r4-r10,pc}
+ .balign 4
+_020DE67C: .word 0x02106A58
+_020DE680: .word 0x021D70D0
+_020DE684: .word 0x021D3498
+_020DE688: .word 0x021D7088
+_020DE68C: .word 0x021D70AC
+
+ arm_func_start __fread
+__fread: ; 0x020DE690
+ stmdb sp!, {r3-r10,lr}
+ sub sp, sp, #0x4
+ mov r7, r3
+ mov r9, r0
+ mov r8, r1
+ mov r0, r7
+ mov r1, #0x0
+ mov r4, r2
+ bl fwide
+_020DE6B4: ; 0x020DE6B4
+ cmp r0, #0x0
+ bne _020DE6C8
+ mov r0, r7
+ mvn r1, #0x0
+ bl fwide
+_020DE6C8:
+ muls r4, r8, r4
+ beq _020DE6EC
+ ldrb r0, [r7, #0xd]
+ cmp r0, #0x0
+ bne _020DE6EC
+ ldr r1, [r7, #0x4]
+ mov r0, r1, lsl #0x16
+ movs r0, r0, lsr #0x1d
+ bne _020DE6F8
+_020DE6EC:
+ add sp, sp, #0x4
+ mov r0, #0x0
+ ldmia sp!, {r3-r10,pc}
+_020DE6F8:
+ mov r0, r1, lsl #0x13
+ movs r0, r0, lsr #0x1f
+ movne r0, r1, lsl #0x19
+ movne r0, r0, lsr #0x1e
+ ldr r1, [r7, #0x8]
+ cmpne r0, #0x2
+ mov r6, #0x1
+ mov r0, r1, lsl #0x1d
+ movne r6, #0x0
+ movs r0, r0, lsr #0x1d
+ bne _020DE74C
+ ldr r0, [r7, #0x4]
+ mov r0, r0, lsl #0x1b
+ mov r0, r0, lsr #0x1d
+ tst r0, #0x1
+ beq _020DE74C
+ bic r0, r1, #0x7
+ orr r0, r0, #0x2
+ str r0, [r7, #0x8]
+ mov r0, #0x0
+ str r0, [r7, #0x28]
+_020DE74C:
+ ldr r0, [r7, #0x8]
+ mov r0, r0, lsl #0x1d
+ mov r0, r0, lsr #0x1d
+ cmp r0, #0x2
+ bhs _020DE778
+ mov r0, #0x1
+ strb r0, [r7, #0xd]
+ mov r0, #0x0
+ add sp, sp, #0x4
+ str r0, [r7, #0x28]
+ ldmia sp!, {r3-r10,pc}
+_020DE778:
+ ldr r0, [r7, #0x4]
+ mov r0, r0, lsl #0x19
+ mov r0, r0, lsr #0x1e
+ tst r0, #0x1
+ beq _020DE7B0
+ bl __flush_line_buffered_output_files
+_020DE790: ; 0x020DE790
+ cmp r0, #0x0
+ beq _020DE7B0
+ mov r0, #0x1
+ strb r0, [r7, #0xd]
+ mov r0, #0x0
+ add sp, sp, #0x4
+ str r0, [r7, #0x28]
+ ldmia sp!, {r3-r10,pc}
+_020DE7B0:
+ cmp r4, #0x0
+ mov r5, #0x0
+ beq _020DE874
+ ldr r0, [r7, #0x8]
+ mov r0, r0, lsl #0x1d
+ mov r0, r0, lsr #0x1d
+ cmp r0, #0x3
+ blo _020DE874
+ mov r10, r5
+_020DE7D4:
+ mov r0, r7
+ mov r1, r10
+ bl fwide
+ cmp r0, #0x1
+ ldr r0, [r7, #0x8]
+ bne _020DE808
+ mov r0, r0, lsl #0x1d
+ add r0, r7, r0, lsr #0x1c
+ ldrh r0, [r0, #0xe]
+ add r5, r5, #0x2
+ sub r4, r4, #0x2
+ strh r0, [r9], #0x2
+ b _020DE820
+_020DE808:
+ mov r0, r0, lsl #0x1d
+ add r0, r7, r0, lsr #0x1d
+ ldrb r0, [r0, #0xf]
+ add r5, r5, #0x1
+ sub r4, r4, #0x1
+ strb r0, [r9], #0x1
+_020DE820:
+ ldr r1, [r7, #0x8]
+ cmp r4, #0x0
+ mov r0, r1, lsl #0x1d
+ mov r0, r0, lsr #0x1d
+ sub r0, r0, #0x1
+ bic r1, r1, #0x7
+ and r0, r0, #0x7
+ orr r0, r1, r0
+ str r0, [r7, #0x8]
+ beq _020DE85C
+ ldr r0, [r7, #0x8]
+ mov r0, r0, lsl #0x1d
+ mov r0, r0, lsr #0x1d
+ cmp r0, #0x3
+ bhs _020DE7D4
+_020DE85C:
+ ldr r0, [r7, #0x8]
+ mov r0, r0, lsl #0x1d
+ mov r0, r0, lsr #0x1d
+ cmp r0, #0x2
+ ldreq r0, [r7, #0x30]
+ streq r0, [r7, #0x28]
+_020DE874:
+ cmp r4, #0x0
+ beq _020DE938
+ ldr r0, [r7, #0x28]
+ cmp r0, #0x0
+ cmpeq r6, #0x0
+ beq _020DE938
+ mov r10, #0x0
+_020DE890:
+ ldr r0, [r7, #0x28]
+ cmp r0, #0x0
+ bne _020DE8E4
+ mov r0, r7
+ mov r1, r10
+ mov r2, r10
+ bl __load_buffer
+_020DE8AC: ; 0x020DE8AC
+ cmp r0, #0x0
+ beq _020DE8E4
+ cmp r0, #0x1
+ mov r0, #0x1
+ streqb r0, [r7, #0xd]
+ beq _020DE8D4
+ ldr r1, [r7, #0x8]
+ bic r1, r1, #0x7
+ str r1, [r7, #0x8]
+ strb r0, [r7, #0xc]
+_020DE8D4:
+ mov r0, #0x0
+ str r0, [r7, #0x28]
+ mov r4, #0x0
+ b _020DE938
+_020DE8E4:
+ ldr r0, [r7, #0x28]
+ str r0, [sp, #0x0]
+ cmp r0, r4
+ strhi r4, [sp, #0x0]
+ ldr r1, [r7, #0x24]
+ ldr r2, [sp, #0x0]
+ mov r0, r9
+ bl memcpy
+ ldr r2, [sp, #0x0]
+ ldr r0, [r7, #0x24]
+ subs r4, r4, r2
+ add r0, r0, r2
+ str r0, [r7, #0x24]
+ ldr r1, [r7, #0x28]
+ ldr r0, [sp, #0x0]
+ add r9, r9, r2
+ sub r0, r1, r0
+ add r5, r5, r2
+ str r0, [r7, #0x28]
+ cmpne r6, #0x0
+ bne _020DE890
+_020DE938:
+ cmp r4, #0x0
+ beq _020DE9C4
+ cmp r6, #0x0
+ bne _020DE9C4
+ ldr r6, [r7, #0x1c]
+ ldr r10, [r7, #0x20]
+ add r1, sp, #0x0
+ str r9, [r7, #0x1c]
+ mov r0, r7
+ mov r2, #0x1
+ str r4, [r7, #0x20]
+ bl __load_buffer
+_020DE968: ; 0x020DE968
+ cmp r0, #0x0
+ beq _020DE9A4
+ cmp r0, #0x1
+ mov r0, #0x1
+ bne _020DE98C
+ strb r0, [r7, #0xd]
+ mov r0, #0x0
+ str r0, [r7, #0x28]
+ b _020DE9A4
+_020DE98C:
+ ldr r1, [r7, #0x8]
+ bic r1, r1, #0x7
+ str r1, [r7, #0x8]
+ strb r0, [r7, #0xc]
+ mov r0, #0x0
+ str r0, [r7, #0x28]
+_020DE9A4:
+ ldr r1, [sp, #0x0]
+ mov r0, r7
+ str r6, [r7, #0x1c]
+ str r10, [r7, #0x20]
+ add r5, r5, r1
+ bl __prep_buffer
+_020DE9BC: ; 0x020DE9BC
+ mov r0, #0x0
+ str r0, [r7, #0x28]
+_020DE9C4:
+ mov r0, r5
+ mov r1, r8
+ bl _u32_div_f
+ add sp, sp, #0x4
+ ldmia sp!, {r3-r10,pc}
+
+ arm_func_start __fwrite
+__fwrite:
+ stmdb sp!, {r3-r11,lr}
+ sub sp, sp, #0x8
+ mov r9, r3
+ mov r10, r0
+ str r1, [sp, #0x0]
+ mov r0, r9
+ mov r1, #0x0
+ mov r4, r2
+ bl fwide
+_020DE9FC: ; 0x020DE9FC
+ cmp r0, #0x0
+ bne _020DEA10
+ mov r0, r9
+ mvn r1, #0x0
+ bl fwide
+_020DEA10:
+ ldr r0, [sp, #0x0]
+ muls r5, r0, r4
+ beq _020DEA38
+ ldrb r0, [r9, #0xd]
+ cmp r0, #0x0
+ bne _020DEA38
+ ldr r1, [r9, #0x4]
+ mov r0, r1, lsl #0x16
+ movs r0, r0, lsr #0x1d
+ bne _020DEA44
+_020DEA38:
+ add sp, sp, #0x8
+ mov r0, #0x0
+ ldmia sp!, {r3-r11,pc}
+_020DEA44:
+ mov r0, r1, lsl #0x13
+ movs r0, r0, lsr #0x1f
+ movne r0, r1, lsl #0x19
+ movne r0, r0, lsr #0x1e
+ cmpne r0, #0x2
+ ldr r1, [r9, #0x8]
+ cmpne r0, #0x1
+ mov r8, #0x1
+ mov r0, r1, lsl #0x1d
+ movne r8, #0x0
+ movs r0, r0, lsr #0x1d
+ bne _020DEA9C
+ ldr r0, [r9, #0x4]
+ mov r0, r0, lsl #0x1b
+ mov r0, r0, lsr #0x1d
+ tst r0, #0x2
+ beq _020DEA9C
+ bic r0, r1, #0x7
+ orr r1, r0, #0x1
+ mov r0, r9
+ str r1, [r9, #0x8]
+ bl __prep_buffer
+_020DEA9C:
+ ldr r0, [r9, #0x8]
+ mov r0, r0, lsl #0x1d
+ mov r0, r0, lsr #0x1d
+ cmp r0, #0x1
+ beq _020DEAC8
+ mov r0, #0x1
+ strb r0, [r9, #0xd]
+ mov r0, #0x0
+ add sp, sp, #0x8
+ str r0, [r9, #0x28]
+ ldmia sp!, {r3-r11,pc}
+_020DEAC8:
+ cmp r5, #0x0
+ mov r6, #0x0
+ beq _020DEBF0
+ ldr r0, [r9, #0x1c]
+ ldr r2, [r9, #0x24]
+ cmp r2, r0
+ cmpeq r8, #0x0
+ beq _020DEBF0
+ ldr r1, [r9, #0x20]
+ sub r0, r2, r0
+ sub r0, r1, r0
+ str r0, [r9, #0x28]
+ mov r11, #0xa
+ mov r4, #0x0
+_020DEB00:
+ ldr r0, [r9, #0x28]
+ mov r7, r4
+ str r0, [sp, #0x4]
+ cmp r0, r5
+ strhi r5, [sp, #0x4]
+ ldr r0, [r9, #0x4]
+ mov r0, r0, lsl #0x19
+ mov r0, r0, lsr #0x1e
+ cmp r0, #0x1
+ bne _020DEB50
+ ldr r2, [sp, #0x4]
+ cmp r2, #0x0
+ beq _020DEB50
+ mov r0, r10
+ mov r1, r11
+ bl __memrchr
+ movs r7, r0
+ addne r0, r7, #0x1
+ subne r0, r0, r10
+ strne r0, [sp, #0x4]
+_020DEB50:
+ ldr r2, [sp, #0x4]
+ cmp r2, #0x0
+ beq _020DEB90
+ ldr r0, [r9, #0x24]
+ mov r1, r10
+ bl memcpy
+ ldr r2, [sp, #0x4]
+ ldr r0, [r9, #0x24]
+ add r10, r10, r2
+ add r0, r0, r2
+ str r0, [r9, #0x24]
+ ldr r1, [r9, #0x28]
+ ldr r0, [sp, #0x4]
+ sub r5, r5, r2
+ sub r0, r1, r0
+ str r0, [r9, #0x28]
+_020DEB90:
+ ldr r0, [r9, #0x28]
+ cmp r0, #0x0
+ beq _020DEBB4
+ cmp r7, #0x0
+ bne _020DEBB4
+ ldr r0, [r9, #0x4]
+ mov r0, r0, lsl #0x19
+ movs r0, r0, lsr #0x1e
+ bne _020DEBDC
+_020DEBB4:
+ mov r0, r9
+ mov r1, #0x0
+ bl __flush_buffer
+_020DEBC0: ; 0x020DEBC0
+ cmp r0, #0x0
+ beq _020DEBDC
+ mov r0, #0x1
+ strb r0, [r9, #0xd]
+ mov r5, #0x0
+ str r5, [r9, #0x28]
+ b _020DEBF0
+_020DEBDC:
+ ldr r0, [sp, #0x4]
+ cmp r5, #0x0
+ add r6, r6, r0
+ cmpne r8, #0x0
+ bne _020DEB00
+_020DEBF0:
+ cmp r5, #0x0
+ beq _020DEC5C
+ cmp r8, #0x0
+ bne _020DEC5C
+ ldr r4, [r9, #0x1c]
+ ldr r7, [r9, #0x20]
+ add r2, r10, r5
+ str r10, [r9, #0x1c]
+ str r5, [r9, #0x20]
+ add r1, sp, #0x4
+ mov r0, r9
+ str r2, [r9, #0x24]
+ bl __flush_buffer
+_020DEC24: ; 0x020DEC24
+ cmp r0, #0x0
+ ldreq r0, [sp, #0x4]
+ addeq r6, r6, r0
+ beq _020DEC44
+ mov r0, #0x1
+ strb r0, [r9, #0xd]
+ mov r0, #0x0
+ str r0, [r9, #0x28]
+_020DEC44:
+ str r4, [r9, #0x1c]
+ mov r0, r9
+ str r7, [r9, #0x20]
+ bl __prep_buffer
+_020DEC54: ; 0x020DEC54
+ mov r0, #0x0
+ str r0, [r9, #0x28]
+_020DEC5C:
+ ldr r0, [r9, #0x4]
+ ldr r1, [sp, #0x0]
+ mov r0, r0, lsl #0x19
+ mov r0, r0, lsr #0x1e
+ cmp r0, #0x2
+ movne r0, #0x0
+ strne r0, [r9, #0x28]
+ mov r0, r6
+ bl _u32_div_f
+ add sp, sp, #0x8
+ ldmia sp!, {r3-r11,pc}
+
+ arm_func_start fclose
+fclose: ; 0x020DEC88
+ stmdb sp!, {r3-r5,lr}
+ movs r5, r0
+ mvneq r0, #0x0
+ ldmeqia sp!, {r3-r5,pc}
+_020DEC98: ; 0x020DEC98
+ ldr r1, [r5, #0x4]
+ mov r1, r1, lsl #0x16
+ movs r1, r1, lsr #0x1d
+ moveq r0, #0x0
+ ldmeqia sp!, {r3-r5,pc}
+_020DECAC: ; 0x020DECAC
+ bl fflush
+ mov r4, r0
+ ldr r0, [r5, #0x0]
+ ldr r1, [r5, #0x44]
+ blx r1
+ ldr r1, [r5, #0x4]
+ mov r2, #0x0
+ bic r1, r1, #0x380
+ str r1, [r5, #0x4]
+ str r2, [r5, #0x0]
+ ldr r1, [r5, #0x8]
+ mov r1, r1, lsl #0x1c
+ movs r1, r1, lsr #0x1f
+ subne r0, r2, #0x1
+ ldmneia sp!, {r3-r5,pc}
+_020DECE8: ; 0x020DECE8
+ cmp r4, #0x0
+ cmpeq r0, #0x0
+ movne r2, #0x1
+ rsb r0, r2, #0x0
+ ldmia sp!, {r3-r5,pc}
+
+ arm_func_start fflush
+fflush:
+ stmdb sp!, {r4,lr}
+ movs r4, r0
+ bne _020DED10
+ bl __flush_all
+ ldmia sp!, {r4,pc}
+_020DED10:
+ ldrb r0, [r4, #0xd]
+ cmp r0, #0x0
+ bne _020DED2C
+ ldr r0, [r4, #0x4]
+ mov r1, r0, lsl #0x16
+ movs r1, r1, lsr #0x1d
+ bne _020DED34
+_020DED2C:
+ mvn r0, #0x0
+ ldmia sp!, {r4,pc}
+_020DED34:
+ mov r0, r0, lsl #0x1b
+ mov r0, r0, lsr #0x1d
+ cmp r0, #0x1
+ moveq r0, #0x0
+ ldmeqia sp!, {r4,pc}
+_020DED48: ; 0x020DED48
+ ldr r0, [r4, #0x8]
+ mov r1, r0, lsl #0x1d
+ mov r1, r1, lsr #0x1d
+ cmp r1, #0x3
+ biccs r0, r0, #0x7
+ orrcs r0, r0, #0x2
+ strcs r0, [r4, #0x8]
+ ldr r0, [r4, #0x8]
+ mov r0, r0, lsl #0x1d
+ mov r0, r0, lsr #0x1d
+ cmp r0, #0x2
+ moveq r0, #0x0
+ streq r0, [r4, #0x28]
+ ldr r0, [r4, #0x8]
+ mov r1, r0, lsl #0x1d
+ mov r1, r1, lsr #0x1d
+ cmp r1, #0x1
+ beq _020DEDA0
+ bic r0, r0, #0x7
+ str r0, [r4, #0x8]
+ mov r0, #0x0
+ ldmia sp!, {r4,pc}
+_020DEDA0:
+ mov r0, r4
+ mov r1, #0x0
+ bl __flush_buffer
+_020DEDAC: ; 0x020DEDAC
+ cmp r0, #0x0
+ mov r0, #0x0
+ beq _020DEDCC
+ mov r1, #0x1
+ strb r1, [r4, #0xd]
+ str r0, [r4, #0x28]
+ sub r0, r0, #0x1
+ ldmia sp!, {r4,pc}
+_020DEDCC:
+ ldr r1, [r4, #0x8]
+ bic r1, r1, #0x7
+ str r1, [r4, #0x8]
+ str r0, [r4, #0x18]
+ str r0, [r4, #0x28]
+ ldmia sp!, {r4,pc}
+
+ arm_func_start _ftell
+_ftell: ; 0x020DEDE4
+ ldr r1, [r0, #0x4]
+ mov r1, r1, lsl #0x16
+ mov r1, r1, lsr #0x1d
+ and r1, r1, #0xff
+ add r1, r1, #0xff
+ and r1, r1, #0xff
+ cmp r1, #0x1
+ bhi _020DEE10
+ ldrb r1, [r0, #0xd]
+ cmp r1, #0x0
+ beq _020DEE24
+_020DEE10:
+ ldr r0, _020DEE5C ; =0x021D74A8
+ mov r1, #0x28
+ str r1, [r0, #0x0]
+ sub r0, r1, #0x29
+ bx lr
+_020DEE24:
+ ldr r1, [r0, #0x8]
+ mov r1, r1, lsl #0x1d
+ movs r12, r1, lsr #0x1d
+ ldreq r0, [r0, #0x18]
+ bxeq lr
+ ldr r2, [r0, #0x24]
+ ldr r1, [r0, #0x1c]
+ ldr r3, [r0, #0x34]
+ sub r0, r2, r1
+ cmp r12, #0x3
+ add r0, r3, r0
+ subcs r1, r12, #0x2
+ subcs r0, r0, r1
+ bx lr
+ .balign 4
+_020DEE5C: .word 0x021D74A8
+
+ arm_func_start ftell
+ftell: ; 0x020DEE60
+ stmdb sp!, {r3-r7,lr}
+ ldr r1, _020DEF60 ; =0x02106A58
+ mov r7, r0
+ cmp r7, r1
+ moveq r6, #0x2
+ beq _020DEE98
+ ldr r0, _020DEF64 ; =0x02106AA4
+ cmp r7, r0
+ moveq r6, #0x3
+ beq _020DEE98
+ ldr r0, _020DEF68 ; =0x02106AF0
+ cmp r7, r0
+ moveq r6, #0x4
+ movne r6, #0x5
+_020DEE98:
+ mov r0, #0x18
+ mul r4, r6, r0
+ ldr r5, _020DEF6C ; =0x021D70D0
+ add r0, r5, r4
+ bl OS_TryLockMutex
+_020DEEAC: ; 0x020DEEAC
+ cmp r0, #0x0
+ bne _020DEED8
+ ldr r0, _020DEF70 ; =0x021D3498
+ ldr r2, _020DEF74 ; =0x021D7088
+ ldr r1, [r0, #0x4]
+ ldr r0, _020DEF78 ; =0x021D70AC
+ ldr r3, [r1, #0x6c]
+ mov r1, #0x1
+ str r3, [r2, r6, lsl #0x2]
+ str r1, [r0, r6, lsl #0x2]
+ b _020DEF30
+_020DEED8:
+ ldr r0, _020DEF70 ; =0x021D3498
+ ldr r1, _020DEF74 ; =0x021D7088
+ ldr r0, [r0, #0x4]
+ ldr r1, [r1, r6, lsl #0x2]
+ ldr r0, [r0, #0x6c]
+ cmp r1, r0
+ bne _020DEF08
+ ldr r1, _020DEF78 ; =0x021D70AC
+ ldr r0, [r1, r6, lsl #0x2]
+ add r0, r0, #0x1
+ str r0, [r1, r6, lsl #0x2]
+ b _020DEF30
+_020DEF08:
+ add r0, r5, r4
+ bl OS_LockMutex
+ ldr r0, _020DEF70 ; =0x021D3498
+ ldr r2, _020DEF74 ; =0x021D7088
+ ldr r1, [r0, #0x4]
+ ldr r0, _020DEF78 ; =0x021D70AC
+ ldr r3, [r1, #0x6c]
+ mov r1, #0x1
+ str r3, [r2, r6, lsl #0x2]
+ str r1, [r0, r6, lsl #0x2]
+_020DEF30:
+ mov r0, r7
+ bl _ftell
+ ldr r1, _020DEF78 ; =0x021D70AC
+ mov r7, r0
+ ldr r0, [r1, r6, lsl #0x2]
+ subs r0, r0, #0x1
+ str r0, [r1, r6, lsl #0x2]
+ bne _020DEF58
+ add r0, r5, r4
+ bl OS_UnlockMutex
+_020DEF58:
+ mov r0, r7
+ ldmia sp!, {r3-r7,pc}
+ .balign 4
+_020DEF60: .word 0x02106A58
+_020DEF64: .word 0x02106AA4
+_020DEF68: .word 0x02106AF0
+_020DEF6C: .word 0x021D70D0
+_020DEF70: .word 0x021D3498
+_020DEF74: .word 0x021D7088
+_020DEF78: .word 0x021D70AC
+
+ arm_func_start _fseek
+_fseek: ; 0x020DEF7C
+ stmdb sp!, {r0-r3}
+ stmdb sp!, {r3-r5,lr}
+ mov r5, r0
+ ldr r1, [r5, #0x4]
+ mov r4, r2
+ mov r1, r1, lsl #0x16
+ mov r1, r1, lsr #0x1d
+ and r1, r1, #0xff
+ cmp r1, #0x1
+ ldreqb r1, [r5, #0xd]
+ cmpeq r1, #0x0
+ beq _020DEFC8
+ ldr r0, _020DF160 ; =0x021D74A8
+ mov r1, #0x28
+ str r1, [r0, #0x0]
+ sub r0, r1, #0x29
+ ldmia sp!, {r3-r5,lr}
+ add sp, sp, #0x10
+ bx lr
+_020DEFC8:
+ ldr r1, [r5, #0x8]
+ mov r1, r1, lsl #0x1d
+ mov r1, r1, lsr #0x1d
+ cmp r1, #0x1
+ bne _020DF018
+ mov r1, #0x0
+ bl __flush_buffer
+_020DEFE4: ; 0x020DEFE4
+ cmp r0, #0x0
+ beq _020DF018
+ mov r0, #0x1
+ strb r0, [r5, #0xd]
+ mov r2, #0x0
+ ldr r0, _020DF160 ; =0x021D74A8
+ mov r1, #0x28
+ str r2, [r5, #0x28]
+ str r1, [r0, #0x0]
+ sub r0, r1, #0x29
+ ldmia sp!, {r3-r5,lr}
+ add sp, sp, #0x10
+ bx lr
+_020DF018:
+ cmp r4, #0x1
+ bne _020DF038
+ mov r0, r5
+ mov r4, #0x0
+ bl _ftell
+ ldr r1, [sp, #0x14]
+ add r0, r1, r0
+ str r0, [sp, #0x14]
+_020DF038:
+ cmp r4, #0x2
+ beq _020DF0CC
+ ldr r0, [r5, #0x4]
+ mov r0, r0, lsl #0x1b
+ mov r0, r0, lsr #0x1d
+ cmp r0, #0x3
+ beq _020DF0CC
+ ldr r0, [r5, #0x8]
+ mov r0, r0, lsl #0x1d
+ mov r0, r0, lsr #0x1d
+ sub r0, r0, #0x2
+ cmp r0, #0x1
+ bhi _020DF0CC
+ ldr r2, [sp, #0x14]
+ ldr r0, [r5, #0x18]
+ cmp r2, r0
+ bhs _020DF088
+ ldr r0, [r5, #0x34]
+ cmp r2, r0
+ bhs _020DF098
+_020DF088:
+ ldr r0, [r5, #0x8]
+ bic r0, r0, #0x7
+ str r0, [r5, #0x8]
+ b _020DF0D8
+_020DF098:
+ ldr r1, [r5, #0x1c]
+ sub r0, r2, r0
+ add r0, r1, r0
+ str r0, [r5, #0x24]
+ ldr r1, [r5, #0x18]
+ ldr r0, [sp, #0x14]
+ sub r0, r1, r0
+ str r0, [r5, #0x28]
+ ldr r0, [r5, #0x8]
+ bic r0, r0, #0x7
+ orr r0, r0, #0x2
+ str r0, [r5, #0x8]
+ b _020DF0D8
+_020DF0CC:
+ ldr r0, [r5, #0x8]
+ bic r0, r0, #0x7
+ str r0, [r5, #0x8]
+_020DF0D8:
+ ldr r0, [r5, #0x8]
+ mov r0, r0, lsl #0x1d
+ movs r0, r0, lsr #0x1d
+ bne _020DF150
+ ldr r12, [r5, #0x38]
+ cmp r12, #0x0
+ beq _020DF13C
+ ldr r0, [r5, #0x0]
+ ldr r3, [r5, #0x48]
+ add r1, sp, #0x14
+ mov r2, r4
+ blx r12
+ cmp r0, #0x0
+ beq _020DF13C
+ mov r0, #0x1
+ strb r0, [r5, #0xd]
+ mov r2, #0x0
+ ldr r0, _020DF160 ; =0x021D74A8
+ mov r1, #0x28
+ str r2, [r5, #0x28]
+ str r1, [r0, #0x0]
+ sub r0, r1, #0x29
+ ldmia sp!, {r3-r5,lr}
+ add sp, sp, #0x10
+ bx lr
+_020DF13C:
+ mov r1, #0x0
+ strb r1, [r5, #0xc]
+ ldr r0, [sp, #0x14]
+ str r0, [r5, #0x18]
+ str r1, [r5, #0x28]
+_020DF150:
+ mov r0, #0x0
+ ldmia sp!, {r3-r5,lr}
+ add sp, sp, #0x10
+ bx lr
+ .balign 4
+_020DF160: .word 0x021D74A8
+
+ arm_func_start fseek
+fseek:
+ stmdb sp!, {r3-r9,lr}
+ ldr r3, _020DF274 ; =0x02106A58
+ mov r9, r0
+ cmp r9, r3
+ mov r8, r1
+ mov r7, r2
+ moveq r6, #0x2
+ beq _020DF1A4
+ ldr r0, _020DF278 ; =0x02106AA4
+ cmp r9, r0
+ moveq r6, #0x3
+ beq _020DF1A4
+ ldr r0, _020DF27C ; =0x02106AF0
+ cmp r9, r0
+ moveq r6, #0x4
+ movne r6, #0x5
+_020DF1A4:
+ mov r0, #0x18
+ mul r4, r6, r0
+ ldr r5, _020DF280 ; =0x021D70D0
+ add r0, r5, r4
+ bl OS_TryLockMutex
+_020DF1B8: ; 0x020DF1B8
+ cmp r0, #0x0
+ bne _020DF1E4
+ ldr r0, _020DF284 ; =0x021D3498
+ ldr r2, _020DF288 ; =0x021D7088
+ ldr r1, [r0, #0x4]
+ ldr r0, _020DF28C ; =0x021D70AC
+ ldr r3, [r1, #0x6c]
+ mov r1, #0x1
+ str r3, [r2, r6, lsl #0x2]
+ str r1, [r0, r6, lsl #0x2]
+ b _020DF23C
+_020DF1E4:
+ ldr r0, _020DF284 ; =0x021D3498
+ ldr r1, _020DF288 ; =0x021D7088
+ ldr r0, [r0, #0x4]
+ ldr r1, [r1, r6, lsl #0x2]
+ ldr r0, [r0, #0x6c]
+ cmp r1, r0
+ bne _020DF214
+ ldr r1, _020DF28C ; =0x021D70AC
+ ldr r0, [r1, r6, lsl #0x2]
+ add r0, r0, #0x1
+ str r0, [r1, r6, lsl #0x2]
+ b _020DF23C
+_020DF214:
+ add r0, r5, r4
+ bl OS_LockMutex
+ ldr r0, _020DF284 ; =0x021D3498
+ ldr r2, _020DF288 ; =0x021D7088
+ ldr r1, [r0, #0x4]
+ ldr r0, _020DF28C ; =0x021D70AC
+ ldr r3, [r1, #0x6c]
+ mov r1, #0x1
+ str r3, [r2, r6, lsl #0x2]
+ str r1, [r0, r6, lsl #0x2]
+_020DF23C:
+ mov r0, r9
+ mov r1, r8
+ mov r2, r7
+ bl _fseek
+ ldr r1, _020DF28C ; =0x021D70AC
+ mov r7, r0
+ ldr r0, [r1, r6, lsl #0x2]
+ subs r0, r0, #0x1
+ str r0, [r1, r6, lsl #0x2]
+ bne _020DF26C
+ add r0, r5, r4
+ bl OS_UnlockMutex
+_020DF26C:
+ mov r0, r7
+ ldmia sp!, {r3-r9,pc}
+ .balign 4
+_020DF274: .word 0x02106A58
+_020DF278: .word 0x02106AA4
+_020DF27C: .word 0x02106AF0
+_020DF280: .word 0x021D70D0
+_020DF284: .word 0x021D3498
+_020DF288: .word 0x021D7088
+_020DF28C: .word 0x021D70AC
+
+ arm_func_start rewind
+rewind: ; 0x020DF290
+ stmdb sp!, {r4,lr}
+ mov r1, #0x0
+ mov r4, r0
+ mov r2, r1
+ strb r1, [r4, #0xd]
+ bl fseek
+_020DF2A8: ; 0x020DF2A8
+ mov r0, #0x0
+ strb r0, [r4, #0xd]
+ ldmia sp!, {r4,pc}
+
+ arm_func_start mbtowc
+mbtowc:
+ stmdb sp!, {r3,lr}
+ ldr r3, _020DF2CC ; =0x02106C98
+ ldr r3, [r3, #0x8]
+ ldr r3, [r3, #0x0]
+ blx r3
+ ldmia sp!, {r3,pc}
+ .balign 4
+_020DF2CC: .word 0x02106C98
+
+ arm_func_start __mbtowc_noconv
+__mbtowc_noconv: ; 0x020DF2D0
+ cmp r1, #0x0
+ moveq r0, #0x0
+ bxeq lr
+ cmp r2, #0x0
+ mvneq r0, #0x0
+ bxeq lr
+ cmp r0, #0x0
+ ldrneb r2, [r1, #0x0]
+ strneh r2, [r0, #0x0]
+ ldrsb r0, [r1, #0x0]
+ cmp r0, #0x0
+ moveq r0, #0x0
+ movne r0, #0x1
+ bx lr
+
+ arm_func_start __wctomb_noconv
+__wctomb_noconv: ; 0x020DF308
+ cmp r0, #0x0
+ moveq r0, #0x0
+ strneb r1, [r0, #0x0]
+ movne r0, #0x1
+ bx lr
+
+ arm_func_start wctomb
+wctomb: ; 0x020DF31C
+ stmdb sp!, {r3,lr}
+ ldr r2, _020DF334 ; =0x02106C98
+ ldr r2, [r2, #0x8]
+ ldr r2, [r2, #0x4]
+ blx r2
+ ldmia sp!, {r3,pc}
+ .balign 4
+_020DF334: .word 0x02106C98
+
+ arm_func_start mbstowcs
+mbstowcs: ; 0x020DF338
+ stmdb sp!, {r4-r8,lr}
+ mov r7, r1
+ mov r8, r0
+ mov r0, r7
+ mov r6, r2
+ bl strlen
+ mov r5, r0
+ cmp r8, #0x0
+ mov r4, #0x0
+ beq _020DF3B8
+ cmp r6, #0x0
+ bls _020DF3B8
+_020DF368:
+ ldrsb r0, [r7, #0x0]
+ cmp r0, #0x0
+ beq _020DF3A0
+ mov r0, r8
+ mov r1, r7
+ mov r2, r5
+ bl mbtowc
+_020DF384: ; 0x020DF384
+ cmp r0, #0x0
+ add r8, r8, #0x2
+ addgt r7, r7, r0
+ subgt r5, r5, r0
+ bgt _020DF3AC
+ mvn r0, #0x0
+ ldmia sp!, {r4-r8,pc}
+_020DF3A0:
+ mov r0, #0x0
+ strh r0, [r8, #0x0]
+ b _020DF3B8
+_020DF3AC:
+ add r4, r4, #0x1
+ cmp r4, r6
+ blo _020DF368
+_020DF3B8:
+ mov r0, r4
+ ldmia sp!, {r4-r8,pc}
+
+ arm_func_start wcstombs
+wcstombs:
+ stmdb sp!, {r3-r9,lr}
+ movs r4, r0
+ mov r9, r1
+ cmpne r9, #0x0
+ mov r8, r2
+ mov r7, #0x0
+ moveq r0, #0x0
+ ldmeqia sp!, {r3-r9,pc}
+_020DF3E0: ; 0x020DF3E0
+ add r6, sp, #0x0
+_020DF3E4:
+ ldrh r1, [r9, #0x0]
+ cmp r1, #0x0
+ moveq r0, #0x0
+ streqb r0, [r4, r7]
+ beq _020DF430
+ mov r0, r6
+ add r9, r9, #0x2
+ bl wctomb
+ mov r5, r0
+ add r0, r7, r5
+ cmp r0, r8
+ bhi _020DF430
+ mov r1, r6
+ mov r2, r5
+ add r0, r4, r7
+ bl strncpy
+ add r7, r7, r5
+ cmp r7, r8
+ bls _020DF3E4
+_020DF430:
+ mov r0, r7
+ ldmia sp!, {r3-r9,pc}
+
+ arm_func_start memcpy
+memcpy: ; 0x020DF438
+ mov r12, r0
+ cmp r2, #0x0
+ bxeq lr
+_020DF444:
+ ldrsb r3, [r1], #0x1
+ subs r2, r2, #0x1
+ strb r3, [r12], #0x1
+ bne _020DF444
+ bx lr
+
+ arm_func_start memmove
+memmove: ; 0x020DF458
+ cmp r1, r0
+ blo _020DF480
+ mov r12, r0
+ cmp r2, #0x0
+ bxeq lr
+_020DF46C:
+ ldrsb r3, [r1], #0x1
+ subs r2, r2, #0x1
+ strb r3, [r12], #0x1
+ bne _020DF46C
+ bx lr
+_020DF480:
+ cmp r2, #0x0
+ add r3, r1, r2
+ add r12, r0, r2
+ bxeq lr
+_020DF490:
+ ldrsb r1, [r3, #-0x1]!
+ subs r2, r2, #0x1
+ strb r1, [r12, #-0x1]!
+ bne _020DF490
+ bx lr
+
+ arm_func_start Call_FillMemWithValue
+Call_FillMemWithValue: ; 0x020DF4A4
+ stmdb sp!, {r4,lr}
+ mov r4, r0
+ bl __fill_mem
+ mov r0, r4
+ ldmia sp!, {r4,pc}
+
+ arm_func_start memchr
+memchr:
+ cmp r2, #0x0
+ and r3, r1, #0xff
+ beq _020DF4DC
+_020DF4C4:
+ ldrb r1, [r0], #0x1
+ cmp r1, r3
+ subeq r0, r0, #0x1
+ bxeq lr
+ subs r2, r2, #0x1
+ bne _020DF4C4
+_020DF4DC:
+ mov r0, #0x0
+ bx lr
+
+ arm_func_start __memrchr
+__memrchr: ; 0x020DF4E4
+ cmp r2, #0x0
+ and r3, r1, #0xff
+ add r0, r0, r2
+ beq _020DF508
+_020DF4F4:
+ ldrb r1, [r0, #-0x1]!
+ cmp r1, r3
+ bxeq lr
+ subs r2, r2, #0x1
+ bne _020DF4F4
+_020DF508:
+ mov r0, #0x0
+ bx lr
+
+ arm_func_start memcmp
+memcmp: ; 0x020DF510
+ cmp r2, #0x0
+ beq _020DF548
+_020DF518:
+ ldrb r12, [r0], #0x1
+ ldrb r3, [r1], #0x1
+ cmp r12, r3
+ beq _020DF540
+ ldrb r2, [r0, #-0x1]
+ ldrb r0, [r1, #-0x1]
+ cmp r2, r0
+ mvncc r0, #0x0
+ movcs r0, #0x1
+ bx lr
+_020DF540:
+ subs r2, r2, #0x1
+ bne _020DF518
+_020DF548:
+ mov r0, #0x0
+ bx lr
+
+ arm_func_start __fill_mem
+__fill_mem: ; 0x020DF550
+ cmp r2, #0x20
+ and r3, r1, #0xff
+ blo _020DF5E4
+ rsb r1, r0, #0x0
+ ands r12, r1, #0x3
+ beq _020DF57C
+ sub r2, r2, r12
+ and r1, r3, #0xff
+_020DF570:
+ strb r1, [r0], #0x1
+ subs r12, r12, #0x1
+ bne _020DF570
+_020DF57C:
+ cmp r3, #0x0
+ beq _020DF594
+ mov r1, r3, lsl #0x10
+ orr r1, r1, r3, lsl #0x18
+ orr r1, r1, r3, lsl #0x8
+ orr r3, r3, r1
+_020DF594:
+ movs r1, r2, lsr #0x5
+ beq _020DF5C8
+_020DF59C:
+ str r3, [r0, #0x0]
+ str r3, [r0, #0x4]
+ str r3, [r0, #0x8]
+ str r3, [r0, #0xc]
+ str r3, [r0, #0x10]
+ str r3, [r0, #0x14]
+ str r3, [r0, #0x18]
+ str r3, [r0, #0x1c]
+ add r0, r0, #0x20
+ subs r1, r1, #0x1
+ bne _020DF59C
+_020DF5C8:
+ and r1, r2, #0x1f
+ movs r1, r1, lsr #0x2
+ beq _020DF5E0
+_020DF5D4:
+ str r3, [r0], #0x4
+ subs r1, r1, #0x1
+ bne _020DF5D4
+_020DF5E0:
+ and r2, r2, #0x3
+_020DF5E4:
+ cmp r2, #0x0
+ bxeq lr
+ and r1, r3, #0xff
+_020DF5F0:
+ strb r1, [r0], #0x1
+ subs r2, r2, #0x1
+ bne _020DF5F0
+ bx lr
+
+ arm_func_start parse_format_printf
+parse_format_printf: ; 0x020DF600
+ stmdb sp!, {r4-r8,lr}
+ sub sp, sp, #0x10
+ ldrsb r3, [r0, #0x1]
+ mov r4, #0x0
+ mov r5, #0x1
+ mov lr, r2
+ strb r5, [sp, #0x0]
+ strb r4, [sp, #0x1]
+ strb r4, [sp, #0x2]
+ strb r4, [sp, #0x3]
+ strb r4, [sp, #0x4]
+ str r4, [sp, #0x8]
+ str r4, [sp, #0xc]
+ cmp r3, #0x25
+ add r12, r0, #0x1
+ bne _020DF65C
+ add r0, sp, #0x0
+ strb r3, [sp, #0x5]
+ ldmia r0, {r0-r3}
+ stmia lr, {r0-r3}
+ add sp, sp, #0x10
+ add r0, r12, #0x1
+ ldmia sp!, {r4-r8,pc}
+_020DF65C:
+ mov r2, #0x2
+ mov r0, r4
+ mov r5, r2
+ mov r6, r4
+ mov r7, #0x1
+_020DF670:
+ mov r8, r7
+ cmp r3, #0x2b
+ bgt _020DF6A0
+ bge _020DF6C8
+ cmp r3, #0x23
+ bgt _020DF6F8
+ cmp r3, #0x20
+ blt _020DF6F8
+ beq _020DF6D0
+ cmp r3, #0x23
+ beq _020DF6E0
+ b _020DF6F8
+_020DF6A0:
+ cmp r3, #0x30
+ bgt _020DF6F8
+ cmp r3, #0x2d
+ blt _020DF6F8
+ beq _020DF6C0
+ cmp r3, #0x30
+ beq _020DF6E8
+ b _020DF6F8
+_020DF6C0:
+ strb r6, [sp, #0x0]
+ b _020DF6FC
+_020DF6C8:
+ strb r7, [sp, #0x1]
+ b _020DF6FC
+_020DF6D0:
+ ldrb r4, [sp, #0x1]
+ cmp r4, #0x1
+ strneb r5, [sp, #0x1]
+ b _020DF6FC
+_020DF6E0:
+ strb r7, [sp, #0x3]
+ b _020DF6FC
+_020DF6E8:
+ ldrb r4, [sp, #0x0]
+ cmp r4, #0x0
+ strneb r2, [sp, #0x0]
+ b _020DF6FC
+_020DF6F8:
+ mov r8, r0
+_020DF6FC:
+ cmp r8, #0x0
+ ldrnesb r3, [r12, #0x1]!
+ bne _020DF670
+ cmp r3, #0x2a
+ bne _020DF744
+ ldr r0, [r1, #0x0]
+ add r0, r0, #0x4
+ str r0, [r1, #0x0]
+ ldr r0, [r0, #-0x4]
+ str r0, [sp, #0x8]
+ cmp r0, #0x0
+ bge _020DF73C
+ rsb r0, r0, #0x0
+ mov r2, #0x0
+ strb r2, [sp, #0x0]
+ str r0, [sp, #0x8]
+_020DF73C:
+ ldrsb r3, [r12, #0x1]!
+ b _020DF794
+_020DF744:
+ ldr r4, _020DFB88 ; =0x0210430C
+ mov r5, #0x0
+ mov r0, #0xa
+ b _020DF768
+_020DF754:
+ ldr r2, [sp, #0x8]
+ sub r3, r3, #0x30
+ mla r6, r2, r0, r3
+ ldrsb r3, [r12, #0x1]!
+ str r6, [sp, #0x8]
+_020DF768:
+ cmp r3, #0x0
+ blt _020DF778
+ cmp r3, #0x80
+ blt _020DF780
+_020DF778:
+ mov r2, r5
+ b _020DF78C
+_020DF780:
+ mov r2, r3, lsl #0x1
+ ldrh r2, [r4, r2]
+ and r2, r2, #0x8
+_020DF78C:
+ cmp r2, #0x0
+ bne _020DF754
+_020DF794:
+ ldr r2, [sp, #0x8]
+ ldr r0, _020DFB8C ; =0x000001FD
+ cmp r2, r0
+ ble _020DF7C4
+ mov r1, #0xff
+ add r0, sp, #0x0
+ strb r1, [sp, #0x5]
+ ldmia r0, {r0-r3}
+ stmia lr, {r0-r3}
+ add sp, sp, #0x10
+ add r0, r12, #0x1
+ ldmia sp!, {r4-r8,pc}
+_020DF7C4:
+ cmp r3, #0x2e
+ bne _020DF858
+ ldrsb r3, [r12, #0x1]!
+ mov r0, #0x1
+ strb r0, [sp, #0x2]
+ cmp r3, #0x2a
+ bne _020DF808
+ ldr r0, [r1, #0x0]
+ add r0, r0, #0x4
+ str r0, [r1, #0x0]
+ ldr r0, [r0, #-0x4]
+ ldrsb r3, [r12, #0x1]!
+ str r0, [sp, #0xc]
+ cmp r0, #0x0
+ movlt r0, #0x0
+ strltb r0, [sp, #0x2]
+ b _020DF858
+_020DF808:
+ ldr r2, _020DFB88 ; =0x0210430C
+ mov r4, #0x0
+ mov r0, #0xa
+ b _020DF82C
+_020DF818:
+ ldr r1, [sp, #0xc]
+ sub r3, r3, #0x30
+ mla r5, r1, r0, r3
+ ldrsb r3, [r12, #0x1]!
+ str r5, [sp, #0xc]
+_020DF82C:
+ cmp r3, #0x0
+ blt _020DF83C
+ cmp r3, #0x80
+ blt _020DF844
+_020DF83C:
+ mov r1, r4
+ b _020DF850
+_020DF844:
+ mov r1, r3, lsl #0x1
+ ldrh r1, [r2, r1]
+ and r1, r1, #0x8
+_020DF850:
+ cmp r1, #0x0
+ bne _020DF818
+_020DF858:
+ cmp r3, #0x6c
+ mov r0, #0x1
+ bgt _020DF890
+ cmp r3, #0x68
+ blt _020DF884
+ beq _020DF8AC
+ cmp r3, #0x6a
+ beq _020DF8F8
+ cmp r3, #0x6c
+ beq _020DF8C8
+ b _020DF91C
+_020DF884:
+ cmp r3, #0x4c
+ beq _020DF8EC
+ b _020DF91C
+_020DF890:
+ cmp r3, #0x74
+ bgt _020DF8A0
+ beq _020DF904
+ b _020DF91C
+_020DF8A0:
+ cmp r3, #0x7a
+ beq _020DF910
+ b _020DF91C
+_020DF8AC:
+ ldrsb r1, [r12, #0x1]
+ mov r2, #0x2
+ strb r2, [sp, #0x4]
+ cmp r1, #0x68
+ streqb r0, [sp, #0x4]
+ ldreqsb r3, [r12, #0x1]!
+ b _020DF920
+_020DF8C8:
+ ldrsb r1, [r12, #0x1]
+ mov r2, #0x3
+ strb r2, [sp, #0x4]
+ cmp r1, #0x6c
+ bne _020DF920
+ mov r1, #0x4
+ strb r1, [sp, #0x4]
+ ldrsb r3, [r12, #0x1]!
+ b _020DF920
+_020DF8EC:
+ mov r1, #0x9
+ strb r1, [sp, #0x4]
+ b _020DF920
+_020DF8F8:
+ mov r1, #0x6
+ strb r1, [sp, #0x4]
+ b _020DF920
+_020DF904:
+ mov r1, #0x8
+ strb r1, [sp, #0x4]
+ b _020DF920
+_020DF910:
+ mov r1, #0x7
+ strb r1, [sp, #0x4]
+ b _020DF920
+_020DF91C:
+ mov r0, #0x0
+_020DF920:
+ cmp r0, #0x0
+ ldrnesb r3, [r12, #0x1]!
+ strb r3, [sp, #0x5]
+ cmp r3, #0x61
+ bgt _020DF974
+ bge _020DFA5C
+ cmp r3, #0x47
+ bgt _020DF968
+ subs r0, r3, #0x41
+ addpl pc, pc, r0, lsl #0x2
+ b _020DFB68
+_020DF94C: ; 0x020DF94C
+ b _020DFA5C
+_020DF950: ; 0x020DF950
+ b _020DFB68
+_020DF954: ; 0x020DF954
+ b _020DFB68
+_020DF958: ; 0x020DF958
+ b _020DFB68
+_020DF95C: ; 0x020DF95C
+ b _020DFAA4
+_020DF960: ; 0x020DF960
+ b _020DFA24
+_020DF964: ; 0x020DF964
+ b _020DFA94
+_020DF968:
+ cmp r3, #0x58
+ beq _020DF9E8
+ b _020DFB68
+_020DF974:
+ cmp r3, #0x63
+ bgt _020DF984
+ beq _020DFB04
+ b _020DFB68
+_020DF984:
+ sub r0, r3, #0x64
+ cmp r0, #0x14
+ addls pc, pc, r0, lsl #0x2
+ b _020DFB68
+_020DF994:
+ b _020DF9E8
+_020DF998:
+ b _020DFAA4
+_020DF99C:
+ b _020DFA24
+_020DF9A0:
+ b _020DFA94
+_020DF9A4:
+ b _020DFB68
+_020DF9A8:
+ b _020DF9E8
+_020DF9AC:
+ b _020DFB68
+_020DF9B0:
+ b _020DFB68
+_020DF9B4:
+ b _020DFB68
+_020DF9B8:
+ b _020DFB68
+_020DF9BC:
+ b _020DFB54
+_020DF9C0:
+ b _020DF9E8
+_020DF9C4:
+ b _020DFAE0
+_020DF9C8:
+ b _020DFB68
+_020DF9CC:
+ b _020DFB68
+_020DF9D0:
+ b _020DFB30
+_020DF9D4:
+ b _020DFB68
+_020DF9D8:
+ b _020DF9E8
+_020DF9DC:
+ b _020DFB68
+_020DF9E0:
+ b _020DFB68
+_020DF9E4:
+ b _020DF9E8
+_020DF9E8:
+ ldrb r0, [sp, #0x4]
+ cmp r0, #0x9
+ moveq r0, #0xff
+ streqb r0, [sp, #0x5]
+ beq _020DFB70
+ ldrb r0, [sp, #0x2]
+ cmp r0, #0x0
+ moveq r0, #0x1
+ streq r0, [sp, #0xc]
+ beq _020DFB70
+ ldrb r0, [sp, #0x0]
+ cmp r0, #0x2
+ moveq r0, #0x1
+ streqb r0, [sp, #0x0]
+ b _020DFB70
+_020DFA24:
+ ldrb r0, [sp, #0x4]
+ cmp r0, #0x2
+ cmpne r0, #0x6
+ cmpne r0, #0x7
+ cmpne r0, #0x8
+ cmpne r0, #0x4
+ moveq r0, #0xff
+ streqb r0, [sp, #0x5]
+ beq _020DFB70
+ ldrb r0, [sp, #0x2]
+ cmp r0, #0x0
+ moveq r0, #0x6
+ streq r0, [sp, #0xc]
+ b _020DFB70
+_020DFA5C:
+ ldrb r0, [sp, #0x2]
+ cmp r0, #0x0
+ moveq r0, #0xd
+ streq r0, [sp, #0xc]
+ ldrb r0, [sp, #0x4]
+ cmp r0, #0x2
+ cmpne r0, #0x6
+ cmpne r0, #0x7
+ cmpne r0, #0x8
+ cmpne r0, #0x4
+ cmpne r0, #0x1
+ moveq r0, #0xff
+ streqb r0, [sp, #0x5]
+ b _020DFB70
+_020DFA94:
+ ldr r0, [sp, #0xc]
+ cmp r0, #0x0
+ moveq r0, #0x1
+ streq r0, [sp, #0xc]
+_020DFAA4:
+ ldrb r0, [sp, #0x4]
+ cmp r0, #0x2
+ cmpne r0, #0x6
+ cmpne r0, #0x7
+ cmpne r0, #0x8
+ cmpne r0, #0x4
+ cmpne r0, #0x1
+ moveq r0, #0xff
+ streqb r0, [sp, #0x5]
+ beq _020DFB70
+ ldrb r0, [sp, #0x2]
+ cmp r0, #0x0
+ moveq r0, #0x6
+ streq r0, [sp, #0xc]
+ b _020DFB70
+_020DFAE0:
+ mov r3, #0x78
+ mov r2, #0x1
+ mov r1, #0x3
+ mov r0, #0x8
+ strb r3, [sp, #0x5]
+ strb r2, [sp, #0x3]
+ strb r1, [sp, #0x4]
+ str r0, [sp, #0xc]
+ b _020DFB70
+_020DFB04:
+ ldrb r1, [sp, #0x4]
+ cmp r1, #0x3
+ moveq r0, #0x5
+ streqb r0, [sp, #0x4]
+ beq _020DFB70
+ ldrb r0, [sp, #0x2]
+ cmp r0, #0x0
+ cmpeq r1, #0x0
+ movne r0, #0xff
+ strneb r0, [sp, #0x5]
+ b _020DFB70
+_020DFB30:
+ ldrb r0, [sp, #0x4]
+ cmp r0, #0x3
+ moveq r0, #0x5
+ streqb r0, [sp, #0x4]
+ beq _020DFB70
+ cmp r0, #0x0
+ movne r0, #0xff
+ strneb r0, [sp, #0x5]
+ b _020DFB70
+_020DFB54:
+ ldrb r0, [sp, #0x4]
+ cmp r0, #0x9
+ moveq r0, #0xff
+ streqb r0, [sp, #0x5]
+ b _020DFB70
+_020DFB68:
+ mov r0, #0xff
+ strb r0, [sp, #0x5]
+_020DFB70:
+ add r0, sp, #0x0
+ ldmia r0, {r0-r3}
+ stmia lr, {r0-r3}
+ add r0, r12, #0x1
+ add sp, sp, #0x10
+ ldmia sp!, {r4-r8,pc}
+ .balign 4
+_020DFB88: .word 0x0210430C
+_020DFB8C: .word 0x000001FD
+
+ arm_func_start long2str
+long2str: ; 0x020DFB90
+ stmdb sp!, {r0-r3}
+ stmdb sp!, {r3-r11,lr}
+ sub sp, sp, #0x10
+ movs r10, r0
+ mov r0, #0x0
+ mov r5, r1
+ str r0, [sp, #0xc]
+ ldr r7, [sp, #0x4c]
+ mov r6, r0
+ strb r0, [r5, #-0x1]!
+ ldrb r0, [sp, #0x43]
+ str r1, [sp, #0x0]
+ ldrb r8, [sp, #0x45]
+ str r0, [sp, #0x4]
+ ldr r0, [sp, #0x48]
+ ldrb r11, [sp, #0x41]
+ str r0, [sp, #0x8]
+ cmpeq r7, #0x0
+ bne _020DFC04
+ ldr r0, [sp, #0x4]
+ cmp r0, #0x0
+ beq _020DFBF0
+ cmp r8, #0x6f
+ beq _020DFC04
+_020DFBF0:
+ add sp, sp, #0x10
+ mov r0, r5
+ ldmia sp!, {r3-r11,lr}
+ add sp, sp, #0x10
+ bx lr
+_020DFC04:
+ cmp r8, #0x69
+ bgt _020DFC2C
+ bge _020DFC60
+ cmp r8, #0x58
+ bgt _020DFC20
+ beq _020DFC8C
+ b _020DFC94
+_020DFC20:
+ cmp r8, #0x64
+ beq _020DFC60
+ b _020DFC94
+_020DFC2C:
+ cmp r8, #0x6f
+ bgt _020DFC40
+ moveq r4, #0x8
+ moveq r11, #0x0
+ b _020DFC94
+_020DFC40:
+ cmp r8, #0x78
+ bgt _020DFC94
+ cmp r8, #0x75
+ blt _020DFC94
+ beq _020DFC80
+ cmp r8, #0x78
+ beq _020DFC8C
+ b _020DFC94
+_020DFC60:
+ cmp r10, #0x0
+ mov r4, #0xa
+ bge _020DFC94
+ mov r0, #0x1
+ cmp r10, #0x80000000
+ rsbne r10, r10, #0x0
+ str r0, [sp, #0xc]
+ b _020DFC94
+_020DFC80:
+ mov r4, #0xa
+ mov r11, #0x0
+ b _020DFC94
+_020DFC8C:
+ mov r4, #0x10
+ mov r11, #0x0
+_020DFC94:
+ mov r0, r10
+ mov r1, r4
+ bl _u32_div_f
+ mov r9, r1
+ mov r0, r10
+ mov r1, r4
+ bl _u32_div_f
+ cmp r9, #0xa
+ mov r10, r0
+ addlt r9, r9, #0x30
+ blt _020DFCCC
+ cmp r8, #0x78
+ addeq r9, r9, #0x57
+ addne r9, r9, #0x37
+_020DFCCC:
+ cmp r10, #0x0
+ strb r9, [r5, #-0x1]!
+ add r6, r6, #0x1
+ bne _020DFC94
+ cmp r4, #0x8
+ bne _020DFD00
+ ldr r0, [sp, #0x4]
+ cmp r0, #0x0
+ ldrnesb r0, [r5, #0x0]
+ cmpne r0, #0x30
+ movne r0, #0x30
+ strneb r0, [r5, #-0x1]!
+ addne r6, r6, #0x1
+_020DFD00:
+ ldrb r0, [sp, #0x40]
+ cmp r0, #0x2
+ bne _020DFD34
+ ldr r0, [sp, #0xc]
+ ldr r7, [sp, #0x8]
+ cmp r0, #0x0
+ cmpeq r11, #0x0
+ subne r7, r7, #0x1
+ cmp r4, #0x10
+ bne _020DFD34
+ ldr r0, [sp, #0x4]
+ cmp r0, #0x0
+ subne r7, r7, #0x2
+_020DFD34:
+ ldr r0, [sp, #0x0]
+ sub r1, r0, r5
+ ldr r0, _020DFDD8 ; =0x000001FD
+ add r1, r7, r1
+ cmp r1, r0
+ addgt sp, sp, #0x10
+ movgt r0, #0x0
+ ldmgtia sp!, {r3-r11,lr}
+ addgt sp, sp, #0x10
+ bxgt lr
+ cmp r6, r7
+ bge _020DFD78
+ mov r0, #0x30
+_020DFD68:
+ add r6, r6, #0x1
+ cmp r6, r7
+ strb r0, [r5, #-0x1]!
+ blt _020DFD68
+_020DFD78:
+ cmp r4, #0x10
+ bne _020DFD94
+ ldr r0, [sp, #0x4]
+ cmp r0, #0x0
+ movne r0, #0x30
+ strneb r8, [r5, #-0x1]
+ strneb r0, [r5, #-0x2]!
+_020DFD94:
+ ldr r0, [sp, #0xc]
+ cmp r0, #0x0
+ movne r0, #0x2d
+ strneb r0, [r5, #-0x1]!
+ bne _020DFDC4
+ cmp r11, #0x1
+ moveq r0, #0x2b
+ streqb r0, [r5, #-0x1]!
+ beq _020DFDC4
+ cmp r11, #0x2
+ moveq r0, #0x20
+ streqb r0, [r5, #-0x1]!
+_020DFDC4:
+ mov r0, r5
+ add sp, sp, #0x10
+ ldmia sp!, {r3-r11,lr}
+ add sp, sp, #0x10
+ bx lr
+ .balign 4
+_020DFDD8: .word 0x000001FD
+
+ arm_func_start longlong2str
+longlong2str: ; 0x020DFDDC
+ stmdb sp!, {r0-r3}
+ stmdb sp!, {r3-r11,lr}
+ sub sp, sp, #0x18
+ mov r9, r1
+ mov r1, #0x0
+ mov r10, r0
+ mov r6, r2
+ mov r0, r1
+ strb r0, [r6, #-0x1]!
+ ldr r0, [sp, #0x58]
+ cmp r9, #0x0
+ str r0, [sp, #0x10]
+ ldrb r0, [sp, #0x4f]
+ cmpeq r10, #0x0
+ str r2, [sp, #0x0]
+ str r0, [sp, #0x4]
+ ldr r0, [sp, #0x54]
+ str r1, [sp, #0x14]
+ str r0, [sp, #0x8]
+ ldrb r0, [sp, #0x4d]
+ mov r7, r1
+ ldrb r8, [sp, #0x51]
+ str r0, [sp, #0xc]
+ ldreq r0, [sp, #0x10]
+ cmpeq r0, #0x0
+ bne _020DFE6C
+ ldr r0, [sp, #0x4]
+ cmp r0, #0x0
+ beq _020DFE58
+ cmp r8, #0x6f
+ beq _020DFE6C
+_020DFE58:
+ add sp, sp, #0x18
+ mov r0, r6
+ ldmia sp!, {r3-r11,lr}
+ add sp, sp, #0x10
+ bx lr
+_020DFE6C:
+ cmp r8, #0x69
+ bgt _020DFE94
+ bge _020DFEC4
+ cmp r8, #0x58
+ bgt _020DFE88
+ beq _020DFF18
+ b _020DFF24
+_020DFE88:
+ cmp r8, #0x64
+ beq _020DFEC4
+ b _020DFF24
+_020DFE94:
+ cmp r8, #0x6f
+ bgt _020DFEA4
+ beq _020DFEF8
+ b _020DFF24
+_020DFEA4:
+ cmp r8, #0x78
+ bgt _020DFF24
+ cmp r8, #0x75
+ blt _020DFF24
+ beq _020DFF08
+ cmp r8, #0x78
+ beq _020DFF18
+ b _020DFF24
+_020DFEC4:
+ subs r0, r10, #0x0
+ sbcs r0, r9, #0x0
+ mov r11, #0xa
+ mov r5, #0x0
+ bge _020DFF24
+ cmp r9, #0x80000000
+ cmpeq r10, r5
+ beq _020DFEEC
+ rsbs r10, r10, #0x0
+ rsc r9, r9, #0x0
+_020DFEEC:
+ mov r0, #0x1
+ str r0, [sp, #0x14]
+ b _020DFF24
+_020DFEF8:
+ mov r5, #0x0
+ str r5, [sp, #0xc]
+ mov r11, #0x8
+ b _020DFF24
+_020DFF08:
+ mov r5, #0x0
+ str r5, [sp, #0xc]
+ mov r11, #0xa
+ b _020DFF24
+_020DFF18:
+ mov r5, #0x0
+ str r5, [sp, #0xc]
+ mov r11, #0x10
+_020DFF24:
+ mov r0, r10
+ mov r1, r9
+ mov r2, r11
+ mov r3, r5
+ bl _ull_mod
+ mov r4, r0
+ mov r0, r10
+ mov r1, r9
+ mov r2, r11
+ mov r3, r5
+ bl _ll_udiv
+ mov r10, r0
+ cmp r4, #0xa
+ mov r9, r1
+ addlt r0, r4, #0x30
+ blt _020DFF70
+ cmp r8, #0x78
+ addeq r0, r4, #0x57
+ addne r0, r4, #0x37
+_020DFF70:
+ strb r0, [r6, #-0x1]!
+ mov r0, #0x0
+ cmp r9, r0
+ cmpeq r10, r0
+ add r7, r7, #0x1
+ bne _020DFF24
+ cmp r5, #0x0
+ cmpeq r11, #0x8
+ bne _020DFFB0
+ ldr r0, [sp, #0x4]
+ cmp r0, #0x0
+ ldrnesb r0, [r6, #0x0]
+ cmpne r0, #0x30
+ movne r0, #0x30
+ strneb r0, [r6, #-0x1]!
+ addne r7, r7, #0x1
+_020DFFB0:
+ ldrb r0, [sp, #0x4c]
+ cmp r0, #0x2
+ bne _020E0000
+ ldr r0, [sp, #0x8]
+ str r0, [sp, #0x10]
+ ldr r0, [sp, #0x14]
+ cmp r0, #0x0
+ ldreq r0, [sp, #0xc]
+ cmpeq r0, #0x0
+ ldrne r0, [sp, #0x10]
+ subne r0, r0, #0x1
+ strne r0, [sp, #0x10]
+ cmp r5, #0x0
+ cmpeq r11, #0x10
+ bne _020E0000
+ ldr r0, [sp, #0x4]
+ cmp r0, #0x0
+ ldrne r0, [sp, #0x10]
+ subne r0, r0, #0x2
+ strne r0, [sp, #0x10]
+_020E0000:
+ ldr r0, [sp, #0x0]
+ ldr r1, _020E00B8 ; =0x000001FD
+ sub r2, r0, r6
+ ldr r0, [sp, #0x10]
+ add r0, r0, r2
+ cmp r0, r1
+ addgt sp, sp, #0x18
+ movgt r0, #0x0
+ ldmgtia sp!, {r3-r11,lr}
+ addgt sp, sp, #0x10
+ bxgt lr
+ ldr r0, [sp, #0x10]
+ cmp r7, r0
+ bge _020E0050
+ mov r1, #0x30
+_020E003C:
+ ldr r0, [sp, #0x10]
+ add r7, r7, #0x1
+ cmp r7, r0
+ strb r1, [r6, #-0x1]!
+ blt _020E003C
+_020E0050:
+ cmp r5, #0x0
+ cmpeq r11, #0x10
+ bne _020E0070
+ ldr r0, [sp, #0x4]
+ cmp r0, #0x0
+ movne r0, #0x30
+ strneb r8, [r6, #-0x1]
+ strneb r0, [r6, #-0x2]!
+_020E0070:
+ ldr r0, [sp, #0x14]
+ cmp r0, #0x0
+ movne r0, #0x2d
+ strneb r0, [r6, #-0x1]!
+ bne _020E00A4
+ ldr r0, [sp, #0xc]
+ cmp r0, #0x1
+ moveq r0, #0x2b
+ streqb r0, [r6, #-0x1]!
+ beq _020E00A4
+ cmp r0, #0x2
+ moveq r0, #0x20
+ streqb r0, [r6, #-0x1]!
+_020E00A4:
+ mov r0, r6
+ add sp, sp, #0x18
+ ldmia sp!, {r3-r11,lr}
+ add sp, sp, #0x10
+ bx lr
+ .balign 4
+_020E00B8: .word 0x000001FD
+
+ arm_func_start double2hex
+double2hex: ; 0x020E00BC
+ stmdb sp!, {r0-r3}
+ stmdb sp!, {r3-r10,lr}
+ sub sp, sp, #0x44
+ ldr r7, [sp, #0x80]
+ ldr r0, _020E056C ; =0x000001FD
+ mov r8, r2
+ cmp r7, r0
+ ldrb r6, [sp, #0x79]
+ ldrb r5, [sp, #0x77]
+ ldrb r4, [sp, #0x75]
+ ldr r1, [sp, #0x68]
+ ldr r2, [sp, #0x6c]
+ addgt sp, sp, #0x44
+ movgt r0, #0x0
+ ldmgtia sp!, {r3-r10,lr}
+ addgt sp, sp, #0x10
+ bxgt lr
+ mov r10, #0x0
+ mov r9, #0x20
+ add r0, sp, #0x8
+ add r3, sp, #0xc
+ strb r10, [sp, #0x8]
+ strh r9, [sp, #0xa]
+ bl __num2dec_internal2
+ ldr r0, [sp, #0x68]
+ ldr r1, [sp, #0x6c]
+ bl fabs
+ mov r2, r0
+ mov r0, r10
+ mov r3, r1
+ mov r1, r0
+ bl _deq
+ bne _020E0188
+ ldr r3, _020E0570 ; =0x02106DA0
+ sub r0, r8, #0x6
+ ldrb r2, [r3, #0x0]
+ ldrb r1, [r3, #0x1]
+ add sp, sp, #0x44
+ strb r2, [r8, #-0x6]
+ strb r1, [r0, #0x1]
+ ldrb r2, [r3, #0x2]
+ ldrb r1, [r3, #0x3]
+ strb r2, [r0, #0x2]
+ strb r1, [r0, #0x3]
+ ldrb r2, [r3, #0x4]
+ ldrb r1, [r3, #0x5]
+ strb r2, [r0, #0x4]
+ strb r1, [r0, #0x5]
+ ldmia sp!, {r3-r10,lr}
+ add sp, sp, #0x10
+ bx lr
+_020E0188:
+ ldrb r0, [sp, #0x11]
+ cmp r0, #0x49
+ bne _020E0298
+ ldrsb r0, [sp, #0xc]
+ cmp r0, #0x0
+ beq _020E0224
+ cmp r6, #0x41
+ sub r0, r8, #0x5
+ bne _020E01E8
+ ldr r3, _020E0574 ; =0x02106DA8
+ add sp, sp, #0x44
+ ldrb r2, [r3, #0x0]
+ ldrb r1, [r3, #0x1]
+ strb r2, [r0, #0x0]
+ strb r1, [r0, #0x1]
+ ldrb r2, [r3, #0x2]
+ ldrb r1, [r3, #0x3]
+ strb r2, [r0, #0x2]
+ strb r1, [r0, #0x3]
+ ldrb r1, [r3, #0x4]
+ strb r1, [r0, #0x4]
+ ldmia sp!, {r3-r10,lr}
+ add sp, sp, #0x10
+ bx lr
+_020E01E8:
+ ldr r3, _020E0578 ; =0x02106DB0
+ add sp, sp, #0x44
+ ldrb r2, [r3, #0x0]
+ ldrb r1, [r3, #0x1]
+ strb r2, [r0, #0x0]
+ strb r1, [r0, #0x1]
+ ldrb r2, [r3, #0x2]
+ ldrb r1, [r3, #0x3]
+ strb r2, [r0, #0x2]
+ strb r1, [r0, #0x3]
+ ldrb r1, [r3, #0x4]
+ strb r1, [r0, #0x4]
+ ldmia sp!, {r3-r10,lr}
+ add sp, sp, #0x10
+ bx lr
+_020E0224:
+ cmp r6, #0x41
+ sub r0, r8, #0x4
+ bne _020E0264
+ ldr r3, _020E057C ; =0x02106DB8
+ add sp, sp, #0x44
+ ldrb r2, [r3, #0x0]
+ ldrb r1, [r3, #0x1]
+ strb r2, [r0, #0x0]
+ strb r1, [r0, #0x1]
+ ldrb r2, [r3, #0x2]
+ ldrb r1, [r3, #0x3]
+ strb r2, [r0, #0x2]
+ strb r1, [r0, #0x3]
+ ldmia sp!, {r3-r10,lr}
+ add sp, sp, #0x10
+ bx lr
+_020E0264:
+ ldr r3, _020E0580 ; =0x02106DBC
+ add sp, sp, #0x44
+ ldrb r2, [r3, #0x0]
+ ldrb r1, [r3, #0x1]
+ strb r2, [r0, #0x0]
+ strb r1, [r0, #0x1]
+ ldrb r2, [r3, #0x2]
+ ldrb r1, [r3, #0x3]
+ strb r2, [r0, #0x2]
+ strb r1, [r0, #0x3]
+ ldmia sp!, {r3-r10,lr}
+ add sp, sp, #0x10
+ bx lr
+_020E0298:
+ cmp r0, #0x4e
+ bne _020E03A4
+ ldrsb r0, [sp, #0xc]
+ cmp r0, #0x0
+ beq _020E0330
+ cmp r6, #0x41
+ sub r0, r8, #0x5
+ bne _020E02F4
+ ldr r3, _020E0584 ; =0x02106DC0
+ add sp, sp, #0x44
+ ldrb r2, [r3, #0x0]
+ ldrb r1, [r3, #0x1]
+ strb r2, [r0, #0x0]
+ strb r1, [r0, #0x1]
+ ldrb r2, [r3, #0x2]
+ ldrb r1, [r3, #0x3]
+ strb r2, [r0, #0x2]
+ strb r1, [r0, #0x3]
+ ldrb r1, [r3, #0x4]
+ strb r1, [r0, #0x4]
+ ldmia sp!, {r3-r10,lr}
+ add sp, sp, #0x10
+ bx lr
+_020E02F4:
+ ldr r3, _020E0588 ; =0x02106DC8
+ add sp, sp, #0x44
+ ldrb r2, [r3, #0x0]
+ ldrb r1, [r3, #0x1]
+ strb r2, [r0, #0x0]
+ strb r1, [r0, #0x1]
+ ldrb r2, [r3, #0x2]
+ ldrb r1, [r3, #0x3]
+ strb r2, [r0, #0x2]
+ strb r1, [r0, #0x3]
+ ldrb r1, [r3, #0x4]
+ strb r1, [r0, #0x4]
+ ldmia sp!, {r3-r10,lr}
+ add sp, sp, #0x10
+ bx lr
+_020E0330:
+ cmp r6, #0x41
+ sub r0, r8, #0x4
+ bne _020E0370
+ ldr r3, _020E058C ; =0x02106DD0
+ add sp, sp, #0x44
+ ldrb r2, [r3, #0x0]
+ ldrb r1, [r3, #0x1]
+ strb r2, [r0, #0x0]
+ strb r1, [r0, #0x1]
+ ldrb r2, [r3, #0x2]
+ ldrb r1, [r3, #0x3]
+ strb r2, [r0, #0x2]
+ strb r1, [r0, #0x3]
+ ldmia sp!, {r3-r10,lr}
+ add sp, sp, #0x10
+ bx lr
+_020E0370:
+ ldr r3, _020E0590 ; =0x02106DD4
+ add sp, sp, #0x44
+ ldrb r2, [r3, #0x0]
+ ldrb r1, [r3, #0x1]
+ strb r2, [r0, #0x0]
+ strb r1, [r0, #0x1]
+ ldrb r2, [r3, #0x2]
+ ldrb r1, [r3, #0x3]
+ strb r2, [r0, #0x2]
+ strb r1, [r0, #0x3]
+ ldmia sp!, {r3-r10,lr}
+ add sp, sp, #0x10
+ bx lr
+_020E03A4:
+ mov r3, r10
+ mov r1, #0x1
+ mov r0, #0x64
+ add r9, sp, #0x68
+ strb r1, [sp, #0x34]
+ strb r1, [sp, #0x35]
+ strb r3, [sp, #0x36]
+ strb r3, [sp, #0x37]
+ strb r3, [sp, #0x38]
+ str r3, [sp, #0x3c]
+ str r1, [sp, #0x40]
+ strb r0, [sp, #0x39]
+_020E03D4:
+ rsb r1, r3, #0x7
+ ldrsb r2, [r9, r3]
+ ldrsb r0, [r9, r1]
+ strb r0, [r9, r3]
+ add r3, r3, #0x1
+ strb r2, [r9, r1]
+ cmp r3, #0x4
+ blt _020E03D4
+ ldrb r0, [sp, #0x69]
+ ldrb r1, [sp, #0x68]
+ ldr sb, _020E0594 ; =0x000007FF
+ mov r0, r0, lsl #0x11
+ orr r1, r0, r1, lsl #0x19
+ add r0, sp, #0x34
+ and lr, r9, r1, lsr #0x15
+ sub r12, sp, #0x8
+ ldmia r0, {r0-r3}
+ stmia r12, {r0-r3}
+ rsb r0, r9, #0x400
+ mov r1, r8
+ add r0, lr, r0
+ ldmia r12, {r2-r3}
+ bl long2str
+ cmp r6, #0x61
+ moveq r1, #0x70
+ movne r1, #0x50
+ strb r1, [r0, #-0x1]!
+ mov r1, r7, lsl #0x2
+ mov lr, r7
+ cmp r7, #0x1
+ add r8, r1, #0xb
+ add r12, sp, #0x68
+ blt _020E04E4
+ mov r9, #0x30
+_020E045C:
+ cmp r8, #0x40
+ bge _020E04CC
+ ldrb r1, [r12, r8, asr #0x3]
+ and r2, r8, #0x7
+ rsb r3, r2, #0x7
+ mov r2, r1, asr r3
+ sub r10, r8, #0x4
+ bic r1, r8, #0x7
+ bic r10, r10, #0x7
+ cmp r1, r10
+ add r10, r12, r8, asr #0x3
+ and r1, r2, #0xff
+ beq _020E04A0
+ ldrb r2, [r10, #-0x1]
+ mov r2, r2, lsl #0x8
+ orr r1, r1, r2, asr r3
+ and r1, r1, #0xff
+_020E04A0:
+ and r1, r1, #0xf
+ cmp r1, #0xa
+ addcc r1, r1, #0x30
+ andcc r1, r1, #0xff
+ blo _020E04D0
+ cmp r6, #0x61
+ addeq r1, r1, #0x57
+ andeq r1, r1, #0xff
+ addne r1, r1, #0x37
+ andne r1, r1, #0xff
+ b _020E04D0
+_020E04CC:
+ mov r1, r9
+_020E04D0:
+ sub lr, lr, #0x1
+ cmp lr, #0x1
+ strb r1, [r0, #-0x1]!
+ sub r8, r8, #0x4
+ bge _020E045C
+_020E04E4:
+ cmp r7, #0x0
+ cmpeq r5, #0x0
+ movne r1, #0x2e
+ strneb r1, [r0, #-0x1]!
+ mov r1, #0x31
+ strb r1, [r0, #-0x1]
+ cmp r6, #0x61
+ moveq r1, #0x78
+ movne r1, #0x58
+ strb r1, [r0, #-0x2]!
+ mov r1, #0x30
+ strb r1, [r0, #-0x1]!
+ ldrsb r1, [sp, #0xc]
+ cmp r1, #0x0
+ movne r1, #0x2d
+ strneb r1, [r0, #-0x1]!
+ addne sp, sp, #0x44
+ ldmneia sp!, {r3-r10,lr}
+ addne sp, sp, #0x10
+ bxne lr
+ cmp r4, #0x1
+ moveq r1, #0x2b
+ streqb r1, [r0, #-0x1]!
+ addeq sp, sp, #0x44
+ ldmeqia sp!, {r3-r10,lr}
+ addeq sp, sp, #0x10
+ bxeq lr
+ cmp r4, #0x2
+ moveq r1, #0x20
+ streqb r1, [r0, #-0x1]!
+ add sp, sp, #0x44
+ ldmia sp!, {r3-r10,lr}
+ add sp, sp, #0x10
+ bx lr
+ .balign 4
+_020E056C: .word 0x000001FD
+_020E0570: .word 0x02106DA0
+_020E0574: .word 0x02106DA8
+_020E0578: .word 0x02106DB0
+_020E057C: .word 0x02106DB8
+_020E0580: .word 0x02106DBC
+_020E0584: .word 0x02106DC0
+_020E0588: .word 0x02106DC8
+_020E058C: .word 0x02106DD0
+_020E0590: .word 0x02106DD4
+_020E0594: .word 0x000007FF
+
+ arm_func_start round_decimal
+round_decimal: ; 0x020E0598
+ stmdb sp!, {r4,lr}
+ cmp r1, #0x0
+ bge _020E05C0
+_020E05A4:
+ mov r1, #0x0
+ strh r1, [r0, #0x2]
+ mov r1, #0x1
+ strb r1, [r0, #0x4]
+ mov r1, #0x30
+ strb r1, [r0, #0x5]
+ ldmia sp!, {r4,pc}
+_020E05C0:
+ ldrb lr, [r0, #0x4]
+ cmp r1, lr
+ ldmgeia sp!, {r4,pc}
+_020E05CC: ; 0x020E05CC
+ add r12, r0, #0x5
+ add r2, r12, r1
+ add r2, r2, #0x1
+ ldrsb r3, [r2, #-0x1]!
+ sub r3, r3, #0x30
+ mov r3, r3, lsl #0x18
+ mov r3, r3, asr #0x18
+ cmp r3, #0x5
+ bne _020E0620
+ add r12, r12, lr
+_020E05F4:
+ sub r12, r12, #0x1
+ cmp r12, r2
+ bls _020E060C
+ ldrsb r3, [r12, #0x0]
+ cmp r3, #0x30
+ beq _020E05F4
+_020E060C:
+ cmp r12, r2
+ ldreqsb r3, [r2, #-0x1]
+ andeq r4, r3, #0x1
+ movne r4, #0x1
+ b _020E0628
+_020E0620:
+ movgt r4, #0x1
+ movle r4, #0x0
+_020E0628:
+ cmp r1, #0x0
+ beq _020E0684
+ mov r12, #0x0
+ mov lr, #0x1
+_020E0638:
+ ldrsb r3, [r2, #-0x1]!
+ sub r3, r3, #0x30
+ add r3, r3, r4
+ mov r3, r3, lsl #0x18
+ mov r3, r3, asr #0x18
+ cmp r3, #0x9
+ movgt r4, lr
+ movle r4, r12
+ cmp r4, #0x0
+ bne _020E0668
+ cmp r3, #0x0
+ bne _020E0670
+_020E0668:
+ sub r1, r1, #0x1
+ b _020E067C
+_020E0670:
+ add r3, r3, #0x30
+ strb r3, [r2, #0x0]
+ b _020E0684
+_020E067C:
+ cmp r1, #0x0
+ bne _020E0638
+_020E0684:
+ cmp r4, #0x0
+ beq _020E06AC
+ ldrsh r3, [r0, #0x2]
+ mov r2, #0x1
+ mov r1, #0x31
+ add r3, r3, #0x1
+ strh r3, [r0, #0x2]
+ strb r2, [r0, #0x4]
+ strb r1, [r0, #0x5]
+ ldmia sp!, {r4,pc}
+_020E06AC:
+ cmp r1, #0x0
+ beq _020E05A4
+ strb r1, [r0, #0x4]
+ ldmia sp!, {r4,pc}
+
+ arm_func_start float2str
+float2str: ; 0x020E06BC
+ stmdb sp!, {r0-r3}
+ stmdb sp!, {r4-r11,lr}
+ sub sp, sp, #0x2c
+ ldr r7, [sp, #0x68]
+ ldr r3, _020E0DF4 ; =0x000001FD
+ ldrb r6, [sp, #0x61]
+ ldrb r5, [sp, #0x5f]
+ ldrb r4, [sp, #0x5d]
+ cmp r7, r3
+ mov r10, r0
+ mov r8, r1
+ mov r9, r2
+ addgt sp, sp, #0x2c
+ movgt r0, #0x0
+ ldmgtia sp!, {r4-r11,lr}
+ addgt sp, sp, #0x10
+ bxgt lr
+ mov r12, #0x0
+ mov r11, #0x20
+ add r0, sp, #0x0
+ add r3, sp, #0x4
+ mov r1, r10
+ mov r2, r8
+ strb r12, [sp, #0x0]
+ strh r11, [sp, #0x2]
+ bl __num2dec_internal2
+ ldrb r0, [sp, #0x8]
+ add r1, sp, #0x9
+ add r0, r1, r0
+ b _020E074C
+_020E0734:
+ ldrb r2, [sp, #0x8]
+ ldrsh r1, [sp, #0x6]
+ sub r2, r2, #0x1
+ add r1, r1, #0x1
+ strb r2, [sp, #0x8]
+ strh r1, [sp, #0x6]
+_020E074C:
+ ldrb r1, [sp, #0x8]
+ cmp r1, #0x1
+ bls _020E0764
+ ldrsb r1, [r0, #-0x1]!
+ cmp r1, #0x30
+ beq _020E0734
+_020E0764:
+ ldrb r0, [sp, #0x9]
+ cmp r0, #0x30
+ beq _020E0784
+ cmp r0, #0x49
+ beq _020E0790
+ cmp r0, #0x4e
+ beq _020E08F0
+ b _020E0A44
+_020E0784:
+ mov r0, #0x0
+ strh r0, [sp, #0x6]
+ b _020E0A44
+_020E0790:
+ mov r2, #0x0
+ mov r0, r10
+ mov r1, r8
+ mov r3, r2
+ bl _dls
+ bhs _020E0854
+ cmp r6, #0x0
+ sub r0, r9, #0x5
+ blt _020E07BC
+ cmp r6, #0x80
+ blt _020E07C4
+_020E07BC:
+ mov r1, #0x0
+ b _020E07D4
+_020E07C4:
+ ldr r1, _020E0DF8 ; =0x0210430C
+ mov r2, r6, lsl #0x1
+ ldrh r1, [r1, r2]
+ and r1, r1, #0x200
+_020E07D4:
+ cmp r1, #0x0
+ beq _020E0818
+ ldr r3, _020E0DFC ; =0x02106DA8
+ add sp, sp, #0x2c
+ ldrb r2, [r3, #0x0]
+ ldrb r1, [r3, #0x1]
+ strb r2, [r0, #0x0]
+ strb r1, [r0, #0x1]
+ ldrb r2, [r3, #0x2]
+ ldrb r1, [r3, #0x3]
+ strb r2, [r0, #0x2]
+ strb r1, [r0, #0x3]
+ ldrb r1, [r3, #0x4]
+ strb r1, [r0, #0x4]
+ ldmia sp!, {r4-r11,lr}
+ add sp, sp, #0x10
+ bx lr
+_020E0818:
+ ldr r3, _020E0E00 ; =0x02106DB0
+ add sp, sp, #0x2c
+ ldrb r2, [r3, #0x0]
+ ldrb r1, [r3, #0x1]
+ strb r2, [r0, #0x0]
+ strb r1, [r0, #0x1]
+ ldrb r2, [r3, #0x2]
+ ldrb r1, [r3, #0x3]
+ strb r2, [r0, #0x2]
+ strb r1, [r0, #0x3]
+ ldrb r1, [r3, #0x4]
+ strb r1, [r0, #0x4]
+ ldmia sp!, {r4-r11,lr}
+ add sp, sp, #0x10
+ bx lr
+_020E0854:
+ cmp r6, #0x0
+ sub r0, r9, #0x4
+ blt _020E0868
+ cmp r6, #0x80
+ blt _020E0870
+_020E0868:
+ mov r1, #0x0
+ b _020E0880
+_020E0870:
+ ldr r1, _020E0DF8 ; =0x0210430C
+ mov r2, r6, lsl #0x1
+ ldrh r1, [r1, r2]
+ and r1, r1, #0x200
+_020E0880:
+ cmp r1, #0x0
+ beq _020E08BC
+ ldr r3, _020E0E04 ; =0x02106DB8
+ add sp, sp, #0x2c
+ ldrb r2, [r3, #0x0]
+ ldrb r1, [r3, #0x1]
+ strb r2, [r0, #0x0]
+ strb r1, [r0, #0x1]
+ ldrb r2, [r3, #0x2]
+ ldrb r1, [r3, #0x3]
+ strb r2, [r0, #0x2]
+ strb r1, [r0, #0x3]
+ ldmia sp!, {r4-r11,lr}
+ add sp, sp, #0x10
+ bx lr
+_020E08BC:
+ ldr r3, _020E0E08 ; =0x02106DBC
+ add sp, sp, #0x2c
+ ldrb r2, [r3, #0x0]
+ ldrb r1, [r3, #0x1]
+ strb r2, [r0, #0x0]
+ strb r1, [r0, #0x1]
+ ldrb r2, [r3, #0x2]
+ ldrb r1, [r3, #0x3]
+ strb r2, [r0, #0x2]
+ strb r1, [r0, #0x3]
+ ldmia sp!, {r4-r11,lr}
+ add sp, sp, #0x10
+ bx lr
+_020E08F0:
+ ldrsb r0, [sp, #0x4]
+ cmp r0, #0x0
+ beq _020E09A8
+ cmp r6, #0x0
+ sub r0, r9, #0x5
+ blt _020E0910
+ cmp r6, #0x80
+ blt _020E0918
+_020E0910:
+ mov r1, #0x0
+ b _020E0928
+_020E0918:
+ ldr r1, _020E0DF8 ; =0x0210430C
+ mov r2, r6, lsl #0x1
+ ldrh r1, [r1, r2]
+ and r1, r1, #0x200
+_020E0928:
+ cmp r1, #0x0
+ beq _020E096C
+ ldr r3, _020E0E0C ; =0x02106DC0
+ add sp, sp, #0x2c
+ ldrb r2, [r3, #0x0]
+ ldrb r1, [r3, #0x1]
+ strb r2, [r0, #0x0]
+ strb r1, [r0, #0x1]
+ ldrb r2, [r3, #0x2]
+ ldrb r1, [r3, #0x3]
+ strb r2, [r0, #0x2]
+ strb r1, [r0, #0x3]
+ ldrb r1, [r3, #0x4]
+ strb r1, [r0, #0x4]
+ ldmia sp!, {r4-r11,lr}
+ add sp, sp, #0x10
+ bx lr
+_020E096C:
+ ldr r3, _020E0E10 ; =0x02106DC8
+ add sp, sp, #0x2c
+ ldrb r2, [r3, #0x0]
+ ldrb r1, [r3, #0x1]
+ strb r2, [r0, #0x0]
+ strb r1, [r0, #0x1]
+ ldrb r2, [r3, #0x2]
+ ldrb r1, [r3, #0x3]
+ strb r2, [r0, #0x2]
+ strb r1, [r0, #0x3]
+ ldrb r1, [r3, #0x4]
+ strb r1, [r0, #0x4]
+ ldmia sp!, {r4-r11,lr}
+ add sp, sp, #0x10
+ bx lr
+_020E09A8:
+ cmp r6, #0x0
+ sub r0, r9, #0x4
+ blt _020E09BC
+ cmp r6, #0x80
+ blt _020E09C4
+_020E09BC:
+ mov r1, #0x0
+ b _020E09D4
+_020E09C4:
+ ldr r1, _020E0DF8 ; =0x0210430C
+ mov r2, r6, lsl #0x1
+ ldrh r1, [r1, r2]
+ and r1, r1, #0x200
+_020E09D4:
+ cmp r1, #0x0
+ beq _020E0A10
+ ldr r3, _020E0E14 ; =0x02106DD0
+ add sp, sp, #0x2c
+ ldrb r2, [r3, #0x0]
+ ldrb r1, [r3, #0x1]
+ strb r2, [r0, #0x0]
+ strb r1, [r0, #0x1]
+ ldrb r2, [r3, #0x2]
+ ldrb r1, [r3, #0x3]
+ strb r2, [r0, #0x2]
+ strb r1, [r0, #0x3]
+ ldmia sp!, {r4-r11,lr}
+ add sp, sp, #0x10
+ bx lr
+_020E0A10:
+ ldr r3, _020E0E18 ; =0x02106DD4
+ add sp, sp, #0x2c
+ ldrb r2, [r3, #0x0]
+ ldrb r1, [r3, #0x1]
+ strb r2, [r0, #0x0]
+ strb r1, [r0, #0x1]
+ ldrb r2, [r3, #0x2]
+ ldrb r1, [r3, #0x3]
+ strb r2, [r0, #0x2]
+ strb r1, [r0, #0x3]
+ ldmia sp!, {r4-r11,lr}
+ add sp, sp, #0x10
+ bx lr
+_020E0A44:
+ ldrb r0, [sp, #0x8]
+ ldrsh r1, [sp, #0x6]
+ sub r8, r9, #0x1
+ sub r0, r0, #0x1
+ add r0, r1, r0
+ strh r0, [sp, #0x6]
+ mov r0, #0x0
+ strb r0, [r8, #0x0]
+ cmp r6, #0x65
+ bgt _020E0A98
+ bge _020E0B24
+ cmp r6, #0x47
+ bgt _020E0DE0
+ cmp r6, #0x45
+ blt _020E0DE0
+ beq _020E0B24
+ cmp r6, #0x46
+ beq _020E0C6C
+ cmp r6, #0x47
+ beq _020E0AB0
+ b _020E0DE0
+_020E0A98:
+ cmp r6, #0x66
+ bgt _020E0AA8
+ beq _020E0C6C
+ b _020E0DE0
+_020E0AA8:
+ cmp r6, #0x67
+ bne _020E0DE0
+_020E0AB0:
+ ldrb r0, [sp, #0x8]
+ cmp r0, r7
+ ble _020E0AC8
+ add r0, sp, #0x4
+ mov r1, r7
+ bl round_decimal
+_020E0AC8:
+ ldrsh r2, [sp, #0x6]
+ mvn r0, #0x3
+ cmp r2, r0
+ blt _020E0AE0
+ cmp r2, r7
+ blt _020E0B00
+_020E0AE0:
+ cmp r5, #0x0
+ ldreqb r0, [sp, #0x8]
+ subne r7, r7, #0x1
+ subeq r7, r0, #0x1
+ cmp r6, #0x67
+ moveq r6, #0x65
+ movne r6, #0x45
+ b _020E0B24
+_020E0B00:
+ cmp r5, #0x0
+ addne r0, r2, #0x1
+ subne r7, r7, r0
+ bne _020E0C6C
+ ldrb r1, [sp, #0x8]
+ add r0, r2, #0x1
+ subs r7, r1, r0
+ movmi r7, #0x0
+ b _020E0C6C
+_020E0B24:
+ ldrb r0, [sp, #0x8]
+ add r1, r7, #0x1
+ cmp r0, r1
+ ble _020E0B3C
+ add r0, sp, #0x4
+ bl round_decimal
+_020E0B3C:
+ ldrsh lr, [sp, #0x6]
+ mov r11, #0x2b
+ mov r10, #0x0
+ cmp lr, #0x0
+ rsblt lr, lr, #0x0
+ movlt r11, #0x2d
+ ldr r3, _020E0E1C ; =0x66666667
+ mov r0, #0xa
+ b _020E0B90
+_020E0B60:
+ mov r1, lr, lsr #0x1f
+ smull r2, r12, r3, lr
+ add r12, r1, r12, asr #0x2
+ smull r1, r2, r0, r12
+ sub r12, lr, r1
+ add r1, r12, #0x30
+ strb r1, [r8, #-0x1]!
+ mov r2, lr
+ smull r1, lr, r3, r2
+ mov r1, r2, lsr #0x1f
+ add lr, r1, lr, asr #0x2
+ add r10, r10, #0x1
+_020E0B90:
+ cmp lr, #0x0
+ bne _020E0B60
+ cmp r10, #0x2
+ blt _020E0B60
+ strb r11, [r8, #-0x1]
+ strb r6, [r8, #-0x2]!
+ sub r1, r9, r8
+ ldr r0, _020E0DF4 ; =0x000001FD
+ add r1, r7, r1
+ cmp r1, r0
+ addgt sp, sp, #0x2c
+ movgt r0, #0x0
+ ldmgtia sp!, {r4-r11,lr}
+ addgt sp, sp, #0x10
+ bxgt lr
+ ldrb r1, [sp, #0x8]
+ add r0, r7, #0x1
+ cmp r1, r0
+ bge _020E0BFC
+ add r0, r7, #0x2
+ sub r0, r0, r1
+ subs r1, r0, #0x1
+ beq _020E0BFC
+ mov r0, #0x30
+_020E0BF0:
+ strb r0, [r8, #-0x1]!
+ subs r1, r1, #0x1
+ bne _020E0BF0
+_020E0BFC:
+ ldrb r1, [sp, #0x8]
+ add r0, sp, #0x9
+ add r2, r0, r1
+ subs r1, r1, #0x1
+ beq _020E0C20
+_020E0C10:
+ ldrsb r0, [r2, #-0x1]!
+ subs r1, r1, #0x1
+ strb r0, [r8, #-0x1]!
+ bne _020E0C10
+_020E0C20:
+ cmp r7, #0x0
+ cmpeq r5, #0x0
+ movne r0, #0x2e
+ strneb r0, [r8, #-0x1]!
+ ldrb r0, [sp, #0x9]
+ strb r0, [r8, #-0x1]!
+ ldrsb r0, [sp, #0x4]
+ cmp r0, #0x0
+ movne r0, #0x2d
+ strneb r0, [r8, #-0x1]!
+ bne _020E0DE0
+ cmp r4, #0x1
+ moveq r0, #0x2b
+ streqb r0, [r8, #-0x1]!
+ beq _020E0DE0
+ cmp r4, #0x2
+ moveq r0, #0x20
+ streqb r0, [r8, #-0x1]!
+ b _020E0DE0
+_020E0C6C:
+ ldrsh r3, [sp, #0x6]
+ ldrb r2, [sp, #0x8]
+ sub r0, r2, r3
+ subs r1, r0, #0x1
+ movmi r1, #0x0
+ cmp r1, r7
+ ble _020E0CAC
+ sub r1, r1, r7
+ add r0, sp, #0x4
+ sub r1, r2, r1
+ bl round_decimal
+ ldrsh r3, [sp, #0x6]
+ ldrb r2, [sp, #0x8]
+ sub r0, r2, r3
+ subs r1, r0, #0x1
+ movmi r1, #0x0
+_020E0CAC:
+ adds r0, r3, #0x1
+ movmi r0, #0x0
+ ldr r3, _020E0DF4 ; =0x000001FD
+ add r6, r0, r1
+ cmp r6, r3
+ addgt sp, sp, #0x2c
+ movgt r0, #0x0
+ ldmgtia sp!, {r4-r11,lr}
+ addgt sp, sp, #0x10
+ bxgt lr
+ add r3, sp, #0x9
+ sub r6, r7, r1
+ cmp r6, #0x0
+ add r2, r3, r2
+ mov r9, #0x0
+ ble _020E0D00
+ mov r3, #0x30
+_020E0CF0:
+ add r9, r9, #0x1
+ cmp r9, r6
+ strb r3, [r8, #-0x1]!
+ blt _020E0CF0
+_020E0D00:
+ mov r6, #0x0
+ b _020E0D14
+_020E0D08:
+ ldrsb r3, [r2, #-0x1]!
+ add r6, r6, #0x1
+ strb r3, [r8, #-0x1]!
+_020E0D14:
+ cmp r6, r1
+ ldrltb r3, [sp, #0x8]
+ cmplt r6, r3
+ blt _020E0D08
+ cmp r6, r1
+ bge _020E0D40
+ mov r3, #0x30
+_020E0D30:
+ add r6, r6, #0x1
+ cmp r6, r1
+ strb r3, [r8, #-0x1]!
+ blt _020E0D30
+_020E0D40:
+ cmp r7, #0x0
+ cmpeq r5, #0x0
+ movne r1, #0x2e
+ strneb r1, [r8, #-0x1]!
+ cmp r0, #0x0
+ beq _020E0DA8
+ ldrb r1, [sp, #0x8]
+ mov r5, #0x0
+ sub r1, r0, r1
+ cmp r1, #0x0
+ ble _020E0D88
+ mov r3, #0x30
+_020E0D70:
+ strb r3, [r8, #-0x1]!
+ ldrb r1, [sp, #0x8]
+ add r5, r5, #0x1
+ sub r1, r0, r1
+ cmp r5, r1
+ blt _020E0D70
+_020E0D88:
+ cmp r5, r0
+ bge _020E0DB0
+_020E0D90:
+ ldrsb r1, [r2, #-0x1]!
+ add r5, r5, #0x1
+ cmp r5, r0
+ strb r1, [r8, #-0x1]!
+ blt _020E0D90
+ b _020E0DB0
+_020E0DA8:
+ mov r0, #0x30
+ strb r0, [r8, #-0x1]!
+_020E0DB0:
+ ldrsb r0, [sp, #0x4]
+ cmp r0, #0x0
+ movne r0, #0x2d
+ strneb r0, [r8, #-0x1]!
+ bne _020E0DE0
+ cmp r4, #0x1
+ moveq r0, #0x2b
+ streqb r0, [r8, #-0x1]!
+ beq _020E0DE0
+ cmp r4, #0x2
+ moveq r0, #0x20
+ streqb r0, [r8, #-0x1]!
+_020E0DE0:
+ mov r0, r8
+ add sp, sp, #0x2c
+ ldmia sp!, {r4-r11,lr}
+ add sp, sp, #0x10
+ bx lr
+ .balign 4
+_020E0DF4: .word 0x000001FD
+_020E0DF8: .word 0x0210430C
+_020E0DFC: .word 0x02106DA8
+_020E0E00: .word 0x02106DB0
+_020E0E04: .word 0x02106DB8
+_020E0E08: .word 0x02106DBC
+_020E0E0C: .word 0x02106DC0
+_020E0E10: .word 0x02106DC8
+_020E0E14: .word 0x02106DD0
+_020E0E18: .word 0x02106DD4
+_020E0E1C: .word 0x66666667
+
+ arm_func_start __pformatter
+__pformatter:
+ stmdb sp!, {r0-r3}
+ stmdb sp!, {r4-r11,lr}
+ sub sp, sp, #0x22c
+ mov r3, #0x20
+ mov r11, r2
+ strb r3, [sp, #0x19]
+ ldrsb r2, [r11, #0x0]
+ mov r9, r0
+ mov r8, r1
+ cmp r2, #0x0
+ mov r10, #0x0
+ beq _020E1628
+_020E0E50:
+ mov r0, r11
+ mov r1, #0x25
+ bl strchr
+ str r0, [sp, #0xc]
+ cmp r0, #0x0
+ bne _020E0EA4
+ mov r0, r11
+ bl strlen
+ movs r2, r0
+ add r10, r10, r2
+ beq _020E1628
+ mov r0, r8
+ mov r1, r11
+ blx r9
+ cmp r0, #0x0
+ bne _020E1628
+ add sp, sp, #0x22c
+ mvn r0, #0x0
+ ldmia sp!, {r4-r11,lr}
+ add sp, sp, #0x10
+ bx lr
+_020E0EA4:
+ subs r2, r0, r11
+ add r10, r10, r2
+ beq _020E0ED4
+ mov r0, r8
+ mov r1, r11
+ blx r9
+ cmp r0, #0x0
+ addeq sp, sp, #0x22c
+ mvneq r0, #0x0
+ ldmeqia sp!, {r4-r11,lr}
+ addeq sp, sp, #0x10
+ bxeq lr
+_020E0ED4:
+ ldr r0, [sp, #0xc]
+ add r1, sp, #0x25c
+ add r2, sp, #0x1c
+ bl parse_format_printf
+ ldrb r1, [sp, #0x21]
+ mov r11, r0
+ cmp r1, #0x61
+ bgt _020E0F40
+ bge _020E12A4
+ cmp r1, #0x47
+ bgt _020E0F34
+ subs r0, r1, #0x41
+ addpl pc, pc, r0, lsl #0x2
+ b _020E0F28
+_020E0F0C: ; 0x020E0F0C
+ b _020E12A4
+_020E0F10: ; 0x020E0F10
+ b _020E148C
+_020E0F14: ; 0x020E0F14
+ b _020E148C
+_020E0F18: ; 0x020E0F18
+ b _020E148C
+_020E0F1C: ; 0x020E0F1C
+ b _020E123C
+_020E0F20: ; 0x020E0F20
+ b _020E123C
+_020E0F24: ; 0x020E0F24
+ b _020E123C
+_020E0F28:
+ cmp r1, #0x25
+ beq _020E1478
+ b _020E148C
+_020E0F34:
+ cmp r1, #0x58
+ beq _020E1100
+ b _020E148C
+_020E0F40:
+ cmp r1, #0x75
+ bgt _020E0FA8
+ subs r0, r1, #0x64
+ addpl pc, pc, r0, lsl #0x2
+ b _020E0F9C
+_020E0F54: ; 0x020E0F54
+ b _020E0FC0
+_020E0F58: ; 0x020E0F58
+ b _020E123C
+_020E0F5C: ; 0x020E0F5C
+ b _020E123C
+_020E0F60: ; 0x020E0F60
+ b _020E123C
+_020E0F64: ; 0x020E0F64
+ b _020E148C
+_020E0F68: ; 0x020E0F68
+ b _020E0FC0
+_020E0F6C: ; 0x020E0F6C
+ b _020E148C
+_020E0F70: ; 0x020E0F70
+ b _020E148C
+_020E0F74: ; 0x020E0F74
+ b _020E148C
+_020E0F78: ; 0x020E0F78
+ b _020E148C
+_020E0F7C: ; 0x020E0F7C
+ b _020E13CC
+_020E0F80: ; 0x020E0F80
+ b _020E1100
+_020E0F84: ; 0x020E0F84
+ b _020E148C
+_020E0F88: ; 0x020E0F88
+ b _020E148C
+_020E0F8C: ; 0x020E0F8C
+ b _020E148C
+_020E0F90: ; 0x020E0F90
+ b _020E130C
+_020E0F94: ; 0x020E0F94
+ b _020E148C
+_020E0F98: ; 0x020E0F98
+ b _020E1100
+_020E0F9C:
+ cmp r1, #0x63
+ beq _020E1458
+ b _020E148C
+_020E0FA8:
+ cmp r1, #0x78
+ bgt _020E0FB8
+ beq _020E1100
+ b _020E148C
+_020E0FB8:
+ cmp r1, #0xff
+ b _020E148C
+_020E0FC0:
+ ldrb r0, [sp, #0x20]
+ cmp r0, #0x3
+ bne _020E0FE0
+ ldr r1, [sp, #0x25c]
+ add r1, r1, #0x4
+ str r1, [sp, #0x25c]
+ ldr r5, [r1, #-0x4]
+ b _020E1078
+_020E0FE0:
+ cmp r0, #0x4
+ bne _020E1008
+ ldr r1, [sp, #0x25c]
+ add r2, r1, #0x8
+ str r2, [sp, #0x25c]
+ ldr r1, [r2, #-0x8]
+ str r1, [sp, #0x10]
+ ldr r1, [r2, #-0x4]
+ str r1, [sp, #0x14]
+ b _020E1078
+_020E1008:
+ cmp r0, #0x6
+ bne _020E1030
+ ldr r1, [sp, #0x25c]
+ add r2, r1, #0x8
+ str r2, [sp, #0x25c]
+ ldr r1, [r2, #-0x8]
+ str r1, [sp, #0x10]
+ ldr r1, [r2, #-0x4]
+ str r1, [sp, #0x14]
+ b _020E1078
+_020E1030:
+ cmp r0, #0x7
+ bne _020E104C
+ ldr r1, [sp, #0x25c]
+ add r1, r1, #0x4
+ str r1, [sp, #0x25c]
+ ldr r5, [r1, #-0x4]
+ b _020E1078
+_020E104C:
+ cmp r0, #0x8
+ bne _020E1068
+ ldr r1, [sp, #0x25c]
+ add r1, r1, #0x4
+ str r1, [sp, #0x25c]
+ ldr r5, [r1, #-0x4]
+ b _020E1078
+_020E1068:
+ ldr r1, [sp, #0x25c]
+ add r1, r1, #0x4
+ str r1, [sp, #0x25c]
+ ldr r5, [r1, #-0x4]
+_020E1078:
+ cmp r0, #0x2
+ moveq r1, r5, lsl #0x10
+ moveq r5, r1, asr #0x10
+ cmp r0, #0x1
+ moveq r1, r5, lsl #0x18
+ moveq r5, r1, asr #0x18
+ cmp r0, #0x4
+ cmpne r0, #0x6
+ add r0, sp, #0x1c
+ bne _020E10CC
+ sub r4, sp, #0x4
+ ldmia r0, {r0-r3}
+ stmia r4, {r0-r3}
+ ldr r3, [r4, #0x0]
+ ldr r0, [sp, #0x10]
+ ldr r1, [sp, #0x14]
+ add r2, sp, #0x22c
+ bl longlong2str
+ movs r7, r0
+ beq _020E148C
+ b _020E10F0
+_020E10CC:
+ sub r4, sp, #0x8
+ ldmia r0, {r0-r3}
+ stmia r4, {r0-r3}
+ add r1, sp, #0x22c
+ mov r0, r5
+ ldmia r4, {r2-r3}
+ bl long2str
+ movs r7, r0
+ beq _020E148C
+_020E10F0:
+ add r0, sp, #0x200
+ add r0, r0, #0x2b
+ sub r6, r0, r7
+ b _020E14D8
+_020E1100:
+ ldrb r0, [sp, #0x20]
+ cmp r0, #0x3
+ bne _020E1120
+ ldr r1, [sp, #0x25c]
+ add r1, r1, #0x4
+ str r1, [sp, #0x25c]
+ ldr r5, [r1, #-0x4]
+ b _020E11B8
+_020E1120:
+ cmp r0, #0x4
+ bne _020E1148
+ ldr r1, [sp, #0x25c]
+ add r2, r1, #0x8
+ str r2, [sp, #0x25c]
+ ldr r1, [r2, #-0x8]
+ str r1, [sp, #0x10]
+ ldr r1, [r2, #-0x4]
+ str r1, [sp, #0x14]
+ b _020E11B8
+_020E1148:
+ cmp r0, #0x6
+ bne _020E1170
+ ldr r1, [sp, #0x25c]
+ add r2, r1, #0x8
+ str r2, [sp, #0x25c]
+ ldr r1, [r2, #-0x8]
+ str r1, [sp, #0x10]
+ ldr r1, [r2, #-0x4]
+ str r1, [sp, #0x14]
+ b _020E11B8
+_020E1170:
+ cmp r0, #0x7
+ bne _020E118C
+ ldr r1, [sp, #0x25c]
+ add r1, r1, #0x4
+ str r1, [sp, #0x25c]
+ ldr r5, [r1, #-0x4]
+ b _020E11B8
+_020E118C:
+ cmp r0, #0x8
+ bne _020E11A8
+ ldr r1, [sp, #0x25c]
+ add r1, r1, #0x4
+ str r1, [sp, #0x25c]
+ ldr r5, [r1, #-0x4]
+ b _020E11B8
+_020E11A8:
+ ldr r1, [sp, #0x25c]
+ add r1, r1, #0x4
+ str r1, [sp, #0x25c]
+ ldr r5, [r1, #-0x4]
+_020E11B8:
+ cmp r0, #0x2
+ moveq r1, r5, lsl #0x10
+ moveq r5, r1, lsr #0x10
+ cmp r0, #0x1
+ andeq r5, r5, #0xff
+ cmp r0, #0x4
+ cmpne r0, #0x6
+ add r0, sp, #0x1c
+ bne _020E1208
+ sub r4, sp, #0x4
+ ldmia r0, {r0-r3}
+ stmia r4, {r0-r3}
+ ldr r3, [r4, #0x0]
+ ldr r0, [sp, #0x10]
+ ldr r1, [sp, #0x14]
+ add r2, sp, #0x22c
+ bl longlong2str
+ movs r7, r0
+ beq _020E148C
+ b _020E122C
+_020E1208:
+ sub r4, sp, #0x8
+ ldmia r0, {r0-r3}
+ stmia r4, {r0-r3}
+ add r1, sp, #0x22c
+ mov r0, r5
+ ldmia r4, {r2-r3}
+ bl long2str
+ movs r7, r0
+ beq _020E148C
+_020E122C:
+ add r0, sp, #0x200
+ add r0, r0, #0x2b
+ sub r6, r0, r7
+ b _020E14D8
+_020E123C:
+ ldrb r0, [sp, #0x20]
+ cmp r0, #0x9
+ ldrne r0, [sp, #0x25c]
+ addne r0, r0, #0x8
+ strne r0, [sp, #0x25c]
+ bne _020E1260
+ ldr r0, [sp, #0x25c]
+ add r0, r0, #0x8
+ str r0, [sp, #0x25c]
+_020E1260:
+ ldr r7, [r0, #-0x8]
+ ldr r6, [r0, #-0x4]
+ add r0, sp, #0x1c
+ sub r4, sp, #0x4
+ ldmia r0, {r0-r3}
+ stmia r4, {r0-r3}
+ ldr r3, [r4, #0x0]
+ mov r0, r7
+ mov r1, r6
+ add r2, sp, #0x22c
+ bl float2str
+ movs r7, r0
+ beq _020E148C
+ add r0, sp, #0x200
+ add r0, r0, #0x2b
+ sub r6, r0, r7
+ b _020E14D8
+_020E12A4:
+ ldrb r0, [sp, #0x20]
+ cmp r0, #0x9
+ ldrne r0, [sp, #0x25c]
+ addne r0, r0, #0x8
+ strne r0, [sp, #0x25c]
+ bne _020E12C8
+ ldr r0, [sp, #0x25c]
+ add r0, r0, #0x8
+ str r0, [sp, #0x25c]
+_020E12C8:
+ ldr r7, [r0, #-0x8]
+ ldr r6, [r0, #-0x4]
+ add r0, sp, #0x1c
+ sub r4, sp, #0x4
+ ldmia r0, {r0-r3}
+ stmia r4, {r0-r3}
+ ldr r3, [r4, #0x0]
+ mov r0, r7
+ mov r1, r6
+ add r2, sp, #0x22c
+ bl double2hex
+ movs r7, r0
+ beq _020E148C
+ add r0, sp, #0x200
+ add r0, r0, #0x2b
+ sub r6, r0, r7
+ b _020E14D8
+_020E130C:
+ ldrb r0, [sp, #0x20]
+ cmp r0, #0x5
+ bne _020E134C
+ ldr r0, [sp, #0x25c]
+ mov r2, #0x200
+ add r0, r0, #0x4
+ str r0, [sp, #0x25c]
+ ldr r1, [r0, #-0x4]
+ add r0, sp, #0x2c
+ cmp r1, #0x0
+ ldreq r1, _020E163C ; =0x02106DD8
+ bl wcstombs
+_020E133C: ; 0x020E133C
+ cmp r0, #0x0
+ blt _020E148C
+ add r7, sp, #0x2c
+ b _020E135C
+_020E134C:
+ ldr r0, [sp, #0x25c]
+ add r0, r0, #0x4
+ str r0, [sp, #0x25c]
+ ldr r7, [r0, #-0x4]
+_020E135C:
+ ldrb r0, [sp, #0x1f]
+ cmp r7, #0x0
+ ldreq r7, _020E1640 ; =0x02106DDC
+ cmp r0, #0x0
+ beq _020E1390
+ ldrb r0, [sp, #0x1e]
+ ldrb r6, [r7], #0x1
+ cmp r0, #0x0
+ beq _020E14D8
+ ldr r0, [sp, #0x28]
+ cmp r6, r0
+ movgt r6, r0
+ b _020E14D8
+_020E1390:
+ ldrb r0, [sp, #0x1e]
+ cmp r0, #0x0
+ beq _020E13BC
+ ldr r6, [sp, #0x28]
+ mov r0, r7
+ mov r2, r6
+ mov r1, #0x0
+ bl memchr
+_020E13B0: ; 0x020E13B0
+ cmp r0, #0x0
+ subne r6, r0, r7
+ b _020E14D8
+_020E13BC:
+ mov r0, r7
+ bl strlen
+ mov r6, r0
+ b _020E14D8
+_020E13CC:
+ ldr r1, [sp, #0x25c]
+ ldrb r0, [sp, #0x20]
+ add r1, r1, #0x4
+ str r1, [sp, #0x25c]
+ ldr r1, [r1, #-0x4]
+ cmp r0, #0x8
+ addls pc, pc, r0, lsl #0x2
+ b _020E161C
+_020E13EC:
+ b _020E1410
+_020E13F0:
+ b _020E161C
+_020E13F4:
+ b _020E1418
+_020E13F8:
+ b _020E1420
+_020E13FC:
+ b _020E1448
+_020E1400:
+ b _020E161C
+_020E1404:
+ b _020E1428
+_020E1408:
+ b _020E1438
+_020E140C:
+ b _020E1440
+_020E1410:
+ str r10, [r1, #0x0]
+ b _020E161C
+_020E1418:
+ strh r10, [r1, #0x0]
+ b _020E161C
+_020E1420:
+ str r10, [r1, #0x0]
+ b _020E161C
+_020E1428:
+ str r10, [r1, #0x0]
+ mov r0, r10, asr #0x1f
+ str r0, [r1, #0x4]
+ b _020E161C
+_020E1438:
+ str r10, [r1, #0x0]
+ b _020E161C
+_020E1440:
+ str r10, [r1, #0x0]
+ b _020E161C
+_020E1448:
+ str r10, [r1, #0x0]
+ mov r0, r10, asr #0x1f
+ str r0, [r1, #0x4]
+ b _020E161C
+_020E1458:
+ ldr r0, [sp, #0x25c]
+ add r7, sp, #0x2c
+ add r0, r0, #0x4
+ str r0, [sp, #0x25c]
+ ldr r0, [r0, #-0x4]
+ mov r6, #0x1
+ strb r0, [sp, #0x2c]
+ b _020E14D8
+_020E1478:
+ mov r0, #0x25
+ strb r0, [sp, #0x2c]
+ add r7, sp, #0x2c
+ mov r6, #0x1
+ b _020E14D8
+_020E148C:
+ ldr r0, [sp, #0xc]
+ bl strlen
+ movs r4, r0
+ beq _020E14C4
+ ldr r1, [sp, #0xc]
+ mov r0, r8
+ mov r2, r4
+ blx r9
+ cmp r0, #0x0
+ addeq sp, sp, #0x22c
+ mvneq r0, #0x0
+ ldmeqia sp!, {r4-r11,lr}
+ addeq sp, sp, #0x10
+ bxeq lr
+_020E14C4:
+ add sp, sp, #0x22c
+ add r0, r10, r4
+ ldmia sp!, {r4-r11,lr}
+ add sp, sp, #0x10
+ bx lr
+_020E14D8:
+ ldrb r0, [sp, #0x1c]
+ mov r4, r6
+ cmp r0, #0x0
+ beq _020E158C
+ cmp r0, #0x2
+ moveq r0, #0x30
+ movne r0, #0x20
+ strb r0, [sp, #0x19]
+ ldrsb r0, [r7, #0x0]
+ cmp r0, #0x2b
+ cmpne r0, #0x2d
+ cmpne r0, #0x20
+ bne _020E1548
+ ldrsb r0, [sp, #0x19]
+ cmp r0, #0x30
+ bne _020E1548
+ mov r0, r8
+ mov r1, r7
+ mov r2, #0x1
+ blx r9
+ cmp r0, #0x0
+ addeq sp, sp, #0x22c
+ mvneq r0, #0x0
+ ldmeqia sp!, {r4-r11,lr}
+ addeq sp, sp, #0x10
+ bxeq lr
+ add r7, r7, #0x1
+ sub r6, r6, #0x1
+_020E1548:
+ ldr r0, [sp, #0x24]
+ cmp r4, r0
+ bge _020E158C
+_020E1554:
+ mov r0, r8
+ add r1, sp, #0x19
+ mov r2, #0x1
+ blx r9
+ cmp r0, #0x0
+ addeq sp, sp, #0x22c
+ mvneq r0, #0x0
+ ldmeqia sp!, {r4-r11,lr}
+ addeq sp, sp, #0x10
+ bxeq lr
+ ldr r0, [sp, #0x24]
+ add r4, r4, #0x1
+ cmp r4, r0
+ blt _020E1554
+_020E158C:
+ cmp r6, #0x0
+ beq _020E15BC
+ mov r0, r8
+ mov r1, r7
+ mov r2, r6
+ blx r9
+ cmp r0, #0x0
+ addeq sp, sp, #0x22c
+ mvneq r0, #0x0
+ ldmeqia sp!, {r4-r11,lr}
+ addeq sp, sp, #0x10
+ bxeq lr
+_020E15BC:
+ ldrb r0, [sp, #0x1c]
+ cmp r0, #0x0
+ bne _020E1618
+ ldr r0, [sp, #0x24]
+ cmp r4, r0
+ bge _020E1618
+ mov r6, #0x20
+ add r7, sp, #0x18
+_020E15DC:
+ mov r0, r8
+ mov r1, r7
+ mov r2, #0x1
+ strb r6, [sp, #0x18]
+ blx r9
+ cmp r0, #0x0
+ addeq sp, sp, #0x22c
+ mvneq r0, #0x0
+ ldmeqia sp!, {r4-r11,lr}
+ addeq sp, sp, #0x10
+ bxeq lr
+ ldr r0, [sp, #0x24]
+ add r4, r4, #0x1
+ cmp r4, r0
+ blt _020E15DC
+_020E1618:
+ add r10, r10, r4
+_020E161C:
+ ldrsb r0, [r11, #0x0]
+ cmp r0, #0x0
+ bne _020E0E50
+_020E1628:
+ mov r0, r10
+ add sp, sp, #0x22c
+ ldmia sp!, {r4-r11,lr}
+ add sp, sp, #0x10
+ bx lr
+ .balign 4
+_020E163C: .word 0x02106DD8
+_020E1640: .word 0x02106DDC
+
+ arm_func_start __FileWrite
+__FileWrite: ; 0x020E1644
+ stmdb sp!, {r3-r5,lr}
+ mov r5, r0
+ mov r0, r1
+ mov r3, r5
+ mov r1, #0x1
+ mov r4, r2
+ bl __fwrite
+_020E1660: ; 0x020E1660
+ cmp r4, r0
+ movne r5, #0x0
+ mov r0, r5
+ ldmia sp!, {r3-r5,pc}
+
+ arm_func_start __StringWrite
+__StringWrite: ; 0x020E1670
+ stmdb sp!, {r3-r5,lr}
+ mov r4, r0
+ ldr r3, [r4, #0x8]
+ mov r5, r2
+ ldr r2, [r4, #0x4]
+ add r0, r3, r5
+ cmp r0, r2
+ ldr r0, [r4, #0x0]
+ subhi r5, r2, r3
+ mov r2, r5
+ add r0, r0, r3
+ bl memcpy
+ ldr r1, [r4, #0x8]
+ mov r0, #0x1
+ add r1, r1, r5
+ str r1, [r4, #0x8]
+ ldmia sp!, {r3-r5,pc}
+
+ arm_func_start printf
+printf: ; 0x020E16B4
+ stmdb sp!, {r0-r3}
+ stmdb sp!, {r4,lr}
+ ldr r0, _020E17B4 ; =0x02106AA4
+ mvn r1, #0x0
+ bl fwide
+_020E16C8: ; 0x020E16C8
+ cmp r0, #0x0
+ mvnge r0, #0x0
+ ldmgeia sp!, {r4,lr}
+ addge sp, sp, #0x10
+ bxge lr
+ ldr r0, _020E17B8 ; =0x021D7118
+ bl OS_TryLockMutex
+_020E16E4: ; 0x020E16E4
+ cmp r0, #0x0
+ bne _020E1710
+ ldr r0, _020E17BC ; =0x021D3498
+ ldr r1, _020E17C0 ; =0x021D7088
+ ldr r2, [r0, #0x4]
+ ldr r0, _020E17C4 ; =0x021D70AC
+ ldr r3, [r2, #0x6c]
+ mov r2, #0x1
+ str r3, [r1, #0xc]
+ str r2, [r0, #0xc]
+ b _020E1768
+_020E1710:
+ ldr r0, _020E17BC ; =0x021D3498
+ ldr r1, _020E17C0 ; =0x021D7088
+ ldr r0, [r0, #0x4]
+ ldr r1, [r1, #0xc]
+ ldr r0, [r0, #0x6c]
+ cmp r1, r0
+ bne _020E1740
+ ldr r0, _020E17C4 ; =0x021D70AC
+ ldr r1, [r0, #0xc]
+ add r1, r1, #0x1
+ str r1, [r0, #0xc]
+ b _020E1768
+_020E1740:
+ ldr r0, _020E17B8 ; =0x021D7118
+ bl OS_LockMutex
+ ldr r0, _020E17BC ; =0x021D3498
+ ldr r1, _020E17C0 ; =0x021D7088
+ ldr r2, [r0, #0x4]
+ ldr r0, _020E17C4 ; =0x021D70AC
+ ldr r3, [r2, #0x6c]
+ mov r2, #0x1
+ str r3, [r1, #0xc]
+ str r2, [r0, #0xc]
+_020E1768:
+ add r0, sp, #0x8
+ bic r3, r0, #0x3
+ ldr r2, [sp, #0x8]
+ ldr r0, _020E17C8 ; =__FileWrite
+ ldr r1, _020E17B4 ; =0x02106AA4
+ add r3, r3, #0x4
+ bl __pformatter
+ ldr r1, _020E17C4 ; =0x021D70AC
+ mov r4, r0
+ ldr r0, [r1, #0xc]
+ subs r0, r0, #0x1
+ str r0, [r1, #0xc]
+ bne _020E17A4
+ ldr r0, _020E17B8 ; =0x021D7118
+ bl OS_UnlockMutex
+_020E17A4:
+ mov r0, r4
+ ldmia sp!, {r4,lr}
+ add sp, sp, #0x10
+ bx lr
+ .balign 4
+_020E17B4: .word 0x02106AA4
+_020E17B8: .word 0x021D7118
+_020E17BC: .word 0x021D3498
+_020E17C0: .word 0x021D7088
+_020E17C4: .word 0x021D70AC
+_020E17C8: .word __FileWrite
+
+ arm_func_start vsnprintf
+vsnprintf: ; 0x020E17CC
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0xc
+ mov r5, r0
+ mov r4, r1
+ mov r12, #0x0
+ ldr r0, _020E1830 ; =__StringWrite
+ add r1, sp, #0x0
+ str r5, [sp, #0x0]
+ str r4, [sp, #0x4]
+ str r12, [sp, #0x8]
+ bl __pformatter
+_020E17F8: ; 0x020E17F8
+ cmp r5, #0x0
+ addeq sp, sp, #0xc
+ ldmeqia sp!, {r4-r5,pc}
+_020E1804: ; 0x020E1804
+ cmp r0, r4
+ movcc r1, #0x0
+ addcc sp, sp, #0xc
+ strccb r1, [r5, r0]
+ ldmccia sp!, {r4-r5,pc}
+_020E1818: ; 0x020E1818
+ cmp r4, #0x0
+ addne r1, r5, r4
+ movne r2, #0x0
+ strneb r2, [r1, #-0x1]
+ add sp, sp, #0xc
+ ldmia sp!, {r4-r5,pc}
+ .balign 4
+_020E1830: .word __StringWrite
+
+ arm_func_start snprintf
+snprintf: ; 0x020E1834
+ stmdb sp!, {r0-r3}
+ stmdb sp!, {r3,lr}
+ add r3, sp, #0x10
+ bic r3, r3, #0x3
+ ldr r2, [sp, #0x10]
+ add r3, r3, #0x4
+ bl vsnprintf
+ ldmia sp!, {r3,lr}
+ add sp, sp, #0x10
+ bx lr
+
+ arm_func_start sprintf
+sprintf: ; 0x020E185C
+ stmdb sp!, {r0-r3}
+ stmdb sp!, {r3,lr}
+ add r1, sp, #0xc
+ bic r1, r1, #0x3
+ add r3, r1, #0x4
+ ldr r2, [sp, #0xc]
+ mvn r1, #0x0
+ bl vsnprintf
+ ldmia sp!, {r3,lr}
+ add sp, sp, #0x10
+ bx lr
+
+ arm_func_start qsort
+qsort: ; 0x020E1888
+ stmdb sp!, {r3-r11,lr}
+ sub sp, sp, #0x10
+ mov r9, r1
+ cmp r9, #0x2
+ mov r10, r0
+ mov r8, r2
+ mov r7, r3
+ addcc sp, sp, #0x10
+ ldmccia sp!, {r3-r11,pc}
+_020E18AC: ; 0x020E18AC
+ mov r0, r9, lsr #0x1
+ add r11, r0, #0x1
+ sub r0, r11, #0x1
+ mla r0, r8, r0, r10
+ sub r2, r9, #0x1
+ str r0, [sp, #0xc]
+ mla r0, r8, r2, r10
+ str r0, [sp, #0x8]
+ mul r0, r11, r8
+ mvn r1, #0x0
+ str r0, [sp, #0x4]
+ mul r0, r8, r1
+ str r0, [sp, #0x0]
+_020E18E0:
+ cmp r11, #0x1
+ bls _020E1908
+ ldr r0, [sp, #0x4]
+ sub r11, r11, #0x1
+ sub r0, r0, r8
+ str r0, [sp, #0x4]
+ ldr r0, [sp, #0xc]
+ sub r0, r0, r8
+ str r0, [sp, #0xc]
+ b _020E1950
+_020E1908:
+ mov r2, r8
+ ldr r4, [sp, #0x8]
+ ldr r3, [sp, #0xc]
+ cmp r8, #0x0
+ beq _020E1934
+_020E191C:
+ ldrsb r0, [r4, #0x0]
+ ldrsb r1, [r3, #0x0]
+ subs r2, r2, #0x1
+ strb r0, [r3], #0x1
+ strb r1, [r4], #0x1
+ bne _020E191C
+_020E1934:
+ sub r9, r9, #0x1
+ cmp r9, #0x1
+ addeq sp, sp, #0x10
+ ldmeqia sp!, {r3-r11,pc}
+_020E1944: ; 0x020E1944
+ ldr r0, [sp, #0x8]
+ sub r0, r0, r8
+ str r0, [sp, #0x8]
+_020E1950:
+ ldr r1, [sp, #0x4]
+ ldr r0, [sp, #0x0]
+ mov r4, r11
+ add r0, r1, r0
+ cmp r9, r11, lsl #0x1
+ add r5, r10, r0
+ blo _020E18E0
+_020E196C:
+ mov r4, r4, lsl #0x1
+ sub r0, r4, #0x1
+ mov r6, r5
+ mla r5, r8, r0, r10
+ cmp r9, r4
+ bls _020E199C
+ mov r0, r5
+ add r1, r5, r8
+ blx r7
+ cmp r0, #0x0
+ addlt r4, r4, #0x1
+ addlt r5, r5, r8
+_020E199C:
+ mov r0, r6
+ mov r1, r5
+ blx r7
+ cmp r0, #0x0
+ bge _020E18E0
+ mov r2, r8
+ mov r3, r5
+ cmp r8, #0x0
+ beq _020E19D8
+_020E19C0:
+ ldrsb r1, [r6, #0x0]
+ ldrsb r0, [r3, #0x0]
+ subs r2, r2, #0x1
+ strb r0, [r6], #0x1
+ strb r1, [r3], #0x1
+ bne _020E19C0
+_020E19D8:
+ cmp r9, r4, lsl #0x1
+ bhs _020E196C
+ b _020E18E0
+_020E19E4: ; 0x020E19E4
+ add sp, sp, #0x10
+ ldmia sp!, {r3-r11,pc}
+
+ arm_func_start rand
+rand: ; 0x020E19EC
+ ldr r2, _020E1A14 ; =0x02106DE0
+ ldr r0, _020E1A18 ; =0x41C64E6D
+ ldr r3, [r2, #0x0]
+ ldr r1, _020E1A1C ; =0x00007FFF
+ mul r0, r3, r0
+ add r0, r0, #0x39
+ add r0, r0, #0x3000
+ str r0, [r2, #0x0]
+ and r0, r1, r0, lsr #0x10
+ bx lr
+ .balign 4
+_020E1A14: .word 0x02106DE0
+_020E1A18: .word 0x41C64E6D
+_020E1A1C: .word 0x00007FFF
+
+ arm_func_start srand
+srand: ; 0x020E1A20
+ ldr r1, _020E1A2C ; =0x02106DE0
+ str r0, [r1, #0x0]
+ bx lr
+ .balign 4
+_020E1A2C: .word 0x02106DE0
+
+ arm_func_start parse_format_scanf
+parse_format_scanf: ; 0x020E1A30
+ stmdb sp!, {r3-r7,lr}
+ sub sp, sp, #0x28
+ ldr r6, _020E1F20 ; =0x0210440C
+ add r5, sp, #0x0
+ mov r7, r0
+ mov lr, r1
+ mov r4, r5
+ ldmia r6!, {r0-r3}
+ stmia r5!, {r0-r3}
+ ldmia r6!, {r0-r3}
+ stmia r5!, {r0-r3}
+ ldmia r6, {r0-r1}
+ stmia r5, {r0-r1}
+ ldrsb r0, [r7, #0x1]
+ add r12, r7, #0x1
+ cmp r0, #0x25
+ bne _020E1A9C
+ strb r0, [sp, #0x3]
+ ldmia r4!, {r0-r3}
+ stmia lr!, {r0-r3}
+ ldmia r4!, {r0-r3}
+ stmia lr!, {r0-r3}
+ ldmia r4, {r0-r1}
+ stmia lr, {r0-r1}
+ add sp, sp, #0x28
+ add r0, r12, #0x1
+ ldmia sp!, {r3-r7,pc}
+_020E1A9C:
+ cmp r0, #0x2a
+ moveq r0, #0x1
+ streqb r0, [sp, #0x0]
+ ldreqsb r0, [r12, #0x1]!
+ cmp r0, #0x0
+ blt _020E1ABC
+ cmp r0, #0x80
+ blt _020E1AC4
+_020E1ABC:
+ mov r1, #0x0
+ b _020E1AD4
+_020E1AC4:
+ ldr r1, _020E1F24 ; =0x0210430C
+ mov r2, r0, lsl #0x1
+ ldrh r1, [r1, r2]
+ and r1, r1, #0x8
+_020E1AD4:
+ cmp r1, #0x0
+ beq _020E1B74
+ mov r1, #0x0
+ ldr r3, _020E1F24 ; =0x0210430C
+ str r1, [sp, #0x4]
+ mov r4, r1
+ mov r1, #0xa
+_020E1AF0:
+ ldr r2, [sp, #0x4]
+ sub r0, r0, #0x30
+ mla r0, r2, r1, r0
+ str r0, [sp, #0x4]
+ ldrsb r0, [r12, #0x1]!
+ cmp r0, #0x0
+ blt _020E1B14
+ cmp r0, #0x80
+ blt _020E1B1C
+_020E1B14:
+ mov r2, r4
+ b _020E1B28
+_020E1B1C:
+ mov r2, r0, lsl #0x1
+ ldrh r2, [r3, r2]
+ and r2, r2, #0x8
+_020E1B28:
+ cmp r2, #0x0
+ bne _020E1AF0
+ ldr r1, [sp, #0x4]
+ cmp r1, #0x0
+ bne _020E1B6C
+ mov r0, #0xff
+ add r4, sp, #0x0
+ strb r0, [sp, #0x3]
+ ldmia r4!, {r0-r3}
+ stmia lr!, {r0-r3}
+ ldmia r4!, {r0-r3}
+ stmia lr!, {r0-r3}
+ ldmia r4, {r0-r1}
+ stmia lr, {r0-r1}
+ add sp, sp, #0x28
+ add r0, r12, #0x1
+ ldmia sp!, {r3-r7,pc}
+_020E1B6C:
+ mov r1, #0x1
+ strb r1, [sp, #0x1]
+_020E1B74:
+ cmp r0, #0x6c
+ mov r1, #0x1
+ bgt _020E1BAC
+ cmp r0, #0x68
+ blt _020E1BA0
+ beq _020E1BC8
+ cmp r0, #0x6a
+ beq _020E1C14
+ cmp r0, #0x6c
+ beq _020E1BE4
+ b _020E1C38
+_020E1BA0:
+ cmp r0, #0x4c
+ beq _020E1C08
+ b _020E1C38
+_020E1BAC:
+ cmp r0, #0x74
+ bgt _020E1BBC
+ beq _020E1C2C
+ b _020E1C38
+_020E1BBC:
+ cmp r0, #0x7a
+ beq _020E1C20
+ b _020E1C38
+_020E1BC8:
+ mov r2, #0x2
+ strb r2, [sp, #0x2]
+ ldrsb r2, [r12, #0x1]
+ cmp r2, #0x68
+ streqb r1, [sp, #0x2]
+ ldreqsb r0, [r12, #0x1]!
+ b _020E1C3C
+_020E1BE4:
+ mov r2, #0x3
+ strb r2, [sp, #0x2]
+ ldrsb r2, [r12, #0x1]
+ cmp r2, #0x6c
+ bne _020E1C3C
+ mov r0, #0x7
+ strb r0, [sp, #0x2]
+ ldrsb r0, [r12, #0x1]!
+ b _020E1C3C
+_020E1C08:
+ mov r2, #0x9
+ strb r2, [sp, #0x2]
+ b _020E1C3C
+_020E1C14:
+ mov r2, #0x4
+ strb r2, [sp, #0x2]
+ b _020E1C3C
+_020E1C20:
+ mov r2, #0x5
+ strb r2, [sp, #0x2]
+ b _020E1C3C
+_020E1C2C:
+ mov r2, #0x6
+ strb r2, [sp, #0x2]
+ b _020E1C3C
+_020E1C38:
+ mov r1, #0x0
+_020E1C3C:
+ cmp r1, #0x0
+ ldrnesb r0, [r12, #0x1]!
+ strb r0, [sp, #0x3]
+ cmp r0, #0x5b
+ bgt _020E1C90
+ bge _020E1DE0
+ cmp r0, #0x47
+ bgt _020E1C84
+ subs r1, r0, #0x41
+ addpl pc, pc, r1, lsl #0x2
+ b _020E1EF0
+_020E1C68: ; 0x020E1C68
+ b _020E1D1C
+_020E1C6C: ; 0x020E1C6C
+ b _020E1EF0
+_020E1C70: ; 0x020E1C70
+ b _020E1EF0
+_020E1C74: ; 0x020E1C74
+ b _020E1EF0
+_020E1C78: ; 0x020E1C78
+ b _020E1D1C
+_020E1C7C: ; 0x020E1C7C
+ b _020E1D1C
+_020E1C80: ; 0x020E1C80
+ b _020E1D1C
+_020E1C84:
+ cmp r0, #0x58
+ beq _020E1D08
+ b _020E1EF0
+_020E1C90:
+ cmp r0, #0x61
+ bgt _020E1CA0
+ beq _020E1D1C
+ b _020E1EF0
+_020E1CA0:
+ sub r0, r0, #0x63
+ cmp r0, #0x15
+ addls pc, pc, r0, lsl #0x2
+ b _020E1EF0
+_020E1CB0:
+ b _020E1D6C
+_020E1CB4:
+ b _020E1D08
+_020E1CB8:
+ b _020E1D1C
+_020E1CBC:
+ b _020E1D1C
+_020E1CC0:
+ b _020E1D1C
+_020E1CC4:
+ b _020E1EF0
+_020E1CC8:
+ b _020E1D08
+_020E1CCC:
+ b _020E1EF0
+_020E1CD0:
+ b _020E1EF0
+_020E1CD4:
+ b _020E1EF0
+_020E1CD8:
+ b _020E1EF0
+_020E1CDC:
+ b _020E1EF8
+_020E1CE0:
+ b _020E1D08
+_020E1CE4:
+ b _020E1D58
+_020E1CE8:
+ b _020E1EF0
+_020E1CEC:
+ b _020E1EF0
+_020E1CF0:
+ b _020E1D90
+_020E1CF4:
+ b _020E1EF0
+_020E1CF8:
+ b _020E1D08
+_020E1CFC:
+ b _020E1EF0
+_020E1D00:
+ b _020E1EF0
+_020E1D04:
+ b _020E1D08
+_020E1D08:
+ ldrb r0, [sp, #0x2]
+ cmp r0, #0x9
+ moveq r0, #0xff
+ streqb r0, [sp, #0x3]
+ b _020E1EF8
+_020E1D1C:
+ ldrb r1, [sp, #0x2]
+ cmp r1, #0x1
+ cmpne r1, #0x2
+ beq _020E1D3C
+ add r0, r1, #0xfc
+ and r0, r0, #0xff
+ cmp r0, #0x3
+ bhi _020E1D48
+_020E1D3C:
+ mov r0, #0xff
+ strb r0, [sp, #0x3]
+ b _020E1EF8
+_020E1D48:
+ cmp r1, #0x3
+ moveq r0, #0x8
+ streqb r0, [sp, #0x2]
+ b _020E1EF8
+_020E1D58:
+ mov r1, #0x3
+ mov r0, #0x78
+ strb r1, [sp, #0x2]
+ strb r0, [sp, #0x3]
+ b _020E1EF8
+_020E1D6C:
+ ldrb r0, [sp, #0x2]
+ cmp r0, #0x3
+ moveq r0, #0xa
+ streqb r0, [sp, #0x2]
+ beq _020E1EF8
+ cmp r0, #0x0
+ movne r0, #0xff
+ strneb r0, [sp, #0x3]
+ b _020E1EF8
+_020E1D90:
+ ldrb r0, [sp, #0x2]
+ cmp r0, #0x3
+ moveq r0, #0xa
+ streqb r0, [sp, #0x2]
+ beq _020E1DB0
+ cmp r0, #0x0
+ movne r0, #0xff
+ strneb r0, [sp, #0x3]
+_020E1DB0:
+ add r2, sp, #0x8
+ mov r1, #0x20
+ mov r0, #0xff
+_020E1DBC:
+ sub r1, r1, #0x1
+ cmp r1, #0x0
+ strb r0, [r2], #0x1
+ bgt _020E1DBC
+ mov r1, #0xc1
+ mov r0, #0xfe
+ strb r1, [sp, #0x9]
+ strb r0, [sp, #0xc]
+ b _020E1EF8
+_020E1DE0:
+ ldrb r0, [sp, #0x2]
+ cmp r0, #0x3
+ moveq r0, #0xa
+ streqb r0, [sp, #0x2]
+ beq _020E1E00
+ cmp r0, #0x0
+ movne r0, #0xff
+ strneb r0, [sp, #0x3]
+_020E1E00:
+ ldrsb r2, [r12, #0x1]!
+ mov r1, #0x0
+ cmp r2, #0x5e
+ ldreqsb r2, [r12, #0x1]!
+ moveq r1, #0x1
+ cmp r2, #0x5d
+ bne _020E1EA8
+ ldrb r0, [sp, #0x13]
+ orr r0, r0, #0x20
+ strb r0, [sp, #0x13]
+ ldrsb r2, [r12, #0x1]!
+ b _020E1EA8
+_020E1E30:
+ add r0, sp, #0x0
+ and r3, r2, #0xff
+ add r6, r0, r3, asr #0x3
+ ldrb r5, [r6, #0x8]
+ and r3, r2, #0x7
+ mov r4, #0x1
+ orr r3, r5, r4, lsl r3
+ strb r3, [r6, #0x8]
+ ldrsb r3, [r12, #0x1]
+ cmp r3, #0x2d
+ bne _020E1EA4
+ ldrsb r7, [r12, #0x2]
+ cmp r7, #0x0
+ cmpne r7, #0x5d
+ beq _020E1EA4
+ add r2, r2, #0x1
+ cmp r2, r7
+ bgt _020E1E9C
+_020E1E78:
+ and r3, r2, #0xff
+ add r6, r0, r3, asr #0x3
+ ldrb r5, [r6, #0x8]
+ and r3, r2, #0x7
+ add r2, r2, #0x1
+ orr r3, r5, r4, lsl r3
+ strb r3, [r6, #0x8]
+ cmp r2, r7
+ ble _020E1E78
+_020E1E9C:
+ ldrsb r2, [r12, #0x3]!
+ b _020E1EA8
+_020E1EA4:
+ ldrsb r2, [r12, #0x1]!
+_020E1EA8:
+ cmp r2, #0x0
+ cmpne r2, #0x5d
+ bne _020E1E30
+ cmp r2, #0x0
+ moveq r0, #0xff
+ streqb r0, [sp, #0x3]
+ beq _020E1EF8
+ cmp r1, #0x0
+ beq _020E1EF8
+ add r2, sp, #0x8
+ mov r1, #0x20
+_020E1ED4:
+ ldrb r0, [r2, #0x0]
+ sub r1, r1, #0x1
+ cmp r1, #0x0
+ mvn r0, r0
+ strb r0, [r2], #0x1
+ bgt _020E1ED4
+ b _020E1EF8
+_020E1EF0:
+ mov r0, #0xff
+ strb r0, [sp, #0x3]
+_020E1EF8:
+ add r4, sp, #0x0
+ ldmia r4!, {r0-r3}
+ stmia lr!, {r0-r3}
+ ldmia r4!, {r0-r3}
+ stmia lr!, {r0-r3}
+ ldmia r4, {r0-r1}
+ stmia lr, {r0-r1}
+ add r0, r12, #0x1
+ add sp, sp, #0x28
+ ldmia sp!, {r3-r7,pc}
+ .balign 4
+_020E1F20: .word 0x0210440C
+_020E1F24: .word 0x0210430C
+
+ arm_func_start __sformatter
+__sformatter: ; 0x020E1F28
+ stmdb sp!, {r3-r11,lr}
+ sub sp, sp, #0x88
+ ldrsb r5, [r2, #0x0]
+ str r2, [sp, #0xc]
+ mov r2, #0x0
+ mov r9, r0
+ mov r0, r2
+ str r2, [sp, #0x20]
+ mov r8, r1
+ str r3, [sp, #0x10]
+ str r0, [sp, #0x24]
+ cmp r5, #0x0
+ ldr r10, [sp, #0xb0]
+ str r0, [sp, #0x30]
+ mov r4, r2
+ str r0, [sp, #0x44]
+ str r0, [sp, #0x40]
+ beq _020E2C3C
+_020E1F70:
+ cmp r5, #0x0
+ mov r0, #0x1
+ blt _020E1F84
+ cmp r5, #0x80
+ movlt r0, #0x0
+_020E1F84:
+ cmp r0, #0x0
+ movne r0, #0x0
+ bne _020E1FA0
+ mov r1, r5, lsl #0x1
+ ldr r0, _020E2C74 ; =0x0210430C
+ ldrh r0, [r0, r1]
+ and r0, r0, #0x100
+_020E1FA0:
+ cmp r0, #0x0
+ beq _020E2060
+ mov r2, #0x0
+ ldr r1, _020E2C74 ; =0x0210430C
+ mov r12, r2
+ mov r3, #0x1
+_020E1FB8:
+ ldr r0, [sp, #0xc]
+ ldrsb r5, [r0, #0x1]!
+ str r0, [sp, #0xc]
+ mov r0, r3
+ cmp r5, #0x0
+ blt _020E1FD8
+ cmp r5, #0x80
+ movlt r0, r2
+_020E1FD8:
+ cmp r0, #0x0
+ movne r0, r12
+ moveq r0, r5, lsl #0x1
+ ldreqh r0, [r1, r0]
+ andeq r0, r0, #0x100
+ cmp r0, #0x0
+ bne _020E1FB8
+ ldr r0, [sp, #0x30]
+ cmp r0, #0x0
+ bne _020E2C2C
+ ldr r5, _020E2C74 ; =0x0210430C
+ b _020E200C
+_020E2008:
+ add r4, r4, #0x1
+_020E200C:
+ mov r1, #0x0
+ mov r0, r8
+ mov r2, r1
+ blx r9
+ strb r0, [sp, #0x50]
+ ldrsb r1, [sp, #0x50]
+ cmp r1, #0x0
+ blt _020E2034
+ cmp r1, #0x80
+ blt _020E203C
+_020E2034:
+ mov r0, #0x0
+ b _020E2048
+_020E203C:
+ mov r0, r1, lsl #0x1
+ ldrh r0, [r5, r0]
+ and r0, r0, #0x100
+_020E2048:
+ cmp r0, #0x0
+ bne _020E2008
+ mov r0, r8
+ mov r2, #0x1
+ blx r9
+ b _020E2C2C
+_020E2060:
+ cmp r5, #0x25
+ beq _020E20D8
+ ldr r0, [sp, #0x30]
+ cmp r0, #0x0
+ bne _020E20D8
+ mov r0, r8
+ mov r1, #0x0
+ mov r2, r1
+ blx r9
+ strb r0, [sp, #0x50]
+ and r0, r5, #0xff
+ ldrsb r1, [sp, #0x50]
+ cmp r0, r1
+ beq _020E20C4
+ mov r0, r8
+ mov r2, #0x1
+ blx r9
+ cmp r10, #0x0
+ beq _020E2C3C
+ mov r0, #0x1
+ str r0, [sp, #0x30]
+ ldr r0, [sp, #0xc]
+ add r0, r0, #0x1
+ str r0, [sp, #0xc]
+ b _020E2C2C
+_020E20C4:
+ ldr r0, [sp, #0xc]
+ add r4, r4, #0x1
+ add r0, r0, #0x1
+ str r0, [sp, #0xc]
+ b _020E2C2C
+_020E20D8:
+ ldr r0, [sp, #0xc]
+ add r1, sp, #0x60
+ bl parse_format_scanf
+ str r0, [sp, #0xc]
+ ldrb r0, [sp, #0x60]
+ cmp r0, #0x0
+ bne _020E2114
+ ldrb r0, [sp, #0x63]
+ cmp r0, #0x25
+ beq _020E2114
+ ldr r0, [sp, #0x10]
+ add r0, r0, #0x4
+ str r0, [sp, #0x10]
+ ldr r5, [r0, #-0x4]
+ b _020E2118
+_020E2114:
+ mov r5, #0x0
+_020E2118:
+ ldrb r0, [sp, #0x63]
+ cmp r0, #0x6e
+ beq _020E2158
+ ldr r0, [sp, #0x30]
+ cmp r0, #0x0
+ bne _020E2158
+ mov r0, r8
+ mov r1, #0x0
+ mov r2, #0x2
+ blx r9
+ cmp r0, #0x0
+ beq _020E2158
+ cmp r10, #0x0
+ beq _020E2C3C
+ mov r0, #0x1
+ str r0, [sp, #0x30]
+_020E2158:
+ ldrb r1, [sp, #0x63]
+ cmp r1, #0x5b
+ bgt _020E21B0
+ bge _020E2984
+ cmp r1, #0x47
+ bgt _020E21A4
+ subs r0, r1, #0x41
+ addpl pc, pc, r0, lsl #0x2
+ b _020E2198
+_020E217C: ; 0x020E217C
+ b _020E2600
+_020E2180: ; 0x020E2180
+ b _020E2C3C
+_020E2184: ; 0x020E2184
+ b _020E2C3C
+_020E2188: ; 0x020E2188
+ b _020E2C3C
+_020E218C: ; 0x020E218C
+ b _020E2600
+_020E2190: ; 0x020E2190
+ b _020E2600
+_020E2194: ; 0x020E2194
+ b _020E2600
+_020E2198:
+ cmp r1, #0x25
+ beq _020E287C
+ b _020E2C3C
+_020E21A4:
+ cmp r1, #0x58
+ beq _020E243C
+ b _020E2C3C
+_020E21B0:
+ cmp r1, #0x78
+ bgt _020E2228
+ subs r0, r1, #0x63
+ addpl pc, pc, r0, lsl #0x2
+ b _020E221C
+_020E21C4: ; 0x020E21C4
+ b _020E26C4
+_020E21C8: ; 0x020E21C8
+ b _020E2230
+_020E21CC: ; 0x020E21CC
+ b _020E2600
+_020E21D0: ; 0x020E21D0
+ b _020E2600
+_020E21D4: ; 0x020E21D4
+ b _020E2600
+_020E21D8: ; 0x020E21D8
+ b _020E2C3C
+_020E21DC: ; 0x020E21DC
+ b _020E2238
+_020E21E0: ; 0x020E21E0
+ b _020E2C3C
+_020E21E4: ; 0x020E21E4
+ b _020E2C3C
+_020E21E8: ; 0x020E21E8
+ b _020E2C3C
+_020E21EC: ; 0x020E21EC
+ b _020E2C3C
+_020E21F0: ; 0x020E21F0
+ b _020E2BC8
+_020E21F4: ; 0x020E21F4
+ b _020E242C
+_020E21F8: ; 0x020E21F8
+ b _020E2C3C
+_020E21FC: ; 0x020E21FC
+ b _020E2C3C
+_020E2200: ; 0x020E2200
+ b _020E2C3C
+_020E2204: ; 0x020E2204
+ b _020E2908
+_020E2208: ; 0x020E2208
+ b _020E2C3C
+_020E220C: ; 0x020E220C
+ b _020E2434
+_020E2210: ; 0x020E2210
+ b _020E2C3C
+_020E2214: ; 0x020E2214
+ b _020E2C3C
+_020E2218: ; 0x020E2218
+ b _020E243C
+_020E221C:
+ cmp r1, #0x61
+ beq _020E2600
+ b _020E2C3C
+_020E2228:
+ cmp r1, #0xff
+ b _020E2C3C
+_020E2230:
+ mov r0, #0xa
+ b _020E223C
+_020E2238:
+ mov r0, #0x0
+_020E223C:
+ ldr r1, [sp, #0x30]
+ cmp r1, #0x0
+ beq _020E225C
+ mov r0, #0x0
+ str r0, [sp, #0x1c]
+ str r0, [sp, #0x20]
+ str r0, [sp, #0x24]
+ b _020E2364
+_020E225C:
+ ldrb r1, [sp, #0x62]
+ add r2, sp, #0x5c
+ cmp r1, #0x7
+ cmpne r1, #0x4
+ add r1, sp, #0x58
+ bne _020E22A0
+ str r2, [sp, #0x0]
+ str r1, [sp, #0x4]
+ add r1, sp, #0x54
+ str r1, [sp, #0x8]
+ ldr r1, [sp, #0x64]
+ mov r2, r9
+ mov r3, r8
+ bl __strtoull
+ str r0, [sp, #0x34]
+ str r1, [sp, #0x18]
+ b _020E22C4
+_020E22A0:
+ str r2, [sp, #0x0]
+ str r1, [sp, #0x4]
+ add r1, sp, #0x54
+ str r1, [sp, #0x8]
+ ldr r1, [sp, #0x64]
+ mov r2, r9
+ mov r3, r8
+ bl __strtoul
+ str r0, [sp, #0x3c]
+_020E22C4:
+ ldr r0, [sp, #0x5c]
+ cmp r0, #0x0
+ bne _020E22F4
+ cmp r10, #0x0
+ beq _020E2C3C
+ mov r0, #0x1
+ str r0, [sp, #0x30]
+ mov r0, #0x0
+ str r0, [sp, #0x1c]
+ str r0, [sp, #0x20]
+ str r0, [sp, #0x24]
+ b _020E2364
+_020E22F4:
+ add r4, r4, r0
+ ldrb r0, [sp, #0x62]
+ cmp r0, #0x7
+ cmpne r0, #0x4
+ bne _020E2344
+ ldr r0, [sp, #0x58]
+ cmp r0, #0x0
+ beq _020E2330
+ ldr r0, [sp, #0x34]
+ rsbs r0, r0, #0x0
+ str r0, [sp, #0x20]
+ ldr r0, [sp, #0x18]
+ rsc r0, r0, #0x0
+ str r0, [sp, #0x24]
+ b _020E2364
+_020E2330:
+ ldr r0, [sp, #0x34]
+ str r0, [sp, #0x20]
+ ldr r0, [sp, #0x18]
+ str r0, [sp, #0x24]
+ b _020E2364
+_020E2344:
+ ldr r0, [sp, #0x58]
+ cmp r0, #0x0
+ ldreq r0, [sp, #0x3c]
+ streq r0, [sp, #0x1c]
+ beq _020E2364
+ ldr r0, [sp, #0x3c]
+ rsb r0, r0, #0x0
+ str r0, [sp, #0x1c]
+_020E2364:
+ cmp r5, #0x0
+ beq _020E241C
+ ldrb r0, [sp, #0x62]
+ cmp r0, #0x7
+ addls pc, pc, r0, lsl #0x2
+ b _020E2408
+_020E237C:
+ b _020E239C
+_020E2380:
+ b _020E23A8
+_020E2384:
+ b _020E23B4
+_020E2388:
+ b _020E23C0
+_020E238C:
+ b _020E23CC
+_020E2390:
+ b _020E23E0
+_020E2394:
+ b _020E23EC
+_020E2398:
+ b _020E23F8
+_020E239C:
+ ldr r0, [sp, #0x1c]
+ str r0, [r5, #0x0]
+ b _020E2408
+_020E23A8:
+ ldr r0, [sp, #0x1c]
+ strb r0, [r5, #0x0]
+ b _020E2408
+_020E23B4:
+ ldr r0, [sp, #0x1c]
+ strh r0, [r5, #0x0]
+ b _020E2408
+_020E23C0:
+ ldr r0, [sp, #0x1c]
+ str r0, [r5, #0x0]
+ b _020E2408
+_020E23CC:
+ ldr r0, [sp, #0x20]
+ str r0, [r5, #0x0]
+ ldr r0, [sp, #0x24]
+ str r0, [r5, #0x4]
+ b _020E2408
+_020E23E0:
+ ldr r0, [sp, #0x1c]
+ str r0, [r5, #0x0]
+ b _020E2408
+_020E23EC:
+ ldr r0, [sp, #0x1c]
+ str r0, [r5, #0x0]
+ b _020E2408
+_020E23F8:
+ ldr r0, [sp, #0x20]
+ str r0, [r5, #0x0]
+ ldr r0, [sp, #0x24]
+ str r0, [r5, #0x4]
+_020E2408:
+ ldr r0, [sp, #0x30]
+ cmp r0, #0x0
+ ldreq r0, [sp, #0x44]
+ addeq r0, r0, #0x1
+ streq r0, [sp, #0x44]
+_020E241C:
+ ldr r0, [sp, #0x40]
+ add r0, r0, #0x1
+ str r0, [sp, #0x40]
+ b _020E2C2C
+_020E242C:
+ mov r0, #0x8
+ b _020E2440
+_020E2434:
+ mov r0, #0xa
+ b _020E2440
+_020E243C:
+ mov r0, #0x10
+_020E2440:
+ ldr r1, [sp, #0x30]
+ cmp r1, #0x0
+ beq _020E2460
+ mov r0, #0x0
+ str r0, [sp, #0x3c]
+ str r0, [sp, #0x34]
+ str r0, [sp, #0x18]
+ b _020E2538
+_020E2460:
+ ldrb r1, [sp, #0x62]
+ add r2, sp, #0x5c
+ cmp r1, #0x7
+ cmpne r1, #0x4
+ add r1, sp, #0x58
+ bne _020E24A4
+ str r2, [sp, #0x0]
+ str r1, [sp, #0x4]
+ add r1, sp, #0x54
+ str r1, [sp, #0x8]
+ ldr r1, [sp, #0x64]
+ mov r2, r9
+ mov r3, r8
+ bl __strtoull
+ str r0, [sp, #0x34]
+ str r1, [sp, #0x18]
+ b _020E24C8
+_020E24A4:
+ str r2, [sp, #0x0]
+ str r1, [sp, #0x4]
+ add r1, sp, #0x54
+ str r1, [sp, #0x8]
+ ldr r1, [sp, #0x64]
+ mov r2, r9
+ mov r3, r8
+ bl __strtoul
+ str r0, [sp, #0x3c]
+_020E24C8:
+ ldr r0, [sp, #0x5c]
+ cmp r0, #0x0
+ bne _020E24F8
+ cmp r10, #0x0
+ beq _020E2C3C
+ mov r0, #0x1
+ str r0, [sp, #0x30]
+ mov r0, #0x0
+ str r0, [sp, #0x3c]
+ str r0, [sp, #0x34]
+ str r0, [sp, #0x18]
+ b _020E2538
+_020E24F8:
+ add r4, r4, r0
+ ldr r0, [sp, #0x58]
+ cmp r0, #0x0
+ beq _020E2538
+ ldrb r0, [sp, #0x62]
+ cmp r0, #0x7
+ ldrne r0, [sp, #0x3c]
+ rsbne r0, r0, #0x0
+ strne r0, [sp, #0x3c]
+ bne _020E2538
+ ldr r0, [sp, #0x34]
+ rsbs r0, r0, #0x0
+ str r0, [sp, #0x34]
+ ldr r0, [sp, #0x18]
+ rsc r0, r0, #0x0
+ str r0, [sp, #0x18]
+_020E2538:
+ cmp r5, #0x0
+ beq _020E25F0
+ ldrb r0, [sp, #0x62]
+ cmp r0, #0x7
+ addls pc, pc, r0, lsl #0x2
+ b _020E25DC
+_020E2550:
+ b _020E2570
+_020E2554:
+ b _020E257C
+_020E2558:
+ b _020E2588
+_020E255C:
+ b _020E2594
+_020E2560:
+ b _020E25A0
+_020E2564:
+ b _020E25B4
+_020E2568:
+ b _020E25C0
+_020E256C:
+ b _020E25CC
+_020E2570:
+ ldr r0, [sp, #0x3c]
+ str r0, [r5, #0x0]
+ b _020E25DC
+_020E257C:
+ ldr r0, [sp, #0x3c]
+ strb r0, [r5, #0x0]
+ b _020E25DC
+_020E2588:
+ ldr r0, [sp, #0x3c]
+ strh r0, [r5, #0x0]
+ b _020E25DC
+_020E2594:
+ ldr r0, [sp, #0x3c]
+ str r0, [r5, #0x0]
+ b _020E25DC
+_020E25A0:
+ ldr r0, [sp, #0x34]
+ str r0, [r5, #0x0]
+ ldr r0, [sp, #0x18]
+ str r0, [r5, #0x4]
+ b _020E25DC
+_020E25B4:
+ ldr r0, [sp, #0x3c]
+ str r0, [r5, #0x0]
+ b _020E25DC
+_020E25C0:
+ ldr r0, [sp, #0x3c]
+ str r0, [r5, #0x0]
+ b _020E25DC
+_020E25CC:
+ ldr r0, [sp, #0x34]
+ str r0, [r5, #0x0]
+ ldr r0, [sp, #0x18]
+ str r0, [r5, #0x4]
+_020E25DC:
+ ldr r0, [sp, #0x30]
+ cmp r0, #0x0
+ ldreq r0, [sp, #0x44]
+ addeq r0, r0, #0x1
+ streq r0, [sp, #0x44]
+_020E25F0:
+ ldr r0, [sp, #0x40]
+ add r0, r0, #0x1
+ str r0, [sp, #0x40]
+ b _020E2C2C
+_020E2600:
+ ldr r0, [sp, #0x30]
+ cmp r0, #0x0
+ beq _020E261C
+ ldr r0, _020E2C78 ; =0x02106B78
+ ldr r0, [r0, #0x0]
+ bl _f2d
+ b _020E2668
+_020E261C:
+ add r0, sp, #0x54
+ str r0, [sp, #0x0]
+ ldr r0, [sp, #0x64]
+ mov r1, r9
+ mov r2, r8
+ add r3, sp, #0x5c
+ bl __strtold
+ ldr r2, [sp, #0x5c]
+ cmp r2, #0x0
+ bne _020E2664
+ cmp r10, #0x0
+ beq _020E2C3C
+ mov r0, #0x1
+ str r0, [sp, #0x30]
+ ldr r0, _020E2C78 ; =0x02106B78
+ ldr r0, [r0, #0x0]
+ bl _f2d
+_020E2660: ; 0x020E2660
+ b _020E2668
+_020E2664:
+ add r4, r4, r2
+_020E2668:
+ cmp r5, #0x0
+ beq _020E26B4
+ ldrb r2, [sp, #0x62]
+ cmp r2, #0x0
+ beq _020E2690
+ cmp r2, #0x8
+ beq _020E269C
+ cmp r2, #0x9
+ stmeqia r5, {r0-r1}
+ b _020E26A0
+_020E2690:
+ bl _d2f
+_020E2694: ; 0x020E2694
+ str r0, [r5, #0x0]
+ b _020E26A0
+_020E269C:
+ stmia r5, {r0-r1}
+_020E26A0:
+ ldr r0, [sp, #0x30]
+ cmp r0, #0x0
+ ldreq r0, [sp, #0x44]
+ addeq r0, r0, #0x1
+ streq r0, [sp, #0x44]
+_020E26B4:
+ ldr r0, [sp, #0x40]
+ add r0, r0, #0x1
+ str r0, [sp, #0x40]
+ b _020E2C2C
+_020E26C4:
+ ldrb r0, [sp, #0x61]
+ cmp r0, #0x0
+ moveq r0, #0x1
+ streq r0, [sp, #0x64]
+ cmp r5, #0x0
+ beq _020E280C
+ cmp r10, #0x0
+ beq _020E26F8
+ ldr r0, [sp, #0x10]
+ mov r7, #0x1
+ add r0, r0, #0x4
+ ldr r11, [r0, #-0x4]
+ str r0, [sp, #0x10]
+_020E26F8:
+ ldr r0, [sp, #0x30]
+ mov r1, #0x0
+ cmp r0, #0x0
+ str r1, [sp, #0x5c]
+ beq _020E2718
+ cmp r11, #0x0
+ strneb r1, [r5, #0x0]
+ b _020E2C2C
+_020E2718:
+ mvn r0, #0x0
+ str r5, [sp, #0x2c]
+ str r0, [sp, #0x48]
+ b _020E2760
+_020E2728:
+ ldrb r0, [sp, #0x62]
+ strb r6, [sp, #0x50]
+ cmp r0, #0xa
+ ldrnesb r0, [sp, #0x50]
+ strneb r0, [r5], #0x1
+ bne _020E2754
+ mov r0, r5
+ add r1, sp, #0x50
+ mov r2, #0x1
+ bl mbtowc
+ add r5, r5, #0x1
+_020E2754:
+ ldr r0, [sp, #0x5c]
+ add r1, r0, #0x1
+ str r1, [sp, #0x5c]
+_020E2760:
+ ldr r0, [sp, #0x64]
+ cmp r0, #0x0
+ sub r0, r0, #0x1
+ str r0, [sp, #0x64]
+ beq _020E27B0
+ cmp r10, #0x0
+ beq _020E2790
+ cmp r11, r1
+ movhi r7, #0x1
+ movls r7, #0x0
+ cmp r7, #0x0
+ beq _020E27B0
+_020E2790:
+ mov r1, #0x0
+ mov r0, r8
+ mov r2, r1
+ blx r9
+ mov r6, r0
+ ldr r0, [sp, #0x48]
+ cmp r6, r0
+ bne _020E2728
+_020E27B0:
+ strb r6, [sp, #0x50]
+ ldr r0, [sp, #0x5c]
+ cmp r0, #0x0
+ beq _020E27D0
+ cmp r10, #0x0
+ beq _020E27F8
+ cmp r7, #0x0
+ bne _020E27F8
+_020E27D0:
+ cmp r10, #0x0
+ beq _020E2C3C
+ mov r0, #0x1
+ cmp r11, #0x0
+ str r0, [sp, #0x30]
+ beq _020E2C2C
+ ldr r0, [sp, #0x2c]
+ mov r1, #0x0
+ strb r1, [r0, #0x0]
+ b _020E2C2C
+_020E27F8:
+ add r4, r4, r0
+ ldr r0, [sp, #0x44]
+ add r0, r0, #0x1
+ str r0, [sp, #0x44]
+ b _020E286C
+_020E280C:
+ mov r0, #0x0
+ str r0, [sp, #0x5c]
+ mvn r5, #0x0
+ b _020E282C
+_020E281C:
+ strb r6, [sp, #0x50]
+ ldr r0, [sp, #0x5c]
+ add r0, r0, #0x1
+ str r0, [sp, #0x5c]
+_020E282C:
+ ldr r0, [sp, #0x64]
+ cmp r0, #0x0
+ sub r0, r0, #0x1
+ str r0, [sp, #0x64]
+ beq _020E285C
+ mov r1, #0x0
+ mov r0, r8
+ mov r2, r1
+ blx r9
+ mov r6, r0
+ cmp r6, r5
+ bne _020E281C
+_020E285C:
+ strb r6, [sp, #0x50]
+ ldr r0, [sp, #0x5c]
+ cmp r0, #0x0
+ beq _020E2C3C
+_020E286C:
+ ldr r0, [sp, #0x40]
+ add r0, r0, #0x1
+ str r0, [sp, #0x40]
+ b _020E2C2C
+_020E287C:
+ ldr r0, [sp, #0x30]
+ cmp r0, #0x0
+ bne _020E2C2C
+ ldr r5, _020E2C74 ; =0x0210430C
+ b _020E2894
+_020E2890:
+ add r4, r4, #0x1
+_020E2894:
+ mov r1, #0x0
+ mov r0, r8
+ mov r2, r1
+ blx r9
+ strb r0, [sp, #0x50]
+ ldrsb r1, [sp, #0x50]
+ cmp r1, #0x0
+ blt _020E28BC
+ cmp r1, #0x80
+ blt _020E28C4
+_020E28BC:
+ mov r0, #0x0
+ b _020E28D0
+_020E28C4:
+ mov r0, r1, lsl #0x1
+ ldrh r0, [r5, r0]
+ and r0, r0, #0x100
+_020E28D0:
+ cmp r0, #0x0
+ bne _020E2890
+ cmp r1, #0x25
+ beq _020E2900
+ mov r0, r8
+ mov r2, #0x1
+ blx r9
+ cmp r10, #0x0
+ beq _020E2C3C
+ mov r0, #0x1
+ str r0, [sp, #0x30]
+ b _020E2C2C
+_020E2900:
+ add r4, r4, #0x1
+ b _020E2C2C
+_020E2908:
+ ldr r0, [sp, #0x30]
+ cmp r0, #0x0
+ bne _020E2984
+ mov r1, #0x0
+ mov r0, r8
+ mov r2, r1
+ blx r9
+ strb r0, [sp, #0x50]
+ b _020E2944
+_020E292C:
+ mov r1, #0x0
+ mov r0, r8
+ mov r2, r1
+ add r4, r4, #0x1
+ blx r9
+ strb r0, [sp, #0x50]
+_020E2944:
+ ldrsb r1, [sp, #0x50]
+ cmp r1, #0x0
+ blt _020E2958
+ cmp r1, #0x80
+ blt _020E2960
+_020E2958:
+ mov r0, #0x0
+ b _020E2970
+_020E2960:
+ ldr r0, _020E2C74 ; =0x0210430C
+ mov r2, r1, lsl #0x1
+ ldrh r0, [r0, r2]
+ and r0, r0, #0x100
+_020E2970:
+ cmp r0, #0x0
+ bne _020E292C
+ mov r0, r8
+ mov r2, #0x1
+ blx r9
+_020E2984:
+ cmp r5, #0x0
+ beq _020E2B00
+ cmp r10, #0x0
+ beq _020E29AC
+ ldr r0, [sp, #0x10]
+ mov r7, #0x1
+ add r0, r0, #0x4
+ str r0, [sp, #0x10]
+ ldr r0, [r0, #-0x4]
+ sub r11, r0, #0x1
+_020E29AC:
+ ldr r0, [sp, #0x30]
+ mov r1, #0x0
+ cmp r0, #0x0
+ str r1, [sp, #0x5c]
+ beq _020E29CC
+ cmp r11, #0x0
+ strneb r1, [r5, #0x0]
+ b _020E2C2C
+_020E29CC:
+ mvn r0, #0x0
+ str r5, [sp, #0x28]
+ str r0, [sp, #0x4c]
+ b _020E2A30
+_020E29DC:
+ strb r6, [sp, #0x50]
+ ldrsb r1, [sp, #0x50]
+ add r2, sp, #0x60
+ and r3, r1, #0xff
+ add r2, r2, r3, asr #0x3
+ ldrb r3, [r2, #0x8]
+ and r0, r1, #0x7
+ mov r2, #0x1
+ tst r3, r2, lsl r0
+ beq _020E2A80
+ ldrb r0, [sp, #0x62]
+ cmp r0, #0xa
+ strneb r1, [r5], #0x1
+ bne _020E2A24
+ mov r0, r5
+ add r1, sp, #0x50
+ bl mbtowc
+ add r5, r5, #0x2
+_020E2A24:
+ ldr r0, [sp, #0x5c]
+ add r1, r0, #0x1
+ str r1, [sp, #0x5c]
+_020E2A30:
+ ldr r0, [sp, #0x64]
+ cmp r0, #0x0
+ sub r0, r0, #0x1
+ str r0, [sp, #0x64]
+ beq _020E2A80
+ cmp r10, #0x0
+ beq _020E2A60
+ cmp r11, r1
+ movcs r7, #0x1
+ movcc r7, #0x0
+ cmp r7, #0x0
+ beq _020E2A80
+_020E2A60:
+ mov r1, #0x0
+ mov r0, r8
+ mov r2, r1
+ blx r9
+ mov r6, r0
+ ldr r0, [sp, #0x4c]
+ cmp r6, r0
+ bne _020E29DC
+_020E2A80:
+ strb r6, [sp, #0x50]
+ ldr r0, [sp, #0x5c]
+ cmp r0, #0x0
+ beq _020E2AA0
+ cmp r10, #0x0
+ beq _020E2AD8
+ cmp r7, #0x0
+ bne _020E2AD8
+_020E2AA0:
+ mov r0, r8
+ ldrsb r1, [sp, #0x50]
+ mov r2, #0x1
+ blx r9
+ cmp r10, #0x0
+ beq _020E2C3C
+ mov r0, #0x1
+ cmp r11, #0x0
+ str r0, [sp, #0x30]
+ beq _020E2C2C
+ ldr r0, [sp, #0x28]
+ mov r1, #0x0
+ strb r1, [r0, #0x0]
+ b _020E2C2C
+_020E2AD8:
+ add r4, r4, r0
+ ldrb r0, [sp, #0x62]
+ cmp r0, #0xa
+ mov r0, #0x0
+ streqh r0, [r5, #0x0]
+ strneb r0, [r5, #0x0]
+ ldr r0, [sp, #0x44]
+ add r0, r0, #0x1
+ str r0, [sp, #0x44]
+ b _020E2B9C
+_020E2B00:
+ mov r0, #0x0
+ str r0, [sp, #0x5c]
+ mvn r5, #0x0
+ b _020E2B44
+_020E2B10:
+ strb r6, [sp, #0x50]
+ ldrsb r1, [sp, #0x50]
+ and r0, r1, #0x7
+ and r2, r1, #0xff
+ add r1, sp, #0x60
+ add r1, r1, r2, asr #0x3
+ ldrb r2, [r1, #0x8]
+ mov r1, #0x1
+ tst r2, r1, lsl r0
+ beq _020E2B74
+ ldr r0, [sp, #0x5c]
+ add r0, r0, #0x1
+ str r0, [sp, #0x5c]
+_020E2B44:
+ ldr r0, [sp, #0x64]
+ cmp r0, #0x0
+ sub r0, r0, #0x1
+ str r0, [sp, #0x64]
+ beq _020E2B74
+ mov r1, #0x0
+ mov r0, r8
+ mov r2, r1
+ blx r9
+ mov r6, r0
+ cmp r6, r5
+ bne _020E2B10
+_020E2B74:
+ strb r6, [sp, #0x50]
+ ldr r0, [sp, #0x5c]
+ cmp r0, #0x0
+ bne _020E2B98
+ mov r0, r8
+ ldrsb r1, [sp, #0x50]
+ mov r2, #0x1
+ blx r9
+ b _020E2C2C
+_020E2B98:
+ add r4, r4, r0
+_020E2B9C:
+ ldr r0, [sp, #0x64]
+ cmp r0, #0x0
+ blt _020E2BB8
+ mov r0, r8
+ ldrsb r1, [sp, #0x50]
+ mov r2, #0x1
+ blx r9
+_020E2BB8:
+ ldr r0, [sp, #0x40]
+ add r0, r0, #0x1
+ str r0, [sp, #0x40]
+ b _020E2C2C
+_020E2BC8:
+ cmp r5, #0x0
+ beq _020E2C2C
+ ldrb r0, [sp, #0x62]
+ cmp r0, #0x7
+ addls pc, pc, r0, lsl #0x2
+ b _020E2C2C
+_020E2BE0:
+ b _020E2C00
+_020E2BE4:
+ b _020E2C18
+_020E2BE8:
+ b _020E2C08
+_020E2BEC:
+ b _020E2C10
+_020E2BF0:
+ b _020E2C2C
+_020E2BF4:
+ b _020E2C2C
+_020E2BF8:
+ b _020E2C2C
+_020E2BFC:
+ b _020E2C20
+_020E2C00:
+ str r4, [r5, #0x0]
+ b _020E2C2C
+_020E2C08:
+ strh r4, [r5, #0x0]
+ b _020E2C2C
+_020E2C10:
+ str r4, [r5, #0x0]
+ b _020E2C2C
+_020E2C18:
+ strb r4, [r5, #0x0]
+ b _020E2C2C
+_020E2C20:
+ str r4, [r5, #0x0]
+ mov r0, r4, asr #0x1f
+ str r0, [r5, #0x4]
+_020E2C2C:
+ ldr r0, [sp, #0xc]
+ ldrsb r5, [r0, #0x0]
+ cmp r5, #0x0
+ bne _020E1F70
+_020E2C3C:
+ mov r0, r8
+ mov r1, #0x0
+ mov r2, #0x2
+ blx r9
+ cmp r0, #0x0
+ beq _020E2C68
+ ldr r0, [sp, #0x40]
+ cmp r0, #0x0
+ addeq sp, sp, #0x88
+ mvneq r0, #0x0
+ ldmeqia sp!, {r3-r11,pc}
+_020E2C68:
+ ldr r0, [sp, #0x44]
+ add sp, sp, #0x88
+ ldmia sp!, {r3-r11,pc}
+ .balign 4
+_020E2C74: .word 0x0210430C
+_020E2C78: .word 0x02106B78
+
+ arm_func_start __StringRead
+__StringRead: ; 0x020E2C7C
+ cmp r2, #0x0
+ beq _020E2C98
+ cmp r2, #0x1
+ beq _020E2CC8
+ cmp r2, #0x2
+ beq _020E2CF0
+ b _020E2CF8
+_020E2C98:
+ ldr r1, [r0, #0x0]
+ ldrsb r2, [r1, #0x0]
+ cmp r2, #0x0
+ bne _020E2CB8
+ mov r1, #0x1
+ str r1, [r0, #0x4]
+ sub r0, r1, #0x2
+ bx lr
+_020E2CB8:
+ add r1, r1, #0x1
+ str r1, [r0, #0x0]
+ and r0, r2, #0xff
+ bx lr
+_020E2CC8:
+ ldr r2, [r0, #0x4]
+ cmp r2, #0x0
+ movne r2, #0x0
+ strne r2, [r0, #0x4]
+ bne _020E2CE8
+ ldr r2, [r0, #0x0]
+ sub r2, r2, #0x1
+ str r2, [r0, #0x0]
+_020E2CE8:
+ mov r0, r1
+ bx lr
+_020E2CF0:
+ ldr r0, [r0, #0x4]
+ bx lr
+_020E2CF8:
+ mov r0, #0x0
+ bx lr
+
+ arm_func_start vsscanf
+vsscanf: ; 0x020E2D00
+ stmdb sp!, {lr}
+ sub sp, sp, #0xc
+ str r0, [sp, #0x4]
+ cmp r0, #0x0
+ ldrnesb r0, [r0, #0x0]
+ mov lr, r1
+ mov r3, r2
+ cmpne r0, #0x0
+ addeq sp, sp, #0xc
+ mvneq r0, #0x0
+ ldmeqia sp!, {pc}
+ mov r12, #0x0
+ str r12, [sp, #0x8]
+ ldr r0, _020E2D50 ; =__StringRead
+ add r1, sp, #0x4
+ mov r2, lr
+ str r12, [sp, #0x0]
+ bl __sformatter
+ add sp, sp, #0xc
+ ldmia sp!, {pc}
+ .balign 4
+_020E2D50: .word __StringRead
+
+ arm_func_start sscanf
+sscanf: ; 0x020E2D54
+ stmdb sp!, {r0-r3}
+ stmdb sp!, {r3,lr}
+ add r2, sp, #0xc
+ bic r2, r2, #0x3
+ ldr r1, [sp, #0xc]
+ add r2, r2, #0x4
+ bl vsscanf
+ ldmia sp!, {r3,lr}
+ add sp, sp, #0x10
+ bx lr
+
+ arm_func_start raise
+raise: ; 0x020E2D7C
+ stmdb sp!, {r3-r5,lr}
+ mov r5, r0
+ cmp r5, #0x1
+ blt _020E2D94
+ cmp r5, #0x7
+ ble _020E2D9C
+_020E2D94:
+ mvn r0, #0x0
+ ldmia sp!, {r3-r5,pc}
+_020E2D9C:
+ ldr r0, _020E2E98 ; =0x021D7178
+ bl OS_TryLockMutex
+_020E2DA4: ; 0x020E2DA4
+ cmp r0, #0x0
+ bne _020E2DD0
+ ldr r0, _020E2E9C ; =0x021D3498
+ ldr r1, _020E2EA0 ; =0x021D7088
+ ldr r2, [r0, #0x4]
+ ldr r0, _020E2EA4 ; =0x021D70AC
+ ldr r3, [r2, #0x6c]
+ mov r2, #0x1
+ str r3, [r1, #0x1c]
+ str r2, [r0, #0x1c]
+ b _020E2E28
+_020E2DD0:
+ ldr r0, _020E2E9C ; =0x021D3498
+ ldr r1, _020E2EA0 ; =0x021D7088
+ ldr r0, [r0, #0x4]
+ ldr r1, [r1, #0x1c]
+ ldr r0, [r0, #0x6c]
+ cmp r1, r0
+ bne _020E2E00
+ ldr r0, _020E2EA4 ; =0x021D70AC
+ ldr r1, [r0, #0x1c]
+ add r1, r1, #0x1
+ str r1, [r0, #0x1c]
+ b _020E2E28
+_020E2E00:
+ ldr r0, _020E2E98 ; =0x021D7178
+ bl OS_LockMutex
+ ldr r0, _020E2E9C ; =0x021D3498
+ ldr r1, _020E2EA0 ; =0x021D7088
+ ldr r2, [r0, #0x4]
+ ldr r0, _020E2EA4 ; =0x021D70AC
+ ldr r3, [r2, #0x6c]
+ mov r2, #0x1
+ str r3, [r1, #0x1c]
+ str r2, [r0, #0x1c]
+_020E2E28:
+ ldr r1, _020E2EA8 ; =0x021D74AC
+ sub r2, r5, #0x1
+ ldr r4, [r1, r2, lsl #0x2]
+ cmp r4, #0x1
+ movne r0, #0x0
+ strne r0, [r1, r2, lsl #0x2]
+ ldr r0, _020E2EA4 ; =0x021D70AC
+ ldr r1, [r0, #0x1c]
+ subs r1, r1, #0x1
+ str r1, [r0, #0x1c]
+ bne _020E2E5C
+ ldr r0, _020E2E98 ; =0x021D7178
+ bl OS_UnlockMutex
+_020E2E5C:
+ cmp r4, #0x1
+ beq _020E2E70
+ cmp r4, #0x0
+ cmpeq r5, #0x1
+ bne _020E2E78
+_020E2E70:
+ mov r0, #0x0
+ ldmia sp!, {r3-r5,pc}
+_020E2E78:
+ cmp r4, #0x0
+ bne _020E2E88
+ mov r0, #0x0
+ bl exit
+_020E2E88:
+ mov r0, r5
+ blx r4
+ mov r0, #0x0
+ ldmia sp!, {r3-r5,pc}
+ .balign 4
+_020E2E98: .word 0x021D7178
+_020E2E9C: .word 0x021D3498
+_020E2EA0: .word 0x021D7088
+_020E2EA4: .word 0x021D70AC
+_020E2EA8: .word 0x021D74AC
+
+ arm_func_start strlen
+strlen: ; 0x020E2EAC
+ mvn r2, #0x0
+_020E2EB0:
+ ldrsb r1, [r0], #0x1
+ add r2, r2, #0x1
+ cmp r1, #0x0
+ bne _020E2EB0
+ mov r0, r2
+ bx lr
+
+ arm_func_start strcpy
+strcpy: ; 0x020E2EC8
+ stmdb sp!, {r3-r5,lr}
+ and r4, r1, #0x3
+ and r3, r0, #0x3
+ mov r2, r0
+ cmp r3, r4
+ bne _020E2F64
+ cmp r4, #0x0
+ beq _020E2F20
+ ldrb r3, [r1, #0x0]
+ strb r3, [r0, #0x0]
+ cmp r3, #0x0
+ ldmeqia sp!, {r3-r5,pc}
+_020E2EF8: ; 0x020E2EF8
+ rsbs r4, r4, #0x3
+ beq _020E2F18
+_020E2F00:
+ ldrb r3, [r1, #0x1]!
+ cmp r3, #0x0
+ strb r3, [r2, #0x1]!
+ ldmeqia sp!, {r3-r5,pc}
+_020E2F10: ; 0x020E2F10
+ subs r4, r4, #0x1
+ bne _020E2F00
+_020E2F18:
+ add r2, r2, #0x1
+ add r1, r1, #0x1
+_020E2F20:
+ ldr r5, [r1, #0x0]
+ ldr r3, _020E2F88 ; =0xFEFEFEFF
+ mvn r4, r5
+ add lr, r5, r3
+ ldr ip, _020E2F8C ; =0x80808080
+ and r4, lr, r4
+ tst r4, r12
+ bne _020E2F64
+ sub r2, r2, #0x4
+_020E2F44:
+ str r5, [r2, #0x4]!
+ ldr r5, [r1, #0x4]!
+ add r4, r5, r3
+ mvn lr, r5
+ and lr, r4, lr
+ tst lr, r12
+ beq _020E2F44
+ add r2, r2, #0x4
+_020E2F64:
+ ldrb r3, [r1, #0x0]
+ strb r3, [r2, #0x0]
+ cmp r3, #0x0
+ ldmeqia sp!, {r3-r5,pc}
+_020E2F74:
+ ldrb r3, [r1, #0x1]!
+ cmp r3, #0x0
+ strb r3, [r2, #0x1]!
+ bne _020E2F74
+ ldmia sp!, {r3-r5,pc}
+ .balign 4
+_020E2F88: .word 0xFEFEFEFF
+_020E2F8C: .word 0x80808080
+
+ arm_func_start strncpy
+strncpy: ; 0x020E2F90
+ stmdb sp!, {r3,lr}
+ mov lr, r0
+ cmp r2, #0x0
+ ldmeqia sp!, {r3,pc}
+_020E2FA0:
+ ldrsb r3, [r1], #0x1
+ mov r12, lr
+ strb r3, [lr], #0x1
+ ldrsb r3, [r12, #0x0]
+ cmp r3, #0x0
+ bne _020E2FD4
+ subs r2, r2, #0x1
+ ldmeqia sp!, {r3,pc}
+_020E2FC0: ; 0x020E2FC0
+ mov r1, #0x0
+_020E2FC4:
+ strb r1, [lr], #0x1
+ subs r2, r2, #0x1
+ bne _020E2FC4
+ ldmia sp!, {r3,pc}
+_020E2FD4:
+ subs r2, r2, #0x1
+ bne _020E2FA0
+ ldmia sp!, {r3,pc}
+
+ arm_func_start strcat
+strcat: ; 0x020E2FE0
+ mov r3, r0
+_020E2FE4:
+ ldrsb r2, [r3], #0x1
+ cmp r2, #0x0
+ bne _020E2FE4
+ sub r3, r3, #0x1
+_020E2FF4:
+ ldrsb r2, [r1], #0x1
+ mov r12, r3
+ strb r2, [r3], #0x1
+ ldrsb r2, [r12, #0x0]
+ cmp r2, #0x0
+ bne _020E2FF4
+ bx lr
+
+ arm_func_start strncat
+strncat: ; 0x020E3010
+ stmdb sp!, {r3,lr}
+ mov r12, r0
+_020E3018:
+ ldrsb r3, [r12], #0x1
+ cmp r3, #0x0
+ bne _020E3018
+ cmp r2, #0x0
+ sub r12, r12, #0x1
+ beq _020E3054
+_020E3030:
+ ldrsb r3, [r1], #0x1
+ mov lr, r12
+ strb r3, [r12], #0x1
+ ldrsb r3, [lr, #0x0]
+ cmp r3, #0x0
+ subeq r12, r12, #0x1
+ beq _020E3054
+ subs r2, r2, #0x1
+ bne _020E3030
+_020E3054:
+ mov r1, #0x0
+ strb r1, [r12, #0x0]
+ ldmia sp!, {r3,pc}
+
+ arm_func_start strcmp
+strcmp: ; 0x020E3060
+ stmdb sp!, {r4,lr}
+ ldrb r2, [r0, #0x0]
+ ldrb r3, [r1, #0x0]
+ subs r3, r2, r3
+ movne r0, r3
+ ldmneia sp!, {r4,pc}
+_020E3078: ; 0x020E3078
+ and r4, r0, #0x3
+ and r3, r1, #0x3
+ cmp r3, r4
+ bne _020E313C
+ cmp r4, #0x0
+ beq _020E30D4
+ cmp r2, #0x0
+ moveq r0, #0x0
+ ldmeqia sp!, {r4,pc}
+_020E309C: ; 0x020E309C
+ rsbs r4, r4, #0x3
+ beq _020E30CC
+_020E30A4:
+ ldrb r3, [r0, #0x1]!
+ ldrb r2, [r1, #0x1]!
+ subs r2, r3, r2
+ movne r0, r2
+ ldmneia sp!, {r4,pc}
+_020E30B8: ; 0x020E30B8
+ cmp r3, #0x0
+ moveq r0, #0x0
+ ldmeqia sp!, {r4,pc}
+_020E30C4: ; 0x020E30C4
+ subs r4, r4, #0x1
+ bne _020E30A4
+_020E30CC:
+ add r0, r0, #0x1
+ add r1, r1, #0x1
+_020E30D4:
+ ldr r2, [r0, #0x0]
+ ldr r3, _020E316C ; =0xFEFEFEFF
+ mvn r4, r2
+ add lr, r2, r3
+ ldr ip, _020E3170 ; =0x80808080
+ and r4, lr, r4
+ tst r4, r12
+ ldr r4, [r1, #0x0]
+ bne _020E3128
+ cmp r2, r4
+ bne _020E311C
+_020E3100:
+ ldr r2, [r0, #0x4]!
+ ldr r4, [r1, #0x4]!
+ add lr, r2, r3
+ tst lr, r12
+ bne _020E3128
+ cmp r2, r4
+ beq _020E3100
+_020E311C:
+ sub r0, r0, #0x1
+ sub r1, r1, #0x1
+ b _020E313C
+_020E3128:
+ ldrb r2, [r0, #0x0]
+ ldrb r3, [r1, #0x0]
+ subs r3, r2, r3
+ movne r0, r3
+ ldmneia sp!, {r4,pc}
+_020E313C:
+ cmp r2, #0x0
+ moveq r0, #0x0
+ ldmeqia sp!, {r4,pc}
+_020E3148:
+ ldrb r3, [r0, #0x1]!
+ ldrb r2, [r1, #0x1]!
+ subs r2, r3, r2
+ movne r0, r2
+ ldmneia sp!, {r4,pc}
+_020E315C: ; 0x020E315C
+ cmp r3, #0x0
+ bne _020E3148
+ mov r0, #0x0
+ ldmia sp!, {r4,pc}
+ .balign 4
+_020E316C: .word 0xFEFEFEFF
+_020E3170: .word 0x80808080
+
+ arm_func_start strncmp
+strncmp: ; 0x020E3174
+ cmp r2, #0x0
+ beq _020E31A0
+_020E317C:
+ ldrb r12, [r1], #0x1
+ ldrb r3, [r0], #0x1
+ cmp r3, r12
+ subne r0, r3, r12
+ bxne lr
+ cmp r3, #0x0
+ beq _020E31A0
+ subs r2, r2, #0x1
+ bne _020E317C
+_020E31A0:
+ mov r0, #0x0
+ bx lr
+
+ arm_func_start strchr
+strchr: ; 0x020E31A8
+ ldrsb r2, [r0], #0x1
+ mov r1, r1, lsl #0x18
+ mov r1, r1, asr #0x18
+ cmp r2, #0x0
+ beq _020E31D4
+_020E31BC:
+ cmp r2, r1
+ subeq r0, r0, #0x1
+ bxeq lr
+ ldrsb r2, [r0], #0x1
+ cmp r2, #0x0
+ bne _020E31BC
+_020E31D4:
+ cmp r1, #0x0
+ movne r0, #0x0
+ subeq r0, r0, #0x1
+ bx lr
+
+ arm_func_start strspn
+strspn: ; 0x020E31E4
+ stmdb sp!, {r4,lr}
+ sub sp, sp, #0x20
+ add r12, sp, #0x0
+ mov r3, #0x8
+ mov r2, #0x0
+_020E31F8:
+ strb r2, [r12, #0x0]
+ strb r2, [r12, #0x1]
+ strb r2, [r12, #0x2]
+ strb r2, [r12, #0x3]
+ add r12, r12, #0x4
+ subs r3, r3, #0x1
+ bne _020E31F8
+ ldrb r3, [r1, #0x0]
+ add r4, r1, #0x1
+ cmp r3, #0x0
+ beq _020E3254
+ add lr, sp, #0x0
+ mov r2, #0x1
+_020E322C:
+ and r12, r3, #0xff
+ and r1, r3, #0x7
+ mov r1, r2, lsl r1
+ ldrb r3, [lr, r12, asr #0x3]
+ and r1, r1, #0xff
+ orr r1, r3, r1
+ strb r1, [lr, r12, asr #0x3]
+ ldrb r3, [r4], #0x1
+ cmp r3, #0x0
+ bne _020E322C
+_020E3254:
+ ldrb r1, [r0, #0x0]
+ add r4, r0, #0x1
+ cmp r1, #0x0
+ beq _020E3294
+ add r12, sp, #0x0
+ mov r2, #0x1
+_020E326C:
+ and r3, r1, #0xff
+ and r1, r1, #0x7
+ mov r1, r2, lsl r1
+ ldrb r3, [r12, r3, asr #0x3]
+ and r1, r1, #0xff
+ tst r3, r1
+ bne _020E3294
+ ldrb r1, [r4], #0x1
+ cmp r1, #0x0
+ bne _020E326C
+_020E3294:
+ sub r0, r4, r0
+ sub r0, r0, #0x1
+ add sp, sp, #0x20
+ ldmia sp!, {r4,pc}
+
+ arm_func_start strstr
+strstr: ; 0x020E32A4
+ stmdb sp!, {r4,lr}
+ cmp r1, #0x0
+ ldrneb r2, [r1, #0x0]
+ cmpne r2, #0x0
+ ldmeqia sp!, {r4,pc}
+_020E32B8: ; 0x020E32B8
+ ldrb r3, [r0, #0x0]
+ add r4, r0, #0x1
+ cmp r3, #0x0
+ beq _020E3308
+_020E32C8:
+ cmp r3, r2
+ bne _020E32FC
+ mov lr, r4
+ add r12, r1, #0x1
+_020E32D8:
+ ldrb r3, [r12], #0x1
+ ldrb r0, [lr], #0x1
+ cmp r0, r3
+ bne _020E32F0
+ cmp r0, #0x0
+ bne _020E32D8
+_020E32F0:
+ cmp r3, #0x0
+ subeq r0, r4, #0x1
+ ldmeqia sp!, {r4,pc}
+_020E32FC:
+ ldrb r3, [r4], #0x1
+ cmp r3, #0x0
+ bne _020E32C8
+_020E3308:
+ mov r0, #0x0
+ ldmia sp!, {r4,pc}
+
+ arm_func_start __strtold
+__strtold: ; 0x020E3310
+ stmdb sp!, {r3-r11,lr}
+ sub sp, sp, #0xa8
+ ldr r4, [sp, #0xd0]
+ mov r10, #0x0
+ str r4, [sp, #0xd0]
+ str r0, [sp, #0x0]
+ add r6, sp, #0x80
+ mov r9, r1
+ mov r8, r2
+ str r3, [sp, #0x4]
+ mov r4, r10
+ str r10, [sp, #0x2c]
+ mov r5, #0x1
+ mov r0, #0x4
+_020E3348:
+ strh r10, [r6, #0x0]
+ strh r10, [r6, #0x2]
+ strh r10, [r6, #0x4]
+ strh r10, [r6, #0x6]
+ add r6, r6, #0x8
+ subs r0, r0, #0x1
+ bne _020E3348
+ mov r0, #0x0
+ str r0, [sp, #0x28]
+ strh r10, [r6, #0x0]
+ strh r10, [r6, #0x2]
+ ldr r2, [sp, #0x28]
+ ldr r1, [sp, #0xd0]
+ strh r10, [r6, #0x4]
+ str r2, [r1, #0x0]
+ mov r1, r2
+ mov r0, r8
+ str r1, [sp, #0x24]
+ str r1, [sp, #0x20]
+ str r1, [sp, #0x1c]
+ str r1, [sp, #0x18]
+ str r1, [sp, #0x10]
+ str r1, [sp, #0xc]
+ str r1, [sp, #0x8]
+ add r4, r4, #0x1
+ blx r9
+ mov r1, r0
+ ldr r7, _020E42F0 ; =0x02104439
+ add r0, sp, #0x4d
+ mov r6, #0x4
+_020E33C0:
+ ldrb r3, [r7, #0x0]
+ ldrb r2, [r7, #0x1]
+ add r7, r7, #0x2
+ strb r3, [r0, #0x0]
+ strb r2, [r0, #0x1]
+ add r0, r0, #0x2
+ subs r6, r6, #0x1
+ bne _020E33C0
+ ldrb r3, [r7, #0x0]
+ ldr r2, _020E42F4 ; =0x02104434
+ strb r3, [r0, #0x0]
+ ldrb r3, [r2, #0x1]
+ ldrb r0, [r2, #0x2]
+ ldrb r6, [r2, #0x0]
+ strb r3, [sp, #0x31]
+ strb r0, [sp, #0x32]
+ ldrb r3, [r2, #0x3]
+ ldrb r0, [r2, #0x4]
+ strb r6, [sp, #0x30]
+ strb r3, [sp, #0x33]
+ strb r0, [sp, #0x34]
+ b _020E4104
+_020E3418:
+ cmp r5, #0x100
+ bgt _020E3490
+ bge _020E3B98
+ cmp r5, #0x20
+ bgt _020E3474
+ bge _020E3A6C
+ cmp r5, #0x8
+ bgt _020E3468
+ cmp r5, #0x0
+ addge pc, pc, r5, lsl #0x2
+ b _020E4104
+_020E3444: ; 0x020E3444
+ b _020E4104
+_020E3448: ; 0x020E3448
+ b _020E34D4
+_020E344C: ; 0x020E344C
+ b _020E38B8
+_020E3450: ; 0x020E3450
+ b _020E4104
+_020E3454: ; 0x020E3454
+ b _020E3968
+_020E3458: ; 0x020E3458
+ b _020E4104
+_020E345C: ; 0x020E345C
+ b _020E4104
+_020E3460: ; 0x020E3460
+ b _020E4104
+_020E3464: ; 0x020E3464
+ b _020E3990
+_020E3468:
+ cmp r5, #0x10
+ beq _020E3A34
+ b _020E4104
+_020E3474:
+ cmp r5, #0x40
+ bgt _020E3484
+ beq _020E3AF8
+ b _020E4104
+_020E3484:
+ cmp r5, #0x80
+ beq _020E3B44
+ b _020E4104
+_020E3490:
+ cmp r5, #0x2000
+ bgt _020E34B8
+ bge _020E36EC
+ cmp r5, #0x200
+ bgt _020E34AC
+ beq _020E3BF8
+ b _020E4104
+_020E34AC:
+ cmp r5, #0x400
+ beq _020E3C20
+ b _020E4104
+_020E34B8:
+ cmp r5, #0x4000
+ bgt _020E34C8
+ beq _020E35F4
+ b _020E4104
+_020E34C8:
+ cmp r5, #0x8000
+ beq _020E3C98
+ b _020E4104
+_020E34D4:
+ cmp r1, #0x0
+ blt _020E34E4
+ cmp r1, #0x80
+ blt _020E34EC
+_020E34E4:
+ mov r0, #0x0
+ b _020E34FC
+_020E34EC:
+ mov r2, r1, lsl #0x1
+ ldr r0, _020E42F8 ; =0x0210430C
+ ldrh r0, [r0, r2]
+ and r0, r0, #0x100
+_020E34FC:
+ cmp r0, #0x0
+ beq _020E3528
+ mov r1, #0x0
+ mov r0, r8
+ mov r2, r1
+ blx r9
+ mov r1, r0
+ ldr r0, [sp, #0x2c]
+ add r0, r0, #0x1
+ str r0, [sp, #0x2c]
+ b _020E4104
+_020E3528:
+ cmp r1, #0x0
+ blt _020E3538
+ cmp r1, #0x80
+ blt _020E3540
+_020E3538:
+ mov r0, r1
+ b _020E3548
+_020E3540:
+ ldr r0, _020E42FC ; =0x0210428C
+ ldrb r0, [r0, r1]
+_020E3548:
+ cmp r0, #0x49
+ bgt _020E3574
+ bge _020E35AC
+ cmp r0, #0x2d
+ bgt _020E35EC
+ cmp r0, #0x2b
+ blt _020E35EC
+ beq _020E3588
+ cmp r0, #0x2d
+ beq _020E3580
+ b _020E35EC
+_020E3574:
+ cmp r0, #0x4e
+ beq _020E35CC
+ b _020E35EC
+_020E3580:
+ mov r0, #0x1
+ str r0, [sp, #0x28]
+_020E3588:
+ mov r1, #0x0
+ mov r0, r8
+ mov r2, r1
+ add r4, r4, #0x1
+ blx r9
+ mov r1, r0
+ mov r0, #0x1
+ str r0, [sp, #0x18]
+ b _020E4104
+_020E35AC:
+ add r4, r4, #0x1
+ mov r0, r8
+ mov r1, #0x0
+ mov r2, r1
+ blx r9
+ mov r1, r0
+ mov r5, #0x4000
+ b _020E4104
+_020E35CC:
+ add r4, r4, #0x1
+ mov r0, r8
+ mov r1, #0x0
+ mov r2, r1
+ blx r9
+ mov r1, r0
+ mov r5, #0x2000
+ b _020E4104
+_020E35EC:
+ mov r5, #0x2
+ b _020E4104
+_020E35F4:
+ mov r5, #0x1
+ add r7, sp, #0x4d
+ add r0, sp, #0x76
+ mov r6, #0x4
+_020E3604:
+ ldrb r3, [r7, #0x0]
+ ldrb r2, [r7, #0x1]
+ add r7, r7, #0x2
+ strb r3, [r0, #0x0]
+ strb r2, [r0, #0x1]
+ add r0, r0, #0x2
+ subs r6, r6, #0x1
+ bne _020E3604
+ ldrb r2, [r7, #0x0]
+ add r6, sp, #0x77
+ ldr r7, _020E42FC ; =0x0210428C
+ strb r2, [r0, #0x0]
+ b _020E3658
+_020E3638:
+ mov r1, #0x0
+ mov r0, r8
+ mov r2, r1
+ add r6, r6, #0x1
+ add r5, r5, #0x1
+ add r4, r4, #0x1
+ blx r9
+ mov r1, r0
+_020E3658:
+ cmp r5, #0x8
+ bge _020E3688
+ cmp r1, #0x0
+ blt _020E3670
+ cmp r1, #0x80
+ blt _020E3678
+_020E3670:
+ mov r2, r1
+ b _020E367C
+_020E3678:
+ ldrb r2, [r7, r1]
+_020E367C:
+ ldrsb r0, [r6, #0x0]
+ cmp r0, r2
+ beq _020E3638
+_020E3688:
+ cmp r5, #0x3
+ cmpne r5, #0x8
+ bne _020E36E4
+ ldr r0, [sp, #0x28]
+ cmp r0, #0x0
+ beq _020E36B8
+ ldr r1, _020E4300 ; =0x02106B74
+ mov r0, #0x0
+ ldr r1, [r1, #0x0]
+ bl _fsub
+ bl _f2d
+ b _020E36C4
+_020E36B8:
+ ldr r0, _020E4300 ; =0x02106B74
+ ldr r0, [r0, #0x0]
+ bl _f2d
+_020E36C4:
+ ldr r2, [sp, #0x2c]
+ add r3, r2, r5
+ ldr r2, [sp, #0x18]
+ add r3, r2, r3
+ ldr r2, [sp, #0x4]
+ add sp, sp, #0xa8
+ str r3, [r2, #0x0]
+ ldmia sp!, {r3-r11,pc}
+_020E36E4:
+ mov r5, #0x1000
+ b _020E4104
+_020E36EC:
+ ldrb r3, [sp, #0x30]
+ ldrb r0, [sp, #0x32]
+ ldrb r2, [sp, #0x31]
+ strb r3, [sp, #0x40]
+ strb r0, [sp, #0x42]
+ ldrb r3, [sp, #0x33]
+ ldrb r0, [sp, #0x34]
+ strb r2, [sp, #0x41]
+ mov r5, #0x1
+ strb r0, [sp, #0x44]
+ mov r6, #0x0
+ add r2, sp, #0x56
+ strb r3, [sp, #0x43]
+ mov r0, #0x8
+_020E3724:
+ strb r6, [r2, #0x0]
+ strb r6, [r2, #0x1]
+ strb r6, [r2, #0x2]
+ strb r6, [r2, #0x3]
+ add r2, r2, #0x4
+ subs r0, r0, #0x1
+ bne _020E3724
+ add r7, sp, #0x41
+ b _020E3768
+_020E3748:
+ mov r1, #0x0
+ mov r0, r8
+ mov r2, r1
+ add r7, r7, #0x1
+ add r5, r5, #0x1
+ add r4, r4, #0x1
+ blx r9
+ mov r1, r0
+_020E3768:
+ cmp r5, #0x4
+ bge _020E379C
+ cmp r1, #0x0
+ blt _020E3780
+ cmp r1, #0x80
+ blt _020E3788
+_020E3780:
+ mov r2, r1
+ b _020E3790
+_020E3788:
+ ldr r0, _020E42FC ; =0x0210428C
+ ldrb r2, [r0, r1]
+_020E3790:
+ ldrsb r0, [r7, #0x0]
+ cmp r0, r2
+ beq _020E3748
+_020E379C:
+ sub r0, r5, #0x3
+ cmp r0, #0x1
+ bhi _020E38B0
+ cmp r5, #0x4
+ bne _020E3854
+ ldr r7, _020E42F8 ; =0x0210430C
+ b _020E37DC
+_020E37B8:
+ add r0, sp, #0x56
+ strb r1, [r0, r6]
+ mov r1, #0x0
+ mov r0, r8
+ mov r2, r1
+ add r6, r6, #0x1
+ add r4, r4, #0x1
+ blx r9
+ mov r1, r0
+_020E37DC:
+ cmp r6, #0x20
+ bge _020E3844
+ cmp r1, #0x0
+ blt _020E37F4
+ cmp r1, #0x80
+ blt _020E37FC
+_020E37F4:
+ mov r0, #0x0
+ b _020E3808
+_020E37FC:
+ mov r0, r1, lsl #0x1
+ ldrh r0, [r7, r0]
+ and r0, r0, #0x8
+_020E3808:
+ cmp r0, #0x0
+ bne _020E37B8
+ cmp r1, #0x0
+ blt _020E3820
+ cmp r1, #0x80
+ blt _020E3828
+_020E3820:
+ mov r0, #0x0
+ b _020E3834
+_020E3828:
+ mov r0, r1, lsl #0x1
+ ldrh r0, [r7, r0]
+ and r0, r0, #0x1
+_020E3834:
+ cmp r0, #0x0
+ bne _020E37B8
+ cmp r1, #0x2e
+ beq _020E37B8
+_020E3844:
+ cmp r1, #0x29
+ movne r5, #0x1000
+ bne _020E4104
+ add r6, r6, #0x1
+_020E3854:
+ add r0, sp, #0x56
+ mov r1, #0x0
+ strb r1, [r0, r6]
+ ldr r1, [sp, #0x28]
+ cmp r1, #0x0
+ beq _020E3888
+ bl nan
+ mov r2, r0
+ mov r0, #0x0
+ mov r3, r1
+ mov r1, r0
+ bl _dsub
+_020E3884: ; 0x020E3884
+ b _020E388C
+_020E3888:
+ bl nan
+_020E388C:
+ ldr r2, [sp, #0x2c]
+ add r2, r2, r5
+ add r3, r6, r2
+ ldr r2, [sp, #0x18]
+ add r3, r2, r3
+ ldr r2, [sp, #0x4]
+ add sp, sp, #0xa8
+ str r3, [r2, #0x0]
+ ldmia sp!, {r3-r11,pc}
+_020E38B0:
+ mov r5, #0x1000
+ b _020E4104
+_020E38B8:
+ cmp r1, #0x2e
+ bne _020E38E0
+ mov r5, #0x10
+ add r4, r4, #0x1
+ mov r0, r8
+ mov r1, #0x0
+ mov r2, r1
+ blx r9
+ mov r1, r0
+ b _020E4104
+_020E38E0:
+ cmp r1, #0x0
+ blt _020E38F0
+ cmp r1, #0x80
+ blt _020E38F8
+_020E38F0:
+ mov r0, #0x0
+ b _020E3908
+_020E38F8:
+ mov r2, r1, lsl #0x1
+ ldr r0, _020E42F8 ; =0x0210430C
+ ldrh r0, [r0, r2]
+ and r0, r0, #0x8
+_020E3908:
+ cmp r0, #0x0
+ moveq r5, #0x1000
+ beq _020E4104
+ cmp r1, #0x30
+ bne _020E3960
+ add r4, r4, #0x1
+ mov r0, r8
+ mov r1, #0x0
+ mov r2, r1
+ blx r9
+ cmp r0, #0x0
+ mov r1, r0
+ blt _020E394C
+ cmp r0, #0x80
+ bge _020E394C
+ ldr r2, _020E42FC ; =0x0210428C
+ ldrb r0, [r2, r0]
+_020E394C:
+ cmp r0, #0x58
+ moveq r5, #0x8000
+ moveq r10, #0x1
+ movne r5, #0x4
+ b _020E4104
+_020E3960:
+ mov r5, #0x8
+ b _020E4104
+_020E3968:
+ cmp r1, #0x30
+ movne r5, #0x8
+ bne _020E4104
+ mov r1, #0x0
+ mov r0, r8
+ mov r2, r1
+ add r4, r4, #0x1
+ blx r9
+ mov r1, r0
+ b _020E4104
+_020E3990:
+ cmp r1, #0x0
+ blt _020E39A0
+ cmp r1, #0x80
+ blt _020E39A8
+_020E39A0:
+ mov r0, #0x0
+ b _020E39B8
+_020E39A8:
+ mov r2, r1, lsl #0x1
+ ldr r0, _020E42F8 ; =0x0210430C
+ ldrh r0, [r0, r2]
+ and r0, r0, #0x8
+_020E39B8:
+ cmp r0, #0x0
+ bne _020E39EC
+ cmp r1, #0x2e
+ movne r5, #0x40
+ bne _020E4104
+ mov r1, #0x0
+ mov r0, r8
+ mov r2, r1
+ mov r5, #0x20
+ add r4, r4, #0x1
+ blx r9
+ mov r1, r0
+ b _020E4104
+_020E39EC:
+ ldrb r2, [sp, #0x84]
+ cmp r2, #0x14
+ ldrcs r0, [sp, #0x1c]
+ addcs r0, r0, #0x1
+ strcs r0, [sp, #0x1c]
+ bhs _020E3A18
+ add r0, r2, #0x1
+ strb r0, [sp, #0x84]
+ add r0, sp, #0x80
+ add r0, r0, r2
+ strb r1, [r0, #0x5]
+_020E3A18:
+ add r4, r4, #0x1
+ mov r0, r8
+ mov r1, #0x0
+ mov r2, r1
+ blx r9
+ mov r1, r0
+ b _020E4104
+_020E3A34:
+ cmp r1, #0x0
+ blt _020E3A44
+ cmp r1, #0x80
+ blt _020E3A4C
+_020E3A44:
+ mov r0, #0x0
+ b _020E3A5C
+_020E3A4C:
+ mov r2, r1, lsl #0x1
+ ldr r0, _020E42F8 ; =0x0210430C
+ ldrh r0, [r0, r2]
+ and r0, r0, #0x8
+_020E3A5C:
+ cmp r0, #0x0
+ moveq r5, #0x1000
+ movne r5, #0x20
+ b _020E4104
+_020E3A6C:
+ cmp r1, #0x0
+ blt _020E3A7C
+ cmp r1, #0x80
+ blt _020E3A84
+_020E3A7C:
+ mov r0, #0x0
+ b _020E3A94
+_020E3A84:
+ mov r2, r1, lsl #0x1
+ ldr r0, _020E42F8 ; =0x0210430C
+ ldrh r0, [r0, r2]
+ and r0, r0, #0x8
+_020E3A94:
+ cmp r0, #0x0
+ moveq r5, #0x40
+ beq _020E4104
+ ldrb r3, [sp, #0x84]
+ cmp r3, #0x14
+ bhs _020E3ADC
+ cmp r1, #0x30
+ cmpeq r3, #0x0
+ beq _020E3AD0
+ ldrb r2, [sp, #0x84]
+ add r0, sp, #0x80
+ add r0, r0, r3
+ add r2, r2, #0x1
+ strb r2, [sp, #0x84]
+ strb r1, [r0, #0x5]
+_020E3AD0:
+ ldr r0, [sp, #0x1c]
+ sub r0, r0, #0x1
+ str r0, [sp, #0x1c]
+_020E3ADC:
+ add r4, r4, #0x1
+ mov r0, r8
+ mov r1, #0x0
+ mov r2, r1
+ blx r9
+ mov r1, r0
+ b _020E4104
+_020E3AF8:
+ cmp r1, #0x0
+ blt _020E3B08
+ cmp r1, #0x80
+ blt _020E3B10
+_020E3B08:
+ mov r0, r1
+ b _020E3B18
+_020E3B10:
+ ldr r0, _020E42FC ; =0x0210428C
+ ldrb r0, [r0, r1]
+_020E3B18:
+ cmp r0, #0x45
+ movne r5, #0x800
+ bne _020E4104
+ mov r1, #0x0
+ mov r0, r8
+ mov r2, r1
+ mov r5, #0x80
+ add r4, r4, #0x1
+ blx r9
+ mov r1, r0
+ b _020E4104
+_020E3B44:
+ cmp r1, #0x2b
+ bne _020E3B68
+ add r4, r4, #0x1
+ mov r0, r8
+ mov r1, #0x0
+ mov r2, r1
+ blx r9
+ mov r1, r0
+ b _020E3B90
+_020E3B68:
+ cmp r1, #0x2d
+ bne _020E3B90
+ mov r1, #0x0
+ mov r0, r8
+ mov r2, r1
+ add r4, r4, #0x1
+ blx r9
+ mov r1, r0
+ mov r0, #0x1
+ str r0, [sp, #0x24]
+_020E3B90:
+ mov r5, #0x100
+ b _020E4104
+_020E3B98:
+ cmp r1, #0x0
+ blt _020E3BA8
+ cmp r1, #0x80
+ blt _020E3BB0
+_020E3BA8:
+ mov r0, #0x0
+ b _020E3BC0
+_020E3BB0:
+ mov r2, r1, lsl #0x1
+ ldr r0, _020E42F8 ; =0x0210430C
+ ldrh r0, [r0, r2]
+ and r0, r0, #0x8
+_020E3BC0:
+ cmp r0, #0x0
+ moveq r5, #0x1000
+ beq _020E4104
+ cmp r1, #0x30
+ movne r5, #0x400
+ bne _020E4104
+ mov r1, #0x0
+ mov r0, r8
+ mov r2, r1
+ mov r5, #0x200
+ add r4, r4, #0x1
+ blx r9
+ mov r1, r0
+ b _020E4104
+_020E3BF8:
+ cmp r1, #0x30
+ movne r5, #0x400
+ bne _020E4104
+ mov r1, #0x0
+ mov r0, r8
+ mov r2, r1
+ add r4, r4, #0x1
+ blx r9
+ mov r1, r0
+ b _020E4104
+_020E3C20:
+ cmp r1, #0x0
+ blt _020E3C30
+ cmp r1, #0x80
+ blt _020E3C38
+_020E3C30:
+ mov r0, #0x0
+ b _020E3C48
+_020E3C38:
+ mov r2, r1, lsl #0x1
+ ldr r0, _020E42F8 ; =0x0210430C
+ ldrh r0, [r0, r2]
+ and r0, r0, #0x8
+_020E3C48:
+ cmp r0, #0x0
+ moveq r5, #0x800
+ beq _020E4104
+ ldr r0, [sp, #0x20]
+ sub r2, r1, #0x30
+ mov r1, #0xa
+ mla r0, r1, r0, r2
+ ldr r1, _020E4304 ; =0x00007FFF
+ str r0, [sp, #0x20]
+ cmp r0, r1
+ ldrgt r0, [sp, #0xd0]
+ movgt r1, #0x1
+ strgt r1, [r0, #0x0]
+ mov r1, #0x0
+ mov r0, r8
+ mov r2, r1
+ add r4, r4, #0x1
+ blx r9
+ mov r1, r0
+ b _020E4104
+_020E3C98:
+ cmp r10, #0x20
+ bgt _020E3CE8
+ bge _020E3FBC
+ cmp r10, #0x8
+ bgt _020E3CDC
+ cmp r10, #0x0
+ addge pc, pc, r10, lsl #0x2
+ b _020E4104
+_020E3CB8: ; 0x020E3CB8
+ b _020E4104
+_020E3CBC: ; 0x020E3CBC
+ b _020E3D0C
+_020E3CC0: ; 0x020E3CC0
+ b _020E3D5C
+_020E3CC4: ; 0x020E3CC4
+ b _020E4104
+_020E3CC8: ; 0x020E3CC8
+ b _020E3D84
+_020E3CCC: ; 0x020E3CCC
+ b _020E4104
+_020E3CD0: ; 0x020E3CD0
+ b _020E4104
+_020E3CD4: ; 0x020E3CD4
+ b _020E4104
+_020E3CD8: ; 0x020E3CD8
+ b _020E3E94
+_020E3CDC:
+ cmp r10, #0x10
+ beq _020E3F70
+ b _020E4104
+_020E3CE8:
+ cmp r10, #0x80
+ bgt _020E3D00
+ bge _020E4064
+ cmp r10, #0x40
+ beq _020E4004
+ b _020E4104
+_020E3D00:
+ cmp r10, #0x100
+ beq _020E408C
+ b _020E4104
+_020E3D0C:
+ mov r1, #0x0
+ add r0, sp, #0x45
+ str r0, [sp, #0x14]
+ strb r1, [r0, #0x0]
+ strb r1, [r0, #0x1]
+ strb r1, [r0, #0x2]
+ strb r1, [r0, #0x3]
+ strb r1, [r0, #0x4]
+ strb r1, [r0, #0x5]
+ strb r1, [r0, #0x6]
+ strb r1, [r0, #0x7]
+ mov r0, r8
+ mov r2, r1
+ str r1, [sp, #0x8]
+ mov r11, r1
+ mov r10, #0x2
+ add r4, r4, #0x1
+ blx r9
+ mov r1, r0
+ b _020E4104
+_020E3D5C:
+ cmp r1, #0x30
+ movne r10, #0x4
+ bne _020E4104
+ mov r1, #0x0
+ mov r0, r8
+ mov r2, r1
+ add r4, r4, #0x1
+ blx r9
+ mov r1, r0
+ b _020E4104
+_020E3D84:
+ cmp r1, #0x0
+ blt _020E3D94
+ cmp r1, #0x80
+ blt _020E3D9C
+_020E3D94:
+ mov r0, #0x0
+ b _020E3DAC
+_020E3D9C:
+ mov r2, r1, lsl #0x1
+ ldr r0, _020E42F8 ; =0x0210430C
+ ldrh r0, [r0, r2]
+ and r0, r0, #0x400
+_020E3DAC:
+ cmp r0, #0x0
+ bne _020E3DE0
+ cmp r1, #0x2e
+ movne r10, #0x10
+ bne _020E4104
+ mov r1, #0x0
+ mov r0, r8
+ mov r2, r1
+ mov r10, #0x8
+ add r4, r4, #0x1
+ blx r9
+ mov r1, r0
+ b _020E4104
+_020E3DE0:
+ ldr r2, [sp, #0x8]
+ mov r0, #0xe
+ cmp r2, r0
+ bhs _020E3E78
+ mov r0, r2
+ add r0, r0, #0x1
+ str r0, [sp, #0x8]
+ ldr r0, [sp, #0x14]
+ add r2, r11, r11, lsr #0x1f
+ cmp r1, #0x0
+ ldrb r0, [r0, r2, asr #0x1]
+ blt _020E3E20
+ cmp r1, #0x80
+ bge _020E3E20
+ ldr r2, _020E42FC ; =0x0210428C
+ ldrb r1, [r2, r1]
+_020E3E20:
+ cmp r1, #0x41
+ subge r1, r1, #0x37
+ sublt r1, r1, #0x30
+ mov r2, r11, lsr #0x1f
+ and r3, r1, #0xff
+ rsb r1, r2, r11, lsl #0x1f
+ adds r1, r2, r1, ror #0x1f
+ moveq r1, r3, lsl #0x4
+ add r2, r11, r11, lsr #0x1f
+ orrne r0, r0, r3
+ andeq r1, r1, #0xff
+ orreq r0, r0, r1
+ ldr r1, [sp, #0x14]
+ add r11, r11, #0x1
+ strb r0, [r1, r2, asr #0x1]
+ mov r1, #0x0
+ mov r0, r8
+ mov r2, r1
+ add r4, r4, #0x1
+ blx r9
+ mov r1, r0
+ b _020E4104
+_020E3E78:
+ add r4, r4, #0x1
+ mov r0, r8
+ mov r1, #0x0
+ mov r2, r1
+ blx r9
+ mov r1, r0
+ b _020E4104
+_020E3E94:
+ cmp r1, #0x0
+ blt _020E3EA4
+ cmp r1, #0x80
+ blt _020E3EAC
+_020E3EA4:
+ mov r0, #0x0
+ b _020E3EBC
+_020E3EAC:
+ mov r2, r1, lsl #0x1
+ ldr r0, _020E42F8 ; =0x0210430C
+ ldrh r0, [r0, r2]
+ and r0, r0, #0x400
+_020E3EBC:
+ cmp r0, #0x0
+ moveq r10, #0x10
+ beq _020E4104
+ ldr r2, [sp, #0x8]
+ mov r0, #0xe
+ cmp r2, r0
+ bhs _020E3F54
+ ldr r0, [sp, #0x14]
+ add r2, r11, r11, lsr #0x1f
+ cmp r1, #0x0
+ ldrb r0, [r0, r2, asr #0x1]
+ blt _020E3EFC
+ cmp r1, #0x80
+ bge _020E3EFC
+ ldr r2, _020E42FC ; =0x0210428C
+ ldrb r1, [r2, r1]
+_020E3EFC:
+ cmp r1, #0x41
+ subge r1, r1, #0x37
+ sublt r1, r1, #0x30
+ mov r2, r11, lsr #0x1f
+ and r3, r1, #0xff
+ rsb r1, r2, r11, lsl #0x1f
+ adds r1, r2, r1, ror #0x1f
+ moveq r1, r3, lsl #0x4
+ add r2, r11, r11, lsr #0x1f
+ orrne r0, r0, r3
+ andeq r1, r1, #0xff
+ orreq r0, r0, r1
+ ldr r1, [sp, #0x14]
+ add r11, r11, #0x1
+ strb r0, [r1, r2, asr #0x1]
+ mov r1, #0x0
+ mov r0, r8
+ mov r2, r1
+ add r4, r4, #0x1
+ blx r9
+ mov r1, r0
+ b _020E4104
+_020E3F54:
+ add r4, r4, #0x1
+ mov r0, r8
+ mov r1, #0x0
+ mov r2, r1
+ blx r9
+ mov r1, r0
+ b _020E4104
+_020E3F70:
+ cmp r1, #0x0
+ blt _020E3F80
+ cmp r1, #0x80
+ blt _020E3F88
+_020E3F80:
+ mov r0, r1
+ b _020E3F90
+_020E3F88:
+ ldr r0, _020E42FC ; =0x0210428C
+ ldrb r0, [r0, r1]
+_020E3F90:
+ cmp r0, #0x50
+ movne r5, #0x800
+ bne _020E4104
+ mov r1, #0x0
+ mov r0, r8
+ mov r2, r1
+ mov r10, #0x20
+ add r4, r4, #0x1
+ blx r9
+ mov r1, r0
+ b _020E4104
+_020E3FBC:
+ cmp r1, #0x2d
+ moveq r0, #0x1
+ streq r0, [sp, #0xc]
+ beq _020E3FE4
+ cmp r1, #0x2b
+ beq _020E3FE4
+ mov r0, r8
+ mov r2, #0x1
+ blx r9
+ sub r4, r4, #0x1
+_020E3FE4:
+ mov r10, #0x40
+ add r4, r4, #0x1
+ mov r0, r8
+ mov r1, #0x0
+ mov r2, r1
+ blx r9
+ mov r1, r0
+ b _020E4104
+_020E4004:
+ cmp r1, #0x0
+ blt _020E4014
+ cmp r1, #0x80
+ blt _020E401C
+_020E4014:
+ mov r0, #0x0
+ b _020E402C
+_020E401C:
+ mov r2, r1, lsl #0x1
+ ldr r0, _020E42F8 ; =0x0210430C
+ ldrh r0, [r0, r2]
+ and r0, r0, #0x8
+_020E402C:
+ cmp r0, #0x0
+ moveq r5, #0x1000
+ beq _020E4104
+ cmp r1, #0x30
+ movne r10, #0x100
+ bne _020E4104
+ mov r1, #0x0
+ mov r0, r8
+ mov r2, r1
+ mov r10, #0x80
+ add r4, r4, #0x1
+ blx r9
+ mov r1, r0
+ b _020E4104
+_020E4064:
+ cmp r1, #0x30
+ movne r10, #0x100
+ bne _020E4104
+ mov r1, #0x0
+ mov r0, r8
+ mov r2, r1
+ add r4, r4, #0x1
+ blx r9
+ mov r1, r0
+ b _020E4104
+_020E408C:
+ cmp r1, #0x0
+ blt _020E409C
+ cmp r1, #0x80
+ blt _020E40A4
+_020E409C:
+ mov r0, #0x0
+ b _020E40B4
+_020E40A4:
+ mov r2, r1, lsl #0x1
+ ldr r0, _020E42F8 ; =0x0210430C
+ ldrh r0, [r0, r2]
+ and r0, r0, #0x8
+_020E40B4:
+ cmp r0, #0x0
+ moveq r5, #0x800
+ beq _020E4104
+ ldr r0, [sp, #0x10]
+ sub r2, r1, #0x30
+ mov r1, #0xa
+ mla r0, r1, r0, r2
+ str r0, [sp, #0x10]
+ ldr r1, _020E4304 ; =0x00007FFF
+ ldr r0, [sp, #0x20]
+ add r4, r4, #0x1
+ cmp r0, r1
+ ldrgt r0, [sp, #0xd0]
+ movgt r1, #0x1
+ strgt r1, [r0, #0x0]
+ mov r1, #0x0
+ mov r0, r8
+ mov r2, r1
+ blx r9
+ mov r1, r0
+_020E4104:
+ ldr r0, [sp, #0x0]
+ cmp r4, r0
+ bgt _020E4124
+ mvn r0, #0x0
+ cmp r1, r0
+ beq _020E4124
+ tst r5, #0x1800
+ beq _020E3418
+_020E4124:
+ cmp r5, #0x8000
+ beq _020E4140
+ ldr r0, _020E4308 ; =0x00000E2C
+ tst r5, r0
+ moveq r0, #0x1
+ movne r0, #0x0
+ b _020E4164
+_020E4140:
+ sub r0, r4, #0x1
+ cmp r0, #0x2
+ ble _020E4158
+ ldr r0, _020E430C ; =0x0000018E
+ tst r10, r0
+ bne _020E4160
+_020E4158:
+ mov r0, #0x1
+ b _020E4164
+_020E4160:
+ mov r0, #0x0
+_020E4164:
+ cmp r0, #0x0
+ movne r2, #0x0
+ ldrne r0, [sp, #0x4]
+ bne _020E4184
+ ldr r0, [sp, #0x2c]
+ sub r2, r4, #0x1
+ add r2, r2, r0
+ ldr r0, [sp, #0x4]
+_020E4184:
+ str r2, [r0, #0x0]
+ mov r0, r8
+ mov r2, #0x1
+ blx r9
+ cmp r10, #0x0
+ bne _020E4388
+ ldr r0, [sp, #0x24]
+ ldrb r2, [sp, #0x84]
+ cmp r0, #0x0
+ ldrne r0, [sp, #0x20]
+ rsbne r0, r0, #0x0
+ strne r0, [sp, #0x20]
+ add r0, sp, #0x85
+ add r1, r0, r2
+ b _020E41CC
+_020E41C0:
+ ldr r0, [sp, #0x1c]
+ add r0, r0, #0x1
+ str r0, [sp, #0x1c]
+_020E41CC:
+ cmp r2, #0x0
+ sub r2, r2, #0x1
+ beq _020E41E4
+ ldrb r0, [r1, #-0x1]!
+ cmp r0, #0x30
+ beq _020E41C0
+_020E41E4:
+ add r0, r2, #0x1
+ strb r0, [sp, #0x84]
+ ands r2, r0, #0xff
+ bne _020E4208
+ add r1, r2, #0x1
+ strb r1, [sp, #0x84]
+ add r0, sp, #0x85
+ mov r1, #0x30
+ strb r1, [r0, r2]
+_020E4208:
+ ldr r1, [sp, #0x20]
+ ldr r0, [sp, #0x1c]
+ mov r2, #0x8000
+ add r0, r1, r0
+ rsb r2, r2, #0x0
+ str r0, [sp, #0x20]
+ cmp r0, r2
+ blt _020E4230
+ cmp r0, r2, lsr #0x11
+ ble _020E423C
+_020E4230:
+ ldr r0, [sp, #0xd0]
+ mov r1, #0x1
+ str r1, [r0, #0x0]
+_020E423C:
+ ldr r0, [sp, #0xd0]
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ beq _020E4298
+ ldr r0, [sp, #0x24]
+ cmp r0, #0x0
+ movne r0, #0x0
+ addne sp, sp, #0xa8
+ movne r1, r0
+ ldmneia sp!, {r3-r11,pc}
+_020E4264: ; 0x020E4264
+ ldr r0, [sp, #0x28]
+ cmp r0, #0x0
+ ldreq r1, _020E4310 ; =0x02106B7C
+ addeq sp, sp, #0xa8
+ ldmeqia r1, {r0-r1}
+ ldmeqia sp!, {r3-r11,pc}
+_020E427C: ; 0x020E427C
+ ldr r1, _020E4310 ; =0x02106B7C
+ mov r0, #0x0
+ ldmia r1, {r2-r3}
+ mov r1, r0
+ bl _dsub
+ add sp, sp, #0xa8
+ ldmia sp!, {r3-r11,pc}
+_020E4298:
+ ldr r1, [sp, #0x20]
+ add r0, sp, #0x80
+ strh r1, [sp, #0x82]
+ bl __dec2num
+ mov r4, r0
+ mov r6, r1
+ mov r0, #0x0
+ mov r1, r0
+ mov r2, r4
+ mov r3, r6
+ bl _dneq
+ beq _020E4318
+ mov r0, r4
+ mov r1, r6
+ mov r2, #0x0
+ mov r3, #0x100000
+ bl _dls
+ bhs _020E4318
+ ldr r0, [sp, #0xd0]
+ mov r1, #0x1
+ str r1, [r0, #0x0]
+ b _020E4344
+ .balign 4
+_020E42F0: .word 0x02104439
+_020E42F4: .word 0x02104434
+_020E42F8: .word 0x0210430C
+_020E42FC: .word 0x0210428C
+_020E4300: .word 0x02106B74
+_020E4304: .word 0x00007FFF
+_020E4308: .word 0x00000E2C
+_020E430C: .word 0x0000018E
+_020E4310: .word 0x02106B7C
+_020E4314: .word 0x7FEFFFFF
+_020E4318:
+ ldr r3, _020E4314 ; =0x7FEFFFFF
+ mov r0, r4
+ mov r1, r6
+ mvn r2, #0x0
+ bl _dgr
+ bls _020E4344
+ ldr r0, [sp, #0xd0]
+ mov r2, #0x1
+ ldr r1, _020E4310 ; =0x02106B7C
+ str r2, [r0, #0x0]
+ ldmia r1, {r4,r6}
+_020E4344:
+ ldr r0, [sp, #0x28]
+ cmp r0, #0x0
+ beq _020E4378
+ ldr r0, _020E4308 ; =0x00000E2C
+ tst r5, r0
+ beq _020E4378
+ mov r0, #0x0
+ mov r1, r0
+ mov r2, r4
+ mov r3, r6
+ bl _dsub
+ mov r4, r0
+ mov r6, r1
+_020E4378:
+ add sp, sp, #0xa8
+ mov r0, r4
+ mov r1, r6
+ ldmia sp!, {r3-r11,pc}
+_020E4388:
+ ldr r0, [sp, #0xc]
+ add r4, sp, #0x38
+ cmp r0, #0x0
+ ldrne r0, [sp, #0x10]
+ ldrb r3, [sp, #0x45]
+ rsbne r0, r0, #0x0
+ strne r0, [sp, #0x10]
+ ldr r1, [sp, #0x10]
+ ldr r0, [sp, #0x8]
+ mov r2, #0x0
+ add r0, r1, r0, lsl #0x2
+ str r0, [sp, #0x10]
+ mov r1, #0x80
+ b _020E43D0
+_020E43C0:
+ ldr r0, [sp, #0x10]
+ add r2, r2, #0x1
+ sub r0, r0, #0x1
+ str r0, [sp, #0x10]
+_020E43D0:
+ cmp r2, #0x4
+ bhs _020E43E0
+ tst r3, r1, asr r2
+ beq _020E43C0
+_020E43E0:
+ adds r5, r2, #0x1
+ beq _020E442C
+ add r0, sp, #0x4c
+ add r3, sp, #0x45
+ str r0, [sp, #0x14]
+ mov r1, #0x0
+ cmp r0, r3
+ blo _020E442C
+ rsb r6, r5, #0x8
+_020E4404:
+ ldr r0, [sp, #0x14]
+ ldrb r0, [r0, #0x0]
+ orr r2, r1, r0, lsl r5
+ mov r1, r0, asr r6
+ ldr r0, [sp, #0x14]
+ and r1, r1, #0xff
+ strb r2, [r0], #-0x1
+ str r0, [sp, #0x14]
+ cmp r0, r3
+ bhs _020E4404
+_020E442C:
+ mov r2, #0x0
+ mov r6, r2
+ strb r2, [r4, #0x0]
+ strb r2, [r4, #0x1]
+ strb r2, [r4, #0x2]
+ strb r2, [r4, #0x3]
+ strb r2, [r4, #0x4]
+ strb r2, [r4, #0x5]
+ strb r2, [r4, #0x6]
+ strb r2, [r4, #0x7]
+ mov r3, #0xc
+ mov r7, #0x1
+ mov r0, #0xff
+ add r1, sp, #0x45
+_020E4464:
+ add r5, r2, #0x8
+ cmp r5, #0x34
+ ldrb r5, [r1, r6]
+ rsbhi r8, r2, #0x34
+ and r11, r3, #0x7
+ andhi r5, r5, r0, lsl r8
+ andhi r5, r5, #0xff
+ mov r8, r5, asr r11
+ and r9, r8, #0xff
+ ldrb r10, [r4, r7]
+ rsb r8, r11, #0x8
+ mov r5, r5, lsl r8
+ orr r9, r10, r9
+ strb r9, [r4, r7]
+ add r7, r7, #0x1
+ add r2, r2, #0x8
+ ldrb r8, [r4, r7]
+ and r5, r5, #0xff
+ cmp r2, #0x34
+ orr r5, r8, r5
+ strb r5, [r4, r7]
+ add r3, r3, #0x8
+ add r6, r6, #0x1
+ blo _020E4464
+ ldr r0, [sp, #0x10]
+ mov r1, #0x800
+ add r0, r0, #0xfe
+ add r2, r0, #0x300
+ rsb r1, r1, #0x0
+ tst r2, r1
+ beq _020E44FC
+ ldr r2, [sp, #0xd0]
+ mov r3, #0x1
+ mov r0, #0x0
+ add sp, sp, #0xa8
+ mov r1, r0
+ str r3, [r2, #0x0]
+ ldmia sp!, {r3-r11,pc}
+_020E44FC:
+ ldrb r0, [r4, #0x1]
+ mov r2, r2, lsl #0x15
+ ldrb r1, [r4, #0x0]
+ orr r0, r0, r2, lsr #0x11
+ strb r0, [r4, #0x1]
+ ldr r0, [sp, #0x28]
+ orr r1, r1, r2, lsr #0x19
+ cmp r0, #0x0
+ andne r0, r1, #0xff
+ strb r1, [r4, #0x0]
+ orrne r0, r0, #0x80
+ strneb r0, [r4, #0x0]
+ mov r3, #0x0
+_020E4530:
+ rsb r1, r3, #0x7
+ ldrb r2, [r4, r3]
+ ldrb r0, [r4, r1]
+ strb r0, [r4, r3]
+ add r3, r3, #0x1
+ strb r2, [r4, r1]
+ cmp r3, #0x4
+ blt _020E4530
+ ldmia r4, {r0-r1}
+ add sp, sp, #0xa8
+ ldmia sp!, {r3-r11,pc}
+
+ arm_func_start strtold
+strtold: ; 0x020E455C
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0x14
+ mov r7, r0
+ mov r0, #0x0
+ mov r6, r1
+ str r0, [sp, #0x8]
+ add r4, sp, #0xc
+ str r7, [sp, #0x4]
+ ldr r1, _020E4630 ; =__StringRead
+ add r2, sp, #0x4
+ add r3, sp, #0x10
+ sub r0, r0, #0x80000001
+ str r4, [sp, #0x0]
+ bl __strtold
+ mov r5, r1
+ mov r4, r0
+ cmp r6, #0x0
+ ldrne r0, [sp, #0x10]
+ mov r1, r5
+ addne r0, r7, r0
+ strne r0, [r6, #0x0]
+ mov r0, r4
+ bl fabs
+ ldr r2, [sp, #0xc]
+ mov r6, r0
+ mov r7, r1
+ cmp r2, #0x0
+ bne _020E4614
+ mov r0, #0x0
+ mov r1, r0
+ mov r2, r4
+ mov r3, r5
+ bl _dneq
+ beq _020E4620
+ mov r0, r6
+ mov r1, r7
+ mov r2, #0x0
+ mov r3, #0x100000
+ bl _dls
+ blo _020E4614
+ ldr r3, _020E4634 ; =0x7FEFFFFF
+ mov r0, r6
+ mov r1, r7
+ mvn r2, #0x0
+ bl _dgr
+ bls _020E4620
+_020E4614:
+ ldr r0, _020E4638 ; =0x021D74A8
+ mov r1, #0x22
+ str r1, [r0, #0x0]
+_020E4620:
+ mov r0, r4
+ mov r1, r5
+ add sp, sp, #0x14
+ ldmia sp!, {r4-r7,pc}
+ .balign 4
+_020E4630: .word __StringRead
+_020E4634: .word 0x7FEFFFFF
+_020E4638: .word 0x021D74A8
+
+ arm_func_start atod
+atod: ; 0x020E463C
+ ldr ip, _020E4648 ; =strtold
+ mov r1, #0x0
+ bx r12
+ .balign 4
+_020E4648: .word strtold
+
+ arm_func_start __strtoul
+__strtoul:
+ stmdb sp!, {r4-r11,lr}
+ sub sp, sp, #0xc
+ ldr r4, [sp, #0x38]
+ movs r9, r0
+ ldr r0, [sp, #0x34]
+ str r4, [sp, #0x38]
+ mov r4, #0x0
+ str r0, [sp, #0x34]
+ ldr r0, [sp, #0x38]
+ str r1, [sp, #0x0]
+ str r4, [r0, #0x0]
+ mov r0, r4
+ str r0, [sp, #0x4]
+ ldr r0, [sp, #0x34]
+ mov r1, r4
+ str r1, [r0, #0x0]
+ ldr r0, [sp, #0x30]
+ str r4, [sp, #0x8]
+ mov r8, r2
+ mov r7, r3
+ mov r5, r4
+ mov r10, r4
+ str r0, [sp, #0x30]
+ mov r4, #0x1
+ bmi _020E46CC
+ cmp r9, #0x1
+ beq _020E46CC
+ cmp r9, #0x24
+ bgt _020E46CC
+ ldr r0, [sp, #0x0]
+ cmp r0, #0x1
+ bge _020E46D4
+_020E46CC:
+ mov r4, #0x40
+ b _020E46F0
+_020E46D4:
+ ldr r1, [sp, #0x8]
+ mov r0, r7
+ mov r3, r1
+ mov r2, r1
+ add r5, r3, #0x1
+ blx r8
+ mov r6, r0
+_020E46F0:
+ cmp r9, #0x0
+ beq _020E4708
+ mov r1, r9
+ mvn r0, #0x0
+ bl _u32_div_f
+ str r0, [sp, #0x4]
+_020E4708:
+ mvn r11, #0x0
+ b _020E49C8
+_020E4710:
+ cmp r4, #0x8
+ bgt _020E4748
+ cmp r4, #0x0
+ addge pc, pc, r4, lsl #0x2
+ b _020E49C8
+_020E4724: ; 0x020E4724
+ b _020E49C8
+_020E4728: ; 0x020E4728
+ b _020E4754
+_020E472C: ; 0x020E472C
+ b _020E4800
+_020E4730: ; 0x020E4730
+ b _020E49C8
+_020E4734: ; 0x020E4734
+ b _020E483C
+_020E4738: ; 0x020E4738
+ b _020E49C8
+_020E473C: ; 0x020E473C
+ b _020E49C8
+_020E4740: ; 0x020E4740
+ b _020E49C8
+_020E4744: ; 0x020E4744
+ b _020E487C
+_020E4748:
+ cmp r4, #0x10
+ beq _020E487C
+ b _020E49C8
+_020E4754:
+ cmp r6, #0x0
+ blt _020E4764
+ cmp r6, #0x80
+ blt _020E476C
+_020E4764:
+ mov r0, #0x0
+ b _020E477C
+_020E476C:
+ ldr r0, _020E4A2C ; =0x0210430C
+ mov r1, r6, lsl #0x1
+ ldrh r0, [r0, r1]
+ and r0, r0, #0x100
+_020E477C:
+ cmp r0, #0x0
+ beq _020E47A8
+ mov r1, #0x0
+ mov r0, r7
+ mov r2, r1
+ blx r8
+ mov r6, r0
+ ldr r0, [sp, #0x8]
+ add r0, r0, #0x1
+ str r0, [sp, #0x8]
+ b _020E49C8
+_020E47A8:
+ cmp r6, #0x2b
+ bne _020E47CC
+ mov r1, #0x0
+ mov r0, r7
+ mov r2, r1
+ add r5, r5, #0x1
+ blx r8
+ mov r6, r0
+ b _020E47F8
+_020E47CC:
+ cmp r6, #0x2d
+ bne _020E47F8
+ mov r1, #0x0
+ mov r0, r7
+ mov r2, r1
+ add r5, r5, #0x1
+ blx r8
+ mov r6, r0
+ ldr r0, [sp, #0x34]
+ mov r1, #0x1
+ str r1, [r0, #0x0]
+_020E47F8:
+ mov r4, #0x2
+ b _020E49C8
+_020E4800:
+ cmp r9, #0x0
+ cmpne r9, #0x10
+ bne _020E4834
+ cmp r6, #0x30
+ bne _020E4834
+ mov r1, #0x0
+ mov r0, r7
+ mov r2, r1
+ mov r4, #0x4
+ add r5, r5, #0x1
+ blx r8
+ mov r6, r0
+ b _020E49C8
+_020E4834:
+ mov r4, #0x8
+ b _020E49C8
+_020E483C:
+ cmp r6, #0x58
+ cmpne r6, #0x78
+ bne _020E486C
+ mov r1, #0x0
+ mov r0, r7
+ mov r2, r1
+ mov r9, #0x10
+ mov r4, #0x8
+ add r5, r5, #0x1
+ blx r8
+ mov r6, r0
+ b _020E49C8
+_020E486C:
+ cmp r9, #0x0
+ moveq r9, #0x8
+ mov r4, #0x10
+ b _020E49C8
+_020E487C:
+ ldr r0, [sp, #0x4]
+ cmp r9, #0x0
+ moveq r9, #0xa
+ cmp r0, #0x0
+ bne _020E48A0
+ mov r0, r11
+ mov r1, r9
+ bl _u32_div_f
+ str r0, [sp, #0x4]
+_020E48A0:
+ cmp r6, #0x0
+ blt _020E48B0
+ cmp r6, #0x80
+ blt _020E48B8
+_020E48B0:
+ mov r0, #0x0
+ b _020E48C8
+_020E48B8:
+ ldr r0, _020E4A2C ; =0x0210430C
+ mov r1, r6, lsl #0x1
+ ldrh r0, [r0, r1]
+ and r0, r0, #0x8
+_020E48C8:
+ cmp r0, #0x0
+ beq _020E48F0
+ sub r6, r6, #0x30
+ cmp r6, r9
+ blt _020E4978
+ cmp r4, #0x10
+ moveq r4, #0x20
+ movne r4, #0x40
+ add r6, r6, #0x30
+ b _020E49C8
+_020E48F0:
+ cmp r6, #0x0
+ blt _020E4900
+ cmp r6, #0x80
+ blt _020E4908
+_020E4900:
+ mov r0, #0x0
+ b _020E4918
+_020E4908:
+ ldr r0, _020E4A2C ; =0x0210430C
+ mov r1, r6, lsl #0x1
+ ldrh r0, [r0, r1]
+ and r0, r0, #0x1
+_020E4918:
+ cmp r0, #0x0
+ beq _020E494C
+ cmp r6, #0x0
+ blt _020E4930
+ cmp r6, #0x80
+ blt _020E4938
+_020E4930:
+ mov r0, r6
+ b _020E4940
+_020E4938:
+ ldr r0, _020E4A30 ; =0x0210428C
+ ldrb r0, [r0, r6]
+_020E4940:
+ sub r0, r0, #0x37
+ cmp r0, r9
+ blt _020E495C
+_020E494C:
+ cmp r4, #0x10
+ moveq r4, #0x20
+ movne r4, #0x40
+ b _020E49C8
+_020E495C:
+ cmp r6, #0x0
+ blt _020E4974
+ cmp r6, #0x80
+ bge _020E4974
+ ldr r0, _020E4A30 ; =0x0210428C
+ ldrb r6, [r0, r6]
+_020E4974:
+ sub r6, r6, #0x37
+_020E4978:
+ ldr r0, [sp, #0x4]
+ mov r4, #0x10
+ cmp r10, r0
+ ldrhi r0, [sp, #0x38]
+ movhi r1, #0x1
+ strhi r1, [r0, #0x0]
+ mul r0, r10, r9
+ mov r10, r0
+ sub r0, r11, r0
+ cmp r6, r0
+ ldrhi r0, [sp, #0x38]
+ movhi r1, #0x1
+ strhi r1, [r0, #0x0]
+ mov r1, #0x0
+ mov r0, r7
+ mov r2, r1
+ add r10, r10, r6
+ add r5, r5, #0x1
+ blx r8
+ mov r6, r0
+_020E49C8:
+ ldr r0, [sp, #0x0]
+ cmp r5, r0
+ bgt _020E49E4
+ cmp r6, r11
+ beq _020E49E4
+ tst r4, #0x60
+ beq _020E4710
+_020E49E4:
+ tst r4, #0x34
+ bne _020E49FC
+ ldr r0, [sp, #0x30]
+ mov r10, #0x0
+ str r10, [r0, #0x0]
+ b _020E4A10
+_020E49FC:
+ ldr r0, [sp, #0x8]
+ sub r1, r5, #0x1
+ add r1, r1, r0
+ ldr r0, [sp, #0x30]
+ str r1, [r0, #0x0]
+_020E4A10:
+ mov r0, r7
+ mov r1, r6
+ mov r2, #0x1
+ blx r8
+ mov r0, r10
+ add sp, sp, #0xc
+ ldmia sp!, {r4-r11,pc}
+ .balign 4
+_020E4A2C: .word 0x0210430C
+_020E4A30: .word 0x0210428C
+
+ arm_func_start __strtoull
+__strtoull: ; 0x020E4A34
+ stmdb sp!, {r4-r11,lr}
+ sub sp, sp, #0x1c
+ ldr r4, [sp, #0x48]
+ movs r9, r0
+ ldr r0, [sp, #0x44]
+ str r4, [sp, #0x48]
+ mov r4, #0x0
+ str r0, [sp, #0x44]
+ ldr r0, [sp, #0x48]
+ str r1, [sp, #0x0]
+ str r4, [r0, #0x0]
+ mov r0, r4
+ str r0, [sp, #0xc]
+ str r0, [sp, #0x8]
+ ldr r0, [sp, #0x44]
+ mov r1, r4
+ str r1, [r0, #0x0]
+ ldr r0, [sp, #0x40]
+ str r4, [sp, #0x14]
+ mov r8, r2
+ mov r7, r3
+ mov r5, r4
+ mov r10, r4
+ mov r11, r4
+ str r0, [sp, #0x40]
+ mov r4, #0x1
+ bmi _020E4ABC
+ cmp r9, #0x1
+ beq _020E4ABC
+ cmp r9, #0x24
+ bgt _020E4ABC
+ ldr r0, [sp, #0x0]
+ cmp r0, #0x1
+ bge _020E4AC4
+_020E4ABC:
+ mov r4, #0x40
+ b _020E4ADC
+_020E4AC4:
+ ldr r1, [sp, #0x14]
+ mov r0, r7
+ mov r2, r1
+ add r5, r1, #0x1
+ blx r8
+ mov r6, r0
+_020E4ADC:
+ cmp r9, #0x0
+ beq _020E4B00
+ mvn r0, #0x0
+ mov r1, r0
+ mov r3, r9, asr #0x1f
+ mov r2, r9
+ bl _ll_udiv
+ str r0, [sp, #0xc]
+ str r1, [sp, #0x8]
+_020E4B00:
+ mvn r0, #0x0
+ str r0, [sp, #0x18]
+ b _020E4E08
+_020E4B0C:
+ cmp r4, #0x8
+ bgt _020E4B44
+ cmp r4, #0x0
+ addge pc, pc, r4, lsl #0x2
+ b _020E4E08
+_020E4B20: ; 0x020E4B20
+ b _020E4E08
+_020E4B24: ; 0x020E4B24
+ b _020E4B50
+_020E4B28: ; 0x020E4B28
+ b _020E4BFC
+_020E4B2C: ; 0x020E4B2C
+ b _020E4E08
+_020E4B30: ; 0x020E4B30
+ b _020E4C38
+_020E4B34: ; 0x020E4B34
+ b _020E4E08
+_020E4B38: ; 0x020E4B38
+ b _020E4E08
+_020E4B3C: ; 0x020E4B3C
+ b _020E4E08
+_020E4B40: ; 0x020E4B40
+ b _020E4C78
+_020E4B44:
+ cmp r4, #0x10
+ beq _020E4C78
+ b _020E4E08
+_020E4B50:
+ cmp r6, #0x0
+ blt _020E4B60
+ cmp r6, #0x80
+ blt _020E4B68
+_020E4B60:
+ mov r0, #0x0
+ b _020E4B78
+_020E4B68:
+ ldr r0, _020E4E78 ; =0x0210430C
+ mov r1, r6, lsl #0x1
+ ldrh r0, [r0, r1]
+ and r0, r0, #0x100
+_020E4B78:
+ cmp r0, #0x0
+ beq _020E4BA4
+ mov r1, #0x0
+ mov r0, r7
+ mov r2, r1
+ blx r8
+ mov r6, r0
+ ldr r0, [sp, #0x14]
+ add r0, r0, #0x1
+ str r0, [sp, #0x14]
+ b _020E4E08
+_020E4BA4:
+ cmp r6, #0x2b
+ bne _020E4BC8
+ mov r1, #0x0
+ mov r0, r7
+ mov r2, r1
+ add r5, r5, #0x1
+ blx r8
+ mov r6, r0
+ b _020E4BF4
+_020E4BC8:
+ cmp r6, #0x2d
+ bne _020E4BF4
+ mov r1, #0x0
+ mov r0, r7
+ mov r2, r1
+ add r5, r5, #0x1
+ blx r8
+ mov r6, r0
+ ldr r0, [sp, #0x44]
+ mov r1, #0x1
+ str r1, [r0, #0x0]
+_020E4BF4:
+ mov r4, #0x2
+ b _020E4E08
+_020E4BFC:
+ cmp r9, #0x0
+ cmpne r9, #0x10
+ bne _020E4C30
+ cmp r6, #0x30
+ bne _020E4C30
+ mov r1, #0x0
+ mov r0, r7
+ mov r2, r1
+ mov r4, #0x4
+ add r5, r5, #0x1
+ blx r8
+ mov r6, r0
+ b _020E4E08
+_020E4C30:
+ mov r4, #0x8
+ b _020E4E08
+_020E4C38:
+ cmp r6, #0x58
+ cmpne r6, #0x78
+ bne _020E4C68
+ mov r1, #0x0
+ mov r0, r7
+ mov r2, r1
+ mov r9, #0x10
+ mov r4, #0x8
+ add r5, r5, #0x1
+ blx r8
+ mov r6, r0
+ b _020E4E08
+_020E4C68:
+ cmp r9, #0x0
+ moveq r9, #0x8
+ mov r4, #0x10
+ b _020E4E08
+_020E4C78:
+ ldr r1, [sp, #0x8]
+ mov r0, #0x0
+ cmp r9, #0x0
+ moveq r9, #0xa
+ cmp r1, r0
+ ldr r1, [sp, #0xc]
+ cmpeq r1, r0
+ bne _020E4CB4
+ ldr r0, [sp, #0x18]
+ mov r3, r9, asr #0x1f
+ mov r1, r0
+ mov r2, r9
+ bl _ll_udiv
+ str r0, [sp, #0xc]
+ str r1, [sp, #0x8]
+_020E4CB4:
+ cmp r6, #0x0
+ blt _020E4CC4
+ cmp r6, #0x80
+ blt _020E4CCC
+_020E4CC4:
+ mov r0, #0x0
+ b _020E4CDC
+_020E4CCC:
+ ldr r0, _020E4E78 ; =0x0210430C
+ mov r1, r6, lsl #0x1
+ ldrh r0, [r0, r1]
+ and r0, r0, #0x8
+_020E4CDC:
+ cmp r0, #0x0
+ beq _020E4D04
+ sub r6, r6, #0x30
+ cmp r6, r9
+ blt _020E4D8C
+ cmp r4, #0x10
+ moveq r4, #0x20
+ movne r4, #0x40
+ add r6, r6, #0x30
+ b _020E4E08
+_020E4D04:
+ cmp r6, #0x0
+ blt _020E4D14
+ cmp r6, #0x80
+ blt _020E4D1C
+_020E4D14:
+ mov r0, #0x0
+ b _020E4D2C
+_020E4D1C:
+ ldr r0, _020E4E78 ; =0x0210430C
+ mov r1, r6, lsl #0x1
+ ldrh r0, [r0, r1]
+ and r0, r0, #0x1
+_020E4D2C:
+ cmp r0, #0x0
+ beq _020E4D60
+ cmp r6, #0x0
+ blt _020E4D44
+ cmp r6, #0x80
+ blt _020E4D4C
+_020E4D44:
+ mov r0, r6
+ b _020E4D54
+_020E4D4C:
+ ldr r0, _020E4E7C ; =0x0210428C
+ ldrb r0, [r0, r6]
+_020E4D54:
+ sub r0, r0, #0x37
+ cmp r0, r9
+ blt _020E4D70
+_020E4D60:
+ cmp r4, #0x10
+ moveq r4, #0x20
+ movne r4, #0x40
+ b _020E4E08
+_020E4D70:
+ cmp r6, #0x0
+ blt _020E4D88
+ cmp r6, #0x80
+ bge _020E4D88
+ ldr r0, _020E4E7C ; =0x0210428C
+ ldrb r6, [r0, r6]
+_020E4D88:
+ sub r6, r6, #0x37
+_020E4D8C:
+ ldr r0, [sp, #0x8]
+ umull r2, r3, r10, r9
+ cmp r11, r0
+ ldr r0, [sp, #0xc]
+ mov r4, #0x10
+ cmpeq r10, r0
+ ldrhi r0, [sp, #0x48]
+ movhi r1, #0x1
+ strhi r1, [r0, #0x0]
+ mov r1, r9, asr #0x1f
+ mla r3, r10, r1, r3
+ mla r3, r11, r9, r3
+ ldr r1, [sp, #0x18]
+ mov r10, r2
+ subs r2, r1, r2
+ mov r0, r6, asr #0x1f
+ sbc r1, r1, r3
+ cmp r0, r1
+ cmpeq r6, r2
+ ldrhi r1, [sp, #0x48]
+ movhi r2, #0x1
+ strhi r2, [r1, #0x0]
+ mov r1, #0x0
+ mov r11, r3
+ adds r10, r10, r6
+ adc r11, r11, r0
+ mov r0, r7
+ mov r2, r1
+ add r5, r5, #0x1
+ blx r8
+ mov r6, r0
+_020E4E08:
+ ldr r0, [sp, #0x0]
+ cmp r5, r0
+ bgt _020E4E28
+ ldr r0, [sp, #0x18]
+ cmp r6, r0
+ beq _020E4E28
+ tst r4, #0x60
+ beq _020E4B0C
+_020E4E28:
+ tst r4, #0x34
+ bne _020E4E44
+ ldr r0, [sp, #0x40]
+ mov r10, #0x0
+ mov r11, r10
+ str r10, [r0, #0x0]
+ b _020E4E58
+_020E4E44:
+ ldr r0, [sp, #0x14]
+ sub r1, r5, #0x1
+ add r1, r1, r0
+ ldr r0, [sp, #0x40]
+ str r1, [r0, #0x0]
+_020E4E58:
+ mov r0, r7
+ mov r1, r6
+ mov r2, #0x1
+ blx r8
+ mov r0, r10
+ mov r1, r11
+ add sp, sp, #0x1c
+ ldmia sp!, {r4-r11,pc}
+ .balign 4
+_020E4E78: .word 0x0210430C
+_020E4E7C: .word 0x0210428C
+
+ arm_func_start strtoul
+strtoul: ; 0x020E4E80
+ stmdb sp!, {r3-r5,lr}
+ sub sp, sp, #0x20
+ mov r5, r0
+ mov lr, #0x0
+ mov r0, r2
+ mov r4, r1
+ add r2, sp, #0x1c
+ str r5, [sp, #0xc]
+ str lr, [sp, #0x10]
+ str r2, [sp, #0x0]
+ add r1, sp, #0x18
+ str r1, [sp, #0x4]
+ add r12, sp, #0x14
+ ldr r2, _020E4F10 ; =__StringRead
+ add r3, sp, #0xc
+ sub r1, lr, #0x80000001
+ str r12, [sp, #0x8]
+ bl __strtoul
+_020E4EC8: ; 0x020E4EC8
+ cmp r4, #0x0
+ ldrne r1, [sp, #0x1c]
+ addne r1, r5, r1
+ strne r1, [r4, #0x0]
+ ldr r1, [sp, #0x14]
+ cmp r1, #0x0
+ beq _020E4EFC
+ ldr r0, _020E4F14 ; =0x021D74A8
+ mov r1, #0x22
+ str r1, [r0, #0x0]
+ add sp, sp, #0x20
+ mvn r0, #0x0
+ ldmia sp!, {r3-r5,pc}
+_020E4EFC:
+ ldr r1, [sp, #0x18]
+ cmp r1, #0x0
+ rsbne r0, r0, #0x0
+ add sp, sp, #0x20
+ ldmia sp!, {r3-r5,pc}
+ .balign 4
+_020E4F10: .word __StringRead
+_020E4F14: .word 0x021D74A8
+
+ arm_func_start strtold2
+strtold2: ; 0x020E4F18
+ stmdb sp!, {r3-r5,lr}
+ sub sp, sp, #0x20
+ mov r5, r0
+ mov lr, #0x0
+ mov r0, r2
+ mov r4, r1
+ add r2, sp, #0x1c
+ str r5, [sp, #0xc]
+ str lr, [sp, #0x10]
+ str r2, [sp, #0x0]
+ add r1, sp, #0x18
+ str r1, [sp, #0x4]
+ add r12, sp, #0x14
+ ldr r2, _020E4FD8 ; =__StringRead
+ add r3, sp, #0xc
+ sub r1, lr, #0x80000001
+ str r12, [sp, #0x8]
+ bl __strtoul
+_020E4F60: ; 0x020E4F60
+ cmp r4, #0x0
+ ldrne r1, [sp, #0x1c]
+ addne r1, r5, r1
+ strne r1, [r4, #0x0]
+ ldr r1, [sp, #0x14]
+ cmp r1, #0x0
+ bne _020E4FA4
+ ldr r2, [sp, #0x18]
+ cmp r2, #0x0
+ bne _020E4F94
+ mvn r1, #0x80000000
+ cmp r0, r1
+ bhi _020E4FA4
+_020E4F94:
+ cmp r2, #0x0
+ beq _020E4FC8
+ cmp r0, #0x80000000
+ bls _020E4FC8
+_020E4FA4:
+ ldr r0, [sp, #0x18]
+ ldr r1, _020E4FDC ; =0x021D74A8
+ mov r2, #0x22
+ cmp r0, #0x0
+ movne r0, #0x80000000
+ str r2, [r1, #0x0]
+ add sp, sp, #0x20
+ mvneq r0, #0x80000000
+ ldmia sp!, {r3-r5,pc}
+_020E4FC8:
+ cmp r2, #0x0
+ rsbne r0, r0, #0x0
+ add sp, sp, #0x20
+ ldmia sp!, {r3-r5,pc}
+ .balign 4
+_020E4FD8: .word __StringRead
+_020E4FDC: .word 0x021D74A8
+
+ arm_func_start atol
+atol: ; 0x020E4FE0
+ ldr ip, _020E4FF0 ; =strtold
+ mov r1, #0x0
+ mov r2, #0xa
+ bx r12
+ .balign 4
+_020E4FF0: .word strtold2
+
+ arm_func_start fwide
+fwide:
+ cmp r0, #0x0
+ beq _020E500C
+ ldr r3, [r0, #0x4]
+ mov r2, r3, lsl #0x16
+ movs r2, r2, lsr #0x1d
+ bne _020E5014
+_020E500C:
+ mov r0, #0x0
+ bx lr
+_020E5014:
+ mov r2, r3, lsl #0x14
+ movs r2, r2, lsr #0x1e
+ beq _020E5034
+ cmp r2, #0x1
+ beq _020E505C
+ cmp r2, #0x2
+ moveq r1, #0x1
+ b _020E5060
+_020E5034:
+ cmp r1, #0x0
+ ble _020E504C
+ bic r2, r3, #0xc00
+ orr r2, r2, #0x800
+ str r2, [r0, #0x4]
+ b _020E5060
+_020E504C:
+ biclt r2, r3, #0xc00
+ orrlt r2, r2, #0x400
+ strlt r2, [r0, #0x4]
+ b _020E5060
+_020E505C:
+ mvn r1, #0x0
+_020E5060:
+ mov r0, r1
+ bx lr
+
+ arm_func_start wmemcpy
+wmemcpy: ; 0x020E5068
+ ldr ip, _020E5074 ; =memcpy
+ mov r2, r2, lsl #0x1
+ bx r12
+ .balign 4
+_020E5074: .word memcpy
+
+ arm_func_start wmemchr
+wmemchr:
+ cmp r2, #0x0
+ beq _020E5098
+_020E5080:
+ ldrh r3, [r0, #0x0]
+ cmp r3, r1
+ bxeq lr
+ add r0, r0, #0x2
+ subs r2, r2, #0x1
+ bne _020E5080
+_020E5098:
+ mov r0, #0x0
+ bx lr
+
+ arm_func_start parse_format_wprintf
+parse_format_wprintf: ; 0x020E50A0
+ stmdb sp!, {r4-r8,lr}
+ sub sp, sp, #0x10
+ ldrh r3, [r0, #0x2]
+ mov r4, #0x0
+ mov r5, #0x1
+ mov lr, r2
+ strb r5, [sp, #0x0]
+ strb r4, [sp, #0x1]
+ strb r4, [sp, #0x2]
+ strb r4, [sp, #0x3]
+ strb r4, [sp, #0x4]
+ str r4, [sp, #0x8]
+ str r4, [sp, #0xc]
+ cmp r3, #0x25
+ add r12, r0, #0x2
+ bne _020E50FC
+ add r0, sp, #0x0
+ strh r3, [sp, #0x6]
+ ldmia r0, {r0-r3}
+ stmia lr, {r0-r3}
+ add sp, sp, #0x10
+ add r0, r12, #0x2
+ ldmia sp!, {r4-r8,pc}
+_020E50FC:
+ mov r2, #0x2
+ mov r0, r4
+ mov r5, r2
+ mov r6, r4
+ mov r7, #0x1
+_020E5110:
+ mov r8, r7
+ cmp r3, #0x2b
+ bgt _020E5140
+ bge _020E5168
+ cmp r3, #0x23
+ bgt _020E5198
+ cmp r3, #0x20
+ blt _020E5198
+ beq _020E5170
+ cmp r3, #0x23
+ beq _020E5180
+ b _020E5198
+_020E5140:
+ cmp r3, #0x30
+ bgt _020E5198
+ cmp r3, #0x2d
+ blt _020E5198
+ beq _020E5160
+ cmp r3, #0x30
+ beq _020E5188
+ b _020E5198
+_020E5160:
+ strb r6, [sp, #0x0]
+ b _020E519C
+_020E5168:
+ strb r7, [sp, #0x1]
+ b _020E519C
+_020E5170:
+ ldrb r4, [sp, #0x1]
+ cmp r4, #0x1
+ strneb r5, [sp, #0x1]
+ b _020E519C
+_020E5180:
+ strb r7, [sp, #0x3]
+ b _020E519C
+_020E5188:
+ ldrb r4, [sp, #0x0]
+ cmp r4, #0x0
+ strneb r2, [sp, #0x0]
+ b _020E519C
+_020E5198:
+ mov r8, r0
+_020E519C:
+ cmp r8, #0x0
+ ldrneh r3, [r12, #0x2]!
+ bne _020E5110
+ cmp r3, #0x2a
+ bne _020E51E4
+ ldr r0, [r1, #0x0]
+ add r0, r0, #0x4
+ str r0, [r1, #0x0]
+ ldr r0, [r0, #-0x4]
+ str r0, [sp, #0x8]
+ cmp r0, #0x0
+ bge _020E51DC
+ rsb r0, r0, #0x0
+ mov r2, #0x0
+ strb r2, [sp, #0x0]
+ str r0, [sp, #0x8]
+_020E51DC:
+ ldrh r3, [r12, #0x2]!
+ b _020E5228
+_020E51E4:
+ mov r2, #0x0
+ ldr r5, _020E560C ; =0x02104544
+ mov r0, #0xa
+ b _020E5208
+_020E51F4:
+ ldr r4, [sp, #0x8]
+ sub r3, r3, #0x30
+ mla r6, r4, r0, r3
+ ldrh r3, [r12, #0x2]!
+ str r6, [sp, #0x8]
+_020E5208:
+ cmp r3, #0x80
+ movcs r4, r2
+ bhs _020E5220
+ mov r4, r3, lsl #0x1
+ ldrh r4, [r5, r4]
+ and r4, r4, #0x8
+_020E5220:
+ cmp r4, #0x0
+ bne _020E51F4
+_020E5228:
+ ldr r2, [sp, #0x8]
+ ldr r0, _020E5610 ; =0x000001FD
+ cmp r2, r0
+ ble _020E5258
+ ldr r1, _020E5614 ; =0x0000FFFF
+ add r0, sp, #0x0
+ strh r1, [sp, #0x6]
+ ldmia r0, {r0-r3}
+ stmia lr, {r0-r3}
+ add sp, sp, #0x10
+ add r0, r12, #0x2
+ ldmia sp!, {r4-r8,pc}
+_020E5258:
+ cmp r3, #0x2e
+ bne _020E52E0
+ ldrh r3, [r12, #0x2]!
+ mov r0, #0x1
+ strb r0, [sp, #0x2]
+ cmp r3, #0x2a
+ bne _020E529C
+ ldr r0, [r1, #0x0]
+ add r0, r0, #0x4
+ str r0, [r1, #0x0]
+ ldr r0, [r0, #-0x4]
+ ldrh r3, [r12, #0x2]!
+ str r0, [sp, #0xc]
+ cmp r0, #0x0
+ movlt r0, #0x0
+ strltb r0, [sp, #0x2]
+ b _020E52E0
+_020E529C:
+ mov r1, #0x0
+ ldr r4, _020E560C ; =0x02104544
+ mov r0, #0xa
+ b _020E52C0
+_020E52AC:
+ ldr r2, [sp, #0xc]
+ sub r3, r3, #0x30
+ mla r5, r2, r0, r3
+ ldrh r3, [r12, #0x2]!
+ str r5, [sp, #0xc]
+_020E52C0:
+ cmp r3, #0x80
+ movcs r2, r1
+ bhs _020E52D8
+ mov r2, r3, lsl #0x1
+ ldrh r2, [r4, r2]
+ and r2, r2, #0x8
+_020E52D8:
+ cmp r2, #0x0
+ bne _020E52AC
+_020E52E0:
+ cmp r3, #0x6c
+ mov r0, #0x1
+ bgt _020E5318
+ cmp r3, #0x68
+ blt _020E530C
+ beq _020E5334
+ cmp r3, #0x6a
+ beq _020E5380
+ cmp r3, #0x6c
+ beq _020E5350
+ b _020E53A4
+_020E530C:
+ cmp r3, #0x4c
+ beq _020E5374
+ b _020E53A4
+_020E5318:
+ cmp r3, #0x74
+ bgt _020E5328
+ beq _020E538C
+ b _020E53A4
+_020E5328:
+ cmp r3, #0x7a
+ beq _020E5398
+ b _020E53A4
+_020E5334:
+ ldrh r1, [r12, #0x2]
+ mov r2, #0x2
+ strb r2, [sp, #0x4]
+ cmp r1, #0x68
+ streqb r0, [sp, #0x4]
+ ldreqh r3, [r12, #0x2]!
+ b _020E53A8
+_020E5350:
+ ldrh r1, [r12, #0x2]
+ mov r2, #0x3
+ strb r2, [sp, #0x4]
+ cmp r1, #0x6c
+ bne _020E53A8
+ mov r1, #0x4
+ strb r1, [sp, #0x4]
+ ldrh r3, [r12, #0x2]!
+ b _020E53A8
+_020E5374:
+ mov r1, #0x9
+ strb r1, [sp, #0x4]
+ b _020E53A8
+_020E5380:
+ mov r1, #0x6
+ strb r1, [sp, #0x4]
+ b _020E53A8
+_020E538C:
+ mov r1, #0x8
+ strb r1, [sp, #0x4]
+ b _020E53A8
+_020E5398:
+ mov r1, #0x7
+ strb r1, [sp, #0x4]
+ b _020E53A8
+_020E53A4:
+ mov r0, #0x0
+_020E53A8:
+ cmp r0, #0x0
+ ldrneh r3, [r12, #0x2]!
+ strh r3, [sp, #0x6]
+ cmp r3, #0x61
+ bgt _020E53FC
+ bge _020E54E0
+ cmp r3, #0x47
+ bgt _020E53F0
+ subs r0, r3, #0x41
+ addpl pc, pc, r0, lsl #0x2
+ b _020E55EC
+_020E53D4: ; 0x020E53D4
+ b _020E54E0
+_020E53D8: ; 0x020E53D8
+ b _020E55EC
+_020E53DC: ; 0x020E53DC
+ b _020E55EC
+_020E53E0: ; 0x020E53E0
+ b _020E55EC
+_020E53E4: ; 0x020E53E4
+ b _020E5528
+_020E53E8: ; 0x020E53E8
+ b _020E54A8
+_020E53EC: ; 0x020E53EC
+ b _020E5518
+_020E53F0:
+ cmp r3, #0x58
+ beq _020E5470
+ b _020E55EC
+_020E53FC:
+ cmp r3, #0x63
+ bgt _020E540C
+ beq _020E5588
+ b _020E55EC
+_020E540C:
+ sub r0, r3, #0x64
+ cmp r0, #0x14
+ addls pc, pc, r0, lsl #0x2
+ b _020E55EC
+_020E541C:
+ b _020E5470
+_020E5420:
+ b _020E5528
+_020E5424:
+ b _020E54A8
+_020E5428:
+ b _020E5518
+_020E542C:
+ b _020E55EC
+_020E5430:
+ b _020E5470
+_020E5434:
+ b _020E55EC
+_020E5438:
+ b _020E55EC
+_020E543C:
+ b _020E55EC
+_020E5440:
+ b _020E55EC
+_020E5444:
+ b _020E55D8
+_020E5448:
+ b _020E5470
+_020E544C:
+ b _020E5564
+_020E5450:
+ b _020E55EC
+_020E5454:
+ b _020E55EC
+_020E5458:
+ b _020E55B4
+_020E545C:
+ b _020E55EC
+_020E5460:
+ b _020E5470
+_020E5464:
+ b _020E55EC
+_020E5468:
+ b _020E55EC
+_020E546C:
+ b _020E5470
+_020E5470:
+ ldrb r0, [sp, #0x4]
+ cmp r0, #0x9
+ moveq r0, #0x4
+ streqb r0, [sp, #0x4]
+ ldrb r0, [sp, #0x2]
+ cmp r0, #0x0
+ moveq r0, #0x1
+ streq r0, [sp, #0xc]
+ beq _020E55F4
+ ldrb r0, [sp, #0x0]
+ cmp r0, #0x2
+ moveq r0, #0x1
+ streqb r0, [sp, #0x0]
+ b _020E55F4
+_020E54A8:
+ ldrb r0, [sp, #0x4]
+ cmp r0, #0x2
+ cmpne r0, #0x6
+ cmpne r0, #0x7
+ cmpne r0, #0x8
+ cmpne r0, #0x4
+ ldreq r0, _020E5614 ; =0x0000FFFF
+ streqh r0, [sp, #0x6]
+ beq _020E55F4
+ ldrb r0, [sp, #0x2]
+ cmp r0, #0x0
+ moveq r0, #0x6
+ streq r0, [sp, #0xc]
+ b _020E55F4
+_020E54E0:
+ ldrb r0, [sp, #0x2]
+ cmp r0, #0x0
+ moveq r0, #0xd
+ streq r0, [sp, #0xc]
+ ldrb r0, [sp, #0x4]
+ cmp r0, #0x2
+ cmpne r0, #0x6
+ cmpne r0, #0x7
+ cmpne r0, #0x8
+ cmpne r0, #0x4
+ cmpne r0, #0x1
+ ldreq r0, _020E5614 ; =0x0000FFFF
+ streqh r0, [sp, #0x6]
+ b _020E55F4
+_020E5518:
+ ldr r0, [sp, #0xc]
+ cmp r0, #0x0
+ moveq r0, #0x1
+ streq r0, [sp, #0xc]
+_020E5528:
+ ldrb r0, [sp, #0x4]
+ cmp r0, #0x2
+ cmpne r0, #0x6
+ cmpne r0, #0x7
+ cmpne r0, #0x8
+ cmpne r0, #0x4
+ cmpne r0, #0x1
+ ldreq r0, _020E5614 ; =0x0000FFFF
+ streqh r0, [sp, #0x6]
+ beq _020E55F4
+ ldrb r0, [sp, #0x2]
+ cmp r0, #0x0
+ moveq r0, #0x6
+ streq r0, [sp, #0xc]
+ b _020E55F4
+_020E5564:
+ mov r3, #0x3
+ mov r2, #0x1
+ mov r1, #0x78
+ mov r0, #0x8
+ strb r3, [sp, #0x4]
+ strb r2, [sp, #0x3]
+ strh r1, [sp, #0x6]
+ str r0, [sp, #0xc]
+ b _020E55F4
+_020E5588:
+ ldrb r1, [sp, #0x4]
+ cmp r1, #0x3
+ moveq r0, #0x5
+ streqb r0, [sp, #0x4]
+ beq _020E55F4
+ ldrb r0, [sp, #0x2]
+ cmp r0, #0x0
+ cmpeq r1, #0x0
+ ldrne r0, _020E5614 ; =0x0000FFFF
+ strneh r0, [sp, #0x6]
+ b _020E55F4
+_020E55B4:
+ ldrb r0, [sp, #0x4]
+ cmp r0, #0x3
+ moveq r0, #0x5
+ streqb r0, [sp, #0x4]
+ beq _020E55F4
+ cmp r0, #0x0
+ ldrne r0, _020E5614 ; =0x0000FFFF
+ strneh r0, [sp, #0x6]
+ b _020E55F4
+_020E55D8:
+ ldrb r0, [sp, #0x4]
+ cmp r0, #0x9
+ moveq r0, #0x4
+ streqb r0, [sp, #0x4]
+ b _020E55F4
+_020E55EC:
+ ldr r0, _020E5614 ; =0x0000FFFF
+ strh r0, [sp, #0x6]
+_020E55F4:
+ add r0, sp, #0x0
+ ldmia r0, {r0-r3}
+ stmia lr, {r0-r3}
+ add r0, r12, #0x2
+ add sp, sp, #0x10
+ ldmia sp!, {r4-r8,pc}
+ .balign 4
+_020E560C: .word 0x02104544
+_020E5610: .word 0x000001FD
+_020E5614: .word 0x0000FFFF
+
+ arm_func_start long2str_wide
+long2str_wide: ; 0x020E5618
+ stmdb sp!, {r0-r3}
+ stmdb sp!, {r3-r11,lr}
+ sub sp, sp, #0x10
+ movs r10, r0
+ mov r0, #0x0
+ mov r5, r1
+ str r0, [sp, #0xc]
+ ldr r7, [sp, #0x4c]
+ mov r6, r0
+ strh r0, [r5, #-0x2]!
+ ldrb r0, [sp, #0x43]
+ str r1, [sp, #0x0]
+ ldrh r8, [sp, #0x46]
+ str r0, [sp, #0x4]
+ ldr r0, [sp, #0x48]
+ ldrb r11, [sp, #0x41]
+ str r0, [sp, #0x8]
+ cmpeq r7, #0x0
+ bne _020E568C
+ ldr r0, [sp, #0x4]
+ cmp r0, #0x0
+ beq _020E5678
+ cmp r8, #0x6f
+ beq _020E568C
+_020E5678:
+ add sp, sp, #0x10
+ mov r0, r5
+ ldmia sp!, {r3-r11,lr}
+ add sp, sp, #0x10
+ bx lr
+_020E568C:
+ cmp r8, #0x69
+ bgt _020E56B4
+ bge _020E56E8
+ cmp r8, #0x58
+ bgt _020E56A8
+ beq _020E5714
+ b _020E571C
+_020E56A8:
+ cmp r8, #0x64
+ beq _020E56E8
+ b _020E571C
+_020E56B4:
+ cmp r8, #0x6f
+ bgt _020E56C8
+ moveq r4, #0x8
+ moveq r11, #0x0
+ b _020E571C
+_020E56C8:
+ cmp r8, #0x78
+ bgt _020E571C
+ cmp r8, #0x75
+ blt _020E571C
+ beq _020E5708
+ cmp r8, #0x78
+ beq _020E5714
+ b _020E571C
+_020E56E8:
+ cmp r10, #0x0
+ mov r4, #0xa
+ bge _020E571C
+ mov r0, #0x1
+ cmp r10, #0x80000000
+ rsbne r10, r10, #0x0
+ str r0, [sp, #0xc]
+ b _020E571C
+_020E5708:
+ mov r4, #0xa
+ mov r11, #0x0
+ b _020E571C
+_020E5714:
+ mov r4, #0x10
+ mov r11, #0x0
+_020E571C:
+ mov r0, r10
+ mov r1, r4
+ bl _u32_div_f
+ mov r9, r1
+ mov r0, r10
+ mov r1, r4
+ bl _u32_div_f
+ cmp r9, #0xa
+ mov r10, r0
+ addlt r9, r9, #0x30
+ blt _020E5754
+ cmp r8, #0x78
+ addeq r9, r9, #0x57
+ addne r9, r9, #0x37
+_020E5754:
+ cmp r10, #0x0
+ strh r9, [r5, #-0x2]!
+ add r6, r6, #0x1
+ bne _020E571C
+ cmp r4, #0x8
+ bne _020E5788
+ ldr r0, [sp, #0x4]
+ cmp r0, #0x0
+ ldrneh r0, [r5, #0x0]
+ cmpne r0, #0x30
+ movne r0, #0x30
+ strneh r0, [r5, #-0x2]!
+ addne r6, r6, #0x1
+_020E5788:
+ ldrb r0, [sp, #0x40]
+ cmp r0, #0x2
+ bne _020E57BC
+ ldr r0, [sp, #0xc]
+ ldr r7, [sp, #0x8]
+ cmp r0, #0x0
+ cmpeq r11, #0x0
+ subne r7, r7, #0x1
+ cmp r4, #0x10
+ bne _020E57BC
+ ldr r0, [sp, #0x4]
+ cmp r0, #0x0
+ subne r7, r7, #0x2
+_020E57BC:
+ ldr r0, [sp, #0x0]
+ ldr r1, _020E5864 ; =0x000001FD
+ sub r0, r0, r5
+ add r0, r0, r0, lsr #0x1f
+ add r0, r7, r0, asr #0x1
+ cmp r0, r1
+ addgt sp, sp, #0x10
+ movgt r0, #0x0
+ ldmgtia sp!, {r3-r11,lr}
+ addgt sp, sp, #0x10
+ bxgt lr
+ cmp r6, r7
+ bge _020E5804
+ mov r0, #0x30
+_020E57F4:
+ add r6, r6, #0x1
+ cmp r6, r7
+ strh r0, [r5, #-0x2]!
+ blt _020E57F4
+_020E5804:
+ cmp r4, #0x10
+ bne _020E5820
+ ldr r0, [sp, #0x4]
+ cmp r0, #0x0
+ movne r0, #0x30
+ strneh r8, [r5, #-0x2]
+ strneh r0, [r5, #-0x4]!
+_020E5820:
+ ldr r0, [sp, #0xc]
+ cmp r0, #0x0
+ movne r0, #0x2d
+ strneh r0, [r5, #-0x2]!
+ bne _020E5850
+ cmp r11, #0x1
+ moveq r0, #0x2b
+ streqh r0, [r5, #-0x2]!
+ beq _020E5850
+ cmp r11, #0x2
+ moveq r0, #0x20
+ streqh r0, [r5, #-0x2]!
+_020E5850:
+ mov r0, r5
+ add sp, sp, #0x10
+ ldmia sp!, {r3-r11,lr}
+ add sp, sp, #0x10
+ bx lr
+ .balign 4
+_020E5864: .word 0x000001FD
+
+ arm_func_start longlong2str_wide
+longlong2str_wide: ; 0x020E5868
+ stmdb sp!, {r0-r3}
+ stmdb sp!, {r3-r11,lr}
+ sub sp, sp, #0x18
+ mov r9, r1
+ mov r1, #0x0
+ mov r10, r0
+ mov r6, r2
+ mov r0, r1
+ strh r0, [r6, #-0x2]!
+ ldr r0, [sp, #0x58]
+ cmp r9, #0x0
+ str r0, [sp, #0x10]
+ ldrb r0, [sp, #0x4f]
+ cmpeq r10, #0x0
+ str r2, [sp, #0x0]
+ str r0, [sp, #0x4]
+ ldr r0, [sp, #0x54]
+ str r1, [sp, #0x14]
+ str r0, [sp, #0x8]
+ ldrb r0, [sp, #0x4d]
+ mov r7, r1
+ ldrh r8, [sp, #0x52]
+ str r0, [sp, #0xc]
+ ldreq r0, [sp, #0x10]
+ cmpeq r0, #0x0
+ bne _020E58F8
+ ldr r0, [sp, #0x4]
+ cmp r0, #0x0
+ beq _020E58E4
+ cmp r8, #0x6f
+ beq _020E58F8
+_020E58E4:
+ add sp, sp, #0x18
+ mov r0, r6
+ ldmia sp!, {r3-r11,lr}
+ add sp, sp, #0x10
+ bx lr
+_020E58F8:
+ cmp r8, #0x69
+ bgt _020E5920
+ bge _020E5950
+ cmp r8, #0x58
+ bgt _020E5914
+ beq _020E59A4
+ b _020E59B0
+_020E5914:
+ cmp r8, #0x64
+ beq _020E5950
+ b _020E59B0
+_020E5920:
+ cmp r8, #0x6f
+ bgt _020E5930
+ beq _020E5984
+ b _020E59B0
+_020E5930:
+ cmp r8, #0x78
+ bgt _020E59B0
+ cmp r8, #0x75
+ blt _020E59B0
+ beq _020E5994
+ cmp r8, #0x78
+ beq _020E59A4
+ b _020E59B0
+_020E5950:
+ subs r0, r10, #0x0
+ sbcs r0, r9, #0x0
+ mov r11, #0xa
+ mov r5, #0x0
+ bge _020E59B0
+ cmp r9, #0x80000000
+ cmpeq r10, r5
+ beq _020E5978
+ rsbs r10, r10, #0x0
+ rsc r9, r9, #0x0
+_020E5978:
+ mov r0, #0x1
+ str r0, [sp, #0x14]
+ b _020E59B0
+_020E5984:
+ mov r5, #0x0
+ str r5, [sp, #0xc]
+ mov r11, #0x8
+ b _020E59B0
+_020E5994:
+ mov r5, #0x0
+ str r5, [sp, #0xc]
+ mov r11, #0xa
+ b _020E59B0
+_020E59A4:
+ mov r5, #0x0
+ str r5, [sp, #0xc]
+ mov r11, #0x10
+_020E59B0:
+ mov r0, r10
+ mov r1, r9
+ mov r2, r11
+ mov r3, r5
+ bl _ull_mod
+ mov r4, r0
+ mov r0, r10
+ mov r1, r9
+ mov r2, r11
+ mov r3, r5
+ bl _ll_udiv
+ mov r10, r0
+ cmp r4, #0xa
+ mov r9, r1
+ addlt r0, r4, #0x30
+ blt _020E59FC
+ cmp r8, #0x78
+ addeq r0, r4, #0x57
+ addne r0, r4, #0x37
+_020E59FC:
+ strh r0, [r6, #-0x2]!
+ mov r0, #0x0
+ cmp r9, r0
+ cmpeq r10, r0
+ add r7, r7, #0x1
+ bne _020E59B0
+ cmp r5, #0x0
+ cmpeq r11, #0x8
+ bne _020E5A3C
+ ldr r0, [sp, #0x4]
+ cmp r0, #0x0
+ ldrneh r0, [r6, #0x0]
+ cmpne r0, #0x30
+ movne r0, #0x30
+ strneh r0, [r6, #-0x2]!
+ addne r7, r7, #0x1
+_020E5A3C:
+ ldrb r0, [sp, #0x4c]
+ cmp r0, #0x2
+ bne _020E5A8C
+ ldr r0, [sp, #0x8]
+ str r0, [sp, #0x10]
+ ldr r0, [sp, #0x14]
+ cmp r0, #0x0
+ ldreq r0, [sp, #0xc]
+ cmpeq r0, #0x0
+ ldrne r0, [sp, #0x10]
+ subne r0, r0, #0x1
+ strne r0, [sp, #0x10]
+ cmp r5, #0x0
+ cmpeq r11, #0x10
+ bne _020E5A8C
+ ldr r0, [sp, #0x4]
+ cmp r0, #0x0
+ ldrne r0, [sp, #0x10]
+ subne r0, r0, #0x2
+ strne r0, [sp, #0x10]
+_020E5A8C:
+ ldr r0, [sp, #0x0]
+ ldr r2, _020E5B48 ; =0x000001FD
+ sub r0, r0, r6
+ add r1, r0, r0, lsr #0x1f
+ ldr r0, [sp, #0x10]
+ add r0, r0, r1, asr #0x1
+ cmp r0, r2
+ addgt sp, sp, #0x18
+ movgt r0, #0x0
+ ldmgtia sp!, {r3-r11,lr}
+ addgt sp, sp, #0x10
+ bxgt lr
+ ldr r0, [sp, #0x10]
+ cmp r7, r0
+ bge _020E5AE0
+ mov r1, #0x30
+_020E5ACC:
+ ldr r0, [sp, #0x10]
+ add r7, r7, #0x1
+ cmp r7, r0
+ strh r1, [r6, #-0x2]!
+ blt _020E5ACC
+_020E5AE0:
+ cmp r5, #0x0
+ cmpeq r11, #0x10
+ bne _020E5B00
+ ldr r0, [sp, #0x4]
+ cmp r0, #0x0
+ movne r0, #0x30
+ strneh r8, [r6, #-0x2]
+ strneh r0, [r6, #-0x4]!
+_020E5B00:
+ ldr r0, [sp, #0x14]
+ cmp r0, #0x0
+ movne r0, #0x2d
+ strneh r0, [r6, #-0x2]!
+ bne _020E5B34
+ ldr r0, [sp, #0xc]
+ cmp r0, #0x1
+ moveq r0, #0x2b
+ streqh r0, [r6, #-0x2]!
+ beq _020E5B34
+ cmp r0, #0x2
+ moveq r0, #0x20
+ streqh r0, [r6, #-0x2]!
+_020E5B34:
+ mov r0, r6
+ add sp, sp, #0x18
+ ldmia sp!, {r3-r11,lr}
+ add sp, sp, #0x10
+ bx lr
+ .balign 4
+_020E5B48: .word 0x000001FD
+
+ arm_func_start double2hex_wide
+double2hex_wide: ; 0x020E5B4C
+ stmdb sp!, {r0-r3}
+ stmdb sp!, {r3-r10,lr}
+ sub sp, sp, #0x44
+ ldr r7, [sp, #0x80]
+ ldr r0, _020E5EB8 ; =0x000001FD
+ mov r8, r2
+ cmp r7, r0
+ ldrh r6, [sp, #0x7a]
+ ldrb r5, [sp, #0x77]
+ ldrb r4, [sp, #0x75]
+ ldr r1, [sp, #0x68]
+ ldr r2, [sp, #0x6c]
+ addgt sp, sp, #0x44
+ movgt r0, #0x0
+ ldmgtia sp!, {r3-r10,lr}
+ addgt sp, sp, #0x10
+ bxgt lr
+ mov r10, #0x0
+ mov r9, #0x20
+ add r0, sp, #0x8
+ add r3, sp, #0xc
+ strb r10, [sp, #0x8]
+ strh r9, [sp, #0xa]
+ bl __num2dec_internal2
+ ldr r0, [sp, #0x68]
+ ldr r1, [sp, #0x6c]
+ bl fabs
+ mov r2, r0
+ mov r0, r10
+ mov r3, r1
+ mov r1, r0
+ bl _deq
+ bne _020E5BF4
+ sub r4, r8, #0xc
+ ldr r1, _020E5EBC ; =0x02106DE4
+ mov r0, r4
+ bl wcscpy
+ add sp, sp, #0x44
+ mov r0, r4
+ ldmia sp!, {r3-r10,lr}
+ add sp, sp, #0x10
+ bx lr
+_020E5BF4:
+ ldrb r0, [sp, #0x11]
+ cmp r0, #0x49
+ bne _020E5C74
+ ldrsb r0, [sp, #0xc]
+ cmp r0, #0x0
+ beq _020E5C38
+ cmp r6, #0x41
+ sub r4, r8, #0xa
+ bne _020E5C28
+ ldr r1, _020E5EC0 ; =0x02106DF0
+ mov r0, r4
+ bl wcscpy
+ b _020E5C60
+_020E5C28:
+ ldr r1, _020E5EC4 ; =0x02106DFC
+ mov r0, r4
+ bl wcscpy
+ b _020E5C60
+_020E5C38:
+ cmp r6, #0x41
+ sub r4, r8, #0x8
+ bne _020E5C54
+ ldr r1, _020E5EC8 ; =0x02106E08
+ mov r0, r4
+ bl wcscpy
+ b _020E5C60
+_020E5C54:
+ ldr r1, _020E5ECC ; =0x02106E10
+ mov r0, r4
+ bl wcscpy
+_020E5C60:
+ add sp, sp, #0x44
+ mov r0, r4
+ ldmia sp!, {r3-r10,lr}
+ add sp, sp, #0x10
+ bx lr
+_020E5C74:
+ cmp r0, #0x4e
+ bne _020E5CF0
+ ldrsb r0, [sp, #0xc]
+ cmp r0, #0x0
+ beq _020E5CB4
+ cmp r6, #0x41
+ sub r4, r8, #0xa
+ bne _020E5CA4
+ ldr r1, _020E5ED0 ; =0x02106E18
+ mov r0, r4
+ bl wcscpy
+ b _020E5CDC
+_020E5CA4:
+ ldr r1, _020E5ED4 ; =0x02106E24
+ mov r0, r4
+ bl wcscpy
+ b _020E5CDC
+_020E5CB4:
+ cmp r6, #0x41
+ sub r4, r8, #0x8
+ bne _020E5CD0
+ ldr r1, _020E5ED8 ; =0x02106E30
+ mov r0, r4
+ bl wcscpy
+ b _020E5CDC
+_020E5CD0:
+ ldr r1, _020E5EDC ; =0x02106E38
+ mov r0, r4
+ bl wcscpy
+_020E5CDC:
+ add sp, sp, #0x44
+ mov r0, r4
+ ldmia sp!, {r3-r10,lr}
+ add sp, sp, #0x10
+ bx lr
+_020E5CF0:
+ mov r3, r10
+ mov r1, #0x1
+ mov r0, #0x64
+ add r9, sp, #0x68
+ strb r1, [sp, #0x34]
+ strb r1, [sp, #0x35]
+ strb r3, [sp, #0x36]
+ strb r3, [sp, #0x37]
+ strb r3, [sp, #0x38]
+ str r3, [sp, #0x3c]
+ str r1, [sp, #0x40]
+ strh r0, [sp, #0x3a]
+_020E5D20:
+ rsb r1, r3, #0x7
+ ldrsb r2, [r9, r3]
+ ldrsb r0, [r9, r1]
+ strb r0, [r9, r3]
+ add r3, r3, #0x1
+ strb r2, [r9, r1]
+ cmp r3, #0x4
+ blt _020E5D20
+ ldrb r0, [sp, #0x69]
+ ldrb r1, [sp, #0x68]
+ ldr sb, _020E5EE0 ; =0x000007FF
+ mov r0, r0, lsl #0x11
+ orr r1, r0, r1, lsl #0x19
+ add r0, sp, #0x34
+ and lr, r9, r1, lsr #0x15
+ sub r12, sp, #0x8
+ ldmia r0, {r0-r3}
+ stmia r12, {r0-r3}
+ rsb r0, r9, #0x400
+ mov r1, r8
+ add r0, lr, r0
+ ldmia r12, {r2-r3}
+ bl long2str_wide
+ cmp r6, #0x61
+ moveq r1, #0x70
+ movne r1, #0x50
+ strh r1, [r0, #-0x2]!
+ mov r1, r7, lsl #0x2
+ mov lr, r7
+ cmp r7, #0x1
+ add r8, r1, #0xb
+ add r12, sp, #0x68
+ blt _020E5E30
+ mov r9, #0x30
+_020E5DA8:
+ cmp r8, #0x40
+ bge _020E5E18
+ ldrb r1, [r12, r8, asr #0x3]
+ and r2, r8, #0x7
+ rsb r3, r2, #0x7
+ mov r2, r1, asr r3
+ sub r10, r8, #0x4
+ bic r1, r8, #0x7
+ bic r10, r10, #0x7
+ cmp r1, r10
+ add r10, r12, r8, asr #0x3
+ and r1, r2, #0xff
+ beq _020E5DEC
+ ldrb r2, [r10, #-0x1]
+ mov r2, r2, lsl #0x8
+ orr r1, r1, r2, asr r3
+ and r1, r1, #0xff
+_020E5DEC:
+ and r1, r1, #0xf
+ cmp r1, #0xa
+ addcc r1, r1, #0x30
+ andcc r1, r1, #0xff
+ blo _020E5E1C
+ cmp r6, #0x61
+ addeq r1, r1, #0x57
+ andeq r1, r1, #0xff
+ addne r1, r1, #0x37
+ andne r1, r1, #0xff
+ b _020E5E1C
+_020E5E18:
+ mov r1, r9
+_020E5E1C:
+ sub lr, lr, #0x1
+ cmp lr, #0x1
+ strh r1, [r0, #-0x2]!
+ sub r8, r8, #0x4
+ bge _020E5DA8
+_020E5E30:
+ cmp r7, #0x0
+ cmpeq r5, #0x0
+ movne r1, #0x2e
+ strneh r1, [r0, #-0x2]!
+ mov r1, #0x31
+ strh r1, [r0, #-0x2]
+ cmp r6, #0x61
+ moveq r1, #0x78
+ movne r1, #0x58
+ strh r1, [r0, #-0x4]!
+ mov r1, #0x30
+ strh r1, [r0, #-0x2]!
+ ldrsb r1, [sp, #0xc]
+ cmp r1, #0x0
+ movne r1, #0x2d
+ strneh r1, [r0, #-0x2]!
+ addne sp, sp, #0x44
+ ldmneia sp!, {r3-r10,lr}
+ addne sp, sp, #0x10
+ bxne lr
+ cmp r4, #0x1
+ moveq r1, #0x2b
+ streqh r1, [r0, #-0x2]!
+ addeq sp, sp, #0x44
+ ldmeqia sp!, {r3-r10,lr}
+ addeq sp, sp, #0x10
+ bxeq lr
+ cmp r4, #0x2
+ moveq r1, #0x20
+ streqh r1, [r0, #-0x2]!
+ add sp, sp, #0x44
+ ldmia sp!, {r3-r10,lr}
+ add sp, sp, #0x10
+ bx lr
+ .balign 4
+_020E5EB8: .word 0x000001FD
+_020E5EBC: .word 0x02106DE4
+_020E5EC0: .word 0x02106DF0
+_020E5EC4: .word 0x02106DFC
+_020E5EC8: .word 0x02106E08
+_020E5ECC: .word 0x02106E10
+_020E5ED0: .word 0x02106E18
+_020E5ED4: .word 0x02106E24
+_020E5ED8: .word 0x02106E30
+_020E5EDC: .word 0x02106E38
+_020E5EE0: .word 0x000007FF
+
+ arm_func_start round_decimal_wide
+round_decimal_wide: ; 0x020E5EE4
+ stmdb sp!, {r4,lr}
+ cmp r1, #0x0
+ bge _020E5F0C
+_020E5EF0:
+ mov r1, #0x0
+ strh r1, [r0, #0x2]
+ mov r1, #0x1
+ strb r1, [r0, #0x4]
+ mov r1, #0x30
+ strb r1, [r0, #0x5]
+ ldmia sp!, {r4,pc}
+_020E5F0C:
+ ldrb lr, [r0, #0x4]
+ cmp r1, lr
+ ldmgeia sp!, {r4,pc}
+_020E5F18: ; 0x020E5F18
+ add r12, r0, #0x5
+ add r2, r12, r1
+ add r2, r2, #0x1
+ ldrsb r3, [r2, #-0x1]!
+ sub r3, r3, #0x30
+ mov r3, r3, lsl #0x18
+ mov r3, r3, asr #0x18
+ cmp r3, #0x5
+ bne _020E5F6C
+ add r12, r12, lr
+_020E5F40:
+ sub r12, r12, #0x1
+ cmp r12, r2
+ bls _020E5F58
+ ldrsb r3, [r12, #0x0]
+ cmp r3, #0x30
+ beq _020E5F40
+_020E5F58:
+ cmp r12, r2
+ ldreqsb r3, [r2, #-0x1]
+ andeq r4, r3, #0x1
+ movne r4, #0x1
+ b _020E5F74
+_020E5F6C:
+ movgt r4, #0x1
+ movle r4, #0x0
+_020E5F74:
+ cmp r1, #0x0
+ beq _020E5FD0
+ mov r12, #0x0
+ mov lr, #0x1
+_020E5F84:
+ ldrsb r3, [r2, #-0x1]!
+ sub r3, r3, #0x30
+ add r3, r3, r4
+ mov r3, r3, lsl #0x18
+ mov r3, r3, asr #0x18
+ cmp r3, #0x9
+ movgt r4, lr
+ movle r4, r12
+ cmp r4, #0x0
+ bne _020E5FB4
+ cmp r3, #0x0
+ bne _020E5FBC
+_020E5FB4:
+ sub r1, r1, #0x1
+ b _020E5FC8
+_020E5FBC:
+ add r3, r3, #0x30
+ strb r3, [r2, #0x0]
+ b _020E5FD0
+_020E5FC8:
+ cmp r1, #0x0
+ bne _020E5F84
+_020E5FD0:
+ cmp r4, #0x0
+ beq _020E5FF8
+ ldrsh r3, [r0, #0x2]
+ mov r2, #0x1
+ mov r1, #0x31
+ add r3, r3, #0x1
+ strh r3, [r0, #0x2]
+ strb r2, [r0, #0x4]
+ strb r1, [r0, #0x5]
+ ldmia sp!, {r4,pc}
+_020E5FF8:
+ cmp r1, #0x0
+ beq _020E5EF0
+ strb r1, [r0, #0x4]
+ ldmia sp!, {r4,pc}
+
+ arm_func_start float2str_wide
+float2str_wide: ; 0x020E6008
+ stmdb sp!, {r0-r3}
+ stmdb sp!, {r4-r11,lr}
+ sub sp, sp, #0x22c
+ mov r10, r0
+ add r0, sp, #0x250
+ ldr r7, [sp, #0x268]
+ ldr r3, _020E6628 ; =0x000001FD
+ ldrh r6, [r0, #0x12]
+ cmp r7, r3
+ ldrb r5, [sp, #0x25f]
+ ldrb r4, [sp, #0x25d]
+ mov r8, r1
+ mov r9, r2
+ addgt sp, sp, #0x22c
+ movgt r0, #0x0
+ ldmgtia sp!, {r4-r11,lr}
+ addgt sp, sp, #0x10
+ bxgt lr
+ mov r12, #0x0
+ mov r11, #0x20
+ add r0, sp, #0x0
+ add r3, sp, #0x4
+ mov r1, r10
+ mov r2, r8
+ strb r12, [sp, #0x0]
+ strh r11, [sp, #0x2]
+ bl __num2dec_internal2
+ ldrb r0, [sp, #0x8]
+ add r1, sp, #0x9
+ add r0, r1, r0
+ b _020E609C
+_020E6084:
+ ldrb r2, [sp, #0x8]
+ ldrsh r1, [sp, #0x6]
+ sub r2, r2, #0x1
+ add r1, r1, #0x1
+ strb r2, [sp, #0x8]
+ strh r1, [sp, #0x6]
+_020E609C:
+ ldrb r1, [sp, #0x8]
+ cmp r1, #0x1
+ bls _020E60B4
+ ldrsb r1, [r0, #-0x1]!
+ cmp r1, #0x30
+ beq _020E6084
+_020E60B4:
+ ldrb r0, [sp, #0x9]
+ cmp r0, #0x30
+ beq _020E60D4
+ cmp r0, #0x49
+ beq _020E60E0
+ cmp r0, #0x4e
+ beq _020E6198
+ b _020E6244
+_020E60D4:
+ mov r0, #0x0
+ strh r0, [sp, #0x6]
+ b _020E6244
+_020E60E0:
+ mov r2, #0x0
+ mov r0, r10
+ mov r1, r8
+ mov r3, r2
+ bl _dls
+ bhs _020E6140
+ cmp r6, #0x80
+ sub r4, r9, #0xa
+ movcs r0, #0x0
+ bhs _020E6118
+ ldr r0, _020E662C ; =0x02104544
+ mov r1, r6, lsl #0x1
+ ldrh r0, [r0, r1]
+ and r0, r0, #0x200
+_020E6118:
+ cmp r0, #0x0
+ beq _020E6130
+ ldr r1, _020E6630 ; =0x02106DF0
+ mov r0, r4
+ bl wcscpy
+ b _020E6184
+_020E6130:
+ ldr r1, _020E6634 ; =0x02106DFC
+ mov r0, r4
+ bl wcscpy
+ b _020E6184
+_020E6140:
+ cmp r6, #0x80
+ sub r4, r9, #0x8
+ movcs r0, #0x0
+ bhs _020E6160
+ ldr r0, _020E662C ; =0x02104544
+ mov r1, r6, lsl #0x1
+ ldrh r0, [r0, r1]
+ and r0, r0, #0x200
+_020E6160:
+ cmp r0, #0x0
+ beq _020E6178
+ ldr r1, _020E6638 ; =0x02106E08
+ mov r0, r4
+ bl wcscpy
+ b _020E6184
+_020E6178:
+ ldr r1, _020E663C ; =0x02106E10
+ mov r0, r4
+ bl wcscpy
+_020E6184:
+ add sp, sp, #0x22c
+ mov r0, r4
+ ldmia sp!, {r4-r11,lr}
+ add sp, sp, #0x10
+ bx lr
+_020E6198:
+ ldrsb r0, [sp, #0x4]
+ cmp r0, #0x0
+ beq _020E61EC
+ cmp r6, #0x80
+ sub r4, r9, #0xa
+ movcs r0, #0x0
+ bhs _020E61C4
+ ldr r0, _020E662C ; =0x02104544
+ mov r1, r6, lsl #0x1
+ ldrh r0, [r0, r1]
+ and r0, r0, #0x200
+_020E61C4:
+ cmp r0, #0x0
+ beq _020E61DC
+ ldr r1, _020E6640 ; =0x02106E18
+ mov r0, r4
+ bl wcscpy
+ b _020E6230
+_020E61DC:
+ ldr r1, _020E6644 ; =0x02106E24
+ mov r0, r4
+ bl wcscpy
+ b _020E6230
+_020E61EC:
+ cmp r6, #0x80
+ sub r4, r9, #0x8
+ movcs r0, #0x0
+ bhs _020E620C
+ ldr r0, _020E662C ; =0x02104544
+ mov r1, r6, lsl #0x1
+ ldrh r0, [r0, r1]
+ and r0, r0, #0x200
+_020E620C:
+ cmp r0, #0x0
+ beq _020E6224
+ ldr r1, _020E6648 ; =0x02106E30
+ mov r0, r4
+ bl wcscpy
+ b _020E6230
+_020E6224:
+ ldr r1, _020E664C ; =0x02106E38
+ mov r0, r4
+ bl wcscpy
+_020E6230:
+ add sp, sp, #0x22c
+ mov r0, r4
+ ldmia sp!, {r4-r11,lr}
+ add sp, sp, #0x10
+ bx lr
+_020E6244:
+ ldrb r1, [sp, #0x8]
+ ldrsh r2, [sp, #0x6]
+ add r0, sp, #0x200
+ sub r1, r1, #0x1
+ add r0, r0, #0x2a
+ add r1, r2, r1
+ sub r8, r0, #0x1
+ strh r1, [sp, #0x6]
+ mov r0, #0x0
+ strb r0, [r8, #0x0]
+ cmp r6, #0x65
+ bgt _020E62A0
+ bge _020E632C
+ cmp r6, #0x47
+ bgt _020E65EC
+ cmp r6, #0x45
+ blt _020E65EC
+ beq _020E632C
+ cmp r6, #0x46
+ beq _020E6478
+ cmp r6, #0x47
+ beq _020E62B8
+ b _020E65EC
+_020E62A0:
+ cmp r6, #0x66
+ bgt _020E62B0
+ beq _020E6478
+ b _020E65EC
+_020E62B0:
+ cmp r6, #0x67
+ bne _020E65EC
+_020E62B8:
+ ldrb r0, [sp, #0x8]
+ cmp r0, r7
+ ble _020E62D0
+ add r0, sp, #0x4
+ mov r1, r7
+ bl round_decimal_wide
+_020E62D0:
+ ldrsh r2, [sp, #0x6]
+ mvn r0, #0x3
+ cmp r2, r0
+ blt _020E62E8
+ cmp r2, r7
+ blt _020E6308
+_020E62E8:
+ cmp r5, #0x0
+ ldreqb r0, [sp, #0x8]
+ subne r7, r7, #0x1
+ subeq r7, r0, #0x1
+ cmp r6, #0x67
+ moveq r6, #0x65
+ movne r6, #0x45
+ b _020E632C
+_020E6308:
+ cmp r5, #0x0
+ addne r0, r2, #0x1
+ subne r7, r7, r0
+ bne _020E6478
+ ldrb r1, [sp, #0x8]
+ add r0, r2, #0x1
+ subs r7, r1, r0
+ movmi r7, #0x0
+ b _020E6478
+_020E632C:
+ ldrb r0, [sp, #0x8]
+ add r1, r7, #0x1
+ cmp r0, r1
+ ble _020E6344
+ add r0, sp, #0x4
+ bl round_decimal_wide
+_020E6344:
+ ldrsh lr, [sp, #0x6]
+ mov r11, #0x2b
+ mov r10, #0x0
+ cmp lr, #0x0
+ rsblt lr, lr, #0x0
+ movlt r11, #0x2d
+ ldr r3, _020E6650 ; =0x66666667
+ mov r0, #0xa
+ b _020E6398
+_020E6368:
+ mov r1, lr, lsr #0x1f
+ smull r2, r12, r3, lr
+ add r12, r1, r12, asr #0x2
+ smull r1, r2, r0, r12
+ sub r12, lr, r1
+ add r1, r12, #0x30
+ strb r1, [r8, #-0x1]!
+ mov r2, lr
+ smull r1, lr, r3, r2
+ mov r1, r2, lsr #0x1f
+ add lr, r1, lr, asr #0x2
+ add r10, r10, #0x1
+_020E6398:
+ cmp lr, #0x0
+ bne _020E6368
+ cmp r10, #0x2
+ blt _020E6368
+ add r0, sp, #0x2a
+ strb r11, [r8, #-0x1]
+ strb r6, [r8, #-0x2]!
+ sub r1, r0, r8
+ ldr r0, _020E6628 ; =0x000001FD
+ add r1, r1, r7
+ cmp r1, r0
+ addgt sp, sp, #0x22c
+ movgt r0, #0x0
+ ldmgtia sp!, {r4-r11,lr}
+ addgt sp, sp, #0x10
+ bxgt lr
+ ldrb r1, [sp, #0x8]
+ add r0, r7, #0x1
+ cmp r1, r0
+ bge _020E6408
+ add r0, r7, #0x2
+ sub r0, r0, r1
+ subs r1, r0, #0x1
+ beq _020E6408
+ mov r0, #0x30
+_020E63FC:
+ strb r0, [r8, #-0x1]!
+ subs r1, r1, #0x1
+ bne _020E63FC
+_020E6408:
+ ldrb r1, [sp, #0x8]
+ add r0, sp, #0x9
+ add r2, r0, r1
+ subs r1, r1, #0x1
+ beq _020E642C
+_020E641C:
+ ldrsb r0, [r2, #-0x1]!
+ subs r1, r1, #0x1
+ strb r0, [r8, #-0x1]!
+ bne _020E641C
+_020E642C:
+ cmp r7, #0x0
+ cmpeq r5, #0x0
+ movne r0, #0x2e
+ strneb r0, [r8, #-0x1]!
+ ldrb r0, [sp, #0x9]
+ strb r0, [r8, #-0x1]!
+ ldrsb r0, [sp, #0x4]
+ cmp r0, #0x0
+ movne r0, #0x2d
+ strneb r0, [r8, #-0x1]!
+ bne _020E65EC
+ cmp r4, #0x1
+ moveq r0, #0x2b
+ streqb r0, [r8, #-0x1]!
+ beq _020E65EC
+ cmp r4, #0x2
+ moveq r0, #0x20
+ streqb r0, [r8, #-0x1]!
+ b _020E65EC
+_020E6478:
+ ldrsh r3, [sp, #0x6]
+ ldrb r2, [sp, #0x8]
+ sub r0, r2, r3
+ subs r1, r0, #0x1
+ movmi r1, #0x0
+ cmp r1, r7
+ ble _020E64B8
+ sub r1, r1, r7
+ add r0, sp, #0x4
+ sub r1, r2, r1
+ bl round_decimal_wide
+ ldrsh r3, [sp, #0x6]
+ ldrb r2, [sp, #0x8]
+ sub r0, r2, r3
+ subs r1, r0, #0x1
+ movmi r1, #0x0
+_020E64B8:
+ adds r0, r3, #0x1
+ movmi r0, #0x0
+ ldr r3, _020E6628 ; =0x000001FD
+ add r6, r0, r1
+ cmp r6, r3
+ addgt sp, sp, #0x22c
+ movgt r0, #0x0
+ ldmgtia sp!, {r4-r11,lr}
+ addgt sp, sp, #0x10
+ bxgt lr
+ add r3, sp, #0x9
+ sub r6, r7, r1
+ cmp r6, #0x0
+ add r2, r3, r2
+ mov r10, #0x0
+ ble _020E650C
+ mov r3, #0x30
+_020E64FC:
+ add r10, r10, #0x1
+ cmp r10, r6
+ strb r3, [r8, #-0x1]!
+ blt _020E64FC
+_020E650C:
+ mov r6, #0x0
+ b _020E6520
+_020E6514:
+ ldrsb r3, [r2, #-0x1]!
+ add r6, r6, #0x1
+ strb r3, [r8, #-0x1]!
+_020E6520:
+ cmp r6, r1
+ ldrltb r3, [sp, #0x8]
+ cmplt r6, r3
+ blt _020E6514
+ cmp r6, r1
+ bge _020E654C
+ mov r3, #0x30
+_020E653C:
+ add r6, r6, #0x1
+ cmp r6, r1
+ strb r3, [r8, #-0x1]!
+ blt _020E653C
+_020E654C:
+ cmp r7, #0x0
+ cmpeq r5, #0x0
+ movne r1, #0x2e
+ strneb r1, [r8, #-0x1]!
+ cmp r0, #0x0
+ beq _020E65B4
+ ldrb r1, [sp, #0x8]
+ mov r5, #0x0
+ sub r1, r0, r1
+ cmp r1, #0x0
+ ble _020E6594
+ mov r3, #0x30
+_020E657C:
+ strb r3, [r8, #-0x1]!
+ ldrb r1, [sp, #0x8]
+ add r5, r5, #0x1
+ sub r1, r0, r1
+ cmp r5, r1
+ blt _020E657C
+_020E6594:
+ cmp r5, r0
+ bge _020E65BC
+_020E659C:
+ ldrsb r1, [r2, #-0x1]!
+ add r5, r5, #0x1
+ cmp r5, r0
+ strb r1, [r8, #-0x1]!
+ blt _020E659C
+ b _020E65BC
+_020E65B4:
+ mov r0, #0x30
+ strb r0, [r8, #-0x1]!
+_020E65BC:
+ ldrsb r0, [sp, #0x4]
+ cmp r0, #0x0
+ movne r0, #0x2d
+ strneb r0, [r8, #-0x1]!
+ bne _020E65EC
+ cmp r4, #0x1
+ moveq r0, #0x2b
+ streqb r0, [r8, #-0x1]!
+ beq _020E65EC
+ cmp r4, #0x2
+ moveq r0, #0x20
+ streqb r0, [r8, #-0x1]!
+_020E65EC:
+ mov r0, r8
+ bl strlen
+ sub r1, r9, r0, lsl #0x1
+ mov r0, r8
+ sub r4, r1, #0x2
+ bl strlen
+ mov r2, r0
+ mov r0, r4
+ mov r1, r8
+ bl mbstowcs
+ mov r0, r4
+ add sp, sp, #0x22c
+ ldmia sp!, {r4-r11,lr}
+ add sp, sp, #0x10
+ bx lr
+ .balign 4
+_020E6628: .word 0x000001FD
+_020E662C: .word 0x02104544
+_020E6630: .word 0x02106DF0
+_020E6634: .word 0x02106DFC
+_020E6638: .word 0x02106E08
+_020E663C: .word 0x02106E10
+_020E6640: .word 0x02106E18
+_020E6644: .word 0x02106E24
+_020E6648: .word 0x02106E30
+_020E664C: .word 0x02106E38
+_020E6650: .word 0x66666667
+
+ arm_func_start __wpformatter
+__wpformatter:
+ stmdb sp!, {r0-r3}
+ stmdb sp!, {r3-r11,lr}
+ sub sp, sp, #0x430
+ mov r3, #0x20
+ mov r11, r2
+ strh r3, [sp, #0x1c]
+ ldrh r2, [r11, #0x0]
+ mov r9, r0
+ mov r8, r1
+ cmp r2, #0x0
+ mov r4, #0x0
+ beq _020E6F24
+_020E6684:
+ mov r0, r11
+ mov r1, #0x25
+ bl wcschr
+ str r0, [sp, #0xc]
+ cmp r0, #0x0
+ bne _020E66D8
+ mov r0, r11
+ bl wcslen
+ movs r2, r0
+ add r4, r4, r2
+ beq _020E6F24
+ mov r0, r8
+ mov r1, r11
+ blx r9
+ cmp r0, #0x0
+ bne _020E6F24
+ add sp, sp, #0x430
+ mvn r0, #0x0
+ ldmia sp!, {r3-r11,lr}
+ add sp, sp, #0x10
+ bx lr
+_020E66D8:
+ sub r0, r0, r11
+ add r0, r0, r0, lsr #0x1f
+ movs r2, r0, asr #0x1
+ add r4, r4, r2
+ beq _020E6710
+ mov r0, r8
+ mov r1, r11
+ blx r9
+ cmp r0, #0x0
+ addeq sp, sp, #0x430
+ mvneq r0, #0x0
+ ldmeqia sp!, {r3-r11,lr}
+ addeq sp, sp, #0x10
+ bxeq lr
+_020E6710:
+ add r1, sp, #0x400
+ ldr r0, [sp, #0xc]
+ add r1, r1, #0x64
+ add r2, sp, #0x20
+ bl parse_format_wprintf
+ ldrh r1, [sp, #0x26]
+ mov r11, r0
+ cmp r1, #0x61
+ bgt _020E6780
+ bge _020E6AEC
+ cmp r1, #0x47
+ bgt _020E6774
+ subs r0, r1, #0x41
+ addpl pc, pc, r0, lsl #0x2
+ b _020E6768
+_020E674C: ; 0x020E674C
+ b _020E6AEC
+_020E6750: ; 0x020E6750
+ b _020E6D90
+_020E6754: ; 0x020E6754
+ b _020E6D90
+_020E6758: ; 0x020E6758
+ b _020E6D90
+_020E675C: ; 0x020E675C
+ b _020E6A7C
+_020E6760: ; 0x020E6760
+ b _020E6A7C
+_020E6764: ; 0x020E6764
+ b _020E6A7C
+_020E6768:
+ cmp r1, #0x25
+ beq _020E6D7C
+ b _020E6D90
+_020E6774:
+ cmp r1, #0x58
+ beq _020E6940
+ b _020E6D90
+_020E6780:
+ cmp r1, #0x75
+ bgt _020E67E8
+ subs r0, r1, #0x64
+ addpl pc, pc, r0, lsl #0x2
+ b _020E67DC
+_020E6794: ; 0x020E6794
+ b _020E6804
+_020E6798: ; 0x020E6798
+ b _020E6A7C
+_020E679C: ; 0x020E679C
+ b _020E6A7C
+_020E67A0: ; 0x020E67A0
+ b _020E6A7C
+_020E67A4: ; 0x020E67A4
+ b _020E6D90
+_020E67A8: ; 0x020E67A8
+ b _020E6804
+_020E67AC: ; 0x020E67AC
+ b _020E6D90
+_020E67B0: ; 0x020E67B0
+ b _020E6D90
+_020E67B4: ; 0x020E67B4
+ b _020E6D90
+_020E67B8: ; 0x020E67B8
+ b _020E6D90
+_020E67BC: ; 0x020E67BC
+ b _020E6C98
+_020E67C0: ; 0x020E67C0
+ b _020E6940
+_020E67C4: ; 0x020E67C4
+ b _020E6D90
+_020E67C8: ; 0x020E67C8
+ b _020E6D90
+_020E67CC: ; 0x020E67CC
+ b _020E6D90
+_020E67D0: ; 0x020E67D0
+ b _020E6B5C
+_020E67D4: ; 0x020E67D4
+ b _020E6D90
+_020E67D8: ; 0x020E67D8
+ b _020E6940
+_020E67DC:
+ cmp r1, #0x63
+ beq _020E6D24
+ b _020E6D90
+_020E67E8:
+ cmp r1, #0x78
+ bgt _020E67F8
+ beq _020E6940
+ b _020E6D90
+_020E67F8:
+ ldr r0, _020E6F38 ; =0x0000FFFF
+ cmp r1, r0
+ b _020E6D90
+_020E6804:
+ ldrb r0, [sp, #0x24]
+ cmp r0, #0x3
+ bne _020E6824
+ ldr r1, [sp, #0x464]
+ add r1, r1, #0x4
+ str r1, [sp, #0x464]
+ ldr r10, [r1, #-0x4]
+ b _020E68BC
+_020E6824:
+ cmp r0, #0x4
+ bne _020E684C
+ ldr r1, [sp, #0x464]
+ add r2, r1, #0x8
+ str r2, [sp, #0x464]
+ ldr r1, [r2, #-0x8]
+ str r1, [sp, #0x10]
+ ldr r1, [r2, #-0x4]
+ str r1, [sp, #0x14]
+ b _020E68BC
+_020E684C:
+ cmp r0, #0x6
+ bne _020E6874
+ ldr r1, [sp, #0x464]
+ add r2, r1, #0x8
+ str r2, [sp, #0x464]
+ ldr r1, [r2, #-0x8]
+ str r1, [sp, #0x10]
+ ldr r1, [r2, #-0x4]
+ str r1, [sp, #0x14]
+ b _020E68BC
+_020E6874:
+ cmp r0, #0x7
+ bne _020E6890
+ ldr r1, [sp, #0x464]
+ add r1, r1, #0x4
+ str r1, [sp, #0x464]
+ ldr r10, [r1, #-0x4]
+ b _020E68BC
+_020E6890:
+ cmp r0, #0x8
+ bne _020E68AC
+ ldr r1, [sp, #0x464]
+ add r1, r1, #0x4
+ str r1, [sp, #0x464]
+ ldr r10, [r1, #-0x4]
+ b _020E68BC
+_020E68AC:
+ ldr r1, [sp, #0x464]
+ add r1, r1, #0x4
+ str r1, [sp, #0x464]
+ ldr r10, [r1, #-0x4]
+_020E68BC:
+ cmp r0, #0x2
+ moveq r1, r10, lsl #0x10
+ moveq r10, r1, asr #0x10
+ cmp r0, #0x4
+ cmpne r0, #0x6
+ add r0, sp, #0x20
+ bne _020E6904
+ sub r5, sp, #0x4
+ ldmia r0, {r0-r3}
+ stmia r5, {r0-r3}
+ ldr r3, [r5, #0x0]
+ ldr r0, [sp, #0x10]
+ ldr r1, [sp, #0x14]
+ add r2, sp, #0x430
+ bl longlong2str_wide
+ movs r6, r0
+ beq _020E6D90
+ b _020E6928
+_020E6904:
+ sub r5, sp, #0x8
+ ldmia r0, {r0-r3}
+ stmia r5, {r0-r3}
+ add r1, sp, #0x430
+ mov r0, r10
+ ldmia r5, {r2-r3}
+ bl long2str_wide
+ movs r6, r0
+ beq _020E6D90
+_020E6928:
+ add r0, sp, #0x400
+ add r0, r0, #0x2e
+ sub r0, r0, r6
+ add r0, r0, r0, lsr #0x1f
+ mov r7, r0, asr #0x1
+ b _020E6DDC
+_020E6940:
+ ldrb r0, [sp, #0x24]
+ cmp r0, #0x3
+ bne _020E6960
+ ldr r1, [sp, #0x464]
+ add r1, r1, #0x4
+ str r1, [sp, #0x464]
+ ldr r10, [r1, #-0x4]
+ b _020E69F8
+_020E6960:
+ cmp r0, #0x4
+ bne _020E6988
+ ldr r1, [sp, #0x464]
+ add r2, r1, #0x8
+ str r2, [sp, #0x464]
+ ldr r1, [r2, #-0x8]
+ str r1, [sp, #0x10]
+ ldr r1, [r2, #-0x4]
+ str r1, [sp, #0x14]
+ b _020E69F8
+_020E6988:
+ cmp r0, #0x6
+ bne _020E69B0
+ ldr r1, [sp, #0x464]
+ add r2, r1, #0x8
+ str r2, [sp, #0x464]
+ ldr r1, [r2, #-0x8]
+ str r1, [sp, #0x10]
+ ldr r1, [r2, #-0x4]
+ str r1, [sp, #0x14]
+ b _020E69F8
+_020E69B0:
+ cmp r0, #0x7
+ bne _020E69CC
+ ldr r1, [sp, #0x464]
+ add r1, r1, #0x4
+ str r1, [sp, #0x464]
+ ldr r10, [r1, #-0x4]
+ b _020E69F8
+_020E69CC:
+ cmp r0, #0x8
+ bne _020E69E8
+ ldr r1, [sp, #0x464]
+ add r1, r1, #0x4
+ str r1, [sp, #0x464]
+ ldr r10, [r1, #-0x4]
+ b _020E69F8
+_020E69E8:
+ ldr r1, [sp, #0x464]
+ add r1, r1, #0x4
+ str r1, [sp, #0x464]
+ ldr r10, [r1, #-0x4]
+_020E69F8:
+ cmp r0, #0x2
+ moveq r1, r10, lsl #0x10
+ moveq r10, r1, lsr #0x10
+ cmp r0, #0x4
+ cmpne r0, #0x6
+ add r0, sp, #0x20
+ bne _020E6A40
+ sub r5, sp, #0x4
+ ldmia r0, {r0-r3}
+ stmia r5, {r0-r3}
+ ldr r3, [r5, #0x0]
+ ldr r0, [sp, #0x10]
+ ldr r1, [sp, #0x14]
+ add r2, sp, #0x430
+ bl longlong2str_wide
+ movs r6, r0
+ beq _020E6D90
+ b _020E6A64
+_020E6A40:
+ sub r5, sp, #0x8
+ ldmia r0, {r0-r3}
+ stmia r5, {r0-r3}
+ add r1, sp, #0x430
+ mov r0, r10
+ ldmia r5, {r2-r3}
+ bl long2str_wide
+ movs r6, r0
+ beq _020E6D90
+_020E6A64:
+ add r0, sp, #0x400
+ add r0, r0, #0x2e
+ sub r0, r0, r6
+ add r0, r0, r0, lsr #0x1f
+ mov r7, r0, asr #0x1
+ b _020E6DDC
+_020E6A7C:
+ ldrb r0, [sp, #0x24]
+ cmp r0, #0x9
+ ldrne r0, [sp, #0x464]
+ addne r0, r0, #0x8
+ strne r0, [sp, #0x464]
+ bne _020E6AA0
+ ldr r0, [sp, #0x464]
+ add r0, r0, #0x8
+ str r0, [sp, #0x464]
+_020E6AA0:
+ ldr r7, [r0, #-0x8]
+ ldr r6, [r0, #-0x4]
+ add r0, sp, #0x20
+ sub r5, sp, #0x4
+ ldmia r0, {r0-r3}
+ stmia r5, {r0-r3}
+ ldr r3, [r5, #0x0]
+ mov r0, r7
+ mov r1, r6
+ add r2, sp, #0x430
+ bl float2str_wide
+ movs r6, r0
+ beq _020E6D90
+ add r0, sp, #0x400
+ add r0, r0, #0x2e
+ sub r0, r0, r6
+ add r0, r0, r0, lsr #0x1f
+ mov r7, r0, asr #0x1
+ b _020E6DDC
+_020E6AEC:
+ ldrb r0, [sp, #0x24]
+ cmp r0, #0x9
+ ldrne r0, [sp, #0x464]
+ addne r0, r0, #0x8
+ strne r0, [sp, #0x464]
+ bne _020E6B10
+ ldr r0, [sp, #0x464]
+ add r0, r0, #0x8
+ str r0, [sp, #0x464]
+_020E6B10:
+ ldr r7, [r0, #-0x8]
+ ldr r6, [r0, #-0x4]
+ add r0, sp, #0x20
+ sub r5, sp, #0x4
+ ldmia r0, {r0-r3}
+ stmia r5, {r0-r3}
+ ldr r3, [r5, #0x0]
+ mov r0, r7
+ mov r1, r6
+ add r2, sp, #0x430
+ bl double2hex_wide
+ movs r6, r0
+ beq _020E6D90
+ add r0, sp, #0x400
+ add r0, r0, #0x2e
+ sub r0, r0, r6
+ add r0, r0, r0, lsr #0x1f
+ mov r7, r0, asr #0x1
+ b _020E6DDC
+_020E6B5C:
+ ldrb r0, [sp, #0x24]
+ cmp r0, #0x5
+ bne _020E6BF8
+ ldr r0, [sp, #0x464]
+ add r0, r0, #0x4
+ str r0, [sp, #0x464]
+ ldr r6, [r0, #-0x4]
+ ldrb r0, [sp, #0x23]
+ cmp r6, #0x0
+ ldreq r6, _020E6F3C ; =0x02106E40
+ cmp r0, #0x0
+ beq _020E6BB0
+ ldrh r1, [r6], #0x2
+ ldrb r0, [sp, #0x22]
+ and r7, r1, #0xff
+ cmp r0, #0x0
+ beq _020E6DDC
+ ldr r0, [sp, #0x2c]
+ cmp r7, r0
+ movgt r7, r0
+ b _020E6DDC
+_020E6BB0:
+ ldrb r0, [sp, #0x22]
+ cmp r0, #0x0
+ beq _020E6BE8
+ ldr r7, [sp, #0x2c]
+ mov r0, r6
+ mov r2, r7
+ mov r1, #0x0
+ bl wmemchr
+_020E6BD0: ; 0x020E6BD0
+ cmp r0, #0x0
+ beq _020E6DDC
+ sub r0, r0, r6
+ add r0, r0, r0, lsr #0x1f
+ mov r7, r0, asr #0x1
+ b _020E6DDC
+_020E6BE8:
+ mov r0, r6
+ bl wcslen
+ mov r7, r0
+ b _020E6DDC
+_020E6BF8:
+ ldr r0, [sp, #0x464]
+ add r0, r0, #0x4
+ str r0, [sp, #0x464]
+ ldr r5, [r0, #-0x4]
+ ldrb r0, [sp, #0x23]
+ cmp r5, #0x0
+ ldreq r5, _020E6F40 ; =0x02106E44
+ cmp r0, #0x0
+ beq _020E6C40
+ ldrh r1, [r6, #0x0]
+ ldrb r0, [sp, #0x22]
+ and r6, r1, #0xff
+ cmp r0, #0x0
+ beq _020E6C78
+ ldr r0, [sp, #0x2c]
+ cmp r6, r0
+ movgt r6, r0
+ b _020E6C78
+_020E6C40:
+ ldrb r0, [sp, #0x22]
+ cmp r0, #0x0
+ beq _020E6C6C
+ ldr r6, [sp, #0x2c]
+ mov r0, r5
+ mov r2, r6
+ mov r1, #0x0
+ bl memchr
+_020E6C60: ; 0x020E6C60
+ cmp r0, #0x0
+ subne r6, r0, r5
+ b _020E6C78
+_020E6C6C:
+ mov r0, r5
+ bl strlen
+ mov r6, r0
+_020E6C78:
+ add r0, sp, #0x30
+ mov r1, r5
+ mov r2, r6
+ bl mbstowcs
+ movs r7, r0
+ bmi _020E6D90
+ add r6, sp, #0x30
+ b _020E6DDC
+_020E6C98:
+ ldr r1, [sp, #0x464]
+ ldrb r0, [sp, #0x24]
+ add r1, r1, #0x4
+ str r1, [sp, #0x464]
+ ldr r6, [r1, #-0x4]
+ cmp r0, #0x8
+ addls pc, pc, r0, lsl #0x2
+ b _020E6F18
+_020E6CB8:
+ b _020E6CDC
+_020E6CBC:
+ b _020E6F18
+_020E6CC0:
+ b _020E6CE4
+_020E6CC4:
+ b _020E6CEC
+_020E6CC8:
+ b _020E6D14
+_020E6CCC:
+ b _020E6F18
+_020E6CD0:
+ b _020E6CF4
+_020E6CD4:
+ b _020E6D04
+_020E6CD8:
+ b _020E6D0C
+_020E6CDC:
+ str r4, [r6, #0x0]
+ b _020E6F18
+_020E6CE4:
+ strh r4, [r6, #0x0]
+ b _020E6F18
+_020E6CEC:
+ str r4, [r6, #0x0]
+ b _020E6F18
+_020E6CF4:
+ str r4, [r6, #0x0]
+ mov r0, r4, asr #0x1f
+ str r0, [r6, #0x4]
+ b _020E6F18
+_020E6D04:
+ str r4, [r6, #0x0]
+ b _020E6F18
+_020E6D0C:
+ str r4, [r6, #0x0]
+ b _020E6F18
+_020E6D14:
+ str r4, [r6, #0x0]
+ mov r0, r4, asr #0x1f
+ str r0, [r6, #0x4]
+ b _020E6F18
+_020E6D24:
+ ldrb r0, [sp, #0x24]
+ add r6, sp, #0x30
+ cmp r0, #0x5
+ bne _020E6D50
+ ldr r0, [sp, #0x464]
+ mov r7, #0x1
+ add r0, r0, #0x4
+ str r0, [sp, #0x464]
+ ldr r0, [r0, #-0x4]
+ strh r0, [r6, #0x0]
+ b _020E6DDC
+_020E6D50:
+ ldr r0, [sp, #0x464]
+ add r1, sp, #0x18
+ add r0, r0, #0x4
+ str r0, [sp, #0x464]
+ ldr r3, [r0, #-0x4]
+ mov r0, r6
+ mov r2, #0x1
+ strb r3, [sp, #0x18]
+ bl mbtowc
+ mov r7, r0
+ b _020E6DDC
+_020E6D7C:
+ mov r0, #0x25
+ strh r0, [sp, #0x30]
+ add r6, sp, #0x30
+ mov r7, #0x1
+ b _020E6DDC
+_020E6D90:
+ ldr r0, [sp, #0xc]
+ bl wcslen
+ movs r5, r0
+ beq _020E6DC8
+ ldr r1, [sp, #0xc]
+ mov r0, r8
+ mov r2, r5
+ blx r9
+ cmp r0, #0x0
+ addeq sp, sp, #0x430
+ mvneq r0, #0x0
+ ldmeqia sp!, {r3-r11,lr}
+ addeq sp, sp, #0x10
+ bxeq lr
+_020E6DC8:
+ add sp, sp, #0x430
+ add r0, r4, r5
+ ldmia sp!, {r3-r11,lr}
+ add sp, sp, #0x10
+ bx lr
+_020E6DDC:
+ ldrb r0, [sp, #0x20]
+ mov r5, r7
+ cmp r0, #0x0
+ beq _020E6E8C
+ cmp r0, #0x2
+ moveq r1, #0x30
+ movne r1, #0x20
+ strh r1, [sp, #0x1c]
+ ldrh r0, [r6, #0x0]
+ cmp r0, #0x2b
+ cmpne r0, #0x2d
+ cmpne r0, #0x20
+ bne _020E6E48
+ cmp r1, #0x30
+ bne _020E6E48
+ mov r0, r8
+ mov r1, r6
+ mov r2, #0x1
+ blx r9
+ cmp r0, #0x0
+ addeq sp, sp, #0x430
+ mvneq r0, #0x0
+ ldmeqia sp!, {r3-r11,lr}
+ addeq sp, sp, #0x10
+ bxeq lr
+ add r6, r6, #0x2
+ sub r7, r7, #0x1
+_020E6E48:
+ ldr r0, [sp, #0x28]
+ cmp r5, r0
+ bge _020E6E8C
+_020E6E54:
+ mov r0, r8
+ add r1, sp, #0x1c
+ mov r2, #0x1
+ blx r9
+ cmp r0, #0x0
+ addeq sp, sp, #0x430
+ mvneq r0, #0x0
+ ldmeqia sp!, {r3-r11,lr}
+ addeq sp, sp, #0x10
+ bxeq lr
+ ldr r0, [sp, #0x28]
+ add r5, r5, #0x1
+ cmp r5, r0
+ blt _020E6E54
+_020E6E8C:
+ cmp r7, #0x0
+ beq _020E6EBC
+ mov r0, r8
+ mov r1, r6
+ mov r2, r7
+ blx r9
+ cmp r0, #0x0
+ addeq sp, sp, #0x430
+ mvneq r0, #0x0
+ ldmeqia sp!, {r3-r11,lr}
+ addeq sp, sp, #0x10
+ bxeq lr
+_020E6EBC:
+ ldrb r0, [sp, #0x20]
+ cmp r0, #0x0
+ bne _020E6F14
+ ldr r0, [sp, #0x28]
+ cmp r5, r0
+ bge _020E6F14
+ mov r7, #0x20
+_020E6ED8:
+ mov r0, r8
+ add r1, sp, #0x1a
+ mov r2, #0x1
+ strh r7, [sp, #0x1a]
+ blx r9
+ cmp r0, #0x0
+ addeq sp, sp, #0x430
+ mvneq r0, #0x0
+ ldmeqia sp!, {r3-r11,lr}
+ addeq sp, sp, #0x10
+ bxeq lr
+ ldr r0, [sp, #0x28]
+ add r5, r5, #0x1
+ cmp r5, r0
+ blt _020E6ED8
+_020E6F14:
+ add r4, r4, r5
+_020E6F18:
+ ldrh r0, [r11, #0x0]
+ cmp r0, #0x0
+ bne _020E6684
+_020E6F24:
+ mov r0, r4
+ add sp, sp, #0x430
+ ldmia sp!, {r3-r11,lr}
+ add sp, sp, #0x10
+ bx lr
+ .balign 4
+_020E6F38: .word 0x0000FFFF
+_020E6F3C: .word 0x02106E40
+_020E6F40: .word 0x02106E44
+
+ arm_func_start __wStringWrite
+__wStringWrite: ; 0x020E6F44
+ stmdb sp!, {r3-r5,lr}
+ mov r4, r0
+ ldr r3, [r4, #0x8]
+ mov r5, r2
+ ldr r2, [r4, #0x4]
+ add r0, r3, r5
+ cmp r0, r2
+ ldr r0, [r4, #0x0]
+ subhi r5, r2, r3
+ mov r2, r5
+ add r0, r0, r3, lsl #0x1
+ bl wmemcpy
+ ldr r1, [r4, #0x8]
+ add r1, r1, r5
+ str r1, [r4, #0x8]
+ ldmia sp!, {r3-r5,pc}
+
+ arm_func_start swprintf
+swprintf: ; 0x020E6F84
+ stmdb sp!, {r0-r3}
+ stmdb sp!, {r3,lr}
+ add r3, sp, #0x10
+ bic r3, r3, #0x3
+ ldr r2, [sp, #0x10]
+ add r3, r3, #0x4
+ bl vswprintf
+ ldmia sp!, {r3,lr}
+ add sp, sp, #0x10
+ bx lr
+
+ arm_func_start vswprintf
+vswprintf: ; 0x020E6FAC
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0xc
+ mov r5, r0
+ mov r4, r1
+ mov r12, #0x0
+ ldr r0, _020E7018 ; =__wStringWrite
+ add r1, sp, #0x0
+ str r5, [sp, #0x0]
+ str r4, [sp, #0x4]
+ str r12, [sp, #0x8]
+ bl __wpformatter
+_020E6FD8: ; 0x020E6FD8
+ cmp r0, #0x0
+ addlt sp, sp, #0xc
+ ldmltia sp!, {r4-r5,pc}
+_020E6FE4: ; 0x020E6FE4
+ cmp r0, r4
+ bhs _020E7000
+ mov r1, r0, lsl #0x1
+ mov r2, #0x0
+ add sp, sp, #0xc
+ strh r2, [r5, r1]
+ ldmia sp!, {r4-r5,pc}
+_020E7000:
+ mov r1, #0x0
+ add r0, r5, r4, lsl #0x1
+ strh r1, [r0, #-0x2]
+ sub r0, r1, #0x1
+ add sp, sp, #0xc
+ ldmia sp!, {r4-r5,pc}
+ .balign 4
+_020E7018: .word __wStringWrite
+
+ arm_func_start wcslen
+wcslen: ; 0x020E701C
+ mvn r2, #0x0
+_020E7020:
+ ldrh r1, [r0], #0x2
+ add r2, r2, #0x1
+ cmp r1, #0x0
+ bne _020E7020
+ mov r0, r2
+ bx lr
+
+ arm_func_start wcscpy
+wcscpy: ; 0x020E7038
+ mov r3, r0
+_020E703C:
+ ldrh r2, [r1], #0x2
+ mov r12, r3
+ strh r2, [r3], #0x2
+ ldrh r2, [r12, #0x0]
+ cmp r2, #0x0
+ bne _020E703C
+ bx lr
+
+ arm_func_start wcschr
+wcschr: ; 0x020E7058
+ ldrh r2, [r0], #0x2
+ cmp r2, #0x0
+ beq _020E707C
+_020E7064:
+ cmp r2, r1
+ subeq r0, r0, #0x2
+ bxeq lr
+ ldrh r2, [r0], #0x2
+ cmp r2, #0x0
+ bne _020E7064
+_020E707C:
+ cmp r1, #0x0
+ movne r0, #0x0
+ subeq r0, r0, #0x2
+ bx lr
+
+ arm_func_start __ieee754_pow
+__ieee754_pow: ; 0x020E708C
+ stmdb sp!, {r0-r3}
+ stmdb sp!, {r3-r11,lr}
+ sub sp, sp, #0x80
+ ldr r8, [sp, #0xb4]
+ ldr r6, [sp, #0xac]
+ ldr r0, [sp, #0xb0]
+ bic r9, r8, #0x80000000
+ orrs r1, r9, r0
+ ldr r7, [sp, #0xa8]
+ bic r4, r6, #0x80000000
+ addeq sp, sp, #0x80
+ moveq r0, #0x0
+ ldreq r1, _020E7638 ; =0x3FF00000
+ ldmeqia sp!, {r3-r11,lr}
+ addeq sp, sp, #0x10
+ bxeq lr
+ ldr r1, _020E763C ; =0x7FF00000
+ cmp r4, r1
+ bgt _020E70FC
+ bne _020E70E4
+ cmp r7, #0x0
+ bne _020E70FC
+_020E70E4:
+ ldr r1, _020E763C ; =0x7FF00000
+ cmp r9, r1
+ bgt _020E70FC
+ bne _020E7120
+ cmp r0, #0x0
+ beq _020E7120
+_020E70FC:
+ ldr r0, [sp, #0xa8]
+ ldr r1, [sp, #0xac]
+ ldr r2, [sp, #0xb0]
+ ldr r3, [sp, #0xb4]
+ bl _dadd
+ add sp, sp, #0x80
+ ldmia sp!, {r3-r11,lr}
+ add sp, sp, #0x10
+ bx lr
+_020E7120:
+ cmp r6, #0x0
+ mov r5, #0x0
+ bge _020E7188
+ ldr r1, _020E7640 ; =0x43400000
+ cmp r9, r1
+ movge r5, #0x2
+ bge _020E7188
+ sub r1, r1, #0x3500000
+ cmp r9, r1
+ blt _020E7188
+ ldr r1, _020E7644 ; =0xFFFFFC01
+ add r1, r1, r9, asr #0x14
+ cmp r1, #0x14
+ ble _020E7170
+ rsb r2, r1, #0x34
+ mov r1, r0, lsr r2
+ cmp r0, r1, lsl r2
+ andeq r1, r1, #0x1
+ rsbeq r5, r1, #0x2
+ b _020E7188
+_020E7170:
+ cmp r0, #0x0
+ rsbeq r2, r1, #0x14
+ moveq r1, r9, asr r2
+ cmpeq r9, r1, lsl r2
+ andeq r1, r1, #0x1
+ rsbeq r5, r1, #0x2
+_020E7188:
+ cmp r0, #0x0
+ bne _020E72E4
+ ldr r1, _020E763C ; =0x7FF00000
+ cmp r9, r1
+ bne _020E723C
+ add r0, r4, #0x100000
+ add r0, r0, #0xc0000000
+ orrs r0, r0, r7
+ bne _020E71D0
+ ldr r0, [sp, #0xb0]
+ ldr r1, [sp, #0xb4]
+ mov r2, r0
+ mov r3, r1
+ bl _dsub
+ add sp, sp, #0x80
+ ldmia sp!, {r3-r11,lr}
+ add sp, sp, #0x10
+ bx lr
+_020E71D0:
+ sub r0, r1, #0x40000000
+ cmp r4, r0
+ blt _020E7200
+ cmp r8, #0x0
+ ldrge r0, [sp, #0xb0]
+ ldrge r1, [sp, #0xb4]
+ movlt r0, #0x0
+ add sp, sp, #0x80
+ movlt r1, r0
+ ldmia sp!, {r3-r11,lr}
+ add sp, sp, #0x10
+ bx lr
+_020E7200:
+ cmp r8, #0x0
+ mov r0, #0x0
+ addge sp, sp, #0x80
+ movge r1, r0
+ ldmgeia sp!, {r3-r11,lr}
+ addge sp, sp, #0x10
+ bxge lr
+ ldr r2, [sp, #0xb0]
+ ldr r3, [sp, #0xb4]
+ mov r1, r0
+ bl _dsub
+ add sp, sp, #0x80
+ ldmia sp!, {r3-r11,lr}
+ add sp, sp, #0x10
+ bx lr
+_020E723C:
+ sub r0, r1, #0x40000000
+ cmp r9, r0
+ bne _020E7288
+ cmp r8, #0x0
+ ldrge r0, [sp, #0xa8]
+ ldrge r1, [sp, #0xac]
+ addge sp, sp, #0x80
+ ldmgeia sp!, {r3-r11,lr}
+ addge sp, sp, #0x10
+ bxge lr
+ ldr r2, [sp, #0xa8]
+ ldr r3, [sp, #0xac]
+ sub r1, r1, #0x40000000
+ mov r0, #0x0
+ bl _ddiv
+ add sp, sp, #0x80
+ ldmia sp!, {r3-r11,lr}
+ add sp, sp, #0x10
+ bx lr
+_020E7288:
+ cmp r8, #0x40000000
+ bne _020E72B4
+ ldr r0, [sp, #0xa8]
+ ldr r1, [sp, #0xac]
+ mov r2, r0
+ mov r3, r1
+ bl _dmul
+ add sp, sp, #0x80
+ ldmia sp!, {r3-r11,lr}
+ add sp, sp, #0x10
+ bx lr
+_020E72B4:
+ ldr r0, _020E7648 ; =0x3FE00000
+ cmp r8, r0
+ bne _020E72E4
+ cmp r6, #0x0
+ blt _020E72E4
+ ldr r0, [sp, #0xa8]
+ ldr r1, [sp, #0xac]
+ bl _dsqrt
+ add sp, sp, #0x80
+ ldmia sp!, {r3-r11,lr}
+ add sp, sp, #0x10
+ bx lr
+_020E72E4:
+ ldr r0, [sp, #0xa8]
+ ldr r1, [sp, #0xac]
+ bl fabs
+ str r0, [sp, #0x70]
+ str r1, [sp, #0x74]
+ cmp r7, #0x0
+ bne _020E73E8
+ ldr r0, _020E763C ; =0x7FF00000
+ cmp r4, r0
+ cmpne r4, #0x0
+ subne r0, r0, #0x40000000
+ cmpne r4, r0
+ bne _020E73E8
+ ldr r2, [sp, #0x70]
+ ldr r3, [sp, #0x74]
+ str r2, [sp, #0x78]
+ str r3, [sp, #0x7c]
+ cmp r8, #0x0
+ bge _020E7344
+ ldr r1, _020E7638 ; =0x3FF00000
+ mov r0, #0x0
+ bl _ddiv
+ str r0, [sp, #0x78]
+ str r1, [sp, #0x7c]
+_020E7344:
+ cmp r6, #0x0
+ bge _020E73D0
+ add r0, r4, #0x100000
+ add r0, r0, #0xc0000000
+ orrs r0, r0, r5
+ bne _020E73AC
+ ldr r0, [sp, #0x78]
+ ldr r1, [sp, #0x7c]
+ mov r2, r0
+ mov r3, r1
+ bl _dsub
+ mov r4, r0
+ mov r5, r1
+ ldr r0, [sp, #0x78]
+ ldr r1, [sp, #0x7c]
+ mov r2, r0
+ mov r3, r1
+ bl _dsub
+ mov r2, r0
+ mov r3, r1
+ mov r0, r4
+ mov r1, r5
+ bl _ddiv
+ str r0, [sp, #0x78]
+ str r1, [sp, #0x7c]
+ b _020E73D0
+_020E73AC:
+ cmp r5, #0x1
+ bne _020E73D0
+ mov r0, #0x0
+ ldr r2, [sp, #0x78]
+ ldr r3, [sp, #0x7c]
+ mov r1, r0
+ bl _dsub
+ str r0, [sp, #0x78]
+ str r1, [sp, #0x7c]
+_020E73D0:
+ ldr r0, [sp, #0x78]
+ ldr r1, [sp, #0x7c]
+ add sp, sp, #0x80
+ ldmia sp!, {r3-r11,lr}
+ add sp, sp, #0x10
+ bx lr
+_020E73E8:
+ mov r0, r6, asr #0x1f
+ add r7, r0, #0x1
+ orrs r0, r7, r5
+ bne _020E7420
+ ldr r0, _020E764C ; =0x02106B78
+ ldr r1, _020E7650 ; =0x021D74A8
+ ldr r0, [r0, #0x0]
+ mov r2, #0x21
+ str r2, [r1, #0x0]
+ bl _f2d
+ add sp, sp, #0x80
+ ldmia sp!, {r3-r11,lr}
+ add sp, sp, #0x10
+ bx lr
+_020E7420:
+ ldr r3, _020E7654 ; =0x41E00000
+ cmp r9, r3
+ ble _020E7724
+ add r0, r3, #0x2100000
+ cmp r9, r0
+ ble _020E7490
+ ldr r1, _020E7658 ; =0x3FEFFFFF
+ cmp r4, r1
+ bgt _020E7464
+ cmp r8, #0x0
+ mov r0, #0x0
+ addlt r1, r1, #0x40000001
+ add sp, sp, #0x80
+ movge r1, r0
+ ldmia sp!, {r3-r11,lr}
+ add sp, sp, #0x10
+ bx lr
+_020E7464:
+ add r0, r1, #0x1
+ cmp r4, r0
+ blt _020E7490
+ cmp r8, #0x0
+ mov r0, #0x0
+ addgt r1, r1, #0x40000001
+ add sp, sp, #0x80
+ movle r1, r0
+ ldmia sp!, {r3-r11,lr}
+ add sp, sp, #0x10
+ bx lr
+_020E7490:
+ ldr r2, _020E7658 ; =0x3FEFFFFF
+ cmp r4, r2
+ bge _020E74BC
+ cmp r8, #0x0
+ mov r0, #0x0
+ addlt r1, r2, #0x40000001
+ add sp, sp, #0x80
+ movge r1, r0
+ ldmia sp!, {r3-r11,lr}
+ add sp, sp, #0x10
+ bx lr
+_020E74BC:
+ add r0, r2, #0x1
+ cmp r4, r0
+ ble _020E74E8
+ cmp r8, #0x0
+ mov r0, #0x0
+ addgt r1, r2, #0x40000001
+ add sp, sp, #0x80
+ movle r1, r0
+ ldmia sp!, {r3-r11,lr}
+ add sp, sp, #0x10
+ bx lr
+_020E74E8:
+ ldr r0, [sp, #0xa8]
+ ldr r1, [sp, #0xac]
+ add r3, r2, #0x1
+ mov r2, #0x0
+ bl _dsub
+ mov r2, r0
+ mov r3, r1
+ str r0, [sp, #0x50]
+ str r1, [sp, #0x54]
+ bl _dmul
+ mov r6, r1
+ mov r4, r0
+ ldr r2, [sp, #0x50]
+ ldr r3, [sp, #0x54]
+ ldr r1, _020E765C ; =0x3FD00000
+ mov r0, #0x0
+ bl _dmul
+ mov r2, r0
+ mov r3, r1
+ ldr r0, _020E7660 ; =0x55555555
+ sub r1, r0, #0x15800000
+ bl _dsub
+ mov r2, r0
+ mov r3, r1
+ ldr r0, [sp, #0x50]
+ ldr r1, [sp, #0x54]
+ bl _dmul
+ mov r2, r0
+ mov r3, r1
+ mov r0, #0x0
+ ldr r1, _020E7648 ; =0x3FE00000
+ bl _dsub
+ mov r2, r0
+ mov r0, r4
+ mov r3, r1
+ mov r1, r6
+ bl _dmul
+ mov r6, r0
+ mov r8, r1
+ mov r0, #0x60000000
+ ldr r1, _020E7664 ; =0x3FF71547
+ ldr r2, [sp, #0x50]
+ ldr r3, [sp, #0x54]
+ bl _dmul
+ mov r4, r0
+ mov r9, r1
+ ldr r0, _020E7668 ; =0xF85DDF44
+ ldr r1, _020E766C ; =0x3E54AE0B
+ ldr r2, [sp, #0x50]
+ ldr r3, [sp, #0x54]
+ bl _dmul
+ mov r11, r0
+ mov r10, r1
+ ldr r0, _020E7670 ; =0x652B82FE
+ ldr r1, _020E7664 ; =0x3FF71547
+ mov r2, r6
+ mov r3, r8
+ bl _dmul
+ mov r2, r0
+ mov r3, r1
+ mov r0, r11
+ mov r1, r10
+ bl _dsub
+ mov r6, r0
+ mov r8, r1
+ mov r0, r4
+ mov r1, r9
+ mov r2, r6
+ mov r3, r8
+ bl _dadd
+ mov r2, r4
+ mov r3, r9
+ str r1, [sp, #0x5c]
+ mov r0, #0x0
+ str r0, [sp, #0x58]
+ bl _dsub
+ mov r2, r0
+ mov r0, r6
+ mov r3, r1
+ mov r1, r8
+ bl _dsub
+ mov r4, r0
+ mov r8, r1
+ b _020E7C80
+ .balign 4
+_020E7638: .word 0x3FF00000
+_020E763C: .word 0x7FF00000
+_020E7640: .word 0x43400000
+_020E7644: .word 0xFFFFFC01
+_020E7648: .word 0x3FE00000
+_020E764C: .word 0x02106B78
+_020E7650: .word 0x021D74A8
+_020E7654: .word 0x41E00000
+_020E7658: .word 0x3FEFFFFF
+_020E765C: .word 0x3FD00000
+_020E7660: .word 0x55555555
+_020E7664: .word 0x3FF71547
+_020E7668: .word 0xF85DDF44
+_020E766C: .word 0x3E54AE0B
+_020E7670: .word 0x652B82FE
+_020E7674: .word 0x0003988E
+_020E7678: .word 0x000BB67A
+_020E767C: .word 0x02104754
+_020E7680: .word 0x4A454EEF
+_020E7684: .word 0x3FCA7E28
+_020E7688: .word 0x93C9DB65
+_020E768C: .word 0x3FCD864A
+_020E7690: .word 0xA91D4101
+_020E7694: .word 0x3FD17460
+_020E7698: .word 0x518F264D
+_020E769C: .word 0x3FD55555
+_020E76A0: .word 0xDB6FABFF
+_020E76A4: .word 0x3FDB6DB6
+_020E76A8: .word 0x33333303
+_020E76AC: .word 0x3FE33333
+_020E76B0: .word 0x40080000
+_020E76B4: .word 0x3FEEC709
+_020E76B8: .word 0x145B01F5
+_020E76BC: .word 0xBE3E2FE0
+_020E76C0: .word 0xDC3A03FD
+_020E76C4: .word 0x02104764
+_020E76C8: .word 0x02104744
+_020E76CC: .word 0x40900000
+_020E76D0: .word 0x8800759C
+_020E76D4: .word 0x7E37E43C
+_020E76D8: .word 0x3C971547
+_020E76DC: .word 0x3F6F3400
+_020E76E0: .word 0xC2F8F359
+_020E76E4: .word 0x01A56E1F
+_020E76E8: .word 0x3FE62E43
+_020E76EC: .word 0xFEFA39EF
+_020E76F0: .word 0x3FE62E42
+_020E76F4: .word 0x0CA86C39
+_020E76F8: .word 0xBE205C61
+_020E76FC: .word 0x72BEA4D0
+_020E7700: .word 0x3E663769
+_020E7704: .word 0xC5D26BF1
+_020E7708: .word 0xBEBBBD41
+_020E770C: .word 0xAF25DE2C
+_020E7710: .word 0x3F11566A
+_020E7714: .word 0x16BEBD93
+_020E7718: .word 0xBF66C16C
+_020E771C: .word 0x5555553E
+_020E7720: .word 0x3FC55555
+_020E7724:
+ cmp r4, #0x100000
+ mov r6, #0x0
+ bge _020E7754
+ ldr r0, [sp, #0x70]
+ ldr r1, [sp, #0x74]
+ mov r2, r6
+ add r3, r3, #0x1600000
+ bl _dmul
+ mov r4, r1
+ str r0, [sp, #0x70]
+ str r4, [sp, #0x74]
+ sub r6, r6, #0x35
+_020E7754:
+ ldr r0, _020E7644 ; =0xFFFFFC01
+ ldr r1, _020E7674 ; =0x0003988E
+ and r2, r4, r0, lsr #0xc
+ add r0, r0, r4, asr #0x14
+ orr r9, r2, #0xff00000
+ cmp r2, r1
+ add r6, r6, r0
+ orr r9, r9, #0x30000000
+ movle r8, #0x0
+ ble _020E7794
+ ldr r0, _020E7678 ; =0x000BB67A
+ cmp r2, r0
+ movlt r8, #0x1
+ addge r6, r6, #0x1
+ subge r9, r9, #0x100000
+ movge r8, #0x0
+_020E7794:
+ ldr r2, _020E767C ; =0x02104754
+ ldr r0, [sp, #0x70]
+ add r1, r2, r8, lsl #0x3
+ ldr r3, [r1, #0x4]
+ ldr r2, [r2, r8, lsl #0x3]
+ mov r1, r9
+ str r9, [sp, #0x74]
+ bl _dsub
+ ldr r2, _020E767C ; =0x02104754
+ mov r10, r0
+ add r3, r2, r8, lsl #0x3
+ mov r4, r1
+ ldr r0, [sp, #0x70]
+ ldr r2, [r2, r8, lsl #0x3]
+ ldr r3, [r3, #0x4]
+ mov r1, r9
+ bl _dadd
+ mov r3, r1
+ mov r2, r0
+ ldr r1, _020E7638 ; =0x3FF00000
+ mov r0, #0x0
+ bl _ddiv
+ str r1, [sp, #0x24]
+ mov r11, r0
+ ldr r3, [sp, #0x24]
+ mov r0, r10
+ mov r1, r4
+ mov r2, r11
+ bl _dmul
+ mov r2, r9, asr #0x1
+ orr r2, r2, #0x20000000
+ mov r9, r1
+ add r2, r2, #0x80000
+ add r1, r2, r8, lsl #0x12
+ ldr r2, _020E767C ; =0x02104754
+ str r0, [sp, #0x28]
+ add r3, r2, r8, lsl #0x3
+ mov r0, #0x0
+ ldr r2, [r2, r8, lsl #0x3]
+ ldr r3, [r3, #0x4]
+ str r9, [sp, #0x4c]
+ str r1, [sp, #0x44]
+ str r0, [sp, #0x48]
+ str r0, [sp, #0x40]
+ bl _dsub
+ mov r2, r0
+ mov r3, r1
+ ldr r0, [sp, #0x70]
+ ldr r1, [sp, #0x74]
+ bl _dsub
+ str r0, [sp, #0x2c]
+ str r1, [sp, #0x1c]
+ ldr r0, [sp, #0x48]
+ ldr r2, [sp, #0x40]
+ ldr r3, [sp, #0x44]
+ mov r1, r9
+ bl _dmul
+ mov r2, r0
+ mov r3, r1
+ mov r0, r10
+ mov r1, r4
+ bl _dsub
+ mov r10, r0
+ mov r4, r1
+ ldr r2, [sp, #0x2c]
+ ldr r3, [sp, #0x1c]
+ ldr r0, [sp, #0x48]
+ mov r1, r9
+ bl _dmul
+ mov r2, r0
+ mov r3, r1
+ mov r0, r10
+ mov r1, r4
+ bl _dsub
+ mov r3, r1
+ mov r2, r0
+ ldr r1, [sp, #0x24]
+ mov r0, r11
+ bl _dmul
+ str r0, [sp, #0x30]
+ ldr r0, [sp, #0x28]
+ str r1, [sp, #0x14]
+ mov r1, r9
+ mov r2, r0
+ mov r3, r9
+ bl _dmul
+ mov r4, r0
+ mov r10, r1
+ mov r2, r4
+ mov r3, r10
+ bl _dmul
+ str r0, [sp, #0x34]
+ mov r11, r1
+ ldr r0, _020E7680 ; =0x4A454EEF
+ ldr r1, _020E7684 ; =0x3FCA7E28
+ mov r2, r4
+ mov r3, r10
+ bl _dmul
+ mov r2, r0
+ mov r3, r1
+ ldr r0, _020E7688 ; =0x93C9DB65
+ ldr r1, _020E768C ; =0x3FCD864A
+ bl _dadd
+ mov r2, r0
+ mov r3, r1
+ mov r0, r4
+ mov r1, r10
+ bl _dmul
+ mov r2, r0
+ mov r3, r1
+ ldr r0, _020E7690 ; =0xA91D4101
+ ldr r1, _020E7694 ; =0x3FD17460
+ bl _dadd
+ mov r2, r0
+ mov r3, r1
+ mov r0, r4
+ mov r1, r10
+ bl _dmul
+ mov r2, r0
+ mov r3, r1
+ ldr r0, _020E7698 ; =0x518F264D
+ ldr r1, _020E769C ; =0x3FD55555
+ bl _dadd
+ mov r2, r0
+ mov r3, r1
+ mov r0, r4
+ mov r1, r10
+ bl _dmul
+ mov r2, r0
+ mov r3, r1
+ ldr r0, _020E76A0 ; =0xDB6FABFF
+ ldr r1, _020E76A4 ; =0x3FDB6DB6
+ bl _dadd
+ mov r2, r0
+ mov r3, r1
+ mov r0, r4
+ mov r1, r10
+ bl _dmul
+ mov r2, r0
+ mov r3, r1
+ ldr r0, _020E76A8 ; =0x33333303
+ ldr r1, _020E76AC ; =0x3FE33333
+ bl _dadd
+ mov r2, r0
+ mov r3, r1
+ ldr r0, [sp, #0x34]
+ mov r1, r11
+ bl _dmul
+ mov r4, r0
+ mov r10, r1
+ ldr r0, [sp, #0x48]
+ ldr r2, [sp, #0x28]
+ mov r1, r9
+ mov r3, r9
+ bl _dadd
+ mov r2, r0
+ mov r3, r1
+ ldr r0, [sp, #0x30]
+ ldr r1, [sp, #0x14]
+ bl _dmul
+ mov r2, r0
+ mov r3, r1
+ mov r0, r4
+ mov r1, r10
+ bl _dadd
+ mov r4, r0
+ ldr r0, [sp, #0x48]
+ mov r10, r1
+ mov r1, r9
+ mov r2, r0
+ mov r3, r1
+ bl _dmul
+ str r1, [sp, #0xc]
+ mov r11, r0
+ ldr r1, _020E76B0 ; =0x40080000
+ ldr r3, [sp, #0xc]
+ mov r0, #0x0
+ mov r2, r11
+ bl _dadd
+ mov r2, r4
+ mov r3, r10
+ bl _dadd
+_020E7A6C: ; 0x020E7A6C
+ mov r0, #0x0
+ ldr r3, _020E76B0 ; =0x40080000
+ mov r2, r0
+ str r1, [sp, #0x44]
+ str r0, [sp, #0x40]
+ bl _dsub
+ ldr r3, [sp, #0xc]
+ mov r2, r11
+ bl _dsub
+ mov r2, r0
+ mov r3, r1
+ mov r0, r4
+ mov r1, r10
+ bl _dsub
+ str r0, [sp, #0x38]
+ str r1, [sp, #0x4]
+ ldr r0, [sp, #0x48]
+ ldr r2, [sp, #0x40]
+ ldr r3, [sp, #0x44]
+ mov r1, r9
+ bl _dmul
+ mov r4, r0
+ mov r10, r1
+ ldr r0, [sp, #0x30]
+ ldr r1, [sp, #0x14]
+ ldr r2, [sp, #0x40]
+ ldr r3, [sp, #0x44]
+ bl _dmul
+ str r0, [sp, #0x3c]
+ mov r11, r1
+ ldr r0, [sp, #0x38]
+ ldr r1, [sp, #0x4]
+ ldr r2, [sp, #0x28]
+ mov r3, r9
+ bl _dmul
+ mov r2, r0
+ mov r3, r1
+ ldr r0, [sp, #0x3c]
+ mov r1, r11
+ bl _dadd
+ mov r9, r0
+ mov r11, r1
+ mov r0, r4
+ mov r1, r10
+ mov r2, r9
+ mov r3, r11
+ bl _dadd
+_020E7B28: ; 0x020E7B28
+ mov r0, #0x0
+ mov r2, r4
+ mov r3, r10
+ str r1, [sp, #0x6c]
+ str r0, [sp, #0x68]
+ bl _dsub
+ mov r2, r0
+ mov r3, r1
+ mov r0, r9
+ mov r1, r11
+ bl _dsub
+ mov r10, r1
+ mov r11, r0
+ ldr r1, _020E76B4 ; =0x3FEEC709
+ ldr r2, [sp, #0x68]
+ ldr r3, [sp, #0x6c]
+ mov r0, #0xe0000000
+ bl _dmul
+ mov r4, r0
+ mov r9, r1
+ ldr r0, _020E76B8 ; =0x145B01F5
+ ldr r1, _020E76BC ; =0xBE3E2FE0
+ ldr r2, [sp, #0x68]
+ ldr r3, [sp, #0x6c]
+ bl _dmul
+ mov r2, r11
+ mov r3, r10
+ mov r11, r0
+ mov r10, r1
+ ldr r0, _020E76C0 ; =0xDC3A03FD
+ ldr r1, _020E76B4 ; =0x3FEEC709
+ bl _dmul
+ mov r2, r0
+ mov r3, r1
+ mov r0, r11
+ mov r1, r10
+ bl _dadd
+ mov r2, r0
+ mov r3, r1
+ ldr r0, _020E76C4 ; =0x02104764
+ add r1, r0, r8, lsl #0x3
+ ldr r0, [r0, r8, lsl #0x3]
+ ldr r1, [r1, #0x4]
+ bl _dadd
+ mov r11, r0
+ mov r10, r1
+ mov r0, r6
+ bl _dflt
+ str r0, [sp, #0x50]
+ str r1, [sp, #0x54]
+ mov r0, r4
+ mov r1, r9
+ mov r2, r11
+ mov r3, r10
+ bl _dadd
+ ldr r2, _020E76C8 ; =0x02104744
+ add r3, r2, r8, lsl #0x3
+ ldr r2, [r2, r8, lsl #0x3]
+ ldr r3, [r3, #0x4]
+ bl _dadd
+ mov r2, r0
+ mov r3, r1
+ ldr r0, [sp, #0x50]
+ ldr r1, [sp, #0x54]
+ bl _dadd
+ str r1, [sp, #0x5c]
+ mov r0, #0x0
+ str r0, [sp, #0x58]
+ ldr r2, [sp, #0x50]
+ ldr r3, [sp, #0x54]
+ bl _dsub
+ ldr r2, _020E76C8 ; =0x02104744
+ add r3, r2, r8, lsl #0x3
+ ldr r2, [r2, r8, lsl #0x3]
+ ldr r3, [r3, #0x4]
+ bl _dsub
+ mov r2, r4
+ mov r3, r9
+ bl _dsub
+ mov r2, r0
+ mov r0, r11
+ mov r3, r1
+ mov r1, r10
+ bl _dsub
+ mov r4, r0
+ mov r8, r1
+_020E7C80:
+ sub r0, r5, #0x1
+ ldr r1, [sp, #0xb4]
+ orrs r0, r7, r0
+ ldr r5, _020E7638 ; =0x3FF00000
+ mov r2, #0x0
+ ldr r0, [sp, #0xb0]
+ mov r3, r1
+ mov r6, #0x0
+ subeq r5, r5, #0x80000000
+ str r1, [sp, #0x64]
+ str r2, [sp, #0x60]
+ bl _dsub
+ mov r2, r0
+ mov r3, r1
+ ldr r0, [sp, #0x58]
+ ldr r1, [sp, #0x5c]
+ bl _dmul
+ mov r7, r0
+ mov r9, r1
+ ldr r0, [sp, #0xb0]
+ ldr r1, [sp, #0xb4]
+ mov r2, r4
+ mov r3, r8
+ bl _dmul
+ mov r2, r0
+ mov r3, r1
+ mov r0, r7
+ mov r1, r9
+ bl _dadd
+ mov r7, r0
+ mov r8, r1
+ ldr r0, [sp, #0x60]
+ ldr r1, [sp, #0x64]
+ ldr r2, [sp, #0x58]
+ ldr r3, [sp, #0x5c]
+ bl _dmul
+ mov r2, r0
+ mov r3, r1
+ mov r0, r7
+ mov r1, r8
+ str r2, [sp, #0x68]
+ str r3, [sp, #0x6c]
+ bl _dadd
+ mov r9, r1
+ ldr r2, _020E76CC ; =0x40900000
+ str r0, [sp, #0x78]
+ str r9, [sp, #0x7c]
+ cmp r9, r2
+ blt _020E7E0C
+ add r1, r9, #0xf700000
+ add r1, r1, #0xb0000000
+ orrs r0, r1, r0
+ beq _020E7D8C
+ ldr r0, _020E76D0 ; =0x8800759C
+ ldr r1, _020E76D4 ; =0x7E37E43C
+ mov r2, r6
+ mov r3, r5
+ bl _dmul
+ mov r2, r0
+ mov r3, r1
+ ldr r0, _020E76D0 ; =0x8800759C
+ ldr r1, _020E76D4 ; =0x7E37E43C
+ bl _dmul
+ add sp, sp, #0x80
+ ldmia sp!, {r3-r11,lr}
+ add sp, sp, #0x10
+ bx lr
+_020E7D8C:
+ ldr r0, _020E7670 ; =0x652B82FE
+ ldr r1, _020E76D8 ; =0x3C971547
+ mov r2, r7
+ mov r3, r8
+ bl _dadd
+ mov r4, r0
+ mov r10, r1
+ ldr r0, [sp, #0x78]
+ ldr r2, [sp, #0x68]
+ ldr r3, [sp, #0x6c]
+ mov r1, r9
+ bl _dsub
+ mov r2, r0
+ mov r3, r1
+ mov r0, r4
+ mov r1, r10
+ bl _dgr
+ bls _020E7EC0
+ ldr r0, _020E76D0 ; =0x8800759C
+ ldr r1, _020E76D4 ; =0x7E37E43C
+ mov r2, r6
+ mov r3, r5
+ bl _dmul
+ mov r2, r0
+ mov r3, r1
+ ldr r0, _020E76D0 ; =0x8800759C
+ ldr r1, _020E76D4 ; =0x7E37E43C
+ bl _dmul
+ add sp, sp, #0x80
+ ldmia sp!, {r3-r11,lr}
+ add sp, sp, #0x10
+ bx lr
+_020E7E0C:
+ bic r3, r9, #0x80000000
+ add r2, r2, #0xcc00
+ cmp r3, r2
+ blt _020E7EC0
+ ldr r2, _020E76DC ; =0x3F6F3400
+ add r2, r9, r2
+ orrs r2, r2, r0
+ beq _020E7E64
+ ldr r0, _020E76E0 ; =0xC2F8F359
+ ldr r1, _020E76E4 ; =0x01A56E1F
+ mov r2, r6
+ mov r3, r5
+ bl _dmul
+ mov r2, r0
+ mov r3, r1
+ ldr r0, _020E76E0 ; =0xC2F8F359
+ ldr r1, _020E76E4 ; =0x01A56E1F
+ bl _dmul
+ add sp, sp, #0x80
+ ldmia sp!, {r3-r11,lr}
+ add sp, sp, #0x10
+ bx lr
+_020E7E64:
+ ldr r2, [sp, #0x68]
+ ldr r3, [sp, #0x6c]
+ bl _dsub
+ mov r2, r0
+ mov r3, r1
+ mov r0, r7
+ mov r1, r8
+ bl _dleq
+ bhi _020E7EC0
+ ldr r0, _020E76E0 ; =0xC2F8F359
+ ldr r1, _020E76E4 ; =0x01A56E1F
+ mov r2, r6
+ mov r3, r5
+ bl _dmul
+ mov r2, r0
+ mov r3, r1
+ ldr r0, _020E76E0 ; =0xC2F8F359
+ ldr r1, _020E76E4 ; =0x01A56E1F
+ bl _dmul
+ add sp, sp, #0x80
+ ldmia sp!, {r3-r11,lr}
+ add sp, sp, #0x10
+ bx lr
+_020E7EC0:
+ ldr r0, _020E7644 ; =0xFFFFFC01
+ bic r3, r9, #0x80000000
+ ldr r1, _020E7648 ; =0x3FE00000
+ add r2, r0, r3, asr #0x14
+ cmp r3, r1
+ mov r4, #0x0
+ ble _020E7F3C
+ mov r1, #0x100000
+ add r2, r2, #0x1
+ add r2, r9, r1, asr r2
+ bic r3, r2, #0x80000000
+ add r0, r0, r3, asr #0x14
+ sub r3, r1, #0x1
+ mvn r3, r3, asr r0
+ sub r1, r1, #0x1
+ and r1, r2, r1
+ and r2, r2, r3
+ str r2, [sp, #0x54]
+ str r4, [sp, #0x50]
+ orr r1, r1, #0x100000
+ rsb r0, r0, #0x14
+ mov r4, r1, asr r0
+ cmp r9, #0x0
+ ldr r0, [sp, #0x68]
+ ldr r1, [sp, #0x6c]
+ ldr r2, [sp, #0x50]
+ ldr r3, [sp, #0x54]
+ rsblt r4, r4, #0x0
+ bl _dsub
+ str r0, [sp, #0x68]
+ str r1, [sp, #0x6c]
+_020E7F3C:
+ ldr r2, [sp, #0x68]
+ ldr r3, [sp, #0x6c]
+ mov r0, r7
+ mov r1, r8
+ bl _dadd
+ mov r3, r1
+ mov r0, #0x0
+ ldr r1, _020E76E8 ; =0x3FE62E43
+ mov r2, r0
+ str r3, [sp, #0x54]
+ str r0, [sp, #0x50]
+ bl _dmul
+ mov r9, r0
+ mov r10, r1
+ ldr r0, [sp, #0x50]
+ ldr r1, [sp, #0x54]
+ ldr r2, [sp, #0x68]
+ ldr r3, [sp, #0x6c]
+ bl _dsub
+ mov r2, r0
+ mov r0, r7
+ mov r3, r1
+ mov r1, r8
+ bl _dsub
+ mov r2, r0
+ mov r3, r1
+ ldr r0, _020E76EC ; =0xFEFA39EF
+ ldr r1, _020E76F0 ; =0x3FE62E42
+ bl _dmul
+ mov r7, r0
+ mov r8, r1
+ ldr r0, _020E76F4 ; =0x0CA86C39
+ ldr r1, _020E76F8 ; =0xBE205C61
+ ldr r2, [sp, #0x50]
+ ldr r3, [sp, #0x54]
+ bl _dmul
+ mov r2, r0
+ mov r0, r7
+ mov r3, r1
+ mov r1, r8
+ bl _dadd
+ mov r7, r0
+ mov r8, r1
+ mov r0, r9
+ mov r1, r10
+ mov r2, r7
+ mov r3, r8
+ bl _dadd
+ mov r2, r9
+ mov r3, r10
+ str r0, [sp, #0x78]
+ str r1, [sp, #0x7c]
+ bl _dsub
+ mov r2, r0
+ mov r3, r1
+ mov r0, r7
+ mov r1, r8
+ bl _dsub
+ mov r8, r0
+ mov r9, r1
+ ldr r0, [sp, #0x78]
+ ldr r1, [sp, #0x7c]
+ mov r2, r0
+ mov r3, r1
+ bl _dmul
+ mov r2, r0
+ str r2, [sp, #0x50]
+ mov r3, r1
+ str r3, [sp, #0x54]
+ ldr r0, _020E76FC ; =0x72BEA4D0
+ ldr r1, _020E7700 ; =0x3E663769
+ bl _dmul
+ mov r2, r0
+ mov r3, r1
+ ldr r0, _020E7704 ; =0xC5D26BF1
+ ldr r1, _020E7708 ; =0xBEBBBD41
+ bl _dadd
+ mov r2, r0
+ mov r3, r1
+ ldr r0, [sp, #0x50]
+ ldr r1, [sp, #0x54]
+ bl _dmul
+ mov r2, r0
+ mov r3, r1
+ ldr r0, _020E770C ; =0xAF25DE2C
+ ldr r1, _020E7710 ; =0x3F11566A
+ bl _dadd
+ mov r2, r0
+ mov r3, r1
+ ldr r0, [sp, #0x50]
+ ldr r1, [sp, #0x54]
+ bl _dmul
+ mov r2, r0
+ mov r3, r1
+ ldr r0, _020E7714 ; =0x16BEBD93
+ ldr r1, _020E7718 ; =0xBF66C16C
+ bl _dadd
+ mov r2, r0
+ mov r3, r1
+ ldr r0, [sp, #0x50]
+ ldr r1, [sp, #0x54]
+ bl _dmul
+ mov r2, r0
+ mov r3, r1
+ ldr r0, _020E771C ; =0x5555553E
+ ldr r1, _020E7720 ; =0x3FC55555
+ bl _dadd
+ mov r2, r0
+ mov r3, r1
+ ldr r0, [sp, #0x50]
+ ldr r1, [sp, #0x54]
+ bl _dmul
+ mov r2, r0
+ mov r3, r1
+ ldr r0, [sp, #0x78]
+ ldr r1, [sp, #0x7c]
+ bl _dsub
+ mov r2, r0
+ str r2, [sp, #0x58]
+ mov r3, r1
+ str r3, [sp, #0x5c]
+ ldr r0, [sp, #0x78]
+ ldr r1, [sp, #0x7c]
+ bl _dmul
+ mov r7, r0
+ mov r10, r1
+ ldr r0, [sp, #0x58]
+ ldr r1, [sp, #0x5c]
+ mov r2, #0x0
+ mov r3, #0x40000000
+ bl _dsub
+ mov r2, r0
+ mov r0, r7
+ mov r3, r1
+ mov r1, r10
+ bl _ddiv
+ mov r7, r0
+ mov r10, r1
+ ldr r0, [sp, #0x78]
+ ldr r1, [sp, #0x7c]
+ mov r2, r8
+ mov r3, r9
+ bl _dmul
+ mov r2, r0
+ mov r0, r8
+ mov r3, r1
+ mov r1, r9
+ bl _dadd
+ mov r2, r0
+ mov r0, r7
+ mov r3, r1
+ mov r1, r10
+ bl _dsub
+ ldr r2, [sp, #0x78]
+ ldr r3, [sp, #0x7c]
+ bl _dsub
+ mov r3, r1
+ mov r2, r0
+ ldr r1, _020E7638 ; =0x3FF00000
+ mov r0, #0x0
+ bl _dsub
+ add r3, r1, r4, lsl #0x14
+ mov r2, r3, asr #0x14
+ str r0, [sp, #0x78]
+ cmp r2, #0x0
+ str r1, [sp, #0x7c]
+ addgt r0, sp, #0x78
+ strgt r3, [r0, #0x4]
+ bgt _020E81F0
+ mov r2, r4
+ bl scalbn
+ str r0, [sp, #0x78]
+ str r1, [sp, #0x7c]
+_020E81F0:
+ ldr r2, [sp, #0x78]
+ ldr r3, [sp, #0x7c]
+ mov r0, r6
+ mov r1, r5
+ bl _dmul
+ add sp, sp, #0x80
+ ldmia sp!, {r3-r11,lr}
+ add sp, sp, #0x10
+ bx lr
+
+ arm_func_start copysign
+copysign: ; 0x020E8214
+ stmdb sp!, {r0-r3}
+ ldr r1, [sp, #0x4]
+ ldr r0, [sp, #0xc]
+ bic r1, r1, #0x80000000
+ and r0, r0, #0x80000000
+ orr r1, r1, r0
+ ldr r0, [sp, #0x0]
+ str r1, [sp, #0x4]
+ add sp, sp, #0x10
+ bx lr
+
+ arm_func_start fabs
+fabs: ; 0x020E823C
+ stmdb sp!, {r0-r3}
+ add r2, sp, #0x0
+ ldr r1, [r2, #0x4]
+ ldr r0, [sp, #0x0]
+ bic r1, r1, #0x80000000
+ str r1, [r2, #0x4]
+ add sp, sp, #0x10
+ bx lr
+
+ arm_func_start frexp
+frexp: ; 0x020E825C
+ stmdb sp!, {r0-r3}
+ stmdb sp!, {r4,lr}
+ ldr r1, [sp, #0xc]
+ ldr r0, _020E8308 ; =0x7FF00000
+ mov r4, r2
+ bic r3, r1, #0x80000000
+ mov r2, #0x0
+ str r2, [r4, #0x0]
+ cmp r3, r0
+ ldr r0, [sp, #0x8]
+ bge _020E8290
+ orrs r0, r3, r0
+ bne _020E82A4
+_020E8290:
+ ldr r0, [sp, #0x8]
+ ldr r1, [sp, #0xc]
+ ldmia sp!, {r4,lr}
+ add sp, sp, #0x10
+ bx lr
+_020E82A4:
+ cmp r3, #0x100000
+ bge _020E82D0
+ ldr r0, [sp, #0x8]
+ ldr r1, [sp, #0xc]
+ ldr r3, _020E830C ; =0x43500000
+ bl _dmul
+ mvn r2, #0x35
+ str r0, [sp, #0x8]
+ str r1, [sp, #0xc]
+ str r2, [r4, #0x0]
+ bic r3, r1, #0x80000000
+_020E82D0:
+ ldr r2, _020E8310 ; =0x800FFFFF
+ ldr r0, _020E8314 ; =0xFFFFFC02
+ and r1, r1, r2
+ orr r1, r1, #0xfe00000
+ orr r1, r1, #0x30000000
+ ldr r2, [r4, #0x0]
+ add r0, r0, r3, asr #0x14
+ add r2, r2, r0
+ ldr r0, [sp, #0x8]
+ str r2, [r4, #0x0]
+ str r1, [sp, #0xc]
+ ldmia sp!, {r4,lr}
+ add sp, sp, #0x10
+ bx lr
+ .balign 4
+_020E8308: .word 0x7FF00000
+_020E830C: .word 0x43500000
+_020E8310: .word 0x800FFFFF
+_020E8314: .word 0xFFFFFC02
+
+ arm_func_start ldexp
+ldexp: ; 0x020E8318
+ stmdb sp!, {r0-r3}
+ stmdb sp!, {r4,lr}
+ ldr r0, [sp, #0x8]
+ ldr r1, [sp, #0xc]
+ mov r4, r2
+ bl __fpclassifyf
+ cmp r0, #0x2
+ ble _020E8350
+ mov r0, #0x0
+ ldr r2, [sp, #0x8]
+ ldr r3, [sp, #0xc]
+ mov r1, r0
+ bl _deq
+ bne _020E8364
+_020E8350:
+ ldr r0, [sp, #0x8]
+ ldr r1, [sp, #0xc]
+ ldmia sp!, {r4,lr}
+ add sp, sp, #0x10
+ bx lr
+_020E8364:
+ ldr r3, [sp, #0xc]
+ ldr r0, _020E8538 ; =0x7FF00000
+ ldr r1, [sp, #0x8]
+ and r0, r3, r0
+ movs r12, r0, asr #0x14
+ bne _020E83F0
+ bic r0, r3, #0x80000000
+ orrs r0, r1, r0
+ ldreq r0, [sp, #0x8]
+ ldreq r1, [sp, #0xc]
+ ldmeqia sp!, {r4,lr}
+ addeq sp, sp, #0x10
+ bxeq lr
+ ldr r0, [sp, #0x8]
+ ldr r1, [sp, #0xc]
+ ldr r3, _020E853C ; =0x43500000
+ mov r2, #0x0
+ bl _dmul
+ mov r3, r1
+ ldr r1, _020E8538 ; =0x7FF00000
+ ldr ip, _020E8540 ; =0xFFFF3CB0
+ and r1, r3, r1
+ mov r2, r0
+ mov r0, r1, asr #0x14
+ str r2, [sp, #0x8]
+ str r3, [sp, #0xc]
+ cmp r4, r12
+ sub r12, r0, #0x36
+ bge _020E83F0
+ ldr r0, _020E8544 ; =0xC2F8F359
+ ldr r1, _020E8548 ; =0x01A56E1F
+ bl _dmul
+ ldmia sp!, {r4,lr}
+ add sp, sp, #0x10
+ bx lr
+_020E83F0:
+ ldr r0, _020E854C ; =0x000007FF
+ cmp r12, r0
+ bne _020E841C
+ ldr r0, [sp, #0x8]
+ ldr r1, [sp, #0xc]
+ mov r2, r0
+ mov r3, r1
+ bl _dadd
+ ldmia sp!, {r4,lr}
+ add sp, sp, #0x10
+ bx lr
+_020E841C:
+ add r2, r12, r4
+ sub r0, r0, #0x1
+ cmp r2, r0
+ ble _020E8460
+ ldr r2, [sp, #0x8]
+ ldr r3, [sp, #0xc]
+ ldr r0, _020E8550 ; =0x8800759C
+ ldr r1, _020E8554 ; =0x7E37E43C
+ bl copysign
+ mov r2, r0
+ mov r3, r1
+ ldr r0, _020E8550 ; =0x8800759C
+ ldr r1, _020E8554 ; =0x7E37E43C
+ bl _dmul
+ ldmia sp!, {r4,lr}
+ add sp, sp, #0x10
+ bx lr
+_020E8460:
+ cmp r2, #0x0
+ ble _020E8488
+ ldr r1, _020E8558 ; =0x800FFFFF
+ ldr r0, [sp, #0x8]
+ and r1, r3, r1
+ orr r1, r1, r2, lsl #0x14
+ str r1, [sp, #0xc]
+ ldmia sp!, {r4,lr}
+ add sp, sp, #0x10
+ bx lr
+_020E8488:
+ mvn r0, #0x35
+ cmp r2, r0
+ bgt _020E8508
+ ldr r0, _020E855C ; =0x0000C350
+ cmp r4, r0
+ ble _020E84D4
+ ldr r2, [sp, #0x8]
+ ldr r3, [sp, #0xc]
+ ldr r0, _020E8550 ; =0x8800759C
+ ldr r1, _020E8554 ; =0x7E37E43C
+ bl copysign
+ mov r2, r0
+ mov r3, r1
+ ldr r0, _020E8550 ; =0x8800759C
+ ldr r1, _020E8554 ; =0x7E37E43C
+ bl _dmul
+ ldmia sp!, {r4,lr}
+ add sp, sp, #0x10
+ bx lr
+_020E84D4:
+ ldr r2, [sp, #0x8]
+ ldr r3, [sp, #0xc]
+ ldr r0, _020E8544 ; =0xC2F8F359
+ ldr r1, _020E8548 ; =0x01A56E1F
+ bl copysign
+ mov r2, r0
+ mov r3, r1
+ ldr r0, _020E8544 ; =0xC2F8F359
+ ldr r1, _020E8548 ; =0x01A56E1F
+ bl _dmul
+ ldmia sp!, {r4,lr}
+ add sp, sp, #0x10
+ bx lr
+_020E8508:
+ ldr r0, _020E8558 ; =0x800FFFFF
+ add r1, r2, #0x36
+ and r0, r3, r0
+ orr r3, r0, r1, lsl #0x14
+ ldr r2, [sp, #0x8]
+ ldr r1, _020E8560 ; =0x3C900000
+ mov r0, #0x0
+ str r3, [sp, #0xc]
+ bl _dmul
+ ldmia sp!, {r4,lr}
+ add sp, sp, #0x10
+ bx lr
+ .balign 4
+_020E8538: .word 0x7FF00000
+_020E853C: .word 0x43500000
+_020E8540: .word 0xFFFF3CB0
+_020E8544: .word 0xC2F8F359
+_020E8548: .word 0x01A56E1F
+_020E854C: .word 0x000007FF
+_020E8550: .word 0x8800759C
+_020E8554: .word 0x7E37E43C
+_020E8558: .word 0x800FFFFF
+_020E855C: .word 0x0000C350
+_020E8560: .word 0x3C900000
+
+ arm_func_start pow
+pow: ; 0x020E8564
+ ldr ip, _020E856C ; =__ieee754_pow
+ bx r12
+ .balign 4
+_020E856C: .word __ieee754_pow
+
+ arm_func_start __must_round
+__must_round: ; 0x020E8570
+ add r3, r0, #0x5
+ ldrb r2, [r3, r1]
+ add r12, r3, r1
+ cmp r2, #0x5
+ movhi r0, #0x1
+ bxhi lr
+ mvncc r0, #0x0
+ bxcc lr
+ ldrb r2, [r0, #0x4]
+ add r12, r12, #0x1
+ add r3, r3, r2
+ cmp r12, r3
+ bhs _020E85C0
+_020E85A4:
+ ldrb r2, [r12, #0x0]
+ cmp r2, #0x0
+ movne r0, #0x1
+ bxne lr
+ add r12, r12, #0x1
+ cmp r12, r3
+ blo _020E85A4
+_020E85C0:
+ sub r1, r1, #0x1
+ add r0, r0, r1
+ ldrb r0, [r0, #0x5]
+ tst r0, #0x1
+ movne r0, #0x1
+ mvneq r0, #0x0
+ bx lr
+
+ arm_func_start __dorounddecup
+__dorounddecup: ; 0x020E85DC
+ add r3, r0, #0x5
+ add r1, r3, r1
+ sub r12, r1, #0x1
+ mov r1, #0x0
+_020E85EC:
+ ldrb r2, [r12, #0x0]
+ cmp r2, #0x9
+ addcc r0, r2, #0x1
+ strccb r0, [r12, #0x0]
+ bxcc lr
+ cmp r12, r3
+ bne _020E8620
+ mov r1, #0x1
+ strb r1, [r12, #0x0]
+ ldrsh r1, [r0, #0x2]
+ add r1, r1, #0x1
+ strh r1, [r0, #0x2]
+ bx lr
+_020E8620:
+ strb r1, [r12], #-0x1
+ b _020E85EC
+_020E8628: ; 0x020E8628
+ bx lr
+
+ arm_func_start __rounddec
+__rounddec: ; 0x020E862C
+ stmdb sp!, {r3-r5,lr}
+ mov r4, r1
+ mov r5, r0
+ cmp r4, #0x0
+ ldmleia sp!, {r3-r5,pc}
+_020E8640: ; 0x020E8640
+ ldrb r2, [r5, #0x4]
+ cmp r4, r2
+ ldmgeia sp!, {r3-r5,pc}
+_020E864C: ; 0x020E864C
+ bl __must_round
+ strb r4, [r5, #0x4]
+ cmp r0, #0x0
+ ldmltia sp!, {r3-r5,pc}
+_020E865C: ; 0x020E865C
+ mov r0, r5
+ mov r1, r4
+ bl __dorounddecup
+ ldmia sp!, {r3-r5,pc}
+
+ arm_func_start __ull2dec
+__ull2dec: ; 0x020E866C
+ stmdb sp!, {r3-r11,lr}
+ mov r10, r0
+ mov r0, #0x0
+ mov r8, r2
+ strb r0, [r10, #0x0]
+ mov r9, r1
+ cmp r8, #0x0
+ strb r0, [r10, #0x4]
+ cmpeq r9, #0x0
+ beq _020E86F8
+ mov r6, #0xa
+ mov r11, r0
+ mov r5, r0
+ mov r4, r0
+_020E86A4:
+ ldrb r1, [r10, #0x4]
+ mov r0, r9
+ mov r2, r6
+ add r3, r1, #0x1
+ mov r7, r1
+ strb r3, [r10, #0x4]
+ mov r1, r8
+ mov r3, r11
+ bl _ull_mod
+ add r1, r10, r7
+ strb r0, [r1, #0x5]
+ mov r0, r9
+ mov r1, r8
+ mov r2, #0xa
+ mov r3, #0x0
+ bl _ll_udiv
+ mov r8, r1
+ mov r9, r0
+ cmp r8, r5
+ cmpeq r9, r4
+ bne _020E86A4
+_020E86F8:
+ ldrb r0, [r10, #0x4]
+ add r2, r10, #0x5
+ add r0, r2, r0
+ sub r3, r0, #0x1
+ cmp r2, r3
+ bhs _020E8728
+_020E8710:
+ ldrb r0, [r3, #0x0]
+ ldrb r1, [r2, #0x0]
+ strb r0, [r2], #0x1
+ strb r1, [r3], #-0x1
+ cmp r2, r3
+ blo _020E8710
+_020E8728:
+ ldrb r0, [r10, #0x4]
+ sub r0, r0, #0x1
+ strh r0, [r10, #0x2]
+ ldmia sp!, {r3-r11,pc}
+
+ arm_func_start __timesdec
+__timesdec: ; 0x020E8738
+ stmdb sp!, {r3-r11,lr}
+ sub sp, sp, #0x40
+ ldrb r6, [r1, #0x4]
+ ldrb r5, [r2, #0x4]
+ mov r4, #0x0
+ add r3, sp, #0x0
+ add r5, r6, r5
+ sub r5, r5, #0x1
+ add r3, r3, r5
+ add r6, r3, #0x1
+ mov r7, r6
+ strb r4, [r0, #0x0]
+ cmp r5, #0x0
+ ble _020E8800
+ add lr, r1, #0x5
+ add r11, r2, #0x5
+_020E8778:
+ ldrb r3, [r2, #0x4]
+ sub r10, r3, #0x1
+ sub r3, r5, r10
+ subs r9, r3, #0x1
+ ldrb r3, [r1, #0x4]
+ movmi r9, #0x0
+ submi r10, r5, #0x1
+ add r8, r10, #0x1
+ sub r3, r3, r9
+ cmp r8, r3
+ movgt r8, r3
+ add r10, r11, r10
+ add r9, lr, r9
+ cmp r8, #0x0
+ ble _020E87CC
+_020E87B4:
+ ldrb r12, [r9], #0x1
+ ldrb r3, [r10], #-0x1
+ sub r8, r8, #0x1
+ cmp r8, #0x0
+ mla r4, r12, r3, r4
+ bgt _020E87B4
+_020E87CC:
+ ldr r3, _020E88B8 ; =0xCCCCCCCD
+ sub r5, r5, #0x1
+ umull r8, r9, r4, r3
+ mov r9, r9, lsr #0x3
+ cmp r5, #0x0
+ mov r10, #0xa
+ umull r8, r9, r10, r9
+ sub r9, r4, r8
+ strb r9, [r6, #-0x1]!
+ mov r8, r4
+ umull r3, r4, r8, r3
+ mov r4, r4, lsr #0x3
+ bgt _020E8778
+_020E8800:
+ ldrsh r3, [r1, #0x2]
+ ldrsh r1, [r2, #0x2]
+ cmp r4, #0x0
+ add r1, r3, r1
+ strh r1, [r0, #0x2]
+ beq _020E8828
+ strb r4, [r6, #-0x1]!
+ ldrsh r1, [r0, #0x2]
+ add r1, r1, #0x1
+ strh r1, [r0, #0x2]
+_020E8828:
+ mov r3, #0x0
+ b _020E8840
+_020E8830:
+ ldrb r2, [r6], #0x1
+ add r1, r0, r3
+ add r3, r3, #0x1
+ strb r2, [r1, #0x5]
+_020E8840:
+ cmp r3, #0x20
+ bge _020E8850
+ cmp r6, r7
+ blo _020E8830
+_020E8850:
+ cmp r6, r7
+ addcs sp, sp, #0x40
+ strb r3, [r0, #0x4]
+ ldmcsia sp!, {r3-r11,pc}
+_020E8860: ; 0x020E8860
+ ldrb r1, [r6, #0x0]
+ cmp r1, #0x5
+ addcc sp, sp, #0x40
+ ldmccia sp!, {r3-r11,pc}
+_020E8870: ; 0x020E8870
+ bne _020E88A8
+ add r2, r6, #0x1
+ cmp r2, r7
+ bhs _020E8898
+_020E8880:
+ ldrb r1, [r2, #0x0]
+ cmp r1, #0x0
+ bne _020E88A8
+ add r2, r2, #0x1
+ cmp r2, r7
+ blo _020E8880
+_020E8898:
+ ldrb r1, [r6, #-0x1]
+ tst r1, #0x1
+ addeq sp, sp, #0x40
+ ldmeqia sp!, {r3-r11,pc}
+_020E88A8:
+ ldrb r1, [r0, #0x4]
+ bl __dorounddecup
+ add sp, sp, #0x40
+ ldmia sp!, {r3-r11,pc}
+ .balign 4
+_020E88B8: .word 0xCCCCCCCD
+
+ arm_func_start __str2dec
+__str2dec: ; 0x020E88BC
+ stmdb sp!, {r3,lr}
+ strh r2, [r0, #0x2]
+ mov r12, #0x0
+ strb r12, [r0, #0x0]
+ b _020E88E4
+_020E88D0:
+ ldrsb r3, [r1], #0x1
+ add r2, r0, r12
+ add r12, r12, #0x1
+ sub r3, r3, #0x30
+ strb r3, [r2, #0x5]
+_020E88E4:
+ cmp r12, #0x20
+ bge _020E88F8
+ ldrsb r2, [r1, #0x0]
+ cmp r2, #0x0
+ bne _020E88D0
+_020E88F8:
+ strb r12, [r0, #0x4]
+ ldrsb r2, [r1, #0x0]
+ cmp r2, #0x0
+ ldmeqia sp!, {r3,pc}
+_020E8908: ; 0x020E8908
+ cmp r2, #0x5
+ ldmltia sp!, {r3,pc}
+_020E8910: ; 0x020E8910
+ bgt _020E894C
+ ldrsb r2, [r1, #0x1]
+ add r1, r1, #0x1
+ cmp r2, #0x0
+ beq _020E8938
+_020E8924:
+ cmp r2, #0x30
+ bne _020E894C
+ ldrsb r2, [r1, #0x1]!
+ cmp r2, #0x0
+ bne _020E8924
+_020E8938:
+ sub r1, r12, #0x1
+ add r1, r0, r1
+ ldrb r1, [r1, #0x5]
+ tst r1, #0x1
+ ldmeqia sp!, {r3,pc}
+_020E894C:
+ ldrb r1, [r0, #0x4]
+ bl __dorounddecup
+ ldmia sp!, {r3,pc}
+
+ arm_func_start __two_exp
+__two_exp: ; 0x020E8958
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4c
+ mov r4, r1
+ mvn r2, #0x34
+ mov r5, r0
+ cmp r4, r2
+ bgt _020E8988
+ bge _020E8A54
+ sub r0, r2, #0xb
+ cmp r4, r0
+ beq _020E8A3C
+ b _020E8BE4
+_020E8988:
+ add r1, r4, #0x20
+ cmp r1, #0x28
+ addls pc, pc, r1, lsl #0x2
+ b _020E8BE4
+_020E8998:
+ b _020E8A68
+_020E899C:
+ b _020E8BE4
+_020E89A0:
+ b _020E8BE4
+_020E89A4:
+ b _020E8BE4
+_020E89A8:
+ b _020E8BE4
+_020E89AC:
+ b _020E8BE4
+_020E89B0:
+ b _020E8BE4
+_020E89B4:
+ b _020E8BE4
+_020E89B8:
+ b _020E8BE4
+_020E89BC:
+ b _020E8BE4
+_020E89C0:
+ b _020E8BE4
+_020E89C4:
+ b _020E8BE4
+_020E89C8:
+ b _020E8BE4
+_020E89CC:
+ b _020E8BE4
+_020E89D0:
+ b _020E8BE4
+_020E89D4:
+ b _020E8BE4
+_020E89D8:
+ b _020E8A7C
+_020E89DC:
+ b _020E8BE4
+_020E89E0:
+ b _020E8BE4
+_020E89E4:
+ b _020E8BE4
+_020E89E8:
+ b _020E8BE4
+_020E89EC:
+ b _020E8BE4
+_020E89F0:
+ b _020E8BE4
+_020E89F4:
+ b _020E8BE4
+_020E89F8:
+ b _020E8A90
+_020E89FC:
+ b _020E8AA4
+_020E8A00:
+ b _020E8AB8
+_020E8A04:
+ b _020E8ACC
+_020E8A08:
+ b _020E8AE0
+_020E8A0C:
+ b _020E8AF4
+_020E8A10:
+ b _020E8B08
+_020E8A14:
+ b _020E8B1C
+_020E8A18:
+ b _020E8B30
+_020E8A1C:
+ b _020E8B44
+_020E8A20:
+ b _020E8B58
+_020E8A24:
+ b _020E8B6C
+_020E8A28:
+ b _020E8B80
+_020E8A2C:
+ b _020E8B94
+_020E8A30:
+ b _020E8BA8
+_020E8A34:
+ b _020E8BBC
+_020E8A38:
+ b _020E8BD0
+_020E8A3C:
+ ldr r1, _020E8C88 ; =0x02106E88
+ mov r0, r5
+ mvn r2, #0x13
+ bl __str2dec
+ add sp, sp, #0x4c
+ ldmia sp!, {r4-r5,pc}
+_020E8A54:
+ ldr r1, _020E8C8C ; =0x02106EB8
+ add r2, r2, #0x25
+ bl __str2dec
+ add sp, sp, #0x4c
+ ldmia sp!, {r4-r5,pc}
+_020E8A68:
+ ldr r1, _020E8C90 ; =0x02106EE0
+ add r2, r2, #0x2b
+ bl __str2dec
+ add sp, sp, #0x4c
+ ldmia sp!, {r4-r5,pc}
+_020E8A7C:
+ ldr r1, _020E8C94 ; =0x02106EF8
+ add r2, r2, #0x30
+ bl __str2dec
+ add sp, sp, #0x4c
+ ldmia sp!, {r4-r5,pc}
+_020E8A90:
+ ldr r1, _020E8C98 ; =0x02106F08
+ add r2, r2, #0x32
+ bl __str2dec
+ add sp, sp, #0x4c
+ ldmia sp!, {r4-r5,pc}
+_020E8AA4:
+ ldr r1, _020E8C9C ; =0x02106F10
+ add r2, r2, #0x32
+ bl __str2dec
+ add sp, sp, #0x4c
+ ldmia sp!, {r4-r5,pc}
+_020E8AB8:
+ ldr r1, _020E8CA0 ; =0x02106F18
+ add r2, r2, #0x33
+ bl __str2dec
+ add sp, sp, #0x4c
+ ldmia sp!, {r4-r5,pc}
+_020E8ACC:
+ ldr r1, _020E8CA4 ; =0x02106F20
+ add r2, r2, #0x33
+ bl __str2dec
+ add sp, sp, #0x4c
+ ldmia sp!, {r4-r5,pc}
+_020E8AE0:
+ ldr r1, _020E8CA8 ; =0x02106F28
+ add r2, r2, #0x33
+ bl __str2dec
+ add sp, sp, #0x4c
+ ldmia sp!, {r4-r5,pc}
+_020E8AF4:
+ ldr r1, _020E8CAC ; =0x02106F2C
+ add r2, r2, #0x34
+ bl __str2dec
+ add sp, sp, #0x4c
+ ldmia sp!, {r4-r5,pc}
+_020E8B08:
+ ldr r1, _020E8CB0 ; =0x02106F30
+ add r2, r2, #0x34
+ bl __str2dec
+ add sp, sp, #0x4c
+ ldmia sp!, {r4-r5,pc}
+_020E8B1C:
+ ldr r1, _020E8CB4 ; =0x02106F34
+ add r2, r2, #0x34
+ bl __str2dec
+ add sp, sp, #0x4c
+ ldmia sp!, {r4-r5,pc}
+_020E8B30:
+ ldr r1, _020E8CB8 ; =0x02106F38
+ mov r2, #0x0
+ bl __str2dec
+ add sp, sp, #0x4c
+ ldmia sp!, {r4-r5,pc}
+_020E8B44:
+ ldr r1, _020E8CBC ; =0x02106F3C
+ mov r2, #0x0
+ bl __str2dec
+ add sp, sp, #0x4c
+ ldmia sp!, {r4-r5,pc}
+_020E8B58:
+ ldr r1, _020E8CC0 ; =0x02106F40
+ mov r2, #0x0
+ bl __str2dec
+ add sp, sp, #0x4c
+ ldmia sp!, {r4-r5,pc}
+_020E8B6C:
+ ldr r1, _020E8CC4 ; =0x02106F44
+ mov r2, #0x0
+ bl __str2dec
+ add sp, sp, #0x4c
+ ldmia sp!, {r4-r5,pc}
+_020E8B80:
+ ldr r1, _020E8CC8 ; =0x02106F48
+ mov r2, #0x1
+ bl __str2dec
+ add sp, sp, #0x4c
+ ldmia sp!, {r4-r5,pc}
+_020E8B94:
+ ldr r1, _020E8CCC ; =0x02106F4C
+ mov r2, #0x1
+ bl __str2dec
+ add sp, sp, #0x4c
+ ldmia sp!, {r4-r5,pc}
+_020E8BA8:
+ ldr r1, _020E8CD0 ; =0x02106F50
+ mov r2, #0x1
+ bl __str2dec
+ add sp, sp, #0x4c
+ ldmia sp!, {r4-r5,pc}
+_020E8BBC:
+ ldr r1, _020E8CD4 ; =0x02106F54
+ mov r2, #0x2
+ bl __str2dec
+ add sp, sp, #0x4c
+ ldmia sp!, {r4-r5,pc}
+_020E8BD0:
+ ldr r1, _020E8CD8 ; =0x02106F58
+ mov r2, #0x2
+ bl __str2dec
+ add sp, sp, #0x4c
+ ldmia sp!, {r4-r5,pc}
+_020E8BE4:
+ and r0, r4, #0x80000000
+ add r1, r4, r0, lsr #0x1f
+ add r0, sp, #0x26
+ mov r1, r1, asr #0x1
+ bl __two_exp
+ add r1, sp, #0x26
+ mov r0, r5
+ mov r2, r1
+ bl __timesdec
+ tst r4, #0x1
+ addeq sp, sp, #0x4c
+ ldmeqia sp!, {r4-r5,pc}
+_020E8C14: ; 0x020E8C14
+ add r3, sp, #0x0
+ mov r12, r5
+ mov r2, #0x9
+_020E8C20:
+ ldrh r1, [r12, #0x0]
+ ldrh r0, [r12, #0x2]
+ add r12, r12, #0x4
+ subs r2, r2, #0x1
+ strh r1, [r3, #0x0]
+ strh r0, [r3, #0x2]
+ add r3, r3, #0x4
+ bne _020E8C20
+ ldrh r0, [r12, #0x0]
+ cmp r4, #0x0
+ strh r0, [r3, #0x0]
+ add r0, sp, #0x26
+ ble _020E8C64
+ ldr r1, _020E8CBC ; =0x02106F3C
+ mov r2, #0x0
+ bl __str2dec
+ b _020E8C70
+_020E8C64:
+ ldr r1, _020E8CB4 ; =0x02106F34
+ mvn r2, #0x0
+ bl __str2dec
+_020E8C70:
+ add r1, sp, #0x0
+ add r2, sp, #0x26
+ mov r0, r5
+ bl __timesdec
+ add sp, sp, #0x4c
+ ldmia sp!, {r4-r5,pc}
+ .balign 4
+_020E8C88: .word 0x02106E88
+_020E8C8C: .word 0x02106EB8
+_020E8C90: .word 0x02106EE0
+_020E8C94: .word 0x02106EF8
+_020E8C98: .word 0x02106F08
+_020E8C9C: .word 0x02106F10
+_020E8CA0: .word 0x02106F18
+_020E8CA4: .word 0x02106F20
+_020E8CA8: .word 0x02106F28
+_020E8CAC: .word 0x02106F2C
+_020E8CB0: .word 0x02106F30
+_020E8CB4: .word 0x02106F34
+_020E8CB8: .word 0x02106F38
+_020E8CBC: .word 0x02106F3C
+_020E8CC0: .word 0x02106F40
+_020E8CC4: .word 0x02106F44
+_020E8CC8: .word 0x02106F48
+_020E8CCC: .word 0x02106F4C
+_020E8CD0: .word 0x02106F50
+_020E8CD4: .word 0x02106F54
+_020E8CD8: .word 0x02106F58
+
+ arm_func_start __equals_dec
+__equals_dec:
+ stmdb sp!, {r4,lr}
+ ldrb r3, [r0, #0x5]
+ cmp r3, #0x0
+ bne _020E8D00
+ ldrb r0, [r1, #0x5]
+ cmp r0, #0x0
+ moveq r0, #0x1
+ movne r0, #0x0
+ ldmia sp!, {r4,pc}
+_020E8D00:
+ ldrb r2, [r1, #0x5]
+ cmp r2, #0x0
+ bne _020E8D1C
+ cmp r3, #0x0
+ moveq r0, #0x1
+ movne r0, #0x0
+ ldmia sp!, {r4,pc}
+_020E8D1C:
+ ldrsh r3, [r0, #0x2]
+ ldrsh r2, [r1, #0x2]
+ cmp r3, r2
+ bne _020E8DB4
+ ldrb r4, [r0, #0x4]
+ ldrb r2, [r1, #0x4]
+ mov r12, #0x0
+ mov lr, r4
+ cmp r4, r2
+ movgt lr, r2
+ cmp lr, #0x0
+ ble _020E8D74
+_020E8D4C:
+ add r3, r0, r12
+ add r2, r1, r12
+ ldrb r3, [r3, #0x5]
+ ldrb r2, [r2, #0x5]
+ cmp r3, r2
+ movne r0, #0x0
+ ldmneia sp!, {r4,pc}
+_020E8D68: ; 0x020E8D68
+ add r12, r12, #0x1
+ cmp r12, lr
+ blt _020E8D4C
+_020E8D74:
+ cmp lr, r4
+ moveq r0, r1
+ ldrb r1, [r0, #0x4]
+ cmp r12, r1
+ bge _020E8DAC
+_020E8D88:
+ add r1, r0, r12
+ ldrb r1, [r1, #0x5]
+ cmp r1, #0x0
+ movne r0, #0x0
+ ldmneia sp!, {r4,pc}
+_020E8D9C: ; 0x020E8D9C
+ ldrb r1, [r0, #0x4]
+ add r12, r12, #0x1
+ cmp r12, r1
+ blt _020E8D88
+_020E8DAC:
+ mov r0, #0x1
+ ldmia sp!, {r4,pc}
+_020E8DB4:
+ mov r0, #0x0
+ ldmia sp!, {r4,pc}
+
+ arm_func_start __less_dec
+__less_dec:
+ stmdb sp!, {r3-r5,lr}
+ ldrb r2, [r0, #0x5]
+ cmp r2, #0x0
+ bne _020E8DE0
+ ldrb r0, [r1, #0x5]
+ cmp r0, #0x0
+ movne r0, #0x1
+ moveq r0, #0x0
+ ldmia sp!, {r3-r5,pc}
+_020E8DE0:
+ ldrb r2, [r1, #0x5]
+ cmp r2, #0x0
+ moveq r0, #0x0
+ ldmeqia sp!, {r3-r5,pc}
+_020E8DF0: ; 0x020E8DF0
+ ldrsh r3, [r1, #0x2]
+ ldrsh r2, [r0, #0x2]
+ cmp r2, r3
+ bne _020E8E90
+ ldrb r5, [r0, #0x4]
+ ldrb r4, [r1, #0x4]
+ mov r12, #0x0
+ mov lr, r5
+ cmp r5, r4
+ movgt lr, r4
+ cmp lr, #0x0
+ ble _020E8E54
+_020E8E20:
+ add r3, r1, r12
+ add r2, r0, r12
+ ldrb r3, [r3, #0x5]
+ ldrb r2, [r2, #0x5]
+ cmp r2, r3
+ movcc r0, #0x1
+ ldmccia sp!, {r3-r5,pc}
+_020E8E3C: ; 0x020E8E3C
+ cmp r3, r2
+ movcc r0, #0x0
+ ldmccia sp!, {r3-r5,pc}
+_020E8E48: ; 0x020E8E48
+ add r12, r12, #0x1
+ cmp r12, lr
+ blt _020E8E20
+_020E8E54:
+ cmp lr, r5
+ bne _020E8E88
+ cmp r12, r4
+ bge _020E8E88
+_020E8E64:
+ add r0, r1, r12
+ ldrb r0, [r0, #0x5]
+ cmp r0, #0x0
+ movne r0, #0x1
+ ldmneia sp!, {r3-r5,pc}
+_020E8E78: ; 0x020E8E78
+ ldrb r0, [r1, #0x4]
+ add r12, r12, #0x1
+ cmp r12, r0
+ blt _020E8E64
+_020E8E88:
+ mov r0, #0x0
+ ldmia sp!, {r3-r5,pc}
+_020E8E90:
+ movlt r0, #0x1
+ movge r0, #0x0
+ ldmia sp!, {r3-r5,pc}
+
+ arm_func_start __minus_dec
+__minus_dec: ; 0x020E8E9C
+ stmdb sp!, {r3-r7,lr}
+ mov r6, r0
+ mov r5, #0x9
+_020E8EA8:
+ ldrh r4, [r1, #0x0]
+ ldrh r3, [r1, #0x2]
+ add r1, r1, #0x4
+ subs r5, r5, #0x1
+ strh r4, [r6, #0x0]
+ strh r3, [r6, #0x2]
+ add r6, r6, #0x4
+ bne _020E8EA8
+ ldrh r1, [r1, #0x0]
+ strh r1, [r6, #0x0]
+ ldrb r1, [r2, #0x5]
+ cmp r1, #0x0
+ ldmeqia sp!, {r3-r7,pc}
+_020E8EDC: ; 0x020E8EDC
+ ldrb r7, [r0, #0x4]
+ ldrb r3, [r2, #0x4]
+ ldrsh r4, [r0, #0x2]
+ mov r1, r7
+ cmp r7, r3
+ movlt r1, r3
+ ldrsh r3, [r2, #0x2]
+ sub r6, r4, r3
+ add r1, r1, r6
+ cmp r1, #0x20
+ movgt r1, #0x20
+ cmp r7, r1
+ bge _020E8F34
+ mov r4, #0x0
+_020E8F14:
+ ldrb r5, [r0, #0x4]
+ add r3, r0, r7
+ add r5, r5, #0x1
+ strb r5, [r0, #0x4]
+ strb r4, [r3, #0x5]
+ ldrb r7, [r0, #0x4]
+ cmp r7, r1
+ blt _020E8F14
+_020E8F34:
+ ldrb r4, [r2, #0x4]
+ add r3, r0, #0x5
+ add r12, r3, r1
+ add r4, r4, r6
+ cmp r4, r1
+ addlt r12, r3, r4
+ sub r4, r12, r3
+ add r1, r2, #0x5
+ sub r4, r4, r6
+ add lr, r1, r4
+ mov r4, lr
+ b _020E8FC8
+_020E8F64:
+ ldrb r7, [r12, #-0x1]!
+ ldrb r5, [lr, #-0x1]!
+ cmp r7, r5
+ bhs _020E8FB8
+ ldrb r7, [r12, #-0x1]
+ sub r5, r12, #0x1
+ cmp r7, #0x0
+ bne _020E8F90
+_020E8F84:
+ ldrb r7, [r5, #-0x1]!
+ cmp r7, #0x0
+ beq _020E8F84
+_020E8F90:
+ cmp r5, r12
+ beq _020E8FB8
+_020E8F98:
+ ldrb r7, [r5, #0x0]
+ sub r7, r7, #0x1
+ strb r7, [r5, #0x0]
+ ldrb r7, [r5, #0x1]!
+ cmp r5, r12
+ add r7, r7, #0xa
+ strb r7, [r5, #0x0]
+ bne _020E8F98
+_020E8FB8:
+ ldrb r7, [r12, #0x0]
+ ldrb r5, [lr, #0x0]
+ sub r5, r7, r5
+ strb r5, [r12, #0x0]
+_020E8FC8:
+ cmp r12, r3
+ cmphi lr, r1
+ bhi _020E8F64
+ ldrb r5, [r2, #0x4]
+ sub lr, r4, r1
+ cmp lr, r5
+ bge _020E90A4
+ ldrb r1, [r4, #0x0]
+ mov r7, #0x0
+ cmp r1, #0x5
+ movcc r7, #0x1
+ blo _020E9040
+ bne _020E9040
+ add r1, r2, #0x5
+ add r2, r1, r5
+ add r4, r4, #0x1
+ cmp r4, r2
+ bhs _020E9028
+_020E9010:
+ ldrb r1, [r4, #0x0]
+ cmp r1, #0x0
+ bne _020E90A4
+ add r4, r4, #0x1
+ cmp r4, r2
+ blo _020E9010
+_020E9028:
+ add r1, r3, lr
+ add r2, r1, r6
+ ldrb r1, [r2, #-0x1]
+ sub r12, r2, #0x1
+ tst r1, #0x1
+ movne r7, #0x1
+_020E9040:
+ cmp r7, #0x0
+ beq _020E90A4
+ ldrb r1, [r12, #0x0]
+ cmp r1, #0x1
+ bhs _020E9098
+ ldrb r1, [r12, #-0x1]
+ sub r2, r12, #0x1
+ cmp r1, #0x0
+ bne _020E9070
+_020E9064:
+ ldrb r1, [r2, #-0x1]!
+ cmp r1, #0x0
+ beq _020E9064
+_020E9070:
+ cmp r2, r12
+ beq _020E9098
+_020E9078:
+ ldrb r1, [r2, #0x0]
+ sub r1, r1, #0x1
+ strb r1, [r2, #0x0]
+ ldrb r1, [r2, #0x1]!
+ cmp r2, r12
+ add r1, r1, #0xa
+ strb r1, [r2, #0x0]
+ bne _020E9078
+_020E9098:
+ ldrb r1, [r12, #0x0]
+ sub r1, r1, #0x1
+ strb r1, [r12, #0x0]
+_020E90A4:
+ ldrb r1, [r3, #0x0]
+ mov r5, r3
+ cmp r1, #0x0
+ bne _020E90C0
+_020E90B4:
+ ldrb r1, [r5, #0x1]!
+ cmp r1, #0x0
+ beq _020E90B4
+_020E90C0:
+ cmp r5, r3
+ bls _020E9108
+ ldrsh r1, [r0, #0x2]
+ sub r2, r5, r3
+ and r4, r2, #0xff
+ sub r1, r1, r4
+ strh r1, [r0, #0x2]
+ ldrb r1, [r0, #0x4]
+ add r2, r3, r1
+ cmp r5, r2
+ bhs _020E90FC
+_020E90EC:
+ ldrb r1, [r5], #0x1
+ cmp r5, r2
+ strb r1, [r3], #0x1
+ blo _020E90EC
+_020E90FC:
+ ldrb r1, [r0, #0x4]
+ sub r1, r1, r4
+ strb r1, [r0, #0x4]
+_020E9108:
+ ldrb r1, [r0, #0x4]
+ add r2, r0, #0x5
+ add r3, r2, r1
+ cmp r3, r2
+ bls _020E9130
+_020E911C:
+ ldrb r1, [r3, #-0x1]!
+ cmp r1, #0x0
+ bne _020E9130
+ cmp r3, r2
+ bhi _020E911C
+_020E9130:
+ sub r1, r3, r2
+ add r1, r1, #0x1
+ strb r1, [r0, #0x4]
+ ldmia sp!, {r3-r7,pc}
+
+ arm_func_start __num2dec_internal
+__num2dec_internal:
+ stmdb sp!, {r4-r8,lr}
+ sub sp, sp, #0x58
+ mov r8, r1
+ mov r6, r2
+ mov r7, r0
+ mov r0, r8
+ mov r1, r6
+ bl __signbitf
+_020E9160: ; 0x020E9160
+ cmp r0, #0x0
+ movne r1, #0x1
+ moveq r1, #0x0
+ mov r4, r1, lsl #0x18
+ mov r0, #0x0
+ mov r1, r0
+ mov r2, r8
+ mov r3, r6
+ mov r5, r4, asr #0x18
+ bl _deq
+ bne _020E91AC
+ strb r5, [r7, #0x0]
+ mov r1, #0x0
+ strh r1, [r7, #0x2]
+ mov r0, #0x1
+ strb r0, [r7, #0x4]
+ add sp, sp, #0x58
+ strb r1, [r7, #0x5]
+ ldmia sp!, {r4-r8,pc}
+_020E91AC:
+ mov r0, r8
+ mov r1, r6
+ bl __fpclassifyf
+ cmp r0, #0x2
+ bgt _020E91F8
+ strb r5, [r7, #0x0]
+ mov r2, #0x0
+ strh r2, [r7, #0x2]
+ mov r2, #0x1
+ mov r0, r8
+ mov r1, r6
+ strb r2, [r7, #0x4]
+ bl __fpclassifyf
+ cmp r0, #0x1
+ moveq r0, #0x4e
+ movne r0, #0x49
+ add sp, sp, #0x58
+ strb r0, [r7, #0x5]
+ ldmia sp!, {r4-r8,pc}
+_020E91F8:
+ cmp r5, #0x0
+ beq _020E921C
+ mov r0, #0x0
+ mov r1, r0
+ mov r2, r8
+ mov r3, r6
+ bl _dsub
+ mov r8, r0
+ mov r6, r1
+_020E921C:
+ add r2, sp, #0x8
+ mov r0, r8
+ mov r1, r6
+ bl frexp
+ mov r4, r0
+ mov r6, r1
+ orr r12, r4, #0x0
+ rsbs r2, r12, #0x0
+ orr r3, r6, #0x100000
+ rsc r1, r3, #0x0
+ mov r0, #0x0
+ and r3, r3, r1
+ sub r1, r0, #0x1
+ and r12, r12, r2
+ mov r2, r1
+ adds r0, r12, r1
+ adc r1, r3, r2
+ str r4, [sp, #0x0]
+ str r6, [sp, #0x4]
+ bl __msl_generic_count_bits64
+ rsb r8, r0, #0x35
+ ldr r1, [sp, #0x8]
+ add r0, sp, #0xc
+ sub r1, r1, r8
+ bl __two_exp
+ mov r0, r4
+ mov r1, r6
+ mov r2, r8
+ bl ldexp
+ bl _ll_ufrom_d
+ mov r2, r1
+ mov r1, r0
+ add r0, sp, #0x32
+ bl __ull2dec
+ mov r0, r7
+ add r1, sp, #0x32
+ add r2, sp, #0xc
+ bl __timesdec
+ strb r5, [r7, #0x0]
+ add sp, sp, #0x58
+ ldmia sp!, {r4-r8,pc}
+
+ arm_func_start __num2dec_internal2
+__num2dec_internal2: ; 0x020E92C0
+ stmdb sp!, {r3-r5,lr}
+ mov r4, r3
+ ldrsh r5, [r0, #0x2]
+ mov r0, r4
+ bl __num2dec_internal
+ ldrb r0, [r4, #0x5]
+ cmp r0, #0x9
+ ldmhiia sp!, {r3-r5,pc}
+_020E92E0: ; 0x020E92E0
+ cmp r5, #0x20
+ movgt r5, #0x20
+ mov r0, r4
+ mov r1, r5
+ bl __rounddec
+ ldrb r0, [r4, #0x4]
+ cmp r0, r5
+ bge _020E9324
+ mov r1, #0x0
+_020E9304:
+ ldrb r2, [r4, #0x4]
+ add r0, r4, r0
+ add r2, r2, #0x1
+ strb r2, [r4, #0x4]
+ strb r1, [r0, #0x5]
+ ldrb r0, [r4, #0x4]
+ cmp r0, r5
+ blt _020E9304
+_020E9324:
+ ldrsh r1, [r4, #0x2]
+ sub r0, r0, #0x1
+ mov r2, #0x0
+ sub r0, r1, r0
+ strh r0, [r4, #0x2]
+ ldrb r0, [r4, #0x4]
+ cmp r0, #0x0
+ ldmleia sp!, {r3-r5,pc}
+_020E9344:
+ add r1, r4, r2
+ ldrb r0, [r1, #0x5]
+ add r2, r2, #0x1
+ add r0, r0, #0x30
+ strb r0, [r1, #0x5]
+ ldrb r0, [r4, #0x4]
+ cmp r2, r0
+ blt _020E9344
+ ldmia sp!, {r3-r5,pc}
+
+ arm_func_start __dec2num
+__dec2num: ; 0x020E9368
+ stmdb sp!, {r4-r11,lr}
+ sub sp, sp, #0xfc
+ mov r4, r0
+ ldrb r0, [r4, #0x4]
+ cmp r0, #0x0
+ bne _020E93A8
+ ldrsb r0, [r4, #0x0]
+ mov r2, #0x0
+ cmp r0, #0x0
+ ldreq r3, _020E996C ; =0x3FF00000
+ mov r0, #0x0
+ ldrne r3, _020E9970 ; =0xBFF00000
+ mov r1, r0
+ bl copysign
+ add sp, sp, #0xfc
+ ldmia sp!, {r4-r11,pc}
+_020E93A8:
+ ldrb r0, [r4, #0x5]
+ cmp r0, #0x30
+ beq _020E93C8
+ cmp r0, #0x49
+ beq _020E93F0
+ cmp r0, #0x4e
+ beq _020E9424
+ b _020E946C
+_020E93C8:
+ ldrsb r0, [r4, #0x0]
+ mov r2, #0x0
+ cmp r0, #0x0
+ ldreq r3, _020E996C ; =0x3FF00000
+ mov r0, #0x0
+ ldrne r3, _020E9970 ; =0xBFF00000
+ mov r1, r0
+ bl copysign
+ add sp, sp, #0xfc
+ ldmia sp!, {r4-r11,pc}
+_020E93F0:
+ ldrsb r0, [r4, #0x0]
+ mov r5, #0x0
+ cmp r0, #0x0
+ ldreq r4, _020E996C ; =0x3FF00000
+ ldr r0, _020E9974 ; =0x02106B74
+ ldrne r4, _020E9970 ; =0xBFF00000
+ ldr r0, [r0, #0x0]
+ bl _f2d
+ mov r2, r5
+ mov r3, r4
+ bl copysign
+ add sp, sp, #0xfc
+ ldmia sp!, {r4-r11,pc}
+_020E9424:
+ ldr r1, _020E9978 ; =0x7FF00000
+ add r3, sp, #0x10
+ mov r2, #0x0
+ str r2, [r3, #0x0]
+ str r1, [r3, #0x4]
+ ldrsb r0, [r4, #0x0]
+ cmp r0, #0x0
+ beq _020E9454
+ orr r0, r1, #0x80000000
+ orr r1, r2, r2
+ str r1, [r3, #0x0]
+ str r0, [r3, #0x4]
+_020E9454:
+ ldmia r3, {r0-r1}
+ orr r0, r0, #0x0
+ orr r1, r1, #0x80000
+ stmia r3, {r0-r1}
+ add sp, sp, #0xfc
+ ldmia sp!, {r4-r11,pc}
+_020E946C:
+ add r3, sp, #0xd6
+ mov r5, r4
+ mov r2, #0x9
+_020E9478:
+ ldrh r1, [r5, #0x0]
+ ldrh r0, [r5, #0x2]
+ add r5, r5, #0x4
+ subs r2, r2, #0x1
+ strh r1, [r3, #0x0]
+ strh r0, [r3, #0x2]
+ add r3, r3, #0x4
+ bne _020E9478
+ ldrh r0, [r5, #0x0]
+ add r1, sp, #0xdb
+ strh r0, [r3, #0x0]
+ ldrb r0, [sp, #0xda]
+ add r5, r1, r0
+ cmp r1, r5
+ bhs _020E94C8
+_020E94B4:
+ ldrb r0, [r1, #0x0]
+ sub r0, r0, #0x30
+ strb r0, [r1], #0x1
+ cmp r1, r5
+ blo _020E94B4
+_020E94C8:
+ ldrb r1, [sp, #0xda]
+ ldrsh r2, [sp, #0xd8]
+ add r0, sp, #0xb0
+ sub r1, r1, #0x1
+ add r1, r2, r1
+ strh r1, [sp, #0xd8]
+ ldr r1, _020E997C ; =0x02106F5C
+ mov r2, #0x134
+ ldrsh r11, [sp, #0xd8]
+ bl __str2dec
+ add r0, sp, #0xb0
+ add r1, sp, #0xd6
+ bl __less_dec
+_020E94FC: ; 0x020E94FC
+ cmp r0, #0x0
+ beq _020E9538
+ ldrsb r0, [r4, #0x0]
+ mov r5, #0x0
+ cmp r0, #0x0
+ ldreq r4, _020E996C ; =0x3FF00000
+ ldr r0, _020E9974 ; =0x02106B74
+ ldrne r4, _020E9970 ; =0xBFF00000
+ ldr r0, [r0, #0x0]
+ bl _f2d
+ mov r2, r5
+ mov r3, r4
+ bl copysign
+ add sp, sp, #0xfc
+ ldmia sp!, {r4-r11,pc}
+_020E9538:
+ add r1, sp, #0xdb
+ ldrb r0, [r1, #0x0]
+ add r8, r1, #0x1
+ bl _dfltu
+ str r0, [sp, #0x8]
+ str r1, [sp, #0xc]
+ cmp r8, r5
+ bhs _020E9610
+_020E9558:
+ sub r0, r5, r8
+ mov r1, r0, lsr #0x1f
+ rsb r0, r1, r0, lsl #0x1d
+ adds r7, r1, r0, ror #0x1d
+ moveq r7, #0x8
+ mov r6, #0x0
+ mov r2, #0x0
+ cmp r7, #0x0
+ ble _020E9594
+ mov r0, #0xa
+_020E9580:
+ ldrb r1, [r8], #0x1
+ add r2, r2, #0x1
+ cmp r2, r7
+ mla r6, r0, r6, r1
+ blt _020E9580
+_020E9594:
+ ldr r0, _020E9980 ; =0x02106E48
+ ldr r1, [sp, #0xc]
+ add r3, r0, r7, lsl #0x3
+ ldr r2, [r3, #-0x8]
+ ldr r0, [sp, #0x8]
+ ldr r3, [r3, #-0x4]
+ bl _dmul
+ mov r4, r0
+ mov r9, r1
+ mov r0, r6
+ bl _dfltu
+ mov r2, r0
+ mov r3, r1
+ mov r0, r4
+ mov r1, r9
+ bl _dadd
+_020E95D4: ; 0x020E95D4
+ cmp r6, #0x0
+ mov r6, r0
+ mov r10, r1
+ beq _020E95FC
+ mov r0, r4
+ mov r1, r9
+ mov r2, r6
+ mov r3, r10
+ bl _deq
+ beq _020E9610
+_020E95FC:
+ str r6, [sp, #0x8]
+ str r10, [sp, #0xc]
+ cmp r8, r5
+ sub r11, r11, r7
+ blo _020E9558
+_020E9610:
+ cmp r11, #0x0
+ bge _020E9654
+ rsb r0, r11, #0x0
+ bl _dflt
+ mov r3, r1
+ mov r2, r0
+ ldr r1, _020E9984 ; =0x40140000
+ mov r0, #0x0
+ bl pow
+ mov r2, r0
+ mov r3, r1
+ ldr r0, [sp, #0x8]
+ ldr r1, [sp, #0xc]
+ bl _ddiv
+ str r0, [sp, #0x8]
+ str r1, [sp, #0xc]
+ b _020E968C
+_020E9654:
+ mov r0, r11
+ bl _dflt
+ mov r3, r1
+ mov r2, r0
+ ldr r1, _020E9984 ; =0x40140000
+ mov r0, #0x0
+ bl pow
+ mov r2, r0
+ mov r3, r1
+ ldr r0, [sp, #0x8]
+ ldr r1, [sp, #0xc]
+ bl _dmul
+ str r0, [sp, #0x8]
+ str r1, [sp, #0xc]
+_020E968C:
+ ldr r0, [sp, #0x8]
+ ldr r1, [sp, #0xc]
+ mov r2, r11
+ bl ldexp
+ str r0, [sp, #0x8]
+ str r1, [sp, #0xc]
+ bl __fpclassifyf
+ cmp r0, #0x2
+ bne _020E96C0
+ ldr r0, _020E9988 ; =0x7FEFFFFF
+ mvn r1, #0x0
+ str r1, [sp, #0x8]
+ str r0, [sp, #0xc]
+_020E96C0:
+ ldr r1, [sp, #0x8]
+ ldr r2, [sp, #0xc]
+ add r0, sp, #0x8a
+ add r4, sp, #0x0
+ mov r5, #0x0
+ bl __num2dec_internal
+ add r0, sp, #0x8a
+ add r1, sp, #0xd6
+ bl __equals_dec
+_020E96E4: ; 0x020E96E4
+ cmp r0, #0x0
+ bne _020E9934
+ add r0, sp, #0x8a
+ add r1, sp, #0xd6
+ bl __less_dec
+_020E96F8: ; 0x020E96F8
+ cmp r0, #0x0
+ movne r5, #0x1
+ ldr r1, [sp, #0x8]
+ ldr r0, [sp, #0xc]
+ cmp r5, #0x0
+ moveq r6, #0x1
+ str r1, [sp, #0x0]
+ str r0, [sp, #0x4]
+ movne r6, #0x0
+_020E971C:
+ cmp r6, #0x0
+ bne _020E9744
+ ldmia r4, {r0-r1}
+ adds r0, r0, #0x1
+ adc r1, r1, #0x0
+ stmia r4, {r0-r1}
+ bl __fpclassifyf
+ cmp r0, #0x2
+ beq _020E9934
+ b _020E975C
+_020E9744:
+ ldr r1, [r4, #0x0]
+ ldr r0, [r4, #0x4]
+ subs r1, r1, #0x1
+ sbc r0, r0, #0x0
+ str r1, [r4, #0x0]
+ str r0, [r4, #0x4]
+_020E975C:
+ ldr r1, [sp, #0x0]
+ ldr r2, [sp, #0x4]
+ add r0, sp, #0x64
+ bl __num2dec_internal
+_020E976C: ; 0x020E976C
+ cmp r5, #0x0
+ beq _020E9788
+ add r0, sp, #0x64
+ add r1, sp, #0xd6
+ bl __less_dec
+_020E9780: ; 0x020E9780
+ cmp r0, #0x0
+ beq _020E98AC
+_020E9788:
+ cmp r5, #0x0
+ bne _020E9864
+ add r0, sp, #0xd6
+ add r1, sp, #0x64
+ bl __less_dec
+_020E979C: ; 0x020E979C
+ cmp r0, #0x0
+ bne _020E9864
+ add r3, sp, #0x8a
+ add r5, sp, #0x3e
+ mov r2, #0x9
+_020E97B0:
+ ldrh r1, [r3, #0x0]
+ ldrh r0, [r3, #0x2]
+ add r3, r3, #0x4
+ strh r1, [r5, #0x0]
+ strh r0, [r5, #0x2]
+ add r5, r5, #0x4
+ subs r2, r2, #0x1
+ bne _020E97B0
+ ldrh r0, [r3, #0x0]
+ add r3, sp, #0x64
+ add r4, sp, #0x8a
+ strh r0, [r5, #0x0]
+ mov r2, #0x9
+_020E97E4:
+ ldrh r1, [r3, #0x0]
+ ldrh r0, [r3, #0x2]
+ add r3, r3, #0x4
+ strh r1, [r4, #0x0]
+ strh r0, [r4, #0x2]
+ add r4, r4, #0x4
+ subs r2, r2, #0x1
+ bne _020E97E4
+ ldrh r0, [r3, #0x0]
+ add r3, sp, #0x3e
+ add r5, sp, #0x64
+ strh r0, [r4, #0x0]
+ mov r2, #0x9
+_020E9818:
+ ldrh r1, [r3, #0x0]
+ ldrh r0, [r3, #0x2]
+ add r3, r3, #0x4
+ strh r1, [r5, #0x0]
+ strh r0, [r5, #0x2]
+ add r5, r5, #0x4
+ subs r2, r2, #0x1
+ bne _020E9818
+ ldrh r4, [r3, #0x0]
+ ldr r3, [sp, #0x8]
+ ldr r1, [sp, #0x0]
+ ldr r2, [sp, #0xc]
+ ldr r0, [sp, #0x4]
+ strh r4, [r5, #0x0]
+ str r1, [sp, #0x8]
+ str r0, [sp, #0xc]
+ str r3, [sp, #0x0]
+ str r2, [sp, #0x4]
+ b _020E98AC
+_020E9864:
+ add r7, sp, #0x64
+ add r3, sp, #0x8a
+ mov r2, #0x9
+_020E9870:
+ ldrh r1, [r7, #0x0]
+ ldrh r0, [r7, #0x2]
+ add r7, r7, #0x4
+ strh r1, [r3, #0x0]
+ strh r0, [r3, #0x2]
+ add r3, r3, #0x4
+ subs r2, r2, #0x1
+ bne _020E9870
+ ldrh r2, [r7, #0x0]
+ ldr r1, [sp, #0x0]
+ ldr r0, [sp, #0x4]
+ strh r2, [r3, #0x0]
+ str r1, [sp, #0x8]
+ str r0, [sp, #0xc]
+ b _020E971C
+_020E98AC:
+ add r0, sp, #0x3e
+ add r1, sp, #0xd6
+ add r2, sp, #0x8a
+ bl __minus_dec
+ add r0, sp, #0x18
+ add r1, sp, #0x64
+ add r2, sp, #0xd6
+ bl __minus_dec
+ add r0, sp, #0x3e
+ add r1, sp, #0x18
+ bl __equals_dec
+_020E98D8: ; 0x020E98D8
+ cmp r0, #0x0
+ beq _020E9910
+ ldr r1, [sp, #0x8]
+ ldr r0, [sp, #0xc]
+ and r1, r1, #0x1
+ and r0, r0, #0x0
+ cmp r0, #0x0
+ cmpeq r1, #0x0
+ beq _020E9934
+ ldr r1, [sp, #0x0]
+ ldr r0, [sp, #0x4]
+ str r1, [sp, #0x8]
+ str r0, [sp, #0xc]
+ b _020E9934
+_020E9910:
+ add r0, sp, #0x3e
+ add r1, sp, #0x18
+ bl __less_dec
+_020E991C: ; 0x020E991C
+ cmp r0, #0x0
+ bne _020E9934
+ ldr r1, [sp, #0x0]
+ ldr r0, [sp, #0x4]
+ str r1, [sp, #0x8]
+ str r0, [sp, #0xc]
+_020E9934:
+ ldrsb r0, [sp, #0xd6]
+ cmp r0, #0x0
+ beq _020E995C
+ mov r0, #0x0
+ ldr r2, [sp, #0x8]
+ ldr r3, [sp, #0xc]
+ mov r1, r0
+ bl _dsub
+ str r0, [sp, #0x8]
+ str r1, [sp, #0xc]
+_020E995C:
+ ldr r0, [sp, #0x8]
+ ldr r1, [sp, #0xc]
+ add sp, sp, #0xfc
+ ldmia sp!, {r4-r11,pc}
+ .balign 4
+_020E996C: .word 0x3FF00000
+_020E9970: .word 0xBFF00000
+_020E9974: .word 0x02106B74
+_020E9978: .word 0x7FF00000
+_020E997C: .word 0x02106F5C
+_020E9980: .word 0x02106E48
+_020E9984: .word 0x40140000
+_020E9988: .word 0x7FEFFFFF
+
+ arm_func_start __msl_generic_count_bits64
+__msl_generic_count_bits64: ; 0x020E998C
+ mov r3, r0, lsr #0x1
+ ldr r2, _020E9A14 ; =0x55555555
+ orr r3, r3, r1, lsl #0x1f
+ and r3, r3, r2
+ subs r12, r0, r3
+ and r2, r2, r1, lsr #0x1
+ ldr r0, _020E9A18 ; =0x33333333
+ sbc r3, r1, r2
+ mov r1, r12, lsr #0x2
+ orr r1, r1, r3, lsl #0x1e
+ and r2, r12, r0
+ and r1, r1, r0
+ adds r2, r2, r1
+ and r1, r3, r0
+ and r0, r0, r3, lsr #0x2
+ adc r1, r1, r0
+ mov r0, r2, lsr #0x4
+ orr r0, r0, r1, lsl #0x1c
+ adds r2, r2, r0
+ ldr r0, _020E9A1C ; =0x0F0F0F0F
+ adc r1, r1, r1, lsr #0x4
+ and r3, r2, r0
+ and r2, r1, r0
+ mov r0, r3, lsr #0x8
+ orr r0, r0, r2, lsl #0x18
+ adds r1, r3, r0
+ adc r2, r2, r2, lsr #0x8
+ mov r0, r1, lsr #0x10
+ orr r0, r0, r2, lsl #0x10
+ adds r1, r1, r0
+ adc r0, r2, r2, lsr #0x10
+ adds r0, r1, r0
+ and r0, r0, #0xff
+ bx lr
+ .balign 4
+_020E9A14: .word 0x55555555
+_020E9A18: .word 0x33333333
+_020E9A1C: .word 0x0F0F0F0F
+
+ arm_func_start __signbitf
+__signbitf:
+ stmdb sp!, {r0-r3}
+ ldr r0, [sp, #0x4]
+ and r0, r0, #0x80000000
+ add sp, sp, #0x10
+ bx lr
+
+ arm_func_start __fpclassifyf
+__fpclassifyf: ; 0x020E9A34
+ stmdb sp!, {r0-r3}
+ ldr r2, [sp, #0x4]
+ ldr r0, _020E9A9C ; =0x7FF00000
+ ands r1, r2, r0
+ beq _020E9A70
+ cmp r1, r0
+ bne _020E9A90
+ ldr r0, _020E9AA0 ; =0x000FFFFF
+ tst r2, r0
+ ldreq r0, [sp, #0x0]
+ add sp, sp, #0x10
+ cmpeq r0, #0x0
+ movne r0, #0x1
+ moveq r0, #0x2
+ bx lr
+_020E9A70:
+ ldr r0, _020E9AA0 ; =0x000FFFFF
+ tst r2, r0
+ ldreq r0, [sp, #0x0]
+ add sp, sp, #0x10
+ cmpeq r0, #0x0
+ movne r0, #0x5
+ moveq r0, #0x3
+ bx lr
+_020E9A90:
+ mov r0, #0x4
+ add sp, sp, #0x10
+ bx lr
+ .balign 4
+_020E9A9C: .word 0x7FF00000
+_020E9AA0: .word 0x000FFFFF
+
+ arm_func_start scalbn
+scalbn: ; 0x020E9AA4
+ stmdb sp!, {r3-r4,lr}
+ sub sp, sp, #0x4
+ mov r4, r2
+ add r2, sp, #0x0
+ bl frexp
+ ldr r2, [sp, #0x0]
+ add r2, r2, r4
+ str r2, [sp, #0x0]
+ bl ldexp
+ add sp, sp, #0x4
+ ldmia sp!, {r3-r4,pc}
+
+ arm_func_start stricmp
+stricmp: ; 0x020E9AD0
+ stmdb sp!, {r3,lr}
+ ldr r3, _020E9B34 ; =0x0210420C
+_020E9AD8:
+ ldrb r2, [r0], #0x1
+ cmp r2, #0x0
+ blt _020E9AF0
+ cmp r2, #0x80
+ bge _020E9AF0
+ ldrb r2, [r3, r2]
+_020E9AF0:
+ ldrb lr, [r1], #0x1
+ and r12, r2, #0xff
+ cmp lr, #0x0
+ blt _020E9B0C
+ cmp lr, #0x80
+ bge _020E9B0C
+ ldrb lr, [r3, lr]
+_020E9B0C:
+ and r2, lr, #0xff
+ cmp r12, r2
+ mvncc r0, #0x0
+ ldmccia sp!, {r3,pc}
+_020E9B1C: ; 0x020E9B1C
+ movhi r0, #0x1
+ ldmhiia sp!, {r3,pc}
+_020E9B24: ; 0x020E9B24
+ cmp r12, #0x0
+ bne _020E9AD8
+ mov r0, #0x0
+ ldmia sp!, {r3,pc}
+ .balign 4
+_020E9B34: .word 0x0210420C
+
+ arm_func_start strnicmp
+strnicmp: ; 0x020E9B38
+ ldr ip, _020E9B40 ; =stricmp
+ bx r12
+ .balign 4
+_020E9B40: .word stricmp
+
+ arm_func_start _dadd
+_dadd:
+ stmdb sp!, {r4,lr}
+ eors r12, r1, r3
+ eormi r3, r3, #0x80000000
+ bmi _020EA5DC
+_020E9B54:
+ subs r12, r0, r2
+ sbcs lr, r1, r3
+ bhs _020E9B70
+ adds r2, r2, r12
+ adc r3, r3, lr
+ subs r0, r0, r12
+ sbc r1, r1, lr
+_020E9B70:
+ mov lr, #0x80000000
+ mov r12, r1, lsr #0x14
+ orr r1, lr, r1, lsl #0xb
+ orr r1, r1, r0, lsr #0x15
+ mov r0, r0, lsl #0xb
+ movs r4, r12, lsl #0x15
+ cmnne r4, #0x200000
+ beq _020E9C6C
+ mov r4, r3, lsr #0x14
+ orr r3, lr, r3, lsl #0xb
+ orr r3, r3, r2, lsr #0x15
+ mov r2, r2, lsl #0xb
+ movs lr, r4, lsl #0x15
+ beq _020E9CB4
+_020E9BA8:
+ subs r4, r12, r4
+ beq _020E9C00
+ cmp r4, #0x20
+ ble _020E9BE4
+ cmp r4, #0x38
+ movge r4, #0x3f
+ sub r4, r4, #0x20
+ rsb lr, r4, #0x20
+ orrs lr, r2, r3, lsl lr
+ mov r2, r3, lsr r4
+ orrne r2, r2, #0x1
+ adds r0, r0, r2
+ adcs r1, r1, #0x0
+ blo _020E9C28
+ b _020E9C0C
+_020E9BE4:
+ rsb lr, r4, #0x20
+ movs lr, r2, lsl lr
+ rsb lr, r4, #0x20
+ mov r2, r2, lsr r4
+ orr r2, r2, r3, lsl lr
+ mov r3, r3, lsr r4
+ orrne r2, r2, #0x1
+_020E9C00:
+ adds r0, r0, r2
+ adcs r1, r1, r3
+ blo _020E9C28
+_020E9C0C:
+ add r12, r12, #0x1
+ and r4, r0, #0x1
+ movs r1, r1, rrx
+ orr r0, r4, r0, rrx
+ mov lr, r12, lsl #0x15
+ cmn lr, #0x200000
+ beq _020E9E38
+_020E9C28:
+ movs r2, r0, lsl #0x15
+ mov r0, r0, lsr #0xb
+ orr r0, r0, r1, lsl #0x15
+ add r1, r1, r1
+ mov r1, r1, lsr #0xc
+ orr r1, r1, r12, lsl #0x14
+ tst r2, #0x80000000
+ ldmeqia sp!, {r4,lr}
+ bxeq lr
+ movs r2, r2, lsl #0x1
+ andeqs r2, r0, #0x1
+ ldmeqia sp!, {r4,lr}
+ bxeq lr
+ adds r0, r0, #0x1
+ adc r1, r1, #0x0
+ ldmia sp!, {r4,lr}
+ bx lr
+_020E9C6C:
+ cmp r12, #0x800
+ movge lr, #0x80000000
+ movlt lr, #0x0
+ bics r12, r12, #0x800
+ beq _020E9CD8
+ orrs r4, r0, r1, lsl #0x1
+ bne _020E9E14
+ mov r4, r3, lsr #0x14
+ mov r3, r3, lsl #0xb
+ orr r3, r3, r2, lsr #0x15
+ mov r2, r2, lsl #0xb
+ movs r4, r4, lsl #0x15
+ beq _020E9E00
+ cmn r4, #0x200000
+ bne _020E9E00
+ orrs r4, r2, r3, lsl #0x1
+ beq _020E9E00
+ b _020E9E14
+_020E9CB4:
+ cmp r4, #0x800
+ movge lr, #0x80000000
+ movlt lr, #0x0
+ bic r12, r12, #0x800
+ bics r4, r4, #0x800
+ beq _020E9D44
+ orrs r4, r2, r3, lsl #0x1
+ bne _020E9E14
+ b _020E9E00
+_020E9CD8:
+ orrs r4, r0, r1, lsl #0x1
+ beq _020E9D18
+ mov r12, #0x1
+ bic r1, r1, #0x80000000
+ mov r4, r3, lsr #0x14
+ mov r3, r3, lsl #0xb
+ orr r3, r3, r2, lsr #0x15
+ mov r2, r2, lsl #0xb
+ movs r4, r4, lsl #0x15
+ cmnne r4, #0x200000
+ mov r4, r4, lsr #0x15
+ orr r4, r4, lr, lsr #0x14
+ beq _020E9CB4
+ orr r3, r3, #0x80000000
+ orr r12, r12, lr, lsr #0x14
+ b _020E9BA8
+_020E9D18:
+ mov r12, r3, lsr #0x14
+ mov r1, r3, lsl #0xb
+ orr r1, r1, r2, lsr #0x15
+ mov r0, r2, lsl #0xb
+ movs r4, r12, lsl #0x15
+ beq _020E9DCC
+ cmn r4, #0x200000
+ bne _020E9DCC
+ orrs r4, r0, r1, lsl #0x1
+ beq _020E9E00
+ b _020E9E18
+_020E9D44:
+ orrs r4, r2, r3, lsl #0x1
+ beq _020E9DDC
+ mov r4, #0x1
+ bic r3, r3, #0x80000000
+ cmp r1, #0x0
+ bpl _020E9D68
+ orr r12, r12, lr, lsr #0x14
+ orr r4, r4, lr, lsr #0x14
+ b _020E9BA8
+_020E9D68:
+ adds r0, r0, r2
+ adcs r1, r1, r3
+ blo _020E9D88
+ add r12, r12, #0x1
+ and r4, r0, #0x1
+ movs r1, r1, rrx
+ mov r0, r0, rrx
+ orr r0, r0, r4
+_020E9D88:
+ cmp r1, #0x0
+ subges r12, r12, #0x1
+ movs r2, r0, lsl #0x15
+ mov r0, r0, lsr #0xb
+ orr r0, r0, r1, lsl #0x15
+ add r1, r1, r1
+ orr r1, lr, r1, lsr #0xc
+ orr r1, r1, r12, lsl #0x14
+ ldmeqia sp!, {r4,lr}
+ bxeq lr
+ tst r2, #0x80000000
+ ldmeqia sp!, {r4,lr}
+ bxeq lr
+ movs r2, r2, lsl #0x1
+ andeqs r2, r0, #0x1
+ ldmeqia sp!, {r4,lr}
+ bxeq lr
+_020E9DCC:
+ mov r1, r3
+ mov r0, r2
+ ldmia sp!, {r4,lr}
+ bx lr
+_020E9DDC:
+ cmp r1, #0x0
+ subges r12, r12, #0x1
+ mov r0, r0, lsr #0xb
+ orr r0, r0, r1, lsl #0x15
+ add r1, r1, r1
+ orr r1, lr, r1, lsr #0xc
+ orr r1, r1, r12, lsl #0x14
+ ldmia sp!, {r4,lr}
+ bx lr
+_020E9E00:
+ ldr r1, _020E9E58 ; =0x7FF00000
+ orr r1, lr, r1
+ mov r0, #0x0
+ ldmia sp!, {r4,lr}
+ bx lr
+_020E9E14:
+ mov r1, r3
+_020E9E18:
+ mvn r0, #0x0
+ bic r1, r0, #0x80000000
+ ldmia sp!, {r4,lr}
+ bx lr
+_020E9E28: ; 0x020E9E28
+ mvn r0, #0x0
+ bic r1, r0, #0x80000000
+ ldmia sp!, {r4,lr}
+ bx lr
+_020E9E38:
+ cmp r12, #0x800
+ movge lr, #0x80000000
+ movlt lr, #0x0
+ ldr r1, _020E9E58 ; =0x7FF00000
+ orr r1, lr, r1
+ mov r0, #0x0
+ ldmia sp!, {r4,lr}
+ bx lr
+ .balign 4
+_020E9E58: .word 0x7FF00000
+
+ arm_func_start _d2f
+_d2f:
+ and r2, r1, #0x80000000
+ mov r12, r1, lsr #0x14
+ bics r12, r12, #0x800
+ beq _020E9ED4
+ mov r3, r12, lsl #0x15
+ cmn r3, #0x200000
+ bhs _020E9EB8
+ subs r12, r12, #0x380
+ bls _020E9EE4
+ cmp r12, #0xff
+ bge _020E9F54
+ mov r1, r1, lsl #0xc
+ orr r3, r2, r1, lsr #0x9
+ orr r3, r3, r0, lsr #0x1d
+ movs r1, r0, lsl #0x3
+ orr r0, r3, r12, lsl #0x17
+ bxeq lr
+ tst r1, #0x80000000
+ bxeq lr
+ movs r1, r1, lsl #0x1
+ andeqs r1, r0, #0x1
+ addne r0, r0, #0x1
+ bx lr
+_020E9EB8:
+ orrs r3, r0, r1, lsl #0xc
+ bne _020E9ECC
+ mov r0, #0xff000000
+ orr r0, r2, r0, lsr #0x1
+ bx lr
+_020E9ECC:
+ mvn r0, #0x80000000
+ bx lr
+_020E9ED4:
+ orrs r3, r0, r1, lsl #0xc
+ bne _020E9F4C
+ mov r0, r2
+ bx lr
+_020E9EE4:
+ cmn r12, #0x17
+ beq _020E9F38
+ bmi _020E9F4C
+ mov r1, r1, lsl #0xb
+ orr r1, r1, #0x80000000
+ mov r3, r1, lsr #0x8
+ orr r3, r3, r0, lsr #0x1d
+ rsb r12, r12, #0x1
+ movs r1, r0, lsl #0x3
+ orr r0, r2, r3, lsr r12
+ rsb r12, r12, #0x20
+ mov r3, r3, lsl r12
+ orrne r3, r3, #0x1
+ movs r1, r3
+ bxeq lr
+ tst r1, #0x80000000
+ bxeq lr
+ movs r1, r1, lsl #0x1
+ andeqs r1, r0, #0x1
+ addne r0, r0, #0x1
+ bx lr
+_020E9F38:
+ orr r0, r0, r1, lsl #0xc
+ movs r1, r0
+ mov r0, r2
+ addne r0, r0, #0x1
+ bx lr
+_020E9F4C:
+ mov r0, r2
+ bx lr
+_020E9F54:
+ mov r0, #0xff000000
+ orr r0, r2, r0, lsr #0x1
+ bx lr
+
+ arm_func_start _dfix
+_dfix: ; 0x020E9F60
+ bic r3, r1, #0x80000000
+ ldr r2, _020E9FA8 ; =0x0000041E
+ subs r2, r2, r3, lsr #0x14
+ ble _020E9F9C
+ cmp r2, #0x20
+ bge _020E9F94
+ mov r3, r1, lsl #0xb
+ orr r3, r3, #0x80000000
+ orr r3, r3, r0, lsr #0x15
+ cmp r1, #0x0
+ mov r0, r3, lsr r2
+ rsbmi r0, r0, #0x0
+ bx lr
+_020E9F94:
+ mov r0, #0x0
+ bx lr
+_020E9F9C:
+ mvn r0, r1, asr #0x1f
+ add r0, r0, #0x80000000
+ bx lr
+ .balign 4
+_020E9FA8: .word 0x0000041E
+
+ arm_func_start _ll_ufrom_d
+_ll_ufrom_d: ; 0x020E9FAC
+ tst r1, #0x80000000
+ bne _020EA010
+ ldr r2, _020EA034 ; =0x0000043E
+ subs r2, r2, r1, lsr #0x14
+ blt _020EA028
+ cmp r2, #0x40
+ bge _020EA004
+ mov r12, r1, lsl #0xb
+ orr r12, r12, #0x80000000
+ orr r12, r12, r0, lsr #0x15
+ cmp r2, #0x20
+ ble _020E9FEC
+ sub r2, r2, #0x20
+ mov r1, #0x0
+ mov r0, r12, lsr r2
+ bx lr
+_020E9FEC:
+ mov r3, r0, lsl #0xb
+ mov r1, r12, lsr r2
+ mov r0, r3, lsr r2
+ rsb r2, r2, #0x20
+ orr r0, r0, r12, lsl r2
+ bx lr
+_020EA004:
+ mov r1, #0x0
+ mov r0, #0x0
+ bx lr
+_020EA010:
+ cmn r1, #0x100000
+ cmpeq r0, #0x0
+ bhi _020EA028
+ mov r1, #0x0
+ mov r0, #0x0
+ bx lr
+_020EA028:
+ mvn r1, #0x0
+ mvn r0, #0x0
+ bx lr
+ .balign 4
+_020EA034: .word 0x0000043E
+
+ arm_func_start _dflt
+_dflt: ; 0x020EA038
+ ands r2, r0, #0x80000000
+ rsbmi r0, r0, #0x0
+ cmp r0, #0x0
+ mov r1, #0x0
+ bxeq lr
+ mov r3, #0x400
+ add r3, r3, #0x1e
+ clz r12, r0
+ movs r0, r0, lsl r12
+ sub r3, r3, r12
+ movs r1, r0
+ mov r0, r1, lsl #0x15
+ add r1, r1, r1
+ orr r1, r2, r1, lsr #0xc
+ orr r1, r1, r3, lsl #0x14
+ bx lr
+
+ arm_func_start _dfltu
+_dfltu: ; 0x020EA078
+ cmp r0, #0x0
+ mov r1, #0x0
+ bxeq lr
+ mov r3, #0x400
+ add r3, r3, #0x1e
+ bmi _020EA09C
+ clz r12, r0
+ movs r0, r0, lsl r12
+ sub r3, r3, r12
+_020EA09C:
+ mov r1, r0
+ mov r0, r1, lsl #0x15
+ add r1, r1, r1
+ mov r1, r1, lsr #0xc
+ orr r1, r1, r3, lsl #0x14
+ bx lr
+
+ arm_func_start _dmul
+_dmul: ; 0x020EA0B4
+ stmdb sp!, {r4-r7,lr}
+ eor lr, r1, r3
+ and lr, lr, #0x80000000
+ mov r12, r1, lsr #0x14
+ mov r1, r1, lsl #0xb
+ orr r1, r1, r0, lsr #0x15
+ mov r0, r0, lsl #0xb
+ movs r6, r12, lsl #0x15
+ cmnne r6, #0x200000
+ beq _020EA1BC
+ orr r1, r1, #0x80000000
+ bic r12, r12, #0x800
+ mov r4, r3, lsr #0x14
+ mov r3, r3, lsl #0xb
+ orr r3, r3, r2, lsr #0x15
+ mov r2, r2, lsl #0xb
+ movs r5, r4, lsl #0x15
+ cmnne r5, #0x200000
+ beq _020EA204
+ orr r3, r3, #0x80000000
+ bic r4, r4, #0x800
+_020EA108:
+ add r12, r4, r12
+ umull r5, r4, r0, r2
+ umull r7, r6, r0, r3
+ adds r4, r7, r4
+ adc r6, r6, #0x0
+ umull r7, r0, r1, r2
+ adds r4, r7, r4
+ adcs r0, r0, r6
+ umull r7, r2, r1, r3
+ adc r1, r2, #0x0
+ adds r0, r0, r7
+ adc r1, r1, #0x0
+ orrs r4, r4, r5
+ orrne r0, r0, #0x1
+ cmp r1, #0x0
+ blt _020EA154
+ sub r12, r12, #0x1
+ adds r0, r0, r0
+ adc r1, r1, r1
+_020EA154:
+ add r12, r12, #0x2
+ subs r12, r12, #0x400
+ bmi _020EA2F0
+ beq _020EA2F0
+ mov r6, r12, lsl #0x14
+ cmn r6, #0x100000
+ bmi _020EA3F0
+ movs r2, r0, lsl #0x15
+ mov r0, r0, lsr #0xb
+ orr r0, r0, r1, lsl #0x15
+ add r1, r1, r1
+ orr r1, lr, r1, lsr #0xc
+ orr r1, r1, r12, lsl #0x14
+ ldmeqia sp!, {r4-r7,lr}
+ bxeq lr
+ tst r2, #0x80000000
+ ldmeqia sp!, {r4-r7,lr}
+ bxeq lr
+ movs r2, r2, lsl #0x1
+ andeqs r2, r0, #0x1
+ ldmeqia sp!, {r4-r7,lr}
+ bxeq lr
+ adds r0, r0, #0x1
+ adc r1, r1, #0x0
+ ldmia sp!, {r4-r7,lr}
+ bx lr
+_020EA1BC:
+ bics r12, r12, #0x800
+ beq _020EA218
+ orrs r6, r0, r1, lsl #0x1
+ bne _020EA3A4
+ mov r4, r3, lsr #0x14
+ mov r3, r3, lsl #0xb
+ orr r3, r3, r2, lsr #0x15
+ mov r2, r2, lsl #0xb
+ movs r5, r4, lsl #0x15
+ beq _020EA1F8
+ cmn r5, #0x200000
+ bne _020EA390
+ orrs r5, r2, r3, lsl #0x1
+ beq _020EA390
+ b _020EA3A4
+_020EA1F8:
+ orrs r5, r3, r2
+ beq _020EA3B8
+ b _020EA390
+_020EA204:
+ bics r4, r4, #0x800
+ beq _020EA2AC
+ orrs r6, r2, r3, lsl #0x1
+ bne _020EA3A4
+ b _020EA390
+_020EA218:
+ orrs r6, r0, r1, lsl #0x1
+ beq _020EA280
+ mov r12, #0x1
+ cmp r1, #0x0
+ bne _020EA23C
+ sub r12, r12, #0x20
+ movs r1, r0
+ mov r0, #0x0
+ bmi _020EA258
+_020EA23C:
+ clz r6, r1
+ movs r1, r1, lsl r6
+ rsb r6, r6, #0x20
+ orr r1, r1, r0, lsr r6
+ rsb r6, r6, #0x20
+ mov r0, r0, lsl r6
+ sub r12, r12, r6
+_020EA258:
+ mov r4, r3, lsr #0x14
+ mov r3, r3, lsl #0xb
+ orr r3, r3, r2, lsr #0x15
+ mov r2, r2, lsl #0xb
+ movs r5, r4, lsl #0x15
+ cmnne r5, #0x200000
+ beq _020EA204
+ orr r3, r3, #0x80000000
+ bic r4, r4, #0x800
+ b _020EA108
+_020EA280:
+ mov r4, r3, lsr #0x14
+ mov r3, r3, lsl #0xb
+ orr r3, r3, r2, lsr #0x15
+ mov r2, r2, lsl #0xb
+ movs r5, r4, lsl #0x15
+ beq _020EA404
+ cmn r5, #0x200000
+ bne _020EA404
+ orrs r6, r2, r3, lsl #0x1
+ beq _020EA3B8
+ b _020EA3A4
+_020EA2AC:
+ orrs r5, r2, r3, lsl #0x1
+ beq _020EA404
+ mov r4, #0x1
+ cmp r3, #0x0
+ bne _020EA2D0
+ sub r4, r4, #0x20
+ movs r3, r2
+ mov r2, #0x0
+ bmi _020EA108
+_020EA2D0:
+ clz r6, r3
+ movs r3, r3, lsl r6
+ rsb r6, r6, #0x20
+ orr r3, r3, r2, lsr r6
+ rsb r6, r6, #0x20
+ mov r2, r2, lsl r6
+ sub r4, r4, r6
+ b _020EA108
+_020EA2F0:
+ cmn r12, #0x34
+ beq _020EA388
+ bmi _020EA3E0
+ mov r2, r1
+ mov r3, r0
+ add r4, r12, #0x34
+ cmp r4, #0x20
+ movge r2, r3
+ movge r3, #0x0
+ subge r4, r4, #0x20
+ rsb r5, r4, #0x20
+ mov r2, r2, lsl r4
+ orr r2, r2, r3, lsr r5
+ movs r3, r3, lsl r4
+ orrne r2, r2, #0x1
+ rsb r12, r12, #0xc
+ cmp r12, #0x20
+ movge r0, r1
+ movge r1, #0x0
+ subge r12, r12, #0x20
+ rsb r4, r12, #0x20
+ mov r0, r0, lsr r12
+ orr r0, r0, r1, lsl r4
+ orr r1, lr, r1, lsr r12
+ cmp r2, #0x0
+ ldmeqia sp!, {r4-r7,lr}
+ bxeq lr
+ tst r2, #0x80000000
+ ldmeqia sp!, {r4-r7,lr}
+ bxeq lr
+ movs r2, r2, lsl #0x1
+ andeqs r2, r0, #0x1
+ ldmeqia sp!, {r4-r7,lr}
+ bxeq lr
+ adds r0, r0, #0x1
+ adc r1, r1, #0x0
+ ldmia sp!, {r4-r7,lr}
+ bx lr
+_020EA388:
+ orr r0, r0, r1, lsl #0x1
+ b _020EA3C8
+_020EA390:
+ ldr r1, _020EA414 ; =0x7FF00000
+ orr r1, lr, r1
+ mov r0, #0x0
+ ldmia sp!, {r4-r7,lr}
+ bx lr
+_020EA3A4:
+ mov r1, r3
+ mvn r0, #0x0
+ bic r1, r0, #0x80000000
+ ldmia sp!, {r4-r7,lr}
+ bx lr
+_020EA3B8:
+ mvn r0, #0x0
+ bic r1, r0, #0x80000000
+ ldmia sp!, {r4-r7,lr}
+ bx lr
+_020EA3C8:
+ movs r2, r0
+ mov r1, lr
+ mov r0, #0x0
+ addne r0, r0, #0x1
+ ldmia sp!, {r4-r7,lr}
+ bx lr
+_020EA3E0:
+ mov r1, lr
+ mov r0, #0x0
+ ldmia sp!, {r4-r7,lr}
+ bx lr
+_020EA3F0:
+ ldr r1, _020EA414 ; =0x7FF00000
+ orr r1, lr, r1
+ mov r0, #0x0
+ ldmia sp!, {r4-r7,lr}
+ bx lr
+_020EA404:
+ mov r1, lr
+ mov r0, #0x0
+ ldmia sp!, {r4-r7,lr}
+ bx lr
+ .balign 4
+_020EA414: .word 0x7FF00000
+
+ arm_func_start _dsqrt
+_dsqrt: ; 0x020EA418
+ stmdb sp!, {r4-r6,lr}
+ ldr r2, _020EA5A8 ; =0x7FF00000
+ cmp r1, r2
+ bhs _020EA564
+ movs r12, r1, lsr #0x14
+ beq _020EA510
+ bic r1, r1, r2
+ orr r1, r1, #0x100000
+_020EA438:
+ movs r12, r12, asr #0x1
+ bhs _020EA44C
+ sub r12, r12, #0x1
+ movs r0, r0, lsl #0x1
+ adc r1, r1, r1
+_020EA44C:
+ movs r3, r0, lsl #0x1
+ adc r1, r1, r1
+ mov r2, #0x0
+ mov r4, #0x0
+ mov lr, #0x200000
+_020EA460:
+ add r6, r4, lr
+ cmp r6, r1
+ addle r4, r6, lr
+ suble r1, r1, r6
+ addle r2, r2, lr
+ movs r3, r3, lsl #0x1
+ adc r1, r1, r1
+ movs lr, lr, lsr #0x1
+ bne _020EA460
+ mov r0, #0x0
+ mov r5, #0x0
+ cmp r1, r4
+ cmpeq r3, #0x80000000
+ blo _020EA4A8
+ subs r3, r3, #0x80000000
+ sbc r1, r1, r4
+ add r4, r4, #0x1
+ mov r0, #0x80000000
+_020EA4A8:
+ movs r3, r3, lsl #0x1
+ adc r1, r1, r1
+ mov lr, #0x40000000
+_020EA4B4:
+ add r6, r5, lr
+ cmp r4, r1
+ cmpeq r6, r3
+ bhi _020EA4D4
+ add r5, r6, lr
+ subs r3, r3, r6
+ sbc r1, r1, r4
+ add r0, r0, lr
+_020EA4D4:
+ movs r3, r3, lsl #0x1
+ adc r1, r1, r1
+ movs lr, lr, lsr #0x1
+ bne _020EA4B4
+ orrs r1, r1, r3
+ biceq r0, r0, #0x1
+ movs r1, r2, lsr #0x1
+ movs r0, r0, rrx
+ adcs r0, r0, #0x0
+ adc r1, r1, #0x0
+ add r1, r1, #0x20000000
+ sub r1, r1, #0x100000
+ add r1, r1, r12, lsl #0x14
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+_020EA510:
+ cmp r1, #0x0
+ bne _020EA540
+ cmp r0, #0x0
+ ldmeqia sp!, {r4-r6,lr}
+ bxeq lr
+ mvn r12, #0x13
+ clz r5, r0
+ movs r0, r0, lsl r5
+ sub r12, r12, r5
+ mov r1, r0, lsr #0xb
+ mov r0, r0, lsl #0x15
+ b _020EA438
+_020EA540:
+ clz r2, r1
+ movs r1, r1, lsl r2
+ rsb r2, r2, #0x2b
+ mov r1, r1, lsr #0xb
+ orr r1, r1, r0, lsr r2
+ rsb r2, r2, #0x20
+ mov r0, r0, lsl r2
+ rsb r12, r2, #0x1
+ b _020EA438
+_020EA564:
+ tst r1, #0x80000000
+ beq _020EA580
+ bics r3, r1, #0x80000000
+ cmpeq r0, #0x0
+ ldmeqia sp!, {r4-r6,lr}
+ bxeq lr
+ b _020EA58C
+_020EA580:
+ orrs r2, r0, r1, lsl #0xc
+ ldmeqia sp!, {r4-r6,lr}
+ bxeq lr
+_020EA58C:
+ ldr r2, _020EA5AC ; =0x7FF80000
+ orr r1, r1, r2
+ ldr r3, _020EA5B0 ; =0x021D74A8
+ mov r4, #0x21
+ str r4, [r3, #0x0]
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+ .balign 4
+_020EA5A8: .word 0x7FF00000
+_020EA5AC: .word 0x7FF80000
+_020EA5B0: .word 0x021D74A8
+
+ arm_func_start _drsb
+_drsb: ; 0x020EA5B4
+ eor r1, r1, r3
+ eor r3, r1, r3
+ eor r1, r1, r3
+ eor r0, r0, r2
+ eor r2, r0, r2
+ eor r0, r0, r2
+
+ arm_func_start _dsub
+_dsub:
+ stmdb sp!, {r4,lr}
+ eors r12, r1, r3
+ eormi r3, r3, #0x80000000
+ bmi _020E9B54
+_020EA5DC:
+ subs r12, r0, r2
+ sbcs lr, r1, r3
+ bhs _020EA5FC
+ eor lr, lr, #0x80000000
+ adds r2, r2, r12
+ adc r3, r3, lr
+ subs r0, r0, r12
+ sbc r1, r1, lr
+_020EA5FC:
+ mov lr, #0x80000000
+ mov r12, r1, lsr #0x14
+ orr r1, lr, r1, lsl #0xb
+ orr r1, r1, r0, lsr #0x15
+ mov r0, r0, lsl #0xb
+ movs r4, r12, lsl #0x15
+ cmnne r4, #0x200000
+ beq _020EA800
+ mov r4, r3, lsr #0x14
+ orr r3, lr, r3, lsl #0xb
+ orr r3, r3, r2, lsr #0x15
+ mov r2, r2, lsl #0xb
+ movs lr, r4, lsl #0x15
+ beq _020EA848
+_020EA634:
+ subs r4, r12, r4
+ beq _020EA6DC
+ cmp r4, #0x20
+ ble _020EA670
+ cmp r4, #0x38
+ movge r4, #0x3f
+ sub r4, r4, #0x20
+ rsb lr, r4, #0x20
+ orrs lr, r2, r3, lsl lr
+ mov r2, r3, lsr r4
+ orrne r2, r2, #0x1
+ subs r0, r0, r2
+ sbcs r1, r1, #0x0
+ bmi _020EA698
+ b _020EA788
+_020EA670:
+ rsb lr, r4, #0x20
+ movs lr, r2, lsl lr
+ rsb lr, r4, #0x20
+ mov r2, r2, lsr r4
+ orr r2, r2, r3, lsl lr
+ mov r3, r3, lsr r4
+ orrne r2, r2, #0x1
+ subs r0, r0, r2
+ sbcs r1, r1, r3
+ bpl _020EA788
+_020EA698:
+ movs r2, r0, lsl #0x15
+ mov r0, r0, lsr #0xb
+ orr r0, r0, r1, lsl #0x15
+ add r1, r1, r1
+ mov r1, r1, lsr #0xc
+ orr r1, r1, r12, lsl #0x14
+ tst r2, #0x80000000
+ ldmeqia sp!, {r4,lr}
+ bxeq lr
+ movs r2, r2, lsl #0x1
+ andeqs r2, r0, #0x1
+ ldmeqia sp!, {r4,lr}
+ bxeq lr
+ adds r0, r0, #0x1
+ adc r1, r1, #0x0
+ ldmia sp!, {r4,lr}
+ bx lr
+_020EA6DC:
+ subs r0, r0, r2
+ sbc r1, r1, r3
+ orrs lr, r1, r0
+ beq _020EA96C
+ mov lr, r12, lsl #0x14
+ and lr, lr, #0x80000000
+ bic r12, r12, #0x800
+ cmp r1, #0x0
+ bmi _020EA764
+ bne _020EA714
+ sub r12, r12, #0x20
+ movs r1, r0
+ mov r0, #0x0
+ bmi _020EA730
+_020EA714:
+ clz r4, r1
+ movs r1, r1, lsl r4
+ rsb r4, r4, #0x20
+ orr r1, r1, r0, lsr r4
+ rsb r4, r4, #0x20
+ mov r0, r0, lsl r4
+ sub r12, r12, r4
+_020EA730:
+ cmp r12, #0x0
+ bgt _020EA76C
+ rsb r12, r12, #0xc
+ cmp r12, #0x20
+ movge r0, r1
+ movge r1, #0x0
+ subge r12, r12, #0x20
+ rsb r4, r12, #0x20
+ mov r0, r0, lsr r12
+ orr r0, r0, r1, lsl r4
+ orr r1, lr, r1, lsr r12
+ ldmia sp!, {r4,lr}
+ bx lr
+_020EA764:
+ cmp r1, #0x0
+ subges r12, r12, #0x1
+_020EA76C:
+ mov r0, r0, lsr #0xb
+ orr r0, r0, r1, lsl #0x15
+ add r1, r1, r1
+ orr r1, lr, r1, lsr #0xc
+ orr r1, r1, r12, lsl #0x14
+ ldmia sp!, {r4,lr}
+ bx lr
+_020EA788:
+ mov lr, r12, lsl #0x14
+ and lr, lr, #0x80000000
+ bic r12, r12, #0x800
+ cmp r1, #0x0
+ bne _020EA7AC
+ sub r12, r12, #0x20
+ movs r1, r0
+ mov r0, #0x0
+ bmi _020EA7C8
+_020EA7AC:
+ clz r4, r1
+ movs r1, r1, lsl r4
+ rsb r4, r4, #0x20
+ orr r1, r1, r0, lsr r4
+ rsb r4, r4, #0x20
+ mov r0, r0, lsl r4
+ sub r12, r12, r4
+_020EA7C8:
+ cmp r12, #0x0
+ orrgt r12, r12, lr, lsr #0x14
+ bgt _020EA698
+ rsb r12, r12, #0xc
+ cmp r12, #0x20
+ movge r0, r1
+ movge r1, #0x0
+ subge r12, r12, #0x20
+ rsb r4, r12, #0x20
+ mov r0, r0, lsr r12
+ orr r0, r0, r1, lsl r4
+ orr r1, lr, r1, lsr r12
+ ldmia sp!, {r4,lr}
+ bx lr
+_020EA800:
+ cmp r12, #0x800
+ movge lr, #0x80000000
+ movlt lr, #0x0
+ bics r12, r12, #0x800
+ beq _020EA86C
+ orrs r4, r0, r1, lsl #0x1
+ bne _020EA948
+ mov r4, r3, lsr #0x14
+ mov r3, r3, lsl #0xb
+ orr r3, r3, r2, lsr #0x15
+ mov r2, r2, lsl #0xb
+ movs r4, r4, lsl #0x15
+ beq _020EA934
+ cmn r4, #0x200000
+ bne _020EA934
+ orrs r4, r2, r3, lsl #0x1
+ beq _020EA95C
+ b _020EA948
+_020EA848:
+ cmp r4, #0x800
+ movge lr, #0x80000000
+ movlt lr, #0x0
+ bic r12, r12, #0x800
+ bics r4, r4, #0x800
+ beq _020EA8E4
+ orrs r4, r2, r3, lsl #0x1
+ bne _020EA948
+ b _020EA934
+_020EA86C:
+ orrs r4, r0, r1, lsl #0x1
+ beq _020EA8AC
+ mov r12, #0x1
+ bic r1, r1, #0x80000000
+ mov r4, r3, lsr #0x14
+ mov r3, r3, lsl #0xb
+ orr r3, r3, r2, lsr #0x15
+ mov r2, r2, lsl #0xb
+ movs r4, r4, lsl #0x15
+ cmnne r4, #0x200000
+ mov r4, r4, lsr #0x15
+ orr r4, r4, lr, lsr #0x14
+ beq _020EA848
+ orr r3, r3, #0x80000000
+ orr r12, r12, lr, lsr #0x14
+ b _020EA634
+_020EA8AC:
+ mov r12, r3, lsr #0x14
+ mov r1, r3, lsl #0xb
+ orr r1, r1, r2, lsr #0x15
+ mov r0, r2, lsl #0xb
+ movs r4, r12, lsl #0x15
+ beq _020EA8D8
+ cmn r4, #0x200000
+ bne _020EA900
+ orrs r4, r0, r1, lsl #0x1
+ bne _020EA94C
+ b _020EA934
+_020EA8D8:
+ orrs r4, r0, r1, lsl #0x1
+ beq _020EA96C
+ b _020EA900
+_020EA8E4:
+ orrs r4, r2, r3, lsl #0x1
+ beq _020EA910
+ mov r4, #0x1
+ bic r3, r3, #0x80000000
+ orr r12, r12, lr, lsr #0x14
+ orr r4, r4, lr, lsr #0x14
+ b _020EA634
+_020EA900:
+ mov r1, r3
+ mov r0, r2
+ ldmia sp!, {r4,lr}
+ bx lr
+_020EA910:
+ cmp r1, #0x0
+ subges r12, r12, #0x1
+ mov r0, r0, lsr #0xb
+ orr r0, r0, r1, lsl #0x15
+ add r1, r1, r1
+ orr r1, lr, r1, lsr #0xc
+ orr r1, r1, r12, lsl #0x14
+ ldmia sp!, {r4,lr}
+ bx lr
+_020EA934:
+ ldr r1, _020EA97C ; =0x7FF00000
+ orr r1, lr, r1
+ mov r0, #0x0
+ ldmia sp!, {r4,lr}
+ bx lr
+_020EA948:
+ mov r1, r3
+_020EA94C:
+ mvn r0, #0x0
+ bic r1, r0, #0x80000000
+ ldmia sp!, {r4,lr}
+ bx lr
+_020EA95C:
+ mvn r0, #0x0
+ bic r1, r0, #0x80000000
+ ldmia sp!, {r4,lr}
+ bx lr
+_020EA96C:
+ mov r1, #0x0
+ mov r0, #0x0
+ ldmia sp!, {r4,lr}
+ bx lr
+ .balign 4
+_020EA97C: .word 0x7FF00000
+
+ arm_func_start _fadd
+_fadd: ; 0x020EA980
+ eors r2, r0, r1
+ eormi r1, r1, #0x80000000
+ bmi _020EB7BC
+_020EA98C:
+ subs r12, r0, r1
+ subcc r0, r0, r12
+ addcc r1, r1, r12
+ mov r2, #0x80000000
+ mov r3, r0, lsr #0x17
+ orr r0, r2, r0, lsl #0x8
+ ands r12, r3, #0xff
+ cmpne r12, #0xff
+ beq _020EAA20
+ mov r12, r1, lsr #0x17
+ orr r1, r2, r1, lsl #0x8
+ ands r2, r12, #0xff
+ beq _020EAA60
+_020EA9C0:
+ subs r12, r3, r12
+ beq _020EA9D8
+ rsb r2, r12, #0x20
+ movs r2, r1, lsl r2
+ mov r1, r1, lsr r12
+ orrne r1, r1, #0x1
+_020EA9D8:
+ adds r0, r0, r1
+ blo _020EA9F8
+ and r1, r0, #0x1
+ orr r0, r1, r0, rrx
+ add r3, r3, #0x1
+ and r2, r3, #0xff
+ cmp r2, #0xff
+ beq _020EAB68
+_020EA9F8:
+ ands r1, r0, #0xff
+ add r0, r0, r0
+ mov r0, r0, lsr #0x9
+ orr r0, r0, r3, lsl #0x17
+ tst r1, #0x80
+ bxeq lr
+ ands r1, r1, #0x7f
+ andeqs r1, r0, #0x1
+ addne r0, r0, #0x1
+ bx lr
+_020EAA20:
+ cmp r3, #0x100
+ movge r2, #0x80000000
+ movlt r2, #0x0
+ ands r3, r3, #0xff
+ beq _020EAA84
+ movs r0, r0, lsl #0x1
+ bne _020EAB94
+ mov r12, r1, lsr #0x17
+ mov r1, r1, lsl #0x9
+ ands r12, r12, #0xff
+ beq _020EAB88
+ cmp r12, #0xff
+ blt _020EAB88
+ cmp r1, #0x0
+ beq _020EAB88
+ b _020EAB94
+_020EAA60:
+ cmp r3, #0x100
+ movge r2, #0x80000000
+ movlt r2, #0x0
+ and r3, r3, #0xff
+ ands r12, r12, #0xff
+ beq _020EAAE0
+_020EAA78:
+ movs r1, r1, lsl #0x1
+ bne _020EAB94
+ b _020EAB88
+_020EAA84:
+ movs r0, r0, lsl #0x1
+ beq _020EAABC
+ mov r3, #0x1
+ mov r0, r0, lsr #0x1
+ mov r12, r1, lsr #0x17
+ mov r1, r1, lsl #0x8
+ ands r12, r12, #0xff
+ beq _020EAAE0
+ cmp r12, #0xff
+ beq _020EAA78
+ orr r1, r1, #0x80000000
+ orr r3, r3, r2, lsr #0x17
+ orr r12, r12, r2, lsr #0x17
+ b _020EA9C0
+_020EAABC:
+ mov r3, r1, lsr #0x17
+ mov r0, r1, lsl #0x9
+ ands r3, r3, #0xff
+ beq _020EAB48
+ cmp r3, #0xff
+ blt _020EAB48
+ cmp r0, #0x0
+ beq _020EAB88
+ b _020EAB80
+_020EAAE0:
+ movs r1, r1, lsl #0x1
+ beq _020EAB50
+ mov r1, r1, lsr #0x1
+ mov r12, #0x1
+ orr r3, r3, r2, lsr #0x17
+ orr r12, r12, r2, lsr #0x17
+ cmp r0, #0x0
+ bmi _020EA9C0
+ adds r0, r0, r1
+ blo _020EAB14
+ and r1, r0, #0x1
+ orr r0, r1, r0, rrx
+ add r12, r12, #0x1
+_020EAB14:
+ cmp r0, #0x0
+ subge r12, r12, #0x1
+ ands r1, r0, #0xff
+ add r0, r0, r0
+ mov r0, r0, lsr #0x9
+ orr r0, r0, r12, lsl #0x17
+ bxeq lr
+ tst r1, #0x80
+ bxeq lr
+ ands r1, r1, #0x7f
+ andeqs r1, r0, #0x1
+ addne r0, r0, #0x1
+ bx lr
+_020EAB48:
+ mov r0, r1
+ bx lr
+_020EAB50:
+ cmp r0, #0x0
+ subges r3, r3, #0x1
+ add r0, r0, r0
+ orr r0, r2, r0, lsr #0x9
+ orr r0, r0, r3, lsl #0x17
+ bx lr
+_020EAB68:
+ cmp r3, #0x100
+ movge r2, #0x80000000
+ movlt r2, #0x0
+ mov r0, #0xff000000
+ orr r0, r2, r0, lsr #0x1
+ bx lr
+_020EAB80:
+ mvn r0, #0x80000000
+ bx lr
+_020EAB88:
+ mov r0, #0xff000000
+ orr r0, r2, r0, lsr #0x1
+ bx lr
+_020EAB94:
+ mvn r0, #0x80000000
+ bx lr
+_020EAB9C: ; 0x020EAB9C
+ mvn r0, #0x80000000
+ bx lr
+
+ arm_func_start _dgr
+_dgr: ; 0x020EABA4
+ mov r12, #0x200000
+ cmn r12, r1, lsl #0x1
+ bhs _020EAC18
+ cmn r12, r3, lsl #0x1
+ bhs _020EAC2C
+_020EABB8:
+ orrs r12, r3, r1
+ bmi _020EABE8
+ cmp r1, r3
+ cmpeq r0, r2
+ movhi r0, #0x1
+ movls r0, #0x0
+ bx lr
+_020EABD4:
+ mov r0, #0x0
+ mrs r12, cpsr
+ bic r12, r12, #0x20000000
+ msr cpsr_f, r12
+ bx lr
+_020EABE8:
+ orr r12, r0, r12, lsl #0x1
+ orrs r12, r12, r2
+ moveq r0, #0x0
+ mrs r12, cpsr
+ bic r12, r12, #0x20000000
+ msr cpsr_f, r12
+ bxeq lr
+ cmp r3, r1
+ cmpeq r2, r0
+ movhi r0, #0x1
+ movls r0, #0x0
+ bx lr
+_020EAC18:
+ bne _020EABD4
+ cmp r0, #0x0
+ bhi _020EABD4
+ cmn r12, r3, lsl #0x1
+ blo _020EABB8
+_020EAC2C:
+ bne _020EABD4
+ cmp r2, #0x0
+ bhi _020EABD4
+ b _020EABB8
+
+ arm_func_start _dleq
+_dleq: ; 0x020EAC3C
+ mov r12, #0x200000
+ cmn r12, r1, lsl #0x1
+ bhs _020EACBC
+ cmn r12, r3, lsl #0x1
+ bhs _020EACD0
+_020EAC50:
+ orrs r12, r3, r1
+ bmi _020EAC84
+ cmp r1, r3
+ cmpeq r0, r2
+ movls r0, #0x1
+ movhi r0, #0x0
+ bx lr
+_020EAC6C:
+ mov r0, #0x0
+ mrs r12, cpsr
+ bic r12, r12, #0x40000000
+ orr r12, r12, #0x20000000
+ msr cpsr_f, r12
+ bx lr
+_020EAC84:
+ orr r12, r0, r12, lsl #0x1
+ orrs r12, r12, r2
+ moveq r0, #0x1
+ bne _020EACA8
+ mrs r12, cpsr
+ bic r12, r12, #0x20000000
+ orr r12, r12, #0x40000000
+ msr cpsr_f, r12
+ bxeq lr
+_020EACA8:
+ cmp r3, r1
+ cmpeq r2, r0
+ movls r0, #0x1
+ movhi r0, #0x0
+ bx lr
+_020EACBC:
+ bne _020EAC6C
+ cmp r0, #0x0
+ bhi _020EAC6C
+ cmn r12, r3, lsl #0x1
+ blo _020EAC50
+_020EACD0:
+ bne _020EAC6C
+ cmp r2, #0x0
+ bhi _020EAC6C
+ b _020EAC50
+
+ arm_func_start _dls
+_dls: ; 0x020EACE0
+ mov r12, #0x200000
+ cmn r12, r1, lsl #0x1
+ bhs _020EAD58
+ cmn r12, r3, lsl #0x1
+ bhs _020EAD6C
+_020EACF4:
+ orrs r12, r3, r1
+ bmi _020EAD24
+ cmp r1, r3
+ cmpeq r0, r2
+ movcc r0, #0x1
+ movcs r0, #0x0
+ bx lr
+_020EAD10:
+ mov r0, #0x0
+ mrs r12, cpsr
+ orr r12, r12, #0x20000000
+ msr cpsr_f, r12
+ bx lr
+_020EAD24:
+ orr r12, r0, r12, lsl #0x1
+ orrs r12, r12, r2
+ moveq r0, #0x0
+ bne _020EAD44
+ mrs r12, cpsr
+ orr r12, r12, #0x20000000
+ msr cpsr_f, r12
+ bxeq lr
+_020EAD44:
+ cmp r3, r1
+ cmpeq r2, r0
+ movcc r0, #0x1
+ movcs r0, #0x0
+ bx lr
+_020EAD58:
+ bne _020EAD10
+ cmp r0, #0x0
+ bhi _020EAD10
+ cmn r12, r3, lsl #0x1
+ blo _020EACF4
+_020EAD6C:
+ bne _020EAD10
+ cmp r2, #0x0
+ bhi _020EAD10
+ b _020EACF4
+
+ arm_func_start _deq
+_deq: ; 0x020EAD7C
+ mov r12, #0x200000
+ cmn r12, r1, lsl #0x1
+ bhs _020EADE4
+ cmn r12, r3, lsl #0x1
+ bhs _020EADF8
+_020EAD90:
+ orrs r12, r3, r1
+ bmi _020EADC0
+ cmp r1, r3
+ cmpeq r0, r2
+ moveq r0, #0x1
+ movne r0, #0x0
+ bx lr
+_020EADAC:
+ mov r0, #0x0
+ mrs r12, cpsr
+ bic r12, r12, #0x40000000
+ msr cpsr_f, r12
+ bx lr
+_020EADC0:
+ orr r12, r0, r12, lsl #0x1
+ orrs r12, r12, r2
+ moveq r0, #0x1
+ bxeq lr
+ cmp r3, r1
+ cmpeq r2, r0
+ moveq r0, #0x1
+ movne r0, #0x0
+ bx lr
+_020EADE4:
+ bne _020EADAC
+ cmp r0, #0x0
+ bhi _020EADAC
+ cmn r12, r3, lsl #0x1
+ blo _020EAD90
+_020EADF8:
+ bne _020EADAC
+ cmp r2, #0x0
+ bhi _020EADAC
+ b _020EAD90
+
+ arm_func_start _dneq
+_dneq: ; 0x020EAE08
+ mov r12, #0x200000
+ cmn r12, r1, lsl #0x1
+ bhs _020EAE70
+ cmn r12, r3, lsl #0x1
+ bhs _020EAE84
+_020EAE1C:
+ orrs r12, r3, r1
+ bmi _020EAE4C
+ cmp r1, r3
+ cmpeq r0, r2
+ movne r0, #0x1
+ moveq r0, #0x0
+ bx lr
+_020EAE38:
+ mov r0, #0x1
+ mrs r12, cpsr
+ bic r12, r12, #0x40000000
+ msr cpsr_f, r12
+ bx lr
+_020EAE4C:
+ orr r12, r0, r12, lsl #0x1
+ orrs r12, r12, r2
+ moveq r0, #0x0
+ bxeq lr
+ cmp r3, r1
+ cmpeq r2, r0
+ movne r0, #0x1
+ moveq r0, #0x0
+ bx lr
+_020EAE70:
+ bne _020EAE38
+ cmp r0, #0x0
+ bhi _020EAE38
+ cmn r12, r3, lsl #0x1
+ blo _020EAE1C
+_020EAE84:
+ bne _020EAE38
+ cmp r2, #0x0
+ bhi _020EAE38
+ b _020EAE1C
+
+ arm_func_start _fgeq
+_fgeq: ; 0x020EAE94
+ mov r3, #0xff000000
+ cmp r3, r0, lsl #0x1
+ cmpcs r3, r1, lsl #0x1
+ blo _020EAEDC
+ cmp r0, #0x0
+ bicmi r0, r0, #0x80000000
+ rsbmi r0, r0, #0x0
+ cmp r1, #0x0
+ bicmi r1, r1, #0x80000000
+ rsbmi r1, r1, #0x0
+ cmp r0, r1
+ movge r0, #0x1
+ movlt r0, #0x0
+ mrs r12, cpsr
+ biclt r12, r12, #0x20000000
+ orrge r12, r12, #0x20000000
+ msr cpsr_f, r12
+ bx lr
+_020EAEDC:
+ mov r0, #0x0
+ mrs r12, cpsr
+ bic r12, r12, #0x20000000
+ msr cpsr_f, r12
+ bx lr
+
+ arm_func_start _fgr
+_fgr: ; 0x020EAEF0
+ mov r3, #0xff000000
+ cmp r3, r0, lsl #0x1
+ cmpcs r3, r1, lsl #0x1
+ blo _020EAF38
+ cmp r0, #0x0
+ bicmi r0, r0, #0x80000000
+ rsbmi r0, r0, #0x0
+ cmp r1, #0x0
+ bicmi r1, r1, #0x80000000
+ rsbmi r1, r1, #0x0
+ cmp r0, r1
+ movgt r0, #0x1
+ movle r0, #0x0
+ mrs r12, cpsr
+ bicle r12, r12, #0x20000000
+ orrgt r12, r12, #0x20000000
+ msr cpsr_f, r12
+ bx lr
+_020EAF38:
+ mov r0, #0x0
+ mrs r12, cpsr
+ bic r12, r12, #0x20000000
+ msr cpsr_f, r12
+ bx lr
+
+ arm_func_start _fleq
+_fleq: ; 0x020EAF4C
+ mov r3, #0xff000000
+ cmp r3, r0, lsl #0x1
+ cmpcs r3, r1, lsl #0x1
+ blo _020EAF9C
+ cmp r0, #0x0
+ bicmi r0, r0, #0x80000000
+ rsbmi r0, r0, #0x0
+ cmp r1, #0x0
+ bicmi r1, r1, #0x80000000
+ rsbmi r1, r1, #0x0
+ cmp r0, r1
+ movle r0, #0x1
+ movgt r0, #0x0
+ mrs r12, cpsr
+ orrgt r12, r12, #0x20000000
+ bicgt r12, r12, #0x40000000
+ bicle r12, r12, #0x20000000
+ orrle r12, r12, #0x40000000
+ msr cpsr_f, r12
+ bx lr
+_020EAF9C:
+ mov r0, #0x0
+ mrs r12, cpsr
+ bic r12, r12, #0x40000000
+ orr r12, r12, #0x20000000
+ msr cpsr_f, r12
+ bx lr
+
+ arm_func_start _fls
+_fls: ; 0x020EAFB4
+ mov r3, #0xff000000
+ cmp r3, r0, lsl #0x1
+ cmpcs r3, r1, lsl #0x1
+ blo _020EAFFC
+ cmp r0, #0x0
+ bicmi r0, r0, #0x80000000
+ rsbmi r0, r0, #0x0
+ cmp r1, #0x0
+ bicmi r1, r1, #0x80000000
+ rsbmi r1, r1, #0x0
+ cmp r0, r1
+ movlt r0, #0x1
+ movge r0, #0x0
+ mrs r12, cpsr
+ orrge r12, r12, #0x20000000
+ biclt r12, r12, #0x20000000
+ msr cpsr_f, r12
+ bx lr
+_020EAFFC:
+ mov r0, #0x0
+ mrs r12, cpsr
+ orr r12, r12, #0x20000000
+ msr cpsr_f, r12
+ bx lr
+
+ arm_func_start _feq
+_feq: ; 0x020EB010
+ mov r3, #0xff000000
+ cmp r3, r0, lsl #0x1
+ blo _020EB064
+ cmp r3, r1, lsl #0x1
+ blo _020EB064
+ orr r3, r0, r1
+ movs r3, r3, lsl #0x1
+ moveq r0, #0x0
+ bne _020EB044
+ mrs r12, cpsr
+ orr r12, r12, #0x40000000
+ msr cpsr_f, r12
+ bx lr
+_020EB044:
+ cmp r0, r1
+ movne r0, #0x1
+ moveq r0, #0x0
+ mrs r12, cpsr
+ bicne r12, r12, #0x40000000
+ orreq r12, r12, #0x40000000
+ msr cpsr_f, r12
+ bx lr
+_020EB064:
+ mov r0, #0x1
+ mrs r12, cpsr
+ bic r12, r12, #0x40000000
+ msr cpsr_f, r12
+ bx lr
+
+ arm_func_start _frdiv
+_frdiv: ; 0x020EB078
+ eor r0, r0, r1
+ eor r1, r0, r1
+ eor r0, r0, r1
+
+ arm_func_start _fdiv
+_fdiv: ; 0x020EB084
+ stmdb sp!, {lr}
+ mov r12, #0xff
+ ands r3, r12, r0, lsr #0x17
+ cmpne r3, #0xff
+ beq _020EB258
+ ands r12, r12, r1, lsr #0x17
+ cmpne r12, #0xff
+ beq _020EB294
+ orr r1, r1, #0x800000
+ orr r0, r0, #0x800000
+ bic r2, r0, #0xff000000
+ bic lr, r1, #0xff000000
+_020EB0B4:
+ cmp r2, lr
+ movcc r2, r2, lsl #0x1
+ subcc r3, r3, #0x1
+ teq r0, r1
+ sub r0, pc, #0x94
+ ldrb r1, [r0, lr, lsr #0xf]
+ rsb lr, lr, #0x0
+ mov r0, lr, asr #0x1
+ mul r0, r1, r0
+ add r0, r0, #0x80000000
+ mov r0, r0, lsr #0x6
+ mul r0, r1, r0
+ mov r0, r0, lsr #0xe
+ mul r1, lr, r0
+ sub r12, r3, r12
+ mov r1, r1, lsr #0xc
+ mul r1, r0, r1
+ mov r0, r0, lsl #0xe
+ add r0, r0, r1, lsr #0xf
+ umull r1, r0, r2, r0
+ mov r3, r0
+ orrmi r0, r0, #0x80000000
+ adds r12, r12, #0x7e
+ bmi _020EB35C
+ cmp r12, #0xfe
+ bge _020EB410
+ add r0, r0, r12, lsl #0x17
+ mov r12, r1, lsr #0x1c
+ cmp r12, #0x7
+ beq _020EB238
+ add r0, r0, r1, lsr #0x1f
+ ldmia sp!, {lr}
+ bx lr
+_020EB138: ; not code
+ .byte 0xFF, 0xFF, 0xFE, 0xFD, 0xFC, 0xFB, 0xFA, 0xF9
+ .byte 0xF8, 0xF7, 0xF6, 0xF5, 0xF4, 0xF3, 0xF2, 0xF1, 0xF0, 0xF0, 0xEF, 0xEE, 0xED, 0xEC, 0xEB, 0xEA
+ .byte 0xEA, 0xE9, 0xE8, 0xE7, 0xE6, 0xE6, 0xE5, 0xE4, 0xE3, 0xE2, 0xE2, 0xE1, 0xE0, 0xDF, 0xDF, 0xDE
+ .byte 0xDD, 0xDC, 0xDC, 0xDB, 0xDA, 0xD9, 0xD9, 0xD8, 0xD7, 0xD7, 0xD6, 0xD5, 0xD4, 0xD4, 0xD3, 0xD2
+ .byte 0xD2, 0xD1, 0xD0, 0xD0, 0xCF, 0xCE, 0xCE, 0xCD, 0xCC, 0xCC, 0xCB, 0xCB, 0xCA, 0xC9, 0xC9, 0xC8
+ .byte 0xC8, 0xC7, 0xC6, 0xC6, 0xC5, 0xC5, 0xC4, 0xC3, 0xC3, 0xC2, 0xC2, 0xC1, 0xC0, 0xC0, 0xBF, 0xBF
+ .byte 0xBE, 0xBE, 0xBD, 0xBD, 0xBC, 0xBC, 0xBB, 0xBA, 0xBA, 0xB9, 0xB9, 0xB8, 0xB8, 0xB7, 0xB7, 0xB6
+ .byte 0xB6, 0xB5, 0xB5, 0xB4, 0xB4, 0xB3, 0xB3, 0xB2, 0xB2, 0xB1, 0xB1, 0xB0, 0xB0, 0xAF, 0xAF, 0xAF
+ .byte 0xAE, 0xAE, 0xAD, 0xAD, 0xAC, 0xAC, 0xAB, 0xAB, 0xAA, 0xAA, 0xAA, 0xA9, 0xA9, 0xA8, 0xA8, 0xA7
+ .byte 0xA7, 0xA7, 0xA6, 0xA6, 0xA5, 0xA5, 0xA4, 0xA4, 0xA4, 0xA3, 0xA3, 0xA2, 0xA2, 0xA2, 0xA1, 0xA1
+ .byte 0xA0, 0xA0, 0xA0, 0x9F, 0x9F, 0x9E, 0x9E, 0x9E, 0x9D, 0x9D, 0x9D, 0x9C, 0x9C, 0x9B, 0x9B, 0x9B
+ .byte 0x9A, 0x9A, 0x9A, 0x99, 0x99, 0x99, 0x98, 0x98, 0x98, 0x97, 0x97, 0x96, 0x96, 0x96, 0x95, 0x95
+ .byte 0x95, 0x94, 0x94, 0x94, 0x93, 0x93, 0x93, 0x92, 0x92, 0x92, 0x91, 0x91, 0x91, 0x91, 0x90, 0x90
+ .byte 0x90, 0x8F, 0x8F, 0x8F, 0x8E, 0x8E, 0x8E, 0x8D, 0x8D, 0x8D, 0x8C, 0x8C, 0x8C, 0x8C, 0x8B, 0x8B
+ .byte 0x8B, 0x8A, 0x8A, 0x8A, 0x8A, 0x89, 0x89, 0x89, 0x88, 0x88, 0x88, 0x88, 0x87, 0x87, 0x87, 0x86
+ .byte 0x86, 0x86, 0x86, 0x85, 0x85, 0x85, 0x85, 0x84, 0x84, 0x84, 0x83, 0x83, 0x83, 0x83, 0x82, 0x82
+ .byte 0x82, 0x82, 0x81, 0x81, 0x81, 0x81, 0x80, 0x80
+_020EB238:
+ mov r1, r3, lsl #0x1
+ add r1, r1, #0x1
+ rsb lr, lr, #0x0
+ mul r1, lr, r1
+ cmp r1, r2, lsl #0x18
+ addmi r0, r0, #0x1
+ ldmia sp!, {lr}
+ bx lr
+_020EB258:
+ eor lr, r0, r1
+ and lr, lr, #0x80000000
+ cmp r3, #0x0
+ beq _020EB2B0
+ movs r0, r0, lsl #0x9
+ bne _020EB3F8
+ mov r12, r1, lsr #0x17
+ mov r1, r1, lsl #0x9
+ ands r12, r12, #0xff
+ beq _020EB3E8
+ cmp r12, #0xff
+ blt _020EB3E8
+ cmp r1, #0x0
+ beq _020EB404
+ b _020EB3E0
+_020EB294:
+ eor lr, r0, r1
+ and lr, lr, #0x80000000
+ cmp r12, #0x0
+ beq _020EB314
+_020EB2A4:
+ movs r1, r1, lsl #0x9
+ bne _020EB3E0
+ b _020EB430
+_020EB2B0:
+ movs r2, r0, lsl #0x9
+ beq _020EB2E4
+ clz r3, r2
+ movs r2, r2, lsl r3
+ rsb r3, r3, #0x0
+ mov r2, r2, lsr #0x8
+ ands r12, r12, r1, lsr #0x17
+ beq _020EB33C
+ cmp r12, #0xff
+ beq _020EB2A4
+ orr r1, r1, #0x800000
+ bic lr, r1, #0xff000000
+ b _020EB0B4
+_020EB2E4:
+ mov r12, r1, lsr #0x17
+ mov r1, r1, lsl #0x9
+ ands r12, r12, #0xff
+ beq _020EB308
+ cmp r12, #0xff
+ blt _020EB430
+ cmp r1, #0x0
+ beq _020EB430
+ b _020EB3E0
+_020EB308:
+ cmp r1, #0x0
+ beq _020EB404
+ b _020EB430
+_020EB314:
+ movs r12, r1, lsl #0x9
+ beq _020EB3E8
+ mov lr, r12
+ clz r12, lr
+ movs lr, lr, lsl r12
+ rsb r12, r12, #0x0
+ mov lr, lr, lsr #0x8
+ orr r0, r0, #0x800000
+ bic r2, r0, #0xff000000
+ b _020EB0B4
+_020EB33C:
+ movs r12, r1, lsl #0x9
+ beq _020EB3E8
+ mov lr, r12
+ clz r12, lr
+ movs lr, lr, lsl r12
+ rsb r12, r12, #0x0
+ mov lr, lr, lsr #0x8
+ b _020EB0B4
+_020EB35C:
+ and r0, r0, #0x80000000
+ cmn r12, #0x18
+ beq _020EB3D0
+ bmi _020EB428
+ add r1, r12, #0x17
+ mov r2, r2, lsl r1
+ rsb r12, r12, #0x0
+ mov r3, r3, lsr r12
+ orr r0, r0, r3
+ rsb lr, lr, #0x0
+ mul r1, lr, r3
+ cmp r1, r2
+ ldmeqia sp!, {lr}
+ bxeq lr
+ add r1, r1, lr
+ cmp r1, r2
+ beq _020EB3C4
+ addmi r0, r0, #0x1
+ subpl r1, r1, lr
+ add r1, lr, r1, lsl #0x1
+ cmp r1, r2, lsl #0x1
+ and r3, r0, #0x1
+ addmi r0, r0, #0x1
+ addeq r0, r0, r3
+ ldmia sp!, {lr}
+ bx lr
+_020EB3C4:
+ add r0, r0, #0x1
+ ldmia sp!, {lr}
+ bx lr
+_020EB3D0:
+ cmn r2, lr
+ addne r0, r0, #0x1
+ ldmia sp!, {lr}
+ bx lr
+_020EB3E0:
+ mov r0, r1
+ b _020EB3F8
+_020EB3E8:
+ mov r0, #0xff000000
+ orr r0, lr, r0, lsr #0x1
+ ldmia sp!, {lr}
+ bx lr
+_020EB3F8:
+ mvn r0, #0x80000000
+ ldmia sp!, {lr}
+ bx lr
+_020EB404:
+ mvn r0, #0x80000000
+ ldmia sp!, {lr}
+ bx lr
+_020EB410:
+ tst r0, #0x80000000
+ mov r0, #0xff000000
+ movne r0, r0, asr #0x1
+ moveq r0, r0, lsr #0x1
+ ldmia sp!, {lr}
+ bx lr
+_020EB428:
+ ldmia sp!, {lr}
+ bx lr
+_020EB430:
+ mov r0, lr
+ ldmia sp!, {lr}
+ bx lr
+
+ arm_func_start _f2d
+_f2d:
+ and r2, r0, #0x80000000
+ mov r12, r0, lsr #0x17
+ mov r3, r0, lsl #0x9
+ ands r12, r12, #0xff
+ beq _020EB46C
+ cmp r12, #0xff
+ beq _020EB498
+_020EB458:
+ add r12, r12, #0x380
+ mov r0, r3, lsl #0x14
+ orr r1, r2, r3, lsr #0xc
+ orr r1, r1, r12, lsl #0x14
+ bx lr
+_020EB46C:
+ cmp r3, #0x0
+ bne _020EB480
+ mov r1, r2
+ mov r0, #0x0
+ bx lr
+_020EB480:
+ mov r3, r3, lsr #0x1
+ clz r12, r3
+ movs r3, r3, lsl r12
+ rsb r12, r12, #0x1
+ add r3, r3, r3
+ b _020EB458
+_020EB498:
+ cmp r3, #0x0
+ bhi _020EB4B0
+ ldr r1, _020EB4BC ; =0x7FF00000
+ orr r1, r1, r2
+ mov r0, #0x0
+ bx lr
+_020EB4B0:
+ mvn r0, #0x0
+ bic r1, r0, #0x80000000
+ bx lr
+ .balign 4
+_020EB4BC: .word 0x7FF00000
+
+ arm_func_start _ffix
+_ffix: ; 0x020EB4C0
+ bic r1, r0, #0x80000000
+ mov r2, #0x9e
+ subs r2, r2, r1, lsr #0x17
+ ble _020EB4E8
+ mov r1, r1, lsl #0x8
+ orr r1, r1, #0x80000000
+ cmp r0, #0x0
+ mov r0, r1, lsr r2
+ rsbmi r0, r0, #0x0
+ bx lr
+_020EB4E8:
+ mvn r0, r0, asr #0x1f
+ add r0, r0, #0x80000000
+ bx lr
+
+ arm_func_start _ffixu
+_ffixu: ; 0x020EB4F4
+ tst r0, #0x80000000
+ bne _020EB518
+ mov r1, #0x9e
+ subs r1, r1, r0, lsr #0x17
+ blt _020EB52C
+ mov r2, r0, lsl #0x8
+ orr r0, r2, #0x80000000
+ mov r0, r0, lsr r1
+ bx lr
+_020EB518:
+ mov r2, #0xff000000
+ cmp r2, r0, lsl #0x1
+ movcs r0, #0x0
+ mvncc r0, #0x0
+ bx lr
+_020EB52C:
+ mvn r0, #0x0
+ bx lr
+
+ arm_func_start _fflt
+_fflt: ; 0x020EB534
+ ands r2, r0, #0x80000000
+ rsbmi r0, r0, #0x0
+ cmp r0, #0x0
+ bxeq lr
+ clz r3, r0
+ movs r0, r0, lsl r3
+ rsb r3, r3, #0x9e
+ ands r1, r0, #0xff
+ add r0, r0, r0
+ orr r0, r2, r0, lsr #0x9
+ orr r0, r0, r3, lsl #0x17
+ bxeq lr
+ tst r1, #0x80
+ bxeq lr
+ ands r3, r1, #0x7f
+ andeqs r3, r0, #0x1
+ addne r0, r0, #0x1
+ bx lr
+
+ arm_func_start _ffltu
+_ffltu: ; 0x020EB57C
+ cmp r0, #0x0
+ bxeq lr
+ mov r3, #0x9e
+ bmi _020EB598
+ clz r12, r0
+ movs r0, r0, lsl r12
+ sub r3, r3, r12
+_020EB598:
+ ands r2, r0, #0xff
+ add r0, r0, r0
+ mov r0, r0, lsr #0x9
+ orr r0, r0, r3, lsl #0x17
+ bxeq lr
+ tst r2, #0x80
+ bxeq lr
+ ands r1, r2, #0x7f
+ andeqs r1, r0, #0x1
+ addne r0, r0, #0x1
+ bx lr
+
+ arm_func_start _fmul
+_fmul: ; 0x020EB5C4
+ eor r2, r0, r1
+ and r2, r2, #0x80000000
+ mov r12, #0xff
+ ands r3, r12, r0, lsr #0x17
+ mov r0, r0, lsl #0x8
+ cmpne r3, #0xff
+ beq _020EB640
+ orr r0, r0, #0x80000000
+ ands r12, r12, r1, lsr #0x17
+ mov r1, r1, lsl #0x8
+ cmpne r12, #0xff
+ beq _020EB680
+ orr r1, r1, #0x80000000
+_020EB5F8:
+ add r12, r3, r12
+ umull r1, r3, r0, r1
+ movs r0, r3
+ addpl r0, r0, r0
+ subpl r12, r12, #0x1
+ subs r12, r12, #0x7f
+ bmi _020EB70C
+ cmp r12, #0xfe
+ bge _020EB778
+ ands r3, r0, #0xff
+ orr r0, r2, r0, lsr #0x8
+ add r0, r0, r12, lsl #0x17
+ tst r3, #0x80
+ bxeq lr
+ orrs r1, r1, r3, lsl #0x19
+ andeqs r3, r0, #0x1
+ addne r0, r0, #0x1
+ bx lr
+_020EB640:
+ cmp r3, #0x0
+ beq _020EB694
+ movs r0, r0, lsl #0x1
+ bne _020EB768
+ mov r12, r1, lsr #0x17
+ mov r1, r1, lsl #0x9
+ ands r12, r12, #0xff
+ beq _020EB674
+ cmp r12, #0xff
+ blt _020EB75C
+ cmp r1, #0x0
+ beq _020EB75C
+ b _020EB768
+_020EB674:
+ cmp r1, #0x0
+ beq _020EB770
+ b _020EB75C
+_020EB680:
+ cmp r12, #0x0
+ beq _020EB6F0
+_020EB688:
+ movs r1, r1, lsl #0x1
+ bne _020EB768
+ b _020EB75C
+_020EB694:
+ movs r0, r0, lsl #0x1
+ beq _020EB6CC
+ mov r0, r0, lsr #0x1
+ clz r3, r0
+ movs r0, r0, lsl r3
+ rsb r3, r3, #0x1
+ mov r12, r1, lsr #0x17
+ mov r1, r1, lsl #0x8
+ ands r12, r12, #0xff
+ beq _020EB6F0
+ cmp r12, #0xff
+ beq _020EB688
+ orr r1, r1, #0x80000000
+ b _020EB5F8
+_020EB6CC:
+ mov r12, r1, lsr #0x17
+ mov r1, r1, lsl #0x9
+ ands r12, r12, #0xff
+ beq _020EB79C
+ cmp r12, #0xff
+ blt _020EB79C
+ cmp r1, #0x0
+ beq _020EB770
+ b _020EB768
+_020EB6F0:
+ movs r1, r1, lsl #0x1
+ beq _020EB79C
+ mov r1, r1, lsr #0x1
+ clz r12, r1
+ movs r1, r1, lsl r12
+ rsb r12, r12, #0x1
+ b _020EB5F8
+_020EB70C:
+ cmn r12, #0x18
+ beq _020EB754
+ bmi _020EB794
+ cmp r1, #0x0
+ orrne r0, r0, #0x1
+ mov r3, r0
+ mov r0, r0, lsr #0x8
+ rsb r12, r12, #0x0
+ orr r0, r2, r0, lsr r12
+ rsb r12, r12, #0x18
+ movs r1, r3, lsl r12
+ bxeq lr
+ tst r1, #0x80000000
+ bxeq lr
+ movs r1, r1, lsl #0x1
+ andeqs r1, r0, #0x1
+ addne r0, r0, #0x1
+ bx lr
+_020EB754:
+ mov r0, r0, lsl #0x1
+ b _020EB784
+_020EB75C:
+ mov r0, #0xff000000
+ orr r0, r2, r0, lsr #0x1
+ bx lr
+_020EB768:
+ mvn r0, #0x80000000
+ bx lr
+_020EB770:
+ mvn r0, #0x80000000
+ bx lr
+_020EB778:
+ mov r0, #0xff000000
+ orr r0, r2, r0, lsr #0x1
+ bx lr
+_020EB784:
+ movs r1, r0
+ mov r0, r2
+ addne r0, r0, #0x1
+ bx lr
+_020EB794:
+ mov r0, r2
+ bx lr
+_020EB79C:
+ mov r0, r2
+ bx lr
+
+ arm_func_start _frsb
+_frsb: ; 0x020EB7A4
+ eor r0, r0, r1
+ eor r1, r0, r1
+ eor r0, r0, r1
+
+ arm_func_start _fsub
+_fsub: ; 0x020EB7B0
+ eors r2, r0, r1
+ eormi r1, r1, #0x80000000
+ bmi _020EA98C
+_020EB7BC:
+ subs r12, r0, r1
+ eorcc r12, r12, #0x80000000
+ subcc r0, r0, r12
+ addcc r1, r1, r12
+ mov r2, #0x80000000
+ mov r3, r0, lsr #0x17
+ orr r0, r2, r0, lsl #0x8
+ ands r12, r3, #0xff
+ cmpne r12, #0xff
+ beq _020EB8D8
+ mov r12, r1, lsr #0x17
+ orr r1, r2, r1, lsl #0x8
+ ands r2, r12, #0xff
+ beq _020EB918
+_020EB7F4:
+ subs r12, r3, r12
+ beq _020EB83C
+ rsb r2, r12, #0x20
+ movs r2, r1, lsl r2
+ mov r1, r1, lsr r12
+ orrne r1, r1, #0x1
+ subs r0, r0, r1
+ bpl _020EB880
+ ands r1, r0, #0xff
+ add r0, r0, r0
+ mov r0, r0, lsr #0x9
+ orr r0, r0, r3, lsl #0x17
+ tst r1, #0x80
+ bxeq lr
+ ands r1, r1, #0x7f
+ andeqs r1, r0, #0x1
+ addne r0, r0, #0x1
+ bx lr
+_020EB83C:
+ subs r0, r0, r1
+ beq _020EB9E4
+ mov r2, r3, lsl #0x17
+ and r2, r2, #0x80000000
+ bic r3, r3, #0x100
+ clz r12, r0
+ movs r0, r0, lsl r12
+ sub r3, r3, r12
+ cmp r3, #0x0
+ bgt _020EB870
+ rsb r3, r3, #0x9
+ orr r0, r2, r0, lsr r3
+ bx lr
+_020EB870:
+ add r0, r0, r0
+ orr r0, r2, r0, lsr #0x9
+ orr r0, r0, r3, lsl #0x17
+ bx lr
+_020EB880:
+ mov r2, r3, lsl #0x17
+ and r2, r2, #0x80000000
+ bic r3, r3, #0x100
+ clz r12, r0
+ movs r0, r0, lsl r12
+ sub r3, r3, r12
+ cmp r3, #0x0
+ bgt _020EB8AC
+ rsb r3, r3, #0x9
+ orr r0, r2, r0, lsr r3
+ bx lr
+_020EB8AC:
+ ands r1, r0, #0xff
+ add r0, r0, r0
+ orr r0, r2, r0, lsr #0x9
+ orr r0, r0, r3, lsl #0x17
+ bxeq lr
+ tst r1, #0x80
+ bxeq lr
+ ands r1, r1, #0x7f
+ andeqs r1, r0, #0x1
+ addne r0, r0, #0x1
+ bx lr
+_020EB8D8:
+ cmp r3, #0x100
+ movge r2, #0x80000000
+ movlt r2, #0x0
+ ands r3, r3, #0xff
+ beq _020EB940
+ movs r0, r0, lsl #0x1
+ bne _020EBA18
+ mov r12, r1, lsr #0x17
+ mov r1, r1, lsl #0x9
+ ands r12, r12, #0xff
+ beq _020EBA0C
+ cmp r12, #0xff
+ blt _020EBA0C
+ cmp r1, #0x0
+ beq _020EBA20
+ b _020EBA18
+_020EB918:
+ cmp r12, #0x100
+ movge r2, #0x80000000
+ movlt r2, #0x0
+ and r3, r3, #0xff
+ ands r12, r12, #0xff
+ beq _020EB9A8
+_020EB930:
+ eor r2, r2, #0x80000000
+ movs r1, r1, lsl #0x1
+ bne _020EBA18
+ b _020EBA0C
+_020EB940:
+ movs r0, r0, lsl #0x1
+ beq _020EB978
+ mov r0, r0, lsr #0x1
+ mov r3, #0x1
+ mov r12, r1, lsr #0x17
+ mov r1, r1, lsl #0x8
+ ands r12, r12, #0xff
+ beq _020EB9A8
+ cmp r12, #0xff
+ beq _020EB930
+ orr r1, r1, #0x80000000
+ orr r3, r3, r2, lsr #0x17
+ orr r12, r12, r2, lsr #0x17
+ b _020EB7F4
+_020EB978:
+ mov r3, r1, lsr #0x17
+ mov r0, r1, lsl #0x9
+ ands r2, r3, #0xff
+ beq _020EB99C
+ cmp r2, #0xff
+ blt _020EB9C4
+ cmp r0, #0x0
+ bne _020EBA04
+ b _020EBA0C
+_020EB99C:
+ cmp r0, #0x0
+ beq _020EB9E4
+ b _020EB9C4
+_020EB9A8:
+ movs r1, r1, lsl #0x1
+ beq _020EB9CC
+ mov r1, r1, lsr #0x1
+ mov r12, #0x1
+ orr r12, r12, r2, lsr #0x17
+ orr r3, r3, r2, lsr #0x17
+ b _020EB7F4
+_020EB9C4:
+ mov r0, r1
+ bx lr
+_020EB9CC:
+ cmp r0, #0x0
+ subges r3, r3, #0x1
+ add r0, r0, r0
+ orr r0, r2, r0, lsr #0x9
+ orr r0, r0, r3, lsl #0x17
+ bx lr
+_020EB9E4:
+ mov r0, #0x0
+ bx lr
+_020EB9EC: ; 0x020EB9EC
+ cmp r0, #0x0
+ subges r3, r3, #0x1
+ add r0, r0, r0
+ mov r0, r0, lsr #0x9
+ orr r0, r0, r3, lsl #0x17
+ bx lr
+_020EBA04:
+ mvn r0, #0x80000000
+ bx lr
+_020EBA0C:
+ mov r0, #0xff000000
+ orr r0, r2, r0, lsr #0x1
+ bx lr
+_020EBA18:
+ mvn r0, #0x80000000
+ bx lr
+_020EBA20:
+ mvn r0, #0x80000000
+ bx lr
+
+ arm_func_start _ll_mod
+_ll_mod: ; 0x020EBA28
+ stmdb sp!, {r4-r7,r11-r12,lr}
+ mov r4, r1
+ orr r4, r4, #0x1
+ b _020EBA48
+
+ arm_func_start _ll_sdiv
+_ll_sdiv: ; 0x020EBA38
+ stmdb sp!, {r4-r7,r11-r12,lr}
+ eor r4, r1, r3
+ mov r4, r4, asr #0x1
+ mov r4, r4, lsl #0x1
+_020EBA48:
+ orrs r5, r3, r2
+ bne _020EBA58
+ ldmia sp!, {r4-r7,r11-r12,lr}
+ bx lr
+_020EBA58:
+ mov r5, r0, lsr #0x1f
+ add r5, r5, r1
+ mov r6, r2, lsr #0x1f
+ add r6, r6, r3
+ orrs r6, r5, r6
+ bne _020EBA8C
+ mov r1, r2
+ bl _s32_div_f
+ ands r4, r4, #0x1
+ movne r0, r1
+ mov r1, r0, asr #0x1f
+ ldmia sp!, {r4-r7,r11-r12,lr}
+ bx lr
+_020EBA8C:
+ cmp r1, #0x0
+ bge _020EBA9C
+ rsbs r0, r0, #0x0
+ rsc r1, r1, #0x0
+_020EBA9C:
+ cmp r3, #0x0
+ bge _020EBAAC
+ rsbs r2, r2, #0x0
+ rsc r3, r3, #0x0
+_020EBAAC:
+ orrs r5, r1, r0
+ beq _020EBBD0
+ mov r5, #0x0
+ mov r6, #0x1
+ cmp r3, #0x0
+ bmi _020EBAD8
+_020EBAC4:
+ add r5, r5, #0x1
+ adds r2, r2, r2
+ adcs r3, r3, r3
+ bpl _020EBAC4
+ add r6, r6, r5
+_020EBAD8:
+ cmp r1, #0x0
+ blt _020EBAF8
+_020EBAE0:
+ cmp r6, #0x1
+ beq _020EBAF8
+ sub r6, r6, #0x1
+ adds r0, r0, r0
+ adcs r1, r1, r1
+ bpl _020EBAE0
+_020EBAF8:
+ mov r7, #0x0
+ mov r12, #0x0
+ mov r11, #0x0
+ b _020EBB20
+_020EBB08:
+ orr r12, r12, #0x1
+ subs r6, r6, #0x1
+ beq _020EBB78
+ adds r0, r0, r0
+ adcs r1, r1, r1
+ adcs r7, r7, r7
+_020EBB20:
+ subs r0, r0, r2
+ sbcs r1, r1, r3
+ sbcs r7, r7, #0x0
+ adds r12, r12, r12
+ adc r11, r11, r11
+ cmp r7, #0x0
+ bge _020EBB08
+_020EBB3C:
+ subs r6, r6, #0x1
+ beq _020EBB70
+ adds r0, r0, r0
+ adcs r1, r1, r1
+ adc r7, r7, r7
+ adds r0, r0, r2
+ adcs r1, r1, r3
+ adc r7, r7, #0x0
+ adds r12, r12, r12
+ adc r11, r11, r11
+ cmp r7, #0x0
+ bge _020EBB08
+ b _020EBB3C
+_020EBB70:
+ adds r0, r0, r2
+ adc r1, r1, r3
+_020EBB78:
+ ands r7, r4, #0x1
+ moveq r0, r12
+ moveq r1, r11
+ beq _020EBBB0
+ subs r7, r5, #0x20
+ movge r0, r1, lsr r7
+ bge _020EBBD4
+ rsb r7, r5, #0x20
+ mov r0, r0, lsr r5
+ orr r0, r0, r1, lsl r7
+ mov r1, r1, lsr r5
+ b _020EBBB0
+_020EBBA8: ; 0x020EBBA8
+ mov r0, r1, lsr r7
+ mov r1, #0x0
+_020EBBB0:
+ cmp r4, #0x0
+ blt _020EBBC0
+ ldmia sp!, {r4-r7,r11-r12,lr}
+ bx lr
+_020EBBC0:
+ rsbs r0, r0, #0x0
+ rsc r1, r1, #0x0
+ ldmia sp!, {r4-r7,r11-r12,lr}
+ bx lr
+_020EBBD0:
+ mov r0, #0x0
+_020EBBD4:
+ mov r1, #0x0
+ cmp r4, #0x0
+ blt _020EBBC0
+ ldmia sp!, {r4-r7,r11-r12,lr}
+ bx lr
+
+ arm_func_start _ll_udiv
+_ll_udiv: ; 0x020EBBE8
+ stmdb sp!, {r4-r7,r11-r12,lr}
+ mov r4, #0x0
+ b _020EBBFC
+
+ arm_func_start _ull_mod
+_ull_mod: ; 0x020EBBF4
+ stmdb sp!, {r4-r7,r11-r12,lr}
+ mov r4, #0x1
+_020EBBFC:
+ orrs r5, r3, r2
+ bne _020EBC0C
+ ldmia sp!, {r4-r7,r11-r12,lr}
+ bx lr
+_020EBC0C:
+ orrs r5, r1, r3
+ bne _020EBAAC
+ mov r1, r2
+ bl _u32_div_not_0_f
+_020EBC1C: ; 0x020EBC1C
+ cmp r4, #0x0
+ movne r0, r1
+ mov r1, #0x0
+ ldmia sp!, {r4-r7,r11-r12,lr}
+ bx lr
+
+ arm_func_start _ll_mul
+_ll_mul: ; 0x020EBC30
+ stmdb sp!, {r4-r5,lr}
+ umull r5, r4, r0, r2
+ mla r4, r0, r3, r4
+ mla r4, r2, r1, r4
+ mov r1, r4
+ mov r0, r5
+ ldmia sp!, {r4-r5,lr}
+ bx lr
+
+ arm_func_start _ll_shl
+_ll_shl: ; 0x020EBC50
+ ands r2, r2, #0x3f
+ bxeq lr
+ subs r3, r2, #0x20
+ bge _020EBC74
+ rsb r3, r2, #0x20
+ mov r1, r1, lsl r2
+ orr r1, r1, r0, lsr r3
+ mov r0, r0, lsl r2
+ bx lr
+_020EBC74:
+ mov r1, r0, lsl r3
+ mov r0, #0x0
+ bx lr
+
+ arm_func_start _s32_div_f
+_s32_div_f: ; 0x020EBC80
+ eor r12, r0, r1
+ and r12, r12, #0x80000000
+ cmp r0, #0x0
+ rsblt r0, r0, #0x0
+ addlt r12, r12, #0x1
+ cmp r1, #0x0
+ rsblt r1, r1, #0x0
+ beq _020EBE78
+ cmp r0, r1
+ movcc r1, r0
+ movcc r0, #0x0
+ blo _020EBE78
+ mov r2, #0x1c
+ mov r3, r0, lsr #0x4
+ cmp r1, r3, lsr #0xc
+ suble r2, r2, #0x10
+ movle r3, r3, lsr #0x10
+ cmp r1, r3, lsr #0x4
+ suble r2, r2, #0x8
+ movle r3, r3, lsr #0x8
+ cmp r1, r3
+ suble r2, r2, #0x4
+ movle r3, r3, lsr #0x4
+ mov r0, r0, lsl r2
+ rsb r1, r1, #0x0
+ adds r0, r0, r0
+ add r2, r2, r2, lsl #0x1
+ add pc, pc, r2, lsl #0x2
+ mov r0, r0
+ adcs r3, r1, r3, lsl #0x1
+ subcc r3, r3, r1
+ adcs r0, r0, r0
+ adcs r3, r1, r3, lsl #0x1
+ subcc r3, r3, r1
+ adcs r0, r0, r0
+ adcs r3, r1, r3, lsl #0x1
+ subcc r3, r3, r1
+ adcs r0, r0, r0
+ adcs r3, r1, r3, lsl #0x1
+ subcc r3, r3, r1
+ adcs r0, r0, r0
+ adcs r3, r1, r3, lsl #0x1
+ subcc r3, r3, r1
+ adcs r0, r0, r0
+ adcs r3, r1, r3, lsl #0x1
+ subcc r3, r3, r1
+ adcs r0, r0, r0
+ adcs r3, r1, r3, lsl #0x1
+ subcc r3, r3, r1
+ adcs r0, r0, r0
+ adcs r3, r1, r3, lsl #0x1
+ subcc r3, r3, r1
+ adcs r0, r0, r0
+ adcs r3, r1, r3, lsl #0x1
+ subcc r3, r3, r1
+ adcs r0, r0, r0
+ adcs r3, r1, r3, lsl #0x1
+ subcc r3, r3, r1
+ adcs r0, r0, r0
+ adcs r3, r1, r3, lsl #0x1
+ subcc r3, r3, r1
+ adcs r0, r0, r0
+ adcs r3, r1, r3, lsl #0x1
+ subcc r3, r3, r1
+ adcs r0, r0, r0
+ adcs r3, r1, r3, lsl #0x1
+ subcc r3, r3, r1
+ adcs r0, r0, r0
+ adcs r3, r1, r3, lsl #0x1
+ subcc r3, r3, r1
+ adcs r0, r0, r0
+ adcs r3, r1, r3, lsl #0x1
+ subcc r3, r3, r1
+ adcs r0, r0, r0
+ adcs r3, r1, r3, lsl #0x1
+ subcc r3, r3, r1
+ adcs r0, r0, r0
+ adcs r3, r1, r3, lsl #0x1
+ subcc r3, r3, r1
+ adcs r0, r0, r0
+ adcs r3, r1, r3, lsl #0x1
+ subcc r3, r3, r1
+ adcs r0, r0, r0
+ adcs r3, r1, r3, lsl #0x1
+ subcc r3, r3, r1
+ adcs r0, r0, r0
+ adcs r3, r1, r3, lsl #0x1
+ subcc r3, r3, r1
+ adcs r0, r0, r0
+ adcs r3, r1, r3, lsl #0x1
+ subcc r3, r3, r1
+ adcs r0, r0, r0
+ adcs r3, r1, r3, lsl #0x1
+ subcc r3, r3, r1
+ adcs r0, r0, r0
+ adcs r3, r1, r3, lsl #0x1
+ subcc r3, r3, r1
+ adcs r0, r0, r0
+ adcs r3, r1, r3, lsl #0x1
+ subcc r3, r3, r1
+ adcs r0, r0, r0
+ adcs r3, r1, r3, lsl #0x1
+ subcc r3, r3, r1
+ adcs r0, r0, r0
+ adcs r3, r1, r3, lsl #0x1
+ subcc r3, r3, r1
+ adcs r0, r0, r0
+ adcs r3, r1, r3, lsl #0x1
+ subcc r3, r3, r1
+ adcs r0, r0, r0
+ adcs r3, r1, r3, lsl #0x1
+ subcc r3, r3, r1
+ adcs r0, r0, r0
+ adcs r3, r1, r3, lsl #0x1
+ subcc r3, r3, r1
+ adcs r0, r0, r0
+ adcs r3, r1, r3, lsl #0x1
+ subcc r3, r3, r1
+ adcs r0, r0, r0
+ adcs r3, r1, r3, lsl #0x1
+ subcc r3, r3, r1
+ adcs r0, r0, r0
+ adcs r3, r1, r3, lsl #0x1
+ subcc r3, r3, r1
+ adcs r0, r0, r0
+ mov r1, r3
+_020EBE78:
+ ands r3, r12, #0x80000000
+ rsbne r0, r0, #0x0
+ ands r3, r12, #0x1
+ rsbne r1, r1, #0x0
+ bx lr
+
+ arm_func_start _u32_div_f
+_u32_div_f: ; 0x020EBE8C
+ cmp r1, #0x0
+ bxeq lr
+
+ arm_func_start _u32_div_not_0_f
+_u32_div_not_0_f:
+ cmp r0, r1
+ movcc r1, r0
+ movcc r0, #0x0
+ bxcc lr
+ mov r2, #0x1c
+ mov r3, r0, lsr #0x4
+ cmp r1, r3, lsr #0xc
+ suble r2, r2, #0x10
+ movle r3, r3, lsr #0x10
+ cmp r1, r3, lsr #0x4
+ suble r2, r2, #0x8
+ movle r3, r3, lsr #0x8
+ cmp r1, r3
+ suble r2, r2, #0x4
+ movle r3, r3, lsr #0x4
+ mov r0, r0, lsl r2
+ rsb r1, r1, #0x0
+ adds r0, r0, r0
+ add r2, r2, r2, lsl #0x1
+ add pc, pc, r2, lsl #0x2
+ mov r0, r0
+ adcs r3, r1, r3, lsl #0x1
+ subcc r3, r3, r1
+ adcs r0, r0, r0
+ adcs r3, r1, r3, lsl #0x1
+ subcc r3, r3, r1
+ adcs r0, r0, r0
+ adcs r3, r1, r3, lsl #0x1
+ subcc r3, r3, r1
+ adcs r0, r0, r0
+ adcs r3, r1, r3, lsl #0x1
+ subcc r3, r3, r1
+ adcs r0, r0, r0
+ adcs r3, r1, r3, lsl #0x1
+ subcc r3, r3, r1
+ adcs r0, r0, r0
+ adcs r3, r1, r3, lsl #0x1
+ subcc r3, r3, r1
+ adcs r0, r0, r0
+ adcs r3, r1, r3, lsl #0x1
+ subcc r3, r3, r1
+ adcs r0, r0, r0
+ adcs r3, r1, r3, lsl #0x1
+ subcc r3, r3, r1
+ adcs r0, r0, r0
+ adcs r3, r1, r3, lsl #0x1
+ subcc r3, r3, r1
+ adcs r0, r0, r0
+ adcs r3, r1, r3, lsl #0x1
+ subcc r3, r3, r1
+ adcs r0, r0, r0
+ adcs r3, r1, r3, lsl #0x1
+ subcc r3, r3, r1
+ adcs r0, r0, r0
+ adcs r3, r1, r3, lsl #0x1
+ subcc r3, r3, r1
+ adcs r0, r0, r0
+ adcs r3, r1, r3, lsl #0x1
+ subcc r3, r3, r1
+ adcs r0, r0, r0
+ adcs r3, r1, r3, lsl #0x1
+ subcc r3, r3, r1
+ adcs r0, r0, r0
+ adcs r3, r1, r3, lsl #0x1
+ subcc r3, r3, r1
+ adcs r0, r0, r0
+ adcs r3, r1, r3, lsl #0x1
+ subcc r3, r3, r1
+ adcs r0, r0, r0
+ adcs r3, r1, r3, lsl #0x1
+ subcc r3, r3, r1
+ adcs r0, r0, r0
+ adcs r3, r1, r3, lsl #0x1
+ subcc r3, r3, r1
+ adcs r0, r0, r0
+ adcs r3, r1, r3, lsl #0x1
+ subcc r3, r3, r1
+ adcs r0, r0, r0
+ adcs r3, r1, r3, lsl #0x1
+ subcc r3, r3, r1
+ adcs r0, r0, r0
+ adcs r3, r1, r3, lsl #0x1
+ subcc r3, r3, r1
+ adcs r0, r0, r0
+ adcs r3, r1, r3, lsl #0x1
+ subcc r3, r3, r1
+ adcs r0, r0, r0
+ adcs r3, r1, r3, lsl #0x1
+ subcc r3, r3, r1
+ adcs r0, r0, r0
+ adcs r3, r1, r3, lsl #0x1
+ subcc r3, r3, r1
+ adcs r0, r0, r0
+ adcs r3, r1, r3, lsl #0x1
+ subcc r3, r3, r1
+ adcs r0, r0, r0
+ adcs r3, r1, r3, lsl #0x1
+ subcc r3, r3, r1
+ adcs r0, r0, r0
+ adcs r3, r1, r3, lsl #0x1
+ subcc r3, r3, r1
+ adcs r0, r0, r0
+ adcs r3, r1, r3, lsl #0x1
+ subcc r3, r3, r1
+ adcs r0, r0, r0
+ adcs r3, r1, r3, lsl #0x1
+ subcc r3, r3, r1
+ adcs r0, r0, r0
+ adcs r3, r1, r3, lsl #0x1
+ subcc r3, r3, r1
+ adcs r0, r0, r0
+ adcs r3, r1, r3, lsl #0x1
+ subcc r3, r3, r1
+ adcs r0, r0, r0
+ adcs r3, r1, r3, lsl #0x1
+ subcc r3, r3, r1
+ adcs r0, r0, r0
+ mov r1, r3
+ bx lr
+
+ arm_func_start _drdiv
+_drdiv: ; 0x020EC070
+ eor r1, r1, r3
+ eor r3, r1, r3
+ eor r1, r1, r3
+ eor r0, r0, r2
+ eor r2, r0, r2
+ eor r0, r0, r2
+
+ arm_func_start _ddiv
+_ddiv: ; 0x020EC088
+ stmdb sp!, {r4-r6,lr}
+ ldr lr, _020EC5C8 ; =0x00000FFE
+ eor r4, r1, r3
+ ands r12, lr, r1, lsr #0x13
+ cmpne r12, lr
+ beq _020EC434
+ bic r1, r1, lr, lsl #0x14
+ orr r1, r1, #0x100000
+ add r12, r12, r4, lsr #0x1f
+_020EC0AC:
+ ands r4, lr, r3, lsr #0x13
+ cmpne r4, lr
+ beq _020EC4CC
+ bic r3, r3, lr, lsl #0x14
+ orr r3, r3, #0x100000
+_020EC0C0:
+ sub r12, r12, r4
+ cmp r1, r3
+ cmpeq r0, r2
+ bhs _020EC0DC
+ adds r0, r0, r0
+ adc r1, r1, r1
+ sub r12, r12, #0x2
+_020EC0DC:
+ sub r4, pc, #0x24
+ ldrb lr, [r4, r3, lsr #0xc]
+ rsbs r2, r2, #0x0
+ rsc r3, r3, #0x0
+ mov r4, #0x20000000
+ mla r5, lr, r3, r4
+ mov r6, r3, lsl #0xa
+ mov r5, r5, lsr #0x7
+ mul lr, r5, lr
+ orr r6, r6, r2, lsr #0x16
+ mov lr, lr, lsr #0xd
+ mul r5, lr, r6
+ mov r6, r1, lsl #0xa
+ orr r6, r6, r0, lsr #0x16
+ mov r5, r5, lsr #0x10
+ mul r5, lr, r5
+ mov lr, lr, lsl #0xe
+ add lr, lr, r5, lsr #0x10
+ umull r5, r6, lr, r6
+ umull r4, r5, r6, r2
+ mla r5, r3, r6, r5
+ mov r4, r4, lsr #0x1a
+ orr r4, r4, r5, lsl #0x6
+ add r4, r4, r0, lsl #0x2
+ umull lr, r5, r4, lr
+ mov r4, #0x0
+ adds r5, r5, r6, lsl #0x18
+ adc r4, r4, r6, lsr #0x8
+ cmp r12, #0x800
+ bge _020EC2C0
+ add r12, r12, #0x7f0
+ adds r12, r12, #0xc
+ bmi _020EC2D8
+ orr r1, r4, r12, lsl #0x1f
+ bic r12, r12, #0x1
+ add r1, r1, r12, lsl #0x13
+ tst lr, #0x80000000
+ bne _020EC1B0
+ rsbs r2, r2, #0x0
+ mov r4, r4, lsl #0x1
+ add r4, r4, r5, lsr #0x1f
+ mul lr, r2, r4
+ mov r6, #0x0
+ mov r4, r5, lsl #0x1
+ orr r4, r4, #0x1
+ umlal r6, lr, r4, r2
+ rsc r3, r3, #0x0
+ mla lr, r4, r3, lr
+ cmp lr, r0, lsl #0x15
+ bmi _020EC1B0
+ mov r0, r5
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+_020EC1B0:
+ adds r0, r5, #0x1
+ adc r1, r1, #0x0
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+_020EC1C0: ; not code
+ .byte 0xFF, 0xFF, 0xFE, 0xFD, 0xFC, 0xFB, 0xFA, 0xF9, 0xF8, 0xF7, 0xF6, 0xF5, 0xF4, 0xF3, 0xF2, 0xF1
+ .byte 0xF0, 0xF0, 0xEF, 0xEE, 0xED, 0xEC, 0xEB, 0xEA, 0xEA, 0xE9, 0xE8, 0xE7, 0xE6, 0xE6, 0xE5, 0xE4
+ .byte 0xE3, 0xE2, 0xE2, 0xE1, 0xE0, 0xDF, 0xDF, 0xDE, 0xDD, 0xDC, 0xDC, 0xDB, 0xDA, 0xD9, 0xD9, 0xD8
+ .byte 0xD7, 0xD7, 0xD6, 0xD5, 0xD4, 0xD4, 0xD3, 0xD2, 0xD2, 0xD1, 0xD0, 0xD0, 0xCF, 0xCE, 0xCE, 0xCD
+ .byte 0xCC, 0xCC, 0xCB, 0xCB, 0xCA, 0xC9, 0xC9, 0xC8, 0xC8, 0xC7, 0xC6, 0xC6, 0xC5, 0xC5, 0xC4, 0xC3
+ .byte 0xC3, 0xC2, 0xC2, 0xC1, 0xC0, 0xC0, 0xBF, 0xBF, 0xBE, 0xBE, 0xBD, 0xBD, 0xBC, 0xBC, 0xBB, 0xBA
+ .byte 0xBA, 0xB9, 0xB9, 0xB8, 0xB8, 0xB7, 0xB7, 0xB6, 0xB6, 0xB5, 0xB5, 0xB4, 0xB4, 0xB3, 0xB3, 0xB2
+ .byte 0xB2, 0xB1, 0xB1, 0xB0, 0xB0, 0xAF, 0xAF, 0xAF, 0xAE, 0xAE, 0xAD, 0xAD, 0xAC, 0xAC, 0xAB, 0xAB
+ .byte 0xAA, 0xAA, 0xAA, 0xA9, 0xA9, 0xA8, 0xA8, 0xA7, 0xA7, 0xA7, 0xA6, 0xA6, 0xA5, 0xA5, 0xA4, 0xA4
+ .byte 0xA4, 0xA3, 0xA3, 0xA2, 0xA2, 0xA2, 0xA1, 0xA1, 0xA0, 0xA0, 0xA0, 0x9F, 0x9F, 0x9E, 0x9E, 0x9E
+ .byte 0x9D, 0x9D, 0x9D, 0x9C, 0x9C, 0x9B, 0x9B, 0x9B, 0x9A, 0x9A, 0x9A, 0x99, 0x99, 0x99, 0x98, 0x98
+ .byte 0x98, 0x97, 0x97, 0x96, 0x96, 0x96, 0x95, 0x95, 0x95, 0x94, 0x94, 0x94, 0x93, 0x93, 0x93, 0x92
+ .byte 0x92, 0x92, 0x91, 0x91, 0x91, 0x91, 0x90, 0x90, 0x90, 0x8F, 0x8F, 0x8F, 0x8E, 0x8E, 0x8E, 0x8D
+ .byte 0x8D, 0x8D, 0x8C, 0x8C, 0x8C, 0x8C, 0x8B, 0x8B, 0x8B, 0x8A, 0x8A, 0x8A, 0x8A, 0x89, 0x89, 0x89
+ .byte 0x88, 0x88, 0x88, 0x88, 0x87, 0x87, 0x87, 0x86, 0x86, 0x86, 0x86, 0x85, 0x85, 0x85, 0x85, 0x84
+ .byte 0x84, 0x84, 0x83, 0x83, 0x83, 0x83, 0x82, 0x82, 0x82, 0x82, 0x81, 0x81, 0x81, 0x81, 0x80, 0x80
+_020EC2C0:
+ movs r1, r12, lsl #0x1f
+ orr r1, r1, #0x7f000000
+ orr r1, r1, #0xf00000
+ mov r0, #0x0
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+_020EC2D8:
+ mvn r6, r12, asr #0x1
+ cmp r6, #0x34
+ bgt _020EC424
+ beq _020EC400
+ cmp r6, #0x14
+ bge _020EC320
+ rsb r6, r6, #0x13
+ mov lr, r0, lsl r6
+ rsb r6, r6, #0x14
+ mov r0, r5, lsr r6
+ rsb r6, r6, #0x20
+ orr r0, r0, r4, lsl r6
+ rsb r6, r6, #0x20
+ mov r4, r4, lsr r6
+ orr r1, r4, r12, lsl #0x1f
+ mov r12, lr
+ mov lr, #0x0
+ b _020EC350
+_020EC320:
+ rsb r6, r6, #0x33
+ mov lr, r1, lsl r6
+ mov r1, r12, lsl #0x1f
+ rsb r6, r6, #0x20
+ orr r12, lr, r0, lsr r6
+ rsb r6, r6, #0x20
+ mov lr, r0, lsl r6
+ mov r5, r5, lsr #0x15
+ orr r5, r5, r4, lsl #0xb
+ rsb r6, r6, #0x1f
+ mov r0, r5, lsr r6
+ mov r4, #0x0
+_020EC350:
+ rsbs r2, r2, #0x0
+ mul r4, r2, r4
+ mov r5, #0x0
+ umlal r5, r4, r2, r0
+ rsc r3, r3, #0x0
+ mla r4, r0, r3, r4
+ cmp r4, r12
+ cmpeq r5, lr
+ ldmeqia sp!, {r4-r6,lr}
+ bxeq lr
+ adds r5, r5, r2
+ adc r4, r4, r3
+ cmp r4, r12
+ bmi _020EC3F4
+ bne _020EC398
+ cmp r5, lr
+ beq _020EC3E4
+ blo _020EC3F4
+_020EC398:
+ subs r5, r5, r2
+ sbc r4, r4, r3
+_020EC3A0:
+ adds r5, r5, r5
+ adc r4, r4, r4
+ adds r5, r5, r2
+ adc r4, r4, r3
+ adds lr, lr, lr
+ adc r12, r12, r12
+ cmp r4, r12
+ bmi _020EC3E4
+ ldmneia sp!, {r4-r6,lr}
+ bxne lr
+ cmp r5, lr
+ blo _020EC3E4
+ ldmneia sp!, {r4-r6,lr}
+ bxne lr
+ tst r0, #0x1
+ ldmeqia sp!, {r4-r6,lr}
+ bxeq lr
+_020EC3E4:
+ adds r0, r0, #0x1
+ adc r1, r1, #0x0
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+_020EC3F4:
+ adds r0, r0, #0x1
+ adc r1, r1, #0x0
+ b _020EC3A0
+_020EC400:
+ rsbs r2, r2, #0x0
+ rsc r3, r3, #0x0
+ cmp r1, r3
+ cmpeq r0, r2
+ mov r1, r12, lsl #0x1f
+ mov r0, #0x0
+ movne r0, #0x1
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+_020EC424:
+ mov r1, r12, lsl #0x1f
+ mov r0, #0x0
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+_020EC434:
+ orrs r5, r0, r1, lsl #0x1
+ beq _020EC558
+ cmp r12, lr
+ beq _020EC49C
+ movs r1, r1, lsl #0xc
+ beq _020EC478
+ clz r5, r1
+ movs r1, r1, lsl r5
+ sub r12, r12, r5
+ add r5, r12, #0x1f
+ mov r1, r1, lsr #0xb
+ orr r1, r1, r0, lsr r5
+ rsb r5, r5, #0x20
+ mov r0, r0, lsl r5
+ mov r12, r12, lsl #0x1
+ orr r12, r12, r4, lsr #0x1f
+ b _020EC0AC
+_020EC478:
+ mvn r12, #0x13
+ clz r5, r0
+ movs r0, r0, lsl r5
+ sub r12, r12, r5
+ mov r1, r0, lsr #0xb
+ mov r0, r0, lsl #0x15
+ mov r12, r12, lsl #0x1
+ orr r12, r12, r4, lsr #0x1f
+ b _020EC0AC
+_020EC49C:
+ orrs r5, r0, r1, lsl #0xc
+ bne _020EC580
+ bic r5, r3, #0x80000000
+ cmp r5, lr, lsl #0x13
+ bhs _020EC4C0
+ and r5, r3, #0x80000000
+ eor r1, r5, r1
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+_020EC4C0:
+ orrs r5, r2, r3, lsl #0xc
+ bne _020EC5A0
+ b _020EC5B8
+_020EC4CC:
+ orrs r5, r2, r3, lsl #0x1
+ beq _020EC544
+ cmp r4, lr
+ beq _020EC52C
+ movs r3, r3, lsl #0xc
+ beq _020EC50C
+ clz r5, r3
+ movs r3, r3, lsl r5
+ sub r4, r4, r5
+ add r5, r4, #0x1f
+ mov r3, r3, lsr #0xb
+ orr r3, r3, r2, lsr r5
+ rsb r5, r5, #0x20
+ mov r2, r2, lsl r5
+ mov r4, r4, lsl #0x1
+ b _020EC0C0
+_020EC50C:
+ mvn r4, #0x13
+ clz r5, r2
+ movs r2, r2, lsl r5
+ sub r4, r4, r5
+ mov r3, r2, lsr #0xb
+ mov r2, r2, lsl #0x15
+ mov r4, r4, lsl #0x1
+ b _020EC0C0
+_020EC52C:
+ orrs r5, r2, r3, lsl #0xc
+ bne _020EC5A0
+ mov r1, r12, lsl #0x1f
+ mov r0, #0x0
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+_020EC544:
+ mov r1, r12, lsl #0x1f
+ orr r1, r1, lr, lsl #0x13
+ mov r0, #0x0
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+_020EC558:
+ orrs r5, r2, r3, lsl #0x1
+ beq _020EC5B8
+ bic r5, r3, #0x80000000
+ cmp r5, lr, lsl #0x13
+ cmpeq r2, #0x0
+ bhi _020EC5A0
+ eor r1, r1, r3
+ and r1, r1, #0x80000000
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+_020EC580:
+ tst r1, #0x80000
+ beq _020EC5B8
+ bic r5, r3, #0x80000000
+ cmp r5, lr, lsl #0x13
+ cmpeq r2, #0x0
+ bhi _020EC5A0
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+_020EC5A0:
+ tst r3, #0x80000
+ beq _020EC5B8
+ mov r1, r3
+ mov r0, r2
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+_020EC5B8:
+ orr r1, r1, #0x7f000000
+ orr r1, r1, #0xf80000
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+ .balign 4
+_020EC5C8: .word 0x00000FFE
+
+ arm_func_start _fp_init
+_fp_init: ; 0x020EC5CC
+ bx lr
+
+ arm_func_start sys_writec
+sys_writec: ; 0x020EC5D0
+ str lr, [sp, #-0x4]!
+ mov r1, r0
+ mov r0, #0x3
+ swi 0x123456
+ ldr pc, [sp], #0x4
+
+ arm_func_start sys_readc
+sys_readc: ; 0x020EC5E4
+ str lr, [sp, #-0x4]!
+ mov r1, #0x0
+ mov r0, #0x7
+ swi 0x123456
+ ldr pc, [sp], #0x4
+
+ arm_func_start sys_exit
+sys_exit: ; 0x020EC5F8
+ mov r1, #0x0
+ mov r0, #0x18
+ swi 0x123456
+ mov pc, lr
+
+ arm_func_start __read_console
+__read_console: ; 0x020EC608
+ stmdb sp!, {r3-r7,lr}
+ mov r6, r2
+ ldr r5, [r6, #0x0]
+ mov r7, r1
+ cmp r5, #0x0
+ mov r4, #0x0
+ bls _020EC650
+_020EC624:
+ bl sys_readc
+ and r1, r0, #0xff
+ cmp r1, #0xd
+ strb r0, [r7, r4]
+ cmpne r1, #0xa
+ addeq r0, r4, #0x1
+ streq r0, [r6, #0x0]
+ beq _020EC650
+ add r4, r4, #0x1
+ cmp r4, r5
+ blo _020EC624
+_020EC650:
+ mov r0, #0x0
+ ldmia sp!, {r3-r7,pc}
+
+ arm_func_start __write_console
+__write_console: ; 0x020EC658
+ stmdb sp!, {r4-r6,lr}
+ ldr r5, [r2, #0x0]
+ mov r6, r1
+ cmp r5, #0x0
+ mov r4, #0x0
+ bls _020EC684
+_020EC670:
+ add r0, r6, r4
+ bl sys_writec
+ add r4, r4, #0x1
+ cmp r4, r5
+ blo _020EC670
+_020EC684:
+ mov r0, #0x0
+ ldmia sp!, {r4-r6,pc}
+
+ arm_func_start __close_console
+__close_console: ; 0x020EC68C
+ mov r0, #0x0
+ bx lr
+
+ arm_func_start __call_static_initializers
+__call_static_initializers: ; 0x020EC694
+ stmdb sp!, {r4,lr}
+ ldr r4, _020EC6BC ; =0x02104774
+ b _020EC6A8
+_020EC6A0:
+ blx r0
+ add r4, r4, #0x4
+_020EC6A8:
+ cmp r4, #0x0
+ ldrne r0, [r4, #0x0]
+ cmpne r0, #0x0
+ bne _020EC6A0
+ ldmia sp!, {r4,pc}
+ .balign 4
+_020EC6BC: .word 0x02104774
+
+ arm_func_start __destroy_global_chain
+__destroy_global_chain: ; 0x020EC6C0
+ stmdb sp!, {r3-r5,lr}
+ ldr r4, _020EC700 ; =0x021D74C8
+ ldr r2, [r4, #0x0]
+ cmp r2, #0x0
+ ldmeqia sp!, {r3-r5,pc}
+_020EC6D4: ; 0x020EC6D4
+ mvn r5, #0x0
+_020EC6D8:
+ ldr r0, [r2, #0x0]
+ mov r1, r5
+ str r0, [r4, #0x0]
+ ldr r0, [r2, #0x8]
+ ldr r2, [r2, #0x4]
+ blx r2
+ ldr r2, [r4, #0x0]
+ cmp r2, #0x0
+ bne _020EC6D8
+ ldmia sp!, {r3-r5,pc}
+ .balign 4
+_020EC700: .word 0x021D74C8
+
+ arm_func_start _ExitProcess
+_ExitProcess: ; 0x020EC704
+ ldr ip, _020EC70C ; =sys_exit
+ bx r12
+ .balign 4
+_020EC70C: .word sys_exit
diff --git a/arm9/asm/WM_arm9.s b/arm9/asm/WM_arm9.s
new file mode 100644
index 00000000..cc3e7998
--- /dev/null
+++ b/arm9/asm/WM_arm9.s
@@ -0,0 +1,3744 @@
+ .include "asm/macros.inc"
+ .include "global.inc"
+
+ .text
+
+ arm_func_start WMi_GetMPReadyAIDs
+WMi_GetMPReadyAIDs: ; 0x020D7DE0
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ bl OS_DisableInterrupts
+ ldr r1, _020D7E30 ; =0x021D5E2C
+ mov r4, r0
+ ldr r0, [r1, #0x0]
+ cmp r0, #0x0
+ moveq r5, #0x0
+ beq _020D7E18
+ ldr r5, [r0, #0x4]
+ mov r1, #0x2
+ add r0, r5, #0x86
+ bl DC_InvalidateRange
+ ldrh r5, [r5, #0x86]
+_020D7E18:
+ mov r0, r4
+ bl OS_RestoreInterrupts
+ mov r0, r5
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,lr}
+ bx lr
+ .balign 4
+_020D7E30: .word 0x021D5E2C
+
+ arm_func_start WM_GetConnectedAIDs
+WM_GetConnectedAIDs: ; 0x020D7E34
+ stmdb sp!, {r4,lr}
+ bl OS_DisableInterrupts
+ ldr r1, _020D7E64 ; =0x021D5E2C
+ ldr r1, [r1, #0x0]
+ cmp r1, #0x0
+ ldrne r4, [r1, #0x14c]
+ moveq r4, #0x0
+ bl OS_RestoreInterrupts
+ mov r0, r4, lsl #0x10
+ mov r0, r0, lsr #0x10
+ ldmia sp!, {r4,lr}
+ bx lr
+ .balign 4
+_020D7E64: .word 0x021D5E2C
+
+ arm_func_start WM_GetAID
+WM_GetAID: ; 0x020D7E68
+ stmdb sp!, {r4,lr}
+ bl OS_DisableInterrupts
+ ldr r1, _020D7E98 ; =0x021D5E2C
+ ldr r1, [r1, #0x0]
+ cmp r1, #0x0
+ addne r1, r1, #0x100
+ ldrneh r4, [r1, #0x50]
+ moveq r4, #0x0
+ bl OS_RestoreInterrupts
+ mov r0, r4
+ ldmia sp!, {r4,lr}
+ bx lr
+ .balign 4
+_020D7E98: .word 0x021D5E2C
+
+ arm_func_start WMi_GetStatusAddress
+WMi_GetStatusAddress: ; 0x020D7E9C
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ bl WMi_CheckInitialized
+_020D7EA8: ; 0x020D7EA8
+ cmp r0, #0x0
+ movne r0, #0x0
+ ldreq r0, _020D7EC8 ; =0x021D5E2C
+ ldreq r0, [r0, #0x0]
+ ldreq r0, [r0, #0x4]
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+ .balign 4
+_020D7EC8: .word 0x021D5E2C
+
+ arm_func_start WmClearFifoRecvFlag
+WmClearFifoRecvFlag: ; 0x020D7ECC
+ ldr r1, _020D7EE4 ; =0x027FFF96
+ ldrh r0, [r1, #0x0]
+ ands r2, r0, #0x1
+ bicne r0, r0, #0x1
+ strneh r0, [r1, #0x0]
+ bx lr
+ .balign 4
+_020D7EE4: .word 0x027FFF96
+
+ arm_func_start WmReceiveFifo
+WmReceiveFifo: ; 0x020D7EE8
+ stmdb sp!, {r4-r11,lr}
+ sub sp, sp, #0xc
+ ldr r0, _020D82B0 ; =0x021D5E2C
+ cmp r2, #0x0
+ ldr r8, [r0, #0x0]
+ mov r10, r1
+ addne sp, sp, #0xc
+ ldmneia sp!, {r4-r11,lr}
+ bxne lr
+ ldr r0, [r8, #0x10]
+ mov r1, #0x100
+ bl DC_InvalidateRange
+ ldrh r0, [r8, #0x16]
+ cmp r0, #0x0
+ bne _020D7F30
+ ldr r0, [r8, #0x4]
+ mov r1, #0x800
+ bl DC_InvalidateRange
+_020D7F30:
+ ldr r0, [r8, #0x10]
+ cmp r10, r0
+ beq _020D7F48
+ mov r0, r10
+ mov r1, #0x100
+ bl DC_InvalidateRange
+_020D7F48:
+ ldrh r0, [r10, #0x0]
+ cmp r0, #0x2c
+ blo _020D8000
+ cmp r0, #0x80
+ bne _020D7F84
+ ldrh r0, [r10, #0x2]
+ cmp r0, #0x13
+ bne _020D7F6C
+ bl OS_Terminate
+_020D7F6C:
+ ldr r1, [r8, #0xc8]
+ cmp r1, #0x0
+ beq _020D8268
+ mov r0, r10
+ blx r1
+ b _020D8268
+_020D7F84:
+ cmp r0, #0x82
+ bne _020D7FD8
+ ldrh r0, [r10, #0x6]
+ add r1, r8, r0, lsl #0x2
+ ldr r0, [r1, #0xcc]
+ cmp r0, #0x0
+ beq _020D8268
+ ldr r0, [r1, #0x10c]
+ str r0, [r10, #0x1c]
+ ldr r0, [r8, #0x14c]
+ strh r0, [r10, #0x22]
+ ldr r1, [r8, #0x4]
+ ldr r0, [r10, #0x8]
+ ldrh r1, [r1, #0x72]
+ bl DC_InvalidateRange
+ ldrh r1, [r10, #0x6]
+ mov r0, r10
+ add r1, r8, r1, lsl #0x2
+ ldr r1, [r1, #0xcc]
+ blx r1
+ b _020D8268
+_020D7FD8:
+ cmp r0, #0x81
+ bne _020D8268
+ mov r0, #0xf
+ strh r0, [r10, #0x0]
+ ldr r1, [r10, #0x1c]
+ cmp r1, #0x0
+ beq _020D8268
+ mov r0, r10
+ blx r1
+ b _020D8268
+_020D8000:
+ cmp r0, #0xe
+ bne _020D8040
+ ldrh r1, [r10, #0x4]
+ ldr r0, _020D82B4 ; =0x0000FFF5
+ add r0, r1, r0
+ mov r0, r0, lsl #0x10
+ mov r0, r0, lsr #0x10
+ cmp r0, #0x1
+ bhi _020D8040
+ ldrh r0, [r10, #0x2]
+ cmp r0, #0x0
+ bne _020D8040
+ ldr r1, [r8, #0x4]
+ ldr r0, [r10, #0x8]
+ ldrh r1, [r1, #0x72]
+ bl DC_InvalidateRange
+_020D8040:
+ ldrh r1, [r10, #0x0]
+ cmp r1, #0x2
+ bne _020D8088
+ ldrh r0, [r10, #0x2]
+ cmp r0, #0x0
+ bne _020D8088
+ add r0, r8, r1, lsl #0x2
+ ldr r4, [r0, #0x18]
+ bl WM_Finish
+_020D8064: ; 0x020D8064
+ cmp r4, #0x0
+ addeq sp, sp, #0xc
+ ldmeqia sp!, {r4-r11,lr}
+ bxeq lr
+ mov r0, r10
+ blx r4
+ add sp, sp, #0xc
+ ldmia sp!, {r4-r11,lr}
+ bx lr
+_020D8088:
+ add r0, r8, r1, lsl #0x2
+ ldr r1, [r0, #0x18]
+ cmp r1, #0x0
+ beq _020D80B8
+ mov r0, r10
+ blx r1
+ ldr r0, _020D82B8 ; =0x021D5E28
+ ldrh r0, [r0, #0x0]
+ cmp r0, #0x0
+ addeq sp, sp, #0xc
+ ldmeqia sp!, {r4-r11,lr}
+ bxeq lr
+_020D80B8:
+ ldrh r0, [r10, #0x0]
+ cmp r0, #0x8
+ beq _020D80CC
+ cmp r0, #0xc
+ bne _020D8268
+_020D80CC:
+ cmp r0, #0x8
+ bne _020D8100
+ add r0, r10, #0xa
+ str r0, [sp, #0x0]
+ ldrh r0, [r10, #0x2c]
+ add r11, r10, #0x14
+ ldrh r7, [r10, #0x8]
+ ldrh r6, [r10, #0x10]
+ ldrh r4, [r10, #0x12]
+ str r0, [sp, #0x4]
+ ldrh r9, [r10, #0x2e]
+ mov r5, #0x0
+ b _020D8130
+_020D8100:
+ cmp r0, #0xc
+ bne _020D8130
+ ldrh r0, [r10, #0x16]
+ mov r6, #0x0
+ ldrh r7, [r10, #0x8]
+ str r0, [sp, #0x4]
+ add r0, r10, #0x10
+ ldrh r5, [r10, #0xa]
+ ldrh r4, [r10, #0xc]
+ ldrh r9, [r10, #0x18]
+ mov r11, r6
+ str r0, [sp, #0x0]
+_020D8130:
+ cmp r7, #0x7
+ beq _020D8148
+ cmp r7, #0x9
+ beq _020D8148
+ cmp r7, #0x1a
+ bne _020D8268
+_020D8148:
+ cmp r7, #0x7
+ ldreq r1, [r8, #0x14c]
+ moveq r0, #0x1
+ orreq r0, r1, r0, lsl r6
+ streq r0, [r8, #0x14c]
+ movne r0, #0x1
+ mvnne r0, r0, lsl r6
+ ldrne r1, [r8, #0x14c]
+ add r3, r8, #0x100
+ andne r0, r1, r0
+ strne r0, [r8, #0x14c]
+ ldr r0, _020D82BC ; =0x021D5E78
+ mov r1, #0x0
+ mov r2, #0x44
+ strh r5, [r3, #0x50]
+ bl MI_CpuFill8
+ ldr r3, _020D82BC ; =0x021D5E78
+ mov r1, #0x0
+ mov r2, #0x82
+ strh r2, [r3, #0x0]
+ strh r7, [r3, #0x4]
+ strh r6, [r3, #0x12]
+ strh r5, [r3, #0x20]
+ strh r1, [r3, #0x2]
+ str r1, [r3, #0x8]
+ str r1, [r3, #0xc]
+ strh r1, [r3, #0x10]
+ ldr r1, [r8, #0x14c]
+ ldr r2, _020D82C0 ; =0x0000FFFF
+ strh r1, [r3, #0x22]
+ strh r2, [r3, #0x1a]
+ ldr r0, [sp, #0x0]
+ ldr r1, _020D82C4 ; =0x021D5E8C
+ mov r2, #0x6
+ strh r4, [r3, #0x3c]
+ bl MI_CpuCopy8
+_020D81D8: ; 0x020D81D8
+ cmp r11, #0x0
+ beq _020D81F4
+ ldr r1, _020D82C8 ; =0x021D5E9C
+ mov r0, r11
+ mov r2, #0x18
+ bl MIi_CpuCopy16
+ b _020D8204
+_020D81F4:
+ ldr r1, _020D82C8 ; =0x021D5E9C
+ mov r0, #0x0
+ mov r2, #0x18
+ bl MIi_CpuClear16
+_020D8204:
+ cmp r5, #0x0
+ ldreq r1, [sp, #0x4]
+ ldr r0, _020D82BC ; =0x021D5E78
+ movne r1, r9
+ cmp r5, #0x0
+ ldrne r9, [sp, #0x4]
+ ldr r5, _020D82BC ; =0x021D5E78
+ strh r1, [r0, #0x40]
+ mov r4, #0x0
+ strh r9, [r5, #0x42]
+_020D822C:
+ strh r4, [r5, #0x6]
+ add r2, r8, r4, lsl #0x2
+ ldr r0, [r2, #0xcc]
+ cmp r0, #0x0
+ beq _020D8254
+ ldr r1, [r2, #0x10c]
+ mov r0, r5
+ str r1, [r5, #0x1c]
+ ldr r1, [r2, #0xcc]
+ blx r1
+_020D8254:
+ add r0, r4, #0x1
+ mov r0, r0, lsl #0x10
+ mov r4, r0, lsr #0x10
+ cmp r4, #0x10
+ blo _020D822C
+_020D8268:
+ ldr r0, [r8, #0x10]
+ mov r1, #0x100
+ bl DC_InvalidateRange
+ bl WmClearFifoRecvFlag
+ ldr r0, [r8, #0x10]
+ cmp r10, r0
+ addeq sp, sp, #0xc
+ ldmeqia sp!, {r4-r11,lr}
+ bxeq lr
+ ldrh r2, [r10, #0x0]
+ mov r0, r10
+ mov r1, #0x100
+ orr r2, r2, #0x8000
+ strh r2, [r10, #0x0]
+ bl DC_StoreRange
+ add sp, sp, #0xc
+ ldmia sp!, {r4-r11,lr}
+ bx lr
+ .balign 4
+_020D82B0: .word 0x021D5E2C
+_020D82B4: .word 0x0000FFF5
+_020D82B8: .word 0x021D5E28
+_020D82BC: .word 0x021D5E78
+_020D82C0: .word 0x0000FFFF
+_020D82C4: .word 0x021D5E8C
+_020D82C8: .word 0x021D5E9C
+
+ arm_func_start WMi_CheckStateEx
+WMi_CheckStateEx:
+ stmdb sp!, {r0-r3}
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ bl WMi_CheckInitialized
+_020D82DC: ; 0x020D82DC
+ cmp r0, #0x0
+ addne sp, sp, #0x4
+ ldmneia sp!, {lr}
+ addne sp, sp, #0x10
+ bxne lr
+ ldr r0, _020D8370 ; =0x021D5E2C
+ mov r1, #0x2
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0x4]
+ bl DC_InvalidateRange
+ ldr r0, _020D8370 ; =0x021D5E2C
+ add r1, sp, #0x8
+ ldr r2, [r0, #0x0]
+ ldr r0, [sp, #0x8]
+ ldr r2, [r2, #0x4]
+ cmp r0, #0x0
+ bic r1, r1, #0x3
+ addeq sp, sp, #0x4
+ add r12, r1, #0x4
+ ldrh r3, [r2, #0x0]
+ mov r0, #0x3
+ ldmeqia sp!, {lr}
+ addeq sp, sp, #0x10
+ bxeq lr
+ mov r2, #0x0
+_020D8340:
+ add r12, r12, #0x4
+ ldr r1, [r12, #-0x4]
+ cmp r1, r3
+ ldr r1, [sp, #0x8]
+ moveq r0, r2
+ subs r1, r1, #0x1
+ str r1, [sp, #0x8]
+ bne _020D8340
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ add sp, sp, #0x10
+ bx lr
+ .balign 4
+_020D8370: .word 0x021D5E2C
+
+ arm_func_start WMi_CheckIdle
+WMi_CheckIdle:
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ bl WMi_CheckInitialized
+_020D8380: ; 0x020D8380
+ cmp r0, #0x0
+ addne sp, sp, #0x4
+ ldmneia sp!, {lr}
+ bxne lr
+ ldr r0, _020D83CC ; =0x021D5E2C
+ mov r1, #0x2
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0x4]
+ bl DC_InvalidateRange
+ ldr r0, _020D83CC ; =0x021D5E2C
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0x4]
+ ldrh r0, [r0, #0x0]
+ cmp r0, #0x1
+ movls r0, #0x3
+ movhi r0, #0x0
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+ .balign 4
+_020D83CC: .word 0x021D5E2C
+
+ arm_func_start WMi_CheckInitialized
+WMi_CheckInitialized:
+ ldr r0, _020D83E8 ; =0x021D5E28
+ ldrh r0, [r0, #0x0]
+ cmp r0, #0x0
+ movne r0, #0x0
+ moveq r0, #0x3
+ bx lr
+ .balign 4
+_020D83E8: .word 0x021D5E28
+
+ arm_func_start WMi_GetSystemWork
+WMi_GetSystemWork: ; 0x020D83EC
+ ldr r0, _020D83F8 ; =0x021D5E2C
+ ldr r0, [r0, #0x0]
+ bx lr
+ .balign 4
+_020D83F8: .word 0x021D5E2C
+
+ arm_func_start WMi_SendCommandDirect
+WMi_SendCommandDirect:
+ stmdb sp!, {r4-r6,lr}
+ mov r6, r0
+ mov r4, r1
+ bl WmGetCommandBuffer4Arm7
+ movs r5, r0
+ moveq r0, #0x8
+ ldmeqia sp!, {r4-r6,lr}
+ bxeq lr
+ mov r0, r6
+ mov r1, r5
+ mov r2, r4
+ bl MI_CpuCopy8
+ mov r0, r5
+ mov r1, r4
+ bl DC_StoreRange
+ mov r1, r5
+ mov r0, #0xa
+ mov r2, #0x0
+ bl PXI_SendWordByFifo
+ mov r4, r0
+ ldr r0, _020D8470 ; =0x021D5E30
+ mov r1, r5
+ mov r2, #0x1
+ bl OS_SendMessage
+_020D845C: ; 0x020D845C
+ cmp r4, #0x0
+ movlt r0, #0x8
+ movge r0, #0x2
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+ .balign 4
+_020D8470: .word 0x021D5E30
+
+ arm_func_start WMi_SendCommand
+WMi_SendCommand:
+ stmdb sp!, {r0-r3}
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ mov r4, r0
+ bl WmGetCommandBuffer4Arm7
+ movs r5, r0
+ addeq sp, sp, #0x4
+ moveq r0, #0x8
+ ldmeqia sp!, {r4-r5,lr}
+ addeq sp, sp, #0x10
+ bxeq lr
+ strh r4, [r5, #0x0]
+ ldrh r2, [sp, #0x14]
+ add r0, sp, #0x14
+ bic r0, r0, #0x3
+ mov r3, #0x0
+ cmp r2, #0x0
+ add r4, r0, #0x4
+ ble _020D84DC
+_020D84C0:
+ add r4, r4, #0x4
+ ldr r1, [r4, #-0x4]
+ add r0, r5, r3, lsl #0x2
+ add r3, r3, #0x1
+ str r1, [r0, #0x4]
+ cmp r3, r2
+ blt _020D84C0
+_020D84DC:
+ mov r0, r5
+ mov r1, #0x100
+ bl DC_StoreRange
+ mov r1, r5
+ mov r0, #0xa
+ mov r2, #0x0
+ bl PXI_SendWordByFifo
+ mov r4, r0
+ ldr r0, _020D8528 ; =0x021D5E30
+ mov r1, r5
+ mov r2, #0x1
+ bl OS_SendMessage
+_020D850C: ; 0x020D850C
+ cmp r4, #0x0
+ movlt r0, #0x8
+ movge r0, #0x2
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,lr}
+ add sp, sp, #0x10
+ bx lr
+ .balign 4
+_020D8528: .word 0x021D5E30
+
+ arm_func_start WmGetCommandBuffer4Arm7
+WmGetCommandBuffer4Arm7: ; 0x020D852C
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldr r0, _020D859C ; =0x021D5E30
+ add r1, sp, #0x0
+ mov r2, #0x0
+ bl OS_ReceiveMessage
+_020D8544: ; 0x020D8544
+ cmp r0, #0x0
+ addeq sp, sp, #0x4
+ moveq r0, #0x0
+ ldmeqia sp!, {lr}
+ bxeq lr
+ ldr r0, [sp, #0x0]
+ mov r1, #0x2
+ bl DC_InvalidateRange
+ ldr r1, [sp, #0x0]
+ ldrh r0, [r1, #0x0]
+ ands r0, r0, #0x8000
+ addne sp, sp, #0x4
+ movne r0, r1
+ ldmneia sp!, {lr}
+ bxne lr
+ ldr r0, _020D859C ; =0x021D5E30
+ mov r2, #0x1
+ bl OS_JamMessage
+_020D858C: ; 0x020D858C
+ mov r0, #0x0
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+ .balign 4
+_020D859C: .word 0x021D5E30
+
+ arm_func_start WMi_SetCallbackTable
+WMi_SetCallbackTable: ; 0x020D85A0
+ ldr r2, _020D85B4 ; =0x021D5E2C
+ ldr r2, [r2, #0x0]
+ add r0, r2, r0, lsl #0x2
+ str r1, [r0, #0x18]
+ bx lr
+ .balign 4
+_020D85B4: .word 0x021D5E2C
+
+ arm_func_start WM_Finish
+WM_Finish:
+ stmdb sp!, {r4,lr}
+ bl OS_DisableInterrupts
+ mov r4, r0
+ bl WMi_CheckInitialized
+_020D85C8: ; 0x020D85C8
+ cmp r0, #0x0
+ beq _020D85E4
+ mov r0, r4
+ bl OS_RestoreInterrupts
+ mov r0, #0x3
+ ldmia sp!, {r4,lr}
+ bx lr
+_020D85E4:
+ mov r0, #0x1
+ mov r1, #0x0
+ bl WMi_CheckStateEx
+_020D85F0: ; 0x020D85F0
+ cmp r0, #0x0
+ ldmneia sp!, {r4,lr}
+ bxne lr
+ bl WmClearFifoRecvFlag
+ mov r0, #0xa
+ mov r1, #0x0
+ bl PXI_SetFifoRecvCallback
+ ldr r2, _020D8634 ; =0x021D5E2C
+ mov r3, #0x0
+ ldr r1, _020D8638 ; =0x021D5E28
+ mov r0, r4
+ str r3, [r2, #0x0]
+ strh r3, [r1, #0x0]
+ bl OS_RestoreInterrupts
+_020D8628: ; 0x020D8628
+ mov r0, #0x0
+ ldmia sp!, {r4,lr}
+ bx lr
+ .balign 4
+_020D8634: .word 0x021D5E2C
+_020D8638: .word 0x021D5E28
+
+ arm_func_start WmInitCore
+WmInitCore:
+ stmdb sp!, {r4-r10,lr}
+ mov r6, r0
+ mov r5, r1
+ mov r7, r2
+ bl OS_DisableInterrupts
+ ldr r1, _020D881C ; =0x021D5E28
+ mov r4, r0
+ ldrh r1, [r1, #0x0]
+ cmp r1, #0x0
+ beq _020D8674
+ bl OS_RestoreInterrupts
+ mov r0, #0x3
+ ldmia sp!, {r4-r10,lr}
+ bx lr
+_020D8674:
+ cmp r6, #0x0
+ bne _020D868C
+ bl OS_RestoreInterrupts
+ mov r0, #0x6
+ ldmia sp!, {r4-r10,lr}
+ bx lr
+_020D868C:
+ cmp r5, #0x3
+ bls _020D86A4
+ bl OS_RestoreInterrupts
+ mov r0, #0x6
+ ldmia sp!, {r4-r10,lr}
+ bx lr
+_020D86A4:
+ ands r1, r6, #0x1f
+ beq _020D86BC
+ bl OS_RestoreInterrupts
+ mov r0, #0x6
+ ldmia sp!, {r4-r10,lr}
+ bx lr
+_020D86BC:
+ bl PXI_Init
+ mov r0, #0xa
+ mov r1, #0x1
+ bl PXI_IsCallbackReady
+_020D86CC: ; 0x020D86CC
+ cmp r0, #0x0
+ bne _020D86E8
+ mov r0, r4
+ bl OS_RestoreInterrupts
+ mov r0, #0x4
+ ldmia sp!, {r4-r10,lr}
+ bx lr
+_020D86E8:
+ mov r0, r6
+ mov r1, r7
+ bl DC_InvalidateRange
+ mov r0, r5
+ mov r1, r6
+ mov r3, r7
+ mov r2, #0x0
+ bl MI_DmaFill32
+ ldr r0, _020D8820 ; =0x021D5E2C
+ add r1, r6, #0x200
+ str r6, [r0, #0x0]
+ str r1, [r6, #0x0]
+ ldr r2, [r0, #0x0]
+ ldr r1, [r2, #0x0]
+ add r1, r1, #0x300
+ str r1, [r2, #0x4]
+ ldr r2, [r0, #0x0]
+ ldr r1, [r2, #0x4]
+ add r1, r1, #0x800
+ str r1, [r2, #0xc]
+ ldr r1, [r0, #0x0]
+ ldr r0, [r1, #0xc]
+ add r0, r0, #0x100
+ str r0, [r1, #0x10]
+ bl WmClearFifoRecvFlag
+ ldr r1, _020D8820 ; =0x021D5E2C
+ mov r3, #0x0
+ ldr r0, [r1, #0x0]
+ strh r5, [r0, #0x14]
+ ldr r0, [r1, #0x0]
+ str r3, [r0, #0x14c]
+ ldr r0, [r1, #0x0]
+ add r0, r0, #0x100
+ strh r3, [r0, #0x50]
+ mov r2, r3
+_020D8774:
+ ldr r0, [r1, #0x0]
+ add r0, r0, r3, lsl #0x2
+ str r2, [r0, #0xcc]
+ ldr r0, [r1, #0x0]
+ add r0, r0, r3, lsl #0x2
+ add r3, r3, #0x1
+ str r2, [r0, #0x10c]
+ cmp r3, #0x10
+ blt _020D8774
+ ldr r0, _020D8824 ; =0x021D5E30
+ ldr r1, _020D8828 ; =0x021D5E50
+ mov r2, #0xa
+ bl OS_InitMessageQueue
+ ldr sb, _020D882C ; =0x021D5EC0
+ mov r10, #0x0
+ ldr r6, _020D8824 ; =0x021D5E30
+ mov r8, #0x8000
+ mov r7, #0x2
+ mov r5, #0x1
+_020D87C0:
+ mov r0, r9
+ mov r1, r7
+ strh r8, [r9, #0x0]
+ bl DC_StoreRange
+ mov r0, r6
+ mov r1, r9
+ mov r2, r5
+ bl OS_SendMessage
+ add r10, r10, #0x1
+ cmp r10, #0xa
+ add r9, r9, #0x100
+ blt _020D87C0
+ ldr r1, _020D8830 ; =WmReceiveFifo
+ mov r0, #0xa
+ bl PXI_SetFifoRecvCallback
+ ldr r1, _020D881C ; =0x021D5E28
+ mov r2, #0x1
+ mov r0, r4
+ strh r2, [r1, #0x0]
+ bl OS_RestoreInterrupts
+_020D8810: ; 0x020D8810
+ mov r0, #0x0
+ ldmia sp!, {r4-r10,lr}
+ bx lr
+ .balign 4
+_020D881C: .word 0x021D5E28
+_020D8820: .word 0x021D5E2C
+_020D8824: .word 0x021D5E30
+_020D8828: .word 0x021D5E50
+_020D882C: .word 0x021D5EC0
+_020D8830: .word WmReceiveFifo
+
+ arm_func_start WM_Init
+WM_Init:
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ mov r2, #0xf00
+ bl WmInitCore
+_020D8844: ; 0x020D8844
+ cmp r0, #0x0
+ ldreq r1, _020D8864 ; =0x021D5E2C
+ moveq r2, #0x0
+ ldreq r1, [r1, #0x0]
+ streqh r2, [r1, #0x16]
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+ .balign 4
+_020D8864: .word 0x021D5E2C
+
+ arm_func_start WM_GetNextTgid
+WM_GetNextTgid: ; 0x020D8868
+ stmdb sp!, {lr}
+ sub sp, sp, #0xc
+
+ arm_func_start FUN_020D8870
+FUN_020D8870: ; 0x020D8870
+ ldr r0, _020D88DC ; =0x02106A54
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x10000
+ bne _020D88B0
+ bl RTC_Init
+_020D8884: ; 0x020D8884
+ add r0, sp, #0x0
+ bl RTC_GetTime
+_020D888C: ; 0x020D888C
+ cmp r0, #0x0
+ bne _020D88B0
+ ldr r2, [sp, #0x8]
+ ldr r0, [sp, #0x4]
+ ldr r1, _020D88DC ; =0x02106A54
+ add r0, r2, r0, lsl #0x8
+ mov r0, r0, lsl #0x10
+ mov r0, r0, lsr #0x10
+ str r0, [r1, #0x0]
+_020D88B0:
+ ldr r1, _020D88DC ; =0x02106A54
+ ldr r0, [r1, #0x0]
+ add r0, r0, #0x1
+ mov r0, r0, lsl #0x10
+ mov r2, r0, lsr #0x10
+ mov r0, r2, lsl #0x10
+ str r2, [r1, #0x0]
+ mov r0, r0, lsr #0x10
+ add sp, sp, #0xc
+ ldmia sp!, {lr}
+ bx lr
+ .balign 4
+_020D88DC: .word 0x02106A54
+
+ arm_func_start WM_GetOtherElements
+WM_GetOtherElements: ; 0x020D88E0
+ stmdb sp!, {r4-r6,lr}
+ sub sp, sp, #0x88
+ ldrh r2, [r1, #0x3c]
+ mov lr, r0
+ cmp r2, #0x0
+ beq _020D892C
+ mov r0, #0x0
+ add r5, sp, #0x0
+ strb r0, [sp, #0x0]
+ mov r4, #0x8
+_020D8908:
+ ldmia r5!, {r0-r3}
+ stmia lr!, {r0-r3}
+ subs r4, r4, #0x1
+ bne _020D8908
+ ldr r0, [r5, #0x0]
+ add sp, sp, #0x88
+ str r0, [lr, #0x0]
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+_020D892C:
+ ldrh r0, [r1, #0x3e]
+ strb r0, [sp, #0x0]
+ ldrb r0, [sp, #0x0]
+ cmp r0, #0x0
+ bne _020D896C
+ add r5, sp, #0x0
+ mov r4, #0x8
+_020D8948:
+ ldmia r5!, {r0-r3}
+ stmia lr!, {r0-r3}
+ subs r4, r4, #0x1
+ bne _020D8948
+ ldr r0, [r5, #0x0]
+ add sp, sp, #0x88
+ str r0, [lr, #0x0]
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+_020D896C:
+ cmp r0, #0x10
+ movhi r0, #0x10
+ strhib r0, [sp, #0x0]
+ ldrh r2, [r1, #0x0]
+ ldrb r3, [sp, #0x0]
+ mov r0, #0x0
+ mov r2, r2, lsl #0x1
+ sub r4, r2, #0x40
+ cmp r3, #0x0
+ add r3, r1, #0x40
+ mov r2, r0
+ and r1, r4, #0xff
+ ble _020D8A20
+ add r12, sp, #0x0
+_020D89A4:
+ ldrb r5, [r3, #0x0]
+ add r6, r12, r2, lsl #0x3
+ add r4, r3, #0x2
+ strb r5, [r6, #0x4]
+ ldrb r5, [r3, #0x1]
+ strb r5, [r6, #0x5]
+ str r4, [r6, #0x8]
+ ldrb r4, [r6, #0x5]
+ add r4, r4, #0x2
+ and r5, r4, #0xff
+ add r0, r0, r5
+ and r0, r0, #0xff
+ cmp r0, r1
+ bls _020D8A0C
+ mov r0, #0x0
+ strb r0, [sp, #0x0]
+ mov r4, #0x8
+_020D89E8:
+ ldmia r12!, {r0-r3}
+ stmia lr!, {r0-r3}
+ subs r4, r4, #0x1
+ bne _020D89E8
+ ldr r0, [r12, #0x0]
+ add sp, sp, #0x88
+ str r0, [lr, #0x0]
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+_020D8A0C:
+ ldrb r4, [sp, #0x0]
+ add r2, r2, #0x1
+ add r3, r3, r5
+ cmp r2, r4
+ blt _020D89A4
+_020D8A20:
+ add r4, sp, #0x0
+ mov r12, #0x8
+_020D8A28:
+ ldmia r4!, {r0-r3}
+ stmia lr!, {r0-r3}
+ subs r12, r12, #0x1
+ bne _020D8A28
+ ldr r0, [r4, #0x0]
+ str r0, [lr, #0x0]
+ add sp, sp, #0x88
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+
+ arm_func_start WM_GetDispersionScanPeriod
+WM_GetDispersionScanPeriod: ; 0x020D8A4C
+ stmdb sp!, {lr}
+ sub sp, sp, #0xc
+ add r0, sp, #0x0
+ bl OS_GetMacAddress
+ mov r2, #0x0
+ add r1, sp, #0x0
+ mov r3, r2
+_020D8A68:
+ ldrb r0, [r1, #0x0]
+ add r2, r2, #0x1
+ cmp r2, #0x6
+ add r0, r3, r0
+ mov r0, r0, lsl #0x10
+ mov r3, r0, lsr #0x10
+ add r1, r1, #0x1
+ blt _020D8A68
+ ldr r0, _020D8AE4 ; =0x027FFC3C
+ mov r1, #0xd
+ ldr r0, [r0, #0x0]
+ ldr r2, _020D8AE8 ; =0x66666667
+ add r0, r3, r0
+ mov r0, r0, lsl #0x10
+ mov r3, r0, lsr #0x10
+ mul r0, r3, r1
+ mov r0, r0, lsl #0x10
+ mov r3, r0, lsr #0x10
+ smull r0, r1, r2, r3
+ mov r1, r1, asr #0x2
+ mov r0, r3, lsr #0x1f
+ ldr r2, _020D8AEC ; =0x0000000A
+ add r1, r0, r1
+ smull r0, r1, r2, r1
+ sub r1, r3, r0
+ add r0, r1, #0x1e
+ mov r0, r0, lsl #0x10
+ mov r0, r0, lsr #0x10
+ add sp, sp, #0xc
+ ldmia sp!, {lr}
+ bx lr
+ .balign 4
+_020D8AE4: .word 0x027FFC3C
+_020D8AE8: .word 0x66666667
+_020D8AEC: .word 0x0000000A
+
+ arm_func_start WM_GetDispersionBeaconPeriod
+WM_GetDispersionBeaconPeriod: ; 0x020D8AF0
+ stmdb sp!, {lr}
+ sub sp, sp, #0xc
+ add r0, sp, #0x0
+ bl OS_GetMacAddress
+ mov r2, #0x0
+ add r1, sp, #0x0
+ mov r3, r2
+_020D8B0C:
+ ldrb r0, [r1, #0x0]
+ add r2, r2, #0x1
+ cmp r2, #0x6
+ add r0, r3, r0
+ mov r0, r0, lsl #0x10
+ mov r3, r0, lsr #0x10
+ add r1, r1, #0x1
+ blt _020D8B0C
+ ldr r0, _020D8B88 ; =0x027FFC3C
+ mov r1, #0x7
+ ldr r0, [r0, #0x0]
+ ldr r2, _020D8B8C ; =0x66666667
+ add r0, r3, r0
+ mov r0, r0, lsl #0x10
+ mov r3, r0, lsr #0x10
+ mul r0, r3, r1
+ mov r0, r0, lsl #0x10
+ mov r3, r0, lsr #0x10
+ smull r0, r1, r2, r3
+ mov r1, r1, asr #0x3
+ mov r0, r3, lsr #0x1f
+ ldr r2, _020D8B90 ; =0x00000014
+ add r1, r0, r1
+ smull r0, r1, r2, r1
+ sub r1, r3, r0
+ add r0, r1, #0xc8
+ mov r0, r0, lsl #0x10
+ mov r0, r0, lsr #0x10
+ add sp, sp, #0xc
+ ldmia sp!, {lr}
+ bx lr
+ .balign 4
+_020D8B88: .word 0x027FFC3C
+_020D8B8C: .word 0x66666667
+_020D8B90: .word 0x00000014
+
+ arm_func_start WM_GetLinkLevel
+WM_GetLinkLevel: ; 0x020D8B94
+ stmdb sp!, {r4,lr}
+ bl WMi_GetSystemWork
+ mov r4, r0
+ bl WMi_CheckInitialized
+_020D8BA4: ; 0x020D8BA4
+ cmp r0, #0x0
+ movne r0, #0x0
+ ldmneia sp!, {r4,lr}
+ bxne lr
+ ldr r0, [r4, #0x4]
+ mov r1, #0x2
+ bl DC_InvalidateRange
+ ldr r2, [r4, #0x4]
+ ldrh r0, [r2, #0x0]
+ cmp r0, #0x9
+ beq _020D8BE4
+ cmp r0, #0xa
+ beq _020D8C10
+ cmp r0, #0xb
+ beq _020D8C10
+ b _020D8C2C
+_020D8BE4:
+ ldr r0, _020D8C38 ; =0x00000182
+ mov r1, #0x2
+ add r0, r2, r0
+ bl DC_InvalidateRange
+ ldr r2, [r4, #0x4]
+ add r0, r2, #0x100
+ ldrh r0, [r0, #0x82]
+ cmp r0, #0x0
+ moveq r0, #0x0
+ ldmeqia sp!, {r4,lr}
+ bxeq lr
+_020D8C10:
+ add r0, r2, #0xbc
+ mov r1, #0x2
+ bl DC_InvalidateRange
+ ldr r0, [r4, #0x4]
+ ldrh r0, [r0, #0xbc]
+ ldmia sp!, {r4,lr}
+ bx lr
+_020D8C2C:
+ mov r0, #0x0
+ ldmia sp!, {r4,lr}
+ bx lr
+ .balign 4
+_020D8C38: .word 0x00000182
+
+ arm_func_start WM_GetAllowedChannel
+WM_GetAllowedChannel: ; 0x020D8C3C
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ bl WMi_CheckInitialized
+_020D8C48: ; 0x020D8C48
+ cmp r0, #0x0
+ movne r0, #0x8000
+ ldreq r0, _020D8C64 ; =0x027FFCFA
+ ldreqh r0, [r0, #0x0]
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+ .balign 4
+_020D8C64: .word 0x027FFCFA
+
+ arm_func_start WM_ReadMPData
+WM_ReadMPData: ; 0x020D8C68
+ stmdb sp!, {r4-r6,lr}
+ sub sp, sp, #0x40
+ mov r5, r0
+ mov r4, r1
+ bl WMi_GetSystemWork
+ mov r6, r0
+ bl WMi_CheckInitialized
+_020D8C84: ; 0x020D8C84
+ cmp r0, #0x0
+ addne sp, sp, #0x40
+ movne r0, #0x0
+ ldmneia sp!, {r4-r6,lr}
+ bxne lr
+ cmp r4, #0x1
+ blo _020D8CA8
+ cmp r4, #0xf
+ bls _020D8CB8
+_020D8CA8:
+ add sp, sp, #0x40
+ mov r0, #0x0
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+_020D8CB8:
+ ldr r2, [r6, #0x4]
+ ldr r0, _020D8D68 ; =0x00000182
+ mov r1, #0x2
+ add r0, r2, r0
+ bl DC_InvalidateRange
+ ldr r0, [r6, #0x4]
+ mov r1, #0x1
+ add r0, r0, #0x100
+ ldrh r2, [r0, #0x82]
+ mov r0, r1, lsl r4
+ ands r0, r2, r0
+ addeq sp, sp, #0x40
+ moveq r0, #0x0
+ ldmeqia sp!, {r4-r6,lr}
+ bxeq lr
+ ldrh r0, [r5, #0x4]
+ cmp r0, #0x0
+ addeq sp, sp, #0x40
+ moveq r0, #0x0
+ ldmeqia sp!, {r4-r6,lr}
+ bxeq lr
+ add r0, r5, #0xa
+ str r0, [sp, #0x0]
+ mov r3, #0x0
+ add r2, sp, #0x0
+_020D8D1C:
+ ldr r0, [r2, r3, lsl #0x2]
+ ldrh r1, [r0, #0x4]
+ cmp r4, r1
+ addeq sp, sp, #0x40
+ ldmeqia sp!, {r4-r6,lr}
+ bxeq lr
+ add r3, r3, #0x1
+ sub r0, r3, #0x1
+ ldrh r1, [r5, #0x6]
+ ldr r0, [r2, r0, lsl #0x2]
+ add r0, r1, r0
+ str r0, [r2, r3, lsl #0x2]
+ ldrh r0, [r5, #0x4]
+ cmp r3, r0
+ blt _020D8D1C
+ mov r0, #0x0
+ add sp, sp, #0x40
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+ .balign 4
+_020D8D68: .word 0x00000182
+
+ arm_func_start WM_GetMPReceiveBufferSize
+WM_GetMPReceiveBufferSize:
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ bl WMi_GetSystemWork
+ mov r4, r0
+ mov r0, #0x2
+ mov r1, #0x7
+ mov r2, #0x8
+ bl WMi_CheckStateEx
+_020D8D8C: ; 0x020D8D8C
+ cmp r0, #0x0
+ addne sp, sp, #0x4
+ movne r0, #0x0
+ ldmneia sp!, {r4-r5,lr}
+ bxne lr
+ ldr r0, [r4, #0x4]
+ mov r1, #0x4
+ add r0, r0, #0xc
+ bl DC_InvalidateRange
+ ldr r1, [r4, #0x4]
+ ldr r0, [r1, #0xc]
+ cmp r0, #0x1
+ addeq sp, sp, #0x4
+ moveq r0, #0x0
+ ldmeqia sp!, {r4-r5,lr}
+ bxeq lr
+ add r0, r1, #0x188
+ mov r1, #0x2
+ bl DC_InvalidateRange
+ ldr r1, [r4, #0x4]
+ add r0, r1, #0x100
+ ldrh r0, [r0, #0x88]
+ cmp r0, #0x0
+ moveq r5, #0x1
+ add r0, r1, #0x3e
+ mov r1, #0x2
+ movne r5, #0x0
+ bl DC_InvalidateRange
+ cmp r5, #0x1
+ ldr r0, [r4, #0x4]
+ addne sp, sp, #0x4
+ ldrh r5, [r0, #0x3e]
+ addne r0, r5, #0x51
+ bicne r0, r0, #0x1f
+ movne r0, r0, lsl #0x1
+ ldmneia sp!, {r4-r5,lr}
+ bxne lr
+ add r0, r0, #0xf8
+ mov r1, #0x2
+ bl DC_InvalidateRange
+ ldr r0, [r4, #0x4]
+ add r1, r5, #0xc
+ ldrh r0, [r0, #0xf8]
+ mul r0, r1, r0
+ add r0, r0, #0x29
+ bic r0, r0, #0x1f
+ mov r0, r0, lsl #0x1
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,lr}
+ bx lr
+
+ arm_func_start WM_GetMPSendBufferSize
+WM_GetMPSendBufferSize:
+ stmdb sp!, {r4,lr}
+ bl WMi_GetSystemWork
+ mov r4, r0
+ mov r0, #0x2
+ mov r1, #0x7
+ mov r2, #0x8
+ bl WMi_CheckStateEx
+_020D8E70: ; 0x020D8E70
+ cmp r0, #0x0
+ movne r0, #0x0
+ ldmneia sp!, {r4,lr}
+ bxne lr
+ ldr r0, [r4, #0x4]
+ mov r1, #0x4
+ add r0, r0, #0xc
+ bl DC_InvalidateRange
+ ldr r1, [r4, #0x4]
+ ldr r0, [r1, #0xc]
+ cmp r0, #0x1
+ moveq r0, #0x0
+ ldmeqia sp!, {r4,lr}
+ bxeq lr
+ add r0, r1, #0x3c
+ mov r1, #0x4
+ bl DC_InvalidateRange
+ ldr r0, [r4, #0x4]
+ ldrh r0, [r0, #0x3c]
+ add r0, r0, #0x1f
+ bic r0, r0, #0x1f
+ ldmia sp!, {r4,lr}
+ bx lr
+
+ arm_func_start WM_ReadStatus
+WM_ReadStatus: ; 0x020D8ECC
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ mov r5, r0
+ bl WMi_GetSystemWork
+ mov r4, r0
+ bl WMi_CheckInitialized
+_020D8EE4: ; 0x020D8EE4
+ cmp r0, #0x0
+ addne sp, sp, #0x4
+ ldmneia sp!, {r4-r5,lr}
+ bxne lr
+ cmp r5, #0x0
+ addeq sp, sp, #0x4
+ moveq r0, #0x6
+ ldmeqia sp!, {r4-r5,lr}
+ bxeq lr
+ ldr r0, [r4, #0x4]
+ mov r1, #0x7c0
+ bl DC_InvalidateRange
+ ldr r0, [r4, #0x4]
+ mov r1, r5
+ mov r2, #0x7c0
+ bl MIi_CpuCopyFast
+_020D8F24: ; 0x020D8F24
+ mov r0, #0x0
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,lr}
+ bx lr
+
+ arm_func_start WM_SetPortCallback
+WM_SetPortCallback:
+ stmdb sp!, {r4-r8,lr}
+ sub sp, sp, #0x48
+ movs r5, r1
+ mov r6, r0
+ mov r4, r2
+ beq _020D8F9C
+ add r0, sp, #0x0
+ mov r1, #0x0
+ mov r2, #0x44
+ bl MI_CpuFill8
+ mov r3, #0x0
+ ldr r1, _020D9010 ; =0x0000FFFF
+ mov r7, #0x82
+ mov r2, #0x19
+ add r0, sp, #0x14
+ strh r7, [sp, #0x0]
+ strh r3, [sp, #0x2]
+ strh r2, [sp, #0x4]
+ strh r6, [sp, #0x6]
+ str r3, [sp, #0x8]
+ str r3, [sp, #0xc]
+ strh r3, [sp, #0x10]
+ strh r1, [sp, #0x1a]
+ str r4, [sp, #0x1c]
+ strh r3, [sp, #0x12]
+ bl OS_GetMacAddress
+_020D8F9C:
+ bl OS_DisableInterrupts
+ mov r8, r0
+ bl WMi_CheckInitialized
+ movs r7, r0
+ beq _020D8FC8
+ mov r0, r8
+ bl OS_RestoreInterrupts
+ add sp, sp, #0x48
+ mov r0, r7
+ ldmia sp!, {r4-r8,lr}
+ bx lr
+_020D8FC8:
+ bl WMi_GetSystemWork
+ add r0, r0, r6, lsl #0x2
+ str r5, [r0, #0xcc]
+ str r4, [r0, #0x10c]
+ cmp r5, #0x0
+ beq _020D8FF8
+ bl WM_GetConnectedAIDs
+ strh r0, [sp, #0x22]
+ bl WM_GetAID
+ strh r0, [sp, #0x20]
+ add r0, sp, #0x0
+ blx r5
+_020D8FF8:
+ mov r0, r8
+ bl OS_RestoreInterrupts
+_020D9000: ; 0x020D9000
+ mov r0, #0x0
+ add sp, sp, #0x48
+ ldmia sp!, {r4-r8,lr}
+ bx lr
+ .balign 4
+_020D9010: .word 0x0000FFFF
+
+ arm_func_start WM_SetIndCallback
+WM_SetIndCallback: ; 0x020D9014
+ stmdb sp!, {r4-r6,lr}
+ mov r6, r0
+ bl OS_DisableInterrupts
+ mov r5, r0
+ bl WMi_CheckInitialized
+ movs r4, r0
+ beq _020D9044
+ mov r0, r5
+ bl OS_RestoreInterrupts
+ mov r0, r4
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+_020D9044:
+ bl WMi_GetSystemWork
+ str r6, [r0, #0xc8]
+ mov r0, r5
+ bl OS_RestoreInterrupts
+_020D9054: ; 0x020D9054
+ mov r0, #0x0
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+
+ arm_func_start WM_Disconnect
+WM_Disconnect: ; 0x020D9060
+ stmdb sp!, {r4-r6,lr}
+ sub sp, sp, #0x8
+ mov r6, r0
+ mov r5, r1
+ bl WMi_GetSystemWork
+ mov r1, #0xa
+ mov r4, r0
+ str r1, [sp, #0x0]
+ mov r12, #0xb
+ mov r0, #0x5
+ mov r1, #0x7
+ mov r2, #0x9
+ mov r3, #0x8
+ str r12, [sp, #0x4]
+ bl WMi_CheckStateEx
+_020D909C: ; 0x020D909C
+ cmp r0, #0x0
+ addne sp, sp, #0x8
+ ldmneia sp!, {r4-r6,lr}
+ bxne lr
+ ldr r2, [r4, #0x4]
+ ldrh r0, [r2, #0x0]
+ cmp r0, #0x7
+ beq _020D90C4
+ cmp r0, #0x9
+ bne _020D9120
+_020D90C4:
+ cmp r5, #0x1
+ blo _020D90D4
+ cmp r5, #0xf
+ bls _020D90E4
+_020D90D4:
+ add sp, sp, #0x8
+ mov r0, #0x6
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+_020D90E4:
+ ldr r0, _020D9164 ; =0x00000182
+ mov r1, #0x2
+ add r0, r2, r0
+ bl DC_InvalidateRange
+ ldr r0, [r4, #0x4]
+ mov r1, #0x1
+ add r0, r0, #0x100
+ ldrh r2, [r0, #0x82]
+ mov r0, r1, lsl r5
+ ands r0, r2, r0
+ bne _020D9134
+ add sp, sp, #0x8
+ mov r0, #0x7
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+_020D9120:
+ cmp r5, #0x0
+ addne sp, sp, #0x8
+ movne r0, #0x6
+ ldmneia sp!, {r4-r6,lr}
+ bxne lr
+_020D9134:
+ mov r1, r6
+ mov r0, #0xd
+ bl WMi_SetCallbackTable
+ mov r1, #0x1
+ mov r2, r1, lsl r5
+ mov r0, #0xd
+ bl WMi_SendCommand
+_020D9150: ; 0x020D9150
+ cmp r0, #0x0
+ moveq r0, #0x2
+ add sp, sp, #0x8
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+ .balign 4
+_020D9164: .word 0x00000182
+
+ arm_func_start WM_StartConnectEx
+WM_StartConnectEx: ; 0x020D9168
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0x2c
+ mov r7, r0
+ mov r6, r1
+ mov r0, #0x1
+ mov r1, #0x2
+ mov r5, r2
+ mov r4, r3
+ bl WMi_CheckStateEx
+_020D918C: ; 0x020D918C
+ cmp r0, #0x0
+ addne sp, sp, #0x2c
+ ldmneia sp!, {r4-r7,lr}
+ bxne lr
+ cmp r6, #0x0
+ addeq sp, sp, #0x2c
+ moveq r0, #0x6
+ ldmeqia sp!, {r4-r7,lr}
+ bxeq lr
+ ldrh r1, [r6, #0x0]
+ mov r0, r6
+ mov r1, r1, lsl #0x1
+ bl DC_StoreRange
+ bl WMi_GetSystemWork
+ add r1, r0, #0x100
+ mov r2, #0x0
+ strh r2, [r1, #0x50]
+ str r2, [r0, #0x14c]
+ mov r1, r7
+ mov r0, #0xc
+ bl WMi_SetCallbackTable
+ mov r0, #0xc
+ strh r0, [sp, #0x0]
+ str r6, [sp, #0x4]
+ cmp r5, #0x0
+ beq _020D9208
+ add r1, sp, #0x8
+ mov r0, r5
+ mov r2, #0x18
+ bl MI_CpuCopy8
+ b _020D9218
+_020D9208:
+ add r0, sp, #0x8
+ mov r1, #0x0
+ mov r2, #0x18
+ bl MI_CpuFill8
+_020D9218:
+ ldrh r2, [sp, #0x40]
+ add r0, sp, #0x0
+ mov r1, #0x28
+ str r4, [sp, #0x20]
+ strh r2, [sp, #0x26]
+ bl WMi_SendCommandDirect
+_020D9230: ; 0x020D9230
+ cmp r0, #0x0
+ moveq r0, #0x2
+ add sp, sp, #0x2c
+ ldmia sp!, {r4-r7,lr}
+ bx lr
+
+ arm_func_start WM_EndScan
+WM_EndScan: ; 0x020D9244
+ stmdb sp!, {r4,lr}
+ mov r4, r0
+ mov r0, #0x1
+ mov r1, #0x5
+ bl WMi_CheckStateEx
+_020D9258: ; 0x020D9258
+ cmp r0, #0x0
+ ldmneia sp!, {r4,lr}
+ bxne lr
+ mov r1, r4
+ mov r0, #0xb
+ bl WMi_SetCallbackTable
+ mov r0, #0xb
+ mov r1, #0x0
+ bl WMi_SendCommand
+_020D927C: ; 0x020D927C
+ cmp r0, #0x0
+ moveq r0, #0x2
+ ldmia sp!, {r4,lr}
+ bx lr
+
+ arm_func_start WM_StartScanEx
+WM_StartScanEx: ; 0x020D928C
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x3c
+ mov r5, r0
+ mov r0, #0x3
+ mov r4, r1
+ mov r2, r0
+ mov r1, #0x2
+ mov r3, #0x5
+ bl WMi_CheckStateEx
+_020D92B0: ; 0x020D92B0
+ cmp r0, #0x0
+ addne sp, sp, #0x3c
+ ldmneia sp!, {r4-r5,lr}
+ bxne lr
+ cmp r4, #0x0
+ addeq sp, sp, #0x3c
+ moveq r0, #0x6
+ ldmeqia sp!, {r4-r5,lr}
+ bxeq lr
+ ldr r0, [r4, #0x0]
+ cmp r0, #0x0
+ addeq sp, sp, #0x3c
+ moveq r0, #0x6
+ ldmeqia sp!, {r4-r5,lr}
+ bxeq lr
+ ldrh r0, [r4, #0x4]
+ cmp r0, #0x400
+ addhi sp, sp, #0x3c
+ movhi r0, #0x6
+ ldmhiia sp!, {r4-r5,lr}
+ bxhi lr
+ ldrh r0, [r4, #0x12]
+ cmp r0, #0x20
+ addhi sp, sp, #0x3c
+ movhi r0, #0x6
+ ldmhiia sp!, {r4-r5,lr}
+ bxhi lr
+ ldrh r1, [r4, #0x10]
+ cmp r1, #0x0
+ beq _020D934C
+ cmp r1, #0x1
+ beq _020D934C
+ cmp r1, #0x2
+ beq _020D934C
+ cmp r1, #0x3
+ addne sp, sp, #0x3c
+ movne r0, #0x6
+ ldmneia sp!, {r4-r5,lr}
+ bxne lr
+_020D934C:
+ ldr r0, _020D9408 ; =0x0000FFFE
+ add r0, r1, r0
+ mov r0, r0, lsl #0x10
+ mov r0, r0, lsr #0x10
+ cmp r0, #0x1
+ bhi _020D937C
+ ldrh r0, [r4, #0x34]
+ cmp r0, #0x20
+ addhi sp, sp, #0x3c
+ movhi r0, #0x6
+ ldmhiia sp!, {r4-r5,lr}
+ bxhi lr
+_020D937C:
+ mov r1, r5
+ mov r0, #0x26
+ bl WMi_SetCallbackTable
+ mov r0, #0x26
+ strh r0, [sp, #0x0]
+ ldrh r2, [r4, #0x6]
+ add r1, sp, #0xc
+ add r0, r4, #0xa
+ strh r2, [sp, #0x2]
+ ldr r3, [r4, #0x0]
+ mov r2, #0x6
+ str r3, [sp, #0x4]
+ ldrh r3, [r4, #0x4]
+ strh r3, [sp, #0x8]
+ ldrh r3, [r4, #0x8]
+ strh r3, [sp, #0xa]
+ bl MI_CpuCopy8
+ ldrh r2, [r4, #0x10]
+ add r1, sp, #0x16
+ add r0, r4, #0x14
+ strh r2, [sp, #0x12]
+ ldrh r3, [r4, #0x34]
+ mov r2, #0x20
+ strh r3, [sp, #0x36]
+ ldrh r3, [r4, #0x12]
+ strh r3, [sp, #0x14]
+ bl MI_CpuCopy8
+_020D93E8: ; 0x020D93E8
+ add r0, sp, #0x0
+ mov r1, #0x3c
+ bl WMi_SendCommandDirect
+_020D93F4: ; 0x020D93F4
+ cmp r0, #0x0
+ moveq r0, #0x2
+ add sp, sp, #0x3c
+ ldmia sp!, {r4-r5,lr}
+ bx lr
+ .balign 4
+_020D9408: .word 0x0000FFFE
+
+ arm_func_start WM_StartScan
+WM_StartScan: ; 0x020D940C
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x14
+ mov r5, r0
+ mov r0, #0x3
+ mov r4, r1
+ mov r2, r0
+ mov r1, #0x2
+ mov r3, #0x5
+ bl WMi_CheckStateEx
+_020D9430: ; 0x020D9430
+ cmp r0, #0x0
+ addne sp, sp, #0x14
+ ldmneia sp!, {r4-r5,lr}
+ bxne lr
+ cmp r4, #0x0
+ addeq sp, sp, #0x14
+ moveq r0, #0x6
+ ldmeqia sp!, {r4-r5,lr}
+ bxeq lr
+ ldr r0, [r4, #0x0]
+ cmp r0, #0x0
+ addeq sp, sp, #0x14
+ moveq r0, #0x6
+ ldmeqia sp!, {r4-r5,lr}
+ bxeq lr
+ ldrh r0, [r4, #0x4]
+ cmp r0, #0x1
+ blo _020D9480
+ cmp r0, #0xe
+ bls _020D9490
+_020D9480:
+ add sp, sp, #0x14
+ mov r0, #0x6
+ ldmia sp!, {r4-r5,lr}
+ bx lr
+_020D9490:
+ mov r1, r5
+ mov r0, #0xa
+ bl WMi_SetCallbackTable
+ mov r0, #0xa
+ strh r0, [sp, #0x0]
+ ldrh r2, [r4, #0x4]
+ add r0, sp, #0x0
+ mov r1, #0x10
+ strh r2, [sp, #0x2]
+ ldr r2, [r4, #0x0]
+ str r2, [sp, #0x4]
+ ldrh r2, [r4, #0x6]
+ strh r2, [sp, #0x8]
+ ldrb r2, [r4, #0x8]
+ strb r2, [sp, #0xa]
+ ldrb r2, [r4, #0x9]
+ strb r2, [sp, #0xb]
+ ldrb r2, [r4, #0xa]
+ strb r2, [sp, #0xc]
+ ldrb r2, [r4, #0xb]
+ strb r2, [sp, #0xd]
+ ldrb r2, [r4, #0xc]
+ strb r2, [sp, #0xe]
+ ldrb r2, [r4, #0xd]
+ strb r2, [sp, #0xf]
+ bl WMi_SendCommandDirect
+_020D94F8: ; 0x020D94F8
+ cmp r0, #0x0
+ moveq r0, #0x2
+ add sp, sp, #0x14
+ ldmia sp!, {r4-r5,lr}
+ bx lr
+
+ arm_func_start WM_EndParent
+WM_EndParent: ; 0x020D950C
+ stmdb sp!, {r4,lr}
+ mov r4, r0
+ mov r0, #0x1
+ mov r1, #0x7
+ bl WMi_CheckStateEx
+_020D9520: ; 0x020D9520
+ cmp r0, #0x0
+ ldmneia sp!, {r4,lr}
+ bxne lr
+ mov r1, r4
+ mov r0, #0x9
+ bl WMi_SetCallbackTable
+ mov r0, #0x9
+ mov r1, #0x0
+ bl WMi_SendCommand
+_020D9544: ; 0x020D9544
+ cmp r0, #0x0
+ moveq r0, #0x2
+ ldmia sp!, {r4,lr}
+ bx lr
+
+ arm_func_start WM_StartParent
+WM_StartParent: ; 0x020D9554
+ ldr ip, _020D9560 ; =FUN_020D9564
+ mov r1, #0x1
+ bx r12
+ .balign 4
+_020D9560: .word FUN_020D9564
+
+ arm_func_start FUN_020D9564
+FUN_020D9564: ; 0x020D9564
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ mov r5, r0
+ mov r4, r1
+ mov r0, #0x1
+ mov r1, #0x2
+ bl WMi_CheckStateEx
+_020D9580: ; 0x020D9580
+ cmp r0, #0x0
+ addne sp, sp, #0x4
+ ldmneia sp!, {r4-r5,lr}
+ bxne lr
+ bl WMi_GetSystemWork
+ add r1, r0, #0x100
+ mov r2, #0x0
+ strh r2, [r1, #0x50]
+ str r2, [r0, #0x14c]
+ mov r1, r5
+ mov r0, #0x8
+ bl WMi_SetCallbackTable
+ mov r2, r4
+ mov r0, #0x8
+ mov r1, #0x1
+ bl WMi_SendCommand
+_020D95C0: ; 0x020D95C0
+ cmp r0, #0x0
+ moveq r0, #0x2
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,lr}
+ bx lr
+
+ arm_func_start WmCheckParentParameter
+WmCheckParentParameter: ; 0x020D95D4
+ ldrh r1, [r0, #0x4]
+ cmp r1, #0x70
+ movhi r0, #0x0
+ bxhi lr
+ ldrh r1, [r0, #0x18]
+ cmp r1, #0xa
+ blo _020D95F8
+ cmp r1, #0x3e8
+ bls _020D9600
+_020D95F8:
+ mov r0, #0x0
+ bx lr
+_020D9600:
+ ldrh r0, [r0, #0x32]
+ cmp r0, #0x1
+ blo _020D9614
+ cmp r0, #0xe
+ bls _020D961C
+_020D9614:
+ mov r0, #0x0
+ bx lr
+_020D961C:
+ mov r0, #0x1
+ bx lr
+
+ arm_func_start WM_SetParentParameter
+WM_SetParentParameter: ; 0x020D9624
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ mov r5, r0
+ mov r4, r1
+ mov r0, #0x1
+ mov r1, #0x2
+ bl WMi_CheckStateEx
+_020D9640: ; 0x020D9640
+ cmp r0, #0x0
+ addne sp, sp, #0x4
+ ldmneia sp!, {r4-r5,lr}
+ bxne lr
+ cmp r4, #0x0
+ addeq sp, sp, #0x4
+ moveq r0, #0x6
+ ldmeqia sp!, {r4-r5,lr}
+ bxeq lr
+ ldrh r0, [r4, #0x4]
+ cmp r0, #0x0
+ beq _020D9688
+ ldr r0, [r4, #0x0]
+ cmp r0, #0x0
+ addeq sp, sp, #0x4
+ moveq r0, #0x6
+ ldmeqia sp!, {r4-r5,lr}
+ bxeq lr
+_020D9688:
+ ldrh r1, [r4, #0x14]
+ ldrh r0, [r4, #0x34]
+ cmp r1, #0x0
+ movne r2, #0x2a
+ moveq r2, #0x0
+ add r0, r0, r2
+ cmp r0, #0x200
+ bgt _020D96C4
+ ldrh r0, [r4, #0x36]
+ cmp r1, #0x0
+ movne r1, #0x6
+ moveq r1, #0x0
+ add r0, r0, r1
+ cmp r0, #0x200
+ ble _020D96D4
+_020D96C4:
+ add sp, sp, #0x4
+ mov r0, #0x6
+ ldmia sp!, {r4-r5,lr}
+ bx lr
+_020D96D4:
+ mov r0, r4
+ bl WmCheckParentParameter
+ mov r1, r5
+ mov r0, #0x7
+ bl WMi_SetCallbackTable
+ mov r0, r4
+ mov r1, #0x40
+ bl DC_StoreRange
+ ldrh r1, [r4, #0x4]
+ cmp r1, #0x0
+ beq _020D9708
+ ldr r0, [r4, #0x0]
+ bl DC_StoreRange
+_020D9708:
+ mov r2, r4
+ mov r0, #0x7
+ mov r1, #0x1
+ bl WMi_SendCommand
+_020D9718: ; 0x020D9718
+ cmp r0, #0x0
+ moveq r0, #0x2
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,lr}
+ bx lr
+
+ arm_func_start WM_End
+WM_End: ; 0x020D972C
+ stmdb sp!, {r4,lr}
+ mov r4, r0
+ mov r0, #0x1
+ mov r1, #0x2
+ bl WMi_CheckStateEx
+_020D9740: ; 0x020D9740
+ cmp r0, #0x0
+ ldmneia sp!, {r4,lr}
+ bxne lr
+ mov r1, r4
+ mov r0, #0x2
+ bl WMi_SetCallbackTable
+ mov r0, #0x2
+ mov r1, #0x0
+ bl WMi_SendCommand
+_020D9764: ; 0x020D9764
+ cmp r0, #0x0
+ moveq r0, #0x2
+ ldmia sp!, {r4,lr}
+ bx lr
+
+ arm_func_start WM_Reset
+WM_Reset: ; 0x020D9774
+ stmdb sp!, {r4,lr}
+ mov r4, r0
+ bl WMi_CheckIdle
+_020D9780: ; 0x020D9780
+ cmp r0, #0x0
+ ldmneia sp!, {r4,lr}
+ bxne lr
+ mov r1, r4
+ mov r0, #0x1
+ bl WMi_SetCallbackTable
+ mov r0, #0x1
+ mov r1, #0x0
+ bl WMi_SendCommand
+_020D97A4: ; 0x020D97A4
+ cmp r0, #0x0
+ moveq r0, #0x2
+ ldmia sp!, {r4,lr}
+ bx lr
+
+ arm_func_start WM_Initialize
+WM_Initialize: ; 0x020D97B4
+ stmdb sp!, {r4,lr}
+ sub sp, sp, #0x8
+ mov r4, r1
+ mov r1, r2
+ bl WM_Init
+_020D97C8: ; 0x020D97C8
+ cmp r0, #0x0
+ addne sp, sp, #0x8
+ ldmneia sp!, {r4,lr}
+ bxne lr
+ mov r1, r4
+ mov r0, #0x0
+ bl WMi_SetCallbackTable
+ bl WMi_GetSystemWork
+ mov r3, r0
+ ldr r1, [r3, #0x10]
+ mov r0, #0x0
+ str r1, [sp, #0x0]
+ ldr r2, [r3, #0x0]
+ ldr r3, [r3, #0x4]
+ mov r1, #0x3
+ bl WMi_SendCommand
+_020D9808: ; 0x020D9808
+ cmp r0, #0x0
+ moveq r0, #0x2
+ add sp, sp, #0x8
+ ldmia sp!, {r4,lr}
+ bx lr
+
+ arm_func_start WM_PowerOff
+WM_PowerOff: ; 0x020D981C
+ stmdb sp!, {r4,lr}
+ mov r4, r0
+ mov r0, #0x1
+ mov r1, #0x2
+ bl WMi_CheckStateEx
+_020D9830: ; 0x020D9830
+ cmp r0, #0x0
+ ldmneia sp!, {r4,lr}
+ bxne lr
+ mov r1, r4
+ mov r0, #0x6
+ bl WMi_SetCallbackTable
+ mov r0, #0x6
+ mov r1, #0x0
+ bl WMi_SendCommand
+_020D9854: ; 0x020D9854
+ cmp r0, #0x0
+ moveq r0, #0x2
+ ldmia sp!, {r4,lr}
+ bx lr
+
+ arm_func_start WM_PowerOn
+WM_PowerOn: ; 0x020D9864
+ stmdb sp!, {r4,lr}
+ mov r4, r0
+ mov r0, #0x1
+ mov r1, r0
+ bl WMi_CheckStateEx
+_020D9878: ; 0x020D9878
+ cmp r0, #0x0
+ ldmneia sp!, {r4,lr}
+ bxne lr
+ mov r1, r4
+ mov r0, #0x5
+ bl WMi_SetCallbackTable
+ mov r0, #0x5
+ mov r1, #0x0
+ bl WMi_SendCommand
+_020D989C: ; 0x020D989C
+ cmp r0, #0x0
+ moveq r0, #0x2
+ ldmia sp!, {r4,lr}
+ bx lr
+
+ arm_func_start WM_Disable
+WM_Disable: ; 0x020D98AC
+ stmdb sp!, {r4,lr}
+ mov r4, r0
+ mov r0, #0x1
+ mov r1, r0
+ bl WMi_CheckStateEx
+_020D98C0: ; 0x020D98C0
+ cmp r0, #0x0
+ ldmneia sp!, {r4,lr}
+ bxne lr
+ mov r1, r4
+ mov r0, #0x4
+ bl WMi_SetCallbackTable
+ mov r0, #0x4
+ mov r1, #0x0
+ bl WMi_SendCommand
+_020D98E4: ; 0x020D98E4
+ cmp r0, #0x0
+ moveq r0, #0x2
+ ldmia sp!, {r4,lr}
+ bx lr
+
+ arm_func_start WM_Enable
+WM_Enable: ; 0x020D98F4
+ stmdb sp!, {r4,lr}
+ sub sp, sp, #0x8
+ mov r4, r0
+ mov r0, #0x1
+ mov r1, #0x0
+ bl WMi_CheckStateEx
+_020D990C: ; 0x020D990C
+ cmp r0, #0x0
+ addne sp, sp, #0x8
+ ldmneia sp!, {r4,lr}
+ bxne lr
+ mov r1, r4
+ mov r0, #0x3
+ bl WMi_SetCallbackTable
+ bl WMi_GetSystemWork
+ mov r3, r0
+ ldr r1, [r3, #0x10]
+ mov r0, #0x3
+ str r1, [sp, #0x0]
+ ldr r2, [r3, #0x0]
+ ldr r3, [r3, #0x4]
+ mov r1, r0
+ bl WMi_SendCommand
+_020D994C: ; 0x020D994C
+ cmp r0, #0x0
+ moveq r0, #0x2
+ add sp, sp, #0x8
+ ldmia sp!, {r4,lr}
+ bx lr
+
+ arm_func_start WM_EndMP
+WM_EndMP: ; 0x020D9960
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ mov r5, r0
+ bl WMi_GetSystemWork
+ mov r4, r0
+ mov r0, #0x2
+ mov r1, #0x9
+ mov r2, #0xa
+ bl WMi_CheckStateEx
+_020D9984: ; 0x020D9984
+ cmp r0, #0x0
+ addne sp, sp, #0x4
+ ldmneia sp!, {r4-r5,lr}
+ bxne lr
+ ldr r0, [r4, #0x4]
+ mov r1, #0x4
+ add r0, r0, #0xc
+ bl DC_InvalidateRange
+ ldr r0, [r4, #0x4]
+ ldr r0, [r0, #0xc]
+ cmp r0, #0x0
+ addeq sp, sp, #0x4
+ moveq r0, #0x3
+ ldmeqia sp!, {r4-r5,lr}
+ bxeq lr
+ mov r1, r5
+ mov r0, #0x10
+ bl WMi_SetCallbackTable
+ mov r0, #0x10
+ mov r1, #0x0
+ bl WMi_SendCommand
+_020D99D8: ; 0x020D99D8
+ cmp r0, #0x0
+ moveq r0, #0x2
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,lr}
+ bx lr
+
+ arm_func_start WM_SetMPDataToPortEx
+WM_SetMPDataToPortEx: ; 0x020D99EC
+ stmdb sp!, {r4-r9,lr}
+ sub sp, sp, #0x14
+ mov r9, r0
+ mov r8, r1
+ mov r7, r2
+ mov r6, r3
+ mov r5, #0x1
+ bl WMi_GetSystemWork
+ ldr r4, [r0, #0x4]
+ mov r0, #0x2
+ mov r1, #0x9
+ mov r2, #0xa
+ bl WMi_CheckStateEx
+_020D9A20: ; 0x020D9A20
+ cmp r0, #0x0
+ addne sp, sp, #0x14
+ ldmneia sp!, {r4-r9,lr}
+ bxne lr
+ add r0, r4, #0x3c
+ mov r1, #0x2
+ bl DC_InvalidateRange
+ add r0, r4, #0x188
+ mov r1, #0x2
+ bl DC_InvalidateRange
+ add r0, r4, #0x100
+ ldrh r0, [r0, #0x88]
+ cmp r0, #0x0
+ bne _020D9A7C
+ ldr r0, _020D9B44 ; =0x00000182
+ mov r1, #0x2
+ add r0, r4, r0
+ bl DC_InvalidateRange
+ add r2, r4, #0x100
+ add r0, r4, #0x86
+ mov r1, #0x2
+ ldrh r5, [r2, #0x82]
+ bl DC_InvalidateRange
+_020D9A7C:
+ cmp r7, #0x0
+ addeq sp, sp, #0x14
+ moveq r0, #0x6
+ ldmeqia sp!, {r4-r9,lr}
+ bxeq lr
+ cmp r5, #0x0
+ addeq sp, sp, #0x14
+ moveq r0, #0x7
+ ldmeqia sp!, {r4-r9,lr}
+ bxeq lr
+ add r0, r4, #0x7c
+ mov r1, #0x2
+ bl DC_InvalidateRange
+ ldr r0, [r4, #0x7c]
+ cmp r7, r0
+ addeq sp, sp, #0x14
+ moveq r0, #0x6
+ ldmeqia sp!, {r4-r9,lr}
+ bxeq lr
+ cmp r6, #0x200
+ addhi sp, sp, #0x14
+ movhi r0, #0x6
+ ldmhiia sp!, {r4-r9,lr}
+ bxhi lr
+ cmp r6, #0x0
+ addeq sp, sp, #0x14
+ moveq r0, #0x6
+ ldmeqia sp!, {r4-r9,lr}
+ bxeq lr
+ mov r0, r7
+ mov r1, r6
+ bl DC_StoreRange
+ ldrh r2, [sp, #0x30]
+ ldrh r1, [sp, #0x34]
+ ldrh r0, [sp, #0x38]
+ str r2, [sp, #0x0]
+ str r1, [sp, #0x4]
+ str r0, [sp, #0x8]
+ str r9, [sp, #0xc]
+ mov r2, r7
+ mov r3, r6
+ mov r0, #0xf
+ mov r1, #0x7
+ str r8, [sp, #0x10]
+ bl WMi_SendCommand
+_020D9B30: ; 0x020D9B30
+ cmp r0, #0x0
+ moveq r0, #0x2
+ add sp, sp, #0x14
+ ldmia sp!, {r4-r9,lr}
+ bx lr
+ .balign 4
+_020D9B44: .word 0x00000182
+
+ arm_func_start WM_StartMP
+WM_StartMP: ; 0x020D9B48
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0x24
+ mov r6, r1
+ mov r7, r0
+ mov r5, r2
+ add r1, sp, #0x8
+ mov r0, #0x0
+ mov r2, #0x1c
+ mov r4, r3
+ bl MIi_CpuClear32
+ ldrh r12, [sp, #0x3c]
+ mov r0, #0x3
+ str r0, [sp, #0x8]
+ ldrh lr, [sp, #0x38]
+ strh r12, [sp, #0xc]
+ strh r12, [sp, #0xe]
+ mov r0, r7
+ mov r1, r6
+ mov r2, r5
+ mov r3, r4
+ add r12, sp, #0x8
+ str lr, [sp, #0x0]
+ str r12, [sp, #0x4]
+ bl WMi_StartMP
+ add sp, sp, #0x24
+ ldmia sp!, {r4-r7,lr}
+ bx lr
+
+ arm_func_start WM_StartMPEx
+WM_StartMPEx: ; 0x020D9BB4
+ stmdb sp!, {r4-r8,lr}
+ sub sp, sp, #0x28
+ mov r6, r1
+ mov r7, r0
+ mov r5, r2
+ add r1, sp, #0x8
+ mov r0, #0x0
+ mov r2, #0x1c
+ mov r4, r3
+ bl MIi_CpuClear32
+ ldrh lr, [sp, #0x44]
+ ldr r1, [sp, #0x58]
+ ldrh r12, [sp, #0x48]
+ ldr r0, [sp, #0x54]
+ ldr r8, _020D9C54 ; =0x00001E03
+ cmp r0, #0x0
+ ldr r3, [sp, #0x4c]
+ ldr r2, [sp, #0x50]
+ strb r1, [sp, #0x22]
+ strh r12, [sp, #0x1e]
+ strb r3, [sp, #0x20]
+ strb r2, [sp, #0x21]
+ ldrh r1, [sp, #0x40]
+ str r8, [sp, #0x8]
+ orrne r0, r8, #0x4
+ strne r0, [sp, #0x8]
+ strh lr, [sp, #0xc]
+ strh lr, [sp, #0xe]
+ strneh lr, [sp, #0x10]
+ str r1, [sp, #0x0]
+ add r12, sp, #0x8
+ mov r0, r7
+ mov r1, r6
+ mov r2, r5
+ mov r3, r4
+ str r12, [sp, #0x4]
+ bl WMi_StartMP
+ add sp, sp, #0x28
+ ldmia sp!, {r4-r8,lr}
+ bx lr
+ .balign 4
+_020D9C54: .word 0x00001E03
+
+ arm_func_start WMi_StartMP
+WMi_StartMP: ; 0x020D9C58
+ stmdb sp!, {r4-r9,lr}
+ sub sp, sp, #0x34
+ mov r9, r0
+ mov r8, r1
+ mov r7, r2
+ mov r6, r3
+ bl WMi_GetSystemWork
+ ldr r5, [r0, #0x4]
+ mov r0, #0x2
+ mov r1, #0x7
+ mov r2, #0x8
+ bl WMi_CheckStateEx
+_020D9C88: ; 0x020D9C88
+ cmp r0, #0x0
+ addne sp, sp, #0x34
+ ldmneia sp!, {r4-r9,lr}
+ bxne lr
+ add r0, r5, #0x188
+ mov r1, #0x2
+ bl DC_InvalidateRange
+ add r0, r5, #0xc6
+ mov r1, #0x2
+ bl DC_InvalidateRange
+ add r0, r5, #0x100
+ ldrh r0, [r0, #0x88]
+ cmp r0, #0x0
+ beq _020D9CD8
+ ldrh r0, [r5, #0xc6]
+ cmp r0, #0x1
+ addne sp, sp, #0x34
+ movne r0, #0x3
+ ldmneia sp!, {r4-r9,lr}
+ bxne lr
+_020D9CD8:
+ add r0, r5, #0xc
+ mov r1, #0x4
+ bl DC_InvalidateRange
+ ldr r0, [r5, #0xc]
+ cmp r0, #0x1
+ addeq sp, sp, #0x34
+ moveq r0, #0x3
+ ldmeqia sp!, {r4-r9,lr}
+ bxeq lr
+ ands r0, r7, #0x3f
+ addne sp, sp, #0x34
+ movne r0, #0x6
+ ldmneia sp!, {r4-r9,lr}
+ bxne lr
+ ldrh r4, [sp, #0x50]
+ ands r0, r4, #0x1f
+ addne sp, sp, #0x34
+ movne r0, #0x6
+ ldmneia sp!, {r4-r9,lr}
+ bxne lr
+ add r0, r5, #0x9c
+ mov r1, #0x2
+ bl DC_InvalidateRange
+ ldrh r0, [r5, #0x9c]
+ cmp r0, #0x0
+ bne _020D9D70
+ bl WM_GetMPReceiveBufferSize
+_020D9D44: ; 0x020D9D44
+ cmp r7, r0
+ addlt sp, sp, #0x34
+ movlt r0, #0x6
+ ldmltia sp!, {r4-r9,lr}
+ bxlt lr
+ bl WM_GetMPSendBufferSize
+_020D9D5C: ; 0x020D9D5C
+ cmp r4, r0
+ addlt sp, sp, #0x34
+ movlt r0, #0x6
+ ldmltia sp!, {r4-r9,lr}
+ bxlt lr
+_020D9D70:
+ mov r1, r9
+ mov r0, #0xe
+ bl WMi_SetCallbackTable
+ add r1, sp, #0x0
+ mov r0, #0x0
+ mov r2, #0x30
+ bl MIi_CpuClear32
+ ldrh r3, [sp, #0x50]
+ mov r4, r7, lsr #0x1
+ mov r5, #0xe
+ ldr r0, [sp, #0x54]
+ add r1, sp, #0x14
+ mov r2, #0x1c
+ strh r5, [sp, #0x0]
+ str r8, [sp, #0x4]
+ str r4, [sp, #0x8]
+ str r6, [sp, #0xc]
+ str r3, [sp, #0x10]
+ bl MIi_CpuCopy32
+_020D9DBC: ; 0x020D9DBC
+ add r0, sp, #0x0
+ mov r1, #0x30
+ bl WMi_SendCommandDirect
+_020D9DC8: ; 0x020D9DC8
+ cmp r0, #0x0
+ moveq r0, #0x2
+ add sp, sp, #0x34
+ ldmia sp!, {r4-r9,lr}
+ bx lr
+
+ arm_func_start WM_EndDCF
+WM_EndDCF: ; 0x020D9DDC
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ mov r5, r0
+ bl WMi_GetSystemWork
+ mov r4, r0
+ mov r0, #0x1
+ mov r1, #0xb
+ bl WMi_CheckStateEx
+_020D9DFC: ; 0x020D9DFC
+ cmp r0, #0x0
+ addne sp, sp, #0x4
+ ldmneia sp!, {r4-r5,lr}
+ bxne lr
+ ldr r0, [r4, #0x4]
+ mov r1, #0x4
+ add r0, r0, #0x10
+ bl DC_InvalidateRange
+ ldr r0, [r4, #0x4]
+ ldr r0, [r0, #0x10]
+ cmp r0, #0x0
+ addeq sp, sp, #0x4
+ moveq r0, #0x3
+ ldmeqia sp!, {r4-r5,lr}
+ bxeq lr
+ mov r1, r5
+ mov r0, #0x13
+ bl WMi_SetCallbackTable
+ mov r0, #0x13
+ mov r1, #0x0
+ bl WMi_SendCommand
+_020D9E50: ; 0x020D9E50
+ cmp r0, #0x0
+ moveq r0, #0x2
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,lr}
+ bx lr
+
+ arm_func_start WM_SetDCFData
+WM_SetDCFData: ; 0x020D9E64
+ stmdb sp!, {r4-r8,lr}
+ sub sp, sp, #0x10
+ mov r7, r0
+ mov r6, r1
+ mov r5, r2
+ mov r4, r3
+ bl WMi_GetSystemWork
+ mov r8, r0
+ mov r0, #0x1
+ mov r1, #0xb
+ bl WMi_CheckStateEx
+_020D9E90: ; 0x020D9E90
+ cmp r0, #0x0
+ addne sp, sp, #0x10
+ ldmneia sp!, {r4-r8,lr}
+ bxne lr
+ ldr r0, [r8, #0x4]
+ mov r1, #0x4
+ add r0, r0, #0x10
+ bl DC_InvalidateRange
+ ldr r0, [r8, #0x4]
+ ldr r0, [r0, #0x10]
+ cmp r0, #0x0
+ addeq sp, sp, #0x10
+ moveq r0, #0x3
+ ldmeqia sp!, {r4-r8,lr}
+ bxeq lr
+ ldr r0, _020D9F3C ; =0x000005E4
+ cmp r4, r0
+ addhi sp, sp, #0x10
+ movhi r0, #0x6
+ ldmhiia sp!, {r4-r8,lr}
+ bxhi lr
+ mov r0, r5
+ mov r1, r4
+ bl DC_StoreRange
+ mov r1, r7
+ mov r0, #0x12
+ bl WMi_SetCallbackTable
+ add r1, sp, #0x8
+ mov r0, r6
+ mov r2, #0x6
+ bl MI_CpuCopy8
+ str r5, [sp, #0x0]
+ str r4, [sp, #0x4]
+ ldr r2, [sp, #0x8]
+ ldr r3, [sp, #0xc]
+ mov r0, #0x12
+ mov r1, #0x4
+ bl WMi_SendCommand
+_020D9F28: ; 0x020D9F28
+ cmp r0, #0x0
+ moveq r0, #0x2
+ add sp, sp, #0x10
+ ldmia sp!, {r4-r8,lr}
+ bx lr
+ .balign 4
+_020D9F3C: .word 0x000005E4
+
+ arm_func_start WM_StartDCF
+WM_StartDCF: ; 0x020D9F40
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0x4
+ mov r7, r0
+ mov r6, r1
+ mov r5, r2
+ bl WMi_GetSystemWork
+ mov r4, r0
+ mov r0, #0x1
+ mov r1, #0x8
+ bl WMi_CheckStateEx
+_020D9F68: ; 0x020D9F68
+ cmp r0, #0x0
+ addne sp, sp, #0x4
+ ldmneia sp!, {r4-r7,lr}
+ bxne lr
+ ldr r0, [r4, #0x4]
+ mov r1, #0x4
+ add r0, r0, #0x10
+ bl DC_InvalidateRange
+ ldr r0, [r4, #0x4]
+ ldr r0, [r0, #0x10]
+ cmp r0, #0x1
+ addeq sp, sp, #0x4
+ moveq r0, #0x3
+ ldmeqia sp!, {r4-r7,lr}
+ bxeq lr
+ cmp r5, #0x10
+ addcc sp, sp, #0x4
+ movcc r0, #0x6
+ ldmccia sp!, {r4-r7,lr}
+ bxcc lr
+ cmp r6, #0x0
+ addeq sp, sp, #0x4
+ moveq r0, #0x6
+ ldmeqia sp!, {r4-r7,lr}
+ bxeq lr
+ mov r0, r6
+ mov r1, r5
+ bl DC_StoreRange
+ mov r1, r7
+ mov r0, #0x11
+ bl WMi_SetCallbackTable
+ mov r2, r6
+ mov r3, r5
+ mov r0, #0x11
+ mov r1, #0x2
+ bl WMi_SendCommand
+_020D9FF8: ; 0x020D9FF8
+ cmp r0, #0x0
+ moveq r0, #0x2
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r7,lr}
+ bx lr
+
+ arm_func_start WmGetSharedDataAddress
+WmGetSharedDataAddress: ; 0x020DA00C
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ mov r12, #0x1
+ mov r3, r12, lsl r3
+ sub r3, r3, #0x1
+ mov r5, r0
+ and r0, r1, r3
+ mov r4, r2
+ bl MATH_CountPopulation
+ add r1, r5, #0x800
+ ldrh r1, [r1, #0x10]
+ mla r0, r1, r0, r4
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,lr}
+ bx lr
+
+ arm_func_start WM_GetSharedDataAddress
+WM_GetSharedDataAddress: ; 0x020DA048
+ stmdb sp!, {r4,lr}
+ mov r4, r1
+ ldrh lr, [r4, #0x2]
+ cmp r0, #0x0
+ mov r3, r2
+ mov r1, #0x1
+ mov r12, r1, lsl r3
+ ldrh r1, [r4, #0x0]
+ moveq r0, #0x0
+ ldmeqia sp!, {r4,lr}
+ bxeq lr
+ cmp r4, #0x0
+ moveq r0, #0x0
+ ldmeqia sp!, {r4,lr}
+ bxeq lr
+ ands r2, r1, r12
+ moveq r0, #0x0
+ ldmeqia sp!, {r4,lr}
+ bxeq lr
+ ands r2, lr, r12
+ moveq r0, #0x0
+ ldmeqia sp!, {r4,lr}
+ bxeq lr
+ add r2, r4, #0x4
+ bl WmGetSharedDataAddress
+ ldmia sp!, {r4,lr}
+ bx lr
+
+ arm_func_start WmDataSharingSendDataSet
+WmDataSharingSendDataSet:
+ stmdb sp!, {r4-r10,lr}
+ sub sp, sp, #0x10
+ mov r10, r0
+ mov r9, r1
+ bl OS_DisableInterrupts
+ add r1, r10, #0x800
+ ldrh r1, [r1, #0x8]
+ mov r7, r0
+ mov r1, r1, lsl #0x9
+ ldrh r1, [r10, r1]
+ cmp r1, #0x0
+ bne _020DA210
+ bl WMi_GetMPReadyAIDs
+ add r1, r10, #0x800
+ ldrh r6, [r1, #0x8]
+ mov r5, r0
+ ldrh r1, [r1, #0x18]
+ add r0, r6, #0x1
+ and r0, r0, #0x3
+ mov r0, r0, lsl #0x10
+ mov r4, r0, lsr #0x10
+ cmp r1, #0x1
+ addeq r0, r4, #0x1
+ andeq r0, r0, #0x3
+ moveq r0, r0, lsl #0x10
+ moveq r8, r0, lsr #0x10
+ movne r8, r4
+ add r1, r10, r8, lsl #0x9
+ mov r0, #0x0
+ mov r2, #0x200
+ bl MIi_CpuClear16
+ add r0, r10, #0x800
+ ldrh r3, [r0, #0xe]
+ orr r2, r5, #0x1
+ mov r1, r8, lsl #0x9
+ and r2, r3, r2
+ strh r2, [r10, r1]
+ strh r4, [r0, #0x8]
+ ldrh r0, [r0, #0xe]
+ mov r1, r6, lsl #0x9
+ cmp r9, #0x1
+ strh r0, [r10, r1]
+ ldreqh r0, [r10, r1]
+ biceq r0, r0, #0x1
+ streqh r0, [r10, r1]
+ mov r0, r7
+ bl OS_RestoreInterrupts
+ add r3, r10, #0x800
+ ldrh r1, [r3, #0xe]
+ mov r4, #0x1
+ ldr r0, _020DA220 ; =WmDataSharingSetDataCallback
+ and r1, r1, r5
+ mov r1, r1, lsl #0x10
+ mov r1, r1, lsr #0x10
+ str r1, [sp, #0x0]
+ ldrh r5, [r3, #0x16]
+ mov r1, r10
+ add r2, r10, r6, lsl #0x9
+ str r5, [sp, #0x4]
+ str r4, [sp, #0x8]
+ ldrh r3, [r3, #0x14]
+ bl WM_SetMPDataToPortEx
+ cmp r0, #0x7
+ bne _020DA1E4
+ add r0, r10, r6, lsl #0x1
+ ldr r1, _020DA224 ; =0x0000FFFF
+ add r0, r0, #0x800
+ strh r1, [r0, #0x0]
+ add r0, r10, #0x800
+ ldrh r1, [r0, #0xa]
+ add sp, sp, #0x10
+ add r1, r1, #0x1
+ and r1, r1, #0x3
+ strh r1, [r0, #0xa]
+ ldmia sp!, {r4-r10,lr}
+ bx lr
+_020DA1E4:
+ cmp r0, #0x0
+ addeq sp, sp, #0x10
+ ldmeqia sp!, {r4-r10,lr}
+ bxeq lr
+ cmp r0, #0x2
+ addne r0, r10, #0x800
+ movne r1, #0x5
+ strneh r1, [r0, #0x1c]
+ add sp, sp, #0x10
+ ldmia sp!, {r4-r10,lr}
+ bx lr
+_020DA210:
+ bl OS_RestoreInterrupts
+ add sp, sp, #0x10
+ ldmia sp!, {r4-r10,lr}
+ bx lr
+ .balign 4
+_020DA220: .word WmDataSharingSetDataCallback
+_020DA224: .word 0x0000FFFF
+
+ arm_func_start WmDataSharingReceiveData
+WmDataSharingReceiveData: ; 0x020DA228
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0x4
+ mov r7, r0
+ mov r3, r1
+ mov r0, #0x1
+ mov r0, r0, lsl r3
+ add r12, r7, #0x800
+ mov r0, r0, lsl #0x10
+ ldrh r1, [r12, #0xe]
+ mov r5, r0, lsr #0x10
+ mov r6, r2
+ ands r0, r1, r5
+ addeq sp, sp, #0x4
+ ldmeqia sp!, {r4-r7,lr}
+ bxeq lr
+ ldrh r4, [r12, #0x8]
+ mov r0, r4, lsl #0x9
+ ldrh r0, [r7, r0]
+ ands r0, r5, r0
+ bne _020DA2B4
+ ldrh r0, [r12, #0x18]
+ cmp r0, #0x1
+ addne sp, sp, #0x4
+ ldmneia sp!, {r4-r7,lr}
+ bxne lr
+ add r0, r4, #0x1
+ and r0, r0, #0x3
+ mov r0, r0, lsl #0x10
+ mov r4, r0, lsr #0x10
+ mov r0, r4, lsl #0x9
+ ldrh r0, [r7, r0]
+ ands r0, r5, r0
+ addeq sp, sp, #0x4
+ ldmeqia sp!, {r4-r7,lr}
+ bxeq lr
+_020DA2B4:
+ add r2, r7, r4, lsl #0x9
+ mov r0, r7
+ add r2, r2, #0x4
+ bl WmGetSharedDataAddress
+ mov r1, r0
+ cmp r6, #0x0
+ beq _020DA2E4
+ add r0, r7, #0x800
+ ldrh r2, [r0, #0x10]
+ mov r0, r6
+ bl MIi_CpuCopy16
+ b _020DA2F4
+_020DA2E4:
+ add r0, r7, #0x800
+ ldrh r2, [r0, #0x10]
+ mov r0, #0x0
+ bl MIi_CpuClear16
+_020DA2F4:
+ bl OS_DisableInterrupts
+ mov r4, r4, lsl #0x9
+ ldrh r3, [r7, r4]
+ mvn r1, r5
+ add r2, r7, #0x2
+ and r1, r3, r1
+ strh r1, [r7, r4]
+ ldrh r1, [r2, r4]
+ orr r1, r1, r5
+ strh r1, [r2, r4]
+ bl OS_RestoreInterrupts
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r7,lr}
+ bx lr
+
+ arm_func_start WmDataSharingReceiveCallback_Child
+WmDataSharingReceiveCallback_Child: ; 0x020DA32C
+ stmdb sp!, {r4-r8,lr}
+ mov r8, r0
+ ldr r7, [r8, #0x1c]
+ cmp r7, #0x0
+ ldmeqia sp!, {r4-r8,lr}
+ bxeq lr
+ ldrh r0, [r8, #0x2]
+ cmp r0, #0x0
+ bne _020DA458
+ ldrh r0, [r8, #0x4]
+ cmp r0, #0x15
+ bgt _020DA394
+ cmp r0, #0x15
+ bge _020DA3C4
+ cmp r0, #0x9
+ ldmgtia sp!, {r4-r8,lr}
+ bxgt lr
+ cmp r0, #0x7
+ ldmltia sp!, {r4-r8,lr}
+ bxlt lr
+ cmp r0, #0x7
+ ldmeqia sp!, {r4-r8,lr}
+ bxeq lr
+ cmp r0, #0x9
+ ldmia sp!, {r4-r8,lr}
+ bx lr
+_020DA394:
+ cmp r0, #0x1a
+ ldmgtia sp!, {r4-r8,lr}
+ bxgt lr
+ cmp r0, #0x19
+ ldmltia sp!, {r4-r8,lr}
+ bxlt lr
+ cmp r0, #0x19
+ ldmeqia sp!, {r4-r8,lr}
+ bxeq lr
+ cmp r0, #0x1a
+ ldmia sp!, {r4-r8,lr}
+ bx lr
+_020DA3C4:
+ ldr r4, [r8, #0xc]
+ ldrh r6, [r8, #0x10]
+ ldrh r5, [r4, #0x0]
+ bl WM_GetAID
+ add r1, r7, #0x800
+ ldrh r1, [r1, #0x14]
+ cmp r6, r1
+ beq _020DA3EC
+ cmp r6, #0x200
+ movhi r6, #0x200
+_020DA3EC:
+ cmp r6, #0x4
+ ldmccia sp!, {r4-r8,lr}
+ bxcc lr
+ mov r1, #0x1
+ mov r0, r1, lsl r0
+ ands r0, r5, r0
+ ldmeqia sp!, {r4-r8,lr}
+ bxeq lr
+ add r0, r7, #0x800
+ ldrh r1, [r0, #0x8]
+ mov r0, r4
+ mov r2, r6
+ add r1, r7, r1, lsl #0x9
+ bl MIi_CpuCopy16
+ add r1, r7, #0x800
+ ldrh r0, [r1, #0x8]
+ ldrh r2, [r8, #0x1a]
+ add r0, r7, r0, lsl #0x1
+ mov r2, r2, asr #0x1
+ add r0, r0, #0x800
+ strh r2, [r0, #0x0]
+ ldrh r0, [r1, #0x8]
+ add r0, r0, #0x1
+ and r0, r0, #0x3
+ strh r0, [r1, #0x8]
+ ldmia sp!, {r4-r8,lr}
+ bx lr
+_020DA458:
+ add r0, r7, #0x800
+ mov r1, #0x5
+ strh r1, [r0, #0x1c]
+ ldmia sp!, {r4-r8,lr}
+ bx lr
+
+ arm_func_start WmDataSharingReceiveCallback_Parent
+WmDataSharingReceiveCallback_Parent: ; 0x020DA46C
+ stmdb sp!, {r4-r6,lr}
+ ldr r4, [r0, #0x1c]
+ cmp r4, #0x0
+ ldmeqia sp!, {r4-r6,lr}
+ bxeq lr
+ ldrh r1, [r0, #0x2]
+ cmp r1, #0x0
+ bne _020DA5C4
+ ldrh r1, [r0, #0x4]
+ cmp r1, #0x15
+ bgt _020DA4D0
+ cmp r1, #0x15
+ bge _020DA504
+ cmp r1, #0x9
+ ldmgtia sp!, {r4-r6,lr}
+ bxgt lr
+ cmp r1, #0x7
+ ldmltia sp!, {r4-r6,lr}
+ bxlt lr
+ cmp r1, #0x7
+ beq _020DA528
+ cmp r1, #0x9
+ beq _020DA53C
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+_020DA4D0:
+ cmp r1, #0x1a
+ ldmgtia sp!, {r4-r6,lr}
+ bxgt lr
+ cmp r1, #0x19
+ ldmltia sp!, {r4-r6,lr}
+ bxlt lr
+ cmp r1, #0x19
+ ldmeqia sp!, {r4-r6,lr}
+ bxeq lr
+ cmp r1, #0x1a
+ beq _020DA53C
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+_020DA504:
+ ldrh r1, [r0, #0x12]
+ ldr r2, [r0, #0xc]
+ mov r0, r4
+ bl WmDataSharingReceiveData
+ mov r0, r4
+ mov r1, #0x0
+ bl WmDataSharingSendDataSet
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+_020DA528:
+ mov r0, r4
+ mov r1, #0x0
+ bl WmDataSharingSendDataSet
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+_020DA53C:
+ ldrh r5, [r0, #0x12]
+ mov r6, #0x1
+ bl OS_DisableInterrupts
+ add r1, r4, #0x800
+ ldrh lr, [r1, #0x8]
+ mvn r12, r6, lsl r5
+ mov r3, lr, lsl #0x9
+ ldrh r2, [r4, r3]
+ and r2, r2, r12
+ strh r2, [r4, r3]
+ ldrh r1, [r1, #0x18]
+ cmp r1, #0x1
+ bne _020DA58C
+ add r1, lr, #0x1
+ and r1, r1, #0x3
+ mov r1, r1, lsl #0x10
+ mov r2, r1, lsr #0x7
+ ldrh r1, [r4, r2]
+ and r1, r1, r12
+ strh r1, [r4, r2]
+_020DA58C:
+ bl OS_RestoreInterrupts
+ mov r0, r4
+ mov r1, #0x0
+ bl WmDataSharingSendDataSet
+ add r0, r4, #0x800
+ ldrh r0, [r0, #0x18]
+ cmp r0, #0x1
+ ldmneia sp!, {r4-r6,lr}
+ bxne lr
+ mov r0, r4
+ mov r1, #0x0
+ bl WmDataSharingSendDataSet
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+_020DA5C4:
+ add r0, r4, #0x800
+ mov r1, #0x5
+ strh r1, [r0, #0x1c]
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+
+ arm_func_start WmDataSharingSetDataCallback
+WmDataSharingSetDataCallback: ; 0x020DA5D8
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ mov r5, r0
+ bl WMi_GetSystemWork
+ ldrh r2, [r5, #0xa]
+ ldr r1, _020DA6E4 ; =WmDataSharingReceiveCallback_Parent
+ add r0, r0, r2, lsl #0x2
+ ldr r2, [r0, #0xcc]
+ ldr r4, [r0, #0x10c]
+ cmp r2, r1
+ beq _020DA618
+ ldr r0, _020DA6E8 ; =WmDataSharingReceiveCallback_Child
+ cmp r2, r0
+ addne sp, sp, #0x4
+ ldmneia sp!, {r4-r5,lr}
+ bxne lr
+_020DA618:
+ cmp r4, #0x0
+ addeq sp, sp, #0x4
+ ldmeqia sp!, {r4-r5,lr}
+ bxeq lr
+ ldr r0, [r5, #0x20]
+ cmp r4, r0
+ addne sp, sp, #0x4
+ ldmneia sp!, {r4-r5,lr}
+ bxne lr
+ bl WM_GetAID
+ ldrh r1, [r5, #0x2]
+ cmp r1, #0x0
+ bne _020DA694
+ cmp r0, #0x0
+ addne sp, sp, #0x4
+ ldmneia sp!, {r4-r5,lr}
+ bxne lr
+ add r1, r4, #0x800
+ ldrh r0, [r1, #0xa]
+ ldrh r2, [r5, #0x1a]
+ add sp, sp, #0x4
+ add r0, r4, r0, lsl #0x1
+ mov r2, r2, asr #0x1
+ add r0, r0, #0x800
+ strh r2, [r0, #0x0]
+ ldrh r0, [r1, #0xa]
+ add r0, r0, #0x1
+ and r0, r0, #0x3
+ strh r0, [r1, #0xa]
+ ldmia sp!, {r4-r5,lr}
+ bx lr
+_020DA694:
+ cmp r1, #0xa
+ bne _020DA6CC
+ cmp r0, #0x0
+ addne r0, r4, #0x800
+ ldrneh r1, [r0, #0xa]
+ add sp, sp, #0x4
+ addne r1, r1, #0x3
+ andne r1, r1, #0x3
+ strneh r1, [r0, #0xa]
+ add r0, r4, #0x800
+ mov r1, #0x4
+ strh r1, [r0, #0x1c]
+ ldmia sp!, {r4-r5,lr}
+ bx lr
+_020DA6CC:
+ add r0, r4, #0x800
+ mov r1, #0x5
+ strh r1, [r0, #0x1c]
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,lr}
+ bx lr
+ .balign 4
+_020DA6E4: .word WmDataSharingReceiveCallback_Parent
+_020DA6E8: .word WmDataSharingReceiveCallback_Child
+
+ arm_func_start WM_StepDataSharing
+WM_StepDataSharing: ; 0x020DA6EC
+ stmdb sp!, {r4-r11,lr}
+ sub sp, sp, #0xc
+ mov r10, r0
+ mov r9, r1
+ mov r8, r2
+ mov r0, #0x2
+ mov r1, #0x9
+ mov r2, #0xa
+ bl WMi_CheckStateEx
+_020DA710: ; 0x020DA710
+ cmp r0, #0x0
+ addne sp, sp, #0xc
+ ldmneia sp!, {r4-r11,lr}
+ bxne lr
+ cmp r10, #0x0
+ addeq sp, sp, #0xc
+ moveq r0, #0x6
+ ldmeqia sp!, {r4-r11,lr}
+ bxeq lr
+ cmp r9, #0x0
+ addeq sp, sp, #0xc
+ moveq r0, #0x6
+ ldmeqia sp!, {r4-r11,lr}
+ bxeq lr
+ cmp r8, #0x0
+ addeq sp, sp, #0xc
+ moveq r0, #0x6
+ ldmeqia sp!, {r4-r11,lr}
+ bxeq lr
+ bl WM_GetAID
+ movs r4, r0
+ bne _020DA770
+ bl WMi_GetMPReadyAIDs
+ mov r7, r0
+_020DA770:
+ add r0, r10, #0x800
+ ldrh r0, [r0, #0x1c]
+ cmp r0, #0x5
+ addeq sp, sp, #0xc
+ moveq r0, #0x1
+ ldmeqia sp!, {r4-r11,lr}
+ bxeq lr
+ cmp r0, #0x1
+ beq _020DA7A8
+ cmp r0, #0x4
+ addne sp, sp, #0xc
+ movne r0, #0x3
+ ldmneia sp!, {r4-r11,lr}
+ bxne lr
+_020DA7A8:
+ cmp r4, #0x0
+ mov r4, #0x5
+ bne _020DA94C
+ mov r6, #0x0
+ mov r11, r6
+ cmp r0, #0x4
+ bne _020DA870
+ add r1, r10, #0x800
+ mov r3, #0x1
+ strh r3, [r1, #0x1c]
+ ldrh r5, [r1, #0xe]
+ ldrh r2, [r1, #0x8]
+ ldr r0, _020DAA64 ; =WmDataSharingSetDataCallback
+ and r5, r5, r7
+ mov r5, r5, lsl #0x10
+ mov r5, r5, lsr #0x10
+ str r5, [sp, #0x0]
+ ldrh r5, [r1, #0x16]
+ add r2, r2, #0x3
+ and r2, r2, #0x3
+ str r5, [sp, #0x4]
+ str r3, [sp, #0x8]
+ mov r2, r2, lsl #0x10
+ mov r5, r2, lsr #0x10
+ ldrh r3, [r1, #0x14]
+ mov r1, r10
+ add r2, r10, r5, lsl #0x9
+ bl WM_SetMPDataToPortEx
+ cmp r0, #0x7
+ bne _020DA848
+ add r0, r10, r5, lsl #0x1
+ ldr r1, _020DAA68 ; =0x0000FFFF
+ add r0, r0, #0x800
+ strh r1, [r0, #0x0]
+ add r0, r10, #0x800
+ ldrh r1, [r0, #0xa]
+ add r1, r1, #0x1
+ and r1, r1, #0x3
+ strh r1, [r0, #0xa]
+ b _020DA870
+_020DA848:
+ cmp r0, #0x0
+ beq _020DA870
+ cmp r0, #0x2
+ addne r0, r10, #0x800
+ movne r1, r4
+ strneh r1, [r0, #0x1c]
+ addne sp, sp, #0xc
+ movne r0, #0x1
+ ldmneia sp!, {r4-r11,lr}
+ bxne lr
+_020DA870:
+ add r0, r10, #0x800
+ ldrh r2, [r0, #0xc]
+ ldrh r1, [r0, #0xa]
+ cmp r2, r1
+ beq _020DA908
+ mov r4, r2, lsl #0x9
+ ldrh r3, [r10, r4]
+ mov r1, r8
+ mov r2, #0x200
+ orr r3, r3, #0x1
+ strh r3, [r10, r4]
+ ldrh r0, [r0, #0xc]
+ add r0, r10, r0, lsl #0x9
+ bl MIi_CpuCopy16
+ add r1, r10, #0x800
+ ldrh r0, [r1, #0xc]
+ mov r6, #0x1
+ mov r4, #0x0
+ add r0, r10, r0, lsl #0x1
+ add r0, r0, #0x800
+ ldrh r0, [r0, #0x0]
+ strh r0, [r1, #0x1a]
+ ldrh r0, [r1, #0xc]
+ add r0, r0, #0x1
+ and r0, r0, #0x3
+ strh r0, [r1, #0xc]
+ ldrh r0, [r1, #0x18]
+ cmp r0, #0x0
+ bne _020DA904
+ cmp r7, #0x0
+ beq _020DA904
+ ldrh r0, [r1, #0x8]
+ mov r0, r0, lsl #0x9
+ ldrh r0, [r10, r0]
+ cmp r0, #0x1
+ moveq r11, r6
+ beq _020DA908
+_020DA904:
+ mov r11, #0x0
+_020DA908:
+ mov r0, r10
+ mov r1, #0x0
+ bl WmDataSharingSendDataSet
+_020DA914: ; 0x020DA914
+ cmp r6, #0x0
+ beq _020DAA54
+ mov r0, r10
+ mov r2, r9
+ mov r1, #0x0
+ bl WmDataSharingReceiveData
+ add r0, r10, #0x800
+ ldrh r0, [r0, #0x18]
+ cmp r0, #0x0
+ bne _020DAA54
+ mov r0, r10
+ mov r1, r11
+ bl WmDataSharingSendDataSet
+ b _020DAA54
+_020DA94C:
+ cmp r0, #0x4
+ mov r0, #0x0
+ addeq r1, r10, #0x800
+ moveq r0, #0x1
+ streqh r0, [r1, #0x1c]
+ beq _020DA9D0
+ add r1, r10, #0x800
+ ldrh r2, [r1, #0xc]
+ ldrh r1, [r1, #0x8]
+ cmp r2, r1
+ beq _020DA9D0
+ mov r2, r2, lsl #0x9
+ ldrh r1, [r10, r2]
+ ands r3, r1, #0x1
+ orreq r1, r1, #0x1
+ streqh r1, [r10, r2]
+ beq _020DA9D0
+ mov r1, r8
+ add r0, r10, r2
+ mov r2, #0x200
+ bl MIi_CpuCopy16
+ add r2, r10, #0x800
+ ldrh r1, [r2, #0xc]
+ mov r0, #0x1
+ mov r4, #0x0
+ add r1, r10, r1, lsl #0x1
+ add r1, r1, #0x800
+ ldrh r1, [r1, #0x0]
+ strh r1, [r2, #0x1a]
+ ldrh r1, [r2, #0xc]
+ add r1, r1, #0x1
+ and r1, r1, #0x3
+ strh r1, [r2, #0xc]
+_020DA9D0:
+ cmp r0, #0x0
+ beq _020DAA54
+ add r0, r10, #0x800
+ ldrh r1, [r0, #0xa]
+ ldrh r2, [r0, #0x10]
+ mov r0, r9
+ add r1, r10, r1, lsl #0x9
+ add r7, r1, #0x20
+ mov r1, r7
+ bl MIi_CpuCopy16
+ add r3, r10, #0x800
+ ldrh r1, [r3, #0xe]
+ mov r5, #0x1
+ ldr r0, _020DAA64 ; =WmDataSharingSetDataCallback
+ str r1, [sp, #0x0]
+ ldrh r6, [r3, #0x16]
+ mov r1, r10
+ mov r2, r7
+ str r6, [sp, #0x4]
+ str r5, [sp, #0x8]
+ ldrh r3, [r3, #0x10]
+ bl WM_SetMPDataToPortEx
+ add r1, r10, #0x800
+ ldrh r2, [r1, #0xa]
+ cmp r0, #0x2
+ add r2, r2, #0x1
+ and r2, r2, #0x3
+ strh r2, [r1, #0xa]
+ beq _020DAA54
+ cmp r0, #0x0
+ movne r0, #0x5
+ strneh r0, [r1, #0x1c]
+ movne r4, r5
+_020DAA54:
+ mov r0, r4
+ add sp, sp, #0xc
+ ldmia sp!, {r4-r11,lr}
+ bx lr
+ .balign 4
+_020DAA64: .word WmDataSharingSetDataCallback
+_020DAA68: .word 0x0000FFFF
+
+ arm_func_start WM_EndDataSharing
+WM_EndDataSharing: ; 0x020DAA6C
+ stmdb sp!, {r4,lr}
+ movs r4, r0
+ moveq r0, #0x6
+ ldmeqia sp!, {r4,lr}
+ bxeq lr
+ add r0, r4, #0x800
+ ldrh r1, [r0, #0xe]
+ cmp r1, #0x0
+ moveq r0, #0x3
+ ldmeqia sp!, {r4,lr}
+ bxeq lr
+ ldrh r0, [r0, #0x16]
+ mov r1, #0x0
+ mov r2, r1
+ bl WM_SetPortCallback
+ add r1, r4, #0x800
+ mov r0, #0x0
+ strh r0, [r1, #0xe]
+ strh r0, [r1, #0x1c]
+ ldmia sp!, {r4,lr}
+ bx lr
+
+ arm_func_start WM_StartDataSharing
+WM_StartDataSharing: ; 0x020DAAC0
+ stmdb sp!, {r4-r11,lr}
+ sub sp, sp, #0xc
+ mov r10, r0
+ mov r7, r1
+ mov r6, r2
+ mov r0, #0x2
+ mov r1, #0x9
+ mov r2, #0xa
+ mov r5, r3
+ mov r9, #0x1
+ bl WMi_CheckStateEx
+_020DAAEC: ; 0x020DAAEC
+ cmp r0, #0x0
+ addne sp, sp, #0xc
+ ldmneia sp!, {r4-r11,lr}
+ bxne lr
+ cmp r10, #0x0
+ addeq sp, sp, #0xc
+ moveq r0, #0x6
+ ldmeqia sp!, {r4-r11,lr}
+ bxeq lr
+ cmp r7, #0x10
+ addcs sp, sp, #0xc
+ movcs r0, #0x6
+ ldmcsia sp!, {r4-r11,lr}
+ bxcs lr
+ cmp r6, #0x0
+ addeq sp, sp, #0xc
+ moveq r0, #0x6
+ ldmeqia sp!, {r4-r11,lr}
+ bxeq lr
+ bl WM_GetAID
+ movs r4, r0
+ bne _020DAB4C
+ bl WMi_GetMPReadyAIDs
+ mov r9, r0
+_020DAB4C:
+ mov r1, r10
+ mov r0, #0x0
+ mov r2, #0x820
+ bl MIi_CpuClearFast
+ add r0, r10, #0x800
+ mov r2, #0x0
+ strh r2, [r0, #0x8]
+ strh r2, [r0, #0xa]
+ strh r2, [r0, #0xc]
+ strh r5, [r0, #0x10]
+ strh r7, [r0, #0x16]
+ strh r2, [r0, #0xe]
+ mov r0, #0x1
+ ldr r1, [sp, #0x30]
+ orr r0, r6, r0, lsl r4
+ cmp r1, #0x0
+ mov r0, r0, lsl #0x10
+ movne r2, #0x1
+ add r1, r10, #0x800
+ strh r2, [r1, #0x18]
+ mov r0, r0, lsr #0x10
+ strh r0, [r1, #0xe]
+ bl MATH_CountPopulation
+ add r3, r10, #0x800
+ mul r1, r5, r0
+ strh r0, [r3, #0x12]
+ strh r1, [r3, #0x14]
+ ldrh r0, [r3, #0x14]
+ cmp r0, #0x1fc
+ movhi r0, #0x0
+ strhih r0, [r3, #0xe]
+ addhi sp, sp, #0xc
+ movhi r0, #0x6
+ ldmhiia sp!, {r4-r11,lr}
+ bxhi lr
+ add r0, r0, #0x4
+ strh r0, [r3, #0x14]
+ mov r0, #0x1
+ strh r0, [r3, #0x1c]
+ cmp r4, #0x0
+ bne _020DAD04
+ orr r2, r9, #0x1
+ mov r4, #0x0
+_020DABF8:
+ ldrh r1, [r3, #0xe]
+ mov r0, r4, lsl #0x9
+ add r4, r4, #0x1
+ and r1, r1, r2
+ strh r1, [r10, r0]
+ cmp r4, #0x4
+ blt _020DABF8
+ ldr r1, _020DAD2C ; =WmDataSharingReceiveCallback_Parent
+ mov r0, r7
+ mov r2, r10
+ bl WM_SetPortCallback
+ mov r8, r10
+ mov r7, #0x0
+ mov r4, #0x2
+ mov r6, #0x1
+ ldr fp, _020DAD30 ; =WmDataSharingSetDataCallback
+ ldr r5, _020DAD34 ; =0x0000FFFF
+ b _020DACE4
+_020DAC40:
+ add r12, r10, #0x800
+ ldrh r2, [r12, #0x8]
+ mov r0, r11
+ mov r1, r10
+ add r2, r2, #0x1
+ and r2, r2, #0x3
+ strh r2, [r12, #0x8]
+ ldrh r3, [r12, #0xe]
+ mov r2, r8
+ and r3, r3, r9
+ mov r3, r3, lsl #0x10
+ mov r3, r3, lsr #0x10
+ str r3, [sp, #0x0]
+ ldrh r3, [r12, #0x16]
+ str r3, [sp, #0x4]
+ str r6, [sp, #0x8]
+ ldrh r3, [r12, #0x14]
+ bl WM_SetMPDataToPortEx
+ cmp r0, #0x7
+ bne _020DACB4
+ add r0, r10, r7, lsl #0x1
+ add r0, r0, #0x800
+ strh r5, [r0, #0x0]
+ add r0, r10, #0x800
+ ldrh r1, [r0, #0xa]
+ add r1, r1, #0x1
+ and r1, r1, #0x3
+ strh r1, [r0, #0xa]
+ b _020DACDC
+_020DACB4:
+ cmp r0, #0x0
+ beq _020DACDC
+ cmp r0, #0x2
+ addne r0, r10, #0x800
+ movne r1, #0x5
+ strneh r1, [r0, #0x1c]
+ addne sp, sp, #0xc
+ movne r0, #0x1
+ ldmneia sp!, {r4-r11,lr}
+ bxne lr
+_020DACDC:
+ add r8, r8, #0x200
+ add r7, r7, #0x1
+_020DACE4:
+ add r0, r10, #0x800
+ ldrh r0, [r0, #0x18]
+ cmp r0, #0x1
+ movne r0, r6
+ moveq r0, r4
+ cmp r7, r0
+ blt _020DAC40
+ b _020DAD1C
+_020DAD04:
+ ldr r1, _020DAD38 ; =WmDataSharingReceiveCallback_Child
+ mov r4, #0x3
+ mov r0, r7
+ mov r2, r10
+ strh r4, [r3, #0xa]
+ bl WM_SetPortCallback
+_020DAD1C:
+ mov r0, #0x0
+ add sp, sp, #0xc
+ ldmia sp!, {r4-r11,lr}
+ bx lr
+ .balign 4
+_020DAD2C: .word WmDataSharingReceiveCallback_Parent
+_020DAD30: .word WmDataSharingSetDataCallback
+_020DAD34: .word 0x0000FFFF
+_020DAD38: .word WmDataSharingReceiveCallback_Child
+
+ arm_func_start WM_EndKeySharing
+WM_EndKeySharing: ; 0x020DAD3C
+ ldr ip, _020DAD44 ; =WM_EndDataSharing
+ bx r12
+ .balign 4
+_020DAD44: .word WM_EndDataSharing
+
+ arm_func_start WM_StartKeySharing
+WM_StartKeySharing: ; 0x020DAD48
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldr r2, _020DAD70 ; =0x0000FFFF
+ mov r12, #0x1
+ mov r3, #0x2
+ str r12, [sp, #0x0]
+ bl WM_StartDataSharing
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+ .balign 4
+_020DAD70: .word 0x0000FFFF
+
+ arm_func_start WM_SetEntry
+WM_SetEntry: ; 0x020DAD74
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ mov r5, r0
+ mov r4, r1
+ mov r0, #0x2
+ mov r1, #0x7
+ mov r2, #0x9
+ bl WMi_CheckStateEx
+_020DAD94: ; 0x020DAD94
+ cmp r0, #0x0
+ addne sp, sp, #0x4
+ ldmneia sp!, {r4-r5,lr}
+ bxne lr
+ mov r1, r5
+ mov r0, #0x21
+ bl WMi_SetCallbackTable
+ mov r2, r4
+ mov r0, #0x21
+ mov r1, #0x1
+ bl WMi_SendCommand
+_020DADC0: ; 0x020DADC0
+ cmp r0, #0x0
+ moveq r0, #0x2
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,lr}
+ bx lr
+
+ arm_func_start WM_MeasureChannel
+WM_MeasureChannel: ; 0x020DADD4
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0xc
+ mov r7, r0
+ mov r6, r1
+ mov r5, r2
+ mov r4, r3
+ bl WMi_GetSystemWork
+ mov r0, #0x1
+ mov r1, #0x2
+ bl WMi_CheckStateEx
+_020DADFC: ; 0x020DADFC
+ cmp r0, #0x0
+ addne sp, sp, #0xc
+ ldmneia sp!, {r4-r7,lr}
+ bxne lr
+ mov r1, r7
+ mov r0, #0x1e
+ bl WMi_SetCallbackTable
+ ldrh r2, [sp, #0x20]
+ mov r3, #0x1e
+ add r0, sp, #0x0
+ mov r1, #0xa
+ strh r3, [sp, #0x0]
+ strh r6, [sp, #0x2]
+ strh r5, [sp, #0x4]
+ strh r4, [sp, #0x6]
+ strh r2, [sp, #0x8]
+ bl WMi_SendCommandDirect
+_020DAE40: ; 0x020DAE40
+ cmp r0, #0x0
+ moveq r0, #0x2
+ add sp, sp, #0xc
+ ldmia sp!, {r4-r7,lr}
+ bx lr
+
+ arm_func_start WM_SetLifeTime
+WM_SetLifeTime: ; 0x020DAE54
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0xc
+ mov r7, r0
+ mov r6, r1
+ mov r5, r2
+ mov r4, r3
+ bl WMi_CheckIdle
+_020DAE70: ; 0x020DAE70
+ cmp r0, #0x0
+ addne sp, sp, #0xc
+ ldmneia sp!, {r4-r7,lr}
+ bxne lr
+ mov r1, r7
+ mov r0, #0x1d
+ bl WMi_SetCallbackTable
+ ldrh r12, [sp, #0x20]
+ str r4, [sp, #0x0]
+ mov r2, r6
+ mov r3, r5
+ mov r0, #0x1d
+ mov r1, #0x4
+ str r12, [sp, #0x4]
+ bl WMi_SendCommand
+_020DAEAC: ; 0x020DAEAC
+ cmp r0, #0x0
+ moveq r0, #0x2
+ add sp, sp, #0xc
+ ldmia sp!, {r4-r7,lr}
+ bx lr
+
+ arm_func_start WM_SetBeaconIndication
+WM_SetBeaconIndication: ; 0x020DAEC0
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ mov r5, r0
+_020DAECC: ; 0x020DAECC
+ mov r4, r1
+ bl WMi_CheckIdle
+_020DAED4: ; 0x020DAED4
+ cmp r0, #0x0
+ addne sp, sp, #0x4
+ ldmneia sp!, {r4-r5,lr}
+ bxne lr
+ cmp r4, #0x0
+ beq _020DAF00
+ cmp r4, #0x1
+ addne sp, sp, #0x4
+ movne r0, #0x6
+ ldmneia sp!, {r4-r5,lr}
+ bxne lr
+_020DAF00:
+ mov r1, r5
+ mov r0, #0x19
+ bl WMi_SetCallbackTable
+ mov r2, r4
+ mov r0, #0x19
+ mov r1, #0x1
+ bl WMi_SendCommand
+_020DAF1C: ; 0x020DAF1C
+ cmp r0, #0x0
+ moveq r0, #0x2
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,lr}
+ bx lr
+
+ arm_func_start WM_SetGameInfo
+WM_SetGameInfo: ; 0x020DAF30
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0xc
+ mov r7, r0
+ mov r6, r1
+ mov r5, r2
+ mov r0, #0x2
+ mov r1, #0x7
+ mov r2, #0x9
+ mov r4, r3
+ bl WMi_CheckStateEx
+_020DAF58: ; 0x020DAF58
+ cmp r0, #0x0
+ addne sp, sp, #0xc
+ ldmneia sp!, {r4-r7,lr}
+ bxne lr
+ cmp r6, #0x0
+ addeq sp, sp, #0xc
+ moveq r0, #0x6
+ ldmeqia sp!, {r4-r7,lr}
+ bxeq lr
+ cmp r5, #0x70
+ addhi sp, sp, #0xc
+ movhi r0, #0x6
+ ldmhiia sp!, {r4-r7,lr}
+ bxhi lr
+ ldr r1, _020DAFF4 ; =0x021D68C0
+ mov r0, r6
+ mov r2, r5
+ bl MIi_CpuCopy16
+ ldr r0, _020DAFF4 ; =0x021D68C0
+ mov r1, r5
+ bl DC_StoreRange
+ mov r1, r7
+ mov r0, #0x18
+ bl WMi_SetCallbackTable
+ ldrh r0, [sp, #0x20]
+ str r4, [sp, #0x0]
+ ldrb r1, [sp, #0x24]
+ str r0, [sp, #0x4]
+ ldr r2, _020DAFF4 ; =0x021D68C0
+ str r1, [sp, #0x8]
+ mov r3, r5
+ mov r0, #0x18
+ mov r1, #0x5
+ bl WMi_SendCommand
+_020DAFE0: ; 0x020DAFE0
+ cmp r0, #0x0
+ moveq r0, #0x2
+ add sp, sp, #0xc
+ ldmia sp!, {r4-r7,lr}
+ bx lr
+ .balign 4
+_020DAFF4: .word 0x021D68C0
+
+ arm_func_start WM_SetWEPKeyEx
+WM_SetWEPKeyEx: ; 0x020DAFF8
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0x4
+ mov r7, r0
+ mov r6, r1
+ mov r5, r2
+ mov r4, r3
+ bl WMi_CheckIdle
+_020DB014: ; 0x020DB014
+ cmp r0, #0x0
+ addne sp, sp, #0x4
+ ldmneia sp!, {r4-r7,lr}
+ bxne lr
+ cmp r6, #0x3
+ addhi sp, sp, #0x4
+ movhi r0, #0x6
+ ldmhiia sp!, {r4-r7,lr}
+ bxhi lr
+ cmp r6, #0x0
+ beq _020DB060
+ cmp r4, #0x0
+ addeq sp, sp, #0x4
+ moveq r0, #0x6
+ ldmeqia sp!, {r4-r7,lr}
+ bxeq lr
+ mov r0, r4
+ mov r1, #0x50
+ bl DC_StoreRange
+_020DB060:
+ mov r1, r7
+ mov r0, #0x27
+ bl WMi_SetCallbackTable
+ mov r2, r6
+ mov r3, r4
+ mov r0, #0x27
+ mov r1, #0x3
+ str r5, [sp, #0x0]
+ bl WMi_SendCommand
+_020DB084: ; 0x020DB084
+ cmp r0, #0x0
+ moveq r0, #0x2
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r7,lr}
+ bx lr
+
+ arm_func_start WM_SetWEPKeyEx2
+WM_SetWEPKeyEx2: ; 0x020DB098
+ stmdb sp!, {r4-r6,lr}
+ mov r6, r0
+ mov r5, r1
+ mov r4, r2
+ bl WMi_CheckIdle
+_020DB0AC: ; 0x020DB0AC
+ cmp r0, #0x0
+ ldmneia sp!, {r4-r6,lr}
+ bxne lr
+ cmp r5, #0x3
+ movhi r0, #0x6
+ ldmhiia sp!, {r4-r6,lr}
+ bxhi lr
+ cmp r5, #0x0
+ beq _020DB0EC
+ cmp r4, #0x0
+ moveq r0, #0x6
+ ldmeqia sp!, {r4-r6,lr}
+ bxeq lr
+ mov r0, r4
+ mov r1, #0x50
+ bl DC_StoreRange
+_020DB0EC:
+ mov r1, r6
+ mov r0, #0x14
+ bl WMi_SetCallbackTable
+ mov r2, r5
+ mov r3, r4
+ mov r0, #0x14
+ mov r1, #0x2
+ bl WMi_SendCommand
+_020DB10C: ; 0x020DB10C
+ cmp r0, #0x0
+ moveq r0, #0x2
+ ldmia sp!, {r4-r6,lr}
+ bx lr
diff --git a/arm9/asm/arm9_itcm.s b/arm9/asm/arm9_itcm.s
new file mode 100644
index 00000000..79c0de28
--- /dev/null
+++ b/arm9/asm/arm9_itcm.s
@@ -0,0 +1,505 @@
+ .include "asm/macros.inc"
+ .include "global.inc"
+ .section .itcm
+
+ ; OS
+ arm_func_start OS_IrqHandler
+OS_IrqHandler: ; 0x01FF8000
+ stmfd sp!, {lr}
+ mov ip, #0x04000000
+ add ip, ip, #0x210
+ ldr r1, [ip, #-8]
+ cmp r1, #0
+ ldmeqfd sp!, {pc}
+ ldmia ip, {r1, r2}
+ ands r1, r1, r2
+ ldmeqfd sp!, {pc}
+ mov r3, #0x80000000
+_01FF8028:
+ clz r0, r1
+ bics r1, r1, r3, lsr r0
+ bne _01FF8028
+ mov r1, r3, lsr r0
+ str r1, [ip, #0x4]
+ rsbs r0, r0, #0x1f
+ ldr r1, _01FF8050 ; =0x027E0000
+ ldr r0, [r1, r0, lsl #2]
+ ldr lr, _01FF8054 ; =0x01FF70B8
+ bx r0
+_01FF8050: .word OS_IRQTable
+_01FF8054: .word OS_IrqHandler_ThreadSwitch
+
+ arm_func_start OS_IrqHandler_ThreadSwitch
+OS_IrqHandler_ThreadSwitch: ; 01FF8058
+ ldr ip, _01FF81A4
+ mov r3, #0x0
+ ldr ip, [ip]
+ mov r2, #0x1
+ cmp ip, #0x0
+ beq _01FF80A8
+_01FF8070:
+ str r2, [ip, #0x64]
+ str r3, [ip, #0x78]
+ str r3, [ip, #0x7c]
+ ldr r0, [ip, #0x80]
+ str r3, [ip, #0x80]
+ mov ip, r0
+ cmp ip, #0x0
+ bne _01FF8070
+ ldr ip, _01FF81A4
+ str r3, [ip]
+ str r3, [ip, #0x4]
+ ldr ip, _01FF81A8
+ mov r1, #0x1
+ strh r1, [ip]
+_01FF80A8:
+ ldr ip, _01FF81A8
+ ldrh r1, [ip]
+ cmp r1, #0x0
+ ldreq pc, [sp], #0x4
+ mov r1, #0x0
+ strh r1, [ip]
+ mov r3, #0xd2
+ msr CPSR_c, r3
+ add r2, ip, #0x8
+ ldr r1, [r2]
+_01FF80D0:
+ cmp r1, #0x0
+ ldrneh r0, [r1, #0x64]
+ cmpne r0, #0x1
+ ldrne r1, [r1, #0x68]
+ bne _01FF80D0
+ cmp r1, #0x0
+ bne _01FF80F8
+_01FF80EC:
+ mov r3, #0x92
+ msr CPSR_c, r3
+ ldr pc, [sp], #0x4
+_01FF80F8:
+ ldr r0, [ip, #0x4]
+ cmp r1, r0
+ beq _01FF80EC
+ ldr r3, [ip, #0xC]
+ cmp r3, #0x0
+ beq _01FF8120
+ stmdb sp!, {r0, r1, ip}
+ mov lr, pc
+ bx r3
+ ldmia sp!, {r0, r1, ip}
+_01FF8120:
+ str r1, [ip, #0x4]
+ mrs r2, SPSR
+ str r2, [r0, #0x0]!
+ stmdb sp!, {r0, r1}
+ add r0, r0, #0x0
+ add r0, r0, #0x48
+ ldr r1, _01FF81AC
+ blx r1
+ ldmia sp!, {r0, r1}
+ ldmib sp!, {r2, r3}
+ stmib r0!, {r2, r3}
+ ldmib sp!, {r2, r3, ip, lr}
+ stmib r0!, {r2, r3, r4, r5, r6, r7, r8, r9, sl, fp, ip, sp, lr}^
+ stmib r0!, {lr}
+ mov r3, #0xd3
+ msr CPSR_c, r3
+ stmib r0!, {sp}
+ stmfd sp!, {r1}
+ add r0, r1, #0x0
+ add r0, r0, #0x48
+ ldr r1, _01FF81B0
+ blx r1
+ ldmfd sp!, {r1}
+ ldr sp, [r1, #0x44]
+ mov r3, #0xd2
+ msr CPSR_c, r3
+ ldr r2, [r1, #0x0]!
+ msr SPSR_fc, r2
+ ldr lr, [r1, #0x40]
+ ldmib r1!, {r0, r1, r2, r3, r4, r5, r6, r7, r8, r9, sl, fp, ip, sp, lr}^
+ nop
+ stmda sp!, {r0, r1, r2, r3, ip, lr}
+ ldmfd sp!, {pc}
+_01FF81A4: .word OSi_IrqThreadQueue
+_01FF81A8: .word OSi_ThreadInfo
+_01FF81AC: .word CP_SaveContext
+_01FF81B0: .word CP_RestoreContext
+
+ .section .itcm
+ arm_func_start OSi_DoBoot
+OSi_DoBoot: ; 0x01FF81B4
+ mov ip, #0x04000000
+ str ip, [ip, #0x208]
+ ldr r1, _01FF8260
+ add r1, r1, #0x3fc0
+ add r1, r1, #0x3c
+ mov r0, #0x0
+ str r0, [r1]
+ ldr r1, _01FF8264
+_01FF81D4:
+ ldrh r0, [r1]
+ and r0, r0, #0xf
+ cmp r0, #0x1
+ bne _01FF81D4
+ mov r0, #0x100
+ strh r0, [r1]
+ mov r0, #0x0
+ ldr r3, _01FF8268
+ ldr r4, [r3]
+ ldr r1, _01FF826C
+ mov r2, #0x80
+ bl OSi_CpuClear32
+ str r4, [r3]
+ ldr r1, _01FF8270
+ mov r2, #0x18
+ bl OSi_CpuClear32
+ ldr r1, _01FF8274
+ strh r0, [r1]
+ ldr r1, _01FF8278
+ mov r2, #0x64
+ bl OSi_CpuClear32
+ ldr r1, _01FF8264
+_01FF822C:
+ ldrh r0, [r1]
+ and r0, r0, #0xf
+ cmp r0, #0x1
+ beq _01FF822C
+ mov r0, #0x0
+ strh r0, [r1]
+ ldr r3, _01FF827C
+ ldr ip, [r3, #0x24]
+ mov lr, ip
+ ldr fp, _01FF8270
+ ldmia fp, {r0, r1, r2, r3, r4, r5, r6, r7, r8, r9, sl}
+ mov fp, #0x0
+ bx ip
+_01FF8260: .word SDK_AUTOLOAD_DTCM_START
+_01FF8264: .word 0x04000180
+_01FF8268: .word 0x027FFD9C
+_01FF826C: .word 0x027FFD80
+_01FF8270: .word 0x027FFF80
+_01FF8274: .word 0x027FFF98
+_01FF8278: .word 0x027FFF9C
+_01FF827C: .word 0x027FFE00
+
+ arm_func_start OSi_CpuClear32
+OSi_CpuClear32: ; 01FF8280
+ add ip, r1, r2
+_01FF8284:
+ cmp r1, ip
+ stmltia r1!, {r0}
+ blt _01FF8284
+ bx lr
+
+ arm_func_start OSi_ReadCardRom32
+OSi_ReadCardRom32: ; 01FF8294
+ stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
+ sub sp, sp, #4
+ ldr r4, _01FF8390
+ ldr r3, _01FF8394
+ ldr r4, [r4]
+ and r3, r0, r3
+ bic r4, r4, #117440512 ; 0x7000000
+ orr sl, r4, #-1593835520 ; 0xa1000000
+ rsb r9, r3, #0
+ ldr r4, _01FF8398
+_01FF82BC:
+ ldr r3, [r4]
+ ands r3, r3, #-2147483648 ; 0x80000000
+ bne _01FF82BC
+ ldr r3, _01FF839C
+ mov r4, #128 ; 0x80
+ cmp r9, r2
+ addge sp, sp, #4
+ strb r4, [r3]
+ add r0, r0, r9
+ ldmgeia sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
+ bxge lr
+ ldr r3, _01FF83A0
+ ldr ip, _01FF8398
+ ldr r5, _01FF83A4
+ ldr r4, _01FF83A8
+ mov r7, r0, lsr #8
+ mov r6, #183 ; 0xb7
+ mov lr, #0
+_01FF8304:
+ strb r6, [r5]
+ mov r8, r0, lsr #24
+ strb r8, [r4]
+ ldr r8, _01FF83AC
+ mov fp, r0, lsr #16
+ strb fp, [r8]
+ ldr r8, _01FF83B0
+ strb r7, [r8]
+ ldr r8, _01FF83B4
+ strb r0, [r8]
+ ldr r8, _01FF83B8
+ strb lr, [r8]
+ ldr r8, _01FF83BC
+ strb lr, [r8]
+ ldr r8, _01FF83C0
+ strb lr, [r8]
+ str sl, [ip]
+_01FF8348:
+ ldr r8, [ip]
+ ands fp, r8, #8388608 ; 0x800000
+ beq _01FF836C
+ cmp r9, #0
+ ldr fp, [r3]
+ blt _01FF8368
+ cmp r9, r2
+ strlt fp, [r1, r9]
+_01FF8368:
+ add r9, r9, #4
+_01FF836C:
+ ands r8, r8, #-2147483648 ; 0x80000000
+ bne _01FF8348
+ cmp r9, r2
+ add r7, r7, #2
+ add r0, r0, #512 ; 0x200
+ blt _01FF8304
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
+ bx lr
+_01FF8390: .word 0x027FFE60
+_01FF8394: .word 0x000001FF
+_01FF8398: .word 0x040001A4
+_01FF839C: .word 0x040001A1
+_01FF83A0: .word 0x04100010
+_01FF83A4: .word 0x040001A8
+_01FF83A8: .word 0x040001A9
+_01FF83AC: .word 0x040001AA
+_01FF83B0: .word 0x040001AB
+_01FF83B4: .word 0x040001AC
+_01FF83B8: .word 0x040001AD
+_01FF83BC: .word 0x040001AE
+_01FF83C0: .word 0x040001AF
+
+ arm_func_start OSi_ReloadRomData
+OSi_ReloadRomData: ; 0x01FF83C4
+ stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
+ sub sp, sp, #4
+ ldr r0, _01FF8484
+ ldr sl, [r0]
+ cmp sl, #32768 ; 0x8000
+ bcc _01FF83EC
+ ldr r1, _01FF8488
+ mov r0, sl
+ mov r2, #352 ; 0x160
+ bl OSi_ReadCardRom32
+_01FF83EC:
+ ldr r5, _01FF848C
+ ldr r4, _01FF8490
+ ldr r3, _01FF8494
+ ldr r2, _01FF8498
+ ldr r1, _01FF849C
+ ldr r9, [r5]
+ ldr r0, _01FF84A0
+ ldr r8, [r4]
+ ldr r7, [r3]
+ ldr r6, [r2]
+ ldr r5, [r1]
+ ldr r4, [r0]
+ bl OS_DisableInterrupts ; 0x1e02b0
+ mov fp, r0
+ bl DC_StoreAll ; 0x1df064
+ bl DC_InvalidateAll ; 0x1df058
+ mov r0, fp
+ bl OS_RestoreInterrupts ; 0x1e02c4
+ bl IC_InvalidateAll ; 0x1df12c
+ bl DC_WaitWriteBufferEmpty ; 0x1df120
+ add r9, r9, sl
+ cmp r9, #32768 ; 0x8000
+ rsbcc r0, r9, #32768 ; 0x8000
+ addcc r8, r8, r0
+ subcc r7, r7, r0
+ movcc r9, #32768 ; 0x8000
+ add r6, r6, sl
+ mov r0, r9
+ mov r1, r8
+ mov r2, r7
+ bl OSi_ReadCardRom32 ; 0x10b234
+ mov r0, r6
+ mov r1, r5
+ mov r2, r4
+ bl OSi_ReadCardRom32
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
+ bx lr
+_01FF8484: .word 0x027FFC2C
+_01FF8488: .word 0x027FFE00
+_01FF848C: .word 0x027FFE20
+_01FF8490: .word 0x027FFE28
+_01FF8494: .word 0x027FFE2C
+_01FF8498: .word 0x027FFE30
+_01FF849C: .word 0x027FFE38
+_01FF84A0: .word 0x027FFE3C
+
+ arm_func_start OSi_DoResetSystem
+OSi_DoResetSystem: ; 0x01FF84A4
+ stmfd sp!, {lr}
+ sub sp, sp, #4
+ ldr r0, _01FF84DC
+_01FF84B0:
+ ldrh r1, [r0]
+ cmp r1, #0
+ beq _01FF84B0
+ ldr r0, _01FF84E0
+ mov r1, #0
+ strh r1, [r0]
+ bl OSi_ReloadRomData
+ bl OSi_DoBoot
+ add sp, sp, #4
+ ldmfd sp!, {lr}
+ bx lr
+_01FF84DC: .word OSi_IsResetOccurred
+_01FF84E0: .word 0x04000208
+
+ ; MI
+ arm_func_start MIi_DmaSetParams_wait_noInt
+MIi_DmaSetParams_wait_noInt: ; 0x01FF84E4
+ stmdb sp!, {r4, lr}
+ mov ip, #12
+ mul r4, r0, ip
+ add ip, r4, #67108864 ; 0x4000000
+ ldr lr, [pc, #64] ; 0x10b4dc
+ str r1, [ip, #176] ; 0xb0
+ add r4, r4, lr
+ str r2, [r4, #4]
+ str r3, [r4, #8]
+ ldr r1, [lr]
+ cmp r0, #0
+ ldr r0, [lr]
+ moveq r1, #0
+ streq r1, [r4]
+ streq r1, [r4, #4]
+ ldreq r0, _01FF8540
+ ldr r1, _01FF853C
+ streq r0, [r4, #8]
+ ldr r0, [r1]
+ ldr r0, [r1]
+ ldmia sp!, {r4, lr}
+ bx lr
+_01FF853C: .word 0x040000B0
+_01FF8540: .word 0x81400001
+
+ arm_func_start MIi_DmaSetParams_noInt
+MIi_DmaSetParams_noInt: ; 01FF8544
+ stmfd sp!, {lr}
+ sub sp, sp, #4
+ mov ip, #12
+ mul lr, r0, ip
+ ldr r0, _01FF8578
+ add ip, lr, #67108864 ; 0x4000000
+ str r1, [ip, #176] ; 0xb0
+ add r0, lr, r0
+ str r2, [r0, #4]
+ str r3, [r0, #8]
+ add sp, sp, #4
+ ldmfd sp!, {lr}
+ bx lr
+_01FF8578: .word 0x040000B0
+
+ arm_func_start MIi_DmaSetParams_wait
+MIi_DmaSetParams_wait: ; 01FF857C
+ stmdb sp!, {r4, r5, r6, r7, lr}
+ sub sp, sp, #4
+ mov r7, r0
+ mov r6, r1
+ mov r5, r2
+ mov r4, r3
+ bl OS_DisableInterrupts
+ mov r1, #12
+ mul r3, r7, r1
+ add r1, r3, #67108864 ; 0x4000000
+ ldr r2, _01FF85E8
+ str r6, [r1, #176] ; 0xb0
+ add r3, r3, r2
+ str r5, [r3, #4]
+ str r4, [r3, #8]
+ ldr r1, [r2]
+ cmp r7, #0
+ ldr r1, [r2]
+ moveq r2, #0
+ streq r2, [r3]
+ ldreq r1, _01FF85EC
+ streq r2, [r3, #4]
+ streq r1, [r3, #8]
+ bl OS_RestoreInterrupts
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, r6, r7, lr}
+ bx lr
+_01FF85E8: .word 0x040000B0
+_01FF85EC: .word 0x81400001
+
+ arm_func_start MIi_DmaSetParams
+MIi_DmaSetParams: ; 01FF85F0
+ stmdb sp!, {r4, r5, r6, r7, lr}
+ sub sp, sp, #4
+ mov r7, r0
+ mov r6, r1
+ mov r5, r2
+ mov r4, r3
+ bl OS_DisableInterrupts
+ mov r1, #12
+ mul r3, r7, r1
+ ldr r1, _01FF863C
+ add r2, r3, #67108864 ; 0x4000000
+ str r6, [r2, #176] ; 0xb0
+ add r1, r3, r1
+ str r5, [r1, #4]
+ str r4, [r1, #8]
+ bl OS_RestoreInterrupts
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, r6, r7, lr}
+ bx lr
+_01FF863C: .word 0x040000B0
+
+ arm_func_start MI_SendGXCommand
+MI_SendGXCommand: ; 0x01FF8640
+ stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
+ sub sp, sp, #4
+ movs r8, r2
+ mov sl, r0
+ mov r9, r1
+ addeq sp, sp, #4
+ ldmeqia sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
+ bxeq lr
+ mov r3, #0
+ bl MIi_CheckDma0SourceAddress
+ mov r0, #3
+ mul r1, sl, r0
+ ldr r0, [pc, #104] ; 0x10b680
+ add r1, r1, #2
+ add r7, r0, r1, lsl #2
+_01FF867C:
+ ldr r0, [r7]
+ ands r0, r0, #-2147483648 ; 0x80000000
+ bne _01FF867C
+ cmp r8, #0
+ beq _01FF86C8
+ ldr fp, [pc, #76] ; 0x10b684
+ mov r5, #472 ; 0x1d8
+ ldr r4, [pc, #72] ; 0x10b688
+_01FF869C:
+ cmp r8, #472 ; 0x1d8
+ movhi r6, r5
+ movls r6, r8
+ mov r0, sl
+ mov r1, r9
+ mov r2, fp
+ orr r3, r4, r6, lsr #2
+ bl MIi_DmaSetParams
+ subs r8, r8, r6
+ add r9, r9, r6
+ bne _01FF869C
+_01FF86C8:
+ ldr r0, [r7]
+ ands r0, r0, #-2147483648 ; 0x80000000
+ bne _01FF86C8
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
+ bx lr
+_01FF86E0: .word 0x040000B0
+_01FF86E4: .word 0x04000400
+_01FF86E8: .word 0x84400000
diff --git a/arm9/asm/arm9overlay.s b/arm9/asm/arm9overlay.s
new file mode 100644
index 00000000..70356c52
--- /dev/null
+++ b/arm9/asm/arm9overlay.s
@@ -0,0 +1,5 @@
+ .text
+
+ .global ARM9Overlay
+ARM9Overlay:
+ .incbin "baserom.nds", 0x10B800, 0xAE0
diff --git a/arm9/asm/crt0.s b/arm9/asm/crt0.s
new file mode 100644
index 00000000..709bd5f3
--- /dev/null
+++ b/arm9/asm/crt0.s
@@ -0,0 +1,283 @@
+ .include "asm/macros.inc"
+ .include "global.inc"
+
+ .text
+
+ arm_func_start _start
+_start: ; 0x02000800
+ mov ip, #0x4000000
+ str ip, [ip, #0x208]
+_02000808:
+ ldrh r0, [ip, #6]
+ cmp r0, #0
+ bne _02000808
+ bl init_cp15
+ mov r0, #0x13
+ msr cpsr_c, r0
+ ldr r0, _02000918 ; =SDK_AUTOLOAD_DTCM_START
+ add r0, r0, #0x3fc0
+ mov sp, r0
+ mov r0, #0x12
+ msr cpsr_c, r0
+ ldr r0, _02000918 ; =SDK_AUTOLOAD_DTCM_START
+ add r0, r0, #0x3fc0
+ sub r0, r0, #0x40
+ sub sp, r0, #4
+ tst sp, #4
+ subeq sp, sp, #4
+ ldr r1, _0200091C ; =0x00000400
+ sub r1, r0, r1
+ mov r0, #0x1f
+ msr cpsr_fsxc, r0
+ sub sp, r1, #4
+ mov r0, #0
+ ldr r1, _02000918 ; =SDK_AUTOLOAD_DTCM_START
+ mov r2, #0x4000
+ bl INITi_CpuClear32
+ mov r0, #0
+ ldr r1, _02000920 ; =0x05000000
+ mov r2, #1024
+ bl INITi_CpuClear32
+ mov r0, #512
+ ldr r1, _02000924 ; =0x07000000
+ mov r2, #1024
+ bl INITi_CpuClear32
+ ldr r1, _02000928 ; =_start_ModuleParams
+ ldr r0, [r1, #20]
+ bl MIi_UncompressBackward
+ bl do_autoload
+ ldr r0, _02000928 ; =_start_ModuleParams
+ ldr r1, [r0, #12]
+ ldr r2, [r0, #16]
+ mov r3, r1
+ mov r0, #0
+_020008B4:
+ cmp r1, r2
+ strcc r0, [r1], #4
+ bcc _020008B4
+ bic r1, r3, #31
+_020008C4:
+ mcr p15, 0x0, r0, cr7, cr10, 4
+ mcr p15, 0x0, r1, cr7, cr5, 1
+ mcr p15, 0x0, r1, cr7, cr14, 1
+ add r1, r1, #32
+ cmp r1, r2
+ blt _020008C4
+ ldr r1, _0200092C ; =0x027FFF9C
+ str r0, [r1]
+ ldr r1, _02000918 ; =SDK_AUTOLOAD_DTCM_START
+ add r1, r1, #16320
+ add r1, r1, #60
+ ldr r0, _02000930 ; =OS_IrqHandler
+ str r0, [r1]
+ bl _fp_init
+ bl NitroStartUp
+ bl __call_static_initializers
+ ldr r1, _02000934 ; =0x02000C55
+ ldr lr, _02000938 ; =0xFFFF0000
+ tst sp, #4
+ subne sp, sp, #4
+ bx r1
+_02000918: .word SDK_AUTOLOAD_DTCM_START
+_0200091C: .word SDK_IRQ_STACKSIZE
+_02000920: .word 0x05000000
+_02000924: .word 0x07000000
+_02000928: .word _start_ModuleParams
+_0200092C: .word 0x027FFF9C
+_02000930: .word OS_IrqHandler
+_02000934: .word NitroMain
+_02000938: .word 0xFFFF0000
+ arm_func_end _start
+
+ arm_func_start INITi_CpuClear32
+INITi_CpuClear32:
+ add ip, r1, r2
+_02000940:
+ cmp r1, ip
+ stmltia r1!, {r0}
+ blt _02000940
+ bx lr
+ arm_func_end INITi_CpuClear32
+
+ arm_func_start MIi_UncompressBackward
+MIi_UncompressBackward:
+ cmp r0, #0
+ beq _020009F8
+ stmdb sp!, {r4-r7}
+ ldmdb r0, {r1, r2}
+ add r2, r0, r2
+ sub r3, r0, r1, lsr #24
+ bic r1, r1, #-16777216
+ sub r1, r0, r1
+ mov r4, r2
+_02000974:
+ cmp r3, r1
+ ble _020009D4
+ ldrb r5, [r3, #-1]!
+ mov r6, #8
+_02000984:
+ subs r6, r6, #1
+ blt _02000974
+ tst r5, #128
+ bne _020009A0
+ ldrb r0, [r3, #-1]!
+ strb r0, [r2, #-1]!
+ b _020009C8
+_020009A0:
+ ldrb ip, [r3, #-1]!
+ ldrb r7, [r3, #-1]!
+ orr r7, r7, ip, lsl #8
+ bic r7, r7, #61440
+ add r7, r7, #2
+ add ip, ip, #32
+_020009B8:
+ ldrb r0, [r2, r7]
+ strb r0, [r2, #-1]!
+ subs ip, ip, #16
+ bge _020009B8
+_020009C8:
+ cmp r3, r1
+ mov r5, r5, lsl #0x1
+ bgt _02000984
+_020009D4:
+ mov r0, #0
+ bic r3, r1, #31
+_020009DC:
+ mcr p15, 0x0, r0, cr7, cr10, 4
+ mcr p15, 0x0, r3, cr7, cr5, 1
+ mcr p15, 0x0, r3, cr7, cr14, 1
+ add r3, r3, #32
+ cmp r3, r4
+ blt _020009DC
+ ldmia sp!, {r4-r7}
+_020009F8:
+ bx lr
+ arm_func_end MIi_UncompressBackward
+
+ arm_func_start do_autoload
+do_autoload:
+ ldr r0, =_start_ModuleParams
+ ldr r1, [r0]
+ ldr r2, [r0, #4]
+ ldr r3, [r0, #8]
+_02000A0C:
+ cmp r1, r2
+ beq _02000A6C
+ ldr r5, [r1], #4
+ ldr r7, [r1], #4
+ add r6, r5, r7
+ mov r4, r5
+_02000A24:
+ cmp r4, r6
+ ldrmi r7, [r3], #4
+ strmi r7, [r4], #4
+ bmi _02000A24
+ ldr r7, [r1], #4
+ add r6, r4, r7
+ mov r7, #0
+_02000A40:
+ cmp r4, r6
+ strcc r7, [r4], #4
+ bcc _02000A40
+ bic r4, r5, #31
+_02000A50:
+ mcr p15, 0x0, r7, cr7, cr10, 4
+ mcr p15, 0x0, r4, cr7, cr5, 1
+ mcr p15, 0x0, r4, cr7, cr14, 1
+ add r4, r4, #32
+ cmp r4, r6
+ blt _02000A50
+ b _02000A0C
+_02000A6C:
+ b _start_AutoloadDoneCallback
+ .pool
+ .global _start_AutoloadDoneCallback
+_start_AutoloadDoneCallback:
+ bx lr
+ arm_func_end do_autoload
+
+ arm_func_start init_cp15
+init_cp15: ; 0x02000A78
+ mrc p15, 0x0, r0, c1, c0, 0x0
+ ldr r1, =0x000F9005
+ bic r0, r0, r1
+ mcr p15, 0x0, r0, c1, c0, 0x0
+ mov r0, #0
+ mcr p15, 0x0, r0, c7, c5, 0x0
+ mcr p15, 0x0, r0, c7, c6, 0x0
+ mcr p15, 0x0, r0, c7, c10, 0x4
+ ldr r0, =0x04000033
+ mcr p15, 0x0, r0, c6, c0, 0x0
+ ldr r0, =0x0200002D
+ mcr p15, 0x0, r0, c6, c1, 0x0
+ ldr r0, =0x027E0021
+ mcr p15, 0x0, r0, c6, c2, 0x0
+ ldr r0, =0x08000035
+ mcr p15, 0x0, r0, c6, c3, 0x0
+ ldr r0, =SDK_AUTOLOAD_DTCM_START
+ orr r0, r0, #0x1a
+ orr r0, r0, #1
+ mcr p15, 0x0, r0, c6, c4, 0x0
+ ldr r0, =0x0100002F
+ mcr p15, 0x0, r0, c6, c5, 0x0
+ ldr r0, =0xFFFF001D
+ mcr p15, 0x0, r0, c6, c6, 0x0
+ ldr r0, =0x027FF017
+ mcr p15, 0x0, r0, c6, c7, 0x0
+ mov r0, #0x20
+ mcr p15, 0x0, r0, c9, c1, 0x1
+ ldr r0, =SDK_AUTOLOAD_DTCM_START
+ orr r0, r0, #0xa
+ mcr p15, 0x0, r0, c9, c1, 0x0
+ mov r0, #0x42
+ mcr p15, 0x0, r0, c2, c0, 0x1
+ mov r0, #0x42
+ mcr p15, 0x0, r0, c2, c0, 0x0
+ mov r0, #2
+ mcr p15, 0x0, r0, c3, c0, 0x0
+ ldr r0, =0x05100011
+ mcr p15, 0x0, r0, c5, c0, 0x3
+ ldr r0, =0x15111011
+ mcr p15, 0x0, r0, c5, c0, 0x2
+ mrc p15, 0x0, r0, c1, c0, 0x0
+ ldr r1, =0x0005707D
+ orr r0, r0, r1
+ mcr p15, 0x0, r0, c1, c0, 0x0
+ bx lr
+ .align 2, 0
+ .pool
+
+ arm_func_start OSi_ReferSymbol
+OSi_ReferSymbol: ; 0x02000B60
+ bx lr
+
+ arm_func_start NitroStartUp
+NitroStartUp: ; 0x02000B64
+ bx lr
+
+_start_ModuleParams:
+ .word SDK_AUTOLOAD_LIST
+ .word SDK_AUTOLOAD_LIST_END
+ .word SDK_AUTOLOAD_START
+ .word SDK_STATIC_BSS_START
+ .word SDK_STATIC_BSS_END
+
+ .word 0x00000000
+ .ascii "1u" ; 31 75
+ .byte 0x02, 0x03
+ .word 0xdec00621
+ .byte 0xde, 0xc0, 0x06, 0x21
+
+ # strings
+ .balign 4
+ .asciz "[SDK+NINTENDO:DWC1.2.30006.061019.2254_DWC_1_2_PLUS6]"
+ .balign 4
+ .asciz "[SDK+NINTENDO:WiFi1.2.30000.0609050341]"
+ .balign 4
+ .asciz "[SDK+UBIQUITOUS:CPS]"
+ .balign 4
+ .asciz "[SDK+UBIQUITOUS:SSL]"
+ .balign 4
+ .asciz "[SDK+Abiosso:libVCT 1.0.1_ec]"
+ .balign 4
+ .asciz "[SDK+NINTENDO:BACKUP]"
diff --git a/arm9/asm/filesystem.s b/arm9/asm/filesystem.s
new file mode 100644
index 00000000..75af021d
--- /dev/null
+++ b/arm9/asm/filesystem.s
@@ -0,0 +1,648 @@
+ .include "asm/macros.inc"
+ .include "global.inc"
+
+ .text
+
+ thumb_func_start ReadNARCFile
+ReadNARCFile: ; 0x02006314
+ push {r3-r7, lr}
+ sub sp, #0x60
+ add r4, r1, #0x0
+ mov r1, #0x0
+ str r0, [sp, #0x0]
+ str r1, [sp, #0x14]
+ str r1, [sp, #0x10]
+ str r1, [sp, #0xc]
+ add r0, sp, #0x8
+ strh r1, [r0, #0x0]
+ add r0, sp, #0x18
+ add r5, r2, #0x0
+ str r3, [sp, #0x4]
+ blx FS_InitFile
+ add r0, sp, #0x18
+ add r1, r4, #0x0
+ blx FS_OpenFile
+ add r0, sp, #0x18
+ mov r1, #0xc
+ mov r2, #0x0
+ blx FS_SeekFile
+ add r0, sp, #0x18
+ add r1, sp, #0x14
+ mov r2, #0x2
+ blx FS_ReadFile
+ ldr r4, [sp, #0x14]
+ add r0, sp, #0x18
+ add r1, r4, #0x4
+ mov r2, #0x0
+ blx FS_SeekFile
+ add r0, sp, #0x18
+ add r1, sp, #0x14
+ mov r2, #0x4
+ blx FS_ReadFile
+ add r0, sp, #0x18
+ add r1, sp, #0x8
+ mov r2, #0x2
+ blx FS_ReadFile
+ add r0, sp, #0x8
+ ldrh r0, [r0, #0x0]
+ cmp r0, r5
+ bgt _0200637A
+ bl ErrorHandling
+_0200637A:
+ ldr r0, [sp, #0x14]
+ mov r2, #0x0
+ add r6, r4, r0
+ add r0, sp, #0x18
+ add r1, r6, #0x4
+ blx FS_SeekFile
+ add r0, sp, #0x18
+ add r1, sp, #0x14
+ mov r2, #0x4
+ blx 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
+ add r0, sp, #0x18
+ add r1, sp, #0x10
+ mov r2, #0x4
+ blx FS_ReadFile
+ add r0, sp, #0x18
+ add r1, sp, #0xc
+ mov r2, #0x4
+ blx FS_ReadFile
+ add r2, r6, r7
+ ldr r1, [sp, #0x10]
+ add r2, #0x8
+ add r2, r2, r1
+ ldr r1, [sp, #0x4]
+ add r0, sp, #0x18
+ add r1, r1, r2
+ mov r2, #0x0
+ blx FS_SeekFile
+ ldr r0, [sp, #0x78]
+ cmp r0, #0x0
+ bne _020063D6
+ ldr r1, [sp, #0xc]
+ ldr r0, [sp, #0x10]
+ sub r0, r1, r0
+_020063D6:
+ str r0, [sp, #0x14]
+ cmp r0, #0x0
+ bne _020063E0
+ bl ErrorHandling
+_020063E0:
+ ldr r1, [sp, #0x0]
+ ldr r2, [sp, #0x14]
+ add r0, sp, #0x18
+ blx FS_ReadFile
+ add r0, sp, #0x18
+ blx FS_CloseFile
+ add sp, #0x60
+ pop {r3-r7, pc}
+
+ thumb_func_start LoadFileIntoMemory
+LoadFileIntoMemory: ; 0x020063F4
+ push {r3-r7, lr}
+ sub sp, #0x60
+ add r5, r1, #0x0
+ mov r1, #0x0
+ add r4, r0, #0x0
+ str r1, [sp, #0x14]
+ str r1, [sp, #0x10]
+ str r1, [sp, #0xc]
+ add r0, sp, #0x8
+ strh r1, [r0, #0x0]
+ add r0, sp, #0x18
+ str r2, [sp, #0x0]
+ str r3, [sp, #0x4]
+ blx FS_InitFile
+ add r0, sp, #0x18
+ add r1, r4, #0x0
+ blx FS_OpenFile
+ add r0, sp, #0x18
+ mov r1, #0xc
+ mov r2, #0x0
+ blx FS_SeekFile
+ add r0, sp, #0x18
+ add r1, sp, #0x14
+ mov r2, #0x2
+ blx FS_ReadFile
+ ldr r4, [sp, #0x14]
+ add r0, sp, #0x18
+ add r1, r4, #0x4
+ mov r2, #0x0
+ blx FS_SeekFile
+ add r0, sp, #0x18
+ add r1, sp, #0x14
+ mov r2, #0x4
+ blx FS_ReadFile
+ add r0, sp, #0x18
+ add r1, sp, #0x8
+ mov r2, #0x2
+ blx FS_ReadFile
+ add r0, sp, #0x8
+ ldrh r0, [r0, #0x0]
+ cmp r0, r5
+ bgt _0200645A
+ bl ErrorHandling
+_0200645A:
+ ldr r0, [sp, #0x14]
+ mov r2, #0x0
+ add r6, r4, r0
+ add r0, sp, #0x18
+ add r1, r6, #0x4
+ blx FS_SeekFile
+ add r0, sp, #0x18
+ add r1, sp, #0x14
+ mov r2, #0x4
+ blx 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
+ add r0, sp, #0x18
+ add r1, sp, #0x10
+ mov r2, #0x4
+ blx FS_ReadFile
+ add r0, sp, #0x18
+ add r1, sp, #0xc
+ mov r2, #0x4
+ blx FS_ReadFile
+ add r2, r6, r7
+ ldr r1, [sp, #0x10]
+ add r2, #0x8
+ add r2, r2, r1
+ ldr r1, [sp, #0x4]
+ add r0, sp, #0x18
+ add r1, r1, r2
+ mov r2, #0x0
+ blx FS_SeekFile
+ ldr r0, [sp, #0x78]
+ cmp r0, #0x0
+ bne _020064B6
+ ldr r1, [sp, #0xc]
+ ldr r0, [sp, #0x10]
+ sub r0, r1, r0
+_020064B6:
+ str r0, [sp, #0x14]
+ cmp r0, #0x0
+ bne _020064C0
+ bl ErrorHandling
+_020064C0:
+ ldr r0, [sp, #0x7c]
+ cmp r0, #0x0
+ bne _020064D0
+ ldr r0, [sp, #0x0]
+ ldr r1, [sp, #0x14]
+ bl FUN_02016998
+ b _020064D8
+_020064D0:
+ ldr r0, [sp, #0x0]
+ ldr r1, [sp, #0x14]
+ bl FUN_020169D8
+_020064D8:
+ add r4, r0, #0x0
+ ldr r2, [sp, #0x14]
+ add r0, sp, #0x18
+ add r1, r4, #0x0
+ blx FS_ReadFile
+ add r0, sp, #0x18
+ blx FS_CloseFile
+ add r0, r4, #0x0
+ add sp, #0x60
+ pop {r3-r7, pc}
+
+ thumb_func_start LoadFromNARC
+LoadFromNARC: ; 0x020064F0
+ push {r3-r4, lr}
+ sub sp, #0x4
+ mov r3, #0x0
+ lsl r4, r1, #0x2
+ ldr r1, _02006508 ; =0x021058A0
+ str r3, [sp, #0x0]
+ ldr r1, [r1, r4]
+ bl ReadNARCFile
+ add sp, #0x4
+ pop {r3-r4, pc}
+ nop
+_02006508: .word 0x021058A0
+
+ thumb_func_start LoadFromNarc_2
+LoadFromNarc_2: ; 0x0200650C
+ push {r4, lr}
+ sub sp, #0x8
+ mov r3, #0x0
+ str r3, [sp, #0x0]
+ lsl r4, r0, #0x2
+ ldr r0, _02006524 ; =0x021058A0
+ str r3, [sp, #0x4]
+ ldr r0, [r0, r4]
+ bl LoadFileIntoMemory
+ add sp, #0x8
+ pop {r4, pc}
+ .balign 4
+_02006524: .word 0x021058A0
+
+ thumb_func_start FUN_02006528
+FUN_02006528: ; 0x02006528
+ push {r4, lr}
+ sub sp, #0x8
+ mov r3, #0x0
+ str r3, [sp, #0x0]
+ mov r4, #0x1
+ str r4, [sp, #0x4]
+ lsl r4, r0, #0x2
+ ldr r0, _02006544 ; =0x021058A0
+ ldr r0, [r0, r4]
+ bl LoadFileIntoMemory
+ add sp, #0x8
+ pop {r4, pc}
+ nop
+_02006544: .word 0x021058A0
+
+ thumb_func_start FUN_02006548
+FUN_02006548: ; 0x02006548
+ push {r3-r4, lr}
+ sub sp, #0x4
+ ldr r4, [sp, #0x10]
+ str r4, [sp, #0x0]
+ lsl r4, r1, #0x2
+ ldr r1, _02006560 ; =0x021058A0
+ ldr r1, [r1, r4]
+ bl ReadNARCFile
+ add sp, #0x4
+ pop {r3-r4, pc}
+ nop
+_02006560: .word 0x021058A0
+
+ thumb_func_start FUN_02006564
+FUN_02006564: ; 0x02006564
+ push {r4, lr}
+ sub sp, #0x8
+ ldr r4, [sp, #0x10]
+ str r4, [sp, #0x0]
+ mov r4, #0x0
+ str r4, [sp, #0x4]
+ lsl r4, r0, #0x2
+ ldr r0, _02006580 ; =0x021058A0
+ ldr r0, [r0, r4]
+ bl LoadFileIntoMemory
+ add sp, #0x8
+ pop {r4, pc}
+ nop
+_02006580: .word 0x021058A0
+
+ thumb_func_start FUN_02006584
+FUN_02006584: ; 0x02006584
+ push {r4, lr}
+ sub sp, #0x8
+ ldr r4, [sp, #0x10]
+ str r4, [sp, #0x0]
+ mov r4, #0x1
+ str r4, [sp, #0x4]
+ lsl r4, r0, #0x2
+ ldr r0, _020065A0 ; =0x021058A0
+ ldr r0, [r0, r4]
+ bl LoadFileIntoMemory
+ add sp, #0x8
+ pop {r4, pc}
+ nop
+_020065A0: .word 0x021058A0
+
+ thumb_func_start LoadFromNARC_7
+LoadFromNARC_7: ; 0x020065A4
+ push {r3-r7, lr}
+ sub sp, #0x58
+ add r5, r1, #0x0
+ mov r1, #0x0
+ add r4, r0, #0x0
+ str r1, [sp, #0xc]
+ str r1, [sp, #0x8]
+ str r1, [sp, #0x4]
+ add r0, sp, #0x0
+ strh r1, [r0, #0x0]
+ add r0, sp, #0x10
+ blx FS_InitFile
+ ldr r1, _0200666C ; =0x021058A0
+ lsl r2, r4, #0x2
+ ldr r1, [r1, r2]
+ add r0, sp, #0x10
+ blx FS_OpenFile
+ add r0, sp, #0x10
+ mov r1, #0xc
+ mov r2, #0x0
+ blx FS_SeekFile
+ add r0, sp, #0x10
+ add r1, sp, #0xc
+ mov r2, #0x2
+ blx FS_ReadFile
+ ldr r4, [sp, #0xc]
+ add r0, sp, #0x10
+ add r1, r4, #0x4
+ mov r2, #0x0
+ blx FS_SeekFile
+ add r0, sp, #0x10
+ add r1, sp, #0xc
+ mov r2, #0x4
+ blx FS_ReadFile
+ add r0, sp, #0x10
+ add r1, sp, #0x0
+ mov r2, #0x2
+ blx FS_ReadFile
+ add r0, sp, #0x0
+ ldrh r0, [r0, #0x0]
+ cmp r0, r5
+ bgt _0200660A
+ bl ErrorHandling
+_0200660A:
+ ldr r0, [sp, #0xc]
+ mov r2, #0x0
+ add r6, r4, r0
+ add r0, sp, #0x10
+ add r1, r6, #0x4
+ blx FS_SeekFile
+ add r0, sp, #0x10
+ add r1, sp, #0xc
+ mov r2, #0x4
+ blx 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
+ add r0, sp, #0x10
+ add r1, sp, #0x8
+ mov r2, #0x4
+ blx FS_ReadFile
+ add r0, sp, #0x10
+ add r1, sp, #0x4
+ mov r2, #0x4
+ blx 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
+ ldr r1, [sp, #0x4]
+ ldr r0, [sp, #0x8]
+ sub r0, r1, r0
+ str r0, [sp, #0xc]
+ bne _02006664
+ bl ErrorHandling
+_02006664:
+ ldr r0, [sp, #0xc]
+ add sp, #0x58
+ pop {r3-r7, pc}
+ nop
+_0200666C: .word 0x021058A0
+
+ thumb_func_start FUN_02006670
+FUN_02006670: ; 0x02006670
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r0, r1, #0x0
+ mov r1, #0x54
+ bl FUN_02016998
+ add r4, r0, #0x0
+ beq _020066EC
+ mov r1, #0x0
+ str r1, [r4, #0x48]
+ blx FS_InitFile
+ ldr r1, _020066F0 ; =0x021058A0
+ lsl r2, r5, #0x2
+ ldr r1, [r1, r2]
+ add r0, r4, #0x0
+ blx FS_OpenFile
+ add r0, r4, #0x0
+ mov r1, #0xc
+ mov r2, #0x0
+ blx FS_SeekFile
+ add r1, r4, #0x0
+ add r0, r4, #0x0
+ add r1, #0x48
+ mov r2, #0x2
+ blx FS_ReadFile
+ ldr r1, [r4, #0x48]
+ add r0, r4, #0x0
+ add r1, r1, #0x4
+ mov r2, #0x0
+ blx FS_SeekFile
+ add r0, r4, #0x0
+ add r1, sp, #0x0
+ mov r2, #0x4
+ blx FS_ReadFile
+ add r1, r4, #0x0
+ add r0, r4, #0x0
+ add r1, #0x50
+ mov r2, #0x2
+ blx 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
+ add r0, r4, #0x0
+ add r1, sp, #0x0
+ mov r2, #0x4
+ blx FS_ReadFile
+ ldr r0, [sp, #0x0]
+ add r0, r5, r0
+ str r0, [r4, #0x4c]
+_020066EC:
+ add r0, r4, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+_020066F0: .word 0x021058A0
+
+ thumb_func_start FUN_020066F4
+FUN_020066F4: ; 0x020066F4
+ push {r4, lr}
+ add r4, r0, #0x0
+ blx FS_CloseFile
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ pop {r4, pc}
+
+ thumb_func_start FUN_02006704
+FUN_02006704: ; 0x02006704
+ push {r4-r6, lr}
+ sub sp, #0x8
+ add r5, r0, #0x0
+ add r0, #0x50
+ ldrh r0, [r0, #0x0]
+ add r4, r1, #0x0
+ add r6, r2, #0x0
+ cmp r0, r4
+ bhi _0200671A
+ bl ErrorHandling
+_0200671A:
+ ldr r2, [r5, #0x48]
+ lsl r1, r4, #0x3
+ add r2, #0xc
+ add r1, r2, r1
+ add r0, r5, #0x0
+ mov r2, #0x0
+ blx FS_SeekFile
+ add r0, r5, #0x0
+ add r1, sp, #0x4
+ mov r2, #0x4
+ blx FS_ReadFile
+ add r0, r5, #0x0
+ add r1, sp, #0x0
+ mov r2, #0x4
+ blx 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
+ ldr r2, [sp, #0x0]
+ ldr r1, [sp, #0x4]
+ add r0, r6, #0x0
+ sub r1, r2, r1
+ bl FUN_02016998
+ add r4, r0, #0x0
+ beq _0200676C
+ ldr r3, [sp, #0x0]
+ ldr r2, [sp, #0x4]
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ sub r2, r3, r2
+ blx FS_ReadFile
+_0200676C:
+ add r0, r4, #0x0
+ add sp, #0x8
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_02006774
+FUN_02006774: ; 0x02006774
+ push {r4-r6, lr}
+ sub sp, #0x8
+ add r5, r0, #0x0
+ add r0, #0x50
+ ldrh r0, [r0, #0x0]
+ add r4, r1, #0x0
+ add r6, r2, #0x0
+ cmp r0, r4
+ bhi _0200678A
+ bl ErrorHandling
+_0200678A:
+ ldr r2, [r5, #0x48]
+ lsl r1, r4, #0x3
+ add r2, #0xc
+ add r1, r2, r1
+ add r0, r5, #0x0
+ mov r2, #0x0
+ blx FS_SeekFile
+ add r0, r5, #0x0
+ add r1, sp, #0x4
+ mov r2, #0x4
+ blx FS_ReadFile
+ add r0, r5, #0x0
+ add r1, sp, #0x0
+ mov r2, #0x4
+ blx 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
+ ldr r3, [sp, #0x0]
+ ldr r2, [sp, #0x4]
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ sub r2, r3, r2
+ blx FS_ReadFile
+ add sp, #0x8
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_020067D0
+FUN_020067D0: ; 0x020067D0
+ push {r3-r5, lr}
+ sub sp, #0x8
+ add r5, r0, #0x0
+ add r0, #0x50
+ ldrh r0, [r0, #0x0]
+ add r4, r1, #0x0
+ cmp r0, r4
+ bhi _020067E4
+ bl ErrorHandling
+_020067E4:
+ ldr r2, [r5, #0x48]
+ lsl r1, r4, #0x3
+ add r2, #0xc
+ add r1, r2, r1
+ add r0, r5, #0x0
+ mov r2, #0x0
+ blx FS_SeekFile
+ add r0, r5, #0x0
+ add r1, sp, #0x4
+ mov r2, #0x4
+ blx FS_ReadFile
+ add r0, r5, #0x0
+ add r1, sp, #0x0
+ mov r2, #0x4
+ blx FS_ReadFile
+ ldr r1, [sp, #0x0]
+ ldr r0, [sp, #0x4]
+ sub r0, r1, r0
+ add sp, #0x8
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_02006814
+FUN_02006814: ; 0x02006814
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ add r0, #0x50
+ ldrh r0, [r0, #0x0]
+ add r4, r1, #0x0
+ add r6, r2, #0x0
+ add r7, r3, #0x0
+ cmp r0, r4
+ bhi _0200682A
+ bl ErrorHandling
+_0200682A:
+ ldr r2, [r5, #0x48]
+ lsl r1, r4, #0x3
+ add r2, #0xc
+ add r1, r2, r1
+ add r0, r5, #0x0
+ mov r2, #0x0
+ blx FS_SeekFile
+ add r0, r5, #0x0
+ add r1, sp, #0x0
+ mov r2, #0x4
+ blx FS_ReadFile
+ ldr r2, [r5, #0x4c]
+ ldr r1, [sp, #0x0]
+ add r2, #0x8
+ add r1, r2, r1
+ add r0, r5, #0x0
+ add r1, r6, r1
+ mov r2, #0x0
+ blx FS_SeekFile
+ ldr r1, [sp, #0x18]
+ add r0, r5, #0x0
+ add r2, r7, #0x0
+ blx FS_ReadFile
+ pop {r3-r7, pc}
+ .balign 4
diff --git a/arm9/asm/macros.inc b/arm9/asm/macros.inc
new file mode 100644
index 00000000..156b2b09
--- /dev/null
+++ b/arm9/asm/macros.inc
@@ -0,0 +1 @@
+ .include "asm/macros/function.inc"
diff --git a/arm9/asm/macros/function.inc b/arm9/asm/macros/function.inc
new file mode 100644
index 00000000..6b9e5f40
--- /dev/null
+++ b/arm9/asm/macros/function.inc
@@ -0,0 +1,24 @@
+ .macro arm_func_start name
+ .balign 4, 0
+ .global \name
+ .arm
+ .endm
+
+ .macro arm_func_end name
+ .size \name, .-\name
+ .endm
+
+ .macro thumb_func_start name
+ .balign 4, 0
+ .global \name
+ .thumb
+ .endm
+
+ .macro non_word_aligned_thumb_func_start name
+ .global \name
+ .thumb
+ .endm
+
+ .macro thumb_func_end name
+ .size \name, .-\name
+ .endm
diff --git a/arm9/asm/rom2.s b/arm9/asm/rom2.s
new file mode 100644
index 00000000..0f18b45a
--- /dev/null
+++ b/arm9/asm/rom2.s
@@ -0,0 +1,7 @@
+
+ .include "asm/macros.inc"
+ .include "global.inc"
+
+ .data
+
+.incbin "baserom.nds", 0xF0710, 0x3F8 ; this does not seem to be code
diff --git a/arm9/asm/rom2_2.s b/arm9/asm/rom2_2.s
new file mode 100644
index 00000000..d5055773
--- /dev/null
+++ b/arm9/asm/rom2_2.s
@@ -0,0 +1,734 @@
+.include "asm/macros.inc"
+.include "global.inc"
+
+/* rom2.s TODO: Disassemble */
+
+.section .data
+
+.incbin "baserom.nds", 0xF0B50, 0x6A0C
+
+ .global gScriptCmdTable
+gScriptCmdTable: ; 0x020F355C
+ .word FUN_020399A0
+ .word FUN_020399A4
+ .word FUN_020399A8
+ .word FUN_020399B4
+ .word FUN_02039A28
+ .word FUN_02039A40
+ .word FUN_02039A5C
+ .word FUN_02039A78
+ .word FUN_02039A90
+ .word FUN_02039AAC
+ .word FUN_02039ACC
+ .word FUN_02039AF8
+ .word FUN_02039B28
+ .word FUN_02039B50
+ .word FUN_02039B78
+ .word FUN_02039BA0
+ .word FUN_02039BBC
+ .word FUN_02039BDC
+ .word FUN_02039C08
+ .word FUN_02039C40
+ .word FUN_02039C78
+ .word FUN_02039CE4
+ .word FUN_02039CF8
+ .word FUN_02039D10
+ .word FUN_02039D48
+ .word FUN_02039D78
+ .word FUN_02039DAC
+ .word FUN_02039DC4
+ .word FUN_02039DD0
+ .word FUN_02039E04
+ .word FUN_02039E38
+ .word FUN_02039E50
+ .word FUN_02039E68
+ .word FUN_02039E84
+ .word FUN_02039EC0
+ .word FUN_02039EE8
+ .word FUN_02039F0C
+ .word FUN_02039F30
+ .word FUN_02039F58
+ .word FUN_02039F88
+ .word FUN_02039FB8
+ .word FUN_02039FDC
+ .word FUN_0203A00C
+ .word FUN_0203A038
+ .word FUN_0203A2C4
+ .word FUN_0203A304
+ .word FUN_0203A388
+ .word FUN_0203A400
+ .word FUN_0203A45C
+ .word FUN_0203A4D0
+ .word FUN_0203A560
+ .word FUN_0203A590
+ .word FUN_0203A5D8
+ .word FUN_0203A608
+ .word FUN_0203A780
+ .word FUN_0203A830
+ .word FUN_0203A85C
+ .word FUN_0203A878
+ .word FUN_0203A8B8
+ .word FUN_0203A9F0
+ .word FUN_0203AA90
+ .word FUN_0203A630
+ .word FUN_0203AAA0
+ .word FUN_0203DEA8
+ .word FUN_0203AB8C
+ .word FUN_0203AC14
+ .word FUN_0203AC9C
+ .word FUN_0203AD08
+ .word FUN_0203ADC4
+ .word FUN_0203AE4C
+ .word FUN_0203AED4
+ .word FUN_0203AF34
+ .word FUN_0203AF58
+ .word FUN_020414E0
+ .word FUN_020414FC
+ .word FUN_02041518
+ .word FUN_02041558
+ .word FUN_02041588
+ .word FUN_020415AC
+ .word FUN_020415BC
+ .word FUN_020413E8
+ .word FUN_020413F8
+ .word FUN_0204140C
+ .word FUN_02041424
+ .word FUN_0204143C
+ .word FUN_02041478
+ .word FUN_0204149C
+ .word FUN_020414B8
+ .word FUN_020414CC
+ .word FUN_020415E0
+ .word FUN_02041618
+ .word FUN_02041644
+ .word FUN_02041650
+ .word FUN_02041664
+ .word FUN_0203AFC4
+ .word FUN_0203B148
+ .word FUN_0203B1F0
+ .word FUN_0203B3B0
+ .word FUN_0203B3C0
+ .word FUN_0203B3DC
+ .word FUN_0203B3F8
+ .word FUN_0203B440
+ .word FUN_0203B468
+ .word FUN_0203B500
+ .word FUN_0203B544
+ .word FUN_0203B574
+ .word FUN_0203B5B8
+ .word FUN_0203B640
+ .word FUN_0203B724
+ .word FUN_0203B758
+ .word FUN_0203B7D8
+ .word FUN_02043C6C
+ .word FUN_02043C90
+ .word FUN_02043CE4
+ .word FUN_02043D78
+ .word FUN_02043DC8
+ .word FUN_02043DE0
+ .word FUN_02043A44
+ .word FUN_02043A94
+ .word FUN_02043AAC
+ .word FUN_02043ACC
+ .word FUN_02043AFC
+ .word FUN_02043B28
+ .word FUN_02045784
+ .word FUN_020457DC
+ .word FUN_02045834
+ .word FUN_0204588C
+ .word FUN_020458E4
+ .word FUN_02045918
+ .word FUN_02045950
+ .word FUN_02045954
+ .word FUN_02045958
+ .word FUN_020459AC
+ .word FUN_020459E8
+ .word FUN_02045A3C
+ .word FUN_02045A78
+ .word FUN_02045ACC
+ .word FUN_02045B08
+ .word FUN_02045B44
+ .word FUN_02045B80
+ .word FUN_02045BC8
+ .word FUN_02045C04
+ .word FUN_02045C40
+ .word FUN_02045C7C
+ .word FUN_02045CD4
+ .word FUN_02045D10
+ .word FUN_02045D4C
+ .word FUN_0203B81C
+ .word FUN_0203B85C
+ .word FUN_0203B8A0
+ .word FUN_020442BC
+ .word FUN_02044414
+ .word FUN_0204449C
+ .word FUN_020444F4
+ .word FUN_02044598
+ .word FUN_0203BB34
+ .word FUN_0203BB80
+ .word FUN_0203BB84
+ .word FUN_0203BB88
+ .word FUN_0203BB8C
+ .word FUN_02045264
+ .word FUN_0203BC1C
+ .word FUN_0203BCBC
+ .word FUN_0203BCCC
+ .word FUN_0203BCD8
+ .word FUN_0203BF20
+ .word FUN_0203BF2C
+ .word FUN_0203BF84
+ .word FUN_0203BFEC
+ .word FUN_0203C118
+ .word FUN_0203C12C
+ .word FUN_0203C278
+ .word FUN_0203C2C4
+ .word FUN_0203C2E0
+ .word FUN_0203C2F0
+ .word FUN_0203C300
+ .word FUN_0203C32C
+ .word FUN_0203C33C
+ .word FUN_0203C368
+ .word FUN_0203C3C8
+ .word FUN_0203C3E8
+ .word FUN_0203C430
+ .word FUN_020416A8
+ .word FUN_02041770
+ .word FUN_020417E0
+ .word FUN_02041808
+ .word FUN_0203C4F0
+ .word FUN_0203C520
+ .word FUN_0203C6C4
+ .word FUN_0203C70C
+ .word FUN_0203C730
+ .word FUN_0203C844
+ .word FUN_0203C874
+ .word FUN_0203C8B4
+ .word FUN_0203C8E4
+ .word FUN_0203C930
+ .word FUN_0203C960
+ .word FUN_0203C990
+ .word FUN_0203CA20
+ .word FUN_0203CA2C
+ .word FUN_0203CA5C
+ .word FUN_0203CB08
+ .word FUN_0203CB20
+ .word FUN_0203CB48
+ .word FUN_0203CB60
+ .word FUN_020406CC
+ .word FUN_02040700
+ .word FUN_02040724
+ .word FUN_02040748
+ .word FUN_02040790
+ .word FUN_020407C8
+ .word FUN_02040800
+ .word FUN_0204083C
+ .word FUN_02040874
+ .word FUN_0204091C
+ .word FUN_020409C0
+ .word FUN_020409F8
+ .word FUN_02040A30
+ .word FUN_02040A7C
+ .word FUN_02040B0C
+ .word FUN_02040B5C
+ .word FUN_02040BAC
+ .word FUN_0203CBBC
+ .word FUN_02040BFC
+ .word FUN_02040C34
+ .word FUN_02040C6C
+ .word FUN_02040CA4
+ .word FUN_0203CB70
+ .word FUN_0204185C
+ .word FUN_0204188C
+ .word FUN_0203CBE8
+ .word FUN_02041970
+ .word FUN_020419F8
+ .word FUN_02041A80
+ .word FUN_02041AB4
+ .word FUN_02041AD4
+ .word FUN_02041AE0
+ .word FUN_02041B10
+ .word FUN_02041B70
+ .word FUN_02041B9C
+ .word FUN_02041BC4
+ .word FUN_02041BF0
+ .word FUN_0203CC88
+ .word FUN_0203CD20
+ .word FUN_0203CDB8
+ .word FUN_0203CDC4
+ .word FUN_0203CDD0
+ .word FUN_0203CE00
+ .word FUN_0203FE90
+ .word FUN_0203FEC0
+ .word FUN_0203FF10
+ .word FUN_02040028
+ .word FUN_02040074
+ .word FUN_020400C8
+ .word FUN_0204011C
+ .word FUN_02040170
+ .word FUN_020401CC
+ .word FUN_02040204
+ .word FUN_02040220
+ .word FUN_0204025C
+ .word FUN_02040298
+ .word FUN_020402D4
+ .word FUN_02040304
+ .word FUN_02040340
+ .word FUN_02040370
+ .word FUN_020403A0
+ .word FUN_020403D0
+ .word FUN_02040414
+ .word FUN_02040458
+ .word FUN_020404FC
+ .word FUN_0204052C
+ .word FUN_0204056C
+ .word FUN_02040488
+ .word FUN_020405CC
+ .word FUN_020405F8
+ .word FUN_02040638
+ .word FUN_0204064C
+ .word FUN_02040660
+ .word FUN_020406C0
+ .word FUN_0204059C
+ .word FUN_020405B4
+ .word FUN_02044CE0
+ .word FUN_02044D44
+ .word FUN_0203CE0C
+ .word FUN_0203CE8C
+ .word FUN_0203CEBC
+ .word FUN_0203CF04
+ .word FUN_0203CF34
+ .word FUN_0203CF64
+ .word FUN_0203CF94
+ .word FUN_0203CFC4
+ .word FUN_0203CFC8
+ .word FUN_0203D050
+ .word FUN_0203D0F8
+ .word FUN_0203D134
+ .word FUN_0203D140
+ .word FUN_0203D150
+ .word FUN_0203D178
+ .word FUN_0203D194
+ .word FUN_0203D1A4
+ .word FUN_0203D1C0
+ .word FUN_0203D214
+ .word FUN_0203C054
+ .word FUN_0203C090
+ .word FUN_0203C0CC
+ .word FUN_0203D23C
+ .word FUN_0203D248
+ .word FUN_0203D278
+ .word FUN_0203D2A4
+ .word FUN_0203D2E4
+ .word FUN_0203D330
+ .word FUN_0203D33C
+ .word FUN_0203D36C
+ .word FUN_0203D3A4
+ .word FUN_0203D60C
+ .word FUN_0203D61C
+ .word FUN_0203D3DC
+ .word FUN_0203D448
+ .word FUN_0203D458
+ .word FUN_0203D490
+ .word FUN_0203D528
+ .word FUN_0203D5B0
+ .word FUN_0203D5F8
+ .word FUN_0203D630
+ .word FUN_0203D66C
+ .word FUN_0203D6C4
+ .word FUN_0203D560
+ .word FUN_0203FCF4
+ .word FUN_0203FDBC
+ .word FUN_0203FE08
+ .word FUN_0203FE48
+ .word FUN_0203D868
+ .word FUN_0203D874
+ .word FUN_0203D8A0
+ .word FUN_0203D8D0
+ .word FUN_0203D8E8
+ .word FUN_0203D8EC
+ .word FUN_0203D938
+ .word FUN_0203D948
+ .word FUN_0203D728
+ .word FUN_0203D738
+ .word FUN_0203D774
+ .word FUN_0203D834
+ .word FUN_020453F4
+ .word FUN_02045424
+ .word FUN_02045438
+ .word FUN_02045468
+ .word FUN_02045484
+ .word FUN_020454CC
+ .word FUN_0204552C
+ .word FUN_02045500
+ .word FUN_0204557C
+ .word FUN_02045590
+ .word FUN_020455BC
+ .word FUN_020455D0
+ .word FUN_020455E4
+ .word FUN_02045610
+ .word FUN_02045624
+ .word FUN_02045638
+ .word FUN_02045664
+ .word FUN_0203DC00
+ .word FUN_0203DC58
+ .word FUN_0203DC70
+ .word FUN_0203DC88
+ .word FUN_0203DCA0
+ .word FUN_02043E00
+ .word FUN_02043E20
+ .word FUN_0203DCB8
+ .word FUN_0203DCC8
+ .word FUN_0203DCD8
+ .word FUN_0203DCE8
+ .word FUN_0203DCF8
+ .word FUN_0203DD08
+ .word FUN_0203DD18
+ .word FUN_0203DD34
+ .word FUN_02044B00
+ .word FUN_0203C460
+ .word FUN_0203C4B0
+ .word FUN_0203D958
+ .word FUN_02040D04
+ .word FUN_02040D7C
+ .word FUN_02042B0C
+ .word FUN_02042B40
+ .word FUN_02042B74
+ .word FUN_02042BA8
+ .word FUN_02042BDC
+ .word FUN_02042C10
+ .word FUN_02042C44
+ .word FUN_02042C8C
+ .word FUN_02042CBC
+ .word FUN_0203D998
+ .word FUN_0203D9E8
+ .word FUN_0203DA78
+ .word FUN_0203DAB0
+ .word FUN_0203DAE8
+ .word FUN_0203DB38
+ .word FUN_0203DB88
+ .word FUN_0203AB44
+ .word FUN_0203AB74
+ .word FUN_0203DBD4
+ .word FUN_0203A484
+ .word FUN_0203B8E4
+ .word FUN_0203B944
+ .word FUN_0203B968
+ .word FUN_0203B9B4
+ .word FUN_0203BA3C
+ .word FUN_0203BAB0
+ .word FUN_0203BAF4
+ .word FUN_0204434C
+ .word FUN_020443A8
+ .word FUN_02044B2C
+ .word FUN_02044B84
+ .word FUN_02044C0C
+ .word FUN_02044C88
+ .word FUN_0203DD60
+ .word FUN_0203DE00
+ .word FUN_0203DE4C
+ .word FUN_0203DE58
+ .word FUN_0203DE80
+ .word FUN_02043CB4
+ .word FUN_02043E9C
+ .word FUN_02044120
+ .word FUN_02044138
+ .word FUN_0204413C
+ .word FUN_02043E50
+ .word FUN_02043E68
+ .word FUN_02043EFC
+ .word FUN_02043D28
+ .word FUN_0203DD50
+ .word FUN_02044140
+ .word FUN_02043F50
+ .word FUN_02043FA0
+ .word FUN_02043FF4
+ .word FUN_0203DEC4
+ .word FUN_0203DEF8
+ .word FUN_0203DF2C
+ .word FUN_0203DF38
+ .word FUN_0203DF64
+ .word FUN_0203DF84
+ .word FUN_0203DFA8
+ .word FUN_0203DFE0
+ .word FUN_0204488C
+ .word FUN_020448D4
+ .word FUN_020449A4
+ .word FUN_02044034
+ .word FUN_0203B618
+ .word FUN_020440C0
+ .word FUN_020440F0
+ .word FUN_02044F58
+ .word FUN_0203E018
+ .word FUN_0203E054
+ .word FUN_0203E078
+ .word FUN_0203E0CC
+ .word FUN_0203E120
+ .word FUN_02045D88
+ .word FUN_02045DD0
+ .word FUN_02044D8C
+ .word FUN_02044E34
+ .word FUN_02044E78
+ .word FUN_02040E4C
+ .word FUN_0203E138
+ .word FUN_0203E168
+ .word FUN_0203E254
+ .word FUN_02045678
+ .word FUN_020456D4
+ .word FUN_0204572C
+ .word FUN_0203E258
+ .word FUN_0203E29C
+ .word FUN_0203E2F8
+ .word FUN_0203E35C
+ .word FUN_0203E38C
+ .word FUN_0203C174
+ .word FUN_0203C1AC
+ .word FUN_0203C200
+ .word FUN_02042354
+ .word FUN_02042364
+ .word FUN_02042394
+ .word FUN_020423B0
+ .word FUN_02042700
+ .word FUN_02042780
+ .word FUN_020427A8
+ .word FUN_020427D0
+ .word FUN_02042864
+ .word FUN_02042894
+ .word FUN_020428E0
+ .word FUN_0203E4F0
+ .word FUN_0203E510
+ .word FUN_0203E568
+ .word FUN_0203E3D0
+ .word FUN_0203E408
+ .word FUN_0203E440
+ .word FUN_0203E470
+ .word FUN_0203E4A0
+ .word FUN_0203E4B0
+ .word FUN_02044ED8
+ .word FUN_0203E4D8
+ .word FUN_02044F20
+ .word FUN_02045268
+ .word FUN_02045398
+ .word FUN_0204539C
+ .word FUN_020452B4
+ .word FUN_02045308
+ .word FUN_0204469C
+ .word FUN_02044658
+ .word FUN_0203BC2C
+ .word FUN_02039A10
+ .word FUN_0203A04C
+ .word FUN_0203A098
+ .word FUN_0203A0FC
+ .word FUN_0203A13C
+ .word FUN_0203A188
+ .word FUN_0203A210
+ .word FUN_0203C7F4
+ .word FUN_0203C820
+ .word FUN_0203E5DC
+ .word FUN_0203C788
+ .word FUN_0203C7E4
+ .word FUN_0203C0FC
+ .word FUN_0203E674
+ .word FUN_0203BD08
+ .word FUN_0203BD28
+ .word FUN_0203BE50
+ .word FUN_0203BECC
+ .word FUN_0203BF00
+ .word FUN_0203A3C4
+ .word FUN_0203E684
+ .word FUN_0203E6B4
+ .word FUN_0203E6C4
+ .word FUN_0203E6FC
+ .word FUN_0203E72C
+ .word FUN_0204478C
+ .word FUN_02044800
+ .word FUN_0203E744
+ .word FUN_02044158
+ .word FUN_0204416C
+ .word FUN_02044198
+ .word FUN_0203E774
+ .word FUN_0203E7F0
+ .word FUN_0203E81C
+ .word FUN_0203E848
+ .word FUN_0203E858
+ .word FUN_02041C38
+ .word FUN_02045E1C
+ .word FUN_02045E20
+ .word FUN_02045EE0
+ .word FUN_02045EE4
+ .word FUN_02045F84
+ .word FUN_02045F88
+ .word FUN_02045F24
+ .word FUN_02045FCC
+ .word FUN_0203E870
+ .word FUN_0203E894
+ .word FUN_0203E8C4
+ .word FUN_0203E8F4
+ .word FUN_0203E928
+ .word FUN_0203E940
+ .word FUN_0203E954
+ .word FUN_0203E968
+ .word FUN_02044FE8
+ .word FUN_0204505C
+ .word FUN_02045104
+ .word FUN_02045170
+ .word FUN_02040EB4
+ .word FUN_0203E9CC
+ .word FUN_0203EA68
+ .word FUN_02041E40
+ .word FUN_02041FDC
+ .word FUN_02042038
+ .word FUN_02042110
+ .word FUN_0203EA90
+ .word FUN_0203EAB0
+ .word FUN_0203EB20
+ .word FUN_0203EB48
+ .word FUN_0203EB88
+ .word FUN_02042D1C
+ .word FUN_02046010
+ .word FUN_0204601C
+ .word FUN_02046028
+ .word FUN_0204602C
+ .word FUN_0203C5BC
+ .word FUN_0203C614
+ .word FUN_0203C680
+ .word FUN_0203EBC8
+ .word FUN_02044A6C
+ .word FUN_02044A94
+ .word FUN_0203EBE4
+ .word FUN_0203ECAC
+ .word FUN_0203ECD8
+ .word FUN_0203ECF4
+ .word FUN_0203ED10
+ .word FUN_02041194
+ .word FUN_020411C4
+ .word FUN_02041340
+ .word FUN_02040964
+ .word FUN_0203ED70
+ .word FUN_0204387C
+ .word FUN_020438D0
+ .word FUN_02043918
+ .word FUN_020439B4
+ .word FUN_0203FE80
+ .word FUN_0203EDA4
+ .word FUN_0203EDC8
+ .word FUN_0203EDE0
+ .word FUN_0203EE08
+ .word FUN_0203EE18
+ .word FUN_0203EE28
+ .word FUN_0203EE58
+ .word FUN_0203EE68
+ .word FUN_0203EE78
+ .word FUN_02040DB4
+ .word FUN_0203EE98
+ .word FUN_0203EED8
+ .word FUN_0203EF58
+ .word FUN_0203F00C
+ .word FUN_0203F020
+ .word FUN_0203F034
+ .word FUN_0203F058
+ .word FUN_0203F07C
+ .word FUN_0203F110
+ .word FUN_0203F174
+ .word FUN_0203F19C
+ .word FUN_0203A288
+ .word FUN_0203F234
+ .word FUN_0203F254
+ .word FUN_0203F26C
+ .word FUN_0203C58C
+ .word FUN_02040DEC
+ .word FUN_0203F2AC
+ .word FUN_02043B84
+ .word FUN_0203F2E4
+ .word FUN_02043C28
+ .word FUN_0203F31C
+ .word FUN_02044730
+ .word FUN_0203F348
+ .word FUN_0203F38C
+ .word FUN_0203F39C
+ .word FUN_0204214C
+ .word FUN_0203F3AC
+ .word FUN_0203F44C
+ .word FUN_0203F418
+ .word FUN_020408BC
+ .word FUN_02044A0C
+ .word FUN_0203F484
+ .word FUN_02041674
+ .word FUN_0203F4D8
+ .word FUN_0203F508
+ .word FUN_0203F5D4
+ .word FUN_0203F604
+ .word FUN_0203F634
+ .word FUN_0203F664
+ .word FUN_0203F6E4
+ .word FUN_0203F720
+ .word FUN_0203BDB8
+ .word FUN_0203BE68
+ .word FUN_0203BE80
+ .word FUN_0203F760
+ .word FUN_0203F7C8
+ .word FUN_0203F80C
+ .word FUN_0203F880
+ .word FUN_0203F924
+ .word FUN_02042950
+ .word FUN_02042980
+ .word FUN_02042998
+ .word FUN_020429B8
+ .word FUN_020429E8
+ .word FUN_02042A18
+ .word FUN_02042A48
+ .word FUN_02042A98
+ .word FUN_0203D7DC
+ .word FUN_0203ACC4
+ .word FUN_0203F8C0
+ .word FUN_0203F954
+ .word FUN_0204190C
+ .word FUN_0203B024
+ .word FUN_0203F9DC
+ .word FUN_0203F988
+ .word FUN_0203F9B0
+ .word FUN_0203B914
+ .word FUN_020453A0
+ .word FUN_0203FA14
+ .word FUN_02043B54
+ .word FUN_02043BD0
+ .word FUN_0203FA58
+ .word FUN_0203B7F0
+ .word FUN_0203FB4C
+ .word FUN_0203B790
+ .word FUN_020413C0
+ .word FUN_0203FB64
+ .word FUN_0203FB94
+ .word FUN_0203FBA0
+ .word FUN_0203FBAC
+ .word FUN_02040EF8
+ .word FUN_0203B2E0
+ .word FUN_0203FBBC
+ .word FUN_0203FC1C
+ .word FUN_020451D0
+ .word FUN_02042000
+ .word FUN_0203AD54
+ .word FUN_0203D4E8
+ .word FUN_0203D920
+ .word FUN_02041B40
+ .word FUN_0203D0A4
+ .word FUN_0203FC58
+ .word FUN_0203CAE8
+ .word FUN_0203A340
+ .word FUN_0203FC80
+ .word FUN_0203FCB0
+ .word FUN_0203FCDC
+ .word FUN_02040F34
+ .word FUN_02040F6C
+ .word FUN_02040FA4
+ .word FUN_02040FDC
+ .word FUN_02041014
+ .word FUN_0204104C
+ .word FUN_02041094
+ .word FUN_020410C8
+ .word FUN_02041100
+ .word FUN_02041138
+ .word FUN_02041174
+ .word FUN_0203AF84
+ .word FUN_0203AFA4
+
+.incbin "baserom.nds", 0xF80A0, 0x12F00
diff --git a/arm9/asm/scrcmd.s b/arm9/asm/scrcmd.s
new file mode 100644
index 00000000..d75850de
--- /dev/null
+++ b/arm9/asm/scrcmd.s
@@ -0,0 +1,24605 @@
+ .include "asm/macros.inc"
+ .include "global.inc"
+
+ .text
+
+ thumb_func_start FUN_020399A0
+FUN_020399A0: ; 0x020399A0
+ mov r0, #0x0
+ bx lr
+
+ thumb_func_start FUN_020399A4
+FUN_020399A4: ; 0x020399A4
+ mov r0, #0x0
+ bx lr
+
+ thumb_func_start FUN_020399A8
+FUN_020399A8: ; 0x020399A8
+ push {r3, lr}
+ bl StopScript
+ mov r0, #0x0
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_020399B4
+FUN_020399B4: ; 0x020399B4
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ add r1, r5, #0x0
+ add r1, #0x80
+ ldr r6, [r1, #0x0]
+ bl ScriptReadHalfword
+ add r7, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r4, r0, #0x0
+ add r0, r6, #0x0
+ add r1, r4, #0x0
+ bl FUN_020394B8
+ strh r7, [r0, #0x0]
+ ldr r1, _020399E4 ; =FUN_020399E8
+ add r0, r5, #0x0
+ str r4, [r5, #0x64]
+ bl SetupNativeScript
+ mov r0, #0x1
+ pop {r3-r7, pc}
+ .balign 4
+_020399E4: .word FUN_020399E8
+
+ thumb_func_start FUN_020399E8
+FUN_020399E8: ; 0x020399E8
+ push {r3, lr}
+ add r1, r0, #0x0
+ ldr r1, [r1, #0x64]
+ add r0, #0x80
+ lsl r1, r1, #0x10
+ ldr r0, [r0, #0x0]
+ lsr r1, r1, #0x10
+ bl FUN_020394B8
+ ldrh r1, [r0, #0x0]
+ sub r1, r1, #0x1
+ strh r1, [r0, #0x0]
+ ldrh r0, [r0, #0x0]
+ cmp r0, #0x0
+ bne _02039A0A
+ mov r0, #0x1
+ pop {r3, pc}
+_02039A0A:
+ mov r0, #0x0
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_02039A10
+FUN_02039A10: ; 0x02039A10
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl ScriptReadHalfword
+ add r4, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r4, #0x0]
+ bl FUN_020394F0
+ mov r0, #0x0
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02039A28
+FUN_02039A28: ; 0x02039A28
+ ldr r1, [r0, #0x8]
+ add r2, r1, #0x1
+ str r2, [r0, #0x8]
+ ldrb r3, [r1, #0x0]
+ add r1, r2, #0x1
+ str r1, [r0, #0x8]
+ ldrb r2, [r2, #0x0]
+ lsl r1, r3, #0x2
+ add r0, r0, r1
+ str r2, [r0, #0x64]
+ mov r0, #0x0
+ bx lr
+
+ thumb_func_start FUN_02039A40
+FUN_02039A40: ; 0x02039A40
+ push {r3-r5, lr}
+ add r4, r0, #0x0
+ ldr r2, [r4, #0x8]
+ add r1, r2, #0x1
+ str r1, [r4, #0x8]
+ ldrb r5, [r2, #0x0]
+ bl ScriptReadWord
+ lsl r1, r5, #0x2
+ add r1, r4, r1
+ str r0, [r1, #0x64]
+ mov r0, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_02039A5C
+FUN_02039A5C: ; 0x02039A5C
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ ldr r2, [r5, #0x8]
+ add r1, r2, #0x1
+ str r1, [r5, #0x8]
+ ldrb r4, [r2, #0x0]
+ bl ScriptReadWord
+ ldrb r1, [r0, #0x0]
+ lsl r0, r4, #0x2
+ add r0, r5, r0
+ str r1, [r0, #0x64]
+ mov r0, #0x0
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_02039A78
+FUN_02039A78: ; 0x02039A78
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl ScriptReadWord
+ ldr r2, [r4, #0x8]
+ add r1, r2, #0x1
+ str r1, [r4, #0x8]
+ ldrb r1, [r2, #0x0]
+ strb r1, [r0, #0x0]
+ mov r0, #0x0
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02039A90
+FUN_02039A90: ; 0x02039A90
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl ScriptReadWord
+ ldr r2, [r4, #0x8]
+ add r1, r2, #0x1
+ str r1, [r4, #0x8]
+ ldrb r1, [r2, #0x0]
+ lsl r1, r1, #0x2
+ add r1, r4, r1
+ ldr r1, [r1, #0x64]
+ strb r1, [r0, #0x0]
+ mov r0, #0x0
+ pop {r4, pc}
+
+ thumb_func_start FUN_02039AAC
+FUN_02039AAC: ; 0x02039AAC
+ ldr r1, [r0, #0x8]
+ add r2, r1, #0x1
+ str r2, [r0, #0x8]
+ ldrb r3, [r1, #0x0]
+ add r1, r2, #0x1
+ str r1, [r0, #0x8]
+ ldrb r1, [r2, #0x0]
+ lsl r1, r1, #0x2
+ add r1, r0, r1
+ ldr r2, [r1, #0x64]
+ lsl r1, r3, #0x2
+ add r0, r0, r1
+ str r2, [r0, #0x64]
+ mov r0, #0x0
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02039ACC
+FUN_02039ACC: ; 0x02039ACC
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ bl ScriptReadWord
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadWord
+ ldrb r0, [r0, #0x0]
+ strb r0, [r4, #0x0]
+ mov r0, #0x0
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_02039AE4
+FUN_02039AE4: ; 0x02039AE4
+ cmp r0, r1
+ bhs _02039AEC
+ mov r0, #0x0
+ bx lr
+_02039AEC:
+ cmp r0, r1
+ bne _02039AF4
+ mov r0, #0x1
+ bx lr
+_02039AF4:
+ mov r0, #0x2
+ bx lr
+
+ thumb_func_start FUN_02039AF8
+FUN_02039AF8: ; 0x02039AF8
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r0, [r4, #0x8]
+ add r1, r0, #0x1
+ str r1, [r4, #0x8]
+ ldrb r0, [r0, #0x0]
+ add r2, r1, #0x1
+ lsl r0, r0, #0x2
+ add r0, r4, r0
+ ldr r0, [r0, #0x64]
+ str r2, [r4, #0x8]
+ ldrb r1, [r1, #0x0]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ lsl r1, r1, #0x2
+ add r1, r4, r1
+ ldr r1, [r1, #0x64]
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ bl FUN_02039AE4
+ strb r0, [r4, #0x2]
+ mov r0, #0x0
+ pop {r4, pc}
+
+ thumb_func_start FUN_02039B28
+FUN_02039B28: ; 0x02039B28
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r0, [r4, #0x8]
+ add r1, r0, #0x1
+ str r1, [r4, #0x8]
+ ldrb r0, [r0, #0x0]
+ add r2, r1, #0x1
+ lsl r0, r0, #0x2
+ add r0, r4, r0
+ ldr r0, [r0, #0x64]
+ str r2, [r4, #0x8]
+ ldrb r1, [r1, #0x0]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_02039AE4
+ strb r0, [r4, #0x2]
+ mov r0, #0x0
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02039B50
+FUN_02039B50: ; 0x02039B50
+ push {r3-r5, lr}
+ add r4, r0, #0x0
+ ldr r2, [r4, #0x8]
+ add r1, r2, #0x1
+ str r1, [r4, #0x8]
+ ldrb r1, [r2, #0x0]
+ lsl r1, r1, #0x2
+ add r1, r4, r1
+ ldr r1, [r1, #0x64]
+ lsl r1, r1, #0x18
+ lsr r5, r1, #0x18
+ bl ScriptReadWord
+ ldrb r1, [r0, #0x0]
+ add r0, r5, #0x0
+ bl FUN_02039AE4
+ strb r0, [r4, #0x2]
+ mov r0, #0x0
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_02039B78
+FUN_02039B78: ; 0x02039B78
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl ScriptReadWord
+ ldr r2, [r4, #0x8]
+ ldrb r0, [r0, #0x0]
+ add r1, r2, #0x1
+ str r1, [r4, #0x8]
+ ldrb r1, [r2, #0x0]
+ lsl r1, r1, #0x2
+ add r1, r4, r1
+ ldr r1, [r1, #0x64]
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ bl FUN_02039AE4
+ strb r0, [r4, #0x2]
+ mov r0, #0x0
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02039BA0
+FUN_02039BA0: ; 0x02039BA0
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl ScriptReadWord
+ ldr r2, [r4, #0x8]
+ ldrb r0, [r0, #0x0]
+ add r1, r2, #0x1
+ str r1, [r4, #0x8]
+ ldrb r1, [r2, #0x0]
+ bl FUN_02039AE4
+ strb r0, [r4, #0x2]
+ mov r0, #0x0
+ pop {r4, pc}
+
+ thumb_func_start FUN_02039BBC
+FUN_02039BBC: ; 0x02039BBC
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ bl ScriptReadWord
+ ldrb r4, [r0, #0x0]
+ add r0, r5, #0x0
+ bl ScriptReadWord
+ ldrb r1, [r0, #0x0]
+ add r0, r4, #0x0
+ bl FUN_02039AE4
+ strb r0, [r5, #0x2]
+ mov r0, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_02039BDC
+FUN_02039BDC: ; 0x02039BDC
+ push {r3-r5, lr}
+ add r4, r0, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394B8
+ ldrh r5, [r0, #0x0]
+ add r0, r4, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_02039AE4
+ strb r0, [r4, #0x2]
+ mov r0, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_02039C08
+FUN_02039C08: ; 0x02039C08
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394B8
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394B8
+ add r1, r0, #0x0
+ ldrh r0, [r4, #0x0]
+ ldrh r1, [r1, #0x0]
+ bl FUN_02039AE4
+ strb r0, [r5, #0x2]
+ mov r0, #0x0
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_02039C40
+FUN_02039C40: ; 0x02039C40
+ push {r3-r7, lr}
+ add r7, r0, #0x0
+ add r0, #0x80
+ ldr r5, [r0, #0x0]
+ mov r1, #0x7
+ add r0, r5, #0x0
+ bl FUN_02039438
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ mov r1, #0xe
+ bl FUN_02039438
+ add r6, r0, #0x0
+ add r0, r7, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_02038EB0
+ str r0, [r6, #0x0]
+ ldrb r0, [r4, #0x0]
+ add r0, r0, #0x1
+ strb r0, [r4, #0x0]
+ mov r0, #0x1
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_02039C78
+FUN_02039C78: ; 0x02039C78
+ push {r3-r7, lr}
+ str r0, [sp, #0x0]
+ add r0, #0x80
+ ldr r5, [r0, #0x0]
+ mov r1, #0x5
+ add r0, r5, #0x0
+ bl FUN_02039438
+ add r6, r0, #0x0
+ add r0, r5, #0x0
+ mov r1, #0x7
+ bl FUN_02039438
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ mov r1, #0xe
+ bl FUN_02039438
+ add r7, r0, #0x0
+ ldr r0, [sp, #0x0]
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ mov r0, #0x1
+ strb r0, [r6, #0x0]
+ add r0, r5, #0x0
+ bl FUN_02038EB0
+ str r0, [r7, #0x0]
+ ldrb r0, [r4, #0x0]
+ ldr r1, _02039CC4 ; =FUN_02039CC8
+ add r0, r0, #0x1
+ strb r0, [r4, #0x0]
+ ldr r0, [sp, #0x0]
+ bl SetupNativeScript
+ mov r0, #0x1
+ pop {r3-r7, pc}
+ .balign 4
+_02039CC4: .word FUN_02039CC8
+
+ thumb_func_start FUN_02039CC8
+FUN_02039CC8: ; 0x02039CC8
+ push {r3, lr}
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ mov r1, #0x5
+ bl FUN_02039438
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x0
+ bne _02039CDE
+ mov r0, #0x1
+ pop {r3, pc}
+_02039CDE:
+ mov r0, #0x0
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_02039CE4
+FUN_02039CE4: ; 0x02039CE4
+ push {r3, lr}
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ mov r1, #0x5
+ bl FUN_02039438
+ mov r1, #0x0
+ strb r1, [r0, #0x0]
+ add r0, r1, #0x0
+ pop {r3, pc}
+
+ thumb_func_start FUN_02039CF8
+FUN_02039CF8: ; 0x02039CF8
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl ScriptReadWord
+ add r2, r0, #0x0
+ ldr r1, [r4, #0x8]
+ add r0, r4, #0x0
+ add r1, r1, r2
+ bl ScriptJump
+ mov r0, #0x0
+ pop {r4, pc}
+
+ thumb_func_start FUN_02039D10
+FUN_02039D10: ; 0x02039D10
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ mov r1, #0xa
+ bl FUN_02039438
+ ldr r1, [r5, #0x8]
+ add r6, r0, #0x0
+ add r0, r1, #0x1
+ str r0, [r5, #0x8]
+ add r0, r5, #0x0
+ ldrb r4, [r1, #0x0]
+ bl ScriptReadWord
+ add r7, r0, #0x0
+ ldr r0, [r6, #0x0]
+ bl FUN_02058448
+ cmp r4, r0
+ bne _02039D44
+ ldr r1, [r5, #0x8]
+ add r0, r5, #0x0
+ add r1, r1, r7
+ bl ScriptJump
+_02039D44:
+ mov r0, #0x0
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_02039D48
+FUN_02039D48: ; 0x02039D48
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ ldr r0, [r5, #0x74]
+ bl FUN_02046534
+ ldr r1, [r5, #0x8]
+ add r6, r0, #0x0
+ add r0, r1, #0x1
+ str r0, [r5, #0x8]
+ ldrb r4, [r1, #0x0]
+ add r0, r5, #0x0
+ bl ScriptReadWord
+ add r2, r0, #0x0
+ cmp r6, r4
+ bne _02039D72
+ ldr r1, [r5, #0x8]
+ add r0, r5, #0x0
+ add r1, r1, r2
+ bl ScriptJump
+_02039D72:
+ mov r0, #0x0
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_02039D78
+FUN_02039D78: ; 0x02039D78
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ mov r1, #0x9
+ bl FUN_02039438
+ ldr r1, [r5, #0x8]
+ add r6, r0, #0x0
+ add r0, r1, #0x1
+ str r0, [r5, #0x8]
+ ldrb r4, [r1, #0x0]
+ add r0, r5, #0x0
+ bl ScriptReadWord
+ add r2, r0, #0x0
+ ldr r0, [r6, #0x0]
+ cmp r0, r4
+ bne _02039DA8
+ ldr r1, [r5, #0x8]
+ add r0, r5, #0x0
+ add r1, r1, r2
+ bl ScriptJump
+_02039DA8:
+ mov r0, #0x0
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_02039DAC
+FUN_02039DAC: ; 0x02039DAC
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl ScriptReadWord
+ add r2, r0, #0x0
+ ldr r1, [r4, #0x8]
+ add r0, r4, #0x0
+ add r1, r1, r2
+ bl ScriptCall
+ mov r0, #0x0
+ pop {r4, pc}
+
+ thumb_func_start FUN_02039DC4
+FUN_02039DC4: ; 0x02039DC4
+ push {r3, lr}
+ bl ScriptReturn
+ mov r0, #0x0
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_02039DD0
+FUN_02039DD0: ; 0x02039DD0
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ ldr r2, [r5, #0x8]
+ add r1, r2, #0x1
+ str r1, [r5, #0x8]
+ ldrb r4, [r2, #0x0]
+ bl ScriptReadWord
+ add r1, r0, #0x0
+ lsl r0, r4, #0x1
+ add r3, r4, r0
+ ldr r0, _02039E00 ; =0x020F34E8
+ ldrb r2, [r5, #0x2]
+ add r0, r0, r3
+ ldrb r0, [r2, r0]
+ cmp r0, #0x1
+ bne _02039DFC
+ ldr r2, [r5, #0x8]
+ add r0, r5, #0x0
+ add r1, r2, r1
+ bl ScriptJump
+_02039DFC:
+ mov r0, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+_02039E00: .word 0x020F34E8
+
+ thumb_func_start FUN_02039E04
+FUN_02039E04: ; 0x02039E04
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ ldr r2, [r5, #0x8]
+ add r1, r2, #0x1
+ str r1, [r5, #0x8]
+ ldrb r4, [r2, #0x0]
+ bl ScriptReadWord
+ add r1, r0, #0x0
+ lsl r0, r4, #0x1
+ add r3, r4, r0
+ ldr r0, _02039E34 ; =0x020F34E8
+ ldrb r2, [r5, #0x2]
+ add r0, r0, r3
+ ldrb r0, [r2, r0]
+ cmp r0, #0x1
+ bne _02039E30
+ ldr r2, [r5, #0x8]
+ add r0, r5, #0x0
+ add r1, r2, r1
+ bl ScriptCall
+_02039E30:
+ mov r0, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+_02039E34: .word 0x020F34E8
+
+ thumb_func_start FUN_02039E38
+FUN_02039E38: ; 0x02039E38
+ push {r4, lr}
+ add r1, r0, #0x0
+ add r1, #0x80
+ ldr r4, [r1, #0x0]
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_0203953C
+ mov r0, #0x0
+ pop {r4, pc}
+
+ thumb_func_start FUN_02039E50
+FUN_02039E50: ; 0x02039E50
+ push {r4, lr}
+ add r1, r0, #0x0
+ add r1, #0x80
+ ldr r4, [r1, #0x0]
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_02039550
+ mov r0, #0x0
+ pop {r4, pc}
+
+ thumb_func_start FUN_02039E68
+FUN_02039E68: ; 0x02039E68
+ push {r3-r5, lr}
+ add r4, r0, #0x0
+ add r1, r4, #0x0
+ add r1, #0x80
+ ldr r5, [r1, #0x0]
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_02039528
+ strb r0, [r4, #0x2]
+ mov r0, #0x0
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_02039E84
+FUN_02039E84: ; 0x02039E84
+ push {r4-r6, lr}
+ add r4, r0, #0x0
+ add r1, r4, #0x0
+ add r1, #0x80
+ ldr r5, [r1, #0x0]
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394B8
+ add r6, r0, #0x0
+ add r0, r4, #0x0
+ bl ScriptReadHalfword
+ add r4, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r4, #0x0]
+ bl FUN_020394B8
+ add r4, r0, #0x0
+ ldrh r1, [r6, #0x0]
+ add r0, r5, #0x0
+ bl FUN_02039528
+ strh r0, [r4, #0x0]
+ mov r0, #0x0
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_02039EC0
+FUN_02039EC0: ; 0x02039EC0
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r1, r5, #0x0
+ add r1, #0x80
+ ldr r4, [r1, #0x0]
+ bl ScriptReadHalfword
+ add r5, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r5, #0x0]
+ bl FUN_020394B8
+ add r1, r0, #0x0
+ ldrh r1, [r1, #0x0]
+ add r0, r4, #0x0
+ bl FUN_0203953C
+ mov r0, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_02039EE8
+FUN_02039EE8: ; 0x02039EE8
+ push {r3-r5, lr}
+ add r4, r0, #0x0
+ add r1, r4, #0x0
+ add r1, #0x80
+ ldr r5, [r1, #0x0]
+ bl ScriptReadHalfword
+ add r4, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r4, #0x0]
+ bl FUN_020394F0
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_0203965C
+ mov r0, #0x0
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_02039F0C
+FUN_02039F0C: ; 0x02039F0C
+ push {r3-r5, lr}
+ add r4, r0, #0x0
+ add r1, r4, #0x0
+ add r1, #0x80
+ ldr r5, [r1, #0x0]
+ bl ScriptReadHalfword
+ add r4, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r4, #0x0]
+ bl FUN_020394F0
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_02039678
+ mov r0, #0x0
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_02039F30
+FUN_02039F30: ; 0x02039F30
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r1, r5, #0x0
+ add r1, #0x80
+ ldr r4, [r1, #0x0]
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_02039640
+ strb r0, [r5, #0x2]
+ mov r0, #0x0
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_02039F58
+FUN_02039F58: ; 0x02039F58
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394B8
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r5, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r5, #0x0]
+ bl FUN_020394F0
+ ldrh r1, [r4, #0x0]
+ add r0, r1, r0
+ strh r0, [r4, #0x0]
+ mov r0, #0x0
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_02039F88
+FUN_02039F88: ; 0x02039F88
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394B8
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r5, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r5, #0x0]
+ bl FUN_020394F0
+ ldrh r1, [r4, #0x0]
+ sub r0, r1, r0
+ strh r0, [r4, #0x0]
+ mov r0, #0x0
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_02039FB8
+FUN_02039FB8: ; 0x02039FB8
+ push {r3-r5, lr}
+ add r4, r0, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394B8
+ add r5, r0, #0x0
+ add r0, r4, #0x0
+ bl ScriptReadHalfword
+ strh r0, [r5, #0x0]
+ mov r0, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_02039FDC
+FUN_02039FDC: ; 0x02039FDC
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394B8
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r5, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r5, #0x0]
+ bl FUN_020394B8
+ ldrh r0, [r0, #0x0]
+ strh r0, [r4, #0x0]
+ mov r0, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_0203A00C
+FUN_0203A00C: ; 0x0203A00C
+ push {r3-r5, lr}
+ add r4, r0, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394B8
+ add r5, r0, #0x0
+ add r0, r4, #0x0
+ bl ScriptReadHalfword
+ add r4, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r4, #0x0]
+ bl FUN_020394F0
+ strh r0, [r5, #0x0]
+ mov r0, #0x0
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_0203A038
+FUN_0203A038: ; 0x0203A038
+ push {r3, lr}
+ ldr r2, [r0, #0x8]
+ add r1, r2, #0x1
+ str r1, [r0, #0x8]
+ ldrb r2, [r2, #0x0]
+ ldr r1, [r0, #0x78]
+ bl FUN_021E2C24
+ mov r0, #0x0
+ pop {r3, pc}
+
+ thumb_func_start FUN_0203A04C
+FUN_0203A04C: ; 0x0203A04C
+ push {r4-r6, lr}
+ add r4, r0, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r5, r0, #0x0
+ add r0, r4, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r6, r0, #0x0
+ mov r0, #0x1
+ mov r1, #0x1a
+ add r2, r5, #0x0
+ mov r3, #0x20
+ bl FUN_0200A86C
+ add r5, r0, #0x0
+ add r0, r4, #0x0
+ add r1, r5, #0x0
+ add r2, r6, #0x0
+ bl FUN_021E2C24
+ add r0, r5, #0x0
+ bl FUN_0200A8B8
+ mov r0, #0x0
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_0203A098
+FUN_0203A098: ; 0x0203A098
+ push {r3-r6, lr}
+ sub sp, #0x4
+ add r4, r0, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r5, r0, #0x0
+ add r0, r4, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r6, r0, #0x0
+ mov r0, #0x1
+ mov r1, #0x1a
+ add r2, r5, #0x0
+ mov r3, #0x20
+ bl FUN_0200A86C
+ add r5, r0, #0x0
+ mov r0, #0x0
+ str r0, [sp, #0x0]
+ add r0, r4, #0x0
+ add r1, r5, #0x0
+ add r2, r6, #0x0
+ mov r3, #0x1
+ bl FUN_021E2BD0
+ add r0, r5, #0x0
+ bl FUN_0200A8B8
+ ldr r1, _0203A0F8 ; =FUN_0203A2F0
+ add r0, r4, #0x0
+ bl SetupNativeScript
+ mov r0, #0x1
+ add sp, #0x4
+ pop {r3-r6, pc}
+ nop
+_0203A0F8: .word FUN_0203A2F0
+
+ thumb_func_start FUN_0203A0FC
+FUN_0203A0FC: ; 0x0203A0FC
+ push {r3-r7, lr}
+ sub sp, #0x8
+ add r5, r0, #0x0
+ bl ScriptReadHalfword
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r6, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r7, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ str r0, [sp, #0x0]
+ mov r0, #0xff
+ str r0, [sp, #0x4]
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ add r2, r6, #0x0
+ add r3, r7, #0x0
+ bl FUN_021E2C58
+ mov r0, #0x0
+ add sp, #0x8
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_0203A13C
+FUN_0203A13C: ; 0x0203A13C
+ push {r3-r7, lr}
+ sub sp, #0x8
+ add r5, r0, #0x0
+ bl ScriptReadHalfword
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r6, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r7, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ str r0, [sp, #0x0]
+ mov r0, #0x1
+ str r0, [sp, #0x4]
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ add r2, r6, #0x0
+ add r3, r7, #0x0
+ bl FUN_021E2C58
+ ldr r1, _0203A184 ; =FUN_0203A2F0
+ add r0, r5, #0x0
+ bl SetupNativeScript
+ mov r0, #0x1
+ add sp, #0x8
+ pop {r3-r7, pc}
+ nop
+_0203A184: .word FUN_0203A2F0
+
+ thumb_func_start FUN_0203A188
+FUN_0203A188: ; 0x0203A188
+ push {r4-r6, lr}
+ sub sp, #0x8
+ add r5, r0, #0x0
+ ldr r2, [r5, #0x8]
+ add r1, r2, #0x1
+ str r1, [r5, #0x8]
+ add r1, r5, #0x0
+ add r1, #0x80
+ ldr r1, [r1, #0x0]
+ ldrb r3, [r2, #0x0]
+ add r1, #0xa8
+ ldr r2, [r1, #0x0]
+ cmp r2, #0x0
+ bne _0203A1AA
+ add sp, #0x8
+ mov r0, #0x0
+ pop {r4-r6, pc}
+_0203A1AA:
+ lsl r1, r3, #0x4
+ add r1, r3, r1
+ add r2, #0x90
+ lsl r1, r1, #0x4
+ add r4, r2, r1
+ ldrh r1, [r2, r1]
+ ldr r2, _0203A204 ; =0x0000FFFF
+ cmp r1, r2
+ bne _0203A1E2
+ ldr r2, _0203A208 ; =0x0000022B
+ mov r0, #0x1
+ mov r1, #0x1a
+ mov r3, #0x20
+ bl FUN_0200A86C
+ add r6, r0, #0x0
+ mov r0, #0x0
+ str r0, [sp, #0x0]
+ ldrh r2, [r4, #0x2]
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ mov r3, #0x1
+ bl FUN_021E2BD0
+ add r0, r6, #0x0
+ bl FUN_0200A8B8
+ b _0203A1F4
+_0203A1E2:
+ mov r2, #0x6
+ ldrsh r2, [r4, r2]
+ str r2, [sp, #0x0]
+ mov r2, #0x1
+ str r2, [sp, #0x4]
+ ldrh r2, [r4, #0x2]
+ ldrh r3, [r4, #0x4]
+ bl FUN_021E2C58
+_0203A1F4:
+ ldr r1, _0203A20C ; =FUN_0203A2F0
+ add r0, r5, #0x0
+ bl SetupNativeScript
+ mov r0, #0x1
+ add sp, #0x8
+ pop {r4-r6, pc}
+ nop
+_0203A204: .word 0x0000FFFF
+_0203A208: .word 0x0000022B
+_0203A20C: .word FUN_0203A2F0
+
+ thumb_func_start FUN_0203A210
+FUN_0203A210: ; 0x0203A210
+ push {r3-r7, lr}
+ sub sp, #0x8
+ add r5, r0, #0x0
+ add r1, r5, #0x0
+ add r1, #0x80
+ ldr r2, [r5, #0x8]
+ ldr r6, [r1, #0x0]
+ add r1, r2, #0x1
+ str r1, [r5, #0x8]
+ ldrb r4, [r2, #0x0]
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r7, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ ldr r1, [r5, #0x8]
+ add r2, r0, #0x0
+ add r0, r1, #0x1
+ str r0, [r5, #0x8]
+ ldrb r3, [r1, #0x0]
+ mov r1, #0x0
+ add r0, sp, #0x4
+ strb r1, [r0, #0x0]
+ add r0, sp, #0x4
+ str r0, [sp, #0x0]
+ ldr r0, [r6, #0xc]
+ add r1, r7, #0x0
+ bl FUN_02244210
+ add r6, r0, #0x0
+ add r2, sp, #0x4
+ ldrb r2, [r2, #0x0]
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ add r2, r4, r2
+ lsl r2, r2, #0x18
+ lsr r2, r2, #0x18
+ mov r3, #0x1
+ bl FUN_021E2CBC
+ add r0, r6, #0x0
+ bl FUN_0200AB18
+ ldr r1, _0203A284 ; =FUN_0203A2F0
+ add r0, r5, #0x0
+ bl SetupNativeScript
+ mov r0, #0x1
+ add sp, #0x8
+ pop {r3-r7, pc}
+ nop
+_0203A284: .word FUN_0203A2F0
+
+ thumb_func_start FUN_0203A288
+FUN_0203A288: ; 0x0203A288
+ push {r3-r5, lr}
+ sub sp, #0x8
+ add r5, r0, #0x0
+ bl ScriptReadHalfword
+ add r4, r0, #0x0
+ add r0, sp, #0x4
+ add r1, r5, #0x0
+ bl FUN_021E2BB8
+ mov r1, #0x3
+ add r0, sp, #0x4
+ strb r1, [r0, #0x2]
+ add r0, sp, #0x4
+ str r0, [sp, #0x0]
+ ldr r1, [r5, #0x78]
+ add r0, r5, #0x0
+ add r2, r4, #0x0
+ mov r3, #0x0
+ bl FUN_021E2BD0
+ ldr r1, _0203A2C0 ; =FUN_0203A2F0
+ add r0, r5, #0x0
+ bl SetupNativeScript
+ mov r0, #0x1
+ add sp, #0x8
+ pop {r3-r5, pc}
+ .balign 4
+_0203A2C0: .word FUN_0203A2F0
+
+ thumb_func_start FUN_0203A2C4
+FUN_0203A2C4: ; 0x0203A2C4
+ push {r3-r4, lr}
+ sub sp, #0x4
+ add r4, r0, #0x0
+ ldr r2, [r4, #0x8]
+ mov r3, #0x1
+ add r1, r2, #0x1
+ str r1, [r4, #0x8]
+ mov r1, #0x0
+ str r1, [sp, #0x0]
+ ldrb r2, [r2, #0x0]
+ ldr r1, [r4, #0x78]
+ bl FUN_021E2BD0
+ ldr r1, _0203A2EC ; =FUN_0203A2F0
+ add r0, r4, #0x0
+ bl SetupNativeScript
+ mov r0, #0x1
+ add sp, #0x4
+ pop {r3-r4, pc}
+ .balign 4
+_0203A2EC: .word FUN_0203A2F0
+
+ thumb_func_start FUN_0203A2F0
+FUN_0203A2F0: ; 0x0203A2F0
+ push {r3, lr}
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ mov r1, #0x3
+ bl FUN_02039438
+ ldrb r0, [r0, #0x0]
+ bl FUN_020546C8
+ pop {r3, pc}
+
+ thumb_func_start FUN_0203A304
+FUN_0203A304: ; 0x0203A304
+ push {r3-r4, lr}
+ sub sp, #0x4
+ add r4, r0, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r2, r0, #0x0
+ mov r0, #0x0
+ str r0, [sp, #0x0]
+ lsl r2, r2, #0x18
+ ldr r1, [r4, #0x78]
+ add r0, r4, #0x0
+ lsr r2, r2, #0x18
+ mov r3, #0x1
+ bl FUN_021E2BD0
+ ldr r1, _0203A33C ; =FUN_0203A2F0
+ add r0, r4, #0x0
+ bl SetupNativeScript
+ mov r0, #0x1
+ add sp, #0x4
+ pop {r3-r4, pc}
+ .balign 4
+_0203A33C: .word FUN_0203A2F0
+
+ thumb_func_start FUN_0203A340
+FUN_0203A340: ; 0x0203A340
+ push {r3-r5, lr}
+ sub sp, #0x8
+ add r5, r0, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r4, r0, #0x0
+ add r0, sp, #0x4
+ add r1, r5, #0x0
+ bl FUN_021E2BB8
+ lsl r2, r4, #0x18
+ mov r3, #0x1
+ add r0, sp, #0x4
+ strb r3, [r0, #0x1]
+ add r0, sp, #0x4
+ str r0, [sp, #0x0]
+ ldr r1, [r5, #0x78]
+ add r0, r5, #0x0
+ lsr r2, r2, #0x18
+ bl FUN_021E2BD0
+ ldr r1, _0203A384 ; =FUN_0203A2F0
+ add r0, r5, #0x0
+ bl SetupNativeScript
+ mov r0, #0x1
+ add sp, #0x8
+ pop {r3-r5, pc}
+ .balign 4
+_0203A384: .word FUN_0203A2F0
+
+ thumb_func_start FUN_0203A388
+FUN_0203A388: ; 0x0203A388
+ push {r3-r4, lr}
+ sub sp, #0x4
+ add r4, r0, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r2, r0, #0x0
+ mov r3, #0x0
+ str r3, [sp, #0x0]
+ lsl r2, r2, #0x18
+ ldr r1, [r4, #0x78]
+ add r0, r4, #0x0
+ lsr r2, r2, #0x18
+ bl FUN_021E2BD0
+ ldr r1, _0203A3C0 ; =FUN_0203A2F0
+ add r0, r4, #0x0
+ bl SetupNativeScript
+ mov r0, #0x1
+ add sp, #0x4
+ pop {r3-r4, pc}
+ nop
+_0203A3C0: .word FUN_0203A2F0
+
+ thumb_func_start FUN_0203A3C4
+FUN_0203A3C4: ; 0x0203A3C4
+ push {r3-r4, lr}
+ sub sp, #0x4
+ add r4, r0, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ mov r1, #0xa
+ bl FUN_02039438
+ ldr r0, [r0, #0x0]
+ bl FUN_02058488
+ lsl r0, r0, #0x18
+ lsr r2, r0, #0x18
+ mov r0, #0x0
+ str r0, [sp, #0x0]
+ ldr r1, [r4, #0x78]
+ add r0, r4, #0x0
+ mov r3, #0x1
+ bl FUN_021E2BD0
+ ldr r1, _0203A3FC ; =FUN_0203A2F0
+ add r0, r4, #0x0
+ bl SetupNativeScript
+ mov r0, #0x1
+ add sp, #0x4
+ pop {r3-r4, pc}
+ nop
+_0203A3FC: .word FUN_0203A2F0
+
+ thumb_func_start FUN_0203A400
+FUN_0203A400: ; 0x0203A400
+ push {r3-r5, lr}
+ sub sp, #0x8
+ add r5, r0, #0x0
+ ldr r1, [r5, #0x8]
+ add r0, r1, #0x1
+ str r0, [r5, #0x8]
+ ldrb r4, [r1, #0x0]
+ bl FUN_02030F40
+ cmp r0, #0x0
+ bne _0203A428
+ mov r0, #0x0
+ str r0, [sp, #0x0]
+ ldr r1, [r5, #0x78]
+ add r0, r5, #0x0
+ add r2, r4, #0x0
+ mov r3, #0x1
+ bl FUN_021E2BD0
+ b _0203A448
+_0203A428:
+ add r0, sp, #0x4
+ add r1, r5, #0x0
+ bl FUN_021E2BB8
+ mov r1, #0x1
+ add r0, sp, #0x4
+ strb r1, [r0, #0x0]
+ strb r1, [r0, #0x1]
+ add r0, sp, #0x4
+ str r0, [sp, #0x0]
+ ldr r1, [r5, #0x78]
+ add r0, r5, #0x0
+ add r2, r4, #0x0
+ mov r3, #0x0
+ bl FUN_021E2BD0
+_0203A448:
+ ldr r1, _0203A458 ; =FUN_0203A2F0
+ add r0, r5, #0x0
+ bl SetupNativeScript
+ mov r0, #0x1
+ add sp, #0x8
+ pop {r3-r5, pc}
+ nop
+_0203A458: .word FUN_0203A2F0
+
+ thumb_func_start FUN_0203A45C
+FUN_0203A45C: ; 0x0203A45C
+ push {r3, lr}
+ ldr r1, _0203A468 ; =FUN_0203A46C
+ bl SetupNativeScript
+ mov r0, #0x1
+ pop {r3, pc}
+ .balign 4
+_0203A468: .word FUN_0203A46C
+
+ thumb_func_start FUN_0203A46C
+FUN_0203A46C: ; 0x0203A46C
+ ldr r0, _0203A480 ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #0x3
+ tst r0, r1
+ beq _0203A47A
+ mov r0, #0x1
+ bx lr
+_0203A47A:
+ mov r0, #0x0
+ bx lr
+ nop
+_0203A480: .word 0x021C48B8
+
+ thumb_func_start FUN_0203A484
+FUN_0203A484: ; 0x0203A484
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ str r0, [r4, #0x64]
+ ldr r1, _0203A4A8 ; =FUN_0203A4AC
+ add r0, r4, #0x0
+ bl SetupNativeScript
+ mov r0, #0x1
+ pop {r4, pc}
+ nop
+_0203A4A8: .word FUN_0203A4AC
+
+ thumb_func_start FUN_0203A4AC
+FUN_0203A4AC: ; 0x0203A4AC
+ ldr r1, _0203A4CC ; =0x021C48B8
+ ldr r2, [r1, #0x48]
+ mov r1, #0x3
+ tst r1, r2
+ beq _0203A4BA
+ mov r0, #0x1
+ bx lr
+_0203A4BA:
+ ldr r1, [r0, #0x64]
+ sub r1, r1, #0x1
+ str r1, [r0, #0x64]
+ bne _0203A4C6
+ mov r0, #0x1
+ bx lr
+_0203A4C6:
+ mov r0, #0x0
+ bx lr
+ nop
+_0203A4CC: .word 0x021C48B8
+
+ thumb_func_start FUN_0203A4D0
+FUN_0203A4D0: ; 0x0203A4D0
+ push {r3, lr}
+ ldr r1, _0203A4DC ; =FUN_0203A4E0
+ bl SetupNativeScript
+ mov r0, #0x1
+ pop {r3, pc}
+ .balign 4
+_0203A4DC: .word FUN_0203A4E0
+
+ thumb_func_start FUN_0203A4E0
+FUN_0203A4E0: ; 0x0203A4E0
+ push {r4, lr}
+ ldr r1, _0203A55C ; =0x021C48B8
+ ldr r2, [r1, #0x48]
+ mov r1, #0x3
+ add r3, r2, #0x0
+ tst r3, r1
+ beq _0203A4F2
+ mov r0, #0x1
+ pop {r4, pc}
+_0203A4F2:
+ mov r3, #0x40
+ tst r3, r2
+ beq _0203A506
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ mov r1, #0x0
+ ldr r0, [r0, #0x38]
+ bl FUN_02055304
+ b _0203A556
+_0203A506:
+ mov r3, #0x80
+ tst r3, r2
+ beq _0203A51A
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ mov r1, #0x1
+ ldr r0, [r0, #0x38]
+ bl FUN_02055304
+ b _0203A556
+_0203A51A:
+ mov r3, #0x20
+ tst r3, r2
+ beq _0203A52E
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ mov r1, #0x2
+ ldr r0, [r0, #0x38]
+ bl FUN_02055304
+ b _0203A556
+_0203A52E:
+ mov r3, #0x10
+ add r4, r2, #0x0
+ tst r4, r3
+ beq _0203A542
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0x38]
+ bl FUN_02055304
+ b _0203A556
+_0203A542:
+ lsl r1, r3, #0x6
+ tst r1, r2
+ beq _0203A552
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_02039460
+ b _0203A556
+_0203A552:
+ mov r0, #0x0
+ pop {r4, pc}
+_0203A556:
+ mov r0, #0x1
+ pop {r4, pc}
+ nop
+_0203A55C: .word 0x021C48B8
+
+ thumb_func_start FUN_0203A560
+FUN_0203A560: ; 0x0203A560
+ push {r3, lr}
+ ldr r1, _0203A56C ; =FUN_0203A570
+ bl SetupNativeScript
+ mov r0, #0x1
+ pop {r3, pc}
+ .balign 4
+_0203A56C: .word FUN_0203A570
+
+ thumb_func_start FUN_0203A570
+FUN_0203A570: ; 0x0203A570
+ ldr r0, _0203A58C ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #0x3
+ tst r0, r1
+ beq _0203A57E
+ mov r0, #0x1
+ bx lr
+_0203A57E:
+ mov r0, #0xf0
+ tst r0, r1
+ beq _0203A588
+ mov r0, #0x1
+ bx lr
+_0203A588:
+ mov r0, #0x0
+ bx lr
+ .balign 4
+_0203A58C: .word 0x021C48B8
+
+ thumb_func_start FUN_0203A590
+FUN_0203A590: ; 0x0203A590
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ add r0, #0x80
+ ldr r4, [r0, #0x0]
+ mov r1, #0x6
+ add r0, r4, #0x0
+ bl FUN_02039438
+ add r6, r0, #0x0
+ add r0, r4, #0x0
+ mov r1, #0x1
+ bl FUN_02039438
+ add r1, r0, #0x0
+ ldr r0, [r4, #0x8]
+ mov r2, #0x3
+ bl FUN_020545B8
+ add r0, r4, #0x0
+ mov r1, #0x1
+ bl FUN_02039438
+ add r5, #0x80
+ add r4, r0, #0x0
+ ldr r0, [r5, #0x0]
+ ldr r0, [r0, #0xc]
+ bl LoadPlayerDataAddress
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_02054608
+ mov r0, #0x1
+ strb r0, [r6, #0x0]
+ mov r0, #0x0
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_0203A5D8
+FUN_0203A5D8: ; 0x0203A5D8
+ push {r3-r5, lr}
+ add r0, #0x80
+ ldr r4, [r0, #0x0]
+ mov r1, #0x1
+ add r0, r4, #0x0
+ bl FUN_02039438
+ add r5, r0, #0x0
+ add r0, r4, #0x0
+ mov r1, #0x6
+ bl FUN_02039438
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ mov r1, #0x0
+ bl FUN_0200D0E0
+ add r0, r5, #0x0
+ bl FUN_02019178
+ mov r0, #0x0
+ strb r0, [r4, #0x0]
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_0203A608
+FUN_0203A608: ; 0x0203A608
+ push {r3-r5, lr}
+ add r0, #0x80
+ ldr r4, [r0, #0x0]
+ mov r1, #0x1
+ add r0, r4, #0x0
+ bl FUN_02039438
+ add r5, r0, #0x0
+ add r0, r4, #0x0
+ mov r1, #0x6
+ bl FUN_02039438
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_02019178
+ mov r0, #0x0
+ strb r0, [r4, #0x0]
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_0203A630
+FUN_0203A630: ; 0x0203A630
+ push {r4-r7, lr}
+ sub sp, #0xc
+ add r5, r0, #0x0
+ add r0, #0x80
+ ldr r4, [r0, #0x0]
+ mov r1, #0x31
+ add r0, r4, #0x0
+ bl FUN_02039438
+ add r6, r0, #0x0
+ add r0, r4, #0x0
+ mov r1, #0x2d
+ bl FUN_02039438
+ add r7, r0, #0x0
+ add r0, r4, #0x0
+ mov r1, #0x32
+ bl FUN_02039438
+ str r0, [sp, #0x0]
+ add r0, r4, #0x0
+ mov r1, #0x33
+ bl FUN_02039438
+ str r0, [sp, #0x4]
+ add r0, r4, #0x0
+ mov r1, #0x2e
+ bl FUN_02039438
+ str r0, [sp, #0x8]
+ add r0, r4, #0x0
+ mov r1, #0x34
+ bl FUN_02039438
+ ldr r2, [r5, #0x8]
+ add r1, r2, #0x1
+ str r1, [r5, #0x8]
+ ldrb r1, [r2, #0x0]
+ strh r1, [r6, #0x0]
+ ldr r2, [r5, #0x8]
+ add r1, r2, #0x1
+ str r1, [r5, #0x8]
+ ldrb r1, [r2, #0x0]
+ strh r1, [r7, #0x0]
+ ldr r2, [r5, #0x8]
+ add r1, r2, #0x1
+ str r1, [r5, #0x8]
+ ldrb r2, [r2, #0x0]
+ ldr r1, [sp, #0x0]
+ strh r2, [r1, #0x0]
+ ldr r2, [r5, #0x8]
+ add r1, r2, #0x1
+ str r1, [r5, #0x8]
+ ldrb r2, [r2, #0x0]
+ ldr r1, [sp, #0x4]
+ strh r2, [r1, #0x0]
+ ldr r2, [r5, #0x8]
+ add r1, r2, #0x1
+ str r1, [r5, #0x8]
+ ldrb r2, [r2, #0x0]
+ ldr r1, [sp, #0x8]
+ strh r2, [r1, #0x0]
+ ldr r2, [r5, #0x8]
+ add r1, r2, #0x1
+ str r1, [r5, #0x8]
+ ldrb r1, [r2, #0x0]
+ strh r1, [r0, #0x0]
+ ldr r1, _0203A6C4 ; =FUN_0203A6C8
+ add r0, r5, #0x0
+ bl SetupNativeScript
+ mov r0, #0x1
+ add sp, #0xc
+ pop {r4-r7, pc}
+ .balign 4
+_0203A6C4: .word FUN_0203A6C8
+
+ thumb_func_start FUN_0203A6C8
+FUN_0203A6C8: ; 0x0203A6C8
+ push {r4-r7, lr}
+ sub sp, #0xc
+ add r0, #0x80
+ ldr r4, [r0, #0x0]
+ mov r1, #0x31
+ add r0, r4, #0x0
+ bl FUN_02039438
+ add r7, r0, #0x0
+ add r0, r4, #0x0
+ mov r1, #0x32
+ bl FUN_02039438
+ str r0, [sp, #0x8]
+ add r0, r4, #0x0
+ mov r1, #0x33
+ bl FUN_02039438
+ str r0, [sp, #0x4]
+ add r0, r4, #0x0
+ mov r1, #0x34
+ bl FUN_02039438
+ str r0, [sp, #0x0]
+ add r0, r4, #0x0
+ mov r1, #0x2d
+ bl FUN_02039438
+ add r6, r0, #0x0
+ add r0, r4, #0x0
+ mov r1, #0x2e
+ bl FUN_02039438
+ add r5, r0, #0x0
+ ldrh r0, [r6, #0x0]
+ cmp r0, #0x0
+ bne _0203A71E
+ ldrh r0, [r5, #0x0]
+ cmp r0, #0x0
+ bne _0203A71E
+ add sp, #0xc
+ mov r0, #0x1
+ pop {r4-r7, pc}
+_0203A71E:
+ ldrh r3, [r7, #0x0]
+ cmp r3, #0x0
+ beq _0203A740
+ ldr r0, [sp, #0x8]
+ ldrh r0, [r0, #0x0]
+ cmp r0, #0x0
+ ldr r0, [r4, #0x8]
+ bne _0203A738
+ mov r1, #0x3
+ mov r2, #0x1
+ bl FUN_020179E0
+ b _0203A740
+_0203A738:
+ mov r1, #0x3
+ mov r2, #0x2
+ bl FUN_020179E0
+_0203A740:
+ ldr r0, [sp, #0x4]
+ ldrh r3, [r0, #0x0]
+ cmp r3, #0x0
+ beq _0203A764
+ ldr r0, [sp, #0x0]
+ ldrh r0, [r0, #0x0]
+ cmp r0, #0x0
+ ldr r0, [r4, #0x8]
+ bne _0203A75C
+ mov r1, #0x3
+ mov r2, #0x4
+ bl FUN_020179E0
+ b _0203A764
+_0203A75C:
+ mov r1, #0x3
+ mov r2, #0x5
+ bl FUN_020179E0
+_0203A764:
+ ldrh r0, [r6, #0x0]
+ cmp r0, #0x0
+ beq _0203A76E
+ sub r0, r0, #0x1
+ strh r0, [r6, #0x0]
+_0203A76E:
+ ldrh r0, [r5, #0x0]
+ cmp r0, #0x0
+ beq _0203A778
+ sub r0, r0, #0x1
+ strh r0, [r5, #0x0]
+_0203A778:
+ mov r0, #0x0
+ add sp, #0xc
+ pop {r4-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_0203A780
+FUN_0203A780: ; 0x0203A780
+ push {r4-r7, lr}
+ sub sp, #0x1c
+ add r5, r0, #0x0
+ add r0, #0x80
+ ldr r4, [r0, #0x0]
+ mov r1, #0x11
+ add r0, r4, #0x0
+ bl FUN_02039438
+ str r0, [sp, #0x18]
+ add r0, r4, #0x0
+ mov r1, #0x10
+ bl FUN_02039438
+ add r7, r0, #0x0
+ add r0, r4, #0x0
+ mov r1, #0xf
+ bl FUN_02039438
+ str r0, [sp, #0x14]
+ ldr r0, [r5, #0x8]
+ add r1, r0, #0x1
+ str r1, [r5, #0x8]
+ ldrb r0, [r0, #0x0]
+ str r0, [sp, #0xc]
+ add r0, r1, #0x1
+ str r0, [r5, #0x8]
+ ldrb r0, [r1, #0x0]
+ str r0, [sp, #0x10]
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r6, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ cmp r6, #0x0
+ bne _0203A7E0
+ add r0, r4, #0x0
+ mov r1, #0xa
+ bl FUN_02039438
+ ldr r0, [r0, #0x0]
+ mov r1, #0x0
+ bl FUN_02058510
+ lsl r0, r0, #0x10
+ lsr r6, r0, #0x10
+_0203A7E0:
+ ldr r0, [r4, #0x60]
+ ldr r1, [sp, #0x10]
+ add r2, r6, #0x0
+ bl FUN_021E8128
+ ldr r0, [r4, #0x60]
+ mov r1, #0x1
+ bl FUN_021E8130
+ add r0, r4, #0x0
+ bl FUN_021E8158
+ ldr r2, [sp, #0x18]
+ ldr r0, [r5, #0x78]
+ ldr r1, [sp, #0xc]
+ ldr r2, [r2, #0x0]
+ bl FUN_0200A8E0
+ ldr r0, [sp, #0x14]
+ ldr r2, [sp, #0x18]
+ ldr r0, [r0, #0x0]
+ ldr r1, [r7, #0x0]
+ ldr r2, [r2, #0x0]
+ bl FUN_0200B7B8
+ ldr r0, [r4, #0x60]
+ bl FUN_021E8140
+ mov r3, #0x0
+ str r3, [sp, #0x0]
+ str r3, [sp, #0x4]
+ str r3, [sp, #0x8]
+ ldr r2, [r7, #0x0]
+ mov r1, #0x1
+ bl FUN_0201BD84
+ mov r0, #0x1
+ add sp, #0x1c
+ pop {r4-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_0203A830
+FUN_0203A830: ; 0x0203A830
+ push {r3-r5, lr}
+ add r1, r0, #0x0
+ add r1, #0x80
+ ldr r2, [r0, #0x8]
+ ldr r4, [r1, #0x0]
+ add r1, r2, #0x1
+ str r1, [r0, #0x8]
+ ldrb r5, [r2, #0x0]
+ bl ScriptReadHalfword
+ add r2, r0, #0x0
+ ldr r0, [r4, #0x60]
+ add r1, r5, #0x0
+ bl FUN_021E8128
+ ldr r0, [r4, #0x60]
+ mov r1, #0x1
+ bl FUN_021E8130
+ mov r0, #0x1
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_0203A85C
+FUN_0203A85C: ; 0x0203A85C
+ push {r3, lr}
+ add r1, r0, #0x0
+ add r1, #0x80
+ ldr r2, [r0, #0x8]
+ ldr r3, [r1, #0x0]
+ add r1, r2, #0x1
+ str r1, [r0, #0x8]
+ ldrb r1, [r2, #0x0]
+ ldr r0, [r3, #0x60]
+ bl FUN_021E8130
+ mov r0, #0x1
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_0203A878
+FUN_0203A878: ; 0x0203A878
+ push {r4, lr}
+ add r4, r0, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0x60]
+ bl FUN_021E8148
+ cmp r0, #0x1
+ bne _0203A88E
+ mov r0, #0x0
+ pop {r4, pc}
+_0203A88E:
+ ldr r1, _0203A89C ; =FUN_0203A8A0
+ add r0, r4, #0x0
+ bl SetupNativeScript
+ mov r0, #0x1
+ pop {r4, pc}
+ nop
+_0203A89C: .word FUN_0203A8A0
+
+ thumb_func_start FUN_0203A8A0
+FUN_0203A8A0: ; 0x0203A8A0
+ push {r3, lr}
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0x60]
+ bl FUN_021E8148
+ cmp r0, #0x1
+ bne _0203A8B4
+ mov r0, #0x1
+ pop {r3, pc}
+_0203A8B4:
+ mov r0, #0x0
+ pop {r3, pc}
+
+ thumb_func_start FUN_0203A8B8
+FUN_0203A8B8: ; 0x0203A8B8
+ push {r3-r7, lr}
+ sub sp, #0x10
+ add r5, r0, #0x0
+ add r0, #0x80
+ ldr r4, [r0, #0x0]
+ mov r1, #0x3
+ add r0, r4, #0x0
+ bl FUN_02039438
+ str r0, [sp, #0x4]
+ add r0, r4, #0x0
+ mov r1, #0x11
+ bl FUN_02039438
+ add r6, r0, #0x0
+ add r0, r4, #0x0
+ mov r1, #0x10
+ bl FUN_02039438
+ add r7, r0, #0x0
+ add r0, r4, #0x0
+ mov r1, #0xf
+ bl FUN_02039438
+ ldr r1, [r5, #0x8]
+ str r0, [sp, #0x8]
+ add r0, r1, #0x1
+ str r0, [r5, #0x8]
+ ldrb r0, [r1, #0x0]
+ str r0, [sp, #0x0]
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ str r0, [sp, #0xc]
+ ldr r0, [r5, #0x78]
+ ldr r1, [sp, #0x0]
+ ldr r2, [r6, #0x0]
+ bl FUN_0200A8E0
+ ldr r0, [sp, #0x8]
+ ldr r1, [r7, #0x0]
+ ldr r0, [r0, #0x0]
+ ldr r2, [r6, #0x0]
+ bl FUN_0200B7B8
+ ldr r0, [r4, #0x60]
+ bl FUN_021E8140
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0xc]
+ bl LoadPlayerDataAddress
+ add r2, r0, #0x0
+ ldr r1, [r7, #0x0]
+ add r0, r4, #0x0
+ mov r3, #0x1
+ bl FUN_02054658
+ ldr r1, [sp, #0x4]
+ strb r0, [r1, #0x0]
+ ldr r0, [sp, #0xc]
+ ldr r1, _0203A948 ; =FUN_0203A94C
+ str r0, [r5, #0x64]
+ add r0, r5, #0x0
+ bl SetupNativeScript
+ mov r0, #0x1
+ add sp, #0x10
+ pop {r3-r7, pc}
+ .balign 4
+_0203A948: .word FUN_0203A94C
+
+ thumb_func_start FUN_0203A94C
+FUN_0203A94C: ; 0x0203A94C
+ push {r3-r7, lr}
+ add r7, r0, #0x0
+ add r0, #0x80
+ ldr r5, [r0, #0x0]
+ mov r1, #0x3
+ add r0, r5, #0x0
+ bl FUN_02039438
+ ldr r1, [r7, #0x64]
+ add r6, r0, #0x0
+ lsl r1, r1, #0x10
+ add r0, r5, #0x0
+ lsr r1, r1, #0x10
+ bl FUN_020394B8
+ add r4, r0, #0x0
+ ldr r0, [r5, #0x60]
+ bl FUN_021E8144
+ ldrb r0, [r6, #0x0]
+ ldr r5, _0203A9E8 ; =0x0000FFFF
+ bl FUN_020546C8
+ cmp r0, #0x1
+ bne _0203A986
+ mov r0, #0x2
+ strh r0, [r4, #0x0]
+ mov r0, #0x1
+ pop {r3-r7, pc}
+_0203A986:
+ ldr r0, _0203A9EC ; =0x021C48B8
+ mov r1, #0x40
+ ldr r0, [r0, #0x48]
+ tst r1, r0
+ beq _0203A994
+ mov r5, #0x0
+ b _0203A9B0
+_0203A994:
+ mov r1, #0x80
+ tst r1, r0
+ beq _0203A99E
+ mov r5, #0x1
+ b _0203A9B0
+_0203A99E:
+ mov r1, #0x20
+ tst r1, r0
+ beq _0203A9A8
+ mov r5, #0x2
+ b _0203A9B0
+_0203A9A8:
+ mov r1, #0x10
+ tst r1, r0
+ beq _0203A9B0
+ mov r5, #0x3
+_0203A9B0:
+ ldr r1, _0203A9E8 ; =0x0000FFFF
+ cmp r5, r1
+ beq _0203A9D0
+ ldrb r0, [r6, #0x0]
+ bl FUN_0201BD7C
+ add r7, #0x80
+ ldr r0, [r7, #0x0]
+ add r1, r5, #0x0
+ ldr r0, [r0, #0x38]
+ bl FUN_02055304
+ mov r0, #0x0
+ strh r0, [r4, #0x0]
+ mov r0, #0x1
+ pop {r3-r7, pc}
+_0203A9D0:
+ mov r1, #0x1
+ lsl r1, r1, #0xa
+ tst r0, r1
+ beq _0203A9E4
+ ldrb r0, [r6, #0x0]
+ bl FUN_0201BD7C
+ mov r0, #0x1
+ strh r0, [r4, #0x0]
+ pop {r3-r7, pc}
+_0203A9E4:
+ mov r0, #0x0
+ pop {r3-r7, pc}
+ .balign 4
+_0203A9E8: .word 0x0000FFFF
+_0203A9EC: .word 0x021C48B8
+
+ thumb_func_start FUN_0203A9F0
+FUN_0203A9F0: ; 0x0203A9F0
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl ScriptReadHalfword
+ str r0, [r4, #0x64]
+ ldr r1, _0203AA08 ; =FUN_0203AA0C
+ add r0, r4, #0x0
+ bl SetupNativeScript
+ mov r0, #0x1
+ pop {r4, pc}
+ nop
+_0203AA08: .word FUN_0203AA0C
+
+ thumb_func_start FUN_0203AA0C
+FUN_0203AA0C: ; 0x0203AA0C
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ ldr r1, [r5, #0x64]
+ add r0, #0x80
+ lsl r1, r1, #0x10
+ ldr r0, [r0, #0x0]
+ lsr r1, r1, #0x10
+ bl FUN_020394B8
+ add r4, r0, #0x0
+ ldr r0, _0203AA88 ; =0x021C48B8
+ ldr r1, _0203AA8C ; =0x0000FFFF
+ ldr r2, [r0, #0x48]
+ mov r0, #0x3
+ add r3, r2, #0x0
+ tst r3, r0
+ beq _0203AA36
+ mov r0, #0x0
+ strh r0, [r4, #0x0]
+ mov r0, #0x1
+ pop {r3-r5, pc}
+_0203AA36:
+ mov r3, #0x40
+ tst r3, r2
+ beq _0203AA40
+ mov r1, #0x0
+ b _0203AA5C
+_0203AA40:
+ mov r3, #0x80
+ tst r3, r2
+ beq _0203AA4A
+ mov r1, #0x1
+ b _0203AA5C
+_0203AA4A:
+ mov r3, #0x20
+ tst r3, r2
+ beq _0203AA54
+ mov r1, #0x2
+ b _0203AA5C
+_0203AA54:
+ mov r3, #0x10
+ tst r3, r2
+ beq _0203AA5C
+ add r1, r0, #0x0
+_0203AA5C:
+ ldr r0, _0203AA8C ; =0x0000FFFF
+ cmp r1, r0
+ beq _0203AA74
+ add r5, #0x80
+ ldr r0, [r5, #0x0]
+ ldr r0, [r0, #0x38]
+ bl FUN_02055304
+ mov r0, #0x0
+ strh r0, [r4, #0x0]
+ mov r0, #0x1
+ pop {r3-r5, pc}
+_0203AA74:
+ mov r0, #0x1
+ lsl r0, r0, #0xa
+ tst r0, r2
+ beq _0203AA82
+ mov r0, #0x1
+ strh r0, [r4, #0x0]
+ pop {r3-r5, pc}
+_0203AA82:
+ mov r0, #0x0
+ pop {r3-r5, pc}
+ nop
+_0203AA88: .word 0x021C48B8
+_0203AA8C: .word 0x0000FFFF
+
+ thumb_func_start FUN_0203AA90
+FUN_0203AA90: ; 0x0203AA90
+ push {r3, lr}
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_02039460
+ mov r0, #0x0
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_0203AAA0
+FUN_0203AAA0: ; 0x0203AAA0
+ push {r3-r7, lr}
+ sub sp, #0x8
+ add r5, r0, #0x0
+ add r0, #0x80
+ ldr r4, [r0, #0x0]
+ mov r1, #0x2
+ add r0, r4, #0x0
+ bl FUN_02039438
+ add r6, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r7, r0, #0x0
+ mov r0, #0x0
+ str r0, [sp, #0x0]
+ mov r0, #0x4
+ str r0, [sp, #0x4]
+ ldr r0, [r4, #0x8]
+ ldr r2, _0203AAF4 ; =0x000003D9
+ mov r1, #0x3
+ mov r3, #0xb
+ bl FUN_0200CB00
+ mov r0, #0x4
+ str r0, [sp, #0x0]
+ ldr r0, [r4, #0x8]
+ ldr r1, _0203AAF8 ; =0x020F34E0
+ ldr r2, _0203AAF4 ; =0x000003D9
+ mov r3, #0xb
+ bl FUN_02002198
+ str r0, [r6, #0x0]
+ ldr r1, _0203AAFC ; =FUN_0203AB00
+ add r0, r5, #0x0
+ str r7, [r5, #0x64]
+ bl SetupNativeScript
+ mov r0, #0x1
+ add sp, #0x8
+ pop {r3-r7, pc}
+ nop
+_0203AAF4: .word 0x000003D9
+_0203AAF8: .word 0x020F34E0
+_0203AAFC: .word FUN_0203AB00
+
+ thumb_func_start FUN_0203AB00
+FUN_0203AB00: ; 0x0203AB00
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ add r0, #0x80
+ ldr r6, [r0, #0x0]
+ mov r1, #0x2
+ add r0, r6, #0x0
+ bl FUN_02039438
+ ldr r1, [r5, #0x64]
+ add r4, r0, #0x0
+ lsl r1, r1, #0x10
+ add r0, r6, #0x0
+ lsr r1, r1, #0x10
+ bl FUN_020394B8
+ add r5, r0, #0x0
+ ldr r0, [r4, #0x0]
+ mov r1, #0x4
+ bl FUN_020021AC
+ mov r1, #0x0
+ mvn r1, r1
+ cmp r0, r1
+ bne _0203AB34
+ mov r0, #0x0
+ pop {r4-r6, pc}
+_0203AB34:
+ cmp r0, #0x0
+ bne _0203AB3C
+ mov r0, #0x0
+ b _0203AB3E
+_0203AB3C:
+ mov r0, #0x1
+_0203AB3E:
+ strh r0, [r5, #0x0]
+ mov r0, #0x1
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_0203AB44
+FUN_0203AB44: ; 0x0203AB44
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ mov r1, #0x1
+ bl FUN_02039438
+ add r5, #0x80
+ add r4, r0, #0x0
+ ldr r0, [r5, #0x0]
+ mov r1, #0x12
+ bl FUN_02039438
+ add r5, r0, #0x0
+ ldr r1, _0203AB70 ; =0x000003E2
+ add r0, r4, #0x0
+ bl FUN_0200D858
+ str r0, [r5, #0x0]
+ mov r0, #0x0
+ pop {r3-r5, pc}
+ nop
+_0203AB70: .word 0x000003E2
+
+ thumb_func_start FUN_0203AB74
+FUN_0203AB74: ; 0x0203AB74
+ push {r3, lr}
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ mov r1, #0x12
+ bl FUN_02039438
+ ldr r0, [r0, #0x0]
+ bl FUN_0200DBFC
+ mov r0, #0x0
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_0203AB8C
+FUN_0203AB8C: ; 0x0203AB8C
+ push {r4-r7, lr}
+ sub sp, #0x2c
+ add r5, r0, #0x0
+ add r0, #0x80
+ ldr r6, [r0, #0x0]
+ mov r1, #0x0
+ add r0, r6, #0x0
+ bl FUN_02039438
+ str r0, [sp, #0x1c]
+ add r0, r6, #0x0
+ mov r1, #0xf
+ bl FUN_02039438
+ str r0, [sp, #0x20]
+ ldr r0, [r5, #0x8]
+ add r1, r0, #0x1
+ str r1, [r5, #0x8]
+ ldrb r0, [r0, #0x0]
+ add r2, r1, #0x1
+ str r0, [sp, #0x18]
+ str r2, [r5, #0x8]
+ ldrb r0, [r1, #0x0]
+ add r1, r2, #0x1
+ str r0, [sp, #0x14]
+ str r1, [r5, #0x8]
+ ldrb r7, [r2, #0x0]
+ add r0, r1, #0x1
+ str r0, [r5, #0x8]
+ add r0, r5, #0x0
+ ldrb r4, [r1, #0x0]
+ bl ScriptReadHalfword
+ str r0, [sp, #0x24]
+ ldr r1, [sp, #0x24]
+ add r0, r6, #0x0
+ bl FUN_020394B8
+ str r0, [sp, #0x28]
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ mov r1, #0x1
+ bl FUN_02039438
+ ldr r1, [sp, #0x28]
+ str r4, [sp, #0x0]
+ str r1, [sp, #0x4]
+ ldr r1, [sp, #0x20]
+ add r3, r7, #0x0
+ ldr r1, [r1, #0x0]
+ str r1, [sp, #0x8]
+ str r0, [sp, #0xc]
+ mov r0, #0x0
+ str r0, [sp, #0x10]
+ ldr r1, [sp, #0x18]
+ ldr r2, [sp, #0x14]
+ add r0, r6, #0x0
+ bl FUN_021E1BF8
+ ldr r1, [sp, #0x1c]
+ str r0, [r1, #0x0]
+ ldr r0, [sp, #0x24]
+ str r0, [r5, #0x64]
+ mov r0, #0x1
+ add sp, #0x2c
+ pop {r4-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_0203AC14
+FUN_0203AC14: ; 0x0203AC14
+ push {r4-r7, lr}
+ sub sp, #0x2c
+ add r5, r0, #0x0
+ add r0, #0x80
+ ldr r6, [r0, #0x0]
+ mov r1, #0x0
+ add r0, r6, #0x0
+ bl FUN_02039438
+ str r0, [sp, #0x1c]
+ add r0, r6, #0x0
+ mov r1, #0xf
+ bl FUN_02039438
+ str r0, [sp, #0x20]
+ ldr r0, [r5, #0x8]
+ add r1, r0, #0x1
+ str r1, [r5, #0x8]
+ ldrb r0, [r0, #0x0]
+ add r2, r1, #0x1
+ str r0, [sp, #0x18]
+ str r2, [r5, #0x8]
+ ldrb r0, [r1, #0x0]
+ add r1, r2, #0x1
+ str r0, [sp, #0x14]
+ str r1, [r5, #0x8]
+ ldrb r7, [r2, #0x0]
+ add r0, r1, #0x1
+ str r0, [r5, #0x8]
+ add r0, r5, #0x0
+ ldrb r4, [r1, #0x0]
+ bl ScriptReadHalfword
+ str r0, [sp, #0x24]
+ ldr r1, [sp, #0x24]
+ add r0, r6, #0x0
+ bl FUN_020394B8
+ str r0, [sp, #0x28]
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ mov r1, #0x1
+ bl FUN_02039438
+ ldr r1, [sp, #0x28]
+ str r4, [sp, #0x0]
+ str r1, [sp, #0x4]
+ ldr r1, [sp, #0x20]
+ add r3, r7, #0x0
+ ldr r1, [r1, #0x0]
+ str r1, [sp, #0x8]
+ str r0, [sp, #0xc]
+ ldr r0, [r5, #0x78]
+ str r0, [sp, #0x10]
+ ldr r1, [sp, #0x18]
+ ldr r2, [sp, #0x14]
+ add r0, r6, #0x0
+ bl FUN_021E1BF8
+ ldr r1, [sp, #0x1c]
+ str r0, [r1, #0x0]
+ ldr r0, [sp, #0x24]
+ str r0, [r5, #0x64]
+ mov r0, #0x1
+ add sp, #0x2c
+ pop {r4-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_0203AC9C
+FUN_0203AC9C: ; 0x0203AC9C
+ push {r4, lr}
+ add r4, r0, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ mov r1, #0x0
+ bl FUN_02039438
+ ldr r1, [r4, #0x8]
+ add r3, r1, #0x1
+ str r3, [r4, #0x8]
+ ldrb r1, [r1, #0x0]
+ add r2, r3, #0x1
+ str r2, [r4, #0x8]
+ ldrb r2, [r3, #0x0]
+ ldr r0, [r0, #0x0]
+ bl FUN_021E1C4C
+ mov r0, #0x0
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0203ACC4
+FUN_0203ACC4: ; 0x0203ACC4
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ mov r1, #0x0
+ bl FUN_02039438
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r6, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r5, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r5, #0x0]
+ bl FUN_020394F0
+ add r2, r0, #0x0
+ ldr r0, [r4, #0x0]
+ add r1, r6, #0x0
+ bl FUN_021E1C4C
+ mov r0, #0x0
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_0203AD08
+FUN_0203AD08: ; 0x0203AD08
+ push {r4, lr}
+ add r4, r0, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ mov r1, #0x0
+ bl FUN_02039438
+ ldr r0, [r0, #0x0]
+ bl FUN_021E1C54
+ ldr r1, _0203AD28 ; =FUN_0203AD2C
+ add r0, r4, #0x0
+ bl SetupNativeScript
+ mov r0, #0x1
+ pop {r4, pc}
+ .balign 4
+_0203AD28: .word FUN_0203AD2C
+
+ thumb_func_start FUN_0203AD2C
+FUN_0203AD2C: ; 0x0203AD2C
+ push {r3, lr}
+ add r1, r0, #0x0
+ ldr r1, [r1, #0x64]
+ add r0, #0x80
+ lsl r1, r1, #0x10
+ ldr r0, [r0, #0x0]
+ lsr r1, r1, #0x10
+ bl FUN_020394B8
+ ldrh r1, [r0, #0x0]
+ ldr r0, _0203AD50 ; =0x0000EEEE
+ cmp r1, r0
+ beq _0203AD4A
+ mov r0, #0x1
+ pop {r3, pc}
+_0203AD4A:
+ mov r0, #0x0
+ pop {r3, pc}
+ nop
+_0203AD50: .word 0x0000EEEE
+
+ thumb_func_start FUN_0203AD54
+FUN_0203AD54: ; 0x0203AD54
+ push {r4, lr}
+ add r4, r0, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ mov r1, #0x0
+ bl FUN_02039438
+ ldr r0, [r0, #0x0]
+ bl FUN_021E1C54
+ ldr r1, _0203AD74 ; =FUN_0203AD78
+ add r0, r4, #0x0
+ bl SetupNativeScript
+ mov r0, #0x1
+ pop {r4, pc}
+ .balign 4
+_0203AD74: .word FUN_0203AD78
+
+ thumb_func_start FUN_0203AD78
+FUN_0203AD78: ; 0x0203AD78
+ push {r4-r6, lr}
+ add r1, r0, #0x0
+ add r0, #0x80
+ ldr r1, [r1, #0x64]
+ ldr r5, [r0, #0x0]
+ lsl r1, r1, #0x10
+ add r0, r5, #0x0
+ lsr r1, r1, #0x10
+ bl FUN_020394B8
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ mov r1, #0x0
+ bl FUN_02039438
+ add r6, r0, #0x0
+ ldrh r1, [r4, #0x0]
+ ldr r0, _0203ADC0 ; =0x0000EEEE
+ cmp r1, r0
+ bne _0203ADBC
+ ldr r0, [r5, #0x78]
+ bl FUN_02052714
+ cmp r0, #0x0
+ beq _0203ADB8
+ mov r0, #0x8
+ strh r0, [r4, #0x0]
+ ldr r0, [r6, #0x0]
+ bl FUN_021E1ECC
+ mov r0, #0x1
+ pop {r4-r6, pc}
+_0203ADB8:
+ mov r0, #0x0
+ pop {r4-r6, pc}
+_0203ADBC:
+ mov r0, #0x1
+ pop {r4-r6, pc}
+ .balign 4
+_0203ADC0: .word 0x0000EEEE
+
+ thumb_func_start FUN_0203ADC4
+FUN_0203ADC4: ; 0x0203ADC4
+ push {r4-r7, lr}
+ sub sp, #0x2c
+ add r5, r0, #0x0
+ add r0, #0x80
+ ldr r6, [r0, #0x0]
+ mov r1, #0x0
+ add r0, r6, #0x0
+ bl FUN_02039438
+ str r0, [sp, #0x1c]
+ add r0, r6, #0x0
+ mov r1, #0xf
+ bl FUN_02039438
+ str r0, [sp, #0x20]
+ ldr r0, [r5, #0x8]
+ add r1, r0, #0x1
+ str r1, [r5, #0x8]
+ ldrb r0, [r0, #0x0]
+ add r2, r1, #0x1
+ str r0, [sp, #0x18]
+ str r2, [r5, #0x8]
+ ldrb r0, [r1, #0x0]
+ add r1, r2, #0x1
+ str r0, [sp, #0x14]
+ str r1, [r5, #0x8]
+ ldrb r7, [r2, #0x0]
+ add r0, r1, #0x1
+ str r0, [r5, #0x8]
+ add r0, r5, #0x0
+ ldrb r4, [r1, #0x0]
+ bl ScriptReadHalfword
+ str r0, [sp, #0x24]
+ ldr r1, [sp, #0x24]
+ add r0, r6, #0x0
+ bl FUN_020394B8
+ str r0, [sp, #0x28]
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ mov r1, #0x1
+ bl FUN_02039438
+ ldr r1, [sp, #0x28]
+ str r4, [sp, #0x0]
+ str r1, [sp, #0x4]
+ ldr r1, [sp, #0x20]
+ add r3, r7, #0x0
+ ldr r1, [r1, #0x0]
+ str r1, [sp, #0x8]
+ str r0, [sp, #0xc]
+ mov r0, #0x0
+ str r0, [sp, #0x10]
+ ldr r1, [sp, #0x18]
+ ldr r2, [sp, #0x14]
+ add r0, r6, #0x0
+ bl FUN_021E1F34
+ ldr r1, [sp, #0x1c]
+ str r0, [r1, #0x0]
+ ldr r0, [sp, #0x24]
+ str r0, [r5, #0x64]
+ mov r0, #0x1
+ add sp, #0x2c
+ pop {r4-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_0203AE4C
+FUN_0203AE4C: ; 0x0203AE4C
+ push {r4-r7, lr}
+ sub sp, #0x2c
+ add r5, r0, #0x0
+ add r0, #0x80
+ ldr r6, [r0, #0x0]
+ mov r1, #0x0
+ add r0, r6, #0x0
+ bl FUN_02039438
+ str r0, [sp, #0x1c]
+ add r0, r6, #0x0
+ mov r1, #0xf
+ bl FUN_02039438
+ str r0, [sp, #0x20]
+ ldr r0, [r5, #0x8]
+ add r1, r0, #0x1
+ str r1, [r5, #0x8]
+ ldrb r0, [r0, #0x0]
+ add r2, r1, #0x1
+ str r0, [sp, #0x18]
+ str r2, [r5, #0x8]
+ ldrb r0, [r1, #0x0]
+ add r1, r2, #0x1
+ str r0, [sp, #0x14]
+ str r1, [r5, #0x8]
+ ldrb r7, [r2, #0x0]
+ add r0, r1, #0x1
+ str r0, [r5, #0x8]
+ add r0, r5, #0x0
+ ldrb r4, [r1, #0x0]
+ bl ScriptReadHalfword
+ str r0, [sp, #0x24]
+ ldr r1, [sp, #0x24]
+ add r0, r6, #0x0
+ bl FUN_020394B8
+ str r0, [sp, #0x28]
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ mov r1, #0x1
+ bl FUN_02039438
+ ldr r1, [sp, #0x28]
+ str r4, [sp, #0x0]
+ str r1, [sp, #0x4]
+ ldr r1, [sp, #0x20]
+ add r3, r7, #0x0
+ ldr r1, [r1, #0x0]
+ str r1, [sp, #0x8]
+ str r0, [sp, #0xc]
+ ldr r0, [r5, #0x78]
+ str r0, [sp, #0x10]
+ ldr r1, [sp, #0x18]
+ ldr r2, [sp, #0x14]
+ add r0, r6, #0x0
+ bl FUN_021E1F34
+ ldr r1, [sp, #0x1c]
+ str r0, [r1, #0x0]
+ ldr r0, [sp, #0x24]
+ str r0, [r5, #0x64]
+ mov r0, #0x1
+ add sp, #0x2c
+ pop {r4-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_0203AED4
+FUN_0203AED4: ; 0x0203AED4
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ mov r1, #0x0
+ bl FUN_02039438
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r6, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r7, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r5, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r5, #0x0]
+ bl FUN_020394F0
+ add r3, r0, #0x0
+ lsl r1, r6, #0x18
+ lsl r2, r7, #0x18
+ lsl r3, r3, #0x18
+ ldr r0, [r4, #0x0]
+ lsr r1, r1, #0x18
+ lsr r2, r2, #0x18
+ lsr r3, r3, #0x18
+ bl FUN_021E1F58
+ mov r0, #0x0
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_0203AF34
+FUN_0203AF34: ; 0x0203AF34
+ push {r4, lr}
+ add r4, r0, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ mov r1, #0x0
+ bl FUN_02039438
+ ldr r0, [r0, #0x0]
+ bl FUN_021E1F60
+ ldr r1, _0203AF54 ; =FUN_0203AD2C
+ add r0, r4, #0x0
+ bl SetupNativeScript
+ mov r0, #0x1
+ pop {r4, pc}
+ .balign 4
+_0203AF54: .word FUN_0203AD2C
+
+ thumb_func_start FUN_0203AF58
+FUN_0203AF58: ; 0x0203AF58
+ push {r4, lr}
+ add r4, r0, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ mov r1, #0x0
+ bl FUN_02039438
+ ldr r2, [r4, #0x8]
+ add r1, r2, #0x1
+ str r1, [r4, #0x8]
+ ldrb r1, [r2, #0x0]
+ ldr r0, [r0, #0x0]
+ bl FUN_021E26CC
+ ldr r1, _0203AF80 ; =FUN_0203AD2C
+ add r0, r4, #0x0
+ bl SetupNativeScript
+ mov r0, #0x1
+ pop {r4, pc}
+ .balign 4
+_0203AF80: .word FUN_0203AD2C
+
+ thumb_func_start FUN_0203AF84
+FUN_0203AF84: ; 0x0203AF84
+ push {r4, lr}
+ add r4, r0, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ mov r1, #0x0
+ bl FUN_02039438
+ ldr r2, [r4, #0x8]
+ add r1, r2, #0x1
+ str r1, [r4, #0x8]
+ ldrb r1, [r2, #0x0]
+ ldr r0, [r0, #0x0]
+ bl FUN_021E2B80
+ mov r0, #0x1
+ pop {r4, pc}
+
+ thumb_func_start FUN_0203AFA4
+FUN_0203AFA4: ; 0x0203AFA4
+ push {r4, lr}
+ add r4, r0, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ mov r1, #0x0
+ bl FUN_02039438
+ ldr r2, [r4, #0x8]
+ add r1, r2, #0x1
+ str r1, [r4, #0x8]
+ ldrb r1, [r2, #0x0]
+ ldr r0, [r0, #0x0]
+ bl FUN_021E2B9C
+ mov r0, #0x1
+ pop {r4, pc}
+
+ thumb_func_start FUN_0203AFC4
+FUN_0203AFC4: ; 0x0203AFC4
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r6, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadWord
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ add r1, r6, #0x0
+ bl FUN_0203B120
+ add r6, r0, #0x0
+ bne _0203AFF6
+ bl ErrorHandling
+_0203AFF6:
+ ldr r1, [r5, #0x8]
+ add r0, r6, #0x0
+ add r1, r1, r4
+ bl FUN_0205AEA4
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ mov r1, #0x4
+ bl FUN_02039438
+ ldrb r1, [r0, #0x0]
+ add r5, #0x80
+ mov r2, #0x0
+ add r1, r1, #0x1
+ strb r1, [r0, #0x0]
+ ldr r0, [r5, #0x0]
+ add r1, r4, #0x0
+ bl FUN_0203B174
+ mov r0, #0x0
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_0203B024
+FUN_0203B024: ; 0x0203B024
+ push {r3-r7, lr}
+ sub sp, #0x8
+ add r5, r0, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ str r0, [sp, #0x0]
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r7, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ add r1, r4, #0x0
+ bl FUN_0203B120
+ str r0, [sp, #0x4]
+ cmp r0, #0x0
+ bne _0203B07A
+ bl ErrorHandling
+_0203B07A:
+ mov r0, #0x4
+ add r1, r0, #0x0
+ add r1, #0xfc
+ bl FUN_02016998
+ add r4, r0, #0x0
+ ldr r0, [sp, #0x4]
+ bl FUN_02058B2C
+ lsl r0, r0, #0x10
+ lsr r6, r0, #0x10
+ ldr r0, [sp, #0x4]
+ bl FUN_02058B4C
+ lsl r0, r0, #0x10
+ ldr r2, [sp, #0x0]
+ lsr r0, r0, #0x10
+ mov r1, #0x0
+ cmp r6, r2
+ bhs _0203B0B0
+ mov r2, #0xf
+ strh r2, [r4, #0x0]
+ ldr r2, [sp, #0x0]
+ add r1, r1, #0x1
+ sub r2, r2, r6
+ strh r2, [r4, #0x2]
+ b _0203B0C0
+_0203B0B0:
+ cmp r6, r2
+ bls _0203B0C0
+ mov r2, #0xe
+ strh r2, [r4, #0x0]
+ ldr r2, [sp, #0x0]
+ add r1, r1, #0x1
+ sub r2, r6, r2
+ strh r2, [r4, #0x2]
+_0203B0C0:
+ cmp r0, r7
+ bhs _0203B0D4
+ lsl r2, r1, #0x2
+ mov r3, #0xc
+ strh r3, [r4, r2]
+ sub r3, r7, r0
+ add r0, r4, r2
+ strh r3, [r0, #0x2]
+ add r1, r1, #0x1
+ b _0203B0E6
+_0203B0D4:
+ cmp r0, r7
+ bls _0203B0E6
+ lsl r2, r1, #0x2
+ mov r3, #0xd
+ strh r3, [r4, r2]
+ sub r3, r0, r7
+ add r0, r4, r2
+ strh r3, [r0, #0x2]
+ add r1, r1, #0x1
+_0203B0E6:
+ lsl r2, r1, #0x2
+ mov r0, #0xfe
+ strh r0, [r4, r2]
+ mov r1, #0x0
+ add r0, r4, r2
+ strh r1, [r0, #0x2]
+ ldr r0, [sp, #0x4]
+ add r1, r4, #0x0
+ bl FUN_0205AEA4
+ add r6, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ mov r1, #0x4
+ bl FUN_02039438
+ ldrb r1, [r0, #0x0]
+ add r5, #0x80
+ add r2, r4, #0x0
+ add r1, r1, #0x1
+ strb r1, [r0, #0x0]
+ ldr r0, [r5, #0x0]
+ add r1, r6, #0x0
+ bl FUN_0203B174
+ mov r0, #0x0
+ add sp, #0x8
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_0203B120
+FUN_0203B120: ; 0x0203B120
+ push {r3, lr}
+ cmp r1, #0xf2
+ bne _0203B130
+ ldr r0, [r0, #0x34]
+ mov r1, #0x30
+ bl FUN_020580B4
+ pop {r3, pc}
+_0203B130:
+ cmp r1, #0xf1
+ bne _0203B13E
+ mov r1, #0xb
+ bl FUN_02039438
+ ldr r0, [r0, #0x0]
+ pop {r3, pc}
+_0203B13E:
+ ldr r0, [r0, #0x34]
+ bl FUN_02058060
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_0203B148
+FUN_0203B148: ; 0x0203B148
+ push {r3, lr}
+ ldr r1, _0203B154 ; =FUN_0203B158
+ bl SetupNativeScript
+ mov r0, #0x1
+ pop {r3, pc}
+ .balign 4
+_0203B154: .word FUN_0203B158
+
+ thumb_func_start FUN_0203B158
+FUN_0203B158: ; 0x0203B158
+ push {r3, lr}
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ mov r1, #0x4
+ bl FUN_02039438
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x0
+ bne _0203B16E
+ mov r0, #0x1
+ pop {r3, pc}
+_0203B16E:
+ mov r0, #0x0
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_0203B174
+FUN_0203B174: ; 0x0203B174
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ add r6, r1, #0x0
+ mov r0, #0x4
+ mov r1, #0x10
+ add r7, r2, #0x0
+ bl FUN_02016998
+ add r4, r0, #0x0
+ bne _0203B18E
+ bl ErrorHandling
+ pop {r3-r7, pc}
+_0203B18E:
+ str r5, [r4, #0xc]
+ str r6, [r4, #0x4]
+ ldr r0, _0203B1A4 ; =FUN_0203B1A8
+ add r1, r4, #0x0
+ mov r2, #0x0
+ str r7, [r4, #0x8]
+ bl FUN_0200CA44
+ str r0, [r4, #0x0]
+ pop {r3-r7, pc}
+ nop
+_0203B1A4: .word FUN_0203B1A8
+
+ thumb_func_start FUN_0203B1A8
+FUN_0203B1A8: ; 0x0203B1A8
+ push {r3-r5, lr}
+ add r5, r1, #0x0
+ ldr r0, [r5, #0xc]
+ mov r1, #0x4
+ bl FUN_02039438
+ add r4, r0, #0x0
+ ldr r0, [r5, #0x4]
+ bl FUN_0205AEF0
+ cmp r0, #0x1
+ bne _0203B1EC
+ ldr r0, [r5, #0x4]
+ bl FUN_0205AEFC
+ ldr r0, [r5, #0x0]
+ bl FUN_0200CAB4
+ ldr r0, [r5, #0x8]
+ cmp r0, #0x0
+ beq _0203B1D6
+ bl FUN_02016A18
+_0203B1D6:
+ add r0, r5, #0x0
+ bl FUN_02016A18
+ ldrb r0, [r4, #0x0]
+ cmp r0, #0x0
+ bne _0203B1E8
+ bl ErrorHandling
+ pop {r3-r5, pc}
+_0203B1E8:
+ sub r0, r0, #0x1
+ strb r0, [r4, #0x0]
+_0203B1EC:
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_0203B1F0
+FUN_0203B1F0: ; 0x0203B1F0
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r0, #0x80
+ ldr r4, [r0, #0x0]
+ mov r1, #0xa
+ add r0, r4, #0x0
+ bl FUN_02039438
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ bne _0203B20E
+ ldr r0, [r4, #0x34]
+ bl FUN_02058780
+ b _0203B214
+_0203B20E:
+ add r0, r5, #0x0
+ bl FUN_0203B2E0
+_0203B214:
+ mov r0, #0x1
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_0203B218
+FUN_0203B218: ; 0x0203B218
+ push {r4-r6, lr}
+ add r0, #0x80
+ ldr r4, [r0, #0x0]
+ mov r1, #0xa
+ add r0, r4, #0x0
+ bl FUN_02039438
+ add r5, r0, #0x0
+ ldr r0, [r4, #0x38]
+ bl FUN_020553A0
+ ldr r1, _0203B2DC ; =0x021C5A0C
+ add r6, r0, #0x0
+ ldrb r2, [r1, #0x0]
+ mov r1, #0x1
+ tst r1, r2
+ beq _0203B252
+ bl FUN_0205AE28
+ cmp r0, #0x1
+ bne _0203B252
+ add r0, r6, #0x0
+ bl FUN_02058908
+ ldr r1, _0203B2DC ; =0x021C5A0C
+ mov r0, #0xfe
+ ldrb r2, [r1, #0x0]
+ and r0, r2
+ strb r0, [r1, #0x0]
+_0203B252:
+ ldr r0, _0203B2DC ; =0x021C5A0C
+ ldrb r1, [r0, #0x0]
+ mov r0, #0x4
+ tst r0, r1
+ beq _0203B276
+ ldr r0, [r5, #0x0]
+ bl FUN_02058854
+ cmp r0, #0x0
+ bne _0203B276
+ ldr r0, [r5, #0x0]
+ bl FUN_02058908
+ ldr r1, _0203B2DC ; =0x021C5A0C
+ mov r0, #0xfb
+ ldrb r2, [r1, #0x0]
+ and r0, r2
+ strb r0, [r1, #0x0]
+_0203B276:
+ ldr r0, _0203B2DC ; =0x021C5A0C
+ ldrb r1, [r0, #0x0]
+ mov r0, #0x2
+ tst r0, r1
+ beq _0203B2A2
+ ldr r0, [r4, #0x34]
+ mov r1, #0x30
+ bl FUN_020580B4
+ add r4, r0, #0x0
+ bl FUN_02058854
+ cmp r0, #0x0
+ bne _0203B2A2
+ add r0, r4, #0x0
+ bl FUN_02058908
+ ldr r1, _0203B2DC ; =0x021C5A0C
+ mov r0, #0xfd
+ ldrb r2, [r1, #0x0]
+ and r0, r2
+ strb r0, [r1, #0x0]
+_0203B2A2:
+ ldr r0, _0203B2DC ; =0x021C5A0C
+ ldrb r1, [r0, #0x0]
+ mov r0, #0x8
+ tst r0, r1
+ beq _0203B2CC
+ ldr r0, [r5, #0x0]
+ bl FUN_0205E7C4
+ add r4, r0, #0x0
+ bl FUN_02058854
+ cmp r0, #0x0
+ bne _0203B2CC
+ add r0, r4, #0x0
+ bl FUN_02058908
+ ldr r1, _0203B2DC ; =0x021C5A0C
+ mov r0, #0xf7
+ ldrb r2, [r1, #0x0]
+ and r0, r2
+ strb r0, [r1, #0x0]
+_0203B2CC:
+ ldr r0, _0203B2DC ; =0x021C5A0C
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x0
+ bne _0203B2D8
+ mov r0, #0x1
+ pop {r4-r6, pc}
+_0203B2D8:
+ mov r0, #0x0
+ pop {r4-r6, pc}
+ .balign 4
+_0203B2DC: .word 0x021C5A0C
+
+ thumb_func_start FUN_0203B2E0
+FUN_0203B2E0: ; 0x0203B2E0
+ push {r3-r7, lr}
+ sub sp, #0x8
+ str r0, [sp, #0x0]
+ add r0, #0x80
+ ldr r4, [r0, #0x0]
+ mov r1, #0xa
+ add r0, r4, #0x0
+ bl FUN_02039438
+ add r5, r0, #0x0
+ ldr r0, [r4, #0x38]
+ bl FUN_020553A0
+ str r0, [sp, #0x4]
+ ldr r0, [r4, #0x34]
+ mov r1, #0x30
+ bl FUN_020580B4
+ add r7, r0, #0x0
+ ldr r0, [r5, #0x0]
+ bl FUN_0205E7C4
+ add r6, r0, #0x0
+ ldr r0, [r4, #0x34]
+ ldr r1, _0203B3A8 ; =0x021C5A0C
+ mov r2, #0x0
+ strb r2, [r1, #0x0]
+ bl FUN_02058780
+ ldr r0, [sp, #0x4]
+ bl FUN_0205AE28
+ cmp r0, #0x0
+ bne _0203B334
+ ldr r1, _0203B3A8 ; =0x021C5A0C
+ mov r0, #0x1
+ ldrb r2, [r1, #0x0]
+ orr r0, r2
+ strb r0, [r1, #0x0]
+ ldr r0, [sp, #0x4]
+ bl FUN_02058914
+_0203B334:
+ ldr r0, [r5, #0x0]
+ bl FUN_02058854
+ cmp r0, #0x0
+ beq _0203B34E
+ ldr r1, _0203B3A8 ; =0x021C5A0C
+ mov r0, #0x4
+ ldrb r2, [r1, #0x0]
+ orr r0, r2
+ strb r0, [r1, #0x0]
+ ldr r0, [r5, #0x0]
+ bl FUN_02058914
+_0203B34E:
+ cmp r7, #0x0
+ beq _0203B37A
+ ldr r0, [r4, #0xc]
+ bl FUN_020462AC
+ bl FUN_0205ED3C
+ cmp r0, #0x1
+ bne _0203B37A
+ add r0, r7, #0x0
+ bl FUN_02058854
+ cmp r0, #0x0
+ beq _0203B37A
+ ldr r1, _0203B3A8 ; =0x021C5A0C
+ mov r0, #0x2
+ ldrb r2, [r1, #0x0]
+ orr r0, r2
+ strb r0, [r1, #0x0]
+ add r0, r7, #0x0
+ bl FUN_02058914
+_0203B37A:
+ cmp r6, #0x0
+ beq _0203B398
+ add r0, r6, #0x0
+ bl FUN_02058854
+ cmp r0, #0x0
+ beq _0203B398
+ ldr r1, _0203B3A8 ; =0x021C5A0C
+ mov r0, #0x8
+ ldrb r2, [r1, #0x0]
+ orr r0, r2
+ strb r0, [r1, #0x0]
+ add r0, r6, #0x0
+ bl FUN_02058914
+_0203B398:
+ ldr r0, [sp, #0x0]
+ ldr r1, _0203B3AC ; =FUN_0203B218
+ bl SetupNativeScript
+ mov r0, #0x1
+ add sp, #0x8
+ pop {r3-r7, pc}
+ nop
+_0203B3A8: .word 0x021C5A0C
+_0203B3AC: .word FUN_0203B218
+
+ thumb_func_start FUN_0203B3B0
+FUN_0203B3B0: ; 0x0203B3B0
+ push {r3, lr}
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0x34]
+ bl FUN_020587B0
+ mov r0, #0x1
+ pop {r3, pc}
+
+ thumb_func_start FUN_0203B3C0
+FUN_0203B3C0: ; 0x0203B3C0
+ push {r4, lr}
+ add r1, r0, #0x0
+ add r1, #0x80
+ ldr r4, [r1, #0x0]
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ ldr r0, [r4, #0x34]
+ bl FUN_02058060
+ bl FUN_02058908
+ mov r0, #0x0
+ pop {r4, pc}
+
+ thumb_func_start FUN_0203B3DC
+FUN_0203B3DC: ; 0x0203B3DC
+ push {r4, lr}
+ add r1, r0, #0x0
+ add r1, #0x80
+ ldr r4, [r1, #0x0]
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ ldr r0, [r4, #0x34]
+ bl FUN_02058060
+ bl FUN_02058914
+ mov r0, #0x0
+ pop {r4, pc}
+
+ thumb_func_start FUN_0203B3F8
+FUN_0203B3F8: ; 0x0203B3F8
+ push {r3-r6, lr}
+ sub sp, #0x4
+ add r4, r0, #0x0
+ add r1, r4, #0x0
+ add r1, #0x80
+ ldr r5, [r1, #0x0]
+ bl ScriptReadHalfword
+ add r4, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r4, #0x0]
+ bl FUN_020394F0
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_02034B64
+ add r6, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_02034B6C
+ str r0, [sp, #0x0]
+ ldr r3, [r5, #0x1c]
+ ldr r0, [r5, #0x34]
+ ldr r3, [r3, #0x0]
+ add r1, r4, #0x0
+ add r2, r6, #0x0
+ bl FUN_020575D4
+ cmp r0, #0x0
+ bne _0203B43A
+ bl ErrorHandling
+_0203B43A:
+ mov r0, #0x0
+ add sp, #0x4
+ pop {r3-r6, pc}
+
+ thumb_func_start FUN_0203B440
+FUN_0203B440: ; 0x0203B440
+ push {r3-r5, lr}
+ add r4, r0, #0x0
+ add r1, r4, #0x0
+ add r1, #0x80
+ ldr r5, [r1, #0x0]
+ bl ScriptReadHalfword
+ add r4, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r4, #0x0]
+ bl FUN_020394F0
+ add r1, r0, #0x0
+ ldr r0, [r5, #0x34]
+ bl FUN_02058060
+ bl FUN_02057688
+ mov r0, #0x0
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_0203B468
+FUN_0203B468: ; 0x0203B468
+ push {r4-r7, lr}
+ sub sp, #0xc
+ add r5, r0, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r6, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r7, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ mov r1, #0xb
+ bl FUN_02039438
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ mov r1, #0x2
+ ldr r0, [r0, #0x0]
+ lsl r1, r1, #0xc
+ str r1, [sp, #0x0]
+ mov r3, #0x0
+ str r3, [sp, #0x4]
+ ldr r1, [r0, #0x1c]
+ add r2, r7, #0x0
+ ldr r1, [r1, #0x0]
+ str r1, [sp, #0x8]
+ ldr r0, [r0, #0x34]
+ add r1, r6, #0x0
+ bl FUN_0205753C
+ str r0, [r4, #0x0]
+ bl FUN_02059D1C
+ ldr r0, [r4, #0x0]
+ mov r1, #0x1
+ bl FUN_0205889C
+ ldr r0, [r4, #0x0]
+ mov r1, #0x0
+ bl FUN_020588B8
+ ldr r0, [r4, #0x0]
+ bl FUN_02058B7C
+ add r1, r5, #0x0
+ add r1, #0x80
+ ldr r1, [r1, #0x0]
+ add r4, r0, #0x0
+ ldr r1, [r1, #0x24]
+ bl FUN_021EF5E0
+ add r5, #0x80
+ ldr r1, [r5, #0x0]
+ add r0, r4, #0x0
+ ldr r1, [r1, #0x20]
+ bl FUN_0201EC68
+ mov r0, #0x0
+ add sp, #0xc
+ pop {r4-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_0203B500
+FUN_0203B500: ; 0x0203B500
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ mov r1, #0xb
+ bl FUN_02039438
+ ldr r0, [r0, #0x0]
+ bl FUN_02057654
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ mov r1, #0xff
+ ldr r0, [r0, #0x34]
+ bl FUN_02058060
+ bl FUN_02058B7C
+ add r1, r5, #0x0
+ add r1, #0x80
+ ldr r1, [r1, #0x0]
+ add r4, r0, #0x0
+ ldr r1, [r1, #0x24]
+ bl FUN_021EF5E0
+ add r5, #0x80
+ ldr r1, [r5, #0x0]
+ add r0, r4, #0x0
+ ldr r1, [r1, #0x20]
+ bl FUN_0201EC68
+ mov r0, #0x0
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_0203B544
+FUN_0203B544: ; 0x0203B544
+ push {r3-r5, lr}
+ add r0, #0x80
+ ldr r5, [r0, #0x0]
+ ldr r0, [r5, #0x38]
+ bl FUN_020552F8
+ bl FUN_02059E74
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ mov r1, #0xa
+ bl FUN_02039438
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ bne _0203B568
+ mov r0, #0x0
+ pop {r3-r5, pc}
+_0203B568:
+ add r1, r4, #0x0
+ bl FUN_021F1EC0
+ mov r0, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_0203B574
+FUN_0203B574: ; 0x0203B574
+ push {r4-r6, lr}
+ add r4, r0, #0x0
+ add r1, r4, #0x0
+ add r1, #0x80
+ ldr r5, [r1, #0x0]
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394B8
+ add r6, r0, #0x0
+ add r0, r4, #0x0
+ bl ScriptReadHalfword
+ add r4, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r4, #0x0]
+ bl FUN_020394B8
+ add r4, r0, #0x0
+ ldr r0, [r5, #0x38]
+ bl FUN_02055320
+ strh r0, [r6, #0x0]
+ ldr r0, [r5, #0x38]
+ bl FUN_0205532C
+ strh r0, [r4, #0x0]
+ mov r0, #0x0
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_0203B5B8
+FUN_0203B5B8: ; 0x0203B5B8
+ push {r4-r6, lr}
+ add r4, r0, #0x0
+ add r1, r4, #0x0
+ add r1, #0x80
+ ldr r5, [r1, #0x0]
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r1, r0, #0x0
+ ldr r0, [r5, #0x34]
+ bl FUN_02058060
+ add r5, r0, #0x0
+ add r0, r4, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394B8
+ add r6, r0, #0x0
+ add r0, r4, #0x0
+ bl ScriptReadHalfword
+ add r4, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r4, #0x0]
+ bl FUN_020394B8
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_02058B2C
+ strh r0, [r6, #0x0]
+ add r0, r5, #0x0
+ bl FUN_02058B4C
+ strh r0, [r4, #0x0]
+ mov r0, #0x0
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_0203B618
+FUN_0203B618: ; 0x0203B618
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394B8
+ add r5, #0x80
+ add r4, r0, #0x0
+ ldr r0, [r5, #0x0]
+ ldr r0, [r0, #0x38]
+ bl FUN_020552F8
+ strh r0, [r4, #0x0]
+ mov r0, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_0203B640
+FUN_0203B640: ; 0x0203B640
+ push {r4-r7, lr}
+ sub sp, #0xc
+ add r5, r0, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r7, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r6, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r4, r0, #0x0
+ cmp r7, #0x0
+ beq _0203B696
+ lsl r0, r7, #0xc
+ blx _fflt
+ add r1, r0, #0x0
+ mov r0, #0x3f
+ lsl r0, r0, #0x18
+ blx _fadd
+ b _0203B6A4
+_0203B696:
+ lsl r0, r7, #0xc
+ blx _fflt
+ mov r1, #0x3f
+ lsl r1, r1, #0x18
+ blx _fsub
+_0203B6A4:
+ blx _ffix
+ str r0, [sp, #0x0]
+ cmp r6, #0x0
+ beq _0203B6C0
+ lsl r0, r6, #0xc
+ blx _fflt
+ add r1, r0, #0x0
+ mov r0, #0x3f
+ lsl r0, r0, #0x18
+ blx _fadd
+ b _0203B6CE
+_0203B6C0:
+ lsl r0, r6, #0xc
+ blx _fflt
+ mov r1, #0x3f
+ lsl r1, r1, #0x18
+ blx _fsub
+_0203B6CE:
+ blx _ffix
+ str r0, [sp, #0x4]
+ cmp r4, #0x0
+ beq _0203B6EA
+ lsl r0, r4, #0xc
+ blx _fflt
+ add r1, r0, #0x0
+ mov r0, #0x3f
+ lsl r0, r0, #0x18
+ blx _fadd
+ b _0203B6F8
+_0203B6EA:
+ lsl r0, r4, #0xc
+ blx _fflt
+ mov r1, #0x3f
+ lsl r1, r1, #0x18
+ blx _fsub
+_0203B6F8:
+ blx _ffix
+ str r0, [sp, #0x8]
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0x38]
+ bl FUN_020553A0
+ add r1, sp, #0x0
+ bl FUN_02058BB4
+ add r5, #0x80
+ ldr r1, [r5, #0x0]
+ add r0, sp, #0x0
+ ldr r1, [r1, #0x20]
+ bl FUN_0201EF70
+ mov r0, #0x0
+ add sp, #0xc
+ pop {r4-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_0203B724
+FUN_0203B724: ; 0x0203B724
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0x34]
+ bl FUN_02058060
+ ldr r2, [r4, #0x8]
+ add r1, r2, #0x1
+ str r1, [r4, #0x8]
+ ldrb r1, [r2, #0x0]
+ bl FUN_02058994
+ mov r0, #0x0
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0203B758
+FUN_0203B758: ; 0x0203B758
+ push {r3-r5, lr}
+ add r4, r0, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0x34]
+ bl FUN_02058060
+ add r5, r0, #0x0
+ add r0, r4, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_02058E90
+ mov r0, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_0203B790
+FUN_0203B790: ; 0x0203B790
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394B8
+ add r4, r0, #0x0
+ mov r0, #0x0
+ strh r0, [r4, #0x0]
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r5, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r5, #0x0]
+ ldr r0, [r0, #0x34]
+ bl FUN_02058060
+ cmp r0, #0x0
+ beq _0203B7D2
+ bl FUN_02058480
+ strh r0, [r4, #0x0]
+_0203B7D2:
+ mov r0, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_0203B7D8
+FUN_0203B7D8: ; 0x0203B7D8
+ push {r3, lr}
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ mov r1, #0x30
+ ldr r0, [r0, #0x34]
+ bl FUN_020580B4
+ mov r1, #0xfe
+ bl FUN_02058EB0
+ mov r0, #0x0
+ pop {r3, pc}
+
+ thumb_func_start FUN_0203B7F0
+FUN_0203B7F0: ; 0x0203B7F0
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394B8
+ add r5, #0x80
+ add r4, r0, #0x0
+ ldr r0, [r5, #0x0]
+ ldr r0, [r0, #0xc]
+ bl FUN_02029C80
+ bl FUN_02029E0C
+ strh r0, [r4, #0x0]
+ mov r0, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_0203B81C
+FUN_0203B81C: ; 0x0203B81C
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r6, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394B8
+ add r5, #0x80
+ add r4, r0, #0x0
+ ldr r0, [r5, #0x0]
+ ldr r0, [r0, #0xc]
+ bl FUN_02029C80
+ add r1, r6, #0x0
+ bl FUN_02029E2C
+ strh r0, [r4, #0x0]
+ mov r0, #0x0
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_0203B85C
+FUN_0203B85C: ; 0x0203B85C
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r6, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r5, #0x80
+ add r4, r0, #0x0
+ ldr r0, [r5, #0x0]
+ ldr r0, [r0, #0xc]
+ bl FUN_02029C80
+ lsl r2, r4, #0x10
+ add r1, r6, #0x0
+ asr r2, r2, #0x10
+ bl FUN_02029D44
+ mov r0, #0x0
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_0203B8A0
+FUN_0203B8A0: ; 0x0203B8A0
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r6, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394B8
+ add r5, #0x80
+ add r4, r0, #0x0
+ ldr r0, [r5, #0x0]
+ ldr r0, [r0, #0xc]
+ bl FUN_0206BB1C
+ add r1, r6, #0x0
+ bl FUN_0206B9B0
+ bl FUN_020690CC
+ strh r0, [r4, #0x0]
+ mov r0, #0x0
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_0203B8E4
+FUN_0203B8E4: ; 0x0203B8E4
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ mov r1, #0x13
+ bl FUN_02039438
+ add r1, r5, #0x0
+ add r1, #0x80
+ add r4, r0, #0x0
+ ldr r1, [r1, #0x0]
+ mov r0, #0x20
+ bl FUN_020379F8
+ str r0, [r4, #0x0]
+ ldr r1, _0203B910 ; =FUN_0203BC04
+ add r0, r5, #0x0
+ bl SetupNativeScript
+ mov r0, #0x1
+ pop {r3-r5, pc}
+ nop
+_0203B910: .word FUN_0203BC04
+
+ thumb_func_start FUN_0203B914
+FUN_0203B914: ; 0x0203B914
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ mov r1, #0x13
+ bl FUN_02039438
+ add r1, r5, #0x0
+ add r1, #0x80
+ add r4, r0, #0x0
+ ldr r1, [r1, #0x0]
+ mov r0, #0x20
+ bl FUN_02037A1C
+ str r0, [r4, #0x0]
+ ldr r1, _0203B940 ; =FUN_0203BC04
+ add r0, r5, #0x0
+ bl SetupNativeScript
+ mov r0, #0x1
+ pop {r3-r5, pc}
+ nop
+_0203B940: .word FUN_0203BC04
+
+ thumb_func_start FUN_0203B944
+FUN_0203B944: ; 0x0203B944
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ mov r1, #0x13
+ bl FUN_02039438
+ add r5, #0x80
+ add r4, r0, #0x0
+ ldr r0, [r5, #0x0]
+ mov r1, #0x20
+ ldr r0, [r0, #0x10]
+ bl FUN_02037B44
+ str r0, [r4, #0x0]
+ mov r0, #0x1
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_0203B968
+FUN_0203B968: ; 0x0203B968
+ push {r3-r5, lr}
+ add r4, r0, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394B8
+ add r4, #0x80
+ add r5, r0, #0x0
+ ldr r0, [r4, #0x0]
+ mov r1, #0x13
+ bl FUN_02039438
+ add r4, r0, #0x0
+ ldr r0, [r4, #0x0]
+ cmp r0, #0x0
+ bne _0203B994
+ bl ErrorHandling
+_0203B994:
+ ldr r0, [r4, #0x0]
+ bl FUN_02037A40
+ strh r0, [r5, #0x0]
+ ldrh r0, [r5, #0x0]
+ cmp r0, #0x7
+ bne _0203B9A6
+ mov r0, #0xff
+ strh r0, [r5, #0x0]
+_0203B9A6:
+ ldr r0, [r4, #0x0]
+ bl FUN_02016A18
+ mov r0, #0x0
+ str r0, [r4, #0x0]
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_0203B9B4
+FUN_0203B9B4: ; 0x0203B9B4
+ push {r4-r7, lr}
+ sub sp, #0xc
+ add r5, r0, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ mov r1, #0x13
+ bl FUN_02039438
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r6, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r7, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ str r0, [sp, #0x8]
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ str r0, [sp, #0x0]
+ add r1, r5, #0x0
+ str r6, [sp, #0x4]
+ add r1, #0x80
+ ldr r1, [r1, #0x0]
+ ldr r2, [sp, #0x8]
+ mov r0, #0x20
+ add r3, r7, #0x0
+ bl FUN_02037BB0
+ str r0, [r4, #0x0]
+ ldr r1, _0203BA38 ; =FUN_0203BC04
+ add r0, r5, #0x0
+ bl SetupNativeScript
+ mov r0, #0x1
+ add sp, #0xc
+ pop {r4-r7, pc}
+ .balign 4
+_0203BA38: .word FUN_0203BC04
+
+ thumb_func_start FUN_0203BA3C
+FUN_0203BA3C: ; 0x0203BA3C
+ push {r4-r6, lr}
+ add r4, r0, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394B8
+ add r6, r0, #0x0
+ add r0, r4, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394B8
+ add r4, #0x80
+ add r5, r0, #0x0
+ ldr r0, [r4, #0x0]
+ mov r1, #0x13
+ bl FUN_02039438
+ add r4, r0, #0x0
+ ldr r0, [r4, #0x0]
+ cmp r0, #0x0
+ bne _0203BA7C
+ bl ErrorHandling
+_0203BA7C:
+ ldr r0, [r4, #0x0]
+ bl FUN_02037A40
+ strh r0, [r6, #0x0]
+ ldrh r0, [r6, #0x0]
+ cmp r0, #0x7
+ bne _0203BA8E
+ mov r0, #0xff
+ strh r0, [r6, #0x0]
+_0203BA8E:
+ ldr r0, [r4, #0x0]
+ bl FUN_02037A70
+ strh r0, [r5, #0x0]
+ ldrh r0, [r5, #0x0]
+ cmp r0, #0x1
+ bne _0203BAA0
+ mov r0, #0x1
+ b _0203BAA2
+_0203BAA0:
+ mov r0, #0x0
+_0203BAA2:
+ strh r0, [r5, #0x0]
+ ldr r0, [r4, #0x0]
+ bl FUN_02016A18
+ mov r0, #0x0
+ str r0, [r4, #0x0]
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_0203BAB0
+FUN_0203BAB0: ; 0x0203BAB0
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ mov r1, #0x13
+ bl FUN_02039438
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r1, r5, #0x0
+ add r1, #0x80
+ add r2, r0, #0x0
+ ldr r1, [r1, #0x0]
+ mov r0, #0x20
+ bl FUN_02037C00
+ str r0, [r4, #0x0]
+ ldr r1, _0203BAF0 ; =FUN_0203BC04
+ add r0, r5, #0x0
+ bl SetupNativeScript
+ mov r0, #0x1
+ pop {r3-r5, pc}
+ nop
+_0203BAF0: .word FUN_0203BC04
+
+ thumb_func_start FUN_0203BAF4
+FUN_0203BAF4: ; 0x0203BAF4
+ push {r3-r5, lr}
+ add r4, r0, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394B8
+ add r4, #0x80
+ add r5, r0, #0x0
+ ldr r0, [r4, #0x0]
+ mov r1, #0x13
+ bl FUN_02039438
+ add r4, r0, #0x0
+ ldr r0, [r4, #0x0]
+ cmp r0, #0x0
+ bne _0203BB20
+ bl ErrorHandling
+_0203BB20:
+ ldr r0, [r4, #0x0]
+ bl FUN_02037A78
+ strh r0, [r5, #0x0]
+ ldr r0, [r4, #0x0]
+ bl FUN_02016A18
+ mov r0, #0x0
+ str r0, [r4, #0x0]
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_0203BB34
+FUN_0203BB34: ; 0x0203BB34
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ mov r1, #0xa
+ bl FUN_02039438
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r7, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394B8
+ add r5, #0x80
+ add r6, r0, #0x0
+ ldr r0, [r5, #0x0]
+ ldr r1, [r4, #0x0]
+ add r2, r7, #0x0
+ bl FUN_021E1858
+ strh r0, [r6, #0x0]
+ mov r0, #0x0
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_0203BB80
+FUN_0203BB80: ; 0x0203BB80
+ mov r0, #0x0
+ bx lr
+
+ thumb_func_start FUN_0203BB84
+FUN_0203BB84: ; 0x0203BB84
+ mov r0, #0x0
+ bx lr
+
+ thumb_func_start FUN_0203BB88
+FUN_0203BB88: ; 0x0203BB88
+ mov r0, #0x1
+ bx lr
+
+ thumb_func_start FUN_0203BB8C
+FUN_0203BB8C: ; 0x0203BB8C
+ mov r0, #0x0
+ bx lr
+
+ thumb_func_start FUN_0203BB90
+FUN_0203BB90: ; 0x0203BB90
+ push {r3-r5, lr}
+ add r0, #0x80
+ ldr r5, [r0, #0x0]
+ mov r1, #0x13
+ add r0, r5, #0x0
+ bl FUN_02039438
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_0204647C
+ cmp r0, #0x0
+ beq _0203BBAE
+ mov r0, #0x0
+ pop {r3-r5, pc}
+_0203BBAE:
+ ldr r0, [r4, #0x0]
+ bl FUN_02016A18
+ mov r0, #0x0
+ str r0, [r4, #0x0]
+ mov r0, #0x1
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_0203BBBC
+FUN_0203BBBC: ; 0x0203BBBC
+ push {r4-r6, lr}
+ add r0, #0x80
+ ldr r5, [r0, #0x0]
+ mov r1, #0x13
+ add r0, r5, #0x0
+ bl FUN_02039438
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ ldr r6, [r4, #0x0]
+ bl FUN_0204647C
+ cmp r0, #0x0
+ beq _0203BBDC
+ mov r0, #0x0
+ pop {r4-r6, pc}
+_0203BBDC:
+ ldr r0, [r6, #0x8]
+ cmp r0, #0x1
+ bne _0203BBF4
+ mov r0, #0xb
+ bl FUN_02029048
+ add r5, #0x98
+ add r1, r0, #0x0
+ ldr r0, [r5, #0x0]
+ mov r2, #0x1
+ bl FUN_02028AD4
+_0203BBF4:
+ ldr r0, [r4, #0x0]
+ bl FUN_02016A18
+ mov r0, #0x0
+ str r0, [r4, #0x0]
+ mov r0, #0x1
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_0203BC04
+FUN_0203BC04: ; 0x0203BC04
+ push {r3, lr}
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_0204647C
+ cmp r0, #0x0
+ bne _0203BC16
+ mov r0, #0x1
+ pop {r3, pc}
+_0203BC16:
+ mov r0, #0x0
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_0203BC1C
+FUN_0203BC1C: ; 0x0203BC1C
+ push {r3, lr}
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0x10]
+ bl FUN_0204AF84
+ mov r0, #0x1
+ pop {r3, pc}
+
+ thumb_func_start FUN_0203BC2C
+FUN_0203BC2C: ; 0x0203BC2C
+ push {r3, lr}
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0x10]
+ bl FUN_0204AF3C
+ mov r0, #0x1
+ pop {r3, pc}
+
+ thumb_func_start FUN_0203BC3C
+FUN_0203BC3C: ; 0x0203BC3C
+ push {r3-r5, lr}
+ ldr r0, [r0, #0xc]
+ add r5, r1, #0x0
+ add r4, r2, #0x0
+ bl FUN_02027E24
+ cmp r5, #0x0
+ bne _0203BC5A
+ add r1, r4, #0x0
+ bl FUN_02027098
+ cmp r0, #0x0
+ bne _0203BC68
+ mov r0, #0x0
+ pop {r3-r5, pc}
+_0203BC5A:
+ add r1, r4, #0x0
+ bl FUN_020270B4
+ cmp r0, #0x0
+ bne _0203BC68
+ mov r0, #0x0
+ pop {r3-r5, pc}
+_0203BC68:
+ mov r0, #0x1
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_0203BC6C
+FUN_0203BC6C: ; 0x0203BC6C
+ push {r3-r7, lr}
+ add r5, r1, #0x0
+ str r0, [sp, #0x0]
+ ldr r0, [r5, #0xc]
+ add r4, r2, #0x0
+ add r6, r3, #0x0
+ bl FUN_02027E24
+ add r7, r0, #0x0
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ add r2, r6, #0x0
+ bl FUN_0203BC3C
+ cmp r0, #0x0
+ bne _0203BC90
+ mov r0, #0x0
+ pop {r3-r7, pc}
+_0203BC90:
+ ldr r0, [sp, #0x0]
+ mov r1, #0xc
+ bl FUN_02016998
+ mov r1, #0x0
+ strb r1, [r0, #0x0]
+ strb r1, [r0, #0x1]
+ strb r1, [r0, #0x2]
+ strb r1, [r0, #0x3]
+ strb r1, [r0, #0x4]
+ strb r1, [r0, #0x5]
+ strb r1, [r0, #0x6]
+ strb r1, [r0, #0x7]
+ strb r1, [r0, #0x8]
+ strb r1, [r0, #0x9]
+ strb r1, [r0, #0xa]
+ strb r1, [r0, #0xb]
+ str r7, [r0, #0x0]
+ str r4, [r0, #0x8]
+ str r6, [r0, #0x4]
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_0203BCBC
+FUN_0203BCBC: ; 0x0203BCBC
+ push {r3, lr}
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_021F02C4
+ mov r0, #0x1
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_0203BCCC
+FUN_0203BCCC: ; 0x0203BCCC
+ push {r3, lr}
+ ldr r0, [r0, #0x74]
+ bl FUN_0206F3B8
+ mov r0, #0x1
+ pop {r3, pc}
+
+ thumb_func_start FUN_0203BCD8
+FUN_0203BCD8: ; 0x0203BCD8
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ mov r1, #0x13
+ bl FUN_02039438
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r5, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r5, #0x0]
+ bl FUN_020394B8
+ ldr r1, [r4, #0x0]
+ ldr r1, [r1, #0x4]
+ strh r1, [r0, #0x0]
+ ldr r0, [r4, #0x0]
+ bl FUN_02016A18
+ mov r0, #0x0
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_0203BD08
+FUN_0203BD08: ; 0x0203BD08
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl ScriptReadHalfword
+ add r4, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r4, #0x0]
+ bl FUN_020394B8
+ add r4, r0, #0x0
+ bl FUN_02031190
+ strh r0, [r4, #0x0]
+ mov r0, #0x1
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0203BD28
+FUN_0203BD28: ; 0x0203BD28
+ push {r4-r7, lr}
+ sub sp, #0x14
+ add r5, r0, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ mov r1, #0x14
+ bl FUN_02039438
+ add r6, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r7, r0, #0x0
+ mov r0, #0x0
+ str r0, [sp, #0x0]
+ mov r0, #0x4
+ str r0, [sp, #0x4]
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ ldr r2, _0203BDB4 ; =0x000003D9
+ ldr r0, [r0, #0x8]
+ mov r1, #0x3
+ mov r3, #0xb
+ bl FUN_0200CB00
+ mov r0, #0xb
+ str r0, [sp, #0x0]
+ ldr r0, _0203BDB4 ; =0x000003D9
+ mov r1, #0x3
+ str r0, [sp, #0x4]
+ lsl r0, r7, #0x18
+ str r4, [sp, #0x8]
+ lsr r0, r0, #0x18
+ str r0, [sp, #0xc]
+ mov r0, #0x4
+ str r0, [sp, #0x10]
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ mov r2, #0xa
+ ldr r0, [r0, #0x8]
+ mov r3, #0x5
+ bl FUN_0200DC4C
+ add r5, #0x80
+ str r0, [r6, #0x0]
+ ldr r0, [r5, #0x0]
+ add r1, r4, #0x0
+ bl FUN_0203ED2C
+ mov r0, #0x0
+ add sp, #0x14
+ pop {r4-r7, pc}
+ .balign 4
+_0203BDB4: .word 0x000003D9
+
+ thumb_func_start FUN_0203BDB8
+FUN_0203BDB8: ; 0x0203BDB8
+ push {r4-r6, lr}
+ sub sp, #0x10
+ add r5, r0, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ mov r1, #0x14
+ bl FUN_02039438
+ add r6, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0xc]
+ bl FUN_0206BB1C
+ add r1, r4, #0x0
+ bl FUN_0206B9B0
+ add r4, r0, #0x0
+ mov r0, #0x0
+ str r0, [sp, #0x0]
+ mov r0, #0x4
+ str r0, [sp, #0x4]
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ ldr r2, _0203BE4C ; =0x000003D9
+ ldr r0, [r0, #0x8]
+ mov r1, #0x3
+ mov r3, #0xb
+ bl FUN_0200CB00
+ mov r0, #0xb
+ str r0, [sp, #0x0]
+ ldr r0, _0203BE4C ; =0x000003D9
+ mov r1, #0x3
+ str r0, [sp, #0x4]
+ str r4, [sp, #0x8]
+ mov r0, #0x4
+ str r0, [sp, #0xc]
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ mov r2, #0xa
+ ldr r0, [r0, #0x8]
+ mov r3, #0x5
+ bl FUN_0200DCA4
+ str r0, [r6, #0x0]
+ add r0, r4, #0x0
+ mov r1, #0x5
+ mov r2, #0x0
+ bl FUN_020671BC
+ add r1, r0, #0x0
+ add r5, #0x80
+ lsl r1, r1, #0x10
+ ldr r0, [r5, #0x0]
+ lsr r1, r1, #0x10
+ bl FUN_0203ED2C
+ mov r0, #0x0
+ add sp, #0x10
+ pop {r4-r6, pc}
+ .balign 4
+_0203BE4C: .word 0x000003D9
+
+ thumb_func_start FUN_0203BE50
+FUN_0203BE50: ; 0x0203BE50
+ push {r3, lr}
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ mov r1, #0x14
+ bl FUN_02039438
+ ldr r0, [r0, #0x0]
+ mov r1, #0x1
+ strb r1, [r0, #0x0]
+ add r0, r1, #0x0
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_0203BE68
+FUN_0203BE68: ; 0x0203BE68
+ push {r3, lr}
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ mov r1, #0x14
+ bl FUN_02039438
+ ldr r0, [r0, #0x0]
+ mov r1, #0x2
+ strb r1, [r0, #0x0]
+ mov r0, #0x1
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_0203BE80
+FUN_0203BE80: ; 0x0203BE80
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl ScriptReadHalfword
+ str r0, [r4, #0x64]
+ ldr r1, _0203BE98 ; =FUN_0203BE9C
+ add r0, r4, #0x0
+ bl SetupNativeScript
+ mov r0, #0x1
+ pop {r4, pc}
+ nop
+_0203BE98: .word FUN_0203BE9C
+
+ thumb_func_start FUN_0203BE9C
+FUN_0203BE9C: ; 0x0203BE9C
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ mov r1, #0x14
+ bl FUN_02039438
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ ldr r1, [r5, #0x64]
+ add r0, #0x80
+ lsl r1, r1, #0x10
+ ldr r0, [r0, #0x0]
+ lsr r1, r1, #0x10
+ bl FUN_020394B8
+ ldr r0, [r4, #0x0]
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x3
+ beq _0203BEC8
+ mov r0, #0x1
+ pop {r3-r5, pc}
+_0203BEC8:
+ mov r0, #0x0
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_0203BECC
+FUN_0203BECC: ; 0x0203BECC
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ bl ScriptReadHalfword
+ add r6, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ mov r1, #0xf
+ bl FUN_02039438
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ add r1, r6, #0x0
+ bl FUN_020394B8
+ add r2, r0, #0x0
+ ldr r0, [r5, #0x74]
+ ldr r1, [r4, #0x0]
+ bl FUN_021E1374
+ mov r0, #0x1
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_0203BF00
+FUN_0203BF00: ; 0x0203BF00
+ push {r4, lr}
+ add r4, r0, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ mov r1, #0xa
+ bl FUN_02039438
+ ldr r1, [r0, #0x0]
+ cmp r1, #0x0
+ beq _0203BF1C
+ add r4, #0x80
+ ldr r0, [r4, #0x0]
+ bl FUN_021E1994
+_0203BF1C:
+ mov r0, #0x0
+ pop {r4, pc}
+
+ thumb_func_start FUN_0203BF20
+FUN_0203BF20: ; 0x0203BF20
+ push {r3, lr}
+ ldr r0, [r0, #0x74]
+ bl FUN_0208A338
+ mov r0, #0x1
+ pop {r3, pc}
+
+ thumb_func_start FUN_0203BF2C
+FUN_0203BF2C: ; 0x0203BF2C
+ push {r3-r6, lr}
+ sub sp, #0x4
+ add r5, r0, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394B8
+ add r6, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r5, #0x80
+ ldr r2, [r5, #0x0]
+ add r1, r6, #0x0
+ str r0, [sp, #0x0]
+ ldr r0, [r2, #0x10]
+ ldr r2, [r2, #0xc]
+ add r3, r4, #0x0
+ bl FUN_020380CC
+ mov r0, #0x1
+ add sp, #0x4
+ pop {r3-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_0203BF84
+FUN_0203BF84: ; 0x0203BF84
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ mov r1, #0x13
+ bl FUN_02039438
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r7, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394B8
+ add r1, r5, #0x0
+ add r1, #0x80
+ add r6, r0, #0x0
+ ldr r1, [r1, #0x0]
+ mov r0, #0xb
+ mov r2, #0x0
+ add r3, r7, #0x0
+ bl FUN_0203BC6C
+ str r0, [r4, #0x0]
+ cmp r0, #0x0
+ bne _0203BFCC
+ mov r0, #0x1
+ strh r0, [r6, #0x0]
+ pop {r3-r7, pc}
+_0203BFCC:
+ mov r0, #0x0
+ strh r0, [r6, #0x0]
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ ldr r1, [r4, #0x0]
+ bl FUN_02038130
+ ldr r1, _0203BFE8 ; =FUN_0203BB90
+ add r0, r5, #0x0
+ bl SetupNativeScript
+ mov r0, #0x1
+ pop {r3-r7, pc}
+ .balign 4
+_0203BFE8: .word FUN_0203BB90
+
+ thumb_func_start FUN_0203BFEC
+FUN_0203BFEC: ; 0x0203BFEC
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ mov r1, #0x13
+ bl FUN_02039438
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r7, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394B8
+ add r1, r5, #0x0
+ add r1, #0x80
+ add r6, r0, #0x0
+ ldr r1, [r1, #0x0]
+ mov r0, #0xb
+ mov r2, #0x1
+ add r3, r7, #0x0
+ bl FUN_0203BC6C
+ str r0, [r4, #0x0]
+ cmp r0, #0x0
+ bne _0203C034
+ mov r0, #0x1
+ strh r0, [r6, #0x0]
+ pop {r3-r7, pc}
+_0203C034:
+ mov r0, #0x0
+ strh r0, [r6, #0x0]
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ ldr r1, [r4, #0x0]
+ bl FUN_02038130
+ ldr r1, _0203C050 ; =FUN_0203BB90
+ add r0, r5, #0x0
+ bl SetupNativeScript
+ mov r0, #0x1
+ pop {r3-r7, pc}
+ .balign 4
+_0203C050: .word FUN_0203BB90
+
+ thumb_func_start FUN_0203C054
+FUN_0203C054: ; 0x0203C054
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ bl ScriptReadHalfword
+ add r6, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394B8
+ add r5, #0x80
+ add r4, r0, #0x0
+ ldr r0, [r5, #0x0]
+ mov r1, #0x0
+ add r2, r6, #0x0
+ bl FUN_0203BC3C
+ cmp r0, #0x1
+ bne _0203C088
+ mov r0, #0x1
+ strh r0, [r4, #0x0]
+ pop {r4-r6, pc}
+_0203C088:
+ mov r0, #0x0
+ strh r0, [r4, #0x0]
+ mov r0, #0x1
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_0203C090
+FUN_0203C090: ; 0x0203C090
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ bl ScriptReadHalfword
+ add r6, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394B8
+ add r5, #0x80
+ add r4, r0, #0x0
+ ldr r0, [r5, #0x0]
+ mov r1, #0x1
+ add r2, r6, #0x0
+ bl FUN_0203BC3C
+ cmp r0, #0x1
+ bne _0203C0C4
+ mov r0, #0x1
+ strh r0, [r4, #0x0]
+ pop {r4-r6, pc}
+_0203C0C4:
+ mov r0, #0x0
+ strh r0, [r4, #0x0]
+ mov r0, #0x1
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_0203C0CC
+FUN_0203C0CC: ; 0x0203C0CC
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r5, #0x80
+ add r4, r0, #0x0
+ ldr r0, [r5, #0x0]
+ ldr r0, [r0, #0xc]
+ bl FUN_02027E24
+ mov r1, #0x0
+ bl FUN_02027008
+ add r1, r4, #0x0
+ bl FUN_02027478
+ mov r0, #0x1
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_0203C0FC
+FUN_0203C0FC: ; 0x0203C0FC
+ push {r4, lr}
+ add r4, r0, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_02038804
+ ldr r1, _0203C114 ; =FUN_0203BC04
+ add r0, r4, #0x0
+ bl SetupNativeScript
+ mov r0, #0x1
+ pop {r4, pc}
+ .balign 4
+_0203C114: .word FUN_0203BC04
+
+ thumb_func_start FUN_0203C118
+FUN_0203C118: ; 0x0203C118
+ push {r3, lr}
+ add r1, r0, #0x0
+ ldr r0, [r1, #0x74]
+ add r1, #0x80
+ ldr r1, [r1, #0x0]
+ ldr r1, [r1, #0xc]
+ bl FUN_02085F48
+ mov r0, #0x1
+ pop {r3, pc}
+
+ thumb_func_start FUN_0203C12C
+FUN_0203C12C: ; 0x0203C12C
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ mov r1, #0x13
+ bl FUN_02039438
+ mov r1, #0x5
+ add r4, r0, #0x0
+ mov r0, #0xb
+ lsl r1, r1, #0x6
+ bl FUN_02016998
+ str r0, [r4, #0x0]
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ ldr r1, [r4, #0x0]
+ mov r2, #0x2
+ bl FUN_0205F7A0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ ldr r1, [r4, #0x0]
+ bl FUN_02037E90
+ ldr r1, _0203C170 ; =FUN_0203BB90
+ add r0, r5, #0x0
+ bl SetupNativeScript
+ mov r0, #0x1
+ pop {r3-r5, pc}
+ nop
+_0203C170: .word FUN_0203BB90
+
+ thumb_func_start FUN_0203C174
+FUN_0203C174: ; 0x0203C174
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ mov r1, #0x13
+ bl FUN_02039438
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ lsl r0, r0, #0x18
+ lsr r1, r0, #0x18
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ mov r2, #0xb
+ bl FUN_02088960
+ str r0, [r4, #0x0]
+ ldr r1, _0203C1A8 ; =FUN_0203BB90
+ add r0, r5, #0x0
+ bl SetupNativeScript
+ mov r0, #0x1
+ pop {r3-r5, pc}
+ .balign 4
+_0203C1A8: .word FUN_0203BB90
+
+ thumb_func_start FUN_0203C1AC
+FUN_0203C1AC: ; 0x0203C1AC
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394B8
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0xc]
+ bl FUN_0206F158
+ mov r1, #0x4
+ bl FUN_0206EE64
+ cmp r0, #0x0
+ bne _0203C1E0
+ mov r0, #0x1
+ strh r0, [r4, #0x0]
+ mov r0, #0x0
+ pop {r3-r5, pc}
+_0203C1E0:
+ add r5, #0x80
+ ldr r0, [r5, #0x0]
+ ldr r0, [r0, #0xc]
+ bl FUN_02028048
+ bl FUN_020281B8
+ cmp r0, #0x64
+ blo _0203C1FA
+ mov r0, #0x2
+ strh r0, [r4, #0x0]
+ mov r0, #0x0
+ pop {r3-r5, pc}
+_0203C1FA:
+ mov r0, #0x0
+ strh r0, [r4, #0x0]
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_0203C200
+FUN_0203C200: ; 0x0203C200
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r7, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ str r0, [sp, #0x0]
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ mov r1, #0x13
+ bl FUN_02039438
+ add r6, r0, #0x0
+ mov r0, #0xb
+ mov r1, #0x8
+ bl FUN_02016998
+ mov r1, #0x0
+ mov r2, #0x8
+ str r0, [r6, #0x0]
+ add r4, r0, #0x0
+ blx MI_CpuFill8
+ ldr r0, [sp, #0x0]
+ strh r7, [r4, #0x4]
+ strh r0, [r4, #0x6]
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0xc]
+ str r0, [r4, #0x0]
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ ldr r1, [r6, #0x0]
+ bl FUN_02037FE4
+ ldr r1, _0203C274 ; =FUN_0203BB90
+ add r0, r5, #0x0
+ bl SetupNativeScript
+ mov r0, #0x1
+ pop {r3-r7, pc}
+ .balign 4
+_0203C274: .word FUN_0203BB90
+
+ thumb_func_start FUN_0203C278
+FUN_0203C278: ; 0x0203C278
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ mov r1, #0x13
+ bl FUN_02039438
+ add r4, r0, #0x0
+ mov r0, #0xb
+ mov r1, #0xc
+ bl FUN_02016998
+ add r1, r5, #0x0
+ add r1, #0x80
+ ldr r1, [r1, #0x0]
+ ldr r1, [r1, #0xc]
+ str r1, [r0, #0x0]
+ ldr r2, [r5, #0x8]
+ add r1, r2, #0x1
+ str r1, [r5, #0x8]
+ ldrb r1, [r2, #0x0]
+ str r1, [r0, #0x4]
+ str r0, [r4, #0x0]
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ ldr r1, [r4, #0x0]
+ bl FUN_02037D60
+ ldr r1, _0203C2C0 ; =FUN_0203BBBC
+ add r0, r5, #0x0
+ bl SetupNativeScript
+ mov r0, #0x1
+ pop {r3-r5, pc}
+ nop
+_0203C2C0: .word FUN_0203BBBC
+
+ thumb_func_start FUN_0203C2C4
+FUN_0203C2C4: ; 0x0203C2C4
+ push {r4, lr}
+ add r4, r0, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020383F8
+ ldr r1, _0203C2DC ; =FUN_0203BC04
+ add r0, r4, #0x0
+ bl SetupNativeScript
+ mov r0, #0x1
+ pop {r4, pc}
+ .balign 4
+_0203C2DC: .word FUN_0203BC04
+
+ thumb_func_start FUN_0203C2E0
+FUN_0203C2E0: ; 0x0203C2E0
+ push {r3, lr}
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_02065344
+ mov r0, #0x1
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_0203C2F0
+FUN_0203C2F0: ; 0x0203C2F0
+ push {r3, lr}
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0x10]
+ bl FUN_020383D8
+ mov r0, #0x1
+ pop {r3, pc}
+
+ thumb_func_start FUN_0203C300
+FUN_0203C300: ; 0x0203C300
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ mov r1, #0x13
+ bl FUN_02039438
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_0203842C
+ str r0, [r4, #0x0]
+ ldr r1, _0203C328 ; =FUN_0203BB90
+ add r0, r5, #0x0
+ bl SetupNativeScript
+ mov r0, #0x1
+ pop {r3-r5, pc}
+ .balign 4
+_0203C328: .word FUN_0203BB90
+
+ thumb_func_start FUN_0203C32C
+FUN_0203C32C: ; 0x0203C32C
+ push {r3, lr}
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0x10]
+ bl FUN_02048694
+ mov r0, #0x1
+ pop {r3, pc}
+
+ thumb_func_start FUN_0203C33C
+FUN_0203C33C: ; 0x0203C33C
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ mov r1, #0x13
+ bl FUN_02039438
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_02038824
+ str r0, [r4, #0x0]
+ ldr r1, _0203C364 ; =FUN_0203BB90
+ add r0, r5, #0x0
+ bl SetupNativeScript
+ mov r0, #0x1
+ pop {r3-r5, pc}
+ .balign 4
+_0203C364: .word FUN_0203BB90
+
+ thumb_func_start FUN_0203C368
+FUN_0203C368: ; 0x0203C368
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r6, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394B8
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0xc]
+ bl FUN_0203384C
+ cmp r0, #0x0
+ beq _0203C3BC
+ mov r0, #0x1
+ strh r0, [r4, #0x0]
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ add r1, r6, #0x0
+ bl FUN_020386E0
+ ldr r1, _0203C3C4 ; =FUN_0203BC04
+ add r0, r5, #0x0
+ bl SetupNativeScript
+ b _0203C3C0
+_0203C3BC:
+ mov r0, #0x0
+ strh r0, [r4, #0x0]
+_0203C3C0:
+ mov r0, #0x1
+ pop {r4-r6, pc}
+ .balign 4
+_0203C3C4: .word FUN_0203BC04
+
+ thumb_func_start FUN_0203C3C8
+FUN_0203C3C8: ; 0x0203C3C8
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394B8
+ add r1, r0, #0x0
+ ldr r0, [r4, #0x74]
+ bl FUN_0206F3D8
+ mov r0, #0x1
+ pop {r4, pc}
+
+ thumb_func_start FUN_0203C3E8
+FUN_0203C3E8: ; 0x0203C3E8
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ mov r1, #0x14
+ bl FUN_02039438
+ add r4, r0, #0x0
+ mov r0, #0xb
+ mov r1, #0x8
+ bl FUN_02016998
+ str r0, [r4, #0x0]
+ add r6, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0xc]
+ bl LoadPlayerDataAddress
+ str r0, [r6, #0x4]
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ ldr r1, [r4, #0x0]
+ bl FUN_020386A4
+ ldr r1, _0203C42C ; =FUN_0203BC04
+ add r0, r5, #0x0
+ bl SetupNativeScript
+ mov r0, #0x1
+ pop {r4-r6, pc}
+ nop
+_0203C42C: .word FUN_0203BC04
+
+ thumb_func_start FUN_0203C430
+FUN_0203C430: ; 0x0203C430
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ mov r1, #0x14
+ bl FUN_02039438
+ add r5, #0x80
+ add r4, r0, #0x0
+ ldr r0, [r5, #0x0]
+ ldr r0, [r0, #0xc]
+ bl FUN_020462AC
+ ldr r1, [r4, #0x0]
+ ldr r1, [r1, #0x0]
+ lsl r1, r1, #0x10
+ lsr r1, r1, #0x10
+ bl FUN_0205F378
+ ldr r0, [r4, #0x0]
+ bl FUN_02016A18
+ mov r0, #0x0
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_0203C460
+FUN_0203C460: ; 0x0203C460
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ ldr r1, [r5, #0x8]
+ add r0, r1, #0x1
+ str r0, [r5, #0x8]
+ ldrb r0, [r1, #0x0]
+ cmp r0, #0x0
+ beq _0203C474
+ mov r0, #0x1
+ b _0203C476
+_0203C474:
+ mov r0, #0x0
+_0203C476:
+ lsl r0, r0, #0x18
+ lsr r4, r0, #0x18
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ mov r1, #0x13
+ bl FUN_02039438
+ add r6, r0, #0x0
+ ldr r0, [r6, #0x0]
+ cmp r0, #0x0
+ beq _0203C492
+ bl ErrorHandling
+_0203C492:
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ add r1, r4, #0x0
+ bl FUN_0203789C
+ str r0, [r6, #0x0]
+ ldr r1, _0203C4AC ; =FUN_0203BC04
+ add r0, r5, #0x0
+ bl SetupNativeScript
+ mov r0, #0x1
+ pop {r4-r6, pc}
+ .balign 4
+_0203C4AC: .word FUN_0203BC04
+
+ thumb_func_start FUN_0203C4B0
+FUN_0203C4B0: ; 0x0203C4B0
+ push {r3-r5, lr}
+ add r4, r0, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394B8
+ add r4, #0x80
+ add r5, r0, #0x0
+ ldr r0, [r4, #0x0]
+ mov r1, #0x13
+ bl FUN_02039438
+ add r4, r0, #0x0
+ ldr r0, [r4, #0x0]
+ cmp r0, #0x0
+ bne _0203C4DC
+ bl ErrorHandling
+_0203C4DC:
+ ldr r0, [r4, #0x0]
+ bl FUN_020378FC
+ strh r0, [r5, #0x0]
+ ldr r0, [r4, #0x0]
+ bl FUN_02016A18
+ mov r0, #0x0
+ str r0, [r4, #0x0]
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_0203C4F0
+FUN_0203C4F0: ; 0x0203C4F0
+ push {r3-r4, lr}
+ sub sp, #0xc
+ add r4, r0, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394B8
+ mov r1, #0x0
+ str r1, [sp, #0x0]
+ str r1, [sp, #0x4]
+ str r0, [sp, #0x8]
+ ldr r0, [r4, #0x74]
+ add r2, r1, #0x0
+ mov r3, #0x7
+ bl FUN_020385CC
+ mov r0, #0x1
+ add sp, #0xc
+ pop {r3-r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0203C520
+FUN_0203C520: ; 0x0203C520
+ push {r4-r7, lr}
+ sub sp, #0x34
+ add r5, r0, #0x0
+ add r1, r5, #0x0
+ add r1, #0x80
+ ldr r4, [r1, #0x0]
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r6, r0, #0x0
+ ldr r0, [r4, #0xc]
+ bl FUN_0206BB1C
+ add r1, r6, #0x0
+ bl FUN_0206B9B0
+ mov r1, #0x74
+ add r2, sp, #0xc
+ add r7, r0, #0x0
+ bl FUN_020671BC
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394B8
+ add r4, r0, #0x0
+ add r0, r7, #0x0
+ mov r1, #0x5
+ mov r2, #0x0
+ bl FUN_020671BC
+ add r2, r0, #0x0
+ str r6, [sp, #0x0]
+ add r0, sp, #0xc
+ str r0, [sp, #0x4]
+ str r4, [sp, #0x8]
+ ldr r0, [r5, #0x74]
+ mov r1, #0x1
+ mov r3, #0xa
+ bl FUN_020385CC
+ mov r0, #0x1
+ add sp, #0x34
+ pop {r4-r7, pc}
+
+ thumb_func_start FUN_0203C58C
+FUN_0203C58C: ; 0x0203C58C
+ push {r3-r4, lr}
+ sub sp, #0xc
+ add r4, r0, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394B8
+ mov r2, #0x0
+ str r2, [sp, #0x0]
+ str r2, [sp, #0x4]
+ str r0, [sp, #0x8]
+ ldr r0, [r4, #0x74]
+ mov r1, #0x6
+ mov r3, #0xa
+ bl FUN_020385CC
+ mov r0, #0x1
+ add sp, #0xc
+ pop {r3-r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0203C5BC
+FUN_0203C5BC: ; 0x0203C5BC
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394B8
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394B8
+ add r2, r0, #0x0
+ ldr r0, _0203C610 ; =0x0000FFFF
+ add r5, #0x80
+ strh r0, [r2, #0x0]
+ ldr r0, [r5, #0x0]
+ add r1, r4, #0x0
+ ldr r0, [r0, #0x10]
+ mov r3, #0x0
+ bl FUN_02037E18
+ mov r0, #0x1
+ pop {r3-r5, pc}
+ nop
+_0203C610: .word 0x0000FFFF
+
+ thumb_func_start FUN_0203C614
+FUN_0203C614: ; 0x0203C614
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394B8
+ add r6, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394B8
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394B8
+ add r3, r0, #0x0
+ ldr r0, _0203C67C ; =0x0000FFFF
+ add r5, #0x80
+ strh r0, [r4, #0x0]
+ strh r0, [r3, #0x0]
+ ldr r0, [r5, #0x0]
+ add r1, r6, #0x0
+ ldr r0, [r0, #0x10]
+ add r2, r4, #0x0
+ bl FUN_02037E18
+ mov r0, #0x1
+ pop {r4-r6, pc}
+ .balign 4
+_0203C67C: .word 0x0000FFFF
+
+ thumb_func_start FUN_0203C680
+FUN_0203C680: ; 0x0203C680
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ mov r1, #0xf
+ bl FUN_02039438
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r6, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r5, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r5, #0x0]
+ bl FUN_020394F0
+ add r2, r0, #0x0
+ ldr r0, [r4, #0x0]
+ add r1, r6, #0x0
+ bl FUN_0200B518
+ mov r0, #0x0
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_0203C6C4
+FUN_0203C6C4: ; 0x0203C6C4
+ push {r4-r7, lr}
+ sub sp, #0xc
+ add r5, r0, #0x0
+ bl ScriptReadHalfword
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r6, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r7, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ str r4, [sp, #0x0]
+ add r3, r0, #0x0
+ str r6, [sp, #0x4]
+ mov r0, #0x4
+ str r0, [sp, #0x8]
+ mov r0, #0x0
+ add r1, r7, #0x0
+ add r2, r7, #0x0
+ bl FUN_0200E1D0
+ mov r0, #0x0
+ bl FUN_0200E388
+ mov r0, #0x1
+ bl FUN_0200E388
+ mov r0, #0x0
+ add sp, #0xc
+ pop {r4-r7, pc}
+
+ thumb_func_start FUN_0203C70C
+FUN_0203C70C: ; 0x0203C70C
+ push {r3, lr}
+ ldr r1, _0203C718 ; =FUN_0203C71C
+ bl SetupNativeScript
+ mov r0, #0x1
+ pop {r3, pc}
+ .balign 4
+_0203C718: .word FUN_0203C71C
+
+ thumb_func_start FUN_0203C71C
+FUN_0203C71C: ; 0x0203C71C
+ push {r3, lr}
+ bl FUN_0200E308
+ cmp r0, #0x1
+ bne _0203C72A
+ mov r0, #0x1
+ pop {r3, pc}
+_0203C72A:
+ mov r0, #0x0
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_0203C730
+FUN_0203C730: ; 0x0203C730
+ push {r3-r7, lr}
+ sub sp, #0x8
+ add r5, r0, #0x0
+ bl ScriptReadHalfword
+ add r6, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r7, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ str r4, [sp, #0x0]
+ str r0, [sp, #0x4]
+ mov r2, #0x0
+ ldr r0, [r5, #0x74]
+ add r1, r6, #0x0
+ mvn r2, r2
+ add r3, r7, #0x0
+ bl FUN_02049240
+ mov r0, #0x1
+ add sp, #0x8
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_0203C788
+FUN_0203C788: ; 0x0203C788
+ push {r3-r7, lr}
+ sub sp, #0x8
+ add r5, r0, #0x0
+ bl ScriptReadHalfword
+ add r6, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r7, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ str r4, [sp, #0x0]
+ mov r2, #0x0
+ add r5, #0x80
+ str r0, [sp, #0x4]
+ ldr r0, [r5, #0x0]
+ add r1, r6, #0x0
+ ldr r0, [r0, #0x10]
+ mvn r2, r2
+ add r3, r7, #0x0
+ bl FUN_02049F98
+ mov r0, #0x1
+ add sp, #0x8
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_0203C7E4
+FUN_0203C7E4: ; 0x0203C7E4
+ push {r3, lr}
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0x10]
+ bl FUN_02049FFC
+ mov r0, #0x1
+ pop {r3, pc}
+
+ thumb_func_start FUN_0203C7F4
+FUN_0203C7F4: ; 0x0203C7F4
+ push {r3-r5, lr}
+ add r4, r0, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0xc]
+ bl FUN_02034E30
+ bl FUN_02034DC8
+ add r5, r0, #0x0
+ add r0, r4, #0x0
+ bl ScriptReadHalfword
+ add r4, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r4, #0x0]
+ bl FUN_020394B8
+ ldr r1, [r5, #0x0]
+ strh r1, [r0, #0x0]
+ mov r0, #0x0
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_0203C820
+FUN_0203C820: ; 0x0203C820
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394B8
+ add r4, #0x80
+ ldr r1, [r4, #0x0]
+ ldr r1, [r1, #0x1c]
+ ldr r1, [r1, #0x0]
+ strh r1, [r0, #0x0]
+ mov r0, #0x0
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0203C844
+FUN_0203C844: ; 0x0203C844
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0x38]
+ bl FUN_020552F8
+ add r1, r0, #0x0
+ ldr r0, [r5, #0x74]
+ add r2, r4, #0x0
+ bl FUN_021E6990
+ mov r0, #0x1
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_0203C874
+FUN_0203C874: ; 0x0203C874
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ add r0, #0x90
+ ldr r0, [r0, #0x0]
+ bl FUN_0205DD40
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0x38]
+ bl FUN_020552F8
+ add r1, r0, #0x0
+ ldr r0, [r5, #0x74]
+ add r2, r4, #0x0
+ bl FUN_021E6410
+ mov r0, #0x1
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_0203C8B4
+FUN_0203C8B4: ; 0x0203C8B4
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0x38]
+ bl FUN_020552F8
+ add r1, r0, #0x0
+ ldr r0, [r5, #0x74]
+ add r2, r4, #0x0
+ bl FUN_021E6BF4
+ mov r0, #0x1
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_0203C8E4
+FUN_0203C8E4: ; 0x0203C8E4
+ push {r4-r6, lr}
+ sub sp, #0x8
+ add r5, r0, #0x0
+ bl ScriptReadHalfword
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r6, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ str r0, [sp, #0x0]
+ mov r2, #0x1
+ str r2, [sp, #0x4]
+ add r5, #0x80
+ ldr r0, [r5, #0x0]
+ add r1, r4, #0x0
+ sub r2, r2, #0x2
+ add r3, r6, #0x0
+ bl FUN_02049274
+ mov r0, #0x1
+ add sp, #0x8
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_0203C930
+FUN_0203C930: ; 0x0203C930
+ push {r3-r5, lr}
+ add r4, r0, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0xc]
+ bl FUN_02034E30
+ add r5, r0, #0x0
+ mov r1, #0x0
+ bl FUN_02034DF4
+ add r0, r5, #0x0
+ bl FUN_02034DEC
+ add r4, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r4, #0x0]
+ ldr r0, [r0, #0x4]
+ ldr r0, [r0, #0xc]
+ bl FUN_021DC174
+ mov r0, #0x1
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_0203C960
+FUN_0203C960: ; 0x0203C960
+ push {r3-r5, lr}
+ add r4, r0, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0xc]
+ bl FUN_02034E30
+ add r5, r0, #0x0
+ mov r1, #0x0
+ bl FUN_02034DF4
+ add r0, r5, #0x0
+ bl FUN_02034DEC
+ add r4, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r4, #0x0]
+ ldr r0, [r0, #0x4]
+ ldr r0, [r0, #0xc]
+ bl FUN_021DC174
+ mov r0, #0x1
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_0203C990
+FUN_0203C990: ; 0x0203C990
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ mov r1, #0x14
+ bl FUN_02039438
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r6, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0xc]
+ bl FUN_0206BB1C
+ add r1, r6, #0x0
+ bl FUN_0206B9B0
+ add r6, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0x38]
+ bl FUN_020553E8
+ add r3, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ mov r1, #0x0
+ add r2, r6, #0x0
+ bl FUN_0224666C
+ str r0, [r4, #0x0]
+ ldr r1, _0203C9F4 ; =FUN_0203C9F8
+ add r0, r5, #0x0
+ bl SetupNativeScript
+ mov r0, #0x1
+ pop {r4-r6, pc}
+ nop
+_0203C9F4: .word FUN_0203C9F8
+
+ thumb_func_start FUN_0203C9F8
+FUN_0203C9F8: ; 0x0203C9F8
+ push {r4, lr}
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ mov r1, #0x14
+ bl FUN_02039438
+ add r4, r0, #0x0
+ ldr r0, [r4, #0x0]
+ bl FUN_022466A0
+ cmp r0, #0x1
+ bne _0203CA1A
+ ldr r0, [r4, #0x0]
+ bl FUN_022466AC
+ mov r0, #0x1
+ pop {r4, pc}
+_0203CA1A:
+ mov r0, #0x0
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0203CA20
+FUN_0203CA20: ; 0x0203CA20
+ push {r3, lr}
+ ldr r0, [r0, #0x74]
+ bl FUN_021E7030
+ mov r0, #0x1
+ pop {r3, pc}
+
+ thumb_func_start FUN_0203CA2C
+FUN_0203CA2C: ; 0x0203CA2C
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394B8
+ add r5, #0x80
+ add r4, r0, #0x0
+ ldr r0, [r5, #0x0]
+ ldr r0, [r0, #0x38]
+ bl FUN_020553C4
+ cmp r0, #0x1
+ bne _0203CA54
+ mov r0, #0x1
+ b _0203CA56
+_0203CA54:
+ mov r0, #0x0
+_0203CA56:
+ strh r0, [r4, #0x0]
+ mov r0, #0x0
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_0203CA5C
+FUN_0203CA5C: ; 0x0203CA5C
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r1, [r4, #0x8]
+ add r0, r1, #0x1
+ str r0, [r4, #0x8]
+ ldrb r0, [r1, #0x0]
+ cmp r0, #0x1
+ bne _0203CAA4
+ add r0, r4, #0x0
+ add r0, #0x80
+ mov r1, #0x12
+ ldr r0, [r0, #0x0]
+ lsl r1, r1, #0x6
+ bl FUN_0204AB20
+ add r0, r4, #0x0
+ add r0, #0x80
+ mov r1, #0x12
+ ldr r0, [r0, #0x0]
+ lsl r1, r1, #0x6
+ mov r2, #0x1
+ bl FUN_0204ABDC
+ add r0, r4, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ mov r1, #0x2
+ ldr r0, [r0, #0x38]
+ bl FUN_021E5FD8
+ add r4, #0x80
+ ldr r0, [r4, #0x0]
+ ldr r0, [r0, #0x38]
+ bl FUN_021E5FE0
+ b _0203CAE4
+_0203CAA4:
+ add r0, r4, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ mov r1, #0x1
+ ldr r0, [r0, #0x38]
+ bl FUN_021E5FD8
+ add r0, r4, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0x38]
+ bl FUN_021E5FE0
+ add r0, r4, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ mov r1, #0x0
+ bl FUN_0204AB20
+ add r0, r4, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ ldr r1, [r0, #0x1c]
+ ldr r1, [r1, #0x0]
+ bl FUN_0204AB58
+ add r4, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r4, #0x0]
+ mov r2, #0x1
+ bl FUN_0204ABDC
+_0203CAE4:
+ mov r0, #0x0
+ pop {r4, pc}
+
+ thumb_func_start FUN_0203CAE8
+FUN_0203CAE8: ; 0x0203CAE8
+ push {r4, lr}
+ add r4, r0, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ mov r1, #0x2
+ ldr r0, [r0, #0x38]
+ bl FUN_021E5FD8
+ add r4, #0x80
+ mov r1, #0x12
+ ldr r0, [r4, #0x0]
+ lsl r1, r1, #0x6
+ bl FUN_0204AB20
+ mov r0, #0x0
+ pop {r4, pc}
+
+ thumb_func_start FUN_0203CB08
+FUN_0203CB08: ; 0x0203CB08
+ push {r3, lr}
+ ldr r2, [r0, #0x8]
+ add r1, r2, #0x1
+ str r1, [r0, #0x8]
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ ldrb r1, [r2, #0x0]
+ ldr r0, [r0, #0x38]
+ bl FUN_02055720
+ mov r0, #0x0
+ pop {r3, pc}
+
+ thumb_func_start FUN_0203CB20
+FUN_0203CB20: ; 0x0203CB20
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394B8
+ add r5, #0x80
+ add r4, r0, #0x0
+ ldr r0, [r5, #0x0]
+ ldr r0, [r0, #0x38]
+ bl FUN_020553C4
+ strh r0, [r4, #0x0]
+ mov r0, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_0203CB48
+FUN_0203CB48: ; 0x0203CB48
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl ScriptReadHalfword
+ add r4, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r4, #0x0]
+ ldr r0, [r0, #0x38]
+ bl FUN_020553D4
+ mov r0, #0x1
+ pop {r4, pc}
+
+ thumb_func_start FUN_0203CB60
+FUN_0203CB60: ; 0x0203CB60
+ push {r3, lr}
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0x38]
+ bl FUN_021E5FE0
+ mov r0, #0x0
+ pop {r3, pc}
+
+ thumb_func_start FUN_0203CB70
+FUN_0203CB70: ; 0x0203CB70
+ push {r4-r6, lr}
+ add r4, r0, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0xc]
+ bl FUN_0202A9B0
+ add r5, r0, #0x0
+ add r0, r4, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394B8
+ add r6, r0, #0x0
+ add r0, r4, #0x0
+ bl ScriptReadHalfword
+ add r4, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r4, #0x0]
+ bl FUN_020394B8
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ mov r1, #0x2
+ bl FUN_0202A990
+ add r1, r6, #0x0
+ add r2, r4, #0x0
+ bl FUN_02245910
+ mov r0, #0x0
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_0203CBBC
+FUN_0203CBBC: ; 0x0203CBBC
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394B8
+ add r5, #0x80
+ add r4, r0, #0x0
+ ldr r0, [r5, #0x0]
+ ldr r0, [r0, #0xc]
+ bl FUN_020462AC
+ bl FUN_0205F388
+ strh r0, [r4, #0x0]
+ mov r0, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_0203CBE8
+FUN_0203CBE8: ; 0x0203CBE8
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ add r0, #0x80
+ ldr r4, [r0, #0x0]
+ mov r1, #0x8
+ add r0, r4, #0x0
+ bl FUN_02039438
+ add r0, r4, #0x0
+ mov r1, #0x10
+ bl FUN_02039438
+ add r6, r0, #0x0
+ add r0, r4, #0x0
+ mov r1, #0x6
+ bl FUN_02039438
+ add r0, r4, #0x0
+ mov r1, #0x3
+ bl FUN_02039438
+ add r7, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ str r0, [sp, #0x0]
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r1, r0, #0x0
+ ldr r0, [sp, #0x0]
+ ldr r2, [r6, #0x0]
+ mov r3, #0xb
+ bl FUN_0206AD4C
+ add r0, r4, #0x0
+ mov r1, #0x1
+ bl FUN_02039438
+ mov r1, #0xf
+ bl FUN_02019620
+ add r0, r4, #0x0
+ mov r1, #0x1
+ bl FUN_02039438
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0xc]
+ bl LoadPlayerDataAddress
+ add r2, r0, #0x0
+ ldr r1, [r6, #0x0]
+ add r0, r4, #0x0
+ mov r3, #0x1
+ bl FUN_02054658
+ strb r0, [r7, #0x0]
+ ldr r1, _0203CC84 ; =FUN_0203A2F0
+ add r0, r5, #0x0
+ bl SetupNativeScript
+ mov r0, #0x1
+ pop {r3-r7, pc}
+ .balign 4
+_0203CC84: .word FUN_0203A2F0
+
+ thumb_func_start FUN_0203CC88
+FUN_0203CC88: ; 0x0203CC88
+ push {r3-r7, lr}
+ sub sp, #0x8
+ add r5, r0, #0x0
+ add r1, r5, #0x0
+ add r1, #0x80
+ ldr r4, [r1, #0x0]
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r7, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ str r0, [sp, #0x0]
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ str r0, [sp, #0x4]
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r6, r0, #0x0
+ ldr r2, [sp, #0x0]
+ ldr r3, [sp, #0x4]
+ add r0, r4, #0x0
+ add r1, r7, #0x0
+ bl FUN_02240790
+ ldr r1, _0203CCF4 ; =FUN_0203CCF8
+ add r0, r5, #0x0
+ str r6, [r5, #0x64]
+ bl SetupNativeScript
+ mov r0, #0x1
+ add sp, #0x8
+ pop {r3-r7, pc}
+ nop
+_0203CCF4: .word FUN_0203CCF8
+
+ thumb_func_start FUN_0203CCF8
+FUN_0203CCF8: ; 0x0203CCF8
+ push {r4, lr}
+ add r1, r0, #0x0
+ ldr r1, [r1, #0x64]
+ add r0, #0x80
+ lsl r1, r1, #0x10
+ ldr r0, [r0, #0x0]
+ lsr r1, r1, #0x10
+ bl FUN_020394B8
+ add r4, r0, #0x0
+ bl FUN_022407DC
+ cmp r0, #0x0
+ bne _0203CD18
+ mov r0, #0x0
+ pop {r4, pc}
+_0203CD18:
+ strh r0, [r4, #0x0]
+ mov r0, #0x1
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0203CD20
+FUN_0203CD20: ; 0x0203CD20
+ push {r3-r7, lr}
+ sub sp, #0x8
+ add r5, r0, #0x0
+ add r1, r5, #0x0
+ add r1, #0x80
+ ldr r4, [r1, #0x0]
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r7, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ str r0, [sp, #0x0]
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ str r0, [sp, #0x4]
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r6, r0, #0x0
+ ldr r2, [sp, #0x0]
+ ldr r3, [sp, #0x4]
+ add r0, r4, #0x0
+ add r1, r7, #0x0
+ bl FUN_022407F8
+ ldr r1, _0203CD8C ; =FUN_0203CD90
+ add r0, r5, #0x0
+ str r6, [r5, #0x64]
+ bl SetupNativeScript
+ mov r0, #0x1
+ add sp, #0x8
+ pop {r3-r7, pc}
+ nop
+_0203CD8C: .word FUN_0203CD90
+
+ thumb_func_start FUN_0203CD90
+FUN_0203CD90: ; 0x0203CD90
+ push {r4, lr}
+ add r1, r0, #0x0
+ ldr r1, [r1, #0x64]
+ add r0, #0x80
+ lsl r1, r1, #0x10
+ ldr r0, [r0, #0x0]
+ lsr r1, r1, #0x10
+ bl FUN_020394B8
+ add r4, r0, #0x0
+ bl FUN_02240844
+ cmp r0, #0x0
+ bne _0203CDB0
+ mov r0, #0x0
+ pop {r4, pc}
+_0203CDB0:
+ strh r0, [r4, #0x0]
+ mov r0, #0x1
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0203CDB8
+FUN_0203CDB8: ; 0x0203CDB8
+ push {r3, lr}
+ bl ScriptReadHalfword
+ mov r0, #0x1
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_0203CDC4
+FUN_0203CDC4: ; 0x0203CDC4
+ push {r3, lr}
+ bl ScriptReadHalfword
+ mov r0, #0x1
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_0203CDD0
+FUN_0203CDD0: ; 0x0203CDD0
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ mov r1, #0x13
+ bl FUN_02039438
+ add r6, r0, #0x0
+ add r5, #0x80
+ ldr r4, [r6, #0x0]
+ ldr r0, [r5, #0x0]
+ add r1, r4, #0x0
+ ldr r0, [r0, #0x10]
+ add r1, #0x2c
+ mov r2, #0x5
+ bl FUN_02047174
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ mov r0, #0x0
+ str r0, [r6, #0x0]
+ mov r0, #0x1
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_0203CE00
+FUN_0203CE00: ; 0x0203CE00
+ push {r3, lr}
+ ldr r0, [r0, #0x74]
+ bl FUN_02080C38
+ mov r0, #0x1
+ pop {r3, pc}
+
+ thumb_func_start FUN_0203CE0C
+FUN_0203CE0C: ; 0x0203CE0C
+ push {r3-r4, lr}
+ sub sp, #0x14
+ add r4, r0, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ str r0, [sp, #0x0]
+ add r0, r4, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ str r0, [sp, #0x4]
+ add r0, r4, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ str r0, [sp, #0x8]
+ add r0, r4, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ str r0, [sp, #0xc]
+ add r0, r4, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r4, #0x80
+ str r0, [sp, #0x10]
+ ldr r0, [r4, #0x0]
+ ldr r0, [r0, #0xc]
+ bl FUN_02034E30
+ add r1, sp, #0x0
+ bl FUN_02034DD4
+ mov r0, #0x0
+ add sp, #0x14
+ pop {r3-r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0203CE8C
+FUN_0203CE8C: ; 0x0203CE8C
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394B8
+ add r5, #0x80
+ add r4, r0, #0x0
+ ldr r0, [r5, #0x0]
+ ldr r0, [r0, #0xc]
+ bl FUN_02034E30
+ bl FUN_02034DD0
+ ldr r0, [r0, #0x0]
+ bl FUN_021E2608
+ strh r0, [r4, #0x0]
+ mov r0, #0x0
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_0203CEBC
+FUN_0203CEBC: ; 0x0203CEBC
+ push {r3-r7, lr}
+ sub sp, #0x8
+ add r5, r0, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ mov r1, #0xf
+ str r0, [sp, #0x4]
+ bl FUN_02039438
+ add r7, r0, #0x0
+ ldr r0, [r5, #0x8]
+ add r1, r0, #0x1
+ str r1, [r5, #0x8]
+ ldrb r6, [r0, #0x0]
+ add r0, r1, #0x1
+ str r0, [r5, #0x8]
+ add r0, r5, #0x0
+ ldrb r4, [r1, #0x0]
+ bl ScriptReadHalfword
+ add r5, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r5, #0x0]
+ bl FUN_020394B8
+ add r3, r0, #0x0
+ ldr r0, [r7, #0x0]
+ add r1, r6, #0x0
+ str r0, [sp, #0x0]
+ ldr r0, [sp, #0x4]
+ add r2, r4, #0x0
+ bl FUN_021E2464
+ mov r0, #0x0
+ add sp, #0x8
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_0203CF04
+FUN_0203CF04: ; 0x0203CF04
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0xc]
+ bl FUN_02024DA0
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r5, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r5, #0x0]
+ bl FUN_020394B8
+ add r5, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_020244A4
+ strh r0, [r5, #0x0]
+ mov r0, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_0203CF34
+FUN_0203CF34: ; 0x0203CF34
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0xc]
+ bl FUN_02024DA0
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r5, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r5, #0x0]
+ bl FUN_020394B8
+ add r5, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_0202445C
+ strh r0, [r5, #0x0]
+ mov r0, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_0203CF64
+FUN_0203CF64: ; 0x0203CF64
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0xc]
+ bl FUN_02024DA0
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r5, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r5, #0x0]
+ bl FUN_020394B8
+ add r5, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_02024404
+ strh r0, [r5, #0x0]
+ mov r0, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_0203CF94
+FUN_0203CF94: ; 0x0203CF94
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0xc]
+ bl FUN_02024DA0
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r5, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r5, #0x0]
+ bl FUN_020394B8
+ add r5, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_020243C8
+ strh r0, [r5, #0x0]
+ mov r0, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_0203CFC4
+FUN_0203CFC4: ; 0x0203CFC4
+ mov r0, #0x0
+ bx lr
+
+ thumb_func_start FUN_0203CFC8
+FUN_0203CFC8: ; 0x0203CFC8
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0xc]
+ bl FUN_02024DA0
+ add r7, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0xc]
+ bl FUN_020238F4
+ ldr r1, [r5, #0x8]
+ str r0, [sp, #0x0]
+ add r0, r1, #0x1
+ str r0, [r5, #0x8]
+ add r0, r5, #0x0
+ ldrb r6, [r1, #0x0]
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394B8
+ add r4, r0, #0x0
+ cmp r6, #0x0
+ bne _0203D02E
+ add r0, r7, #0x0
+ bl FUN_02024550
+ add r5, #0x80
+ add r6, r0, #0x0
+ ldr r0, [r5, #0x0]
+ ldr r0, [r0, #0xc]
+ bl FUN_020462AC
+ mov r1, #0x2
+ mov r2, #0xa
+ bl FUN_0205F2E4
+ add r1, r0, #0x0
+ lsl r1, r1, #0x10
+ add r0, r6, #0x0
+ lsr r1, r1, #0x10
+ bl FUN_02054CC8
+ b _0203D048
+_0203D02E:
+ add r0, r7, #0x0
+ bl FUN_02024518
+ add r5, r0, #0x0
+ ldr r0, [sp, #0x0]
+ bl FUN_020239CC
+ add r1, r0, #0x0
+ lsl r1, r1, #0x10
+ add r0, r5, #0x0
+ lsr r1, r1, #0x10
+ bl FUN_02054D1C
+_0203D048:
+ strh r0, [r4, #0x0]
+ mov r0, #0x0
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_0203D050
+FUN_0203D050: ; 0x0203D050
+ push {r3-r6, lr}
+ sub sp, #0x4
+ add r5, r0, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ mov r1, #0x17
+ bl FUN_02039438
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r6, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r2, r0, #0x0
+ mov r0, #0x0
+ str r0, [sp, #0x0]
+ lsl r2, r2, #0x18
+ ldr r0, [r5, #0x74]
+ add r1, r6, #0x0
+ lsr r2, r2, #0x18
+ add r3, r4, #0x0
+ bl FUN_02046E18
+ mov r0, #0x1
+ add sp, #0x4
+ pop {r3-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_0203D0A4
+FUN_0203D0A4: ; 0x0203D0A4
+ push {r3-r6, lr}
+ sub sp, #0x4
+ add r5, r0, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ mov r1, #0x17
+ bl FUN_02039438
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r6, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r2, r0, #0x0
+ mov r0, #0x1
+ str r0, [sp, #0x0]
+ lsl r2, r2, #0x18
+ ldr r0, [r5, #0x74]
+ add r1, r6, #0x0
+ lsr r2, r2, #0x18
+ add r3, r4, #0x0
+ bl FUN_02046E18
+ mov r0, #0x1
+ add sp, #0x4
+ pop {r3-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_0203D0F8
+FUN_0203D0F8: ; 0x0203D0F8
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r2, r0, #0x0
+ lsl r2, r2, #0x18
+ ldr r0, [r5, #0x74]
+ add r1, r4, #0x0
+ lsr r2, r2, #0x18
+ bl FUN_02046FA0
+ mov r0, #0x1
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_0203D134
+FUN_0203D134: ; 0x0203D134
+ push {r3, lr}
+ ldr r0, [r0, #0x74]
+ bl FUN_020470AC
+ mov r0, #0x1
+ pop {r3, pc}
+
+ thumb_func_start FUN_0203D140
+FUN_0203D140: ; 0x0203D140
+ push {r3, lr}
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_021F4DC8
+ mov r0, #0x0
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_0203D150
+FUN_0203D150: ; 0x0203D150
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r1, r5, #0x0
+ add r1, #0x80
+ ldr r4, [r1, #0x0]
+ bl ScriptReadHalfword
+ add r5, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r5, #0x0]
+ bl FUN_020394B8
+ add r5, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_021F4D80
+ strh r0, [r5, #0x0]
+ mov r0, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_0203D178
+FUN_0203D178: ; 0x0203D178
+ push {r4, lr}
+ add r4, r0, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ mov r1, #0x17
+ bl FUN_02039438
+ add r1, r0, #0x0
+ ldr r0, [r4, #0x74]
+ bl FUN_02046DB4
+ mov r0, #0x1
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0203D194
+FUN_0203D194: ; 0x0203D194
+ push {r3, lr}
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_021F4E7C
+ mov r0, #0x0
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_0203D1A4
+FUN_0203D1A4: ; 0x0203D1A4
+ push {r4, lr}
+ add r4, r0, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020386B4
+ ldr r1, _0203D1BC ; =FUN_0203BC04
+ add r0, r4, #0x0
+ bl SetupNativeScript
+ mov r0, #0x1
+ pop {r4, pc}
+ .balign 4
+_0203D1BC: .word FUN_0203BC04
+
+ thumb_func_start FUN_0203D1C0
+FUN_0203D1C0: ; 0x0203D1C0
+ push {r3-r5, lr}
+ add r4, r0, #0x0
+ add r1, r4, #0x0
+ add r1, #0x80
+ ldr r1, [r1, #0x0]
+ ldr r5, [r1, #0xc]
+ bl ScriptReadHalfword
+ add r4, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r4, #0x0]
+ bl FUN_020394B8
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_0202280C
+ cmp r0, #0x0
+ beq _0203D1EC
+ mov r0, #0x0
+ strh r0, [r4, #0x0]
+ b _0203D210
+_0203D1EC:
+ add r0, r5, #0x0
+ bl FUN_02022804
+ cmp r0, #0x0
+ bne _0203D1FC
+ mov r0, #0x1
+ strh r0, [r4, #0x0]
+ b _0203D210
+_0203D1FC:
+ add r0, r5, #0x0
+ bl FUN_0202282C
+ cmp r0, #0x0
+ beq _0203D20C
+ mov r0, #0x2
+ strh r0, [r4, #0x0]
+ b _0203D210
+_0203D20C:
+ mov r0, #0x3
+ strh r0, [r4, #0x0]
+_0203D210:
+ mov r0, #0x0
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_0203D214
+FUN_0203D214: ; 0x0203D214
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r1, r5, #0x0
+ add r1, #0x80
+ ldr r4, [r1, #0x0]
+ bl ScriptReadHalfword
+ add r5, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r5, #0x0]
+ bl FUN_020394B8
+ add r5, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_021E85FC
+ strh r0, [r5, #0x0]
+ mov r0, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_0203D23C
+FUN_0203D23C: ; 0x0203D23C
+ push {r3, lr}
+ ldr r0, [r0, #0x74]
+ bl FUN_021E3424
+ mov r0, #0x1
+ pop {r3, pc}
+
+ thumb_func_start FUN_0203D248
+FUN_0203D248: ; 0x0203D248
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0xc]
+ bl FUN_0204C1A8
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r5, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r5, #0x0]
+ bl FUN_020394B8
+ add r5, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_0204BEC8
+ strh r0, [r5, #0x0]
+ mov r0, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_0203D278
+FUN_0203D278: ; 0x0203D278
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r1, r5, #0x0
+ add r1, #0x80
+ ldr r4, [r1, #0x0]
+ bl ScriptReadHalfword
+ add r5, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r5, #0x0]
+ bl FUN_020394F0
+ add r5, r0, #0x0
+ ldr r0, [r4, #0xc]
+ bl FUN_0204C1A8
+ add r1, r5, #0x0
+ bl FUN_0204BED8
+ mov r0, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_0203D2A4
+FUN_0203D2A4: ; 0x0203D2A4
+ push {r4-r6, lr}
+ add r4, r0, #0x0
+ add r1, r4, #0x0
+ add r1, #0x80
+ ldr r5, [r1, #0x0]
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r6, r0, #0x0
+ add r0, r4, #0x0
+ bl ScriptReadHalfword
+ add r4, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r4, #0x0]
+ bl FUN_020394B8
+ add r4, r0, #0x0
+ ldr r0, [r5, #0xc]
+ bl FUN_0204C1A8
+ add r1, r6, #0x0
+ bl FUN_0204BED0
+ strh r0, [r4, #0x0]
+ mov r0, #0x0
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_0203D2E4
+FUN_0203D2E4: ; 0x0203D2E4
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ str r0, [r4, #0x64]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_02031588
+ ldr r1, _0203D310 ; =FUN_0203D314
+ add r0, r4, #0x0
+ bl SetupNativeScript
+ mov r0, #0x1
+ pop {r4, pc}
+ nop
+_0203D310: .word FUN_0203D314
+
+ thumb_func_start FUN_0203D314
+FUN_0203D314: ; 0x0203D314
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl FUN_02030F20
+ cmp r0, #0x2
+ bge _0203D324
+ mov r0, #0x1
+ pop {r4, pc}
+_0203D324:
+ ldr r0, [r4, #0x64]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_020315D8
+ pop {r4, pc}
+
+ thumb_func_start FUN_0203D330
+FUN_0203D330: ; 0x0203D330
+ push {r3, lr}
+ bl FUN_0203168C
+ mov r0, #0x0
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_0203D33C
+FUN_0203D33C: ; 0x0203D33C
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ mov r1, #0xf
+ bl FUN_02039438
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r5, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r5, #0x0]
+ bl FUN_020394B8
+ add r5, r0, #0x0
+ ldr r0, [r4, #0x0]
+ bl FUN_0205296C
+ strh r0, [r5, #0x0]
+ mov r0, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_0203D36C
+FUN_0203D36C: ; 0x0203D36C
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394B8
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ mov r1, #0xf
+ bl FUN_02039438
+ add r1, r0, #0x0
+ add r5, #0x80
+ ldr r0, [r5, #0x0]
+ ldr r1, [r1, #0x0]
+ ldr r0, [r0, #0x78]
+ bl FUN_02052C0C
+ strh r0, [r4, #0x0]
+ mov r0, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_0203D3A4
+FUN_0203D3A4: ; 0x0203D3A4
+ push {r4, lr}
+ bl ScriptReadHalfword
+ add r4, r0, #0x0
+ cmp r4, #0x5
+ beq _0203D3BC
+ cmp r4, #0x7
+ beq _0203D3BC
+ cmp r4, #0x9
+ beq _0203D3BC
+ cmp r4, #0x6
+ bne _0203D3C2
+_0203D3BC:
+ bl FUN_02031C54
+ b _0203D3CA
+_0203D3C2:
+ cmp r4, #0xb
+ bne _0203D3CA
+ bl FUN_02031C64
+_0203D3CA:
+ bl FUN_02031190
+ cmp r0, #0x0
+ bne _0203D3D8
+ add r0, r4, #0x0
+ bl FUN_02052B74
+_0203D3D8:
+ mov r0, #0x0
+ pop {r4, pc}
+
+ thumb_func_start FUN_0203D3DC
+FUN_0203D3DC: ; 0x0203D3DC
+ push {r3-r7, lr}
+ sub sp, #0x8
+ add r5, r0, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ mov r1, #0xa
+ bl FUN_02039438
+ add r7, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ mov r1, #0xf
+ bl FUN_02039438
+ add r6, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020377AC
+ bl FUN_020238F4
+ add r5, #0x80
+ str r0, [sp, #0x4]
+ ldr r0, [r5, #0x0]
+ bl FUN_020377AC
+ bl FUN_02013B5C
+ add r5, r0, #0x0
+ cmp r4, #0x0
+ bne _0203D432
+ ldr r0, [r7, #0x0]
+ bl FUN_02058448
+ lsl r0, r0, #0x10
+ lsr r2, r0, #0x10
+ b _0203D434
+_0203D432:
+ mov r2, #0x0
+_0203D434:
+ str r5, [sp, #0x0]
+ ldr r0, [r6, #0x0]
+ ldr r3, [sp, #0x4]
+ add r1, r4, #0x0
+ bl FUN_02052D08
+ mov r0, #0x0
+ add sp, #0x8
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_0203D448
+FUN_0203D448: ; 0x0203D448
+ push {r3, lr}
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_0208881C
+ mov r0, #0x0
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_0203D458
+FUN_0203D458: ; 0x0203D458
+ push {r4, lr}
+ add r4, r0, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0x7c]
+ bl FUN_02052F74
+ bl FUN_02031B50
+ ldr r1, _0203D478 ; =FUN_0203D47C
+ add r0, r4, #0x0
+ bl SetupNativeScript
+ mov r0, #0x1
+ pop {r4, pc}
+ nop
+_0203D478: .word FUN_0203D47C
+
+ thumb_func_start FUN_0203D47C
+FUN_0203D47C: ; 0x0203D47C
+ push {r3, lr}
+ bl FUN_02030F20
+ cmp r0, #0x2
+ bge _0203D48A
+ mov r0, #0x1
+ pop {r3, pc}
+_0203D48A:
+ mov r0, #0x0
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_0203D490
+FUN_0203D490: ; 0x0203D490
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ mov r1, #0xa
+ bl FUN_02039438
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ str r0, [sp, #0x0]
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394B8
+ add r6, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ mov r1, #0xf
+ bl FUN_02039438
+ add r7, r0, #0x0
+ ldr r0, [r4, #0x0]
+ bl FUN_02058448
+ add r5, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r5, #0x0]
+ ldr r2, [sp, #0x0]
+ ldr r0, [r0, #0x78]
+ ldr r3, [r7, #0x0]
+ bl FUN_02052A10
+ strh r0, [r6, #0x0]
+ mov r0, #0x0
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_0203D4E8
+FUN_0203D4E8: ; 0x0203D4E8
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394B8
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0x78]
+ bl FUN_020527A8
+ strh r0, [r4, #0x0]
+ ldrh r0, [r4, #0x0]
+ cmp r0, #0x0
+ beq _0203D522
+ add r5, #0x80
+ ldr r0, [r5, #0x0]
+ mov r1, #0x13
+ bl FUN_02039438
+ ldr r0, [r0, #0x0]
+ bl FUN_02016A18
+_0203D522:
+ mov r0, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_0203D528
+FUN_0203D528: ; 0x0203D528
+ push {r4-r6, lr}
+ add r4, r0, #0x0
+ add r0, #0x80
+ ldr r5, [r0, #0x0]
+ mov r1, #0xa
+ add r0, r5, #0x0
+ bl FUN_02039438
+ add r6, r0, #0x0
+ add r0, r4, #0x0
+ bl ScriptReadHalfword
+ add r4, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r4, #0x0]
+ bl FUN_020394B8
+ add r4, r0, #0x0
+ ldr r0, [r6, #0x0]
+ bl FUN_02058448
+ add r1, r0, #0x0
+ ldr r0, [r5, #0x78]
+ bl FUN_020524CC
+ strh r0, [r4, #0x0]
+ mov r0, #0x0
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_0203D560
+FUN_0203D560: ; 0x0203D560
+ push {r3-r7, lr}
+ add r4, r0, #0x0
+ add r0, #0x80
+ ldr r5, [r0, #0x0]
+ mov r1, #0xa
+ add r0, r5, #0x0
+ bl FUN_02039438
+ add r6, r0, #0x0
+ add r0, r4, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r7, r0, #0x0
+ add r0, r4, #0x0
+ bl ScriptReadHalfword
+ add r4, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r4, #0x0]
+ bl FUN_020394B8
+ add r4, r0, #0x0
+ ldr r0, [r6, #0x0]
+ bl FUN_02058448
+ add r1, r0, #0x0
+ ldr r0, [r5, #0x78]
+ add r2, r7, #0x0
+ bl FUN_02052544
+ strh r0, [r4, #0x0]
+ mov r0, #0x0
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_0203D5B0
+FUN_0203D5B0: ; 0x0203D5B0
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl ScriptReadHalfword
+ str r0, [r4, #0x64]
+ ldr r1, _0203D5C8 ; =FUN_0203D5CC
+ add r0, r4, #0x0
+ bl SetupNativeScript
+ mov r0, #0x1
+ pop {r4, pc}
+ nop
+_0203D5C8: .word FUN_0203D5CC
+
+ thumb_func_start FUN_0203D5CC
+FUN_0203D5CC: ; 0x0203D5CC
+ push {r4-r6, lr}
+ add r6, r0, #0x0
+ add r0, #0x80
+ ldr r5, [r0, #0x0]
+ ldr r0, [r5, #0x78]
+ bl FUN_02052604
+ ldr r1, [r6, #0x64]
+ add r4, r0, #0x0
+ lsl r1, r1, #0x10
+ add r0, r5, #0x0
+ lsr r1, r1, #0x10
+ bl FUN_020394B8
+ cmp r4, #0x0
+ bne _0203D5F0
+ mov r0, #0x0
+ pop {r4-r6, pc}
+_0203D5F0:
+ strh r4, [r0, #0x0]
+ mov r0, #0x1
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_0203D5F8
+FUN_0203D5F8: ; 0x0203D5F8
+ push {r3, lr}
+ add r0, #0x80
+ ldr r1, [r0, #0x0]
+ ldr r0, [r1, #0x34]
+ ldr r1, [r1, #0x7c]
+ bl FUN_020534DC
+ mov r0, #0x0
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_0203D60C
+FUN_0203D60C: ; 0x0203D60C
+ push {r3, lr}
+ mov r0, #0x4
+ bl FUN_02052B74
+ bl FUN_02031C2C
+ mov r0, #0x0
+ pop {r3, pc}
+
+ thumb_func_start FUN_0203D61C
+FUN_0203D61C: ; 0x0203D61C
+ push {r3, lr}
+ bl FUN_02031C64
+ bl FUN_02031B50
+ mov r0, #0x0
+ bl FUN_02052B74
+ mov r0, #0x0
+ pop {r3, pc}
+
+ thumb_func_start FUN_0203D630
+FUN_0203D630: ; 0x0203D630
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ add r1, r5, #0x0
+ add r1, #0x80
+ ldr r4, [r1, #0x0]
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r6, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r5, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r5, #0x0]
+ bl FUN_020394F0
+ add r2, r0, #0x0
+ ldr r0, [r4, #0x78]
+ add r1, r6, #0x0
+ bl FUN_0205265C
+ mov r0, #0x0
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_0203D66C
+FUN_0203D66C: ; 0x0203D66C
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl ScriptReadHalfword
+ str r0, [r4, #0x64]
+ ldr r1, _0203D684 ; =FUN_0203D688
+ add r0, r4, #0x0
+ bl SetupNativeScript
+ mov r0, #0x1
+ pop {r4, pc}
+ nop
+_0203D684: .word FUN_0203D688
+
+ thumb_func_start FUN_0203D688
+FUN_0203D688: ; 0x0203D688
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ ldr r1, [r5, #0x64]
+ add r0, #0x80
+ lsl r1, r1, #0x10
+ ldr r0, [r0, #0x0]
+ lsr r1, r1, #0x10
+ bl FUN_020394B8
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0x78]
+ bl FUN_02052608
+ cmp r0, #0x1
+ blo _0203D6BC
+ add r5, #0x80
+ strh r0, [r4, #0x0]
+ ldr r0, [r5, #0x0]
+ ldr r0, [r0, #0x78]
+ bl FUN_02052E10
+ mov r0, #0x1
+ pop {r3-r5, pc}
+_0203D6BC:
+ mov r0, #0x0
+ strh r0, [r4, #0x0]
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_0203D6C4
+FUN_0203D6C4: ; 0x0203D6C4
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl ScriptReadHalfword
+ str r0, [r4, #0x64]
+ ldr r1, _0203D6DC ; =FUN_0203D6E0
+ add r0, r4, #0x0
+ bl SetupNativeScript
+ mov r0, #0x1
+ pop {r4, pc}
+ nop
+_0203D6DC: .word FUN_0203D6E0
+
+ thumb_func_start FUN_0203D6E0
+FUN_0203D6E0: ; 0x0203D6E0
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ ldr r1, [r5, #0x64]
+ add r0, #0x80
+ lsl r1, r1, #0x10
+ ldr r0, [r0, #0x0]
+ lsr r1, r1, #0x10
+ bl FUN_020394B8
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0x78]
+ bl FUN_02052648
+ ldr r1, _0203D724 ; =0x021C48B8
+ ldr r2, [r1, #0x48]
+ mov r1, #0x2
+ tst r1, r2
+ beq _0203D716
+ add r5, #0x80
+ ldr r0, [r5, #0x0]
+ mov r1, #0x8
+ ldr r0, [r0, #0x78]
+ bl FUN_02052718
+_0203D716:
+ cmp r0, #0x0
+ beq _0203D720
+ strh r0, [r4, #0x0]
+ mov r0, #0x1
+ pop {r3-r5, pc}
+_0203D720:
+ mov r0, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+_0203D724: .word 0x021C48B8
+
+ thumb_func_start FUN_0203D728
+FUN_0203D728: ; 0x0203D728
+ push {r3, lr}
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0x10]
+ bl FUN_02049EA4
+ mov r0, #0x1
+ pop {r3, pc}
+
+ thumb_func_start FUN_0203D738
+FUN_0203D738: ; 0x0203D738
+ push {r4-r6, lr}
+ add r4, r0, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020377AC
+ bl FUN_020238F4
+ add r4, #0x80
+ add r5, r0, #0x0
+ ldr r0, [r4, #0x0]
+ mov r1, #0xf
+ bl FUN_02039438
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_020239BC
+ add r6, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_020239CC
+ add r1, r0, #0x0
+ ldr r2, [r4, #0x0]
+ add r0, r6, #0x0
+ bl FUN_0205363C
+ mov r0, #0x0
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_0203D774
+FUN_0203D774: ; 0x0203D774
+ push {r3-r7, lr}
+ add r4, r0, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020377AC
+ bl FUN_020238F4
+ add r5, r0, #0x0
+ add r0, r4, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r7, r0, #0x0
+ add r0, r4, #0x0
+ bl ScriptReadHalfword
+ add r4, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r4, #0x0]
+ bl FUN_020394B8
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_020239BC
+ add r6, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_020239CC
+ add r1, r0, #0x0
+ add r0, r6, #0x0
+ add r2, r7, #0x0
+ bl FUN_02053678
+ strh r0, [r4, #0x0]
+ add r0, r5, #0x0
+ bl FUN_020239CC
+ ldrh r1, [r4, #0x0]
+ mov r2, #0x2
+ bl FUN_020536D0
+ strh r0, [r4, #0x0]
+ mov r0, #0x0
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_0203D7DC
+FUN_0203D7DC: ; 0x0203D7DC
+ push {r3-r7, lr}
+ add r4, r0, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020377AC
+ bl FUN_020238F4
+ add r5, r0, #0x0
+ add r0, r4, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r7, r0, #0x0
+ add r0, r4, #0x0
+ bl ScriptReadHalfword
+ add r4, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r4, #0x0]
+ bl FUN_020394B8
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_020239BC
+ add r6, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_020239CC
+ add r1, r0, #0x0
+ add r0, r6, #0x0
+ add r2, r7, #0x0
+ bl FUN_02053678
+ strh r0, [r4, #0x0]
+ mov r0, #0x0
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_0203D834
+FUN_0203D834: ; 0x0203D834
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020377AC
+ bl FUN_020238F4
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r5, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r5, #0x0]
+ bl FUN_020394F0
+ add r1, r0, #0x0
+ lsl r1, r1, #0x18
+ add r0, r4, #0x0
+ lsr r1, r1, #0x18
+ bl FUN_02023A2C
+ mov r0, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_0203D868
+FUN_0203D868: ; 0x0203D868
+ push {r3, lr}
+ ldr r0, [r0, #0x74]
+ bl FUN_02048498
+ mov r0, #0x1
+ pop {r3, pc}
+
+ thumb_func_start FUN_0203D874
+FUN_0203D874: ; 0x0203D874
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r5, #0x80
+ add r4, r0, #0x0
+ ldr r0, [r5, #0x0]
+ ldr r0, [r0, #0xc]
+ bl FUN_02034E30
+ add r1, r4, #0x0
+ bl FUN_02034E04
+ mov r0, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_0203D8A0
+FUN_0203D8A0: ; 0x0203D8A0
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020377AC
+ bl FUN_020238F4
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r5, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r5, #0x0]
+ bl FUN_020394B8
+ add r5, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_020239CC
+ strh r0, [r5, #0x0]
+ mov r0, #0x0
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_0203D8D0
+FUN_0203D8D0: ; 0x0203D8D0
+ push {r3, lr}
+ ldr r0, [r0, #0x74]
+ bl FUN_02046528
+ ldr r0, [r0, #0xc]
+ bl FUN_0206BB1C
+ bl FUN_02085140
+ mov r0, #0x0
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_0203D8E8
+FUN_0203D8E8: ; 0x0203D8E8
+ mov r0, #0x0
+ bx lr
+
+ thumb_func_start FUN_0203D8EC
+FUN_0203D8EC: ; 0x0203D8EC
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl FUN_02050024
+ ldr r1, _0203D900 ; =FUN_0203D904
+ add r0, r4, #0x0
+ bl SetupNativeScript
+ mov r0, #0x1
+ pop {r4, pc}
+ .balign 4
+_0203D900: .word FUN_0203D904
+
+ thumb_func_start FUN_0203D904
+FUN_0203D904: ; 0x0203D904
+ push {r3, lr}
+ bl FUN_02031810
+ cmp r0, #0x1
+ beq _0203D91A
+ bl FUN_0202EDF8
+ cmp r0, #0x1
+ beq _0203D91A
+ mov r0, #0x1
+ pop {r3, pc}
+_0203D91A:
+ mov r0, #0x0
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_0203D920
+FUN_0203D920: ; 0x0203D920
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl FUN_02050048
+ ldr r1, _0203D934 ; =FUN_0203D904
+ add r0, r4, #0x0
+ bl SetupNativeScript
+ mov r0, #0x1
+ pop {r4, pc}
+ .balign 4
+_0203D934: .word FUN_0203D904
+
+ thumb_func_start FUN_0203D938
+FUN_0203D938: ; 0x0203D938
+ push {r3, lr}
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_0204FF5C
+ mov r0, #0x0
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_0203D948
+FUN_0203D948: ; 0x0203D948
+ push {r3, lr}
+ bl ScriptReadHalfword
+ bl FUN_0204F6DC
+ mov r0, #0x0
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_0203D958
+FUN_0203D958: ; 0x0203D958
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r6, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394B8
+ add r5, #0x80
+ add r4, r0, #0x0
+ ldr r0, [r5, #0x0]
+ ldr r0, [r0, #0xc]
+ bl FUN_0206F158
+ add r1, r6, #0x0
+ bl FUN_0206EE64
+ strh r0, [r4, #0x0]
+ mov r0, #0x0
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_0203D998
+FUN_0203D998: ; 0x0203D998
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r6, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r5, #0x80
+ add r3, r0, #0x0
+ ldr r0, [r5, #0x0]
+ add r1, r4, #0x0
+ add r2, r6, #0x0
+ bl FUN_02034B74
+ mov r0, #0x0
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_0203D9E8
+FUN_0203D9E8: ; 0x0203D9E8
+ push {r4-r7, lr}
+ sub sp, #0xc
+ add r5, r0, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r6, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r7, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ str r0, [sp, #0x4]
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ str r0, [sp, #0x8]
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r5, #0x80
+ add r4, r0, #0x0
+ ldr r0, [r5, #0x0]
+ add r1, r6, #0x0
+ ldr r0, [r0, #0x34]
+ bl FUN_02058060
+ ldr r2, [sp, #0x4]
+ ldr r3, [sp, #0x8]
+ add r5, r0, #0x0
+ add r1, r7, #0x0
+ str r4, [sp, #0x0]
+ bl FUN_02058E28
+ add r0, r5, #0x0
+ bl FUN_02059D1C
+ mov r0, #0x0
+ add sp, #0xc
+ pop {r4-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_0203DA78
+FUN_0203DA78: ; 0x0203DA78
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r5, #0x80
+ add r2, r0, #0x0
+ ldr r0, [r5, #0x0]
+ add r1, r4, #0x0
+ bl FUN_02034BDC
+ mov r0, #0x0
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_0203DAB0
+FUN_0203DAB0: ; 0x0203DAB0
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r5, #0x80
+ add r2, r0, #0x0
+ ldr r0, [r5, #0x0]
+ add r1, r4, #0x0
+ bl FUN_02034BAC
+ mov r0, #0x0
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_0203DAE8
+FUN_0203DAE8: ; 0x0203DAE8
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r6, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r5, #0x80
+ add r3, r0, #0x0
+ ldr r0, [r5, #0x0]
+ add r1, r4, #0x0
+ add r2, r6, #0x0
+ bl FUN_02034C0C
+ mov r0, #0x0
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_0203DB38
+FUN_0203DB38: ; 0x0203DB38
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r6, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r5, #0x80
+ add r3, r0, #0x0
+ ldr r0, [r5, #0x0]
+ add r1, r4, #0x0
+ add r2, r6, #0x0
+ bl FUN_02034C34
+ mov r0, #0x0
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_0203DB88
+FUN_0203DB88: ; 0x0203DB88
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r6, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r5, #0x80
+ add r4, r0, #0x0
+ ldr r0, [r5, #0x0]
+ add r1, r6, #0x0
+ ldr r0, [r0, #0x34]
+ bl FUN_02058060
+ add r5, r0, #0x0
+ bne _0203DBC6
+ bl ErrorHandling
+_0203DBC6:
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_021F1EC0
+ mov r0, #0x0
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_0203DBD4
+FUN_0203DBD4: ; 0x0203DBD4
+ push {r3-r5, lr}
+ add r4, r0, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ mov r1, #0xc
+ bl FUN_02039438
+ add r5, r0, #0x0
+ add r0, r4, #0x0
+ bl ScriptReadHalfword
+ add r4, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r4, #0x0]
+ bl FUN_020394F0
+ ldr r1, [r5, #0x0]
+ cmp r1, #0x0
+ beq _0203DBFC
+ strh r0, [r1, #0x0]
+_0203DBFC:
+ mov r0, #0x0
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_0203DC00
+FUN_0203DC00: ; 0x0203DC00
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ bl ScriptReadHalfword
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r6, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r7, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ lsl r1, r4, #0x5
+ ldr r3, [r5, #0x8]
+ add r2, r0, #0x0
+ add r0, r3, #0x1
+ str r0, [r5, #0x8]
+ add r5, #0x80
+ lsl r4, r6, #0x5
+ ldrb r3, [r3, #0x0]
+ ldr r0, [r5, #0x0]
+ add r1, r7, r1
+ add r2, r2, r4
+ bl FUN_021DAE40
+ mov r0, #0x0
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_0203DC58
+FUN_0203DC58: ; 0x0203DC58
+ push {r3, lr}
+ ldr r2, [r0, #0x8]
+ add r1, r2, #0x1
+ str r1, [r0, #0x8]
+ add r0, #0x80
+ ldrb r1, [r2, #0x0]
+ ldr r0, [r0, #0x0]
+ bl FUN_021DAF78
+ mov r0, #0x1
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_0203DC70
+FUN_0203DC70: ; 0x0203DC70
+ push {r3, lr}
+ ldr r2, [r0, #0x8]
+ add r1, r2, #0x1
+ str r1, [r0, #0x8]
+ add r0, #0x80
+ ldrb r1, [r2, #0x0]
+ ldr r0, [r0, #0x0]
+ bl FUN_021DAF98
+ mov r0, #0x0
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_0203DC88
+FUN_0203DC88: ; 0x0203DC88
+ push {r3, lr}
+ ldr r2, [r0, #0x8]
+ add r1, r2, #0x1
+ str r1, [r0, #0x8]
+ add r0, #0x80
+ ldrb r1, [r2, #0x0]
+ ldr r0, [r0, #0x0]
+ bl FUN_021DAED4
+ mov r0, #0x0
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_0203DCA0
+FUN_0203DCA0: ; 0x0203DCA0
+ push {r3, lr}
+ ldr r2, [r0, #0x8]
+ add r1, r2, #0x1
+ str r1, [r0, #0x8]
+ add r0, #0x80
+ ldrb r1, [r2, #0x0]
+ ldr r0, [r0, #0x0]
+ bl FUN_021DAF28
+ mov r0, #0x0
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_0203DCB8
+FUN_0203DCB8: ; 0x0203DCB8
+ push {r3, lr}
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_02064CA8
+ mov r0, #0x0
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_0203DCC8
+FUN_0203DCC8: ; 0x0203DCC8
+ push {r3, lr}
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_02241230
+ mov r0, #0x1
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_0203DCD8
+FUN_0203DCD8: ; 0x0203DCD8
+ push {r3, lr}
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_02064CC8
+ mov r0, #0x0
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_0203DCE8
+FUN_0203DCE8: ; 0x0203DCE8
+ push {r3, lr}
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_02241914
+ mov r0, #0x1
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_0203DCF8
+FUN_0203DCF8: ; 0x0203DCF8
+ push {r3, lr}
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_02064D10
+ mov r0, #0x0
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_0203DD08
+FUN_0203DD08: ; 0x0203DD08
+ push {r3, lr}
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_02064D4C
+ mov r0, #0x0
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_0203DD18
+FUN_0203DD18: ; 0x0203DD18
+ push {r3, lr}
+ add r1, r0, #0x0
+ add r1, #0x80
+ ldr r2, [r0, #0x8]
+ ldr r3, [r1, #0x0]
+ add r1, r2, #0x1
+ str r1, [r0, #0x8]
+ ldrb r1, [r2, #0x0]
+ add r0, r3, #0x0
+ bl FUN_02064D88
+ mov r0, #0x0
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_0203DD34
+FUN_0203DD34: ; 0x0203DD34
+ push {r3, lr}
+ add r1, r0, #0x0
+ add r1, #0x80
+ ldr r2, [r0, #0x8]
+ ldr r3, [r1, #0x0]
+ add r1, r2, #0x1
+ str r1, [r0, #0x8]
+ ldrb r1, [r2, #0x0]
+ add r0, r3, #0x0
+ bl FUN_02242A38
+ mov r0, #0x1
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_0203DD50
+FUN_0203DD50: ; 0x0203DD50
+ push {r3, lr}
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020388B4
+ mov r0, #0x1
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_0203DD60
+FUN_0203DD60: ; 0x0203DD60
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ mov r1, #0x14
+ bl FUN_02039438
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ mov r1, #0xa
+ bl FUN_02039438
+ add r6, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r7, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ str r0, [r5, #0x64]
+ ldr r0, [r6, #0x0]
+ bl FUN_02058448
+ add r1, r5, #0x0
+ add r1, #0x80
+ add r2, r0, #0x0
+ ldr r1, [r1, #0x0]
+ add r0, r7, #0x0
+ bl FUN_0224CA54
+ str r0, [r4, #0x0]
+ ldr r1, _0203DDBC ; =FUN_0203DDC0
+ add r0, r5, #0x0
+ bl SetupNativeScript
+ mov r0, #0x1
+ pop {r3-r7, pc}
+ .balign 4
+_0203DDBC: .word FUN_0203DDC0
+
+ thumb_func_start FUN_0203DDC0
+FUN_0203DDC0: ; 0x0203DDC0
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ mov r1, #0x14
+ bl FUN_02039438
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ ldr r1, [r5, #0x64]
+ add r0, #0x80
+ lsl r1, r1, #0x10
+ ldr r0, [r0, #0x0]
+ lsr r1, r1, #0x10
+ bl FUN_020394B8
+ add r5, r0, #0x0
+ ldr r0, [r4, #0x0]
+ bl FUN_0224CA2C
+ strh r0, [r5, #0x0]
+ ldrh r1, [r5, #0x0]
+ ldr r0, _0203DDFC ; =0x0000FFFE
+ cmp r1, r0
+ beq _0203DDF6
+ mov r0, #0x1
+ pop {r3-r5, pc}
+_0203DDF6:
+ mov r0, #0x0
+ pop {r3-r5, pc}
+ nop
+_0203DDFC: .word 0x0000FFFE
+
+ thumb_func_start FUN_0203DE00
+FUN_0203DE00: ; 0x0203DE00
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ mov r1, #0x3
+ bl FUN_02039438
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ bl FUN_0224CA58
+ strb r0, [r4, #0x0]
+ ldr r1, _0203DE34 ; =FUN_0203DE38
+ add r0, r5, #0x0
+ bl SetupNativeScript
+ mov r0, #0x1
+ pop {r3-r5, pc}
+ .balign 4
+_0203DE34: .word FUN_0203DE38
+
+ thumb_func_start FUN_0203DE38
+FUN_0203DE38: ; 0x0203DE38
+ push {r3, lr}
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ mov r1, #0x3
+ bl FUN_02039438
+ ldrb r0, [r0, #0x0]
+ bl FUN_020546C8
+ pop {r3, pc}
+
+ thumb_func_start FUN_0203DE4C
+FUN_0203DE4C: ; 0x0203DE4C
+ push {r3, lr}
+ bl FUN_0224CA94
+ mov r0, #0x0
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_0203DE58
+FUN_0203DE58: ; 0x0203DE58
+ push {r3-r5, lr}
+ add r4, r0, #0x0
+ ldr r2, [r4, #0x8]
+ add r1, r2, #0x1
+ str r1, [r4, #0x8]
+ ldrb r5, [r2, #0x0]
+ bl ScriptReadHalfword
+ add r4, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r4, #0x0]
+ bl FUN_020394F0
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_0224CAA0
+ mov r0, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_0203DE80
+FUN_0203DE80: ; 0x0203DE80
+ push {r3-r5, lr}
+ add r4, r0, #0x0
+ ldr r2, [r4, #0x8]
+ add r1, r2, #0x1
+ str r1, [r4, #0x8]
+ ldrb r5, [r2, #0x0]
+ bl ScriptReadHalfword
+ add r4, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r4, #0x0]
+ bl FUN_020394F0
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_0224CAB4
+ mov r0, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_0203DEA8
+FUN_0203DEA8: ; 0x0203DEA8
+ push {r3, lr}
+ sub sp, #0x8
+ mov r3, #0x0
+ str r3, [sp, #0x0]
+ str r3, [sp, #0x4]
+ mov r1, #0x1
+ ldr r0, [r0, #0x74]
+ add r2, r1, #0x0
+ bl FUN_02242BE0
+ mov r0, #0x1
+ add sp, #0x8
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_0203DEC4
+FUN_0203DEC4: ; 0x0203DEC4
+ push {r3-r5, lr}
+ add r4, r0, #0x0
+ add r1, r4, #0x0
+ add r1, #0x80
+ ldr r5, [r1, #0x0]
+ bl ScriptReadHalfword
+ add r4, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r4, #0x0]
+ bl FUN_020394F0
+ add r1, r0, #0x0
+ ldr r0, [r5, #0x34]
+ bl FUN_02058060
+ add r4, r0, #0x0
+ bne _0203DEEC
+ bl ErrorHandling
+_0203DEEC:
+ add r0, r4, #0x0
+ mov r1, #0x0
+ bl FUN_0205889C
+ mov r0, #0x0
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_0203DEF8
+FUN_0203DEF8: ; 0x0203DEF8
+ push {r3-r5, lr}
+ add r4, r0, #0x0
+ add r1, r4, #0x0
+ add r1, #0x80
+ ldr r5, [r1, #0x0]
+ bl ScriptReadHalfword
+ add r4, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r4, #0x0]
+ bl FUN_020394F0
+ add r1, r0, #0x0
+ ldr r0, [r5, #0x34]
+ bl FUN_02058060
+ add r4, r0, #0x0
+ bne _0203DF20
+ bl ErrorHandling
+_0203DF20:
+ add r0, r4, #0x0
+ mov r1, #0x1
+ bl FUN_0205889C
+ mov r0, #0x0
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_0203DF2C
+FUN_0203DF2C: ; 0x0203DF2C
+ push {r3, lr}
+ ldr r0, [r0, #0x74]
+ bl FUN_02066818
+ mov r0, #0x1
+ pop {r3, pc}
+
+ thumb_func_start FUN_0203DF38
+FUN_0203DF38: ; 0x0203DF38
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r1, r5, #0x0
+ add r1, #0x80
+ ldr r4, [r1, #0x0]
+ bl ScriptReadHalfword
+ add r5, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r5, #0x0]
+ bl FUN_020394B8
+ add r5, r0, #0x0
+ ldr r0, [r4, #0xc]
+ bl FUN_02025838
+ mov r1, #0x0
+ bl FUN_0202589C
+ strh r0, [r5, #0x0]
+ mov r0, #0x0
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_0203DF64
+FUN_0203DF64: ; 0x0203DF64
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r1, r0, #0x0
+ ldr r0, [r4, #0x74]
+ bl FUN_02063650
+ mov r0, #0x1
+ pop {r4, pc}
+
+ thumb_func_start FUN_0203DF84
+FUN_0203DF84: ; 0x0203DF84
+ push {r3-r5, lr}
+ add r4, r0, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394B8
+ add r4, #0x80
+ add r5, r0, #0x0
+ ldr r0, [r4, #0x0]
+ bl FUN_0204B2A4
+ strh r0, [r5, #0x0]
+ mov r0, #0x0
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_0203DFA8
+FUN_0203DFA8: ; 0x0203DFA8
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394B8
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r5, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r5, #0x0]
+ bl FUN_020394F0
+ add r5, r0, #0x0
+ bl FUN_0201B9EC
+ add r1, r5, #0x0
+ blx _s32_div_f
+ strh r1, [r4, #0x0]
+ mov r0, #0x1
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_0203DFE0
+FUN_0203DFE0: ; 0x0203DFE0
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394B8
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r5, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r5, #0x0]
+ bl FUN_020394F0
+ add r5, r0, #0x0
+ bl FUN_0201B9EC
+ add r1, r5, #0x0
+ blx _s32_div_f
+ strh r1, [r4, #0x0]
+ mov r0, #0x1
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_0203E018
+FUN_0203E018: ; 0x0203E018
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ add r1, r5, #0x0
+ add r1, #0x80
+ ldr r4, [r1, #0x0]
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394B8
+ add r6, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r5, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r5, #0x0]
+ bl FUN_020394F0
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_021F3A18
+ strh r0, [r6, #0x0]
+ mov r0, #0x0
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_0203E054
+FUN_0203E054: ; 0x0203E054
+ push {r3-r5, lr}
+ add r4, r0, #0x0
+ add r1, r4, #0x0
+ add r1, #0x80
+ ldr r5, [r1, #0x0]
+ bl ScriptReadHalfword
+ add r4, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r4, #0x0]
+ bl FUN_020394F0
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_021F3AB4
+ mov r0, #0x0
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_0203E078
+FUN_0203E078: ; 0x0203E078
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ add r1, r5, #0x0
+ add r1, #0x80
+ ldr r4, [r1, #0x0]
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r6, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r7, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r5, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r5, #0x0]
+ bl FUN_020394F0
+ lsl r1, r6, #0x18
+ lsl r2, r7, #0x18
+ add r3, r0, #0x0
+ add r0, r4, #0x0
+ lsr r1, r1, #0x18
+ lsr r2, r2, #0x18
+ bl FUN_021F3B7C
+ mov r0, #0x0
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_0203E0CC
+FUN_0203E0CC: ; 0x0203E0CC
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ add r1, r5, #0x0
+ add r1, #0x80
+ ldr r4, [r1, #0x0]
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r6, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r7, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r5, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r5, #0x0]
+ bl FUN_020394F0
+ lsl r1, r6, #0x18
+ lsl r2, r7, #0x18
+ add r3, r0, #0x0
+ add r0, r4, #0x0
+ lsr r1, r1, #0x18
+ lsr r2, r2, #0x18
+ bl FUN_021F3B4C
+ mov r0, #0x0
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_0203E120
+FUN_0203E120: ; 0x0203E120
+ push {r3, lr}
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0xc]
+ bl FUN_020462AC
+ mov r1, #0x82
+ lsl r1, r1, #0x8
+ bl FUN_0205F3F8
+ mov r0, #0x0
+ pop {r3, pc}
+
+ thumb_func_start FUN_0203E138
+FUN_0203E138: ; 0x0203E138
+ push {r4, lr}
+ add r0, #0x80
+ ldr r4, [r0, #0x0]
+ ldr r0, [r4, #0xc]
+ bl FUN_020462AC
+ mov r1, #0x1
+ bl FUN_0205F2D4
+ ldr r0, [r4, #0xc]
+ bl FUN_020289A4
+ mov r1, #0x1
+ bl FUN_020289B0
+ add r1, r4, #0x0
+ add r1, #0x98
+ str r0, [r1, #0x0]
+ add r0, r4, #0x0
+ bl FUN_02048C58
+ mov r0, #0x0
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0203E168
+FUN_0203E168: ; 0x0203E168
+ push {r3-r7, lr}
+ add r4, r0, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r7, r0, #0x0
+ add r0, r4, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ str r0, [sp, #0x0]
+ add r0, r4, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r0, r4, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r0, r4, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r0, r4, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ mov r1, #0x14
+ bl FUN_02039438
+ add r5, r0, #0x0
+ add r0, r7, #0x0
+ sub r0, #0x10
+ cmp r0, #0xa
+ bhi _0203E23A
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0203E1EA: ; jump table (using 16-bit offset)
+ .short _0203E200 - _0203E1EA - 2; case 0
+ .short _0203E20C - _0203E1EA - 2; case 1
+ .short _0203E218 - _0203E1EA - 2; case 2
+ .short _0203E226 - _0203E1EA - 2; case 3
+ .short _0203E23A - _0203E1EA - 2; case 4
+ .short _0203E226 - _0203E1EA - 2; case 5
+ .short _0203E226 - _0203E1EA - 2; case 6
+ .short _0203E226 - _0203E1EA - 2; case 7
+ .short _0203E226 - _0203E1EA - 2; case 8
+ .short _0203E226 - _0203E1EA - 2; case 9
+ .short _0203E226 - _0203E1EA - 2; case 10
+_0203E200:
+ mov r0, #0x4
+ mov r6, #0x1
+ bl FUN_02029120
+ str r0, [r5, #0x0]
+ b _0203E23E
+_0203E20C:
+ mov r0, #0x4
+ mov r6, #0x1
+ bl FUN_0202912C
+ str r0, [r5, #0x0]
+ b _0203E23E
+_0203E218:
+ ldr r0, [sp, #0x0]
+ mov r1, #0x4
+ mov r6, #0x1
+ bl FUN_02029138
+ str r0, [r5, #0x0]
+ b _0203E23E
+_0203E226:
+ sub r7, #0x13
+ lsl r0, r7, #0x18
+ ldr r1, [sp, #0x0]
+ lsr r0, r0, #0x18
+ mov r2, #0x4
+ mov r6, #0x1
+ bl FUN_0202914C
+ str r0, [r5, #0x0]
+ b _0203E23E
+_0203E23A:
+ mov r0, #0x1
+ pop {r3-r7, pc}
+_0203E23E:
+ add r4, #0x80
+ ldr r0, [r4, #0x0]
+ ldr r1, [r5, #0x0]
+ add r0, #0x98
+ ldr r0, [r0, #0x0]
+ add r2, r6, #0x0
+ bl FUN_02028AD4
+ mov r0, #0x1
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_0203E254
+FUN_0203E254: ; 0x0203E254
+ mov r0, #0x0
+ bx lr
+
+ thumb_func_start FUN_0203E258
+FUN_0203E258: ; 0x0203E258
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r5, #0x80
+ add r6, r0, #0x0
+ ldr r0, [r5, #0x0]
+ ldr r0, [r0, #0xc]
+ bl FUN_02027E24
+ bl FUN_0202708C
+ add r1, r4, #0x0
+ add r2, r6, #0x0
+ bl FUN_020271A4
+ mov r0, #0x0
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_0203E29C
+FUN_0203E29C: ; 0x0203E29C
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r6, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r7, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394B8
+ add r5, #0x80
+ add r4, r0, #0x0
+ ldr r0, [r5, #0x0]
+ ldr r0, [r0, #0xc]
+ bl FUN_02027E24
+ bl FUN_0202708C
+ add r1, r6, #0x0
+ add r2, r7, #0x0
+ bl FUN_020270D8
+ strh r0, [r4, #0x0]
+ mov r0, #0x0
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_0203E2F8
+FUN_0203E2F8: ; 0x0203E2F8
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r7, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r6, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394B8
+ add r5, #0x80
+ add r4, r0, #0x0
+ ldr r0, [r5, #0x0]
+ ldr r0, [r0, #0xc]
+ bl FUN_02027E24
+ bl FUN_0202708C
+ add r1, r7, #0x0
+ bl FUN_02027114
+ cmp r6, r0
+ bhi _0203E352
+ mov r0, #0x1
+ b _0203E354
+_0203E352:
+ mov r0, #0x0
+_0203E354:
+ strh r0, [r4, #0x0]
+ mov r0, #0x0
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_0203E35C
+FUN_0203E35C: ; 0x0203E35C
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r5, #0x80
+ add r4, r0, #0x0
+ ldr r0, [r5, #0x0]
+ ldr r0, [r0, #0xc]
+ bl FUN_02027E24
+ bl FUN_0202708C
+ add r1, r4, #0x0
+ bl FUN_02027264
+ mov r0, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_0203E38C
+FUN_0203E38C: ; 0x0203E38C
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r6, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394B8
+ add r5, #0x80
+ add r4, r0, #0x0
+ ldr r0, [r5, #0x0]
+ ldr r0, [r0, #0xc]
+ bl FUN_02027E24
+ bl FUN_0202708C
+ add r1, r6, #0x0
+ bl FUN_02027100
+ strh r0, [r4, #0x0]
+ mov r0, #0x0
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_0203E3D0
+FUN_0203E3D0: ; 0x0203E3D0
+ push {r3-r5, lr}
+ add r4, r0, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0xc]
+ bl FUN_02024DA0
+ add r5, r0, #0x0
+ add r0, r4, #0x0
+ bl ScriptReadHalfword
+ add r4, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r4, #0x0]
+ bl FUN_020394B8
+ add r4, r0, #0x0
+ mov r0, #0x0
+ strh r0, [r4, #0x0]
+ add r0, r5, #0x0
+ bl FUN_02024504
+ cmp r0, #0x1
+ bne _0203E404
+ mov r0, #0x1
+ strh r0, [r4, #0x0]
+_0203E404:
+ mov r0, #0x0
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_0203E408
+FUN_0203E408: ; 0x0203E408
+ push {r3-r5, lr}
+ add r4, r0, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0xc]
+ bl FUN_02024DA0
+ add r5, r0, #0x0
+ add r0, r4, #0x0
+ bl ScriptReadHalfword
+ add r4, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r4, #0x0]
+ bl FUN_020394B8
+ add r4, r0, #0x0
+ mov r0, #0x0
+ strh r0, [r4, #0x0]
+ add r0, r5, #0x0
+ bl FUN_020244EC
+ cmp r0, #0x1
+ bne _0203E43C
+ mov r0, #0x1
+ strh r0, [r4, #0x0]
+_0203E43C:
+ mov r0, #0x0
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_0203E440
+FUN_0203E440: ; 0x0203E440
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ mov r1, #0x13
+ bl FUN_02039438
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ mov r1, #0x20
+ mov r2, #0x0
+ bl FUN_02038AF4
+ str r0, [r4, #0x0]
+ ldr r1, _0203E46C ; =FUN_0203BB90
+ add r0, r5, #0x0
+ bl SetupNativeScript
+ mov r0, #0x1
+ pop {r3-r5, pc}
+ .balign 4
+_0203E46C: .word FUN_0203BB90
+
+ thumb_func_start FUN_0203E470
+FUN_0203E470: ; 0x0203E470
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ mov r1, #0x13
+ bl FUN_02039438
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ mov r1, #0x20
+ mov r2, #0x1
+ bl FUN_02038AF4
+ str r0, [r4, #0x0]
+ ldr r1, _0203E49C ; =FUN_0203BB90
+ add r0, r5, #0x0
+ bl SetupNativeScript
+ mov r0, #0x1
+ pop {r3-r5, pc}
+ .balign 4
+_0203E49C: .word FUN_0203BB90
+
+ thumb_func_start FUN_0203E4A0
+FUN_0203E4A0: ; 0x0203E4A0
+ push {r3, lr}
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0xc]
+ bl FUN_0224CBB0
+ mov r0, #0x0
+ pop {r3, pc}
+
+ thumb_func_start FUN_0203E4B0
+FUN_0203E4B0: ; 0x0203E4B0
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394B8
+ add r5, #0x80
+ add r4, r0, #0x0
+ ldr r0, [r5, #0x0]
+ ldr r0, [r0, #0xc]
+ bl FUN_0224CC24
+ strh r0, [r4, #0x0]
+ mov r0, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_0203E4D8
+FUN_0203E4D8: ; 0x0203E4D8
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl ScriptReadHalfword
+ add r4, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r4, #0x0]
+ bl FUN_020394B8
+ mov r0, #0x0
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0203E4F0
+FUN_0203E4F0: ; 0x0203E4F0
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ bl ScriptReadHalfword
+ add r5, #0x80
+ add r4, r0, #0x0
+ ldr r0, [r5, #0x0]
+ ldr r0, [r0, #0xc]
+ bl FUN_02029FC8
+ add r1, r4, #0x0
+ bl FUN_0202A0E8
+ mov r0, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_0203E510
+FUN_0203E510: ; 0x0203E510
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ bl ScriptReadHalfword
+ add r7, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r6, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ add r1, r4, #0x0
+ bl FUN_020394B8
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ add r1, r6, #0x0
+ bl FUN_020394B8
+ add r5, #0x80
+ add r6, r0, #0x0
+ ldr r0, [r5, #0x0]
+ ldr r0, [r0, #0xc]
+ bl FUN_02029FC8
+ add r1, r7, #0x0
+ bl FUN_0202A150
+ ldr r1, _0203E564 ; =0xFFFF0000
+ and r1, r0
+ lsr r1, r1, #0x10
+ strh r1, [r4, #0x0]
+ strh r0, [r6, #0x0]
+ mov r0, #0x0
+ pop {r3-r7, pc}
+ .balign 4
+_0203E564: .word 0xFFFF0000
+
+ thumb_func_start FUN_0203E568
+FUN_0203E568: ; 0x0203E568
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ bl ScriptReadHalfword
+ add r6, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ ldr r1, [r5, #0x8]
+ add r2, r1, #0x1
+ str r2, [r5, #0x8]
+ lsl r2, r4, #0x10
+ add r4, r2, #0x0
+ orr r4, r0
+ ldrb r0, [r1, #0x0]
+ cmp r0, #0x0
+ beq _0203E59C
+ cmp r0, #0x1
+ beq _0203E5B0
+ cmp r0, #0x2
+ beq _0203E5C4
+ b _0203E5D6
+_0203E59C:
+ add r5, #0x80
+ ldr r0, [r5, #0x0]
+ ldr r0, [r0, #0xc]
+ bl FUN_02029FC8
+ add r1, r6, #0x0
+ add r2, r4, #0x0
+ bl FUN_0202A11C
+ b _0203E5D6
+_0203E5B0:
+ add r5, #0x80
+ ldr r0, [r5, #0x0]
+ ldr r0, [r0, #0xc]
+ bl FUN_02029FC8
+ add r1, r6, #0x0
+ add r2, r4, #0x0
+ bl FUN_0202A07C
+ b _0203E5D6
+_0203E5C4:
+ add r5, #0x80
+ ldr r0, [r5, #0x0]
+ ldr r0, [r0, #0xc]
+ bl FUN_02029FC8
+ add r1, r6, #0x0
+ add r2, r4, #0x0
+ bl FUN_0202A0A8
+_0203E5D6:
+ mov r0, #0x0
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_0203E5DC
+FUN_0203E5DC: ; 0x0203E5DC
+ push {r3-r7, lr}
+ sub sp, #0x8
+ add r5, r0, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0xc]
+ bl FUN_02034E30
+ add r7, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0xc]
+ bl FUN_020462AC
+ str r0, [sp, #0x0]
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0xc]
+ bl FUN_02022504
+ ldr r1, [r5, #0x8]
+ str r0, [sp, #0x4]
+ add r0, r1, #0x1
+ str r0, [r5, #0x8]
+ ldrb r4, [r1, #0x0]
+ add r0, r7, #0x0
+ bl FUN_02034E24
+ add r6, r0, #0x0
+ add r0, r7, #0x0
+ bl FUN_02034E28
+ add r7, r0, #0x0
+ cmp r4, #0x0
+ beq _0203E62C
+ cmp r4, #0x1
+ beq _0203E642
+ b _0203E66E
+_0203E62C:
+ ldr r0, [sp, #0x0]
+ bl FUN_0205F1F4
+ ldr r0, [sp, #0x4]
+ bl FUN_02060FD0
+ mov r0, #0x1e
+ strh r0, [r6, #0x0]
+ mov r0, #0x0
+ strh r0, [r7, #0x0]
+ b _0203E66E
+_0203E642:
+ ldr r0, [sp, #0x0]
+ bl FUN_0205F204
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_02061574
+ mov r0, #0x4
+ bl FUN_0202912C
+ add r5, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r5, #0x0]
+ mov r2, #0x1
+ add r0, #0x98
+ ldr r0, [r0, #0x0]
+ bl FUN_02028AD4
+ mov r0, #0x0
+ strh r0, [r6, #0x0]
+ strh r0, [r7, #0x0]
+_0203E66E:
+ mov r0, #0x0
+ add sp, #0x8
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_0203E674
+FUN_0203E674: ; 0x0203E674
+ push {r3, lr}
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_0206015C
+ mov r0, #0x1
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_0203E684
+FUN_0203E684: ; 0x0203E684
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ ldr r2, [r5, #0x8]
+ add r1, r2, #0x1
+ str r1, [r5, #0x8]
+ ldrb r4, [r2, #0x0]
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394B8
+ add r5, #0x80
+ add r6, r0, #0x0
+ ldr r0, [r5, #0x0]
+ add r1, r4, #0x0
+ bl FUN_022456E8
+ strh r0, [r6, #0x0]
+ mov r0, #0x1
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_0203E6B4
+FUN_0203E6B4: ; 0x0203E6B4
+ push {r3, lr}
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_02064E20
+ mov r0, #0x0
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_0203E6C4
+FUN_0203E6C4: ; 0x0203E6C4
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394B8
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ mov r1, #0x0
+ add r6, r0, #0x0
+ mov r0, #0x41
+ add r2, r1, #0x0
+ bl FUN_0200433C
+ add r5, #0x80
+ ldrh r1, [r4, #0x0]
+ ldr r0, [r5, #0x0]
+ add r2, r6, #0x0
+ bl FUN_0224525C
+ mov r0, #0x1
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_0203E6FC
+FUN_0203E6FC: ; 0x0203E6FC
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ bl ScriptReadHalfword
+ add r6, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394B8
+ add r5, #0x80
+ add r4, r0, #0x0
+ ldr r0, [r5, #0x0]
+ add r1, r6, #0x0
+ bl FUN_02245340
+ strh r0, [r4, #0x0]
+ mov r0, #0x0
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_0203E72C
+FUN_0203E72C: ; 0x0203E72C
+ push {r3, lr}
+ ldr r2, [r0, #0x8]
+ add r1, r2, #0x1
+ str r1, [r0, #0x8]
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ ldrb r1, [r2, #0x0]
+ ldr r0, [r0, #0x38]
+ bl FUN_02055560
+ mov r0, #0x1
+ pop {r3, pc}
+
+ thumb_func_start FUN_0203E744
+FUN_0203E744: ; 0x0203E744
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0xc]
+ bl FUN_020462AC
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r5, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r5, #0x0]
+ bl FUN_020394B8
+ add r5, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_0205F688
+ strh r0, [r5, #0x0]
+ mov r0, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_0203E774
+FUN_0203E774: ; 0x0203E774
+ push {r3-r7, lr}
+ add r4, r0, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0xc]
+ bl FUN_02024DA0
+ add r7, r0, #0x0
+ add r0, r4, #0x0
+ bl ScriptReadHalfword
+ add r4, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r4, #0x0]
+ bl FUN_020394B8
+ str r0, [sp, #0x0]
+ add r0, r7, #0x0
+ bl FUN_020244A4
+ add r4, r0, #0x0
+ bl FUN_0201B9EC
+ add r1, r4, #0x0
+ blx _s32_div_f
+ lsl r0, r1, #0x10
+ lsr r6, r0, #0x10
+ ldr r0, [sp, #0x0]
+ mov r1, #0x19
+ strh r1, [r0, #0x0]
+ mov r4, #0x1
+ mov r5, #0x0
+_0203E7B6:
+ add r0, r7, #0x0
+ add r1, r4, #0x0
+ bl FUN_020245F0
+ cmp r0, #0x1
+ bne _0203E7DC
+ add r0, r4, #0x0
+ bl FUN_02069B40
+ cmp r0, #0x0
+ beq _0203E7DC
+ cmp r5, r6
+ bne _0203E7D6
+ ldr r0, [sp, #0x0]
+ strh r4, [r0, #0x0]
+ b _0203E7E8
+_0203E7D6:
+ add r0, r5, #0x1
+ lsl r0, r0, #0x10
+ lsr r5, r0, #0x10
+_0203E7DC:
+ add r0, r4, #0x1
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+ ldr r0, _0203E7EC ; =0x000001ED
+ cmp r4, r0
+ bls _0203E7B6
+_0203E7E8:
+ mov r0, #0x0
+ pop {r3-r7, pc}
+ .balign 4
+_0203E7EC: .word 0x000001ED
+
+ thumb_func_start FUN_0203E7F0
+FUN_0203E7F0: ; 0x0203E7F0
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r5, #0x80
+ add r4, r0, #0x0
+ ldr r0, [r5, #0x0]
+ ldr r0, [r0, #0xc]
+ bl FUN_020462AC
+ add r1, r4, #0x0
+ bl FUN_0205F5A4
+ mov r0, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_0203E81C
+FUN_0203E81C: ; 0x0203E81C
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394B8
+ add r5, #0x80
+ add r4, r0, #0x0
+ ldr r0, [r5, #0x0]
+ ldr r0, [r0, #0xc]
+ bl FUN_020462AC
+ bl FUN_0205F594
+ strh r0, [r4, #0x0]
+ mov r0, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_0203E848
+FUN_0203E848: ; 0x0203E848
+ push {r3, lr}
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0xc]
+ bl FUN_0202AA00
+ mov r0, #0x0
+ pop {r3, pc}
+
+ thumb_func_start FUN_0203E858
+FUN_0203E858: ; 0x0203E858
+ push {r3, lr}
+ ldr r2, [r0, #0x8]
+ add r1, r2, #0x1
+ str r1, [r0, #0x8]
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ ldrb r1, [r2, #0x0]
+ ldr r0, [r0, #0xc]
+ bl FUN_02060490
+ mov r0, #0x0
+ pop {r3, pc}
+
+ thumb_func_start FUN_0203E870
+FUN_0203E870: ; 0x0203E870
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ mov r1, #0x14
+ bl FUN_02039438
+ ldr r1, [r5, #0x8]
+ add r4, r0, #0x0
+ add r0, r1, #0x1
+ str r0, [r5, #0x8]
+ ldrb r1, [r1, #0x0]
+ mov r0, #0xb
+ bl FUN_0224884C
+ str r0, [r4, #0x0]
+ mov r0, #0x0
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_0203E894
+FUN_0203E894: ; 0x0203E894
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ mov r1, #0x14
+ bl FUN_02039438
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r5, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r5, #0x0]
+ bl FUN_020394B8
+ add r5, r0, #0x0
+ ldr r0, [r4, #0x0]
+ bl FUN_022488EC
+ strh r0, [r5, #0x0]
+ mov r0, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_0203E8C4
+FUN_0203E8C4: ; 0x0203E8C4
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ mov r1, #0x14
+ bl FUN_02039438
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r5, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r5, #0x0]
+ bl FUN_020394B8
+ add r5, r0, #0x0
+ ldr r0, [r4, #0x0]
+ bl FUN_022488F4
+ strh r0, [r5, #0x0]
+ mov r0, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_0203E8F4
+FUN_0203E8F4: ; 0x0203E8F4
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ mov r1, #0x14
+ bl FUN_02039438
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r2, r0, #0x0
+ ldr r0, [r5, #0x74]
+ ldr r1, [r4, #0x0]
+ mov r3, #0xb
+ bl FUN_02060790
+ mov r0, #0x1
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_0203E928
+FUN_0203E928: ; 0x0203E928
+ push {r3, lr}
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ mov r1, #0x14
+ bl FUN_02039438
+ ldr r0, [r0, #0x0]
+ bl FUN_022488CC
+ mov r0, #0x0
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_0203E940
+FUN_0203E940: ; 0x0203E940
+ push {r3, lr}
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0xc]
+ bl FUN_02024DA0
+ bl FUN_02024D4C
+ mov r0, #0x0
+ pop {r3, pc}
+
+ thumb_func_start FUN_0203E954
+FUN_0203E954: ; 0x0203E954
+ push {r3, lr}
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0xc]
+ bl FUN_02024DA0
+ bl FUN_02024CE0
+ mov r0, #0x0
+ pop {r3, pc}
+
+ thumb_func_start FUN_0203E968
+FUN_0203E968: ; 0x0203E968
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ ldr r2, [r5, #0x8]
+ add r1, r2, #0x1
+ str r1, [r5, #0x8]
+ ldrb r4, [r2, #0x0]
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394B8
+ add r6, r0, #0x0
+ mov r0, #0x0
+ strh r0, [r6, #0x0]
+ cmp r4, #0x1
+ bne _0203E9AE
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0xc]
+ bl FUN_02024DA0
+ bl FUN_02024C84
+ add r5, #0x80
+ ldr r0, [r5, #0x0]
+ ldr r0, [r0, #0xc]
+ bl FUN_020238F4
+ bl FUN_02023A90
+ b _0203E9C8
+_0203E9AE:
+ cmp r4, #0x2
+ bne _0203E9C4
+ add r5, #0x80
+ ldr r0, [r5, #0x0]
+ ldr r0, [r0, #0xc]
+ bl FUN_02024DA0
+ bl FUN_02024CA4
+ strh r0, [r6, #0x0]
+ b _0203E9C8
+_0203E9C4:
+ bl ErrorHandling
+_0203E9C8:
+ mov r0, #0x0
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_0203E9CC
+FUN_0203E9CC: ; 0x0203E9CC
+ push {r4-r7, lr}
+ sub sp, #0xc
+ add r5, r0, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394B8
+ str r0, [sp, #0x0]
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r5, #0x80
+ add r4, r0, #0x0
+ ldr r0, [r5, #0x0]
+ ldr r0, [r0, #0xc]
+ bl FUN_0206BB1C
+ add r1, r4, #0x0
+ bl FUN_0206B9B0
+ add r5, r0, #0x0
+ mov r1, #0xd
+ mov r2, #0x0
+ bl FUN_020671BC
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ mov r1, #0xe
+ mov r2, #0x0
+ bl FUN_020671BC
+ add r6, r0, #0x0
+ add r0, r5, #0x0
+ mov r1, #0xf
+ mov r2, #0x0
+ bl FUN_020671BC
+ add r7, r0, #0x0
+ add r0, r5, #0x0
+ mov r1, #0x10
+ mov r2, #0x0
+ bl FUN_020671BC
+ str r0, [sp, #0x4]
+ add r0, r5, #0x0
+ mov r1, #0x11
+ mov r2, #0x0
+ bl FUN_020671BC
+ str r0, [sp, #0x8]
+ add r0, r5, #0x0
+ mov r1, #0x12
+ mov r2, #0x0
+ bl FUN_020671BC
+ add r1, r4, r6
+ add r2, r7, r1
+ ldr r1, [sp, #0x4]
+ add r2, r1, r2
+ ldr r1, [sp, #0x8]
+ add r1, r1, r2
+ add r1, r0, r1
+ ldr r0, [sp, #0x0]
+ strh r1, [r0, #0x0]
+ mov r0, #0x0
+ add sp, #0xc
+ pop {r4-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_0203EA68
+FUN_0203EA68: ; 0x0203EA68
+ push {r4, lr}
+ sub sp, #0x10
+ add r4, r0, #0x0
+ bl ScriptReadHalfword
+ add r4, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r4, #0x0]
+ bl FUN_020394B8
+ add r4, r0, #0x0
+ add r0, sp, #0x0
+ bl FUN_020126B4
+ ldr r0, [sp, #0xc]
+ strh r0, [r4, #0x0]
+ mov r0, #0x0
+ add sp, #0x10
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0203EA90
+FUN_0203EA90: ; 0x0203EA90
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394B8
+ add r1, r0, #0x0
+ ldr r0, [r4, #0x74]
+ bl FUN_022411F4
+ mov r0, #0x1
+ pop {r4, pc}
+
+ thumb_func_start FUN_0203EAB0
+FUN_0203EAB0: ; 0x0203EAB0
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394B8
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394B8
+ add r6, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r5, #0x80
+ add r7, r0, #0x0
+ ldr r0, [r5, #0x0]
+ ldr r0, [r0, #0xc]
+ bl FUN_0206BB1C
+ add r1, r7, #0x0
+ bl FUN_0206B9B0
+ mov r1, #0x5
+ mov r2, #0x0
+ bl FUN_020671BC
+ lsl r0, r0, #0x10
+ lsr r5, r0, #0x10
+ add r0, r5, #0x0
+ bl FUN_021F61E8
+ strh r0, [r4, #0x0]
+ add r0, r5, #0x0
+ bl FUN_021F61DC
+ strh r0, [r6, #0x0]
+ mov r0, #0x0
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_0203EB20
+FUN_0203EB20: ; 0x0203EB20
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r1, r0, #0x0
+ add r4, #0x80
+ lsl r1, r1, #0x18
+ ldr r0, [r4, #0x0]
+ lsr r1, r1, #0x18
+ bl FUN_0224C27C
+ mov r0, #0x1
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0203EB48
+FUN_0203EB48: ; 0x0203EB48
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r2, r0, #0x0
+ add r5, #0x80
+ lsl r1, r4, #0x18
+ lsl r2, r2, #0x18
+ ldr r0, [r5, #0x0]
+ lsr r1, r1, #0x18
+ lsr r2, r2, #0x18
+ bl FUN_0224C520
+ mov r0, #0x1
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_0203EB88
+FUN_0203EB88: ; 0x0203EB88
+ push {r4-r7, lr}
+ sub sp, #0xc
+ add r5, r0, #0x0
+ ldr r1, [r5, #0x8]
+ add r2, r1, #0x1
+ str r2, [r5, #0x8]
+ ldrb r6, [r1, #0x0]
+ add r1, r2, #0x1
+ str r1, [r5, #0x8]
+ ldrb r4, [r2, #0x0]
+ bl ScriptReadHalfword
+ str r0, [sp, #0x8]
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r7, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ str r7, [sp, #0x0]
+ add r5, #0x80
+ str r0, [sp, #0x4]
+ ldr r0, [r5, #0x0]
+ ldr r3, [sp, #0x8]
+ add r1, r6, #0x0
+ add r2, r4, #0x0
+ bl FUN_020607D4
+ mov r0, #0x1
+ add sp, #0xc
+ pop {r4-r7, pc}
+
+ thumb_func_start FUN_0203EBC8
+FUN_0203EBC8: ; 0x0203EBC8
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl ScriptReadHalfword
+ add r4, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r4, #0x0]
+ bl FUN_020394B8
+ mov r1, #0xa
+ strh r1, [r0, #0x0]
+ mov r0, #0x0
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0203EBE4
+FUN_0203EBE4: ; 0x0203EBE4
+ push {r3-r7, lr}
+ sub sp, #0x10
+ add r5, r0, #0x0
+ add r0, #0x80
+ ldr r6, [r0, #0x0]
+ add r0, r6, #0x0
+ bl FUN_020377AC
+ bl FUN_020238F4
+ str r0, [sp, #0x4]
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394B8
+ add r4, r0, #0x0
+ ldr r0, [r6, #0xc]
+ bl FUN_02022510
+ add r6, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r7, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ str r0, [sp, #0x8]
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ str r0, [sp, #0xc]
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r5, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r5, #0x0]
+ bl FUN_020394F0
+ str r0, [sp, #0x0]
+ ldr r0, [sp, #0x4]
+ ldr r2, [sp, #0x8]
+ ldr r3, [sp, #0xc]
+ add r1, r7, #0x0
+ bl FUN_0224D14C
+ add r5, r0, #0x0
+ mov r0, #0x0
+ mvn r0, r0
+ cmp r5, r0
+ beq _0203EC7E
+ cmp r5, #0x7
+ ble _0203EC88
+_0203EC7E:
+ mov r0, #0xff
+ strh r0, [r4, #0x0]
+ add sp, #0x10
+ mov r0, #0x0
+ pop {r3-r7, pc}
+_0203EC88:
+ add r0, r6, #0x0
+ add r1, r5, #0x0
+ bl FUN_0206B644
+ cmp r0, #0x0
+ beq _0203EC98
+ mov r0, #0x0
+ b _0203ECA2
+_0203EC98:
+ add r0, r6, #0x0
+ add r1, r5, #0x0
+ bl FUN_0206B620
+ add r0, r5, #0x1
+_0203ECA2:
+ strh r0, [r4, #0x0]
+ mov r0, #0x0
+ add sp, #0x10
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_0203ECAC
+FUN_0203ECAC: ; 0x0203ECAC
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r1, r5, #0x0
+ add r1, #0x80
+ ldr r1, [r1, #0x0]
+ ldr r4, [r1, #0xc]
+ bl ScriptReadHalfword
+ add r5, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r5, #0x0]
+ bl FUN_020394B8
+ add r5, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_02026CB4
+ bl FUN_020269CC
+ strh r0, [r5, #0x0]
+ mov r0, #0x0
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_0203ECD8
+FUN_0203ECD8: ; 0x0203ECD8
+ push {r3, lr}
+ add r1, r0, #0x0
+ add r1, #0x80
+ ldr r2, [r0, #0x8]
+ ldr r3, [r1, #0x0]
+ add r1, r2, #0x1
+ str r1, [r0, #0x8]
+ ldrb r1, [r2, #0x0]
+ add r0, r3, #0x0
+ bl FUN_0224C678
+ mov r0, #0x0
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_0203ECF4
+FUN_0203ECF4: ; 0x0203ECF4
+ push {r3, lr}
+ add r1, r0, #0x0
+ add r1, #0x80
+ ldr r2, [r0, #0x8]
+ ldr r3, [r1, #0x0]
+ add r1, r2, #0x1
+ str r1, [r0, #0x8]
+ ldrb r1, [r2, #0x0]
+ add r0, r3, #0x0
+ bl FUN_0224C6E8
+ mov r0, #0x0
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_0203ED10
+FUN_0203ED10: ; 0x0203ED10
+ push {r3, lr}
+ add r1, r0, #0x0
+ add r1, #0x80
+ ldr r2, [r0, #0x8]
+ ldr r3, [r1, #0x0]
+ add r1, r2, #0x1
+ str r1, [r0, #0x8]
+ ldrb r1, [r2, #0x0]
+ add r0, r3, #0x0
+ bl FUN_0224C6F4
+ mov r0, #0x0
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_0203ED2C
+FUN_0203ED2C: ; 0x0203ED2C
+ push {r4-r6, lr}
+ sub sp, #0x10
+ ldr r0, [r0, #0xc]
+ add r5, r1, #0x0
+ bl FUN_02024DA0
+ add r6, r0, #0x0
+ mov r0, #0x20
+ bl FUN_020669C0
+ add r4, r0, #0x0
+ bl FUN_02066978
+ mov r0, #0x0
+ str r0, [sp, #0x0]
+ str r0, [sp, #0x4]
+ str r0, [sp, #0x8]
+ str r0, [sp, #0xc]
+ add r0, r4, #0x0
+ add r1, r5, #0x0
+ mov r2, #0x32
+ mov r3, #0x20
+ bl FUN_02066ACC
+ add r0, r6, #0x0
+ add r1, r4, #0x0
+ bl FUN_0202498C
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ add sp, #0x10
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_0203ED70
+FUN_0203ED70: ; 0x0203ED70
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394B8
+ add r5, #0x80
+ add r4, r0, #0x0
+ ldr r0, [r5, #0x0]
+ ldr r0, [r0, #0xc]
+ bl FUN_02022510
+ bl FUN_0206B3E4
+ lsl r0, r0, #0x10
+ lsr r1, r0, #0x10
+ mov r0, #0x87
+ lsl r0, r0, #0x2
+ sub r0, r0, r1
+ strh r0, [r4, #0x0]
+ mov r0, #0x0
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_0203EDA4
+FUN_0203EDA4: ; 0x0203EDA4
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ mov r1, #0x16
+ bl FUN_02039438
+ add r4, r0, #0x0
+ mov r0, #0x0
+ add r5, #0x80
+ str r0, [r4, #0x0]
+ ldr r0, [r5, #0x0]
+ bl FUN_021E7184
+ str r0, [r4, #0x0]
+ mov r0, #0x1
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_0203EDC8
+FUN_0203EDC8: ; 0x0203EDC8
+ push {r3, lr}
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ mov r1, #0x16
+ bl FUN_02039438
+ ldr r0, [r0, #0x0]
+ bl FUN_021E71E8
+ mov r0, #0x1
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_0203EDE0
+FUN_0203EDE0: ; 0x0203EDE0
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r1, r0, #0x0
+ add r4, #0x80
+ lsl r1, r1, #0x18
+ ldr r0, [r4, #0x0]
+ lsr r1, r1, #0x18
+ bl FUN_0224E554
+ mov r0, #0x1
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0203EE08
+FUN_0203EE08: ; 0x0203EE08
+ push {r3, lr}
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_0206486C
+ mov r0, #0x0
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_0203EE18
+FUN_0203EE18: ; 0x0203EE18
+ push {r3, lr}
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020649D4
+ mov r0, #0x1
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_0203EE28
+FUN_0203EE28: ; 0x0203EE28
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394B8
+ add r5, #0x80
+ add r4, r0, #0x0
+ ldr r0, [r5, #0x0]
+ bl FUN_020649B0
+ cmp r0, #0x0
+ beq _0203EE4E
+ mov r0, #0x1
+ b _0203EE50
+_0203EE4E:
+ mov r0, #0x0
+_0203EE50:
+ strh r0, [r4, #0x0]
+ mov r0, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_0203EE58
+FUN_0203EE58: ; 0x0203EE58
+ push {r3, lr}
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_0224E764
+ mov r0, #0x0
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_0203EE68
+FUN_0203EE68: ; 0x0203EE68
+ push {r3, lr}
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_0224E7C4
+ mov r0, #0x1
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_0203EE78
+FUN_0203EE78: ; 0x0203EE78
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ bl ScriptReadHalfword
+ add r5, #0x80
+ add r4, r0, #0x0
+ ldr r0, [r5, #0x0]
+ ldr r0, [r0, #0xc]
+ bl FUN_02029FC8
+ add r1, r4, #0x0
+ bl FUN_0202A170
+ mov r0, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_0203EE98
+FUN_0203EE98: ; 0x0203EE98
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r6, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394B8
+ add r5, #0x80
+ add r4, r0, #0x0
+ ldr r0, [r5, #0x0]
+ ldr r0, [r0, #0xc]
+ bl FUN_0206BB1C
+ add r1, r6, #0x0
+ bl FUN_0206BAE4
+ strh r0, [r4, #0x0]
+ mov r0, #0x1
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_0203EED8
+FUN_0203EED8: ; 0x0203EED8
+ push {r3-r7, lr}
+ sub sp, #0x8
+ add r4, r0, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r1, sp, #0x4
+ strh r0, [r1, #0x0]
+ add r0, r4, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0xc]
+ bl FUN_0206BB1C
+ str r0, [sp, #0x0]
+ bl FUN_0206B9AC
+ add r4, #0x80
+ add r6, r0, #0x0
+ ldr r0, [r4, #0x0]
+ ldr r0, [r0, #0xc]
+ bl FUN_02024DA0
+ add r7, r0, #0x0
+ mov r5, #0x0
+ cmp r6, #0x0
+ ble _0203EF4E
+_0203EF18:
+ ldr r0, [sp, #0x0]
+ add r1, r5, #0x0
+ bl FUN_0206B9B0
+ mov r1, #0x5
+ mov r2, #0x0
+ add r4, r0, #0x0
+ bl FUN_020671BC
+ ldr r1, _0203EF54 ; =0x00000182
+ cmp r0, r1
+ bne _0203EF48
+ add r0, r4, #0x0
+ mov r1, #0x70
+ add r2, sp, #0x4
+ bl FUN_02067830
+ add r0, r4, #0x0
+ bl FUN_02066ED8
+ add r0, r7, #0x0
+ add r1, r4, #0x0
+ bl FUN_02024AF0
+_0203EF48:
+ add r5, r5, #0x1
+ cmp r5, r6
+ blt _0203EF18
+_0203EF4E:
+ mov r0, #0x1
+ add sp, #0x8
+ pop {r3-r7, pc}
+ .balign 4
+_0203EF54: .word 0x00000182
+
+ thumb_func_start FUN_0203EF58
+FUN_0203EF58: ; 0x0203EF58
+ push {r3-r7, lr}
+ sub sp, #0x30
+ add r4, r0, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394B8
+ add r4, #0x80
+ str r0, [sp, #0x0]
+ ldr r0, [r4, #0x0]
+ ldr r0, [r0, #0xc]
+ bl FUN_0206BB1C
+ str r0, [sp, #0xc]
+ bl FUN_0206B9AC
+ add r2, sp, #0x18
+ mov r4, #0x0
+ ldr r3, _0203F008 ; =0x020F34FC
+ str r0, [sp, #0x8]
+ add r7, r2, #0x0
+ 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, [sp, #0x8]
+ str r4, [sp, #0x4]
+ cmp r0, #0x0
+ ble _0203EFFC
+ mov r5, #0x1
+ str r7, [sp, #0x14]
+_0203EFA2:
+ ldr r0, [sp, #0xc]
+ add r1, r4, #0x0
+ bl FUN_0206B9B0
+ add r6, r0, #0x0
+ mov r1, #0x5
+ mov r2, #0x0
+ bl FUN_020671BC
+ str r0, [sp, #0x10]
+ add r0, r6, #0x0
+ mov r1, #0x70
+ mov r2, #0x0
+ bl FUN_020671BC
+ add r3, r0, #0x0
+ mov r0, #0x67
+ ldr r1, [sp, #0x10]
+ lsl r0, r0, #0x2
+ cmp r1, r0
+ bne _0203EFF2
+ mov r2, #0x0
+ add r1, r2, #0x0
+ str r3, [r7, #0x0]
+ cmp r4, #0x0
+ ble _0203EFE8
+ ldr r6, [sp, #0x14]
+_0203EFD8:
+ ldr r0, [r6, #0x0]
+ cmp r3, r0
+ bne _0203EFE0
+ add r2, r5, #0x0
+_0203EFE0:
+ add r1, r1, #0x1
+ add r6, r6, #0x4
+ cmp r1, r4
+ blt _0203EFD8
+_0203EFE8:
+ cmp r2, #0x0
+ bne _0203EFF2
+ ldr r0, [sp, #0x4]
+ add r0, r0, #0x1
+ str r0, [sp, #0x4]
+_0203EFF2:
+ ldr r0, [sp, #0x8]
+ add r4, r4, #0x1
+ add r7, r7, #0x4
+ cmp r4, r0
+ blt _0203EFA2
+_0203EFFC:
+ ldr r1, [sp, #0x4]
+ ldr r0, [sp, #0x0]
+ strh r1, [r0, #0x0]
+ mov r0, #0x1
+ add sp, #0x30
+ pop {r3-r7, pc}
+ .balign 4
+_0203F008: .word 0x020F34FC
+
+ thumb_func_start FUN_0203F00C
+FUN_0203F00C: ; 0x0203F00C
+ push {r3, lr}
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0xc]
+ bl FUN_020462AC
+ bl FUN_0205F1C4
+ mov r0, #0x0
+ pop {r3, pc}
+
+ thumb_func_start FUN_0203F020
+FUN_0203F020: ; 0x0203F020
+ push {r3, lr}
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0xc]
+ bl FUN_020462AC
+ bl FUN_0205F1D4
+ mov r0, #0x0
+ pop {r3, pc}
+
+ thumb_func_start FUN_0203F034
+FUN_0203F034: ; 0x0203F034
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r4, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r4, #0x0]
+ ldr r0, [r0, #0x10]
+ bl FUN_020389CC
+ mov r0, #0x1
+ pop {r4, pc}
+
+ thumb_func_start FUN_0203F058
+FUN_0203F058: ; 0x0203F058
+ push {r3-r5, lr}
+ add r4, r0, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394B8
+ add r4, #0x80
+ add r5, r0, #0x0
+ ldr r0, [r4, #0x0]
+ bl FUN_0204B2D8
+ strh r0, [r5, #0x0]
+ mov r0, #0x0
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_0203F07C
+FUN_0203F07C: ; 0x0203F07C
+ push {r3-r7, lr}
+ sub sp, #0x10
+ add r5, r0, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r7, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ str r0, [sp, #0xc]
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ str r0, [sp, #0x8]
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r6, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ add r1, r7, #0x0
+ ldr r0, [r0, #0x34]
+ bl FUN_02058060
+ add r7, r0, #0x0
+ bne _0203F0FA
+ bl ErrorHandling
+_0203F0FA:
+ str r6, [sp, #0x0]
+ str r4, [sp, #0x4]
+ ldr r0, [r5, #0x74]
+ ldr r2, [sp, #0xc]
+ ldr r3, [sp, #0x8]
+ add r1, r7, #0x0
+ bl FUN_02054F50
+ mov r0, #0x1
+ add sp, #0x10
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_0203F110
+FUN_0203F110: ; 0x0203F110
+ push {r3-r7, lr}
+ add r4, r0, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r5, r0, #0x0
+ add r0, r4, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r7, r0, #0x0
+ add r0, r4, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r6, r0, #0x0
+ add r0, r4, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ add r1, r5, #0x0
+ ldr r0, [r0, #0x34]
+ bl FUN_02058060
+ add r5, r0, #0x0
+ bne _0203F164
+ bl ErrorHandling
+_0203F164:
+ ldr r0, [r4, #0x74]
+ add r1, r5, #0x0
+ add r2, r7, #0x0
+ add r3, r6, #0x0
+ bl FUN_0205502C
+ mov r0, #0x1
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_0203F174
+FUN_0203F174: ; 0x0203F174
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394B8
+ add r5, #0x80
+ add r4, r0, #0x0
+ ldr r0, [r5, #0x0]
+ ldr r0, [r0, #0xc]
+ bl FUN_02054E30
+ strh r0, [r4, #0x0]
+ mov r0, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_0203F19C
+FUN_0203F19C: ; 0x0203F19C
+ push {r4-r7, lr}
+ sub sp, #0x24
+ add r4, r0, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394B8
+ add r4, #0x80
+ str r0, [sp, #0x0]
+ ldr r0, [r4, #0x0]
+ ldr r0, [r0, #0xc]
+ bl FUN_02027E24
+ bl FUN_0202708C
+ mov r6, #0x0
+ add r7, r0, #0x0
+ add r4, r6, #0x0
+ add r5, sp, #0x4
+_0203F1CA:
+ add r1, r4, #0x0
+ add r0, r7, #0x0
+ add r1, #0x22
+ mov r2, #0x1
+ bl FUN_020270D8
+ cmp r0, #0x1
+ bne _0203F1E0
+ mov r0, #0x1
+ strh r0, [r5, #0x0]
+ add r6, r6, #0x1
+_0203F1E0:
+ add r4, r4, #0x1
+ add r5, r5, #0x2
+ cmp r4, #0x10
+ blt _0203F1CA
+ cmp r6, #0x0
+ bne _0203F1F8
+ ldr r0, [sp, #0x0]
+ ldr r1, _0203F230 ; =0x0000FFFF
+ add sp, #0x24
+ strh r1, [r0, #0x0]
+ mov r0, #0x0
+ pop {r4-r7, pc}
+_0203F1F8:
+ bl FUN_0201B9EC
+ add r1, r6, #0x0
+ blx _s32_div_f
+ mov r4, #0x0
+ add r2, sp, #0x4
+_0203F206:
+ ldrh r0, [r2, #0x0]
+ cmp r0, #0x1
+ bne _0203F212
+ cmp r1, #0x0
+ beq _0203F21A
+ sub r1, r1, #0x1
+_0203F212:
+ add r4, r4, #0x1
+ add r2, r2, #0x2
+ cmp r4, #0x10
+ blt _0203F206
+_0203F21A:
+ cmp r4, #0x10
+ blt _0203F222
+ bl ErrorHandling
+_0203F222:
+ ldr r0, [sp, #0x0]
+ add r4, #0x22
+ strh r4, [r0, #0x0]
+ mov r0, #0x0
+ add sp, #0x24
+ pop {r4-r7, pc}
+ nop
+_0203F230: .word 0x0000FFFF
+
+ thumb_func_start FUN_0203F234
+FUN_0203F234: ; 0x0203F234
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl ScriptReadHalfword
+ add r4, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r4, #0x0]
+ bl FUN_020394B8
+ ldr r1, _0203F250 ; =0x021C4918
+ ldrb r1, [r1, #0x6]
+ strh r1, [r0, #0x0]
+ mov r0, #0x1
+ pop {r4, pc}
+ .balign 4
+_0203F250: .word 0x021C4918
+
+ thumb_func_start FUN_0203F254
+FUN_0203F254: ; 0x0203F254
+ push {r3, lr}
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0xc]
+ bl FUN_020462AC
+ mov r1, #0x0
+ bl FUN_0205F698
+ mov r0, #0x0
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_0203F26C
+FUN_0203F26C: ; 0x0203F26C
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ ldr r1, [r5, #0x8]
+ add r6, r0, #0x0
+ add r0, r1, #0x1
+ str r0, [r5, #0x8]
+ add r5, #0x80
+ ldr r0, [r5, #0x0]
+ ldrb r4, [r1, #0x0]
+ ldr r0, [r0, #0xc]
+ bl FUN_020462AC
+ cmp r4, #0x0
+ beq _0203F2A0
+ add r1, r6, #0x0
+ bl FUN_0205F4E4
+ b _0203F2A6
+_0203F2A0:
+ add r1, r6, #0x0
+ bl FUN_0205F50C
+_0203F2A6:
+ mov r0, #0x0
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_0203F2AC
+FUN_0203F2AC: ; 0x0203F2AC
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ mov r1, #0xf
+ bl FUN_02039438
+ ldr r1, [r5, #0x8]
+ add r6, r0, #0x0
+ add r0, r1, #0x1
+ str r0, [r5, #0x8]
+ add r0, r5, #0x0
+ ldrb r4, [r1, #0x0]
+ bl ScriptReadHalfword
+ add r5, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r5, #0x0]
+ bl FUN_020394F0
+ add r2, r0, #0x0
+ ldr r0, [r6, #0x0]
+ add r1, r4, #0x0
+ bl FUN_0200B6D0
+ mov r0, #0x1
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_0203F2E4
+FUN_0203F2E4: ; 0x0203F2E4
+ push {r3-r5, lr}
+ add r4, r0, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0xc]
+ bl FUN_020462AC
+ add r5, r0, #0x0
+ add r0, r4, #0x0
+ bl ScriptReadHalfword
+ add r4, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r4, #0x0]
+ bl FUN_020394B8
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_0205F6C8
+ cmp r0, #0xa
+ blo _0203F314
+ mov r0, #0x1
+ b _0203F316
+_0203F314:
+ mov r0, #0x0
+_0203F316:
+ strh r0, [r4, #0x0]
+ mov r0, #0x0
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_0203F31C
+FUN_0203F31C: ; 0x0203F31C
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394B8
+ add r5, #0x80
+ add r4, r0, #0x0
+ ldr r0, [r5, #0x0]
+ ldr r0, [r0, #0xc]
+ bl FUN_020462AC
+ bl FUN_0205F648
+ strh r0, [r4, #0x0]
+ mov r0, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_0203F348
+FUN_0203F348: ; 0x0203F348
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r5, #0x80
+ add r6, r0, #0x0
+ ldr r0, [r5, #0x0]
+ ldr r0, [r0, #0xc]
+ bl FUN_02027E24
+ bl FUN_0202708C
+ add r1, r4, #0x0
+ add r2, r6, #0x0
+ bl FUN_02027210
+ mov r0, #0x0
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_0203F38C
+FUN_0203F38C: ; 0x0203F38C
+ push {r3, lr}
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_02046030
+ mov r0, #0x1
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_0203F39C
+FUN_0203F39C: ; 0x0203F39C
+ push {r3, lr}
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0xc]
+ bl FUN_0205F668
+ mov r0, #0x0
+ pop {r3, pc}
+
+ thumb_func_start FUN_0203F3AC
+FUN_0203F3AC: ; 0x0203F3AC
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394B8
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r7, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ mov r1, #0xf
+ bl FUN_02039438
+ add r5, #0x80
+ add r6, r0, #0x0
+ ldr r0, [r5, #0x0]
+ ldr r0, [r0, #0xc]
+ bl FUN_02013B5C
+ bl FUN_02013B74
+ cmp r0, #0x20
+ bne _0203F3FE
+ ldr r0, _0203F414 ; =0x0000FFFF
+ strh r0, [r4, #0x0]
+ mov r0, #0x0
+ pop {r3-r7, pc}
+_0203F3FE:
+ strh r0, [r4, #0x0]
+ bl FUN_02013BE4
+ add r2, r0, #0x0
+ ldr r0, [r6, #0x0]
+ add r1, r7, #0x0
+ bl FUN_0200B518
+ mov r0, #0x0
+ pop {r3-r7, pc}
+ nop
+_0203F414: .word 0x0000FFFF
+
+ thumb_func_start FUN_0203F418
+FUN_0203F418: ; 0x0203F418
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394B8
+ add r5, #0x80
+ add r4, r0, #0x0
+ ldr r0, [r5, #0x0]
+ ldr r0, [r0, #0xc]
+ bl FUN_02013B5C
+ bl FUN_02013BC8
+ cmp r0, #0x1
+ bne _0203F444
+ mov r0, #0x1
+ b _0203F446
+_0203F444:
+ mov r0, #0x0
+_0203F446:
+ strh r0, [r4, #0x0]
+ mov r0, #0x0
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_0203F44C
+FUN_0203F44C: ; 0x0203F44C
+ push {r3-r5, lr}
+ add r4, r0, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0xc]
+ bl FUN_020462AC
+ add r5, r0, #0x0
+ add r0, r4, #0x0
+ bl ScriptReadHalfword
+ add r4, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r4, #0x0]
+ bl FUN_020394B8
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_0205F710
+ cmp r0, #0x5
+ blo _0203F47C
+ mov r0, #0x1
+ b _0203F47E
+_0203F47C:
+ mov r0, #0x0
+_0203F47E:
+ strh r0, [r4, #0x0]
+ mov r0, #0x0
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_0203F484
+FUN_0203F484: ; 0x0203F484
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394B8
+ add r5, #0x80
+ ldr r5, [r5, #0x0]
+ add r4, r0, #0x0
+ ldr r0, [r5, #0xc]
+ bl FUN_02023788
+ add r7, r0, #0x0
+ bl FUN_02023818
+ add r6, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_0204B2B4
+ cmp r6, r0
+ bne _0203F4CE
+ add r0, r7, #0x0
+ bl FUN_0202381C
+ add r6, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_0204B2C0
+ cmp r6, r0
+ bne _0203F4CE
+ mov r0, #0x1
+ strh r0, [r4, #0x0]
+ b _0203F4D2
+_0203F4CE:
+ mov r0, #0x0
+ strh r0, [r4, #0x0]
+_0203F4D2:
+ mov r0, #0x0
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_0203F4D8
+FUN_0203F4D8: ; 0x0203F4D8
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0xc]
+ bl FUN_02024DA0
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r5, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r5, #0x0]
+ bl FUN_020394B8
+ add r5, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_0202471C
+ strh r0, [r5, #0x0]
+ mov r0, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_0203F508
+FUN_0203F508: ; 0x0203F508
+ push {r3-r7, lr}
+ add r6, r0, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r6, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r7, r0, #0x0
+ add r0, r6, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r6, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r1, r6, #0x0
+ add r1, #0x80
+ ldr r1, [r1, #0x0]
+ ldr r2, [r1, #0x1c]
+ ldr r1, [r2, #0x8]
+ lsl r1, r1, #0x10
+ lsr r5, r1, #0x10
+ ldr r1, [r2, #0xc]
+ lsl r1, r1, #0x10
+ lsr r4, r1, #0x10
+ cmp r7, #0x3
+ blo _0203F54C
+ ldr r7, _0203F5C8 ; =0x0000010E
+ b _0203F582
+_0203F54C:
+ cmp r0, #0x1e
+ blo _0203F556
+ mov r7, #0x43
+ lsl r7, r7, #0x2
+ b _0203F582
+_0203F556:
+ bl FUN_0201B9EC
+ mov r1, #0x64
+ blx _s32_div_f
+ cmp r1, #0x19
+ bge _0203F568
+ ldr r7, _0203F5CC ; =0x0000010D
+ b _0203F582
+_0203F568:
+ bl FUN_0201B9EC
+ mov r1, #0x6
+ blx _s32_div_f
+ lsl r0, r1, #0x10
+ lsr r1, r0, #0x10
+ mov r0, #0x6
+ mul r0, r7
+ add r0, r1, r0
+ lsl r1, r0, #0x1
+ ldr r0, _0203F5D0 ; =0x020F3538
+ ldrh r7, [r0, r1]
+_0203F582:
+ cmp r5, #0xb
+ bne _0203F59A
+ cmp r4, #0x1
+ bne _0203F58E
+ mov r4, #0x0
+ b _0203F5A4
+_0203F58E:
+ cmp r4, #0x14
+ bne _0203F596
+ mov r4, #0x2
+ b _0203F5A4
+_0203F596:
+ mov r4, #0x5
+ b _0203F5A4
+_0203F59A:
+ cmp r5, #0x14
+ bne _0203F5A2
+ mov r4, #0x1
+ b _0203F5A4
+_0203F5A2:
+ mov r4, #0x3
+_0203F5A4:
+ mov r5, #0x0
+_0203F5A6:
+ cmp r5, r4
+ beq _0203F5B8
+ add r0, r6, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ add r1, r5, #0x0
+ add r2, r7, #0x0
+ bl FUN_02034C24
+_0203F5B8:
+ add r0, r5, #0x1
+ lsl r0, r0, #0x18
+ lsr r5, r0, #0x18
+ cmp r5, #0x4
+ blo _0203F5A6
+ mov r0, #0x0
+ pop {r3-r7, pc}
+ nop
+_0203F5C8: .word 0x0000010E
+_0203F5CC: .word 0x0000010D
+_0203F5D0: .word 0x020F3538
+
+ thumb_func_start FUN_0203F5D4
+FUN_0203F5D4: ; 0x0203F5D4
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0xc]
+ bl FUN_020462AC
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r5, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r5, #0x0]
+ bl FUN_020394B8
+ add r5, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_0205F720
+ strh r0, [r5, #0x0]
+ mov r0, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_0203F604
+FUN_0203F604: ; 0x0203F604
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0xc]
+ bl FUN_020462AC
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r5, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r5, #0x0]
+ bl FUN_020394B8
+ add r5, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_0205F740
+ strh r0, [r5, #0x0]
+ mov r0, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_0203F634
+FUN_0203F634: ; 0x0203F634
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0xc]
+ bl FUN_020462AC
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r5, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r5, #0x0]
+ bl FUN_020394B8
+ add r5, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_0205F760
+ strh r0, [r5, #0x0]
+ mov r0, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_0203F664
+FUN_0203F664: ; 0x0203F664
+ push {r3-r7, lr}
+ sub sp, #0x8
+ add r5, r0, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394B8
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ mov r2, #0x0
+ add r3, sp, #0x0
+ add r0, #0x8
+_0203F684:
+ ldr r6, [r0, #0x0]
+ ldr r1, [r5, #0x8]
+ add r6, r6, #0x1
+ str r6, [r0, #0x0]
+ ldrb r1, [r1, #0x0]
+ add r2, r2, #0x1
+ strb r1, [r3, #0x0]
+ add r3, r3, #0x1
+ cmp r2, #0x5
+ blt _0203F684
+ ldr r1, [r0, #0x0]
+ ldr r2, [r5, #0x8]
+ add r1, r1, #0x1
+ str r1, [r0, #0x0]
+ ldrb r6, [r2, #0x0]
+ mov r0, #0x4
+ bl FUN_02027E5C
+ add r1, sp, #0x0
+ add r2, r6, #0x0
+ mov r3, #0x0
+ add r7, r0, #0x0
+ bl FUN_02027F04
+ add r5, #0x80
+ add r6, r0, #0x0
+ ldr r0, [r5, #0x0]
+ ldr r0, [r0, #0xc]
+ bl FUN_02028048
+ add r1, r7, #0x0
+ bl FUN_02028094
+ add r5, r0, #0x0
+ add r0, r7, #0x0
+ bl FUN_02016A18
+ ldr r0, _0203F6E0 ; =0x0000FFFF
+ cmp r5, r0
+ bne _0203F6D8
+ strh r0, [r4, #0x0]
+ b _0203F6DA
+_0203F6D8:
+ strh r6, [r4, #0x0]
+_0203F6DA:
+ mov r0, #0x0
+ add sp, #0x8
+ pop {r3-r7, pc}
+ .balign 4
+_0203F6E0: .word 0x0000FFFF
+
+ thumb_func_start FUN_0203F6E4
+FUN_0203F6E4: ; 0x0203F6E4
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394B8
+ add r5, #0x80
+ add r4, r0, #0x0
+ ldr r0, [r5, #0x0]
+ ldr r0, [r0, #0xc]
+ bl FUN_02028048
+ bl FUN_02028074
+ ldr r1, _0203F71C ; =0x0000FFFF
+ cmp r0, r1
+ bne _0203F712
+ mov r0, #0x0
+ b _0203F714
+_0203F712:
+ mov r0, #0x1
+_0203F714:
+ strh r0, [r4, #0x0]
+ mov r0, #0x0
+ pop {r3-r5, pc}
+ nop
+_0203F71C: .word 0x0000FFFF
+
+ thumb_func_start FUN_0203F720
+FUN_0203F720: ; 0x0203F720
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ ldr r2, [r5, #0x8]
+ add r1, r2, #0x1
+ str r1, [r5, #0x8]
+ ldrb r4, [r2, #0x0]
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394B8
+ add r5, #0x80
+ add r6, r0, #0x0
+ ldr r0, [r5, #0x0]
+ ldr r0, [r0, #0xc]
+ bl FUN_020462AC
+ add r5, r0, #0x0
+ cmp r4, #0x3
+ bls _0203F752
+ bl ErrorHandling
+_0203F752:
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_0205F4A0
+ strh r0, [r6, #0x0]
+ mov r0, #0x0
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_0203F760
+FUN_0203F760: ; 0x0203F760
+ push {r3-r5, lr}
+ add r4, r0, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394B8
+ add r4, #0x80
+ add r5, r0, #0x0
+ ldr r0, [r4, #0x0]
+ mov r1, #0x20
+ ldr r0, [r0, #0xc]
+ add r2, sp, #0x0
+ bl FUN_02022534
+ ldr r1, [sp, #0x0]
+ add r4, r0, #0x0
+ cmp r1, #0x0
+ bne _0203F798
+ mov r1, #0x0
+ strh r1, [r5, #0x0]
+ bl FUN_02016A18
+ mov r0, #0x1
+ pop {r3-r5, pc}
+_0203F798:
+ cmp r1, #0x1
+ bne _0203F7AE
+ mov r1, #0x0
+ bl FUN_0202B21C
+ strh r0, [r5, #0x0]
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ mov r0, #0x1
+ pop {r3-r5, pc}
+_0203F7AE:
+ cmp r1, #0x2
+ bne _0203F7BE
+ mov r1, #0x0
+ strh r1, [r5, #0x0]
+ bl FUN_02016A18
+ mov r0, #0x1
+ pop {r3-r5, pc}
+_0203F7BE:
+ mov r0, #0x0
+ strh r0, [r5, #0x0]
+ mov r0, #0x1
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_0203F7C8
+FUN_0203F7C8: ; 0x0203F7C8
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r6, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ mov r1, #0x13
+ bl FUN_02039438
+ add r1, r5, #0x0
+ add r1, #0x80
+ add r4, r0, #0x0
+ ldr r1, [r1, #0x0]
+ mov r0, #0x20
+ add r2, r6, #0x0
+ bl FUN_02037A48
+ str r0, [r4, #0x0]
+ ldr r1, _0203F808 ; =FUN_0203BC04
+ add r0, r5, #0x0
+ bl SetupNativeScript
+ mov r0, #0x1
+ pop {r4-r6, pc}
+ .balign 4
+_0203F808: .word FUN_0203BC04
+
+ thumb_func_start FUN_0203F80C
+FUN_0203F80C: ; 0x0203F80C
+ push {r4-r6, lr}
+ add r4, r0, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394B8
+ add r6, r0, #0x0
+ add r0, r4, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394B8
+ add r4, #0x80
+ add r5, r0, #0x0
+ ldr r0, [r4, #0x0]
+ mov r1, #0x13
+ bl FUN_02039438
+ add r4, r0, #0x0
+ ldr r0, [r4, #0x0]
+ cmp r0, #0x0
+ bne _0203F84C
+ bl ErrorHandling
+_0203F84C:
+ ldr r0, [r4, #0x0]
+ bl FUN_02037A40
+ strh r0, [r6, #0x0]
+ ldrh r0, [r6, #0x0]
+ cmp r0, #0x7
+ bne _0203F85E
+ mov r0, #0xff
+ strh r0, [r6, #0x0]
+_0203F85E:
+ ldr r0, [r4, #0x0]
+ bl FUN_02037A70
+ strh r0, [r5, #0x0]
+ ldrh r0, [r5, #0x0]
+ cmp r0, #0x1
+ bne _0203F870
+ mov r0, #0x1
+ b _0203F872
+_0203F870:
+ mov r0, #0x0
+_0203F872:
+ strh r0, [r5, #0x0]
+ ldr r0, [r4, #0x0]
+ bl FUN_02016A18
+ mov r0, #0x0
+ str r0, [r4, #0x0]
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_0203F880
+FUN_0203F880: ; 0x0203F880
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ ldr r2, [r5, #0x8]
+ add r1, r2, #0x1
+ str r1, [r5, #0x8]
+ ldrb r4, [r2, #0x0]
+ bl ScriptReadHalfword
+ add r5, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r5, #0x0]
+ bl FUN_020394B8
+ add r5, r0, #0x0
+ cmp r4, #0x64
+ bls _0203F8A2
+ mov r4, #0x64
+_0203F8A2:
+ bl FUN_0201B9EC
+ mov r1, #0x65
+ blx _s32_div_f
+ lsl r0, r1, #0x10
+ lsr r0, r0, #0x10
+ cmp r0, r4
+ bgt _0203F8B8
+ mov r0, #0x1
+ b _0203F8BA
+_0203F8B8:
+ mov r0, #0x0
+_0203F8BA:
+ strh r0, [r5, #0x0]
+ mov r0, #0x0
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_0203F8C0
+FUN_0203F8C0: ; 0x0203F8C0
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394B8
+ add r5, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r5, #0x0]
+ cmp r4, #0x0
+ beq _0203F8FC
+ cmp r4, #0x1
+ beq _0203F906
+ cmp r4, #0x2
+ beq _0203F910
+ b _0203F91A
+_0203F8FC:
+ mov r2, #0x0
+ mov r3, #0x20
+ bl FUN_0224F12C
+ b _0203F91E
+_0203F906:
+ mov r2, #0x1
+ mov r3, #0x20
+ bl FUN_0224F12C
+ b _0203F91E
+_0203F910:
+ mov r2, #0x2
+ mov r3, #0x20
+ bl FUN_0224F12C
+ b _0203F91E
+_0203F91A:
+ bl ErrorHandling
+_0203F91E:
+ mov r0, #0x1
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_0203F924
+FUN_0203F924: ; 0x0203F924
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0xc]
+ bl FUN_020462AC
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r5, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r5, #0x0]
+ bl FUN_020394B8
+ add r5, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_0205F6A8
+ strh r0, [r5, #0x0]
+ mov r0, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_0203F954
+FUN_0203F954: ; 0x0203F954
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ cmp r0, #0x0
+ bne _0203F978
+ add r4, #0x80
+ ldr r0, [r4, #0x0]
+ ldr r0, [r0, #0x10]
+ bl FUN_02239944
+ b _0203F982
+_0203F978:
+ add r4, #0x80
+ ldr r0, [r4, #0x0]
+ ldr r0, [r0, #0x10]
+ bl FUN_02239AAC
+_0203F982:
+ mov r0, #0x1
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0203F988
+FUN_0203F988: ; 0x0203F988
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394B8
+ add r5, #0x80
+ add r4, r0, #0x0
+ ldr r0, [r5, #0x0]
+ ldr r0, [r0, #0xc]
+ bl FUN_0203384C
+ strh r0, [r4, #0x0]
+ mov r0, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_0203F9B0
+FUN_0203F9B0: ; 0x0203F9B0
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394B8
+ add r5, #0x80
+ add r4, r0, #0x0
+ ldr r0, [r5, #0x0]
+ ldr r0, [r0, #0xc]
+ bl FUN_020286EC
+ bl FUN_02028448
+ strh r0, [r4, #0x0]
+ mov r0, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_0203F9DC
+FUN_0203F9DC: ; 0x0203F9DC
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r5, #0x80
+ add r4, r0, #0x0
+ ldr r0, [r5, #0x0]
+ ldr r0, [r0, #0xc]
+ bl FUN_02026CC4
+ ldr r1, _0203FA10 ; =0x0000FF79
+ add r1, r4, r1
+ lsl r1, r1, #0x10
+ lsr r1, r1, #0x10
+ cmp r1, #0x1
+ bhi _0203FA0C
+ bl FUN_02025C30
+_0203FA0C:
+ mov r0, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+_0203FA10: .word 0x0000FF79
+
+ thumb_func_start FUN_0203FA14
+FUN_0203FA14: ; 0x0203FA14
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r5, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r5, #0x0]
+ bl FUN_020394B8
+ mov r1, #0x0
+ strh r1, [r0, #0x0]
+ ldr r1, _0203FA54 ; =0x0000012A
+ cmp r4, r1
+ blo _0203FA4E
+ add r1, #0xf
+ cmp r4, r1
+ bhi _0203FA4E
+ mov r1, #0x1
+ strh r1, [r0, #0x0]
+_0203FA4E:
+ mov r0, #0x0
+ pop {r3-r5, pc}
+ nop
+_0203FA54: .word 0x0000012A
+
+ thumb_func_start FUN_0203FA58
+FUN_0203FA58: ; 0x0203FA58
+ push {r3-r7, lr}
+ sub sp, #0x10
+ add r4, r0, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394B8
+ add r6, r0, #0x0
+ add r0, r4, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ str r0, [sp, #0x4]
+ add r0, r4, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ str r0, [sp, #0x8]
+ add r0, r4, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ str r0, [sp, #0xc]
+ add r0, r4, #0x0
+ bl ScriptReadHalfword
+ add r4, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r4, #0x0]
+ bl FUN_020394F0
+ add r7, r0, #0x0
+ mov r0, #0x20
+ bl FUN_0200AA80
+ add r4, r0, #0x0
+ ldr r2, _0203FB48 ; =0x00000147
+ mov r0, #0x0
+ mov r1, #0x1a
+ mov r3, #0x20
+ bl FUN_0200A86C
+ add r5, r0, #0x0
+ ldr r2, [sp, #0x4]
+ add r0, r4, #0x0
+ mov r1, #0x0
+ bl FUN_0200B518
+ ldr r2, [sp, #0x8]
+ add r0, r4, #0x0
+ mov r1, #0x1
+ bl FUN_0200B518
+ ldr r2, [sp, #0xc]
+ add r0, r4, #0x0
+ mov r1, #0x2
+ bl FUN_0200B518
+ add r0, r4, #0x0
+ mov r1, #0x3
+ add r2, r7, #0x0
+ bl FUN_0200B518
+ add r0, r4, #0x0
+ add r1, r5, #0x0
+ mov r2, #0x1
+ mov r3, #0x20
+ bl FUN_0200A9C4
+ add r7, r0, #0x0
+ add r0, r5, #0x0
+ mov r1, #0x0
+ bl FUN_0200A914
+ str r0, [sp, #0x0]
+ ldr r1, [sp, #0x0]
+ add r0, r7, #0x0
+ bl FUN_02021CE0
+ cmp r0, #0x0
+ bne _0203FB24
+ mov r0, #0x1
+ b _0203FB26
+_0203FB24:
+ mov r0, #0x0
+_0203FB26:
+ strh r0, [r6, #0x0]
+ add r0, r7, #0x0
+ bl FUN_02021A20
+ ldr r0, [sp, #0x0]
+ bl FUN_02021A20
+ add r0, r5, #0x0
+ bl FUN_0200A8B8
+ add r0, r4, #0x0
+ bl FUN_0200AB18
+ mov r0, #0x0
+ add sp, #0x10
+ pop {r3-r7, pc}
+ nop
+_0203FB48: .word 0x00000147
+
+ thumb_func_start FUN_0203FB4C
+FUN_0203FB4C: ; 0x0203FB4C
+ push {r3, lr}
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0xc]
+ bl FUN_02023788
+ mov r1, #0x1
+ bl FUN_02023828
+ mov r0, #0x0
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_0203FB64
+FUN_0203FB64: ; 0x0203FB64
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r1, r5, #0x0
+ add r1, #0x80
+ ldr r4, [r1, #0x0]
+ bl ScriptReadHalfword
+ add r5, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r5, #0x0]
+ bl FUN_020394B8
+ add r5, r0, #0x0
+ add r0, r4, #0x0
+ mov r1, #0xf
+ bl FUN_02039438
+ ldr r0, [r0, #0x0]
+ bl FUN_0205296C
+ strh r0, [r5, #0x0]
+ mov r0, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_0203FB94
+FUN_0203FB94: ; 0x0203FB94
+ push {r3, lr}
+ bl FUN_02033E74
+ mov r0, #0x0
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_0203FBA0
+FUN_0203FBA0: ; 0x0203FBA0
+ push {r3, lr}
+ bl FUN_02033ED0
+ mov r0, #0x0
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_0203FBAC
+FUN_0203FBAC: ; 0x0203FBAC
+ push {r3, lr}
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_02034E48
+ mov r0, #0x0
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_0203FBBC
+FUN_0203FBBC: ; 0x0203FBBC
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r6, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r5, #0x80
+ add r7, r0, #0x0
+ ldr r0, [r5, #0x0]
+ ldr r0, [r0, #0xc]
+ bl FUN_02034E30
+ bl FUN_02034DCC
+ str r4, [r0, #0x0]
+ str r6, [r0, #0x8]
+ mov r1, #0x0
+ str r7, [r0, #0xc]
+ mvn r1, r1
+ str r1, [r0, #0x4]
+ mov r1, #0x1
+ str r1, [r0, #0x10]
+ mov r0, #0x0
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_0203FC1C
+FUN_0203FC1C: ; 0x0203FC1C
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ ldr r2, [r5, #0x8]
+ add r1, r0, #0x0
+ add r0, r2, #0x1
+ str r0, [r5, #0x8]
+ add r5, #0x80
+ ldr r0, [r5, #0x0]
+ ldrb r4, [r2, #0x0]
+ ldr r0, [r0, #0x34]
+ bl FUN_02058060
+ add r5, r0, #0x0
+ bne _0203FC4C
+ bl ErrorHandling
+_0203FC4C:
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_020588B8
+ mov r0, #0x0
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_0203FC58
+FUN_0203FC58: ; 0x0203FC58
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r1, r5, #0x0
+ add r1, #0x80
+ ldr r4, [r1, #0x0]
+ bl ScriptReadHalfword
+ add r5, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r5, #0x0]
+ bl FUN_020394B8
+ add r5, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_02065078
+ strh r0, [r5, #0x0]
+ mov r0, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_0203FC80
+FUN_0203FC80: ; 0x0203FC80
+ push {r3-r5, lr}
+ add r0, #0x80
+ ldr r5, [r0, #0x0]
+ mov r1, #0x28
+ add r0, r5, #0x0
+ bl FUN_02039438
+ add r4, r0, #0x0
+ ldr r0, [r5, #0xc]
+ bl FUN_0202280C
+ cmp r0, #0x0
+ bne _0203FCAA
+ add r0, r5, #0x0
+ mov r1, #0x4
+ mov r2, #0x3
+ bl FUN_021E8588
+ str r0, [r4, #0x0]
+ bl FUN_021E84F4
+_0203FCAA:
+ mov r0, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_0203FCB0
+FUN_0203FCB0: ; 0x0203FCB0
+ push {r3-r5, lr}
+ add r0, #0x80
+ ldr r5, [r0, #0x0]
+ mov r1, #0x28
+ add r0, r5, #0x0
+ bl FUN_02039438
+ add r4, r0, #0x0
+ ldr r0, [r5, #0xc]
+ bl FUN_0202280C
+ cmp r0, #0x0
+ bne _0203FCD6
+ ldr r0, [r4, #0x0]
+ bl FUN_021E856C
+ ldr r0, [r4, #0x0]
+ bl FUN_021E85E4
+_0203FCD6:
+ mov r0, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_0203FCDC
+FUN_0203FCDC: ; 0x0203FCDC
+ push {r3, lr}
+ ldr r2, [r0, #0x8]
+ add r1, r2, #0x1
+ str r1, [r0, #0x8]
+ add r0, #0x80
+ ldrb r1, [r2, #0x0]
+ ldr r0, [r0, #0x0]
+ bl FUN_0206367C
+ mov r0, #0x0
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_0203FCF4
+FUN_0203FCF4: ; 0x0203FCF4
+ push {r4-r7, lr}
+ sub sp, #0x84
+ add r7, r0, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r7, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ mov r4, #0x0
+ add r6, r4, #0x0
+ add r5, r4, #0x0
+_0203FD10:
+ add r0, r7, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0xc]
+ bl FUN_020238F4
+ add r1, r5, #0x0
+ bl FUN_020239D0
+ cmp r0, #0x1
+ bne _0203FD2C
+ add r0, r6, #0x1
+ lsl r0, r0, #0x18
+ lsr r6, r0, #0x18
+_0203FD2C:
+ add r0, r5, #0x1
+ lsl r0, r0, #0x18
+ lsr r5, r0, #0x18
+ cmp r5, #0x8
+ blo _0203FD10
+ cmp r6, #0x8
+ bhi _0203FD70
+ add r0, r6, r6
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0203FD46: ; jump table (using 16-bit offset)
+ .short _0203FD58 - _0203FD46 - 2; case 0
+ .short _0203FD5C - _0203FD46 - 2; case 1
+ .short _0203FD5C - _0203FD46 - 2; case 2
+ .short _0203FD60 - _0203FD46 - 2; case 3
+ .short _0203FD60 - _0203FD46 - 2; case 4
+ .short _0203FD64 - _0203FD46 - 2; case 5
+ .short _0203FD64 - _0203FD46 - 2; case 6
+ .short _0203FD68 - _0203FD46 - 2; case 7
+ .short _0203FD6C - _0203FD46 - 2; case 8
+_0203FD58:
+ mov r1, #0x1
+ b _0203FD72
+_0203FD5C:
+ mov r1, #0x2
+ b _0203FD72
+_0203FD60:
+ mov r1, #0x3
+ b _0203FD72
+_0203FD64:
+ mov r1, #0x4
+ b _0203FD72
+_0203FD68:
+ mov r1, #0x5
+ b _0203FD72
+_0203FD6C:
+ mov r1, #0x6
+ b _0203FD72
+_0203FD70:
+ mov r1, #0x1
+_0203FD72:
+ ldr r0, _0203FDB4 ; =0x020F4218
+ mov r2, #0x0
+ add r6, sp, #0x4
+_0203FD78:
+ lsl r3, r2, #0x2
+ add r5, r0, r3
+ ldrh r3, [r5, #0x2]
+ cmp r1, r3
+ blt _0203FD8E
+ ldrh r5, [r5, #0x0]
+ lsl r3, r4, #0x1
+ strh r5, [r6, r3]
+ add r3, r4, #0x1
+ lsl r3, r3, #0x18
+ lsr r4, r3, #0x18
+_0203FD8E:
+ add r2, r2, #0x1
+ lsl r2, r2, #0x18
+ lsr r2, r2, #0x18
+ cmp r2, #0x13
+ blo _0203FD78
+ ldr r1, _0203FDB8 ; =0x0000FFFF
+ lsl r0, r4, #0x1
+ add r2, sp, #0x4
+ strh r1, [r2, r0]
+ mov r3, #0x0
+ str r3, [sp, #0x0]
+ ldr r0, [r7, #0x74]
+ add r7, #0x80
+ ldr r1, [r7, #0x0]
+ bl FUN_0223D3D0
+ mov r0, #0x1
+ add sp, #0x84
+ pop {r4-r7, pc}
+ .balign 4
+_0203FDB4: .word 0x020F4218
+_0203FDB8: .word 0x0000FFFF
+
+ thumb_func_start FUN_0203FDBC
+FUN_0203FDBC: ; 0x0203FDBC
+ push {r3-r4, lr}
+ sub sp, #0x4
+ add r4, r0, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r2, r0, #0x0
+ ldr r0, _0203FE00 ; =0x0000FFF8
+ add r0, r2, r0
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ cmp r0, #0x5
+ bhi _0203FDE4
+ mov r0, #0x1
+ b _0203FDE6
+_0203FDE4:
+ mov r0, #0x0
+_0203FDE6:
+ lsl r3, r2, #0x2
+ str r0, [sp, #0x0]
+ ldr r2, _0203FE04 ; =0x02105E10
+ ldr r0, [r4, #0x74]
+ add r4, #0x80
+ ldr r2, [r2, r3]
+ ldr r1, [r4, #0x0]
+ mov r3, #0x0
+ bl FUN_0223D3D0
+ mov r0, #0x1
+ add sp, #0x4
+ pop {r3-r4, pc}
+ .balign 4
+_0203FE00: .word 0x0000FFF8
+_0203FE04: .word 0x02105E10
+
+ thumb_func_start FUN_0203FE08
+FUN_0203FE08: ; 0x0203FE08
+ push {r3-r4, lr}
+ sub sp, #0x4
+ add r4, r0, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r2, r0, #0x0
+ cmp r2, #0x1
+ bhi _0203FE28
+ mov r0, #0x1
+ b _0203FE2A
+_0203FE28:
+ mov r0, #0x0
+_0203FE2A:
+ lsl r3, r2, #0x2
+ str r0, [sp, #0x0]
+ ldr r2, _0203FE44 ; =0x02105DEC
+ ldr r0, [r4, #0x74]
+ add r4, #0x80
+ ldr r2, [r2, r3]
+ ldr r1, [r4, #0x0]
+ mov r3, #0x1
+ bl FUN_0223D3D0
+ mov r0, #0x1
+ add sp, #0x4
+ pop {r3-r4, pc}
+ .balign 4
+_0203FE44: .word 0x02105DEC
+
+ thumb_func_start FUN_0203FE48
+FUN_0203FE48: ; 0x0203FE48
+ push {r3-r4, lr}
+ sub sp, #0x4
+ add r4, r0, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r2, r0, #0x0
+ mov r0, #0x0
+ lsl r3, r2, #0x2
+ str r0, [sp, #0x0]
+ ldr r2, _0203FE7C ; =0x02105DF4
+ ldr r0, [r4, #0x74]
+ add r4, #0x80
+ ldr r2, [r2, r3]
+ ldr r1, [r4, #0x0]
+ mov r3, #0x2
+ bl FUN_0223D3D0
+ mov r0, #0x1
+ add sp, #0x4
+ pop {r3-r4, pc}
+ .balign 4
+_0203FE7C: .word 0x02105DF4
+
+ thumb_func_start FUN_0203FE80
+FUN_0203FE80: ; 0x0203FE80
+ push {r3, lr}
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0x10]
+ bl FUN_02038AD0
+ mov r0, #0x1
+ pop {r3, pc}
+
+ thumb_func_start FUN_0203FE90
+FUN_0203FE90: ; 0x0203FE90
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ mov r1, #0x14
+ bl FUN_02039438
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r5, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r5, #0x0]
+ bl FUN_020394F0
+ add r1, r0, #0x0
+ lsl r1, r1, #0x18
+ ldr r0, [r4, #0x0]
+ lsr r1, r1, #0x18
+ bl FUN_02082140
+ mov r0, #0x0
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_0203FEC0
+FUN_0203FEC0: ; 0x0203FEC0
+ push {r4, lr}
+ add r4, r0, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ mov r1, #0x14
+ bl FUN_02039438
+ add r0, r4, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ str r0, [r4, #0x64]
+ ldr r1, _0203FEF0 ; =FUN_0203FEF4
+ add r0, r4, #0x0
+ bl SetupNativeScript
+ mov r0, #0x1
+ pop {r4, pc}
+ nop
+_0203FEF0: .word FUN_0203FEF4
+
+ thumb_func_start FUN_0203FEF4
+FUN_0203FEF4: ; 0x0203FEF4
+ push {r4, lr}
+ add r4, r0, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ mov r1, #0x14
+ bl FUN_02039438
+ ldr r1, [r4, #0x64]
+ ldr r0, [r0, #0x0]
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ bl FUN_02082158
+ pop {r4, pc}
+
+ thumb_func_start FUN_0203FF10
+FUN_0203FF10: ; 0x0203FF10
+ push {r3-r7, lr}
+ sub sp, #0x38
+ add r5, r0, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ mov r1, #0x14
+ bl FUN_02039438
+ str r0, [sp, #0x0]
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020377AC
+ bl FUN_020238F4
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ str r0, [sp, #0x4]
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ str r0, [sp, #0x8]
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ str r0, [sp, #0xc]
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r6, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0xc]
+ bl FUN_0206BB1C
+ add r1, r6, #0x0
+ bl FUN_0206B9B0
+ str r0, [sp, #0x10]
+ add r0, r4, #0x0
+ mov r1, #0x4
+ bl FUN_020239A0
+ add r7, r0, #0x0
+ ldr r1, [sp, #0x8]
+ add r0, sp, #0x14
+ strb r1, [r0, #0x0]
+ ldr r1, [sp, #0x4]
+ strb r1, [r0, #0x1]
+ ldr r1, [sp, #0xc]
+ strb r1, [r0, #0x2]
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0xc]
+ bl FUN_020462AC
+ bl FUN_0205ED0C
+ add r1, sp, #0x14
+ strb r0, [r1, #0x3]
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0xc]
+ bl FUN_02024DA0
+ bl FUN_02024CA4
+ add r1, sp, #0x14
+ strb r0, [r1, #0x4]
+ strb r6, [r1, #0x5]
+ ldr r0, [sp, #0x10]
+ str r7, [sp, #0x20]
+ str r0, [sp, #0x1c]
+ add r0, r5, #0x0
+ str r4, [sp, #0x24]
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0xc]
+ bl FUN_02027E24
+ str r0, [sp, #0x28]
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0xc]
+ bl LoadPlayerDataAddress
+ str r0, [sp, #0x2c]
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ add r5, #0x80
+ ldr r0, [r0, #0xc]
+ str r0, [sp, #0x30]
+ ldr r0, [r5, #0x0]
+ ldr r0, [r0, #0xc]
+ bl FUN_02029EF8
+ str r0, [sp, #0x34]
+ add r0, sp, #0x14
+ bl FUN_02081214
+ ldr r1, [sp, #0x0]
+ str r0, [r1, #0x0]
+ add r0, r7, #0x0
+ bl FUN_02021A20
+ mov r0, #0x0
+ add sp, #0x38
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_02040028
+FUN_02040028: ; 0x02040028
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ mov r1, #0x14
+ bl FUN_02039438
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0x1c]
+ ldr r0, [r0, #0x0]
+ bl FUN_02034824
+ add r5, #0x80
+ ldr r3, [r5, #0x0]
+ add r2, r0, #0x0
+ ldr r1, [r3, #0xc]
+ add r3, #0x98
+ ldr r0, [r4, #0x0]
+ ldr r3, [r3, #0x0]
+ bl FUN_02082630
+ ldr r0, [r4, #0x0]
+ bl FUN_020814E8
+ mov r0, #0x0
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_02040074
+FUN_02040074: ; 0x02040074
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ mov r1, #0x14
+ bl FUN_02039438
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ mov r1, #0xf
+ bl FUN_02039438
+ add r6, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r7, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r5, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r5, #0x0]
+ bl FUN_020394F0
+ add r3, r0, #0x0
+ ldr r0, [r4, #0x0]
+ ldr r2, [r6, #0x0]
+ add r1, r7, #0x0
+ bl FUN_0208201C
+ mov r0, #0x0
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_020400C8
+FUN_020400C8: ; 0x020400C8
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ mov r1, #0x14
+ bl FUN_02039438
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ mov r1, #0xf
+ bl FUN_02039438
+ add r6, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r7, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r5, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r5, #0x0]
+ bl FUN_020394F0
+ add r3, r0, #0x0
+ ldr r0, [r4, #0x0]
+ ldr r2, [r6, #0x0]
+ add r1, r7, #0x0
+ bl FUN_02082034
+ mov r0, #0x0
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_0204011C
+FUN_0204011C: ; 0x0204011C
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ mov r1, #0x14
+ bl FUN_02039438
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ mov r1, #0xf
+ bl FUN_02039438
+ add r6, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r7, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r5, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r5, #0x0]
+ bl FUN_020394F0
+ add r3, r0, #0x0
+ ldr r0, [r4, #0x0]
+ ldr r2, [r6, #0x0]
+ add r1, r7, #0x0
+ bl FUN_0208206C
+ mov r0, #0x0
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_02040170
+FUN_02040170: ; 0x02040170
+ push {r4-r6, lr}
+ sub sp, #0x8
+ add r5, r0, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ mov r1, #0x14
+ bl FUN_02039438
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ mov r1, #0xf
+ bl FUN_02039438
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r6, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r5, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r5, #0x0]
+ bl FUN_020394F0
+ add r1, r0, #0x0
+ mov r0, #0x0
+ str r0, [sp, #0x0]
+ mov r3, #0x1
+ str r3, [sp, #0x4]
+ ldr r0, [r4, #0x0]
+ add r2, r6, #0x0
+ bl FUN_0200AD38
+ mov r0, #0x0
+ add sp, #0x8
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_020401CC
+FUN_020401CC: ; 0x020401CC
+ push {r4, lr}
+ add r4, r0, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ mov r1, #0x14
+ bl FUN_02039438
+ ldr r0, [r0, #0x0]
+ bl FUN_02081DC4
+ ldr r1, _020401EC ; =FUN_020401F0
+ add r0, r4, #0x0
+ bl SetupNativeScript
+ mov r0, #0x1
+ pop {r4, pc}
+ .balign 4
+_020401EC: .word FUN_020401F0
+
+ thumb_func_start FUN_020401F0
+FUN_020401F0: ; 0x020401F0
+ push {r3, lr}
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ mov r1, #0x14
+ bl FUN_02039438
+ ldr r0, [r0, #0x0]
+ bl FUN_02081EB8
+ pop {r3, pc}
+
+ thumb_func_start FUN_02040204
+FUN_02040204: ; 0x02040204
+ push {r4, lr}
+ add r4, r0, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ mov r1, #0x14
+ bl FUN_02039438
+ add r1, r0, #0x0
+ ldr r0, [r4, #0x74]
+ ldr r1, [r1, #0x0]
+ bl FUN_02080E0C
+ mov r0, #0x1
+ pop {r4, pc}
+
+ thumb_func_start FUN_02040220
+FUN_02040220: ; 0x02040220
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ mov r1, #0x14
+ bl FUN_02039438
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ mov r1, #0xf
+ bl FUN_02039438
+ add r6, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r5, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r5, #0x0]
+ bl FUN_020394F0
+ add r2, r0, #0x0
+ ldr r0, [r4, #0x0]
+ ldr r1, [r6, #0x0]
+ bl FUN_02082090
+ mov r0, #0x0
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_0204025C
+FUN_0204025C: ; 0x0204025C
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ mov r1, #0x14
+ bl FUN_02039438
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ mov r1, #0xf
+ bl FUN_02039438
+ add r6, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r5, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r5, #0x0]
+ bl FUN_020394F0
+ add r2, r0, #0x0
+ ldr r0, [r4, #0x0]
+ ldr r1, [r6, #0x0]
+ bl FUN_020820B8
+ mov r0, #0x0
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_02040298
+FUN_02040298: ; 0x02040298
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ mov r1, #0x14
+ bl FUN_02039438
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ mov r1, #0xf
+ bl FUN_02039438
+ add r6, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r5, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r5, #0x0]
+ bl FUN_020394F0
+ add r2, r0, #0x0
+ ldr r0, [r4, #0x0]
+ ldr r1, [r6, #0x0]
+ bl FUN_020820DC
+ mov r0, #0x0
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_020402D4
+FUN_020402D4: ; 0x020402D4
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ mov r1, #0x14
+ bl FUN_02039438
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r5, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r5, #0x0]
+ bl FUN_020394B8
+ add r5, r0, #0x0
+ ldr r0, [r4, #0x0]
+ bl FUN_0208213C
+ strh r0, [r5, #0x0]
+ mov r0, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_02040304
+FUN_02040304: ; 0x02040304
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ mov r1, #0x14
+ bl FUN_02039438
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ mov r1, #0xf
+ bl FUN_02039438
+ add r6, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r5, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r5, #0x0]
+ bl FUN_020394F0
+ add r2, r0, #0x0
+ ldr r0, [r4, #0x0]
+ ldr r1, [r6, #0x0]
+ bl FUN_0208210C
+ mov r0, #0x0
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_02040340
+FUN_02040340: ; 0x02040340
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ mov r1, #0x14
+ bl FUN_02039438
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r5, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r5, #0x0]
+ bl FUN_020394B8
+ add r5, r0, #0x0
+ ldr r0, [r4, #0x0]
+ bl FUN_0208217C
+ strh r0, [r5, #0x0]
+ mov r0, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_02040370
+FUN_02040370: ; 0x02040370
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ mov r1, #0x14
+ bl FUN_02039438
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r5, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r5, #0x0]
+ bl FUN_020394B8
+ add r5, r0, #0x0
+ ldr r0, [r4, #0x0]
+ bl FUN_02082190
+ strh r0, [r5, #0x0]
+ mov r0, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_020403A0
+FUN_020403A0: ; 0x020403A0
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ mov r1, #0x14
+ bl FUN_02039438
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r5, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r5, #0x0]
+ bl FUN_020394B8
+ add r5, r0, #0x0
+ ldr r0, [r4, #0x0]
+ bl FUN_020821B4
+ strh r0, [r5, #0x0]
+ mov r0, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_020403D0
+FUN_020403D0: ; 0x020403D0
+ push {r4-r6, lr}
+ add r4, r0, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ mov r1, #0x14
+ bl FUN_02039438
+ add r5, r0, #0x0
+ add r0, r4, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r6, r0, #0x0
+ add r0, r4, #0x0
+ bl ScriptReadHalfword
+ add r4, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r4, #0x0]
+ bl FUN_020394B8
+ add r4, r0, #0x0
+ ldr r0, [r5, #0x0]
+ add r1, r6, #0x0
+ bl FUN_020821C4
+ strh r0, [r4, #0x0]
+ mov r0, #0x0
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_02040414
+FUN_02040414: ; 0x02040414
+ push {r4-r6, lr}
+ add r4, r0, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ mov r1, #0x14
+ bl FUN_02039438
+ add r5, r0, #0x0
+ add r0, r4, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r6, r0, #0x0
+ add r0, r4, #0x0
+ bl ScriptReadHalfword
+ add r4, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r4, #0x0]
+ bl FUN_020394B8
+ add r4, r0, #0x0
+ ldr r0, [r5, #0x0]
+ add r1, r6, #0x0
+ bl FUN_020821DC
+ strh r0, [r4, #0x0]
+ mov r0, #0x0
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_02040458
+FUN_02040458: ; 0x02040458
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ mov r1, #0x14
+ bl FUN_02039438
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r5, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r5, #0x0]
+ bl FUN_020394B8
+ add r5, r0, #0x0
+ ldr r0, [r4, #0x0]
+ bl FUN_020821F0
+ strh r0, [r5, #0x0]
+ mov r0, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_02040488
+FUN_02040488: ; 0x02040488
+ push {r3-r7, lr}
+ sub sp, #0x8
+ add r5, r0, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ mov r1, #0x14
+ bl FUN_02039438
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394B8
+ add r6, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394B8
+ add r7, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394B8
+ str r0, [sp, #0x4]
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r5, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r5, #0x0]
+ bl FUN_020394B8
+ str r0, [sp, #0x0]
+ ldr r0, [r4, #0x0]
+ ldr r3, [sp, #0x4]
+ add r1, r6, #0x0
+ add r2, r7, #0x0
+ bl FUN_02082214
+ mov r0, #0x0
+ add sp, #0x8
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_020404FC
+FUN_020404FC: ; 0x020404FC
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ mov r1, #0x14
+ bl FUN_02039438
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r5, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r5, #0x0]
+ bl FUN_020394B8
+ add r5, r0, #0x0
+ ldr r0, [r4, #0x0]
+ bl FUN_02082254
+ strh r0, [r5, #0x0]
+ mov r0, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_0204052C
+FUN_0204052C: ; 0x0204052C
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ mov r1, #0x14
+ bl FUN_02039438
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ mov r1, #0xf
+ bl FUN_02039438
+ add r6, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r5, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r5, #0x0]
+ bl FUN_020394F0
+ add r2, r0, #0x0
+ ldr r0, [r4, #0x0]
+ ldr r1, [r6, #0x0]
+ mov r3, #0xb
+ bl FUN_02082284
+ mov r0, #0x0
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_0204056C
+FUN_0204056C: ; 0x0204056C
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ mov r1, #0x14
+ bl FUN_02039438
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r5, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r5, #0x0]
+ bl FUN_020394B8
+ add r5, r0, #0x0
+ ldr r0, [r4, #0x0]
+ bl FUN_020822F0
+ strh r0, [r5, #0x0]
+ mov r0, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_0204059C
+FUN_0204059C: ; 0x0204059C
+ push {r3, lr}
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ mov r1, #0x14
+ bl FUN_02039438
+ ldr r0, [r0, #0x0]
+ bl FUN_0208223C
+ mov r0, #0x0
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_020405B4
+FUN_020405B4: ; 0x020405B4
+ push {r3, lr}
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ mov r1, #0x14
+ bl FUN_02039438
+ ldr r0, [r0, #0x0]
+ bl FUN_0208224C
+ mov r0, #0x0
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_020405CC
+FUN_020405CC: ; 0x020405CC
+ push {r3-r5, lr}
+ add r4, r0, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ mov r1, #0x14
+ bl FUN_02039438
+ add r5, r0, #0x0
+ add r0, r4, #0x0
+ bl ScriptReadHalfword
+ add r4, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r4, #0x0]
+ bl FUN_020394F0
+ add r1, r0, #0x0
+ ldr r0, [r5, #0x0]
+ bl FUN_02082444
+ mov r0, #0x0
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_020405F8
+FUN_020405F8: ; 0x020405F8
+ push {r4, lr}
+ add r4, r0, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ mov r1, #0x14
+ bl FUN_02039438
+ ldr r1, _02040614 ; =FUN_02040618
+ add r0, r4, #0x0
+ bl SetupNativeScript
+ mov r0, #0x1
+ pop {r4, pc}
+ nop
+_02040614: .word FUN_02040618
+
+ thumb_func_start FUN_02040618
+FUN_02040618: ; 0x02040618
+ push {r3, lr}
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ mov r1, #0x14
+ bl FUN_02039438
+ ldr r0, [r0, #0x0]
+ bl FUN_02082508
+ cmp r0, #0x1
+ bne _02040632
+ mov r0, #0x1
+ pop {r3, pc}
+_02040632:
+ mov r0, #0x0
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_02040638
+FUN_02040638: ; 0x02040638
+ push {r3, lr}
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0x4]
+ ldr r0, [r0, #0x1c]
+ bl FUN_021F4608
+ mov r0, #0x0
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_0204064C
+FUN_0204064C: ; 0x0204064C
+ push {r3, lr}
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0x4]
+ ldr r0, [r0, #0x1c]
+ bl FUN_021F45E8
+ mov r0, #0x0
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_02040660
+FUN_02040660: ; 0x02040660
+ push {r4-r5, lr}
+ sub sp, #0x1c
+ add r5, r0, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ mov r1, #0x14
+ bl FUN_02039438
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r5, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r5, #0x0]
+ bl FUN_020394B8
+ add r5, r0, #0x0
+ add r0, sp, #0xc
+ str r0, [sp, #0x0]
+ add r0, sp, #0x8
+ str r0, [sp, #0x4]
+ ldr r0, [r4, #0x0]
+ add r1, sp, #0x18
+ add r2, sp, #0x14
+ add r3, sp, #0x10
+ bl FUN_020825A0
+ ldr r0, [sp, #0x14]
+ cmp r0, #0x1
+ beq _020406B0
+ ldr r0, [sp, #0x10]
+ cmp r0, #0x1
+ beq _020406B0
+ ldr r0, [sp, #0xc]
+ cmp r0, #0x1
+ beq _020406B0
+ ldr r0, [sp, #0x8]
+ cmp r0, #0x1
+ bne _020406B6
+_020406B0:
+ mov r0, #0x1
+ strh r0, [r5, #0x0]
+ b _020406BA
+_020406B6:
+ mov r0, #0x0
+ strh r0, [r5, #0x0]
+_020406BA:
+ mov r0, #0x0
+ add sp, #0x1c
+ pop {r4-r5, pc}
+
+ thumb_func_start FUN_020406C0
+FUN_020406C0: ; 0x020406C0
+ push {r3, lr}
+ ldr r0, [r0, #0x74]
+ bl FUN_0224D3E8
+ mov r0, #0x1
+ pop {r3, pc}
+
+ thumb_func_start FUN_020406CC
+FUN_020406CC: ; 0x020406CC
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ add r0, #0x80
+ ldr r6, [r0, #0x0]
+ mov r1, #0xf
+ add r0, r6, #0x0
+ bl FUN_02039438
+ ldr r1, [r5, #0x8]
+ add r4, r0, #0x0
+ add r0, r1, #0x1
+ str r0, [r5, #0x8]
+ ldrb r5, [r1, #0x0]
+ add r0, r6, #0x0
+ bl FUN_020377AC
+ bl FUN_020238F4
+ add r2, r0, #0x0
+ ldr r0, [r4, #0x0]
+ add r1, r5, #0x0
+ bl FUN_0200ABC0
+ mov r0, #0x0
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_02040700
+FUN_02040700: ; 0x02040700
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r0, #0x80
+ ldr r4, [r0, #0x0]
+ mov r1, #0xf
+ add r0, r4, #0x0
+ bl FUN_02039438
+ ldr r2, [r5, #0x8]
+ add r1, r2, #0x1
+ str r1, [r5, #0x8]
+ ldrb r1, [r2, #0x0]
+ ldr r0, [r0, #0x0]
+ ldr r2, [r4, #0xc]
+ bl FUN_0200ABE4
+ mov r0, #0x0
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_02040724
+FUN_02040724: ; 0x02040724
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r0, #0x80
+ ldr r4, [r0, #0x0]
+ mov r1, #0xf
+ add r0, r4, #0x0
+ bl FUN_02039438
+ ldr r2, [r5, #0x8]
+ add r1, r2, #0x1
+ str r1, [r5, #0x8]
+ ldrb r1, [r2, #0x0]
+ ldr r0, [r0, #0x0]
+ ldr r2, [r4, #0xc]
+ bl FUN_0200AC0C
+ mov r0, #0x0
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_02040748
+FUN_02040748: ; 0x02040748
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ add r0, #0x80
+ ldr r6, [r0, #0x0]
+ mov r1, #0xf
+ add r0, r6, #0x0
+ bl FUN_02039438
+ ldr r1, [r5, #0x8]
+ add r7, r0, #0x0
+ add r0, r1, #0x1
+ str r0, [r5, #0x8]
+ add r0, r5, #0x0
+ ldrb r4, [r1, #0x0]
+ bl ScriptReadHalfword
+ add r5, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r5, #0x0]
+ bl FUN_020394F0
+ add r5, r0, #0x0
+ ldr r0, [r6, #0xc]
+ bl FUN_0206BB1C
+ add r1, r5, #0x0
+ bl FUN_0206B9B0
+ add r2, r0, #0x0
+ ldr r0, [r7, #0x0]
+ add r1, r4, #0x0
+ bl FUN_0200AC60
+ mov r0, #0x0
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_02040790
+FUN_02040790: ; 0x02040790
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ mov r1, #0xf
+ bl FUN_02039438
+ ldr r1, [r5, #0x8]
+ add r6, r0, #0x0
+ add r0, r1, #0x1
+ str r0, [r5, #0x8]
+ add r0, r5, #0x0
+ ldrb r4, [r1, #0x0]
+ bl ScriptReadHalfword
+ add r5, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r5, #0x0]
+ bl FUN_020394F0
+ add r2, r0, #0x0
+ ldr r0, [r6, #0x0]
+ add r1, r4, #0x0
+ bl FUN_0200AE38
+ mov r0, #0x0
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_020407C8
+FUN_020407C8: ; 0x020407C8
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ mov r1, #0xf
+ bl FUN_02039438
+ ldr r1, [r5, #0x8]
+ add r6, r0, #0x0
+ add r0, r1, #0x1
+ str r0, [r5, #0x8]
+ add r0, r5, #0x0
+ ldrb r4, [r1, #0x0]
+ bl ScriptReadHalfword
+ add r5, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r5, #0x0]
+ bl FUN_020394F0
+ add r2, r0, #0x0
+ ldr r0, [r6, #0x0]
+ add r1, r4, #0x0
+ bl FUN_0200AEE0
+ mov r0, #0x0
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_02040800
+FUN_02040800: ; 0x02040800
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ mov r1, #0xf
+ bl FUN_02039438
+ ldr r1, [r5, #0x8]
+ add r6, r0, #0x0
+ add r0, r1, #0x1
+ str r0, [r5, #0x8]
+ add r0, r5, #0x0
+ ldrb r4, [r1, #0x0]
+ bl ScriptReadHalfword
+ add r5, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r5, #0x0]
+ bl FUN_020394F0
+ bl FUN_0206EA30
+ add r2, r0, #0x0
+ ldr r0, [r6, #0x0]
+ add r1, r4, #0x0
+ bl FUN_0200AD5C
+ mov r0, #0x0
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_0204083C
+FUN_0204083C: ; 0x0204083C
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ mov r1, #0xf
+ bl FUN_02039438
+ ldr r1, [r5, #0x8]
+ add r6, r0, #0x0
+ add r0, r1, #0x1
+ str r0, [r5, #0x8]
+ add r0, r5, #0x0
+ ldrb r4, [r1, #0x0]
+ bl ScriptReadHalfword
+ add r5, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r5, #0x0]
+ bl FUN_020394F0
+ add r2, r0, #0x0
+ ldr r0, [r6, #0x0]
+ add r1, r4, #0x0
+ bl FUN_0200AD5C
+ mov r0, #0x0
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_02040874
+FUN_02040874: ; 0x02040874
+ push {r4-r6, lr}
+ sub sp, #0x8
+ add r5, r0, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ mov r1, #0xf
+ bl FUN_02039438
+ ldr r1, [r5, #0x8]
+ add r6, r0, #0x0
+ add r0, r1, #0x1
+ str r0, [r5, #0x8]
+ add r0, r5, #0x0
+ ldrb r4, [r1, #0x0]
+ bl ScriptReadHalfword
+ add r5, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r5, #0x0]
+ bl FUN_020394F0
+ add r5, r0, #0x0
+ bl FUN_02054C14
+ add r3, r0, #0x0
+ mov r0, #0x1
+ str r0, [sp, #0x0]
+ str r0, [sp, #0x4]
+ ldr r0, [r6, #0x0]
+ add r1, r4, #0x0
+ add r2, r5, #0x0
+ bl FUN_0200AD38
+ mov r0, #0x0
+ add sp, #0x8
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_020408BC
+FUN_020408BC: ; 0x020408BC
+ push {r4-r7, lr}
+ sub sp, #0xc
+ add r5, r0, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ mov r1, #0xf
+ bl FUN_02039438
+ ldr r1, [r5, #0x8]
+ add r7, r0, #0x0
+ add r0, r1, #0x1
+ str r0, [r5, #0x8]
+ add r0, r5, #0x0
+ ldrb r6, [r1, #0x0]
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ str r0, [sp, #0x8]
+ ldr r1, [r5, #0x8]
+ add r2, r1, #0x1
+ str r2, [r5, #0x8]
+ ldrb r4, [r1, #0x0]
+ add r1, r2, #0x1
+ str r1, [r5, #0x8]
+ ldrb r3, [r2, #0x0]
+ cmp r4, #0x0
+ bne _02040904
+ bl FUN_02054C14
+ lsl r0, r0, #0x18
+ lsr r3, r0, #0x18
+_02040904:
+ str r4, [sp, #0x0]
+ mov r0, #0x1
+ str r0, [sp, #0x4]
+ ldr r0, [r7, #0x0]
+ ldr r2, [sp, #0x8]
+ add r1, r6, #0x0
+ bl FUN_0200AD38
+ mov r0, #0x0
+ add sp, #0xc
+ pop {r4-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_0204091C
+FUN_0204091C: ; 0x0204091C
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ add r0, #0x80
+ ldr r6, [r0, #0x0]
+ mov r1, #0xf
+ add r0, r6, #0x0
+ bl FUN_02039438
+ ldr r1, [r5, #0x8]
+ add r7, r0, #0x0
+ add r0, r1, #0x1
+ str r0, [r5, #0x8]
+ add r0, r5, #0x0
+ ldrb r4, [r1, #0x0]
+ bl ScriptReadHalfword
+ add r5, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r5, #0x0]
+ bl FUN_020394F0
+ add r5, r0, #0x0
+ ldr r0, [r6, #0xc]
+ bl FUN_0206BB1C
+ add r1, r5, #0x0
+ bl FUN_0206B9B0
+ add r2, r0, #0x0
+ ldr r0, [r7, #0x0]
+ add r1, r4, #0x0
+ bl FUN_0200ACF8
+ mov r0, #0x0
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_02040964
+FUN_02040964: ; 0x02040964
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ add r0, #0x80
+ ldr r4, [r0, #0x0]
+ ldr r0, [r4, #0xc]
+ bl FUN_02022510
+ str r0, [sp, #0x0]
+ add r0, r4, #0x0
+ mov r1, #0xf
+ bl FUN_02039438
+ ldr r1, [r5, #0x8]
+ add r6, r0, #0x0
+ add r0, r1, #0x1
+ str r0, [r5, #0x8]
+ add r0, r5, #0x0
+ ldrb r4, [r1, #0x0]
+ bl ScriptReadHalfword
+ add r5, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r5, #0x0]
+ bl FUN_020394F0
+ add r5, r0, #0x0
+ mov r1, #0x1e
+ blx _s32_div_f
+ add r7, r0, #0x0
+ add r0, r5, #0x0
+ mov r1, #0x1e
+ blx _s32_div_f
+ add r2, r1, #0x0
+ ldr r0, [sp, #0x0]
+ add r1, r7, #0x0
+ bl FUN_0206B5E4
+ add r2, r0, #0x0
+ ldr r0, [r6, #0x0]
+ add r1, r4, #0x0
+ bl FUN_0200ACF8
+ mov r0, #0x0
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_020409C0
+FUN_020409C0: ; 0x020409C0
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ mov r1, #0xf
+ bl FUN_02039438
+ ldr r1, [r5, #0x8]
+ add r6, r0, #0x0
+ add r0, r1, #0x1
+ str r0, [r5, #0x8]
+ add r0, r5, #0x0
+ ldrb r4, [r1, #0x0]
+ bl ScriptReadHalfword
+ add r5, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r5, #0x0]
+ bl FUN_020394F0
+ add r2, r0, #0x0
+ ldr r0, [r6, #0x0]
+ add r1, r4, #0x0
+ bl FUN_0200B02C
+ mov r0, #0x0
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_020409F8
+FUN_020409F8: ; 0x020409F8
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ mov r1, #0xf
+ bl FUN_02039438
+ ldr r1, [r5, #0x8]
+ add r6, r0, #0x0
+ add r0, r1, #0x1
+ str r0, [r5, #0x8]
+ add r0, r5, #0x0
+ ldrb r4, [r1, #0x0]
+ bl ScriptReadHalfword
+ add r5, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r5, #0x0]
+ bl FUN_020394F0
+ add r2, r0, #0x0
+ ldr r0, [r6, #0x0]
+ add r1, r4, #0x0
+ bl FUN_0200B064
+ mov r0, #0x0
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_02040A30
+FUN_02040A30: ; 0x02040A30
+ push {r3-r7, lr}
+ add r7, r0, #0x0
+ add r0, #0x80
+ ldr r5, [r0, #0x0]
+ add r0, r5, #0x0
+ bl FUN_020377AC
+ bl FUN_020238F4
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ mov r1, #0xf
+ bl FUN_02039438
+ ldr r1, [r7, #0x8]
+ add r6, r0, #0x0
+ add r0, r1, #0x1
+ str r0, [r7, #0x8]
+ add r0, r4, #0x0
+ ldrb r5, [r1, #0x0]
+ bl FUN_020239CC
+ add r7, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_02023A28
+ add r1, r0, #0x0
+ add r0, r7, #0x0
+ mov r2, #0x2
+ bl FUN_020536D0
+ add r2, r0, #0x0
+ ldr r0, [r6, #0x0]
+ add r1, r5, #0x0
+ bl FUN_0200B09C
+ mov r0, #0x0
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_02040A7C
+FUN_02040A7C: ; 0x02040A7C
+ push {r4-r7, lr}
+ sub sp, #0xc
+ add r5, r0, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ mov r1, #0xf
+ bl FUN_02039438
+ ldr r1, [r5, #0x8]
+ add r7, r0, #0x0
+ add r0, r1, #0x1
+ str r0, [r5, #0x8]
+ add r0, r5, #0x0
+ ldrb r4, [r1, #0x0]
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r6, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ ldr r1, [r5, #0x8]
+ str r0, [sp, #0x8]
+ add r0, r1, #0x1
+ str r0, [r5, #0x8]
+ ldrb r5, [r1, #0x0]
+ add r0, r6, #0x0
+ mov r1, #0x4
+ bl FUN_02040AE4
+ add r6, r0, #0x0
+ str r5, [sp, #0x0]
+ mov r0, #0x2
+ str r0, [sp, #0x4]
+ ldr r0, [r7, #0x0]
+ ldr r3, [sp, #0x8]
+ add r1, r4, #0x0
+ add r2, r6, #0x0
+ bl FUN_0200ABB4
+ add r0, r6, #0x0
+ bl FUN_02021A20
+ mov r0, #0x0
+ add sp, #0xc
+ pop {r4-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_02040AE4
+FUN_02040AE4: ; 0x02040AE4
+ push {r3-r5, lr}
+ ldr r2, _02040B08 ; =0x0000016A
+ add r4, r0, #0x0
+ add r3, r1, #0x0
+ mov r0, #0x1
+ mov r1, #0x1a
+ bl FUN_0200A86C
+ add r5, r0, #0x0
+ add r1, r4, #0x0
+ bl FUN_0200A914
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_0200A8B8
+ add r0, r4, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+_02040B08: .word 0x0000016A
+
+ thumb_func_start FUN_02040B0C
+FUN_02040B0C: ; 0x02040B0C
+ push {r4-r6, lr}
+ sub sp, #0x8
+ add r4, r0, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ mov r1, #0xf
+ bl FUN_02039438
+ ldr r1, [r4, #0x8]
+ add r6, r0, #0x0
+ add r0, r1, #0x1
+ str r0, [r4, #0x8]
+ add r4, #0x80
+ ldr r0, [r4, #0x0]
+ ldrb r5, [r1, #0x0]
+ ldr r0, [r0, #0xc]
+ bl FUN_020462AC
+ bl FUN_0205F388
+ mov r1, #0x4
+ bl FUN_02040AE4
+ add r4, r0, #0x0
+ mov r0, #0x1
+ str r0, [sp, #0x0]
+ mov r0, #0x2
+ str r0, [sp, #0x4]
+ ldr r0, [r6, #0x0]
+ add r1, r5, #0x0
+ add r2, r4, #0x0
+ mov r3, #0x0
+ bl FUN_0200ABB4
+ add r0, r4, #0x0
+ bl FUN_02021A20
+ mov r0, #0x0
+ add sp, #0x8
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_02040B5C
+FUN_02040B5C: ; 0x02040B5C
+ push {r4-r6, lr}
+ sub sp, #0x8
+ add r4, r0, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ mov r1, #0xf
+ bl FUN_02039438
+ ldr r1, [r4, #0x8]
+ add r6, r0, #0x0
+ add r0, r1, #0x1
+ str r0, [r4, #0x8]
+ add r4, #0x80
+ ldr r0, [r4, #0x0]
+ ldrb r5, [r1, #0x0]
+ ldr r0, [r0, #0xc]
+ bl FUN_020462AC
+ bl FUN_0205F398
+ mov r1, #0x4
+ bl FUN_02040AE4
+ add r4, r0, #0x0
+ mov r0, #0x1
+ str r0, [sp, #0x0]
+ mov r0, #0x2
+ str r0, [sp, #0x4]
+ ldr r0, [r6, #0x0]
+ add r1, r5, #0x0
+ add r2, r4, #0x0
+ mov r3, #0x0
+ bl FUN_0200ABB4
+ add r0, r4, #0x0
+ bl FUN_02021A20
+ mov r0, #0x0
+ add sp, #0x8
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_02040BAC
+FUN_02040BAC: ; 0x02040BAC
+ push {r4-r6, lr}
+ sub sp, #0x8
+ add r4, r0, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ mov r1, #0xf
+ bl FUN_02039438
+ ldr r1, [r4, #0x8]
+ add r6, r0, #0x0
+ add r0, r1, #0x1
+ str r0, [r4, #0x8]
+ add r4, #0x80
+ ldr r0, [r4, #0x0]
+ ldrb r5, [r1, #0x0]
+ ldr r0, [r0, #0xc]
+ bl FUN_020462AC
+ bl FUN_0205F3C0
+ mov r1, #0x4
+ bl FUN_02040AE4
+ add r4, r0, #0x0
+ mov r0, #0x1
+ str r0, [sp, #0x0]
+ mov r0, #0x2
+ str r0, [sp, #0x4]
+ ldr r0, [r6, #0x0]
+ add r1, r5, #0x0
+ add r2, r4, #0x0
+ mov r3, #0x0
+ bl FUN_0200ABB4
+ add r0, r4, #0x0
+ bl FUN_02021A20
+ mov r0, #0x0
+ add sp, #0x8
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_02040BFC
+FUN_02040BFC: ; 0x02040BFC
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ mov r1, #0xf
+ bl FUN_02039438
+ ldr r1, [r5, #0x8]
+ add r6, r0, #0x0
+ add r0, r1, #0x1
+ str r0, [r5, #0x8]
+ add r0, r5, #0x0
+ ldrb r4, [r1, #0x0]
+ bl ScriptReadHalfword
+ add r5, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r5, #0x0]
+ bl FUN_020394F0
+ add r2, r0, #0x0
+ ldr r0, [r6, #0x0]
+ add r1, r4, #0x0
+ bl FUN_0200B350
+ mov r0, #0x0
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_02040C34
+FUN_02040C34: ; 0x02040C34
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ mov r1, #0xf
+ bl FUN_02039438
+ ldr r1, [r5, #0x8]
+ add r6, r0, #0x0
+ add r0, r1, #0x1
+ str r0, [r5, #0x8]
+ add r0, r5, #0x0
+ ldrb r4, [r1, #0x0]
+ bl ScriptReadHalfword
+ add r5, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r5, #0x0]
+ bl FUN_020394F0
+ add r2, r0, #0x0
+ ldr r0, [r6, #0x0]
+ add r1, r4, #0x0
+ bl FUN_0200B1D4
+ mov r0, #0x0
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_02040C6C
+FUN_02040C6C: ; 0x02040C6C
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ mov r1, #0xf
+ bl FUN_02039438
+ ldr r1, [r5, #0x8]
+ add r6, r0, #0x0
+ add r0, r1, #0x1
+ str r0, [r5, #0x8]
+ add r0, r5, #0x0
+ ldrb r4, [r1, #0x0]
+ bl ScriptReadHalfword
+ add r5, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r5, #0x0]
+ bl FUN_020394F0
+ add r2, r0, #0x0
+ ldr r0, [r6, #0x0]
+ add r1, r4, #0x0
+ bl FUN_0200B164
+ mov r0, #0x0
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_02040CA4
+FUN_02040CA4: ; 0x02040CA4
+ push {r3-r7, lr}
+ sub sp, #0x8
+ add r5, r0, #0x0
+ mov r0, #0x16
+ mov r1, #0x4
+ bl FUN_020219F4
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ mov r1, #0xf
+ bl FUN_02039438
+ ldr r1, [r5, #0x8]
+ add r7, r0, #0x0
+ add r0, r1, #0x1
+ str r0, [r5, #0x8]
+ add r0, r5, #0x0
+ ldrb r6, [r1, #0x0]
+ bl ScriptReadHalfword
+ add r5, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r5, #0x0]
+ bl FUN_020394F0
+ mov r1, #0x4
+ add r2, r4, #0x0
+ bl FUN_02064E60
+ mov r0, #0x1
+ str r0, [sp, #0x0]
+ mov r0, #0x2
+ str r0, [sp, #0x4]
+ ldr r0, [r7, #0x0]
+ add r1, r6, #0x0
+ add r2, r4, #0x0
+ mov r3, #0x0
+ bl FUN_0200ABB4
+ add r0, r4, #0x0
+ bl FUN_02021A20
+ mov r0, #0x0
+ add sp, #0x8
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_02040D04
+FUN_02040D04: ; 0x02040D04
+ push {r3-r7, lr}
+ sub sp, #0x8
+ add r4, r0, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ mov r1, #0xf
+ bl FUN_02039438
+ ldr r1, [r4, #0x8]
+ add r7, r0, #0x0
+ add r0, r1, #0x1
+ str r0, [r4, #0x8]
+ add r0, r4, #0x0
+ ldrb r6, [r1, #0x0]
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r5, r0, #0x0
+ add r0, r4, #0x0
+ bl ScriptReadHalfword
+ add r4, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r4, #0x0]
+ bl FUN_020394F0
+ sub r5, #0x95
+ add r4, r0, #0x0
+ lsl r0, r5, #0x10
+ lsr r0, r0, #0x10
+ mov r1, #0x20
+ bl FUN_020852E8
+ add r5, r0, #0x0
+ cmp r4, #0x2
+ bhs _02040D5A
+ mov r0, #0x1
+ b _02040D5C
+_02040D5A:
+ mov r0, #0x0
+_02040D5C:
+ str r0, [sp, #0x0]
+ mov r0, #0x2
+ str r0, [sp, #0x4]
+ ldr r0, [r7, #0x0]
+ add r1, r6, #0x0
+ add r2, r5, #0x0
+ mov r3, #0x0
+ bl FUN_0200ABB4
+ add r0, r5, #0x0
+ bl FUN_02021A20
+ mov r0, #0x0
+ add sp, #0x8
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_02040D7C
+FUN_02040D7C: ; 0x02040D7C
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ mov r1, #0xf
+ bl FUN_02039438
+ ldr r1, [r5, #0x8]
+ add r6, r0, #0x0
+ add r0, r1, #0x1
+ str r0, [r5, #0x8]
+ add r0, r5, #0x0
+ ldrb r4, [r1, #0x0]
+ bl ScriptReadHalfword
+ add r5, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r5, #0x0]
+ bl FUN_020394F0
+ add r2, r0, #0x0
+ ldr r0, [r6, #0x0]
+ add r1, r4, #0x0
+ bl FUN_0200AE04
+ mov r0, #0x0
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_02040DB4
+FUN_02040DB4: ; 0x02040DB4
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ mov r1, #0xf
+ bl FUN_02039438
+ ldr r1, [r5, #0x8]
+ add r6, r0, #0x0
+ add r0, r1, #0x1
+ str r0, [r5, #0x8]
+ add r0, r5, #0x0
+ ldrb r4, [r1, #0x0]
+ bl ScriptReadHalfword
+ add r5, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r5, #0x0]
+ bl FUN_020394F0
+ add r2, r0, #0x0
+ ldr r0, [r6, #0x0]
+ add r1, r4, #0x0
+ bl FUN_0200B660
+ mov r0, #0x0
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_02040DEC
+FUN_02040DEC: ; 0x02040DEC
+ push {r3-r7, lr}
+ sub sp, #0x8
+ add r5, r0, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ mov r1, #0xf
+ bl FUN_02039438
+ ldr r1, [r5, #0x8]
+ add r7, r0, #0x0
+ add r0, r1, #0x1
+ str r0, [r5, #0x8]
+ mov r0, #0xb
+ ldrb r6, [r1, #0x0]
+ add r1, r0, #0x0
+ bl FUN_020219F4
+ add r5, #0x80
+ add r4, r0, #0x0
+ ldr r0, [r5, #0x0]
+ ldr r0, [r0, #0xc]
+ bl FUN_02024EB4
+ bl FUN_02024F0C
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_02021E28
+ ldr r0, _02040E48 ; =0x020ECAC4
+ mov r3, #0x0
+ ldrb r0, [r0, #0x0]
+ str r3, [sp, #0x0]
+ add r1, r6, #0x0
+ str r0, [sp, #0x4]
+ ldr r0, [r7, #0x0]
+ add r2, r4, #0x0
+ bl FUN_0200ABB4
+ add r0, r4, #0x0
+ bl FUN_02021A20
+ mov r0, #0x0
+ add sp, #0x8
+ pop {r3-r7, pc}
+ nop
+_02040E48: .word 0x020ECAC4
+
+ thumb_func_start FUN_02040E4C
+FUN_02040E4C: ; 0x02040E4C
+ push {r3-r7, lr}
+ add r4, r0, #0x0
+ add r0, #0x80
+ ldr r6, [r0, #0x0]
+ mov r1, #0xf
+ add r0, r6, #0x0
+ bl FUN_02039438
+ ldr r1, [r4, #0x8]
+ add r7, r0, #0x0
+ add r0, r1, #0x1
+ str r0, [r4, #0x8]
+ add r0, r4, #0x0
+ ldrb r5, [r1, #0x0]
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ str r0, [sp, #0x0]
+ add r0, r4, #0x0
+ bl ScriptReadHalfword
+ add r4, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r4, #0x0]
+ bl FUN_020394F0
+ add r4, r0, #0x0
+ ldr r0, [r6, #0xc]
+ bl FUN_0206BB1C
+ ldr r1, [sp, #0x0]
+ bl FUN_0206B9B0
+ add r4, #0x36
+ add r1, r4, #0x0
+ mov r2, #0x0
+ bl FUN_020671BC
+ lsl r0, r0, #0x10
+ lsr r2, r0, #0x10
+ ldr r0, [r7, #0x0]
+ add r1, r5, #0x0
+ bl FUN_0200AD5C
+ mov r0, #0x0
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_02040EB4
+FUN_02040EB4: ; 0x02040EB4
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ mov r1, #0xf
+ bl FUN_02039438
+ ldr r1, [r5, #0x8]
+ add r6, r0, #0x0
+ add r0, r1, #0x1
+ str r0, [r5, #0x8]
+ add r0, r5, #0x0
+ ldrb r4, [r1, #0x0]
+ bl ScriptReadHalfword
+ add r5, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r5, #0x0]
+ bl FUN_020394F0
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ mov r1, #0x3
+ bl FUN_0207FC5C
+ lsl r0, r0, #0x10
+ lsr r2, r0, #0x10
+ ldr r0, [r6, #0x0]
+ add r1, r4, #0x0
+ bl FUN_0200AD94
+ mov r0, #0x0
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_02040EF8
+FUN_02040EF8: ; 0x02040EF8
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ mov r1, #0xf
+ bl FUN_02039438
+ ldr r1, [r5, #0x8]
+ add r6, r0, #0x0
+ add r0, r1, #0x1
+ str r0, [r5, #0x8]
+ add r0, r5, #0x0
+ ldrb r4, [r1, #0x0]
+ bl ScriptReadHalfword
+ add r5, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r5, #0x0]
+ bl FUN_020394F0
+ add r2, r0, #0x0
+ sub r2, r2, #0x1
+ lsl r2, r2, #0x10
+ ldr r0, [r6, #0x0]
+ add r1, r4, #0x0
+ lsr r2, r2, #0x10
+ bl FUN_0200B534
+ mov r0, #0x0
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_02040F34
+FUN_02040F34: ; 0x02040F34
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ mov r1, #0xf
+ bl FUN_02039438
+ ldr r1, [r5, #0x8]
+ add r6, r0, #0x0
+ add r0, r1, #0x1
+ str r0, [r5, #0x8]
+ add r0, r5, #0x0
+ ldrb r4, [r1, #0x0]
+ bl ScriptReadHalfword
+ add r5, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r5, #0x0]
+ bl FUN_020394F0
+ add r2, r0, #0x0
+ ldr r0, [r6, #0x0]
+ add r1, r4, #0x0
+ bl FUN_0200AE70
+ mov r0, #0x0
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_02040F6C
+FUN_02040F6C: ; 0x02040F6C
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ mov r1, #0xf
+ bl FUN_02039438
+ ldr r1, [r5, #0x8]
+ add r6, r0, #0x0
+ add r0, r1, #0x1
+ str r0, [r5, #0x8]
+ add r0, r5, #0x0
+ ldrb r4, [r1, #0x0]
+ bl ScriptReadHalfword
+ add r5, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r5, #0x0]
+ bl FUN_020394F0
+ add r2, r0, #0x0
+ ldr r0, [r6, #0x0]
+ add r1, r4, #0x0
+ bl FUN_0200AEA8
+ mov r0, #0x0
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_02040FA4
+FUN_02040FA4: ; 0x02040FA4
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ mov r1, #0xf
+ bl FUN_02039438
+ ldr r1, [r5, #0x8]
+ add r6, r0, #0x0
+ add r0, r1, #0x1
+ str r0, [r5, #0x8]
+ add r0, r5, #0x0
+ ldrb r4, [r1, #0x0]
+ bl ScriptReadHalfword
+ add r5, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r5, #0x0]
+ bl FUN_020394F0
+ add r2, r0, #0x0
+ ldr r0, [r6, #0x0]
+ add r1, r4, #0x0
+ bl FUN_0200B388
+ mov r0, #0x0
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_02040FDC
+FUN_02040FDC: ; 0x02040FDC
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ mov r1, #0xf
+ bl FUN_02039438
+ ldr r1, [r5, #0x8]
+ add r6, r0, #0x0
+ add r0, r1, #0x1
+ str r0, [r5, #0x8]
+ add r0, r5, #0x0
+ ldrb r4, [r1, #0x0]
+ bl ScriptReadHalfword
+ add r5, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r5, #0x0]
+ bl FUN_020394F0
+ add r2, r0, #0x0
+ ldr r0, [r6, #0x0]
+ add r1, r4, #0x0
+ bl FUN_0200B20C
+ mov r0, #0x0
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_02041014
+FUN_02041014: ; 0x02041014
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ mov r1, #0xf
+ bl FUN_02039438
+ ldr r1, [r5, #0x8]
+ add r6, r0, #0x0
+ add r0, r1, #0x1
+ str r0, [r5, #0x8]
+ add r0, r5, #0x0
+ ldrb r4, [r1, #0x0]
+ bl ScriptReadHalfword
+ add r5, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r5, #0x0]
+ bl FUN_020394F0
+ add r2, r0, #0x0
+ ldr r0, [r6, #0x0]
+ add r1, r4, #0x0
+ bl FUN_0200B19C
+ mov r0, #0x0
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_0204104C
+FUN_0204104C: ; 0x0204104C
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ mov r1, #0xf
+ bl FUN_02039438
+ ldr r1, [r5, #0x8]
+ add r6, r0, #0x0
+ add r0, r1, #0x1
+ str r0, [r5, #0x8]
+ add r0, r5, #0x0
+ ldrb r4, [r1, #0x0]
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r7, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ ldr r0, [r5, #0x8]
+ add r1, r4, #0x0
+ add r0, r0, #0x1
+ str r0, [r5, #0x8]
+ ldr r0, [r6, #0x0]
+ add r2, r7, #0x0
+ bl FUN_0200ACC0
+ mov r0, #0x0
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_02041094
+FUN_02041094: ; 0x02041094
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ mov r1, #0xf
+ bl FUN_02039438
+ ldr r1, [r5, #0x8]
+ add r6, r0, #0x0
+ add r0, r1, #0x1
+ str r0, [r5, #0x8]
+ add r5, #0x80
+ ldr r0, [r5, #0x0]
+ ldrb r4, [r1, #0x0]
+ ldr r0, [r0, #0xc]
+ bl FUN_020462AC
+ bl FUN_0205F3C0
+ add r2, r0, #0x0
+ ldr r0, [r6, #0x0]
+ add r1, r4, #0x0
+ bl FUN_0200ACC0
+ mov r0, #0x0
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_020410C8
+FUN_020410C8: ; 0x020410C8
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ mov r1, #0xf
+ bl FUN_02039438
+ ldr r1, [r5, #0x8]
+ add r6, r0, #0x0
+ add r0, r1, #0x1
+ str r0, [r5, #0x8]
+ add r0, r5, #0x0
+ ldrb r4, [r1, #0x0]
+ bl ScriptReadHalfword
+ add r5, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r5, #0x0]
+ bl FUN_020394F0
+ add r2, r0, #0x0
+ ldr r0, [r6, #0x0]
+ add r1, r4, #0x0
+ bl FUN_0200B698
+ mov r0, #0x0
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_02041100
+FUN_02041100: ; 0x02041100
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ mov r1, #0xf
+ bl FUN_02039438
+ ldr r1, [r5, #0x8]
+ add r6, r0, #0x0
+ add r0, r1, #0x1
+ str r0, [r5, #0x8]
+ add r0, r5, #0x0
+ ldrb r4, [r1, #0x0]
+ bl ScriptReadHalfword
+ add r5, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r5, #0x0]
+ bl FUN_020394F0
+ add r2, r0, #0x0
+ ldr r0, [r6, #0x0]
+ add r1, r4, #0x0
+ bl FUN_0200B09C
+ mov r0, #0x0
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_02041138
+FUN_02041138: ; 0x02041138
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ mov r1, #0xf
+ bl FUN_02039438
+ ldr r1, [r5, #0x8]
+ add r6, r0, #0x0
+ add r0, r1, #0x1
+ str r0, [r5, #0x8]
+ add r0, r5, #0x0
+ ldrb r4, [r1, #0x0]
+ bl ScriptReadHalfword
+ add r5, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r5, #0x0]
+ bl FUN_020394F0
+ add r2, r0, #0x0
+ sub r2, r2, #0x1
+ lsl r2, r2, #0x10
+ ldr r0, [r6, #0x0]
+ add r1, r4, #0x0
+ lsr r2, r2, #0x10
+ bl FUN_0200B568
+ mov r0, #0x0
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_02041174
+FUN_02041174: ; 0x02041174
+ push {r4, lr}
+ add r4, r0, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ mov r1, #0xf
+ bl FUN_02039438
+ ldr r2, [r4, #0x8]
+ add r1, r2, #0x1
+ str r1, [r4, #0x8]
+ ldrb r1, [r2, #0x0]
+ ldr r0, [r0, #0x0]
+ bl FUN_0200B7A8
+ mov r0, #0x0
+ pop {r4, pc}
+
+ thumb_func_start FUN_02041194
+FUN_02041194: ; 0x02041194
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0xc]
+ bl FUN_020462AC
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r5, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r5, #0x0]
+ bl FUN_020394B8
+ add r5, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_0205F5D8
+ strh r0, [r5, #0x0]
+ mov r0, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_020411C4
+FUN_020411C4: ; 0x020411C4
+ push {r4-r7, lr}
+ sub sp, #0x24
+ add r4, r0, #0x0
+ add r0, #0x80
+ ldr r7, [r0, #0x0]
+ ldr r0, [r7, #0xc]
+ bl FUN_02022510
+ str r0, [sp, #0x20]
+ add r0, r4, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394B8
+ str r0, [sp, #0xc]
+ add r0, r4, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394B8
+ str r0, [sp, #0x8]
+ add r0, r4, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394B8
+ str r0, [sp, #0x4]
+ add r0, r4, #0x0
+ bl ScriptReadHalfword
+ add r4, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r4, #0x0]
+ bl FUN_020394F0
+ str r0, [sp, #0x0]
+ ldr r0, [r7, #0xc]
+ bl FUN_0206BB1C
+ bl FUN_0206B9AC
+ lsl r0, r0, #0x10
+ lsr r6, r0, #0x10
+ ldr r0, _0204133C ; =0x00000000
+ str r0, [sp, #0x1c]
+ str r0, [sp, #0x18]
+ ldr r5, [sp, #0x1c]
+ beq _02041286
+_0204123C:
+ ldr r0, [r7, #0xc]
+ bl FUN_0206BB1C
+ add r1, r5, #0x0
+ bl FUN_0206B9B0
+ mov r1, #0x4c
+ mov r2, #0x0
+ add r4, r0, #0x0
+ bl FUN_020671BC
+ cmp r0, #0x0
+ bne _0204127C
+ add r0, r4, #0x0
+ mov r1, #0x7
+ mov r2, #0x0
+ bl FUN_020671BC
+ lsl r0, r0, #0x10
+ lsr r1, r0, #0x10
+ lsl r1, r1, #0x10
+ ldr r0, [sp, #0x0]
+ lsr r1, r1, #0x10
+ bl FUN_02041354
+ cmp r0, #0x0
+ beq _0204127C
+ ldr r1, [sp, #0x1c]
+ cmp r1, r0
+ bge _0204127C
+ str r0, [sp, #0x1c]
+ str r5, [sp, #0x18]
+_0204127C:
+ add r0, r5, #0x1
+ lsl r0, r0, #0x10
+ lsr r5, r0, #0x10
+ cmp r5, r6
+ blo _0204123C
+_02041286:
+ mov r6, #0x0
+ str r6, [sp, #0x14]
+ str r6, [sp, #0x10]
+ add r7, r6, #0x0
+_0204128E:
+ mov r5, #0x0
+_02041290:
+ ldr r0, [sp, #0x20]
+ ldr r1, [sp, #0x10]
+ add r2, r5, #0x0
+ bl FUN_0206B5E4
+ mov r1, #0x5
+ mov r2, #0x0
+ add r4, r0, #0x0
+ bl FUN_020672BC
+ cmp r0, #0x0
+ beq _020412E0
+ add r0, r4, #0x0
+ mov r1, #0x4c
+ mov r2, #0x0
+ bl FUN_020672BC
+ cmp r0, #0x0
+ bne _020412E0
+ add r0, r4, #0x0
+ mov r1, #0x7
+ mov r2, #0x0
+ bl FUN_020672BC
+ lsl r0, r0, #0x10
+ lsr r1, r0, #0x10
+ lsl r1, r1, #0x10
+ ldr r0, [sp, #0x0]
+ lsr r1, r1, #0x10
+ bl FUN_02041354
+ cmp r0, #0x0
+ beq _020412E0
+ cmp r6, r0
+ bge _020412E0
+ add r6, r0, #0x0
+ add r0, r5, r7
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #0x14]
+_020412E0:
+ add r5, r5, #0x1
+ cmp r5, #0x1e
+ blo _02041290
+ ldr r0, [sp, #0x10]
+ add r7, #0x1e
+ add r0, r0, #0x1
+ str r0, [sp, #0x10]
+ cmp r0, #0x12
+ blo _0204128E
+ ldr r0, [sp, #0x1c]
+ cmp r0, #0x0
+ bne _0204130C
+ cmp r6, #0x0
+ bne _0204130C
+ ldr r0, [sp, #0xc]
+ mov r1, #0x0
+ strh r1, [r0, #0x0]
+ ldr r0, [sp, #0x8]
+ strh r1, [r0, #0x0]
+ ldr r0, [sp, #0x4]
+ strh r1, [r0, #0x0]
+ b _02041336
+_0204130C:
+ ldr r0, [sp, #0x1c]
+ cmp r0, r6
+ blo _02041326
+ ldr r1, [sp, #0x18]
+ ldr r0, [sp, #0xc]
+ strh r1, [r0, #0x0]
+ ldr r1, [sp, #0x1c]
+ ldr r0, [sp, #0x8]
+ strh r1, [r0, #0x0]
+ ldr r0, [sp, #0x4]
+ mov r1, #0x0
+ strh r1, [r0, #0x0]
+ b _02041336
+_02041326:
+ ldr r1, [sp, #0x14]
+ ldr r0, [sp, #0xc]
+ strh r1, [r0, #0x0]
+ ldr r0, [sp, #0x8]
+ mov r1, #0x1
+ strh r6, [r0, #0x0]
+ ldr r0, [sp, #0x4]
+ strh r1, [r0, #0x0]
+_02041336:
+ mov r0, #0x0
+ add sp, #0x24
+ pop {r4-r7, pc}
+ .balign 4
+_0204133C: .word 0x00000000
+
+ thumb_func_start FUN_02041340
+FUN_02041340: ; 0x02041340
+ push {r3, lr}
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0xc]
+ bl FUN_020462AC
+ bl FUN_0205F5FC
+ mov r0, #0x0
+ pop {r3, pc}
+
+ thumb_func_start FUN_02041354
+FUN_02041354: ; 0x02041354
+ push {r4-r7, lr}
+ sub sp, #0xc
+ mov r6, #0x0
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ add r7, r6, #0x0
+_02041360:
+ add r0, r5, #0x0
+ mov r1, #0xa
+ blx _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
+ lsl r0, r1, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #0x8]
+ ldr r0, [sp, #0x0]
+ cmp r0, r1
+ bne _020413AC
+ add r0, r5, #0x0
+ mov r1, #0xa
+ blx _s32_div_f
+ lsl r0, r0, #0x10
+ lsr r5, r0, #0x10
+ add r0, r4, #0x0
+ mov r1, #0xa
+ blx _s32_div_f
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+ add r0, r6, #0x1
+ lsl r0, r0, #0x18
+ lsr r6, r0, #0x18
+ add r0, r7, #0x1
+ lsl r0, r0, #0x18
+ lsr r7, r0, #0x18
+ cmp r7, #0x5
+ blo _02041360
+_020413AC:
+ ldr r1, _020413BC ; =0x021C5A10
+ ldr r0, [sp, #0x8]
+ strh r0, [r1, #0x2]
+ ldr r0, [sp, #0x4]
+ strh r0, [r1, #0x0]
+ add r0, r6, #0x0
+ add sp, #0xc
+ pop {r4-r7, pc}
+ .balign 4
+_020413BC: .word 0x021C5A10
+
+ thumb_func_start FUN_020413C0
+FUN_020413C0: ; 0x020413C0
+ push {r3-r5, lr}
+ add r4, r0, #0x0
+ bl ScriptReadHalfword
+ add r5, r0, #0x0
+ add r0, r4, #0x0
+ bl ScriptReadHalfword
+ add r4, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r4, #0x0]
+ bl FUN_020394B8
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_02005410
+ strh r0, [r4, #0x0]
+ mov r0, #0x0
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_020413E8
+FUN_020413E8: ; 0x020413E8
+ push {r3, lr}
+ bl ScriptReadHalfword
+ bl FUN_0200521C
+ mov r0, #0x0
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_020413F8
+FUN_020413F8: ; 0x020413F8
+ push {r3, lr}
+ bl ScriptReadHalfword
+ bl FUN_02004124
+ mov r1, #0x0
+ bl FUN_02005350
+ mov r0, #0x0
+ pop {r3, pc}
+
+ thumb_func_start FUN_0204140C
+FUN_0204140C: ; 0x0204140C
+ push {r3, lr}
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ ldr r1, [r0, #0x1c]
+ ldr r1, [r1, #0x0]
+ bl FUN_0204ABA8
+ bl FUN_0200521C
+ mov r0, #0x0
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_02041424
+FUN_02041424: ; 0x02041424
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl ScriptReadHalfword
+ add r4, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r4, #0x0]
+ bl FUN_0204AB20
+ mov r0, #0x0
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0204143C
+FUN_0204143C: ; 0x0204143C
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ bl ScriptReadHalfword
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_020053CC
+ ldr r1, _02041460 ; =FUN_02041464
+ add r0, r5, #0x0
+ bl SetupNativeScript
+ mov r0, #0x1
+ pop {r3-r5, pc}
+ .balign 4
+_02041460: .word FUN_02041464
+
+ thumb_func_start FUN_02041464
+FUN_02041464: ; 0x02041464
+ push {r3, lr}
+ bl FUN_02005404
+ cmp r0, #0x0
+ bne _02041472
+ mov r0, #0x1
+ pop {r3, pc}
+_02041472:
+ mov r0, #0x0
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_02041478
+FUN_02041478: ; 0x02041478
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ mov r0, #0x7f
+ mov r2, #0x0
+ bl FUN_0200538C
+ ldr r1, _02041498 ; =FUN_02041464
+ add r0, r4, #0x0
+ bl SetupNativeScript
+ mov r0, #0x1
+ pop {r4, pc}
+ nop
+_02041498: .word FUN_02041464
+
+ thumb_func_start FUN_0204149C
+FUN_0204149C: ; 0x0204149C
+ push {r3, lr}
+ ldr r1, [r0, #0x8]
+ add r3, r1, #0x1
+ str r3, [r0, #0x8]
+ ldrb r2, [r1, #0x0]
+ add r1, r3, #0x1
+ str r1, [r0, #0x8]
+ ldrb r1, [r3, #0x0]
+ add r0, r2, #0x0
+ bl FUN_020047C8
+ mov r0, #0x0
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_020414B8
+FUN_020414B8: ; 0x020414B8
+ push {r3, lr}
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ mov r0, #0x4
+ bl FUN_02005308
+ mov r0, #0x0
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_020414CC
+FUN_020414CC: ; 0x020414CC
+ push {r3, lr}
+ ldr r2, [r0, #0x8]
+ add r1, r2, #0x1
+ str r1, [r0, #0x8]
+ ldrb r0, [r2, #0x0]
+ bl FUN_020040F4
+ mov r0, #0x0
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_020414E0
+FUN_020414E0: ; 0x020414E0
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl ScriptReadHalfword
+ add r4, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r4, #0x0]
+ bl FUN_020394F0
+ bl FUN_020054C8
+ mov r0, #0x0
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_020414FC
+FUN_020414FC: ; 0x020414FC
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl ScriptReadHalfword
+ add r4, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r4, #0x0]
+ bl FUN_020394F0
+ mov r1, #0x0
+ bl FUN_020054F0
+ mov r0, #0x0
+ pop {r4, pc}
+
+ thumb_func_start FUN_02041518
+FUN_02041518: ; 0x02041518
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ str r0, [r4, #0x64]
+ ldr r1, _0204153C ; =FUN_02041540
+ add r0, r4, #0x0
+ bl SetupNativeScript
+ mov r0, #0x1
+ pop {r4, pc}
+ nop
+_0204153C: .word FUN_02041540
+
+ thumb_func_start FUN_02041540
+FUN_02041540: ; 0x02041540
+ push {r3, lr}
+ ldr r0, [r0, #0x64]
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ bl FUN_02005508
+ cmp r0, #0x0
+ bne _02041554
+ mov r0, #0x1
+ pop {r3, pc}
+_02041554:
+ mov r0, #0x0
+ pop {r3, pc}
+
+ thumb_func_start FUN_02041558
+FUN_02041558: ; 0x02041558
+ push {r3-r5, lr}
+ add r4, r0, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r5, r0, #0x0
+ add r0, r4, #0x0
+ bl ScriptReadHalfword
+ add r4, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r4, #0x0]
+ bl FUN_020394F0
+ add r0, r5, #0x0
+ bl FUN_02005578
+ mov r0, #0x0
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_02041588
+FUN_02041588: ; 0x02041588
+ push {r3, lr}
+ ldr r1, _02041594 ; =FUN_02041598
+ bl SetupNativeScript
+ mov r0, #0x1
+ pop {r3, pc}
+ .balign 4
+_02041594: .word FUN_02041598
+
+ thumb_func_start FUN_02041598
+FUN_02041598: ; 0x02041598
+ push {r3, lr}
+ bl FUN_02005670
+ cmp r0, #0x0
+ bne _020415A6
+ mov r0, #0x1
+ pop {r3, pc}
+_020415A6:
+ mov r0, #0x0
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_020415AC
+FUN_020415AC: ; 0x020415AC
+ push {r3, lr}
+ bl ScriptReadHalfword
+ bl FUN_02005C28
+ mov r0, #0x0
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_020415BC
+FUN_020415BC: ; 0x020415BC
+ push {r3, lr}
+ ldr r1, _020415C8 ; =FUN_020415CC
+ bl SetupNativeScript
+ mov r0, #0x1
+ pop {r3, pc}
+ .balign 4
+_020415C8: .word FUN_020415CC
+
+ thumb_func_start FUN_020415CC
+FUN_020415CC: ; 0x020415CC
+ push {r3, lr}
+ bl FUN_02005CBC
+ cmp r0, #0x0
+ bne _020415DA
+ mov r0, #0x1
+ pop {r3, pc}
+_020415DA:
+ mov r0, #0x0
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_020415E0
+FUN_020415E0: ; 0x020415E0
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394B8
+ add r5, #0x80
+ add r4, r0, #0x0
+ ldr r0, [r5, #0x0]
+ ldr r0, [r0, #0xc]
+ bl FUN_02029EF8
+ bl FUN_02005D20
+ cmp r0, #0x1
+ bne _02041610
+ mov r0, #0x1
+ strh r0, [r4, #0x0]
+ mov r0, #0x0
+ pop {r3-r5, pc}
+_02041610:
+ mov r0, #0x0
+ strh r0, [r4, #0x0]
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_02041618
+FUN_02041618: ; 0x02041618
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl ScriptReadHalfword
+ add r4, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r4, #0x0]
+ bl FUN_020394B8
+ add r4, r0, #0x0
+ bl FUN_02005E28
+ cmp r0, #0x0
+ bne _0204163C
+ mov r0, #0x1
+ strh r0, [r4, #0x0]
+ mov r0, #0x0
+ pop {r4, pc}
+_0204163C:
+ mov r0, #0x0
+ strh r0, [r4, #0x0]
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02041644
+FUN_02041644: ; 0x02041644
+ push {r3, lr}
+ bl FUN_02005E64
+ mov r0, #0x1
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_02041650
+FUN_02041650: ; 0x02041650
+ push {r3, lr}
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0xc]
+ bl FUN_02029EF8
+ bl FUN_02005E6C
+ mov r0, #0x1
+ pop {r3, pc}
+
+ thumb_func_start FUN_02041664
+FUN_02041664: ; 0x02041664
+ push {r3, lr}
+ mov r1, #0x0
+ mov r0, #0x3f
+ add r2, r1, #0x0
+ bl FUN_0200433C
+ mov r0, #0x1
+ pop {r3, pc}
+
+ thumb_func_start FUN_02041674
+FUN_02041674: ; 0x02041674
+ push {r3-r5, lr}
+ add r4, r0, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r5, r0, #0x0
+ add r0, r4, #0x0
+ bl ScriptReadHalfword
+ add r4, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r4, #0x0]
+ bl FUN_020394F0
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_0200488C
+ mov r0, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_020416A8
+FUN_020416A8: ; 0x020416A8
+ push {r3-r7, lr}
+ sub sp, #0x18
+ add r5, r0, #0x0
+ add r1, r5, #0x0
+ add r1, #0x80
+ ldr r4, [r1, #0x0]
+ bl ScriptReadHalfword
+ add r5, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r5, #0x0]
+ bl FUN_020394F0
+ add r5, r0, #0x0
+ bne _02041708
+ add r0, r4, #0x0
+ mov r1, #0x18
+ bl FUN_02039438
+ str r0, [sp, #0x14]
+ add r0, r4, #0x0
+ mov r1, #0x19
+ bl FUN_02039438
+ str r0, [sp, #0xc]
+ add r0, r4, #0x0
+ mov r1, #0x1a
+ bl FUN_02039438
+ add r0, r4, #0x0
+ mov r1, #0x1b
+ bl FUN_02039438
+ add r0, r4, #0x0
+ mov r1, #0x1c
+ bl FUN_02039438
+ str r0, [sp, #0x10]
+ add r0, r4, #0x0
+ mov r1, #0x1d
+ bl FUN_02039438
+ add r6, r0, #0x0
+ add r0, r4, #0x0
+ mov r1, #0x1e
+ bl FUN_02039438
+ b _02041748
+_02041708:
+ add r0, r4, #0x0
+ mov r1, #0x1f
+ bl FUN_02039438
+ str r0, [sp, #0x14]
+ add r0, r4, #0x0
+ mov r1, #0x20
+ bl FUN_02039438
+ str r0, [sp, #0xc]
+ add r0, r4, #0x0
+ mov r1, #0x21
+ bl FUN_02039438
+ add r0, r4, #0x0
+ mov r1, #0x22
+ bl FUN_02039438
+ add r0, r4, #0x0
+ mov r1, #0x23
+ bl FUN_02039438
+ str r0, [sp, #0x10]
+ add r0, r4, #0x0
+ mov r1, #0x24
+ bl FUN_02039438
+ add r6, r0, #0x0
+ add r0, r4, #0x0
+ mov r1, #0x25
+ bl FUN_02039438
+_02041748:
+ add r7, r0, #0x0
+ mov r0, #0x0
+ str r0, [sp, #0x0]
+ ldr r0, [sp, #0x10]
+ ldr r2, [sp, #0xc]
+ ldr r0, [r0, #0x0]
+ ldr r3, [sp, #0x14]
+ str r0, [sp, #0x4]
+ str r5, [sp, #0x8]
+ ldr r0, [r6, #0x0]
+ ldr r1, [r4, #0x38]
+ ldr r2, [r2, #0x0]
+ ldr r3, [r3, #0x0]
+ bl FUN_0205CA4C
+ str r0, [r7, #0x0]
+ mov r0, #0x0
+ add sp, #0x18
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_02041770
+FUN_02041770: ; 0x02041770
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r6, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394B8
+ add r4, r0, #0x0
+ mov r0, #0x0
+ strh r0, [r4, #0x0]
+ cmp r6, #0x0
+ bne _020417AE
+ add r5, #0x80
+ ldr r0, [r5, #0x0]
+ mov r1, #0x1e
+ bl FUN_02039438
+ b _020417B8
+_020417AE:
+ add r5, #0x80
+ ldr r0, [r5, #0x0]
+ mov r1, #0x25
+ bl FUN_02039438
+_020417B8:
+ add r5, r0, #0x0
+ ldr r0, [r5, #0x0]
+ cmp r0, #0x0
+ bne _020417C6
+ mov r0, #0x1
+ strh r0, [r4, #0x0]
+ pop {r4-r6, pc}
+_020417C6:
+ bl FUN_0205CA64
+ cmp r0, #0x1
+ bne _020417DC
+ ldr r0, [r5, #0x0]
+ bl FUN_0205CA78
+ mov r0, #0x0
+ str r0, [r5, #0x0]
+ mov r0, #0x1
+ strh r0, [r4, #0x0]
+_020417DC:
+ mov r0, #0x1
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_020417E0
+FUN_020417E0: ; 0x020417E0
+ push {r3-r5, lr}
+ add r4, r0, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ mov r1, #0x1c
+ bl FUN_02039438
+ add r5, r0, #0x0
+ add r0, r4, #0x0
+ bl ScriptReadHalfword
+ add r4, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r4, #0x0]
+ bl FUN_020394B8
+ ldrh r1, [r5, #0x0]
+ strh r1, [r0, #0x0]
+ mov r0, #0x0
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_02041808
+FUN_02041808: ; 0x02041808
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ mov r1, #0x1b
+ bl FUN_02039438
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ mov r1, #0x22
+ bl FUN_02039438
+ add r6, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r7, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r5, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r5, #0x0]
+ bl FUN_020394B8
+ cmp r7, #0x0
+ bne _02041852
+ ldrh r1, [r4, #0x0]
+ b _02041854
+_02041852:
+ ldrh r1, [r6, #0x0]
+_02041854:
+ strh r1, [r0, #0x0]
+ mov r0, #0x0
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_0204185C
+FUN_0204185C: ; 0x0204185C
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ mov r1, #0x8
+ bl FUN_02039438
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r5, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r5, #0x0]
+ bl FUN_020394B8
+ add r5, r0, #0x0
+ ldrh r0, [r4, #0x0]
+ bl FUN_020395F4
+ strh r0, [r5, #0x0]
+ mov r0, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_0204188C
+FUN_0204188C: ; 0x0204188C
+ push {r3-r7, lr}
+ sub sp, #0x10
+ add r5, r0, #0x0
+ add r0, #0x80
+ ldr r4, [r0, #0x0]
+ mov r1, #0x8
+ add r0, r4, #0x0
+ bl FUN_02039438
+ add r0, r4, #0x0
+ mov r1, #0x17
+ bl FUN_02039438
+ add r7, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ str r0, [sp, #0xc]
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ str r0, [sp, #0x8]
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ mov r6, #0x0
+ ldr r0, [r0, #0xc]
+ bl FUN_020462AC
+ bl FUN_0205ED3C
+ cmp r0, #0x1
+ bne _020418F2
+ ldr r0, [r4, #0xc]
+ bl FUN_020462AC
+ bl FUN_0205F368
+ add r6, r0, #0x0
+_020418F2:
+ mov r0, #0xb
+ str r0, [sp, #0x0]
+ str r7, [sp, #0x4]
+ ldr r0, [r5, #0x74]
+ ldr r1, [sp, #0xc]
+ ldr r2, [sp, #0x8]
+ add r3, r6, #0x0
+ bl FUN_020470E8
+ mov r0, #0x1
+ add sp, #0x10
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_0204190C
+FUN_0204190C: ; 0x0204190C
+ push {r3-r7, lr}
+ sub sp, #0x8
+ add r5, r0, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ mov r1, #0x17
+ bl FUN_02039438
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r6, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r7, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r2, r0, #0x0
+ mov r0, #0xb
+ str r0, [sp, #0x0]
+ str r4, [sp, #0x4]
+ ldr r0, [r5, #0x74]
+ add r1, r7, #0x0
+ add r3, r6, #0x0
+ bl FUN_020470E8
+ mov r0, #0x1
+ add sp, #0x8
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_02041970
+FUN_02041970: ; 0x02041970
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ mov r1, #0x8
+ bl FUN_02039438
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394B8
+ add r7, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394B8
+ add r6, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r5, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r5, #0x0]
+ bl FUN_020394B8
+ add r5, r0, #0x0
+ ldrh r0, [r4, #0x0]
+ bl FUN_020395F4
+ bl FUN_0203962C
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ bne _020419D2
+ mov r0, #0x0
+ mov r1, #0x2
+ add r2, r0, #0x0
+ b _020419EC
+_020419D2:
+ ldrh r0, [r4, #0x0]
+ bl FUN_02039618
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ bne _020419E6
+ mov r0, #0x3
+ mov r1, #0x5
+ mov r2, #0x6
+ b _020419EC
+_020419E6:
+ mov r0, #0x7
+ mov r1, #0x9
+ mov r2, #0xa
+_020419EC:
+ strh r0, [r7, #0x0]
+ strh r1, [r6, #0x0]
+ strh r2, [r5, #0x0]
+ mov r0, #0x0
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_020419F8
+FUN_020419F8: ; 0x020419F8
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ mov r1, #0x8
+ bl FUN_02039438
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394B8
+ add r7, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394B8
+ add r6, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r5, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r5, #0x0]
+ bl FUN_020394B8
+ add r5, r0, #0x0
+ ldrh r0, [r4, #0x0]
+ bl FUN_020395F4
+ bl FUN_0203962C
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ bne _02041A5A
+ mov r1, #0x0
+ mov r0, #0x11
+ add r2, r1, #0x0
+ b _02041A74
+_02041A5A:
+ ldrh r0, [r4, #0x0]
+ bl FUN_02039618
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ bne _02041A6E
+ mov r0, #0x12
+ mov r1, #0x0
+ mov r2, #0x6
+ b _02041A74
+_02041A6E:
+ mov r0, #0x13
+ mov r1, #0x0
+ mov r2, #0xa
+_02041A74:
+ strh r0, [r7, #0x0]
+ strh r1, [r6, #0x0]
+ strh r2, [r5, #0x0]
+ mov r0, #0x0
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_02041A80
+FUN_02041A80: ; 0x02041A80
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ mov r1, #0x8
+ bl FUN_02039438
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r5, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r5, #0x0]
+ bl FUN_020394B8
+ add r5, r0, #0x0
+ ldrh r0, [r4, #0x0]
+ bl FUN_020395F4
+ bl FUN_0203962C
+ strh r0, [r5, #0x0]
+ mov r0, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_02041AB4
+FUN_02041AB4: ; 0x02041AB4
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl ScriptReadHalfword
+ add r4, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r4, #0x0]
+ bl FUN_020394F0
+ bl FUN_0204AD0C
+ bl FUN_02004724
+ mov r0, #0x1
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02041AD4
+FUN_02041AD4: ; 0x02041AD4
+ push {r3, lr}
+ ldr r0, [r0, #0x74]
+ bl FUN_02048498
+ mov r0, #0x1
+ pop {r3, pc}
+
+ thumb_func_start FUN_02041AE0
+FUN_02041AE0: ; 0x02041AE0
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ mov r1, #0x17
+ bl FUN_02039438
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r5, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r5, #0x0]
+ bl FUN_020394B8
+ add r5, r0, #0x0
+ ldr r0, [r4, #0x0]
+ bl FUN_020480B8
+ strh r0, [r5, #0x0]
+ mov r0, #0x1
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_02041B10
+FUN_02041B10: ; 0x02041B10
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ mov r1, #0x17
+ bl FUN_02039438
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r5, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r5, #0x0]
+ bl FUN_020394B8
+ add r5, r0, #0x0
+ ldr r0, [r4, #0x0]
+ bl FUN_020480C8
+ strh r0, [r5, #0x0]
+ mov r0, #0x1
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_02041B40
+FUN_02041B40: ; 0x02041B40
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ mov r1, #0x17
+ bl FUN_02039438
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r5, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r5, #0x0]
+ bl FUN_020394B8
+ add r5, r0, #0x0
+ ldr r0, [r4, #0x0]
+ bl FUN_020480D8
+ strh r0, [r5, #0x0]
+ mov r0, #0x1
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_02041B70
+FUN_02041B70: ; 0x02041B70
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394B8
+ add r5, #0x80
+ add r4, r0, #0x0
+ ldr r0, [r5, #0x0]
+ ldr r0, [r0, #0xc]
+ bl FUN_0206BB1C
+ bl FUN_0204A248
+ strh r0, [r4, #0x0]
+ mov r0, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_02041B9C
+FUN_02041B9C: ; 0x02041B9C
+ push {r4, lr}
+ sub sp, #0x8
+ add r4, r0, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ mov r1, #0x17
+ bl FUN_02039438
+ mov r1, #0xb
+ str r1, [sp, #0x0]
+ str r0, [sp, #0x4]
+ mov r2, #0x0
+ ldr r0, [r4, #0x74]
+ mov r1, #0x1
+ add r3, r2, #0x0
+ bl FUN_020470E8
+ mov r0, #0x1
+ add sp, #0x8
+ pop {r4, pc}
+
+ thumb_func_start FUN_02041BC4
+FUN_02041BC4: ; 0x02041BC4
+ push {r3-r5, lr}
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ mov r1, #0xa
+ bl FUN_02039438
+ add r5, r0, #0x0
+ ldr r0, [r5, #0x0]
+ bl FUN_02058738
+ add r4, r0, #0x0
+ ldr r0, [r5, #0x0]
+ bl FUN_02058448
+ add r1, r0, #0x0
+ lsl r1, r1, #0x10
+ add r0, r4, #0x0
+ lsr r1, r1, #0x10
+ bl FUN_0203965C
+ mov r0, #0x0
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_02041BF0
+FUN_02041BF0: ; 0x02041BF0
+ push {r3-r7, lr}
+ add r6, r0, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ mov r1, #0xa
+ bl FUN_02039438
+ add r5, r0, #0x0
+ add r0, r6, #0x0
+ bl ScriptReadWord
+ add r4, r0, #0x0
+ ldr r0, [r5, #0x0]
+ bl FUN_02058738
+ add r7, r0, #0x0
+ ldr r0, [r5, #0x0]
+ bl FUN_02058448
+ add r1, r0, #0x0
+ lsl r1, r1, #0x10
+ add r0, r7, #0x0
+ lsr r1, r1, #0x10
+ bl FUN_02039640
+ cmp r0, #0x1
+ bne _02041C34
+ ldr r1, [r6, #0x8]
+ add r0, r6, #0x0
+ add r1, r1, r4
+ bl ScriptJump
+ mov r0, #0x1
+ pop {r3-r7, pc}
+_02041C34:
+ mov r0, #0x0
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_02041C38
+FUN_02041C38: ; 0x02041C38
+ push {r4-r7, lr}
+ sub sp, #0xc
+ add r4, r0, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ mov r1, #0xf
+ bl FUN_02039438
+ add r6, r0, #0x0
+ add r0, r4, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0xc]
+ bl FUN_0202881C
+ add r5, r0, #0x0
+ add r0, r4, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ ldr r7, [r0, #0xc]
+ add r0, r4, #0x0
+ bl ScriptReadHalfword
+ cmp r0, #0x6
+ bls _02041C6C
+ b _02041E38
+_02041C6C:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02041C78: ; jump table (using 16-bit offset)
+ .short _02041C86 - _02041C78 - 2; case 0
+ .short _02041CBC - _02041C78 - 2; case 1
+ .short _02041CF2 - _02041C78 - 2; case 2
+ .short _02041D28 - _02041C78 - 2; case 3
+ .short _02041D5E - _02041C78 - 2; case 4
+ .short _02041D94 - _02041C78 - 2; case 5
+ .short _02041DCE - _02041C78 - 2; case 6
+_02041C86:
+ add r0, r4, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r6, r0, #0x0
+ add r0, r4, #0x0
+ bl ScriptReadHalfword
+ add r4, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r4, #0x0]
+ bl FUN_020394B8
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ bl FUN_02028828
+ strh r0, [r4, #0x0]
+ add sp, #0xc
+ mov r0, #0x0
+ pop {r4-r7, pc}
+_02041CBC:
+ add r0, r4, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r6, r0, #0x0
+ add r0, r4, #0x0
+ bl ScriptReadHalfword
+ add r4, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r4, #0x0]
+ bl FUN_020394B8
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ bl FUN_02028840
+ strh r0, [r4, #0x0]
+ add sp, #0xc
+ mov r0, #0x0
+ pop {r4-r7, pc}
+_02041CF2:
+ add r0, r4, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r5, r0, #0x0
+ add r0, r4, #0x0
+ bl ScriptReadHalfword
+ add r4, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r4, #0x0]
+ bl FUN_020394F0
+ add r3, r0, #0x0
+ mov r0, #0x0
+ str r0, [sp, #0x0]
+ ldr r0, [r6, #0x0]
+ add r1, r7, #0x0
+ add r2, r5, #0x0
+ bl FUN_0200B708
+ b _02041E38
+_02041D28:
+ add r0, r4, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r5, r0, #0x0
+ add r0, r4, #0x0
+ bl ScriptReadHalfword
+ add r4, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r4, #0x0]
+ bl FUN_020394F0
+ add r3, r0, #0x0
+ mov r0, #0x1
+ str r0, [sp, #0x0]
+ ldr r0, [r6, #0x0]
+ add r1, r7, #0x0
+ add r2, r5, #0x0
+ bl FUN_0200B708
+ b _02041E38
+_02041D5E:
+ mov r1, #0x0
+ add r0, r5, #0x0
+ add r2, r1, #0x0
+ bl FUN_020287A8
+ add r5, r0, #0x0
+ add r0, r4, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394B8
+ mov r2, #0x0
+ str r2, [sp, #0x0]
+ str r5, [sp, #0x4]
+ str r0, [sp, #0x8]
+ ldr r0, [r4, #0x74]
+ mov r1, #0x5
+ mov r3, #0x7
+ bl FUN_020385CC
+ add sp, #0xc
+ mov r0, #0x1
+ pop {r4-r7, pc}
+_02041D94:
+ add r0, r4, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r7, r0, #0x0
+ add r0, r5, #0x0
+ mov r1, #0x1
+ bl FUN_02028828
+ add r6, r0, #0x0
+ add r0, r5, #0x0
+ add r1, r7, #0x0
+ mov r2, #0x1
+ bl FUN_02028700
+ cmp r6, #0x0
+ beq _02041DC8
+ add r4, #0x80
+ ldr r0, [r4, #0x0]
+ bl FUN_020612F8
+_02041DC8:
+ add sp, #0xc
+ mov r0, #0x0
+ pop {r4-r7, pc}
+_02041DCE:
+ mov r0, #0x40
+ mov r1, #0x20
+ bl FUN_020219F4
+ add r6, r0, #0x0
+ add r0, r4, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0xc]
+ bl FUN_020238F4
+ add r1, r6, #0x0
+ add r7, r0, #0x0
+ bl FUN_02023990
+ add r0, r5, #0x0
+ mov r1, #0x0
+ mov r2, #0x1
+ add r3, r6, #0x0
+ bl FUN_020287C0
+ add r0, r7, #0x0
+ bl FUN_020239CC
+ add r2, r0, #0x0
+ add r0, r5, #0x0
+ mov r1, #0x0
+ bl FUN_020287EC
+ add r0, r5, #0x0
+ mov r1, #0x0
+ mov r2, #0x2
+ bl FUN_02028810
+ bl FUN_0201BA60
+ add r2, r0, #0x0
+ add r0, r5, #0x0
+ mov r1, #0x0
+ bl FUN_02028788
+ add r0, r6, #0x0
+ bl FUN_02021A20
+ add r0, r5, #0x0
+ mov r1, #0x0
+ mov r2, #0x1
+ bl FUN_02028700
+ add r4, #0x80
+ ldr r0, [r4, #0x0]
+ bl FUN_020612EC
+_02041E38:
+ mov r0, #0x0
+ add sp, #0xc
+ pop {r4-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_02041E40
+FUN_02041E40: ; 0x02041E40
+ push {r3-r7, lr}
+ add r4, r0, #0x0
+ bl ScriptReadHalfword
+ cmp r0, #0x6
+ bls _02041E4E
+ b _02041FD2
+_02041E4E:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02041E5A: ; jump table (using 16-bit offset)
+ .short _02041E68 - _02041E5A - 2; case 0
+ .short _02041E88 - _02041E5A - 2; case 1
+ .short _02041F24 - _02041E5A - 2; case 2
+ .short _02041ECA - _02041E5A - 2; case 3
+ .short _02041F2E - _02041E5A - 2; case 4
+ .short _02041F68 - _02041E5A - 2; case 5
+ .short _02041FB4 - _02041E5A - 2; case 6
+_02041E68:
+ add r0, r4, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394B8
+ add r4, #0x80
+ add r5, r0, #0x0
+ ldr r0, [r4, #0x0]
+ bl FUN_02248CD0
+ strh r0, [r5, #0x0]
+ b _02041FD2
+_02041E88:
+ add r0, r4, #0x0
+ bl ScriptReadHalfword
+ add r7, r0, #0x0
+ add r0, r4, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394B8
+ add r5, r0, #0x0
+ add r0, r4, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394B8
+ add r6, r0, #0x0
+ ldr r0, _02041FD8 ; =0x00000233
+ add r4, #0x80
+ strh r0, [r5, #0x0]
+ ldr r0, [r4, #0x0]
+ add r1, r7, #0x0
+ bl FUN_02249038
+ strh r0, [r6, #0x0]
+ b _02041FD2
+_02041ECA:
+ add r0, r4, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ mov r1, #0xf
+ bl FUN_02039438
+ add r5, r0, #0x0
+ add r0, r4, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r6, r0, #0x0
+ add r0, r4, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394B8
+ add r7, r0, #0x0
+ add r0, r4, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394B8
+ str r0, [sp, #0x0]
+ add r4, #0x80
+ ldr r0, [r4, #0x0]
+ ldr r1, [r5, #0x0]
+ add r2, r6, #0x0
+ add r3, r7, #0x0
+ bl FUN_022490A0
+ b _02041FD2
+_02041F24:
+ add r4, #0x80
+ ldr r0, [r4, #0x0]
+ bl FUN_02248CC0
+ b _02041FD2
+_02041F2E:
+ add r0, r4, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394B8
+ add r5, r0, #0x0
+ add r0, r4, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394B8
+ add r6, r0, #0x0
+ mov r0, #0x8d
+ lsl r0, r0, #0x2
+ add r4, #0x80
+ strh r0, [r5, #0x0]
+ ldr r0, [r4, #0x0]
+ bl FUN_022491FC
+ strh r0, [r6, #0x0]
+ b _02041FD2
+_02041F68:
+ add r0, r4, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r6, r0, #0x0
+ add r0, r4, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r7, r0, #0x0
+ add r0, r4, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394B8
+ add r4, #0x80
+ add r5, r0, #0x0
+ ldr r0, [r4, #0x0]
+ add r1, r6, #0x0
+ add r2, r7, #0x0
+ bl FUN_02248F70
+ strh r0, [r5, #0x0]
+ b _02041FD2
+_02041FB4:
+ add r0, r4, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394B8
+ add r4, #0x80
+ add r5, r0, #0x0
+ ldr r0, [r4, #0x0]
+ bl FUN_02248FE0
+ strh r0, [r5, #0x0]
+_02041FD2:
+ mov r0, #0x0
+ pop {r3-r7, pc}
+ nop
+_02041FD8: .word 0x00000233
+
+ thumb_func_start FUN_02041FDC
+FUN_02041FDC: ; 0x02041FDC
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r4, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r4, #0x0]
+ bl FUN_02061374
+ mov r0, #0x0
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02042000
+FUN_02042000: ; 0x02042000
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0xc]
+ bl FUN_0206BB1C
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_0206B9B0
+ add r5, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r5, #0x0]
+ bl FUN_02061460
+ mov r0, #0x0
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_02042038
+FUN_02042038: ; 0x02042038
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ mov r1, #0xf
+ bl FUN_02039438
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ cmp r0, #0x0
+ beq _02042058
+ cmp r0, #0x1
+ beq _020420A8
+ b _02042106
+_02042058:
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ str r0, [sp, #0x0]
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394B8
+ add r6, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394B8
+ add r7, r0, #0x0
+ ldr r0, _0204210C ; =0x00000232
+ add r5, #0x80
+ strh r0, [r6, #0x0]
+ ldr r0, [sp, #0x0]
+ ldr r1, [r5, #0x0]
+ ldr r2, [r4, #0x0]
+ bl FUN_020421F0
+ strh r0, [r7, #0x0]
+ b _02042106
+_020420A8:
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0xc]
+ bl FUN_02029FC8
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r6, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r7, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r5, #0x80
+ add r3, r0, #0x0
+ ldr r0, [r5, #0x0]
+ add r1, r6, #0x0
+ add r2, r7, #0x0
+ bl FUN_020421D8
+ add r0, r4, #0x0
+ mov r1, #0x3
+ bl FUN_0202A170
+_02042106:
+ mov r0, #0x0
+ pop {r3-r7, pc}
+ nop
+_0204210C: .word 0x00000232
+
+ thumb_func_start FUN_02042110
+FUN_02042110: ; 0x02042110
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r6, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394B8
+ add r5, #0x80
+ add r4, r0, #0x0
+ ldr r0, [r5, #0x0]
+ add r1, r6, #0x0
+ bl FUN_02042214
+ strh r0, [r4, #0x0]
+ mov r0, #0x0
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_0204214C
+FUN_0204214C: ; 0x0204214C
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0xc]
+ bl FUN_02022504
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ cmp r0, #0x0
+ beq _02042170
+ cmp r0, #0x1
+ beq _020421A2
+ cmp r0, #0x2
+ beq _020421BC
+ b _020421D4
+_02042170:
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0xc]
+ bl FUN_0206BB1C
+ add r6, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r5, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r5, #0x0]
+ bl FUN_020394F0
+ add r1, r0, #0x0
+ add r0, r6, #0x0
+ bl FUN_0206B9B0
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ mov r2, #0x4
+ bl FUN_02060F3C
+ b _020421D4
+_020421A2:
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r5, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r5, #0x0]
+ bl FUN_020394F0
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_02060F9C
+ b _020421D4
+_020421BC:
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r5, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r5, #0x0]
+ bl FUN_020394F0
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_02060F88
+_020421D4:
+ mov r0, #0x0
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_020421D8
+FUN_020421D8: ; 0x020421D8
+ push {r3, lr}
+ sub r1, r1, #0x1
+ lsl r3, r1, #0x4
+ ldr r1, _020421EC ; =0x020F4264
+ ldr r3, [r1, r3]
+ cmp r3, #0x0
+ beq _020421EA
+ add r1, r2, #0x0
+ blx r3
+_020421EA:
+ pop {r3, pc}
+ .balign 4
+_020421EC: .word 0x020F4264
+
+ thumb_func_start FUN_020421F0
+FUN_020421F0: ; 0x020421F0
+ push {r4, lr}
+ sub r0, r0, #0x1
+ lsl r4, r0, #0x4
+ ldr r0, _0204220C ; =0x020F4268
+ ldr r3, [r0, r4]
+ cmp r3, #0x0
+ beq _02042204
+ add r0, r1, #0x0
+ add r1, r2, #0x0
+ blx r3
+_02042204:
+ ldr r0, _02042210 ; =0x020F4270
+ ldr r0, [r0, r4]
+ pop {r4, pc}
+ nop
+_0204220C: .word 0x020F4268
+_02042210: .word 0x020F4270
+
+ thumb_func_start FUN_02042214
+FUN_02042214: ; 0x02042214
+ push {r3-r5, lr}
+ add r4, r0, #0x0
+ ldr r0, [r4, #0xc]
+ add r5, r1, #0x0
+ bl FUN_02022504
+ mov r1, #0x1
+ add r2, r5, #0x0
+ bl FUN_0202B710
+ cmp r0, #0x0
+ bne _02042230
+ mov r0, #0x0
+ pop {r3-r5, pc}
+_02042230:
+ sub r0, r5, #0x1
+ lsl r1, r0, #0x4
+ ldr r0, _02042248 ; =0x020F426C
+ ldr r1, [r0, r1]
+ cmp r1, #0x0
+ bne _02042240
+ mov r0, #0x1
+ pop {r3-r5, pc}
+_02042240:
+ add r0, r4, #0x0
+ blx r1
+ pop {r3-r5, pc}
+ nop
+_02042248: .word 0x020F426C
+
+ thumb_func_start FUN_0204224C
+FUN_0204224C: ; 0x0204224C
+ push {r4-r7, lr}
+ sub sp, #0xc
+ add r5, r0, #0x0
+ add r6, r1, #0x0
+ add r7, r2, #0x0
+ mov r0, #0x40
+ mov r1, #0x4
+ str r3, [sp, #0x8]
+ bl FUN_020219F4
+ add r1, r7, #0x0
+ add r4, r0, #0x0
+ bl FUN_02021E28
+ ldr r0, [sp, #0x24]
+ ldr r3, [sp, #0x8]
+ str r0, [sp, #0x0]
+ ldr r0, [sp, #0x20]
+ add r1, r6, #0x0
+ str r0, [sp, #0x4]
+ add r0, r5, #0x0
+ add r2, r4, #0x0
+ bl FUN_0200ABB4
+ add r0, r4, #0x0
+ bl FUN_02021A20
+ add sp, #0xc
+ pop {r4-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_02042288
+FUN_02042288: ; 0x02042288
+ push {r4, lr}
+ ldr r0, [r0, #0xc]
+ add r4, r1, #0x0
+ bl FUN_0206BB1C
+ bl FUN_0204A20C
+ bl FUN_020690E4
+ add r2, r0, #0x0
+ add r0, r4, #0x0
+ mov r1, #0x0
+ bl FUN_0200AC60
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_020422A8
+FUN_020422A8: ; 0x020422A8
+ push {r4, lr}
+ ldr r0, [r0, #0x4]
+ add r4, r1, #0x0
+ ldr r0, [r0, #0x14]
+ bl FUN_02252538
+ add r2, r0, #0x0
+ add r0, r4, #0x0
+ mov r1, #0x0
+ bl FUN_0200B02C
+ pop {r4, pc}
+
+ thumb_func_start FUN_020422C0
+FUN_020422C0: ; 0x020422C0
+ push {r4, lr}
+ sub sp, #0x20
+ ldr r0, [r0, #0xc]
+ add r4, r1, #0x0
+ bl FUN_02022504
+ bl FUN_0202B844
+ ldrh r0, [r0, #0x2]
+ mov r1, #0x4
+ add r2, sp, #0x8
+ bl FUN_0200A99C
+ mov r0, #0x2
+ str r0, [sp, #0x0]
+ mov r0, #0x1
+ mov r1, #0x0
+ str r0, [sp, #0x4]
+ add r0, r4, #0x0
+ add r2, sp, #0x8
+ add r3, r1, #0x0
+ bl FUN_0204224C
+ add sp, #0x20
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_020422F4
+FUN_020422F4: ; 0x020422F4
+ push {r3, lr}
+ ldr r0, [r0, #0xc]
+ bl FUN_02022504
+ bl FUN_0202B85C
+ ldrb r0, [r0, #0x0]
+ pop {r3, pc}
+
+ thumb_func_start FUN_02042304
+FUN_02042304: ; 0x02042304
+ push {r3, lr}
+ ldr r0, [r0, #0xc]
+ bl FUN_0204C1A8
+ bl FUN_0204BEC8
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_02042314
+FUN_02042314: ; 0x02042314
+ push {r3, lr}
+ ldr r0, [r0, #0xc]
+ bl FUN_02022504
+ bl FUN_0202B838
+ ldrb r0, [r0, #0x0]
+ pop {r3, pc}
+
+ thumb_func_start FUN_02042324
+FUN_02042324: ; 0x02042324
+ push {r3, lr}
+ ldr r0, [r0, #0xc]
+ bl FUN_02027E24
+ mov r1, #0x0
+ bl FUN_02027098
+ pop {r3, pc}
+
+ thumb_func_start FUN_02042334
+FUN_02042334: ; 0x02042334
+ push {r3, lr}
+ ldr r0, [r0, #0xc]
+ bl FUN_02022504
+ bl FUN_0202B850
+ ldrb r0, [r0, #0x0]
+ pop {r3, pc}
+
+ thumb_func_start FUN_02042344
+FUN_02042344: ; 0x02042344
+ push {r3, lr}
+ ldr r0, [r0, #0xc]
+ bl FUN_02022504
+ bl FUN_0202B844
+ ldrb r0, [r0, #0x0]
+ pop {r3, pc}
+
+ thumb_func_start FUN_02042354
+FUN_02042354: ; 0x02042354
+ push {r3, lr}
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ add r0, #0xa8
+ bl FUN_022434BC
+ mov r0, #0x0
+ pop {r3, pc}
+
+ thumb_func_start FUN_02042364
+FUN_02042364: ; 0x02042364
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ bl ScriptReadHalfword
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r6, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020377AC
+ add r1, r4, #0x0
+ add r2, r6, #0x0
+ bl FUN_022434D0
+ add r5, #0x80
+ ldr r1, [r5, #0x0]
+ add r1, #0xa8
+ str r0, [r1, #0x0]
+ mov r0, #0x0
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_02042394
+FUN_02042394: ; 0x02042394
+ push {r4, lr}
+ add r4, r0, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ add r0, #0xa8
+ ldr r0, [r0, #0x0]
+ bl FUN_02243694
+ add r4, #0x80
+ ldr r1, [r4, #0x0]
+ mov r0, #0x0
+ add r1, #0xa8
+ str r0, [r1, #0x0]
+ pop {r4, pc}
+
+ thumb_func_start FUN_020423B0
+FUN_020423B0: ; 0x020423B0
+ push {r3-r7, lr}
+ sub sp, #0x8
+ add r7, r0, #0x0
+ bl ScriptReadHalfword
+ str r0, [sp, #0x0]
+ add r0, r7, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r7, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r6, r0, #0x0
+ add r0, r7, #0x0
+ bl ScriptReadHalfword
+ str r0, [sp, #0x4]
+ add r0, r7, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ ldr r1, [sp, #0x4]
+ bl FUN_020394B8
+ add r4, r0, #0x0
+ add r0, r7, #0x0
+ add r0, #0x80
+ ldr r1, [r0, #0x0]
+ add r0, r1, #0x0
+ add r0, #0xa8
+ ldr r5, [r0, #0x0]
+ ldr r0, [sp, #0x0]
+ cmp r0, #0x64
+ bls _020423FA
+ b _020426F6
+_020423FA:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02042406: ; jump table (using 16-bit offset)
+ .short _020424D0 - _02042406 - 2; case 0
+ .short _020424DA - _02042406 - 2; case 1
+ .short _020424F6 - _02042406 - 2; case 2
+ .short _020424FC - _02042406 - 2; case 3
+ .short _02042508 - _02042406 - 2; case 4
+ .short _02042516 - _02042406 - 2; case 5
+ .short _0204251E - _02042406 - 2; case 6
+ .short _020426F6 - _02042406 - 2; case 7
+ .short _02042526 - _02042406 - 2; case 8
+ .short _02042532 - _02042406 - 2; case 9
+ .short _02042540 - _02042406 - 2; case 10
+ .short _0204254E - _02042406 - 2; case 11
+ .short _0204255A - _02042406 - 2; case 12
+ .short _020426F6 - _02042406 - 2; case 13
+ .short _02042564 - _02042406 - 2; case 14
+ .short _0204256E - _02042406 - 2; case 15
+ .short _02042578 - _02042406 - 2; case 16
+ .short _020426F6 - _02042406 - 2; case 17
+ .short _020426F6 - _02042406 - 2; case 18
+ .short _020426F6 - _02042406 - 2; case 19
+ .short _020426F6 - _02042406 - 2; case 20
+ .short _020426F6 - _02042406 - 2; case 21
+ .short _020426F6 - _02042406 - 2; case 22
+ .short _020426F6 - _02042406 - 2; case 23
+ .short _020426F6 - _02042406 - 2; case 24
+ .short _020426F6 - _02042406 - 2; case 25
+ .short _020426F6 - _02042406 - 2; case 26
+ .short _020426F6 - _02042406 - 2; case 27
+ .short _020426F6 - _02042406 - 2; case 28
+ .short _020426F6 - _02042406 - 2; case 29
+ .short _0204258A - _02042406 - 2; case 30
+ .short _020425A2 - _02042406 - 2; case 31
+ .short _020425BC - _02042406 - 2; case 32
+ .short _020425C8 - _02042406 - 2; case 33
+ .short _020425D2 - _02042406 - 2; case 34
+ .short _020425DC - _02042406 - 2; case 35
+ .short _020425E6 - _02042406 - 2; case 36
+ .short _020425F0 - _02042406 - 2; case 37
+ .short _020425F8 - _02042406 - 2; case 38
+ .short _02042600 - _02042406 - 2; case 39
+ .short _02042608 - _02042406 - 2; case 40
+ .short _0204261A - _02042406 - 2; case 41
+ .short _02042626 - _02042406 - 2; case 42
+ .short _02042642 - _02042406 - 2; case 43
+ .short _0204264C - _02042406 - 2; case 44
+ .short _02042656 - _02042406 - 2; case 45
+ .short _02042660 - _02042406 - 2; case 46
+ .short _0204266A - _02042406 - 2; case 47
+ .short _02042674 - _02042406 - 2; case 48
+ .short _02042680 - _02042406 - 2; case 49
+ .short _0204268C - _02042406 - 2; case 50
+ .short _020426A0 - _02042406 - 2; case 51
+ .short _020426AA - _02042406 - 2; case 52
+ .short _020426B4 - _02042406 - 2; case 53
+ .short _020426BE - _02042406 - 2; case 54
+ .short _020426CC - _02042406 - 2; case 55
+ .short _02042612 - _02042406 - 2; case 56
+ .short _020426DA - _02042406 - 2; case 57
+ .short _020426F6 - _02042406 - 2; case 58
+ .short _020426F6 - _02042406 - 2; case 59
+ .short _020426F6 - _02042406 - 2; case 60
+ .short _020426F6 - _02042406 - 2; case 61
+ .short _020426F6 - _02042406 - 2; case 62
+ .short _020426F6 - _02042406 - 2; case 63
+ .short _020426F6 - _02042406 - 2; case 64
+ .short _020426F6 - _02042406 - 2; case 65
+ .short _020426F6 - _02042406 - 2; case 66
+ .short _020426F6 - _02042406 - 2; case 67
+ .short _020426F6 - _02042406 - 2; case 68
+ .short _020426F6 - _02042406 - 2; case 69
+ .short _020426F6 - _02042406 - 2; case 70
+ .short _020426F6 - _02042406 - 2; case 71
+ .short _020426F6 - _02042406 - 2; case 72
+ .short _020426F6 - _02042406 - 2; case 73
+ .short _020426F6 - _02042406 - 2; case 74
+ .short _020426F6 - _02042406 - 2; case 75
+ .short _020426F6 - _02042406 - 2; case 76
+ .short _020426F6 - _02042406 - 2; case 77
+ .short _020426F6 - _02042406 - 2; case 78
+ .short _020426F6 - _02042406 - 2; case 79
+ .short _020426F6 - _02042406 - 2; case 80
+ .short _020426F6 - _02042406 - 2; case 81
+ .short _020426F6 - _02042406 - 2; case 82
+ .short _020426F6 - _02042406 - 2; case 83
+ .short _020426F6 - _02042406 - 2; case 84
+ .short _020426F6 - _02042406 - 2; case 85
+ .short _020426F6 - _02042406 - 2; case 86
+ .short _020426F6 - _02042406 - 2; case 87
+ .short _020426F6 - _02042406 - 2; case 88
+ .short _020426F6 - _02042406 - 2; case 89
+ .short _020426F6 - _02042406 - 2; case 90
+ .short _020426F6 - _02042406 - 2; case 91
+ .short _020426F6 - _02042406 - 2; case 92
+ .short _020426F6 - _02042406 - 2; case 93
+ .short _020426F6 - _02042406 - 2; case 94
+ .short _020426F6 - _02042406 - 2; case 95
+ .short _020426F6 - _02042406 - 2; case 96
+ .short _020426F6 - _02042406 - 2; case 97
+ .short _020426F6 - _02042406 - 2; case 98
+ .short _020426F6 - _02042406 - 2; case 99
+ .short _020426E6 - _02042406 - 2; case 100
+_020424D0:
+ add r0, r6, #0x0
+ bl FUN_0224312C
+ strh r0, [r4, #0x0]
+ b _020426FA
+_020424DA:
+ cmp r6, #0x0
+ bne _020424EA
+ ldrb r0, [r5, #0xe]
+ ldr r1, [r1, #0xc]
+ bl FUN_022432E4
+ strh r0, [r4, #0x0]
+ b _020426FA
+_020424EA:
+ ldr r1, [r1, #0xc]
+ add r0, r6, #0x0
+ bl FUN_022432E4
+ strh r0, [r4, #0x0]
+ b _020426FA
+_020424F6:
+ bl FUN_0224339C
+ b _020426FA
+_020424FC:
+ ldr r0, [r1, #0xc]
+ bl FUN_0202A8CC
+ bl FUN_022433A8
+ b _020426FA
+_02042508:
+ ldr r0, [r1, #0xc]
+ bl FUN_0202A8CC
+ bl FUN_022433B0
+ strh r0, [r4, #0x0]
+ b _020426FA
+_02042516:
+ add r0, r1, #0x0
+ bl FUN_022433B8
+ b _020426FA
+_0204251E:
+ add r0, r1, #0x0
+ bl FUN_022433F8
+ b _020426FA
+_02042526:
+ ldr r0, [r1, #0xc]
+ add r1, r6, #0x0
+ bl FUN_02243408
+ strh r0, [r4, #0x0]
+ b _020426FA
+_02042532:
+ ldr r1, [r1, #0xc]
+ mov r0, #0x0
+ mov r2, #0x2
+ bl FUN_02243E74
+ strh r0, [r4, #0x0]
+ b _020426FA
+_02042540:
+ mov r0, #0x0
+ ldr r1, [r1, #0xc]
+ add r2, r0, #0x0
+ bl FUN_02243E74
+ strh r0, [r4, #0x0]
+ b _020426FA
+_0204254E:
+ ldr r0, [r1, #0xc]
+ lsl r1, r6, #0x18
+ lsr r1, r1, #0x18
+ bl FUN_02243428
+ b _020426FA
+_0204255A:
+ ldr r0, [r1, #0xc]
+ bl FUN_02243448
+ strh r0, [r4, #0x0]
+ b _020426FA
+_02042564:
+ ldr r0, [r1, #0xc]
+ bl FUN_0224345C
+ strh r0, [r4, #0x0]
+ b _020426FA
+_0204256E:
+ ldr r0, [r1, #0xc]
+ bl FUN_022434AC
+ strh r0, [r4, #0x0]
+ b _020426FA
+_02042578:
+ ldrh r3, [r4, #0x0]
+ ldr r0, [r7, #0x74]
+ ldr r2, [sp, #0x4]
+ add r1, r6, #0x0
+ bl FUN_0205FD38
+ add sp, #0x8
+ mov r0, #0x1
+ pop {r3-r7, pc}
+_0204258A:
+ add r0, r1, #0x0
+ mov r1, #0x13
+ bl FUN_02039438
+ add r2, r0, #0x0
+ ldr r1, [r7, #0x74]
+ add r0, r5, #0x0
+ bl FUN_022436C8
+ add sp, #0x8
+ mov r0, #0x1
+ pop {r3-r7, pc}
+_020425A2:
+ add r0, r1, #0x0
+ mov r1, #0x13
+ bl FUN_02039438
+ add r7, #0x80
+ ldr r2, [r7, #0x0]
+ add r1, r0, #0x0
+ ldr r2, [r2, #0xc]
+ add r0, r5, #0x0
+ bl FUN_022436E8
+ strh r0, [r4, #0x0]
+ b _020426FA
+_020425BC:
+ ldr r1, [r1, #0xc]
+ add r0, r5, #0x0
+ bl FUN_02243780
+ strh r0, [r4, #0x0]
+ b _020426FA
+_020425C8:
+ add r0, r5, #0x0
+ bl FUN_022438DC
+ strh r0, [r4, #0x0]
+ b _020426FA
+_020425D2:
+ add r0, r5, #0x0
+ bl FUN_022438E0
+ strh r0, [r4, #0x0]
+ b _020426FA
+_020425DC:
+ add r0, r5, #0x0
+ bl FUN_022438FC
+ strh r0, [r4, #0x0]
+ b _020426FA
+_020425E6:
+ add r0, r5, #0x0
+ bl FUN_02243920
+ strh r0, [r4, #0x0]
+ b _020426FA
+_020425F0:
+ add r0, r5, #0x0
+ bl FUN_022439F8
+ b _020426FA
+_020425F8:
+ add r0, r5, #0x0
+ bl FUN_02243AD8
+ b _020426FA
+_02042600:
+ add r0, r5, #0x0
+ bl FUN_02243BA8
+ b _020426FA
+_02042608:
+ ldr r1, [r1, #0xc]
+ add r0, r5, #0x0
+ bl FUN_02243C5C
+ b _020426FA
+_02042612:
+ add r0, r5, #0x0
+ bl FUN_02243D3C
+ b _020426FA
+_0204261A:
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ bl FUN_02243DA0
+ strh r0, [r4, #0x0]
+ b _020426FA
+_02042626:
+ add r0, r1, #0x0
+ mov r1, #0x17
+ bl FUN_02039438
+ add r7, #0x80
+ add r2, r0, #0x0
+ ldr r0, [r7, #0x0]
+ add r1, r5, #0x0
+ ldr r0, [r0, #0x10]
+ bl FUN_02243DB8
+ add sp, #0x8
+ mov r0, #0x1
+ pop {r3-r7, pc}
+_02042642:
+ add r0, r5, #0x0
+ bl FUN_02243DC0
+ strh r0, [r4, #0x0]
+ b _020426FA
+_0204264C:
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ bl FUN_02243DC4
+ b _020426FA
+_02042656:
+ add r0, r5, #0x0
+ bl FUN_02243DD8
+ strh r0, [r4, #0x0]
+ b _020426FA
+_02042660:
+ add r0, r5, #0x0
+ bl FUN_02243DE0
+ strh r0, [r4, #0x0]
+ b _020426FA
+_0204266A:
+ ldr r1, [r1, #0xc]
+ add r0, r5, #0x0
+ bl FUN_02243E34
+ b _020426FA
+_02042674:
+ ldr r1, [r1, #0xc]
+ add r0, r5, #0x0
+ bl FUN_02243F18
+ strh r0, [r4, #0x0]
+ b _020426FA
+_02042680:
+ ldr r1, [r1, #0xc]
+ add r0, r5, #0x0
+ bl FUN_02243F50
+ strh r0, [r4, #0x0]
+ b _020426FA
+_0204268C:
+ ldrb r1, [r5, #0x10]
+ mov r0, #0xe0
+ bic r1, r0
+ lsl r0, r6, #0x18
+ lsr r0, r0, #0x18
+ lsl r0, r0, #0x1d
+ lsr r0, r0, #0x18
+ orr r0, r1
+ strb r0, [r5, #0x10]
+ b _020426FA
+_020426A0:
+ ldrb r0, [r5, #0x10]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x1d
+ strh r0, [r4, #0x0]
+ b _020426FA
+_020426AA:
+ ldr r1, [r1, #0xc]
+ add r0, r5, #0x0
+ bl FUN_02243838
+ b _020426FA
+_020426B4:
+ add r0, r5, r6
+ add r0, #0x2a
+ ldrb r0, [r0, #0x0]
+ strh r0, [r4, #0x0]
+ b _020426FA
+_020426BE:
+ ldr r1, [r1, #0xc]
+ add r0, r5, #0x0
+ mov r2, #0x1
+ bl FUN_02243E74
+ strh r0, [r4, #0x0]
+ b _020426FA
+_020426CC:
+ lsl r1, r6, #0x18
+ add r0, r5, #0x0
+ lsr r1, r1, #0x18
+ bl FUN_0204290C
+ strh r0, [r4, #0x0]
+ b _020426FA
+_020426DA:
+ ldr r1, [r1, #0xc]
+ add r0, r5, #0x0
+ bl FUN_02243F9C
+ strh r0, [r4, #0x0]
+ b _020426FA
+_020426E6:
+ cmp r5, #0x0
+ bne _020426F0
+ mov r0, #0x1
+ strh r0, [r4, #0x0]
+ b _020426FA
+_020426F0:
+ mov r0, #0x0
+ strh r0, [r4, #0x0]
+ b _020426FA
+_020426F6:
+ mov r0, #0x0
+ strh r0, [r4, #0x0]
+_020426FA:
+ mov r0, #0x0
+ add sp, #0x8
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_02042700
+FUN_02042700: ; 0x02042700
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ add r1, r5, #0x0
+ add r1, #0x80
+ ldr r1, [r1, #0x0]
+ add r1, #0xa8
+ ldr r4, [r1, #0x0]
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r6, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r7, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394B8
+ str r0, [sp, #0x0]
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r5, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r5, #0x0]
+ bl FUN_020394B8
+ lsl r2, r6, #0x4
+ add r2, r6, r2
+ mov r1, #0x38
+ lsl r2, r2, #0x4
+ mul r1, r7
+ add r2, r4, r2
+ add r3, r2, r1
+ mov r2, #0xb2
+ lsl r2, r2, #0x2
+ ldrh r1, [r3, r2]
+ lsl r1, r1, #0x15
+ lsr r4, r1, #0x15
+ ldr r1, [sp, #0x0]
+ strh r4, [r1, #0x0]
+ add r1, r2, #0x4
+ ldrh r1, [r3, r1]
+ strh r1, [r0, #0x0]
+ mov r0, #0x0
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_02042780
+FUN_02042780: ; 0x02042780
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394B8
+ add r5, #0x80
+ add r4, r0, #0x0
+ ldr r0, [r5, #0x0]
+ ldr r0, [r0, #0xc]
+ bl FUN_0205FE10
+ strh r0, [r4, #0x0]
+ mov r0, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_020427A8
+FUN_020427A8: ; 0x020427A8
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394B8
+ add r5, #0x80
+ add r4, r0, #0x0
+ ldr r0, [r5, #0x0]
+ ldr r0, [r0, #0xc]
+ bl FUN_0205FF5C
+ strh r0, [r4, #0x0]
+ mov r0, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_020427D0
+FUN_020427D0: ; 0x020427D0
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r7, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ mov r1, #0x0
+ add r0, #0xa8
+ ldr r6, [r0, #0x0]
+ ldr r0, _0204285C ; =0x00000884
+ mov r2, #0x46
+ add r0, r6, r0
+ blx MI_CpuFill8
+ cmp r4, #0x0
+ beq _0204281E
+ cmp r4, #0x1
+ beq _02042830
+ cmp r4, #0x2
+ beq _0204283E
+ b _0204284C
+_0204281E:
+ add r5, #0x80
+ ldr r1, [r5, #0x0]
+ add r0, r1, #0x0
+ add r0, #0xa8
+ ldr r0, [r0, #0x0]
+ ldr r1, [r1, #0xc]
+ bl FUN_022446FC
+ b _0204284C
+_02042830:
+ add r5, #0x80
+ ldr r0, [r5, #0x0]
+ add r0, #0xa8
+ ldr r0, [r0, #0x0]
+ bl FUN_02244758
+ b _0204284C
+_0204283E:
+ add r5, #0x80
+ ldr r0, [r5, #0x0]
+ add r1, r7, #0x0
+ add r0, #0xa8
+ ldr r0, [r0, #0x0]
+ bl FUN_02244770
+_0204284C:
+ bl FUN_02031190
+ ldr r1, _02042860 ; =0x0000083E
+ add r1, r6, r1
+ bl FUN_020316AC
+ mov r0, #0x0
+ pop {r3-r7, pc}
+ .balign 4
+_0204285C: .word 0x00000884
+_02042860: .word 0x0000083E
+
+ thumb_func_start FUN_02042864
+FUN_02042864: ; 0x02042864
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r5, #0x80
+ add r2, r0, #0x0
+ ldr r0, [r5, #0x0]
+ add r1, r4, #0x0
+ ldr r0, [r0, #0x10]
+ bl FUN_0205FDDC
+ mov r0, #0x1
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_02042894
+FUN_02042894: ; 0x02042894
+ push {r3-r6, lr}
+ sub sp, #0x4
+ add r5, r0, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394B8
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394B8
+ add r5, #0x80
+ add r6, r0, #0x0
+ ldr r0, [r5, #0x0]
+ ldr r0, [r0, #0xc]
+ bl FUN_0202A8E4
+ add r1, sp, #0x0
+ bl FUN_0202A864
+ add r0, sp, #0x0
+ ldrb r1, [r0, #0x0]
+ strh r1, [r4, #0x0]
+ ldrb r0, [r0, #0x1]
+ strh r0, [r6, #0x0]
+ mov r0, #0x0
+ add sp, #0x4
+ pop {r3-r6, pc}
+
+ thumb_func_start FUN_020428E0
+FUN_020428E0: ; 0x020428E0
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394B8
+ add r5, #0x80
+ add r4, r0, #0x0
+ ldr r0, [r5, #0x0]
+ ldr r0, [r0, #0xc]
+ bl FUN_0202A8E4
+ bl FUN_0202A74C
+ strh r0, [r4, #0x0]
+ mov r0, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_0204290C
+FUN_0204290C: ; 0x0204290C
+ cmp r1, #0x2
+ bne _02042918
+ ldrb r0, [r0, #0x10]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x1d
+ bx lr
+_02042918:
+ cmp r1, #0x1
+ bne _0204293E
+ ldrb r1, [r0, #0xf]
+ cmp r1, #0x2
+ bne _02042930
+ ldrb r0, [r0, #0x10]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x1d
+ lsl r1, r0, #0x1
+ ldr r0, _0204294C ; =0x020F4334
+ ldrh r0, [r0, r1]
+ bx lr
+_02042930:
+ ldrb r0, [r0, #0x12]
+ cmp r0, #0x0
+ beq _0204293A
+ mov r0, #0x61
+ bx lr
+_0204293A:
+ mov r0, #0x0
+ bx lr
+_0204293E:
+ ldrb r0, [r0, #0x11]
+ cmp r0, #0x0
+ beq _02042948
+ mov r0, #0x61
+ bx lr
+_02042948:
+ mov r0, #0x0
+ bx lr
+ .balign 4
+_0204294C: .word 0x020F4334
+
+ thumb_func_start FUN_02042950
+FUN_02042950: ; 0x02042950
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ add r0, #0x80
+ ldr r1, [r5, #0x8]
+ ldr r0, [r0, #0x0]
+ add r2, r1, #0x1
+ str r2, [r5, #0x8]
+ ldrb r6, [r1, #0x0]
+ add r1, r2, #0x1
+ str r1, [r5, #0x8]
+ ldrb r4, [r2, #0x0]
+ mov r1, #0x26
+ bl FUN_02039438
+ add r5, #0x80
+ add r7, r0, #0x0
+ ldr r0, [r5, #0x0]
+ add r1, r6, #0x0
+ add r2, r4, #0x0
+ bl FUN_021E2A70
+ str r0, [r7, #0x0]
+ mov r0, #0x0
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_02042980
+FUN_02042980: ; 0x02042980
+ push {r3, lr}
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ mov r1, #0x26
+ bl FUN_02039438
+ ldr r0, [r0, #0x0]
+ bl FUN_021E29B4
+ mov r0, #0x0
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_02042998
+FUN_02042998: ; 0x02042998
+ push {r4, lr}
+ add r4, r0, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ mov r1, #0x26
+ bl FUN_02039438
+ add r1, r0, #0x0
+ add r4, #0x80
+ ldr r0, [r4, #0x0]
+ ldr r1, [r1, #0x0]
+ bl FUN_021E2AD4
+ mov r0, #0x0
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_020429B8
+FUN_020429B8: ; 0x020429B8
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r1, r5, #0x0
+ add r1, #0x80
+ ldr r1, [r1, #0x0]
+ ldr r4, [r1, #0xc]
+ bl ScriptReadHalfword
+ add r5, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r5, #0x0]
+ bl FUN_020394B8
+ add r5, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_0202A8D8
+ mov r1, #0x0
+ add r2, r1, #0x0
+ bl FUN_0202A3B4
+ strh r0, [r5, #0x0]
+ mov r0, #0x0
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_020429E8
+FUN_020429E8: ; 0x020429E8
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r1, r5, #0x0
+ add r1, #0x80
+ ldr r1, [r1, #0x0]
+ ldr r4, [r1, #0xc]
+ bl ScriptReadHalfword
+ add r5, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r5, #0x0]
+ bl FUN_020394F0
+ add r5, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_0202A8D8
+ add r1, r5, #0x0
+ mov r2, #0x5
+ bl FUN_0202A3B4
+ mov r0, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_02042A18
+FUN_02042A18: ; 0x02042A18
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r1, r5, #0x0
+ add r1, #0x80
+ ldr r1, [r1, #0x0]
+ ldr r4, [r1, #0xc]
+ bl ScriptReadHalfword
+ add r5, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r5, #0x0]
+ bl FUN_020394F0
+ add r5, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_0202A8D8
+ add r1, r5, #0x0
+ mov r2, #0x6
+ bl FUN_0202A3B4
+ mov r0, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_02042A48
+FUN_02042A48: ; 0x02042A48
+ push {r4-r6, lr}
+ add r4, r0, #0x0
+ add r1, r4, #0x0
+ add r1, #0x80
+ ldr r1, [r1, #0x0]
+ ldr r5, [r1, #0xc]
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r6, r0, #0x0
+ add r0, r4, #0x0
+ bl ScriptReadHalfword
+ add r4, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r4, #0x0]
+ bl FUN_020394B8
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_0202A8D8
+ mov r1, #0x0
+ add r2, r1, #0x0
+ bl FUN_0202A3B4
+ cmp r0, r6
+ bhs _02042A8E
+ mov r0, #0x0
+ b _02042A90
+_02042A8E:
+ mov r0, #0x1
+_02042A90:
+ strh r0, [r4, #0x0]
+ mov r0, #0x0
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_02042A98
+FUN_02042A98: ; 0x02042A98
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r7, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r6, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394B8
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r5, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r5, #0x0]
+ bl FUN_020394B8
+ cmp r7, #0x1
+ bne _02042AEE
+ mov r1, #0x1a
+ b _02042AF0
+_02042AEE:
+ mov r1, #0x0
+_02042AF0:
+ add r1, r1, r6
+ lsl r2, r1, #0x2
+ ldr r1, _02042B04 ; =0x020F433E
+ ldrh r1, [r1, r2]
+ strh r1, [r4, #0x0]
+ ldr r1, _02042B08 ; =0x020F4340
+ ldrh r1, [r1, r2]
+ strh r1, [r0, #0x0]
+ mov r0, #0x0
+ pop {r3-r7, pc}
+ .balign 4
+_02042B04: .word 0x020F433E
+_02042B08: .word 0x020F4340
+
+ thumb_func_start FUN_02042B0C
+FUN_02042B0C: ; 0x02042B0C
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394B8
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ mov r1, #0xa
+ bl FUN_02039438
+ add r1, r0, #0x0
+ add r5, #0x80
+ ldr r0, [r5, #0x0]
+ ldr r1, [r1, #0x0]
+ bl FUN_0204B5FC
+ strh r0, [r4, #0x0]
+ mov r0, #0x0
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_02042B40
+FUN_02042B40: ; 0x02042B40
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ mov r1, #0xa
+ bl FUN_02039438
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394B8
+ add r5, #0x80
+ add r6, r0, #0x0
+ ldr r0, [r5, #0x0]
+ ldr r1, [r4, #0x0]
+ bl FUN_0204B63C
+ strh r0, [r6, #0x0]
+ mov r0, #0x0
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_02042B74
+FUN_02042B74: ; 0x02042B74
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ mov r1, #0xa
+ bl FUN_02039438
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394B8
+ add r5, #0x80
+ add r6, r0, #0x0
+ ldr r0, [r5, #0x0]
+ ldr r1, [r4, #0x0]
+ bl FUN_0204B660
+ strh r0, [r6, #0x0]
+ mov r0, #0x0
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_02042BA8
+FUN_02042BA8: ; 0x02042BA8
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ mov r1, #0xa
+ bl FUN_02039438
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394B8
+ add r5, #0x80
+ add r6, r0, #0x0
+ ldr r0, [r5, #0x0]
+ ldr r1, [r4, #0x0]
+ bl FUN_0204B684
+ strh r0, [r6, #0x0]
+ mov r0, #0x0
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_02042BDC
+FUN_02042BDC: ; 0x02042BDC
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ mov r1, #0xa
+ bl FUN_02039438
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394B8
+ add r5, #0x80
+ add r6, r0, #0x0
+ ldr r0, [r5, #0x0]
+ ldr r1, [r4, #0x0]
+ bl FUN_0204B6A4
+ strh r0, [r6, #0x0]
+ mov r0, #0x0
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_02042C10
+FUN_02042C10: ; 0x02042C10
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ mov r1, #0xa
+ bl FUN_02039438
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r5, #0x80
+ add r2, r0, #0x0
+ ldr r0, [r5, #0x0]
+ ldr r1, [r4, #0x0]
+ bl FUN_0204B57C
+ mov r0, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_02042C44
+FUN_02042C44: ; 0x02042C44
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ mov r1, #0xa
+ bl FUN_02039438
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0xc]
+ bl FUN_02029FC8
+ add r6, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r5, #0x80
+ add r2, r0, #0x0
+ ldr r0, [r5, #0x0]
+ ldr r1, [r4, #0x0]
+ bl FUN_0204B5A8
+ add r0, r6, #0x0
+ mov r1, #0x3
+ bl FUN_0202A0E8
+ mov r0, #0x0
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_02042C8C
+FUN_02042C8C: ; 0x02042C8C
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl ScriptReadHalfword
+ cmp r0, #0x0
+ beq _02042C9E
+ cmp r0, #0x1
+ beq _02042CA8
+ b _02042CB2
+_02042C9E:
+ add r4, #0x80
+ ldr r0, [r4, #0x0]
+ bl FUN_0204B9A0
+ b _02042CB6
+_02042CA8:
+ add r4, #0x80
+ ldr r0, [r4, #0x0]
+ bl FUN_0204B9CC
+ b _02042CB6
+_02042CB2:
+ bl ErrorHandling
+_02042CB6:
+ mov r0, #0x1
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02042CBC
+FUN_02042CBC: ; 0x02042CBC
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0xc]
+ bl FUN_02029FC8
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ mov r1, #0xa
+ bl FUN_02039438
+ add r1, r0, #0x0
+ add r5, #0x80
+ ldr r0, [r5, #0x0]
+ ldr r1, [r1, #0x0]
+ bl FUN_0204B4FC
+ add r0, r4, #0x0
+ mov r1, #0x0
+ bl FUN_0202A170
+ mov r0, #0x0
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_02042CF0
+FUN_02042CF0: ; 0x02042CF0
+ str r1, [r0, #0x0]
+ str r2, [r0, #0x4]
+ str r3, [r0, #0x8]
+ bx lr
+
+ thumb_func_start FUN_02042CF8
+FUN_02042CF8: ; 0x02042CF8
+ push {r3, lr}
+ bl FUN_0202AF9C
+ bl FUN_0202AFC0
+ pop {r3, pc}
+
+ thumb_func_start FUN_02042D04
+FUN_02042D04: ; 0x02042D04
+ push {r3, lr}
+ bl FUN_0202AF9C
+ bl FUN_0202AFFC
+ pop {r3, pc}
+
+ thumb_func_start FUN_02042D10
+FUN_02042D10: ; 0x02042D10
+ push {r3, lr}
+ bl FUN_0202AF9C
+ bl FUN_0202B020
+ pop {r3, pc}
+
+ thumb_func_start FUN_02042D1C
+FUN_02042D1C: ; 0x02042D1C
+ push {r3-r7, lr}
+ sub sp, #0x20
+ add r4, r0, #0x0
+ bl ScriptReadHalfword
+ cmp r0, #0x8
+ bls _02042D2C
+ b _02042F04
+_02042D2C:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02042D38: ; jump table (using 16-bit offset)
+ .short _02042D4A - _02042D38 - 2; case 0
+ .short _02042D74 - _02042D38 - 2; case 1
+ .short _02042DA0 - _02042D38 - 2; case 2
+ .short _02042DC0 - _02042D38 - 2; case 3
+ .short _02042DFC - _02042D38 - 2; case 4
+ .short _02042E2E - _02042D38 - 2; case 5
+ .short _02042E9A - _02042D38 - 2; case 6
+ .short _02042D58 - _02042D38 - 2; case 7
+ .short _02042D66 - _02042D38 - 2; case 8
+_02042D4A:
+ add r4, #0x80
+ ldr r0, [r4, #0x0]
+ mov r1, #0x20
+ ldr r0, [r0, #0xc]
+ bl FUN_0202AF70
+ b _02042F04
+_02042D58:
+ add r4, #0x80
+ ldr r0, [r4, #0x0]
+ mov r1, #0x0
+ ldr r0, [r0, #0xc]
+ bl FUN_0202AF88
+ b _02042F04
+_02042D66:
+ add r4, #0x80
+ ldr r0, [r4, #0x0]
+ mov r1, #0x1
+ ldr r0, [r0, #0xc]
+ bl FUN_0202AF88
+ b _02042F04
+_02042D74:
+ add r0, r4, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394B8
+ add r4, #0x80
+ add r5, r0, #0x0
+ ldr r0, [r4, #0x0]
+ bl FUN_02042CF8
+ cmp r0, #0x0
+ beq _02042D9A
+ mov r0, #0x1
+ strh r0, [r5, #0x0]
+ b _02042F04
+_02042D9A:
+ mov r0, #0x0
+ strh r0, [r5, #0x0]
+ b _02042F04
+_02042DA0:
+ add r0, r4, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394B8
+ add r4, #0x80
+ add r5, r0, #0x0
+ ldr r0, [r4, #0x0]
+ bl FUN_02042CF8
+ strh r0, [r5, #0x0]
+ b _02042F04
+_02042DC0:
+ add r0, r4, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394B8
+ add r6, r0, #0x0
+ add r0, r4, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_02042CF8
+ sub r0, r0, #0x1
+ lsl r5, r0, #0x4
+ add r0, r4, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ ldr r7, _02042F0C ; =0x020F43E4
+ bl FUN_02042D04
+ add r4, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r4, #0x0]
+ ldr r2, [r7, r5]
+ blx r2
+ strh r0, [r6, #0x0]
+ b _02042F04
+_02042DFC:
+ add r0, r4, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_02042CF8
+ sub r0, r0, #0x1
+ ldr r1, _02042F0C ; =0x020F43E4
+ lsl r0, r0, #0x4
+ add r5, r1, r0
+ add r0, r4, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_02042D04
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ ldr r2, [r5, #0x4]
+ blx r2
+ add r4, #0x80
+ ldr r0, [r4, #0x0]
+ bl FUN_02042D10
+ b _02042F04
+_02042E2E:
+ add r0, r4, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_02042CF8
+ sub r0, r0, #0x1
+ ldr r1, _02042F0C ; =0x020F43E4
+ lsl r0, r0, #0x4
+ add r5, r1, r0
+ add r0, r4, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ mov r1, #0xf
+ bl FUN_02039438
+ add r6, r0, #0x0
+ add r0, r4, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394B8
+ add r7, r0, #0x0
+ add r0, r4, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394B8
+ str r0, [sp, #0x0]
+ add r0, r4, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_02042D04
+ add r4, #0x80
+ add r3, r0, #0x0
+ ldr r1, [r4, #0x0]
+ ldr r2, [r6, #0x0]
+ add r0, sp, #0x14
+ bl FUN_02042CF0
+ ldr r2, [sp, #0x0]
+ ldr r3, [r5, #0x8]
+ add r0, sp, #0x14
+ add r1, r7, #0x0
+ blx r3
+ b _02042F04
+_02042E9A:
+ add r0, r4, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_02042CF8
+ sub r0, r0, #0x1
+ ldr r1, _02042F0C ; =0x020F43E4
+ lsl r0, r0, #0x4
+ add r5, r1, r0
+ add r0, r4, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ mov r1, #0xf
+ bl FUN_02039438
+ add r6, r0, #0x0
+ add r0, r4, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394B8
+ add r7, r0, #0x0
+ add r0, r4, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394B8
+ str r0, [sp, #0x4]
+ add r0, r4, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_02042D04
+ add r4, #0x80
+ add r3, r0, #0x0
+ ldr r1, [r4, #0x0]
+ ldr r2, [r6, #0x0]
+ add r0, sp, #0x8
+ bl FUN_02042CF0
+ ldr r2, [sp, #0x4]
+ ldr r3, [r5, #0xc]
+ add r0, sp, #0x8
+ add r1, r7, #0x0
+ blx r3
+_02042F04:
+ mov r0, #0x0
+ add sp, #0x20
+ pop {r3-r7, pc}
+ nop
+_02042F0C: .word 0x020F43E4
+
+ thumb_func_start FUN_02042F10
+FUN_02042F10: ; 0x02042F10
+ push {r3, lr}
+ ldr r0, [r0, #0xc]
+ bl FUN_0206BB1C
+ bl FUN_0206B9AC
+ cmp r0, #0x6
+ bge _02042F24
+ mov r0, #0x1
+ pop {r3, pc}
+_02042F24:
+ mov r0, #0x0
+ pop {r3, pc}
+
+ thumb_func_start FUN_02042F28
+FUN_02042F28: ; 0x02042F28
+ push {r3, lr}
+ sub sp, #0x8
+ add r1, r0, #0x0
+ mov r0, #0x2
+ str r0, [sp, #0x0]
+ mov r3, #0x1
+ str r3, [sp, #0x4]
+ ldr r1, [r1, #0xc]
+ ldr r2, _02042F44 ; =0x000001EA
+ mov r0, #0x20
+ bl FUN_0204A0C8
+ add sp, #0x8
+ pop {r3, pc}
+ .balign 4
+_02042F44: .word 0x000001EA
+
+ thumb_func_start FUN_02042F48
+FUN_02042F48: ; 0x02042F48
+ push {r4, lr}
+ add r4, r0, #0x0
+ mov r0, #0x53
+ lsl r0, r0, #0x2
+ strh r0, [r1, #0x0]
+ mov r0, #0xd
+ strh r0, [r2, #0x0]
+ ldr r0, [r4, #0x0]
+ ldr r0, [r0, #0xc]
+ bl FUN_020238F4
+ add r2, r0, #0x0
+ ldr r0, [r4, #0x4]
+ mov r1, #0x0
+ bl FUN_0200ABC0
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02042F6C
+FUN_02042F6C: ; 0x02042F6C
+ push {r3-r7, lr}
+ sub sp, #0x38
+ str r0, [sp, #0x4]
+ bl FUN_02042D04
+ str r0, [sp, #0x10]
+ ldr r0, [sp, #0x4]
+ ldr r0, [r0, #0xc]
+ bl FUN_020238F4
+ str r0, [sp, #0xc]
+ ldr r0, [sp, #0x10]
+ mov r7, #0x0
+ add r5, r0, #0x0
+ add r4, r0, #0x4
+ add r0, r4, #0x0
+ mov r1, #0x97
+ add r2, r7, #0x0
+ add r5, #0xf0
+ bl FUN_020671BC
+ add r1, r7, #0x0
+ str r0, [sp, #0x8]
+ add r0, r4, #0x0
+ add r2, r1, #0x0
+ bl FUN_020671BC
+ str r0, [sp, #0x14]
+ add r0, r4, #0x0
+ mov r1, #0x7
+ add r2, r7, #0x0
+ bl FUN_020671BC
+ add r6, r0, #0x0
+ blx OS_GetTick
+ bl FUN_0201BA10
+ add r1, r0, #0x0
+ ldr r0, [sp, #0x14]
+ str r1, [sp, #0x34]
+ cmp r0, #0x0
+ beq _02042FE8
+ cmp r0, #0x1
+ bne _02042FE6
+ add r0, r6, #0x0
+ bl FUN_02068AAC
+ cmp r0, #0x0
+ beq _02042FE8
+_02042FD0:
+ ldr r0, [sp, #0x34]
+ bl FUN_0201BA10
+ add r1, r0, #0x0
+ add r0, r6, #0x0
+ str r1, [sp, #0x34]
+ bl FUN_02068AAC
+ cmp r0, #0x0
+ bne _02042FD0
+ b _02042FE8
+_02042FE6:
+ str r0, [sp, #0x34]
+_02042FE8:
+ ldr r1, [sp, #0x34]
+ add r0, r4, #0x0
+ bl FUN_0206A23C
+ add r0, r4, #0x0
+ bl FUN_020689E0
+ str r0, [sp, #0x30]
+ add r0, r4, #0x0
+ mov r1, #0x6f
+ add r2, sp, #0x30
+ bl FUN_02067830
+ add r0, r4, #0x0
+ mov r1, #0x4b
+ mov r2, #0x0
+ bl FUN_020671BC
+ str r0, [sp, #0x18]
+ add r0, r4, #0x0
+ mov r1, #0x4a
+ mov r2, #0x0
+ bl FUN_020671BC
+ str r0, [sp, #0x1c]
+ add r0, r4, #0x0
+ mov r1, #0x49
+ mov r2, #0x0
+ bl FUN_020671BC
+ str r0, [sp, #0x20]
+ add r0, r4, #0x0
+ mov r1, #0x48
+ mov r2, #0x0
+ bl FUN_020671BC
+ str r0, [sp, #0x24]
+ add r0, r4, #0x0
+ mov r1, #0x46
+ mov r2, #0x0
+ bl FUN_020671BC
+ add r6, r0, #0x0
+ add r0, r4, #0x0
+ mov r1, #0x47
+ mov r2, #0x0
+ bl FUN_020671BC
+ add r1, r6, r0
+ ldr r0, [sp, #0x24]
+ add r1, r0, r1
+ ldr r0, [sp, #0x20]
+ add r1, r0, r1
+ ldr r0, [sp, #0x1c]
+ add r1, r0, r1
+ ldr r0, [sp, #0x18]
+ add r0, r0, r1
+ str r0, [sp, #0x30]
+ bne _020430DA
+ bl FUN_0201B9EC
+ add r6, r0, #0x0
+ mov r0, #0x1f
+ and r0, r6
+ str r0, [sp, #0x34]
+ add r0, r4, #0x0
+ mov r1, #0x46
+ add r2, sp, #0x34
+ bl FUN_02067830
+ mov r0, #0x3e
+ lsl r0, r0, #0x4
+ and r0, r6
+ lsr r0, r0, #0x5
+ str r0, [sp, #0x34]
+ add r0, r4, #0x0
+ mov r1, #0x47
+ add r2, sp, #0x34
+ bl FUN_02067830
+ mov r0, #0x1f
+ lsl r0, r0, #0xa
+ and r0, r6
+ lsr r0, r0, #0xa
+ str r0, [sp, #0x34]
+ add r0, r4, #0x0
+ mov r1, #0x48
+ add r2, sp, #0x34
+ bl FUN_02067830
+ bl FUN_0201B9EC
+ add r6, r0, #0x0
+ mov r0, #0x1f
+ and r0, r6
+ str r0, [sp, #0x34]
+ add r0, r4, #0x0
+ mov r1, #0x49
+ add r2, sp, #0x34
+ bl FUN_02067830
+ mov r0, #0x3e
+ lsl r0, r0, #0x4
+ and r0, r6
+ lsr r0, r0, #0x5
+ str r0, [sp, #0x34]
+ add r0, r4, #0x0
+ mov r1, #0x4a
+ add r2, sp, #0x34
+ bl FUN_02067830
+ mov r0, #0x1f
+ lsl r0, r0, #0xa
+ and r0, r6
+ lsr r0, r0, #0xa
+ str r0, [sp, #0x34]
+ add r0, r4, #0x0
+ mov r1, #0x4b
+ add r2, sp, #0x34
+ bl FUN_02067830
+_020430DA:
+ ldr r0, [sp, #0x4]
+ ldr r0, [r0, #0xc]
+ bl FUN_0202A918
+ add r6, r0, #0x0
+ add r0, r4, #0x0
+ mov r1, #0x2e
+ mov r2, #0x0
+ bl FUN_020671BC
+ cmp r0, #0x0
+ beq _020430FC
+ mov r0, #0x49
+ bl FUN_0207FCE0
+ ldrb r1, [r5, #0x0]
+ strb r1, [r6, r0]
+_020430FC:
+ add r0, r4, #0x0
+ mov r1, #0x2f
+ mov r2, #0x0
+ bl FUN_020671BC
+ cmp r0, #0x0
+ beq _02043114
+ mov r0, #0x4a
+ bl FUN_0207FCE0
+ ldrb r1, [r5, #0x1]
+ strb r1, [r6, r0]
+_02043114:
+ add r0, r4, #0x0
+ mov r1, #0x30
+ mov r2, #0x0
+ bl FUN_020671BC
+ cmp r0, #0x0
+ beq _0204312C
+ mov r0, #0x4b
+ bl FUN_0207FCE0
+ ldrb r1, [r5, #0x2]
+ strb r1, [r6, r0]
+_0204312C:
+ add r0, r4, #0x0
+ mov r1, #0x31
+ mov r2, #0x0
+ bl FUN_020671BC
+ cmp r0, #0x0
+ beq _02043144
+ mov r0, #0x4c
+ bl FUN_0207FCE0
+ ldrb r1, [r5, #0x3]
+ strb r1, [r6, r0]
+_02043144:
+ add r0, r4, #0x0
+ mov r1, #0x32
+ mov r2, #0x0
+ bl FUN_020671BC
+ cmp r0, #0x0
+ beq _0204315C
+ mov r0, #0x4d
+ bl FUN_0207FCE0
+ ldrb r1, [r5, #0x4]
+ strb r1, [r6, r0]
+_0204315C:
+ add r0, r4, #0x0
+ mov r1, #0x33
+ mov r2, #0x0
+ bl FUN_020671BC
+ cmp r0, #0x0
+ beq _02043174
+ mov r0, #0x4e
+ bl FUN_0207FCE0
+ ldrb r1, [r5, #0x5]
+ strb r1, [r6, r0]
+_02043174:
+ add r0, r4, #0x0
+ mov r1, #0x34
+ mov r2, #0x0
+ bl FUN_020671BC
+ cmp r0, #0x0
+ beq _0204318C
+ mov r0, #0x4f
+ bl FUN_0207FCE0
+ ldrb r1, [r5, #0x6]
+ strb r1, [r6, r0]
+_0204318C:
+ add r0, r4, #0x0
+ mov r1, #0x67
+ mov r2, #0x0
+ bl FUN_020671BC
+ cmp r0, #0x0
+ beq _020431A4
+ mov r0, #0x19
+ bl FUN_0207FCE0
+ ldrb r1, [r5, #0x7]
+ strb r1, [r6, r0]
+_020431A4:
+ add r0, r4, #0x0
+ mov r1, #0x68
+ mov r2, #0x0
+ bl FUN_020671BC
+ cmp r0, #0x0
+ beq _020431BC
+ mov r0, #0x1a
+ bl FUN_0207FCE0
+ ldrb r1, [r5, #0x8]
+ strb r1, [r6, r0]
+_020431BC:
+ add r0, r4, #0x0
+ mov r1, #0x69
+ mov r2, #0x0
+ bl FUN_020671BC
+ cmp r0, #0x0
+ beq _020431D4
+ mov r0, #0x1b
+ bl FUN_0207FCE0
+ ldrb r1, [r5, #0x9]
+ strb r1, [r6, r0]
+_020431D4:
+ ldr r0, [sp, #0x10]
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ bne _0204322C
+ ldr r0, [sp, #0xc]
+ mov r1, #0x20
+ bl FUN_020239A0
+ add r5, r0, #0x0
+ ldr r0, [sp, #0xc]
+ bl FUN_020239BC
+ str r0, [sp, #0x2c]
+ ldr r0, [sp, #0xc]
+ bl FUN_020239CC
+ str r0, [sp, #0x28]
+ mov r0, #0x20
+ bl FUN_020669C0
+ add r7, r0, #0x0
+ add r0, r4, #0x0
+ add r1, r7, #0x0
+ bl FUN_02069B88
+ add r0, r7, #0x0
+ mov r1, #0x90
+ add r2, r5, #0x0
+ bl FUN_02067830
+ add r0, r7, #0x0
+ mov r1, #0x7
+ add r2, sp, #0x2c
+ bl FUN_02067830
+ add r0, r7, #0x0
+ mov r1, #0x9c
+ add r2, sp, #0x28
+ bl FUN_02067830
+ add r0, r5, #0x0
+ add r4, r7, #0x0
+ bl FUN_02021A20
+_0204322C:
+ ldr r1, [sp, #0x8]
+ mov r0, #0x2
+ bl FUN_02015CF8
+ add r3, r0, #0x0
+ mov r0, #0x20
+ str r0, [sp, #0x0]
+ ldr r1, [sp, #0xc]
+ add r0, r4, #0x0
+ mov r2, #0x4
+ bl FUN_0208089C
+ add r0, r4, #0x0
+ bl FUN_02066ED8
+ ldr r0, [sp, #0x4]
+ ldr r0, [r0, #0xc]
+ bl FUN_0206BB1C
+ add r1, r4, #0x0
+ bl FUN_0206B900
+ cmp r0, #0x0
+ beq _02043266
+ ldr r0, [sp, #0x4]
+ add r1, r4, #0x0
+ ldr r0, [r0, #0xc]
+ bl FUN_0202C144
+_02043266:
+ cmp r7, #0x0
+ beq _02043270
+ add r0, r7, #0x0
+ bl FUN_02016A18
+_02043270:
+ add sp, #0x38
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_02043274
+FUN_02043274: ; 0x02043274
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ ldr r0, [r5, #0x0]
+ add r4, r1, #0x0
+ add r6, r2, #0x0
+ bl FUN_02042D04
+ add r7, r0, #0x0
+ mov r0, #0x53
+ lsl r0, r0, #0x2
+ strh r0, [r4, #0x0]
+ mov r0, #0x7
+ strh r0, [r6, #0x0]
+ ldr r0, [r5, #0x0]
+ ldr r0, [r0, #0xc]
+ bl FUN_020238F4
+ add r2, r0, #0x0
+ ldr r0, [r5, #0x4]
+ mov r1, #0x0
+ bl FUN_0200ABC0
+ add r0, r7, #0x4
+ bl FUN_020690E4
+ add r2, r0, #0x0
+ ldr r0, [r5, #0x4]
+ mov r1, #0x1
+ bl FUN_0200ACA4
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_020432B4
+FUN_020432B4: ; 0x020432B4
+ mov r0, #0x53
+ lsl r0, r0, #0x2
+ strh r0, [r1, #0x0]
+ mov r0, #0x4
+ strh r0, [r2, #0x0]
+ bx lr
+
+ thumb_func_start FUN_020432C0
+FUN_020432C0: ; 0x020432C0
+ ldr r3, _020432C4 ; =FUN_02042F6C
+ bx r3
+ .balign 4
+_020432C4: .word FUN_02042F6C
+
+ thumb_func_start FUN_020432C8
+FUN_020432C8: ; 0x020432C8
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ ldr r0, [r5, #0x0]
+ add r4, r1, #0x0
+ add r6, r2, #0x0
+ bl FUN_02042D04
+ add r7, r0, #0x0
+ mov r0, #0x53
+ lsl r0, r0, #0x2
+ strh r0, [r4, #0x0]
+ mov r0, #0x8
+ strh r0, [r6, #0x0]
+ ldr r0, [r5, #0x0]
+ ldr r0, [r0, #0xc]
+ bl FUN_020238F4
+ add r2, r0, #0x0
+ ldr r0, [r5, #0x4]
+ mov r1, #0x0
+ bl FUN_0200ABC0
+ add r0, r7, #0x4
+ bl FUN_020690E4
+ add r2, r0, #0x0
+ ldr r0, [r5, #0x4]
+ mov r1, #0x1
+ bl FUN_0200AC60
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_02043308
+FUN_02043308: ; 0x02043308
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ ldr r0, [r5, #0xc]
+ bl FUN_0206F158
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_02042D04
+ add r1, r0, #0x0
+ ldr r1, [r1, #0x0]
+ add r0, r4, #0x0
+ lsl r1, r1, #0x10
+ lsr r1, r1, #0x10
+ mov r2, #0x1
+ mov r3, #0x20
+ bl FUN_0206ED24
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_02043330
+FUN_02043330: ; 0x02043330
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ ldr r0, [r5, #0xc]
+ bl FUN_0206F158
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_02042D04
+ add r1, r0, #0x0
+ ldr r1, [r1, #0x0]
+ add r0, r4, #0x0
+ lsl r1, r1, #0x10
+ lsr r1, r1, #0x10
+ mov r2, #0x1
+ mov r3, #0x20
+ bl FUN_0206ED38
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_02043358
+FUN_02043358: ; 0x02043358
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ ldr r0, [r5, #0x0]
+ add r4, r1, #0x0
+ add r6, r2, #0x0
+ bl FUN_02042D04
+ ldr r0, [r0, #0x0]
+ lsl r0, r0, #0x10
+ lsr r7, r0, #0x10
+ mov r0, #0x53
+ lsl r0, r0, #0x2
+ strh r0, [r4, #0x0]
+ mov r0, #0x9
+ strh r0, [r6, #0x0]
+ ldr r0, [r5, #0x0]
+ ldr r0, [r0, #0xc]
+ bl FUN_020238F4
+ add r2, r0, #0x0
+ ldr r0, [r5, #0x4]
+ mov r1, #0x0
+ bl FUN_0200ABC0
+ ldr r0, [r5, #0x4]
+ mov r1, #0x1
+ add r2, r7, #0x0
+ bl FUN_0200AE38
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_02043394
+FUN_02043394: ; 0x02043394
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ ldr r0, [r5, #0x0]
+ add r4, r1, #0x0
+ ldr r0, [r0, #0xc]
+ add r6, r2, #0x0
+ bl FUN_0206F158
+ ldr r0, [r5, #0x0]
+ bl FUN_02042D04
+ ldr r0, [r0, #0x0]
+ mov r1, #0x0
+ lsl r0, r0, #0x10
+ lsr r2, r0, #0x10
+ mov r0, #0x53
+ lsl r0, r0, #0x2
+ strh r0, [r4, #0x0]
+ mov r0, #0x5
+ strh r0, [r6, #0x0]
+ ldr r0, [r5, #0x4]
+ bl FUN_0200AE38
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_020433C4
+FUN_020433C4: ; 0x020433C4
+ mov r0, #0x1
+ bx lr
+
+ thumb_func_start FUN_020433C8
+FUN_020433C8: ; 0x020433C8
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl FUN_02042D04
+ add r1, r0, #0x0
+ ldr r0, [r4, #0xc]
+ bl FUN_02023BD4
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_020433DC
+FUN_020433DC: ; 0x020433DC
+ push {r3-r7, lr}
+ sub sp, #0x8
+ add r5, r0, #0x0
+ ldr r0, [r5, #0x0]
+ add r4, r1, #0x0
+ add r6, r2, #0x0
+ bl FUN_02042D04
+ add r7, r0, #0x0
+ mov r0, #0x53
+ lsl r0, r0, #0x2
+ strh r0, [r4, #0x0]
+ mov r0, #0xa
+ strh r0, [r6, #0x0]
+ ldr r0, [r5, #0x0]
+ ldr r0, [r0, #0xc]
+ bl FUN_020238F4
+ add r2, r0, #0x0
+ ldr r0, [r5, #0x4]
+ mov r1, #0x0
+ bl FUN_0200ABC0
+ add r0, r7, #0x0
+ mov r1, #0x20
+ bl FUN_02023AF4
+ add r4, r0, #0x0
+ mov r1, #0x1
+ str r1, [sp, #0x0]
+ mov r0, #0x2
+ str r0, [sp, #0x4]
+ ldr r0, [r5, #0x4]
+ add r2, r4, #0x0
+ mov r3, #0x0
+ bl FUN_0200ABB4
+ add r0, r4, #0x0
+ bl FUN_02021A20
+ add sp, #0x8
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_02043430
+FUN_02043430: ; 0x02043430
+ mov r0, #0x53
+ lsl r0, r0, #0x2
+ strh r0, [r1, #0x0]
+ mov r0, #0x6
+ strh r0, [r2, #0x0]
+ bx lr
+
+ thumb_func_start FUN_0204343C
+FUN_0204343C: ; 0x0204343C
+ push {r3, lr}
+ ldr r0, [r0, #0xc]
+ bl FUN_02026CC4
+ bl FUN_02025DB0
+ cmp r0, #0xc8
+ bge _02043450
+ mov r0, #0x1
+ pop {r3, pc}
+_02043450:
+ mov r0, #0x0
+ pop {r3, pc}
+
+ thumb_func_start FUN_02043454
+FUN_02043454: ; 0x02043454
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ bl FUN_02042D04
+ add r4, r0, #0x0
+ ldr r0, [r5, #0xc]
+ bl FUN_02026CC4
+ ldr r1, [r4, #0x0]
+ bl FUN_02025D6C
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_0204346C
+FUN_0204346C: ; 0x0204346C
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ ldr r0, [r5, #0x0]
+ add r4, r1, #0x0
+ add r6, r2, #0x0
+ bl FUN_02042D04
+ ldr r7, [r0, #0x0]
+ mov r0, #0x53
+ lsl r0, r0, #0x2
+ strh r0, [r4, #0x0]
+ mov r0, #0xb
+ strh r0, [r6, #0x0]
+ ldr r0, [r5, #0x0]
+ ldr r0, [r0, #0xc]
+ bl FUN_020238F4
+ add r2, r0, #0x0
+ ldr r0, [r5, #0x4]
+ mov r1, #0x0
+ bl FUN_0200ABC0
+ ldr r0, [r5, #0x4]
+ mov r1, #0x1
+ add r2, r7, #0x0
+ bl FUN_0200B350
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_020434A4
+FUN_020434A4: ; 0x020434A4
+ mov r0, #0x53
+ lsl r0, r0, #0x2
+ strh r0, [r1, #0x0]
+ mov r0, #0x6
+ strh r0, [r2, #0x0]
+ bx lr
+
+ thumb_func_start FUN_020434B0
+FUN_020434B0: ; 0x020434B0
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ bl FUN_02042D04
+ ldr r4, [r0, #0x4]
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x1
+ beq _020434CA
+ cmp r0, #0x2
+ beq _020434DA
+ cmp r0, #0x3
+ beq _020434DE
+ b _020434E2
+_020434CA:
+ ldr r0, [r5, #0xc]
+ bl FUN_02029C80
+ add r1, r4, #0x0
+ mov r2, #0x1
+ bl FUN_02029DD4
+ pop {r3-r5, pc}
+_020434DA:
+ mov r0, #0x1
+ pop {r3-r5, pc}
+_020434DE:
+ mov r0, #0x1
+ pop {r3-r5, pc}
+_020434E2:
+ mov r0, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_020434E8
+FUN_020434E8: ; 0x020434E8
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ bl FUN_02042D04
+ ldr r4, [r0, #0x4]
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x1
+ beq _02043502
+ cmp r0, #0x2
+ beq _02043512
+ cmp r0, #0x3
+ beq _02043526
+ pop {r3-r5, pc}
+_02043502:
+ ldr r0, [r5, #0xc]
+ bl FUN_02029C80
+ add r1, r4, #0x0
+ mov r2, #0x1
+ bl FUN_02029D44
+ pop {r3-r5, pc}
+_02043512:
+ ldr r0, [r5, #0xc]
+ bl FUN_02027E24
+ bl FUN_0202708C
+ add r1, r4, #0x0
+ mov r2, #0x1
+ bl FUN_020271A4
+ pop {r3-r5, pc}
+_02043526:
+ ldr r0, [r5, #0xc]
+ bl FUN_02027E24
+ bl FUN_0202708C
+ add r1, r4, #0x0
+ bl FUN_02027264
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_02043538
+FUN_02043538: ; 0x02043538
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ ldr r0, [r5, #0x0]
+ add r4, r1, #0x0
+ add r6, r2, #0x0
+ bl FUN_02042D04
+ ldr r2, [r0, #0x4]
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x1
+ beq _02043558
+ cmp r0, #0x2
+ beq _02043562
+ cmp r0, #0x3
+ beq _0204356C
+ b _02043574
+_02043558:
+ ldr r0, [r5, #0x4]
+ mov r1, #0x1
+ bl FUN_0200B534
+ b _02043574
+_02043562:
+ ldr r0, [r5, #0x4]
+ mov r1, #0x1
+ bl FUN_0200B660
+ b _02043574
+_0204356C:
+ ldr r0, [r5, #0x4]
+ mov r1, #0x1
+ bl FUN_0200B6D0
+_02043574:
+ mov r0, #0x53
+ lsl r0, r0, #0x2
+ strh r0, [r4, #0x0]
+ mov r0, #0xc
+ strh r0, [r6, #0x0]
+ ldr r0, [r5, #0x0]
+ ldr r0, [r0, #0xc]
+ bl FUN_020238F4
+ add r2, r0, #0x0
+ ldr r0, [r5, #0x4]
+ mov r1, #0x0
+ bl FUN_0200ABC0
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_02043594
+FUN_02043594: ; 0x02043594
+ mov r0, #0x53
+ lsl r0, r0, #0x2
+ strh r0, [r1, #0x0]
+ mov r0, #0x6
+ strh r0, [r2, #0x0]
+ bx lr
+
+ thumb_func_start FUN_020435A0
+FUN_020435A0: ; 0x020435A0
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ ldr r0, [r5, #0xc]
+ bl FUN_0206F158
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_02042D04
+ ldr r1, _020435C0 ; =0x000001C6
+ add r0, r4, #0x0
+ mov r2, #0x1
+ mov r3, #0x20
+ bl FUN_0206ED24
+ pop {r3-r5, pc}
+ .balign 4
+_020435C0: .word 0x000001C6
+
+ thumb_func_start FUN_020435C4
+FUN_020435C4: ; 0x020435C4
+ push {r3-r5, lr}
+ add r4, r0, #0x0
+ ldr r0, [r4, #0xc]
+ bl FUN_0206F158
+ add r5, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_02042D04
+ ldr r0, [r4, #0xc]
+ bl FUN_020462AC
+ add r4, r0, #0x0
+ ldr r1, _020435F4 ; =0x000001C6
+ add r0, r5, #0x0
+ mov r2, #0x1
+ mov r3, #0x20
+ bl FUN_0206ED38
+ add r0, r4, #0x0
+ mov r1, #0x0
+ bl FUN_0205F478
+ pop {r3-r5, pc}
+ .balign 4
+_020435F4: .word 0x000001C6
+
+ thumb_func_start FUN_020435F8
+FUN_020435F8: ; 0x020435F8
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ ldr r0, [r5, #0x0]
+ add r4, r1, #0x0
+ add r6, r2, #0x0
+ bl FUN_02042D04
+ mov r0, #0x53
+ lsl r0, r0, #0x2
+ strh r0, [r4, #0x0]
+ mov r0, #0xe
+ strh r0, [r6, #0x0]
+ ldr r0, [r5, #0x0]
+ ldr r0, [r0, #0xc]
+ bl FUN_020238F4
+ add r2, r0, #0x0
+ ldr r0, [r5, #0x4]
+ mov r1, #0x0
+ bl FUN_0200ABC0
+ ldr r0, [r5, #0x4]
+ ldr r2, _02043630 ; =0x000001C6
+ mov r1, #0x1
+ bl FUN_0200AE38
+ pop {r4-r6, pc}
+ nop
+_02043630: .word 0x000001C6
+
+ thumb_func_start FUN_02043634
+FUN_02043634: ; 0x02043634
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ ldr r0, [r5, #0x0]
+ add r4, r1, #0x0
+ ldr r0, [r0, #0xc]
+ add r6, r2, #0x0
+ bl FUN_0206F158
+ ldr r0, [r5, #0x0]
+ bl FUN_02042D04
+ mov r2, #0x53
+ lsl r2, r2, #0x2
+ strh r2, [r4, #0x0]
+ mov r0, #0x5
+ strh r0, [r6, #0x0]
+ ldr r0, [r5, #0x4]
+ mov r1, #0x0
+ add r2, #0x7a
+ bl FUN_0200AE38
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_02043660
+FUN_02043660: ; 0x02043660
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ ldr r0, [r5, #0xc]
+ bl FUN_0206F158
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_02042D04
+ mov r1, #0x71
+ add r0, r4, #0x0
+ lsl r1, r1, #0x2
+ mov r2, #0x1
+ mov r3, #0x20
+ bl FUN_0206ED24
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_02043684
+FUN_02043684: ; 0x02043684
+ push {r3-r5, lr}
+ add r4, r0, #0x0
+ ldr r0, [r4, #0xc]
+ bl FUN_0206F158
+ add r5, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_02042D04
+ ldr r0, [r4, #0xc]
+ bl FUN_020462AC
+ mov r1, #0x71
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ lsl r1, r1, #0x2
+ mov r2, #0x1
+ mov r3, #0x20
+ bl FUN_0206ED38
+ add r0, r4, #0x0
+ mov r1, #0x1
+ bl FUN_0205F478
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_020436B8
+FUN_020436B8: ; 0x020436B8
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ ldr r0, [r5, #0x0]
+ add r4, r1, #0x0
+ add r6, r2, #0x0
+ bl FUN_02042D04
+ mov r0, #0x53
+ lsl r0, r0, #0x2
+ strh r0, [r4, #0x0]
+ mov r0, #0xf
+ strh r0, [r6, #0x0]
+ ldr r0, [r5, #0x0]
+ ldr r0, [r0, #0xc]
+ bl FUN_020238F4
+ add r2, r0, #0x0
+ ldr r0, [r5, #0x4]
+ mov r1, #0x0
+ bl FUN_0200ABC0
+ mov r2, #0x71
+ ldr r0, [r5, #0x4]
+ mov r1, #0x1
+ lsl r2, r2, #0x2
+ bl FUN_0200AE38
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_020436F0
+FUN_020436F0: ; 0x020436F0
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ ldr r0, [r5, #0x0]
+ add r4, r1, #0x0
+ ldr r0, [r0, #0xc]
+ add r6, r2, #0x0
+ bl FUN_0206F158
+ ldr r0, [r5, #0x0]
+ bl FUN_02042D04
+ mov r2, #0x53
+ lsl r2, r2, #0x2
+ strh r2, [r4, #0x0]
+ mov r0, #0x5
+ strh r0, [r6, #0x0]
+ ldr r0, [r5, #0x4]
+ mov r1, #0x0
+ add r2, #0x78
+ bl FUN_0200AE38
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_0204371C
+FUN_0204371C: ; 0x0204371C
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ ldr r0, [r5, #0xc]
+ bl FUN_0206F158
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_02042D04
+ ldr r1, _0204373C ; =0x000001C7
+ add r0, r4, #0x0
+ mov r2, #0x1
+ mov r3, #0x20
+ bl FUN_0206ED24
+ pop {r3-r5, pc}
+ .balign 4
+_0204373C: .word 0x000001C7
+
+ thumb_func_start FUN_02043740
+FUN_02043740: ; 0x02043740
+ push {r3-r5, lr}
+ add r4, r0, #0x0
+ ldr r0, [r4, #0xc]
+ bl FUN_0206F158
+ add r5, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_02042D04
+ ldr r0, [r4, #0xc]
+ bl FUN_020462AC
+ add r4, r0, #0x0
+ ldr r1, _02043770 ; =0x000001C7
+ add r0, r5, #0x0
+ mov r2, #0x1
+ mov r3, #0x20
+ bl FUN_0206ED38
+ add r0, r4, #0x0
+ mov r1, #0x2
+ bl FUN_0205F478
+ pop {r3-r5, pc}
+ .balign 4
+_02043770: .word 0x000001C7
+
+ thumb_func_start FUN_02043774
+FUN_02043774: ; 0x02043774
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ ldr r0, [r5, #0x0]
+ add r4, r1, #0x0
+ add r6, r2, #0x0
+ bl FUN_02042D04
+ mov r0, #0x53
+ lsl r0, r0, #0x2
+ strh r0, [r4, #0x0]
+ mov r0, #0x10
+ strh r0, [r6, #0x0]
+ ldr r0, [r5, #0x0]
+ ldr r0, [r0, #0xc]
+ bl FUN_020238F4
+ add r2, r0, #0x0
+ ldr r0, [r5, #0x4]
+ mov r1, #0x0
+ bl FUN_0200ABC0
+ ldr r0, [r5, #0x4]
+ ldr r2, _020437AC ; =0x000001C7
+ mov r1, #0x1
+ bl FUN_0200AE38
+ pop {r4-r6, pc}
+ nop
+_020437AC: .word 0x000001C7
+
+ thumb_func_start FUN_020437B0
+FUN_020437B0: ; 0x020437B0
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ ldr r0, [r5, #0x0]
+ add r4, r1, #0x0
+ ldr r0, [r0, #0xc]
+ add r6, r2, #0x0
+ bl FUN_0206F158
+ ldr r0, [r5, #0x0]
+ bl FUN_02042D04
+ mov r2, #0x53
+ lsl r2, r2, #0x2
+ strh r2, [r4, #0x0]
+ mov r0, #0x5
+ strh r0, [r6, #0x0]
+ ldr r0, [r5, #0x4]
+ mov r1, #0x0
+ add r2, #0x7b
+ bl FUN_0200AE38
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_020437DC
+FUN_020437DC: ; 0x020437DC
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ ldr r0, [r5, #0xc]
+ bl FUN_0204C1A8
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_02042D04
+ add r0, r4, #0x0
+ bl FUN_0204BEC8
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_020437F8
+FUN_020437F8: ; 0x020437F8
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ ldr r0, [r5, #0xc]
+ bl FUN_0204C1A8
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_02042D04
+ add r1, r0, #0x0
+ ldr r1, [r1, #0x0]
+ add r0, r4, #0x0
+ bl FUN_0204BED8
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_02043818
+FUN_02043818: ; 0x02043818
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ ldr r0, [r5, #0x0]
+ add r4, r1, #0x0
+ add r6, r2, #0x0
+ bl FUN_02042D04
+ add r7, r0, #0x0
+ mov r0, #0x53
+ lsl r0, r0, #0x2
+ strh r0, [r4, #0x0]
+ mov r0, #0x12
+ strh r0, [r6, #0x0]
+ ldr r0, [r5, #0x0]
+ ldr r0, [r0, #0xc]
+ bl FUN_020238F4
+ add r2, r0, #0x0
+ ldr r0, [r5, #0x4]
+ mov r1, #0x0
+ bl FUN_0200ABC0
+ ldr r0, [r5, #0x4]
+ ldr r2, [r7, #0x0]
+ mov r1, #0x1
+ bl FUN_0200B02C
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_02043850
+FUN_02043850: ; 0x02043850
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ ldr r0, [r5, #0x0]
+ add r4, r1, #0x0
+ add r6, r2, #0x0
+ bl FUN_02042D04
+ mov r0, #0x53
+ lsl r0, r0, #0x2
+ strh r0, [r4, #0x0]
+ mov r0, #0x13
+ strh r0, [r6, #0x0]
+ ldr r0, [r5, #0x0]
+ ldr r0, [r0, #0xc]
+ bl FUN_020238F4
+ add r2, r0, #0x0
+ ldr r0, [r5, #0x4]
+ mov r1, #0x0
+ bl FUN_0200ABC0
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_0204387C
+FUN_0204387C: ; 0x0204387C
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0xc]
+ bl FUN_020462AC
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ cmp r0, #0x0
+ bne _020438B2
+ add r0, r4, #0x0
+ bl FUN_0205F224
+ add r5, #0x80
+ ldr r0, [r5, #0x0]
+ bl FUN_0204B9EC
+ b _020438CA
+_020438B2:
+ cmp r0, #0x1
+ bne _020438C6
+ add r0, r4, #0x0
+ bl FUN_0205F234
+ add r5, #0x80
+ ldr r0, [r5, #0x0]
+ bl FUN_0204BA1C
+ b _020438CA
+_020438C6:
+ bl ErrorHandling
+_020438CA:
+ mov r0, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_020438D0
+FUN_020438D0: ; 0x020438D0
+ push {r4-r6, lr}
+ add r4, r0, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0xc]
+ bl FUN_02022528
+ add r6, r0, #0x0
+ mov r0, #0x20
+ bl FUN_020669C0
+ add r5, r0, #0x0
+ add r0, r4, #0x0
+ bl ScriptReadHalfword
+ add r4, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r4, #0x0]
+ bl FUN_020394B8
+ add r4, r0, #0x0
+ add r0, r6, #0x0
+ bl FUN_0202C000
+ cmp r0, #0x6
+ bne _02043908
+ mov r0, #0x1
+ b _0204390A
+_02043908:
+ mov r0, #0x0
+_0204390A:
+ strh r0, [r4, #0x0]
+ add r0, r5, #0x0
+ bl FUN_02016A18
+ mov r0, #0x0
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_02043918
+FUN_02043918: ; 0x02043918
+ push {r4-r7, lr}
+ sub sp, #0xc
+ add r6, r0, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0xc]
+ bl FUN_02022528
+ add r7, r0, #0x0
+ add r0, r6, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0xc]
+ bl FUN_02022510
+ str r0, [sp, #0x8]
+ mov r0, #0x20
+ bl FUN_020669C0
+ add r4, r0, #0x0
+ add r0, r6, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0xc]
+ bl FUN_020238F4
+ str r0, [sp, #0x4]
+ add r0, r6, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0xc]
+ bl FUN_02024DA0
+ mov r5, #0x0
+_0204395C:
+ add r0, r7, #0x0
+ add r1, r5, #0x0
+ add r2, r4, #0x0
+ bl FUN_0202BFD8
+ mov r0, #0x20
+ str r0, [sp, #0x0]
+ ldr r1, [sp, #0x4]
+ add r0, r4, #0x0
+ mov r2, #0x2
+ mov r3, #0x0
+ bl FUN_0208089C
+ add r0, r4, #0x0
+ bl FUN_020690E4
+ add r1, r0, #0x0
+ ldr r0, [sp, #0x8]
+ bl FUN_0206B20C
+ cmp r0, #0x0
+ bne _0204398C
+ bl ErrorHandling
+_0204398C:
+ add r0, r6, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ add r1, r4, #0x0
+ ldr r0, [r0, #0xc]
+ bl FUN_0202C144
+ add r5, r5, #0x1
+ cmp r5, #0x6
+ blt _0204395C
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ add r0, r7, #0x0
+ bl FUN_0202BEDC
+ mov r0, #0x0
+ add sp, #0xc
+ pop {r4-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_020439B4
+FUN_020439B4: ; 0x020439B4
+ push {r3-r7, lr}
+ add r4, r0, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r6, r0, #0x0
+ add r0, r4, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394B8
+ add r5, r0, #0x0
+ cmp r6, #0x3
+ bhi _02043A40
+ add r0, r6, r6
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_020439EE: ; jump table (using 16-bit offset)
+ .short _020439F6 - _020439EE - 2; case 0
+ .short _02043A02 - _020439EE - 2; case 1
+ .short _02043A0E - _020439EE - 2; case 2
+ .short _02043A1A - _020439EE - 2; case 3
+_020439F6:
+ add r4, #0x80
+ ldr r0, [r4, #0x0]
+ bl FUN_0204BAC4
+ strh r0, [r5, #0x0]
+ b _02043A40
+_02043A02:
+ add r4, #0x80
+ ldr r0, [r4, #0x0]
+ bl FUN_0204BAD4
+ strh r0, [r5, #0x0]
+ b _02043A40
+_02043A0E:
+ add r4, #0x80
+ ldr r0, [r4, #0x0]
+ bl FUN_0204BAE4
+ strh r0, [r5, #0x0]
+ b _02043A40
+_02043A1A:
+ add r0, r4, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_0204BAD4
+ add r6, r0, #0x0
+ add r0, r4, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_0204BAC4
+ add r4, #0x80
+ add r7, r0, #0x0
+ ldr r0, [r4, #0x0]
+ bl FUN_0204BAE4
+ add r0, r7, r0
+ add r0, r6, r0
+ strh r0, [r5, #0x0]
+_02043A40:
+ mov r0, #0x0
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_02043A44
+FUN_02043A44: ; 0x02043A44
+ push {r3-r7, lr}
+ add r4, r0, #0x0
+ add r1, r4, #0x0
+ add r1, #0x80
+ ldr r5, [r1, #0x0]
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r6, r0, #0x0
+ add r0, r4, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r7, r0, #0x0
+ add r0, r5, #0x0
+ mov r1, #0x26
+ bl FUN_02039438
+ lsl r1, r6, #0x18
+ lsl r2, r7, #0x18
+ add r4, #0x80
+ add r5, r0, #0x0
+ ldr r0, [r4, #0x0]
+ lsr r1, r1, #0x18
+ lsr r2, r2, #0x18
+ bl FUN_021E2950
+ str r0, [r5, #0x0]
+ mov r0, #0x0
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_02043A94
+FUN_02043A94: ; 0x02043A94
+ push {r3, lr}
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ mov r1, #0x26
+ bl FUN_02039438
+ ldr r0, [r0, #0x0]
+ bl FUN_021E29B4
+ mov r0, #0x0
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_02043AAC
+FUN_02043AAC: ; 0x02043AAC
+ push {r4, lr}
+ add r4, r0, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ mov r1, #0x26
+ bl FUN_02039438
+ add r1, r0, #0x0
+ add r4, #0x80
+ ldr r0, [r4, #0x0]
+ ldr r1, [r1, #0x0]
+ bl FUN_021E29C8
+ mov r0, #0x0
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02043ACC
+FUN_02043ACC: ; 0x02043ACC
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0xc]
+ bl FUN_0202390C
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r5, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r5, #0x0]
+ bl FUN_020394B8
+ add r5, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_02028930
+ strh r0, [r5, #0x0]
+ mov r0, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_02043AFC
+FUN_02043AFC: ; 0x02043AFC
+ push {r3-r5, lr}
+ add r4, r0, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0xc]
+ bl FUN_0202390C
+ add r5, r0, #0x0
+ add r0, r4, #0x0
+ bl ScriptReadHalfword
+ add r4, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r4, #0x0]
+ bl FUN_020394F0
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_02028934
+ mov r0, #0x0
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_02043B28
+FUN_02043B28: ; 0x02043B28
+ push {r3-r5, lr}
+ add r4, r0, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0xc]
+ bl FUN_0202390C
+ add r5, r0, #0x0
+ add r0, r4, #0x0
+ bl ScriptReadHalfword
+ add r4, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r4, #0x0]
+ bl FUN_020394F0
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_0202896C
+ mov r0, #0x0
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_02043B54
+FUN_02043B54: ; 0x02043B54
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0xc]
+ bl FUN_0202390C
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r5, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r5, #0x0]
+ bl FUN_020394B8
+ add r1, r0, #0x0
+ ldrh r1, [r1, #0x0]
+ add r0, r4, #0x0
+ bl FUN_0202896C
+ mov r0, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_02043B84
+FUN_02043B84: ; 0x02043B84
+ push {r4-r6, lr}
+ add r4, r0, #0x0
+ add r0, #0x80
+ ldr r5, [r0, #0x0]
+ add r0, r5, #0x0
+ bl FUN_020377AC
+ bl FUN_020238F4
+ ldr r0, [r5, #0xc]
+ bl FUN_0202390C
+ add r6, r0, #0x0
+ add r0, r4, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394B8
+ add r5, r0, #0x0
+ add r0, r4, #0x0
+ bl ScriptReadWord
+ add r4, r0, #0x0
+ add r0, r6, #0x0
+ bl FUN_02028930
+ cmp r0, r4
+ bhs _02043BC8
+ mov r0, #0x0
+ b _02043BCA
+_02043BC8:
+ mov r0, #0x1
+_02043BCA:
+ strh r0, [r5, #0x0]
+ mov r0, #0x0
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_02043BD0
+FUN_02043BD0: ; 0x02043BD0
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ add r0, #0x80
+ ldr r4, [r0, #0x0]
+ add r0, r4, #0x0
+ bl FUN_020377AC
+ bl FUN_020238F4
+ ldr r0, [r4, #0xc]
+ bl FUN_0202390C
+ add r6, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394B8
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r5, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r5, #0x0]
+ bl FUN_020394B8
+ ldrh r5, [r0, #0x0]
+ add r0, r6, #0x0
+ bl FUN_02028930
+ cmp r0, r5
+ bhs _02043C1E
+ mov r0, #0x0
+ b _02043C20
+_02043C1E:
+ mov r0, #0x1
+_02043C20:
+ strh r0, [r4, #0x0]
+ mov r0, #0x0
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_02043C28
+FUN_02043C28: ; 0x02043C28
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0xc]
+ bl FUN_0202390C
+ add r6, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394B8
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r5, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r5, #0x0]
+ bl FUN_020394F0
+ add r1, r0, #0x0
+ add r0, r6, #0x0
+ bl FUN_02028954
+ strh r0, [r4, #0x0]
+ mov r0, #0x0
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_02043C6C
+FUN_02043C6C: ; 0x02043C6C
+ push {r3-r5, lr}
+ add r4, r0, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020377AC
+ bl FUN_020238F4
+ add r5, r0, #0x0
+ add r0, r4, #0x0
+ bl ScriptReadWord
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_02023A30
+ mov r0, #0x0
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_02043C90
+FUN_02043C90: ; 0x02043C90
+ push {r3-r5, lr}
+ add r4, r0, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020377AC
+ bl FUN_020238F4
+ add r5, r0, #0x0
+ add r0, r4, #0x0
+ bl ScriptReadWord
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_02023A54
+ mov r0, #0x0
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_02043CB4
+FUN_02043CB4: ; 0x02043CB4
+ push {r3-r5, lr}
+ add r4, r0, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020377AC
+ bl FUN_020238F4
+ add r5, r0, #0x0
+ add r0, r4, #0x0
+ bl ScriptReadHalfword
+ add r4, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r4, #0x0]
+ bl FUN_020394F0
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_02023A54
+ mov r0, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_02043CE4
+FUN_02043CE4: ; 0x02043CE4
+ push {r4-r6, lr}
+ add r4, r0, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020377AC
+ bl FUN_020238F4
+ add r6, r0, #0x0
+ add r0, r4, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394B8
+ add r5, r0, #0x0
+ add r0, r4, #0x0
+ bl ScriptReadWord
+ add r4, r0, #0x0
+ add r0, r6, #0x0
+ bl FUN_02023A10
+ cmp r0, r4
+ bhs _02043D20
+ mov r0, #0x0
+ b _02043D22
+_02043D20:
+ mov r0, #0x1
+_02043D22:
+ strh r0, [r5, #0x0]
+ mov r0, #0x0
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_02043D28
+FUN_02043D28: ; 0x02043D28
+ push {r4-r6, lr}
+ add r4, r0, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020377AC
+ bl FUN_020238F4
+ add r6, r0, #0x0
+ add r0, r4, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394B8
+ add r5, r0, #0x0
+ add r0, r4, #0x0
+ bl ScriptReadHalfword
+ add r4, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r4, #0x0]
+ bl FUN_020394F0
+ add r4, r0, #0x0
+ add r0, r6, #0x0
+ bl FUN_02023A10
+ cmp r0, r4
+ bhs _02043D6E
+ mov r0, #0x0
+ b _02043D70
+_02043D6E:
+ mov r0, #0x1
+_02043D70:
+ strh r0, [r5, #0x0]
+ mov r0, #0x0
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_02043D78
+FUN_02043D78: ; 0x02043D78
+ push {r3-r7, lr}
+ add r4, r0, #0x0
+ add r1, r4, #0x0
+ add r1, #0x80
+ ldr r5, [r1, #0x0]
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r6, r0, #0x0
+ add r0, r4, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r7, r0, #0x0
+ add r0, r5, #0x0
+ mov r1, #0x27
+ bl FUN_02039438
+ lsl r1, r6, #0x18
+ lsl r2, r7, #0x18
+ add r4, #0x80
+ add r5, r0, #0x0
+ ldr r0, [r4, #0x0]
+ lsr r1, r1, #0x18
+ lsr r2, r2, #0x18
+ bl FUN_021E27E8
+ str r0, [r5, #0x0]
+ mov r0, #0x0
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_02043DC8
+FUN_02043DC8: ; 0x02043DC8
+ push {r3, lr}
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ mov r1, #0x27
+ bl FUN_02039438
+ ldr r0, [r0, #0x0]
+ bl FUN_021E288C
+ mov r0, #0x0
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_02043DE0
+FUN_02043DE0: ; 0x02043DE0
+ push {r4, lr}
+ add r4, r0, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ mov r1, #0x27
+ bl FUN_02039438
+ add r1, r0, #0x0
+ add r4, #0x80
+ ldr r0, [r4, #0x0]
+ ldr r1, [r1, #0x0]
+ bl FUN_021E28A0
+ mov r0, #0x0
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02043E00
+FUN_02043E00: ; 0x02043E00
+ push {r3-r5, lr}
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ mov r1, #0xf
+ ldr r5, [r0, #0xc]
+ bl FUN_02039438
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_02023D58
+ ldr r1, [r4, #0x0]
+ bl FUN_021ED4E0
+ mov r0, #0x0
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_02043E20
+FUN_02043E20: ; 0x02043E20
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r1, r5, #0x0
+ add r1, #0x80
+ ldr r1, [r1, #0x0]
+ ldr r4, [r1, #0xc]
+ bl ScriptReadHalfword
+ add r5, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r5, #0x0]
+ bl FUN_020394B8
+ add r5, r0, #0x0
+ add r0, r4, #0x0
+ mov r1, #0x8
+ bl FUN_02022610
+ bl FUN_021ED5EC
+ strh r0, [r5, #0x0]
+ mov r0, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_02043E50
+FUN_02043E50: ; 0x02043E50
+ push {r3, lr}
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ mov r1, #0x8
+ ldr r0, [r0, #0xc]
+ bl FUN_02022610
+ bl FUN_021ECD64
+ mov r0, #0x0
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_02043E68
+FUN_02043E68: ; 0x02043E68
+ push {r4-r6, lr}
+ add r4, r0, #0x0
+ add r0, #0x80
+ ldr r5, [r0, #0x0]
+ mov r1, #0x8
+ ldr r0, [r5, #0xc]
+ bl FUN_02022610
+ add r6, r0, #0x0
+ ldr r0, [r5, #0xc]
+ bl FUN_0206BB1C
+ add r4, #0x80
+ add r5, r0, #0x0
+ ldr r0, [r4, #0x0]
+ bl FUN_020377AC
+ bl FUN_020238F4
+ add r2, r0, #0x0
+ add r0, r6, #0x0
+ add r1, r5, #0x0
+ bl FUN_021ED0CC
+ mov r0, #0x0
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_02043E9C
+FUN_02043E9C: ; 0x02043E9C
+ push {r3-r7, lr}
+ add r4, r0, #0x0
+ add r0, #0x80
+ ldr r5, [r0, #0x0]
+ mov r1, #0xf
+ add r0, r5, #0x0
+ bl FUN_02039438
+ add r7, r0, #0x0
+ add r0, r4, #0x0
+ ldr r6, [r5, #0xc]
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394B8
+ str r0, [sp, #0x0]
+ add r0, r4, #0x0
+ bl ScriptReadHalfword
+ add r4, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r4, #0x0]
+ bl FUN_020394F0
+ add r4, r0, #0x0
+ add r0, r6, #0x0
+ mov r1, #0x8
+ bl FUN_02022610
+ add r6, r0, #0x0
+ ldr r0, [r5, #0xc]
+ bl FUN_0206BB1C
+ lsl r3, r4, #0x18
+ ldr r1, [r7, #0x0]
+ add r2, r6, #0x0
+ lsr r3, r3, #0x18
+ bl FUN_021EC71C
+ ldr r1, [sp, #0x0]
+ strh r0, [r1, #0x0]
+ mov r0, #0x0
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_02043EFC
+FUN_02043EFC: ; 0x02043EFC
+ push {r3-r7, lr}
+ add r4, r0, #0x0
+ add r0, #0x80
+ ldr r5, [r0, #0x0]
+ mov r1, #0xf
+ add r0, r5, #0x0
+ bl FUN_02039438
+ add r7, r0, #0x0
+ add r0, r4, #0x0
+ ldr r5, [r5, #0xc]
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394B8
+ add r6, r0, #0x0
+ add r0, r4, #0x0
+ bl ScriptReadHalfword
+ add r4, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r4, #0x0]
+ bl FUN_020394F0
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ mov r1, #0x8
+ bl FUN_02022610
+ lsl r1, r4, #0x18
+ ldr r2, [r7, #0x0]
+ lsr r1, r1, #0x18
+ bl FUN_021EC854
+ strh r0, [r6, #0x0]
+ mov r0, #0x0
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_02043F50
+FUN_02043F50: ; 0x02043F50
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ mov r1, #0xf
+ ldr r4, [r0, #0xc]
+ bl FUN_02039438
+ add r6, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394B8
+ add r7, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r5, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r5, #0x0]
+ bl FUN_020394F0
+ add r5, r0, #0x0
+ add r0, r4, #0x0
+ mov r1, #0x8
+ bl FUN_02022610
+ ldr r2, [r6, #0x0]
+ add r1, r5, #0x0
+ bl FUN_021EC864
+ strh r0, [r7, #0x0]
+ mov r0, #0x0
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_02043FA0
+FUN_02043FA0: ; 0x02043FA0
+ push {r3-r7, lr}
+ add r4, r0, #0x0
+ add r0, #0x80
+ ldr r5, [r0, #0x0]
+ mov r1, #0xf
+ add r0, r5, #0x0
+ bl FUN_02039438
+ add r6, r0, #0x0
+ add r0, r4, #0x0
+ bl ScriptReadHalfword
+ add r0, r4, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r7, r0, #0x0
+ add r0, r4, #0x0
+ bl ScriptReadHalfword
+ add r4, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r4, #0x0]
+ bl FUN_020394B8
+ add r4, r0, #0x0
+ ldr r0, [r5, #0xc]
+ bl FUN_0206BB1C
+ ldr r2, [r6, #0x0]
+ add r1, r7, #0x0
+ bl FUN_021ED5C4
+ strh r0, [r4, #0x0]
+ mov r0, #0x0
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_02043FF4
+FUN_02043FF4: ; 0x02043FF4
+ push {r4-r6, lr}
+ add r6, r0, #0x0
+ add r1, r6, #0x0
+ add r1, #0x80
+ ldr r4, [r1, #0x0]
+ ldr r5, [r4, #0xc]
+ bl ScriptReadHalfword
+ add r6, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r6, #0x0]
+ bl FUN_020394F0
+ add r6, r0, #0x0
+ ldr r0, [r4, #0xc]
+ bl FUN_0206BB1C
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ mov r1, #0x8
+ bl FUN_02022610
+ lsl r1, r6, #0x18
+ add r2, r0, #0x0
+ add r0, r4, #0x0
+ lsr r1, r1, #0x18
+ add r3, r5, #0x0
+ bl FUN_021EC57C
+ mov r0, #0x0
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_02044034
+FUN_02044034: ; 0x02044034
+ push {r3-r7, lr}
+ sub sp, #0x10
+ add r4, r0, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ mov r1, #0xf
+ ldr r5, [r0, #0xc]
+ bl FUN_02039438
+ add r6, r0, #0x0
+ add r0, r4, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r7, r0, #0x0
+ add r0, r4, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ str r0, [sp, #0x8]
+ add r0, r4, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ str r0, [sp, #0xc]
+ add r0, r4, #0x0
+ bl ScriptReadHalfword
+ add r4, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r4, #0x0]
+ bl FUN_020394F0
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_02023D58
+ lsl r1, r4, #0x18
+ lsr r1, r1, #0x18
+ str r1, [sp, #0x0]
+ ldr r1, [r6, #0x0]
+ ldr r2, [sp, #0x8]
+ ldr r3, [sp, #0xc]
+ str r1, [sp, #0x4]
+ lsl r1, r7, #0x18
+ lsl r2, r2, #0x18
+ lsl r3, r3, #0x18
+ lsr r1, r1, #0x18
+ lsr r2, r2, #0x18
+ lsr r3, r3, #0x18
+ bl FUN_021ED52C
+ mov r0, #0x0
+ add sp, #0x10
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_020440C0
+FUN_020440C0: ; 0x020440C0
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r1, r5, #0x0
+ add r1, #0x80
+ ldr r1, [r1, #0x0]
+ ldr r4, [r1, #0xc]
+ bl ScriptReadHalfword
+ add r5, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r5, #0x0]
+ bl FUN_020394B8
+ add r5, r0, #0x0
+ add r0, r4, #0x0
+ mov r1, #0x8
+ bl FUN_02022610
+ bl FUN_021ED644
+ strh r0, [r5, #0x0]
+ mov r0, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_020440F0
+FUN_020440F0: ; 0x020440F0
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r1, r5, #0x0
+ add r1, #0x80
+ ldr r1, [r1, #0x0]
+ ldr r4, [r1, #0xc]
+ bl ScriptReadHalfword
+ add r5, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r5, #0x0]
+ bl FUN_020394B8
+ add r5, r0, #0x0
+ add r0, r4, #0x0
+ mov r1, #0x8
+ bl FUN_02022610
+ bl FUN_02023C90
+ strh r0, [r5, #0x0]
+ mov r0, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_02044120
+FUN_02044120: ; 0x02044120
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl ScriptReadHalfword
+ add r4, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r4, #0x0]
+ bl FUN_020394B8
+ mov r0, #0x0
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02044138
+FUN_02044138: ; 0x02044138
+ mov r0, #0x0
+ bx lr
+
+ thumb_func_start FUN_0204413C
+FUN_0204413C: ; 0x0204413C
+ mov r0, #0x0
+ bx lr
+
+ thumb_func_start FUN_02044140
+FUN_02044140: ; 0x02044140
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl ScriptReadHalfword
+ add r4, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r4, #0x0]
+ bl FUN_020394B8
+ mov r0, #0x0
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02044158
+FUN_02044158: ; 0x02044158
+ push {r3, lr}
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0xc]
+ bl FUN_020462AC
+ bl FUN_0205F54C
+ mov r0, #0x0
+ pop {r3, pc}
+
+ thumb_func_start FUN_0204416C
+FUN_0204416C: ; 0x0204416C
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394B8
+ add r5, #0x80
+ add r4, r0, #0x0
+ ldr r0, [r5, #0x0]
+ ldr r0, [r0, #0xc]
+ bl FUN_020462AC
+ bl FUN_0205F55C
+ strh r0, [r4, #0x0]
+ mov r0, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_02044198
+FUN_02044198: ; 0x02044198
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394B8
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r5, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r5, #0x0]
+ bl FUN_020394F0
+ add r5, r0, #0x0
+ bl FUN_0201B9EC
+ mov r1, #0x64
+ blx _s32_div_f
+ lsl r0, r1, #0x10
+ lsr r0, r0, #0x10
+ cmp r0, #0xf
+ bhs _020441D6
+ mov r0, #0x0
+ b _02044218
+_020441D6:
+ cmp r0, #0x1e
+ bhs _020441DE
+ mov r0, #0x1
+ b _02044218
+_020441DE:
+ cmp r0, #0x2d
+ bhs _020441E6
+ mov r0, #0x2
+ b _02044218
+_020441E6:
+ cmp r0, #0x3c
+ bhs _020441EE
+ mov r0, #0x3
+ b _02044218
+_020441EE:
+ cmp r0, #0x46
+ bhs _020441F6
+ mov r0, #0x4
+ b _02044218
+_020441F6:
+ cmp r0, #0x50
+ bhs _020441FE
+ mov r0, #0x5
+ b _02044218
+_020441FE:
+ cmp r0, #0x58
+ bhs _02044206
+ mov r0, #0x6
+ b _02044218
+_02044206:
+ cmp r0, #0x5d
+ bhs _0204420E
+ mov r0, #0x7
+ b _02044218
+_0204420E:
+ cmp r0, #0x62
+ bhs _02044216
+ mov r0, #0x8
+ b _02044218
+_02044216:
+ mov r0, #0x9
+_02044218:
+ ldr r2, _020442B4 ; =0x0000011D
+ cmp r5, r2
+ bgt _02044244
+ bge _02044290
+ cmp r5, #0x27
+ bgt _02044236
+ cmp r5, #0x23
+ blt _02044230
+ beq _02044284
+ cmp r5, #0x27
+ beq _02044290
+ b _0204429C
+_02044230:
+ cmp r5, #0x19
+ beq _02044294
+ b _0204429C
+_02044236:
+ cmp r5, #0x36
+ bgt _0204423E
+ beq _0204428C
+ b _0204429C
+_0204423E:
+ cmp r5, #0xff
+ beq _02044288
+ b _0204429C
+_02044244:
+ add r1, r2, #0x0
+ add r1, #0x8c
+ cmp r5, r1
+ bgt _0204426C
+ add r1, r2, #0x0
+ add r1, #0x8c
+ cmp r5, r1
+ bge _02044288
+ add r1, r2, #0x0
+ add r1, #0xf
+ cmp r5, r1
+ bgt _02044264
+ add r2, #0xf
+ cmp r5, r2
+ beq _02044284
+ b _0204429C
+_02044264:
+ add r2, #0x84
+ cmp r5, r2
+ beq _0204428C
+ b _0204429C
+_0204426C:
+ add r1, r2, #0x0
+ add r1, #0x8e
+ cmp r5, r1
+ bgt _0204427C
+ add r2, #0x8e
+ cmp r5, r2
+ beq _02044298
+ b _0204429C
+_0204427C:
+ add r2, #0x9b
+ cmp r5, r2
+ beq _02044298
+ b _0204429C
+_02044284:
+ mov r2, #0x0
+ b _0204429E
+_02044288:
+ mov r2, #0x1
+ b _0204429E
+_0204428C:
+ mov r2, #0x2
+ b _0204429E
+_02044290:
+ mov r2, #0x3
+ b _0204429E
+_02044294:
+ mov r2, #0x4
+ b _0204429E
+_02044298:
+ mov r2, #0x5
+ b _0204429E
+_0204429C:
+ mov r2, #0x0
+_0204429E:
+ add r3, r2, #0x0
+ mov r1, #0x14
+ mul r3, r1
+ ldr r2, _020442B8 ; =0x020F4494
+ lsl r1, r0, #0x1
+ add r0, r2, r3
+ ldrh r0, [r1, r0]
+ strh r0, [r4, #0x0]
+ mov r0, #0x0
+ pop {r3-r5, pc}
+ nop
+_020442B4: .word 0x0000011D
+_020442B8: .word 0x020F4494
+
+ thumb_func_start FUN_020442BC
+FUN_020442BC: ; 0x020442BC
+ push {r4-r7, lr}
+ sub sp, #0x14
+ add r4, r0, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0x1c]
+ ldr r0, [r0, #0x0]
+ bl FUN_02034824
+ add r6, r0, #0x0
+ add r0, r4, #0x0
+ add r0, #0x80
+ ldr r5, [r0, #0x0]
+ add r0, r4, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ str r0, [sp, #0xc]
+ add r0, r4, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r7, r0, #0x0
+ add r0, r4, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ str r0, [sp, #0x10]
+ add r0, r4, #0x0
+ bl ScriptReadHalfword
+ add r4, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r4, #0x0]
+ bl FUN_020394B8
+ add r4, r0, #0x0
+ ldr r0, [r5, #0xc]
+ bl FUN_0206BB1C
+ ldr r0, [sp, #0x10]
+ lsl r3, r7, #0x18
+ str r0, [sp, #0x0]
+ str r6, [sp, #0x4]
+ mov r0, #0xc
+ str r0, [sp, #0x8]
+ ldr r1, [r5, #0xc]
+ ldr r2, [sp, #0xc]
+ mov r0, #0xb
+ lsr r3, r3, #0x18
+ bl FUN_0204A048
+ strh r0, [r4, #0x0]
+ mov r0, #0x0
+ add sp, #0x14
+ pop {r4-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_0204434C
+FUN_0204434C: ; 0x0204434C
+ push {r4-r6, lr}
+ add r4, r0, #0x0
+ add r1, r4, #0x0
+ add r1, #0x80
+ ldr r5, [r1, #0x0]
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394B8
+ add r6, r0, #0x0
+ add r0, r4, #0x0
+ bl ScriptReadHalfword
+ add r4, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r4, #0x0]
+ bl FUN_020394B8
+ add r4, r0, #0x0
+ ldr r0, [r5, #0xc]
+ bl FUN_0206BB1C
+ ldrh r1, [r6, #0x0]
+ bl FUN_0206B9B0
+ mov r1, #0x4c
+ mov r2, #0x0
+ add r5, r0, #0x0
+ bl FUN_020671BC
+ cmp r0, #0x0
+ bne _020443A0
+ add r0, r5, #0x0
+ mov r1, #0x5
+ mov r2, #0x0
+ bl FUN_020671BC
+ b _020443A2
+_020443A0:
+ mov r0, #0x0
+_020443A2:
+ strh r0, [r4, #0x0]
+ mov r0, #0x0
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_020443A8
+FUN_020443A8: ; 0x020443A8
+ push {r3-r7, lr}
+ add r4, r0, #0x0
+ add r0, #0x80
+ ldr r5, [r0, #0x0]
+ add r0, r5, #0x0
+ bl FUN_020377AC
+ bl FUN_020238F4
+ add r7, r0, #0x0
+ add r0, r4, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394B8
+ add r6, r0, #0x0
+ add r0, r4, #0x0
+ bl ScriptReadHalfword
+ add r4, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r4, #0x0]
+ bl FUN_020394B8
+ add r4, r0, #0x0
+ ldr r0, [r5, #0xc]
+ bl FUN_0206BB1C
+ ldrh r1, [r6, #0x0]
+ bl FUN_0206B9B0
+ mov r1, #0x7
+ mov r2, #0x0
+ bl FUN_020671BC
+ lsl r0, r0, #0x10
+ lsr r5, r0, #0x10
+ add r0, r7, #0x0
+ bl FUN_020239BC
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ cmp r5, r0
+ bne _0204440C
+ mov r0, #0x0
+ b _0204440E
+_0204440C:
+ mov r0, #0x1
+_0204440E:
+ strh r0, [r4, #0x0]
+ mov r0, #0x0
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_02044414
+FUN_02044414: ; 0x02044414
+ push {r4-r7, lr}
+ sub sp, #0xc
+ add r5, r0, #0x0
+ add r0, #0x80
+ ldr r4, [r0, #0x0]
+ ldr r0, [r4, #0xc]
+ bl FUN_020238F4
+ add r7, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ str r0, [sp, #0x8]
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r5, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r5, #0x0]
+ bl FUN_020394F0
+ add r5, r0, #0x0
+ ldr r0, [r4, #0xc]
+ bl FUN_0206BB1C
+ add r6, r0, #0x0
+ bl FUN_0206B9AC
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ cmp r0, #0x6
+ bhs _02044494
+ mov r0, #0xb
+ bl FUN_020669C0
+ add r4, r0, #0x0
+ bl FUN_02066978
+ mov r0, #0x1
+ add r1, r5, #0x0
+ bl FUN_02015CF8
+ mov r1, #0x3
+ str r1, [sp, #0x0]
+ str r0, [sp, #0x4]
+ ldr r1, [sp, #0x8]
+ add r0, r4, #0x0
+ mov r2, #0x1
+ add r3, r7, #0x0
+ bl FUN_021ECF14
+ add r0, r6, #0x0
+ add r1, r4, #0x0
+ bl FUN_0206B900
+ add r0, r4, #0x0
+ bl FUN_02016A18
+_02044494:
+ mov r0, #0x0
+ add sp, #0xc
+ pop {r4-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_0204449C
+FUN_0204449C: ; 0x0204449C
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r6, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r5, #0x80
+ add r7, r0, #0x0
+ ldr r0, [r5, #0x0]
+ ldr r0, [r0, #0xc]
+ bl FUN_0206BB1C
+ add r1, r4, #0x0
+ add r2, r6, #0x0
+ add r3, r7, #0x0
+ bl FUN_0204A120
+ mov r0, #0x0
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_020444F4
+FUN_020444F4: ; 0x020444F4
+ push {r3-r7, lr}
+ add r4, r0, #0x0
+ add r1, r4, #0x0
+ add r1, #0x80
+ ldr r7, [r1, #0x0]
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394B8
+ add r6, r0, #0x0
+ add r0, r4, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r5, r0, #0x0
+ add r0, r4, #0x0
+ bl ScriptReadHalfword
+ add r4, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r4, #0x0]
+ bl FUN_020394F0
+ add r4, r0, #0x0
+ ldr r0, [r7, #0xc]
+ bl FUN_0206BB1C
+ add r1, r4, #0x0
+ bl FUN_0206B9B0
+ mov r2, #0x0
+ mov r1, #0x4c
+ add r4, r0, #0x0
+ strh r2, [r6, #0x0]
+ bl FUN_020671BC
+ cmp r0, #0x0
+ beq _02044556
+ mov r0, #0x0
+ pop {r3-r7, pc}
+_02044556:
+ add r0, r4, #0x0
+ mov r1, #0x36
+ mov r2, #0x0
+ bl FUN_020671BC
+ cmp r5, r0
+ beq _0204458E
+ add r0, r4, #0x0
+ mov r1, #0x37
+ mov r2, #0x0
+ bl FUN_020671BC
+ cmp r5, r0
+ beq _0204458E
+ add r0, r4, #0x0
+ mov r1, #0x38
+ mov r2, #0x0
+ bl FUN_020671BC
+ cmp r5, r0
+ beq _0204458E
+ add r0, r4, #0x0
+ mov r1, #0x39
+ mov r2, #0x0
+ bl FUN_020671BC
+ cmp r5, r0
+ bne _02044592
+_0204458E:
+ mov r0, #0x1
+ strh r0, [r6, #0x0]
+_02044592:
+ mov r0, #0x0
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_02044598
+FUN_02044598: ; 0x02044598
+ push {r3-r7, lr}
+ sub sp, #0x8
+ add r4, r0, #0x0
+ add r1, r4, #0x0
+ add r1, #0x80
+ ldr r1, [r1, #0x0]
+ str r1, [sp, #0x4]
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394B8
+ str r0, [sp, #0x0]
+ add r0, r4, #0x0
+ bl ScriptReadHalfword
+ add r4, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r4, #0x0]
+ bl FUN_020394F0
+ add r5, r0, #0x0
+ ldr r0, [sp, #0x4]
+ ldr r0, [r0, #0xc]
+ bl FUN_0206BB1C
+ bl FUN_0206B9AC
+ lsl r0, r0, #0x18
+ lsr r7, r0, #0x18
+ ldr r1, _02044650 ; =0x00000006
+ ldr r0, [sp, #0x0]
+ ldr r6, _02044654 ; =0x00000000
+ strh r1, [r0, #0x0]
+ beq _02044648
+_020445E4:
+ ldr r0, [sp, #0x4]
+ ldr r0, [r0, #0xc]
+ bl FUN_0206BB1C
+ add r1, r6, #0x0
+ bl FUN_0206B9B0
+ mov r1, #0x4c
+ mov r2, #0x0
+ add r4, r0, #0x0
+ bl FUN_020671BC
+ cmp r0, #0x0
+ bne _0204463E
+ add r0, r4, #0x0
+ mov r1, #0x36
+ mov r2, #0x0
+ bl FUN_020671BC
+ cmp r5, r0
+ beq _02044638
+ add r0, r4, #0x0
+ mov r1, #0x37
+ mov r2, #0x0
+ bl FUN_020671BC
+ cmp r5, r0
+ beq _02044638
+ add r0, r4, #0x0
+ mov r1, #0x38
+ mov r2, #0x0
+ bl FUN_020671BC
+ cmp r5, r0
+ beq _02044638
+ add r0, r4, #0x0
+ mov r1, #0x39
+ mov r2, #0x0
+ bl FUN_020671BC
+ cmp r5, r0
+ bne _0204463E
+_02044638:
+ ldr r0, [sp, #0x0]
+ strh r6, [r0, #0x0]
+ b _02044648
+_0204463E:
+ add r0, r6, #0x1
+ lsl r0, r0, #0x18
+ lsr r6, r0, #0x18
+ cmp r6, r7
+ blo _020445E4
+_02044648:
+ mov r0, #0x0
+ add sp, #0x8
+ pop {r3-r7, pc}
+ nop
+_02044650: .word 0x00000006
+_02044654: .word 0x00000000
+
+ thumb_func_start FUN_02044658
+FUN_02044658: ; 0x02044658
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394B8
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r5, #0x80
+ add r6, r0, #0x0
+ ldr r0, [r5, #0x0]
+ ldr r0, [r0, #0xc]
+ bl FUN_0206BB1C
+ add r1, r6, #0x0
+ bl FUN_0206B9B0
+ bl FUN_0204A32C
+ strh r0, [r4, #0x0]
+ mov r0, #0x0
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_0204469C
+FUN_0204469C: ; 0x0204469C
+ push {r4-r7, lr}
+ sub sp, #0xc
+ add r4, r0, #0x0
+ add r1, r4, #0x0
+ add r1, #0x80
+ ldr r7, [r1, #0x0]
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394B8
+ str r0, [sp, #0x4]
+ add r0, r4, #0x0
+ bl ScriptReadHalfword
+ add r4, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r4, #0x0]
+ bl FUN_020394F0
+ str r0, [sp, #0x0]
+ ldr r0, [r7, #0xc]
+ bl FUN_0206BB1C
+ bl FUN_0206B9AC
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x8]
+ mov r4, #0x0
+ ldr r0, [sp, #0x4]
+ add r5, r4, #0x0
+ strh r4, [r0, #0x0]
+ ldr r0, [sp, #0x8]
+ cmp r0, #0x0
+ bls _02044726
+_020446EA:
+ ldr r0, [r7, #0xc]
+ bl FUN_0206BB1C
+ add r1, r4, #0x0
+ bl FUN_0206B9B0
+ mov r1, #0x4c
+ mov r2, #0x0
+ add r6, r0, #0x0
+ bl FUN_020671BC
+ cmp r0, #0x0
+ bne _0204471A
+ add r0, r6, #0x0
+ mov r1, #0xa0
+ mov r2, #0x0
+ bl FUN_020671BC
+ ldr r1, [sp, #0x0]
+ cmp r0, r1
+ bhi _0204471A
+ add r0, r5, #0x1
+ lsl r0, r0, #0x18
+ lsr r5, r0, #0x18
+_0204471A:
+ add r0, r4, #0x1
+ lsl r0, r0, #0x18
+ lsr r4, r0, #0x18
+ ldr r0, [sp, #0x8]
+ cmp r4, r0
+ blo _020446EA
+_02044726:
+ ldr r0, [sp, #0x4]
+ strh r5, [r0, #0x0]
+ mov r0, #0x0
+ add sp, #0xc
+ pop {r4-r7, pc}
+
+ thumb_func_start FUN_02044730
+FUN_02044730: ; 0x02044730
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ add r1, r5, #0x0
+ add r1, #0x80
+ ldr r6, [r1, #0x0]
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394B8
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r5, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r5, #0x0]
+ bl FUN_020394F0
+ add r5, r0, #0x0
+ ldr r0, [r6, #0xc]
+ bl FUN_0206BB1C
+ add r1, r5, #0x0
+ bl FUN_0206B9B0
+ mov r2, #0x0
+ mov r1, #0x4c
+ add r5, r0, #0x0
+ strh r2, [r4, #0x0]
+ bl FUN_020671BC
+ cmp r0, #0x0
+ bne _02044786
+ add r0, r5, #0x0
+ mov r1, #0xa0
+ mov r2, #0x0
+ bl FUN_020671BC
+ strh r0, [r4, #0x0]
+_02044786:
+ mov r0, #0x0
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_0204478C
+FUN_0204478C: ; 0x0204478C
+ push {r4-r6, lr}
+ add r6, r0, #0x0
+ add r1, r6, #0x0
+ add r1, #0x80
+ ldr r5, [r1, #0x0]
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r6, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394B8
+ add r4, r0, #0x0
+ add r0, r6, #0x0
+ bl ScriptReadHalfword
+ add r6, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r6, #0x0]
+ bl FUN_020394F0
+ add r6, r0, #0x0
+ ldr r0, [r5, #0xc]
+ bl FUN_0206BB1C
+ bl FUN_0206B9AC
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ cmp r6, r0
+ blt _020447D2
+ mov r0, #0x0
+ strh r0, [r4, #0x0]
+ pop {r4-r6, pc}
+_020447D2:
+ ldr r0, [r5, #0xc]
+ bl FUN_0206BB1C
+ add r1, r6, #0x0
+ bl FUN_0206B9B0
+ mov r1, #0x4c
+ mov r2, #0x0
+ add r5, r0, #0x0
+ bl FUN_020671BC
+ cmp r0, #0x0
+ beq _020447F2
+ mov r0, #0x0
+ strh r0, [r4, #0x0]
+ pop {r4-r6, pc}
+_020447F2:
+ add r0, r5, #0x0
+ bl FUN_02068854
+ strh r0, [r4, #0x0]
+ mov r0, #0x0
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_02044800
+FUN_02044800: ; 0x02044800
+ push {r3-r7, lr}
+ sub sp, #0x8
+ add r4, r0, #0x0
+ add r1, r4, #0x0
+ add r1, #0x80
+ ldr r7, [r1, #0x0]
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394B8
+ str r0, [sp, #0x4]
+ add r0, r4, #0x0
+ bl ScriptReadHalfword
+ add r4, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r4, #0x0]
+ bl FUN_020394F0
+ str r0, [sp, #0x0]
+ ldr r0, [r7, #0xc]
+ bl FUN_0206BB1C
+ bl FUN_0206B9AC
+ lsl r0, r0, #0x18
+ lsr r6, r0, #0x18
+ ldr r1, _02044884 ; =0x000000FF
+ ldr r0, [sp, #0x4]
+ ldr r5, _02044888 ; =0x00000000
+ strh r1, [r0, #0x0]
+ beq _0204487E
+_02044848:
+ ldr r0, [r7, #0xc]
+ bl FUN_0206BB1C
+ add r1, r5, #0x0
+ bl FUN_0206B9B0
+ mov r1, #0x4c
+ mov r2, #0x0
+ add r4, r0, #0x0
+ bl FUN_020671BC
+ cmp r0, #0x0
+ bne _02044874
+ add r0, r4, #0x0
+ bl FUN_02068854
+ ldr r1, [sp, #0x0]
+ cmp r1, r0
+ bne _02044874
+ ldr r0, [sp, #0x4]
+ strh r5, [r0, #0x0]
+ b _0204487E
+_02044874:
+ add r0, r5, #0x1
+ lsl r0, r0, #0x18
+ lsr r5, r0, #0x18
+ cmp r5, r6
+ blo _02044848
+_0204487E:
+ mov r0, #0x0
+ add sp, #0x8
+ pop {r3-r7, pc}
+ .balign 4
+_02044884: .word 0x000000FF
+_02044888: .word 0x00000000
+
+ thumb_func_start FUN_0204488C
+FUN_0204488C: ; 0x0204488C
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ add r1, r5, #0x0
+ add r1, #0x80
+ ldr r4, [r1, #0x0]
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394B8
+ add r6, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r5, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r5, #0x0]
+ bl FUN_020394F0
+ add r5, r0, #0x0
+ ldr r0, [r4, #0xc]
+ bl FUN_0206BB1C
+ add r1, r5, #0x0
+ bl FUN_0206B9B0
+ mov r1, #0x9
+ mov r2, #0x0
+ bl FUN_020671BC
+ strh r0, [r6, #0x0]
+ mov r0, #0x0
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_020448D4
+FUN_020448D4: ; 0x020448D4
+ push {r3-r7, lr}
+ sub sp, #0x8
+ add r5, r0, #0x0
+ add r1, r5, #0x0
+ add r1, #0x80
+ ldr r6, [r1, #0x0]
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r5, #0x80
+ str r0, [sp, #0x0]
+ ldr r0, [r5, #0x0]
+ ldr r0, [r0, #0x1c]
+ ldr r0, [r0, #0x0]
+ bl FUN_02034824
+ add r7, r0, #0x0
+ ldr r0, [r6, #0xc]
+ bl FUN_0206BB1C
+ ldr r1, [sp, #0x0]
+ bl FUN_0206B9B0
+ mov r1, #0x9
+ mov r2, #0x0
+ add r5, r0, #0x0
+ bl FUN_020671BC
+ add r1, sp, #0x4
+ strh r0, [r1, #0x0]
+ cmp r4, #0x0
+ beq _02044982
+ add r0, r5, #0x0
+ mov r1, #0x6
+ mov r2, #0x0
+ bl FUN_020671BC
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ mov r1, #0x1
+ mov r2, #0xb
+ bl FUN_0206E7B8
+ cmp r0, #0x34
+ bne _0204495A
+ mov r0, #0x96
+ mul r0, r4
+ mov r1, #0x64
+ blx _s32_div_f
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+_0204495A:
+ add r0, r5, #0x0
+ mov r1, #0x9a
+ mov r2, #0x0
+ bl FUN_020671BC
+ cmp r0, #0xb
+ bne _0204496E
+ add r0, r4, #0x1
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+_0204496E:
+ add r0, r5, #0x0
+ mov r1, #0x97
+ mov r2, #0x0
+ bl FUN_020671BC
+ cmp r7, r0
+ bne _02044982
+ add r0, r4, #0x1
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+_02044982:
+ add r0, sp, #0x4
+ ldrh r1, [r0, #0x0]
+ add r1, r1, r4
+ strh r1, [r0, #0x0]
+ ldrh r1, [r0, #0x0]
+ cmp r1, #0xff
+ bls _02044994
+ mov r1, #0xff
+ strh r1, [r0, #0x0]
+_02044994:
+ add r0, r5, #0x0
+ mov r1, #0x9
+ add r2, sp, #0x4
+ bl FUN_02067830
+ mov r0, #0x0
+ add sp, #0x8
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_020449A4
+FUN_020449A4: ; 0x020449A4
+ push {r3-r6, lr}
+ sub sp, #0x4
+ add r5, r0, #0x0
+ add r1, r5, #0x0
+ add r1, #0x80
+ ldr r6, [r1, #0x0]
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r5, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r5, #0x0]
+ bl FUN_020394F0
+ add r5, r0, #0x0
+ ldr r0, [r6, #0xc]
+ bl FUN_0206BB1C
+ add r1, r5, #0x0
+ bl FUN_0206B9B0
+ mov r1, #0x9
+ mov r2, #0x0
+ add r5, r0, #0x0
+ bl FUN_020671BC
+ add r1, sp, #0x0
+ strh r0, [r1, #0x0]
+ ldrh r0, [r1, #0x0]
+ cmp r4, r0
+ bls _020449F8
+ mov r0, #0x0
+ b _020449FA
+_020449F8:
+ sub r0, r0, r4
+_020449FA:
+ strh r0, [r1, #0x0]
+ add r0, r5, #0x0
+ mov r1, #0x9
+ add r2, sp, #0x0
+ bl FUN_02067830
+ mov r0, #0x0
+ add sp, #0x4
+ pop {r3-r6, pc}
+
+ thumb_func_start FUN_02044A0C
+FUN_02044A0C: ; 0x02044A0C
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r7, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394B8
+ add r5, #0x80
+ add r6, r0, #0x0
+ ldr r0, [r5, #0x0]
+ ldr r0, [r0, #0xc]
+ bl FUN_0206BB1C
+ add r1, r7, #0x0
+ bl FUN_0206B9B0
+ add r4, #0x13
+ add r1, r4, #0x0
+ mov r2, #0x0
+ bl FUN_020671BC
+ strh r0, [r6, #0x0]
+ mov r0, #0x0
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_02044A6C
+FUN_02044A6C: ; 0x02044A6C
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394B8
+ add r5, #0x80
+ add r4, r0, #0x0
+ ldr r0, [r5, #0x0]
+ ldr r0, [r0, #0xc]
+ bl FUN_02054DEC
+ strh r0, [r4, #0x0]
+ mov r0, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_02044A94
+FUN_02044A94: ; 0x02044A94
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ add r1, r5, #0x0
+ add r1, #0x80
+ ldr r4, [r1, #0x0]
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394B8
+ add r6, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394B8
+ add r7, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r5, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r5, #0x0]
+ bl FUN_020394F0
+ add r5, r0, #0x0
+ ldr r0, [r4, #0xc]
+ bl FUN_0206BB1C
+ add r1, r5, #0x0
+ bl FUN_0206B9B0
+ add r4, r0, #0x0
+ mov r1, #0xb0
+ mov r2, #0x0
+ bl FUN_020671BC
+ strh r0, [r6, #0x0]
+ add r0, r4, #0x0
+ mov r1, #0xb1
+ mov r2, #0x0
+ bl FUN_020671BC
+ strh r0, [r7, #0x0]
+ mov r0, #0x0
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_02044B00
+FUN_02044B00: ; 0x02044B00
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r1, r5, #0x0
+ add r1, #0x80
+ ldr r4, [r1, #0x0]
+ bl ScriptReadHalfword
+ add r5, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r5, #0x0]
+ bl FUN_020394B8
+ add r5, r0, #0x0
+ ldr r0, [r4, #0xc]
+ bl FUN_0206BB1C
+ bl FUN_0206B9AC
+ strh r0, [r5, #0x0]
+ mov r0, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_02044B2C
+FUN_02044B2C: ; 0x02044B2C
+ push {r3-r7, lr}
+ add r4, r0, #0x0
+ add r1, r4, #0x0
+ add r1, #0x80
+ ldr r6, [r1, #0x0]
+ bl ScriptReadHalfword
+ add r4, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r4, #0x0]
+ bl FUN_020394B8
+ str r0, [sp, #0x0]
+ ldr r0, [r6, #0xc]
+ bl FUN_0206BB1C
+ bl FUN_0206B9AC
+ mov r5, #0x0
+ add r7, r0, #0x0
+ add r4, r5, #0x0
+ cmp r7, #0x0
+ ble _02044B7A
+_02044B5A:
+ ldr r0, [r6, #0xc]
+ bl FUN_0206BB1C
+ add r1, r5, #0x0
+ bl FUN_0206B9B0
+ mov r1, #0x4c
+ mov r2, #0x0
+ bl FUN_020671BC
+ cmp r0, #0x0
+ bne _02044B74
+ add r4, r4, #0x1
+_02044B74:
+ add r5, r5, #0x1
+ cmp r5, r7
+ blt _02044B5A
+_02044B7A:
+ ldr r0, [sp, #0x0]
+ strh r4, [r0, #0x0]
+ mov r0, #0x0
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_02044B84
+FUN_02044B84: ; 0x02044B84
+ push {r4-r7, lr}
+ sub sp, #0xc
+ add r4, r0, #0x0
+ add r1, r4, #0x0
+ add r1, #0x80
+ ldr r7, [r1, #0x0]
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394B8
+ str r0, [sp, #0x4]
+ add r0, r4, #0x0
+ bl ScriptReadHalfword
+ add r4, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r4, #0x0]
+ bl FUN_020394F0
+ str r0, [sp, #0x0]
+ ldr r0, [r7, #0xc]
+ bl FUN_0206BB1C
+ bl FUN_0206B9AC
+ mov r5, #0x0
+ add r4, r5, #0x0
+ str r0, [sp, #0x8]
+ cmp r0, #0x0
+ ble _02044C00
+_02044BC8:
+ ldr r0, [sp, #0x0]
+ cmp r5, r0
+ beq _02044BF8
+ ldr r0, [r7, #0xc]
+ bl FUN_0206BB1C
+ add r1, r5, #0x0
+ bl FUN_0206B9B0
+ mov r1, #0x4c
+ mov r2, #0x0
+ add r6, r0, #0x0
+ bl FUN_020671BC
+ cmp r0, #0x0
+ bne _02044BF8
+ add r0, r6, #0x0
+ mov r1, #0xa2
+ mov r2, #0x0
+ bl FUN_020671BC
+ cmp r0, #0x0
+ beq _02044BF8
+ add r4, r4, #0x1
+_02044BF8:
+ ldr r0, [sp, #0x8]
+ add r5, r5, #0x1
+ cmp r5, r0
+ blt _02044BC8
+_02044C00:
+ ldr r0, [sp, #0x4]
+ strh r4, [r0, #0x0]
+ mov r0, #0x0
+ add sp, #0xc
+ pop {r4-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_02044C0C
+FUN_02044C0C: ; 0x02044C0C
+ push {r4-r7, lr}
+ sub sp, #0xc
+ add r4, r0, #0x0
+ add r1, r4, #0x0
+ add r1, #0x80
+ ldr r7, [r1, #0x0]
+ bl ScriptReadHalfword
+ add r4, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r4, #0x0]
+ bl FUN_020394B8
+ str r0, [sp, #0x0]
+ ldr r0, [r7, #0xc]
+ bl FUN_02022510
+ str r0, [sp, #0x4]
+ ldr r0, [r7, #0xc]
+ bl FUN_0206BB1C
+ bl FUN_0206B9AC
+ mov r5, #0x0
+ add r4, r5, #0x0
+ str r0, [sp, #0x8]
+ cmp r0, #0x0
+ ble _02044C76
+_02044C44:
+ ldr r0, [r7, #0xc]
+ bl FUN_0206BB1C
+ add r1, r5, #0x0
+ bl FUN_0206B9B0
+ mov r1, #0x4c
+ mov r2, #0x0
+ add r6, r0, #0x0
+ bl FUN_020671BC
+ cmp r0, #0x0
+ bne _02044C6E
+ add r0, r6, #0x0
+ mov r1, #0xa2
+ mov r2, #0x0
+ bl FUN_020671BC
+ cmp r0, #0x0
+ beq _02044C6E
+ add r4, r4, #0x1
+_02044C6E:
+ ldr r0, [sp, #0x8]
+ add r5, r5, #0x1
+ cmp r5, r0
+ blt _02044C44
+_02044C76:
+ ldr r0, [sp, #0x4]
+ bl FUN_0206B57C
+ add r1, r4, r0
+ ldr r0, [sp, #0x0]
+ strh r1, [r0, #0x0]
+ mov r0, #0x0
+ add sp, #0xc
+ pop {r4-r7, pc}
+
+ thumb_func_start FUN_02044C88
+FUN_02044C88: ; 0x02044C88
+ push {r3-r7, lr}
+ add r4, r0, #0x0
+ add r1, r4, #0x0
+ add r1, #0x80
+ ldr r6, [r1, #0x0]
+ bl ScriptReadHalfword
+ add r4, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r4, #0x0]
+ bl FUN_020394B8
+ str r0, [sp, #0x0]
+ ldr r0, [r6, #0xc]
+ bl FUN_0206BB1C
+ bl FUN_0206B9AC
+ mov r5, #0x0
+ add r7, r0, #0x0
+ add r4, r5, #0x0
+ cmp r7, #0x0
+ ble _02044CD6
+_02044CB6:
+ ldr r0, [r6, #0xc]
+ bl FUN_0206BB1C
+ add r1, r5, #0x0
+ bl FUN_0206B9B0
+ mov r1, #0x4c
+ mov r2, #0x0
+ bl FUN_020671BC
+ cmp r0, #0x0
+ beq _02044CD0
+ add r4, r4, #0x1
+_02044CD0:
+ add r5, r5, #0x1
+ cmp r5, r7
+ blt _02044CB6
+_02044CD6:
+ ldr r0, [sp, #0x0]
+ strh r4, [r0, #0x0]
+ mov r0, #0x0
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_02044CE0
+FUN_02044CE0: ; 0x02044CE0
+ push {r3-r7, lr}
+ add r4, r0, #0x0
+ add r1, r4, #0x0
+ add r1, #0x80
+ ldr r5, [r1, #0x0]
+ bl ScriptReadHalfword
+ add r4, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r4, #0x0]
+ bl FUN_020394B8
+ str r0, [sp, #0x0]
+ ldr r0, [r5, #0xc]
+ bl FUN_0206BB1C
+ bl FUN_0206B9AC
+ lsl r0, r0, #0x10
+ lsr r6, r0, #0x10
+ ldr r4, _02044D40 ; =0x00000000
+ ldr r0, [sp, #0x0]
+ strh r4, [r0, #0x0]
+ beq _02044D3C
+ mov r7, #0x99
+_02044D12:
+ ldr r0, [r5, #0xc]
+ bl FUN_0206BB1C
+ add r1, r4, #0x0
+ bl FUN_0206B9B0
+ add r1, r7, #0x0
+ mov r2, #0x0
+ bl FUN_020671BC
+ cmp r0, #0x0
+ beq _02044D32
+ ldr r0, [sp, #0x0]
+ mov r1, #0x1
+ strh r1, [r0, #0x0]
+ b _02044D3C
+_02044D32:
+ add r0, r4, #0x1
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+ cmp r4, r6
+ blo _02044D12
+_02044D3C:
+ mov r0, #0x0
+ pop {r3-r7, pc}
+ .balign 4
+_02044D40: .word 0x00000000
+
+ thumb_func_start FUN_02044D44
+FUN_02044D44: ; 0x02044D44
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r6, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394B8
+ add r5, #0x80
+ add r4, r0, #0x0
+ ldr r0, [r5, #0x0]
+ ldr r0, [r0, #0xc]
+ bl FUN_0206BB1C
+ add r1, r6, #0x0
+ bl FUN_0206B9B0
+ mov r1, #0x6f
+ mov r2, #0x0
+ bl FUN_020671BC
+ strh r0, [r4, #0x0]
+ mov r0, #0x0
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_02044D8C
+FUN_02044D8C: ; 0x02044D8C
+ push {r4-r6, lr}
+ add r4, r0, #0x0
+ add r1, r4, #0x0
+ add r1, #0x80
+ ldr r6, [r1, #0x0]
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394B8
+ add r5, r0, #0x0
+ add r0, r4, #0x0
+ bl ScriptReadHalfword
+ add r4, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r4, #0x0]
+ bl FUN_020394F0
+ add r4, r0, #0x0
+ ldr r0, [r6, #0xc]
+ bl FUN_0206BB1C
+ add r1, r4, #0x0
+ bl FUN_0206B9B0
+ mov r1, #0x4c
+ mov r2, #0x0
+ add r6, r0, #0x0
+ bl FUN_020671BC
+ cmp r0, #0x0
+ beq _02044DDA
+ mov r0, #0x0
+ strh r0, [r5, #0x0]
+ pop {r4-r6, pc}
+_02044DDA:
+ mov r4, #0x0
+ add r0, r6, #0x0
+ mov r1, #0x36
+ add r2, r4, #0x0
+ bl FUN_020671BC
+ cmp r0, #0x0
+ beq _02044DF0
+ add r0, r4, #0x1
+ lsl r0, r0, #0x18
+ lsr r4, r0, #0x18
+_02044DF0:
+ add r0, r6, #0x0
+ mov r1, #0x37
+ mov r2, #0x0
+ bl FUN_020671BC
+ cmp r0, #0x0
+ beq _02044E04
+ add r0, r4, #0x1
+ lsl r0, r0, #0x18
+ lsr r4, r0, #0x18
+_02044E04:
+ add r0, r6, #0x0
+ mov r1, #0x38
+ mov r2, #0x0
+ bl FUN_020671BC
+ cmp r0, #0x0
+ beq _02044E18
+ add r0, r4, #0x1
+ lsl r0, r0, #0x18
+ lsr r4, r0, #0x18
+_02044E18:
+ add r0, r6, #0x0
+ mov r1, #0x39
+ mov r2, #0x0
+ bl FUN_020671BC
+ cmp r0, #0x0
+ beq _02044E2C
+ add r0, r4, #0x1
+ lsl r0, r0, #0x18
+ lsr r4, r0, #0x18
+_02044E2C:
+ strh r4, [r5, #0x0]
+ mov r0, #0x0
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_02044E34
+FUN_02044E34: ; 0x02044E34
+ push {r4-r6, lr}
+ add r4, r0, #0x0
+ add r1, r4, #0x0
+ add r1, #0x80
+ ldr r5, [r1, #0x0]
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r6, r0, #0x0
+ add r0, r4, #0x0
+ bl ScriptReadHalfword
+ add r4, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r4, #0x0]
+ bl FUN_020394F0
+ add r4, r0, #0x0
+ ldr r0, [r5, #0xc]
+ bl FUN_0206BB1C
+ add r1, r6, #0x0
+ bl FUN_0206B9B0
+ add r1, r4, #0x0
+ bl FUN_020699A4
+ mov r0, #0x0
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_02044E78
+FUN_02044E78: ; 0x02044E78
+ push {r3-r7, lr}
+ add r4, r0, #0x0
+ add r1, r4, #0x0
+ add r1, #0x80
+ ldr r5, [r1, #0x0]
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394B8
+ add r6, r0, #0x0
+ add r0, r4, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r7, r0, #0x0
+ add r0, r4, #0x0
+ bl ScriptReadHalfword
+ add r4, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r4, #0x0]
+ bl FUN_020394F0
+ add r4, r0, #0x0
+ ldr r0, [r5, #0xc]
+ bl FUN_0206BB1C
+ add r1, r7, #0x0
+ bl FUN_0206B9B0
+ add r4, #0x36
+ add r1, r4, #0x0
+ mov r2, #0x0
+ bl FUN_020671BC
+ strh r0, [r6, #0x0]
+ mov r0, #0x0
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_02044ED8
+FUN_02044ED8: ; 0x02044ED8
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ add r1, r5, #0x0
+ add r1, #0x80
+ ldr r4, [r1, #0x0]
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394B8
+ add r6, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r5, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r5, #0x0]
+ bl FUN_020394F0
+ add r5, r0, #0x0
+ ldr r0, [r4, #0xc]
+ bl FUN_0206BB1C
+ add r1, r5, #0x0
+ bl FUN_0206B9B0
+ mov r1, #0x6
+ mov r2, #0x0
+ bl FUN_020671BC
+ strh r0, [r6, #0x0]
+ mov r0, #0x0
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_02044F20
+FUN_02044F20: ; 0x02044F20
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r1, r5, #0x0
+ add r1, #0x80
+ ldr r4, [r1, #0x0]
+ bl ScriptReadHalfword
+ add r5, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r5, #0x0]
+ bl FUN_020394F0
+ add r5, r0, #0x0
+ ldr r0, [r4, #0xc]
+ bl FUN_0206BB1C
+ add r1, r5, #0x0
+ bl FUN_0206B9B0
+ mov r2, #0x0
+ add r1, sp, #0x0
+ strh r2, [r1, #0x0]
+ mov r1, #0x6
+ add r2, sp, #0x0
+ bl FUN_02067830
+ mov r0, #0x0
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_02044F58
+FUN_02044F58: ; 0x02044F58
+ push {r3-r7, lr}
+ sub sp, #0x8
+ add r4, r0, #0x0
+ add r1, r4, #0x0
+ add r1, #0x80
+ ldr r7, [r1, #0x0]
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394B8
+ str r0, [sp, #0x4]
+ add r0, r4, #0x0
+ bl ScriptReadHalfword
+ add r4, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r4, #0x0]
+ bl FUN_020394F0
+ str r0, [sp, #0x0]
+ ldr r0, [r7, #0xc]
+ bl FUN_0206BB1C
+ bl FUN_0206B9AC
+ lsl r0, r0, #0x18
+ lsr r6, r0, #0x18
+ ldr r5, _02044FE4 ; =0x00000000
+ ldr r0, [sp, #0x4]
+ strh r5, [r0, #0x0]
+ beq _02044FDE
+_02044F9E:
+ ldr r0, [r7, #0xc]
+ bl FUN_0206BB1C
+ add r1, r5, #0x0
+ bl FUN_0206B9B0
+ mov r1, #0x4c
+ mov r2, #0x0
+ add r4, r0, #0x0
+ bl FUN_020671BC
+ cmp r0, #0x0
+ bne _02044FD4
+ add r0, r4, #0x0
+ mov r1, #0x5
+ mov r2, #0x0
+ bl FUN_020671BC
+ lsl r0, r0, #0x10
+ lsr r1, r0, #0x10
+ ldr r0, [sp, #0x0]
+ cmp r0, r1
+ bne _02044FD4
+ ldr r0, [sp, #0x4]
+ mov r1, #0x1
+ strh r1, [r0, #0x0]
+ b _02044FDE
+_02044FD4:
+ add r0, r5, #0x1
+ lsl r0, r0, #0x18
+ lsr r5, r0, #0x18
+ cmp r5, r6
+ blo _02044F9E
+_02044FDE:
+ mov r0, #0x0
+ add sp, #0x8
+ pop {r3-r7, pc}
+ .balign 4
+_02044FE4: .word 0x00000000
+
+ thumb_func_start FUN_02044FE8
+FUN_02044FE8: ; 0x02044FE8
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394B8
+ str r0, [sp, #0x0]
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r5, #0x80
+ add r4, r0, #0x0
+ ldr r0, [r5, #0x0]
+ ldr r0, [r0, #0xc]
+ bl FUN_0206BB1C
+ add r1, r4, #0x0
+ bl FUN_0206B9B0
+ mov r4, #0x0
+ add r6, r0, #0x0
+ add r5, r4, #0x0
+ add r7, r4, #0x0
+_0204502A:
+ lsl r0, r4, #0x18
+ lsr r0, r0, #0x18
+ add r1, r7, #0x0
+ bl FUN_0207FC5C
+ add r1, r0, #0x0
+ add r0, r6, #0x0
+ mov r2, #0x0
+ bl FUN_020671BC
+ cmp r0, #0x0
+ beq _02045048
+ add r0, r5, #0x1
+ lsl r0, r0, #0x10
+ lsr r5, r0, #0x10
+_02045048:
+ add r0, r4, #0x1
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+ cmp r4, #0x50
+ blo _0204502A
+ ldr r0, [sp, #0x0]
+ strh r5, [r0, #0x0]
+ mov r0, #0x0
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_0204505C
+FUN_0204505C: ; 0x0204505C
+ push {r3-r7, lr}
+ sub sp, #0x10
+ add r4, r0, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394B8
+ str r0, [sp, #0x0]
+ add r0, r4, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0xc]
+ bl FUN_0206BB1C
+ bl FUN_0206B9AC
+ lsl r0, r0, #0x10
+ add r4, #0x80
+ lsr r6, r0, #0x10
+ ldr r0, [r4, #0x0]
+ ldr r0, [r0, #0xc]
+ bl FUN_0206BB1C
+ str r0, [sp, #0xc]
+ mov r0, #0x0
+ str r0, [sp, #0x8]
+ str r0, [sp, #0x4]
+_0204509A:
+ mov r5, #0x0
+ cmp r6, #0x0
+ bls _020450E8
+ ldr r0, [sp, #0x8]
+ lsl r0, r0, #0x18
+ lsr r7, r0, #0x18
+_020450A6:
+ ldr r0, [sp, #0xc]
+ add r1, r5, #0x0
+ bl FUN_0206B9B0
+ mov r1, #0x4c
+ mov r2, #0x0
+ add r4, r0, #0x0
+ bl FUN_020671BC
+ cmp r0, #0x0
+ bne _020450E8
+ add r0, r7, #0x0
+ mov r1, #0x0
+ bl FUN_0207FC5C
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ mov r2, #0x0
+ bl FUN_020671BC
+ cmp r0, #0x0
+ beq _020450DE
+ ldr r0, [sp, #0x4]
+ add r0, r0, #0x1
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #0x4]
+ b _020450E8
+_020450DE:
+ add r0, r5, #0x1
+ lsl r0, r0, #0x10
+ lsr r5, r0, #0x10
+ cmp r5, r6
+ blo _020450A6
+_020450E8:
+ ldr r0, [sp, #0x8]
+ add r0, r0, #0x1
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #0x8]
+ cmp r0, #0x50
+ blo _0204509A
+ ldr r1, [sp, #0x4]
+ ldr r0, [sp, #0x0]
+ strh r1, [r0, #0x0]
+ mov r0, #0x0
+ add sp, #0x10
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_02045104
+FUN_02045104: ; 0x02045104
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394B8
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r7, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r5, #0x80
+ add r6, r0, #0x0
+ ldr r0, [r5, #0x0]
+ ldr r0, [r0, #0xc]
+ bl FUN_0206BB1C
+ add r1, r7, #0x0
+ bl FUN_0206B9B0
+ add r5, r0, #0x0
+ lsl r0, r6, #0x18
+ lsr r0, r0, #0x18
+ mov r1, #0x0
+ bl FUN_0207FC5C
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ mov r2, #0x0
+ bl FUN_020671BC
+ strh r0, [r4, #0x0]
+ mov r0, #0x0
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_02045170
+FUN_02045170: ; 0x02045170
+ push {r3-r6, lr}
+ sub sp, #0x4
+ add r5, r0, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r6, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r4, r0, #0x0
+ mov r1, #0x1
+ add r0, sp, #0x0
+ add r5, #0x80
+ strb r1, [r0, #0x0]
+ ldr r0, [r5, #0x0]
+ ldr r0, [r0, #0xc]
+ bl FUN_0206BB1C
+ add r1, r6, #0x0
+ bl FUN_0206B9B0
+ add r5, r0, #0x0
+ lsl r0, r4, #0x18
+ lsr r0, r0, #0x18
+ mov r1, #0x0
+ bl FUN_0207FC5C
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r2, sp, #0x0
+ bl FUN_02067830
+ mov r0, #0x0
+ add sp, #0x4
+ pop {r3-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_020451D0
+FUN_020451D0: ; 0x020451D0
+ push {r3-r7, lr}
+ sub sp, #0x8
+ add r4, r0, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394B8
+ str r0, [sp, #0x0]
+ add r0, r4, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0xc]
+ bl FUN_0206BB1C
+ bl FUN_0206B9AC
+ lsl r0, r0, #0x10
+ add r4, #0x80
+ lsr r6, r0, #0x10
+ ldr r0, [r4, #0x0]
+ ldr r0, [r0, #0xc]
+ bl FUN_0206BB1C
+ add r7, r0, #0x0
+ mov r0, #0x0
+ str r0, [sp, #0x4]
+_0204520C:
+ mov r5, #0x0
+ cmp r6, #0x0
+ bls _0204524C
+_02045212:
+ add r0, r7, #0x0
+ add r1, r5, #0x0
+ bl FUN_0206B9B0
+ mov r1, #0x4c
+ mov r2, #0x0
+ add r4, r0, #0x0
+ bl FUN_020671BC
+ cmp r0, #0x0
+ beq _02045242
+ add r0, r4, #0x0
+ mov r1, #0x3
+ mov r2, #0x0
+ bl FUN_020671BC
+ cmp r0, #0x0
+ beq _02045242
+ ldr r0, [sp, #0x0]
+ mov r1, #0x1
+ strh r1, [r0, #0x0]
+ add sp, #0x8
+ mov r0, #0x0
+ pop {r3-r7, pc}
+_02045242:
+ add r0, r5, #0x1
+ lsl r0, r0, #0x10
+ lsr r5, r0, #0x10
+ cmp r5, r6
+ blo _02045212
+_0204524C:
+ ldr r0, [sp, #0x4]
+ add r0, r0, #0x1
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #0x4]
+ cmp r0, #0x50
+ blo _0204520C
+ ldr r1, [sp, #0x0]
+ mov r0, #0x0
+ strh r0, [r1, #0x0]
+ add sp, #0x8
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_02045264
+FUN_02045264: ; 0x02045264
+ mov r0, #0x0
+ bx lr
+
+ thumb_func_start FUN_02045268
+FUN_02045268: ; 0x02045268
+ push {r3-r7, lr}
+ add r4, r0, #0x0
+ add r1, r4, #0x0
+ add r1, #0x80
+ ldr r6, [r1, #0x0]
+ bl ScriptReadHalfword
+ add r4, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r4, #0x0]
+ bl FUN_020394B8
+ mov r4, #0x0
+ ldr r7, _020452B0 ; =0x020F450C
+ str r0, [sp, #0x0]
+ add r5, r4, #0x0
+_02045288:
+ ldr r0, [r6, #0xc]
+ bl FUN_0206F158
+ lsl r1, r4, #0x2
+ ldrh r1, [r7, r1]
+ mov r2, #0x4
+ bl FUN_0206EEF8
+ add r0, r5, r0
+ lsl r0, r0, #0x10
+ lsr r5, r0, #0x10
+ add r0, r4, #0x1
+ lsl r0, r0, #0x18
+ lsr r4, r0, #0x18
+ cmp r4, #0x7
+ blo _02045288
+ ldr r0, [sp, #0x0]
+ strh r5, [r0, #0x0]
+ mov r0, #0x0
+ pop {r3-r7, pc}
+ .balign 4
+_020452B0: .word 0x020F450C
+
+ thumb_func_start FUN_020452B4
+FUN_020452B4: ; 0x020452B4
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394B8
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r5, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r5, #0x0]
+ bl FUN_020394F0
+ mov r5, #0x0
+ ldr r2, _02045300 ; =0x020F450C
+ strh r5, [r4, #0x0]
+_020452E0:
+ lsl r3, r5, #0x2
+ ldrh r1, [r2, r3]
+ cmp r0, r1
+ bne _020452F0
+ ldr r0, _02045304 ; =0x020F450E
+ ldrh r0, [r0, r3]
+ strh r0, [r4, #0x0]
+ b _020452FA
+_020452F0:
+ add r1, r5, #0x1
+ lsl r1, r1, #0x10
+ lsr r5, r1, #0x10
+ cmp r5, #0x7
+ blo _020452E0
+_020452FA:
+ mov r0, #0x0
+ pop {r3-r5, pc}
+ nop
+_02045300: .word 0x020F450C
+_02045304: .word 0x020F450E
+
+ thumb_func_start FUN_02045308
+FUN_02045308: ; 0x02045308
+ push {r4-r7, lr}
+ sub sp, #0xc
+ add r4, r0, #0x0
+ add r1, r4, #0x0
+ add r1, #0x80
+ ldr r7, [r1, #0x0]
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394B8
+ str r0, [sp, #0x8]
+ add r0, r4, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394B8
+ str r0, [sp, #0x4]
+ add r0, r4, #0x0
+ bl ScriptReadHalfword
+ add r4, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r4, #0x0]
+ bl FUN_020394F0
+ str r0, [sp, #0x0]
+ mov r4, #0x0
+ ldr r0, [sp, #0x8]
+ add r6, r4, #0x0
+ strh r4, [r0, #0x0]
+ ldr r0, [sp, #0x4]
+ strh r4, [r0, #0x0]
+_02045358:
+ ldr r0, [r7, #0xc]
+ lsl r5, r4, #0x2
+ bl FUN_0206F158
+ ldr r1, _02045394 ; =0x020F450C
+ mov r2, #0x4
+ ldrh r1, [r1, r5]
+ bl FUN_0206EEF8
+ add r0, r6, r0
+ lsl r0, r0, #0x10
+ lsr r6, r0, #0x10
+ ldr r0, [sp, #0x0]
+ cmp r6, r0
+ blo _02045384
+ ldr r0, _02045394 ; =0x020F450C
+ ldrh r1, [r0, r5]
+ ldr r0, [sp, #0x8]
+ strh r1, [r0, #0x0]
+ ldr r0, [sp, #0x4]
+ strh r4, [r0, #0x0]
+ b _0204538E
+_02045384:
+ add r0, r4, #0x1
+ lsl r0, r0, #0x18
+ lsr r4, r0, #0x18
+ cmp r4, #0x7
+ blo _02045358
+_0204538E:
+ mov r0, #0x0
+ add sp, #0xc
+ pop {r4-r7, pc}
+ .balign 4
+_02045394: .word 0x020F450C
+
+ thumb_func_start FUN_02045398
+FUN_02045398: ; 0x02045398
+ mov r0, #0x0
+ bx lr
+
+ thumb_func_start FUN_0204539C
+FUN_0204539C: ; 0x0204539C
+ mov r0, #0x0
+ bx lr
+
+ thumb_func_start FUN_020453A0
+FUN_020453A0: ; 0x020453A0
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394B8
+ add r6, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r5, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r5, #0x0]
+ bl FUN_020394B8
+ ldr r1, _020453EC ; =0x020F4528
+ lsl r2, r4, #0x2
+ ldrh r1, [r1, r2]
+ strh r1, [r6, #0x0]
+ ldr r1, _020453F0 ; =0x020F452A
+ ldrh r1, [r1, r2]
+ strh r1, [r0, #0x0]
+ mov r0, #0x0
+ pop {r4-r6, pc}
+ .balign 4
+_020453EC: .word 0x020F4528
+_020453F0: .word 0x020F452A
+
+ thumb_func_start FUN_020453F4
+FUN_020453F4: ; 0x020453F4
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0xc]
+ bl FUN_02024DA0
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r5, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r5, #0x0]
+ bl FUN_020394B8
+ add r5, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_02024D64
+ strh r0, [r5, #0x0]
+ mov r0, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_02045424
+FUN_02045424: ; 0x02045424
+ push {r3, lr}
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0xc]
+ bl FUN_02024DA0
+ bl FUN_02024D80
+ mov r0, #0x0
+ pop {r3, pc}
+
+ thumb_func_start FUN_02045438
+FUN_02045438: ; 0x02045438
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394B8
+ add r5, #0x80
+ add r4, r0, #0x0
+ ldr r0, [r5, #0x0]
+ ldr r0, [r0, #0xc]
+ bl FUN_02034E30
+ bl FUN_02034E20
+ bl FUN_02055474
+ strh r0, [r4, #0x0]
+ mov r0, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_02045468
+FUN_02045468: ; 0x02045468
+ push {r3, lr}
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0xc]
+ bl FUN_02034E30
+ bl FUN_02034E20
+ mov r1, #0x1
+ bl FUN_02055488
+ mov r0, #0x0
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_02045484
+FUN_02045484: ; 0x02045484
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394B8
+ add r6, r0, #0x0
+ cmp r4, #0x8
+ blo _020454B6
+ bl ErrorHandling
+_020454B6:
+ add r5, #0x80
+ ldr r0, [r5, #0x0]
+ ldr r0, [r0, #0xc]
+ bl FUN_020238F4
+ add r1, r4, #0x0
+ bl FUN_020239D0
+ strh r0, [r6, #0x0]
+ mov r0, #0x0
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_020454CC
+FUN_020454CC: ; 0x020454CC
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r4, r0, #0x0
+ cmp r4, #0x8
+ blo _020454EA
+ bl ErrorHandling
+_020454EA:
+ add r5, #0x80
+ ldr r0, [r5, #0x0]
+ ldr r0, [r0, #0xc]
+ bl FUN_020238F4
+ add r1, r4, #0x0
+ bl FUN_020239E4
+ mov r0, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_02045500
+FUN_02045500: ; 0x02045500
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394B8
+ add r5, #0x80
+ add r4, r0, #0x0
+ ldr r0, [r5, #0x0]
+ ldr r0, [r0, #0xc]
+ bl FUN_020462AC
+ bl FUN_0205ECE0
+ strh r0, [r4, #0x0]
+ mov r0, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_0204552C
+FUN_0204552C: ; 0x0204552C
+ push {r3-r7, lr}
+ add r6, r0, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r6, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394B8
+ mov r4, #0x0
+ ldr r7, _02045578 ; =0x020F4574
+ str r0, [sp, #0x0]
+ add r5, r4, #0x0
+_02045548:
+ add r0, r6, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0xc]
+ bl FUN_020238F4
+ ldrb r1, [r7, r4]
+ bl FUN_020239D0
+ cmp r0, #0x1
+ bne _02045564
+ add r0, r5, #0x1
+ lsl r0, r0, #0x10
+ lsr r5, r0, #0x10
+_02045564:
+ add r0, r4, #0x1
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+ cmp r4, #0x8
+ blo _02045548
+ ldr r0, [sp, #0x0]
+ strh r5, [r0, #0x0]
+ mov r0, #0x0
+ pop {r3-r7, pc}
+ nop
+_02045578: .word 0x020F4574
+
+ thumb_func_start FUN_0204557C
+FUN_0204557C: ; 0x0204557C
+ push {r3, lr}
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0xc]
+ bl FUN_020462AC
+ bl FUN_0205ECD4
+ mov r0, #0x0
+ pop {r3, pc}
+
+ thumb_func_start FUN_02045590
+FUN_02045590: ; 0x02045590
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394B8
+ add r5, #0x80
+ add r4, r0, #0x0
+ ldr r0, [r5, #0x0]
+ ldr r0, [r0, #0xc]
+ bl FUN_020462AC
+ bl FUN_0205ED3C
+ strh r0, [r4, #0x0]
+ mov r0, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_020455BC
+FUN_020455BC: ; 0x020455BC
+ push {r3, lr}
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0xc]
+ bl FUN_020462AC
+ bl FUN_0205ED1C
+ mov r0, #0x0
+ pop {r3, pc}
+
+ thumb_func_start FUN_020455D0
+FUN_020455D0: ; 0x020455D0
+ push {r3, lr}
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0xc]
+ bl FUN_020462AC
+ bl FUN_0205ED2C
+ mov r0, #0x0
+ pop {r3, pc}
+
+ thumb_func_start FUN_020455E4
+FUN_020455E4: ; 0x020455E4
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394B8
+ add r5, #0x80
+ add r4, r0, #0x0
+ ldr r0, [r5, #0x0]
+ ldr r0, [r0, #0xc]
+ bl FUN_020462AC
+ bl FUN_0205ED6C
+ strh r0, [r4, #0x0]
+ mov r0, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_02045610
+FUN_02045610: ; 0x02045610
+ push {r3, lr}
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0xc]
+ bl FUN_020462AC
+ bl FUN_0205ED4C
+ mov r0, #0x0
+ pop {r3, pc}
+
+ thumb_func_start FUN_02045624
+FUN_02045624: ; 0x02045624
+ push {r3, lr}
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0xc]
+ bl FUN_020462AC
+ bl FUN_0205ED5C
+ mov r0, #0x0
+ pop {r3, pc}
+
+ thumb_func_start FUN_02045638
+FUN_02045638: ; 0x02045638
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394B8
+ add r5, #0x80
+ add r4, r0, #0x0
+ ldr r0, [r5, #0x0]
+ ldr r0, [r0, #0xc]
+ bl FUN_020462AC
+ bl FUN_0205ED0C
+ strh r0, [r4, #0x0]
+ mov r0, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_02045664
+FUN_02045664: ; 0x02045664
+ push {r3, lr}
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0xc]
+ bl FUN_020462AC
+ bl FUN_0205ECFC
+ mov r0, #0x0
+ pop {r3, pc}
+
+ thumb_func_start FUN_02045678
+FUN_02045678: ; 0x02045678
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0xc]
+ bl FUN_020462AC
+ ldr r2, [r5, #0x8]
+ add r4, r0, #0x0
+ add r1, r2, #0x1
+ str r1, [r5, #0x8]
+ ldrb r1, [r2, #0x0]
+ cmp r1, #0x0
+ beq _020456A6
+ cmp r1, #0x1
+ beq _0204569E
+ cmp r1, #0x2
+ beq _020456AE
+ b _020456CC
+_0204569E:
+ mov r1, #0x1
+ bl FUN_0205F264
+ b _020456D0
+_020456A6:
+ mov r1, #0x0
+ bl FUN_0205F264
+ b _020456D0
+_020456AE:
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r5, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r5, #0x0]
+ bl FUN_020394B8
+ add r5, r0, #0x0
+ add r0, r4, #0x0
+ mov r1, #0x2
+ bl FUN_0205F264
+ strh r0, [r5, #0x0]
+ b _020456D0
+_020456CC:
+ bl ErrorHandling
+_020456D0:
+ mov r0, #0x0
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_020456D4
+FUN_020456D4: ; 0x020456D4
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0xc]
+ bl FUN_020462AC
+ ldr r2, [r5, #0x8]
+ add r4, r0, #0x0
+ add r1, r2, #0x1
+ str r1, [r5, #0x8]
+ ldrb r1, [r2, #0x0]
+ cmp r1, #0x0
+ beq _02045700
+ cmp r1, #0x1
+ beq _020456FA
+ cmp r1, #0x2
+ beq _02045706
+ b _02045722
+_020456FA:
+ bl FUN_0205F274
+ b _02045726
+_02045700:
+ bl FUN_0205F284
+ b _02045726
+_02045706:
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r5, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r5, #0x0]
+ bl FUN_020394B8
+ add r5, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_0205F294
+ strh r0, [r5, #0x0]
+ b _02045726
+_02045722:
+ bl ErrorHandling
+_02045726:
+ mov r0, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_0204572C
+FUN_0204572C: ; 0x0204572C
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0xc]
+ bl FUN_020462AC
+ ldr r2, [r5, #0x8]
+ add r4, r0, #0x0
+ add r1, r2, #0x1
+ str r1, [r5, #0x8]
+ ldrb r1, [r2, #0x0]
+ cmp r1, #0x0
+ beq _02045758
+ cmp r1, #0x1
+ beq _02045752
+ cmp r1, #0x2
+ beq _0204575E
+ b _0204577A
+_02045752:
+ bl FUN_0205F2A4
+ b _0204577E
+_02045758:
+ bl FUN_0205F2B4
+ b _0204577E
+_0204575E:
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r5, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r5, #0x0]
+ bl FUN_020394B8
+ add r5, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_0205F2C4
+ strh r0, [r5, #0x0]
+ b _0204577E
+_0204577A:
+ bl ErrorHandling
+_0204577E:
+ mov r0, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_02045784
+FUN_02045784: ; 0x02045784
+ push {r3-r7, lr}
+ add r4, r0, #0x0
+ add r1, r4, #0x0
+ add r1, #0x80
+ ldr r5, [r1, #0x0]
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r6, r0, #0x0
+ add r0, r4, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r7, r0, #0x0
+ add r0, r4, #0x0
+ bl ScriptReadHalfword
+ add r4, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r4, #0x0]
+ bl FUN_020394B8
+ add r4, r0, #0x0
+ ldr r0, [r5, #0xc]
+ bl FUN_0206F158
+ add r1, r6, #0x0
+ add r2, r7, #0x0
+ mov r3, #0x4
+ bl FUN_0206ED38
+ strh r0, [r4, #0x0]
+ mov r0, #0x0
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_020457DC
+FUN_020457DC: ; 0x020457DC
+ push {r3-r7, lr}
+ add r4, r0, #0x0
+ add r1, r4, #0x0
+ add r1, #0x80
+ ldr r5, [r1, #0x0]
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r6, r0, #0x0
+ add r0, r4, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r7, r0, #0x0
+ add r0, r4, #0x0
+ bl ScriptReadHalfword
+ add r4, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r4, #0x0]
+ bl FUN_020394B8
+ add r4, r0, #0x0
+ ldr r0, [r5, #0xc]
+ bl FUN_0206F158
+ add r1, r6, #0x0
+ add r2, r7, #0x0
+ mov r3, #0x4
+ bl FUN_0206EDD4
+ strh r0, [r4, #0x0]
+ mov r0, #0x0
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_02045834
+FUN_02045834: ; 0x02045834
+ push {r3-r7, lr}
+ add r4, r0, #0x0
+ add r1, r4, #0x0
+ add r1, #0x80
+ ldr r5, [r1, #0x0]
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r6, r0, #0x0
+ add r0, r4, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r7, r0, #0x0
+ add r0, r4, #0x0
+ bl ScriptReadHalfword
+ add r4, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r4, #0x0]
+ bl FUN_020394B8
+ add r4, r0, #0x0
+ ldr r0, [r5, #0xc]
+ bl FUN_0206F158
+ add r1, r6, #0x0
+ add r2, r7, #0x0
+ mov r3, #0x4
+ bl FUN_0206ED24
+ strh r0, [r4, #0x0]
+ mov r0, #0x0
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_0204588C
+FUN_0204588C: ; 0x0204588C
+ push {r3-r7, lr}
+ add r4, r0, #0x0
+ add r1, r4, #0x0
+ add r1, #0x80
+ ldr r5, [r1, #0x0]
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r6, r0, #0x0
+ add r0, r4, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r7, r0, #0x0
+ add r0, r4, #0x0
+ bl ScriptReadHalfword
+ add r4, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r4, #0x0]
+ bl FUN_020394B8
+ add r4, r0, #0x0
+ ldr r0, [r5, #0xc]
+ bl FUN_0206F158
+ add r1, r6, #0x0
+ add r2, r7, #0x0
+ mov r3, #0xb
+ bl FUN_0206EE50
+ strh r0, [r4, #0x0]
+ mov r0, #0x0
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_020458E4
+FUN_020458E4: ; 0x020458E4
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r5, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r5, #0x0]
+ bl FUN_020394B8
+ add r5, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_02054CB0
+ strh r0, [r5, #0x0]
+ mov r0, #0x0
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_02045918
+FUN_02045918: ; 0x02045918
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r5, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r5, #0x0]
+ bl FUN_020394B8
+ add r5, r0, #0x0
+ add r0, r4, #0x0
+ mov r1, #0x5
+ mov r2, #0xb
+ bl FUN_0206E7B8
+ strh r0, [r5, #0x0]
+ mov r0, #0x0
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_02045950
+FUN_02045950: ; 0x02045950
+ mov r0, #0x0
+ bx lr
+
+ thumb_func_start FUN_02045954
+FUN_02045954: ; 0x02045954
+ mov r0, #0x0
+ bx lr
+
+ thumb_func_start FUN_02045958
+FUN_02045958: ; 0x02045958
+ push {r4-r6, lr}
+ add r4, r0, #0x0
+ add r1, r4, #0x0
+ add r1, #0x80
+ ldr r1, [r1, #0x0]
+ ldr r5, [r1, #0xc]
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r6, r0, #0x0
+ add r0, r4, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r0, r4, #0x0
+ bl ScriptReadHalfword
+ add r4, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r4, #0x0]
+ bl FUN_020394B8
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_02026CC4
+ add r1, r6, #0x0
+ bl FUN_02025D6C
+ strh r0, [r4, #0x0]
+ mov r0, #0x0
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_020459AC
+FUN_020459AC: ; 0x020459AC
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r0, r4, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r0, r4, #0x0
+ bl ScriptReadHalfword
+ add r4, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r4, #0x0]
+ bl FUN_020394B8
+ mov r0, #0x0
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_020459E8
+FUN_020459E8: ; 0x020459E8
+ push {r4-r6, lr}
+ add r4, r0, #0x0
+ add r1, r4, #0x0
+ add r1, #0x80
+ ldr r1, [r1, #0x0]
+ ldr r5, [r1, #0xc]
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r6, r0, #0x0
+ add r0, r4, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r0, r4, #0x0
+ bl ScriptReadHalfword
+ add r4, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r4, #0x0]
+ bl FUN_020394B8
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_02026CC4
+ add r1, r6, #0x0
+ bl FUN_02025D94
+ strh r0, [r4, #0x0]
+ mov r0, #0x0
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_02045A3C
+FUN_02045A3C: ; 0x02045A3C
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r0, r4, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r0, r4, #0x0
+ bl ScriptReadHalfword
+ add r4, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r4, #0x0]
+ bl FUN_020394B8
+ mov r0, #0x0
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02045A78
+FUN_02045A78: ; 0x02045A78
+ push {r4-r6, lr}
+ add r4, r0, #0x0
+ add r1, r4, #0x0
+ add r1, #0x80
+ ldr r1, [r1, #0x0]
+ ldr r5, [r1, #0xc]
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r6, r0, #0x0
+ add r0, r4, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r0, r4, #0x0
+ bl ScriptReadHalfword
+ add r4, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r4, #0x0]
+ bl FUN_020394B8
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_02026CC4
+ add r1, r6, #0x0
+ bl FUN_02026298
+ strh r0, [r4, #0x0]
+ mov r0, #0x0
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_02045ACC
+FUN_02045ACC: ; 0x02045ACC
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r0, r4, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r0, r4, #0x0
+ bl ScriptReadHalfword
+ add r4, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r4, #0x0]
+ bl FUN_020394B8
+ mov r0, #0x0
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02045B08
+FUN_02045B08: ; 0x02045B08
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r0, r4, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r0, r4, #0x0
+ bl ScriptReadHalfword
+ add r4, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r4, #0x0]
+ bl FUN_020394B8
+ mov r0, #0x0
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02045B44
+FUN_02045B44: ; 0x02045B44
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r0, r4, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r0, r4, #0x0
+ bl ScriptReadHalfword
+ add r4, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r4, #0x0]
+ bl FUN_020394B8
+ mov r0, #0x0
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02045B80
+FUN_02045B80: ; 0x02045B80
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r1, r5, #0x0
+ add r1, #0x80
+ ldr r1, [r1, #0x0]
+ ldr r4, [r1, #0xc]
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r5, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r5, #0x0]
+ bl FUN_020394B8
+ add r0, r4, #0x0
+ bl FUN_02026CC4
+ mov r0, #0x0
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_02045BC8
+FUN_02045BC8: ; 0x02045BC8
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r0, r4, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r0, r4, #0x0
+ bl ScriptReadHalfword
+ add r4, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r4, #0x0]
+ bl FUN_020394B8
+ mov r0, #0x0
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02045C04
+FUN_02045C04: ; 0x02045C04
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r0, r4, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r0, r4, #0x0
+ bl ScriptReadHalfword
+ add r4, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r4, #0x0]
+ bl FUN_020394B8
+ mov r0, #0x0
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02045C40
+FUN_02045C40: ; 0x02045C40
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r0, r4, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r0, r4, #0x0
+ bl ScriptReadHalfword
+ add r4, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r4, #0x0]
+ bl FUN_020394B8
+ mov r0, #0x0
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02045C7C
+FUN_02045C7C: ; 0x02045C7C
+ push {r3-r7, lr}
+ add r4, r0, #0x0
+ add r1, r4, #0x0
+ add r1, #0x80
+ ldr r1, [r1, #0x0]
+ ldr r5, [r1, #0xc]
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r6, r0, #0x0
+ add r0, r4, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r7, r0, #0x0
+ add r0, r4, #0x0
+ bl ScriptReadHalfword
+ add r4, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r4, #0x0]
+ bl FUN_020394B8
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_02026CC4
+ add r1, r6, #0x0
+ add r2, r7, #0x0
+ bl FUN_020260C4
+ strh r0, [r4, #0x0]
+ mov r0, #0x0
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_02045CD4
+FUN_02045CD4: ; 0x02045CD4
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r0, r4, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r0, r4, #0x0
+ bl ScriptReadHalfword
+ add r4, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r4, #0x0]
+ bl FUN_020394B8
+ mov r0, #0x0
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02045D10
+FUN_02045D10: ; 0x02045D10
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r0, r4, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r0, r4, #0x0
+ bl ScriptReadHalfword
+ add r4, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r4, #0x0]
+ bl FUN_020394B8
+ mov r0, #0x0
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02045D4C
+FUN_02045D4C: ; 0x02045D4C
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r0, r4, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r0, r4, #0x0
+ bl ScriptReadHalfword
+ add r4, #0x80
+ add r1, r0, #0x0
+ ldr r0, [r4, #0x0]
+ bl FUN_020394B8
+ mov r0, #0x0
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02045D88
+FUN_02045D88: ; 0x02045D88
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ mov r1, #0x13
+ bl FUN_02039438
+ add r1, r5, #0x0
+ add r1, #0x80
+ lsl r2, r4, #0x18
+ add r6, r0, #0x0
+ ldr r1, [r1, #0x0]
+ mov r0, #0x20
+ lsr r2, r2, #0x18
+ bl FUN_02037CF0
+ str r0, [r6, #0x0]
+ ldr r1, _02045DCC ; =FUN_0203BC04
+ add r0, r5, #0x0
+ bl SetupNativeScript
+ mov r0, #0x1
+ pop {r4-r6, pc}
+ nop
+_02045DCC: .word FUN_0203BC04
+
+ thumb_func_start FUN_02045DD0
+FUN_02045DD0: ; 0x02045DD0
+ push {r3-r5, lr}
+ add r4, r0, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394B8
+ add r4, #0x80
+ add r5, r0, #0x0
+ ldr r0, [r4, #0x0]
+ mov r1, #0x13
+ bl FUN_02039438
+ add r4, r0, #0x0
+ ldr r0, [r4, #0x0]
+ cmp r0, #0x0
+ bne _02045DFC
+ bl ErrorHandling
+_02045DFC:
+ ldr r0, [r4, #0x0]
+ bl FUN_02037D5C
+ strh r0, [r5, #0x0]
+ ldrh r0, [r5, #0x0]
+ cmp r0, #0x4
+ bne _02045E0E
+ mov r0, #0xff
+ strh r0, [r5, #0x0]
+_02045E0E:
+ ldr r0, [r4, #0x0]
+ bl FUN_02016A18
+ mov r0, #0x0
+ str r0, [r4, #0x0]
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_02045E1C
+FUN_02045E1C: ; 0x02045E1C
+ mov r0, #0x0
+ bx lr
+
+ thumb_func_start FUN_02045E20
+FUN_02045E20: ; 0x02045E20
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394B8
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r5, #0x80
+ add r6, r0, #0x0
+ ldr r0, [r5, #0x0]
+ ldr r0, [r0, #0xc]
+ bl FUN_0206BB1C
+ add r1, r6, #0x0
+ bl FUN_0206B9B0
+ mov r1, #0x20
+ bl FUN_02088DF8
+ add r5, r0, #0x0
+ bl FUN_02088EF8
+ strh r0, [r4, #0x0]
+ add r0, r5, #0x0
+ bl FUN_02016A18
+ mov r0, #0x0
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_02045E74
+FUN_02045E74: ; 0x02045E74
+ push {r3-r7, lr}
+ sub sp, #0x8
+ add r5, r0, #0x0
+ add r0, #0x80
+ add r7, r1, #0x0
+ ldr r0, [r0, #0x0]
+ mov r1, #0x13
+ str r2, [sp, #0x0]
+ add r6, r3, #0x0
+ bl FUN_02039438
+ str r0, [sp, #0x4]
+ mov r0, #0x20
+ bl FUN_02088DD8
+ add r4, r0, #0x0
+ ldr r0, [sp, #0x4]
+ str r4, [r0, #0x0]
+ ldr r0, [sp, #0x0]
+ str r0, [r4, #0x0]
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020377AC
+ bl FUN_020238F4
+ str r0, [r4, #0x4]
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0xc]
+ bl LoadPlayerDataAddress
+ str r0, [r4, #0x8]
+ str r6, [r4, #0xc]
+ add r0, r5, #0x0
+ strb r7, [r4, #0x15]
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ add r1, r4, #0x0
+ bl FUN_02038864
+ ldr r1, _02045EDC ; =FUN_0203BC04
+ add r0, r5, #0x0
+ bl SetupNativeScript
+ add r0, r6, #0x0
+ bl FUN_02016A18
+ add sp, #0x8
+ pop {r3-r7, pc}
+ .balign 4
+_02045EDC: .word FUN_0203BC04
+
+ thumb_func_start FUN_02045EE0
+FUN_02045EE0: ; 0x02045EE0
+ mov r0, #0x1
+ bx lr
+
+ thumb_func_start FUN_02045EE4
+FUN_02045EE4: ; 0x02045EE4
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0xc]
+ bl FUN_0206BB1C
+ add r1, r4, #0x0
+ bl FUN_0206B9B0
+ add r4, r0, #0x0
+ mov r1, #0x20
+ bl FUN_02088DF8
+ add r3, r0, #0x0
+ add r0, r5, #0x0
+ mov r1, #0x1
+ add r2, r4, #0x0
+ bl FUN_02045E74
+ mov r0, #0x1
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_02045F24
+FUN_02045F24: ; 0x02045F24
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r6, r0, #0x0
+ add r0, r5, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394F0
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0xc]
+ bl FUN_0206BB1C
+ add r1, r6, #0x0
+ bl FUN_0206B9B0
+ add r6, r0, #0x0
+ mov r0, #0x20
+ mov r1, #0x4
+ bl FUN_02016998
+ add r3, r0, #0x0
+ ldr r0, _02045F80 ; =0x0000FFFF
+ strh r4, [r3, #0x0]
+ strh r0, [r3, #0x2]
+ add r0, r5, #0x0
+ mov r1, #0x0
+ add r2, r6, #0x0
+ bl FUN_02045E74
+ mov r0, #0x1
+ pop {r4-r6, pc}
+ .balign 4
+_02045F80: .word 0x0000FFFF
+
+ thumb_func_start FUN_02045F84
+FUN_02045F84: ; 0x02045F84
+ mov r0, #0x0
+ bx lr
+
+ thumb_func_start FUN_02045F88
+FUN_02045F88: ; 0x02045F88
+ push {r3-r5, lr}
+ add r4, r0, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394B8
+ add r4, #0x80
+ add r5, r0, #0x0
+ ldr r0, [r4, #0x0]
+ mov r1, #0x13
+ bl FUN_02039438
+ ldr r4, [r0, #0x0]
+ cmp r4, #0x0
+ bne _02045FB2
+ bl ErrorHandling
+_02045FB2:
+ ldrb r0, [r4, #0x16]
+ cmp r0, #0x0
+ bne _02045FBC
+ mov r0, #0x0
+ b _02045FBE
+_02045FBC:
+ mov r0, #0xff
+_02045FBE:
+ strh r0, [r5, #0x0]
+ add r0, r4, #0x0
+ bl FUN_02088DF0
+ mov r0, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_02045FCC
+FUN_02045FCC: ; 0x02045FCC
+ push {r3-r5, lr}
+ add r4, r0, #0x0
+ bl ScriptReadHalfword
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_020394B8
+ add r4, #0x80
+ add r5, r0, #0x0
+ ldr r0, [r4, #0x0]
+ mov r1, #0x13
+ bl FUN_02039438
+ ldr r4, [r0, #0x0]
+ cmp r4, #0x0
+ bne _02045FF6
+ bl ErrorHandling
+_02045FF6:
+ ldrb r0, [r4, #0x16]
+ cmp r0, #0x0
+ bne _02046000
+ mov r0, #0x0
+ b _02046002
+_02046000:
+ mov r0, #0xff
+_02046002:
+ strh r0, [r5, #0x0]
+ add r0, r4, #0x0
+ bl FUN_02088DF0
+ mov r0, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_02046010
+FUN_02046010: ; 0x02046010
+ push {r3, lr}
+ bl ErrorHandling
+ mov r0, #0x0
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_0204601C
+FUN_0204601C: ; 0x0204601C
+ push {r3, lr}
+ bl ErrorHandling
+ mov r0, #0x0
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_02046028
+FUN_02046028: ; 0x02046028
+ mov r0, #0x0
+ bx lr
+
+ thumb_func_start FUN_0204602C
+FUN_0204602C: ; 0x0204602C
+ mov r0, #0x0
+ bx lr
diff --git a/arm9/asm/secure.s b/arm9/asm/secure.s
new file mode 100644
index 00000000..f9d8f159
--- /dev/null
+++ b/arm9/asm/secure.s
@@ -0,0 +1,29 @@
+/* secure.s TODO: Disassemble */
+ .include "asm/macros.inc"
+
+.section .text
+
+.incbin "baserom.nds", 0x4000, 0x19E
+
+ non_word_aligned_thumb_func_start FUN_0200019E
+FUN_0200019E: ; 0x0200019E
+ swi 13
+ bx lr
+ thumb_func_end FUN_0200019E
+
+.incbin "baserom.nds", 0x41A2, 0x15C
+
+ non_word_aligned_thumb_func_start FUN_020002FE
+FUN_020002FE: ; 0x020002FE
+ swi 11
+ bx lr
+
+.incbin "baserom.nds", 0x4302, 0x2F0
+
+
+ non_word_aligned_thumb_func_start SVC_WaitByLoop
+SVC_WaitByLoop:
+ swi 3
+ bx lr
+
+.incbin "baserom.nds", 0x45F6, 0x20A
diff --git a/arm9/asm/unk_02000E0C.s b/arm9/asm/unk_02000E0C.s
new file mode 100644
index 00000000..50b0dace
--- /dev/null
+++ b/arm9/asm/unk_02000E0C.s
@@ -0,0 +1,2758 @@
+ .include "asm/macros.inc"
+ .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 FUN_02005FDC
+_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 FUN_02005F60
+_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
+
+ thumb_func_start FUN_020010A8
+FUN_020010A8: ; 0x020010A8
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ add r6, r1, #0x0
+ add r0, r3, #0x0
+ mov r1, #0x38
+ add r7, r2, #0x0
+ str r3, [sp, #0x0]
+ bl FUN_02016998
+ add r4, r0, #0x0
+ add r3, r5, #0x0
+ add r2, r4, #0x0
+ 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, [sp, #0x0]
+ bl FUN_02013690
+ str r0, [r4, #0x28]
+ strh r6, [r4, #0x2c]
+ add r1, r4, #0x0
+ strh r7, [r4, #0x2e]
+ mov r0, #0x0
+ add r1, #0x30
+ strb r0, [r1, #0x0]
+ add r1, r4, #0x0
+ add r1, #0x31
+ strb r0, [r1, #0x0]
+ add r1, r4, #0x0
+ mov r2, #0xff
+ add r1, #0x32
+ strb r2, [r1, #0x0]
+ add r1, r4, #0x0
+ add r1, #0x33
+ strb r0, [r1, #0x0]
+ add r1, r4, #0x0
+ ldr r0, [sp, #0x0]
+ add r1, #0x34
+ strb r0, [r1, #0x0]
+ add r0, r4, #0x0
+ ldrb r1, [r4, #0x17]
+ add r0, #0x20
+ ldrb r2, [r0, #0x0]
+ lsl r1, r1, #0x18
+ mov r0, #0xf
+ lsr r3, r1, #0x1c
+ mov r1, #0xf
+ bic r2, r0
+ and r3, r1
+ orr r3, r2
+ add r2, r4, #0x0
+ add r2, #0x20
+ strb r3, [r2, #0x0]
+ add r2, r4, #0x0
+ add r2, #0x20
+ ldrb r2, [r2, #0x0]
+ mov r3, #0xf0
+ bic r2, r3
+ ldrb r3, [r4, #0x18]
+ lsl r3, r3, #0x1c
+ lsr r3, r3, #0x1c
+ lsl r3, r3, #0x1c
+ lsr r3, r3, #0x18
+ orr r3, r2
+ add r2, r4, #0x0
+ add r2, #0x20
+ strb r3, [r2, #0x0]
+ add r2, r4, #0x0
+ add r2, #0x21
+ ldrb r2, [r2, #0x0]
+ bic r2, r0
+ ldrb r0, [r4, #0x18]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x1c
+ and r0, r1
+ add r1, r2, #0x0
+ orr r1, r0
+ add r0, r4, #0x0
+ add r0, #0x21
+ strb r1, [r0, #0x0]
+ add r0, r4, #0x0
+ add r0, #0x22
+ ldrb r0, [r0, #0x0]
+ mov r1, #0x3f
+ bic r0, r1
+ ldrh r1, [r4, #0x1a]
+ lsl r1, r1, #0x1d
+ lsr r1, r1, #0x1d
+ lsl r1, r1, #0x18
+ lsr r2, r1, #0x18
+ mov r1, #0x3f
+ and r1, r2
+ orr r1, r0
+ add r0, r4, #0x0
+ add r0, #0x22
+ strb r1, [r0, #0x0]
+ add r0, r4, #0x0
+ add r0, #0x24
+ ldrb r0, [r0, #0x0]
+ mov r1, #0x7f
+ bic r0, r1
+ ldrh r1, [r4, #0x1a]
+ lsl r1, r1, #0x11
+ lsr r1, r1, #0x1a
+ lsl r1, r1, #0x18
+ lsr r2, r1, #0x18
+ mov r1, #0x7f
+ and r1, r2
+ orr r1, r0
+ add r0, r4, #0x0
+ add r0, #0x24
+ strb r1, [r0, #0x0]
+ add r0, r4, #0x0
+ add r0, #0x24
+ ldrb r1, [r0, #0x0]
+ mov r0, #0x80
+ bic r1, r0
+ add r0, r4, #0x0
+ add r0, #0x24
+ strb r1, [r0, #0x0]
+ ldrh r1, [r4, #0x10]
+ ldrh r0, [r4, #0x12]
+ cmp r1, r0
+ bhs _020011AC
+ strh r1, [r4, #0x12]
+_020011AC:
+ ldrb r2, [r4, #0x18]
+ ldr r0, [r4, #0x28]
+ lsl r1, r2, #0x1c
+ lsr r1, r1, #0x1c
+ lsl r1, r1, #0x18
+ lsr r3, r1, #0x18
+ ldrb r1, [r4, #0x17]
+ lsl r2, r2, #0x18
+ lsr r2, r2, #0x1c
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x1c
+ lsl r1, r1, #0x18
+ lsl r2, r2, #0x18
+ lsr r1, r1, #0x8
+ lsr r2, r2, #0x10
+ orr r1, r2
+ orr r1, r3
+ bl FUN_020136E0
+ ldrb r1, [r4, #0x18]
+ ldr r0, [r4, #0xc]
+ lsl r1, r1, #0x1c
+ lsr r1, r1, #0x1c
+ bl FUN_02019620
+ ldrh r1, [r4, #0x2c]
+ ldrh r3, [r4, #0x12]
+ add r0, r4, #0x0
+ mov r2, #0x0
+ bl FUN_02001714
+ add r0, r4, #0x0
+ bl FUN_020017AC
+ add r0, r4, #0x0
+ mov r1, #0x1
+ bl FUN_02001B64
+ ldr r0, [r5, #0xc]
+ bl FUN_020191D0
+ add r0, r4, #0x0
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_02001204
+FUN_02001204: ; 0x02001204
+ push {r4-r6, lr}
+ add r4, r0, #0x0
+ add r1, r4, #0x0
+ ldr r6, _020012FC ; =0x021C48B8
+ mov r3, #0x0
+ add r1, #0x33
+ strb r3, [r1, #0x0]
+ ldr r1, [r6, #0x48]
+ mov r2, #0x1
+ add r5, r1, #0x0
+ tst r5, r2
+ beq _0200122C
+ ldrh r1, [r4, #0x2c]
+ ldrh r0, [r4, #0x2e]
+ ldr r2, [r4, #0x0]
+ add r0, r1, r0
+ lsl r0, r0, #0x3
+ add r0, r2, r0
+ ldr r0, [r0, #0x4]
+ pop {r4-r6, pc}
+_0200122C:
+ mov r5, #0x2
+ tst r1, r5
+ beq _02001236
+ sub r0, r5, #0x4
+ pop {r4-r6, pc}
+_02001236:
+ ldr r5, [r6, #0x4c]
+ mov r1, #0x40
+ tst r1, r5
+ beq _02001254
+ add r1, r2, #0x0
+ bl FUN_02001AA4
+ cmp r0, #0x0
+ bne _0200124E
+ mov r0, #0x1
+ add r4, #0x33
+ strb r0, [r4, #0x0]
+_0200124E:
+ mov r0, #0x0
+ mvn r0, r0
+ pop {r4-r6, pc}
+_02001254:
+ mov r1, #0x80
+ add r3, r5, #0x0
+ tst r3, r1
+ beq _02001274
+ add r1, r2, #0x0
+ add r3, r2, #0x0
+ bl FUN_02001AA4
+ cmp r0, #0x0
+ bne _0200126E
+ mov r0, #0x2
+ add r4, #0x33
+ strb r0, [r4, #0x0]
+_0200126E:
+ mov r0, #0x0
+ mvn r0, r0
+ pop {r4-r6, pc}
+_02001274:
+ ldrh r0, [r4, #0x1a]
+ lsl r0, r0, #0x17
+ lsr r0, r0, #0x1e
+ beq _02001284
+ cmp r0, #0x1
+ beq _0200128A
+ cmp r0, #0x2
+ beq _0200129C
+_02001284:
+ mov r0, #0x0
+ add r1, r0, #0x0
+ b _020012AC
+_0200128A:
+ mov r0, #0x20
+ mov r1, #0x10
+ and r0, r5
+ and r1, r5
+ lsl r0, r0, #0x10
+ lsl r1, r1, #0x10
+ lsr r0, r0, #0x10
+ lsr r1, r1, #0x10
+ b _020012AC
+_0200129C:
+ lsl r0, r1, #0x2
+ add r1, #0x80
+ and r0, r5
+ and r1, r5
+ lsl r0, r0, #0x10
+ lsl r1, r1, #0x10
+ lsr r0, r0, #0x10
+ lsr r1, r1, #0x10
+_020012AC:
+ cmp r0, #0x0
+ beq _020012D0
+ ldrh r2, [r4, #0x12]
+ add r0, r4, #0x0
+ mov r1, #0x1
+ lsl r2, r2, #0x18
+ lsr r2, r2, #0x18
+ mov r3, #0x0
+ bl FUN_02001AA4
+ cmp r0, #0x0
+ bne _020012CA
+ mov r0, #0x3
+ add r4, #0x33
+ strb r0, [r4, #0x0]
+_020012CA:
+ mov r0, #0x0
+ mvn r0, r0
+ pop {r4-r6, pc}
+_020012D0:
+ cmp r1, #0x0
+ beq _020012F4
+ ldrh r2, [r4, #0x12]
+ mov r1, #0x1
+ add r0, r4, #0x0
+ lsl r2, r2, #0x18
+ lsr r2, r2, #0x18
+ add r3, r1, #0x0
+ bl FUN_02001AA4
+ cmp r0, #0x0
+ bne _020012EE
+ mov r0, #0x4
+ add r4, #0x33
+ strb r0, [r4, #0x0]
+_020012EE:
+ mov r0, #0x0
+ mvn r0, r0
+ pop {r4-r6, pc}
+_020012F4:
+ mov r0, #0x0
+ mvn r0, r0
+ pop {r4-r6, pc}
+ nop
+_020012FC: .word 0x021C48B8
+
+ thumb_func_start FUN_02001300
+FUN_02001300: ; 0x02001300
+ push {r4, lr}
+ add r4, r0, #0x0
+ cmp r1, #0x0
+ beq _0200130C
+ ldrh r0, [r4, #0x2c]
+ strh r0, [r1, #0x0]
+_0200130C:
+ cmp r2, #0x0
+ beq _02001314
+ ldrh r0, [r4, #0x2e]
+ strh r0, [r2, #0x0]
+_02001314:
+ ldr r0, [r4, #0x28]
+ bl FUN_020136C0
+ add r0, r4, #0x0
+ add r0, #0x34
+ ldrb r0, [r0, #0x0]
+ add r1, r4, #0x0
+ bl FUN_02016A8C
+ pop {r4, pc}
+
+ thumb_func_start FUN_02001328
+FUN_02001328: ; 0x02001328
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldrb r1, [r4, #0x18]
+ ldr r0, [r4, #0xc]
+ lsl r1, r1, #0x1c
+ lsr r1, r1, #0x1c
+ bl FUN_02019620
+ ldrh r1, [r4, #0x2c]
+ ldrh r3, [r4, #0x12]
+ add r0, r4, #0x0
+ mov r2, #0x0
+ bl FUN_02001714
+ add r0, r4, #0x0
+ bl FUN_020017AC
+ ldr r0, [r4, #0xc]
+ bl FUN_020191D0
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02001354
+FUN_02001354: ; 0x02001354
+ push {r4-r6, lr}
+ add r4, r0, #0x0
+ add r6, r1, #0x0
+ beq _0200136E
+ add r5, r4, #0x0
+ 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}
+_0200136E:
+ strh r2, [r4, #0x2c]
+ add r0, r4, #0x0
+ strh r3, [r4, #0x2e]
+ mov r3, #0x0
+ add r0, #0x30
+ strb r3, [r0, #0x0]
+ add r0, r4, #0x0
+ add r0, #0x31
+ add r1, sp, #0x0
+ strb r3, [r0, #0x0]
+ ldrh r0, [r1, #0x14]
+ cmp r0, #0x40
+ bne _02001398
+ ldrh r1, [r1, #0x10]
+ add r0, r4, #0x0
+ mov r2, #0x1
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ bl FUN_02001AA4
+ b _020013AC
+_02001398:
+ cmp r0, #0x80
+ bne _020013AC
+ ldrh r1, [r1, #0x10]
+ mov r2, #0x1
+ add r0, r4, #0x0
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ add r3, r2, #0x0
+ bl FUN_02001AA4
+_020013AC:
+ ldr r1, [sp, #0x18]
+ cmp r1, #0x0
+ beq _020013B6
+ ldrh r0, [r4, #0x2c]
+ strh r0, [r1, #0x0]
+_020013B6:
+ ldr r1, [sp, #0x1c]
+ cmp r1, #0x0
+ beq _020013C0
+ ldrh r0, [r4, #0x2e]
+ strh r0, [r1, #0x0]
+_020013C0:
+ mov r0, #0x0
+ mvn r0, r0
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_020013C8
+FUN_020013C8: ; 0x020013C8
+ push {r4, lr}
+ sub sp, #0x10
+ mov r4, #0x0
+ str r4, [sp, #0x0]
+ add r4, sp, #0x8
+ ldrh r4, [r4, #0x10]
+ str r4, [sp, #0x4]
+ ldr r4, [sp, #0x1c]
+ str r4, [sp, #0x8]
+ ldr r4, [sp, #0x20]
+ str r4, [sp, #0xc]
+ bl FUN_02001354
+ add sp, #0x10
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_020013E8
+FUN_020013E8: ; 0x020013E8
+ push {r3-r6}
+ add r4, r0, #0x0
+ add r4, #0x20
+ ldrb r6, [r4, #0x0]
+ mov r4, #0xf
+ mov r5, #0xf
+ bic r6, r4
+ and r1, r5
+ orr r6, r1
+ add r1, r0, #0x0
+ add r1, #0x20
+ strb r6, [r1, #0x0]
+ add r1, r0, #0x0
+ add r1, #0x20
+ lsl r2, r2, #0x1c
+ ldrb r1, [r1, #0x0]
+ mov r6, #0xf0
+ lsr r2, r2, #0x18
+ bic r1, r6
+ orr r2, r1
+ add r1, r0, #0x0
+ add r1, #0x20
+ strb r2, [r1, #0x0]
+ add r1, r0, #0x0
+ add r1, #0x21
+ ldrb r2, [r1, #0x0]
+ add r1, r3, #0x0
+ and r1, r5
+ bic r2, r4
+ orr r2, r1
+ add r1, r0, #0x0
+ add r1, #0x21
+ strb r2, [r1, #0x0]
+ add r1, r0, #0x0
+ add r1, #0x24
+ ldrb r2, [r1, #0x0]
+ mov r1, #0x80
+ add r0, #0x24
+ orr r1, r2
+ strb r1, [r0, #0x0]
+ pop {r3-r6}
+ bx lr
+
+ thumb_func_start FUN_0200143C
+FUN_0200143C: ; 0x0200143C
+ ldrh r2, [r0, #0x2c]
+ ldrh r0, [r0, #0x2e]
+ add r0, r2, r0
+ strh r0, [r1, #0x0]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02001448
+FUN_02001448: ; 0x02001448
+ cmp r1, #0x0
+ beq _02001450
+ ldrh r3, [r0, #0x2c]
+ strh r3, [r1, #0x0]
+_02001450:
+ cmp r2, #0x0
+ beq _02001458
+ ldrh r0, [r0, #0x2e]
+ strh r0, [r2, #0x0]
+_02001458:
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_0200145C
+FUN_0200145C: ; 0x0200145C
+ add r0, #0x33
+ ldrb r0, [r0, #0x0]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02001464
+FUN_02001464: ; 0x02001464
+ ldr r2, [r0, #0x0]
+ lsl r0, r1, #0x3
+ add r0, r2, r0
+ ldr r0, [r0, #0x4]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02001470
+FUN_02001470: ; 0x02001470
+ push {r4, lr}
+ add r4, r0, #0x0
+ cmp r1, #0x13
+ bhi _02001532
+ add r0, r1, r1
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02001484: ; jump table (using 16-bit offset)
+ .short _020014AC - _02001484 - 2; case 0
+ .short _020014B0 - _02001484 - 2; case 1
+ .short _020014B4 - _02001484 - 2; case 2
+ .short _020014B8 - _02001484 - 2; case 3
+ .short _02001532 - _02001484 - 2; case 4
+ .short _020014BC - _02001484 - 2; case 5
+ .short _020014C0 - _02001484 - 2; case 6
+ .short _020014C4 - _02001484 - 2; case 7
+ .short _020014C8 - _02001484 - 2; case 8
+ .short _020014D0 - _02001484 - 2; case 9
+ .short _020014EA - _02001484 - 2; case 10
+ .short _020014F2 - _02001484 - 2; case 11
+ .short _020014FA - _02001484 - 2; case 12
+ .short _02001502 - _02001484 - 2; case 13
+ .short _0200150A - _02001484 - 2; case 14
+ .short _02001512 - _02001484 - 2; case 15
+ .short _0200151A - _02001484 - 2; case 16
+ .short _02001522 - _02001484 - 2; case 17
+ .short _0200152A - _02001484 - 2; case 18
+ .short _0200152E - _02001484 - 2; case 19
+_020014AC:
+ ldr r0, [r4, #0x4]
+ pop {r4, pc}
+_020014B0:
+ ldr r0, [r4, #0x8]
+ pop {r4, pc}
+_020014B4:
+ ldrh r0, [r4, #0x10]
+ pop {r4, pc}
+_020014B8:
+ ldrh r0, [r4, #0x12]
+ pop {r4, pc}
+_020014BC:
+ ldrb r0, [r4, #0x14]
+ pop {r4, pc}
+_020014C0:
+ ldrb r0, [r4, #0x15]
+ pop {r4, pc}
+_020014C4:
+ ldrb r0, [r4, #0x16]
+ pop {r4, pc}
+_020014C8:
+ ldrb r0, [r4, #0x17]
+ lsl r0, r0, #0x1c
+ lsr r0, r0, #0x1c
+ pop {r4, pc}
+_020014D0:
+ ldrh r0, [r4, #0x1a]
+ mov r1, #0x1
+ lsl r0, r0, #0x11
+ lsr r0, r0, #0x1a
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_02002E4C
+ ldrh r1, [r4, #0x1a]
+ lsl r1, r1, #0x19
+ lsr r1, r1, #0x1c
+ add r0, r1, r0
+ pop {r4, pc}
+_020014EA:
+ ldrb r0, [r4, #0x17]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x1c
+ pop {r4, pc}
+_020014F2:
+ ldrb r0, [r4, #0x18]
+ lsl r0, r0, #0x1c
+ lsr r0, r0, #0x1c
+ pop {r4, pc}
+_020014FA:
+ ldrb r0, [r4, #0x18]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x1c
+ pop {r4, pc}
+_02001502:
+ ldrh r0, [r4, #0x1a]
+ lsl r0, r0, #0x1d
+ lsr r0, r0, #0x1d
+ pop {r4, pc}
+_0200150A:
+ ldrh r0, [r4, #0x1a]
+ lsl r0, r0, #0x19
+ lsr r0, r0, #0x1c
+ pop {r4, pc}
+_02001512:
+ ldrh r0, [r4, #0x1a]
+ lsl r0, r0, #0x17
+ lsr r0, r0, #0x1e
+ pop {r4, pc}
+_0200151A:
+ ldrh r0, [r4, #0x1a]
+ lsl r0, r0, #0x11
+ lsr r0, r0, #0x1a
+ pop {r4, pc}
+_02001522:
+ ldrh r0, [r4, #0x1a]
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x1f
+ pop {r4, pc}
+_0200152A:
+ ldr r0, [r4, #0xc]
+ pop {r4, pc}
+_0200152E:
+ ldr r0, [r4, #0x1c]
+ pop {r4, pc}
+_02001532:
+ mov r0, #0x0
+ mvn r0, r0
+ pop {r4, pc}
+
+ thumb_func_start FUN_02001538
+FUN_02001538: ; 0x02001538
+ cmp r1, #0x13
+ bls _0200153E
+ b _02001648
+_0200153E:
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #0x6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_0200154A: ; jump table (using 16-bit offset)
+ .short _02001572 - _0200154A - 2; case 0
+ .short _02001576 - _0200154A - 2; case 1
+ .short _0200157A - _0200154A - 2; case 2
+ .short _0200157E - _0200154A - 2; case 3
+ .short _02001648 - _0200154A - 2; case 4
+ .short _02001582 - _0200154A - 2; case 5
+ .short _02001586 - _0200154A - 2; case 6
+ .short _0200158A - _0200154A - 2; case 7
+ .short _0200158E - _0200154A - 2; case 8
+ .short _02001648 - _0200154A - 2; case 9
+ .short _020015A2 - _0200154A - 2; case 10
+ .short _020015B6 - _0200154A - 2; case 11
+ .short _020015CA - _0200154A - 2; case 12
+ .short _020015DE - _0200154A - 2; case 13
+ .short _020015F2 - _0200154A - 2; case 14
+ .short _02001606 - _0200154A - 2; case 15
+ .short _0200161A - _0200154A - 2; case 16
+ .short _0200162E - _0200154A - 2; case 17
+ .short _02001642 - _0200154A - 2; case 18
+ .short _02001646 - _0200154A - 2; case 19
+_02001572:
+ str r2, [r0, #0x4]
+ bx lr
+_02001576:
+ str r2, [r0, #0x8]
+ bx lr
+_0200157A:
+ strh r2, [r0, #0x10]
+ bx lr
+_0200157E:
+ strh r2, [r0, #0x12]
+ bx lr
+_02001582:
+ strb r2, [r0, #0x14]
+ bx lr
+_02001586:
+ strb r2, [r0, #0x15]
+ bx lr
+_0200158A:
+ strb r2, [r0, #0x16]
+ bx lr
+_0200158E:
+ ldrb r3, [r0, #0x17]
+ mov r1, #0xf
+ bic r3, r1
+ lsl r1, r2, #0x18
+ lsr r2, r1, #0x18
+ mov r1, #0xf
+ and r1, r2
+ orr r1, r3
+ strb r1, [r0, #0x17]
+ bx lr
+_020015A2:
+ ldrb r3, [r0, #0x17]
+ mov r1, #0xf0
+ bic r3, r1
+ lsl r1, r2, #0x18
+ lsr r1, r1, #0x18
+ lsl r1, r1, #0x1c
+ lsr r1, r1, #0x18
+ orr r1, r3
+ strb r1, [r0, #0x17]
+ bx lr
+_020015B6:
+ ldrb r3, [r0, #0x18]
+ mov r1, #0xf
+ bic r3, r1
+ lsl r1, r2, #0x18
+ lsr r2, r1, #0x18
+ mov r1, #0xf
+ and r1, r2
+ orr r1, r3
+ strb r1, [r0, #0x18]
+ bx lr
+_020015CA:
+ ldrb r3, [r0, #0x18]
+ mov r1, #0xf0
+ bic r3, r1
+ lsl r1, r2, #0x18
+ lsr r1, r1, #0x18
+ lsl r1, r1, #0x1c
+ lsr r1, r1, #0x18
+ orr r1, r3
+ strb r1, [r0, #0x18]
+ bx lr
+_020015DE:
+ ldrh r3, [r0, #0x1a]
+ mov r1, #0x7
+ bic r3, r1
+ lsl r1, r2, #0x18
+ lsr r2, r1, #0x18
+ mov r1, #0x7
+ and r1, r2
+ orr r1, r3
+ strh r1, [r0, #0x1a]
+ bx lr
+_020015F2:
+ ldrh r3, [r0, #0x1a]
+ mov r1, #0x78
+ bic r3, r1
+ lsl r1, r2, #0x18
+ lsr r1, r1, #0x18
+ lsl r1, r1, #0x1c
+ lsr r1, r1, #0x19
+ orr r1, r3
+ strh r1, [r0, #0x1a]
+ bx lr
+_02001606:
+ ldrh r3, [r0, #0x1a]
+ ldr r1, _0200164C ; =0xFFFFFE7F
+ and r3, r1
+ lsl r1, r2, #0x18
+ lsr r1, r1, #0x18
+ lsl r1, r1, #0x1e
+ lsr r1, r1, #0x17
+ orr r1, r3
+ strh r1, [r0, #0x1a]
+ bx lr
+_0200161A:
+ ldrh r3, [r0, #0x1a]
+ ldr r1, _02001650 ; =0xFFFF81FF
+ and r3, r1
+ lsl r1, r2, #0x18
+ lsr r1, r1, #0x18
+ lsl r1, r1, #0x1a
+ lsr r1, r1, #0x11
+ orr r1, r3
+ strh r1, [r0, #0x1a]
+ bx lr
+_0200162E:
+ ldrh r3, [r0, #0x1a]
+ ldr r1, _02001654 ; =0xFFFF7FFF
+ and r3, r1
+ lsl r1, r2, #0x18
+ lsr r1, r1, #0x18
+ lsl r1, r1, #0x1f
+ lsr r1, r1, #0x10
+ orr r1, r3
+ strh r1, [r0, #0x1a]
+ bx lr
+_02001642:
+ str r2, [r0, #0xc]
+ bx lr
+_02001646:
+ str r2, [r0, #0x1c]
+_02001648:
+ bx lr
+ nop
+_0200164C: .word 0xFFFFFE7F
+_02001650: .word 0xFFFF81FF
+_02001654: .word 0xFFFF7FFF
+
+ thumb_func_start FUN_02001658
+FUN_02001658: ; 0x02001658
+ str r1, [r0, #0x0]
+ bx lr
+
+ thumb_func_start FUN_0200165C
+FUN_0200165C: ; 0x0200165C
+ push {r4-r6, lr}
+ sub sp, #0x18
+ add r5, r1, #0x0
+ add r6, r0, #0x0
+ add r4, r2, #0x0
+ cmp r5, #0x0
+ beq _02001710
+ add r0, #0x24
+ ldrb r0, [r0, #0x0]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x1f
+ str r3, [sp, #0x0]
+ beq _020016CC
+ mov r0, #0xff
+ str r0, [sp, #0x4]
+ add r0, r6, #0x0
+ add r0, #0x20
+ ldrb r2, [r0, #0x0]
+ add r3, r4, #0x0
+ lsl r0, r2, #0x18
+ lsr r0, r0, #0x1c
+ lsl r0, r0, #0x18
+ lsr r1, r0, #0x18
+ lsl r0, r2, #0x1c
+ add r2, r6, #0x0
+ add r2, #0x21
+ ldrb r2, [r2, #0x0]
+ lsr r0, r0, #0x1c
+ lsl r0, r0, #0x18
+ lsl r2, r2, #0x1c
+ lsr r2, r2, #0x1c
+ lsl r2, r2, #0x18
+ lsr r0, r0, #0x8
+ lsr r2, r2, #0x10
+ orr r0, r2
+ orr r0, r1
+ str r0, [sp, #0x8]
+ add r0, r6, #0x0
+ add r0, #0x22
+ ldrb r0, [r0, #0x0]
+ add r2, r5, #0x0
+ lsl r0, r0, #0x1a
+ lsr r0, r0, #0x1a
+ str r0, [sp, #0xc]
+ mov r0, #0x0
+ str r0, [sp, #0x10]
+ str r0, [sp, #0x14]
+ ldr r0, [r6, #0xc]
+ add r6, #0x24
+ ldrb r1, [r6, #0x0]
+ lsl r1, r1, #0x19
+ lsr r1, r1, #0x19
+ bl FUN_0201BE3C
+ add sp, #0x18
+ pop {r4-r6, pc}
+_020016CC:
+ mov r0, #0xff
+ str r0, [sp, #0x4]
+ ldrb r1, [r6, #0x18]
+ add r3, r4, #0x0
+ lsl r0, r1, #0x1c
+ lsr r0, r0, #0x1c
+ lsl r0, r0, #0x18
+ lsr r2, r0, #0x18
+ ldrb r0, [r6, #0x17]
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x1c
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x1c
+ lsl r0, r0, #0x18
+ lsl r1, r1, #0x18
+ lsr r0, r0, #0x8
+ lsr r1, r1, #0x10
+ orr r0, r1
+ orr r0, r2
+ str r0, [sp, #0x8]
+ ldrh r0, [r6, #0x1a]
+ add r2, r5, #0x0
+ lsl r0, r0, #0x1d
+ lsr r0, r0, #0x1d
+ str r0, [sp, #0xc]
+ mov r0, #0x0
+ str r0, [sp, #0x10]
+ str r0, [sp, #0x14]
+ ldrh r1, [r6, #0x1a]
+ ldr r0, [r6, #0xc]
+ lsl r1, r1, #0x11
+ lsr r1, r1, #0x1a
+ bl FUN_0201BE3C
+_02001710:
+ add sp, #0x18
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_02001714
+FUN_02001714: ; 0x02001714
+ push {r4-r7, lr}
+ sub sp, #0x14
+ add r5, r0, #0x0
+ str r3, [sp, #0x0]
+ ldrh r0, [r5, #0x1a]
+ add r4, r1, #0x0
+ mov r1, #0x1
+ lsl r0, r0, #0x11
+ lsr r0, r0, #0x1a
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ add r6, r2, #0x0
+ bl FUN_02002E4C
+ ldrh r1, [r5, #0x1a]
+ lsl r1, r1, #0x19
+ lsr r1, r1, #0x1c
+ add r0, r1, r0
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0xc]
+ mov r0, #0x0
+ str r0, [sp, #0x10]
+ ldr r0, [sp, #0x0]
+ cmp r0, #0x0
+ ble _020017A6
+_02001748:
+ ldr r1, [r5, #0x0]
+ lsl r0, r4, #0x3
+ str r0, [sp, #0x8]
+ add r0, r1, r0
+ ldr r1, [r0, #0x4]
+ mov r0, #0x2
+ mvn r0, r0
+ cmp r1, r0
+ beq _02001760
+ ldrb r0, [r5, #0x15]
+ str r0, [sp, #0x4]
+ b _02001764
+_02001760:
+ ldrb r0, [r5, #0x14]
+ str r0, [sp, #0x4]
+_02001764:
+ ldrb r0, [r5, #0x17]
+ lsl r0, r0, #0x1c
+ lsr r3, r0, #0x1c
+ ldr r0, [sp, #0xc]
+ add r2, r0, #0x0
+ mul r2, r6
+ add r0, r3, r2
+ lsl r0, r0, #0x18
+ ldr r3, [r5, #0x8]
+ lsr r7, r0, #0x18
+ cmp r3, #0x0
+ beq _02001782
+ add r0, r5, #0x0
+ add r2, r7, #0x0
+ blx r3
+_02001782:
+ ldr r2, [r5, #0x0]
+ ldr r1, [sp, #0x8]
+ add r0, r5, #0x0
+ ldr r1, [r2, r1]
+ ldr r2, [sp, #0x4]
+ add r3, r7, #0x0
+ bl FUN_0200165C
+ add r0, r4, #0x1
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+ ldr r0, [sp, #0x10]
+ add r6, r6, #0x1
+ add r1, r0, #0x1
+ ldr r0, [sp, #0x0]
+ str r1, [sp, #0x10]
+ cmp r1, r0
+ blt _02001748
+_020017A6:
+ add sp, #0x14
+ pop {r4-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_020017AC
+FUN_020017AC: ; 0x020017AC
+ push {r3-r5, lr}
+ add r4, r0, #0x0
+ ldrh r0, [r4, #0x1a]
+ mov r1, #0x1
+ lsl r0, r0, #0x11
+ lsr r0, r0, #0x1a
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_02002E4C
+ ldrh r1, [r4, #0x1a]
+ ldrh r5, [r4, #0x2e]
+ lsl r2, r1, #0x19
+ lsr r2, r2, #0x1c
+ add r0, r2, r0
+ lsl r0, r0, #0x18
+ lsr r3, r0, #0x18
+ ldrb r0, [r4, #0x17]
+ mul r3, r5
+ ldrb r2, [r4, #0x16]
+ lsl r0, r0, #0x1c
+ lsr r0, r0, #0x1c
+ add r0, r0, r3
+ lsl r0, r0, #0x18
+ lsr r3, r0, #0x18
+ lsl r0, r1, #0x10
+ lsr r0, r0, #0x1f
+ cmp r0, #0x3
+ bhi _02001802
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_020017F2: ; jump table (using 16-bit offset)
+ .short _020017FA - _020017F2 - 2; case 0
+ .short _02001802 - _020017F2 - 2; case 1
+ .short _02001802 - _020017F2 - 2; case 2
+ .short _02001802 - _020017F2 - 2; case 3
+_020017FA:
+ ldr r0, [r4, #0x28]
+ ldr r1, [r4, #0xc]
+ bl FUN_020136F8
+_02001802:
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_02001804
+FUN_02001804: ; 0x02001804
+ push {r3-r5, lr}
+ sub sp, #0x8
+ add r4, r0, #0x0
+ ldrh r0, [r4, #0x1a]
+ add r5, r1, #0x0
+ lsl r1, r0, #0x10
+ lsr r1, r1, #0x1f
+ cmp r1, #0x3
+ bhi _02001868
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #0x6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_02001822: ; jump table (using 16-bit offset)
+ .short _0200182A - _02001822 - 2; case 0
+ .short _02001868 - _02001822 - 2; case 1
+ .short _02001868 - _02001822 - 2; case 2
+ .short _02001868 - _02001822 - 2; case 3
+_0200182A:
+ lsl r0, r0, #0x11
+ lsr r0, r0, #0x1a
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ mov r1, #0x1
+ bl FUN_02002E4C
+ ldrh r1, [r4, #0x1a]
+ lsl r1, r1, #0x19
+ lsr r1, r1, #0x1c
+ add r0, r1, r0
+ lsl r0, r0, #0x18
+ lsr r3, r0, #0x18
+ mov r0, #0x8
+ str r0, [sp, #0x0]
+ mov r0, #0x10
+ str r0, [sp, #0x4]
+ ldrb r1, [r4, #0x18]
+ ldr r0, [r4, #0xc]
+ ldrb r2, [r4, #0x16]
+ ldrb r4, [r4, #0x17]
+ lsl r1, r1, #0x1c
+ mul r3, r5
+ lsl r4, r4, #0x1c
+ lsr r4, r4, #0x1c
+ add r3, r4, r3
+ lsl r3, r3, #0x10
+ lsr r1, r1, #0x1c
+ lsr r3, r3, #0x10
+ bl FUN_020196F4
+_02001868:
+ add sp, #0x8
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_0200186C
+FUN_0200186C: ; 0x0200186C
+ push {r4-r7}
+ ldrh r4, [r0, #0x2e]
+ ldrh r3, [r0, #0x2c]
+ cmp r1, #0x0
+ ldrh r2, [r0, #0x12]
+ bne _020018FE
+ cmp r2, #0x1
+ bne _02001880
+ mov r1, #0x0
+ b _02001898
+_02001880:
+ lsr r7, r2, #0x1f
+ lsl r6, r2, #0x1f
+ sub r6, r6, r7
+ mov r5, #0x1f
+ ror r6, r5
+ lsr r1, r2, #0x1
+ add r5, r7, r6
+ add r1, r1, r5
+ sub r1, r2, r1
+ sub r1, r1, #0x1
+ lsl r1, r1, #0x10
+ lsr r1, r1, #0x10
+_02001898:
+ cmp r3, #0x0
+ bne _020018CC
+ cmp r4, #0x0
+ beq _020018C6
+ ldr r2, [r0, #0x0]
+ lsl r1, r3, #0x3
+ mov r3, #0x2
+ add r1, r2, r1
+ mvn r3, r3
+_020018AA:
+ sub r2, r4, #0x1
+ lsl r2, r2, #0x10
+ lsr r4, r2, #0x10
+ lsl r2, r4, #0x3
+ add r2, r1, r2
+ ldr r2, [r2, #0x4]
+ cmp r2, r3
+ beq _020018C2
+ strh r4, [r0, #0x2e]
+ mov r0, #0x1
+ pop {r4-r7}
+ bx lr
+_020018C2:
+ cmp r4, #0x0
+ bne _020018AA
+_020018C6:
+ mov r0, #0x0
+ pop {r4-r7}
+ bx lr
+_020018CC:
+ cmp r4, r1
+ bls _020018F6
+ ldr r5, [r0, #0x0]
+ lsl r2, r3, #0x3
+ add r2, r5, r2
+ mov r5, #0x2
+ mvn r5, r5
+_020018DA:
+ sub r4, r4, #0x1
+ lsl r4, r4, #0x10
+ lsr r4, r4, #0x10
+ lsl r6, r4, #0x3
+ add r6, r2, r6
+ ldr r6, [r6, #0x4]
+ cmp r6, r5
+ beq _020018F2
+ strh r4, [r0, #0x2e]
+ mov r0, #0x1
+ pop {r4-r7}
+ bx lr
+_020018F2:
+ cmp r4, r1
+ bhi _020018DA
+_020018F6:
+ strh r1, [r0, #0x2e]
+ sub r1, r3, #0x1
+ strh r1, [r0, #0x2c]
+ b _02001984
+_020018FE:
+ cmp r2, #0x1
+ bne _02001906
+ mov r5, #0x0
+ b _0200191A
+_02001906:
+ lsr r7, r2, #0x1f
+ lsl r6, r2, #0x1f
+ sub r6, r6, r7
+ mov r5, #0x1f
+ ror r6, r5
+ lsr r1, r2, #0x1
+ add r5, r7, r6
+ add r1, r1, r5
+ lsl r1, r1, #0x10
+ lsr r5, r1, #0x10
+_0200191A:
+ ldrh r1, [r0, #0x10]
+ sub r1, r1, r2
+ cmp r3, r1
+ bne _02001954
+ sub r2, r2, #0x1
+ cmp r4, r2
+ bge _0200194E
+ ldr r5, [r0, #0x0]
+ lsl r1, r3, #0x3
+ add r1, r5, r1
+ mov r5, #0x2
+ mvn r5, r5
+_02001932:
+ add r3, r4, #0x1
+ lsl r3, r3, #0x10
+ lsr r4, r3, #0x10
+ lsl r3, r4, #0x3
+ add r3, r1, r3
+ ldr r3, [r3, #0x4]
+ cmp r3, r5
+ beq _0200194A
+ strh r4, [r0, #0x2e]
+ mov r0, #0x1
+ pop {r4-r7}
+ bx lr
+_0200194A:
+ cmp r4, r2
+ blt _02001932
+_0200194E:
+ mov r0, #0x0
+ pop {r4-r7}
+ bx lr
+_02001954:
+ cmp r4, r5
+ bhs _0200197E
+ ldr r2, [r0, #0x0]
+ lsl r1, r3, #0x3
+ mov r6, #0x2
+ add r1, r2, r1
+ mvn r6, r6
+_02001962:
+ add r2, r4, #0x1
+ lsl r2, r2, #0x10
+ lsr r4, r2, #0x10
+ lsl r2, r4, #0x3
+ add r2, r1, r2
+ ldr r2, [r2, #0x4]
+ cmp r2, r6
+ beq _0200197A
+ strh r4, [r0, #0x2e]
+ mov r0, #0x1
+ pop {r4-r7}
+ bx lr
+_0200197A:
+ cmp r4, r5
+ blo _02001962
+_0200197E:
+ strh r5, [r0, #0x2e]
+ add r1, r3, #0x1
+ strh r1, [r0, #0x2c]
+_02001984:
+ mov r0, #0x2
+ pop {r4-r7}
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_0200198C
+FUN_0200198C: ; 0x0200198C
+ push {r3-r7, lr}
+ sub sp, #0x8
+ add r5, r0, #0x0
+ ldrh r0, [r5, #0x12]
+ add r4, r1, #0x0
+ add r7, r2, #0x0
+ cmp r4, r0
+ blt _020019B8
+ ldrb r1, [r5, #0x18]
+ ldr r0, [r5, #0xc]
+ lsl r1, r1, #0x1c
+ lsr r1, r1, #0x1c
+ bl FUN_02019620
+ ldrh r1, [r5, #0x2c]
+ ldrh r3, [r5, #0x12]
+ add r0, r5, #0x0
+ mov r2, #0x0
+ bl FUN_02001714
+ add sp, #0x8
+ pop {r3-r7, pc}
+_020019B8:
+ ldrh r0, [r5, #0x1a]
+ mov r1, #0x1
+ lsl r0, r0, #0x11
+ lsr r0, r0, #0x1a
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_02002E4C
+ ldrh r1, [r5, #0x1a]
+ lsl r1, r1, #0x19
+ lsr r1, r1, #0x1c
+ add r0, r1, r0
+ lsl r0, r0, #0x18
+ lsr r6, r0, #0x18
+ cmp r7, #0x0
+ ldrb r0, [r5, #0x18]
+ bne _02001A46
+ lsl r0, r0, #0x1c
+ lsr r7, r0, #0x1c
+ add r2, r4, #0x0
+ lsl r3, r7, #0x4
+ mul r2, r6
+ orr r3, r7
+ lsl r2, r2, #0x18
+ lsl r3, r3, #0x18
+ ldr r0, [r5, #0xc]
+ mov r1, #0x1
+ lsr r2, r2, #0x18
+ lsr r3, r3, #0x18
+ bl FUN_0201A8C8
+ ldrh r1, [r5, #0x2c]
+ add r0, r5, #0x0
+ mov r2, #0x0
+ add r3, r4, #0x0
+ bl FUN_02001714
+ ldrb r0, [r5, #0x17]
+ lsl r0, r0, #0x1c
+ lsr r2, r0, #0x1c
+ ldrh r0, [r5, #0x12]
+ add r1, r0, #0x0
+ mul r1, r6
+ add r0, r2, r1
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+ ldr r0, [r5, #0xc]
+ bl FUN_0201AB0C
+ add r6, r0, #0x0
+ ldr r0, [r5, #0xc]
+ bl FUN_0201AB10
+ lsl r0, r0, #0x3
+ lsl r1, r6, #0x13
+ sub r0, r0, r4
+ lsr r1, r1, #0x10
+ lsl r0, r0, #0x10
+ str r1, [sp, #0x0]
+ lsr r0, r0, #0x10
+ str r0, [sp, #0x4]
+ ldrb r1, [r5, #0x18]
+ ldr r0, [r5, #0xc]
+ mov r2, #0x0
+ lsl r1, r1, #0x1c
+ lsr r1, r1, #0x1c
+ add r3, r4, #0x0
+ bl FUN_020196F4
+ add sp, #0x8
+ pop {r3-r7, pc}
+_02001A46:
+ lsl r0, r0, #0x1c
+ lsr r3, r0, #0x1c
+ add r2, r4, #0x0
+ mul r2, r6
+ lsl r6, r3, #0x4
+ orr r3, r6
+ lsl r2, r2, #0x18
+ lsl r3, r3, #0x18
+ ldr r0, [r5, #0xc]
+ mov r1, #0x0
+ lsr r2, r2, #0x18
+ lsr r3, r3, #0x18
+ bl FUN_0201A8C8
+ ldrh r0, [r5, #0x12]
+ ldrh r1, [r5, #0x2c]
+ add r3, r4, #0x0
+ sub r2, r0, r4
+ add r1, r1, r2
+ lsl r1, r1, #0x10
+ lsl r2, r2, #0x10
+ add r0, r5, #0x0
+ lsr r1, r1, #0x10
+ lsr r2, r2, #0x10
+ bl FUN_02001714
+ ldr r0, [r5, #0xc]
+ bl FUN_0201AB0C
+ lsl r0, r0, #0x13
+ lsr r0, r0, #0x10
+ str r0, [sp, #0x0]
+ ldrb r0, [r5, #0x17]
+ mov r2, #0x0
+ add r3, r2, #0x0
+ lsl r0, r0, #0x1c
+ lsr r0, r0, #0x1c
+ str r0, [sp, #0x4]
+ ldrb r1, [r5, #0x18]
+ ldr r0, [r5, #0xc]
+ lsl r1, r1, #0x1c
+ lsr r1, r1, #0x1c
+ bl FUN_020196F4
+ add sp, #0x8
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_02001AA4
+FUN_02001AA4: ; 0x02001AA4
+ push {r3-r7, lr}
+ sub sp, #0x10
+ str r1, [sp, #0x0]
+ str r2, [sp, #0x4]
+ add r4, r0, #0x0
+ str r3, [sp, #0x8]
+ ldrh r0, [r4, #0x2e]
+ mov r6, #0x0
+ add r5, r6, #0x0
+ str r0, [sp, #0xc]
+ ldr r0, [sp, #0x4]
+ add r7, r6, #0x0
+ cmp r0, #0x0
+ bls _02001AF6
+_02001AC0:
+ ldr r1, [sp, #0x8]
+ add r0, r4, #0x0
+ bl FUN_0200186C
+ orr r5, r0
+ cmp r0, #0x2
+ bne _02001AEA
+ add r0, r6, #0x1
+ lsl r0, r0, #0x18
+ lsr r6, r0, #0x18
+ ldrh r1, [r4, #0x2c]
+ ldrh r0, [r4, #0x2e]
+ ldr r2, [r4, #0x0]
+ add r0, r1, r0
+ lsl r0, r0, #0x3
+ add r0, r2, r0
+ ldr r1, [r0, #0x4]
+ mov r0, #0x2
+ mvn r0, r0
+ cmp r1, r0
+ beq _02001AC0
+_02001AEA:
+ add r0, r7, #0x1
+ lsl r0, r0, #0x18
+ lsr r7, r0, #0x18
+ ldr r0, [sp, #0x4]
+ cmp r7, r0
+ blo _02001AC0
+_02001AF6:
+ ldr r0, [sp, #0x0]
+ cmp r0, #0x0
+ beq _02001B5E
+ cmp r5, #0x3
+ bhi _02001B14
+ add r0, r5, r5
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02001B0C: ; jump table (using 16-bit offset)
+ .short _02001B14 - _02001B0C - 2; case 0
+ .short _02001B1A - _02001B0C - 2; case 1
+ .short _02001B38 - _02001B0C - 2; case 2
+ .short _02001B38 - _02001B0C - 2; case 3
+_02001B14:
+ add sp, #0x10
+ mov r0, #0x1
+ pop {r3-r7, pc}
+_02001B1A:
+ ldr r1, [sp, #0xc]
+ add r0, r4, #0x0
+ bl FUN_02001804
+ add r0, r4, #0x0
+ bl FUN_020017AC
+ add r0, r4, #0x0
+ mov r1, #0x0
+ bl FUN_02001B64
+ ldr r0, [r4, #0xc]
+ bl FUN_020191D0
+ b _02001B5E
+_02001B38:
+ ldr r1, [sp, #0xc]
+ add r0, r4, #0x0
+ bl FUN_02001804
+ ldr r2, [sp, #0x8]
+ add r0, r4, #0x0
+ add r1, r6, #0x0
+ bl FUN_0200198C
+ add r0, r4, #0x0
+ bl FUN_020017AC
+ add r0, r4, #0x0
+ mov r1, #0x0
+ bl FUN_02001B64
+ ldr r0, [r4, #0xc]
+ bl FUN_020191D0
+_02001B5E:
+ mov r0, #0x0
+ add sp, #0x10
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_02001B64
+FUN_02001B64: ; 0x02001B64
+ push {r3-r5, lr}
+ ldr r3, [r0, #0x4]
+ add r2, r1, #0x0
+ cmp r3, #0x0
+ beq _02001B7E
+ ldrh r5, [r0, #0x2c]
+ ldrh r4, [r0, #0x2e]
+ ldr r1, [r0, #0x0]
+ add r4, r5, r4
+ lsl r4, r4, #0x3
+ add r1, r1, r4
+ ldr r1, [r1, #0x4]
+ blx r3
+_02001B7E:
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_02001B80
+FUN_02001B80: ; 0x02001B80
+ ldr r3, _02001B88 ; =FUN_020191D0
+ ldr r0, [r0, #0xc]
+ bx r3
+ nop
+_02001B88: .word FUN_020191D0
+
+ thumb_func_start FUN_02001B8C
+FUN_02001B8C: ; 0x02001B8C
+ push {r3-r7, lr}
+ sub sp, #0x8
+ add r5, r0, #0x0
+ str r3, [sp, #0x0]
+ add r0, sp, #0x10
+ ldrb r0, [r0, #0x10]
+ add r6, r1, #0x0
+ mov r1, #0x20
+ add r7, r2, #0x0
+ str r0, [sp, #0x4]
+ bl FUN_02016998
+ add r4, r0, #0x0
+ add r3, r5, #0x0
+ ldmia r3!, {r0-r1}
+ add r2, r4, #0x0
+ stmia r2!, {r0-r1}
+ ldr r0, [r3, #0x0]
+ str r0, [r2, #0x0]
+ ldr r0, [sp, #0x4]
+ bl FUN_02013690
+ str r0, [r4, #0xc]
+ ldr r0, [sp, #0x24]
+ str r0, [r4, #0x10]
+ ldr r0, [sp, #0x0]
+ strb r0, [r4, #0x15]
+ add r0, r4, #0x0
+ bl FUN_02001FB4
+ strb r0, [r4, #0x16]
+ add r0, sp, #0x10
+ ldrb r0, [r0, #0x10]
+ mov r1, #0x0
+ strb r0, [r4, #0x1c]
+ strb r6, [r4, #0x17]
+ strb r7, [r4, #0x18]
+ ldrb r0, [r5, #0x8]
+ bl FUN_02002E4C
+ add r6, r0, #0x0
+ ldrb r0, [r5, #0x8]
+ mov r1, #0x2
+ bl FUN_02002E4C
+ add r0, r6, r0
+ strb r0, [r4, #0x19]
+ ldrb r0, [r5, #0x8]
+ mov r1, #0x1
+ bl FUN_02002E4C
+ add r6, r0, #0x0
+ ldrb r0, [r5, #0x8]
+ mov r1, #0x3
+ bl FUN_02002E4C
+ add r0, r6, r0
+ strb r0, [r4, #0x1a]
+ add r0, r4, #0x0
+ bl FUN_02001FF4
+ add r0, r4, #0x0
+ bl FUN_02002080
+ add r0, r4, #0x0
+ add sp, #0x8
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_02001C14
+FUN_02001C14: ; 0x02001C14
+ push {r4, lr}
+ sub sp, #0x8
+ add r4, sp, #0x0
+ ldrb r4, [r4, #0x10]
+ str r4, [sp, #0x0]
+ ldr r4, [sp, #0x14]
+ str r4, [sp, #0x4]
+ bl FUN_02001B8C
+ add r4, r0, #0x0
+ ldr r0, [r4, #0x4]
+ bl FUN_020191D0
+ add r0, r4, #0x0
+ add sp, #0x8
+ pop {r4, pc}
+
+ thumb_func_start FUN_02001C34
+FUN_02001C34: ; 0x02001C34
+ push {r4-r6, lr}
+ sub sp, #0x8
+ add r5, r0, #0x0
+ ldrb r0, [r5, #0x8]
+ add r6, r1, #0x0
+ add r4, r2, #0x0
+ mov r1, #0x0
+ bl FUN_02002E4C
+ add r1, r0, #0x0
+ str r4, [sp, #0x0]
+ mov r0, #0x2
+ str r0, [sp, #0x4]
+ add r0, r5, #0x0
+ mov r2, #0x0
+ add r3, r6, #0x0
+ bl FUN_02001C14
+ add sp, #0x8
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_02001C5C
+FUN_02001C5C: ; 0x02001C5C
+ push {r4, lr}
+ add r4, r0, #0x0
+ cmp r1, #0x0
+ beq _02001C68
+ ldrb r0, [r4, #0x15]
+ strb r0, [r1, #0x0]
+_02001C68:
+ ldr r0, [r4, #0xc]
+ bl FUN_020136C0
+ ldrb r0, [r4, #0x1c]
+ add r1, r4, #0x0
+ bl FUN_02016A8C
+ pop {r4, pc}
+
+ thumb_func_start FUN_02001C78
+FUN_02001C78: ; 0x02001C78
+ push {r3-r5, lr}
+ add r4, r0, #0x0
+ mov r1, #0x0
+ ldr r2, _02001D24 ; =0x021C48B8
+ strb r1, [r4, #0x1b]
+ ldr r2, [r2, #0x48]
+ mov r5, #0x1
+ add r3, r2, #0x0
+ tst r3, r5
+ beq _02001C9E
+ ldr r0, _02001D28 ; =0x000005DC
+ bl FUN_020054C8
+ ldrb r0, [r4, #0x15]
+ ldr r1, [r4, #0x0]
+ lsl r0, r0, #0x3
+ add r0, r1, r0
+ ldr r0, [r0, #0x4]
+ pop {r3-r5, pc}
+_02001C9E:
+ ldr r3, [r4, #0x10]
+ tst r3, r2
+ beq _02001CAE
+ ldr r0, _02001D28 ; =0x000005DC
+ bl FUN_020054C8
+ sub r0, r5, #0x3
+ pop {r3-r5, pc}
+_02001CAE:
+ mov r3, #0x40
+ tst r3, r2
+ beq _02001CC8
+ ldr r2, _02001D28 ; =0x000005DC
+ bl FUN_02001E64
+ cmp r0, #0x1
+ bne _02001CC2
+ add r0, r5, #0x0
+ strb r0, [r4, #0x1b]
+_02001CC2:
+ mov r0, #0x0
+ mvn r0, r0
+ pop {r3-r5, pc}
+_02001CC8:
+ mov r1, #0x80
+ tst r1, r2
+ beq _02001CE4
+ ldr r2, _02001D28 ; =0x000005DC
+ add r1, r5, #0x0
+ bl FUN_02001E64
+ cmp r0, #0x1
+ bne _02001CDE
+ mov r0, #0x2
+ strb r0, [r4, #0x1b]
+_02001CDE:
+ mov r0, #0x0
+ mvn r0, r0
+ pop {r3-r5, pc}
+_02001CE4:
+ mov r1, #0x20
+ tst r1, r2
+ beq _02001D00
+ ldr r2, _02001D28 ; =0x000005DC
+ mov r1, #0x2
+ bl FUN_02001E64
+ cmp r0, #0x1
+ bne _02001CFA
+ mov r0, #0x3
+ strb r0, [r4, #0x1b]
+_02001CFA:
+ mov r0, #0x0
+ mvn r0, r0
+ pop {r3-r5, pc}
+_02001D00:
+ mov r1, #0x10
+ tst r2, r1
+ beq _02001D1C
+ ldr r2, _02001D28 ; =0x000005DC
+ mov r1, #0x3
+ bl FUN_02001E64
+ cmp r0, #0x1
+ bne _02001D16
+ mov r0, #0x4
+ strb r0, [r4, #0x1b]
+_02001D16:
+ mov r0, #0x0
+ mvn r0, r0
+ pop {r3-r5, pc}
+_02001D1C:
+ sub r1, #0x11
+ add r0, r1, #0x0
+ pop {r3-r5, pc}
+ nop
+_02001D24: .word 0x021C48B8
+_02001D28: .word 0x000005DC
+
+ thumb_func_start FUN_02001D2C
+FUN_02001D2C: ; 0x02001D2C
+ push {r4-r6, lr}
+ add r2, r1, #0x0
+ add r4, r0, #0x0
+ mov r1, #0x0
+ ldr r3, _02001DD4 ; =0x021C48B8
+ strb r1, [r4, #0x1b]
+ ldr r5, [r3, #0x48]
+ mov r3, #0x1
+ add r6, r5, #0x0
+ tst r6, r3
+ beq _02001D54
+ ldr r0, _02001DD8 ; =0x000005DC
+ bl FUN_020054C8
+ ldrb r0, [r4, #0x15]
+ ldr r1, [r4, #0x0]
+ lsl r0, r0, #0x3
+ add r0, r1, r0
+ ldr r0, [r0, #0x4]
+ pop {r4-r6, pc}
+_02001D54:
+ ldr r6, [r4, #0x10]
+ tst r6, r5
+ beq _02001D66
+ ldr r0, _02001DD8 ; =0x000005DC
+ bl FUN_020054C8
+ mov r0, #0x1
+ mvn r0, r0
+ pop {r4-r6, pc}
+_02001D66:
+ mov r6, #0x40
+ tst r6, r5
+ beq _02001D7E
+ bl FUN_02001E64
+ cmp r0, #0x1
+ bne _02001D78
+ mov r0, #0x1
+ strb r0, [r4, #0x1b]
+_02001D78:
+ mov r0, #0x0
+ mvn r0, r0
+ pop {r4-r6, pc}
+_02001D7E:
+ mov r1, #0x80
+ tst r1, r5
+ beq _02001D98
+ add r1, r3, #0x0
+ bl FUN_02001E64
+ cmp r0, #0x1
+ bne _02001D92
+ mov r0, #0x2
+ strb r0, [r4, #0x1b]
+_02001D92:
+ mov r0, #0x0
+ mvn r0, r0
+ pop {r4-r6, pc}
+_02001D98:
+ mov r1, #0x20
+ tst r1, r5
+ beq _02001DB2
+ mov r1, #0x2
+ bl FUN_02001E64
+ cmp r0, #0x1
+ bne _02001DAC
+ mov r0, #0x3
+ strb r0, [r4, #0x1b]
+_02001DAC:
+ mov r0, #0x0
+ mvn r0, r0
+ pop {r4-r6, pc}
+_02001DB2:
+ mov r1, #0x10
+ add r3, r5, #0x0
+ tst r3, r1
+ beq _02001DCE
+ mov r1, #0x3
+ bl FUN_02001E64
+ cmp r0, #0x1
+ bne _02001DC8
+ mov r0, #0x4
+ strb r0, [r4, #0x1b]
+_02001DC8:
+ mov r0, #0x0
+ mvn r0, r0
+ pop {r4-r6, pc}
+_02001DCE:
+ sub r1, #0x11
+ add r0, r1, #0x0
+ pop {r4-r6, pc}
+ .balign 4
+_02001DD4: .word 0x021C48B8
+_02001DD8: .word 0x000005DC
+
+ thumb_func_start FUN_02001DDC
+FUN_02001DDC: ; 0x02001DDC
+ push {r4, lr}
+ add r4, r0, #0x0
+ cmp r1, #0x5
+ bhi _02001E52
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #0x6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_02001DF0: ; jump table (using 16-bit offset)
+ .short _02001DFC - _02001DF0 - 2; case 0
+ .short _02001E0E - _02001DF0 - 2; case 1
+ .short _02001E1A - _02001DF0 - 2; case 2
+ .short _02001E28 - _02001DF0 - 2; case 3
+ .short _02001E36 - _02001DF0 - 2; case 4
+ .short _02001E44 - _02001DF0 - 2; case 5
+_02001DFC:
+ ldr r0, _02001E58 ; =0x000005DC
+ bl FUN_020054C8
+ ldrb r0, [r4, #0x15]
+ ldr r1, [r4, #0x0]
+ lsl r0, r0, #0x3
+ add r0, r1, r0
+ ldr r0, [r0, #0x4]
+ pop {r4, pc}
+_02001E0E:
+ ldr r0, _02001E58 ; =0x000005DC
+ bl FUN_020054C8
+ mov r0, #0x1
+ mvn r0, r0
+ pop {r4, pc}
+_02001E1A:
+ ldr r2, _02001E58 ; =0x000005DC
+ mov r1, #0x0
+ bl FUN_02001E64
+ mov r0, #0x0
+ mvn r0, r0
+ pop {r4, pc}
+_02001E28:
+ ldr r2, _02001E58 ; =0x000005DC
+ mov r1, #0x1
+ bl FUN_02001E64
+ mov r0, #0x0
+ mvn r0, r0
+ pop {r4, pc}
+_02001E36:
+ ldr r2, _02001E58 ; =0x000005DC
+ mov r1, #0x2
+ bl FUN_02001E64
+ mov r0, #0x0
+ mvn r0, r0
+ pop {r4, pc}
+_02001E44:
+ ldr r2, _02001E58 ; =0x000005DC
+ mov r1, #0x3
+ bl FUN_02001E64
+ mov r0, #0x0
+ mvn r0, r0
+ pop {r4, pc}
+_02001E52:
+ mov r0, #0x0
+ mvn r0, r0
+ pop {r4, pc}
+ .balign 4
+_02001E58: .word 0x000005DC
+
+ thumb_func_start FUN_02001E5C
+FUN_02001E5C: ; 0x02001E5C
+ ldrb r0, [r0, #0x15]
+ bx lr
+
+ thumb_func_start FUN_02001E60
+FUN_02001E60: ; 0x02001E60
+ ldrb r0, [r0, #0x1b]
+ bx lr
+
+ thumb_func_start FUN_02001E64
+FUN_02001E64: ; 0x02001E64
+ push {r4-r7, lr}
+ sub sp, #0xc
+ add r5, r0, #0x0
+ add r6, r2, #0x0
+ ldrb r4, [r5, #0x15]
+ bl FUN_02001EBC
+ cmp r0, #0x0
+ bne _02001E7C
+ add sp, #0xc
+ mov r0, #0x0
+ pop {r4-r7, pc}
+_02001E7C:
+ ldrb r0, [r5, #0x8]
+ mov r1, #0x6
+ bl FUN_02002E4C
+ add r1, sp, #0x8
+ add r7, r0, #0x0
+ add r0, r5, #0x0
+ add r1, #0x1
+ add r2, sp, #0x8
+ add r3, r4, #0x0
+ bl FUN_020020B0
+ mov r0, #0x8
+ str r0, [sp, #0x0]
+ ldrb r0, [r5, #0x1a]
+ add r3, sp, #0x8
+ add r1, r7, #0x0
+ str r0, [sp, #0x4]
+ ldrb r2, [r3, #0x1]
+ ldrb r3, [r3, #0x0]
+ ldr r0, [r5, #0x4]
+ bl FUN_020196F4
+ add r0, r5, #0x0
+ bl FUN_02002080
+ add r0, r6, #0x0
+ bl FUN_020054C8
+ mov r0, #0x1
+ add sp, #0xc
+ pop {r4-r7, pc}
+
+ thumb_func_start FUN_02001EBC
+FUN_02001EBC: ; 0x02001EBC
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ cmp r1, #0x0
+ bne _02001EFA
+ ldrb r6, [r5, #0xa]
+ cmp r6, #0x1
+ bhi _02001ECE
+ mov r0, #0x0
+ pop {r4-r6, pc}
+_02001ECE:
+ ldrb r4, [r5, #0x15]
+ add r1, r6, #0x0
+ add r0, r4, #0x0
+ blx _s32_div_f
+ cmp r1, #0x0
+ bne _02001EF2
+ ldrb r0, [r5, #0xb]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x1e
+ bne _02001EE8
+ mov r0, #0x0
+ pop {r4-r6, pc}
+_02001EE8:
+ sub r0, r6, #0x1
+ add r0, r4, r0
+ lsl r0, r0, #0x18
+ asr r2, r0, #0x18
+ b _02001F9A
+_02001EF2:
+ sub r0, r4, #0x1
+ lsl r0, r0, #0x18
+ asr r2, r0, #0x18
+ b _02001F9A
+_02001EFA:
+ cmp r1, #0x1
+ bne _02001F32
+ ldrb r1, [r5, #0xa]
+ cmp r1, #0x1
+ bhi _02001F08
+ mov r0, #0x0
+ pop {r4-r6, pc}
+_02001F08:
+ ldrb r6, [r5, #0x15]
+ sub r4, r1, #0x1
+ add r0, r6, #0x0
+ blx _s32_div_f
+ cmp r4, r1
+ bne _02001F2A
+ ldrb r0, [r5, #0xb]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x1e
+ bne _02001F22
+ mov r0, #0x0
+ pop {r4-r6, pc}
+_02001F22:
+ sub r0, r6, r4
+ lsl r0, r0, #0x18
+ asr r2, r0, #0x18
+ b _02001F9A
+_02001F2A:
+ add r0, r6, #0x1
+ lsl r0, r0, #0x18
+ asr r2, r0, #0x18
+ b _02001F9A
+_02001F32:
+ cmp r1, #0x2
+ bne _02001F68
+ ldrb r3, [r5, #0x9]
+ cmp r3, #0x1
+ bhi _02001F40
+ mov r0, #0x0
+ pop {r4-r6, pc}
+_02001F40:
+ ldrb r2, [r5, #0xa]
+ ldrb r1, [r5, #0x15]
+ cmp r1, r2
+ bhs _02001F60
+ ldrb r0, [r5, #0xb]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x1e
+ bne _02001F54
+ mov r0, #0x0
+ pop {r4-r6, pc}
+_02001F54:
+ sub r0, r3, #0x1
+ mul r0, r2
+ add r0, r1, r0
+ lsl r0, r0, #0x18
+ asr r2, r0, #0x18
+ b _02001F9A
+_02001F60:
+ sub r0, r1, r2
+ lsl r0, r0, #0x18
+ asr r2, r0, #0x18
+ b _02001F9A
+_02001F68:
+ ldrb r2, [r5, #0x9]
+ cmp r2, #0x1
+ bhi _02001F72
+ mov r0, #0x0
+ pop {r4-r6, pc}
+_02001F72:
+ ldrb r1, [r5, #0xa]
+ ldrb r0, [r5, #0x15]
+ sub r2, r2, #0x1
+ mul r2, r1
+ cmp r0, r2
+ blt _02001F94
+ ldrb r2, [r5, #0xb]
+ lsl r2, r2, #0x18
+ lsr r2, r2, #0x1e
+ bne _02001F8A
+ mov r0, #0x0
+ pop {r4-r6, pc}
+_02001F8A:
+ blx _s32_div_f
+ lsl r0, r1, #0x18
+ asr r2, r0, #0x18
+ b _02001F9A
+_02001F94:
+ add r0, r0, r1
+ lsl r0, r0, #0x18
+ asr r2, r0, #0x18
+_02001F9A:
+ ldr r1, [r5, #0x0]
+ lsl r0, r2, #0x3
+ add r0, r1, r0
+ ldr r1, [r0, #0x4]
+ mov r0, #0x2
+ mvn r0, r0
+ cmp r1, r0
+ bne _02001FAE
+ mov r0, #0x0
+ pop {r4-r6, pc}
+_02001FAE:
+ strb r2, [r5, #0x15]
+ mov r0, #0x1
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_02001FB4
+FUN_02001FB4: ; 0x02001FB4
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ ldrb r1, [r5, #0x9]
+ ldrb r0, [r5, #0xa]
+ mov r6, #0x0
+ add r4, r6, #0x0
+ mul r0, r1
+ cmp r0, #0x0
+ ble _02001FF0
+ add r7, r6, #0x0
+_02001FC8:
+ ldr r2, [r5, #0x0]
+ lsl r1, r4, #0x3
+ ldr r1, [r2, r1]
+ ldrb r0, [r5, #0x8]
+ add r2, r7, #0x0
+ bl FUN_02002E14
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ cmp r6, r0
+ bhs _02001FE0
+ add r6, r0, #0x0
+_02001FE0:
+ add r0, r4, #0x1
+ lsl r0, r0, #0x18
+ lsr r4, r0, #0x18
+ ldrb r1, [r5, #0x9]
+ ldrb r0, [r5, #0xa]
+ mul r0, r1
+ cmp r4, r0
+ blt _02001FC8
+_02001FF0:
+ add r0, r6, #0x0
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_02001FF4
+FUN_02001FF4: ; 0x02001FF4
+ push {r3-r7, lr}
+ sub sp, #0x10
+ add r5, r0, #0x0
+ ldrb r0, [r5, #0x8]
+ mov r1, #0x6
+ bl FUN_02002E4C
+ add r1, r0, #0x0
+ ldr r0, [r5, #0x4]
+ bl FUN_02019620
+ ldrb r0, [r5, #0x19]
+ ldrb r1, [r5, #0x16]
+ ldrb r7, [r5, #0x17]
+ lsl r0, r0, #0x1
+ add r0, r1, r0
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0xc]
+ ldrb r0, [r5, #0x9]
+ mov r6, #0x0
+ cmp r0, #0x0
+ bls _0200207C
+_02002022:
+ ldrb r2, [r5, #0xa]
+ mov r4, #0x0
+ cmp r2, #0x0
+ bls _02002068
+_0200202A:
+ ldrb r3, [r5, #0xb]
+ mul r2, r6
+ ldrb r0, [r5, #0x1a]
+ lsl r3, r3, #0x1c
+ lsr r3, r3, #0x1c
+ add r0, r0, r3
+ ldrb r1, [r5, #0x18]
+ mul r0, r4
+ add r2, r4, r2
+ add r0, r1, r0
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x0]
+ mov r0, #0xff
+ str r0, [sp, #0x4]
+ mov r0, #0x0
+ str r0, [sp, #0x8]
+ ldr r3, [r5, #0x0]
+ lsl r2, r2, #0x3
+ ldr r2, [r3, r2]
+ ldrb r1, [r5, #0x8]
+ ldr r0, [r5, #0x4]
+ add r3, r7, #0x0
+ bl FUN_0201BD84
+ add r0, r4, #0x1
+ lsl r0, r0, #0x18
+ ldrb r2, [r5, #0xa]
+ lsr r4, r0, #0x18
+ cmp r4, r2
+ blo _0200202A
+_02002068:
+ ldr r0, [sp, #0xc]
+ add r0, r7, r0
+ lsl r0, r0, #0x18
+ lsr r7, r0, #0x18
+ add r0, r6, #0x1
+ lsl r0, r0, #0x18
+ lsr r6, r0, #0x18
+ ldrb r0, [r5, #0x9]
+ cmp r6, r0
+ blo _02002022
+_0200207C:
+ add sp, #0x10
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_02002080
+FUN_02002080: ; 0x02002080
+ push {r3-r4, lr}
+ sub sp, #0x4
+ add r4, r0, #0x0
+ ldrb r1, [r4, #0xb]
+ lsl r1, r1, #0x1a
+ lsr r1, r1, #0x1e
+ cmp r1, #0x1
+ beq _020020AA
+ ldrb r3, [r4, #0x15]
+ add r1, sp, #0x0
+ add r1, #0x1
+ add r2, sp, #0x0
+ bl FUN_020020B0
+ add r3, sp, #0x0
+ ldrb r2, [r3, #0x1]
+ ldrb r3, [r3, #0x0]
+ ldr r0, [r4, #0xc]
+ ldr r1, [r4, #0x4]
+ bl FUN_020136F8
+_020020AA:
+ add sp, #0x4
+ pop {r3-r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_020020B0
+FUN_020020B0: ; 0x020020B0
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ add r7, r3, #0x0
+ ldrb r1, [r5, #0xa]
+ add r0, r7, #0x0
+ add r6, r2, #0x0
+ blx _s32_div_f
+ ldrb r2, [r5, #0x19]
+ ldrb r1, [r5, #0x16]
+ lsl r2, r2, #0x1
+ add r1, r1, r2
+ mul r1, r0
+ strb r1, [r4, #0x0]
+ ldrb r1, [r5, #0xa]
+ add r0, r7, #0x0
+ blx _s32_div_f
+ ldrb r2, [r5, #0xb]
+ ldrb r3, [r5, #0x1a]
+ ldrb r0, [r5, #0x18]
+ lsl r2, r2, #0x1c
+ lsr r2, r2, #0x1c
+ add r2, r3, r2
+ mul r2, r1
+ add r0, r0, r2
+ strb r0, [r6, #0x0]
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_020020EC
+FUN_020020EC: ; 0x020020EC
+ push {r3-r7, lr}
+ sub sp, #0x20
+ ldr r5, [sp, #0x3c]
+ str r2, [sp, #0xc]
+ add r7, r0, #0x0
+ str r1, [sp, #0x8]
+ str r3, [sp, #0x10]
+ ldr r2, _02002194 ; =0x00000141
+ mov r0, #0x1
+ mov r1, #0x1a
+ add r3, r5, #0x0
+ bl FUN_0200A86C
+ add r4, r0, #0x0
+ mov r0, #0x2
+ add r1, r5, #0x0
+ bl FUN_02012838
+ add r1, r4, #0x0
+ mov r2, #0x29
+ mov r3, #0x0
+ add r6, r0, #0x0
+ bl FUN_02012880
+ mov r3, #0x2a
+ add r2, r3, #0x0
+ add r0, r6, #0x0
+ add r1, r4, #0x0
+ sub r3, #0x2c
+ bl FUN_02012880
+ add r0, r4, #0x0
+ bl FUN_0200A8B8
+ add r0, r5, #0x0
+ mov r1, #0x1
+ str r6, [sp, #0x14]
+ bl FUN_02018FF4
+ add r1, r0, #0x0
+ str r1, [sp, #0x18]
+ mov r0, #0x0
+ add r3, sp, #0x14
+ strb r0, [r3, #0x8]
+ mov r0, #0x1
+ strb r0, [r3, #0x9]
+ mov r0, #0x2
+ strb r0, [r3, #0xa]
+ ldrb r0, [r3, #0xb]
+ mov r2, #0xf
+ bic r0, r2
+ strb r0, [r3, #0xb]
+ ldrb r4, [r3, #0xb]
+ mov r0, #0x30
+ bic r4, r0
+ strb r4, [r3, #0xb]
+ ldrb r0, [r3, #0xb]
+ bic r0, r2
+ strb r0, [r3, #0xb]
+ ldr r2, [sp, #0x8]
+ add r0, r7, #0x0
+ bl FUN_02019150
+ ldr r0, [sp, #0x18]
+ ldr r2, [sp, #0xc]
+ ldr r3, [sp, #0x10]
+ mov r1, #0x1
+ bl FUN_0200CCA4
+ lsl r0, r5, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x0]
+ mov r0, #0x2
+ str r0, [sp, #0x4]
+ add r3, sp, #0x28
+ ldrb r3, [r3, #0x10]
+ add r0, sp, #0x14
+ mov r1, #0x8
+ mov r2, #0x0
+ bl FUN_02001C14
+ add sp, #0x20
+ pop {r3-r7, pc}
+ nop
+_02002194: .word 0x00000141
+
+ thumb_func_start FUN_02002198
+FUN_02002198: ; 0x02002198
+ push {r4, lr}
+ sub sp, #0x8
+ mov r4, #0x0
+ str r4, [sp, #0x0]
+ ldr r4, [sp, #0x10]
+ str r4, [sp, #0x4]
+ bl FUN_020020EC
+ add sp, #0x8
+ pop {r4, pc}
+
+ thumb_func_start FUN_020021AC
+FUN_020021AC: ; 0x020021AC
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ bl FUN_02001C78
+ add r6, r0, #0x0
+ mov r0, #0x0
+ mvn r0, r0
+ cmp r6, r0
+ beq _020021C8
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_020021EC
+_020021C8:
+ add r0, r6, #0x0
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_020021CC
+FUN_020021CC: ; 0x020021CC
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ add r4, r2, #0x0
+ bl FUN_02001DDC
+ add r6, r0, #0x0
+ mov r0, #0x0
+ mvn r0, r0
+ cmp r6, r0
+ beq _020021E8
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_020021EC
+_020021E8:
+ add r0, r6, #0x0
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_020021EC
+FUN_020021EC: ; 0x020021EC
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ ldr r0, [r5, #0x4]
+ add r4, r1, #0x0
+ mov r1, #0x0
+ bl FUN_0200CCF8
+ ldr r0, [r5, #0x4]
+ bl FUN_02019178
+ ldr r1, [r5, #0x4]
+ add r0, r4, #0x0
+ bl FUN_02016A8C
+ ldr r0, [r5, #0x0]
+ bl FUN_02012870
+ add r0, r5, #0x0
+ mov r1, #0x0
+ bl FUN_02001C5C
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_02002218
+FUN_02002218: ; 0x02002218
+ push {r4, lr}
+ sub sp, #0x18
+ mov r4, #0x8
+ lsl r1, r1, #0x10
+ str r4, [sp, #0x0]
+ mov r3, #0x10
+ str r3, [sp, #0x4]
+ lsr r1, r1, #0x10
+ str r1, [sp, #0x8]
+ lsl r1, r2, #0x10
+ lsr r1, r1, #0x10
+ str r1, [sp, #0xc]
+ str r4, [sp, #0x10]
+ ldr r1, _02002244 ; =0x020ECAC8
+ mov r2, #0x0
+ str r3, [sp, #0x14]
+ add r3, r2, #0x0
+ bl FUN_02019658
+ add sp, #0x18
+ pop {r4, pc}
+ nop
+_02002244: .word 0x020ECAC8
diff --git a/arm9/asm/unk_020023C0.s b/arm9/asm/unk_020023C0.s
new file mode 100644
index 00000000..2024d9d7
--- /dev/null
+++ b/arm9/asm/unk_020023C0.s
@@ -0,0 +1,8340 @@
+ .include "asm/macros.inc"
+ .include "global.inc"
+
+ .text
+
+ thumb_func_start FUN_020023C0
+FUN_020023C0: ; 0x020023C0
+ push {r3-r6, lr}
+ sub sp, #0xc
+ add r4, r0, #0x0
+ add r1, r4, #0x0
+ add r1, #0x24
+ ldrb r1, [r1, #0x0]
+ add r6, r4, #0x0
+ add r6, #0x1c
+ cmp r1, #0x6
+ bls _020023D6
+ b _02002838
+_020023D6:
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #0x6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_020023E2: ; jump table (using 16-bit offset)
+ .short _020023F0 - _020023E2 - 2; case 0
+ .short _02002742 - _020023E2 - 2; case 1
+ .short _0200275C - _020023E2 - 2; case 2
+ .short _02002786 - _020023E2 - 2; case 3
+ .short _020027B6 - _020023E2 - 2; case 4
+ .short _0200280C - _020023E2 - 2; case 5
+ .short _02002818 - _020023E2 - 2; case 6
+_020023F0:
+ ldr r0, _02002658 ; =0x021C48B8
+ ldr r1, [r0, #0x44]
+ mov r0, #0x3
+ tst r0, r1
+ beq _02002402
+ ldrb r0, [r6, #0x0]
+ lsl r0, r0, #0x1b
+ lsr r0, r0, #0x1f
+ bne _02002414
+_02002402:
+ ldr r0, _0200265C ; =0x021C48F8
+ ldrh r0, [r0, #0x22]
+ cmp r0, #0x0
+ beq _02002432
+ ldr r0, _02002660 ; =0x02106FC4
+ ldrb r0, [r0, #0x0]
+ lsl r0, r0, #0x1b
+ lsr r0, r0, #0x1f
+ beq _02002432
+_02002414:
+ add r0, r4, #0x0
+ mov r1, #0x0
+ add r0, #0x26
+ strb r1, [r0, #0x0]
+ add r0, r4, #0x0
+ add r0, #0x25
+ ldrb r0, [r0, #0x0]
+ lsl r0, r0, #0x19
+ lsr r0, r0, #0x19
+ beq _02002432
+ ldr r1, _02002660 ; =0x02106FC4
+ mov r0, #0x40
+ ldrb r2, [r1, #0x0]
+ orr r0, r2
+ strb r0, [r1, #0x0]
+_02002432:
+ add r0, r4, #0x0
+ add r0, #0x26
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x0
+ beq _0200248C
+ add r0, r4, #0x0
+ add r0, #0x25
+ ldrb r0, [r0, #0x0]
+ lsl r0, r0, #0x19
+ lsr r0, r0, #0x19
+ beq _0200248C
+ add r0, r4, #0x0
+ add r0, #0x26
+ ldrb r0, [r0, #0x0]
+ sub r1, r0, #0x1
+ add r0, r4, #0x0
+ add r0, #0x26
+ strb r1, [r0, #0x0]
+ ldr r0, _02002660 ; =0x02106FC4
+ ldrb r0, [r0, #0x0]
+ lsl r1, r0, #0x1f
+ lsr r1, r1, #0x1f
+ beq _02002486
+ ldr r1, _02002658 ; =0x021C48B8
+ ldr r2, [r1, #0x48]
+ mov r1, #0x3
+ tst r1, r2
+ bne _02002478
+ ldr r1, _0200265C ; =0x021C48F8
+ ldrh r1, [r1, #0x20]
+ cmp r1, #0x0
+ beq _02002486
+ lsl r0, r0, #0x1b
+ lsr r0, r0, #0x1f
+ beq _02002486
+_02002478:
+ ldrb r1, [r6, #0x0]
+ mov r0, #0x10
+ add r4, #0x26
+ orr r0, r1
+ strb r0, [r6, #0x0]
+ mov r0, #0x0
+ strb r0, [r4, #0x0]
+_02002486:
+ add sp, #0xc
+ mov r0, #0x3
+ pop {r3-r6, pc}
+_0200248C:
+ add r0, r4, #0x0
+ add r0, #0x25
+ ldrb r0, [r0, #0x0]
+ lsl r0, r0, #0x19
+ lsr r1, r0, #0x19
+ add r0, r4, #0x0
+ add r0, #0x26
+ strb r1, [r0, #0x0]
+ ldr r0, [r4, #0x0]
+ ldrh r5, [r0, #0x0]
+ add r0, r0, #0x2
+ str r0, [r4, #0x0]
+ mov r0, #0xf1
+ lsl r0, r0, #0x8
+ cmp r5, r0
+ bne _020024B0
+ bl ErrorHandling
+_020024B0:
+ ldr r0, _02002664 ; =0x0000F0FD
+ cmp r5, r0
+ bgt _020024DA
+ bge _0200250E
+ ldr r1, _02002668 ; =0x000025BD
+ cmp r5, r1
+ bgt _020024D0
+ sub r0, r1, #0x1
+ cmp r5, r0
+ blt _020024CE
+ bne _020024C8
+ b _020026D8
+_020024C8:
+ cmp r5, r1
+ bne _020024CE
+ b _020026EC
+_020024CE:
+ b _02002700
+_020024D0:
+ mov r0, #0xe
+ lsl r0, r0, #0xc
+ cmp r5, r0
+ beq _020024F2
+ b _02002700
+_020024DA:
+ ldr r0, _0200266C ; =0x0000FFFE
+ cmp r5, r0
+ bgt _020024E4
+ beq _0200251A
+ b _02002700
+_020024E4:
+ add r0, r0, #0x1
+ cmp r5, r0
+ beq _020024EC
+ b _02002700
+_020024EC:
+ add sp, #0xc
+ mov r0, #0x1
+ pop {r3-r6, pc}
+_020024F2:
+ ldrb r0, [r4, #0xa]
+ mov r1, #0x1
+ strb r0, [r4, #0xc]
+ ldrb r0, [r4, #0x9]
+ bl FUN_02002E4C
+ ldrb r1, [r4, #0xf]
+ ldrb r2, [r4, #0xd]
+ add sp, #0xc
+ add r0, r1, r0
+ add r0, r2, r0
+ strb r0, [r4, #0xd]
+ mov r0, #0x2
+ pop {r3-r6, pc}
+_0200250E:
+ ldr r0, [r4, #0x0]
+ add sp, #0xc
+ add r0, r0, #0x2
+ str r0, [r4, #0x0]
+ mov r0, #0x2
+ pop {r3-r6, pc}
+_0200251A:
+ ldr r0, [r4, #0x0]
+ sub r0, r0, #0x2
+ str r0, [r4, #0x0]
+ bl FUN_0201B8E0
+ lsl r0, r0, #0x10
+ ldr r1, _02002670 ; =0x0000FE06
+ lsr r0, r0, #0x10
+ cmp r0, r1
+ bgt _02002552
+ blt _02002532
+ b _02002678
+_02002532:
+ mov r1, #0x2
+ lsl r1, r1, #0x8
+ sub r1, r0, r1
+ cmp r1, #0x4
+ bhi _0200255C
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #0x6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_02002548: ; jump table (using 16-bit offset)
+ .short _020025B4 - _02002548 - 2; case 0
+ .short _020025DE - _02002548 - 2; case 1
+ .short _02002600 - _02002548 - 2; case 2
+ .short _02002618 - _02002548 - 2; case 3
+ .short _02002624 - _02002548 - 2; case 4
+_02002552:
+ mov r1, #0xff
+ lsl r1, r1, #0x8
+ cmp r0, r1
+ bgt _0200255E
+ beq _02002566
+_0200255C:
+ b _020026CA
+_0200255E:
+ add r1, r1, #0x1
+ cmp r0, r1
+ beq _02002630
+ b _020026CA
+_02002566:
+ ldr r0, [r4, #0x0]
+ mov r1, #0x0
+ bl FUN_0201B914
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ cmp r0, #0xff
+ bne _02002596
+ ldrb r0, [r4, #0x11]
+ ldrb r2, [r4, #0x17]
+ sub r1, r0, #0x1
+ lsr r0, r1, #0x1f
+ add r0, r1, r0
+ asr r0, r0, #0x1
+ add r0, #0x64
+ strb r0, [r4, #0x17]
+ cmp r2, #0x64
+ blo _02002644
+ cmp r2, #0x6b
+ bhs _02002644
+ sub r2, #0x64
+ lsl r0, r2, #0x10
+ lsr r0, r0, #0x10
+ b _0200259E
+_02002596:
+ cmp r0, #0x64
+ blo _0200259E
+ strb r0, [r4, #0x17]
+ b _020026CA
+_0200259E:
+ lsl r1, r0, #0x1
+ add r0, r1, #0x1
+ strb r0, [r4, #0x11]
+ add r0, r1, #0x2
+ strb r0, [r4, #0x13]
+ ldrb r0, [r4, #0x11]
+ ldrb r1, [r4, #0x12]
+ ldrb r2, [r4, #0x13]
+ bl FUN_0201C05C
+ b _020026CA
+_020025B4:
+ ldr r0, [r4, #0x0]
+ mov r1, #0x0
+ bl FUN_0201B914
+ lsl r0, r0, #0x10
+ lsr r3, r0, #0x10
+ ldrb r1, [r4, #0xc]
+ ldrb r2, [r4, #0xd]
+ add r0, r4, #0x0
+ bl FUN_0201C1EC
+ add r0, r4, #0x0
+ add r0, #0x25
+ ldrb r0, [r0, #0x0]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x1f
+ beq _020026CA
+ ldr r0, [r4, #0x4]
+ bl FUN_020191D0
+ b _020026CA
+_020025DE:
+ ldr r0, [r4, #0x0]
+ mov r1, #0x0
+ bl FUN_0201B914
+ add r1, r4, #0x0
+ add r1, #0x26
+ strb r0, [r1, #0x0]
+ ldr r0, [r4, #0x0]
+ bl FUN_0201B8B8
+ str r0, [r4, #0x0]
+ mov r0, #0x6
+ add r4, #0x24
+ strb r0, [r4, #0x0]
+ add sp, #0xc
+ mov r0, #0x3
+ pop {r3-r6, pc}
+_02002600:
+ ldr r0, [r4, #0x0]
+ mov r1, #0x0
+ bl FUN_0201B914
+ strh r0, [r4, #0x2a]
+ ldr r0, [r4, #0x0]
+ bl FUN_0201B8B8
+ str r0, [r4, #0x0]
+ add sp, #0xc
+ mov r0, #0x3
+ pop {r3-r6, pc}
+_02002618:
+ ldr r0, [r4, #0x0]
+ mov r1, #0x0
+ bl FUN_0201B914
+ strb r0, [r4, #0xc]
+ b _020026CA
+_02002624:
+ ldr r0, [r4, #0x0]
+ mov r1, #0x0
+ bl FUN_0201B914
+ strb r0, [r4, #0xd]
+ b _020026CA
+_02002630:
+ ldr r0, [r4, #0x0]
+ mov r1, #0x0
+ bl FUN_0201B914
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ cmp r0, #0x64
+ beq _02002646
+ cmp r0, #0xc8
+ beq _0200264E
+_02002644:
+ b _020026CA
+_02002646:
+ mov r0, #0x0
+ strh r0, [r4, #0x14]
+ strb r0, [r4, #0x16]
+ b _020026CA
+_0200264E:
+ ldr r0, _02002674 ; =0x0000FFFC
+ strh r0, [r4, #0x14]
+ mov r0, #0x0
+ strb r0, [r4, #0x16]
+ b _020026CA
+ .balign 4
+_02002658: .word 0x021C48B8
+_0200265C: .word 0x021C48F8
+_02002660: .word 0x02106FC4
+_02002664: .word 0x0000F0FD
+_02002668: .word 0x000025BD
+_0200266C: .word 0x0000FFFE
+_02002670: .word 0x0000FE06
+_02002674: .word 0x0000FFFC
+_02002678:
+ ldr r0, [r4, #0x0]
+ mov r1, #0x0
+ bl FUN_0201B914
+ lsl r0, r0, #0x10
+ lsr r1, r0, #0x10
+ mov r0, #0xfe
+ lsl r0, r0, #0x8
+ cmp r1, r0
+ beq _020026AE
+ add r0, r0, #0x1
+ cmp r1, r0
+ bne _020026CA
+ add r0, r4, #0x0
+ mov r1, #0x2
+ add r0, #0x24
+ strb r1, [r0, #0x0]
+ add r0, r4, #0x0
+ bl FUN_0200284C
+ ldr r0, [r4, #0x0]
+ bl FUN_0201B8B8
+ str r0, [r4, #0x0]
+ add sp, #0xc
+ mov r0, #0x3
+ pop {r3-r6, pc}
+_020026AE:
+ add r0, r4, #0x0
+ mov r1, #0x3
+ add r0, #0x24
+ strb r1, [r0, #0x0]
+ add r0, r4, #0x0
+ bl FUN_0200284C
+ ldr r0, [r4, #0x0]
+ bl FUN_0201B8B8
+ str r0, [r4, #0x0]
+ add sp, #0xc
+ mov r0, #0x3
+ pop {r3-r6, pc}
+_020026CA:
+ ldr r0, [r4, #0x0]
+ bl FUN_0201B8B8
+ str r0, [r4, #0x0]
+ add sp, #0xc
+ mov r0, #0x2
+ pop {r3-r6, pc}
+_020026D8:
+ add r0, r4, #0x0
+ mov r1, #0x2
+ add r0, #0x24
+ strb r1, [r0, #0x0]
+ add r0, r4, #0x0
+ bl FUN_0200284C
+ add sp, #0xc
+ mov r0, #0x3
+ pop {r3-r6, pc}
+_020026EC:
+ add r0, r4, #0x0
+ mov r1, #0x3
+ add r0, #0x24
+ strb r1, [r0, #0x0]
+ add r0, r4, #0x0
+ bl FUN_0200284C
+ add sp, #0xc
+ mov r0, #0x3
+ pop {r3-r6, pc}
+_02002700:
+ ldrb r0, [r6, #0x0]
+ add r1, r5, #0x0
+ lsl r0, r0, #0x1c
+ lsr r0, r0, #0x1c
+ bl FUN_02002D94
+ add r5, r0, #0x0
+ ldrb r0, [r4, #0xc]
+ add r2, r5, #0x0
+ add r3, r5, #0x0
+ str r0, [sp, #0x0]
+ ldrb r0, [r4, #0xd]
+ add r2, #0x80
+ add r3, #0x81
+ str r0, [sp, #0x4]
+ ldrh r0, [r4, #0x14]
+ add r1, r5, #0x0
+ str r0, [sp, #0x8]
+ ldrb r2, [r2, #0x0]
+ ldrb r3, [r3, #0x0]
+ ldr r0, [r4, #0x4]
+ bl FUN_0201974C
+ add r5, #0x80
+ ldrb r1, [r5, #0x0]
+ ldrb r0, [r4, #0xe]
+ ldrb r2, [r4, #0xc]
+ add sp, #0xc
+ add r0, r1, r0
+ add r0, r2, r0
+ strb r0, [r4, #0xc]
+ mov r0, #0x0
+ pop {r3-r6, pc}
+_02002742:
+ bl FUN_02002B3C
+ cmp r0, #0x0
+ beq _02002756
+ add r0, r4, #0x0
+ bl FUN_02002A00
+ mov r0, #0x0
+ add r4, #0x24
+ strb r0, [r4, #0x0]
+_02002756:
+ add sp, #0xc
+ mov r0, #0x3
+ pop {r3-r6, pc}
+_0200275C:
+ bl FUN_02002B18
+ cmp r0, #0x0
+ beq _02002780
+ add r0, r4, #0x0
+ bl FUN_02002A00
+ ldrb r1, [r4, #0x12]
+ ldr r0, [r4, #0x4]
+ bl FUN_02019620
+ ldrb r0, [r4, #0xa]
+ strb r0, [r4, #0xc]
+ ldrb r0, [r4, #0xb]
+ strb r0, [r4, #0xd]
+ mov r0, #0x0
+ add r4, #0x24
+ strb r0, [r4, #0x0]
+_02002780:
+ add sp, #0xc
+ mov r0, #0x3
+ pop {r3-r6, pc}
+_02002786:
+ bl FUN_02002B18
+ cmp r0, #0x0
+ beq _020027B0
+ add r0, r4, #0x0
+ bl FUN_02002A00
+ ldrb r0, [r4, #0x9]
+ mov r1, #0x1
+ bl FUN_02002E4C
+ ldrb r1, [r4, #0xf]
+ add r1, r1, r0
+ add r0, r4, #0x0
+ add r0, #0x27
+ strb r1, [r0, #0x0]
+ ldrb r0, [r4, #0xa]
+ strb r0, [r4, #0xc]
+ mov r0, #0x4
+ add r4, #0x24
+ strb r0, [r4, #0x0]
+_020027B0:
+ add sp, #0xc
+ mov r0, #0x3
+ pop {r3-r6, pc}
+_020027B6:
+ add r0, #0x27
+ ldrb r2, [r0, #0x0]
+ cmp r2, #0x0
+ beq _02002800
+ cmp r2, #0x4
+ ldrb r5, [r4, #0x12]
+ bge _020027D8
+ lsl r3, r5, #0x4
+ orr r3, r5
+ lsl r3, r3, #0x18
+ ldr r0, [r4, #0x4]
+ mov r1, #0x0
+ lsr r3, r3, #0x18
+ bl FUN_0201A8C8
+ mov r1, #0x0
+ b _020027F2
+_020027D8:
+ lsl r3, r5, #0x4
+ orr r3, r5
+ lsl r3, r3, #0x18
+ ldr r0, [r4, #0x4]
+ mov r1, #0x0
+ mov r2, #0x4
+ lsr r3, r3, #0x18
+ bl FUN_0201A8C8
+ add r0, r4, #0x0
+ add r0, #0x27
+ ldrb r0, [r0, #0x0]
+ sub r1, r0, #0x4
+_020027F2:
+ add r0, r4, #0x0
+ add r0, #0x27
+ strb r1, [r0, #0x0]
+ ldr r0, [r4, #0x4]
+ bl FUN_020191D0
+ b _02002806
+_02002800:
+ mov r0, #0x0
+ add r4, #0x24
+ strb r0, [r4, #0x0]
+_02002806:
+ add sp, #0xc
+ mov r0, #0x3
+ pop {r3-r6, pc}
+_0200280C:
+ mov r0, #0x0
+ add r4, #0x24
+ strb r0, [r4, #0x0]
+ add sp, #0xc
+ mov r0, #0x3
+ pop {r3-r6, pc}
+_02002818:
+ add r0, #0x26
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x0
+ beq _0200282C
+ add r0, r4, #0x0
+ add r0, #0x26
+ ldrb r0, [r0, #0x0]
+ add r4, #0x26
+ sub r0, r0, #0x1
+ b _02002830
+_0200282C:
+ mov r0, #0x0
+ add r4, #0x24
+_02002830:
+ add sp, #0xc
+ strb r0, [r4, #0x0]
+ mov r0, #0x3
+ pop {r3-r6, pc}
+_02002838:
+ mov r0, #0x1
+ add sp, #0xc
+ pop {r3-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_02002840
+FUN_02002840: ; 0x02002840
+ ldr r1, _02002848 ; =0x02106FC4
+ strh r0, [r1, #0x2]
+ bx lr
+ nop
+_02002848: .word 0x02106FC4
+
+ thumb_func_start FUN_0200284C
+FUN_0200284C: ; 0x0200284C
+ ldr r1, _02002874 ; =0x02106FC4
+ add r0, #0x1c
+ ldrb r1, [r1, #0x0]
+ lsl r1, r1, #0x1d
+ lsr r1, r1, #0x1f
+ beq _02002862
+ ldrb r2, [r0, #0x2]
+ mov r1, #0xff
+ bic r2, r1
+ strb r2, [r0, #0x2]
+ bx lr
+_02002862:
+ ldrb r2, [r0, #0x1]
+ mov r1, #0x60
+ bic r2, r1
+ strb r2, [r0, #0x1]
+ ldrb r2, [r0, #0x1]
+ mov r1, #0x1f
+ bic r2, r1
+ strb r2, [r0, #0x1]
+ bx lr
+ .balign 4
+_02002874: .word 0x02106FC4
+
+ thumb_func_start FUN_02002878
+FUN_02002878: ; 0x02002878
+ push {r4-r7, lr}
+ sub sp, #0x2c
+ add r5, r0, #0x0
+ ldr r0, _020029F8 ; =0x02106FC4
+ add r4, r5, #0x0
+ ldrb r0, [r0, #0x0]
+ add r4, #0x1c
+ lsl r0, r0, #0x1d
+ lsr r0, r0, #0x1f
+ beq _0200288E
+ b _020029F4
+_0200288E:
+ ldrb r0, [r4, #0x1]
+ lsl r1, r0, #0x1b
+ lsr r2, r1, #0x1b
+ beq _020028AC
+ mov r1, #0x1f
+ add r2, #0xff
+ bic r0, r1
+ lsl r1, r2, #0x18
+ lsr r2, r1, #0x18
+ mov r1, #0x1f
+ and r1, r2
+ orr r0, r1
+ add sp, #0x2c
+ strb r0, [r4, #0x1]
+ pop {r4-r7, pc}
+_020028AC:
+ ldr r0, [r5, #0x4]
+ bl FUN_0201AB08
+ str r0, [sp, #0x20]
+ ldr r0, [r5, #0x4]
+ bl FUN_0201AB14
+ str r0, [sp, #0x24]
+ ldr r0, [r5, #0x4]
+ bl FUN_0201AB18
+ str r0, [sp, #0x28]
+ ldr r0, [r5, #0x4]
+ bl FUN_0201AB0C
+ ldr r1, _020029F8 ; =0x02106FC4
+ ldrh r6, [r1, #0x2]
+ ldr r1, [sp, #0x28]
+ add r7, r1, #0x2
+ ldr r1, [sp, #0x24]
+ add r2, r6, #0x0
+ add r0, r1, r0
+ str r0, [sp, #0x1c]
+ add r0, r0, #0x1
+ str r0, [sp, #0x18]
+ lsl r0, r7, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x0]
+ mov r0, #0x1
+ str r0, [sp, #0x4]
+ str r0, [sp, #0x8]
+ mov r0, #0x10
+ str r0, [sp, #0xc]
+ add r2, #0x12
+ mov r12, r2
+ ldrb r2, [r4, #0x1]
+ ldr r0, [r5, #0x4]
+ ldr r1, [sp, #0x20]
+ lsl r2, r2, #0x19
+ lsr r3, r2, #0x1e
+ ldr r2, _020029FC ; =0x020ECB50
+ ldr r0, [r0, #0x0]
+ ldrb r2, [r2, r3]
+ mov r3, r12
+ lsl r2, r2, #0x2
+ add r2, r3, r2
+ ldr r3, [sp, #0x18]
+ lsl r2, r2, #0x10
+ lsl r3, r3, #0x18
+ lsr r2, r2, #0x10
+ lsr r3, r3, #0x18
+ bl FUN_02018540
+ ldr r0, [sp, #0x1c]
+ ldr r1, [sp, #0x20]
+ add r0, r0, #0x2
+ str r0, [sp, #0x10]
+ lsl r0, r7, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x0]
+ mov r0, #0x1
+ str r0, [sp, #0x4]
+ str r0, [sp, #0x8]
+ mov r0, #0x10
+ str r0, [sp, #0xc]
+ ldrb r2, [r4, #0x1]
+ add r7, r6, #0x0
+ ldr r0, [r5, #0x4]
+ lsl r2, r2, #0x19
+ lsr r3, r2, #0x1e
+ ldr r2, _020029FC ; =0x020ECB50
+ add r7, #0x13
+ ldrb r2, [r2, r3]
+ ldr r3, [sp, #0x10]
+ ldr r0, [r0, #0x0]
+ lsl r2, r2, #0x2
+ add r2, r7, r2
+ lsl r2, r2, #0x10
+ lsl r3, r3, #0x18
+ lsr r2, r2, #0x10
+ lsr r3, r3, #0x18
+ bl FUN_02018540
+ ldr r0, [sp, #0x28]
+ add r7, r6, #0x0
+ add r0, r0, #0x3
+ str r0, [sp, #0x14]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x0]
+ mov r0, #0x1
+ str r0, [sp, #0x4]
+ str r0, [sp, #0x8]
+ mov r0, #0x10
+ str r0, [sp, #0xc]
+ ldrb r2, [r4, #0x1]
+ ldr r0, [r5, #0x4]
+ add r7, #0x14
+ lsl r2, r2, #0x19
+ lsr r3, r2, #0x1e
+ ldr r2, _020029FC ; =0x020ECB50
+ ldr r0, [r0, #0x0]
+ ldrb r2, [r2, r3]
+ ldr r3, [sp, #0x18]
+ ldr r1, [sp, #0x20]
+ lsl r2, r2, #0x2
+ add r2, r7, r2
+ lsl r2, r2, #0x10
+ lsl r3, r3, #0x18
+ lsr r2, r2, #0x10
+ lsr r3, r3, #0x18
+ bl FUN_02018540
+ ldr r0, [sp, #0x14]
+ add r6, #0x15
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x0]
+ mov r0, #0x1
+ str r0, [sp, #0x4]
+ str r0, [sp, #0x8]
+ mov r0, #0x10
+ str r0, [sp, #0xc]
+ ldrb r2, [r4, #0x1]
+ ldr r0, [r5, #0x4]
+ ldr r1, [sp, #0x20]
+ lsl r2, r2, #0x19
+ lsr r3, r2, #0x1e
+ ldr r2, _020029FC ; =0x020ECB50
+ ldr r0, [r0, #0x0]
+ ldrb r2, [r2, r3]
+ ldr r3, [sp, #0x10]
+ lsl r2, r2, #0x2
+ add r2, r6, r2
+ lsl r2, r2, #0x10
+ lsl r3, r3, #0x18
+ lsr r2, r2, #0x10
+ lsr r3, r3, #0x18
+ bl FUN_02018540
+ ldr r0, [r5, #0x4]
+ ldr r1, [sp, #0x20]
+ ldr r0, [r0, #0x0]
+ bl FUN_02017CD0
+ ldrb r1, [r4, #0x1]
+ mov r0, #0x1f
+ bic r1, r0
+ mov r0, #0x8
+ orr r0, r1
+ strb r0, [r4, #0x1]
+ ldrb r2, [r4, #0x1]
+ mov r1, #0x60
+ add r0, r2, #0x0
+ bic r0, r1
+ lsl r1, r2, #0x19
+ lsr r1, r1, #0x1e
+ add r1, r1, #0x1
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ lsl r1, r1, #0x1e
+ lsr r1, r1, #0x19
+ orr r0, r1
+ strb r0, [r4, #0x1]
+_020029F4:
+ add sp, #0x2c
+ pop {r4-r7, pc}
+ .balign 4
+_020029F8: .word 0x02106FC4
+_020029FC: .word 0x020ECB50
+
+ thumb_func_start FUN_02002A00
+FUN_02002A00: ; 0x02002A00
+ push {r3-r7, lr}
+ sub sp, #0x18
+ add r5, r0, #0x0
+ ldr r0, [r5, #0x4]
+ bl FUN_0201AB08
+ str r0, [sp, #0x10]
+ ldr r0, [r5, #0x4]
+ bl FUN_0201AB14
+ str r0, [sp, #0x14]
+ ldr r0, [r5, #0x4]
+ bl FUN_0201AB18
+ add r6, r0, #0x0
+ ldr r0, [r5, #0x4]
+ bl FUN_0201AB0C
+ ldr r1, _02002A90 ; =0x02106FC4
+ add r7, r6, #0x2
+ ldrh r4, [r1, #0x2]
+ ldr r1, [sp, #0x14]
+ add r6, r1, r0
+ lsl r0, r7, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x0]
+ mov r0, #0x1
+ str r0, [sp, #0x4]
+ mov r0, #0x2
+ str r0, [sp, #0x8]
+ mov r0, #0x10
+ str r0, [sp, #0xc]
+ ldr r0, [r5, #0x4]
+ add r2, r4, #0x0
+ add r2, #0xa
+ add r3, r6, #0x1
+ lsl r2, r2, #0x10
+ lsl r3, r3, #0x18
+ ldr r0, [r0, #0x0]
+ ldr r1, [sp, #0x10]
+ lsr r2, r2, #0x10
+ lsr r3, r3, #0x18
+ bl FUN_02018540
+ lsl r0, r7, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x0]
+ mov r0, #0x1
+ str r0, [sp, #0x4]
+ mov r0, #0x2
+ str r0, [sp, #0x8]
+ mov r0, #0x10
+ str r0, [sp, #0xc]
+ ldr r0, [r5, #0x4]
+ add r4, #0xb
+ add r3, r6, #0x2
+ lsl r2, r4, #0x10
+ lsl r3, r3, #0x18
+ ldr r0, [r0, #0x0]
+ ldr r1, [sp, #0x10]
+ lsr r2, r2, #0x10
+ lsr r3, r3, #0x18
+ bl FUN_02018540
+ ldr r0, [r5, #0x4]
+ ldr r1, [sp, #0x10]
+ ldr r0, [r0, #0x0]
+ bl FUN_02017CD0
+ add sp, #0x18
+ pop {r3-r7, pc}
+ nop
+_02002A90: .word 0x02106FC4
+
+ thumb_func_start FUN_02002A94
+FUN_02002A94: ; 0x02002A94
+ push {r3, lr}
+ ldr r0, _02002ACC ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #0x3
+ tst r0, r1
+ bne _02002AB2
+ ldr r0, _02002AD0 ; =0x021C48F8
+ ldrh r0, [r0, #0x20]
+ cmp r0, #0x0
+ beq _02002AC6
+ ldr r0, _02002AD4 ; =0x02106FC4
+ ldrb r0, [r0, #0x0]
+ lsl r0, r0, #0x1b
+ lsr r0, r0, #0x1f
+ beq _02002AC6
+_02002AB2:
+ ldr r0, _02002AD8 ; =0x000005DC
+ bl FUN_020054C8
+ ldr r1, _02002AD4 ; =0x02106FC4
+ mov r0, #0x80
+ ldrb r2, [r1, #0x0]
+ orr r0, r2
+ strb r0, [r1, #0x0]
+ mov r0, #0x1
+ pop {r3, pc}
+_02002AC6:
+ mov r0, #0x0
+ pop {r3, pc}
+ nop
+_02002ACC: .word 0x021C48B8
+_02002AD0: .word 0x021C48F8
+_02002AD4: .word 0x02106FC4
+_02002AD8: .word 0x000005DC
+
+ thumb_func_start FUN_02002ADC
+FUN_02002ADC: ; 0x02002ADC
+ push {r4, lr}
+ add r2, r0, #0x0
+ add r2, #0x1c
+ ldrb r1, [r2, #0x2]
+ add r4, r1, #0x0
+ cmp r4, #0x64
+ bne _02002AEE
+ mov r0, #0x1
+ pop {r4, pc}
+_02002AEE:
+ mov r3, #0xff
+ bic r1, r3
+ add r3, r4, #0x1
+ lsl r3, r3, #0x18
+ lsr r3, r3, #0x18
+ lsl r3, r3, #0x18
+ lsr r3, r3, #0x18
+ orr r1, r3
+ strb r1, [r2, #0x2]
+ ldr r1, _02002B14 ; =0x02106FC4
+ ldrb r1, [r1, #0x0]
+ lsl r1, r1, #0x1a
+ lsr r1, r1, #0x1f
+ beq _02002B10
+ bl FUN_02002A94
+ pop {r4, pc}
+_02002B10:
+ mov r0, #0x0
+ pop {r4, pc}
+ .balign 4
+_02002B14: .word 0x02106FC4
+
+ thumb_func_start FUN_02002B18
+FUN_02002B18: ; 0x02002B18
+ push {r4, lr}
+ ldr r1, _02002B38 ; =0x02106FC4
+ add r4, r0, #0x0
+ ldrb r1, [r1, #0x0]
+ lsl r1, r1, #0x1d
+ lsr r1, r1, #0x1f
+ beq _02002B2C
+ bl FUN_02002ADC
+ pop {r4, pc}
+_02002B2C:
+ bl FUN_02002878
+ add r0, r4, #0x0
+ bl FUN_02002A94
+ pop {r4, pc}
+ .balign 4
+_02002B38: .word 0x02106FC4
+
+ thumb_func_start FUN_02002B3C
+FUN_02002B3C: ; 0x02002B3C
+ push {r3, lr}
+ ldr r1, _02002B5C ; =0x02106FC4
+ ldrb r1, [r1, #0x0]
+ lsl r1, r1, #0x1d
+ lsr r1, r1, #0x1f
+ beq _02002B52
+ bl FUN_02002ADC
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ pop {r3, pc}
+_02002B52:
+ bl FUN_02002A94
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ pop {r3, pc}
+ .balign 4
+_02002B5C: .word 0x02106FC4
+
+ thumb_func_start FUN_02002B60
+FUN_02002B60: ; 0x02002B60
+ ldr r2, _02002B78 ; =0x02106FC4
+ mov r1, #0x1
+ ldrb r3, [r2, #0x0]
+ lsl r0, r0, #0x18
+ bic r3, r1
+ lsr r1, r0, #0x18
+ mov r0, #0x1
+ and r0, r1
+ orr r0, r3
+ strb r0, [r2, #0x0]
+ bx lr
+ nop
+_02002B78: .word 0x02106FC4
+
+ thumb_func_start FUN_02002B7C
+FUN_02002B7C: ; 0x02002B7C
+ push {r3-r4}
+ ldr r1, _02002BB4 ; =0x02106FC4
+ mov r3, #0x4
+ ldrb r2, [r1, #0x0]
+ mov r4, #0x1
+ bic r2, r3
+ add r3, r0, #0x0
+ and r3, r4
+ lsl r3, r3, #0x18
+ lsr r3, r3, #0x18
+ lsl r3, r3, #0x1f
+ lsr r3, r3, #0x1d
+ orr r2, r3
+ asr r0, r0, #0x1
+ and r0, r4
+ strb r2, [r1, #0x0]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ lsl r0, r0, #0x1f
+ ldrb r2, [r1, #0x0]
+ mov r3, #0x20
+ lsr r0, r0, #0x1a
+ bic r2, r3
+ orr r0, r2
+ strb r0, [r1, #0x0]
+ pop {r3-r4}
+ bx lr
+ nop
+_02002BB4: .word 0x02106FC4
+
+ thumb_func_start FUN_02002BB8
+FUN_02002BB8: ; 0x02002BB8
+ ldr r2, _02002BD0 ; =0x02106FC4
+ lsl r0, r0, #0x18
+ ldrb r3, [r2, #0x0]
+ lsr r0, r0, #0x18
+ mov r1, #0x10
+ lsl r0, r0, #0x1f
+ bic r3, r1
+ lsr r0, r0, #0x1b
+ orr r0, r3
+ strb r0, [r2, #0x0]
+ bx lr
+ nop
+_02002BD0: .word 0x02106FC4
+
+ thumb_func_start FUN_02002BD4
+FUN_02002BD4: ; 0x02002BD4
+ ldr r0, _02002BE0 ; =0x02106FC4
+ ldrb r0, [r0, #0x0]
+ lsl r0, r0, #0x19
+ lsr r0, r0, #0x1f
+ bx lr
+ nop
+_02002BE0: .word 0x02106FC4
+
+ thumb_func_start FUN_02002BE4
+FUN_02002BE4: ; 0x02002BE4
+ ldr r1, _02002BF0 ; =0x02106FC4
+ mov r0, #0x40
+ ldrb r2, [r1, #0x0]
+ bic r2, r0
+ strb r2, [r1, #0x0]
+ bx lr
+ .balign 4
+_02002BF0: .word 0x02106FC4
+
+ thumb_func_start FUN_02002BF4
+FUN_02002BF4: ; 0x02002BF4
+ ldr r0, _02002C00 ; =0x02106FC4
+ ldrb r0, [r0, #0x0]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x1f
+ bx lr
+ nop
+_02002C00: .word 0x02106FC4
+
+ thumb_func_start FUN_02002C04
+FUN_02002C04: ; 0x02002C04
+ ldr r1, _02002C10 ; =0x02106FC4
+ mov r0, #0x80
+ ldrb r2, [r1, #0x0]
+ bic r2, r0
+ strb r2, [r1, #0x0]
+ bx lr
+ .balign 4
+_02002C10: .word 0x02106FC4
+
+ thumb_func_start FUN_02002C14
+FUN_02002C14: ; 0x02002C14
+ push {r4, lr}
+ ldr r0, _02002C44 ; =0x02106FCC
+ ldr r4, _02002C48 ; =0x02106FC8
+ mov r1, #0x0
+ str r0, [r4, #0x0]
+ add r2, r1, #0x0
+ add r0, r1, #0x0
+_02002C22:
+ ldr r3, [r4, #0x0]
+ add r1, r1, #0x1
+ add r3, r3, r2
+ add r3, #0x84
+ str r0, [r3, #0x0]
+ ldr r3, [r4, #0x0]
+ add r3, r3, r2
+ add r3, #0x94
+ add r2, r2, #0x4
+ str r0, [r3, #0x0]
+ cmp r1, #0x4
+ blo _02002C22
+ ldr r0, _02002C4C ; =0x020ECB64
+ bl FUN_0201BCBC
+ pop {r4, pc}
+ nop
+_02002C44: .word 0x02106FCC
+_02002C48: .word 0x02106FC8
+_02002C4C: .word 0x020ECB64
+
+ thumb_func_start FUN_02002C50
+FUN_02002C50: ; 0x02002C50
+ push {r3-r4, lr}
+ sub sp, #0x4
+ str r1, [sp, #0x0]
+ lsl r4, r0, #0x2
+ ldr r1, _02002C78 ; =0x020ECB54
+ ldr r3, _02002C7C ; =0x020ECB56
+ ldrh r1, [r1, r4]
+ ldrh r3, [r3, r4]
+ mov r0, #0xe
+ mov r2, #0x1
+ bl FUN_02021590
+ ldr r1, _02002C80 ; =0x02106FC8
+ ldr r1, [r1, #0x0]
+ add r1, r1, r4
+ add r1, #0x94
+ str r0, [r1, #0x0]
+ add sp, #0x4
+ pop {r3-r4, pc}
+ nop
+_02002C78: .word 0x020ECB54
+_02002C7C: .word 0x020ECB56
+_02002C80: .word 0x02106FC8
+
+ thumb_func_start FUN_02002C84
+FUN_02002C84: ; 0x02002C84
+ push {r3-r5, lr}
+ add r4, r0, #0x0
+ add r5, r1, #0x0
+ cmp r4, #0x4
+ blt _02002C92
+ bl ErrorHandling
+_02002C92:
+ ldr r0, _02002CBC ; =0x02106FC8
+ lsl r4, r4, #0x2
+ ldr r0, [r0, #0x0]
+ add r0, r0, r4
+ add r0, #0x94
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ bne _02002CA6
+ bl ErrorHandling
+_02002CA6:
+ ldr r0, _02002CBC ; =0x02106FC8
+ mov r1, #0x0
+ ldr r0, [r0, #0x0]
+ add r2, r5, #0x0
+ add r0, r0, r4
+ add r0, #0x94
+ ldr r0, [r0, #0x0]
+ bl FUN_020215E0
+ pop {r3-r5, pc}
+ nop
+_02002CBC: .word 0x02106FC8
+
+ thumb_func_start FUN_02002CC0
+FUN_02002CC0: ; 0x02002CC0
+ push {r4, lr}
+ add r4, r0, #0x0
+ cmp r4, #0x4
+ blt _02002CCC
+ bl ErrorHandling
+_02002CCC:
+ ldr r0, _02002CF4 ; =0x02106FC8
+ lsl r4, r4, #0x2
+ ldr r0, [r0, #0x0]
+ add r0, r0, r4
+ add r0, #0x94
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ bne _02002CE0
+ bl ErrorHandling
+_02002CE0:
+ ldr r0, _02002CF4 ; =0x02106FC8
+ mov r1, #0x1
+ ldr r0, [r0, #0x0]
+ mov r2, #0x0
+ add r0, r0, r4
+ add r0, #0x94
+ ldr r0, [r0, #0x0]
+ bl FUN_020215E0
+ pop {r4, pc}
+ .balign 4
+_02002CF4: .word 0x02106FC8
+
+ thumb_func_start FUN_02002CF8
+FUN_02002CF8: ; 0x02002CF8
+ push {r3-r7, lr}
+ add r4, r0, #0x0
+ cmp r4, #0x4
+ blt _02002D04
+ bl ErrorHandling
+_02002D04:
+ ldr r0, _02002D8C ; =0x02106FC8
+ lsl r6, r4, #0x2
+ ldr r7, [r0, #0x0]
+ add r0, r7, r6
+ add r0, #0x84
+ ldr r0, [r0, #0x0]
+ mov r12, r0
+ cmp r0, #0x0
+ beq _02002D68
+ ldr r2, _02002D90 ; =0x020ECB54
+ mov r1, #0x0
+ ldrh r0, [r2, r6]
+ add r3, r7, #0x0
+_02002D1E:
+ cmp r1, r4
+ beq _02002D3E
+ ldrh r5, [r2, #0x0]
+ cmp r5, r0
+ bne _02002D3E
+ add r5, r3, #0x0
+ add r5, #0x94
+ ldr r5, [r5, #0x0]
+ cmp r5, #0x0
+ beq _02002D3E
+ lsl r0, r1, #0x2
+ add r2, r7, r0
+ add r2, #0x84
+ mov r0, r12
+ str r0, [r2, #0x0]
+ b _02002D48
+_02002D3E:
+ add r1, r1, #0x1
+ add r2, r2, #0x4
+ add r3, r3, #0x4
+ cmp r1, #0x4
+ blo _02002D1E
+_02002D48:
+ cmp r1, #0x4
+ bne _02002D68
+ ldr r0, _02002D8C ; =0x02106FC8
+ lsl r5, r4, #0x2
+ ldr r0, [r0, #0x0]
+ add r0, r0, r5
+ add r0, #0x84
+ ldr r0, [r0, #0x0]
+ bl FUN_02016A18
+ ldr r0, _02002D8C ; =0x02106FC8
+ mov r1, #0x0
+ ldr r0, [r0, #0x0]
+ add r0, r0, r5
+ add r0, #0x84
+ str r1, [r0, #0x0]
+_02002D68:
+ ldr r0, _02002D8C ; =0x02106FC8
+ ldr r0, [r0, #0x0]
+ add r0, r0, r6
+ add r0, #0x94
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ beq _02002D88
+ bl FUN_020215C8
+ ldr r0, _02002D8C ; =0x02106FC8
+ mov r2, #0x0
+ ldr r1, [r0, #0x0]
+ lsl r0, r4, #0x2
+ add r0, r1, r0
+ add r0, #0x94
+ str r2, [r0, #0x0]
+_02002D88:
+ pop {r3-r7, pc}
+ nop
+_02002D8C: .word 0x02106FC8
+_02002D90: .word 0x020ECB54
+
+ thumb_func_start FUN_02002D94
+FUN_02002D94: ; 0x02002D94
+ push {r3, lr}
+ ldr r2, _02002DAC ; =0x02106FC8
+ lsl r0, r0, #0x2
+ ldr r2, [r2, #0x0]
+ add r0, r2, r0
+ add r0, #0x94
+ ldr r0, [r0, #0x0]
+ bl FUN_02021750
+ ldr r0, _02002DAC ; =0x02106FC8
+ ldr r0, [r0, #0x0]
+ pop {r3, pc}
+ .balign 4
+_02002DAC: .word 0x02106FC8
+
+ thumb_func_start FUN_02002DB0
+FUN_02002DB0: ; 0x02002DB0
+ push {r4, lr}
+ add r3, r1, #0x0
+ add r3, #0x1c
+ ldrb r2, [r3, #0x1]
+ lsl r2, r2, #0x18
+ lsr r2, r2, #0x1f
+ bne _02002DD8
+ ldrb r2, [r3, #0x0]
+ mov r4, #0xf
+ lsl r0, r0, #0x18
+ bic r2, r4
+ lsr r4, r0, #0x18
+ mov r0, #0xf
+ and r0, r4
+ orr r0, r2
+ strb r0, [r3, #0x0]
+ ldrb r2, [r3, #0x1]
+ mov r0, #0x80
+ orr r0, r2
+ strb r0, [r3, #0x1]
+_02002DD8:
+ add r0, r1, #0x0
+ bl FUN_020023C0
+ pop {r4, pc}
+
+ thumb_func_start FUN_02002DE0
+FUN_02002DE0: ; 0x02002DE0
+ push {r4-r6, lr}
+ lsl r4, r0, #0x2
+ ldr r0, _02002E10 ; =0x02106FC8
+ add r5, r1, #0x0
+ ldr r0, [r0, #0x0]
+ add r6, r2, #0x0
+ add r0, r0, r4
+ add r0, #0x94
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ bne _02002DFA
+ bl ErrorHandling
+_02002DFA:
+ ldr r0, _02002E10 ; =0x02106FC8
+ add r1, r5, #0x0
+ ldr r0, [r0, #0x0]
+ add r2, r6, #0x0
+ add r0, r0, r4
+ add r0, #0x94
+ ldr r0, [r0, #0x0]
+ bl FUN_020218D8
+ pop {r4-r6, pc}
+ nop
+_02002E10: .word 0x02106FC8
+
+ thumb_func_start FUN_02002E14
+FUN_02002E14: ; 0x02002E14
+ push {r4-r6, lr}
+ lsl r4, r0, #0x2
+ ldr r0, _02002E48 ; =0x02106FC8
+ add r5, r1, #0x0
+ ldr r0, [r0, #0x0]
+ add r6, r2, #0x0
+ add r0, r0, r4
+ add r0, #0x94
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ bne _02002E2E
+ bl ErrorHandling
+_02002E2E:
+ add r0, r5, #0x0
+ bl FUN_02021F2C
+ add r1, r0, #0x0
+ ldr r0, _02002E48 ; =0x02106FC8
+ add r2, r6, #0x0
+ ldr r0, [r0, #0x0]
+ add r0, r0, r4
+ add r0, #0x94
+ ldr r0, [r0, #0x0]
+ bl FUN_020218D8
+ pop {r4-r6, pc}
+ .balign 4
+_02002E48: .word 0x02106FC8
+
+ thumb_func_start FUN_02002E4C
+FUN_02002E4C: ; 0x02002E4C
+ mov r2, #0x0
+ cmp r1, #0x7
+ bhi _02002EAC
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #0x6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_02002E5E: ; jump table (using 16-bit offset)
+ .short _02002E6E - _02002E5E - 2; case 0
+ .short _02002E76 - _02002E5E - 2; case 1
+ .short _02002E7E - _02002E5E - 2; case 2
+ .short _02002E86 - _02002E5E - 2; case 3
+ .short _02002E8E - _02002E5E - 2; case 4
+ .short _02002E96 - _02002E5E - 2; case 5
+ .short _02002E9E - _02002E5E - 2; case 6
+ .short _02002EA6 - _02002E5E - 2; case 7
+_02002E6E:
+ lsl r1, r0, #0x3
+ ldr r0, _02002EB0 ; =0x020ECB64
+ ldrb r2, [r0, r1]
+ b _02002EAC
+_02002E76:
+ lsl r1, r0, #0x3
+ ldr r0, _02002EB4 ; =0x020ECB65
+ ldrb r2, [r0, r1]
+ b _02002EAC
+_02002E7E:
+ lsl r1, r0, #0x3
+ ldr r0, _02002EB8 ; =0x020ECB66
+ ldrb r2, [r0, r1]
+ b _02002EAC
+_02002E86:
+ lsl r1, r0, #0x3
+ ldr r0, _02002EBC ; =0x020ECB67
+ ldrb r2, [r0, r1]
+ b _02002EAC
+_02002E8E:
+ lsl r1, r0, #0x3
+ ldr r0, _02002EC0 ; =0x020ECB68
+ ldrb r2, [r0, r1]
+ b _02002EAC
+_02002E96:
+ lsl r1, r0, #0x3
+ ldr r0, _02002EC4 ; =0x020ECB69
+ ldrb r2, [r0, r1]
+ b _02002EAC
+_02002E9E:
+ lsl r1, r0, #0x3
+ ldr r0, _02002EC8 ; =0x020ECB6A
+ ldrb r2, [r0, r1]
+ b _02002EAC
+_02002EA6:
+ lsl r1, r0, #0x3
+ ldr r0, _02002ECC ; =0x020ECB6B
+ ldrb r2, [r0, r1]
+_02002EAC:
+ add r0, r2, #0x0
+ bx lr
+ .balign 4
+_02002EB0: .word 0x020ECB64
+_02002EB4: .word 0x020ECB65
+_02002EB8: .word 0x020ECB66
+_02002EBC: .word 0x020ECB67
+_02002EC0: .word 0x020ECB68
+_02002EC4: .word 0x020ECB69
+_02002EC8: .word 0x020ECB6A
+_02002ECC: .word 0x020ECB6B
+
+ thumb_func_start FUN_02002ED0
+FUN_02002ED0: ; 0x02002ED0
+ push {r4, lr}
+ sub sp, #0x8
+ add r4, r0, #0x0
+ mov r0, #0x20
+ str r0, [sp, #0x0]
+ add r3, r1, #0x0
+ str r2, [sp, #0x4]
+ mov r0, #0xe
+ mov r1, #0x6
+ add r2, r4, #0x0
+ bl FUN_02006930
+ add sp, #0x8
+ pop {r4, pc}
+
+ thumb_func_start FUN_02002EEC
+FUN_02002EEC: ; 0x02002EEC
+ push {r4, lr}
+ sub sp, #0x8
+ add r4, r0, #0x0
+ mov r0, #0x20
+ str r0, [sp, #0x0]
+ add r3, r1, #0x0
+ str r2, [sp, #0x4]
+ mov r0, #0xe
+ mov r1, #0x7
+ add r2, r4, #0x0
+ bl FUN_02006930
+ add sp, #0x8
+ pop {r4, pc}
+
+ thumb_func_start FUN_02002F08
+FUN_02002F08: ; 0x02002F08
+ push {r4-r6, lr}
+ lsl r4, r0, #0x2
+ ldr r0, _02002F3C ; =0x02106FC8
+ add r5, r1, #0x0
+ ldr r0, [r0, #0x0]
+ add r6, r2, #0x0
+ add r0, r0, r4
+ add r0, #0x94
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ bne _02002F22
+ bl ErrorHandling
+_02002F22:
+ add r0, r5, #0x0
+ bl FUN_02021F2C
+ add r1, r0, #0x0
+ ldr r0, _02002F3C ; =0x02106FC8
+ add r2, r6, #0x0
+ ldr r0, [r0, #0x0]
+ add r0, r0, r4
+ add r0, #0x94
+ ldr r0, [r0, #0x0]
+ bl FUN_02021934
+ pop {r4-r6, pc}
+ .balign 4
+_02002F3C: .word 0x02106FC8
+
+ thumb_func_start FUN_02002F40
+FUN_02002F40: ; 0x02002F40
+ push {r4, lr}
+ add r4, r3, #0x0
+ bl FUN_02002E14
+ cmp r0, r4
+ bhs _02002F52
+ sub r0, r4, r0
+ lsr r0, r0, #0x1
+ pop {r4, pc}
+_02002F52:
+ mov r0, #0x0
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02002F58
+FUN_02002F58: ; 0x02002F58
+ push {r3-r7, lr}
+ ldrh r2, [r0, #0x0]
+ ldr r1, _02002F8C ; =0x0000FFFF
+ mov r5, #0x1
+ cmp r2, r1
+ beq _02002F88
+ mov r6, #0xe
+ lsl r6, r6, #0xc
+ add r7, r1, #0x0
+ sub r4, r1, #0x1
+_02002F6C:
+ cmp r2, r4
+ bne _02002F76
+ bl FUN_0201B8B8
+ b _02002F82
+_02002F76:
+ cmp r2, r6
+ bne _02002F80
+ add r5, r5, #0x1
+ add r0, r0, #0x2
+ b _02002F82
+_02002F80:
+ add r0, r0, #0x2
+_02002F82:
+ ldrh r2, [r0, #0x0]
+ cmp r2, r7
+ bne _02002F6C
+_02002F88:
+ add r0, r5, #0x0
+ pop {r3-r7, pc}
+ .balign 4
+_02002F8C: .word 0x0000FFFF
+
+ thumb_func_start FUN_02002F90
+FUN_02002F90: ; 0x02002F90
+ push {r3, lr}
+ bl FUN_02021F2C
+ bl FUN_02002F58
+ pop {r3, pc}
+
+ thumb_func_start FUN_02002F9C
+FUN_02002F9C: ; 0x02002F9C
+ push {r3-r5, lr}
+ lsl r4, r0, #0x2
+ ldr r0, _02002FCC ; =0x02106FC8
+ add r5, r1, #0x0
+ ldr r0, [r0, #0x0]
+ add r0, r0, r4
+ add r0, #0x94
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ bne _02002FB4
+ bl ErrorHandling
+_02002FB4:
+ add r0, r5, #0x0
+ bl FUN_02021F2C
+ add r1, r0, #0x0
+ ldr r0, _02002FCC ; =0x02106FC8
+ ldr r0, [r0, #0x0]
+ add r0, r0, r4
+ add r0, #0x94
+ ldr r0, [r0, #0x0]
+ bl FUN_0202199C
+ pop {r3-r5, pc}
+ .balign 4
+_02002FCC: .word 0x02106FC8
+
+ thumb_func_start FUN_02002FD0
+FUN_02002FD0: ; 0x02002FD0
+ push {r4, lr}
+ mov r1, #0x12
+ lsl r1, r1, #0x4
+ bl FUN_02016998
+ mov r2, #0x12
+ mov r1, #0x0
+ lsl r2, r2, #0x4
+ add r4, r0, #0x0
+ blx MI_CpuFill8
+ add r0, r4, #0x0
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02002FEC
+FUN_02002FEC: ; 0x02002FEC
+ ldr r3, _02002FF0 ; =FUN_02016A18
+ bx r3
+ .balign 4
+_02002FF0: .word FUN_02016A18
+
+ thumb_func_start FUN_02002FF4
+FUN_02002FF4: ; 0x02002FF4
+ push {r3-r4}
+ mov r4, #0x14
+ mul r4, r1
+ str r2, [r0, r4]
+ add r1, r0, r4
+ ldr r0, [sp, #0x8]
+ str r3, [r1, #0x4]
+ str r0, [r1, #0x8]
+ pop {r3-r4}
+ bx lr
+
+ thumb_func_start FUN_02003008
+FUN_02003008: ; 0x02003008
+ push {r3-r7, lr}
+ sub sp, #0x8
+ add r4, r2, #0x0
+ add r5, r0, #0x0
+ add r6, r1, #0x0
+ str r3, [sp, #0x4]
+ add r0, r3, #0x0
+ add r1, r4, #0x0
+ bl FUN_02016998
+ add r7, r0, #0x0
+ ldr r0, [sp, #0x4]
+ add r1, r4, #0x0
+ bl FUN_02016998
+ add r3, r0, #0x0
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ add r2, r7, #0x0
+ str r4, [sp, #0x0]
+ bl FUN_02002FF4
+ add sp, #0x8
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_02003038
+FUN_02003038: ; 0x02003038
+ push {r3-r5, lr}
+ add r4, r0, #0x0
+ mov r0, #0x14
+ add r5, r1, #0x0
+ mul r5, r0
+ ldr r0, [r4, r5]
+ bl FUN_02016A18
+ add r0, r4, r5
+ ldr r0, [r0, #0x4]
+ bl FUN_02016A18
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_02003054
+FUN_02003054: ; 0x02003054
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ add r0, sp, #0x8
+ ldrh r7, [r0, #0x10]
+ add r6, r2, #0x0
+ mov r0, #0x14
+ mul r6, r0
+ str r1, [sp, #0x0]
+ add r0, r1, #0x0
+ ldr r1, [r5, r6]
+ lsl r4, r3, #0x1
+ add r1, r1, r4
+ add r2, r7, #0x0
+ blx 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
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_02003084
+FUN_02003084: ; 0x02003084
+ push {r4-r6, lr}
+ sub sp, #0x8
+ add r5, r0, #0x0
+ add r0, r1, #0x0
+ add r1, r2, #0x0
+ add r2, sp, #0x4
+ ldr r4, [sp, #0x1c]
+ bl FUN_02006C08
+ add r6, r0, #0x0
+ bne _0200309E
+ bl ErrorHandling
+_0200309E:
+ cmp r4, #0x0
+ bne _020030A6
+ ldr r0, [sp, #0x4]
+ ldr r4, [r0, #0x8]
+_020030A6:
+ add r0, sp, #0x8
+ ldrh r0, [r0, #0x18]
+ ldr r2, [sp, #0x18]
+ mov r1, #0x14
+ mul r1, r2
+ add r1, r5, r1
+ lsl r0, r0, #0x1
+ ldr r1, [r1, #0x8]
+ add r0, r4, r0
+ cmp r0, r1
+ bls _020030C0
+ bl ErrorHandling
+_020030C0:
+ lsl r0, r4, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #0x0]
+ ldr r1, [sp, #0x4]
+ add r3, sp, #0x8
+ ldr r2, [r1, #0xc]
+ ldrh r1, [r3, #0x1c]
+ ldrh r3, [r3, #0x18]
+ add r0, r5, #0x0
+ lsl r1, r1, #0x1
+ add r1, r2, r1
+ ldr r2, [sp, #0x18]
+ bl FUN_02003054
+ add r0, r6, #0x0
+ bl FUN_02016A18
+ add sp, #0x8
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_020030E8
+FUN_020030E8: ; 0x020030E8
+ push {r4, lr}
+ sub sp, #0x10
+ ldr r4, [sp, #0x18]
+ str r4, [sp, #0x0]
+ ldr r4, [sp, #0x1c]
+ str r4, [sp, #0x4]
+ add r4, sp, #0x8
+ ldrh r4, [r4, #0x18]
+ str r4, [sp, #0x8]
+ mov r4, #0x0
+ str r4, [sp, #0xc]
+ bl FUN_02003084
+ add sp, #0x10
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02003108
+FUN_02003108: ; 0x02003108
+ push {r3-r7, lr}
+ add r4, r1, #0x0
+ mov r1, #0x14
+ add r6, r0, #0x0
+ mul r1, r4
+ add r5, r2, #0x0
+ add r1, r6, r1
+ add r7, r3, #0x0
+ lsl r0, r5, #0x1
+ ldr r1, [r1, #0x8]
+ add r0, r7, r0
+ cmp r0, r1
+ bls _02003126
+ bl ErrorHandling
+_02003126:
+ cmp r4, #0x3
+ bhi _0200315E
+ add r0, r4, r4
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02003136: ; jump table (using 16-bit offset)
+ .short _0200313E - _02003136 - 2; case 0
+ .short _02003146 - _02003136 - 2; case 1
+ .short _0200314E - _02003136 - 2; case 2
+ .short _02003156 - _02003136 - 2; case 3
+_0200313E:
+ bl FUN_020222E8
+ add r1, r0, #0x0
+ b _02003164
+_02003146:
+ bl FUN_020222F8
+ add r1, r0, #0x0
+ b _02003164
+_0200314E:
+ bl FUN_02022308
+ add r1, r0, #0x0
+ b _02003164
+_02003156:
+ bl FUN_02022310
+ add r1, r0, #0x0
+ b _02003164
+_0200315E:
+ bl ErrorHandling
+ pop {r3-r7, pc}
+_02003164:
+ lsl r0, r7, #0x10
+ lsr r0, r0, #0x10
+ lsl r2, r5, #0x1
+ str r0, [sp, #0x0]
+ add r1, r1, r2
+ add r0, r6, #0x0
+ add r2, r4, #0x0
+ add r3, r5, #0x0
+ bl FUN_02003054
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_0200317C
+FUN_0200317C: ; 0x0200317C
+ push {r3-r5, lr}
+ add r4, r2, #0x0
+ add r5, r3, #0x0
+ add r2, sp, #0x0
+ add r3, r4, #0x0
+ bl FUN_02006C08
+ add r4, r0, #0x0
+ bne _02003192
+ bl ErrorHandling
+_02003192:
+ cmp r5, #0x0
+ bne _0200319A
+ ldr r0, [sp, #0x0]
+ ldr r5, [r0, #0x8]
+_0200319A:
+ ldr r0, [sp, #0x0]
+ add r2, r5, #0x0
+ ldr r1, [r0, #0xc]
+ add r0, sp, #0x0
+ ldrh r0, [r0, #0x10]
+ lsl r0, r0, #0x1
+ add r0, r1, r0
+ ldr r1, [sp, #0x14]
+ blx MIi_CpuCopy16
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_020031B8
+FUN_020031B8: ; 0x020031B8
+ push {r3-r7, lr}
+ sub sp, #0x8
+ add r4, sp, #0x10
+ add r5, r0, #0x0
+ add r0, r1, #0x0
+ ldrh r1, [r4, #0x14]
+ add r6, r3, #0x0
+ str r1, [sp, #0x0]
+ ldrh r1, [r4, #0x10]
+ lsl r4, r2, #0x1
+ ldr r2, [sp, #0x0]
+ lsl r7, r1, #0x1
+ mov r1, #0x14
+ mul r6, r1
+ mul r1, r0
+ ldr r0, [r5, r1]
+ str r1, [sp, #0x4]
+ ldr r1, [r5, r6]
+ add r0, r0, r4
+ add r1, r1, r7
+ blx MIi_CpuCopy16
+ ldr r0, [sp, #0x4]
+ add r1, r5, r6
+ ldr r0, [r5, r0]
+ ldr r1, [r1, #0x4]
+ ldr r2, [sp, #0x0]
+ add r0, r0, r4
+ add r1, r1, r7
+ blx MIi_CpuCopy16
+ add sp, #0x8
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_020031FC
+FUN_020031FC: ; 0x020031FC
+ mov r2, #0x14
+ mul r2, r1
+ ldr r0, [r0, r2]
+ bx lr
+
+ thumb_func_start FUN_02003204
+FUN_02003204: ; 0x02003204
+ mov r2, #0x14
+ mul r2, r1
+ add r0, r0, r2
+ ldr r0, [r0, #0x4]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02003210
+FUN_02003210: ; 0x02003210
+ push {r0-r3}
+ push {r3-r7, lr}
+ sub sp, #0x10
+ str r3, [sp, #0x8]
+ add r5, r0, #0x0
+ ldr r0, [sp, #0x38]
+ mov r6, #0x0
+ str r0, [sp, #0x38]
+ ldr r0, [sp, #0x3c]
+ add r7, r1, #0x0
+ str r0, [sp, #0x3c]
+ ldr r0, [sp, #0x40]
+ add r4, r6, #0x0
+ str r0, [sp, #0x40]
+ add r0, sp, #0x28
+ ldrh r0, [r0, #0x8]
+ str r0, [sp, #0xc]
+_02003232:
+ add r0, r7, #0x0
+ add r1, r4, #0x0
+ bl FUN_02003314
+ cmp r0, #0x1
+ bne _020032A6
+ mov r0, #0x46
+ lsl r0, r0, #0x2
+ ldrh r0, [r5, r0]
+ add r1, r4, #0x0
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x12
+ bl FUN_02003314
+ cmp r0, #0x0
+ bne _020032A6
+ mov r0, #0x14
+ add r6, r4, #0x0
+ mul r6, r0
+ add r0, r4, #0x0
+ add r1, r5, r6
+ add r2, sp, #0x30
+ bl FUN_02003368
+ ldr r0, [sp, #0x3c]
+ add r1, sp, #0x28
+ str r0, [sp, #0x0]
+ ldr r0, [sp, #0x40]
+ str r0, [sp, #0x4]
+ add r0, r5, r6
+ ldrh r1, [r1, #0x8]
+ ldr r2, [sp, #0x8]
+ ldr r3, [sp, #0x38]
+ add r0, #0xc
+ bl FUN_020033A4
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_02003328
+ cmp r4, #0x4
+ blo _02003294
+ mov r2, #0x1
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ lsl r2, r2, #0x8
+ bl FUN_0200359C
+ b _0200329E
+_02003294:
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ mov r2, #0x10
+ bl FUN_0200359C
+_0200329E:
+ ldr r1, [sp, #0xc]
+ add r0, sp, #0x28
+ strh r1, [r0, #0x8]
+ mov r6, #0x1
+_020032A6:
+ add r0, r4, #0x1
+ lsl r0, r0, #0x18
+ lsr r4, r0, #0x18
+ cmp r4, #0xe
+ blo _02003232
+ cmp r6, #0x1
+ bne _02003300
+ mov r0, #0x46
+ lsl r0, r0, #0x2
+ ldrh r2, [r5, r0]
+ ldr r1, _0200330C ; =0xFFFF0003
+ and r1, r2
+ lsl r2, r2, #0x10
+ lsr r2, r2, #0x12
+ orr r2, r7
+ lsl r2, r2, #0x12
+ lsr r2, r2, #0x10
+ orr r1, r2
+ strh r1, [r5, r0]
+ add r1, r0, #0x2
+ ldrh r1, [r5, r1]
+ lsl r1, r1, #0x11
+ lsr r1, r1, #0x1f
+ bne _02003300
+ add r1, r0, #0x2
+ ldrh r2, [r5, r1]
+ mov r1, #0x1
+ lsl r1, r1, #0xe
+ orr r2, r1
+ add r1, r0, #0x2
+ strh r2, [r5, r1]
+ ldrh r2, [r5, r0]
+ mov r1, #0x3
+ bic r2, r1
+ mov r1, #0x1
+ orr r1, r2
+ strh r1, [r5, r0]
+ mov r2, #0x0
+ add r0, r0, #0x4
+ strb r2, [r5, r0]
+ ldr r0, _02003310 ; =FUN_02003464
+ add r1, r5, #0x0
+ sub r2, r2, #0x2
+ bl FUN_0200CA44
+_02003300:
+ add r0, r6, #0x0
+ add sp, #0x10
+ pop {r3-r7}
+ pop {r3}
+ add sp, #0x10
+ bx r3
+ .balign 4
+_0200330C: .word 0xFFFF0003
+_02003310: .word FUN_02003464
+
+ thumb_func_start FUN_02003314
+FUN_02003314: ; 0x02003314
+ mov r3, #0x1
+ add r2, r3, #0x0
+ lsl r2, r1
+ tst r0, r2
+ bne _02003320
+ mov r3, #0x0
+_02003320:
+ lsl r0, r3, #0x18
+ lsr r0, r0, #0x18
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02003328
+FUN_02003328: ; 0x02003328
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ ldr r0, _02003360 ; =0x0000011A
+ add r4, r1, #0x0
+ ldrh r0, [r5, r0]
+ lsl r0, r0, #0x12
+ lsr r0, r0, #0x12
+ bl FUN_02003314
+ cmp r0, #0x1
+ beq _0200335E
+ ldr r3, _02003360 ; =0x0000011A
+ ldr r1, _02003364 ; =0xFFFFC000
+ ldrh r2, [r5, r3]
+ add r0, r2, #0x0
+ lsl r2, r2, #0x12
+ lsr r6, r2, #0x12
+ mov r2, #0x1
+ lsl r2, r4
+ orr r2, r6
+ lsl r2, r2, #0x10
+ and r0, r1
+ lsr r2, r2, #0x10
+ lsr r1, r1, #0x12
+ and r1, r2
+ orr r0, r1
+ strh r0, [r5, r3]
+_0200335E:
+ pop {r4-r6, pc}
+ .balign 4
+_02003360: .word 0x0000011A
+_02003364: .word 0xFFFFC000
+
+ thumb_func_start FUN_02003368
+FUN_02003368: ; 0x02003368
+ push {r4-r5}
+ cmp r0, #0x4
+ ldr r0, [r1, #0x8]
+ bge _02003374
+ lsl r0, r0, #0x13
+ b _02003378
+_02003374:
+ lsr r0, r0, #0x9
+ lsl r0, r0, #0x18
+_02003378:
+ mov r4, #0x0
+ lsr r0, r0, #0x18
+ add r5, r4, #0x0
+ cmp r0, #0x0
+ bls _02003398
+ mov r3, #0x1
+_02003384:
+ add r1, r3, #0x0
+ lsl r1, r5
+ add r1, r4, r1
+ lsl r1, r1, #0x10
+ lsr r4, r1, #0x10
+ add r1, r5, #0x1
+ lsl r1, r1, #0x18
+ lsr r5, r1, #0x18
+ cmp r5, r0
+ blo _02003384
+_02003398:
+ ldrh r0, [r2, #0x0]
+ and r0, r4
+ strh r0, [r2, #0x0]
+ pop {r4-r5}
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_020033A4
+FUN_020033A4: ; 0x020033A4
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ add r6, r1, #0x0
+ add r4, r3, #0x0
+ cmp r2, #0x0
+ bge _020033D4
+ add r0, r2, #0x0
+ blx abs
+ add r0, r0, #0x2
+ ldrh r1, [r5, #0x6]
+ 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, [r5, #0x6]
+ ldrh r1, [r5, #0x2]
+ mov r0, #0x3f
+ bic r1, r0
+ strh r1, [r5, #0x2]
+ b _020033F2
+_020033D4:
+ ldrh r1, [r5, #0x6]
+ mov r0, #0xf
+ bic r1, r0
+ mov r0, #0x2
+ orr r0, r1
+ strh r0, [r5, #0x6]
+ ldrh r0, [r5, #0x2]
+ mov r1, #0x3f
+ bic r0, r1
+ lsl r1, r2, #0x10
+ lsr r2, r1, #0x10
+ mov r1, #0x3f
+ and r1, r2
+ orr r0, r1
+ strh r0, [r5, #0x2]
+_020033F2:
+ strh r6, [r5, #0x0]
+ ldrh r1, [r5, #0x2]
+ ldr r0, _02003454 ; =0xFFFFF83F
+ add r3, sp, #0x0
+ and r1, r0
+ lsl r0, r4, #0x1b
+ lsr r0, r0, #0x15
+ orr r0, r1
+ strh r0, [r5, #0x2]
+ ldrh r1, [r5, #0x2]
+ ldr r0, _02003458 ; =0xFFFF07FF
+ add r2, r1, #0x0
+ ldrb r1, [r3, #0x10]
+ and r2, r0
+ lsl r0, r1, #0x1b
+ lsr r0, r0, #0x10
+ orr r0, r2
+ strh r0, [r5, #0x2]
+ ldrh r0, [r5, #0x4]
+ ldr r2, _0200345C ; =0xFFFF8000
+ ldrh r6, [r3, #0x14]
+ lsr r3, r2, #0x11
+ and r0, r2
+ and r3, r6
+ orr r0, r3
+ strh r0, [r5, #0x4]
+ ldrh r3, [r5, #0x6]
+ ldr r0, _02003460 ; =0xFFFFFC0F
+ and r0, r3
+ ldrh r3, [r5, #0x2]
+ lsl r3, r3, #0x1a
+ lsr r3, r3, #0x1a
+ lsl r3, r3, #0x1a
+ lsr r3, r3, #0x16
+ orr r0, r3
+ strh r0, [r5, #0x6]
+ cmp r4, r1
+ ldrh r1, [r5, #0x4]
+ bhs _02003448
+ sub r0, r2, #0x1
+ and r0, r1
+ strh r0, [r5, #0x4]
+ pop {r4-r6, pc}
+_02003448:
+ mov r0, #0x2
+ lsl r0, r0, #0xe
+ orr r0, r1
+ strh r0, [r5, #0x4]
+ pop {r4-r6, pc}
+ nop
+_02003454: .word 0xFFFFF83F
+_02003458: .word 0xFFFF07FF
+_0200345C: .word 0xFFFF8000
+_02003460: .word 0xFFFFFC0F
+
+ thumb_func_start FUN_02003464
+FUN_02003464: ; 0x02003464
+ push {r4-r6, lr}
+ add r4, r1, #0x0
+ mov r1, #0x47
+ lsl r1, r1, #0x2
+ ldrb r2, [r4, r1]
+ add r5, r0, #0x0
+ cmp r2, #0x1
+ bne _020034A4
+ mov r2, #0x0
+ strb r2, [r4, r1]
+ sub r2, r1, #0x2
+ ldrh r3, [r4, r2]
+ ldr r2, _020034F4 ; =0xFFFFC000
+ add r5, r3, #0x0
+ and r5, r2
+ sub r3, r1, #0x2
+ strh r5, [r4, r3]
+ sub r3, r1, #0x4
+ ldrh r5, [r4, r3]
+ ldr r3, _020034F8 ; =0xFFFF0003
+ sub r2, r2, #0x1
+ and r5, r3
+ sub r3, r1, #0x4
+ strh r5, [r4, r3]
+ sub r3, r1, #0x2
+ ldrh r3, [r4, r3]
+ sub r1, r1, #0x2
+ and r2, r3
+ strh r2, [r4, r1]
+ bl FUN_0200CAB4
+ pop {r4-r6, pc}
+_020034A4:
+ sub r0, r1, #0x4
+ ldrh r2, [r4, r0]
+ lsl r0, r2, #0x1e
+ lsr r0, r0, #0x1e
+ cmp r0, #0x1
+ bne _020034F0
+ sub r0, r1, #0x2
+ ldrh r0, [r4, r0]
+ ldr r3, _020034F4 ; =0xFFFFC000
+ lsl r2, r2, #0x10
+ lsr r6, r2, #0x12
+ lsr r2, r3, #0x12
+ and r0, r3
+ and r2, r6
+ orr r2, r0
+ sub r0, r1, #0x2
+ strh r2, [r4, r0]
+ add r0, r4, #0x0
+ bl FUN_02003500
+ add r0, r4, #0x0
+ bl FUN_02003520
+ mov r1, #0x46
+ lsl r1, r1, #0x2
+ ldrh r0, [r4, r1]
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x12
+ bne _020034F0
+ add r0, r1, #0x2
+ ldrh r2, [r4, r0]
+ ldr r0, _020034FC ; =0xFFFFBFFF
+ and r2, r0
+ add r0, r1, #0x2
+ strh r2, [r4, r0]
+ add r0, r5, #0x0
+ bl FUN_0200CAB4
+_020034F0:
+ pop {r4-r6, pc}
+ nop
+_020034F4: .word 0xFFFFC000
+_020034F8: .word 0xFFFF0003
+_020034FC: .word 0xFFFFBFFF
+
+ thumb_func_start FUN_02003500
+FUN_02003500: ; 0x02003500
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ mov r4, #0x0
+ mov r6, #0x10
+_02003508:
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ add r2, r6, #0x0
+ bl FUN_02003540
+ add r0, r4, #0x1
+ lsl r0, r0, #0x18
+ lsr r4, r0, #0x18
+ cmp r4, #0x4
+ blo _02003508
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_02003520
+FUN_02003520: ; 0x02003520
+ push {r4-r6, lr}
+ mov r4, #0x4
+ add r6, r4, #0x0
+ add r5, r0, #0x0
+ add r6, #0xfc
+_0200352A:
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ add r2, r6, #0x0
+ bl FUN_02003540
+ add r0, r4, #0x1
+ lsl r0, r0, #0x18
+ lsr r4, r0, #0x18
+ cmp r4, #0xe
+ blo _0200352A
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_02003540
+FUN_02003540: ; 0x02003540
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ mov r0, #0x46
+ lsl r0, r0, #0x2
+ ldrh r0, [r5, r0]
+ add r4, r1, #0x0
+ add r6, r2, #0x0
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x12
+ bl FUN_02003314
+ cmp r0, #0x0
+ beq _02003594
+ mov r0, #0x14
+ mul r0, r4
+ add r2, r5, r0
+ ldrh r0, [r2, #0x12]
+ ldrh r3, [r2, #0xe]
+ lsl r1, r0, #0x16
+ lsl r3, r3, #0x1a
+ lsr r1, r1, #0x1a
+ lsr r3, r3, #0x1a
+ cmp r1, r3
+ bhs _02003584
+ ldr r3, _02003598 ; =0xFFFFFC0F
+ and r3, r0
+ add r0, r1, #0x1
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ lsl r0, r0, #0x1a
+ lsr r0, r0, #0x16
+ orr r0, r3
+ strh r0, [r2, #0x12]
+ pop {r4-r6, pc}
+_02003584:
+ ldr r1, _02003598 ; =0xFFFFFC0F
+ and r0, r1
+ strh r0, [r2, #0x12]
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ add r2, r6, #0x0
+ bl FUN_0200359C
+_02003594:
+ pop {r4-r6, pc}
+ nop
+_02003598: .word 0xFFFFFC0F
+
+ thumb_func_start FUN_0200359C
+FUN_0200359C: ; 0x0200359C
+ push {r4-r7, lr}
+ sub sp, #0xc
+ str r1, [sp, #0x4]
+ str r0, [sp, #0x0]
+ ldr r0, [sp, #0x4]
+ mov r1, #0x14
+ mul r1, r0
+ ldr r0, [sp, #0x0]
+ mov r6, #0x0
+ add r5, r0, r1
+ add r0, r5, #0x0
+ str r0, [sp, #0x8]
+ add r0, #0xc
+ add r7, r2, #0x0
+ add r4, r6, #0x0
+ str r0, [sp, #0x8]
+_020035BC:
+ ldrh r0, [r5, #0xc]
+ lsl r1, r6, #0x10
+ lsr r1, r1, #0x10
+ bl FUN_02003314
+ cmp r0, #0x0
+ beq _020035DC
+ ldr r0, [r5, #0x0]
+ lsl r1, r4, #0x1
+ ldr r2, [r5, #0x4]
+ add r0, r0, r1
+ add r1, r2, r1
+ ldr r2, [sp, #0x8]
+ add r3, r7, #0x0
+ bl FUN_020035F8
+_020035DC:
+ add r6, r6, #0x1
+ add r4, r4, r7
+ cmp r6, #0x10
+ blo _020035BC
+ ldr r1, [sp, #0x4]
+ add r5, #0xc
+ lsl r1, r1, #0x18
+ ldr r0, [sp, #0x0]
+ lsr r1, r1, #0x18
+ add r2, r5, #0x0
+ bl FUN_02003684
+ add sp, #0xc
+ pop {r4-r7, pc}
+
+ thumb_func_start FUN_020035F8
+FUN_020035F8: ; 0x020035F8
+ push {r3-r7, lr}
+ sub sp, #0x8
+ str r0, [sp, #0x4]
+ mov r0, #0x0
+ add r6, r1, #0x0
+ mov r12, r0
+ str r2, [sp, #0x0]
+ mov lr, r3
+ add r0, r3, #0x0
+ beq _02003680
+_0200360C:
+ ldr r0, [sp, #0x4]
+ mov r1, #0x1f
+ ldrh r0, [r0, #0x0]
+ asr r2, r0, #0x5
+ add r5, r2, #0x0
+ and r5, r1
+ ldr r1, [sp, #0x0]
+ asr r4, r0, #0xa
+ ldrh r1, [r1, #0x4]
+ lsl r1, r1, #0x11
+ lsr r3, r1, #0x11
+ ldr r1, [sp, #0x0]
+ ldrh r1, [r1, #0x2]
+ lsl r1, r1, #0x15
+ lsr r2, r1, #0x1b
+ mov r1, #0x1f
+ and r1, r4
+ mov r4, #0x1f
+ and r0, r4
+ and r4, r3
+ sub r4, r4, r0
+ mul r4, r2
+ asr r4, r4, #0x4
+ add r0, r0, r4
+ lsl r0, r0, #0x18
+ lsr r7, r0, #0x18
+ asr r4, r3, #0xa
+ mov r0, #0x1f
+ and r0, r4
+ sub r0, r0, r1
+ mul r0, r2
+ asr r0, r0, #0x4
+ add r0, r1, r0
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ asr r3, r3, #0x5
+ mov r1, #0x1f
+ and r1, r3
+ sub r1, r1, r5
+ mul r1, r2
+ asr r1, r1, #0x4
+ add r1, r5, r1
+ lsl r1, r1, #0x18
+ lsl r0, r0, #0xa
+ lsr r1, r1, #0x13
+ orr r0, r1
+ orr r0, r7
+ strh r0, [r6, #0x0]
+ ldr r0, [sp, #0x4]
+ add r6, r6, #0x2
+ add r0, r0, #0x2
+ str r0, [sp, #0x4]
+ mov r0, r12
+ add r1, r0, #0x1
+ mov r0, lr
+ mov r12, r1
+ cmp r1, r0
+ blo _0200360C
+_02003680:
+ add sp, #0x8
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_02003684
+FUN_02003684: ; 0x02003684
+ push {r4-r5}
+ ldrh r4, [r2, #0x2]
+ lsl r3, r4, #0x10
+ lsl r4, r4, #0x15
+ lsr r3, r3, #0x1b
+ lsr r4, r4, #0x1b
+ cmp r4, r3
+ bne _020036BE
+ mov r3, #0x46
+ lsl r3, r3, #0x2
+ ldrh r4, [r0, r3]
+ mov r2, #0x1
+ lsl r2, r1
+ lsl r1, r4, #0x10
+ lsr r5, r1, #0x12
+ add r1, r5, #0x0
+ tst r1, r2
+ beq _0200371E
+ eor r2, r5
+ lsl r2, r2, #0x10
+ ldr r1, _02003724 ; =0xFFFF0003
+ lsr r2, r2, #0x10
+ lsl r2, r2, #0x12
+ and r1, r4
+ lsr r2, r2, #0x10
+ orr r1, r2
+ strh r1, [r0, r3]
+ pop {r4-r5}
+ bx lr
+_020036BE:
+ ldrh r0, [r2, #0x4]
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x1f
+ bne _020036F4
+ lsl r0, r4, #0x10
+ asr r1, r0, #0x10
+ ldrh r0, [r2, #0x6]
+ lsl r0, r0, #0x1c
+ lsr r0, r0, #0x1c
+ add r0, r1, r0
+ lsl r0, r0, #0x10
+ asr r4, r0, #0x10
+ cmp r4, r3
+ ble _020036DE
+ lsl r0, r3, #0x10
+ asr r4, r0, #0x10
+_020036DE:
+ ldrh r1, [r2, #0x2]
+ ldr r0, _02003728 ; =0xFFFFF83F
+ and r1, r0
+ lsl r0, r4, #0x10
+ lsr r0, r0, #0x10
+ lsl r0, r0, #0x1b
+ lsr r0, r0, #0x15
+ orr r0, r1
+ strh r0, [r2, #0x2]
+ pop {r4-r5}
+ bx lr
+_020036F4:
+ lsl r0, r4, #0x10
+ asr r1, r0, #0x10
+ ldrh r0, [r2, #0x6]
+ lsl r0, r0, #0x1c
+ lsr r0, r0, #0x1c
+ sub r0, r1, r0
+ lsl r0, r0, #0x10
+ asr r4, r0, #0x10
+ cmp r4, r3
+ bge _0200370C
+ lsl r0, r3, #0x10
+ asr r4, r0, #0x10
+_0200370C:
+ ldrh r1, [r2, #0x2]
+ ldr r0, _02003728 ; =0xFFFFF83F
+ and r1, r0
+ lsl r0, r4, #0x10
+ lsr r0, r0, #0x10
+ lsl r0, r0, #0x1b
+ lsr r0, r0, #0x15
+ orr r0, r1
+ strh r0, [r2, #0x2]
+_0200371E:
+ pop {r4-r5}
+ bx lr
+ nop
+_02003724: .word 0xFFFF0003
+_02003728: .word 0xFFFFF83F
+
+ thumb_func_start FUN_0200372C
+FUN_0200372C: ; 0x0200372C
+ push {r3-r7, lr}
+ add r6, r0, #0x0
+ ldr r0, _020038DC ; =0x0000011A
+ ldrh r1, [r6, r0]
+ lsl r1, r1, #0x10
+ lsr r1, r1, #0x1f
+ bne _02003748
+ sub r0, r0, #0x2
+ ldrh r0, [r6, r0]
+ lsl r0, r0, #0x1e
+ lsr r0, r0, #0x1e
+ cmp r0, #0x1
+ beq _02003748
+ b _020038DA
+_02003748:
+ mov r7, #0x2
+ mov r5, #0x0
+ add r4, r6, #0x0
+ lsl r7, r7, #0xc
+_02003750:
+ ldr r0, _020038DC ; =0x0000011A
+ ldrh r1, [r6, r0]
+ lsl r0, r1, #0x10
+ lsr r0, r0, #0x1f
+ bne _02003770
+ ldr r0, [r4, #0x4]
+ cmp r0, #0x0
+ beq _0200377C
+ lsl r0, r1, #0x12
+ lsl r1, r5, #0x10
+ lsr r0, r0, #0x12
+ lsr r1, r1, #0x10
+ bl FUN_02003314
+ cmp r0, #0x0
+ beq _0200377C
+_02003770:
+ ldr r0, [r4, #0x4]
+ ldr r1, [r4, #0x8]
+ blx DC_FlushRange
+ cmp r5, #0xd
+ bls _0200377E
+_0200377C:
+ b _020038A4
+_0200377E:
+ add r0, r5, r5
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0200378A: ; jump table (using 16-bit offset)
+ .short _020037A6 - _0200378A - 2; case 0
+ .short _020037B2 - _0200378A - 2; case 1
+ .short _020037BE - _0200378A - 2; case 2
+ .short _020037CA - _0200378A - 2; case 3
+ .short _020037D6 - _0200378A - 2; case 4
+ .short _020037EA - _0200378A - 2; case 5
+ .short _020037FE - _0200378A - 2; case 6
+ .short _02003814 - _0200378A - 2; case 7
+ .short _0200382A - _0200378A - 2; case 8
+ .short _0200383E - _0200378A - 2; case 9
+ .short _02003852 - _0200378A - 2; case 10
+ .short _02003868 - _0200378A - 2; case 11
+ .short _0200387E - _0200378A - 2; case 12
+ .short _02003892 - _0200378A - 2; case 13
+_020037A6:
+ ldr r0, [r4, #0x4]
+ ldr r2, [r4, #0x8]
+ mov r1, #0x0
+ blx GX_LoadBGPltt
+ b _020038A4
+_020037B2:
+ ldr r0, [r4, #0x4]
+ ldr r2, [r4, #0x8]
+ mov r1, #0x0
+ blx GXS_LoadBGPltt
+ b _020038A4
+_020037BE:
+ ldr r0, [r4, #0x4]
+ ldr r2, [r4, #0x8]
+ mov r1, #0x0
+ blx GX_LoadOBJPltt
+ b _020038A4
+_020037CA:
+ ldr r0, [r4, #0x4]
+ ldr r2, [r4, #0x8]
+ mov r1, #0x0
+ blx GXS_LoadOBJPltt
+ b _020038A4
+_020037D6:
+ blx GX_BeginLoadBGExtPltt
+ ldr r0, [r4, #0x4]
+ ldr r2, [r4, #0x8]
+ mov r1, #0x0
+ blx GX_LoadBGExtPltt
+ blx GX_EndLoadBGExtPltt
+ b _020038A4
+_020037EA:
+ blx GX_BeginLoadBGExtPltt
+ ldr r0, [r4, #0x4]
+ ldr r2, [r4, #0x8]
+ add r1, r7, #0x0
+ blx GX_LoadBGExtPltt
+ blx GX_EndLoadBGExtPltt
+ b _020038A4
+_020037FE:
+ blx GX_BeginLoadBGExtPltt
+ mov r1, #0x1
+ ldr r0, [r4, #0x4]
+ ldr r2, [r4, #0x8]
+ lsl r1, r1, #0xe
+ blx GX_LoadBGExtPltt
+ blx GX_EndLoadBGExtPltt
+ b _020038A4
+_02003814:
+ blx GX_BeginLoadBGExtPltt
+ mov r1, #0x6
+ ldr r0, [r4, #0x4]
+ ldr r2, [r4, #0x8]
+ lsl r1, r1, #0xc
+ blx GX_LoadBGExtPltt
+ blx GX_EndLoadBGExtPltt
+ b _020038A4
+_0200382A:
+ blx GXS_BeginLoadBGExtPltt
+ ldr r0, [r4, #0x4]
+ ldr r2, [r4, #0x8]
+ mov r1, #0x0
+ blx GXS_LoadBGExtPltt
+ blx GXS_EndLoadBGExtPltt
+ b _020038A4
+_0200383E:
+ blx GXS_BeginLoadBGExtPltt
+ ldr r0, [r4, #0x4]
+ ldr r2, [r4, #0x8]
+ add r1, r7, #0x0
+ blx GXS_LoadBGExtPltt
+ blx GXS_EndLoadBGExtPltt
+ b _020038A4
+_02003852:
+ blx GXS_BeginLoadBGExtPltt
+ mov r1, #0x1
+ ldr r0, [r4, #0x4]
+ ldr r2, [r4, #0x8]
+ lsl r1, r1, #0xe
+ blx GXS_LoadBGExtPltt
+ blx GXS_EndLoadBGExtPltt
+ b _020038A4
+_02003868:
+ blx GXS_BeginLoadBGExtPltt
+ mov r1, #0x6
+ ldr r0, [r4, #0x4]
+ ldr r2, [r4, #0x8]
+ lsl r1, r1, #0xc
+ blx GXS_LoadBGExtPltt
+ blx GXS_EndLoadBGExtPltt
+ b _020038A4
+_0200387E:
+ blx GX_BeginLoadOBJExtPltt
+ ldr r0, [r4, #0x4]
+ ldr r2, [r4, #0x8]
+ mov r1, #0x0
+ blx GX_LoadOBJExtPltt
+ blx GX_EndLoadOBJExtPltt
+ b _020038A4
+_02003892:
+ blx GXS_BeginLoadOBJExtPltt
+ ldr r0, [r4, #0x4]
+ ldr r2, [r4, #0x8]
+ mov r1, #0x0
+ blx GXS_LoadOBJExtPltt
+ blx GXS_EndLoadOBJExtPltt
+_020038A4:
+ add r5, r5, #0x1
+ add r4, #0x14
+ cmp r5, #0xe
+ bge _020038AE
+ b _02003750
+_020038AE:
+ ldr r3, _020038DC ; =0x0000011A
+ ldr r1, _020038E0 ; =0xFFFFC000
+ sub r2, r3, #0x2
+ ldrh r2, [r6, r2]
+ ldrh r0, [r6, r3]
+ lsl r2, r2, #0x10
+ and r0, r1
+ lsr r2, r2, #0x12
+ lsr r1, r1, #0x12
+ and r1, r2
+ orr r0, r1
+ strh r0, [r6, r3]
+ ldrh r0, [r6, r3]
+ lsl r0, r0, #0x12
+ lsr r0, r0, #0x12
+ bne _020038DA
+ sub r0, r3, #0x2
+ ldrh r1, [r6, r0]
+ mov r0, #0x3
+ bic r1, r0
+ sub r0, r3, #0x2
+ strh r1, [r6, r0]
+_020038DA:
+ pop {r3-r7, pc}
+ .balign 4
+_020038DC: .word 0x0000011A
+_020038E0: .word 0xFFFFC000
+
+ thumb_func_start FUN_020038E4
+FUN_020038E4: ; 0x020038E4
+ mov r1, #0x46
+ lsl r1, r1, #0x2
+ ldrh r0, [r0, r1]
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x12
+ bx lr
+
+ thumb_func_start FUN_020038F0
+FUN_020038F0: ; 0x020038F0
+ push {r3-r4}
+ ldr r3, _0200390C ; =0x0000011A
+ lsl r1, r1, #0x10
+ ldrh r4, [r0, r3]
+ ldr r2, _02003910 ; =0xFFFF7FFF
+ lsr r1, r1, #0x10
+ lsl r1, r1, #0x1f
+ and r2, r4
+ lsr r1, r1, #0x10
+ orr r1, r2
+ strh r1, [r0, r3]
+ pop {r3-r4}
+ bx lr
+ nop
+_0200390C: .word 0x0000011A
+_02003910: .word 0xFFFF7FFF
+
+ thumb_func_start FUN_02003914
+FUN_02003914: ; 0x02003914
+ push {r3-r7, lr}
+ sub sp, #0x8
+ add r6, r0, #0x0
+ str r3, [sp, #0x0]
+ mov r0, #0x14
+ add r4, r1, #0x0
+ mul r4, r0
+ add r0, sp, #0x10
+ ldrh r0, [r0, #0x14]
+ add r7, r2, #0x0
+ ldr r5, [sp, #0x20]
+ str r0, [sp, #0x4]
+ lsl r1, r0, #0x1
+ add r0, r6, r4
+ ldr r0, [r0, #0x8]
+ cmp r1, r0
+ bls _0200393A
+ bl ErrorHandling
+_0200393A:
+ sub r0, r7, #0x1
+ cmp r0, #0x1
+ bhi _02003952
+ ldr r2, [r6, r4]
+ lsl r1, r5, #0x1
+ add r1, r2, r1
+ ldr r2, [sp, #0x4]
+ ldr r0, [sp, #0x0]
+ sub r2, r2, r5
+ lsl r2, r2, #0x1
+ blx MIi_CpuClear16
+_02003952:
+ cmp r7, #0x0
+ beq _0200395A
+ cmp r7, #0x2
+ bne _0200396E
+_0200395A:
+ add r1, r6, r4
+ ldr r2, [r1, #0x4]
+ lsl r1, r5, #0x1
+ add r1, r2, r1
+ ldr r2, [sp, #0x4]
+ ldr r0, [sp, #0x0]
+ sub r2, r2, r5
+ lsl r2, r2, #0x1
+ blx MIi_CpuClear16
+_0200396E:
+ add sp, #0x8
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_02003974
+FUN_02003974: ; 0x02003974
+ push {r4-r7, lr}
+ sub sp, #0xc
+ str r0, [sp, #0x0]
+ add r0, sp, #0x10
+ ldrh r0, [r0, #0x10]
+ str r1, [sp, #0x4]
+ add r7, r2, #0x0
+ lsl r1, r0, #0x1b
+ lsr r1, r1, #0x1b
+ mov r12, r1
+ lsl r1, r0, #0x16
+ lsl r0, r0, #0x11
+ lsr r1, r1, #0x1b
+ lsr r0, r0, #0x1b
+ mov r2, #0x0
+ mov lr, r1
+ str r0, [sp, #0x8]
+ cmp r7, #0x0
+ bls _020039E2
+_0200399A:
+ ldr r0, [sp, #0x0]
+ lsl r6, r2, #0x1
+ ldrh r4, [r0, r6]
+ lsl r0, r4, #0x1b
+ lsr r1, r0, #0x1b
+ lsl r0, r4, #0x16
+ lsl r4, r4, #0x11
+ lsr r5, r4, #0x1b
+ ldr r4, [sp, #0x8]
+ lsr r0, r0, #0x1b
+ sub r4, r4, r5
+ mul r4, r3
+ asr r4, r4, #0x4
+ add r4, r5, r4
+ lsl r5, r4, #0xa
+ mov r4, r12
+ sub r4, r4, r1
+ mul r4, r3
+ asr r4, r4, #0x4
+ add r1, r1, r4
+ mov r4, lr
+ sub r4, r4, r0
+ mul r4, r3
+ asr r4, r4, #0x4
+ add r0, r0, r4
+ lsl r0, r0, #0x5
+ orr r0, r1
+ add r1, r5, #0x0
+ orr r1, r0
+ ldr r0, [sp, #0x4]
+ strh r1, [r0, r6]
+ add r0, r2, #0x1
+ lsl r0, r0, #0x10
+ lsr r2, r0, #0x10
+ cmp r2, r7
+ blo _0200399A
+_020039E2:
+ add sp, #0xc
+ pop {r4-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_020039E8
+FUN_020039E8: ; 0x020039E8
+ push {r3-r7, lr}
+ sub sp, #0x8
+ add r7, r2, #0x0
+ add r5, r0, #0x0
+ mov r2, #0x14
+ add r6, r1, #0x0
+ mul r6, r2
+ str r3, [sp, #0x4]
+ ldr r1, [r5, r6]
+ mov r0, #0x0
+ add r4, r5, r6
+ cmp r1, #0x0
+ beq _02003A0A
+ ldr r1, [r4, #0x4]
+ cmp r1, #0x0
+ beq _02003A0A
+ mov r0, #0x1
+_02003A0A:
+ cmp r0, #0x0
+ bne _02003A12
+ bl ErrorHandling
+_02003A12:
+ add r3, sp, #0x10
+ ldrh r0, [r3, #0x14]
+ add r2, r5, r6
+ lsl r1, r7, #0x1
+ str r0, [sp, #0x0]
+ ldr r0, [r4, #0x0]
+ ldr r2, [r2, #0x4]
+ add r0, r0, r1
+ add r1, r2, r1
+ ldrb r3, [r3, #0x10]
+ ldr r2, [sp, #0x4]
+ bl FUN_02003974
+ add sp, #0x8
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_02003A30
+FUN_02003A30: ; 0x02003A30
+ push {r3-r7, lr}
+ sub sp, #0x8
+ str r3, [sp, #0x4]
+ add r5, r0, #0x0
+ add r6, r1, #0x0
+ add r4, r2, #0x0
+ ldr r7, [sp, #0x20]
+ beq _02003A60
+_02003A40:
+ mov r0, #0x1
+ tst r0, r4
+ beq _02003A54
+ str r7, [sp, #0x0]
+ ldr r3, [sp, #0x4]
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ mov r2, #0x10
+ bl FUN_02003974
+_02003A54:
+ lsl r0, r4, #0xf
+ lsr r4, r0, #0x10
+ add r6, #0x20
+ add r5, #0x20
+ cmp r4, #0x0
+ bne _02003A40
+_02003A60:
+ add sp, #0x8
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_02003A64
+FUN_02003A64: ; 0x02003A64
+ push {r4-r7, lr}
+ sub sp, #0xc
+ str r3, [sp, #0x8]
+ add r6, r0, #0x0
+ add r7, r1, #0x0
+ ldr r0, [sp, #0x20]
+ add r5, r2, #0x0
+ mov r1, #0x14
+ add r2, r7, #0x0
+ str r0, [sp, #0x20]
+ mul r2, r1
+ mov r4, #0x0
+ ldr r1, [r6, r2]
+ add r0, r4, #0x0
+ cmp r1, #0x0
+ beq _02003A8E
+ add r1, r6, r2
+ ldr r1, [r1, #0x4]
+ cmp r1, #0x0
+ beq _02003A8E
+ mov r0, #0x1
+_02003A8E:
+ cmp r0, #0x0
+ bne _02003A96
+ bl ErrorHandling
+_02003A96:
+ cmp r5, #0x0
+ beq _02003AC0
+_02003A9A:
+ mov r0, #0x1
+ tst r0, r5
+ beq _02003AB6
+ ldr r0, [sp, #0x8]
+ lsl r2, r4, #0x10
+ str r0, [sp, #0x0]
+ ldr r0, [sp, #0x20]
+ add r1, r7, #0x0
+ str r0, [sp, #0x4]
+ add r0, r6, #0x0
+ lsr r2, r2, #0x10
+ mov r3, #0x10
+ bl FUN_020039E8
+_02003AB6:
+ lsl r0, r5, #0xf
+ lsr r5, r0, #0x10
+ add r4, #0x10
+ cmp r5, #0x0
+ bne _02003A9A
+_02003AC0:
+ add sp, #0xc
+ pop {r4-r7, pc}
+
+ thumb_func_start FUN_02003AC4
+FUN_02003AC4: ; 0x02003AC4
+ push {r3-r7, lr}
+ mov lr, r1
+ mov r12, r2
+ add r7, r3, #0x0
+ mov r4, #0x0
+ cmp r1, #0x0
+ ble _02003B3C
+ ldr r6, [sp, #0x18]
+_02003AD4:
+ ldrh r3, [r0, #0x0]
+ mov r1, #0x1f
+ add r2, r3, #0x0
+ asr r5, r3, #0xa
+ and r2, r1
+ and r5, r1
+ mov r1, #0x1d
+ mul r1, r5
+ mov r5, #0x4c
+ mul r5, r2
+ asr r3, r3, #0x5
+ mov r2, #0x1f
+ and r3, r2
+ mov r2, #0x97
+ mul r2, r3
+ add r2, r5, r2
+ add r1, r1, r2
+ asr r3, r1, #0x8
+ mov r1, r12
+ add r2, r1, #0x0
+ mul r2, r3
+ lsl r1, r2, #0x10
+ lsr r1, r1, #0x10
+ asr r2, r1, #0x8
+ add r1, r7, #0x0
+ mul r1, r3
+ mul r3, r6
+ lsl r1, r1, #0x10
+ lsl r3, r3, #0x10
+ lsr r1, r1, #0x10
+ lsr r3, r3, #0x10
+ asr r1, r1, #0x8
+ asr r3, r3, #0x8
+ cmp r2, #0x1f
+ ble _02003B1C
+ mov r2, #0x1f
+_02003B1C:
+ cmp r1, #0x1f
+ ble _02003B22
+ mov r1, #0x1f
+_02003B22:
+ cmp r3, #0x1f
+ ble _02003B28
+ mov r3, #0x1f
+_02003B28:
+ lsl r3, r3, #0xa
+ lsl r1, r1, #0x5
+ orr r1, r3
+ orr r1, r2
+ strh r1, [r0, #0x0]
+ add r4, r4, #0x1
+ mov r1, lr
+ add r0, r0, #0x2
+ cmp r4, r1
+ blt _02003AD4
+_02003B3C:
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_02003B40
+FUN_02003B40: ; 0x02003B40
+ push {r3-r5, lr}
+ sub sp, #0x8
+ add r5, r0, #0x0
+ add r0, r1, #0x0
+ add r1, r2, #0x0
+ add r2, sp, #0x4
+ bl FUN_02006C08
+ add r4, r0, #0x0
+ bne _02003B58
+ bl ErrorHandling
+_02003B58:
+ ldr r0, [sp, #0x1c]
+ cmp r0, #0x0
+ bne _02003B64
+ ldr r0, [sp, #0x4]
+ ldr r0, [r0, #0x8]
+ str r0, [sp, #0x1c]
+_02003B64:
+ ldr r0, [sp, #0x2c]
+ ldr r2, [sp, #0x24]
+ str r0, [sp, #0x0]
+ ldr r0, [sp, #0x4]
+ ldr r3, [sp, #0x28]
+ ldr r0, [r0, #0xc]
+ mov r1, #0x10
+ bl FUN_02003AC4
+ ldr r0, [sp, #0x1c]
+ add r3, sp, #0x8
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #0x0]
+ ldr r1, [sp, #0x4]
+ ldrh r3, [r3, #0x18]
+ ldr r1, [r1, #0xc]
+ ldr r2, [sp, #0x18]
+ add r0, r5, #0x0
+ bl FUN_02003054
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ add sp, #0x8
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_02003B98
+FUN_02003B98: ; 0x02003B98
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ add r6, r1, #0x0
+ bl FUN_02003D30
+ add r4, r0, #0x0
+ blx 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
+ add r1, r4, #0x0
+ add r1, #0x90
+ str r0, [r1, #0x0]
+ add r2, r4, #0x0
+ add r2, #0x90
+ ldr r1, _02003C04 ; =0x02104780
+ ldr r2, [r2, #0x0]
+ add r0, r4, #0x0
+ mov r3, #0x0
+ blx FUN_020C26F8
+ add r0, r4, #0x0
+ add r0, #0x90
+ ldr r0, [r0, #0x0]
+ blx FUN_020C39CC
+ add r0, r4, #0x0
+ bl FUN_02004088
+ add r0, r4, #0x0
+ bl FUN_020040A4
+ ldr r0, _02003C08 ; =0x02107070
+ mov r1, #0x0
+ str r1, [r0, #0x4]
+ ldr r0, _02003C0C ; =0x000BCD4C
+ str r5, [r4, r0]
+ ldrh r0, [r6, #0x0]
+ lsl r0, r0, #0x1a
+ lsr r0, r0, #0x1e
+ bl FUN_02004D60
+ pop {r4-r6, pc}
+ nop
+_02003C00: .word 0x000BBC00
+_02003C04: .word 0x02104780
+_02003C08: .word 0x02107070
+_02003C0C: .word 0x000BCD4C
+
+ thumb_func_start FUN_02003C10
+FUN_02003C10: ; 0x02003C10
+ push {r4, lr}
+ bl FUN_02003D30
+ add r4, r0, #0x0
+ bl FUN_02003D04
+ cmp r0, #0x0
+ bne _02003C30
+ ldr r0, _02003C3C ; =0x000BCD00
+ ldr r1, [r4, r0]
+ cmp r1, #0x0
+ ble _02003C2C
+ sub r1, r1, #0x1
+ str r1, [r4, r0]
+_02003C2C:
+ bl FUN_02003C40
+_02003C30:
+ bl FUN_02005CFC
+ blx FUN_020C01A0
+ pop {r4, pc}
+ nop
+_02003C3C: .word 0x000BCD00
+
+ thumb_func_start FUN_02003C40
+FUN_02003C40: ; 0x02003C40
+ push {r4, lr}
+ bl FUN_02003D30
+ add r4, r0, #0x0
+ ldr r0, _02003CDC ; =0x02107070
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x6
+ bhi _02003CD8
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02003C5C: ; jump table (using 16-bit offset)
+ .short _02003CD8 - _02003C5C - 2; case 0
+ .short _02003C6A - _02003C5C - 2; case 1
+ .short _02003CD8 - _02003C5C - 2; case 2
+ .short _02003C72 - _02003C5C - 2; case 3
+ .short _02003C82 - _02003C5C - 2; case 4
+ .short _02003C92 - _02003C5C - 2; case 5
+ .short _02003CB0 - _02003C5C - 2; case 6
+_02003C6A:
+ mov r0, #0x2
+ bl FUN_02003CE8
+ pop {r4, pc}
+_02003C72:
+ bl FUN_02005404
+ cmp r0, #0x0
+ bne _02003CD8
+ mov r0, #0x2
+ bl FUN_02003CE8
+ pop {r4, pc}
+_02003C82:
+ bl FUN_02005404
+ cmp r0, #0x0
+ bne _02003CD8
+ mov r0, #0x2
+ bl FUN_02003CE8
+ pop {r4, pc}
+_02003C92:
+ bl FUN_02005404
+ cmp r0, #0x0
+ bne _02003CD8
+ bl FUN_02004D94
+ cmp r0, #0x0
+ bne _02003CD8
+ bl FUN_020040DC
+ ldr r0, _02003CE0 ; =0x000BCD0E
+ ldrh r0, [r4, r0]
+ bl FUN_0200521C
+ pop {r4, pc}
+_02003CB0:
+ bl FUN_02005404
+ cmp r0, #0x0
+ bne _02003CD8
+ bl FUN_02004D94
+ cmp r0, #0x0
+ bne _02003CD8
+ bl FUN_020040DC
+ ldr r0, _02003CE0 ; =0x000BCD0E
+ ldrh r0, [r4, r0]
+ bl FUN_0200521C
+ ldr r1, _02003CE4 ; =0x000BCD08
+ mov r0, #0x7f
+ ldr r1, [r4, r1]
+ mov r2, #0x0
+ bl FUN_0200538C
+_02003CD8:
+ pop {r4, pc}
+ nop
+_02003CDC: .word 0x02107070
+_02003CE0: .word 0x000BCD0E
+_02003CE4: .word 0x000BCD08
+
+ thumb_func_start FUN_02003CE8
+FUN_02003CE8: ; 0x02003CE8
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl FUN_02003D30
+ ldr r1, _02003CFC ; =0x000BCCFC
+ mov r2, #0x0
+ strh r2, [r0, r1]
+ ldr r0, _02003D00 ; =0x02107070
+ str r4, [r0, #0x0]
+ pop {r4, pc}
+ .balign 4
+_02003CFC: .word 0x000BCCFC
+_02003D00: .word 0x02107070
+
+ thumb_func_start FUN_02003D04
+FUN_02003D04: ; 0x02003D04
+ push {r4, lr}
+ bl FUN_02003D30
+ add r4, r0, #0x0
+ mov r0, #0x2
+ bl FUN_020048BC
+ cmp r0, #0x0
+ beq _02003D1A
+ mov r0, #0x1
+ pop {r4, pc}
+_02003D1A:
+ ldr r0, _02003D2C ; =0x000BCD12
+ ldrh r0, [r4, r0]
+ cmp r0, #0x0
+ beq _02003D26
+ mov r0, #0x1
+ pop {r4, pc}
+_02003D26:
+ mov r0, #0x0
+ pop {r4, pc}
+ nop
+_02003D2C: .word 0x000BCD12
+
+ thumb_func_start FUN_02003D30
+FUN_02003D30: ; 0x02003D30
+ ldr r0, _02003D34 ; =0x02107078
+ bx lr
+ .balign 4
+_02003D34: .word 0x02107078
+
+ thumb_func_start FUN_02003D38
+FUN_02003D38: ; 0x02003D38
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl FUN_02003D30
+ cmp r4, #0x27
+ bls _02003D46
+ b _02003E92
+_02003D46:
+ add r1, r4, r4
+ add r1, pc
+ ldrh r1, [r1, #0x6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_02003D52: ; jump table (using 16-bit offset)
+ .short _02003DA8 - _02003D52 - 2; case 0
+ .short _02003DAE - _02003D52 - 2; case 1
+ .short _02003DB4 - _02003D52 - 2; case 2
+ .short _02003DBA - _02003D52 - 2; case 3
+ .short _02003DC0 - _02003D52 - 2; case 4
+ .short _02003DA2 - _02003D52 - 2; case 5
+ .short _02003DC6 - _02003D52 - 2; case 6
+ .short _02003DCC - _02003D52 - 2; case 7
+ .short _02003DD2 - _02003D52 - 2; case 8
+ .short _02003DD8 - _02003D52 - 2; case 9
+ .short _02003DDE - _02003D52 - 2; case 10
+ .short _02003DE4 - _02003D52 - 2; case 11
+ .short _02003DEA - _02003D52 - 2; case 12
+ .short _02003DF0 - _02003D52 - 2; case 13
+ .short _02003DF6 - _02003D52 - 2; case 14
+ .short _02003DFC - _02003D52 - 2; case 15
+ .short _02003E02 - _02003D52 - 2; case 16
+ .short _02003E08 - _02003D52 - 2; case 17
+ .short _02003E0E - _02003D52 - 2; case 18
+ .short _02003E14 - _02003D52 - 2; case 19
+ .short _02003E1A - _02003D52 - 2; case 20
+ .short _02003E20 - _02003D52 - 2; case 21
+ .short _02003E26 - _02003D52 - 2; case 22
+ .short _02003E2C - _02003D52 - 2; case 23
+ .short _02003E32 - _02003D52 - 2; case 24
+ .short _02003E38 - _02003D52 - 2; case 25
+ .short _02003E3E - _02003D52 - 2; case 26
+ .short _02003E44 - _02003D52 - 2; case 27
+ .short _02003E4A - _02003D52 - 2; case 28
+ .short _02003E50 - _02003D52 - 2; case 29
+ .short _02003E56 - _02003D52 - 2; case 30
+ .short _02003E5C - _02003D52 - 2; case 31
+ .short _02003E62 - _02003D52 - 2; case 32
+ .short _02003E68 - _02003D52 - 2; case 33
+ .short _02003E6E - _02003D52 - 2; case 34
+ .short _02003E74 - _02003D52 - 2; case 35
+ .short _02003E7A - _02003D52 - 2; case 36
+ .short _02003E80 - _02003D52 - 2; case 37
+ .short _02003E86 - _02003D52 - 2; case 38
+ .short _02003E8C - _02003D52 - 2; case 39
+_02003DA2:
+ ldr r1, _02003E9C ; =0x000BCCFE
+ add r0, r0, r1
+ pop {r4, pc}
+_02003DA8:
+ ldr r1, _02003EA0 ; =0x000BBCB8
+ add r0, r0, r1
+ pop {r4, pc}
+_02003DAE:
+ ldr r1, _02003EA4 ; =0x000BBCBC
+ add r0, r0, r1
+ pop {r4, pc}
+_02003DB4:
+ ldr r1, _02003EA8 ; =0x000BBCC0
+ add r0, r0, r1
+ pop {r4, pc}
+_02003DBA:
+ ldr r1, _02003EAC ; =0x000BBCE0
+ add r0, r0, r1
+ pop {r4, pc}
+_02003DC0:
+ ldr r1, _02003EB0 ; =0x000BCCE0
+ add r0, r0, r1
+ pop {r4, pc}
+_02003DC6:
+ ldr r1, _02003EB4 ; =0x000BCD00
+ add r0, r0, r1
+ pop {r4, pc}
+_02003DCC:
+ ldr r1, _02003EB8 ; =0x000BCD04
+ add r0, r0, r1
+ pop {r4, pc}
+_02003DD2:
+ ldr r1, _02003EBC ; =0x000BCD08
+ add r0, r0, r1
+ pop {r4, pc}
+_02003DD8:
+ ldr r1, _02003EC0 ; =0x000BCD0C
+ add r0, r0, r1
+ pop {r4, pc}
+_02003DDE:
+ ldr r1, _02003EC4 ; =0x000BCD0E
+ add r0, r0, r1
+ pop {r4, pc}
+_02003DE4:
+ ldr r1, _02003EC8 ; =0x000BCD10
+ add r0, r0, r1
+ pop {r4, pc}
+_02003DEA:
+ ldr r1, _02003ECC ; =0x000BCD11
+ add r0, r0, r1
+ pop {r4, pc}
+_02003DF0:
+ ldr r1, _02003ED0 ; =0x000BCD12
+ add r0, r0, r1
+ pop {r4, pc}
+_02003DF6:
+ ldr r1, _02003ED4 ; =0x000BCD14
+ add r0, r0, r1
+ pop {r4, pc}
+_02003DFC:
+ ldr r1, _02003ED8 ; =0x000BCD15
+ add r0, r0, r1
+ pop {r4, pc}
+_02003E02:
+ ldr r1, _02003EDC ; =0x000BCD16
+ add r0, r0, r1
+ pop {r4, pc}
+_02003E08:
+ ldr r1, _02003EE0 ; =0x000BCD17
+ add r0, r0, r1
+ pop {r4, pc}
+_02003E0E:
+ ldr r1, _02003EE4 ; =0x000BCD18
+ add r0, r0, r1
+ pop {r4, pc}
+_02003E14:
+ ldr r1, _02003EE8 ; =0x000BCD19
+ add r0, r0, r1
+ pop {r4, pc}
+_02003E1A:
+ ldr r1, _02003EEC ; =0x000BCD1A
+ add r0, r0, r1
+ pop {r4, pc}
+_02003E20:
+ ldr r1, _02003EF0 ; =0x000BCD1B
+ add r0, r0, r1
+ pop {r4, pc}
+_02003E26:
+ ldr r1, _02003EF4 ; =0x000BCD1C
+ add r0, r0, r1
+ pop {r4, pc}
+_02003E2C:
+ ldr r1, _02003EF8 ; =0x000BCD20
+ add r0, r0, r1
+ pop {r4, pc}
+_02003E32:
+ ldr r1, _02003EFC ; =0x000BCD24
+ add r0, r0, r1
+ pop {r4, pc}
+_02003E38:
+ ldr r1, _02003F00 ; =0x000BCD28
+ add r0, r0, r1
+ pop {r4, pc}
+_02003E3E:
+ ldr r1, _02003F04 ; =0x000BCD2C
+ add r0, r0, r1
+ pop {r4, pc}
+_02003E44:
+ ldr r1, _02003F08 ; =0x000BCD30
+ add r0, r0, r1
+ pop {r4, pc}
+_02003E4A:
+ ldr r1, _02003F0C ; =0x000BCD34
+ add r0, r0, r1
+ pop {r4, pc}
+_02003E50:
+ ldr r1, _02003F10 ; =0x000BCD38
+ add r0, r0, r1
+ pop {r4, pc}
+_02003E56:
+ ldr r1, _02003F14 ; =0x000BCD39
+ add r0, r0, r1
+ pop {r4, pc}
+_02003E5C:
+ ldr r1, _02003F18 ; =0x000BCD3A
+ add r0, r0, r1
+ pop {r4, pc}
+_02003E62:
+ ldr r1, _02003F1C ; =0x000BCD3C
+ add r0, r0, r1
+ pop {r4, pc}
+_02003E68:
+ ldr r1, _02003F20 ; =0x000BCD40
+ add r0, r0, r1
+ pop {r4, pc}
+_02003E6E:
+ ldr r1, _02003F24 ; =0x000BCD48
+ add r0, r0, r1
+ pop {r4, pc}
+_02003E74:
+ ldr r1, _02003F28 ; =0x000BCD4C
+ add r0, r0, r1
+ pop {r4, pc}
+_02003E7A:
+ ldr r1, _02003F2C ; =0x000BCD50
+ add r0, r0, r1
+ pop {r4, pc}
+_02003E80:
+ ldr r1, _02003F30 ; =0x000BCD54
+ add r0, r0, r1
+ pop {r4, pc}
+_02003E86:
+ ldr r1, _02003F34 ; =0x000BCD58
+ add r0, r0, r1
+ pop {r4, pc}
+_02003E8C:
+ ldr r1, _02003F38 ; =0x000BCD5C
+ add r0, r0, r1
+ pop {r4, pc}
+_02003E92:
+ bl ErrorHandling
+ mov r0, #0x0
+ pop {r4, pc}
+ nop
+_02003E9C: .word 0x000BCCFE
+_02003EA0: .word 0x000BBCB8
+_02003EA4: .word 0x000BBCBC
+_02003EA8: .word 0x000BBCC0
+_02003EAC: .word 0x000BBCE0
+_02003EB0: .word 0x000BCCE0
+_02003EB4: .word 0x000BCD00
+_02003EB8: .word 0x000BCD04
+_02003EBC: .word 0x000BCD08
+_02003EC0: .word 0x000BCD0C
+_02003EC4: .word 0x000BCD0E
+_02003EC8: .word 0x000BCD10
+_02003ECC: .word 0x000BCD11
+_02003ED0: .word 0x000BCD12
+_02003ED4: .word 0x000BCD14
+_02003ED8: .word 0x000BCD15
+_02003EDC: .word 0x000BCD16
+_02003EE0: .word 0x000BCD17
+_02003EE4: .word 0x000BCD18
+_02003EE8: .word 0x000BCD19
+_02003EEC: .word 0x000BCD1A
+_02003EF0: .word 0x000BCD1B
+_02003EF4: .word 0x000BCD1C
+_02003EF8: .word 0x000BCD20
+_02003EFC: .word 0x000BCD24
+_02003F00: .word 0x000BCD28
+_02003F04: .word 0x000BCD2C
+_02003F08: .word 0x000BCD30
+_02003F0C: .word 0x000BCD34
+_02003F10: .word 0x000BCD38
+_02003F14: .word 0x000BCD39
+_02003F18: .word 0x000BCD3A
+_02003F1C: .word 0x000BCD3C
+_02003F20: .word 0x000BCD40
+_02003F24: .word 0x000BCD48
+_02003F28: .word 0x000BCD4C
+_02003F2C: .word 0x000BCD50
+_02003F30: .word 0x000BCD54
+_02003F34: .word 0x000BCD58
+_02003F38: .word 0x000BCD5C
+
+ thumb_func_start FUN_02003F3C
+FUN_02003F3C: ; 0x02003F3C
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ bl FUN_02003D30
+ add r0, #0x90
+ ldr r0, [r0, #0x0]
+ blx FUN_020C290C
+ add r4, r0, #0x0
+ mov r0, #0x0
+ mvn r0, r0
+ cmp r4, r0
+ bne _02003F5A
+ bl ErrorHandling
+_02003F5A:
+ cmp r5, #0x0
+ beq _02003F60
+ str r4, [r5, #0x0]
+_02003F60:
+ add r0, r4, #0x0
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_02003F64
+FUN_02003F64: ; 0x02003F64
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl FUN_02003D30
+ add r0, #0x90
+ ldr r0, [r0, #0x0]
+ add r1, r4, #0x0
+ blx FUN_020C2828
+ pop {r4, pc}
+
+ thumb_func_start FUN_02003F78
+FUN_02003F78: ; 0x02003F78
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl FUN_02003D30
+ add r1, r0, #0x0
+ add r1, #0x90
+ ldr r1, [r1, #0x0]
+ add r0, r4, #0x0
+ blx FUN_020C36A8
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02003F90
+FUN_02003F90: ; 0x02003F90
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl FUN_02003D30
+ add r1, r0, #0x0
+ add r1, #0x90
+ ldr r1, [r1, #0x0]
+ add r0, r4, #0x0
+ blx FUN_020C3674
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02003FA8
+FUN_02003FA8: ; 0x02003FA8
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ bl FUN_02003D30
+ add r2, r0, #0x0
+ add r2, #0x90
+ ldr r2, [r2, #0x0]
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ blx FUN_020C35E0
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_02003FC4
+FUN_02003FC4: ; 0x02003FC4
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl FUN_02003D30
+ add r1, r0, #0x0
+ add r1, #0x90
+ ldr r1, [r1, #0x0]
+ add r0, r4, #0x0
+ blx FUN_020C360C
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02003FDC
+FUN_02003FDC: ; 0x02003FDC
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl FUN_02003D30
+ add r1, r0, #0x0
+ add r1, #0x90
+ ldr r1, [r1, #0x0]
+ add r0, r4, #0x0
+ blx FUN_020C3640
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02003FF4
+FUN_02003FF4: ; 0x02003FF4
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ bl FUN_02003D30
+ add r4, r0, #0x0
+ cmp r5, #0x9
+ blt _02004008
+ bl ErrorHandling
+ mov r5, #0x0
+_02004008:
+ ldr r0, _02004014 ; =0x000BBC94
+ add r1, r4, r0
+ lsl r0, r5, #0x2
+ add r0, r1, r0
+ pop {r3-r5, pc}
+ nop
+_02004014: .word 0x000BBC94
+
+ thumb_func_start FUN_02004018
+FUN_02004018: ; 0x02004018
+ push {r3, lr}
+ cmp r0, #0x7
+ bhi _0200405A
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0200402A: ; jump table (using 16-bit offset)
+ .short _0200403E - _0200402A - 2; case 0
+ .short _0200403A - _0200402A - 2; case 1
+ .short _02004042 - _0200402A - 2; case 2
+ .short _02004046 - _0200402A - 2; case 3
+ .short _0200404A - _0200402A - 2; case 4
+ .short _0200404E - _0200402A - 2; case 5
+ .short _02004052 - _0200402A - 2; case 6
+ .short _02004056 - _0200402A - 2; case 7
+_0200403A:
+ mov r0, #0x0
+ pop {r3, pc}
+_0200403E:
+ mov r0, #0x1
+ pop {r3, pc}
+_02004042:
+ mov r0, #0x2
+ pop {r3, pc}
+_02004046:
+ mov r0, #0x3
+ pop {r3, pc}
+_0200404A:
+ mov r0, #0x4
+ pop {r3, pc}
+_0200404E:
+ mov r0, #0x5
+ pop {r3, pc}
+_02004052:
+ mov r0, #0x6
+ pop {r3, pc}
+_02004056:
+ mov r0, #0x7
+ pop {r3, pc}
+_0200405A:
+ bl ErrorHandling
+ mov r0, #0x3
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_02004064
+FUN_02004064: ; 0x02004064
+ push {r4, lr}
+ ldr r2, _02004080 ; =0x000BCD60
+ mov r1, #0x0
+ add r4, r0, #0x0
+ blx Call_FillMemWithValue
+ ldr r0, _02004084 ; =0x000BCD1C
+ mov r1, #0x0
+_02004074:
+ add r1, r1, #0x1
+ str r1, [r4, r0]
+ add r4, r4, #0x4
+ cmp r1, #0x7
+ blt _02004074
+ pop {r4, pc}
+ .balign 4
+_02004080: .word 0x000BCD60
+_02004084: .word 0x000BCD1C
+
+ thumb_func_start FUN_02004088
+FUN_02004088: ; 0x02004088
+ push {r3-r5, lr}
+ ldr r1, _020040A0 ; =0x000BBC94
+ mov r4, #0x0
+ add r5, r0, r1
+_02004090:
+ add r0, r5, #0x0
+ blx FUN_020C0F80
+ add r4, r4, #0x1
+ add r5, r5, #0x4
+ cmp r4, #0x9
+ blt _02004090
+ pop {r3-r5, pc}
+ .balign 4
+_020040A0: .word 0x000BBC94
+
+ thumb_func_start FUN_020040A4
+FUN_020040A4: ; 0x020040A4
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r0, _020040C0 ; =0x000BCD1C
+ add r0, r4, r0
+ bl FUN_02003F3C
+ mov r0, #0x0
+ bl FUN_02003F78
+ ldr r0, _020040C4 ; =0x000BCD20
+ add r0, r4, r0
+ bl FUN_02003F3C
+ pop {r4, pc}
+ .balign 4
+_020040C0: .word 0x000BCD1C
+_020040C4: .word 0x000BCD20
+
+ thumb_func_start FUN_020040C8
+FUN_020040C8: ; 0x020040C8
+ push {r3, lr}
+ blx MIC_Init
+ mov r0, #0x1
+ blx PM_SetAmp
+ mov r0, #0x2
+ blx PM_SetAmpGain
+ pop {r3, pc}
+
+ thumb_func_start FUN_020040DC
+FUN_020040DC: ; 0x020040DC
+ push {r3, lr}
+ mov r0, #0x7
+ mov r1, #0x0
+ blx FUN_020C1040
+ mov r0, #0x7
+ bl FUN_02003FF4
+ blx FUN_020C0F68
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_020040F4
+FUN_020040F4: ; 0x020040F4
+ push {r4, lr}
+ add r4, r0, #0x0
+ mov r0, #0x5
+ bl FUN_02003D38
+ strb r4, [r0, #0x0]
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02004104
+FUN_02004104: ; 0x02004104
+ push {r3, lr}
+ mov r0, #0x5
+ bl FUN_02003D38
+ ldrb r0, [r0, #0x0]
+ pop {r3, pc}
+
+ thumb_func_start FUN_02004110
+FUN_02004110: ; 0x02004110
+ push {r4, lr}
+ add r4, r0, #0x0
+ mov r0, #0x9
+ bl FUN_02003D38
+ strh r4, [r0, #0x0]
+ mov r0, #0x0
+ bl FUN_02004130
+ pop {r4, pc}
+
+ thumb_func_start FUN_02004124
+FUN_02004124: ; 0x02004124
+ push {r3, lr}
+ mov r0, #0x9
+ bl FUN_02003D38
+ ldrh r0, [r0, #0x0]
+ pop {r3, pc}
+
+ thumb_func_start FUN_02004130
+FUN_02004130: ; 0x02004130
+ push {r4, lr}
+ add r4, r0, #0x0
+ mov r0, #0xa
+ bl FUN_02003D38
+ strh r4, [r0, #0x0]
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02004140
+FUN_02004140: ; 0x02004140
+ push {r3, lr}
+ mov r0, #0xa
+ bl FUN_02003D38
+ ldrh r0, [r0, #0x0]
+ pop {r3, pc}
+
+ thumb_func_start FUN_0200414C
+FUN_0200414C: ; 0x0200414C
+ push {r4, lr}
+ add r4, r0, #0x0
+ mov r0, #0x1f
+ bl FUN_02003D38
+ strh r4, [r0, #0x0]
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0200415C
+FUN_0200415C: ; 0x0200415C
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ mov r0, #0x14
+ bl FUN_02003D38
+ add r4, r0, #0x0
+ mov r0, #0x15
+ bl FUN_02003D38
+ cmp r5, #0x33
+ bhs _0200417A
+ strb r5, [r4, #0x0]
+ mov r1, #0x0
+ strb r1, [r0, #0x0]
+ pop {r3-r5, pc}
+_0200417A:
+ strb r5, [r0, #0x0]
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_02004180
+FUN_02004180: ; 0x02004180
+ push {r3, lr}
+ cmp r0, #0x39
+ bgt _020041DE
+ blt _0200418A
+ b _020042C8
+_0200418A:
+ cmp r0, #0x35
+ bgt _020041CC
+ blt _02004192
+ b _0200429A
+_02004192:
+ cmp r0, #0x33
+ bgt _020041C6
+ bge _0200427C
+ cmp r0, #0xe
+ bhi _020041CA
+ add r2, r0, r0
+ add r2, pc
+ ldrh r2, [r2, #0x6]
+ lsl r2, r2, #0x10
+ asr r2, r2, #0x10
+ add pc, r2
+_020041A8: ; jump table (using 16-bit offset)
+ .short _0200432C - _020041A8 - 2; case 0
+ .short _02004222 - _020041A8 - 2; case 1
+ .short _0200422C - _020041A8 - 2; case 2
+ .short _02004236 - _020041A8 - 2; case 3
+ .short _02004240 - _020041A8 - 2; case 4
+ .short _0200424A - _020041A8 - 2; case 5
+ .short _0200425E - _020041A8 - 2; case 6
+ .short _0200429A - _020041A8 - 2; case 7
+ .short _02004268 - _020041A8 - 2; case 8
+ .short _02004222 - _020041A8 - 2; case 9
+ .short _02004222 - _020041A8 - 2; case 10
+ .short _02004254 - _020041A8 - 2; case 11
+ .short _02004272 - _020041A8 - 2; case 12
+ .short _0200422C - _020041A8 - 2; case 13
+ .short _02004222 - _020041A8 - 2; case 14
+_020041C6:
+ cmp r0, #0x34
+ beq _02004290
+_020041CA:
+ b _0200432C
+_020041CC:
+ cmp r0, #0x37
+ bgt _020041D8
+ bge _020042AE
+ cmp r0, #0x36
+ beq _020042A4
+ b _0200432C
+_020041D8:
+ cmp r0, #0x38
+ beq _020042BE
+ b _0200432C
+_020041DE:
+ cmp r0, #0x3d
+ bgt _020041F8
+ blt _020041E6
+ b _020042F0
+_020041E6:
+ cmp r0, #0x3b
+ bgt _020041F2
+ bge _020042DC
+ cmp r0, #0x3a
+ beq _020042D2
+ b _0200432C
+_020041F2:
+ cmp r0, #0x3c
+ beq _020042E6
+ b _0200432C
+_020041F8:
+ cmp r0, #0x3f
+ bgt _02004206
+ blt _02004200
+ b _02004304
+_02004200:
+ cmp r0, #0x3e
+ beq _020042FA
+ b _0200432C
+_02004206:
+ sub r0, #0x40
+ cmp r0, #0x3
+ bls _0200420E
+ b _0200432C
+_0200420E:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0200421A: ; jump table (using 16-bit offset)
+ .short _0200430E - _0200421A - 2; case 0
+ .short _0200431E - _0200421A - 2; case 1
+ .short _02004286 - _0200421A - 2; case 2
+ .short _020042AE - _0200421A - 2; case 3
+_02004222:
+ mov r0, #0x1
+ bl FUN_02003F78
+ add r1, r0, #0x0
+ b _0200432C
+_0200422C:
+ mov r0, #0x2
+ bl FUN_02003F78
+ add r1, r0, #0x0
+ b _0200432C
+_02004236:
+ mov r0, #0xd
+ bl FUN_02003F78
+ add r1, r0, #0x0
+ b _0200432C
+_02004240:
+ mov r0, #0x1
+ bl FUN_02003F78
+ add r1, r0, #0x0
+ b _0200432C
+_0200424A:
+ mov r0, #0x2
+ bl FUN_02003F78
+ add r1, r0, #0x0
+ b _0200432C
+_02004254:
+ mov r0, #0x1
+ bl FUN_02003F78
+ add r1, r0, #0x0
+ b _0200432C
+_0200425E:
+ mov r0, #0xb
+ bl FUN_02003F78
+ add r1, r0, #0x0
+ b _0200432C
+_02004268:
+ mov r0, #0x1
+ bl FUN_02003F78
+ add r1, r0, #0x0
+ b _0200432C
+_02004272:
+ mov r0, #0xe
+ bl FUN_02003F78
+ add r1, r0, #0x0
+ b _0200432C
+_0200427C:
+ mov r0, #0x3
+ bl FUN_02003F78
+ add r1, r0, #0x0
+ b _0200432C
+_02004286:
+ mov r0, #0x6
+ bl FUN_02003F78
+ add r1, r0, #0x0
+ b _0200432C
+_02004290:
+ mov r0, #0x5
+ bl FUN_02003F78
+ add r1, r0, #0x0
+ b _0200432C
+_0200429A:
+ mov r0, #0x9
+ bl FUN_02003F78
+ add r1, r0, #0x0
+ b _0200432C
+_020042A4:
+ mov r0, #0xa
+ bl FUN_02003F78
+ add r1, r0, #0x0
+ b _0200432C
+_020042AE:
+ ldr r0, _02004330 ; =0x000005E5
+ bl FUN_02003FDC
+ ldr r0, _02004330 ; =0x000005E5
+ bl FUN_02003FC4
+ add r1, r0, #0x0
+ b _0200432C
+_020042BE:
+ mov r0, #0xc
+ bl FUN_02003F78
+ add r1, r0, #0x0
+ b _0200432C
+_020042C8:
+ mov r0, #0x7
+ bl FUN_02003F78
+ add r1, r0, #0x0
+ b _0200432C
+_020042D2:
+ mov r0, #0x8
+ bl FUN_02003F78
+ add r1, r0, #0x0
+ b _0200432C
+_020042DC:
+ mov r0, #0xf
+ bl FUN_02003F78
+ add r1, r0, #0x0
+ b _0200432C
+_020042E6:
+ mov r0, #0x3
+ bl FUN_02003F78
+ add r1, r0, #0x0
+ b _0200432C
+_020042F0:
+ mov r0, #0x5
+ bl FUN_02003F78
+ add r1, r0, #0x0
+ b _0200432C
+_020042FA:
+ mov r0, #0xf
+ bl FUN_02003F78
+ add r1, r0, #0x0
+ b _0200432C
+_02004304:
+ mov r0, #0x4
+ bl FUN_02003F78
+ add r1, r0, #0x0
+ b _0200432C
+_0200430E:
+ ldr r0, _02004334 ; =0x000005ED
+ bl FUN_02003FDC
+ ldr r0, _02004334 ; =0x000005ED
+ bl FUN_02003FC4
+ add r1, r0, #0x0
+ b _0200432C
+_0200431E:
+ ldr r0, _02004338 ; =0x000005EC
+ bl FUN_02003FDC
+ ldr r0, _02004338 ; =0x000005EC
+ bl FUN_02003FC4
+ add r1, r0, #0x0
+_0200432C:
+ add r0, r1, #0x0
+ pop {r3, pc}
+ .balign 4
+_02004330: .word 0x000005E5
+_02004334: .word 0x000005ED
+_02004338: .word 0x000005EC
+
+ thumb_func_start FUN_0200433C
+FUN_0200433C: ; 0x0200433C
+ push {r3-r7, lr}
+ sub sp, #0x8
+ add r4, r0, #0x0
+ mov r0, #0x14
+ add r5, r1, #0x0
+ add r6, r2, #0x0
+ bl FUN_02003D38
+ str r0, [sp, #0x0]
+ mov r0, #0x15
+ bl FUN_02003D38
+ str r0, [sp, #0x4]
+ mov r0, #0xd
+ bl FUN_02003D38
+ add r7, r0, #0x0
+ cmp r4, #0x33
+ bhs _02004370
+ ldr r0, [sp, #0x0]
+ ldrb r0, [r0, #0x0]
+ cmp r0, r4
+ bne _0200437E
+ add sp, #0x8
+ mov r0, #0x0
+ pop {r3-r7, pc}
+_02004370:
+ ldr r0, [sp, #0x4]
+ ldrb r0, [r0, #0x0]
+ cmp r0, r4
+ bne _0200437E
+ add sp, #0x8
+ mov r0, #0x0
+ pop {r3-r7, pc}
+_0200437E:
+ add r0, r4, #0x0
+ bl FUN_0200415C
+ cmp r4, #0x39
+ bgt _020043DC
+ bge _02004458
+ cmp r4, #0x35
+ bgt _020043CA
+ bge _02004458
+ cmp r4, #0x33
+ bgt _020043C4
+ bge _02004458
+ cmp r4, #0xe
+ bhi _020043C8
+ add r0, r4, r4
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_020043A6: ; jump table (using 16-bit offset)
+ .short _020044A0 - _020043A6 - 2; case 0
+ .short _02004460 - _020043A6 - 2; case 1
+ .short _02004484 - _020043A6 - 2; case 2
+ .short _02004496 - _020043A6 - 2; case 3
+ .short _0200441C - _020043A6 - 2; case 4
+ .short _02004430 - _020043A6 - 2; case 5
+ .short _02004444 - _020043A6 - 2; case 6
+ .short _0200444E - _020043A6 - 2; case 7
+ .short _02004496 - _020043A6 - 2; case 8
+ .short _02004496 - _020043A6 - 2; case 9
+ .short _02004496 - _020043A6 - 2; case 10
+ .short _0200443A - _020043A6 - 2; case 11
+ .short _02004496 - _020043A6 - 2; case 12
+ .short _02004496 - _020043A6 - 2; case 13
+ .short _02004472 - _020043A6 - 2; case 14
+_020043C4:
+ cmp r4, #0x34
+ beq _02004458
+_020043C8:
+ b _020044A0
+_020043CA:
+ cmp r4, #0x37
+ bgt _020043D6
+ bge _02004458
+ cmp r4, #0x36
+ beq _02004458
+ b _020044A0
+_020043D6:
+ cmp r4, #0x38
+ beq _02004458
+ b _020044A0
+_020043DC:
+ cmp r4, #0x3d
+ bgt _020043F4
+ bge _02004458
+ cmp r4, #0x3b
+ bgt _020043EE
+ bge _02004458
+ cmp r4, #0x3a
+ beq _02004458
+ b _020044A0
+_020043EE:
+ cmp r4, #0x3c
+ beq _02004458
+ b _020044A0
+_020043F4:
+ cmp r4, #0x3f
+ bgt _02004400
+ bge _02004458
+ cmp r4, #0x3e
+ beq _02004458
+ b _020044A0
+_02004400:
+ add r0, r4, #0x0
+ sub r0, #0x40
+ cmp r0, #0x3
+ bhi _020044A0
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02004414: ; jump table (using 16-bit offset)
+ .short _02004458 - _02004414 - 2; case 0
+ .short _02004458 - _02004414 - 2; case 1
+ .short _02004458 - _02004414 - 2; case 2
+ .short _02004458 - _02004414 - 2; case 3
+_0200441C:
+ mov r0, #0x0
+ bl FUN_0200516C
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ bl FUN_020044D4
+ mov r0, #0x0
+ strh r0, [r7, #0x0]
+ b _020044A0
+_02004430:
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ bl FUN_02004648
+ b _020044A0
+_0200443A:
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ bl FUN_02004680
+ b _020044A0
+_02004444:
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ bl FUN_020046A0
+ b _020044A0
+_0200444E:
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ bl FUN_020046C4
+ b _020044A0
+_02004458:
+ add r0, r4, #0x0
+ bl FUN_020046E8
+ b _020044A0
+_02004460:
+ mov r0, #0x1
+ bl FUN_0200516C
+ add r0, r4, #0x0
+ add r1, r5, #0x0
+ add r2, r6, #0x0
+ bl FUN_02004704
+ b _020044A0
+_02004472:
+ mov r0, #0x2
+ bl FUN_0200516C
+ add r0, r4, #0x0
+ add r1, r5, #0x0
+ add r2, r6, #0x0
+ bl FUN_02004704
+ b _020044A0
+_02004484:
+ mov r0, #0x0
+ bl FUN_0200516C
+ add r0, r4, #0x0
+ add r1, r5, #0x0
+ add r2, r6, #0x0
+ bl FUN_02004704
+ b _020044A0
+_02004496:
+ add r0, r4, #0x0
+ add r1, r5, #0x0
+ add r2, r6, #0x0
+ bl FUN_02004704
+_020044A0:
+ mov r0, #0x1
+ add sp, #0x8
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_020044A8
+FUN_020044A8: ; 0x020044A8
+ push {r4, lr}
+ add r4, r0, #0x0
+ mov r0, #0x17
+ bl FUN_02003D38
+ ldr r0, [r0, #0x0]
+ bl FUN_02003F64
+ mov r0, #0x18
+ bl FUN_02003D38
+ bl FUN_02003F3C
+ add r0, r4, #0x0
+ bl FUN_02004180
+ mov r0, #0x19
+ bl FUN_02003D38
+ bl FUN_02003F3C
+ pop {r4, pc}
+
+ thumb_func_start FUN_020044D4
+FUN_020044D4: ; 0x020044D4
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ mov r0, #0xb
+ bl FUN_02003D38
+ add r6, r0, #0x0
+ mov r0, #0x17
+ bl FUN_02003D38
+ mov r0, #0x1f
+ bl FUN_02003D38
+ mov r0, #0x0
+ bl FUN_02003FF4
+ bl FUN_020048EC
+ add r4, r0, #0x0
+ ldrb r0, [r6, #0x0]
+ cmp r0, #0x0
+ bne _0200450E
+ cmp r4, r5
+ bne _0200450E
+ bl FUN_02004140
+ mov r1, #0x12
+ lsl r1, r1, #0x6
+ cmp r0, r1
+ bne _02004566
+_0200450E:
+ mov r0, #0x1
+ bl FUN_02004DBC
+ bl FUN_02005454
+ cmp r4, r5
+ beq _02004528
+ mov r0, #0x1
+ mov r1, #0x0
+ bl FUN_020047C8
+ bl FUN_0200541C
+_02004528:
+ ldrb r0, [r6, #0x0]
+ cmp r0, #0x1
+ bne _02004560
+ mov r0, #0x2
+ bl FUN_02004748
+ bl FUN_02003F64
+ mov r0, #0x4
+ bl FUN_02004180
+ mov r0, #0x19
+ bl FUN_02003D38
+ bl FUN_02003F3C
+ cmp r4, r5
+ beq _02004554
+ mov r0, #0x1
+ mov r1, #0x0
+ bl FUN_020047C8
+_02004554:
+ lsl r1, r4, #0x10
+ add r0, r5, #0x0
+ lsr r1, r1, #0x10
+ bl FUN_02004568
+ pop {r4-r6, pc}
+_02004560:
+ add r0, r5, #0x0
+ bl FUN_0200521C
+_02004566:
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_02004568
+FUN_02004568: ; 0x02004568
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ mov r0, #0x1f
+ bl FUN_02003D38
+ add r4, r0, #0x0
+ ldrh r0, [r4, #0x0]
+ bl FUN_02004900
+ ldr r1, _020045C0 ; =0x000003E9
+ cmp r0, r1
+ beq _02004594
+ add r1, r1, #0x2
+ cmp r0, r1
+ beq _02004594
+ add r0, r5, #0x0
+ mov r1, #0x4
+ bl FUN_02003FA8
+ bl ErrorHandling
+ b _0200459C
+_02004594:
+ ldrh r0, [r4, #0x0]
+ mov r1, #0x6
+ bl FUN_02003FA8
+_0200459C:
+ mov r0, #0x1a
+ bl FUN_02003D38
+ bl FUN_02003F3C
+ mov r0, #0x1
+ mov r1, #0x0
+ bl FUN_020047C8
+ mov r0, #0x7f
+ mov r1, #0x28
+ mov r2, #0x0
+ bl FUN_0200538C
+ mov r0, #0x0
+ bl FUN_02004DBC
+ pop {r3-r5, pc}
+ .balign 4
+_020045C0: .word 0x000003E9
+
+ thumb_func_start FUN_020045C4
+FUN_020045C4: ; 0x020045C4
+ push {r3-r7, lr}
+ add r7, r0, #0x0
+ mov r0, #0x12
+ add r5, r1, #0x0
+ bl FUN_02003D38
+ add r6, r0, #0x0
+ mov r0, #0x1f
+ bl FUN_02003D38
+ add r4, r0, #0x0
+ ldrb r0, [r6, #0x0]
+ cmp r0, #0x1
+ beq _020045E4
+ cmp r5, #0x0
+ bne _02004642
+_020045E4:
+ mov r0, #0x1
+ bl FUN_02004748
+ bl FUN_02003F64
+ ldrh r0, [r4, #0x0]
+ mov r1, #0x2
+ bl FUN_02003FA8
+ mov r0, #0x18
+ bl FUN_02003D38
+ bl FUN_02003F3C
+ mov r0, #0x4
+ bl FUN_02004180
+ mov r0, #0x19
+ bl FUN_02003D38
+ bl FUN_02003F3C
+ ldrh r0, [r4, #0x0]
+ bl FUN_02004900
+ ldr r1, _02004644 ; =0x000003E9
+ cmp r0, r1
+ beq _02004630
+ add r1, r1, #0x2
+ cmp r0, r1
+ beq _02004630
+ add r0, r7, #0x0
+ mov r1, #0x4
+ bl FUN_02003FA8
+ bl ErrorHandling
+ b _02004638
+_02004630:
+ ldrh r0, [r4, #0x0]
+ mov r1, #0x4
+ bl FUN_02003FA8
+_02004638:
+ mov r0, #0x1a
+ bl FUN_02003D38
+ bl FUN_02003F3C
+_02004642:
+ pop {r3-r7, pc}
+ .balign 4
+_02004644: .word 0x000003E9
+
+ thumb_func_start FUN_02004648
+FUN_02004648: ; 0x02004648
+ push {r4, lr}
+ add r4, r0, #0x0
+ mov r0, #0x17
+ bl FUN_02003D38
+ bl FUN_020051AC
+ mov r0, #0x2
+ bl FUN_02004748
+ bl FUN_02003F64
+ mov r0, #0x5
+ bl FUN_02004180
+ mov r0, #0x19
+ bl FUN_02003D38
+ bl FUN_02003F3C
+ mov r0, #0x1
+ bl FUN_02004DBC
+ add r0, r4, #0x0
+ bl FUN_0200521C
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02004680
+FUN_02004680: ; 0x02004680
+ push {r4, lr}
+ add r4, r0, #0x0
+ mov r0, #0x17
+ bl FUN_02003D38
+ bl FUN_0200541C
+ bl FUN_02004810
+ mov r0, #0x4
+ bl FUN_020044A8
+ add r0, r4, #0x0
+ bl FUN_0200521C
+ pop {r4, pc}
+
+ thumb_func_start FUN_020046A0
+FUN_020046A0: ; 0x020046A0
+ push {r4, lr}
+ add r4, r0, #0x0
+ mov r0, #0x17
+ bl FUN_02003D38
+ bl FUN_0200541C
+ mov r0, #0x6
+ bl FUN_020044A8
+ mov r0, #0x1
+ bl FUN_02004DBC
+ add r0, r4, #0x0
+ bl FUN_0200521C
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_020046C4
+FUN_020046C4: ; 0x020046C4
+ push {r4, lr}
+ add r4, r0, #0x0
+ mov r0, #0x17
+ bl FUN_02003D38
+ bl FUN_0200541C
+ mov r0, #0x7
+ bl FUN_020044A8
+ mov r0, #0x1
+ bl FUN_02004DBC
+ add r0, r4, #0x0
+ bl FUN_0200521C
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_020046E8
+FUN_020046E8: ; 0x020046E8
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl FUN_02004738
+ add r0, r4, #0x0
+ bl FUN_02004180
+ mov r0, #0x1b
+ bl FUN_02003D38
+ bl FUN_02003F3C
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02004704
+FUN_02004704: ; 0x02004704
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ mov r0, #0x17
+ add r4, r1, #0x0
+ bl FUN_02003D38
+ bl FUN_0200541C
+ add r0, r5, #0x0
+ bl FUN_020044A8
+ add r0, r4, #0x0
+ bl FUN_0200521C
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_02004724
+FUN_02004724: ; 0x02004724
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl FUN_02003D30
+ bl FUN_020051AC
+ add r0, r4, #0x0
+ bl FUN_0200521C
+ pop {r4, pc}
+
+ thumb_func_start FUN_02004738
+FUN_02004738: ; 0x02004738
+ push {r3, lr}
+ mov r0, #0x4
+ bl FUN_02004748
+ bl FUN_02003F64
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_02004748
+FUN_02004748: ; 0x02004748
+ push {r3-r5, lr}
+ add r4, r0, #0x0
+ bl FUN_02003D30
+ cmp r4, #0x7
+ blt _02004762
+ bl ErrorHandling
+ mov r0, #0x1a
+ bl FUN_02003D38
+ ldr r0, [r0, #0x0]
+ pop {r3-r5, pc}
+_02004762:
+ cmp r4, #0x6
+ bhi _020047C4
+ add r0, r4, r4
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02004772: ; jump table (using 16-bit offset)
+ .short _02004780 - _02004772 - 2; case 0
+ .short _0200478A - _02004772 - 2; case 1
+ .short _02004794 - _02004772 - 2; case 2
+ .short _0200479E - _02004772 - 2; case 3
+ .short _020047A8 - _02004772 - 2; case 4
+ .short _020047B2 - _02004772 - 2; case 5
+ .short _020047BC - _02004772 - 2; case 6
+_02004780:
+ mov r0, #0x16
+ bl FUN_02003D38
+ add r5, r0, #0x0
+ b _020047C4
+_0200478A:
+ mov r0, #0x17
+ bl FUN_02003D38
+ add r5, r0, #0x0
+ b _020047C4
+_02004794:
+ mov r0, #0x18
+ bl FUN_02003D38
+ add r5, r0, #0x0
+ b _020047C4
+_0200479E:
+ mov r0, #0x19
+ bl FUN_02003D38
+ add r5, r0, #0x0
+ b _020047C4
+_020047A8:
+ mov r0, #0x1a
+ bl FUN_02003D38
+ add r5, r0, #0x0
+ b _020047C4
+_020047B2:
+ mov r0, #0x1b
+ bl FUN_02003D38
+ add r5, r0, #0x0
+ b _020047C4
+_020047BC:
+ mov r0, #0x1c
+ bl FUN_02003D38
+ add r5, r0, #0x0
+_020047C4:
+ ldr r0, [r5, #0x0]
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_020047C8
+FUN_020047C8: ; 0x020047C8
+ push {r4-r6, lr}
+ add r5, r1, #0x0
+ cmp r0, #0x1
+ bne _020047DC
+ mov r0, #0xb
+ bl FUN_02003D38
+ add r6, r0, #0x0
+ mov r4, #0x0
+ b _020047EA
+_020047DC:
+ cmp r0, #0x7
+ bne _0200480E
+ mov r0, #0xc
+ bl FUN_02003D38
+ add r6, r0, #0x0
+ mov r4, #0x7
+_020047EA:
+ cmp r5, #0x0
+ bne _02004800
+ add r0, r4, #0x0
+ bl FUN_02003FF4
+ bl FUN_020048EC
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ bl FUN_02004110
+_02004800:
+ add r0, r4, #0x0
+ bl FUN_02003FF4
+ add r1, r5, #0x0
+ blx FUN_020C0F8C
+ strb r5, [r6, #0x0]
+_0200480E:
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_02004810
+FUN_02004810: ; 0x02004810
+ push {r4, lr}
+ mov r0, #0xb
+ bl FUN_02003D38
+ add r4, r0, #0x0
+ mov r0, #0xc
+ bl FUN_02003D38
+ mov r1, #0x0
+ strb r1, [r4, #0x0]
+ strb r1, [r0, #0x0]
+ pop {r4, pc}
+
+ thumb_func_start FUN_02004828
+FUN_02004828: ; 0x02004828
+ push {r3-r5, lr}
+ add r5, r1, #0x0
+ add r4, r2, #0x0
+ bl FUN_02003FF4
+ add r1, r5, #0x0
+ add r2, r4, #0x0
+ blx FUN_020C0EF4
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_0200483C
+FUN_0200483C: ; 0x0200483C
+ push {r4, lr}
+ add r4, r1, #0x0
+ bpl _02004844
+ mov r4, #0x0
+_02004844:
+ cmp r4, #0x7f
+ ble _0200484A
+ mov r4, #0x7f
+_0200484A:
+ bl FUN_02003FF4
+ add r1, r4, #0x0
+ blx FUN_020C0F30
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02004858
+FUN_02004858: ; 0x02004858
+ push {r3-r5, lr}
+ add r5, r1, #0x0
+ blx FUN_020C23FC
+ cmp r5, #0x1
+ beq _02004868
+ cmp r5, #0x8
+ bne _0200486C
+_02004868:
+ mov r4, #0x7f
+ b _02004872
+_0200486C:
+ cmp r0, #0x0
+ beq _0200488A
+ ldrb r4, [r0, #0x2]
+_02004872:
+ bl FUN_020313EC
+ cmp r0, #0x1
+ bne _0200488A
+ add r0, r4, #0x0
+ mov r1, #0x5
+ blx _s32_div_f
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_0200483C
+_0200488A:
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_0200488C
+FUN_0200488C: ; 0x0200488C
+ push {r4, lr}
+ add r4, r1, #0x0
+ bl FUN_020048D0
+ bl FUN_02004018
+ add r1, r4, #0x0
+ bl FUN_0200483C
+ pop {r4, pc}
+
+ thumb_func_start FUN_020048A0
+FUN_020048A0: ; 0x020048A0
+ push {r3-r5, lr}
+ add r5, r1, #0x0
+ add r4, r2, #0x0
+ bl FUN_02003FF4
+ mov r2, #0x0
+ mvn r2, r2
+ add r1, r5, #0x0
+ add r3, r2, #0x0
+ str r4, [sp, #0x0]
+ blx FUN_020C3910
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_020048BC
+FUN_020048BC: ; 0x020048BC
+ push {r4, lr}
+ add r4, r0, #0x0
+ bpl _020048C6
+ bl ErrorHandling
+_020048C6:
+ add r0, r4, #0x0
+ blx FUN_020C0F50
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_020048D0
+FUN_020048D0: ; 0x020048D0
+ push {r3, lr}
+ cmp r0, #0x0
+ bne _020048DA
+ mov r0, #0xff
+ pop {r3, pc}
+_020048DA:
+ blx FUN_020C23FC
+ cmp r0, #0x0
+ bne _020048E6
+ mov r0, #0xff
+ pop {r3, pc}
+_020048E6:
+ ldrb r0, [r0, #0x5]
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_020048EC
+FUN_020048EC: ; 0x020048EC
+ ldr r3, _020048F0 ; =FUN_020C0E14
+ bx r3
+ .balign 4
+_020048F0: .word FUN_020C0E14
+
+ thumb_func_start FUN_020048F4
+FUN_020048F4: ; 0x020048F4
+ push {r3, lr}
+ bl FUN_02004900
+ blx FUN_020C22D0
+ pop {r3, pc}
+
+ thumb_func_start FUN_02004900
+FUN_02004900: ; 0x02004900
+ push {r3, lr}
+ blx FUN_020C23FC
+ cmp r0, #0x0
+ bne _0200490E
+ mov r0, #0x0
+ pop {r3, pc}
+_0200490E:
+ ldrh r0, [r0, #0x0]
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_02004914
+FUN_02004914: ; 0x02004914
+ ldr r3, _02004918 ; =MIC_StartAutoSampling
+ bx r3
+ .balign 4
+_02004918: .word MIC_StartAutoSampling
+
+ thumb_func_start FUN_0200491C
+FUN_0200491C: ; 0x0200491C
+ push {r3, lr}
+ bl FUN_02003D30
+ blx MIC_StopAutoSampling
+ pop {r3, pc}
+
+ thumb_func_start FUN_02004928
+FUN_02004928: ; 0x02004928
+ push {r3, lr}
+ blx MIC_DoSamplingAsync
+ pop {r3, pc}
+
+ thumb_func_start FUN_02004930
+FUN_02004930: ; 0x02004930
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ bl FUN_02003D30
+ mov r0, #0xf
+ bl FUN_02003D38
+ add r6, r0, #0x0
+ mov r0, #0x10
+ bl FUN_02003D38
+ add r4, r0, #0x0
+ cmp r5, #0xe
+ beq _02004954
+ cmp r5, #0xf
+ beq _02004954
+ bl ErrorHandling
+_02004954:
+ cmp r5, #0xe
+ bne _02004962
+ ldrb r0, [r6, #0x0]
+ cmp r0, #0x0
+ bne _02004962
+ bl ErrorHandling
+_02004962:
+ cmp r5, #0xf
+ bne _02004970
+ ldrb r0, [r4, #0x0]
+ cmp r0, #0x0
+ bne _02004970
+ bl ErrorHandling
+_02004970:
+ cmp r5, #0xe
+ bne _0200497C
+ mov r0, #0x0
+ bl FUN_02003D38
+ pop {r4-r6, pc}
+_0200497C:
+ mov r0, #0x1
+ bl FUN_02003D38
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_02004984
+FUN_02004984: ; 0x02004984
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ bl FUN_02003D30
+ mov r0, #0xf
+ bl FUN_02003D38
+ add r6, r0, #0x0
+ mov r0, #0x10
+ bl FUN_02003D38
+ add r4, r0, #0x0
+ cmp r5, #0xe
+ beq _020049A8
+ cmp r5, #0xf
+ beq _020049A8
+ bl ErrorHandling
+_020049A8:
+ cmp r5, #0xe
+ bne _020049D6
+ ldrb r0, [r6, #0x0]
+ cmp r0, #0x0
+ bne _020049D0
+ mov r0, #0x0
+ bl FUN_02003D38
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ blx FUN_020C0688
+ str r0, [r4, #0x0]
+ cmp r0, #0x0
+ bne _020049CA
+ mov r0, #0x0
+ pop {r4-r6, pc}
+_020049CA:
+ mov r0, #0x1
+ strb r0, [r6, #0x0]
+ b _020049FE
+_020049D0:
+ bl ErrorHandling
+ b _020049FE
+_020049D6:
+ ldrb r0, [r4, #0x0]
+ cmp r0, #0x0
+ bne _020049FA
+ mov r0, #0x1
+ bl FUN_02003D38
+ add r6, r0, #0x0
+ add r0, r5, #0x0
+ blx FUN_020C0688
+ str r0, [r6, #0x0]
+ cmp r0, #0x0
+ bne _020049F4
+ mov r0, #0x0
+ pop {r4-r6, pc}
+_020049F4:
+ mov r0, #0x1
+ strb r0, [r4, #0x0]
+ b _020049FE
+_020049FA:
+ bl ErrorHandling
+_020049FE:
+ mov r0, #0x1
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_02004A04
+FUN_02004A04: ; 0x02004A04
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ bl FUN_02003D30
+ mov r0, #0xf
+ bl FUN_02003D38
+ add r6, r0, #0x0
+ mov r0, #0x10
+ bl FUN_02003D38
+ add r4, r0, #0x0
+ cmp r5, #0xe
+ beq _02004A2A
+ cmp r5, #0xf
+ beq _02004A2A
+ bl ErrorHandling
+ pop {r4-r6, pc}
+_02004A2A:
+ cmp r5, #0xe
+ bne _02004A4C
+ ldrb r0, [r6, #0x0]
+ cmp r0, #0x1
+ bne _02004A46
+ add r0, r5, #0x0
+ bl FUN_02004930
+ ldr r0, [r0, #0x0]
+ blx FUN_020C0670
+ mov r0, #0x0
+ strb r0, [r6, #0x0]
+ pop {r4-r6, pc}
+_02004A46:
+ bl ErrorHandling
+ pop {r4-r6, pc}
+_02004A4C:
+ ldrb r0, [r4, #0x0]
+ cmp r0, #0x1
+ bne _02004A64
+ add r0, r5, #0x0
+ bl FUN_02004930
+ ldr r0, [r0, #0x0]
+ blx FUN_020C0670
+ mov r0, #0x0
+ strb r0, [r4, #0x0]
+ pop {r4-r6, pc}
+_02004A64:
+ bl ErrorHandling
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_02004A6C
+FUN_02004A6C: ; 0x02004A6C
+ push {r3-r5, lr}
+ sub sp, #0x18
+ add r3, r0, #0x0
+ ldr r0, [r3, #0x10]
+ add r4, r1, #0x0
+ str r0, [sp, #0x0]
+ ldr r0, [r3, #0x14]
+ str r0, [sp, #0x4]
+ ldr r0, [r3, #0x18]
+ str r0, [sp, #0x8]
+ ldr r0, [r3, #0x1c]
+ str r0, [sp, #0xc]
+ ldr r0, [r3, #0x20]
+ str r0, [sp, #0x10]
+ ldr r0, [r3, #0x24]
+ str r0, [sp, #0x14]
+ ldr r0, [r3, #0x0]
+ ldr r1, [r3, #0x4]
+ ldr r2, [r3, #0x8]
+ ldr r0, [r0, #0x0]
+ ldr r3, [r3, #0xc]
+ blx FUN_020C054C
+ add r5, r0, #0x0
+ bne _02004AA4
+ add r0, r4, #0x0
+ bl FUN_02004A04
+_02004AA4:
+ add r0, r5, #0x0
+ add sp, #0x18
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_02004AAC
+FUN_02004AAC: ; 0x02004AAC
+ push {r3, lr}
+ bl FUN_02004930
+ ldr r0, [r0, #0x0]
+ blx FUN_020C0510
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_02004ABC
+FUN_02004ABC: ; 0x02004ABC
+ push {r3, lr}
+ bl FUN_02004930
+ ldr r0, [r0, #0x0]
+ blx FUN_020C03B8
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_02004ACC
+FUN_02004ACC: ; 0x02004ACC
+ push {r4, lr}
+ add r4, r1, #0x0
+ cmp r4, #0x7f
+ bls _02004AD6
+ mov r4, #0x7f
+_02004AD6:
+ bl FUN_02004930
+ ldr r0, [r0, #0x0]
+ add r1, r4, #0x0
+ blx FUN_020C041C
+ pop {r4, pc}
+
+ thumb_func_start FUN_02004AE4
+FUN_02004AE4: ; 0x02004AE4
+ push {r4, lr}
+ add r4, r1, #0x0
+ bl FUN_02004930
+ ldr r0, [r0, #0x0]
+ add r1, r4, #0x0
+ blx FUN_020C044C
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02004AF8
+FUN_02004AF8: ; 0x02004AF8
+ push {r3-r5, lr}
+ add r4, r0, #0x0
+ add r5, r1, #0x0
+ bl FUN_020313EC
+ cmp r0, #0x1
+ bne _02004B20
+ add r0, r4, #0x0
+ bl FUN_02004930
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ mov r1, #0x5
+ blx _s32_div_f
+ add r1, r0, #0x0
+ ldr r0, [r4, #0x0]
+ blx 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
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_02004B30
+FUN_02004B30: ; 0x02004B30
+ push {r3-r7, lr}
+ sub sp, #0x30
+ add r6, r0, #0x0
+ str r1, [sp, #0x0]
+ str r2, [sp, #0x4]
+ add r5, r3, #0x0
+ bl FUN_02003D30
+ mov r0, #0x21
+ bl FUN_02003D38
+ add r4, r0, #0x0
+ cmp r5, #0xe
+ beq _02004B54
+ cmp r5, #0xf
+ beq _02004B54
+ bl ErrorHandling
+_02004B54:
+ add r0, r6, #0x0
+ blx FUN_020C226C
+ add r7, r0, #0x0
+ bne _02004B68
+ bl ErrorHandling
+ add sp, #0x30
+ mov r0, #0x0
+ pop {r3-r7, pc}
+_02004B68:
+ ldr r0, [r7, #0x0]
+ lsl r0, r0, #0x8
+ lsr r0, r0, #0x8
+ blx FUN_020C217C
+ add r6, r0, #0x0
+ bne _02004B80
+ bl ErrorHandling
+ add sp, #0x30
+ mov r0, #0x0
+ pop {r3-r7, pc}
+_02004B80:
+ cmp r5, #0xe
+ bne _02004BCE
+ ldr r0, [sp, #0x48]
+ add r1, r6, #0x0
+ bl FUN_02016998
+ str r0, [r4, #0x0]
+ cmp r0, #0x0
+ bne _02004B9C
+ bl ErrorHandling
+ add sp, #0x30
+ mov r0, #0x0
+ pop {r3-r7, pc}
+_02004B9C:
+ mov r1, #0x0
+ add r2, r6, #0x0
+ blx 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
+ mov r1, #0x0
+ mvn r1, r1
+ cmp r0, r1
+ bne _02004BC6
+ bl ErrorHandling
+ add sp, #0x30
+ mov r0, #0x0
+ pop {r3-r7, pc}
+_02004BC6:
+ ldr r0, [r4, #0x0]
+ add r1, r6, #0x0
+ bl FUN_02004C1C
+_02004BCE:
+ add r0, r5, #0x0
+ bl FUN_02004930
+ mov r1, #0x0
+ str r1, [sp, #0xc]
+ str r0, [sp, #0x8]
+ ldr r0, [r4, #0x0]
+ str r0, [sp, #0x10]
+ ldr r0, _02004C18 ; =0x00003443
+ str r1, [sp, #0x14]
+ str r0, [sp, #0x20]
+ ldr r0, [sp, #0x0]
+ str r1, [sp, #0x18]
+ str r0, [sp, #0x24]
+ mov r0, #0x6
+ lsl r0, r0, #0xc
+ str r0, [sp, #0x28]
+ ldr r0, [sp, #0x4]
+ add r1, r5, #0x0
+ str r0, [sp, #0x2c]
+ add r0, sp, #0x8
+ str r6, [sp, #0x1c]
+ bl FUN_02004A6C
+ add r4, r0, #0x0
+ ldr r1, [sp, #0x0]
+ add r0, r5, #0x0
+ bl FUN_02004AF8
+ mov r0, #0xe
+ bl FUN_02003D38
+ mov r1, #0x1
+ strb r1, [r0, #0x0]
+ add r0, r4, #0x0
+ add sp, #0x30
+ pop {r3-r7, pc}
+ .balign 4
+_02004C18: .word 0x00003443
+
+ thumb_func_start FUN_02004C1C
+FUN_02004C1C: ; 0x02004C1C
+ push {r3-r6}
+ mov r5, #0x0
+ lsr r6, r1, #0x1
+ beq _02004C36
+ sub r2, r1, #0x1
+_02004C26:
+ sub r3, r2, r5
+ ldrb r4, [r0, r5]
+ ldrb r1, [r0, r3]
+ strb r1, [r0, r5]
+ add r5, r5, #0x1
+ strb r4, [r0, r3]
+ cmp r5, r6
+ blo _02004C26
+_02004C36:
+ pop {r3-r6}
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02004C3C
+FUN_02004C3C: ; 0x02004C3C
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ bl FUN_02003D30
+ mov r0, #0xe
+ bl FUN_02003D38
+ add r4, r0, #0x0
+ mov r0, #0x21
+ bl FUN_02003D38
+ add r6, r0, #0x0
+ cmp r5, #0xe
+ beq _02004C60
+ cmp r5, #0xf
+ beq _02004C60
+ bl ErrorHandling
+_02004C60:
+ add r0, r5, #0x0
+ bl FUN_02004AAC
+ ldrb r0, [r4, #0x0]
+ cmp r0, #0x1
+ bne _02004C76
+ mov r0, #0x0
+ strb r0, [r4, #0x0]
+ ldr r0, [r6, #0x0]
+ bl FUN_02016A18
+_02004C76:
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_02004C78
+FUN_02004C78: ; 0x02004C78
+ ldr r3, _02004C7C ; =FUN_020C1E58
+ bx r3
+ .balign 4
+_02004C7C: .word FUN_020C1E58
+
+ thumb_func_start FUN_02004C80
+FUN_02004C80: ; 0x02004C80
+ push {r3-r4, lr}
+ sub sp, #0x4
+ add r4, r0, #0x0
+ bl FUN_02003D30
+ mov r0, #0x3
+ bl FUN_02003D38
+ mov r1, #0x1
+ mov r3, #0xfa
+ lsl r1, r1, #0xc
+ mov r2, #0x0
+ lsl r3, r3, #0x6
+ str r4, [sp, #0x0]
+ blx FUN_020C1FF0
+ add sp, #0x4
+ pop {r3-r4, pc}
+
+ thumb_func_start FUN_02004CA4
+FUN_02004CA4: ; 0x02004CA4
+ ldr r3, _02004CA8 ; =FUN_020C1F54
+ bx r3
+ .balign 4
+_02004CA8: .word FUN_020C1F54
+
+ thumb_func_start FUN_02004CAC
+FUN_02004CAC: ; 0x02004CAC
+ ldr r3, _02004CB0 ; =FUN_020C1FA4
+ bx r3
+ .balign 4
+_02004CB0: .word FUN_020C1FA4
+
+ thumb_func_start FUN_02004CB4
+FUN_02004CB4: ; 0x02004CB4
+ push {r3-r4, lr}
+ sub sp, #0xc
+ bl FUN_02003D30
+ mov r0, #0x4
+ bl FUN_02003D38
+ mov r1, #0x0
+ mov r2, #0x1c
+ blx MI_CpuFill8
+ mov r0, #0x3
+ bl FUN_02003D38
+ add r4, r0, #0x0
+ mov r0, #0x4
+ bl FUN_02003D38
+ mov r2, #0x2
+ ldr r1, _02004CF4 ; =FUN_02005068
+ str r2, [sp, #0x0]
+ str r1, [sp, #0x4]
+ str r0, [sp, #0x8]
+ lsl r1, r2, #0xb
+ ldr r3, _02004CF8 ; =0x000055F0
+ add r0, r4, #0x0
+ mov r2, #0x0
+ blx FUN_020C1EA4
+ add sp, #0xc
+ pop {r3-r4, pc}
+ nop
+_02004CF4: .word FUN_02005068
+_02004CF8: .word 0x000055F0
+
+ thumb_func_start FUN_02004CFC
+FUN_02004CFC: ; 0x02004CFC
+ ldr r3, _02004D00 ; =FUN_020C1E68
+ bx r3
+ .balign 4
+_02004D00: .word FUN_020C1E68
+
+ thumb_func_start FUN_02004D04
+FUN_02004D04: ; 0x02004D04
+ push {r4, lr}
+ add r4, r0, #0x0
+ mov r0, #0x13
+ bl FUN_02003D38
+ cmp r4, #0x8
+ ble _02004D16
+ mov r4, #0x8
+ b _02004D1C
+_02004D16:
+ cmp r4, #0x0
+ bge _02004D1C
+ mov r4, #0x0
+_02004D1C:
+ strb r4, [r0, #0x0]
+ pop {r4, pc}
+
+ thumb_func_start FUN_02004D20
+FUN_02004D20: ; 0x02004D20
+ push {r3-r5, lr}
+ add r5, r1, #0x0
+ add r4, r2, #0x0
+ bl FUN_02003FF4
+ add r1, r5, #0x0
+ add r2, r4, #0x0
+ blx FUN_020C0EA4
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_02004D34
+FUN_02004D34: ; 0x02004D34
+ push {r3-r5, lr}
+ add r5, r1, #0x0
+ add r4, r2, #0x0
+ bl FUN_020048D0
+ bl FUN_02004018
+ add r1, r5, #0x0
+ add r2, r4, #0x0
+ bl FUN_02004D20
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_02004D4C
+FUN_02004D4C: ; 0x02004D4C
+ push {r3-r5, lr}
+ add r5, r1, #0x0
+ add r4, r2, #0x0
+ bl FUN_02003FF4
+ add r1, r5, #0x0
+ add r2, r4, #0x0
+ blx FUN_020C0E7C
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_02004D60
+FUN_02004D60: ; 0x02004D60
+ push {r4, lr}
+ add r4, r0, #0x0
+ blx FUN_020C0174
+ ldr r0, _02004D70 ; =0x021C3DD8
+ str r4, [r0, #0x0]
+ pop {r4, pc}
+ nop
+_02004D70: .word 0x021C3DD8
+
+ thumb_func_start FUN_02004D74
+FUN_02004D74: ; 0x02004D74
+ push {r4, lr}
+ add r4, r0, #0x0
+ mov r0, #0x6
+ bl FUN_02003D38
+ str r4, [r0, #0x0]
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02004D84
+FUN_02004D84: ; 0x02004D84
+ push {r4, lr}
+ add r4, r0, #0x0
+ mov r0, #0x7
+ bl FUN_02003D38
+ str r4, [r0, #0x0]
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02004D94
+FUN_02004D94: ; 0x02004D94
+ push {r3, lr}
+ mov r0, #0x7
+ bl FUN_02003D38
+ ldrh r1, [r0, #0x0]
+ cmp r1, #0x0
+ bne _02004DAA
+ mov r1, #0x0
+ strh r1, [r0, #0x0]
+ add r0, r1, #0x0
+ pop {r3, pc}
+_02004DAA:
+ sub r1, r1, #0x1
+ strh r1, [r0, #0x0]
+ ldrh r0, [r0, #0x0]
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_02004DB4
+FUN_02004DB4: ; 0x02004DB4
+ ldr r0, _02004DB8 ; =0x021C3DE0
+ bx lr
+ .balign 4
+_02004DB8: .word 0x021C3DE0
+
+ thumb_func_start FUN_02004DBC
+FUN_02004DBC: ; 0x02004DBC
+ push {r4, lr}
+ add r4, r0, #0x0
+ mov r0, #0x12
+ bl FUN_02003D38
+ strb r4, [r0, #0x0]
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02004DCC
+FUN_02004DCC: ; 0x02004DCC
+ push {r4-r7, lr}
+ sub sp, #0xc
+ add r5, r0, #0x0
+ mov r0, #0x15
+ add r6, r1, #0x0
+ add r7, r2, #0x0
+ str r3, [sp, #0x8]
+ bl FUN_02003D38
+ add r4, r0, #0x0
+ add r0, sp, #0x10
+ ldrb r0, [r0, #0x10]
+ ldr r3, [sp, #0x8]
+ add r1, r6, #0x0
+ str r0, [sp, #0x0]
+ ldr r0, [sp, #0x24]
+ add r2, r7, #0x0
+ str r0, [sp, #0x4]
+ add r0, r5, #0x0
+ bl FUN_02004E44
+ mov r0, #0x0
+ strb r0, [r4, #0x0]
+ mov r0, #0x5
+ bl FUN_02003CE8
+ mov r0, #0x1
+ add sp, #0xc
+ pop {r4-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_02004E08
+FUN_02004E08: ; 0x02004E08
+ push {r4-r7, lr}
+ sub sp, #0xc
+ add r5, r0, #0x0
+ mov r0, #0x8
+ add r6, r1, #0x0
+ add r7, r2, #0x0
+ str r3, [sp, #0x8]
+ bl FUN_02003D38
+ add r4, r0, #0x0
+ add r0, sp, #0x10
+ ldrb r0, [r0, #0x14]
+ ldr r3, [sp, #0x8]
+ add r1, r6, #0x0
+ str r0, [sp, #0x0]
+ ldr r0, [sp, #0x28]
+ add r2, r7, #0x0
+ str r0, [sp, #0x4]
+ add r0, r5, #0x0
+ bl FUN_02004E44
+ ldr r0, [sp, #0x20]
+ str r0, [r4, #0x0]
+ mov r0, #0x6
+ bl FUN_02003CE8
+ mov r0, #0x1
+ add sp, #0xc
+ pop {r4-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_02004E44
+FUN_02004E44: ; 0x02004E44
+ push {r3-r7, lr}
+ add r6, r2, #0x0
+ mov r0, #0x2
+ add r5, r1, #0x0
+ add r7, r3, #0x0
+ bl FUN_02003D38
+ add r4, r0, #0x0
+ mov r0, #0x0
+ add r1, r6, #0x0
+ bl FUN_020053CC
+ mov r0, #0x0
+ bl FUN_02004110
+ add r0, r5, #0x0
+ bl FUN_02004130
+ add r0, r7, #0x0
+ bl FUN_02004D84
+ add r0, r5, #0x0
+ bl FUN_020048F4
+ str r0, [r4, #0x0]
+ add r0, sp, #0x8
+ ldrb r0, [r0, #0x10]
+ bl FUN_02004DBC
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_02004E80
+FUN_02004E80: ; 0x02004E80
+ cmp r0, #0x0
+ bne _02004E88
+ mov r0, #0x0
+ bx lr
+_02004E88:
+ add r0, #0xc
+ bx lr
+
+ thumb_func_start FUN_02004E8C
+FUN_02004E8C: ; 0x02004E8C
+ cmp r0, #0x0
+ bne _02004E94
+ mov r0, #0x0
+ bx lr
+_02004E94:
+ ldr r0, [r0, #0x8]
+ bx lr
+
+ thumb_func_start FUN_02004E98
+FUN_02004E98: ; 0x02004E98
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ mov r0, #0x5
+ bl FUN_02004748
+ bl FUN_02003F64
+ lsl r0, r5, #0x10
+ lsr r4, r0, #0x10
+ ldr r0, _02004ECC ; =0x000001B9
+ cmp r4, r0
+ beq _02004EBC
+ add r0, #0x36
+ cmp r5, r0
+ bgt _02004EBA
+ cmp r5, #0x0
+ bne _02004EBC
+_02004EBA:
+ mov r4, #0x1
+_02004EBC:
+ add r0, r4, #0x0
+ bl FUN_02003FC4
+ add r0, r4, #0x0
+ bl FUN_02004ED0
+ pop {r3-r5, pc}
+ nop
+_02004ECC: .word 0x000001B9
+
+ thumb_func_start FUN_02004ED0
+FUN_02004ED0: ; 0x02004ED0
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ mov r0, #0x20
+ bl FUN_02003D38
+ add r4, r0, #0x0
+ lsl r0, r5, #0x10
+ ldr r1, _02004F24 ; =0x000001B9
+ lsr r0, r0, #0x10
+ cmp r0, r1
+ beq _02004EF2
+ add r1, #0x36
+ cmp r5, r1
+ bgt _02004EF0
+ cmp r5, #0x0
+ bne _02004EF2
+_02004EF0:
+ mov r0, #0x1
+_02004EF2:
+ blx FUN_020C226C
+ cmp r0, #0x0
+ bne _02004F02
+ bl ErrorHandling
+ mov r0, #0x0
+ pop {r3-r5, pc}
+_02004F02:
+ ldr r0, [r0, #0x0]
+ lsl r0, r0, #0x8
+ lsr r0, r0, #0x8
+ blx FUN_020C20DC
+ cmp r0, #0x0
+ bne _02004F18
+ bl ErrorHandling
+ mov r0, #0x0
+ pop {r3-r5, pc}
+_02004F18:
+ mov r1, #0x0
+ blx SND_GetWaveDataAddress
+ str r0, [r4, #0x0]
+ pop {r3-r5, pc}
+ nop
+_02004F24: .word 0x000001B9
+
+ thumb_func_start FUN_02004F28
+FUN_02004F28: ; 0x02004F28
+ push {r4-r6, lr}
+ mov r0, #0x1
+ add r5, r1, #0x0
+ add r6, r2, #0x0
+ bl FUN_02004F64
+ mov r1, #0x3
+ add r4, r0, #0x0
+ add r0, r6, #0x0
+ lsl r1, r1, #0x8
+ ldr r5, [r5, #0x8]
+ blx _s32_div_f
+ lsl r1, r0, #0x1
+ bpl _02004F50
+ mov r0, #0x20
+ blx _s32_div_f
+ neg r0, r0
+ b _02004F5A
+_02004F50:
+ cmp r1, #0x0
+ bne _02004F58
+ mov r0, #0x20
+ b _02004F5A
+_02004F58:
+ lsl r0, r1, #0x5
+_02004F5A:
+ mul r0, r4
+ cmp r0, r5
+ blo _02004F62
+ mov r0, #0x0
+_02004F62:
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_02004F64
+FUN_02004F64: ; 0x02004F64
+ push {r3, lr}
+ bl FUN_02003FF4
+ blx FUN_020C0DD4
+ pop {r3, pc}
+
+ thumb_func_start FUN_02004F70
+FUN_02004F70: ; 0x02004F70
+ push {r3-r7, lr}
+ sub sp, #0x8
+ str r0, [sp, #0x0]
+ add r4, r1, #0x0
+ add r6, r2, #0x0
+ ldr r1, [sp, #0x0]
+ mov r0, #0x1
+ add r2, r3, #0x0
+ bl FUN_02004F28
+ add r1, r0, #0x0
+ mov r12, r0
+ sub r1, #0x64
+ bpl _02004F8E
+ mov r1, #0x0
+_02004F8E:
+ ldr r0, [sp, #0x0]
+ mov r3, #0x0
+ add r0, r0, r1
+ ldrb r0, [r0, #0xc]
+ add r7, r3, #0x0
+ cmp r0, #0x80
+ bhs _02004FA0
+ mov r0, #0x1
+ b _02004FA2
+_02004FA0:
+ sub r0, r3, #0x1
+_02004FA2:
+ lsl r0, r0, #0x18
+ asr r5, r0, #0x18
+ mov r0, r12
+ cmp r1, r0
+ bhs _02005022
+_02004FAC:
+ mov r0, #0x0
+ cmp r5, #0x0
+ ble _02004FC6
+ ldr r2, [sp, #0x0]
+ add r2, r2, r1
+ str r2, [sp, #0x4]
+ ldrb r2, [r2, #0xc]
+ cmp r2, #0x80
+ bls _02004FC2
+ mov r0, #0x1
+ b _02004FD8
+_02004FC2:
+ add r3, r3, #0x1
+ b _02004FD8
+_02004FC6:
+ ldr r2, [sp, #0x0]
+ add r2, r2, r1
+ str r2, [sp, #0x4]
+ ldrb r2, [r2, #0xc]
+ cmp r2, #0x80
+ bhs _02004FD6
+ mov r0, #0x1
+ b _02004FD8
+_02004FD6:
+ add r3, r3, #0x1
+_02004FD8:
+ cmp r0, #0x1
+ bne _0200501A
+ ldr r5, _02005064 ; =0x020ECB8C
+ mov r2, #0x0
+_02004FE0:
+ ldrb r0, [r5, #0x0]
+ cmp r3, r0
+ bge _02004FEA
+ add r7, r2, #0x0
+ b _02004FF2
+_02004FEA:
+ add r2, r2, #0x1
+ add r5, r5, #0x1
+ cmp r2, #0x9
+ blt _02004FE0
+_02004FF2:
+ cmp r7, r6
+ blt _02004FF8
+ sub r7, r6, #0x1
+_02004FF8:
+ cmp r3, #0x0
+ beq _02005006
+ sub r0, r6, #0x1
+ sub r0, r0, r7
+ ldrb r2, [r4, r0]
+ add r2, r2, #0x1
+ strb r2, [r4, r0]
+_02005006:
+ ldr r0, [sp, #0x4]
+ mov r3, #0x0
+ ldrb r0, [r0, #0xc]
+ cmp r0, #0x80
+ bhs _02005014
+ mov r0, #0x1
+ b _02005016
+_02005014:
+ sub r0, r3, #0x1
+_02005016:
+ lsl r0, r0, #0x18
+ asr r5, r0, #0x18
+_0200501A:
+ add r1, r1, #0x2
+ mov r0, r12
+ cmp r1, r0
+ blo _02004FAC
+_02005022:
+ mov r2, #0x0
+ cmp r6, #0x0
+ ble _02005038
+ mov r0, #0x9
+_0200502A:
+ ldrb r1, [r4, r2]
+ cmp r1, #0xa
+ blo _02005032
+ strb r0, [r4, r2]
+_02005032:
+ add r2, r2, #0x1
+ cmp r2, r6
+ blt _0200502A
+_02005038:
+ sub r2, r6, #0x1
+ mov r3, #0x0
+ cmp r2, #0x0
+ ble _02005060
+_02005040:
+ ldrb r0, [r4, r3]
+ add r1, r4, r3
+ cmp r0, #0x0
+ bne _0200505A
+ ldrb r0, [r1, #0x1]
+ cmp r0, #0x0
+ beq _0200505A
+ add r0, r3, #0x1
+ ldrb r0, [r4, r0]
+ add sp, #0x8
+ lsr r0, r0, #0x1
+ strb r0, [r1, #0x0]
+ pop {r3-r7, pc}
+_0200505A:
+ add r3, r3, #0x1
+ cmp r3, r2
+ blt _02005040
+_02005060:
+ add sp, #0x8
+ pop {r3-r7, pc}
+ .balign 4
+_02005064: .word 0x020ECB8C
+
+ thumb_func_start FUN_02005068
+FUN_02005068: ; 0x02005068
+ push {r3-r7, lr}
+ sub sp, #0x30
+ add r5, r0, #0x0
+ ldr r0, [sp, #0x48]
+ add r6, r1, #0x0
+ str r0, [sp, #0xc]
+ mov r0, #0x13
+ str r2, [sp, #0x0]
+ add r4, r3, #0x0
+ bl FUN_02003D38
+ add r7, r0, #0x0
+ cmp r4, #0x1
+ beq _0200508A
+ ldr r0, [sp, #0x0]
+ lsr r0, r0, #0x1
+ str r0, [sp, #0x0]
+_0200508A:
+ ldrb r2, [r7, #0x0]
+ cmp r2, #0x0
+ beq _0200515A
+ mov r0, #0x0
+ cmp r2, #0x0
+ ble _020050BC
+ add r1, sp, #0x10
+_02005098:
+ ldr r3, [sp, #0x0]
+ sub r2, r3, r2
+ add r2, r0, r2
+ lsl r2, r2, #0x1
+ ldrsh r2, [r5, r2]
+ strh r2, [r1, #0x0]
+ ldrb r3, [r7, #0x0]
+ ldr r2, [sp, #0x0]
+ sub r2, r2, r3
+ add r2, r0, r2
+ lsl r2, r2, #0x1
+ ldrsh r2, [r6, r2]
+ add r0, r0, #0x1
+ strh r2, [r1, #0x2]
+ ldrb r2, [r7, #0x0]
+ add r1, r1, #0x4
+ cmp r0, r2
+ blt _02005098
+_020050BC:
+ ldr r0, [sp, #0x0]
+ sub r4, r0, #0x1
+ sub r0, r2, #0x1
+ cmp r4, r0
+ blt _02005126
+ lsl r1, r4, #0x1
+ add r0, r5, r1
+ str r0, [sp, #0x8]
+ add r0, r6, r1
+ str r0, [sp, #0x4]
+_020050D0:
+ mov r0, #0x0
+ add r1, r0, #0x0
+ cmp r2, #0x0
+ ble _020050E6
+_020050D8:
+ sub r3, r4, r1
+ lsl r3, r3, #0x1
+ ldrsh r3, [r5, r3]
+ add r1, r1, #0x1
+ add r0, r0, r3
+ cmp r1, r2
+ blt _020050D8
+_020050E6:
+ add r1, r2, #0x0
+ blx _s32_div_f
+ ldr r1, [sp, #0x8]
+ strh r0, [r1, #0x0]
+ mov r0, #0x0
+ ldrb r1, [r7, #0x0]
+ add r2, r0, #0x0
+ cmp r1, #0x0
+ ble _02005108
+_020050FA:
+ sub r3, r4, r2
+ lsl r3, r3, #0x1
+ ldrsh r3, [r6, r3]
+ add r2, r2, #0x1
+ add r0, r0, r3
+ cmp r2, r1
+ blt _020050FA
+_02005108:
+ blx _s32_div_f
+ ldr r1, [sp, #0x4]
+ sub r4, r4, #0x1
+ strh r0, [r1, #0x0]
+ ldr r0, [sp, #0x8]
+ ldrb r2, [r7, #0x0]
+ sub r0, r0, #0x2
+ str r0, [sp, #0x8]
+ add r0, r1, #0x0
+ sub r0, r0, #0x2
+ str r0, [sp, #0x4]
+ sub r0, r2, #0x1
+ cmp r4, r0
+ bge _020050D0
+_02005126:
+ mov r1, #0x0
+ cmp r2, #0x0
+ ble _0200514A
+ add r0, sp, #0x10
+ mov r4, #0x2
+_02005130:
+ mov r2, #0x0
+ ldrsh r3, [r0, r2]
+ ldr r2, [sp, #0xc]
+ add r1, r1, #0x1
+ strh r3, [r2, #0x0]
+ ldrsh r3, [r0, r4]
+ add r0, r0, #0x4
+ strh r3, [r2, #0x2]
+ add r2, r2, #0x4
+ str r2, [sp, #0xc]
+ ldrb r2, [r7, #0x0]
+ cmp r1, r2
+ blt _02005130
+_0200514A:
+ ldr r1, [sp, #0x0]
+ add r0, r5, #0x0
+ blx DC_FlushRange
+ ldr r1, [sp, #0x0]
+ add r0, r6, #0x0
+ blx DC_FlushRange
+_0200515A:
+ add sp, #0x30
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_02005160
+FUN_02005160: ; 0x02005160
+ ldr r3, _02005168 ; =FUN_020C1148
+ add r1, r0, #0x0
+ mov r0, #0x7
+ bx r3
+ .balign 4
+_02005168: .word FUN_020C1148
+
+ thumb_func_start FUN_0200516C
+FUN_0200516C: ; 0x0200516C
+ push {r3, lr}
+ cmp r0, #0x0
+ bne _02005180
+ ldr r0, _020051A4 ; =0x000007FF
+ bl FUN_02005160
+ mov r0, #0x0
+ bl FUN_02004CA4
+ b _0200519C
+_02005180:
+ cmp r0, #0x1
+ ldr r0, _020051A8 ; =0x00007FFF
+ bne _02005192
+ bl FUN_02005160
+ mov r0, #0x1e
+ bl FUN_02004C80
+ b _0200519C
+_02005192:
+ bl FUN_02005160
+ mov r0, #0xf
+ bl FUN_02004C80
+_0200519C:
+ bl FUN_02004C78
+ pop {r3, pc}
+ nop
+_020051A4: .word 0x000007FF
+_020051A8: .word 0x00007FFF
+
+ thumb_func_start FUN_020051AC
+FUN_020051AC: ; 0x020051AC
+ push {r3, lr}
+ bl FUN_02005404
+ cmp r0, #0x0
+ bne _020051E0
+ mov r0, #0x0
+ bl FUN_02003FF4
+ bl FUN_020048EC
+ mov r1, #0x0
+ mvn r1, r1
+ cmp r0, r1
+ beq _020051E0
+ bl FUN_02004124
+ ldr r1, _020051E8 ; =0x0000047E
+ cmp r0, r1
+ beq _020051E0
+ bl FUN_02005454
+ mov r0, #0x1
+ add r1, r0, #0x0
+ bl FUN_020047C8
+ pop {r3, pc}
+_020051E0:
+ bl FUN_0200541C
+ pop {r3, pc}
+ nop
+_020051E8: .word 0x0000047E
+
+ thumb_func_start FUN_020051EC
+FUN_020051EC: ; 0x020051EC
+ ldr r3, _020051F0 ; =FUN_020C1180
+ bx r3
+ .balign 4
+_020051F0: .word FUN_020C1180
+
+ thumb_func_start FUN_020051F4
+FUN_020051F4: ; 0x020051F4
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ bl FUN_020048D0
+ bl FUN_02004018
+ add r4, r0, #0x0
+ bl FUN_02003FF4
+ add r1, r5, #0x0
+ blx FUN_020C3980
+ add r6, r0, #0x0
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_0200526C
+ add r0, r6, #0x0
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_0200521C
+FUN_0200521C: ; 0x0200521C
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ bl FUN_020048D0
+ add r4, r0, #0x0
+ bl FUN_02004018
+ add r6, r0, #0x0
+ cmp r4, #0x7
+ bne _0200523E
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ add r2, r6, #0x0
+ bl FUN_02005288
+ add r4, r0, #0x0
+ b _02005258
+_0200523E:
+ cmp r4, #0x1
+ bne _02005250
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ add r2, r6, #0x0
+ bl FUN_020052B8
+ add r4, r0, #0x0
+ b _02005258
+_02005250:
+ bl ErrorHandling
+ mov r0, #0x0
+ pop {r4-r6, pc}
+_02005258:
+ mov r0, #0x0
+ bl FUN_02004DBC
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ bl FUN_0200526C
+ add r0, r4, #0x0
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_0200526C
+FUN_0200526C: ; 0x0200526C
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ bl FUN_02004110
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_02004858
+ mov r0, #0x1
+ bl FUN_02003CE8
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_02005288
+FUN_02005288: ; 0x02005288
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ mov r0, #0x3
+ add r4, r2, #0x0
+ bl FUN_02004748
+ bl FUN_02003F64
+ add r0, r5, #0x0
+ bl FUN_02003F90
+ mov r0, #0x1a
+ bl FUN_02003D38
+ bl FUN_02003F3C
+ add r0, r4, #0x0
+ bl FUN_02003FF4
+ add r1, r5, #0x0
+ blx FUN_020C3980
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_020052B8
+FUN_020052B8: ; 0x020052B8
+ push {r3-r6, lr}
+ sub sp, #0x4
+ add r5, r0, #0x0
+ mov r0, #0x12
+ add r6, r2, #0x0
+ bl FUN_02003D38
+ mov r0, #0x1f
+ bl FUN_02003D38
+ add r4, r0, #0x0
+ mov r0, #0x0
+ bl FUN_02003FF4
+ bl FUN_020048EC
+ bl FUN_02004900
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_020045C4
+ add r0, r6, #0x0
+ bl FUN_02003FF4
+ add r6, r0, #0x0
+ ldrh r0, [r4, #0x0]
+ bl FUN_02004900
+ mov r1, #0x0
+ mvn r1, r1
+ add r2, r0, #0x0
+ add r0, r6, #0x0
+ add r3, r1, #0x0
+ str r5, [sp, #0x0]
+ blx FUN_020C3910
+ add sp, #0x4
+ pop {r3-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_02005308
+FUN_02005308: ; 0x02005308
+ push {r3-r5, lr}
+ add r5, r1, #0x0
+ cmp r0, #0x4
+ beq _02005318
+ bl ErrorHandling
+ mov r0, #0x0
+ pop {r3-r5, pc}
+_02005318:
+ add r0, r5, #0x0
+ bl FUN_020048D0
+ cmp r0, #0x7
+ beq _0200532A
+ bl ErrorHandling
+ mov r0, #0x0
+ pop {r3-r5, pc}
+_0200532A:
+ add r0, r5, #0x0
+ mov r1, #0x1
+ bl FUN_02003FA8
+ mov r0, #0x7
+ bl FUN_02003FF4
+ add r1, r5, #0x0
+ blx FUN_020C3980
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_02004110
+ mov r0, #0x1
+ bl FUN_02003CE8
+ add r0, r4, #0x0
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_02005350
+FUN_02005350: ; 0x02005350
+ push {r4, lr}
+ add r4, r0, #0x0
+ blx FUN_020C0FDC
+ add r0, r4, #0x0
+ bl FUN_020048D0
+ cmp r0, #0xff
+ beq _0200536E
+ bl FUN_02004018
+ bl FUN_02003FF4
+ blx FUN_020C0F68
+_0200536E:
+ bl FUN_02005374
+ pop {r4, pc}
+
+ thumb_func_start FUN_02005374
+FUN_02005374: ; 0x02005374
+ push {r3, lr}
+ mov r0, #0x0
+ bl FUN_02004110
+ mov r0, #0x0
+ bl FUN_02004130
+ mov r0, #0x0
+ bl FUN_02003CE8
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_0200538C
+FUN_0200538C: ; 0x0200538C
+ push {r3-r7, lr}
+ add r6, r0, #0x0
+ add r5, r1, #0x0
+ add r4, r2, #0x0
+ bl FUN_02004124
+ bl FUN_020048D0
+ cmp r0, #0xff
+ beq _020053C8
+ bl FUN_02004018
+ add r7, r0, #0x0
+ cmp r4, #0x0
+ bne _020053B2
+ mov r1, #0x0
+ add r2, r1, #0x0
+ bl FUN_02004828
+_020053B2:
+ add r0, r7, #0x0
+ add r1, r6, #0x0
+ add r2, r5, #0x0
+ bl FUN_02004828
+ add r0, r5, #0x0
+ bl FUN_02004D74
+ mov r0, #0x3
+ bl FUN_02003CE8
+_020053C8:
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_020053CC
+FUN_020053CC: ; 0x020053CC
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ bl FUN_02004124
+ bl FUN_020048D0
+ add r6, r0, #0x0
+ cmp r6, #0xff
+ beq _02005402
+ bl FUN_02005404
+ cmp r0, #0x0
+ bne _020053FC
+ add r0, r6, #0x0
+ bl FUN_02004018
+ add r1, r5, #0x0
+ add r2, r4, #0x0
+ bl FUN_02004828
+ add r0, r4, #0x0
+ bl FUN_02004D74
+_020053FC:
+ mov r0, #0x4
+ bl FUN_02003CE8
+_02005402:
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_02005404
+FUN_02005404: ; 0x02005404
+ push {r3, lr}
+ mov r0, #0x6
+ bl FUN_02003D38
+ ldrh r0, [r0, #0x0]
+ pop {r3, pc}
+
+ thumb_func_start FUN_02005410
+FUN_02005410: ; 0x02005410
+ push {r3, lr}
+ bl FUN_020048D0
+ bl FUN_020048BC
+ pop {r3, pc}
+
+ thumb_func_start FUN_0200541C
+FUN_0200541C: ; 0x0200541C
+ push {r3-r5, lr}
+ mov r0, #0xf
+ bl FUN_02003D38
+ add r5, r0, #0x0
+ mov r0, #0x10
+ bl FUN_02003D38
+ add r4, r0, #0x0
+ mov r0, #0x0
+ blx FUN_020C0F9C
+ ldrb r0, [r5, #0x0]
+ cmp r0, #0x1
+ bne _02005440
+ mov r0, #0xe
+ bl FUN_02004AAC
+_02005440:
+ ldrb r0, [r4, #0x0]
+ cmp r0, #0x1
+ bne _0200544C
+ mov r0, #0xf
+ bl FUN_02004AAC
+_0200544C:
+ mov r0, #0x0
+ bl FUN_02003CE8
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_02005454
+FUN_02005454: ; 0x02005454
+ push {r3-r7, lr}
+ mov r0, #0xf
+ bl FUN_02003D38
+ add r7, r0, #0x0
+ mov r0, #0x10
+ bl FUN_02003D38
+ add r6, r0, #0x0
+ mov r0, #0x7
+ bl FUN_02003FF4
+ mov r1, #0x0
+ blx FUN_020C10A4
+ bl FUN_02005374
+ mov r5, #0x0
+ add r4, r5, #0x0
+_0200547A:
+ add r0, r5, #0x3
+ add r1, r4, #0x0
+ bl FUN_020054F8
+ add r5, r5, #0x1
+ cmp r5, #0x4
+ blt _0200547A
+ mov r0, #0x0
+ bl FUN_02005614
+ ldrb r0, [r7, #0x0]
+ cmp r0, #0x1
+ bne _0200549A
+ mov r0, #0xe
+ bl FUN_02004AAC
+_0200549A:
+ ldrb r0, [r6, #0x0]
+ cmp r0, #0x1
+ bne _020054A6
+ mov r0, #0xf
+ bl FUN_02004AAC
+_020054A6:
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_020054A8
+FUN_020054A8: ; 0x020054A8
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ bl FUN_020054C8
+ add r6, r0, #0x0
+ ldr r1, _020054C4 ; =0x0000FFFF
+ add r0, r5, #0x0
+ add r2, r4, #0x0
+ bl FUN_02005530
+ add r0, r6, #0x0
+ pop {r4-r6, pc}
+ nop
+_020054C4: .word 0x0000FFFF
+
+ thumb_func_start FUN_020054C8
+FUN_020054C8: ; 0x020054C8
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ bl FUN_020048D0
+ bl FUN_02004018
+ add r4, r0, #0x0
+ bl FUN_02003FF4
+ add r1, r5, #0x0
+ blx FUN_020C3980
+ add r6, r0, #0x0
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_02004858
+ add r0, r6, #0x0
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_020054F0
+FUN_020054F0: ; 0x020054F0
+ ldr r3, _020054F4 ; =FUN_020C0FDC
+ bx r3
+ .balign 4
+_020054F4: .word FUN_020C0FDC
+
+ thumb_func_start FUN_020054F8
+FUN_020054F8: ; 0x020054F8
+ push {r4, lr}
+ add r4, r1, #0x0
+ bl FUN_02003FF4
+ add r1, r4, #0x0
+ blx FUN_020C10A4
+ pop {r4, pc}
+
+ thumb_func_start FUN_02005508
+FUN_02005508: ; 0x02005508
+ push {r3, lr}
+ bl FUN_020048D0
+ bl FUN_020048BC
+ pop {r3, pc}
+
+ thumb_func_start FUN_02005514
+FUN_02005514: ; 0x02005514
+ push {r4, lr}
+ mov r4, #0x0
+_02005518:
+ add r0, r4, #0x3
+ bl FUN_020048BC
+ cmp r0, #0x1
+ bne _02005526
+ mov r0, #0x1
+ pop {r4, pc}
+_02005526:
+ add r4, r4, #0x1
+ cmp r4, #0x4
+ blt _02005518
+ mov r0, #0x0
+ pop {r4, pc}
+
+ thumb_func_start FUN_02005530
+FUN_02005530: ; 0x02005530
+ push {r3-r5, lr}
+ add r5, r1, #0x0
+ add r4, r2, #0x0
+ bl FUN_020048D0
+ bl FUN_02004018
+ bl FUN_02003FF4
+ add r1, r5, #0x0
+ add r2, r4, #0x0
+ blx FUN_020C0E7C
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_0200554C
+FUN_0200554C: ; 0x0200554C
+ push {r3-r7, lr}
+ add r6, r0, #0x0
+ mov r0, #0x3
+ bl FUN_02004018
+ ldr r7, _02005574 ; =0x0000FFFF
+ add r4, r0, #0x0
+ mov r5, #0x0
+_0200555C:
+ add r0, r4, r5
+ bl FUN_02003FF4
+ add r1, r7, #0x0
+ add r2, r6, #0x0
+ blx FUN_020C0E7C
+ add r5, r5, #0x1
+ cmp r5, #0x4
+ blt _0200555C
+ pop {r3-r7, pc}
+ nop
+_02005574: .word 0x0000FFFF
+
+ thumb_func_start FUN_02005578
+FUN_02005578: ; 0x02005578
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ mov r0, #0x11
+ bl FUN_02003D38
+ add r4, r0, #0x0
+ mov r0, #0x23
+ bl FUN_02003D38
+ ldr r1, _02005610 ; =0x000001B9
+ cmp r5, r1
+ beq _0200559C
+ add r1, #0x36
+ cmp r5, r1
+ bhi _0200559A
+ cmp r5, #0x0
+ bne _0200559C
+_0200559A:
+ mov r5, #0x1
+_0200559C:
+ ldr r1, _02005610 ; =0x000001B9
+ cmp r5, r1
+ bne _020055BC
+ mov r1, #0x0
+ ldr r0, [r0, #0x0]
+ mov r2, #0x7f
+ add r3, r1, #0x0
+ bl FUN_02005D48
+ cmp r0, #0x1
+ bne _020055BC
+ mov r0, #0x0
+ bl FUN_02005E80
+ mov r0, #0x1
+ pop {r3-r5, pc}
+_020055BC:
+ ldrb r0, [r4, #0x0]
+ cmp r0, #0x0
+ bne _020055E8
+ mov r0, #0x0
+ bl FUN_02005614
+ mov r0, #0x1
+ bl FUN_02003FF4
+ mov r1, #0x2
+ str r1, [sp, #0x0]
+ sub r1, r1, #0x3
+ add r2, r5, #0x0
+ add r3, r1, #0x0
+ blx FUN_020C3910
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ mov r1, #0x1
+ bl FUN_02004858
+ b _02005606
+_020055E8:
+ mov r0, #0x8
+ bl FUN_02003FF4
+ mov r1, #0x2
+ str r1, [sp, #0x0]
+ sub r1, r1, #0x3
+ add r2, r5, #0x0
+ add r3, r1, #0x0
+ blx FUN_020C3910
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ mov r1, #0x8
+ bl FUN_02004858
+_02005606:
+ mov r0, #0x0
+ bl FUN_02005E80
+ add r0, r4, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+_02005610: .word 0x000001B9
+
+ thumb_func_start FUN_02005614
+FUN_02005614: ; 0x02005614
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ mov r0, #0xf
+ bl FUN_02003D38
+ add r6, r0, #0x0
+ mov r0, #0x10
+ bl FUN_02003D38
+ add r4, r0, #0x0
+ mov r0, #0xe
+ bl FUN_02003D38
+ mov r0, #0x1
+ bl FUN_02003FF4
+ add r1, r5, #0x0
+ blx FUN_020C10A4
+ mov r0, #0x8
+ bl FUN_02003FF4
+ add r1, r5, #0x0
+ blx FUN_020C10A4
+ ldrb r0, [r6, #0x0]
+ cmp r0, #0x1
+ bne _02005658
+ mov r0, #0xe
+ bl FUN_02004C3C
+ mov r0, #0xe
+ bl FUN_02004A04
+_02005658:
+ ldrb r0, [r4, #0x0]
+ cmp r0, #0x1
+ bne _0200566A
+ mov r0, #0xf
+ bl FUN_02004C3C
+ mov r0, #0xf
+ bl FUN_02004A04
+_0200566A:
+ bl FUN_02005DFC
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_02005670
+FUN_02005670: ; 0x02005670
+ push {r3-r5, lr}
+ mov r0, #0xf
+ bl FUN_02003D38
+ add r5, r0, #0x0
+ mov r0, #0x10
+ bl FUN_02003D38
+ add r4, r0, #0x0
+ mov r0, #0xe
+ bl FUN_02003D38
+ ldrb r0, [r5, #0x0]
+ cmp r0, #0x1
+ bne _02005696
+ mov r0, #0xe
+ bl FUN_02004ABC
+ pop {r3-r5, pc}
+_02005696:
+ ldrb r0, [r4, #0x0]
+ cmp r0, #0x1
+ bne _020056A4
+ mov r0, #0xf
+ bl FUN_02004ABC
+ pop {r3-r5, pc}
+_020056A4:
+ mov r0, #0x0
+ bl FUN_020048BC
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_020056AC
+FUN_020056AC: ; 0x020056AC
+ push {r3-r7, lr}
+ sub sp, #0x20
+ str r0, [sp, #0x4]
+ mov r0, #0xf
+ str r1, [sp, #0x8]
+ add r5, r2, #0x0
+ add r6, r3, #0x0
+ ldr r7, [sp, #0x38]
+ bl FUN_02003D38
+ str r0, [sp, #0x14]
+ mov r0, #0x10
+ bl FUN_02003D38
+ str r0, [sp, #0x10]
+ mov r0, #0x11
+ bl FUN_02003D38
+ add r4, r0, #0x0
+ mov r0, #0x1d
+ bl FUN_02003D38
+ str r0, [sp, #0xc]
+ mov r0, #0x23
+ bl FUN_02003D38
+ lsr r0, r5, #0x1f
+ add r0, r5, r0
+ asr r0, r0, #0x1
+ str r0, [sp, #0x1c]
+ add r0, #0x40
+ str r0, [sp, #0x1c]
+ add r0, r6, #0x0
+ str r0, [sp, #0x18]
+ sub r0, #0x1e
+ str r0, [sp, #0x18]
+ cmp r0, #0x0
+ bgt _020056FC
+ mov r0, #0x1
+ str r0, [sp, #0x18]
+_020056FC:
+ mov r0, #0x0
+ strb r0, [r4, #0x0]
+ ldr r0, [sp, #0x14]
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x1
+ bne _02005714
+ mov r0, #0xe
+ bl FUN_02004C3C
+ mov r0, #0xe
+ bl FUN_02004A04
+_02005714:
+ ldr r0, [sp, #0x10]
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x1
+ bne _02005728
+ mov r0, #0xf
+ bl FUN_02004C3C
+ mov r0, #0xf
+ bl FUN_02004A04
+_02005728:
+ ldr r4, [sp, #0x8]
+ ldr r0, _02005AB4 ; =0x000001B9
+ add r1, r4, #0x0
+ cmp r1, r0
+ beq _0200573E
+ add r0, #0x36
+ cmp r1, r0
+ bhi _0200573C
+ add r0, r4, #0x0
+ bne _0200573E
+_0200573C:
+ mov r4, #0x1
+_0200573E:
+ ldr r0, _02005AB4 ; =0x000001B9
+ ldr r1, [sp, #0x8]
+ cmp r1, r0
+ bne _020057B4
+ ldr r1, [sp, #0x4]
+ cmp r1, #0xc
+ bhi _020057AE
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #0x6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_02005758: ; jump table (using 16-bit offset)
+ .short _02005772 - _02005758 - 2; case 0
+ .short _02005772 - _02005758 - 2; case 1
+ .short _02005772 - _02005758 - 2; case 2
+ .short _020057AE - _02005758 - 2; case 3
+ .short _020057AE - _02005758 - 2; case 4
+ .short _02005772 - _02005758 - 2; case 5
+ .short _020057AE - _02005758 - 2; case 6
+ .short _020057AE - _02005758 - 2; case 7
+ .short _020057AE - _02005758 - 2; case 8
+ .short _020057AE - _02005758 - 2; case 9
+ .short _020057AE - _02005758 - 2; case 10
+ .short _02005772 - _02005758 - 2; case 11
+ .short _02005772 - _02005758 - 2; case 12
+_02005772:
+ bl FUN_02005578
+ ldr r0, [sp, #0xc]
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x0
+ bne _02005794
+ ldr r1, _02005AB8 ; =0x0000FFFF
+ mov r0, #0x1
+ add r2, r5, #0x0
+ bl FUN_02004D4C
+ add r0, r4, #0x0
+ mov r1, #0x1
+ add r2, r6, #0x0
+ bl FUN_02005AC8
+ b _020057A8
+_02005794:
+ ldr r1, [sp, #0x1c]
+ mov r0, #0xe
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ bl FUN_02004ACC
+ mov r0, #0xe
+ add r1, r6, #0x0
+ bl FUN_02004AF8
+_020057A8:
+ add sp, #0x20
+ mov r0, #0x1
+ pop {r3-r7, pc}
+_020057AE:
+ mov r0, #0x1
+ bl FUN_02005E80
+_020057B4:
+ ldr r0, [sp, #0x4]
+ cmp r0, #0xe
+ bls _020057BC
+ b _02005AC2
+_020057BC:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_020057C8: ; jump table (using 16-bit offset)
+ .short _020057E6 - _020057C8 - 2; case 0
+ .short _02005802 - _020057C8 - 2; case 1
+ .short _02005826 - _020057C8 - 2; case 2
+ .short _02005868 - _020057C8 - 2; case 3
+ .short _020058B2 - _020057C8 - 2; case 4
+ .short _02005900 - _020057C8 - 2; case 5
+ .short _02005928 - _020057C8 - 2; case 6
+ .short _0200596C - _020057C8 - 2; case 7
+ .short _0200599C - _020057C8 - 2; case 8
+ .short _020059CA - _020057C8 - 2; case 9
+ .short _020059FE - _020057C8 - 2; case 10
+ .short _02005A2E - _020057C8 - 2; case 11
+ .short _02005A56 - _020057C8 - 2; case 12
+ .short _02005A86 - _020057C8 - 2; case 13
+ .short _02005ABC - _020057C8 - 2; case 14
+_020057E6:
+ add r0, r4, #0x0
+ bl FUN_02005578
+ ldr r1, _02005AB8 ; =0x0000FFFF
+ mov r0, #0x1
+ add r2, r5, #0x0
+ bl FUN_02004D4C
+ add r0, r4, #0x0
+ mov r1, #0x1
+ add r2, r6, #0x0
+ bl FUN_02005AC8
+ b _02005AC2
+_02005802:
+ add r0, r4, #0x0
+ bl FUN_02005578
+ ldr r1, _02005AB8 ; =0x0000FFFF
+ mov r0, #0x1
+ add r2, r5, #0x0
+ bl FUN_02004D4C
+ add r0, r4, #0x0
+ mov r1, #0x1
+ add r2, r6, #0x0
+ bl FUN_02005AC8
+ mov r0, #0x14
+ add r1, r7, #0x0
+ bl FUN_02005AE0
+ b _02005AC2
+_02005826:
+ add r0, r4, #0x0
+ bl FUN_02005578
+ ldr r1, _02005AB8 ; =0x0000FFFF
+ mov r0, #0x1
+ add r2, r5, #0x0
+ bl FUN_02004D4C
+ add r0, r4, #0x0
+ mov r1, #0x1
+ add r2, r6, #0x0
+ bl FUN_02005AC8
+ ldr r1, _02005AB8 ; =0x0000FFFF
+ mov r0, #0x1
+ mov r2, #0x40
+ bl FUN_02004D20
+ add r0, r4, #0x0
+ mov r1, #0x14
+ bl FUN_02005BC8
+ ldr r1, _02005AB8 ; =0x0000FFFF
+ mov r0, #0x8
+ add r2, r5, #0x0
+ bl FUN_02004D4C
+ ldr r2, [sp, #0x18]
+ add r0, r4, #0x0
+ mov r1, #0x8
+ bl FUN_02005AC8
+ b _02005AC2
+_02005868:
+ add r0, r4, #0x0
+ bl FUN_02005578
+ ldr r1, _02005AB8 ; =0x0000FFFF
+ mov r0, #0x1
+ add r2, r5, #0x0
+ bl FUN_02004D4C
+ add r0, r4, #0x0
+ mov r1, #0x1
+ add r2, r6, #0x0
+ bl FUN_02005AC8
+ mov r0, #0x1e
+ add r1, r7, #0x0
+ bl FUN_02005AE0
+ ldr r1, _02005AB8 ; =0x0000FFFF
+ mov r0, #0x1
+ mov r2, #0xc0
+ bl FUN_02004D20
+ add r0, r4, #0x0
+ mov r1, #0x10
+ bl FUN_02005BC8
+ ldr r1, _02005AB8 ; =0x0000FFFF
+ mov r0, #0x8
+ add r2, r5, #0x0
+ bl FUN_02004D4C
+ ldr r2, [sp, #0x18]
+ add r0, r4, #0x0
+ mov r1, #0x8
+ bl FUN_02005AC8
+ b _02005AC2
+_020058B2:
+ mov r0, #0xe
+ bl FUN_02004984
+ ldr r2, [sp, #0x1c]
+ add r0, r4, #0x0
+ add r1, r6, #0x0
+ mov r3, #0xe
+ str r7, [sp, #0x0]
+ bl FUN_02004B30
+ ldr r1, [sp, #0x1c]
+ mov r0, #0xe
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ bl FUN_02004ACC
+ mov r0, #0xf
+ add r1, r7, #0x0
+ bl FUN_02005AE0
+ mov r1, #0x86
+ mov r0, #0xe
+ lsl r1, r1, #0x8
+ bl FUN_02004AE4
+ mov r1, #0x3f
+ ldr r2, [sp, #0x18]
+ ldr r3, [sp, #0x1c]
+ add r0, r4, #0x0
+ mvn r1, r1
+ str r7, [sp, #0x0]
+ bl FUN_02005BF8
+ mov r1, #0x86
+ mov r0, #0xf
+ lsl r1, r1, #0x8
+ bl FUN_02004AE4
+ b _02005AC2
+_02005900:
+ add r0, r4, #0x0
+ bl FUN_02005578
+ ldr r1, _02005AB8 ; =0x0000FFFF
+ mov r0, #0x1
+ add r2, r5, #0x0
+ bl FUN_02004D4C
+ add r0, r4, #0x0
+ mov r1, #0x1
+ add r2, r6, #0x0
+ bl FUN_02005AC8
+ mov r0, #0x1
+ add r2, r0, #0x0
+ ldr r1, _02005AB8 ; =0x0000FFFF
+ sub r2, #0xe1
+ bl FUN_02004D20
+ b _02005AC2
+_02005928:
+ add r0, r4, #0x0
+ bl FUN_02005578
+ ldr r1, _02005AB8 ; =0x0000FFFF
+ mov r0, #0x1
+ add r2, r5, #0x0
+ bl FUN_02004D4C
+ add r0, r4, #0x0
+ mov r1, #0x1
+ add r2, r6, #0x0
+ bl FUN_02005AC8
+ ldr r1, _02005AB8 ; =0x0000FFFF
+ mov r0, #0x1
+ mov r2, #0x2c
+ bl FUN_02004D20
+ mov r1, #0x3f
+ add r0, r4, #0x0
+ mvn r1, r1
+ bl FUN_02005BC8
+ ldr r1, _02005AB8 ; =0x0000FFFF
+ mov r0, #0x8
+ add r2, r5, #0x0
+ bl FUN_02004D4C
+ ldr r2, [sp, #0x18]
+ add r0, r4, #0x0
+ mov r1, #0x8
+ bl FUN_02005AC8
+ b _02005AC2
+_0200596C:
+ add r0, r4, #0x0
+ bl FUN_02005578
+ ldr r1, _02005AB8 ; =0x0000FFFF
+ mov r0, #0x1
+ add r2, r5, #0x0
+ bl FUN_02004D4C
+ add r0, r4, #0x0
+ mov r1, #0x1
+ add r2, r6, #0x0
+ bl FUN_02005AC8
+ mov r0, #0xb
+ add r1, r7, #0x0
+ bl FUN_02005AE0
+ mov r0, #0x1
+ add r2, r0, #0x0
+ ldr r1, _02005AB8 ; =0x0000FFFF
+ sub r2, #0x81
+ bl FUN_02004D20
+ b _02005AC2
+_0200599C:
+ add r0, r4, #0x0
+ bl FUN_02005578
+ ldr r1, _02005AB8 ; =0x0000FFFF
+ mov r0, #0x1
+ add r2, r5, #0x0
+ bl FUN_02004D4C
+ add r0, r4, #0x0
+ mov r1, #0x1
+ add r2, r6, #0x0
+ bl FUN_02005AC8
+ mov r0, #0x3c
+ add r1, r7, #0x0
+ bl FUN_02005AE0
+ ldr r1, _02005AB8 ; =0x0000FFFF
+ mov r0, #0x1
+ mov r2, #0x3c
+ bl FUN_02004D20
+ b _02005AC2
+_020059CA:
+ mov r0, #0xe
+ bl FUN_02004984
+ ldr r2, [sp, #0x1c]
+ add r0, r4, #0x0
+ add r1, r6, #0x0
+ mov r3, #0xe
+ str r7, [sp, #0x0]
+ bl FUN_02004B30
+ ldr r1, [sp, #0x1c]
+ mov r0, #0xe
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ bl FUN_02004ACC
+ mov r0, #0xd
+ add r1, r7, #0x0
+ bl FUN_02005AE0
+ mov r1, #0x1a
+ mov r0, #0xe
+ lsl r1, r1, #0xa
+ bl FUN_02004AE4
+ b _02005AC2
+_020059FE:
+ add r0, r4, #0x0
+ bl FUN_02005578
+ ldr r1, _02005AB8 ; =0x0000FFFF
+ mov r0, #0x1
+ add r2, r5, #0x0
+ bl FUN_02004D4C
+ add r0, r4, #0x0
+ mov r1, #0x1
+ add r2, r6, #0x0
+ bl FUN_02005AC8
+ mov r0, #0x64
+ add r1, r7, #0x0
+ bl FUN_02005AE0
+ mov r0, #0x1
+ add r2, r0, #0x0
+ ldr r1, _02005AB8 ; =0x0000FFFF
+ sub r2, #0x2d
+ bl FUN_02004D20
+ b _02005AC2
+_02005A2E:
+ add r0, r4, #0x0
+ bl FUN_02005578
+ ldr r1, _02005AB8 ; =0x0000FFFF
+ mov r0, #0x1
+ add r2, r5, #0x0
+ bl FUN_02004D4C
+ add r0, r4, #0x0
+ mov r1, #0x1
+ add r2, r6, #0x0
+ bl FUN_02005AC8
+ mov r0, #0x1
+ add r2, r0, #0x0
+ ldr r1, _02005AB8 ; =0x0000FFFF
+ sub r2, #0x61
+ bl FUN_02004D20
+ b _02005AC2
+_02005A56:
+ add r0, r4, #0x0
+ bl FUN_02005578
+ ldr r1, _02005AB8 ; =0x0000FFFF
+ mov r0, #0x1
+ add r2, r5, #0x0
+ bl FUN_02004D4C
+ add r0, r4, #0x0
+ mov r1, #0x1
+ add r2, r6, #0x0
+ bl FUN_02005AC8
+ mov r0, #0x14
+ add r1, r7, #0x0
+ bl FUN_02005AE0
+ mov r0, #0x1
+ add r2, r0, #0x0
+ ldr r1, _02005AB8 ; =0x0000FFFF
+ sub r2, #0x61
+ bl FUN_02004D20
+ b _02005AC2
+_02005A86:
+ add r0, r4, #0x0
+ bl FUN_02005578
+ add r0, r4, #0x0
+ mov r1, #0x1
+ mov r2, #0x7f
+ bl FUN_02005AC8
+ add r0, r4, #0x0
+ mov r1, #0x14
+ bl FUN_02005BC8
+ ldr r1, _02005AB8 ; =0x0000FFFF
+ mov r0, #0x8
+ add r2, r5, #0x0
+ bl FUN_02004D4C
+ mov r0, #0x8
+ add r1, r6, #0x0
+ mov r2, #0x0
+ bl FUN_02004828
+ b _02005AC2
+ .balign 4
+_02005AB4: .word 0x000001B9
+_02005AB8: .word 0x0000FFFF
+_02005ABC:
+ add r0, r4, #0x0
+ bl FUN_02005578
+_02005AC2:
+ mov r0, #0x1
+ add sp, #0x20
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_02005AC8
+FUN_02005AC8: ; 0x02005AC8
+ push {r3-r5, lr}
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ add r0, r4, #0x0
+ add r1, r2, #0x0
+ bl FUN_0200483C
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_02004858
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_02005AE0
+FUN_02005AE0: ; 0x02005AE0
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ mov r0, #0x22
+ bl FUN_02003D38
+ add r6, r0, #0x0
+ bl FUN_02005BA0
+ add r0, r4, #0x0
+ mov r1, #0x8
+ bl FUN_02016998
+ add r4, r0, #0x0
+ bne _02005B04
+ bl ErrorHandling
+ pop {r4-r6, pc}
+_02005B04:
+ mov r2, #0x0
+ strb r2, [r4, #0x0]
+ strb r2, [r4, #0x1]
+ strb r2, [r4, #0x2]
+ strb r2, [r4, #0x3]
+ strb r2, [r4, #0x4]
+ strb r2, [r4, #0x5]
+ strb r2, [r4, #0x6]
+ strb r2, [r4, #0x7]
+ ldr r0, _02005B28 ; =FUN_02005B2C
+ add r1, r4, #0x0
+ str r5, [r4, #0x0]
+ bl FUN_0200CA44
+ str r0, [r4, #0x4]
+ str r0, [r6, #0x0]
+ pop {r4-r6, pc}
+ nop
+_02005B28: .word FUN_02005B2C
+
+ thumb_func_start FUN_02005B2C
+FUN_02005B2C: ; 0x02005B2C
+ push {r4-r6, lr}
+ mov r0, #0xf
+ add r5, r1, #0x0
+ bl FUN_02003D38
+ add r6, r0, #0x0
+ mov r0, #0x10
+ bl FUN_02003D38
+ ldr r2, [r5, #0x0]
+ add r4, r0, #0x0
+ cmp r2, #0xa
+ bne _02005B58
+ mov r0, #0x1
+ mov r1, #0x0
+ bl FUN_02004828
+ ldr r2, [r5, #0x0]
+ mov r0, #0x8
+ mov r1, #0x0
+ bl FUN_02004828
+_02005B58:
+ ldr r0, [r5, #0x0]
+ sub r0, r0, #0x1
+ str r0, [r5, #0x0]
+ bl FUN_02005670
+ cmp r0, #0x0
+ bne _02005B6A
+ mov r0, #0x0
+ str r0, [r5, #0x0]
+_02005B6A:
+ ldr r0, [r5, #0x0]
+ cmp r0, #0x0
+ bgt _02005B9E
+ mov r0, #0x0
+ bl FUN_02005614
+ ldrb r0, [r6, #0x0]
+ cmp r0, #0x1
+ bne _02005B88
+ mov r0, #0xe
+ bl FUN_02004C3C
+ mov r0, #0xe
+ bl FUN_02004A04
+_02005B88:
+ ldrb r0, [r4, #0x0]
+ cmp r0, #0x1
+ bne _02005B9A
+ mov r0, #0xf
+ bl FUN_02004C3C
+ mov r0, #0xf
+ bl FUN_02004A04
+_02005B9A:
+ bl FUN_02005BA0
+_02005B9E:
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_02005BA0
+FUN_02005BA0: ; 0x02005BA0
+ push {r3-r5, lr}
+ mov r0, #0x22
+ bl FUN_02003D38
+ add r4, r0, #0x0
+ ldr r0, [r4, #0x0]
+ cmp r0, #0x0
+ beq _02005BC2
+ bl FUN_0201B6C8
+ add r5, r0, #0x0
+ ldr r0, [r4, #0x0]
+ bl FUN_0200CAB4
+ add r0, r5, #0x0
+ bl FUN_02016A18
+_02005BC2:
+ mov r0, #0x0
+ str r0, [r4, #0x0]
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_02005BC8
+FUN_02005BC8: ; 0x02005BC8
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ mov r0, #0x11
+ add r4, r1, #0x0
+ bl FUN_02003D38
+ mov r1, #0x1
+ strb r1, [r0, #0x0]
+ add r0, r1, #0x0
+ bl FUN_02005E80
+ add r0, r5, #0x0
+ bl FUN_02005578
+ add r5, r0, #0x0
+ ldr r1, _02005BF4 ; =0x0000FFFF
+ mov r0, #0x8
+ add r2, r4, #0x0
+ bl FUN_02004D20
+ add r0, r5, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+_02005BF4: .word 0x0000FFFF
+
+ thumb_func_start FUN_02005BF8
+FUN_02005BF8: ; 0x02005BF8
+ push {r3-r6, lr}
+ sub sp, #0x4
+ add r5, r0, #0x0
+ mov r0, #0x11
+ add r4, r2, #0x0
+ add r6, r3, #0x0
+ bl FUN_02003D38
+ mov r1, #0x1
+ strb r1, [r0, #0x0]
+ mov r0, #0xf
+ bl FUN_02004984
+ ldr r0, [sp, #0x18]
+ add r1, r4, #0x0
+ str r0, [sp, #0x0]
+ add r0, r5, #0x0
+ add r2, r6, #0x0
+ mov r3, #0xf
+ bl FUN_02004B30
+ add sp, #0x4
+ pop {r3-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_02005C28
+FUN_02005C28: ; 0x02005C28
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ bl FUN_020048F4
+ add r0, r5, #0x0
+ bl FUN_02005CEC
+ bl FUN_02004124
+ bl FUN_020048D0
+ cmp r0, #0xff
+ beq _02005C48
+ mov r1, #0x1
+ bl FUN_020047C8
+_02005C48:
+ mov r0, #0x1c
+ bl FUN_02003D38
+ bl FUN_02003F3C
+ add r0, r5, #0x0
+ mov r1, #0x3
+ bl FUN_02003FA8
+ mov r0, #0x2
+ bl FUN_02003FF4
+ add r1, r5, #0x0
+ blx FUN_020C3980
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ mov r1, #0x2
+ bl FUN_02004858
+ add r0, r4, #0x0
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_02005C74
+FUN_02005C74: ; 0x02005C74
+ push {r4, lr}
+ mov r0, #0xd
+ bl FUN_02003D38
+ add r4, r0, #0x0
+ mov r0, #0x2
+ bl FUN_020048BC
+ cmp r0, #0x0
+ beq _02005C8C
+ mov r0, #0x1
+ pop {r4, pc}
+_02005C8C:
+ ldrh r0, [r4, #0x0]
+ cmp r0, #0x0
+ beq _02005C9A
+ sub r0, r0, #0x1
+ strh r0, [r4, #0x0]
+ mov r0, #0x1
+ pop {r4, pc}
+_02005C9A:
+ mov r0, #0x0
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02005CA0
+FUN_02005CA0: ; 0x02005CA0
+ push {r4, lr}
+ add r4, r0, #0x0
+ mov r0, #0x2
+ bl FUN_02003FF4
+ add r1, r4, #0x0
+ blx FUN_020C10A4
+ mov r0, #0x6
+ bl FUN_02004748
+ bl FUN_02003F64
+ pop {r4, pc}
+
+ thumb_func_start FUN_02005CBC
+FUN_02005CBC: ; 0x02005CBC
+ push {r3, lr}
+ mov r0, #0xd
+ bl FUN_02003D38
+ bl FUN_02005C74
+ cmp r0, #0x1
+ bne _02005CD0
+ mov r0, #0x1
+ pop {r3, pc}
+_02005CD0:
+ mov r0, #0x0
+ bl FUN_02005CA0
+ bl FUN_02004124
+ bl FUN_020048D0
+ cmp r0, #0xff
+ beq _02005CE8
+ mov r1, #0x0
+ bl FUN_020047C8
+_02005CE8:
+ mov r0, #0x0
+ pop {r3, pc}
+
+ thumb_func_start FUN_02005CEC
+FUN_02005CEC: ; 0x02005CEC
+ push {r3, lr}
+ mov r0, #0xd
+ bl FUN_02003D38
+ mov r1, #0xf
+ strh r1, [r0, #0x0]
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_02005CFC
+FUN_02005CFC: ; 0x02005CFC
+ push {r3, lr}
+ mov r0, #0x1d
+ bl FUN_02003D38
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x1
+ bne _02005D1C
+ mov r0, #0xe
+ bl FUN_02004ABC
+ cmp r0, #0x0
+ bne _02005D1C
+ bl FUN_02005DFC
+ mov r0, #0x1
+ pop {r3, pc}
+_02005D1C:
+ mov r0, #0x0
+ pop {r3, pc}
+
+ thumb_func_start FUN_02005D20
+FUN_02005D20: ; 0x02005D20
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ mov r0, #0x1e
+ bl FUN_02003D38
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_02029F04
+ cmp r0, #0x0
+ bne _02005D3A
+ mov r0, #0x0
+ pop {r3-r5, pc}
+_02005D3A:
+ ldrb r0, [r4, #0x0]
+ cmp r0, #0x1
+ beq _02005D44
+ mov r0, #0x1
+ pop {r3-r5, pc}
+_02005D44:
+ mov r0, #0x0
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_02005D48
+FUN_02005D48: ; 0x02005D48
+ push {r3-r7, lr}
+ sub sp, #0x30
+ add r6, r0, #0x0
+ add r5, r2, #0x0
+ add r7, r3, #0x0
+ bl FUN_02004DB4
+ str r0, [sp, #0x0]
+ mov r0, #0x1d
+ bl FUN_02003D38
+ str r0, [sp, #0x4]
+ add r0, r6, #0x0
+ bl FUN_02005D20
+ cmp r0, #0x0
+ bne _02005D70
+ add sp, #0x30
+ mov r0, #0x0
+ pop {r3-r7, pc}
+_02005D70:
+ mov r0, #0x0
+ bl FUN_02005614
+ bl FUN_02005DFC
+ mov r0, #0xe
+ bl FUN_02004984
+ bl FUN_0201B9EC
+ lsr r2, r0, #0x1f
+ lsl r1, r0, #0x13
+ sub r1, r1, r2
+ mov r0, #0x13
+ ror r1, r0
+ add r0, r2, r1
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+ add r0, r6, #0x0
+ bl FUN_02029F10
+ add r1, r0, #0x0
+ ldr r0, [sp, #0x0]
+ bl FUN_02029F14
+ mov r0, #0xe
+ bl FUN_02004930
+ str r0, [sp, #0x8]
+ mov r0, #0x0
+ str r0, [sp, #0xc]
+ bl FUN_02004DB4
+ str r0, [sp, #0x10]
+ mov r0, #0x0
+ str r0, [sp, #0x14]
+ str r0, [sp, #0x18]
+ mov r0, #0x7d
+ lsl r0, r0, #0x4
+ str r0, [sp, #0x1c]
+ str r0, [sp, #0x20]
+ mov r0, #0x2
+ lsl r0, r0, #0xe
+ add r0, r4, r0
+ str r0, [sp, #0x28]
+ lsr r0, r7, #0x1f
+ add r0, r7, r0
+ asr r0, r0, #0x1
+ add r0, #0x40
+ str r0, [sp, #0x2c]
+ add r0, sp, #0x8
+ mov r1, #0xe
+ str r5, [sp, #0x24]
+ bl FUN_02004A6C
+ add r4, r0, #0x0
+ mov r0, #0xe
+ add r1, r5, #0x0
+ bl FUN_02004AF8
+ ldr r0, [sp, #0x4]
+ mov r1, #0x1
+ strb r1, [r0, #0x0]
+ mov r0, #0x0
+ bl FUN_02005E80
+ add r0, r4, #0x0
+ add sp, #0x30
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_02005DFC
+FUN_02005DFC: ; 0x02005DFC
+ push {r3-r5, lr}
+ mov r0, #0xf
+ bl FUN_02003D38
+ add r5, r0, #0x0
+ mov r0, #0x1d
+ bl FUN_02003D38
+ add r4, r0, #0x0
+ ldrb r0, [r5, #0x0]
+ cmp r0, #0x1
+ bne _02005E20
+ mov r0, #0xe
+ bl FUN_02004C3C
+ mov r0, #0xe
+ bl FUN_02004A04
+_02005E20:
+ mov r0, #0x0
+ strb r0, [r4, #0x0]
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_02005E28
+FUN_02005E28: ; 0x02005E28
+ push {lr}
+ sub sp, #0x1c
+ mov r0, #0x2
+ str r0, [sp, #0x0]
+ bl FUN_02004DB4
+ mov r1, #0x7d
+ str r0, [sp, #0x4]
+ lsl r1, r1, #0x4
+ mov r0, #0x1f
+ str r1, [sp, #0x8]
+ tst r0, r1
+ beq _02005E48
+ mov r0, #0x1f
+ bic r1, r0
+ str r1, [sp, #0x8]
+_02005E48:
+ ldr r0, _02005E60 ; =0x00004174
+ str r0, [sp, #0xc]
+ mov r0, #0x0
+ str r0, [sp, #0x10]
+ str r0, [sp, #0x14]
+ str r0, [sp, #0x18]
+ add r0, sp, #0x0
+ bl FUN_02004914
+ add sp, #0x1c
+ pop {pc}
+ nop
+_02005E60: .word 0x00004174
+
+ thumb_func_start FUN_02005E64
+FUN_02005E64: ; 0x02005E64
+ ldr r3, _02005E68 ; =FUN_0200491C
+ bx r3
+ .balign 4
+_02005E68: .word FUN_0200491C
+
+ thumb_func_start FUN_02005E6C
+FUN_02005E6C: ; 0x02005E6C
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl FUN_02004DB4
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_02029F4C
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02005E80
+FUN_02005E80: ; 0x02005E80
+ push {r4, lr}
+ add r4, r0, #0x0
+ mov r0, #0x1e
+ bl FUN_02003D38
+ strb r4, [r0, #0x0]
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02005E90
+FUN_02005E90: ; 0x02005E90
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ mov r0, #0x23
+ add r7, r1, #0x0
+ add r4, r2, #0x0
+ add r6, r3, #0x0
+ bl FUN_02003D38
+ cmp r5, #0x0
+ bne _02005EB2
+ ldr r0, [r0, #0x0]
+ add r1, r7, #0x0
+ add r2, r4, #0x0
+ add r3, r6, #0x0
+ bl FUN_02005D48
+ b _02005EBE
+_02005EB2:
+ add r0, r5, #0x0
+ add r1, r7, #0x0
+ add r2, r4, #0x0
+ add r3, r6, #0x0
+ bl FUN_02005D48
+_02005EBE:
+ cmp r0, #0x0
+ bne _02005ED8
+ mov r0, #0x1
+ bl FUN_02005E80
+ mov r0, #0xb
+ str r0, [sp, #0x0]
+ ldr r1, _02005EDC ; =0x000001B9
+ mov r0, #0x0
+ add r2, r6, #0x0
+ add r3, r4, #0x0
+ bl FUN_020056AC
+_02005ED8:
+ pop {r3-r7, pc}
+ nop
+_02005EDC: .word 0x000001B9
+
+ thumb_func_start FUN_02005EE0
+FUN_02005EE0: ; 0x02005EE0
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl FUN_02029F04
+ cmp r0, #0x0
+ bne _02005EF0
+ mov r0, #0x0
+ pop {r4, pc}
+_02005EF0:
+ add r0, r4, #0x0
+ bl FUN_02029F10
+ mov r1, #0xf
+ ldrsb r0, [r0, r1]
+ sub r1, #0x2d
+ cmp r0, r1
+ bge _02005F04
+ mov r0, #0x1
+ pop {r4, pc}
+_02005F04:
+ cmp r0, #0x1e
+ blt _02005F10
+ cmp r0, #0x80
+ bge _02005F10
+ mov r0, #0x2
+ pop {r4, pc}
+_02005F10:
+ mov r0, #0x0
+ pop {r4, pc}
+
+ thumb_func_start FUN_02005F14
+FUN_02005F14: ; 0x02005F14
+ cmp r0, #0xb
+ bgt _02005F2E
+ bge _02005F32
+ cmp r0, #0x5
+ bgt _02005F36
+ cmp r0, #0x0
+ blt _02005F36
+ beq _02005F32
+ cmp r0, #0x1
+ beq _02005F32
+ cmp r0, #0x5
+ beq _02005F32
+ b _02005F36
+_02005F2E:
+ cmp r0, #0xc
+ bne _02005F36
+_02005F32:
+ mov r0, #0x1
+ bx lr
+_02005F36:
+ mov r0, #0x0
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02005F3C
+FUN_02005F3C: ; 0x02005F3C
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r0, [r4, #0x4]
+ cmp r0, #0x1
+ beq _02005F4A
+ bl ErrorHandling
+_02005F4A:
+ ldr r1, [r4, #0x0]
+ mov r0, #0x0
+ blx FS_UnloadOverlay
+ cmp r0, #0x1
+ beq _02005F5A
+ bl ErrorHandling
+_02005F5A:
+ mov r0, #0x0
+ str r0, [r4, #0x4]
+ pop {r4, pc}
+
+ thumb_func_start FUN_02005F60
+FUN_02005F60: ; 0x02005F60
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl FUN_02005F90
+ bl FUN_0200610C
+ mov r2, #0x0
+ add r3, r0, #0x0
+_02005F70:
+ ldr r1, [r3, #0x4]
+ cmp r1, #0x1
+ bne _02005F86
+ ldr r1, [r3, #0x0]
+ cmp r4, r1
+ bne _02005F86
+ lsl r1, r2, #0x3
+ add r0, r0, r1
+ bl FUN_02005F3C
+ pop {r4, pc}
+_02005F86:
+ add r2, r2, #0x1
+ add r3, #0x8
+ cmp r2, #0x8
+ blt _02005F70
+ pop {r4, pc}
+
+ thumb_func_start FUN_02005F90
+FUN_02005F90: ; 0x02005F90
+ push {lr}
+ sub sp, #0x2c
+ add r2, r0, #0x0
+ add r0, sp, #0x0
+ mov r1, #0x0
+ blx FS_LoadOverlayInfo
+ cmp r0, #0x1
+ beq _02005FA6
+ bl ErrorHandling
+_02005FA6:
+ mov r0, #0x2
+ ldr r2, [sp, #0x4]
+ lsl r0, r0, #0x18
+ cmp r2, r0
+ bhi _02005FBC
+ lsr r0, r0, #0x1
+ cmp r2, r0
+ blo _02005FBC
+ add sp, #0x2c
+ mov r0, #0x1
+ pop {pc}
+_02005FBC:
+ mov r0, #0x1
+ ldr r1, _02005FD8 ; =0x027E0000
+ lsl r0, r0, #0xe
+ add r0, r1, r0
+ cmp r2, r0
+ bhi _02005FD2
+ cmp r2, r1
+ blo _02005FD2
+ add sp, #0x2c
+ mov r0, #0x2
+ pop {pc}
+_02005FD2:
+ mov r0, #0x0
+ add sp, #0x2c
+ pop {pc}
+ .balign 4
+_02005FD8: .word 0x027E0000
+
+ thumb_func_start FUN_02005FDC
+FUN_02005FDC: ; 0x02005FDC
+ push {r3-r7, lr}
+ add r4, r1, #0x0
+ mov r1, #0x0
+ mvn r1, r1
+ add r5, r0, #0x0
+ str r1, [sp, #0x0]
+ bl FUN_02006090
+ cmp r0, #0x0
+ bne _02005FF4
+ mov r0, #0x0
+ pop {r3-r7, pc}
+_02005FF4:
+ add r0, r5, #0x0
+ bl FUN_02005F90
+ add r7, r0, #0x0
+ bl FUN_0200610C
+ add r3, r0, #0x0
+ mov r6, #0x0
+ add r1, r3, #0x0
+_02006006:
+ ldr r0, [r1, #0x4]
+ cmp r0, #0x0
+ bne _02006018
+ lsl r1, r6, #0x3
+ add r2, r3, r1
+ mov r0, #0x1
+ str r0, [r2, #0x4]
+ str r5, [r3, r1]
+ b _02006020
+_02006018:
+ add r6, r6, #0x1
+ add r1, #0x8
+ cmp r6, #0x8
+ blt _02006006
+_02006020:
+ cmp r6, #0x8
+ blt _0200602C
+ bl ErrorHandling
+ mov r0, #0x0
+ pop {r3-r7, pc}
+_0200602C:
+ sub r6, r7, #0x1
+ cmp r6, #0x1
+ bhi _0200603C
+ mov r0, #0x0
+ mvn r0, r0
+ blx FS_SetDefaultDMA
+ str r0, [sp, #0x0]
+_0200603C:
+ cmp r4, #0x0
+ beq _0200604A
+ cmp r4, #0x1
+ beq _02006056
+ cmp r4, #0x2
+ beq _02006062
+ b _0200606E
+_0200604A:
+ mov r0, #0x0
+ add r1, r5, #0x0
+ bl FUN_02006168
+ add r4, r0, #0x0
+ b _02006076
+_02006056:
+ mov r0, #0x0
+ add r1, r5, #0x0
+ bl FUN_02006170
+ add r4, r0, #0x0
+ b _02006076
+_02006062:
+ mov r0, #0x0
+ add r1, r5, #0x0
+ bl FUN_020061A8
+ add r4, r0, #0x0
+ b _02006076
+_0200606E:
+ bl ErrorHandling
+ mov r0, #0x0
+ pop {r3-r7, pc}
+_02006076:
+ cmp r6, #0x1
+ bhi _02006080
+ ldr r0, [sp, #0x0]
+ blx FS_SetDefaultDMA
+_02006080:
+ cmp r4, #0x0
+ bne _0200608C
+ bl ErrorHandling
+ mov r0, #0x0
+ pop {r3-r7, pc}
+_0200608C:
+ mov r0, #0x1
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_02006090
+FUN_02006090: ; 0x02006090
+ push {r3-r7, lr}
+ sub sp, #0x10
+ add r1, sp, #0xc
+ add r2, sp, #0x8
+ add r4, r0, #0x0
+ bl FUN_02006130
+ cmp r0, #0x0
+ bne _020060A8
+ add sp, #0x10
+ mov r0, #0x0
+ pop {r3-r7, pc}
+_020060A8:
+ add r0, r4, #0x0
+ bl FUN_02005F90
+ bl FUN_0200610C
+ add r5, r0, #0x0
+ mov r4, #0x0
+ add r6, sp, #0x4
+ add r7, sp, #0x0
+_020060BA:
+ ldr r0, [r5, #0x4]
+ cmp r0, #0x1
+ bne _020060FC
+ ldr r0, [r5, #0x0]
+ add r1, r6, #0x0
+ add r2, r7, #0x0
+ bl FUN_02006130
+ cmp r0, #0x1
+ bne _020060FC
+ ldr r1, [sp, #0x4]
+ ldr r2, [sp, #0xc]
+ cmp r2, r1
+ blo _020060DC
+ ldr r0, [sp, #0x0]
+ cmp r2, r0
+ blo _020060F2
+_020060DC:
+ ldr r3, [sp, #0x8]
+ cmp r3, r1
+ bls _020060E8
+ ldr r0, [sp, #0x0]
+ cmp r3, r0
+ bls _020060F2
+_020060E8:
+ cmp r2, r1
+ bhi _020060FC
+ ldr r0, [sp, #0x0]
+ cmp r3, r0
+ blo _020060FC
+_020060F2:
+ bl ErrorHandling
+ add sp, #0x10
+ mov r0, #0x0
+ pop {r3-r7, pc}
+_020060FC:
+ add r4, r4, #0x1
+ add r5, #0x8
+ cmp r4, #0x8
+ blt _020060BA
+ mov r0, #0x1
+ add sp, #0x10
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_0200610C
+FUN_0200610C: ; 0x0200610C
+ cmp r0, #0x0
+ beq _02006118
+ cmp r0, #0x1
+ beq _0200611C
+ cmp r0, #0x2
+ beq _02006120
+_02006118:
+ ldr r0, _02006124 ; =0x021C45B0
+ bx lr
+_0200611C:
+ ldr r0, _02006128 ; =0x021C45F0
+ bx lr
+_02006120:
+ ldr r0, _0200612C ; =0x021C4630
+ bx lr
+ .balign 4
+_02006124: .word 0x021C45B0
+_02006128: .word 0x021C45F0
+_0200612C: .word 0x021C4630
+
+ thumb_func_start FUN_02006130
+FUN_02006130: ; 0x02006130
+ push {r4-r5, lr}
+ sub sp, #0x2c
+ add r3, r0, #0x0
+ add r5, r1, #0x0
+ add r4, r2, #0x0
+ add r0, sp, #0x0
+ mov r1, #0x0
+ add r2, r3, #0x0
+ blx FS_LoadOverlayInfo
+ cmp r0, #0x0
+ bne _02006152
+ bl ErrorHandling
+ add sp, #0x2c
+ mov r0, #0x0
+ pop {r4-r5, pc}
+_02006152:
+ ldr r2, [sp, #0x4]
+ str r2, [r5, #0x0]
+ ldr r1, [sp, #0x8]
+ ldr r0, [sp, #0xc]
+ add r0, r1, r0
+ add r0, r2, r0
+ str r0, [r4, #0x0]
+ mov r0, #0x1
+ add sp, #0x2c
+ pop {r4-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_02006168
+FUN_02006168: ; 0x02006168
+ ldr r3, _0200616C ; =FS_LoadOverlay
+ bx r3
+ .balign 4
+_0200616C: .word FS_LoadOverlay
+
+ thumb_func_start FUN_02006170
+FUN_02006170: ; 0x02006170
+ push {lr}
+ sub sp, #0x2c
+ add r3, r0, #0x0
+ add r2, r1, #0x0
+ add r0, sp, #0x0
+ add r1, r3, #0x0
+ blx FS_LoadOverlayInfo
+ cmp r0, #0x0
+ bne _0200618A
+ add sp, #0x2c
+ mov r0, #0x0
+ pop {pc}
+_0200618A:
+ add r0, sp, #0x0
+ blx FS_LoadOverlayImage
+ cmp r0, #0x0
+ bne _0200619A
+ add sp, #0x2c
+ mov r0, #0x0
+ pop {pc}
+_0200619A:
+ add r0, sp, #0x0
+ blx FS_StartOverlay
+ mov r0, #0x1
+ add sp, #0x2c
+ pop {pc}
+ .balign 4
+
+ thumb_func_start FUN_020061A8
+FUN_020061A8: ; 0x020061A8
+ push {lr}
+ sub sp, #0x74
+ add r3, r0, #0x0
+ add r2, r1, #0x0
+ add r0, sp, #0x0
+ add r1, r3, #0x0
+ blx FS_LoadOverlayInfo
+ cmp r0, #0x0
+ bne _020061C2
+ add sp, #0x74
+ mov r0, #0x0
+ pop {pc}
+_020061C2:
+ add r0, sp, #0x2c
+ blx FS_InitFile
+ add r0, sp, #0x0
+ add r1, sp, #0x2c
+ blx FS_LoadOverlayImageAsync
+ add r0, sp, #0x2c
+ blx FS_WaitAsync
+ add r0, sp, #0x2c
+ blx FS_CloseFile
+ add r0, sp, #0x0
+ blx FS_StartOverlay
+ mov r0, #0x1
+ add sp, #0x74
+ pop {pc}
+
+ thumb_func_start FUN_020061E8
+FUN_020061E8: ; 0x020061E8
+ push {r3-r7, lr}
+ add r5, r1, #0x0
+ add r6, r0, #0x0
+ add r7, r2, #0x0
+ cmp r5, #0x0
+ beq _0200620C
+ add r0, r3, #0x0
+ bl FUN_02016998
+ add r4, r0, #0x0
+ bne _02006202
+ mov r0, #0x0
+ pop {r3-r7, pc}
+_02006202:
+ mov r1, #0x0
+ add r2, r5, #0x0
+ blx Call_FillMemWithValue
+ b _0200620E
+_0200620C:
+ mov r4, #0x0
+_0200620E:
+ add r0, r6, #0x0
+ add r1, r4, #0x0
+ add r2, r7, #0x0
+ bl FUN_0200CA44
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_0200621C
+FUN_0200621C: ; 0x0200621C
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl FUN_0201B6C8
+ cmp r0, #0x0
+ beq _0200622C
+ bl FUN_02016A18
+_0200622C:
+ add r0, r4, #0x0
+ bl FUN_0200CAB4
+ pop {r4, pc}
+
+ thumb_func_start FUN_02006234
+FUN_02006234: ; 0x02006234
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ add r0, r2, #0x0
+ mov r1, #0x28
+ bl FUN_02016998
+ add r3, r0, #0x0
+ add r2, r3, #0x0
+ ldmia r5!, {r0-r1}
+ stmia r2!, {r0-r1}
+ ldmia r5!, {r0-r1}
+ stmia r2!, {r0-r1}
+ mov r0, #0x0
+ str r0, [r3, #0x10]
+ str r0, [r3, #0x14]
+ str r4, [r3, #0x18]
+ str r0, [r3, #0x1c]
+ str r0, [r3, #0x20]
+ str r0, [r3, #0x24]
+ add r0, r3, #0x0
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_02006260
+FUN_02006260: ; 0x02006260
+ ldr r3, _02006264 ; =FUN_02016A18
+ bx r3
+ .balign 4
+_02006264: .word FUN_02016A18
+
+ thumb_func_start FUN_02006268
+FUN_02006268: ; 0x02006268
+ push {r4, lr}
+ add r4, r0, #0x0
+ add r0, r2, #0x0
+ bl FUN_02016998
+ str r0, [r4, #0x1c]
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02006278
+FUN_02006278: ; 0x02006278
+ ldr r0, [r0, #0x1c]
+ bx lr
+
+ thumb_func_start FUN_0200627C
+FUN_0200627C: ; 0x0200627C
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r0, [r4, #0x1c]
+ bl FUN_02016A18
+ mov r0, #0x0
+ str r0, [r4, #0x1c]
+ pop {r4, pc}
+
+ thumb_func_start FUN_0200628C
+FUN_0200628C: ; 0x0200628C
+ ldr r0, [r0, #0x18]
+ bx lr
+
+ thumb_func_start FUN_02006290
+FUN_02006290: ; 0x02006290
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r1, [r4, #0x10]
+ cmp r1, #0x3
+ bhi _0200630E
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #0x6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_020062A6: ; jump table (using 16-bit offset)
+ .short _020062AE - _020062A6 - 2; case 0
+ .short _020062C2 - _020062A6 - 2; case 1
+ .short _020062DA - _020062A6 - 2; case 2
+ .short _020062F0 - _020062A6 - 2; case 3
+_020062AE:
+ mov r1, #0x0
+ ldr r0, [r4, #0xc]
+ mvn r1, r1
+ cmp r0, r1
+ beq _020062BE
+ mov r1, #0x2
+ bl FUN_02005FDC
+_020062BE:
+ mov r0, #0x1
+ str r0, [r4, #0x10]
+_020062C2:
+ add r1, r4, #0x0
+ ldr r2, [r4, #0x0]
+ add r0, r4, #0x0
+ add r1, #0x14
+ blx r2
+ cmp r0, #0x1
+ bne _0200630E
+ mov r0, #0x2
+ str r0, [r4, #0x10]
+ mov r0, #0x0
+ str r0, [r4, #0x14]
+ b _0200630E
+_020062DA:
+ add r1, r4, #0x0
+ ldr r2, [r4, #0x4]
+ add r1, #0x14
+ blx r2
+ cmp r0, #0x1
+ bne _0200630E
+ mov r0, #0x3
+ str r0, [r4, #0x10]
+ mov r0, #0x0
+ str r0, [r4, #0x14]
+ b _0200630E
+_020062F0:
+ add r1, r4, #0x0
+ ldr r2, [r4, #0x8]
+ add r1, #0x14
+ blx r2
+ cmp r0, #0x1
+ bne _0200630E
+ mov r1, #0x0
+ ldr r0, [r4, #0xc]
+ mvn r1, r1
+ cmp r0, r1
+ beq _0200630A
+ bl FUN_02005F60
+_0200630A:
+ mov r0, #0x1
+ pop {r4, pc}
+_0200630E:
+ mov r0, #0x0
+ pop {r4, pc}
+ .balign 4
diff --git a/arm9/asm/unk_02006864.s b/arm9/asm/unk_02006864.s
new file mode 100644
index 00000000..dab6adfe
--- /dev/null
+++ b/arm9/asm/unk_02006864.s
@@ -0,0 +1,109321 @@
+ .include "asm/macros.inc"
+ .include "global.inc"
+
+ .text
+
+ thumb_func_start FUN_02006864
+FUN_02006864: ; 0x02006864
+ add r3, r1, #0x0
+ add r1, r2, #0x0
+ add r2, r3, #0x0
+ ldr r3, _02006870 ; =0x020D180C
+ bx r3
+ nop
+_02006870: .word 0x020D180C
+
+ thumb_func_start FUN_02006874
+FUN_02006874: ; 0x02006874
+ add r0, #0x50
+ ldrh r0, [r0, #0x0]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_0200687C
+FUN_0200687C: ; 0x0200687C
+ push {r3-r7, lr}
+ sub sp, #0x8
+ add r6, r2, #0x0
+ mov r2, #0x0
+ add r5, r3, #0x0
+ str r2, [sp, #0x0]
+ ldr r2, [sp, #0x28]
+ ldr r3, [sp, #0x2c]
+ ldr r4, [sp, #0x24]
+ bl FUN_02006C98
+ add r7, r0, #0x0
+ beq _020068C2
+ add r1, sp, #0x4
+ blx FUN_020B0030
+ cmp r0, #0x0
+ beq _020068BC
+ cmp r4, #0x0
+ bne _020068A8
+ ldr r0, [sp, #0x4]
+ ldr r4, [r0, #0x10]
+_020068A8:
+ ldr r0, [sp, #0x20]
+ lsl r1, r5, #0x18
+ str r0, [sp, #0x0]
+ ldr r2, [sp, #0x4]
+ add r0, r6, #0x0
+ ldr r2, [r2, #0x14]
+ lsr r1, r1, #0x18
+ add r3, r4, #0x0
+ bl FUN_02017E14
+_020068BC:
+ add r0, r7, #0x0
+ bl FUN_02016A18
+_020068C2:
+ add r0, r4, #0x0
+ add sp, #0x8
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_020068C8
+FUN_020068C8: ; 0x020068C8
+ push {r3-r7, lr}
+ sub sp, #0x8
+ add r6, r2, #0x0
+ mov r2, #0x1
+ add r5, r3, #0x0
+ str r2, [sp, #0x0]
+ ldr r2, [sp, #0x28]
+ ldr r3, [sp, #0x2c]
+ ldr r4, [sp, #0x24]
+ bl FUN_02006C98
+ add r7, r0, #0x0
+ beq _0200692C
+ add r1, sp, #0x4
+ blx FUN_020B0180
+ cmp r0, #0x0
+ beq _02006926
+ cmp r4, #0x0
+ bne _020068F4
+ ldr r0, [sp, #0x4]
+ ldr r4, [r0, #0x8]
+_020068F4:
+ lsl r1, r5, #0x18
+ add r0, r6, #0x0
+ lsr r1, r1, #0x18
+ bl FUN_0201886C
+ cmp r0, #0x0
+ beq _02006912
+ ldr r2, [sp, #0x4]
+ lsl r1, r5, #0x18
+ add r0, r6, #0x0
+ lsr r1, r1, #0x18
+ add r2, #0xc
+ add r3, r4, #0x0
+ bl FUN_02017DFC
+_02006912:
+ ldr r0, [sp, #0x20]
+ lsl r1, r5, #0x18
+ str r0, [sp, #0x0]
+ ldr r2, [sp, #0x4]
+ add r0, r6, #0x0
+ lsr r1, r1, #0x18
+ add r2, #0xc
+ add r3, r4, #0x0
+ bl FUN_02017CE8
+_02006926:
+ add r0, r7, #0x0
+ bl FUN_02016A18
+_0200692C:
+ add sp, #0x8
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_02006930
+FUN_02006930: ; 0x02006930
+ push {lr}
+ sub sp, #0xc
+ str r3, [sp, #0x0]
+ ldr r3, [sp, #0x10]
+ str r3, [sp, #0x4]
+ ldr r3, [sp, #0x14]
+ str r3, [sp, #0x8]
+ mov r3, #0x0
+ bl FUN_02006948
+ add sp, #0xc
+ pop {pc}
+
+ thumb_func_start FUN_02006948
+FUN_02006948: ; 0x02006948
+ push {r4-r7, lr}
+ sub sp, #0xc
+ add r4, r2, #0x0
+ add r7, r3, #0x0
+ mov r2, #0x1
+ str r2, [sp, #0x0]
+ ldr r3, [sp, #0x28]
+ mov r2, #0x0
+ ldr r6, [sp, #0x20]
+ ldr r5, [sp, #0x24]
+ bl FUN_02006C98
+ str r0, [sp, #0x4]
+ cmp r0, #0x0
+ beq _02006A2A
+ add r1, sp, #0x8
+ blx FUN_020B0138
+ cmp r0, #0x0
+ beq _02006A24
+ ldr r0, [sp, #0x8]
+ ldr r1, [r0, #0xc]
+ add r1, r1, r7
+ str r1, [r0, #0xc]
+ cmp r5, #0x0
+ bne _02006982
+ ldr r0, [sp, #0x8]
+ ldr r0, [r0, #0x8]
+ sub r5, r0, r7
+_02006982:
+ ldr r0, [sp, #0x8]
+ add r1, r5, #0x0
+ ldr r0, [r0, #0xc]
+ blx DC_FlushRange
+ cmp r4, #0x7
+ bhi _02006A14
+ add r0, r4, r4
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0200699C: ; jump table (using 16-bit offset)
+ .short _02006A14 - _0200699C - 2; case 0
+ .short _02006A14 - _0200699C - 2; case 1
+ .short _020069AC - _0200699C - 2; case 2
+ .short _020069E0 - _0200699C - 2; case 3
+ .short _02006A14 - _0200699C - 2; case 4
+ .short _02006A14 - _0200699C - 2; case 5
+ .short _020069C6 - _0200699C - 2; case 6
+ .short _020069FA - _0200699C - 2; case 7
+_020069AC:
+ blx GX_BeginLoadBGExtPltt
+ ldr r0, [sp, #0x8]
+ ldr r3, _02006A30 ; =0x020ECBB0
+ lsl r4, r4, #0x2
+ ldr r0, [r0, #0xc]
+ ldr r3, [r3, r4]
+ add r1, r6, #0x0
+ add r2, r5, #0x0
+ blx r3
+ blx GX_EndLoadBGExtPltt
+ b _02006A24
+_020069C6:
+ blx GXS_BeginLoadBGExtPltt
+ ldr r0, [sp, #0x8]
+ ldr r3, _02006A30 ; =0x020ECBB0
+ lsl r4, r4, #0x2
+ ldr r0, [r0, #0xc]
+ ldr r3, [r3, r4]
+ add r1, r6, #0x0
+ add r2, r5, #0x0
+ blx r3
+ blx GXS_EndLoadBGExtPltt
+ b _02006A24
+_020069E0:
+ blx GX_BeginLoadOBJExtPltt
+ ldr r0, [sp, #0x8]
+ ldr r3, _02006A30 ; =0x020ECBB0
+ lsl r4, r4, #0x2
+ ldr r0, [r0, #0xc]
+ ldr r3, [r3, r4]
+ add r1, r6, #0x0
+ add r2, r5, #0x0
+ blx r3
+ blx GX_EndLoadOBJExtPltt
+ b _02006A24
+_020069FA:
+ blx GXS_BeginLoadOBJExtPltt
+ ldr r0, [sp, #0x8]
+ ldr r3, _02006A30 ; =0x020ECBB0
+ lsl r4, r4, #0x2
+ ldr r0, [r0, #0xc]
+ ldr r3, [r3, r4]
+ add r1, r6, #0x0
+ add r2, r5, #0x0
+ blx r3
+ blx GXS_EndLoadOBJExtPltt
+ b _02006A24
+_02006A14:
+ ldr r0, [sp, #0x8]
+ ldr r3, _02006A30 ; =0x020ECBB0
+ lsl r4, r4, #0x2
+ ldr r0, [r0, #0xc]
+ ldr r3, [r3, r4]
+ add r1, r6, #0x0
+ add r2, r5, #0x0
+ blx r3
+_02006A24:
+ ldr r0, [sp, #0x4]
+ bl FUN_02016A18
+_02006A2A:
+ add sp, #0xc
+ pop {r4-r7, pc}
+ nop
+_02006A30: .word 0x020ECBB0
+
+ thumb_func_start FUN_02006A34
+FUN_02006A34: ; 0x02006A34
+ push {r3-r7, lr}
+ sub sp, #0x8
+ add r5, r2, #0x0
+ mov r2, #0x1
+ add r6, r3, #0x0
+ str r2, [sp, #0x0]
+ ldr r2, [sp, #0x24]
+ ldr r3, [sp, #0x28]
+ ldr r4, [sp, #0x20]
+ bl FUN_02006C98
+ add r7, r0, #0x0
+ beq _02006A80
+ add r1, sp, #0x4
+ blx FUN_020B0088
+ cmp r0, #0x0
+ beq _02006A7A
+ cmp r4, #0x0
+ bne _02006A60
+ ldr r0, [sp, #0x4]
+ ldr r4, [r0, #0x10]
+_02006A60:
+ ldr r0, [sp, #0x4]
+ add r1, r4, #0x0
+ ldr r0, [r0, #0x14]
+ blx DC_FlushRange
+ ldr r0, [sp, #0x4]
+ ldr r3, _02006A88 ; =0x020ECBA0
+ lsl r5, r5, #0x2
+ ldr r0, [r0, #0x14]
+ ldr r3, [r3, r5]
+ add r1, r6, #0x0
+ add r2, r4, #0x0
+ blx r3
+_02006A7A:
+ add r0, r7, #0x0
+ bl FUN_02016A18
+_02006A80:
+ add r0, r4, #0x0
+ add sp, #0x8
+ pop {r3-r7, pc}
+ nop
+_02006A88: .word 0x020ECBA0
+
+ thumb_func_start FUN_02006A8C
+FUN_02006A8C: ; 0x02006A8C
+ push {r4-r7, lr}
+ sub sp, #0xc
+ add r5, r2, #0x0
+ add r4, r3, #0x0
+ mov r2, #0x1
+ str r2, [sp, #0x0]
+ ldr r3, [sp, #0x20]
+ mov r2, #0x0
+ bl FUN_02006C98
+ add r6, r0, #0x0
+ beq _02006AE0
+ add r1, sp, #0x4
+ blx FUN_020B00F0
+ add r7, r0, #0x0
+ add r0, r6, #0x0
+ add r1, sp, #0x8
+ blx FUN_020B0138
+ cmp r0, #0x0
+ beq _02006ADA
+ cmp r7, #0x0
+ beq _02006ACE
+ ldr r0, [sp, #0x24]
+ add r2, r4, #0x0
+ str r0, [sp, #0x0]
+ ldr r0, [sp, #0x8]
+ ldr r1, [sp, #0x4]
+ add r3, r5, #0x0
+ blx FUN_020B10E8
+ b _02006ADA
+_02006ACE:
+ ldr r0, [sp, #0x8]
+ ldr r3, [sp, #0x24]
+ add r1, r4, #0x0
+ add r2, r5, #0x0
+ blx FUN_020B1240
+_02006ADA:
+ add r0, r6, #0x0
+ bl FUN_02016A18
+_02006AE0:
+ add sp, #0xc
+ pop {r4-r7, pc}
+
+ thumb_func_start FUN_02006AE4
+FUN_02006AE4: ; 0x02006AE4
+ push {r4-r6, lr}
+ sub sp, #0x8
+ add r5, r3, #0x0
+ mov r3, #0x1
+ str r3, [sp, #0x0]
+ ldr r3, [sp, #0x24]
+ bl FUN_02006C98
+ add r6, r0, #0x0
+ ldr r4, _02006B30 ; =0x00000000
+ beq _02006B28
+ add r1, sp, #0x4
+ blx FUN_020B0088
+ cmp r0, #0x0
+ beq _02006B22
+ ldr r1, [sp, #0x18]
+ cmp r1, #0x0
+ beq _02006B0E
+ ldr r0, [sp, #0x4]
+ str r1, [r0, #0x10]
+_02006B0E:
+ ldr r4, _02006B34 ; =0x020ECBA8
+ lsl r5, r5, #0x2
+ ldr r0, [sp, #0x4]
+ ldr r1, [sp, #0x20]
+ ldr r2, [sp, #0x1c]
+ ldr r3, [sp, #0x28]
+ ldr r4, [r4, r5]
+ blx r4
+ ldr r0, [sp, #0x4]
+ ldr r4, [r0, #0x10]
+_02006B22:
+ add r0, r6, #0x0
+ bl FUN_02016A18
+_02006B28:
+ add r0, r4, #0x0
+ add sp, #0x8
+ pop {r4-r6, pc}
+ nop
+_02006B30: .word 0x00000000
+_02006B34: .word 0x020ECBA8
+
+ thumb_func_start FUN_02006B38
+FUN_02006B38: ; 0x02006B38
+ push {r4-r6, lr}
+ sub sp, #0x8
+ add r5, r3, #0x0
+ mov r3, #0x1
+ str r3, [sp, #0x0]
+ ldr r3, [sp, #0x24]
+ bl FUN_02006C98
+ add r4, r0, #0x0
+ beq _02006B9E
+ add r1, sp, #0x4
+ blx FUN_020B0088
+ cmp r0, #0x0
+ beq _02006B98
+ ldr r1, [sp, #0x18]
+ cmp r1, #0x0
+ beq _02006B60
+ ldr r0, [sp, #0x4]
+ str r1, [r0, #0x10]
+_02006B60:
+ ldr r0, [sp, #0x1c]
+ cmp r0, #0x1
+ beq _02006B6C
+ cmp r0, #0x2
+ beq _02006B7C
+ b _02006B88
+_02006B6C:
+ mov r0, #0x1
+ lsl r0, r0, #0x1a
+ ldr r1, [r0, #0x0]
+ ldr r0, _02006BA4 ; =0x00300010
+ and r1, r0
+ ldr r0, [sp, #0x4]
+ str r1, [r0, #0x8]
+ b _02006B88
+_02006B7C:
+ ldr r0, _02006BA8 ; =0x04001000
+ ldr r1, [r0, #0x0]
+ ldr r0, _02006BA4 ; =0x00300010
+ and r1, r0
+ ldr r0, [sp, #0x4]
+ str r1, [r0, #0x8]
+_02006B88:
+ lsl r6, r5, #0x2
+ ldr r5, _02006BAC ; =0x020ECB98
+ ldr r0, [sp, #0x4]
+ ldr r1, [sp, #0x20]
+ ldr r2, [sp, #0x1c]
+ ldr r3, [sp, #0x28]
+ ldr r5, [r5, r6]
+ blx r5
+_02006B98:
+ add r0, r4, #0x0
+ bl FUN_02016A18
+_02006B9E:
+ add sp, #0x8
+ pop {r4-r6, pc}
+ nop
+_02006BA4: .word 0x00300010
+_02006BA8: .word 0x04001000
+_02006BAC: .word 0x020ECB98
+
+ thumb_func_start FUN_02006BB0
+FUN_02006BB0: ; 0x02006BB0
+ push {r3-r5, lr}
+ add r4, r3, #0x0
+ mov r3, #0x0
+ str r3, [sp, #0x0]
+ ldr r3, [sp, #0x10]
+ bl FUN_02006C98
+ add r5, r0, #0x0
+ beq _02006BD6
+ add r1, r4, #0x0
+ blx FUN_020B0030
+ cmp r0, #0x0
+ bne _02006BD6
+ add r0, r5, #0x0
+ bl FUN_02016A18
+ mov r0, #0x0
+ pop {r3-r5, pc}
+_02006BD6:
+ add r0, r5, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_02006BDC
+FUN_02006BDC: ; 0x02006BDC
+ push {r3-r5, lr}
+ add r4, r3, #0x0
+ mov r3, #0x0
+ str r3, [sp, #0x0]
+ ldr r3, [sp, #0x10]
+ bl FUN_02006C98
+ add r5, r0, #0x0
+ beq _02006C02
+ add r1, r4, #0x0
+ blx FUN_020B0180
+ cmp r0, #0x0
+ bne _02006C02
+ add r0, r5, #0x0
+ bl FUN_02016A18
+ mov r0, #0x0
+ pop {r3-r5, pc}
+_02006C02:
+ add r0, r5, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_02006C08
+FUN_02006C08: ; 0x02006C08
+ push {r3-r5, lr}
+ add r5, r2, #0x0
+ mov r2, #0x0
+ str r2, [sp, #0x0]
+ bl FUN_02006C98
+ add r4, r0, #0x0
+ beq _02006C2C
+ add r1, r5, #0x0
+ blx FUN_020B0138
+ cmp r0, #0x0
+ bne _02006C2C
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ mov r0, #0x0
+ pop {r3-r5, pc}
+_02006C2C:
+ add r0, r4, #0x0
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_02006C30
+FUN_02006C30: ; 0x02006C30
+ push {r3-r5, lr}
+ add r4, r3, #0x0
+ mov r3, #0x0
+ str r3, [sp, #0x0]
+ ldr r3, [sp, #0x10]
+ bl FUN_02006C98
+ add r5, r0, #0x0
+ beq _02006C56
+ add r1, r4, #0x0
+ blx FUN_020AFEB8
+ cmp r0, #0x0
+ bne _02006C56
+ add r0, r5, #0x0
+ bl FUN_02016A18
+ mov r0, #0x0
+ pop {r3-r5, pc}
+_02006C56:
+ add r0, r5, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_02006C5C
+FUN_02006C5C: ; 0x02006C5C
+ push {r3-r5, lr}
+ add r4, r3, #0x0
+ mov r3, #0x0
+ str r3, [sp, #0x0]
+ ldr r3, [sp, #0x10]
+ bl FUN_02006C98
+ add r5, r0, #0x0
+ beq _02006C82
+ add r1, r4, #0x0
+ blx thunk_FUN_020afda0_2
+ cmp r0, #0x0
+ bne _02006C82
+ add r0, r5, #0x0
+ bl FUN_02016A18
+ mov r0, #0x0
+ pop {r3-r5, pc}
+_02006C82:
+ add r0, r5, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_02006C88
+FUN_02006C88: ; 0x02006C88
+ push {r3, lr}
+ add r3, r2, #0x0
+ mov r2, #0x0
+ str r2, [sp, #0x0]
+ mov r2, #0x1
+ bl FUN_02006C98
+ pop {r3, pc}
+
+ thumb_func_start FUN_02006C98
+FUN_02006C98: ; 0x02006C98
+ push {r3-r7, lr}
+ add r5, r2, #0x0
+ add r7, r0, #0x0
+ add r6, r3, #0x0
+ str r1, [sp, #0x0]
+ cmp r5, #0x0
+ bne _02006CAC
+ ldr r2, [sp, #0x18]
+ cmp r2, #0x1
+ bne _02006CC0
+_02006CAC:
+ ldr r1, [sp, #0x0]
+ add r0, r7, #0x0
+ bl LoadFromNARC_7
+ add r1, r0, #0x0
+ add r0, r6, #0x0
+ bl FUN_020169D8
+ add r4, r0, #0x0
+ b _02006CCE
+_02006CC0:
+ bl LoadFromNARC_7
+ add r1, r0, #0x0
+ add r0, r6, #0x0
+ bl FUN_02016998
+ add r4, r0, #0x0
+_02006CCE:
+ cmp r4, #0x0
+ beq _02006D12
+ ldr r2, [sp, #0x0]
+ add r0, r4, #0x0
+ add r1, r7, #0x0
+ bl LoadFromNARC
+ cmp r5, #0x0
+ beq _02006D12
+ ldr r0, [sp, #0x18]
+ cmp r0, #0x0
+ bne _02006CF2
+ ldr r1, [r4, #0x0]
+ add r0, r6, #0x0
+ lsr r1, r1, #0x8
+ bl FUN_02016998
+ b _02006CFC
+_02006CF2:
+ ldr r1, [r4, #0x0]
+ add r0, r6, #0x0
+ lsr r1, r1, #0x8
+ bl FUN_020169D8
+_02006CFC:
+ add r5, r0, #0x0
+ cmp r5, #0x0
+ beq _02006D10
+ add r0, r4, #0x0
+ add r1, r5, #0x0
+ blx MI_UncompressLZ8
+ add r0, r4, #0x0
+ bl FUN_02016A18
+_02006D10:
+ add r4, r5, #0x0
+_02006D12:
+ add r0, r4, #0x0
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_02006D18
+FUN_02006D18: ; 0x02006D18
+ push {r3-r7, lr}
+ sub sp, #0x8
+ ldr r5, [sp, #0x24]
+ str r0, [sp, #0x0]
+ str r1, [sp, #0x4]
+ add r6, r2, #0x0
+ add r7, r3, #0x0
+ bl LoadFromNARC_7
+ str r0, [r5, #0x0]
+ cmp r6, #0x0
+ bne _02006D36
+ ldr r0, [sp, #0x20]
+ cmp r0, #0x1
+ bne _02006D42
+_02006D36:
+ ldr r1, [r5, #0x0]
+ add r0, r7, #0x0
+ bl FUN_020169D8
+ add r4, r0, #0x0
+ b _02006D4C
+_02006D42:
+ ldr r1, [r5, #0x0]
+ add r0, r7, #0x0
+ bl FUN_02016998
+ add r4, r0, #0x0
+_02006D4C:
+ cmp r4, #0x0
+ beq _02006D92
+ ldr r1, [sp, #0x0]
+ ldr r2, [sp, #0x4]
+ add r0, r4, #0x0
+ bl LoadFromNARC
+ cmp r6, #0x0
+ beq _02006D92
+ ldr r0, [r4, #0x0]
+ lsr r0, r0, #0x8
+ str r0, [r5, #0x0]
+ ldr r0, [sp, #0x20]
+ cmp r0, #0x0
+ bne _02006D74
+ ldr r1, [r5, #0x0]
+ add r0, r7, #0x0
+ bl FUN_02016998
+ b _02006D7C
+_02006D74:
+ ldr r1, [r5, #0x0]
+ add r0, r7, #0x0
+ bl FUN_020169D8
+_02006D7C:
+ add r5, r0, #0x0
+ cmp r5, #0x0
+ beq _02006D90
+ add r0, r4, #0x0
+ add r1, r5, #0x0
+ blx MI_UncompressLZ8
+ add r0, r4, #0x0
+ bl FUN_02016A18
+_02006D90:
+ add r4, r5, #0x0
+_02006D92:
+ add r0, r4, #0x0
+ add sp, #0x8
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_02006D98
+FUN_02006D98: ; 0x02006D98
+ push {r3-r7, lr}
+ sub sp, #0x10
+ mov r1, #0xba
+ lsl r1, r1, #0x2
+ add r5, r0, #0x0
+ bl FUN_02016998
+ add r4, r0, #0x0
+ mov r0, #0xa6
+ lsl r0, r0, #0x2
+ add r1, r0, #0x0
+ add r3, r0, #0x0
+ str r5, [r4, r0]
+ mov r2, #0x0
+ add r1, #0x48
+ strb r2, [r4, r1]
+ add r1, r0, #0x4
+ str r2, [r4, r1]
+ mov r1, #0x2
+ lsl r1, r1, #0xe
+ add r3, #0x8
+ str r1, [r4, r3]
+ add r3, r0, #0x0
+ add r3, #0xc
+ str r2, [r4, r3]
+ mov r2, #0x80
+ add r0, #0x10
+ str r2, [r4, r0]
+ add r0, r5, #0x0
+ bl FUN_02016998
+ mov r1, #0xab
+ lsl r1, r1, #0x2
+ str r0, [r4, r1]
+ add r0, r5, #0x0
+ mov r1, #0xc0
+ bl FUN_02016998
+ mov r1, #0x2b
+ lsl r1, r1, #0x4
+ str r0, [r4, r1]
+ ldr r1, [r4, r1]
+ mov r0, #0x0
+ mov r2, #0x4
+ blx MIi_CpuClearFast
+ add r0, r5, #0x0
+ mov r1, #0xc0
+ bl FUN_02016998
+ mov r1, #0xad
+ lsl r1, r1, #0x2
+ str r0, [r4, r1]
+ ldr r1, [r4, r1]
+ mov r0, #0x0
+ mov r2, #0x4
+ blx MIi_CpuClearFast
+ mov r6, #0x0
+ add r5, r4, #0x0
+ add r7, r6, #0x0
+_02006E12:
+ add r0, r7, #0x0
+ add r1, r5, #0x0
+ mov r2, #0x98
+ blx MIi_CpuClearFast
+ add r6, r6, #0x1
+ add r5, #0x98
+ cmp r6, #0x4
+ blt _02006E12
+ blx FUN_020B02C8
+ ldr r2, _02006EC8 ; =0x000002E3
+ mov r0, #0x0
+ strb r0, [r4, r2]
+ sub r2, #0x4b
+ ldr r2, [r4, r2]
+ mov r0, #0x75
+ mov r1, #0xd3
+ bl LoadFromNarc_2
+ add r1, sp, #0xc
+ str r0, [sp, #0x4]
+ blx FUN_020B0088
+ ldr r0, [sp, #0xc]
+ mov r1, #0xaf
+ ldr r0, [r0, #0x4]
+ lsl r1, r1, #0x2
+ str r0, [r4, r1]
+ ldr r0, [sp, #0xc]
+ ldr r2, [r0, #0x8]
+ add r0, r1, #0x4
+ str r2, [r4, r0]
+ ldr r0, [sp, #0xc]
+ add r1, #0x8
+ ldr r0, [r0, #0xc]
+ str r0, [r4, r1]
+ ldr r0, [sp, #0xc]
+ ldr r0, [r0, #0x14]
+ str r0, [sp, #0x8]
+ bl FUN_02008A74
+ ldr r1, [sp, #0x8]
+ mov r0, #0xab
+ lsl r0, r0, #0x2
+ mov r2, #0x2
+ ldrb r1, [r1, #0x0]
+ ldr r0, [r4, r0]
+ lsl r2, r2, #0xe
+ blx MI_CpuFill8
+ mov r0, #0x0
+ mov r7, #0xab
+ ldr r6, _02006ECC ; =0x00005050
+ mov r12, r0
+ str r0, [sp, #0x0]
+ add r3, r0, #0x0
+ lsl r7, r7, #0x2
+_02006E86:
+ ldr r2, [sp, #0x8]
+ ldr r0, [sp, #0x0]
+ mov r1, #0x0
+ add r2, r2, r0
+_02006E8E:
+ ldr r5, [r4, r7]
+ ldrb r0, [r2, #0x0]
+ add r5, r3, r5
+ add r5, r1, r5
+ add r1, r1, #0x1
+ add r2, r2, #0x1
+ strb r0, [r5, r6]
+ cmp r1, #0x28
+ blt _02006E8E
+ ldr r0, [sp, #0x0]
+ add r3, #0x80
+ add r0, #0x50
+ str r0, [sp, #0x0]
+ mov r0, r12
+ add r0, r0, #0x1
+ mov r12, r0
+ cmp r0, #0x50
+ blt _02006E86
+ ldr r0, [sp, #0x4]
+ bl FUN_02016A18
+ ldr r0, _02006ED0 ; =0x000002E1
+ mov r1, #0x1
+ strb r1, [r4, r0]
+ add r0, r0, #0x1
+ strb r1, [r4, r0]
+ add r0, r4, #0x0
+ add sp, #0x10
+ pop {r3-r7, pc}
+ .balign 4
+_02006EC8: .word 0x000002E3
+_02006ECC: .word 0x00005050
+_02006ED0: .word 0x000002E1
+
+ thumb_func_start FUN_02006ED4
+FUN_02006ED4: ; 0x02006ED4
+ push {r3-r7, lr}
+ sub sp, #0x20
+ add r5, r0, #0x0
+ bl FUN_020082A8
+ add r0, r5, #0x0
+ bl FUN_020086F4
+ blx FUN_020BB394
+ mov r6, #0x9f
+ mov r0, #0x0
+ ldr r4, _02007250 ; =0x04000444
+ lsl r6, r6, #0x2
+ str r0, [r4, #0x0]
+ str r0, [sp, #0x18]
+ add r0, r6, #0x0
+ sub r0, #0xc
+ ldr r1, [r5, r0]
+ add r3, r6, #0x0
+ ldr r2, [r5, r6]
+ add r0, r6, #0x0
+ sub r3, #0x8
+ add r6, #0x20
+ ldr r3, [r5, r3]
+ ldr r6, [r5, r6]
+ sub r0, #0x10
+ ldr r0, [r5, r0]
+ lsr r6, r6, #0x3
+ lsl r3, r3, #0x1a
+ orr r6, r3
+ mov r3, #0x1
+ lsl r3, r3, #0x1e
+ lsl r0, r0, #0x14
+ orr r3, r6
+ lsl r1, r1, #0x17
+ orr r0, r3
+ lsl r2, r2, #0x1d
+ orr r0, r1
+ orr r0, r2
+ str r0, [r4, #0x64]
+ ldr r0, [sp, #0x18]
+ add r4, r5, #0x0
+ str r0, [sp, #0x14]
+ ldr r0, _02007254 ; =0x020ECD4C
+ str r0, [sp, #0x1c]
+_02006F30:
+ ldr r0, [r4, #0x0]
+ lsl r0, r0, #0x1f
+ lsr r0, r0, #0x1f
+ beq _02006F46
+ ldr r0, [r4, #0x54]
+ lsl r1, r0, #0x1f
+ lsr r1, r1, #0x1f
+ bne _02006F46
+ lsl r0, r0, #0x14
+ lsr r0, r0, #0x1f
+ beq _02006F48
+_02006F46:
+ b _020072BC
+_02006F48:
+ ldr r2, [r4, #0x68]
+ cmp r2, #0x0
+ beq _02006F56
+ add r1, r4, #0x0
+ add r0, r4, #0x0
+ add r1, #0x24
+ blx r2
+_02006F56:
+ blx FUN_020BB394
+ ldr r0, _02007258 ; =0x000002E3
+ ldrb r0, [r5, r0]
+ cmp r0, #0x1
+ beq _02006F68
+ ldr r0, _0200725C ; =0x04000454
+ mov r1, #0x0
+ str r1, [r0, #0x0]
+_02006F68:
+ add r0, r4, #0x0
+ bl FUN_02007F48
+ mov r0, #0x9d
+ lsl r0, r0, #0x2
+ ldr r0, [r5, r0]
+ cmp r0, #0x2
+ bne _02006F7C
+ mov r0, #0x1
+ b _02006F7E
+_02006F7C:
+ mov r0, #0x0
+_02006F7E:
+ mov r1, #0xa9
+ lsl r1, r1, #0x2
+ ldr r2, [r5, r1]
+ ldr r1, [sp, #0x14]
+ add r2, r2, r1
+ mov r1, #0x4
+ sub r0, r1, r0
+ add r1, r2, #0x0
+ lsr r1, r0
+ ldr r0, _02007260 ; =0x040004AC
+ str r1, [r0, #0x0]
+ ldr r0, [r4, #0x28]
+ lsl r1, r0, #0xc
+ mov r0, #0x26
+ ldrsh r2, [r4, r0]
+ mov r0, #0x42
+ ldrsh r0, [r4, r0]
+ add r0, r2, r0
+ mov r2, #0x24
+ ldrsh r3, [r4, r2]
+ mov r2, #0x40
+ ldrsh r2, [r4, r2]
+ lsl r0, r0, #0xc
+ add r2, r3, r2
+ lsl r3, r2, #0xc
+ ldr r2, _02007264 ; =0x04000470
+ str r3, [r2, #0x0]
+ str r0, [r2, #0x0]
+ add r0, r2, #0x0
+ str r1, [r0, #0x0]
+ ldrh r0, [r4, #0x38]
+ asr r0, r0, #0x4
+ lsl r1, r0, #0x2
+ ldr r0, _02007268 ; =0x020FFA38
+ add r2, r0, r1
+ ldrsh r0, [r0, r1]
+ mov r1, #0x2
+ ldrsh r1, [r2, r1]
+ blx G3_RotX
+ ldrh r0, [r4, #0x3a]
+ asr r0, r0, #0x4
+ lsl r1, r0, #0x2
+ ldr r0, _02007268 ; =0x020FFA38
+ add r2, r0, r1
+ ldrsh r0, [r0, r1]
+ mov r1, #0x2
+ ldrsh r1, [r2, r1]
+ blx G3_RotY
+ ldrh r0, [r4, #0x3c]
+ asr r0, r0, #0x4
+ lsl r1, r0, #0x2
+ ldr r0, _02007268 ; =0x020FFA38
+ add r2, r0, r1
+ ldrsh r0, [r0, r1]
+ mov r1, #0x2
+ ldrsh r1, [r2, r1]
+ blx G3_RotZ
+ ldr r0, [r4, #0x28]
+ lsl r0, r0, #0xc
+ neg r1, r0
+ mov r0, #0x26
+ ldrsh r2, [r4, r0]
+ mov r0, #0x42
+ ldrsh r0, [r4, r0]
+ add r0, r2, r0
+ mov r2, #0x24
+ ldrsh r3, [r4, r2]
+ mov r2, #0x40
+ ldrsh r2, [r4, r2]
+ lsl r0, r0, #0xc
+ neg r0, r0
+ add r2, r3, r2
+ lsl r2, r2, #0xc
+ neg r3, r2
+ ldr r2, _02007264 ; =0x04000470
+ str r3, [r2, #0x0]
+ str r0, [r2, #0x0]
+ add r0, r2, #0x0
+ str r1, [r0, #0x0]
+ ldr r3, [r4, #0x50]
+ lsl r0, r3, #0x11
+ lsr r0, r0, #0x1b
+ lsl r2, r3, #0x16
+ lsl r1, r0, #0xa
+ lsl r0, r3, #0x1b
+ lsr r2, r2, #0x1b
+ lsr r0, r0, #0x1b
+ lsl r2, r2, #0x5
+ orr r0, r2
+ orr r0, r1
+ lsl r0, r0, #0x10
+ lsr r2, r0, #0x10
+ lsl r0, r3, #0x2
+ lsr r0, r0, #0x1b
+ lsl r1, r0, #0xa
+ lsl r0, r3, #0xc
+ lsl r3, r3, #0x7
+ lsr r3, r3, #0x1b
+ lsr r0, r0, #0x1b
+ lsl r3, r3, #0x5
+ orr r0, r3
+ orr r0, r1
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ lsl r0, r0, #0x10
+ add r1, r2, #0x0
+ orr r1, r0
+ mov r0, #0x2
+ lsl r0, r0, #0xe
+ orr r1, r0
+ ldr r0, _0200726C ; =0x040004C0
+ str r1, [r0, #0x0]
+ ldr r1, _02007270 ; =0x00004210
+ add r0, r0, #0x4
+ str r1, [r0, #0x0]
+ ldr r1, [r4, #0x0]
+ ldr r0, [r4, #0x54]
+ lsl r1, r1, #0x19
+ lsl r0, r0, #0x19
+ lsr r1, r1, #0x1a
+ lsr r0, r0, #0x1b
+ lsl r2, r1, #0x18
+ mov r1, #0xc0
+ lsl r0, r0, #0x10
+ orr r1, r2
+ orr r1, r0
+ ldr r0, _02007274 ; =0x040004A4
+ str r1, [r0, #0x0]
+ ldr r0, [r4, #0x54]
+ lsl r0, r0, #0x1e
+ lsr r0, r0, #0x1f
+ beq _02007104
+ add r0, r4, #0x0
+ add r0, #0x5b
+ ldrb r0, [r0, #0x0]
+ add r2, r4, #0x0
+ add r2, #0x44
+ lsl r1, r0, #0x4
+ ldr r0, [sp, #0x1c]
+ ldrb r3, [r2, #0x0]
+ add r0, r0, r1
+ ldr r2, [sp, #0x1c]
+ ldr r0, [r0, #0x4]
+ ldr r1, [r2, r1]
+ add r6, r3, r1
+ add r1, r4, #0x0
+ add r1, #0x46
+ ldrb r1, [r1, #0x0]
+ mov r12, r1
+ add r1, r4, #0x0
+ add r1, #0x45
+ ldrb r2, [r1, #0x0]
+ add r1, r2, r0
+ add r0, r4, #0x0
+ add r0, #0x47
+ ldrb r7, [r0, #0x0]
+ mov r0, r12
+ add r0, r0, r6
+ str r7, [sp, #0x0]
+ str r6, [sp, #0x4]
+ str r1, [sp, #0x8]
+ str r0, [sp, #0xc]
+ add r0, r7, r1
+ str r0, [sp, #0x10]
+ mov r1, #0x24
+ ldrsh r1, [r4, r1]
+ mov r0, #0x2c
+ ldrsh r0, [r4, r0]
+ sub r1, #0x28
+ add r1, r1, r3
+ add r0, r0, r1
+ mov r3, #0x26
+ ldrsh r3, [r4, r3]
+ mov r1, #0x2e
+ lsl r0, r0, #0x10
+ sub r3, #0x28
+ add r2, r3, r2
+ ldrsh r1, [r4, r1]
+ ldr r3, [r4, #0x28]
+ asr r0, r0, #0x10
+ add r2, r1, r2
+ mov r1, #0x6e
+ ldrsb r1, [r4, r1]
+ sub r1, r2, r1
+ ldr r2, [r4, #0x30]
+ lsl r1, r1, #0x10
+ add r2, r3, r2
+ asr r1, r1, #0x10
+ mov r3, r12
+ blx FUN_020B0250
+ b _02007174
+_02007104:
+ mov r0, #0x34
+ ldrsh r1, [r4, r0]
+ mov r0, #0x50
+ ldr r2, [sp, #0x1c]
+ mul r0, r1
+ asr r3, r0, #0x8
+ mov r0, #0x36
+ ldrsh r1, [r4, r0]
+ mov r0, #0x50
+ ldr r6, [sp, #0x1c]
+ mul r0, r1
+ asr r1, r0, #0x8
+ add r0, r4, #0x0
+ add r0, #0x5b
+ ldrb r0, [r0, #0x0]
+ lsl r0, r0, #0x4
+ str r1, [sp, #0x0]
+ add r2, r2, r0
+ ldr r0, [r6, r0]
+ lsr r6, r1, #0x1f
+ str r0, [sp, #0x4]
+ ldr r0, [r2, #0x4]
+ add r6, r1, r6
+ str r0, [sp, #0x8]
+ ldr r0, [r2, #0x8]
+ asr r1, r6, #0x1
+ str r0, [sp, #0xc]
+ ldr r0, [r2, #0xc]
+ str r0, [sp, #0x10]
+ mov r0, #0x24
+ ldrsh r2, [r4, r0]
+ lsr r0, r3, #0x1f
+ add r0, r3, r0
+ asr r0, r0, #0x1
+ sub r2, r2, r0
+ mov r0, #0x2c
+ ldrsh r0, [r4, r0]
+ ldr r6, [r4, #0x28]
+ add r0, r2, r0
+ mov r2, #0x26
+ ldrsh r2, [r4, r2]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ sub r2, r2, r1
+ mov r1, #0x2e
+ ldrsh r1, [r4, r1]
+ add r2, r2, r1
+ mov r1, #0x6e
+ ldrsb r1, [r4, r1]
+ sub r1, r2, r1
+ ldr r2, [r4, #0x30]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add r2, r6, r2
+ blx FUN_020B0250
+_02007174:
+ add r0, r4, #0x0
+ add r0, #0x6c
+ ldrh r0, [r0, #0x0]
+ lsl r1, r0, #0x1e
+ lsr r1, r1, #0x1e
+ beq _0200719A
+ lsl r0, r0, #0x19
+ lsr r0, r0, #0x1e
+ beq _0200719A
+ ldr r0, [r4, #0x54]
+ lsl r0, r0, #0x1e
+ lsr r0, r0, #0x1f
+ bne _0200719A
+ mov r0, #0xb9
+ lsl r0, r0, #0x2
+ ldr r1, [r5, r0]
+ mov r0, #0x1
+ tst r0, r1
+ beq _0200719C
+_0200719A:
+ b _020072BC
+_0200719C:
+ ldr r0, _02007258 ; =0x000002E3
+ ldrb r0, [r5, r0]
+ cmp r0, #0x1
+ beq _020071AA
+ ldr r0, _0200725C ; =0x04000454
+ mov r1, #0x0
+ str r1, [r0, #0x0]
+_020071AA:
+ mov r0, #0x9d
+ lsl r0, r0, #0x2
+ ldr r0, [r5, r0]
+ cmp r0, #0x2
+ bne _020071B8
+ mov r1, #0x1
+ b _020071BA
+_020071B8:
+ mov r1, #0x0
+_020071BA:
+ add r2, r4, #0x0
+ add r2, #0x6c
+ ldrh r2, [r2, #0x0]
+ mov r0, #0xa9
+ lsl r0, r0, #0x2
+ lsl r2, r2, #0x1e
+ lsr r2, r2, #0x1e
+ add r2, r2, #0x3
+ ldr r0, [r5, r0]
+ lsl r2, r2, #0x5
+ add r2, r0, r2
+ mov r0, #0x4
+ sub r0, r0, r1
+ add r1, r2, #0x0
+ lsr r1, r0
+ ldr r0, _02007260 ; =0x040004AC
+ str r1, [r0, #0x0]
+ add r0, r4, #0x0
+ add r0, #0x6c
+ ldrh r0, [r0, #0x0]
+ lsl r0, r0, #0x1b
+ lsr r0, r0, #0x1f
+ beq _020071FA
+ mov r0, #0x34
+ ldrsh r0, [r4, r0]
+ lsl r0, r0, #0x6
+ asr r3, r0, #0x8
+ mov r0, #0x36
+ ldrsh r0, [r4, r0]
+ lsl r0, r0, #0x4
+ asr r1, r0, #0x8
+ b _020071FE
+_020071FA:
+ mov r3, #0x40
+ mov r1, #0x10
+_020071FE:
+ add r0, r4, #0x0
+ add r0, #0x6c
+ ldrh r0, [r0, #0x0]
+ lsl r0, r0, #0x1d
+ lsr r0, r0, #0x1f
+ beq _02007220
+ mov r0, #0x74
+ ldrsh r2, [r4, r0]
+ mov r0, #0x24
+ mov r6, #0x2c
+ ldrsh r0, [r4, r0]
+ ldrsh r6, [r4, r6]
+ add r0, r0, r6
+ add r2, r2, r0
+ add r0, r4, #0x0
+ add r0, #0x70
+ strh r2, [r0, #0x0]
+_02007220:
+ add r0, r4, #0x0
+ add r0, #0x6c
+ ldrh r0, [r0, #0x0]
+ lsl r0, r0, #0x1c
+ lsr r0, r0, #0x1f
+ beq _02007242
+ mov r0, #0x76
+ ldrsh r2, [r4, r0]
+ mov r0, #0x26
+ mov r6, #0x2e
+ ldrsh r0, [r4, r0]
+ ldrsh r6, [r4, r6]
+ add r0, r0, r6
+ add r2, r2, r0
+ add r0, r4, #0x0
+ add r0, #0x72
+ strh r2, [r0, #0x0]
+_02007242:
+ add r0, r4, #0x0
+ add r0, #0x6c
+ ldrh r0, [r0, #0x0]
+ ldr r2, _02007278 ; =0x020ECBD0
+ ldr r6, _02007278 ; =0x020ECBD0
+ b _0200727C
+ nop
+_02007250: .word 0x04000444
+_02007254: .word 0x020ECD4C
+_02007258: .word 0x000002E3
+_0200725C: .word 0x04000454
+_02007260: .word 0x040004AC
+_02007264: .word 0x04000470
+_02007268: .word 0x020FFA38
+_0200726C: .word 0x040004C0
+_02007270: .word 0x00004210
+_02007274: .word 0x040004A4
+_02007278: .word 0x020ECBD0
+_0200727C:
+ lsl r0, r0, #0x19
+ lsr r0, r0, #0x1e
+ lsl r0, r0, #0x4
+ str r1, [sp, #0x0]
+ add r2, r2, r0
+ ldr r0, [r6, r0]
+ lsr r6, r1, #0x1f
+ str r0, [sp, #0x4]
+ ldr r0, [r2, #0x4]
+ add r6, r1, r6
+ str r0, [sp, #0x8]
+ ldr r0, [r2, #0x8]
+ asr r1, r6, #0x1
+ str r0, [sp, #0xc]
+ ldr r0, [r2, #0xc]
+ str r0, [sp, #0x10]
+ mov r0, #0x70
+ ldrsh r2, [r4, r0]
+ lsr r0, r3, #0x1f
+ add r0, r3, r0
+ asr r0, r0, #0x1
+ sub r0, r2, r0
+ mov r2, #0x72
+ ldrsh r2, [r4, r2]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ sub r1, r2, r1
+ lsl r1, r1, #0x10
+ ldr r2, _020072E0 ; =0xFFFFFC18
+ asr r1, r1, #0x10
+ blx FUN_020B0250
+_020072BC:
+ ldr r0, [sp, #0x14]
+ add r4, #0x98
+ add r0, #0x20
+ str r0, [sp, #0x14]
+ ldr r0, [sp, #0x1c]
+ add r0, #0x20
+ str r0, [sp, #0x1c]
+ ldr r0, [sp, #0x18]
+ add r0, r0, #0x1
+ str r0, [sp, #0x18]
+ cmp r0, #0x4
+ bge _020072D6
+ b _02006F30
+_020072D6:
+ ldr r0, _020072E4 ; =0x04000448
+ mov r1, #0x1
+ str r1, [r0, #0x0]
+ add sp, #0x20
+ pop {r3-r7, pc}
+ .balign 4
+_020072E0: .word 0xFFFFFC18
+_020072E4: .word 0x04000448
+
+ thumb_func_start FUN_020072E8
+FUN_020072E8: ; 0x020072E8
+ push {r4, lr}
+ add r4, r0, #0x0
+ mov r0, #0xab
+ lsl r0, r0, #0x2
+ ldr r0, [r4, r0]
+ bl FUN_02016A18
+ mov r0, #0x2b
+ lsl r0, r0, #0x4
+ ldr r0, [r4, r0]
+ bl FUN_02016A18
+ mov r0, #0xad
+ lsl r0, r0, #0x2
+ ldr r0, [r4, r0]
+ bl FUN_02016A18
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02007314
+FUN_02007314: ; 0x02007314
+ push {r3-r4}
+ add r1, r0, #0x0
+ mov r3, #0x0
+ add r1, #0x59
+ strb r3, [r1, #0x0]
+ add r1, r3, #0x0
+_02007320:
+ add r2, r0, r3
+ add r2, #0x5c
+ add r3, r3, #0x1
+ strb r1, [r2, #0x0]
+ cmp r3, #0xa
+ blt _02007320
+ add r2, r0, #0x0
+ add r2, #0x59
+ ldrb r2, [r2, #0x0]
+ lsl r2, r2, #0x1
+ add r3, r0, r2
+ mov r2, #0x84
+ ldrsb r4, [r3, r2]
+ add r3, r2, #0x0
+ sub r3, #0x85
+ cmp r4, r3
+ bne _0200734A
+ add r0, #0x5b
+ strb r1, [r0, #0x0]
+ pop {r3-r4}
+ bx lr
+_0200734A:
+ add r1, r0, #0x0
+ mov r3, #0x1
+ add r1, #0x58
+ strb r3, [r1, #0x0]
+ add r1, r0, #0x0
+ add r1, #0x59
+ ldrb r1, [r1, #0x0]
+ lsl r1, r1, #0x1
+ add r1, r0, r1
+ ldrsb r2, [r1, r2]
+ add r1, r0, #0x0
+ add r1, #0x5b
+ strb r2, [r1, #0x0]
+ add r1, r0, #0x0
+ add r1, #0x59
+ ldrb r1, [r1, #0x0]
+ lsl r1, r1, #0x1
+ add r1, r0, r1
+ add r1, #0x85
+ ldrb r1, [r1, #0x0]
+ add r0, #0x5a
+ strb r1, [r0, #0x0]
+ pop {r3-r4}
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_0200737C
+FUN_0200737C: ; 0x0200737C
+ add r2, r0, #0x0
+ ldr r3, _0200738C ; =MI_CpuCopy8
+ add r2, #0x84
+ add r0, r1, #0x0
+ add r1, r2, #0x0
+ mov r2, #0x14
+ bx r3
+ nop
+_0200738C: .word MI_CpuCopy8
+
+ thumb_func_start FUN_02007390
+FUN_02007390: ; 0x02007390
+ add r0, #0x58
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x0
+ beq _0200739C
+ mov r0, #0x1
+ bx lr
+_0200739C:
+ mov r0, #0x0
+ bx lr
+
+ thumb_func_start FUN_020073A0
+FUN_020073A0: ; 0x020073A0
+ push {r3-r7, lr}
+ sub sp, #0x18
+ add r5, r0, #0x0
+ add r6, r1, #0x0
+ add r7, r2, #0x0
+ str r3, [sp, #0x14]
+ mov r4, #0x0
+_020073AE:
+ ldr r1, [r0, #0x0]
+ lsl r1, r1, #0x1f
+ lsr r1, r1, #0x1f
+ beq _020073BE
+ add r4, r4, #0x1
+ add r0, #0x98
+ cmp r4, #0x4
+ blt _020073AE
+_020073BE:
+ cmp r4, #0x4
+ bne _020073C6
+ bl ErrorHandling
+_020073C6:
+ ldr r0, [sp, #0x30]
+ ldr r3, [sp, #0x14]
+ str r0, [sp, #0x0]
+ ldr r0, [sp, #0x34]
+ add r1, r6, #0x0
+ str r0, [sp, #0x4]
+ ldr r0, [sp, #0x38]
+ str r4, [sp, #0x8]
+ str r0, [sp, #0xc]
+ ldr r0, [sp, #0x3c]
+ add r2, r7, #0x0
+ str r0, [sp, #0x10]
+ add r0, r5, #0x0
+ bl FUN_020073E8
+ add sp, #0x18
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_020073E8
+FUN_020073E8: ; 0x020073E8
+ push {r4-r7, lr}
+ sub sp, #0xc
+ str r1, [sp, #0x8]
+ ldr r1, [sp, #0x28]
+ add r4, r0, #0x0
+ mov r0, #0x98
+ add r6, r1, #0x0
+ mul r6, r0
+ ldr r0, [r4, r6]
+ str r2, [sp, #0x0]
+ lsl r0, r0, #0x1f
+ str r3, [sp, #0x4]
+ lsr r0, r0, #0x1f
+ beq _02007408
+ bl ErrorHandling
+_02007408:
+ add r5, r4, r6
+ mov r0, #0x0
+ add r1, r5, #0x0
+ mov r2, #0x98
+ blx MIi_CpuClearFast
+ ldr r1, [r4, r6]
+ mov r0, #0x1
+ bic r1, r0
+ mov r0, #0x1
+ orr r0, r1
+ str r0, [r4, r6]
+ ldr r1, [r4, r6]
+ mov r0, #0x80
+ orr r0, r1
+ str r0, [r4, r6]
+ mov r0, #0x80
+ ldr r1, [r4, r6]
+ add r0, #0x80
+ orr r0, r1
+ str r0, [r4, r6]
+ add r2, r5, #0x0
+ ldr r0, [r4, r6]
+ mov r1, #0x7e
+ bic r0, r1
+ ldr r1, [sp, #0x24]
+ add r7, r2, #0x4
+ lsl r1, r1, #0x1a
+ lsr r1, r1, #0x19
+ orr r0, r1
+ str r0, [r4, r6]
+ ldr r0, [sp, #0x8]
+ mov r12, r0
+ mov r3, r12
+ ldmia r3!, {r0-r1}
+ stmia r7!, {r0-r1}
+ ldmia r3!, {r0-r1}
+ stmia r7!, {r0-r1}
+ add r7, r2, #0x0
+ ldr r3, [sp, #0x8]
+ add r7, #0x14
+ ldmia r3!, {r0-r1}
+ stmia r7!, {r0-r1}
+ str r3, [sp, #0x8]
+ ldmia r3!, {r0-r1}
+ stmia r7!, {r0-r1}
+ ldr r0, [sp, #0x0]
+ ldr r1, [sp, #0x4]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ lsl r1, r1, #0x10
+ asr r7, r1, #0x10
+ strh r0, [r2, #0x24]
+ str r3, [sp, #0x8]
+ ldr r1, [sp, #0x20]
+ strh r7, [r2, #0x26]
+ str r1, [r2, #0x28]
+ mov r1, #0x80
+ add r1, #0x80
+ strh r1, [r2, #0x34]
+ strh r1, [r2, #0x36]
+ ldr r1, [r5, #0x54]
+ mov r3, #0x7c
+ bic r1, r3
+ mov r3, #0x7c
+ orr r1, r3
+ str r1, [r5, #0x54]
+ ldr r1, [r5, #0x50]
+ mov r3, #0x1f
+ bic r1, r3
+ mov r3, #0x1f
+ orr r3, r1
+ ldr r1, _02007520 ; =0xFFFFFC1F
+ and r1, r3
+ mov r3, #0x1f
+ lsl r3, r3, #0x5
+ orr r3, r1
+ ldr r1, _02007524 ; =0xFFFF83FF
+ and r1, r3
+ mov r3, #0x1f
+ lsl r3, r3, #0xa
+ orr r3, r1
+ ldr r1, _02007528 ; =0xFFF07FFF
+ and r1, r3
+ mov r3, #0x80
+ lsl r3, r3, #0xc
+ orr r3, r1
+ ldr r1, _0200752C ; =0xFE0FFFFF
+ and r1, r3
+ mov r3, #0x80
+ lsl r3, r3, #0x11
+ orr r3, r1
+ ldr r1, _02007530 ; =0xC1FFFFFF
+ and r1, r3
+ mov r3, #0x80
+ lsl r3, r3, #0x16
+ orr r1, r3
+ str r1, [r5, #0x50]
+ ldr r1, [sp, #0x30]
+ str r1, [r2, #0x68]
+ add r1, r2, #0x0
+ add r1, #0x70
+ strh r0, [r1, #0x0]
+ add r2, #0x72
+ add r0, r5, #0x0
+ strh r7, [r2, #0x0]
+ add r0, #0x6c
+ ldrh r1, [r0, #0x0]
+ mov r0, #0x4
+ orr r1, r0
+ add r0, r5, #0x0
+ add r0, #0x6c
+ strh r1, [r0, #0x0]
+ add r0, r5, #0x0
+ add r0, #0x6c
+ ldrh r1, [r0, #0x0]
+ mov r0, #0x8
+ orr r1, r0
+ add r0, r5, #0x0
+ add r0, #0x6c
+ strh r1, [r0, #0x0]
+ add r0, r5, #0x0
+ add r0, #0x6c
+ ldrh r1, [r0, #0x0]
+ mov r0, #0x10
+ add r5, #0x6c
+ orr r0, r1
+ strh r0, [r5, #0x0]
+ ldr r0, [sp, #0x2c]
+ cmp r0, #0x0
+ beq _02007518
+ add r1, r4, r6
+ add r1, #0x84
+ mov r2, #0x14
+ blx MI_CpuCopy8
+_02007518:
+ add r0, r4, r6
+ add sp, #0xc
+ pop {r4-r7, pc}
+ nop
+_02007520: .word 0xFFFFFC1F
+_02007524: .word 0xFFFF83FF
+_02007528: .word 0xFFF07FFF
+_0200752C: .word 0xFE0FFFFF
+_02007530: .word 0xC1FFFFFF
+
+ thumb_func_start FUN_02007534
+FUN_02007534: ; 0x02007534
+ ldr r2, [r0, #0x0]
+ mov r1, #0x1
+ bic r2, r1
+ str r2, [r0, #0x0]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02007540
+FUN_02007540: ; 0x02007540
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ mov r4, #0x0
+_02007546:
+ add r0, r5, #0x0
+ bl FUN_02007534
+ add r4, r4, #0x1
+ add r5, #0x98
+ cmp r4, #0x4
+ blt _02007546
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_02007558
+FUN_02007558: ; 0x02007558
+ cmp r1, #0x2e
+ bls _0200755E
+ b _02007800
+_0200755E:
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #0x6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_0200756A: ; jump table (using 16-bit offset)
+ .short _020075C8 - _0200756A - 2; case 0
+ .short _020075CC - _0200756A - 2; case 1
+ .short _020075D0 - _0200756A - 2; case 2
+ .short _020075D4 - _0200756A - 2; case 3
+ .short _020075D8 - _0200756A - 2; case 4
+ .short _020075DC - _0200756A - 2; case 5
+ .short _020075E0 - _0200756A - 2; case 6
+ .short _020075F0 - _0200756A - 2; case 7
+ .short _020075F4 - _0200756A - 2; case 8
+ .short _020075F8 - _0200756A - 2; case 9
+ .short _020075FC - _0200756A - 2; case 10
+ .short _02007602 - _0200756A - 2; case 11
+ .short _02007608 - _0200756A - 2; case 12
+ .short _0200760C - _0200756A - 2; case 13
+ .short _02007610 - _0200756A - 2; case 14
+ .short _02007620 - _0200756A - 2; case 15
+ .short _02007626 - _0200756A - 2; case 16
+ .short _0200762C - _0200756A - 2; case 17
+ .short _02007632 - _0200756A - 2; case 18
+ .short _02007638 - _0200756A - 2; case 19
+ .short _0200763E - _0200756A - 2; case 20
+ .short _02007644 - _0200756A - 2; case 21
+ .short _0200764A - _0200756A - 2; case 22
+ .short _02007650 - _0200756A - 2; case 23
+ .short _02007660 - _0200756A - 2; case 24
+ .short _02007670 - _0200756A - 2; case 25
+ .short _02007680 - _0200756A - 2; case 26
+ .short _02007690 - _0200756A - 2; case 27
+ .short _020076A0 - _0200756A - 2; case 28
+ .short _020076B0 - _0200756A - 2; case 29
+ .short _020076C0 - _0200756A - 2; case 30
+ .short _020076DA - _0200756A - 2; case 31
+ .short _020076E8 - _0200756A - 2; case 32
+ .short _020076FA - _0200756A - 2; case 33
+ .short _0200770C - _0200756A - 2; case 34
+ .short _02007712 - _0200756A - 2; case 35
+ .short _0200772A - _0200756A - 2; case 36
+ .short _02007742 - _0200756A - 2; case 37
+ .short _02007752 - _0200756A - 2; case 38
+ .short _02007800 - _0200756A - 2; case 39
+ .short _02007758 - _0200756A - 2; case 40
+ .short _02007770 - _0200756A - 2; case 41
+ .short _02007776 - _0200756A - 2; case 42
+ .short _0200779A - _0200756A - 2; case 43
+ .short _020077B4 - _0200756A - 2; case 44
+ .short _020077CE - _0200756A - 2; case 45
+ .short _020077E8 - _0200756A - 2; case 46
+_020075C8:
+ strh r2, [r0, #0x24]
+ bx lr
+_020075CC:
+ strh r2, [r0, #0x26]
+ bx lr
+_020075D0:
+ str r2, [r0, #0x28]
+ bx lr
+_020075D4:
+ strh r2, [r0, #0x2c]
+ bx lr
+_020075D8:
+ strh r2, [r0, #0x2e]
+ bx lr
+_020075DC:
+ str r2, [r0, #0x30]
+ bx lr
+_020075E0:
+ ldr r3, [r0, #0x54]
+ mov r1, #0x1
+ bic r3, r1
+ mov r1, #0x1
+ and r1, r2
+ orr r1, r3
+ str r1, [r0, #0x54]
+ bx lr
+_020075F0:
+ strh r2, [r0, #0x38]
+ bx lr
+_020075F4:
+ strh r2, [r0, #0x3a]
+ bx lr
+_020075F8:
+ strh r2, [r0, #0x3c]
+ bx lr
+_020075FC:
+ add r0, #0x40
+ strh r2, [r0, #0x0]
+ bx lr
+_02007602:
+ add r0, #0x42
+ strh r2, [r0, #0x0]
+ bx lr
+_02007608:
+ strh r2, [r0, #0x34]
+ bx lr
+_0200760C:
+ strh r2, [r0, #0x36]
+ bx lr
+_02007610:
+ ldr r3, [r0, #0x54]
+ mov r1, #0x2
+ bic r3, r1
+ lsl r1, r2, #0x1f
+ lsr r1, r1, #0x1e
+ orr r1, r3
+ str r1, [r0, #0x54]
+ bx lr
+_02007620:
+ add r0, #0x44
+ strb r2, [r0, #0x0]
+ bx lr
+_02007626:
+ add r0, #0x45
+ strb r2, [r0, #0x0]
+ bx lr
+_0200762C:
+ add r0, #0x46
+ strb r2, [r0, #0x0]
+ bx lr
+_02007632:
+ add r0, #0x47
+ strb r2, [r0, #0x0]
+ bx lr
+_02007638:
+ add r0, #0x70
+ strh r2, [r0, #0x0]
+ bx lr
+_0200763E:
+ add r0, #0x72
+ strh r2, [r0, #0x0]
+ bx lr
+_02007644:
+ add r0, #0x74
+ strh r2, [r0, #0x0]
+ bx lr
+_0200764A:
+ add r0, #0x76
+ strh r2, [r0, #0x0]
+ bx lr
+_02007650:
+ ldr r3, [r0, #0x54]
+ mov r1, #0x7c
+ bic r3, r1
+ lsl r1, r2, #0x1b
+ lsr r1, r1, #0x19
+ orr r1, r3
+ str r1, [r0, #0x54]
+ bx lr
+_02007660:
+ ldr r3, [r0, #0x50]
+ mov r1, #0x1f
+ bic r3, r1
+ mov r1, #0x1f
+ and r1, r2
+ orr r1, r3
+ str r1, [r0, #0x50]
+ bx lr
+_02007670:
+ ldr r3, [r0, #0x50]
+ ldr r1, _02007804 ; =0xFFFFFC1F
+ and r3, r1
+ lsl r1, r2, #0x1b
+ lsr r1, r1, #0x16
+ orr r1, r3
+ str r1, [r0, #0x50]
+ bx lr
+_02007680:
+ ldr r3, [r0, #0x50]
+ ldr r1, _02007808 ; =0xFFFF83FF
+ and r3, r1
+ lsl r1, r2, #0x1b
+ lsr r1, r1, #0x11
+ orr r1, r3
+ str r1, [r0, #0x50]
+ bx lr
+_02007690:
+ ldr r3, [r0, #0x50]
+ ldr r1, _0200780C ; =0xFFF07FFF
+ and r3, r1
+ lsl r1, r2, #0x1b
+ lsr r1, r1, #0xc
+ orr r1, r3
+ str r1, [r0, #0x50]
+ bx lr
+_020076A0:
+ ldr r3, [r0, #0x50]
+ ldr r1, _02007810 ; =0xFE0FFFFF
+ and r3, r1
+ lsl r1, r2, #0x1b
+ lsr r1, r1, #0x7
+ orr r1, r3
+ str r1, [r0, #0x50]
+ bx lr
+_020076B0:
+ ldr r3, [r0, #0x50]
+ ldr r1, _02007814 ; =0xC1FFFFFF
+ and r3, r1
+ lsl r1, r2, #0x1b
+ lsr r1, r1, #0x2
+ orr r1, r3
+ str r1, [r0, #0x50]
+ bx lr
+_020076C0:
+ ldr r3, [r0, #0x54]
+ ldr r1, _02007818 ; =0xFFFFEFFF
+ and r3, r1
+ lsl r1, r2, #0x1f
+ lsr r1, r1, #0x13
+ orr r1, r3
+ str r1, [r0, #0x54]
+ mov r1, #0x1
+ ldr r2, [r0, #0x0]
+ lsl r1, r1, #0x8
+ orr r1, r2
+ str r1, [r0, #0x0]
+ bx lr
+_020076DA:
+ str r2, [r0, #0x4c]
+ mov r1, #0x1
+ ldr r2, [r0, #0x0]
+ lsl r1, r1, #0x8
+ orr r1, r2
+ str r1, [r0, #0x0]
+ bx lr
+_020076E8:
+ add r1, r0, #0x0
+ add r1, #0x48
+ strb r2, [r1, #0x0]
+ mov r1, #0x1
+ ldr r2, [r0, #0x0]
+ lsl r1, r1, #0x8
+ orr r1, r2
+ str r1, [r0, #0x0]
+ bx lr
+_020076FA:
+ add r1, r0, #0x0
+ add r1, #0x49
+ strb r2, [r1, #0x0]
+ mov r1, #0x1
+ ldr r2, [r0, #0x0]
+ lsl r1, r1, #0x8
+ orr r1, r2
+ str r1, [r0, #0x0]
+ bx lr
+_0200770C:
+ add r0, #0x4a
+ strb r2, [r0, #0x0]
+ bx lr
+_02007712:
+ ldr r3, [r0, #0x54]
+ ldr r1, _0200781C ; =0xFFFFFDFF
+ and r3, r1
+ lsl r1, r2, #0x1f
+ lsr r1, r1, #0x16
+ orr r1, r3
+ str r1, [r0, #0x54]
+ ldr r2, [r0, #0x0]
+ mov r1, #0x80
+ orr r1, r2
+ str r1, [r0, #0x0]
+ bx lr
+_0200772A:
+ ldr r3, [r0, #0x54]
+ ldr r1, _02007820 ; =0xFFFFFBFF
+ and r3, r1
+ lsl r1, r2, #0x1f
+ lsr r1, r1, #0x15
+ orr r1, r3
+ str r1, [r0, #0x54]
+ ldr r2, [r0, #0x0]
+ mov r1, #0x80
+ orr r1, r2
+ str r1, [r0, #0x0]
+ bx lr
+_02007742:
+ ldr r3, [r0, #0x54]
+ ldr r1, _02007824 ; =0xFFFFF7FF
+ and r3, r1
+ lsl r1, r2, #0x1f
+ lsr r1, r1, #0x14
+ orr r1, r3
+ str r1, [r0, #0x54]
+ bx lr
+_02007752:
+ add r0, #0x5b
+ strb r2, [r0, #0x0]
+ bx lr
+_02007758:
+ ldr r3, [r0, #0x54]
+ ldr r1, _02007828 ; =0xFFFE1FFF
+ and r3, r1
+ lsl r1, r2, #0x1c
+ lsr r1, r1, #0xf
+ orr r1, r3
+ str r1, [r0, #0x54]
+ ldr r2, [r0, #0x0]
+ mov r1, #0x80
+ orr r1, r2
+ str r1, [r0, #0x0]
+ bx lr
+_02007770:
+ add r0, #0x6e
+ strb r2, [r0, #0x0]
+ bx lr
+_02007776:
+ add r1, r0, #0x0
+ add r1, #0x6c
+ ldrh r3, [r1, #0x0]
+ mov r1, #0x3
+ bic r3, r1
+ lsl r1, r2, #0x10
+ lsr r1, r1, #0x10
+ mov r2, #0x3
+ and r1, r2
+ orr r3, r1
+ add r1, r0, #0x0
+ add r1, #0x6c
+ strh r3, [r1, #0x0]
+ ldr r1, [r0, #0x0]
+ add r2, #0xfd
+ orr r1, r2
+ str r1, [r0, #0x0]
+ bx lr
+_0200779A:
+ add r1, r0, #0x0
+ add r1, #0x6c
+ ldrh r3, [r1, #0x0]
+ mov r1, #0x4
+ add r0, #0x6c
+ bic r3, r1
+ lsl r1, r2, #0x10
+ lsr r1, r1, #0x10
+ lsl r1, r1, #0x1f
+ lsr r1, r1, #0x1d
+ orr r1, r3
+ strh r1, [r0, #0x0]
+ bx lr
+_020077B4:
+ add r1, r0, #0x0
+ add r1, #0x6c
+ ldrh r3, [r1, #0x0]
+ mov r1, #0x8
+ add r0, #0x6c
+ bic r3, r1
+ lsl r1, r2, #0x10
+ lsr r1, r1, #0x10
+ lsl r1, r1, #0x1f
+ lsr r1, r1, #0x1c
+ orr r1, r3
+ strh r1, [r0, #0x0]
+ bx lr
+_020077CE:
+ add r1, r0, #0x0
+ add r1, #0x6c
+ ldrh r3, [r1, #0x0]
+ mov r1, #0x10
+ add r0, #0x6c
+ bic r3, r1
+ lsl r1, r2, #0x10
+ lsr r1, r1, #0x10
+ lsl r1, r1, #0x1f
+ lsr r1, r1, #0x1b
+ orr r1, r3
+ strh r1, [r0, #0x0]
+ bx lr
+_020077E8:
+ add r1, r0, #0x0
+ add r1, #0x6c
+ ldrh r3, [r1, #0x0]
+ mov r1, #0x60
+ add r0, #0x6c
+ bic r3, r1
+ lsl r1, r2, #0x10
+ lsr r1, r1, #0x10
+ lsl r1, r1, #0x1e
+ lsr r1, r1, #0x19
+ orr r1, r3
+ strh r1, [r0, #0x0]
+_02007800:
+ bx lr
+ nop
+_02007804: .word 0xFFFFFC1F
+_02007808: .word 0xFFFF83FF
+_0200780C: .word 0xFFF07FFF
+_02007810: .word 0xFE0FFFFF
+_02007814: .word 0xC1FFFFFF
+_02007818: .word 0xFFFFEFFF
+_0200781C: .word 0xFFFFFDFF
+_02007820: .word 0xFFFFFBFF
+_02007824: .word 0xFFFFF7FF
+_02007828: .word 0xFFFE1FFF
+
+ thumb_func_start FUN_0200782C
+FUN_0200782C: ; 0x0200782C
+ push {r3, lr}
+ cmp r1, #0x2e
+ bls _02007834
+ b _020079D6
+_02007834:
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #0x6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_02007840: ; jump table (using 16-bit offset)
+ .short _0200789E - _02007840 - 2; case 0
+ .short _020078A4 - _02007840 - 2; case 1
+ .short _020078AA - _02007840 - 2; case 2
+ .short _020078AE - _02007840 - 2; case 3
+ .short _020078B4 - _02007840 - 2; case 4
+ .short _020078BA - _02007840 - 2; case 5
+ .short _020078BE - _02007840 - 2; case 6
+ .short _020078C6 - _02007840 - 2; case 7
+ .short _020078CA - _02007840 - 2; case 8
+ .short _020078CE - _02007840 - 2; case 9
+ .short _020078D2 - _02007840 - 2; case 10
+ .short _020078D8 - _02007840 - 2; case 11
+ .short _020078DE - _02007840 - 2; case 12
+ .short _020078E4 - _02007840 - 2; case 13
+ .short _020078EA - _02007840 - 2; case 14
+ .short _020078F2 - _02007840 - 2; case 15
+ .short _020078F8 - _02007840 - 2; case 16
+ .short _020078FE - _02007840 - 2; case 17
+ .short _02007904 - _02007840 - 2; case 18
+ .short _0200790A - _02007840 - 2; case 19
+ .short _02007910 - _02007840 - 2; case 20
+ .short _02007916 - _02007840 - 2; case 21
+ .short _0200791C - _02007840 - 2; case 22
+ .short _02007922 - _02007840 - 2; case 23
+ .short _0200792A - _02007840 - 2; case 24
+ .short _02007932 - _02007840 - 2; case 25
+ .short _0200793A - _02007840 - 2; case 26
+ .short _02007942 - _02007840 - 2; case 27
+ .short _0200794A - _02007840 - 2; case 28
+ .short _02007952 - _02007840 - 2; case 29
+ .short _0200795A - _02007840 - 2; case 30
+ .short _02007962 - _02007840 - 2; case 31
+ .short _02007966 - _02007840 - 2; case 32
+ .short _0200796C - _02007840 - 2; case 33
+ .short _02007972 - _02007840 - 2; case 34
+ .short _02007978 - _02007840 - 2; case 35
+ .short _02007980 - _02007840 - 2; case 36
+ .short _02007988 - _02007840 - 2; case 37
+ .short _02007990 - _02007840 - 2; case 38
+ .short _020079D6 - _02007840 - 2; case 39
+ .short _02007996 - _02007840 - 2; case 40
+ .short _0200799E - _02007840 - 2; case 41
+ .short _020079A4 - _02007840 - 2; case 42
+ .short _020079AE - _02007840 - 2; case 43
+ .short _020079B8 - _02007840 - 2; case 44
+ .short _020079C2 - _02007840 - 2; case 45
+ .short _020079CC - _02007840 - 2; case 46
+_0200789E:
+ mov r1, #0x24
+ ldrsh r0, [r0, r1]
+ pop {r3, pc}
+_020078A4:
+ mov r1, #0x26
+ ldrsh r0, [r0, r1]
+ pop {r3, pc}
+_020078AA:
+ ldr r0, [r0, #0x28]
+ pop {r3, pc}
+_020078AE:
+ mov r1, #0x2c
+ ldrsh r0, [r0, r1]
+ pop {r3, pc}
+_020078B4:
+ mov r1, #0x2e
+ ldrsh r0, [r0, r1]
+ pop {r3, pc}
+_020078BA:
+ ldr r0, [r0, #0x30]
+ pop {r3, pc}
+_020078BE:
+ ldr r0, [r0, #0x54]
+ lsl r0, r0, #0x1f
+ lsr r0, r0, #0x1f
+ pop {r3, pc}
+_020078C6:
+ ldrh r0, [r0, #0x38]
+ pop {r3, pc}
+_020078CA:
+ ldrh r0, [r0, #0x3a]
+ pop {r3, pc}
+_020078CE:
+ ldrh r0, [r0, #0x3c]
+ pop {r3, pc}
+_020078D2:
+ mov r1, #0x40
+ ldrsh r0, [r0, r1]
+ pop {r3, pc}
+_020078D8:
+ mov r1, #0x42
+ ldrsh r0, [r0, r1]
+ pop {r3, pc}
+_020078DE:
+ mov r1, #0x34
+ ldrsh r0, [r0, r1]
+ pop {r3, pc}
+_020078E4:
+ mov r1, #0x36
+ ldrsh r0, [r0, r1]
+ pop {r3, pc}
+_020078EA:
+ ldr r0, [r0, #0x54]
+ lsl r0, r0, #0x1e
+ lsr r0, r0, #0x1f
+ pop {r3, pc}
+_020078F2:
+ add r0, #0x44
+ ldrb r0, [r0, #0x0]
+ pop {r3, pc}
+_020078F8:
+ add r0, #0x45
+ ldrb r0, [r0, #0x0]
+ pop {r3, pc}
+_020078FE:
+ add r0, #0x46
+ ldrb r0, [r0, #0x0]
+ pop {r3, pc}
+_02007904:
+ add r0, #0x47
+ ldrb r0, [r0, #0x0]
+ pop {r3, pc}
+_0200790A:
+ mov r1, #0x70
+ ldrsh r0, [r0, r1]
+ pop {r3, pc}
+_02007910:
+ mov r1, #0x72
+ ldrsh r0, [r0, r1]
+ pop {r3, pc}
+_02007916:
+ mov r1, #0x74
+ ldrsh r0, [r0, r1]
+ pop {r3, pc}
+_0200791C:
+ mov r1, #0x76
+ ldrsh r0, [r0, r1]
+ pop {r3, pc}
+_02007922:
+ ldr r0, [r0, #0x54]
+ lsl r0, r0, #0x19
+ lsr r0, r0, #0x1b
+ pop {r3, pc}
+_0200792A:
+ ldr r0, [r0, #0x50]
+ lsl r0, r0, #0x1b
+ lsr r0, r0, #0x1b
+ pop {r3, pc}
+_02007932:
+ ldr r0, [r0, #0x50]
+ lsl r0, r0, #0x16
+ lsr r0, r0, #0x1b
+ pop {r3, pc}
+_0200793A:
+ ldr r0, [r0, #0x50]
+ lsl r0, r0, #0x11
+ lsr r0, r0, #0x1b
+ pop {r3, pc}
+_02007942:
+ ldr r0, [r0, #0x50]
+ lsl r0, r0, #0xc
+ lsr r0, r0, #0x1b
+ pop {r3, pc}
+_0200794A:
+ ldr r0, [r0, #0x50]
+ lsl r0, r0, #0x7
+ lsr r0, r0, #0x1b
+ pop {r3, pc}
+_02007952:
+ ldr r0, [r0, #0x50]
+ lsl r0, r0, #0x2
+ lsr r0, r0, #0x1b
+ pop {r3, pc}
+_0200795A:
+ ldr r0, [r0, #0x54]
+ lsl r0, r0, #0x13
+ lsr r0, r0, #0x1f
+ pop {r3, pc}
+_02007962:
+ ldr r0, [r0, #0x4c]
+ pop {r3, pc}
+_02007966:
+ add r0, #0x48
+ ldrb r0, [r0, #0x0]
+ pop {r3, pc}
+_0200796C:
+ add r0, #0x49
+ ldrb r0, [r0, #0x0]
+ pop {r3, pc}
+_02007972:
+ add r0, #0x4a
+ ldrb r0, [r0, #0x0]
+ pop {r3, pc}
+_02007978:
+ ldr r0, [r0, #0x54]
+ lsl r0, r0, #0x16
+ lsr r0, r0, #0x1f
+ pop {r3, pc}
+_02007980:
+ ldr r0, [r0, #0x54]
+ lsl r0, r0, #0x15
+ lsr r0, r0, #0x1f
+ pop {r3, pc}
+_02007988:
+ ldr r0, [r0, #0x54]
+ lsl r0, r0, #0x14
+ lsr r0, r0, #0x1f
+ pop {r3, pc}
+_02007990:
+ add r0, #0x5b
+ ldrb r0, [r0, #0x0]
+ pop {r3, pc}
+_02007996:
+ ldr r0, [r0, #0x54]
+ lsl r0, r0, #0xf
+ lsr r0, r0, #0x1c
+ pop {r3, pc}
+_0200799E:
+ mov r1, #0x6e
+ ldrsb r0, [r0, r1]
+ pop {r3, pc}
+_020079A4:
+ add r0, #0x6c
+ ldrh r0, [r0, #0x0]
+ lsl r0, r0, #0x1e
+ lsr r0, r0, #0x1e
+ pop {r3, pc}
+_020079AE:
+ add r0, #0x6c
+ ldrh r0, [r0, #0x0]
+ lsl r0, r0, #0x1d
+ lsr r0, r0, #0x1f
+ pop {r3, pc}
+_020079B8:
+ add r0, #0x6c
+ ldrh r0, [r0, #0x0]
+ lsl r0, r0, #0x1c
+ lsr r0, r0, #0x1f
+ pop {r3, pc}
+_020079C2:
+ add r0, #0x6c
+ ldrh r0, [r0, #0x0]
+ lsl r0, r0, #0x1b
+ lsr r0, r0, #0x1f
+ pop {r3, pc}
+_020079CC:
+ add r0, #0x6c
+ ldrh r0, [r0, #0x0]
+ lsl r0, r0, #0x19
+ lsr r0, r0, #0x1e
+ pop {r3, pc}
+_020079D6:
+ bl ErrorHandling
+ mov r0, #0x0
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_020079E0
+FUN_020079E0: ; 0x020079E0
+ push {r3-r4}
+ add r3, r0, #0x0
+ add r0, r2, #0x0
+ cmp r1, #0x2e
+ bls _020079EC
+ b _02007E12
+_020079EC:
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #0x6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_020079F8: ; jump table (using 16-bit offset)
+ .short _02007A56 - _020079F8 - 2; case 0
+ .short _02007A62 - _020079F8 - 2; case 1
+ .short _02007A6E - _020079F8 - 2; case 2
+ .short _02007A78 - _020079F8 - 2; case 3
+ .short _02007A84 - _020079F8 - 2; case 4
+ .short _02007A90 - _020079F8 - 2; case 5
+ .short _02007A9A - _020079F8 - 2; case 6
+ .short _02007AB4 - _020079F8 - 2; case 7
+ .short _02007ABE - _020079F8 - 2; case 8
+ .short _02007AC8 - _020079F8 - 2; case 9
+ .short _02007AD2 - _020079F8 - 2; case 10
+ .short _02007AE0 - _020079F8 - 2; case 11
+ .short _02007AEE - _020079F8 - 2; case 12
+ .short _02007AFA - _020079F8 - 2; case 13
+ .short _02007B06 - _020079F8 - 2; case 14
+ .short _02007B20 - _020079F8 - 2; case 15
+ .short _02007B30 - _020079F8 - 2; case 16
+ .short _02007B40 - _020079F8 - 2; case 17
+ .short _02007B50 - _020079F8 - 2; case 18
+ .short _02007B60 - _020079F8 - 2; case 19
+ .short _02007B6E - _020079F8 - 2; case 20
+ .short _02007B7C - _020079F8 - 2; case 21
+ .short _02007B8A - _020079F8 - 2; case 22
+ .short _02007B98 - _020079F8 - 2; case 23
+ .short _02007BB2 - _020079F8 - 2; case 24
+ .short _02007BCC - _020079F8 - 2; case 25
+ .short _02007BE4 - _020079F8 - 2; case 26
+ .short _02007BFC - _020079F8 - 2; case 27
+ .short _02007C14 - _020079F8 - 2; case 28
+ .short _02007C2C - _020079F8 - 2; case 29
+ .short _02007C44 - _020079F8 - 2; case 30
+ .short _02007C66 - _020079F8 - 2; case 31
+ .short _02007C7A - _020079F8 - 2; case 32
+ .short _02007C96 - _020079F8 - 2; case 33
+ .short _02007CB2 - _020079F8 - 2; case 34
+ .short _02007CC2 - _020079F8 - 2; case 35
+ .short _02007CE2 - _020079F8 - 2; case 36
+ .short _02007D02 - _020079F8 - 2; case 37
+ .short _02007D1A - _020079F8 - 2; case 38
+ .short _02007E12 - _020079F8 - 2; case 39
+ .short _02007D2A - _020079F8 - 2; case 40
+ .short _02007D4A - _020079F8 - 2; case 41
+ .short _02007D58 - _020079F8 - 2; case 42
+ .short _02007D86 - _020079F8 - 2; case 43
+ .short _02007DAA - _020079F8 - 2; case 44
+ .short _02007DCE - _020079F8 - 2; case 45
+ .short _02007DF2 - _020079F8 - 2; case 46
+_02007A56:
+ mov r1, #0x24
+ ldrsh r1, [r3, r1]
+ add r0, r1, r0
+ strh r0, [r3, #0x24]
+ pop {r3-r4}
+ bx lr
+_02007A62:
+ mov r1, #0x26
+ ldrsh r1, [r3, r1]
+ add r0, r1, r0
+ strh r0, [r3, #0x26]
+ pop {r3-r4}
+ bx lr
+_02007A6E:
+ ldr r1, [r3, #0x28]
+ add r0, r1, r0
+ str r0, [r3, #0x28]
+ pop {r3-r4}
+ bx lr
+_02007A78:
+ mov r1, #0x2c
+ ldrsh r1, [r3, r1]
+ add r0, r1, r0
+ strh r0, [r3, #0x2c]
+ pop {r3-r4}
+ bx lr
+_02007A84:
+ mov r1, #0x2e
+ ldrsh r1, [r3, r1]
+ add r0, r1, r0
+ strh r0, [r3, #0x2e]
+ pop {r3-r4}
+ bx lr
+_02007A90:
+ ldr r1, [r3, #0x30]
+ add r0, r1, r0
+ str r0, [r3, #0x30]
+ pop {r3-r4}
+ bx lr
+_02007A9A:
+ ldr r4, [r3, #0x54]
+ mov r2, #0x1
+ add r1, r4, #0x0
+ bic r1, r2
+ lsl r2, r4, #0x1f
+ lsr r2, r2, #0x1f
+ add r2, r2, r0
+ mov r0, #0x1
+ and r0, r2
+ orr r0, r1
+ str r0, [r3, #0x54]
+ pop {r3-r4}
+ bx lr
+_02007AB4:
+ ldrh r1, [r3, #0x38]
+ add r0, r1, r0
+ strh r0, [r3, #0x38]
+ pop {r3-r4}
+ bx lr
+_02007ABE:
+ ldrh r1, [r3, #0x3a]
+ add r0, r1, r0
+ strh r0, [r3, #0x3a]
+ pop {r3-r4}
+ bx lr
+_02007AC8:
+ ldrh r1, [r3, #0x3c]
+ add r0, r1, r0
+ strh r0, [r3, #0x3c]
+ pop {r3-r4}
+ bx lr
+_02007AD2:
+ mov r1, #0x40
+ ldrsh r1, [r3, r1]
+ add r3, #0x40
+ add r0, r1, r0
+ strh r0, [r3, #0x0]
+ pop {r3-r4}
+ bx lr
+_02007AE0:
+ mov r1, #0x42
+ ldrsh r1, [r3, r1]
+ add r3, #0x42
+ add r0, r1, r0
+ strh r0, [r3, #0x0]
+ pop {r3-r4}
+ bx lr
+_02007AEE:
+ mov r1, #0x34
+ ldrsh r1, [r3, r1]
+ add r0, r1, r0
+ strh r0, [r3, #0x34]
+ pop {r3-r4}
+ bx lr
+_02007AFA:
+ mov r1, #0x36
+ ldrsh r1, [r3, r1]
+ add r0, r1, r0
+ strh r0, [r3, #0x36]
+ pop {r3-r4}
+ bx lr
+_02007B06:
+ ldr r4, [r3, #0x54]
+ mov r2, #0x2
+ add r1, r4, #0x0
+ bic r1, r2
+ lsl r2, r4, #0x1e
+ lsr r2, r2, #0x1f
+ add r0, r2, r0
+ lsl r0, r0, #0x1f
+ lsr r0, r0, #0x1e
+ orr r0, r1
+ str r0, [r3, #0x54]
+ pop {r3-r4}
+ bx lr
+_02007B20:
+ add r1, r3, #0x0
+ add r1, #0x44
+ ldrb r1, [r1, #0x0]
+ add r3, #0x44
+ add r0, r1, r0
+ strb r0, [r3, #0x0]
+ pop {r3-r4}
+ bx lr
+_02007B30:
+ add r1, r3, #0x0
+ add r1, #0x45
+ ldrb r1, [r1, #0x0]
+ add r3, #0x45
+ add r0, r1, r0
+ strb r0, [r3, #0x0]
+ pop {r3-r4}
+ bx lr
+_02007B40:
+ add r1, r3, #0x0
+ add r1, #0x46
+ ldrb r1, [r1, #0x0]
+ add r3, #0x46
+ add r0, r1, r0
+ strb r0, [r3, #0x0]
+ pop {r3-r4}
+ bx lr
+_02007B50:
+ add r1, r3, #0x0
+ add r1, #0x47
+ ldrb r1, [r1, #0x0]
+ add r3, #0x47
+ add r0, r1, r0
+ strb r0, [r3, #0x0]
+ pop {r3-r4}
+ bx lr
+_02007B60:
+ mov r1, #0x70
+ ldrsh r1, [r3, r1]
+ add r3, #0x70
+ add r0, r1, r0
+ strh r0, [r3, #0x0]
+ pop {r3-r4}
+ bx lr
+_02007B6E:
+ mov r1, #0x72
+ ldrsh r1, [r3, r1]
+ add r3, #0x72
+ add r0, r1, r0
+ strh r0, [r3, #0x0]
+ pop {r3-r4}
+ bx lr
+_02007B7C:
+ mov r1, #0x74
+ ldrsh r1, [r3, r1]
+ add r3, #0x74
+ add r0, r1, r0
+ strh r0, [r3, #0x0]
+ pop {r3-r4}
+ bx lr
+_02007B8A:
+ mov r1, #0x76
+ ldrsh r1, [r3, r1]
+ add r3, #0x76
+ add r0, r1, r0
+ strh r0, [r3, #0x0]
+ pop {r3-r4}
+ bx lr
+_02007B98:
+ ldr r4, [r3, #0x54]
+ mov r2, #0x7c
+ add r1, r4, #0x0
+ bic r1, r2
+ lsl r2, r4, #0x19
+ lsr r2, r2, #0x1b
+ add r0, r2, r0
+ lsl r0, r0, #0x1b
+ lsr r0, r0, #0x19
+ orr r0, r1
+ str r0, [r3, #0x54]
+ pop {r3-r4}
+ bx lr
+_02007BB2:
+ ldr r4, [r3, #0x50]
+ mov r2, #0x1f
+ add r1, r4, #0x0
+ bic r1, r2
+ lsl r2, r4, #0x1b
+ lsr r2, r2, #0x1b
+ add r2, r2, r0
+ mov r0, #0x1f
+ and r0, r2
+ orr r0, r1
+ str r0, [r3, #0x50]
+ pop {r3-r4}
+ bx lr
+_02007BCC:
+ ldr r2, [r3, #0x50]
+ ldr r1, _02007E18 ; =0xFFFFFC1F
+ and r1, r2
+ lsl r2, r2, #0x16
+ lsr r2, r2, #0x1b
+ add r0, r2, r0
+ lsl r0, r0, #0x1b
+ lsr r0, r0, #0x16
+ orr r0, r1
+ str r0, [r3, #0x50]
+ pop {r3-r4}
+ bx lr
+_02007BE4:
+ ldr r2, [r3, #0x50]
+ ldr r1, _02007E1C ; =0xFFFF83FF
+ and r1, r2
+ lsl r2, r2, #0x11
+ lsr r2, r2, #0x1b
+ add r0, r2, r0
+ lsl r0, r0, #0x1b
+ lsr r0, r0, #0x11
+ orr r0, r1
+ str r0, [r3, #0x50]
+ pop {r3-r4}
+ bx lr
+_02007BFC:
+ ldr r2, [r3, #0x50]
+ ldr r1, _02007E20 ; =0xFFF07FFF
+ and r1, r2
+ lsl r2, r2, #0xc
+ lsr r2, r2, #0x1b
+ add r0, r2, r0
+ lsl r0, r0, #0x1b
+ lsr r0, r0, #0xc
+ orr r0, r1
+ str r0, [r3, #0x50]
+ pop {r3-r4}
+ bx lr
+_02007C14:
+ ldr r2, [r3, #0x50]
+ ldr r1, _02007E24 ; =0xFE0FFFFF
+ and r1, r2
+ lsl r2, r2, #0x7
+ lsr r2, r2, #0x1b
+ add r0, r2, r0
+ lsl r0, r0, #0x1b
+ lsr r0, r0, #0x7
+ orr r0, r1
+ str r0, [r3, #0x50]
+ pop {r3-r4}
+ bx lr
+_02007C2C:
+ ldr r2, [r3, #0x50]
+ ldr r1, _02007E28 ; =0xC1FFFFFF
+ and r1, r2
+ lsl r2, r2, #0x2
+ lsr r2, r2, #0x1b
+ add r0, r2, r0
+ lsl r0, r0, #0x1b
+ lsr r0, r0, #0x2
+ orr r0, r1
+ str r0, [r3, #0x50]
+ pop {r3-r4}
+ bx lr
+_02007C44:
+ ldr r2, [r3, #0x54]
+ ldr r1, _02007E2C ; =0xFFFFEFFF
+ and r1, r2
+ lsl r2, r2, #0x13
+ lsr r2, r2, #0x1f
+ add r0, r2, r0
+ lsl r0, r0, #0x1f
+ lsr r0, r0, #0x13
+ orr r0, r1
+ str r0, [r3, #0x54]
+ mov r0, #0x1
+ ldr r1, [r3, #0x0]
+ lsl r0, r0, #0x8
+ orr r0, r1
+ str r0, [r3, #0x0]
+ pop {r3-r4}
+ bx lr
+_02007C66:
+ ldr r1, [r3, #0x4c]
+ add r0, r1, r0
+ str r0, [r3, #0x4c]
+ mov r0, #0x1
+ ldr r1, [r3, #0x0]
+ lsl r0, r0, #0x8
+ orr r0, r1
+ str r0, [r3, #0x0]
+ pop {r3-r4}
+ bx lr
+_02007C7A:
+ add r1, r3, #0x0
+ add r1, #0x48
+ ldrb r1, [r1, #0x0]
+ add r1, r1, r0
+ add r0, r3, #0x0
+ add r0, #0x48
+ strb r1, [r0, #0x0]
+ mov r0, #0x1
+ ldr r1, [r3, #0x0]
+ lsl r0, r0, #0x8
+ orr r0, r1
+ str r0, [r3, #0x0]
+ pop {r3-r4}
+ bx lr
+_02007C96:
+ add r1, r3, #0x0
+ add r1, #0x49
+ ldrb r1, [r1, #0x0]
+ add r1, r1, r0
+ add r0, r3, #0x0
+ add r0, #0x49
+ strb r1, [r0, #0x0]
+ mov r0, #0x1
+ ldr r1, [r3, #0x0]
+ lsl r0, r0, #0x8
+ orr r0, r1
+ str r0, [r3, #0x0]
+ pop {r3-r4}
+ bx lr
+_02007CB2:
+ add r1, r3, #0x0
+ add r1, #0x4a
+ ldrb r1, [r1, #0x0]
+ add r3, #0x4a
+ add r0, r1, r0
+ strb r0, [r3, #0x0]
+ pop {r3-r4}
+ bx lr
+_02007CC2:
+ ldr r2, [r3, #0x54]
+ ldr r1, _02007E30 ; =0xFFFFFDFF
+ and r1, r2
+ lsl r2, r2, #0x16
+ lsr r2, r2, #0x1f
+ add r0, r2, r0
+ lsl r0, r0, #0x1f
+ lsr r0, r0, #0x16
+ orr r0, r1
+ str r0, [r3, #0x54]
+ ldr r1, [r3, #0x0]
+ mov r0, #0x80
+ orr r0, r1
+ str r0, [r3, #0x0]
+ pop {r3-r4}
+ bx lr
+_02007CE2:
+ ldr r2, [r3, #0x54]
+ ldr r1, _02007E34 ; =0xFFFFFBFF
+ and r1, r2
+ lsl r2, r2, #0x15
+ lsr r2, r2, #0x1f
+ add r0, r2, r0
+ lsl r0, r0, #0x1f
+ lsr r0, r0, #0x15
+ orr r0, r1
+ str r0, [r3, #0x54]
+ ldr r1, [r3, #0x0]
+ mov r0, #0x80
+ orr r0, r1
+ str r0, [r3, #0x0]
+ pop {r3-r4}
+ bx lr
+_02007D02:
+ ldr r2, [r3, #0x54]
+ ldr r1, _02007E38 ; =0xFFFFF7FF
+ and r1, r2
+ lsl r2, r2, #0x14
+ lsr r2, r2, #0x1f
+ add r0, r2, r0
+ lsl r0, r0, #0x1f
+ lsr r0, r0, #0x14
+ orr r0, r1
+ str r0, [r3, #0x54]
+ pop {r3-r4}
+ bx lr
+_02007D1A:
+ add r1, r3, #0x0
+ add r1, #0x5b
+ ldrb r1, [r1, #0x0]
+ add r3, #0x5b
+ add r0, r1, r0
+ strb r0, [r3, #0x0]
+ pop {r3-r4}
+ bx lr
+_02007D2A:
+ ldr r2, [r3, #0x54]
+ ldr r1, _02007E3C ; =0xFFFE1FFF
+ and r1, r2
+ lsl r2, r2, #0xf
+ lsr r2, r2, #0x1c
+ add r0, r2, r0
+ lsl r0, r0, #0x1c
+ lsr r0, r0, #0xf
+ orr r0, r1
+ str r0, [r3, #0x54]
+ ldr r1, [r3, #0x0]
+ mov r0, #0x80
+ orr r0, r1
+ str r0, [r3, #0x0]
+ pop {r3-r4}
+ bx lr
+_02007D4A:
+ mov r1, #0x6e
+ ldrsb r1, [r3, r1]
+ add r3, #0x6e
+ add r0, r1, r0
+ strb r0, [r3, #0x0]
+ pop {r3-r4}
+ bx lr
+_02007D58:
+ add r1, r3, #0x0
+ add r1, #0x6c
+ ldrh r4, [r1, #0x0]
+ mov r2, #0x3
+ add r1, r4, #0x0
+ bic r1, r2
+ lsl r2, r4, #0x1e
+ lsr r2, r2, #0x1e
+ add r0, r2, r0
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ mov r2, #0x3
+ and r0, r2
+ orr r1, r0
+ add r0, r3, #0x0
+ add r0, #0x6c
+ strh r1, [r0, #0x0]
+ ldr r0, [r3, #0x0]
+ add r2, #0xfd
+ orr r0, r2
+ str r0, [r3, #0x0]
+ pop {r3-r4}
+ bx lr
+_02007D86:
+ add r1, r3, #0x0
+ add r1, #0x6c
+ ldrh r4, [r1, #0x0]
+ mov r2, #0x4
+ add r3, #0x6c
+ add r1, r4, #0x0
+ bic r1, r2
+ lsl r2, r4, #0x1d
+ lsr r2, r2, #0x1f
+ add r0, r2, r0
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ lsl r0, r0, #0x1f
+ lsr r0, r0, #0x1d
+ orr r0, r1
+ strh r0, [r3, #0x0]
+ pop {r3-r4}
+ bx lr
+_02007DAA:
+ add r1, r3, #0x0
+ add r1, #0x6c
+ ldrh r4, [r1, #0x0]
+ mov r2, #0x8
+ add r3, #0x6c
+ add r1, r4, #0x0
+ bic r1, r2
+ lsl r2, r4, #0x1c
+ lsr r2, r2, #0x1f
+ add r0, r2, r0
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ lsl r0, r0, #0x1f
+ lsr r0, r0, #0x1c
+ orr r0, r1
+ strh r0, [r3, #0x0]
+ pop {r3-r4}
+ bx lr
+_02007DCE:
+ add r1, r3, #0x0
+ add r1, #0x6c
+ ldrh r4, [r1, #0x0]
+ mov r2, #0x10
+ add r3, #0x6c
+ add r1, r4, #0x0
+ bic r1, r2
+ lsl r2, r4, #0x1b
+ lsr r2, r2, #0x1f
+ add r0, r2, r0
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ lsl r0, r0, #0x1f
+ lsr r0, r0, #0x1b
+ orr r0, r1
+ strh r0, [r3, #0x0]
+ pop {r3-r4}
+ bx lr
+_02007DF2:
+ add r1, r3, #0x0
+ add r1, #0x6c
+ ldrh r4, [r1, #0x0]
+ mov r2, #0x60
+ add r3, #0x6c
+ add r1, r4, #0x0
+ bic r1, r2
+ lsl r2, r4, #0x19
+ lsr r2, r2, #0x1e
+ add r0, r2, r0
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ lsl r0, r0, #0x1e
+ lsr r0, r0, #0x19
+ orr r0, r1
+ strh r0, [r3, #0x0]
+_02007E12:
+ pop {r3-r4}
+ bx lr
+ nop
+_02007E18: .word 0xFFFFFC1F
+_02007E1C: .word 0xFFFF83FF
+_02007E20: .word 0xFFF07FFF
+_02007E24: .word 0xFE0FFFFF
+_02007E28: .word 0xC1FFFFFF
+_02007E2C: .word 0xFFFFEFFF
+_02007E30: .word 0xFFFFFDFF
+_02007E34: .word 0xFFFFFBFF
+_02007E38: .word 0xFFFFF7FF
+_02007E3C: .word 0xFFFE1FFF
+
+ thumb_func_start FUN_02007E40
+FUN_02007E40: ; 0x02007E40
+ push {r4-r5}
+ ldr r5, [r0, #0x54]
+ mov r4, #0x2
+ orr r4, r5
+ str r4, [r0, #0x54]
+ add r4, r0, #0x0
+ add r4, #0x44
+ strb r1, [r4, #0x0]
+ add r1, r0, #0x0
+ add r1, #0x45
+ strb r2, [r1, #0x0]
+ add r1, r0, #0x0
+ add r1, #0x46
+ strb r3, [r1, #0x0]
+ ldr r1, [sp, #0x8]
+ add r0, #0x47
+ strb r1, [r0, #0x0]
+ pop {r4-r5}
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02007E68
+FUN_02007E68: ; 0x02007E68
+ push {r4-r5}
+ mov r4, #0x1
+ ldr r5, [r0, #0x54]
+ lsl r4, r4, #0xc
+ orr r4, r5
+ str r4, [r0, #0x54]
+ add r4, r0, #0x0
+ add r4, #0x48
+ strb r1, [r4, #0x0]
+ add r1, r0, #0x0
+ add r1, #0x49
+ strb r2, [r1, #0x0]
+ add r1, r0, #0x0
+ mov r2, #0x0
+ add r1, #0x4a
+ strb r2, [r1, #0x0]
+ add r1, r0, #0x0
+ add r1, #0x4b
+ strb r3, [r1, #0x0]
+ ldr r1, [sp, #0x8]
+ str r1, [r0, #0x4c]
+ pop {r4-r5}
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02007E98
+FUN_02007E98: ; 0x02007E98
+ push {r4-r7}
+ add r4, r0, #0x0
+ add r0, r1, #0x0
+ add r5, r2, #0x0
+ lsl r0, r0, #0x18
+ lsr r6, r0, #0x18
+ lsl r0, r5, #0x18
+ lsr r5, r0, #0x18
+ lsl r0, r3, #0x18
+ ldr r2, [sp, #0x10]
+ mov r1, #0x0
+ lsr r0, r0, #0x18
+_02007EB0:
+ ldr r3, [r4, #0x0]
+ lsl r3, r3, #0x1f
+ lsr r3, r3, #0x1f
+ beq _02007EDE
+ mov r3, #0x1
+ ldr r7, [r4, #0x54]
+ lsl r3, r3, #0xc
+ orr r3, r7
+ str r3, [r4, #0x54]
+ add r3, r4, #0x0
+ add r3, #0x48
+ strb r6, [r3, #0x0]
+ add r3, r4, #0x0
+ add r3, #0x49
+ add r7, r4, #0x0
+ strb r5, [r3, #0x0]
+ add r7, #0x4a
+ mov r3, #0x0
+ strb r3, [r7, #0x0]
+ add r3, r4, #0x0
+ add r3, #0x4b
+ strb r0, [r3, #0x0]
+ str r2, [r4, #0x4c]
+_02007EDE:
+ add r1, r1, #0x1
+ add r4, #0x98
+ cmp r1, #0x4
+ blt _02007EB0
+ pop {r4-r7}
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02007EEC
+FUN_02007EEC: ; 0x02007EEC
+ ldr r2, [r0, #0x54]
+ ldr r1, _02007F1C ; =0xFFFFEFFF
+ and r1, r2
+ str r1, [r0, #0x54]
+ add r1, r0, #0x0
+ mov r2, #0x0
+ add r1, #0x48
+ strb r2, [r1, #0x0]
+ add r1, r0, #0x0
+ add r1, #0x49
+ strb r2, [r1, #0x0]
+ add r1, r0, #0x0
+ add r1, #0x4a
+ strb r2, [r1, #0x0]
+ add r1, r0, #0x0
+ add r1, #0x4b
+ strb r2, [r1, #0x0]
+ str r2, [r0, #0x4c]
+ mov r1, #0x1
+ ldr r2, [r0, #0x0]
+ lsl r1, r1, #0x8
+ orr r1, r2
+ str r1, [r0, #0x0]
+ bx lr
+ .balign 4
+_02007F1C: .word 0xFFFFEFFF
+
+ thumb_func_start FUN_02007F20
+FUN_02007F20: ; 0x02007F20
+ ldr r0, [r0, #0x54]
+ lsl r0, r0, #0x13
+ lsr r0, r0, #0x1f
+ cmp r0, #0x1
+ bne _02007F2E
+ mov r0, #0x1
+ bx lr
+_02007F2E:
+ mov r0, #0x0
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02007F34
+FUN_02007F34: ; 0x02007F34
+ mov r2, #0x28
+ sub r2, r2, r1
+ mov r1, #0x36
+ ldrsh r1, [r0, r1]
+ mul r1, r2
+ asr r1, r1, #0x8
+ sub r1, r2, r1
+ strh r1, [r0, #0x2e]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02007F48
+FUN_02007F48: ; 0x02007F48
+ push {r4-r7}
+ add r1, r0, #0x0
+ add r1, #0x58
+ ldrb r1, [r1, #0x0]
+ add r6, r0, #0x0
+ add r6, #0x59
+ cmp r1, #0x0
+ beq _0200800A
+ add r1, r0, #0x0
+ add r1, #0x5a
+ ldrb r1, [r1, #0x0]
+ cmp r1, #0x0
+ bne _02007FFE
+ ldrb r1, [r6, #0x0]
+ add r1, r1, #0x1
+ strb r1, [r6, #0x0]
+ ldrb r3, [r6, #0x0]
+ mov r1, #0x84
+ lsl r4, r3, #0x1
+ add r2, r0, r4
+ ldrsb r2, [r2, r1]
+ sub r1, #0x85
+ cmp r2, r1
+ bge _02007FC6
+ mov r2, #0x0
+ sub r1, r2, #0x2
+_02007F7C:
+ add r4, r0, r3
+ add r4, #0x5c
+ ldrb r4, [r4, #0x0]
+ add r3, r0, r3
+ add r3, #0x5c
+ add r4, r4, #0x1
+ strb r4, [r3, #0x0]
+ ldrb r5, [r6, #0x0]
+ lsl r3, r5, #0x1
+ add r4, r0, r3
+ add r3, r4, #0x0
+ add r7, r0, r5
+ add r3, #0x85
+ add r7, #0x5c
+ ldrb r3, [r3, #0x0]
+ ldrb r7, [r7, #0x0]
+ cmp r3, r7
+ beq _02007FA4
+ cmp r3, #0x0
+ bne _02007FAE
+_02007FA4:
+ add r3, r0, r5
+ add r3, #0x5c
+ strb r2, [r3, #0x0]
+ add r6, r6, #0x1
+ b _02007FB6
+_02007FAE:
+ mov r3, #0x84
+ ldrsb r3, [r4, r3]
+ sub r3, r1, r3
+ strb r3, [r6, #0x0]
+_02007FB6:
+ ldrb r3, [r6, #0x0]
+ mov r5, #0x84
+ lsl r4, r3, #0x1
+ add r7, r0, r4
+ ldrsb r7, [r7, r5]
+ sub r5, #0x85
+ cmp r7, r5
+ blt _02007F7C
+_02007FC6:
+ add r2, r0, r4
+ mov r1, #0x84
+ ldrsb r2, [r2, r1]
+ sub r1, #0x85
+ cmp r2, r1
+ beq _02007FD6
+ cmp r3, #0xa
+ blo _02007FE6
+_02007FD6:
+ add r1, r0, #0x0
+ mov r2, #0x0
+ add r1, #0x5b
+ strb r2, [r1, #0x0]
+ add r0, #0x58
+ strb r2, [r0, #0x0]
+ pop {r4-r7}
+ bx lr
+_02007FE6:
+ add r1, r0, #0x0
+ add r1, #0x5b
+ strb r2, [r1, #0x0]
+ ldrb r1, [r6, #0x0]
+ lsl r1, r1, #0x1
+ add r1, r0, r1
+ add r1, #0x85
+ ldrb r1, [r1, #0x0]
+ add r0, #0x5a
+ strb r1, [r0, #0x0]
+ pop {r4-r7}
+ bx lr
+_02007FFE:
+ add r1, r0, #0x0
+ add r1, #0x5a
+ ldrb r1, [r1, #0x0]
+ add r0, #0x5a
+ sub r1, r1, #0x1
+ strb r1, [r0, #0x0]
+_0200800A:
+ pop {r4-r7}
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02008010
+FUN_02008010: ; 0x02008010
+ mov r2, #0x1
+ strb r2, [r0, #0x0]
+ mov r3, #0x0
+ strb r3, [r0, #0x2]
+ ldrsb r2, [r1, r3]
+ strb r2, [r0, #0x1]
+ ldrb r2, [r1, #0x1]
+ strb r2, [r0, #0x3]
+ str r1, [r0, #0x10]
+ add r2, r3, #0x0
+_02008024:
+ add r1, r0, r3
+ add r3, r3, #0x1
+ strb r2, [r1, #0x4]
+ cmp r3, #0xa
+ blt _02008024
+ bx lr
+
+ thumb_func_start FUN_02008030
+FUN_02008030: ; 0x02008030
+ push {r4-r7}
+ ldrb r1, [r0, #0x0]
+ cmp r1, #0x0
+ beq _020080C6
+ add r3, r0, #0x2
+ ldr r4, [r0, #0x10]
+ cmp r1, #0x0
+ beq _020080C0
+ ldrb r1, [r0, #0x3]
+ cmp r1, #0x0
+ bne _020080BC
+ ldrb r1, [r3, #0x0]
+ add r1, r1, #0x1
+ strb r1, [r3, #0x0]
+ ldrb r2, [r3, #0x0]
+ mov r1, #0x0
+ mvn r1, r1
+ lsl r5, r2, #0x1
+ ldrsb r6, [r4, r5]
+ cmp r6, r1
+ bge _02008098
+ mov r1, #0x0
+_0200805C:
+ add r5, r0, r2
+ ldrb r2, [r5, #0x4]
+ add r2, r2, #0x1
+ strb r2, [r5, #0x4]
+ ldrb r2, [r3, #0x0]
+ add r5, r0, r2
+ lsl r2, r2, #0x1
+ add r2, r4, r2
+ ldrb r7, [r2, #0x1]
+ ldrb r6, [r5, #0x4]
+ cmp r7, r6
+ beq _02008078
+ cmp r7, #0x0
+ bne _0200807E
+_02008078:
+ strb r1, [r5, #0x4]
+ add r3, r3, #0x1
+ b _0200808A
+_0200807E:
+ mov r5, #0x0
+ ldrsb r5, [r2, r5]
+ mov r2, #0x1
+ mvn r2, r2
+ sub r2, r2, r5
+ strb r2, [r3, #0x0]
+_0200808A:
+ ldrb r2, [r3, #0x0]
+ mov r6, #0x0
+ mvn r6, r6
+ lsl r5, r2, #0x1
+ ldrsb r7, [r4, r5]
+ cmp r7, r6
+ blt _0200805C
+_02008098:
+ ldrsb r5, [r4, r5]
+ mov r1, #0x0
+ mvn r1, r1
+ cmp r5, r1
+ beq _020080A6
+ cmp r2, #0xa
+ blo _020080AE
+_020080A6:
+ mov r1, #0x0
+ strb r1, [r0, #0x1]
+ strb r1, [r0, #0x0]
+ b _020080C0
+_020080AE:
+ strb r5, [r0, #0x1]
+ ldrb r1, [r3, #0x0]
+ lsl r1, r1, #0x1
+ add r1, r4, r1
+ ldrb r1, [r1, #0x1]
+ strb r1, [r0, #0x3]
+ b _020080C0
+_020080BC:
+ sub r1, r1, #0x1
+ strb r1, [r0, #0x3]
+_020080C0:
+ ldrb r0, [r0, #0x1]
+ pop {r4-r7}
+ bx lr
+_020080C6:
+ mov r0, #0x0
+ mvn r0, r0
+ pop {r4-r7}
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_020080D0
+FUN_020080D0: ; 0x020080D0
+ ldr r2, [r0, #0x0]
+ mov r1, #0x80
+ orr r2, r1
+ add r1, #0x80
+ orr r1, r2
+ str r1, [r0, #0x0]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_020080E0
+FUN_020080E0: ; 0x020080E0
+ push {r3-r4}
+ add r2, r0, #0x0
+ add r3, r2, #0x0
+ add r4, r2, #0x4
+ add r3, #0x14
+ ldmia r4!, {r0-r1}
+ stmia r3!, {r0-r1}
+ ldmia r4!, {r0-r1}
+ stmia r3!, {r0-r1}
+ add r0, r2, #0x0
+ add r0, #0x6c
+ ldrh r1, [r0, #0x0]
+ add r0, r2, #0x0
+ add r0, #0x78
+ strh r1, [r0, #0x0]
+ add r0, r2, #0x0
+ add r0, #0x6e
+ ldrh r1, [r0, #0x0]
+ add r0, r2, #0x0
+ add r0, #0x7a
+ strh r1, [r0, #0x0]
+ add r0, r2, #0x0
+ add r0, #0x70
+ ldrh r1, [r0, #0x0]
+ add r0, r2, #0x0
+ add r0, #0x7c
+ strh r1, [r0, #0x0]
+ add r0, r2, #0x0
+ add r0, #0x72
+ ldrh r1, [r0, #0x0]
+ add r0, r2, #0x0
+ add r0, #0x7e
+ strh r1, [r0, #0x0]
+ add r0, r2, #0x0
+ add r0, #0x74
+ ldrh r1, [r0, #0x0]
+ add r0, r2, #0x0
+ add r0, #0x80
+ strh r1, [r0, #0x0]
+ add r0, r2, #0x0
+ add r0, #0x76
+ ldrh r0, [r0, #0x0]
+ add r2, #0x82
+ strh r0, [r2, #0x0]
+ pop {r3-r4}
+ bx lr
+
+ thumb_func_start FUN_0200813C
+FUN_0200813C: ; 0x0200813C
+ push {r3-r4}
+ add r2, r0, #0x0
+ add r4, r2, #0x0
+ add r4, #0x14
+ add r3, r2, #0x4
+ ldmia r4!, {r0-r1}
+ stmia r3!, {r0-r1}
+ ldmia r4!, {r0-r1}
+ stmia r3!, {r0-r1}
+ add r0, r2, #0x0
+ add r0, #0x78
+ ldrh r1, [r0, #0x0]
+ add r0, r2, #0x0
+ add r0, #0x6c
+ strh r1, [r0, #0x0]
+ add r0, r2, #0x0
+ add r0, #0x7a
+ ldrh r1, [r0, #0x0]
+ add r0, r2, #0x0
+ add r0, #0x6e
+ strh r1, [r0, #0x0]
+ add r0, r2, #0x0
+ add r0, #0x7c
+ ldrh r1, [r0, #0x0]
+ add r0, r2, #0x0
+ add r0, #0x70
+ strh r1, [r0, #0x0]
+ add r0, r2, #0x0
+ add r0, #0x7e
+ ldrh r1, [r0, #0x0]
+ add r0, r2, #0x0
+ add r0, #0x72
+ strh r1, [r0, #0x0]
+ add r0, r2, #0x0
+ add r0, #0x80
+ ldrh r1, [r0, #0x0]
+ add r0, r2, #0x0
+ add r0, #0x74
+ strh r1, [r0, #0x0]
+ add r0, r2, #0x0
+ add r0, #0x82
+ ldrh r1, [r0, #0x0]
+ add r0, r2, #0x0
+ add r0, #0x76
+ strh r1, [r0, #0x0]
+ ldr r1, [r2, #0x0]
+ mov r0, #0x80
+ orr r1, r0
+ add r0, #0x80
+ orr r0, r1
+ str r0, [r2, #0x0]
+ pop {r3-r4}
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_020081A8
+FUN_020081A8: ; 0x020081A8
+ mov r3, #0xa7
+ lsl r3, r3, #0x2
+ str r1, [r0, r3]
+ add r1, r3, #0x4
+ str r2, [r0, r1]
+ bx lr
+
+ thumb_func_start FUN_020081B4
+FUN_020081B4: ; 0x020081B4
+ mov r3, #0xa9
+ lsl r3, r3, #0x2
+ str r1, [r0, r3]
+ add r1, r3, #0x4
+ str r2, [r0, r1]
+ bx lr
+
+ thumb_func_start FUN_020081C0
+FUN_020081C0: ; 0x020081C0
+ add r0, r0, #0x4
+ bx lr
+
+ thumb_func_start FUN_020081C4
+FUN_020081C4: ; 0x020081C4
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r0, _02008254 ; =0x000002E1
+ ldrb r1, [r4, r0]
+ cmp r1, #0x0
+ beq _02008212
+ mov r1, #0x0
+ strb r1, [r4, r0]
+ sub r0, #0x81
+ add r0, r4, r0
+ blx FUN_020B1A24
+ mov r3, #0xae
+ lsl r3, r3, #0x2
+ mov r1, #0x20
+ strh r1, [r4, r3]
+ add r0, r3, #0x2
+ strh r1, [r4, r0]
+ add r0, r3, #0x0
+ sub r0, #0x18
+ ldr r1, [r4, r0]
+ add r0, r3, #0x0
+ add r0, #0x10
+ str r1, [r4, r0]
+ add r0, r3, #0x0
+ sub r0, #0xc
+ ldr r1, [r4, r0]
+ add r0, r3, #0x0
+ add r0, #0x14
+ str r1, [r4, r0]
+ add r1, r3, #0x0
+ sub r1, #0x1c
+ add r0, r4, r3
+ sub r3, #0x58
+ ldr r1, [r4, r1]
+ mov r2, #0x0
+ add r3, r4, r3
+ blx FUN_020B1528
+_02008212:
+ ldr r0, _02008258 ; =0x000002E2
+ ldrb r1, [r4, r0]
+ cmp r1, #0x0
+ beq _02008252
+ mov r1, #0x0
+ strb r1, [r4, r0]
+ sub r0, #0x5e
+ add r0, r4, r0
+ blx FUN_020B19DC
+ mov r3, #0xaa
+ lsl r3, r3, #0x2
+ add r0, r3, #0x0
+ ldr r1, [r4, r3]
+ add r0, #0x30
+ str r1, [r4, r0]
+ add r0, r3, #0x0
+ add r0, #0x8
+ ldr r1, [r4, r0]
+ add r0, r3, #0x0
+ add r0, #0x34
+ str r1, [r4, r0]
+ add r0, r3, #0x0
+ sub r1, r3, #0x4
+ add r0, #0x28
+ sub r3, #0x24
+ ldr r1, [r4, r1]
+ add r0, r4, r0
+ mov r2, #0x0
+ add r3, r4, r3
+ blx FUN_020B1240
+_02008252:
+ pop {r4, pc}
+ .balign 4
+_02008254: .word 0x000002E1
+_02008258: .word 0x000002E2
+
+ thumb_func_start FUN_0200825C
+FUN_0200825C: ; 0x0200825C
+ ldr r2, _02008264 ; =0x000002E3
+ strb r1, [r0, r2]
+ bx lr
+ nop
+_02008264: .word 0x000002E3
+
+ thumb_func_start FUN_02008268
+FUN_02008268: ; 0x02008268
+ push {r4, lr}
+ add r4, r0, #0x0
+ bne _02008272
+ bl ErrorHandling
+_02008272:
+ ldr r0, [r4, #0x0]
+ lsl r0, r0, #0x1f
+ lsr r0, r0, #0x1f
+ beq _0200827E
+ mov r0, #0x1
+ pop {r4, pc}
+_0200827E:
+ mov r0, #0x0
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02008284
+FUN_02008284: ; 0x02008284
+ mov r2, #0xb9
+ lsl r2, r2, #0x2
+ ldr r3, [r0, r2]
+ orr r1, r3
+ str r1, [r0, r2]
+ bx lr
+
+ thumb_func_start FUN_02008290
+FUN_02008290: ; 0x02008290
+ push {r3-r4}
+ mov r3, #0xb9
+ lsl r3, r3, #0x2
+ mov r2, #0x0
+ mvn r2, r2
+ ldr r4, [r0, r3]
+ eor r1, r2
+ and r1, r4
+ str r1, [r0, r3]
+ pop {r3-r4}
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_020082A8
+FUN_020082A8: ; 0x020082A8
+ push {r4-r7, lr}
+ sub sp, #0x5c
+ add r6, r0, #0x0
+ mov r0, #0x0
+ str r0, [sp, #0x48]
+ str r0, [sp, #0x54]
+ ldr r0, [sp, #0x48]
+ str r6, [sp, #0x44]
+ str r0, [sp, #0x38]
+_020082BA:
+ ldr r0, [sp, #0x44]
+ ldr r1, [r0, #0x0]
+ lsl r0, r1, #0x1f
+ lsr r0, r0, #0x1f
+ beq _020082CA
+ lsl r0, r1, #0x18
+ lsr r0, r0, #0x1f
+ bne _020082CC
+_020082CA:
+ b _020086C2
+_020082CC:
+ mov r0, #0x80
+ bic r1, r0
+ ldr r0, [sp, #0x44]
+ mov r2, #0xa6
+ str r1, [r0, #0x0]
+ mov r0, #0x1
+ str r0, [sp, #0x48]
+ ldr r0, [sp, #0x44]
+ ldr r1, [sp, #0x44]
+ lsl r2, r2, #0x2
+ ldrh r0, [r0, #0x4]
+ ldrh r1, [r1, #0x6]
+ ldr r2, [r6, r2]
+ bl LoadFromNarc_2
+ add r1, sp, #0x58
+ str r0, [sp, #0x4c]
+ blx FUN_020B0088
+ ldr r0, [sp, #0x58]
+ mov r1, #0xaf
+ ldr r0, [r0, #0x4]
+ lsl r1, r1, #0x2
+ str r0, [r6, r1]
+ ldr r0, [sp, #0x58]
+ ldr r2, [r0, #0x8]
+ add r0, r1, #0x4
+ str r2, [r6, r0]
+ ldr r0, [sp, #0x58]
+ add r1, #0x8
+ ldr r0, [r0, #0xc]
+ str r0, [r6, r1]
+ ldr r0, [sp, #0x58]
+ ldr r0, [r0, #0x14]
+ str r0, [sp, #0x50]
+ bl FUN_02008A74
+ ldr r0, [sp, #0x44]
+ ldr r1, [sp, #0x50]
+ bl FUN_020088EC
+ ldr r0, [sp, #0x54]
+ cmp r0, #0x3
+ beq _02008326
+ b _02008554
+_02008326:
+ mov r5, #0x0
+ add r0, r5, #0x0
+ str r5, [sp, #0x14]
+ str r0, [sp, #0x24]
+_0200832E:
+ ldr r0, [sp, #0x14]
+ mov r1, #0x4f
+ sub r2, r1, r0
+ mov r0, #0x50
+ add r1, r2, #0x0
+ mul r1, r0
+ ldr r0, [sp, #0x50]
+ mov r4, #0x0
+ add r0, r0, r1
+ str r0, [sp, #0x20]
+ ldr r1, [sp, #0x50]
+ ldr r0, [sp, #0x24]
+ add r7, r1, r0
+ ldr r0, [sp, #0x20]
+ str r7, [sp, #0x18]
+ str r0, [sp, #0x1c]
+ ldr r0, [sp, #0x14]
+ sub r0, r0, #0x1
+ lsl r0, r0, #0x7
+ str r0, [sp, #0x10]
+_02008356:
+ cmp r4, #0x28
+ bge _02008442
+ ldr r0, [sp, #0x44]
+ ldr r1, [r0, #0x54]
+ lsl r0, r1, #0x16
+ lsr r0, r0, #0x1f
+ beq _02008386
+ lsl r1, r1, #0x15
+ lsr r1, r1, #0x1f
+ beq _02008386
+ mov r0, #0x27
+ sub r1, r0, r4
+ ldr r0, [sp, #0x1c]
+ ldrb r0, [r0, r1]
+ bl FUN_020088D8
+ mov r1, #0xab
+ lsl r1, r1, #0x2
+ ldr r1, [r6, r1]
+ add r1, r5, r1
+ add r1, r4, r1
+ add r1, #0x50
+ strb r0, [r1, #0x0]
+ b _0200852E
+_02008386:
+ cmp r0, #0x0
+ beq _020083A6
+ mov r0, #0x27
+ sub r1, r0, r4
+ ldr r0, [sp, #0x18]
+ ldrb r0, [r0, r1]
+ bl FUN_020088D8
+ mov r1, #0xab
+ lsl r1, r1, #0x2
+ ldr r1, [r6, r1]
+ add r1, r5, r1
+ add r1, r4, r1
+ add r1, #0x50
+ strb r0, [r1, #0x0]
+ b _0200852E
+_020083A6:
+ ldr r0, [sp, #0x44]
+ ldr r0, [r0, #0x54]
+ lsl r1, r0, #0x15
+ lsr r1, r1, #0x1f
+ beq _020083C4
+ mov r1, #0xab
+ lsl r1, r1, #0x2
+ ldr r0, [sp, #0x20]
+ ldr r1, [r6, r1]
+ ldrb r0, [r0, #0x0]
+ add r1, r5, r1
+ add r1, r4, r1
+ add r1, #0x50
+ strb r0, [r1, #0x0]
+ b _0200852E
+_020083C4:
+ lsl r0, r0, #0xf
+ lsr r0, r0, #0x1c
+ str r0, [sp, #0xc]
+ beq _02008430
+ ldr r1, [sp, #0xc]
+ ldr r0, [sp, #0x14]
+ lsl r1, r1, #0x1
+ blx _u32_div_f
+ cmp r1, #0x0
+ beq _020083F4
+ mov r0, #0xab
+ lsl r0, r0, #0x2
+ ldr r1, [r6, r0]
+ ldr r0, [sp, #0x10]
+ add r0, r0, r1
+ add r0, r4, r0
+ add r0, #0x50
+ add r1, r5, r1
+ add r1, r4, r1
+ ldrb r0, [r0, #0x0]
+ add r1, #0x50
+ strb r0, [r1, #0x0]
+ b _0200852E
+_020083F4:
+ ldr r1, [sp, #0xc]
+ add r0, r4, #0x0
+ blx _u32_div_f
+ cmp r1, #0x0
+ beq _02008416
+ mov r0, #0xab
+ lsl r0, r0, #0x2
+ ldr r0, [r6, r0]
+ add r2, r5, r0
+ add r0, r2, r4
+ add r0, #0x4f
+ ldrb r1, [r0, #0x0]
+ add r0, r2, r4
+ add r0, #0x50
+ strb r1, [r0, #0x0]
+ b _0200852E
+_02008416:
+ ldrb r1, [r7, #0x0]
+ mov r0, #0xf
+ and r1, r0
+ lsl r0, r1, #0x4
+ orr r0, r1
+ mov r1, #0xab
+ lsl r1, r1, #0x2
+ ldr r1, [r6, r1]
+ add r1, r5, r1
+ add r1, r4, r1
+ add r1, #0x50
+ strb r0, [r1, #0x0]
+ b _0200852E
+_02008430:
+ mov r1, #0xab
+ lsl r1, r1, #0x2
+ ldr r1, [r6, r1]
+ ldrb r0, [r7, #0x0]
+ add r1, r5, r1
+ add r1, r4, r1
+ add r1, #0x50
+ strb r0, [r1, #0x0]
+ b _0200852E
+_02008442:
+ ldr r0, [sp, #0x44]
+ ldr r1, [r0, #0x54]
+ lsl r0, r1, #0x16
+ lsr r0, r0, #0x1f
+ beq _02008472
+ lsl r1, r1, #0x15
+ lsr r1, r1, #0x1f
+ beq _02008472
+ add r1, r4, #0x0
+ sub r1, #0x28
+ mov r0, #0x4f
+ sub r1, r0, r1
+ ldr r0, [sp, #0x1c]
+ ldrb r0, [r0, r1]
+ bl FUN_020088D8
+ mov r1, #0xab
+ lsl r1, r1, #0x2
+ ldr r1, [r6, r1]
+ add r1, r5, r1
+ add r2, r4, r1
+ ldr r1, _020086E8 ; =0x00002828
+ strb r0, [r2, r1]
+ b _0200852E
+_02008472:
+ cmp r0, #0x0
+ beq _02008496
+ add r1, r4, #0x0
+ sub r1, #0x28
+ mov r0, #0x4f
+ sub r1, r0, r1
+ ldr r0, [sp, #0x18]
+ ldrb r0, [r0, r1]
+ bl FUN_020088D8
+ mov r1, #0xab
+ lsl r1, r1, #0x2
+ ldr r1, [r6, r1]
+ add r1, r5, r1
+ add r2, r4, r1
+ ldr r1, _020086E8 ; =0x00002828
+ strb r0, [r2, r1]
+ b _0200852E
+_02008496:
+ ldr r0, [sp, #0x44]
+ ldr r0, [r0, #0x54]
+ lsl r1, r0, #0x15
+ lsr r1, r1, #0x1f
+ beq _020084B4
+ mov r1, #0xab
+ lsl r1, r1, #0x2
+ ldr r0, [sp, #0x20]
+ ldr r1, [r6, r1]
+ ldrb r0, [r0, #0x0]
+ add r1, r5, r1
+ add r2, r4, r1
+ ldr r1, _020086E8 ; =0x00002828
+ strb r0, [r2, r1]
+ b _0200852E
+_020084B4:
+ lsl r0, r0, #0xf
+ lsr r0, r0, #0x1c
+ str r0, [sp, #0x8]
+ beq _0200851E
+ ldr r1, [sp, #0x8]
+ ldr r0, [sp, #0x14]
+ lsl r1, r1, #0x1
+ blx _u32_div_f
+ cmp r1, #0x0
+ beq _020084E4
+ mov r0, #0xab
+ lsl r0, r0, #0x2
+ ldr r1, [r6, r0]
+ ldr r0, [sp, #0x10]
+ add r0, r0, r1
+ add r2, r4, r0
+ ldr r0, _020086E8 ; =0x00002828
+ add r1, r5, r1
+ ldrb r0, [r2, r0]
+ add r2, r4, r1
+ ldr r1, _020086E8 ; =0x00002828
+ strb r0, [r2, r1]
+ b _0200852E
+_020084E4:
+ ldr r1, [sp, #0x8]
+ add r0, r4, #0x0
+ blx _u32_div_f
+ cmp r1, #0x0
+ beq _02008504
+ mov r0, #0xab
+ lsl r0, r0, #0x2
+ ldr r0, [r6, r0]
+ ldr r1, _020086EC ; =0x00002827
+ add r0, r5, r0
+ add r0, r0, r4
+ ldrb r2, [r0, r1]
+ add r1, r1, #0x1
+ strb r2, [r0, r1]
+ b _0200852E
+_02008504:
+ ldrb r1, [r7, #0x0]
+ mov r0, #0xf
+ and r1, r0
+ lsl r0, r1, #0x4
+ orr r0, r1
+ mov r1, #0xab
+ lsl r1, r1, #0x2
+ ldr r1, [r6, r1]
+ add r1, r5, r1
+ add r2, r4, r1
+ ldr r1, _020086E8 ; =0x00002828
+ strb r0, [r2, r1]
+ b _0200852E
+_0200851E:
+ mov r1, #0xab
+ lsl r1, r1, #0x2
+ ldr r1, [r6, r1]
+ ldrb r0, [r7, #0x0]
+ add r1, r5, r1
+ add r2, r4, r1
+ ldr r1, _020086E8 ; =0x00002828
+ strb r0, [r2, r1]
+_0200852E:
+ ldr r0, [sp, #0x20]
+ add r4, r4, #0x1
+ add r0, r0, #0x1
+ add r7, r7, #0x1
+ str r0, [sp, #0x20]
+ cmp r4, #0x50
+ bge _0200853E
+ b _02008356
+_0200853E:
+ ldr r0, [sp, #0x24]
+ add r5, #0x80
+ add r0, #0x50
+ str r0, [sp, #0x24]
+ ldr r0, [sp, #0x14]
+ add r0, r0, #0x1
+ str r0, [sp, #0x14]
+ cmp r0, #0x50
+ bge _02008552
+ b _0200832E
+_02008552:
+ b _020086BC
+_02008554:
+ mov r0, #0x0
+ str r0, [sp, #0x0]
+ str r0, [sp, #0x40]
+ str r0, [sp, #0x3c]
+_0200855C:
+ ldr r0, [sp, #0x0]
+ mov r1, #0x4f
+ sub r2, r1, r0
+ mov r0, #0x50
+ add r1, r2, #0x0
+ mul r1, r0
+ ldr r0, [sp, #0x50]
+ mov r4, #0x0
+ add r0, r0, r1
+ str r0, [sp, #0x34]
+ ldr r1, [sp, #0x50]
+ ldr r0, [sp, #0x3c]
+ add r7, r1, r0
+ ldr r0, [sp, #0x34]
+ ldr r1, [sp, #0x38]
+ str r0, [sp, #0x30]
+ ldr r0, [sp, #0x40]
+ str r7, [sp, #0x2c]
+ add r5, r1, r0
+ ldr r0, [sp, #0x0]
+ sub r0, r0, #0x1
+ lsl r1, r0, #0x7
+ ldr r0, [sp, #0x38]
+ add r0, r0, r1
+ str r0, [sp, #0x28]
+_0200858E:
+ ldr r0, [sp, #0x44]
+ ldr r1, [r0, #0x54]
+ lsl r0, r1, #0x16
+ lsr r0, r0, #0x1f
+ beq _020085D6
+ lsl r1, r1, #0x15
+ lsr r1, r1, #0x1f
+ beq _020085D6
+ cmp r4, #0x28
+ bge _020085BA
+ mov r0, #0x27
+ sub r1, r0, r4
+ ldr r0, [sp, #0x30]
+ ldrb r0, [r0, r1]
+ bl FUN_020088D8
+ mov r1, #0xab
+ lsl r1, r1, #0x2
+ ldr r1, [r6, r1]
+ add r1, r5, r1
+ strb r0, [r4, r1]
+ b _02008694
+_020085BA:
+ add r1, r4, #0x0
+ sub r1, #0x28
+ mov r0, #0x4f
+ sub r1, r0, r1
+ ldr r0, [sp, #0x30]
+ ldrb r0, [r0, r1]
+ bl FUN_020088D8
+ mov r1, #0xab
+ lsl r1, r1, #0x2
+ ldr r1, [r6, r1]
+ add r1, r5, r1
+ strb r0, [r4, r1]
+ b _02008694
+_020085D6:
+ cmp r0, #0x0
+ beq _02008612
+ cmp r4, #0x28
+ bge _020085F6
+ mov r0, #0x27
+ sub r1, r0, r4
+ ldr r0, [sp, #0x2c]
+ ldrb r0, [r0, r1]
+ bl FUN_020088D8
+ mov r1, #0xab
+ lsl r1, r1, #0x2
+ ldr r1, [r6, r1]
+ add r1, r5, r1
+ strb r0, [r4, r1]
+ b _02008694
+_020085F6:
+ add r1, r4, #0x0
+ sub r1, #0x28
+ mov r0, #0x4f
+ sub r1, r0, r1
+ ldr r0, [sp, #0x2c]
+ ldrb r0, [r0, r1]
+ bl FUN_020088D8
+ mov r1, #0xab
+ lsl r1, r1, #0x2
+ ldr r1, [r6, r1]
+ add r1, r5, r1
+ strb r0, [r4, r1]
+ b _02008694
+_02008612:
+ ldr r0, [sp, #0x44]
+ ldr r0, [r0, #0x54]
+ lsl r1, r0, #0x15
+ lsr r1, r1, #0x1f
+ beq _0200862C
+ ldr r0, [sp, #0x34]
+ mov r1, #0xab
+ lsl r1, r1, #0x2
+ ldr r1, [r6, r1]
+ ldrb r0, [r0, #0x0]
+ add r1, r5, r1
+ strb r0, [r4, r1]
+ b _02008694
+_0200862C:
+ lsl r0, r0, #0xf
+ lsr r0, r0, #0x1c
+ str r0, [sp, #0x4]
+ beq _02008688
+ ldr r1, [sp, #0x4]
+ ldr r0, [sp, #0x0]
+ lsl r1, r1, #0x1
+ blx _u32_div_f
+ cmp r1, #0x0
+ beq _02008654
+ mov r0, #0xab
+ lsl r0, r0, #0x2
+ ldr r0, [r6, r0]
+ ldr r1, [sp, #0x28]
+ add r1, r1, r0
+ ldrb r1, [r4, r1]
+ add r0, r5, r0
+ strb r1, [r4, r0]
+ b _02008694
+_02008654:
+ ldr r1, [sp, #0x4]
+ add r0, r4, #0x0
+ blx _u32_div_f
+ cmp r1, #0x0
+ beq _02008672
+ mov r0, #0xab
+ lsl r0, r0, #0x2
+ ldr r0, [r6, r0]
+ add r1, r5, r0
+ add r0, r1, r4
+ sub r0, r0, #0x1
+ ldrb r0, [r0, #0x0]
+ strb r0, [r1, r4]
+ b _02008694
+_02008672:
+ ldrb r1, [r7, #0x0]
+ mov r0, #0xf
+ and r1, r0
+ lsl r0, r1, #0x4
+ orr r0, r1
+ mov r1, #0xab
+ lsl r1, r1, #0x2
+ ldr r1, [r6, r1]
+ add r1, r5, r1
+ strb r0, [r4, r1]
+ b _02008694
+_02008688:
+ mov r1, #0xab
+ lsl r1, r1, #0x2
+ ldr r1, [r6, r1]
+ ldrb r0, [r7, #0x0]
+ add r1, r5, r1
+ strb r0, [r4, r1]
+_02008694:
+ ldr r0, [sp, #0x34]
+ add r4, r4, #0x1
+ add r0, r0, #0x1
+ add r7, r7, #0x1
+ str r0, [sp, #0x34]
+ cmp r4, #0x50
+ bge _020086A4
+ b _0200858E
+_020086A4:
+ ldr r0, [sp, #0x40]
+ add r0, #0x80
+ str r0, [sp, #0x40]
+ ldr r0, [sp, #0x3c]
+ add r0, #0x50
+ str r0, [sp, #0x3c]
+ ldr r0, [sp, #0x0]
+ add r0, r0, #0x1
+ str r0, [sp, #0x0]
+ cmp r0, #0x50
+ bge _020086BC
+ b _0200855C
+_020086BC:
+ ldr r0, [sp, #0x4c]
+ bl FUN_02016A18
+_020086C2:
+ ldr r0, [sp, #0x44]
+ mov r1, #0xa
+ add r0, #0x98
+ str r0, [sp, #0x44]
+ ldr r0, [sp, #0x38]
+ lsl r1, r1, #0xa
+ add r0, r0, r1
+ str r0, [sp, #0x38]
+ ldr r0, [sp, #0x54]
+ add r0, r0, #0x1
+ str r0, [sp, #0x54]
+ cmp r0, #0x4
+ bge _020086DE
+ b _020082BA
+_020086DE:
+ ldr r1, _020086F0 ; =0x000002E1
+ ldr r0, [sp, #0x48]
+ strb r0, [r6, r1]
+ add sp, #0x5c
+ pop {r4-r7, pc}
+ .balign 4
+_020086E8: .word 0x00002828
+_020086EC: .word 0x00002827
+_020086F0: .word 0x000002E1
+
+ thumb_func_start FUN_020086F4
+FUN_020086F4: ; 0x020086F4
+ push {r4-r7, lr}
+ sub sp, #0x1c
+ add r5, r0, #0x0
+ mov r0, #0x0
+ str r0, [sp, #0xc]
+ str r0, [sp, #0x14]
+ ldr r0, [sp, #0xc]
+ add r4, r5, #0x0
+ str r0, [sp, #0x8]
+_02008706:
+ ldr r1, [r4, #0x0]
+ lsl r0, r1, #0x1f
+ lsr r0, r0, #0x1f
+ beq _020087E0
+ lsl r0, r1, #0x17
+ lsr r0, r0, #0x1f
+ beq _020087E0
+ ldr r0, _020088CC ; =0xFFFFFEFF
+ mov r2, #0xa6
+ and r0, r1
+ str r0, [r4, #0x0]
+ mov r0, #0x1
+ str r0, [sp, #0xc]
+ lsl r2, r2, #0x2
+ ldrh r0, [r4, #0x4]
+ ldrh r1, [r4, #0x8]
+ ldr r2, [r5, r2]
+ bl LoadFromNarc_2
+ add r1, sp, #0x18
+ str r0, [sp, #0x10]
+ blx FUN_020B0138
+ ldr r0, [sp, #0x18]
+ mov r7, #0x0
+ ldr r1, [r0, #0x0]
+ mov r0, #0x2d
+ lsl r0, r0, #0x4
+ str r1, [r5, r0]
+ ldr r0, [sp, #0x18]
+ add r2, r7, #0x0
+ ldr r1, [r0, #0xc]
+ ldr r0, [sp, #0x8]
+ lsl r3, r0, #0x1
+_0200874A:
+ mov r6, #0x2b
+ lsl r6, r6, #0x4
+ ldr r6, [r5, r6]
+ ldrh r0, [r1, #0x0]
+ add r6, r3, r6
+ add r7, r7, #0x1
+ strh r0, [r2, r6]
+ mov r6, #0xad
+ lsl r6, r6, #0x2
+ ldrh r0, [r1, #0x0]
+ ldr r6, [r5, r6]
+ add r1, r1, #0x2
+ add r6, r3, r6
+ strh r0, [r2, r6]
+ add r2, r2, #0x2
+ cmp r7, #0x10
+ blt _0200874A
+ ldr r0, [sp, #0x10]
+ bl FUN_02016A18
+ add r0, r4, #0x0
+ add r0, #0x6c
+ ldrh r0, [r0, #0x0]
+ lsl r0, r0, #0x1e
+ lsr r0, r0, #0x1e
+ beq _020087E0
+ mov r2, #0xa6
+ lsl r2, r2, #0x2
+ ldr r2, [r5, r2]
+ mov r0, #0x75
+ mov r1, #0xd4
+ bl LoadFromNarc_2
+ add r1, sp, #0x18
+ str r0, [sp, #0x4]
+ blx FUN_020B0138
+ ldr r0, [sp, #0x18]
+ mov r7, #0xad
+ ldr r0, [r0, #0xc]
+ mov r1, #0x0
+ lsl r7, r7, #0x2
+_0200879E:
+ add r6, r4, #0x0
+ add r6, #0x6c
+ ldrh r6, [r6, #0x0]
+ mov r2, #0x2b
+ lsl r2, r2, #0x4
+ lsl r6, r6, #0x1e
+ lsr r6, r6, #0x1e
+ add r6, r6, #0x3
+ lsl r6, r6, #0x4
+ add r6, r1, r6
+ ldrh r3, [r0, #0x0]
+ ldr r2, [r5, r2]
+ lsl r6, r6, #0x1
+ strh r3, [r2, r6]
+ add r6, r4, #0x0
+ add r6, #0x6c
+ ldrh r6, [r6, #0x0]
+ ldrh r3, [r0, #0x0]
+ ldr r2, [r5, r7]
+ lsl r6, r6, #0x1e
+ lsr r6, r6, #0x1e
+ add r6, r6, #0x3
+ lsl r6, r6, #0x4
+ add r6, r1, r6
+ lsl r6, r6, #0x1
+ add r1, r1, #0x1
+ add r0, r0, #0x2
+ strh r3, [r2, r6]
+ cmp r1, #0x10
+ blt _0200879E
+ ldr r0, [sp, #0x4]
+ bl FUN_02016A18
+_020087E0:
+ ldr r0, [r4, #0x0]
+ lsl r0, r0, #0x1f
+ lsr r0, r0, #0x1f
+ beq _020088AE
+ ldr r0, [r4, #0x54]
+ lsl r0, r0, #0x13
+ lsr r0, r0, #0x1f
+ beq _020088AE
+ add r0, r4, #0x0
+ add r0, #0x4a
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x0
+ bne _020088A0
+ mov r0, #0x1
+ str r0, [sp, #0xc]
+ add r0, r4, #0x0
+ add r0, #0x4b
+ ldrb r1, [r0, #0x0]
+ add r0, r4, #0x0
+ add r0, #0x4a
+ strb r1, [r0, #0x0]
+ ldr r0, [sp, #0x8]
+ mov r2, #0xad
+ lsl r1, r0, #0x1
+ ldr r0, [r4, #0x4c]
+ add r3, r4, #0x0
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ lsl r2, r2, #0x2
+ str r0, [sp, #0x0]
+ ldr r0, [r5, r2]
+ sub r2, r2, #0x4
+ add r3, #0x48
+ ldr r2, [r5, r2]
+ add r0, r0, r1
+ add r1, r2, r1
+ ldrb r3, [r3, #0x0]
+ mov r2, #0x10
+ bl FUN_02003974
+ add r0, r4, #0x0
+ add r0, #0x6c
+ ldrh r0, [r0, #0x0]
+ lsl r0, r0, #0x1e
+ lsr r0, r0, #0x1e
+ beq _02008862
+ add r0, r0, #0x3
+ lsl r1, r0, #0x5
+ ldr r0, [r4, #0x4c]
+ mov r2, #0xad
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ add r3, r4, #0x0
+ lsl r2, r2, #0x2
+ str r0, [sp, #0x0]
+ ldr r0, [r5, r2]
+ sub r2, r2, #0x4
+ add r3, #0x48
+ ldr r2, [r5, r2]
+ add r0, r0, r1
+ add r1, r2, r1
+ ldrb r3, [r3, #0x0]
+ mov r2, #0x10
+ bl FUN_02003974
+_02008862:
+ add r0, r4, #0x0
+ add r0, #0x49
+ ldrb r1, [r0, #0x0]
+ add r0, r4, #0x0
+ add r0, #0x48
+ ldrb r0, [r0, #0x0]
+ cmp r0, r1
+ bne _0200887C
+ ldr r1, [r4, #0x54]
+ ldr r0, _020088D0 ; =0xFFFFEFFF
+ and r0, r1
+ str r0, [r4, #0x54]
+ b _020088AE
+_0200887C:
+ cmp r0, r1
+ bls _02008890
+ add r0, r4, #0x0
+ add r0, #0x48
+ ldrb r0, [r0, #0x0]
+ sub r1, r0, #0x1
+ add r0, r4, #0x0
+ add r0, #0x48
+ strb r1, [r0, #0x0]
+ b _020088AE
+_02008890:
+ add r0, r4, #0x0
+ add r0, #0x48
+ ldrb r0, [r0, #0x0]
+ add r1, r0, #0x1
+ add r0, r4, #0x0
+ add r0, #0x48
+ strb r1, [r0, #0x0]
+ b _020088AE
+_020088A0:
+ add r0, r4, #0x0
+ add r0, #0x4a
+ ldrb r0, [r0, #0x0]
+ sub r1, r0, #0x1
+ add r0, r4, #0x0
+ add r0, #0x4a
+ strb r1, [r0, #0x0]
+_020088AE:
+ ldr r0, [sp, #0x8]
+ add r4, #0x98
+ add r0, #0x10
+ str r0, [sp, #0x8]
+ ldr r0, [sp, #0x14]
+ add r0, r0, #0x1
+ str r0, [sp, #0x14]
+ cmp r0, #0x4
+ bge _020088C2
+ b _02008706
+_020088C2:
+ ldr r1, _020088D4 ; =0x000002E2
+ ldr r0, [sp, #0xc]
+ strb r0, [r5, r1]
+ add sp, #0x1c
+ pop {r4-r7, pc}
+ .balign 4
+_020088CC: .word 0xFFFFFEFF
+_020088D0: .word 0xFFFFEFFF
+_020088D4: .word 0x000002E2
+
+ thumb_func_start FUN_020088D8
+FUN_020088D8: ; 0x020088D8
+ mov r1, #0xf0
+ and r1, r0
+ lsl r1, r1, #0x14
+ lsl r0, r0, #0x1c
+ lsr r1, r1, #0x18
+ lsr r0, r0, #0x18
+ orr r0, r1
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bx lr
+
+ thumb_func_start FUN_020088EC
+FUN_020088EC: ; 0x020088EC
+ push {r3, lr}
+ add r2, r0, #0x0
+ ldrh r0, [r2, #0xa]
+ cmp r0, #0x0
+ beq _02008900
+ add r0, r1, #0x0
+ ldr r1, [r2, #0x10]
+ mov r2, #0x1
+ bl FUN_02008904
+_02008900:
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_02008904
+FUN_02008904: ; 0x02008904
+ push {r4-r7, lr}
+ sub sp, #0x1c
+ add r3, r0, #0x0
+ add r0, r1, #0x0
+ mov lr, r0
+ mov r0, #0x0
+ mov r12, r0
+ ldr r0, _02008A50 ; =0x02105AE8
+ str r1, [sp, #0x0]
+ str r2, [sp, #0x4]
+ str r0, [sp, #0x10]
+_0200891A:
+ ldr r0, [sp, #0x10]
+ mov r1, #0x0
+ ldr r6, [r0, #0x0]
+ ldrb r0, [r6, #0x0]
+ cmp r0, #0xff
+ beq _02008992
+ ldr r0, [sp, #0x0]
+ mov r2, #0xf
+ and r0, r2
+ str r0, [sp, #0xc]
+ sub r0, #0x8
+ str r0, [sp, #0xc]
+ ldr r0, [sp, #0x0]
+ mov r2, #0xf0
+ and r0, r2
+ lsr r7, r0, #0x4
+ sub r7, #0x8
+_0200893C:
+ lsl r0, r1, #0x1
+ add r2, r6, r0
+ ldrb r4, [r6, r0]
+ ldrb r2, [r2, #0x1]
+ ldr r0, [sp, #0xc]
+ add r0, r0, r4
+ add r2, r7, r2
+ lsl r0, r0, #0x18
+ lsl r2, r2, #0x18
+ lsr r0, r0, #0x18
+ lsr r4, r2, #0x18
+ mov r2, #0x50
+ mul r2, r4
+ lsr r5, r0, #0x1
+ add r2, r5, r2
+ mov r4, #0x1
+ tst r0, r4
+ ldrb r4, [r3, r2]
+ beq _02008974
+ mov r0, #0xf0
+ and r0, r4
+ cmp r0, #0x10
+ blt _02008984
+ cmp r0, #0x30
+ bgt _02008984
+ add r4, #0x50
+ strb r4, [r3, r2]
+ b _02008984
+_02008974:
+ mov r0, #0xf
+ and r0, r4
+ cmp r0, #0x1
+ blt _02008984
+ cmp r0, #0x3
+ bgt _02008984
+ add r0, r4, #0x5
+ strb r0, [r3, r2]
+_02008984:
+ add r0, r1, #0x1
+ lsl r0, r0, #0x18
+ lsr r1, r0, #0x18
+ lsl r0, r1, #0x1
+ ldrb r0, [r6, r0]
+ cmp r0, #0xff
+ bne _0200893C
+_02008992:
+ ldr r0, [sp, #0x0]
+ lsr r0, r0, #0x8
+ str r0, [sp, #0x0]
+ ldr r0, [sp, #0x10]
+ add r0, r0, #0x4
+ str r0, [sp, #0x10]
+ mov r0, r12
+ add r0, r0, #0x1
+ mov r12, r0
+ cmp r0, #0x4
+ blt _0200891A
+ mov r0, lr
+ str r0, [sp, #0x0]
+ ldr r0, [sp, #0x4]
+ cmp r0, #0x0
+ beq _02008A4A
+ mov r0, #0x0
+ str r0, [sp, #0x8]
+ ldr r0, _02008A50 ; =0x02105AE8
+ str r0, [sp, #0x18]
+_020089BA:
+ ldr r0, [sp, #0x18]
+ mov r4, #0x0
+ ldr r2, [r0, #0x0]
+ ldrb r0, [r2, #0x0]
+ cmp r0, #0xff
+ beq _02008A34
+ ldr r0, [sp, #0x0]
+ mov r1, #0xf
+ and r0, r1
+ str r0, [sp, #0x14]
+ add r0, #0x48
+ str r0, [sp, #0x14]
+ ldr r0, [sp, #0x0]
+ mov r1, #0xf0
+ and r0, r1
+ lsr r7, r0, #0x4
+ sub r7, #0x8
+_020089DC:
+ lsl r0, r4, #0x1
+ add r5, r2, r0
+ ldrb r1, [r2, r0]
+ ldrb r5, [r5, #0x1]
+ ldr r0, [sp, #0x14]
+ sub r1, #0xe
+ add r0, r0, r1
+ add r5, r7, r5
+ lsl r0, r0, #0x18
+ lsl r5, r5, #0x18
+ lsr r1, r0, #0x18
+ lsr r6, r5, #0x18
+ mov r5, #0x50
+ lsr r0, r1, #0x1
+ mul r5, r6
+ add r0, r0, r5
+ mov r5, #0x1
+ tst r1, r5
+ ldrb r5, [r3, r0]
+ beq _02008A16
+ mov r1, #0xf0
+ and r1, r5
+ cmp r1, #0x10
+ blt _02008A26
+ cmp r1, #0x30
+ bgt _02008A26
+ add r5, #0x50
+ strb r5, [r3, r0]
+ b _02008A26
+_02008A16:
+ mov r1, #0xf
+ and r1, r5
+ cmp r1, #0x1
+ blt _02008A26
+ cmp r1, #0x3
+ bgt _02008A26
+ add r1, r5, #0x5
+ strb r1, [r3, r0]
+_02008A26:
+ add r0, r4, #0x1
+ lsl r0, r0, #0x18
+ lsr r4, r0, #0x18
+ lsl r0, r4, #0x1
+ ldrb r0, [r2, r0]
+ cmp r0, #0xff
+ bne _020089DC
+_02008A34:
+ ldr r0, [sp, #0x0]
+ lsr r0, r0, #0x8
+ str r0, [sp, #0x0]
+ ldr r0, [sp, #0x18]
+ add r0, r0, #0x4
+ str r0, [sp, #0x18]
+ ldr r0, [sp, #0x8]
+ add r0, r0, #0x1
+ str r0, [sp, #0x8]
+ cmp r0, #0x4
+ blt _020089BA
+_02008A4A:
+ add sp, #0x1c
+ pop {r4-r7, pc}
+ nop
+_02008A50: .word 0x02105AE8
+
+ thumb_func_start FUN_02008A54
+FUN_02008A54: ; 0x02008A54
+ ldr r2, [r0, #0x0]
+ ldr r1, _02008A6C ; =0x41C64E6D
+ add r3, r2, #0x0
+ mul r3, r1
+ ldr r1, _02008A70 ; =0x00006073
+ add r1, r3, r1
+ str r1, [r0, #0x0]
+ lsr r0, r1, #0x10
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ bx lr
+ nop
+_02008A6C: .word 0x41C64E6D
+_02008A70: .word 0x00006073
+
+ thumb_func_start FUN_02008A74
+FUN_02008A74: ; 0x02008A74
+ push {r3-r7, lr}
+ ldr r1, _02008AA0 ; =0x000018FE
+ mov r6, #0x0
+ ldrh r2, [r0, r1]
+ lsr r4, r1, #0x1
+ add r5, r0, r1
+ str r2, [sp, #0x0]
+ add r7, sp, #0x0
+ mvn r6, r6
+_02008A86:
+ ldrh r1, [r5, #0x0]
+ ldr r0, [sp, #0x0]
+ eor r0, r1
+ strh r0, [r5, #0x0]
+ add r0, r7, #0x0
+ bl FUN_02008A54
+ sub r4, r4, #0x1
+ sub r5, r5, #0x2
+ cmp r4, r6
+ bgt _02008A86
+ pop {r3-r7, pc}
+ nop
+_02008AA0: .word 0x000018FE
+
+ thumb_func_start FUN_02008AA4
+FUN_02008AA4: ; 0x02008AA4
+ push {r3-r7, lr}
+ sub sp, #0x18
+ mov r4, #0x0
+ add r5, r0, #0x0
+ add r0, r4, #0x0
+ str r0, [sp, #0x8]
+ ldr r0, [sp, #0x44]
+ add r6, r1, #0x0
+ str r2, [sp, #0x0]
+ str r3, [sp, #0x4]
+ str r4, [sp, #0xc]
+ cmp r0, #0x0
+ bne _02008AC2
+ bl ErrorHandling
+_02008AC2:
+ ldr r0, [sp, #0x48]
+ cmp r0, #0x0
+ bne _02008ACC
+ bl ErrorHandling
+_02008ACC:
+ ldr r0, [sp, #0x50]
+ cmp r0, #0x0
+ bne _02008AD6
+ bl ErrorHandling
+_02008AD6:
+ ldr r0, [sp, #0x4c]
+ cmp r0, #0x0
+ bne _02008AE0
+ bl ErrorHandling
+_02008AE0:
+ cmp r5, #0x0
+ bne _02008AE8
+ bl ErrorHandling
+_02008AE8:
+ ldr r0, [sp, #0x44]
+ add r1, r6, #0x0
+ bl FUN_020094F0
+ add r7, r0, #0x0
+ bne _02008AF8
+ bl ErrorHandling
+_02008AF8:
+ ldr r0, [sp, #0x48]
+ ldr r1, [sp, #0x0]
+ bl FUN_020094F0
+ str r0, [sp, #0x14]
+ cmp r0, #0x0
+ bne _02008B0A
+ bl ErrorHandling
+_02008B0A:
+ ldr r0, [sp, #0x4c]
+ ldr r1, [sp, #0x4]
+ bl FUN_020094F0
+ str r0, [sp, #0x10]
+ cmp r0, #0x0
+ bne _02008B1C
+ bl ErrorHandling
+_02008B1C:
+ ldr r0, [sp, #0x50]
+ cmp r0, #0x0
+ beq _02008B3A
+ mov r2, #0x0
+ ldr r1, [sp, #0x30]
+ mvn r2, r2
+ cmp r1, r2
+ beq _02008B3A
+ bl FUN_020094F0
+ str r0, [sp, #0xc]
+ cmp r0, #0x0
+ bne _02008B3A
+ bl ErrorHandling
+_02008B3A:
+ ldr r0, [sp, #0x54]
+ cmp r0, #0x0
+ beq _02008B62
+ mov r2, #0x0
+ ldr r1, [sp, #0x34]
+ mvn r2, r2
+ cmp r1, r2
+ beq _02008B50
+ bl FUN_020094F0
+ add r4, r0, #0x0
+_02008B50:
+ mov r0, #0x0
+ ldr r1, [sp, #0x38]
+ mvn r0, r0
+ cmp r1, r0
+ beq _02008B62
+ ldr r0, [sp, #0x58]
+ bl FUN_020094F0
+ str r0, [sp, #0x8]
+_02008B62:
+ ldr r0, [sp, #0x3c]
+ cmp r0, #0x0
+ beq _02008B82
+ ldr r1, [sp, #0x10]
+ add r0, r7, #0x0
+ bl FUN_02009C80
+ add r6, r0, #0x0
+ bne _02008B78
+ bl ErrorHandling
+_02008B78:
+ add r0, r7, #0x0
+ bl FUN_02009544
+ str r0, [r5, #0x4]
+ b _02008B94
+_02008B82:
+ add r0, r7, #0x0
+ bl FUN_02009C5C
+ add r6, r0, #0x0
+ bne _02008B90
+ bl ErrorHandling
+_02008B90:
+ mov r0, #0x0
+ str r0, [r5, #0x4]
+_02008B94:
+ ldr r0, [sp, #0x14]
+ add r1, r6, #0x0
+ bl FUN_02009E54
+ str r0, [r5, #0x8]
+ ldr r0, [sp, #0x10]
+ str r6, [r5, #0x0]
+ bl FUN_02009574
+ str r0, [r5, #0xc]
+ ldr r0, [sp, #0xc]
+ cmp r0, #0x0
+ beq _02008BB4
+ bl FUN_0200958C
+ b _02008BB6
+_02008BB4:
+ mov r0, #0x0
+_02008BB6:
+ str r0, [r5, #0x10]
+ cmp r4, #0x0
+ beq _02008BCC
+ add r0, r4, #0x0
+ bl FUN_020095A4
+ str r0, [r5, #0x14]
+ ldr r0, [sp, #0x8]
+ bl FUN_020095BC
+ b _02008BD0
+_02008BCC:
+ mov r0, #0x0
+ str r0, [r5, #0x14]
+_02008BD0:
+ str r0, [r5, #0x18]
+ ldr r0, [sp, #0x3c]
+ str r0, [r5, #0x1c]
+ ldr r0, [sp, #0x40]
+ add r5, #0x20
+ strb r0, [r5, #0x0]
+ add sp, #0x18
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_02008BE0
+FUN_02008BE0: ; 0x02008BE0
+ push {r4-r7, lr}
+ sub sp, #0x34
+ add r5, r0, #0x0
+ ldr r0, [sp, #0x48]
+ add r7, r1, #0x0
+ str r0, [sp, #0x48]
+ ldr r0, [sp, #0x4c]
+ mov r4, #0x0
+ str r0, [sp, #0x4c]
+ ldr r0, [sp, #0x50]
+ ldr r1, [r5, #0x0]
+ str r0, [sp, #0x50]
+ ldr r0, [sp, #0x54]
+ str r2, [sp, #0x2c]
+ str r0, [sp, #0x54]
+ sub r0, r4, #0x2
+ str r3, [sp, #0x30]
+ cmp r1, r0
+ beq _02008C14
+ add r2, r5, #0x0
+ sub r0, r4, #0x2
+_02008C0A:
+ add r2, #0x20
+ ldr r1, [r2, #0x0]
+ add r4, r4, #0x1
+ cmp r1, r0
+ bne _02008C0A
+_02008C14:
+ add r0, r7, #0x0
+ mov r1, #0x8
+ bl FUN_02016998
+ mov r1, #0x24
+ add r6, r0, #0x0
+ add r0, r7, #0x0
+ mul r1, r4
+ bl FUN_02016998
+ str r0, [r6, #0x0]
+ mov r7, #0x0
+ str r4, [r6, #0x4]
+ cmp r4, #0x0
+ ble _02008C7A
+ add r4, r7, #0x0
+_02008C34:
+ ldr r0, [r5, #0xc]
+ str r0, [sp, #0x0]
+ ldr r0, [r5, #0x10]
+ str r0, [sp, #0x4]
+ ldr r0, [r5, #0x14]
+ str r0, [sp, #0x8]
+ ldr r0, [r5, #0x18]
+ str r0, [sp, #0xc]
+ ldr r0, [r5, #0x1c]
+ str r0, [sp, #0x10]
+ ldr r0, [sp, #0x2c]
+ str r0, [sp, #0x14]
+ ldr r0, [sp, #0x30]
+ str r0, [sp, #0x18]
+ ldr r0, [sp, #0x48]
+ str r0, [sp, #0x1c]
+ ldr r0, [sp, #0x4c]
+ str r0, [sp, #0x20]
+ ldr r0, [sp, #0x50]
+ str r0, [sp, #0x24]
+ ldr r0, [sp, #0x54]
+ str r0, [sp, #0x28]
+ ldr r0, [r6, #0x0]
+ ldr r1, [r5, #0x0]
+ ldr r2, [r5, #0x4]
+ ldr r3, [r5, #0x8]
+ add r0, r0, r4
+ bl FUN_02008AA4
+ ldr r0, [r6, #0x4]
+ add r7, r7, #0x1
+ add r5, #0x20
+ add r4, #0x24
+ cmp r7, r0
+ blt _02008C34
+_02008C7A:
+ add r0, r6, #0x0
+ add sp, #0x34
+ pop {r4-r7, pc}
+
+ thumb_func_start FUN_02008C80
+FUN_02008C80: ; 0x02008C80
+ push {r4, lr}
+ add r4, r0, #0x0
+ bne _02008C8A
+ bl ErrorHandling
+_02008C8A:
+ ldr r0, [r4, #0x0]
+ cmp r0, #0x0
+ beq _02008C94
+ bl FUN_02016A18
+_02008C94:
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ pop {r4, pc}
+
+ thumb_func_start FUN_02008C9C
+FUN_02008C9C: ; 0x02008C9C
+ push {r3-r6, lr}
+ sub sp, #0x1c
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ ldr r1, _02008D00 ; =0xFFFFF000
+ add r0, r4, #0x0
+ add r6, r2, #0x0
+ bl FUN_0202134C
+ mov r0, #0x0
+ str r0, [sp, #0x0]
+ str r0, [sp, #0x4]
+ mov r0, #0xff
+ lsl r0, r0, #0xc
+ str r0, [sp, #0x8]
+ mov r0, #0x3
+ lsl r0, r0, #0x12
+ str r0, [sp, #0xc]
+ add r0, r4, #0x0
+ add r0, #0x98
+ add r1, sp, #0x0
+ mov r2, #0x1
+ add r3, r4, #0x0
+ bl FUN_02009FD8
+ mov r0, #0x0
+ str r0, [sp, #0x0]
+ mov r0, #0xff
+ mov r1, #0x3
+ lsl r1, r1, #0x12
+ lsl r0, r0, #0xc
+ str r0, [sp, #0x8]
+ add r0, r4, #0x0
+ str r1, [sp, #0x4]
+ str r1, [sp, #0xc]
+ add r0, #0xe0
+ add r1, sp, #0x0
+ mov r2, #0x2
+ add r3, r4, #0x0
+ bl FUN_02009FD8
+ add r0, sp, #0x10
+ str r5, [sp, #0x10]
+ str r4, [sp, #0x14]
+ str r6, [sp, #0x18]
+ bl FUN_0201FCB0
+ add sp, #0x1c
+ pop {r3-r6, pc}
+ nop
+_02008D00: .word 0xFFFFF000
+
+ thumb_func_start FUN_02008D04
+FUN_02008D04: ; 0x02008D04
+ push {r3, lr}
+ sub sp, #0x10
+ str r1, [sp, #0x0]
+ mov r1, #0xff
+ lsl r1, r1, #0xc
+ str r1, [sp, #0x8]
+ mov r1, #0x3
+ lsl r1, r1, #0x12
+ str r1, [sp, #0xc]
+ add r0, #0x98
+ add r1, sp, #0x0
+ str r2, [sp, #0x4]
+ bl FUN_02021390
+ add sp, #0x10
+ pop {r3, pc}
+
+ thumb_func_start FUN_02008D24
+FUN_02008D24: ; 0x02008D24
+ push {r3, lr}
+ sub sp, #0x10
+ str r1, [sp, #0x0]
+ mov r1, #0xff
+ lsl r1, r1, #0xc
+ str r1, [sp, #0x8]
+ mov r1, #0x3
+ lsl r1, r1, #0x12
+ str r1, [sp, #0xc]
+ add r0, #0xe0
+ add r1, sp, #0x0
+ str r2, [sp, #0x4]
+ bl FUN_02021390
+ add sp, #0x10
+ pop {r3, pc}
+
+ thumb_func_start FUN_02008D44
+FUN_02008D44: ; 0x02008D44
+ push {r4, lr}
+ add r4, r0, #0x0
+ cmp r1, #0x10
+ beq _02008D5A
+ ldr r2, _02008DCC ; =0x00100010
+ cmp r1, r2
+ beq _02008D8A
+ ldr r0, _02008DD0 ; =0x00200010
+ cmp r1, r0
+ beq _02008D98
+ b _02008DC4
+_02008D5A:
+ blx GX_GetBankForOBJ
+ cmp r0, #0x40
+ beq _02008D6A
+ blx GX_GetBankForOBJ
+ cmp r0, #0x20
+ bne _02008D7A
+_02008D6A:
+ mov r0, #0x3e
+ mov r1, #0x2
+ lsl r0, r0, #0x8
+ lsl r1, r1, #0x8
+ add r2, r4, #0x0
+ bl FUN_0201D194
+ pop {r4, pc}
+_02008D7A:
+ mov r0, #0x7e
+ mov r1, #0x2
+ lsl r0, r0, #0x8
+ lsl r1, r1, #0x8
+ add r2, r4, #0x0
+ bl FUN_0201D194
+ pop {r4, pc}
+_02008D8A:
+ mov r0, #0xfe
+ lsr r1, r2, #0xb
+ lsl r0, r0, #0x8
+ add r2, r4, #0x0
+ bl FUN_0201D194
+ pop {r4, pc}
+_02008D98:
+ blx GX_GetBankForOBJ
+ cmp r0, #0x30
+ beq _02008DA8
+ blx GX_GetBankForOBJ
+ cmp r0, #0x50
+ bne _02008DB6
+_02008DA8:
+ mov r1, #0x2
+ ldr r0, _02008DD4 ; =0x00013E00
+ lsl r1, r1, #0x8
+ add r2, r4, #0x0
+ bl FUN_0201D194
+ pop {r4, pc}
+_02008DB6:
+ mov r1, #0x2
+ ldr r0, _02008DD8 ; =0x0001FE00
+ lsl r1, r1, #0x8
+ add r2, r4, #0x0
+ bl FUN_0201D194
+ pop {r4, pc}
+_02008DC4:
+ bl ErrorHandling
+ pop {r4, pc}
+ nop
+_02008DCC: .word 0x00100010
+_02008DD0: .word 0x00200010
+_02008DD4: .word 0x00013E00
+_02008DD8: .word 0x0001FE00
+
+ thumb_func_start FUN_02008DDC
+FUN_02008DDC: ; 0x02008DDC
+ ldr r3, _02008DE8 ; =0x0201E069
+ add r1, r0, #0x0
+ mov r0, #0x3
+ lsl r0, r0, #0xe
+ bx r3
+ nop
+_02008DE8: .word 0x0201E069
+
+ thumb_func_start FUN_02008DEC
+FUN_02008DEC: ; 0x02008DEC
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ add r6, r1, #0x0
+ str r2, [sp, #0x0]
+ add r0, r2, #0x0
+ mov r1, #0x14
+ bl FUN_02016998
+ add r4, r0, #0x0
+ ldr r1, [sp, #0x0]
+ add r0, r5, #0x0
+ bl FUN_02020C44
+ str r0, [r4, #0x0]
+ mov r0, #0xc
+ add r7, r5, #0x0
+ mul r7, r0
+ ldr r0, [sp, #0x0]
+ add r1, r7, #0x0
+ bl FUN_02016998
+ mov r1, #0x0
+ add r2, r7, #0x0
+ str r0, [r4, #0x4]
+ blx Call_FillMemWithValue
+ str r5, [r4, #0x8]
+ mov r0, #0x0
+ str r0, [r4, #0xc]
+ str r6, [r4, #0x10]
+ add r0, r4, #0x0
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_02008E2C
+FUN_02008E2C: ; 0x02008E2C
+ push {r4, lr}
+ add r4, r0, #0x0
+ bne _02008E36
+ bl ErrorHandling
+_02008E36:
+ ldr r0, [r4, #0x0]
+ cmp r0, #0x0
+ bne _02008E40
+ bl ErrorHandling
+_02008E40:
+ ldr r0, [r4, #0x4]
+ cmp r0, #0x0
+ bne _02008E4A
+ bl ErrorHandling
+_02008E4A:
+ add r0, r4, #0x0
+ bl FUN_020094C4
+ ldr r0, [r4, #0x0]
+ bl FUN_02020C90
+ mov r0, #0x0
+ str r0, [r4, #0x0]
+ ldr r0, [r4, #0x4]
+ bl FUN_02016A18
+ mov r0, #0x0
+ str r0, [r4, #0x4]
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ pop {r4, pc}
+
+ thumb_func_start FUN_02008E6C
+FUN_02008E6C: ; 0x02008E6C
+ push {r3-r7, lr}
+ sub sp, #0x20
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ add r6, r2, #0x0
+ add r7, r3, #0x0
+ cmp r5, #0x0
+ bne _02008E80
+ bl ErrorHandling
+_02008E80:
+ cmp r4, #0x0
+ bne _02008E88
+ bl ErrorHandling
+_02008E88:
+ ldr r0, [r4, #0x4]
+ cmp r0, r6
+ bgt _02008E92
+ bl ErrorHandling
+_02008E92:
+ ldr r1, [r5, #0x10]
+ ldr r0, [r4, #0x8]
+ cmp r1, r0
+ beq _02008E9E
+ bl ErrorHandling
+_02008E9E:
+ add r0, r5, #0x0
+ bl FUN_020097D0
+ str r0, [sp, #0x1c]
+ cmp r0, #0x0
+ bne _02008EAE
+ bl ErrorHandling
+_02008EAE:
+ ldrb r0, [r4, #0xc]
+ cmp r0, #0x0
+ bne _02008EEA
+ ldr r2, [r4, #0x0]
+ mov r0, #0x4c
+ add r1, r6, #0x0
+ mul r1, r0
+ add r6, r2, r1
+ ldr r1, [r2, r1]
+ add r0, r5, #0x0
+ bl FUN_0200945C
+ cmp r0, #0x1
+ beq _02008ECE
+ bl ErrorHandling
+_02008ECE:
+ ldr r0, [r6, #0x44]
+ ldr r1, [sp, #0x1c]
+ str r0, [sp, #0x0]
+ ldr r0, [r6, #0x48]
+ add r2, r6, #0x4
+ str r0, [sp, #0x4]
+ ldr r0, [r4, #0x8]
+ str r0, [sp, #0x8]
+ str r7, [sp, #0xc]
+ ldr r3, [r6, #0x0]
+ add r0, r5, #0x0
+ bl FUN_0200994C
+ b _02008F28
+_02008EEA:
+ mov r0, #0x18
+ ldr r1, [r4, #0x0]
+ mul r0, r6
+ add r6, r1, r0
+ ldr r1, [r6, #0xc]
+ add r0, r5, #0x0
+ bl FUN_0200945C
+ cmp r0, #0x1
+ beq _02008F02
+ bl ErrorHandling
+_02008F02:
+ ldr r0, [r6, #0x8]
+ ldr r1, [sp, #0x1c]
+ str r0, [sp, #0x0]
+ ldr r0, [r6, #0xc]
+ str r0, [sp, #0x4]
+ ldr r0, [r6, #0x10]
+ str r0, [sp, #0x8]
+ ldr r0, [r6, #0x14]
+ str r0, [sp, #0xc]
+ ldr r0, [r4, #0x8]
+ str r0, [sp, #0x10]
+ str r7, [sp, #0x14]
+ mov r0, #0x0
+ str r0, [sp, #0x18]
+ ldr r2, [r6, #0x0]
+ ldr r3, [r6, #0x4]
+ add r0, r5, #0x0
+ bl FUN_02009978
+_02008F28:
+ ldr r0, [r5, #0xc]
+ add r0, r0, #0x1
+ str r0, [r5, #0xc]
+ ldr r0, [sp, #0x1c]
+ add sp, #0x20
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_02008F34
+FUN_02008F34: ; 0x02008F34
+ push {r3-r7, lr}
+ sub sp, #0x20
+ add r5, r0, #0x0
+ add r7, r1, #0x0
+ add r4, r3, #0x0
+ str r2, [sp, #0x1c]
+ cmp r5, #0x0
+ bne _02008F48
+ bl ErrorHandling
+_02008F48:
+ ldr r0, [r5, #0x10]
+ cmp r0, #0x0
+ beq _02008F52
+ bl ErrorHandling
+_02008F52:
+ add r0, r5, #0x0
+ bl FUN_020097D0
+ add r6, r0, #0x0
+ bne _02008F60
+ bl ErrorHandling
+_02008F60:
+ ldr r0, [sp, #0x38]
+ str r4, [sp, #0x0]
+ str r0, [sp, #0x4]
+ ldr r0, [sp, #0x3c]
+ mov r1, #0x0
+ str r0, [sp, #0x8]
+ str r1, [sp, #0xc]
+ ldr r0, [sp, #0x40]
+ str r1, [sp, #0x10]
+ str r0, [sp, #0x14]
+ str r1, [sp, #0x18]
+ ldr r3, [sp, #0x1c]
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ add r2, r7, #0x0
+ bl FUN_02009978
+ ldr r0, [r5, #0xc]
+ add r0, r0, #0x1
+ str r0, [r5, #0xc]
+ add r0, r6, #0x0
+ add sp, #0x20
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_02008F90
+FUN_02008F90: ; 0x02008F90
+ push {r3-r7, lr}
+ sub sp, #0x20
+ add r5, r0, #0x0
+ add r7, r1, #0x0
+ add r4, r3, #0x0
+ str r2, [sp, #0x1c]
+ cmp r5, #0x0
+ bne _02008FA4
+ bl ErrorHandling
+_02008FA4:
+ ldr r0, [r5, #0x10]
+ cmp r0, #0x0
+ beq _02008FAE
+ bl ErrorHandling
+_02008FAE:
+ add r0, r5, #0x0
+ bl FUN_020097D0
+ add r6, r0, #0x0
+ bne _02008FBC
+ bl ErrorHandling
+_02008FBC:
+ ldr r0, [sp, #0x38]
+ str r4, [sp, #0x0]
+ str r0, [sp, #0x4]
+ ldr r0, [sp, #0x3c]
+ ldr r3, [sp, #0x1c]
+ str r0, [sp, #0x8]
+ mov r0, #0x0
+ str r0, [sp, #0xc]
+ str r0, [sp, #0x10]
+ ldr r0, [sp, #0x40]
+ add r1, r6, #0x0
+ str r0, [sp, #0x14]
+ ldr r0, [sp, #0x44]
+ add r2, r7, #0x0
+ str r0, [sp, #0x18]
+ add r0, r5, #0x0
+ bl FUN_02009978
+ ldr r0, [r5, #0xc]
+ add r0, r0, #0x1
+ str r0, [r5, #0xc]
+ add r0, r6, #0x0
+ add sp, #0x20
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_02008FEC
+FUN_02008FEC: ; 0x02008FEC
+ push {r3-r7, lr}
+ sub sp, #0x20
+ add r5, r0, #0x0
+ add r7, r1, #0x0
+ add r4, r3, #0x0
+ str r2, [sp, #0x1c]
+ cmp r5, #0x0
+ bne _02009000
+ bl ErrorHandling
+_02009000:
+ ldr r0, [r5, #0x10]
+ cmp r0, #0x1
+ beq _0200900A
+ bl ErrorHandling
+_0200900A:
+ add r0, r5, #0x0
+ bl FUN_020097D0
+ add r6, r0, #0x0
+ bne _02009018
+ bl ErrorHandling
+_02009018:
+ ldr r0, [sp, #0x38]
+ str r4, [sp, #0x0]
+ str r0, [sp, #0x4]
+ ldr r0, [sp, #0x3c]
+ ldr r3, [sp, #0x1c]
+ str r0, [sp, #0x8]
+ ldr r0, [sp, #0x40]
+ add r1, r6, #0x0
+ str r0, [sp, #0xc]
+ mov r0, #0x1
+ str r0, [sp, #0x10]
+ ldr r0, [sp, #0x44]
+ add r2, r7, #0x0
+ str r0, [sp, #0x14]
+ mov r0, #0x0
+ str r0, [sp, #0x18]
+ add r0, r5, #0x0
+ bl FUN_02009978
+ ldr r0, [r5, #0xc]
+ add r0, r0, #0x1
+ str r0, [r5, #0xc]
+ add r0, r6, #0x0
+ add sp, #0x20
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_0200904C
+FUN_0200904C: ; 0x0200904C
+ push {r3-r7, lr}
+ sub sp, #0x20
+ add r5, r0, #0x0
+ add r7, r1, #0x0
+ add r4, r3, #0x0
+ str r2, [sp, #0x1c]
+ cmp r5, #0x0
+ bne _02009060
+ bl ErrorHandling
+_02009060:
+ ldr r0, [r5, #0x10]
+ cmp r0, #0x1
+ beq _0200906A
+ bl ErrorHandling
+_0200906A:
+ add r0, r5, #0x0
+ bl FUN_020097D0
+ add r6, r0, #0x0
+ bne _02009078
+ bl ErrorHandling
+_02009078:
+ ldr r0, [sp, #0x38]
+ str r4, [sp, #0x0]
+ str r0, [sp, #0x4]
+ ldr r0, [sp, #0x3c]
+ ldr r3, [sp, #0x1c]
+ str r0, [sp, #0x8]
+ ldr r0, [sp, #0x40]
+ add r1, r6, #0x0
+ str r0, [sp, #0xc]
+ mov r0, #0x1
+ str r0, [sp, #0x10]
+ ldr r0, [sp, #0x44]
+ add r2, r7, #0x0
+ str r0, [sp, #0x14]
+ ldr r0, [sp, #0x48]
+ str r0, [sp, #0x18]
+ add r0, r5, #0x0
+ bl FUN_02009978
+ ldr r0, [r5, #0xc]
+ add r0, r0, #0x1
+ str r0, [r5, #0xc]
+ add r0, r6, #0x0
+ add sp, #0x20
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_020090AC
+FUN_020090AC: ; 0x020090AC
+ push {r3-r7, lr}
+ sub sp, #0x20
+ add r5, r0, #0x0
+ add r7, r1, #0x0
+ add r4, r3, #0x0
+ str r2, [sp, #0x1c]
+ cmp r5, #0x0
+ bne _020090C0
+ bl ErrorHandling
+_020090C0:
+ add r0, r5, #0x0
+ bl FUN_020097D0
+ add r6, r0, #0x0
+ bne _020090CE
+ bl ErrorHandling
+_020090CE:
+ ldr r0, [sp, #0x38]
+ str r4, [sp, #0x0]
+ str r0, [sp, #0x4]
+ mov r1, #0x0
+ str r1, [sp, #0x8]
+ ldr r0, [sp, #0x3c]
+ str r1, [sp, #0xc]
+ str r0, [sp, #0x10]
+ ldr r0, [sp, #0x40]
+ ldr r3, [sp, #0x1c]
+ str r0, [sp, #0x14]
+ str r1, [sp, #0x18]
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ add r2, r7, #0x0
+ bl FUN_02009978
+ ldr r0, [r5, #0xc]
+ add r0, r0, #0x1
+ str r0, [r5, #0xc]
+ add r0, r6, #0x0
+ add sp, #0x20
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_020090FC
+FUN_020090FC: ; 0x020090FC
+ push {r4-r7, lr}
+ sub sp, #0x24
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ str r2, [sp, #0x1c]
+ str r3, [sp, #0x20]
+ cmp r5, #0x0
+ bne _02009110
+ bl ErrorHandling
+_02009110:
+ ldr r0, [r5, #0x10]
+ cmp r0, #0x0
+ beq _0200911A
+ bl ErrorHandling
+_0200911A:
+ cmp r4, #0x0
+ bne _02009122
+ bl ErrorHandling
+_02009122:
+ ldr r0, [r4, #0x4]
+ cmp r0, #0x0
+ beq _0200912C
+ bl ErrorHandling
+_0200912C:
+ add r0, r4, #0x0
+ bl FUN_02009530
+ add r6, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_020095E4
+ add r7, r0, #0x0
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_02009490
+ ldr r0, [sp, #0x38]
+ mov r1, #0x0
+ str r0, [sp, #0x0]
+ str r6, [sp, #0x4]
+ str r7, [sp, #0x8]
+ str r1, [sp, #0xc]
+ ldr r0, [sp, #0x3c]
+ str r1, [sp, #0x10]
+ str r0, [sp, #0x14]
+ str r1, [sp, #0x18]
+ ldr r2, [sp, #0x1c]
+ ldr r3, [sp, #0x20]
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_02009978
+ add sp, #0x24
+ pop {r4-r7, pc}
+
+ thumb_func_start FUN_02009168
+FUN_02009168: ; 0x02009168
+ push {r3-r7, lr}
+ sub sp, #0x28
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ str r2, [sp, #0x1c]
+ str r3, [sp, #0x20]
+ cmp r5, #0x0
+ bne _0200917C
+ bl ErrorHandling
+_0200917C:
+ ldr r0, [r5, #0x10]
+ cmp r0, #0x1
+ beq _02009186
+ bl ErrorHandling
+_02009186:
+ cmp r4, #0x0
+ bne _0200918E
+ bl ErrorHandling
+_0200918E:
+ ldr r0, [r4, #0x4]
+ cmp r0, #0x1
+ beq _02009198
+ bl ErrorHandling
+_02009198:
+ add r0, r4, #0x0
+ bl FUN_02009530
+ add r6, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_020095E4
+ add r7, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_02009610
+ str r0, [sp, #0x24]
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_02009490
+ ldr r0, [sp, #0x40]
+ ldr r2, [sp, #0x1c]
+ str r0, [sp, #0x0]
+ str r6, [sp, #0x4]
+ ldr r0, [sp, #0x24]
+ str r7, [sp, #0x8]
+ str r0, [sp, #0xc]
+ mov r0, #0x1
+ str r0, [sp, #0x10]
+ ldr r0, [sp, #0x44]
+ ldr r3, [sp, #0x20]
+ str r0, [sp, #0x14]
+ mov r0, #0x0
+ str r0, [sp, #0x18]
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_02009978
+ add sp, #0x28
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_020091E0
+FUN_020091E0: ; 0x020091E0
+ push {r3-r7, lr}
+ sub sp, #0x20
+ add r5, r0, #0x0
+ add r7, r1, #0x0
+ add r4, r3, #0x0
+ str r2, [sp, #0x1c]
+ cmp r5, #0x0
+ bne _020091F4
+ bl ErrorHandling
+_020091F4:
+ ldr r0, [r5, #0x10]
+ cmp r0, #0x0
+ beq _020091FE
+ bl ErrorHandling
+_020091FE:
+ add r0, r5, #0x0
+ bl FUN_020097D0
+ add r6, r0, #0x0
+ bne _0200920C
+ bl ErrorHandling
+_0200920C:
+ ldr r0, [sp, #0x38]
+ str r4, [sp, #0x0]
+ str r0, [sp, #0x4]
+ ldr r0, [sp, #0x3c]
+ mov r1, #0x0
+ str r0, [sp, #0x8]
+ str r1, [sp, #0xc]
+ ldr r0, [sp, #0x40]
+ str r1, [sp, #0x10]
+ str r0, [sp, #0x14]
+ str r1, [sp, #0x18]
+ ldr r3, [sp, #0x1c]
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ add r2, r7, #0x0
+ bl FUN_020099B0
+ ldr r0, [r5, #0xc]
+ add r0, r0, #0x1
+ str r0, [r5, #0xc]
+ add r0, r6, #0x0
+ add sp, #0x20
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_0200923C
+FUN_0200923C: ; 0x0200923C
+ push {r3-r7, lr}
+ sub sp, #0x20
+ add r5, r0, #0x0
+ add r7, r1, #0x0
+ add r4, r3, #0x0
+ str r2, [sp, #0x1c]
+ cmp r5, #0x0
+ bne _02009250
+ bl ErrorHandling
+_02009250:
+ ldr r0, [r5, #0x10]
+ cmp r0, #0x0
+ beq _0200925A
+ bl ErrorHandling
+_0200925A:
+ add r0, r5, #0x0
+ bl FUN_020097D0
+ add r6, r0, #0x0
+ bne _02009268
+ bl ErrorHandling
+_02009268:
+ ldr r0, [sp, #0x38]
+ str r4, [sp, #0x0]
+ str r0, [sp, #0x4]
+ ldr r0, [sp, #0x3c]
+ ldr r3, [sp, #0x1c]
+ str r0, [sp, #0x8]
+ mov r0, #0x0
+ str r0, [sp, #0xc]
+ str r0, [sp, #0x10]
+ ldr r0, [sp, #0x40]
+ add r1, r6, #0x0
+ str r0, [sp, #0x14]
+ ldr r0, [sp, #0x44]
+ add r2, r7, #0x0
+ str r0, [sp, #0x18]
+ add r0, r5, #0x0
+ bl FUN_020099B0
+ ldr r0, [r5, #0xc]
+ add r0, r0, #0x1
+ str r0, [r5, #0xc]
+ add r0, r6, #0x0
+ add sp, #0x20
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_02009298
+FUN_02009298: ; 0x02009298
+ push {r3-r7, lr}
+ sub sp, #0x20
+ add r5, r0, #0x0
+ add r7, r1, #0x0
+ add r4, r3, #0x0
+ str r2, [sp, #0x1c]
+ cmp r5, #0x0
+ bne _020092AC
+ bl ErrorHandling
+_020092AC:
+ ldr r0, [r5, #0x10]
+ cmp r0, #0x1
+ beq _020092B6
+ bl ErrorHandling
+_020092B6:
+ add r0, r5, #0x0
+ bl FUN_020097D0
+ add r6, r0, #0x0
+ bne _020092C4
+ bl ErrorHandling
+_020092C4:
+ ldr r0, [sp, #0x38]
+ str r4, [sp, #0x0]
+ str r0, [sp, #0x4]
+ ldr r0, [sp, #0x3c]
+ ldr r3, [sp, #0x1c]
+ str r0, [sp, #0x8]
+ ldr r0, [sp, #0x40]
+ add r1, r6, #0x0
+ str r0, [sp, #0xc]
+ mov r0, #0x1
+ str r0, [sp, #0x10]
+ ldr r0, [sp, #0x44]
+ add r2, r7, #0x0
+ str r0, [sp, #0x14]
+ mov r0, #0x0
+ str r0, [sp, #0x18]
+ add r0, r5, #0x0
+ bl FUN_020099B0
+ ldr r0, [r5, #0xc]
+ add r0, r0, #0x1
+ str r0, [r5, #0xc]
+ add r0, r6, #0x0
+ add sp, #0x20
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_020092F8
+FUN_020092F8: ; 0x020092F8
+ push {r3-r7, lr}
+ sub sp, #0x20
+ add r5, r0, #0x0
+ add r7, r1, #0x0
+ add r4, r3, #0x0
+ str r2, [sp, #0x1c]
+ cmp r5, #0x0
+ bne _0200930C
+ bl ErrorHandling
+_0200930C:
+ ldr r0, [r5, #0x10]
+ cmp r0, #0x1
+ beq _02009316
+ bl ErrorHandling
+_02009316:
+ add r0, r5, #0x0
+ bl FUN_020097D0
+ add r6, r0, #0x0
+ bne _02009324
+ bl ErrorHandling
+_02009324:
+ ldr r0, [sp, #0x38]
+ str r4, [sp, #0x0]
+ str r0, [sp, #0x4]
+ ldr r0, [sp, #0x3c]
+ ldr r3, [sp, #0x1c]
+ str r0, [sp, #0x8]
+ ldr r0, [sp, #0x40]
+ add r1, r6, #0x0
+ str r0, [sp, #0xc]
+ mov r0, #0x1
+ str r0, [sp, #0x10]
+ ldr r0, [sp, #0x44]
+ add r2, r7, #0x0
+ str r0, [sp, #0x14]
+ ldr r0, [sp, #0x48]
+ str r0, [sp, #0x18]
+ add r0, r5, #0x0
+ bl FUN_020099B0
+ ldr r0, [r5, #0xc]
+ add r0, r0, #0x1
+ str r0, [r5, #0xc]
+ add r0, r6, #0x0
+ add sp, #0x20
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_02009358
+FUN_02009358: ; 0x02009358
+ push {r3-r7, lr}
+ sub sp, #0x20
+ add r5, r0, #0x0
+ add r7, r1, #0x0
+ add r4, r3, #0x0
+ str r2, [sp, #0x1c]
+ cmp r5, #0x0
+ bne _0200936C
+ bl ErrorHandling
+_0200936C:
+ add r0, r5, #0x0
+ bl FUN_020097D0
+ add r6, r0, #0x0
+ bne _0200937A
+ bl ErrorHandling
+_0200937A:
+ ldr r0, [sp, #0x38]
+ str r4, [sp, #0x0]
+ str r0, [sp, #0x4]
+ mov r1, #0x0
+ str r1, [sp, #0x8]
+ ldr r0, [sp, #0x3c]
+ str r1, [sp, #0xc]
+ str r0, [sp, #0x10]
+ ldr r0, [sp, #0x40]
+ ldr r3, [sp, #0x1c]
+ str r0, [sp, #0x14]
+ str r1, [sp, #0x18]
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ add r2, r7, #0x0
+ bl FUN_020099B0
+ ldr r0, [r5, #0xc]
+ add r0, r0, #0x1
+ str r0, [r5, #0xc]
+ add r0, r6, #0x0
+ add sp, #0x20
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_020093A8
+FUN_020093A8: ; 0x020093A8
+ push {r3-r7, lr}
+ sub sp, #0x8
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ add r6, r2, #0x0
+ add r7, r3, #0x0
+ cmp r5, #0x0
+ bne _020093BC
+ bl ErrorHandling
+_020093BC:
+ cmp r4, #0x0
+ bne _020093C4
+ bl ErrorHandling
+_020093C4:
+ str r6, [sp, #0x0]
+ str r7, [sp, #0x4]
+ ldr r3, [r4, #0x4]
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ mov r2, #0x0
+ bl FUN_020093DC
+ ldr r0, [r4, #0x4]
+ add sp, #0x8
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_020093DC
+FUN_020093DC: ; 0x020093DC
+ push {r3-r7, lr}
+ sub sp, #0x8
+ str r0, [sp, #0x0]
+ add r5, r2, #0x0
+ ldr r0, [sp, #0x24]
+ add r7, r5, r3
+ str r1, [sp, #0x4]
+ ldr r4, [sp, #0x20]
+ str r0, [sp, #0x24]
+ cmp r5, r7
+ bge _02009420
+ add r6, r4, #0x0
+ add r6, #0x8
+_020093F6:
+ ldr r0, [sp, #0x0]
+ ldr r1, [sp, #0x4]
+ ldr r3, [sp, #0x24]
+ add r2, r5, #0x0
+ bl FUN_02008E6C
+ cmp r4, #0x0
+ beq _0200941A
+ ldr r2, [r4, #0x8]
+ ldr r1, [r4, #0x4]
+ cmp r1, r2
+ ble _0200941A
+ ldr r1, [r4, #0x0]
+ lsl r2, r2, #0x2
+ str r0, [r1, r2]
+ ldr r0, [r6, #0x0]
+ add r0, r0, #0x1
+ str r0, [r6, #0x0]
+_0200941A:
+ add r5, r5, #0x1
+ cmp r5, r7
+ blt _020093F6
+_02009420:
+ add sp, #0x8
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_02009424
+FUN_02009424: ; 0x02009424
+ push {r4-r6, lr}
+ add r6, r1, #0x0
+ add r5, r0, #0x0
+ add r0, r6, #0x0
+ mov r1, #0xc
+ bl FUN_02016998
+ add r4, r0, #0x0
+ add r0, r6, #0x0
+ lsl r1, r5, #0x2
+ bl FUN_02016998
+ str r0, [r4, #0x0]
+ str r5, [r4, #0x4]
+ mov r0, #0x0
+ str r0, [r4, #0x8]
+ add r0, r4, #0x0
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_02009448
+FUN_02009448: ; 0x02009448
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r0, [r4, #0x0]
+ bl FUN_02016A18
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0200945C
+FUN_0200945C: ; 0x0200945C
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ cmp r5, #0x0
+ bne _0200946A
+ bl ErrorHandling
+_0200946A:
+ ldr r0, [r5, #0x0]
+ add r1, r4, #0x0
+ bl FUN_02020CB0
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_02009474
+FUN_02009474: ; 0x02009474
+ push {r4, lr}
+ add r4, r0, #0x0
+ bne _0200947E
+ bl ErrorHandling
+_0200947E:
+ add r0, r4, #0x0
+ bl FUN_02009920
+ ldr r0, [r4, #0x0]
+ mov r1, #0x0
+ bl FUN_02020E1C
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02009490
+FUN_02009490: ; 0x02009490
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ cmp r5, #0x0
+ bne _0200949E
+ bl ErrorHandling
+_0200949E:
+ ldr r0, [r5, #0x4]
+ cmp r0, #0x0
+ bne _020094A8
+ bl ErrorHandling
+_020094A8:
+ add r0, r4, #0x0
+ bl FUN_02009920
+ ldr r0, [r5, #0x0]
+ ldr r1, [r4, #0x0]
+ bl FUN_02020D68
+ mov r0, #0x0
+ str r0, [r4, #0x0]
+ ldr r0, [r5, #0xc]
+ sub r0, r0, #0x1
+ str r0, [r5, #0xc]
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_020094C4
+FUN_020094C4: ; 0x020094C4
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ ldr r0, [r5, #0x8]
+ mov r6, #0x0
+ cmp r0, #0x0
+ ble _020094EC
+ add r4, r6, #0x0
+_020094D2:
+ ldr r1, [r5, #0x4]
+ ldr r0, [r1, r4]
+ cmp r0, #0x0
+ beq _020094E2
+ add r0, r5, #0x0
+ add r1, r1, r4
+ bl FUN_02009490
+_020094E2:
+ ldr r0, [r5, #0x8]
+ add r6, r6, #0x1
+ add r4, #0xc
+ cmp r6, r0
+ blt _020094D2
+_020094EC:
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_020094F0
+FUN_020094F0: ; 0x020094F0
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ add r7, r1, #0x0
+ cmp r5, #0x0
+ bne _020094FE
+ bl ErrorHandling
+_020094FE:
+ ldr r0, [r5, #0x8]
+ mov r6, #0x0
+ cmp r0, #0x0
+ ble _0200952C
+ add r4, r6, #0x0
+_02009508:
+ ldr r0, [r5, #0x4]
+ ldr r0, [r0, r4]
+ cmp r0, #0x0
+ beq _02009522
+ bl FUN_02020E38
+ cmp r0, r7
+ bne _02009522
+ mov r0, #0xc
+ ldr r1, [r5, #0x4]
+ mul r0, r6
+ add r0, r1, r0
+ pop {r3-r7, pc}
+_02009522:
+ ldr r0, [r5, #0x8]
+ add r6, r6, #0x1
+ add r4, #0xc
+ cmp r6, r0
+ blt _02009508
+_0200952C:
+ mov r0, #0x0
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_02009530
+FUN_02009530: ; 0x02009530
+ push {r4, lr}
+ add r4, r0, #0x0
+ bne _0200953A
+ bl ErrorHandling
+_0200953A:
+ ldr r0, [r4, #0x0]
+ bl FUN_02020E38
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02009544
+FUN_02009544: ; 0x02009544
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r0, [r4, #0x4]
+ cmp r0, #0x0
+ beq _02009552
+ bl ErrorHandling
+_02009552:
+ add r0, r4, #0x0
+ bl FUN_02009934
+ ldr r0, [r0, #0x0]
+ pop {r4, pc}
+
+ thumb_func_start FUN_0200955C
+FUN_0200955C: ; 0x0200955C
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r0, [r4, #0x4]
+ cmp r0, #0x1
+ beq _0200956A
+ bl ErrorHandling
+_0200956A:
+ add r0, r4, #0x0
+ bl FUN_02009934
+ ldr r0, [r0, #0x0]
+ pop {r4, pc}
+
+ thumb_func_start FUN_02009574
+FUN_02009574: ; 0x02009574
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r0, [r4, #0x4]
+ cmp r0, #0x2
+ beq _02009582
+ bl ErrorHandling
+_02009582:
+ add r0, r4, #0x0
+ bl FUN_02009934
+ ldr r0, [r0, #0x0]
+ pop {r4, pc}
+
+ thumb_func_start FUN_0200958C
+FUN_0200958C: ; 0x0200958C
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r0, [r4, #0x4]
+ cmp r0, #0x3
+ beq _0200959A
+ bl ErrorHandling
+_0200959A:
+ add r0, r4, #0x0
+ bl FUN_02009934
+ ldr r0, [r0, #0x0]
+ pop {r4, pc}
+
+ thumb_func_start FUN_020095A4
+FUN_020095A4: ; 0x020095A4
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r0, [r4, #0x4]
+ cmp r0, #0x4
+ beq _020095B2
+ bl ErrorHandling
+_020095B2:
+ add r0, r4, #0x0
+ bl FUN_02009934
+ ldr r0, [r0, #0x0]
+ pop {r4, pc}
+
+ thumb_func_start FUN_020095BC
+FUN_020095BC: ; 0x020095BC
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r0, [r4, #0x4]
+ cmp r0, #0x5
+ beq _020095CA
+ bl ErrorHandling
+_020095CA:
+ add r0, r4, #0x0
+ bl FUN_02009934
+ ldr r0, [r0, #0x0]
+ pop {r4, pc}
+
+ thumb_func_start FUN_020095D4
+FUN_020095D4: ; 0x020095D4
+ push {r4, lr}
+ add r4, r0, #0x0
+ bne _020095DE
+ bl ErrorHandling
+_020095DE:
+ ldr r0, [r4, #0x4]
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_020095E4
+FUN_020095E4: ; 0x020095E4
+ push {r4, lr}
+ add r4, r0, #0x0
+ bne _020095EE
+ bl ErrorHandling
+_020095EE:
+ ldr r0, [r4, #0x4]
+ cmp r0, #0x0
+ bne _020095FE
+ add r0, r4, #0x0
+ bl FUN_02009934
+ ldr r0, [r0, #0x4]
+ pop {r4, pc}
+_020095FE:
+ cmp r0, #0x1
+ bne _0200960C
+ add r0, r4, #0x0
+ bl FUN_02009934
+ ldr r0, [r0, #0x4]
+ pop {r4, pc}
+_0200960C:
+ mov r0, #0x0
+ pop {r4, pc}
+
+ thumb_func_start FUN_02009610
+FUN_02009610: ; 0x02009610
+ push {r4, lr}
+ add r4, r0, #0x0
+ bne _0200961A
+ bl ErrorHandling
+_0200961A:
+ ldr r0, [r4, #0x4]
+ cmp r0, #0x1
+ bne _0200962A
+ add r0, r4, #0x0
+ bl FUN_02009934
+ ldr r0, [r0, #0x8]
+ pop {r4, pc}
+_0200962A:
+ mov r0, #0x0
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02009630
+FUN_02009630: ; 0x02009630
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ cmp r5, #0x0
+ bne _0200963E
+ bl ErrorHandling
+_0200963E:
+ ldr r0, [r5, #0x4]
+ cmp r0, #0x0
+ bne _0200964C
+ add r0, r5, #0x0
+ bl FUN_02009934
+ str r4, [r0, #0x4]
+_0200964C:
+ ldr r0, [r5, #0x4]
+ cmp r0, #0x1
+ bne _0200965A
+ add r0, r5, #0x0
+ bl FUN_02009934
+ str r4, [r0, #0x4]
+_0200965A:
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_0200965C
+FUN_0200965C: ; 0x0200965C
+ mov r0, #0x10
+ bx lr
+
+ thumb_func_start FUN_02009660
+FUN_02009660: ; 0x02009660
+ lsl r1, r1, #0x4
+ add r0, r0, r1
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02009668
+FUN_02009668: ; 0x02009668
+ push {r4-r6, lr}
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ add r6, r2, #0x0
+ cmp r4, #0x0
+ bne _02009678
+ bl ErrorHandling
+_02009678:
+ ldr r0, [r5, #0x0]
+ str r0, [r4, #0x8]
+ mov r0, #0x1
+ strb r0, [r4, #0xc]
+ add r0, r5, #0x4
+ bl FUN_020099E8
+ add r2, r0, #0x0
+ str r0, [r4, #0x4]
+ cmp r2, #0x0
+ ble _0200969A
+ mov r1, #0x18
+ add r0, r6, #0x0
+ mul r1, r2
+ bl FUN_02016998
+ b _0200969C
+_0200969A:
+ mov r0, #0x0
+_0200969C:
+ str r0, [r4, #0x0]
+ ldr r0, [r4, #0x0]
+ cmp r0, #0x0
+ beq _020096B0
+ ldr r3, [r4, #0x4]
+ mov r2, #0x18
+ add r1, r5, #0x4
+ mul r2, r3
+ blx memcpy
+_020096B0:
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_020096B4
+FUN_020096B4: ; 0x020096B4
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r0, [r4, #0x0]
+ cmp r0, #0x0
+ beq _020096C2
+ bl FUN_02016A18
+_020096C2:
+ mov r0, #0x0
+ str r0, [r4, #0x0]
+ str r0, [r4, #0x4]
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_020096CC
+FUN_020096CC: ; 0x020096CC
+ push {r4, lr}
+ add r4, r0, #0x0
+ bne _020096D6
+ bl ErrorHandling
+_020096D6:
+ ldr r0, [r4, #0x4]
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_020096DC
+FUN_020096DC: ; 0x020096DC
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ cmp r5, #0x0
+ bne _020096EA
+ bl ErrorHandling
+_020096EA:
+ ldr r0, [r5, #0x4]
+ cmp r0, r4
+ bgt _020096F4
+ bl ErrorHandling
+_020096F4:
+ ldrb r0, [r5, #0xc]
+ ldr r1, [r5, #0x0]
+ cmp r0, #0x0
+ bne _02009704
+ mov r0, #0x4c
+ mul r0, r4
+ ldr r0, [r1, r0]
+ pop {r3-r5, pc}
+_02009704:
+ mov r0, #0x18
+ mul r0, r4
+ add r0, r1, r0
+ ldr r0, [r0, #0xc]
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_02009710
+FUN_02009710: ; 0x02009710
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ cmp r5, #0x0
+ bne _0200971E
+ bl ErrorHandling
+_0200971E:
+ ldr r0, [r5, #0x4]
+ cmp r0, r4
+ bgt _02009728
+ bl ErrorHandling
+_02009728:
+ ldrb r0, [r5, #0xc]
+ cmp r0, #0x1
+ bne _02009738
+ mov r0, #0x18
+ ldr r1, [r5, #0x0]
+ mul r0, r4
+ add r0, r1, r0
+ ldr r6, [r0, #0x4]
+_02009738:
+ add r0, r6, #0x0
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_0200973C
+FUN_0200973C: ; 0x0200973C
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ cmp r5, #0x0
+ bne _0200974A
+ bl ErrorHandling
+_0200974A:
+ ldr r0, [r5, #0x4]
+ cmp r0, r4
+ bgt _02009754
+ bl ErrorHandling
+_02009754:
+ ldrb r0, [r5, #0xc]
+ cmp r0, #0x1
+ bne _02009764
+ mov r0, #0x18
+ ldr r1, [r5, #0x0]
+ mul r0, r4
+ add r0, r1, r0
+ ldr r6, [r0, #0x8]
+_02009764:
+ add r0, r6, #0x0
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_02009768
+FUN_02009768: ; 0x02009768
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ cmp r5, #0x0
+ bne _02009776
+ bl ErrorHandling
+_02009776:
+ ldr r0, [r5, #0x4]
+ cmp r0, r4
+ bgt _02009780
+ bl ErrorHandling
+_02009780:
+ ldrb r0, [r5, #0xc]
+ ldr r1, [r5, #0x0]
+ cmp r0, #0x0
+ bne _02009792
+ mov r0, #0x4c
+ mul r0, r4
+ add r0, r1, r0
+ ldr r0, [r0, #0x44]
+ pop {r3-r5, pc}
+_02009792:
+ mov r0, #0x18
+ mul r0, r4
+ add r0, r1, r0
+ ldr r0, [r0, #0x10]
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_0200979C
+FUN_0200979C: ; 0x0200979C
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ cmp r5, #0x0
+ bne _020097AA
+ bl ErrorHandling
+_020097AA:
+ ldr r0, [r5, #0x4]
+ cmp r0, r4
+ bgt _020097B4
+ bl ErrorHandling
+_020097B4:
+ ldrb r0, [r5, #0xc]
+ ldr r1, [r5, #0x0]
+ cmp r0, #0x0
+ bne _020097C6
+ mov r0, #0x4c
+ mul r0, r4
+ add r0, r1, r0
+ ldr r0, [r0, #0x48]
+ pop {r3-r5, pc}
+_020097C6:
+ mov r0, #0x18
+ mul r0, r4
+ add r0, r1, r0
+ ldr r0, [r0, #0x14]
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_020097D0
+FUN_020097D0: ; 0x020097D0
+ push {r3-r4}
+ ldr r4, [r0, #0x8]
+ mov r1, #0x0
+ cmp r4, #0x0
+ ble _020097F6
+ ldr r3, [r0, #0x4]
+ add r2, r3, #0x0
+_020097DE:
+ ldr r0, [r2, #0x0]
+ cmp r0, #0x0
+ bne _020097EE
+ mov r0, #0xc
+ mul r0, r1
+ add r0, r3, r0
+ pop {r3-r4}
+ bx lr
+_020097EE:
+ add r1, r1, #0x1
+ add r2, #0xc
+ cmp r1, r4
+ blt _020097DE
+_020097F6:
+ mov r0, #0x0
+ pop {r3-r4}
+ bx lr
+
+ thumb_func_start FUN_020097FC
+FUN_020097FC: ; 0x020097FC
+ push {r3-r7, lr}
+ add r4, r0, #0x0
+ ldr r0, [r4, #0x0]
+ add r6, r1, #0x0
+ add r7, r2, #0x0
+ str r3, [sp, #0x0]
+ ldr r5, [sp, #0x18]
+ bl FUN_02020E0C
+ cmp r6, #0x5
+ bhi _0200986A
+ add r1, r6, r6
+ add r1, pc
+ ldrh r1, [r1, #0x6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_0200981E: ; jump table (using 16-bit offset)
+ .short _0200982A - _0200981E - 2; case 0
+ .short _02009836 - _0200981E - 2; case 1
+ .short _02009844 - _0200981E - 2; case 2
+ .short _0200984E - _0200981E - 2; case 3
+ .short _02009858 - _0200981E - 2; case 4
+ .short _02009862 - _0200981E - 2; case 5
+_0200982A:
+ add r1, r7, #0x0
+ add r2, r5, #0x0
+ bl FUN_0200986C
+ str r0, [r4, #0x8]
+ pop {r3-r7, pc}
+_02009836:
+ ldr r2, [sp, #0x0]
+ add r1, r7, #0x0
+ add r3, r5, #0x0
+ bl FUN_0200988C
+ str r0, [r4, #0x8]
+ pop {r3-r7, pc}
+_02009844:
+ add r1, r5, #0x0
+ bl FUN_020098B0
+ str r0, [r4, #0x8]
+ pop {r3-r7, pc}
+_0200984E:
+ add r1, r5, #0x0
+ bl FUN_020098CC
+ str r0, [r4, #0x8]
+ pop {r3-r7, pc}
+_02009858:
+ add r1, r5, #0x0
+ bl FUN_020098E8
+ str r0, [r4, #0x8]
+ pop {r3-r7, pc}
+_02009862:
+ add r1, r5, #0x0
+ bl FUN_02009904
+ str r0, [r4, #0x8]
+_0200986A:
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_0200986C
+FUN_0200986C: ; 0x0200986C
+ push {r4-r6, lr}
+ add r6, r0, #0x0
+ add r5, r1, #0x0
+ add r0, r2, #0x0
+ mov r1, #0x8
+ bl FUN_02016998
+ add r4, r0, #0x0
+ add r0, r6, #0x0
+ add r1, r4, #0x0
+ blx FUN_020B0088
+ str r5, [r4, #0x4]
+ add r0, r4, #0x0
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_0200988C
+FUN_0200988C: ; 0x0200988C
+ push {r3-r7, lr}
+ add r7, r0, #0x0
+ add r5, r1, #0x0
+ add r0, r3, #0x0
+ mov r1, #0xc
+ add r6, r2, #0x0
+ bl FUN_02016998
+ add r4, r0, #0x0
+ add r0, r7, #0x0
+ add r1, r4, #0x0
+ blx FUN_020B0138
+ str r5, [r4, #0x4]
+ str r6, [r4, #0x8]
+ add r0, r4, #0x0
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_020098B0
+FUN_020098B0: ; 0x020098B0
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r0, r1, #0x0
+ mov r1, #0x4
+ bl FUN_02016998
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ blx FUN_020AFEB8
+ add r0, r4, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_020098CC
+FUN_020098CC: ; 0x020098CC
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r0, r1, #0x0
+ mov r1, #0x4
+ bl FUN_02016998
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ blx thunk_FUN_020afda0_2
+ add r0, r4, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_020098E8
+FUN_020098E8: ; 0x020098E8
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r0, r1, #0x0
+ mov r1, #0x4
+ bl FUN_02016998
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ blx FUN_020AFFD8
+ add r0, r4, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_02009904
+FUN_02009904: ; 0x02009904
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r0, r1, #0x0
+ mov r1, #0x4
+ bl FUN_02016998
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ blx thunk_FUN_020afda0
+ add r0, r4, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_02009920
+FUN_02009920: ; 0x02009920
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r0, [r4, #0x8]
+ cmp r0, #0x0
+ beq _0200992E
+ bl FUN_02016A18
+_0200992E:
+ mov r0, #0x0
+ str r0, [r4, #0x8]
+ pop {r4, pc}
+
+ thumb_func_start FUN_02009934
+FUN_02009934: ; 0x02009934
+ push {r4, lr}
+ add r4, r0, #0x0
+ bne _0200993E
+ bl ErrorHandling
+_0200993E:
+ ldr r0, [r4, #0x8]
+ cmp r0, #0x0
+ bne _02009948
+ bl ErrorHandling
+_02009948:
+ ldr r0, [r4, #0x8]
+ pop {r4, pc}
+
+ thumb_func_start FUN_0200994C
+FUN_0200994C: ; 0x0200994C
+ push {r3-r4, lr}
+ sub sp, #0x4
+ add r4, r1, #0x0
+ add r1, r2, #0x0
+ add r2, r3, #0x0
+ ldr r0, [r0, #0x0]
+ ldr r3, [sp, #0x1c]
+ bl FUN_02020D10
+ str r0, [r4, #0x0]
+ ldr r1, [sp, #0x18]
+ ldr r0, [sp, #0x1c]
+ str r1, [r4, #0x4]
+ str r0, [sp, #0x0]
+ ldr r2, [sp, #0x10]
+ ldr r3, [sp, #0x14]
+ add r0, r4, #0x0
+ bl FUN_020097FC
+ add sp, #0x4
+ pop {r3-r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02009978
+FUN_02009978: ; 0x02009978
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ ldr r0, [sp, #0x28]
+ add r4, r1, #0x0
+ str r0, [sp, #0x0]
+ add r0, r2, #0x0
+ add r1, r3, #0x0
+ ldr r2, [sp, #0x10]
+ ldr r3, [sp, #0x24]
+ bl FUN_02006C98
+ add r1, r0, #0x0
+ ldr r0, [r5, #0x0]
+ ldr r2, [sp, #0x14]
+ bl FUN_02020CD4
+ str r0, [r4, #0x0]
+ ldr r1, [sp, #0x20]
+ ldr r0, [sp, #0x24]
+ str r1, [r4, #0x4]
+ str r0, [sp, #0x0]
+ ldr r2, [sp, #0x18]
+ ldr r3, [sp, #0x1c]
+ add r0, r4, #0x0
+ bl FUN_020097FC
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_020099B0
+FUN_020099B0: ; 0x020099B0
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ ldr r0, [sp, #0x28]
+ add r4, r1, #0x0
+ str r0, [sp, #0x0]
+ add r0, r2, #0x0
+ add r1, r3, #0x0
+ ldr r2, [sp, #0x10]
+ ldr r3, [sp, #0x24]
+ bl FUN_02009A04
+ add r1, r0, #0x0
+ ldr r0, [r5, #0x0]
+ ldr r2, [sp, #0x14]
+ bl FUN_02020CD4
+ str r0, [r4, #0x0]
+ ldr r1, [sp, #0x20]
+ ldr r0, [sp, #0x24]
+ str r1, [r4, #0x4]
+ str r0, [sp, #0x0]
+ ldr r2, [sp, #0x18]
+ ldr r3, [sp, #0x1c]
+ add r0, r4, #0x0
+ bl FUN_020097FC
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_020099E8
+FUN_020099E8: ; 0x020099E8
+ mov r3, #0x0
+ ldr r2, [r0, #0x0]
+ sub r1, r3, #0x2
+ cmp r2, r1
+ beq _020099FE
+ sub r1, r3, #0x2
+_020099F4:
+ add r0, #0x18
+ ldr r2, [r0, #0x0]
+ add r3, r3, #0x1
+ cmp r2, r1
+ bne _020099F4
+_020099FE:
+ add r0, r3, #0x0
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02009A04
+FUN_02009A04: ; 0x02009A04
+ push {r4-r6, lr}
+ add r6, r3, #0x0
+ add r5, r2, #0x0
+ add r2, r6, #0x0
+ bl FUN_02006704
+ add r4, r0, #0x0
+ beq _02009A4A
+ cmp r5, #0x0
+ beq _02009A4A
+ ldr r0, [sp, #0x10]
+ cmp r0, #0x0
+ bne _02009A2A
+ ldr r1, [r4, #0x0]
+ add r0, r6, #0x0
+ lsr r1, r1, #0x8
+ bl FUN_02016998
+ b _02009A34
+_02009A2A:
+ ldr r1, [r4, #0x0]
+ add r0, r6, #0x0
+ lsr r1, r1, #0x8
+ bl FUN_020169D8
+_02009A34:
+ add r5, r0, #0x0
+ cmp r5, #0x0
+ beq _02009A48
+ add r0, r4, #0x0
+ add r1, r5, #0x0
+ blx MI_UncompressLZ8
+ add r0, r4, #0x0
+ bl FUN_02016A18
+_02009A48:
+ add r4, r5, #0x0
+_02009A4A:
+ add r0, r4, #0x0
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_02009A50
+FUN_02009A50: ; 0x02009A50
+ push {r4, lr}
+ sub sp, #0x10
+ add r4, r0, #0x0
+ bne _02009A5C
+ bl ErrorHandling
+_02009A5C:
+ add r0, r4, #0x0
+ bl FUN_020095D4
+ cmp r0, #0x0
+ beq _02009A6A
+ bl ErrorHandling
+_02009A6A:
+ add r0, r4, #0x0
+ bl FUN_02009544
+ str r0, [sp, #0x0]
+ add r0, r4, #0x0
+ bl FUN_020095E4
+ str r0, [sp, #0x4]
+ add r0, r4, #0x0
+ bl FUN_02009530
+ str r0, [sp, #0x8]
+ mov r0, #0x0
+ str r0, [sp, #0xc]
+ add r0, sp, #0x0
+ bl FUN_0201D1F8
+ add sp, #0x10
+ pop {r4, pc}
+
+ thumb_func_start FUN_02009A90
+FUN_02009A90: ; 0x02009A90
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ bne _02009A9A
+ bl ErrorHandling
+_02009A9A:
+ ldr r0, [r5, #0x4]
+ mov r6, #0x0
+ cmp r0, #0x0
+ ble _02009AC2
+ add r4, r6, #0x0
+_02009AA4:
+ ldr r0, [r5, #0x0]
+ ldr r0, [r0, r4]
+ cmp r0, #0x0
+ beq _02009AB8
+ bl FUN_02009A50
+ cmp r0, #0x0
+ bne _02009AB8
+ bl ErrorHandling
+_02009AB8:
+ ldr r0, [r5, #0x4]
+ add r6, r6, #0x1
+ add r4, r4, #0x4
+ cmp r6, r0
+ blt _02009AA4
+_02009AC2:
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_02009AC4
+FUN_02009AC4: ; 0x02009AC4
+ push {r4, lr}
+ sub sp, #0x10
+ add r4, r0, #0x0
+ bne _02009AD0
+ bl ErrorHandling
+_02009AD0:
+ add r0, r4, #0x0
+ bl FUN_020095D4
+ cmp r0, #0x0
+ beq _02009ADE
+ bl ErrorHandling
+_02009ADE:
+ add r0, r4, #0x0
+ bl FUN_02009544
+ str r0, [sp, #0x0]
+ add r0, r4, #0x0
+ bl FUN_020095E4
+ str r0, [sp, #0x4]
+ add r0, r4, #0x0
+ bl FUN_02009530
+ str r0, [sp, #0x8]
+ mov r0, #0x0
+ str r0, [sp, #0xc]
+ add r0, sp, #0x0
+ bl FUN_0201D250
+ add sp, #0x10
+ pop {r4, pc}
+
+ thumb_func_start FUN_02009B04
+FUN_02009B04: ; 0x02009B04
+ push {r4, lr}
+ sub sp, #0x10
+ add r4, r0, #0x0
+ bne _02009B10
+ bl ErrorHandling
+_02009B10:
+ add r0, r4, #0x0
+ bl FUN_020095D4
+ cmp r0, #0x0
+ beq _02009B1E
+ bl ErrorHandling
+_02009B1E:
+ add r0, r4, #0x0
+ bl FUN_02009544
+ str r0, [sp, #0x0]
+ add r0, r4, #0x0
+ bl FUN_020095E4
+ str r0, [sp, #0x4]
+ add r0, r4, #0x0
+ bl FUN_02009530
+ str r0, [sp, #0x8]
+ mov r0, #0x1
+ str r0, [sp, #0xc]
+ add r0, sp, #0x0
+ bl FUN_0201D1F8
+ add sp, #0x10
+ pop {r4, pc}
+
+ thumb_func_start FUN_02009B44
+FUN_02009B44: ; 0x02009B44
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ bne _02009B4E
+ bl ErrorHandling
+_02009B4E:
+ ldr r0, [r5, #0x4]
+ mov r6, #0x0
+ cmp r0, #0x0
+ ble _02009B76
+ add r4, r6, #0x0
+_02009B58:
+ ldr r0, [r5, #0x0]
+ ldr r0, [r0, r4]
+ cmp r0, #0x0
+ beq _02009B6C
+ bl FUN_02009B04
+ cmp r0, #0x0
+ bne _02009B6C
+ bl ErrorHandling
+_02009B6C:
+ ldr r0, [r5, #0x4]
+ add r6, r6, #0x1
+ add r4, r4, #0x4
+ cmp r6, r0
+ blt _02009B58
+_02009B76:
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_02009B78
+FUN_02009B78: ; 0x02009B78
+ push {r4, lr}
+ sub sp, #0x10
+ add r4, r0, #0x0
+ bne _02009B84
+ bl ErrorHandling
+_02009B84:
+ add r0, r4, #0x0
+ bl FUN_020095D4
+ cmp r0, #0x0
+ beq _02009B92
+ bl ErrorHandling
+_02009B92:
+ add r0, r4, #0x0
+ bl FUN_02009544
+ str r0, [sp, #0x0]
+ add r0, r4, #0x0
+ bl FUN_020095E4
+ str r0, [sp, #0x4]
+ add r0, r4, #0x0
+ bl FUN_02009530
+ str r0, [sp, #0x8]
+ mov r0, #0x1
+ str r0, [sp, #0xc]
+ add r0, sp, #0x0
+ bl FUN_0201D250
+ add sp, #0x10
+ pop {r4, pc}
+
+ thumb_func_start FUN_02009BB8
+FUN_02009BB8: ; 0x02009BB8
+ push {r3-r5, lr}
+ add r4, r0, #0x0
+ add r5, r1, #0x0
+ cmp r4, #0x0
+ bne _02009BC6
+ bl ErrorHandling
+_02009BC6:
+ cmp r5, #0x0
+ bne _02009BCE
+ bl ErrorHandling
+_02009BCE:
+ add r0, r4, #0x0
+ bl FUN_02009530
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_02009544
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_0201D2DC
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_02009BE8
+FUN_02009BE8: ; 0x02009BE8
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ bne _02009BF2
+ bl ErrorHandling
+_02009BF2:
+ add r0, r5, #0x0
+ bl FUN_02009530
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_02009544
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_0201D2DC
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_02009C0C
+FUN_02009C0C: ; 0x02009C0C
+ push {r4, lr}
+ add r4, r0, #0x0
+ bne _02009C16
+ bl ErrorHandling
+_02009C16:
+ add r0, r4, #0x0
+ bl FUN_020095D4
+ cmp r0, #0x0
+ beq _02009C24
+ bl ErrorHandling
+_02009C24:
+ add r0, r4, #0x0
+ bl FUN_02009530
+ bl FUN_0201D324
+ pop {r4, pc}
+
+ thumb_func_start FUN_02009C30
+FUN_02009C30: ; 0x02009C30
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ bne _02009C3A
+ bl ErrorHandling
+_02009C3A:
+ ldr r0, [r5, #0x4]
+ mov r6, #0x0
+ cmp r0, #0x0
+ ble _02009C5A
+ add r4, r6, #0x0
+_02009C44:
+ ldr r0, [r5, #0x0]
+ ldr r0, [r0, r4]
+ cmp r0, #0x0
+ beq _02009C50
+ bl FUN_02009C0C
+_02009C50:
+ ldr r0, [r5, #0x4]
+ add r6, r6, #0x1
+ add r4, r4, #0x4
+ cmp r6, r0
+ blt _02009C44
+_02009C5A:
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_02009C5C
+FUN_02009C5C: ; 0x02009C5C
+ push {r4, lr}
+ add r4, r0, #0x0
+ bne _02009C66
+ bl ErrorHandling
+_02009C66:
+ add r0, r4, #0x0
+ bl FUN_020095D4
+ cmp r0, #0x0
+ beq _02009C74
+ bl ErrorHandling
+_02009C74:
+ add r0, r4, #0x0
+ bl FUN_02009530
+ bl FUN_0201D3B0
+ pop {r4, pc}
+
+ thumb_func_start FUN_02009C80
+FUN_02009C80: ; 0x02009C80
+ push {r3-r5, lr}
+ add r4, r0, #0x0
+ add r5, r1, #0x0
+ cmp r4, #0x0
+ bne _02009C8E
+ bl ErrorHandling
+_02009C8E:
+ add r0, r4, #0x0
+ bl FUN_020095D4
+ cmp r0, #0x0
+ beq _02009C9C
+ bl ErrorHandling
+_02009C9C:
+ cmp r5, #0x0
+ bne _02009CA4
+ bl ErrorHandling
+_02009CA4:
+ add r0, r5, #0x0
+ bl FUN_020095D4
+ cmp r0, #0x2
+ beq _02009CB2
+ bl ErrorHandling
+_02009CB2:
+ add r0, r4, #0x0
+ bl FUN_02009530
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_02009574
+ add r1, r0, #0x0
+ ldr r1, [r1, #0xc]
+ add r0, r4, #0x0
+ ldr r1, [r1, #0x0]
+ bl FUN_0201D3D4
+ cmp r0, #0x0
+ bne _02009CDA
+ add r0, r4, #0x0
+ bl FUN_0201D3B0
+ bl FUN_0201D458
+_02009CDA:
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_02009CDC
+FUN_02009CDC: ; 0x02009CDC
+ push {r4, lr}
+ add r4, r0, #0x0
+ bne _02009CE6
+ bl ErrorHandling
+_02009CE6:
+ add r0, r4, #0x0
+ bl FUN_0201D4F0
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02009CF0
+FUN_02009CF0: ; 0x02009CF0
+ push {r4, lr}
+ sub sp, #0x10
+ add r4, r0, #0x0
+ bne _02009CFC
+ bl ErrorHandling
+_02009CFC:
+ add r0, r4, #0x0
+ bl FUN_020095D4
+ cmp r0, #0x1
+ beq _02009D0A
+ bl ErrorHandling
+_02009D0A:
+ add r0, r4, #0x0
+ bl FUN_0200955C
+ str r0, [sp, #0x0]
+ add r0, r4, #0x0
+ bl FUN_020095E4
+ str r0, [sp, #0x4]
+ add r0, r4, #0x0
+ bl FUN_02009530
+ str r0, [sp, #0xc]
+ add r0, r4, #0x0
+ bl FUN_02009610
+ str r0, [sp, #0x8]
+ add r0, sp, #0x0
+ bl FUN_0201E0E4
+ add sp, #0x10
+ pop {r4, pc}
+
+ thumb_func_start FUN_02009D34
+FUN_02009D34: ; 0x02009D34
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ bne _02009D3E
+ bl ErrorHandling
+_02009D3E:
+ ldr r0, [r5, #0x4]
+ mov r6, #0x0
+ cmp r0, #0x0
+ ble _02009D66
+ add r4, r6, #0x0
+_02009D48:
+ ldr r0, [r5, #0x0]
+ ldr r0, [r0, r4]
+ cmp r0, #0x0
+ beq _02009D5C
+ bl FUN_02009CF0
+ cmp r0, #0x0
+ bne _02009D5C
+ bl ErrorHandling
+_02009D5C:
+ ldr r0, [r5, #0x4]
+ add r6, r6, #0x1
+ add r4, r4, #0x4
+ cmp r6, r0
+ blt _02009D48
+_02009D66:
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_02009D68
+FUN_02009D68: ; 0x02009D68
+ push {r4, lr}
+ sub sp, #0x10
+ add r4, r0, #0x0
+ bne _02009D74
+ bl ErrorHandling
+_02009D74:
+ add r0, r4, #0x0
+ bl FUN_020095D4
+ cmp r0, #0x1
+ beq _02009D82
+ bl ErrorHandling
+_02009D82:
+ add r0, r4, #0x0
+ bl FUN_0200955C
+ str r0, [sp, #0x0]
+ add r0, r4, #0x0
+ bl FUN_020095E4
+ str r0, [sp, #0x4]
+ add r0, r4, #0x0
+ bl FUN_02009530
+ str r0, [sp, #0xc]
+ add r0, r4, #0x0
+ bl FUN_02009610
+ str r0, [sp, #0x8]
+ add r0, sp, #0x0
+ bl FUN_0201E128
+ add sp, #0x10
+ pop {r4, pc}
+
+ thumb_func_start FUN_02009DAC
+FUN_02009DAC: ; 0x02009DAC
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ bne _02009DB6
+ bl ErrorHandling
+_02009DB6:
+ ldr r0, [r5, #0x4]
+ mov r6, #0x0
+ cmp r0, #0x0
+ ble _02009DDE
+ add r4, r6, #0x0
+_02009DC0:
+ ldr r0, [r5, #0x0]
+ ldr r0, [r0, r4]
+ cmp r0, #0x0
+ beq _02009DD4
+ bl FUN_02009D68
+ cmp r0, #0x0
+ bne _02009DD4
+ bl ErrorHandling
+_02009DD4:
+ ldr r0, [r5, #0x4]
+ add r6, r6, #0x1
+ add r4, r4, #0x4
+ cmp r6, r0
+ blt _02009DC0
+_02009DDE:
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_02009DE0
+FUN_02009DE0: ; 0x02009DE0
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ bne _02009DEA
+ bl ErrorHandling
+_02009DEA:
+ add r0, r5, #0x0
+ bl FUN_02009530
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_0200955C
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_0201E168
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_02009E04
+FUN_02009E04: ; 0x02009E04
+ push {r4, lr}
+ add r4, r0, #0x0
+ bne _02009E0E
+ bl ErrorHandling
+_02009E0E:
+ add r0, r4, #0x0
+ bl FUN_020095D4
+ cmp r0, #0x1
+ beq _02009E1C
+ bl ErrorHandling
+_02009E1C:
+ add r0, r4, #0x0
+ bl FUN_02009530
+ bl FUN_0201E1C8
+ pop {r4, pc}
+
+ thumb_func_start FUN_02009E28
+FUN_02009E28: ; 0x02009E28
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ bne _02009E32
+ bl ErrorHandling
+_02009E32:
+ ldr r0, [r5, #0x4]
+ mov r6, #0x0
+ cmp r0, #0x0
+ ble _02009E52
+ add r4, r6, #0x0
+_02009E3C:
+ ldr r0, [r5, #0x0]
+ ldr r0, [r0, r4]
+ cmp r0, #0x0
+ beq _02009E48
+ bl FUN_02009E04
+_02009E48:
+ ldr r0, [r5, #0x4]
+ add r6, r6, #0x1
+ add r4, r4, #0x4
+ cmp r6, r0
+ blt _02009E3C
+_02009E52:
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_02009E54
+FUN_02009E54: ; 0x02009E54
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ cmp r5, #0x0
+ bne _02009E62
+ bl ErrorHandling
+_02009E62:
+ add r0, r5, #0x0
+ bl FUN_020095D4
+ cmp r0, #0x1
+ beq _02009E70
+ bl ErrorHandling
+_02009E70:
+ add r0, r5, #0x0
+ bl FUN_02009530
+ cmp r4, #0x0
+ beq _02009E82
+ add r1, r4, #0x0
+ bl FUN_0201E258
+ pop {r3-r5, pc}
+_02009E82:
+ bl FUN_0201E230
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_02009E88
+FUN_02009E88: ; 0x02009E88
+ push {r4, lr}
+ add r4, r1, #0x0
+ mov r1, #0x0
+ bl FUN_02009E54
+ add r1, r4, #0x0
+ blx FUN_020B19C4
+ mov r1, #0x0
+ mvn r1, r1
+ cmp r0, r1
+ beq _02009EA8
+ asr r1, r0, #0x4
+ lsr r1, r1, #0x1b
+ add r1, r0, r1
+ asr r0, r1, #0x5
+_02009EA8:
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02009EAC
+FUN_02009EAC: ; 0x02009EAC
+ push {r3-r4, lr}
+ sub sp, #0x14
+ add r4, r0, #0x0
+ cmp r4, #0x4
+ bge _02009EC0
+ mov r0, #0x4
+ cmp r1, #0x7c
+ ble _02009EC0
+ sub r4, r0, r4
+ sub r1, r1, r4
+_02009EC0:
+ cmp r2, #0x1
+ bge _02009ED0
+ mov r4, #0x1
+ cmp r3, #0x1e
+ ble _02009ED2
+ sub r2, r4, r2
+ sub r3, r3, r2
+ b _02009ED2
+_02009ED0:
+ add r4, r2, #0x0
+_02009ED2:
+ ldr r2, [sp, #0x20]
+ str r2, [sp, #0x0]
+ ldr r2, [sp, #0x24]
+ str r2, [sp, #0x4]
+ ldr r2, [sp, #0x28]
+ str r2, [sp, #0x8]
+ ldr r2, [sp, #0x2c]
+ str r2, [sp, #0xc]
+ ldr r2, [sp, #0x30]
+ str r2, [sp, #0x10]
+ add r2, r4, #0x0
+ bl FUN_02009EF0
+ add sp, #0x14
+ pop {r3-r4, pc}
+
+ thumb_func_start FUN_02009EF0
+FUN_02009EF0: ; 0x02009EF0
+ push {r3-r7, lr}
+ sub sp, #0x8
+ add r5, r0, #0x0
+ ldr r0, _02009F7C ; =0x021C4670
+ add r4, r1, #0x0
+ ldr r0, [r0, #0x0]
+ add r6, r2, #0x0
+ add r7, r3, #0x0
+ cmp r0, #0x0
+ beq _02009F08
+ bl ErrorHandling
+_02009F08:
+ ldr r0, [sp, #0x30]
+ mov r1, #0x3c
+ bl FUN_02016998
+ ldr r1, _02009F7C ; =0x021C4670
+ cmp r0, #0x0
+ str r0, [r1, #0x0]
+ bne _02009F1C
+ bl ErrorHandling
+_02009F1C:
+ ldr r1, _02009F7C ; =0x021C4670
+ lsl r3, r6, #0x10
+ ldr r2, [sp, #0x30]
+ ldr r0, [r1, #0x0]
+ lsr r3, r3, #0x10
+ str r2, [r0, #0x38]
+ lsl r0, r7, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #0x0]
+ mov r0, #0x0
+ str r0, [sp, #0x4]
+ ldr r0, [r1, #0x0]
+ lsl r1, r5, #0x10
+ lsl r2, r4, #0x10
+ lsr r1, r1, #0x10
+ lsr r2, r2, #0x10
+ blx FUN_020B0E34
+ cmp r0, #0x0
+ bne _02009F48
+ bl ErrorHandling
+_02009F48:
+ ldr r0, [sp, #0x2c]
+ ldr r1, [sp, #0x20]
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #0x0]
+ mov r0, #0x1
+ str r0, [sp, #0x4]
+ ldr r0, _02009F7C ; =0x021C4670
+ ldr r2, [sp, #0x24]
+ ldr r3, [sp, #0x28]
+ ldr r0, [r0, #0x0]
+ lsl r1, r1, #0x10
+ lsl r2, r2, #0x10
+ lsl r3, r3, #0x10
+ add r0, #0x1c
+ lsr r1, r1, #0x10
+ lsr r2, r2, #0x10
+ lsr r3, r3, #0x10
+ blx FUN_020B0E34
+ cmp r0, #0x0
+ bne _02009F78
+ bl ErrorHandling
+_02009F78:
+ add sp, #0x8
+ pop {r3-r7, pc}
+ .balign 4
+_02009F7C: .word 0x021C4670
+
+ thumb_func_start FUN_02009F80
+FUN_02009F80: ; 0x02009F80
+ push {r3, lr}
+ ldr r0, _02009F9C ; =0x021C4670
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ beq _02009F98
+ blx FUN_020B0870
+ ldr r0, _02009F9C ; =0x021C4670
+ ldr r0, [r0, #0x0]
+ add r0, #0x1c
+ blx FUN_020B0870
+_02009F98:
+ pop {r3, pc}
+ nop
+_02009F9C: .word 0x021C4670
+
+ thumb_func_start FUN_02009FA0
+FUN_02009FA0: ; 0x02009FA0
+ push {r3, lr}
+ ldr r0, _02009FD4 ; =0x021C4670
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ bne _02009FAE
+ bl ErrorHandling
+_02009FAE:
+ ldr r0, _02009FD4 ; =0x021C4670
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0x38]
+ bl FUN_0200A064
+ ldr r0, _02009FD4 ; =0x021C4670
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0x38]
+ bl FUN_0200A06C
+ ldr r0, _02009FD4 ; =0x021C4670
+ ldr r0, [r0, #0x0]
+ bl FUN_02016A18
+ ldr r0, _02009FD4 ; =0x021C4670
+ mov r1, #0x0
+ str r1, [r0, #0x0]
+ pop {r3, pc}
+ nop
+_02009FD4: .word 0x021C4670
+
+ thumb_func_start FUN_02009FD8
+FUN_02009FD8: ; 0x02009FD8
+ push {r4-r7, lr}
+ sub sp, #0xc
+ add r6, r0, #0x0
+ ldr r0, _0200A024 ; =0x021C4670
+ add r7, r1, #0x0
+ ldr r0, [r0, #0x0]
+ add r5, r2, #0x0
+ add r4, r3, #0x0
+ cmp r0, #0x0
+ bne _02009FF0
+ bl ErrorHandling
+_02009FF0:
+ cmp r5, #0x1
+ bne _0200A00C
+ ldr r0, _0200A028 ; =FUN_020213A0
+ ldr r2, _0200A02C ; =FUN_0200A074
+ str r0, [sp, #0x0]
+ str r5, [sp, #0x4]
+ ldr r3, _0200A030 ; =FUN_0200A0B8
+ add r0, r6, #0x0
+ add r1, r7, #0x0
+ str r4, [sp, #0x8]
+ bl FUN_0202135C
+ add sp, #0xc
+ pop {r4-r7, pc}
+_0200A00C:
+ ldr r0, _0200A028 ; =FUN_020213A0
+ ldr r2, _0200A034 ; =FUN_0200A094
+ str r0, [sp, #0x0]
+ str r5, [sp, #0x4]
+ ldr r3, _0200A038 ; =FUN_0200A0DC
+ add r0, r6, #0x0
+ add r1, r7, #0x0
+ str r4, [sp, #0x8]
+ bl FUN_0202135C
+ add sp, #0xc
+ pop {r4-r7, pc}
+ .balign 4
+_0200A024: .word 0x021C4670
+_0200A028: .word FUN_020213A0
+_0200A02C: .word FUN_0200A074
+_0200A030: .word FUN_0200A0B8
+_0200A034: .word FUN_0200A094
+_0200A038: .word FUN_0200A0DC
+
+ thumb_func_start FUN_0200A03C
+FUN_0200A03C: ; 0x0200A03C
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r0, _0200A060 ; =0x021C4670
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ bne _0200A04C
+ bl ErrorHandling
+_0200A04C:
+ cmp r4, #0x0
+ bne _0200A056
+ ldr r0, _0200A060 ; =0x021C4670
+ ldr r0, [r0, #0x0]
+ pop {r4, pc}
+_0200A056:
+ ldr r0, _0200A060 ; =0x021C4670
+ ldr r0, [r0, #0x0]
+ add r0, #0x1c
+ pop {r4, pc}
+ nop
+_0200A060: .word 0x021C4670
+
+ thumb_func_start FUN_0200A064
+FUN_0200A064: ; 0x0200A064
+ ldr r3, _0200A068 ; =FUN_020203CC
+ bx r3
+ .balign 4
+_0200A068: .word FUN_020203CC
+
+ thumb_func_start FUN_0200A06C
+FUN_0200A06C: ; 0x0200A06C
+ ldr r3, _0200A070 ; =FUN_02020404
+ bx r3
+ .balign 4
+_0200A070: .word FUN_02020404
+
+ thumb_func_start FUN_0200A074
+FUN_0200A074: ; 0x0200A074
+ push {r4, lr}
+ add r3, r0, #0x0
+ ldr r0, _0200A090 ; =0x021C4670
+ add r2, r1, #0x0
+ ldr r0, [r0, #0x0]
+ add r1, r3, #0x0
+ blx FUN_020B0C7C
+ add r4, r0, #0x0
+ bne _0200A08C
+ bl ErrorHandling
+_0200A08C:
+ add r0, r4, #0x0
+ pop {r4, pc}
+ .balign 4
+_0200A090: .word 0x021C4670
+
+ thumb_func_start FUN_0200A094
+FUN_0200A094: ; 0x0200A094
+ push {r4, lr}
+ add r3, r0, #0x0
+ ldr r0, _0200A0B4 ; =0x021C4670
+ add r2, r1, #0x0
+ ldr r0, [r0, #0x0]
+ add r1, r3, #0x0
+ add r0, #0x1c
+ blx FUN_020B0C7C
+ add r4, r0, #0x0
+ bne _0200A0AE
+ bl ErrorHandling
+_0200A0AE:
+ add r0, r4, #0x0
+ pop {r4, pc}
+ nop
+_0200A0B4: .word 0x021C4670
+
+ thumb_func_start FUN_0200A0B8
+FUN_0200A0B8: ; 0x0200A0B8
+ push {r4, lr}
+ add r1, r0, #0x0
+ ldr r0, _0200A0D4 ; =0x021C4670
+ ldr r0, [r0, #0x0]
+ blx FUN_020B0BB0
+ add r4, r0, #0x0
+ ldr r0, _0200A0D8 ; =0x0000FFFE
+ cmp r4, r0
+ bne _0200A0D0
+ bl ErrorHandling
+_0200A0D0:
+ add r0, r4, #0x0
+ pop {r4, pc}
+ .balign 4
+_0200A0D4: .word 0x021C4670
+_0200A0D8: .word 0x0000FFFE
+
+ thumb_func_start FUN_0200A0DC
+FUN_0200A0DC: ; 0x0200A0DC
+ push {r4, lr}
+ add r1, r0, #0x0
+ ldr r0, _0200A0FC ; =0x021C4670
+ ldr r0, [r0, #0x0]
+ add r0, #0x1c
+ blx FUN_020B0BB0
+ add r4, r0, #0x0
+ ldr r0, _0200A100 ; =0x0000FFFE
+ cmp r4, r0
+ bne _0200A0F6
+ bl ErrorHandling
+_0200A0F6:
+ add r0, r4, #0x0
+ pop {r4, pc}
+ nop
+_0200A0FC: .word 0x021C4670
+_0200A100: .word 0x0000FFFE
+
+ thumb_func_start FUN_0200A104
+FUN_0200A104: ; 0x0200A104
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ mov r0, #0x10
+ ldrsb r2, [r5, r0]
+ mov r0, #0x14
+ ldrsh r0, [r5, r0]
+ add r1, r2, #0x0
+ mov r7, #0x1a
+ ldrsh r2, [r5, r7]
+ mul r1, r0
+ mov r6, #0xa
+ ldrsh r0, [r5, r6]
+ add r1, r2, r1
+ mov r4, #0x0
+ cmp r0, r1
+ beq _0200A162
+ cmp r2, r0
+ beq _0200A162
+ strh r1, [r5, #0x1a]
+ ldrh r3, [r5, #0x18]
+ ldrh r0, [r5, #0x16]
+ add r2, r5, #0x0
+ add r1, r5, #0x0
+ add r0, r3, r0
+ strh r0, [r5, #0x18]
+ ldrh r3, [r5, #0x18]
+ ldrh r0, [r5, #0x8]
+ add r2, #0x1a
+ add r1, #0x18
+ cmp r3, r0
+ blo _0200A166
+ mov r3, #0x10
+ ldrsh r0, [r2, r4]
+ ldrsb r3, [r5, r3]
+ add r0, r0, r3
+ strh r0, [r2, #0x0]
+ ldrsh r2, [r5, r7]
+ ldrsh r0, [r5, r6]
+ cmp r2, r0
+ beq _0200A15E
+ ldrh r2, [r1, #0x0]
+ ldrh r0, [r5, #0x8]
+ sub r0, r2, r0
+ strh r0, [r1, #0x0]
+ b _0200A166
+_0200A15E:
+ mov r4, #0x1
+ b _0200A166
+_0200A162:
+ strh r0, [r5, #0x1a]
+ mov r4, #0x1
+_0200A166:
+ ldr r1, [r5, #0x4]
+ mov r0, #0x1
+ tst r0, r1
+ beq _0200A17C
+ mov r2, #0x1a
+ ldrsh r2, [r5, r2]
+ ldr r0, _0200A198 ; =0x04000050
+ ldr r1, [r5, #0x0]
+ blx G2x_SetBlendBrightness_
+ b _0200A18E
+_0200A17C:
+ mov r0, #0x2
+ tst r0, r1
+ beq _0200A18E
+ mov r2, #0x1a
+ ldrsh r2, [r5, r2]
+ ldr r0, _0200A19C ; =0x04001050
+ ldr r1, [r5, #0x0]
+ blx G2x_SetBlendBrightness_
+_0200A18E:
+ cmp r4, #0x1
+ bne _0200A196
+ mov r0, #0x0
+ str r0, [r5, #0x1c]
+_0200A196:
+ pop {r3-r7, pc}
+ .balign 4
+_0200A198: .word 0x04000050
+_0200A19C: .word 0x04001050
+
+ thumb_func_start FUN_0200A1A0
+FUN_0200A1A0: ; 0x0200A1A0
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ ldr r0, [r5, #0x1c]
+ add r4, r1, #0x0
+ add r6, r2, #0x0
+ add r7, r3, #0x0
+ cmp r0, #0x0
+ beq _0200A1B4
+ bl ErrorHandling
+_0200A1B4:
+ ldr r1, [sp, #0x18]
+ mov r0, #0x1
+ lsl r1, r1, #0x18
+ str r0, [r5, #0x1c]
+ lsr r1, r1, #0x18
+ str r1, [r5, #0x0]
+ ldr r1, [sp, #0x1c]
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ str r1, [r5, #0x4]
+ strh r4, [r5, #0x8]
+ strh r6, [r5, #0xa]
+ strh r7, [r5, #0x1a]
+ sub r1, r7, r6
+ strh r1, [r5, #0x12]
+ mov r1, #0x12
+ ldrsh r2, [r5, r1]
+ cmp r2, #0x0
+ ble _0200A1E0
+ sub r1, #0x13
+ strb r1, [r5, #0x10]
+ b _0200A1EA
+_0200A1E0:
+ strb r0, [r5, #0x10]
+ ldrsh r0, [r5, r1]
+ sub r1, #0x13
+ mul r1, r0
+ strh r1, [r5, #0x12]
+_0200A1EA:
+ mov r0, #0x12
+ ldrsh r0, [r5, r0]
+ add r1, r4, #0x0
+ blx _s32_div_f
+ strh r0, [r5, #0x14]
+ mov r0, #0x12
+ ldrsh r0, [r5, r0]
+ add r1, r4, #0x0
+ blx _s32_div_f
+ strh r1, [r5, #0x16]
+ mov r0, #0x0
+ strh r0, [r5, #0x18]
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_0200A208
+FUN_0200A208: ; 0x0200A208
+ push {r3-r7, lr}
+ sub sp, #0x8
+ add r5, r0, #0x0
+ add r7, r1, #0x0
+ add r6, r2, #0x0
+ add r4, r3, #0x0
+ cmp r5, #0x0
+ beq _0200A25E
+ ldr r1, [sp, #0x20]
+ mov r0, #0x1
+ tst r0, r1
+ beq _0200A23A
+ ldr r0, _0200A264 ; =0x04000050
+ add r1, r4, #0x0
+ blx G2x_SetBlendBrightness_
+ str r4, [sp, #0x0]
+ mov r0, #0x1
+ str r0, [sp, #0x4]
+ ldr r0, _0200A268 ; =0x021C4694
+ add r1, r5, #0x0
+ add r2, r7, #0x0
+ add r3, r6, #0x0
+ bl FUN_0200A1A0
+_0200A23A:
+ ldr r1, [sp, #0x20]
+ mov r0, #0x2
+ tst r0, r1
+ beq _0200A25E
+ ldr r0, _0200A26C ; =0x04001050
+ add r1, r4, #0x0
+ add r2, r6, #0x0
+ blx G2x_SetBlendBrightness_
+ str r4, [sp, #0x0]
+ mov r0, #0x2
+ str r0, [sp, #0x4]
+ ldr r0, _0200A270 ; =0x021C4674
+ add r1, r5, #0x0
+ add r2, r7, #0x0
+ add r3, r6, #0x0
+ bl FUN_0200A1A0
+_0200A25E:
+ add sp, #0x8
+ pop {r3-r7, pc}
+ nop
+_0200A264: .word 0x04000050
+_0200A268: .word 0x021C4694
+_0200A26C: .word 0x04001050
+_0200A270: .word 0x021C4674
+
+ thumb_func_start FUN_0200A274
+FUN_0200A274: ; 0x0200A274
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ add r4, r2, #0x0
+ mov r0, #0x1
+ add r6, r1, #0x0
+ tst r0, r4
+ beq _0200A28A
+ ldr r0, _0200A2A4 ; =0x04000050
+ add r2, r5, #0x0
+ blx G2x_SetBlendBrightness_
+_0200A28A:
+ mov r0, #0x2
+ tst r0, r4
+ beq _0200A29A
+ ldr r0, _0200A2A8 ; =0x04001050
+ add r1, r6, #0x0
+ add r2, r5, #0x0
+ blx G2x_SetBlendBrightness_
+_0200A29A:
+ add r0, r4, #0x0
+ bl FUN_0200A2D8
+ pop {r4-r6, pc}
+ nop
+_0200A2A4: .word 0x04000050
+_0200A2A8: .word 0x04001050
+
+ thumb_func_start FUN_0200A2AC
+FUN_0200A2AC: ; 0x0200A2AC
+ push {r3, lr}
+ ldr r0, _0200A2CC ; =0x021C4694
+ mov r1, #0x0
+ mov r2, #0x20
+ blx MI_CpuFill8
+ ldr r0, _0200A2D0 ; =0x021C4674
+ mov r1, #0x0
+ mov r2, #0x20
+ blx MI_CpuFill8
+ ldr r0, _0200A2D4 ; =0x021C4674
+ mov r1, #0x0
+ str r1, [r0, #0x3c]
+ str r1, [r0, #0x1c]
+ pop {r3, pc}
+ .balign 4
+_0200A2CC: .word 0x021C4694
+_0200A2D0: .word 0x021C4674
+_0200A2D4: .word 0x021C4674
+
+ thumb_func_start FUN_0200A2D8
+FUN_0200A2D8: ; 0x0200A2D8
+ push {r4, lr}
+ add r4, r0, #0x0
+ mov r0, #0x1
+ tst r0, r4
+ beq _0200A2F2
+ ldr r0, _0200A30C ; =0x021C4694
+ mov r1, #0x0
+ mov r2, #0x20
+ blx MI_CpuFill8
+ ldr r0, _0200A310 ; =0x021C4674
+ mov r1, #0x0
+ str r1, [r0, #0x3c]
+_0200A2F2:
+ mov r0, #0x2
+ tst r0, r4
+ beq _0200A308
+ ldr r0, _0200A314 ; =0x021C4674
+ mov r1, #0x0
+ mov r2, #0x20
+ blx MI_CpuFill8
+ ldr r0, _0200A310 ; =0x021C4674
+ mov r1, #0x0
+ str r1, [r0, #0x1c]
+_0200A308:
+ pop {r4, pc}
+ nop
+_0200A30C: .word 0x021C4694
+_0200A310: .word 0x021C4674
+_0200A314: .word 0x021C4674
+
+ thumb_func_start FUN_0200A318
+FUN_0200A318: ; 0x0200A318
+ push {r3, lr}
+ ldr r0, _0200A338 ; =0x021C4674
+ ldr r0, [r0, #0x3c]
+ cmp r0, #0x0
+ beq _0200A328
+ ldr r0, _0200A33C ; =0x021C4694
+ bl FUN_0200A104
+_0200A328:
+ ldr r0, _0200A338 ; =0x021C4674
+ ldr r0, [r0, #0x1c]
+ cmp r0, #0x0
+ beq _0200A336
+ ldr r0, _0200A340 ; =0x021C4674
+ bl FUN_0200A104
+_0200A336:
+ pop {r3, pc}
+ .balign 4
+_0200A338: .word 0x021C4674
+_0200A33C: .word 0x021C4694
+_0200A340: .word 0x021C4674
+
+ thumb_func_start FUN_0200A344
+FUN_0200A344: ; 0x0200A344
+ cmp r0, #0x3
+ bne _0200A35A
+ ldr r0, _0200A380 ; =0x021C4674
+ ldr r1, [r0, #0x3c]
+ cmp r1, #0x0
+ bne _0200A37A
+ ldr r0, [r0, #0x1c]
+ cmp r0, #0x0
+ bne _0200A37A
+ mov r0, #0x1
+ bx lr
+_0200A35A:
+ cmp r0, #0x1
+ bne _0200A36A
+ ldr r0, _0200A380 ; =0x021C4674
+ ldr r0, [r0, #0x3c]
+ cmp r0, #0x0
+ bne _0200A37A
+ mov r0, #0x1
+ bx lr
+_0200A36A:
+ cmp r0, #0x2
+ bne _0200A37A
+ ldr r0, _0200A380 ; =0x021C4674
+ ldr r0, [r0, #0x1c]
+ cmp r0, #0x0
+ bne _0200A37A
+ mov r0, #0x1
+ bx lr
+_0200A37A:
+ mov r0, #0x0
+ bx lr
+ nop
+_0200A380: .word 0x021C4674
+
+ thumb_func_start FUN_0200A384
+FUN_0200A384: ; 0x0200A384
+ ldr r3, _0200A388 ; =LoadFromNarc_2
+ bx r3
+ .balign 4
+_0200A388: .word LoadFromNarc_2
+
+ thumb_func_start FUN_0200A38C
+FUN_0200A38C: ; 0x0200A38C
+ ldr r3, _0200A390 ; =FUN_02016A18
+ bx r3
+ .balign 4
+_0200A390: .word FUN_02016A18
+
+ thumb_func_start FUN_0200A394
+FUN_0200A394: ; 0x0200A394
+ push {r3-r7, lr}
+ sub sp, #0x8
+ add r3, r0, #0x0
+ ldrh r0, [r3, #0x0]
+ add r5, r1, #0x0
+ add r4, r2, #0x0
+ cmp r5, r0
+ bhs _0200A404
+ lsl r0, r5, #0x3
+ add r0, r3, r0
+ ldr r2, [r0, #0x4]
+ ldr r1, [r0, #0x8]
+ ldr r6, _0200A40C ; =0x000002FD
+ str r2, [sp, #0x0]
+ str r1, [sp, #0x4]
+ ldrh r0, [r3, #0x2]
+ add r7, r5, #0x1
+ mul r6, r0
+ add r0, r7, #0x0
+ mul r0, r6
+ lsl r0, r0, #0x10
+ lsr r6, r0, #0x10
+ lsl r0, r6, #0x10
+ orr r0, r6
+ eor r2, r0
+ eor r0, r1
+ str r0, [sp, #0x4]
+ str r2, [sp, #0x0]
+ add r1, r3, r2
+ add r0, r4, #0x0
+ add r2, sp, #0x0
+ bl FUN_0200A4C0
+ ldr r2, [sp, #0x4]
+ ldr r0, _0200A410 ; =0x00091BD3
+ add r1, r7, #0x0
+ mul r0, r1
+ lsl r0, r0, #0x10
+ lsr r5, r0, #0x10
+ sub r3, r2, #0x1
+ cmp r2, #0x0
+ beq _0200A408
+ ldr r0, _0200A414 ; =0x0000493D
+_0200A3EA:
+ ldrh r1, [r4, #0x0]
+ eor r1, r5
+ strh r1, [r4, #0x0]
+ add r1, r5, r0
+ lsl r1, r1, #0x10
+ lsr r5, r1, #0x10
+ add r1, r3, #0x0
+ add r4, r4, #0x2
+ sub r3, r3, #0x1
+ cmp r1, #0x0
+ bne _0200A3EA
+ add sp, #0x8
+ pop {r3-r7, pc}
+_0200A404:
+ bl ErrorHandling
+_0200A408:
+ add sp, #0x8
+ pop {r3-r7, pc}
+ .balign 4
+_0200A40C: .word 0x000002FD
+_0200A410: .word 0x00091BD3
+_0200A414: .word 0x0000493D
+
+ thumb_func_start FUN_0200A418
+FUN_0200A418: ; 0x0200A418
+ push {r4-r6, lr}
+ sub sp, #0x10
+ add r5, r1, #0x0
+ add r1, r3, #0x0
+ add r4, r2, #0x0
+ bl FUN_02006670
+ add r6, r0, #0x0
+ beq _0200A4AE
+ add r1, sp, #0xc
+ str r1, [sp, #0x0]
+ add r1, r5, #0x0
+ mov r2, #0x0
+ mov r3, #0x4
+ bl FUN_02006814
+ add r0, sp, #0x4
+ lsl r2, r4, #0x3
+ str r0, [sp, #0x0]
+ add r0, r6, #0x0
+ add r1, r5, #0x0
+ add r2, r2, #0x4
+ mov r3, #0x8
+ bl FUN_02006814
+ add r0, sp, #0x4
+ ldrh r2, [r0, #0xa]
+ ldr r0, _0200A4B4 ; =0x000002FD
+ add r1, r4, #0x1
+ mul r0, r2
+ mul r0, r1
+ lsl r0, r0, #0x10
+ lsr r1, r0, #0x10
+ lsl r0, r1, #0x10
+ orr r1, r0
+ ldr r0, [sp, #0x4]
+ eor r0, r1
+ str r0, [sp, #0x4]
+ ldr r0, [sp, #0x8]
+ eor r0, r1
+ str r0, [sp, #0x8]
+ ldr r0, [sp, #0x20]
+ add r1, r5, #0x0
+ str r0, [sp, #0x0]
+ ldr r3, [sp, #0x8]
+ ldr r2, [sp, #0x4]
+ add r0, r6, #0x0
+ lsl r3, r3, #0x1
+ bl FUN_02006814
+ ldr r2, _0200A4B8 ; =0x00091BD3
+ add r3, r4, #0x1
+ mul r2, r3
+ lsl r2, r2, #0x10
+ ldr r0, [sp, #0x8]
+ lsr r3, r2, #0x10
+ sub r2, r0, #0x1
+ ldr r1, [sp, #0x20]
+ cmp r0, #0x0
+ beq _0200A4A8
+ ldr r0, _0200A4BC ; =0x0000493D
+_0200A492:
+ ldrh r4, [r1, #0x0]
+ eor r4, r3
+ strh r4, [r1, #0x0]
+ add r3, r3, r0
+ lsl r3, r3, #0x10
+ add r4, r2, #0x0
+ add r1, r1, #0x2
+ lsr r3, r3, #0x10
+ sub r2, r2, #0x1
+ cmp r4, #0x0
+ bne _0200A492
+_0200A4A8:
+ add r0, r6, #0x0
+ bl FUN_020066F4
+_0200A4AE:
+ add sp, #0x10
+ pop {r4-r6, pc}
+ nop
+_0200A4B4: .word 0x000002FD
+_0200A4B8: .word 0x00091BD3
+_0200A4BC: .word 0x0000493D
+
+ thumb_func_start FUN_0200A4C0
+FUN_0200A4C0: ; 0x0200A4C0
+ add r3, r0, #0x0
+ add r0, r1, #0x0
+ add r1, r3, #0x0
+ ldr r2, [r2, #0x4]
+ ldr r3, _0200A4D0 ; =MIi_CpuCopy16
+ lsl r2, r2, #0x1
+ bx r3
+ nop
+_0200A4D0: .word MIi_CpuCopy16
+
+ thumb_func_start FUN_0200A4D4
+FUN_0200A4D4: ; 0x0200A4D4
+ push {r3-r7, lr}
+ sub sp, #0x10
+ add r5, r0, #0x0
+ ldrh r0, [r5, #0x0]
+ add r4, r1, #0x0
+ str r2, [sp, #0x0]
+ cmp r4, r0
+ bhs _0200A56A
+ lsl r0, r4, #0x3
+ add r0, r5, r0
+ ldr r3, [r0, #0x4]
+ ldr r2, [r0, #0x8]
+ ldrh r1, [r5, #0x2]
+ ldr r6, _0200A578 ; =0x000002FD
+ add r0, r4, #0x1
+ mul r6, r1
+ add r1, r0, #0x0
+ mul r1, r6
+ lsl r0, r1, #0x10
+ lsr r1, r0, #0x10
+ lsl r0, r1, #0x10
+ orr r1, r0
+ add r0, r3, #0x0
+ add r6, r2, #0x0
+ str r3, [sp, #0x8]
+ eor r0, r1
+ eor r6, r1
+ str r0, [sp, #0x8]
+ lsl r0, r6, #0x1
+ str r0, [sp, #0x4]
+ str r2, [sp, #0xc]
+ ldr r1, [sp, #0x4]
+ mov r0, #0x0
+ str r6, [sp, #0xc]
+ bl FUN_020169D8
+ add r7, r0, #0x0
+ beq _0200A574
+ ldr r0, [sp, #0x8]
+ ldr r2, [sp, #0x4]
+ add r0, r5, r0
+ add r1, r7, #0x0
+ blx MIi_CpuCopy16
+ ldr r1, _0200A57C ; =0x00091BD3
+ add r2, r4, #0x1
+ mul r1, r2
+ lsl r1, r1, #0x10
+ lsr r2, r1, #0x10
+ add r0, r7, #0x0
+ sub r1, r6, #0x1
+ cmp r6, #0x0
+ beq _0200A556
+ ldr r3, _0200A580 ; =0x0000493D
+_0200A540:
+ ldrh r4, [r0, #0x0]
+ eor r4, r2
+ strh r4, [r0, #0x0]
+ add r2, r2, r3
+ lsl r2, r2, #0x10
+ add r4, r1, #0x0
+ add r0, r0, #0x2
+ lsr r2, r2, #0x10
+ sub r1, r1, #0x1
+ cmp r4, #0x0
+ bne _0200A540
+_0200A556:
+ ldr r0, [sp, #0x0]
+ add r1, r7, #0x0
+ add r2, r6, #0x0
+ bl FUN_02021E8C
+ add r0, r7, #0x0
+ bl FUN_02016A18
+ add sp, #0x10
+ pop {r3-r7, pc}
+_0200A56A:
+ bl ErrorHandling
+ ldr r0, [sp, #0x0]
+ bl FUN_02021A4C
+_0200A574:
+ add sp, #0x10
+ pop {r3-r7, pc}
+ .balign 4
+_0200A578: .word 0x000002FD
+_0200A57C: .word 0x00091BD3
+_0200A580: .word 0x0000493D
+
+ thumb_func_start FUN_0200A584
+FUN_0200A584: ; 0x0200A584
+ push {r3-r7, lr}
+ sub sp, #0x10
+ add r5, r0, #0x0
+ ldrh r0, [r5, #0x0]
+ add r4, r1, #0x0
+ str r2, [sp, #0x0]
+ cmp r4, r0
+ bhs _0200A62C
+ lsl r0, r4, #0x3
+ add r0, r5, r0
+ ldr r3, [r0, #0x4]
+ ldr r2, [r0, #0x8]
+ ldrh r1, [r5, #0x2]
+ ldr r6, _0200A63C ; =0x000002FD
+ add r0, r4, #0x1
+ mul r6, r1
+ add r1, r0, #0x0
+ mul r1, r6
+ lsl r0, r1, #0x10
+ lsr r1, r0, #0x10
+ lsl r0, r1, #0x10
+ orr r1, r0
+ add r0, r3, #0x0
+ add r6, r2, #0x0
+ str r3, [sp, #0x8]
+ eor r0, r1
+ eor r6, r1
+ str r0, [sp, #0x8]
+ lsl r0, r6, #0x1
+ str r0, [sp, #0x4]
+ str r2, [sp, #0xc]
+ ldr r0, [sp, #0x0]
+ ldr r1, [sp, #0x4]
+ str r6, [sp, #0xc]
+ bl FUN_020169D8
+ add r7, r0, #0x0
+ beq _0200A626
+ ldr r0, [sp, #0x8]
+ ldr r2, [sp, #0x4]
+ add r0, r5, r0
+ add r1, r7, #0x0
+ blx MIi_CpuCopy16
+ ldr r1, _0200A640 ; =0x00091BD3
+ add r2, r4, #0x1
+ mul r1, r2
+ lsl r1, r1, #0x10
+ lsr r2, r1, #0x10
+ add r0, r7, #0x0
+ sub r1, r6, #0x1
+ cmp r6, #0x0
+ beq _0200A606
+ ldr r3, _0200A644 ; =0x0000493D
+_0200A5F0:
+ ldrh r4, [r0, #0x0]
+ eor r4, r2
+ strh r4, [r0, #0x0]
+ add r2, r2, r3
+ lsl r2, r2, #0x10
+ add r4, r1, #0x0
+ add r0, r0, #0x2
+ lsr r2, r2, #0x10
+ sub r1, r1, #0x1
+ cmp r4, #0x0
+ bne _0200A5F0
+_0200A606:
+ ldr r1, [sp, #0x0]
+ add r0, r6, #0x0
+ bl FUN_020219F4
+ add r4, r0, #0x0
+ beq _0200A61A
+ add r1, r7, #0x0
+ add r2, r6, #0x0
+ bl FUN_02021E8C
+_0200A61A:
+ add r0, r7, #0x0
+ bl FUN_02016A18
+ add sp, #0x10
+ add r0, r4, #0x0
+ pop {r3-r7, pc}
+_0200A626:
+ add sp, #0x10
+ mov r0, #0x0
+ pop {r3-r7, pc}
+_0200A62C:
+ bl ErrorHandling
+ ldr r1, [sp, #0x0]
+ mov r0, #0x4
+ bl FUN_020219F4
+ add sp, #0x10
+ pop {r3-r7, pc}
+ .balign 4
+_0200A63C: .word 0x000002FD
+_0200A640: .word 0x00091BD3
+_0200A644: .word 0x0000493D
+
+ thumb_func_start FUN_0200A648
+FUN_0200A648: ; 0x0200A648
+ push {r3-r7, lr}
+ add r7, r3, #0x0
+ add r5, r1, #0x0
+ add r1, r7, #0x0
+ add r4, r2, #0x0
+ bl FUN_02006670
+ add r6, r0, #0x0
+ beq _0200A66E
+ ldr r1, [sp, #0x18]
+ add r2, r4, #0x0
+ str r1, [sp, #0x0]
+ add r1, r5, #0x0
+ add r3, r7, #0x0
+ bl FUN_0200A670
+ add r0, r6, #0x0
+ bl FUN_020066F4
+_0200A66E:
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_0200A670
+FUN_0200A670: ; 0x0200A670
+ push {r4-r7, lr}
+ sub sp, #0x14
+ add r5, r2, #0x0
+ add r2, sp, #0x10
+ add r4, r3, #0x0
+ str r2, [sp, #0x0]
+ mov r2, #0x0
+ mov r3, #0x4
+ add r7, r0, #0x0
+ str r1, [sp, #0x4]
+ bl FUN_02006814
+ add r0, sp, #0x8
+ ldrh r0, [r0, #0x8]
+ cmp r5, r0
+ bhs _0200A71E
+ add r0, sp, #0x8
+ lsl r2, r5, #0x3
+ str r0, [sp, #0x0]
+ ldr r1, [sp, #0x4]
+ add r0, r7, #0x0
+ add r2, r2, #0x4
+ mov r3, #0x8
+ bl FUN_02006814
+ add r0, sp, #0x8
+ ldrh r2, [r0, #0xa]
+ ldr r0, _0200A72C ; =0x000002FD
+ add r1, r5, #0x1
+ mul r0, r2
+ mul r0, r1
+ lsl r0, r0, #0x10
+ lsr r1, r0, #0x10
+ lsl r0, r1, #0x10
+ orr r1, r0
+ ldr r0, [sp, #0x8]
+ eor r0, r1
+ str r0, [sp, #0x8]
+ ldr r0, [sp, #0xc]
+ eor r0, r1
+ lsl r6, r0, #0x1
+ str r0, [sp, #0xc]
+ add r0, r4, #0x0
+ add r1, r6, #0x0
+ bl FUN_020169D8
+ add r4, r0, #0x0
+ beq _0200A728
+ str r4, [sp, #0x0]
+ ldr r1, [sp, #0x4]
+ ldr r2, [sp, #0x8]
+ add r0, r7, #0x0
+ add r3, r6, #0x0
+ bl FUN_02006814
+ ldr r2, _0200A730 ; =0x00091BD3
+ add r3, r5, #0x1
+ mul r2, r3
+ lsl r2, r2, #0x10
+ ldr r0, [sp, #0xc]
+ lsr r3, r2, #0x10
+ add r1, r4, #0x0
+ sub r2, r0, #0x1
+ cmp r0, #0x0
+ beq _0200A70A
+ ldr r0, _0200A734 ; =0x0000493D
+_0200A6F4:
+ ldrh r5, [r1, #0x0]
+ eor r5, r3
+ strh r5, [r1, #0x0]
+ add r3, r3, r0
+ lsl r3, r3, #0x10
+ add r5, r2, #0x0
+ add r1, r1, #0x2
+ lsr r3, r3, #0x10
+ sub r2, r2, #0x1
+ cmp r5, #0x0
+ bne _0200A6F4
+_0200A70A:
+ ldr r0, [sp, #0x28]
+ ldr r2, [sp, #0xc]
+ add r1, r4, #0x0
+ bl FUN_02021E8C
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ add sp, #0x14
+ pop {r4-r7, pc}
+_0200A71E:
+ bl ErrorHandling
+ ldr r0, [sp, #0x28]
+ bl FUN_02021A4C
+_0200A728:
+ add sp, #0x14
+ pop {r4-r7, pc}
+ .balign 4
+_0200A72C: .word 0x000002FD
+_0200A730: .word 0x00091BD3
+_0200A734: .word 0x0000493D
+
+ thumb_func_start FUN_0200A738
+FUN_0200A738: ; 0x0200A738
+ push {r3-r7, lr}
+ add r6, r3, #0x0
+ add r5, r1, #0x0
+ add r1, r6, #0x0
+ add r4, r2, #0x0
+ bl FUN_02006670
+ add r7, r0, #0x0
+ beq _0200A75E
+ add r1, r5, #0x0
+ add r2, r4, #0x0
+ add r3, r6, #0x0
+ bl FUN_0200A76C
+ add r4, r0, #0x0
+ add r0, r7, #0x0
+ bl FUN_020066F4
+ b _0200A768
+_0200A75E:
+ mov r0, #0x4
+ add r1, r6, #0x0
+ bl FUN_020219F4
+ add r4, r0, #0x0
+_0200A768:
+ add r0, r4, #0x0
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_0200A76C
+FUN_0200A76C: ; 0x0200A76C
+ push {r3-r7, lr}
+ sub sp, #0x18
+ add r4, r2, #0x0
+ add r2, sp, #0x14
+ add r5, r3, #0x0
+ str r2, [sp, #0x0]
+ mov r2, #0x0
+ mov r3, #0x4
+ add r7, r0, #0x0
+ str r1, [sp, #0x4]
+ bl FUN_02006814
+ add r0, sp, #0xc
+ ldrh r0, [r0, #0x8]
+ cmp r4, r0
+ bhs _0200A82A
+ add r0, sp, #0xc
+ lsl r2, r4, #0x3
+ str r0, [sp, #0x0]
+ ldr r1, [sp, #0x4]
+ add r0, r7, #0x0
+ add r2, r2, #0x4
+ mov r3, #0x8
+ bl FUN_02006814
+ add r0, sp, #0xc
+ ldrh r2, [r0, #0xa]
+ ldr r0, _0200A83C ; =0x000002FD
+ add r1, r4, #0x1
+ mul r0, r2
+ mul r0, r1
+ lsl r0, r0, #0x10
+ lsr r1, r0, #0x10
+ lsl r0, r1, #0x10
+ orr r1, r0
+ ldr r0, [sp, #0xc]
+ eor r0, r1
+ str r0, [sp, #0xc]
+ ldr r0, [sp, #0x10]
+ eor r0, r1
+ add r1, r5, #0x0
+ str r0, [sp, #0x10]
+ bl FUN_020219F4
+ str r0, [sp, #0x8]
+ cmp r0, #0x0
+ beq _0200A824
+ ldr r0, [sp, #0x10]
+ lsl r6, r0, #0x1
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ bl FUN_020169D8
+ add r5, r0, #0x0
+ beq _0200A824
+ str r5, [sp, #0x0]
+ ldr r1, [sp, #0x4]
+ ldr r2, [sp, #0xc]
+ add r0, r7, #0x0
+ add r3, r6, #0x0
+ bl FUN_02006814
+ ldr r2, _0200A840 ; =0x00091BD3
+ add r3, r4, #0x1
+ mul r2, r3
+ lsl r2, r2, #0x10
+ ldr r0, [sp, #0x10]
+ lsr r3, r2, #0x10
+ add r1, r5, #0x0
+ sub r2, r0, #0x1
+ cmp r0, #0x0
+ beq _0200A814
+ ldr r0, _0200A844 ; =0x0000493D
+_0200A7FE:
+ ldrh r4, [r1, #0x0]
+ eor r4, r3
+ strh r4, [r1, #0x0]
+ add r3, r3, r0
+ lsl r3, r3, #0x10
+ add r4, r2, #0x0
+ add r1, r1, #0x2
+ lsr r3, r3, #0x10
+ sub r2, r2, #0x1
+ cmp r4, #0x0
+ bne _0200A7FE
+_0200A814:
+ ldr r0, [sp, #0x8]
+ ldr r2, [sp, #0x10]
+ add r1, r5, #0x0
+ bl FUN_02021E8C
+ add r0, r5, #0x0
+ bl FUN_02016A18
+_0200A824:
+ ldr r0, [sp, #0x8]
+ add sp, #0x18
+ pop {r3-r7, pc}
+_0200A82A:
+ bl ErrorHandling
+ mov r0, #0x4
+ add r1, r5, #0x0
+ bl FUN_020219F4
+ add sp, #0x18
+ pop {r3-r7, pc}
+ nop
+_0200A83C: .word 0x000002FD
+_0200A840: .word 0x00091BD3
+_0200A844: .word 0x0000493D
+
+ thumb_func_start FUN_0200A848
+FUN_0200A848: ; 0x0200A848
+ ldrh r0, [r0, #0x0]
+ bx lr
+
+ thumb_func_start FUN_0200A84C
+FUN_0200A84C: ; 0x0200A84C
+ push {r3, lr}
+ sub sp, #0x8
+ add r3, r0, #0x0
+ mov r0, #0x4
+ add r2, r1, #0x0
+ str r0, [sp, #0x0]
+ add r1, r3, #0x0
+ add r0, sp, #0x4
+ mov r3, #0x0
+ bl FUN_02006548
+ add r0, sp, #0x4
+ ldrh r0, [r0, #0x0]
+ add sp, #0x8
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_0200A86C
+FUN_0200A86C: ; 0x0200A86C
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ add r6, r1, #0x0
+ add r0, r3, #0x0
+ mov r1, #0xc
+ add r7, r2, #0x0
+ str r3, [sp, #0x0]
+ bl FUN_020169D8
+ add r4, r0, #0x0
+ beq _0200A8B4
+ cmp r5, #0x0
+ bne _0200A8A0
+ ldr r2, [sp, #0x0]
+ add r0, r6, #0x0
+ add r1, r7, #0x0
+ bl FUN_0200A384
+ str r0, [r4, #0x8]
+ cmp r0, #0x0
+ bne _0200A8AA
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ mov r0, #0x0
+ pop {r3-r7, pc}
+_0200A8A0:
+ ldr r1, [sp, #0x0]
+ add r0, r6, #0x0
+ bl FUN_02006670
+ str r0, [r4, #0x8]
+_0200A8AA:
+ strh r5, [r4, #0x0]
+ strh r6, [r4, #0x4]
+ ldr r0, [sp, #0x0]
+ strh r7, [r4, #0x6]
+ strh r0, [r4, #0x2]
+_0200A8B4:
+ add r0, r4, #0x0
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_0200A8B8
+FUN_0200A8B8: ; 0x0200A8B8
+ push {r4, lr}
+ add r4, r0, #0x0
+ beq _0200A8DE
+ ldrh r0, [r4, #0x0]
+ cmp r0, #0x0
+ beq _0200A8CA
+ cmp r0, #0x1
+ beq _0200A8D2
+ b _0200A8D8
+_0200A8CA:
+ ldr r0, [r4, #0x8]
+ bl FUN_0200A38C
+ b _0200A8D8
+_0200A8D2:
+ ldr r0, [r4, #0x8]
+ bl FUN_020066F4
+_0200A8D8:
+ add r0, r4, #0x0
+ bl FUN_02016A18
+_0200A8DE:
+ pop {r4, pc}
+
+ thumb_func_start FUN_0200A8E0
+FUN_0200A8E0: ; 0x0200A8E0
+ push {r3-r4, lr}
+ sub sp, #0x4
+ add r4, r0, #0x0
+ ldrh r0, [r4, #0x0]
+ add r3, r1, #0x0
+ cmp r0, #0x0
+ beq _0200A8F6
+ cmp r0, #0x1
+ beq _0200A900
+ add sp, #0x4
+ pop {r3-r4, pc}
+_0200A8F6:
+ ldr r0, [r4, #0x8]
+ bl FUN_0200A4D4
+ add sp, #0x4
+ pop {r3-r4, pc}
+_0200A900:
+ str r2, [sp, #0x0]
+ add r2, r3, #0x0
+ ldrh r1, [r4, #0x6]
+ ldrh r3, [r4, #0x2]
+ ldr r0, [r4, #0x8]
+ bl FUN_0200A670
+ add sp, #0x4
+ pop {r3-r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0200A914
+FUN_0200A914: ; 0x0200A914
+ push {r3, lr}
+ add r3, r0, #0x0
+ ldrh r0, [r3, #0x0]
+ add r2, r1, #0x0
+ cmp r0, #0x0
+ beq _0200A926
+ cmp r0, #0x1
+ beq _0200A930
+ b _0200A93C
+_0200A926:
+ ldrh r2, [r3, #0x2]
+ ldr r0, [r3, #0x8]
+ bl FUN_0200A584
+ pop {r3, pc}
+_0200A930:
+ ldr r0, [r3, #0x8]
+ ldrh r1, [r3, #0x6]
+ ldrh r3, [r3, #0x2]
+ bl FUN_0200A76C
+ pop {r3, pc}
+_0200A93C:
+ mov r0, #0x0
+ pop {r3, pc}
+
+ thumb_func_start FUN_0200A940
+FUN_0200A940: ; 0x0200A940
+ push {r3, lr}
+ add r1, r0, #0x0
+ ldrh r0, [r1, #0x0]
+ cmp r0, #0x0
+ beq _0200A950
+ cmp r0, #0x1
+ beq _0200A958
+ b _0200A962
+_0200A950:
+ ldr r0, [r1, #0x8]
+ bl FUN_0200A848
+ pop {r3, pc}
+_0200A958:
+ ldrh r0, [r1, #0x4]
+ ldrh r1, [r1, #0x6]
+ bl FUN_0200A84C
+ pop {r3, pc}
+_0200A962:
+ mov r0, #0x0
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_0200A968
+FUN_0200A968: ; 0x0200A968
+ push {r3-r4, lr}
+ sub sp, #0x4
+ add r4, r0, #0x0
+ ldrh r0, [r4, #0x0]
+ add r3, r1, #0x0
+ cmp r0, #0x0
+ beq _0200A97E
+ cmp r0, #0x1
+ beq _0200A988
+ add sp, #0x4
+ pop {r3-r4, pc}
+_0200A97E:
+ ldr r0, [r4, #0x8]
+ bl FUN_0200A394
+ add sp, #0x4
+ pop {r3-r4, pc}
+_0200A988:
+ str r2, [sp, #0x0]
+ add r2, r3, #0x0
+ ldrh r0, [r4, #0x4]
+ ldrh r1, [r4, #0x6]
+ ldrh r3, [r4, #0x2]
+ bl FUN_0200A418
+ add sp, #0x4
+ pop {r3-r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0200A99C
+FUN_0200A99C: ; 0x0200A99C
+ push {r4-r6, lr}
+ add r4, r2, #0x0
+ add r5, r0, #0x0
+ add r3, r1, #0x0
+ ldr r2, _0200A9C0 ; =0x0000016A
+ mov r0, #0x1
+ mov r1, #0x1a
+ bl FUN_0200A86C
+ add r6, r0, #0x0
+ add r1, r5, #0x0
+ add r2, r4, #0x0
+ bl FUN_0200A968
+ add r0, r6, #0x0
+ bl FUN_0200A8B8
+ pop {r4-r6, pc}
+ .balign 4
+_0200A9C0: .word 0x0000016A
+
+ thumb_func_start FUN_0200A9C4
+FUN_0200A9C4: ; 0x0200A9C4
+ push {r3-r7, lr}
+ sub sp, #0x8
+ add r7, r0, #0x0
+ mov r0, #0x0
+ str r0, [sp, #0x4]
+ add r5, r1, #0x0
+ mov r0, #0x1
+ ldr r1, [sp, #0x4]
+ lsl r0, r0, #0xa
+ add r6, r2, #0x0
+ str r3, [sp, #0x0]
+ bl FUN_020219F4
+ add r4, r0, #0x0
+ beq _0200AA0E
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ bl FUN_0200A914
+ add r5, r0, #0x0
+ beq _0200AA08
+ add r0, r7, #0x0
+ add r1, r4, #0x0
+ add r2, r5, #0x0
+ bl FUN_0200B7B8
+ ldr r1, [sp, #0x0]
+ add r0, r4, #0x0
+ bl FUN_02021ACC
+ str r0, [sp, #0x4]
+ add r0, r5, #0x0
+ bl FUN_02021A20
+_0200AA08:
+ add r0, r4, #0x0
+ bl FUN_02021A20
+_0200AA0E:
+ ldr r0, [sp, #0x4]
+ add sp, #0x8
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_0200AA14
+FUN_0200AA14: ; 0x0200AA14
+ push {r4-r6, lr}
+ add r5, r1, #0x0
+ mov r2, #0x93
+ add r6, r0, #0x0
+ mov r0, #0x1
+ mov r1, #0x1a
+ lsl r2, r2, #0x2
+ add r3, r5, #0x0
+ bl FUN_0200A86C
+ add r4, r0, #0x0
+ beq _0200AA4C
+ mov r0, #0x10
+ add r1, r5, #0x0
+ bl FUN_020219F4
+ add r5, r0, #0x0
+ beq _0200AA42
+ add r0, r4, #0x0
+ add r1, r6, #0x0
+ add r2, r5, #0x0
+ bl FUN_0200A8E0
+_0200AA42:
+ add r0, r4, #0x0
+ bl FUN_0200A8B8
+ add r0, r5, #0x0
+ pop {r4-r6, pc}
+_0200AA4C:
+ mov r0, #0x0
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_0200AA50
+FUN_0200AA50: ; 0x0200AA50
+ push {r3-r5, lr}
+ ldr r2, _0200AA7C ; =0x0000016A
+ add r4, r0, #0x0
+ add r3, r1, #0x0
+ mov r0, #0x1
+ mov r1, #0x1a
+ bl FUN_0200A86C
+ add r5, r0, #0x0
+ beq _0200AA76
+ add r1, r4, #0x0
+ bl FUN_0200A914
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_0200A8B8
+ add r0, r4, #0x0
+ pop {r3-r5, pc}
+_0200AA76:
+ mov r0, #0x0
+ pop {r3-r5, pc}
+ nop
+_0200AA7C: .word 0x0000016A
+
+ thumb_func_start FUN_0200AA80
+FUN_0200AA80: ; 0x0200AA80
+ ldr r3, _0200AA8C ; =FUN_0200AA90
+ add r2, r0, #0x0
+ mov r0, #0x8
+ mov r1, #0x20
+ bx r3
+ nop
+_0200AA8C: .word FUN_0200AA90
+
+ thumb_func_start FUN_0200AA90
+FUN_0200AA90: ; 0x0200AA90
+ push {r3-r7, lr}
+ sub sp, #0x8
+ add r7, r0, #0x0
+ str r1, [sp, #0x0]
+ str r2, [sp, #0x4]
+ bne _0200AAA0
+ bl ErrorHandling
+_0200AAA0:
+ ldr r0, [sp, #0x0]
+ cmp r0, #0x0
+ bne _0200AAAA
+ bl ErrorHandling
+_0200AAAA:
+ ldr r0, [sp, #0x4]
+ mov r1, #0x10
+ bl FUN_020169D8
+ add r4, r0, #0x0
+ beq _0200AB10
+ ldr r0, [sp, #0x4]
+ str r7, [r4, #0x0]
+ str r0, [r4, #0x4]
+ ldr r0, [sp, #0x0]
+ ldr r1, [sp, #0x4]
+ bl FUN_020219F4
+ str r0, [r4, #0xc]
+ cmp r0, #0x0
+ beq _0200AB10
+ ldr r0, [sp, #0x4]
+ lsl r1, r7, #0x3
+ bl FUN_020169D8
+ str r0, [r4, #0x8]
+ cmp r0, #0x0
+ beq _0200AB10
+ mov r6, #0x0
+ cmp r7, #0x0
+ bls _0200AB06
+ add r5, r6, #0x0
+_0200AAE0:
+ add r0, r0, r5
+ bl FUN_0200AB6C
+ ldr r0, [sp, #0x0]
+ ldr r1, [sp, #0x4]
+ bl FUN_020219F4
+ ldr r1, [r4, #0x8]
+ add r1, r1, r5
+ str r0, [r1, #0x4]
+ ldr r0, [r4, #0x8]
+ add r1, r0, r5
+ ldr r1, [r1, #0x4]
+ cmp r1, #0x0
+ beq _0200AB06
+ add r6, r6, #0x1
+ add r5, #0x8
+ cmp r6, r7
+ blo _0200AAE0
+_0200AB06:
+ cmp r6, r7
+ bne _0200AB10
+ add sp, #0x8
+ add r0, r4, #0x0
+ pop {r3-r7, pc}
+_0200AB10:
+ mov r0, #0x0
+ add sp, #0x8
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_0200AB18
+FUN_0200AB18: ; 0x0200AB18
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ ldr r0, [r5, #0x0]
+ cmp r0, #0x0
+ bne _0200AB26
+ bl ErrorHandling
+_0200AB26:
+ ldr r0, [r5, #0x8]
+ cmp r0, #0x0
+ beq _0200AB54
+ ldr r0, [r5, #0x0]
+ mov r6, #0x0
+ cmp r0, #0x0
+ bls _0200AB4E
+ add r4, r6, #0x0
+_0200AB36:
+ ldr r0, [r5, #0x8]
+ add r0, r0, r4
+ ldr r0, [r0, #0x4]
+ cmp r0, #0x0
+ beq _0200AB4E
+ bl FUN_02021A20
+ ldr r0, [r5, #0x0]
+ add r6, r6, #0x1
+ add r4, #0x8
+ cmp r6, r0
+ blo _0200AB36
+_0200AB4E:
+ ldr r0, [r5, #0x8]
+ bl FUN_02016A18
+_0200AB54:
+ ldr r0, [r5, #0xc]
+ cmp r0, #0x0
+ beq _0200AB5E
+ bl FUN_02021A20
+_0200AB5E:
+ mov r0, #0x0
+ str r0, [r5, #0x0]
+ add r0, r5, #0x0
+ bl FUN_02016A18
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_0200AB6C
+FUN_0200AB6C: ; 0x0200AB6C
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_0200AB70
+FUN_0200AB70: ; 0x0200AB70
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ ldr r0, [r5, #0x0]
+ add r6, r1, #0x0
+ add r7, r2, #0x0
+ add r4, r3, #0x0
+ cmp r6, r0
+ blo _0200AB84
+ bl ErrorHandling
+_0200AB84:
+ ldr r0, [r5, #0x0]
+ cmp r6, r0
+ bhs _0200ABB2
+ cmp r4, #0x0
+ beq _0200ABA4
+ ldrb r0, [r4, #0x0]
+ ldr r3, [r5, #0x8]
+ lsl r2, r6, #0x3
+ strb r0, [r3, r2]
+ ldrb r0, [r4, #0x1]
+ add r1, r3, r2
+ strb r0, [r1, #0x1]
+ ldrb r0, [r4, #0x2]
+ strb r0, [r1, #0x2]
+ ldrb r0, [r4, #0x3]
+ strb r0, [r1, #0x3]
+_0200ABA4:
+ ldr r1, [r5, #0x8]
+ lsl r0, r6, #0x3
+ add r0, r1, r0
+ ldr r0, [r0, #0x4]
+ add r1, r7, #0x0
+ bl FUN_02021A74
+_0200ABB2:
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_0200ABB4
+FUN_0200ABB4: ; 0x0200ABB4
+ push {r3, lr}
+ mov r3, #0x0
+ bl FUN_0200AB70
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_0200ABC0
+FUN_0200ABC0: ; 0x0200ABC0
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r0, r2, #0x0
+ add r4, r1, #0x0
+ bl FUN_0202398C
+ add r1, r0, #0x0
+ ldr r0, [r5, #0xc]
+ bl FUN_02021E28
+ ldr r2, [r5, #0xc]
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ mov r3, #0x0
+ bl FUN_0200AB70
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_0200ABE4
+FUN_0200ABE4: ; 0x0200ABE4
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r0, r2, #0x0
+ add r4, r1, #0x0
+ bl FUN_02024EC0
+ bl FUN_02024EE8
+ add r1, r0, #0x0
+ ldr r0, [r5, #0xc]
+ bl FUN_02021E28
+ ldr r2, [r5, #0xc]
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ mov r3, #0x0
+ bl FUN_0200AB70
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_0200AC0C
+FUN_0200AC0C: ; 0x0200AC0C
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ add r0, r2, #0x0
+ add r6, r1, #0x0
+ bl FUN_020238F4
+ add r7, r0, #0x0
+ ldr r2, _0200AC5C ; =0x000001F1
+ ldr r3, [r5, #0x4]
+ mov r0, #0x1
+ mov r1, #0x1a
+ bl FUN_0200A86C
+ add r4, r0, #0x0
+ add r0, r7, #0x0
+ bl FUN_020239CC
+ cmp r0, #0x0
+ bne _0200AC3E
+ ldr r2, [r5, #0xc]
+ add r0, r4, #0x0
+ mov r1, #0x1
+ bl FUN_0200A8E0
+ b _0200AC48
+_0200AC3E:
+ ldr r2, [r5, #0xc]
+ add r0, r4, #0x0
+ mov r1, #0x0
+ bl FUN_0200A8E0
+_0200AC48:
+ ldr r2, [r5, #0xc]
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ mov r3, #0x0
+ bl FUN_0200AB70
+ add r0, r4, #0x0
+ bl FUN_0200A8B8
+ pop {r3-r7, pc}
+ .balign 4
+_0200AC5C: .word 0x000001F1
+
+ thumb_func_start FUN_0200AC60
+FUN_0200AC60: ; 0x0200AC60
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ add r7, r2, #0x0
+ add r6, r1, #0x0
+ ldr r2, _0200ACA0 ; =0x0000016A
+ ldr r3, [r5, #0x4]
+ mov r0, #0x1
+ mov r1, #0x1a
+ bl FUN_0200A86C
+ add r4, r0, #0x0
+ add r0, r7, #0x0
+ mov r1, #0x5
+ mov r2, #0x0
+ bl FUN_020672BC
+ add r1, r0, #0x0
+ ldr r2, [r5, #0xc]
+ add r0, r4, #0x0
+ bl FUN_0200A8E0
+ ldr r2, [r5, #0xc]
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ mov r3, #0x0
+ bl FUN_0200AB70
+ add r0, r4, #0x0
+ bl FUN_0200A8B8
+ pop {r3-r7, pc}
+ nop
+_0200ACA0: .word 0x0000016A
+
+ thumb_func_start FUN_0200ACA4
+FUN_0200ACA4: ; 0x0200ACA4
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ add r0, r2, #0x0
+ mov r1, #0x5
+ mov r2, #0x0
+ bl FUN_020672BC
+ add r2, r0, #0x0
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_0200ACC0
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_0200ACC0
+FUN_0200ACC0: ; 0x0200ACC0
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ add r6, r2, #0x0
+ add r4, r1, #0x0
+ ldr r2, _0200ACF4 ; =0x0000016B
+ ldr r3, [r5, #0x4]
+ mov r0, #0x1
+ mov r1, #0x1a
+ bl FUN_0200A86C
+ ldr r2, [r5, #0xc]
+ add r1, r6, #0x0
+ add r7, r0, #0x0
+ bl FUN_0200A8E0
+ ldr r2, [r5, #0xc]
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ mov r3, #0x0
+ bl FUN_0200AB70
+ add r0, r7, #0x0
+ bl FUN_0200A8B8
+ pop {r3-r7, pc}
+ nop
+_0200ACF4: .word 0x0000016B
+
+ thumb_func_start FUN_0200ACF8
+FUN_0200ACF8: ; 0x0200ACF8
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r0, r2, #0x0
+ add r4, r1, #0x0
+ ldr r2, [r5, #0xc]
+ mov r1, #0x76
+ bl FUN_020672BC
+ ldr r2, [r5, #0xc]
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ mov r3, #0x0
+ bl FUN_0200AB70
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_0200AD18
+FUN_0200AD18: ; 0x0200AD18
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r0, r2, #0x0
+ add r4, r1, #0x0
+ ldr r2, [r5, #0xc]
+ mov r1, #0x90
+ bl FUN_020672BC
+ ldr r2, [r5, #0xc]
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ mov r3, #0x0
+ bl FUN_0200AB70
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_0200AD38
+FUN_0200AD38: ; 0x0200AD38
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ ldr r0, [sp, #0x14]
+ add r4, r1, #0x0
+ str r0, [sp, #0x0]
+ add r1, r2, #0x0
+ add r2, r3, #0x0
+ ldr r0, [r5, #0xc]
+ ldr r3, [sp, #0x10]
+ bl FUN_02021B04
+ ldr r2, [r5, #0xc]
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ mov r3, #0x0
+ bl FUN_0200AB70
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_0200AD5C
+FUN_0200AD5C: ; 0x0200AD5C
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ add r6, r2, #0x0
+ mov r2, #0x93
+ add r4, r1, #0x0
+ ldr r3, [r5, #0x4]
+ mov r0, #0x1
+ mov r1, #0x1a
+ lsl r2, r2, #0x2
+ bl FUN_0200A86C
+ add r7, r0, #0x0
+ beq _0200AD90
+ ldr r2, [r5, #0xc]
+ add r1, r6, #0x0
+ bl FUN_0200A8E0
+ ldr r2, [r5, #0xc]
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ mov r3, #0x0
+ bl FUN_0200AB70
+ add r0, r7, #0x0
+ bl FUN_0200A8B8
+_0200AD90:
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_0200AD94
+FUN_0200AD94: ; 0x0200AD94
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ add r6, r2, #0x0
+ mov r2, #0x79
+ add r4, r1, #0x0
+ ldr r3, [r5, #0x4]
+ mov r0, #0x1
+ mov r1, #0x1a
+ lsl r2, r2, #0x2
+ bl FUN_0200A86C
+ add r7, r0, #0x0
+ beq _0200ADC8
+ ldr r2, [r5, #0xc]
+ add r1, r6, #0x0
+ bl FUN_0200A8E0
+ ldr r2, [r5, #0xc]
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ mov r3, #0x0
+ bl FUN_0200AB70
+ add r0, r7, #0x0
+ bl FUN_0200A8B8
+_0200ADC8:
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_0200ADCC
+FUN_0200ADCC: ; 0x0200ADCC
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ add r6, r2, #0x0
+ mov r2, #0x8a
+ add r4, r1, #0x0
+ ldr r3, [r5, #0x4]
+ mov r0, #0x1
+ mov r1, #0x1a
+ lsl r2, r2, #0x2
+ bl FUN_0200A86C
+ add r7, r0, #0x0
+ beq _0200AE00
+ ldr r2, [r5, #0xc]
+ add r1, r6, #0x0
+ bl FUN_0200A8E0
+ ldr r2, [r5, #0xc]
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ mov r3, #0x0
+ bl FUN_0200AB70
+ add r0, r7, #0x0
+ bl FUN_0200A8B8
+_0200AE00:
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_0200AE04
+FUN_0200AE04: ; 0x0200AE04
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ ldr r3, [r5, #0x4]
+ add r4, r1, #0x0
+ add r6, r2, #0x0
+ mov r0, #0x1
+ mov r1, #0x1a
+ mov r2, #0xbe
+ bl FUN_0200A86C
+ ldr r2, [r5, #0xc]
+ add r1, r6, #0x0
+ add r7, r0, #0x0
+ bl FUN_0200A8E0
+ ldr r2, [r5, #0xc]
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ mov r3, #0x0
+ bl FUN_0200AB70
+ add r0, r7, #0x0
+ bl FUN_0200A8B8
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_0200AE38
+FUN_0200AE38: ; 0x0200AE38
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ add r6, r2, #0x0
+ mov r2, #0x56
+ add r4, r1, #0x0
+ ldr r3, [r5, #0x4]
+ mov r0, #0x1
+ mov r1, #0x1a
+ lsl r2, r2, #0x2
+ bl FUN_0200A86C
+ add r7, r0, #0x0
+ beq _0200AE6C
+ ldr r2, [r5, #0xc]
+ add r1, r6, #0x0
+ bl FUN_0200A8E0
+ ldr r2, [r5, #0xc]
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ mov r3, #0x0
+ bl FUN_0200AB70
+ add r0, r7, #0x0
+ bl FUN_0200A8B8
+_0200AE6C:
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_0200AE70
+FUN_0200AE70: ; 0x0200AE70
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ add r6, r2, #0x0
+ add r4, r1, #0x0
+ ldr r2, _0200AEA4 ; =0x0000015A
+ ldr r3, [r5, #0x4]
+ mov r0, #0x1
+ mov r1, #0x1a
+ bl FUN_0200A86C
+ add r7, r0, #0x0
+ beq _0200AEA2
+ ldr r2, [r5, #0xc]
+ add r1, r6, #0x0
+ bl FUN_0200A8E0
+ ldr r2, [r5, #0xc]
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ mov r3, #0x0
+ bl FUN_0200AB70
+ add r0, r7, #0x0
+ bl FUN_0200A8B8
+_0200AEA2:
+ pop {r3-r7, pc}
+ .balign 4
+_0200AEA4: .word 0x0000015A
+
+ thumb_func_start FUN_0200AEA8
+FUN_0200AEA8: ; 0x0200AEA8
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ add r6, r2, #0x0
+ add r4, r1, #0x0
+ ldr r2, _0200AEDC ; =0x0000015B
+ ldr r3, [r5, #0x4]
+ mov r0, #0x1
+ mov r1, #0x1a
+ bl FUN_0200A86C
+ add r7, r0, #0x0
+ beq _0200AEDA
+ ldr r2, [r5, #0xc]
+ add r1, r6, #0x0
+ bl FUN_0200A8E0
+ ldr r2, [r5, #0xc]
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ mov r3, #0x0
+ bl FUN_0200AB70
+ add r0, r7, #0x0
+ bl FUN_0200A8B8
+_0200AEDA:
+ pop {r3-r7, pc}
+ .balign 4
+_0200AEDC: .word 0x0000015B
+
+ thumb_func_start FUN_0200AEE0
+FUN_0200AEE0: ; 0x0200AEE0
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ add r6, r2, #0x0
+ add r4, r1, #0x0
+ ldr r2, _0200AF14 ; =0x0000015D
+ ldr r3, [r5, #0x4]
+ mov r0, #0x1
+ mov r1, #0x1a
+ bl FUN_0200A86C
+ add r7, r0, #0x0
+ beq _0200AF12
+ ldr r2, [r5, #0xc]
+ add r1, r6, #0x0
+ bl FUN_0200A8E0
+ ldr r2, [r5, #0xc]
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ mov r3, #0x0
+ bl FUN_0200AB70
+ add r0, r7, #0x0
+ bl FUN_0200A8B8
+_0200AF12:
+ pop {r3-r7, pc}
+ .balign 4
+_0200AF14: .word 0x0000015D
+
+ thumb_func_start FUN_0200AF18
+FUN_0200AF18: ; 0x0200AF18
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ add r6, r2, #0x0
+ add r4, r1, #0x0
+ ldr r2, _0200AF4C ; =0x00000235
+ ldr r3, [r5, #0x4]
+ mov r0, #0x1
+ mov r1, #0x1a
+ bl FUN_0200A86C
+ add r7, r0, #0x0
+ beq _0200AF4A
+ ldr r2, [r5, #0xc]
+ add r1, r6, #0x0
+ bl FUN_0200A8E0
+ ldr r2, [r5, #0xc]
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ mov r3, #0x0
+ bl FUN_0200AB70
+ add r0, r7, #0x0
+ bl FUN_0200A8B8
+_0200AF4A:
+ pop {r3-r7, pc}
+ .balign 4
+_0200AF4C: .word 0x00000235
+
+ thumb_func_start FUN_0200AF50
+FUN_0200AF50: ; 0x0200AF50
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ add r6, r2, #0x0
+ add r4, r1, #0x0
+ ldr r2, _0200AF84 ; =0x000001EF
+ ldr r3, [r5, #0x4]
+ mov r0, #0x1
+ mov r1, #0x1a
+ bl FUN_0200A86C
+ add r7, r0, #0x0
+ beq _0200AF82
+ ldr r2, [r5, #0xc]
+ add r1, r6, #0x0
+ bl FUN_0200A8E0
+ ldr r2, [r5, #0xc]
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ mov r3, #0x0
+ bl FUN_0200AB70
+ add r0, r7, #0x0
+ bl FUN_0200A8B8
+_0200AF82:
+ pop {r3-r7, pc}
+ .balign 4
+_0200AF84: .word 0x000001EF
+
+ thumb_func_start FUN_0200AF88
+FUN_0200AF88: ; 0x0200AF88
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ ldr r3, [r5, #0x4]
+ add r4, r1, #0x0
+ add r6, r2, #0x0
+ mov r0, #0x1
+ mov r1, #0x1a
+ mov r2, #0xcd
+ bl FUN_0200A86C
+ add r7, r0, #0x0
+ beq _0200AFBA
+ ldr r2, [r5, #0xc]
+ add r1, r6, #0x0
+ bl FUN_0200A8E0
+ ldr r2, [r5, #0xc]
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ mov r3, #0x0
+ bl FUN_0200AB70
+ add r0, r7, #0x0
+ bl FUN_0200A8B8
+_0200AFBA:
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_0200AFBC
+FUN_0200AFBC: ; 0x0200AFBC
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ add r6, r2, #0x0
+ mov r2, #0x89
+ add r4, r1, #0x0
+ ldr r3, [r5, #0x4]
+ mov r0, #0x1
+ mov r1, #0x1a
+ lsl r2, r2, #0x2
+ bl FUN_0200A86C
+ add r7, r0, #0x0
+ beq _0200AFF0
+ ldr r2, [r5, #0xc]
+ add r1, r6, #0x0
+ bl FUN_0200A8E0
+ ldr r2, [r5, #0xc]
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ mov r3, #0x0
+ bl FUN_0200AB70
+ add r0, r7, #0x0
+ bl FUN_0200A8B8
+_0200AFF0:
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_0200AFF4
+FUN_0200AFF4: ; 0x0200AFF4
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ add r6, r2, #0x0
+ add r4, r1, #0x0
+ ldr r2, _0200B028 ; =0x0000017E
+ ldr r3, [r5, #0x4]
+ mov r0, #0x1
+ mov r1, #0x1a
+ bl FUN_0200A86C
+ add r7, r0, #0x0
+ beq _0200B026
+ ldr r2, [r5, #0xc]
+ add r1, r6, #0x0
+ bl FUN_0200A8E0
+ ldr r2, [r5, #0xc]
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ mov r3, #0x0
+ bl FUN_0200AB70
+ add r0, r7, #0x0
+ bl FUN_0200A8B8
+_0200B026:
+ pop {r3-r7, pc}
+ .balign 4
+_0200B028: .word 0x0000017E
+
+ thumb_func_start FUN_0200B02C
+FUN_0200B02C: ; 0x0200B02C
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ add r6, r2, #0x0
+ add r4, r1, #0x0
+ ldr r2, _0200B060 ; =0x00000196
+ ldr r3, [r5, #0x4]
+ mov r0, #0x1
+ mov r1, #0x1a
+ bl FUN_0200A86C
+ add r7, r0, #0x0
+ beq _0200B05E
+ ldr r2, [r5, #0xc]
+ add r1, r6, #0x0
+ bl FUN_0200A8E0
+ ldr r2, [r5, #0xc]
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ mov r3, #0x0
+ bl FUN_0200AB70
+ add r0, r7, #0x0
+ bl FUN_0200A8B8
+_0200B05E:
+ pop {r3-r7, pc}
+ .balign 4
+_0200B060: .word 0x00000196
+
+ thumb_func_start FUN_0200B064
+FUN_0200B064: ; 0x0200B064
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ add r6, r2, #0x0
+ mov r2, #0x23
+ add r4, r1, #0x0
+ ldr r3, [r5, #0x4]
+ mov r0, #0x1
+ mov r1, #0x1a
+ lsl r2, r2, #0x4
+ bl FUN_0200A86C
+ add r7, r0, #0x0
+ beq _0200B098
+ ldr r2, [r5, #0xc]
+ add r1, r6, #0x0
+ bl FUN_0200A8E0
+ ldr r2, [r5, #0xc]
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ mov r3, #0x0
+ bl FUN_0200AB70
+ add r0, r7, #0x0
+ bl FUN_0200A8B8
+_0200B098:
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_0200B09C
+FUN_0200B09C: ; 0x0200B09C
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ add r6, r2, #0x0
+ add r4, r1, #0x0
+ ldr r2, _0200B0D0 ; =0x00000231
+ ldr r3, [r5, #0x4]
+ mov r0, #0x1
+ mov r1, #0x1a
+ bl FUN_0200A86C
+ add r7, r0, #0x0
+ beq _0200B0CE
+ ldr r2, [r5, #0xc]
+ add r1, r6, #0x0
+ bl FUN_0200A8E0
+ ldr r2, [r5, #0xc]
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ mov r3, #0x0
+ bl FUN_0200AB70
+ add r0, r7, #0x0
+ bl FUN_0200A8B8
+_0200B0CE:
+ pop {r3-r7, pc}
+ .balign 4
+_0200B0D0: .word 0x00000231
+
+ thumb_func_start FUN_0200B0D4
+FUN_0200B0D4: ; 0x0200B0D4
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ add r4, r2, #0x0
+ mov r2, #0x23
+ add r6, r1, #0x0
+ ldr r3, [r5, #0x4]
+ mov r0, #0x1
+ mov r1, #0x1a
+ lsl r2, r2, #0x4
+ bl FUN_0200A86C
+ add r7, r0, #0x0
+ beq _0200B108
+ ldrb r1, [r4, #0x1]
+ ldr r2, [r5, #0xc]
+ bl FUN_0200A8E0
+ ldr r2, [r5, #0xc]
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ mov r3, #0x0
+ bl FUN_0200AB70
+ add r0, r7, #0x0
+ bl FUN_0200A8B8
+_0200B108:
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_0200B10C
+FUN_0200B10C: ; 0x0200B10C
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ add r6, r2, #0x0
+ add r4, r1, #0x0
+ ldr r2, _0200B140 ; =0x0000022F
+ ldr r3, [r5, #0x4]
+ mov r0, #0x1
+ mov r1, #0x1a
+ bl FUN_0200A86C
+ add r7, r0, #0x0
+ beq _0200B13E
+ ldr r2, [r5, #0xc]
+ add r1, r6, #0x0
+ bl FUN_0200A8E0
+ ldr r2, [r5, #0xc]
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ mov r3, #0x0
+ bl FUN_0200AB70
+ add r0, r7, #0x0
+ bl FUN_0200A8B8
+_0200B13E:
+ pop {r3-r7, pc}
+ .balign 4
+_0200B140: .word 0x0000022F
+
+ thumb_func_start FUN_0200B144
+FUN_0200B144: ; 0x0200B144
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ ldr r0, [r5, #0xc]
+ add r2, #0x14
+ add r4, r1, #0x0
+ add r1, r2, #0x0
+ bl FUN_02021E28
+ ldr r2, [r5, #0xc]
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ mov r3, #0x0
+ bl FUN_0200AB70
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_0200B164
+FUN_0200B164: ; 0x0200B164
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ add r6, r2, #0x0
+ add r4, r1, #0x0
+ ldr r2, _0200B198 ; =0x00000239
+ ldr r3, [r5, #0x4]
+ mov r0, #0x1
+ mov r1, #0x1a
+ bl FUN_0200A86C
+ add r7, r0, #0x0
+ beq _0200B196
+ ldr r2, [r5, #0xc]
+ add r1, r6, #0x0
+ bl FUN_0200A8E0
+ ldr r2, [r5, #0xc]
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ mov r3, #0x0
+ bl FUN_0200AB70
+ add r0, r7, #0x0
+ bl FUN_0200A8B8
+_0200B196:
+ pop {r3-r7, pc}
+ .balign 4
+_0200B198: .word 0x00000239
+
+ thumb_func_start FUN_0200B19C
+FUN_0200B19C: ; 0x0200B19C
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ add r6, r2, #0x0
+ add r4, r1, #0x0
+ ldr r2, _0200B1D0 ; =0x0000023A
+ ldr r3, [r5, #0x4]
+ mov r0, #0x1
+ mov r1, #0x1a
+ bl FUN_0200A86C
+ add r7, r0, #0x0
+ beq _0200B1CE
+ ldr r2, [r5, #0xc]
+ add r1, r6, #0x0
+ bl FUN_0200A8E0
+ ldr r2, [r5, #0xc]
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ mov r3, #0x0
+ bl FUN_0200AB70
+ add r0, r7, #0x0
+ bl FUN_0200A8B8
+_0200B1CE:
+ pop {r3-r7, pc}
+ .balign 4
+_0200B1D0: .word 0x0000023A
+
+ thumb_func_start FUN_0200B1D4
+FUN_0200B1D4: ; 0x0200B1D4
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ add r6, r2, #0x0
+ add r4, r1, #0x0
+ ldr r2, _0200B208 ; =0x0000023B
+ ldr r3, [r5, #0x4]
+ mov r0, #0x1
+ mov r1, #0x1a
+ bl FUN_0200A86C
+ add r7, r0, #0x0
+ beq _0200B206
+ ldr r2, [r5, #0xc]
+ add r1, r6, #0x0
+ bl FUN_0200A8E0
+ ldr r2, [r5, #0xc]
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ mov r3, #0x0
+ bl FUN_0200AB70
+ add r0, r7, #0x0
+ bl FUN_0200A8B8
+_0200B206:
+ pop {r3-r7, pc}
+ .balign 4
+_0200B208: .word 0x0000023B
+
+ thumb_func_start FUN_0200B20C
+FUN_0200B20C: ; 0x0200B20C
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ add r6, r2, #0x0
+ mov r2, #0x8f
+ add r4, r1, #0x0
+ ldr r3, [r5, #0x4]
+ mov r0, #0x1
+ mov r1, #0x1a
+ lsl r2, r2, #0x2
+ bl FUN_0200A86C
+ add r7, r0, #0x0
+ beq _0200B240
+ ldr r2, [r5, #0xc]
+ add r1, r6, #0x0
+ bl FUN_0200A8E0
+ ldr r2, [r5, #0xc]
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ mov r3, #0x0
+ bl FUN_0200AB70
+ add r0, r7, #0x0
+ bl FUN_0200A8B8
+_0200B240:
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_0200B244
+FUN_0200B244: ; 0x0200B244
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ ldr r3, [r5, #0x4]
+ add r4, r1, #0x0
+ add r6, r2, #0x0
+ mov r0, #0x1
+ mov r1, #0x1a
+ mov r2, #0xc2
+ bl FUN_0200A86C
+ add r7, r0, #0x0
+ beq _0200B276
+ ldr r2, [r5, #0xc]
+ add r1, r6, #0x0
+ bl FUN_0200A8E0
+ ldr r2, [r5, #0xc]
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ mov r3, #0x0
+ bl FUN_0200AB70
+ add r0, r7, #0x0
+ bl FUN_0200A8B8
+_0200B276:
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_0200B278
+FUN_0200B278: ; 0x0200B278
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ ldr r3, [r5, #0x4]
+ add r4, r1, #0x0
+ add r6, r2, #0x0
+ mov r0, #0x1
+ mov r1, #0x1a
+ mov r2, #0xbf
+ bl FUN_0200A86C
+ add r7, r0, #0x0
+ beq _0200B2AA
+ ldr r2, [r5, #0xc]
+ add r1, r6, #0x0
+ bl FUN_0200A8E0
+ ldr r2, [r5, #0xc]
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ mov r3, #0x0
+ bl FUN_0200AB70
+ add r0, r7, #0x0
+ bl FUN_0200A8B8
+_0200B2AA:
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_0200B2AC
+FUN_0200B2AC: ; 0x0200B2AC
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ ldr r3, [r5, #0x4]
+ add r4, r1, #0x0
+ add r6, r2, #0x0
+ mov r0, #0x1
+ mov r1, #0x1a
+ mov r2, #0xbf
+ bl FUN_0200A86C
+ add r7, r0, #0x0
+ beq _0200B2DE
+ ldr r2, [r5, #0xc]
+ add r1, r6, #0x0
+ bl FUN_0200A8E0
+ ldr r2, [r5, #0xc]
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ mov r3, #0x0
+ bl FUN_0200AB70
+ add r0, r7, #0x0
+ bl FUN_0200A8B8
+_0200B2DE:
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_0200B2E0
+FUN_0200B2E0: ; 0x0200B2E0
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ add r6, r2, #0x0
+ add r4, r1, #0x0
+ ldr r2, _0200B314 ; =0x0000023E
+ ldr r3, [r5, #0x4]
+ mov r0, #0x1
+ mov r1, #0x1a
+ bl FUN_0200A86C
+ add r7, r0, #0x0
+ beq _0200B312
+ ldr r2, [r5, #0xc]
+ add r1, r6, #0x0
+ bl FUN_0200A8E0
+ ldr r2, [r5, #0xc]
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ mov r3, #0x0
+ bl FUN_0200AB70
+ add r0, r7, #0x0
+ bl FUN_0200A8B8
+_0200B312:
+ pop {r3-r7, pc}
+ .balign 4
+_0200B314: .word 0x0000023E
+
+ thumb_func_start FUN_0200B318
+FUN_0200B318: ; 0x0200B318
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ add r6, r2, #0x0
+ add r4, r1, #0x0
+ ldr r2, _0200B34C ; =0x0000023D
+ ldr r3, [r5, #0x4]
+ mov r0, #0x1
+ mov r1, #0x1a
+ bl FUN_0200A86C
+ add r7, r0, #0x0
+ beq _0200B34A
+ ldr r2, [r5, #0xc]
+ add r1, r6, #0x0
+ bl FUN_0200A8E0
+ ldr r2, [r5, #0xc]
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ mov r3, #0x0
+ bl FUN_0200AB70
+ add r0, r7, #0x0
+ bl FUN_0200A8B8
+_0200B34A:
+ pop {r3-r7, pc}
+ .balign 4
+_0200B34C: .word 0x0000023D
+
+ thumb_func_start FUN_0200B350
+FUN_0200B350: ; 0x0200B350
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ add r6, r2, #0x0
+ add r4, r1, #0x0
+ ldr r2, _0200B384 ; =0x00000237
+ ldr r3, [r5, #0x4]
+ mov r0, #0x1
+ mov r1, #0x1a
+ bl FUN_0200A86C
+ add r7, r0, #0x0
+ beq _0200B382
+ ldr r2, [r5, #0xc]
+ add r1, r6, #0x0
+ bl FUN_0200A8E0
+ ldr r2, [r5, #0xc]
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ mov r3, #0x0
+ bl FUN_0200AB70
+ add r0, r7, #0x0
+ bl FUN_0200A8B8
+_0200B382:
+ pop {r3-r7, pc}
+ .balign 4
+_0200B384: .word 0x00000237
+
+ thumb_func_start FUN_0200B388
+FUN_0200B388: ; 0x0200B388
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ add r6, r2, #0x0
+ mov r2, #0x8e
+ add r4, r1, #0x0
+ ldr r3, [r5, #0x4]
+ mov r0, #0x1
+ mov r1, #0x1a
+ lsl r2, r2, #0x2
+ bl FUN_0200A86C
+ add r7, r0, #0x0
+ beq _0200B3BC
+ ldr r2, [r5, #0xc]
+ add r1, r6, #0x0
+ bl FUN_0200A8E0
+ ldr r2, [r5, #0xc]
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ mov r3, #0x0
+ bl FUN_0200AB70
+ add r0, r7, #0x0
+ bl FUN_0200A8B8
+_0200B3BC:
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_0200B3C0
+FUN_0200B3C0: ; 0x0200B3C0
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ ldr r3, [r5, #0x4]
+ add r6, r1, #0x0
+ add r4, r2, #0x0
+ mov r0, #0x1
+ mov r1, #0x1a
+ mov r2, #0xc7
+ bl FUN_0200A86C
+ add r7, r0, #0x0
+ cmp r4, #0x0
+ beq _0200B3E0
+ cmp r4, #0x1
+ beq _0200B3EA
+ b _0200B3F4
+_0200B3E0:
+ ldr r2, [r5, #0xc]
+ mov r1, #0x44
+ bl FUN_0200A8E0
+ b _0200B3FA
+_0200B3EA:
+ ldr r2, [r5, #0xc]
+ mov r1, #0x45
+ bl FUN_0200A8E0
+ b _0200B3FA
+_0200B3F4:
+ ldr r0, [r5, #0xc]
+ bl FUN_02021A4C
+_0200B3FA:
+ ldr r2, [r5, #0xc]
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ mov r3, #0x0
+ bl FUN_0200AB70
+ add r0, r7, #0x0
+ bl FUN_0200A8B8
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_0200B410
+FUN_0200B410: ; 0x0200B410
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r0, r2, #0x0
+ add r4, r1, #0x0
+ ldr r2, [r5, #0xc]
+ add r1, r3, #0x0
+ bl FUN_0206B484
+ ldr r2, [r5, #0xc]
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ mov r3, #0x0
+ bl FUN_0200AB70
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_0200B430
+FUN_0200B430: ; 0x0200B430
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ add r6, r2, #0x0
+ add r4, r1, #0x0
+ ldr r2, _0200B464 ; =0x0000014B
+ ldr r3, [r5, #0x4]
+ mov r0, #0x1
+ mov r1, #0x1a
+ bl FUN_0200A86C
+ add r7, r0, #0x0
+ beq _0200B462
+ ldr r2, [r5, #0xc]
+ add r1, r6, #0x0
+ bl FUN_0200A8E0
+ ldr r2, [r5, #0xc]
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ mov r3, #0x0
+ bl FUN_0200AB70
+ add r0, r7, #0x0
+ bl FUN_0200A8B8
+_0200B462:
+ pop {r3-r7, pc}
+ .balign 4
+_0200B464: .word 0x0000014B
+
+ thumb_func_start FUN_0200B468
+FUN_0200B468: ; 0x0200B468
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ add r6, r2, #0x0
+ add r4, r1, #0x0
+ ldr r2, _0200B49C ; =0x00000226
+ ldr r3, [r5, #0x4]
+ mov r0, #0x1
+ mov r1, #0x1a
+ bl FUN_0200A86C
+ add r7, r0, #0x0
+ beq _0200B49A
+ ldr r2, [r5, #0xc]
+ add r1, r6, #0x0
+ bl FUN_0200A8E0
+ ldr r2, [r5, #0xc]
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ mov r3, #0x0
+ bl FUN_0200AB70
+ add r0, r7, #0x0
+ bl FUN_0200A8B8
+_0200B49A:
+ pop {r3-r7, pc}
+ .balign 4
+_0200B49C: .word 0x00000226
+
+ thumb_func_start FUN_0200B4A0
+FUN_0200B4A0: ; 0x0200B4A0
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ add r6, r2, #0x0
+ mov r2, #0x99
+ add r4, r1, #0x0
+ ldr r3, [r5, #0x4]
+ mov r0, #0x1
+ mov r1, #0x1a
+ lsl r2, r2, #0x2
+ bl FUN_0200A86C
+ add r7, r0, #0x0
+ beq _0200B4D4
+ ldr r2, [r5, #0xc]
+ add r1, r6, #0x0
+ bl FUN_0200A8E0
+ ldr r2, [r5, #0xc]
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ mov r3, #0x0
+ bl FUN_0200AB70
+ add r0, r7, #0x0
+ bl FUN_0200A8B8
+_0200B4D4:
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_0200B4D8
+FUN_0200B4D8: ; 0x0200B4D8
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ add r0, r2, #0x0
+ add r6, r1, #0x0
+ add r4, r3, #0x0
+ bl FUN_02088D40
+ add r2, r0, #0x0
+ beq _0200B516
+ cmp r4, #0x0
+ beq _0200B516
+ ldr r3, [r5, #0x4]
+ mov r0, #0x1
+ mov r1, #0x1a
+ bl FUN_0200A86C
+ add r7, r0, #0x0
+ beq _0200B516
+ ldr r2, [r5, #0xc]
+ add r1, r4, #0x0
+ bl FUN_0200A8E0
+ ldr r2, [r5, #0xc]
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ mov r3, #0x0
+ bl FUN_0200AB70
+ add r0, r7, #0x0
+ bl FUN_0200A8B8
+_0200B516:
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_0200B518
+FUN_0200B518: ; 0x0200B518
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ ldr r1, [r5, #0xc]
+ add r0, r2, #0x0
+ bl FUN_02013A58
+ ldr r2, [r5, #0xc]
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ mov r3, #0x0
+ bl FUN_0200AB70
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_0200B534
+FUN_0200B534: ; 0x0200B534
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ ldr r3, [r5, #0x4]
+ add r4, r1, #0x0
+ add r6, r2, #0x0
+ mov r0, #0x1
+ mov r1, #0x1a
+ mov r2, #0xa
+ bl FUN_0200A86C
+ add r7, r0, #0x0
+ beq _0200B566
+ ldr r2, [r5, #0xc]
+ add r1, r6, #0x0
+ bl FUN_0200A8E0
+ ldr r2, [r5, #0xc]
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ mov r3, #0x0
+ bl FUN_0200AB70
+ add r0, r7, #0x0
+ bl FUN_0200A8B8
+_0200B566:
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_0200B568
+FUN_0200B568: ; 0x0200B568
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ ldr r3, [r5, #0x4]
+ add r4, r1, #0x0
+ add r6, r2, #0x0
+ mov r0, #0x1
+ mov r1, #0x1a
+ mov r2, #0xb
+ bl FUN_0200A86C
+ add r7, r0, #0x0
+ beq _0200B59A
+ ldr r2, [r5, #0xc]
+ add r1, r6, #0x0
+ bl FUN_0200A8E0
+ ldr r2, [r5, #0xc]
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ mov r3, #0x0
+ bl FUN_0200AB70
+ add r0, r7, #0x0
+ bl FUN_0200A8B8
+_0200B59A:
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_0200B59C
+FUN_0200B59C: ; 0x0200B59C
+ push {r3-r7, lr}
+ add r4, r2, #0x0
+ add r5, r0, #0x0
+ add r0, r4, #0x0
+ add r7, r1, #0x0
+ bl FUN_02015CC0
+ add r6, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_02015CE0
+ add r4, r0, #0x0
+ ldr r2, _0200B620 ; =0x020ECE64
+ lsl r3, r6, #0x1
+ ldrh r2, [r2, r3]
+ ldr r3, [r5, #0x4]
+ mov r0, #0x1
+ mov r1, #0x1a
+ bl FUN_0200A86C
+ add r6, r0, #0x0
+ beq _0200B61E
+ bl FUN_0200A940
+ cmp r4, r0
+ bhs _0200B5EE
+ ldr r2, [r5, #0xc]
+ add r0, r6, #0x0
+ add r1, r4, #0x0
+ bl FUN_0200A8E0
+ ldr r2, [r5, #0xc]
+ add r0, r5, #0x0
+ add r1, r7, #0x0
+ mov r3, #0x0
+ bl FUN_0200AB70
+ add r0, r6, #0x0
+ bl FUN_0200A8B8
+ pop {r3-r7, pc}
+_0200B5EE:
+ add r0, r6, #0x0
+ bl FUN_0200A8B8
+ ldr r2, _0200B624 ; =0x0000017E
+ ldr r3, [r5, #0x4]
+ mov r0, #0x1
+ mov r1, #0x1a
+ bl FUN_0200A86C
+ add r4, r0, #0x0
+ beq _0200B61E
+ ldr r2, [r5, #0xc]
+ mov r1, #0x0
+ bl FUN_0200A8E0
+ ldr r2, [r5, #0xc]
+ add r0, r5, #0x0
+ add r1, r7, #0x0
+ mov r3, #0x0
+ bl FUN_0200AB70
+ add r0, r4, #0x0
+ bl FUN_0200A8B8
+_0200B61E:
+ pop {r3-r7, pc}
+ .balign 4
+_0200B620: .word 0x020ECE64
+_0200B624: .word 0x0000017E
+
+ thumb_func_start FUN_0200B628
+FUN_0200B628: ; 0x0200B628
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ add r6, r2, #0x0
+ add r4, r1, #0x0
+ ldr r2, _0200B65C ; =0x0000019E
+ ldr r3, [r5, #0x4]
+ mov r0, #0x1
+ mov r1, #0x1a
+ bl FUN_0200A86C
+ add r7, r0, #0x0
+ beq _0200B65A
+ ldr r2, [r5, #0xc]
+ add r1, r6, #0x0
+ bl FUN_0200A8E0
+ ldr r2, [r5, #0xc]
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ mov r3, #0x0
+ bl FUN_0200AB70
+ add r0, r7, #0x0
+ bl FUN_0200A8B8
+_0200B65A:
+ pop {r3-r7, pc}
+ .balign 4
+_0200B65C: .word 0x0000019E
+
+ thumb_func_start FUN_0200B660
+FUN_0200B660: ; 0x0200B660
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ add r6, r2, #0x0
+ add r4, r1, #0x0
+ ldr r2, _0200B694 ; =0x00000152
+ ldr r3, [r5, #0x4]
+ mov r0, #0x1
+ mov r1, #0x1a
+ bl FUN_0200A86C
+ add r7, r0, #0x0
+ beq _0200B692
+ ldr r2, [r5, #0xc]
+ add r1, r6, #0x0
+ bl FUN_0200A8E0
+ ldr r2, [r5, #0xc]
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ mov r3, #0x0
+ bl FUN_0200AB70
+ add r0, r7, #0x0
+ bl FUN_0200A8B8
+_0200B692:
+ pop {r3-r7, pc}
+ .balign 4
+_0200B694: .word 0x00000152
+
+ thumb_func_start FUN_0200B698
+FUN_0200B698: ; 0x0200B698
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ add r6, r2, #0x0
+ add r4, r1, #0x0
+ ldr r2, _0200B6CC ; =0x00000153
+ ldr r3, [r5, #0x4]
+ mov r0, #0x1
+ mov r1, #0x1a
+ bl FUN_0200A86C
+ add r7, r0, #0x0
+ beq _0200B6CA
+ ldr r2, [r5, #0xc]
+ add r1, r6, #0x0
+ bl FUN_0200A8E0
+ ldr r2, [r5, #0xc]
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ mov r3, #0x0
+ bl FUN_0200AB70
+ add r0, r7, #0x0
+ bl FUN_0200A8B8
+_0200B6CA:
+ pop {r3-r7, pc}
+ .balign 4
+_0200B6CC: .word 0x00000153
+
+ thumb_func_start FUN_0200B6D0
+FUN_0200B6D0: ; 0x0200B6D0
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ add r6, r2, #0x0
+ mov r2, #0x55
+ add r4, r1, #0x0
+ ldr r3, [r5, #0x4]
+ mov r0, #0x1
+ mov r1, #0x1a
+ lsl r2, r2, #0x2
+ bl FUN_0200A86C
+ add r7, r0, #0x0
+ beq _0200B704
+ ldr r2, [r5, #0xc]
+ add r1, r6, #0x0
+ bl FUN_0200A8E0
+ ldr r2, [r5, #0xc]
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ mov r3, #0x0
+ bl FUN_0200AB70
+ add r0, r7, #0x0
+ bl FUN_0200A8B8
+_0200B704:
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_0200B708
+FUN_0200B708: ; 0x0200B708
+ push {r4-r7, lr}
+ sub sp, #0x14
+ str r0, [sp, #0x8]
+ add r5, r2, #0x0
+ add r0, r1, #0x0
+ str r3, [sp, #0xc]
+ bl FUN_0202881C
+ add r6, r0, #0x0
+ add r1, r5, #0x0
+ bl FUN_020287F8
+ str r0, [sp, #0x10]
+ add r0, r6, #0x0
+ add r1, r5, #0x0
+ bl FUN_02028804
+ add r7, r0, #0x0
+ mov r0, #0x40
+ mov r1, #0x4
+ bl FUN_020219F4
+ add r4, r0, #0x0
+ ldr r2, [sp, #0x28]
+ add r0, r6, #0x0
+ add r1, r5, #0x0
+ bl FUN_020287A8
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_02021E28
+ mov r0, #0x1
+ str r0, [sp, #0x0]
+ ldr r0, [sp, #0x8]
+ ldr r1, [sp, #0xc]
+ ldr r3, [sp, #0x10]
+ add r2, r4, #0x0
+ str r7, [sp, #0x4]
+ bl FUN_0200ABB4
+ add r0, r4, #0x0
+ bl FUN_02021A20
+ add sp, #0x14
+ pop {r4-r7, pc}
+
+ thumb_func_start FUN_0200B764
+FUN_0200B764: ; 0x0200B764
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ add r4, r2, #0x0
+ mov r2, #0x5b
+ add r7, r1, #0x0
+ ldr r3, [r5, #0x4]
+ mov r0, #0x1
+ mov r1, #0x1a
+ lsl r2, r2, #0x2
+ bl FUN_0200A86C
+ add r6, r0, #0x0
+ beq _0200B7A4
+ cmp r4, #0x1
+ blo _0200B786
+ cmp r4, #0xc
+ bls _0200B788
+_0200B786:
+ mov r4, #0x1
+_0200B788:
+ ldr r2, [r5, #0xc]
+ add r0, r6, #0x0
+ sub r1, r4, #0x1
+ bl FUN_0200A8E0
+ ldr r2, [r5, #0xc]
+ add r0, r5, #0x0
+ add r1, r7, #0x0
+ mov r3, #0x0
+ bl FUN_0200AB70
+ add r0, r6, #0x0
+ bl FUN_0200A8B8
+_0200B7A4:
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_0200B7A8
+FUN_0200B7A8: ; 0x0200B7A8
+ ldr r2, [r0, #0x8]
+ lsl r0, r1, #0x3
+ add r0, r2, r0
+ ldr r3, _0200B7B4 ; =FUN_02021FF8
+ ldr r0, [r0, #0x4]
+ bx r3
+ .balign 4
+_0200B7B4: .word FUN_02021FF8
+
+ thumb_func_start FUN_0200B7B8
+FUN_0200B7B8: ; 0x0200B7B8
+ push {r3-r7, lr}
+ add r7, r0, #0x0
+ add r6, r1, #0x0
+ add r0, r2, #0x0
+ bl FUN_02021F2C
+ add r5, r0, #0x0
+ add r0, r6, #0x0
+ bl FUN_02021A4C
+ ldrh r1, [r5, #0x0]
+ ldr r0, _0200B844 ; =0x0000FFFF
+ cmp r1, r0
+ beq _0200B840
+_0200B7D4:
+ ldr r0, _0200B848 ; =0x0000FFFE
+ cmp r1, r0
+ bne _0200B82E
+ add r0, r5, #0x0
+ bl FUN_0201B8F8
+ cmp r0, #0x0
+ beq _0200B810
+ add r0, r5, #0x0
+ mov r1, #0x0
+ bl FUN_0201B914
+ add r4, r0, #0x0
+ ldr r0, [r7, #0x0]
+ cmp r4, r0
+ blo _0200B7F8
+ bl ErrorHandling
+_0200B7F8:
+ ldr r2, [r7, #0x8]
+ lsl r1, r4, #0x3
+ add r1, r2, r1
+ ldr r1, [r1, #0x4]
+ add r0, r6, #0x0
+ bl FUN_02022048
+ add r0, r5, #0x0
+ bl FUN_0201B8B8
+ add r5, r0, #0x0
+ b _0200B838
+_0200B810:
+ add r0, r5, #0x0
+ add r4, r5, #0x0
+ bl FUN_0201B8B8
+ add r5, r0, #0x0
+ cmp r4, r5
+ bhs _0200B838
+_0200B81E:
+ ldrh r1, [r4, #0x0]
+ add r0, r6, #0x0
+ add r4, r4, #0x2
+ bl FUN_02021FB0
+ cmp r4, r5
+ blo _0200B81E
+ b _0200B838
+_0200B82E:
+ ldrh r1, [r5, #0x0]
+ add r0, r6, #0x0
+ add r5, r5, #0x2
+ bl FUN_02021FB0
+_0200B838:
+ ldrh r1, [r5, #0x0]
+ ldr r0, _0200B844 ; =0x0000FFFF
+ cmp r1, r0
+ bne _0200B7D4
+_0200B840:
+ pop {r3-r7, pc}
+ nop
+_0200B844: .word 0x0000FFFF
+_0200B848: .word 0x0000FFFE
+
+ thumb_func_start FUN_0200B84C
+FUN_0200B84C: ; 0x0200B84C
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ ldr r0, [r5, #0x0]
+ mov r6, #0x0
+ cmp r0, #0x0
+ bls _0200B86E
+ add r4, r6, #0x0
+_0200B85A:
+ ldr r0, [r5, #0x8]
+ add r0, r0, r4
+ ldr r0, [r0, #0x4]
+ bl FUN_02021A4C
+ ldr r0, [r5, #0x0]
+ add r6, r6, #0x1
+ add r4, #0x8
+ cmp r6, r0
+ blo _0200B85A
+_0200B86E:
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_0200B870
+FUN_0200B870: ; 0x0200B870
+ push {r4-r7, lr}
+ sub sp, #0x2c
+ add r4, r3, #0x0
+ add r5, r0, #0x0
+ add r6, r1, #0x0
+ add r0, r4, #0x0
+ mov r1, #0x2c
+ str r2, [sp, #0x4]
+ bl FUN_02016998
+ str r0, [sp, #0x8]
+ cmp r0, #0x0
+ beq _0200B98A
+ ldr r3, [sp, #0x8]
+ mov r0, #0xe
+ mov r1, #0x4
+ mov r2, #0x1
+ add r3, r3, #0x4
+ str r4, [sp, #0x0]
+ bl FUN_02006BB0
+ ldr r1, [sp, #0x8]
+ mov r3, #0x0
+ str r0, [r1, #0x0]
+ add r0, r1, #0x0
+ ldr r0, [r0, #0x4]
+ ldr r4, [r0, #0x14]
+ ldr r0, [r0, #0x10]
+ cmp r0, #0x0
+ bls _0200B984
+ ldr r0, [sp, #0x4]
+ ldr r1, [sp, #0x4]
+ lsl r0, r0, #0x4
+ orr r1, r0
+ str r1, [sp, #0xc]
+ add r1, r0, #0x0
+ orr r1, r5
+ str r1, [sp, #0x10]
+ orr r0, r6
+ str r0, [sp, #0x14]
+ ldr r1, [sp, #0x4]
+ lsl r0, r5, #0x4
+ orr r1, r0
+ str r1, [sp, #0x18]
+ add r1, r5, #0x0
+ orr r1, r0
+ str r1, [sp, #0x1c]
+ orr r0, r6
+ lsl r2, r6, #0x4
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x20]
+ ldr r0, [sp, #0x1c]
+ ldr r1, [sp, #0x4]
+ add r7, r2, #0x0
+ orr r7, r1
+ add r1, r2, #0x0
+ orr r1, r5
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ orr r2, r6
+ str r1, [sp, #0x28]
+ lsl r1, r7, #0x18
+ lsl r0, r0, #0x18
+ lsr r7, r0, #0x18
+ ldr r0, [sp, #0x18]
+ lsl r2, r2, #0x18
+ lsr r2, r2, #0x18
+ lsr r1, r1, #0x18
+ lsl r0, r0, #0x18
+ mov r12, r2
+ str r1, [sp, #0x24]
+ lsr r6, r0, #0x18
+ ldr r0, [sp, #0x14]
+ ldr r1, [sp, #0x10]
+ ldr r2, [sp, #0xc]
+ lsl r0, r0, #0x18
+ lsl r1, r1, #0x18
+ lsl r2, r2, #0x18
+ lsr r0, r0, #0x18
+ lsr r1, r1, #0x18
+ lsr r2, r2, #0x18
+_0200B914:
+ ldrb r5, [r4, r3]
+ cmp r5, #0x12
+ bgt _0200B93C
+ bge _0200B962
+ cmp r5, #0x10
+ bgt _0200B936
+ bge _0200B95A
+ cmp r5, #0x2
+ bgt _0200B978
+ cmp r5, #0x0
+ blt _0200B978
+ beq _0200B94E
+ cmp r5, #0x1
+ beq _0200B952
+ cmp r5, #0x2
+ beq _0200B956
+ b _0200B978
+_0200B936:
+ cmp r5, #0x11
+ beq _0200B95E
+ b _0200B978
+_0200B93C:
+ cmp r5, #0x21
+ bgt _0200B948
+ bge _0200B96E
+ cmp r5, #0x20
+ beq _0200B968
+ b _0200B978
+_0200B948:
+ cmp r5, #0x22
+ beq _0200B974
+ b _0200B978
+_0200B94E:
+ strb r2, [r4, r3]
+ b _0200B978
+_0200B952:
+ strb r1, [r4, r3]
+ b _0200B978
+_0200B956:
+ strb r0, [r4, r3]
+ b _0200B978
+_0200B95A:
+ strb r6, [r4, r3]
+ b _0200B978
+_0200B95E:
+ strb r7, [r4, r3]
+ b _0200B978
+_0200B962:
+ ldr r5, [sp, #0x20]
+ strb r5, [r4, r3]
+ b _0200B978
+_0200B968:
+ ldr r5, [sp, #0x24]
+ strb r5, [r4, r3]
+ b _0200B978
+_0200B96E:
+ ldr r5, [sp, #0x28]
+ strb r5, [r4, r3]
+ b _0200B978
+_0200B974:
+ mov r5, r12
+ strb r5, [r4, r3]
+_0200B978:
+ ldr r5, [sp, #0x8]
+ add r3, r3, #0x1
+ ldr r5, [r5, #0x4]
+ ldr r5, [r5, #0x10]
+ cmp r3, r5
+ blo _0200B914
+_0200B984:
+ ldr r1, [sp, #0x4]
+ ldr r0, [sp, #0x8]
+ str r1, [r0, #0x28]
+_0200B98A:
+ ldr r0, [sp, #0x8]
+ add sp, #0x2c
+ pop {r4-r7, pc}
+
+ thumb_func_start FUN_0200B990
+FUN_0200B990: ; 0x0200B990
+ push {r4, lr}
+ add r4, r0, #0x0
+ beq _0200B9A6
+ ldr r0, [r4, #0x0]
+ cmp r0, #0x0
+ beq _0200B9A0
+ bl FUN_02016A18
+_0200B9A0:
+ add r0, r4, #0x0
+ bl FUN_02016A18
+_0200B9A6:
+ pop {r4, pc}
+
+ thumb_func_start FUN_0200B9A8
+FUN_0200B9A8: ; 0x0200B9A8
+ push {r3-r5, lr}
+ sub sp, #0x18
+ add r4, r0, #0x0
+ ldr r0, _0200B9E4 ; =0x020ECE6E
+ lsl r5, r1, #0x2
+ ldrh r1, [r0, r5]
+ lsl r3, r3, #0x10
+ mov r0, #0x8
+ str r1, [sp, #0x0]
+ str r0, [sp, #0x4]
+ lsr r3, r3, #0x10
+ str r3, [sp, #0x8]
+ ldr r3, [sp, #0x28]
+ lsl r3, r3, #0x10
+ lsr r3, r3, #0x10
+ str r3, [sp, #0xc]
+ str r1, [sp, #0x10]
+ str r0, [sp, #0x14]
+ ldr r1, [r4, #0x4]
+ add r0, r2, #0x0
+ ldr r2, [r1, #0x14]
+ ldr r1, _0200B9E8 ; =0x020ECE6C
+ ldrh r1, [r1, r5]
+ add r1, r2, r1
+ mov r2, #0x0
+ add r3, r2, #0x0
+ bl FUN_02019658
+ add sp, #0x18
+ pop {r3-r5, pc}
+ .balign 4
+_0200B9E4: .word 0x020ECE6E
+_0200B9E8: .word 0x020ECE6C
+
+ thumb_func_start FUN_0200B9EC
+FUN_0200B9EC: ; 0x0200B9EC
+ push {r3-r7, lr}
+ sub sp, #0x18
+ add r6, r0, #0x0
+ ldr r0, [sp, #0x30]
+ add r4, r2, #0x0
+ str r0, [sp, #0x30]
+ add r0, r6, #0x0
+ add r2, r3, #0x0
+ add r0, #0x8
+ add r3, r4, #0x0
+ ldr r5, [sp, #0x34]
+ ldr r7, [sp, #0x38]
+ bl ConvertUIntToDecimalString
+ ldrh r1, [r6, #0x8]
+ ldr r0, _0200BA74 ; =0x0000FFFF
+ cmp r1, r0
+ beq _0200BA6E
+ lsl r0, r7, #0x10
+ add r4, r6, #0x0
+ lsr r7, r0, #0x10
+_0200BA16:
+ ldrh r2, [r4, #0x8]
+ cmp r2, #0xa2
+ blo _0200BA4A
+ cmp r2, #0xab
+ bhi _0200BA4A
+ mov r0, #0x8
+ str r0, [sp, #0x0]
+ str r0, [sp, #0x4]
+ lsl r0, r5, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #0x8]
+ str r7, [sp, #0xc]
+ mov r0, #0x8
+ str r0, [sp, #0x10]
+ str r0, [sp, #0x14]
+ ldr r1, [r6, #0x4]
+ sub r2, #0xa2
+ ldr r1, [r1, #0x14]
+ lsl r2, r2, #0x5
+ add r1, r1, r2
+ mov r2, #0x0
+ ldr r0, [sp, #0x30]
+ add r3, r2, #0x0
+ bl FUN_02019658
+ b _0200BA62
+_0200BA4A:
+ mov r0, #0x8
+ str r0, [sp, #0x0]
+ str r0, [sp, #0x4]
+ ldr r1, [r6, #0x28]
+ lsl r2, r5, #0x10
+ lsl r1, r1, #0x18
+ ldr r0, [sp, #0x30]
+ lsr r1, r1, #0x18
+ lsr r2, r2, #0x10
+ add r3, r7, #0x0
+ bl FUN_020196F4
+_0200BA62:
+ add r4, r4, #0x2
+ ldrh r1, [r4, #0x8]
+ ldr r0, _0200BA74 ; =0x0000FFFF
+ add r5, #0x8
+ cmp r1, r0
+ bne _0200BA16
+_0200BA6E:
+ add sp, #0x18
+ pop {r3-r7, pc}
+ nop
+_0200BA74: .word 0x0000FFFF
+
+ thumb_func_start FUN_0200BA78
+FUN_0200BA78: ; 0x0200BA78
+ push {r3-r6, lr}
+ sub sp, #0xc
+ add r4, r2, #0x0
+ ldr r2, [sp, #0x2c]
+ add r6, r3, #0x0
+ str r2, [sp, #0x0]
+ ldr r2, [sp, #0x24]
+ ldr r3, [sp, #0x28]
+ add r5, r0, #0x0
+ bl FUN_0200B9A8
+ ldr r0, [sp, #0x24]
+ ldr r3, [sp, #0x20]
+ str r0, [sp, #0x0]
+ ldr r0, [sp, #0x28]
+ add r1, r4, #0x0
+ add r0, #0x10
+ str r0, [sp, #0x4]
+ ldr r0, [sp, #0x2c]
+ add r2, r6, #0x0
+ str r0, [sp, #0x8]
+ add r0, r5, #0x0
+ bl FUN_0200B9EC
+ add sp, #0xc
+ pop {r3-r6, pc}
+
+ thumb_func_start FUN_0200BAAC
+FUN_0200BAAC: ; 0x0200BAAC
+ push {r3-r7, lr}
+ add r7, r0, #0x0
+ add r4, r2, #0x0
+ ldr r2, [r7, #0x28]
+ ldr r6, [sp, #0x18]
+ lsl r0, r2, #0x4
+ orr r0, r2
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x0]
+ add r0, r7, #0x0
+ add r2, r3, #0x0
+ add r0, #0x8
+ add r3, r4, #0x0
+ bl ConvertUIntToDecimalString
+ ldrh r1, [r7, #0x8]
+ ldr r0, _0200BB10 ; =0x0000FFFF
+ cmp r1, r0
+ beq _0200BB0C
+ add r4, r7, #0x0
+ mov r5, #0x0
+_0200BAD8:
+ ldrh r2, [r4, #0x8]
+ cmp r2, #0xa2
+ blo _0200BAF6
+ cmp r2, #0xab
+ bhi _0200BAF6
+ ldr r0, [r7, #0x4]
+ sub r2, #0xa2
+ ldr r1, [r0, #0x14]
+ lsl r0, r2, #0x5
+ add r0, r1, r0
+ add r1, r6, r5
+ mov r2, #0x20
+ blx MIi_CpuCopy32
+ b _0200BB00
+_0200BAF6:
+ ldr r1, [sp, #0x0]
+ add r0, r6, r5
+ mov r2, #0x20
+ blx MI_CpuFill8
+_0200BB00:
+ add r4, r4, #0x2
+ ldrh r1, [r4, #0x8]
+ ldr r0, _0200BB10 ; =0x0000FFFF
+ add r5, #0x20
+ cmp r1, r0
+ bne _0200BAD8
+_0200BB0C:
+ pop {r3-r7, pc}
+ nop
+_0200BB10: .word 0x0000FFFF
+
+ thumb_func_start FUN_0200BB14
+FUN_0200BB14: ; 0x0200BB14
+ push {r4, lr}
+ mov r1, #0x4e
+ lsl r1, r1, #0x2
+ add r4, r0, #0x0
+ bl FUN_02016998
+ cmp r0, #0x0
+ bne _0200BB28
+ mov r0, #0x0
+ pop {r4, pc}
+_0200BB28:
+ str r4, [r0, #0x0]
+ mov r1, #0x0
+ str r1, [r0, #0x4]
+ mov r1, #0x1
+ str r1, [r0, #0x8]
+ pop {r4, pc}
+
+ thumb_func_start FUN_0200BB34
+FUN_0200BB34: ; 0x0200BB34
+ push {r4, lr}
+ add r4, r0, #0x0
+ bne _0200BB3E
+ bl ErrorHandling
+_0200BB3E:
+ ldr r0, [r4, #0x0]
+ mov r1, #0x58
+ bl FUN_02016998
+ cmp r0, #0x0
+ bne _0200BB4E
+ mov r0, #0x0
+ pop {r4, pc}
+_0200BB4E:
+ ldr r1, [r4, #0x4]
+ mov r2, #0x0
+ add r1, r1, #0x1
+ str r1, [r4, #0x4]
+ add r3, r0, #0x0
+ add r1, r2, #0x0
+_0200BB5A:
+ add r2, r2, #0x1
+ str r1, [r3, #0xc]
+ add r3, r3, #0x4
+ cmp r2, #0x6
+ blt _0200BB5A
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0200BB68
+FUN_0200BB68: ; 0x0200BB68
+ add r0, #0x10
+ bx lr
+
+ thumb_func_start FUN_0200BB6C
+FUN_0200BB6C: ; 0x0200BB6C
+ push {r4-r7, lr}
+ sub sp, #0x24
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ add r6, r2, #0x0
+ add r7, r3, #0x0
+ cmp r5, #0x0
+ bne _0200BB80
+ bl ErrorHandling
+_0200BB80:
+ cmp r5, #0x0
+ bne _0200BB8A
+ add sp, #0x24
+ mov r0, #0x0
+ pop {r4-r7, pc}
+_0200BB8A:
+ ldr r0, [r6, #0x0]
+ str r0, [sp, #0x14]
+ ldr r0, [r6, #0x4]
+ str r0, [sp, #0x18]
+ ldr r0, [r6, #0x8]
+ str r0, [sp, #0x1c]
+ ldr r0, [r5, #0x0]
+ str r0, [sp, #0x20]
+ ldr r1, [r6, #0xc]
+ ldr r2, [r6, #0x10]
+ add r0, sp, #0x14
+ bl FUN_0201D060
+ ldr r1, [r5, #0x0]
+ add r0, r7, #0x0
+ bl FUN_0201E00C
+ blx FUN_020B0FC0
+ ldr r0, [r5, #0x8]
+ cmp r0, #0x1
+ bne _0200BBD6
+ ldr r0, [r4, #0x10]
+ str r0, [sp, #0x0]
+ ldr r0, [r4, #0x14]
+ str r0, [sp, #0x4]
+ ldr r0, [r4, #0x18]
+ str r0, [sp, #0x8]
+ ldr r0, [r4, #0x1c]
+ str r0, [sp, #0xc]
+ ldr r0, [r5, #0x0]
+ str r0, [sp, #0x10]
+ ldr r0, [r4, #0x0]
+ ldr r1, [r4, #0x4]
+ ldr r2, [r4, #0x8]
+ ldr r3, [r4, #0xc]
+ bl FUN_02009EAC
+_0200BBD6:
+ ldr r1, [r5, #0x0]
+ mov r0, #0x20
+ bl FUN_0201C328
+ str r0, [r5, #0xc]
+ bl FUN_0201D168
+ bl FUN_0201E0BC
+ mov r0, #0x1
+ add sp, #0x24
+ pop {r4-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_0200BBF0
+FUN_0200BBF0: ; 0x0200BBF0
+ push {r4, lr}
+ add r3, r0, #0x0
+ add r4, r1, #0x0
+ cmp r3, #0x0
+ beq _0200BBFE
+ cmp r4, #0x0
+ bne _0200BC02
+_0200BBFE:
+ mov r0, #0x0
+ pop {r4, pc}
+_0200BC02:
+ add r0, r2, #0x0
+ add r1, r3, #0x0
+ ldr r2, [r3, #0x0]
+ add r1, #0x10
+ bl FUN_02008C9C
+ str r0, [r4, #0x0]
+ mov r0, #0x1
+ pop {r4, pc}
+
+ thumb_func_start FUN_0200BC14
+FUN_0200BC14: ; 0x0200BC14
+ ldr r3, _0200BC18 ; =FUN_0201FFC8
+ bx r3
+ .balign 4
+_0200BC18: .word FUN_0201FFC8
+
+ thumb_func_start FUN_0200BC1C
+FUN_0200BC1C: ; 0x0200BC1C
+ push {r4, lr}
+ add r4, r0, #0x0
+ bne _0200BC26
+ bl ErrorHandling
+_0200BC26:
+ ldr r0, [r4, #0x0]
+ bl FUN_0201FDEC
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0200BC30
+FUN_0200BC30: ; 0x0200BC30
+ ldr r3, _0200BC34 ; =FUN_02009F80
+ bx r3
+ .balign 4
+_0200BC34: .word FUN_02009F80
+
+ thumb_func_start FUN_0200BC38
+FUN_0200BC38: ; 0x0200BC38
+ ldr r3, _0200BC3C ; =FUN_0201C348
+ bx r3
+ .balign 4
+_0200BC3C: .word FUN_0201C348
+
+ thumb_func_start FUN_0200BC40
+FUN_0200BC40: ; 0x0200BC40
+ ldr r3, _0200BC48 ; =FUN_0201FD58
+ ldr r0, [r0, #0x0]
+ bx r3
+ nop
+_0200BC48: .word FUN_0201FD58
+
+ thumb_func_start FUN_0200BC4C
+FUN_0200BC4C: ; 0x0200BC4C
+ push {r3, lr}
+ ldr r0, [r0, #0x4]
+ cmp r0, #0x0
+ beq _0200BC58
+ bl FUN_02008C80
+_0200BC58:
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_0200BC5C
+FUN_0200BC5C: ; 0x0200BC5C
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ ldr r0, [r5, #0x54]
+ mov r4, #0x0
+ cmp r0, #0x0
+ ble _0200BC7C
+_0200BC68:
+ ldr r0, [r5, #0x8]
+ add r1, r4, #0x0
+ bl FUN_02009660
+ bl FUN_020096B4
+ ldr r0, [r5, #0x54]
+ add r4, r4, #0x1
+ cmp r4, r0
+ blt _0200BC68
+_0200BC7C:
+ ldr r0, [r5, #0x8]
+ bl FUN_02016A18
+ ldr r0, [r5, #0x24]
+ bl FUN_02009C30
+ ldr r0, [r5, #0x28]
+ bl FUN_02009E28
+ ldr r0, [r5, #0x54]
+ mov r6, #0x0
+ cmp r0, #0x0
+ ble _0200BCAE
+ add r4, r5, #0x0
+_0200BC98:
+ ldr r0, [r4, #0x24]
+ bl FUN_02009448
+ ldr r0, [r4, #0xc]
+ bl FUN_02008E2C
+ ldr r0, [r5, #0x54]
+ add r6, r6, #0x1
+ add r4, r4, #0x4
+ cmp r6, r0
+ blt _0200BC98
+_0200BCAE:
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_0200BCB0
+FUN_0200BCB0: ; 0x0200BCB0
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r0, [r4, #0xc]
+ bl FUN_0201C350
+ bl FUN_0201D12C
+ bl FUN_0201E08C
+ ldr r0, [r4, #0x8]
+ cmp r0, #0x1
+ bne _0200BCCC
+ bl FUN_02009FA0
+_0200BCCC:
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0200BCD0
+FUN_0200BCD0: ; 0x0200BCD0
+ ldr r2, [r0, #0x4]
+ ldr r3, _0200BCDC ; =FUN_02016A18
+ sub r2, r2, #0x1
+ str r2, [r0, #0x4]
+ add r0, r1, #0x0
+ bx r3
+ .balign 4
+_0200BCDC: .word FUN_02016A18
+
+ thumb_func_start FUN_0200BCE0
+FUN_0200BCE0: ; 0x0200BCE0
+ push {r3-r5, lr}
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_0200BC40
+ add r0, r4, #0x0
+ bl FUN_0200BC4C
+ add r0, r4, #0x0
+ bl FUN_0200BC5C
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_0200BCD0
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_0200BD04
+FUN_0200BD04: ; 0x0200BD04
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r0, [r4, #0x4]
+ cmp r0, #0x0
+ beq _0200BD12
+ bl ErrorHandling
+_0200BD12:
+ add r0, r4, #0x0
+ bl FUN_0200BCB0
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ pop {r4, pc}
+
+ thumb_func_start FUN_0200BD20
+FUN_0200BD20: ; 0x0200BD20
+ push {r4-r7, lr}
+ sub sp, #0x24
+ add r5, r0, #0x0
+ mov r0, #0x6
+ add r4, r1, #0x0
+ str r2, [sp, #0x10]
+ str r0, [sp, #0x14]
+ cmp r5, #0x0
+ beq _0200BD36
+ cmp r4, #0x0
+ bne _0200BD3C
+_0200BD36:
+ add sp, #0x24
+ mov r0, #0x0
+ pop {r4-r7, pc}
+_0200BD3C:
+ add r0, r2, #0x0
+ ldr r0, [r0, #0x10]
+ cmp r0, #0x0
+ bne _0200BD48
+ mov r0, #0x4
+ str r0, [sp, #0x14]
+_0200BD48:
+ ldr r0, [sp, #0x14]
+ str r0, [r4, #0x54]
+ bl FUN_0200965C
+ add r2, r0, #0x0
+ ldr r1, [sp, #0x14]
+ ldr r0, [r5, #0x0]
+ mul r1, r2
+ bl FUN_02016998
+ str r0, [r4, #0x8]
+ ldr r0, [sp, #0x14]
+ mov r7, #0x0
+ cmp r0, #0x0
+ ble _0200BD94
+ ldr r6, [sp, #0x10]
+_0200BD68:
+ ldr r0, [r4, #0x8]
+ add r1, r7, #0x0
+ bl FUN_02009660
+ str r0, [sp, #0x18]
+ ldr r0, [r5, #0x0]
+ ldr r1, [r6, #0x0]
+ bl FUN_020161A4
+ ldr r1, [sp, #0x18]
+ ldr r2, [r5, #0x0]
+ str r0, [sp, #0x1c]
+ bl FUN_02009668
+ ldr r0, [sp, #0x1c]
+ bl FUN_02016A18
+ ldr r0, [sp, #0x14]
+ add r7, r7, #0x1
+ add r6, r6, #0x4
+ cmp r7, r0
+ blt _0200BD68
+_0200BD94:
+ ldr r0, [sp, #0x14]
+ mov r6, #0x0
+ cmp r0, #0x0
+ ble _0200BDBE
+ add r7, r4, #0x0
+_0200BD9E:
+ ldr r0, [r4, #0x8]
+ add r1, r6, #0x0
+ bl FUN_02009660
+ bl FUN_020096CC
+ ldr r2, [r5, #0x0]
+ add r1, r6, #0x0
+ bl FUN_02008DEC
+ str r0, [r7, #0xc]
+ ldr r0, [sp, #0x14]
+ add r6, r6, #0x1
+ add r7, r7, #0x4
+ cmp r6, r0
+ blt _0200BD9E
+_0200BDBE:
+ ldr r0, [sp, #0x14]
+ mov r7, #0x0
+ cmp r0, #0x0
+ ble _0200BDF6
+ add r6, r4, #0x0
+_0200BDC8:
+ ldr r0, [r4, #0x8]
+ add r1, r7, #0x0
+ bl FUN_02009660
+ str r0, [sp, #0x20]
+ bl FUN_020096CC
+ ldr r1, [r5, #0x0]
+ bl FUN_02009424
+ add r2, r0, #0x0
+ str r2, [r6, #0x24]
+ ldr r0, [r6, #0xc]
+ ldr r1, [sp, #0x20]
+ ldr r3, [r5, #0x0]
+ bl FUN_020093A8
+ str r0, [r6, #0x3c]
+ ldr r0, [sp, #0x14]
+ add r7, r7, #0x1
+ add r6, r6, #0x4
+ cmp r7, r0
+ blt _0200BDC8
+_0200BDF6:
+ ldr r0, [r4, #0x24]
+ bl FUN_02009A90
+ ldr r0, [r4, #0x28]
+ bl FUN_02009D34
+ ldr r1, [sp, #0x10]
+ ldr r0, [r5, #0x0]
+ ldr r1, [r1, #0x18]
+ bl FUN_020161A4
+ ldr r1, [r4, #0x14]
+ add r6, r0, #0x0
+ str r1, [sp, #0x0]
+ ldr r1, [r4, #0x18]
+ str r1, [sp, #0x4]
+ ldr r1, [r4, #0x1c]
+ str r1, [sp, #0x8]
+ ldr r1, [r4, #0x20]
+ str r1, [sp, #0xc]
+ ldr r1, [r5, #0x0]
+ ldr r2, [r4, #0xc]
+ ldr r3, [r4, #0x10]
+ bl FUN_02008BE0
+ str r0, [r4, #0x4]
+ add r0, r6, #0x0
+ bl FUN_02016A18
+ mov r0, #0x1
+ add sp, #0x24
+ pop {r4-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_0200BE38
+FUN_0200BE38: ; 0x0200BE38
+ push {r4, lr}
+ sub sp, #0x28
+ mov r3, #0x4
+ mov r4, #0x6
+ ldrsh r3, [r2, r3]
+ ldrsh r4, [r2, r4]
+ str r4, [sp, #0x0]
+ str r3, [sp, #0x4]
+ ldrh r4, [r2, #0xa]
+ str r4, [sp, #0x8]
+ ldr r4, [r2, #0xc]
+ str r4, [sp, #0xc]
+ ldr r4, [r2, #0x10]
+ str r4, [sp, #0x10]
+ ldr r4, [r2, #0x14]
+ str r4, [sp, #0x14]
+ ldr r4, [r2, #0x18]
+ str r4, [sp, #0x18]
+ ldr r4, [r2, #0x1c]
+ str r4, [sp, #0x1c]
+ ldr r4, [r2, #0x20]
+ str r4, [sp, #0x20]
+ ldr r4, [r2, #0x24]
+ str r4, [sp, #0x24]
+ ldr r2, [r2, #0x0]
+ bl FUN_0200BE74
+ add sp, #0x28
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0200BE74
+FUN_0200BE74: ; 0x0200BE74
+ push {r4, lr}
+ sub sp, #0x30
+ add r4, r0, #0x0
+ ldr r0, [r1, #0x0]
+ str r0, [sp, #0x0]
+ ldr r0, [r1, #0x4]
+ ldr r1, [r0, #0x0]
+ mov r0, #0x24
+ mul r0, r2
+ add r0, r1, r0
+ str r0, [sp, #0x4]
+ cmp r3, #0x0
+ ble _0200BEA0
+ lsl r0, r3, #0xc
+ blx _fflt
+ add r1, r0, #0x0
+ mov r0, #0x3f
+ lsl r0, r0, #0x18
+ blx _fadd
+ b _0200BEAE
+_0200BEA0:
+ lsl r0, r3, #0xc
+ blx _fflt
+ mov r1, #0x3f
+ lsl r1, r1, #0x18
+ blx _fsub
+_0200BEAE:
+ blx _ffix
+ str r0, [sp, #0x8]
+ add r1, sp, #0x28
+ mov r0, #0x10
+ ldrsh r0, [r1, r0]
+ cmp r0, #0x0
+ ble _0200BED0
+ lsl r0, r0, #0xc
+ blx _fflt
+ add r1, r0, #0x0
+ mov r0, #0x3f
+ lsl r0, r0, #0x18
+ blx _fadd
+ b _0200BEDE
+_0200BED0:
+ lsl r0, r0, #0xc
+ blx _fflt
+ mov r1, #0x3f
+ lsl r1, r1, #0x18
+ blx _fsub
+_0200BEDE:
+ blx _ffix
+ str r0, [sp, #0xc]
+ add r1, sp, #0x28
+ mov r0, #0x14
+ ldrsh r0, [r1, r0]
+ cmp r0, #0x0
+ ble _0200BF00
+ lsl r0, r0, #0xc
+ blx _fflt
+ add r1, r0, #0x0
+ mov r0, #0x3f
+ lsl r0, r0, #0x18
+ blx _fadd
+ b _0200BF0E
+_0200BF00:
+ lsl r0, r0, #0xc
+ blx _fflt
+ mov r1, #0x3f
+ lsl r1, r1, #0x18
+ blx _fsub
+_0200BF0E:
+ blx _ffix
+ str r0, [sp, #0x10]
+ ldr r0, [sp, #0x4c]
+ cmp r0, #0x2
+ bne _0200BF24
+ mov r0, #0x3
+ ldr r1, [sp, #0xc]
+ lsl r0, r0, #0x12
+ add r0, r1, r0
+ str r0, [sp, #0xc]
+_0200BF24:
+ mov r0, #0x1
+ lsl r0, r0, #0xc
+ str r0, [sp, #0x14]
+ str r0, [sp, #0x18]
+ str r0, [sp, #0x1c]
+ mov r1, #0x0
+ add r0, sp, #0x0
+ strh r1, [r0, #0x20]
+ ldr r0, [sp, #0x44]
+ str r0, [sp, #0x24]
+ ldr r0, [sp, #0x4c]
+ str r0, [sp, #0x28]
+ ldr r0, [r4, #0x0]
+ str r0, [sp, #0x2c]
+ add r0, sp, #0x0
+ bl FUN_0201FE94
+ add r4, r0, #0x0
+ beq _0200BF5A
+ add r1, sp, #0x28
+ ldrh r1, [r1, #0x18]
+ bl FUN_02020130
+ ldr r1, [sp, #0x48]
+ add r0, r4, #0x0
+ bl FUN_02020248
+_0200BF5A:
+ add r0, r4, #0x0
+ add sp, #0x30
+ pop {r4, pc}
+
+ thumb_func_start FUN_0200BF60
+FUN_0200BF60: ; 0x0200BF60
+ push {r4-r7, lr}
+ sub sp, #0xc
+ str r0, [sp, #0x0]
+ mov r0, #0x6
+ str r0, [sp, #0x4]
+ ldr r0, [sp, #0x0]
+ add r5, r1, #0x0
+ add r6, r2, #0x0
+ cmp r0, #0x0
+ beq _0200BF78
+ cmp r5, #0x0
+ bne _0200BF7E
+_0200BF78:
+ add sp, #0xc
+ mov r0, #0x0
+ pop {r4-r7, pc}
+_0200BF7E:
+ ldr r0, [r6, #0x10]
+ cmp r0, #0x0
+ beq _0200BF8A
+ ldr r0, [r6, #0x14]
+ cmp r0, #0x0
+ bne _0200BF8E
+_0200BF8A:
+ mov r0, #0x4
+ str r0, [sp, #0x4]
+_0200BF8E:
+ ldr r0, [sp, #0x4]
+ str r0, [r5, #0x54]
+ mov r0, #0x0
+ str r0, [sp, #0x8]
+ ldr r0, [sp, #0x4]
+ cmp r0, #0x0
+ ble _0200BFBE
+ add r7, r6, #0x0
+ add r4, r5, #0x0
+_0200BFA0:
+ ldr r2, [sp, #0x0]
+ ldr r0, [r7, #0x0]
+ ldr r1, [sp, #0x8]
+ ldr r2, [r2, #0x0]
+ bl FUN_02008DEC
+ str r0, [r4, #0xc]
+ ldr r0, [sp, #0x8]
+ add r7, r7, #0x4
+ add r1, r0, #0x1
+ ldr r0, [sp, #0x4]
+ add r4, r4, #0x4
+ str r1, [sp, #0x8]
+ cmp r1, r0
+ blt _0200BFA0
+_0200BFBE:
+ ldr r0, [sp, #0x4]
+ mov r7, #0x0
+ cmp r0, #0x0
+ ble _0200C004
+ add r4, r7, #0x0
+_0200BFC8:
+ ldr r0, [r6, #0x0]
+ cmp r0, #0x0
+ beq _0200BFF8
+ ldr r1, [sp, #0x0]
+ ldr r1, [r1, #0x0]
+ bl FUN_02009424
+ str r0, [r5, #0x24]
+ mov r0, #0x0
+ str r0, [r5, #0x3c]
+ ldr r3, [r5, #0x24]
+ add r1, r0, #0x0
+ ldr r0, [r3, #0x4]
+ cmp r0, #0x0
+ ble _0200BFF8
+ add r2, r1, #0x0
+_0200BFE8:
+ ldr r0, [r3, #0x0]
+ add r1, r1, #0x1
+ str r4, [r0, r2]
+ ldr r3, [r5, #0x24]
+ add r2, r2, #0x4
+ ldr r0, [r3, #0x4]
+ cmp r1, r0
+ blt _0200BFE8
+_0200BFF8:
+ ldr r0, [sp, #0x4]
+ add r7, r7, #0x1
+ add r6, r6, #0x4
+ add r5, r5, #0x4
+ cmp r7, r0
+ blt _0200BFC8
+_0200C004:
+ mov r0, #0x1
+ add sp, #0xc
+ pop {r4-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_0200C00C
+FUN_0200C00C: ; 0x0200C00C
+ push {r4-r7, lr}
+ sub sp, #0xc
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ ldr r0, [r4, #0xc]
+ ldr r1, [sp, #0x28]
+ add r6, r2, #0x0
+ add r7, r3, #0x0
+ bl FUN_0200945C
+ cmp r0, #0x0
+ bne _0200C02A
+ add sp, #0xc
+ mov r0, #0x0
+ pop {r4-r7, pc}
+_0200C02A:
+ ldr r0, [sp, #0x28]
+ ldr r3, [sp, #0x20]
+ str r0, [sp, #0x0]
+ ldr r0, [sp, #0x24]
+ add r1, r6, #0x0
+ str r0, [sp, #0x4]
+ ldr r0, [r5, #0x0]
+ add r2, r7, #0x0
+ str r0, [sp, #0x8]
+ ldr r0, [r4, #0xc]
+ bl FUN_02008F34
+ add r5, r0, #0x0
+ beq _0200C058
+ bl FUN_02009B04
+ ldr r0, [r4, #0x24]
+ add r1, r5, #0x0
+ bl FUN_0200C474
+ add sp, #0xc
+ mov r0, #0x1
+ pop {r4-r7, pc}
+_0200C058:
+ bl ErrorHandling
+ cmp r5, #0x0
+ beq _0200C066
+ add sp, #0xc
+ mov r0, #0x1
+ pop {r4-r7, pc}
+_0200C066:
+ mov r0, #0x0
+ add sp, #0xc
+ pop {r4-r7, pc}
+
+ thumb_func_start FUN_0200C06C
+FUN_0200C06C: ; 0x0200C06C
+ push {r3-r7, lr}
+ sub sp, #0x10
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ ldr r0, [r4, #0x10]
+ ldr r1, [sp, #0x34]
+ add r6, r2, #0x0
+ add r7, r3, #0x0
+ bl FUN_0200945C
+ cmp r0, #0x0
+ bne _0200C08C
+ mov r0, #0x0
+ add sp, #0x10
+ mvn r0, r0
+ pop {r3-r7, pc}
+_0200C08C:
+ ldr r0, [sp, #0x34]
+ ldr r3, [sp, #0x28]
+ str r0, [sp, #0x0]
+ ldr r0, [sp, #0x30]
+ add r1, r6, #0x0
+ str r0, [sp, #0x4]
+ ldr r0, [sp, #0x2c]
+ add r2, r7, #0x0
+ str r0, [sp, #0x8]
+ ldr r0, [r5, #0x0]
+ str r0, [sp, #0xc]
+ ldr r0, [r4, #0x10]
+ bl FUN_02008FEC
+ add r5, r0, #0x0
+ beq _0200C0D0
+ bl FUN_02009D68
+ cmp r0, #0x1
+ beq _0200C0B8
+ bl ErrorHandling
+_0200C0B8:
+ ldr r0, [r4, #0x28]
+ add r1, r5, #0x0
+ bl FUN_0200C474
+ ldr r1, [sp, #0x30]
+ add r0, r5, #0x0
+ bl FUN_02009E88
+ lsl r0, r0, #0x18
+ add sp, #0x10
+ asr r0, r0, #0x18
+ pop {r3-r7, pc}
+_0200C0D0:
+ bl ErrorHandling
+ mov r0, #0x0
+ mvn r0, r0
+ add sp, #0x10
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_0200C0DC
+FUN_0200C0DC: ; 0x0200C0DC
+ push {r4-r6, lr}
+ sub sp, #0x10
+ add r5, r0, #0x0
+ ldr r0, [sp, #0x28]
+ add r6, r1, #0x0
+ str r0, [sp, #0x0]
+ ldr r0, [sp, #0x2c]
+ add r1, r3, #0x0
+ str r0, [sp, #0x4]
+ ldr r0, [sp, #0x30]
+ ldr r3, [sp, #0x24]
+ str r0, [sp, #0x8]
+ ldr r0, [sp, #0x34]
+ str r0, [sp, #0xc]
+ add r0, r2, #0x0
+ ldr r2, [sp, #0x20]
+ bl FUN_0200C06C
+ add r4, r0, #0x0
+ mov r0, #0x0
+ mvn r0, r0
+ cmp r4, r0
+ beq _0200C11A
+ ldr r3, [sp, #0x2c]
+ lsl r2, r4, #0x14
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ lsr r2, r2, #0x10
+ lsl r3, r3, #0x5
+ bl FUN_02003108
+_0200C11A:
+ lsl r0, r4, #0x18
+ lsr r0, r0, #0x18
+ add sp, #0x10
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_0200C124
+FUN_0200C124: ; 0x0200C124
+ push {r3-r4, lr}
+ sub sp, #0xc
+ ldr r4, [sp, #0x18]
+ str r4, [sp, #0x0]
+ mov r4, #0x2
+ str r4, [sp, #0x4]
+ ldr r4, [sp, #0x1c]
+ str r4, [sp, #0x8]
+ bl FUN_0200C404
+ add sp, #0xc
+ pop {r3-r4, pc}
+
+ thumb_func_start FUN_0200C13C
+FUN_0200C13C: ; 0x0200C13C
+ push {r3-r4, lr}
+ sub sp, #0xc
+ ldr r4, [sp, #0x18]
+ str r4, [sp, #0x0]
+ mov r4, #0x3
+ str r4, [sp, #0x4]
+ ldr r4, [sp, #0x1c]
+ str r4, [sp, #0x8]
+ bl FUN_0200C404
+ add sp, #0xc
+ pop {r3-r4, pc}
+
+ thumb_func_start FUN_0200C154
+FUN_0200C154: ; 0x0200C154
+ push {r4-r7, lr}
+ sub sp, #0x74
+ add r7, r0, #0x0
+ ldr r0, [r7, #0x0]
+ add r6, r1, #0x0
+ mov r1, #0x10
+ add r5, r2, #0x0
+ bl FUN_02016998
+ add r4, r0, #0x0
+ bne _0200C170
+ add sp, #0x74
+ mov r0, #0x0
+ pop {r4-r7, pc}
+_0200C170:
+ ldr r0, [r7, #0x0]
+ mov r1, #0x8
+ bl FUN_02016998
+ str r0, [r4, #0x8]
+ cmp r0, #0x0
+ bne _0200C184
+ add sp, #0x74
+ mov r0, #0x0
+ pop {r4-r7, pc}
+_0200C184:
+ ldr r0, [r7, #0x0]
+ mov r1, #0x24
+ bl FUN_02016998
+ ldr r1, [r4, #0x8]
+ str r0, [r1, #0x0]
+ ldr r0, [r4, #0x8]
+ ldr r0, [r0, #0x0]
+ str r0, [r4, #0x4]
+ ldr r0, [r4, #0x8]
+ ldr r1, [r0, #0x0]
+ cmp r1, #0x0
+ bne _0200C1AC
+ cmp r0, #0x0
+ beq _0200C1A6
+ bl FUN_02016A18
+_0200C1A6:
+ add sp, #0x74
+ mov r0, #0x0
+ pop {r4-r7, pc}
+_0200C1AC:
+ mov r1, #0x0
+ add r2, r5, #0x0
+ add r3, sp, #0x2c
+_0200C1B2:
+ ldr r0, [r2, #0x14]
+ add r1, r1, #0x1
+ add r2, r2, #0x4
+ stmia r3!, {r0}
+ cmp r1, #0x6
+ blt _0200C1B2
+ ldr r0, [r6, #0x1c]
+ cmp r0, #0x0
+ beq _0200C1CA
+ ldr r1, [r6, #0x20]
+ cmp r1, #0x0
+ bne _0200C1D4
+_0200C1CA:
+ mov r0, #0x0
+ mvn r0, r0
+ str r0, [sp, #0x3c]
+ str r0, [sp, #0x40]
+ b _0200C206
+_0200C1D4:
+ mov r2, #0x0
+ ldr r1, [sp, #0x3c]
+ mvn r2, r2
+ cmp r1, r2
+ beq _0200C1EC
+ bl FUN_0200945C
+ cmp r0, #0x0
+ bne _0200C1EC
+ mov r0, #0x0
+ mvn r0, r0
+ str r0, [sp, #0x3c]
+_0200C1EC:
+ mov r0, #0x0
+ ldr r1, [sp, #0x40]
+ mvn r0, r0
+ cmp r1, r0
+ beq _0200C206
+ ldr r0, [r6, #0x20]
+ bl FUN_0200945C
+ cmp r0, #0x0
+ bne _0200C206
+ mov r0, #0x0
+ mvn r0, r0
+ str r0, [sp, #0x40]
+_0200C206:
+ ldr r0, [sp, #0x38]
+ str r0, [sp, #0x0]
+ ldr r0, [sp, #0x3c]
+ str r0, [sp, #0x4]
+ ldr r0, [sp, #0x40]
+ str r0, [sp, #0x8]
+ ldr r0, [r5, #0x30]
+ str r0, [sp, #0xc]
+ ldr r0, [r5, #0x2c]
+ str r0, [sp, #0x10]
+ ldr r0, [r6, #0xc]
+ str r0, [sp, #0x14]
+ ldr r0, [r6, #0x10]
+ str r0, [sp, #0x18]
+ ldr r0, [r6, #0x14]
+ str r0, [sp, #0x1c]
+ ldr r0, [r6, #0x18]
+ str r0, [sp, #0x20]
+ ldr r0, [r6, #0x1c]
+ str r0, [sp, #0x24]
+ ldr r0, [r6, #0x20]
+ str r0, [sp, #0x28]
+ ldr r0, [r4, #0x4]
+ ldr r1, [sp, #0x2c]
+ ldr r2, [sp, #0x30]
+ ldr r3, [sp, #0x34]
+ bl FUN_02008AA4
+ ldr r0, [r6, #0x0]
+ str r0, [sp, #0x44]
+ ldr r0, [r4, #0x4]
+ str r0, [sp, #0x48]
+ mov r0, #0x0
+ ldrsh r0, [r5, r0]
+ cmp r0, #0x0
+ ble _0200C260
+ lsl r0, r0, #0xc
+ blx _fflt
+ add r1, r0, #0x0
+ mov r0, #0x3f
+ lsl r0, r0, #0x18
+ blx _fadd
+ b _0200C26E
+_0200C260:
+ lsl r0, r0, #0xc
+ blx _fflt
+ mov r1, #0x3f
+ lsl r1, r1, #0x18
+ blx _fsub
+_0200C26E:
+ blx _ffix
+ str r0, [sp, #0x4c]
+ mov r0, #0x2
+ ldrsh r0, [r5, r0]
+ cmp r0, #0x0
+ ble _0200C28E
+ lsl r0, r0, #0xc
+ blx _fflt
+ add r1, r0, #0x0
+ mov r0, #0x3f
+ lsl r0, r0, #0x18
+ blx _fadd
+ b _0200C29C
+_0200C28E:
+ lsl r0, r0, #0xc
+ blx _fflt
+ mov r1, #0x3f
+ lsl r1, r1, #0x18
+ blx _fsub
+_0200C29C:
+ blx _ffix
+ str r0, [sp, #0x50]
+ mov r0, #0x4
+ ldrsh r0, [r5, r0]
+ cmp r0, #0x0
+ ble _0200C2BC
+ lsl r0, r0, #0xc
+ blx _fflt
+ add r1, r0, #0x0
+ mov r0, #0x3f
+ lsl r0, r0, #0x18
+ blx _fadd
+ b _0200C2CA
+_0200C2BC:
+ lsl r0, r0, #0xc
+ blx _fflt
+ mov r1, #0x3f
+ lsl r1, r1, #0x18
+ blx _fsub
+_0200C2CA:
+ blx _ffix
+ str r0, [sp, #0x54]
+ ldr r0, [r5, #0x10]
+ cmp r0, #0x2
+ bne _0200C2E0
+ mov r0, #0x3
+ ldr r1, [sp, #0x50]
+ lsl r0, r0, #0x12
+ add r0, r1, r0
+ str r0, [sp, #0x50]
+_0200C2E0:
+ mov r0, #0x1
+ lsl r0, r0, #0xc
+ str r0, [sp, #0x58]
+ str r0, [sp, #0x5c]
+ str r0, [sp, #0x60]
+ mov r1, #0x0
+ add r0, sp, #0x2c
+ strh r1, [r0, #0x38]
+ ldr r0, [r5, #0x8]
+ str r0, [sp, #0x68]
+ ldr r0, [r5, #0x10]
+ str r0, [sp, #0x6c]
+ ldr r0, [r7, #0x0]
+ str r0, [sp, #0x70]
+ add r0, sp, #0x44
+ bl FUN_0201FE94
+ str r0, [r4, #0x0]
+ ldr r0, [r5, #0x30]
+ str r0, [r4, #0xc]
+ ldr r0, [r4, #0x0]
+ cmp r0, #0x0
+ beq _0200C328
+ bl FUN_020202A0
+ add r6, r0, #0x0
+ ldrh r1, [r5, #0x6]
+ ldr r0, [r4, #0x0]
+ bl FUN_02020130
+ ldr r1, [r5, #0xc]
+ ldr r0, [r4, #0x0]
+ add r1, r6, r1
+ bl FUN_02020248
+ b _0200C32C
+_0200C328:
+ bl ErrorHandling
+_0200C32C:
+ add r0, r4, #0x0
+ add sp, #0x74
+ pop {r4-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_0200C334
+FUN_0200C334: ; 0x0200C334
+ push {r3, lr}
+ ldr r0, [r0, #0x10]
+ bl FUN_020094F0
+ mov r1, #0x0
+ bl FUN_02009E54
+ pop {r3, pc}
+
+ thumb_func_start FUN_0200C344
+FUN_0200C344: ; 0x0200C344
+ push {r4, lr}
+ ldr r0, [r0, #0x10]
+ add r4, r2, #0x0
+ bl FUN_020094F0
+ add r1, r4, #0x0
+ bl FUN_02009E88
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0200C358
+FUN_0200C358: ; 0x0200C358
+ add r3, r0, #0x0
+ add r2, r1, #0x0
+ ldr r0, [r3, #0xc]
+ ldr r1, [r3, #0x24]
+ ldr r3, _0200C364 ; =FUN_0200C4F4
+ bx r3
+ .balign 4
+_0200C364: .word FUN_0200C4F4
+
+ thumb_func_start FUN_0200C368
+FUN_0200C368: ; 0x0200C368
+ add r3, r0, #0x0
+ add r2, r1, #0x0
+ ldr r0, [r3, #0x10]
+ ldr r1, [r3, #0x28]
+ ldr r3, _0200C374 ; =FUN_0200C548
+ bx r3
+ .balign 4
+_0200C374: .word FUN_0200C548
+
+ thumb_func_start FUN_0200C378
+FUN_0200C378: ; 0x0200C378
+ add r3, r0, #0x0
+ add r2, r1, #0x0
+ ldr r0, [r3, #0x14]
+ ldr r1, [r3, #0x2c]
+ ldr r3, _0200C384 ; =FUN_0200C4A8
+ bx r3
+ .balign 4
+_0200C384: .word FUN_0200C4A8
+
+ thumb_func_start FUN_0200C388
+FUN_0200C388: ; 0x0200C388
+ add r3, r0, #0x0
+ add r2, r1, #0x0
+ ldr r0, [r3, #0x18]
+ ldr r1, [r3, #0x30]
+ ldr r3, _0200C394 ; =FUN_0200C4A8
+ bx r3
+ .balign 4
+_0200C394: .word FUN_0200C4A8
+
+ thumb_func_start FUN_0200C398
+FUN_0200C398: ; 0x0200C398
+ push {r3-r7, lr}
+ add r6, r1, #0x0
+ add r7, r0, #0x0
+ add r0, r6, #0x0
+ bl FUN_0200BC40
+ ldr r0, [r6, #0x24]
+ bl FUN_02009C30
+ ldr r0, [r6, #0x28]
+ bl FUN_02009E28
+ ldr r0, [r6, #0x54]
+ mov r4, #0x0
+ cmp r0, #0x0
+ ble _0200C3D0
+ add r5, r6, #0x0
+_0200C3BA:
+ ldr r0, [r5, #0x24]
+ bl FUN_02009448
+ ldr r0, [r5, #0xc]
+ bl FUN_02008E2C
+ ldr r0, [r6, #0x54]
+ add r4, r4, #0x1
+ add r5, r5, #0x4
+ cmp r4, r0
+ blt _0200C3BA
+_0200C3D0:
+ add r0, r7, #0x0
+ add r1, r6, #0x0
+ bl FUN_0200BCD0
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_0200C3DC
+FUN_0200C3DC: ; 0x0200C3DC
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r0, [r4, #0xc]
+ cmp r0, #0x0
+ beq _0200C3EE
+ ldr r0, [r4, #0x4]
+ ldr r0, [r0, #0x0]
+ bl FUN_02009CDC
+_0200C3EE:
+ ldr r0, [r4, #0x0]
+ bl FUN_0201FFC8
+ ldr r0, [r4, #0x8]
+ bl FUN_02008C80
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0200C404
+FUN_0200C404: ; 0x0200C404
+ push {r4-r7, lr}
+ sub sp, #0x14
+ add r6, r1, #0x0
+ add r7, r0, #0x0
+ ldr r0, [sp, #0x2c]
+ add r5, r6, #0x0
+ lsl r4, r0, #0x2
+ add r5, #0xc
+ ldr r0, [r5, r4]
+ ldr r1, [sp, #0x30]
+ str r2, [sp, #0xc]
+ str r3, [sp, #0x10]
+ bl FUN_0200945C
+ cmp r0, #0x0
+ bne _0200C42A
+ add sp, #0x14
+ mov r0, #0x0
+ pop {r4-r7, pc}
+_0200C42A:
+ ldr r0, [sp, #0x30]
+ ldr r1, [sp, #0xc]
+ str r0, [sp, #0x0]
+ ldr r0, [sp, #0x2c]
+ ldr r2, [sp, #0x10]
+ str r0, [sp, #0x4]
+ ldr r0, [r7, #0x0]
+ ldr r3, [sp, #0x28]
+ str r0, [sp, #0x8]
+ ldr r0, [r5, r4]
+ bl FUN_020090AC
+ add r5, r0, #0x0
+ beq _0200C460
+ add r0, r6, r4
+ ldr r0, [r0, #0x24]
+ add r1, r5, #0x0
+ bl FUN_0200C474
+ add r4, r0, #0x0
+ cmp r4, #0x1
+ beq _0200C45A
+ bl ErrorHandling
+_0200C45A:
+ add sp, #0x14
+ add r0, r4, #0x0
+ pop {r4-r7, pc}
+_0200C460:
+ bl ErrorHandling
+ cmp r5, #0x0
+ beq _0200C46E
+ add sp, #0x14
+ mov r0, #0x1
+ pop {r4-r7, pc}
+_0200C46E:
+ mov r0, #0x0
+ add sp, #0x14
+ pop {r4-r7, pc}
+
+ thumb_func_start FUN_0200C474
+FUN_0200C474: ; 0x0200C474
+ push {r3-r6}
+ ldr r6, [r0, #0x4]
+ mov r3, #0x0
+ cmp r6, #0x0
+ ble _0200C4A0
+ ldr r5, [r0, #0x0]
+ add r4, r5, #0x0
+_0200C482:
+ ldr r2, [r4, #0x0]
+ cmp r2, #0x0
+ bne _0200C498
+ lsl r2, r3, #0x2
+ str r1, [r5, r2]
+ ldr r1, [r0, #0x8]
+ add r1, r1, #0x1
+ str r1, [r0, #0x8]
+ mov r0, #0x1
+ pop {r3-r6}
+ bx lr
+_0200C498:
+ add r3, r3, #0x1
+ add r4, r4, #0x4
+ cmp r3, r6
+ blt _0200C482
+_0200C4A0:
+ mov r0, #0x0
+ pop {r3-r6}
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_0200C4A8
+FUN_0200C4A8: ; 0x0200C4A8
+ push {r3-r7, lr}
+ add r5, r1, #0x0
+ str r0, [sp, #0x0]
+ ldr r0, [r5, #0x4]
+ add r7, r2, #0x0
+ mov r6, #0x0
+ cmp r0, #0x0
+ ble _0200C4F0
+ add r4, r6, #0x0
+_0200C4BA:
+ ldr r0, [r5, #0x0]
+ ldr r0, [r0, r4]
+ cmp r0, #0x0
+ beq _0200C4E6
+ bl FUN_02009530
+ cmp r0, r7
+ bne _0200C4E6
+ ldr r1, [r5, #0x0]
+ lsl r4, r6, #0x2
+ ldr r0, [sp, #0x0]
+ ldr r1, [r1, r4]
+ bl FUN_02009490
+ ldr r0, [r5, #0x0]
+ mov r1, #0x0
+ str r1, [r0, r4]
+ ldr r0, [r5, #0x8]
+ sub r0, r0, #0x1
+ str r0, [r5, #0x8]
+ mov r0, #0x1
+ pop {r3-r7, pc}
+_0200C4E6:
+ ldr r0, [r5, #0x4]
+ add r6, r6, #0x1
+ add r4, r4, #0x4
+ cmp r6, r0
+ blt _0200C4BA
+_0200C4F0:
+ mov r0, #0x0
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_0200C4F4
+FUN_0200C4F4: ; 0x0200C4F4
+ push {r3-r7, lr}
+ add r5, r1, #0x0
+ str r0, [sp, #0x0]
+ ldr r0, [r5, #0x4]
+ add r7, r2, #0x0
+ mov r6, #0x0
+ cmp r0, #0x0
+ ble _0200C542
+ add r4, r6, #0x0
+_0200C506:
+ ldr r0, [r5, #0x0]
+ ldr r0, [r0, r4]
+ cmp r0, #0x0
+ beq _0200C538
+ bl FUN_02009530
+ cmp r0, r7
+ bne _0200C538
+ add r0, r7, #0x0
+ bl FUN_0201D324
+ ldr r1, [r5, #0x0]
+ lsl r4, r6, #0x2
+ ldr r0, [sp, #0x0]
+ ldr r1, [r1, r4]
+ bl FUN_02009490
+ ldr r0, [r5, #0x0]
+ mov r1, #0x0
+ str r1, [r0, r4]
+ ldr r0, [r5, #0x8]
+ sub r0, r0, #0x1
+ str r0, [r5, #0x8]
+ mov r0, #0x1
+ pop {r3-r7, pc}
+_0200C538:
+ ldr r0, [r5, #0x4]
+ add r6, r6, #0x1
+ add r4, r4, #0x4
+ cmp r6, r0
+ blt _0200C506
+_0200C542:
+ mov r0, #0x0
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_0200C548
+FUN_0200C548: ; 0x0200C548
+ push {r3-r7, lr}
+ add r5, r1, #0x0
+ str r0, [sp, #0x0]
+ ldr r0, [r5, #0x4]
+ add r7, r2, #0x0
+ mov r6, #0x0
+ cmp r0, #0x0
+ ble _0200C596
+ add r4, r6, #0x0
+_0200C55A:
+ ldr r0, [r5, #0x0]
+ ldr r0, [r0, r4]
+ cmp r0, #0x0
+ beq _0200C58C
+ bl FUN_02009530
+ cmp r0, r7
+ bne _0200C58C
+ add r0, r7, #0x0
+ bl FUN_0201E1C8
+ ldr r1, [r5, #0x0]
+ lsl r4, r6, #0x2
+ ldr r0, [sp, #0x0]
+ ldr r1, [r1, r4]
+ bl FUN_02009490
+ ldr r0, [r5, #0x0]
+ mov r1, #0x0
+ str r1, [r0, r4]
+ ldr r0, [r5, #0x8]
+ sub r0, r0, #0x1
+ str r0, [r5, #0x8]
+ mov r0, #0x1
+ pop {r3-r7, pc}
+_0200C58C:
+ ldr r0, [r5, #0x4]
+ add r6, r6, #0x1
+ add r4, r4, #0x4
+ cmp r6, r0
+ blt _0200C55A
+_0200C596:
+ mov r0, #0x0
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_0200C59C
+FUN_0200C59C: ; 0x0200C59C
+ ldr r3, _0200C5A4 ; =FUN_020201E4
+ mov r1, #0x1
+ lsl r1, r1, #0xc
+ bx r3
+ .balign 4
+_0200C5A4: .word FUN_020201E4
+
+ thumb_func_start FUN_0200C5A8
+FUN_0200C5A8: ; 0x0200C5A8
+ ldr r3, _0200C5B0 ; =0x0200C59D
+ ldr r0, [r0, #0x0]
+ bx r3
+ nop
+_0200C5B0: .word 0x0200C59D
+
+ thumb_func_start FUN_0200C5B4
+FUN_0200C5B4: ; 0x0200C5B4
+ ldr r3, _0200C5BC ; =FUN_020201E4
+ ldr r0, [r0, #0x0]
+ bx r3
+ nop
+_0200C5BC: .word FUN_020201E4
+
+ thumb_func_start FUN_0200C5C0
+FUN_0200C5C0: ; 0x0200C5C0
+ ldr r3, _0200C5C8 ; =FUN_02020130
+ ldr r0, [r0, #0x0]
+ bx r3
+ nop
+_0200C5C8: .word FUN_02020130
+
+ thumb_func_start FUN_0200C5CC
+FUN_0200C5CC: ; 0x0200C5CC
+ ldr r3, _0200C5D4 ; =FUN_020201DC
+ ldr r0, [r0, #0x0]
+ bx r3
+ nop
+_0200C5D4: .word FUN_020201DC
+
+ thumb_func_start FUN_0200C5D8
+FUN_0200C5D8: ; 0x0200C5D8
+ ldr r3, _0200C5DC ; =FUN_020200BC
+ bx r3
+ .balign 4
+_0200C5DC: .word FUN_020200BC
+
+ thumb_func_start FUN_0200C5E0
+FUN_0200C5E0: ; 0x0200C5E0
+ ldr r3, _0200C5E8 ; =FUN_0200C5D8
+ ldr r0, [r0, #0x0]
+ bx r3
+ nop
+_0200C5E8: .word FUN_0200C5D8
+
+ thumb_func_start FUN_0200C5EC
+FUN_0200C5EC: ; 0x0200C5EC
+ ldr r3, _0200C5F0 ; =FUN_020200D8
+ bx r3
+ .balign 4
+_0200C5F0: .word FUN_020200D8
+
+ thumb_func_start FUN_0200C5F4
+FUN_0200C5F4: ; 0x0200C5F4
+ ldr r3, _0200C5FC ; =FUN_0200C5EC
+ ldr r0, [r0, #0x0]
+ bx r3
+ nop
+_0200C5FC: .word FUN_0200C5EC
+
+ thumb_func_start FUN_0200C600
+FUN_0200C600: ; 0x0200C600
+ ldr r3, _0200C604 ; =FUN_02020388
+ bx r3
+ .balign 4
+_0200C604: .word FUN_02020388
+
+ thumb_func_start FUN_0200C608
+FUN_0200C608: ; 0x0200C608
+ ldr r3, _0200C610 ; =FUN_0200C600
+ ldr r0, [r0, #0x0]
+ bx r3
+ nop
+_0200C610: .word FUN_0200C600
+
+ thumb_func_start FUN_0200C614
+FUN_0200C614: ; 0x0200C614
+ ldr r3, _0200C618 ; =FUN_02020208
+ bx r3
+ .balign 4
+_0200C618: .word FUN_02020208
+
+ thumb_func_start FUN_0200C61C
+FUN_0200C61C: ; 0x0200C61C
+ ldr r3, _0200C624 ; =0x0200C615
+ ldr r0, [r0, #0x0]
+ bx r3
+ nop
+_0200C624: .word 0x0200C615
+
+ thumb_func_start FUN_0200C628
+FUN_0200C628: ; 0x0200C628
+ ldr r3, _0200C62C ; =FUN_0202022C
+ bx r3
+ .balign 4
+_0200C62C: .word FUN_0202022C
+
+ thumb_func_start FUN_0200C630
+FUN_0200C630: ; 0x0200C630
+ ldr r3, _0200C638 ; =FUN_0200C628
+ ldr r0, [r0, #0x0]
+ bx r3
+ nop
+_0200C638: .word FUN_0200C628
+
+ thumb_func_start FUN_0200C63C
+FUN_0200C63C: ; 0x0200C63C
+ ldr r3, _0200C640 ; =FUN_020200A0
+ bx r3
+ .balign 4
+_0200C640: .word FUN_020200A0
+
+ thumb_func_start FUN_0200C644
+FUN_0200C644: ; 0x0200C644
+ ldr r3, _0200C64C ; =FUN_0200C63C
+ ldr r0, [r0, #0x0]
+ bx r3
+ nop
+_0200C64C: .word FUN_0200C63C
+
+ thumb_func_start FUN_0200C650
+FUN_0200C650: ; 0x0200C650
+ ldr r3, _0200C654 ; =FUN_02020128
+ bx r3
+ .balign 4
+_0200C654: .word FUN_02020128
+
+ thumb_func_start FUN_0200C658
+FUN_0200C658: ; 0x0200C658
+ ldr r3, _0200C660 ; =FUN_0200C650
+ ldr r0, [r0, #0x0]
+ bx r3
+ nop
+_0200C660: .word FUN_0200C650
+
+ thumb_func_start FUN_0200C664
+FUN_0200C664: ; 0x0200C664
+ ldr r3, _0200C668 ; =FUN_02020248
+ bx r3
+ .balign 4
+_0200C668: .word FUN_02020248
+
+ thumb_func_start FUN_0200C66C
+FUN_0200C66C: ; 0x0200C66C
+ ldr r3, _0200C674 ; =FUN_0200C664
+ ldr r0, [r0, #0x0]
+ bx r3
+ nop
+_0200C674: .word FUN_0200C664
+
+ thumb_func_start FUN_0200C678
+FUN_0200C678: ; 0x0200C678
+ ldr r3, _0200C67C ; =FUN_020202A8
+ bx r3
+ .balign 4
+_0200C67C: .word FUN_020202A8
+
+ thumb_func_start FUN_0200C680
+FUN_0200C680: ; 0x0200C680
+ ldr r3, _0200C688 ; =FUN_0200C678
+ ldr r0, [r0, #0x0]
+ bx r3
+ nop
+_0200C688: .word FUN_0200C678
+
+ thumb_func_start FUN_0200C68C
+FUN_0200C68C: ; 0x0200C68C
+ ldr r3, _0200C694 ; =FUN_02020300
+ ldr r0, [r0, #0x0]
+ bx r3
+ nop
+_0200C694: .word FUN_02020300
+
+ thumb_func_start FUN_0200C698
+FUN_0200C698: ; 0x0200C698
+ ldr r3, _0200C6A0 ; =FUN_02020238
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ bx r3
+ .balign 4
+_0200C6A0: .word FUN_02020238
+
+ thumb_func_start FUN_0200C6A4
+FUN_0200C6A4: ; 0x0200C6A4
+ ldr r3, _0200C6AC ; =0x02020241
+ ldr r0, [r0, #0x0]
+ bx r3
+ nop
+_0200C6AC: .word 0x02020241
+
+ thumb_func_start FUN_0200C6B0
+FUN_0200C6B0: ; 0x0200C6B0
+ ldr r3, _0200C6B8 ; =FUN_0200C698
+ ldr r0, [r0, #0x0]
+ bx r3
+ nop
+_0200C6B8: .word FUN_0200C698
+
+ thumb_func_start FUN_0200C6BC
+FUN_0200C6BC: ; 0x0200C6BC
+ ldr r3, _0200C6C0 ; =FUN_02020310
+ bx r3
+ .balign 4
+_0200C6C0: .word FUN_02020310
+
+ thumb_func_start FUN_0200C6C4
+FUN_0200C6C4: ; 0x0200C6C4
+ ldr r3, _0200C6CC ; =FUN_0200C6BC
+ ldr r0, [r0, #0x0]
+ bx r3
+ nop
+_0200C6CC: .word FUN_0200C6BC
+
+ thumb_func_start FUN_0200C6D0
+FUN_0200C6D0: ; 0x0200C6D0
+ ldr r3, _0200C6D4 ; =FUN_0202032C
+ bx r3
+ .balign 4
+_0200C6D4: .word FUN_0202032C
+
+ thumb_func_start FUN_0200C6D8
+FUN_0200C6D8: ; 0x0200C6D8
+ ldr r3, _0200C6E0 ; =FUN_0200C6D0
+ ldr r0, [r0, #0x0]
+ bx r3
+ nop
+_0200C6E0: .word FUN_0200C6D0
+
+ thumb_func_start FUN_0200C6E4
+FUN_0200C6E4: ; 0x0200C6E4
+ push {r3-r4, lr}
+ sub sp, #0xc
+ lsl r1, r1, #0xc
+ str r1, [sp, #0x0]
+ lsl r1, r2, #0xc
+ add r4, r0, #0x0
+ str r1, [sp, #0x4]
+ bl FUN_02020380
+ cmp r0, #0x2
+ bne _0200C704
+ mov r0, #0x3
+ ldr r1, [sp, #0x4]
+ lsl r0, r0, #0x12
+ add r0, r1, r0
+ str r0, [sp, #0x4]
+_0200C704:
+ mov r0, #0x0
+ str r0, [sp, #0x8]
+ add r0, r4, #0x0
+ add r1, sp, #0x0
+ bl FUN_02020044
+ add sp, #0xc
+ pop {r3-r4, pc}
+
+ thumb_func_start FUN_0200C714
+FUN_0200C714: ; 0x0200C714
+ ldr r3, _0200C71C ; =FUN_0200C6E4
+ ldr r0, [r0, #0x0]
+ bx r3
+ nop
+_0200C71C: .word FUN_0200C6E4
+
+ thumb_func_start FUN_0200C720
+FUN_0200C720: ; 0x0200C720
+ push {r4-r5, lr}
+ sub sp, #0xc
+ lsl r1, r1, #0xc
+ str r1, [sp, #0x0]
+ lsl r1, r2, #0xc
+ add r5, r0, #0x0
+ add r4, r3, #0x0
+ str r1, [sp, #0x4]
+ bl FUN_02020380
+ cmp r0, #0x2
+ bne _0200C73E
+ ldr r0, [sp, #0x4]
+ add r0, r0, r4
+ str r0, [sp, #0x4]
+_0200C73E:
+ mov r0, #0x0
+ str r0, [sp, #0x8]
+ add r0, r5, #0x0
+ add r1, sp, #0x0
+ bl FUN_02020044
+ add sp, #0xc
+ pop {r4-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_0200C750
+FUN_0200C750: ; 0x0200C750
+ push {r3, lr}
+ ldr r0, [r0, #0x0]
+ bl FUN_0200C720
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_0200C75C
+FUN_0200C75C: ; 0x0200C75C
+ push {r3-r7, lr}
+ add r7, r0, #0x0
+ add r6, r1, #0x0
+ add r5, r2, #0x0
+ bl FUN_0202011C
+ add r4, r0, #0x0
+ ldr r1, [r4, #0x0]
+ asr r0, r1, #0xb
+ lsr r0, r0, #0x14
+ add r0, r1, r0
+ asr r0, r0, #0xc
+ strh r0, [r6, #0x0]
+ add r0, r7, #0x0
+ bl FUN_02020380
+ cmp r0, #0x2
+ ldr r1, [r4, #0x4]
+ bne _0200C794
+ mov r0, #0x3
+ lsl r0, r0, #0x12
+ sub r1, r1, r0
+ asr r0, r1, #0xb
+ lsr r0, r0, #0x14
+ add r0, r1, r0
+ asr r0, r0, #0xc
+ strh r0, [r5, #0x0]
+ pop {r3-r7, pc}
+_0200C794:
+ asr r0, r1, #0xb
+ lsr r0, r0, #0x14
+ add r0, r1, r0
+ asr r0, r0, #0xc
+ strh r0, [r5, #0x0]
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_0200C7A0
+FUN_0200C7A0: ; 0x0200C7A0
+ ldr r3, _0200C7A8 ; =FUN_0200C75C
+ ldr r0, [r0, #0x0]
+ bx r3
+ nop
+_0200C7A8: .word FUN_0200C75C
+
+ thumb_func_start FUN_0200C7AC
+FUN_0200C7AC: ; 0x0200C7AC
+ push {r3-r7, lr}
+ str r0, [sp, #0x0]
+ add r6, r1, #0x0
+ add r5, r2, #0x0
+ add r7, r3, #0x0
+ bl FUN_0202011C
+ add r4, r0, #0x0
+ ldr r1, [r4, #0x0]
+ asr r0, r1, #0xb
+ lsr r0, r0, #0x14
+ add r0, r1, r0
+ asr r0, r0, #0xc
+ strh r0, [r6, #0x0]
+ ldr r0, [sp, #0x0]
+ bl FUN_02020380
+ cmp r0, #0x2
+ bne _0200C7E2
+ ldr r0, [r4, #0x4]
+ sub r1, r0, r7
+ asr r0, r1, #0xb
+ lsr r0, r0, #0x14
+ add r0, r1, r0
+ asr r0, r0, #0xc
+ strh r0, [r5, #0x0]
+ pop {r3-r7, pc}
+_0200C7E2:
+ ldr r1, [r4, #0x4]
+ asr r0, r1, #0xb
+ lsr r0, r0, #0x14
+ add r0, r1, r0
+ asr r0, r0, #0xc
+ strh r0, [r5, #0x0]
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_0200C7F0
+FUN_0200C7F0: ; 0x0200C7F0
+ push {r3, lr}
+ ldr r0, [r0, #0x0]
+ bl FUN_0200C7AC
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_0200C7FC
+FUN_0200C7FC: ; 0x0200C7FC
+ push {r3-r6, lr}
+ sub sp, #0xc
+ add r6, r0, #0x0
+ add r5, r1, #0x0
+ add r4, r2, #0x0
+ bl FUN_0202011C
+ ldr r2, [r0, #0x0]
+ lsl r1, r5, #0xc
+ add r1, r2, r1
+ str r1, [sp, #0x0]
+ ldr r2, [r0, #0x4]
+ lsl r1, r4, #0xc
+ add r1, r2, r1
+ str r1, [sp, #0x4]
+ ldr r0, [r0, #0x8]
+ add r1, sp, #0x0
+ str r0, [sp, #0x8]
+ add r0, r6, #0x0
+ bl FUN_02020044
+ add sp, #0xc
+ pop {r3-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_0200C82C
+FUN_0200C82C: ; 0x0200C82C
+ ldr r3, _0200C834 ; =FUN_0200C7FC
+ ldr r0, [r0, #0x0]
+ bx r3
+ nop
+_0200C834: .word FUN_0200C7FC
+
+ thumb_func_start FUN_0200C838
+FUN_0200C838: ; 0x0200C838
+ ldr r3, _0200C83C ; =FUN_020200EC
+ bx r3
+ .balign 4
+_0200C83C: .word FUN_020200EC
+
+ thumb_func_start FUN_0200C840
+FUN_0200C840: ; 0x0200C840
+ ldr r3, _0200C848 ; =0x0200C839
+ ldr r0, [r0, #0x0]
+ bx r3
+ nop
+_0200C848: .word 0x0200C839
+
+ thumb_func_start FUN_0200C84C
+FUN_0200C84C: ; 0x0200C84C
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ add r6, r1, #0x0
+ add r7, r2, #0x0
+ bl FUN_02020120
+ add r4, r0, #0x0
+ ldr r0, _0200C880 ; =0x45800000
+ add r1, r6, #0x0
+ blx _fmul
+ blx _ffix
+ str r0, [r4, #0x0]
+ ldr r0, _0200C880 ; =0x45800000
+ add r1, r7, #0x0
+ blx _fmul
+ blx _ffix
+ str r0, [r4, #0x4]
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_02020064
+ pop {r3-r7, pc}
+ .balign 4
+_0200C880: .word 0x45800000
+
+ thumb_func_start FUN_0200C884
+FUN_0200C884: ; 0x0200C884
+ ldr r3, _0200C88C ; =FUN_0200C84C
+ ldr r0, [r0, #0x0]
+ bx r3
+ nop
+_0200C88C: .word FUN_0200C84C
+
+ thumb_func_start FUN_0200C890
+FUN_0200C890: ; 0x0200C890
+ ldr r3, _0200C894 ; =FUN_02020088
+ bx r3
+ .balign 4
+_0200C894: .word FUN_02020088
+
+ thumb_func_start FUN_0200C898
+FUN_0200C898: ; 0x0200C898
+ ldr r3, _0200C8A0 ; =FUN_0200C890
+ ldr r0, [r0, #0x0]
+ bx r3
+ nop
+_0200C8A0: .word FUN_0200C890
+
+ thumb_func_start FUN_0200C8A4
+FUN_0200C8A4: ; 0x0200C8A4
+ push {r3-r5, lr}
+ add r5, r1, #0x0
+ add r4, r0, #0x0
+ bl FUN_02020124
+ add r0, r0, r5
+ lsl r0, r0, #0x10
+ lsr r1, r0, #0x10
+ add r0, r4, #0x0
+ bl FUN_02020088
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_0200C8BC
+FUN_0200C8BC: ; 0x0200C8BC
+ ldr r3, _0200C8C4 ; =FUN_0200C8A4
+ ldr r0, [r0, #0x0]
+ bx r3
+ nop
+_0200C8C4: .word FUN_0200C8A4
+
+ thumb_func_start FUN_0200C8C8
+FUN_0200C8C8: ; 0x0200C8C8
+ ldr r3, _0200C8CC ; =FUN_02020100
+ bx r3
+ .balign 4
+_0200C8CC: .word FUN_02020100
+
+ thumb_func_start FUN_0200C8D0
+FUN_0200C8D0: ; 0x0200C8D0
+ ldr r3, _0200C8D8 ; =FUN_0200C8C8
+ ldr r0, [r0, #0x0]
+ bx r3
+ nop
+_0200C8D8: .word FUN_0200C8C8
+
+ thumb_func_start FUN_0200C8DC
+FUN_0200C8DC: ; 0x0200C8DC
+ push {lr}
+ sub sp, #0xc
+ lsl r1, r1, #0xc
+ str r1, [sp, #0x0]
+ lsl r1, r2, #0xc
+ str r1, [sp, #0x4]
+ mov r1, #0x0
+ str r1, [sp, #0x8]
+ ldr r0, [r0, #0x0]
+ add r1, sp, #0x0
+ bl FUN_02020054
+ add sp, #0xc
+ pop {pc}
+
+ thumb_func_start FUN_0200C8F8
+FUN_0200C8F8: ; 0x0200C8F8
+ ldr r3, _0200C900 ; =0x02020359
+ ldr r0, [r0, #0x0]
+ bx r3
+ nop
+_0200C900: .word 0x02020359
+
+ thumb_func_start FUN_0200C904
+FUN_0200C904: ; 0x0200C904
+ ldr r3, _0200C908 ; =FUN_02020398
+ bx r3
+ .balign 4
+_0200C908: .word FUN_02020398
+
+ thumb_func_start FUN_0200C90C
+FUN_0200C90C: ; 0x0200C90C
+ ldr r3, _0200C914 ; =FUN_0200C904
+ ldr r0, [r0, #0x0]
+ bx r3
+ nop
+_0200C914: .word FUN_0200C904
+
+ thumb_func_start FUN_0200C918
+FUN_0200C918: ; 0x0200C918
+ push {r4-r7, lr}
+ sub sp, #0xc
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ ldr r0, [r4, #0xc]
+ ldr r1, [sp, #0x28]
+ add r6, r2, #0x0
+ add r7, r3, #0x0
+ bl FUN_0200945C
+ cmp r0, #0x0
+ bne _0200C936
+ add sp, #0xc
+ mov r0, #0x0
+ pop {r4-r7, pc}
+_0200C936:
+ ldr r0, [sp, #0x28]
+ ldr r3, [sp, #0x20]
+ str r0, [sp, #0x0]
+ ldr r0, [sp, #0x24]
+ add r1, r6, #0x0
+ str r0, [sp, #0x4]
+ ldr r0, [r5, #0x0]
+ add r2, r7, #0x0
+ str r0, [sp, #0x8]
+ ldr r0, [r4, #0xc]
+ bl FUN_02008F34
+ add r5, r0, #0x0
+ beq _0200C964
+ bl FUN_02009AC4
+ ldr r0, [r4, #0x24]
+ add r1, r5, #0x0
+ bl FUN_0200C474
+ add sp, #0xc
+ mov r0, #0x1
+ pop {r4-r7, pc}
+_0200C964:
+ bl ErrorHandling
+ cmp r5, #0x0
+ beq _0200C972
+ add sp, #0xc
+ mov r0, #0x1
+ pop {r4-r7, pc}
+_0200C972:
+ mov r0, #0x0
+ add sp, #0xc
+ pop {r4-r7, pc}
+
+ thumb_func_start FUN_0200C978
+FUN_0200C978: ; 0x0200C978
+ push {r4-r7, lr}
+ sub sp, #0xc
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ ldr r0, [r4, #0xc]
+ ldr r1, [sp, #0x28]
+ add r6, r2, #0x0
+ add r7, r3, #0x0
+ bl FUN_0200945C
+ cmp r0, #0x0
+ bne _0200C996
+ add sp, #0xc
+ mov r0, #0x0
+ pop {r4-r7, pc}
+_0200C996:
+ ldr r0, [sp, #0x28]
+ ldr r3, [sp, #0x20]
+ str r0, [sp, #0x0]
+ ldr r0, [sp, #0x24]
+ add r1, r6, #0x0
+ str r0, [sp, #0x4]
+ ldr r0, [r5, #0x0]
+ add r2, r7, #0x0
+ str r0, [sp, #0x8]
+ ldr r0, [r4, #0xc]
+ bl FUN_02008F34
+ add r5, r0, #0x0
+ beq _0200C9C4
+ bl FUN_02009B78
+ ldr r0, [r4, #0x24]
+ add r1, r5, #0x0
+ bl FUN_0200C474
+ add sp, #0xc
+ mov r0, #0x1
+ pop {r4-r7, pc}
+_0200C9C4:
+ bl ErrorHandling
+ cmp r5, #0x0
+ beq _0200C9D2
+ add sp, #0xc
+ mov r0, #0x1
+ pop {r4-r7, pc}
+_0200C9D2:
+ mov r0, #0x0
+ add sp, #0xc
+ pop {r4-r7, pc}
+
+ thumb_func_start FUN_0200C9D8
+FUN_0200C9D8: ; 0x0200C9D8
+ push {r4-r7, lr}
+ sub sp, #0xc
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ ldr r0, [r4, #0xc]
+ ldr r1, [sp, #0x24]
+ add r7, r2, #0x0
+ str r3, [sp, #0x8]
+ bl FUN_020094F0
+ add r6, r0, #0x0
+ ldr r0, [sp, #0x20]
+ ldr r3, [sp, #0x8]
+ str r0, [sp, #0x0]
+ ldr r0, [r5, #0x0]
+ add r1, r6, #0x0
+ str r0, [sp, #0x4]
+ ldr r0, [r4, #0xc]
+ add r2, r7, #0x0
+ bl FUN_020090FC
+ add r0, r6, #0x0
+ bl FUN_02009BE8
+ add sp, #0xc
+ pop {r4-r7, pc}
+
+ thumb_func_start FUN_0200CA0C
+FUN_0200CA0C: ; 0x0200CA0C
+ push {r4-r7, lr}
+ sub sp, #0xc
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ ldr r0, [r4, #0x10]
+ ldr r1, [sp, #0x24]
+ add r7, r2, #0x0
+ str r3, [sp, #0x8]
+ bl FUN_020094F0
+ add r6, r0, #0x0
+ ldr r0, [sp, #0x20]
+ ldr r3, [sp, #0x8]
+ str r0, [sp, #0x0]
+ ldr r0, [r5, #0x0]
+ add r1, r6, #0x0
+ str r0, [sp, #0x4]
+ ldr r0, [r4, #0x10]
+ add r2, r7, #0x0
+ bl FUN_02009168
+ add r0, r6, #0x0
+ bl FUN_02009DE0
+ add sp, #0xc
+ pop {r4-r7, pc}
+
+ thumb_func_start FUN_0200CA40
+FUN_0200CA40: ; 0x0200CA40
+ ldr r0, [r0, #0x0]
+ bx lr
+
+ thumb_func_start FUN_0200CA44
+FUN_0200CA44: ; 0x0200CA44
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ ldr r0, _0200CA5C ; =0x021C48B8
+ add r4, r1, #0x0
+ add r3, r2, #0x0
+ ldr r0, [r0, #0x18]
+ add r1, r5, #0x0
+ add r2, r4, #0x0
+ bl FUN_0201B60C
+ pop {r3-r5, pc}
+ nop
+_0200CA5C: .word 0x021C48B8
+
+ thumb_func_start FUN_0200CA60
+FUN_0200CA60: ; 0x0200CA60
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ ldr r0, _0200CA78 ; =0x021C48B8
+ add r4, r1, #0x0
+ add r3, r2, #0x0
+ ldr r0, [r0, #0x1c]
+ add r1, r5, #0x0
+ add r2, r4, #0x0
+ bl FUN_0201B60C
+ pop {r3-r5, pc}
+ nop
+_0200CA78: .word 0x021C48B8
+
+ thumb_func_start FUN_0200CA7C
+FUN_0200CA7C: ; 0x0200CA7C
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ ldr r0, _0200CA94 ; =0x021C48B8
+ add r4, r1, #0x0
+ add r3, r2, #0x0
+ ldr r0, [r0, #0x24]
+ add r1, r5, #0x0
+ add r2, r4, #0x0
+ bl FUN_0201B60C
+ pop {r3-r5, pc}
+ nop
+_0200CA94: .word 0x021C48B8
+
+ thumb_func_start FUN_0200CA98
+FUN_0200CA98: ; 0x0200CA98
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ ldr r0, _0200CAB0 ; =0x021C48B8
+ add r4, r1, #0x0
+ add r3, r2, #0x0
+ ldr r0, [r0, #0x20]
+ add r1, r5, #0x0
+ add r2, r4, #0x0
+ bl FUN_0201B60C
+ pop {r3-r5, pc}
+ nop
+_0200CAB0: .word 0x021C48B8
+
+ thumb_func_start FUN_0200CAB4
+FUN_0200CAB4: ; 0x0200CAB4
+ ldr r3, _0200CAB8 ; =FUN_0201B6A0
+ bx r3
+ .balign 4
+_0200CAB8: .word FUN_0201B6A0
+
+ thumb_func_start FUN_0200CABC
+FUN_0200CABC: ; 0x0200CABC
+ push {r3-r5, lr}
+ sub sp, #0x10
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ cmp r3, #0x0
+ str r2, [sp, #0x0]
+ bne _0200CAE2
+ mov r1, #0x0
+ str r1, [sp, #0x4]
+ ldr r0, [sp, #0x20]
+ str r1, [sp, #0x8]
+ str r0, [sp, #0xc]
+ mov r0, #0x26
+ add r2, r5, #0x0
+ add r3, r4, #0x0
+ bl FUN_0200687C
+ add sp, #0x10
+ pop {r3-r5, pc}
+_0200CAE2:
+ mov r0, #0x0
+ str r0, [sp, #0x4]
+ str r0, [sp, #0x8]
+ ldr r0, [sp, #0x20]
+ mov r1, #0x1
+ str r0, [sp, #0xc]
+ mov r0, #0x26
+ add r2, r5, #0x0
+ add r3, r4, #0x0
+ bl FUN_0200687C
+ add sp, #0x10
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_0200CAFC
+FUN_0200CAFC: ; 0x0200CAFC
+ mov r0, #0x18
+ bx lr
+
+ thumb_func_start FUN_0200CB00
+FUN_0200CB00: ; 0x0200CB00
+ push {r4-r6, lr}
+ sub sp, #0x10
+ add r6, r0, #0x0
+ add r0, sp, #0x10
+ ldrb r0, [r0, #0x10]
+ add r5, r1, #0x0
+ add r4, r3, #0x0
+ cmp r0, #0x0
+ beq _0200CB16
+ mov r1, #0x1
+ b _0200CB18
+_0200CB16:
+ mov r1, #0x0
+_0200CB18:
+ str r2, [sp, #0x0]
+ mov r0, #0x0
+ str r0, [sp, #0x4]
+ str r0, [sp, #0x8]
+ ldr r0, [sp, #0x24]
+ add r2, r6, #0x0
+ str r0, [sp, #0xc]
+ mov r0, #0x26
+ add r3, r5, #0x0
+ bl FUN_0200687C
+ add r0, sp, #0x10
+ ldrb r0, [r0, #0x10]
+ cmp r0, #0x2
+ bne _0200CB3A
+ mov r1, #0x2d
+ b _0200CB3C
+_0200CB3A:
+ mov r1, #0x18
+_0200CB3C:
+ cmp r5, #0x4
+ bhs _0200CB56
+ mov r0, #0x20
+ str r0, [sp, #0x0]
+ ldr r0, [sp, #0x24]
+ mov r2, #0x0
+ str r0, [sp, #0x4]
+ mov r0, #0x26
+ lsl r3, r4, #0x5
+ bl FUN_02006930
+ add sp, #0x10
+ pop {r4-r6, pc}
+_0200CB56:
+ mov r0, #0x20
+ str r0, [sp, #0x0]
+ ldr r0, [sp, #0x24]
+ mov r2, #0x4
+ str r0, [sp, #0x4]
+ mov r0, #0x26
+ lsl r3, r4, #0x5
+ bl FUN_02006930
+ add sp, #0x10
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_0200CB6C
+FUN_0200CB6C: ; 0x0200CB6C
+ push {r4-r7, lr}
+ sub sp, #0x24
+ str r1, [sp, #0x14]
+ str r2, [sp, #0x18]
+ str r3, [sp, #0x1c]
+ ldr r2, [sp, #0x1c]
+ ldr r5, [sp, #0x40]
+ sub r7, r2, #0x1
+ ldr r2, [sp, #0x18]
+ str r0, [sp, #0x10]
+ sub r6, r2, #0x1
+ lsl r2, r7, #0x18
+ lsr r2, r2, #0x18
+ str r2, [sp, #0x0]
+ mov r2, #0x1
+ str r2, [sp, #0x4]
+ str r2, [sp, #0x8]
+ lsl r3, r6, #0x18
+ str r5, [sp, #0xc]
+ add r2, sp, #0x28
+ ldrh r2, [r2, #0x1c]
+ lsr r3, r3, #0x18
+ bl FUN_02018540
+ add r1, sp, #0x28
+ ldrh r4, [r1, #0x1c]
+ lsl r0, r7, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x0]
+ ldrb r0, [r1, #0x10]
+ add r2, r4, #0x1
+ lsl r2, r2, #0x10
+ str r0, [sp, #0x4]
+ mov r0, #0x1
+ str r0, [sp, #0x8]
+ str r5, [sp, #0xc]
+ ldr r0, [sp, #0x10]
+ ldr r1, [sp, #0x14]
+ ldr r3, [sp, #0x18]
+ lsr r2, r2, #0x10
+ bl FUN_02018540
+ add r0, sp, #0x28
+ ldrb r1, [r0, #0x10]
+ ldr r0, [sp, #0x18]
+ add r2, r4, #0x2
+ add r0, r0, r1
+ str r0, [sp, #0x20]
+ lsl r0, r7, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x0]
+ mov r0, #0x1
+ str r0, [sp, #0x4]
+ str r0, [sp, #0x8]
+ ldr r3, [sp, #0x20]
+ str r5, [sp, #0xc]
+ lsl r2, r2, #0x10
+ lsl r3, r3, #0x18
+ ldr r0, [sp, #0x10]
+ ldr r1, [sp, #0x14]
+ lsr r2, r2, #0x10
+ lsr r3, r3, #0x18
+ bl FUN_02018540
+ ldr r0, [sp, #0x1c]
+ add r2, r4, #0x3
+ str r0, [sp, #0x0]
+ mov r0, #0x1
+ str r0, [sp, #0x4]
+ add r0, sp, #0x28
+ ldrb r0, [r0, #0x14]
+ lsl r2, r2, #0x10
+ lsl r3, r6, #0x18
+ str r0, [sp, #0x8]
+ str r5, [sp, #0xc]
+ ldr r0, [sp, #0x10]
+ ldr r1, [sp, #0x14]
+ lsr r2, r2, #0x10
+ lsr r3, r3, #0x18
+ bl FUN_02018540
+ ldr r0, [sp, #0x1c]
+ ldr r3, [sp, #0x20]
+ str r0, [sp, #0x0]
+ mov r0, #0x1
+ str r0, [sp, #0x4]
+ add r0, sp, #0x28
+ ldrb r0, [r0, #0x14]
+ add r2, r4, #0x5
+ lsl r2, r2, #0x10
+ str r0, [sp, #0x8]
+ str r5, [sp, #0xc]
+ lsl r3, r3, #0x18
+ ldr r0, [sp, #0x10]
+ ldr r1, [sp, #0x14]
+ lsr r2, r2, #0x10
+ lsr r3, r3, #0x18
+ bl FUN_02018540
+ add r0, sp, #0x28
+ ldrb r1, [r0, #0x14]
+ ldr r0, [sp, #0x1c]
+ add r2, r4, #0x6
+ add r7, r0, r1
+ lsl r0, r7, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x0]
+ mov r0, #0x1
+ str r0, [sp, #0x4]
+ str r0, [sp, #0x8]
+ str r5, [sp, #0xc]
+ lsl r2, r2, #0x10
+ lsl r3, r6, #0x18
+ ldr r0, [sp, #0x10]
+ ldr r1, [sp, #0x14]
+ lsr r2, r2, #0x10
+ lsr r3, r3, #0x18
+ bl FUN_02018540
+ lsl r0, r7, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x0]
+ add r0, sp, #0x28
+ ldrb r0, [r0, #0x10]
+ add r2, r4, #0x7
+ lsl r2, r2, #0x10
+ str r0, [sp, #0x4]
+ mov r0, #0x1
+ str r0, [sp, #0x8]
+ str r5, [sp, #0xc]
+ ldr r0, [sp, #0x10]
+ ldr r1, [sp, #0x14]
+ ldr r3, [sp, #0x18]
+ lsr r2, r2, #0x10
+ bl FUN_02018540
+ lsl r0, r7, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x0]
+ mov r0, #0x1
+ str r0, [sp, #0x4]
+ str r0, [sp, #0x8]
+ ldr r3, [sp, #0x20]
+ str r5, [sp, #0xc]
+ add r4, #0x8
+ lsl r2, r4, #0x10
+ lsl r3, r3, #0x18
+ ldr r0, [sp, #0x10]
+ ldr r1, [sp, #0x14]
+ lsr r2, r2, #0x10
+ lsr r3, r3, #0x18
+ bl FUN_02018540
+ add sp, #0x24
+ pop {r4-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_0200CCA4
+FUN_0200CCA4: ; 0x0200CCA4
+ push {r3-r7, lr}
+ sub sp, #0x20
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ add r6, r2, #0x0
+ add r7, r3, #0x0
+ bl FUN_0201AB08
+ str r0, [sp, #0x10]
+ add r0, r5, #0x0
+ bl FUN_0201AB14
+ str r0, [sp, #0x14]
+ add r0, r5, #0x0
+ bl FUN_0201AB18
+ str r0, [sp, #0x18]
+ add r0, r5, #0x0
+ bl FUN_0201AB0C
+ str r0, [sp, #0x1c]
+ add r0, r5, #0x0
+ bl FUN_0201AB10
+ ldr r1, [sp, #0x1c]
+ ldr r2, [sp, #0x14]
+ str r1, [sp, #0x0]
+ str r0, [sp, #0x4]
+ str r7, [sp, #0x8]
+ str r6, [sp, #0xc]
+ ldr r0, [r5, #0x0]
+ ldr r1, [sp, #0x10]
+ ldr r3, [sp, #0x18]
+ bl FUN_0200CB6C
+ cmp r4, #0x0
+ bne _0200CCF4
+ add r0, r5, #0x0
+ bl FUN_020191D0
+_0200CCF4:
+ add sp, #0x20
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_0200CCF8
+FUN_0200CCF8: ; 0x0200CCF8
+ push {r3-r7, lr}
+ sub sp, #0x18
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ bl FUN_0201AB08
+ str r0, [sp, #0x10]
+ add r0, r5, #0x0
+ bl FUN_0201AB14
+ add r6, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_0201AB18
+ add r7, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_0201AB0C
+ str r0, [sp, #0x14]
+ add r0, r5, #0x0
+ bl FUN_0201AB10
+ sub r1, r7, #0x1
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ str r1, [sp, #0x0]
+ ldr r1, [sp, #0x14]
+ add r0, r0, #0x2
+ add r1, r1, #0x2
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ lsl r0, r0, #0x18
+ str r1, [sp, #0x4]
+ lsr r0, r0, #0x18
+ sub r3, r6, #0x1
+ lsl r3, r3, #0x18
+ str r0, [sp, #0x8]
+ mov r2, #0x0
+ str r2, [sp, #0xc]
+ ldr r0, [r5, #0x0]
+ ldr r1, [sp, #0x10]
+ lsr r3, r3, #0x18
+ bl FUN_02018540
+ cmp r4, #0x0
+ bne _0200CD5A
+ add r0, r5, #0x0
+ bl FUN_02019570
+_0200CD5A:
+ add sp, #0x18
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_0200CD60
+FUN_0200CD60: ; 0x0200CD60
+ add r0, r0, #0x2
+ bx lr
+
+ thumb_func_start FUN_0200CD64
+FUN_0200CD64: ; 0x0200CD64
+ add r0, #0x19
+ bx lr
+
+ thumb_func_start FUN_0200CD68
+FUN_0200CD68: ; 0x0200CD68
+ push {r4-r7, lr}
+ sub sp, #0x14
+ str r0, [sp, #0x10]
+ add r0, sp, #0x18
+ ldrb r7, [r0, #0x10]
+ add r6, r2, #0x0
+ add r5, r1, #0x0
+ add r0, r7, #0x0
+ add r4, r3, #0x0
+ bl FUN_0200CD60
+ add r1, r0, #0x0
+ str r6, [sp, #0x0]
+ mov r0, #0x0
+ str r0, [sp, #0x4]
+ str r0, [sp, #0x8]
+ ldr r0, [sp, #0x2c]
+ ldr r2, [sp, #0x10]
+ str r0, [sp, #0xc]
+ mov r0, #0x26
+ add r3, r5, #0x0
+ bl FUN_0200687C
+ cmp r5, #0x4
+ bhs _0200CDB8
+ add r0, r7, #0x0
+ bl FUN_0200CD64
+ add r1, r0, #0x0
+ mov r0, #0x20
+ str r0, [sp, #0x0]
+ ldr r0, [sp, #0x2c]
+ mov r2, #0x0
+ str r0, [sp, #0x4]
+ mov r0, #0x26
+ lsl r3, r4, #0x5
+ bl FUN_02006930
+ add sp, #0x14
+ pop {r4-r7, pc}
+_0200CDB8:
+ add r0, r7, #0x0
+ bl FUN_0200CD64
+ add r1, r0, #0x0
+ mov r0, #0x20
+ str r0, [sp, #0x0]
+ ldr r0, [sp, #0x2c]
+ mov r2, #0x4
+ str r0, [sp, #0x4]
+ mov r0, #0x26
+ lsl r3, r4, #0x5
+ bl FUN_02006930
+ add sp, #0x14
+ pop {r4-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_0200CDD8
+FUN_0200CDD8: ; 0x0200CDD8
+ push {r3-r7, lr}
+ sub sp, #0x30
+ str r1, [sp, #0x10]
+ str r2, [sp, #0x14]
+ str r3, [sp, #0x18]
+ ldr r2, [sp, #0x4c]
+ add r7, r0, #0x0
+ str r2, [sp, #0x4c]
+ ldr r2, [sp, #0x18]
+ ldr r5, [sp, #0x50]
+ sub r6, r2, #0x1
+ ldr r2, [sp, #0x14]
+ sub r2, r2, #0x2
+ str r2, [sp, #0x28]
+ lsl r2, r6, #0x18
+ lsr r2, r2, #0x18
+ str r2, [sp, #0x0]
+ mov r2, #0x1
+ str r2, [sp, #0x4]
+ str r2, [sp, #0x8]
+ ldr r3, [sp, #0x28]
+ str r5, [sp, #0xc]
+ add r2, sp, #0x38
+ lsl r3, r3, #0x18
+ ldrh r2, [r2, #0x1c]
+ lsr r3, r3, #0x18
+ bl FUN_02018540
+ ldr r0, [sp, #0x14]
+ sub r0, r0, #0x1
+ str r0, [sp, #0x24]
+ add r0, sp, #0x38
+ ldrh r4, [r0, #0x1c]
+ lsl r0, r6, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x0]
+ mov r0, #0x1
+ str r0, [sp, #0x4]
+ str r0, [sp, #0x8]
+ ldr r3, [sp, #0x24]
+ str r5, [sp, #0xc]
+ add r2, r4, #0x1
+ lsl r2, r2, #0x10
+ lsl r3, r3, #0x18
+ ldr r1, [sp, #0x10]
+ add r0, r7, #0x0
+ lsr r2, r2, #0x10
+ lsr r3, r3, #0x18
+ bl FUN_02018540
+ lsl r0, r6, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x0]
+ add r0, sp, #0x38
+ ldrb r0, [r0, #0x10]
+ add r2, r4, #0x2
+ lsl r2, r2, #0x10
+ str r0, [sp, #0x4]
+ mov r0, #0x1
+ str r0, [sp, #0x8]
+ str r5, [sp, #0xc]
+ ldr r1, [sp, #0x10]
+ ldr r3, [sp, #0x14]
+ add r0, r7, #0x0
+ lsr r2, r2, #0x10
+ bl FUN_02018540
+ add r0, sp, #0x38
+ ldrb r1, [r0, #0x10]
+ ldr r0, [sp, #0x14]
+ add r2, r4, #0x3
+ add r0, r0, r1
+ str r0, [sp, #0x2c]
+ lsl r0, r6, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x0]
+ mov r0, #0x1
+ str r0, [sp, #0x4]
+ str r0, [sp, #0x8]
+ ldr r3, [sp, #0x2c]
+ str r5, [sp, #0xc]
+ lsl r2, r2, #0x10
+ lsl r3, r3, #0x18
+ ldr r1, [sp, #0x10]
+ add r0, r7, #0x0
+ lsr r2, r2, #0x10
+ lsr r3, r3, #0x18
+ bl FUN_02018540
+ ldr r0, [sp, #0x2c]
+ add r2, r4, #0x4
+ add r0, r0, #0x1
+ str r0, [sp, #0x20]
+ lsl r0, r6, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x0]
+ mov r0, #0x1
+ str r0, [sp, #0x4]
+ str r0, [sp, #0x8]
+ ldr r3, [sp, #0x20]
+ str r5, [sp, #0xc]
+ lsl r2, r2, #0x10
+ lsl r3, r3, #0x18
+ ldr r1, [sp, #0x10]
+ add r0, r7, #0x0
+ lsr r2, r2, #0x10
+ lsr r3, r3, #0x18
+ bl FUN_02018540
+ ldr r0, [sp, #0x2c]
+ add r2, r4, #0x5
+ add r0, r0, #0x2
+ str r0, [sp, #0x1c]
+ lsl r0, r6, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x0]
+ mov r0, #0x1
+ str r0, [sp, #0x4]
+ str r0, [sp, #0x8]
+ ldr r3, [sp, #0x1c]
+ str r5, [sp, #0xc]
+ lsl r2, r2, #0x10
+ lsl r3, r3, #0x18
+ ldr r1, [sp, #0x10]
+ add r0, r7, #0x0
+ lsr r2, r2, #0x10
+ lsr r3, r3, #0x18
+ bl FUN_02018540
+ ldr r0, [sp, #0x18]
+ ldr r3, [sp, #0x28]
+ str r0, [sp, #0x0]
+ mov r0, #0x1
+ str r0, [sp, #0x4]
+ ldr r0, [sp, #0x4c]
+ add r2, r4, #0x6
+ str r0, [sp, #0x8]
+ str r5, [sp, #0xc]
+ lsl r2, r2, #0x10
+ lsl r3, r3, #0x18
+ ldr r1, [sp, #0x10]
+ add r0, r7, #0x0
+ lsr r2, r2, #0x10
+ lsr r3, r3, #0x18
+ bl FUN_02018540
+ ldr r0, [sp, #0x18]
+ ldr r3, [sp, #0x24]
+ str r0, [sp, #0x0]
+ mov r0, #0x1
+ str r0, [sp, #0x4]
+ ldr r0, [sp, #0x4c]
+ add r2, r4, #0x7
+ str r0, [sp, #0x8]
+ str r5, [sp, #0xc]
+ lsl r2, r2, #0x10
+ lsl r3, r3, #0x18
+ ldr r1, [sp, #0x10]
+ add r0, r7, #0x0
+ lsr r2, r2, #0x10
+ lsr r3, r3, #0x18
+ bl FUN_02018540
+ ldr r0, [sp, #0x18]
+ add r2, r4, #0x0
+ str r0, [sp, #0x0]
+ mov r0, #0x1
+ str r0, [sp, #0x4]
+ ldr r0, [sp, #0x4c]
+ ldr r3, [sp, #0x2c]
+ str r0, [sp, #0x8]
+ str r5, [sp, #0xc]
+ add r2, #0x9
+ lsl r2, r2, #0x10
+ lsl r3, r3, #0x18
+ ldr r1, [sp, #0x10]
+ add r0, r7, #0x0
+ lsr r2, r2, #0x10
+ lsr r3, r3, #0x18
+ bl FUN_02018540
+ ldr r0, [sp, #0x18]
+ add r2, r4, #0x0
+ str r0, [sp, #0x0]
+ mov r0, #0x1
+ str r0, [sp, #0x4]
+ ldr r0, [sp, #0x4c]
+ ldr r3, [sp, #0x20]
+ str r0, [sp, #0x8]
+ str r5, [sp, #0xc]
+ add r2, #0xa
+ lsl r2, r2, #0x10
+ lsl r3, r3, #0x18
+ ldr r1, [sp, #0x10]
+ add r0, r7, #0x0
+ lsr r2, r2, #0x10
+ lsr r3, r3, #0x18
+ bl FUN_02018540
+ ldr r0, [sp, #0x18]
+ add r2, r4, #0x0
+ str r0, [sp, #0x0]
+ mov r0, #0x1
+ str r0, [sp, #0x4]
+ ldr r0, [sp, #0x4c]
+ ldr r3, [sp, #0x1c]
+ str r0, [sp, #0x8]
+ str r5, [sp, #0xc]
+ add r2, #0xb
+ lsl r2, r2, #0x10
+ lsl r3, r3, #0x18
+ ldr r1, [sp, #0x10]
+ add r0, r7, #0x0
+ lsr r2, r2, #0x10
+ lsr r3, r3, #0x18
+ bl FUN_02018540
+ add r2, r4, #0x0
+ ldr r3, [sp, #0x28]
+ add r2, #0xc
+ lsl r2, r2, #0x10
+ lsl r3, r3, #0x18
+ ldr r1, [sp, #0x18]
+ ldr r0, [sp, #0x4c]
+ lsr r2, r2, #0x10
+ add r6, r1, r0
+ lsl r0, r6, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x0]
+ mov r0, #0x1
+ str r0, [sp, #0x4]
+ str r0, [sp, #0x8]
+ str r5, [sp, #0xc]
+ ldr r1, [sp, #0x10]
+ add r0, r7, #0x0
+ lsr r3, r3, #0x18
+ bl FUN_02018540
+ lsl r0, r6, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x0]
+ mov r0, #0x1
+ str r0, [sp, #0x4]
+ str r0, [sp, #0x8]
+ add r2, r4, #0x0
+ ldr r3, [sp, #0x24]
+ str r5, [sp, #0xc]
+ add r2, #0xd
+ lsl r2, r2, #0x10
+ lsl r3, r3, #0x18
+ ldr r1, [sp, #0x10]
+ add r0, r7, #0x0
+ lsr r2, r2, #0x10
+ lsr r3, r3, #0x18
+ bl FUN_02018540
+ lsl r0, r6, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x0]
+ add r0, sp, #0x38
+ ldrb r0, [r0, #0x10]
+ add r2, r4, #0x0
+ add r2, #0xe
+ str r0, [sp, #0x4]
+ mov r0, #0x1
+ str r0, [sp, #0x8]
+ str r5, [sp, #0xc]
+ lsl r2, r2, #0x10
+ ldr r1, [sp, #0x10]
+ ldr r3, [sp, #0x14]
+ add r0, r7, #0x0
+ lsr r2, r2, #0x10
+ bl FUN_02018540
+ lsl r0, r6, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x0]
+ mov r0, #0x1
+ str r0, [sp, #0x4]
+ str r0, [sp, #0x8]
+ add r2, r4, #0x0
+ ldr r3, [sp, #0x2c]
+ str r5, [sp, #0xc]
+ add r2, #0xf
+ lsl r2, r2, #0x10
+ lsl r3, r3, #0x18
+ ldr r1, [sp, #0x10]
+ add r0, r7, #0x0
+ lsr r2, r2, #0x10
+ lsr r3, r3, #0x18
+ bl FUN_02018540
+ lsl r0, r6, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x0]
+ mov r0, #0x1
+ str r0, [sp, #0x4]
+ str r0, [sp, #0x8]
+ add r2, r4, #0x0
+ ldr r3, [sp, #0x20]
+ str r5, [sp, #0xc]
+ add r2, #0x10
+ lsl r2, r2, #0x10
+ lsl r3, r3, #0x18
+ ldr r1, [sp, #0x10]
+ add r0, r7, #0x0
+ lsr r2, r2, #0x10
+ lsr r3, r3, #0x18
+ bl FUN_02018540
+ lsl r0, r6, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x0]
+ mov r0, #0x1
+ str r0, [sp, #0x4]
+ str r0, [sp, #0x8]
+ ldr r3, [sp, #0x1c]
+ str r5, [sp, #0xc]
+ add r4, #0x11
+ lsl r2, r4, #0x10
+ lsl r3, r3, #0x18
+ ldr r1, [sp, #0x10]
+ add r0, r7, #0x0
+ lsr r2, r2, #0x10
+ lsr r3, r3, #0x18
+ bl FUN_02018540
+ add sp, #0x30
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_0200D06C
+FUN_0200D06C: ; 0x0200D06C
+ push {r4-r7, lr}
+ sub sp, #0x1c
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ add r6, r2, #0x0
+ bl FUN_0201AB08
+ str r0, [sp, #0x10]
+ add r0, r5, #0x0
+ bl FUN_0201AB14
+ str r0, [sp, #0x14]
+ add r0, r5, #0x0
+ bl FUN_0201AB18
+ str r0, [sp, #0x18]
+ add r0, r5, #0x0
+ bl FUN_0201AB0C
+ add r7, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_0201AB10
+ str r7, [sp, #0x0]
+ str r0, [sp, #0x4]
+ lsl r0, r6, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x8]
+ lsl r0, r4, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #0xc]
+ ldr r0, [r5, #0x0]
+ ldr r1, [sp, #0x10]
+ ldr r2, [sp, #0x14]
+ ldr r3, [sp, #0x18]
+ bl FUN_0200CDD8
+ add sp, #0x1c
+ pop {r4-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_0200D0BC
+FUN_0200D0BC: ; 0x0200D0BC
+ push {r4-r6, lr}
+ add r6, r2, #0x0
+ add r4, r1, #0x0
+ add r1, r6, #0x0
+ add r2, r3, #0x0
+ add r5, r0, #0x0
+ bl FUN_0200D06C
+ cmp r4, #0x0
+ bne _0200D0D6
+ add r0, r5, #0x0
+ bl FUN_020191D0
+_0200D0D6:
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ bl FUN_0200D18C
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_0200D0E0
+FUN_0200D0E0: ; 0x0200D0E0
+ push {r3-r7, lr}
+ sub sp, #0x18
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ bl FUN_0201AB08
+ str r0, [sp, #0x10]
+ add r0, r5, #0x0
+ bl FUN_0201AB14
+ add r6, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_0201AB18
+ add r7, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_0201AB0C
+ str r0, [sp, #0x14]
+ add r0, r5, #0x0
+ bl FUN_0201AB10
+ sub r1, r7, #0x1
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ str r1, [sp, #0x0]
+ ldr r1, [sp, #0x14]
+ add r0, r0, #0x2
+ add r1, r1, #0x5
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ lsl r0, r0, #0x18
+ str r1, [sp, #0x4]
+ lsr r0, r0, #0x18
+ sub r3, r6, #0x2
+ lsl r3, r3, #0x18
+ str r0, [sp, #0x8]
+ mov r2, #0x0
+ str r2, [sp, #0xc]
+ ldr r0, [r5, #0x0]
+ ldr r1, [sp, #0x10]
+ lsr r3, r3, #0x18
+ bl FUN_02018540
+ cmp r4, #0x0
+ bne _0200D142
+ add r0, r5, #0x0
+ bl FUN_02019570
+_0200D142:
+ add sp, #0x18
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_0200D148
+FUN_0200D148: ; 0x0200D148
+ push {r4-r5, lr}
+ sub sp, #0x24
+ add r5, r1, #0x0
+ str r0, [sp, #0x1c]
+ add r1, sp, #0x14
+ strh r3, [r1, #0xc]
+ add r4, r2, #0x0
+ add r0, sp, #0x20
+ ldrh r2, [r0, #0x10]
+ add r3, r4, #0x0
+ strh r2, [r1, #0xe]
+ ldr r2, [sp, #0x34]
+ str r2, [sp, #0x14]
+ ldrh r2, [r0, #0x18]
+ strh r2, [r1, #0x4]
+ ldrh r2, [r0, #0x1c]
+ strh r2, [r1, #0x6]
+ ldrh r1, [r0, #0x20]
+ add r2, r5, #0x0
+ str r1, [sp, #0x0]
+ ldrh r1, [r0, #0x24]
+ str r1, [sp, #0x4]
+ ldrh r1, [r0, #0x28]
+ str r1, [sp, #0x8]
+ ldrh r0, [r0, #0x2c]
+ add r1, sp, #0x14
+ str r0, [sp, #0xc]
+ mov r0, #0x0
+ str r0, [sp, #0x10]
+ add r0, sp, #0x1c
+ bl FUN_02018A60
+ add sp, #0x24
+ pop {r4-r5, pc}
+
+ thumb_func_start FUN_0200D18C
+FUN_0200D18C: ; 0x0200D18C
+ push {r3-r7, lr}
+ sub sp, #0x40
+ str r1, [sp, #0x24]
+ str r0, [sp, #0x20]
+ ldr r0, [r0, #0x0]
+ bl FUN_02016BB8
+ add r6, r0, #0x0
+ ldr r0, [sp, #0x20]
+ bl FUN_0201AB08
+ mov r1, #0x6
+ str r0, [sp, #0x28]
+ add r0, r6, #0x0
+ lsl r1, r1, #0x6
+ bl FUN_02016998
+ add r5, r0, #0x0
+ ldr r0, [sp, #0x28]
+ bl FUN_020187B0
+ add r4, r0, #0x0
+ str r6, [sp, #0x0]
+ mov r0, #0x26
+ mov r1, #0x16
+ mov r2, #0x0
+ add r3, sp, #0x3c
+ bl FUN_02006BB0
+ str r0, [sp, #0x2c]
+ ldr r0, [sp, #0x3c]
+ mov r7, #0x0
+ ldr r0, [r0, #0x14]
+ str r0, [sp, #0x30]
+ ldr r0, [sp, #0x24]
+ add r0, #0xa
+ lsl r0, r0, #0x5
+ str r0, [sp, #0x34]
+ ldr r0, [sp, #0x24]
+ add r0, #0xb
+ lsl r0, r0, #0x5
+ str r0, [sp, #0x38]
+_0200D1E0:
+ ldr r1, [sp, #0x34]
+ lsl r6, r7, #0x7
+ add r0, r5, r6
+ add r1, r4, r1
+ mov r2, #0x20
+ blx memcpy
+ add r0, r6, #0x0
+ ldr r1, [sp, #0x38]
+ add r0, #0x20
+ add r0, r5, r0
+ add r1, r4, r1
+ mov r2, #0x20
+ blx memcpy
+ add r0, r6, #0x0
+ ldr r1, [sp, #0x34]
+ add r0, #0x40
+ add r0, r5, r0
+ add r1, r4, r1
+ mov r2, #0x20
+ blx memcpy
+ ldr r1, [sp, #0x38]
+ add r6, #0x60
+ add r0, r5, r6
+ add r1, r4, r1
+ mov r2, #0x20
+ blx memcpy
+ add r0, r7, #0x1
+ lsl r0, r0, #0x18
+ lsr r7, r0, #0x18
+ cmp r7, #0x3
+ blo _0200D1E0
+ mov r1, #0x30
+ str r1, [sp, #0x0]
+ str r5, [sp, #0x4]
+ mov r3, #0xc
+ str r3, [sp, #0x8]
+ str r1, [sp, #0xc]
+ mov r0, #0x1
+ str r0, [sp, #0x10]
+ mov r2, #0x0
+ str r2, [sp, #0x14]
+ str r3, [sp, #0x18]
+ str r1, [sp, #0x1c]
+ ldr r0, [sp, #0x30]
+ mov r1, #0x4
+ bl FUN_0200D148
+ ldr r0, [sp, #0x24]
+ mov r3, #0x6
+ add r0, #0x12
+ str r0, [sp, #0x0]
+ ldr r0, [sp, #0x20]
+ ldr r1, [sp, #0x28]
+ ldr r0, [r0, #0x0]
+ add r2, r5, #0x0
+ lsl r3, r3, #0x6
+ bl FUN_02017E14
+ ldr r0, [sp, #0x24]
+ bl FUN_02002840
+ ldr r0, [sp, #0x2c]
+ bl FUN_02016A18
+ add r0, r5, #0x0
+ bl FUN_02016A18
+ add sp, #0x40
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_0200D274
+FUN_0200D274: ; 0x0200D274
+ push {r4-r7, lr}
+ sub sp, #0x14
+ str r0, [sp, #0x4]
+ str r1, [sp, #0x8]
+ add r0, sp, #0x18
+ ldrb r0, [r0, #0x10]
+ add r7, r2, #0x0
+ add r5, r3, #0x0
+ bl FUN_0200CD60
+ add r1, r0, #0x0
+ ldr r0, [sp, #0x2c]
+ mov r2, #0x0
+ str r0, [sp, #0x0]
+ mov r0, #0x26
+ add r3, sp, #0x10
+ bl FUN_02006BB0
+ str r0, [sp, #0xc]
+ mov r1, #0x9
+ ldr r0, [sp, #0x2c]
+ lsl r1, r1, #0x6
+ bl FUN_02016998
+ ldr r1, [sp, #0x10]
+ mov r2, #0x9
+ ldr r1, [r1, #0x14]
+ lsl r2, r2, #0x6
+ add r4, r0, #0x0
+ blx memcpy
+ mov r0, #0x9
+ mov r3, #0x0
+ lsl r0, r0, #0x6
+ mov r1, #0xf
+_0200D2BA:
+ ldrb r2, [r4, r3]
+ lsl r6, r2, #0x14
+ and r2, r1
+ lsl r2, r2, #0x18
+ lsr r6, r6, #0x18
+ lsr r2, r2, #0x18
+ cmp r6, #0x0
+ bne _0200D2CC
+ add r6, r5, #0x0
+_0200D2CC:
+ cmp r2, #0x0
+ bne _0200D2D2
+ add r2, r5, #0x0
+_0200D2D2:
+ lsl r6, r6, #0x4
+ orr r2, r6
+ strb r2, [r4, r3]
+ add r3, r3, #0x1
+ cmp r3, r0
+ blo _0200D2BA
+ str r7, [sp, #0x0]
+ mov r3, #0x9
+ ldr r0, [sp, #0x4]
+ ldr r1, [sp, #0x8]
+ add r2, r4, #0x0
+ lsl r3, r3, #0x6
+ bl FUN_02017E14
+ ldr r0, [sp, #0xc]
+ bl FUN_02016A18
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ add sp, #0x14
+ pop {r4-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_0200D300
+FUN_0200D300: ; 0x0200D300
+ push {r4-r7, lr}
+ sub sp, #0x1c
+ str r0, [sp, #0x10]
+ add r5, r2, #0x0
+ mov r0, #0xf
+ add r6, r1, #0x0
+ add r7, r3, #0x0
+ str r5, [sp, #0x0]
+ lsl r0, r0, #0x6
+ str r0, [sp, #0x4]
+ mov r1, #0x0
+ ldr r4, [sp, #0x38]
+ str r1, [sp, #0x8]
+ ldr r2, [sp, #0x10]
+ mov r0, #0x24
+ add r3, r6, #0x0
+ str r4, [sp, #0xc]
+ bl FUN_0200687C
+ mov r0, #0x24
+ mov r1, #0x1
+ add r2, r4, #0x0
+ bl LoadFromNarc_2
+ add r1, sp, #0x18
+ str r0, [sp, #0x14]
+ blx FUN_020B0138
+ add r2, sp, #0x20
+ ldr r1, [sp, #0x18]
+ ldrb r2, [r2, #0x10]
+ lsl r3, r7, #0x15
+ ldr r1, [r1, #0xc]
+ lsl r2, r2, #0x5
+ add r1, r1, r2
+ add r0, r6, #0x0
+ mov r2, #0x20
+ lsr r3, r3, #0x10
+ bl FUN_02017FB4
+ ldr r1, [sp, #0x14]
+ add r0, r4, #0x0
+ bl FUN_02016A8C
+ add r0, sp, #0x20
+ ldrb r3, [r0, #0x10]
+ cmp r3, #0x1
+ bhi _0200D374
+ ldrh r0, [r0, #0x14]
+ add r5, #0x1e
+ lsl r2, r5, #0x10
+ str r0, [sp, #0x0]
+ ldr r0, [sp, #0x10]
+ add r1, r6, #0x0
+ lsr r2, r2, #0x10
+ str r4, [sp, #0x4]
+ bl FUN_0200D378
+_0200D374:
+ add sp, #0x1c
+ pop {r4-r7, pc}
+
+ thumb_func_start FUN_0200D378
+FUN_0200D378: ; 0x0200D378
+ push {r3-r5, lr}
+ sub sp, #0x10
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ ldr r1, [sp, #0x20]
+ cmp r3, #0x0
+ bne _0200D38C
+ add r1, #0x21
+ lsl r0, r1, #0x10
+ b _0200D390
+_0200D38C:
+ add r0, r1, #0x2
+ lsl r0, r0, #0x10
+_0200D390:
+ lsr r1, r0, #0x10
+ mov r0, #0x3
+ str r2, [sp, #0x0]
+ lsl r0, r0, #0x8
+ str r0, [sp, #0x4]
+ mov r0, #0x0
+ str r0, [sp, #0x8]
+ ldr r0, [sp, #0x24]
+ add r2, r5, #0x0
+ str r0, [sp, #0xc]
+ mov r0, #0x24
+ add r3, r4, #0x0
+ bl FUN_0200687C
+ add sp, #0x10
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_0200D3B0
+FUN_0200D3B0: ; 0x0200D3B0
+ push {r3-r7, lr}
+ sub sp, #0x40
+ str r1, [sp, #0x14]
+ str r2, [sp, #0x18]
+ str r3, [sp, #0x1c]
+ ldr r2, [sp, #0x1c]
+ ldr r6, [sp, #0x5c]
+ sub r7, r2, #0x1
+ ldr r2, [sp, #0x18]
+ ldr r5, [sp, #0x60]
+ str r2, [sp, #0x34]
+ sub r2, #0x9
+ str r2, [sp, #0x34]
+ lsl r2, r7, #0x18
+ lsr r2, r2, #0x18
+ str r2, [sp, #0x0]
+ mov r2, #0x1
+ str r2, [sp, #0x4]
+ str r2, [sp, #0x8]
+ ldr r3, [sp, #0x34]
+ str r5, [sp, #0xc]
+ add r2, sp, #0x48
+ lsl r3, r3, #0x18
+ ldrh r2, [r2, #0x1c]
+ lsr r3, r3, #0x18
+ str r0, [sp, #0x10]
+ bl FUN_02018540
+ ldr r0, [sp, #0x18]
+ str r0, [sp, #0x30]
+ sub r0, #0x8
+ str r0, [sp, #0x30]
+ add r0, sp, #0x48
+ ldrh r4, [r0, #0x1c]
+ lsl r0, r7, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x0]
+ mov r0, #0x1
+ str r0, [sp, #0x4]
+ str r0, [sp, #0x8]
+ ldr r3, [sp, #0x30]
+ str r5, [sp, #0xc]
+ add r2, r4, #0x1
+ lsl r2, r2, #0x10
+ lsl r3, r3, #0x18
+ ldr r0, [sp, #0x10]
+ ldr r1, [sp, #0x14]
+ lsr r2, r2, #0x10
+ lsr r3, r3, #0x18
+ bl FUN_02018540
+ add r0, sp, #0x48
+ ldrb r0, [r0, #0x10]
+ add r2, r4, #0x2
+ lsl r2, r2, #0x10
+ str r0, [sp, #0x3c]
+ add r0, r0, #0x7
+ str r0, [sp, #0x24]
+ ldr r0, [sp, #0x18]
+ lsr r2, r2, #0x10
+ sub r0, r0, #0x7
+ str r0, [sp, #0x20]
+ lsl r0, r7, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x0]
+ ldr r0, [sp, #0x24]
+ ldr r3, [sp, #0x20]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x4]
+ mov r0, #0x1
+ str r0, [sp, #0x8]
+ str r5, [sp, #0xc]
+ lsl r3, r3, #0x18
+ ldr r0, [sp, #0x10]
+ ldr r1, [sp, #0x14]
+ lsr r3, r3, #0x18
+ bl FUN_02018540
+ add r2, r4, #0x3
+ lsl r2, r2, #0x10
+ ldr r1, [sp, #0x18]
+ ldr r0, [sp, #0x3c]
+ lsr r2, r2, #0x10
+ add r0, r1, r0
+ str r0, [sp, #0x38]
+ lsl r0, r7, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x0]
+ mov r0, #0x1
+ str r0, [sp, #0x4]
+ str r0, [sp, #0x8]
+ ldr r3, [sp, #0x38]
+ str r5, [sp, #0xc]
+ lsl r3, r3, #0x18
+ ldr r0, [sp, #0x10]
+ ldr r1, [sp, #0x14]
+ lsr r3, r3, #0x18
+ bl FUN_02018540
+ ldr r0, [sp, #0x38]
+ add r2, r4, #0x4
+ add r0, r0, #0x1
+ str r0, [sp, #0x2c]
+ lsl r0, r7, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x0]
+ mov r0, #0x1
+ str r0, [sp, #0x4]
+ str r0, [sp, #0x8]
+ ldr r3, [sp, #0x2c]
+ str r5, [sp, #0xc]
+ lsl r2, r2, #0x10
+ lsl r3, r3, #0x18
+ ldr r0, [sp, #0x10]
+ ldr r1, [sp, #0x14]
+ lsr r2, r2, #0x10
+ lsr r3, r3, #0x18
+ bl FUN_02018540
+ ldr r0, [sp, #0x38]
+ add r0, r0, #0x2
+ str r0, [sp, #0x28]
+ lsl r0, r7, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x0]
+ mov r0, #0x1
+ str r0, [sp, #0x4]
+ str r0, [sp, #0x8]
+ ldr r3, [sp, #0x28]
+ str r5, [sp, #0xc]
+ add r2, r4, #0x5
+ lsl r2, r2, #0x10
+ lsl r3, r3, #0x18
+ ldr r0, [sp, #0x10]
+ ldr r1, [sp, #0x14]
+ lsr r2, r2, #0x10
+ lsr r3, r3, #0x18
+ bl FUN_02018540
+ ldr r0, [sp, #0x1c]
+ ldr r3, [sp, #0x34]
+ str r0, [sp, #0x0]
+ mov r0, #0x1
+ str r0, [sp, #0x4]
+ str r6, [sp, #0x8]
+ str r5, [sp, #0xc]
+ add r2, r4, #0x6
+ lsl r2, r2, #0x10
+ lsl r3, r3, #0x18
+ ldr r0, [sp, #0x10]
+ ldr r1, [sp, #0x14]
+ lsr r2, r2, #0x10
+ lsr r3, r3, #0x18
+ bl FUN_02018540
+ ldr r0, [sp, #0x1c]
+ ldr r3, [sp, #0x30]
+ str r0, [sp, #0x0]
+ mov r0, #0x1
+ str r0, [sp, #0x4]
+ str r6, [sp, #0x8]
+ str r5, [sp, #0xc]
+ add r2, r4, #0x7
+ lsl r2, r2, #0x10
+ lsl r3, r3, #0x18
+ ldr r0, [sp, #0x10]
+ ldr r1, [sp, #0x14]
+ lsr r2, r2, #0x10
+ lsr r3, r3, #0x18
+ bl FUN_02018540
+ ldr r0, [sp, #0x1c]
+ add r2, r4, #0x0
+ str r0, [sp, #0x0]
+ mov r0, #0x1
+ str r0, [sp, #0x4]
+ str r6, [sp, #0x8]
+ str r5, [sp, #0xc]
+ ldr r3, [sp, #0x18]
+ add r2, #0x8
+ sub r3, r3, #0x1
+ lsl r2, r2, #0x10
+ lsl r3, r3, #0x18
+ ldr r0, [sp, #0x10]
+ ldr r1, [sp, #0x14]
+ lsr r2, r2, #0x10
+ lsr r3, r3, #0x18
+ bl FUN_02018540
+ ldr r0, [sp, #0x1c]
+ add r2, r4, #0x0
+ str r0, [sp, #0x0]
+ mov r0, #0x1
+ str r0, [sp, #0x4]
+ str r6, [sp, #0x8]
+ ldr r3, [sp, #0x38]
+ str r5, [sp, #0xc]
+ add r2, #0x9
+ lsl r2, r2, #0x10
+ lsl r3, r3, #0x18
+ ldr r0, [sp, #0x10]
+ ldr r1, [sp, #0x14]
+ lsr r2, r2, #0x10
+ lsr r3, r3, #0x18
+ bl FUN_02018540
+ ldr r0, [sp, #0x1c]
+ add r2, r4, #0x0
+ str r0, [sp, #0x0]
+ mov r0, #0x1
+ str r0, [sp, #0x4]
+ str r6, [sp, #0x8]
+ ldr r3, [sp, #0x2c]
+ str r5, [sp, #0xc]
+ add r2, #0xa
+ lsl r2, r2, #0x10
+ lsl r3, r3, #0x18
+ ldr r0, [sp, #0x10]
+ ldr r1, [sp, #0x14]
+ lsr r2, r2, #0x10
+ lsr r3, r3, #0x18
+ bl FUN_02018540
+ ldr r0, [sp, #0x1c]
+ add r2, r4, #0x0
+ str r0, [sp, #0x0]
+ mov r0, #0x1
+ str r0, [sp, #0x4]
+ str r6, [sp, #0x8]
+ ldr r3, [sp, #0x28]
+ str r5, [sp, #0xc]
+ add r2, #0xb
+ lsl r2, r2, #0x10
+ lsl r3, r3, #0x18
+ ldr r0, [sp, #0x10]
+ ldr r1, [sp, #0x14]
+ lsr r2, r2, #0x10
+ lsr r3, r3, #0x18
+ bl FUN_02018540
+ ldr r0, [sp, #0x1c]
+ add r2, r4, #0x0
+ add r6, r0, r6
+ lsl r0, r6, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x0]
+ mov r0, #0x1
+ str r0, [sp, #0x4]
+ str r0, [sp, #0x8]
+ ldr r3, [sp, #0x34]
+ str r5, [sp, #0xc]
+ add r2, #0xc
+ lsl r2, r2, #0x10
+ lsl r3, r3, #0x18
+ ldr r0, [sp, #0x10]
+ ldr r1, [sp, #0x14]
+ lsr r2, r2, #0x10
+ lsr r3, r3, #0x18
+ bl FUN_02018540
+ lsl r0, r6, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x0]
+ mov r0, #0x1
+ str r0, [sp, #0x4]
+ str r0, [sp, #0x8]
+ add r2, r4, #0x0
+ ldr r3, [sp, #0x30]
+ str r5, [sp, #0xc]
+ add r2, #0xd
+ lsl r2, r2, #0x10
+ lsl r3, r3, #0x18
+ ldr r0, [sp, #0x10]
+ ldr r1, [sp, #0x14]
+ lsr r2, r2, #0x10
+ lsr r3, r3, #0x18
+ bl FUN_02018540
+ lsl r0, r6, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x0]
+ ldr r0, [sp, #0x24]
+ add r2, r4, #0x0
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x4]
+ mov r0, #0x1
+ str r0, [sp, #0x8]
+ ldr r3, [sp, #0x20]
+ str r5, [sp, #0xc]
+ add r2, #0xe
+ lsl r2, r2, #0x10
+ lsl r3, r3, #0x18
+ ldr r0, [sp, #0x10]
+ ldr r1, [sp, #0x14]
+ lsr r2, r2, #0x10
+ lsr r3, r3, #0x18
+ bl FUN_02018540
+ lsl r0, r6, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x0]
+ mov r0, #0x1
+ str r0, [sp, #0x4]
+ str r0, [sp, #0x8]
+ add r2, r4, #0x0
+ ldr r3, [sp, #0x38]
+ str r5, [sp, #0xc]
+ add r2, #0xf
+ lsl r2, r2, #0x10
+ lsl r3, r3, #0x18
+ ldr r0, [sp, #0x10]
+ ldr r1, [sp, #0x14]
+ lsr r2, r2, #0x10
+ lsr r3, r3, #0x18
+ bl FUN_02018540
+ lsl r0, r6, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x0]
+ mov r0, #0x1
+ str r0, [sp, #0x4]
+ str r0, [sp, #0x8]
+ add r2, r4, #0x0
+ ldr r3, [sp, #0x2c]
+ str r5, [sp, #0xc]
+ add r2, #0x10
+ lsl r2, r2, #0x10
+ lsl r3, r3, #0x18
+ ldr r0, [sp, #0x10]
+ ldr r1, [sp, #0x14]
+ lsr r2, r2, #0x10
+ lsr r3, r3, #0x18
+ bl FUN_02018540
+ lsl r0, r6, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x0]
+ mov r0, #0x1
+ str r0, [sp, #0x4]
+ str r0, [sp, #0x8]
+ ldr r3, [sp, #0x28]
+ str r5, [sp, #0xc]
+ add r4, #0x11
+ lsl r2, r4, #0x10
+ lsl r3, r3, #0x18
+ ldr r0, [sp, #0x10]
+ ldr r1, [sp, #0x14]
+ lsr r2, r2, #0x10
+ lsr r3, r3, #0x18
+ bl FUN_02018540
+ add sp, #0x40
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_0200D678
+FUN_0200D678: ; 0x0200D678
+ push {r3-r7, lr}
+ sub sp, #0x28
+ str r1, [sp, #0x10]
+ add r7, r0, #0x0
+ str r2, [sp, #0x14]
+ bl FUN_0201AB08
+ str r0, [sp, #0x20]
+ add r0, r7, #0x0
+ bl FUN_0201AB14
+ sub r0, r0, #0x7
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #0x18]
+ add r0, r7, #0x0
+ bl FUN_0201AB18
+ str r0, [sp, #0x1c]
+ mov r0, #0x0
+ str r0, [sp, #0x24]
+_0200D6A2:
+ ldr r2, [sp, #0x24]
+ ldr r1, [sp, #0x1c]
+ ldr r0, [sp, #0x24]
+ add r3, r2, #0x0
+ add r0, r1, r0
+ mov r1, #0x6
+ mul r3, r1
+ ldr r1, [sp, #0x10]
+ lsl r0, r0, #0x18
+ mov r4, #0x0
+ add r5, r1, r3
+ lsr r6, r0, #0x18
+_0200D6BA:
+ str r6, [sp, #0x0]
+ mov r0, #0x1
+ str r0, [sp, #0x4]
+ str r0, [sp, #0x8]
+ ldr r0, [sp, #0x14]
+ ldr r3, [sp, #0x18]
+ str r0, [sp, #0xc]
+ add r2, r4, r5
+ add r3, r3, r4
+ lsl r2, r2, #0x10
+ lsl r3, r3, #0x18
+ ldr r0, [r7, #0x0]
+ ldr r1, [sp, #0x20]
+ lsr r2, r2, #0x10
+ lsr r3, r3, #0x18
+ bl FUN_02018540
+ add r0, r4, #0x1
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+ cmp r4, #0x6
+ blo _0200D6BA
+ ldr r0, [sp, #0x24]
+ add r0, r0, #0x1
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #0x24]
+ cmp r0, #0x4
+ blo _0200D6A2
+ add sp, #0x28
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_0200D6F8
+FUN_0200D6F8: ; 0x0200D6F8
+ push {r3-r7, lr}
+ sub sp, #0x28
+ add r5, r0, #0x0
+ str r1, [sp, #0x10]
+ add r4, r2, #0x0
+ add r6, r3, #0x0
+ bl FUN_0201AB08
+ str r0, [sp, #0x14]
+ add r0, sp, #0x30
+ ldrb r0, [r0, #0x10]
+ cmp r0, #0x1
+ bhi _0200D756
+ add r0, r5, #0x0
+ bl FUN_0201AB14
+ str r0, [sp, #0x18]
+ add r0, r5, #0x0
+ bl FUN_0201AB18
+ str r0, [sp, #0x1c]
+ add r0, r5, #0x0
+ bl FUN_0201AB0C
+ add r7, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_0201AB10
+ str r7, [sp, #0x0]
+ str r0, [sp, #0x4]
+ str r6, [sp, #0x8]
+ str r4, [sp, #0xc]
+ ldr r0, [r5, #0x0]
+ ldr r1, [sp, #0x14]
+ ldr r2, [sp, #0x18]
+ ldr r3, [sp, #0x1c]
+ bl FUN_0200D3B0
+ add r1, r4, #0x0
+ add r1, #0x1e
+ lsl r1, r1, #0x10
+ add r0, r5, #0x0
+ lsr r1, r1, #0x10
+ add r2, r6, #0x0
+ bl FUN_0200D678
+ b _0200D788
+_0200D756:
+ add r0, r5, #0x0
+ bl FUN_0201AB14
+ str r0, [sp, #0x20]
+ add r0, r5, #0x0
+ bl FUN_0201AB18
+ str r0, [sp, #0x24]
+ add r0, r5, #0x0
+ bl FUN_0201AB0C
+ add r7, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_0201AB10
+ str r7, [sp, #0x0]
+ str r0, [sp, #0x4]
+ str r6, [sp, #0x8]
+ str r4, [sp, #0xc]
+ ldr r0, [r5, #0x0]
+ ldr r1, [sp, #0x14]
+ ldr r2, [sp, #0x20]
+ ldr r3, [sp, #0x24]
+ bl FUN_0200CDD8
+_0200D788:
+ ldr r0, [sp, #0x10]
+ cmp r0, #0x0
+ bne _0200D794
+ add r0, r5, #0x0
+ bl FUN_020191D0
+_0200D794:
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_0200D18C
+ add sp, #0x28
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_0200D7A0
+FUN_0200D7A0: ; 0x0200D7A0
+ push {r3-r7, lr}
+ sub sp, #0x18
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ str r2, [sp, #0x10]
+ bl FUN_0201AB08
+ str r0, [sp, #0x14]
+ cmp r4, #0x1
+ bhi _0200D7FE
+ add r0, r5, #0x0
+ bl FUN_0201AB14
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_0201AB18
+ add r7, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_0201AB0C
+ add r6, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_0201AB10
+ sub r1, r7, #0x1
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ add r0, r0, #0x2
+ lsl r0, r0, #0x18
+ sub r4, #0x9
+ lsl r3, r4, #0x18
+ add r6, #0xb
+ str r1, [sp, #0x0]
+ lsl r1, r6, #0x18
+ lsr r1, r1, #0x18
+ str r1, [sp, #0x4]
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x8]
+ mov r2, #0x0
+ str r2, [sp, #0xc]
+ ldr r0, [r5, #0x0]
+ ldr r1, [sp, #0x14]
+ lsr r3, r3, #0x18
+ bl FUN_02018540
+ b _0200D846
+_0200D7FE:
+ add r0, r5, #0x0
+ bl FUN_0201AB14
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_0201AB18
+ add r6, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_0201AB0C
+ add r7, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_0201AB10
+ sub r1, r6, #0x1
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ str r1, [sp, #0x0]
+ add r1, r7, #0x4
+ lsl r1, r1, #0x18
+ add r0, r0, #0x2
+ lsr r1, r1, #0x18
+ lsl r0, r0, #0x18
+ str r1, [sp, #0x4]
+ lsr r0, r0, #0x18
+ sub r3, r4, #0x2
+ lsl r3, r3, #0x18
+ str r0, [sp, #0x8]
+ mov r2, #0x0
+ str r2, [sp, #0xc]
+ ldr r0, [r5, #0x0]
+ ldr r1, [sp, #0x14]
+ lsr r3, r3, #0x18
+ bl FUN_02018540
+_0200D846:
+ ldr r0, [sp, #0x10]
+ cmp r0, #0x0
+ bne _0200D852
+ add r0, r5, #0x0
+ bl FUN_02019570
+_0200D852:
+ add sp, #0x18
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_0200D858
+FUN_0200D858: ; 0x0200D858
+ push {r4-r7, lr}
+ sub sp, #0x34
+ str r0, [sp, #0x20]
+ ldr r0, [r0, #0x0]
+ str r1, [sp, #0x24]
+ bl FUN_02016BB8
+ str r0, [sp, #0x28]
+ ldr r0, [sp, #0x20]
+ bl FUN_0201AB08
+ bl FUN_020187B0
+ add r5, r0, #0x0
+ ldr r0, [sp, #0x28]
+ ldr r1, _0200D970 ; =0x0000048C
+ bl FUN_02016998
+ ldr r1, [sp, #0x24]
+ add r4, r0, #0x0
+ ldr r0, _0200D974 ; =0x00000404
+ add r1, #0x12
+ lsl r1, r1, #0x5
+ add r0, r4, r0
+ add r1, r5, r1
+ mov r2, #0x80
+ blx memcpy
+ ldr r0, [sp, #0x28]
+ mov r1, #0x80
+ bl FUN_02016998
+ ldr r1, [sp, #0x24]
+ mov r2, #0x20
+ add r1, #0xa
+ lsl r1, r1, #0x5
+ str r1, [sp, #0x2c]
+ add r1, r5, r1
+ add r6, r0, #0x0
+ blx memcpy
+ ldr r0, [sp, #0x24]
+ mov r2, #0x20
+ add r0, #0xb
+ lsl r7, r0, #0x5
+ add r0, r6, #0x0
+ add r0, #0x20
+ add r1, r5, r7
+ blx memcpy
+ ldr r1, [sp, #0x2c]
+ add r0, r6, #0x0
+ add r0, #0x40
+ add r1, r5, r1
+ mov r2, #0x20
+ blx memcpy
+ add r0, r6, #0x0
+ add r0, #0x60
+ add r1, r5, r7
+ mov r2, #0x20
+ blx memcpy
+ mov r5, #0x0
+ add r7, r4, #0x4
+_0200D8DA:
+ lsl r0, r5, #0x7
+ add r0, r7, r0
+ add r1, r6, #0x0
+ mov r2, #0x80
+ blx memcpy
+ add r0, r5, #0x1
+ lsl r0, r0, #0x18
+ lsr r5, r0, #0x18
+ cmp r5, #0x8
+ blo _0200D8DA
+ add r0, r6, #0x0
+ bl FUN_02016A18
+ ldr r0, [sp, #0x28]
+ mov r1, #0x17
+ str r0, [sp, #0x0]
+ mov r0, #0x26
+ mov r2, #0x0
+ add r3, sp, #0x30
+ bl FUN_02006BB0
+ mov r2, #0x80
+ add r5, r0, #0x0
+ str r2, [sp, #0x0]
+ add r0, r4, #0x4
+ str r0, [sp, #0x4]
+ mov r3, #0x10
+ str r3, [sp, #0x8]
+ str r2, [sp, #0xc]
+ mov r1, #0x0
+ str r1, [sp, #0x10]
+ str r1, [sp, #0x14]
+ str r3, [sp, #0x18]
+ str r2, [sp, #0x1c]
+ ldr r0, [sp, #0x30]
+ add r2, r1, #0x0
+ ldr r0, [r0, #0x14]
+ bl FUN_0200D148
+ add r0, r5, #0x0
+ bl FUN_02016A18
+ ldr r0, [sp, #0x20]
+ ldr r1, _0200D978 ; =0x00000484
+ str r0, [r4, #0x0]
+ ldr r0, [sp, #0x24]
+ mov r2, #0x0
+ strh r0, [r4, r1]
+ add r0, r1, #0x2
+ strb r2, [r4, r0]
+ add r0, r1, #0x3
+ ldrb r3, [r4, r0]
+ mov r0, #0x7f
+ bic r3, r0
+ add r0, r1, #0x3
+ strb r3, [r4, r0]
+ add r0, r1, #0x4
+ ldrb r3, [r4, r0]
+ mov r0, #0x3
+ bic r3, r0
+ add r0, r1, #0x4
+ strb r3, [r4, r0]
+ ldr r0, _0200D97C ; =FUN_0200DB7C
+ add r1, r4, #0x0
+ bl FUN_0200CA60
+ add r0, r4, #0x0
+ mov r1, #0x1
+ bl FUN_0200D980
+ add r0, r4, #0x0
+ add sp, #0x34
+ pop {r4-r7, pc}
+ nop
+_0200D970: .word 0x0000048C
+_0200D974: .word 0x00000404
+_0200D978: .word 0x00000484
+_0200D97C: .word FUN_0200DB7C
+
+ thumb_func_start FUN_0200D980
+FUN_0200D980: ; 0x0200D980
+ push {r4-r7, lr}
+ sub sp, #0x24
+ add r5, r0, #0x0
+ ldr r0, [r5, #0x0]
+ add r6, r1, #0x0
+ bl FUN_0201AB08
+ add r4, r0, #0x0
+ ldr r0, [r5, #0x0]
+ bl FUN_0201AB14
+ str r0, [sp, #0x18]
+ ldr r0, [r5, #0x0]
+ bl FUN_0201AB18
+ str r0, [sp, #0x1c]
+ ldr r0, [r5, #0x0]
+ bl FUN_0201AB0C
+ str r0, [sp, #0x20]
+ cmp r6, #0x2
+ bne _0200DA8A
+ ldr r2, _0200DB78 ; =0x00000484
+ add r1, r4, #0x0
+ ldrh r0, [r5, r2]
+ sub r2, #0x80
+ add r2, r5, r2
+ add r0, #0x12
+ str r0, [sp, #0x0]
+ ldr r0, [r5, #0x0]
+ mov r3, #0x80
+ ldr r0, [r0, #0x0]
+ bl FUN_02017E14
+ ldr r0, [sp, #0x1c]
+ ldr r1, [sp, #0x18]
+ add r7, r0, #0x2
+ ldr r0, [sp, #0x20]
+ ldr r2, _0200DB78 ; =0x00000484
+ add r6, r1, r0
+ add r0, r6, #0x1
+ str r0, [sp, #0x14]
+ lsl r0, r7, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x0]
+ mov r0, #0x1
+ str r0, [sp, #0x4]
+ str r0, [sp, #0x8]
+ mov r0, #0x10
+ str r0, [sp, #0xc]
+ ldrh r2, [r5, r2]
+ ldr r0, [r5, #0x0]
+ ldr r3, [sp, #0x14]
+ add r2, #0xa
+ lsl r2, r2, #0x10
+ lsl r3, r3, #0x18
+ ldr r0, [r0, #0x0]
+ add r1, r4, #0x0
+ lsr r2, r2, #0x10
+ lsr r3, r3, #0x18
+ bl FUN_02018540
+ lsl r0, r7, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x0]
+ mov r0, #0x1
+ str r0, [sp, #0x4]
+ str r0, [sp, #0x8]
+ mov r0, #0x10
+ str r0, [sp, #0xc]
+ ldr r2, _0200DB78 ; =0x00000484
+ ldr r0, [r5, #0x0]
+ ldrh r2, [r5, r2]
+ add r6, r6, #0x2
+ lsl r3, r6, #0x18
+ add r2, #0xb
+ lsl r2, r2, #0x10
+ ldr r0, [r0, #0x0]
+ add r1, r4, #0x0
+ lsr r2, r2, #0x10
+ lsr r3, r3, #0x18
+ bl FUN_02018540
+ ldr r0, [sp, #0x1c]
+ ldr r3, [sp, #0x14]
+ add r7, r0, #0x3
+ lsl r0, r7, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x0]
+ mov r0, #0x1
+ str r0, [sp, #0x4]
+ str r0, [sp, #0x8]
+ mov r0, #0x10
+ str r0, [sp, #0xc]
+ ldr r2, _0200DB78 ; =0x00000484
+ ldr r0, [r5, #0x0]
+ ldrh r2, [r5, r2]
+ lsl r3, r3, #0x18
+ ldr r0, [r0, #0x0]
+ add r2, #0xa
+ lsl r2, r2, #0x10
+ add r1, r4, #0x0
+ lsr r2, r2, #0x10
+ lsr r3, r3, #0x18
+ bl FUN_02018540
+ lsl r0, r7, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x0]
+ mov r0, #0x1
+ str r0, [sp, #0x4]
+ str r0, [sp, #0x8]
+ mov r0, #0x10
+ str r0, [sp, #0xc]
+ ldr r2, _0200DB78 ; =0x00000484
+ ldr r0, [r5, #0x0]
+ ldrh r2, [r5, r2]
+ lsl r3, r6, #0x18
+ ldr r0, [r0, #0x0]
+ add r2, #0xb
+ lsl r2, r2, #0x10
+ add r1, r4, #0x0
+ lsr r2, r2, #0x10
+ lsr r3, r3, #0x18
+ bl FUN_02018540
+ ldr r0, [r5, #0x0]
+ add r1, r4, #0x0
+ ldr r0, [r0, #0x0]
+ bl FUN_02017CD0
+ add sp, #0x24
+ pop {r4-r7, pc}
+_0200DA8A:
+ ldr r3, _0200DB78 ; =0x00000484
+ add r2, r5, #0x4
+ ldrh r0, [r5, r3]
+ add r3, r3, #0x3
+ add r1, r4, #0x0
+ add r0, #0x12
+ str r0, [sp, #0x0]
+ ldrb r3, [r5, r3]
+ ldr r0, [r5, #0x0]
+ lsl r3, r3, #0x19
+ lsr r3, r3, #0x19
+ lsl r3, r3, #0x7
+ add r2, r2, r3
+ ldr r0, [r0, #0x0]
+ mov r3, #0x80
+ bl FUN_02017E14
+ cmp r6, #0x0
+ beq _0200DB72
+ ldr r0, [sp, #0x1c]
+ ldr r1, [sp, #0x18]
+ add r7, r0, #0x2
+ ldr r0, [sp, #0x20]
+ ldr r2, _0200DB78 ; =0x00000484
+ add r6, r1, r0
+ add r0, r6, #0x1
+ str r0, [sp, #0x10]
+ lsl r0, r7, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x0]
+ mov r0, #0x1
+ str r0, [sp, #0x4]
+ str r0, [sp, #0x8]
+ mov r0, #0x10
+ str r0, [sp, #0xc]
+ ldrh r2, [r5, r2]
+ ldr r0, [r5, #0x0]
+ ldr r3, [sp, #0x10]
+ add r2, #0x12
+ lsl r2, r2, #0x10
+ lsl r3, r3, #0x18
+ ldr r0, [r0, #0x0]
+ add r1, r4, #0x0
+ lsr r2, r2, #0x10
+ lsr r3, r3, #0x18
+ bl FUN_02018540
+ lsl r0, r7, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x0]
+ mov r0, #0x1
+ str r0, [sp, #0x4]
+ str r0, [sp, #0x8]
+ mov r0, #0x10
+ str r0, [sp, #0xc]
+ ldr r2, _0200DB78 ; =0x00000484
+ ldr r0, [r5, #0x0]
+ ldrh r2, [r5, r2]
+ add r6, r6, #0x2
+ lsl r3, r6, #0x18
+ add r2, #0x13
+ lsl r2, r2, #0x10
+ ldr r0, [r0, #0x0]
+ add r1, r4, #0x0
+ lsr r2, r2, #0x10
+ lsr r3, r3, #0x18
+ bl FUN_02018540
+ ldr r0, [sp, #0x1c]
+ ldr r3, [sp, #0x10]
+ add r7, r0, #0x3
+ lsl r0, r7, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x0]
+ mov r0, #0x1
+ str r0, [sp, #0x4]
+ str r0, [sp, #0x8]
+ mov r0, #0x10
+ str r0, [sp, #0xc]
+ ldr r2, _0200DB78 ; =0x00000484
+ ldr r0, [r5, #0x0]
+ ldrh r2, [r5, r2]
+ lsl r3, r3, #0x18
+ ldr r0, [r0, #0x0]
+ add r2, #0x14
+ lsl r2, r2, #0x10
+ add r1, r4, #0x0
+ lsr r2, r2, #0x10
+ lsr r3, r3, #0x18
+ bl FUN_02018540
+ lsl r0, r7, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x0]
+ mov r0, #0x1
+ str r0, [sp, #0x4]
+ str r0, [sp, #0x8]
+ mov r0, #0x10
+ str r0, [sp, #0xc]
+ ldr r2, _0200DB78 ; =0x00000484
+ ldr r0, [r5, #0x0]
+ ldrh r2, [r5, r2]
+ lsl r3, r6, #0x18
+ ldr r0, [r0, #0x0]
+ add r2, #0x15
+ lsl r2, r2, #0x10
+ add r1, r4, #0x0
+ lsr r2, r2, #0x10
+ lsr r3, r3, #0x18
+ bl FUN_02018540
+ ldr r0, [r5, #0x0]
+ add r1, r4, #0x0
+ ldr r0, [r0, #0x0]
+ bl FUN_02017CD0
+_0200DB72:
+ add sp, #0x24
+ pop {r4-r7, pc}
+ nop
+_0200DB78: .word 0x00000484
+
+ thumb_func_start FUN_0200DB7C
+FUN_0200DB7C: ; 0x0200DB7C
+ push {r3-r5, lr}
+ add r4, r0, #0x0
+ ldr r0, _0200DBE4 ; =0x00000488
+ ldrb r2, [r1, r0]
+ lsl r2, r2, #0x1e
+ lsr r2, r2, #0x1e
+ beq _0200DB9E
+ cmp r2, #0x1
+ bne _0200DB96
+ add r0, r1, #0x0
+ mov r1, #0x2
+ bl FUN_0200D980
+_0200DB96:
+ add r0, r4, #0x0
+ bl FUN_0200CAB4
+ pop {r3-r5, pc}
+_0200DB9E:
+ sub r2, r0, #0x2
+ ldrb r2, [r1, r2]
+ add r3, r2, #0x1
+ sub r2, r0, #0x2
+ strb r3, [r1, r2]
+ ldrb r2, [r1, r2]
+ cmp r2, #0x10
+ bne _0200DBE0
+ mov r3, #0x0
+ sub r2, r0, #0x2
+ strb r3, [r1, r2]
+ sub r2, r0, #0x1
+ ldrb r2, [r1, r2]
+ mov r4, #0x7f
+ bic r2, r4
+ sub r4, r0, #0x1
+ ldrb r4, [r1, r4]
+ sub r0, r0, #0x1
+ lsl r4, r4, #0x19
+ lsr r4, r4, #0x19
+ add r5, r4, #0x1
+ mov r4, #0x7
+ and r4, r5
+ lsl r4, r4, #0x18
+ lsr r5, r4, #0x18
+ mov r4, #0x7f
+ and r4, r5
+ orr r2, r4
+ strb r2, [r1, r0]
+ add r0, r1, #0x0
+ add r1, r3, #0x0
+ bl FUN_0200D980
+_0200DBE0:
+ pop {r3-r5, pc}
+ nop
+_0200DBE4: .word 0x00000488
+
+ thumb_func_start FUN_0200DBE8
+FUN_0200DBE8: ; 0x0200DBE8
+ push {r4, lr}
+ add r4, r0, #0x0
+ add r0, r1, #0x0
+ bl FUN_02016A18
+ add r0, r4, #0x0
+ bl FUN_0200CAB4
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0200DBFC
+FUN_0200DBFC: ; 0x0200DBFC
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r0, _0200DC1C ; =FUN_0200DBE8
+ add r1, r4, #0x0
+ mov r2, #0x0
+ bl FUN_0200CA98
+ ldr r1, _0200DC20 ; =0x00000488
+ mov r0, #0x3
+ ldrb r2, [r4, r1]
+ bic r2, r0
+ mov r0, #0x1
+ orr r0, r2
+ strb r0, [r4, r1]
+ pop {r4, pc}
+ nop
+_0200DC1C: .word FUN_0200DBE8
+_0200DC20: .word 0x00000488
+
+ thumb_func_start FUN_0200DC24
+FUN_0200DC24: ; 0x0200DC24
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r0, _0200DC44 ; =FUN_0200DBE8
+ add r1, r4, #0x0
+ mov r2, #0x0
+ bl FUN_0200CA98
+ ldr r1, _0200DC48 ; =0x00000488
+ mov r0, #0x3
+ ldrb r2, [r4, r1]
+ bic r2, r0
+ mov r0, #0x2
+ orr r0, r2
+ strb r0, [r4, r1]
+ pop {r4, pc}
+ nop
+_0200DC44: .word FUN_0200DBE8
+_0200DC48: .word 0x00000488
+
+ thumb_func_start FUN_0200DC4C
+FUN_0200DC4C: ; 0x0200DC4C
+ push {r4-r7, lr}
+ sub sp, #0xc
+ str r2, [sp, #0x4]
+ ldr r5, [sp, #0x30]
+ str r3, [sp, #0x8]
+ add r6, r0, #0x0
+ add r7, r1, #0x0
+ str r5, [sp, #0x0]
+ bl FUN_0200DD70
+ add r4, r0, #0x0
+ add r1, r5, #0x0
+ bl FUN_0200DDAC
+ add r0, r4, #0x0
+ bl FUN_0200DDD8
+ ldr r1, [sp, #0x4]
+ ldr r2, [sp, #0x8]
+ add r0, r4, #0x0
+ bl FUN_0200DE30
+ add r2, sp, #0x10
+ ldrh r1, [r2, #0x18]
+ ldrb r2, [r2, #0x1c]
+ add r0, r4, #0x0
+ bl FUN_0200DE80
+ add r2, sp, #0x10
+ ldrb r1, [r2, #0x10]
+ ldrh r2, [r2, #0x14]
+ add r0, r4, #0x0
+ bl FUN_0200DFD8
+ add r0, r6, #0x0
+ add r1, r7, #0x0
+ bl FUN_02017CD0
+ ldr r0, _0200DCA0 ; =0x0000016F
+ add r0, r4, r0
+ add sp, #0xc
+ pop {r4-r7, pc}
+ .balign 4
+_0200DCA0: .word 0x0000016F
+
+ thumb_func_start FUN_0200DCA4
+FUN_0200DCA4: ; 0x0200DCA4
+ push {r4-r7, lr}
+ sub sp, #0xc
+ str r2, [sp, #0x4]
+ ldr r5, [sp, #0x2c]
+ str r3, [sp, #0x8]
+ add r6, r0, #0x0
+ add r7, r1, #0x0
+ str r5, [sp, #0x0]
+ bl FUN_0200DD70
+ add r4, r0, #0x0
+ add r1, r5, #0x0
+ bl FUN_0200DDAC
+ add r0, r4, #0x0
+ bl FUN_0200DDD8
+ ldr r1, [sp, #0x4]
+ ldr r2, [sp, #0x8]
+ add r0, r4, #0x0
+ bl FUN_0200DE30
+ ldr r1, [sp, #0x28]
+ add r0, r4, #0x0
+ bl FUN_0200DEC0
+ add r2, sp, #0x10
+ ldrb r1, [r2, #0x10]
+ ldrh r2, [r2, #0x14]
+ add r0, r4, #0x0
+ bl FUN_0200DFD8
+ add r0, r6, #0x0
+ add r1, r7, #0x0
+ bl FUN_02017CD0
+ ldr r0, _0200DCF4 ; =0x0000016F
+ add r0, r4, r0
+ add sp, #0xc
+ pop {r4-r7, pc}
+ .balign 4
+_0200DCF4: .word 0x0000016F
+
+ thumb_func_start FUN_0200DCF8
+FUN_0200DCF8: ; 0x0200DCF8
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ ldr r0, _0200DD6C ; =0x0000016F
+ add r4, r1, #0x0
+ ldrb r1, [r4, r0]
+ cmp r1, #0x1
+ beq _0200DD10
+ cmp r1, #0x2
+ beq _0200DD2E
+ cmp r1, #0x3
+ beq _0200DD40
+ b _0200DD54
+_0200DD10:
+ add r0, r4, #0x0
+ bl FUN_0200E188
+ mov r0, #0x59
+ lsl r0, r0, #0x2
+ ldr r0, [r4, r0]
+ bl FUN_0200C3DC
+ add r0, r4, #0x0
+ bl FUN_021D99F8
+ add r0, r5, #0x0
+ bl FUN_0200621C
+ pop {r3-r5, pc}
+_0200DD2E:
+ mov r1, #0x3
+ strb r1, [r4, r0]
+ sub r0, #0xb
+ ldr r0, [r4, r0]
+ mov r1, #0x1
+ ldr r0, [r0, #0x0]
+ bl FUN_02020130
+ b _0200DD54
+_0200DD40:
+ sub r0, #0xb
+ ldr r0, [r4, r0]
+ ldr r0, [r0, #0x0]
+ bl FUN_0202022C
+ cmp r0, #0x6
+ bne _0200DD54
+ ldr r0, _0200DD6C ; =0x0000016F
+ mov r1, #0x0
+ strb r1, [r4, r0]
+_0200DD54:
+ mov r0, #0x59
+ lsl r0, r0, #0x2
+ ldr r0, [r4, r0]
+ mov r1, #0x1
+ ldr r0, [r0, #0x0]
+ lsl r1, r1, #0xc
+ bl FUN_020201E4
+ ldr r0, [r4, #0x0]
+ bl FUN_0201FDEC
+ pop {r3-r5, pc}
+ .balign 4
+_0200DD6C: .word 0x0000016F
+
+ thumb_func_start FUN_0200DD70
+FUN_0200DD70: ; 0x0200DD70
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ add r7, r3, #0x0
+ mov r1, #0x17
+ add r6, r2, #0x0
+ ldr r0, _0200DDA4 ; =FUN_0200DCF8
+ ldr r3, [sp, #0x18]
+ lsl r1, r1, #0x4
+ mov r2, #0x0
+ bl FUN_020061E8
+ bl FUN_0201B6C8
+ ldr r1, _0200DDA8 ; =0x0000016F
+ mov r2, #0x0
+ strb r2, [r0, r1]
+ sub r2, r1, #0x7
+ str r5, [r0, r2]
+ sub r2, r1, #0x3
+ strb r4, [r0, r2]
+ sub r2, r1, #0x2
+ strb r6, [r0, r2]
+ sub r1, r1, #0x1
+ strb r7, [r0, r1]
+ pop {r3-r7, pc}
+ .balign 4
+_0200DDA4: .word FUN_0200DCF8
+_0200DDA8: .word 0x0000016F
+
+ thumb_func_start FUN_0200DDAC
+FUN_0200DDAC: ; 0x0200DDAC
+ push {r4-r6, lr}
+ sub sp, #0x18
+ ldr r5, _0200DDD4 ; =0x020ECEA8
+ add r4, sp, #0x0
+ add r6, r0, #0x0
+ add r3, r1, #0x0
+ add r2, r4, #0x0
+ ldmia r5!, {r0-r1}
+ stmia r4!, {r0-r1}
+ ldmia r5!, {r0-r1}
+ stmia r4!, {r0-r1}
+ ldmia r5!, {r0-r1}
+ stmia r4!, {r0-r1}
+ add r1, r2, #0x0
+ add r0, r6, #0x0
+ mov r2, #0x1
+ bl FUN_021D959C
+ add sp, #0x18
+ pop {r4-r6, pc}
+ .balign 4
+_0200DDD4: .word 0x020ECEA8
+
+ thumb_func_start FUN_0200DDD8
+FUN_0200DDD8: ; 0x0200DDD8
+ push {r3-r4, lr}
+ sub sp, #0xc
+ mov r1, #0x1
+ str r1, [sp, #0x0]
+ str r1, [sp, #0x4]
+ ldr r1, _0200DE2C ; =0x00015CD5
+ mov r2, #0x31
+ str r1, [sp, #0x8]
+ mov r1, #0x26
+ mov r3, #0x0
+ add r4, r0, #0x0
+ bl FUN_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
+ ldr r0, _0200DE2C ; =0x00015CD5
+ mov r1, #0x26
+ str r0, [sp, #0x0]
+ add r0, r4, #0x0
+ mov r2, #0x2e
+ mov r3, #0x0
+ bl FUN_021D9708
+ mov r0, #0x1
+ str r0, [sp, #0x0]
+ ldr r0, _0200DE2C ; =0x00015CD5
+ mov r1, #0x26
+ str r0, [sp, #0x4]
+ add r0, r4, #0x0
+ mov r2, #0x30
+ mov r3, #0x0
+ bl FUN_021D971C
+ add sp, #0xc
+ pop {r3-r4, pc}
+ nop
+_0200DE2C: .word 0x00015CD5
+
+ thumb_func_start FUN_0200DE30
+FUN_0200DE30: ; 0x0200DE30
+ push {r4-r7, lr}
+ sub sp, #0x34
+ ldr r5, _0200DE7C ; =0x020ECEC0
+ add r6, r2, #0x0
+ add r4, r0, #0x0
+ add r7, r1, #0x0
+ add r3, sp, #0x0
+ mov r2, #0x6
+_0200DE40:
+ ldmia r5!, {r0-r1}
+ stmia r3!, {r0-r1}
+ sub r2, r2, #0x1
+ bne _0200DE40
+ ldr r0, [r5, #0x0]
+ str r0, [r3, #0x0]
+ add r0, r7, #0x5
+ lsl r1, r0, #0x3
+ add r0, sp, #0x0
+ strh r1, [r0, #0x0]
+ add r1, r6, #0x5
+ lsl r1, r1, #0x3
+ strh r1, [r0, #0x2]
+ add r0, r4, #0x0
+ add r1, sp, #0x0
+ bl FUN_021D9820
+ mov r1, #0x59
+ lsl r1, r1, #0x2
+ str r0, [r4, r1]
+ ldr r0, [r4, #0x0]
+ bl FUN_0201FDEC
+ mov r0, #0x10
+ mov r1, #0x1
+ bl FUN_0201E74C
+ add sp, #0x34
+ pop {r4-r7, pc}
+ nop
+_0200DE7C: .word 0x020ECEC0
+
+ thumb_func_start FUN_0200DE80
+FUN_0200DE80: ; 0x0200DE80
+ push {r4-r7, lr}
+ sub sp, #0x1c
+ add r5, r0, #0x0
+ ldr r0, _0200DEBC ; =0x00000162
+ add r4, r1, #0x0
+ ldrh r0, [r5, r0]
+ add r6, r2, #0x0
+ bl FUN_02006D98
+ add r7, r0, #0x0
+ mov r0, #0x0
+ str r0, [sp, #0x0]
+ str r0, [sp, #0x4]
+ str r0, [sp, #0x8]
+ add r0, sp, #0xc
+ add r1, r4, #0x0
+ add r2, r6, #0x0
+ mov r3, #0x2
+ bl FUN_02068C00
+ add r0, r5, #0x0
+ add r1, sp, #0xc
+ bl FUN_0200DEF4
+ add r0, r7, #0x0
+ bl FUN_020072E8
+ add sp, #0x1c
+ pop {r4-r7, pc}
+ nop
+_0200DEBC: .word 0x00000162
+
+ thumb_func_start FUN_0200DEC0
+FUN_0200DEC0: ; 0x0200DEC0
+ push {r4-r6, lr}
+ sub sp, #0x10
+ add r5, r0, #0x0
+ ldr r0, _0200DEF0 ; =0x00000162
+ add r4, r1, #0x0
+ ldrh r0, [r5, r0]
+ bl FUN_02006D98
+ add r6, r0, #0x0
+ add r0, sp, #0x0
+ add r1, r4, #0x0
+ mov r2, #0x2
+ bl FUN_02068B68
+ add r0, r5, #0x0
+ add r1, sp, #0x0
+ bl FUN_0200DEF4
+ add r0, r6, #0x0
+ bl FUN_020072E8
+ add sp, #0x10
+ pop {r4-r6, pc}
+ nop
+_0200DEF0: .word 0x00000162
+
+ thumb_func_start FUN_0200DEF4
+FUN_0200DEF4: ; 0x0200DEF4
+ push {r3-r7, lr}
+ sub sp, #0x28
+ add r5, r0, #0x0
+ ldr r0, _0200DFC8 ; =0x00000162
+ add r6, r1, #0x0
+ mov r1, #0x19
+ ldrh r0, [r5, r0]
+ lsl r1, r1, #0x8
+ bl FUN_02016998
+ add r2, sp, #0x18
+ ldr r3, _0200DFCC ; =0x020ECE98
+ add r4, r0, #0x0
+ add r7, r2, #0x0
+ ldmia r3!, {r0-r1}
+ stmia r2!, {r0-r1}
+ ldmia r3!, {r0-r1}
+ stmia r2!, {r0-r1}
+ str r4, [sp, #0x0]
+ ldr r2, _0200DFC8 ; =0x00000162
+ ldrh r0, [r6, #0x0]
+ ldrh r1, [r6, #0x2]
+ ldrh r2, [r5, r2]
+ add r3, r7, #0x0
+ bl FUN_02012400
+ ldr r3, _0200DFD0 ; =0x020ECE88
+ add r2, sp, #0x8
+ add r7, r2, #0x0
+ ldmia r3!, {r0-r1}
+ stmia r2!, {r0-r1}
+ ldmia r3!, {r0-r1}
+ stmia r2!, {r0-r1}
+ mov r0, #0x32
+ lsl r0, r0, #0x6
+ add r0, r4, r0
+ str r0, [sp, #0x0]
+ ldr r2, _0200DFC8 ; =0x00000162
+ ldrh r0, [r6, #0x0]
+ ldrh r1, [r6, #0x2]
+ ldrh r2, [r5, r2]
+ add r3, r7, #0x0
+ bl FUN_02012400
+ mov r0, #0x13
+ lsl r0, r0, #0x4
+ ldr r0, [r5, r0]
+ ldr r1, _0200DFD4 ; =0x00015CD5
+ bl FUN_020094F0
+ bl FUN_02009C5C
+ mov r1, #0x1
+ str r0, [sp, #0x4]
+ blx FUN_020B1A14
+ mov r1, #0x19
+ add r7, r0, #0x0
+ add r0, r4, #0x0
+ lsl r1, r1, #0x8
+ blx DC_FlushRange
+ mov r2, #0x19
+ add r0, r4, #0x0
+ add r1, r7, #0x0
+ lsl r2, r2, #0x8
+ blx GX_LoadOBJ
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ ldr r2, _0200DFC8 ; =0x00000162
+ ldrh r0, [r6, #0x0]
+ ldrh r1, [r6, #0x4]
+ ldrh r2, [r5, r2]
+ bl FUN_02012470
+ add r4, r0, #0x0
+ mov r0, #0x4d
+ lsl r0, r0, #0x2
+ ldr r0, [r5, r0]
+ ldr r1, _0200DFD4 ; =0x00015CD5
+ bl FUN_020094F0
+ ldr r1, [sp, #0x4]
+ bl FUN_02009E54
+ mov r1, #0x1
+ blx FUN_020B19C4
+ add r5, r0, #0x0
+ add r0, r4, #0x0
+ mov r1, #0x20
+ blx DC_FlushRange
+ add r0, r4, #0x0
+ add r1, r5, #0x0
+ mov r2, #0x20
+ blx GX_LoadOBJPltt
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ add sp, #0x28
+ pop {r3-r7, pc}
+ nop
+_0200DFC8: .word 0x00000162
+_0200DFCC: .word 0x020ECE98
+_0200DFD0: .word 0x020ECE88
+_0200DFD4: .word 0x00015CD5
+
+ thumb_func_start FUN_0200DFD8
+FUN_0200DFD8: ; 0x0200DFD8
+ push {r4-r6, lr}
+ sub sp, #0x10
+ ldr r3, _0200E184 ; =0x0000016E
+ add r5, r0, #0x0
+ ldrb r0, [r5, r3]
+ add r4, r1, #0x0
+ sub r1, r3, #0x2
+ sub r0, r0, #0x1
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x0]
+ mov r0, #0x1
+ str r0, [sp, #0x4]
+ str r0, [sp, #0x8]
+ str r4, [sp, #0xc]
+ sub r0, r3, #0x6
+ sub r3, r3, #0x1
+ ldrb r3, [r5, r3]
+ ldrb r1, [r5, r1]
+ ldr r0, [r5, r0]
+ sub r3, r3, #0x1
+ lsl r3, r3, #0x18
+ lsr r3, r3, #0x18
+ add r6, r2, #0x0
+ bl FUN_02018540
+ ldr r3, _0200E184 ; =0x0000016E
+ add r2, r6, #0x1
+ ldrb r0, [r5, r3]
+ sub r1, r3, #0x2
+ lsl r2, r2, #0x10
+ sub r0, r0, #0x1
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x0]
+ mov r0, #0xa
+ str r0, [sp, #0x4]
+ mov r0, #0x1
+ str r0, [sp, #0x8]
+ str r4, [sp, #0xc]
+ sub r0, r3, #0x6
+ sub r3, r3, #0x1
+ ldrb r1, [r5, r1]
+ ldrb r3, [r5, r3]
+ ldr r0, [r5, r0]
+ lsr r2, r2, #0x10
+ bl FUN_02018540
+ ldr r3, _0200E184 ; =0x0000016E
+ add r2, r6, #0x2
+ ldrb r0, [r5, r3]
+ lsl r2, r2, #0x10
+ sub r1, r3, #0x2
+ sub r0, r0, #0x1
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x0]
+ mov r0, #0x1
+ str r0, [sp, #0x4]
+ str r0, [sp, #0x8]
+ str r4, [sp, #0xc]
+ sub r0, r3, #0x6
+ sub r3, r3, #0x1
+ ldrb r3, [r5, r3]
+ ldrb r1, [r5, r1]
+ ldr r0, [r5, r0]
+ add r3, #0xa
+ lsl r3, r3, #0x18
+ lsr r2, r2, #0x10
+ lsr r3, r3, #0x18
+ bl FUN_02018540
+ ldr r3, _0200E184 ; =0x0000016E
+ add r2, r6, #0x4
+ ldrb r0, [r5, r3]
+ lsl r2, r2, #0x10
+ sub r1, r3, #0x2
+ str r0, [sp, #0x0]
+ mov r0, #0xa
+ str r0, [sp, #0x4]
+ str r0, [sp, #0x8]
+ str r4, [sp, #0xc]
+ sub r0, r3, #0x6
+ sub r3, r3, #0x1
+ ldrb r1, [r5, r1]
+ ldrb r3, [r5, r3]
+ ldr r0, [r5, r0]
+ lsr r2, r2, #0x10
+ bl FUN_02018540
+ ldr r3, _0200E184 ; =0x0000016E
+ add r2, r6, #0x3
+ ldrb r0, [r5, r3]
+ lsl r2, r2, #0x10
+ sub r1, r3, #0x2
+ str r0, [sp, #0x0]
+ mov r0, #0x1
+ str r0, [sp, #0x4]
+ mov r0, #0xa
+ str r0, [sp, #0x8]
+ str r4, [sp, #0xc]
+ sub r0, r3, #0x6
+ sub r3, r3, #0x1
+ ldrb r3, [r5, r3]
+ ldrb r1, [r5, r1]
+ ldr r0, [r5, r0]
+ sub r3, r3, #0x1
+ lsl r3, r3, #0x18
+ lsr r2, r2, #0x10
+ lsr r3, r3, #0x18
+ bl FUN_02018540
+ ldr r3, _0200E184 ; =0x0000016E
+ add r2, r6, #0x5
+ ldrb r0, [r5, r3]
+ lsl r2, r2, #0x10
+ sub r1, r3, #0x2
+ str r0, [sp, #0x0]
+ mov r0, #0x1
+ str r0, [sp, #0x4]
+ mov r0, #0xa
+ str r0, [sp, #0x8]
+ str r4, [sp, #0xc]
+ sub r0, r3, #0x6
+ sub r3, r3, #0x1
+ ldrb r3, [r5, r3]
+ ldrb r1, [r5, r1]
+ ldr r0, [r5, r0]
+ add r3, #0xa
+ lsl r3, r3, #0x18
+ lsr r2, r2, #0x10
+ lsr r3, r3, #0x18
+ bl FUN_02018540
+ ldr r3, _0200E184 ; =0x0000016E
+ add r2, r6, #0x6
+ ldrb r0, [r5, r3]
+ lsl r2, r2, #0x10
+ sub r1, r3, #0x2
+ add r0, #0xa
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x0]
+ mov r0, #0x1
+ str r0, [sp, #0x4]
+ str r0, [sp, #0x8]
+ str r4, [sp, #0xc]
+ sub r0, r3, #0x6
+ sub r3, r3, #0x1
+ ldrb r3, [r5, r3]
+ ldrb r1, [r5, r1]
+ ldr r0, [r5, r0]
+ sub r3, r3, #0x1
+ lsl r3, r3, #0x18
+ lsr r2, r2, #0x10
+ lsr r3, r3, #0x18
+ bl FUN_02018540
+ ldr r3, _0200E184 ; =0x0000016E
+ add r2, r6, #0x7
+ ldrb r0, [r5, r3]
+ sub r1, r3, #0x2
+ lsl r2, r2, #0x10
+ add r0, #0xa
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x0]
+ mov r0, #0xa
+ str r0, [sp, #0x4]
+ mov r0, #0x1
+ str r0, [sp, #0x8]
+ str r4, [sp, #0xc]
+ sub r0, r3, #0x6
+ sub r3, r3, #0x1
+ ldrb r1, [r5, r1]
+ ldrb r3, [r5, r3]
+ ldr r0, [r5, r0]
+ lsr r2, r2, #0x10
+ bl FUN_02018540
+ ldr r3, _0200E184 ; =0x0000016E
+ add r6, #0x8
+ ldrb r0, [r5, r3]
+ lsl r2, r6, #0x10
+ sub r1, r3, #0x2
+ add r0, #0xa
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x0]
+ mov r0, #0x1
+ str r0, [sp, #0x4]
+ str r0, [sp, #0x8]
+ str r4, [sp, #0xc]
+ sub r0, r3, #0x6
+ sub r3, r3, #0x1
+ ldrb r3, [r5, r3]
+ ldrb r1, [r5, r1]
+ ldr r0, [r5, r0]
+ add r3, #0xa
+ lsl r3, r3, #0x18
+ lsr r2, r2, #0x10
+ lsr r3, r3, #0x18
+ bl FUN_02018540
+ mov r1, #0x5a
+ lsl r1, r1, #0x2
+ ldr r0, [r5, r1]
+ add r1, r1, #0x4
+ ldrb r1, [r5, r1]
+ bl FUN_0201AC68
+ add sp, #0x10
+ pop {r4-r6, pc}
+ nop
+_0200E184: .word 0x0000016E
+
+ thumb_func_start FUN_0200E188
+FUN_0200E188: ; 0x0200E188
+ push {r4, lr}
+ sub sp, #0x10
+ ldr r3, _0200E1CC ; =0x0000016E
+ add r4, r0, #0x0
+ ldrb r0, [r4, r3]
+ mov r2, #0x0
+ sub r1, r3, #0x2
+ sub r0, r0, #0x1
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x0]
+ mov r0, #0xc
+ str r0, [sp, #0x4]
+ str r0, [sp, #0x8]
+ str r2, [sp, #0xc]
+ sub r0, r3, #0x6
+ sub r3, r3, #0x1
+ ldrb r3, [r4, r3]
+ ldrb r1, [r4, r1]
+ ldr r0, [r4, r0]
+ sub r3, r3, #0x1
+ lsl r3, r3, #0x18
+ lsr r3, r3, #0x18
+ bl FUN_02018540
+ mov r1, #0x5a
+ lsl r1, r1, #0x2
+ ldr r0, [r4, r1]
+ add r1, r1, #0x4
+ ldrb r1, [r4, r1]
+ bl FUN_0201AC68
+ add sp, #0x10
+ pop {r4, pc}
+ .balign 4
+_0200E1CC: .word 0x0000016E
+
+ thumb_func_start FUN_0200E1D0
+FUN_0200E1D0: ; 0x0200E1D0
+ push {r4-r7, lr}
+ sub sp, #0x1c
+ add r5, r0, #0x0
+ ldr r0, [sp, #0x30]
+ add r4, r1, #0x0
+ add r7, r2, #0x0
+ add r6, r3, #0x0
+ cmp r0, #0x0
+ bne _0200E1E6
+ bl ErrorHandling
+_0200E1E6:
+ ldr r0, [sp, #0x34]
+ cmp r0, #0x0
+ bne _0200E1F0
+ bl ErrorHandling
+_0200E1F0:
+ ldr r0, _0200E2AC ; =0x021C47F4
+ ldrh r0, [r0, #0xc]
+ cmp r0, #0x0
+ beq _0200E1FC
+ bl ErrorHandling
+_0200E1FC:
+ ldr r0, _0200E2B0 ; =0x021C46B4
+ bl FUN_0200E808
+ ldr r1, _0200E2B0 ; =0x021C46B4
+ add r0, r5, #0x0
+ bl FUN_0200E558
+ ldr r0, _0200E2B4 ; =0x021C4728
+ bl FUN_0200E5F4
+ ldr r0, _0200E2B0 ; =0x021C46B4
+ add r1, r6, #0x0
+ bl FUN_0200E75C
+ add r5, r0, #0x0
+ mov r0, #0x0
+ str r0, [sp, #0x0]
+ str r0, [sp, #0x4]
+ str r0, [sp, #0x8]
+ ldr r0, _0200E2B8 ; =0x021C4740
+ ldr r2, [sp, #0x30]
+ str r0, [sp, #0xc]
+ ldr r0, _0200E2B4 ; =0x021C4728
+ ldr r3, [sp, #0x34]
+ str r0, [sp, #0x10]
+ ldr r0, [sp, #0x38]
+ add r1, r4, #0x0
+ str r0, [sp, #0x14]
+ ldr r0, _0200E2BC ; =0x021C46C8
+ str r5, [sp, #0x18]
+ bl FUN_0200E5C8
+ mov r0, #0x0
+ str r0, [sp, #0x0]
+ str r0, [sp, #0x4]
+ mov r0, #0x1
+ str r0, [sp, #0x8]
+ ldr r0, _0200E2B8 ; =0x021C4740
+ ldr r2, [sp, #0x30]
+ str r0, [sp, #0xc]
+ ldr r0, _0200E2B4 ; =0x021C4728
+ ldr r3, [sp, #0x34]
+ str r0, [sp, #0x10]
+ ldr r0, [sp, #0x38]
+ add r1, r7, #0x0
+ str r0, [sp, #0x14]
+ ldr r0, _0200E2C0 ; =0x021C46F8
+ str r5, [sp, #0x18]
+ bl FUN_0200E5C8
+ ldr r0, _0200E2AC ; =0x021C47F4
+ mov r1, #0x1
+ strh r1, [r0, #0xc]
+ ldr r0, _0200E2C4 ; =0x021C46B8
+ ldr r1, _0200E2BC ; =0x021C46C8
+ bl FUN_0200E528
+ ldr r0, _0200E2C8 ; =0x021C46BC
+ ldr r1, _0200E2C0 ; =0x021C46F8
+ bl FUN_0200E528
+ ldr r0, _0200E2CC ; =0x021C46B4
+ ldr r0, [r0, #0xc]
+ cmp r0, #0x0
+ beq _0200E28E
+ ldr r0, _0200E2B0 ; =0x021C46B4
+ add r0, #0x14
+ bl FUN_0200E7A8
+ ldr r1, _0200E2D0 ; =0x0000014E
+ ldr r0, _0200E2B0 ; =0x021C46B4
+ mov r2, #0x1
+ strb r2, [r0, r1]
+_0200E28E:
+ ldr r0, _0200E2B0 ; =0x021C46B4
+ ldr r0, [r0, #0x10]
+ cmp r0, #0x0
+ beq _0200E2A6
+ ldr r0, _0200E2B0 ; =0x021C46B4
+ add r0, #0x44
+ bl FUN_0200E7A8
+ ldr r1, _0200E2D4 ; =0x0000014F
+ ldr r0, _0200E2B0 ; =0x021C46B4
+ mov r2, #0x1
+ strb r2, [r0, r1]
+_0200E2A6:
+ add sp, #0x1c
+ pop {r4-r7, pc}
+ nop
+_0200E2AC: .word 0x021C47F4
+_0200E2B0: .word 0x021C46B4
+_0200E2B4: .word 0x021C4728
+_0200E2B8: .word 0x021C4740
+_0200E2BC: .word 0x021C46C8
+_0200E2C0: .word 0x021C46F8
+_0200E2C4: .word 0x021C46B8
+_0200E2C8: .word 0x021C46BC
+_0200E2CC: .word 0x021C46B4
+_0200E2D0: .word 0x0000014E
+_0200E2D4: .word 0x0000014F
+
+ thumb_func_start FUN_0200E2D8
+FUN_0200E2D8: ; 0x0200E2D8
+ push {r4, lr}
+ ldr r0, _0200E300 ; =0x021C47F4
+ ldr r4, _0200E304 ; =0x021C46B4
+ ldrh r0, [r0, #0xc]
+ cmp r0, #0x0
+ beq _0200E2FC
+ add r1, r4, #0x0
+ add r2, r4, #0x0
+ add r0, r4, #0x0
+ add r1, #0x14
+ add r2, #0x44
+ bl FUN_0200E4B8
+ cmp r0, #0x1
+ bne _0200E2FC
+ add r0, r4, #0x0
+ bl FUN_0200E460
+_0200E2FC:
+ pop {r4, pc}
+ nop
+_0200E300: .word 0x021C47F4
+_0200E304: .word 0x021C46B4
+
+ thumb_func_start FUN_0200E308
+FUN_0200E308: ; 0x0200E308
+ ldr r0, _0200E318 ; =0x021C47F4
+ ldrh r0, [r0, #0xc]
+ cmp r0, #0x0
+ bne _0200E314
+ mov r0, #0x1
+ bx lr
+_0200E314:
+ mov r0, #0x0
+ bx lr
+ .balign 4
+_0200E318: .word 0x021C47F4
+
+ thumb_func_start FUN_0200E31C
+FUN_0200E31C: ; 0x0200E31C
+ push {r3, lr}
+ ldr r0, _0200E368 ; =0x021C4728
+ mov r1, #0x0
+ bl FUN_0200E6A0
+ ldr r0, _0200E368 ; =0x021C4728
+ mov r1, #0x1
+ bl FUN_0200E6A0
+ ldr r0, _0200E36C ; =0x021C46B4
+ ldr r1, [r0, #0x4]
+ cmp r1, #0x0
+ beq _0200E33A
+ mov r1, #0x2
+ str r1, [r0, #0x20]
+_0200E33A:
+ ldr r0, _0200E36C ; =0x021C46B4
+ ldr r1, [r0, #0x8]
+ cmp r1, #0x0
+ beq _0200E346
+ mov r1, #0x2
+ str r1, [r0, #0x50]
+_0200E346:
+ ldr r0, _0200E370 ; =0x021C46B8
+ ldr r1, _0200E374 ; =0x021C46C8
+ bl FUN_0200E528
+ ldr r0, _0200E378 ; =0x021C46BC
+ ldr r1, _0200E37C ; =0x021C46F8
+ bl FUN_0200E528
+ ldr r0, _0200E380 ; =0x021C47F4
+ mov r1, #0x0
+ strh r1, [r0, #0xc]
+ strb r1, [r0, #0xe]
+ strb r1, [r0, #0xf]
+ ldr r0, _0200E384 ; =0x021C46B4
+ bl FUN_0200E808
+ pop {r3, pc}
+ .balign 4
+_0200E368: .word 0x021C4728
+_0200E36C: .word 0x021C46B4
+_0200E370: .word 0x021C46B8
+_0200E374: .word 0x021C46C8
+_0200E378: .word 0x021C46BC
+_0200E37C: .word 0x021C46F8
+_0200E380: .word 0x021C47F4
+_0200E384: .word 0x021C46B4
+
+ thumb_func_start FUN_0200E388
+FUN_0200E388: ; 0x0200E388
+ ldr r3, _0200E390 ; =FUN_02011480
+ add r1, r0, #0x0
+ mov r0, #0x0
+ bx r3
+ .balign 4
+_0200E390: .word FUN_02011480
+
+ thumb_func_start FUN_0200E394
+FUN_0200E394: ; 0x0200E394
+ ldr r3, _0200E39C ; =FUN_0200E440
+ mov r1, #0x0
+ bx r3
+ nop
+_0200E39C: .word FUN_0200E440
+
+ thumb_func_start FUN_0200E3A0
+FUN_0200E3A0: ; 0x0200E3A0
+ ldr r2, _0200E3B4 ; =0x00007FFF
+ cmp r1, r2
+ bne _0200E3AA
+ mov r1, #0x10
+ b _0200E3AE
+_0200E3AA:
+ mov r1, #0xf
+ mvn r1, r1
+_0200E3AE:
+ ldr r3, _0200E3B8 ; =FUN_0200E440
+ bx r3
+ nop
+_0200E3B4: .word 0x00007FFF
+_0200E3B8: .word FUN_0200E440
+
+ thumb_func_start FUN_0200E3BC
+FUN_0200E3BC: ; 0x0200E3BC
+ push {r0-r3}
+ push {r3-r4, lr}
+ sub sp, #0xc
+ add r4, r0, #0x0
+ add r0, sp, #0x1c
+ bne _0200E3D2
+ mov r1, #0x0
+ mov r2, #0x2
+ blx GX_LoadBGPltt
+ b _0200E3DA
+_0200E3D2:
+ mov r1, #0x0
+ mov r2, #0x2
+ blx GXS_LoadBGPltt
+_0200E3DA:
+ ldr r0, _0200E41C ; =0x021C4740
+ mov r1, #0x1
+ add r2, r4, #0x0
+ bl FUN_02011634
+ mov r2, #0x0
+ ldr r0, _0200E41C ; =0x021C4740
+ mov r1, #0x3f
+ add r3, r2, #0x0
+ str r4, [sp, #0x0]
+ bl FUN_02011650
+ mov r1, #0x0
+ str r1, [sp, #0x0]
+ str r1, [sp, #0x4]
+ ldr r0, _0200E41C ; =0x021C4740
+ add r2, r1, #0x0
+ add r3, r1, #0x0
+ str r4, [sp, #0x8]
+ bl FUN_02011698
+ ldr r0, _0200E41C ; =0x021C4740
+ mov r1, #0x20
+ mov r2, #0x0
+ add r3, r4, #0x0
+ bl FUN_02011678
+ add sp, #0xc
+ pop {r3-r4}
+ pop {r3}
+ add sp, #0x10
+ bx r3
+ nop
+_0200E41C: .word 0x021C4740
+
+ thumb_func_start FUN_0200E420
+FUN_0200E420: ; 0x0200E420
+ push {r0-r3}
+ push {r3, lr}
+ add r0, sp, #0x8
+ mov r1, #0x0
+ mov r2, #0x2
+ blx GX_LoadBGPltt
+ add r0, sp, #0x8
+ mov r1, #0x0
+ mov r2, #0x2
+ blx GXS_LoadBGPltt
+ pop {r3}
+ pop {r3}
+ add sp, #0x10
+ bx r3
+
+ thumb_func_start FUN_0200E440
+FUN_0200E440: ; 0x0200E440
+ push {r3, lr}
+ cmp r0, #0x0
+ bne _0200E44E
+ ldr r0, _0200E458 ; =0x0400006C
+ blx GXx_SetMasterBrightness_
+ pop {r3, pc}
+_0200E44E:
+ ldr r0, _0200E45C ; =0x0400106C
+ blx GXx_SetMasterBrightness_
+ pop {r3, pc}
+ nop
+_0200E458: .word 0x0400006C
+_0200E45C: .word 0x0400106C
+
+ thumb_func_start FUN_0200E460
+FUN_0200E460: ; 0x0200E460
+ push {r4, lr}
+ mov r1, #0x53
+ add r4, r0, #0x0
+ mov r2, #0x0
+ lsl r1, r1, #0x2
+ strh r2, [r4, r1]
+ bl FUN_0200E770
+ mov r1, #0x15
+ lsl r1, r1, #0x4
+ strh r0, [r4, r1]
+ ldr r0, [r4, #0xc]
+ cmp r0, #0x0
+ beq _0200E490
+ add r0, r4, #0x0
+ add r0, #0x14
+ bl FUN_0200E7D8
+ ldr r0, [r4, #0x3c]
+ cmp r0, #0x0
+ bne _0200E490
+ ldr r0, _0200E4B4 ; =0x021C47F4
+ mov r1, #0x0
+ strb r1, [r0, #0xe]
+_0200E490:
+ ldr r0, [r4, #0x10]
+ cmp r0, #0x0
+ beq _0200E4AA
+ add r0, r4, #0x0
+ add r0, #0x44
+ bl FUN_0200E7D8
+ ldr r0, [r4, #0x3c]
+ cmp r0, #0x0
+ bne _0200E4AA
+ ldr r0, _0200E4B4 ; =0x021C47F4
+ mov r1, #0x0
+ strb r1, [r0, #0xf]
+_0200E4AA:
+ add r0, r4, #0x0
+ bl FUN_0200E808
+ pop {r4, pc}
+ nop
+_0200E4B4: .word 0x021C47F4
+
+ thumb_func_start FUN_0200E4B8
+FUN_0200E4B8: ; 0x0200E4B8
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ ldr r0, [r5, #0x0]
+ add r4, r2, #0x0
+ cmp r0, #0x0
+ beq _0200E4CE
+ cmp r0, #0x1
+ beq _0200E4E0
+ cmp r0, #0x2
+ beq _0200E4FA
+ b _0200E512
+_0200E4CE:
+ add r0, r5, #0x4
+ bl FUN_0200E528
+ add r0, r5, #0x0
+ add r0, #0x8
+ add r1, r4, #0x0
+ bl FUN_0200E528
+ b _0200E512
+_0200E4E0:
+ ldr r0, [r5, #0x4]
+ cmp r0, #0x0
+ beq _0200E4EE
+ add r0, r5, #0x4
+ bl FUN_0200E528
+ b _0200E512
+_0200E4EE:
+ add r0, r5, #0x0
+ add r0, #0x8
+ add r1, r4, #0x0
+ bl FUN_0200E528
+ b _0200E512
+_0200E4FA:
+ ldr r0, [r5, #0x8]
+ cmp r0, #0x0
+ beq _0200E50C
+ add r0, r5, #0x0
+ add r0, #0x8
+ add r1, r4, #0x0
+ bl FUN_0200E528
+ b _0200E512
+_0200E50C:
+ add r0, r5, #0x4
+ bl FUN_0200E528
+_0200E512:
+ ldr r0, [r5, #0x4]
+ cmp r0, #0x0
+ bne _0200E522
+ ldr r0, [r5, #0x8]
+ cmp r0, #0x0
+ bne _0200E522
+ mov r0, #0x1
+ pop {r3-r5, pc}
+_0200E522:
+ mov r0, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_0200E528
+FUN_0200E528: ; 0x0200E528
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r0, [r4, #0x0]
+ cmp r0, #0x0
+ beq _0200E540
+ add r0, r1, #0x0
+ bl FUN_0200E544
+ cmp r0, #0x1
+ bne _0200E540
+ mov r0, #0x0
+ str r0, [r4, #0x0]
+_0200E540:
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0200E544
+FUN_0200E544: ; 0x0200E544
+ push {r3, lr}
+ ldr r1, [r0, #0x0]
+ lsl r2, r1, #0x2
+ ldr r1, _0200E554 ; =0x020ECEF4
+ ldr r1, [r1, r2]
+ blx r1
+ pop {r3, pc}
+ nop
+_0200E554: .word 0x020ECEF4
+
+ thumb_func_start FUN_0200E558
+FUN_0200E558: ; 0x0200E558
+ push {r3, lr}
+ cmp r0, #0x4
+ bhi _0200E5B8
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0200E56A: ; jump table (using 16-bit offset)
+ .short _0200E574 - _0200E56A - 2; case 0
+ .short _0200E582 - _0200E56A - 2; case 1
+ .short _0200E590 - _0200E56A - 2; case 2
+ .short _0200E59E - _0200E56A - 2; case 3
+ .short _0200E5AC - _0200E56A - 2; case 4
+_0200E574:
+ mov r2, #0x1
+ add r0, r1, #0x0
+ mov r1, #0x0
+ add r3, r2, #0x0
+ bl FUN_0200E5BC
+ pop {r3, pc}
+_0200E582:
+ add r0, r1, #0x0
+ mov r1, #0x1
+ add r2, r1, #0x0
+ add r3, r1, #0x0
+ bl FUN_0200E5BC
+ pop {r3, pc}
+_0200E590:
+ mov r2, #0x1
+ add r0, r1, #0x0
+ mov r1, #0x2
+ add r3, r2, #0x0
+ bl FUN_0200E5BC
+ pop {r3, pc}
+_0200E59E:
+ add r0, r1, #0x0
+ mov r1, #0x1
+ add r2, r1, #0x0
+ mov r3, #0x0
+ bl FUN_0200E5BC
+ pop {r3, pc}
+_0200E5AC:
+ add r0, r1, #0x0
+ mov r1, #0x2
+ mov r2, #0x0
+ mov r3, #0x1
+ bl FUN_0200E5BC
+_0200E5B8:
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_0200E5BC
+FUN_0200E5BC: ; 0x0200E5BC
+ str r1, [r0, #0x0]
+ str r2, [r0, #0x4]
+ str r3, [r0, #0x8]
+ str r2, [r0, #0xc]
+ str r3, [r0, #0x10]
+ bx lr
+
+ thumb_func_start FUN_0200E5C8
+FUN_0200E5C8: ; 0x0200E5C8
+ str r1, [r0, #0x0]
+ str r2, [r0, #0x4]
+ ldr r1, [sp, #0x0]
+ str r3, [r0, #0x8]
+ str r1, [r0, #0xc]
+ ldr r1, [sp, #0x4]
+ str r1, [r0, #0x14]
+ ldr r1, [sp, #0x8]
+ str r1, [r0, #0x10]
+ ldr r1, [sp, #0xc]
+ str r1, [r0, #0x18]
+ ldr r1, [sp, #0x10]
+ str r1, [r0, #0x1c]
+ ldr r1, [sp, #0x14]
+ str r1, [r0, #0x20]
+ ldr r1, _0200E5F0 ; =0xFFFFFFF0
+ add r1, sp
+ ldrh r1, [r1, #0x28]
+ strh r1, [r0, #0x24]
+ bx lr
+ .balign 4
+_0200E5F0: .word 0xFFFFFFF0
+
+ thumb_func_start FUN_0200E5F4
+FUN_0200E5F4: ; 0x0200E5F4
+ mov r3, #0x0
+ ldr r1, _0200E60C ; =FUN_0200E758
+ add r2, r3, #0x0
+_0200E5FA:
+ str r2, [r0, #0x0]
+ str r1, [r0, #0x8]
+ str r2, [r0, #0x10]
+ add r3, r3, #0x1
+ add r0, r0, #0x4
+ cmp r3, #0x2
+ blt _0200E5FA
+ bx lr
+ nop
+_0200E60C: .word FUN_0200E758
+
+ thumb_func_start FUN_0200E610
+FUN_0200E610: ; 0x0200E610
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ mov r4, #0x0
+_0200E616:
+ ldr r0, [r5, #0x0]
+ ldr r1, [r5, #0x8]
+ blx r1
+ add r4, r4, #0x1
+ add r5, r5, #0x4
+ cmp r4, #0x2
+ blt _0200E616
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_0200E628
+FUN_0200E628: ; 0x0200E628
+ push {r4-r7, lr}
+ sub sp, #0xc
+ add r5, r0, #0x0
+ mov r0, #0x1
+ str r0, [sp, #0x4]
+ add r0, r5, #0x0
+ str r0, [sp, #0x8]
+ add r0, #0x10
+ lsl r4, r3, #0x2
+ str r0, [sp, #0x8]
+ ldr r0, [r0, r4]
+ add r7, r2, #0x0
+ str r1, [sp, #0x0]
+ cmp r0, #0x0
+ beq _0200E64A
+ bl ErrorHandling
+_0200E64A:
+ add r6, r5, #0x0
+ add r6, #0x8
+ ldr r0, [r6, r4]
+ cmp r0, #0x0
+ bne _0200E658
+ bl ErrorHandling
+_0200E658:
+ ldr r0, [r5, #0x10]
+ cmp r0, #0x0
+ bne _0200E672
+ ldr r0, [r5, #0x14]
+ cmp r0, #0x0
+ bne _0200E672
+ ldr r0, _0200E698 ; =FUN_0200E610
+ add r1, r5, #0x0
+ bl FUN_02015F34
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x4]
+_0200E672:
+ ldr r0, [sp, #0x4]
+ cmp r0, #0x1
+ beq _0200E67C
+ bl ErrorHandling
+_0200E67C:
+ ldr r0, [sp, #0x0]
+ cmp r7, #0x0
+ str r0, [r5, r4]
+ beq _0200E688
+ str r7, [r6, r4]
+ b _0200E68C
+_0200E688:
+ ldr r0, _0200E69C ; =FUN_0200E758
+ str r0, [r6, r4]
+_0200E68C:
+ ldr r0, [sp, #0x8]
+ mov r1, #0x1
+ str r1, [r0, r4]
+ add sp, #0xc
+ pop {r4-r7, pc}
+ nop
+_0200E698: .word FUN_0200E610
+_0200E69C: .word FUN_0200E758
+
+ thumb_func_start FUN_0200E6A0
+FUN_0200E6A0: ; 0x0200E6A0
+ push {r3-r5, lr}
+ lsl r4, r1, #0x2
+ add r5, r0, #0x0
+ mov r1, #0x0
+ add r0, r5, r4
+ str r1, [r0, #0x10]
+ ldr r0, [r5, #0x10]
+ cmp r0, #0x0
+ bne _0200E6BC
+ ldr r0, [r5, #0x14]
+ cmp r0, #0x0
+ bne _0200E6BC
+ bl FUN_02015F1C
+_0200E6BC:
+ ldr r1, _0200E6C8 ; =FUN_0200E758
+ add r0, r5, r4
+ str r1, [r0, #0x8]
+ mov r0, #0x0
+ str r0, [r5, r4]
+ pop {r3-r5, pc}
+ .balign 4
+_0200E6C8: .word FUN_0200E758
+
+ thumb_func_start FUN_0200E6CC
+FUN_0200E6CC: ; 0x0200E6CC
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ ldr r0, [sp, #0x18]
+ mov r1, #0x10
+ add r6, r2, #0x0
+ add r7, r3, #0x0
+ bl FUN_020169D8
+ add r1, r0, #0x0
+ str r5, [r1, #0x0]
+ str r4, [r1, #0x4]
+ mov r2, #0x1
+ str r6, [r1, #0x8]
+ ldr r0, _0200E6F4 ; =FUN_0200E71C
+ lsl r2, r2, #0xa
+ str r7, [r1, #0xc]
+ bl FUN_0200CA98
+ pop {r3-r7, pc}
+ .balign 4
+_0200E6F4: .word FUN_0200E71C
+
+ thumb_func_start FUN_0200E6F8
+FUN_0200E6F8: ; 0x0200E6F8
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ add r0, r2, #0x0
+ mov r1, #0x8
+ bl FUN_020169D8
+ add r1, r0, #0x0
+ mov r2, #0x1
+ str r5, [r1, #0x0]
+ ldr r0, _0200E718 ; =FUN_0200E73C
+ lsl r2, r2, #0xa
+ str r4, [r1, #0x4]
+ bl FUN_0200CA98
+ pop {r3-r5, pc}
+ .balign 4
+_0200E718: .word FUN_0200E73C
+
+ thumb_func_start FUN_0200E71C
+FUN_0200E71C: ; 0x0200E71C
+ push {r3-r5, lr}
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ ldr r0, [r4, #0x0]
+ ldr r1, [r4, #0x4]
+ ldr r2, [r4, #0x8]
+ ldr r3, [r4, #0xc]
+ bl FUN_0200E628
+ add r0, r5, #0x0
+ bl FUN_0200CAB4
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_0200E73C
+FUN_0200E73C: ; 0x0200E73C
+ push {r3-r5, lr}
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ ldr r0, [r4, #0x0]
+ ldr r1, [r4, #0x4]
+ bl FUN_0200E6A0
+ add r0, r5, #0x0
+ bl FUN_0200CAB4
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_0200E758
+FUN_0200E758: ; 0x0200E758
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_0200E75C
+FUN_0200E75C: ; 0x0200E75C
+ ldr r2, _0200E76C ; =0x0000FFFF
+ cmp r1, r2
+ bne _0200E768
+ mov r1, #0x15
+ lsl r1, r1, #0x4
+ ldrh r1, [r0, r1]
+_0200E768:
+ add r0, r1, #0x0
+ bx lr
+ .balign 4
+_0200E76C: .word 0x0000FFFF
+
+ thumb_func_start FUN_0200E770
+FUN_0200E770: ; 0x0200E770
+ ldr r1, [r0, #0xc]
+ cmp r1, #0x1
+ bne _0200E77C
+ add r2, r0, #0x0
+ add r2, #0x14
+ b _0200E780
+_0200E77C:
+ add r2, r0, #0x0
+ add r2, #0x44
+_0200E780:
+ ldr r1, [r2, #0x28]
+ cmp r1, #0x1
+ bne _0200E78A
+ ldrh r0, [r2, #0x24]
+ bx lr
+_0200E78A:
+ mov r1, #0x15
+ lsl r1, r1, #0x4
+ ldrh r0, [r0, r1]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_0200E794
+FUN_0200E794: ; 0x0200E794
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r0, [r1, #0x10]
+ mov r1, #0x0
+ bl FUN_0200E440
+ add r0, r4, #0x0
+ bl FUN_0200CAB4
+ pop {r4, pc}
+
+ thumb_func_start FUN_0200E7A8
+FUN_0200E7A8: ; 0x0200E7A8
+ push {r3, lr}
+ add r1, r0, #0x0
+ ldr r0, [r1, #0x28]
+ cmp r0, #0x0
+ bne _0200E7CE
+ ldrh r2, [r1, #0x24]
+ ldr r0, _0200E7D0 ; =0x00007FFF
+ cmp r2, r0
+ beq _0200E7BE
+ cmp r2, #0x0
+ bne _0200E7CE
+_0200E7BE:
+ ldr r0, [r1, #0x2c]
+ cmp r0, #0x0
+ bne _0200E7CE
+ mov r2, #0x1
+ ldr r0, _0200E7D4 ; =FUN_0200E794
+ lsl r2, r2, #0xa
+ bl FUN_0200CA98
+_0200E7CE:
+ pop {r3, pc}
+ .balign 4
+_0200E7D0: .word 0x00007FFF
+_0200E7D4: .word FUN_0200E794
+
+ thumb_func_start FUN_0200E7D8
+FUN_0200E7D8: ; 0x0200E7D8
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r0, [r4, #0x28]
+ cmp r0, #0x1
+ bne _0200E800
+ ldrh r1, [r4, #0x24]
+ ldr r0, _0200E804 ; =0x00007FFF
+ cmp r1, r0
+ beq _0200E7EE
+ cmp r1, #0x0
+ bne _0200E800
+_0200E7EE:
+ ldr r0, [r4, #0x2c]
+ cmp r0, #0x0
+ bne _0200E800
+ ldr r0, [r4, #0x10]
+ bl FUN_0200E3A0
+ ldr r0, [r4, #0x10]
+ bl FUN_0200E388
+_0200E800:
+ pop {r4, pc}
+ nop
+_0200E804: .word 0x00007FFF
+
+ thumb_func_start FUN_0200E808
+FUN_0200E808: ; 0x0200E808
+ push {r4, lr}
+ add r4, r0, #0x0
+ add r2, r4, #0x0
+ mov r1, #0x14
+ mov r0, #0x0
+_0200E812:
+ strb r0, [r2, #0x0]
+ add r2, r2, #0x1
+ sub r1, r1, #0x1
+ bne _0200E812
+ add r0, r4, #0x0
+ add r0, #0x14
+ mov r1, #0x0
+ mov r2, #0x30
+ blx Call_FillMemWithValue
+ add r0, r4, #0x0
+ add r0, #0x44
+ mov r1, #0x0
+ mov r2, #0x30
+ blx Call_FillMemWithValue
+ add r2, r4, #0x0
+ add r2, #0x74
+ mov r1, #0x18
+ mov r0, #0x0
+_0200E83A:
+ strb r0, [r2, #0x0]
+ add r2, r2, #0x1
+ sub r1, r1, #0x1
+ bne _0200E83A
+ add r4, #0x8c
+ add r0, r4, #0x0
+ mov r1, #0x0
+ mov r2, #0xc0
+ blx Call_FillMemWithValue
+ pop {r4, pc}
+
+ thumb_func_start FUN_0200E850
+FUN_0200E850: ; 0x0200E850
+ push {r3, lr}
+ ldr r1, [r0, #0xc]
+ cmp r1, #0x0
+ bne _0200E866
+ mov r1, #0x1
+ str r1, [r0, #0x28]
+ str r1, [r0, #0x2c]
+ bl FUN_0200F20C
+ mov r0, #0x0
+ pop {r3, pc}
+_0200E866:
+ bl FUN_0200F2AC
+ pop {r3, pc}
+
+ thumb_func_start FUN_0200E86C
+FUN_0200E86C: ; 0x0200E86C
+ push {r3, lr}
+ ldr r1, [r0, #0xc]
+ cmp r1, #0x0
+ bne _0200E884
+ mov r1, #0x0
+ str r1, [r0, #0x28]
+ mov r2, #0x1
+ str r2, [r0, #0x2c]
+ bl FUN_0200F20C
+ mov r0, #0x0
+ pop {r3, pc}
+_0200E884:
+ bl FUN_0200F2AC
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_0200E88C
+FUN_0200E88C: ; 0x0200E88C
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r1, [r4, #0xc]
+ cmp r1, #0x0
+ bne _0200E8B4
+ ldr r1, _0200E8BC ; =0x020ECF9F
+ ldr r0, _0200E8C0 ; =0x02105AF8
+ str r1, [r0, #0x30]
+ ldrh r0, [r4, #0x24]
+ bl FUN_0200E420
+ ldr r1, _0200E8C4 ; =0x02105B28
+ add r0, r4, #0x0
+ bl FUN_02010F2C
+ mov r0, #0x1
+ str r0, [r4, #0x28]
+ mov r0, #0x0
+ str r0, [r4, #0x2c]
+ pop {r4, pc}
+_0200E8B4:
+ bl FUN_02010F70
+ pop {r4, pc}
+ nop
+_0200E8BC: .word 0x020ECF9F
+_0200E8C0: .word 0x02105AF8
+_0200E8C4: .word 0x02105B28
+
+ thumb_func_start FUN_0200E8C8
+FUN_0200E8C8: ; 0x0200E8C8
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r1, [r4, #0xc]
+ cmp r1, #0x0
+ bne _0200E8EE
+ ldr r1, _0200E8F4 ; =0x020ECF9C
+ ldr r0, _0200E8F8 ; =0x02105AF8
+ str r1, [r0, #0x40]
+ ldrh r0, [r4, #0x24]
+ bl FUN_0200E420
+ ldr r1, _0200E8FC ; =0x02105B38
+ add r0, r4, #0x0
+ bl FUN_02010F2C
+ mov r0, #0x0
+ str r0, [r4, #0x28]
+ str r0, [r4, #0x2c]
+ pop {r4, pc}
+_0200E8EE:
+ bl FUN_02010F70
+ pop {r4, pc}
+ .balign 4
+_0200E8F4: .word 0x020ECF9C
+_0200E8F8: .word 0x02105AF8
+_0200E8FC: .word 0x02105B38
+
+ thumb_func_start FUN_0200E900
+FUN_0200E900: ; 0x0200E900
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r1, [r4, #0xc]
+ cmp r1, #0x0
+ bne _0200E928
+ ldr r1, _0200E930 ; =0x020ECFA5
+ ldr r0, _0200E934 ; =0x02105AF8
+ str r1, [r0, #0x48]
+ ldrh r0, [r4, #0x24]
+ bl FUN_0200E420
+ ldr r1, _0200E938 ; =0x02105B40
+ add r0, r4, #0x0
+ bl FUN_02010F2C
+ mov r0, #0x1
+ str r0, [r4, #0x28]
+ mov r0, #0x0
+ str r0, [r4, #0x2c]
+ pop {r4, pc}
+_0200E928:
+ bl FUN_02010F70
+ pop {r4, pc}
+ nop
+_0200E930: .word 0x020ECFA5
+_0200E934: .word 0x02105AF8
+_0200E938: .word 0x02105B40
+
+ thumb_func_start FUN_0200E93C
+FUN_0200E93C: ; 0x0200E93C
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r1, [r4, #0xc]
+ cmp r1, #0x0
+ bne _0200E962
+ ldr r1, _0200E968 ; =0x020ECFA2
+ ldr r0, _0200E96C ; =0x02105AF8
+ str r1, [r0, #0x38]
+ ldrh r0, [r4, #0x24]
+ bl FUN_0200E420
+ ldr r1, _0200E970 ; =0x02105B30
+ add r0, r4, #0x0
+ bl FUN_02010F2C
+ mov r0, #0x0
+ str r0, [r4, #0x28]
+ str r0, [r4, #0x2c]
+ pop {r4, pc}
+_0200E962:
+ bl FUN_02010F70
+ pop {r4, pc}
+ .balign 4
+_0200E968: .word 0x020ECFA2
+_0200E96C: .word 0x02105AF8
+_0200E970: .word 0x02105B30
+
+ thumb_func_start FUN_0200E974
+FUN_0200E974: ; 0x0200E974
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r1, [r4, #0xc]
+ cmp r1, #0x0
+ bne _0200E996
+ ldrh r0, [r4, #0x24]
+ bl FUN_0200E420
+ ldr r1, _0200E99C ; =0x020ED0E8
+ add r0, r4, #0x0
+ bl FUN_0200FCC8
+ mov r0, #0x1
+ str r0, [r4, #0x28]
+ mov r0, #0x0
+ str r0, [r4, #0x2c]
+ pop {r4, pc}
+_0200E996:
+ bl FUN_0200FD1C
+ pop {r4, pc}
+ .balign 4
+_0200E99C: .word 0x020ED0E8
+
+ thumb_func_start FUN_0200E9A0
+FUN_0200E9A0: ; 0x0200E9A0
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r1, [r4, #0xc]
+ cmp r1, #0x0
+ bne _0200E9C0
+ ldrh r0, [r4, #0x24]
+ bl FUN_0200E420
+ ldr r1, _0200E9C8 ; =0x020ED154
+ add r0, r4, #0x0
+ bl FUN_0200FCC8
+ mov r0, #0x0
+ str r0, [r4, #0x28]
+ str r0, [r4, #0x2c]
+ pop {r4, pc}
+_0200E9C0:
+ bl FUN_0200FD1C
+ pop {r4, pc}
+ nop
+_0200E9C8: .word 0x020ED154
+
+ thumb_func_start FUN_0200E9CC
+FUN_0200E9CC: ; 0x0200E9CC
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r1, [r4, #0xc]
+ cmp r1, #0x0
+ bne _0200E9F4
+ ldr r1, _0200E9FC ; =0x020ECFC0
+ ldr r0, _0200EA00 ; =0x02105AF8
+ str r1, [r0, #0x20]
+ ldrh r0, [r4, #0x24]
+ bl FUN_0200E420
+ ldr r1, _0200EA04 ; =0x02105B18
+ add r0, r4, #0x0
+ bl FUN_02010F2C
+ mov r0, #0x1
+ str r0, [r4, #0x28]
+ mov r0, #0x0
+ str r0, [r4, #0x2c]
+ pop {r4, pc}
+_0200E9F4:
+ bl FUN_02010F70
+ pop {r4, pc}
+ nop
+_0200E9FC: .word 0x020ECFC0
+_0200EA00: .word 0x02105AF8
+_0200EA04: .word 0x02105B18
+
+ thumb_func_start FUN_0200EA08
+FUN_0200EA08: ; 0x0200EA08
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r1, [r4, #0xc]
+ cmp r1, #0x0
+ bne _0200EA2E
+ ldr r1, _0200EA34 ; =0x020ECFC6
+ ldr r0, _0200EA38 ; =0x02105AF8
+ str r1, [r0, #0x28]
+ ldrh r0, [r4, #0x24]
+ bl FUN_0200E420
+ ldr r1, _0200EA3C ; =0x02105B20
+ add r0, r4, #0x0
+ bl FUN_02010F2C
+ mov r0, #0x0
+ str r0, [r4, #0x28]
+ str r0, [r4, #0x2c]
+ pop {r4, pc}
+_0200EA2E:
+ bl FUN_02010F70
+ pop {r4, pc}
+ .balign 4
+_0200EA34: .word 0x020ECFC6
+_0200EA38: .word 0x02105AF8
+_0200EA3C: .word 0x02105B20
+
+ thumb_func_start FUN_0200EA40
+FUN_0200EA40: ; 0x0200EA40
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r1, [r4, #0xc]
+ cmp r1, #0x0
+ bne _0200EA68
+ ldr r1, _0200EA70 ; =0x020ECFA8
+ ldr r0, _0200EA74 ; =0x02105AF8
+ str r1, [r0, #0x10]
+ ldrh r0, [r4, #0x24]
+ bl FUN_0200E420
+ ldr r1, _0200EA78 ; =0x02105B08
+ add r0, r4, #0x0
+ bl FUN_02010F2C
+ mov r0, #0x1
+ str r0, [r4, #0x28]
+ mov r0, #0x0
+ str r0, [r4, #0x2c]
+ pop {r4, pc}
+_0200EA68:
+ bl FUN_02010F70
+ pop {r4, pc}
+ nop
+_0200EA70: .word 0x020ECFA8
+_0200EA74: .word 0x02105AF8
+_0200EA78: .word 0x02105B08
+
+ thumb_func_start FUN_0200EA7C
+FUN_0200EA7C: ; 0x0200EA7C
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r1, [r4, #0xc]
+ cmp r1, #0x0
+ bne _0200EAA2
+ ldr r1, _0200EAA8 ; =0x020ECFB4
+ ldr r0, _0200EAAC ; =0x02105AF8
+ str r1, [r0, #0x18]
+ ldrh r0, [r4, #0x24]
+ bl FUN_0200E420
+ ldr r1, _0200EAB0 ; =0x02105B10
+ add r0, r4, #0x0
+ bl FUN_02010F2C
+ mov r0, #0x0
+ str r0, [r4, #0x28]
+ str r0, [r4, #0x2c]
+ pop {r4, pc}
+_0200EAA2:
+ bl FUN_02010F70
+ pop {r4, pc}
+ .balign 4
+_0200EAA8: .word 0x020ECFB4
+_0200EAAC: .word 0x02105AF8
+_0200EAB0: .word 0x02105B10
+
+ thumb_func_start FUN_0200EAB4
+FUN_0200EAB4: ; 0x0200EAB4
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r1, [r4, #0xc]
+ cmp r1, #0x0
+ bne _0200EAD6
+ ldrh r0, [r4, #0x24]
+ bl FUN_0200E420
+ ldr r1, _0200EADC ; =0x020ED1C0
+ add r0, r4, #0x0
+ bl FUN_0200FCC8
+ mov r0, #0x1
+ str r0, [r4, #0x28]
+ mov r0, #0x0
+ str r0, [r4, #0x2c]
+ pop {r4, pc}
+_0200EAD6:
+ bl FUN_0200FD1C
+ pop {r4, pc}
+ .balign 4
+_0200EADC: .word 0x020ED1C0
+
+ thumb_func_start FUN_0200EAE0
+FUN_0200EAE0: ; 0x0200EAE0
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r1, [r4, #0xc]
+ cmp r1, #0x0
+ bne _0200EB00
+ ldrh r0, [r4, #0x24]
+ bl FUN_0200E420
+ ldr r1, _0200EB08 ; =0x020ED1E4
+ add r0, r4, #0x0
+ bl FUN_0200FCC8
+ mov r0, #0x0
+ str r0, [r4, #0x28]
+ str r0, [r4, #0x2c]
+ pop {r4, pc}
+_0200EB00:
+ bl FUN_0200FD1C
+ pop {r4, pc}
+ nop
+_0200EB08: .word 0x020ED1E4
+
+ thumb_func_start FUN_0200EB0C
+FUN_0200EB0C: ; 0x0200EB0C
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r1, [r4, #0xc]
+ cmp r1, #0x0
+ bne _0200EB30
+ ldrh r0, [r4, #0x24]
+ bl FUN_0200E420
+ ldr r1, _0200EB38 ; =0x020ED208
+ ldr r2, _0200EB3C ; =0x020ED22C
+ add r0, r4, #0x0
+ bl FUN_0200FD6C
+ mov r0, #0x1
+ str r0, [r4, #0x28]
+ mov r0, #0x0
+ str r0, [r4, #0x2c]
+ pop {r4, pc}
+_0200EB30:
+ bl FUN_0200FDC4
+ pop {r4, pc}
+ nop
+_0200EB38: .word 0x020ED208
+_0200EB3C: .word 0x020ED22C
+
+ thumb_func_start FUN_0200EB40
+FUN_0200EB40: ; 0x0200EB40
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r1, [r4, #0xc]
+ cmp r1, #0x0
+ bne _0200EB62
+ ldrh r0, [r4, #0x24]
+ bl FUN_0200E420
+ ldr r1, _0200EB68 ; =0x020ED250
+ ldr r2, _0200EB6C ; =0x020ED274
+ add r0, r4, #0x0
+ bl FUN_0200FD6C
+ mov r0, #0x0
+ str r0, [r4, #0x28]
+ str r0, [r4, #0x2c]
+ pop {r4, pc}
+_0200EB62:
+ bl FUN_0200FDC4
+ pop {r4, pc}
+ .balign 4
+_0200EB68: .word 0x020ED250
+_0200EB6C: .word 0x020ED274
+
+ thumb_func_start FUN_0200EB70
+FUN_0200EB70: ; 0x0200EB70
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r1, [r4, #0xc]
+ cmp r1, #0x0
+ bne _0200EB92
+ ldrh r0, [r4, #0x24]
+ bl FUN_0200E420
+ ldr r1, _0200EB98 ; =0x020ED090
+ add r0, r4, #0x0
+ bl FUN_0200FF18
+ mov r0, #0x1
+ str r0, [r4, #0x28]
+ mov r0, #0x0
+ str r0, [r4, #0x2c]
+ pop {r4, pc}
+_0200EB92:
+ bl FUN_0200FF50
+ pop {r4, pc}
+ .balign 4
+_0200EB98: .word 0x020ED090
+
+ thumb_func_start FUN_0200EB9C
+FUN_0200EB9C: ; 0x0200EB9C
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r1, [r4, #0xc]
+ cmp r1, #0x0
+ bne _0200EBBC
+ ldrh r0, [r4, #0x24]
+ bl FUN_0200E420
+ ldr r1, _0200EBC4 ; =0x020ED040
+ add r0, r4, #0x0
+ bl FUN_0200FF18
+ mov r0, #0x0
+ str r0, [r4, #0x28]
+ str r0, [r4, #0x2c]
+ pop {r4, pc}
+_0200EBBC:
+ bl FUN_0200FF50
+ pop {r4, pc}
+ nop
+_0200EBC4: .word 0x020ED040
+
+ thumb_func_start FUN_0200EBC8
+FUN_0200EBC8: ; 0x0200EBC8
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r1, [r4, #0xc]
+ cmp r1, #0x0
+ bne _0200EBEA
+ ldrh r0, [r4, #0x24]
+ bl FUN_0200E420
+ ldr r1, _0200EBF0 ; =0x020ED050
+ add r0, r4, #0x0
+ bl FUN_0200FF18
+ mov r0, #0x1
+ str r0, [r4, #0x28]
+ mov r0, #0x0
+ str r0, [r4, #0x2c]
+ pop {r4, pc}
+_0200EBEA:
+ bl FUN_0200FF50
+ pop {r4, pc}
+ .balign 4
+_0200EBF0: .word 0x020ED050
+
+ thumb_func_start FUN_0200EBF4
+FUN_0200EBF4: ; 0x0200EBF4
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r1, [r4, #0xc]
+ cmp r1, #0x0
+ bne _0200EC14
+ ldrh r0, [r4, #0x24]
+ bl FUN_0200E420
+ ldr r1, _0200EC1C ; =0x020ED060
+ add r0, r4, #0x0
+ bl FUN_0200FF18
+ mov r0, #0x0
+ str r0, [r4, #0x28]
+ str r0, [r4, #0x2c]
+ pop {r4, pc}
+_0200EC14:
+ bl FUN_0200FF50
+ pop {r4, pc}
+ nop
+_0200EC1C: .word 0x020ED060
+
+ thumb_func_start FUN_0200EC20
+FUN_0200EC20: ; 0x0200EC20
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r1, [r4, #0xc]
+ cmp r1, #0x0
+ bne _0200EC42
+ ldrh r0, [r4, #0x24]
+ bl FUN_0200E420
+ ldr r1, _0200EC48 ; =0x020ECFE0
+ add r0, r4, #0x0
+ bl FUN_020101EC
+ mov r0, #0x1
+ str r0, [r4, #0x28]
+ mov r0, #0x0
+ str r0, [r4, #0x2c]
+ pop {r4, pc}
+_0200EC42:
+ bl FUN_02010224
+ pop {r4, pc}
+ .balign 4
+_0200EC48: .word 0x020ECFE0
+
+ thumb_func_start FUN_0200EC4C
+FUN_0200EC4C: ; 0x0200EC4C
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r1, [r4, #0xc]
+ cmp r1, #0x0
+ bne _0200EC6C
+ ldrh r0, [r4, #0x24]
+ bl FUN_0200E420
+ ldr r1, _0200EC74 ; =0x020ECFEC
+ add r0, r4, #0x0
+ bl FUN_020101EC
+ mov r0, #0x0
+ str r0, [r4, #0x28]
+ str r0, [r4, #0x2c]
+ pop {r4, pc}
+_0200EC6C:
+ bl FUN_02010224
+ pop {r4, pc}
+ nop
+_0200EC74: .word 0x020ECFEC
+
+ thumb_func_start FUN_0200EC78
+FUN_0200EC78: ; 0x0200EC78
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r1, [r4, #0xc]
+ cmp r1, #0x0
+ bne _0200EC9A
+ ldrh r0, [r4, #0x24]
+ bl FUN_0200E420
+ ldr r1, _0200ECA0 ; =0x020ED0A0
+ add r0, r4, #0x0
+ bl FUN_0200FCC8
+ mov r0, #0x1
+ str r0, [r4, #0x28]
+ mov r0, #0x0
+ str r0, [r4, #0x2c]
+ pop {r4, pc}
+_0200EC9A:
+ bl FUN_0200FD1C
+ pop {r4, pc}
+ .balign 4
+_0200ECA0: .word 0x020ED0A0
+
+ thumb_func_start FUN_0200ECA4
+FUN_0200ECA4: ; 0x0200ECA4
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r1, [r4, #0xc]
+ cmp r1, #0x0
+ bne _0200ECC4
+ ldrh r0, [r4, #0x24]
+ bl FUN_0200E420
+ ldr r1, _0200ECCC ; =0x020ED0C4
+ add r0, r4, #0x0
+ bl FUN_0200FCC8
+ mov r0, #0x0
+ str r0, [r4, #0x28]
+ str r0, [r4, #0x2c]
+ pop {r4, pc}
+_0200ECC4:
+ bl FUN_0200FD1C
+ pop {r4, pc}
+ nop
+_0200ECCC: .word 0x020ED0C4
+
+ thumb_func_start FUN_0200ECD0
+FUN_0200ECD0: ; 0x0200ECD0
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r1, [r4, #0xc]
+ cmp r1, #0x0
+ bne _0200ECF2
+ ldrh r0, [r4, #0x24]
+ bl FUN_0200E420
+ ldr r1, _0200ECF8 ; =0x020ED10C
+ add r0, r4, #0x0
+ bl FUN_0200FCC8
+ mov r0, #0x1
+ str r0, [r4, #0x28]
+ mov r0, #0x0
+ str r0, [r4, #0x2c]
+ pop {r4, pc}
+_0200ECF2:
+ bl FUN_0200FD1C
+ pop {r4, pc}
+ .balign 4
+_0200ECF8: .word 0x020ED10C
+
+ thumb_func_start FUN_0200ECFC
+FUN_0200ECFC: ; 0x0200ECFC
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r1, [r4, #0xc]
+ cmp r1, #0x0
+ bne _0200ED1C
+ ldrh r0, [r4, #0x24]
+ bl FUN_0200E420
+ ldr r1, _0200ED24 ; =0x020ED178
+ add r0, r4, #0x0
+ bl FUN_0200FCC8
+ mov r0, #0x0
+ str r0, [r4, #0x28]
+ str r0, [r4, #0x2c]
+ pop {r4, pc}
+_0200ED1C:
+ bl FUN_0200FD1C
+ pop {r4, pc}
+ nop
+_0200ED24: .word 0x020ED178
+
+ thumb_func_start FUN_0200ED28
+FUN_0200ED28: ; 0x0200ED28
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r1, [r4, #0xc]
+ cmp r1, #0x0
+ bne _0200ED4A
+ ldrh r0, [r4, #0x24]
+ bl FUN_0200E420
+ ldr r1, _0200ED50 ; =0x020ED004
+ add r0, r4, #0x0
+ bl FUN_020103F0
+ mov r0, #0x1
+ str r0, [r4, #0x28]
+ mov r0, #0x0
+ str r0, [r4, #0x2c]
+ pop {r4, pc}
+_0200ED4A:
+ bl FUN_02010428
+ pop {r4, pc}
+ .balign 4
+_0200ED50: .word 0x020ED004
+
+ thumb_func_start FUN_0200ED54
+FUN_0200ED54: ; 0x0200ED54
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r1, [r4, #0xc]
+ cmp r1, #0x0
+ bne _0200ED74
+ ldrh r0, [r4, #0x24]
+ bl FUN_0200E420
+ ldr r1, _0200ED7C ; =0x020ED010
+ add r0, r4, #0x0
+ bl FUN_020103F0
+ mov r0, #0x0
+ str r0, [r4, #0x28]
+ str r0, [r4, #0x2c]
+ pop {r4, pc}
+_0200ED74:
+ bl FUN_02010428
+ pop {r4, pc}
+ nop
+_0200ED7C: .word 0x020ED010
+
+ thumb_func_start FUN_0200ED80
+FUN_0200ED80: ; 0x0200ED80
+ push {r4, lr}
+ sub sp, #0x10
+ add r4, r0, #0x0
+ ldr r1, [r4, #0xc]
+ cmp r1, #0x0
+ bne _0200EDC4
+ ldr r0, _0200EDCC ; =0x020ED298
+ mov r1, #0x4
+ str r0, [sp, #0x0]
+ ldr r0, _0200EDD0 ; =0x020ED2D8
+ str r0, [sp, #0x4]
+ add r0, sp, #0x0
+ strb r1, [r0, #0x8]
+ mov r1, #0x0
+ strb r1, [r0, #0x9]
+ mov r1, #0x3f
+ strb r1, [r0, #0xa]
+ mov r1, #0x20
+ strb r1, [r0, #0xb]
+ mov r1, #0x1
+ strb r1, [r0, #0xc]
+ ldrh r0, [r4, #0x24]
+ bl FUN_0200E420
+ add r0, r4, #0x0
+ add r1, sp, #0x0
+ bl FUN_02010688
+ mov r0, #0x1
+ str r0, [r4, #0x28]
+ mov r0, #0x0
+ add sp, #0x10
+ str r0, [r4, #0x2c]
+ pop {r4, pc}
+_0200EDC4:
+ bl FUN_020106C0
+ add sp, #0x10
+ pop {r4, pc}
+ .balign 4
+_0200EDCC: .word 0x020ED298
+_0200EDD0: .word 0x020ED2D8
+
+ thumb_func_start FUN_0200EDD4
+FUN_0200EDD4: ; 0x0200EDD4
+ push {r4, lr}
+ sub sp, #0x10
+ add r4, r0, #0x0
+ ldr r1, [r4, #0xc]
+ cmp r1, #0x0
+ bne _0200EE14
+ ldr r0, _0200EE1C ; =0x020ED318
+ mov r1, #0x4
+ str r0, [sp, #0x0]
+ ldr r0, _0200EE20 ; =0x020ED358
+ mov r2, #0x0
+ str r0, [sp, #0x4]
+ add r0, sp, #0x0
+ strb r1, [r0, #0x8]
+ strb r2, [r0, #0x9]
+ mov r1, #0x3f
+ strb r1, [r0, #0xa]
+ mov r1, #0x20
+ strb r1, [r0, #0xb]
+ strb r2, [r0, #0xc]
+ ldrh r0, [r4, #0x24]
+ bl FUN_0200E420
+ add r0, r4, #0x0
+ add r1, sp, #0x0
+ bl FUN_02010688
+ mov r0, #0x0
+ str r0, [r4, #0x28]
+ add sp, #0x10
+ str r0, [r4, #0x2c]
+ pop {r4, pc}
+_0200EE14:
+ bl FUN_020106C0
+ add sp, #0x10
+ pop {r4, pc}
+ .balign 4
+_0200EE1C: .word 0x020ED318
+_0200EE20: .word 0x020ED358
+
+ thumb_func_start FUN_0200EE24
+FUN_0200EE24: ; 0x0200EE24
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r1, [r4, #0xc]
+ cmp r1, #0x0
+ bne _0200EE4C
+ ldr r1, _0200EE54 ; =0x020ECFD5
+ ldr r0, _0200EE58 ; =0x02105AF8
+ str r1, [r0, #0x0]
+ ldrh r0, [r4, #0x24]
+ bl FUN_0200E420
+ ldr r1, _0200EE5C ; =0x02105AF8
+ add r0, r4, #0x0
+ bl FUN_02010F2C
+ mov r0, #0x1
+ str r0, [r4, #0x28]
+ mov r0, #0x0
+ str r0, [r4, #0x2c]
+ pop {r4, pc}
+_0200EE4C:
+ bl FUN_02010F70
+ pop {r4, pc}
+ nop
+_0200EE54: .word 0x020ECFD5
+_0200EE58: .word 0x02105AF8
+_0200EE5C: .word 0x02105AF8
+
+ thumb_func_start FUN_0200EE60
+FUN_0200EE60: ; 0x0200EE60
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r1, [r4, #0xc]
+ cmp r1, #0x0
+ bne _0200EE86
+ ldr r1, _0200EE8C ; =0x020ECFCC
+ ldr r0, _0200EE90 ; =0x02105AF8
+ str r1, [r0, #0x8]
+ ldrh r0, [r4, #0x24]
+ bl FUN_0200E420
+ ldr r1, _0200EE94 ; =0x02105B00
+ add r0, r4, #0x0
+ bl FUN_02010F2C
+ mov r0, #0x0
+ str r0, [r4, #0x28]
+ str r0, [r4, #0x2c]
+ pop {r4, pc}
+_0200EE86:
+ bl FUN_02010F70
+ pop {r4, pc}
+ .balign 4
+_0200EE8C: .word 0x020ECFCC
+_0200EE90: .word 0x02105AF8
+_0200EE94: .word 0x02105B00
+
+ thumb_func_start FUN_0200EE98
+FUN_0200EE98: ; 0x0200EE98
+ push {r3-r4, lr}
+ sub sp, #0xc
+ add r4, r0, #0x0
+ ldr r1, [r4, #0xc]
+ cmp r1, #0x0
+ bne _0200EECA
+ ldr r3, _0200EED4 ; =0x020ECFF8
+ add r2, sp, #0x0
+ ldmia r3!, {r0-r1}
+ stmia r2!, {r0-r1}
+ ldr r0, [r3, #0x0]
+ str r0, [r2, #0x0]
+ ldrh r0, [r4, #0x24]
+ bl FUN_0200E420
+ add r0, r4, #0x0
+ add r1, sp, #0x0
+ bl FUN_02010948
+ mov r0, #0x1
+ str r0, [r4, #0x28]
+ mov r0, #0x0
+ add sp, #0xc
+ str r0, [r4, #0x2c]
+ pop {r3-r4, pc}
+_0200EECA:
+ bl FUN_02010988
+ add sp, #0xc
+ pop {r3-r4, pc}
+ nop
+_0200EED4: .word 0x020ECFF8
+
+ thumb_func_start FUN_0200EED8
+FUN_0200EED8: ; 0x0200EED8
+ push {r3-r4, lr}
+ sub sp, #0xc
+ add r4, r0, #0x0
+ ldr r1, [r4, #0xc]
+ cmp r1, #0x0
+ bne _0200EF08
+ ldr r3, _0200EF10 ; =0x020ED034
+ add r2, sp, #0x0
+ ldmia r3!, {r0-r1}
+ stmia r2!, {r0-r1}
+ ldr r0, [r3, #0x0]
+ str r0, [r2, #0x0]
+ ldrh r0, [r4, #0x24]
+ bl FUN_0200E420
+ add r0, r4, #0x0
+ add r1, sp, #0x0
+ bl FUN_02010948
+ mov r0, #0x0
+ str r0, [r4, #0x28]
+ add sp, #0xc
+ str r0, [r4, #0x2c]
+ pop {r3-r4, pc}
+_0200EF08:
+ bl FUN_02010988
+ add sp, #0xc
+ pop {r3-r4, pc}
+ .balign 4
+_0200EF10: .word 0x020ED034
+
+ thumb_func_start FUN_0200EF14
+FUN_0200EF14: ; 0x0200EF14
+ push {r3-r4, lr}
+ sub sp, #0xc
+ add r4, r0, #0x0
+ ldr r1, [r4, #0xc]
+ cmp r1, #0x0
+ bne _0200EF46
+ ldr r3, _0200EF50 ; =0x020ED01C
+ add r2, sp, #0x0
+ ldmia r3!, {r0-r1}
+ stmia r2!, {r0-r1}
+ ldr r0, [r3, #0x0]
+ str r0, [r2, #0x0]
+ ldrh r0, [r4, #0x24]
+ bl FUN_0200E420
+ add r0, r4, #0x0
+ add r1, sp, #0x0
+ bl FUN_02010C7C
+ mov r0, #0x1
+ str r0, [r4, #0x28]
+ mov r0, #0x0
+ add sp, #0xc
+ str r0, [r4, #0x2c]
+ pop {r3-r4, pc}
+_0200EF46:
+ bl FUN_02010CBC
+ add sp, #0xc
+ pop {r3-r4, pc}
+ nop
+_0200EF50: .word 0x020ED01C
+
+ thumb_func_start FUN_0200EF54
+FUN_0200EF54: ; 0x0200EF54
+ push {r3-r4, lr}
+ sub sp, #0xc
+ add r4, r0, #0x0
+ ldr r1, [r4, #0xc]
+ cmp r1, #0x0
+ bne _0200EF84
+ ldr r3, _0200EF8C ; =0x020ED028
+ add r2, sp, #0x0
+ ldmia r3!, {r0-r1}
+ stmia r2!, {r0-r1}
+ ldr r0, [r3, #0x0]
+ str r0, [r2, #0x0]
+ ldrh r0, [r4, #0x24]
+ bl FUN_0200E420
+ add r0, r4, #0x0
+ add r1, sp, #0x0
+ bl FUN_02010C7C
+ mov r0, #0x0
+ str r0, [r4, #0x28]
+ add sp, #0xc
+ str r0, [r4, #0x2c]
+ pop {r3-r4, pc}
+_0200EF84:
+ bl FUN_02010CBC
+ add sp, #0xc
+ pop {r3-r4, pc}
+ .balign 4
+_0200EF8C: .word 0x020ED028
+
+ thumb_func_start FUN_0200EF90
+FUN_0200EF90: ; 0x0200EF90
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r1, [r4, #0xc]
+ cmp r1, #0x0
+ bne _0200EFB2
+ ldrh r0, [r4, #0x24]
+ bl FUN_0200E420
+ ldr r1, _0200EFB8 ; =0x020ED080
+ add r0, r4, #0x0
+ bl FUN_0200FF18
+ mov r0, #0x1
+ str r0, [r4, #0x28]
+ mov r0, #0x0
+ str r0, [r4, #0x2c]
+ pop {r4, pc}
+_0200EFB2:
+ bl FUN_0200FF50
+ pop {r4, pc}
+ .balign 4
+_0200EFB8: .word 0x020ED080
+
+ thumb_func_start FUN_0200EFBC
+FUN_0200EFBC: ; 0x0200EFBC
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r1, [r4, #0xc]
+ cmp r1, #0x0
+ bne _0200EFDC
+ ldrh r0, [r4, #0x24]
+ bl FUN_0200E420
+ ldr r1, _0200EFE4 ; =0x020ED070
+ add r0, r4, #0x0
+ bl FUN_0200FF18
+ mov r0, #0x0
+ str r0, [r4, #0x28]
+ str r0, [r4, #0x2c]
+ pop {r4, pc}
+_0200EFDC:
+ bl FUN_0200FF50
+ pop {r4, pc}
+ nop
+_0200EFE4: .word 0x020ED070
+
+ thumb_func_start FUN_0200EFE8
+FUN_0200EFE8: ; 0x0200EFE8
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r1, [r4, #0xc]
+ cmp r1, #0x0
+ bne _0200F00A
+ ldrh r0, [r4, #0x24]
+ bl FUN_0200E420
+ ldr r1, _0200F010 ; =0x020ED130
+ add r0, r4, #0x0
+ bl FUN_0200FCC8
+ mov r0, #0x1
+ str r0, [r4, #0x28]
+ mov r0, #0x0
+ str r0, [r4, #0x2c]
+ pop {r4, pc}
+_0200F00A:
+ bl FUN_0200FD1C
+ pop {r4, pc}
+ .balign 4
+_0200F010: .word 0x020ED130
+
+ thumb_func_start FUN_0200F014
+FUN_0200F014: ; 0x0200F014
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r1, [r4, #0xc]
+ cmp r1, #0x0
+ bne _0200F034
+ ldrh r0, [r4, #0x24]
+ bl FUN_0200E420
+ ldr r1, _0200F03C ; =0x020ED19C
+ add r0, r4, #0x0
+ bl FUN_0200FCC8
+ mov r0, #0x0
+ str r0, [r4, #0x28]
+ str r0, [r4, #0x2c]
+ pop {r4, pc}
+_0200F034:
+ bl FUN_0200FD1C
+ pop {r4, pc}
+ nop
+_0200F03C: .word 0x020ED19C
+
+ thumb_func_start FUN_0200F040
+FUN_0200F040: ; 0x0200F040
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r1, [r4, #0xc]
+ cmp r1, #0x0
+ bne _0200F068
+ ldr r1, _0200F070 ; =0x020ECFAE
+ ldr r0, _0200F074 ; =0x02105AF8
+ str r1, [r0, #0x74]
+ ldrh r0, [r4, #0x24]
+ bl FUN_0200E420
+ ldr r1, _0200F078 ; =0x02105B48
+ add r0, r4, #0x0
+ bl FUN_020111AC
+ mov r0, #0x1
+ str r0, [r4, #0x28]
+ mov r0, #0x0
+ str r0, [r4, #0x2c]
+ pop {r4, pc}
+_0200F068:
+ bl FUN_02011214
+ pop {r4, pc}
+ nop
+_0200F070: .word 0x020ECFAE
+_0200F074: .word 0x02105AF8
+_0200F078: .word 0x02105B48
+
+ thumb_func_start FUN_0200F07C
+FUN_0200F07C: ; 0x0200F07C
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r1, [r4, #0xc]
+ cmp r1, #0x0
+ bne _0200F0A2
+ ldr r1, _0200F0A8 ; =0x020ECFBA
+ ldr r0, _0200F0AC ; =0x02105B78
+ str r1, [r0, #0x24]
+ ldrh r0, [r4, #0x24]
+ bl FUN_0200E420
+ ldr r1, _0200F0B0 ; =0x02105B78
+ add r0, r4, #0x0
+ bl FUN_020111AC
+ mov r0, #0x0
+ str r0, [r4, #0x28]
+ str r0, [r4, #0x2c]
+ pop {r4, pc}
+_0200F0A2:
+ bl FUN_02011214
+ pop {r4, pc}
+ .balign 4
+_0200F0A8: .word 0x020ECFBA
+_0200F0AC: .word 0x02105B78
+_0200F0B0: .word 0x02105B78
+
+ thumb_func_start FUN_0200F0B4
+FUN_0200F0B4: ; 0x0200F0B4
+ asr r0, r0, #0x4
+ lsl r1, r0, #0x1
+ lsl r0, r1, #0x1
+ ldr r2, _0200F0C8 ; =0x020FFA38
+ add r1, r1, #0x1
+ lsl r1, r1, #0x1
+ ldr r3, _0200F0CC ; =FX_Div
+ ldrsh r0, [r2, r0]
+ ldrsh r1, [r2, r1]
+ bx r3
+ .balign 4
+_0200F0C8: .word 0x020FFA38
+_0200F0CC: .word FX_Div
+
+ thumb_func_start FUN_0200F0D0
+FUN_0200F0D0: ; 0x0200F0D0
+ push {r4, lr}
+ add r4, r1, #0x0
+ bl FUN_0200F0B4
+ lsl r2, r4, #0xc
+ asr r1, r0, #0x1f
+ asr r3, r2, #0x1f
+ blx _ll_mul
+ mov r2, #0x2
+ mov r3, #0x0
+ lsl r2, r2, #0xa
+ add r2, r0, r2
+ adc r1, r3
+ lsl r0, r1, #0x14
+ lsr r1, r2, #0xc
+ orr r1, r0
+ asr r0, r1, #0xc
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0200F0F8
+FUN_0200F0F8: ; 0x0200F0F8
+ push {r3-r7, lr}
+ sub sp, #0x8
+ add r5, r1, #0x0
+ add r7, r2, #0x0
+ add r6, r3, #0x0
+ bl FUN_0200F0B4
+ cmp r6, r7
+ bge _0200F142
+ lsl r1, r6, #0x2
+ str r0, [sp, #0x0]
+ asr r0, r0, #0x1f
+ lsl r4, r6, #0xc
+ add r5, r5, r1
+ str r0, [sp, #0x4]
+_0200F116:
+ ldr r0, [sp, #0x0]
+ ldr r1, [sp, #0x4]
+ asr r3, r4, #0x1f
+ add r2, r4, #0x0
+ blx _ll_mul
+ mov r2, #0x2
+ lsl r2, r2, #0xa
+ add r0, r0, r2
+ ldr r2, _0200F148 ; =0x00000000
+ adc r1, r2
+ lsl r1, r1, #0x14
+ lsr r0, r0, #0xc
+ orr r0, r1
+ asr r0, r0, #0xc
+ stmia r5!, {r0}
+ mov r0, #0x1
+ lsl r0, r0, #0xc
+ add r6, r6, #0x1
+ add r4, r4, r0
+ cmp r6, r7
+ blt _0200F116
+_0200F142:
+ add sp, #0x8
+ pop {r3-r7, pc}
+ nop
+_0200F148: .word 0x00000000
+
+ thumb_func_start FUN_0200F14C
+FUN_0200F14C: ; 0x0200F14C
+ push {r4, lr}
+ add r4, r1, #0x0
+ bl FUN_0200F0B4
+ add r1, r0, #0x0
+ lsr r0, r4, #0x1f
+ add r0, r4, r0
+ asr r0, r0, #0x1
+ lsl r0, r0, #0xc
+ blx FX_Div
+ pop {r4, pc}
+
+ thumb_func_start FUN_0200F164
+FUN_0200F164: ; 0x0200F164
+ ldr r3, _0200F170 ; =_s32_div_f
+ sub r0, r1, r0
+ lsl r0, r0, #0x7
+ add r1, r2, #0x0
+ bx r3
+ nop
+_0200F170: .word _s32_div_f
+
+ thumb_func_start FUN_0200F174
+FUN_0200F174: ; 0x0200F174
+ add r0, r0, r1
+ bpl _0200F17A
+ mov r0, #0x0
+_0200F17A:
+ cmp r0, #0xff
+ ble _0200F180
+ mov r0, #0xff
+_0200F180:
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_0200F184
+FUN_0200F184: ; 0x0200F184
+ ldr r3, [r0, #0x0]
+ ldr r2, [r1, #0x0]
+ add r2, r3, r2
+ str r2, [r0, #0x0]
+ ldr r3, [r0, #0x4]
+ ldr r2, [r1, #0x4]
+ add r2, r3, r2
+ str r2, [r0, #0x4]
+ ldr r3, [r0, #0x8]
+ ldr r2, [r1, #0x8]
+ add r2, r3, r2
+ str r2, [r0, #0x8]
+ ldr r2, [r0, #0xc]
+ ldr r1, [r1, #0xc]
+ add r1, r2, r1
+ str r1, [r0, #0xc]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_0200F1A8
+FUN_0200F1A8: ; 0x0200F1A8
+ push {r3-r7, lr}
+ add r7, r1, #0x0
+ ldr r1, [sp, #0x1c]
+ add r5, r3, #0x0
+ str r1, [sp, #0x1c]
+ ldr r1, [r5, #0x0]
+ ldr r4, [sp, #0x18]
+ lsl r1, r1, #0x7
+ str r1, [r0, #0x0]
+ ldr r1, [r5, #0x4]
+ add r6, r2, #0x0
+ lsl r1, r1, #0x7
+ str r1, [r0, #0x4]
+ ldr r1, [r5, #0x8]
+ add r2, r4, #0x0
+ lsl r1, r1, #0x7
+ str r1, [r0, #0x8]
+ ldr r1, [r5, #0xc]
+ lsl r1, r1, #0x7
+ str r1, [r0, #0xc]
+ ldmia r2!, {r0-r1}
+ stmia r7!, {r0-r1}
+ ldmia r2!, {r0-r1}
+ stmia r7!, {r0-r1}
+ ldr r0, [r5, #0x0]
+ ldr r1, [r4, #0x0]
+ ldr r2, [sp, #0x1c]
+ bl FUN_0200F164
+ str r0, [r6, #0x0]
+ ldr r0, [r5, #0x4]
+ ldr r1, [r4, #0x4]
+ ldr r2, [sp, #0x1c]
+ bl FUN_0200F164
+ str r0, [r6, #0x4]
+ ldr r0, [r5, #0x8]
+ ldr r1, [r4, #0x8]
+ ldr r2, [sp, #0x1c]
+ bl FUN_0200F164
+ str r0, [r6, #0x8]
+ ldr r0, [r5, #0xc]
+ ldr r1, [r4, #0xc]
+ ldr r2, [sp, #0x1c]
+ bl FUN_0200F164
+ str r0, [r6, #0xc]
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_0200F20C
+FUN_0200F20C: ; 0x0200F20C
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ ldr r0, [r5, #0x20]
+ add r6, r1, #0x0
+ mov r1, #0x1c
+ bl FUN_02016998
+ str r0, [r5, #0x14]
+ mov r2, #0x1c
+ mov r1, #0x0
+_0200F220:
+ strb r1, [r0, #0x0]
+ add r0, r0, #0x1
+ sub r2, r2, #0x1
+ bne _0200F220
+ ldr r4, [r5, #0x14]
+ cmp r6, #0x0
+ ldrh r1, [r5, #0x24]
+ ldr r0, _0200F2A8 ; =0x00007FFF
+ bne _0200F254
+ cmp r1, r0
+ bne _0200F23C
+ mov r7, #0x10
+ mov r6, #0x0
+ b _0200F274
+_0200F23C:
+ cmp r1, #0x0
+ bne _0200F248
+ mov r7, #0xf
+ mvn r7, r7
+ mov r6, #0x0
+ b _0200F274
+_0200F248:
+ mov r7, #0xf
+ mvn r7, r7
+ mov r6, #0x0
+ bl ErrorHandling
+ b _0200F274
+_0200F254:
+ cmp r1, r0
+ bne _0200F25E
+ mov r7, #0x0
+ mov r6, #0x10
+ b _0200F274
+_0200F25E:
+ cmp r1, #0x0
+ bne _0200F26A
+ mov r7, #0x0
+ add r6, r7, #0x0
+ sub r6, #0x10
+ b _0200F274
+_0200F26A:
+ mov r7, #0x0
+ add r6, r7, #0x0
+ sub r6, #0x10
+ bl ErrorHandling
+_0200F274:
+ ldr r0, [r5, #0x10]
+ add r1, r7, #0x0
+ bl FUN_0200E440
+ ldr r0, [r5, #0x4]
+ add r1, r6, #0x0
+ str r0, [r4, #0x0]
+ ldr r0, [r5, #0x8]
+ str r0, [r4, #0x4]
+ mov r0, #0x0
+ str r0, [r4, #0x8]
+ lsl r0, r7, #0x7
+ str r0, [r4, #0xc]
+ lsl r0, r6, #0x7
+ str r0, [r4, #0x10]
+ ldr r2, [r5, #0x4]
+ add r0, r7, #0x0
+ bl FUN_0200F164
+ str r0, [r4, #0x14]
+ ldr r0, [r5, #0x10]
+ str r0, [r4, #0x18]
+ ldr r0, [r5, #0xc]
+ add r0, r0, #0x1
+ str r0, [r5, #0xc]
+ pop {r3-r7, pc}
+ .balign 4
+_0200F2A8: .word 0x00007FFF
+
+ thumb_func_start FUN_0200F2AC
+FUN_0200F2AC: ; 0x0200F2AC
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ ldr r1, [r5, #0xc]
+ mov r4, #0x0
+ ldr r0, [r5, #0x14]
+ cmp r1, #0x1
+ beq _0200F2C4
+ cmp r1, #0x2
+ beq _0200F2D4
+ cmp r1, #0x3
+ beq _0200F2E6
+ b _0200F2E8
+_0200F2C4:
+ bl FUN_0200F2EC
+ cmp r0, #0x1
+ bne _0200F2E8
+ ldr r0, [r5, #0xc]
+ add r0, r0, #0x1
+ str r0, [r5, #0xc]
+ b _0200F2E8
+_0200F2D4:
+ bl FUN_02016A18
+ add r0, r4, #0x0
+ str r0, [r5, #0x14]
+ ldr r0, [r5, #0xc]
+ mov r4, #0x1
+ add r0, r0, #0x1
+ str r0, [r5, #0xc]
+ b _0200F2E8
+_0200F2E6:
+ mov r4, #0x1
+_0200F2E8:
+ add r0, r4, #0x0
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_0200F2EC
+FUN_0200F2EC: ; 0x0200F2EC
+ push {r4, lr}
+ add r1, r0, #0x0
+ ldr r0, [r1, #0x8]
+ mov r4, #0x0
+ add r2, r0, #0x1
+ str r2, [r1, #0x8]
+ ldr r0, [r1, #0x4]
+ cmp r2, r0
+ blt _0200F32A
+ str r4, [r1, #0x8]
+ ldr r0, [r1, #0x0]
+ sub r0, r0, #0x1
+ cmp r0, #0x0
+ ble _0200F314
+ str r0, [r1, #0x0]
+ ldr r2, [r1, #0xc]
+ ldr r0, [r1, #0x14]
+ add r0, r2, r0
+ str r0, [r1, #0xc]
+ b _0200F31A
+_0200F314:
+ ldr r0, [r1, #0x10]
+ mov r4, #0x1
+ str r0, [r1, #0xc]
+_0200F31A:
+ ldr r2, [r1, #0xc]
+ ldr r0, [r1, #0x18]
+ asr r1, r2, #0x6
+ lsr r1, r1, #0x19
+ add r1, r2, r1
+ asr r1, r1, #0x7
+ bl FUN_0200E440
+_0200F32A:
+ add r0, r4, #0x0
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0200F330
+FUN_0200F330: ; 0x0200F330
+ push {r4-r6, lr}
+ add r4, r0, #0x0
+ bne _0200F33A
+ bl ErrorHandling
+_0200F33A:
+ ldr r0, _0200F54C ; =0x04000006
+ ldrh r0, [r0, #0x0]
+ cmp r0, #0xc0
+ bge _0200F3E0
+ add r5, r0, #0x1
+ cmp r5, #0xbf
+ ble _0200F34A
+ sub r5, #0xc0
+_0200F34A:
+ ldr r0, [r4, #0x4]
+ cmp r0, #0x1
+ bne _0200F3FA
+ add r0, r4, #0x0
+ mov r1, #0x0
+ bl FUN_0200F5D8
+ ldr r3, [r4, #0x8]
+ lsl r5, r5, #0x1
+ mov r4, #0x6
+ add r1, r0, r5
+ lsl r4, r4, #0x6
+ ldrsh r2, [r1, r4]
+ lsl r4, r4, #0x2
+ ldrsh r1, [r0, r5]
+ ldr r0, [r0, r4]
+ cmp r0, #0x0
+ ldr r0, _0200F550 ; =0x04000004
+ bne _0200F3B4
+ cmp r3, #0x0
+ bne _0200F394
+ ldrh r4, [r0, #0x0]
+ mov r3, #0x2
+ tst r3, r4
+ beq _0200F3E0
+ lsl r3, r1, #0x8
+ mov r1, #0xff
+ lsl r1, r1, #0x8
+ and r3, r1
+ lsl r1, r2, #0x18
+ lsr r1, r1, #0x18
+ orr r1, r3
+ strh r1, [r0, #0x3c]
+ mov r1, #0xc0
+ add r0, #0x40
+ strh r1, [r0, #0x0]
+ pop {r4-r6, pc}
+_0200F394:
+ ldrh r3, [r0, #0x0]
+ mov r0, #0x2
+ tst r0, r3
+ beq _0200F3E0
+ mov r0, #0xff
+ lsl r1, r1, #0x8
+ lsl r0, r0, #0x8
+ and r1, r0
+ lsl r0, r2, #0x18
+ lsr r0, r0, #0x18
+ orr r0, r1
+ ldr r1, _0200F554 ; =0x04001040
+ strh r0, [r1, #0x0]
+ mov r0, #0xc0
+ strh r0, [r1, #0x4]
+ pop {r4-r6, pc}
+_0200F3B4:
+ cmp r3, #0x0
+ bne _0200F3D8
+ ldrh r4, [r0, #0x0]
+ mov r3, #0x2
+ tst r3, r4
+ beq _0200F3E0
+ lsl r3, r1, #0x8
+ mov r1, #0xff
+ lsl r1, r1, #0x8
+ and r3, r1
+ lsl r1, r2, #0x18
+ lsr r1, r1, #0x18
+ orr r1, r3
+ strh r1, [r0, #0x3e]
+ mov r1, #0xc0
+ add r0, #0x42
+ strh r1, [r0, #0x0]
+ pop {r4-r6, pc}
+_0200F3D8:
+ ldrh r3, [r0, #0x0]
+ mov r0, #0x2
+ tst r0, r3
+ bne _0200F3E2
+_0200F3E0:
+ b _0200F548
+_0200F3E2:
+ mov r0, #0xff
+ lsl r1, r1, #0x8
+ lsl r0, r0, #0x8
+ and r1, r0
+ lsl r0, r2, #0x18
+ lsr r0, r0, #0x18
+ orr r0, r1
+ ldr r1, _0200F558 ; =0x04001042
+ strh r0, [r1, #0x0]
+ mov r0, #0xc0
+ strh r0, [r1, #0x4]
+ pop {r4-r6, pc}
+_0200F3FA:
+ add r0, r4, #0x0
+ mov r1, #0x0
+ bl FUN_0200F5D8
+ add r3, r0, #0x0
+ lsl r5, r5, #0x1
+ mov r6, #0x6
+ add r1, r3, r5
+ lsl r6, r6, #0x6
+ ldrsh r2, [r1, r6]
+ lsl r6, r6, #0x2
+ ldrsh r1, [r3, r5]
+ ldr r3, [r3, r6]
+ ldr r0, [r4, #0x8]
+ cmp r3, #0x0
+ bne _0200F460
+ cmp r0, #0x0
+ ldr r0, _0200F550 ; =0x04000004
+ bne _0200F440
+ ldrh r6, [r0, #0x0]
+ mov r3, #0x2
+ tst r3, r6
+ beq _0200F4A4
+ lsl r3, r1, #0x8
+ mov r1, #0xff
+ lsl r1, r1, #0x8
+ and r3, r1
+ lsl r1, r2, #0x18
+ lsr r1, r1, #0x18
+ orr r1, r3
+ strh r1, [r0, #0x3c]
+ mov r1, #0xc0
+ add r0, #0x40
+ strh r1, [r0, #0x0]
+ b _0200F4A4
+_0200F440:
+ ldrh r3, [r0, #0x0]
+ mov r0, #0x2
+ tst r0, r3
+ beq _0200F4A4
+ mov r0, #0xff
+ lsl r1, r1, #0x8
+ lsl r0, r0, #0x8
+ and r1, r0
+ lsl r0, r2, #0x18
+ lsr r0, r0, #0x18
+ orr r0, r1
+ ldr r1, _0200F554 ; =0x04001040
+ strh r0, [r1, #0x0]
+ mov r0, #0xc0
+ strh r0, [r1, #0x4]
+ b _0200F4A4
+_0200F460:
+ cmp r0, #0x0
+ ldr r0, _0200F550 ; =0x04000004
+ bne _0200F486
+ ldrh r6, [r0, #0x0]
+ mov r3, #0x2
+ tst r3, r6
+ beq _0200F4A4
+ lsl r3, r1, #0x8
+ mov r1, #0xff
+ lsl r1, r1, #0x8
+ and r3, r1
+ lsl r1, r2, #0x18
+ lsr r1, r1, #0x18
+ orr r1, r3
+ strh r1, [r0, #0x3e]
+ mov r1, #0xc0
+ add r0, #0x42
+ strh r1, [r0, #0x0]
+ b _0200F4A4
+_0200F486:
+ ldrh r3, [r0, #0x0]
+ mov r0, #0x2
+ tst r0, r3
+ beq _0200F4A4
+ mov r0, #0xff
+ lsl r1, r1, #0x8
+ lsl r0, r0, #0x8
+ and r1, r0
+ lsl r0, r2, #0x18
+ lsr r0, r0, #0x18
+ orr r0, r1
+ ldr r1, _0200F558 ; =0x04001042
+ strh r0, [r1, #0x0]
+ mov r0, #0xc0
+ strh r0, [r1, #0x4]
+_0200F4A4:
+ add r0, r4, #0x0
+ mov r1, #0x1
+ bl FUN_0200F5D8
+ ldr r3, [r4, #0x8]
+ mov r4, #0x6
+ add r1, r0, r5
+ lsl r4, r4, #0x6
+ ldrsh r2, [r1, r4]
+ lsl r4, r4, #0x2
+ ldrsh r1, [r0, r5]
+ ldr r0, [r0, r4]
+ cmp r0, #0x0
+ ldr r0, _0200F550 ; =0x04000004
+ bne _0200F506
+ cmp r3, #0x0
+ bne _0200F4E6
+ ldrh r4, [r0, #0x0]
+ mov r3, #0x2
+ tst r3, r4
+ beq _0200F548
+ lsl r3, r1, #0x8
+ mov r1, #0xff
+ lsl r1, r1, #0x8
+ and r3, r1
+ lsl r1, r2, #0x18
+ lsr r1, r1, #0x18
+ orr r1, r3
+ strh r1, [r0, #0x3c]
+ mov r1, #0xc0
+ add r0, #0x40
+ strh r1, [r0, #0x0]
+ pop {r4-r6, pc}
+_0200F4E6:
+ ldrh r3, [r0, #0x0]
+ mov r0, #0x2
+ tst r0, r3
+ beq _0200F548
+ mov r0, #0xff
+ lsl r1, r1, #0x8
+ lsl r0, r0, #0x8
+ and r1, r0
+ lsl r0, r2, #0x18
+ lsr r0, r0, #0x18
+ orr r0, r1
+ ldr r1, _0200F554 ; =0x04001040
+ strh r0, [r1, #0x0]
+ mov r0, #0xc0
+ strh r0, [r1, #0x4]
+ pop {r4-r6, pc}
+_0200F506:
+ cmp r3, #0x0
+ bne _0200F52A
+ ldrh r4, [r0, #0x0]
+ mov r3, #0x2
+ tst r3, r4
+ beq _0200F548
+ lsl r3, r1, #0x8
+ mov r1, #0xff
+ lsl r1, r1, #0x8
+ and r3, r1
+ lsl r1, r2, #0x18
+ lsr r1, r1, #0x18
+ orr r1, r3
+ strh r1, [r0, #0x3e]
+ mov r1, #0xc0
+ add r0, #0x42
+ strh r1, [r0, #0x0]
+ pop {r4-r6, pc}
+_0200F52A:
+ ldrh r3, [r0, #0x0]
+ mov r0, #0x2
+ tst r0, r3
+ beq _0200F548
+ mov r0, #0xff
+ lsl r1, r1, #0x8
+ lsl r0, r0, #0x8
+ and r1, r0
+ lsl r0, r2, #0x18
+ lsr r0, r0, #0x18
+ orr r0, r1
+ ldr r1, _0200F558 ; =0x04001042
+ strh r0, [r1, #0x0]
+ mov r0, #0xc0
+ strh r0, [r1, #0x4]
+_0200F548:
+ pop {r4-r6, pc}
+ nop
+_0200F54C: .word 0x04000006
+_0200F550: .word 0x04000004
+_0200F554: .word 0x04001040
+_0200F558: .word 0x04001042
+
+ thumb_func_start FUN_0200F55C
+FUN_0200F55C: ; 0x0200F55C
+ push {r4-r6, lr}
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ add r6, r2, #0x0
+ cmp r4, #0x0
+ beq _0200F572
+ cmp r4, #0x1
+ beq _0200F572
+ cmp r4, #0x2
+ beq _0200F58C
+ pop {r4-r6, pc}
+_0200F572:
+ ldr r1, _0200F5B8 ; =0x00000604
+ add r0, r3, #0x0
+ bl FUN_02016998
+ str r0, [r5, #0x0]
+ mov r0, #0x1
+ str r0, [r5, #0x4]
+ str r6, [r5, #0x8]
+ mov r0, #0x6
+ ldr r1, [r5, #0x0]
+ lsl r0, r0, #0x8
+ str r4, [r1, r0]
+ pop {r4-r6, pc}
+_0200F58C:
+ ldr r1, _0200F5BC ; =0x00000C08
+ add r0, r3, #0x0
+ bl FUN_02016998
+ str r0, [r5, #0x0]
+ mov r0, #0x2
+ str r0, [r5, #0x4]
+ mov r0, #0x6
+ mov r3, #0x0
+ lsl r0, r0, #0x8
+ str r6, [r5, #0x8]
+ add r4, r3, #0x0
+ add r1, r0, #0x4
+_0200F5A6:
+ ldr r2, [r5, #0x0]
+ add r2, r2, r4
+ str r3, [r2, r0]
+ add r3, r3, #0x1
+ add r4, r4, r1
+ cmp r3, #0x2
+ blt _0200F5A6
+ pop {r4-r6, pc}
+ nop
+_0200F5B8: .word 0x00000604
+_0200F5BC: .word 0x00000C08
+
+ thumb_func_start FUN_0200F5C0
+FUN_0200F5C0: ; 0x0200F5C0
+ ldr r3, _0200F5C4 ; =FUN_0200F5C8
+ bx r3
+ .balign 4
+_0200F5C4: .word FUN_0200F5C8
+
+ thumb_func_start FUN_0200F5C8
+FUN_0200F5C8: ; 0x0200F5C8
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r0, [r4, #0x0]
+ bl FUN_02016A18
+ mov r0, #0x0
+ str r0, [r4, #0x0]
+ pop {r4, pc}
+
+ thumb_func_start FUN_0200F5D8
+FUN_0200F5D8: ; 0x0200F5D8
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ ldr r0, [r5, #0x4]
+ add r4, r1, #0x0
+ cmp r0, r4
+ bgt _0200F5E8
+ bl ErrorHandling
+_0200F5E8:
+ ldr r0, _0200F5F4 ; =0x00000604
+ ldr r1, [r5, #0x0]
+ mul r0, r4
+ add r0, r1, r0
+ pop {r3-r5, pc}
+ nop
+_0200F5F4: .word 0x00000604
+
+ thumb_func_start FUN_0200F5F8
+FUN_0200F5F8: ; 0x0200F5F8
+ push {r3-r7, lr}
+ add r5, r1, #0x0
+ str r0, [sp, #0x0]
+ ldr r0, [r5, #0x4]
+ mov r4, #0x0
+ cmp r0, #0x0
+ ble _0200F624
+ mov r7, #0x3
+ lsl r7, r7, #0x8
+ add r6, r7, #0x0
+_0200F60C:
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_0200F5D8
+ add r1, r0, r6
+ add r2, r7, #0x0
+ blx memcpy
+ ldr r0, [r5, #0x4]
+ add r4, r4, #0x1
+ cmp r4, r0
+ blt _0200F60C
+_0200F624:
+ ldr r0, [sp, #0x0]
+ bl FUN_0200CAB4
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_0200F62C
+FUN_0200F62C: ; 0x0200F62C
+ push {r4-r5, lr}
+ sub sp, #0xc
+ add r5, r1, #0x0
+ add r4, r2, #0x0
+ cmp r0, #0x0
+ bne _0200F644
+ add r0, r5, #0x0
+ mov r1, #0x0
+ bl FUN_02011634
+ add sp, #0xc
+ pop {r4-r5, pc}
+_0200F644:
+ add r0, r5, #0x0
+ mov r1, #0x1
+ bl FUN_02011634
+ mov r2, #0x0
+ add r0, r5, #0x0
+ mov r1, #0x3f
+ add r3, r2, #0x0
+ str r4, [sp, #0x0]
+ bl FUN_02011650
+ mov r1, #0x0
+ str r1, [sp, #0x0]
+ str r1, [sp, #0x4]
+ add r0, r5, #0x0
+ add r2, r1, #0x0
+ add r3, r1, #0x0
+ str r4, [sp, #0x8]
+ bl FUN_02011698
+ add r0, r5, #0x0
+ mov r1, #0x20
+ mov r2, #0x0
+ add r3, r4, #0x0
+ bl FUN_02011678
+ add sp, #0xc
+ pop {r4-r5, pc}
+
+ thumb_func_start FUN_0200F67C
+FUN_0200F67C: ; 0x0200F67C
+ push {r4-r7, lr}
+ sub sp, #0xc
+ add r7, r2, #0x0
+ ldr r2, [sp, #0x34]
+ add r6, r0, #0x0
+ add r5, r3, #0x0
+ ldr r4, [sp, #0x20]
+ cmp r2, #0x0
+ bne _0200F6B8
+ add r0, r1, #0x0
+ mov r1, #0x0
+ add r2, r5, #0x0
+ add r3, r4, #0x0
+ bl FUN_020114AC
+ add r0, r7, #0x0
+ mov r1, #0x0
+ add r2, r4, #0x0
+ bl FUN_02011534
+ str r5, [sp, #0x0]
+ ldr r0, [sp, #0x24]
+ ldr r1, [sp, #0x28]
+ ldr r2, [sp, #0x2c]
+ ldr r3, [sp, #0x30]
+ str r4, [sp, #0x4]
+ bl FUN_02011574
+ add sp, #0xc
+ pop {r4-r7, pc}
+_0200F6B8:
+ mov r2, #0x0
+ str r4, [sp, #0x0]
+ bl FUN_02011650
+ add r0, r6, #0x0
+ add r1, r7, #0x0
+ mov r2, #0x0
+ add r3, r4, #0x0
+ bl FUN_02011678
+ ldr r0, [sp, #0x30]
+ ldr r1, [sp, #0x24]
+ str r0, [sp, #0x0]
+ str r5, [sp, #0x4]
+ ldr r2, [sp, #0x28]
+ ldr r3, [sp, #0x2c]
+ add r0, r6, #0x0
+ str r4, [sp, #0x8]
+ bl FUN_02011698
+ add sp, #0xc
+ pop {r4-r7, pc}
+
+ thumb_func_start FUN_0200F6E4
+FUN_0200F6E4: ; 0x0200F6E4
+ push {r3, lr}
+ cmp r3, #0x0
+ bne _0200F6F4
+ add r0, r1, #0x0
+ add r1, r2, #0x0
+ bl FUN_02011480
+ pop {r3, pc}
+_0200F6F4:
+ bl FUN_02011634
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_0200F6FC
+FUN_0200F6FC: ; 0x0200F6FC
+ push {r3-r7, lr}
+ add r4, r2, #0x0
+ mov r2, #0xc3
+ add r6, r1, #0x0
+ mov r1, #0x0
+ lsl r2, r2, #0x2
+ add r5, r0, #0x0
+ add r7, r3, #0x0
+ blx Call_FillMemWithValue
+ cmp r4, #0x1
+ bne _0200F726
+ mov r0, #0x6
+ lsl r0, r0, #0x6
+ str r7, [r5, r0]
+ mov r0, #0xc2
+ lsl r0, r0, #0x2
+ strb r4, [r5, r0]
+ add r0, r0, #0x1
+ strb r6, [r5, r0]
+ pop {r3-r7, pc}
+_0200F726:
+ mov r0, #0x6
+ lsl r0, r0, #0x6
+ str r7, [r5, r0]
+ mov r0, #0xc1
+ ldr r1, [sp, #0x18]
+ lsl r0, r0, #0x2
+ str r1, [r5, r0]
+ add r1, r0, #0x4
+ strb r4, [r5, r1]
+ add r0, r0, #0x5
+ strb r6, [r5, r0]
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_0200F740
+FUN_0200F740: ; 0x0200F740
+ ldr r3, _0200F74C ; =FUN_0200CA98
+ add r1, r0, #0x0
+ ldr r0, _0200F750 ; =FUN_0200F780
+ ldr r2, _0200F754 ; =0x000003FF
+ bx r3
+ nop
+_0200F74C: .word FUN_0200CA98
+_0200F750: .word FUN_0200F780
+_0200F754: .word 0x000003FF
+
+ thumb_func_start FUN_0200F758
+FUN_0200F758: ; 0x0200F758
+ push {r3, lr}
+ ldr r3, _0200F768 ; =0x00000309
+ str r2, [sp, #0x0]
+ ldrb r3, [r1, r3]
+ ldr r2, _0200F76C ; =FUN_0200F7AC
+ bl FUN_0200E6CC
+ pop {r3, pc}
+ .balign 4
+_0200F768: .word 0x00000309
+_0200F76C: .word FUN_0200F7AC
+
+ thumb_func_start FUN_0200F770
+FUN_0200F770: ; 0x0200F770
+ ldr r3, _0200F778 ; =0x00000309
+ ldrb r1, [r1, r3]
+ ldr r3, _0200F77C ; =FUN_0200E6F8
+ bx r3
+ .balign 4
+_0200F778: .word 0x00000309
+_0200F77C: .word FUN_0200E6F8
+
+ thumb_func_start FUN_0200F780
+FUN_0200F780: ; 0x0200F780
+ push {r3-r7, lr}
+ mov r7, #0xc0
+ add r6, r7, #0x0
+ str r0, [sp, #0x0]
+ add r5, r1, #0x0
+ mov r4, #0x0
+ add r6, #0xc4
+_0200F78E:
+ add r0, r5, #0x0
+ add r0, #0xc0
+ add r1, r5, #0x0
+ add r2, r7, #0x0
+ blx memcpy
+ add r4, r4, #0x1
+ add r5, r5, r6
+ cmp r4, #0x2
+ blt _0200F78E
+ ldr r0, [sp, #0x0]
+ bl FUN_0200CAB4
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_0200F7AC
+FUN_0200F7AC: ; 0x0200F7AC
+ push {r3-r5, lr}
+ add r4, r0, #0x0
+ bne _0200F7B6
+ bl ErrorHandling
+_0200F7B6:
+ ldr r0, _0200FAC0 ; =0x04000006
+ ldrh r0, [r0, #0x0]
+ cmp r0, #0xc0
+ bge _0200F838
+ add r0, r0, #0x1
+ cmp r0, #0xbf
+ ble _0200F7C6
+ sub r0, #0xc0
+_0200F7C6:
+ mov r2, #0xc2
+ lsl r2, r2, #0x2
+ ldrb r1, [r4, r2]
+ cmp r1, #0x1
+ beq _0200F7D2
+ b _0200F96C
+_0200F7D2:
+ add r0, r4, r0
+ add r0, #0xc0
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x0
+ bne _0200F8A2
+ add r0, r2, #0x1
+ ldrb r0, [r4, r0]
+ cmp r0, #0x0
+ ldr r0, _0200FAC4 ; =0x04000004
+ bne _0200F802
+ ldrh r2, [r0, #0x0]
+ mov r1, #0x2
+ tst r1, r2
+ beq _0200F81C
+ add r0, #0x46
+ ldrh r2, [r0, #0x0]
+ mov r1, #0x3f
+ bic r2, r1
+ mov r1, #0x3f
+ orr r2, r1
+ mov r1, #0x20
+ orr r1, r2
+ strh r1, [r0, #0x0]
+ b _0200F81C
+_0200F802:
+ ldrh r1, [r0, #0x0]
+ mov r0, #0x2
+ tst r0, r1
+ beq _0200F81C
+ ldr r1, _0200FAC8 ; =0x0400104A
+ mov r0, #0x3f
+ ldrh r2, [r1, #0x0]
+ bic r2, r0
+ mov r0, #0x3f
+ orr r2, r0
+ mov r0, #0x20
+ orr r0, r2
+ strh r0, [r1, #0x0]
+_0200F81C:
+ ldr r0, _0200FACC ; =0x00000309
+ ldrb r1, [r4, r0]
+ mov r0, #0x6
+ lsl r0, r0, #0x6
+ ldr r0, [r4, r0]
+ cmp r0, #0x0
+ bne _0200F868
+ cmp r1, #0x0
+ bne _0200F84C
+ ldr r2, _0200FAC4 ; =0x04000004
+ mov r0, #0x2
+ ldrh r1, [r2, #0x0]
+ tst r0, r1
+ bne _0200F83A
+_0200F838:
+ b _0200FCB0
+_0200F83A:
+ add r2, #0x44
+ ldrh r1, [r2, #0x0]
+ mov r0, #0x3f
+ bic r1, r0
+ mov r0, #0x20
+ orr r1, r0
+ orr r0, r1
+ strh r0, [r2, #0x0]
+ pop {r3-r5, pc}
+_0200F84C:
+ ldr r0, _0200FAC4 ; =0x04000004
+ ldrh r1, [r0, #0x0]
+ mov r0, #0x2
+ tst r0, r1
+ beq _0200F954
+ ldr r1, _0200FAD0 ; =0x04001048
+ mov r0, #0x3f
+ ldrh r2, [r1, #0x0]
+ bic r2, r0
+ mov r0, #0x20
+ orr r2, r0
+ orr r0, r2
+ strh r0, [r1, #0x0]
+ pop {r3-r5, pc}
+_0200F868:
+ cmp r1, #0x0
+ ldr r0, _0200FAC4 ; =0x04000004
+ bne _0200F888
+ ldrh r1, [r0, #0x0]
+ mov r2, #0x2
+ tst r1, r2
+ beq _0200F954
+ add r0, #0x44
+ ldrh r3, [r0, #0x0]
+ ldr r1, _0200FAD4 ; =0xFFFFC0FF
+ and r3, r1
+ lsl r1, r2, #0xc
+ orr r3, r1
+ orr r1, r3
+ strh r1, [r0, #0x0]
+ pop {r3-r5, pc}
+_0200F888:
+ ldrh r1, [r0, #0x0]
+ mov r0, #0x2
+ tst r0, r1
+ beq _0200F954
+ ldr r2, _0200FAD0 ; =0x04001048
+ ldr r0, _0200FAD4 ; =0xFFFFC0FF
+ ldrh r1, [r2, #0x0]
+ and r1, r0
+ lsr r0, r2, #0xd
+ orr r1, r0
+ orr r0, r1
+ strh r0, [r2, #0x0]
+ pop {r3-r5, pc}
+_0200F8A2:
+ add r0, r2, #0x1
+ ldrb r0, [r4, r0]
+ cmp r0, #0x0
+ ldr r0, _0200FAC4 ; =0x04000004
+ bne _0200F8C6
+ ldrh r2, [r0, #0x0]
+ mov r1, #0x2
+ tst r1, r2
+ beq _0200F8DE
+ add r0, #0x46
+ ldrh r2, [r0, #0x0]
+ mov r1, #0x3f
+ bic r2, r1
+ mov r1, #0x20
+ orr r2, r1
+ orr r1, r2
+ strh r1, [r0, #0x0]
+ b _0200F8DE
+_0200F8C6:
+ ldrh r1, [r0, #0x0]
+ mov r0, #0x2
+ tst r0, r1
+ beq _0200F8DE
+ ldr r1, _0200FAC8 ; =0x0400104A
+ mov r0, #0x3f
+ ldrh r2, [r1, #0x0]
+ bic r2, r0
+ mov r0, #0x20
+ orr r2, r0
+ orr r0, r2
+ strh r0, [r1, #0x0]
+_0200F8DE:
+ ldr r0, _0200FACC ; =0x00000309
+ ldrb r1, [r4, r0]
+ mov r0, #0x6
+ lsl r0, r0, #0x6
+ ldr r0, [r4, r0]
+ cmp r0, #0x0
+ ldr r0, _0200FAC4 ; =0x04000004
+ bne _0200F92A
+ cmp r1, #0x0
+ bne _0200F90E
+ ldrh r2, [r0, #0x0]
+ mov r1, #0x2
+ tst r1, r2
+ beq _0200F954
+ add r0, #0x44
+ ldrh r2, [r0, #0x0]
+ mov r1, #0x3f
+ bic r2, r1
+ mov r1, #0x3f
+ orr r2, r1
+ mov r1, #0x20
+ orr r1, r2
+ strh r1, [r0, #0x0]
+ pop {r3-r5, pc}
+_0200F90E:
+ ldrh r1, [r0, #0x0]
+ mov r0, #0x2
+ tst r0, r1
+ beq _0200F954
+ ldr r1, _0200FAD0 ; =0x04001048
+ mov r0, #0x3f
+ ldrh r2, [r1, #0x0]
+ bic r2, r0
+ mov r0, #0x3f
+ orr r2, r0
+ mov r0, #0x20
+ orr r0, r2
+ strh r0, [r1, #0x0]
+ pop {r3-r5, pc}
+_0200F92A:
+ cmp r1, #0x0
+ bne _0200F94C
+ ldrh r1, [r0, #0x0]
+ mov r2, #0x2
+ tst r1, r2
+ beq _0200F954
+ add r0, #0x44
+ ldrh r3, [r0, #0x0]
+ ldr r1, _0200FAD4 ; =0xFFFFC0FF
+ and r3, r1
+ mov r1, #0x3f
+ lsl r1, r1, #0x8
+ orr r3, r1
+ lsl r1, r2, #0xc
+ orr r1, r3
+ strh r1, [r0, #0x0]
+ pop {r3-r5, pc}
+_0200F94C:
+ ldrh r1, [r0, #0x0]
+ mov r0, #0x2
+ tst r0, r1
+ bne _0200F956
+_0200F954:
+ b _0200FCB0
+_0200F956:
+ ldr r2, _0200FAD0 ; =0x04001048
+ ldr r0, _0200FAD4 ; =0xFFFFC0FF
+ ldrh r1, [r2, #0x0]
+ and r1, r0
+ mov r0, #0x3f
+ lsl r0, r0, #0x8
+ orr r1, r0
+ lsr r0, r2, #0xd
+ orr r0, r1
+ strh r0, [r2, #0x0]
+ pop {r3-r5, pc}
+_0200F96C:
+ add r1, r4, r0
+ add r1, #0xc0
+ ldrb r1, [r1, #0x0]
+ cmp r1, #0x0
+ bne _0200FA38
+ add r1, r2, #0x1
+ ldrb r1, [r4, r1]
+ cmp r1, #0x0
+ ldr r1, _0200FAC4 ; =0x04000004
+ bne _0200F99C
+ ldrh r3, [r1, #0x0]
+ mov r2, #0x2
+ tst r2, r3
+ beq _0200F9B6
+ add r1, #0x46
+ ldrh r3, [r1, #0x0]
+ mov r2, #0x3f
+ bic r3, r2
+ mov r2, #0x3f
+ orr r3, r2
+ mov r2, #0x20
+ orr r2, r3
+ strh r2, [r1, #0x0]
+ b _0200F9B6
+_0200F99C:
+ ldrh r2, [r1, #0x0]
+ mov r1, #0x2
+ tst r1, r2
+ beq _0200F9B6
+ ldr r2, _0200FAC8 ; =0x0400104A
+ mov r1, #0x3f
+ ldrh r3, [r2, #0x0]
+ bic r3, r1
+ mov r1, #0x3f
+ orr r3, r1
+ mov r1, #0x20
+ orr r1, r3
+ strh r1, [r2, #0x0]
+_0200F9B6:
+ ldr r1, _0200FACC ; =0x00000309
+ ldrb r2, [r4, r1]
+ mov r1, #0x6
+ lsl r1, r1, #0x6
+ ldr r1, [r4, r1]
+ cmp r1, #0x0
+ ldr r1, _0200FAC4 ; =0x04000004
+ bne _0200F9FE
+ cmp r2, #0x0
+ bne _0200F9E4
+ ldrh r3, [r1, #0x0]
+ mov r2, #0x2
+ tst r2, r3
+ beq _0200FA0A
+ add r1, #0x44
+ ldrh r3, [r1, #0x0]
+ mov r2, #0x3f
+ bic r3, r2
+ mov r2, #0x20
+ orr r3, r2
+ orr r2, r3
+ strh r2, [r1, #0x0]
+ b _0200FB16
+_0200F9E4:
+ ldrh r2, [r1, #0x0]
+ mov r1, #0x2
+ tst r1, r2
+ beq _0200FA0A
+ ldr r2, _0200FAD0 ; =0x04001048
+ mov r1, #0x3f
+ ldrh r3, [r2, #0x0]
+ bic r3, r1
+ mov r1, #0x20
+ orr r3, r1
+ orr r1, r3
+ strh r1, [r2, #0x0]
+ b _0200FB16
+_0200F9FE:
+ cmp r2, #0x0
+ bne _0200FA1E
+ ldrh r2, [r1, #0x0]
+ mov r3, #0x2
+ tst r2, r3
+ bne _0200FA0C
+_0200FA0A:
+ b _0200FB16
+_0200FA0C:
+ add r1, #0x44
+ ldrh r5, [r1, #0x0]
+ ldr r2, _0200FAD4 ; =0xFFFFC0FF
+ and r5, r2
+ lsl r2, r3, #0xc
+ orr r5, r2
+ orr r2, r5
+ strh r2, [r1, #0x0]
+ b _0200FB16
+_0200FA1E:
+ ldrh r2, [r1, #0x0]
+ mov r1, #0x2
+ tst r1, r2
+ beq _0200FB16
+ ldr r3, _0200FAD0 ; =0x04001048
+ ldr r1, _0200FAD4 ; =0xFFFFC0FF
+ ldrh r2, [r3, #0x0]
+ and r2, r1
+ lsr r1, r3, #0xd
+ orr r2, r1
+ orr r1, r2
+ strh r1, [r3, #0x0]
+ b _0200FB16
+_0200FA38:
+ add r1, r2, #0x1
+ ldrb r1, [r4, r1]
+ cmp r1, #0x0
+ ldr r1, _0200FAC4 ; =0x04000004
+ bne _0200FA5C
+ ldrh r3, [r1, #0x0]
+ mov r2, #0x2
+ tst r2, r3
+ beq _0200FA74
+ add r1, #0x46
+ ldrh r3, [r1, #0x0]
+ mov r2, #0x3f
+ bic r3, r2
+ mov r2, #0x20
+ orr r3, r2
+ orr r2, r3
+ strh r2, [r1, #0x0]
+ b _0200FA74
+_0200FA5C:
+ ldrh r2, [r1, #0x0]
+ mov r1, #0x2
+ tst r1, r2
+ beq _0200FA74
+ ldr r2, _0200FAC8 ; =0x0400104A
+ mov r1, #0x3f
+ ldrh r3, [r2, #0x0]
+ bic r3, r1
+ mov r1, #0x20
+ orr r3, r1
+ orr r1, r3
+ strh r1, [r2, #0x0]
+_0200FA74:
+ ldr r1, _0200FACC ; =0x00000309
+ ldrb r2, [r4, r1]
+ mov r1, #0x6
+ lsl r1, r1, #0x6
+ ldr r1, [r4, r1]
+ cmp r1, #0x0
+ ldr r1, _0200FAC4 ; =0x04000004
+ bne _0200FAD8
+ cmp r2, #0x0
+ bne _0200FAA4
+ ldrh r3, [r1, #0x0]
+ mov r2, #0x2
+ tst r2, r3
+ beq _0200FB16
+ add r1, #0x44
+ ldrh r3, [r1, #0x0]
+ mov r2, #0x3f
+ bic r3, r2
+ mov r2, #0x3f
+ orr r3, r2
+ mov r2, #0x20
+ orr r2, r3
+ strh r2, [r1, #0x0]
+ b _0200FB16
+_0200FAA4:
+ ldrh r2, [r1, #0x0]
+ mov r1, #0x2
+ tst r1, r2
+ beq _0200FB16
+ ldr r2, _0200FAD0 ; =0x04001048
+ mov r1, #0x3f
+ ldrh r3, [r2, #0x0]
+ bic r3, r1
+ mov r1, #0x3f
+ orr r3, r1
+ mov r1, #0x20
+ orr r1, r3
+ strh r1, [r2, #0x0]
+ b _0200FB16
+ .balign 4
+_0200FAC0: .word 0x04000006
+_0200FAC4: .word 0x04000004
+_0200FAC8: .word 0x0400104A
+_0200FACC: .word 0x00000309
+_0200FAD0: .word 0x04001048
+_0200FAD4: .word 0xFFFFC0FF
+_0200FAD8:
+ cmp r2, #0x0
+ bne _0200FAFA
+ ldrh r2, [r1, #0x0]
+ mov r3, #0x2
+ tst r2, r3
+ beq _0200FB16
+ add r1, #0x44
+ ldrh r5, [r1, #0x0]
+ ldr r2, _0200FCB4 ; =0xFFFFC0FF
+ and r5, r2
+ mov r2, #0x3f
+ lsl r2, r2, #0x8
+ orr r5, r2
+ lsl r2, r3, #0xc
+ orr r2, r5
+ strh r2, [r1, #0x0]
+ b _0200FB16
+_0200FAFA:
+ ldrh r2, [r1, #0x0]
+ mov r1, #0x2
+ tst r1, r2
+ beq _0200FB16
+ ldr r3, _0200FCB8 ; =0x04001048
+ ldr r1, _0200FCB4 ; =0xFFFFC0FF
+ ldrh r2, [r3, #0x0]
+ and r2, r1
+ mov r1, #0x3f
+ lsl r1, r1, #0x8
+ orr r2, r1
+ lsr r1, r3, #0xd
+ orr r1, r2
+ strh r1, [r3, #0x0]
+_0200FB16:
+ mov r1, #0x61
+ lsl r1, r1, #0x2
+ add r1, r4, r1
+ add r0, r1, r0
+ add r0, #0xc0
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x0
+ ldr r0, _0200FCBC ; =0x00000309
+ bne _0200FBEC
+ ldrb r0, [r4, r0]
+ cmp r0, #0x0
+ ldr r0, _0200FCC0 ; =0x04000004
+ bne _0200FB4C
+ ldrh r3, [r0, #0x0]
+ mov r2, #0x2
+ tst r2, r3
+ beq _0200FB66
+ add r0, #0x46
+ ldrh r3, [r0, #0x0]
+ mov r2, #0x3f
+ bic r3, r2
+ mov r2, #0x3f
+ orr r3, r2
+ mov r2, #0x20
+ orr r2, r3
+ strh r2, [r0, #0x0]
+ b _0200FB66
+_0200FB4C:
+ ldrh r2, [r0, #0x0]
+ mov r0, #0x2
+ tst r0, r2
+ beq _0200FB66
+ ldr r2, _0200FCC4 ; =0x0400104A
+ mov r0, #0x3f
+ ldrh r3, [r2, #0x0]
+ bic r3, r0
+ mov r0, #0x3f
+ orr r3, r0
+ mov r0, #0x20
+ orr r0, r3
+ strh r0, [r2, #0x0]
+_0200FB66:
+ ldr r0, _0200FCBC ; =0x00000309
+ ldrb r2, [r4, r0]
+ mov r0, #0x6
+ lsl r0, r0, #0x6
+ ldr r0, [r1, r0]
+ cmp r0, #0x0
+ bne _0200FBB2
+ cmp r2, #0x0
+ bne _0200FB94
+ ldr r2, _0200FCC0 ; =0x04000004
+ mov r0, #0x2
+ ldrh r1, [r2, #0x0]
+ tst r0, r1
+ beq _0200FB9E
+ add r2, #0x44
+ ldrh r1, [r2, #0x0]
+ mov r0, #0x3f
+ bic r1, r0
+ mov r0, #0x20
+ orr r1, r0
+ orr r0, r1
+ strh r0, [r2, #0x0]
+ pop {r3-r5, pc}
+_0200FB94:
+ ldr r0, _0200FCC0 ; =0x04000004
+ ldrh r1, [r0, #0x0]
+ mov r0, #0x2
+ tst r0, r1
+ bne _0200FBA0
+_0200FB9E:
+ b _0200FCB0
+_0200FBA0:
+ ldr r1, _0200FCB8 ; =0x04001048
+ mov r0, #0x3f
+ ldrh r2, [r1, #0x0]
+ bic r2, r0
+ mov r0, #0x20
+ orr r2, r0
+ orr r0, r2
+ strh r0, [r1, #0x0]
+ pop {r3-r5, pc}
+_0200FBB2:
+ cmp r2, #0x0
+ ldr r0, _0200FCC0 ; =0x04000004
+ bne _0200FBD2
+ ldrh r1, [r0, #0x0]
+ mov r2, #0x2
+ tst r1, r2
+ beq _0200FCB0
+ add r0, #0x44
+ ldrh r3, [r0, #0x0]
+ ldr r1, _0200FCB4 ; =0xFFFFC0FF
+ and r3, r1
+ lsl r1, r2, #0xc
+ orr r3, r1
+ orr r1, r3
+ strh r1, [r0, #0x0]
+ pop {r3-r5, pc}
+_0200FBD2:
+ ldrh r1, [r0, #0x0]
+ mov r0, #0x2
+ tst r0, r1
+ beq _0200FCB0
+ ldr r2, _0200FCB8 ; =0x04001048
+ ldr r0, _0200FCB4 ; =0xFFFFC0FF
+ ldrh r1, [r2, #0x0]
+ and r1, r0
+ lsr r0, r2, #0xd
+ orr r1, r0
+ orr r0, r1
+ strh r0, [r2, #0x0]
+ pop {r3-r5, pc}
+_0200FBEC:
+ ldrb r0, [r4, r0]
+ cmp r0, #0x0
+ ldr r0, _0200FCC0 ; =0x04000004
+ bne _0200FC0E
+ ldrh r3, [r0, #0x0]
+ mov r2, #0x2
+ tst r2, r3
+ beq _0200FC26
+ add r0, #0x46
+ ldrh r3, [r0, #0x0]
+ mov r2, #0x3f
+ bic r3, r2
+ mov r2, #0x20
+ orr r3, r2
+ orr r2, r3
+ strh r2, [r0, #0x0]
+ b _0200FC26
+_0200FC0E:
+ ldrh r2, [r0, #0x0]
+ mov r0, #0x2
+ tst r0, r2
+ beq _0200FC26
+ ldr r2, _0200FCC4 ; =0x0400104A
+ mov r0, #0x3f
+ ldrh r3, [r2, #0x0]
+ bic r3, r0
+ mov r0, #0x20
+ orr r3, r0
+ orr r0, r3
+ strh r0, [r2, #0x0]
+_0200FC26:
+ ldr r0, _0200FCBC ; =0x00000309
+ ldrb r2, [r4, r0]
+ mov r0, #0x6
+ lsl r0, r0, #0x6
+ ldr r0, [r1, r0]
+ cmp r0, #0x0
+ ldr r0, _0200FCC0 ; =0x04000004
+ bne _0200FC72
+ cmp r2, #0x0
+ bne _0200FC56
+ ldrh r2, [r0, #0x0]
+ mov r1, #0x2
+ tst r1, r2
+ beq _0200FCB0
+ add r0, #0x44
+ ldrh r2, [r0, #0x0]
+ mov r1, #0x3f
+ bic r2, r1
+ mov r1, #0x3f
+ orr r2, r1
+ mov r1, #0x20
+ orr r1, r2
+ strh r1, [r0, #0x0]
+ pop {r3-r5, pc}
+_0200FC56:
+ ldrh r1, [r0, #0x0]
+ mov r0, #0x2
+ tst r0, r1
+ beq _0200FCB0
+ ldr r1, _0200FCB8 ; =0x04001048
+ mov r0, #0x3f
+ ldrh r2, [r1, #0x0]
+ bic r2, r0
+ mov r0, #0x3f
+ orr r2, r0
+ mov r0, #0x20
+ orr r0, r2
+ strh r0, [r1, #0x0]
+ pop {r3-r5, pc}
+_0200FC72:
+ cmp r2, #0x0
+ bne _0200FC94
+ ldrh r1, [r0, #0x0]
+ mov r2, #0x2
+ tst r1, r2
+ beq _0200FCB0
+ add r0, #0x44
+ ldrh r3, [r0, #0x0]
+ ldr r1, _0200FCB4 ; =0xFFFFC0FF
+ and r3, r1
+ mov r1, #0x3f
+ lsl r1, r1, #0x8
+ orr r3, r1
+ lsl r1, r2, #0xc
+ orr r1, r3
+ strh r1, [r0, #0x0]
+ pop {r3-r5, pc}
+_0200FC94:
+ ldrh r1, [r0, #0x0]
+ mov r0, #0x2
+ tst r0, r1
+ beq _0200FCB0
+ ldr r2, _0200FCB8 ; =0x04001048
+ ldr r0, _0200FCB4 ; =0xFFFFC0FF
+ ldrh r1, [r2, #0x0]
+ and r1, r0
+ mov r0, #0x3f
+ lsl r0, r0, #0x8
+ orr r1, r0
+ lsr r0, r2, #0xd
+ orr r0, r1
+ strh r0, [r2, #0x0]
+_0200FCB0:
+ pop {r3-r5, pc}
+ nop
+_0200FCB4: .word 0xFFFFC0FF
+_0200FCB8: .word 0x04001048
+_0200FCBC: .word 0x00000309
+_0200FCC0: .word 0x04000004
+_0200FCC4: .word 0x0400104A
+
+ thumb_func_start FUN_0200FCC8
+FUN_0200FCC8: ; 0x0200FCC8
+ push {r4-r6, lr}
+ sub sp, #0x8
+ add r5, r0, #0x0
+ ldr r0, [r5, #0x20]
+ add r6, r1, #0x0
+ mov r1, #0x4c
+ bl FUN_02016998
+ str r0, [r5, #0x14]
+ add r4, r0, #0x0
+ ldr r0, [r5, #0x10]
+ add r1, r6, #0x0
+ str r0, [sp, #0x0]
+ ldr r0, [r5, #0x18]
+ str r0, [sp, #0x4]
+ ldr r2, [r5, #0x4]
+ ldr r3, [r5, #0x8]
+ add r0, r4, #0x0
+ bl FUN_0200FE20
+ add r6, #0x20
+ ldrb r0, [r6, #0x0]
+ cmp r0, #0x0
+ ldr r0, [r5, #0x18]
+ bne _0200FD06
+ ldr r2, [r4, #0x30]
+ ldr r3, [r4, #0x44]
+ mov r1, #0x1
+ bl FUN_0200F6E4
+ b _0200FD10
+_0200FD06:
+ ldr r2, [r4, #0x30]
+ ldr r3, [r4, #0x44]
+ mov r1, #0x2
+ bl FUN_0200F6E4
+_0200FD10:
+ ldr r0, [r5, #0xc]
+ add r0, r0, #0x1
+ str r0, [r5, #0xc]
+ add sp, #0x8
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_0200FD1C
+FUN_0200FD1C: ; 0x0200FD1C
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ ldr r0, [r5, #0xc]
+ mov r6, #0x0
+ ldr r4, [r5, #0x14]
+ cmp r0, #0x1
+ beq _0200FD34
+ cmp r0, #0x2
+ beq _0200FD50
+ cmp r0, #0x3
+ beq _0200FD64
+ b _0200FD66
+_0200FD34:
+ add r0, r4, #0x0
+ bl FUN_0200FE90
+ cmp r0, #0x1
+ bne _0200FD66
+ ldr r0, [r4, #0x44]
+ ldr r1, [r5, #0x18]
+ ldr r2, [r5, #0x10]
+ bl FUN_0200F62C
+ ldr r0, [r5, #0xc]
+ add r0, r0, #0x1
+ str r0, [r5, #0xc]
+ b _0200FD66
+_0200FD50:
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ add r0, r6, #0x0
+ str r0, [r5, #0x14]
+ ldr r0, [r5, #0xc]
+ mov r6, #0x1
+ add r0, r0, #0x1
+ str r0, [r5, #0xc]
+ b _0200FD66
+_0200FD64:
+ mov r6, #0x1
+_0200FD66:
+ add r0, r6, #0x0
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_0200FD6C
+FUN_0200FD6C: ; 0x0200FD6C
+ push {r3-r7, lr}
+ sub sp, #0x8
+ add r5, r0, #0x0
+ ldr r0, [r5, #0x20]
+ add r6, r1, #0x0
+ mov r1, #0x98
+ add r7, r2, #0x0
+ bl FUN_02016998
+ str r0, [r5, #0x14]
+ add r4, r0, #0x0
+ ldr r0, [r5, #0x10]
+ add r1, r6, #0x0
+ str r0, [sp, #0x0]
+ ldr r0, [r5, #0x18]
+ str r0, [sp, #0x4]
+ ldr r2, [r5, #0x4]
+ ldr r3, [r5, #0x8]
+ add r0, r4, #0x0
+ bl FUN_0200FE20
+ ldr r0, [r5, #0x10]
+ add r1, r7, #0x0
+ str r0, [sp, #0x0]
+ ldr r0, [r5, #0x18]
+ str r0, [sp, #0x4]
+ add r0, r4, #0x0
+ ldr r2, [r5, #0x4]
+ ldr r3, [r5, #0x8]
+ add r0, #0x4c
+ bl FUN_0200FE20
+ ldr r0, [r5, #0x18]
+ ldr r2, [r5, #0x10]
+ ldr r3, [r4, #0x44]
+ mov r1, #0x3
+ bl FUN_0200F6E4
+ ldr r0, [r5, #0xc]
+ add r0, r0, #0x1
+ str r0, [r5, #0xc]
+ add sp, #0x8
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_0200FDC4
+FUN_0200FDC4: ; 0x0200FDC4
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ ldr r0, [r5, #0xc]
+ mov r6, #0x0
+ ldr r4, [r5, #0x14]
+ cmp r0, #0x1
+ beq _0200FDDC
+ cmp r0, #0x2
+ beq _0200FE04
+ cmp r0, #0x3
+ beq _0200FE18
+ b _0200FE1A
+_0200FDDC:
+ add r0, r4, #0x0
+ bl FUN_0200FE90
+ add r7, r0, #0x0
+ add r0, r4, #0x0
+ add r0, #0x4c
+ bl FUN_0200FE90
+ add r0, r7, r0
+ cmp r0, #0x2
+ bne _0200FE1A
+ ldr r0, [r4, #0x44]
+ ldr r1, [r5, #0x18]
+ ldr r2, [r5, #0x10]
+ bl FUN_0200F62C
+ ldr r0, [r5, #0xc]
+ add r0, r0, #0x1
+ str r0, [r5, #0xc]
+ b _0200FE1A
+_0200FE04:
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ add r0, r6, #0x0
+ str r0, [r5, #0x14]
+ ldr r0, [r5, #0xc]
+ mov r6, #0x1
+ add r0, r0, #0x1
+ str r0, [r5, #0xc]
+ b _0200FE1A
+_0200FE18:
+ mov r6, #0x1
+_0200FE1A:
+ add r0, r6, #0x0
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_0200FE20
+FUN_0200FE20: ; 0x0200FE20
+ push {r3-r7, lr}
+ sub sp, #0x18
+ add r4, r1, #0x0
+ add r1, #0x10
+ add r7, r3, #0x0
+ add r5, r0, #0x0
+ add r6, r2, #0x0
+ str r1, [sp, #0x0]
+ add r1, r5, #0x0
+ add r2, r5, #0x0
+ add r1, #0x20
+ add r2, #0x10
+ add r3, r4, #0x0
+ str r6, [sp, #0x4]
+ bl FUN_0200F1A8
+ ldr r1, [sp, #0x30]
+ add r0, r4, #0x0
+ add r2, r4, #0x0
+ str r1, [r5, #0x30]
+ add r0, #0x20
+ ldrb r0, [r0, #0x0]
+ add r2, #0x23
+ str r0, [r5, #0x34]
+ str r6, [r5, #0x38]
+ str r7, [r5, #0x3c]
+ mov r0, #0x0
+ str r0, [r5, #0x40]
+ ldr r0, [sp, #0x34]
+ str r0, [r5, #0x48]
+ ldrb r2, [r2, #0x0]
+ str r2, [r5, #0x44]
+ str r1, [sp, #0x0]
+ ldr r1, [r4, #0x0]
+ add r2, r4, #0x0
+ str r1, [sp, #0x4]
+ ldr r1, [r4, #0x4]
+ add r2, #0x22
+ str r1, [sp, #0x8]
+ ldr r1, [r4, #0x8]
+ str r1, [sp, #0xc]
+ ldr r1, [r4, #0xc]
+ str r1, [sp, #0x10]
+ ldr r1, [r5, #0x44]
+ str r1, [sp, #0x14]
+ add r1, r4, #0x0
+ add r1, #0x21
+ add r4, #0x20
+ ldrb r1, [r1, #0x0]
+ ldrb r2, [r2, #0x0]
+ ldrb r3, [r4, #0x0]
+ bl FUN_0200F67C
+ add sp, #0x18
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_0200FE90
+FUN_0200FE90: ; 0x0200FE90
+ push {r3-r4, lr}
+ sub sp, #0xc
+ add r4, r0, #0x0
+ ldr r1, [r4, #0x40]
+ add r2, r1, #0x1
+ str r2, [r4, #0x40]
+ ldr r1, [r4, #0x3c]
+ cmp r2, r1
+ blt _0200FF10
+ mov r1, #0x0
+ str r1, [r4, #0x40]
+ ldr r1, [r4, #0x38]
+ sub r1, r1, #0x1
+ cmp r1, #0x0
+ ble _0200FEBA
+ str r1, [r4, #0x38]
+ add r1, r4, #0x0
+ add r1, #0x10
+ bl FUN_0200F184
+ b _0200FED8
+_0200FEBA:
+ ldr r0, [r4, #0x2c]
+ str r0, [sp, #0x0]
+ ldr r0, [r4, #0x34]
+ str r0, [sp, #0x4]
+ ldr r0, [r4, #0x30]
+ str r0, [sp, #0x8]
+ ldr r0, [r4, #0x48]
+ ldr r1, [r4, #0x20]
+ ldr r2, [r4, #0x24]
+ ldr r3, [r4, #0x28]
+ bl FUN_02011698
+ add sp, #0xc
+ mov r0, #0x1
+ pop {r3-r4, pc}
+_0200FED8:
+ ldr r1, [r4, #0xc]
+ asr r0, r1, #0x6
+ lsr r0, r0, #0x19
+ add r0, r1, r0
+ asr r0, r0, #0x7
+ str r0, [sp, #0x0]
+ ldr r0, [r4, #0x34]
+ str r0, [sp, #0x4]
+ ldr r0, [r4, #0x30]
+ str r0, [sp, #0x8]
+ ldr r2, [r4, #0x0]
+ ldr r3, [r4, #0x4]
+ asr r1, r2, #0x6
+ lsr r1, r1, #0x19
+ add r1, r2, r1
+ ldr r0, [r4, #0x48]
+ asr r2, r3, #0x6
+ lsr r2, r2, #0x19
+ add r2, r3, r2
+ ldr r4, [r4, #0x8]
+ asr r1, r1, #0x7
+ asr r3, r4, #0x6
+ lsr r3, r3, #0x19
+ add r3, r4, r3
+ asr r2, r2, #0x7
+ asr r3, r3, #0x7
+ bl FUN_02011698
+_0200FF10:
+ mov r0, #0x0
+ add sp, #0xc
+ pop {r3-r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0200FF18
+FUN_0200FF18: ; 0x0200FF18
+ push {r3-r5, lr}
+ sub sp, #0x10
+ add r5, r0, #0x0
+ ldr r0, [r5, #0x20]
+ add r4, r1, #0x0
+ mov r1, #0x38
+ bl FUN_02016998
+ str r0, [r5, #0x14]
+ ldr r0, [r5, #0x10]
+ add r1, r4, #0x0
+ str r0, [sp, #0x0]
+ ldr r0, [r5, #0x18]
+ str r0, [sp, #0x4]
+ ldr r0, [r5, #0x1c]
+ str r0, [sp, #0x8]
+ ldr r0, [r5, #0x20]
+ str r0, [sp, #0xc]
+ ldr r0, [r5, #0x14]
+ ldr r2, [r5, #0x4]
+ ldr r3, [r5, #0x8]
+ bl FUN_0200FFAC
+ ldr r0, [r5, #0xc]
+ add r0, r0, #0x1
+ str r0, [r5, #0xc]
+ add sp, #0x10
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_0200FF50
+FUN_0200FF50: ; 0x0200FF50
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ ldr r0, [r5, #0xc]
+ mov r6, #0x0
+ ldr r4, [r5, #0x14]
+ cmp r0, #0x1
+ beq _0200FF68
+ cmp r0, #0x2
+ beq _0200FF84
+ cmp r0, #0x3
+ beq _0200FF9E
+ b _0200FFA2
+_0200FF68:
+ add r0, r4, #0x0
+ bl FUN_02010084
+ cmp r0, #0x1
+ bne _0200FFA6
+ ldr r0, [r4, #0x2c]
+ ldr r1, [r4, #0x30]
+ ldr r2, [r5, #0x10]
+ bl FUN_0200F62C
+ ldr r0, [r5, #0xc]
+ add r0, r0, #0x1
+ str r0, [r5, #0xc]
+ b _0200FFA6
+_0200FF84:
+ add r0, r4, #0x0
+ bl FUN_0200F5C0
+ ldr r0, [r5, #0x14]
+ bl FUN_02016A18
+ add r0, r6, #0x0
+ str r0, [r5, #0x14]
+ ldr r0, [r5, #0xc]
+ mov r6, #0x1
+ add r0, r0, #0x1
+ str r0, [r5, #0xc]
+ b _0200FFA6
+_0200FF9E:
+ mov r6, #0x1
+ b _0200FFA6
+_0200FFA2:
+ bl ErrorHandling
+_0200FFA6:
+ add r0, r6, #0x0
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_0200FFAC
+FUN_0200FFAC: ; 0x0200FFAC
+ push {r4-r7, lr}
+ sub sp, #0x24
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ ldr r0, [r4, #0x0]
+ ldr r1, [r4, #0x4]
+ str r2, [sp, #0x18]
+ str r3, [sp, #0x1c]
+ ldr r6, [sp, #0x38]
+ ldr r7, [sp, #0x3c]
+ bl FUN_0200F164
+ str r0, [sp, #0x20]
+ ldrb r1, [r4, #0xc]
+ ldr r3, [sp, #0x44]
+ add r0, r5, #0x0
+ add r2, r6, #0x0
+ bl FUN_0200F55C
+ ldr r0, [r4, #0x0]
+ lsl r0, r0, #0x7
+ str r0, [r5, #0xc]
+ mov r0, #0x8
+ ldrsh r0, [r4, r0]
+ str r0, [r5, #0x10]
+ mov r0, #0xa
+ ldrsh r0, [r4, r0]
+ str r0, [r5, #0x14]
+ ldr r0, [sp, #0x20]
+ str r0, [r5, #0x18]
+ ldr r0, [sp, #0x18]
+ str r0, [r5, #0x1c]
+ ldr r0, [sp, #0x1c]
+ str r0, [r5, #0x20]
+ mov r0, #0x0
+ str r0, [r5, #0x24]
+ ldr r0, [sp, #0x40]
+ str r7, [r5, #0x30]
+ str r0, [r5, #0x34]
+ ldr r0, [sp, #0x44]
+ str r0, [r5, #0x28]
+ ldrb r0, [r4, #0xf]
+ str r0, [r5, #0x2c]
+ add r0, r5, #0x0
+ bl FUN_02010168
+ ldr r0, _02010078 ; =FUN_0200F5F8
+ ldr r2, _0201007C ; =0x000003FF
+ add r1, r5, #0x0
+ bl FUN_0200CA98
+ add r0, r5, #0x0
+ mov r1, #0x0
+ bl FUN_0200F5D8
+ mov r1, #0x3
+ str r6, [sp, #0x0]
+ lsl r1, r1, #0x8
+ ldrsh r1, [r0, r1]
+ str r1, [sp, #0x4]
+ mov r1, #0x0
+ str r1, [sp, #0x8]
+ mov r1, #0x12
+ lsl r1, r1, #0x6
+ ldrsh r0, [r0, r1]
+ str r0, [sp, #0xc]
+ mov r0, #0xc0
+ str r0, [sp, #0x10]
+ ldr r0, [r5, #0x2c]
+ str r0, [sp, #0x14]
+ ldrb r1, [r4, #0xd]
+ ldrb r2, [r4, #0xe]
+ ldrb r3, [r4, #0xc]
+ add r0, r7, #0x0
+ bl FUN_0200F67C
+ ldrb r0, [r4, #0xc]
+ cmp r0, #0x0
+ bne _02010058
+ ldr r3, [r5, #0x2c]
+ add r0, r7, #0x0
+ mov r1, #0x1
+ add r2, r6, #0x0
+ bl FUN_0200F6E4
+ b _02010064
+_02010058:
+ ldr r3, [r5, #0x2c]
+ add r0, r7, #0x0
+ mov r1, #0x2
+ add r2, r6, #0x0
+ bl FUN_0200F6E4
+_02010064:
+ ldr r0, [sp, #0x44]
+ ldr r2, _02010080 ; =FUN_0200F330
+ str r0, [sp, #0x0]
+ ldr r0, [r5, #0x34]
+ add r1, r5, #0x0
+ add r3, r6, #0x0
+ bl FUN_0200E6CC
+ add sp, #0x24
+ pop {r4-r7, pc}
+ .balign 4
+_02010078: .word FUN_0200F5F8
+_0201007C: .word 0x000003FF
+_02010080: .word FUN_0200F330
+
+ thumb_func_start FUN_02010084
+FUN_02010084: ; 0x02010084
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r1, [r4, #0x24]
+ add r2, r1, #0x1
+ str r2, [r4, #0x24]
+ ldr r1, [r4, #0x20]
+ cmp r2, r1
+ blt _020100C8
+ mov r1, #0x0
+ str r1, [r4, #0x24]
+ ldr r1, [r4, #0x1c]
+ sub r1, r1, #0x1
+ cmp r1, #0x0
+ ble _020100BA
+ str r1, [r4, #0x1c]
+ ldr r2, [r4, #0xc]
+ ldr r1, [r4, #0x18]
+ add r1, r2, r1
+ str r1, [r4, #0xc]
+ bl FUN_02010168
+ ldr r0, _020100CC ; =FUN_0200F5F8
+ ldr r2, _020100D0 ; =0x000003FF
+ add r1, r4, #0x0
+ bl FUN_0200CA98
+ b _020100C8
+_020100BA:
+ ldr r0, [r4, #0x34]
+ ldr r1, [r4, #0x8]
+ ldr r2, [r4, #0x28]
+ bl FUN_0200E6F8
+ mov r0, #0x1
+ pop {r4, pc}
+_020100C8:
+ mov r0, #0x0
+ pop {r4, pc}
+ .balign 4
+_020100CC: .word FUN_0200F5F8
+_020100D0: .word 0x000003FF
+
+ thumb_func_start FUN_020100D4
+FUN_020100D4: ; 0x020100D4
+ push {r4-r7, lr}
+ sub sp, #0xc
+ str r1, [sp, #0x0]
+ asr r1, r0, #0x6
+ lsr r1, r1, #0x19
+ add r1, r0, r1
+ asr r1, r1, #0x7
+ ldr r5, [sp, #0x20]
+ ldr r4, [sp, #0x24]
+ sub r0, r3, r2
+ bpl _020100EC
+ neg r0, r0
+_020100EC:
+ cmp r0, r1
+ blt _020100FA
+ mov r0, #0x0
+ str r0, [r5, #0x0]
+ add sp, #0xc
+ str r0, [r4, #0x0]
+ pop {r4-r7, pc}
+_020100FA:
+ lsl r0, r0, #0xc
+ str r0, [sp, #0x4]
+ asr r7, r0, #0x1f
+ lsl r0, r1, #0xc
+ asr r1, r0, #0x1f
+ add r2, r0, #0x0
+ add r3, r1, #0x0
+ blx _ll_mul
+ str r0, [sp, #0x8]
+ ldr r0, [sp, #0x4]
+ add r6, r1, #0x0
+ add r1, r7, #0x0
+ add r2, r0, #0x0
+ add r3, r7, #0x0
+ blx _ll_mul
+ add r2, r0, #0x0
+ add r3, r1, #0x0
+ mov r0, #0x2
+ ldr r1, [sp, #0x8]
+ mov r7, #0x0
+ lsl r0, r0, #0xa
+ add r0, r1, r0
+ adc r6, r7
+ lsl r1, r6, #0x14
+ lsr r0, r0, #0xc
+ orr r0, r1
+ mov r1, #0x2
+ lsl r1, r1, #0xa
+ add r2, r2, r1
+ adc r3, r7
+ lsl r1, r3, #0x14
+ lsr r2, r2, #0xc
+ orr r2, r1
+ sub r0, r0, r2
+ blx FX_Sqrt
+ asr r2, r0, #0xc
+ ldr r0, [sp, #0x0]
+ sub r0, r0, r2
+ str r0, [r5, #0x0]
+ bpl _02010154
+ add r0, r7, #0x0
+ str r0, [r5, #0x0]
+_02010154:
+ ldr r1, [r5, #0x0]
+ lsl r0, r2, #0x1
+ add r0, r1, r0
+ str r0, [r4, #0x0]
+ cmp r0, #0xff
+ ble _02010164
+ mov r0, #0xff
+ str r0, [r4, #0x0]
+_02010164:
+ add sp, #0xc
+ pop {r4-r7, pc}
+
+ thumb_func_start FUN_02010168
+FUN_02010168: ; 0x02010168
+ push {r3-r7, lr}
+ sub sp, #0x10
+ mov r1, #0x0
+ add r5, r0, #0x0
+ bl FUN_0200F5D8
+ add r7, r0, #0x0
+ mov r4, #0x0
+ add r6, r7, #0x0
+_0201017A:
+ ldr r2, [r5, #0x14]
+ cmp r4, r2
+ bgt _02010194
+ add r0, sp, #0xc
+ str r0, [sp, #0x0]
+ add r0, sp, #0x8
+ str r0, [sp, #0x4]
+ ldr r0, [r5, #0xc]
+ ldr r1, [r5, #0x10]
+ add r3, r4, #0x0
+ bl FUN_020100D4
+ b _020101CE
+_02010194:
+ lsl r0, r2, #0x1
+ cmp r4, r0
+ bgt _020101BC
+ sub r0, r0, r4
+ lsl r0, r0, #0x1
+ add r1, r7, r0
+ mov r0, #0x3
+ lsl r0, r0, #0x8
+ ldrsh r0, [r1, r0]
+ str r0, [sp, #0xc]
+ ldr r0, [r5, #0x14]
+ lsl r0, r0, #0x1
+ sub r0, r0, r4
+ lsl r0, r0, #0x1
+ add r1, r7, r0
+ mov r0, #0x12
+ lsl r0, r0, #0x6
+ ldrsh r0, [r1, r0]
+ str r0, [sp, #0x8]
+ b _020101CE
+_020101BC:
+ add r0, sp, #0xc
+ str r0, [sp, #0x0]
+ add r0, sp, #0x8
+ str r0, [sp, #0x4]
+ ldr r0, [r5, #0xc]
+ ldr r1, [r5, #0x10]
+ add r3, r4, #0x0
+ bl FUN_020100D4
+_020101CE:
+ mov r0, #0x3
+ ldr r1, [sp, #0xc]
+ lsl r0, r0, #0x8
+ strh r1, [r6, r0]
+ mov r0, #0x12
+ ldr r1, [sp, #0x8]
+ lsl r0, r0, #0x6
+ strh r1, [r6, r0]
+ add r4, r4, #0x1
+ add r6, r6, #0x2
+ cmp r4, #0xc0
+ blt _0201017A
+ add sp, #0x10
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_020101EC
+FUN_020101EC: ; 0x020101EC
+ push {r3-r5, lr}
+ sub sp, #0x10
+ add r5, r0, #0x0
+ ldr r0, [r5, #0x20]
+ add r4, r1, #0x0
+ mov r1, #0x30
+ bl FUN_02016998
+ str r0, [r5, #0x14]
+ ldr r0, [r5, #0x10]
+ add r1, r4, #0x0
+ str r0, [sp, #0x0]
+ ldr r0, [r5, #0x18]
+ str r0, [sp, #0x4]
+ ldr r0, [r5, #0x1c]
+ str r0, [sp, #0x8]
+ ldr r0, [r5, #0x20]
+ str r0, [sp, #0xc]
+ ldr r0, [r5, #0x14]
+ ldr r2, [r5, #0x4]
+ ldr r3, [r5, #0x8]
+ bl FUN_02010280
+ ldr r0, [r5, #0xc]
+ add r0, r0, #0x1
+ str r0, [r5, #0xc]
+ add sp, #0x10
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_02010224
+FUN_02010224: ; 0x02010224
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ ldr r0, [r5, #0xc]
+ mov r6, #0x0
+ ldr r4, [r5, #0x14]
+ cmp r0, #0x1
+ beq _0201023C
+ cmp r0, #0x2
+ beq _02010258
+ cmp r0, #0x3
+ beq _02010272
+ b _02010276
+_0201023C:
+ add r0, r4, #0x0
+ bl FUN_02010348
+ cmp r0, #0x1
+ bne _0201027A
+ ldr r0, [r4, #0x20]
+ ldr r1, [r4, #0x24]
+ ldr r2, [r5, #0x10]
+ bl FUN_0200F62C
+ ldr r0, [r5, #0xc]
+ add r0, r0, #0x1
+ str r0, [r5, #0xc]
+ b _0201027A
+_02010258:
+ add r0, r4, #0x0
+ bl FUN_0200F5C0
+ ldr r0, [r5, #0x14]
+ bl FUN_02016A18
+ add r0, r6, #0x0
+ str r0, [r5, #0x14]
+ ldr r0, [r5, #0xc]
+ mov r6, #0x1
+ add r0, r0, #0x1
+ str r0, [r5, #0xc]
+ b _0201027A
+_02010272:
+ mov r6, #0x1
+ b _0201027A
+_02010276:
+ bl ErrorHandling
+_0201027A:
+ add r0, r6, #0x0
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_02010280
+FUN_02010280: ; 0x02010280
+ push {r3-r7, lr}
+ sub sp, #0x20
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ ldr r0, [r4, #0x0]
+ ldr r1, [r4, #0x4]
+ str r2, [sp, #0x18]
+ str r3, [sp, #0x1c]
+ ldr r6, [sp, #0x38]
+ ldr r7, [sp, #0x3c]
+ bl FUN_0200F164
+ str r0, [r5, #0x10]
+ ldrb r1, [r4, #0x8]
+ ldr r3, [sp, #0x44]
+ add r0, r5, #0x0
+ add r2, r6, #0x0
+ bl FUN_0200F55C
+ ldr r0, [r4, #0x0]
+ lsl r0, r0, #0x7
+ str r0, [r5, #0xc]
+ ldr r0, [sp, #0x18]
+ str r0, [r5, #0x14]
+ ldr r0, [sp, #0x1c]
+ str r0, [r5, #0x18]
+ mov r0, #0x0
+ str r0, [r5, #0x1c]
+ ldr r0, [sp, #0x40]
+ str r7, [r5, #0x24]
+ str r0, [r5, #0x28]
+ ldr r0, [sp, #0x44]
+ str r0, [r5, #0x2c]
+ ldrb r0, [r4, #0xb]
+ str r0, [r5, #0x20]
+ add r0, r5, #0x0
+ bl FUN_02010398
+ ldr r0, _0201033C ; =FUN_0200F5F8
+ ldr r2, _02010340 ; =0x000003FF
+ add r1, r5, #0x0
+ bl FUN_0200CA98
+ add r0, r5, #0x0
+ mov r1, #0x0
+ bl FUN_0200F5D8
+ mov r1, #0x3
+ str r6, [sp, #0x0]
+ lsl r1, r1, #0x8
+ ldrsh r1, [r0, r1]
+ str r1, [sp, #0x4]
+ mov r1, #0x0
+ str r1, [sp, #0x8]
+ mov r1, #0x12
+ lsl r1, r1, #0x6
+ ldrsh r0, [r0, r1]
+ str r0, [sp, #0xc]
+ mov r0, #0xc0
+ str r0, [sp, #0x10]
+ ldr r0, [r5, #0x20]
+ str r0, [sp, #0x14]
+ ldrb r1, [r4, #0x9]
+ ldrb r2, [r4, #0xa]
+ ldrb r3, [r4, #0x8]
+ add r0, r7, #0x0
+ bl FUN_0200F67C
+ ldrb r0, [r4, #0x8]
+ cmp r0, #0x0
+ bne _0201031C
+ ldr r3, [r5, #0x20]
+ add r0, r7, #0x0
+ mov r1, #0x1
+ add r2, r6, #0x0
+ bl FUN_0200F6E4
+ b _02010328
+_0201031C:
+ ldr r3, [r5, #0x20]
+ add r0, r7, #0x0
+ mov r1, #0x2
+ add r2, r6, #0x0
+ bl FUN_0200F6E4
+_02010328:
+ ldr r0, [sp, #0x44]
+ ldr r2, _02010344 ; =FUN_0200F330
+ str r0, [sp, #0x0]
+ ldr r0, [r5, #0x28]
+ add r1, r5, #0x0
+ add r3, r6, #0x0
+ bl FUN_0200E6CC
+ add sp, #0x20
+ pop {r3-r7, pc}
+ .balign 4
+_0201033C: .word FUN_0200F5F8
+_02010340: .word 0x000003FF
+_02010344: .word FUN_0200F330
+
+ thumb_func_start FUN_02010348
+FUN_02010348: ; 0x02010348
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r1, [r4, #0x1c]
+ add r2, r1, #0x1
+ str r2, [r4, #0x1c]
+ ldr r1, [r4, #0x18]
+ cmp r2, r1
+ blt _0201038C
+ mov r1, #0x0
+ str r1, [r4, #0x1c]
+ ldr r1, [r4, #0x14]
+ sub r1, r1, #0x1
+ cmp r1, #0x0
+ ble _0201037E
+ str r1, [r4, #0x14]
+ ldr r2, [r4, #0xc]
+ ldr r1, [r4, #0x10]
+ add r1, r2, r1
+ str r1, [r4, #0xc]
+ bl FUN_02010398
+ ldr r0, _02010390 ; =FUN_0200F5F8
+ ldr r2, _02010394 ; =0x000003FF
+ add r1, r4, #0x0
+ bl FUN_0200CA98
+ b _0201038C
+_0201037E:
+ ldr r0, [r4, #0x28]
+ ldr r1, [r4, #0x8]
+ ldr r2, [r4, #0x2c]
+ bl FUN_0200E6F8
+ mov r0, #0x1
+ pop {r4, pc}
+_0201038C:
+ mov r0, #0x0
+ pop {r4, pc}
+ .balign 4
+_02010390: .word FUN_0200F5F8
+_02010394: .word 0x000003FF
+
+ thumb_func_start FUN_02010398
+FUN_02010398: ; 0x02010398
+ push {r3-r7, lr}
+ sub sp, #0x1fc
+ sub sp, #0x104
+ add r4, r0, #0x0
+ mov r1, #0x0
+ bl FUN_0200F5D8
+ ldr r1, [r4, #0xc]
+ add r5, r0, #0x0
+ asr r0, r1, #0x6
+ lsr r0, r0, #0x19
+ add r0, r1, r0
+ asr r0, r0, #0x7
+ add r1, sp, #0x0
+ mov r2, #0xc0
+ mov r3, #0x0
+ bl FUN_0200F0F8
+ mov r7, #0x12
+ mov r6, #0x0
+ add r4, sp, #0x0
+ lsl r7, r7, #0x6
+_020103C4:
+ ldr r1, [r4, #0x0]
+ mov r0, #0x80
+ neg r1, r1
+ bl FUN_0200F174
+ mov r1, #0x3
+ lsl r1, r1, #0x8
+ strh r0, [r5, r1]
+ ldr r1, [r4, #0x0]
+ mov r0, #0x80
+ bl FUN_0200F174
+ strh r0, [r5, r7]
+ add r6, r6, #0x1
+ add r4, r4, #0x4
+ add r5, r5, #0x2
+ cmp r6, #0xc0
+ blt _020103C4
+ add sp, #0x1fc
+ add sp, #0x104
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_020103F0
+FUN_020103F0: ; 0x020103F0
+ push {r3-r5, lr}
+ sub sp, #0x10
+ add r5, r0, #0x0
+ ldr r0, [r5, #0x20]
+ add r4, r1, #0x0
+ mov r1, #0x34
+ bl FUN_02016998
+ str r0, [r5, #0x14]
+ ldr r0, [r5, #0x10]
+ add r1, r4, #0x0
+ str r0, [sp, #0x0]
+ ldr r0, [r5, #0x18]
+ str r0, [sp, #0x4]
+ ldr r0, [r5, #0x1c]
+ str r0, [sp, #0x8]
+ ldr r0, [r5, #0x20]
+ str r0, [sp, #0xc]
+ ldr r0, [r5, #0x14]
+ ldr r2, [r5, #0x4]
+ ldr r3, [r5, #0x8]
+ bl FUN_0201047C
+ ldr r0, [r5, #0xc]
+ add r0, r0, #0x1
+ str r0, [r5, #0xc]
+ add sp, #0x10
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_02010428
+FUN_02010428: ; 0x02010428
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ ldr r0, [r5, #0xc]
+ mov r6, #0x0
+ ldr r4, [r5, #0x14]
+ cmp r0, #0x1
+ beq _02010440
+ cmp r0, #0x2
+ beq _0201045C
+ cmp r0, #0x3
+ beq _02010476
+ b _02010478
+_02010440:
+ add r0, r4, #0x0
+ bl FUN_02010550
+ cmp r0, #0x1
+ bne _02010478
+ ldr r0, [r4, #0x24]
+ ldr r1, [r4, #0x28]
+ ldr r2, [r5, #0x10]
+ bl FUN_0200F62C
+ ldr r0, [r5, #0xc]
+ add r0, r0, #0x1
+ str r0, [r5, #0xc]
+ b _02010478
+_0201045C:
+ add r0, r4, #0x0
+ bl FUN_0200F5C0
+ ldr r0, [r5, #0x14]
+ bl FUN_02016A18
+ add r0, r6, #0x0
+ str r0, [r5, #0x14]
+ ldr r0, [r5, #0xc]
+ mov r6, #0x1
+ add r0, r0, #0x1
+ str r0, [r5, #0xc]
+ b _02010478
+_02010476:
+ mov r6, #0x1
+_02010478:
+ add r0, r6, #0x0
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_0201047C
+FUN_0201047C: ; 0x0201047C
+ push {r4-r7, lr}
+ sub sp, #0x24
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ ldr r1, [r4, #0x4]
+ ldr r0, [r4, #0x0]
+ str r2, [sp, #0x18]
+ sub r0, r1, r0
+ add r1, r2, #0x0
+ str r3, [sp, #0x1c]
+ ldr r6, [sp, #0x38]
+ ldr r7, [sp, #0x3c]
+ blx _s32_div_f
+ str r0, [sp, #0x20]
+ ldrb r1, [r4, #0x8]
+ ldr r3, [sp, #0x44]
+ add r0, r5, #0x0
+ add r2, r6, #0x0
+ bl FUN_0200F55C
+ mov r0, #0x2
+ lsl r0, r0, #0x12
+ str r0, [r5, #0xc]
+ ldr r0, [r4, #0x0]
+ str r0, [r5, #0x10]
+ ldr r0, [sp, #0x20]
+ str r0, [r5, #0x14]
+ ldr r0, [sp, #0x18]
+ str r0, [r5, #0x18]
+ ldr r0, [sp, #0x1c]
+ str r0, [r5, #0x1c]
+ mov r0, #0x0
+ str r0, [r5, #0x20]
+ ldr r0, [sp, #0x40]
+ str r7, [r5, #0x28]
+ str r0, [r5, #0x2c]
+ ldr r0, [sp, #0x44]
+ str r0, [r5, #0x30]
+ ldrb r0, [r4, #0xb]
+ str r0, [r5, #0x24]
+ add r0, r5, #0x0
+ bl FUN_020105A0
+ ldr r0, _02010544 ; =FUN_0200F5F8
+ ldr r2, _02010548 ; =0x000003FF
+ add r1, r5, #0x0
+ bl FUN_0200CA98
+ add r0, r5, #0x0
+ mov r1, #0x0
+ bl FUN_0200F5D8
+ mov r1, #0xf
+ str r6, [sp, #0x0]
+ lsl r1, r1, #0x6
+ ldrsh r1, [r0, r1]
+ str r1, [sp, #0x4]
+ mov r1, #0x0
+ str r1, [sp, #0x8]
+ mov r1, #0x15
+ lsl r1, r1, #0x6
+ ldrsh r0, [r0, r1]
+ str r0, [sp, #0xc]
+ mov r0, #0xc0
+ str r0, [sp, #0x10]
+ ldr r0, [r5, #0x24]
+ str r0, [sp, #0x14]
+ ldrb r1, [r4, #0x9]
+ ldrb r2, [r4, #0xa]
+ ldrb r3, [r4, #0x8]
+ add r0, r7, #0x0
+ bl FUN_0200F67C
+ ldrb r0, [r4, #0x8]
+ cmp r0, #0x0
+ bne _02010524
+ ldr r3, [r5, #0x24]
+ add r0, r7, #0x0
+ mov r1, #0x1
+ add r2, r6, #0x0
+ bl FUN_0200F6E4
+ b _02010530
+_02010524:
+ ldr r3, [r5, #0x24]
+ add r0, r7, #0x0
+ mov r1, #0x2
+ add r2, r6, #0x0
+ bl FUN_0200F6E4
+_02010530:
+ ldr r0, [sp, #0x44]
+ ldr r2, _0201054C ; =FUN_0200F330
+ str r0, [sp, #0x0]
+ ldr r0, [r5, #0x2c]
+ add r1, r5, #0x0
+ add r3, r6, #0x0
+ bl FUN_0200E6CC
+ add sp, #0x24
+ pop {r4-r7, pc}
+ .balign 4
+_02010544: .word FUN_0200F5F8
+_02010548: .word 0x000003FF
+_0201054C: .word FUN_0200F330
+
+ thumb_func_start FUN_02010550
+FUN_02010550: ; 0x02010550
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r1, [r4, #0x20]
+ add r2, r1, #0x1
+ str r2, [r4, #0x20]
+ ldr r1, [r4, #0x1c]
+ cmp r2, r1
+ blt _02010594
+ mov r1, #0x0
+ str r1, [r4, #0x20]
+ ldr r1, [r4, #0x18]
+ sub r1, r1, #0x1
+ cmp r1, #0x0
+ ble _02010586
+ str r1, [r4, #0x18]
+ ldr r2, [r4, #0x10]
+ ldr r1, [r4, #0x14]
+ add r1, r2, r1
+ str r1, [r4, #0x10]
+ bl FUN_020105A0
+ ldr r0, _02010598 ; =FUN_0200F5F8
+ ldr r2, _0201059C ; =0x000003FF
+ add r1, r4, #0x0
+ bl FUN_0200CA98
+ b _02010594
+_02010586:
+ ldr r0, [r4, #0x2c]
+ ldr r1, [r4, #0x8]
+ ldr r2, [r4, #0x30]
+ bl FUN_0200E6F8
+ mov r0, #0x1
+ pop {r4, pc}
+_02010594:
+ mov r0, #0x0
+ pop {r4, pc}
+ .balign 4
+_02010598: .word FUN_0200F5F8
+_0201059C: .word 0x000003FF
+
+ thumb_func_start FUN_020105A0
+FUN_020105A0: ; 0x020105A0
+ push {r4-r7, lr}
+ sub sp, #0x1fc
+ sub sp, #0x110
+ add r4, r0, #0x0
+ mov r1, #0x0
+ bl FUN_0200F5D8
+ str r0, [sp, #0x0]
+ ldr r0, [r4, #0x10]
+ ldr r2, [r4, #0xc]
+ asr r0, r0, #0x4
+ lsl r1, r0, #0x2
+ ldr r0, _02010680 ; =0x020FFA38
+ asr r3, r2, #0x1f
+ ldrsh r0, [r0, r1]
+ asr r1, r0, #0x1f
+ blx _ll_mul
+ mov r2, #0x2
+ mov r3, #0x0
+ lsl r2, r2, #0xa
+ add r2, r0, r2
+ adc r1, r3
+ lsl r0, r1, #0x14
+ lsr r1, r2, #0xc
+ orr r1, r0
+ asr r7, r1, #0xc
+ lsl r0, r7, #0x1
+ mov r1, #0x15
+ blx _s32_div_f
+ add r0, r0, #0x1
+ lsl r0, r0, #0x1
+ mov r1, #0xb4
+ sub r2, r1, r0
+ ldr r0, _02010684 ; =0x0000FFFF
+ add r1, #0xb4
+ mul r0, r2
+ blx _s32_div_f
+ lsr r1, r0, #0x1f
+ add r1, r0, r1
+ asr r4, r1, #0x1
+ mov r1, #0x1
+ add r0, r4, #0x0
+ lsl r1, r1, #0x8
+ bl FUN_0200F14C
+ asr r0, r0, #0xc
+ str r0, [sp, #0x4]
+ cmp r0, #0xc0
+ blt _0201060C
+ bl ErrorHandling
+_0201060C:
+ ldr r2, [sp, #0x4]
+ add r0, r4, #0x0
+ add r1, sp, #0xc
+ mov r3, #0x0
+ bl FUN_0200F0F8
+ ldr r5, [sp, #0x0]
+ mov r4, #0x0
+_0201061C:
+ ldr r0, [sp, #0x4]
+ add r1, r4, #0x1
+ sub r0, r0, r1
+ add r6, r7, #0x0
+ cmp r0, #0x0
+ ble _02010634
+ lsl r1, r0, #0x2
+ add r0, sp, #0xc
+ ldr r0, [r0, r1]
+ cmp r0, r7
+ ble _02010634
+ add r6, r0, #0x0
+_02010634:
+ mov r0, #0x80
+ neg r1, r6
+ bl FUN_0200F174
+ str r0, [sp, #0x8]
+ mov r0, #0x80
+ add r1, r6, #0x0
+ bl FUN_0200F174
+ ldr r1, [sp, #0x8]
+ lsl r0, r0, #0x10
+ lsl r1, r1, #0x10
+ asr r2, r1, #0x10
+ mov r1, #0x3
+ lsl r1, r1, #0x8
+ strh r2, [r5, r1]
+ asr r1, r0, #0x10
+ mov r0, #0x12
+ lsl r0, r0, #0x6
+ strh r1, [r5, r0]
+ mov r0, #0xbf
+ sub r0, r0, r4
+ lsl r3, r0, #0x1
+ ldr r0, [sp, #0x0]
+ add r4, r4, #0x1
+ add r0, r0, r3
+ mov r3, #0x3
+ lsl r3, r3, #0x8
+ strh r2, [r0, r3]
+ mov r2, #0x12
+ lsl r2, r2, #0x6
+ add r5, r5, #0x2
+ strh r1, [r0, r2]
+ cmp r4, #0x60
+ blt _0201061C
+ add sp, #0x1fc
+ add sp, #0x110
+ pop {r4-r7, pc}
+ .balign 4
+_02010680: .word 0x020FFA38
+_02010684: .word 0x0000FFFF
+
+ thumb_func_start FUN_02010688
+FUN_02010688: ; 0x02010688
+ push {r3-r5, lr}
+ sub sp, #0x10
+ add r5, r0, #0x0
+ ldr r0, [r5, #0x20]
+ add r4, r1, #0x0
+ mov r1, #0x30
+ bl FUN_02016998
+ str r0, [r5, #0x14]
+ ldr r0, [r5, #0x10]
+ add r1, r4, #0x0
+ str r0, [sp, #0x0]
+ ldr r0, [r5, #0x18]
+ str r0, [sp, #0x4]
+ ldr r0, [r5, #0x1c]
+ str r0, [sp, #0x8]
+ ldr r0, [r5, #0x20]
+ str r0, [sp, #0xc]
+ ldr r0, [r5, #0x14]
+ ldr r2, [r5, #0x4]
+ ldr r3, [r5, #0x8]
+ bl FUN_02010720
+ ldr r0, [r5, #0xc]
+ add r0, r0, #0x1
+ str r0, [r5, #0xc]
+ add sp, #0x10
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_020106C0
+FUN_020106C0: ; 0x020106C0
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ ldr r0, [r5, #0xc]
+ mov r6, #0x0
+ ldr r4, [r5, #0x14]
+ cmp r0, #0x1
+ beq _020106D8
+ cmp r0, #0x2
+ beq _020106F4
+ cmp r0, #0x3
+ beq _02010714
+ b _02010718
+_020106D8:
+ add r0, r4, #0x0
+ bl FUN_02010834
+ cmp r0, #0x1
+ bne _0201071C
+ ldr r0, [r4, #0x20]
+ ldr r1, [r4, #0x24]
+ ldr r2, [r5, #0x10]
+ bl FUN_0200F62C
+ ldr r0, [r5, #0xc]
+ add r0, r0, #0x1
+ str r0, [r5, #0xc]
+ b _0201071C
+_020106F4:
+ add r0, r4, #0x0
+ bl FUN_02010884
+ add r0, r4, #0x0
+ bl FUN_0200F5C0
+ ldr r0, [r5, #0x14]
+ bl FUN_02016A18
+ add r0, r6, #0x0
+ str r0, [r5, #0x14]
+ ldr r0, [r5, #0xc]
+ mov r6, #0x1
+ add r0, r0, #0x1
+ str r0, [r5, #0xc]
+ b _0201071C
+_02010714:
+ mov r6, #0x1
+ b _0201071C
+_02010718:
+ bl ErrorHandling
+_0201071C:
+ add r0, r6, #0x0
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_02010720
+FUN_02010720: ; 0x02010720
+ push {r4-r7, lr}
+ sub sp, #0x24
+ add r5, r1, #0x0
+ add r7, r0, #0x0
+ str r2, [sp, #0x18]
+ ldr r0, [sp, #0x38]
+ ldrb r2, [r5, #0x8]
+ str r0, [sp, #0x38]
+ ldr r0, [sp, #0x44]
+ mov r1, #0x30
+ mul r1, r2
+ str r3, [sp, #0x1c]
+ str r0, [sp, #0x44]
+ bl FUN_02016998
+ str r0, [r7, #0xc]
+ cmp r0, #0x0
+ bne _02010748
+ bl ErrorHandling
+_02010748:
+ ldrb r0, [r5, #0x8]
+ str r0, [r7, #0x10]
+ mov r0, #0x0
+ str r0, [sp, #0x20]
+ ldrb r0, [r5, #0x8]
+ cmp r0, #0x0
+ ble _02010788
+ ldr r6, [sp, #0x20]
+ add r4, r6, #0x0
+_0201075A:
+ ldr r0, [r5, #0x4]
+ ldr r2, [r7, #0xc]
+ add r0, r0, r6
+ str r0, [sp, #0x0]
+ ldr r0, [sp, #0x18]
+ str r0, [sp, #0x4]
+ add r0, r2, r4
+ ldr r3, [r5, #0x0]
+ add r1, r0, #0x0
+ add r2, r2, r4
+ add r1, #0x20
+ add r2, #0x10
+ add r3, r3, r6
+ bl FUN_0200F1A8
+ ldr r0, [sp, #0x20]
+ ldrb r1, [r5, #0x8]
+ add r0, r0, #0x1
+ add r6, #0x10
+ add r4, #0x30
+ str r0, [sp, #0x20]
+ cmp r0, r1
+ blt _0201075A
+_02010788:
+ ldrb r1, [r5, #0x9]
+ ldr r2, [sp, #0x38]
+ ldr r3, [sp, #0x44]
+ add r0, r7, #0x0
+ bl FUN_0200F55C
+ ldr r0, [sp, #0x18]
+ str r0, [r7, #0x14]
+ ldr r0, [sp, #0x1c]
+ str r0, [r7, #0x18]
+ mov r0, #0x0
+ str r0, [r7, #0x1c]
+ ldr r0, [sp, #0x3c]
+ str r0, [r7, #0x24]
+ ldr r0, [sp, #0x40]
+ str r0, [r7, #0x28]
+ ldr r0, [sp, #0x44]
+ str r0, [r7, #0x2c]
+ ldrb r0, [r5, #0xc]
+ str r0, [r7, #0x20]
+ add r0, r7, #0x0
+ bl FUN_02010894
+ ldr r0, _02010828 ; =FUN_0200F5F8
+ ldr r2, _0201082C ; =0x000003FF
+ add r1, r7, #0x0
+ bl FUN_0200CA98
+ add r0, r7, #0x0
+ mov r1, #0x0
+ bl FUN_0200F5D8
+ ldr r1, [sp, #0x38]
+ str r1, [sp, #0x0]
+ mov r1, #0x3
+ lsl r1, r1, #0x8
+ ldrsh r1, [r0, r1]
+ str r1, [sp, #0x4]
+ mov r1, #0x0
+ str r1, [sp, #0x8]
+ mov r1, #0x12
+ lsl r1, r1, #0x6
+ ldrsh r0, [r0, r1]
+ str r0, [sp, #0xc]
+ mov r0, #0xc0
+ str r0, [sp, #0x10]
+ ldr r0, [r7, #0x20]
+ str r0, [sp, #0x14]
+ ldrb r1, [r5, #0xa]
+ ldrb r2, [r5, #0xb]
+ ldrb r3, [r5, #0x9]
+ ldr r0, [sp, #0x3c]
+ bl FUN_0200F67C
+ ldrb r0, [r5, #0x9]
+ cmp r0, #0x0
+ ldr r0, [r7, #0x24]
+ bne _02010808
+ ldr r2, [sp, #0x38]
+ ldr r3, [r7, #0x20]
+ mov r1, #0x1
+ bl FUN_0200F6E4
+ b _02010812
+_02010808:
+ ldr r2, [sp, #0x38]
+ ldr r3, [r7, #0x20]
+ mov r1, #0x2
+ bl FUN_0200F6E4
+_02010812:
+ ldr r0, [sp, #0x44]
+ ldr r2, _02010830 ; =FUN_0200F330
+ str r0, [sp, #0x0]
+ ldr r0, [r7, #0x28]
+ ldr r3, [sp, #0x38]
+ add r1, r7, #0x0
+ bl FUN_0200E6CC
+ add sp, #0x24
+ pop {r4-r7, pc}
+ nop
+_02010828: .word FUN_0200F5F8
+_0201082C: .word 0x000003FF
+_02010830: .word FUN_0200F330
+
+ thumb_func_start FUN_02010834
+FUN_02010834: ; 0x02010834
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r1, [r4, #0x1c]
+ add r2, r1, #0x1
+ str r2, [r4, #0x1c]
+ ldr r1, [r4, #0x18]
+ cmp r2, r1
+ blt _02010876
+ mov r1, #0x0
+ str r1, [r4, #0x1c]
+ ldr r1, [r4, #0x14]
+ sub r1, r1, #0x1
+ cmp r1, #0x0
+ ble _02010868
+ str r1, [r4, #0x14]
+ bl FUN_02010920
+ add r0, r4, #0x0
+ bl FUN_02010894
+ ldr r0, _0201087C ; =FUN_0200F5F8
+ ldr r2, _02010880 ; =0x000003FF
+ add r1, r4, #0x0
+ bl FUN_0200CA98
+ b _02010876
+_02010868:
+ ldr r0, [r4, #0x28]
+ ldr r1, [r4, #0x8]
+ ldr r2, [r4, #0x2c]
+ bl FUN_0200E6F8
+ mov r0, #0x1
+ pop {r4, pc}
+_02010876:
+ mov r0, #0x0
+ pop {r4, pc}
+ nop
+_0201087C: .word FUN_0200F5F8
+_02010880: .word 0x000003FF
+
+ thumb_func_start FUN_02010884
+FUN_02010884: ; 0x02010884
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r0, [r4, #0xc]
+ bl FUN_02016A18
+ mov r0, #0x0
+ str r0, [r4, #0xc]
+ pop {r4, pc}
+
+ thumb_func_start FUN_02010894
+FUN_02010894: ; 0x02010894
+ push {r4-r6, lr}
+ mov r1, #0x0
+ add r6, r0, #0x0
+ bl FUN_0200F5D8
+ mov r2, #0x3
+ lsl r2, r2, #0x8
+ add r0, r0, r2
+ mov r1, #0x0
+ blx Call_FillMemWithValue
+ ldr r0, [r6, #0x10]
+ sub r4, r0, #0x1
+ bmi _020108C6
+ mov r0, #0x30
+ add r5, r4, #0x0
+ mul r5, r0
+_020108B6:
+ ldr r1, [r6, #0xc]
+ add r0, r6, #0x0
+ add r1, r1, r5
+ bl FUN_020108C8
+ sub r5, #0x30
+ sub r4, r4, #0x1
+ bpl _020108B6
+_020108C6:
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_020108C8
+FUN_020108C8: ; 0x020108C8
+ push {r4-r6, lr}
+ add r4, r1, #0x0
+ mov r1, #0x0
+ bl FUN_0200F5D8
+ ldr r2, [r4, #0x0]
+ ldr r3, [r4, #0x8]
+ asr r1, r2, #0x6
+ lsr r1, r1, #0x19
+ add r1, r2, r1
+ asr r2, r1, #0x7
+ asr r1, r3, #0x6
+ ldr r5, [r4, #0xc]
+ lsr r1, r1, #0x19
+ add r1, r3, r1
+ asr r3, r5, #0x6
+ lsr r3, r3, #0x19
+ add r3, r5, r3
+ ldr r4, [r4, #0x4]
+ asr r5, r3, #0x7
+ asr r3, r4, #0x6
+ lsr r3, r3, #0x19
+ add r3, r4, r3
+ asr r3, r3, #0x7
+ asr r1, r1, #0x7
+ cmp r3, r5
+ bge _0201091E
+ lsl r4, r3, #0x1
+ lsl r1, r1, #0x10
+ add r4, r0, r4
+ lsl r0, r2, #0x10
+ asr r6, r1, #0x10
+ mov r1, #0x3
+ mov r2, #0x12
+ asr r0, r0, #0x10
+ lsl r1, r1, #0x8
+ lsl r2, r2, #0x6
+_02010912:
+ strh r0, [r4, r1]
+ strh r6, [r4, r2]
+ add r3, r3, #0x1
+ add r4, r4, #0x2
+ cmp r3, r5
+ blt _02010912
+_0201091E:
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_02010920
+FUN_02010920: ; 0x02010920
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ ldr r0, [r5, #0x10]
+ mov r6, #0x0
+ cmp r0, #0x0
+ ble _02010944
+ add r4, r6, #0x0
+_0201092E:
+ ldr r1, [r5, #0xc]
+ add r0, r1, r4
+ add r1, r1, r4
+ add r1, #0x10
+ bl FUN_0200F184
+ ldr r0, [r5, #0x10]
+ add r6, r6, #0x1
+ add r4, #0x30
+ cmp r6, r0
+ blt _0201092E
+_02010944:
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_02010948
+FUN_02010948: ; 0x02010948
+ push {r3-r5, lr}
+ sub sp, #0x10
+ add r5, r0, #0x0
+ ldr r0, [r5, #0x20]
+ add r4, r1, #0x0
+ mov r1, #0x38
+ bl FUN_02016998
+ str r0, [r5, #0x14]
+ mov r1, #0x0
+ mov r2, #0x38
+ blx Call_FillMemWithValue
+ ldr r0, [r5, #0x10]
+ add r1, r4, #0x0
+ str r0, [sp, #0x0]
+ ldr r0, [r5, #0x18]
+ str r0, [sp, #0x4]
+ ldr r0, [r5, #0x1c]
+ str r0, [sp, #0x8]
+ ldr r0, [r5, #0x20]
+ str r0, [sp, #0xc]
+ ldr r0, [r5, #0x14]
+ ldr r2, [r5, #0x4]
+ ldr r3, [r5, #0x8]
+ bl FUN_020109E8
+ ldr r0, [r5, #0xc]
+ add r0, r0, #0x1
+ str r0, [r5, #0xc]
+ add sp, #0x10
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_02010988
+FUN_02010988: ; 0x02010988
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ ldr r0, [r5, #0xc]
+ mov r6, #0x0
+ ldr r4, [r5, #0x14]
+ cmp r0, #0x1
+ beq _020109A0
+ cmp r0, #0x2
+ beq _020109BC
+ cmp r0, #0x3
+ beq _020109DC
+ b _020109E0
+_020109A0:
+ add r0, r4, #0x0
+ bl FUN_02010AE4
+ cmp r0, #0x1
+ bne _020109E4
+ ldr r0, [r4, #0x28]
+ ldr r1, [r4, #0x30]
+ ldr r2, [r5, #0x10]
+ bl FUN_0200F62C
+ ldr r0, [r5, #0xc]
+ add r0, r0, #0x1
+ str r0, [r5, #0xc]
+ b _020109E4
+_020109BC:
+ add r0, r4, #0x0
+ bl FUN_02010B3C
+ add r0, r4, #0x0
+ bl FUN_0200F5C0
+ ldr r0, [r5, #0x14]
+ bl FUN_02016A18
+ add r0, r6, #0x0
+ str r0, [r5, #0x14]
+ ldr r0, [r5, #0xc]
+ mov r6, #0x1
+ add r0, r0, #0x1
+ str r0, [r5, #0xc]
+ b _020109E4
+_020109DC:
+ mov r6, #0x1
+ b _020109E4
+_020109E0:
+ bl ErrorHandling
+_020109E4:
+ add r0, r6, #0x0
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_020109E8
+FUN_020109E8: ; 0x020109E8
+ push {r3-r7, lr}
+ sub sp, #0x28
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ mov r1, #0x0
+ str r1, [r5, #0xc]
+ ldr r1, [r4, #0x0]
+ str r2, [sp, #0x18]
+ str r1, [r5, #0x10]
+ str r3, [sp, #0x1c]
+ ldr r2, [r4, #0x4]
+ ldr r1, [r4, #0x0]
+ ldr r6, [sp, #0x40]
+ sub r1, r2, r1
+ str r1, [r5, #0x14]
+ ldr r3, [sp, #0x4c]
+ mov r1, #0x2
+ add r2, r6, #0x0
+ ldr r7, [sp, #0x44]
+ bl FUN_0200F55C
+ ldr r0, [sp, #0x18]
+ mov r1, #0x0
+ str r0, [r5, #0x18]
+ ldr r0, [sp, #0x1c]
+ str r1, [r5, #0x1c]
+ str r0, [r5, #0x20]
+ str r1, [r5, #0x24]
+ ldr r0, [sp, #0x48]
+ str r7, [r5, #0x30]
+ str r0, [r5, #0x34]
+ ldr r0, [sp, #0x4c]
+ str r0, [r5, #0x2c]
+ ldrb r0, [r4, #0xa]
+ str r0, [r5, #0x28]
+ add r0, r5, #0x0
+ ldr r1, [r5, #0x1c]
+ ldr r2, [r5, #0x18]
+ add r0, #0xc
+ bl FUN_02010C64
+ add r0, r5, #0x0
+ bl FUN_02010B40
+ ldr r0, _02010AD8 ; =FUN_0200F5F8
+ ldr r2, _02010ADC ; =0x000003FF
+ add r1, r5, #0x0
+ bl FUN_0200CA98
+ add r0, r5, #0x0
+ mov r1, #0x0
+ bl FUN_0200F5D8
+ str r0, [sp, #0x20]
+ add r0, r5, #0x0
+ mov r1, #0x1
+ bl FUN_0200F5D8
+ str r0, [sp, #0x24]
+ mov r1, #0x3
+ ldr r0, [sp, #0x20]
+ str r6, [sp, #0x0]
+ lsl r1, r1, #0x8
+ ldrsh r0, [r0, r1]
+ mov r1, #0x12
+ mov r3, #0x0
+ str r0, [sp, #0x4]
+ ldr r0, [sp, #0x20]
+ str r3, [sp, #0x8]
+ lsl r1, r1, #0x6
+ ldrsh r0, [r0, r1]
+ str r0, [sp, #0xc]
+ mov r0, #0xc0
+ str r0, [sp, #0x10]
+ ldr r0, [r5, #0x28]
+ str r0, [sp, #0x14]
+ ldrb r1, [r4, #0x8]
+ ldrb r2, [r4, #0x9]
+ add r0, r7, #0x0
+ bl FUN_0200F67C
+ mov r1, #0x3
+ ldr r0, [sp, #0x24]
+ str r6, [sp, #0x0]
+ lsl r1, r1, #0x8
+ ldrsh r0, [r0, r1]
+ mov r1, #0x12
+ lsl r1, r1, #0x6
+ str r0, [sp, #0x4]
+ mov r0, #0x0
+ str r0, [sp, #0x8]
+ ldr r0, [sp, #0x24]
+ mov r3, #0x1
+ ldrsh r0, [r0, r1]
+ str r0, [sp, #0xc]
+ mov r0, #0xc0
+ str r0, [sp, #0x10]
+ ldr r0, [r5, #0x28]
+ str r0, [sp, #0x14]
+ ldrb r1, [r4, #0x8]
+ ldrb r2, [r4, #0x9]
+ add r0, r7, #0x0
+ bl FUN_0200F67C
+ ldr r3, [r5, #0x28]
+ add r0, r7, #0x0
+ mov r1, #0x3
+ add r2, r6, #0x0
+ bl FUN_0200F6E4
+ ldr r0, [sp, #0x4c]
+ ldr r2, _02010AE0 ; =FUN_0200F330
+ str r0, [sp, #0x0]
+ ldr r0, [r5, #0x34]
+ add r1, r5, #0x0
+ add r3, r6, #0x0
+ bl FUN_0200E6CC
+ add sp, #0x28
+ pop {r3-r7, pc}
+ .balign 4
+_02010AD8: .word FUN_0200F5F8
+_02010ADC: .word 0x000003FF
+_02010AE0: .word FUN_0200F330
+
+ thumb_func_start FUN_02010AE4
+FUN_02010AE4: ; 0x02010AE4
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r0, [r4, #0x24]
+ add r1, r0, #0x1
+ str r1, [r4, #0x24]
+ ldr r0, [r4, #0x20]
+ cmp r1, r0
+ blt _02010B2E
+ mov r0, #0x0
+ str r0, [r4, #0x24]
+ ldr r0, [r4, #0x1c]
+ add r1, r0, #0x1
+ ldr r0, [r4, #0x18]
+ cmp r1, r0
+ bgt _02010B20
+ str r1, [r4, #0x1c]
+ add r0, r4, #0x0
+ ldr r2, [r4, #0x18]
+ add r0, #0xc
+ bl FUN_02010C64
+ add r0, r4, #0x0
+ bl FUN_02010B40
+ ldr r0, _02010B34 ; =FUN_0200F5F8
+ ldr r2, _02010B38 ; =0x000003FF
+ add r1, r4, #0x0
+ bl FUN_0200CA98
+ b _02010B2E
+_02010B20:
+ ldr r0, [r4, #0x34]
+ ldr r1, [r4, #0x8]
+ ldr r2, [r4, #0x2c]
+ bl FUN_0200E6F8
+ mov r0, #0x1
+ pop {r4, pc}
+_02010B2E:
+ mov r0, #0x0
+ pop {r4, pc}
+ nop
+_02010B34: .word FUN_0200F5F8
+_02010B38: .word 0x000003FF
+
+ thumb_func_start FUN_02010B3C
+FUN_02010B3C: ; 0x02010B3C
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02010B40
+FUN_02010B40: ; 0x02010B40
+ push {r3-r7, lr}
+ sub sp, #0x8
+ str r0, [sp, #0x0]
+ ldr r0, [r0, #0xc]
+ ldr r1, _02010C60 ; =0x00003FFF
+ blx _s32_div_f
+ lsl r0, r1, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #0x4]
+ ldr r0, [sp, #0x0]
+ mov r1, #0x0
+ bl FUN_0200F5D8
+ add r7, r0, #0x0
+ ldr r0, [sp, #0x0]
+ mov r1, #0x1
+ bl FUN_0200F5D8
+ add r4, r0, #0x0
+ mov r6, #0x0
+ add r5, r4, #0x0
+_02010B6C:
+ ldr r0, [sp, #0x0]
+ ldr r1, [r0, #0xc]
+ ldr r0, _02010C60 ; =0x00003FFF
+ cmp r1, r0
+ bge _02010BB0
+ mov r1, #0x60
+ ldr r0, [sp, #0x4]
+ sub r1, r1, r6
+ bl FUN_0200F0D0
+ cmp r0, #0x7f
+ ble _02010B86
+ mov r0, #0x7f
+_02010B86:
+ mov r1, #0xbf
+ sub r1, r1, r6
+ lsl r1, r1, #0x1
+ add r3, r7, r1
+ mov r1, #0x80
+ sub r2, r1, r0
+ mov r1, #0x3
+ lsl r1, r1, #0x8
+ strh r2, [r3, r1]
+ mov r1, #0x12
+ mov r2, #0x80
+ lsl r1, r1, #0x6
+ strh r2, [r3, r1]
+ mov r1, #0x3
+ lsl r1, r1, #0x8
+ strh r2, [r5, r1]
+ mov r1, #0x12
+ add r0, #0x80
+ lsl r1, r1, #0x6
+ strh r0, [r5, r1]
+ b _02010BD8
+_02010BB0:
+ mov r0, #0xbf
+ sub r0, r0, r6
+ lsl r0, r0, #0x1
+ mov r1, #0x3
+ add r0, r7, r0
+ mov r2, #0x0
+ lsl r1, r1, #0x8
+ strh r2, [r0, r1]
+ mov r1, #0x12
+ mov r2, #0x80
+ lsl r1, r1, #0x6
+ strh r2, [r0, r1]
+ mov r0, #0x3
+ add r1, r2, #0x0
+ lsl r0, r0, #0x8
+ strh r1, [r5, r0]
+ mov r0, #0x12
+ mov r1, #0xff
+ lsl r0, r0, #0x6
+ strh r1, [r5, r0]
+_02010BD8:
+ add r6, r6, #0x1
+ add r5, r5, #0x2
+ cmp r6, #0x60
+ blt _02010B6C
+ ldr r1, _02010C60 ; =0x00003FFF
+ ldr r0, [sp, #0x4]
+ mov r5, #0x60
+ add r4, #0xc0
+ sub r6, r1, r0
+_02010BEA:
+ ldr r0, [sp, #0x0]
+ ldr r1, [r0, #0xc]
+ ldr r0, _02010C60 ; =0x00003FFF
+ cmp r1, r0
+ bge _02010C1A
+ mov r0, #0xbf
+ sub r0, r0, r5
+ lsl r0, r0, #0x1
+ mov r1, #0x3
+ add r0, r7, r0
+ mov r2, #0x80
+ lsl r1, r1, #0x8
+ strh r2, [r0, r1]
+ mov r1, #0x12
+ lsl r1, r1, #0x6
+ strh r2, [r0, r1]
+ mov r0, #0x3
+ add r1, r2, #0x0
+ lsl r0, r0, #0x8
+ strh r1, [r4, r0]
+ mov r0, #0x12
+ lsl r0, r0, #0x6
+ strh r1, [r4, r0]
+ b _02010C54
+_02010C1A:
+ add r1, r5, #0x0
+ add r0, r6, #0x0
+ sub r1, #0x60
+ bl FUN_0200F0D0
+ add r1, r0, #0x0
+ cmp r1, #0x7f
+ ble _02010C2C
+ mov r1, #0x7f
+_02010C2C:
+ mov r0, #0xbf
+ sub r0, r0, r5
+ lsl r0, r0, #0x1
+ mov r2, #0x3
+ add r0, r7, r0
+ mov r3, #0x0
+ lsl r2, r2, #0x8
+ strh r3, [r0, r2]
+ mov r2, #0x80
+ sub r3, r2, r1
+ mov r2, #0x12
+ lsl r2, r2, #0x6
+ strh r3, [r0, r2]
+ mov r0, #0x3
+ add r1, #0x80
+ lsl r0, r0, #0x8
+ strh r1, [r4, r0]
+ mov r1, #0xff
+ add r0, r2, #0x0
+ strh r1, [r4, r0]
+_02010C54:
+ add r5, r5, #0x1
+ add r4, r4, #0x2
+ cmp r5, #0xc0
+ blt _02010BEA
+ add sp, #0x8
+ pop {r3-r7, pc}
+ .balign 4
+_02010C60: .word 0x00003FFF
+
+ thumb_func_start FUN_02010C64
+FUN_02010C64: ; 0x02010C64
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r3, [r4, #0x8]
+ add r0, r3, #0x0
+ mul r0, r1
+ add r1, r2, #0x0
+ blx _s32_div_f
+ ldr r1, [r4, #0x4]
+ add r0, r0, r1
+ str r0, [r4, #0x0]
+ pop {r4, pc}
+
+ thumb_func_start FUN_02010C7C
+FUN_02010C7C: ; 0x02010C7C
+ push {r3-r5, lr}
+ sub sp, #0x10
+ add r5, r0, #0x0
+ ldr r0, [r5, #0x20]
+ add r4, r1, #0x0
+ mov r1, #0x38
+ bl FUN_02016998
+ str r0, [r5, #0x14]
+ mov r1, #0x0
+ mov r2, #0x38
+ blx Call_FillMemWithValue
+ ldr r0, [r5, #0x10]
+ add r1, r4, #0x0
+ str r0, [sp, #0x0]
+ ldr r0, [r5, #0x18]
+ str r0, [sp, #0x4]
+ ldr r0, [r5, #0x1c]
+ str r0, [sp, #0x8]
+ ldr r0, [r5, #0x20]
+ str r0, [sp, #0xc]
+ ldr r0, [r5, #0x14]
+ ldr r2, [r5, #0x4]
+ ldr r3, [r5, #0x8]
+ bl FUN_02010D1C
+ ldr r0, [r5, #0xc]
+ add r0, r0, #0x1
+ str r0, [r5, #0xc]
+ add sp, #0x10
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_02010CBC
+FUN_02010CBC: ; 0x02010CBC
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ ldr r0, [r5, #0xc]
+ mov r6, #0x0
+ ldr r4, [r5, #0x14]
+ cmp r0, #0x1
+ beq _02010CD4
+ cmp r0, #0x2
+ beq _02010CF0
+ cmp r0, #0x3
+ beq _02010D10
+ b _02010D14
+_02010CD4:
+ add r0, r4, #0x0
+ bl FUN_02010DEC
+ cmp r0, #0x1
+ bne _02010D18
+ ldr r0, [r4, #0x28]
+ ldr r1, [r4, #0x30]
+ ldr r2, [r5, #0x10]
+ bl FUN_0200F62C
+ ldr r0, [r5, #0xc]
+ add r0, r0, #0x1
+ str r0, [r5, #0xc]
+ b _02010D18
+_02010CF0:
+ add r0, r4, #0x0
+ bl FUN_02010E44
+ add r0, r4, #0x0
+ bl FUN_0200F5C0
+ ldr r0, [r5, #0x14]
+ bl FUN_02016A18
+ add r0, r6, #0x0
+ str r0, [r5, #0x14]
+ ldr r0, [r5, #0xc]
+ mov r6, #0x1
+ add r0, r0, #0x1
+ str r0, [r5, #0xc]
+ b _02010D18
+_02010D10:
+ mov r6, #0x1
+ b _02010D18
+_02010D14:
+ bl ErrorHandling
+_02010D18:
+ add r0, r6, #0x0
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_02010D1C
+FUN_02010D1C: ; 0x02010D1C
+ push {r3-r7, lr}
+ sub sp, #0x20
+ add r4, r1, #0x0
+ ldr r1, [r4, #0x0]
+ add r5, r0, #0x0
+ str r1, [r5, #0xc]
+ ldr r1, [r4, #0x0]
+ str r3, [sp, #0x1c]
+ str r1, [r5, #0x10]
+ str r2, [sp, #0x18]
+ ldr r2, [r4, #0x4]
+ ldr r1, [r4, #0x0]
+ ldr r6, [sp, #0x38]
+ sub r1, r2, r1
+ str r1, [r5, #0x14]
+ ldr r3, [sp, #0x44]
+ mov r1, #0x2
+ add r2, r6, #0x0
+ ldr r7, [sp, #0x3c]
+ bl FUN_0200F55C
+ ldr r0, [sp, #0x18]
+ mov r1, #0x0
+ str r0, [r5, #0x18]
+ ldr r0, [sp, #0x1c]
+ str r1, [r5, #0x1c]
+ str r0, [r5, #0x20]
+ str r1, [r5, #0x24]
+ ldr r0, [sp, #0x40]
+ str r7, [r5, #0x30]
+ str r0, [r5, #0x34]
+ ldr r0, [sp, #0x44]
+ str r0, [r5, #0x2c]
+ ldrb r0, [r4, #0xa]
+ str r0, [r5, #0x28]
+ add r0, r5, #0x0
+ bl FUN_02010E48
+ ldr r0, _02010DE0 ; =FUN_0200F5F8
+ ldr r2, _02010DE4 ; =0x000003FF
+ add r1, r5, #0x0
+ bl FUN_0200CA98
+ add r0, r5, #0x0
+ mov r1, #0x0
+ bl FUN_0200F5D8
+ add r0, r5, #0x0
+ mov r1, #0x1
+ bl FUN_0200F5D8
+ str r6, [sp, #0x0]
+ mov r3, #0x0
+ str r3, [sp, #0x4]
+ str r3, [sp, #0x8]
+ mov r0, #0xff
+ str r0, [sp, #0xc]
+ mov r0, #0xc0
+ str r0, [sp, #0x10]
+ ldr r0, [r5, #0x28]
+ str r0, [sp, #0x14]
+ ldrb r1, [r4, #0x8]
+ ldrb r2, [r4, #0x9]
+ add r0, r7, #0x0
+ bl FUN_0200F67C
+ str r6, [sp, #0x0]
+ mov r0, #0x0
+ str r0, [sp, #0x4]
+ str r0, [sp, #0x8]
+ mov r0, #0xff
+ str r0, [sp, #0xc]
+ mov r0, #0xc0
+ str r0, [sp, #0x10]
+ ldr r0, [r5, #0x28]
+ mov r3, #0x1
+ str r0, [sp, #0x14]
+ ldrb r1, [r4, #0x8]
+ ldrb r2, [r4, #0x9]
+ add r0, r7, #0x0
+ bl FUN_0200F67C
+ ldr r3, [r5, #0x28]
+ add r0, r7, #0x0
+ mov r1, #0x3
+ add r2, r6, #0x0
+ bl FUN_0200F6E4
+ ldr r0, [sp, #0x44]
+ ldr r2, _02010DE8 ; =FUN_0200F330
+ str r0, [sp, #0x0]
+ ldr r0, [r5, #0x34]
+ add r1, r5, #0x0
+ add r3, r6, #0x0
+ bl FUN_0200E6CC
+ add sp, #0x20
+ pop {r3-r7, pc}
+ .balign 4
+_02010DE0: .word FUN_0200F5F8
+_02010DE4: .word 0x000003FF
+_02010DE8: .word FUN_0200F330
+
+ thumb_func_start FUN_02010DEC
+FUN_02010DEC: ; 0x02010DEC
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r0, [r4, #0x24]
+ add r1, r0, #0x1
+ str r1, [r4, #0x24]
+ ldr r0, [r4, #0x20]
+ cmp r1, r0
+ blt _02010E36
+ mov r0, #0x0
+ str r0, [r4, #0x24]
+ ldr r0, [r4, #0x1c]
+ add r1, r0, #0x1
+ ldr r0, [r4, #0x18]
+ cmp r1, r0
+ bgt _02010E28
+ str r1, [r4, #0x1c]
+ add r0, r4, #0x0
+ ldr r2, [r4, #0x18]
+ add r0, #0xc
+ bl FUN_02010F14
+ add r0, r4, #0x0
+ bl FUN_02010E48
+ ldr r0, _02010E3C ; =FUN_0200F5F8
+ ldr r2, _02010E40 ; =0x000003FF
+ add r1, r4, #0x0
+ bl FUN_0200CA98
+ b _02010E36
+_02010E28:
+ ldr r0, [r4, #0x34]
+ ldr r1, [r4, #0x8]
+ ldr r2, [r4, #0x2c]
+ bl FUN_0200E6F8
+ mov r0, #0x1
+ pop {r4, pc}
+_02010E36:
+ mov r0, #0x0
+ pop {r4, pc}
+ nop
+_02010E3C: .word FUN_0200F5F8
+_02010E40: .word 0x000003FF
+
+ thumb_func_start FUN_02010E44
+FUN_02010E44: ; 0x02010E44
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02010E48
+FUN_02010E48: ; 0x02010E48
+ push {r4-r7, lr}
+ sub sp, #0x1c
+ add r4, r0, #0x0
+ ldr r1, [r4, #0xc]
+ lsl r1, r1, #0x10
+ lsr r1, r1, #0x10
+ str r1, [sp, #0x8]
+ mov r1, #0x0
+ bl FUN_0200F5D8
+ str r0, [sp, #0x10]
+ add r0, r4, #0x0
+ mov r1, #0x1
+ bl FUN_0200F5D8
+ str r0, [sp, #0xc]
+ add r5, r0, #0x0
+ ldr r1, _02010F10 ; =0x00003FFF
+ ldr r0, [sp, #0x8]
+ ldr r6, [sp, #0x10]
+ sub r0, r1, r0
+ mov r7, #0x0
+ str r0, [sp, #0x4]
+_02010E76:
+ mov r0, #0x60
+ sub r0, r0, r7
+ str r0, [sp, #0x0]
+ ldr r0, [sp, #0x8]
+ ldr r1, [sp, #0x0]
+ bl FUN_0200F0D0
+ add r4, r0, #0x0
+ ldr r0, [sp, #0x4]
+ ldr r1, [sp, #0x0]
+ bl FUN_0200F0D0
+ cmp r4, #0x7f
+ ble _02010E94
+ mov r4, #0x7f
+_02010E94:
+ cmp r0, #0x7f
+ ble _02010E9A
+ mov r0, #0x7f
+_02010E9A:
+ mov r1, #0x80
+ sub r1, r1, r0
+ lsl r1, r1, #0x10
+ mov r2, #0x3
+ asr r1, r1, #0x10
+ lsl r2, r2, #0x8
+ str r1, [sp, #0x14]
+ strh r1, [r6, r2]
+ mov r1, #0x80
+ sub r1, r1, r4
+ lsl r1, r1, #0x10
+ asr r2, r1, #0x10
+ mov r1, #0x12
+ lsl r1, r1, #0x6
+ strh r2, [r6, r1]
+ mov r1, #0xbf
+ sub r1, r1, r7
+ mov r12, r2
+ lsl r1, r1, #0x1
+ ldr r2, [sp, #0x10]
+ add r0, #0x80
+ add r3, r2, r1
+ str r1, [sp, #0x18]
+ mov r2, #0x3
+ ldr r1, [sp, #0x14]
+ lsl r2, r2, #0x8
+ strh r1, [r3, r2]
+ mov r1, #0x12
+ mov r2, r12
+ lsl r1, r1, #0x6
+ strh r2, [r3, r1]
+ add r4, #0x80
+ lsl r1, r4, #0x10
+ asr r2, r1, #0x10
+ mov r1, #0x3
+ lsl r1, r1, #0x8
+ lsl r0, r0, #0x10
+ strh r2, [r5, r1]
+ asr r1, r0, #0x10
+ mov r0, #0x12
+ lsl r0, r0, #0x6
+ strh r1, [r5, r0]
+ ldr r3, [sp, #0xc]
+ ldr r0, [sp, #0x18]
+ add r7, r7, #0x1
+ add r0, r3, r0
+ mov r3, #0x3
+ lsl r3, r3, #0x8
+ strh r2, [r0, r3]
+ mov r2, #0x12
+ lsl r2, r2, #0x6
+ strh r1, [r0, r2]
+ add r6, r6, #0x2
+ add r5, r5, #0x2
+ cmp r7, #0x60
+ blt _02010E76
+ add sp, #0x1c
+ pop {r4-r7, pc}
+ nop
+_02010F10: .word 0x00003FFF
+
+ thumb_func_start FUN_02010F14
+FUN_02010F14: ; 0x02010F14
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r3, [r4, #0x8]
+ add r0, r3, #0x0
+ mul r0, r1
+ add r1, r2, #0x0
+ blx _s32_div_f
+ ldr r1, [r4, #0x4]
+ add r0, r0, r1
+ str r0, [r4, #0x0]
+ pop {r4, pc}
+
+ thumb_func_start FUN_02010F2C
+FUN_02010F2C: ; 0x02010F2C
+ push {r3-r5, lr}
+ sub sp, #0x10
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ mov r1, #0xcd
+ ldr r0, [r5, #0x20]
+ lsl r1, r1, #0x2
+ bl FUN_02016998
+ mov r2, #0xcd
+ str r0, [r5, #0x14]
+ mov r1, #0x0
+ lsl r2, r2, #0x2
+ blx Call_FillMemWithValue
+ ldr r0, [r5, #0x10]
+ add r1, r4, #0x0
+ str r0, [sp, #0x0]
+ ldr r0, [r5, #0x18]
+ str r0, [sp, #0x4]
+ ldr r0, [r5, #0x1c]
+ str r0, [sp, #0x8]
+ ldr r0, [r5, #0x20]
+ str r0, [sp, #0xc]
+ ldr r0, [r5, #0x14]
+ ldr r2, [r5, #0x4]
+ ldr r3, [r5, #0x8]
+ bl FUN_02010FD0
+ ldr r0, [r5, #0xc]
+ add r0, r0, #0x1
+ str r0, [r5, #0xc]
+ add sp, #0x10
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_02010F70
+FUN_02010F70: ; 0x02010F70
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ ldr r0, [r5, #0xc]
+ mov r6, #0x0
+ ldr r4, [r5, #0x14]
+ cmp r0, #0x1
+ beq _02010F88
+ cmp r0, #0x2
+ beq _02010FAA
+ cmp r0, #0x3
+ beq _02010FC4
+ b _02010FC8
+_02010F88:
+ add r0, r4, #0x0
+ bl FUN_020110BC
+ cmp r0, #0x1
+ bne _02010FCC
+ mov r1, #0xc9
+ lsl r1, r1, #0x2
+ ldr r0, [r4, r1]
+ add r1, #0x8
+ ldr r1, [r4, r1]
+ ldr r2, [r5, #0x10]
+ bl FUN_0200F62C
+ ldr r0, [r5, #0xc]
+ add r0, r0, #0x1
+ str r0, [r5, #0xc]
+ b _02010FCC
+_02010FAA:
+ add r0, r4, #0x0
+ bl FUN_0201111C
+ ldr r0, [r5, #0x14]
+ bl FUN_02016A18
+ add r0, r6, #0x0
+ str r0, [r5, #0x14]
+ ldr r0, [r5, #0xc]
+ mov r6, #0x1
+ add r0, r0, #0x1
+ str r0, [r5, #0xc]
+ b _02010FCC
+_02010FC4:
+ mov r6, #0x1
+ b _02010FCC
+_02010FC8:
+ bl ErrorHandling
+_02010FCC:
+ add r0, r6, #0x0
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_02010FD0
+FUN_02010FD0: ; 0x02010FD0
+ push {r3-r7, lr}
+ sub sp, #0x20
+ ldr r7, [sp, #0x38]
+ str r3, [sp, #0x1c]
+ mov r3, #0x0
+ add r4, r1, #0x0
+ str r2, [sp, #0x18]
+ str r3, [sp, #0x0]
+ add r1, r7, #0x0
+ mov r2, #0x1
+ add r5, r0, #0x0
+ ldr r6, [sp, #0x3c]
+ bl FUN_0200F6FC
+ ldrb r0, [r4, #0x5]
+ cmp r0, #0x0
+ bne _0201100A
+ add r0, r5, #0x0
+ mov r1, #0x1
+ mov r2, #0xc0
+ blx Call_FillMemWithValue
+ add r0, r5, #0x0
+ add r0, #0xc0
+ mov r1, #0x1
+ mov r2, #0xc0
+ blx Call_FillMemWithValue
+ b _02011020
+_0201100A:
+ add r0, r5, #0x0
+ mov r1, #0x0
+ mov r2, #0xc0
+ blx Call_FillMemWithValue
+ add r0, r5, #0x0
+ add r0, #0xc0
+ mov r1, #0x0
+ mov r2, #0xc0
+ blx Call_FillMemWithValue
+_02011020:
+ mov r1, #0xc3
+ lsl r1, r1, #0x2
+ ldr r0, [r4, #0x0]
+ add r3, r1, #0x0
+ str r0, [r5, r1]
+ ldrb r2, [r4, #0x4]
+ add r0, r1, #0x4
+ add r3, #0x8
+ str r2, [r5, r0]
+ add r0, r1, #0x0
+ ldrb r2, [r4, #0x5]
+ add r0, #0x18
+ str r2, [r5, r0]
+ add r0, r1, #0x0
+ ldr r2, [sp, #0x44]
+ add r0, #0x1c
+ str r2, [r5, r0]
+ ldr r0, [sp, #0x18]
+ str r0, [r5, r3]
+ add r3, r1, #0x0
+ add r3, #0xc
+ mov r0, #0x0
+ str r0, [r5, r3]
+ add r3, r1, #0x0
+ ldr r0, [sp, #0x1c]
+ add r3, #0x10
+ str r0, [r5, r3]
+ add r3, r1, #0x0
+ add r3, #0x14
+ mov r0, #0x0
+ str r0, [r5, r3]
+ add r0, r1, #0x0
+ add r0, #0x20
+ str r6, [r5, r0]
+ ldr r0, [sp, #0x40]
+ add r1, #0x24
+ str r0, [r5, r1]
+ add r1, r5, #0x0
+ bl FUN_0200F758
+ ldrb r0, [r4, #0x5]
+ cmp r0, #0x1
+ str r7, [sp, #0x0]
+ bne _02011090
+ mov r3, #0x0
+ str r3, [sp, #0x4]
+ str r3, [sp, #0x8]
+ str r3, [sp, #0xc]
+ str r3, [sp, #0x10]
+ str r0, [sp, #0x14]
+ add r0, r6, #0x0
+ mov r1, #0x20
+ mov r2, #0x3f
+ bl FUN_0200F67C
+ b _020110A6
+_02011090:
+ mov r3, #0x0
+ str r3, [sp, #0x4]
+ str r3, [sp, #0x8]
+ str r3, [sp, #0xc]
+ str r3, [sp, #0x10]
+ str r0, [sp, #0x14]
+ add r0, r6, #0x0
+ mov r1, #0x3f
+ mov r2, #0x20
+ bl FUN_0200F67C
+_020110A6:
+ mov r3, #0xc9
+ lsl r3, r3, #0x2
+ ldr r3, [r5, r3]
+ add r0, r6, #0x0
+ mov r1, #0x1
+ add r2, r7, #0x0
+ bl FUN_0200F6E4
+ add sp, #0x20
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_020110BC
+FUN_020110BC: ; 0x020110BC
+ push {r4, lr}
+ mov r2, #0x32
+ add r4, r0, #0x0
+ lsl r2, r2, #0x4
+ ldr r1, [r4, r2]
+ add r1, r1, #0x1
+ str r1, [r4, r2]
+ sub r1, r2, #0x4
+ ldr r3, [r4, r2]
+ ldr r1, [r4, r1]
+ cmp r3, r1
+ blt _02011116
+ mov r1, #0x0
+ str r1, [r4, r2]
+ add r1, r2, #0x0
+ sub r1, #0x8
+ ldr r1, [r4, r1]
+ add r3, r1, #0x1
+ add r1, r2, #0x0
+ sub r1, #0xc
+ ldr r1, [r4, r1]
+ cmp r3, r1
+ bgt _02011102
+ add r1, r2, #0x0
+ sub r1, #0x8
+ ldr r1, [r4, r1]
+ sub r2, #0x8
+ add r1, r1, #0x1
+ str r1, [r4, r2]
+ bl FUN_02011120
+ add r0, r4, #0x0
+ bl FUN_0200F740
+ b _02011116
+_02011102:
+ add r0, r2, #0x0
+ add r0, #0x10
+ add r2, #0x8
+ ldr r0, [r4, r0]
+ ldr r2, [r4, r2]
+ add r1, r4, #0x0
+ bl FUN_0200F770
+ mov r0, #0x1
+ pop {r4, pc}
+_02011116:
+ mov r0, #0x0
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0201111C
+FUN_0201111C: ; 0x0201111C
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02011120
+FUN_02011120: ; 0x02011120
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ mov r0, #0x31
+ lsl r0, r0, #0x4
+ ldr r0, [r5, r0]
+ mov r6, #0x0
+ cmp r0, #0x0
+ ble _0201115A
+ mov r7, #0x31
+ add r4, r6, #0x0
+ lsl r7, r7, #0x4
+_02011136:
+ mov r0, #0xc3
+ lsl r0, r0, #0x2
+ mov r2, #0xc6
+ mov r3, #0xc5
+ ldr r0, [r5, r0]
+ lsl r2, r2, #0x2
+ lsl r3, r3, #0x2
+ ldr r2, [r5, r2]
+ ldr r3, [r5, r3]
+ add r0, r0, r4
+ add r1, r5, #0x0
+ bl FUN_0201115C
+ ldr r0, [r5, r7]
+ add r6, r6, #0x1
+ add r4, r4, #0x3
+ cmp r6, r0
+ blt _02011136
+_0201115A:
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_0201115C
+FUN_0201115C: ; 0x0201115C
+ push {r3-r7, lr}
+ add r7, r0, #0x0
+ ldrb r6, [r7, #0x0]
+ ldrb r4, [r7, #0x1]
+ add r5, r1, #0x0
+ add r1, r3, #0x0
+ sub r0, r4, r6
+ mul r0, r2
+ blx _s32_div_f
+ add r0, r0, r6
+ cmp r6, r4
+ bhi _0201117C
+ add r1, r6, #0x0
+ ldrb r6, [r7, #0x2]
+ b _0201118C
+_0201117C:
+ ldrb r2, [r7, #0x2]
+ add r1, r4, #0x0
+ add r4, r6, #0x0
+ cmp r2, #0x0
+ bne _0201118A
+ mov r6, #0x1
+ b _0201118C
+_0201118A:
+ mov r6, #0x0
+_0201118C:
+ cmp r1, r4
+ bge _020111AA
+ mov r2, #0x0
+ mov r3, #0x1
+_02011194:
+ cmp r1, r0
+ bne _020111A2
+ cmp r6, #0x0
+ bne _020111A0
+ add r6, r3, #0x0
+ b _020111A2
+_020111A0:
+ add r6, r2, #0x0
+_020111A2:
+ strb r6, [r5, r1]
+ add r1, r1, #0x1
+ cmp r1, r4
+ blt _02011194
+_020111AA:
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_020111AC
+FUN_020111AC: ; 0x020111AC
+ push {r3-r5, lr}
+ sub sp, #0x10
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ mov r1, #0xe2
+ ldr r0, [r5, #0x20]
+ lsl r1, r1, #0x2
+ bl FUN_02016998
+ mov r2, #0xe2
+ mov r1, #0x0
+ lsl r2, r2, #0x2
+ str r0, [r5, #0x14]
+ blx Call_FillMemWithValue
+ add r1, r4, #0x0
+ add r1, #0x23
+ ldrb r1, [r1, #0x0]
+ ldr r0, [r5, #0x14]
+ cmp r1, #0x0
+ ldr r1, [r5, #0x10]
+ bne _020111F2
+ str r1, [sp, #0x0]
+ ldr r1, [r5, #0x18]
+ str r1, [sp, #0x4]
+ ldr r1, [r5, #0x1c]
+ str r1, [sp, #0x8]
+ ldr r1, [r5, #0x20]
+ str r1, [sp, #0xc]
+ ldr r2, [r5, #0x4]
+ ldr r3, [r5, #0x8]
+ add r1, r4, #0x0
+ bl FUN_0201127C
+ b _0201120A
+_020111F2:
+ str r1, [sp, #0x0]
+ ldr r1, [r5, #0x18]
+ str r1, [sp, #0x4]
+ ldr r1, [r5, #0x1c]
+ str r1, [sp, #0x8]
+ ldr r1, [r5, #0x20]
+ str r1, [sp, #0xc]
+ ldr r2, [r5, #0x4]
+ ldr r3, [r5, #0x8]
+ add r1, r4, #0x0
+ bl FUN_0201137C
+_0201120A:
+ ldr r0, [r5, #0xc]
+ add r0, r0, #0x1
+ str r0, [r5, #0xc]
+ add sp, #0x10
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_02011214
+FUN_02011214: ; 0x02011214
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ ldr r1, [r5, #0xc]
+ mov r4, #0x0
+ ldr r0, [r5, #0x14]
+ cmp r1, #0x1
+ beq _0201122C
+ cmp r1, #0x2
+ beq _02011258
+ cmp r1, #0x3
+ beq _0201126A
+ b _0201126E
+_0201122C:
+ ldr r1, _02011278 ; =0x00000386
+ ldrb r1, [r0, r1]
+ cmp r1, #0x0
+ bne _0201123C
+ add r1, r5, #0x0
+ bl FUN_02011308
+ b _02011242
+_0201123C:
+ add r1, r5, #0x0
+ bl FUN_020113EC
+_02011242:
+ cmp r0, #0x1
+ bne _02011272
+ ldr r0, [r5, #0x28]
+ ldr r1, [r5, #0x18]
+ ldr r2, [r5, #0x10]
+ bl FUN_0200F62C
+ ldr r0, [r5, #0xc]
+ add r0, r0, #0x1
+ str r0, [r5, #0xc]
+ b _02011272
+_02011258:
+ bl FUN_02016A18
+ add r0, r4, #0x0
+ str r0, [r5, #0x14]
+ ldr r0, [r5, #0xc]
+ mov r4, #0x1
+ add r0, r0, #0x1
+ str r0, [r5, #0xc]
+ b _02011272
+_0201126A:
+ mov r4, #0x1
+ b _02011272
+_0201126E:
+ bl ErrorHandling
+_02011272:
+ add r0, r4, #0x0
+ pop {r3-r5, pc}
+ nop
+_02011278: .word 0x00000386
+
+ thumb_func_start FUN_0201127C
+FUN_0201127C: ; 0x0201127C
+ push {r3-r7, lr}
+ sub sp, #0x8
+ add r4, r1, #0x0
+ add r6, r2, #0x0
+ add r5, r0, #0x0
+ lsl r0, r6, #0xc
+ ldr r2, [r4, #0x2c]
+ add r7, r3, #0x0
+ asr r1, r0, #0x1f
+ asr r3, r2, #0x1f
+ blx _ll_mul
+ add r2, r0, #0x0
+ mov r0, #0x2
+ mov r3, #0x0
+ lsl r0, r0, #0xa
+ add r0, r2, r0
+ adc r1, r3
+ lsl r1, r1, #0x14
+ lsr r0, r0, #0xc
+ orr r0, r1
+ asr r2, r0, #0xc
+ mov r0, #0xe1
+ sub r1, r6, r2
+ lsl r0, r0, #0x2
+ strb r1, [r5, r0]
+ sub r1, r0, #0x4
+ str r4, [r5, r1]
+ add r1, r4, #0x0
+ add r1, #0x23
+ ldrb r1, [r1, #0x0]
+ add r0, r0, #0x2
+ add r3, r7, #0x0
+ strb r1, [r5, r0]
+ ldr r0, [sp, #0x20]
+ add r1, r4, #0x0
+ str r0, [sp, #0x0]
+ ldr r0, [sp, #0x24]
+ str r0, [sp, #0x4]
+ add r0, r5, #0x0
+ bl FUN_0200FE20
+ add r0, r4, #0x0
+ add r0, #0x20
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x0
+ bne _020112EA
+ add r4, #0x23
+ ldrb r3, [r4, #0x0]
+ ldr r0, [sp, #0x24]
+ ldr r2, [sp, #0x20]
+ mov r1, #0x1
+ bl FUN_0200F6E4
+ b _020112F8
+_020112EA:
+ add r4, #0x23
+ ldrb r3, [r4, #0x0]
+ ldr r0, [sp, #0x24]
+ ldr r2, [sp, #0x20]
+ mov r1, #0x2
+ bl FUN_0200F6E4
+_020112F8:
+ ldr r0, _02011304 ; =0x00000385
+ mov r1, #0x0
+ strb r1, [r5, r0]
+ add sp, #0x8
+ pop {r3-r7, pc}
+ nop
+_02011304: .word 0x00000385
+
+ thumb_func_start FUN_02011308
+FUN_02011308: ; 0x02011308
+ push {r4-r6, lr}
+ sub sp, #0x10
+ add r4, r1, #0x0
+ ldr r1, _02011378 ; =0x00000385
+ add r5, r0, #0x0
+ ldrb r1, [r5, r1]
+ mov r6, #0x0
+ cmp r1, #0x0
+ beq _02011324
+ cmp r1, #0x1
+ beq _0201135A
+ cmp r1, #0x2
+ beq _02011370
+ b _02011372
+_02011324:
+ bl FUN_0200FE90
+ cmp r0, #0x1
+ bne _02011372
+ ldr r2, _02011378 ; =0x00000385
+ ldrb r0, [r5, r2]
+ sub r1, r2, #0x5
+ add r0, r0, #0x1
+ strb r0, [r5, r2]
+ ldr r0, [r4, #0x10]
+ sub r2, r2, #0x1
+ str r0, [sp, #0x0]
+ ldr r0, [r4, #0x18]
+ str r0, [sp, #0x4]
+ ldr r0, [r4, #0x1c]
+ str r0, [sp, #0x8]
+ ldr r0, [r4, #0x20]
+ str r0, [sp, #0xc]
+ ldr r1, [r5, r1]
+ add r0, r5, #0x0
+ ldrb r2, [r5, r2]
+ ldr r3, [r4, #0x8]
+ add r0, #0x4c
+ add r1, #0x24
+ bl FUN_02010FD0
+ b _02011372
+_0201135A:
+ add r0, #0x4c
+ bl FUN_020110BC
+ cmp r0, #0x1
+ bne _02011372
+ ldr r0, _02011378 ; =0x00000385
+ mov r6, #0x1
+ ldrb r1, [r5, r0]
+ add r1, r1, #0x1
+ strb r1, [r5, r0]
+ b _02011372
+_02011370:
+ mov r6, #0x1
+_02011372:
+ add r0, r6, #0x0
+ add sp, #0x10
+ pop {r4-r6, pc}
+ .balign 4
+_02011378: .word 0x00000385
+
+ thumb_func_start FUN_0201137C
+FUN_0201137C: ; 0x0201137C
+ push {r3-r7, lr}
+ sub sp, #0x10
+ add r4, r1, #0x0
+ add r6, r2, #0x0
+ add r5, r0, #0x0
+ lsl r0, r6, #0xc
+ ldr r2, [r4, #0x2c]
+ add r7, r3, #0x0
+ asr r1, r0, #0x1f
+ asr r3, r2, #0x1f
+ blx _ll_mul
+ add r2, r0, #0x0
+ mov r0, #0x2
+ mov r3, #0x0
+ lsl r0, r0, #0xa
+ add r0, r2, r0
+ adc r1, r3
+ lsl r1, r1, #0x14
+ lsr r0, r0, #0xc
+ orr r0, r1
+ mov r1, #0xe1
+ asr r0, r0, #0xc
+ lsl r1, r1, #0x2
+ strb r0, [r5, r1]
+ ldrb r0, [r5, r1]
+ sub r2, r6, r0
+ sub r0, r1, #0x4
+ str r4, [r5, r0]
+ add r4, #0x23
+ add r0, r1, #0x2
+ ldrb r3, [r4, #0x0]
+ sub r1, r1, #0x4
+ strb r3, [r5, r0]
+ ldr r0, [sp, #0x28]
+ add r3, r7, #0x0
+ str r0, [sp, #0x0]
+ ldr r0, [sp, #0x2c]
+ str r0, [sp, #0x4]
+ ldr r0, [sp, #0x30]
+ str r0, [sp, #0x8]
+ ldr r0, [sp, #0x34]
+ str r0, [sp, #0xc]
+ ldr r1, [r5, r1]
+ add r0, r5, #0x0
+ add r0, #0x4c
+ add r1, #0x24
+ bl FUN_02010FD0
+ ldr r0, _020113E8 ; =0x00000385
+ mov r1, #0x0
+ strb r1, [r5, r0]
+ add sp, #0x10
+ pop {r3-r7, pc}
+ .balign 4
+_020113E8: .word 0x00000385
+
+ thumb_func_start FUN_020113EC
+FUN_020113EC: ; 0x020113EC
+ push {r4-r6, lr}
+ sub sp, #0x8
+ add r4, r1, #0x0
+ ldr r1, _0201147C ; =0x00000385
+ add r5, r0, #0x0
+ ldrb r1, [r5, r1]
+ mov r6, #0x0
+ cmp r1, #0x0
+ beq _02011408
+ cmp r1, #0x1
+ beq _02011460
+ cmp r1, #0x2
+ beq _02011474
+ b _02011476
+_02011408:
+ add r0, #0x4c
+ bl FUN_020110BC
+ cmp r0, #0x1
+ bne _02011476
+ ldr r2, _0201147C ; =0x00000385
+ ldrb r0, [r5, r2]
+ sub r1, r2, #0x5
+ add r0, r0, #0x1
+ strb r0, [r5, r2]
+ ldr r0, [r4, #0x10]
+ sub r2, r2, #0x1
+ str r0, [sp, #0x0]
+ ldr r0, [r4, #0x18]
+ str r0, [sp, #0x4]
+ ldrb r2, [r5, r2]
+ ldr r1, [r5, r1]
+ ldr r3, [r4, #0x8]
+ add r0, r5, #0x0
+ bl FUN_0200FE20
+ mov r0, #0xe
+ lsl r0, r0, #0x6
+ ldr r3, [r5, r0]
+ add r0, r3, #0x0
+ add r0, #0x20
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x0
+ ldr r0, [r4, #0x18]
+ bne _02011452
+ add r3, #0x23
+ ldrb r3, [r3, #0x0]
+ ldr r2, [r4, #0x10]
+ mov r1, #0x1
+ bl FUN_0200F6E4
+ b _02011476
+_02011452:
+ add r3, #0x23
+ ldrb r3, [r3, #0x0]
+ ldr r2, [r4, #0x10]
+ mov r1, #0x2
+ bl FUN_0200F6E4
+ b _02011476
+_02011460:
+ bl FUN_0200FE90
+ cmp r0, #0x1
+ bne _02011476
+ ldr r0, _0201147C ; =0x00000385
+ mov r6, #0x1
+ ldrb r1, [r5, r0]
+ add r1, r1, #0x1
+ strb r1, [r5, r0]
+ b _02011476
+_02011474:
+ mov r6, #0x1
+_02011476:
+ add r0, r6, #0x0
+ add sp, #0x8
+ pop {r4-r6, pc}
+ .balign 4
+_0201147C: .word 0x00000385
+
+ thumb_func_start FUN_02011480
+FUN_02011480: ; 0x02011480
+ cmp r1, #0x0
+ ldr r1, _020114A4 ; =0xFFFF1FFF
+ bne _02011496
+ mov r3, #0x1
+ lsl r3, r3, #0x1a
+ ldr r2, [r3, #0x0]
+ lsl r0, r0, #0xd
+ and r1, r2
+ orr r0, r1
+ str r0, [r3, #0x0]
+ bx lr
+_02011496:
+ ldr r3, _020114A8 ; =0x04001000
+ lsl r0, r0, #0xd
+ ldr r2, [r3, #0x0]
+ and r1, r2
+ orr r0, r1
+ str r0, [r3, #0x0]
+ bx lr
+ .balign 4
+_020114A4: .word 0xFFFF1FFF
+_020114A8: .word 0x04001000
+
+ thumb_func_start FUN_020114AC
+FUN_020114AC: ; 0x020114AC
+ push {r3-r4}
+ cmp r2, #0x0
+ bne _020114EE
+ cmp r3, #0x0
+ bne _020114D2
+ ldr r2, _02011528 ; =0x04000048
+ ldrh r3, [r2, #0x0]
+ mov r2, #0x3f
+ bic r3, r2
+ add r2, r3, #0x0
+ orr r2, r0
+ cmp r1, #0x0
+ beq _020114CA
+ mov r0, #0x20
+ orr r2, r0
+_020114CA:
+ ldr r0, _02011528 ; =0x04000048
+ strh r2, [r0, #0x0]
+ pop {r3-r4}
+ bx lr
+_020114D2:
+ ldr r2, _0201152C ; =0x04001048
+ ldrh r3, [r2, #0x0]
+ mov r2, #0x3f
+ bic r3, r2
+ add r2, r3, #0x0
+ orr r2, r0
+ cmp r1, #0x0
+ beq _020114E6
+ mov r0, #0x20
+ orr r2, r0
+_020114E6:
+ ldr r0, _0201152C ; =0x04001048
+ strh r2, [r0, #0x0]
+ pop {r3-r4}
+ bx lr
+_020114EE:
+ cmp r3, #0x0
+ ldr r2, _02011530 ; =0xFFFFC0FF
+ bne _0201150E
+ ldr r4, _02011528 ; =0x04000048
+ lsl r0, r0, #0x8
+ ldrh r3, [r4, #0x0]
+ and r2, r3
+ orr r2, r0
+ cmp r1, #0x0
+ beq _02011506
+ lsr r0, r4, #0xd
+ orr r2, r0
+_02011506:
+ ldr r0, _02011528 ; =0x04000048
+ strh r2, [r0, #0x0]
+ pop {r3-r4}
+ bx lr
+_0201150E:
+ ldr r4, _0201152C ; =0x04001048
+ lsl r0, r0, #0x8
+ ldrh r3, [r4, #0x0]
+ and r2, r3
+ orr r2, r0
+ cmp r1, #0x0
+ beq _02011520
+ lsr r0, r4, #0xd
+ orr r2, r0
+_02011520:
+ ldr r0, _0201152C ; =0x04001048
+ strh r2, [r0, #0x0]
+ pop {r3-r4}
+ bx lr
+ .balign 4
+_02011528: .word 0x04000048
+_0201152C: .word 0x04001048
+_02011530: .word 0xFFFFC0FF
+
+ thumb_func_start FUN_02011534
+FUN_02011534: ; 0x02011534
+ cmp r2, #0x0
+ bne _02011552
+ ldr r2, _0201156C ; =0x0400004A
+ ldrh r3, [r2, #0x0]
+ mov r2, #0x3f
+ bic r3, r2
+ add r2, r3, #0x0
+ orr r2, r0
+ cmp r1, #0x0
+ beq _0201154C
+ mov r0, #0x20
+ orr r2, r0
+_0201154C:
+ ldr r0, _0201156C ; =0x0400004A
+ strh r2, [r0, #0x0]
+ bx lr
+_02011552:
+ ldr r2, _02011570 ; =0x0400104A
+ ldrh r3, [r2, #0x0]
+ mov r2, #0x3f
+ bic r3, r2
+ add r2, r3, #0x0
+ orr r2, r0
+ cmp r1, #0x0
+ beq _02011566
+ mov r0, #0x20
+ orr r2, r0
+_02011566:
+ ldr r0, _02011570 ; =0x0400104A
+ strh r2, [r0, #0x0]
+ bx lr
+ .balign 4
+_0201156C: .word 0x0400004A
+_02011570: .word 0x0400104A
+
+ thumb_func_start FUN_02011574
+FUN_02011574: ; 0x02011574
+ push {r4-r5}
+ add r4, r2, #0x0
+ add r2, r3, #0x0
+ ldr r3, [sp, #0x8]
+ cmp r3, #0x0
+ bne _020115D2
+ ldr r3, [sp, #0xc]
+ cmp r3, #0x0
+ bne _020115AC
+ lsl r0, r0, #0x8
+ mov r3, #0xff
+ add r5, r0, #0x0
+ lsl r3, r3, #0x8
+ lsl r0, r4, #0x18
+ and r5, r3
+ lsl r1, r1, #0x8
+ and r3, r1
+ lsl r1, r2, #0x18
+ lsr r1, r1, #0x18
+ lsr r0, r0, #0x18
+ add r4, r5, #0x0
+ orr r4, r0
+ ldr r0, _02011624 ; =0x04000040
+ orr r1, r3
+ strh r4, [r0, #0x0]
+ strh r1, [r0, #0x4]
+ pop {r4-r5}
+ bx lr
+_020115AC:
+ lsl r0, r0, #0x8
+ mov r3, #0xff
+ add r5, r0, #0x0
+ lsl r3, r3, #0x8
+ lsl r0, r4, #0x18
+ and r5, r3
+ lsl r1, r1, #0x8
+ and r3, r1
+ lsl r1, r2, #0x18
+ lsr r1, r1, #0x18
+ lsr r0, r0, #0x18
+ add r4, r5, #0x0
+ orr r4, r0
+ ldr r0, _02011628 ; =0x04001040
+ orr r1, r3
+ strh r4, [r0, #0x0]
+ strh r1, [r0, #0x4]
+ pop {r4-r5}
+ bx lr
+_020115D2:
+ ldr r3, [sp, #0xc]
+ cmp r3, #0x0
+ bne _020115FE
+ lsl r0, r0, #0x8
+ mov r3, #0xff
+ add r5, r0, #0x0
+ lsl r3, r3, #0x8
+ lsl r0, r4, #0x18
+ and r5, r3
+ lsl r1, r1, #0x8
+ and r3, r1
+ lsl r1, r2, #0x18
+ lsr r1, r1, #0x18
+ lsr r0, r0, #0x18
+ add r4, r5, #0x0
+ orr r4, r0
+ ldr r0, _0201162C ; =0x04000042
+ orr r1, r3
+ strh r4, [r0, #0x0]
+ strh r1, [r0, #0x4]
+ pop {r4-r5}
+ bx lr
+_020115FE:
+ lsl r0, r0, #0x8
+ mov r3, #0xff
+ add r5, r0, #0x0
+ lsl r3, r3, #0x8
+ lsl r0, r4, #0x18
+ and r5, r3
+ lsl r1, r1, #0x8
+ and r3, r1
+ lsl r1, r2, #0x18
+ lsr r1, r1, #0x18
+ lsr r0, r0, #0x18
+ add r4, r5, #0x0
+ orr r4, r0
+ ldr r0, _02011630 ; =0x04001042
+ orr r1, r3
+ strh r4, [r0, #0x0]
+ strh r1, [r0, #0x4]
+ pop {r4-r5}
+ bx lr
+ .balign 4
+_02011624: .word 0x04000040
+_02011628: .word 0x04001040
+_0201162C: .word 0x04000042
+_02011630: .word 0x04001042
+
+ thumb_func_start FUN_02011634
+FUN_02011634: ; 0x02011634
+ push {r4, lr}
+ lsl r3, r2, #0x3
+ add r4, r0, r3
+ str r1, [r0, r3]
+ str r2, [r4, #0x4]
+ ldr r0, _0201164C ; =FUN_020116CC
+ add r1, r4, #0x0
+ mov r2, #0x1
+ bl FUN_0200CA98
+ pop {r4, pc}
+ nop
+_0201164C: .word FUN_020116CC
+
+ thumb_func_start FUN_02011650
+FUN_02011650: ; 0x02011650
+ push {r4-r6, lr}
+ ldr r5, [sp, #0x10]
+ add r0, #0x10
+ lsl r4, r5, #0x5
+ add r6, r0, r4
+ lsl r0, r3, #0x4
+ add r4, r6, r0
+ str r1, [r6, r0]
+ str r2, [r4, #0x4]
+ str r3, [r4, #0x8]
+ ldr r0, _02011674 ; =FUN_020116E0
+ add r1, r4, #0x0
+ mov r2, #0x1
+ str r5, [r4, #0xc]
+ bl FUN_0200CA98
+ pop {r4-r6, pc}
+ nop
+_02011674: .word FUN_020116E0
+
+ thumb_func_start FUN_02011678
+FUN_02011678: ; 0x02011678
+ push {r3-r5, lr}
+ mov r4, #0xc
+ add r0, #0x68
+ mul r4, r3
+ add r5, r0, r4
+ str r1, [r0, r4]
+ str r2, [r5, #0x4]
+ ldr r0, _02011694 ; =FUN_020116FC
+ add r1, r5, #0x0
+ mov r2, #0x1
+ str r3, [r5, #0x8]
+ bl FUN_0200CA98
+ pop {r3-r5, pc}
+ .balign 4
+_02011694: .word FUN_020116FC
+
+ thumb_func_start FUN_02011698
+FUN_02011698: ; 0x02011698
+ push {r3-r7, lr}
+ ldr r5, [sp, #0x20]
+ add r7, r1, #0x0
+ add r0, #0x80
+ lsl r1, r5, #0x5
+ add r6, r0, r1
+ add r4, r2, #0x0
+ ldr r0, [sp, #0x1c]
+ add r2, r3, #0x0
+ lsl r3, r0, #0x4
+ add r1, r6, r3
+ strh r7, [r6, r3]
+ strh r4, [r1, #0x2]
+ strh r2, [r1, #0x4]
+ ldr r2, [sp, #0x18]
+ strh r2, [r1, #0x6]
+ str r0, [r1, #0x8]
+ ldr r0, _020116C8 ; =FUN_02011714
+ mov r2, #0x1
+ str r5, [r1, #0xc]
+ bl FUN_0200CA98
+ pop {r3-r7, pc}
+ nop
+_020116C8: .word FUN_02011714
+
+ thumb_func_start FUN_020116CC
+FUN_020116CC: ; 0x020116CC
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldmia r1!, {r0-r1}
+ bl FUN_02011480
+ add r0, r4, #0x0
+ bl FUN_0200CAB4
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_020116E0
+FUN_020116E0: ; 0x020116E0
+ push {r4, lr}
+ add r3, r1, #0x0
+ add r4, r0, #0x0
+ ldr r0, [r3, #0x0]
+ ldr r1, [r3, #0x4]
+ ldr r2, [r3, #0x8]
+ ldr r3, [r3, #0xc]
+ bl FUN_020114AC
+ add r0, r4, #0x0
+ bl FUN_0200CAB4
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_020116FC
+FUN_020116FC: ; 0x020116FC
+ push {r4, lr}
+ add r2, r1, #0x0
+ add r4, r0, #0x0
+ ldr r0, [r2, #0x0]
+ ldr r1, [r2, #0x4]
+ ldr r2, [r2, #0x8]
+ bl FUN_02011534
+ add r0, r4, #0x0
+ bl FUN_0200CAB4
+ pop {r4, pc}
+
+ thumb_func_start FUN_02011714
+FUN_02011714: ; 0x02011714
+ push {r3-r5, lr}
+ sub sp, #0x8
+ add r3, r1, #0x0
+ add r4, r0, #0x0
+ ldr r0, [r3, #0x8]
+ mov r1, #0x2
+ str r0, [sp, #0x0]
+ ldr r0, [r3, #0xc]
+ mov r2, #0x4
+ str r0, [sp, #0x4]
+ mov r0, #0x0
+ mov r5, #0x6
+ ldrsh r0, [r3, r0]
+ ldrsh r1, [r3, r1]
+ ldrsh r2, [r3, r2]
+ ldrsh r3, [r3, r5]
+ bl FUN_02011574
+ add r0, r4, #0x0
+ bl FUN_0200CAB4
+ add sp, #0x8
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_02011744
+FUN_02011744: ; 0x02011744
+ push {r4-r7, lr}
+ sub sp, #0xc
+ add r7, r1, #0x0
+ str r0, [sp, #0x4]
+ add r0, r7, #0x0
+ mov r1, #0x68
+ bl FUN_02016998
+ str r0, [sp, #0x8]
+ cmp r0, #0x0
+ bne _0201175E
+ bl ErrorHandling
+_0201175E:
+ ldr r4, [sp, #0x8]
+ ldr r5, [sp, #0x8]
+ mov r6, #0x0
+ add r4, #0x30
+_02011766:
+ mov r0, #0x23
+ add r1, r6, #0x0
+ mov r2, #0x0
+ add r3, r4, #0x0
+ str r7, [sp, #0x0]
+ bl FUN_02006C30
+ str r0, [r5, #0x0]
+ cmp r0, #0x0
+ bne _0201177E
+ bl ErrorHandling
+_0201177E:
+ add r6, r6, #0x1
+ add r4, r4, #0x4
+ add r5, r5, #0x4
+ cmp r6, #0xc
+ blt _02011766
+ ldr r0, [sp, #0x4]
+ mov r1, #0x14
+ add r4, r0, #0x0
+ mul r4, r1
+ add r0, r7, #0x0
+ add r1, r4, #0x0
+ bl FUN_02016998
+ ldr r1, [sp, #0x8]
+ cmp r0, #0x0
+ str r0, [r1, #0x60]
+ bne _020117A4
+ bl ErrorHandling
+_020117A4:
+ ldr r1, [sp, #0x4]
+ ldr r0, [sp, #0x8]
+ add r2, r4, #0x0
+ str r1, [r0, #0x64]
+ ldr r0, [r0, #0x60]
+ mov r1, #0x0
+ blx Call_FillMemWithValue
+ ldr r0, [sp, #0x8]
+ add sp, #0xc
+ pop {r4-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_020117BC
+FUN_020117BC: ; 0x020117BC
+ push {r4-r6, lr}
+ add r6, r0, #0x0
+ bne _020117C6
+ bl ErrorHandling
+_020117C6:
+ mov r4, #0x0
+ add r5, r6, #0x0
+_020117CA:
+ ldr r0, [r5, #0x0]
+ bl FUN_02016A18
+ add r4, r4, #0x1
+ add r5, r5, #0x4
+ cmp r4, #0xc
+ blt _020117CA
+ ldr r0, [r6, #0x60]
+ bl FUN_02016A18
+ add r0, r6, #0x0
+ bl FUN_02016A18
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_020117E8
+FUN_020117E8: ; 0x020117E8
+ push {r4-r7, lr}
+ sub sp, #0x1c
+ add r5, r0, #0x0
+ bne _020117F4
+ bl ErrorHandling
+_020117F4:
+ ldr r0, [r5, #0x0]
+ bl FUN_02011BA0
+ add r4, r0, #0x0
+ bne _02011802
+ bl ErrorHandling
+_02011802:
+ ldr r0, [r5, #0x10]
+ add r3, sp, #0x8
+ str r0, [r4, #0x8]
+ ldr r0, [r5, #0x18]
+ str r0, [r4, #0xc]
+ ldr r0, [r5, #0x1c]
+ str r0, [r4, #0x10]
+ str r3, [sp, #0x14]
+ str r3, [sp, #0x18]
+ ldr r1, [r5, #0x4]
+ ldr r2, [r5, #0x2c]
+ ldrb r0, [r1, #0x7]
+ ldrb r1, [r1, #0x8]
+ bl FUN_02011CA4
+ add r6, r0, #0x0
+ mov r1, #0x24
+ ldr r0, [r5, #0x2c]
+ mul r1, r6
+ bl FUN_020169D8
+ add r7, r0, #0x0
+ mov r1, #0xc
+ ldr r0, [r5, #0x2c]
+ mul r1, r6
+ bl FUN_02016998
+ str r0, [r4, #0x0]
+ str r6, [r4, #0x4]
+ ldr r0, [r5, #0x28]
+ add r1, sp, #0x8
+ str r0, [sp, #0x0]
+ ldr r0, [r5, #0x2c]
+ add r2, r7, #0x0
+ str r0, [sp, #0x4]
+ ldr r0, [r5, #0x4]
+ ldr r3, [r5, #0x14]
+ bl FUN_02011D2C
+ add r0, r5, #0x0
+ add r1, sp, #0x8
+ add r2, r7, #0x0
+ add r3, r4, #0x0
+ bl FUN_02011EAC
+ add r0, r7, #0x0
+ bl FUN_02016A18
+ add r0, sp, #0x8
+ bl FUN_02011FDC
+ add r0, r4, #0x0
+ add sp, #0x1c
+ pop {r4-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_02011870
+FUN_02011870: ; 0x02011870
+ push {r4, lr}
+ add r4, r0, #0x0
+ bne _0201187A
+ bl ErrorHandling
+_0201187A:
+ ldr r0, [r4, #0x0]
+ cmp r0, #0x0
+ bne _02011884
+ bl ErrorHandling
+_02011884:
+ add r0, r4, #0x0
+ bl FUN_02011F00
+ ldr r0, [r4, #0x0]
+ bl FUN_02016A18
+ add r0, r4, #0x0
+ bl FUN_02011B90
+ pop {r4, pc}
+
+ thumb_func_start FUN_02011898
+FUN_02011898: ; 0x02011898
+ push {r4-r5, lr}
+ sub sp, #0x14
+ add r3, sp, #0x0
+ add r5, r0, #0x0
+ str r3, [sp, #0xc]
+ str r3, [sp, #0x10]
+ add r4, r1, #0x0
+ ldrb r0, [r5, #0x7]
+ ldrb r1, [r5, #0x8]
+ bl FUN_02011CA4
+ add r0, sp, #0x0
+ add r1, r4, #0x0
+ bl FUN_02011E58
+ add r4, r0, #0x0
+ add r0, sp, #0x0
+ bl FUN_02011FDC
+ add r0, r4, #0x0
+ add sp, #0x14
+ pop {r4-r5, pc}
+
+ thumb_func_start FUN_020118C4
+FUN_020118C4: ; 0x020118C4
+ push {r3-r7, lr}
+ sub sp, #0x10
+ add r5, r0, #0x0
+ add r7, r2, #0x0
+ str r1, [sp, #0x0]
+ cmp r5, #0x0
+ bne _020118D6
+ bl ErrorHandling
+_020118D6:
+ ldr r0, [sp, #0x0]
+ str r0, [r5, #0xc]
+ str r7, [r5, #0x10]
+ lsl r0, r0, #0xc
+ str r0, [sp, #0x0]
+ ldr r0, [r5, #0x8]
+ lsl r7, r7, #0xc
+ cmp r0, #0x0
+ beq _020118F8
+ bl FUN_0202011C
+ ldr r2, [r0, #0x0]
+ ldr r1, [sp, #0x0]
+ ldr r0, [r0, #0x4]
+ add r1, r1, r2
+ str r1, [sp, #0x0]
+ add r7, r7, r0
+_020118F8:
+ mov r6, #0x0
+ str r6, [sp, #0xc]
+ ldr r0, [r5, #0x4]
+ cmp r0, #0x0
+ ble _02011932
+ add r4, r6, #0x0
+_02011904:
+ ldr r0, [r5, #0x0]
+ add r0, r0, r4
+ ldr r0, [r0, #0x4]
+ lsl r1, r0, #0xc
+ ldr r0, [sp, #0x0]
+ add r0, r0, r1
+ str r0, [sp, #0x4]
+ ldr r0, [r5, #0x0]
+ add r1, sp, #0x4
+ add r0, r0, r4
+ ldr r0, [r0, #0x8]
+ lsl r0, r0, #0xc
+ add r0, r7, r0
+ str r0, [sp, #0x8]
+ ldr r0, [r5, #0x0]
+ ldr r0, [r0, r4]
+ bl FUN_02020044
+ ldr r0, [r5, #0x4]
+ add r6, r6, #0x1
+ add r4, #0xc
+ cmp r6, r0
+ blt _02011904
+_02011932:
+ add sp, #0x10
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_02011938
+FUN_02011938: ; 0x02011938
+ push {r3-r7, lr}
+ sub sp, #0x10
+ add r5, r0, #0x0
+ bne _02011944
+ bl ErrorHandling
+_02011944:
+ ldr r0, [r5, #0x8]
+ cmp r0, #0x0
+ beq _0201199E
+ ldr r1, [r5, #0xc]
+ lsl r1, r1, #0xc
+ str r1, [sp, #0x0]
+ ldr r1, [r5, #0x10]
+ lsl r7, r1, #0xc
+ bl FUN_0202011C
+ ldr r2, [r0, #0x0]
+ ldr r0, [r0, #0x4]
+ mov r6, #0x0
+ ldr r1, [sp, #0x0]
+ str r6, [sp, #0xc]
+ add r7, r7, r0
+ add r1, r1, r2
+ ldr r0, [r5, #0x4]
+ str r1, [sp, #0x0]
+ cmp r0, #0x0
+ ble _0201199E
+ add r4, r6, #0x0
+_02011970:
+ ldr r0, [r5, #0x0]
+ add r0, r0, r4
+ ldr r0, [r0, #0x4]
+ lsl r1, r0, #0xc
+ ldr r0, [sp, #0x0]
+ add r0, r0, r1
+ str r0, [sp, #0x4]
+ ldr r0, [r5, #0x0]
+ add r1, sp, #0x4
+ add r0, r0, r4
+ ldr r0, [r0, #0x8]
+ lsl r0, r0, #0xc
+ add r0, r7, r0
+ str r0, [sp, #0x8]
+ ldr r0, [r5, #0x0]
+ ldr r0, [r0, r4]
+ bl FUN_02020044
+ ldr r0, [r5, #0x4]
+ add r6, r6, #0x1
+ add r4, #0xc
+ cmp r6, r0
+ blt _02011970
+_0201199E:
+ add sp, #0x10
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_020119A4
+FUN_020119A4: ; 0x020119A4
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ add r6, r2, #0x0
+ cmp r5, #0x0
+ bne _020119B4
+ bl ErrorHandling
+_020119B4:
+ cmp r4, #0x0
+ bne _020119BC
+ bl ErrorHandling
+_020119BC:
+ cmp r6, #0x0
+ bne _020119C4
+ bl ErrorHandling
+_020119C4:
+ ldr r0, [r5, #0xc]
+ str r0, [r4, #0x0]
+ ldr r0, [r5, #0x10]
+ str r0, [r6, #0x0]
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_020119D0
+FUN_020119D0: ; 0x020119D0
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ add r7, r1, #0x0
+ cmp r5, #0x0
+ bne _020119DE
+ bl ErrorHandling
+_020119DE:
+ ldr r0, [r5, #0x4]
+ mov r6, #0x0
+ cmp r0, #0x0
+ ble _020119FC
+ add r4, r6, #0x0
+_020119E8:
+ ldr r0, [r5, #0x0]
+ add r1, r7, #0x0
+ ldr r0, [r0, r4]
+ bl FUN_020200A0
+ ldr r0, [r5, #0x4]
+ add r6, r6, #0x1
+ add r4, #0xc
+ cmp r6, r0
+ blt _020119E8
+_020119FC:
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_02011A00
+FUN_02011A00: ; 0x02011A00
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ add r7, r1, #0x0
+ cmp r5, #0x0
+ bne _02011A0E
+ bl ErrorHandling
+_02011A0E:
+ ldr r0, [r5, #0x4]
+ mov r6, #0x0
+ cmp r0, #0x0
+ ble _02011A2C
+ add r4, r6, #0x0
+_02011A18:
+ ldr r0, [r5, #0x0]
+ add r1, r7, #0x0
+ ldr r0, [r0, r4]
+ bl FUN_02020238
+ ldr r0, [r5, #0x4]
+ add r6, r6, #0x1
+ add r4, #0xc
+ cmp r6, r0
+ blt _02011A18
+_02011A2C:
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_02011A30
+FUN_02011A30: ; 0x02011A30
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ add r7, r1, #0x0
+ cmp r5, #0x0
+ bne _02011A3E
+ bl ErrorHandling
+_02011A3E:
+ ldr r0, [r5, #0x4]
+ mov r6, #0x0
+ cmp r0, #0x0
+ ble _02011A5C
+ add r4, r6, #0x0
+_02011A48:
+ ldr r0, [r5, #0x0]
+ add r1, r7, #0x0
+ ldr r0, [r0, r4]
+ bl FUN_02020310
+ ldr r0, [r5, #0x4]
+ add r6, r6, #0x1
+ add r4, #0xc
+ cmp r6, r0
+ blt _02011A48
+_02011A5C:
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_02011A60
+FUN_02011A60: ; 0x02011A60
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ add r7, r1, #0x0
+ cmp r5, #0x0
+ bne _02011A6E
+ bl ErrorHandling
+_02011A6E:
+ ldr r0, [r5, #0x4]
+ mov r6, #0x0
+ cmp r0, #0x0
+ ble _02011A8C
+ add r4, r6, #0x0
+_02011A78:
+ ldr r0, [r5, #0x0]
+ add r1, r7, #0x0
+ ldr r0, [r0, r4]
+ bl FUN_02020248
+ ldr r0, [r5, #0x4]
+ add r6, r6, #0x1
+ add r4, #0xc
+ cmp r6, r0
+ blt _02011A78
+_02011A8C:
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_02011A90
+FUN_02011A90: ; 0x02011A90
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ add r7, r1, #0x0
+ cmp r5, #0x0
+ bne _02011A9E
+ bl ErrorHandling
+_02011A9E:
+ ldr r0, [r5, #0x4]
+ mov r6, #0x0
+ cmp r0, #0x0
+ ble _02011ABC
+ add r4, r6, #0x0
+_02011AA8:
+ ldr r0, [r5, #0x0]
+ add r1, r7, #0x0
+ ldr r0, [r0, r4]
+ bl FUN_020202A8
+ ldr r0, [r5, #0x4]
+ add r6, r6, #0x1
+ add r4, #0xc
+ cmp r6, r0
+ blt _02011AA8
+_02011ABC:
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_02011AC0
+FUN_02011AC0: ; 0x02011AC0
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ add r7, r1, #0x0
+ cmp r5, #0x0
+ bne _02011ACE
+ bl ErrorHandling
+_02011ACE:
+ ldr r0, [r5, #0x4]
+ mov r6, #0x0
+ cmp r0, #0x0
+ ble _02011AEC
+ add r4, r6, #0x0
+_02011AD8:
+ ldr r0, [r5, #0x0]
+ add r1, r7, #0x0
+ ldr r0, [r0, r4]
+ bl FUN_020202DC
+ ldr r0, [r5, #0x4]
+ add r6, r6, #0x1
+ add r4, #0xc
+ cmp r6, r0
+ blt _02011AD8
+_02011AEC:
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_02011AF0
+FUN_02011AF0: ; 0x02011AF0
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ add r7, r1, #0x0
+ cmp r5, #0x0
+ bne _02011AFE
+ bl ErrorHandling
+_02011AFE:
+ ldr r0, [r5, #0x4]
+ mov r6, #0x0
+ cmp r0, #0x0
+ ble _02011B1C
+ add r4, r6, #0x0
+_02011B08:
+ ldr r0, [r5, #0x0]
+ add r1, r7, #0x0
+ ldr r0, [r0, r4]
+ bl FUN_02020398
+ ldr r0, [r5, #0x4]
+ add r6, r6, #0x1
+ add r4, #0xc
+ cmp r6, r0
+ blt _02011B08
+_02011B1C:
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_02011B20
+FUN_02011B20: ; 0x02011B20
+ push {r4-r7, lr}
+ sub sp, #0xc
+ add r6, r0, #0x0
+ ldr r0, [sp, #0x20]
+ add r7, r1, #0x0
+ str r0, [sp, #0x20]
+ ldr r0, [sp, #0x24]
+ ldrb r1, [r6, #0x7]
+ str r0, [sp, #0x24]
+ add r0, r3, #0x0
+ add r0, r7, r0
+ str r2, [sp, #0x0]
+ str r3, [sp, #0x4]
+ cmp r1, r0
+ bge _02011B42
+ bl ErrorHandling
+_02011B42:
+ ldrb r2, [r6, #0x8]
+ ldr r1, [sp, #0x0]
+ ldr r0, [sp, #0x20]
+ add r0, r1, r0
+ cmp r2, r0
+ bge _02011B52
+ bl ErrorHandling
+_02011B52:
+ ldr r0, [sp, #0x0]
+ mov r4, #0x0
+ cmp r0, #0x0
+ ble _02011B8A
+ lsl r0, r7, #0x5
+ add r5, r4, #0x0
+ str r0, [sp, #0x8]
+_02011B60:
+ ldrb r1, [r6, #0x7]
+ ldr r0, [sp, #0x20]
+ add r2, r1, #0x0
+ add r0, r4, r0
+ mul r2, r0
+ ldr r0, [sp, #0x4]
+ lsl r1, r5, #0x5
+ add r2, r2, r0
+ ldr r0, [sp, #0x24]
+ lsl r2, r2, #0x5
+ add r0, r0, r1
+ ldr r1, [r6, #0xc]
+ add r1, r1, r2
+ ldr r2, [sp, #0x8]
+ blx memcpy
+ ldr r0, [sp, #0x0]
+ add r4, r4, #0x1
+ add r5, r5, r7
+ cmp r4, r0
+ blt _02011B60
+_02011B8A:
+ add sp, #0xc
+ pop {r4-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_02011B90
+FUN_02011B90: ; 0x02011B90
+ mov r2, #0x14
+ mov r1, #0x0
+_02011B94:
+ strb r1, [r0, #0x0]
+ add r0, r0, #0x1
+ sub r2, r2, #0x1
+ bne _02011B94
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02011BA0
+FUN_02011BA0: ; 0x02011BA0
+ ldr r1, [r0, #0x64]
+ mov r2, #0x0
+ cmp r1, #0x0
+ ble _02011BC4
+ ldr r3, [r0, #0x60]
+_02011BAA:
+ ldr r1, [r3, #0x0]
+ cmp r1, #0x0
+ bne _02011BBA
+ ldr r1, [r0, #0x60]
+ mov r0, #0x14
+ mul r0, r2
+ add r0, r1, r0
+ bx lr
+_02011BBA:
+ ldr r1, [r0, #0x64]
+ add r2, r2, #0x1
+ add r3, #0x14
+ cmp r2, r1
+ blt _02011BAA
+_02011BC4:
+ mov r0, #0x0
+ bx lr
+
+ thumb_func_start FUN_02011BC8
+FUN_02011BC8: ; 0x02011BC8
+ push {r3-r4}
+ ldr r4, _02011BF0 ; =0x020ED398
+ mov r3, #0x0
+_02011BCE:
+ ldrb r2, [r4, #0x0]
+ cmp r2, r0
+ bgt _02011BE0
+ ldrb r2, [r4, #0x1]
+ cmp r2, r1
+ bgt _02011BE0
+ add r0, r3, #0x0
+ pop {r3-r4}
+ bx lr
+_02011BE0:
+ add r3, r3, #0x1
+ add r4, r4, #0x2
+ cmp r3, #0xc
+ blt _02011BCE
+ mov r0, #0xc
+ pop {r3-r4}
+ bx lr
+ nop
+_02011BF0: .word 0x020ED398
+
+ thumb_func_start FUN_02011BF4
+FUN_02011BF4: ; 0x02011BF4
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ add r6, r1, #0x0
+ add r0, r2, #0x0
+ bl FUN_02011FAC
+ ldr r1, [r6, #0x10]
+ add r4, r0, #0x0
+ bl FUN_02011FF4
+ ldr r0, [r5, #0x8]
+ ldr r1, [r5, #0xc]
+ bl FUN_02011BC8
+ str r0, [r4, #0x8]
+ ldr r0, [r5, #0x4]
+ ldr r1, _02011C9C ; =0x020ED398
+ str r0, [r4, #0x0]
+ ldr r0, [r5, #0x0]
+ ldr r6, _02011CA0 ; =0x020ED399
+ str r0, [r4, #0x4]
+ ldr r0, [r4, #0x8]
+ ldr r2, [r5, #0x8]
+ lsl r3, r0, #0x1
+ ldrb r0, [r1, r3]
+ ldrb r3, [r6, r3]
+ sub r2, r2, r0
+ ldr r0, [r5, #0xc]
+ sub r6, r0, r3
+ cmp r2, #0x0
+ ble _02011C5C
+ str r0, [r5, #0x1c]
+ str r2, [r5, #0x18]
+ ldr r0, [r5, #0x0]
+ str r0, [r5, #0x10]
+ ldr r2, [r4, #0x8]
+ ldr r0, [r5, #0x4]
+ lsl r2, r2, #0x1
+ ldrb r1, [r1, r2]
+ add r0, r0, r1
+ str r0, [r5, #0x14]
+ add r0, r5, #0x0
+ add r0, #0x20
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x1
+ bne _02011C54
+ bl ErrorHandling
+_02011C54:
+ add r0, r5, #0x0
+ mov r1, #0x1
+ add r0, #0x20
+ strb r1, [r0, #0x0]
+_02011C5C:
+ cmp r6, #0x0
+ ble _02011C72
+ ldr r0, [r4, #0x8]
+ ldr r2, [r5, #0x0]
+ lsl r1, r0, #0x1
+ ldr r0, _02011CA0 ; =0x020ED399
+ ldrb r0, [r0, r1]
+ add r0, r2, r0
+ str r0, [r5, #0x0]
+ str r6, [r5, #0xc]
+ b _02011C96
+_02011C72:
+ add r0, r5, #0x0
+ add r0, #0x20
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x1
+ bne _02011C92
+ add r3, r5, #0x0
+ add r3, #0x10
+ add r2, r5, #0x0
+ ldmia r3!, {r0-r1}
+ stmia r2!, {r0-r1}
+ ldmia r3!, {r0-r1}
+ stmia r2!, {r0-r1}
+ mov r0, #0x0
+ add r5, #0x20
+ strb r0, [r5, #0x0]
+ b _02011C96
+_02011C92:
+ mov r0, #0x1
+ pop {r4-r6, pc}
+_02011C96:
+ mov r0, #0x0
+ pop {r4-r6, pc}
+ nop
+_02011C9C: .word 0x020ED398
+_02011CA0: .word 0x020ED399
+
+ thumb_func_start FUN_02011CA4
+FUN_02011CA4: ; 0x02011CA4
+ push {r3-r7, lr}
+ sub sp, #0x38
+ add r7, r0, #0x0
+ str r1, [sp, #0x0]
+ add r5, r2, #0x0
+ add r6, r3, #0x0
+ cmp r7, #0x0
+ bne _02011CB8
+ bl ErrorHandling
+_02011CB8:
+ ldr r0, [sp, #0x0]
+ cmp r0, #0x0
+ bne _02011CC2
+ bl ErrorHandling
+_02011CC2:
+ ldr r0, [sp, #0x0]
+ mov r4, #0x0
+ str r0, [sp, #0x10]
+ str r4, [sp, #0x4]
+ str r4, [sp, #0x8]
+ str r7, [sp, #0xc]
+ add r0, sp, #0x24
+ strb r4, [r0, #0x0]
+ ldr r0, [sp, #0x0]
+ str r4, [sp, #0x2c]
+ str r7, [sp, #0x30]
+ cmp r0, #0x0
+ beq _02011D20
+ add r7, sp, #0x4
+_02011CDE:
+ ldr r0, [sp, #0xc]
+ ldr r1, [sp, #0x0]
+ bl FUN_02011BC8
+ lsl r1, r0, #0x1
+ ldr r0, _02011D28 ; =0x020ED398
+ add r0, r0, r1
+ ldrb r0, [r0, #0x1]
+ ldr r1, [sp, #0x4]
+ add r1, r1, r0
+ str r1, [sp, #0x28]
+ ldr r1, [sp, #0x10]
+ sub r1, r1, r0
+ str r1, [sp, #0x34]
+ str r0, [sp, #0x10]
+_02011CFC:
+ add r0, r7, #0x0
+ add r1, r6, #0x0
+ add r2, r5, #0x0
+ add r4, r4, #0x1
+ bl FUN_02011BF4
+ cmp r0, #0x0
+ beq _02011CFC
+ add r3, sp, #0x28
+ add r2, sp, #0x4
+ ldmia r3!, {r0-r1}
+ stmia r2!, {r0-r1}
+ ldmia r3!, {r0-r1}
+ stmia r2!, {r0-r1}
+ ldr r0, [sp, #0x10]
+ str r0, [sp, #0x0]
+ cmp r0, #0x0
+ bne _02011CDE
+_02011D20:
+ add r0, r4, #0x0
+ add sp, #0x38
+ pop {r3-r7, pc}
+ nop
+_02011D28: .word 0x020ED398
+
+ thumb_func_start FUN_02011D2C
+FUN_02011D2C: ; 0x02011D2C
+ push {r4-r7, lr}
+ sub sp, #0x1c
+ str r0, [sp, #0x10]
+ ldr r0, [sp, #0x30]
+ str r1, [sp, #0x14]
+ str r0, [sp, #0x30]
+ ldr r0, [sp, #0x34]
+ add r5, r2, #0x0
+ str r0, [sp, #0x34]
+ ldr r0, [sp, #0x30]
+ add r6, r3, #0x0
+ cmp r0, #0x1
+ bne _02011D4E
+ mov r0, #0x1
+ lsl r0, r0, #0x1a
+ ldr r1, [r0, #0x0]
+ b _02011D52
+_02011D4E:
+ ldr r0, _02011D98 ; =0x04001000
+ ldr r1, [r0, #0x0]
+_02011D52:
+ ldr r0, _02011D9C ; =0x00300010
+ add r7, r1, #0x0
+ and r7, r0
+ add r0, r7, #0x0
+ bl FUN_0201DED0
+ str r0, [sp, #0x18]
+ ldr r0, [sp, #0x14]
+ ldr r4, [r0, #0xc]
+ cmp r4, r0
+ beq _02011D92
+_02011D68:
+ add r0, r5, #0x0
+ blx FUN_020B1A24
+ str r7, [sp, #0x0]
+ ldr r0, [sp, #0x30]
+ str r6, [sp, #0x4]
+ str r0, [sp, #0x8]
+ ldr r0, [sp, #0x34]
+ ldr r3, [sp, #0x18]
+ str r0, [sp, #0xc]
+ ldr r0, [sp, #0x10]
+ add r1, r4, #0x0
+ add r2, r5, #0x0
+ bl FUN_02011DA0
+ add r6, r0, #0x0
+ ldr r4, [r4, #0xc]
+ ldr r0, [sp, #0x14]
+ add r5, #0x24
+ cmp r4, r0
+ bne _02011D68
+_02011D92:
+ add sp, #0x1c
+ pop {r4-r7, pc}
+ nop
+_02011D98: .word 0x04001000
+_02011D9C: .word 0x00300010
+
+ thumb_func_start FUN_02011DA0
+FUN_02011DA0: ; 0x02011DA0
+ push {r4-r7, lr}
+ sub sp, #0x14
+ add r6, r1, #0x0
+ str r0, [sp, #0x8]
+ ldr r0, [r6, #0x8]
+ add r5, r2, #0x0
+ lsl r1, r0, #0x1
+ ldr r0, _02011E44 ; =0x020ED398
+ ldrb r0, [r0, r1]
+ str r0, [sp, #0x10]
+ ldr r0, _02011E48 ; =0x020ED399
+ ldrb r0, [r0, r1]
+ ldr r1, [sp, #0x10]
+ add r4, r1, #0x0
+ mul r4, r0
+ str r0, [sp, #0xc]
+ cmp r4, r3
+ bge _02011DC6
+ add r4, r3, #0x0
+_02011DC6:
+ lsl r4, r4, #0x5
+ ldr r0, [sp, #0x34]
+ add r1, r4, #0x0
+ bl FUN_020169D8
+ add r7, r0, #0x0
+ ldr r0, [r6, #0x4]
+ ldr r1, [sp, #0x10]
+ str r0, [sp, #0x0]
+ str r7, [sp, #0x4]
+ ldr r0, [sp, #0x8]
+ ldr r2, [sp, #0xc]
+ ldr r3, [r6, #0x0]
+ bl FUN_02011B20
+ add r0, r7, #0x0
+ add r1, r4, #0x0
+ blx DC_FlushRange
+ ldr r0, [sp, #0x30]
+ cmp r0, #0x1
+ bne _02011E08
+ ldr r6, [sp, #0x2c]
+ add r0, r7, #0x0
+ add r1, r6, #0x0
+ add r2, r4, #0x0
+ blx GX_LoadOBJ
+ mov r0, #0x1
+ str r6, [r5, #0x4]
+ lsl r0, r0, #0x1a
+ ldr r1, [r0, #0x0]
+ b _02011E1A
+_02011E08:
+ ldr r6, [sp, #0x2c]
+ add r0, r7, #0x0
+ add r1, r6, #0x0
+ add r2, r4, #0x0
+ blx GXS_LoadOBJ
+ ldr r0, _02011E4C ; =0x04001000
+ str r6, [r5, #0x8]
+ ldr r1, [r0, #0x0]
+_02011E1A:
+ ldr r0, _02011E50 ; =0x00300010
+ and r0, r1
+ str r0, [r5, #0x20]
+ ldr r0, _02011E54 ; =0x0000FFFF
+ str r0, [r5, #0xc]
+ str r0, [r5, #0x10]
+ mov r0, #0x3
+ str r0, [r5, #0x14]
+ mov r0, #0x0
+ str r0, [r5, #0x18]
+ mov r0, #0x1
+ str r0, [r5, #0x1c]
+ ldr r0, [sp, #0x28]
+ str r0, [r5, #0x20]
+ add r0, r7, #0x0
+ bl FUN_02016A18
+ ldr r0, [sp, #0x2c]
+ add r0, r0, r4
+ add sp, #0x14
+ pop {r4-r7, pc}
+ .balign 4
+_02011E44: .word 0x020ED398
+_02011E48: .word 0x020ED399
+_02011E4C: .word 0x04001000
+_02011E50: .word 0x00300010
+_02011E54: .word 0x0000FFFF
+
+ thumb_func_start FUN_02011E58
+FUN_02011E58: ; 0x02011E58
+ push {r3-r7, lr}
+ add r4, r0, #0x0
+ cmp r1, #0x1
+ bne _02011E68
+ mov r0, #0x1
+ lsl r0, r0, #0x1a
+ ldr r1, [r0, #0x0]
+ b _02011E6C
+_02011E68:
+ ldr r0, _02011EA0 ; =0x04001000
+ ldr r1, [r0, #0x0]
+_02011E6C:
+ ldr r0, _02011EA4 ; =0x00300010
+ and r0, r1
+ bl FUN_0201DED0
+ ldr r2, [r4, #0xc]
+ mov r3, #0x0
+ cmp r2, r4
+ beq _02011E9A
+ ldr r1, _02011EA8 ; =0x020ED398
+_02011E7E:
+ ldr r5, [r2, #0x8]
+ lsl r5, r5, #0x1
+ add r7, r1, r5
+ ldrb r6, [r1, r5]
+ ldrb r5, [r7, #0x1]
+ mul r5, r6
+ cmp r5, r0
+ bge _02011E90
+ add r5, r0, #0x0
+_02011E90:
+ ldr r2, [r2, #0xc]
+ lsl r5, r5, #0x5
+ add r3, r3, r5
+ cmp r2, r4
+ bne _02011E7E
+_02011E9A:
+ add r0, r3, #0x0
+ pop {r3-r7, pc}
+ nop
+_02011EA0: .word 0x04001000
+_02011EA4: .word 0x00300010
+_02011EA8: .word 0x020ED398
+
+ thumb_func_start FUN_02011EAC
+FUN_02011EAC: ; 0x02011EAC
+ push {r3-r7, lr}
+ sub sp, #0x8
+ str r0, [sp, #0x0]
+ add r0, r1, #0x0
+ ldr r4, [r0, #0xc]
+ str r1, [sp, #0x4]
+ add r7, r2, #0x0
+ add r6, r3, #0x0
+ cmp r4, r0
+ beq _02011EFC
+ mov r5, #0x0
+_02011EC2:
+ ldr r0, [sp, #0x0]
+ add r1, r4, #0x0
+ add r2, r7, #0x0
+ bl FUN_02011F24
+ ldr r1, [r6, #0x0]
+ str r0, [r1, r5]
+ ldr r0, [r6, #0x0]
+ ldr r0, [r0, r5]
+ cmp r0, #0x0
+ bne _02011EDC
+ bl ErrorHandling
+_02011EDC:
+ ldr r0, [r4, #0x0]
+ add r7, #0x24
+ lsl r1, r0, #0x3
+ ldr r0, [r6, #0x0]
+ add r0, r0, r5
+ str r1, [r0, #0x4]
+ ldr r0, [r4, #0x4]
+ lsl r1, r0, #0x3
+ ldr r0, [r6, #0x0]
+ add r0, r0, r5
+ str r1, [r0, #0x8]
+ ldr r4, [r4, #0xc]
+ ldr r0, [sp, #0x4]
+ add r5, #0xc
+ cmp r4, r0
+ bne _02011EC2
+_02011EFC:
+ add sp, #0x8
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_02011F00
+FUN_02011F00: ; 0x02011F00
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ ldr r0, [r5, #0x4]
+ mov r6, #0x0
+ cmp r0, #0x0
+ ble _02011F20
+ add r4, r6, #0x0
+_02011F0E:
+ ldr r0, [r5, #0x0]
+ ldr r0, [r0, r4]
+ bl FUN_0201FFC8
+ ldr r0, [r5, #0x4]
+ add r6, r6, #0x1
+ add r4, #0xc
+ cmp r6, r0
+ blt _02011F0E
+_02011F20:
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_02011F24
+FUN_02011F24: ; 0x02011F24
+ push {r4-r5, lr}
+ sub sp, #0x44
+ add r5, r0, #0x0
+ mov r0, #0x0
+ str r2, [sp, #0x0]
+ str r0, [sp, #0x4]
+ add r4, r1, #0x0
+ ldr r1, [r5, #0xc]
+ str r1, [sp, #0x8]
+ ldr r1, [r4, #0x8]
+ ldr r2, [r5, #0x0]
+ lsl r1, r1, #0x2
+ add r1, r2, r1
+ ldr r1, [r1, #0x30]
+ str r1, [sp, #0xc]
+ str r0, [sp, #0x10]
+ str r0, [sp, #0x14]
+ str r0, [sp, #0x18]
+ str r0, [sp, #0x1c]
+ ldr r2, [r5, #0x20]
+ add r1, sp, #0x20
+ strb r2, [r1, #0x0]
+ ldr r1, [r5, #0x8]
+ str r1, [sp, #0x24]
+ add r1, sp, #0x0
+ str r1, [sp, #0x28]
+ ldr r1, [r5, #0x24]
+ str r1, [sp, #0x38]
+ ldr r1, [r5, #0x28]
+ str r1, [sp, #0x3c]
+ ldr r1, [r5, #0x2c]
+ str r1, [sp, #0x40]
+ str r0, [sp, #0x2c]
+ str r0, [sp, #0x30]
+ str r0, [sp, #0x34]
+ ldr r0, [r5, #0x10]
+ cmp r0, #0x0
+ beq _02011F80
+ bl FUN_0202011C
+ add r3, r0, #0x0
+ ldmia r3!, {r0-r1}
+ add r2, sp, #0x2c
+ stmia r2!, {r0-r1}
+ ldr r0, [r3, #0x0]
+ str r0, [r2, #0x0]
+_02011F80:
+ ldr r1, [r4, #0x0]
+ ldr r2, [r5, #0x18]
+ lsl r1, r1, #0x3
+ add r1, r2, r1
+ ldr r0, [sp, #0x2c]
+ lsl r1, r1, #0xc
+ add r0, r0, r1
+ str r0, [sp, #0x2c]
+ ldr r1, [r4, #0x4]
+ ldr r2, [r5, #0x1c]
+ lsl r1, r1, #0x3
+ add r1, r2, r1
+ ldr r0, [sp, #0x30]
+ lsl r1, r1, #0xc
+ add r0, r0, r1
+ str r0, [sp, #0x30]
+ add r0, sp, #0x24
+ bl FUN_0201FF84
+ add sp, #0x44
+ pop {r4-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_02011FAC
+FUN_02011FAC: ; 0x02011FAC
+ push {r4, lr}
+ mov r1, #0x14
+ bl FUN_020169D8
+ add r4, r0, #0x0
+ bne _02011FBC
+ bl ErrorHandling
+_02011FBC:
+ mov r0, #0x0
+ str r0, [r4, #0xc]
+ str r0, [r4, #0x10]
+ add r0, r4, #0x0
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02011FC8
+FUN_02011FC8: ; 0x02011FC8
+ push {r4, lr}
+ add r4, r0, #0x0
+ bne _02011FD2
+ bl ErrorHandling
+_02011FD2:
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02011FDC
+FUN_02011FDC: ; 0x02011FDC
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ ldr r0, [r5, #0xc]
+ cmp r0, r5
+ beq _02011FF2
+_02011FE6:
+ ldr r4, [r0, #0xc]
+ bl FUN_02011FC8
+ add r0, r4, #0x0
+ cmp r4, r5
+ bne _02011FE6
+_02011FF2:
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_02011FF4
+FUN_02011FF4: ; 0x02011FF4
+ ldr r2, [r1, #0xc]
+ str r2, [r0, #0xc]
+ str r1, [r0, #0x10]
+ ldr r2, [r1, #0xc]
+ str r0, [r2, #0x10]
+ str r0, [r1, #0xc]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02012004
+FUN_02012004: ; 0x02012004
+ push {r3-r7, lr}
+ sub sp, #0x8
+ str r0, [sp, #0x0]
+ ldr r0, [sp, #0x24]
+ ldr r6, [sp, #0x20]
+ str r1, [sp, #0x4]
+ add r5, r2, #0x0
+ add r4, r3, #0x0
+ str r0, [sp, #0x24]
+ mov r7, #0x0
+_02012018:
+ ldr r1, [r4, #0x0]
+ ldr r0, [sp, #0x4]
+ ldr r2, [r5, #0x0]
+ add r0, r0, r1
+ ldr r1, [sp, #0x0]
+ add r1, r1, r2
+ add r2, r6, #0x0
+ blx memcpy
+ ldr r1, [r5, #0x0]
+ ldr r0, [sp, #0x24]
+ add r7, r7, #0x1
+ add r0, r1, r0
+ str r0, [r5, #0x0]
+ ldr r0, [r4, #0x0]
+ add r0, r0, r6
+ str r0, [r4, #0x0]
+ cmp r7, #0x8
+ blt _02012018
+ add sp, #0x8
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_02012044
+FUN_02012044: ; 0x02012044
+ push {r4-r6, lr}
+ add r5, r3, #0x0
+ bl LoadFromNarc_2
+ add r4, r0, #0x0
+ bne _02012054
+ bl ErrorHandling
+_02012054:
+ add r0, r4, #0x0
+ add r1, r5, #0x0
+ blx FUN_020B0088
+ add r6, r0, #0x0
+ cmp r5, #0x0
+ bne _02012066
+ bl ErrorHandling
+_02012066:
+ cmp r6, #0x0
+ bne _0201206E
+ bl ErrorHandling
+_0201206E:
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_02012078
+FUN_02012078: ; 0x02012078
+ push {r4-r7, lr}
+ sub sp, #0x2c
+ ldr r4, [sp, #0x40]
+ str r0, [sp, #0x8]
+ add r6, r0, r2
+ ldrh r0, [r4, #0x2]
+ str r1, [sp, #0xc]
+ add r5, r3, #0x0
+ cmp r0, r6
+ bge _02012090
+ bl ErrorHandling
+_02012090:
+ ldr r0, [sp, #0xc]
+ ldrh r1, [r4, #0x0]
+ add r0, r0, r5
+ str r0, [sp, #0x14]
+ cmp r1, r0
+ bge _020120A0
+ bl ErrorHandling
+_020120A0:
+ ldr r0, [r4, #0x14]
+ str r0, [sp, #0x20]
+ ldr r0, [sp, #0x44]
+ str r0, [sp, #0x1c]
+ ldrh r0, [r4, #0x2]
+ lsl r7, r0, #0x2
+ ldr r0, [sp, #0xc]
+ add r1, r0, #0x0
+ mul r1, r7
+ ldr r0, [sp, #0x8]
+ str r1, [sp, #0x18]
+ lsl r1, r0, #0x2
+ ldr r0, [sp, #0x18]
+ str r1, [sp, #0x10]
+ add r0, r1, r0
+ str r0, [sp, #0x28]
+ mov r0, #0x0
+ str r0, [sp, #0x24]
+ ldr r1, [sp, #0xc]
+ ldr r0, [sp, #0x14]
+ cmp r1, r0
+ bge _0201210A
+_020120CC:
+ ldr r4, [sp, #0x8]
+ add r0, r4, #0x0
+ cmp r0, r6
+ bge _020120F8
+ ldr r0, [sp, #0x18]
+ lsl r1, r0, #0x3
+ ldr r0, [sp, #0x10]
+ add r5, r0, r1
+_020120DC:
+ str r5, [sp, #0x28]
+ mov r0, #0x4
+ str r0, [sp, #0x0]
+ ldr r0, [sp, #0x20]
+ ldr r1, [sp, #0x1c]
+ add r2, sp, #0x28
+ add r3, sp, #0x24
+ str r7, [sp, #0x4]
+ bl FUN_02012004
+ add r4, r4, #0x1
+ add r5, r5, #0x4
+ cmp r4, r6
+ blt _020120DC
+_020120F8:
+ ldr r0, [sp, #0x18]
+ add r0, r0, r7
+ str r0, [sp, #0x18]
+ ldr r0, [sp, #0xc]
+ add r1, r0, #0x1
+ ldr r0, [sp, #0x14]
+ str r1, [sp, #0xc]
+ cmp r1, r0
+ blt _020120CC
+_0201210A:
+ add sp, #0x2c
+ pop {r4-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_02012110
+FUN_02012110: ; 0x02012110
+ push {r4-r5}
+ sub sp, #0x8
+ ldr r2, _02012148 ; =0x020ED3B0
+ add r1, sp, #0x0
+ ldr r3, [r2, #0x0]
+ ldr r2, [r2, #0x4]
+ str r3, [sp, #0x0]
+ str r2, [sp, #0x4]
+ ldr r2, _0201214C ; =0x000001EF
+ mov r5, #0x0
+ add r3, r2, #0x0
+_02012126:
+ ldr r4, [r1, #0x0]
+ cmp r4, r3
+ beq _02012140
+ cmp r4, r0
+ bne _02012138
+ add sp, #0x8
+ mov r0, #0x1
+ pop {r4-r5}
+ bx lr
+_02012138:
+ add r5, r5, #0x1
+ add r1, r1, #0x4
+ cmp r5, r2
+ blt _02012126
+_02012140:
+ mov r0, #0x0
+ add sp, #0x8
+ pop {r4-r5}
+ bx lr
+ .balign 4
+_02012148: .word 0x020ED3B0
+_0201214C: .word 0x000001EF
+
+ thumb_func_start FUN_02012150
+FUN_02012150: ; 0x02012150
+ push {r3-r4, lr}
+ sub sp, #0xc
+ add r4, r3, #0x0
+ mov r3, #0x0
+ str r3, [sp, #0x8]
+ add r3, sp, #0x8
+ bl FUN_02012044
+ ldr r0, [sp, #0x8]
+ ldr r0, [r0, #0x14]
+ bl FUN_02008A74
+ ldr r0, [sp, #0x34]
+ bl FUN_02012110
+ ldr r1, [sp, #0x30]
+ cmp r1, #0x2
+ bne _02012184
+ cmp r0, #0x1
+ bne _02012184
+ ldr r0, [sp, #0x8]
+ ldr r1, [sp, #0x28]
+ ldr r0, [r0, #0x14]
+ ldr r2, [sp, #0x2c]
+ bl FUN_02008904
+_02012184:
+ ldr r0, [sp, #0x8]
+ ldr r1, [sp, #0x18]
+ str r0, [sp, #0x0]
+ ldr r0, [sp, #0x24]
+ ldr r2, [sp, #0x1c]
+ str r0, [sp, #0x4]
+ ldr r3, [sp, #0x20]
+ add r0, r4, #0x0
+ bl FUN_02012078
+ add sp, #0xc
+ pop {r3-r4, pc}
+
+ thumb_func_start FUN_0201219C
+FUN_0201219C: ; 0x0201219C
+ push {r4-r7, lr}
+ sub sp, #0x24
+ add r7, r1, #0x0
+ add r5, r2, #0x0
+ ldr r2, [sp, #0x3c]
+ ldr r1, [sp, #0x40]
+ add r6, r0, #0x0
+ mul r1, r2
+ add r0, r5, #0x0
+ lsl r1, r1, #0x5
+ str r3, [sp, #0x20]
+ bl FUN_02016998
+ add r4, r0, #0x0
+ ldr r0, [sp, #0x38]
+ ldr r3, [sp, #0x20]
+ str r0, [sp, #0x0]
+ ldr r0, [sp, #0x3c]
+ add r1, r7, #0x0
+ str r0, [sp, #0x4]
+ ldr r0, [sp, #0x40]
+ add r2, r5, #0x0
+ str r0, [sp, #0x8]
+ ldr r0, [sp, #0x44]
+ str r4, [sp, #0xc]
+ str r0, [sp, #0x10]
+ ldr r0, [sp, #0x48]
+ str r0, [sp, #0x14]
+ ldr r0, [sp, #0x4c]
+ str r0, [sp, #0x18]
+ ldr r0, [sp, #0x50]
+ str r0, [sp, #0x1c]
+ add r0, r6, #0x0
+ bl FUN_02012150
+ add r0, r4, #0x0
+ add sp, #0x24
+ pop {r4-r7, pc}
+
+ thumb_func_start FUN_020121E8
+FUN_020121E8: ; 0x020121E8
+ push {r3-r7, lr}
+ sub sp, #0x30
+ str r3, [sp, #0x8]
+ ldr r3, [sp, #0x48]
+ str r3, [sp, #0x48]
+ mov r3, #0x0
+ str r3, [sp, #0x2c]
+ bl LoadFromNarc_2
+ str r0, [sp, #0x20]
+ cmp r0, #0x0
+ bne _02012204
+ bl ErrorHandling
+_02012204:
+ ldr r0, [sp, #0x20]
+ add r1, sp, #0x2c
+ blx FUN_020B0088
+ cmp r0, #0x0
+ bne _02012214
+ bl ErrorHandling
+_02012214:
+ ldr r1, [sp, #0x4c]
+ ldr r0, [sp, #0x8]
+ add r6, r0, r1
+ ldr r0, [sp, #0x2c]
+ ldrh r0, [r0, #0x2]
+ cmp r0, r6
+ bge _02012226
+ bl ErrorHandling
+_02012226:
+ ldr r1, [sp, #0x50]
+ ldr r0, [sp, #0x48]
+ add r0, r0, r1
+ str r0, [sp, #0x10]
+ ldr r0, [sp, #0x2c]
+ ldrh r1, [r0, #0x0]
+ ldr r0, [sp, #0x10]
+ cmp r1, r0
+ bge _0201223C
+ bl ErrorHandling
+_0201223C:
+ ldr r0, [sp, #0x2c]
+ ldr r0, [r0, #0x14]
+ str r0, [sp, #0x1c]
+ bl FUN_02008A74
+ ldr r0, [sp, #0x54]
+ str r0, [sp, #0x18]
+ ldr r0, [sp, #0x2c]
+ ldrh r0, [r0, #0x2]
+ lsl r7, r0, #0x2
+ ldr r0, [sp, #0x48]
+ add r1, r0, #0x0
+ mul r1, r7
+ ldr r0, [sp, #0x8]
+ str r1, [sp, #0x14]
+ lsl r1, r0, #0x2
+ ldr r0, [sp, #0x14]
+ str r1, [sp, #0xc]
+ add r0, r1, r0
+ str r0, [sp, #0x28]
+ mov r0, #0x0
+ str r0, [sp, #0x24]
+ ldr r1, [sp, #0x48]
+ ldr r0, [sp, #0x10]
+ cmp r1, r0
+ bge _020122AE
+_02012270:
+ ldr r4, [sp, #0x8]
+ add r0, r4, #0x0
+ cmp r0, r6
+ bge _0201229C
+ ldr r0, [sp, #0x14]
+ lsl r1, r0, #0x3
+ ldr r0, [sp, #0xc]
+ add r5, r0, r1
+_02012280:
+ str r5, [sp, #0x28]
+ mov r0, #0x4
+ str r0, [sp, #0x0]
+ ldr r0, [sp, #0x1c]
+ ldr r1, [sp, #0x18]
+ add r2, sp, #0x28
+ add r3, sp, #0x24
+ str r7, [sp, #0x4]
+ bl FUN_02012004
+ add r4, r4, #0x1
+ add r5, r5, #0x4
+ cmp r4, r6
+ blt _02012280
+_0201229C:
+ ldr r0, [sp, #0x14]
+ add r0, r0, r7
+ str r0, [sp, #0x14]
+ ldr r0, [sp, #0x48]
+ add r1, r0, #0x1
+ ldr r0, [sp, #0x10]
+ str r1, [sp, #0x48]
+ cmp r1, r0
+ blt _02012270
+_020122AE:
+ ldr r0, [sp, #0x20]
+ bl FUN_02016A18
+ add sp, #0x30
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_020122B8
+FUN_020122B8: ; 0x020122B8
+ push {r4-r7, lr}
+ sub sp, #0x14
+ add r7, r1, #0x0
+ add r5, r2, #0x0
+ ldr r2, [sp, #0x2c]
+ ldr r1, [sp, #0x30]
+ add r6, r0, #0x0
+ mul r1, r2
+ add r0, r5, #0x0
+ lsl r1, r1, #0x5
+ str r3, [sp, #0x10]
+ bl FUN_02016998
+ add r4, r0, #0x0
+ ldr r0, [sp, #0x28]
+ ldr r3, [sp, #0x10]
+ str r0, [sp, #0x0]
+ ldr r0, [sp, #0x2c]
+ add r1, r7, #0x0
+ str r0, [sp, #0x4]
+ ldr r0, [sp, #0x30]
+ add r2, r5, #0x0
+ str r0, [sp, #0x8]
+ add r0, r6, #0x0
+ str r4, [sp, #0xc]
+ bl FUN_020121E8
+ add r0, r4, #0x0
+ add sp, #0x14
+ pop {r4-r7, pc}
+
+ thumb_func_start FUN_020122F4
+FUN_020122F4: ; 0x020122F4
+ push {r3-r7, lr}
+ sub sp, #0x20
+ str r0, [sp, #0x0]
+ ldr r0, [sp, #0x44]
+ ldr r1, [sp, #0x38]
+ str r0, [sp, #0x18]
+ ldr r0, [sp, #0x48]
+ str r2, [sp, #0x4]
+ str r0, [sp, #0x14]
+ add r0, r2, #0x0
+ add r7, r0, r1
+ ldr r1, [sp, #0x3c]
+ add r0, r3, #0x0
+ add r0, r0, r1
+ add r1, r3, #0x0
+ str r3, [sp, #0x8]
+ ldr r5, [sp, #0x40]
+ str r0, [sp, #0x10]
+ cmp r1, r0
+ bge _0201236C
+ add r0, r3, #0x0
+ lsl r0, r0, #0x5
+ str r0, [sp, #0xc]
+ add r0, r2, #0x0
+ lsl r0, r0, #0x5
+ str r0, [sp, #0x1c]
+_02012328:
+ ldr r6, [sp, #0x4]
+ add r0, r6, #0x0
+ cmp r0, r7
+ bge _0201235A
+ ldr r1, [sp, #0x0]
+ ldr r0, [sp, #0xc]
+ add r2, r1, #0x0
+ mul r2, r0
+ ldr r0, [sp, #0x1c]
+ add r4, r0, r2
+_0201233C:
+ ldr r1, [r5, #0x0]
+ ldr r0, [sp, #0x14]
+ mov r2, #0x20
+ add r0, r0, r1
+ ldr r1, [sp, #0x18]
+ add r1, r1, r4
+ blx memcpy
+ ldr r0, [r5, #0x0]
+ add r6, r6, #0x1
+ add r0, #0x20
+ str r0, [r5, #0x0]
+ add r4, #0x20
+ cmp r6, r7
+ blt _0201233C
+_0201235A:
+ ldr r0, [sp, #0xc]
+ add r0, #0x20
+ str r0, [sp, #0xc]
+ ldr r0, [sp, #0x8]
+ add r1, r0, #0x1
+ ldr r0, [sp, #0x10]
+ str r1, [sp, #0x8]
+ cmp r1, r0
+ blt _02012328
+_0201236C:
+ add sp, #0x20
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_02012370
+FUN_02012370: ; 0x02012370
+ push {r3-r4, lr}
+ sub sp, #0x14
+ add r4, r2, #0x0
+ ldr r2, [r4, #0x8]
+ str r2, [sp, #0x0]
+ ldr r2, [r4, #0xc]
+ str r2, [sp, #0x4]
+ ldr r2, [sp, #0x20]
+ str r3, [sp, #0x8]
+ str r2, [sp, #0xc]
+ ldr r2, [sp, #0x24]
+ str r2, [sp, #0x10]
+ ldr r2, [r4, #0x0]
+ ldr r3, [r4, #0x4]
+ bl FUN_020122F4
+ add sp, #0x14
+ pop {r3-r4, pc}
+
+ thumb_func_start FUN_02012394
+FUN_02012394: ; 0x02012394
+ push {r4-r7, lr}
+ sub sp, #0x7c
+ str r0, [sp, #0xc]
+ ldr r0, [sp, #0x9c]
+ mov r12, r3
+ add r5, r2, #0x0
+ ldr r6, [sp, #0x94]
+ ldr r7, [sp, #0x98]
+ ldr r3, _020123FC ; =0x020ED3D8
+ str r1, [sp, #0x10]
+ str r0, [sp, #0x9c]
+ add r2, sp, #0x1c
+ mov r4, #0xc
+_020123AE:
+ ldmia r3!, {r0-r1}
+ stmia r2!, {r0-r1}
+ sub r4, r4, #0x1
+ bne _020123AE
+ mov r0, #0x0
+ str r0, [sp, #0x18]
+ ldr r0, [sp, #0x90]
+ ldr r1, [sp, #0x10]
+ str r0, [sp, #0x0]
+ str r6, [sp, #0x4]
+ ldr r0, [sp, #0xc]
+ add r2, r5, #0x0
+ mov r3, r12
+ str r7, [sp, #0x8]
+ bl FUN_020122B8
+ str r0, [sp, #0x14]
+ mov r4, #0x0
+ add r5, sp, #0x1c
+_020123D4:
+ ldr r0, [sp, #0x14]
+ add r1, r7, #0x0
+ str r0, [sp, #0x0]
+ ldr r0, [sp, #0x9c]
+ add r2, r5, #0x0
+ str r0, [sp, #0x4]
+ add r0, r6, #0x0
+ add r3, sp, #0x18
+ bl FUN_02012370
+ add r4, r4, #0x1
+ add r5, #0x10
+ cmp r4, #0x6
+ blt _020123D4
+ ldr r0, [sp, #0x14]
+ bl FUN_02016A18
+ add sp, #0x7c
+ pop {r4-r7, pc}
+ nop
+_020123FC: .word 0x020ED3D8
+
+ thumb_func_start FUN_02012400
+FUN_02012400: ; 0x02012400
+ push {r4, lr}
+ sub sp, #0x10
+ ldr r4, [r3, #0x4]
+ str r4, [sp, #0x0]
+ ldr r4, [r3, #0x8]
+ str r4, [sp, #0x4]
+ ldr r4, [r3, #0xc]
+ str r4, [sp, #0x8]
+ ldr r4, [sp, #0x18]
+ str r4, [sp, #0xc]
+ ldr r3, [r3, #0x0]
+ bl FUN_02012394
+ add sp, #0x10
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02012420
+FUN_02012420: ; 0x02012420
+ push {r4-r7, lr}
+ sub sp, #0x14
+ ldr r4, _02012448 ; =0x020ED3B8
+ add r5, r3, #0x0
+ add r3, sp, #0x4
+ add r7, r0, #0x0
+ mov r12, r1
+ add r6, r3, #0x0
+ ldmia r4!, {r0-r1}
+ stmia r3!, {r0-r1}
+ ldmia r4!, {r0-r1}
+ stmia r3!, {r0-r1}
+ add r0, r7, #0x0
+ mov r1, r12
+ add r3, r6, #0x0
+ str r5, [sp, #0x0]
+ bl FUN_02012400
+ add sp, #0x14
+ pop {r4-r7, pc}
+ .balign 4
+_02012448: .word 0x020ED3B8
+
+ thumb_func_start FUN_0201244C
+FUN_0201244C: ; 0x0201244C
+ push {r3-r7, lr}
+ add r6, r1, #0x0
+ mov r1, #0x32
+ add r7, r2, #0x0
+ add r5, r0, #0x0
+ add r0, r7, #0x0
+ lsl r1, r1, #0x6
+ bl FUN_02016998
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ add r2, r7, #0x0
+ add r3, r4, #0x0
+ bl FUN_02012420
+ add r0, r4, #0x0
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_02012470
+FUN_02012470: ; 0x02012470
+ push {r3-r7, lr}
+ add r7, r2, #0x0
+ add r5, r0, #0x0
+ add r6, r1, #0x0
+ add r0, r7, #0x0
+ mov r1, #0x20
+ bl FUN_02016998
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ add r2, r7, #0x0
+ bl LoadFromNarc_2
+ add r1, sp, #0x0
+ add r5, r0, #0x0
+ blx FUN_020B0138
+ cmp r0, #0x1
+ beq _0201249C
+ bl ErrorHandling
+_0201249C:
+ ldr r0, [sp, #0x0]
+ add r1, r4, #0x0
+ ldr r0, [r0, #0xc]
+ mov r2, #0x20
+ blx MIi_CpuCopy16
+ add r0, r5, #0x0
+ bl FUN_02016A18
+ add r0, r4, #0x0
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_020124B4
+FUN_020124B4: ; 0x020124B4
+ push {r4-r7, lr}
+ sub sp, #0x8c
+ str r0, [sp, #0x1c]
+ ldr r0, [sp, #0xac]
+ mov r12, r3
+ add r5, r2, #0x0
+ ldr r6, [sp, #0xa4]
+ ldr r7, [sp, #0xa8]
+ ldr r3, _0201252C ; =0x020ED438
+ str r1, [sp, #0x20]
+ str r0, [sp, #0xac]
+ add r2, sp, #0x2c
+ mov r4, #0xc
+_020124CE:
+ ldmia r3!, {r0-r1}
+ stmia r2!, {r0-r1}
+ sub r4, r4, #0x1
+ bne _020124CE
+ mov r0, #0x0
+ str r0, [sp, #0x28]
+ ldr r0, [sp, #0xa0]
+ ldr r1, [sp, #0x20]
+ str r0, [sp, #0x0]
+ str r6, [sp, #0x4]
+ ldr r0, [sp, #0xb0]
+ str r7, [sp, #0x8]
+ str r0, [sp, #0xc]
+ ldr r0, [sp, #0xb4]
+ add r2, r5, #0x0
+ str r0, [sp, #0x10]
+ ldr r0, [sp, #0xb8]
+ mov r3, r12
+ str r0, [sp, #0x14]
+ ldr r0, [sp, #0xbc]
+ str r0, [sp, #0x18]
+ ldr r0, [sp, #0x1c]
+ bl FUN_0201219C
+ str r0, [sp, #0x24]
+ mov r4, #0x0
+ add r5, sp, #0x2c
+_02012504:
+ ldr r0, [sp, #0x24]
+ add r1, r7, #0x0
+ str r0, [sp, #0x0]
+ ldr r0, [sp, #0xac]
+ add r2, r5, #0x0
+ str r0, [sp, #0x4]
+ add r0, r6, #0x0
+ add r3, sp, #0x28
+ bl FUN_02012370
+ add r4, r4, #0x1
+ add r5, #0x10
+ cmp r4, #0x6
+ blt _02012504
+ ldr r0, [sp, #0x24]
+ bl FUN_02016A18
+ add sp, #0x8c
+ pop {r4-r7, pc}
+ nop
+_0201252C: .word 0x020ED438
+
+ thumb_func_start FUN_02012530
+FUN_02012530: ; 0x02012530
+ push {r4, lr}
+ sub sp, #0x20
+ ldr r4, [r3, #0x4]
+ str r4, [sp, #0x0]
+ ldr r4, [r3, #0x8]
+ str r4, [sp, #0x4]
+ ldr r4, [r3, #0xc]
+ str r4, [sp, #0x8]
+ ldr r4, [sp, #0x28]
+ str r4, [sp, #0xc]
+ ldr r4, [sp, #0x2c]
+ str r4, [sp, #0x10]
+ ldr r4, [sp, #0x30]
+ str r4, [sp, #0x14]
+ ldr r4, [sp, #0x34]
+ str r4, [sp, #0x18]
+ ldr r4, [sp, #0x38]
+ str r4, [sp, #0x1c]
+ ldr r3, [r3, #0x0]
+ bl FUN_020124B4
+ add sp, #0x20
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02012560
+FUN_02012560: ; 0x02012560
+ push {r4-r7, lr}
+ sub sp, #0x24
+ ldr r4, _02012598 ; =0x020ED3C8
+ add r5, r3, #0x0
+ add r3, sp, #0x14
+ add r7, r0, #0x0
+ mov r12, r1
+ add r6, r3, #0x0
+ ldmia r4!, {r0-r1}
+ stmia r3!, {r0-r1}
+ ldmia r4!, {r0-r1}
+ stmia r3!, {r0-r1}
+ ldr r0, [sp, #0x38]
+ str r5, [sp, #0x0]
+ str r0, [sp, #0x4]
+ ldr r0, [sp, #0x3c]
+ mov r1, r12
+ str r0, [sp, #0x8]
+ ldr r0, [sp, #0x40]
+ add r3, r6, #0x0
+ str r0, [sp, #0xc]
+ ldr r0, [sp, #0x44]
+ str r0, [sp, #0x10]
+ add r0, r7, #0x0
+ bl FUN_02012530
+ add sp, #0x24
+ pop {r4-r7, pc}
+ .balign 4
+_02012598: .word 0x020ED3C8
+
+ thumb_func_start FUN_0201259C
+FUN_0201259C: ; 0x0201259C
+ push {r3, lr}
+ blx RTC_Init
+ ldr r3, _020125CC ; =0x021C4808
+ mov r0, #0x0
+ add r2, r3, #0x0
+ add r1, r0, #0x0
+ stmia r2!, {r0-r1}
+ stmia r2!, {r0-r1}
+ stmia r2!, {r0-r1}
+ stmia r2!, {r0-r1}
+ stmia r2!, {r0-r1}
+ stmia r2!, {r0-r1}
+ stmia r2!, {r0-r1}
+ stmia r2!, {r0-r1}
+ stmia r2!, {r0-r1}
+ ldr r1, _020125D0 ; =0x021C4808
+ str r0, [r1, #0x0]
+ str r0, [r1, #0x4]
+ str r0, [r1, #0x8]
+ add r0, r3, #0x0
+ bl FUN_02012634
+ pop {r3, pc}
+ .balign 4
+_020125CC: .word 0x021C4808
+_020125D0: .word 0x021C4808
+
+ thumb_func_start FUN_020125D4
+FUN_020125D4: ; 0x020125D4
+ push {r3, lr}
+ ldr r0, _020125F4 ; =0x021C4808
+ ldr r1, [r0, #0x4]
+ cmp r1, #0x0
+ bne _020125F2
+ ldr r1, [r0, #0x8]
+ add r1, r1, #0x1
+ str r1, [r0, #0x8]
+ cmp r1, #0xa
+ ble _020125F2
+ mov r1, #0x0
+ str r1, [r0, #0x8]
+ ldr r0, _020125F8 ; =0x021C4808
+ bl FUN_02012634
+_020125F2:
+ pop {r3, pc}
+ .balign 4
+_020125F4: .word 0x021C4808
+_020125F8: .word 0x021C4808
+
+ thumb_func_start FUN_020125FC
+FUN_020125FC: ; 0x020125FC
+ push {r4, lr}
+ add r4, r1, #0x0
+ str r0, [r4, #0xc]
+ cmp r0, #0x0
+ beq _0201260A
+ bl ErrorHandling
+_0201260A:
+ add r3, r4, #0x0
+ mov r0, #0x1
+ add r2, r4, #0x0
+ add r3, #0x2c
+ str r0, [r4, #0x0]
+ ldmia r3!, {r0-r1}
+ add r2, #0x10
+ stmia r2!, {r0-r1}
+ ldmia r3!, {r0-r1}
+ stmia r2!, {r0-r1}
+ add r3, r4, #0x0
+ add r3, #0x3c
+ add r2, r4, #0x0
+ ldmia r3!, {r0-r1}
+ add r2, #0x20
+ stmia r2!, {r0-r1}
+ ldr r0, [r3, #0x0]
+ str r0, [r2, #0x0]
+ mov r0, #0x0
+ str r0, [r4, #0x4]
+ pop {r4, pc}
+
+ thumb_func_start FUN_02012634
+FUN_02012634: ; 0x02012634
+ push {r4, lr}
+ add r4, r0, #0x0
+ mov r0, #0x1
+ str r0, [r4, #0x4]
+ add r0, r4, #0x0
+ add r1, r4, #0x0
+ ldr r2, _02012658 ; =FUN_020125FC
+ add r0, #0x2c
+ add r1, #0x3c
+ add r3, r4, #0x0
+ blx RTC_GetDateTimeAsync
+ str r0, [r4, #0xc]
+ cmp r0, #0x0
+ beq _02012656
+ bl ErrorHandling
+_02012656:
+ pop {r4, pc}
+ .balign 4
+_02012658: .word FUN_020125FC
+
+ thumb_func_start FUN_0201265C
+FUN_0201265C: ; 0x0201265C
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ ldr r0, _02012684 ; =0x021C4808
+ add r4, r1, #0x0
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x1
+ beq _0201266E
+ bl ErrorHandling
+_0201266E:
+ ldr r2, _02012688 ; =0x021C4818
+ ldmia r2!, {r0-r1}
+ stmia r5!, {r0-r1}
+ ldmia r2!, {r0-r1}
+ ldr r2, _0201268C ; =0x021C4828
+ stmia r5!, {r0-r1}
+ ldmia r2!, {r0-r1}
+ stmia r4!, {r0-r1}
+ ldr r0, [r2, #0x0]
+ str r0, [r4, #0x0]
+ pop {r3-r5, pc}
+ .balign 4
+_02012684: .word 0x021C4808
+_02012688: .word 0x021C4818
+_0201268C: .word 0x021C4828
+
+ thumb_func_start FUN_02012690
+FUN_02012690: ; 0x02012690
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r0, _020126AC ; =0x021C4808
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x1
+ beq _020126A0
+ bl ErrorHandling
+_020126A0:
+ ldr r2, _020126B0 ; =0x021C4828
+ ldmia r2!, {r0-r1}
+ stmia r4!, {r0-r1}
+ ldr r0, [r2, #0x0]
+ str r0, [r4, #0x0]
+ pop {r4, pc}
+ .balign 4
+_020126AC: .word 0x021C4808
+_020126B0: .word 0x021C4828
+
+ thumb_func_start FUN_020126B4
+FUN_020126B4: ; 0x020126B4
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r0, _020126D0 ; =0x021C4808
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x1
+ beq _020126C4
+ bl ErrorHandling
+_020126C4:
+ ldr r2, _020126D4 ; =0x021C4818
+ ldmia r2!, {r0-r1}
+ stmia r4!, {r0-r1}
+ ldmia r2!, {r0-r1}
+ stmia r4!, {r0-r1}
+ pop {r4, pc}
+ .balign 4
+_020126D0: .word 0x021C4808
+_020126D4: .word 0x021C4818
+
+ thumb_func_start FUN_020126D8
+FUN_020126D8: ; 0x020126D8
+ push {r3-r4}
+ ldr r4, _020126F8 ; =0x021C4828
+ mov r0, #0x3c
+ ldr r1, [r4, #0x4]
+ ldr r3, [r4, #0x8]
+ add r2, r1, #0x0
+ mul r2, r0
+ mov r0, #0xe1
+ ldr r1, [r4, #0x0]
+ lsl r0, r0, #0x4
+ mul r0, r1
+ add r0, r2, r0
+ add r0, r3, r0
+ pop {r3-r4}
+ bx lr
+ nop
+_020126F8: .word 0x021C4828
+
+ thumb_func_start FUN_020126FC
+FUN_020126FC: ; 0x020126FC
+ ldr r3, _02012704 ; =RTC_ConvertDateTimeToSecond
+ ldr r0, _02012708 ; =0x021C4818
+ ldr r1, _0201270C ; =0x021C4828
+ bx r3
+ .balign 4
+_02012704: .word RTC_ConvertDateTimeToSecond
+_02012708: .word 0x021C4818
+_0201270C: .word 0x021C4828
+
+ thumb_func_start FUN_02012710
+FUN_02012710: ; 0x02012710
+ push {r4-r6, lr}
+ sub sp, #0x10
+ add r5, r0, #0x0
+ ldr r2, [r5, #0x4]
+ ldr r0, _02012778 ; =0x020ED4B2
+ lsl r1, r2, #0x1
+ ldrh r0, [r0, r1]
+ ldr r3, [r5, #0x8]
+ add r4, r3, r0
+ cmp r2, #0x3
+ blo _02012752
+ ldr r6, [r5, #0x0]
+ mov r0, #0x1e
+ lsr r2, r6, #0x1f
+ lsl r1, r6, #0x1e
+ sub r1, r1, r2
+ ror r1, r0
+ add r0, r2, r1
+ bne _02012742
+ add r0, r6, #0x0
+ mov r1, #0x64
+ blx _s32_div_f
+ cmp r1, #0x0
+ bne _02012750
+_02012742:
+ mov r1, #0x19
+ add r0, r6, #0x0
+ lsl r1, r1, #0x4
+ blx _s32_div_f
+ cmp r1, #0x0
+ bne _02012752
+_02012750:
+ add r4, r4, #0x1
+_02012752:
+ add r6, r5, #0x0
+ add r3, sp, #0x0
+ add r2, r3, #0x0
+ ldmia r6!, {r0-r1}
+ stmia r3!, {r0-r1}
+ ldmia r6!, {r0-r1}
+ stmia r3!, {r0-r1}
+ mov r0, #0x1
+ str r0, [sp, #0x4]
+ str r0, [sp, #0x8]
+ add r0, r2, #0x0
+ blx RTC_ConvertDateToDay
+ add r0, r5, #0x0
+ blx RTC_ConvertDateToDay
+ add r0, r4, #0x0
+ add sp, #0x10
+ pop {r4-r6, pc}
+ .balign 4
+_02012778: .word 0x020ED4B2
+
+ thumb_func_start FUN_0201277C
+FUN_0201277C: ; 0x0201277C
+ push {r3, lr}
+ bl FUN_02012794
+ cmp r0, #0x3
+ beq _0201278A
+ cmp r0, #0x4
+ bne _0201278E
+_0201278A:
+ mov r0, #0x1
+ pop {r3, pc}
+_0201278E:
+ mov r0, #0x0
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_02012794
+FUN_02012794: ; 0x02012794
+ push {lr}
+ sub sp, #0xc
+ add r0, sp, #0x0
+ bl FUN_02012690
+ ldr r0, [sp, #0x0]
+ bl FUN_020127A8
+ add sp, #0xc
+ pop {pc}
+
+ thumb_func_start FUN_020127A8
+FUN_020127A8: ; 0x020127A8
+ push {r4, lr}
+ add r4, r0, #0x0
+ bmi _020127B2
+ cmp r4, #0x18
+ blt _020127B6
+_020127B2:
+ bl ErrorHandling
+_020127B6:
+ ldr r0, _020127BC ; =0x020ED4CC
+ ldrb r0, [r0, r4]
+ pop {r4, pc}
+ .balign 4
+_020127BC: .word 0x020ED4CC
+
+ thumb_func_start FUN_020127C0
+FUN_020127C0: ; 0x020127C0
+ push {r4-r7, lr}
+ sub sp, #0x24
+ add r6, r3, #0x0
+ ldr r3, _0201282C ; =0x020ED4A4
+ add r4, r0, #0x0
+ add r7, r1, #0x0
+ add r5, r2, #0x0
+ add r2, sp, #0x14
+ ldmia r3!, {r0-r1}
+ str r2, [sp, #0x0]
+ stmia r2!, {r0-r1}
+ ldmia r3!, {r0-r1}
+ stmia r2!, {r0-r1}
+ ldr r3, _02012830 ; =0x020ED498
+ add r2, sp, #0x8
+ ldmia r3!, {r0-r1}
+ str r2, [sp, #0x4]
+ stmia r2!, {r0-r1}
+ ldr r0, [r3, #0x0]
+ ldr r1, [sp, #0x4]
+ str r0, [r2, #0x0]
+ ldr r0, [sp, #0x0]
+ blx RTC_ConvertDateTimeToSecond
+ add r2, r1, #0x0
+ add r3, r0, #0x0
+ mov r1, #0x0
+ ldr r0, _02012834 ; =0xBC19137F
+ eor r1, r2
+ eor r0, r3
+ orr r0, r1
+ beq _02012804
+ bl ErrorHandling
+_02012804:
+ sub r0, r4, r5
+ mov r12, r7
+ mov r0, r12
+ sbc r0, r6
+ bge _02012818
+ sub r0, r5, r4
+ sbc r6, r7
+ add sp, #0x24
+ add r1, r6, #0x0
+ pop {r4-r7, pc}
+_02012818:
+ ldr r0, _02012834 ; =0xBC19137F
+ mov r1, #0x0
+ sub r0, r0, r4
+ sbc r1, r7
+ add r0, r5, r0
+ adc r6, r1
+ add r1, r6, #0x0
+ add sp, #0x24
+ pop {r4-r7, pc}
+ nop
+_0201282C: .word 0x020ED4A4
+_02012830: .word 0x020ED498
+_02012834: .word 0xBC19137F
+
+ thumb_func_start FUN_02012838
+FUN_02012838: ; 0x02012838
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ add r1, r5, #0x1
+ add r0, r4, #0x0
+ lsl r1, r1, #0x3
+ bl FUN_02016998
+ cmp r0, #0x0
+ beq _0201286E
+ mov r2, #0x0
+ cmp r5, #0x0
+ bls _02012862
+ add r3, r0, #0x0
+ add r1, r2, #0x0
+_02012856:
+ str r1, [r3, #0x0]
+ str r1, [r3, #0x4]
+ add r2, r2, #0x1
+ add r3, #0x8
+ cmp r2, r5
+ blo _02012856
+_02012862:
+ mov r1, #0x0
+ lsl r2, r2, #0x3
+ mvn r1, r1
+ str r1, [r0, r2]
+ add r1, r0, r2
+ str r4, [r1, #0x4]
+_0201286E:
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_02012870
+FUN_02012870: ; 0x02012870
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl FUN_0201291C
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ pop {r4, pc}
+
+ thumb_func_start FUN_02012880
+FUN_02012880: ; 0x02012880
+ push {r3-r7, lr}
+ add r6, r1, #0x0
+ add r1, sp, #0x0
+ add r7, r2, #0x0
+ add r5, r3, #0x0
+ bl FUN_020128E0
+ add r4, r0, #0x0
+ beq _0201289E
+ add r0, r6, #0x0
+ add r1, r7, #0x0
+ bl FUN_0200A914
+ str r0, [r4, #0x0]
+ str r5, [r4, #0x4]
+_0201289E:
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_020128A0
+FUN_020128A0: ; 0x020128A0
+ push {r3-r6, lr}
+ sub sp, #0x4
+ add r6, r1, #0x0
+ add r1, sp, #0x0
+ add r5, r2, #0x0
+ bl FUN_020128E0
+ add r4, r0, #0x0
+ beq _020128BE
+ ldr r1, [sp, #0x0]
+ add r0, r6, #0x0
+ bl FUN_02021ACC
+ str r0, [r4, #0x0]
+ str r5, [r4, #0x4]
+_020128BE:
+ add sp, #0x4
+ pop {r3-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_020128C4
+FUN_020128C4: ; 0x020128C4
+ push {r3-r4, lr}
+ sub sp, #0x4
+ add r4, r1, #0x0
+ add r1, sp, #0x0
+ bl FUN_020128E0
+ cmp r0, #0x0
+ beq _020128DC
+ ldr r1, [r4, #0x0]
+ str r1, [r0, #0x0]
+ ldr r1, [r4, #0x4]
+ str r1, [r0, #0x4]
+_020128DC:
+ add sp, #0x4
+ pop {r3-r4, pc}
+
+ thumb_func_start FUN_020128E0
+FUN_020128E0: ; 0x020128E0
+ push {r4, lr}
+ ldr r3, [r0, #0x0]
+ cmp r3, #0x0
+ beq _02012900
+ mov r2, #0x0
+ mvn r2, r2
+_020128EC:
+ cmp r3, r2
+ bne _020128F8
+ bl ErrorHandling
+ mov r0, #0x0
+ pop {r4, pc}
+_020128F8:
+ add r0, #0x8
+ ldr r3, [r0, #0x0]
+ cmp r3, #0x0
+ bne _020128EC
+_02012900:
+ mov r2, #0x0
+ mvn r2, r2
+ add r4, r0, #0x0
+ cmp r3, r2
+ beq _02012912
+_0201290A:
+ add r0, #0x8
+ ldr r3, [r0, #0x0]
+ cmp r3, r2
+ bne _0201290A
+_02012912:
+ ldr r0, [r0, #0x4]
+ str r0, [r1, #0x0]
+ add r0, r4, #0x0
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0201291C
+FUN_0201291C: ; 0x0201291C
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ mov r0, #0x0
+ ldr r1, [r5, #0x0]
+ mvn r0, r0
+ cmp r1, r0
+ beq _02012942
+ mov r4, #0x0
+ add r6, r0, #0x0
+_0201292E:
+ ldr r0, [r5, #0x0]
+ cmp r0, #0x0
+ beq _02012942
+ bl FUN_02021A20
+ str r4, [r5, #0x0]
+ add r5, #0x8
+ ldr r0, [r5, #0x0]
+ cmp r0, r6
+ bne _0201292E
+_02012942:
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_02012944
+FUN_02012944: ; 0x02012944
+ push {r3-r5, lr}
+ add r5, r1, #0x0
+ mov r1, #0xc
+ add r4, r2, #0x0
+ bl FUN_02016998
+ mov r1, #0x0
+ strb r1, [r0, #0x0]
+ strb r1, [r0, #0x1]
+ strb r1, [r0, #0x2]
+ strb r1, [r0, #0x3]
+ strb r1, [r0, #0x4]
+ strb r1, [r0, #0x5]
+ strb r1, [r0, #0x6]
+ strb r1, [r0, #0x7]
+ strb r1, [r0, #0x8]
+ strb r1, [r0, #0x9]
+ strb r1, [r0, #0xa]
+ strb r1, [r0, #0xb]
+ mov r1, #0x1
+ strb r1, [r0, #0x9]
+ str r5, [r0, #0x0]
+ str r4, [r0, #0x4]
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_02012974
+FUN_02012974: ; 0x02012974
+ push {r4, lr}
+ add r4, r0, #0x0
+ bne _0201297E
+ bl ErrorHandling
+_0201297E:
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02012988
+FUN_02012988: ; 0x02012988
+ push {r4, lr}
+ add r4, r0, #0x0
+ bne _02012992
+ bl ErrorHandling
+_02012992:
+ ldrb r0, [r4, #0x8]
+ lsl r0, r0, #0x2
+ ldr r0, [r4, r0]
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0201299C
+FUN_0201299C: ; 0x0201299C
+ push {r4, lr}
+ add r4, r0, #0x0
+ bne _020129A6
+ bl ErrorHandling
+_020129A6:
+ ldrb r1, [r4, #0x8]
+ mov r0, #0x1
+ eor r0, r1
+ lsl r0, r0, #0x2
+ ldr r0, [r4, r0]
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_020129B4
+FUN_020129B4: ; 0x020129B4
+ cmp r0, #0x0
+ beq _020129C6
+ ldrb r1, [r0, #0x9]
+ cmp r1, #0x0
+ beq _020129C6
+ ldrb r2, [r0, #0x8]
+ mov r1, #0x1
+ eor r1, r2
+ strb r1, [r0, #0x8]
+_020129C6:
+ bx lr
+
+ thumb_func_start FUN_020129C8
+FUN_020129C8: ; 0x020129C8
+ push {r3, lr}
+ mov r0, #0x0
+ blx MI_StopDma
+ mov r0, #0x0
+ blx MI_WaitDma
+ pop {r3, pc}
+
+ thumb_func_start FUN_020129D8
+FUN_020129D8: ; 0x020129D8
+ push {r4-r6, lr}
+ add r6, r0, #0x0
+ add r5, r1, #0x0
+ add r4, r2, #0x0
+ cmp r3, #0x1
+ bne _020129F2
+ mov r0, #0x0
+ add r1, r6, #0x0
+ add r2, r5, #0x0
+ add r3, r4, #0x0
+ blx MI_HBlankDmaCopy32
+ pop {r4-r6, pc}
+_020129F2:
+ mov r0, #0x0
+ add r1, r6, #0x0
+ add r2, r5, #0x0
+ add r3, r4, #0x0
+ blx MI_HBlankDmaCopy16
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_02012A00
+FUN_02012A00: ; 0x02012A00
+ push {r3-r5, lr}
+ ldr r1, _02012A2C ; =0x0000079C
+ add r5, r0, #0x0
+ bl FUN_02016998
+ ldr r2, _02012A2C ; =0x0000079C
+ mov r1, #0x0
+ add r4, r0, #0x0
+ blx Call_FillMemWithValue
+ mov r2, #0x3
+ lsl r2, r2, #0x8
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ add r2, r4, r2
+ bl FUN_02012944
+ mov r1, #0x6
+ lsl r1, r1, #0x8
+ str r0, [r4, r1]
+ add r0, r4, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+_02012A2C: .word 0x0000079C
+
+ thumb_func_start FUN_02012A30
+FUN_02012A30: ; 0x02012A30
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ add r6, r2, #0x0
+ add r7, r3, #0x0
+ cmp r5, #0x0
+ bne _02012A42
+ bl ErrorHandling
+_02012A42:
+ ldr r0, _02012AB0 ; =0x00000604
+ ldr r0, [r5, r0]
+ cmp r0, #0x0
+ beq _02012A4E
+ bl ErrorHandling
+_02012A4E:
+ ldr r0, _02012AB4 ; =0x0000078C
+ mov r2, #0x0
+ strb r4, [r5, r0]
+ add r1, r0, #0x1
+ strb r6, [r5, r1]
+ add r1, r0, #0x0
+ add r1, #0xc
+ strh r2, [r5, r1]
+ add r2, sp, #0x8
+ mov r1, #0x14
+ ldrsh r2, [r2, r1]
+ add r1, r0, #0x0
+ add r1, #0xe
+ strh r2, [r5, r1]
+ add r1, r0, #0x4
+ ldr r2, [sp, #0x20]
+ add r0, #0x8
+ str r2, [r5, r1]
+ ldr r1, [sp, #0x24]
+ ldr r3, [sp, #0x18]
+ str r1, [r5, r0]
+ ldr r0, _02012AB8 ; =0x0000060C
+ mov r1, #0xc0
+ add r0, r5, r0
+ add r2, r7, #0x0
+ bl FUN_02012B88
+ ldr r0, _02012ABC ; =FUN_02012BE4
+ ldr r2, [sp, #0x28]
+ add r1, r5, #0x0
+ bl FUN_0200CA44
+ ldr r1, _02012AB0 ; =0x00000604
+ mov r2, #0x3
+ str r0, [r5, r1]
+ ldr r0, _02012AC0 ; =0x00000794
+ add r1, r5, #0x0
+ ldr r0, [r5, r0]
+ lsl r2, r2, #0x8
+ blx MIi_CpuClear32
+ ldr r0, _02012AC0 ; =0x00000794
+ mov r2, #0x3
+ lsl r2, r2, #0x8
+ ldr r0, [r5, r0]
+ add r1, r5, r2
+ blx MIi_CpuClear32
+ pop {r3-r7, pc}
+ .balign 4
+_02012AB0: .word 0x00000604
+_02012AB4: .word 0x0000078C
+_02012AB8: .word 0x0000060C
+_02012ABC: .word FUN_02012BE4
+_02012AC0: .word 0x00000794
+
+ thumb_func_start FUN_02012AC4
+FUN_02012AC4: ; 0x02012AC4
+ push {r4, lr}
+ add r4, r0, #0x0
+ bne _02012ACE
+ bl ErrorHandling
+_02012ACE:
+ ldr r0, _02012AF8 ; =0x00000604
+ ldr r0, [r4, r0]
+ cmp r0, #0x0
+ beq _02012AF4
+ bl FUN_0200CAB4
+ ldr r0, _02012AF8 ; =0x00000604
+ mov r1, #0x0
+ str r1, [r4, r0]
+ sub r0, r0, #0x4
+ ldr r0, [r4, r0]
+ bl FUN_02012988
+ ldr r1, _02012AFC ; =0x00000794
+ mov r2, #0x3
+ ldr r1, [r4, r1]
+ lsl r2, r2, #0x8
+ blx Call_FillMemWithValue
+_02012AF4:
+ pop {r4, pc}
+ nop
+_02012AF8: .word 0x00000604
+_02012AFC: .word 0x00000794
+
+ thumb_func_start FUN_02012B00
+FUN_02012B00: ; 0x02012B00
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl FUN_02012AC4
+ bl FUN_02012C90
+ mov r0, #0x6
+ lsl r0, r0, #0x8
+ ldr r0, [r4, r0]
+ bl FUN_02012974
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02012B20
+FUN_02012B20: ; 0x02012B20
+ mov r1, #0x6
+ lsl r1, r1, #0x8
+ ldr r3, _02012B2C ; =FUN_02012988
+ ldr r0, [r0, r1]
+ bx r3
+ nop
+_02012B2C: .word FUN_02012988
+
+ thumb_func_start FUN_02012B30
+FUN_02012B30: ; 0x02012B30
+ push {r4, lr}
+ add r4, r0, #0x0
+ beq _02012B5E
+ ldr r0, _02012B60 ; =0x00000604
+ ldr r1, [r4, r0]
+ cmp r1, #0x0
+ beq _02012B5E
+ sub r0, r0, #0x4
+ ldr r0, [r4, r0]
+ bl FUN_020129B4
+ mov r0, #0x6
+ lsl r0, r0, #0x8
+ ldr r0, [r4, r0]
+ bl FUN_02012988
+ add r1, r0, #0x0
+ ldr r0, _02012B64 ; =0x00000794
+ mov r2, #0x3
+ ldr r0, [r4, r0]
+ lsl r2, r2, #0x8
+ blx MIi_CpuClear32
+_02012B5E:
+ pop {r4, pc}
+ .balign 4
+_02012B60: .word 0x00000604
+_02012B64: .word 0x00000794
+
+ thumb_func_start FUN_02012B68
+FUN_02012B68: ; 0x02012B68
+ push {r4, lr}
+ add r4, r0, #0x0
+ beq _02012B80
+ ldr r0, _02012B84 ; =0x00000604
+ ldr r0, [r4, r0]
+ cmp r0, #0x0
+ beq _02012B80
+ bl FUN_02012C90
+ add r0, r4, #0x0
+ bl FUN_02012C98
+_02012B80:
+ pop {r4, pc}
+ nop
+_02012B84: .word 0x00000604
+
+ thumb_func_start FUN_02012B88
+FUN_02012B88: ; 0x02012B88
+ push {r4-r7, lr}
+ sub sp, #0xc
+ mov r4, #0x0
+ add r7, r1, #0x0
+ add r5, r0, #0x0
+ add r6, r4, #0x0
+ str r2, [sp, #0x0]
+ cmp r7, #0x0
+ bls _02012BD6
+ asr r0, r3, #0x1f
+ str r3, [sp, #0x4]
+ str r0, [sp, #0x8]
+_02012BA0:
+ asr r0, r4, #0x4
+ lsl r1, r0, #0x2
+ ldr r0, _02012BDC ; =0x020FFA38
+ ldr r2, [sp, #0x4]
+ ldrsh r0, [r0, r1]
+ ldr r3, [sp, #0x8]
+ asr r1, r0, #0x1f
+ blx _ll_mul
+ mov r2, #0x2
+ lsl r2, r2, #0xa
+ add r0, r0, r2
+ ldr r2, _02012BE0 ; =0x00000000
+ adc r1, r2
+ lsl r1, r1, #0x14
+ lsr r0, r0, #0xc
+ orr r0, r1
+ asr r0, r0, #0xc
+ strh r0, [r5, #0x0]
+ ldr r0, [sp, #0x0]
+ add r6, r6, #0x1
+ add r0, r4, r0
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+ add r5, r5, #0x2
+ cmp r6, r7
+ blo _02012BA0
+_02012BD6:
+ add sp, #0xc
+ pop {r4-r7, pc}
+ nop
+_02012BDC: .word 0x020FFA38
+_02012BE0: .word 0x00000000
+
+ thumb_func_start FUN_02012BE4
+FUN_02012BE4: ; 0x02012BE4
+ push {r3-r7, lr}
+ mov r0, #0x6
+ add r6, r1, #0x0
+ lsl r0, r0, #0x8
+ ldr r0, [r6, r0]
+ bl FUN_02012988
+ add r5, r0, #0x0
+ ldr r0, _02012C80 ; =0x00000798
+ mov r1, #0x64
+ ldrsh r0, [r6, r0]
+ blx _s32_div_f
+ lsl r0, r0, #0x18
+ lsr r3, r0, #0x18
+ ldr r0, _02012C84 ; =0x0000078C
+ ldrb r4, [r6, r0]
+ add r0, r0, #0x1
+ ldrb r0, [r6, r0]
+ cmp r4, r0
+ bgt _02012C4C
+ lsl r0, r4, #0x2
+ add r5, r5, r0
+_02012C12:
+ ldr r2, [r5, #0x0]
+ lsl r0, r2, #0x10
+ asr r7, r0, #0x10
+ lsl r0, r3, #0x1
+ add r1, r6, r0
+ ldr r0, _02012C88 ; =0x0000060C
+ ldrsh r0, [r1, r0]
+ add r0, r7, r0
+ lsl r0, r0, #0x10
+ asr r1, r0, #0x10
+ lsr r0, r2, #0x10
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ lsl r1, r1, #0x10
+ lsl r0, r0, #0x10
+ lsr r1, r1, #0x10
+ orr r0, r1
+ stmia r5!, {r0}
+ add r0, r3, #0x1
+ mov r1, #0xc0
+ blx _s32_div_f
+ lsl r0, r1, #0x18
+ lsr r3, r0, #0x18
+ ldr r0, _02012C8C ; =0x0000078D
+ add r4, r4, #0x1
+ ldrb r0, [r6, r0]
+ cmp r4, r0
+ ble _02012C12
+_02012C4C:
+ ldr r1, _02012C80 ; =0x00000798
+ add r0, r1, #0x2
+ ldrsh r2, [r6, r1]
+ ldrsh r0, [r6, r0]
+ add r4, r6, r1
+ add r0, r2, r0
+ strh r0, [r4, #0x0]
+ ldrsh r0, [r6, r1]
+ mov r1, #0x4b
+ lsl r1, r1, #0x8
+ cmp r0, r1
+ blt _02012C70
+ mov r0, #0x0
+ ldrsh r0, [r4, r0]
+ blx _s32_div_f
+ strh r1, [r4, #0x0]
+ pop {r3-r7, pc}
+_02012C70:
+ cmp r0, #0x0
+ bge _02012C7C
+ mov r0, #0x0
+ ldrsh r0, [r4, r0]
+ add r0, r0, r1
+ strh r0, [r4, #0x0]
+_02012C7C:
+ pop {r3-r7, pc}
+ nop
+_02012C80: .word 0x00000798
+_02012C84: .word 0x0000078C
+_02012C88: .word 0x0000060C
+_02012C8C: .word 0x0000078D
+
+ thumb_func_start FUN_02012C90
+FUN_02012C90: ; 0x02012C90
+ ldr r3, _02012C94 ; =FUN_020129C8
+ bx r3
+ .balign 4
+_02012C94: .word FUN_020129C8
+
+ thumb_func_start FUN_02012C98
+FUN_02012C98: ; 0x02012C98
+ push {r3-r5, lr}
+ add r4, r0, #0x0
+ bne _02012CA2
+ bl ErrorHandling
+_02012CA2:
+ mov r0, #0x6
+ lsl r0, r0, #0x8
+ ldr r0, [r4, r0]
+ bl FUN_0201299C
+ mov r1, #0x3
+ lsl r1, r1, #0x8
+ add r5, r0, #0x0
+ blx DC_FlushRange
+ mov r1, #0x79
+ lsl r1, r1, #0x4
+ ldr r1, [r4, r1]
+ add r0, r5, #0x0
+ mov r2, #0x4
+ mov r3, #0x1
+ bl FUN_020129D8
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_02012CC8
+FUN_02012CC8: ; 0x02012CC8
+ mov r1, #0x0
+ ldr r2, _02012CD8 ; =0x021C4858
+ add r0, r1, #0x0
+_02012CCE:
+ add r1, r1, #0x1
+ stmia r2!, {r0}
+ cmp r1, #0x10
+ blt _02012CCE
+ bx lr
+ .balign 4
+_02012CD8: .word 0x021C4858
+
+ thumb_func_start FUN_02012CDC
+FUN_02012CDC: ; 0x02012CDC
+ push {r3-r7, lr}
+ sub sp, #0x10
+ str r1, [sp, #0x8]
+ ldr r1, _02012DD0 ; =0x021C4858
+ add r7, r0, #0x0
+ add r6, r2, #0x0
+ str r3, [sp, #0xc]
+ mov r5, #0x0
+_02012CEC:
+ ldr r0, [r1, #0x0]
+ cmp r0, #0x0
+ beq _02012CFA
+ add r5, r5, #0x1
+ add r1, r1, #0x4
+ cmp r5, #0x10
+ blt _02012CEC
+_02012CFA:
+ cmp r5, #0x10
+ blt _02012D04
+ add sp, #0x10
+ mov r0, #0x0
+ pop {r3-r7, pc}
+_02012D04:
+ ldr r0, [sp, #0x2c]
+ mov r1, #0xdc
+ bl FUN_02016998
+ add r4, r0, #0x0
+ bne _02012D14
+ bl ErrorHandling
+_02012D14:
+ add r0, r4, #0x0
+ mov r1, #0x0
+ mov r2, #0xdc
+ blx Call_FillMemWithValue
+ add r2, r4, #0x0
+ ldr r0, [sp, #0x8]
+ str r7, [r4, #0x18]
+ ldr r3, _02012DD4 ; =0x020ED4FC
+ str r0, [r4, #0x1c]
+ ldmia r3!, {r0-r1}
+ add r2, #0x34
+ stmia r2!, {r0-r1}
+ ldr r0, [r3, #0x0]
+ ldr r3, _02012DD8 ; =0x020ED4E4
+ str r0, [r2, #0x0]
+ add r2, r4, #0x0
+ ldmia r3!, {r0-r1}
+ add r2, #0x40
+ stmia r2!, {r0-r1}
+ ldr r0, [r3, #0x0]
+ ldr r3, _02012DDC ; =0x020ED4F0
+ str r0, [r2, #0x0]
+ add r2, r4, #0x0
+ ldmia r3!, {r0-r1}
+ add r2, #0x4c
+ stmia r2!, {r0-r1}
+ ldr r0, [r3, #0x0]
+ mov r1, #0x0
+ str r0, [r2, #0x0]
+ ldr r2, [sp, #0xc]
+ add r0, r6, #0x0
+ blx Call_FillMemWithValue
+ ldr r0, [sp, #0xc]
+ str r6, [r4, #0xc]
+ str r6, [r4, #0x10]
+ add r0, r6, r0
+ str r0, [r4, #0x14]
+ add r0, r4, #0x0
+ add r0, #0xda
+ strb r5, [r0, #0x0]
+ ldr r0, _02012DD0 ; =0x021C4858
+ lsl r5, r5, #0x2
+ str r4, [r0, r5]
+ ldr r0, [sp, #0x28]
+ cmp r0, #0x1
+ bne _02012DA8
+ ldr r0, [sp, #0x2c]
+ bl FUN_0201EB64
+ str r0, [r4, #0x20]
+ mov r3, #0x0
+ str r3, [r4, #0x24]
+ str r3, [r4, #0x28]
+ mov r0, #0x2
+ str r3, [r4, #0x2c]
+ lsl r0, r0, #0xc
+ strh r0, [r4, #0x30]
+ str r3, [sp, #0x0]
+ ldr r0, [r4, #0x20]
+ ldr r1, _02012DD4 ; =0x020ED4FC
+ str r0, [sp, #0x4]
+ ldrh r2, [r4, #0x30]
+ ldr r0, _02012DDC ; =0x020ED4F0
+ bl FUN_0201ED5C
+ add r0, r4, #0x0
+ mov r1, #0x0
+ add r0, #0xdb
+ strb r1, [r0, #0x0]
+ ldr r0, [r4, #0x20]
+ bl FUN_0201EB8C
+_02012DA8:
+ mov r0, #0x6
+ str r0, [sp, #0x0]
+ mov r0, #0x3f
+ str r0, [sp, #0x4]
+ ldr r0, _02012DE0 ; =0x020ED508
+ mov r1, #0x14
+ ldr r0, [r0, r5]
+ mov r2, #0xc8
+ mov r3, #0x5
+ blx FUN_0208B4A0
+ str r0, [r4, #0x0]
+ ldr r1, _02012DD8 ; =0x020ED4E4
+ add r0, r4, #0x0
+ bl FUN_020133FC
+ add r0, r4, #0x0
+ add sp, #0x10
+ pop {r3-r7, pc}
+ nop
+_02012DD0: .word 0x021C4858
+_02012DD4: .word 0x020ED4FC
+_02012DD8: .word 0x020ED4E4
+_02012DDC: .word 0x020ED4F0
+_02012DE0: .word 0x020ED508
+
+ thumb_func_start FUN_02012DE4
+FUN_02012DE4: ; 0x02012DE4
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ bl FUN_020133D0
+ add r0, r5, #0x0
+ add r0, #0xd8
+ ldrb r1, [r0, #0x0]
+ mov r0, #0x1
+ tst r0, r1
+ beq _02012E02
+ add r0, r5, #0x0
+ add r0, #0x58
+ blx FUN_020AE8CC
+ b _02012E22
+_02012E02:
+ mov r0, #0x2
+ tst r0, r1
+ beq _02012E22
+ mov r6, #0x0
+ add r4, r5, #0x0
+ add r7, r6, #0x0
+_02012E0E:
+ ldr r0, [r4, #0x58]
+ cmp r0, #0x0
+ beq _02012E1A
+ blx FUN_020AF894
+ str r7, [r4, #0x58]
+_02012E1A:
+ add r6, r6, #0x1
+ add r4, r4, #0x4
+ cmp r6, #0x10
+ blt _02012E0E
+_02012E22:
+ add r0, r5, #0x0
+ add r0, #0xd8
+ ldrb r1, [r0, #0x0]
+ mov r0, #0x4
+ tst r0, r1
+ beq _02012E38
+ add r0, r5, #0x0
+ add r0, #0x98
+ blx FUN_020AEC7C
+ b _02012E60
+_02012E38:
+ mov r0, #0x8
+ tst r0, r1
+ beq _02012E60
+ mov r6, #0x0
+ add r4, r5, #0x0
+ add r7, r6, #0x0
+_02012E44:
+ add r0, r4, #0x0
+ add r0, #0x98
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ beq _02012E58
+ blx FUN_020AFA80
+ add r0, r4, #0x0
+ add r0, #0x98
+ str r7, [r0, #0x0]
+_02012E58:
+ add r6, r6, #0x1
+ add r4, r4, #0x4
+ cmp r6, #0x10
+ blt _02012E44
+_02012E60:
+ add r0, r5, #0x0
+ mov r1, #0x0
+ add r0, #0xd8
+ strb r1, [r0, #0x0]
+ str r1, [r5, #0x8]
+ ldr r0, [r5, #0x4]
+ cmp r0, #0x0
+ beq _02012E78
+ bl FUN_02016A18
+ mov r0, #0x0
+ str r0, [r5, #0x4]
+_02012E78:
+ ldr r2, _02012EA8 ; =0x021C4858
+ mov r1, #0x0
+_02012E7C:
+ ldr r0, [r2, #0x0]
+ cmp r0, r5
+ bne _02012E8C
+ ldr r0, _02012EA8 ; =0x021C4858
+ mov r2, #0x0
+ lsl r1, r1, #0x2
+ str r2, [r0, r1]
+ b _02012E94
+_02012E8C:
+ add r1, r1, #0x1
+ add r2, r2, #0x4
+ cmp r1, #0x10
+ blt _02012E7C
+_02012E94:
+ ldr r0, [r5, #0x20]
+ cmp r0, #0x0
+ beq _02012E9E
+ bl FUN_0201EB70
+_02012E9E:
+ add r0, r5, #0x0
+ bl FUN_02016A18
+ pop {r3-r7, pc}
+ nop
+_02012EA8: .word 0x021C4858
+
+ thumb_func_start FUN_02012EAC
+FUN_02012EAC: ; 0x02012EAC
+ push {r3-r5, lr}
+ ldr r5, _02012EC8 ; =0x021C4858
+ mov r4, #0x0
+_02012EB2:
+ ldr r0, [r5, #0x0]
+ cmp r0, #0x0
+ beq _02012EBC
+ bl FUN_02012DE4
+_02012EBC:
+ add r4, r4, #0x1
+ add r5, r5, #0x4
+ cmp r4, #0x10
+ blt _02012EB2
+ pop {r3-r5, pc}
+ nop
+_02012EC8: .word 0x021C4858
+
+ thumb_func_start FUN_02012ECC
+FUN_02012ECC: ; 0x02012ECC
+ push {r4, lr}
+ ldr r1, _02012EF4 ; =0x021C4850
+ mov r2, #0x3
+ ldr r1, [r1, #0x8]
+ ldr r4, [r1, #0x10]
+ add r0, r4, r0
+ add r3, r0, #0x0
+ and r3, r2
+ beq _02012EE4
+ mov r2, #0x4
+ sub r2, r2, r3
+ add r0, r0, r2
+_02012EE4:
+ str r0, [r1, #0x10]
+ ldr r1, [r1, #0x14]
+ cmp r0, r1
+ blo _02012EF0
+ bl ErrorHandling
+_02012EF0:
+ add r0, r4, #0x0
+ pop {r4, pc}
+ .balign 4
+_02012EF4: .word 0x021C4850
+
+ thumb_func_start FUN_02012EF8
+FUN_02012EF8: ; 0x02012EF8
+ push {r4, lr}
+ ldr r1, _02012F20 ; =0x021C4850
+ mov r2, #0x3
+ ldr r1, [r1, #0xc]
+ ldr r4, [r1, #0x10]
+ add r0, r4, r0
+ add r3, r0, #0x0
+ and r3, r2
+ beq _02012F10
+ mov r2, #0x4
+ sub r2, r2, r3
+ add r0, r0, r2
+_02012F10:
+ str r0, [r1, #0x10]
+ ldr r1, [r1, #0x14]
+ cmp r0, r1
+ blo _02012F1C
+ bl ErrorHandling
+_02012F1C:
+ add r0, r4, #0x0
+ pop {r4, pc}
+ .balign 4
+_02012F20: .word 0x021C4850
+
+ thumb_func_start FUN_02012F24
+FUN_02012F24: ; 0x02012F24
+ push {r4, lr}
+ ldr r1, _02012F4C ; =0x021C4850
+ mov r2, #0x3
+ ldr r1, [r1, #0x10]
+ ldr r4, [r1, #0x10]
+ add r0, r4, r0
+ add r3, r0, #0x0
+ and r3, r2
+ beq _02012F3C
+ mov r2, #0x4
+ sub r2, r2, r3
+ add r0, r0, r2
+_02012F3C:
+ str r0, [r1, #0x10]
+ ldr r1, [r1, #0x14]
+ cmp r0, r1
+ blo _02012F48
+ bl ErrorHandling
+_02012F48:
+ add r0, r4, #0x0
+ pop {r4, pc}
+ .balign 4
+_02012F4C: .word 0x021C4850
+
+ thumb_func_start FUN_02012F50
+FUN_02012F50: ; 0x02012F50
+ push {r4, lr}
+ ldr r1, _02012F78 ; =0x021C4850
+ mov r2, #0x3
+ ldr r1, [r1, #0x14]
+ ldr r4, [r1, #0x10]
+ add r0, r4, r0
+ add r3, r0, #0x0
+ and r3, r2
+ beq _02012F68
+ mov r2, #0x4
+ sub r2, r2, r3
+ add r0, r0, r2
+_02012F68:
+ str r0, [r1, #0x10]
+ ldr r1, [r1, #0x14]
+ cmp r0, r1
+ blo _02012F74
+ bl ErrorHandling
+_02012F74:
+ add r0, r4, #0x0
+ pop {r4, pc}
+ .balign 4
+_02012F78: .word 0x021C4850
+
+ thumb_func_start FUN_02012F7C
+FUN_02012F7C: ; 0x02012F7C
+ push {r4, lr}
+ ldr r1, _02012FA4 ; =0x021C4850
+ mov r2, #0x3
+ ldr r1, [r1, #0x18]
+ ldr r4, [r1, #0x10]
+ add r0, r4, r0
+ add r3, r0, #0x0
+ and r3, r2
+ beq _02012F94
+ mov r2, #0x4
+ sub r2, r2, r3
+ add r0, r0, r2
+_02012F94:
+ str r0, [r1, #0x10]
+ ldr r1, [r1, #0x14]
+ cmp r0, r1
+ blo _02012FA0
+ bl ErrorHandling
+_02012FA0:
+ add r0, r4, #0x0
+ pop {r4, pc}
+ .balign 4
+_02012FA4: .word 0x021C4850
+
+ thumb_func_start FUN_02012FA8
+FUN_02012FA8: ; 0x02012FA8
+ push {r4, lr}
+ ldr r1, _02012FD0 ; =0x021C4850
+ mov r2, #0x3
+ ldr r1, [r1, #0x1c]
+ ldr r4, [r1, #0x10]
+ add r0, r4, r0
+ add r3, r0, #0x0
+ and r3, r2
+ beq _02012FC0
+ mov r2, #0x4
+ sub r2, r2, r3
+ add r0, r0, r2
+_02012FC0:
+ str r0, [r1, #0x10]
+ ldr r1, [r1, #0x14]
+ cmp r0, r1
+ blo _02012FCC
+ bl ErrorHandling
+_02012FCC:
+ add r0, r4, #0x0
+ pop {r4, pc}
+ .balign 4
+_02012FD0: .word 0x021C4850
+
+ thumb_func_start FUN_02012FD4
+FUN_02012FD4: ; 0x02012FD4
+ push {r4, lr}
+ ldr r1, _02012FFC ; =0x021C4850
+ mov r2, #0x3
+ ldr r1, [r1, #0x20]
+ ldr r4, [r1, #0x10]
+ add r0, r4, r0
+ add r3, r0, #0x0
+ and r3, r2
+ beq _02012FEC
+ mov r2, #0x4
+ sub r2, r2, r3
+ add r0, r0, r2
+_02012FEC:
+ str r0, [r1, #0x10]
+ ldr r1, [r1, #0x14]
+ cmp r0, r1
+ blo _02012FF8
+ bl ErrorHandling
+_02012FF8:
+ add r0, r4, #0x0
+ pop {r4, pc}
+ .balign 4
+_02012FFC: .word 0x021C4850
+
+ thumb_func_start FUN_02013000
+FUN_02013000: ; 0x02013000
+ push {r4, lr}
+ ldr r1, _02013028 ; =0x021C4850
+ mov r2, #0x3
+ ldr r1, [r1, #0x24]
+ ldr r4, [r1, #0x10]
+ add r0, r4, r0
+ add r3, r0, #0x0
+ and r3, r2
+ beq _02013018
+ mov r2, #0x4
+ sub r2, r2, r3
+ add r0, r0, r2
+_02013018:
+ str r0, [r1, #0x10]
+ ldr r1, [r1, #0x14]
+ cmp r0, r1
+ blo _02013024
+ bl ErrorHandling
+_02013024:
+ add r0, r4, #0x0
+ pop {r4, pc}
+ .balign 4
+_02013028: .word 0x021C4850
+
+ thumb_func_start FUN_0201302C
+FUN_0201302C: ; 0x0201302C
+ push {r4, lr}
+ ldr r1, _02013054 ; =0x021C4850
+ mov r2, #0x3
+ ldr r1, [r1, #0x28]
+ ldr r4, [r1, #0x10]
+ add r0, r4, r0
+ add r3, r0, #0x0
+ and r3, r2
+ beq _02013044
+ mov r2, #0x4
+ sub r2, r2, r3
+ add r0, r0, r2
+_02013044:
+ str r0, [r1, #0x10]
+ ldr r1, [r1, #0x14]
+ cmp r0, r1
+ blo _02013050
+ bl ErrorHandling
+_02013050:
+ add r0, r4, #0x0
+ pop {r4, pc}
+ .balign 4
+_02013054: .word 0x021C4850
+
+ thumb_func_start FUN_02013058
+FUN_02013058: ; 0x02013058
+ push {r4, lr}
+ ldr r1, _02013080 ; =0x021C4850
+ mov r2, #0x3
+ ldr r1, [r1, #0x2c]
+ ldr r4, [r1, #0x10]
+ add r0, r4, r0
+ add r3, r0, #0x0
+ and r3, r2
+ beq _02013070
+ mov r2, #0x4
+ sub r2, r2, r3
+ add r0, r0, r2
+_02013070:
+ str r0, [r1, #0x10]
+ ldr r1, [r1, #0x14]
+ cmp r0, r1
+ blo _0201307C
+ bl ErrorHandling
+_0201307C:
+ add r0, r4, #0x0
+ pop {r4, pc}
+ .balign 4
+_02013080: .word 0x021C4850
+
+ thumb_func_start FUN_02013084
+FUN_02013084: ; 0x02013084
+ push {r4, lr}
+ ldr r1, _020130AC ; =0x021C4850
+ mov r2, #0x3
+ ldr r1, [r1, #0x30]
+ ldr r4, [r1, #0x10]
+ add r0, r4, r0
+ add r3, r0, #0x0
+ and r3, r2
+ beq _0201309C
+ mov r2, #0x4
+ sub r2, r2, r3
+ add r0, r0, r2
+_0201309C:
+ str r0, [r1, #0x10]
+ ldr r1, [r1, #0x14]
+ cmp r0, r1
+ blo _020130A8
+ bl ErrorHandling
+_020130A8:
+ add r0, r4, #0x0
+ pop {r4, pc}
+ .balign 4
+_020130AC: .word 0x021C4850
+
+ thumb_func_start FUN_020130B0
+FUN_020130B0: ; 0x020130B0
+ push {r4, lr}
+ ldr r1, _020130D8 ; =0x021C4850
+ mov r2, #0x3
+ ldr r1, [r1, #0x34]
+ ldr r4, [r1, #0x10]
+ add r0, r4, r0
+ add r3, r0, #0x0
+ and r3, r2
+ beq _020130C8
+ mov r2, #0x4
+ sub r2, r2, r3
+ add r0, r0, r2
+_020130C8:
+ str r0, [r1, #0x10]
+ ldr r1, [r1, #0x14]
+ cmp r0, r1
+ blo _020130D4
+ bl ErrorHandling
+_020130D4:
+ add r0, r4, #0x0
+ pop {r4, pc}
+ .balign 4
+_020130D8: .word 0x021C4850
+
+ thumb_func_start FUN_020130DC
+FUN_020130DC: ; 0x020130DC
+ push {r4, lr}
+ ldr r1, _02013104 ; =0x021C4850
+ mov r2, #0x3
+ ldr r1, [r1, #0x38]
+ ldr r4, [r1, #0x10]
+ add r0, r4, r0
+ add r3, r0, #0x0
+ and r3, r2
+ beq _020130F4
+ mov r2, #0x4
+ sub r2, r2, r3
+ add r0, r0, r2
+_020130F4:
+ str r0, [r1, #0x10]
+ ldr r1, [r1, #0x14]
+ cmp r0, r1
+ blo _02013100
+ bl ErrorHandling
+_02013100:
+ add r0, r4, #0x0
+ pop {r4, pc}
+ .balign 4
+_02013104: .word 0x021C4850
+
+ thumb_func_start FUN_02013108
+FUN_02013108: ; 0x02013108
+ push {r4, lr}
+ ldr r1, _02013130 ; =0x021C4850
+ mov r2, #0x3
+ ldr r1, [r1, #0x3c]
+ ldr r4, [r1, #0x10]
+ add r0, r4, r0
+ add r3, r0, #0x0
+ and r3, r2
+ beq _02013120
+ mov r2, #0x4
+ sub r2, r2, r3
+ add r0, r0, r2
+_02013120:
+ str r0, [r1, #0x10]
+ ldr r1, [r1, #0x14]
+ cmp r0, r1
+ blo _0201312C
+ bl ErrorHandling
+_0201312C:
+ add r0, r4, #0x0
+ pop {r4, pc}
+ .balign 4
+_02013130: .word 0x021C4850
+
+ thumb_func_start FUN_02013134
+FUN_02013134: ; 0x02013134
+ push {r4, lr}
+ ldr r1, _0201315C ; =0x021C4850
+ mov r2, #0x3
+ ldr r1, [r1, #0x40]
+ ldr r4, [r1, #0x10]
+ add r0, r4, r0
+ add r3, r0, #0x0
+ and r3, r2
+ beq _0201314C
+ mov r2, #0x4
+ sub r2, r2, r3
+ add r0, r0, r2
+_0201314C:
+ str r0, [r1, #0x10]
+ ldr r1, [r1, #0x14]
+ cmp r0, r1
+ blo _02013158
+ bl ErrorHandling
+_02013158:
+ add r0, r4, #0x0
+ pop {r4, pc}
+ .balign 4
+_0201315C: .word 0x021C4850
+
+ thumb_func_start FUN_02013160
+FUN_02013160: ; 0x02013160
+ push {r4, lr}
+ ldr r1, _02013188 ; =0x021C4850
+ mov r2, #0x3
+ ldr r1, [r1, #0x44]
+ ldr r4, [r1, #0x10]
+ add r0, r4, r0
+ add r3, r0, #0x0
+ and r3, r2
+ beq _02013178
+ mov r2, #0x4
+ sub r2, r2, r3
+ add r0, r0, r2
+_02013178:
+ str r0, [r1, #0x10]
+ ldr r1, [r1, #0x14]
+ cmp r0, r1
+ blo _02013184
+ bl ErrorHandling
+_02013184:
+ add r0, r4, #0x0
+ pop {r4, pc}
+ .balign 4
+_02013188: .word 0x021C4850
+
+ thumb_func_start FUN_0201318C
+FUN_0201318C: ; 0x0201318C
+ ldr r3, _02013190 ; =LoadFromNarc_2
+ bx r3
+ .balign 4
+_02013190: .word LoadFromNarc_2
+
+ thumb_func_start FUN_02013194
+FUN_02013194: ; 0x02013194
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ ldr r0, [r5, #0x0]
+ add r6, r1, #0x0
+ add r4, r2, #0x0
+ add r7, r3, #0x0
+ cmp r0, #0x0
+ bne _020131A8
+ bl ErrorHandling
+_020131A8:
+ ldr r0, [r5, #0x4]
+ cmp r0, #0x0
+ beq _020131B2
+ bl ErrorHandling
+_020131B2:
+ add r0, r5, #0x0
+ add r0, #0xd8
+ strb r4, [r0, #0x0]
+ mov r0, #0x1
+ tst r0, r4
+ beq _020131C8
+ add r0, r5, #0x0
+ add r0, #0x58
+ blx FUN_020AE918
+ b _020131DE
+_020131C8:
+ mov r0, #0x2
+ tst r0, r4
+ beq _020131DE
+ mov r1, #0x0
+ add r2, r5, #0x0
+ add r0, r1, #0x0
+_020131D4:
+ add r1, r1, #0x1
+ str r0, [r2, #0x58]
+ add r2, r2, #0x4
+ cmp r1, #0x10
+ blt _020131D4
+_020131DE:
+ mov r0, #0x4
+ tst r0, r4
+ beq _020131EE
+ add r0, r5, #0x0
+ add r0, #0x98
+ blx FUN_020AEC98
+ b _02013208
+_020131EE:
+ mov r0, #0x8
+ tst r0, r4
+ beq _02013208
+ mov r2, #0x0
+ add r3, r5, #0x0
+ add r1, r2, #0x0
+_020131FA:
+ add r0, r3, #0x0
+ add r0, #0x98
+ add r2, r2, #0x1
+ add r3, r3, #0x4
+ str r1, [r0, #0x0]
+ cmp r2, #0x10
+ blt _020131FA
+_02013208:
+ str r6, [r5, #0x4]
+ cmp r7, #0x1
+ bne _02013216
+ add r0, r5, #0x0
+ bl FUN_02013228
+ pop {r3-r7, pc}
+_02013216:
+ ldr r0, _02013224 ; =FUN_02013268
+ add r1, r5, #0x0
+ mov r2, #0x5
+ bl FUN_0200CA98
+ pop {r3-r7, pc}
+ nop
+_02013224: .word FUN_02013268
+
+ thumb_func_start FUN_02013228
+FUN_02013228: ; 0x02013228
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r0, [r4, #0x0]
+ ldr r1, [r4, #0x4]
+ blx FUN_0208B128
+ ldr r0, _02013264 ; =0x021C4850
+ str r4, [r0, #0x0]
+ ldr r1, [r4, #0x18]
+ ldr r0, [r4, #0x0]
+ cmp r1, #0x0
+ bne _02013246
+ blx FUN_0208AF94
+ b _0201324A
+_02013246:
+ blx FUN_0208B05C
+_0201324A:
+ ldr r1, [r4, #0x1c]
+ ldr r0, [r4, #0x0]
+ cmp r1, #0x0
+ bne _02013258
+ blx FUN_0208AF80
+ b _0201325C
+_02013258:
+ blx FUN_0208AFA8
+_0201325C:
+ ldr r0, _02013264 ; =0x021C4850
+ mov r1, #0x0
+ str r1, [r0, #0x0]
+ pop {r4, pc}
+ .balign 4
+_02013264: .word 0x021C4850
+
+ thumb_func_start FUN_02013268
+FUN_02013268: ; 0x02013268
+ push {r4, lr}
+ add r4, r0, #0x0
+ add r0, r1, #0x0
+ bl FUN_02013228
+ add r0, r4, #0x0
+ bl FUN_0200CAB4
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0201327C
+FUN_0201327C: ; 0x0201327C
+ push {r4, lr}
+ add r4, r0, #0x0
+ bne _02013286
+ bl ErrorHandling
+_02013286:
+ ldr r0, _020132B8 ; =0x021C4850
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ bne _02013292
+ bl ErrorHandling
+_02013292:
+ ldr r0, _020132B8 ; =0x021C4850
+ mov r1, #0x0
+ ldr r3, [r0, #0x0]
+ add r2, r3, #0x0
+_0201329A:
+ ldr r0, [r2, #0x58]
+ cmp r0, #0x0
+ bne _020132A8
+ lsl r0, r1, #0x2
+ add r0, r3, r0
+ str r4, [r0, #0x58]
+ pop {r4, pc}
+_020132A8:
+ add r1, r1, #0x1
+ add r2, r2, #0x4
+ cmp r1, #0x10
+ blt _0201329A
+ bl ErrorHandling
+ pop {r4, pc}
+ nop
+_020132B8: .word 0x021C4850
+
+ thumb_func_start FUN_020132BC
+FUN_020132BC: ; 0x020132BC
+ push {r4, lr}
+ add r4, r0, #0x0
+ bne _020132C6
+ bl ErrorHandling
+_020132C6:
+ ldr r0, _020132FC ; =0x021C4850
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ bne _020132D2
+ bl ErrorHandling
+_020132D2:
+ ldr r0, _020132FC ; =0x021C4850
+ mov r1, #0x0
+ ldr r3, [r0, #0x0]
+ add r2, r3, #0x0
+_020132DA:
+ add r0, r2, #0x0
+ add r0, #0x98
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ bne _020132EE
+ lsl r0, r1, #0x2
+ add r0, r3, r0
+ add r0, #0x98
+ str r4, [r0, #0x0]
+ pop {r4, pc}
+_020132EE:
+ add r1, r1, #0x1
+ add r2, r2, #0x4
+ cmp r1, #0x10
+ blt _020132DA
+ bl ErrorHandling
+ pop {r4, pc}
+ .balign 4
+_020132FC: .word 0x021C4850
+
+ thumb_func_start FUN_02013300
+FUN_02013300: ; 0x02013300
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r1, [r4, #0x20]
+ cmp r1, #0x0
+ beq _0201331C
+ add r0, #0xdb
+ ldrb r0, [r0, #0x0]
+ bl FUN_0201EE2C
+ ldr r0, [r4, #0x20]
+ bl FUN_0201EB8C
+ bl FUN_0201EBA4
+_0201331C:
+ blx FUN_020B849C
+ ldr r0, [r4, #0x0]
+ ldr r1, _02013338 ; =0x021CED64
+ blx FUN_0208AD80
+ ldr r0, [r4, #0x20]
+ cmp r0, #0x0
+ beq _02013332
+ bl FUN_0201EB98
+_02013332:
+ blx FUN_020B849C
+ pop {r4, pc}
+ .balign 4
+_02013338: .word 0x021CED64
+
+ thumb_func_start FUN_0201333C
+FUN_0201333C: ; 0x0201333C
+ ldr r3, _02013344 ; =0x0208AE48
+ ldr r0, [r0, #0x0]
+ bx r3
+ nop
+_02013344: .word 0x0208AE48
+
+ thumb_func_start FUN_02013348
+FUN_02013348: ; 0x02013348
+ mov r0, #0x0
+ ldr r3, _02013360 ; =0x021C4858
+ add r2, r0, #0x0
+_0201334E:
+ ldr r1, [r3, #0x0]
+ cmp r1, #0x0
+ beq _02013356
+ add r0, r0, #0x1
+_02013356:
+ add r2, r2, #0x1
+ add r3, r3, #0x4
+ cmp r2, #0x10
+ blt _0201334E
+ bx lr
+ .balign 4
+_02013360: .word 0x021C4858
+
+ thumb_func_start FUN_02013364
+FUN_02013364: ; 0x02013364
+ push {r4-r6, lr}
+ mov r4, #0x0
+ ldr r5, _02013384 ; =0x021C4858
+ add r6, r4, #0x0
+_0201336C:
+ ldr r0, [r5, #0x0]
+ cmp r0, #0x0
+ beq _02013378
+ bl FUN_02013300
+ add r4, r4, #0x1
+_02013378:
+ add r6, r6, #0x1
+ add r5, r5, #0x4
+ cmp r6, #0x10
+ blt _0201336C
+ add r0, r4, #0x0
+ pop {r4-r6, pc}
+ .balign 4
+_02013384: .word 0x021C4858
+
+ thumb_func_start FUN_02013388
+FUN_02013388: ; 0x02013388
+ push {r4-r6, lr}
+ mov r4, #0x0
+ ldr r5, _020133A8 ; =0x021C4858
+ add r6, r4, #0x0
+_02013390:
+ ldr r0, [r5, #0x0]
+ cmp r0, #0x0
+ beq _0201339C
+ bl FUN_0201333C
+ add r4, r4, #0x1
+_0201339C:
+ add r6, r6, #0x1
+ add r5, r5, #0x4
+ cmp r6, #0x10
+ blt _02013390
+ add r0, r4, #0x0
+ pop {r4-r6, pc}
+ .balign 4
+_020133A8: .word 0x021C4858
+
+ thumb_func_start FUN_020133AC
+FUN_020133AC: ; 0x020133AC
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r0, _020133C4 ; =0x021C4850
+ str r3, [r0, #0x4]
+ ldr r0, [r4, #0x0]
+ blx FUN_0208ACEC
+ ldr r1, _020133C4 ; =0x021C4850
+ mov r2, #0x0
+ str r2, [r1, #0x4]
+ str r0, [r4, #0x8]
+ pop {r4, pc}
+ .balign 4
+_020133C4: .word 0x021C4850
+
+ thumb_func_start FUN_020133C8
+FUN_020133C8: ; 0x020133C8
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0x8]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_020133D0
+FUN_020133D0: ; 0x020133D0
+ ldr r3, _020133D8 ; =0x0208AC14
+ ldr r0, [r0, #0x0]
+ bx r3
+ nop
+_020133D8: .word 0x0208AC14
+
+ thumb_func_start FUN_020133DC
+FUN_020133DC: ; 0x020133DC
+ ldr r3, _020133E4 ; =0x0208AC58
+ ldr r0, [r0, #0x0]
+ bx r3
+ nop
+_020133E4: .word 0x0208AC58
+
+ thumb_func_start FUN_020133E8
+FUN_020133E8: ; 0x020133E8
+ ldr r0, [r0, #0xc]
+ bx lr
+
+ thumb_func_start FUN_020133EC
+FUN_020133EC: ; 0x020133EC
+ add r2, r0, #0x0
+ add r2, #0x40
+ add r3, r1, #0x0
+ ldmia r2!, {r0-r1}
+ stmia r3!, {r0-r1}
+ ldr r0, [r2, #0x0]
+ str r0, [r3, #0x0]
+ bx lr
+
+ thumb_func_start FUN_020133FC
+FUN_020133FC: ; 0x020133FC
+ push {r3-r5, lr}
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ add r3, r4, #0x0
+ add r2, r5, #0x0
+ ldmia r3!, {r0-r1}
+ add r2, #0x40
+ stmia r2!, {r0-r1}
+ ldr r0, [r3, #0x0]
+ str r0, [r2, #0x0]
+ ldr r1, [r5, #0x20]
+ add r0, r4, #0x0
+ bl FUN_0201EC58
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_0201341C
+FUN_0201341C: ; 0x0201341C
+ ldr r0, _02013424 ; =0x021C4850
+ ldr r0, [r0, #0x4]
+ bx lr
+ nop
+_02013424: .word 0x021C4850
+
+ thumb_func_start FUN_02013428
+FUN_02013428: ; 0x02013428
+ ldr r2, _02013438 ; =0x020ED4E4
+ add r3, r0, #0x0
+ ldmia r2!, {r0-r1}
+ stmia r3!, {r0-r1}
+ ldr r0, [r2, #0x0]
+ str r0, [r3, #0x0]
+ bx lr
+ nop
+_02013438: .word 0x020ED4E4
+
+ thumb_func_start FUN_0201343C
+FUN_0201343C: ; 0x0201343C
+ ldr r0, [r0, #0x20]
+ bx lr
+
+ thumb_func_start FUN_02013440
+FUN_02013440: ; 0x02013440
+ add r0, #0xdb
+ strb r1, [r0, #0x0]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02013448
+FUN_02013448: ; 0x02013448
+ add r0, #0xdb
+ ldrb r0, [r0, #0x0]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02013450
+FUN_02013450: ; 0x02013450
+ ldr r0, [r0, #0x20]
+ ldr r0, [r0, #0x0]
+ str r1, [r0, #0x10]
+ bx lr
+
+ thumb_func_start FUN_02013458
+FUN_02013458: ; 0x02013458
+ push {r4-r7}
+ ldr r0, [r0, #0x20]
+ add r4, r1, #0x0
+ ldrh r2, [r0, #0x1c]
+ cmp r2, #0x0
+ bne _0201346A
+ mov r0, #0x0
+ pop {r4-r7}
+ bx lr
+_0201346A:
+ mov r1, #0x0
+ cmp r2, #0x0
+ ble _020134F4
+ ldr r3, [r0, #0x18]
+ ldr r7, _020134FC ; =0x020908DC
+ ldr r0, _02013500 ; =0x020909A4
+_02013476:
+ cmp r3, #0x0
+ beq _020134EC
+ cmp r4, #0x5
+ bhi _020134E6
+ add r5, r4, r4
+ add r5, pc
+ ldrh r5, [r5, #0x6]
+ lsl r5, r5, #0x10
+ asr r5, r5, #0x10
+ add pc, r5
+_0201348A: ; jump table (using 16-bit offset)
+ .short _02013496 - _0201348A - 2; case 0
+ .short _020134A2 - _0201348A - 2; case 1
+ .short _020134AE - _0201348A - 2; case 2
+ .short _020134BC - _0201348A - 2; case 3
+ .short _020134CA - _0201348A - 2; case 4
+ .short _020134D8 - _0201348A - 2; case 5
+_02013496:
+ ldr r5, [r3, #0x0]
+ cmp r5, r0
+ bne _020134EC
+ ldr r0, [r3, #0x4]
+ pop {r4-r7}
+ bx lr
+_020134A2:
+ ldr r5, [r3, #0x0]
+ cmp r5, r7
+ bne _020134EC
+ ldr r0, [r3, #0x4]
+ pop {r4-r7}
+ bx lr
+_020134AE:
+ ldr r6, [r3, #0x0]
+ ldr r5, _02013504 ; =0x02090858
+ cmp r6, r5
+ bne _020134EC
+ ldr r0, [r3, #0x4]
+ pop {r4-r7}
+ bx lr
+_020134BC:
+ ldr r6, [r3, #0x0]
+ ldr r5, _02013508 ; =0x02090780
+ cmp r6, r5
+ bne _020134EC
+ ldr r0, [r3, #0x4]
+ pop {r4-r7}
+ bx lr
+_020134CA:
+ ldr r6, [r3, #0x0]
+ ldr r5, _0201350C ; =0x02090664
+ cmp r6, r5
+ bne _020134EC
+ ldr r0, [r3, #0x4]
+ pop {r4-r7}
+ bx lr
+_020134D8:
+ ldr r6, [r3, #0x0]
+ ldr r5, _02013510 ; =0x020905D0
+ cmp r6, r5
+ bne _020134EC
+ ldr r0, [r3, #0x4]
+ pop {r4-r7}
+ bx lr
+_020134E6:
+ mov r0, #0x0
+ pop {r4-r7}
+ bx lr
+_020134EC:
+ add r1, r1, #0x1
+ add r3, #0x8
+ cmp r1, r2
+ blt _02013476
+_020134F4:
+ mov r0, #0x0
+ pop {r4-r7}
+ bx lr
+ nop
+_020134FC: .word 0x020908DC
+_02013500: .word 0x020909A4
+_02013504: .word 0x02090858
+_02013508: .word 0x02090780
+_0201350C: .word 0x02090664
+_02013510: .word 0x020905D0
+
+ thumb_func_start FUN_02013514
+FUN_02013514: ; 0x02013514
+ push {r4, lr}
+ add r4, r1, #0x0
+ mov r1, #0x0
+ bl FUN_02013458
+ cmp r0, #0x0
+ beq _0201352E
+ ldrh r1, [r4, #0x0]
+ strh r1, [r0, #0x0]
+ ldrh r1, [r4, #0x2]
+ strh r1, [r0, #0x2]
+ ldrh r1, [r4, #0x4]
+ strh r1, [r0, #0x4]
+_0201352E:
+ pop {r4, pc}
+
+ thumb_func_start FUN_02013530
+FUN_02013530: ; 0x02013530
+ push {r4, lr}
+ add r4, r1, #0x0
+ mov r1, #0x2
+ bl FUN_02013458
+ add r2, r0, #0x0
+ beq _02013546
+ ldmia r4!, {r0-r1}
+ stmia r2!, {r0-r1}
+ ldr r0, [r4, #0x0]
+ str r0, [r2, #0x0]
+_02013546:
+ pop {r4, pc}
+
+ thumb_func_start FUN_02013548
+FUN_02013548: ; 0x02013548
+ push {r3-r4, lr}
+ sub sp, #0xc
+ add r4, r1, #0x0
+ mov r1, #0x2
+ bl FUN_02013458
+ add r2, r0, #0x0
+ bne _0201356E
+ add r2, sp, #0x0
+ mov r0, #0x0
+ str r0, [r2, #0x0]
+ str r0, [r2, #0x4]
+ str r0, [r2, #0x8]
+ ldmia r2!, {r0-r1}
+ stmia r4!, {r0-r1}
+ ldr r0, [r2, #0x0]
+ add sp, #0xc
+ str r0, [r4, #0x0]
+ pop {r3-r4, pc}
+_0201356E:
+ ldmia r2!, {r0-r1}
+ stmia r4!, {r0-r1}
+ ldr r0, [r2, #0x0]
+ str r0, [r4, #0x0]
+ add sp, #0xc
+ pop {r3-r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0201357C
+FUN_0201357C: ; 0x0201357C
+ push {r4, lr}
+ add r4, r1, #0x0
+ mov r1, #0x2
+ bl FUN_02013458
+ cmp r0, #0x0
+ beq _02013590
+ mov r1, #0x0
+ ldrsh r1, [r4, r1]
+ strh r1, [r0, #0xc]
+_02013590:
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02013594
+FUN_02013594: ; 0x02013594
+ push {r4, lr}
+ add r4, r1, #0x0
+ mov r1, #0x2
+ bl FUN_02013458
+ cmp r0, #0x0
+ bne _020135A8
+ mov r0, #0x0
+ strh r0, [r4, #0x0]
+ pop {r4, pc}
+_020135A8:
+ mov r1, #0xc
+ ldrsh r0, [r0, r1]
+ strh r0, [r4, #0x0]
+ pop {r4, pc}
+
+ thumb_func_start FUN_020135B0
+FUN_020135B0: ; 0x020135B0
+ push {r4, lr}
+ add r4, r1, #0x0
+ mov r1, #0x3
+ bl FUN_02013458
+ cmp r0, #0x0
+ beq _020135C2
+ ldrh r1, [r4, #0x0]
+ strh r1, [r0, #0x0]
+_020135C2:
+ pop {r4, pc}
+
+ thumb_func_start FUN_020135C4
+FUN_020135C4: ; 0x020135C4
+ push {r4, lr}
+ add r4, r1, #0x0
+ mov r1, #0x3
+ bl FUN_02013458
+ cmp r0, #0x0
+ bne _020135D8
+ mov r0, #0x0
+ strh r0, [r4, #0x0]
+ pop {r4, pc}
+_020135D8:
+ ldrh r0, [r0, #0x0]
+ strh r0, [r4, #0x0]
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_020135E0
+FUN_020135E0: ; 0x020135E0
+ push {r4, lr}
+ add r4, r1, #0x0
+ mov r1, #0x3
+ bl FUN_02013458
+ cmp r0, #0x0
+ beq _020135F2
+ ldrh r1, [r4, #0x0]
+ strh r1, [r0, #0x2]
+_020135F2:
+ pop {r4, pc}
+
+ thumb_func_start FUN_020135F4
+FUN_020135F4: ; 0x020135F4
+ push {r4, lr}
+ add r4, r1, #0x0
+ mov r1, #0x3
+ bl FUN_02013458
+ cmp r0, #0x0
+ bne _02013608
+ mov r0, #0x0
+ strh r0, [r4, #0x0]
+ pop {r4, pc}
+_02013608:
+ ldrh r0, [r0, #0x2]
+ strh r0, [r4, #0x0]
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02013610
+FUN_02013610: ; 0x02013610
+ push {r4, lr}
+ add r4, r1, #0x0
+ mov r1, #0x5
+ bl FUN_02013458
+ add r2, r0, #0x0
+ beq _02013626
+ ldmia r4!, {r0-r1}
+ stmia r2!, {r0-r1}
+ ldr r0, [r4, #0x0]
+ str r0, [r2, #0x0]
+_02013626:
+ pop {r4, pc}
+
+ thumb_func_start FUN_02013628
+FUN_02013628: ; 0x02013628
+ push {r3-r4, lr}
+ sub sp, #0xc
+ add r4, r1, #0x0
+ mov r1, #0x5
+ bl FUN_02013458
+ add r2, r0, #0x0
+ bne _0201364E
+ add r2, sp, #0x0
+ mov r0, #0x0
+ str r0, [r2, #0x0]
+ str r0, [r2, #0x4]
+ str r0, [r2, #0x8]
+ ldmia r2!, {r0-r1}
+ stmia r4!, {r0-r1}
+ ldr r0, [r2, #0x0]
+ add sp, #0xc
+ str r0, [r4, #0x0]
+ pop {r3-r4, pc}
+_0201364E:
+ ldmia r2!, {r0-r1}
+ stmia r4!, {r0-r1}
+ ldr r0, [r2, #0x0]
+ str r0, [r4, #0x0]
+ add sp, #0xc
+ pop {r3-r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0201365C
+FUN_0201365C: ; 0x0201365C
+ push {r4, lr}
+ add r4, r1, #0x0
+ mov r1, #0x5
+ bl FUN_02013458
+ cmp r0, #0x0
+ beq _02013670
+ mov r1, #0x0
+ ldrsh r1, [r4, r1]
+ strh r1, [r0, #0xc]
+_02013670:
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02013674
+FUN_02013674: ; 0x02013674
+ push {r4, lr}
+ add r4, r1, #0x0
+ mov r1, #0x5
+ bl FUN_02013458
+ cmp r0, #0x0
+ bne _02013688
+ mov r0, #0x0
+ strh r0, [r4, #0x0]
+ pop {r4, pc}
+_02013688:
+ mov r1, #0xc
+ ldrsh r0, [r0, r1]
+ strh r0, [r4, #0x0]
+ pop {r4, pc}
+
+ thumb_func_start FUN_02013690
+FUN_02013690: ; 0x02013690
+ push {r3-r5, lr}
+ mov r1, #0x8
+ add r5, r0, #0x0
+ bl FUN_02016998
+ add r4, r0, #0x0
+ beq _020136B2
+ ldr r0, _020136B8 ; =0x0001020F
+ add r1, r5, #0x0
+ str r0, [r4, #0x0]
+ mov r0, #0x4
+ bl FUN_020219F4
+ ldr r1, _020136BC ; =0x020ED548
+ str r0, [r4, #0x4]
+ bl FUN_02021E28
+_020136B2:
+ add r0, r4, #0x0
+ pop {r3-r5, pc}
+ nop
+_020136B8: .word 0x0001020F
+_020136BC: .word 0x020ED548
+
+ thumb_func_start FUN_020136C0
+FUN_020136C0: ; 0x020136C0
+ push {r4, lr}
+ add r4, r0, #0x0
+ bne _020136CA
+ bl ErrorHandling
+_020136CA:
+ cmp r4, #0x0
+ beq _020136DE
+ ldr r0, [r4, #0x4]
+ cmp r0, #0x0
+ beq _020136D8
+ bl FUN_02021A20
+_020136D8:
+ add r0, r4, #0x0
+ bl FUN_02016A18
+_020136DE:
+ pop {r4, pc}
+
+ thumb_func_start FUN_020136E0
+FUN_020136E0: ; 0x020136E0
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ cmp r5, #0x0
+ bne _020136EE
+ bl ErrorHandling
+_020136EE:
+ cmp r5, #0x0
+ beq _020136F4
+ str r4, [r5, #0x0]
+_020136F4:
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_020136F8
+FUN_020136F8: ; 0x020136F8
+ push {r4-r6, lr}
+ sub sp, #0x10
+ add r6, r0, #0x0
+ str r3, [sp, #0x0]
+ mov r0, #0xff
+ str r0, [sp, #0x4]
+ ldr r0, [r6, #0x0]
+ add r5, r1, #0x0
+ str r0, [sp, #0x8]
+ mov r1, #0x0
+ add r4, r2, #0x0
+ str r1, [sp, #0xc]
+ ldr r2, [r6, #0x4]
+ add r0, r5, #0x0
+ add r3, r4, #0x0
+ bl FUN_0201BDE0
+ add r0, r5, #0x0
+ bl FUN_02019548
+ add sp, #0x10
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_02013724
+FUN_02013724: ; 0x02013724
+ ldr r1, _02013738 ; =0x0000FFFF
+ mov r2, #0x0
+ strh r1, [r0, #0x0]
+_0201372A:
+ add r2, r2, #0x1
+ strh r1, [r0, #0x4]
+ add r0, r0, #0x2
+ cmp r2, #0x2
+ blt _0201372A
+ bx lr
+ nop
+_02013738: .word 0x0000FFFF
+
+ thumb_func_start FUN_0201373C
+FUN_0201373C: ; 0x0201373C
+ strh r1, [r0, #0x0]
+ mov r2, #0x0
+ ldr r1, _02013750 ; =0x0000FFFF
+ strh r2, [r0, #0x2]
+_02013744:
+ add r2, r2, #0x1
+ strh r1, [r0, #0x4]
+ add r0, r0, #0x2
+ cmp r2, #0x2
+ blt _02013744
+ bx lr
+ .balign 4
+_02013750: .word 0x0000FFFF
+
+ thumb_func_start FUN_02013754
+FUN_02013754: ; 0x02013754
+ push {r4, lr}
+ mov r1, #0x4
+ add r4, r0, #0x0
+ bl FUN_0201373C
+ mov r0, #0x5
+ strh r0, [r4, #0x2]
+ pop {r4, pc}
+
+ thumb_func_start FUN_02013764
+FUN_02013764: ; 0x02013764
+ push {r4-r6, lr}
+ add r6, r1, #0x0
+ add r5, r0, #0x0
+ cmp r6, #0x4
+ blo _02013772
+ bl ErrorHandling
+_02013772:
+ cmp r6, #0x4
+ bhs _020137B8
+ mov r0, #0xa
+ add r4, r6, #0x0
+ mul r4, r0
+ ldr r1, _020137BC ; =0x020ED556
+ add r0, r5, #0x0
+ ldrb r1, [r1, r4]
+ bl FUN_0201373C
+ ldr r0, _020137C0 ; =0x020ED557
+ mov r1, #0x0
+ ldrb r0, [r0, r4]
+ mvn r1, r1
+ strh r0, [r5, #0x2]
+ ldr r0, _020137C4 ; =0x020ED558
+ ldrsh r0, [r0, r4]
+ cmp r0, r1
+ beq _020137A2
+ ldr r1, _020137C8 ; =0x020ED55A
+ ldrh r1, [r1, r4]
+ bl FUN_02013A9C
+ strh r0, [r5, #0x4]
+_020137A2:
+ ldr r0, _020137CC ; =0x020ED55C
+ mov r1, #0x0
+ ldrsh r0, [r0, r4]
+ mvn r1, r1
+ cmp r0, r1
+ beq _020137B8
+ ldr r1, _020137D0 ; =0x020ED55E
+ ldrh r1, [r1, r4]
+ bl FUN_02013A9C
+ strh r0, [r5, #0x6]
+_020137B8:
+ pop {r4-r6, pc}
+ nop
+_020137BC: .word 0x020ED556
+_020137C0: .word 0x020ED557
+_020137C4: .word 0x020ED558
+_020137C8: .word 0x020ED55A
+_020137CC: .word 0x020ED55C
+_020137D0: .word 0x020ED55E
+
+ thumb_func_start FUN_020137D4
+FUN_020137D4: ; 0x020137D4
+ push {r3-r7, lr}
+ sub sp, #0x8
+ str r0, [sp, #0x0]
+ add r0, r1, #0x0
+ str r1, [sp, #0x4]
+ bl FUN_0200AA80
+ ldr r5, [sp, #0x0]
+ ldr r7, _02013838 ; =0x0000FFFF
+ add r6, r0, #0x0
+ mov r4, #0x0
+_020137EA:
+ ldrh r2, [r5, #0x4]
+ cmp r2, r7
+ beq _02013800
+ add r0, r6, #0x0
+ add r1, r4, #0x0
+ bl FUN_0200B518
+ add r4, r4, #0x1
+ add r5, r5, #0x2
+ cmp r4, #0x2
+ blt _020137EA
+_02013800:
+ ldr r2, [sp, #0x0]
+ mov r0, #0x1
+ ldrh r2, [r2, #0x0]
+ mov r1, #0x1a
+ lsl r3, r2, #0x1
+ ldr r2, _0201383C ; =0x020ED54C
+ ldrh r2, [r2, r3]
+ ldr r3, [sp, #0x4]
+ bl FUN_0200A86C
+ add r5, r0, #0x0
+ ldr r2, [sp, #0x0]
+ ldr r3, [sp, #0x4]
+ ldrh r2, [r2, #0x2]
+ add r0, r6, #0x0
+ add r1, r5, #0x0
+ bl FUN_0200A9C4
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_0200A8B8
+ add r0, r6, #0x0
+ bl FUN_0200AB18
+ add r0, r4, #0x0
+ add sp, #0x8
+ pop {r3-r7, pc}
+ .balign 4
+_02013838: .word 0x0000FFFF
+_0201383C: .word 0x020ED54C
+
+ thumb_func_start FUN_02013840
+FUN_02013840: ; 0x02013840
+ push {r4, lr}
+ add r4, r0, #0x0
+ add r3, r1, #0x0
+ ldrh r1, [r4, #0x0]
+ mov r0, #0x1a
+ lsl r2, r1, #0x1
+ ldr r1, _02013858 ; =0x020ED54C
+ ldrh r1, [r1, r2]
+ ldrh r2, [r4, #0x2]
+ bl FUN_0200A738
+ pop {r4, pc}
+ .balign 4
+_02013858: .word 0x020ED54C
+
+ thumb_func_start FUN_0201385C
+FUN_0201385C: ; 0x0201385C
+ ldrh r1, [r0, #0x0]
+ ldr r0, _0201386C ; =0x0000FFFF
+ cmp r1, r0
+ beq _02013868
+ mov r0, #0x1
+ bx lr
+_02013868:
+ mov r0, #0x0
+ bx lr
+ .balign 4
+_0201386C: .word 0x0000FFFF
+
+ thumb_func_start FUN_02013870
+FUN_02013870: ; 0x02013870
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldrh r0, [r4, #0x0]
+ ldrh r1, [r4, #0x2]
+ bl FUN_020138A0
+ mov r3, #0x0
+ cmp r0, #0x0
+ bls _02013896
+ ldr r1, _0201389C ; =0x0000FFFF
+_02013884:
+ ldrh r2, [r4, #0x4]
+ cmp r2, r1
+ bne _0201388E
+ mov r0, #0x0
+ pop {r4, pc}
+_0201388E:
+ add r3, r3, #0x1
+ add r4, r4, #0x2
+ cmp r3, r0
+ blo _02013884
+_02013896:
+ mov r0, #0x1
+ pop {r4, pc}
+ nop
+_0201389C: .word 0x0000FFFF
+
+ thumb_func_start FUN_020138A0
+FUN_020138A0: ; 0x020138A0
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ cmp r5, #0x5
+ blo _020138AE
+ bl ErrorHandling
+_020138AE:
+ add r0, r5, #0x0
+ bl FUN_02013974
+ cmp r4, r0
+ blo _020138BC
+ bl ErrorHandling
+_020138BC:
+ ldr r1, _02013910 ; =0x020ED54C
+ lsl r2, r5, #0x1
+ ldrh r1, [r1, r2]
+ mov r0, #0x1a
+ add r2, r4, #0x0
+ mov r3, #0x0
+ bl FUN_0200A738
+ str r0, [sp, #0x0]
+ bl FUN_02021F2C
+ add r4, r0, #0x0
+ ldrh r1, [r4, #0x0]
+ ldr r0, _02013914 ; =0x0000FFFF
+ mov r5, #0x0
+ cmp r1, r0
+ beq _02013904
+ add r7, r0, #0x0
+ sub r6, r0, #0x1
+_020138E2:
+ cmp r1, r6
+ bne _020138FC
+ add r0, r4, #0x0
+ bl FUN_0201B8F8
+ cmp r0, #0x0
+ beq _020138F2
+ add r5, r5, #0x1
+_020138F2:
+ add r0, r4, #0x0
+ bl FUN_0201B8B8
+ add r4, r0, #0x0
+ b _020138FE
+_020138FC:
+ add r4, r4, #0x2
+_020138FE:
+ ldrh r1, [r4, #0x0]
+ cmp r1, r7
+ bne _020138E2
+_02013904:
+ ldr r0, [sp, #0x0]
+ bl FUN_02021A20
+ add r0, r5, #0x0
+ pop {r3-r7, pc}
+ nop
+_02013910: .word 0x020ED54C
+_02013914: .word 0x0000FFFF
+
+ thumb_func_start FUN_02013918
+FUN_02013918: ; 0x02013918
+ lsl r1, r1, #0x1
+ add r0, r0, r1
+ ldrh r0, [r0, #0x4]
+ bx lr
+
+ thumb_func_start FUN_02013920
+FUN_02013920: ; 0x02013920
+ ldrh r0, [r0, #0x0]
+ bx lr
+
+ thumb_func_start FUN_02013924
+FUN_02013924: ; 0x02013924
+ ldrh r0, [r0, #0x2]
+ bx lr
+
+ thumb_func_start FUN_02013928
+FUN_02013928: ; 0x02013928
+ push {r3-r4}
+ ldrh r3, [r0, #0x0]
+ ldrh r2, [r1, #0x0]
+ cmp r3, r2
+ bne _0201393A
+ ldrh r3, [r0, #0x2]
+ ldrh r2, [r1, #0x2]
+ cmp r3, r2
+ beq _02013940
+_0201393A:
+ mov r0, #0x0
+ pop {r3-r4}
+ bx lr
+_02013940:
+ mov r4, #0x0
+_02013942:
+ ldrh r3, [r0, #0x4]
+ ldrh r2, [r1, #0x4]
+ cmp r3, r2
+ beq _02013950
+ mov r0, #0x0
+ pop {r3-r4}
+ bx lr
+_02013950:
+ add r4, r4, #0x1
+ add r1, r1, #0x2
+ add r0, r0, #0x2
+ cmp r4, #0x2
+ blt _02013942
+ mov r0, #0x1
+ pop {r3-r4}
+ bx lr
+
+ thumb_func_start FUN_02013960
+FUN_02013960: ; 0x02013960
+ ldrh r2, [r1, #0x0]
+ strh r2, [r0, #0x0]
+ ldrh r2, [r1, #0x2]
+ strh r2, [r0, #0x2]
+ ldrh r2, [r1, #0x4]
+ strh r2, [r0, #0x4]
+ ldrh r1, [r1, #0x6]
+ strh r1, [r0, #0x6]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02013974
+FUN_02013974: ; 0x02013974
+ cmp r0, #0x5
+ bhs _0201397C
+ mov r0, #0x14
+ bx lr
+_0201397C:
+ mov r0, #0x0
+ bx lr
+
+ thumb_func_start FUN_02013980
+FUN_02013980: ; 0x02013980
+ push {r4-r6, lr}
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ add r6, r2, #0x0
+ cmp r4, #0x5
+ blo _02013990
+ bl ErrorHandling
+_02013990:
+ strh r4, [r5, #0x0]
+ strh r6, [r5, #0x2]
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_02013998
+FUN_02013998: ; 0x02013998
+ push {r4-r6, lr}
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ add r6, r2, #0x0
+ cmp r4, #0x2
+ blo _020139A8
+ bl ErrorHandling
+_020139A8:
+ lsl r0, r4, #0x1
+ add r0, r5, r0
+ strh r6, [r0, #0x4]
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_020139B0
+FUN_020139B0: ; 0x020139B0
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldrh r0, [r4, #0x0]
+ ldrh r1, [r4, #0x2]
+ bl FUN_020138A0
+ cmp r0, #0x2
+ bhs _020139D0
+ lsl r1, r0, #0x1
+ add r2, r4, r1
+ ldr r1, _020139D4 ; =0x0000FFFF
+_020139C6:
+ add r0, r0, #0x1
+ strh r1, [r2, #0x4]
+ add r2, r2, #0x2
+ cmp r0, #0x2
+ blo _020139C6
+_020139D0:
+ pop {r4, pc}
+ nop
+_020139D4: .word 0x0000FFFF
+
+ thumb_func_start FUN_020139D8
+FUN_020139D8: ; 0x020139D8
+ push {r3-r7, lr}
+ mov r1, #0x30
+ add r6, r0, #0x0
+ bl FUN_02016998
+ ldr r4, _02013A0C ; =0x020ED5C0
+ str r0, [sp, #0x0]
+ mov r7, #0x0
+ add r5, r0, #0x0
+_020139EA:
+ ldr r0, [sp, #0x0]
+ mov r1, #0x1a
+ str r6, [r0, #0x0]
+ ldrh r2, [r4, #0x0]
+ mov r0, #0x1
+ add r3, r6, #0x0
+ bl FUN_0200A86C
+ str r0, [r5, #0x4]
+ add r7, r7, #0x1
+ add r4, r4, #0x2
+ add r5, r5, #0x4
+ cmp r7, #0xb
+ blt _020139EA
+ ldr r0, [sp, #0x0]
+ pop {r3-r7, pc}
+ nop
+_02013A0C: .word 0x020ED5C0
+
+ thumb_func_start FUN_02013A10
+FUN_02013A10: ; 0x02013A10
+ push {r4-r6, lr}
+ add r6, r0, #0x0
+ mov r4, #0x0
+ add r5, r6, #0x0
+_02013A18:
+ ldr r0, [r5, #0x4]
+ bl FUN_0200A8B8
+ add r4, r4, #0x1
+ add r5, r5, #0x4
+ cmp r4, #0xb
+ blt _02013A18
+ add r0, r6, #0x0
+ bl FUN_02016A18
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_02013A30
+FUN_02013A30: ; 0x02013A30
+ push {r3-r5, lr}
+ sub sp, #0x8
+ add r5, r0, #0x0
+ add r4, r2, #0x0
+ add r0, r1, #0x0
+ add r1, sp, #0x4
+ add r2, sp, #0x0
+ bl FUN_02013AEC
+ ldr r0, [sp, #0x4]
+ ldr r1, [sp, #0x0]
+ lsl r0, r0, #0x2
+ add r0, r5, r0
+ ldr r0, [r0, #0x4]
+ add r2, r4, #0x0
+ bl FUN_0200A8E0
+ add sp, #0x8
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_02013A58
+FUN_02013A58: ; 0x02013A58
+ push {r3-r4, lr}
+ sub sp, #0xc
+ add r4, r1, #0x0
+ ldr r1, _02013A94 ; =0x0000FFFF
+ cmp r0, r1
+ beq _02013A88
+ add r1, sp, #0x8
+ add r2, sp, #0x4
+ bl FUN_02013AEC
+ ldr r0, [sp, #0x8]
+ mov r3, #0x0
+ lsl r1, r0, #0x1
+ ldr r0, _02013A98 ; =0x020ED5C0
+ ldrh r0, [r0, r1]
+ str r0, [sp, #0x8]
+ str r4, [sp, #0x0]
+ ldr r1, [sp, #0x8]
+ ldr r2, [sp, #0x4]
+ mov r0, #0x1a
+ bl FUN_0200A648
+ add sp, #0xc
+ pop {r3-r4, pc}
+_02013A88:
+ add r0, r4, #0x0
+ bl FUN_02021A4C
+ add sp, #0xc
+ pop {r3-r4, pc}
+ nop
+_02013A94: .word 0x0000FFFF
+_02013A98: .word 0x020ED5C0
+
+ thumb_func_start FUN_02013A9C
+FUN_02013A9C: ; 0x02013A9C
+ push {r4-r5}
+ ldr r4, _02013AE0 ; =0x020ED5C0
+ mov r2, #0x0
+_02013AA2:
+ ldrh r3, [r4, #0x0]
+ cmp r0, r3
+ bne _02013AD0
+ mov r4, #0x0
+ add r3, r4, #0x0
+ cmp r2, #0x0
+ bls _02013AC6
+ ldr r0, _02013AE4 ; =0x020ED5D6
+_02013AB2:
+ lsl r5, r4, #0x1
+ ldrh r5, [r0, r5]
+ add r4, r4, #0x1
+ lsl r4, r4, #0x10
+ add r3, r3, r5
+ lsl r3, r3, #0x10
+ lsr r4, r4, #0x10
+ lsr r3, r3, #0x10
+ cmp r4, r2
+ blo _02013AB2
+_02013AC6:
+ add r0, r3, r1
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ pop {r4-r5}
+ bx lr
+_02013AD0:
+ add r2, r2, #0x1
+ add r4, r4, #0x2
+ cmp r2, #0xb
+ blo _02013AA2
+ ldr r0, _02013AE8 ; =0x0000FFFF
+ pop {r4-r5}
+ bx lr
+ nop
+_02013AE0: .word 0x020ED5C0
+_02013AE4: .word 0x020ED5D6
+_02013AE8: .word 0x0000FFFF
+
+ thumb_func_start FUN_02013AEC
+FUN_02013AEC: ; 0x02013AEC
+ push {r3-r6}
+ ldr r3, _02013B20 ; =0x00000FFF
+ ldr r6, _02013B24 ; =0x020ED5D6
+ and r3, r0
+ mov r0, #0x0
+ add r5, r0, #0x0
+_02013AF8:
+ ldrh r4, [r6, #0x0]
+ add r0, r0, r4
+ cmp r3, r0
+ bhs _02013B12
+ str r5, [r1, #0x0]
+ ldr r1, _02013B24 ; =0x020ED5D6
+ lsl r4, r5, #0x1
+ ldrh r1, [r1, r4]
+ sub r0, r0, r1
+ sub r0, r3, r0
+ str r0, [r2, #0x0]
+ pop {r3-r6}
+ bx lr
+_02013B12:
+ add r5, r5, #0x1
+ add r6, r6, #0x2
+ cmp r5, #0xb
+ blo _02013AF8
+ pop {r3-r6}
+ bx lr
+ nop
+_02013B20: .word 0x00000FFF
+_02013B24: .word 0x020ED5D6
+
+ thumb_func_start FUN_02013B28
+FUN_02013B28: ; 0x02013B28
+ mov r0, #0x8
+ bx lr
+
+ thumb_func_start FUN_02013B2C
+FUN_02013B2C: ; 0x02013B2C
+ push {r3, lr}
+ mov r2, #0x0
+ str r2, [r0, #0x0]
+ ldr r3, _02013B54 ; =0x020ED5B4
+ str r2, [r0, #0x4]
+_02013B36:
+ ldrb r1, [r3, #0x0]
+ cmp r1, #0x2
+ bne _02013B48
+ ldr r1, _02013B58 ; =0x020ED5B5
+ lsl r2, r2, #0x1
+ ldrb r1, [r1, r2]
+ bl FUN_02013C18
+ pop {r3, pc}
+_02013B48:
+ add r2, r2, #0x1
+ add r3, r3, #0x2
+ cmp r2, #0x6
+ blo _02013B36
+ pop {r3, pc}
+ nop
+_02013B54: .word 0x020ED5B4
+_02013B58: .word 0x020ED5B5
+
+ thumb_func_start FUN_02013B5C
+FUN_02013B5C: ; 0x02013B5C
+ ldr r3, _02013B64 ; =FUN_02022610
+ mov r1, #0x22
+ bx r3
+ nop
+_02013B64: .word FUN_02022610
+
+ thumb_func_start FUN_02013B68
+FUN_02013B68: ; 0x02013B68
+ ldr r0, [r0, #0x4]
+ add r2, r0, #0x0
+ lsr r2, r1
+ mov r0, #0x1
+ and r0, r2
+ bx lr
+
+ thumb_func_start FUN_02013B74
+FUN_02013B74: ; 0x02013B74
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ mov r2, #0x0
+ ldr r3, [r5, #0x4]
+ add r4, r2, #0x0
+ mov r0, #0x1
+_02013B80:
+ add r1, r3, #0x0
+ lsr r1, r2
+ tst r1, r0
+ bne _02013B8A
+ add r4, r4, #0x1
+_02013B8A:
+ add r2, r2, #0x1
+ cmp r2, #0x20
+ blo _02013B80
+ cmp r4, #0x0
+ beq _02013BC4
+ bl FUN_0201B9EC
+ add r1, r4, #0x0
+ blx _u32_div_f
+ ldr r4, [r5, #0x4]
+ mov r0, #0x0
+ mov r2, #0x1
+_02013BA4:
+ add r3, r4, #0x0
+ lsr r3, r0
+ tst r3, r2
+ bne _02013BBE
+ cmp r1, #0x0
+ bne _02013BBC
+ mov r1, #0x1
+ ldr r2, [r5, #0x4]
+ lsl r1, r0
+ orr r1, r2
+ str r1, [r5, #0x4]
+ pop {r3-r5, pc}
+_02013BBC:
+ sub r1, r1, #0x1
+_02013BBE:
+ add r0, r0, #0x1
+ cmp r0, #0x20
+ blo _02013BA4
+_02013BC4:
+ mov r0, #0x20
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_02013BC8
+FUN_02013BC8: ; 0x02013BC8
+ ldr r3, [r0, #0x4]
+ mov r2, #0x0
+ mov r0, #0x1
+_02013BCE:
+ add r1, r3, #0x0
+ lsr r1, r2
+ tst r1, r0
+ bne _02013BDA
+ mov r0, #0x0
+ bx lr
+_02013BDA:
+ add r2, r2, #0x1
+ cmp r2, #0x20
+ blo _02013BCE
+ mov r0, #0x1
+ bx lr
+
+ thumb_func_start FUN_02013BE4
+FUN_02013BE4: ; 0x02013BE4
+ push {r3-r4}
+ mov r3, #0x0
+ ldr r4, _02013C08 ; =0x020ED5D6
+ add r2, r3, #0x0
+_02013BEC:
+ ldrh r1, [r4, #0x0]
+ add r2, r2, #0x1
+ add r4, r4, #0x2
+ add r1, r3, r1
+ lsl r1, r1, #0x10
+ lsr r3, r1, #0x10
+ cmp r2, #0x9
+ blt _02013BEC
+ add r0, r3, r0
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ pop {r3-r4}
+ bx lr
+ nop
+_02013C08: .word 0x020ED5D6
+
+ thumb_func_start FUN_02013C0C
+FUN_02013C0C: ; 0x02013C0C
+ ldr r0, [r0, #0x0]
+ add r2, r0, #0x0
+ lsr r2, r1
+ mov r0, #0x1
+ and r0, r2
+ bx lr
+
+ thumb_func_start FUN_02013C18
+FUN_02013C18: ; 0x02013C18
+ mov r2, #0x1
+ ldr r3, [r0, #0x0]
+ lsl r2, r1
+ add r1, r3, #0x0
+ orr r1, r2
+ str r1, [r0, #0x0]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02013C28
+FUN_02013C28: ; 0x02013C28
+ push {r4-r7}
+ mov r3, #0x0
+ ldr r5, _02013C64 ; =0x020ED5EC
+ add r2, r3, #0x0
+_02013C30:
+ ldr r7, [r5, #0x4]
+ add r4, r2, #0x0
+ cmp r7, #0x0
+ ble _02013C54
+ ldr r6, [r5, #0x0]
+_02013C3A:
+ ldrh r1, [r6, #0x0]
+ cmp r0, r1
+ bne _02013C4C
+ ldr r0, _02013C68 ; =0x020ED5F0
+ lsl r1, r3, #0x3
+ ldr r0, [r0, r1]
+ sub r0, r0, #0x1
+ pop {r4-r7}
+ bx lr
+_02013C4C:
+ add r4, r4, #0x1
+ add r6, r6, #0x2
+ cmp r4, r7
+ blt _02013C3A
+_02013C54:
+ add r3, r3, #0x1
+ add r5, #0x8
+ cmp r3, #0xc
+ blo _02013C30
+ mov r0, #0x0
+ pop {r4-r7}
+ bx lr
+ nop
+_02013C64: .word 0x020ED5EC
+_02013C68: .word 0x020ED5F0
+
+ thumb_func_start FUN_02013C6C
+FUN_02013C6C: ; 0x02013C6C
+ push {r3-r7, lr}
+ ldr r3, _02013CC8 ; =0x020ED5EC
+ add r6, r1, #0x0
+ mov r7, #0x0
+_02013C74:
+ ldr r5, [r3, #0x4]
+ mov r2, #0x0
+ cmp r5, #0x0
+ ble _02013CBC
+ ldr r4, [r3, #0x0]
+_02013C7E:
+ ldrh r1, [r4, #0x0]
+ cmp r0, r1
+ bne _02013CB4
+ ldr r2, _02013CCC ; =0x020ED5F0
+ lsl r1, r7, #0x3
+ ldr r2, [r2, r1]
+ mov r0, #0x0
+ cmp r2, #0x0
+ beq _02013CAC
+ ldr r2, _02013CC8 ; =0x020ED5EC
+ add r2, r2, r1
+ ldr r2, [r2, #0x4]
+_02013C96:
+ cmp r6, #0x0
+ bne _02013CA4
+ ldr r2, _02013CC8 ; =0x020ED5EC
+ lsl r0, r0, #0x1
+ ldr r1, [r2, r1]
+ ldrh r0, [r1, r0]
+ pop {r3-r7, pc}
+_02013CA4:
+ sub r6, r6, #0x1
+ add r0, r0, #0x1
+ cmp r2, #0x0
+ bne _02013C96
+_02013CAC:
+ bl ErrorHandling
+ ldr r0, _02013CD0 ; =0x0000FFFF
+ pop {r3-r7, pc}
+_02013CB4:
+ add r2, r2, #0x1
+ add r4, r4, #0x2
+ cmp r2, r5
+ blt _02013C7E
+_02013CBC:
+ add r7, r7, #0x1
+ add r3, #0x8
+ cmp r7, #0xc
+ blo _02013C74
+ pop {r3-r7, pc}
+ nop
+_02013CC8: .word 0x020ED5EC
+_02013CCC: .word 0x020ED5F0
+_02013CD0: .word 0x0000FFFF
+
+ thumb_func_start FUN_02013CD4
+FUN_02013CD4: ; 0x02013CD4
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ ldr r0, [r5, #0xc]
+ mov r1, #0x18
+ bl FUN_02016998
+ add r4, r0, #0x0
+ bne _02013CE8
+ bl ErrorHandling
+_02013CE8:
+ ldr r0, [r5, #0x0]
+ ldr r1, [r5, #0xc]
+ bl FUN_02013F68
+ str r0, [r4, #0x0]
+ ldr r0, [r5, #0x0]
+ str r0, [r4, #0x4]
+ ldr r0, [r5, #0x4]
+ ldr r1, [r5, #0xc]
+ bl FUN_02013F98
+ str r0, [r4, #0x8]
+ ldr r0, [r5, #0x4]
+ str r0, [r4, #0xc]
+ ldr r0, [r5, #0x8]
+ ldr r1, [r5, #0xc]
+ bl FUN_02013FC8
+ str r0, [r4, #0x10]
+ ldr r0, [r5, #0x8]
+ str r0, [r4, #0x14]
+ add r0, r4, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_02013D18
+FUN_02013D18: ; 0x02013D18
+ push {r4, lr}
+ add r4, r0, #0x0
+ bne _02013D22
+ bl ErrorHandling
+_02013D22:
+ ldr r0, [r4, #0x0]
+ cmp r0, #0x0
+ bne _02013D2C
+ bl ErrorHandling
+_02013D2C:
+ ldr r0, [r4, #0x8]
+ cmp r0, #0x0
+ bne _02013D36
+ bl ErrorHandling
+_02013D36:
+ ldr r0, [r4, #0x10]
+ cmp r0, #0x0
+ bne _02013D40
+ bl ErrorHandling
+_02013D40:
+ ldr r0, [r4, #0x0]
+ bl FUN_02016A18
+ ldr r0, [r4, #0x8]
+ bl FUN_02016A18
+ ldr r0, [r4, #0x10]
+ bl FUN_02016A18
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02013D5C
+FUN_02013D5C: ; 0x02013D5C
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ ldr r0, _02013D90 ; =0x04000444
+ mov r6, #0x0
+ str r6, [r0, #0x0]
+ ldr r0, [r5, #0x4]
+ cmp r0, #0x0
+ ble _02013D86
+ add r4, r6, #0x0
+_02013D6E:
+ ldr r0, [r5, #0x0]
+ add r0, r0, r4
+ ldr r1, [r0, #0x20]
+ cmp r1, #0x0
+ beq _02013D7C
+ bl FUN_020140D8
+_02013D7C:
+ ldr r0, [r5, #0x4]
+ add r6, r6, #0x1
+ add r4, #0x40
+ cmp r6, r0
+ blt _02013D6E
+_02013D86:
+ ldr r0, _02013D94 ; =0x04000448
+ mov r1, #0x1
+ str r1, [r0, #0x0]
+ pop {r4-r6, pc}
+ nop
+_02013D90: .word 0x04000444
+_02013D94: .word 0x04000448
+
+ thumb_func_start FUN_02013D98
+FUN_02013D98: ; 0x02013D98
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ ldr r0, [r5, #0x0]
+ bl FUN_02014024
+ add r4, r0, #0x0
+ bne _02013DAA
+ bl ErrorHandling
+_02013DAA:
+ ldr r0, [r5, #0x4]
+ ldr r0, [r0, #0x8]
+ cmp r0, #0x0
+ beq _02013DB6
+ bl ErrorHandling
+_02013DB6:
+ ldr r0, [r5, #0x4]
+ bl FUN_0201407C
+ str r0, [r4, #0x0]
+ cmp r0, #0x0
+ bne _02013DC6
+ bl ErrorHandling
+_02013DC6:
+ ldr r0, [r5, #0x4]
+ ldr r1, [r4, #0x0]
+ add r2, r4, #0x4
+ bl FUN_020140A4
+ add r0, r4, #0x0
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_02013DD4
+FUN_02013DD4: ; 0x02013DD4
+ push {r4, lr}
+ ldr r1, _02013DE8 ; =0x021064BC
+ add r4, r0, #0x0
+ ldr r0, [r4, #0x0]
+ ldr r1, [r1, #0x0]
+ blx r1
+ add r0, r4, #0x0
+ bl FUN_02013F50
+ pop {r4, pc}
+ .balign 4
+_02013DE8: .word 0x021064BC
+
+ thumb_func_start FUN_02013DEC
+FUN_02013DEC: ; 0x02013DEC
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ ldr r0, [r5, #0xc]
+ mov r6, #0x0
+ cmp r0, #0x0
+ ble _02013E12
+ add r4, r6, #0x0
+_02013DFA:
+ ldr r1, [r5, #0x8]
+ ldr r0, [r1, r4]
+ cmp r0, #0x0
+ beq _02013E08
+ add r0, r1, r4
+ bl FUN_02013DD4
+_02013E08:
+ ldr r0, [r5, #0xc]
+ add r6, r6, #0x1
+ add r4, #0x28
+ cmp r6, r0
+ blt _02013DFA
+_02013E12:
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_02013E14
+FUN_02013E14: ; 0x02013E14
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ ldr r0, [r5, #0x0]
+ bl FUN_02014050
+ add r4, r0, #0x0
+ bne _02013E26
+ bl ErrorHandling
+_02013E26:
+ ldr r0, [r5, #0x8]
+ bl FUN_02014090
+ str r0, [r4, #0x0]
+ cmp r0, #0x0
+ bne _02013E36
+ bl ErrorHandling
+_02013E36:
+ ldr r0, [r5, #0x4]
+ ldr r1, [r4, #0x0]
+ add r2, r4, #0x4
+ bl FUN_020140B4
+ add r0, r4, #0x0
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_02013E44
+FUN_02013E44: ; 0x02013E44
+ push {r4, lr}
+ ldr r1, _02013E58 ; =0x021064C4
+ add r4, r0, #0x0
+ ldr r0, [r4, #0x0]
+ ldr r1, [r1, #0x0]
+ blx r1
+ add r0, r4, #0x0
+ bl FUN_02013F5C
+ pop {r4, pc}
+ .balign 4
+_02013E58: .word 0x021064C4
+
+ thumb_func_start FUN_02013E5C
+FUN_02013E5C: ; 0x02013E5C
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ ldr r0, [r5, #0x14]
+ mov r6, #0x0
+ cmp r0, #0x0
+ ble _02013E82
+ add r4, r6, #0x0
+_02013E6A:
+ ldr r1, [r5, #0x10]
+ ldr r0, [r1, r4]
+ cmp r0, #0x0
+ beq _02013E78
+ add r0, r1, r4
+ bl FUN_02013E44
+_02013E78:
+ ldr r0, [r5, #0x14]
+ add r6, r6, #0x1
+ add r4, #0x18
+ cmp r6, r0
+ blt _02013E6A
+_02013E82:
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_02013E84
+FUN_02013E84: ; 0x02013E84
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ ldr r0, [r5, #0x0]
+ bl FUN_02013FF8
+ add r4, r0, #0x0
+ bne _02013E96
+ bl ErrorHandling
+_02013E96:
+ add r0, r4, #0x0
+ add r1, r5, #0x0
+ bl FUN_02014218
+ mov r0, #0x1
+ str r0, [r4, #0x1c]
+ str r0, [r4, #0x20]
+ add r0, r4, #0x0
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_02013EA8
+FUN_02013EA8: ; 0x02013EA8
+ ldr r3, _02013EAC ; =FUN_02013F30
+ bx r3
+ .balign 4
+_02013EAC: .word FUN_02013F30
+
+ thumb_func_start FUN_02013EB0
+FUN_02013EB0: ; 0x02013EB0
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ cmp r5, #0x0
+ bne _02013EBE
+ bl ErrorHandling
+_02013EBE:
+ str r4, [r5, #0x20]
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_02013EC4
+FUN_02013EC4: ; 0x02013EC4
+ strh r1, [r0, #0x0]
+ strh r2, [r0, #0x2]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02013ECC
+FUN_02013ECC: ; 0x02013ECC
+ ldrh r1, [r0, #0x2]
+ ldrh r0, [r0, #0x0]
+ lsl r1, r1, #0x10
+ orr r0, r1
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02013ED8
+FUN_02013ED8: ; 0x02013ED8
+ strh r1, [r0, #0x4]
+ strh r2, [r0, #0x6]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02013EE0
+FUN_02013EE0: ; 0x02013EE0
+ str r1, [r0, #0xc]
+ str r2, [r0, #0x10]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02013EE8
+FUN_02013EE8: ; 0x02013EE8
+ strh r1, [r0, #0x8]
+ strh r2, [r0, #0xa]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02013EF0
+FUN_02013EF0: ; 0x02013EF0
+ ldrh r1, [r0, #0xa]
+ ldrh r0, [r0, #0x8]
+ lsl r1, r1, #0x10
+ orr r0, r1
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02013EFC
+FUN_02013EFC: ; 0x02013EFC
+ str r1, [r0, #0x14]
+ bx lr
+
+ thumb_func_start FUN_02013F00
+FUN_02013F00: ; 0x02013F00
+ ldr r0, [r0, #0x14]
+ bx lr
+
+ thumb_func_start FUN_02013F04
+FUN_02013F04: ; 0x02013F04
+ add r0, #0x3e
+ strb r1, [r0, #0x0]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02013F0C
+FUN_02013F0C: ; 0x02013F0C
+ strh r1, [r0, #0x3c]
+ bx lr
+
+ thumb_func_start FUN_02013F10
+FUN_02013F10: ; 0x02013F10
+ str r1, [r0, #0x24]
+ bx lr
+
+ thumb_func_start FUN_02013F14
+FUN_02013F14: ; 0x02013F14
+ str r1, [r0, #0x28]
+ bx lr
+
+ thumb_func_start FUN_02013F18
+FUN_02013F18: ; 0x02013F18
+ str r1, [r0, #0x2c]
+ bx lr
+
+ thumb_func_start FUN_02013F1C
+FUN_02013F1C: ; 0x02013F1C
+ str r1, [r0, #0x30]
+ bx lr
+
+ thumb_func_start FUN_02013F20
+FUN_02013F20: ; 0x02013F20
+ cmp r1, #0x0
+ bne _02013F28
+ str r2, [r0, #0x34]
+ bx lr
+_02013F28:
+ str r2, [r0, #0x38]
+ bx lr
+
+ thumb_func_start FUN_02013F2C
+FUN_02013F2C: ; 0x02013F2C
+ str r1, [r0, #0x18]
+ bx lr
+
+ thumb_func_start FUN_02013F30
+FUN_02013F30: ; 0x02013F30
+ push {r4, lr}
+ add r4, r0, #0x0
+ mov r1, #0x0
+ mov r2, #0x40
+ blx Call_FillMemWithValue
+ add r0, r4, #0x0
+ mov r1, #0x1f
+ add r0, #0x3e
+ strb r1, [r0, #0x0]
+ ldr r0, _02013F4C ; =0x00007FFF
+ strh r0, [r4, #0x3c]
+ pop {r4, pc}
+ nop
+_02013F4C: .word 0x00007FFF
+
+ thumb_func_start FUN_02013F50
+FUN_02013F50: ; 0x02013F50
+ ldr r3, _02013F58 ; =FUN_020B1A24
+ mov r1, #0x0
+ stmia r0!, {r1}
+ bx r3
+ .balign 4
+_02013F58: .word FUN_020B1A24
+
+ thumb_func_start FUN_02013F5C
+FUN_02013F5C: ; 0x02013F5C
+ ldr r3, _02013F64 ; =FUN_020B19DC
+ mov r1, #0x0
+ stmia r0!, {r1}
+ bx r3
+ .balign 4
+_02013F64: .word FUN_020B19DC
+
+ thumb_func_start FUN_02013F68
+FUN_02013F68: ; 0x02013F68
+ push {r3-r7, lr}
+ add r6, r0, #0x0
+ add r0, r1, #0x0
+ lsl r1, r6, #0x6
+ bl FUN_02016998
+ add r7, r0, #0x0
+ bne _02013F7C
+ bl ErrorHandling
+_02013F7C:
+ mov r4, #0x0
+ cmp r6, #0x0
+ ble _02013F92
+ add r5, r7, #0x0
+_02013F84:
+ add r0, r5, #0x0
+ bl FUN_02013F30
+ add r4, r4, #0x1
+ add r5, #0x40
+ cmp r4, r6
+ blt _02013F84
+_02013F92:
+ add r0, r7, #0x0
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_02013F98
+FUN_02013F98: ; 0x02013F98
+ push {r3-r7, lr}
+ add r6, r0, #0x0
+ add r0, r1, #0x0
+ mov r1, #0x28
+ mul r1, r6
+ bl FUN_02016998
+ add r7, r0, #0x0
+ bne _02013FAE
+ bl ErrorHandling
+_02013FAE:
+ mov r4, #0x0
+ cmp r6, #0x0
+ ble _02013FC4
+ add r5, r7, #0x0
+_02013FB6:
+ add r0, r5, #0x0
+ bl FUN_02013F50
+ add r4, r4, #0x1
+ add r5, #0x28
+ cmp r4, r6
+ blt _02013FB6
+_02013FC4:
+ add r0, r7, #0x0
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_02013FC8
+FUN_02013FC8: ; 0x02013FC8
+ push {r3-r7, lr}
+ add r6, r0, #0x0
+ add r0, r1, #0x0
+ mov r1, #0x18
+ mul r1, r6
+ bl FUN_02016998
+ add r7, r0, #0x0
+ bne _02013FDE
+ bl ErrorHandling
+_02013FDE:
+ mov r4, #0x0
+ cmp r6, #0x0
+ ble _02013FF4
+ add r5, r7, #0x0
+_02013FE6:
+ add r0, r5, #0x0
+ bl FUN_02013F5C
+ add r4, r4, #0x1
+ add r5, #0x18
+ cmp r4, r6
+ blt _02013FE6
+_02013FF4:
+ add r0, r7, #0x0
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_02013FF8
+FUN_02013FF8: ; 0x02013FF8
+ push {r3-r4}
+ ldr r4, [r0, #0x4]
+ mov r1, #0x0
+ cmp r4, #0x0
+ ble _0201401C
+ ldr r3, [r0, #0x0]
+ add r2, r3, #0x0
+_02014006:
+ ldr r0, [r2, #0x1c]
+ cmp r0, #0x0
+ bne _02014014
+ lsl r0, r1, #0x6
+ add r0, r3, r0
+ pop {r3-r4}
+ bx lr
+_02014014:
+ add r1, r1, #0x1
+ add r2, #0x40
+ cmp r1, r4
+ blt _02014006
+_0201401C:
+ mov r0, #0x0
+ pop {r3-r4}
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02014024
+FUN_02014024: ; 0x02014024
+ push {r3-r4}
+ ldr r4, [r0, #0x4]
+ mov r1, #0x0
+ cmp r4, #0x0
+ ble _0201404A
+ ldr r3, [r0, #0x8]
+ add r2, r3, #0x0
+_02014032:
+ ldr r0, [r2, #0x0]
+ cmp r0, #0x0
+ bne _02014042
+ mov r0, #0x28
+ mul r0, r1
+ add r0, r3, r0
+ pop {r3-r4}
+ bx lr
+_02014042:
+ add r1, r1, #0x1
+ add r2, #0x28
+ cmp r1, r4
+ blt _02014032
+_0201404A:
+ mov r0, #0x0
+ pop {r3-r4}
+ bx lr
+
+ thumb_func_start FUN_02014050
+FUN_02014050: ; 0x02014050
+ push {r3-r4}
+ ldr r4, [r0, #0x4]
+ mov r1, #0x0
+ cmp r4, #0x0
+ ble _02014076
+ ldr r3, [r0, #0x10]
+ add r2, r3, #0x0
+_0201405E:
+ ldr r0, [r2, #0x0]
+ cmp r0, #0x0
+ bne _0201406E
+ mov r0, #0x18
+ mul r0, r1
+ add r0, r3, r0
+ pop {r3-r4}
+ bx lr
+_0201406E:
+ add r1, r1, #0x1
+ add r2, #0x18
+ cmp r1, r4
+ blt _0201405E
+_02014076:
+ mov r0, #0x0
+ pop {r3-r4}
+ bx lr
+
+ thumb_func_start FUN_0201407C
+FUN_0201407C: ; 0x0201407C
+ push {r3, lr}
+ ldr r3, _0201408C ; =0x021064B8
+ mov r1, #0x0
+ ldr r0, [r0, #0x10]
+ ldr r3, [r3, #0x0]
+ add r2, r1, #0x0
+ blx r3
+ pop {r3, pc}
+ .balign 4
+_0201408C: .word 0x021064B8
+
+ thumb_func_start FUN_02014090
+FUN_02014090: ; 0x02014090
+ push {r3, lr}
+ ldr r3, _020140A0 ; =0x021064C0
+ mov r1, #0x0
+ ldr r3, [r3, #0x0]
+ lsl r0, r0, #0x5
+ add r2, r1, #0x0
+ blx r3
+ pop {r3, pc}
+ .balign 4
+_020140A0: .word 0x021064C0
+
+ thumb_func_start FUN_020140A4
+FUN_020140A4: ; 0x020140A4
+ push {r3, lr}
+ lsl r1, r1, #0x10
+ add r3, r2, #0x0
+ lsr r1, r1, #0xd
+ mov r2, #0x0
+ blx FUN_020B1528
+ pop {r3, pc}
+
+ thumb_func_start FUN_020140B4
+FUN_020140B4: ; 0x020140B4
+ push {r3-r5, lr}
+ add r3, r2, #0x0
+ ldr r2, _020140D4 ; =0xFFFF0000
+ add r5, r0, #0x0
+ and r2, r1
+ lsr r2, r2, #0x10
+ lsl r1, r1, #0x10
+ ldr r4, [r5, #0x8]
+ lsl r2, r2, #0x3
+ str r2, [r5, #0x8]
+ lsr r1, r1, #0xd
+ mov r2, #0x0
+ blx FUN_020B1240
+ str r4, [r5, #0x8]
+ pop {r3-r5, pc}
+ .balign 4
+_020140D4: .word 0xFFFF0000
+
+ thumb_func_start FUN_020140D8
+FUN_020140D8: ; 0x020140D8
+ push {r3-r7, lr}
+ sub sp, #0x18
+ ldr r7, _020141F8 ; =0x04000444
+ mov r6, #0x0
+ add r5, r0, #0x0
+ str r6, [r7, #0x0]
+ ldrh r1, [r5, #0x3c]
+ ldr r0, _020141FC ; =0x7FFF8000
+ orr r0, r1
+ str r0, [r7, #0x7c]
+ add r0, r7, #0x0
+ ldr r1, _02014200 ; =0x00004210
+ add r0, #0x80
+ str r1, [r0, #0x0]
+ ldr r3, [r5, #0x24]
+ ldr r4, [r3, #0x8]
+ ldr r2, [r3, #0x10]
+ ldr r1, [r3, #0x4]
+ ldr r0, [r3, #0x0]
+ lsl r3, r2, #0x1d
+ lsl r2, r1, #0x17
+ lsl r1, r0, #0x14
+ ldr r0, [r5, #0x28]
+ lsl r4, r4, #0x1a
+ lsr r0, r0, #0x3
+ orr r4, r0
+ mov r0, #0x1
+ lsl r0, r0, #0x1e
+ orr r0, r4
+ orr r0, r1
+ orr r0, r2
+ orr r0, r3
+ str r0, [r7, #0x64]
+ ldr r0, [r5, #0x24]
+ ldr r0, [r0, #0x8]
+ cmp r0, #0x2
+ bne _02014124
+ mov r6, #0x1
+_02014124:
+ ldr r0, [r5, #0x30]
+ ldr r1, [r5, #0x2c]
+ lsl r0, r0, #0x5
+ add r1, r1, r0
+ mov r0, #0x4
+ sub r0, r0, r6
+ lsr r1, r0
+ ldr r2, _02014204 ; =0x040004AC
+ add r0, r5, #0x0
+ str r1, [r2, #0x0]
+ add r0, #0x3e
+ ldrb r0, [r0, #0x0]
+ sub r2, #0x8
+ lsl r1, r0, #0x10
+ mov r0, #0xc0
+ orr r0, r1
+ str r0, [r2, #0x0]
+ ldr r0, [r5, #0x34]
+ cmp r0, #0x0
+ beq _02014156
+ mov r0, #0x8
+ ldrsh r0, [r5, r0]
+ mov r7, #0x0
+ str r0, [sp, #0x14]
+ b _0201415E
+_02014156:
+ mov r0, #0x8
+ ldrsh r7, [r5, r0]
+ mov r0, #0x0
+ str r0, [sp, #0x14]
+_0201415E:
+ ldr r0, [r5, #0x38]
+ cmp r0, #0x0
+ beq _0201416C
+ mov r0, #0xa
+ ldrsh r6, [r5, r0]
+ mov r4, #0x0
+ b _02014172
+_0201416C:
+ mov r0, #0xa
+ ldrsh r4, [r5, r0]
+ mov r6, #0x0
+_02014172:
+ ldr r0, [r5, #0x14]
+ mov r1, #0x6
+ lsl r2, r0, #0xc
+ mov r0, #0x2
+ ldrsh r0, [r5, r0]
+ ldrsh r1, [r5, r1]
+ mov r3, #0x4
+ ldrsh r3, [r5, r3]
+ add r0, r0, r1
+ lsl r1, r0, #0xc
+ mov r0, #0x0
+ ldrsh r0, [r5, r0]
+ add r0, r0, r3
+ ldr r3, _02014208 ; =0x04000470
+ lsl r0, r0, #0xc
+ str r0, [r3, #0x0]
+ str r1, [r3, #0x0]
+ str r2, [r3, #0x0]
+ ldr r0, [r5, #0x18]
+ ldr r1, _0201420C ; =0x020FFA38
+ asr r0, r0, #0x4
+ lsl r2, r0, #0x1
+ lsl r0, r2, #0x1
+ add r2, r2, #0x1
+ lsl r2, r2, #0x1
+ ldrsh r0, [r1, r0]
+ ldrsh r1, [r1, r2]
+ blx G3_RotZ
+ ldr r2, [r5, #0x10]
+ ldr r0, [r5, #0xc]
+ ldr r1, _02014210 ; =0x0400046C
+ mov r3, #0x8
+ str r0, [r1, #0x0]
+ str r2, [r1, #0x0]
+ lsr r0, r1, #0xe
+ str r0, [r1, #0x0]
+ mov r2, #0x4
+ mov r0, #0x6
+ ldrsh r2, [r5, r2]
+ ldrsh r0, [r5, r0]
+ neg r2, r2
+ neg r0, r0
+ lsl r2, r2, #0xc
+ lsl r0, r0, #0xc
+ str r2, [r1, #0x4]
+ str r0, [r1, #0x4]
+ mov r0, #0x0
+ str r0, [r1, #0x4]
+ mov r1, #0xa
+ ldrsh r1, [r5, r1]
+ add r2, r0, #0x0
+ str r1, [sp, #0x0]
+ ldr r1, [sp, #0x14]
+ str r1, [sp, #0x4]
+ str r6, [sp, #0x8]
+ str r7, [sp, #0xc]
+ str r4, [sp, #0x10]
+ ldrsh r3, [r5, r3]
+ add r1, r0, #0x0
+ blx FUN_020B0250
+ ldr r0, _02014214 ; =0x04000448
+ mov r1, #0x1
+ str r1, [r0, #0x0]
+ add sp, #0x18
+ pop {r3-r7, pc}
+ .balign 4
+_020141F8: .word 0x04000444
+_020141FC: .word 0x7FFF8000
+_02014200: .word 0x00004210
+_02014204: .word 0x040004AC
+_02014208: .word 0x04000470
+_0201420C: .word 0x020FFA38
+_02014210: .word 0x0400046C
+_02014214: .word 0x04000448
+
+ thumb_func_start FUN_02014218
+FUN_02014218: ; 0x02014218
+ push {r3-r7, lr}
+ add r5, r1, #0x0
+ ldr r1, [r5, #0x4]
+ add r7, r0, #0x0
+ ldr r2, [r1, #0x10]
+ mov r6, #0x8
+ mov r0, #0x0
+ cmp r2, #0x0
+ ble _02014236
+_0201422A:
+ ldr r2, [r5, #0x4]
+ add r0, r0, #0x1
+ ldr r2, [r2, #0x10]
+ lsl r6, r6, #0x1
+ cmp r0, r2
+ blt _0201422A
+_02014236:
+ ldr r1, [r1, #0x14]
+ mov r4, #0x8
+ mov r0, #0x0
+ cmp r1, #0x0
+ ble _0201424C
+_02014240:
+ ldr r1, [r5, #0x4]
+ add r0, r0, #0x1
+ ldr r1, [r1, #0x14]
+ lsl r4, r4, #0x1
+ cmp r0, r1
+ blt _02014240
+_0201424C:
+ mov r1, #0xc
+ mov r2, #0xe
+ ldrsh r1, [r5, r1]
+ ldrsh r2, [r5, r2]
+ add r0, r7, #0x0
+ bl FUN_02013EC4
+ lsr r1, r6, #0x1f
+ lsr r2, r4, #0x1f
+ add r1, r6, r1
+ add r2, r4, r2
+ lsl r1, r1, #0xf
+ lsl r2, r2, #0xf
+ add r0, r7, #0x0
+ asr r1, r1, #0x10
+ asr r2, r2, #0x10
+ bl FUN_02013ED8
+ mov r0, #0x1
+ lsl r0, r0, #0xc
+ str r0, [r7, #0xc]
+ str r0, [r7, #0x10]
+ add r0, r7, #0x0
+ add r1, r6, #0x0
+ add r2, r4, #0x0
+ bl FUN_02013EE8
+ ldr r1, [r5, #0x18]
+ add r0, r7, #0x0
+ bl FUN_02013EFC
+ ldr r1, [r5, #0x14]
+ add r0, r7, #0x0
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ bl FUN_02013F04
+ ldr r1, [r5, #0x4]
+ add r0, r7, #0x0
+ add r1, #0x10
+ bl FUN_02013F10
+ ldr r0, [r5, #0x4]
+ mov r1, #0x0
+ add r0, r0, #0x4
+ blx FUN_020B1A14
+ add r1, r0, #0x0
+ add r0, r7, #0x0
+ bl FUN_02013F14
+ ldr r0, [r5, #0x8]
+ mov r1, #0x0
+ add r0, r0, #0x4
+ blx FUN_020B19C4
+ add r1, r0, #0x0
+ add r0, r7, #0x0
+ bl FUN_02013F18
+ ldrh r1, [r5, #0x1c]
+ add r0, r7, #0x0
+ bl FUN_02013F1C
+ mov r1, #0x0
+ add r0, r7, #0x0
+ add r2, r1, #0x0
+ bl FUN_02013F20
+ add r0, r7, #0x0
+ mov r1, #0x1
+ mov r2, #0x0
+ bl FUN_02013F20
+ ldrh r1, [r5, #0x10]
+ add r0, r7, #0x0
+ bl FUN_02013F2C
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_020142EC
+FUN_020142EC: ; 0x020142EC
+ push {r4-r7, lr}
+ sub sp, #0xc
+ add r5, r0, #0x0
+ add r6, r1, #0x0
+ add r7, r2, #0x0
+ ldr r0, _02014394 ; =FUN_020143DC
+ mov r1, #0x50
+ mov r2, #0x0
+ bl FUN_020061E8
+ str r0, [sp, #0x4]
+ bl FUN_0201B6C8
+ add r4, r0, #0x0
+ cmp r5, #0x0
+ beq _02014330
+ cmp r6, #0x0
+ bne _02014320
+ add r0, r5, #0x0
+ mov r1, #0x0
+ bl FUN_020031FC
+ str r0, [sp, #0x0]
+ ldr r0, _02014398 ; =FUN_020144E0
+ str r0, [r4, #0x4]
+ b _0201434A
+_02014320:
+ add r0, r5, #0x0
+ mov r1, #0x1
+ bl FUN_020031FC
+ str r0, [sp, #0x0]
+ ldr r0, _0201439C ; =FUN_020144FC
+ str r0, [r4, #0x4]
+ b _0201434A
+_02014330:
+ cmp r6, #0x0
+ bne _02014340
+ bl FUN_020222E8
+ str r0, [sp, #0x0]
+ ldr r0, _020143A0 ; =FUN_020144B0
+ str r0, [r4, #0x4]
+ b _0201434A
+_02014340:
+ bl FUN_020222F8
+ str r0, [sp, #0x0]
+ ldr r0, _020143A4 ; =FUN_020144C8
+ str r0, [r4, #0x4]
+_0201434A:
+ ldr r1, [sp, #0x0]
+ lsl r0, r7, #0x5
+ str r0, [sp, #0x8]
+ add r0, r1, r0
+ add r1, r4, #0x0
+ add r1, #0xc
+ mov r2, #0x20
+ blx MIi_CpuCopy16
+ ldr r1, [sp, #0x0]
+ ldr r0, [sp, #0x8]
+ mov r2, #0x20
+ add r0, r1, r0
+ add r1, r4, #0x0
+ add r1, #0x2c
+ blx MIi_CpuCopy16
+ ldr r0, [sp, #0x4]
+ mov r1, #0x1
+ str r0, [r4, #0x0]
+ add r0, r4, #0x0
+ str r5, [r4, #0x8]
+ add r0, #0x4c
+ strb r6, [r0, #0x0]
+ add r0, r4, #0x0
+ add r0, #0x4d
+ strb r7, [r0, #0x0]
+ add r0, r4, #0x0
+ add r0, #0x4e
+ strb r1, [r0, #0x0]
+ add r0, r4, #0x0
+ mov r1, #0x0
+ add r0, #0x4f
+ strb r1, [r0, #0x0]
+ add r0, r4, #0x0
+ add sp, #0xc
+ pop {r4-r7, pc}
+ .balign 4
+_02014394: .word FUN_020143DC
+_02014398: .word FUN_020144E0
+_0201439C: .word FUN_020144FC
+_020143A0: .word FUN_020144B0
+_020143A4: .word FUN_020144C8
+
+ thumb_func_start FUN_020143A8
+FUN_020143A8: ; 0x020143A8
+ cmp r1, #0x0
+ beq _020143B6
+ cmp r1, #0x1
+ beq _020143BE
+ cmp r1, #0x2
+ beq _020143C6
+ bx lr
+_020143B6:
+ mov r1, #0x0
+ add r0, #0x4e
+ strb r1, [r0, #0x0]
+ bx lr
+_020143BE:
+ mov r1, #0x2
+ add r0, #0x4e
+ strb r1, [r0, #0x0]
+ bx lr
+_020143C6:
+ mov r1, #0x3
+ add r0, #0x4e
+ strb r1, [r0, #0x0]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_020143D0
+FUN_020143D0: ; 0x020143D0
+ ldr r3, _020143D8 ; =FUN_0200621C
+ ldr r0, [r0, #0x0]
+ bx r3
+ nop
+_020143D8: .word FUN_0200621C
+
+ thumb_func_start FUN_020143DC
+FUN_020143DC: ; 0x020143DC
+ push {r3-r5, lr}
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ add r0, r4, #0x0
+ add r0, #0x4e
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x3
+ bhi _02014452
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_020143F8: ; jump table (using 16-bit offset)
+ .short _02014400 - _020143F8 - 2; case 0
+ .short _02014410 - _020143F8 - 2; case 1
+ .short _02014452 - _020143F8 - 2; case 2
+ .short _02014444 - _020143F8 - 2; case 3
+_02014400:
+ add r0, r4, #0x0
+ mov r1, #0x0
+ add r0, #0x4f
+ strb r1, [r0, #0x0]
+ mov r0, #0x1
+ add r4, #0x4e
+ strb r0, [r4, #0x0]
+ pop {r3-r5, pc}
+_02014410:
+ add r0, r4, #0x0
+ bl FUN_02014454
+ cmp r0, #0x1
+ bne _02014424
+ add r1, r4, #0x0
+ ldr r2, [r4, #0x4]
+ add r0, r4, #0x0
+ add r1, #0x2c
+ blx r2
+_02014424:
+ add r0, r4, #0x0
+ add r0, #0x4f
+ ldrb r0, [r0, #0x0]
+ add r1, r0, #0x1
+ add r0, r4, #0x0
+ add r0, #0x4f
+ strb r1, [r0, #0x0]
+ add r0, r4, #0x0
+ add r0, #0x4f
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x20
+ bne _02014452
+ mov r0, #0x0
+ add r4, #0x4f
+ strb r0, [r4, #0x0]
+ pop {r3-r5, pc}
+_02014444:
+ ldr r2, [r4, #0x4]
+ add r0, r4, #0x0
+ add r1, #0xc
+ blx r2
+ add r0, r5, #0x0
+ bl FUN_0200621C
+_02014452:
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_02014454
+FUN_02014454: ; 0x02014454
+ push {r4-r5}
+ add r1, r0, #0x0
+ add r1, #0x4f
+ ldrb r1, [r1, #0x0]
+ cmp r1, #0x0
+ bne _02014482
+ mov r1, #0x1e
+ mov r4, #0x0
+ mov r3, #0x1
+ lsl r1, r1, #0xa
+_02014468:
+ add r2, r3, #0x0
+ lsl r2, r4
+ tst r2, r1
+ beq _02014474
+ ldrh r2, [r0, #0xc]
+ strh r2, [r0, #0x2c]
+_02014474:
+ add r4, r4, #0x1
+ add r0, r0, #0x2
+ cmp r4, #0x10
+ blo _02014468
+ mov r0, #0x1
+ pop {r4-r5}
+ bx lr
+_02014482:
+ cmp r1, #0x18
+ bne _020144AA
+ mov r1, #0x1e
+ mov r5, #0x0
+ add r4, r0, #0x0
+ mov r3, #0x1
+ lsl r1, r1, #0xa
+_02014490:
+ add r2, r3, #0x0
+ lsl r2, r5
+ tst r2, r1
+ beq _0201449C
+ ldrh r2, [r0, #0x2a]
+ strh r2, [r4, #0x2c]
+_0201449C:
+ add r5, r5, #0x1
+ add r4, r4, #0x2
+ cmp r5, #0x10
+ blo _02014490
+ mov r0, #0x1
+ pop {r4-r5}
+ bx lr
+_020144AA:
+ mov r0, #0x0
+ pop {r4-r5}
+ bx lr
+
+ thumb_func_start FUN_020144B0
+FUN_020144B0: ; 0x020144B0
+ push {r3, lr}
+ add r3, r0, #0x0
+ add r3, #0x4d
+ ldrb r3, [r3, #0x0]
+ mov r0, #0x0
+ mov r2, #0x20
+ lsl r3, r3, #0x15
+ lsr r3, r3, #0x10
+ bl FUN_02017FB4
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_020144C8
+FUN_020144C8: ; 0x020144C8
+ push {r3, lr}
+ add r3, r0, #0x0
+ add r3, #0x4d
+ ldrb r3, [r3, #0x0]
+ mov r0, #0x4
+ mov r2, #0x20
+ lsl r3, r3, #0x15
+ lsr r3, r3, #0x10
+ bl FUN_02017FB4
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_020144E0
+FUN_020144E0: ; 0x020144E0
+ push {r3, lr}
+ add r3, r0, #0x0
+ mov r0, #0x20
+ str r0, [sp, #0x0]
+ ldr r0, [r3, #0x8]
+ add r3, #0x4d
+ ldrb r3, [r3, #0x0]
+ mov r2, #0x0
+ lsl r3, r3, #0x14
+ lsr r3, r3, #0x10
+ bl FUN_02003054
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_020144FC
+FUN_020144FC: ; 0x020144FC
+ push {r3, lr}
+ add r3, r0, #0x0
+ mov r0, #0x20
+ str r0, [sp, #0x0]
+ ldr r0, [r3, #0x8]
+ add r3, #0x4d
+ ldrb r3, [r3, #0x0]
+ mov r2, #0x1
+ lsl r3, r3, #0x14
+ lsr r3, r3, #0x10
+ bl FUN_02003054
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_02014518
+FUN_02014518: ; 0x02014518
+ push {r3-r7, lr}
+ mov r1, #0x78
+ add r7, r0, #0x0
+ bl FUN_02016998
+ mov r1, #0x0
+ mov r2, #0x78
+ add r6, r0, #0x0
+ blx MI_CpuFill8
+ ldr r2, _02014560 ; =0x0000019E
+ mov r0, #0x0
+ mov r1, #0x1a
+ add r3, r7, #0x0
+ bl FUN_0200A86C
+ str r0, [r6, #0x0]
+ mov r4, #0x0
+ add r5, r6, #0x0
+_0201453E:
+ mov r0, #0x16
+ add r1, r7, #0x0
+ bl FUN_020219F4
+ str r0, [r5, #0x4]
+ ldr r0, [r6, #0x0]
+ ldr r2, [r5, #0x4]
+ add r1, r4, #0x0
+ bl FUN_0200A8E0
+ add r4, r4, #0x1
+ add r5, r5, #0x4
+ cmp r4, #0x1d
+ blt _0201453E
+ add r0, r6, #0x0
+ pop {r3-r7, pc}
+ nop
+_02014560: .word 0x0000019E
+
+ thumb_func_start FUN_02014564
+FUN_02014564: ; 0x02014564
+ push {r4-r6, lr}
+ add r6, r0, #0x0
+ add r5, r6, #0x0
+ mov r4, #0x1c
+ add r5, #0x70
+_0201456E:
+ ldr r0, [r5, #0x4]
+ bl FUN_02021A20
+ sub r5, r5, #0x4
+ sub r4, r4, #0x1
+ bpl _0201456E
+ ldr r0, [r6, #0x0]
+ bl FUN_0200A8B8
+ add r0, r6, #0x0
+ bl FUN_02016A18
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_02014588
+FUN_02014588: ; 0x02014588
+ lsl r1, r1, #0x2
+ add r0, r0, r1
+ ldr r0, [r0, #0x4]
+ bx lr
+
+ thumb_func_start FUN_02014590
+FUN_02014590: ; 0x02014590
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ mov r1, #0x9c
+ bl FUN_02016998
+ add r1, r5, #0x0
+ add r4, r0, #0x0
+ bl FUN_020146F0
+ add r0, r4, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_020145A8
+FUN_020145A8: ; 0x020145A8
+ push {r4, lr}
+ add r4, r0, #0x0
+ add r1, r4, #0x0
+ add r1, #0x9b
+ ldrb r1, [r1, #0x0]
+ lsl r1, r1, #0x1c
+ lsr r1, r1, #0x1c
+ cmp r1, #0x1
+ bne _020145BE
+ bl FUN_020146C4
+_020145BE:
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_020145C8
+FUN_020145C8: ; 0x020145C8
+ push {r3-r5, lr}
+ add r4, r1, #0x0
+ ldr r2, [r4, #0x0]
+ add r5, r0, #0x0
+ str r2, [r5, #0x7c]
+ add r2, r5, #0x0
+ ldr r3, [r4, #0x4]
+ add r2, #0x80
+ str r3, [r2, #0x0]
+ add r2, r5, #0x0
+ ldrb r3, [r4, #0x10]
+ add r2, #0x98
+ strb r3, [r2, #0x0]
+ add r2, r5, #0x0
+ ldrb r3, [r4, #0x11]
+ add r2, #0x99
+ strb r3, [r2, #0x0]
+ bl FUN_02014730
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_02014754
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_02014784
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_02014814
+ add r0, r5, #0x0
+ add r0, #0x9b
+ ldrb r1, [r0, #0x0]
+ mov r0, #0xf
+ bic r1, r0
+ mov r0, #0x1
+ orr r1, r0
+ add r0, r5, #0x0
+ add r0, #0x9b
+ strb r1, [r0, #0x0]
+ add r0, r5, #0x0
+ add r0, #0x9b
+ ldrb r1, [r0, #0x0]
+ mov r0, #0xf0
+ add r5, #0x9b
+ bic r1, r0
+ mov r0, #0x80
+ orr r0, r1
+ strb r0, [r5, #0x0]
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_02014630
+FUN_02014630: ; 0x02014630
+ push {r4, lr}
+ add r4, r0, #0x0
+ add r1, r4, #0x0
+ add r1, #0x9b
+ ldrb r2, [r1, #0x0]
+ mov r1, #0xf0
+ bic r2, r1
+ mov r1, #0x80
+ orr r2, r1
+ add r1, r4, #0x0
+ add r1, #0x9b
+ strb r2, [r1, #0x0]
+ bl FUN_0201466C
+ cmp r0, #0x0
+ bne _0201466A
+ add r1, r4, #0x0
+ add r1, #0x9b
+ ldrb r1, [r1, #0x0]
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x1c
+ bne _0201466A
+ add r4, #0x9a
+ ldrb r0, [r4, #0x0]
+ cmp r0, #0x0
+ bne _02014668
+ mov r0, #0x3
+ pop {r4, pc}
+_02014668:
+ mov r0, #0x4
+_0201466A:
+ pop {r4, pc}
+
+ thumb_func_start FUN_0201466C
+FUN_0201466C: ; 0x0201466C
+ push {r4, lr}
+ add r4, r0, #0x0
+ add r0, #0x9b
+ ldrb r0, [r0, #0x0]
+ lsl r0, r0, #0x1c
+ lsr r0, r0, #0x1c
+ cmp r0, #0x1
+ beq _02014680
+ bl ErrorHandling
+_02014680:
+ add r0, r4, #0x0
+ add r0, #0x9a
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x3
+ bne _02014690
+ ldr r0, [r4, #0x0]
+ bl FUN_02022144
+_02014690:
+ add r1, r4, #0x0
+ add r1, #0x9a
+ ldrb r2, [r1, #0x0]
+ mov r0, #0x0
+ cmp r2, #0x3
+ beq _020146AA
+ add r1, r4, #0x0
+ mov r0, #0x38
+ add r1, #0xc
+ mul r0, r2
+ add r0, r1, r0
+ bl FUN_02014930
+_020146AA:
+ cmp r0, #0x1
+ bne _020146BE
+ add r4, #0x9a
+ ldrb r0, [r4, #0x0]
+ cmp r0, #0x0
+ bne _020146BA
+ mov r0, #0x1
+ pop {r4, pc}
+_020146BA:
+ mov r0, #0x2
+ pop {r4, pc}
+_020146BE:
+ mov r0, #0x0
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_020146C4
+FUN_020146C4: ; 0x020146C4
+ push {r4-r6, lr}
+ add r6, r0, #0x0
+ ldr r0, [r6, #0x0]
+ bl FUN_0202212C
+ add r5, r6, #0x0
+ mov r4, #0x0
+ add r5, #0xc
+_020146D4:
+ add r0, r5, #0x0
+ bl FUN_02014970
+ add r4, r4, #0x1
+ add r5, #0x38
+ cmp r4, #0x2
+ blt _020146D4
+ add r0, r6, #0x0
+ add r6, #0x84
+ ldr r1, [r6, #0x0]
+ bl FUN_020146F0
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_020146F0
+FUN_020146F0: ; 0x020146F0
+ push {r3-r5, lr}
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ mov r1, #0x0
+ mov r2, #0x9c
+ blx Call_FillMemWithValue
+ add r0, r5, #0x0
+ add r0, #0x9b
+ ldrb r1, [r0, #0x0]
+ mov r0, #0xf
+ bic r1, r0
+ add r0, r5, #0x0
+ add r0, #0x9b
+ strb r1, [r0, #0x0]
+ add r0, r5, #0x0
+ add r0, #0x84
+ str r4, [r0, #0x0]
+ add r0, r5, #0x0
+ mov r1, #0x3
+ add r0, #0x9a
+ strb r1, [r0, #0x0]
+ add r0, r5, #0x0
+ add r0, #0x9b
+ ldrb r1, [r0, #0x0]
+ mov r0, #0xf0
+ add r5, #0x9b
+ bic r1, r0
+ mov r0, #0x80
+ orr r0, r1
+ strb r0, [r5, #0x0]
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_02014730
+FUN_02014730: ; 0x02014730
+ push {r3, lr}
+ sub sp, #0x8
+ add r3, r0, #0x0
+ ldr r0, [r1, #0x8]
+ mov r1, #0x1
+ str r0, [sp, #0x0]
+ add r0, r3, #0x0
+ add r0, #0x84
+ ldr r0, [r0, #0x0]
+ str r0, [sp, #0x4]
+ ldr r2, [r3, #0x7c]
+ add r3, #0x80
+ ldr r3, [r3, #0x0]
+ mov r0, #0x54
+ bl FUN_02014A3C
+ add sp, #0x8
+ pop {r3, pc}
+
+ thumb_func_start FUN_02014754
+FUN_02014754: ; 0x02014754
+ push {r3, lr}
+ sub sp, #0x8
+ add r3, r1, #0x0
+ add r1, r0, #0x0
+ add r1, #0x80
+ ldr r1, [r1, #0x0]
+ cmp r1, #0x4
+ bhs _02014768
+ mov r2, #0x0
+ b _0201476A
+_02014768:
+ mov r2, #0x4
+_0201476A:
+ mov r1, #0x40
+ str r1, [sp, #0x0]
+ add r0, #0x84
+ ldr r0, [r0, #0x0]
+ mov r1, #0x0
+ str r0, [sp, #0x4]
+ ldr r3, [r3, #0xc]
+ mov r0, #0x54
+ lsl r3, r3, #0x5
+ bl FUN_02014A8C
+ add sp, #0x8
+ pop {r3, pc}
+
+ thumb_func_start FUN_02014784
+FUN_02014784: ; 0x02014784
+ push {r3-r7, lr}
+ sub sp, #0x30
+ add r7, r0, #0x0
+ mov r3, #0x0
+ add r4, r7, #0x0
+_0201478E:
+ add r0, r4, #0x0
+ add r3, r3, #0x1
+ lsl r2, r3, #0xc
+ add r0, #0x88
+ add r4, r4, #0x4
+ str r2, [r0, #0x0]
+ cmp r3, #0x4
+ blt _0201478E
+ ldr r0, [r7, #0x7c]
+ mov r5, #0x0
+ str r0, [sp, #0x0]
+ add r0, r7, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ add r4, r7, #0x0
+ str r0, [sp, #0x4]
+ mov r0, #0x54
+ str r0, [sp, #0x8]
+ ldr r0, [r1, #0x8]
+ add r6, r5, #0x0
+ str r0, [sp, #0x1c]
+ ldr r0, [r1, #0xc]
+ add r4, #0xc
+ str r0, [sp, #0x20]
+ add r0, r7, #0x0
+ add r0, #0x88
+ str r0, [sp, #0x24]
+ mov r0, #0x4
+ str r0, [sp, #0x28]
+ add r0, r7, #0x0
+ add r0, #0x98
+ ldrb r1, [r0, #0x0]
+ add r0, sp, #0x20
+ strb r1, [r0, #0xc]
+_020147D2:
+ mov r1, #0x0
+ mov r2, #0x2
+ add r3, sp, #0x0
+_020147D8:
+ add r0, r5, r2
+ str r0, [r3, #0xc]
+ add r1, r1, #0x1
+ add r2, r2, #0x2
+ add r3, r3, #0x4
+ cmp r1, #0x4
+ blt _020147D8
+ add r0, r7, #0x0
+ add r0, #0x99
+ ldrb r0, [r0, #0x0]
+ add r2, r7, #0x0
+ add r2, #0x84
+ add r1, r0, r6
+ add r0, sp, #0x20
+ strb r1, [r0, #0xd]
+ ldr r0, [sp, #0x20]
+ add r1, sp, #0x0
+ add r0, r0, r5
+ str r0, [sp, #0x20]
+ ldr r2, [r2, #0x0]
+ add r0, r4, #0x0
+ bl FUN_020148A8
+ add r5, r5, #0x1
+ add r6, r6, #0x4
+ add r4, #0x38
+ cmp r5, #0x2
+ blt _020147D2
+ add sp, #0x30
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_02014814
+FUN_02014814: ; 0x02014814
+ push {r3-r4, lr}
+ sub sp, #0x4
+ add r4, r0, #0x0
+ mov r0, #0x0
+ add r1, r0, #0x0
+ add r2, r4, #0x0
+_02014820:
+ add r3, r4, #0x0
+ add r3, #0x99
+ ldrb r3, [r3, #0x0]
+ add r0, r0, #0x1
+ lsl r3, r3, #0x3
+ add r3, r3, r1
+ strb r3, [r2, #0x4]
+ add r3, r4, #0x0
+ add r3, #0x99
+ ldrb r3, [r3, #0x0]
+ lsl r3, r3, #0x3
+ add r3, r3, r1
+ add r3, #0x20
+ strb r3, [r2, #0x5]
+ add r3, r4, #0x0
+ add r3, #0x98
+ ldrb r3, [r3, #0x0]
+ add r1, #0x20
+ lsl r3, r3, #0x3
+ strb r3, [r2, #0x6]
+ add r3, r4, #0x0
+ add r3, #0x98
+ ldrb r3, [r3, #0x0]
+ lsl r3, r3, #0x3
+ add r3, #0x30
+ strb r3, [r2, #0x7]
+ add r2, r2, #0x4
+ cmp r0, #0x2
+ blt _02014820
+ add r0, r4, #0x0
+ add r0, #0x84
+ ldr r0, [r0, #0x0]
+ ldr r2, _02014874 ; =FUN_02014878
+ str r0, [sp, #0x0]
+ add r0, r4, #0x4
+ mov r1, #0x2
+ add r3, r4, #0x0
+ bl FUN_020220C4
+ str r0, [r4, #0x0]
+ add sp, #0x4
+ pop {r3-r4, pc}
+ .balign 4
+_02014874: .word FUN_02014878
+
+ thumb_func_start FUN_02014878
+FUN_02014878: ; 0x02014878
+ push {r4, lr}
+ add r3, r2, #0x0
+ add r3, #0x9b
+ ldrb r3, [r3, #0x0]
+ mov r4, #0xf0
+ bic r3, r4
+ lsl r4, r1, #0x18
+ lsr r4, r4, #0x18
+ lsl r4, r4, #0x1c
+ lsr r4, r4, #0x18
+ orr r4, r3
+ add r3, r2, #0x0
+ add r3, #0x9b
+ strb r4, [r3, #0x0]
+ cmp r1, #0x0
+ bne _020148A2
+ add r2, #0x9a
+ strb r0, [r2, #0x0]
+ ldr r0, _020148A4 ; =0x000005E4
+ bl FUN_020054C8
+_020148A2:
+ pop {r4, pc}
+ .balign 4
+_020148A4: .word 0x000005E4
+
+ thumb_func_start FUN_020148A8
+FUN_020148A8: ; 0x020148A8
+ push {r3-r7, lr}
+ sub sp, #0x10
+ add r5, r1, #0x0
+ str r2, [sp, #0x8]
+ str r0, [sp, #0x4]
+ ldr r1, [r5, #0x24]
+ ldr r2, [r5, #0x28]
+ add r0, #0x28
+ bl FUN_020149FC
+ ldr r1, [r5, #0x0]
+ ldr r0, [sp, #0x4]
+ ldr r6, [sp, #0x4]
+ str r1, [r0, #0x0]
+ ldr r1, [r5, #0x4]
+ ldr r4, [sp, #0x4]
+ str r1, [r0, #0x4]
+ add r0, r5, #0x0
+ add r0, #0x2c
+ ldrb r1, [r0, #0x0]
+ ldr r0, [sp, #0x4]
+ add r6, #0x18
+ add r0, #0x34
+ strb r1, [r0, #0x0]
+ add r0, r5, #0x0
+ add r0, #0x2d
+ ldrb r1, [r0, #0x0]
+ ldr r0, [sp, #0x4]
+ add r7, r5, #0x0
+ add r0, #0x35
+ strb r1, [r0, #0x0]
+ mov r0, #0x0
+ str r0, [sp, #0xc]
+_020148EA:
+ ldr r0, [sp, #0x8]
+ mov r2, #0x1
+ str r0, [sp, #0x0]
+ ldr r0, [r5, #0x8]
+ ldr r1, [r7, #0xc]
+ add r3, r6, #0x0
+ bl FUN_02006BDC
+ str r0, [r4, #0x8]
+ ldr r0, [r4, #0x18]
+ ldr r1, [r5, #0x1c]
+ bl FUN_02014BA4
+ ldr r0, [r4, #0x18]
+ ldr r1, [r5, #0x20]
+ bl FUN_02014BC4
+ ldr r0, [sp, #0xc]
+ add r6, r6, #0x4
+ add r0, r0, #0x1
+ add r7, r7, #0x4
+ add r4, r4, #0x4
+ str r0, [sp, #0xc]
+ cmp r0, #0x4
+ blt _020148EA
+ ldr r0, [sp, #0x4]
+ bl FUN_020149D0
+ ldr r0, [sp, #0x4]
+ mov r1, #0x0
+ add r0, #0x36
+ str r0, [sp, #0x4]
+ strb r1, [r0, #0x0]
+ add sp, #0x10
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_02014930
+FUN_02014930: ; 0x02014930
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r0, #0x28
+ bl FUN_02014A10
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x36
+ ldrb r0, [r0, #0x0]
+ cmp r0, r4
+ beq _02014952
+ add r0, r5, #0x0
+ bl FUN_020149D0
+ add r0, r5, #0x0
+ add r0, #0x36
+ strb r4, [r0, #0x0]
+_02014952:
+ ldr r0, [r5, #0x2c]
+ sub r0, r0, #0x1
+ cmp r4, r0
+ bne _0201495E
+ mov r0, #0x1
+ pop {r3-r5, pc}
+_0201495E:
+ add r5, #0x28
+ mov r1, #0x1
+ add r0, r5, #0x0
+ lsl r1, r1, #0xc
+ bl FUN_02014A08
+ mov r0, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_02014970
+FUN_02014970: ; 0x02014970
+ push {r4-r6, lr}
+ sub sp, #0x10
+ add r6, r0, #0x0
+ add r0, #0x35
+ ldrb r0, [r0, #0x0]
+ ldr r1, [r6, #0x18]
+ add r3, r6, #0x0
+ str r0, [sp, #0x0]
+ ldrh r0, [r1, #0x0]
+ mov r2, #0x0
+ add r3, #0x34
+ lsl r0, r0, #0x15
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x4]
+ ldrh r0, [r1, #0x2]
+ lsl r0, r0, #0x15
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x8]
+ str r2, [sp, #0xc]
+ ldr r1, [r6, #0x4]
+ ldrb r3, [r3, #0x0]
+ lsl r1, r1, #0x18
+ ldr r0, [r6, #0x0]
+ lsr r1, r1, #0x18
+ bl FUN_02018540
+ ldr r1, [r6, #0x4]
+ ldr r0, [r6, #0x0]
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ bl FUN_0201AC68
+ mov r4, #0x0
+ add r5, r6, #0x0
+_020149B4:
+ ldr r0, [r5, #0x8]
+ bl FUN_02016A18
+ add r4, r4, #0x1
+ add r5, r5, #0x4
+ cmp r4, #0x4
+ blt _020149B4
+ add r0, r6, #0x0
+ mov r1, #0x0
+ mov r2, #0x38
+ blx Call_FillMemWithValue
+ add sp, #0x10
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_020149D0
+FUN_020149D0: ; 0x020149D0
+ push {r3-r4, lr}
+ sub sp, #0x4
+ add r4, r0, #0x0
+ add r0, #0x28
+ bl FUN_02014A10
+ add r2, r0, #0x0
+ add r0, r4, #0x0
+ add r0, #0x35
+ ldrb r0, [r0, #0x0]
+ lsl r2, r2, #0x2
+ add r2, r4, r2
+ str r0, [sp, #0x0]
+ ldr r0, [r4, #0x0]
+ ldr r1, [r4, #0x4]
+ add r4, #0x34
+ ldrb r3, [r4, #0x0]
+ ldr r2, [r2, #0x18]
+ bl FUN_02014B58
+ add sp, #0x4
+ pop {r3-r4, pc}
+
+ thumb_func_start FUN_020149FC
+FUN_020149FC: ; 0x020149FC
+ str r1, [r0, #0x0]
+ str r2, [r0, #0x4]
+ mov r1, #0x0
+ str r1, [r0, #0x8]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02014A08
+FUN_02014A08: ; 0x02014A08
+ ldr r2, [r0, #0x8]
+ add r1, r2, r1
+ str r1, [r0, #0x8]
+ bx lr
+
+ thumb_func_start FUN_02014A10
+FUN_02014A10: ; 0x02014A10
+ push {r4-r5}
+ ldr r5, [r0, #0x4]
+ mov r2, #0x0
+ cmp r5, #0x0
+ bls _02014A34
+ ldr r3, [r0, #0x0]
+ ldr r4, [r0, #0x8]
+_02014A1E:
+ ldr r1, [r3, #0x0]
+ cmp r1, r4
+ blt _02014A2A
+ add r0, r2, #0x0
+ pop {r4-r5}
+ bx lr
+_02014A2A:
+ ldr r1, [r0, #0x4]
+ add r2, r2, #0x1
+ add r3, r3, #0x4
+ cmp r2, r1
+ blo _02014A1E
+_02014A34:
+ sub r0, r5, #0x1
+ pop {r4-r5}
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02014A3C
+FUN_02014A3C: ; 0x02014A3C
+ push {r3-r7, lr}
+ sub sp, #0x8
+ add r7, r0, #0x0
+ str r1, [sp, #0x4]
+ ldr r0, [sp, #0x24]
+ mov r1, #0x14
+ add r5, r2, #0x0
+ add r6, r3, #0x0
+ bl FUN_02016998
+ add r4, r0, #0x0
+ add r2, r4, #0x0
+ mov r1, #0x14
+ mov r0, #0x0
+_02014A58:
+ strb r0, [r2, #0x0]
+ add r2, r2, #0x1
+ sub r1, r1, #0x1
+ bne _02014A58
+ ldr r0, [sp, #0x24]
+ ldr r1, [sp, #0x4]
+ str r0, [sp, #0x0]
+ add r0, r7, #0x0
+ mov r2, #0x1
+ add r3, r4, #0x4
+ bl FUN_02006BB0
+ str r0, [r4, #0x8]
+ str r5, [r4, #0x0]
+ ldr r0, [sp, #0x20]
+ str r6, [r4, #0xc]
+ str r0, [r4, #0x10]
+ ldr r0, _02014A88 ; =FUN_02014AD4
+ add r1, r4, #0x0
+ mov r2, #0x80
+ bl FUN_0200CA98
+ add sp, #0x8
+ pop {r3-r7, pc}
+ .balign 4
+_02014A88: .word FUN_02014AD4
+
+ thumb_func_start FUN_02014A8C
+FUN_02014A8C: ; 0x02014A8C
+ push {r3-r7, lr}
+ add r7, r0, #0x0
+ str r1, [sp, #0x0]
+ ldr r0, [sp, #0x1c]
+ mov r1, #0x14
+ add r5, r2, #0x0
+ add r6, r3, #0x0
+ bl FUN_02016998
+ add r4, r0, #0x0
+ add r2, r4, #0x0
+ mov r1, #0x14
+ mov r0, #0x0
+_02014AA6:
+ strb r0, [r2, #0x0]
+ add r2, r2, #0x1
+ sub r1, r1, #0x1
+ bne _02014AA6
+ ldr r1, [sp, #0x0]
+ ldr r3, [sp, #0x1c]
+ add r0, r7, #0x0
+ add r2, r4, #0x0
+ bl FUN_02006C08
+ str r0, [r4, #0x4]
+ str r5, [r4, #0x8]
+ ldr r0, [sp, #0x18]
+ str r6, [r4, #0xc]
+ str r0, [r4, #0x10]
+ ldr r0, _02014AD0 ; =FUN_02014B10
+ add r1, r4, #0x0
+ mov r2, #0x80
+ bl FUN_0200CA98
+ pop {r3-r7, pc}
+ .balign 4
+_02014AD0: .word FUN_02014B10
+
+ thumb_func_start FUN_02014AD4
+FUN_02014AD4: ; 0x02014AD4
+ push {r3-r5, lr}
+ add r4, r1, #0x0
+ ldr r1, [r4, #0x4]
+ add r5, r0, #0x0
+ ldr r0, [r1, #0x14]
+ ldr r1, [r1, #0x10]
+ blx DC_FlushRange
+ ldr r3, [r4, #0x4]
+ ldr r0, [r4, #0x10]
+ str r0, [sp, #0x0]
+ ldr r1, [r4, #0xc]
+ ldr r2, [r3, #0x14]
+ lsl r1, r1, #0x18
+ ldr r0, [r4, #0x0]
+ ldr r3, [r3, #0x10]
+ lsr r1, r1, #0x18
+ bl FUN_02017E14
+ add r0, r5, #0x0
+ bl FUN_0200CAB4
+ ldr r0, [r4, #0x8]
+ bl FUN_02016A18
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_02014B10
+FUN_02014B10: ; 0x02014B10
+ push {r3-r5, lr}
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ ldr r0, [r4, #0x0]
+ ldr r1, [r4, #0x10]
+ ldr r0, [r0, #0xc]
+ blx DC_FlushRange
+ ldr r0, [r4, #0x8]
+ cmp r0, #0x0
+ bne _02014B34
+ ldr r0, [r4, #0x0]
+ ldr r1, [r4, #0xc]
+ ldr r0, [r0, #0xc]
+ ldr r2, [r4, #0x10]
+ blx GX_LoadBGPltt
+ b _02014B44
+_02014B34:
+ cmp r0, #0x4
+ bne _02014B44
+ ldr r0, [r4, #0x0]
+ ldr r1, [r4, #0xc]
+ ldr r0, [r0, #0xc]
+ ldr r2, [r4, #0x10]
+ blx GXS_LoadBGPltt
+_02014B44:
+ add r0, r5, #0x0
+ bl FUN_0200CAB4
+ ldr r0, [r4, #0x4]
+ bl FUN_02016A18
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_02014B58
+FUN_02014B58: ; 0x02014B58
+ push {r3-r6, lr}
+ sub sp, #0x1c
+ add r4, r1, #0x0
+ add r1, r2, #0x0
+ add r2, r3, #0x0
+ ldrh r6, [r1, #0x0]
+ ldrh r3, [r1, #0x2]
+ lsl r2, r2, #0x18
+ lsl r6, r6, #0x15
+ lsr r6, r6, #0x18
+ lsl r3, r3, #0x15
+ str r6, [sp, #0x0]
+ lsr r3, r3, #0x18
+ str r3, [sp, #0x4]
+ add r1, #0xc
+ str r1, [sp, #0x8]
+ mov r1, #0x0
+ str r1, [sp, #0xc]
+ str r1, [sp, #0x10]
+ str r6, [sp, #0x14]
+ str r3, [sp, #0x18]
+ ldr r3, [sp, #0x30]
+ lsl r1, r4, #0x18
+ lsl r3, r3, #0x18
+ lsr r1, r1, #0x18
+ lsr r2, r2, #0x18
+ lsr r3, r3, #0x18
+ add r5, r0, #0x0
+ bl FUN_02018170
+ lsl r1, r4, #0x18
+ add r0, r5, #0x0
+ lsr r1, r1, #0x18
+ bl FUN_0201AC68
+ add sp, #0x1c
+ pop {r3-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_02014BA4
+FUN_02014BA4: ; 0x02014BA4
+ push {r3-r4}
+ ldr r2, [r0, #0x8]
+ add r0, #0xc
+ lsr r4, r2, #0x1
+ mov r3, #0x0
+ cmp r4, #0x0
+ ble _02014BC0
+_02014BB2:
+ ldrh r2, [r0, #0x0]
+ add r3, r3, #0x1
+ add r2, r2, r1
+ strh r2, [r0, #0x0]
+ add r0, r0, #0x2
+ cmp r3, r4
+ blt _02014BB2
+_02014BC0:
+ pop {r3-r4}
+ bx lr
+
+ thumb_func_start FUN_02014BC4
+FUN_02014BC4: ; 0x02014BC4
+ push {r4-r5}
+ ldr r2, [r0, #0x8]
+ add r0, #0xc
+ lsr r3, r2, #0x1
+ mov r2, #0x0
+ cmp r3, #0x0
+ ble _02014BEA
+ ldr r4, _02014BF0 ; =0x00000FFF
+ lsl r1, r1, #0xc
+_02014BD6:
+ ldrh r5, [r0, #0x0]
+ add r2, r2, #0x1
+ and r5, r4
+ strh r5, [r0, #0x0]
+ ldrh r5, [r0, #0x0]
+ orr r5, r1
+ strh r5, [r0, #0x0]
+ add r0, r0, #0x2
+ cmp r2, r3
+ blt _02014BD6
+_02014BEA:
+ pop {r4-r5}
+ bx lr
+ nop
+_02014BF0: .word 0x00000FFF
+
+ thumb_func_start FUN_02014BF4
+FUN_02014BF4: ; 0x02014BF4
+ push {r3-r7, lr}
+ add r7, r1, #0x0
+ mov r1, #0xc
+ add r5, r0, #0x0
+ add r6, r2, #0x0
+ bl FUN_02016998
+ add r4, r0, #0x0
+ strb r6, [r4, #0x8]
+ mov r0, #0x1d
+ strb r7, [r4, #0x9]
+ lsl r0, r0, #0x4
+ add r6, r7, #0x0
+ mul r6, r0
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ str r5, [r4, #0x4]
+ bl FUN_02016998
+ mov r1, #0x0
+ add r2, r6, #0x0
+ str r0, [r4, #0x0]
+ blx MI_CpuFill8
+ add r0, r4, #0x0
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_02014C28
+FUN_02014C28: ; 0x02014C28
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r0, [r4, #0x0]
+ bl FUN_02016A18
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02014C3C
+FUN_02014C3C: ; 0x02014C3C
+ push {r4, lr}
+ add r4, r0, #0x0
+ cmp r4, #0x19
+ blo _02014C48
+ bl ErrorHandling
+_02014C48:
+ ldr r0, _02014C50 ; =0x020ED64C
+ ldrb r0, [r0, r4]
+ pop {r4, pc}
+ nop
+_02014C50: .word 0x020ED64C
+
+ thumb_func_start FUN_02014C54
+FUN_02014C54: ; 0x02014C54
+ push {r4-r7, lr}
+ sub sp, #0xc
+ add r5, r0, #0x0
+ str r3, [sp, #0x4]
+ add r0, r2, #0x0
+ ldrh r6, [r0, #0x0]
+ ldrh r0, [r0, #0x2]
+ add r7, r1, #0x0
+ ldrb r1, [r5, #0x9]
+ str r0, [sp, #0x8]
+ ldr r0, [sp, #0x4]
+ str r2, [sp, #0x0]
+ cmp r0, r1
+ blo _02014C74
+ bl ErrorHandling
+_02014C74:
+ ldr r0, [sp, #0x4]
+ mov r1, #0x1d
+ add r4, r0, #0x0
+ lsl r1, r1, #0x4
+ ldr r0, [r5, #0x0]
+ mul r4, r1
+ add r0, r0, r4
+ ldr r0, [r0, #0x10]
+ cmp r0, #0x0
+ beq _02014C8C
+ bl ErrorHandling
+_02014C8C:
+ ldr r0, [r5, #0x0]
+ mov r2, #0x1d
+ add r0, r0, r4
+ mov r1, #0x0
+ lsl r2, r2, #0x4
+ blx MI_CpuFill8
+ ldr r0, [r5, #0x0]
+ mov r1, #0x1
+ add r0, r0, r4
+ str r1, [r0, #0x10]
+ ldr r0, [r5, #0x0]
+ cmp r6, #0x86
+ str r7, [r0, r4]
+ blt _02014CAE
+ mov r6, #0x0
+ str r6, [sp, #0x8]
+_02014CAE:
+ ldr r0, [r5, #0x0]
+ add r0, r0, r4
+ str r6, [r0, #0x14]
+ ldrb r0, [r5, #0x8]
+ cmp r0, #0x0
+ beq _02014CC0
+ ldr r0, [sp, #0x0]
+ ldrb r2, [r0, #0x4]
+ b _02014CC2
+_02014CC0:
+ mov r2, #0x0
+_02014CC2:
+ ldr r0, [r5, #0x0]
+ add r1, r0, r4
+ mov r0, #0x73
+ lsl r0, r0, #0x2
+ strb r2, [r1, r0]
+ ldr r1, [r5, #0x0]
+ ldr r2, [r5, #0x4]
+ add r1, r1, r4
+ ldr r1, [r1, #0x14]
+ mov r0, #0x5e
+ bl FUN_02006528
+ ldr r1, [r5, #0x0]
+ mov r2, #0x0
+ add r1, r1, r4
+ str r0, [r1, #0x8]
+ ldr r0, [r5, #0x0]
+ mov r6, #0x1c
+ add r1, r0, r4
+ ldr r0, [r1, #0x8]
+ str r0, [r1, #0xc]
+ ldr r0, [r5, #0x0]
+ add r0, r0, r4
+ str r2, [r0, #0x1c]
+ ldr r0, [r5, #0x0]
+ add r0, r0, r4
+ str r2, [r0, #0x20]
+ ldr r0, [r5, #0x0]
+ add r1, r0, r4
+ ldr r0, _02014D74 ; =0x000001CD
+ strb r2, [r1, r0]
+ ldr r1, [r5, #0x0]
+ add r3, r1, r4
+ add r1, r0, #0x1
+ strb r6, [r3, r1]
+ ldr r1, [r5, #0x0]
+ add r0, r0, #0x2
+ add r1, r1, r4
+ strb r2, [r1, r0]
+ ldr r1, [r5, #0x0]
+ ldr r0, _02014D78 ; =FUN_02014DD8
+ add r1, r1, r4
+ bl FUN_0200CA44
+ ldr r1, [r5, #0x0]
+ add r1, r1, r4
+ str r0, [r1, #0x4]
+ ldr r0, [r5, #0x0]
+ add r1, r0, r4
+ ldr r0, [sp, #0x8]
+ str r0, [r1, #0x54]
+ add r0, r7, #0x0
+ mov r1, #0x0
+ bl FUN_0200782C
+ ldr r1, [r5, #0x0]
+ add r1, r1, r4
+ str r0, [r1, #0x58]
+ add r0, r7, #0x0
+ mov r1, #0x1
+ bl FUN_0200782C
+ ldr r1, [r5, #0x0]
+ add r1, r1, r4
+ str r0, [r1, #0x5c]
+ ldr r1, [r5, #0x0]
+ mov r0, #0x0
+ add r1, r1, r4
+ str r0, [r1, #0x60]
+ ldr r1, [r5, #0x0]
+ add r1, r1, r4
+ str r0, [r1, #0x64]
+ ldr r1, [r5, #0x0]
+ add r1, r1, r4
+ str r0, [r1, #0x68]
+ ldr r1, [r5, #0x0]
+ add r1, r1, r4
+ str r0, [r1, #0x6c]
+ ldr r1, [r5, #0x0]
+ add r1, r1, r4
+ str r0, [r1, #0x70]
+ ldr r1, [r5, #0x0]
+ add r1, r1, r4
+ str r0, [r1, #0x74]
+ ldr r1, [r5, #0x0]
+ add r1, r1, r4
+ str r0, [r1, #0x78]
+ add sp, #0xc
+ pop {r4-r7, pc}
+ .balign 4
+_02014D74: .word 0x000001CD
+_02014D78: .word FUN_02014DD8
+
+ thumb_func_start FUN_02014D7C
+FUN_02014D7C: ; 0x02014D7C
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ ldrb r0, [r5, #0x9]
+ add r4, r1, #0x0
+ cmp r4, r0
+ blo _02014D8C
+ bl ErrorHandling
+_02014D8C:
+ mov r0, #0x1d
+ lsl r0, r0, #0x4
+ ldr r1, [r5, #0x0]
+ mul r0, r4
+ add r0, r1, r0
+ ldr r0, [r0, #0x20]
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_02014D9C
+FUN_02014D9C: ; 0x02014D9C
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ mov r0, #0x1d
+ lsl r0, r0, #0x4
+ add r4, r1, #0x0
+ mul r4, r0
+ ldr r0, [r5, #0x0]
+ add r0, r0, r4
+ ldr r0, [r0, #0x4]
+ cmp r0, #0x0
+ beq _02014DD6
+ bl FUN_0200CAB4
+ ldr r1, [r5, #0x0]
+ mov r0, #0x0
+ add r1, r1, r4
+ str r0, [r1, #0x4]
+ ldr r1, [r5, #0x0]
+ mov r2, #0x1
+ add r1, r1, r4
+ str r2, [r1, #0x20]
+ ldr r1, [r5, #0x0]
+ add r1, r1, r4
+ str r0, [r1, #0x10]
+ ldr r0, [r5, #0x0]
+ add r0, r0, r4
+ ldr r0, [r0, #0x8]
+ bl FUN_02016A18
+_02014DD6:
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_02014DD8
+FUN_02014DD8: ; 0x02014DD8
+ push {r3-r5, lr}
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ ldr r0, [r4, #0x54]
+ cmp r0, #0x0
+ bne _02014DEC
+ add r0, r4, #0x0
+ bl FUN_02014E10
+ b _02014DF0
+_02014DEC:
+ sub r0, r0, #0x1
+ str r0, [r4, #0x54]
+_02014DF0:
+ ldr r0, [r4, #0x1c]
+ cmp r0, #0x0
+ beq _02014E0E
+ mov r0, #0x1
+ str r0, [r4, #0x20]
+ mov r0, #0x0
+ str r0, [r4, #0x10]
+ add r0, r5, #0x0
+ bl FUN_0200CAB4
+ mov r0, #0x0
+ str r0, [r4, #0x4]
+ ldr r0, [r4, #0x8]
+ bl FUN_02016A18
+_02014E0E:
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_02014E10
+FUN_02014E10: ; 0x02014E10
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ mov r6, #0x0
+ str r6, [r5, #0x18]
+ add r7, r5, #0x0
+ str r6, [r5, #0x44]
+ add r4, r6, #0x0
+ add r7, #0x7c
+_02014E20:
+ mov r0, #0x54
+ add r1, r4, #0x0
+ mul r1, r0
+ add r0, r7, r1
+ ldr r1, [r7, r1]
+ cmp r1, #0x0
+ beq _02014E4E
+ add r1, r0, #0x0
+ add r1, #0x2d
+ ldrb r1, [r1, #0x0]
+ cmp r1, #0x0
+ bne _02014E40
+ ldr r2, [r0, #0x50]
+ add r1, r5, #0x0
+ blx r2
+ b _02014E54
+_02014E40:
+ add r1, r0, #0x0
+ add r1, #0x2d
+ ldrb r1, [r1, #0x0]
+ add r0, #0x2d
+ sub r1, r1, #0x1
+ strb r1, [r0, #0x0]
+ b _02014E54
+_02014E4E:
+ add r0, r6, #0x1
+ lsl r0, r0, #0x18
+ lsr r6, r0, #0x18
+_02014E54:
+ add r0, r4, #0x1
+ lsl r0, r0, #0x18
+ lsr r4, r0, #0x18
+ cmp r4, #0x4
+ blo _02014E20
+ cmp r6, #0x4
+ bne _02014E68
+ ldr r0, _02014EFC ; =0x000001CD
+ mov r1, #0x0
+ strb r1, [r5, r0]
+_02014E68:
+ ldr r0, _02014EFC ; =0x000001CD
+ ldrb r1, [r5, r0]
+ cmp r1, #0x0
+ beq _02014E7E
+ add r0, r5, #0x0
+ bl FUN_020156E8
+ add r0, r5, #0x0
+ bl FUN_02015730
+ pop {r3-r7, pc}
+_02014E7E:
+ add r0, r0, #0x2
+ ldrb r0, [r5, r0]
+ cmp r0, #0x0
+ beq _02014E96
+ ldr r0, [r5, #0x0]
+ bl FUN_02007F20
+ cmp r0, #0x0
+ bne _02014EF8
+ ldr r0, _02014F00 ; =0x000001CF
+ mov r1, #0x0
+ strb r1, [r5, r0]
+_02014E96:
+ add r6, r5, #0x0
+ add r4, r5, #0x0
+ ldr r7, _02014F04 ; =0x020ED6A4
+ add r6, #0xc
+ add r4, #0x44
+_02014EA0:
+ ldr r0, [r4, #0x0]
+ add r0, r0, #0x1
+ str r0, [r4, #0x0]
+ ldr r0, [r5, #0xc]
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x22
+ blo _02014EB2
+ bl ErrorHandling
+_02014EB2:
+ ldr r1, [r5, #0xc]
+ add r0, r5, #0x0
+ ldr r1, [r1, #0x0]
+ lsl r1, r1, #0x2
+ ldr r1, [r7, r1]
+ blx r1
+ ldr r0, [r5, #0x1c]
+ cmp r0, #0x0
+ bne _02014EF8
+ ldr r0, [r6, #0x0]
+ add r0, r0, #0x4
+ str r0, [r6, #0x0]
+ ldr r0, [r5, #0x18]
+ cmp r0, #0x0
+ bne _02014EF8
+ ldr r0, _02014EFC ; =0x000001CD
+ ldrb r0, [r5, r0]
+ cmp r0, #0x0
+ beq _02014EE6
+ add r0, r5, #0x0
+ bl FUN_020156E8
+ add r0, r5, #0x0
+ bl FUN_02015730
+ pop {r3-r7, pc}
+_02014EE6:
+ mov r0, #0x1
+ ldr r1, [r5, #0x44]
+ lsl r0, r0, #0x8
+ cmp r1, r0
+ blt _02014EA0
+ bl ErrorHandling
+ mov r0, #0x1
+ str r0, [r5, #0x1c]
+_02014EF8:
+ pop {r3-r7, pc}
+ nop
+_02014EFC: .word 0x000001CD
+_02014F00: .word 0x000001CF
+_02014F04: .word 0x020ED6A4
+
+ thumb_func_start FUN_02014F08
+FUN_02014F08: ; 0x02014F08
+ push {r4, lr}
+ lsl r1, r1, #0x2
+ ldr r4, [r0, r1]
+ cmp r2, #0x1
+ beq _02014F16
+ bl ErrorHandling
+_02014F16:
+ add r0, r4, #0x0
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02014F1C
+FUN_02014F1C: ; 0x02014F1C
+ ldr r3, _02014F24 ; =FUN_02014F08
+ add r2, r1, #0x0
+ mov r1, #0x0
+ bx r3
+ .balign 4
+_02014F24: .word FUN_02014F08
+
+ thumb_func_start FUN_02014F28
+FUN_02014F28: ; 0x02014F28
+ ldr r3, _02014F30 ; =0x02014F1D
+ mov r1, #0x1
+ bx r3
+ nop
+_02014F30: .word 0x02014F1D
+
+ thumb_func_start FUN_02014F34
+FUN_02014F34: ; 0x02014F34
+ push {r3-r5, lr}
+ add r5, r1, #0x0
+ mov r3, #0x0
+ add r0, #0x7c
+ mov r2, #0x54
+_02014F3E:
+ add r1, r3, #0x0
+ mul r1, r2
+ add r4, r0, r1
+ ldr r1, [r0, r1]
+ cmp r1, #0x0
+ bne _02014F68
+ add r0, r4, #0x0
+ mov r1, #0x0
+ mov r2, #0x54
+ blx MI_CpuFill8
+ mov r0, #0x1
+ str r0, [r4, #0x0]
+ mov r0, #0xc
+ add r1, r5, #0x0
+ mul r1, r0
+ ldr r0, _02014F7C ; =0x020ED668
+ ldr r0, [r0, r1]
+ str r0, [r4, #0x50]
+ add r0, r4, #0x0
+ pop {r3-r5, pc}
+_02014F68:
+ add r1, r3, #0x1
+ lsl r1, r1, #0x18
+ lsr r3, r1, #0x18
+ cmp r3, #0x4
+ blo _02014F3E
+ bl ErrorHandling
+ mov r0, #0x0
+ pop {r3-r5, pc}
+ nop
+_02014F7C: .word 0x020ED668
+
+ thumb_func_start FUN_02014F80
+FUN_02014F80: ; 0x02014F80
+ push {r4, lr}
+ add r4, r1, #0x0
+ ldr r1, [r0, #0xc]
+ add r1, r1, #0x4
+ str r1, [r0, #0xc]
+ add r0, r1, #0x0
+ bl FUN_02014F28
+ str r0, [r4, #0x0]
+ pop {r4, pc}
+
+ thumb_func_start FUN_02014F94
+FUN_02014F94: ; 0x02014F94
+ push {r4, lr}
+ add r4, r1, #0x0
+ ldr r1, [r0, #0xc]
+ add r1, r1, #0x4
+ str r1, [r0, #0xc]
+ add r0, r1, #0x0
+ bl FUN_02014F28
+ strb r0, [r4, #0x0]
+ pop {r4, pc}
+
+ thumb_func_start FUN_02014FA8
+FUN_02014FA8: ; 0x02014FA8
+ push {r4, lr}
+ add r4, r1, #0x0
+ ldr r1, [r0, #0xc]
+ add r1, r1, #0x4
+ str r1, [r0, #0xc]
+ add r0, r1, #0x0
+ bl FUN_02014F28
+ strb r0, [r4, #0x0]
+ ldrb r0, [r4, #0x0]
+ cmp r0, #0x8
+ blo _02014FC4
+ bl ErrorHandling
+_02014FC4:
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02014FC8
+FUN_02014FC8: ; 0x02014FC8
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r2, #0x0
+ bl FUN_02014FA8
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_02014FA8
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_02014FDC
+FUN_02014FDC: ; 0x02014FDC
+ push {r3-r6, lr}
+ sub sp, #0x4
+ add r5, r0, #0x0
+ add r4, r2, #0x0
+ add r6, r3, #0x0
+ bl FUN_02014FA8
+ add r0, r5, #0x0
+ add r1, sp, #0x0
+ bl FUN_02014F94
+ add r0, sp, #0x0
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x12
+ bne _0201501C
+ add r1, sp, #0x0
+ add r0, r5, #0x0
+ add r1, #0x2
+ bl FUN_02014FA8
+ add r0, sp, #0x0
+ ldrb r0, [r0, #0x2]
+ add r1, r6, #0x0
+ lsl r0, r0, #0x2
+ add r0, r5, r0
+ ldr r0, [r0, #0x24]
+ str r0, [r4, #0x0]
+ add r0, r5, #0x0
+ bl FUN_02014F80
+ add sp, #0x4
+ pop {r3-r6, pc}
+_0201501C:
+ cmp r0, #0x13
+ bne _02015048
+ add r1, sp, #0x0
+ add r2, sp, #0x0
+ add r0, r5, #0x0
+ add r1, #0x2
+ add r2, #0x1
+ bl FUN_02014FC8
+ add r0, sp, #0x0
+ ldrb r1, [r0, #0x2]
+ add sp, #0x4
+ lsl r1, r1, #0x2
+ add r1, r5, r1
+ ldr r1, [r1, #0x24]
+ str r1, [r4, #0x0]
+ ldrb r0, [r0, #0x1]
+ lsl r0, r0, #0x2
+ add r0, r5, r0
+ ldr r0, [r0, #0x24]
+ str r0, [r6, #0x0]
+ pop {r3-r6, pc}
+_02015048:
+ bl ErrorHandling
+ add sp, #0x4
+ pop {r3-r6, pc}
+
+ thumb_func_start FUN_02015050
+FUN_02015050: ; 0x02015050
+ push {r3-r6, lr}
+ sub sp, #0x4
+ add r5, r0, #0x0
+ add r4, r2, #0x0
+ add r6, r3, #0x0
+ bl FUN_02014FA8
+ add r1, sp, #0x0
+ add r0, r5, #0x0
+ add r1, #0x1
+ bl FUN_02014F94
+ add r0, r5, #0x0
+ add r1, sp, #0x0
+ bl FUN_02014F94
+ add r0, sp, #0x0
+ ldrb r0, [r0, #0x1]
+ cmp r0, #0x12
+ bne _02015082
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_02014F80
+ b _020150A2
+_02015082:
+ cmp r0, #0x13
+ bne _0201509E
+ add r1, sp, #0x0
+ add r0, r5, #0x0
+ add r1, #0x3
+ bl FUN_02014FA8
+ add r0, sp, #0x0
+ ldrb r0, [r0, #0x3]
+ lsl r0, r0, #0x2
+ add r0, r5, r0
+ ldr r0, [r0, #0x24]
+ str r0, [r4, #0x0]
+ b _020150A2
+_0201509E:
+ bl ErrorHandling
+_020150A2:
+ add r0, sp, #0x0
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x12
+ bne _020150B6
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ bl FUN_02014F80
+ add sp, #0x4
+ pop {r3-r6, pc}
+_020150B6:
+ cmp r0, #0x13
+ bne _020150D4
+ add r1, sp, #0x0
+ add r0, r5, #0x0
+ add r1, #0x2
+ bl FUN_02014FA8
+ add r0, sp, #0x0
+ ldrb r0, [r0, #0x2]
+ add sp, #0x4
+ lsl r0, r0, #0x2
+ add r0, r5, r0
+ ldr r0, [r0, #0x24]
+ str r0, [r6, #0x0]
+ pop {r3-r6, pc}
+_020150D4:
+ bl ErrorHandling
+ add sp, #0x4
+ pop {r3-r6, pc}
+
+ thumb_func_start FUN_020150DC
+FUN_020150DC: ; 0x020150DC
+ push {r3-r7, lr}
+ sub sp, #0x8
+ add r4, r2, #0x0
+ add r2, sp, #0x0
+ add r2, #0x3
+ add r5, r0, #0x0
+ add r6, r3, #0x0
+ bl FUN_02014FC8
+ add r0, sp, #0x0
+ ldrb r0, [r0, #0x3]
+ add r1, sp, #0x0
+ lsl r0, r0, #0x2
+ add r0, r5, r0
+ ldr r7, [r0, #0x24]
+ add r0, r5, #0x0
+ bl FUN_02014F94
+ add r0, sp, #0x0
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x14
+ bne _02015112
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ bl FUN_02014F80
+ b _02015132
+_02015112:
+ cmp r0, #0x15
+ bne _0201512E
+ add r1, sp, #0x0
+ add r0, r5, #0x0
+ add r1, #0x2
+ bl FUN_02014FA8
+ add r0, sp, #0x0
+ ldrb r0, [r0, #0x2]
+ lsl r0, r0, #0x2
+ add r0, r5, r0
+ ldr r0, [r0, #0x24]
+ str r0, [r6, #0x0]
+ b _02015132
+_0201512E:
+ bl ErrorHandling
+_02015132:
+ add r0, r5, #0x0
+ add r1, sp, #0x0
+ bl FUN_02014F94
+ add r0, sp, #0x0
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x14
+ bne _0201514C
+ add r0, r5, #0x0
+ add r1, sp, #0x4
+ bl FUN_02014F80
+ b _0201516C
+_0201514C:
+ cmp r0, #0x15
+ bne _02015168
+ add r1, sp, #0x0
+ add r0, r5, #0x0
+ add r1, #0x1
+ bl FUN_02014FA8
+ add r0, sp, #0x0
+ ldrb r0, [r0, #0x1]
+ lsl r0, r0, #0x2
+ add r0, r5, r0
+ ldr r0, [r0, #0x24]
+ str r0, [sp, #0x4]
+ b _0201516C
+_02015168:
+ bl ErrorHandling
+_0201516C:
+ ldr r0, [sp, #0x4]
+ add r0, r7, r0
+ lsr r2, r0, #0x1f
+ lsl r1, r0, #0x10
+ sub r1, r1, r2
+ mov r0, #0x10
+ ror r1, r0
+ add r0, r2, r1
+ str r0, [r4, #0x0]
+ add sp, #0x8
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_02015184
+FUN_02015184: ; 0x02015184
+ ldr r2, [r0, #0x0]
+ ldr r0, [r1, #0x0]
+ sub r0, r2, r0
+ bpl _02015190
+ mov r0, #0xf
+ bx lr
+_02015190:
+ cmp r0, #0x0
+ ble _02015198
+ mov r0, #0x10
+ bx lr
+_02015198:
+ mov r0, #0x11
+ bx lr
+
+ thumb_func_start FUN_0201519C
+FUN_0201519C: ; 0x0201519C
+ add r2, r0, #0x0
+ ldr r0, [r2, #0x0]
+ ldr r2, [r2, #0x74]
+ mov r1, #0x1
+ neg r3, r2
+ asr r2, r3, #0x2
+ lsr r2, r2, #0x1d
+ add r2, r3, r2
+ ldr r3, _020151B4 ; =FUN_020079E0
+ asr r2, r2, #0x3
+ bx r3
+ nop
+_020151B4: .word FUN_020079E0
+
+ thumb_func_start FUN_020151B8
+FUN_020151B8: ; 0x020151B8
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl FUN_020151D0
+ mov r0, #0x1
+ str r0, [r4, #0x18]
+ str r0, [r4, #0x1c]
+ pop {r4, pc}
+
+ thumb_func_start FUN_020151C8
+FUN_020151C8: ; 0x020151C8
+ mov r1, #0x1
+ str r1, [r0, #0x18]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_020151D0
+FUN_020151D0: ; 0x020151D0
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r0, [r4, #0x0]
+ ldr r2, [r4, #0x58]
+ mov r1, #0x0
+ bl FUN_02007558
+ ldr r0, [r4, #0x0]
+ ldr r2, [r4, #0x5c]
+ mov r1, #0x1
+ bl FUN_02007558
+ ldr r0, [r4, #0x0]
+ mov r1, #0x9
+ mov r2, #0x0
+ bl FUN_02007558
+ ldr r0, [r4, #0x0]
+ mov r1, #0xa
+ mov r2, #0x0
+ bl FUN_02007558
+ mov r1, #0xc
+ add r2, r1, #0x0
+ ldr r0, [r4, #0x0]
+ add r2, #0xf4
+ bl FUN_02007558
+ mov r1, #0xd
+ add r2, r1, #0x0
+ ldr r0, [r4, #0x0]
+ add r2, #0xf3
+ bl FUN_02007558
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02015218
+FUN_02015218: ; 0x02015218
+ push {r3-r4, lr}
+ sub sp, #0x4
+ add r1, sp, #0x0
+ add r1, #0x1
+ add r2, sp, #0x0
+ add r4, r0, #0x0
+ bl FUN_02014FC8
+ add r0, sp, #0x0
+ ldrb r1, [r0, #0x0]
+ ldrb r0, [r0, #0x1]
+ lsl r1, r1, #0x2
+ add r1, r4, r1
+ lsl r0, r0, #0x2
+ ldr r1, [r1, #0x24]
+ add r0, r4, r0
+ str r1, [r0, #0x24]
+ add sp, #0x4
+ pop {r3-r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02015240
+FUN_02015240: ; 0x02015240
+ push {r3-r4, lr}
+ sub sp, #0xc
+ add r1, sp, #0x0
+ add r2, sp, #0x8
+ add r3, sp, #0x4
+ add r4, r0, #0x0
+ bl FUN_02014FDC
+ ldr r1, [sp, #0x8]
+ ldr r0, [sp, #0x4]
+ add r1, r1, r0
+ add r0, sp, #0x0
+ ldrb r0, [r0, #0x0]
+ lsl r0, r0, #0x2
+ add r0, r4, r0
+ str r1, [r0, #0x24]
+ add sp, #0xc
+ pop {r3-r4, pc}
+
+ thumb_func_start FUN_02015264
+FUN_02015264: ; 0x02015264
+ push {r3-r4, lr}
+ sub sp, #0xc
+ add r1, sp, #0x0
+ add r2, sp, #0x8
+ add r3, sp, #0x4
+ add r4, r0, #0x0
+ bl FUN_02014FDC
+ ldr r1, [sp, #0x8]
+ ldr r0, [sp, #0x4]
+ add r2, r1, #0x0
+ mul r2, r0
+ add r0, sp, #0x0
+ ldrb r0, [r0, #0x0]
+ lsl r0, r0, #0x2
+ add r0, r4, r0
+ str r2, [r0, #0x24]
+ add sp, #0xc
+ pop {r3-r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0201528C
+FUN_0201528C: ; 0x0201528C
+ push {r3-r4, lr}
+ sub sp, #0xc
+ add r1, sp, #0x0
+ add r2, sp, #0x8
+ add r3, sp, #0x4
+ add r4, r0, #0x0
+ bl FUN_02015050
+ ldr r1, [sp, #0x8]
+ ldr r0, [sp, #0x4]
+ sub r1, r1, r0
+ add r0, sp, #0x0
+ ldrb r0, [r0, #0x0]
+ lsl r0, r0, #0x2
+ add r0, r4, r0
+ str r1, [r0, #0x24]
+ add sp, #0xc
+ pop {r3-r4, pc}
+
+ thumb_func_start FUN_020152B0
+FUN_020152B0: ; 0x020152B0
+ push {r3-r4, lr}
+ sub sp, #0xc
+ add r1, sp, #0x0
+ add r2, sp, #0x8
+ add r3, sp, #0x4
+ add r4, r0, #0x0
+ bl FUN_02015050
+ ldr r0, [sp, #0x8]
+ ldr r1, [sp, #0x4]
+ blx _s32_div_f
+ add r1, sp, #0x0
+ ldrb r1, [r1, #0x0]
+ lsl r1, r1, #0x2
+ add r1, r4, r1
+ str r0, [r1, #0x24]
+ add sp, #0xc
+ pop {r3-r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_020152D8
+FUN_020152D8: ; 0x020152D8
+ push {r3-r4, lr}
+ sub sp, #0xc
+ add r1, sp, #0x0
+ add r2, sp, #0x8
+ add r3, sp, #0x4
+ add r4, r0, #0x0
+ bl FUN_02015050
+ ldr r0, [sp, #0x8]
+ ldr r1, [sp, #0x4]
+ blx _s32_div_f
+ add r0, sp, #0x0
+ ldrb r0, [r0, #0x0]
+ lsl r0, r0, #0x2
+ add r0, r4, r0
+ str r1, [r0, #0x24]
+ add sp, #0xc
+ pop {r3-r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02015300
+FUN_02015300: ; 0x02015300
+ push {r3-r5, lr}
+ sub sp, #0x10
+ add r1, sp, #0x0
+ add r5, r0, #0x0
+ bl FUN_02014F94
+ add r0, sp, #0x0
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x14
+ bne _02015334
+ add r1, sp, #0x0
+ add r0, r5, #0x0
+ add r1, #0x3
+ bl FUN_02014FA8
+ add r0, sp, #0x0
+ ldrb r0, [r0, #0x3]
+ add r1, sp, #0x8
+ lsl r0, r0, #0x2
+ add r0, r5, r0
+ ldr r0, [r0, #0x24]
+ str r0, [sp, #0xc]
+ add r0, r5, #0x0
+ bl FUN_02014F80
+ b _02015362
+_02015334:
+ cmp r0, #0x15
+ bne _0201535E
+ add r1, sp, #0x0
+ add r2, sp, #0x0
+ add r0, r5, #0x0
+ add r1, #0x3
+ add r2, #0x2
+ bl FUN_02014FC8
+ add r0, sp, #0x0
+ ldrb r1, [r0, #0x3]
+ lsl r1, r1, #0x2
+ add r1, r5, r1
+ ldr r1, [r1, #0x24]
+ str r1, [sp, #0xc]
+ ldrb r0, [r0, #0x2]
+ lsl r0, r0, #0x2
+ add r0, r5, r0
+ ldr r0, [r0, #0x24]
+ str r0, [sp, #0x8]
+ b _02015362
+_0201535E:
+ bl ErrorHandling
+_02015362:
+ add r1, sp, #0x0
+ add r0, r5, #0x0
+ add r1, #0x1
+ bl FUN_02014F94
+ add r0, sp, #0x0
+ ldrb r0, [r0, #0x1]
+ cmp r0, #0x11
+ bls _02015378
+ bl ErrorHandling
+_02015378:
+ add r0, sp, #0xc
+ add r1, sp, #0x8
+ bl FUN_02015184
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ add r1, sp, #0x0
+ bl FUN_02014F94
+ add r0, sp, #0x0
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x14
+ bne _020153A6
+ add r1, sp, #0x0
+ add r0, r5, #0x0
+ add r1, #0x3
+ bl FUN_02014FA8
+ add r0, r5, #0x0
+ add r1, sp, #0x4
+ bl FUN_02014F80
+ b _020153CA
+_020153A6:
+ cmp r0, #0x15
+ bne _020153C6
+ add r1, sp, #0x0
+ add r2, sp, #0x0
+ add r0, r5, #0x0
+ add r1, #0x3
+ add r2, #0x2
+ bl FUN_02014FC8
+ add r0, sp, #0x0
+ ldrb r0, [r0, #0x2]
+ lsl r0, r0, #0x2
+ add r0, r5, r0
+ ldr r0, [r0, #0x24]
+ str r0, [sp, #0x4]
+ b _020153CA
+_020153C6:
+ bl ErrorHandling
+_020153CA:
+ add r0, sp, #0x0
+ ldrb r1, [r0, #0x1]
+ cmp r1, r4
+ bne _020153DC
+ ldrb r0, [r0, #0x3]
+ ldr r1, [sp, #0x4]
+ lsl r0, r0, #0x2
+ add r0, r5, r0
+ str r1, [r0, #0x24]
+_020153DC:
+ add sp, #0x10
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_020153E0
+FUN_020153E0: ; 0x020153E0
+ push {r3-r4, lr}
+ sub sp, #0x4
+ add r4, r0, #0x0
+ add r1, sp, #0x0
+ bl FUN_02014FA8
+ ldr r0, [r4, #0xc]
+ add r0, r0, #0x4
+ str r0, [r4, #0xc]
+ bl FUN_02014F28
+ add r1, sp, #0x0
+ ldrb r1, [r1, #0x0]
+ lsl r1, r1, #0x2
+ add r1, r4, r1
+ str r0, [r1, #0x24]
+ add sp, #0x4
+ pop {r3-r4, pc}
+
+ thumb_func_start FUN_02015404
+FUN_02015404: ; 0x02015404
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r0, [r4, #0x50]
+ cmp r0, #0x0
+ beq _02015412
+ bl ErrorHandling
+_02015412:
+ ldr r0, [r4, #0xc]
+ add r0, r0, #0x4
+ str r0, [r4, #0xc]
+ str r0, [r4, #0x50]
+ ldr r0, [r4, #0xc]
+ bl FUN_02014F28
+ str r0, [r4, #0x48]
+ mov r0, #0x0
+ str r0, [r4, #0x4c]
+ pop {r4, pc}
+
+ thumb_func_start FUN_02015428
+FUN_02015428: ; 0x02015428
+ ldr r1, [r0, #0x4c]
+ add r2, r1, #0x1
+ str r2, [r0, #0x4c]
+ ldr r1, [r0, #0x48]
+ cmp r2, r1
+ blt _0201543E
+ mov r1, #0x0
+ str r1, [r0, #0x50]
+ str r1, [r0, #0x4c]
+ str r1, [r0, #0x48]
+ bx lr
+_0201543E:
+ ldr r1, [r0, #0x50]
+ str r1, [r0, #0xc]
+ bx lr
+
+ thumb_func_start FUN_02015444
+FUN_02015444: ; 0x02015444
+ push {r4, lr}
+ sub sp, #0x8
+ add r4, r0, #0x0
+ add r1, sp, #0x4
+ bl FUN_02014F80
+ add r0, r4, #0x0
+ add r1, sp, #0x0
+ bl FUN_02014FA8
+ add r2, sp, #0x0
+ ldrb r2, [r2, #0x0]
+ ldr r0, [r4, #0x0]
+ ldr r1, [sp, #0x4]
+ lsl r2, r2, #0x2
+ add r2, r4, r2
+ ldr r2, [r2, #0x24]
+ bl FUN_02007558
+ add sp, #0x8
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02015470
+FUN_02015470: ; 0x02015470
+ push {r4, lr}
+ sub sp, #0x8
+ add r4, r0, #0x0
+ add r1, sp, #0x4
+ bl FUN_02014F80
+ add r0, r4, #0x0
+ add r1, sp, #0x0
+ bl FUN_02014FA8
+ add r2, sp, #0x0
+ ldrb r2, [r2, #0x0]
+ ldr r0, [r4, #0x0]
+ ldr r1, [sp, #0x4]
+ lsl r2, r2, #0x2
+ add r2, r4, r2
+ ldr r2, [r2, #0x24]
+ bl FUN_020079E0
+ add sp, #0x8
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0201549C
+FUN_0201549C: ; 0x0201549C
+ push {r3-r4, lr}
+ sub sp, #0xc
+ add r1, sp, #0x8
+ add r4, r0, #0x0
+ bl FUN_02014F80
+ add r1, sp, #0x0
+ add r0, r4, #0x0
+ add r1, #0x1
+ bl FUN_02014F94
+ add r0, sp, #0x0
+ ldrb r0, [r0, #0x1]
+ cmp r0, #0x14
+ bne _020154C4
+ add r0, r4, #0x0
+ add r1, sp, #0x4
+ bl FUN_02014F80
+ b _020154E4
+_020154C4:
+ cmp r0, #0x15
+ bne _020154E0
+ add r1, sp, #0x0
+ add r0, r4, #0x0
+ add r1, #0x2
+ bl FUN_02014FA8
+ add r0, sp, #0x0
+ ldrb r0, [r0, #0x2]
+ lsl r0, r0, #0x2
+ add r0, r4, r0
+ ldr r0, [r0, #0x24]
+ str r0, [sp, #0x4]
+ b _020154E4
+_020154E0:
+ bl ErrorHandling
+_020154E4:
+ add r0, r4, #0x0
+ add r1, sp, #0x0
+ bl FUN_02014F94
+ add r0, sp, #0x0
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x16
+ bne _02015502
+ ldr r0, [r4, #0x0]
+ ldr r1, [sp, #0x8]
+ ldr r2, [sp, #0x4]
+ bl FUN_02007558
+ add sp, #0xc
+ pop {r3-r4, pc}
+_02015502:
+ cmp r0, #0x17
+ bne _02015514
+ ldr r0, [r4, #0x0]
+ ldr r1, [sp, #0x8]
+ ldr r2, [sp, #0x4]
+ bl FUN_020079E0
+ add sp, #0xc
+ pop {r3-r4, pc}
+_02015514:
+ bl ErrorHandling
+ add sp, #0xc
+ pop {r3-r4, pc}
+
+ thumb_func_start FUN_0201551C
+FUN_0201551C: ; 0x0201551C
+ push {r3-r4, lr}
+ sub sp, #0xc
+ add r1, sp, #0x0
+ add r2, sp, #0x8
+ add r3, sp, #0x4
+ add r4, r0, #0x0
+ bl FUN_020150DC
+ ldr r0, [sp, #0x8]
+ ldr r2, [sp, #0x4]
+ asr r0, r0, #0x4
+ lsl r1, r0, #0x2
+ ldr r0, _0201554C ; =0x020FFA38
+ ldrsh r0, [r0, r1]
+ mul r0, r2
+ asr r1, r0, #0xc
+ add r0, sp, #0x0
+ ldrb r0, [r0, #0x0]
+ lsl r0, r0, #0x2
+ add r0, r4, r0
+ str r1, [r0, #0x24]
+ add sp, #0xc
+ pop {r3-r4, pc}
+ nop
+_0201554C: .word 0x020FFA38
+
+ thumb_func_start FUN_02015550
+FUN_02015550: ; 0x02015550
+ push {r3-r4, lr}
+ sub sp, #0xc
+ add r1, sp, #0x0
+ add r2, sp, #0x8
+ add r3, sp, #0x4
+ add r4, r0, #0x0
+ bl FUN_020150DC
+ ldr r1, [sp, #0x8]
+ ldr r0, [sp, #0x4]
+ asr r1, r1, #0x4
+ lsl r1, r1, #0x1
+ add r1, r1, #0x1
+ lsl r2, r1, #0x1
+ ldr r1, _02015584 ; =0x020FFA38
+ ldrsh r1, [r1, r2]
+ mul r1, r0
+ add r0, sp, #0x0
+ ldrb r0, [r0, #0x0]
+ asr r1, r1, #0xc
+ lsl r0, r0, #0x2
+ add r0, r4, r0
+ str r1, [r0, #0x24]
+ add sp, #0xc
+ pop {r3-r4, pc}
+ nop
+_02015584: .word 0x020FFA38
+
+ thumb_func_start FUN_02015588
+FUN_02015588: ; 0x02015588
+ push {r3-r4, lr}
+ sub sp, #0x4
+ add r1, sp, #0x0
+ add r4, r0, #0x0
+ add r1, #0x1
+ bl FUN_02014FA8
+ add r0, r4, #0x0
+ add r1, sp, #0x0
+ bl FUN_02014F94
+ add r0, sp, #0x0
+ ldrb r1, [r0, #0x0]
+ cmp r1, #0x8
+ bne _020155B4
+ ldrb r0, [r0, #0x1]
+ add sp, #0x4
+ lsl r0, r0, #0x2
+ add r0, r4, r0
+ ldr r0, [r0, #0x24]
+ str r0, [r4, #0x60]
+ pop {r3-r4, pc}
+_020155B4:
+ cmp r1, #0x9
+ bne _020155C6
+ ldrb r0, [r0, #0x1]
+ add sp, #0x4
+ lsl r0, r0, #0x2
+ add r0, r4, r0
+ ldr r0, [r0, #0x24]
+ str r0, [r4, #0x64]
+ pop {r3-r4, pc}
+_020155C6:
+ bl ErrorHandling
+ add sp, #0x4
+ pop {r3-r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_020155D0
+FUN_020155D0: ; 0x020155D0
+ push {r3-r4, lr}
+ sub sp, #0x4
+ add r1, sp, #0x0
+ add r4, r0, #0x0
+ add r1, #0x1
+ bl FUN_02014FA8
+ add r0, r4, #0x0
+ add r1, sp, #0x0
+ bl FUN_02014F94
+ add r0, sp, #0x0
+ ldrb r1, [r0, #0x0]
+ cmp r1, #0x8
+ bne _02015600
+ ldrb r0, [r0, #0x1]
+ ldr r1, [r4, #0x60]
+ add sp, #0x4
+ lsl r0, r0, #0x2
+ add r0, r4, r0
+ ldr r0, [r0, #0x24]
+ add r0, r1, r0
+ str r0, [r4, #0x60]
+ pop {r3-r4, pc}
+_02015600:
+ cmp r1, #0x9
+ bne _02015616
+ ldrb r0, [r0, #0x1]
+ ldr r1, [r4, #0x64]
+ add sp, #0x4
+ lsl r0, r0, #0x2
+ add r0, r4, r0
+ ldr r0, [r0, #0x24]
+ add r0, r1, r0
+ str r0, [r4, #0x64]
+ pop {r3-r4, pc}
+_02015616:
+ bl ErrorHandling
+ add sp, #0x4
+ pop {r3-r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02015620
+FUN_02015620: ; 0x02015620
+ push {r3-r5, lr}
+ sub sp, #0x8
+ add r1, sp, #0x0
+ add r1, #0x3
+ add r5, r0, #0x0
+ bl FUN_02014F94
+ add r0, sp, #0x0
+ ldrb r0, [r0, #0x3]
+ cmp r0, #0x8
+ bne _0201563C
+ add r4, r5, #0x0
+ add r4, #0x60
+ b _0201567C
+_0201563C:
+ cmp r0, #0x9
+ bne _02015646
+ add r4, r5, #0x0
+ add r4, #0x64
+ b _0201567C
+_02015646:
+ cmp r0, #0xa
+ bne _02015650
+ add r4, r5, #0x0
+ add r4, #0x68
+ b _0201567C
+_02015650:
+ cmp r0, #0xb
+ bne _0201565A
+ add r4, r5, #0x0
+ add r4, #0x6c
+ b _0201567C
+_0201565A:
+ cmp r0, #0xc
+ bne _02015664
+ add r4, r5, #0x0
+ add r4, #0x70
+ b _0201567C
+_02015664:
+ cmp r0, #0xd
+ bne _0201566E
+ add r4, r5, #0x0
+ add r4, #0x74
+ b _0201567C
+_0201566E:
+ cmp r0, #0xe
+ bne _02015678
+ add r4, r5, #0x0
+ add r4, #0x78
+ b _0201567C
+_02015678:
+ bl ErrorHandling
+_0201567C:
+ add r1, sp, #0x0
+ add r0, r5, #0x0
+ add r1, #0x1
+ bl FUN_02014F94
+ add r0, sp, #0x0
+ ldrb r0, [r0, #0x1]
+ cmp r0, #0x14
+ bne _02015698
+ add r0, r5, #0x0
+ add r1, sp, #0x4
+ bl FUN_02014F80
+ b _020156B8
+_02015698:
+ cmp r0, #0x15
+ bne _020156B4
+ add r1, sp, #0x0
+ add r0, r5, #0x0
+ add r1, #0x2
+ bl FUN_02014FA8
+ add r0, sp, #0x0
+ ldrb r0, [r0, #0x2]
+ lsl r0, r0, #0x2
+ add r0, r5, r0
+ ldr r0, [r0, #0x24]
+ str r0, [sp, #0x4]
+ b _020156B8
+_020156B4:
+ bl ErrorHandling
+_020156B8:
+ add r0, r5, #0x0
+ add r1, sp, #0x0
+ bl FUN_02014F94
+ add r0, sp, #0x0
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x16
+ bne _020156D0
+ ldr r0, [sp, #0x4]
+ add sp, #0x8
+ str r0, [r4, #0x0]
+ pop {r3-r5, pc}
+_020156D0:
+ cmp r0, #0x17
+ bne _020156E0
+ ldr r0, [sp, #0x4]
+ ldr r1, [r4, #0x0]
+ add sp, #0x8
+ add r0, r1, r0
+ str r0, [r4, #0x0]
+ pop {r3-r5, pc}
+_020156E0:
+ bl ErrorHandling
+ add sp, #0x8
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_020156E8
+FUN_020156E8: ; 0x020156E8
+ push {r3-r5, lr}
+ add r4, r0, #0x0
+ mov r0, #0x73
+ lsl r0, r0, #0x2
+ ldrb r0, [r4, r0]
+ cmp r0, #0x0
+ ldr r0, [r4, #0x0]
+ beq _0201570A
+ ldr r3, [r4, #0x60]
+ ldr r2, [r4, #0x68]
+ ldr r5, [r4, #0x58]
+ add r2, r3, r2
+ mov r1, #0x0
+ sub r2, r5, r2
+ bl FUN_02007558
+ b _0201571A
+_0201570A:
+ ldr r3, [r4, #0x58]
+ ldr r2, [r4, #0x60]
+ ldr r5, [r4, #0x68]
+ add r2, r3, r2
+ mov r1, #0x0
+ add r2, r5, r2
+ bl FUN_02007558
+_0201571A:
+ ldr r3, [r4, #0x5c]
+ ldr r2, [r4, #0x64]
+ ldr r5, [r4, #0x6c]
+ add r2, r3, r2
+ ldr r0, [r4, #0x0]
+ mov r1, #0x1
+ add r2, r5, r2
+ bl FUN_02007558
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_02015730
+FUN_02015730: ; 0x02015730
+ push {r4, lr}
+ add r4, r0, #0x0
+ mov r1, #0xc
+ add r2, r1, #0x0
+ ldr r3, [r4, #0x70]
+ add r2, #0xf4
+ ldr r0, [r4, #0x0]
+ add r2, r3, r2
+ bl FUN_02007558
+ mov r1, #0xd
+ add r2, r1, #0x0
+ ldr r3, [r4, #0x74]
+ add r2, #0xf3
+ ldr r0, [r4, #0x0]
+ add r2, r3, r2
+ bl FUN_02007558
+ ldr r2, [r4, #0x78]
+ ldr r0, [r4, #0x0]
+ lsl r2, r2, #0x10
+ mov r1, #0x9
+ lsr r2, r2, #0x10
+ bl FUN_02007558
+ ldr r0, _02015794 ; =0x000001CE
+ ldrb r0, [r4, r0]
+ cmp r0, #0x1b
+ bne _02015778
+ ldr r0, [r4, #0x74]
+ cmp r0, #0x0
+ bge _02015792
+ add r0, r4, #0x0
+ bl FUN_0201519C
+ pop {r4, pc}
+_02015778:
+ cmp r0, #0x1d
+ bne _0201578A
+ ldr r0, [r4, #0x74]
+ cmp r0, #0x0
+ beq _02015792
+ add r0, r4, #0x0
+ bl FUN_0201519C
+ pop {r4, pc}
+_0201578A:
+ cmp r0, #0x1c
+ beq _02015792
+ bl ErrorHandling
+_02015792:
+ pop {r4, pc}
+ .balign 4
+_02015794: .word 0x000001CE
+
+ thumb_func_start FUN_02015798
+FUN_02015798: ; 0x02015798
+ push {r3-r4, lr}
+ sub sp, #0x4
+ add r4, r0, #0x0
+ add r1, sp, #0x0
+ bl FUN_02014FA8
+ ldr r0, [r4, #0xc]
+ add r0, r0, #0x4
+ str r0, [r4, #0xc]
+ bl FUN_02014F28
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ cmp r0, #0x8
+ beq _020157BA
+ cmp r0, #0xa
+ bne _020157CA
+_020157BA:
+ add r0, sp, #0x0
+ ldrb r0, [r0, #0x0]
+ add sp, #0x4
+ lsl r0, r0, #0x2
+ add r0, r4, r0
+ ldr r0, [r0, #0x24]
+ str r0, [r4, #0x68]
+ pop {r3-r4, pc}
+_020157CA:
+ cmp r0, #0x9
+ beq _020157D2
+ cmp r0, #0xb
+ bne _020157E2
+_020157D2:
+ add r0, sp, #0x0
+ ldrb r0, [r0, #0x0]
+ add sp, #0x4
+ lsl r0, r0, #0x2
+ add r0, r4, r0
+ ldr r0, [r0, #0x24]
+ str r0, [r4, #0x6c]
+ pop {r3-r4, pc}
+_020157E2:
+ bl ErrorHandling
+ add sp, #0x4
+ pop {r3-r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_020157EC
+FUN_020157EC: ; 0x020157EC
+ push {r4, lr}
+ add r4, r0, #0x0
+ add r1, r4, #0x0
+ add r1, #0x54
+ bl FUN_02014F80
+ mov r0, #0x1
+ str r0, [r4, #0x18]
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02015800
+FUN_02015800: ; 0x02015800
+ push {r3-r4, lr}
+ sub sp, #0xc
+ add r1, sp, #0x4
+ add r1, #0x2
+ add r4, r0, #0x0
+ bl FUN_02014F94
+ add r1, sp, #0x4
+ add r0, r4, #0x0
+ add r1, #0x1
+ bl FUN_02014F94
+ add r0, r4, #0x0
+ add r1, sp, #0x4
+ bl FUN_02014F94
+ add r0, r4, #0x0
+ add r1, sp, #0x8
+ bl FUN_02014F80
+ ldr r0, [sp, #0x8]
+ add r3, sp, #0x4
+ str r0, [sp, #0x0]
+ ldrb r1, [r3, #0x2]
+ ldrb r2, [r3, #0x1]
+ ldrb r3, [r3, #0x0]
+ ldr r0, [r4, #0x0]
+ bl FUN_02007E68
+ add sp, #0xc
+ pop {r3-r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02015840
+FUN_02015840: ; 0x02015840
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r0, [r4, #0x0]
+ bl FUN_02007F20
+ cmp r0, #0x0
+ beq _02015856
+ ldr r0, _02015858 ; =0x000001CF
+ mov r1, #0x1
+ strb r1, [r4, r0]
+ str r1, [r4, #0x18]
+_02015856:
+ pop {r4, pc}
+ .balign 4
+_02015858: .word 0x000001CF
+
+ thumb_func_start FUN_0201585C
+FUN_0201585C: ; 0x0201585C
+ ldr r1, _02015864 ; =0x000001CD
+ mov r2, #0x1
+ strb r2, [r0, r1]
+ bx lr
+ .balign 4
+_02015864: .word 0x000001CD
+
+ thumb_func_start FUN_02015868
+FUN_02015868: ; 0x02015868
+ push {r4, lr}
+ ldr r1, _0201589C ; =0x000001CE
+ add r4, r0, #0x0
+ add r1, r4, r1
+ bl FUN_02014F94
+ ldr r0, _0201589C ; =0x000001CE
+ mov r1, #0x1
+ ldrb r0, [r4, r0]
+ add r2, r1, #0x0
+ cmp r0, #0x1b
+ beq _02015886
+ cmp r0, #0x1d
+ beq _02015886
+ mov r2, #0x0
+_02015886:
+ cmp r2, #0x0
+ bne _02015890
+ cmp r0, #0x1c
+ beq _02015890
+ mov r1, #0x0
+_02015890:
+ cmp r1, #0x0
+ bne _02015898
+ bl ErrorHandling
+_02015898:
+ pop {r4, pc}
+ nop
+_0201589C: .word 0x000001CE
+
+ thumb_func_start FUN_020158A0
+FUN_020158A0: ; 0x020158A0
+ ldr r3, _020158A8 ; =FUN_0201598C
+ mov r1, #0x0
+ bx r3
+ nop
+_020158A8: .word FUN_0201598C
+
+ thumb_func_start FUN_020158AC
+FUN_020158AC: ; 0x020158AC
+ ldr r3, _020158B4 ; =FUN_0201598C
+ mov r1, #0x1
+ bx r3
+ nop
+_020158B4: .word FUN_0201598C
+
+ thumb_func_start FUN_020158B8
+FUN_020158B8: ; 0x020158B8
+ ldr r3, _020158C0 ; =FUN_0201598C
+ mov r1, #0x2
+ bx r3
+ nop
+_020158C0: .word FUN_0201598C
+
+ thumb_func_start FUN_020158C4
+FUN_020158C4: ; 0x020158C4
+ ldr r3, _020158CC ; =FUN_0201598C
+ mov r1, #0x3
+ bx r3
+ nop
+_020158CC: .word FUN_0201598C
+
+ thumb_func_start FUN_020158D0
+FUN_020158D0: ; 0x020158D0
+ ldr r3, _020158D8 ; =FUN_0201598C
+ mov r1, #0x4
+ bx r3
+ nop
+_020158D8: .word FUN_0201598C
+
+ thumb_func_start FUN_020158DC
+FUN_020158DC: ; 0x020158DC
+ push {r3, lr}
+ cmp r0, #0x18
+ bne _020158E8
+ ldr r0, [r2, #0x0]
+ str r0, [r3, #0x0]
+ pop {r3, pc}
+_020158E8:
+ cmp r0, #0x19
+ bne _020158F6
+ ldr r1, [r1, #0x0]
+ ldr r0, [r2, #0x0]
+ add r0, r1, r0
+ str r0, [r3, #0x0]
+ pop {r3, pc}
+_020158F6:
+ cmp r0, #0x1a
+ bne _02015904
+ ldr r1, [r3, #0x0]
+ ldr r0, [r2, #0x0]
+ add r0, r1, r0
+ str r0, [r3, #0x0]
+ pop {r3, pc}
+_02015904:
+ bl ErrorHandling
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_0201590C
+FUN_0201590C: ; 0x0201590C
+ push {r3, lr}
+ sub r0, #0x23
+ cmp r0, #0x4
+ bhi _02015984
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02015920: ; jump table (using 16-bit offset)
+ .short _0201592A - _02015920 - 2; case 0
+ .short _0201593C - _02015920 - 2; case 1
+ .short _0201594E - _02015920 - 2; case 2
+ .short _02015960 - _02015920 - 2; case 3
+ .short _02015972 - _02015920 - 2; case 4
+_0201592A:
+ add r0, r1, #0x0
+ add r0, #0x3c
+ str r0, [r1, #0x24]
+ add r0, r2, #0x0
+ add r0, #0x68
+ str r0, [r1, #0x28]
+ ldr r0, [r2, #0x68]
+ str r0, [r1, #0x30]
+ pop {r3, pc}
+_0201593C:
+ add r0, r1, #0x0
+ add r0, #0x40
+ str r0, [r1, #0x24]
+ add r0, r2, #0x0
+ add r0, #0x6c
+ str r0, [r1, #0x28]
+ ldr r0, [r2, #0x6c]
+ str r0, [r1, #0x30]
+ pop {r3, pc}
+_0201594E:
+ add r0, r1, #0x0
+ add r0, #0x44
+ str r0, [r1, #0x24]
+ add r0, r2, #0x0
+ add r0, #0x70
+ str r0, [r1, #0x28]
+ ldr r0, [r2, #0x70]
+ str r0, [r1, #0x30]
+ pop {r3, pc}
+_02015960:
+ add r0, r1, #0x0
+ add r0, #0x48
+ str r0, [r1, #0x24]
+ add r0, r2, #0x0
+ add r0, #0x74
+ str r0, [r1, #0x28]
+ ldr r0, [r2, #0x74]
+ str r0, [r1, #0x30]
+ pop {r3, pc}
+_02015972:
+ add r0, r1, #0x0
+ add r0, #0x4c
+ str r0, [r1, #0x24]
+ add r0, r2, #0x0
+ add r0, #0x78
+ str r0, [r1, #0x28]
+ ldr r0, [r2, #0x78]
+ str r0, [r1, #0x30]
+ pop {r3, pc}
+_02015984:
+ bl ErrorHandling
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_0201598C
+FUN_0201598C: ; 0x0201598C
+ push {r3-r7, lr}
+ sub sp, #0x8
+ add r6, r1, #0x0
+ lsl r1, r6, #0x18
+ lsr r1, r1, #0x18
+ add r5, r0, #0x0
+ bl FUN_02014F34
+ str r0, [sp, #0x4]
+ ldr r1, [sp, #0x4]
+ add r0, r5, #0x0
+ add r1, #0x2c
+ bl FUN_02014F94
+ ldr r1, [sp, #0x4]
+ add r0, r5, #0x0
+ add r1, #0x2d
+ bl FUN_02014F94
+ mov r0, #0xc
+ mul r0, r6
+ ldr r1, _02015A28 ; =0x020ED66C
+ str r0, [sp, #0x0]
+ ldr r0, [r1, r0]
+ mov r4, #0x0
+ cmp r0, #0x0
+ ble _020159E2
+ ldr r1, _02015A2C ; =0x020ED668
+ ldr r0, [sp, #0x0]
+ add r6, r1, r0
+ ldr r0, [sp, #0x4]
+ add r7, r0, #0x4
+_020159CC:
+ lsl r1, r4, #0x2
+ add r0, r5, #0x0
+ add r1, r7, r1
+ bl FUN_02014F80
+ add r0, r4, #0x1
+ lsl r0, r0, #0x18
+ lsr r4, r0, #0x18
+ ldr r0, [r6, #0x4]
+ cmp r4, r0
+ blt _020159CC
+_020159E2:
+ ldr r1, _02015A30 ; =0x020ED670
+ ldr r0, [sp, #0x0]
+ add r2, r5, #0x0
+ ldr r0, [r1, r0]
+ lsl r1, r0, #0x2
+ ldr r0, [sp, #0x4]
+ add r0, r0, r1
+ ldr r0, [r0, #0x4]
+ ldr r1, [sp, #0x4]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_0201590C
+ ldr r0, [sp, #0x4]
+ add r0, #0x2d
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x0
+ bne _02015A14
+ ldr r0, [sp, #0x4]
+ add r1, r5, #0x0
+ add r2, r0, #0x0
+ ldr r2, [r2, #0x50]
+ blx r2
+ add sp, #0x8
+ pop {r3-r7, pc}
+_02015A14:
+ ldr r0, [sp, #0x4]
+ add r0, #0x2d
+ ldrb r0, [r0, #0x0]
+ sub r1, r0, #0x1
+ ldr r0, [sp, #0x4]
+ add r0, #0x2d
+ str r0, [sp, #0x4]
+ strb r1, [r0, #0x0]
+ add sp, #0x8
+ pop {r3-r7, pc}
+ .balign 4
+_02015A28: .word 0x020ED66C
+_02015A2C: .word 0x020ED668
+_02015A30: .word 0x020ED670
+
+ thumb_func_start FUN_02015A34
+FUN_02015A34: ; 0x02015A34
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r0, [r4, #0x1c]
+ ldr r1, [r4, #0x10]
+ add r0, r0, #0x1
+ ldr r2, [r4, #0x14]
+ mul r0, r1
+ add r0, r2, r0
+ lsl r0, r0, #0x10
+ lsr r1, r0, #0x10
+ ldr r0, [r4, #0x4]
+ sub r0, #0x1e
+ cmp r0, #0x3
+ bhi _02015AC0
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02015A5C: ; jump table (using 16-bit offset)
+ .short _02015A64 - _02015A5C - 2; case 0
+ .short _02015A78 - _02015A5C - 2; case 1
+ .short _02015A90 - _02015A5C - 2; case 2
+ .short _02015AA6 - _02015A5C - 2; case 3
+_02015A64:
+ asr r0, r1, #0x4
+ lsl r1, r0, #0x2
+ ldr r0, _02015AE8 ; =0x020FFA38
+ ldr r2, [r4, #0xc]
+ ldrsh r0, [r0, r1]
+ mul r0, r2
+ asr r1, r0, #0xc
+ ldr r0, [r4, #0x24]
+ str r1, [r0, #0x0]
+ b _02015AC4
+_02015A78:
+ asr r1, r1, #0x4
+ lsl r1, r1, #0x1
+ add r1, r1, #0x1
+ lsl r2, r1, #0x1
+ ldr r1, _02015AE8 ; =0x020FFA38
+ ldr r0, [r4, #0xc]
+ ldrsh r1, [r1, r2]
+ mul r1, r0
+ ldr r0, [r4, #0x24]
+ asr r1, r1, #0xc
+ str r1, [r0, #0x0]
+ b _02015AC4
+_02015A90:
+ asr r0, r1, #0x4
+ lsl r1, r0, #0x2
+ ldr r0, _02015AE8 ; =0x020FFA38
+ ldr r2, [r4, #0xc]
+ ldrsh r0, [r0, r1]
+ mul r0, r2
+ asr r0, r0, #0xc
+ neg r1, r0
+ ldr r0, [r4, #0x24]
+ str r1, [r0, #0x0]
+ b _02015AC4
+_02015AA6:
+ asr r1, r1, #0x4
+ lsl r1, r1, #0x1
+ add r1, r1, #0x1
+ lsl r2, r1, #0x1
+ ldr r1, _02015AE8 ; =0x020FFA38
+ ldr r0, [r4, #0xc]
+ ldrsh r1, [r1, r2]
+ mul r1, r0
+ asr r0, r1, #0xc
+ neg r1, r0
+ ldr r0, [r4, #0x24]
+ str r1, [r0, #0x0]
+ b _02015AC4
+_02015AC0:
+ bl ErrorHandling
+_02015AC4:
+ add r0, r4, #0x0
+ add r0, #0x2c
+ ldrb r0, [r0, #0x0]
+ add r1, r4, #0x0
+ ldr r2, [r4, #0x24]
+ ldr r3, [r4, #0x28]
+ add r1, #0x30
+ bl FUN_020158DC
+ ldr r0, [r4, #0x1c]
+ add r1, r0, #0x1
+ str r1, [r4, #0x1c]
+ ldr r0, [r4, #0x18]
+ cmp r1, r0
+ blt _02015AE6
+ mov r0, #0x0
+ str r0, [r4, #0x0]
+_02015AE6:
+ pop {r4, pc}
+ .balign 4
+_02015AE8: .word 0x020FFA38
+
+ thumb_func_start FUN_02015AEC
+FUN_02015AEC: ; 0x02015AEC
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r0, [r4, #0x1c]
+ ldr r1, [r4, #0x10]
+ add r0, r0, #0x1
+ mul r0, r1
+ ldr r1, [r4, #0x18]
+ blx _s32_div_f
+ ldr r1, [r4, #0x14]
+ add r0, r1, r0
+ lsl r0, r0, #0x10
+ lsr r1, r0, #0x10
+ ldr r0, [r4, #0x4]
+ sub r0, #0x1e
+ cmp r0, #0x3
+ bhi _02015B7E
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02015B1A: ; jump table (using 16-bit offset)
+ .short _02015B22 - _02015B1A - 2; case 0
+ .short _02015B36 - _02015B1A - 2; case 1
+ .short _02015B4E - _02015B1A - 2; case 2
+ .short _02015B64 - _02015B1A - 2; case 3
+_02015B22:
+ asr r0, r1, #0x4
+ lsl r1, r0, #0x2
+ ldr r0, _02015BA8 ; =0x020FFA38
+ ldr r2, [r4, #0xc]
+ ldrsh r0, [r0, r1]
+ mul r0, r2
+ asr r1, r0, #0xc
+ ldr r0, [r4, #0x24]
+ str r1, [r0, #0x0]
+ b _02015B82
+_02015B36:
+ asr r1, r1, #0x4
+ lsl r1, r1, #0x1
+ add r1, r1, #0x1
+ lsl r2, r1, #0x1
+ ldr r1, _02015BA8 ; =0x020FFA38
+ ldr r0, [r4, #0xc]
+ ldrsh r1, [r1, r2]
+ mul r1, r0
+ ldr r0, [r4, #0x24]
+ asr r1, r1, #0xc
+ str r1, [r0, #0x0]
+ b _02015B82
+_02015B4E:
+ asr r0, r1, #0x4
+ lsl r1, r0, #0x2
+ ldr r0, _02015BA8 ; =0x020FFA38
+ ldr r2, [r4, #0xc]
+ ldrsh r0, [r0, r1]
+ mul r0, r2
+ asr r0, r0, #0xc
+ neg r1, r0
+ ldr r0, [r4, #0x24]
+ str r1, [r0, #0x0]
+ b _02015B82
+_02015B64:
+ asr r1, r1, #0x4
+ lsl r1, r1, #0x1
+ add r1, r1, #0x1
+ lsl r2, r1, #0x1
+ ldr r1, _02015BA8 ; =0x020FFA38
+ ldr r0, [r4, #0xc]
+ ldrsh r1, [r1, r2]
+ mul r1, r0
+ asr r0, r1, #0xc
+ neg r1, r0
+ ldr r0, [r4, #0x24]
+ str r1, [r0, #0x0]
+ b _02015B82
+_02015B7E:
+ bl ErrorHandling
+_02015B82:
+ add r0, r4, #0x0
+ add r0, #0x2c
+ ldrb r0, [r0, #0x0]
+ add r1, r4, #0x0
+ ldr r2, [r4, #0x24]
+ ldr r3, [r4, #0x28]
+ add r1, #0x30
+ bl FUN_020158DC
+ ldr r0, [r4, #0x1c]
+ add r1, r0, #0x1
+ str r1, [r4, #0x1c]
+ ldr r0, [r4, #0x18]
+ cmp r1, r0
+ blt _02015BA4
+ mov r0, #0x0
+ str r0, [r4, #0x0]
+_02015BA4:
+ pop {r4, pc}
+ nop
+_02015BA8: .word 0x020FFA38
+
+ thumb_func_start FUN_02015BAC
+FUN_02015BAC: ; 0x02015BAC
+ push {r3-r5, lr}
+ add r4, r0, #0x0
+ ldr r1, [r4, #0x24]
+ ldr r3, [r4, #0xc]
+ ldr r2, [r4, #0x14]
+ ldr r5, [r4, #0x8]
+ mul r2, r3
+ ldr r0, [r1, #0x0]
+ add r2, r5, r2
+ add r0, r0, r2
+ str r0, [r1, #0x0]
+ add r0, r4, #0x0
+ add r0, #0x2c
+ add r1, r4, #0x0
+ ldrb r0, [r0, #0x0]
+ ldr r2, [r4, #0x24]
+ ldr r3, [r4, #0x28]
+ add r1, #0x30
+ bl FUN_020158DC
+ ldr r0, [r4, #0x14]
+ add r1, r0, #0x1
+ str r1, [r4, #0x14]
+ ldr r0, [r4, #0x10]
+ cmp r1, r0
+ blt _02015BE4
+ mov r0, #0x0
+ str r0, [r4, #0x0]
+_02015BE4:
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_02015BE8
+FUN_02015BE8: ; 0x02015BE8
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r0, [r4, #0x10]
+ add r1, r0, #0x1
+ ldr r0, [r4, #0x8]
+ mul r0, r1
+ ldr r1, [r4, #0xc]
+ blx _s32_div_f
+ ldr r1, [r4, #0x24]
+ str r0, [r1, #0x0]
+ add r0, r4, #0x0
+ add r0, #0x2c
+ add r1, r4, #0x0
+ ldrb r0, [r0, #0x0]
+ ldr r2, [r4, #0x24]
+ ldr r3, [r4, #0x28]
+ add r1, #0x30
+ bl FUN_020158DC
+ ldr r0, [r4, #0x10]
+ add r1, r0, #0x1
+ str r1, [r4, #0x10]
+ ldr r0, [r4, #0xc]
+ cmp r1, r0
+ blt _02015C20
+ mov r0, #0x0
+ str r0, [r4, #0x0]
+_02015C20:
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02015C24
+FUN_02015C24: ; 0x02015C24
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r1, [r4, #0xc]
+ ldr r0, [r4, #0x14]
+ ldr r2, [r4, #0x8]
+ mul r0, r1
+ ldr r1, [r4, #0x24]
+ add r2, r2, r0
+ ldr r0, [r1, #0x0]
+ add r0, r0, r2
+ str r0, [r1, #0x0]
+ add r0, r4, #0x0
+ add r0, #0x2c
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x18
+ beq _02015C48
+ cmp r0, #0x1a
+ bne _02015C6E
+_02015C48:
+ cmp r2, #0x0
+ ldr r2, [r4, #0x10]
+ bge _02015C5E
+ ldr r1, [r4, #0x24]
+ ldr r0, [r1, #0x0]
+ cmp r0, r2
+ bgt _02015CA4
+ str r2, [r1, #0x0]
+ mov r0, #0x0
+ str r0, [r4, #0x0]
+ b _02015CA4
+_02015C5E:
+ ldr r1, [r4, #0x24]
+ ldr r0, [r1, #0x0]
+ cmp r0, r2
+ blt _02015CA4
+ str r2, [r1, #0x0]
+ mov r0, #0x0
+ str r0, [r4, #0x0]
+ b _02015CA4
+_02015C6E:
+ cmp r0, #0x19
+ bne _02015CA0
+ ldr r1, [r4, #0x24]
+ ldr r3, [r4, #0x30]
+ ldr r0, [r1, #0x0]
+ add r3, r3, r0
+ cmp r2, #0x0
+ ldr r2, [r4, #0x10]
+ bge _02015C90
+ cmp r3, r2
+ bgt _02015CA4
+ sub r2, r2, r3
+ add r0, r0, r2
+ str r0, [r1, #0x0]
+ mov r0, #0x0
+ str r0, [r4, #0x0]
+ b _02015CA4
+_02015C90:
+ cmp r3, r2
+ blt _02015CA4
+ sub r2, r3, r2
+ sub r0, r0, r2
+ str r0, [r1, #0x0]
+ mov r0, #0x0
+ str r0, [r4, #0x0]
+ b _02015CA4
+_02015CA0:
+ bl ErrorHandling
+_02015CA4:
+ add r0, r4, #0x0
+ add r0, #0x2c
+ ldrb r0, [r0, #0x0]
+ add r1, r4, #0x0
+ ldr r2, [r4, #0x24]
+ ldr r3, [r4, #0x28]
+ add r1, #0x30
+ bl FUN_020158DC
+ ldr r0, [r4, #0x14]
+ add r0, r0, #0x1
+ str r0, [r4, #0x14]
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02015CC0
+FUN_02015CC0: ; 0x02015CC0
+ ldr r3, _02015CDC ; =0x020ED72C
+ mov r2, #0x0
+_02015CC4:
+ ldrh r1, [r3, #0x2]
+ cmp r0, r1
+ bhs _02015CCE
+ add r0, r2, #0x0
+ bx lr
+_02015CCE:
+ add r2, r2, #0x1
+ add r3, r3, #0x2
+ cmp r2, #0x2
+ blt _02015CC4
+ add r0, r2, #0x0
+ bx lr
+ nop
+_02015CDC: .word 0x020ED72C
+
+ thumb_func_start FUN_02015CE0
+FUN_02015CE0: ; 0x02015CE0
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl FUN_02015CC0
+ lsl r1, r0, #0x1
+ ldr r0, _02015CF4 ; =0x020ED72C
+ ldrh r0, [r0, r1]
+ sub r0, r4, r0
+ pop {r4, pc}
+ nop
+_02015CF4: .word 0x020ED72C
+
+ thumb_func_start FUN_02015CF8
+FUN_02015CF8: ; 0x02015CF8
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ cmp r5, #0x3
+ blt _02015D06
+ bl ErrorHandling
+_02015D06:
+ ldr r0, _02015D10 ; =0x020ED72C
+ lsl r1, r5, #0x1
+ ldrh r0, [r0, r1]
+ add r0, r4, r0
+ pop {r3-r5, pc}
+ .balign 4
+_02015D10: .word 0x020ED72C
+
+ thumb_func_start FUN_02015D14
+FUN_02015D14: ; 0x02015D14
+ cmp r0, #0x7
+ bhi _02015D34
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02015D24: ; jump table (using 16-bit offset)
+ .short _02015D34 - _02015D24 - 2; case 0
+ .short _02015D34 - _02015D24 - 2; case 1
+ .short _02015D38 - _02015D24 - 2; case 2
+ .short _02015D3E - _02015D24 - 2; case 3
+ .short _02015D38 - _02015D24 - 2; case 4
+ .short _02015D42 - _02015D24 - 2; case 5
+ .short _02015D34 - _02015D24 - 2; case 6
+ .short _02015D38 - _02015D24 - 2; case 7
+_02015D34:
+ mov r0, #0xea
+ bx lr
+_02015D38:
+ mov r0, #0x6d
+ lsl r0, r0, #0x2
+ bx lr
+_02015D3E:
+ ldr r0, _02015D48 ; =0x000001B7
+ bx lr
+_02015D42:
+ ldr r0, _02015D4C ; =0x000001B6
+ bx lr
+ nop
+_02015D48: .word 0x000001B7
+_02015D4C: .word 0x000001B6
+
+ thumb_func_start FUN_02015D50
+FUN_02015D50: ; 0x02015D50
+ cmp r0, #0x7
+ bhi _02015D70
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02015D60: ; jump table (using 16-bit offset)
+ .short _02015D70 - _02015D60 - 2; case 0
+ .short _02015D70 - _02015D60 - 2; case 1
+ .short _02015D74 - _02015D60 - 2; case 2
+ .short _02015D78 - _02015D60 - 2; case 3
+ .short _02015D74 - _02015D60 - 2; case 4
+ .short _02015D7E - _02015D60 - 2; case 5
+ .short _02015D70 - _02015D60 - 2; case 6
+ .short _02015D74 - _02015D60 - 2; case 7
+_02015D70:
+ mov r0, #0xeb
+ bx lr
+_02015D74:
+ ldr r0, _02015D84 ; =0x000001B5
+ bx lr
+_02015D78:
+ mov r0, #0x6e
+ lsl r0, r0, #0x2
+ bx lr
+_02015D7E:
+ mov r0, #0x6d
+ lsl r0, r0, #0x2
+ bx lr
+ .balign 4
+_02015D84: .word 0x000001B5
+
+ thumb_func_start FUN_02015D88
+FUN_02015D88: ; 0x02015D88
+ push {r3-r7, lr}
+ sub sp, #0x10
+ add r6, r3, #0x0
+ str r0, [sp, #0x0]
+ str r1, [sp, #0x4]
+ str r2, [sp, #0x8]
+ cmp r6, #0x1
+ beq _02015D9C
+ mov r2, #0x1
+ b _02015D9E
+_02015D9C:
+ mov r2, #0x0
+_02015D9E:
+ ldr r0, [sp, #0x8]
+ mov r4, #0x0
+ sub r0, r0, #0x1
+ str r0, [sp, #0xc]
+ beq _02015E18
+ ldr r1, _02015E28 ; =0x020ED734
+ lsl r0, r2, #0x1
+ ldr r5, [sp, #0x4]
+ add r7, r1, r0
+_02015DB0:
+ ldr r0, [sp, #0x0]
+ ldrb r0, [r0, r4]
+ cmp r0, #0xff
+ beq _02015E18
+ cmp r0, #0xf7
+ blo _02015DEA
+ ldr r0, [sp, #0x8]
+ sub r3, r0, #0x1
+ cmp r3, #0xa
+ blo _02015DC6
+ mov r3, #0xa
+_02015DC6:
+ mov r1, #0x0
+ cmp r3, #0x0
+ ble _02015DDC
+ mov r0, #0x6b
+ ldr r2, [sp, #0x4]
+ lsl r0, r0, #0x2
+_02015DD2:
+ add r1, r1, #0x1
+ strh r0, [r2, #0x0]
+ add r2, r2, #0x2
+ cmp r1, r3
+ blt _02015DD2
+_02015DDC:
+ ldr r0, [sp, #0x4]
+ ldr r2, _02015E2C ; =0x0000FFFF
+ lsl r1, r1, #0x1
+ strh r2, [r0, r1]
+ add sp, #0x10
+ mov r0, #0x0
+ pop {r3-r7, pc}
+_02015DEA:
+ lsl r0, r0, #0x2
+ ldrh r0, [r7, r0]
+ cmp r0, #0xea
+ beq _02015DF8
+ cmp r0, #0xeb
+ beq _02015E02
+ b _02015E0C
+_02015DF8:
+ add r0, r6, #0x0
+ bl FUN_02015D14
+ strh r0, [r5, #0x0]
+ b _02015E0E
+_02015E02:
+ add r0, r6, #0x0
+ bl FUN_02015D50
+ strh r0, [r5, #0x0]
+ b _02015E0E
+_02015E0C:
+ strh r0, [r5, #0x0]
+_02015E0E:
+ ldr r0, [sp, #0xc]
+ add r4, r4, #0x1
+ add r5, r5, #0x2
+ cmp r4, r0
+ blo _02015DB0
+_02015E18:
+ ldr r2, _02015E2C ; =0x0000FFFF
+ ldr r0, [sp, #0x4]
+ lsl r1, r4, #0x1
+ strh r2, [r0, r1]
+ mov r0, #0x1
+ add sp, #0x10
+ pop {r3-r7, pc}
+ nop
+_02015E28: .word 0x020ED734
+_02015E2C: .word 0x0000FFFF
+
+ thumb_func_start FUN_02015E30
+FUN_02015E30: ; 0x02015E30
+ ldr r0, _02015E38 ; =0x021C4898
+ mov r1, #0x0
+ str r1, [r0, #0x0]
+ bx lr
+ .balign 4
+_02015E38: .word 0x021C4898
+
+ thumb_func_start FUN_02015E3C
+FUN_02015E3C: ; 0x02015E3C
+ push {r3, lr}
+ ldr r1, _02015E5C ; =0x021C4898
+ mov r2, #0x1
+ str r2, [r1, #0x0]
+ mov r2, #0x0
+ str r2, [r1, #0x10]
+ str r2, [r1, #0x14]
+ str r2, [r1, #0x8]
+ str r2, [r1, #0xc]
+ str r0, [r1, #0x4]
+ bl FUN_02020BF4
+ ldr r2, _02015E5C ; =0x021C4898
+ str r0, [r2, #0x18]
+ str r1, [r2, #0x1c]
+ pop {r3, pc}
+ .balign 4
+_02015E5C: .word 0x021C4898
+
+ thumb_func_start FUN_02015E60
+FUN_02015E60: ; 0x02015E60
+ push {r3-r5, lr}
+ ldr r0, _02015E9C ; =0x021C4898
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ beq _02015E9A
+ bl FUN_02020BF4
+ ldr r2, _02015E9C ; =0x021C4898
+ ldr r3, [r2, #0x18]
+ ldr r2, [r2, #0x1c]
+ sub r0, r0, r3
+ sbc r1, r2
+ bl FUN_02020C14
+ add r5, r1, #0x0
+ ldr r1, _02015E9C ; =0x021C4898
+ add r4, r0, #0x0
+ ldr r3, [r1, #0x8]
+ ldr r2, [r1, #0xc]
+ sub r0, r3, r4
+ sbc r2, r5
+ bhs _02015E9A
+ ldr r0, [r1, #0x4]
+ sub r1, r4, r3
+ bl FUN_02029E54
+ ldr r0, _02015E9C ; =0x021C4898
+ str r4, [r0, #0x8]
+ str r5, [r0, #0xc]
+_02015E9A:
+ pop {r3-r5, pc}
+ .balign 4
+_02015E9C: .word 0x021C4898
+
+ thumb_func_start FUN_02015EA0
+FUN_02015EA0: ; 0x02015EA0
+ push {r3, lr}
+ ldr r3, _02015EC8 ; =0x027E0000
+ ldr r1, _02015ECC ; =0x00003FF8
+ mov r0, #0x1
+ ldr r2, [r3, r1]
+ orr r0, r2
+ str r0, [r3, r1]
+ mov r0, #0x3
+ blx MI_WaitDma
+ ldr r0, _02015ED0 ; =0x021C48B8
+ ldr r0, [r0, #0x1c]
+ bl FUN_0201B5CC
+ ldr r0, _02015ED0 ; =0x021C48B8
+ ldr r1, [r0, #0x30]
+ add r1, r1, #0x1
+ str r1, [r0, #0x30]
+ pop {r3, pc}
+ nop
+_02015EC8: .word 0x027E0000
+_02015ECC: .word 0x00003FF8
+_02015ED0: .word 0x021C48B8
+
+ thumb_func_start FUN_02015ED4
+FUN_02015ED4: ; 0x02015ED4
+ ldr r3, _02015EE8 ; =0x027E0000
+ ldr r1, _02015EEC ; =0x00003FF8
+ mov r0, #0x1
+ ldr r2, [r3, r1]
+ orr r0, r2
+ str r0, [r3, r1]
+ ldr r3, _02015EF0 ; =MI_WaitDma
+ mov r0, #0x3
+ bx r3
+ nop
+_02015EE8: .word 0x027E0000
+_02015EEC: .word 0x00003FF8
+_02015EF0: .word MI_WaitDma
+
+ thumb_func_start FUN_02015EF4
+FUN_02015EF4: ; 0x02015EF4
+ push {r3, lr}
+ mov r0, #0x1
+ blx OS_DisableIrqMask
+ ldr r1, _02015F0C ; =FUN_02015ED4
+ mov r0, #0x1
+ blx OS_SetIrqFunction
+ mov r0, #0x1
+ blx OS_EnableIrqMask
+ pop {r3, pc}
+ .balign 4
+_02015F0C: .word FUN_02015ED4
+
+ thumb_func_start FUN_02015F10
+FUN_02015F10: ; 0x02015F10
+ ldr r2, _02015F18 ; =0x021C48B8
+ str r0, [r2, #0x0]
+ str r1, [r2, #0x4]
+ bx lr
+ .balign 4
+_02015F18: .word 0x021C48B8
+
+ thumb_func_start FUN_02015F1C
+FUN_02015F1C: ; 0x02015F1C
+ push {r3, lr}
+ mov r0, #0x0
+ bl FUN_02015F80
+ ldr r0, _02015F30 ; =0x021C48B8
+ mov r1, #0x0
+ str r1, [r0, #0x8]
+ str r1, [r0, #0xc]
+ pop {r3, pc}
+ nop
+_02015F30: .word 0x021C48B8
+
+ thumb_func_start FUN_02015F34
+FUN_02015F34: ; 0x02015F34
+ push {r3, lr}
+ cmp r0, #0x0
+ bne _02015F4C
+ mov r0, #0x0
+ bl FUN_02015F80
+ ldr r0, _02015F68 ; =0x021C48B8
+ mov r1, #0x0
+ str r1, [r0, #0x8]
+ str r1, [r0, #0xc]
+ mov r0, #0x1
+ pop {r3, pc}
+_02015F4C:
+ ldr r2, _02015F68 ; =0x021C48B8
+ ldr r3, [r2, #0x8]
+ cmp r3, #0x0
+ bne _02015F62
+ str r1, [r2, #0xc]
+ str r0, [r2, #0x8]
+ mov r0, #0x1
+ bl FUN_02015F80
+ mov r0, #0x1
+ pop {r3, pc}
+_02015F62:
+ mov r0, #0x0
+ pop {r3, pc}
+ nop
+_02015F68: .word 0x021C48B8
+
+ thumb_func_start FUN_02015F6C
+FUN_02015F6C: ; 0x02015F6C
+ push {r3, lr}
+ ldr r0, _02015F7C ; =0x021C48B8
+ ldr r1, [r0, #0x8]
+ cmp r1, #0x0
+ beq _02015F7A
+ ldr r0, [r0, #0xc]
+ blx r1
+_02015F7A:
+ pop {r3, pc}
+ .balign 4
+_02015F7C: .word 0x021C48B8
+
+ thumb_func_start FUN_02015F80
+FUN_02015F80: ; 0x02015F80
+ push {r3, lr}
+ ldr r2, _02015FC0 ; =0x04000208
+ ldrh r1, [r2, #0x0]
+ mov r1, #0x0
+ strh r1, [r2, #0x0]
+ cmp r0, #0x0
+ bne _02015F9E
+ ldr r0, [r2, #0x8]
+ mov r0, #0x2
+ blx OS_DisableIrqMask
+ mov r0, #0x0
+ blx GX_HBlankIntr
+ b _02015FB4
+_02015F9E:
+ ldr r0, [r2, #0x8]
+ ldr r1, _02015FC4 ; =FUN_02015F6C
+ mov r0, #0x2
+ blx OS_SetIrqFunction
+ mov r0, #0x2
+ blx OS_EnableIrqMask
+ mov r0, #0x1
+ blx GX_HBlankIntr
+_02015FB4:
+ ldr r1, _02015FC0 ; =0x04000208
+ ldrh r0, [r1, #0x0]
+ mov r0, #0x1
+ strh r0, [r1, #0x0]
+ pop {r3, pc}
+ nop
+_02015FC0: .word 0x04000208
+_02015FC4: .word FUN_02015F6C
+
+ thumb_func_start FUN_02015FC8
+FUN_02015FC8: ; 0x02015FC8
+ push {r3, lr}
+ sub sp, #0x30
+ add r0, sp, #0x10
+ blx OS_GetLowEntropyData
+ add r0, sp, #0x0
+ add r1, sp, #0x10
+ mov r2, #0x20
+ blx MATH_CalcMD5
+ mov r3, #0x0
+ add r1, r3, #0x0
+ add r2, sp, #0x0
+_02015FE2:
+ ldrb r0, [r2, #0x0]
+ add r1, r1, #0x1
+ add r2, r2, #0x1
+ add r3, r3, r0
+ cmp r1, #0x10
+ blo _02015FE2
+ lsl r0, r3, #0x18
+ lsr r3, r0, #0x18
+ mov r0, #0x3
+ tst r0, r3
+ beq _02016002
+ mov r0, #0x3
+_02015FFA:
+ add r3, r3, #0x1
+ add r1, r3, #0x0
+ tst r1, r0
+ bne _02015FFA
+_02016002:
+ ldr r0, _02016010 ; =0x020EDB10
+ mov r1, #0x4
+ mov r2, #0x5c
+ bl FUN_020166C8
+ add sp, #0x30
+ pop {r3, pc}
+ .balign 4
+_02016010: .word 0x020EDB10
+
+ thumb_func_start InitSystemForTheGame
+InitSystemForTheGame: ; 0x02016014
+ push {r3-r5, lr}
+ blx OS_Init
+ blx FX_Init
+ ldr r2, _02016124 ; =0x04000304
+ ldr r0, _02016128 ; =0xFFFFFDF1
+ ldrh r1, [r2, #0x0]
+ and r1, r0
+ ldr r0, _0201612C ; =0x0000020E
+ orr r0, r1
+ strh r0, [r2, #0x0]
+ blx GX_Init
+ blx OS_InitTick
+ bl FUN_02015FC8
+ mov r0, #0xa0
+ bl FUN_0201B578
+ add r1, r0, #0x0
+ mov r0, #0x0
+ mov r2, #0x4
+ blx OS_AllocFromArenaLo
+ add r1, r0, #0x0
+ mov r0, #0xa0
+ bl FUN_0201B580
+ ldr r1, _02016130 ; =0x021C48B8
+ str r0, [r1, #0x18]
+ mov r0, #0x10
+ bl FUN_0201B578
+ add r1, r0, #0x0
+ mov r0, #0x0
+ mov r2, #0x4
+ blx OS_AllocFromArenaLo
+ add r1, r0, #0x0
+ mov r0, #0x10
+ bl FUN_0201B580
+ ldr r1, _02016130 ; =0x021C48B8
+ str r0, [r1, #0x1c]
+ mov r0, #0x20
+ bl FUN_0201B578
+ add r1, r0, #0x0
+ mov r0, #0x0
+ mov r2, #0x4
+ blx OS_AllocFromArenaLo
+ add r1, r0, #0x0
+ mov r0, #0x20
+ bl FUN_0201B580
+ ldr r1, _02016130 ; =0x021C48B8
+ str r0, [r1, #0x20]
+ mov r0, #0x4
+ bl FUN_0201B578
+ add r1, r0, #0x0
+ mov r0, #0x0
+ mov r2, #0x4
+ blx OS_AllocFromArenaLo
+ add r1, r0, #0x0
+ mov r0, #0x4
+ bl FUN_0201B580
+ ldr r1, _02016130 ; =0x021C48B8
+ str r0, [r1, #0x24]
+ blx GX_DispOff
+ ldr r2, _02016134 ; =0x04001000
+ ldr r0, _02016138 ; =0xFFFEFFFF
+ ldr r1, [r2, #0x0]
+ and r0, r1
+ str r0, [r2, #0x0]
+ ldr r2, _02016124 ; =0x04000304
+ ldrh r1, [r2, #0x0]
+ lsr r0, r2, #0xb
+ orr r0, r1
+ strh r0, [r2, #0x0]
+ ldr r1, _0201613C ; =FUN_02015EA0
+ mov r0, #0x1
+ blx OS_SetIrqFunction
+ mov r0, #0x1
+ blx OS_EnableIrqMask
+ mov r0, #0x1
+ lsl r0, r0, #0x12
+ blx OS_EnableIrqMask
+ ldr r1, _02016140 ; =0x04000208
+ ldrh r0, [r1, #0x0]
+ mov r0, #0x1
+ strh r0, [r1, #0x0]
+ blx GX_VBlankIntr
+ mov r0, #0x1
+ blx FS_Init
+ bl FUN_02022450
+ mov r0, #0x0
+ add r1, r0, #0x0
+ blx FS_TryLoadTable
+ add r4, r0, #0x0
+ mov r0, #0x0
+ add r1, r4, #0x0
+ mov r2, #0x4
+ blx OS_AllocFromArenaLo
+ add r5, r0, #0x0
+ bne _02016108
+ bl ErrorHandling
+_02016108:
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ blx FS_TryLoadTable
+ ldr r0, _02016130 ; =0x021C48B8
+ mov r1, #0x0
+ str r1, [r0, #0x0]
+ str r1, [r0, #0x8]
+ str r1, [r0, #0x10]
+ str r1, [r0, #0x14]
+ str r1, [r0, #0x2c]
+ ldr r0, _02016144 ; =0x021C4918
+ strb r1, [r0, #0x5]
+ pop {r3-r5, pc}
+ .balign 4
+_02016124: .word 0x04000304
+_02016128: .word 0xFFFFFDF1
+_0201612C: .word 0x0000020E
+_02016130: .word 0x021C48B8
+_02016134: .word 0x04001000
+_02016138: .word 0xFFFEFFFF
+_0201613C: .word FUN_02015EA0
+_02016140: .word 0x04000208
+_02016144: .word 0x021C4918
+
+ thumb_func_start InitGraphicMemory
+InitGraphicMemory: ; 0x02016148
+ push {r3, lr}
+ ldr r0, _02016198 ; =0x000001FF
+ blx GX_SetBankForLCDC
+ mov r1, #0x1a
+ mov r2, #0x29
+ mov r0, #0x0
+ lsl r1, r1, #0x16
+ lsl r2, r2, #0xe
+ blx MIi_CpuClearFast
+ blx GX_DisableBankForLCDC
+ mov r1, #0x7
+ mov r2, #0x1
+ mov r0, #0xc0
+ lsl r1, r1, #0x18
+ lsl r2, r2, #0xa
+ blx MIi_CpuClearFast
+ mov r2, #0x1
+ ldr r1, _0201619C ; =0x07000400
+ mov r0, #0xc0
+ lsl r2, r2, #0xa
+ blx MIi_CpuClearFast
+ mov r1, #0x5
+ mov r2, #0x1
+ mov r0, #0x0
+ lsl r1, r1, #0x18
+ lsl r2, r2, #0xa
+ blx MIi_CpuClearFast
+ mov r2, #0x1
+ ldr r1, _020161A0 ; =0x05000400
+ mov r0, #0x0
+ lsl r2, r2, #0xa
+ blx MIi_CpuClearFast
+ pop {r3, pc}
+ .balign 4
+_02016198: .word 0x000001FF
+_0201619C: .word 0x07000400
+_020161A0: .word 0x05000400
+
+ thumb_func_start FUN_020161A4
+FUN_020161A4: ; 0x020161A4
+ push {r4-r6, lr}
+ sub sp, #0x48
+ add r6, r0, #0x0
+ add r4, r1, #0x0
+ add r0, sp, #0x0
+ blx FS_InitFile
+ add r0, sp, #0x0
+ add r1, r4, #0x0
+ blx FS_OpenFile
+ cmp r0, #0x0
+ beq _020161F0
+ ldr r1, [sp, #0x28]
+ ldr r0, [sp, #0x24]
+ sub r5, r1, r0
+ add r0, r6, #0x0
+ add r1, r5, #0x0
+ bl FUN_02016998
+ add r4, r0, #0x0
+ beq _020161E8
+ add r0, sp, #0x0
+ add r1, r4, #0x0
+ add r2, r5, #0x0
+ blx FS_ReadFile
+ cmp r5, r0
+ beq _020161E8
+ add r0, r6, #0x0
+ add r1, r4, #0x0
+ bl FUN_02016A8C
+ mov r4, #0x0
+_020161E8:
+ add r0, sp, #0x0
+ blx FS_CloseFile
+ b _020161F2
+_020161F0:
+ mov r4, #0x0
+_020161F2:
+ add r0, r4, #0x0
+ add sp, #0x48
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_020161F8
+FUN_020161F8: ; 0x020161F8
+ push {r3-r5, lr}
+ sub sp, #0x48
+ add r5, r0, #0x0
+ add r0, sp, #0x0
+ add r4, r1, #0x0
+ blx FS_InitFile
+ add r0, sp, #0x0
+ add r1, r5, #0x0
+ blx FS_OpenFile
+ cmp r0, #0x0
+ beq _0201622A
+ ldr r1, [sp, #0x28]
+ ldr r0, [sp, #0x24]
+ sub r2, r1, r0
+ ldr r1, [r4, #0x0]
+ cmp r1, #0x0
+ beq _02016224
+ add r0, sp, #0x0
+ blx FS_ReadFile
+_02016224:
+ add r0, sp, #0x0
+ blx FS_CloseFile
+_0201622A:
+ add sp, #0x48
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_02016230
+FUN_02016230: ; 0x02016230
+ push {r3-r7, lr}
+ sub sp, #0x8
+ str r0, [sp, #0x0]
+ blx strlen
+ lsl r0, r0, #0x10
+ lsr r3, r0, #0x10
+ lsr r2, r3, #0x1f
+ lsl r1, r3, #0x1e
+ sub r1, r1, r2
+ mov r0, #0x1e
+ ror r1, r0
+ add r0, r2, r1
+ beq _02016258
+ lsr r0, r3, #0x2
+ add r0, r0, #0x1
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #0x4]
+ b _0201625E
+_02016258:
+ lsl r0, r3, #0xe
+ lsr r0, r0, #0x10
+ str r0, [sp, #0x4]
+_0201625E:
+ ldr r0, [sp, #0x4]
+ mov r7, #0x0
+ mov r12, r7
+ cmp r0, #0x0
+ ble _0201629A
+ add r6, r7, #0x0
+ add r4, r7, #0x0
+_0201626C:
+ ldr r2, [sp, #0x0]
+ mov r1, #0x0
+ add r0, r1, #0x0
+ add r2, r2, r6
+ add r3, r1, #0x0
+_02016276:
+ ldrsb r5, [r2, r4]
+ cmp r5, #0x0
+ beq _0201628A
+ lsl r5, r3
+ add r0, r0, #0x1
+ orr r1, r5
+ add r2, r2, #0x1
+ add r3, #0x8
+ cmp r0, #0x4
+ blt _02016276
+_0201628A:
+ mov r0, r12
+ eor r7, r1
+ add r1, r0, #0x1
+ ldr r0, [sp, #0x4]
+ add r6, r6, #0x4
+ mov r12, r1
+ cmp r1, r0
+ blt _0201626C
+_0201629A:
+ add r0, r7, #0x0
+ add sp, #0x8
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_020162A0
+FUN_020162A0: ; 0x020162A0
+ ldr r3, _020162C4 ; =0x021C4928
+ mov r2, #0x0
+_020162A4:
+ ldr r1, [r3, #0x4]
+ cmp r0, r1
+ bne _020162B4
+ ldr r1, [r3, #0x0]
+ cmp r1, #0x0
+ beq _020162B4
+ add r0, r2, #0x0
+ bx lr
+_020162B4:
+ add r2, r2, #0x1
+ add r3, #0x8
+ cmp r2, #0x80
+ blt _020162A4
+ mov r0, #0x0
+ mvn r0, r0
+ bx lr
+ nop
+_020162C4: .word 0x021C4928
+
+ thumb_func_start FUN_020162C8
+FUN_020162C8: ; 0x020162C8
+ push {r3-r4}
+ ldr r3, _020162F4 ; =0x021C4928
+ mov r4, #0x0
+_020162CE:
+ ldr r2, [r3, #0x0]
+ cmp r2, #0x0
+ bne _020162E4
+ ldr r2, _020162F4 ; =0x021C4928
+ lsl r3, r4, #0x3
+ str r0, [r2, r3]
+ ldr r0, _020162F8 ; =0x021C492C
+ str r1, [r0, r3]
+ add r0, r4, #0x0
+ pop {r3-r4}
+ bx lr
+_020162E4:
+ add r4, r4, #0x1
+ add r3, #0x8
+ cmp r4, #0x80
+ blt _020162CE
+ mov r0, #0x0
+ mvn r0, r0
+ pop {r3-r4}
+ bx lr
+ .balign 4
+_020162F4: .word 0x021C4928
+_020162F8: .word 0x021C492C
+
+ thumb_func_start FUN_020162FC
+FUN_020162FC: ; 0x020162FC
+ push {r3-r7, lr}
+ mov r6, #0x0
+ ldr r5, _02016320 ; =0x021C4D20
+ mov r4, #0x7f
+ sub r7, r6, #0x1
+_02016306:
+ ldr r0, [r5, #0x0]
+ cmp r0, #0x0
+ beq _02016314
+ bl FUN_02016A18
+ str r6, [r5, #0x0]
+ str r6, [r5, #0x4]
+_02016314:
+ sub r4, r4, #0x1
+ sub r5, #0x8
+ cmp r4, r7
+ bgt _02016306
+ pop {r3-r7, pc}
+ nop
+_02016320: .word 0x021C4D20
+
+ thumb_func_start FUN_02016324
+FUN_02016324: ; 0x02016324
+ push {r3-r7, lr}
+ sub sp, #0x68
+ add r2, r0, #0x0
+ mov r5, #0x0
+ ldrsb r0, [r2, r5]
+ add r4, r1, #0x0
+ cmp r0, #0x21
+ add r0, sp, #0x0
+ bne _02016340
+ add r1, r2, #0x1
+ blx strcpy
+ mov r5, #0x1
+ b _02016346
+_02016340:
+ add r1, r2, #0x0
+ blx strcpy
+_02016346:
+ add r0, sp, #0x0
+ bl FUN_02016230
+ add r7, r0, #0x0
+ bl FUN_020162A0
+ cmp r0, #0x0
+ blt _02016362
+ cmp r5, #0x0
+ bne _02016362
+ lsl r1, r0, #0x3
+ ldr r0, _020163B8 ; =0x021C4928
+ ldr r4, [r0, r1]
+ b _020163B2
+_02016362:
+ add r0, sp, #0x20
+ blx FS_InitFile
+ add r0, sp, #0x20
+ add r1, sp, #0x0
+ blx FS_OpenFile
+ cmp r0, #0x0
+ beq _020163B0
+ ldr r1, [sp, #0x48]
+ ldr r0, [sp, #0x44]
+ sub r6, r1, r0
+ add r0, r4, #0x0
+ add r1, r6, #0x0
+ bl FUN_02016998
+ add r4, r0, #0x0
+ beq _0201639C
+ add r0, sp, #0x20
+ add r1, r4, #0x0
+ add r2, r6, #0x0
+ blx FS_ReadFile
+ cmp r6, r0
+ beq _0201639C
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ mov r4, #0x0
+_0201639C:
+ add r0, sp, #0x20
+ blx FS_CloseFile
+ cmp r5, #0x0
+ bne _020163B2
+ add r0, r4, #0x0
+ add r1, r7, #0x0
+ bl FUN_020162C8
+ b _020163B2
+_020163B0:
+ mov r4, #0x0
+_020163B2:
+ add r0, r4, #0x0
+ add sp, #0x68
+ pop {r3-r7, pc}
+ .balign 4
+_020163B8: .word 0x021C4928
+
+ thumb_func_start FUN_020163BC
+FUN_020163BC: ; 0x020163BC
+ push {r3, lr}
+ sub sp, #0x8
+ ldr r0, _0201641C ; =0x021C48B8
+ mov r2, #0x0
+ str r2, [r0, #0x34]
+ str r2, [r0, #0x38]
+ str r2, [r0, #0x3c]
+ str r2, [r0, #0x40]
+ str r2, [r0, #0x44]
+ str r2, [r0, #0x48]
+ str r2, [r0, #0x4c]
+ str r2, [r0, #0x50]
+ mov r1, #0x8
+ str r1, [r0, #0x54]
+ mov r1, #0xf
+ str r1, [r0, #0x58]
+ ldr r0, _02016420 ; =0x021C48F8
+ strh r2, [r0, #0x1c]
+ strh r2, [r0, #0x1e]
+ strh r2, [r0, #0x20]
+ strh r2, [r0, #0x22]
+ ldr r0, _02016424 ; =0x021C4918
+ strb r2, [r0, #0x4]
+ blx TP_Init
+ add r0, sp, #0x0
+ blx TP_GetUserInfo
+ cmp r0, #0x1
+ add r0, sp, #0x0
+ bne _02016402
+ blx TP_SetCalibrateParam
+ add sp, #0x8
+ pop {r3, pc}
+_02016402:
+ ldr r1, _02016428 ; =0x000002AE
+ strh r1, [r0, #0x0]
+ ldr r1, _0201642C ; =0x0000058C
+ strh r1, [r0, #0x2]
+ ldr r1, _02016430 ; =0x00000E25
+ strh r1, [r0, #0x4]
+ ldr r1, _02016434 ; =0x00001208
+ strh r1, [r0, #0x6]
+ add r0, sp, #0x0
+ blx TP_SetCalibrateParam
+ add sp, #0x8
+ pop {r3, pc}
+ .balign 4
+_0201641C: .word 0x021C48B8
+_02016420: .word 0x021C48F8
+_02016424: .word 0x021C4918
+_02016428: .word 0x000002AE
+_0201642C: .word 0x0000058C
+_02016430: .word 0x00000E25
+_02016434: .word 0x00001208
+
+ thumb_func_start FUN_02016438
+FUN_02016438: ; 0x02016438
+ ldr r1, _02016440 ; =0x021C4918
+ strb r0, [r1, #0x6]
+ bx lr
+ nop
+_02016440: .word 0x021C4918
+
+ thumb_func_start FUN_02016444
+FUN_02016444: ; 0x02016444
+ ldr r1, _02016450 ; =0x021C4918
+ ldrb r2, [r1, #0x7]
+ orr r0, r2
+ strb r0, [r1, #0x7]
+ bx lr
+ nop
+_02016450: .word 0x021C4918
+
+ thumb_func_start FUN_02016454
+FUN_02016454: ; 0x02016454
+ ldr r1, _02016460 ; =0x021C4918
+ mvn r0, r0
+ ldrb r2, [r1, #0x7]
+ and r0, r2
+ strb r0, [r1, #0x7]
+ bx lr
+ .balign 4
+_02016460: .word 0x021C4918
+
+ thumb_func_start FUN_02016464
+FUN_02016464: ; 0x02016464
+ push {r4, lr}
+ sub sp, #0x10
+ ldr r2, _02016550 ; =0x027FFFA8
+ mov r0, #0x2
+ ldrh r1, [r2, #0x0]
+ lsl r0, r0, #0xe
+ and r0, r1
+ asr r0, r0, #0xf
+ beq _0201648A
+ ldr r0, _02016554 ; =0x021C48B8
+ mov r1, #0x0
+ str r1, [r0, #0x48]
+ str r1, [r0, #0x44]
+ str r1, [r0, #0x4c]
+ ldr r0, _02016558 ; =0x021C48F8
+ add sp, #0x10
+ strh r1, [r0, #0x20]
+ strh r1, [r0, #0x22]
+ pop {r4, pc}
+_0201648A:
+ ldr r0, _0201655C ; =0x04000130
+ ldrh r1, [r0, #0x0]
+ ldrh r0, [r2, #0x0]
+ orr r1, r0
+ ldr r0, _02016560 ; =0x00002FFF
+ eor r1, r0
+ and r0, r1
+ ldr r1, _02016554 ; =0x021C48B8
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ ldr r2, [r1, #0x38]
+ add r3, r0, #0x0
+ eor r3, r2
+ and r3, r0
+ str r3, [r1, #0x3c]
+ str r3, [r1, #0x40]
+ cmp r0, #0x0
+ beq _020164C2
+ cmp r2, r0
+ bne _020164C2
+ ldr r2, [r1, #0x50]
+ sub r2, r2, #0x1
+ str r2, [r1, #0x50]
+ bne _020164C8
+ str r0, [r1, #0x40]
+ ldr r2, [r1, #0x54]
+ str r2, [r1, #0x50]
+ b _020164C8
+_020164C2:
+ ldr r1, _02016554 ; =0x021C48B8
+ ldr r2, [r1, #0x58]
+ str r2, [r1, #0x50]
+_020164C8:
+ ldr r1, _02016554 ; =0x021C48B8
+ str r0, [r1, #0x38]
+ ldr r2, [r1, #0x3c]
+ str r2, [r1, #0x48]
+ str r0, [r1, #0x44]
+ ldr r0, [r1, #0x40]
+ str r0, [r1, #0x4c]
+ bl FUN_02016568
+ ldr r0, _02016564 ; =0x021C4918
+ ldrb r0, [r0, #0x4]
+ cmp r0, #0x0
+ bne _020164F4
+ add r4, sp, #0x8
+_020164E4:
+ blx TP_RequestSamplingAsync
+ add r0, r4, #0x0
+ blx TP_WaitRawResult
+ cmp r0, #0x0
+ bne _020164E4
+ b _020164FA
+_020164F4:
+ add r0, sp, #0x8
+ blx TP_GetLatestRawPointInAuto
+_020164FA:
+ add r0, sp, #0x0
+ add r1, sp, #0x8
+ blx TP_GetCalibratedPoint
+ add r1, sp, #0x0
+ ldrh r3, [r1, #0x6]
+ cmp r3, #0x0
+ bne _02016516
+ ldrh r2, [r1, #0x0]
+ ldr r0, _02016558 ; =0x021C48F8
+ strh r2, [r0, #0x1c]
+ ldrh r1, [r1, #0x2]
+ strh r1, [r0, #0x1e]
+ b _0201653A
+_02016516:
+ ldr r0, _02016558 ; =0x021C48F8
+ ldrh r2, [r0, #0x22]
+ cmp r2, #0x0
+ beq _02016536
+ cmp r3, #0x1
+ beq _0201652A
+ cmp r3, #0x2
+ beq _02016530
+ cmp r3, #0x3
+ b _0201653A
+_0201652A:
+ ldrh r1, [r1, #0x2]
+ strh r1, [r0, #0x1e]
+ b _0201653A
+_02016530:
+ ldrh r1, [r1, #0x0]
+ strh r1, [r0, #0x1c]
+ b _0201653A
+_02016536:
+ mov r0, #0x0
+ strh r0, [r1, #0x4]
+_0201653A:
+ add r0, sp, #0x0
+ ldrh r2, [r0, #0x4]
+ ldr r0, _02016558 ; =0x021C48F8
+ ldrh r1, [r0, #0x22]
+ eor r1, r2
+ and r1, r2
+ strh r1, [r0, #0x20]
+ strh r2, [r0, #0x22]
+ add sp, #0x10
+ pop {r4, pc}
+ nop
+_02016550: .word 0x027FFFA8
+_02016554: .word 0x021C48B8
+_02016558: .word 0x021C48F8
+_0201655C: .word 0x04000130
+_02016560: .word 0x00002FFF
+_02016564: .word 0x021C4918
+
+ thumb_func_start FUN_02016568
+FUN_02016568: ; 0x02016568
+ ldr r0, _02016690 ; =0x021C48B8
+ ldr r1, [r0, #0x34]
+ cmp r1, #0x3
+ bls _02016572
+ b _0201668C
+_02016572:
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #0x6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_0201657E: ; jump table (using 16-bit offset)
+ .short _0201668C - _0201657E - 2; case 0
+ .short _02016586 - _0201657E - 2; case 1
+ .short _020165BC - _0201657E - 2; case 2
+ .short _02016642 - _0201657E - 2; case 3
+_02016586:
+ ldr r2, [r0, #0x48]
+ mov r1, #0x8
+ add r3, r2, #0x0
+ tst r3, r1
+ beq _02016596
+ lsl r1, r1, #0x7
+ orr r1, r2
+ str r1, [r0, #0x48]
+_02016596:
+ ldr r1, _02016690 ; =0x021C48B8
+ mov r0, #0x8
+ ldr r2, [r1, #0x44]
+ add r3, r2, #0x0
+ tst r3, r0
+ beq _020165A8
+ lsl r0, r0, #0x7
+ orr r0, r2
+ str r0, [r1, #0x44]
+_020165A8:
+ ldr r1, _02016690 ; =0x021C48B8
+ mov r0, #0x8
+ ldr r2, [r1, #0x4c]
+ add r3, r2, #0x0
+ tst r3, r0
+ beq _0201668C
+ lsl r0, r0, #0x7
+ orr r0, r2
+ str r0, [r1, #0x4c]
+ bx lr
+_020165BC:
+ ldr r3, [r0, #0x48]
+ mov r0, #0x1
+ lsl r0, r0, #0xa
+ add r2, r3, #0x0
+ mov r1, #0x0
+ tst r2, r0
+ beq _020165CE
+ lsl r0, r0, #0x1
+ orr r1, r0
+_020165CE:
+ mov r0, #0x2
+ lsl r0, r0, #0xa
+ add r2, r3, #0x0
+ tst r2, r0
+ beq _020165DC
+ lsr r0, r0, #0x1
+ orr r1, r0
+_020165DC:
+ ldr r2, _02016690 ; =0x021C48B8
+ ldr r0, _02016694 ; =0x0000F3FF
+ ldr r3, [r2, #0x48]
+ and r0, r3
+ orr r0, r1
+ str r0, [r2, #0x48]
+ ldr r3, [r2, #0x44]
+ mov r1, #0x1
+ lsl r1, r1, #0xa
+ add r2, r3, #0x0
+ mov r0, #0x0
+ tst r2, r1
+ beq _020165FA
+ lsl r1, r1, #0x1
+ orr r0, r1
+_020165FA:
+ mov r1, #0x2
+ lsl r1, r1, #0xa
+ add r2, r3, #0x0
+ tst r2, r1
+ beq _02016608
+ lsr r1, r1, #0x1
+ orr r0, r1
+_02016608:
+ ldr r2, _02016690 ; =0x021C48B8
+ ldr r1, _02016694 ; =0x0000F3FF
+ ldr r3, [r2, #0x44]
+ and r1, r3
+ orr r0, r1
+ str r0, [r2, #0x44]
+ ldr r3, [r2, #0x4c]
+ mov r1, #0x1
+ lsl r1, r1, #0xa
+ add r2, r3, #0x0
+ mov r0, #0x0
+ tst r2, r1
+ beq _02016626
+ lsl r1, r1, #0x1
+ orr r0, r1
+_02016626:
+ mov r1, #0x2
+ lsl r1, r1, #0xa
+ add r2, r3, #0x0
+ tst r2, r1
+ beq _02016634
+ lsr r1, r1, #0x1
+ orr r0, r1
+_02016634:
+ ldr r2, _02016690 ; =0x021C48B8
+ ldr r1, _02016694 ; =0x0000F3FF
+ ldr r3, [r2, #0x4c]
+ and r1, r3
+ orr r0, r1
+ str r0, [r2, #0x4c]
+ bx lr
+_02016642:
+ mov r1, #0x2
+ ldr r2, [r0, #0x48]
+ lsl r1, r1, #0x8
+ tst r1, r2
+ beq _02016652
+ mov r1, #0x1
+ orr r1, r2
+ str r1, [r0, #0x48]
+_02016652:
+ ldr r1, _02016690 ; =0x021C48B8
+ mov r0, #0x2
+ ldr r2, [r1, #0x44]
+ lsl r0, r0, #0x8
+ tst r0, r2
+ beq _02016664
+ mov r0, #0x1
+ orr r0, r2
+ str r0, [r1, #0x44]
+_02016664:
+ ldr r1, _02016690 ; =0x021C48B8
+ mov r0, #0x2
+ ldr r2, [r1, #0x4c]
+ lsl r0, r0, #0x8
+ tst r0, r2
+ beq _02016676
+ mov r0, #0x1
+ orr r0, r2
+ str r0, [r1, #0x4c]
+_02016676:
+ ldr r1, _02016690 ; =0x021C48B8
+ ldr r0, _02016698 ; =0x0000FCFF
+ ldr r2, [r1, #0x48]
+ and r2, r0
+ str r2, [r1, #0x48]
+ ldr r2, [r1, #0x44]
+ and r2, r0
+ str r2, [r1, #0x44]
+ ldr r2, [r1, #0x4c]
+ and r0, r2
+ str r0, [r1, #0x4c]
+_0201668C:
+ bx lr
+ nop
+_02016690: .word 0x021C48B8
+_02016694: .word 0x0000F3FF
+_02016698: .word 0x0000FCFF
+
+ thumb_func_start FUN_0201669C
+FUN_0201669C: ; 0x0201669C
+ ldr r2, _020166A4 ; =0x021C48B8
+ str r0, [r2, #0x54]
+ str r1, [r2, #0x58]
+ bx lr
+ .balign 4
+_020166A4: .word 0x021C48B8
+
+ thumb_func_start FUN_020166A8
+FUN_020166A8: ; 0x020166A8
+ ldr r1, _020166B4 ; =0x021C4918
+ ldrb r2, [r1, #0x8]
+ orr r0, r2
+ strb r0, [r1, #0x8]
+ bx lr
+ nop
+_020166B4: .word 0x021C4918
+
+ thumb_func_start FUN_020166B8
+FUN_020166B8: ; 0x020166B8
+ ldr r1, _020166C4 ; =0x021C4918
+ mvn r0, r0
+ ldrb r2, [r1, #0x8]
+ and r0, r2
+ strb r0, [r1, #0x8]
+ bx lr
+ .balign 4
+_020166C4: .word 0x021C4918
+
+ thumb_func_start FUN_020166C8
+FUN_020166C8: ; 0x020166C8
+ push {r3-r7, lr}
+ sub sp, #0x8
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ add r0, r4, #0x0
+ str r0, [sp, #0x4]
+ add r0, #0x18
+ add r6, r2, #0x0
+ str r0, [sp, #0x4]
+ cmp r6, r0
+ bhs _020166E0
+ add r6, r0, #0x0
+_020166E0:
+ cmp r3, #0x0
+ beq _020166FE
+ mov r0, #0x3
+ tst r0, r3
+ beq _020166F4
+ mov r0, #0x3
+_020166EC:
+ add r3, r3, #0x1
+ add r1, r3, #0x0
+ tst r1, r0
+ bne _020166EC
+_020166F4:
+ mov r0, #0x0
+ add r1, r3, #0x0
+ mov r2, #0x4
+ blx OS_AllocFromArenaLo
+_020166FE:
+ ldr r1, [sp, #0x4]
+ lsl r7, r6, #0x1
+ lsl r2, r1, #0x1
+ add r1, r1, r2
+ add r1, r1, #0x1
+ lsl r1, r1, #0x2
+ add r1, r7, r1
+ mov r0, #0x0
+ add r1, r6, r1
+ mov r2, #0x4
+ blx OS_AllocFromArenaLo
+ ldr r1, _020167F0 ; =0x021C4D28
+ str r0, [r1, #0x0]
+ ldr r1, [sp, #0x4]
+ add r1, r1, #0x1
+ lsl r1, r1, #0x2
+ add r1, r0, r1
+ ldr r0, _020167F0 ; =0x021C4D28
+ str r1, [r0, #0x4]
+ ldr r0, [sp, #0x4]
+ lsl r0, r0, #0x2
+ add r2, r1, r0
+ ldr r1, _020167F0 ; =0x021C4D28
+ str r2, [r1, #0x8]
+ add r1, r2, r0
+ ldr r0, _020167F0 ; =0x021C4D28
+ str r1, [r0, #0xc]
+ add r1, r1, r7
+ str r1, [r0, #0x10]
+ strh r6, [r0, #0x14]
+ strh r4, [r0, #0x16]
+ ldr r0, [sp, #0x4]
+ mov r7, #0x0
+ lsl r0, r0, #0x10
+ lsr r1, r0, #0x10
+ ldr r0, _020167F0 ; =0x021C4D28
+ cmp r4, #0x0
+ strh r1, [r0, #0x1a]
+ strh r1, [r0, #0x18]
+ bls _020167A0
+ str r7, [sp, #0x0]
+_02016752:
+ ldr r0, [r5, #0x4]
+ cmp r0, #0x0
+ beq _0201675C
+ cmp r0, #0x2
+ beq _02016768
+_0201675C:
+ ldr r1, [r5, #0x0]
+ mov r0, #0x0
+ mov r2, #0x4
+ blx OS_AllocFromArenaLo
+ b _02016772
+_02016768:
+ ldr r1, [r5, #0x0]
+ mov r0, #0x2
+ mov r2, #0x4
+ blx OS_AllocFromArenaHi
+_02016772:
+ cmp r0, #0x0
+ beq _0201678E
+ ldr r1, [r5, #0x0]
+ mov r2, #0x0
+ blx tempName_NNS_FndCreateExpHeapEx
+ ldr r1, _020167F0 ; =0x021C4D28
+ ldr r2, [r1, #0x0]
+ ldr r1, [sp, #0x0]
+ str r0, [r2, r1]
+ ldr r0, _020167F0 ; =0x021C4D28
+ ldr r0, [r0, #0x10]
+ strb r7, [r0, r7]
+ b _02016792
+_0201678E:
+ bl ErrorHandling
+_02016792:
+ ldr r0, [sp, #0x0]
+ add r7, r7, #0x1
+ add r0, r0, #0x4
+ add r5, #0x8
+ str r0, [sp, #0x0]
+ cmp r7, r4
+ blo _02016752
+_020167A0:
+ ldr r0, [sp, #0x4]
+ add r1, r0, #0x1
+ cmp r4, r1
+ bhs _020167C0
+ ldr r3, _020167F0 ; =0x021C4D28
+ lsl r2, r4, #0x2
+ mov r0, #0x0
+_020167AE:
+ ldr r5, [r3, #0x0]
+ str r0, [r5, r2]
+ ldrh r7, [r3, #0x1a]
+ ldr r5, [r3, #0x10]
+ add r2, r2, #0x4
+ strb r7, [r5, r4]
+ add r4, r4, #0x1
+ cmp r4, r1
+ blo _020167AE
+_020167C0:
+ cmp r4, r6
+ bhs _020167D2
+ ldr r0, _020167F0 ; =0x021C4D28
+_020167C6:
+ ldrh r2, [r0, #0x1a]
+ ldr r1, [r0, #0x10]
+ strb r2, [r1, r4]
+ add r4, r4, #0x1
+ cmp r4, r6
+ blo _020167C6
+_020167D2:
+ mov r4, #0x0
+ cmp r6, #0x0
+ bls _020167EA
+ ldr r0, _020167F0 ; =0x021C4D28
+ add r3, r4, #0x0
+ add r2, r4, #0x0
+_020167DE:
+ ldr r1, [r0, #0xc]
+ add r4, r4, #0x1
+ strh r2, [r1, r3]
+ add r3, r3, #0x2
+ cmp r4, r6
+ blo _020167DE
+_020167EA:
+ add sp, #0x8
+ pop {r3-r7, pc}
+ nop
+_020167F0: .word 0x021C4D28
+
+ thumb_func_start FUN_020167F4
+FUN_020167F4: ; 0x020167F4
+ ldr r1, _02016818 ; =0x021C4D28
+ ldrh r0, [r1, #0x16]
+ ldrh r3, [r1, #0x18]
+ cmp r0, r3
+ bge _02016812
+ ldr r2, [r1, #0x0]
+ lsl r1, r0, #0x2
+ add r2, r2, r1
+_02016804:
+ ldr r1, [r2, #0x0]
+ cmp r1, #0x0
+ beq _02016816
+ add r0, r0, #0x1
+ add r2, r2, #0x4
+ cmp r0, r3
+ blt _02016804
+_02016812:
+ mov r0, #0x0
+ mvn r0, r0
+_02016816:
+ bx lr
+ .balign 4
+_02016818: .word 0x021C4D28
+
+ thumb_func_start FUN_0201681C
+FUN_0201681C: ; 0x0201681C
+ push {r3, lr}
+ mov r3, #0x4
+ bl FUN_02016834
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_02016828
+FUN_02016828: ; 0x02016828
+ push {r3, lr}
+ mov r3, #0x3
+ mvn r3, r3
+ bl FUN_02016834
+ pop {r3, pc}
+
+ thumb_func_start FUN_02016834
+FUN_02016834: ; 0x02016834
+ push {r3-r7, lr}
+ sub sp, #0x8
+ add r4, r0, #0x0
+ add r5, r1, #0x0
+ str r2, [sp, #0x0]
+ add r7, r3, #0x0
+ blx OS_GetProcMode
+ cmp r0, #0x12
+ bne _0201684C
+ bl ErrorHandling
+_0201684C:
+ ldr r1, _020168CC ; =0x021C4D28
+ ldr r0, [r1, #0x10]
+ ldrh r3, [r1, #0x1a]
+ ldrb r2, [r0, r5]
+ cmp r3, r2
+ bne _020168C2
+ ldrb r0, [r0, r4]
+ ldr r1, [r1, #0x0]
+ lsl r0, r0, #0x2
+ ldr r6, [r1, r0]
+ cmp r6, #0x0
+ beq _020168BC
+ ldr r1, [sp, #0x0]
+ add r0, r6, #0x0
+ add r2, r7, #0x0
+ blx tempName_NNS_FndAllocFromExpHeapEx
+ str r0, [sp, #0x4]
+ cmp r0, #0x0
+ beq _020168B6
+ bl FUN_020167F4
+ add r7, r0, #0x0
+ bmi _020168B0
+ ldr r0, [sp, #0x4]
+ ldr r1, [sp, #0x0]
+ mov r2, #0x0
+ lsl r4, r7, #0x2
+ blx tempName_NNS_FndCreateExpHeapEx
+ ldr r1, _020168CC ; =0x021C4D28
+ ldr r2, [r1, #0x0]
+ str r0, [r2, r4]
+ ldr r0, [r1, #0x0]
+ ldr r0, [r0, r4]
+ cmp r0, #0x0
+ beq _020168AA
+ ldr r0, [r1, #0x4]
+ str r6, [r0, r4]
+ ldr r0, [sp, #0x4]
+ ldr r2, [r1, #0x8]
+ add sp, #0x8
+ str r0, [r2, r4]
+ ldr r0, [r1, #0x10]
+ strb r7, [r0, r5]
+ mov r0, #0x1
+ pop {r3-r7, pc}
+_020168AA:
+ bl ErrorHandling
+ b _020168C6
+_020168B0:
+ bl ErrorHandling
+ b _020168C6
+_020168B6:
+ bl ErrorHandling
+ b _020168C6
+_020168BC:
+ bl ErrorHandling
+ b _020168C6
+_020168C2:
+ bl ErrorHandling
+_020168C6:
+ mov r0, #0x0
+ add sp, #0x8
+ pop {r3-r7, pc}
+ .balign 4
+_020168CC: .word 0x021C4D28
+
+ thumb_func_start FUN_020168D0
+FUN_020168D0: ; 0x020168D0
+ push {r4, lr}
+ add r4, r0, #0x0
+ blx OS_GetProcMode
+ cmp r0, #0x12
+ bne _020168E0
+ bl ErrorHandling
+_020168E0:
+ ldr r0, _02016940 ; =0x021C4D28
+ ldr r1, [r0, #0x0]
+ ldr r0, [r0, #0x10]
+ ldrb r0, [r0, r4]
+ lsl r0, r0, #0x2
+ ldr r0, [r1, r0]
+ cmp r0, #0x0
+ beq _0201693E
+ blx thunk_FUN_020adc8c
+ ldr r1, _02016940 ; =0x021C4D28
+ ldr r0, [r1, #0x10]
+ ldrb r0, [r0, r4]
+ lsl r2, r0, #0x2
+ ldr r0, [r1, #0x4]
+ ldr r1, [r1, #0x8]
+ ldr r0, [r0, r2]
+ ldr r1, [r1, r2]
+ cmp r0, #0x0
+ beq _02016912
+ cmp r1, #0x0
+ beq _02016912
+ blx FUN_020ADDF0
+ b _02016916
+_02016912:
+ bl ErrorHandling
+_02016916:
+ ldr r1, _02016940 ; =0x021C4D28
+ mov r0, #0x0
+ ldr r2, [r1, #0x10]
+ ldr r3, [r1, #0x0]
+ ldrb r2, [r2, r4]
+ lsl r2, r2, #0x2
+ str r0, [r3, r2]
+ ldr r2, [r1, #0x10]
+ ldr r3, [r1, #0x4]
+ ldrb r2, [r2, r4]
+ lsl r2, r2, #0x2
+ str r0, [r3, r2]
+ ldr r2, [r1, #0x10]
+ ldr r3, [r1, #0x8]
+ ldrb r2, [r2, r4]
+ lsl r2, r2, #0x2
+ str r0, [r3, r2]
+ ldrh r2, [r1, #0x1a]
+ ldr r0, [r1, #0x10]
+ strb r2, [r0, r4]
+_0201693E:
+ pop {r4, pc}
+ .balign 4
+_02016940: .word 0x021C4D28
+
+ thumb_func_start FUN_02016944
+FUN_02016944: ; 0x02016944
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ add r7, r2, #0x0
+ add r6, r3, #0x0
+ cmp r5, #0x0
+ bne _02016956
+ bl ErrorHandling
+_02016956:
+ blx OS_DisableInterrupts
+ add r4, #0x10
+ str r0, [sp, #0x0]
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ add r2, r7, #0x0
+ blx tempName_NNS_FndAllocFromExpHeapEx
+ add r4, r0, #0x0
+ ldr r0, [sp, #0x0]
+ blx OS_RestoreInterrupts
+ cmp r4, #0x0
+ beq _02016984
+ ldr r1, [r4, #0xc]
+ mov r0, #0xff
+ bic r1, r0
+ lsl r0, r6, #0x18
+ lsr r0, r0, #0x18
+ orr r0, r1
+ str r0, [r4, #0xc]
+ add r4, #0x10
+_02016984:
+ add r0, r4, #0x0
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_02016988
+FUN_02016988: ; 0x02016988
+ push {r3, lr}
+ bl FUN_02031810
+ cmp r0, #0x0
+ beq _02016996
+ bl FUN_0208A9B8
+_02016996:
+ pop {r3, pc}
+
+ thumb_func_start FUN_02016998
+FUN_02016998: ; 0x02016998
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ ldr r0, _020169D4 ; =0x021C4D28
+ mov r4, #0x0
+ ldrh r2, [r0, #0x14]
+ cmp r5, r2
+ bhs _020169BA
+ ldr r2, [r0, #0x0]
+ ldr r0, [r0, #0x10]
+ add r3, r5, #0x0
+ ldrb r0, [r0, r5]
+ lsl r0, r0, #0x2
+ ldr r0, [r2, r0]
+ mov r2, #0x4
+ bl FUN_02016944
+ add r4, r0, #0x0
+_020169BA:
+ cmp r4, #0x0
+ beq _020169CC
+ ldr r0, _020169D4 ; =0x021C4D28
+ lsl r1, r5, #0x1
+ ldr r2, [r0, #0xc]
+ ldrh r0, [r2, r1]
+ add r0, r0, #0x1
+ strh r0, [r2, r1]
+ b _020169D0
+_020169CC:
+ bl FUN_02016988
+_020169D0:
+ add r0, r4, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+_020169D4: .word 0x021C4D28
+
+ thumb_func_start FUN_020169D8
+FUN_020169D8: ; 0x020169D8
+ push {r3-r5, lr}
+ ldr r2, _02016A14 ; =0x021C4D28
+ add r5, r0, #0x0
+ ldrh r0, [r2, #0x14]
+ mov r4, #0x0
+ cmp r5, r0
+ bhs _020169FA
+ ldr r0, [r2, #0x0]
+ ldr r2, [r2, #0x10]
+ add r3, r5, #0x0
+ ldrb r2, [r2, r5]
+ lsl r2, r2, #0x2
+ ldr r0, [r0, r2]
+ sub r2, r4, #0x4
+ bl FUN_02016944
+ add r4, r0, #0x0
+_020169FA:
+ cmp r4, #0x0
+ beq _02016A0C
+ ldr r0, _02016A14 ; =0x021C4D28
+ lsl r1, r5, #0x1
+ ldr r2, [r0, #0xc]
+ ldrh r0, [r2, r1]
+ add r0, r0, #0x1
+ strh r0, [r2, r1]
+ b _02016A10
+_02016A0C:
+ bl FUN_02016988
+_02016A10:
+ add r0, r4, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+_02016A14: .word 0x021C4D28
+
+ thumb_func_start FUN_02016A18
+FUN_02016A18: ; 0x02016A18
+ push {r3-r7, lr}
+ add r6, r0, #0x0
+ sub r0, r6, #0x4
+ ldr r0, [r0, #0x0]
+ lsl r0, r0, #0x18
+ lsr r4, r0, #0x18
+ ldr r0, _02016A88 ; =0x021C4D28
+ ldrh r1, [r0, #0x14]
+ cmp r4, r1
+ bhs _02016A80
+ ldr r1, [r0, #0x0]
+ ldr r0, [r0, #0x10]
+ ldrb r0, [r0, r4]
+ lsl r0, r0, #0x2
+ ldr r7, [r1, r0]
+ cmp r7, #0x0
+ bne _02016A3E
+ bl ErrorHandling
+_02016A3E:
+ ldr r0, _02016A88 ; =0x021C4D28
+ lsl r5, r4, #0x1
+ ldr r0, [r0, #0xc]
+ ldrh r0, [r0, r5]
+ cmp r0, #0x0
+ bne _02016A50
+ add r0, r4, #0x0
+ bl FUN_02016B90
+_02016A50:
+ ldr r0, _02016A88 ; =0x021C4D28
+ ldr r0, [r0, #0xc]
+ ldrh r0, [r0, r5]
+ cmp r0, #0x0
+ bne _02016A5E
+ bl ErrorHandling
+_02016A5E:
+ ldr r0, _02016A88 ; =0x021C4D28
+ ldr r1, [r0, #0xc]
+ ldrh r0, [r1, r5]
+ sub r0, r0, #0x1
+ strh r0, [r1, r5]
+ blx OS_DisableInterrupts
+ sub r6, #0x10
+ add r4, r0, #0x0
+ add r0, r7, #0x0
+ add r1, r6, #0x0
+ blx FUN_020ADDF0
+ add r0, r4, #0x0
+ blx OS_RestoreInterrupts
+ pop {r3-r7, pc}
+_02016A80:
+ bl ErrorHandling
+ pop {r3-r7, pc}
+ nop
+_02016A88: .word 0x021C4D28
+
+ thumb_func_start FUN_02016A8C
+FUN_02016A8C: ; 0x02016A8C
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ blx OS_GetProcMode
+ cmp r0, #0x12
+ bne _02016A9E
+ bl ErrorHandling
+_02016A9E:
+ ldr r0, _02016AF4 ; =0x021C4D28
+ ldrh r1, [r0, #0x14]
+ cmp r5, r1
+ bhs _02016AEE
+ ldr r1, [r0, #0x0]
+ ldr r0, [r0, #0x10]
+ ldrb r0, [r0, r5]
+ lsl r0, r0, #0x2
+ ldr r6, [r1, r0]
+ cmp r6, #0x0
+ bne _02016AB8
+ bl ErrorHandling
+_02016AB8:
+ sub r0, r4, #0x4
+ ldr r0, [r0, #0x0]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ cmp r0, r5
+ beq _02016AC8
+ bl ErrorHandling
+_02016AC8:
+ sub r4, #0x10
+ add r0, r6, #0x0
+ add r1, r4, #0x0
+ blx FUN_020ADDF0
+ ldr r0, _02016AF4 ; =0x021C4D28
+ lsl r4, r5, #0x1
+ ldr r0, [r0, #0xc]
+ ldrh r0, [r0, r4]
+ cmp r0, #0x0
+ bne _02016AE2
+ bl ErrorHandling
+_02016AE2:
+ ldr r0, _02016AF4 ; =0x021C4D28
+ ldr r1, [r0, #0xc]
+ ldrh r0, [r1, r4]
+ sub r0, r0, #0x1
+ strh r0, [r1, r4]
+ pop {r4-r6, pc}
+_02016AEE:
+ bl ErrorHandling
+ pop {r4-r6, pc}
+ .balign 4
+_02016AF4: .word 0x021C4D28
+
+ thumb_func_start FUN_02016AF8
+FUN_02016AF8: ; 0x02016AF8
+ push {r3, lr}
+ ldr r1, _02016B1C ; =0x021C4D28
+ ldrh r2, [r1, #0x14]
+ cmp r0, r2
+ bhs _02016B12
+ ldr r2, [r1, #0x0]
+ ldr r1, [r1, #0x10]
+ ldrb r0, [r1, r0]
+ lsl r0, r0, #0x2
+ ldr r0, [r2, r0]
+ blx FUN_020ADDC8
+ pop {r3, pc}
+_02016B12:
+ bl ErrorHandling
+ mov r0, #0x0
+ pop {r3, pc}
+ nop
+_02016B1C: .word 0x021C4D28
+
+ thumb_func_start FUN_02016B20
+FUN_02016B20: ; 0x02016B20
+ push {r4, lr}
+ ldr r4, _02016B40 ; =0x021C4D28
+ ldrh r3, [r4, #0x14]
+ cmp r1, r3
+ bhs _02016B3A
+ ldr r3, [r4, #0x0]
+ ldr r4, [r4, #0x10]
+ ldrb r1, [r4, r1]
+ lsl r1, r1, #0x2
+ ldr r1, [r3, r1]
+ blx FUN_020AE82C
+ pop {r4, pc}
+_02016B3A:
+ bl ErrorHandling
+ pop {r4, pc}
+ .balign 4
+_02016B40: .word 0x021C4D28
+
+ thumb_func_start FUN_02016B44
+FUN_02016B44: ; 0x02016B44
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ blx OS_GetProcMode
+ cmp r0, #0x12
+ bne _02016B56
+ bl ErrorHandling
+_02016B56:
+ add r0, r5, #0x0
+ sub r0, #0x10
+ blx FUN_020ADDC0
+ add r4, #0x10
+ cmp r0, r4
+ blo _02016B84
+ sub r2, r5, #0x4
+ ldr r0, _02016B8C ; =0x021C4D28
+ ldr r2, [r2, #0x0]
+ ldr r1, [r0, #0x0]
+ lsl r2, r2, #0x18
+ ldr r0, [r0, #0x10]
+ lsr r2, r2, #0x18
+ ldrb r0, [r0, r2]
+ sub r5, #0x10
+ add r2, r4, #0x0
+ lsl r0, r0, #0x2
+ ldr r0, [r1, r0]
+ add r1, r5, #0x0
+ blx FUN_020ADE2C
+ pop {r3-r5, pc}
+_02016B84:
+ bl ErrorHandling
+ pop {r3-r5, pc}
+ nop
+_02016B8C: .word 0x021C4D28
+
+ thumb_func_start FUN_02016B90
+FUN_02016B90: ; 0x02016B90
+ mov r0, #0x1
+ bx lr
+
+ thumb_func_start FUN_02016B94
+FUN_02016B94: ; 0x02016B94
+ push {r3-r5, lr}
+ mov r1, #0x5a
+ lsl r1, r1, #0x2
+ add r5, r0, #0x0
+ bl FUN_02016998
+ mov r2, #0x5a
+ mov r1, #0x0
+ lsl r2, r2, #0x2
+ add r4, r0, #0x0
+ blx Call_FillMemWithValue
+ str r5, [r4, #0x0]
+ mov r0, #0x0
+ strh r0, [r4, #0x4]
+ strh r0, [r4, #0x6]
+ add r0, r4, #0x0
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_02016BB8
+FUN_02016BB8: ; 0x02016BB8
+ ldr r0, [r0, #0x0]
+ bx lr
+
+ thumb_func_start FUN_02016BBC
+FUN_02016BBC: ; 0x02016BBC
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r0, [r4, #0x0]
+ ldr r1, [r4, #0x4]
+ ldr r2, [r4, #0xc]
+ blx GX_SetGraphicsMode
+ ldr r0, [r4, #0x8]
+ blx GXS_SetGraphicsMode
+ mov r2, #0x1
+ lsl r2, r2, #0x1a
+ ldr r1, [r2, #0x0]
+ ldr r0, _02016BF0 ; =0xC7FFFFFF
+ and r1, r0
+ str r1, [r2, #0x0]
+ ldr r1, [r2, #0x0]
+ asr r0, r0, #0x3
+ and r0, r1
+ str r0, [r2, #0x0]
+ bl FUN_0201E6D8
+ bl FUN_0201E740
+ pop {r4, pc}
+ nop
+_02016BF0: .word 0xC7FFFFFF
+
+ thumb_func_start FUN_02016BF4
+FUN_02016BF4: ; 0x02016BF4
+ push {r3, lr}
+ add r2, r0, #0x0
+ cmp r1, #0x0
+ bne _02016C0C
+ ldr r0, [r2, #0x0]
+ ldr r1, [r2, #0x4]
+ ldr r2, [r2, #0xc]
+ blx GX_SetGraphicsMode
+ bl FUN_0201E6D8
+ pop {r3, pc}
+_02016C0C:
+ ldr r0, [r2, #0x8]
+ blx GXS_SetGraphicsMode
+ bl FUN_0201E740
+ pop {r3, pc}
+
+ thumb_func_start FUN_02016C18
+FUN_02016C18: ; 0x02016C18
+ push {r3-r7, lr}
+ sub sp, #0x18
+ str r1, [sp, #0x4]
+ str r3, [sp, #0x8]
+ add r4, r2, #0x0
+ str r0, [sp, #0x0]
+ ldrb r0, [r4, #0x10]
+ ldr r1, [sp, #0x8]
+ bl FUN_020177DC
+ add r5, r0, #0x0
+ ldr r0, [sp, #0x4]
+ cmp r0, #0x7
+ bls _02016C36
+ b _0201705A
+_02016C36:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02016C42: ; jump table (using 16-bit offset)
+ .short _02016C52 - _02016C42 - 2; case 0
+ .short _02016CAA - _02016C42 - 2; case 1
+ .short _02016D02 - _02016C42 - 2; case 2
+ .short _02016DA4 - _02016C42 - 2; case 3
+ .short _02016E46 - _02016C42 - 2; case 4
+ .short _02016E9E - _02016C42 - 2; case 5
+ .short _02016EF6 - _02016C42 - 2; case 6
+ .short _02016F98 - _02016C42 - 2; case 7
+_02016C52:
+ mov r0, #0x1
+ add r1, r0, #0x0
+ bl FUN_0201E6E4
+ ldrb r3, [r4, #0x14]
+ ldrb r1, [r4, #0x12]
+ ldrb r0, [r4, #0x11]
+ ldrb r2, [r4, #0x13]
+ lsl r6, r3, #0xd
+ lsl r0, r0, #0x7
+ lsl r3, r2, #0x2
+ str r0, [sp, #0xc]
+ ldr r2, _02016FB4 ; =0x04000008
+ lsl r7, r1, #0x8
+ ldrh r1, [r2, #0x0]
+ mov r0, #0x43
+ and r0, r1
+ lsl r1, r5, #0xe
+ orr r1, r0
+ ldr r0, [sp, #0xc]
+ orr r0, r1
+ orr r0, r7
+ orr r0, r3
+ orr r0, r6
+ strh r0, [r2, #0x0]
+ ldrh r1, [r2, #0x0]
+ mov r0, #0x3
+ bic r1, r0
+ ldrb r0, [r4, #0x15]
+ orr r0, r1
+ strh r0, [r2, #0x0]
+ ldr r0, [r4, #0x18]
+ cmp r0, #0x0
+ beq _02016CA0
+ ldrh r1, [r2, #0x0]
+ mov r0, #0x40
+ orr r0, r1
+ strh r0, [r2, #0x0]
+ b _0201705A
+_02016CA0:
+ ldrh r1, [r2, #0x0]
+ mov r0, #0x40
+ bic r1, r0
+ strh r1, [r2, #0x0]
+ b _0201705A
+_02016CAA:
+ mov r0, #0x2
+ mov r1, #0x1
+ bl FUN_0201E6E4
+ ldrb r3, [r4, #0x14]
+ ldrb r1, [r4, #0x12]
+ ldrb r0, [r4, #0x11]
+ ldrb r2, [r4, #0x13]
+ lsl r6, r3, #0xd
+ lsl r0, r0, #0x7
+ lsl r3, r2, #0x2
+ str r0, [sp, #0x10]
+ ldr r2, _02016FB8 ; =0x0400000A
+ lsl r7, r1, #0x8
+ ldrh r1, [r2, #0x0]
+ mov r0, #0x43
+ and r0, r1
+ lsl r1, r5, #0xe
+ orr r1, r0
+ ldr r0, [sp, #0x10]
+ orr r0, r1
+ orr r0, r7
+ orr r0, r3
+ orr r0, r6
+ strh r0, [r2, #0x0]
+ ldrh r1, [r2, #0x0]
+ mov r0, #0x3
+ bic r1, r0
+ ldrb r0, [r4, #0x15]
+ orr r0, r1
+ strh r0, [r2, #0x0]
+ ldr r0, [r4, #0x18]
+ cmp r0, #0x0
+ beq _02016CF8
+ ldrh r1, [r2, #0x0]
+ mov r0, #0x40
+ orr r0, r1
+ strh r0, [r2, #0x0]
+ b _0201705A
+_02016CF8:
+ ldrh r1, [r2, #0x0]
+ mov r0, #0x40
+ bic r1, r0
+ strh r1, [r2, #0x0]
+ b _0201705A
+_02016D02:
+ mov r0, #0x4
+ mov r1, #0x1
+ bl FUN_0201E6E4
+ ldr r0, [sp, #0x8]
+ cmp r0, #0x0
+ beq _02016D18
+ cmp r0, #0x1
+ beq _02016D3A
+ cmp r0, #0x2
+ beq _02016D5C
+_02016D18:
+ ldrb r1, [r4, #0x12]
+ ldr r7, _02016FBC ; =0x0400000C
+ ldrb r2, [r4, #0x13]
+ lsl r3, r1, #0x8
+ ldrb r0, [r4, #0x11]
+ lsl r6, r2, #0x2
+ ldrh r1, [r7, #0x0]
+ lsl r2, r0, #0x7
+ mov r0, #0x43
+ and r0, r1
+ lsl r1, r5, #0xe
+ orr r0, r1
+ orr r0, r2
+ orr r0, r3
+ orr r0, r6
+ strh r0, [r7, #0x0]
+ b _02016D7C
+_02016D3A:
+ ldrb r2, [r4, #0x13]
+ ldrb r1, [r4, #0x12]
+ ldrb r0, [r4, #0x16]
+ lsl r3, r2, #0x2
+ ldr r7, _02016FBC ; =0x0400000C
+ lsl r2, r1, #0x8
+ lsl r6, r0, #0xd
+ ldrh r1, [r7, #0x0]
+ mov r0, #0x43
+ and r0, r1
+ lsl r1, r5, #0xe
+ orr r0, r1
+ orr r0, r2
+ orr r0, r3
+ orr r0, r6
+ strh r0, [r7, #0x0]
+ b _02016D7C
+_02016D5C:
+ ldrb r1, [r4, #0x12]
+ ldr r7, _02016FBC ; =0x0400000C
+ ldrb r0, [r4, #0x16]
+ lsl r3, r1, #0x8
+ ldrb r2, [r4, #0x13]
+ lsl r6, r0, #0xd
+ ldrh r1, [r7, #0x0]
+ mov r0, #0x43
+ lsl r2, r2, #0x2
+ and r0, r1
+ lsl r1, r5, #0xe
+ orr r0, r1
+ orr r0, r2
+ orr r0, r3
+ orr r0, r6
+ strh r0, [r7, #0x0]
+_02016D7C:
+ ldr r0, _02016FBC ; =0x0400000C
+ mov r1, #0x3
+ ldrh r2, [r0, #0x0]
+ bic r2, r1
+ ldrb r1, [r4, #0x15]
+ orr r1, r2
+ strh r1, [r0, #0x0]
+ ldr r1, [r4, #0x18]
+ cmp r1, #0x0
+ beq _02016D9A
+ ldrh r2, [r0, #0x0]
+ mov r1, #0x40
+ orr r1, r2
+ strh r1, [r0, #0x0]
+ b _0201705A
+_02016D9A:
+ ldrh r2, [r0, #0x0]
+ mov r1, #0x40
+ bic r2, r1
+ strh r2, [r0, #0x0]
+ b _0201705A
+_02016DA4:
+ mov r0, #0x8
+ mov r1, #0x1
+ bl FUN_0201E6E4
+ ldr r0, [sp, #0x8]
+ cmp r0, #0x0
+ beq _02016DBA
+ cmp r0, #0x1
+ beq _02016DDC
+ cmp r0, #0x2
+ beq _02016DFE
+_02016DBA:
+ ldrb r1, [r4, #0x12]
+ ldr r7, _02016FC0 ; =0x0400000E
+ ldrb r2, [r4, #0x13]
+ lsl r3, r1, #0x8
+ ldrb r0, [r4, #0x11]
+ lsl r6, r2, #0x2
+ ldrh r1, [r7, #0x0]
+ lsl r2, r0, #0x7
+ mov r0, #0x43
+ and r0, r1
+ lsl r1, r5, #0xe
+ orr r0, r1
+ orr r0, r2
+ orr r0, r3
+ orr r0, r6
+ strh r0, [r7, #0x0]
+ b _02016E1E
+_02016DDC:
+ ldrb r2, [r4, #0x13]
+ ldrb r1, [r4, #0x12]
+ ldrb r0, [r4, #0x16]
+ lsl r3, r2, #0x2
+ ldr r7, _02016FC0 ; =0x0400000E
+ lsl r2, r1, #0x8
+ lsl r6, r0, #0xd
+ ldrh r1, [r7, #0x0]
+ mov r0, #0x43
+ and r0, r1
+ lsl r1, r5, #0xe
+ orr r0, r1
+ orr r0, r2
+ orr r0, r3
+ orr r0, r6
+ strh r0, [r7, #0x0]
+ b _02016E1E
+_02016DFE:
+ ldrb r1, [r4, #0x12]
+ ldr r7, _02016FC0 ; =0x0400000E
+ ldrb r0, [r4, #0x16]
+ lsl r3, r1, #0x8
+ ldrb r2, [r4, #0x13]
+ lsl r6, r0, #0xd
+ ldrh r1, [r7, #0x0]
+ mov r0, #0x43
+ lsl r2, r2, #0x2
+ and r0, r1
+ lsl r1, r5, #0xe
+ orr r0, r1
+ orr r0, r2
+ orr r0, r3
+ orr r0, r6
+ strh r0, [r7, #0x0]
+_02016E1E:
+ ldr r0, _02016FC0 ; =0x0400000E
+ mov r1, #0x3
+ ldrh r2, [r0, #0x0]
+ bic r2, r1
+ ldrb r1, [r4, #0x15]
+ orr r1, r2
+ strh r1, [r0, #0x0]
+ ldr r1, [r4, #0x18]
+ cmp r1, #0x0
+ beq _02016E3C
+ ldrh r2, [r0, #0x0]
+ mov r1, #0x40
+ orr r1, r2
+ strh r1, [r0, #0x0]
+ b _0201705A
+_02016E3C:
+ ldrh r2, [r0, #0x0]
+ mov r1, #0x40
+ bic r2, r1
+ strh r2, [r0, #0x0]
+ b _0201705A
+_02016E46:
+ mov r0, #0x1
+ add r1, r0, #0x0
+ bl FUN_0201E74C
+ ldrb r3, [r4, #0x14]
+ ldrb r1, [r4, #0x12]
+ ldrb r0, [r4, #0x11]
+ ldrb r2, [r4, #0x13]
+ lsl r6, r3, #0xd
+ lsl r0, r0, #0x7
+ lsl r3, r2, #0x2
+ str r0, [sp, #0x14]
+ ldr r2, _02016FC4 ; =0x04001008
+ lsl r7, r1, #0x8
+ ldrh r1, [r2, #0x0]
+ mov r0, #0x43
+ and r0, r1
+ lsl r1, r5, #0xe
+ orr r1, r0
+ ldr r0, [sp, #0x14]
+ orr r0, r1
+ orr r0, r7
+ orr r0, r3
+ orr r0, r6
+ strh r0, [r2, #0x0]
+ ldrh r1, [r2, #0x0]
+ mov r0, #0x3
+ bic r1, r0
+ ldrb r0, [r4, #0x15]
+ orr r0, r1
+ strh r0, [r2, #0x0]
+ ldr r0, [r4, #0x18]
+ cmp r0, #0x0
+ beq _02016E94
+ ldrh r1, [r2, #0x0]
+ mov r0, #0x40
+ orr r0, r1
+ strh r0, [r2, #0x0]
+ b _0201705A
+_02016E94:
+ ldrh r1, [r2, #0x0]
+ mov r0, #0x40
+ bic r1, r0
+ strh r1, [r2, #0x0]
+ b _0201705A
+_02016E9E:
+ mov r0, #0x2
+ mov r1, #0x1
+ bl FUN_0201E74C
+ ldrb r2, [r4, #0x13]
+ ldrb r1, [r4, #0x12]
+ ldrb r0, [r4, #0x11]
+ lsl r6, r2, #0x2
+ ldrb r3, [r4, #0x14]
+ lsl r0, r0, #0x7
+ mov r12, r0
+ ldr r2, _02016FC8 ; =0x0400100A
+ lsl r7, r1, #0x8
+ ldrh r1, [r2, #0x0]
+ mov r0, #0x43
+ lsl r3, r3, #0xd
+ and r0, r1
+ lsl r1, r5, #0xe
+ orr r0, r1
+ mov r1, r12
+ orr r0, r1
+ orr r0, r7
+ orr r0, r6
+ orr r0, r3
+ strh r0, [r2, #0x0]
+ ldrh r1, [r2, #0x0]
+ mov r0, #0x3
+ bic r1, r0
+ ldrb r0, [r4, #0x15]
+ orr r0, r1
+ strh r0, [r2, #0x0]
+ ldr r0, [r4, #0x18]
+ cmp r0, #0x0
+ beq _02016EEC
+ ldrh r1, [r2, #0x0]
+ mov r0, #0x40
+ orr r0, r1
+ strh r0, [r2, #0x0]
+ b _0201705A
+_02016EEC:
+ ldrh r1, [r2, #0x0]
+ mov r0, #0x40
+ bic r1, r0
+ strh r1, [r2, #0x0]
+ b _0201705A
+_02016EF6:
+ mov r0, #0x4
+ mov r1, #0x1
+ bl FUN_0201E74C
+ ldr r0, [sp, #0x8]
+ cmp r0, #0x0
+ beq _02016F0C
+ cmp r0, #0x1
+ beq _02016F2E
+ cmp r0, #0x2
+ beq _02016F50
+_02016F0C:
+ ldrb r1, [r4, #0x12]
+ ldr r7, _02016FCC ; =0x0400100C
+ ldrb r2, [r4, #0x13]
+ lsl r3, r1, #0x8
+ ldrb r0, [r4, #0x11]
+ lsl r6, r2, #0x2
+ ldrh r1, [r7, #0x0]
+ lsl r2, r0, #0x7
+ mov r0, #0x43
+ and r0, r1
+ lsl r1, r5, #0xe
+ orr r0, r1
+ orr r0, r2
+ orr r0, r3
+ orr r0, r6
+ strh r0, [r7, #0x0]
+ b _02016F70
+_02016F2E:
+ ldrb r2, [r4, #0x13]
+ ldrb r1, [r4, #0x12]
+ ldrb r0, [r4, #0x16]
+ lsl r3, r2, #0x2
+ ldr r7, _02016FCC ; =0x0400100C
+ lsl r2, r1, #0x8
+ lsl r6, r0, #0xd
+ ldrh r1, [r7, #0x0]
+ mov r0, #0x43
+ and r0, r1
+ lsl r1, r5, #0xe
+ orr r0, r1
+ orr r0, r2
+ orr r0, r3
+ orr r0, r6
+ strh r0, [r7, #0x0]
+ b _02016F70
+_02016F50:
+ ldrb r1, [r4, #0x12]
+ ldr r7, _02016FCC ; =0x0400100C
+ ldrb r0, [r4, #0x16]
+ lsl r3, r1, #0x8
+ ldrb r2, [r4, #0x13]
+ lsl r6, r0, #0xd
+ ldrh r1, [r7, #0x0]
+ mov r0, #0x43
+ lsl r2, r2, #0x2
+ and r0, r1
+ lsl r1, r5, #0xe
+ orr r0, r1
+ orr r0, r2
+ orr r0, r3
+ orr r0, r6
+ strh r0, [r7, #0x0]
+_02016F70:
+ ldr r0, _02016FCC ; =0x0400100C
+ mov r1, #0x3
+ ldrh r2, [r0, #0x0]
+ bic r2, r1
+ ldrb r1, [r4, #0x15]
+ orr r1, r2
+ strh r1, [r0, #0x0]
+ ldr r1, [r4, #0x18]
+ cmp r1, #0x0
+ beq _02016F8E
+ ldrh r2, [r0, #0x0]
+ mov r1, #0x40
+ orr r1, r2
+ strh r1, [r0, #0x0]
+ b _0201705A
+_02016F8E:
+ ldrh r2, [r0, #0x0]
+ mov r1, #0x40
+ bic r2, r1
+ strh r2, [r0, #0x0]
+ b _0201705A
+_02016F98:
+ mov r0, #0x8
+ mov r1, #0x1
+ bl FUN_0201E74C
+ ldr r0, [sp, #0x8]
+ cmp r0, #0x0
+ beq _02016FAE
+ cmp r0, #0x1
+ beq _02016FF2
+ cmp r0, #0x2
+ beq _02017014
+_02016FAE:
+ ldrb r1, [r4, #0x12]
+ ldr r7, _02016FD0 ; =0x0400100E
+ b _02016FD4
+ .balign 4
+_02016FB4: .word 0x04000008
+_02016FB8: .word 0x0400000A
+_02016FBC: .word 0x0400000C
+_02016FC0: .word 0x0400000E
+_02016FC4: .word 0x04001008
+_02016FC8: .word 0x0400100A
+_02016FCC: .word 0x0400100C
+_02016FD0: .word 0x0400100E
+_02016FD4:
+ ldrb r2, [r4, #0x13]
+ lsl r3, r1, #0x8
+ ldrb r0, [r4, #0x11]
+ lsl r6, r2, #0x2
+ ldrh r1, [r7, #0x0]
+ lsl r2, r0, #0x7
+ mov r0, #0x43
+ and r0, r1
+ lsl r1, r5, #0xe
+ orr r0, r1
+ orr r0, r2
+ orr r0, r3
+ orr r0, r6
+ strh r0, [r7, #0x0]
+ b _02017034
+_02016FF2:
+ ldrb r2, [r4, #0x13]
+ ldrb r1, [r4, #0x12]
+ ldrb r0, [r4, #0x16]
+ lsl r3, r2, #0x2
+ ldr r7, _020170F0 ; =0x0400100E
+ lsl r2, r1, #0x8
+ lsl r6, r0, #0xd
+ ldrh r1, [r7, #0x0]
+ mov r0, #0x43
+ and r0, r1
+ lsl r1, r5, #0xe
+ orr r0, r1
+ orr r0, r2
+ orr r0, r3
+ orr r0, r6
+ strh r0, [r7, #0x0]
+ b _02017034
+_02017014:
+ ldrb r1, [r4, #0x12]
+ ldr r7, _020170F0 ; =0x0400100E
+ ldrb r0, [r4, #0x16]
+ lsl r3, r1, #0x8
+ ldrb r2, [r4, #0x13]
+ lsl r6, r0, #0xd
+ ldrh r1, [r7, #0x0]
+ mov r0, #0x43
+ lsl r2, r2, #0x2
+ and r0, r1
+ lsl r1, r5, #0xe
+ orr r0, r1
+ orr r0, r2
+ orr r0, r3
+ orr r0, r6
+ strh r0, [r7, #0x0]
+_02017034:
+ ldr r0, _020170F0 ; =0x0400100E
+ mov r1, #0x3
+ ldrh r2, [r0, #0x0]
+ bic r2, r1
+ ldrb r1, [r4, #0x15]
+ orr r1, r2
+ strh r1, [r0, #0x0]
+ ldr r1, [r4, #0x18]
+ cmp r1, #0x0
+ beq _02017052
+ ldrh r2, [r0, #0x0]
+ mov r1, #0x40
+ orr r1, r2
+ strh r1, [r0, #0x0]
+ b _0201705A
+_02017052:
+ ldrh r2, [r0, #0x0]
+ mov r1, #0x40
+ bic r2, r1
+ strh r2, [r0, #0x0]
+_0201705A:
+ ldr r0, [sp, #0x4]
+ mov r1, #0x2c
+ add r5, r0, #0x0
+ ldr r0, [sp, #0x0]
+ mul r5, r1
+ add r2, r0, r5
+ mov r3, #0x0
+ mov r0, #0x1
+ strh r3, [r2, #0x20]
+ lsl r0, r0, #0xc
+ str r0, [r2, #0x24]
+ str r0, [r2, #0x28]
+ str r3, [r2, #0x2c]
+ str r3, [r2, #0x30]
+ ldr r1, [r4, #0x8]
+ cmp r1, #0x0
+ beq _020170A2
+ ldr r0, [sp, #0x0]
+ ldr r6, [sp, #0x0]
+ ldr r0, [r0, #0x0]
+ add r6, #0x8
+ bl FUN_02016998
+ str r0, [r6, r5]
+ ldr r1, [r6, r5]
+ ldr r2, [r4, #0x8]
+ mov r0, #0x0
+ blx MIi_CpuClear16
+ ldr r0, [sp, #0x0]
+ ldr r2, [r4, #0x8]
+ add r1, r0, r5
+ str r2, [r1, #0xc]
+ ldr r0, [r4, #0xc]
+ str r0, [r1, #0x10]
+ b _020170A8
+_020170A2:
+ str r3, [r2, #0x8]
+ str r3, [r2, #0xc]
+ str r3, [r2, #0x10]
+_020170A8:
+ ldr r0, [sp, #0x0]
+ ldrb r1, [r4, #0x10]
+ add r0, r0, r5
+ strb r1, [r0, #0x1d]
+ ldr r1, [sp, #0x8]
+ strb r1, [r0, #0x1c]
+ ldrb r1, [r4, #0x11]
+ strb r1, [r0, #0x1e]
+ ldr r1, [sp, #0x8]
+ cmp r1, #0x0
+ bne _020170CA
+ ldrb r1, [r4, #0x11]
+ cmp r1, #0x0
+ bne _020170CA
+ mov r1, #0x20
+ strb r1, [r0, #0x1f]
+ b _020170D2
+_020170CA:
+ ldr r0, [sp, #0x0]
+ mov r1, #0x40
+ add r0, r0, r5
+ strb r1, [r0, #0x1f]
+_020170D2:
+ ldr r0, [sp, #0x0]
+ ldr r1, [sp, #0x4]
+ ldr r3, [r4, #0x0]
+ mov r2, #0x0
+ bl FUN_020179E0
+ ldr r0, [sp, #0x0]
+ ldr r1, [sp, #0x4]
+ ldr r3, [r4, #0x4]
+ mov r2, #0x3
+ bl FUN_020179E0
+ add sp, #0x18
+ pop {r3-r7, pc}
+ nop
+_020170F0: .word 0x0400100E
+
+ thumb_func_start FUN_020170F4
+FUN_020170F4: ; 0x020170F4
+ push {r3-r7, lr}
+ sub sp, #0x20
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ add r1, r2, #0x0
+ add r0, r3, #0x0
+ cmp r1, #0x0
+ bne _0201710C
+ mov r2, #0x2c
+ mul r2, r4
+ add r2, r5, r2
+ strb r0, [r2, #0x1e]
+_0201710C:
+ cmp r4, #0x7
+ bls _02017112
+ b _020177C4
+_02017112:
+ add r2, r4, r4
+ add r2, pc
+ ldrh r2, [r2, #0x6]
+ lsl r2, r2, #0x10
+ asr r2, r2, #0x10
+ add pc, r2
+_0201711E: ; jump table (using 16-bit offset)
+ .short _0201712E - _0201711E - 2; case 0
+ .short _0201719A - _0201711E - 2; case 1
+ .short _02017206 - _0201711E - 2; case 2
+ .short _0201733A - _0201711E - 2; case 3
+ .short _0201746E - _0201711E - 2; case 4
+ .short _020174F4 - _0201711E - 2; case 5
+ .short _02017560 - _0201711E - 2; case 6
+ .short _02017694 - _0201711E - 2; case 7
+_0201712E:
+ ldr r2, _02017480 ; =0x04000008
+ cmp r1, #0x1
+ ldrh r3, [r2, #0x0]
+ add r2, sp, #0x0
+ strh r3, [r2, #0x1e]
+ bne _0201714A
+ ldrh r3, [r2, #0x1e]
+ ldr r1, _02017484 ; =0xFFFFE0FF
+ lsl r0, r0, #0x1b
+ and r1, r3
+ lsr r0, r0, #0x13
+ orr r0, r1
+ strh r0, [r2, #0x1e]
+ b _0201715C
+_0201714A:
+ cmp r1, #0x2
+ bne _0201715C
+ ldrh r3, [r2, #0x1e]
+ mov r1, #0x3c
+ lsl r0, r0, #0x1c
+ bic r3, r1
+ lsr r0, r0, #0x1a
+ orr r0, r3
+ strh r0, [r2, #0x1e]
+_0201715C:
+ add r0, sp, #0x0
+ ldrh r3, [r0, #0x1e]
+ add sp, #0x20
+ lsl r0, r3, #0x12
+ lsr r6, r0, #0x1f
+ lsl r0, r3, #0x1a
+ lsr r2, r0, #0x1c
+ lsl r0, r3, #0x13
+ lsr r1, r0, #0x1b
+ mov r0, #0x2c
+ mul r0, r4
+ add r0, r5, r0
+ lsl r3, r3, #0x10
+ lsr r5, r3, #0x1e
+ lsl r3, r2, #0x2
+ ldrb r0, [r0, #0x1e]
+ lsl r2, r1, #0x8
+ lsl r4, r6, #0xd
+ lsl r1, r0, #0x7
+ ldr r0, _02017480 ; =0x04000008
+ mov r6, #0x43
+ ldrh r7, [r0, #0x0]
+ lsl r5, r5, #0xe
+ and r6, r7
+ orr r5, r6
+ orr r1, r5
+ orr r1, r2
+ orr r1, r3
+ orr r1, r4
+ strh r1, [r0, #0x0]
+ pop {r3-r7, pc}
+_0201719A:
+ ldr r2, _02017488 ; =0x0400000A
+ cmp r1, #0x1
+ ldrh r3, [r2, #0x0]
+ add r2, sp, #0x0
+ strh r3, [r2, #0x1c]
+ bne _020171B6
+ ldrh r3, [r2, #0x1c]
+ ldr r1, _02017484 ; =0xFFFFE0FF
+ lsl r0, r0, #0x1b
+ and r1, r3
+ lsr r0, r0, #0x13
+ orr r0, r1
+ strh r0, [r2, #0x1c]
+ b _020171C8
+_020171B6:
+ cmp r1, #0x2
+ bne _020171C8
+ ldrh r3, [r2, #0x1c]
+ mov r1, #0x3c
+ lsl r0, r0, #0x1c
+ bic r3, r1
+ lsr r0, r0, #0x1a
+ orr r0, r3
+ strh r0, [r2, #0x1c]
+_020171C8:
+ add r0, sp, #0x0
+ ldrh r3, [r0, #0x1c]
+ add sp, #0x20
+ lsl r0, r3, #0x12
+ lsr r6, r0, #0x1f
+ lsl r0, r3, #0x1a
+ lsr r2, r0, #0x1c
+ lsl r0, r3, #0x13
+ lsr r1, r0, #0x1b
+ mov r0, #0x2c
+ mul r0, r4
+ add r0, r5, r0
+ lsl r3, r3, #0x10
+ lsr r5, r3, #0x1e
+ lsl r3, r2, #0x2
+ ldrb r0, [r0, #0x1e]
+ lsl r2, r1, #0x8
+ lsl r4, r6, #0xd
+ lsl r1, r0, #0x7
+ ldr r0, _02017488 ; =0x0400000A
+ mov r6, #0x43
+ ldrh r7, [r0, #0x0]
+ lsl r5, r5, #0xe
+ and r6, r7
+ orr r5, r6
+ orr r1, r5
+ orr r1, r2
+ orr r1, r3
+ orr r1, r4
+ strh r1, [r0, #0x0]
+ pop {r3-r7, pc}
+_02017206:
+ mov r2, #0x2c
+ mul r2, r4
+ add r3, r5, r2
+ ldrb r3, [r3, #0x1c]
+ cmp r3, #0x0
+ beq _0201721A
+ cmp r3, #0x1
+ beq _0201727A
+ cmp r3, #0x2
+ beq _020172DA
+_0201721A:
+ ldr r3, _0201748C ; =0x0400000C
+ cmp r1, #0x1
+ ldrh r4, [r3, #0x0]
+ add r3, sp, #0x0
+ strh r4, [r3, #0x1a]
+ bne _02017236
+ ldrh r4, [r3, #0x1a]
+ ldr r1, _02017484 ; =0xFFFFE0FF
+ lsl r0, r0, #0x1b
+ and r1, r4
+ lsr r0, r0, #0x13
+ orr r0, r1
+ strh r0, [r3, #0x1a]
+ b _02017248
+_02017236:
+ cmp r1, #0x2
+ bne _02017248
+ ldrh r4, [r3, #0x1a]
+ mov r1, #0x3c
+ lsl r0, r0, #0x1c
+ bic r4, r1
+ lsr r0, r0, #0x1a
+ orr r0, r4
+ strh r0, [r3, #0x1a]
+_02017248:
+ add r0, sp, #0x0
+ ldrh r3, [r0, #0x1a]
+ add r2, r5, r2
+ ldr r6, _0201748C ; =0x0400000C
+ lsl r0, r3, #0x1a
+ ldrb r4, [r2, #0x1e]
+ lsr r1, r0, #0x1c
+ lsl r0, r3, #0x13
+ lsl r2, r3, #0x10
+ lsr r3, r2, #0x1e
+ ldrh r5, [r6, #0x0]
+ lsr r0, r0, #0x1b
+ lsl r2, r1, #0x2
+ lsl r1, r0, #0x8
+ lsl r0, r4, #0x7
+ mov r4, #0x43
+ and r4, r5
+ lsl r3, r3, #0xe
+ orr r3, r4
+ orr r0, r3
+ orr r0, r1
+ orr r0, r2
+ add sp, #0x20
+ strh r0, [r6, #0x0]
+ pop {r3-r7, pc}
+_0201727A:
+ ldr r2, _0201748C ; =0x0400000C
+ cmp r1, #0x1
+ ldrh r3, [r2, #0x0]
+ add r2, sp, #0x0
+ strh r3, [r2, #0x18]
+ bne _02017296
+ ldrh r3, [r2, #0x18]
+ ldr r1, _02017484 ; =0xFFFFE0FF
+ lsl r0, r0, #0x1b
+ and r1, r3
+ lsr r0, r0, #0x13
+ orr r0, r1
+ strh r0, [r2, #0x18]
+ b _020172A8
+_02017296:
+ cmp r1, #0x2
+ bne _020172A8
+ ldrh r3, [r2, #0x18]
+ mov r1, #0x3c
+ lsl r0, r0, #0x1c
+ bic r3, r1
+ lsr r0, r0, #0x1a
+ orr r0, r3
+ strh r0, [r2, #0x18]
+_020172A8:
+ add r0, sp, #0x0
+ ldrh r3, [r0, #0x18]
+ ldr r6, _0201748C ; =0x0400000C
+ add sp, #0x20
+ lsl r1, r3, #0x13
+ lsl r0, r3, #0x1a
+ lsr r4, r1, #0x1b
+ lsl r1, r3, #0x12
+ lsr r2, r1, #0x1f
+ lsl r1, r3, #0x10
+ lsr r3, r1, #0x1e
+ lsr r0, r0, #0x1c
+ lsl r1, r0, #0x2
+ lsl r0, r4, #0x8
+ ldrh r5, [r6, #0x0]
+ mov r4, #0x43
+ lsl r3, r3, #0xe
+ and r4, r5
+ orr r3, r4
+ orr r0, r3
+ lsl r2, r2, #0xd
+ orr r0, r1
+ orr r0, r2
+ strh r0, [r6, #0x0]
+ pop {r3-r7, pc}
+_020172DA:
+ ldr r2, _0201748C ; =0x0400000C
+ cmp r1, #0x1
+ ldrh r3, [r2, #0x0]
+ add r2, sp, #0x0
+ strh r3, [r2, #0x16]
+ bne _020172F6
+ ldrh r3, [r2, #0x16]
+ ldr r1, _02017484 ; =0xFFFFE0FF
+ lsl r0, r0, #0x1b
+ and r1, r3
+ lsr r0, r0, #0x13
+ orr r0, r1
+ strh r0, [r2, #0x16]
+ b _02017308
+_020172F6:
+ cmp r1, #0x2
+ bne _02017308
+ ldrh r3, [r2, #0x16]
+ mov r1, #0x38
+ lsl r0, r0, #0x1d
+ bic r3, r1
+ lsr r0, r0, #0x1a
+ orr r0, r3
+ strh r0, [r2, #0x16]
+_02017308:
+ add r0, sp, #0x0
+ ldrh r3, [r0, #0x16]
+ ldr r6, _0201748C ; =0x0400000C
+ add sp, #0x20
+ lsl r1, r3, #0x13
+ lsr r4, r1, #0x1b
+ lsl r1, r3, #0x12
+ lsr r2, r1, #0x1f
+ lsl r0, r3, #0x1a
+ lsl r1, r3, #0x10
+ lsr r3, r1, #0x1e
+ lsl r1, r4, #0x8
+ lsr r0, r0, #0x1d
+ ldrh r5, [r6, #0x0]
+ mov r4, #0x43
+ lsl r3, r3, #0xe
+ and r4, r5
+ lsl r0, r0, #0x2
+ orr r3, r4
+ orr r0, r3
+ lsl r2, r2, #0xd
+ orr r0, r1
+ orr r0, r2
+ strh r0, [r6, #0x0]
+ pop {r3-r7, pc}
+_0201733A:
+ mov r2, #0x2c
+ mul r2, r4
+ add r3, r5, r2
+ ldrb r3, [r3, #0x1c]
+ cmp r3, #0x0
+ beq _0201734E
+ cmp r3, #0x1
+ beq _020173AE
+ cmp r3, #0x2
+ beq _0201740E
+_0201734E:
+ ldr r3, _02017490 ; =0x0400000E
+ cmp r1, #0x1
+ ldrh r4, [r3, #0x0]
+ add r3, sp, #0x0
+ strh r4, [r3, #0x14]
+ bne _0201736A
+ ldrh r4, [r3, #0x14]
+ ldr r1, _02017484 ; =0xFFFFE0FF
+ lsl r0, r0, #0x1b
+ and r1, r4
+ lsr r0, r0, #0x13
+ orr r0, r1
+ strh r0, [r3, #0x14]
+ b _0201737C
+_0201736A:
+ cmp r1, #0x2
+ bne _0201737C
+ ldrh r4, [r3, #0x14]
+ mov r1, #0x3c
+ lsl r0, r0, #0x1c
+ bic r4, r1
+ lsr r0, r0, #0x1a
+ orr r0, r4
+ strh r0, [r3, #0x14]
+_0201737C:
+ add r0, sp, #0x0
+ ldrh r3, [r0, #0x14]
+ add r2, r5, r2
+ ldr r6, _02017490 ; =0x0400000E
+ lsl r0, r3, #0x1a
+ ldrb r4, [r2, #0x1e]
+ lsr r1, r0, #0x1c
+ lsl r0, r3, #0x13
+ lsl r2, r3, #0x10
+ lsr r3, r2, #0x1e
+ ldrh r5, [r6, #0x0]
+ lsr r0, r0, #0x1b
+ lsl r2, r1, #0x2
+ lsl r1, r0, #0x8
+ lsl r0, r4, #0x7
+ mov r4, #0x43
+ and r4, r5
+ lsl r3, r3, #0xe
+ orr r3, r4
+ orr r0, r3
+ orr r0, r1
+ orr r0, r2
+ add sp, #0x20
+ strh r0, [r6, #0x0]
+ pop {r3-r7, pc}
+_020173AE:
+ ldr r2, _02017490 ; =0x0400000E
+ cmp r1, #0x1
+ ldrh r3, [r2, #0x0]
+ add r2, sp, #0x0
+ strh r3, [r2, #0x12]
+ bne _020173CA
+ ldrh r3, [r2, #0x12]
+ ldr r1, _02017484 ; =0xFFFFE0FF
+ lsl r0, r0, #0x1b
+ and r1, r3
+ lsr r0, r0, #0x13
+ orr r0, r1
+ strh r0, [r2, #0x12]
+ b _020173DC
+_020173CA:
+ cmp r1, #0x2
+ bne _020173DC
+ ldrh r3, [r2, #0x12]
+ mov r1, #0x3c
+ lsl r0, r0, #0x1c
+ bic r3, r1
+ lsr r0, r0, #0x1a
+ orr r0, r3
+ strh r0, [r2, #0x12]
+_020173DC:
+ add r0, sp, #0x0
+ ldrh r3, [r0, #0x12]
+ ldr r6, _02017490 ; =0x0400000E
+ add sp, #0x20
+ lsl r1, r3, #0x13
+ lsl r0, r3, #0x1a
+ lsr r4, r1, #0x1b
+ lsl r1, r3, #0x12
+ lsr r2, r1, #0x1f
+ lsl r1, r3, #0x10
+ lsr r3, r1, #0x1e
+ lsr r0, r0, #0x1c
+ lsl r1, r0, #0x2
+ lsl r0, r4, #0x8
+ ldrh r5, [r6, #0x0]
+ mov r4, #0x43
+ lsl r3, r3, #0xe
+ and r4, r5
+ orr r3, r4
+ orr r0, r3
+ lsl r2, r2, #0xd
+ orr r0, r1
+ orr r0, r2
+ strh r0, [r6, #0x0]
+ pop {r3-r7, pc}
+_0201740E:
+ ldr r2, _02017490 ; =0x0400000E
+ cmp r1, #0x1
+ ldrh r3, [r2, #0x0]
+ add r2, sp, #0x0
+ strh r3, [r2, #0x10]
+ bne _0201742A
+ ldrh r3, [r2, #0x10]
+ ldr r1, _02017484 ; =0xFFFFE0FF
+ lsl r0, r0, #0x1b
+ and r1, r3
+ lsr r0, r0, #0x13
+ orr r0, r1
+ strh r0, [r2, #0x10]
+ b _0201743C
+_0201742A:
+ cmp r1, #0x2
+ bne _0201743C
+ ldrh r3, [r2, #0x10]
+ mov r1, #0x38
+ lsl r0, r0, #0x1d
+ bic r3, r1
+ lsr r0, r0, #0x1a
+ orr r0, r3
+ strh r0, [r2, #0x10]
+_0201743C:
+ add r0, sp, #0x0
+ ldrh r3, [r0, #0x10]
+ ldr r6, _02017490 ; =0x0400000E
+ add sp, #0x20
+ lsl r1, r3, #0x13
+ lsr r4, r1, #0x1b
+ lsl r1, r3, #0x12
+ lsr r2, r1, #0x1f
+ lsl r0, r3, #0x1a
+ lsl r1, r3, #0x10
+ lsr r3, r1, #0x1e
+ lsl r1, r4, #0x8
+ lsr r0, r0, #0x1d
+ ldrh r5, [r6, #0x0]
+ mov r4, #0x43
+ lsl r3, r3, #0xe
+ and r4, r5
+ lsl r0, r0, #0x2
+ orr r3, r4
+ orr r0, r3
+ lsl r2, r2, #0xd
+ orr r0, r1
+ orr r0, r2
+ strh r0, [r6, #0x0]
+ pop {r3-r7, pc}
+_0201746E:
+ ldr r2, _02017494 ; =0x04001008
+ cmp r1, #0x1
+ ldrh r3, [r2, #0x0]
+ add r2, sp, #0x0
+ strh r3, [r2, #0xe]
+ bne _020174A4
+ ldrh r3, [r2, #0xe]
+ ldr r1, _02017484 ; =0xFFFFE0FF
+ b _02017498
+ .balign 4
+_02017480: .word 0x04000008
+_02017484: .word 0xFFFFE0FF
+_02017488: .word 0x0400000A
+_0201748C: .word 0x0400000C
+_02017490: .word 0x0400000E
+_02017494: .word 0x04001008
+_02017498:
+ lsl r0, r0, #0x1b
+ and r1, r3
+ lsr r0, r0, #0x13
+ orr r0, r1
+ strh r0, [r2, #0xe]
+ b _020174B6
+_020174A4:
+ cmp r1, #0x2
+ bne _020174B6
+ ldrh r3, [r2, #0xe]
+ mov r1, #0x3c
+ lsl r0, r0, #0x1c
+ bic r3, r1
+ lsr r0, r0, #0x1a
+ orr r0, r3
+ strh r0, [r2, #0xe]
+_020174B6:
+ add r0, sp, #0x0
+ ldrh r3, [r0, #0xe]
+ add sp, #0x20
+ lsl r0, r3, #0x12
+ lsr r6, r0, #0x1f
+ lsl r0, r3, #0x1a
+ lsr r2, r0, #0x1c
+ lsl r0, r3, #0x13
+ lsr r1, r0, #0x1b
+ mov r0, #0x2c
+ mul r0, r4
+ add r0, r5, r0
+ lsl r3, r3, #0x10
+ lsr r5, r3, #0x1e
+ lsl r3, r2, #0x2
+ ldrb r0, [r0, #0x1e]
+ lsl r2, r1, #0x8
+ lsl r4, r6, #0xd
+ lsl r1, r0, #0x7
+ ldr r0, _020177C8 ; =0x04001008
+ mov r6, #0x43
+ ldrh r7, [r0, #0x0]
+ lsl r5, r5, #0xe
+ and r6, r7
+ orr r5, r6
+ orr r1, r5
+ orr r1, r2
+ orr r1, r3
+ orr r1, r4
+ strh r1, [r0, #0x0]
+ pop {r3-r7, pc}
+_020174F4:
+ ldr r2, _020177CC ; =0x0400100A
+ cmp r1, #0x1
+ ldrh r3, [r2, #0x0]
+ add r2, sp, #0x0
+ strh r3, [r2, #0xc]
+ bne _02017510
+ ldrh r3, [r2, #0xc]
+ ldr r1, _020177D0 ; =0xFFFFE0FF
+ lsl r0, r0, #0x1b
+ and r1, r3
+ lsr r0, r0, #0x13
+ orr r0, r1
+ strh r0, [r2, #0xc]
+ b _02017522
+_02017510:
+ cmp r1, #0x2
+ bne _02017522
+ ldrh r3, [r2, #0xc]
+ mov r1, #0x3c
+ lsl r0, r0, #0x1c
+ bic r3, r1
+ lsr r0, r0, #0x1a
+ orr r0, r3
+ strh r0, [r2, #0xc]
+_02017522:
+ add r0, sp, #0x0
+ ldrh r3, [r0, #0xc]
+ add sp, #0x20
+ lsl r0, r3, #0x12
+ lsr r6, r0, #0x1f
+ lsl r0, r3, #0x1a
+ lsr r2, r0, #0x1c
+ lsl r0, r3, #0x13
+ lsr r1, r0, #0x1b
+ mov r0, #0x2c
+ mul r0, r4
+ add r0, r5, r0
+ lsl r3, r3, #0x10
+ lsr r5, r3, #0x1e
+ lsl r3, r2, #0x2
+ ldrb r0, [r0, #0x1e]
+ lsl r2, r1, #0x8
+ lsl r4, r6, #0xd
+ lsl r1, r0, #0x7
+ ldr r0, _020177CC ; =0x0400100A
+ mov r6, #0x43
+ ldrh r7, [r0, #0x0]
+ lsl r5, r5, #0xe
+ and r6, r7
+ orr r5, r6
+ orr r1, r5
+ orr r1, r2
+ orr r1, r3
+ orr r1, r4
+ strh r1, [r0, #0x0]
+ pop {r3-r7, pc}
+_02017560:
+ mov r2, #0x2c
+ mul r2, r4
+ add r3, r5, r2
+ ldrb r3, [r3, #0x1c]
+ cmp r3, #0x0
+ beq _02017574
+ cmp r3, #0x1
+ beq _020175D4
+ cmp r3, #0x2
+ beq _02017634
+_02017574:
+ ldr r3, _020177D4 ; =0x0400100C
+ cmp r1, #0x1
+ ldrh r4, [r3, #0x0]
+ add r3, sp, #0x0
+ strh r4, [r3, #0xa]
+ bne _02017590
+ ldrh r4, [r3, #0xa]
+ ldr r1, _020177D0 ; =0xFFFFE0FF
+ lsl r0, r0, #0x1b
+ and r1, r4
+ lsr r0, r0, #0x13
+ orr r0, r1
+ strh r0, [r3, #0xa]
+ b _020175A2
+_02017590:
+ cmp r1, #0x2
+ bne _020175A2
+ ldrh r4, [r3, #0xa]
+ mov r1, #0x3c
+ lsl r0, r0, #0x1c
+ bic r4, r1
+ lsr r0, r0, #0x1a
+ orr r0, r4
+ strh r0, [r3, #0xa]
+_020175A2:
+ add r0, sp, #0x0
+ ldrh r3, [r0, #0xa]
+ add r2, r5, r2
+ ldr r6, _020177D4 ; =0x0400100C
+ lsl r0, r3, #0x1a
+ ldrb r4, [r2, #0x1e]
+ lsr r1, r0, #0x1c
+ lsl r0, r3, #0x13
+ lsl r2, r3, #0x10
+ lsr r3, r2, #0x1e
+ ldrh r5, [r6, #0x0]
+ lsr r0, r0, #0x1b
+ lsl r2, r1, #0x2
+ lsl r1, r0, #0x8
+ lsl r0, r4, #0x7
+ mov r4, #0x43
+ and r4, r5
+ lsl r3, r3, #0xe
+ orr r3, r4
+ orr r0, r3
+ orr r0, r1
+ orr r0, r2
+ add sp, #0x20
+ strh r0, [r6, #0x0]
+ pop {r3-r7, pc}
+_020175D4:
+ ldr r2, _020177D4 ; =0x0400100C
+ cmp r1, #0x1
+ ldrh r3, [r2, #0x0]
+ add r2, sp, #0x0
+ strh r3, [r2, #0x8]
+ bne _020175F0
+ ldrh r3, [r2, #0x8]
+ ldr r1, _020177D0 ; =0xFFFFE0FF
+ lsl r0, r0, #0x1b
+ and r1, r3
+ lsr r0, r0, #0x13
+ orr r0, r1
+ strh r0, [r2, #0x8]
+ b _02017602
+_020175F0:
+ cmp r1, #0x2
+ bne _02017602
+ ldrh r3, [r2, #0x8]
+ mov r1, #0x3c
+ lsl r0, r0, #0x1c
+ bic r3, r1
+ lsr r0, r0, #0x1a
+ orr r0, r3
+ strh r0, [r2, #0x8]
+_02017602:
+ add r0, sp, #0x0
+ ldrh r3, [r0, #0x8]
+ ldr r6, _020177D4 ; =0x0400100C
+ add sp, #0x20
+ lsl r1, r3, #0x13
+ lsl r0, r3, #0x1a
+ lsr r4, r1, #0x1b
+ lsl r1, r3, #0x12
+ lsr r2, r1, #0x1f
+ lsl r1, r3, #0x10
+ lsr r3, r1, #0x1e
+ lsr r0, r0, #0x1c
+ lsl r1, r0, #0x2
+ lsl r0, r4, #0x8
+ ldrh r5, [r6, #0x0]
+ mov r4, #0x43
+ lsl r3, r3, #0xe
+ and r4, r5
+ orr r3, r4
+ orr r0, r3
+ lsl r2, r2, #0xd
+ orr r0, r1
+ orr r0, r2
+ strh r0, [r6, #0x0]
+ pop {r3-r7, pc}
+_02017634:
+ ldr r2, _020177D4 ; =0x0400100C
+ cmp r1, #0x1
+ ldrh r3, [r2, #0x0]
+ add r2, sp, #0x0
+ strh r3, [r2, #0x6]
+ bne _02017650
+ ldrh r3, [r2, #0x6]
+ ldr r1, _020177D0 ; =0xFFFFE0FF
+ lsl r0, r0, #0x1b
+ and r1, r3
+ lsr r0, r0, #0x13
+ orr r0, r1
+ strh r0, [r2, #0x6]
+ b _02017662
+_02017650:
+ cmp r1, #0x2
+ bne _02017662
+ ldrh r3, [r2, #0x6]
+ mov r1, #0x38
+ lsl r0, r0, #0x1d
+ bic r3, r1
+ lsr r0, r0, #0x1a
+ orr r0, r3
+ strh r0, [r2, #0x6]
+_02017662:
+ add r0, sp, #0x0
+ ldrh r3, [r0, #0x6]
+ ldr r6, _020177D4 ; =0x0400100C
+ add sp, #0x20
+ lsl r1, r3, #0x13
+ lsr r4, r1, #0x1b
+ lsl r1, r3, #0x12
+ lsr r2, r1, #0x1f
+ lsl r0, r3, #0x1a
+ lsl r1, r3, #0x10
+ lsr r3, r1, #0x1e
+ lsl r1, r4, #0x8
+ lsr r0, r0, #0x1d
+ ldrh r5, [r6, #0x0]
+ mov r4, #0x43
+ lsl r3, r3, #0xe
+ and r4, r5
+ lsl r0, r0, #0x2
+ orr r3, r4
+ orr r0, r3
+ lsl r2, r2, #0xd
+ orr r0, r1
+ orr r0, r2
+ strh r0, [r6, #0x0]
+ pop {r3-r7, pc}
+_02017694:
+ mov r2, #0x2c
+ mul r2, r4
+ add r3, r5, r2
+ ldrb r3, [r3, #0x1c]
+ cmp r3, #0x0
+ beq _020176A8
+ cmp r3, #0x1
+ beq _02017708
+ cmp r3, #0x2
+ beq _02017768
+_020176A8:
+ ldr r3, _020177D8 ; =0x0400100E
+ cmp r1, #0x1
+ ldrh r4, [r3, #0x0]
+ add r3, sp, #0x0
+ strh r4, [r3, #0x4]
+ bne _020176C4
+ ldrh r4, [r3, #0x4]
+ ldr r1, _020177D0 ; =0xFFFFE0FF
+ lsl r0, r0, #0x1b
+ and r1, r4
+ lsr r0, r0, #0x13
+ orr r0, r1
+ strh r0, [r3, #0x4]
+ b _020176D6
+_020176C4:
+ cmp r1, #0x2
+ bne _020176D6
+ ldrh r4, [r3, #0x4]
+ mov r1, #0x3c
+ lsl r0, r0, #0x1c
+ bic r4, r1
+ lsr r0, r0, #0x1a
+ orr r0, r4
+ strh r0, [r3, #0x4]
+_020176D6:
+ add r0, sp, #0x0
+ ldrh r3, [r0, #0x4]
+ add r2, r5, r2
+ ldr r6, _020177D8 ; =0x0400100E
+ lsl r0, r3, #0x1a
+ ldrb r4, [r2, #0x1e]
+ lsr r1, r0, #0x1c
+ lsl r0, r3, #0x13
+ lsl r2, r3, #0x10
+ lsr r3, r2, #0x1e
+ ldrh r5, [r6, #0x0]
+ lsr r0, r0, #0x1b
+ lsl r2, r1, #0x2
+ lsl r1, r0, #0x8
+ lsl r0, r4, #0x7
+ mov r4, #0x43
+ and r4, r5
+ lsl r3, r3, #0xe
+ orr r3, r4
+ orr r0, r3
+ orr r0, r1
+ orr r0, r2
+ add sp, #0x20
+ strh r0, [r6, #0x0]
+ pop {r3-r7, pc}
+_02017708:
+ ldr r2, _020177D8 ; =0x0400100E
+ cmp r1, #0x1
+ ldrh r3, [r2, #0x0]
+ add r2, sp, #0x0
+ strh r3, [r2, #0x2]
+ bne _02017724
+ ldrh r3, [r2, #0x2]
+ ldr r1, _020177D0 ; =0xFFFFE0FF
+ lsl r0, r0, #0x1b
+ and r1, r3
+ lsr r0, r0, #0x13
+ orr r0, r1
+ strh r0, [r2, #0x2]
+ b _02017736
+_02017724:
+ cmp r1, #0x2
+ bne _02017736
+ ldrh r3, [r2, #0x2]
+ mov r1, #0x3c
+ lsl r0, r0, #0x1c
+ bic r3, r1
+ lsr r0, r0, #0x1a
+ orr r0, r3
+ strh r0, [r2, #0x2]
+_02017736:
+ add r0, sp, #0x0
+ ldrh r3, [r0, #0x2]
+ ldr r6, _020177D8 ; =0x0400100E
+ add sp, #0x20
+ lsl r1, r3, #0x13
+ lsl r0, r3, #0x1a
+ lsr r4, r1, #0x1b
+ lsl r1, r3, #0x12
+ lsr r2, r1, #0x1f
+ lsl r1, r3, #0x10
+ lsr r3, r1, #0x1e
+ lsr r0, r0, #0x1c
+ lsl r1, r0, #0x2
+ lsl r0, r4, #0x8
+ ldrh r5, [r6, #0x0]
+ mov r4, #0x43
+ lsl r3, r3, #0xe
+ and r4, r5
+ orr r3, r4
+ orr r0, r3
+ lsl r2, r2, #0xd
+ orr r0, r1
+ orr r0, r2
+ strh r0, [r6, #0x0]
+ pop {r3-r7, pc}
+_02017768:
+ ldr r2, _020177D8 ; =0x0400100E
+ cmp r1, #0x1
+ ldrh r3, [r2, #0x0]
+ add r2, sp, #0x0
+ strh r3, [r2, #0x0]
+ bne _02017784
+ ldrh r3, [r2, #0x0]
+ ldr r1, _020177D0 ; =0xFFFFE0FF
+ lsl r0, r0, #0x1b
+ and r1, r3
+ lsr r0, r0, #0x13
+ orr r0, r1
+ strh r0, [r2, #0x0]
+ b _02017796
+_02017784:
+ cmp r1, #0x2
+ bne _02017796
+ ldrh r3, [r2, #0x0]
+ mov r1, #0x38
+ lsl r0, r0, #0x1d
+ bic r3, r1
+ lsr r0, r0, #0x1a
+ orr r0, r3
+ strh r0, [r2, #0x0]
+_02017796:
+ add r0, sp, #0x0
+ ldrh r3, [r0, #0x0]
+ ldr r6, _020177D8 ; =0x0400100E
+ lsl r1, r3, #0x13
+ lsr r4, r1, #0x1b
+ lsl r1, r3, #0x12
+ lsr r2, r1, #0x1f
+ lsl r0, r3, #0x1a
+ lsl r1, r3, #0x10
+ lsr r3, r1, #0x1e
+ lsl r1, r4, #0x8
+ lsr r0, r0, #0x1d
+ ldrh r5, [r6, #0x0]
+ mov r4, #0x43
+ lsl r3, r3, #0xe
+ and r4, r5
+ lsl r0, r0, #0x2
+ orr r3, r4
+ orr r0, r3
+ lsl r2, r2, #0xd
+ orr r0, r1
+ orr r0, r2
+ strh r0, [r6, #0x0]
+_020177C4:
+ add sp, #0x20
+ pop {r3-r7, pc}
+ .balign 4
+_020177C8: .word 0x04001008
+_020177CC: .word 0x0400100A
+_020177D0: .word 0xFFFFE0FF
+_020177D4: .word 0x0400100C
+_020177D8: .word 0x0400100E
+
+ thumb_func_start FUN_020177DC
+FUN_020177DC: ; 0x020177DC
+ cmp r1, #0x0
+ beq _020177EA
+ cmp r1, #0x1
+ beq _0201780A
+ cmp r1, #0x2
+ beq _0201782A
+ b _0201784A
+_020177EA:
+ cmp r0, #0x1
+ bne _020177F2
+ mov r0, #0x0
+ bx lr
+_020177F2:
+ cmp r0, #0x2
+ bne _020177FA
+ mov r0, #0x2
+ bx lr
+_020177FA:
+ cmp r0, #0x3
+ bne _02017802
+ mov r0, #0x1
+ bx lr
+_02017802:
+ cmp r0, #0x4
+ bne _0201784A
+ mov r0, #0x3
+ bx lr
+_0201780A:
+ cmp r0, #0x0
+ bne _02017812
+ mov r0, #0x0
+ bx lr
+_02017812:
+ cmp r0, #0x1
+ bne _0201781A
+ mov r0, #0x1
+ bx lr
+_0201781A:
+ cmp r0, #0x4
+ bne _02017822
+ mov r0, #0x2
+ bx lr
+_02017822:
+ cmp r0, #0x5
+ bne _0201784A
+ mov r0, #0x3
+ bx lr
+_0201782A:
+ cmp r0, #0x0
+ bne _02017832
+ mov r0, #0x0
+ bx lr
+_02017832:
+ cmp r0, #0x1
+ bne _0201783A
+ mov r0, #0x1
+ bx lr
+_0201783A:
+ cmp r0, #0x4
+ bne _02017842
+ mov r0, #0x2
+ bx lr
+_02017842:
+ cmp r0, #0x5
+ bne _0201784A
+ mov r0, #0x3
+ bx lr
+_0201784A:
+ mov r0, #0x0
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02017850
+FUN_02017850: ; 0x02017850
+ cmp r0, #0x5
+ bhi _0201789E
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02017860: ; jump table (using 16-bit offset)
+ .short _0201786C - _02017860 - 2; case 0
+ .short _02017874 - _02017860 - 2; case 1
+ .short _0201787C - _02017860 - 2; case 2
+ .short _02017886 - _02017860 - 2; case 3
+ .short _02017890 - _02017860 - 2; case 4
+ .short _02017898 - _02017860 - 2; case 5
+_0201786C:
+ mov r0, #0x10
+ strb r0, [r1, #0x0]
+ strb r0, [r2, #0x0]
+ bx lr
+_02017874:
+ mov r0, #0x20
+ strb r0, [r1, #0x0]
+ strb r0, [r2, #0x0]
+ bx lr
+_0201787C:
+ mov r0, #0x20
+ strb r0, [r1, #0x0]
+ mov r0, #0x40
+ strb r0, [r2, #0x0]
+ bx lr
+_02017886:
+ mov r0, #0x40
+ strb r0, [r1, #0x0]
+ mov r0, #0x20
+ strb r0, [r2, #0x0]
+ bx lr
+_02017890:
+ mov r0, #0x40
+ strb r0, [r1, #0x0]
+ strb r0, [r2, #0x0]
+ bx lr
+_02017898:
+ mov r0, #0x80
+ strb r0, [r1, #0x0]
+ strb r0, [r2, #0x0]
+_0201789E:
+ bx lr
+
+ thumb_func_start FUN_020178A0
+FUN_020178A0: ; 0x020178A0
+ push {r3-r5, lr}
+ add r4, r0, #0x0
+ mov r2, #0x2c
+ add r5, r1, #0x0
+ mul r5, r2
+ add r4, #0x8
+ ldr r0, [r4, r5]
+ cmp r0, #0x0
+ beq _020178BA
+ bl FUN_02016A18
+ mov r0, #0x0
+ str r0, [r4, r5]
+_020178BA:
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_020178BC
+FUN_020178BC: ; 0x020178BC
+ cmp r0, #0x7
+ bhi _0201795A
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_020178CC: ; jump table (using 16-bit offset)
+ .short _020178DC - _020178CC - 2; case 0
+ .short _020178EC - _020178CC - 2; case 1
+ .short _020178FC - _020178CC - 2; case 2
+ .short _0201790C - _020178CC - 2; case 3
+ .short _0201791C - _020178CC - 2; case 4
+ .short _0201792C - _020178CC - 2; case 5
+ .short _0201793C - _020178CC - 2; case 6
+ .short _0201794C - _020178CC - 2; case 7
+_020178DC:
+ ldr r2, _0201795C ; =0x04000008
+ mov r0, #0x3
+ ldrh r3, [r2, #0x0]
+ bic r3, r0
+ add r0, r3, #0x0
+ orr r0, r1
+ strh r0, [r2, #0x0]
+ bx lr
+_020178EC:
+ ldr r2, _02017960 ; =0x0400000A
+ mov r0, #0x3
+ ldrh r3, [r2, #0x0]
+ bic r3, r0
+ add r0, r3, #0x0
+ orr r0, r1
+ strh r0, [r2, #0x0]
+ bx lr
+_020178FC:
+ ldr r2, _02017964 ; =0x0400000C
+ mov r0, #0x3
+ ldrh r3, [r2, #0x0]
+ bic r3, r0
+ add r0, r3, #0x0
+ orr r0, r1
+ strh r0, [r2, #0x0]
+ bx lr
+_0201790C:
+ ldr r2, _02017968 ; =0x0400000E
+ mov r0, #0x3
+ ldrh r3, [r2, #0x0]
+ bic r3, r0
+ add r0, r3, #0x0
+ orr r0, r1
+ strh r0, [r2, #0x0]
+ bx lr
+_0201791C:
+ ldr r2, _0201796C ; =0x04001008
+ mov r0, #0x3
+ ldrh r3, [r2, #0x0]
+ bic r3, r0
+ add r0, r3, #0x0
+ orr r0, r1
+ strh r0, [r2, #0x0]
+ bx lr
+_0201792C:
+ ldr r2, _02017970 ; =0x0400100A
+ mov r0, #0x3
+ ldrh r3, [r2, #0x0]
+ bic r3, r0
+ add r0, r3, #0x0
+ orr r0, r1
+ strh r0, [r2, #0x0]
+ bx lr
+_0201793C:
+ ldr r2, _02017974 ; =0x0400100C
+ mov r0, #0x3
+ ldrh r3, [r2, #0x0]
+ bic r3, r0
+ add r0, r3, #0x0
+ orr r0, r1
+ strh r0, [r2, #0x0]
+ bx lr
+_0201794C:
+ ldr r2, _02017978 ; =0x0400100E
+ mov r0, #0x3
+ ldrh r3, [r2, #0x0]
+ bic r3, r0
+ add r0, r3, #0x0
+ orr r0, r1
+ strh r0, [r2, #0x0]
+_0201795A:
+ bx lr
+ .balign 4
+_0201795C: .word 0x04000008
+_02017960: .word 0x0400000A
+_02017964: .word 0x0400000C
+_02017968: .word 0x0400000E
+_0201796C: .word 0x04001008
+_02017970: .word 0x0400100A
+_02017974: .word 0x0400100C
+_02017978: .word 0x0400100E
+
+ thumb_func_start FUN_0201797C
+FUN_0201797C: ; 0x0201797C
+ push {r3, lr}
+ cmp r0, #0x7
+ bhi _020179DC
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0201798E: ; jump table (using 16-bit offset)
+ .short _0201799E - _0201798E - 2; case 0
+ .short _020179A6 - _0201798E - 2; case 1
+ .short _020179AE - _0201798E - 2; case 2
+ .short _020179B6 - _0201798E - 2; case 3
+ .short _020179BE - _0201798E - 2; case 4
+ .short _020179C6 - _0201798E - 2; case 5
+ .short _020179CE - _0201798E - 2; case 6
+ .short _020179D6 - _0201798E - 2; case 7
+_0201799E:
+ mov r0, #0x1
+ bl FUN_0201E6E4
+ pop {r3, pc}
+_020179A6:
+ mov r0, #0x2
+ bl FUN_0201E6E4
+ pop {r3, pc}
+_020179AE:
+ mov r0, #0x4
+ bl FUN_0201E6E4
+ pop {r3, pc}
+_020179B6:
+ mov r0, #0x8
+ bl FUN_0201E6E4
+ pop {r3, pc}
+_020179BE:
+ mov r0, #0x1
+ bl FUN_0201E74C
+ pop {r3, pc}
+_020179C6:
+ mov r0, #0x2
+ bl FUN_0201E74C
+ pop {r3, pc}
+_020179CE:
+ mov r0, #0x4
+ bl FUN_0201E74C
+ pop {r3, pc}
+_020179D6:
+ mov r0, #0x8
+ bl FUN_0201E74C
+_020179DC:
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_020179E0
+FUN_020179E0: ; 0x020179E0
+ push {r4-r6, lr}
+ add r5, r1, #0x0
+ add r4, r0, #0x0
+ mov r0, #0x2c
+ add r6, r5, #0x0
+ mul r6, r0
+ add r0, r4, #0x0
+ add r0, #0x8
+ add r1, r2, #0x0
+ add r2, r3, #0x0
+ add r0, r0, r6
+ bl FUN_02017B8C
+ add r0, r4, r6
+ ldr r1, [r0, #0x14]
+ ldr r0, [r0, #0x18]
+ cmp r5, #0x7
+ bls _02017A06
+ b _02017B1C
+_02017A06:
+ add r2, r5, r5
+ add r2, pc
+ ldrh r2, [r2, #0x6]
+ lsl r2, r2, #0x10
+ asr r2, r2, #0x10
+ add pc, r2
+_02017A12: ; jump table (using 16-bit offset)
+ .short _02017A22 - _02017A12 - 2; case 0
+ .short _02017A38 - _02017A12 - 2; case 1
+ .short _02017A4E - _02017A12 - 2; case 2
+ .short _02017A78 - _02017A12 - 2; case 3
+ .short _02017AA2 - _02017A12 - 2; case 4
+ .short _02017AB8 - _02017A12 - 2; case 5
+ .short _02017ACE - _02017A12 - 2; case 6
+ .short _02017AF6 - _02017A12 - 2; case 7
+_02017A22:
+ ldr r2, _02017B20 ; =0x000001FF
+ add r3, r1, #0x0
+ lsl r1, r0, #0x10
+ lsl r0, r2, #0x10
+ and r3, r2
+ and r0, r1
+ add r1, r3, #0x0
+ orr r1, r0
+ ldr r0, _02017B24 ; =0x04000010
+ str r1, [r0, #0x0]
+ pop {r4-r6, pc}
+_02017A38:
+ ldr r2, _02017B20 ; =0x000001FF
+ add r3, r1, #0x0
+ lsl r1, r0, #0x10
+ lsl r0, r2, #0x10
+ and r3, r2
+ and r0, r1
+ add r1, r3, #0x0
+ orr r1, r0
+ ldr r0, _02017B28 ; =0x04000014
+ str r1, [r0, #0x0]
+ pop {r4-r6, pc}
+_02017A4E:
+ add r2, r4, #0x0
+ add r2, #0x74
+ ldrb r2, [r2, #0x0]
+ cmp r2, #0x0
+ bne _02017A6E
+ ldr r2, _02017B20 ; =0x000001FF
+ add r3, r1, #0x0
+ lsl r1, r0, #0x10
+ lsl r0, r2, #0x10
+ and r3, r2
+ and r0, r1
+ add r1, r3, #0x0
+ orr r1, r0
+ ldr r0, _02017B2C ; =0x04000018
+ str r1, [r0, #0x0]
+ pop {r4-r6, pc}
+_02017A6E:
+ add r0, r4, #0x0
+ mov r1, #0x2
+ bl FUN_02017C6C
+ pop {r4-r6, pc}
+_02017A78:
+ add r2, r4, #0x0
+ add r2, #0xa0
+ ldrb r2, [r2, #0x0]
+ cmp r2, #0x0
+ bne _02017A98
+ ldr r2, _02017B20 ; =0x000001FF
+ add r3, r1, #0x0
+ lsl r1, r0, #0x10
+ lsl r0, r2, #0x10
+ and r3, r2
+ and r0, r1
+ add r1, r3, #0x0
+ orr r1, r0
+ ldr r0, _02017B30 ; =0x0400001C
+ str r1, [r0, #0x0]
+ pop {r4-r6, pc}
+_02017A98:
+ add r0, r4, #0x0
+ mov r1, #0x3
+ bl FUN_02017C6C
+ pop {r4-r6, pc}
+_02017AA2:
+ ldr r2, _02017B20 ; =0x000001FF
+ add r3, r1, #0x0
+ lsl r1, r0, #0x10
+ lsl r0, r2, #0x10
+ and r3, r2
+ and r0, r1
+ add r1, r3, #0x0
+ orr r1, r0
+ ldr r0, _02017B34 ; =0x04001010
+ str r1, [r0, #0x0]
+ pop {r4-r6, pc}
+_02017AB8:
+ ldr r2, _02017B20 ; =0x000001FF
+ add r3, r1, #0x0
+ lsl r1, r0, #0x10
+ lsl r0, r2, #0x10
+ and r3, r2
+ and r0, r1
+ add r1, r3, #0x0
+ orr r1, r0
+ ldr r0, _02017B38 ; =0x04001014
+ str r1, [r0, #0x0]
+ pop {r4-r6, pc}
+_02017ACE:
+ mov r2, #0x49
+ lsl r2, r2, #0x2
+ ldrb r3, [r4, r2]
+ cmp r3, #0x0
+ bne _02017AEC
+ add r2, #0xdb
+ and r2, r1
+ lsl r1, r0, #0x10
+ ldr r0, _02017B3C ; =0x01FF0000
+ and r0, r1
+ add r1, r2, #0x0
+ orr r1, r0
+ ldr r0, _02017B40 ; =0x04001018
+ str r1, [r0, #0x0]
+ pop {r4-r6, pc}
+_02017AEC:
+ add r0, r4, #0x0
+ mov r1, #0x6
+ bl FUN_02017C6C
+ pop {r4-r6, pc}
+_02017AF6:
+ mov r2, #0x15
+ lsl r2, r2, #0x4
+ ldrb r3, [r4, r2]
+ cmp r3, #0x0
+ bne _02017B14
+ add r2, #0xaf
+ and r2, r1
+ lsl r1, r0, #0x10
+ ldr r0, _02017B3C ; =0x01FF0000
+ and r0, r1
+ add r1, r2, #0x0
+ orr r1, r0
+ ldr r0, _02017B44 ; =0x0400101C
+ str r1, [r0, #0x0]
+ pop {r4-r6, pc}
+_02017B14:
+ add r0, r4, #0x0
+ mov r1, #0x7
+ bl FUN_02017C6C
+_02017B1C:
+ pop {r4-r6, pc}
+ nop
+_02017B20: .word 0x000001FF
+_02017B24: .word 0x04000010
+_02017B28: .word 0x04000014
+_02017B2C: .word 0x04000018
+_02017B30: .word 0x0400001C
+_02017B34: .word 0x04001010
+_02017B38: .word 0x04001014
+_02017B3C: .word 0x01FF0000
+_02017B40: .word 0x04001018
+_02017B44: .word 0x0400101C
+
+ thumb_func_start FUN_02017B48
+FUN_02017B48: ; 0x02017B48
+ mov r2, #0x2c
+ mul r2, r1
+ add r0, r0, r2
+ ldr r0, [r0, #0x14]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02017B54
+FUN_02017B54: ; 0x02017B54
+ mov r2, #0x2c
+ mul r2, r1
+ add r0, r0, r2
+ ldr r0, [r0, #0x18]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02017B60
+FUN_02017B60: ; 0x02017B60
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ add r1, r5, #0x0
+ mov r0, #0x2c
+ add r1, #0x8
+ mul r0, r4
+ add r0, r1, r0
+ add r1, r2, #0x0
+ add r2, r3, #0x0
+ bl FUN_02017B8C
+ ldr r0, [sp, #0x18]
+ ldr r2, [sp, #0x10]
+ str r0, [sp, #0x0]
+ ldr r3, [sp, #0x14]
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_02017BD0
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_02017B8C
+FUN_02017B8C: ; 0x02017B8C
+ cmp r1, #0x5
+ bhi _02017BCE
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #0x6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_02017B9C: ; jump table (using 16-bit offset)
+ .short _02017BA8 - _02017B9C - 2; case 0
+ .short _02017BAC - _02017B9C - 2; case 1
+ .short _02017BB4 - _02017B9C - 2; case 2
+ .short _02017BBC - _02017B9C - 2; case 3
+ .short _02017BC0 - _02017B9C - 2; case 4
+ .short _02017BC8 - _02017B9C - 2; case 5
+_02017BA8:
+ str r2, [r0, #0xc]
+ bx lr
+_02017BAC:
+ ldr r1, [r0, #0xc]
+ add r1, r1, r2
+ str r1, [r0, #0xc]
+ bx lr
+_02017BB4:
+ ldr r1, [r0, #0xc]
+ sub r1, r1, r2
+ str r1, [r0, #0xc]
+ bx lr
+_02017BBC:
+ str r2, [r0, #0x10]
+ bx lr
+_02017BC0:
+ ldr r1, [r0, #0x10]
+ add r1, r1, r2
+ str r1, [r0, #0x10]
+ bx lr
+_02017BC8:
+ ldr r1, [r0, #0x10]
+ sub r1, r1, r2
+ str r1, [r0, #0x10]
+_02017BCE:
+ bx lr
+
+ thumb_func_start FUN_02017BD0
+FUN_02017BD0: ; 0x02017BD0
+ push {r3-r5, lr}
+ sub sp, #0x8
+ add r4, r1, #0x0
+ add r1, r2, #0x0
+ add r2, r3, #0x0
+ ldr r3, [sp, #0x18]
+ cmp r4, #0x7
+ bhi _02017C58
+ add r5, r4, r4
+ add r5, pc
+ ldrh r5, [r5, #0x6]
+ lsl r5, r5, #0x10
+ asr r5, r5, #0x10
+ add pc, r5
+_02017BEC: ; jump table (using 16-bit offset)
+ .short _02017C58 - _02017BEC - 2; case 0
+ .short _02017C58 - _02017BEC - 2; case 1
+ .short _02017BFC - _02017BEC - 2; case 2
+ .short _02017C14 - _02017BEC - 2; case 3
+ .short _02017C58 - _02017BEC - 2; case 4
+ .short _02017C58 - _02017BEC - 2; case 5
+ .short _02017C2C - _02017BEC - 2; case 6
+ .short _02017C44 - _02017BEC - 2; case 7
+_02017BFC:
+ mov r5, #0x2c
+ mul r5, r4
+ add r4, r0, r5
+ ldr r0, [r4, #0x14]
+ str r0, [sp, #0x0]
+ ldr r0, [r4, #0x18]
+ str r0, [sp, #0x4]
+ ldr r0, _02017C5C ; =0x04000020
+ blx G2x_SetBGyAffine_
+ add sp, #0x8
+ pop {r3-r5, pc}
+_02017C14:
+ mov r5, #0x2c
+ mul r5, r4
+ add r4, r0, r5
+ ldr r0, [r4, #0x14]
+ str r0, [sp, #0x0]
+ ldr r0, [r4, #0x18]
+ str r0, [sp, #0x4]
+ ldr r0, _02017C60 ; =0x04000030
+ blx G2x_SetBGyAffine_
+ add sp, #0x8
+ pop {r3-r5, pc}
+_02017C2C:
+ mov r5, #0x2c
+ mul r5, r4
+ add r4, r0, r5
+ ldr r0, [r4, #0x14]
+ str r0, [sp, #0x0]
+ ldr r0, [r4, #0x18]
+ str r0, [sp, #0x4]
+ ldr r0, _02017C64 ; =0x04001020
+ blx G2x_SetBGyAffine_
+ add sp, #0x8
+ pop {r3-r5, pc}
+_02017C44:
+ mov r5, #0x2c
+ mul r5, r4
+ add r4, r0, r5
+ ldr r0, [r4, #0x14]
+ str r0, [sp, #0x0]
+ ldr r0, [r4, #0x18]
+ str r0, [sp, #0x4]
+ ldr r0, _02017C68 ; =0x04001030
+ blx G2x_SetBGyAffine_
+_02017C58:
+ add sp, #0x8
+ pop {r3-r5, pc}
+ .balign 4
+_02017C5C: .word 0x04000020
+_02017C60: .word 0x04000030
+_02017C64: .word 0x04001020
+_02017C68: .word 0x04001030
+
+ thumb_func_start FUN_02017C6C
+FUN_02017C6C: ; 0x02017C6C
+ push {r4-r5, lr}
+ sub sp, #0x14
+ mov r2, #0x1
+ lsl r2, r2, #0xc
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ mov r1, #0x0
+ add r0, sp, #0x4
+ add r3, r2, #0x0
+ str r1, [sp, #0x0]
+ bl FUN_0201BB74
+ mov r3, #0x0
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ add r2, sp, #0x4
+ str r3, [sp, #0x0]
+ bl FUN_02017BD0
+ add sp, #0x14
+ pop {r4-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_02017C98
+FUN_02017C98: ; 0x02017C98
+ push {r3-r5, lr}
+ cmp r2, #0x0
+ bne _02017CA4
+ blx MI_UncompressLZ8
+ pop {r3-r5, pc}
+_02017CA4:
+ mov r4, #0x3
+ add r3, r0, #0x0
+ tst r3, r4
+ bne _02017CCA
+ add r3, r1, #0x0
+ tst r3, r4
+ bne _02017CCA
+ lsl r3, r2, #0x10
+ lsr r3, r3, #0x10
+ lsr r4, r3, #0x1f
+ lsl r5, r3, #0x1e
+ sub r5, r5, r4
+ mov r3, #0x1e
+ ror r5, r3
+ add r3, r4, r5
+ bne _02017CCA
+ blx MIi_CpuCopy32
+ pop {r3-r5, pc}
+_02017CCA:
+ blx MIi_CpuCopy16
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_02017CD0
+FUN_02017CD0: ; 0x02017CD0
+ push {r3, lr}
+ mov r2, #0x2c
+ mul r2, r1
+ add r3, r0, r2
+ ldr r2, [r3, #0x10]
+ str r2, [sp, #0x0]
+ ldr r2, [r3, #0x8]
+ ldr r3, [r3, #0xc]
+ bl FUN_02017CE8
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_02017CE8
+FUN_02017CE8: ; 0x02017CE8
+ push {r3-r7, lr}
+ sub sp, #0x8
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ add r6, r2, #0x0
+ str r3, [sp, #0x0]
+ cmp r3, #0x0
+ bne _02017D56
+ mov r0, #0x2c
+ add r7, r4, #0x0
+ mul r7, r0
+ add r0, r5, r7
+ ldr r0, [r0, #0x8]
+ str r0, [sp, #0x4]
+ cmp r0, #0x0
+ beq _02017D26
+ ldr r1, [sp, #0x4]
+ add r0, r6, #0x0
+ add r2, r3, #0x0
+ bl FUN_02017C98
+ add r3, r5, r7
+ ldr r2, [r3, #0x10]
+ ldr r1, [sp, #0x4]
+ ldr r3, [r3, #0xc]
+ add r0, r4, #0x0
+ lsl r2, r2, #0x1
+ bl FUN_02017D68
+ add sp, #0x8
+ pop {r3-r7, pc}
+_02017D26:
+ ldr r0, [r6, #0x0]
+ lsr r7, r0, #0x8
+ ldr r0, [r5, #0x0]
+ add r1, r7, #0x0
+ bl FUN_020169D8
+ add r5, r0, #0x0
+ ldr r2, [sp, #0x0]
+ add r0, r6, #0x0
+ add r1, r5, #0x0
+ bl FUN_02017C98
+ ldr r2, [sp, #0x20]
+ add r0, r4, #0x0
+ add r1, r5, #0x0
+ lsl r2, r2, #0x1
+ add r3, r7, #0x0
+ bl FUN_02017D68
+ add r0, r5, #0x0
+ bl FUN_02016A18
+ add sp, #0x8
+ pop {r3-r7, pc}
+_02017D56:
+ ldr r2, [sp, #0x20]
+ add r0, r4, #0x0
+ add r1, r6, #0x0
+ lsl r2, r2, #0x1
+ bl FUN_02017D68
+ add sp, #0x8
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_02017D68
+FUN_02017D68: ; 0x02017D68
+ push {r3-r7, lr}
+ add r4, r1, #0x0
+ add r6, r3, #0x0
+ add r7, r0, #0x0
+ add r0, r4, #0x0
+ add r1, r6, #0x0
+ add r5, r2, #0x0
+ blx DC_FlushRange
+ cmp r7, #0x7
+ bhi _02017DF8
+ add r0, r7, r7
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02017D8A: ; jump table (using 16-bit offset)
+ .short _02017D9A - _02017D8A - 2; case 0
+ .short _02017DA6 - _02017D8A - 2; case 1
+ .short _02017DB2 - _02017D8A - 2; case 2
+ .short _02017DBE - _02017D8A - 2; case 3
+ .short _02017DCA - _02017D8A - 2; case 4
+ .short _02017DD6 - _02017D8A - 2; case 5
+ .short _02017DE2 - _02017D8A - 2; case 6
+ .short _02017DEE - _02017D8A - 2; case 7
+_02017D9A:
+ add r0, r4, #0x0
+ add r1, r5, #0x0
+ add r2, r6, #0x0
+ blx GX_LoadBG0Scr
+ pop {r3-r7, pc}
+_02017DA6:
+ add r0, r4, #0x0
+ add r1, r5, #0x0
+ add r2, r6, #0x0
+ blx GX_LoadBG1Scr
+ pop {r3-r7, pc}
+_02017DB2:
+ add r0, r4, #0x0
+ add r1, r5, #0x0
+ add r2, r6, #0x0
+ blx GX_LoadBG2Scr
+ pop {r3-r7, pc}
+_02017DBE:
+ add r0, r4, #0x0
+ add r1, r5, #0x0
+ add r2, r6, #0x0
+ blx GX_LoadBG3Scr
+ pop {r3-r7, pc}
+_02017DCA:
+ add r0, r4, #0x0
+ add r1, r5, #0x0
+ add r2, r6, #0x0
+ blx GXS_LoadBG0Scr
+ pop {r3-r7, pc}
+_02017DD6:
+ add r0, r4, #0x0
+ add r1, r5, #0x0
+ add r2, r6, #0x0
+ blx GXS_LoadBG1Scr
+ pop {r3-r7, pc}
+_02017DE2:
+ add r0, r4, #0x0
+ add r1, r5, #0x0
+ add r2, r6, #0x0
+ blx GXS_LoadBG2Scr
+ pop {r3-r7, pc}
+_02017DEE:
+ add r0, r4, #0x0
+ add r1, r5, #0x0
+ add r2, r6, #0x0
+ blx GXS_LoadBG3Scr
+_02017DF8:
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_02017DFC
+FUN_02017DFC: ; 0x02017DFC
+ push {r4, lr}
+ add r4, r0, #0x0
+ add r0, r2, #0x0
+ mov r2, #0x2c
+ mul r2, r1
+ add r1, r4, r2
+ ldr r1, [r1, #0x8]
+ add r2, r3, #0x0
+ bl FUN_02017C98
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02017E14
+FUN_02017E14: ; 0x02017E14
+ push {r3-r4, lr}
+ sub sp, #0x4
+ mov r4, #0x2c
+ mul r4, r1
+ add r4, r0, r4
+ ldrb r4, [r4, #0x1e]
+ cmp r4, #0x0
+ bne _02017E32
+ ldr r4, [sp, #0x10]
+ lsl r4, r4, #0x5
+ str r4, [sp, #0x0]
+ bl FUN_02017E40
+ add sp, #0x4
+ pop {r3-r4, pc}
+_02017E32:
+ ldr r4, [sp, #0x10]
+ lsl r4, r4, #0x6
+ str r4, [sp, #0x0]
+ bl FUN_02017E40
+ add sp, #0x4
+ pop {r3-r4, pc}
+
+ thumb_func_start FUN_02017E40
+FUN_02017E40: ; 0x02017E40
+ push {r3-r7, lr}
+ add r7, r1, #0x0
+ add r5, r2, #0x0
+ str r3, [sp, #0x0]
+ cmp r3, #0x0
+ bne _02017E78
+ ldr r1, [r5, #0x0]
+ ldr r0, [r0, #0x0]
+ lsr r4, r1, #0x8
+ add r1, r4, #0x0
+ bl FUN_020169D8
+ add r6, r0, #0x0
+ ldr r2, [sp, #0x0]
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ bl FUN_02017C98
+ ldr r2, [sp, #0x18]
+ add r0, r7, #0x0
+ add r1, r6, #0x0
+ add r3, r4, #0x0
+ bl FUN_02017E84
+ add r0, r6, #0x0
+ bl FUN_02016A18
+ pop {r3-r7, pc}
+_02017E78:
+ ldr r2, [sp, #0x18]
+ add r0, r7, #0x0
+ add r1, r5, #0x0
+ bl FUN_02017E84
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_02017E84
+FUN_02017E84: ; 0x02017E84
+ push {r3-r7, lr}
+ add r4, r1, #0x0
+ add r6, r3, #0x0
+ add r7, r0, #0x0
+ add r0, r4, #0x0
+ add r1, r6, #0x0
+ add r5, r2, #0x0
+ blx DC_FlushRange
+ cmp r7, #0x7
+ bhi _02017F14
+ add r0, r7, r7
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02017EA6: ; jump table (using 16-bit offset)
+ .short _02017EB6 - _02017EA6 - 2; case 0
+ .short _02017EC2 - _02017EA6 - 2; case 1
+ .short _02017ECE - _02017EA6 - 2; case 2
+ .short _02017EDA - _02017EA6 - 2; case 3
+ .short _02017EE6 - _02017EA6 - 2; case 4
+ .short _02017EF2 - _02017EA6 - 2; case 5
+ .short _02017EFE - _02017EA6 - 2; case 6
+ .short _02017F0A - _02017EA6 - 2; case 7
+_02017EB6:
+ add r0, r4, #0x0
+ add r1, r5, #0x0
+ add r2, r6, #0x0
+ blx GX_LoadBG0Char
+ pop {r3-r7, pc}
+_02017EC2:
+ add r0, r4, #0x0
+ add r1, r5, #0x0
+ add r2, r6, #0x0
+ blx GX_LoadBG1Char
+ pop {r3-r7, pc}
+_02017ECE:
+ add r0, r4, #0x0
+ add r1, r5, #0x0
+ add r2, r6, #0x0
+ blx GX_LoadBG2Char
+ pop {r3-r7, pc}
+_02017EDA:
+ add r0, r4, #0x0
+ add r1, r5, #0x0
+ add r2, r6, #0x0
+ blx GX_LoadBG3Char
+ pop {r3-r7, pc}
+_02017EE6:
+ add r0, r4, #0x0
+ add r1, r5, #0x0
+ add r2, r6, #0x0
+ blx GXS_LoadBG0Char
+ pop {r3-r7, pc}
+_02017EF2:
+ add r0, r4, #0x0
+ add r1, r5, #0x0
+ add r2, r6, #0x0
+ blx GXS_LoadBG1Char
+ pop {r3-r7, pc}
+_02017EFE:
+ add r0, r4, #0x0
+ add r1, r5, #0x0
+ add r2, r6, #0x0
+ blx GXS_LoadBG2Char
+ pop {r3-r7, pc}
+_02017F0A:
+ add r0, r4, #0x0
+ add r1, r5, #0x0
+ add r2, r6, #0x0
+ blx GXS_LoadBG3Char
+_02017F14:
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_02017F18
+FUN_02017F18: ; 0x02017F18
+ push {r3-r7, lr}
+ add r6, r0, #0x0
+ add r5, r1, #0x0
+ add r0, r3, #0x0
+ add r7, r2, #0x0
+ str r3, [sp, #0x0]
+ bl FUN_020169D8
+ add r4, r0, #0x0
+ mov r1, #0x0
+ add r2, r5, #0x0
+ blx Call_FillMemWithValue
+ add r0, r6, #0x0
+ add r1, r4, #0x0
+ add r2, r7, #0x0
+ add r3, r5, #0x0
+ bl FUN_02017E84
+ ldr r0, [sp, #0x0]
+ add r1, r4, #0x0
+ bl FUN_02016A8C
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_02017F48
+FUN_02017F48: ; 0x02017F48
+ push {r3-r7, lr}
+ sub sp, #0x8
+ add r7, r1, #0x0
+ add r4, r0, #0x0
+ mov r1, #0x2c
+ add r6, r7, #0x0
+ add r4, #0x1f
+ mul r6, r1
+ ldrb r1, [r4, r6]
+ ldr r0, [r0, #0x0]
+ add r5, r2, #0x0
+ mul r1, r3
+ str r1, [sp, #0x0]
+ bl FUN_020169D8
+ str r0, [sp, #0x4]
+ ldrb r0, [r4, r6]
+ cmp r0, #0x20
+ bne _02017F82
+ lsl r2, r5, #0xc
+ lsl r1, r5, #0x8
+ lsl r0, r5, #0x4
+ orr r1, r2
+ orr r0, r1
+ add r1, r5, #0x0
+ orr r1, r0
+ lsl r0, r1, #0x10
+ add r5, r1, #0x0
+ b _02017F8C
+_02017F82:
+ lsl r2, r5, #0x18
+ lsl r1, r5, #0x10
+ lsl r0, r5, #0x8
+ orr r1, r2
+ orr r0, r1
+_02017F8C:
+ orr r5, r0
+ ldr r1, [sp, #0x4]
+ ldr r2, [sp, #0x0]
+ add r0, r5, #0x0
+ blx MIi_CpuClearFast
+ lsl r0, r7, #0x18
+ ldrb r2, [r4, r6]
+ ldr r3, [sp, #0x20]
+ ldr r1, [sp, #0x4]
+ mul r2, r3
+ ldr r3, [sp, #0x0]
+ lsr r0, r0, #0x18
+ bl FUN_02017E84
+ ldr r0, [sp, #0x4]
+ bl FUN_02016A18
+ add sp, #0x8
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_02017FB4
+FUN_02017FB4: ; 0x02017FB4
+ push {r3-r7, lr}
+ add r5, r1, #0x0
+ add r4, r2, #0x0
+ add r6, r0, #0x0
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ add r7, r3, #0x0
+ blx DC_FlushRange
+ cmp r6, #0x4
+ bhs _02017FD6
+ add r0, r5, #0x0
+ add r1, r7, #0x0
+ add r2, r4, #0x0
+ blx GX_LoadBGPltt
+ pop {r3-r7, pc}
+_02017FD6:
+ add r0, r5, #0x0
+ add r1, r7, #0x0
+ add r2, r4, #0x0
+ blx GXS_LoadBGPltt
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_02017FE4
+FUN_02017FE4: ; 0x02017FE4
+ push {r0-r3}
+ push {r3, lr}
+ add r1, sp, #0xc
+ mov r2, #0x2
+ mov r3, #0x0
+ bl FUN_02017FB4
+ pop {r3}
+ pop {r3}
+ add sp, #0x10
+ bx r3
+ .balign 4
+
+ thumb_func_start FUN_02017FFC
+FUN_02017FFC: ; 0x02017FFC
+ cmp r2, #0x5
+ bhi _02018066
+ add r2, r2, r2
+ add r2, pc
+ ldrh r2, [r2, #0x6]
+ lsl r2, r2, #0x10
+ asr r2, r2, #0x10
+ add pc, r2
+_0201800C: ; jump table (using 16-bit offset)
+ .short _02018018 - _0201800C - 2; case 0
+ .short _02018022 - _0201800C - 2; case 1
+ .short _02018022 - _0201800C - 2; case 2
+ .short _0201802C - _0201800C - 2; case 3
+ .short _02018042 - _0201800C - 2; case 4
+ .short _02018064 - _0201800C - 2; case 5
+_02018018:
+ lsl r1, r1, #0x4
+ add r0, r0, r1
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ bx lr
+_02018022:
+ lsl r1, r1, #0x5
+ add r0, r0, r1
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ bx lr
+_0201802C:
+ mov r2, #0x1f
+ add r3, r0, #0x0
+ and r3, r2
+ mov r2, #0x1f
+ bic r0, r2
+ add r0, r1, r0
+ lsl r0, r0, #0x5
+ add r0, r3, r0
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ bx lr
+_02018042:
+ asr r2, r1, #0x5
+ asr r3, r0, #0x5
+ lsl r2, r2, #0x1
+ add r2, r3, r2
+ lsl r2, r2, #0x10
+ lsr r2, r2, #0x10
+ lsl r2, r2, #0x1a
+ lsr r3, r2, #0x10
+ mov r2, #0x1f
+ and r2, r0
+ lsl r0, r1, #0x1b
+ lsr r0, r0, #0x16
+ add r0, r2, r0
+ add r0, r3, r0
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ bx lr
+_02018064:
+ mov r0, #0x0
+_02018066:
+ bx lr
+
+ thumb_func_start FUN_02018068
+FUN_02018068: ; 0x02018068
+ push {r3-r7}
+ sub sp, #0x4
+ str r3, [sp, #0x0]
+ add r6, r2, #0x0
+ ldr r5, [sp, #0x0]
+ add r4, r6, #0x0
+ sub r4, #0x20
+ sub r5, #0x20
+ mov r2, #0x0
+ lsl r4, r4, #0x10
+ lsl r5, r5, #0x10
+ add r3, r2, #0x0
+ asr r4, r4, #0x10
+ asr r7, r5, #0x10
+ lsr r5, r0, #0x5
+ beq _0201808E
+ add r2, r2, #0x1
+ lsl r2, r2, #0x18
+ lsr r2, r2, #0x18
+_0201808E:
+ lsr r5, r1, #0x5
+ beq _02018098
+ add r2, r2, #0x2
+ lsl r2, r2, #0x18
+ lsr r2, r2, #0x18
+_02018098:
+ cmp r2, #0x3
+ bhi _02018140
+ add r2, r2, r2
+ add r2, pc
+ ldrh r2, [r2, #0x6]
+ lsl r2, r2, #0x10
+ asr r2, r2, #0x10
+ add pc, r2
+_020180A8: ; jump table (using 16-bit offset)
+ .short _020180B0 - _020180A8 - 2; case 0
+ .short _020180CE - _020180A8 - 2; case 1
+ .short _020180F4 - _020180A8 - 2; case 2
+ .short _02018120 - _020180A8 - 2; case 3
+_020180B0:
+ cmp r4, #0x0
+ blt _020180C0
+ lsl r1, r1, #0x5
+ add r0, r0, r1
+ add r0, r3, r0
+ lsl r0, r0, #0x10
+ lsr r3, r0, #0x10
+ b _02018140
+_020180C0:
+ add r2, r1, #0x0
+ mul r2, r6
+ add r0, r0, r2
+ add r0, r3, r0
+ lsl r0, r0, #0x10
+ lsr r3, r0, #0x10
+ b _02018140
+_020180CE:
+ cmp r7, #0x0
+ blt _020180D8
+ mov r2, #0x1
+ lsl r2, r2, #0xa
+ b _020180DC
+_020180D8:
+ ldr r2, [sp, #0x0]
+ lsl r2, r2, #0x5
+_020180DC:
+ add r2, r3, r2
+ lsl r2, r2, #0x10
+ lsr r3, r2, #0x10
+ mov r2, #0x1f
+ and r2, r0
+ add r0, r1, #0x0
+ mul r0, r4
+ add r0, r2, r0
+ add r0, r3, r0
+ lsl r0, r0, #0x10
+ lsr r3, r0, #0x10
+ b _02018140
+_020180F4:
+ lsl r2, r6, #0x5
+ add r2, r3, r2
+ lsl r2, r2, #0x10
+ lsr r2, r2, #0x10
+ cmp r4, #0x0
+ blt _0201810E
+ lsl r1, r1, #0x1b
+ lsr r1, r1, #0x16
+ add r0, r0, r1
+ add r0, r2, r0
+ lsl r0, r0, #0x10
+ lsr r3, r0, #0x10
+ b _02018140
+_0201810E:
+ mov r3, #0x1f
+ and r1, r3
+ add r3, r1, #0x0
+ mul r3, r6
+ add r0, r0, r3
+ add r0, r2, r0
+ lsl r0, r0, #0x10
+ lsr r3, r0, #0x10
+ b _02018140
+_02018120:
+ add r2, r6, r7
+ lsl r2, r2, #0x5
+ add r2, r3, r2
+ add r5, r0, #0x0
+ mov r3, #0x1f
+ add r0, r1, #0x0
+ and r0, r3
+ add r1, r0, #0x0
+ lsl r2, r2, #0x10
+ and r5, r3
+ mul r1, r4
+ lsr r2, r2, #0x10
+ add r0, r5, r1
+ add r0, r2, r0
+ lsl r0, r0, #0x10
+ lsr r3, r0, #0x10
+_02018140:
+ add r0, r3, #0x0
+ add sp, #0x4
+ pop {r3-r7}
+ bx lr
+
+ thumb_func_start FUN_02018148
+FUN_02018148: ; 0x02018148
+ push {r3-r6, lr}
+ sub sp, #0x1c
+ add r6, sp, #0x20
+ ldrb r5, [r6, #0x14]
+ str r5, [sp, #0x0]
+ ldrb r4, [r6, #0x18]
+ str r4, [sp, #0x4]
+ str r2, [sp, #0x8]
+ mov r2, #0x0
+ str r2, [sp, #0xc]
+ str r2, [sp, #0x10]
+ str r5, [sp, #0x14]
+ str r4, [sp, #0x18]
+ add r2, r3, #0x0
+ ldrb r3, [r6, #0x10]
+ bl FUN_02018170
+ add sp, #0x1c
+ pop {r3-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_02018170
+FUN_02018170: ; 0x02018170
+ push {r4-r5, lr}
+ sub sp, #0x1c
+ add r4, r2, #0x0
+ add r2, r3, #0x0
+ mov r3, #0x2c
+ add r5, r1, #0x0
+ mul r5, r3
+ add r1, r0, r5
+ ldrb r1, [r1, #0x1c]
+ add r3, sp, #0x18
+ cmp r1, #0x1
+ beq _020181BA
+ ldrb r1, [r3, #0x14]
+ add r0, #0x8
+ add r0, r0, r5
+ str r1, [sp, #0x0]
+ ldr r1, [sp, #0x30]
+ str r1, [sp, #0x4]
+ ldrb r1, [r3, #0x1c]
+ str r1, [sp, #0x8]
+ add r1, sp, #0x38
+ ldrb r1, [r1, #0x0]
+ str r1, [sp, #0xc]
+ add r1, sp, #0x3c
+ ldrb r1, [r1, #0x0]
+ str r1, [sp, #0x10]
+ add r1, sp, #0x40
+ ldrb r1, [r1, #0x0]
+ str r1, [sp, #0x14]
+ mov r1, #0x0
+ str r1, [sp, #0x18]
+ ldrb r3, [r3, #0x10]
+ add r1, r4, #0x0
+ bl FUN_02018268
+ add sp, #0x1c
+ pop {r4-r5, pc}
+_020181BA:
+ ldrb r1, [r3, #0x14]
+ add r0, #0x8
+ add r0, r0, r5
+ str r1, [sp, #0x0]
+ ldr r1, [sp, #0x30]
+ str r1, [sp, #0x4]
+ ldrb r1, [r3, #0x1c]
+ str r1, [sp, #0x8]
+ add r1, sp, #0x38
+ ldrb r1, [r1, #0x0]
+ str r1, [sp, #0xc]
+ add r1, sp, #0x3c
+ ldrb r1, [r1, #0x0]
+ str r1, [sp, #0x10]
+ add r1, sp, #0x40
+ ldrb r1, [r1, #0x0]
+ str r1, [sp, #0x14]
+ mov r1, #0x0
+ str r1, [sp, #0x18]
+ ldrb r3, [r3, #0x10]
+ add r1, r4, #0x0
+ bl FUN_020183DC
+ add sp, #0x1c
+ pop {r4-r5, pc}
+
+ thumb_func_start FUN_020181EC
+FUN_020181EC: ; 0x020181EC
+ push {r4-r5, lr}
+ sub sp, #0x1c
+ add r4, r2, #0x0
+ add r2, r3, #0x0
+ mov r3, #0x2c
+ add r5, r1, #0x0
+ mul r5, r3
+ add r1, r0, r5
+ ldrb r1, [r1, #0x1c]
+ add r3, sp, #0x18
+ cmp r1, #0x1
+ beq _02018236
+ ldrb r1, [r3, #0x14]
+ add r0, #0x8
+ add r0, r0, r5
+ str r1, [sp, #0x0]
+ ldr r1, [sp, #0x30]
+ str r1, [sp, #0x4]
+ ldrb r1, [r3, #0x1c]
+ str r1, [sp, #0x8]
+ add r1, sp, #0x38
+ ldrb r1, [r1, #0x0]
+ str r1, [sp, #0xc]
+ add r1, sp, #0x3c
+ ldrb r1, [r1, #0x0]
+ str r1, [sp, #0x10]
+ add r1, sp, #0x40
+ ldrb r1, [r1, #0x0]
+ str r1, [sp, #0x14]
+ mov r1, #0x1
+ str r1, [sp, #0x18]
+ ldrb r3, [r3, #0x10]
+ add r1, r4, #0x0
+ bl FUN_02018268
+ add sp, #0x1c
+ pop {r4-r5, pc}
+_02018236:
+ ldrb r1, [r3, #0x14]
+ add r0, #0x8
+ add r0, r0, r5
+ str r1, [sp, #0x0]
+ ldr r1, [sp, #0x30]
+ str r1, [sp, #0x4]
+ ldrb r1, [r3, #0x1c]
+ str r1, [sp, #0x8]
+ add r1, sp, #0x38
+ ldrb r1, [r1, #0x0]
+ str r1, [sp, #0xc]
+ add r1, sp, #0x3c
+ ldrb r1, [r1, #0x0]
+ str r1, [sp, #0x10]
+ add r1, sp, #0x40
+ ldrb r1, [r1, #0x0]
+ str r1, [sp, #0x14]
+ mov r1, #0x1
+ str r1, [sp, #0x18]
+ ldrb r3, [r3, #0x10]
+ add r1, r4, #0x0
+ bl FUN_020183DC
+ add sp, #0x1c
+ pop {r4-r5, pc}
+
+ thumb_func_start FUN_02018268
+FUN_02018268: ; 0x02018268
+ push {r4-r7, lr}
+ sub sp, #0x44
+ str r1, [sp, #0x0]
+ str r2, [sp, #0x4]
+ add r7, r0, #0x0
+ ldr r0, [sp, #0x58]
+ add r6, r3, #0x0
+ str r0, [sp, #0x58]
+ ldr r0, [sp, #0x5c]
+ ldr r4, [sp, #0x68]
+ str r0, [sp, #0x5c]
+ ldr r0, [sp, #0x6c]
+ str r0, [sp, #0x6c]
+ ldr r0, [r7, #0x0]
+ str r0, [sp, #0x2c]
+ cmp r0, #0x0
+ bne _0201828C
+ b _020183D6
+_0201828C:
+ ldrb r0, [r7, #0x15]
+ add r1, sp, #0x40
+ add r1, #0x1
+ add r2, sp, #0x40
+ bl FUN_02017850
+ add r0, sp, #0x70
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x0
+ bne _0201833A
+ mov r0, #0x0
+ str r0, [sp, #0x28]
+ ldr r0, [sp, #0x58]
+ cmp r0, #0x0
+ bls _020182CA
+ add r1, sp, #0x48
+ ldrb r0, [r1, #0x1c]
+ str r0, [sp, #0x1c]
+ ldrb r0, [r1, #0x18]
+ str r0, [sp, #0x18]
+ lsl r1, r0, #0x1
+ ldr r0, [sp, #0x5c]
+ add r0, r0, r1
+ str r0, [sp, #0x14]
+_020182BC:
+ ldr r1, [sp, #0x4]
+ ldr r0, [sp, #0x28]
+ add r0, r1, r0
+ add r1, sp, #0x40
+ ldrb r1, [r1, #0x0]
+ cmp r0, r1
+ blt _020182CC
+_020182CA:
+ b _020183D6
+_020182CC:
+ ldr r2, [sp, #0x1c]
+ ldr r1, [sp, #0x28]
+ add r2, r2, r1
+ ldr r1, [sp, #0x6c]
+ cmp r2, r1
+ bge _020183D6
+ mov r5, #0x0
+ cmp r6, #0x0
+ bls _02018326
+ add r1, r4, #0x0
+ mul r1, r2
+ lsl r2, r1, #0x1
+ ldr r1, [sp, #0x14]
+ lsl r0, r0, #0x18
+ add r1, r1, r2
+ lsr r0, r0, #0x18
+ str r1, [sp, #0x10]
+ str r0, [sp, #0x30]
+_020182F0:
+ add r1, sp, #0x40
+ ldr r0, [sp, #0x0]
+ ldrb r1, [r1, #0x1]
+ add r0, r0, r5
+ cmp r0, r1
+ bge _02018326
+ ldr r1, [sp, #0x18]
+ add r1, r1, r5
+ cmp r1, r4
+ bge _02018326
+ ldrb r2, [r7, #0x15]
+ lsl r0, r0, #0x18
+ ldr r1, [sp, #0x30]
+ lsr r0, r0, #0x18
+ bl FUN_02017FFC
+ ldr r1, [sp, #0x10]
+ lsl r2, r5, #0x1
+ ldrh r1, [r1, r2]
+ lsl r2, r0, #0x1
+ ldr r0, [sp, #0x2c]
+ strh r1, [r0, r2]
+ add r0, r5, #0x1
+ lsl r0, r0, #0x18
+ lsr r5, r0, #0x18
+ cmp r5, r6
+ blo _020182F0
+_02018326:
+ ldr r0, [sp, #0x28]
+ add r0, r0, #0x1
+ lsl r0, r0, #0x18
+ lsr r1, r0, #0x18
+ str r1, [sp, #0x28]
+ ldr r0, [sp, #0x58]
+ cmp r1, r0
+ blo _020182BC
+ add sp, #0x44
+ pop {r4-r7, pc}
+_0201833A:
+ mov r0, #0x0
+ str r0, [sp, #0x8]
+ ldr r0, [sp, #0x58]
+ cmp r0, #0x0
+ bls _020183D6
+ add r1, sp, #0x48
+ ldrb r0, [r1, #0x1c]
+ str r0, [sp, #0x24]
+ ldrb r0, [r1, #0x18]
+ str r0, [sp, #0x20]
+_0201834E:
+ ldr r1, [sp, #0x4]
+ ldr r0, [sp, #0x8]
+ add r1, r1, r0
+ add r0, sp, #0x40
+ ldrb r0, [r0, #0x0]
+ cmp r1, r0
+ bge _020183D6
+ ldr r2, [sp, #0x24]
+ ldr r0, [sp, #0x8]
+ add r0, r2, r0
+ ldr r2, [sp, #0x6c]
+ cmp r0, r2
+ bge _020183D6
+ mov r5, #0x0
+ cmp r6, #0x0
+ bls _020183C6
+ lsl r1, r1, #0x18
+ lsl r0, r0, #0x18
+ lsr r1, r1, #0x18
+ lsr r0, r0, #0x18
+ str r1, [sp, #0x34]
+ str r0, [sp, #0x3c]
+_0201837A:
+ add r1, sp, #0x40
+ ldr r0, [sp, #0x0]
+ ldrb r1, [r1, #0x1]
+ add r0, r0, r5
+ cmp r0, r1
+ bge _020183C6
+ ldr r1, [sp, #0x20]
+ add r1, r1, r5
+ str r1, [sp, #0xc]
+ cmp r1, r4
+ bge _020183C6
+ ldrb r2, [r7, #0x15]
+ lsl r0, r0, #0x18
+ ldr r1, [sp, #0x34]
+ lsr r0, r0, #0x18
+ bl FUN_02017FFC
+ str r0, [sp, #0x38]
+ ldr r0, [sp, #0xc]
+ ldr r1, [sp, #0x3c]
+ lsl r0, r0, #0x18
+ ldr r3, [sp, #0x6c]
+ lsr r0, r0, #0x18
+ add r2, r4, #0x0
+ bl FUN_02018068
+ lsl r1, r0, #0x1
+ ldr r0, [sp, #0x5c]
+ ldrh r0, [r0, r1]
+ ldr r1, [sp, #0x38]
+ lsl r2, r1, #0x1
+ ldr r1, [sp, #0x2c]
+ strh r0, [r1, r2]
+ add r0, r5, #0x1
+ lsl r0, r0, #0x18
+ lsr r5, r0, #0x18
+ cmp r5, r6
+ blo _0201837A
+_020183C6:
+ ldr r0, [sp, #0x8]
+ add r0, r0, #0x1
+ lsl r0, r0, #0x18
+ lsr r1, r0, #0x18
+ str r1, [sp, #0x8]
+ ldr r0, [sp, #0x58]
+ cmp r1, r0
+ blo _0201834E
+_020183D6:
+ add sp, #0x44
+ pop {r4-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_020183DC
+FUN_020183DC: ; 0x020183DC
+ push {r4-r7, lr}
+ sub sp, #0x44
+ str r1, [sp, #0x0]
+ str r2, [sp, #0x4]
+ add r7, r0, #0x0
+ ldr r0, [sp, #0x58]
+ add r6, r3, #0x0
+ str r0, [sp, #0x58]
+ ldr r0, [sp, #0x5c]
+ ldr r4, [sp, #0x68]
+ str r0, [sp, #0x5c]
+ ldr r0, [sp, #0x6c]
+ str r0, [sp, #0x6c]
+ ldr r0, [r7, #0x0]
+ str r0, [sp, #0x2c]
+ cmp r0, #0x0
+ bne _02018400
+ b _0201853C
+_02018400:
+ ldrb r0, [r7, #0x15]
+ add r1, sp, #0x40
+ add r1, #0x1
+ add r2, sp, #0x40
+ bl FUN_02017850
+ add r0, sp, #0x70
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x0
+ bne _020184A4
+ mov r0, #0x0
+ str r0, [sp, #0x28]
+ ldr r0, [sp, #0x58]
+ cmp r0, #0x0
+ bhi _02018420
+ b _0201853C
+_02018420:
+ add r1, sp, #0x48
+ ldrb r0, [r1, #0x1c]
+ str r0, [sp, #0x1c]
+ ldrb r0, [r1, #0x18]
+ ldr r1, [sp, #0x5c]
+ str r0, [sp, #0x18]
+ add r0, r1, r0
+ str r0, [sp, #0x14]
+_02018430:
+ ldr r1, [sp, #0x4]
+ ldr r0, [sp, #0x28]
+ add r0, r1, r0
+ add r1, sp, #0x40
+ ldrb r1, [r1, #0x0]
+ cmp r0, r1
+ bge _0201853C
+ ldr r2, [sp, #0x1c]
+ ldr r1, [sp, #0x28]
+ add r2, r2, r1
+ ldr r1, [sp, #0x6c]
+ cmp r2, r1
+ bge _0201853C
+ mov r5, #0x0
+ cmp r6, #0x0
+ bls _02018490
+ ldr r1, [sp, #0x14]
+ mul r2, r4
+ lsl r0, r0, #0x18
+ add r1, r1, r2
+ lsr r0, r0, #0x18
+ str r1, [sp, #0x10]
+ str r0, [sp, #0x30]
+_0201845E:
+ add r1, sp, #0x40
+ ldr r0, [sp, #0x0]
+ ldrb r1, [r1, #0x1]
+ add r0, r0, r5
+ cmp r0, r1
+ bge _02018490
+ ldr r1, [sp, #0x18]
+ add r1, r1, r5
+ cmp r1, r4
+ bge _02018490
+ ldrb r2, [r7, #0x15]
+ lsl r0, r0, #0x18
+ ldr r1, [sp, #0x30]
+ lsr r0, r0, #0x18
+ bl FUN_02017FFC
+ ldr r1, [sp, #0x10]
+ ldrb r2, [r1, r5]
+ ldr r1, [sp, #0x2c]
+ strb r2, [r1, r0]
+ add r0, r5, #0x1
+ lsl r0, r0, #0x18
+ lsr r5, r0, #0x18
+ cmp r5, r6
+ blo _0201845E
+_02018490:
+ ldr r0, [sp, #0x28]
+ add r0, r0, #0x1
+ lsl r0, r0, #0x18
+ lsr r1, r0, #0x18
+ str r1, [sp, #0x28]
+ ldr r0, [sp, #0x58]
+ cmp r1, r0
+ blo _02018430
+ add sp, #0x44
+ pop {r4-r7, pc}
+_020184A4:
+ mov r0, #0x0
+ str r0, [sp, #0x8]
+ ldr r0, [sp, #0x58]
+ cmp r0, #0x0
+ bls _0201853C
+ add r1, sp, #0x48
+ ldrb r0, [r1, #0x1c]
+ str r0, [sp, #0x24]
+ ldrb r0, [r1, #0x18]
+ str r0, [sp, #0x20]
+_020184B8:
+ ldr r1, [sp, #0x4]
+ ldr r0, [sp, #0x8]
+ add r1, r1, r0
+ add r0, sp, #0x40
+ ldrb r0, [r0, #0x0]
+ cmp r1, r0
+ bge _0201853C
+ ldr r2, [sp, #0x24]
+ ldr r0, [sp, #0x8]
+ add r0, r2, r0
+ ldr r2, [sp, #0x6c]
+ cmp r0, r2
+ bge _0201853C
+ mov r5, #0x0
+ cmp r6, #0x0
+ bls _0201852C
+ lsl r1, r1, #0x18
+ lsl r0, r0, #0x18
+ lsr r1, r1, #0x18
+ lsr r0, r0, #0x18
+ str r1, [sp, #0x34]
+ str r0, [sp, #0x3c]
+_020184E4:
+ add r1, sp, #0x40
+ ldr r0, [sp, #0x0]
+ ldrb r1, [r1, #0x1]
+ add r0, r0, r5
+ cmp r0, r1
+ bge _0201852C
+ ldr r1, [sp, #0x20]
+ add r1, r1, r5
+ str r1, [sp, #0xc]
+ cmp r1, r4
+ bge _0201852C
+ ldrb r2, [r7, #0x15]
+ lsl r0, r0, #0x18
+ ldr r1, [sp, #0x34]
+ lsr r0, r0, #0x18
+ bl FUN_02017FFC
+ str r0, [sp, #0x38]
+ ldr r0, [sp, #0xc]
+ ldr r1, [sp, #0x3c]
+ lsl r0, r0, #0x18
+ ldr r3, [sp, #0x6c]
+ lsr r0, r0, #0x18
+ add r2, r4, #0x0
+ bl FUN_02018068
+ ldr r1, [sp, #0x5c]
+ ldrb r2, [r1, r0]
+ ldr r1, [sp, #0x2c]
+ ldr r0, [sp, #0x38]
+ strb r2, [r1, r0]
+ add r0, r5, #0x1
+ lsl r0, r0, #0x18
+ lsr r5, r0, #0x18
+ cmp r5, r6
+ blo _020184E4
+_0201852C:
+ ldr r0, [sp, #0x8]
+ add r0, r0, #0x1
+ lsl r0, r0, #0x18
+ lsr r1, r0, #0x18
+ str r1, [sp, #0x8]
+ ldr r0, [sp, #0x58]
+ cmp r1, r0
+ blo _020184B8
+_0201853C:
+ add sp, #0x44
+ pop {r4-r7, pc}
+
+ thumb_func_start FUN_02018540
+FUN_02018540: ; 0x02018540
+ push {r4-r5, lr}
+ sub sp, #0xc
+ add r4, r2, #0x0
+ add r2, r3, #0x0
+ mov r3, #0x2c
+ add r5, r1, #0x0
+ mul r5, r3
+ add r1, r0, r5
+ ldrb r1, [r1, #0x1c]
+ add r3, sp, #0x8
+ cmp r1, #0x1
+ beq _02018574
+ ldrb r1, [r3, #0x14]
+ add r0, #0x8
+ add r0, r0, r5
+ str r1, [sp, #0x0]
+ ldrb r1, [r3, #0x18]
+ str r1, [sp, #0x4]
+ ldrb r1, [r3, #0x1c]
+ str r1, [sp, #0x8]
+ ldrb r3, [r3, #0x10]
+ add r1, r4, #0x0
+ bl FUN_02018590
+ add sp, #0xc
+ pop {r4-r5, pc}
+_02018574:
+ ldrb r1, [r3, #0x14]
+ add r0, #0x8
+ add r0, r0, r5
+ str r1, [sp, #0x0]
+ ldrb r1, [r3, #0x18]
+ str r1, [sp, #0x4]
+ lsl r1, r4, #0x18
+ ldrb r3, [r3, #0x10]
+ lsr r1, r1, #0x18
+ bl FUN_02018640
+ add sp, #0xc
+ pop {r4-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_02018590
+FUN_02018590: ; 0x02018590
+ push {r4-r7, lr}
+ sub sp, #0x1c
+ str r2, [sp, #0x4]
+ str r3, [sp, #0x8]
+ ldr r4, [r0, #0x0]
+ add r7, r1, #0x0
+ str r0, [sp, #0x0]
+ ldr r6, [sp, #0x38]
+ cmp r4, #0x0
+ beq _0201863A
+ ldrb r0, [r0, #0x15]
+ add r1, sp, #0x18
+ add r1, #0x1
+ add r2, sp, #0x18
+ bl FUN_02017850
+ add r0, sp, #0x20
+ ldrb r2, [r0, #0x14]
+ ldr r1, [sp, #0x8]
+ add r1, r1, r2
+ ldr r2, [sp, #0x8]
+ str r1, [sp, #0xc]
+ cmp r2, r1
+ bge _0201863A
+ ldrb r2, [r0, #0x10]
+ ldr r0, [sp, #0x4]
+ lsl r1, r6, #0xc
+ add r0, r0, r2
+ add r1, r1, r7
+ str r0, [sp, #0x10]
+ lsl r0, r1, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #0x14]
+_020185D2:
+ add r0, sp, #0x18
+ ldrb r1, [r0, #0x0]
+ ldr r0, [sp, #0x8]
+ cmp r0, r1
+ bhs _0201863A
+ ldr r5, [sp, #0x4]
+ ldr r0, [sp, #0x10]
+ add r1, r5, #0x0
+ cmp r1, r0
+ bge _0201862A
+_020185E6:
+ add r0, sp, #0x18
+ ldrb r0, [r0, #0x1]
+ cmp r5, r0
+ bhs _0201862A
+ ldr r2, [sp, #0x0]
+ ldr r1, [sp, #0x8]
+ ldrb r2, [r2, #0x15]
+ add r0, r5, #0x0
+ bl FUN_02017FFC
+ cmp r6, #0x11
+ bne _02018604
+ lsl r0, r0, #0x1
+ strh r7, [r4, r0]
+ b _0201861E
+_02018604:
+ cmp r6, #0x10
+ bne _02018618
+ lsl r0, r0, #0x1
+ ldrh r2, [r4, r0]
+ mov r1, #0xf
+ lsl r1, r1, #0xc
+ and r1, r2
+ add r1, r7, r1
+ strh r1, [r4, r0]
+ b _0201861E
+_02018618:
+ lsl r1, r0, #0x1
+ ldr r0, [sp, #0x14]
+ strh r0, [r4, r1]
+_0201861E:
+ add r0, r5, #0x1
+ lsl r0, r0, #0x18
+ lsr r5, r0, #0x18
+ ldr r0, [sp, #0x10]
+ cmp r5, r0
+ blt _020185E6
+_0201862A:
+ ldr r0, [sp, #0x8]
+ add r0, r0, #0x1
+ lsl r0, r0, #0x18
+ lsr r1, r0, #0x18
+ ldr r0, [sp, #0xc]
+ str r1, [sp, #0x8]
+ cmp r1, r0
+ blt _020185D2
+_0201863A:
+ add sp, #0x1c
+ pop {r4-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_02018640
+FUN_02018640: ; 0x02018640
+ push {r4-r7, lr}
+ sub sp, #0x14
+ str r1, [sp, #0x0]
+ add r7, r0, #0x0
+ str r2, [sp, #0x4]
+ ldr r0, [r7, #0x0]
+ add r5, r3, #0x0
+ str r0, [sp, #0xc]
+ cmp r0, #0x0
+ beq _020186B0
+ ldrb r0, [r7, #0x15]
+ add r1, sp, #0x10
+ add r1, #0x1
+ add r2, sp, #0x10
+ bl FUN_02017850
+ add r1, sp, #0x18
+ ldrb r0, [r1, #0x14]
+ add r0, r5, r0
+ str r0, [sp, #0x8]
+ cmp r5, r0
+ bge _020186B0
+ ldrb r1, [r1, #0x10]
+ ldr r0, [sp, #0x4]
+ add r6, r0, r1
+_02018672:
+ add r0, sp, #0x10
+ ldrb r0, [r0, #0x0]
+ cmp r5, r0
+ bhs _020186B0
+ ldr r4, [sp, #0x4]
+ add r0, r4, #0x0
+ cmp r0, r6
+ bge _020186A4
+_02018682:
+ add r0, sp, #0x10
+ ldrb r0, [r0, #0x1]
+ cmp r4, r0
+ bhs _020186A4
+ ldrb r2, [r7, #0x15]
+ add r0, r4, #0x0
+ add r1, r5, #0x0
+ bl FUN_02017FFC
+ ldr r2, [sp, #0x0]
+ ldr r1, [sp, #0xc]
+ strb r2, [r1, r0]
+ add r0, r4, #0x1
+ lsl r0, r0, #0x18
+ lsr r4, r0, #0x18
+ cmp r4, r6
+ blt _02018682
+_020186A4:
+ add r0, r5, #0x1
+ lsl r0, r0, #0x18
+ lsr r5, r0, #0x18
+ ldr r0, [sp, #0x8]
+ cmp r5, r0
+ blt _02018672
+_020186B0:
+ add sp, #0x14
+ pop {r4-r7, pc}
+
+ thumb_func_start FUN_020186B4
+FUN_020186B4: ; 0x020186B4
+ push {r4-r7, lr}
+ sub sp, #0x14
+ add r5, r0, #0x0
+ mov r0, #0x2c
+ add r7, r1, #0x0
+ mul r7, r0
+ str r2, [sp, #0x0]
+ add r0, r5, r7
+ ldr r4, [r0, #0x8]
+ add r6, r3, #0x0
+ cmp r4, #0x0
+ beq _0201873C
+ ldrb r0, [r0, #0x1d]
+ add r1, sp, #0x10
+ add r1, #0x1
+ add r2, sp, #0x10
+ bl FUN_02017850
+ add r0, sp, #0x18
+ ldrb r1, [r0, #0x14]
+ add r1, r6, r1
+ str r1, [sp, #0x4]
+ cmp r6, r1
+ bge _0201873C
+ add r1, r5, r7
+ str r1, [sp, #0xc]
+ ldrb r1, [r0, #0x18]
+ lsl r1, r1, #0xc
+ str r1, [sp, #0x8]
+ ldrb r1, [r0, #0x10]
+ ldr r0, [sp, #0x0]
+ add r7, r0, r1
+_020186F4:
+ add r0, sp, #0x10
+ ldrb r0, [r0, #0x0]
+ cmp r6, r0
+ bhs _0201873C
+ ldr r5, [sp, #0x0]
+ add r0, r5, #0x0
+ cmp r0, r7
+ bge _02018730
+_02018704:
+ add r0, sp, #0x10
+ ldrb r0, [r0, #0x1]
+ cmp r5, r0
+ bhs _02018730
+ ldr r2, [sp, #0xc]
+ add r0, r5, #0x0
+ ldrb r2, [r2, #0x1d]
+ add r1, r6, #0x0
+ bl FUN_02017FFC
+ lsl r0, r0, #0x1
+ ldrh r2, [r4, r0]
+ ldr r1, _02018740 ; =0x00000FFF
+ and r2, r1
+ ldr r1, [sp, #0x8]
+ orr r1, r2
+ strh r1, [r4, r0]
+ add r0, r5, #0x1
+ lsl r0, r0, #0x18
+ lsr r5, r0, #0x18
+ cmp r5, r7
+ blt _02018704
+_02018730:
+ add r0, r6, #0x1
+ lsl r0, r0, #0x18
+ lsr r6, r0, #0x18
+ ldr r0, [sp, #0x4]
+ cmp r6, r0
+ blt _020186F4
+_0201873C:
+ add sp, #0x14
+ pop {r4-r7, pc}
+ .balign 4
+_02018740: .word 0x00000FFF
+
+ thumb_func_start FUN_02018744
+FUN_02018744: ; 0x02018744
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ mov r0, #0x2c
+ mul r0, r4
+ add r2, r5, r0
+ ldr r1, [r2, #0x8]
+ cmp r1, #0x0
+ beq _02018766
+ ldr r2, [r2, #0xc]
+ mov r0, #0x0
+ blx MIi_CpuClear16
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_02017CD0
+_02018766:
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_02018768
+FUN_02018768: ; 0x02018768
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ mov r0, #0x2c
+ mul r0, r4
+ add r3, r5, r0
+ ldr r1, [r3, #0x8]
+ cmp r1, #0x0
+ beq _0201878A
+ add r0, r2, #0x0
+ ldr r2, [r3, #0xc]
+ blx MIi_CpuClear16
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_02017CD0
+_0201878A:
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_0201878C
+FUN_0201878C: ; 0x0201878C
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ mov r0, #0x2c
+ mul r0, r4
+ add r3, r5, r0
+ ldr r1, [r3, #0x8]
+ cmp r1, #0x0
+ beq _020187AE
+ add r0, r2, #0x0
+ ldr r2, [r3, #0xc]
+ blx MIi_CpuClear16
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_0201AC68
+_020187AE:
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_020187B0
+FUN_020187B0: ; 0x020187B0
+ push {r3, lr}
+ cmp r0, #0x7
+ bhi _02018802
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_020187C2: ; jump table (using 16-bit offset)
+ .short _020187D2 - _020187C2 - 2; case 0
+ .short _020187D8 - _020187C2 - 2; case 1
+ .short _020187DE - _020187C2 - 2; case 2
+ .short _020187E4 - _020187C2 - 2; case 3
+ .short _020187EA - _020187C2 - 2; case 4
+ .short _020187F0 - _020187C2 - 2; case 5
+ .short _020187F6 - _020187C2 - 2; case 6
+ .short _020187FC - _020187C2 - 2; case 7
+_020187D2:
+ blx G2_GetBG0CharPtr
+ pop {r3, pc}
+_020187D8:
+ blx G2_GetBG1CharPtr
+ pop {r3, pc}
+_020187DE:
+ blx G2_GetBG2CharPtr
+ pop {r3, pc}
+_020187E4:
+ blx G2_GetBG3CharPtr
+ pop {r3, pc}
+_020187EA:
+ blx G2S_GetBG0CharPtr
+ pop {r3, pc}
+_020187F0:
+ blx G2S_GetBG1CharPtr
+ pop {r3, pc}
+_020187F6:
+ blx G2S_GetBG2CharPtr
+ pop {r3, pc}
+_020187FC:
+ blx G2S_GetBG3CharPtr
+ pop {r3, pc}
+_02018802:
+ mov r0, #0x0
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_02018808
+FUN_02018808: ; 0x02018808
+ push {r4-r7}
+ lsl r3, r3, #0x1c
+ lsr r3, r3, #0x18
+ mov r4, #0x0
+ cmp r1, #0x0
+ bls _02018842
+ mov r5, #0xf
+ add r6, r5, #0x0
+_02018818:
+ ldrb r7, [r0, r4]
+ and r7, r6
+ strb r7, [r2, #0x0]
+ ldrb r7, [r2, #0x0]
+ cmp r7, #0x0
+ beq _02018828
+ add r7, r7, r3
+ strb r7, [r2, #0x0]
+_02018828:
+ ldrb r7, [r0, r4]
+ asr r7, r7, #0x4
+ and r7, r5
+ strb r7, [r2, #0x1]
+ ldrb r7, [r2, #0x1]
+ cmp r7, #0x0
+ beq _0201883A
+ add r7, r7, r3
+ strb r7, [r2, #0x1]
+_0201883A:
+ add r4, r4, #0x1
+ add r2, r2, #0x2
+ cmp r4, r1
+ blo _02018818
+_02018842:
+ pop {r4-r7}
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02018848
+FUN_02018848: ; 0x02018848
+ push {r3-r7, lr}
+ add r5, r1, #0x0
+ add r6, r0, #0x0
+ add r0, r3, #0x0
+ lsl r1, r5, #0x1
+ add r7, r2, #0x0
+ bl FUN_02016998
+ add r4, r0, #0x0
+ add r0, r6, #0x0
+ add r1, r5, #0x0
+ add r2, r4, #0x0
+ add r3, r7, #0x0
+ bl FUN_02018808
+ add r0, r4, #0x0
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_0201886C
+FUN_0201886C: ; 0x0201886C
+ mov r2, #0x2c
+ mul r2, r1
+ add r0, r0, r2
+ ldr r0, [r0, #0x8]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02018878
+FUN_02018878: ; 0x02018878
+ mov r2, #0x2c
+ mul r2, r1
+ add r0, r0, r2
+ ldrh r0, [r0, #0x20]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02018884
+FUN_02018884: ; 0x02018884
+ sub sp, #0x20
+ cmp r1, #0x7
+ bls _0201888C
+ b _02018A38
+_0201888C:
+ add r2, r1, r1
+ add r2, pc
+ ldrh r2, [r2, #0x6]
+ lsl r2, r2, #0x10
+ asr r2, r2, #0x10
+ add pc, r2
+_02018898: ; jump table (using 16-bit offset)
+ .short _020188A8 - _02018898 - 2; case 0
+ .short _020188BC - _02018898 - 2; case 1
+ .short _020188D0 - _02018898 - 2; case 2
+ .short _02018920 - _02018898 - 2; case 3
+ .short _02018970 - _02018898 - 2; case 4
+ .short _02018984 - _02018898 - 2; case 5
+ .short _02018998 - _02018898 - 2; case 6
+ .short _020189E8 - _02018898 - 2; case 7
+_020188A8:
+ ldr r0, _02018A40 ; =0x04000008
+ ldrh r1, [r0, #0x0]
+ add r0, sp, #0x0
+ add sp, #0x20
+ strh r1, [r0, #0x1e]
+ lsl r0, r1, #0x1e
+ lsr r0, r0, #0x1e
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bx lr
+_020188BC:
+ ldr r0, _02018A44 ; =0x0400000A
+ ldrh r1, [r0, #0x0]
+ add r0, sp, #0x0
+ add sp, #0x20
+ strh r1, [r0, #0x1c]
+ lsl r0, r1, #0x1e
+ lsr r0, r0, #0x1e
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bx lr
+_020188D0:
+ mov r2, #0x2c
+ mul r2, r1
+ add r0, r0, r2
+ ldrb r0, [r0, #0x1c]
+ cmp r0, #0x0
+ beq _020188E4
+ cmp r0, #0x1
+ beq _020188F8
+ cmp r0, #0x2
+ beq _0201890C
+_020188E4:
+ ldr r0, _02018A48 ; =0x0400000C
+ ldrh r1, [r0, #0x0]
+ add r0, sp, #0x0
+ add sp, #0x20
+ strh r1, [r0, #0x1a]
+ lsl r0, r1, #0x1e
+ lsr r0, r0, #0x1e
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bx lr
+_020188F8:
+ ldr r0, _02018A48 ; =0x0400000C
+ ldrh r1, [r0, #0x0]
+ add r0, sp, #0x0
+ add sp, #0x20
+ strh r1, [r0, #0x18]
+ lsl r0, r1, #0x1e
+ lsr r0, r0, #0x1e
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bx lr
+_0201890C:
+ ldr r0, _02018A48 ; =0x0400000C
+ ldrh r1, [r0, #0x0]
+ add r0, sp, #0x0
+ add sp, #0x20
+ strh r1, [r0, #0x16]
+ lsl r0, r1, #0x1e
+ lsr r0, r0, #0x1e
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bx lr
+_02018920:
+ mov r2, #0x2c
+ mul r2, r1
+ add r0, r0, r2
+ ldrb r0, [r0, #0x1c]
+ cmp r0, #0x0
+ beq _02018934
+ cmp r0, #0x1
+ beq _02018948
+ cmp r0, #0x2
+ beq _0201895C
+_02018934:
+ ldr r0, _02018A4C ; =0x0400000E
+ ldrh r1, [r0, #0x0]
+ add r0, sp, #0x0
+ add sp, #0x20
+ strh r1, [r0, #0x14]
+ lsl r0, r1, #0x1e
+ lsr r0, r0, #0x1e
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bx lr
+_02018948:
+ ldr r0, _02018A4C ; =0x0400000E
+ ldrh r1, [r0, #0x0]
+ add r0, sp, #0x0
+ add sp, #0x20
+ strh r1, [r0, #0x12]
+ lsl r0, r1, #0x1e
+ lsr r0, r0, #0x1e
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bx lr
+_0201895C:
+ ldr r0, _02018A4C ; =0x0400000E
+ ldrh r1, [r0, #0x0]
+ add r0, sp, #0x0
+ add sp, #0x20
+ strh r1, [r0, #0x10]
+ lsl r0, r1, #0x1e
+ lsr r0, r0, #0x1e
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bx lr
+_02018970:
+ ldr r0, _02018A50 ; =0x04001008
+ ldrh r1, [r0, #0x0]
+ add r0, sp, #0x0
+ add sp, #0x20
+ strh r1, [r0, #0xe]
+ lsl r0, r1, #0x1e
+ lsr r0, r0, #0x1e
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bx lr
+_02018984:
+ ldr r0, _02018A54 ; =0x0400100A
+ ldrh r1, [r0, #0x0]
+ add r0, sp, #0x0
+ add sp, #0x20
+ strh r1, [r0, #0xc]
+ lsl r0, r1, #0x1e
+ lsr r0, r0, #0x1e
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bx lr
+_02018998:
+ mov r2, #0x2c
+ mul r2, r1
+ add r0, r0, r2
+ ldrb r0, [r0, #0x1c]
+ cmp r0, #0x0
+ beq _020189AC
+ cmp r0, #0x1
+ beq _020189C0
+ cmp r0, #0x2
+ beq _020189D4
+_020189AC:
+ ldr r0, _02018A58 ; =0x0400100C
+ ldrh r1, [r0, #0x0]
+ add r0, sp, #0x0
+ add sp, #0x20
+ strh r1, [r0, #0xa]
+ lsl r0, r1, #0x1e
+ lsr r0, r0, #0x1e
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bx lr
+_020189C0:
+ ldr r0, _02018A58 ; =0x0400100C
+ ldrh r1, [r0, #0x0]
+ add r0, sp, #0x0
+ add sp, #0x20
+ strh r1, [r0, #0x8]
+ lsl r0, r1, #0x1e
+ lsr r0, r0, #0x1e
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bx lr
+_020189D4:
+ ldr r0, _02018A58 ; =0x0400100C
+ ldrh r1, [r0, #0x0]
+ add r0, sp, #0x0
+ add sp, #0x20
+ strh r1, [r0, #0x6]
+ lsl r0, r1, #0x1e
+ lsr r0, r0, #0x1e
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bx lr
+_020189E8:
+ mov r2, #0x2c
+ mul r2, r1
+ add r0, r0, r2
+ ldrb r0, [r0, #0x1c]
+ cmp r0, #0x0
+ beq _020189FC
+ cmp r0, #0x1
+ beq _02018A10
+ cmp r0, #0x2
+ beq _02018A24
+_020189FC:
+ ldr r0, _02018A5C ; =0x0400100E
+ ldrh r1, [r0, #0x0]
+ add r0, sp, #0x0
+ add sp, #0x20
+ strh r1, [r0, #0x4]
+ lsl r0, r1, #0x1e
+ lsr r0, r0, #0x1e
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bx lr
+_02018A10:
+ ldr r0, _02018A5C ; =0x0400100E
+ ldrh r1, [r0, #0x0]
+ add r0, sp, #0x0
+ add sp, #0x20
+ strh r1, [r0, #0x2]
+ lsl r0, r1, #0x1e
+ lsr r0, r0, #0x1e
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bx lr
+_02018A24:
+ ldr r0, _02018A5C ; =0x0400100E
+ ldrh r1, [r0, #0x0]
+ add r0, sp, #0x0
+ add sp, #0x20
+ strh r1, [r0, #0x0]
+ lsl r0, r1, #0x1e
+ lsr r0, r0, #0x1e
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bx lr
+_02018A38:
+ mov r0, #0x0
+ add sp, #0x20
+ bx lr
+ nop
+_02018A40: .word 0x04000008
+_02018A44: .word 0x0400000A
+_02018A48: .word 0x0400000C
+_02018A4C: .word 0x0400000E
+_02018A50: .word 0x04001008
+_02018A54: .word 0x0400100A
+_02018A58: .word 0x0400100C
+_02018A5C: .word 0x0400100E
+
+ thumb_func_start FUN_02018A60
+FUN_02018A60: ; 0x02018A60
+ push {r3-r7, lr}
+ sub sp, #0x68
+ str r2, [sp, #0x8]
+ str r3, [sp, #0xc]
+ add r2, sp, #0x70
+ str r0, [sp, #0x0]
+ ldrh r0, [r2, #0x10]
+ str r1, [sp, #0x4]
+ ldrh r2, [r2, #0x18]
+ str r0, [sp, #0x10]
+ add r0, r1, #0x0
+ ldrh r1, [r0, #0x4]
+ ldr r0, [sp, #0x10]
+ sub r3, r1, r0
+ cmp r3, r2
+ bge _02018A88
+ ldr r0, [sp, #0x8]
+ add r0, r0, r3
+ str r0, [sp, #0x50]
+ b _02018A8E
+_02018A88:
+ ldr r0, [sp, #0x8]
+ add r0, r2, r0
+ str r0, [sp, #0x50]
+_02018A8E:
+ ldr r2, [sp, #0x4]
+ add r3, sp, #0x70
+ ldrh r0, [r3, #0x14]
+ ldrh r2, [r2, #0x6]
+ ldrh r3, [r3, #0x1c]
+ sub r4, r2, r0
+ cmp r4, r3
+ bge _02018AA6
+ ldr r2, [sp, #0xc]
+ add r2, r2, r4
+ str r2, [sp, #0x4c]
+ b _02018AAC
+_02018AA6:
+ ldr r2, [sp, #0xc]
+ add r2, r3, r2
+ str r2, [sp, #0x4c]
+_02018AAC:
+ ldr r2, [sp, #0x0]
+ mov r3, #0x7
+ ldrh r4, [r2, #0x4]
+ add r2, r4, #0x0
+ and r2, r3
+ add r2, r4, r2
+ asr r2, r2, #0x3
+ str r2, [sp, #0x48]
+ add r2, r1, #0x0
+ and r2, r3
+ add r1, r1, r2
+ asr r1, r1, #0x3
+ str r1, [sp, #0x44]
+ add r1, sp, #0x70
+ ldrh r1, [r1, #0x20]
+ ldr r2, _02018C98 ; =0x0000FFFF
+ str r1, [sp, #0x38]
+ cmp r1, r2
+ bne _02018BB4
+ ldr r2, [sp, #0xc]
+ ldr r1, [sp, #0x4c]
+ cmp r2, r1
+ bge _02018ADE
+ cmp r2, r1
+ blt _02018AE0
+_02018ADE:
+ b _02018C92
+_02018AE0:
+ add r1, r2, #0x0
+ lsl r1, r1, #0x2
+ lsl r0, r0, #0x2
+ str r1, [sp, #0x28]
+ str r0, [sp, #0x24]
+_02018AEA:
+ ldr r3, [sp, #0x8]
+ ldr r0, [sp, #0x50]
+ add r1, r3, #0x0
+ ldr r4, [sp, #0x10]
+ cmp r1, r0
+ bge _02018B96
+ cmp r1, r0
+ bge _02018B96
+ add r0, r3, #0x0
+ lsl r5, r0, #0x2
+ add r0, r4, #0x0
+ lsl r6, r0, #0x2
+ ldr r0, _02018C9C ; =0x00003FE0
+ ldr r1, [sp, #0x28]
+ ldr r2, [sp, #0x48]
+ and r1, r0
+ mul r2, r1
+ str r2, [sp, #0x20]
+ ldr r2, [sp, #0x28]
+ mov r1, #0x1c
+ and r2, r1
+ str r2, [sp, #0x1c]
+ ldr r2, [sp, #0x24]
+ and r0, r2
+ ldr r2, [sp, #0x44]
+ mul r2, r0
+ ldr r0, [sp, #0x24]
+ str r2, [sp, #0x18]
+ and r0, r1
+ str r0, [sp, #0x14]
+_02018B26:
+ ldr r0, [sp, #0x4]
+ asr r2, r4, #0x1
+ mov r1, #0x3
+ ldr r0, [r0, #0x0]
+ and r1, r2
+ add r1, r0, r1
+ ldr r0, _02018C9C ; =0x00003FE0
+ and r0, r6
+ add r1, r1, r0
+ ldr r0, [sp, #0x18]
+ add r6, r6, #0x4
+ add r0, r1, r0
+ str r0, [sp, #0x64]
+ lsl r0, r4, #0x1f
+ lsr r2, r0, #0x1d
+ ldr r0, [sp, #0x0]
+ asr r1, r3, #0x1
+ ldr r7, [r0, #0x0]
+ mov r0, #0x3
+ and r0, r1
+ ldr r1, _02018C9C ; =0x00003FE0
+ add r4, r4, #0x1
+ and r1, r5
+ str r1, [sp, #0x54]
+ add r1, r7, r0
+ ldr r0, [sp, #0x54]
+ add r5, r5, #0x4
+ add r1, r0, r1
+ ldr r0, [sp, #0x20]
+ add r1, r0, r1
+ ldr r0, [sp, #0x1c]
+ ldrb r1, [r0, r1]
+ lsl r0, r3, #0x1f
+ lsr r0, r0, #0x1d
+ asr r1, r0
+ mov r0, #0xf
+ and r0, r1
+ add r7, r0, #0x0
+ ldr r1, [sp, #0x14]
+ ldr r0, [sp, #0x64]
+ lsl r7, r2
+ ldrb r0, [r0, r1]
+ add r3, r3, #0x1
+ str r0, [sp, #0x58]
+ mov r0, #0xf0
+ asr r0, r2
+ ldr r1, [sp, #0x58]
+ add r2, r7, #0x0
+ and r0, r1
+ orr r2, r0
+ ldr r1, [sp, #0x14]
+ ldr r0, [sp, #0x64]
+ strb r2, [r0, r1]
+ ldr r0, [sp, #0x50]
+ cmp r3, r0
+ blt _02018B26
+_02018B96:
+ ldr r0, [sp, #0x28]
+ add r0, r0, #0x4
+ str r0, [sp, #0x28]
+ ldr r0, [sp, #0xc]
+ add r0, r0, #0x1
+ str r0, [sp, #0xc]
+ ldr r0, [sp, #0x24]
+ ldr r1, [sp, #0xc]
+ add r0, r0, #0x4
+ str r0, [sp, #0x24]
+ ldr r0, [sp, #0x4c]
+ cmp r1, r0
+ blt _02018AEA
+ add sp, #0x68
+ pop {r3-r7, pc}
+_02018BB4:
+ ldr r2, [sp, #0xc]
+ ldr r1, [sp, #0x4c]
+ cmp r2, r1
+ bge _02018C92
+ cmp r2, r1
+ bge _02018C92
+ add r1, r2, #0x0
+ lsl r1, r1, #0x2
+ lsl r0, r0, #0x2
+ str r1, [sp, #0x40]
+ str r0, [sp, #0x3c]
+_02018BCA:
+ ldr r3, [sp, #0x8]
+ ldr r0, [sp, #0x50]
+ add r1, r3, #0x0
+ ldr r4, [sp, #0x10]
+ cmp r1, r0
+ bge _02018C78
+ cmp r1, r0
+ bge _02018C78
+ add r0, r3, #0x0
+ lsl r1, r0, #0x2
+ add r0, r4, #0x0
+ lsl r2, r0, #0x2
+ ldr r0, _02018C9C ; =0x00003FE0
+ ldr r5, [sp, #0x40]
+ ldr r6, [sp, #0x48]
+ and r5, r0
+ mul r6, r5
+ str r6, [sp, #0x34]
+ ldr r6, [sp, #0x40]
+ mov r5, #0x1c
+ and r6, r5
+ str r6, [sp, #0x30]
+ ldr r6, [sp, #0x3c]
+ and r0, r6
+ ldr r6, [sp, #0x44]
+ mul r6, r0
+ ldr r0, [sp, #0x3c]
+ str r6, [sp, #0x2c]
+ and r0, r5
+ str r0, [sp, #0x60]
+_02018C06:
+ ldr r0, [sp, #0x4]
+ asr r6, r4, #0x1
+ mov r5, #0x3
+ and r5, r6
+ ldr r0, [r0, #0x0]
+ asr r6, r3, #0x1
+ add r5, r0, r5
+ ldr r0, _02018C9C ; =0x00003FE0
+ and r0, r2
+ add r5, r5, r0
+ ldr r0, [sp, #0x2c]
+ add r5, r5, r0
+ ldr r0, [sp, #0x0]
+ ldr r7, [r0, #0x0]
+ mov r0, #0x3
+ and r0, r6
+ ldr r6, _02018C9C ; =0x00003FE0
+ and r6, r1
+ str r6, [sp, #0x5c]
+ add r6, r7, r0
+ ldr r0, [sp, #0x5c]
+ add r6, r0, r6
+ ldr r0, [sp, #0x34]
+ add r6, r0, r6
+ ldr r0, [sp, #0x30]
+ ldrb r6, [r0, r6]
+ lsl r0, r3, #0x1f
+ lsr r0, r0, #0x1d
+ asr r6, r0
+ mov r0, #0xf
+ and r0, r6
+ ldr r6, [sp, #0x38]
+ cmp r0, r6
+ beq _02018C6A
+ lsl r6, r4, #0x1f
+ lsr r7, r6, #0x1d
+ lsl r0, r7
+ mov lr, r0
+ ldr r0, [sp, #0x60]
+ ldrb r0, [r5, r0]
+ mov r12, r0
+ mov r0, #0xf0
+ add r6, r0, #0x0
+ asr r6, r7
+ mov r0, r12
+ and r0, r6
+ mov r6, lr
+ orr r6, r0
+ ldr r0, [sp, #0x60]
+ strb r6, [r5, r0]
+_02018C6A:
+ ldr r0, [sp, #0x50]
+ add r3, r3, #0x1
+ add r1, r1, #0x4
+ add r2, r2, #0x4
+ add r4, r4, #0x1
+ cmp r3, r0
+ blt _02018C06
+_02018C78:
+ ldr r0, [sp, #0x40]
+ add r0, r0, #0x4
+ str r0, [sp, #0x40]
+ ldr r0, [sp, #0xc]
+ add r0, r0, #0x1
+ str r0, [sp, #0xc]
+ ldr r0, [sp, #0x3c]
+ ldr r1, [sp, #0xc]
+ add r0, r0, #0x4
+ str r0, [sp, #0x3c]
+ ldr r0, [sp, #0x4c]
+ cmp r1, r0
+ blt _02018BCA
+_02018C92:
+ add sp, #0x68
+ pop {r3-r7, pc}
+ nop
+_02018C98: .word 0x0000FFFF
+_02018C9C: .word 0x00003FE0
+
+ thumb_func_start FUN_02018CA0
+FUN_02018CA0: ; 0x02018CA0
+ push {r3-r7, lr}
+ sub sp, #0x50
+ str r2, [sp, #0x8]
+ str r3, [sp, #0xc]
+ add r2, sp, #0x58
+ str r0, [sp, #0x0]
+ ldrh r0, [r2, #0x10]
+ str r1, [sp, #0x4]
+ ldrh r2, [r2, #0x18]
+ str r0, [sp, #0x10]
+ add r0, r1, #0x0
+ ldrh r1, [r0, #0x4]
+ ldr r0, [sp, #0x10]
+ sub r3, r1, r0
+ cmp r3, r2
+ bge _02018CC6
+ ldr r0, [sp, #0x8]
+ add r0, r0, r3
+ b _02018CCA
+_02018CC6:
+ ldr r0, [sp, #0x8]
+ add r0, r2, r0
+_02018CCA:
+ ldr r2, [sp, #0x4]
+ add r3, sp, #0x58
+ mov r12, r0
+ ldrh r0, [r3, #0x14]
+ ldrh r2, [r2, #0x6]
+ ldrh r3, [r3, #0x1c]
+ sub r4, r2, r0
+ cmp r4, r3
+ bge _02018CE2
+ ldr r2, [sp, #0xc]
+ add r2, r2, r4
+ b _02018CE6
+_02018CE2:
+ ldr r2, [sp, #0xc]
+ add r2, r3, r2
+_02018CE6:
+ mov lr, r2
+ ldr r2, [sp, #0x0]
+ mov r3, #0x7
+ ldrh r4, [r2, #0x4]
+ add r2, r4, #0x0
+ and r2, r3
+ add r2, r4, r2
+ asr r2, r2, #0x3
+ str r2, [sp, #0x4c]
+ add r2, r1, #0x0
+ and r2, r3
+ add r1, r1, r2
+ asr r1, r1, #0x3
+ str r1, [sp, #0x48]
+ add r1, sp, #0x58
+ ldrh r1, [r1, #0x20]
+ ldr r2, _02018E80 ; =0x0000FFFF
+ str r1, [sp, #0x3c]
+ cmp r1, r2
+ bne _02018DC6
+ ldr r2, [sp, #0xc]
+ mov r1, lr
+ cmp r2, r1
+ bge _02018D1C
+ mov r1, lr
+ cmp r2, r1
+ blt _02018D1E
+_02018D1C:
+ b _02018E7C
+_02018D1E:
+ add r1, r2, #0x0
+ lsl r1, r1, #0x3
+ lsl r0, r0, #0x3
+ str r1, [sp, #0x28]
+ str r0, [sp, #0x24]
+_02018D28:
+ ldr r1, [sp, #0x8]
+ mov r0, r12
+ add r2, r1, #0x0
+ ldr r7, [sp, #0x10]
+ cmp r2, r0
+ bge _02018DA8
+ mov r0, r12
+ cmp r2, r0
+ bge _02018DA8
+ add r0, r1, #0x0
+ lsl r2, r0, #0x3
+ add r0, r7, #0x0
+ lsl r3, r0, #0x3
+ ldr r6, _02018E84 ; =0x00007FC0
+ ldr r0, [sp, #0x28]
+ ldr r4, [sp, #0x4c]
+ and r0, r6
+ mul r4, r0
+ str r4, [sp, #0x20]
+ ldr r0, [sp, #0x28]
+ mov r5, #0x38
+ and r0, r5
+ str r0, [sp, #0x1c]
+ ldr r0, [sp, #0x24]
+ ldr r4, [sp, #0x48]
+ and r0, r6
+ mul r4, r0
+ ldr r0, [sp, #0x24]
+ str r4, [sp, #0x18]
+ and r0, r5
+ str r0, [sp, #0x14]
+_02018D66:
+ ldr r0, [sp, #0x0]
+ add r5, r1, #0x0
+ mov r4, #0x7
+ and r5, r4
+ ldr r0, [r0, #0x0]
+ ldr r4, _02018E84 ; =0x00007FC0
+ add r0, r0, r5
+ and r4, r2
+ add r4, r4, r0
+ ldr r0, [sp, #0x20]
+ add r5, r7, #0x0
+ add r4, r0, r4
+ ldr r0, [sp, #0x1c]
+ add r1, r1, #0x1
+ ldrb r6, [r0, r4]
+ ldr r0, [sp, #0x4]
+ mov r4, #0x7
+ and r5, r4
+ ldr r0, [r0, #0x0]
+ ldr r4, _02018E84 ; =0x00007FC0
+ add r0, r0, r5
+ and r4, r3
+ add r4, r4, r0
+ ldr r0, [sp, #0x18]
+ add r2, #0x8
+ add r4, r0, r4
+ ldr r0, [sp, #0x14]
+ add r3, #0x8
+ strb r6, [r0, r4]
+ mov r0, r12
+ add r7, r7, #0x1
+ cmp r1, r0
+ blt _02018D66
+_02018DA8:
+ ldr r0, [sp, #0x28]
+ add r0, #0x8
+ str r0, [sp, #0x28]
+ ldr r0, [sp, #0xc]
+ add r0, r0, #0x1
+ str r0, [sp, #0xc]
+ ldr r0, [sp, #0x24]
+ ldr r1, [sp, #0xc]
+ add r0, #0x8
+ str r0, [sp, #0x24]
+ mov r0, lr
+ cmp r1, r0
+ blt _02018D28
+ add sp, #0x50
+ pop {r3-r7, pc}
+_02018DC6:
+ ldr r2, [sp, #0xc]
+ mov r1, lr
+ cmp r2, r1
+ bge _02018E7C
+ mov r1, lr
+ cmp r2, r1
+ bge _02018E7C
+ add r1, r2, #0x0
+ lsl r1, r1, #0x3
+ lsl r0, r0, #0x3
+ str r1, [sp, #0x44]
+ str r0, [sp, #0x40]
+_02018DDE:
+ ldr r2, [sp, #0x8]
+ mov r0, r12
+ add r1, r2, #0x0
+ ldr r3, [sp, #0x10]
+ cmp r1, r0
+ bge _02018E62
+ mov r0, r12
+ cmp r1, r0
+ bge _02018E62
+ add r0, r2, #0x0
+ lsl r6, r0, #0x3
+ add r0, r3, #0x0
+ lsl r1, r0, #0x3
+ ldr r7, _02018E84 ; =0x00007FC0
+ ldr r0, [sp, #0x44]
+ ldr r4, [sp, #0x4c]
+ and r0, r7
+ mul r4, r0
+ str r4, [sp, #0x38]
+ ldr r0, [sp, #0x44]
+ mov r5, #0x38
+ and r0, r5
+ str r0, [sp, #0x34]
+ ldr r0, [sp, #0x40]
+ ldr r4, [sp, #0x48]
+ and r0, r7
+ mul r4, r0
+ ldr r0, [sp, #0x40]
+ str r4, [sp, #0x30]
+ and r0, r5
+ str r0, [sp, #0x2c]
+_02018E1C:
+ ldr r0, [sp, #0x4]
+ mov r4, #0x7
+ ldr r0, [r0, #0x0]
+ and r4, r3
+ add r0, r0, r4
+ ldr r4, _02018E84 ; =0x00007FC0
+ add r5, r2, #0x0
+ and r4, r1
+ add r4, r0, r4
+ ldr r0, [sp, #0x30]
+ add r7, r4, r0
+ ldr r0, [sp, #0x0]
+ mov r4, #0x7
+ and r5, r4
+ ldr r0, [r0, #0x0]
+ ldr r4, _02018E84 ; =0x00007FC0
+ add r0, r0, r5
+ and r4, r6
+ add r4, r4, r0
+ ldr r0, [sp, #0x38]
+ add r4, r0, r4
+ ldr r0, [sp, #0x34]
+ ldrb r0, [r0, r4]
+ ldr r4, [sp, #0x3c]
+ cmp r0, r4
+ beq _02018E54
+ ldr r4, [sp, #0x2c]
+ strb r0, [r7, r4]
+_02018E54:
+ add r2, r2, #0x1
+ mov r0, r12
+ add r6, #0x8
+ add r1, #0x8
+ add r3, r3, #0x1
+ cmp r2, r0
+ blt _02018E1C
+_02018E62:
+ ldr r0, [sp, #0x44]
+ add r0, #0x8
+ str r0, [sp, #0x44]
+ ldr r0, [sp, #0xc]
+ add r0, r0, #0x1
+ str r0, [sp, #0xc]
+ ldr r0, [sp, #0x40]
+ ldr r1, [sp, #0xc]
+ add r0, #0x8
+ str r0, [sp, #0x40]
+ mov r0, lr
+ cmp r1, r0
+ blt _02018DDE
+_02018E7C:
+ add sp, #0x50
+ pop {r3-r7, pc}
+ .balign 4
+_02018E80: .word 0x0000FFFF
+_02018E84: .word 0x00007FC0
+
+ thumb_func_start FUN_02018E88
+FUN_02018E88: ; 0x02018E88
+ push {r4-r7, lr}
+ sub sp, #0x14
+ str r1, [sp, #0x4]
+ str r2, [sp, #0x8]
+ str r0, [sp, #0x0]
+ ldr r0, [sp, #0x2c]
+ str r0, [sp, #0x2c]
+ ldr r0, [sp, #0x4]
+ add r6, r0, r3
+ ldr r0, [sp, #0x0]
+ ldrh r0, [r0, #0x4]
+ cmp r6, r0
+ ble _02018EA4
+ add r6, r0, #0x0
+_02018EA4:
+ add r1, sp, #0x18
+ ldrh r2, [r1, #0x10]
+ ldr r1, [sp, #0x8]
+ add r1, r1, r2
+ mov r12, r1
+ ldr r1, [sp, #0x0]
+ ldrh r2, [r1, #0x6]
+ mov r1, r12
+ cmp r1, r2
+ ble _02018EBA
+ mov r12, r2
+_02018EBA:
+ mov r1, #0x7
+ and r1, r0
+ add r0, r0, r1
+ asr r0, r0, #0x3
+ mov lr, r0
+ ldr r1, [sp, #0x8]
+ mov r0, r12
+ cmp r1, r0
+ bge _02018F44
+ add r0, r1, #0x0
+ lsl r0, r0, #0x2
+ str r0, [sp, #0xc]
+ ldr r0, [sp, #0x2c]
+ lsl r0, r0, #0x4
+ str r0, [sp, #0x10]
+_02018ED8:
+ ldr r1, [sp, #0x4]
+ add r0, r1, #0x0
+ cmp r0, r6
+ bge _02018F32
+ lsl r5, r0, #0x2
+ ldr r2, _02018F48 ; =0x00003FE0
+ ldr r0, [sp, #0xc]
+ and r0, r2
+ add r7, r0, #0x0
+ mov r2, lr
+ mul r7, r2
+ ldr r0, [sp, #0xc]
+ mov r2, #0x1c
+ and r2, r0
+_02018EF4:
+ ldr r0, [sp, #0x0]
+ asr r3, r1, #0x1
+ ldr r4, [r0, #0x0]
+ mov r0, #0x3
+ and r0, r3
+ ldr r3, _02018F48 ; =0x00003FE0
+ add r0, r4, r0
+ and r3, r5
+ add r0, r0, r3
+ add r0, r0, r7
+ mov r3, #0x1
+ tst r3, r1
+ ldrb r4, [r0, r2]
+ beq _02018F1C
+ mov r3, #0xf
+ and r3, r4
+ strb r3, [r0, r2]
+ ldrb r4, [r0, r2]
+ ldr r3, [sp, #0x10]
+ b _02018F26
+_02018F1C:
+ mov r3, #0xf0
+ and r3, r4
+ strb r3, [r0, r2]
+ ldrb r4, [r0, r2]
+ ldr r3, [sp, #0x2c]
+_02018F26:
+ orr r3, r4
+ add r1, r1, #0x1
+ strb r3, [r0, r2]
+ add r5, r5, #0x4
+ cmp r1, r6
+ blt _02018EF4
+_02018F32:
+ ldr r0, [sp, #0xc]
+ add r0, r0, #0x4
+ str r0, [sp, #0xc]
+ ldr r0, [sp, #0x8]
+ add r1, r0, #0x1
+ mov r0, r12
+ str r1, [sp, #0x8]
+ cmp r1, r0
+ blt _02018ED8
+_02018F44:
+ add sp, #0x14
+ pop {r4-r7, pc}
+ .balign 4
+_02018F48: .word 0x00003FE0
+
+ thumb_func_start FUN_02018F4C
+FUN_02018F4C: ; 0x02018F4C
+ push {r4-r7, lr}
+ sub sp, #0x14
+ str r1, [sp, #0x4]
+ str r2, [sp, #0x8]
+ str r0, [sp, #0x0]
+ ldr r0, [sp, #0x2c]
+ str r0, [sp, #0x2c]
+ ldr r0, [sp, #0x4]
+ add r5, r0, r3
+ ldr r0, [sp, #0x0]
+ ldrh r0, [r0, #0x4]
+ cmp r5, r0
+ ble _02018F68
+ add r5, r0, #0x0
+_02018F68:
+ add r1, sp, #0x18
+ ldrh r2, [r1, #0x10]
+ ldr r1, [sp, #0x8]
+ add r1, r1, r2
+ mov lr, r1
+ ldr r1, [sp, #0x0]
+ ldrh r2, [r1, #0x6]
+ mov r1, lr
+ cmp r1, r2
+ ble _02018F7E
+ mov lr, r2
+_02018F7E:
+ mov r1, #0x7
+ and r1, r0
+ add r0, r0, r1
+ asr r0, r0, #0x3
+ str r0, [sp, #0x10]
+ ldr r1, [sp, #0x8]
+ mov r0, lr
+ cmp r1, r0
+ bge _02018FEA
+ add r0, r1, #0x0
+ lsl r0, r0, #0x3
+ str r0, [sp, #0xc]
+ ldr r0, [sp, #0x4]
+ lsl r0, r0, #0x3
+ mov r12, r0
+_02018F9C:
+ ldr r2, [sp, #0x4]
+ add r0, r2, #0x0
+ cmp r0, r5
+ bge _02018FD8
+ ldr r1, [sp, #0xc]
+ ldr r0, _02018FF0 ; =0x00007FC0
+ mov r3, r12
+ and r0, r1
+ add r7, r0, #0x0
+ ldr r1, [sp, #0x10]
+ mov r0, #0x38
+ mul r7, r1
+ ldr r1, [sp, #0xc]
+ add r6, r1, #0x0
+ and r6, r0
+_02018FBA:
+ ldr r0, [sp, #0x0]
+ ldr r4, _02018FF0 ; =0x00007FC0
+ ldr r1, [r0, #0x0]
+ mov r0, #0x7
+ and r0, r2
+ and r4, r3
+ add r0, r1, r0
+ add r0, r4, r0
+ add r1, r7, r0
+ ldr r0, [sp, #0x2c]
+ add r2, r2, #0x1
+ strb r0, [r6, r1]
+ add r3, #0x8
+ cmp r2, r5
+ blt _02018FBA
+_02018FD8:
+ ldr r0, [sp, #0xc]
+ add r0, #0x8
+ str r0, [sp, #0xc]
+ ldr r0, [sp, #0x8]
+ add r1, r0, #0x1
+ mov r0, lr
+ str r1, [sp, #0x8]
+ cmp r1, r0
+ blt _02018F9C
+_02018FEA:
+ add sp, #0x14
+ pop {r4-r7, pc}
+ nop
+_02018FF0: .word 0x00007FC0
+
+ thumb_func_start FUN_02018FF4
+FUN_02018FF4: ; 0x02018FF4
+ push {r4-r6, lr}
+ add r5, r1, #0x0
+ lsl r1, r5, #0x4
+ bl FUN_02016998
+ add r6, r0, #0x0
+ mov r4, #0x0
+ cmp r5, #0x0
+ ble _02019018
+_02019006:
+ lsl r0, r4, #0x4
+ add r0, r6, r0
+ bl FUN_0201901C
+ add r0, r4, #0x1
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+ cmp r4, r5
+ blt _02019006
+_02019018:
+ add r0, r6, #0x0
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_0201901C
+FUN_0201901C: ; 0x0201901C
+ mov r3, #0x0
+ str r3, [r0, #0x0]
+ mov r1, #0xff
+ strb r1, [r0, #0x4]
+ strb r3, [r0, #0x5]
+ strb r3, [r0, #0x6]
+ strb r3, [r0, #0x7]
+ strb r3, [r0, #0x8]
+ strb r3, [r0, #0x9]
+ ldrh r2, [r0, #0xa]
+ ldr r1, _02019044 ; =0xFFFF8000
+ and r2, r1
+ strh r2, [r0, #0xa]
+ str r3, [r0, #0xc]
+ ldrh r2, [r0, #0xa]
+ sub r1, r1, #0x1
+ and r1, r2
+ strh r1, [r0, #0xa]
+ bx lr
+ nop
+_02019044: .word 0xFFFF8000
+
+ thumb_func_start FUN_02019048
+FUN_02019048: ; 0x02019048
+ ldr r1, [r0, #0x0]
+ cmp r1, #0x0
+ beq _0201905A
+ ldrb r1, [r0, #0x4]
+ cmp r1, #0xff
+ beq _0201905A
+ ldr r0, [r0, #0xc]
+ cmp r0, #0x0
+ bne _0201905E
+_0201905A:
+ mov r0, #0x0
+ bx lr
+_0201905E:
+ mov r0, #0x1
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02019064
+FUN_02019064: ; 0x02019064
+ push {r3-r7, lr}
+ add r6, r2, #0x0
+ add r5, r0, #0x0
+ mov r0, #0x2c
+ add r7, r6, #0x0
+ mul r7, r0
+ add r4, r1, #0x0
+ str r3, [sp, #0x0]
+ add r1, r5, r7
+ ldr r0, [r1, #0x8]
+ cmp r0, #0x0
+ beq _020190E0
+ add r3, sp, #0x8
+ ldrb r2, [r1, #0x1f]
+ ldrb r1, [r3, #0x14]
+ ldrb r3, [r3, #0x18]
+ ldr r0, [r5, #0x0]
+ mul r3, r1
+ add r1, r2, #0x0
+ mul r1, r3
+ bl FUN_02016998
+ add r1, r0, #0x0
+ beq _020190E0
+ str r5, [r4, #0x0]
+ strb r6, [r4, #0x4]
+ ldr r0, [sp, #0x0]
+ add r3, sp, #0x8
+ strb r0, [r4, #0x5]
+ ldrb r0, [r3, #0x10]
+ ldr r2, _020190E4 ; =0xFFFF8000
+ strb r0, [r4, #0x6]
+ ldrb r0, [r3, #0x14]
+ strb r0, [r4, #0x7]
+ ldrb r0, [r3, #0x18]
+ strb r0, [r4, #0x8]
+ ldrb r0, [r3, #0x1c]
+ strb r0, [r4, #0x9]
+ ldrh r0, [r4, #0xa]
+ ldrh r3, [r3, #0x20]
+ and r0, r2
+ lsr r2, r2, #0x11
+ and r2, r3
+ orr r0, r2
+ strh r0, [r4, #0xa]
+ str r1, [r4, #0xc]
+ add r0, r5, r7
+ ldrb r0, [r0, #0x1e]
+ cmp r0, #0x0
+ bne _020190CC
+ mov r2, #0x0
+ b _020190CE
+_020190CC:
+ mov r2, #0x1
+_020190CE:
+ ldrh r1, [r4, #0xa]
+ ldr r0, _020190E8 ; =0xFFFF7FFF
+ and r1, r0
+ lsl r0, r2, #0x10
+ lsr r0, r0, #0x10
+ lsl r0, r0, #0x1f
+ lsr r0, r0, #0x10
+ orr r0, r1
+ strh r0, [r4, #0xa]
+_020190E0:
+ pop {r3-r7, pc}
+ nop
+_020190E4: .word 0xFFFF8000
+_020190E8: .word 0xFFFF7FFF
+
+ thumb_func_start FUN_020190EC
+FUN_020190EC: ; 0x020190EC
+ push {r3-r7, lr}
+ sub sp, #0x8
+ str r3, [sp, #0x0]
+ add r5, r0, #0x0
+ ldr r0, [sp, #0x24]
+ add r6, r2, #0x0
+ str r0, [sp, #0x24]
+ ldr r0, [sp, #0x0]
+ add r4, r1, #0x0
+ mul r0, r6
+ lsl r0, r0, #0x5
+ str r0, [sp, #0x4]
+ ldr r0, [r5, #0x0]
+ ldr r1, [sp, #0x4]
+ bl FUN_02016998
+ ldr r1, [sp, #0x24]
+ add r7, r0, #0x0
+ lsl r2, r1, #0x4
+ orr r1, r2
+ lsl r1, r1, #0x18
+ ldr r2, [sp, #0x4]
+ lsr r1, r1, #0x18
+ blx Call_FillMemWithValue
+ cmp r7, #0x0
+ beq _02019148
+ str r5, [r4, #0x0]
+ strb r6, [r4, #0x7]
+ ldr r0, [sp, #0x0]
+ strb r0, [r4, #0x8]
+ ldrh r1, [r4, #0xa]
+ ldr r0, _0201914C ; =0xFFFF8000
+ add r3, r1, #0x0
+ add r1, sp, #0x10
+ ldrh r2, [r1, #0x10]
+ lsr r1, r0, #0x11
+ and r3, r0
+ and r1, r2
+ orr r1, r3
+ strh r1, [r4, #0xa]
+ str r7, [r4, #0xc]
+ ldrh r1, [r4, #0xa]
+ sub r0, r0, #0x1
+ and r0, r1
+ strh r0, [r4, #0xa]
+_02019148:
+ add sp, #0x8
+ pop {r3-r7, pc}
+ .balign 4
+_0201914C: .word 0xFFFF8000
+
+ thumb_func_start FUN_02019150
+FUN_02019150: ; 0x02019150
+ push {lr}
+ sub sp, #0x14
+ add r3, r2, #0x0
+ ldrb r2, [r3, #0x2]
+ str r2, [sp, #0x0]
+ ldrb r2, [r3, #0x3]
+ str r2, [sp, #0x4]
+ ldrb r2, [r3, #0x4]
+ str r2, [sp, #0x8]
+ ldrb r2, [r3, #0x5]
+ str r2, [sp, #0xc]
+ ldrh r2, [r3, #0x6]
+ str r2, [sp, #0x10]
+ ldrb r2, [r3, #0x0]
+ ldrb r3, [r3, #0x1]
+ bl FUN_02019064
+ add sp, #0x14
+ pop {pc}
+ .balign 4
+
+ thumb_func_start FUN_02019178
+FUN_02019178: ; 0x02019178
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r0, [r4, #0xc]
+ bl FUN_02016A18
+ mov r2, #0x0
+ str r2, [r4, #0x0]
+ mov r0, #0xff
+ strb r0, [r4, #0x4]
+ strb r2, [r4, #0x5]
+ strb r2, [r4, #0x6]
+ strb r2, [r4, #0x7]
+ strb r2, [r4, #0x8]
+ strb r2, [r4, #0x9]
+ ldrh r1, [r4, #0xa]
+ ldr r0, _020191A0 ; =0xFFFF8000
+ and r0, r1
+ strh r0, [r4, #0xa]
+ str r2, [r4, #0xc]
+ pop {r4, pc}
+ .balign 4
+_020191A0: .word 0xFFFF8000
+
+ thumb_func_start FUN_020191A4
+FUN_020191A4: ; 0x020191A4
+ push {r4-r6, lr}
+ add r6, r1, #0x0
+ add r5, r0, #0x0
+ mov r4, #0x0
+ cmp r6, #0x0
+ ble _020191C8
+_020191B0:
+ lsl r0, r4, #0x4
+ add r0, r5, r0
+ ldr r0, [r0, #0xc]
+ cmp r0, #0x0
+ beq _020191BE
+ bl FUN_02016A18
+_020191BE:
+ add r0, r4, #0x1
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+ cmp r4, r6
+ blt _020191B0
+_020191C8:
+ add r0, r5, #0x0
+ bl FUN_02016A18
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_020191D0
+FUN_020191D0: ; 0x020191D0
+ push {r4, lr}
+ add r4, r0, #0x0
+ bne _020191DA
+ bl ErrorHandling
+_020191DA:
+ ldr r0, [r4, #0x0]
+ cmp r0, #0x0
+ bne _020191E4
+ bl ErrorHandling
+_020191E4:
+ ldrb r0, [r4, #0x4]
+ cmp r0, #0x8
+ blo _020191EE
+ bl ErrorHandling
+_020191EE:
+ ldrb r1, [r4, #0x4]
+ mov r0, #0x2c
+ ldr r2, [r4, #0x0]
+ mul r0, r1
+ add r0, r2, r0
+ ldrb r0, [r0, #0x1c]
+ cmp r0, #0x3
+ blo _02019202
+ bl ErrorHandling
+_02019202:
+ ldrb r2, [r4, #0x4]
+ mov r1, #0x2c
+ ldr r3, [r4, #0x0]
+ mul r1, r2
+ add r1, r3, r1
+ ldrb r1, [r1, #0x1c]
+ add r0, r4, #0x0
+ lsl r2, r1, #0x2
+ ldr r1, _0201921C ; =0x020EDB68
+ ldr r1, [r1, r2]
+ blx r1
+ pop {r4, pc}
+ nop
+_0201921C: .word 0x020EDB68
+
+ thumb_func_start FUN_02019220
+FUN_02019220: ; 0x02019220
+ push {r4, lr}
+ add r4, r0, #0x0
+ bne _0201922A
+ bl ErrorHandling
+_0201922A:
+ ldr r0, [r4, #0x0]
+ cmp r0, #0x0
+ bne _02019234
+ bl ErrorHandling
+_02019234:
+ ldrb r0, [r4, #0x4]
+ cmp r0, #0x8
+ blo _0201923E
+ bl ErrorHandling
+_0201923E:
+ ldrb r1, [r4, #0x4]
+ mov r0, #0x2c
+ ldr r2, [r4, #0x0]
+ mul r0, r1
+ add r0, r2, r0
+ ldrb r0, [r0, #0x1c]
+ cmp r0, #0x3
+ blo _02019252
+ bl ErrorHandling
+_02019252:
+ ldrb r2, [r4, #0x4]
+ mov r1, #0x2c
+ ldr r3, [r4, #0x0]
+ mul r1, r2
+ add r1, r3, r1
+ ldrb r1, [r1, #0x1c]
+ add r0, r4, #0x0
+ lsl r2, r1, #0x2
+ ldr r1, _0201926C ; =0x020EDB5C
+ ldr r1, [r1, r2]
+ blx r1
+ pop {r4, pc}
+ nop
+_0201926C: .word 0x020EDB5C
+
+ thumb_func_start FUN_02019270
+FUN_02019270: ; 0x02019270
+ push {r3, lr}
+ ldrb r2, [r0, #0x4]
+ mov r1, #0x2c
+ ldr r3, [r0, #0x0]
+ mul r1, r2
+ add r1, r3, r1
+ ldrb r1, [r1, #0x1c]
+ lsl r2, r1, #0x2
+ ldr r1, _02019288 ; =0x020EDB38
+ ldr r1, [r1, r2]
+ blx r1
+ pop {r3, pc}
+ .balign 4
+_02019288: .word 0x020EDB38
+
+ thumb_func_start FUN_0201928C
+FUN_0201928C: ; 0x0201928C
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ ldrb r6, [r5, #0x7]
+ ldrb r4, [r5, #0x8]
+ strb r1, [r5, #0x7]
+ strb r2, [r5, #0x8]
+ ldrb r3, [r5, #0x4]
+ mov r2, #0x2c
+ ldr r1, [r5, #0x0]
+ mul r2, r3
+ add r1, r1, r2
+ ldrb r1, [r1, #0x1c]
+ lsl r2, r1, #0x2
+ ldr r1, _020192B4 ; =0x020EDB38
+ ldr r1, [r1, r2]
+ blx r1
+ strb r6, [r5, #0x7]
+ strb r4, [r5, #0x8]
+ pop {r4-r6, pc}
+ nop
+_020192B4: .word 0x020EDB38
+
+ thumb_func_start FUN_020192B8
+FUN_020192B8: ; 0x020192B8
+ push {r3, lr}
+ ldrb r2, [r0, #0x4]
+ mov r1, #0x2c
+ ldr r3, [r0, #0x0]
+ mul r1, r2
+ add r1, r3, r1
+ ldrb r1, [r1, #0x1c]
+ lsl r2, r1, #0x2
+ ldr r1, _020192D0 ; =0x020EDB74
+ ldr r1, [r1, r2]
+ blx r1
+ pop {r3, pc}
+ .balign 4
+_020192D0: .word 0x020EDB74
+
+ thumb_func_start FUN_020192D4
+FUN_020192D4: ; 0x020192D4
+ push {r3-r7, lr}
+ sub sp, #0x8
+ add r5, r0, #0x0
+ ldrb r1, [r5, #0x4]
+ mov r0, #0x2c
+ ldr r2, [r5, #0x0]
+ mul r0, r1
+ add r0, r2, r0
+ ldr r0, [r0, #0x8]
+ str r0, [sp, #0x4]
+ cmp r0, #0x0
+ beq _02019354
+ ldrh r0, [r5, #0xa]
+ ldrb r1, [r5, #0x5]
+ lsl r0, r0, #0x11
+ lsr r3, r0, #0x11
+ ldrb r0, [r5, #0x7]
+ add r7, r1, r0
+ ldrb r0, [r5, #0x6]
+ ldrb r1, [r5, #0x8]
+ mov r12, r0
+ add r0, r0, r1
+ mov r1, r12
+ mov lr, r0
+ cmp r1, r0
+ bhs _02019354
+_02019308:
+ ldrb r2, [r5, #0x5]
+ cmp r2, r7
+ bhs _02019348
+ mov r0, r12
+ lsl r0, r0, #0x1b
+ lsr r0, r0, #0x16
+ lsl r1, r0, #0x1
+ ldr r0, [sp, #0x4]
+ add r0, r0, r1
+ mov r1, r12
+ str r0, [sp, #0x0]
+ mov r0, #0x20
+ add r6, r1, #0x0
+ and r6, r0
+_02019324:
+ ldrb r0, [r5, #0x9]
+ mov r4, #0x20
+ add r1, r3, #0x0
+ lsl r0, r0, #0xc
+ and r4, r2
+ orr r1, r0
+ mov r0, #0x1f
+ add r4, r6, r4
+ and r0, r2
+ lsl r4, r4, #0x5
+ add r0, r0, r4
+ lsl r4, r0, #0x1
+ ldr r0, [sp, #0x0]
+ add r2, r2, #0x1
+ strh r1, [r0, r4]
+ add r3, r3, #0x1
+ cmp r2, r7
+ blo _02019324
+_02019348:
+ mov r0, r12
+ add r1, r0, #0x1
+ mov r0, lr
+ mov r12, r1
+ cmp r1, r0
+ blo _02019308
+_02019354:
+ add sp, #0x8
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_02019358
+FUN_02019358: ; 0x02019358
+ push {r4-r7}
+ ldrb r3, [r0, #0x4]
+ mov r1, #0x2c
+ add r2, r3, #0x0
+ mul r2, r1
+ ldr r1, [r0, #0x0]
+ add r1, r1, r2
+ ldr r3, [r1, #0x8]
+ cmp r3, #0x0
+ beq _020193AC
+ ldrb r2, [r1, #0x1d]
+ ldr r1, _020193B0 ; =0x020EDB30
+ ldrb r6, [r1, r2]
+ ldrb r1, [r0, #0x6]
+ add r2, r1, #0x0
+ mul r2, r6
+ add r2, r3, r2
+ ldrb r1, [r0, #0x5]
+ mov r3, #0x0
+ add r4, r2, r1
+ ldrh r1, [r0, #0xa]
+ lsl r1, r1, #0x11
+ lsr r5, r1, #0x11
+ ldrb r1, [r0, #0x8]
+ cmp r1, #0x0
+ ble _020193AC
+ add r1, r3, #0x0
+_0201938E:
+ ldrb r7, [r0, #0x7]
+ add r2, r1, #0x0
+ cmp r7, #0x0
+ ble _020193A2
+_02019396:
+ strb r5, [r4, r2]
+ ldrb r7, [r0, #0x7]
+ add r2, r2, #0x1
+ add r5, r5, #0x1
+ cmp r2, r7
+ blt _02019396
+_020193A2:
+ ldrb r2, [r0, #0x8]
+ add r3, r3, #0x1
+ add r4, r4, r6
+ cmp r3, r2
+ blt _0201938E
+_020193AC:
+ pop {r4-r7}
+ bx lr
+ .balign 4
+_020193B0: .word 0x020EDB30
+
+ thumb_func_start FUN_020193B4
+FUN_020193B4: ; 0x020193B4
+ push {r4-r7, lr}
+ sub sp, #0xc
+ ldrb r2, [r0, #0x4]
+ str r0, [sp, #0x0]
+ mov r0, #0x2c
+ add r1, r2, #0x0
+ mul r1, r0
+ ldr r0, [sp, #0x0]
+ ldr r0, [r0, #0x0]
+ add r1, r0, r1
+ ldr r0, [r1, #0x8]
+ str r0, [sp, #0x4]
+ cmp r0, #0x0
+ beq _0201943C
+ ldrb r1, [r1, #0x1d]
+ ldr r0, _02019440 ; =0x020EDB30
+ ldrb r0, [r0, r1]
+ str r0, [sp, #0x8]
+ ldr r0, [sp, #0x0]
+ ldrb r1, [r0, #0x5]
+ ldrb r0, [r0, #0x7]
+ add r2, r1, r0
+ ldr r0, [sp, #0x0]
+ ldrb r0, [r0, #0x6]
+ mov r12, r0
+ ldr r0, [sp, #0x0]
+ ldrb r1, [r0, #0x8]
+ mov r0, r12
+ add r0, r0, r1
+ mov r1, r12
+ mov lr, r0
+ cmp r1, r0
+ bhs _0201943C
+ mov r6, #0x0
+ mov r7, #0x20
+_020193FA:
+ ldr r0, [sp, #0x0]
+ ldrb r1, [r0, #0x5]
+ cmp r1, r2
+ bhs _02019430
+ mov r3, r12
+ mov r0, #0x1f
+ and r3, r0
+ ldr r0, [sp, #0x8]
+ mul r0, r3
+ lsl r3, r0, #0x1
+ ldr r0, [sp, #0x4]
+ add r5, r0, r3
+ mov r3, r12
+ mov r0, #0x20
+ and r3, r0
+_02019418:
+ add r4, r1, #0x0
+ and r4, r7
+ mov r0, #0x1f
+ add r4, r3, r4
+ and r0, r1
+ lsl r4, r4, #0x5
+ add r0, r0, r4
+ lsl r0, r0, #0x1
+ add r1, r1, #0x1
+ strh r6, [r5, r0]
+ cmp r1, r2
+ blo _02019418
+_02019430:
+ mov r0, r12
+ add r1, r0, #0x1
+ mov r0, lr
+ mov r12, r1
+ cmp r1, r0
+ blo _020193FA
+_0201943C:
+ add sp, #0xc
+ pop {r4-r7, pc}
+ .balign 4
+_02019440: .word 0x020EDB30
+
+ thumb_func_start FUN_02019444
+FUN_02019444: ; 0x02019444
+ push {r4-r7}
+ ldrb r3, [r0, #0x4]
+ mov r1, #0x2c
+ add r2, r3, #0x0
+ mul r2, r1
+ ldr r1, [r0, #0x0]
+ add r1, r1, r2
+ ldr r3, [r1, #0x8]
+ cmp r3, #0x0
+ beq _02019492
+ ldrb r2, [r1, #0x1d]
+ ldr r1, _02019498 ; =0x020EDB30
+ mov r4, #0x0
+ ldrb r6, [r1, r2]
+ ldrb r1, [r0, #0x6]
+ add r2, r1, #0x0
+ mul r2, r6
+ ldrb r1, [r0, #0x5]
+ add r2, r3, r2
+ add r5, r2, r1
+ ldrb r1, [r0, #0x8]
+ cmp r1, #0x0
+ ble _02019492
+ add r1, r4, #0x0
+ add r2, r4, #0x0
+_02019476:
+ ldrb r7, [r0, #0x7]
+ add r3, r2, #0x0
+ cmp r7, #0x0
+ ble _02019488
+_0201947E:
+ strb r1, [r5, r3]
+ ldrb r7, [r0, #0x7]
+ add r3, r3, #0x1
+ cmp r3, r7
+ blt _0201947E
+_02019488:
+ ldrb r3, [r0, #0x8]
+ add r4, r4, #0x1
+ add r5, r5, r6
+ cmp r4, r3
+ blt _02019476
+_02019492:
+ pop {r4-r7}
+ bx lr
+ nop
+_02019498: .word 0x020EDB30
+
+ thumb_func_start FUN_0201949C
+FUN_0201949C: ; 0x0201949C
+ push {r3-r4, lr}
+ sub sp, #0x4
+ add r4, r0, #0x0
+ bl FUN_020192D4
+ add r0, r4, #0x0
+ bl FUN_02019548
+ ldrb r1, [r4, #0x4]
+ mov r0, #0x2c
+ add r2, r1, #0x0
+ mul r2, r0
+ ldr r0, [r4, #0x0]
+ add r3, r0, r2
+ ldr r2, [r3, #0x10]
+ str r2, [sp, #0x0]
+ ldr r2, [r3, #0x8]
+ ldr r3, [r3, #0xc]
+ bl FUN_02017CE8
+ add sp, #0x4
+ pop {r3-r4, pc}
+
+ thumb_func_start FUN_020194C8
+FUN_020194C8: ; 0x020194C8
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl FUN_020192D4
+ ldrb r1, [r4, #0x4]
+ ldr r0, [r4, #0x0]
+ bl FUN_0201AC68
+ add r0, r4, #0x0
+ bl FUN_02019548
+ pop {r4, pc}
+
+ thumb_func_start FUN_020194E0
+FUN_020194E0: ; 0x020194E0
+ push {r3-r5, lr}
+ add r4, r0, #0x0
+ bl FUN_02019358
+ ldrb r1, [r4, #0x4]
+ mov r0, #0x2c
+ add r2, r1, #0x0
+ mul r2, r0
+ ldr r0, [r4, #0x0]
+ add r3, r0, r2
+ ldr r2, [r3, #0x10]
+ str r2, [sp, #0x0]
+ ldr r2, [r3, #0x8]
+ ldr r3, [r3, #0xc]
+ bl FUN_02017CE8
+ ldrh r0, [r4, #0xa]
+ lsl r0, r0, #0x11
+ lsr r0, r0, #0x11
+ str r0, [sp, #0x0]
+ ldrb r5, [r4, #0x7]
+ ldrb r3, [r4, #0x8]
+ ldrb r1, [r4, #0x4]
+ ldr r0, [r4, #0x0]
+ mul r3, r5
+ ldr r2, [r4, #0xc]
+ lsl r3, r3, #0x6
+ bl FUN_02017E14
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_0201951C
+FUN_0201951C: ; 0x0201951C
+ push {r3-r5, lr}
+ add r4, r0, #0x0
+ bl FUN_02019358
+ ldrb r1, [r4, #0x4]
+ ldr r0, [r4, #0x0]
+ bl FUN_0201AC68
+ ldrh r0, [r4, #0xa]
+ lsl r0, r0, #0x11
+ lsr r0, r0, #0x11
+ str r0, [sp, #0x0]
+ ldrb r5, [r4, #0x7]
+ ldrb r3, [r4, #0x8]
+ ldrb r1, [r4, #0x4]
+ ldr r0, [r4, #0x0]
+ mul r3, r5
+ ldr r2, [r4, #0xc]
+ lsl r3, r3, #0x6
+ bl FUN_02017E14
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_02019548
+FUN_02019548: ; 0x02019548
+ push {r3-r5, lr}
+ add r3, r0, #0x0
+ ldrh r2, [r3, #0xa]
+ ldrb r1, [r3, #0x4]
+ mov r4, #0x2c
+ lsl r2, r2, #0x11
+ ldr r0, [r3, #0x0]
+ lsr r2, r2, #0x11
+ str r2, [sp, #0x0]
+ mul r4, r1
+ add r4, r0, r4
+ ldr r2, [r3, #0xc]
+ ldrb r5, [r3, #0x7]
+ ldrb r3, [r3, #0x8]
+ ldrb r4, [r4, #0x1f]
+ mul r3, r5
+ mul r3, r4
+ bl FUN_02017E14
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_02019570
+FUN_02019570: ; 0x02019570
+ push {r3, lr}
+ ldrb r2, [r0, #0x4]
+ mov r1, #0x2c
+ ldr r3, [r0, #0x0]
+ mul r1, r2
+ add r1, r3, r1
+ ldrb r1, [r1, #0x1c]
+ lsl r2, r1, #0x2
+ ldr r1, _02019588 ; =0x020EDB50
+ ldr r1, [r1, r2]
+ blx r1
+ pop {r3, pc}
+ .balign 4
+_02019588: .word 0x020EDB50
+
+ thumb_func_start FUN_0201958C
+FUN_0201958C: ; 0x0201958C
+ push {r3, lr}
+ ldrb r2, [r0, #0x4]
+ mov r1, #0x2c
+ ldr r3, [r0, #0x0]
+ mul r1, r2
+ add r1, r3, r1
+ ldrb r1, [r1, #0x1c]
+ lsl r2, r1, #0x2
+ ldr r1, _020195A4 ; =0x020EDB44
+ ldr r1, [r1, r2]
+ blx r1
+ pop {r3, pc}
+ .balign 4
+_020195A4: .word 0x020EDB44
+
+ thumb_func_start FUN_020195A8
+FUN_020195A8: ; 0x020195A8
+ push {r3-r4, lr}
+ sub sp, #0x4
+ add r4, r0, #0x0
+ bl FUN_020193B4
+ ldrb r1, [r4, #0x4]
+ mov r0, #0x2c
+ add r2, r1, #0x0
+ mul r2, r0
+ ldr r0, [r4, #0x0]
+ add r3, r0, r2
+ ldr r2, [r3, #0x10]
+ str r2, [sp, #0x0]
+ ldr r2, [r3, #0x8]
+ ldr r3, [r3, #0xc]
+ bl FUN_02017CE8
+ add sp, #0x4
+ pop {r3-r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_020195D0
+FUN_020195D0: ; 0x020195D0
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl FUN_020193B4
+ ldrb r1, [r4, #0x4]
+ ldr r0, [r4, #0x0]
+ bl FUN_0201AC68
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_020195E4
+FUN_020195E4: ; 0x020195E4
+ push {r3-r4, lr}
+ sub sp, #0x4
+ add r4, r0, #0x0
+ bl FUN_02019444
+ ldrb r1, [r4, #0x4]
+ mov r0, #0x2c
+ add r2, r1, #0x0
+ mul r2, r0
+ ldr r0, [r4, #0x0]
+ add r3, r0, r2
+ ldr r2, [r3, #0x10]
+ str r2, [sp, #0x0]
+ ldr r2, [r3, #0x8]
+ ldr r3, [r3, #0xc]
+ bl FUN_02017CE8
+ add sp, #0x4
+ pop {r3-r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0201960C
+FUN_0201960C: ; 0x0201960C
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl FUN_02019444
+ ldrb r1, [r4, #0x4]
+ ldr r0, [r4, #0x0]
+ bl FUN_0201AC68
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02019620
+FUN_02019620: ; 0x02019620
+ push {r3-r5, lr}
+ add r4, r0, #0x0
+ ldrb r2, [r4, #0x4]
+ mov r0, #0x2c
+ ldr r3, [r4, #0x0]
+ mul r0, r2
+ add r0, r3, r0
+ ldrb r2, [r0, #0x1f]
+ cmp r2, #0x20
+ bne _0201963C
+ lsl r0, r1, #0x4
+ orr r0, r1
+ lsl r0, r0, #0x18
+ lsr r1, r0, #0x18
+_0201963C:
+ lsl r3, r1, #0x18
+ lsl r0, r1, #0x10
+ orr r0, r3
+ lsl r5, r1, #0x8
+ orr r0, r5
+ orr r0, r1
+ ldr r1, [r4, #0xc]
+ ldrb r3, [r4, #0x8]
+ ldrb r4, [r4, #0x7]
+ mul r2, r4
+ mul r2, r3
+ blx MIi_CpuClearFast
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_02019658
+FUN_02019658: ; 0x02019658
+ push {r4-r5, lr}
+ sub sp, #0x1c
+ add r4, sp, #0x18
+ ldrh r5, [r4, #0x10]
+ str r5, [sp, #0x0]
+ ldrh r5, [r4, #0x14]
+ str r5, [sp, #0x4]
+ ldrh r5, [r4, #0x18]
+ str r5, [sp, #0x8]
+ ldrh r5, [r4, #0x1c]
+ str r5, [sp, #0xc]
+ ldrh r5, [r4, #0x20]
+ str r5, [sp, #0x10]
+ ldrh r4, [r4, #0x24]
+ str r4, [sp, #0x14]
+ mov r4, #0x0
+ str r4, [sp, #0x18]
+ bl FUN_02019684
+ add sp, #0x1c
+ pop {r4-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_02019684
+FUN_02019684: ; 0x02019684
+ push {r4-r5, lr}
+ sub sp, #0x24
+ str r1, [sp, #0x1c]
+ add r4, sp, #0x20
+ ldrh r5, [r4, #0x10]
+ add r1, sp, #0x14
+ strh r5, [r1, #0xc]
+ ldrh r5, [r4, #0x14]
+ strh r5, [r1, #0xe]
+ ldr r5, [r0, #0xc]
+ str r5, [sp, #0x14]
+ ldrb r5, [r0, #0x7]
+ lsl r5, r5, #0x3
+ strh r5, [r1, #0x4]
+ ldrb r5, [r0, #0x8]
+ lsl r5, r5, #0x3
+ strh r5, [r1, #0x6]
+ ldrb r5, [r0, #0x4]
+ ldr r1, [r0, #0x0]
+ mov r0, #0x2c
+ mul r0, r5
+ add r0, r1, r0
+ ldrb r0, [r0, #0x1e]
+ add r1, sp, #0x14
+ cmp r0, #0x0
+ ldrh r0, [r4, #0x18]
+ bne _020196D6
+ str r0, [sp, #0x0]
+ ldrh r0, [r4, #0x1c]
+ str r0, [sp, #0x4]
+ ldrh r0, [r4, #0x20]
+ str r0, [sp, #0x8]
+ ldrh r0, [r4, #0x24]
+ str r0, [sp, #0xc]
+ ldrh r0, [r4, #0x28]
+ str r0, [sp, #0x10]
+ add r0, sp, #0x1c
+ bl FUN_02018A60
+ add sp, #0x24
+ pop {r4-r5, pc}
+_020196D6:
+ str r0, [sp, #0x0]
+ ldrh r0, [r4, #0x1c]
+ str r0, [sp, #0x4]
+ ldrh r0, [r4, #0x20]
+ str r0, [sp, #0x8]
+ ldrh r0, [r4, #0x24]
+ str r0, [sp, #0xc]
+ ldrh r0, [r4, #0x28]
+ str r0, [sp, #0x10]
+ add r0, sp, #0x1c
+ bl FUN_02018CA0
+ add sp, #0x24
+ pop {r4-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_020196F4
+FUN_020196F4: ; 0x020196F4
+ push {r3-r5, lr}
+ sub sp, #0x10
+ add r5, r1, #0x0
+ ldr r1, [r0, #0xc]
+ add r4, r2, #0x0
+ str r1, [sp, #0x8]
+ ldrb r1, [r0, #0x7]
+ add r2, r3, #0x0
+ lsl r3, r1, #0x3
+ add r1, sp, #0x8
+ strh r3, [r1, #0x4]
+ ldrb r3, [r0, #0x8]
+ lsl r3, r3, #0x3
+ strh r3, [r1, #0x6]
+ ldrb r3, [r0, #0x4]
+ ldr r1, [r0, #0x0]
+ mov r0, #0x2c
+ mul r0, r3
+ add r0, r1, r0
+ ldrb r0, [r0, #0x1e]
+ add r3, sp, #0x10
+ cmp r0, #0x0
+ bne _02019736
+ ldrh r0, [r3, #0x14]
+ add r1, r4, #0x0
+ str r0, [sp, #0x0]
+ str r5, [sp, #0x4]
+ ldrh r3, [r3, #0x10]
+ add r0, sp, #0x8
+ bl FUN_02018E88
+ add sp, #0x10
+ pop {r3-r5, pc}
+_02019736:
+ ldrh r0, [r3, #0x14]
+ add r1, r4, #0x0
+ str r0, [sp, #0x0]
+ str r5, [sp, #0x4]
+ ldrh r3, [r3, #0x10]
+ add r0, sp, #0x8
+ bl FUN_02018F4C
+ add sp, #0x10
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_0201974C
+FUN_0201974C: ; 0x0201974C
+ push {r4-r7, lr}
+ sub sp, #0x1fc
+ sub sp, #0x118
+ add r5, r0, #0x0
+ ldr r0, [sp, #0x330]
+ str r1, [sp, #0x0]
+ str r0, [sp, #0x330]
+ add r1, sp, #0x318
+ ldrh r1, [r1, #0x10]
+ ldr r0, [r5, #0xc]
+ str r1, [sp, #0x5c]
+ ldrb r1, [r5, #0x7]
+ str r0, [sp, #0x278]
+ ldrb r0, [r5, #0x8]
+ lsl r1, r1, #0x13
+ lsr r4, r1, #0x10
+ ldr r1, [sp, #0x5c]
+ lsl r0, r0, #0x13
+ sub r1, r4, r1
+ lsr r0, r0, #0x10
+ str r4, [sp, #0x58]
+ str r1, [sp, #0x8]
+ cmp r1, r2
+ blt _0201977E
+ str r2, [sp, #0x8]
+_0201977E:
+ add r1, sp, #0x318
+ ldrh r1, [r1, #0x14]
+ sub r0, r0, r1
+ str r1, [sp, #0x48]
+ str r0, [sp, #0x4]
+ cmp r0, r3
+ blt _0201978E
+ str r3, [sp, #0x4]
+_0201978E:
+ ldr r0, [sp, #0x8]
+ mov r4, #0x0
+ cmp r0, #0x8
+ ble _0201979E
+ mov r0, #0x1
+ orr r0, r4
+ lsl r0, r0, #0x18
+ lsr r4, r0, #0x18
+_0201979E:
+ ldr r0, [sp, #0x4]
+ cmp r0, #0x8
+ ble _020197AC
+ mov r0, #0x2
+ orr r0, r4
+ lsl r0, r0, #0x18
+ lsr r4, r0, #0x18
+_020197AC:
+ ldrh r0, [r5, #0xa]
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x1f
+ beq _020197B8
+ bl FUN_0201A12C
+_020197B8:
+ cmp r4, #0x3
+ bls _020197C0
+ bl FUN_0201A8BC
+_020197C0:
+ add r0, r4, r4
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_020197CC: ; jump table (using 16-bit offset)
+ .short _020197D4 - _020197CC - 2; case 0
+ .short _020198D6 - _020197CC - 2; case 1
+ .short _02019AE6 - _020197CC - 2; case 2
+ .short _02019D06 - _020197CC - 2; case 3
+_020197D4:
+ ldr r0, [sp, #0x330]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x70]
+ mov r0, #0x0
+ str r0, [sp, #0x274]
+ ldr r0, [sp, #0x4]
+ cmp r0, #0x0
+ bgt _020197EA
+ bl FUN_0201A8BC
+_020197EA:
+ ldr r0, [sp, #0x58]
+ mov r1, #0x7
+ and r1, r0
+ add r0, r0, r1
+ asr r0, r0, #0x3
+ str r0, [sp, #0x6c]
+_020197F6:
+ ldr r0, [sp, #0x0]
+ ldr r1, [sp, #0x70]
+ ldr r0, [r0, #0x0]
+ ldr r2, [sp, #0x5c]
+ str r0, [sp, #0x26c]
+ ldr r0, [sp, #0x274]
+ asr r1, r0
+ mov r0, #0x1
+ and r0, r1
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x270]
+ ldr r0, [sp, #0x8]
+ mov r1, #0x0
+ cmp r0, #0x0
+ ble _020198AA
+ ble _020198AA
+ add r0, r2, #0x0
+ lsl r3, r0, #0x2
+ ldr r0, [sp, #0x48]
+ ldr r6, [sp, #0x6c]
+ lsl r5, r0, #0x2
+ ldr r0, _02019B68 ; =0x00003FE0
+ add r7, r5, #0x0
+ and r0, r5
+ mul r6, r0
+ mov r0, #0x1c
+ and r7, r0
+ ldr r0, [sp, #0x48]
+ str r6, [sp, #0x68]
+ add r0, r0, #0x1
+ lsl r6, r0, #0x2
+ ldr r0, _02019B68 ; =0x00003FE0
+ ldr r5, [sp, #0x6c]
+ and r0, r6
+ mul r5, r0
+ mov r0, #0x1c
+ and r0, r6
+ add r4, r1, #0x0
+ str r5, [sp, #0x64]
+ str r0, [sp, #0x60]
+_02019848:
+ asr r5, r2, #0x1
+ mov r0, #0x3
+ and r5, r0
+ ldr r0, [sp, #0x278]
+ add r0, r0, r5
+ ldr r5, _02019B68 ; =0x00003FE0
+ and r5, r3
+ add r5, r0, r5
+ ldr r0, [sp, #0x68]
+ str r5, [sp, #0x27c]
+ add r0, r5, r0
+ ldr r5, [sp, #0x26c]
+ add r6, r5, #0x0
+ lsr r6, r4
+ mov r5, #0xf
+ and r5, r6
+ lsl r5, r5, #0x18
+ lsr r5, r5, #0x18
+ beq _0201989C
+ lsl r6, r2, #0x1f
+ lsr r6, r6, #0x1d
+ lsl r5, r6
+ str r5, [sp, #0x280]
+ ldrb r5, [r0, r7]
+ str r5, [sp, #0x284]
+ mov r5, #0xf0
+ asr r5, r6
+ ldr r6, [sp, #0x284]
+ and r6, r5
+ ldr r5, [sp, #0x280]
+ orr r5, r6
+ lsl r5, r5, #0x18
+ lsr r5, r5, #0x18
+ strb r5, [r0, r7]
+ ldr r0, [sp, #0x270]
+ cmp r0, #0x0
+ beq _0201989C
+ ldr r6, [sp, #0x27c]
+ ldr r0, [sp, #0x64]
+ add r6, r6, r0
+ ldr r0, [sp, #0x60]
+ strb r5, [r0, r6]
+_0201989C:
+ ldr r0, [sp, #0x8]
+ add r1, r1, #0x1
+ add r4, r4, #0x4
+ add r3, r3, #0x4
+ add r2, r2, #0x1
+ cmp r1, r0
+ blt _02019848
+_020198AA:
+ ldr r0, [sp, #0x270]
+ cmp r0, #0x0
+ beq _020198B8
+ ldr r0, [sp, #0x48]
+ add r0, r0, #0x2
+ str r0, [sp, #0x48]
+ b _020198BE
+_020198B8:
+ ldr r0, [sp, #0x48]
+ add r0, r0, #0x1
+ str r0, [sp, #0x48]
+_020198BE:
+ ldr r0, [sp, #0x0]
+ add r0, r0, #0x4
+ str r0, [sp, #0x0]
+ ldr r0, [sp, #0x274]
+ add r1, r0, #0x1
+ ldr r0, [sp, #0x4]
+ str r1, [sp, #0x274]
+ cmp r1, r0
+ blt _020197F6
+ add sp, #0x1fc
+ add sp, #0x118
+ pop {r4-r7, pc}
+_020198D6:
+ ldr r0, [sp, #0x0]
+ str r0, [sp, #0x25c]
+ ldr r0, [sp, #0x48]
+ str r0, [sp, #0x264]
+ ldr r0, [sp, #0x330]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x54]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x84]
+ mov r0, #0x0
+ str r0, [sp, #0x268]
+ ldr r0, [sp, #0x4]
+ cmp r0, #0x0
+ ble _020199D2
+ ldr r0, [sp, #0x58]
+ mov r1, #0x7
+ and r1, r0
+ add r0, r0, r1
+ asr r0, r0, #0x3
+ str r0, [sp, #0x80]
+_02019902:
+ ldr r0, [sp, #0x25c]
+ ldr r1, [sp, #0x84]
+ ldr r0, [r0, #0x0]
+ ldr r2, [sp, #0x5c]
+ str r0, [sp, #0x258]
+ ldr r0, [sp, #0x268]
+ ldr r6, [sp, #0x80]
+ asr r1, r0
+ mov r0, #0x1
+ and r0, r1
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x260]
+ add r0, r2, #0x0
+ lsl r3, r0, #0x2
+ ldr r0, [sp, #0x264]
+ mov r1, #0x0
+ lsl r5, r0, #0x2
+ ldr r0, _02019B68 ; =0x00003FE0
+ add r7, r5, #0x0
+ and r0, r5
+ mul r6, r0
+ mov r0, #0x1c
+ and r7, r0
+ ldr r0, [sp, #0x264]
+ str r6, [sp, #0x7c]
+ add r0, r0, #0x1
+ lsl r6, r0, #0x2
+ ldr r0, _02019B68 ; =0x00003FE0
+ ldr r5, [sp, #0x80]
+ and r0, r6
+ mul r5, r0
+ mov r0, #0x1c
+ and r0, r6
+ add r4, r1, #0x0
+ str r5, [sp, #0x78]
+ str r0, [sp, #0x74]
+_0201994C:
+ asr r5, r2, #0x1
+ mov r0, #0x3
+ and r5, r0
+ ldr r0, [sp, #0x278]
+ add r0, r0, r5
+ ldr r5, _02019B68 ; =0x00003FE0
+ and r5, r3
+ add r5, r0, r5
+ ldr r0, [sp, #0x7c]
+ str r5, [sp, #0x288]
+ add r0, r5, r0
+ ldr r5, [sp, #0x258]
+ add r6, r5, #0x0
+ lsr r6, r4
+ mov r5, #0xf
+ and r5, r6
+ lsl r5, r5, #0x18
+ lsr r5, r5, #0x18
+ beq _020199A0
+ lsl r6, r2, #0x1f
+ lsr r6, r6, #0x1d
+ lsl r5, r6
+ str r5, [sp, #0x28c]
+ ldrb r5, [r0, r7]
+ str r5, [sp, #0x290]
+ mov r5, #0xf0
+ asr r5, r6
+ ldr r6, [sp, #0x290]
+ and r6, r5
+ ldr r5, [sp, #0x28c]
+ orr r5, r6
+ lsl r5, r5, #0x18
+ lsr r5, r5, #0x18
+ strb r5, [r0, r7]
+ ldr r0, [sp, #0x260]
+ cmp r0, #0x0
+ beq _020199A0
+ ldr r6, [sp, #0x288]
+ ldr r0, [sp, #0x78]
+ add r6, r6, r0
+ ldr r0, [sp, #0x74]
+ strb r5, [r0, r6]
+_020199A0:
+ add r1, r1, #0x1
+ add r4, r4, #0x4
+ add r3, r3, #0x4
+ add r2, r2, #0x1
+ cmp r1, #0x8
+ blt _0201994C
+ ldr r0, [sp, #0x260]
+ cmp r0, #0x0
+ beq _020199BA
+ ldr r0, [sp, #0x264]
+ add r0, r0, #0x2
+ str r0, [sp, #0x264]
+ b _020199C0
+_020199BA:
+ ldr r0, [sp, #0x264]
+ add r0, r0, #0x1
+ str r0, [sp, #0x264]
+_020199C0:
+ ldr r0, [sp, #0x25c]
+ add r0, r0, #0x4
+ str r0, [sp, #0x25c]
+ ldr r0, [sp, #0x268]
+ add r1, r0, #0x1
+ ldr r0, [sp, #0x4]
+ str r1, [sp, #0x268]
+ cmp r1, r0
+ blt _02019902
+_020199D2:
+ ldr r0, [sp, #0x0]
+ add r0, #0x20
+ str r0, [sp, #0x0]
+ ldr r0, [sp, #0x54]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x98]
+ mov r0, #0x0
+ str r0, [sp, #0x254]
+ ldr r0, [sp, #0x4]
+ cmp r0, #0x0
+ bgt _020199EE
+ bl FUN_0201A8BC
+_020199EE:
+ ldr r0, [sp, #0x5c]
+ mov r1, #0x7
+ add r0, #0x8
+ str r0, [sp, #0x5c]
+ ldr r0, [sp, #0x58]
+ and r1, r0
+ add r0, r0, r1
+ asr r0, r0, #0x3
+ str r0, [sp, #0x94]
+_02019A00:
+ ldr r0, [sp, #0x0]
+ ldr r1, [sp, #0x98]
+ ldr r0, [r0, #0x0]
+ ldr r2, [sp, #0x5c]
+ str r0, [sp, #0x24c]
+ ldr r0, [sp, #0x254]
+ asr r1, r0
+ mov r0, #0x1
+ and r0, r1
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x250]
+ ldr r0, [sp, #0x8]
+ mov r1, #0x0
+ str r0, [sp, #0x294]
+ sub r0, #0x8
+ str r0, [sp, #0x294]
+ cmp r0, #0x0
+ ble _02019ABA
+ ble _02019ABA
+ add r0, r2, #0x0
+ lsl r3, r0, #0x2
+ ldr r0, [sp, #0x48]
+ ldr r6, [sp, #0x94]
+ lsl r5, r0, #0x2
+ ldr r0, _02019B68 ; =0x00003FE0
+ add r7, r5, #0x0
+ and r0, r5
+ mul r6, r0
+ mov r0, #0x1c
+ and r7, r0
+ ldr r0, [sp, #0x48]
+ str r6, [sp, #0x90]
+ add r0, r0, #0x1
+ lsl r6, r0, #0x2
+ ldr r0, _02019B68 ; =0x00003FE0
+ ldr r5, [sp, #0x94]
+ and r0, r6
+ mul r5, r0
+ mov r0, #0x1c
+ and r0, r6
+ add r4, r1, #0x0
+ str r5, [sp, #0x8c]
+ str r0, [sp, #0x88]
+_02019A58:
+ asr r5, r2, #0x1
+ mov r0, #0x3
+ and r5, r0
+ ldr r0, [sp, #0x278]
+ add r0, r0, r5
+ ldr r5, _02019B68 ; =0x00003FE0
+ and r5, r3
+ add r5, r0, r5
+ ldr r0, [sp, #0x90]
+ str r5, [sp, #0x298]
+ add r0, r5, r0
+ ldr r5, [sp, #0x24c]
+ add r6, r5, #0x0
+ lsr r6, r4
+ mov r5, #0xf
+ and r5, r6
+ lsl r5, r5, #0x18
+ lsr r5, r5, #0x18
+ beq _02019AAC
+ lsl r6, r2, #0x1f
+ lsr r6, r6, #0x1d
+ lsl r5, r6
+ str r5, [sp, #0x29c]
+ ldrb r5, [r0, r7]
+ str r5, [sp, #0x2a0]
+ mov r5, #0xf0
+ asr r5, r6
+ ldr r6, [sp, #0x2a0]
+ and r6, r5
+ ldr r5, [sp, #0x29c]
+ orr r5, r6
+ lsl r5, r5, #0x18
+ lsr r5, r5, #0x18
+ strb r5, [r0, r7]
+ ldr r0, [sp, #0x250]
+ cmp r0, #0x0
+ beq _02019AAC
+ ldr r6, [sp, #0x298]
+ ldr r0, [sp, #0x8c]
+ add r6, r6, r0
+ ldr r0, [sp, #0x88]
+ strb r5, [r0, r6]
+_02019AAC:
+ ldr r0, [sp, #0x294]
+ add r1, r1, #0x1
+ add r4, r4, #0x4
+ add r3, r3, #0x4
+ add r2, r2, #0x1
+ cmp r1, r0
+ blt _02019A58
+_02019ABA:
+ ldr r0, [sp, #0x250]
+ cmp r0, #0x0
+ beq _02019AC8
+ ldr r0, [sp, #0x48]
+ add r0, r0, #0x2
+ str r0, [sp, #0x48]
+ b _02019ACE
+_02019AC8:
+ ldr r0, [sp, #0x48]
+ add r0, r0, #0x1
+ str r0, [sp, #0x48]
+_02019ACE:
+ ldr r0, [sp, #0x0]
+ add r0, r0, #0x4
+ str r0, [sp, #0x0]
+ ldr r0, [sp, #0x254]
+ add r1, r0, #0x1
+ ldr r0, [sp, #0x4]
+ str r1, [sp, #0x254]
+ cmp r1, r0
+ blt _02019A00
+ add sp, #0x1fc
+ add sp, #0x118
+ pop {r4-r7, pc}
+_02019AE6:
+ ldr r0, [sp, #0x0]
+ mov r1, #0x7
+ str r0, [sp, #0x23c]
+ ldr r0, [sp, #0x48]
+ str r0, [sp, #0x244]
+ mov r0, #0x0
+ str r0, [sp, #0x248]
+ ldr r0, [sp, #0x330]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0xa8]
+ ldr r0, [sp, #0x58]
+ and r1, r0
+ add r0, r0, r1
+ asr r0, r0, #0x3
+ str r0, [sp, #0x40]
+_02019B06:
+ ldr r0, [sp, #0x23c]
+ ldr r1, [sp, #0xa8]
+ ldr r0, [r0, #0x0]
+ ldr r2, [sp, #0x5c]
+ str r0, [sp, #0x238]
+ ldr r0, [sp, #0x248]
+ asr r1, r0
+ mov r0, #0x1
+ and r0, r1
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x240]
+ ldr r0, [sp, #0x8]
+ mov r1, #0x0
+ cmp r0, #0x0
+ ble _02019BC2
+ ble _02019BC2
+ add r0, r2, #0x0
+ lsl r3, r0, #0x2
+ ldr r0, [sp, #0x244]
+ ldr r6, [sp, #0x40]
+ lsl r5, r0, #0x2
+ ldr r0, _02019B68 ; =0x00003FE0
+ add r7, r5, #0x0
+ and r0, r5
+ mul r6, r0
+ mov r0, #0x1c
+ and r7, r0
+ ldr r0, [sp, #0x244]
+ str r6, [sp, #0xa4]
+ add r0, r0, #0x1
+ lsl r6, r0, #0x2
+ ldr r0, _02019B68 ; =0x00003FE0
+ ldr r5, [sp, #0x40]
+ and r0, r6
+ mul r5, r0
+ mov r0, #0x1c
+ and r0, r6
+ add r4, r1, #0x0
+ str r5, [sp, #0xa0]
+ str r0, [sp, #0x9c]
+_02019B58:
+ asr r5, r2, #0x1
+ mov r0, #0x3
+ and r5, r0
+ ldr r0, [sp, #0x278]
+ add r0, r0, r5
+ ldr r5, _02019B68 ; =0x00003FE0
+ b _02019B6C
+ nop
+_02019B68: .word 0x00003FE0
+_02019B6C:
+ and r5, r3
+ add r5, r0, r5
+ ldr r0, [sp, #0xa4]
+ str r5, [sp, #0x2a4]
+ add r0, r5, r0
+ ldr r5, [sp, #0x238]
+ add r6, r5, #0x0
+ lsr r6, r4
+ mov r5, #0xf
+ and r5, r6
+ lsl r5, r5, #0x18
+ lsr r5, r5, #0x18
+ beq _02019BB4
+ lsl r6, r2, #0x1f
+ lsr r6, r6, #0x1d
+ lsl r5, r6
+ str r5, [sp, #0x2a8]
+ ldrb r5, [r0, r7]
+ str r5, [sp, #0x2ac]
+ mov r5, #0xf0
+ asr r5, r6
+ ldr r6, [sp, #0x2ac]
+ and r6, r5
+ ldr r5, [sp, #0x2a8]
+ orr r5, r6
+ lsl r5, r5, #0x18
+ lsr r5, r5, #0x18
+ strb r5, [r0, r7]
+ ldr r0, [sp, #0x240]
+ cmp r0, #0x0
+ beq _02019BB4
+ ldr r6, [sp, #0x2a4]
+ ldr r0, [sp, #0xa0]
+ add r6, r6, r0
+ ldr r0, [sp, #0x9c]
+ strb r5, [r0, r6]
+_02019BB4:
+ ldr r0, [sp, #0x8]
+ add r1, r1, #0x1
+ add r4, r4, #0x4
+ add r3, r3, #0x4
+ add r2, r2, #0x1
+ cmp r1, r0
+ blt _02019B58
+_02019BC2:
+ ldr r0, [sp, #0x240]
+ cmp r0, #0x0
+ beq _02019BD0
+ ldr r0, [sp, #0x244]
+ add r0, r0, #0x2
+ str r0, [sp, #0x244]
+ b _02019BD6
+_02019BD0:
+ ldr r0, [sp, #0x244]
+ add r0, r0, #0x1
+ str r0, [sp, #0x244]
+_02019BD6:
+ ldr r0, [sp, #0x23c]
+ add r0, r0, #0x4
+ str r0, [sp, #0x23c]
+ ldr r0, [sp, #0x248]
+ add r0, r0, #0x1
+ str r0, [sp, #0x248]
+ cmp r0, #0x8
+ blt _02019B06
+ ldr r0, [sp, #0x0]
+ mov r2, #0x0
+ add r0, #0x40
+ str r0, [sp, #0x0]
+ ldr r0, [sp, #0x48]
+ mov r1, #0x1
+ add r0, #0x8
+ str r0, [sp, #0x48]
+_02019BF6:
+ ldr r0, [sp, #0x330]
+ asr r0, r2
+ tst r0, r1
+ beq _02019C04
+ ldr r0, [sp, #0x48]
+ add r0, r0, #0x1
+ str r0, [sp, #0x48]
+_02019C04:
+ add r2, r2, #0x1
+ cmp r2, #0x8
+ blt _02019BF6
+ ldr r0, [sp, #0x330]
+ asr r0, r0, #0x8
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0xb8]
+ mov r0, #0x0
+ str r0, [sp, #0x20]
+ ldr r0, [sp, #0x4]
+ sub r0, #0x8
+ cmp r0, #0x0
+ bgt _02019C24
+ bl FUN_0201A8BC
+_02019C24:
+ ldr r0, [sp, #0x0]
+ ldr r1, [sp, #0xb8]
+ ldr r0, [r0, #0x0]
+ ldr r2, [sp, #0x5c]
+ str r0, [sp, #0x230]
+ ldr r0, [sp, #0x20]
+ asr r1, r0
+ mov r0, #0x1
+ and r0, r1
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x234]
+ ldr r0, [sp, #0x8]
+ mov r1, #0x0
+ cmp r0, #0x0
+ ble _02019CD8
+ ble _02019CD8
+ add r0, r2, #0x0
+ lsl r3, r0, #0x2
+ ldr r0, [sp, #0x48]
+ ldr r6, [sp, #0x40]
+ lsl r5, r0, #0x2
+ ldr r0, _02019F88 ; =0x00003FE0
+ add r7, r5, #0x0
+ and r0, r5
+ mul r6, r0
+ mov r0, #0x1c
+ and r7, r0
+ ldr r0, [sp, #0x48]
+ str r6, [sp, #0xb4]
+ add r0, r0, #0x1
+ lsl r6, r0, #0x2
+ ldr r0, _02019F88 ; =0x00003FE0
+ ldr r5, [sp, #0x40]
+ and r0, r6
+ mul r5, r0
+ mov r0, #0x1c
+ and r0, r6
+ add r4, r1, #0x0
+ str r5, [sp, #0xb0]
+ str r0, [sp, #0xac]
+_02019C76:
+ asr r5, r2, #0x1
+ mov r0, #0x3
+ and r5, r0
+ ldr r0, [sp, #0x278]
+ add r0, r0, r5
+ ldr r5, _02019F88 ; =0x00003FE0
+ and r5, r3
+ add r5, r0, r5
+ ldr r0, [sp, #0xb4]
+ str r5, [sp, #0x2b0]
+ add r0, r5, r0
+ ldr r5, [sp, #0x230]
+ add r6, r5, #0x0
+ lsr r6, r4
+ mov r5, #0xf
+ and r5, r6
+ lsl r5, r5, #0x18
+ lsr r5, r5, #0x18
+ beq _02019CCA
+ lsl r6, r2, #0x1f
+ lsr r6, r6, #0x1d
+ lsl r5, r6
+ str r5, [sp, #0x2b4]
+ ldrb r5, [r0, r7]
+ str r5, [sp, #0x2b8]
+ mov r5, #0xf0
+ asr r5, r6
+ ldr r6, [sp, #0x2b8]
+ and r6, r5
+ ldr r5, [sp, #0x2b4]
+ orr r5, r6
+ lsl r5, r5, #0x18
+ lsr r5, r5, #0x18
+ strb r5, [r0, r7]
+ ldr r0, [sp, #0x234]
+ cmp r0, #0x0
+ beq _02019CCA
+ ldr r6, [sp, #0x2b0]
+ ldr r0, [sp, #0xb0]
+ add r6, r6, r0
+ ldr r0, [sp, #0xac]
+ strb r5, [r0, r6]
+_02019CCA:
+ ldr r0, [sp, #0x8]
+ add r1, r1, #0x1
+ add r4, r4, #0x4
+ add r3, r3, #0x4
+ add r2, r2, #0x1
+ cmp r1, r0
+ blt _02019C76
+_02019CD8:
+ ldr r0, [sp, #0x234]
+ cmp r0, #0x0
+ beq _02019CE6
+ ldr r0, [sp, #0x48]
+ add r0, r0, #0x2
+ str r0, [sp, #0x48]
+ b _02019CEC
+_02019CE6:
+ ldr r0, [sp, #0x48]
+ add r0, r0, #0x1
+ str r0, [sp, #0x48]
+_02019CEC:
+ ldr r0, [sp, #0x0]
+ ldr r1, [sp, #0x4]
+ add r0, r0, #0x4
+ str r0, [sp, #0x0]
+ ldr r0, [sp, #0x20]
+ sub r1, #0x8
+ add r0, r0, #0x1
+ str r0, [sp, #0x20]
+ cmp r0, r1
+ blt _02019C24
+ add sp, #0x1fc
+ add sp, #0x118
+ pop {r4-r7, pc}
+_02019D06:
+ ldr r0, [sp, #0x0]
+ str r0, [sp, #0x220]
+ ldr r0, [sp, #0x48]
+ str r0, [sp, #0x228]
+ ldr r0, [sp, #0x330]
+ lsl r0, r0, #0x18
+ lsr r1, r0, #0x18
+ mov r0, #0x0
+ str r0, [sp, #0x22c]
+ lsl r0, r1, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x3c]
+ ldr r0, [sp, #0x58]
+ mov r1, #0x7
+ and r1, r0
+ add r0, r0, r1
+ asr r0, r0, #0x3
+ str r0, [sp, #0x38]
+_02019D2A:
+ ldr r0, [sp, #0x220]
+ ldr r1, [sp, #0x3c]
+ ldr r0, [r0, #0x0]
+ ldr r2, [sp, #0x5c]
+ str r0, [sp, #0x21c]
+ ldr r0, [sp, #0x22c]
+ ldr r6, [sp, #0x38]
+ asr r1, r0
+ mov r0, #0x1
+ and r0, r1
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x224]
+ add r0, r2, #0x0
+ lsl r3, r0, #0x2
+ ldr r0, [sp, #0x228]
+ mov r1, #0x0
+ lsl r5, r0, #0x2
+ ldr r0, _02019F88 ; =0x00003FE0
+ add r7, r5, #0x0
+ and r0, r5
+ mul r6, r0
+ mov r0, #0x1c
+ and r7, r0
+ ldr r0, [sp, #0x228]
+ str r6, [sp, #0xc4]
+ add r0, r0, #0x1
+ lsl r6, r0, #0x2
+ ldr r0, _02019F88 ; =0x00003FE0
+ ldr r5, [sp, #0x38]
+ and r0, r6
+ mul r5, r0
+ mov r0, #0x1c
+ and r0, r6
+ str r3, [sp, #0x34]
+ add r4, r1, #0x0
+ str r5, [sp, #0xc0]
+ str r0, [sp, #0xbc]
+_02019D76:
+ asr r5, r2, #0x1
+ mov r0, #0x3
+ and r5, r0
+ ldr r0, [sp, #0x278]
+ add r0, r0, r5
+ ldr r5, _02019F88 ; =0x00003FE0
+ and r5, r3
+ add r5, r0, r5
+ ldr r0, [sp, #0xc4]
+ str r5, [sp, #0x2bc]
+ add r0, r5, r0
+ ldr r5, [sp, #0x21c]
+ add r6, r5, #0x0
+ lsr r6, r4
+ mov r5, #0xf
+ and r5, r6
+ lsl r5, r5, #0x18
+ lsr r5, r5, #0x18
+ beq _02019DCA
+ lsl r6, r2, #0x1f
+ lsr r6, r6, #0x1d
+ lsl r5, r6
+ str r5, [sp, #0x2c0]
+ ldrb r5, [r0, r7]
+ str r5, [sp, #0x2c4]
+ mov r5, #0xf0
+ asr r5, r6
+ ldr r6, [sp, #0x2c4]
+ and r6, r5
+ ldr r5, [sp, #0x2c0]
+ orr r5, r6
+ lsl r5, r5, #0x18
+ lsr r5, r5, #0x18
+ strb r5, [r0, r7]
+ ldr r0, [sp, #0x224]
+ cmp r0, #0x0
+ beq _02019DCA
+ ldr r6, [sp, #0x2bc]
+ ldr r0, [sp, #0xc0]
+ add r6, r6, r0
+ ldr r0, [sp, #0xbc]
+ strb r5, [r0, r6]
+_02019DCA:
+ add r1, r1, #0x1
+ add r4, r4, #0x4
+ add r3, r3, #0x4
+ add r2, r2, #0x1
+ cmp r1, #0x8
+ blt _02019D76
+ ldr r0, [sp, #0x224]
+ cmp r0, #0x0
+ beq _02019DE4
+ ldr r0, [sp, #0x228]
+ add r0, r0, #0x2
+ str r0, [sp, #0x228]
+ b _02019DEA
+_02019DE4:
+ ldr r0, [sp, #0x228]
+ add r0, r0, #0x1
+ str r0, [sp, #0x228]
+_02019DEA:
+ ldr r0, [sp, #0x220]
+ add r0, r0, #0x4
+ str r0, [sp, #0x220]
+ ldr r0, [sp, #0x22c]
+ add r0, r0, #0x1
+ str r0, [sp, #0x22c]
+ cmp r0, #0x8
+ blt _02019D2A
+ ldr r0, [sp, #0x0]
+ str r0, [sp, #0x20c]
+ add r0, #0x20
+ str r0, [sp, #0x20c]
+ ldr r0, [sp, #0x48]
+ str r0, [sp, #0x214]
+ mov r0, #0x0
+ str r0, [sp, #0x218]
+ ldr r0, [sp, #0x5c]
+ str r0, [sp, #0xd4]
+ add r0, #0x8
+ str r0, [sp, #0xd4]
+_02019E12:
+ ldr r0, [sp, #0x20c]
+ ldr r1, [sp, #0x3c]
+ ldr r0, [r0, #0x0]
+ ldr r2, [sp, #0xd4]
+ str r0, [sp, #0x208]
+ ldr r0, [sp, #0x218]
+ asr r1, r0
+ mov r0, #0x1
+ and r0, r1
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x210]
+ ldr r0, [sp, #0x8]
+ mov r1, #0x0
+ str r0, [sp, #0x2c8]
+ sub r0, #0x8
+ str r0, [sp, #0x2c8]
+ cmp r0, #0x0
+ ble _02019ECC
+ ble _02019ECC
+ add r0, r2, #0x0
+ lsl r3, r0, #0x2
+ ldr r0, [sp, #0x214]
+ ldr r6, [sp, #0x38]
+ lsl r5, r0, #0x2
+ ldr r0, _02019F88 ; =0x00003FE0
+ add r7, r5, #0x0
+ and r0, r5
+ mul r6, r0
+ mov r0, #0x1c
+ and r7, r0
+ ldr r0, [sp, #0x214]
+ str r6, [sp, #0xd0]
+ add r0, r0, #0x1
+ lsl r6, r0, #0x2
+ ldr r0, _02019F88 ; =0x00003FE0
+ ldr r5, [sp, #0x38]
+ and r0, r6
+ mul r5, r0
+ mov r0, #0x1c
+ and r0, r6
+ add r4, r1, #0x0
+ str r5, [sp, #0xcc]
+ str r0, [sp, #0xc8]
+_02019E6A:
+ asr r5, r2, #0x1
+ mov r0, #0x3
+ and r5, r0
+ ldr r0, [sp, #0x278]
+ add r0, r0, r5
+ ldr r5, _02019F88 ; =0x00003FE0
+ and r5, r3
+ add r5, r0, r5
+ ldr r0, [sp, #0xd0]
+ str r5, [sp, #0x2cc]
+ add r0, r5, r0
+ ldr r5, [sp, #0x208]
+ add r6, r5, #0x0
+ lsr r6, r4
+ mov r5, #0xf
+ and r5, r6
+ lsl r5, r5, #0x18
+ lsr r5, r5, #0x18
+ beq _02019EBE
+ lsl r6, r2, #0x1f
+ lsr r6, r6, #0x1d
+ lsl r5, r6
+ str r5, [sp, #0x2d0]
+ ldrb r5, [r0, r7]
+ str r5, [sp, #0x2d4]
+ mov r5, #0xf0
+ asr r5, r6
+ ldr r6, [sp, #0x2d4]
+ and r6, r5
+ ldr r5, [sp, #0x2d0]
+ orr r5, r6
+ lsl r5, r5, #0x18
+ lsr r5, r5, #0x18
+ strb r5, [r0, r7]
+ ldr r0, [sp, #0x210]
+ cmp r0, #0x0
+ beq _02019EBE
+ ldr r6, [sp, #0x2cc]
+ ldr r0, [sp, #0xcc]
+ add r6, r6, r0
+ ldr r0, [sp, #0xc8]
+ strb r5, [r0, r6]
+_02019EBE:
+ ldr r0, [sp, #0x2c8]
+ add r1, r1, #0x1
+ add r4, r4, #0x4
+ add r3, r3, #0x4
+ add r2, r2, #0x1
+ cmp r1, r0
+ blt _02019E6A
+_02019ECC:
+ ldr r0, [sp, #0x210]
+ cmp r0, #0x0
+ beq _02019EDA
+ ldr r0, [sp, #0x214]
+ add r0, r0, #0x2
+ str r0, [sp, #0x214]
+ b _02019EE0
+_02019EDA:
+ ldr r0, [sp, #0x214]
+ add r0, r0, #0x1
+ str r0, [sp, #0x214]
+_02019EE0:
+ ldr r0, [sp, #0x20c]
+ add r0, r0, #0x4
+ str r0, [sp, #0x20c]
+ ldr r0, [sp, #0x218]
+ add r0, r0, #0x1
+ str r0, [sp, #0x218]
+ cmp r0, #0x8
+ blt _02019E12
+ ldr r0, [sp, #0x0]
+ mov r2, #0x0
+ str r0, [sp, #0x1fc]
+ add r0, #0x40
+ str r0, [sp, #0x1fc]
+ ldr r0, [sp, #0x48]
+ mov r1, #0x1
+ add r0, #0x8
+ str r0, [sp, #0x48]
+ str r0, [sp, #0x204]
+_02019F04:
+ ldr r0, [sp, #0x330]
+ asr r0, r2
+ tst r0, r1
+ beq _02019F12
+ ldr r0, [sp, #0x204]
+ add r0, r0, #0x1
+ str r0, [sp, #0x204]
+_02019F12:
+ add r2, r2, #0x1
+ cmp r2, #0x8
+ blt _02019F04
+ ldr r0, [sp, #0x330]
+ asr r0, r0, #0x8
+ str r0, [sp, #0x50]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0xe4]
+ mov r0, #0x0
+ str r0, [sp, #0x1c]
+ ldr r0, [sp, #0x4]
+ sub r0, #0x8
+ cmp r0, #0x0
+ ble _0201A008
+_02019F30:
+ ldr r0, [sp, #0x1fc]
+ ldr r1, [sp, #0xe4]
+ ldr r0, [r0, #0x0]
+ ldr r6, [sp, #0x38]
+ str r0, [sp, #0x1f8]
+ ldr r0, [sp, #0x1c]
+ ldr r2, [sp, #0x5c]
+ asr r1, r0
+ mov r0, #0x1
+ and r0, r1
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x200]
+ ldr r0, [sp, #0x204]
+ mov r1, #0x0
+ lsl r5, r0, #0x2
+ ldr r0, _02019F88 ; =0x00003FE0
+ add r7, r5, #0x0
+ and r0, r5
+ mul r6, r0
+ mov r0, #0x1c
+ and r7, r0
+ ldr r0, [sp, #0x204]
+ str r6, [sp, #0xe0]
+ add r0, r0, #0x1
+ lsl r6, r0, #0x2
+ ldr r0, _02019F88 ; =0x00003FE0
+ ldr r5, [sp, #0x38]
+ and r0, r6
+ mul r5, r0
+ mov r0, #0x1c
+ and r0, r6
+ ldr r3, [sp, #0x34]
+ add r4, r1, #0x0
+ str r5, [sp, #0xdc]
+ str r0, [sp, #0xd8]
+_02019F78:
+ asr r5, r2, #0x1
+ mov r0, #0x3
+ and r5, r0
+ ldr r0, [sp, #0x278]
+ add r0, r0, r5
+ ldr r5, _02019F88 ; =0x00003FE0
+ b _02019F8C
+ nop
+_02019F88: .word 0x00003FE0
+_02019F8C:
+ and r5, r3
+ add r5, r0, r5
+ ldr r0, [sp, #0xe0]
+ str r5, [sp, #0x2d8]
+ add r0, r5, r0
+ ldr r5, [sp, #0x1f8]
+ add r6, r5, #0x0
+ lsr r6, r4
+ mov r5, #0xf
+ and r5, r6
+ lsl r5, r5, #0x18
+ lsr r5, r5, #0x18
+ beq _02019FD4
+ lsl r6, r2, #0x1f
+ lsr r6, r6, #0x1d
+ lsl r5, r6
+ str r5, [sp, #0x2dc]
+ ldrb r5, [r0, r7]
+ str r5, [sp, #0x2e0]
+ mov r5, #0xf0
+ asr r5, r6
+ ldr r6, [sp, #0x2e0]
+ and r6, r5
+ ldr r5, [sp, #0x2dc]
+ orr r5, r6
+ lsl r5, r5, #0x18
+ lsr r5, r5, #0x18
+ strb r5, [r0, r7]
+ ldr r0, [sp, #0x200]
+ cmp r0, #0x0
+ beq _02019FD4
+ ldr r6, [sp, #0x2d8]
+ ldr r0, [sp, #0xdc]
+ add r6, r6, r0
+ ldr r0, [sp, #0xd8]
+ strb r5, [r0, r6]
+_02019FD4:
+ add r1, r1, #0x1
+ add r4, r4, #0x4
+ add r3, r3, #0x4
+ add r2, r2, #0x1
+ cmp r1, #0x8
+ blt _02019F78
+ ldr r0, [sp, #0x200]
+ cmp r0, #0x0
+ beq _02019FEE
+ ldr r0, [sp, #0x204]
+ add r0, r0, #0x2
+ str r0, [sp, #0x204]
+ b _02019FF4
+_02019FEE:
+ ldr r0, [sp, #0x204]
+ add r0, r0, #0x1
+ str r0, [sp, #0x204]
+_02019FF4:
+ ldr r0, [sp, #0x1fc]
+ ldr r1, [sp, #0x4]
+ add r0, r0, #0x4
+ str r0, [sp, #0x1fc]
+ ldr r0, [sp, #0x1c]
+ sub r1, #0x8
+ add r0, r0, #0x1
+ str r0, [sp, #0x1c]
+ cmp r0, r1
+ blt _02019F30
+_0201A008:
+ ldr r0, [sp, #0x0]
+ mov r2, #0x0
+ add r0, #0x60
+ str r0, [sp, #0x0]
+ mov r1, #0x1
+_0201A012:
+ ldr r0, [sp, #0x330]
+ asr r0, r2
+ tst r0, r1
+ beq _0201A020
+ ldr r0, [sp, #0x48]
+ add r0, r0, #0x1
+ str r0, [sp, #0x48]
+_0201A020:
+ add r2, r2, #0x1
+ cmp r2, #0x8
+ blt _0201A012
+ ldr r0, [sp, #0x50]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0xf4]
+ mov r0, #0x0
+ str r0, [sp, #0x18]
+ ldr r0, [sp, #0x4]
+ sub r0, #0x8
+ cmp r0, #0x0
+ bgt _0201A03E
+ bl FUN_0201A8BC
+_0201A03E:
+ ldr r0, [sp, #0x5c]
+ add r0, #0x8
+ str r0, [sp, #0x5c]
+_0201A044:
+ ldr r0, [sp, #0x0]
+ ldr r1, [sp, #0xf4]
+ ldr r0, [r0, #0x0]
+ ldr r2, [sp, #0x5c]
+ str r0, [sp, #0x1f0]
+ ldr r0, [sp, #0x18]
+ asr r1, r0
+ mov r0, #0x1
+ and r0, r1
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x1f4]
+ ldr r0, [sp, #0x8]
+ mov r1, #0x0
+ str r0, [sp, #0x2e4]
+ sub r0, #0x8
+ str r0, [sp, #0x2e4]
+ cmp r0, #0x0
+ ble _0201A0FE
+ ble _0201A0FE
+ add r0, r2, #0x0
+ lsl r3, r0, #0x2
+ ldr r0, [sp, #0x48]
+ ldr r6, [sp, #0x38]
+ lsl r5, r0, #0x2
+ ldr r0, _0201A3A8 ; =0x00003FE0
+ add r7, r5, #0x0
+ and r0, r5
+ mul r6, r0
+ mov r0, #0x1c
+ and r7, r0
+ ldr r0, [sp, #0x48]
+ str r6, [sp, #0xf0]
+ add r0, r0, #0x1
+ lsl r6, r0, #0x2
+ ldr r0, _0201A3A8 ; =0x00003FE0
+ ldr r5, [sp, #0x38]
+ and r0, r6
+ mul r5, r0
+ mov r0, #0x1c
+ and r0, r6
+ add r4, r1, #0x0
+ str r5, [sp, #0xec]
+ str r0, [sp, #0xe8]
+_0201A09C:
+ asr r5, r2, #0x1
+ mov r0, #0x3
+ and r5, r0
+ ldr r0, [sp, #0x278]
+ add r0, r0, r5
+ ldr r5, _0201A3A8 ; =0x00003FE0
+ and r5, r3
+ add r5, r0, r5
+ ldr r0, [sp, #0xf0]
+ str r5, [sp, #0x2e8]
+ add r0, r5, r0
+ ldr r5, [sp, #0x1f0]
+ add r6, r5, #0x0
+ lsr r6, r4
+ mov r5, #0xf
+ and r5, r6
+ lsl r5, r5, #0x18
+ lsr r5, r5, #0x18
+ beq _0201A0F0
+ lsl r6, r2, #0x1f
+ lsr r6, r6, #0x1d
+ lsl r5, r6
+ str r5, [sp, #0x2ec]
+ ldrb r5, [r0, r7]
+ mov r12, r5
+ mov r5, #0xf0
+ asr r5, r6
+ mov r6, r12
+ and r6, r5
+ ldr r5, [sp, #0x2ec]
+ orr r5, r6
+ lsl r5, r5, #0x18
+ lsr r5, r5, #0x18
+ strb r5, [r0, r7]
+ ldr r0, [sp, #0x1f4]
+ cmp r0, #0x0
+ beq _0201A0F0
+ ldr r6, [sp, #0x2e8]
+ ldr r0, [sp, #0xec]
+ add r6, r6, r0
+ ldr r0, [sp, #0xe8]
+ strb r5, [r0, r6]
+_0201A0F0:
+ ldr r0, [sp, #0x2e4]
+ add r1, r1, #0x1
+ add r4, r4, #0x4
+ add r3, r3, #0x4
+ add r2, r2, #0x1
+ cmp r1, r0
+ blt _0201A09C
+_0201A0FE:
+ ldr r0, [sp, #0x1f4]
+ cmp r0, #0x0
+ beq _0201A10C
+ ldr r0, [sp, #0x48]
+ add r0, r0, #0x2
+ str r0, [sp, #0x48]
+ b _0201A112
+_0201A10C:
+ ldr r0, [sp, #0x48]
+ add r0, r0, #0x1
+ str r0, [sp, #0x48]
+_0201A112:
+ ldr r0, [sp, #0x0]
+ ldr r1, [sp, #0x4]
+ add r0, r0, #0x4
+ str r0, [sp, #0x0]
+ ldr r0, [sp, #0x18]
+ sub r1, #0x8
+ add r0, r0, #0x1
+ str r0, [sp, #0x18]
+ cmp r0, r1
+ blt _0201A044
+ add sp, #0x1fc
+ add sp, #0x118
+ pop {r4-r7, pc}
+
+ thumb_func_start FUN_0201A12C
+FUN_0201A12C: ; 0x0201A12C
+ lsl r1, r2, #0x2
+ mul r1, r3
+ ldr r3, [r5, #0x0]
+ ldrb r2, [r5, #0x9]
+ ldr r0, [sp, #0x0]
+ ldr r3, [r3, #0x0]
+ lsl r1, r1, #0x3
+ bl FUN_02018848
+ str r0, [sp, #0x1ec]
+ cmp r4, #0x3
+ bhi _0201A21E
+ add r0, r4, r4
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0201A150: ; jump table (using 16-bit offset)
+ .short _0201A158 - _0201A150 - 2; case 0
+ .short _0201A220 - _0201A150 - 2; case 1
+ .short _0201A3CA - _0201A150 - 2; case 2
+ .short _0201A56E - _0201A150 - 2; case 3
+_0201A158:
+ ldr r0, [sp, #0x330]
+ ldr r7, [sp, #0x1ec]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x10c]
+ mov r0, #0x0
+ str r0, [sp, #0x1e8]
+ ldr r0, [sp, #0x4]
+ cmp r0, #0x0
+ ble _0201A21E
+ ldr r0, [sp, #0x58]
+ mov r1, #0x7
+ and r1, r0
+ add r0, r0, r1
+ asr r0, r0, #0x3
+ str r0, [sp, #0x108]
+_0201A178:
+ ldr r1, [sp, #0x10c]
+ ldr r0, [sp, #0x1e8]
+ mov r4, #0x0
+ asr r1, r0
+ mov r0, #0x1
+ and r0, r1
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x310]
+ ldr r0, [sp, #0x8]
+ ldr r5, [sp, #0x5c]
+ cmp r0, #0x0
+ ble _0201A1FC
+ ble _0201A1FC
+ add r0, r5, #0x0
+ lsl r6, r0, #0x3
+ ldr r0, [sp, #0x48]
+ ldr r2, [sp, #0x108]
+ lsl r1, r0, #0x3
+ ldr r0, _0201A3AC ; =0x00007FC0
+ mov r3, #0x38
+ and r0, r1
+ mul r2, r0
+ add r0, r1, #0x0
+ and r0, r3
+ str r0, [sp, #0x100]
+ ldr r0, [sp, #0x48]
+ str r2, [sp, #0x104]
+ add r0, r0, #0x1
+ lsl r1, r0, #0x3
+ ldr r0, _0201A3AC ; =0x00007FC0
+ ldr r2, [sp, #0x108]
+ and r0, r1
+ mul r2, r0
+ add r0, r1, #0x0
+ and r0, r3
+ str r2, [sp, #0xfc]
+ str r0, [sp, #0xf8]
+_0201A1C4:
+ mov r0, #0x7
+ add r1, r5, #0x0
+ and r1, r0
+ ldr r0, [sp, #0x278]
+ add r1, r0, r1
+ ldr r0, _0201A3AC ; =0x00007FC0
+ and r0, r6
+ add r3, r1, r0
+ ldr r0, [sp, #0x104]
+ ldrb r1, [r7, r4]
+ add r2, r3, r0
+ cmp r1, #0x0
+ beq _0201A1F0
+ ldr r0, [sp, #0x100]
+ strb r1, [r2, r0]
+ ldr r0, [sp, #0x310]
+ cmp r0, #0x0
+ beq _0201A1F0
+ ldr r0, [sp, #0xfc]
+ add r2, r3, r0
+ ldr r0, [sp, #0xf8]
+ strb r1, [r0, r2]
+_0201A1F0:
+ ldr r0, [sp, #0x8]
+ add r4, r4, #0x1
+ add r6, #0x8
+ add r5, r5, #0x1
+ cmp r4, r0
+ blt _0201A1C4
+_0201A1FC:
+ ldr r0, [sp, #0x310]
+ cmp r0, #0x0
+ beq _0201A20A
+ ldr r0, [sp, #0x48]
+ add r0, r0, #0x2
+ str r0, [sp, #0x48]
+ b _0201A210
+_0201A20A:
+ ldr r0, [sp, #0x48]
+ add r0, r0, #0x1
+ str r0, [sp, #0x48]
+_0201A210:
+ ldr r0, [sp, #0x1e8]
+ add r7, #0x8
+ add r1, r0, #0x1
+ ldr r0, [sp, #0x4]
+ str r1, [sp, #0x1e8]
+ cmp r1, r0
+ blt _0201A178
+_0201A21E:
+ b _0201A8B6
+_0201A220:
+ ldr r0, [sp, #0x48]
+ ldr r7, [sp, #0x1ec]
+ str r0, [sp, #0x1e0]
+ ldr r0, [sp, #0x330]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x4c]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x124]
+ mov r0, #0x0
+ str r0, [sp, #0x1e4]
+ ldr r0, [sp, #0x4]
+ cmp r0, #0x0
+ ble _0201A2E6
+ ldr r0, [sp, #0x58]
+ mov r1, #0x7
+ and r1, r0
+ add r0, r0, r1
+ asr r0, r0, #0x3
+ str r0, [sp, #0x120]
+_0201A24A:
+ ldr r1, [sp, #0x124]
+ ldr r0, [sp, #0x1e4]
+ ldr r5, [sp, #0x5c]
+ asr r1, r0
+ mov r0, #0x1
+ and r0, r1
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x30c]
+ add r0, r5, #0x0
+ lsl r6, r0, #0x3
+ ldr r0, [sp, #0x1e0]
+ ldr r2, [sp, #0x120]
+ lsl r1, r0, #0x3
+ ldr r0, _0201A3AC ; =0x00007FC0
+ mov r3, #0x38
+ and r0, r1
+ mul r2, r0
+ add r0, r1, #0x0
+ and r0, r3
+ str r0, [sp, #0x118]
+ ldr r0, [sp, #0x1e0]
+ str r2, [sp, #0x11c]
+ add r0, r0, #0x1
+ lsl r1, r0, #0x3
+ ldr r0, _0201A3AC ; =0x00007FC0
+ ldr r2, [sp, #0x120]
+ and r0, r1
+ mul r2, r0
+ add r0, r1, #0x0
+ and r0, r3
+ mov r4, #0x0
+ str r2, [sp, #0x114]
+ str r0, [sp, #0x110]
+_0201A28E:
+ mov r0, #0x7
+ add r1, r5, #0x0
+ and r1, r0
+ ldr r0, [sp, #0x278]
+ add r1, r0, r1
+ ldr r0, _0201A3AC ; =0x00007FC0
+ and r0, r6
+ add r3, r1, r0
+ ldr r0, [sp, #0x11c]
+ ldrb r1, [r7, r4]
+ add r2, r3, r0
+ cmp r1, #0x0
+ beq _0201A2BA
+ ldr r0, [sp, #0x118]
+ strb r1, [r2, r0]
+ ldr r0, [sp, #0x30c]
+ cmp r0, #0x0
+ beq _0201A2BA
+ ldr r0, [sp, #0x114]
+ add r2, r3, r0
+ ldr r0, [sp, #0x110]
+ strb r1, [r0, r2]
+_0201A2BA:
+ add r4, r4, #0x1
+ add r6, #0x8
+ add r5, r5, #0x1
+ cmp r4, #0x8
+ blt _0201A28E
+ ldr r0, [sp, #0x30c]
+ cmp r0, #0x0
+ beq _0201A2D2
+ ldr r0, [sp, #0x1e0]
+ add r0, r0, #0x2
+ str r0, [sp, #0x1e0]
+ b _0201A2D8
+_0201A2D2:
+ ldr r0, [sp, #0x1e0]
+ add r0, r0, #0x1
+ str r0, [sp, #0x1e0]
+_0201A2D8:
+ ldr r0, [sp, #0x1e4]
+ add r7, #0x8
+ add r1, r0, #0x1
+ ldr r0, [sp, #0x4]
+ str r1, [sp, #0x1e4]
+ cmp r1, r0
+ blt _0201A24A
+_0201A2E6:
+ ldr r0, [sp, #0x1ec]
+ str r0, [sp, #0x308]
+ add r0, #0x40
+ str r0, [sp, #0x308]
+ ldr r0, [sp, #0x4c]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x13c]
+ mov r0, #0x0
+ str r0, [sp, #0x1dc]
+ ldr r0, [sp, #0x4]
+ cmp r0, #0x0
+ ble _0201A3C8
+ ldr r0, [sp, #0x5c]
+ mov r1, #0x7
+ add r0, #0x8
+ str r0, [sp, #0x5c]
+ ldr r0, [sp, #0x58]
+ and r1, r0
+ add r0, r0, r1
+ asr r0, r0, #0x3
+ str r0, [sp, #0x138]
+_0201A312:
+ ldr r1, [sp, #0x13c]
+ ldr r0, [sp, #0x1dc]
+ ldr r7, [sp, #0x8]
+ asr r1, r0
+ mov r0, #0x1
+ and r0, r1
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ sub r7, #0x8
+ mov r4, #0x0
+ str r0, [sp, #0x1d8]
+ ldr r5, [sp, #0x5c]
+ cmp r7, #0x0
+ ble _0201A398
+ ble _0201A398
+ add r0, r5, #0x0
+ lsl r6, r0, #0x3
+ ldr r0, [sp, #0x48]
+ ldr r2, [sp, #0x138]
+ lsl r1, r0, #0x3
+ ldr r0, _0201A3AC ; =0x00007FC0
+ mov r3, #0x38
+ and r0, r1
+ mul r2, r0
+ add r0, r1, #0x0
+ and r0, r3
+ str r0, [sp, #0x130]
+ ldr r0, [sp, #0x48]
+ str r2, [sp, #0x134]
+ add r0, r0, #0x1
+ lsl r1, r0, #0x3
+ ldr r0, _0201A3AC ; =0x00007FC0
+ ldr r2, [sp, #0x138]
+ and r0, r1
+ mul r2, r0
+ add r0, r1, #0x0
+ and r0, r3
+ str r2, [sp, #0x12c]
+ str r0, [sp, #0x128]
+_0201A360:
+ mov r0, #0x7
+ add r1, r5, #0x0
+ and r1, r0
+ ldr r0, [sp, #0x278]
+ add r1, r0, r1
+ ldr r0, _0201A3AC ; =0x00007FC0
+ and r0, r6
+ add r3, r1, r0
+ ldr r0, [sp, #0x134]
+ add r2, r3, r0
+ ldr r0, [sp, #0x308]
+ ldrb r1, [r0, r4]
+ cmp r1, #0x0
+ beq _0201A38E
+ ldr r0, [sp, #0x130]
+ strb r1, [r2, r0]
+ ldr r0, [sp, #0x1d8]
+ cmp r0, #0x0
+ beq _0201A38E
+ ldr r0, [sp, #0x12c]
+ add r2, r3, r0
+ ldr r0, [sp, #0x128]
+ strb r1, [r0, r2]
+_0201A38E:
+ add r4, r4, #0x1
+ add r6, #0x8
+ add r5, r5, #0x1
+ cmp r4, r7
+ blt _0201A360
+_0201A398:
+ ldr r0, [sp, #0x1d8]
+ cmp r0, #0x0
+ beq _0201A3B0
+ ldr r0, [sp, #0x48]
+ add r0, r0, #0x2
+ str r0, [sp, #0x48]
+ b _0201A3B6
+ nop
+_0201A3A8: .word 0x00003FE0
+_0201A3AC: .word 0x00007FC0
+_0201A3B0:
+ ldr r0, [sp, #0x48]
+ add r0, r0, #0x1
+ str r0, [sp, #0x48]
+_0201A3B6:
+ ldr r0, [sp, #0x308]
+ add r0, #0x8
+ str r0, [sp, #0x308]
+ ldr r0, [sp, #0x1dc]
+ add r1, r0, #0x1
+ ldr r0, [sp, #0x4]
+ str r1, [sp, #0x1dc]
+ cmp r1, r0
+ blt _0201A312
+_0201A3C8:
+ b _0201A8B6
+_0201A3CA:
+ ldr r0, [sp, #0x48]
+ mov r1, #0x7
+ str r0, [sp, #0x1d0]
+ mov r0, #0x0
+ str r0, [sp, #0x1d4]
+ ldr r0, [sp, #0x330]
+ ldr r7, [sp, #0x1ec]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x150]
+ ldr r0, [sp, #0x58]
+ and r1, r0
+ add r0, r0, r1
+ asr r0, r0, #0x3
+ str r0, [sp, #0x30]
+_0201A3E8:
+ ldr r1, [sp, #0x150]
+ ldr r0, [sp, #0x1d4]
+ mov r4, #0x0
+ asr r1, r0
+ mov r0, #0x1
+ and r0, r1
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x304]
+ ldr r0, [sp, #0x8]
+ ldr r5, [sp, #0x5c]
+ cmp r0, #0x0
+ ble _0201A46C
+ ble _0201A46C
+ add r0, r5, #0x0
+ lsl r6, r0, #0x3
+ ldr r0, [sp, #0x1d0]
+ ldr r2, [sp, #0x30]
+ lsl r1, r0, #0x3
+ ldr r0, _0201A748 ; =0x00007FC0
+ mov r3, #0x38
+ and r0, r1
+ mul r2, r0
+ add r0, r1, #0x0
+ and r0, r3
+ str r0, [sp, #0x148]
+ ldr r0, [sp, #0x1d0]
+ str r2, [sp, #0x14c]
+ add r0, r0, #0x1
+ lsl r1, r0, #0x3
+ ldr r0, _0201A748 ; =0x00007FC0
+ ldr r2, [sp, #0x30]
+ and r0, r1
+ mul r2, r0
+ add r0, r1, #0x0
+ and r0, r3
+ str r2, [sp, #0x144]
+ str r0, [sp, #0x140]
+_0201A434:
+ mov r0, #0x7
+ add r1, r5, #0x0
+ and r1, r0
+ ldr r0, [sp, #0x278]
+ add r1, r0, r1
+ ldr r0, _0201A748 ; =0x00007FC0
+ and r0, r6
+ add r3, r1, r0
+ ldr r0, [sp, #0x14c]
+ ldrb r1, [r7, r4]
+ add r2, r3, r0
+ cmp r1, #0x0
+ beq _0201A460
+ ldr r0, [sp, #0x148]
+ strb r1, [r2, r0]
+ ldr r0, [sp, #0x304]
+ cmp r0, #0x0
+ beq _0201A460
+ ldr r0, [sp, #0x144]
+ add r2, r3, r0
+ ldr r0, [sp, #0x140]
+ strb r1, [r0, r2]
+_0201A460:
+ ldr r0, [sp, #0x8]
+ add r4, r4, #0x1
+ add r6, #0x8
+ add r5, r5, #0x1
+ cmp r4, r0
+ blt _0201A434
+_0201A46C:
+ ldr r0, [sp, #0x304]
+ cmp r0, #0x0
+ beq _0201A47A
+ ldr r0, [sp, #0x1d0]
+ add r0, r0, #0x2
+ str r0, [sp, #0x1d0]
+ b _0201A480
+_0201A47A:
+ ldr r0, [sp, #0x1d0]
+ add r0, r0, #0x1
+ str r0, [sp, #0x1d0]
+_0201A480:
+ ldr r0, [sp, #0x1d4]
+ add r7, #0x8
+ add r0, r0, #0x1
+ str r0, [sp, #0x1d4]
+ cmp r0, #0x8
+ blt _0201A3E8
+ ldr r0, [sp, #0x48]
+ ldr r7, [sp, #0x1ec]
+ add r0, #0x8
+ str r0, [sp, #0x48]
+ add r7, #0x80
+ mov r0, #0x0
+ mov r2, #0x1
+_0201A49A:
+ ldr r1, [sp, #0x330]
+ asr r1, r0
+ tst r1, r2
+ beq _0201A4A8
+ ldr r1, [sp, #0x48]
+ add r1, r1, #0x1
+ str r1, [sp, #0x48]
+_0201A4A8:
+ add r0, r0, #0x1
+ cmp r0, #0x8
+ blt _0201A49A
+ ldr r0, [sp, #0x330]
+ asr r0, r0, #0x8
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x164]
+ mov r0, #0x0
+ str r0, [sp, #0x14]
+ ldr r0, [sp, #0x4]
+ sub r0, #0x8
+ cmp r0, #0x0
+ ble _0201A56C
+_0201A4C4:
+ ldr r1, [sp, #0x164]
+ ldr r0, [sp, #0x14]
+ mov r4, #0x0
+ asr r1, r0
+ mov r0, #0x1
+ and r0, r1
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x300]
+ ldr r0, [sp, #0x8]
+ ldr r5, [sp, #0x5c]
+ cmp r0, #0x0
+ ble _0201A548
+ ble _0201A548
+ add r0, r5, #0x0
+ lsl r6, r0, #0x3
+ ldr r0, [sp, #0x48]
+ ldr r2, [sp, #0x30]
+ lsl r1, r0, #0x3
+ ldr r0, _0201A748 ; =0x00007FC0
+ mov r3, #0x38
+ and r0, r1
+ mul r2, r0
+ add r0, r1, #0x0
+ and r0, r3
+ str r0, [sp, #0x15c]
+ ldr r0, [sp, #0x48]
+ str r2, [sp, #0x160]
+ add r0, r0, #0x1
+ lsl r1, r0, #0x3
+ ldr r0, _0201A748 ; =0x00007FC0
+ ldr r2, [sp, #0x30]
+ and r0, r1
+ mul r2, r0
+ add r0, r1, #0x0
+ and r0, r3
+ str r2, [sp, #0x158]
+ str r0, [sp, #0x154]
+_0201A510:
+ mov r0, #0x7
+ add r1, r5, #0x0
+ and r1, r0
+ ldr r0, [sp, #0x278]
+ add r1, r0, r1
+ ldr r0, _0201A748 ; =0x00007FC0
+ and r0, r6
+ add r3, r1, r0
+ ldr r0, [sp, #0x160]
+ ldrb r1, [r7, r4]
+ add r2, r3, r0
+ cmp r1, #0x0
+ beq _0201A53C
+ ldr r0, [sp, #0x15c]
+ strb r1, [r2, r0]
+ ldr r0, [sp, #0x300]
+ cmp r0, #0x0
+ beq _0201A53C
+ ldr r0, [sp, #0x158]
+ add r2, r3, r0
+ ldr r0, [sp, #0x154]
+ strb r1, [r0, r2]
+_0201A53C:
+ ldr r0, [sp, #0x8]
+ add r4, r4, #0x1
+ add r6, #0x8
+ add r5, r5, #0x1
+ cmp r4, r0
+ blt _0201A510
+_0201A548:
+ ldr r0, [sp, #0x300]
+ cmp r0, #0x0
+ beq _0201A556
+ ldr r0, [sp, #0x48]
+ add r0, r0, #0x2
+ str r0, [sp, #0x48]
+ b _0201A55C
+_0201A556:
+ ldr r0, [sp, #0x48]
+ add r0, r0, #0x1
+ str r0, [sp, #0x48]
+_0201A55C:
+ ldr r0, [sp, #0x14]
+ ldr r1, [sp, #0x4]
+ add r0, r0, #0x1
+ sub r1, #0x8
+ add r7, #0x8
+ str r0, [sp, #0x14]
+ cmp r0, r1
+ blt _0201A4C4
+_0201A56C:
+ b _0201A8B6
+_0201A56E:
+ ldr r0, [sp, #0x48]
+ ldr r7, [sp, #0x1ec]
+ str r0, [sp, #0x1c8]
+ ldr r0, [sp, #0x330]
+ lsl r0, r0, #0x18
+ lsr r1, r0, #0x18
+ mov r0, #0x0
+ str r0, [sp, #0x1cc]
+ lsl r0, r1, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x2c]
+ ldr r0, [sp, #0x58]
+ mov r1, #0x7
+ and r1, r0
+ add r0, r0, r1
+ asr r0, r0, #0x3
+ str r0, [sp, #0x28]
+_0201A590:
+ ldr r1, [sp, #0x2c]
+ ldr r0, [sp, #0x1cc]
+ ldr r5, [sp, #0x5c]
+ asr r1, r0
+ mov r0, #0x1
+ and r0, r1
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x2fc]
+ add r0, r5, #0x0
+ lsl r6, r0, #0x3
+ ldr r0, [sp, #0x1c8]
+ ldr r2, [sp, #0x28]
+ lsl r1, r0, #0x3
+ ldr r0, _0201A748 ; =0x00007FC0
+ mov r3, #0x38
+ and r0, r1
+ mul r2, r0
+ add r0, r1, #0x0
+ and r0, r3
+ str r0, [sp, #0x170]
+ ldr r0, [sp, #0x1c8]
+ str r2, [sp, #0x174]
+ add r0, r0, #0x1
+ lsl r1, r0, #0x3
+ ldr r0, _0201A748 ; =0x00007FC0
+ ldr r2, [sp, #0x28]
+ and r0, r1
+ mul r2, r0
+ add r0, r1, #0x0
+ and r0, r3
+ mov r4, #0x0
+ str r6, [sp, #0x24]
+ str r2, [sp, #0x16c]
+ str r0, [sp, #0x168]
+_0201A5D6:
+ mov r0, #0x7
+ add r1, r5, #0x0
+ and r1, r0
+ ldr r0, [sp, #0x278]
+ add r1, r0, r1
+ ldr r0, _0201A748 ; =0x00007FC0
+ and r0, r6
+ add r3, r1, r0
+ ldr r0, [sp, #0x174]
+ ldrb r1, [r7, r4]
+ add r2, r3, r0
+ cmp r1, #0x0
+ beq _0201A602
+ ldr r0, [sp, #0x170]
+ strb r1, [r2, r0]
+ ldr r0, [sp, #0x2fc]
+ cmp r0, #0x0
+ beq _0201A602
+ ldr r0, [sp, #0x16c]
+ add r2, r3, r0
+ ldr r0, [sp, #0x168]
+ strb r1, [r0, r2]
+_0201A602:
+ add r4, r4, #0x1
+ add r6, #0x8
+ add r5, r5, #0x1
+ cmp r4, #0x8
+ blt _0201A5D6
+ ldr r0, [sp, #0x2fc]
+ cmp r0, #0x0
+ beq _0201A61A
+ ldr r0, [sp, #0x1c8]
+ add r0, r0, #0x2
+ str r0, [sp, #0x1c8]
+ b _0201A620
+_0201A61A:
+ ldr r0, [sp, #0x1c8]
+ add r0, r0, #0x1
+ str r0, [sp, #0x1c8]
+_0201A620:
+ ldr r0, [sp, #0x1cc]
+ add r7, #0x8
+ add r0, r0, #0x1
+ str r0, [sp, #0x1cc]
+ cmp r0, #0x8
+ blt _0201A590
+ ldr r0, [sp, #0x1ec]
+ str r0, [sp, #0x2f8]
+ add r0, #0x40
+ str r0, [sp, #0x2f8]
+ ldr r0, [sp, #0x48]
+ str r0, [sp, #0x1c0]
+ mov r0, #0x0
+ str r0, [sp, #0x1c4]
+ ldr r0, [sp, #0x5c]
+ str r0, [sp, #0x188]
+ add r0, #0x8
+ str r0, [sp, #0x188]
+_0201A644:
+ ldr r1, [sp, #0x2c]
+ ldr r0, [sp, #0x1c4]
+ ldr r7, [sp, #0x8]
+ asr r1, r0
+ mov r0, #0x1
+ and r0, r1
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ sub r7, #0x8
+ mov r4, #0x0
+ str r0, [sp, #0x1bc]
+ ldr r5, [sp, #0x188]
+ cmp r7, #0x0
+ ble _0201A6CA
+ ble _0201A6CA
+ add r0, r5, #0x0
+ lsl r6, r0, #0x3
+ ldr r0, [sp, #0x1c0]
+ ldr r2, [sp, #0x28]
+ lsl r1, r0, #0x3
+ ldr r0, _0201A748 ; =0x00007FC0
+ mov r3, #0x38
+ and r0, r1
+ mul r2, r0
+ add r0, r1, #0x0
+ and r0, r3
+ str r0, [sp, #0x180]
+ ldr r0, [sp, #0x1c0]
+ str r2, [sp, #0x184]
+ add r0, r0, #0x1
+ lsl r1, r0, #0x3
+ ldr r0, _0201A748 ; =0x00007FC0
+ ldr r2, [sp, #0x28]
+ and r0, r1
+ mul r2, r0
+ add r0, r1, #0x0
+ and r0, r3
+ str r2, [sp, #0x17c]
+ str r0, [sp, #0x178]
+_0201A692:
+ mov r0, #0x7
+ add r1, r5, #0x0
+ and r1, r0
+ ldr r0, [sp, #0x278]
+ add r1, r0, r1
+ ldr r0, _0201A748 ; =0x00007FC0
+ and r0, r6
+ add r3, r1, r0
+ ldr r0, [sp, #0x184]
+ add r2, r3, r0
+ ldr r0, [sp, #0x2f8]
+ ldrb r1, [r0, r4]
+ cmp r1, #0x0
+ beq _0201A6C0
+ ldr r0, [sp, #0x180]
+ strb r1, [r2, r0]
+ ldr r0, [sp, #0x1bc]
+ cmp r0, #0x0
+ beq _0201A6C0
+ ldr r0, [sp, #0x17c]
+ add r2, r3, r0
+ ldr r0, [sp, #0x178]
+ strb r1, [r0, r2]
+_0201A6C0:
+ add r4, r4, #0x1
+ add r6, #0x8
+ add r5, r5, #0x1
+ cmp r4, r7
+ blt _0201A692
+_0201A6CA:
+ ldr r0, [sp, #0x1bc]
+ cmp r0, #0x0
+ beq _0201A6D8
+ ldr r0, [sp, #0x1c0]
+ add r0, r0, #0x2
+ str r0, [sp, #0x1c0]
+ b _0201A6DE
+_0201A6D8:
+ ldr r0, [sp, #0x1c0]
+ add r0, r0, #0x1
+ str r0, [sp, #0x1c0]
+_0201A6DE:
+ ldr r0, [sp, #0x2f8]
+ add r0, #0x8
+ str r0, [sp, #0x2f8]
+ ldr r0, [sp, #0x1c4]
+ add r0, r0, #0x1
+ str r0, [sp, #0x1c4]
+ cmp r0, #0x8
+ blt _0201A644
+ ldr r0, [sp, #0x48]
+ ldr r7, [sp, #0x1ec]
+ add r0, #0x8
+ add r7, #0x80
+ str r0, [sp, #0x48]
+ str r0, [sp, #0x1b8]
+ mov r0, #0x0
+ mov r2, #0x1
+_0201A6FE:
+ ldr r1, [sp, #0x330]
+ asr r1, r0
+ tst r1, r2
+ beq _0201A70C
+ ldr r1, [sp, #0x1b8]
+ add r1, r1, #0x1
+ str r1, [sp, #0x1b8]
+_0201A70C:
+ add r0, r0, #0x1
+ cmp r0, #0x8
+ blt _0201A6FE
+ ldr r0, [sp, #0x330]
+ asr r0, r0, #0x8
+ str r0, [sp, #0x44]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x19c]
+ mov r0, #0x0
+ str r0, [sp, #0x10]
+ ldr r0, [sp, #0x4]
+ sub r0, #0x8
+ cmp r0, #0x0
+ ble _0201A7CE
+_0201A72A:
+ ldr r1, [sp, #0x19c]
+ ldr r0, [sp, #0x10]
+ ldr r2, [sp, #0x28]
+ asr r1, r0
+ mov r0, #0x1
+ and r0, r1
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x2f4]
+ ldr r0, [sp, #0x1b8]
+ mov r3, #0x38
+ lsl r1, r0, #0x3
+ ldr r0, _0201A748 ; =0x00007FC0
+ b _0201A74C
+ nop
+_0201A748: .word 0x00007FC0
+_0201A74C:
+ ldr r5, [sp, #0x5c]
+ and r0, r1
+ mul r2, r0
+ add r0, r1, #0x0
+ and r0, r3
+ str r0, [sp, #0x194]
+ ldr r0, [sp, #0x1b8]
+ str r2, [sp, #0x198]
+ add r0, r0, #0x1
+ lsl r1, r0, #0x3
+ ldr r0, _0201A8C4 ; =0x00007FC0
+ ldr r2, [sp, #0x28]
+ and r0, r1
+ mul r2, r0
+ add r0, r1, #0x0
+ and r0, r3
+ ldr r6, [sp, #0x24]
+ mov r4, #0x0
+ str r2, [sp, #0x190]
+ str r0, [sp, #0x18c]
+_0201A774:
+ mov r0, #0x7
+ add r1, r5, #0x0
+ and r1, r0
+ ldr r0, [sp, #0x278]
+ add r1, r0, r1
+ ldr r0, _0201A8C4 ; =0x00007FC0
+ and r0, r6
+ add r3, r1, r0
+ ldr r0, [sp, #0x198]
+ ldrb r1, [r7, r4]
+ add r2, r3, r0
+ cmp r1, #0x0
+ beq _0201A7A0
+ ldr r0, [sp, #0x194]
+ strb r1, [r2, r0]
+ ldr r0, [sp, #0x2f4]
+ cmp r0, #0x0
+ beq _0201A7A0
+ ldr r0, [sp, #0x190]
+ add r2, r3, r0
+ ldr r0, [sp, #0x18c]
+ strb r1, [r0, r2]
+_0201A7A0:
+ add r4, r4, #0x1
+ add r6, #0x8
+ add r5, r5, #0x1
+ cmp r4, #0x8
+ blt _0201A774
+ ldr r0, [sp, #0x2f4]
+ cmp r0, #0x0
+ beq _0201A7B8
+ ldr r0, [sp, #0x1b8]
+ add r0, r0, #0x2
+ str r0, [sp, #0x1b8]
+ b _0201A7BE
+_0201A7B8:
+ ldr r0, [sp, #0x1b8]
+ add r0, r0, #0x1
+ str r0, [sp, #0x1b8]
+_0201A7BE:
+ ldr r0, [sp, #0x10]
+ ldr r1, [sp, #0x4]
+ add r0, r0, #0x1
+ sub r1, #0x8
+ add r7, #0x8
+ str r0, [sp, #0x10]
+ cmp r0, r1
+ blt _0201A72A
+_0201A7CE:
+ ldr r0, [sp, #0x1ec]
+ mov r2, #0x0
+ str r0, [sp, #0x2f0]
+ add r0, #0xc0
+ str r0, [sp, #0x2f0]
+ mov r1, #0x1
+_0201A7DA:
+ ldr r0, [sp, #0x330]
+ asr r0, r2
+ tst r0, r1
+ beq _0201A7E8
+ ldr r0, [sp, #0x48]
+ add r0, r0, #0x1
+ str r0, [sp, #0x48]
+_0201A7E8:
+ add r2, r2, #0x1
+ cmp r2, #0x8
+ blt _0201A7DA
+ ldr r0, [sp, #0x44]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x1b0]
+ mov r0, #0x0
+ str r0, [sp, #0xc]
+ ldr r0, [sp, #0x4]
+ sub r0, #0x8
+ cmp r0, #0x0
+ ble _0201A8B6
+ ldr r0, [sp, #0x5c]
+ add r0, #0x8
+ str r0, [sp, #0x5c]
+_0201A808:
+ ldr r1, [sp, #0x1b0]
+ ldr r0, [sp, #0xc]
+ ldr r7, [sp, #0x8]
+ asr r1, r0
+ mov r0, #0x1
+ and r0, r1
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ sub r7, #0x8
+ mov r4, #0x0
+ str r0, [sp, #0x1b4]
+ ldr r5, [sp, #0x5c]
+ cmp r7, #0x0
+ ble _0201A88E
+ ble _0201A88E
+ add r0, r5, #0x0
+ lsl r6, r0, #0x3
+ ldr r0, [sp, #0x48]
+ ldr r2, [sp, #0x28]
+ lsl r1, r0, #0x3
+ ldr r0, _0201A8C4 ; =0x00007FC0
+ mov r3, #0x38
+ and r0, r1
+ mul r2, r0
+ add r0, r1, #0x0
+ and r0, r3
+ str r0, [sp, #0x1a8]
+ ldr r0, [sp, #0x48]
+ str r2, [sp, #0x1ac]
+ add r0, r0, #0x1
+ lsl r1, r0, #0x3
+ ldr r0, _0201A8C4 ; =0x00007FC0
+ ldr r2, [sp, #0x28]
+ and r0, r1
+ mul r2, r0
+ add r0, r1, #0x0
+ and r0, r3
+ str r2, [sp, #0x1a4]
+ str r0, [sp, #0x1a0]
+_0201A856:
+ mov r0, #0x7
+ add r1, r5, #0x0
+ and r1, r0
+ ldr r0, [sp, #0x278]
+ add r1, r0, r1
+ ldr r0, _0201A8C4 ; =0x00007FC0
+ and r0, r6
+ add r3, r1, r0
+ ldr r0, [sp, #0x1ac]
+ add r2, r3, r0
+ ldr r0, [sp, #0x2f0]
+ ldrb r1, [r0, r4]
+ cmp r1, #0x0
+ beq _0201A884
+ ldr r0, [sp, #0x1a8]
+ strb r1, [r2, r0]
+ ldr r0, [sp, #0x1b4]
+ cmp r0, #0x0
+ beq _0201A884
+ ldr r0, [sp, #0x1a4]
+ add r2, r3, r0
+ ldr r0, [sp, #0x1a0]
+ strb r1, [r0, r2]
+_0201A884:
+ add r4, r4, #0x1
+ add r6, #0x8
+ add r5, r5, #0x1
+ cmp r4, r7
+ blt _0201A856
+_0201A88E:
+ ldr r0, [sp, #0x1b4]
+ cmp r0, #0x0
+ beq _0201A89C
+ ldr r0, [sp, #0x48]
+ add r0, r0, #0x2
+ str r0, [sp, #0x48]
+ b _0201A8A2
+_0201A89C:
+ ldr r0, [sp, #0x48]
+ add r0, r0, #0x1
+ str r0, [sp, #0x48]
+_0201A8A2:
+ ldr r0, [sp, #0x2f0]
+ ldr r1, [sp, #0x4]
+ add r0, #0x8
+ str r0, [sp, #0x2f0]
+ ldr r0, [sp, #0xc]
+ sub r1, #0x8
+ add r0, r0, #0x1
+ str r0, [sp, #0xc]
+ cmp r0, r1
+ blt _0201A808
+_0201A8B6:
+ ldr r0, [sp, #0x1ec]
+ bl FUN_02016A18
+
+ thumb_func_start FUN_0201A8BC
+FUN_0201A8BC: ; 0x0201A8BC
+ add sp, #0x1fc
+ add sp, #0x118
+ pop {r4-r7, pc}
+ nop
+_0201A8C4: .word 0x00007FC0
+
+ thumb_func_start FUN_0201A8C8
+FUN_0201A8C8: ; 0x0201A8C8
+ push {r4-r6, lr}
+ ldrb r6, [r0, #0x4]
+ mov r5, #0x2c
+ ldr r4, [r0, #0x0]
+ mul r5, r6
+ add r4, r4, r5
+ ldrb r4, [r4, #0x1e]
+ cmp r4, #0x0
+ bne _0201A8E0
+ bl FUN_0201A8E8
+ pop {r4-r6, pc}
+_0201A8E0:
+ bl FUN_0201A9D4
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_0201A8E8
+FUN_0201A8E8: ; 0x0201A8E8
+ push {r3-r7, lr}
+ sub sp, #0x10
+ add r6, r3, #0x0
+ add r4, r0, #0x0
+ add r0, r1, #0x0
+ lsl r3, r6, #0x18
+ lsl r1, r6, #0x10
+ str r2, [sp, #0x0]
+ orr r1, r3
+ lsl r5, r6, #0x8
+ orr r1, r5
+ orr r1, r6
+ str r1, [sp, #0x4]
+ ldrb r1, [r4, #0x7]
+ ldrb r3, [r4, #0x8]
+ ldr r2, [r4, #0xc]
+ str r1, [sp, #0x8]
+ mul r1, r3
+ lsl r1, r1, #0x5
+ str r1, [sp, #0xc]
+ cmp r0, #0x3
+ bhi _0201A9CE
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0201A920: ; jump table (using 16-bit offset)
+ .short _0201A928 - _0201A920 - 2; case 0
+ .short _0201A976 - _0201A920 - 2; case 1
+ .short _0201A9CE - _0201A920 - 2; case 2
+ .short _0201A9CE - _0201A920 - 2; case 3
+_0201A928:
+ add r0, r1, #0x0
+ mov r7, #0x0
+ cmp r0, #0x0
+ ble _0201A9CE
+ mov r0, #0x7
+ mov lr, r0
+_0201A934:
+ ldr r3, [sp, #0x0]
+ mov r4, #0x0
+ add r5, r7, #0x0
+_0201A93A:
+ mov r0, #0x7
+ add r6, r3, #0x0
+ and r6, r0
+ add r1, r3, #0x0
+ mov r0, lr
+ bic r1, r0
+ ldr r0, [sp, #0x8]
+ mul r1, r0
+ add r0, r6, #0x0
+ orr r0, r1
+ lsl r0, r0, #0x2
+ add r1, r7, r0
+ ldr r0, [sp, #0xc]
+ cmp r1, r0
+ bge _0201A95C
+ ldr r0, [r2, r1]
+ b _0201A95E
+_0201A95C:
+ ldr r0, [sp, #0x4]
+_0201A95E:
+ add r4, r4, #0x1
+ str r0, [r2, r5]
+ add r3, r3, #0x1
+ add r5, r5, #0x4
+ cmp r4, #0x8
+ blt _0201A93A
+ ldr r0, [sp, #0xc]
+ add r7, #0x20
+ cmp r7, r0
+ blt _0201A934
+ add sp, #0x10
+ pop {r3-r7, pc}
+_0201A976:
+ add r0, r1, #0x0
+ sub r0, r0, #0x4
+ add r2, r2, r0
+ add r0, r1, #0x0
+ mov r7, #0x0
+ cmp r0, #0x0
+ ble _0201A9CE
+ mov r0, #0x7
+ mov r12, r0
+_0201A988:
+ ldr r4, [sp, #0x0]
+ mov r5, #0x0
+ add r3, r7, #0x0
+_0201A98E:
+ mov r0, #0x7
+ add r6, r4, #0x0
+ and r6, r0
+ add r1, r4, #0x0
+ mov r0, r12
+ bic r1, r0
+ ldr r0, [sp, #0x8]
+ mul r1, r0
+ add r0, r6, #0x0
+ orr r0, r1
+ lsl r0, r0, #0x2
+ add r1, r7, r0
+ ldr r0, [sp, #0xc]
+ cmp r1, r0
+ bge _0201A9B6
+ sub r0, r2, r1
+ ldr r1, [r0, #0x0]
+ sub r0, r2, r3
+ str r1, [r0, #0x0]
+ b _0201A9BC
+_0201A9B6:
+ ldr r0, [sp, #0x4]
+ sub r1, r2, r3
+ str r0, [r1, #0x0]
+_0201A9BC:
+ add r5, r5, #0x1
+ add r4, r4, #0x1
+ add r3, r3, #0x4
+ cmp r5, #0x8
+ blt _0201A98E
+ ldr r0, [sp, #0xc]
+ add r7, #0x20
+ cmp r7, r0
+ blt _0201A988
+_0201A9CE:
+ add sp, #0x10
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_0201A9D4
+FUN_0201A9D4: ; 0x0201A9D4
+ push {r3-r7, lr}
+ sub sp, #0x20
+ add r6, r3, #0x0
+ add r4, r0, #0x0
+ str r2, [sp, #0x0]
+ lsl r2, r6, #0x18
+ lsl r0, r6, #0x10
+ orr r0, r2
+ ldrb r2, [r4, #0x7]
+ ldr r3, [r4, #0xc]
+ lsl r5, r6, #0x8
+ orr r0, r5
+ ldrb r4, [r4, #0x8]
+ str r2, [sp, #0x10]
+ orr r0, r6
+ mul r2, r4
+ lsl r2, r2, #0x6
+ str r2, [sp, #0x1c]
+ cmp r1, #0x3
+ bls _0201A9FE
+ b _0201AB04
+_0201A9FE:
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #0x6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_0201AA0A: ; jump table (using 16-bit offset)
+ .short _0201AA12 - _0201AA0A - 2; case 0
+ .short _0201AA80 - _0201AA0A - 2; case 1
+ .short _0201AB04 - _0201AA0A - 2; case 2
+ .short _0201AB04 - _0201AA0A - 2; case 3
+_0201AA12:
+ mov r1, #0x0
+ str r1, [sp, #0xc]
+ add r1, r2, #0x0
+ cmp r1, #0x0
+ ble _0201AB04
+ add r1, r1, #0x4
+ str r1, [sp, #0x14]
+ mov r1, #0x7
+ mov lr, r1
+_0201AA24:
+ ldr r4, [sp, #0x0]
+ ldr r5, [sp, #0xc]
+ mov r7, #0x0
+_0201AA2A:
+ mov r1, #0x7
+ add r6, r4, #0x0
+ and r6, r1
+ add r2, r4, #0x0
+ mov r1, lr
+ bic r2, r1
+ ldr r1, [sp, #0x10]
+ mul r2, r1
+ add r1, r6, #0x0
+ orr r1, r2
+ lsl r2, r1, #0x3
+ ldr r1, [sp, #0xc]
+ add r1, r1, r2
+ ldr r2, [sp, #0x1c]
+ cmp r1, r2
+ bge _0201AA50
+ ldr r2, [r3, r1]
+ str r2, [r3, r5]
+ b _0201AA52
+_0201AA50:
+ str r0, [r3, r5]
+_0201AA52:
+ add r2, r1, #0x4
+ ldr r1, [sp, #0x14]
+ cmp r2, r1
+ bge _0201AA62
+ ldr r2, [r3, r2]
+ add r1, r5, #0x4
+ str r2, [r3, r1]
+ b _0201AA66
+_0201AA62:
+ add r1, r5, #0x4
+ str r0, [r3, r1]
+_0201AA66:
+ add r7, r7, #0x1
+ add r4, r4, #0x1
+ add r5, #0x8
+ cmp r7, #0x8
+ blt _0201AA2A
+ ldr r2, [sp, #0xc]
+ ldr r1, [sp, #0x1c]
+ add r2, #0x40
+ str r2, [sp, #0xc]
+ cmp r2, r1
+ blt _0201AA24
+ add sp, #0x20
+ pop {r3-r7, pc}
+_0201AA80:
+ add r1, r2, #0x0
+ sub r1, #0x8
+ add r3, r3, r1
+ mov r1, #0x0
+ str r1, [sp, #0x8]
+ add r1, r2, #0x0
+ cmp r1, #0x0
+ ble _0201AB04
+_0201AA90:
+ mov r1, #0x0
+ str r1, [sp, #0x4]
+ ldr r1, [sp, #0x1c]
+ ldr r5, [sp, #0x0]
+ sub r1, r1, #0x4
+ str r1, [sp, #0x18]
+ mov r1, #0x7
+ ldr r4, [sp, #0x8]
+ mov r12, r1
+_0201AAA2:
+ mov r1, #0x7
+ add r6, r5, #0x0
+ and r6, r1
+ add r2, r5, #0x0
+ mov r1, r12
+ bic r2, r1
+ ldr r1, [sp, #0x10]
+ mul r2, r1
+ add r1, r6, #0x0
+ orr r1, r2
+ lsl r2, r1, #0x3
+ ldr r1, [sp, #0x8]
+ add r6, r1, r2
+ ldr r1, [sp, #0x1c]
+ cmp r6, r1
+ bge _0201AACC
+ sub r1, r3, r6
+ ldr r2, [r1, #0x0]
+ sub r1, r3, r4
+ str r2, [r1, #0x0]
+ b _0201AAD0
+_0201AACC:
+ sub r1, r3, r4
+ str r0, [r1, #0x0]
+_0201AAD0:
+ ldr r1, [sp, #0x18]
+ sub r2, r6, #0x4
+ cmp r2, r1
+ bge _0201AAE4
+ sub r1, r3, r2
+ sub r2, r4, #0x4
+ ldr r1, [r1, #0x0]
+ sub r2, r3, r2
+ str r1, [r2, #0x0]
+ b _0201AAEA
+_0201AAE4:
+ sub r1, r4, #0x4
+ sub r1, r3, r1
+ str r0, [r1, #0x0]
+_0201AAEA:
+ ldr r1, [sp, #0x4]
+ add r5, r5, #0x1
+ add r1, r1, #0x1
+ add r4, #0x8
+ str r1, [sp, #0x4]
+ cmp r1, #0x8
+ blt _0201AAA2
+ ldr r2, [sp, #0x8]
+ ldr r1, [sp, #0x1c]
+ add r2, #0x40
+ str r2, [sp, #0x8]
+ cmp r2, r1
+ blt _0201AA90
+_0201AB04:
+ add sp, #0x20
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_0201AB08
+FUN_0201AB08: ; 0x0201AB08
+ ldrb r0, [r0, #0x4]
+ bx lr
+
+ thumb_func_start FUN_0201AB0C
+FUN_0201AB0C: ; 0x0201AB0C
+ ldrb r0, [r0, #0x7]
+ bx lr
+
+ thumb_func_start FUN_0201AB10
+FUN_0201AB10: ; 0x0201AB10
+ ldrb r0, [r0, #0x8]
+ bx lr
+
+ thumb_func_start FUN_0201AB14
+FUN_0201AB14: ; 0x0201AB14
+ ldrb r0, [r0, #0x5]
+ bx lr
+
+ thumb_func_start FUN_0201AB18
+FUN_0201AB18: ; 0x0201AB18
+ ldrb r0, [r0, #0x6]
+ bx lr
+
+ thumb_func_start FUN_0201AB1C
+FUN_0201AB1C: ; 0x0201AB1C
+ strb r1, [r0, #0x5]
+ bx lr
+
+ thumb_func_start FUN_0201AB20
+FUN_0201AB20: ; 0x0201AB20
+ strb r1, [r0, #0x6]
+ bx lr
+
+ thumb_func_start FUN_0201AB24
+FUN_0201AB24: ; 0x0201AB24
+ strb r1, [r0, #0x9]
+ bx lr
+
+ thumb_func_start FUN_0201AB28
+FUN_0201AB28: ; 0x0201AB28
+ push {r3-r4, lr}
+ sub sp, #0x4
+ add r4, r0, #0x0
+ add r0, r1, #0x0
+ add r1, r2, #0x0
+ bl FUN_020161A4
+ add r1, sp, #0x0
+ str r0, [r4, #0x0]
+ blx FUN_020B0030
+ ldr r0, [sp, #0x0]
+ add sp, #0x4
+ pop {r3-r4, pc}
+
+ thumb_func_start FUN_0201AB44
+FUN_0201AB44: ; 0x0201AB44
+ push {r3-r4, lr}
+ sub sp, #0x4
+ add r4, r0, #0x0
+ add r0, r1, #0x0
+ add r1, r2, #0x0
+ bl FUN_020161A4
+ add r1, sp, #0x0
+ str r0, [r4, #0x0]
+ blx FUN_020B0138
+ ldr r0, [sp, #0x0]
+ add sp, #0x4
+ pop {r3-r4, pc}
+
+ thumb_func_start FUN_0201AB60
+FUN_0201AB60: ; 0x0201AB60
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl FUN_0201AC78
+ add r0, r4, #0x0
+ bl FUN_0201AB78
+ mov r0, #0x0
+ strh r0, [r4, #0x4]
+ strh r0, [r4, #0x6]
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0201AB78
+FUN_0201AB78: ; 0x0201AB78
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldrh r1, [r4, #0x6]
+ mov r0, #0x1
+ tst r0, r1
+ beq _0201AB92
+ ldr r2, [r4, #0x10]
+ ldr r1, [r4, #0x8]
+ ldr r3, [r4, #0xc]
+ mov r0, #0x0
+ lsl r2, r2, #0x1
+ bl FUN_02017D68
+_0201AB92:
+ ldrh r1, [r4, #0x6]
+ mov r0, #0x2
+ tst r0, r1
+ beq _0201ABA8
+ ldr r2, [r4, #0x3c]
+ ldr r1, [r4, #0x34]
+ ldr r3, [r4, #0x38]
+ mov r0, #0x1
+ lsl r2, r2, #0x1
+ bl FUN_02017D68
+_0201ABA8:
+ ldrh r1, [r4, #0x6]
+ mov r0, #0x4
+ tst r0, r1
+ beq _0201ABBE
+ ldr r2, [r4, #0x68]
+ ldr r1, [r4, #0x60]
+ ldr r3, [r4, #0x64]
+ mov r0, #0x2
+ lsl r2, r2, #0x1
+ bl FUN_02017D68
+_0201ABBE:
+ ldrh r1, [r4, #0x6]
+ mov r0, #0x8
+ tst r0, r1
+ beq _0201ABE0
+ add r2, r4, #0x0
+ add r1, r4, #0x0
+ add r2, #0x94
+ add r3, r4, #0x0
+ add r1, #0x8c
+ ldr r2, [r2, #0x0]
+ add r3, #0x90
+ ldr r1, [r1, #0x0]
+ ldr r3, [r3, #0x0]
+ mov r0, #0x3
+ lsl r2, r2, #0x1
+ bl FUN_02017D68
+_0201ABE0:
+ ldrh r1, [r4, #0x6]
+ mov r0, #0x10
+ tst r0, r1
+ beq _0201AC02
+ add r2, r4, #0x0
+ add r1, r4, #0x0
+ add r2, #0xc0
+ add r3, r4, #0x0
+ add r1, #0xb8
+ ldr r2, [r2, #0x0]
+ add r3, #0xbc
+ ldr r1, [r1, #0x0]
+ ldr r3, [r3, #0x0]
+ mov r0, #0x4
+ lsl r2, r2, #0x1
+ bl FUN_02017D68
+_0201AC02:
+ ldrh r1, [r4, #0x6]
+ mov r0, #0x20
+ tst r0, r1
+ beq _0201AC24
+ add r2, r4, #0x0
+ add r1, r4, #0x0
+ add r2, #0xec
+ add r3, r4, #0x0
+ add r1, #0xe4
+ ldr r2, [r2, #0x0]
+ add r3, #0xe8
+ ldr r1, [r1, #0x0]
+ ldr r3, [r3, #0x0]
+ mov r0, #0x5
+ lsl r2, r2, #0x1
+ bl FUN_02017D68
+_0201AC24:
+ ldrh r0, [r4, #0x6]
+ mov r3, #0x40
+ tst r0, r3
+ beq _0201AC44
+ add r2, r3, #0x0
+ add r1, r3, #0x0
+ add r2, #0xd8
+ add r1, #0xd0
+ ldr r2, [r4, r2]
+ add r3, #0xd4
+ ldr r1, [r4, r1]
+ ldr r3, [r4, r3]
+ mov r0, #0x6
+ lsl r2, r2, #0x1
+ bl FUN_02017D68
+_0201AC44:
+ ldrh r0, [r4, #0x6]
+ mov r3, #0x80
+ tst r0, r3
+ beq _0201AC64
+ add r2, r3, #0x0
+ add r1, r3, #0x0
+ add r2, #0xc4
+ add r1, #0xbc
+ ldr r2, [r4, r2]
+ add r3, #0xc0
+ ldr r1, [r4, r1]
+ ldr r3, [r4, r3]
+ mov r0, #0x7
+ lsl r2, r2, #0x1
+ bl FUN_02017D68
+_0201AC64:
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0201AC68
+FUN_0201AC68: ; 0x0201AC68
+ ldrh r3, [r0, #0x6]
+ mov r2, #0x1
+ lsl r2, r1
+ add r1, r3, #0x0
+ orr r1, r2
+ strh r1, [r0, #0x6]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_0201AC78
+FUN_0201AC78: ; 0x0201AC78
+ push {r4, lr}
+ sub sp, #0x48
+ add r4, r0, #0x0
+ ldrh r1, [r4, #0x4]
+ mov r0, #0x1
+ tst r0, r1
+ beq _0201AC9E
+ ldr r1, [r4, #0x14]
+ ldr r0, _0201AEB0 ; =0x000001FF
+ add r2, r1, #0x0
+ ldr r1, [r4, #0x18]
+ and r2, r0
+ lsl r1, r1, #0x10
+ lsl r0, r0, #0x10
+ and r0, r1
+ add r1, r2, #0x0
+ orr r1, r0
+ ldr r0, _0201AEB4 ; =0x04000010
+ str r1, [r0, #0x0]
+_0201AC9E:
+ ldrh r1, [r4, #0x4]
+ mov r0, #0x2
+ tst r0, r1
+ beq _0201ACBE
+ ldr r1, [r4, #0x40]
+ ldr r0, _0201AEB0 ; =0x000001FF
+ add r2, r1, #0x0
+ ldr r1, [r4, #0x44]
+ and r2, r0
+ lsl r1, r1, #0x10
+ lsl r0, r0, #0x10
+ and r0, r1
+ add r1, r2, #0x0
+ orr r1, r0
+ ldr r0, _0201AEB8 ; =0x04000014
+ str r1, [r0, #0x0]
+_0201ACBE:
+ ldrh r1, [r4, #0x4]
+ mov r0, #0x4
+ tst r0, r1
+ beq _0201AD1E
+ add r0, r4, #0x0
+ add r0, #0x74
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x0
+ bne _0201ACEA
+ ldr r1, [r4, #0x6c]
+ ldr r0, _0201AEB0 ; =0x000001FF
+ add r2, r1, #0x0
+ ldr r1, [r4, #0x70]
+ and r2, r0
+ lsl r1, r1, #0x10
+ lsl r0, r0, #0x10
+ and r0, r1
+ add r1, r2, #0x0
+ orr r1, r0
+ ldr r0, _0201AEBC ; =0x04000018
+ str r1, [r0, #0x0]
+ b _0201AD1E
+_0201ACEA:
+ mov r0, #0x2
+ str r0, [sp, #0x0]
+ add r1, r4, #0x0
+ add r1, #0x78
+ add r3, r4, #0x0
+ add r3, #0x80
+ ldrh r1, [r1, #0x0]
+ ldr r2, [r4, #0x7c]
+ ldr r3, [r3, #0x0]
+ add r0, sp, #0x38
+ bl FUN_0201BB74
+ ldr r0, [r4, #0x6c]
+ add r2, r4, #0x0
+ str r0, [sp, #0x0]
+ ldr r0, [r4, #0x70]
+ add r3, r4, #0x0
+ str r0, [sp, #0x4]
+ add r2, #0x84
+ add r3, #0x88
+ ldr r0, _0201AEC0 ; =0x04000020
+ ldr r2, [r2, #0x0]
+ ldr r3, [r3, #0x0]
+ add r1, sp, #0x38
+ blx G2x_SetBGyAffine_
+_0201AD1E:
+ ldrh r1, [r4, #0x4]
+ mov r0, #0x8
+ tst r0, r1
+ beq _0201AD8E
+ add r0, r4, #0x0
+ add r0, #0xa0
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x0
+ bne _0201AD4E
+ add r0, r4, #0x0
+ add r2, r4, #0x0
+ add r0, #0x98
+ add r2, #0x9c
+ ldr r2, [r2, #0x0]
+ ldr r0, [r0, #0x0]
+ ldr r1, _0201AEB0 ; =0x000001FF
+ lsl r2, r2, #0x10
+ and r0, r1
+ lsl r1, r1, #0x10
+ and r1, r2
+ orr r1, r0
+ ldr r0, _0201AEC4 ; =0x0400001C
+ str r1, [r0, #0x0]
+ b _0201AD8E
+_0201AD4E:
+ mov r0, #0x2
+ add r1, r4, #0x0
+ str r0, [sp, #0x0]
+ add r1, #0xa4
+ add r2, r4, #0x0
+ add r3, r4, #0x0
+ add r2, #0xa8
+ add r3, #0xac
+ ldrh r1, [r1, #0x0]
+ ldr r2, [r2, #0x0]
+ ldr r3, [r3, #0x0]
+ add r0, sp, #0x28
+ bl FUN_0201BB74
+ add r0, r4, #0x0
+ add r0, #0x98
+ ldr r0, [r0, #0x0]
+ add r2, r4, #0x0
+ str r0, [sp, #0x0]
+ add r0, r4, #0x0
+ add r0, #0x9c
+ ldr r0, [r0, #0x0]
+ add r3, r4, #0x0
+ str r0, [sp, #0x4]
+ add r2, #0xb0
+ add r3, #0xb4
+ ldr r0, _0201AEC8 ; =0x04000030
+ ldr r2, [r2, #0x0]
+ ldr r3, [r3, #0x0]
+ add r1, sp, #0x28
+ blx G2x_SetBGyAffine_
+_0201AD8E:
+ ldrh r1, [r4, #0x4]
+ mov r0, #0x10
+ tst r0, r1
+ beq _0201ADB2
+ add r0, r4, #0x0
+ add r2, r4, #0x0
+ add r0, #0xc4
+ add r2, #0xc8
+ ldr r2, [r2, #0x0]
+ ldr r0, [r0, #0x0]
+ ldr r1, _0201AEB0 ; =0x000001FF
+ lsl r2, r2, #0x10
+ and r0, r1
+ lsl r1, r1, #0x10
+ and r1, r2
+ orr r1, r0
+ ldr r0, _0201AECC ; =0x04001010
+ str r1, [r0, #0x0]
+_0201ADB2:
+ ldrh r1, [r4, #0x4]
+ mov r0, #0x20
+ tst r0, r1
+ beq _0201ADD6
+ add r0, r4, #0x0
+ add r2, r4, #0x0
+ add r0, #0xf0
+ add r2, #0xf4
+ ldr r2, [r2, #0x0]
+ ldr r0, [r0, #0x0]
+ ldr r1, _0201AEB0 ; =0x000001FF
+ lsl r2, r2, #0x10
+ and r0, r1
+ lsl r1, r1, #0x10
+ and r1, r2
+ orr r1, r0
+ ldr r0, _0201AED0 ; =0x04001014
+ str r1, [r0, #0x0]
+_0201ADD6:
+ ldrh r0, [r4, #0x4]
+ mov r3, #0x40
+ tst r0, r3
+ beq _0201AE3E
+ add r0, r3, #0x0
+ add r0, #0xe4
+ ldrb r0, [r4, r0]
+ cmp r0, #0x0
+ bne _0201AE04
+ ldr r1, _0201AEB0 ; =0x000001FF
+ add r3, #0xdc
+ add r2, r1, #0x0
+ sub r2, #0xdf
+ ldr r0, [r4, r3]
+ ldr r2, [r4, r2]
+ and r0, r1
+ lsl r2, r2, #0x10
+ lsl r1, r1, #0x10
+ and r1, r2
+ orr r1, r0
+ ldr r0, _0201AED4 ; =0x04001018
+ str r1, [r0, #0x0]
+ b _0201AE3E
+_0201AE04:
+ mov r0, #0x2
+ add r1, r3, #0x0
+ add r2, r3, #0x0
+ str r0, [sp, #0x0]
+ add r1, #0xe8
+ add r2, #0xec
+ add r3, #0xf0
+ ldrh r1, [r4, r1]
+ ldr r2, [r4, r2]
+ ldr r3, [r4, r3]
+ add r0, sp, #0x18
+ bl FUN_0201BB74
+ mov r3, #0x47
+ lsl r3, r3, #0x2
+ ldr r0, [r4, r3]
+ add r2, r3, #0x0
+ str r0, [sp, #0x0]
+ add r0, r3, #0x4
+ ldr r0, [r4, r0]
+ add r2, #0x18
+ str r0, [sp, #0x4]
+ add r3, #0x1c
+ ldr r0, _0201AED8 ; =0x04001020
+ ldr r2, [r4, r2]
+ ldr r3, [r4, r3]
+ add r1, sp, #0x18
+ blx G2x_SetBGyAffine_
+_0201AE3E:
+ ldrh r0, [r4, #0x4]
+ mov r3, #0x80
+ tst r0, r3
+ beq _0201AEAC
+ add r0, r3, #0x0
+ add r0, #0xd0
+ ldrb r0, [r4, r0]
+ cmp r0, #0x0
+ bne _0201AE72
+ add r3, #0xc8
+ ldr r1, [r4, r3]
+ ldr r0, _0201AEB0 ; =0x000001FF
+ add r2, r1, #0x0
+ add r1, r0, #0x0
+ sub r1, #0xb3
+ ldr r1, [r4, r1]
+ and r2, r0
+ lsl r1, r1, #0x10
+ lsl r0, r0, #0x10
+ and r0, r1
+ add r1, r2, #0x0
+ orr r1, r0
+ ldr r0, _0201AEDC ; =0x0400101C
+ add sp, #0x48
+ str r1, [r0, #0x0]
+ pop {r4, pc}
+_0201AE72:
+ mov r0, #0x2
+ add r1, r3, #0x0
+ add r2, r3, #0x0
+ str r0, [sp, #0x0]
+ add r1, #0xd4
+ add r2, #0xd8
+ add r3, #0xdc
+ ldrh r1, [r4, r1]
+ ldr r2, [r4, r2]
+ ldr r3, [r4, r3]
+ add r0, sp, #0x8
+ bl FUN_0201BB74
+ mov r3, #0x52
+ lsl r3, r3, #0x2
+ ldr r0, [r4, r3]
+ add r2, r3, #0x0
+ str r0, [sp, #0x0]
+ add r0, r3, #0x4
+ ldr r0, [r4, r0]
+ add r2, #0x18
+ str r0, [sp, #0x4]
+ add r3, #0x1c
+ ldr r0, _0201AEE0 ; =0x04001030
+ ldr r2, [r4, r2]
+ ldr r3, [r4, r3]
+ add r1, sp, #0x8
+ blx G2x_SetBGyAffine_
+_0201AEAC:
+ add sp, #0x48
+ pop {r4, pc}
+ .balign 4
+_0201AEB0: .word 0x000001FF
+_0201AEB4: .word 0x04000010
+_0201AEB8: .word 0x04000014
+_0201AEBC: .word 0x04000018
+_0201AEC0: .word 0x04000020
+_0201AEC4: .word 0x0400001C
+_0201AEC8: .word 0x04000030
+_0201AECC: .word 0x04001010
+_0201AED0: .word 0x04001014
+_0201AED4: .word 0x04001018
+_0201AED8: .word 0x04001020
+_0201AEDC: .word 0x0400101C
+_0201AEE0: .word 0x04001030
+
+ thumb_func_start FUN_0201AEE4
+FUN_0201AEE4: ; 0x0201AEE4
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ add r1, r5, #0x0
+ mov r0, #0x2c
+ add r1, #0x8
+ mul r0, r4
+ add r0, r1, r0
+ add r1, r2, #0x0
+ add r2, r3, #0x0
+ bl FUN_02017B8C
+ mov r0, #0x1
+ ldrh r1, [r5, #0x4]
+ lsl r0, r4
+ orr r0, r1
+ strh r0, [r5, #0x4]
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_0201AF08
+FUN_0201AF08: ; 0x0201AF08
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ add r1, r5, #0x0
+ mov r0, #0x2c
+ add r1, #0x8
+ mul r0, r4
+ add r0, r1, r0
+ add r1, r2, #0x0
+ add r2, r3, #0x0
+ bl FUN_0201AF2C
+ mov r0, #0x1
+ ldrh r1, [r5, #0x4]
+ lsl r0, r4
+ orr r0, r1
+ strh r0, [r5, #0x4]
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_0201AF2C
+FUN_0201AF2C: ; 0x0201AF2C
+ cmp r1, #0x0
+ beq _0201AF3A
+ cmp r1, #0x1
+ beq _0201AF3E
+ cmp r1, #0x2
+ beq _0201AF46
+ bx lr
+_0201AF3A:
+ strh r2, [r0, #0x18]
+ bx lr
+_0201AF3E:
+ ldrh r1, [r0, #0x18]
+ add r1, r1, r2
+ strh r1, [r0, #0x18]
+ bx lr
+_0201AF46:
+ ldrh r1, [r0, #0x18]
+ sub r1, r1, r2
+ strh r1, [r0, #0x18]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_0201AF50
+FUN_0201AF50: ; 0x0201AF50
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ add r1, r5, #0x0
+ mov r0, #0x2c
+ add r1, #0x8
+ mul r0, r4
+ add r0, r1, r0
+ add r1, r2, #0x0
+ add r2, r3, #0x0
+ bl FUN_0201AF74
+ mov r0, #0x1
+ ldrh r1, [r5, #0x4]
+ lsl r0, r4
+ orr r0, r1
+ strh r0, [r5, #0x4]
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_0201AF74
+FUN_0201AF74: ; 0x0201AF74
+ sub r1, #0x9
+ cmp r1, #0x5
+ bhi _0201AFB8
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #0x6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_0201AF86: ; jump table (using 16-bit offset)
+ .short _0201AF92 - _0201AF86 - 2; case 0
+ .short _0201AF96 - _0201AF86 - 2; case 1
+ .short _0201AF9E - _0201AF86 - 2; case 2
+ .short _0201AFA6 - _0201AF86 - 2; case 3
+ .short _0201AFAA - _0201AF86 - 2; case 4
+ .short _0201AFB2 - _0201AF86 - 2; case 5
+_0201AF92:
+ str r2, [r0, #0x24]
+ bx lr
+_0201AF96:
+ ldr r1, [r0, #0x24]
+ add r1, r1, r2
+ str r1, [r0, #0x24]
+ bx lr
+_0201AF9E:
+ ldr r1, [r0, #0x24]
+ sub r1, r1, r2
+ str r1, [r0, #0x24]
+ bx lr
+_0201AFA6:
+ str r2, [r0, #0x28]
+ bx lr
+_0201AFAA:
+ ldr r1, [r0, #0x28]
+ add r1, r1, r2
+ str r1, [r0, #0x28]
+ bx lr
+_0201AFB2:
+ ldr r1, [r0, #0x28]
+ sub r1, r1, r2
+ str r1, [r0, #0x28]
+_0201AFB8:
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_0201AFBC
+FUN_0201AFBC: ; 0x0201AFBC
+ push {r4-r7, lr}
+ sub sp, #0x1c
+ str r1, [sp, #0x0]
+ add r7, r0, #0x0
+ str r2, [sp, #0x4]
+ ldr r0, [sp, #0x30]
+ str r3, [sp, #0x8]
+ str r0, [sp, #0x30]
+ ldr r0, [sp, #0x0]
+ add r4, r7, #0x0
+ mov r1, #0x2c
+ add r5, r0, #0x0
+ mul r5, r1
+ add r4, #0x8
+ ldr r0, [r4, r5]
+ cmp r0, #0x0
+ bne _0201AFE4
+ add sp, #0x1c
+ mov r0, #0x0
+ pop {r4-r7, pc}
+_0201AFE4:
+ ldr r0, [sp, #0x4]
+ ldr r1, [sp, #0x8]
+ add r2, r7, r5
+ lsl r0, r0, #0x15
+ lsl r1, r1, #0x15
+ ldrb r2, [r2, #0x1d]
+ lsr r0, r0, #0x18
+ lsr r1, r1, #0x18
+ bl FUN_02017FFC
+ add r6, r0, #0x0
+ ldr r0, [sp, #0x0]
+ bl FUN_020187B0
+ str r0, [sp, #0x18]
+ ldr r1, [sp, #0x4]
+ mov r0, #0x7
+ and r1, r0
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ str r1, [sp, #0x14]
+ ldr r1, [sp, #0x8]
+ and r0, r1
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ add r1, r7, r5
+ str r0, [sp, #0x10]
+ ldrb r0, [r1, #0x1e]
+ cmp r0, #0x0
+ bne _0201B096
+ ldr r0, [r4, r5]
+ mov r1, #0x40
+ str r0, [sp, #0xc]
+ ldr r0, [r7, #0x0]
+ bl FUN_020169D8
+ add r4, r0, #0x0
+ lsl r0, r6, #0x1
+ ldr r1, [sp, #0xc]
+ mov r12, r0
+ ldrh r0, [r1, r0]
+ mov r3, #0x0
+ mov r6, #0xf
+ lsl r0, r0, #0x16
+ lsr r1, r0, #0x11
+ ldr r0, [sp, #0x18]
+ add r2, r0, r1
+_0201B042:
+ ldrb r5, [r2, r3]
+ lsl r0, r3, #0x1
+ add r1, r4, r0
+ and r5, r6
+ strb r5, [r4, r0]
+ ldrb r0, [r2, r3]
+ asr r0, r0, #0x4
+ strb r0, [r1, #0x1]
+ add r0, r3, #0x1
+ lsl r0, r0, #0x18
+ lsr r3, r0, #0x18
+ cmp r3, #0x20
+ blo _0201B042
+ ldr r2, [sp, #0xc]
+ mov r1, r12
+ ldrh r1, [r2, r1]
+ add r0, r7, #0x0
+ asr r2, r1, #0xa
+ mov r1, #0x3
+ and r1, r2
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ add r2, r4, #0x0
+ bl FUN_0201B118
+ ldr r0, [sp, #0x10]
+ lsl r1, r0, #0x3
+ ldr r0, [sp, #0x14]
+ add r0, r0, r1
+ ldrb r5, [r4, r0]
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ ldr r0, [sp, #0x30]
+ ldrh r2, [r0, #0x0]
+ mov r0, #0x1
+ add r1, r0, #0x0
+ lsl r1, r5
+ tst r1, r2
+ beq _0201B10C
+ add sp, #0x1c
+ pop {r4-r7, pc}
+_0201B096:
+ ldrb r0, [r1, #0x1c]
+ cmp r0, #0x1
+ beq _0201B0E0
+ ldr r0, [r7, #0x0]
+ ldr r4, [r4, r5]
+ mov r1, #0x40
+ bl FUN_020169D8
+ lsl r6, r6, #0x1
+ ldrh r1, [r4, r6]
+ add r5, r0, #0x0
+ lsl r1, r1, #0x16
+ lsr r2, r1, #0x10
+ ldr r1, [sp, #0x18]
+ add r1, r1, r2
+ mov r2, #0x40
+ blx memcpy
+ ldrh r1, [r4, r6]
+ add r0, r7, #0x0
+ asr r2, r1, #0xa
+ mov r1, #0x3
+ and r1, r2
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ add r2, r5, #0x0
+ bl FUN_0201B118
+ ldr r0, [sp, #0x10]
+ lsl r1, r0, #0x3
+ ldr r0, [sp, #0x14]
+ add r0, r0, r1
+ ldrb r4, [r5, r0]
+ add r0, r5, #0x0
+ bl FUN_02016A18
+ b _0201B0F4
+_0201B0E0:
+ ldr r1, [r4, r5]
+ ldr r0, [sp, #0x10]
+ ldrb r1, [r1, r6]
+ lsl r0, r0, #0x3
+ lsl r2, r1, #0x6
+ ldr r1, [sp, #0x14]
+ add r1, r1, r2
+ add r1, r0, r1
+ ldr r0, [sp, #0x18]
+ ldrb r4, [r0, r1]
+_0201B0F4:
+ ldr r0, [sp, #0x30]
+ ldrh r2, [r0, #0x0]
+ lsl r0, r2, #0x18
+ lsr r1, r0, #0x18
+ ldr r0, _0201B114 ; =0x0000FFFF
+_0201B0FE:
+ cmp r2, r0
+ beq _0201B10C
+ cmp r4, r1
+ bne _0201B0FE
+ add sp, #0x1c
+ mov r0, #0x1
+ pop {r4-r7, pc}
+_0201B10C:
+ mov r0, #0x0
+ add sp, #0x1c
+ pop {r4-r7, pc}
+ nop
+_0201B114: .word 0x0000FFFF
+
+ thumb_func_start FUN_0201B118
+FUN_0201B118: ; 0x0201B118
+ push {r3-r7, lr}
+ str r1, [sp, #0x0]
+ ldr r1, [sp, #0x0]
+ add r7, r2, #0x0
+ cmp r1, #0x0
+ beq _0201B1A4
+ ldr r0, [r0, #0x0]
+ mov r1, #0x40
+ bl FUN_020169D8
+ add r4, r0, #0x0
+ ldr r0, [sp, #0x0]
+ mov r1, #0x1
+ tst r0, r1
+ beq _0201B166
+ mov r0, #0x0
+ mov r5, #0x7
+_0201B13A:
+ lsl r3, r0, #0x3
+ add r2, r7, r3
+ mov r1, #0x0
+ add r3, r4, r3
+_0201B142:
+ sub r6, r5, r1
+ ldrb r6, [r2, r6]
+ strb r6, [r3, r1]
+ add r1, r1, #0x1
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ cmp r1, #0x8
+ blo _0201B142
+ add r0, r0, #0x1
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ cmp r0, #0x8
+ blo _0201B13A
+ add r0, r7, #0x0
+ add r1, r4, #0x0
+ mov r2, #0x40
+ blx memcpy
+_0201B166:
+ ldr r0, [sp, #0x0]
+ mov r1, #0x2
+ tst r0, r1
+ beq _0201B19E
+ mov r5, #0x0
+ mov r6, #0x7
+_0201B172:
+ lsl r0, r5, #0x3
+ add r3, r4, r0
+ sub r0, r6, r5
+ lsl r0, r0, #0x3
+ add r2, r7, r0
+ mov r1, #0x8
+_0201B17E:
+ ldrb r0, [r2, #0x0]
+ add r2, r2, #0x1
+ strb r0, [r3, #0x0]
+ add r3, r3, #0x1
+ sub r1, r1, #0x1
+ bne _0201B17E
+ add r0, r5, #0x1
+ lsl r0, r0, #0x18
+ lsr r5, r0, #0x18
+ cmp r5, #0x8
+ blo _0201B172
+ add r0, r7, #0x0
+ add r1, r4, #0x0
+ mov r2, #0x40
+ blx memcpy
+_0201B19E:
+ add r0, r4, #0x0
+ bl FUN_02016A18
+_0201B1A4:
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_0201B1A8
+FUN_0201B1A8: ; 0x0201B1A8
+ push {r3-r5, lr}
+ add r5, r3, #0x0
+ add r4, r2, #0x0
+ bl FUN_020161A4
+ str r0, [r5, #0x0]
+ blx FUN_020BC0FC
+ cmp r0, #0x0
+ beq _0201B1D2
+ bl FUN_0201B254
+ cmp r0, #0x0
+ bne _0201B1D2
+ ldr r0, [r5, #0x0]
+ ldr r1, [r0, #0x8]
+ blx DC_FlushRange
+ ldr r0, [r5, #0x0]
+ blx FUN_020BB59C
+_0201B1D2:
+ ldr r0, [r5, #0x0]
+ blx FUN_020BC13C
+ ldrh r1, [r0, #0xe]
+ add r1, r0, r1
+ ldr r1, [r1, #0xc]
+ add r0, r0, r1
+ str r0, [r4, #0x0]
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_0201B1E4
+FUN_0201B1E4: ; 0x0201B1E4
+ push {r3-r5, lr}
+ add r5, r1, #0x0
+ add r4, r0, #0x0
+ ldr r0, [r5, #0x0]
+ blx FUN_020BC0FC
+ cmp r0, #0x0
+ beq _0201B20A
+ bl FUN_0201B254
+ cmp r0, #0x0
+ bne _0201B20A
+ ldr r0, [r5, #0x0]
+ ldr r1, [r0, #0x8]
+ blx DC_FlushRange
+ ldr r0, [r5, #0x0]
+ blx FUN_020BB59C
+_0201B20A:
+ ldr r0, [r5, #0x0]
+ blx FUN_020BC13C
+ ldrh r1, [r0, #0xe]
+ add r1, r0, r1
+ ldr r1, [r1, #0xc]
+ add r0, r0, r1
+ str r0, [r4, #0x0]
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_0201B21C
+FUN_0201B21C: ; 0x0201B21C
+ push {r3-r5, lr}
+ add r4, r3, #0x0
+ add r5, r2, #0x0
+ ldr r3, [sp, #0x10]
+ add r2, r4, #0x0
+ bl FUN_0201B1A8
+ ldr r1, [r4, #0x0]
+ add r0, r5, #0x0
+ blx FUN_020B80B4
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_0201B234
+FUN_0201B234: ; 0x0201B234
+ push {r3-r5, lr}
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ add r0, r4, #0x0
+ add r1, r2, #0x0
+ bl FUN_0201B1E4
+ cmp r4, #0x0
+ bne _0201B24A
+ bl ErrorHandling
+_0201B24A:
+ ldr r1, [r4, #0x0]
+ add r0, r5, #0x0
+ blx FUN_020B80B4
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_0201B254
+FUN_0201B254: ; 0x0201B254
+ ldrh r2, [r0, #0x10]
+ mov r1, #0x1
+ tst r2, r1
+ bne _0201B262
+ ldrh r0, [r0, #0x20]
+ tst r0, r1
+ beq _0201B266
+_0201B262:
+ mov r0, #0x1
+ bx lr
+_0201B266:
+ mov r0, #0x0
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_0201B26C
+FUN_0201B26C: ; 0x0201B26C
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ add r0, r1, #0x0
+ add r4, r2, #0x0
+ add r6, r3, #0x0
+ blx FUN_020B8474
+ ldr r1, _0201B2A0 ; =0x021CEDD4
+ add r0, r4, #0x0
+ blx MI_Copy36B
+ ldr r1, _0201B2A4 ; =0x021CED98
+ mov r0, #0xa4
+ ldr r2, [r1, #0x7c]
+ bic r2, r0
+ add r0, r6, #0x0
+ str r2, [r1, #0x7c]
+ blx FUN_020B844C
+ blx FUN_020B849C
+ add r0, r5, #0x0
+ blx FUN_020BAC98
+ pop {r4-r6, pc}
+ nop
+_0201B2A0: .word 0x021CEDD4
+_0201B2A4: .word 0x021CED98
+
+ thumb_func_start FUN_0201B2A8
+FUN_0201B2A8: ; 0x0201B2A8
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ add r0, r1, #0x0
+ add r4, r2, #0x0
+ add r6, r3, #0x0
+ blx FUN_020B8474
+ ldr r1, _0201B2E4 ; =0x021CEDD4
+ add r0, r4, #0x0
+ blx MI_Copy36B
+ ldr r1, _0201B2E8 ; =0x021CED98
+ mov r0, #0xa4
+ ldr r2, [r1, #0x7c]
+ bic r2, r0
+ str r2, [r1, #0x7c]
+ add r0, r6, #0x0
+ blx FUN_020B844C
+ blx FUN_020B849C
+ mov r1, #0x0
+ ldr r0, [r5, #0x4]
+ add r2, r1, #0x0
+ mov r3, #0x1
+ blx FUN_020BAFB8
+ blx FUN_020BB394
+ pop {r4-r6, pc}
+ .balign 4
+_0201B2E4: .word 0x021CEDD4
+_0201B2E8: .word 0x021CED98
+
+ thumb_func_start FUN_0201B2EC
+FUN_0201B2EC: ; 0x0201B2EC
+ push {r3, lr}
+ sub sp, #0x8
+ mov r1, #0x4
+ str r1, [sp, #0x0]
+ ldr r1, _0201B30C ; =FUN_0201B314
+ mov r2, #0x2
+ str r1, [sp, #0x4]
+ mov r1, #0x0
+ add r3, r1, #0x0
+ bl FUN_02022318
+ ldr r1, _0201B310 ; =0x021C4D44
+ str r0, [r1, #0x0]
+ add sp, #0x8
+ pop {r3, pc}
+ nop
+_0201B30C: .word FUN_0201B314
+_0201B310: .word 0x021C4D44
+
+ thumb_func_start FUN_0201B314
+FUN_0201B314: ; 0x0201B314
+ push {r3, lr}
+ mov r0, #0x1
+ add r1, r0, #0x0
+ bl FUN_0201E6E4
+ ldr r0, _0201B380 ; =0x04000008
+ mov r1, #0x3
+ ldrh r2, [r0, #0x0]
+ bic r2, r1
+ mov r1, #0x1
+ orr r1, r2
+ strh r1, [r0, #0x0]
+ add r0, #0x58
+ ldrh r2, [r0, #0x0]
+ ldr r1, _0201B384 ; =0xFFFFCFFD
+ and r2, r1
+ strh r2, [r0, #0x0]
+ add r2, r1, #0x2
+ ldrh r3, [r0, #0x0]
+ add r1, r1, #0x2
+ and r3, r2
+ mov r2, #0x10
+ orr r2, r3
+ strh r2, [r0, #0x0]
+ ldrh r3, [r0, #0x0]
+ ldr r2, _0201B388 ; =0x0000CFFB
+ and r3, r2
+ strh r3, [r0, #0x0]
+ ldrh r3, [r0, #0x0]
+ sub r2, #0x1c
+ and r3, r1
+ mov r1, #0x8
+ orr r1, r3
+ strh r1, [r0, #0x0]
+ ldrh r1, [r0, #0x0]
+ and r1, r2
+ strh r1, [r0, #0x0]
+ mov r0, #0x0
+ add r1, r0, #0x0
+ add r2, r0, #0x0
+ add r3, r0, #0x0
+ blx G3X_SetFog
+ mov r0, #0x0
+ ldr r2, _0201B38C ; =0x00007FFF
+ add r1, r0, #0x0
+ mov r3, #0x3f
+ str r0, [sp, #0x0]
+ blx G3X_SetClearColor
+ ldr r1, _0201B390 ; =0xBFFF0000
+ ldr r0, _0201B394 ; =0x04000580
+ str r1, [r0, #0x0]
+ pop {r3, pc}
+ .balign 4
+_0201B380: .word 0x04000008
+_0201B384: .word 0xFFFFCFFD
+_0201B388: .word 0x0000CFFB
+_0201B38C: .word 0x00007FFF
+_0201B390: .word 0xBFFF0000
+_0201B394: .word 0x04000580
+
+ thumb_func_start FUN_0201B398
+FUN_0201B398: ; 0x0201B398
+ ldr r0, _0201B3A0 ; =0x021C4D44
+ ldr r3, _0201B3A4 ; =FUN_020223BC
+ ldr r0, [r0, #0x0]
+ bx r3
+ .balign 4
+_0201B3A0: .word 0x021C4D44
+_0201B3A4: .word FUN_020223BC
+
+ thumb_func_start FUN_0201B3A8
+FUN_0201B3A8: ; 0x0201B3A8
+ push {r4, lr}
+ add r4, r1, #0x0
+ blx FUN_020BC13C
+ cmp r4, #0x0
+ beq _0201B3BE
+ add r1, r4, #0x0
+ blx FUN_020B7790
+ mov r0, #0x1
+ pop {r4, pc}
+_0201B3BE:
+ mov r0, #0x0
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0201B3C4
+FUN_0201B3C4: ; 0x0201B3C4
+ push {r3-r7, lr}
+ sub sp, #0x10
+ add r5, r0, #0x0
+ bne _0201B3D2
+ add sp, #0x10
+ mov r0, #0x0
+ pop {r3-r7, pc}
+_0201B3D2:
+ mov r1, #0x0
+ str r1, [r5, #0x8]
+ mov r1, #0x1
+ str r1, [sp, #0x8]
+ str r1, [sp, #0x4]
+ str r1, [sp, #0x0]
+ cmp r5, #0x0
+ beq _0201B4D0
+ blx FUN_020B7E1C
+ add r6, r0, #0x0
+ add r0, r5, #0x0
+ blx FUN_020B7E10
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ blx FUN_020B7CE4
+ str r0, [sp, #0xc]
+ cmp r6, #0x0
+ beq _0201B412
+ ldr r3, _0201B4D8 ; =0x021064B8
+ mov r1, #0x0
+ ldr r3, [r3, #0x0]
+ add r0, r6, #0x0
+ add r2, r1, #0x0
+ blx r3
+ add r7, r0, #0x0
+ bne _0201B414
+ mov r0, #0x0
+ str r0, [sp, #0x8]
+ b _0201B414
+_0201B412:
+ mov r7, #0x0
+_0201B414:
+ cmp r4, #0x0
+ beq _0201B42E
+ ldr r3, _0201B4D8 ; =0x021064B8
+ add r0, r4, #0x0
+ ldr r3, [r3, #0x0]
+ mov r1, #0x1
+ mov r2, #0x0
+ blx r3
+ add r6, r0, #0x0
+ bne _0201B430
+ mov r0, #0x0
+ str r0, [sp, #0x4]
+ b _0201B430
+_0201B42E:
+ mov r6, #0x0
+_0201B430:
+ ldr r0, [sp, #0xc]
+ cmp r0, #0x0
+ beq _0201B450
+ ldr r3, _0201B4DC ; =0x021064C0
+ mov r1, #0x2
+ ldrh r2, [r5, #0x20]
+ lsl r1, r1, #0xe
+ ldr r3, [r3, #0x0]
+ and r1, r2
+ mov r2, #0x0
+ blx r3
+ add r4, r0, #0x0
+ bne _0201B452
+ mov r0, #0x0
+ str r0, [sp, #0x0]
+ b _0201B452
+_0201B450:
+ mov r4, #0x0
+_0201B452:
+ ldr r0, [sp, #0x8]
+ cmp r0, #0x0
+ bne _0201B46E
+ ldr r1, _0201B4E0 ; =0x021064BC
+ add r0, r7, #0x0
+ ldr r1, [r1, #0x0]
+ blx r1
+ cmp r0, #0x0
+ beq _0201B468
+ bl ErrorHandling
+_0201B468:
+ add sp, #0x10
+ mov r0, #0x0
+ pop {r3-r7, pc}
+_0201B46E:
+ ldr r0, [sp, #0x4]
+ cmp r0, #0x0
+ bne _0201B48A
+ ldr r1, _0201B4E0 ; =0x021064BC
+ add r0, r6, #0x0
+ ldr r1, [r1, #0x0]
+ blx r1
+ cmp r0, #0x0
+ beq _0201B484
+ bl ErrorHandling
+_0201B484:
+ add sp, #0x10
+ mov r0, #0x0
+ pop {r3-r7, pc}
+_0201B48A:
+ ldr r0, [sp, #0x0]
+ cmp r0, #0x0
+ bne _0201B4A6
+ ldr r1, _0201B4E4 ; =0x021064C4
+ add r0, r4, #0x0
+ ldr r1, [r1, #0x0]
+ blx r1
+ cmp r0, #0x0
+ beq _0201B4A0
+ bl ErrorHandling
+_0201B4A0:
+ add sp, #0x10
+ mov r0, #0x0
+ pop {r3-r7, pc}
+_0201B4A6:
+ add r0, r5, #0x0
+ add r1, r7, #0x0
+ add r2, r6, #0x0
+ blx FUN_020B7DFC
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ blx FUN_020B7CDC
+ ldr r1, [r5, #0x4]
+ add r0, r5, #0x0
+ blx DC_FlushRange
+ add r0, r5, #0x0
+ mov r1, #0x1
+ blx FUN_020B7D28
+ add r0, r5, #0x0
+ mov r1, #0x1
+ blx FUN_020B7C78
+_0201B4D0:
+ mov r0, #0x1
+ add sp, #0x10
+ pop {r3-r7, pc}
+ nop
+_0201B4D8: .word 0x021064B8
+_0201B4DC: .word 0x021064C0
+_0201B4E0: .word 0x021064BC
+_0201B4E4: .word 0x021064C4
+
+ thumb_func_start FUN_0201B4E8
+FUN_0201B4E8: ; 0x0201B4E8
+ str r0, [r1, #0x0]
+ add r0, r0, #0x4
+ str r0, [r1, #0x8]
+ str r0, [r1, #0x4]
+ mov r0, #0x0
+ str r0, [r1, #0xc]
+ str r0, [r1, #0x10]
+ str r0, [r1, #0x14]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_0201B4FC
+FUN_0201B4FC: ; 0x0201B4FC
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ ldrh r0, [r5, #0x0]
+ mov r7, #0x0
+ cmp r0, #0x0
+ ble _0201B52A
+ add r4, r7, #0x0
+ add r6, r7, #0x0
+_0201B50C:
+ ldr r1, [r5, #0x24]
+ add r0, r5, #0x0
+ add r1, r1, r4
+ bl FUN_0201B4E8
+ ldr r0, [r5, #0x24]
+ add r7, r7, #0x1
+ add r1, r0, r4
+ ldr r0, [r5, #0x20]
+ add r4, #0x1c
+ str r1, [r0, r6]
+ ldrh r0, [r5, #0x0]
+ add r6, r6, #0x4
+ cmp r7, r0
+ blt _0201B50C
+_0201B52A:
+ mov r0, #0x0
+ strh r0, [r5, #0x2]
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_0201B530
+FUN_0201B530: ; 0x0201B530
+ ldrh r3, [r0, #0x2]
+ ldrh r1, [r0, #0x0]
+ cmp r3, r1
+ bne _0201B53C
+ mov r0, #0x0
+ bx lr
+_0201B53C:
+ ldr r2, [r0, #0x20]
+ lsl r1, r3, #0x2
+ ldr r2, [r2, r1]
+ add r1, r3, #0x1
+ strh r1, [r0, #0x2]
+ add r0, r2, #0x0
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_0201B54C
+FUN_0201B54C: ; 0x0201B54C
+ ldrh r2, [r0, #0x2]
+ cmp r2, #0x0
+ bne _0201B556
+ mov r0, #0x0
+ bx lr
+_0201B556:
+ str r0, [r1, #0x0]
+ add r2, r0, #0x4
+ str r2, [r1, #0x8]
+ str r2, [r1, #0x4]
+ mov r2, #0x0
+ str r2, [r1, #0xc]
+ str r2, [r1, #0x10]
+ str r2, [r1, #0x14]
+ ldrh r2, [r0, #0x2]
+ sub r2, r2, #0x1
+ strh r2, [r0, #0x2]
+ ldr r2, [r0, #0x20]
+ ldrh r0, [r0, #0x2]
+ lsl r0, r0, #0x2
+ str r1, [r2, r0]
+ mov r0, #0x1
+ bx lr
+
+ thumb_func_start FUN_0201B578
+FUN_0201B578: ; 0x0201B578
+ lsl r0, r0, #0x5
+ add r0, #0x34
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_0201B580
+FUN_0201B580: ; 0x0201B580
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ bne _0201B58C
+ bl ErrorHandling
+_0201B58C:
+ add r1, r4, #0x0
+ add r1, #0x34
+ lsl r0, r5, #0x2
+ str r1, [r4, #0x20]
+ add r0, r1, r0
+ str r0, [r4, #0x24]
+ strh r5, [r4, #0x0]
+ mov r0, #0x0
+ strh r0, [r4, #0x2]
+ str r0, [r4, #0x28]
+ add r0, r4, #0x0
+ bl FUN_0201B5AC
+ add r0, r4, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_0201B5AC
+FUN_0201B5AC: ; 0x0201B5AC
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl FUN_0201B4FC
+ str r4, [r4, #0x4]
+ add r0, r4, #0x4
+ str r0, [r4, #0xc]
+ str r0, [r4, #0x8]
+ mov r0, #0x0
+ str r0, [r4, #0x10]
+ str r0, [r4, #0x14]
+ str r0, [r4, #0x18]
+ ldr r0, [r4, #0xc]
+ str r0, [r4, #0x2c]
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0201B5CC
+FUN_0201B5CC: ; 0x0201B5CC
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ ldr r0, [r5, #0x28]
+ cmp r0, #0x0
+ bne _0201B608
+ ldr r1, [r5, #0xc]
+ add r4, r5, #0x4
+ str r1, [r5, #0x2c]
+ cmp r1, r4
+ beq _0201B604
+ mov r6, #0x0
+_0201B5E2:
+ ldr r0, [r1, #0x8]
+ str r0, [r5, #0x30]
+ ldr r0, [r5, #0x2c]
+ ldr r1, [r0, #0x18]
+ cmp r1, #0x0
+ bne _0201B5FA
+ ldr r2, [r0, #0x14]
+ cmp r2, #0x0
+ beq _0201B5FC
+ ldr r1, [r0, #0x10]
+ blx r2
+ b _0201B5FC
+_0201B5FA:
+ str r6, [r0, #0x18]
+_0201B5FC:
+ ldr r1, [r5, #0x30]
+ str r1, [r5, #0x2c]
+ cmp r1, r4
+ bne _0201B5E2
+_0201B604:
+ mov r0, #0x0
+ str r0, [r1, #0x14]
+_0201B608:
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_0201B60C
+FUN_0201B60C: ; 0x0201B60C
+ push {r3-r5, lr}
+ add r4, r0, #0x0
+ mov r5, #0x1
+ str r5, [r4, #0x28]
+ bl FUN_0201B620
+ mov r1, #0x0
+ str r1, [r4, #0x28]
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_0201B620
+FUN_0201B620: ; 0x0201B620
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ add r6, r1, #0x0
+ add r7, r2, #0x0
+ add r4, r3, #0x0
+ bl FUN_0201B530
+ cmp r0, #0x0
+ bne _0201B636
+ mov r0, #0x0
+ pop {r3-r7, pc}
+_0201B636:
+ str r4, [r0, #0xc]
+ str r7, [r0, #0x10]
+ str r6, [r0, #0x14]
+ ldr r2, [r5, #0x2c]
+ ldr r1, [r2, #0x14]
+ cmp r1, #0x0
+ beq _0201B656
+ ldr r1, [r2, #0xc]
+ cmp r1, r4
+ bhi _0201B650
+ mov r1, #0x1
+ str r1, [r0, #0x18]
+ b _0201B65A
+_0201B650:
+ mov r1, #0x0
+ str r1, [r0, #0x18]
+ b _0201B65A
+_0201B656:
+ mov r1, #0x0
+ str r1, [r0, #0x18]
+_0201B65A:
+ ldr r3, [r5, #0xc]
+ add r2, r5, #0x4
+ cmp r3, r2
+ beq _0201B686
+ ldr r4, [r0, #0xc]
+_0201B664:
+ ldr r1, [r3, #0xc]
+ cmp r1, r4
+ bls _0201B680
+ ldr r1, [r3, #0x4]
+ str r1, [r0, #0x4]
+ str r3, [r0, #0x8]
+ ldr r1, [r3, #0x4]
+ str r0, [r1, #0x8]
+ str r0, [r3, #0x4]
+ ldr r1, [r5, #0x30]
+ cmp r3, r1
+ bne _0201B69E
+ str r0, [r5, #0x30]
+ pop {r3-r7, pc}
+_0201B680:
+ ldr r3, [r3, #0x8]
+ cmp r3, r2
+ bne _0201B664
+_0201B686:
+ ldr r2, [r5, #0x30]
+ add r1, r5, #0x4
+ cmp r2, r1
+ bne _0201B690
+ str r0, [r5, #0x30]
+_0201B690:
+ ldr r1, [r5, #0x8]
+ str r1, [r0, #0x4]
+ add r1, r5, #0x4
+ str r1, [r0, #0x8]
+ ldr r1, [r5, #0x8]
+ str r0, [r1, #0x8]
+ str r0, [r5, #0x8]
+_0201B69E:
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_0201B6A0
+FUN_0201B6A0: ; 0x0201B6A0
+ add r1, r0, #0x0
+ ldr r2, [r1, #0x0]
+ ldr r0, [r2, #0x30]
+ cmp r0, r1
+ bne _0201B6AE
+ ldr r0, [r1, #0x8]
+ str r0, [r2, #0x30]
+_0201B6AE:
+ ldr r2, [r1, #0x8]
+ ldr r0, [r1, #0x4]
+ ldr r3, _0201B6C0 ; =0x0201B54D
+ str r2, [r0, #0x8]
+ ldr r2, [r1, #0x4]
+ ldr r0, [r1, #0x8]
+ str r2, [r0, #0x4]
+ ldr r0, [r1, #0x0]
+ bx r3
+ .balign 4
+_0201B6C0: .word 0x0201B54D
+
+ thumb_func_start FUN_0201B6C4
+FUN_0201B6C4: ; 0x0201B6C4
+ str r1, [r0, #0x14]
+ bx lr
+
+ thumb_func_start FUN_0201B6C8
+FUN_0201B6C8: ; 0x0201B6C8
+ ldr r0, [r0, #0x10]
+ bx lr
+
+ thumb_func_start FUN_0201B6CC
+FUN_0201B6CC: ; 0x0201B6CC
+ ldr r0, [r0, #0xc]
+ bx lr
+
+ thumb_func_start FUN_0201B6D0
+FUN_0201B6D0: ; 0x0201B6D0
+ push {r4-r7, lr}
+ sub sp, #0x34
+ add r6, r1, #0x0
+ add r4, r0, #0x0
+ add r5, r2, #0x0
+ ldmia r6!, {r0-r1}
+ add r2, sp, #0x1c
+ stmia r2!, {r0-r1}
+ ldr r0, [r6, #0x0]
+ add r4, #0x14
+ str r0, [r2, #0x0]
+ mov r0, #0x20
+ ldrsh r0, [r4, r0]
+ add r7, r3, #0x0
+ mov r1, #0x1a
+ str r0, [sp, #0x0]
+ mov r0, #0x22
+ ldrsh r0, [r4, r0]
+ mov r2, #0x1c
+ mov r3, #0x1e
+ str r0, [sp, #0x4]
+ add r0, sp, #0x28
+ str r0, [sp, #0x8]
+ mov r0, #0x18
+ ldrsh r0, [r4, r0]
+ ldrsh r1, [r4, r1]
+ ldrsh r2, [r4, r2]
+ ldrsh r3, [r4, r3]
+ bl FUN_0201B808
+ add r0, sp, #0x1c
+ blx FUN_020B8474
+ ldr r1, _0201B764 ; =0x021CEDD4
+ add r0, r5, #0x0
+ blx MI_Copy36B
+ ldr r1, _0201B768 ; =0x021CED98
+ mov r0, #0xa4
+ ldr r2, [r1, #0x7c]
+ bic r2, r0
+ add r0, r7, #0x0
+ str r2, [r1, #0x7c]
+ blx FUN_020B844C
+ blx FUN_020B849C
+ mov r1, #0x0
+ mov r0, #0x11
+ add r2, r1, #0x0
+ blx FUN_020BB1C0
+ ldr r0, [r4, #0x24]
+ add r1, sp, #0x10
+ str r0, [sp, #0x10]
+ str r0, [sp, #0x14]
+ str r0, [sp, #0x18]
+ mov r0, #0x1b
+ mov r2, #0x3
+ blx FUN_020BB1C0
+ add r0, sp, #0x28
+ bl FUN_0201B82C
+ add r4, r0, #0x0
+ mov r2, #0x1
+ mov r0, #0x12
+ add r1, sp, #0xc
+ str r2, [sp, #0xc]
+ blx FUN_020BB1C0
+ add r0, r4, #0x0
+ add sp, #0x34
+ pop {r4-r7, pc}
+ .balign 4
+_0201B764: .word 0x021CEDD4
+_0201B768: .word 0x021CED98
+
+ thumb_func_start FUN_0201B76C
+FUN_0201B76C: ; 0x0201B76C
+ push {r3-r5, lr}
+ sub sp, #0x28
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ mov r0, #0x2
+ ldrsh r0, [r4, r0]
+ str r0, [sp, #0x0]
+ mov r0, #0x4
+ ldrsh r0, [r4, r0]
+ str r0, [sp, #0x4]
+ add r0, sp, #0x1c
+ str r0, [sp, #0x8]
+ mov r0, #0x0
+ ldrsh r3, [r4, r0]
+ add r1, r0, #0x0
+ add r2, r0, #0x0
+ bl FUN_0201B808
+ add r0, r5, #0x0
+ blx FUN_020B8474
+ blx FUN_020B849C
+ mov r1, #0x0
+ mov r0, #0x11
+ add r2, r1, #0x0
+ blx FUN_020BB1C0
+ ldr r0, [r4, #0x10]
+ lsl r2, r0, #0xc
+ ldr r0, [r4, #0xc]
+ lsl r1, r0, #0xc
+ ldr r0, [r4, #0x8]
+ lsl r0, r0, #0xc
+ str r0, [sp, #0x10]
+ str r1, [sp, #0x14]
+ str r2, [sp, #0x18]
+ mov r0, #0x1b
+ add r1, sp, #0x10
+ mov r2, #0x3
+ blx FUN_020BB1C0
+ add r0, sp, #0x1c
+ bl FUN_0201B82C
+ add r4, r0, #0x0
+ mov r2, #0x1
+ mov r0, #0x12
+ add r1, sp, #0xc
+ str r2, [sp, #0xc]
+ blx FUN_020BB1C0
+ add r0, r4, #0x0
+ add sp, #0x28
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_0201B7DC
+FUN_0201B7DC: ; 0x0201B7DC
+ push {r4-r6, lr}
+ add r6, r3, #0x0
+ add r4, r2, #0x0
+ add r2, r6, #0x0
+ add r5, r1, #0x0
+ add r1, r6, #0x0
+ add r2, #0x8
+ bl FUN_0201B880
+ add r2, r6, #0x0
+ add r0, r5, #0x0
+ add r1, r6, #0x2
+ add r2, #0xc
+ bl FUN_0201B880
+ add r1, r6, #0x4
+ add r6, #0x10
+ add r0, r4, #0x0
+ add r2, r6, #0x0
+ bl FUN_0201B880
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_0201B808
+FUN_0201B808: ; 0x0201B808
+ push {r3-r4}
+ ldr r4, [sp, #0x10]
+ strh r0, [r4, #0x0]
+ strh r1, [r4, #0x2]
+ ldr r1, _0201B828 ; =0xFFFFFFF8
+ strh r2, [r4, #0x4]
+ strh r3, [r4, #0x6]
+ add r1, sp
+ mov r0, #0x10
+ ldrsh r0, [r1, r0]
+ strh r0, [r4, #0x8]
+ mov r0, #0x14
+ ldrsh r0, [r1, r0]
+ strh r0, [r4, #0xa]
+ pop {r3-r4}
+ bx lr
+ .balign 4
+_0201B828: .word 0xFFFFFFF8
+
+ thumb_func_start FUN_0201B82C
+FUN_0201B82C: ; 0x0201B82C
+ push {r3-r4, lr}
+ sub sp, #0xc
+ add r4, r0, #0x0
+ ldr r0, _0201B87C ; =0x000030C1
+ mov r2, #0x1
+ str r0, [sp, #0x4]
+ mov r0, #0x29
+ add r1, sp, #0x4
+ str r2, [sp, #0x8]
+ blx FUN_020BB1C0
+ mov r0, #0x0
+ str r0, [sp, #0x0]
+ mov r0, #0x40
+ add r1, sp, #0x0
+ mov r2, #0x1
+ blx FUN_020BB1C0
+ mov r1, #0x0
+ mov r0, #0x41
+ add r2, r1, #0x0
+ blx FUN_020BB1C0
+ mov r0, #0x70
+ add r1, r4, #0x0
+ mov r2, #0x3
+ blx FUN_020BB1C0
+ blx FUN_020BB394
+ add r4, sp, #0x8
+_0201B86A:
+ add r0, r4, #0x0
+ blx G3X_GetBoxTestResult
+ cmp r0, #0x0
+ bne _0201B86A
+ ldr r0, [sp, #0x8]
+ add sp, #0xc
+ pop {r3-r4, pc}
+ nop
+_0201B87C: .word 0x000030C1
+
+ thumb_func_start FUN_0201B880
+FUN_0201B880: ; 0x0201B880
+ push {r3-r4}
+ ldr r4, _0201B8B4 ; =0x00007FFF
+ mov r3, #0x0
+ cmp r0, r4
+ blo _0201B896
+_0201B88A:
+ add r3, r3, #0x1
+ lsl r3, r3, #0x18
+ lsr r0, r0, #0x1
+ lsr r3, r3, #0x18
+ cmp r0, r4
+ bhs _0201B88A
+_0201B896:
+ strh r0, [r1, #0x0]
+ mov r0, #0x1
+ mov r1, #0x0
+ str r0, [r2, #0x0]
+ cmp r3, #0x0
+ ble _0201B8AE
+_0201B8A2:
+ ldr r0, [r2, #0x0]
+ add r1, r1, #0x1
+ lsl r0, r0, #0x1
+ str r0, [r2, #0x0]
+ cmp r1, r3
+ blt _0201B8A2
+_0201B8AE:
+ pop {r3-r4}
+ bx lr
+ nop
+_0201B8B4: .word 0x00007FFF
+
+ thumb_func_start FUN_0201B8B8
+FUN_0201B8B8: ; 0x0201B8B8
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldrh r1, [r4, #0x0]
+ ldr r0, _0201B8DC ; =0x0000FFFE
+ cmp r1, r0
+ beq _0201B8C8
+ bl ErrorHandling
+_0201B8C8:
+ ldrh r1, [r4, #0x0]
+ ldr r0, _0201B8DC ; =0x0000FFFE
+ cmp r1, r0
+ bne _0201B8D8
+ ldrh r0, [r4, #0x4]
+ add r1, r4, #0x6
+ lsl r0, r0, #0x1
+ add r4, r1, r0
+_0201B8D8:
+ add r0, r4, #0x0
+ pop {r4, pc}
+ .balign 4
+_0201B8DC: .word 0x0000FFFE
+
+ thumb_func_start FUN_0201B8E0
+FUN_0201B8E0: ; 0x0201B8E0
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldrh r1, [r4, #0x0]
+ ldr r0, _0201B8F4 ; =0x0000FFFE
+ cmp r1, r0
+ beq _0201B8F0
+ bl ErrorHandling
+_0201B8F0:
+ ldrh r0, [r4, #0x2]
+ pop {r4, pc}
+ .balign 4
+_0201B8F4: .word 0x0000FFFE
+
+ thumb_func_start FUN_0201B8F8
+FUN_0201B8F8: ; 0x0201B8F8
+ push {r3, lr}
+ bl FUN_0201B8E0
+ mov r1, #0xff
+ lsl r1, r1, #0x8
+ and r1, r0
+ mov r0, #0x1
+ lsl r0, r0, #0x8
+ cmp r1, r0
+ bne _0201B910
+ mov r0, #0x1
+ pop {r3, pc}
+_0201B910:
+ mov r0, #0x0
+ pop {r3, pc}
+
+ thumb_func_start FUN_0201B914
+FUN_0201B914: ; 0x0201B914
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ ldrh r1, [r5, #0x0]
+ ldr r0, _0201B938 ; =0x0000FFFE
+ cmp r1, r0
+ beq _0201B926
+ bl ErrorHandling
+_0201B926:
+ ldrh r0, [r5, #0x4]
+ cmp r4, r0
+ blo _0201B930
+ bl ErrorHandling
+_0201B930:
+ lsl r0, r4, #0x1
+ add r0, r5, r0
+ ldrh r0, [r0, #0x6]
+ pop {r3-r5, pc}
+ .balign 4
+_0201B938: .word 0x0000FFFE
+
+ thumb_func_start FUN_0201B93C
+FUN_0201B93C: ; 0x0201B93C
+ mov r1, #0x5a
+ lsl r1, r1, #0x2
+ cmp r0, r1
+ blo _0201B948
+ mov r0, #0x0
+ bx lr
+_0201B948:
+ lsl r1, r0, #0x2
+ ldr r0, _0201B950 ; =0x020EDF50
+ ldr r0, [r0, r1]
+ bx lr
+ .balign 4
+_0201B950: .word 0x020EDF50
+
+ thumb_func_start FUN_0201B954
+FUN_0201B954: ; 0x0201B954
+ mov r1, #0x5a
+ lsl r1, r1, #0x2
+ cmp r0, r1
+ blo _0201B960
+ mov r0, #0x0
+ bx lr
+_0201B960:
+ add r0, #0x5a
+ lsl r1, r0, #0x2
+ ldr r0, _0201B96C ; =0x020EDF50
+ ldr r0, [r0, r1]
+ bx lr
+ nop
+_0201B96C: .word 0x020EDF50
+
+ thumb_func_start FUN_0201B970
+FUN_0201B970: ; 0x0201B970
+ push {r3, lr}
+ mov r1, #0x5a
+ lsl r1, r1, #0x2
+ blx _s32_div_f
+ ldr r0, _0201B984 ; =0x020EDF50
+ lsl r1, r1, #0x2
+ ldr r0, [r0, r1]
+ pop {r3, pc}
+ nop
+_0201B984: .word 0x020EDF50
+
+ thumb_func_start FUN_0201B988
+FUN_0201B988: ; 0x0201B988
+ push {r3, lr}
+ mov r1, #0x5a
+ lsl r1, r1, #0x2
+ blx _s32_div_f
+ add r1, #0x5a
+ ldr r0, _0201B99C ; =0x020EDF50
+ lsl r1, r1, #0x2
+ ldr r0, [r0, r1]
+ pop {r3, pc}
+ .balign 4
+_0201B99C: .word 0x020EDF50
+
+ thumb_func_start FUN_0201B9A0
+FUN_0201B9A0: ; 0x0201B9A0
+ push {r3, lr}
+ mov r1, #0x5a
+ lsl r1, r1, #0x2
+ blx _s32_div_f
+ ldr r0, _0201B9B4 ; =0x020EDC7E
+ lsl r1, r1, #0x1
+ ldrh r0, [r0, r1]
+ pop {r3, pc}
+ nop
+_0201B9B4: .word 0x020EDC7E
+
+ thumb_func_start FUN_0201B9B8
+FUN_0201B9B8: ; 0x0201B9B8
+ push {r3, lr}
+ lsl r0, r0, #0x4
+ mov r1, #0x5a
+ lsr r0, r0, #0x10
+ lsl r1, r1, #0x2
+ blx _s32_div_f
+ ldr r0, _0201B9D0 ; =0x020EDF50
+ lsl r1, r1, #0x2
+ ldr r0, [r0, r1]
+ pop {r3, pc}
+ nop
+_0201B9D0: .word 0x020EDF50
+
+ thumb_func_start FUN_0201B9D4
+FUN_0201B9D4: ; 0x0201B9D4
+ ldr r0, _0201B9DC ; =0x021C4D48
+ ldr r0, [r0, #0x0]
+ bx lr
+ nop
+_0201B9DC: .word 0x021C4D48
+
+ thumb_func_start FUN_0201B9E0
+FUN_0201B9E0: ; 0x0201B9E0
+ ldr r1, _0201B9E8 ; =0x021C4D48
+ str r0, [r1, #0x0]
+ bx lr
+ nop
+_0201B9E8: .word 0x021C4D48
+
+ thumb_func_start FUN_0201B9EC
+FUN_0201B9EC: ; 0x0201B9EC
+ ldr r1, _0201BA04 ; =0x021C4D48
+ ldr r0, _0201BA08 ; =0x41C64E6D
+ ldr r2, [r1, #0x0]
+ add r3, r2, #0x0
+ mul r3, r0
+ ldr r0, _0201BA0C ; =0x00006073
+ add r0, r3, r0
+ str r0, [r1, #0x0]
+ lsr r0, r0, #0x10
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ bx lr
+ .balign 4
+_0201BA04: .word 0x021C4D48
+_0201BA08: .word 0x41C64E6D
+_0201BA0C: .word 0x00006073
+
+ thumb_func_start FUN_0201BA10
+FUN_0201BA10: ; 0x0201BA10
+ ldr r1, _0201BA18 ; =0x6C078965
+ mul r1, r0
+ add r0, r1, #0x1
+ bx lr
+ .balign 4
+_0201BA18: .word 0x6C078965
+
+ thumb_func_start FUN_0201BA1C
+FUN_0201BA1C: ; 0x0201BA1C
+ push {r4-r5}
+ ldr r1, _0201BA50 ; =0x021C4D48
+ mov r4, #0x27
+ str r0, [r1, #0x4]
+ ldr r1, _0201BA54 ; =0x02105BA8
+ mov r0, #0x1
+ str r0, [r1, #0x0]
+ ldr r1, _0201BA58 ; =0x021C4D50
+ ldr r3, _0201BA5C ; =0x6C078965
+ lsl r4, r4, #0x4
+_0201BA30:
+ sub r2, r1, #0x4
+ ldr r5, [r2, #0x0]
+ lsr r2, r5, #0x1e
+ eor r2, r5
+ add r5, r2, #0x0
+ mul r5, r3
+ add r2, r0, r5
+ add r0, r0, #0x1
+ stmia r1!, {r2}
+ cmp r0, r4
+ blt _0201BA30
+ ldr r1, _0201BA54 ; =0x02105BA8
+ str r0, [r1, #0x0]
+ pop {r4-r5}
+ bx lr
+ nop
+_0201BA50: .word 0x021C4D48
+_0201BA54: .word 0x02105BA8
+_0201BA58: .word 0x021C4D50
+_0201BA5C: .word 0x6C078965
+
+ thumb_func_start FUN_0201BA60
+FUN_0201BA60: ; 0x0201BA60
+ push {r3-r7, lr}
+ ldr r0, _0201BB44 ; =0x02105BA8
+ ldr r1, [r0, #0x0]
+ mov r0, #0x27
+ lsl r0, r0, #0x4
+ cmp r1, r0
+ blt _0201BB18
+ add r0, r0, #0x1
+ cmp r1, r0
+ bne _0201BA7A
+ ldr r0, _0201BB48 ; =0x00001571
+ bl FUN_0201BA1C
+_0201BA7A:
+ ldr r4, _0201BB4C ; =0x021C4D4C
+ ldr r1, _0201BB50 ; =0x02105BAC
+ ldr r5, _0201BB54 ; =0x7FFFFFFF
+ ldr r6, _0201BB58 ; =0x00000634
+ mov r0, #0x0
+_0201BA84:
+ mov r2, #0x2
+ ldr r3, [r4, #0x0]
+ lsl r2, r2, #0x1e
+ and r3, r2
+ ldr r2, [r4, #0x4]
+ add r0, r0, #0x1
+ and r2, r5
+ orr r3, r2
+ lsr r7, r3, #0x1
+ lsl r3, r3, #0x1f
+ ldr r2, [r4, r6]
+ lsr r3, r3, #0x1d
+ ldr r3, [r1, r3]
+ eor r2, r7
+ eor r2, r3
+ stmia r4!, {r2}
+ cmp r0, #0xe3
+ blt _0201BA84
+ ldr r1, _0201BB5C ; =0x0000026F
+ cmp r0, r1
+ bge _0201BAE4
+ ldr r2, _0201BB4C ; =0x021C4D4C
+ lsl r1, r0, #0x2
+ add r1, r2, r1
+ mov r2, #0xe3
+ ldr r4, _0201BB50 ; =0x02105BAC
+ ldr r3, _0201BB5C ; =0x0000026F
+ lsl r2, r2, #0x2
+_0201BABC:
+ mov r5, #0x2
+ ldr r6, [r1, #0x0]
+ lsl r5, r5, #0x1e
+ and r5, r6
+ ldr r7, [r1, #0x4]
+ ldr r6, _0201BB54 ; =0x7FFFFFFF
+ add r0, r0, #0x1
+ and r6, r7
+ orr r6, r5
+ lsr r5, r6, #0x1
+ sub r7, r1, r2
+ lsl r6, r6, #0x1f
+ ldr r7, [r7, #0x0]
+ lsr r6, r6, #0x1d
+ ldr r6, [r4, r6]
+ eor r5, r7
+ eor r5, r6
+ stmia r1!, {r5}
+ cmp r0, r3
+ blt _0201BABC
+_0201BAE4:
+ ldr r2, _0201BB60 ; =0x021C56C8
+ mov r0, #0x2
+ ldr r1, [r2, #0x40]
+ lsl r0, r0, #0x1e
+ add r3, r1, #0x0
+ ldr r1, _0201BB64 ; =0x021C4D48
+ and r3, r0
+ ldr r1, [r1, #0x4]
+ sub r0, r0, #0x1
+ and r0, r1
+ add r4, r3, #0x0
+ orr r4, r0
+ ldr r0, _0201BB68 ; =0x021C5348
+ ldr r1, [r0, #0x34]
+ lsr r0, r4, #0x1
+ add r3, r1, #0x0
+ eor r3, r0
+ lsl r0, r4, #0x1f
+ lsr r1, r0, #0x1d
+ ldr r0, _0201BB50 ; =0x02105BAC
+ ldr r0, [r0, r1]
+ mov r1, #0x0
+ eor r0, r3
+ str r0, [r2, #0x40]
+ ldr r0, _0201BB44 ; =0x02105BA8
+ str r1, [r0, #0x0]
+_0201BB18:
+ ldr r0, _0201BB44 ; =0x02105BA8
+ ldr r2, [r0, #0x0]
+ add r1, r2, #0x1
+ str r1, [r0, #0x0]
+ ldr r0, _0201BB4C ; =0x021C4D4C
+ lsl r1, r2, #0x2
+ ldr r1, [r0, r1]
+ lsr r0, r1, #0xb
+ add r2, r1, #0x0
+ eor r2, r0
+ ldr r0, _0201BB6C ; =0x9D2C5680
+ lsl r1, r2, #0x7
+ and r0, r1
+ eor r2, r0
+ ldr r0, _0201BB70 ; =0xEFC60000
+ lsl r1, r2, #0xf
+ and r0, r1
+ add r1, r2, #0x0
+ eor r1, r0
+ lsr r0, r1, #0x12
+ eor r0, r1
+ pop {r3-r7, pc}
+ .balign 4
+_0201BB44: .word 0x02105BA8
+_0201BB48: .word 0x00001571
+_0201BB4C: .word 0x021C4D4C
+_0201BB50: .word 0x02105BAC
+_0201BB54: .word 0x7FFFFFFF
+_0201BB58: .word 0x00000634
+_0201BB5C: .word 0x0000026F
+_0201BB60: .word 0x021C56C8
+_0201BB64: .word 0x021C4D48
+_0201BB68: .word 0x021C5348
+_0201BB6C: .word 0x9D2C5680
+_0201BB70: .word 0xEFC60000
+
+ thumb_func_start FUN_0201BB74
+FUN_0201BB74: ; 0x0201BB74
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ add r0, sp, #0x0
+ ldrb r0, [r0, #0x10]
+ add r4, r2, #0x0
+ add r6, r3, #0x0
+ cmp r0, #0x1
+ bne _0201BB8E
+ ldr r0, _0201BBC8 ; =0x0000FFFF
+ mul r0, r1
+ lsl r0, r0, #0x8
+ lsr r1, r0, #0x10
+ b _0201BBA2
+_0201BB8E:
+ cmp r0, #0x2
+ bne _0201BBA2
+ ldr r0, _0201BBC8 ; =0x0000FFFF
+ mul r0, r1
+ mov r1, #0x5a
+ lsl r1, r1, #0x2
+ blx _u32_div_f
+ lsl r0, r0, #0x10
+ lsr r1, r0, #0x10
+_0201BBA2:
+ asr r0, r1, #0x4
+ lsl r3, r0, #0x1
+ lsl r1, r3, #0x1
+ ldr r2, _0201BBCC ; =0x020FFA38
+ add r3, r3, #0x1
+ lsl r3, r3, #0x1
+ ldrsh r1, [r2, r1]
+ ldrsh r2, [r2, r3]
+ add r0, r5, #0x0
+ bl FUN_020C3EA4
+ add r0, r5, #0x0
+ add r1, r5, #0x0
+ add r2, r4, #0x0
+ add r3, r6, #0x0
+ blx FUN_020C3EB0
+ pop {r4-r6, pc}
+ nop
+_0201BBC8: .word 0x0000FFFF
+_0201BBCC: .word 0x020FFA38
+
+ thumb_func_start FUN_0201BBD0
+FUN_0201BBD0: ; 0x0201BBD0
+ push {r3-r7, lr}
+ sub sp, #0x38
+ lsl r5, r0, #0xc
+ lsl r4, r1, #0xc
+ mov r1, #0x0
+ lsl r0, r2, #0xc
+ lsl r6, r3, #0xc
+ str r1, [sp, #0x34]
+ str r0, [sp, #0x0]
+ str r0, [sp, #0x20]
+ str r1, [sp, #0x28]
+ str r1, [sp, #0x8]
+ str r1, [sp, #0xc]
+ asr r1, r5, #0x1f
+ add r0, r5, #0x0
+ asr r3, r6, #0x1f
+ add r2, r6, #0x0
+ str r5, [sp, #0x2c]
+ str r4, [sp, #0x30]
+ str r6, [sp, #0x24]
+ blx _ll_mul
+ str r0, [sp, #0x4]
+ add r2, r4, #0x0
+ ldr r0, [sp, #0x20]
+ add r7, r1, #0x0
+ asr r1, r0, #0x1f
+ asr r3, r2, #0x1f
+ blx _ll_mul
+ mov r2, #0x2
+ ldr r3, [sp, #0x4]
+ lsl r2, r2, #0xa
+ add r3, r3, r2
+ ldr r2, _0201BC80 ; =0x00000000
+ str r4, [sp, #0x2c]
+ adc r7, r2
+ lsl r2, r7, #0x14
+ lsr r3, r3, #0xc
+ orr r3, r2
+ mov r2, #0x2
+ lsl r2, r2, #0xa
+ add r0, r0, r2
+ ldr r2, _0201BC80 ; =0x00000000
+ str r5, [sp, #0x30]
+ adc r1, r2
+ lsl r1, r1, #0x14
+ lsr r0, r0, #0xc
+ orr r0, r1
+ sub r2, r3, r0
+ ldr r1, [sp, #0x8]
+ ldr r0, [sp, #0xc]
+ str r2, [sp, #0x10]
+ add r0, r1, r0
+ add r7, r2, r0
+ mov r0, #0x0
+ str r0, [sp, #0x34]
+ add r0, sp, #0x2c
+ add r1, sp, #0x14
+ blx VEC_Normalize
+ mov r1, #0x0
+ ldr r0, [sp, #0x0]
+ str r1, [sp, #0x34]
+ str r0, [sp, #0x20]
+ str r1, [sp, #0x28]
+ add r0, sp, #0x20
+ add r1, sp, #0x2c
+ add r2, sp, #0x8
+ str r5, [sp, #0x2c]
+ str r4, [sp, #0x30]
+ str r6, [sp, #0x24]
+ blx VEC_Subtract
+ add r0, sp, #0x14
+ add r1, sp, #0x8
+ blx VEC_DotProduct
+ asr r0, r0, #0xc
+ bpl _0201BC72
+ neg r0, r0
+_0201BC72:
+ cmp r7, #0x0
+ bgt _0201BC7C
+ mov r1, #0x0
+ mvn r1, r1
+ mul r0, r1
+_0201BC7C:
+ add sp, #0x38
+ pop {r3-r7, pc}
+ .balign 4
+_0201BC80: .word 0x00000000
+
+ thumb_func_start FUN_0201BC84
+FUN_0201BC84: ; 0x0201BC84
+ push {r3-r5, lr}
+ lsl r0, r0, #0xd
+ add r4, r1, #0x0
+ ldr r2, _0201BCB4 ; =0x0000323D
+ asr r1, r0, #0x1f
+ mov r3, #0x0
+ blx _ll_mul
+ add r5, r0, #0x0
+ ldr r0, _0201BCB8 ; =0x0000FFFF
+ mov r2, #0x2
+ mov r3, #0x0
+ lsl r2, r2, #0xa
+ mul r0, r4
+ add r2, r5, r2
+ adc r1, r3
+ lsl r1, r1, #0x14
+ lsr r2, r2, #0xc
+ orr r2, r1
+ asr r1, r2, #0xc
+ blx _s32_div_f
+ pop {r3-r5, pc}
+ nop
+_0201BCB4: .word 0x0000323D
+_0201BCB8: .word 0x0000FFFF
+
+ thumb_func_start FUN_0201BCBC
+FUN_0201BCBC: ; 0x0201BCBC
+ ldr r1, _0201BCC4 ; =0x02105BB4
+ str r0, [r1, #0x0]
+ bx lr
+ nop
+_0201BCC4: .word 0x02105BB4
+
+ thumb_func_start FUN_0201BCC8
+FUN_0201BCC8: ; 0x0201BCC8
+ push {r4-r6, lr}
+ ldr r4, _0201BCF8 ; =0x021C5714
+ mov r5, #0x0
+_0201BCCE:
+ ldr r3, [r4, #0x0]
+ cmp r3, #0x0
+ bne _0201BCE8
+ ldr r6, _0201BCF8 ; =0x021C5714
+ lsl r4, r5, #0x2
+ bl FUN_0200CA7C
+ str r0, [r6, r4]
+ ldr r0, [r6, r4]
+ cmp r0, #0x0
+ bne _0201BCF0
+ mov r5, #0x8
+ b _0201BCF0
+_0201BCE8:
+ add r5, r5, #0x1
+ add r4, r4, #0x4
+ cmp r5, #0x8
+ blt _0201BCCE
+_0201BCF0:
+ lsl r0, r5, #0x18
+ lsr r0, r0, #0x18
+ pop {r4-r6, pc}
+ nop
+_0201BCF8: .word 0x021C5714
+
+ thumb_func_start FUN_0201BCFC
+FUN_0201BCFC: ; 0x0201BCFC
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ cmp r5, #0x8
+ blo _0201BD08
+ bl ErrorHandling
+_0201BD08:
+ ldr r6, _0201BD40 ; =0x021C5714
+ lsl r4, r5, #0x2
+ ldr r0, [r6, r4]
+ cmp r0, #0x0
+ bne _0201BD16
+ bl ErrorHandling
+_0201BD16:
+ cmp r5, #0x8
+ bhs _0201BD3C
+ ldr r0, [r6, r4]
+ cmp r0, #0x0
+ beq _0201BD3C
+ bl FUN_0201B6C8
+ add r5, r0, #0x0
+ beq _0201BD32
+ bl FUN_0201C238
+ add r0, r5, #0x0
+ bl FUN_02016A18
+_0201BD32:
+ ldr r0, [r6, r4]
+ bl FUN_0200CAB4
+ mov r0, #0x0
+ str r0, [r6, r4]
+_0201BD3C:
+ pop {r4-r6, pc}
+ nop
+_0201BD40: .word 0x021C5714
+
+ thumb_func_start FUN_0201BD44
+FUN_0201BD44: ; 0x0201BD44
+ lsl r1, r0, #0x2
+ ldr r0, _0201BD58 ; =0x021C5714
+ ldr r0, [r0, r1]
+ cmp r0, #0x0
+ beq _0201BD52
+ mov r0, #0x1
+ bx lr
+_0201BD52:
+ mov r0, #0x0
+ bx lr
+ nop
+_0201BD58: .word 0x021C5714
+
+ thumb_func_start FUN_0201BD5C
+FUN_0201BD5C: ; 0x0201BD5C
+ mov r1, #0x0
+ ldr r2, _0201BD6C ; =0x021C5714
+ add r0, r1, #0x0
+_0201BD62:
+ add r1, r1, #0x1
+ stmia r2!, {r0}
+ cmp r1, #0x8
+ blt _0201BD62
+ bx lr
+ .balign 4
+_0201BD6C: .word 0x021C5714
+
+ thumb_func_start FUN_0201BD70
+FUN_0201BD70: ; 0x0201BD70
+ push {r3, lr}
+ bl FUN_0201BD44
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ pop {r3, pc}
+
+ thumb_func_start FUN_0201BD7C
+FUN_0201BD7C: ; 0x0201BD7C
+ ldr r3, _0201BD80 ; =FUN_0201BCFC
+ bx r3
+ .balign 4
+_0201BD80: .word FUN_0201BCFC
+
+ thumb_func_start FUN_0201BD84
+FUN_0201BD84: ; 0x0201BD84
+ push {r3, lr}
+ sub sp, #0x18
+ str r0, [sp, #0x4]
+ lsl r0, r3, #0x18
+ lsr r3, r0, #0x18
+ ldr r0, [sp, #0x20]
+ str r2, [sp, #0x0]
+ add r2, sp, #0x0
+ strb r1, [r2, #0x9]
+ lsl r0, r0, #0x18
+ strb r3, [r2, #0xa]
+ lsr r0, r0, #0x18
+ strb r0, [r2, #0xb]
+ strb r3, [r2, #0xc]
+ strb r0, [r2, #0xd]
+ ldr r0, _0201BDDC ; =0x02105BB4
+ lsl r1, r1, #0x3
+ ldr r0, [r0, #0x0]
+ add r1, r0, r1
+ ldrb r0, [r1, #0x2]
+ strb r0, [r2, #0xe]
+ ldrb r0, [r1, #0x3]
+ strb r0, [r2, #0xf]
+ ldrb r0, [r1, #0x4]
+ strb r0, [r2, #0x10]
+ ldrb r0, [r1, #0x5]
+ strb r0, [r2, #0x11]
+ ldrb r0, [r1, #0x6]
+ strb r0, [r2, #0x12]
+ ldrb r0, [r1, #0x7]
+ ldr r1, [sp, #0x24]
+ strb r0, [r2, #0x13]
+ mov r0, #0x0
+ strh r0, [r2, #0x14]
+ strb r0, [r2, #0x16]
+ mov r0, #0xff
+ strb r0, [r2, #0x17]
+ ldr r2, [sp, #0x28]
+ add r0, sp, #0x0
+ bl FUN_0201BE98
+ add sp, #0x18
+ pop {r3, pc}
+ nop
+_0201BDDC: .word 0x02105BB4
+
+ thumb_func_start FUN_0201BDE0
+FUN_0201BDE0: ; 0x0201BDE0
+ push {r3, lr}
+ sub sp, #0x18
+ str r0, [sp, #0x4]
+ lsl r0, r3, #0x18
+ lsr r3, r0, #0x18
+ ldr r0, [sp, #0x20]
+ str r2, [sp, #0x0]
+ add r2, sp, #0x0
+ strb r1, [r2, #0x9]
+ lsl r0, r0, #0x18
+ strb r3, [r2, #0xa]
+ lsr r0, r0, #0x18
+ strb r0, [r2, #0xb]
+ strb r3, [r2, #0xc]
+ strb r0, [r2, #0xd]
+ ldr r0, _0201BE38 ; =0x02105BB4
+ lsl r1, r1, #0x3
+ ldr r0, [r0, #0x0]
+ add r1, r0, r1
+ ldrb r0, [r1, #0x2]
+ strb r0, [r2, #0xe]
+ ldrb r0, [r1, #0x3]
+ strb r0, [r2, #0xf]
+ ldrb r0, [r1, #0x4]
+ ldr r1, [sp, #0x28]
+ strb r0, [r2, #0x10]
+ lsr r0, r1, #0x10
+ strb r0, [r2, #0x11]
+ lsr r0, r1, #0x8
+ strb r0, [r2, #0x13]
+ strb r1, [r2, #0x12]
+ mov r0, #0x0
+ strh r0, [r2, #0x14]
+ strb r0, [r2, #0x16]
+ mov r0, #0xff
+ strb r0, [r2, #0x17]
+ ldr r1, [sp, #0x24]
+ ldr r2, [sp, #0x2c]
+ add r0, sp, #0x0
+ bl FUN_0201BE98
+ add sp, #0x18
+ pop {r3, pc}
+ nop
+_0201BE38: .word 0x02105BB4
+
+ thumb_func_start FUN_0201BE3C
+FUN_0201BE3C: ; 0x0201BE3C
+ push {r3, lr}
+ sub sp, #0x18
+ str r0, [sp, #0x4]
+ lsl r0, r3, #0x18
+ lsr r3, r0, #0x18
+ ldr r0, [sp, #0x20]
+ str r2, [sp, #0x0]
+ add r2, sp, #0x0
+ strb r1, [r2, #0x9]
+ lsl r0, r0, #0x18
+ strb r3, [r2, #0xa]
+ lsr r0, r0, #0x18
+ strb r0, [r2, #0xb]
+ strb r3, [r2, #0xc]
+ strb r0, [r2, #0xd]
+ ldr r0, [sp, #0x2c]
+ strb r0, [r2, #0xe]
+ ldr r0, [sp, #0x30]
+ strb r0, [r2, #0xf]
+ ldr r0, _0201BE94 ; =0x02105BB4
+ ldr r3, [r0, #0x0]
+ lsl r0, r1, #0x3
+ add r0, r3, r0
+ ldrb r0, [r0, #0x4]
+ ldr r1, [sp, #0x28]
+ strb r0, [r2, #0x10]
+ lsr r0, r1, #0x10
+ strb r0, [r2, #0x11]
+ lsr r0, r1, #0x8
+ strb r0, [r2, #0x13]
+ strb r1, [r2, #0x12]
+ mov r0, #0x0
+ strh r0, [r2, #0x14]
+ strb r0, [r2, #0x16]
+ mov r0, #0xff
+ strb r0, [r2, #0x17]
+ ldr r1, [sp, #0x24]
+ ldr r2, [sp, #0x34]
+ add r0, sp, #0x0
+ bl FUN_0201BE98
+ add sp, #0x18
+ pop {r3, pc}
+ nop
+_0201BE94: .word 0x02105BB4
+
+ thumb_func_start FUN_0201BE98
+FUN_0201BE98: ; 0x0201BE98
+ push {r3-r7, lr}
+ add r7, r0, #0x0
+ ldr r0, _0201BFD0 ; =0x02105BB4
+ add r6, r1, #0x0
+ ldr r0, [r0, #0x0]
+ add r5, r2, #0x0
+ cmp r0, #0x0
+ bne _0201BEAC
+ mov r0, #0xff
+ pop {r3-r7, pc}
+_0201BEAC:
+ mov r0, #0x0
+ mov r1, #0x30
+ bl FUN_02016998
+ add r4, r0, #0x0
+ mov r1, #0x1
+ add r0, #0x23
+ strb r1, [r0, #0x0]
+ add r0, r4, #0x0
+ mov r3, #0x0
+ add r0, #0x24
+ strb r3, [r0, #0x0]
+ add r0, r4, #0x0
+ add r0, #0x25
+ ldrb r2, [r0, #0x0]
+ mov r0, #0x7f
+ bic r2, r0
+ lsl r0, r6, #0x18
+ lsr r1, r0, #0x18
+ mov r0, #0x7f
+ and r0, r1
+ add r1, r2, #0x0
+ orr r1, r0
+ add r0, r4, #0x0
+ add r0, #0x25
+ strb r1, [r0, #0x0]
+ add r0, r4, #0x0
+ add r0, #0x26
+ strb r3, [r0, #0x0]
+ add r0, r4, #0x0
+ add r0, #0x27
+ strb r3, [r0, #0x0]
+ add r0, r4, #0x0
+ add r0, #0x29
+ strb r3, [r0, #0x0]
+ add r1, r3, #0x0
+_0201BEF4:
+ add r0, r4, r3
+ add r3, r3, #0x1
+ strb r1, [r0, #0x1c]
+ cmp r3, #0x7
+ blt _0201BEF4
+ add r3, r7, #0x0
+ add r2, r4, #0x0
+ 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, #0x0]
+ bl FUN_02021F2C
+ str r0, [r4, #0x0]
+ ldr r0, _0201BFD4 ; =0x021C570C
+ str r5, [r4, #0x18]
+ mov r1, #0x0
+ strb r1, [r0, #0x0]
+ add r0, r4, #0x0
+ bl FUN_0201C1A8
+ cmp r6, #0xff
+ beq _0201BF74
+ cmp r6, #0x0
+ beq _0201BF74
+ add r0, r4, #0x0
+ add r0, #0x25
+ ldrb r2, [r0, #0x0]
+ mov r1, #0x7f
+ add r0, r2, #0x0
+ bic r0, r1
+ lsl r1, r2, #0x19
+ lsr r1, r1, #0x19
+ add r1, #0xff
+ lsl r1, r1, #0x18
+ lsr r2, r1, #0x18
+ mov r1, #0x7f
+ and r1, r2
+ orr r1, r0
+ add r0, r4, #0x0
+ add r0, #0x25
+ strb r1, [r0, #0x0]
+ add r0, r4, #0x0
+ add r0, #0x25
+ ldrb r1, [r0, #0x0]
+ mov r0, #0x80
+ mov r2, #0x1
+ orr r1, r0
+ add r0, r4, #0x0
+ add r0, #0x25
+ strb r1, [r0, #0x0]
+ ldr r0, _0201BFD8 ; =FUN_0201BFDC
+ add r1, r4, #0x0
+ bl FUN_0201BCC8
+ add r1, r4, #0x0
+ add r1, #0x28
+ strb r0, [r1, #0x0]
+ add r4, #0x28
+ ldrb r0, [r4, #0x0]
+ pop {r3-r7, pc}
+_0201BF74:
+ add r0, r4, #0x0
+ add r0, #0x25
+ ldrb r1, [r0, #0x0]
+ mov r0, #0x7f
+ mov r5, #0x0
+ bic r1, r0
+ add r0, r4, #0x0
+ add r0, #0x25
+ strb r1, [r0, #0x0]
+ add r0, r4, #0x0
+ add r0, #0x25
+ ldrb r1, [r0, #0x0]
+ mov r0, #0x80
+ bic r1, r0
+ add r0, r4, #0x0
+ add r0, #0x25
+ strb r1, [r0, #0x0]
+ ldrb r0, [r7, #0x11]
+ ldrb r1, [r7, #0x12]
+ ldrb r2, [r7, #0x13]
+ bl FUN_0201C05C
+ mov r7, #0x1
+ lsl r7, r7, #0xa
+_0201BFA4:
+ add r0, r4, #0x0
+ bl FUN_0201C048
+ cmp r0, #0x1
+ beq _0201BFB4
+ add r5, r5, #0x1
+ cmp r5, r7
+ blo _0201BFA4
+_0201BFB4:
+ cmp r6, #0xff
+ beq _0201BFBE
+ ldr r0, [r4, #0x4]
+ bl FUN_020191D0
+_0201BFBE:
+ add r0, r4, #0x0
+ bl FUN_0201C238
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ mov r0, #0x8
+ pop {r3-r7, pc}
+ nop
+_0201BFD0: .word 0x02105BB4
+_0201BFD4: .word 0x021C570C
+_0201BFD8: .word FUN_0201BFDC
+
+ thumb_func_start FUN_0201BFDC
+FUN_0201BFDC: ; 0x0201BFDC
+ push {r4, lr}
+ ldr r0, _0201C044 ; =0x021C570C
+ add r4, r1, #0x0
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x0
+ bne _0201C042
+ add r0, r4, #0x0
+ add r0, #0x29
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x0
+ bne _0201C036
+ mov r0, #0x0
+ strh r0, [r4, #0x2a]
+ ldrb r0, [r4, #0x11]
+ ldrb r1, [r4, #0x12]
+ ldrb r2, [r4, #0x13]
+ bl FUN_0201C05C
+ add r0, r4, #0x0
+ bl FUN_0201C048
+ cmp r0, #0x0
+ beq _0201C014
+ cmp r0, #0x1
+ beq _0201C02C
+ cmp r0, #0x3
+ beq _0201C01A
+ pop {r4, pc}
+_0201C014:
+ ldr r0, [r4, #0x4]
+ bl FUN_020191D0
+_0201C01A:
+ ldr r2, [r4, #0x18]
+ cmp r2, #0x0
+ beq _0201C042
+ ldrh r1, [r4, #0x2a]
+ add r0, r4, #0x0
+ blx r2
+ add r4, #0x29
+ strb r0, [r4, #0x0]
+ pop {r4, pc}
+_0201C02C:
+ add r4, #0x28
+ ldrb r0, [r4, #0x0]
+ bl FUN_0201BCFC
+ pop {r4, pc}
+_0201C036:
+ ldrh r1, [r4, #0x2a]
+ ldr r2, [r4, #0x18]
+ add r0, r4, #0x0
+ blx r2
+ add r4, #0x29
+ strb r0, [r4, #0x0]
+_0201C042:
+ pop {r4, pc}
+ .balign 4
+_0201C044: .word 0x021C570C
+
+ thumb_func_start FUN_0201C048
+FUN_0201C048: ; 0x0201C048
+ push {r4, lr}
+ add r4, r0, #0x0
+_0201C04C:
+ ldrb r0, [r4, #0x9]
+ add r1, r4, #0x0
+ bl FUN_02002DB0
+ cmp r0, #0x2
+ beq _0201C04C
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0201C05C
+FUN_0201C05C: ; 0x0201C05C
+ push {r3-r7, lr}
+ sub sp, #0x30
+ ldr r3, _0201C0F8 ; =0x021C570C
+ mov r5, #0x0
+ str r5, [sp, #0x20]
+ str r0, [sp, #0x24]
+ str r2, [sp, #0x28]
+ str r1, [sp, #0x2c]
+ strh r1, [r3, #0x6]
+ strh r0, [r3, #0x2]
+ add r0, sp, #0x20
+ strh r2, [r3, #0x4]
+ str r5, [sp, #0x14]
+ str r0, [sp, #0x8]
+ mov r12, r0
+ mov lr, r0
+ str r0, [sp, #0x18]
+_0201C07E:
+ mov r0, #0x0
+ str r0, [sp, #0x10]
+ ldr r0, [sp, #0x18]
+ str r0, [sp, #0x4]
+ ldr r0, [sp, #0x8]
+ ldr r0, [r0, #0x0]
+ str r0, [sp, #0x1c]
+_0201C08C:
+ mov r0, #0x0
+ str r0, [sp, #0xc]
+ mov r0, lr
+ str r0, [sp, #0x0]
+ ldr r0, [sp, #0x4]
+ ldr r0, [r0, #0x0]
+ lsl r7, r0, #0x4
+_0201C09A:
+ ldr r0, [sp, #0x0]
+ mov r3, #0x0
+ ldr r0, [r0, #0x0]
+ mov r4, r12
+ lsl r6, r0, #0x8
+_0201C0A4:
+ ldr r0, [r4, #0x0]
+ add r1, r7, #0x0
+ lsl r0, r0, #0xc
+ orr r0, r6
+ orr r1, r0
+ ldr r0, [sp, #0x1c]
+ add r3, r3, #0x1
+ add r2, r0, #0x0
+ orr r2, r1
+ lsl r1, r5, #0x1
+ ldr r0, _0201C0FC ; =0x021C5734
+ add r5, r5, #0x1
+ add r4, r4, #0x4
+ strh r2, [r0, r1]
+ cmp r3, #0x4
+ blt _0201C0A4
+ ldr r0, [sp, #0x0]
+ add r0, r0, #0x4
+ str r0, [sp, #0x0]
+ ldr r0, [sp, #0xc]
+ add r0, r0, #0x1
+ str r0, [sp, #0xc]
+ cmp r0, #0x4
+ blt _0201C09A
+ ldr r0, [sp, #0x4]
+ add r0, r0, #0x4
+ str r0, [sp, #0x4]
+ ldr r0, [sp, #0x10]
+ add r0, r0, #0x1
+ str r0, [sp, #0x10]
+ cmp r0, #0x4
+ blt _0201C08C
+ ldr r0, [sp, #0x8]
+ add r0, r0, #0x4
+ str r0, [sp, #0x8]
+ ldr r0, [sp, #0x14]
+ add r0, r0, #0x1
+ str r0, [sp, #0x14]
+ cmp r0, #0x4
+ blt _0201C07E
+ add sp, #0x30
+ pop {r3-r7, pc}
+ .balign 4
+_0201C0F8: .word 0x021C570C
+_0201C0FC: .word 0x021C5734
+
+ thumb_func_start FUN_0201C100
+FUN_0201C100: ; 0x0201C100
+ ldrh r2, [r0, #0x0]
+ lsr r2, r2, #0x8
+ lsl r3, r2, #0x1
+ ldr r2, _0201C1A4 ; =0x021C5734
+ ldrh r3, [r2, r3]
+ strh r3, [r1, #0x0]
+ ldrh r3, [r0, #0x0]
+ lsl r3, r3, #0x18
+ lsr r3, r3, #0x17
+ ldrh r3, [r2, r3]
+ strh r3, [r1, #0x2]
+ ldrh r3, [r0, #0x2]
+ lsr r3, r3, #0x8
+ lsl r3, r3, #0x1
+ ldrh r3, [r2, r3]
+ strh r3, [r1, #0x4]
+ ldrh r3, [r0, #0x2]
+ lsl r3, r3, #0x18
+ lsr r3, r3, #0x17
+ ldrh r3, [r2, r3]
+ strh r3, [r1, #0x6]
+ ldrh r3, [r0, #0x4]
+ lsr r3, r3, #0x8
+ lsl r3, r3, #0x1
+ ldrh r3, [r2, r3]
+ strh r3, [r1, #0x8]
+ ldrh r3, [r0, #0x4]
+ lsl r3, r3, #0x18
+ lsr r3, r3, #0x17
+ ldrh r3, [r2, r3]
+ strh r3, [r1, #0xa]
+ ldrh r3, [r0, #0x6]
+ lsr r3, r3, #0x8
+ lsl r3, r3, #0x1
+ ldrh r3, [r2, r3]
+ strh r3, [r1, #0xc]
+ ldrh r3, [r0, #0x6]
+ lsl r3, r3, #0x18
+ lsr r3, r3, #0x17
+ ldrh r3, [r2, r3]
+ strh r3, [r1, #0xe]
+ ldrh r3, [r0, #0x8]
+ lsr r3, r3, #0x8
+ lsl r3, r3, #0x1
+ ldrh r3, [r2, r3]
+ strh r3, [r1, #0x10]
+ ldrh r3, [r0, #0x8]
+ lsl r3, r3, #0x18
+ lsr r3, r3, #0x17
+ ldrh r3, [r2, r3]
+ strh r3, [r1, #0x12]
+ ldrh r3, [r0, #0xa]
+ lsr r3, r3, #0x8
+ lsl r3, r3, #0x1
+ ldrh r3, [r2, r3]
+ strh r3, [r1, #0x14]
+ ldrh r3, [r0, #0xa]
+ lsl r3, r3, #0x18
+ lsr r3, r3, #0x17
+ ldrh r3, [r2, r3]
+ strh r3, [r1, #0x16]
+ ldrh r3, [r0, #0xc]
+ lsr r3, r3, #0x8
+ lsl r3, r3, #0x1
+ ldrh r3, [r2, r3]
+ strh r3, [r1, #0x18]
+ ldrh r3, [r0, #0xc]
+ lsl r3, r3, #0x18
+ lsr r3, r3, #0x17
+ ldrh r3, [r2, r3]
+ strh r3, [r1, #0x1a]
+ ldrh r3, [r0, #0xe]
+ lsr r3, r3, #0x8
+ lsl r3, r3, #0x1
+ ldrh r3, [r2, r3]
+ strh r3, [r1, #0x1c]
+ ldrh r0, [r0, #0xe]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x17
+ ldrh r0, [r2, r0]
+ strh r0, [r1, #0x1e]
+ bx lr
+ .balign 4
+_0201C1A4: .word 0x021C5734
+
+ thumb_func_start FUN_0201C1A8
+FUN_0201C1A8: ; 0x0201C1A8
+ mov r1, #0x0
+ str r1, [r0, #0x2c]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_0201C1B0
+FUN_0201C1B0: ; 0x0201C1B0
+ push {r3-r5, lr}
+ sub sp, #0x8
+ mov r1, #0x6
+ mov r0, #0x0
+ lsl r1, r1, #0x8
+ bl FUN_02016998
+ mov r2, #0x0
+ add r5, r0, #0x0
+ str r2, [sp, #0x0]
+ mov r0, #0xe
+ mov r1, #0x5
+ add r3, sp, #0x4
+ bl FUN_02006BB0
+ add r4, r0, #0x0
+ ldr r0, [sp, #0x4]
+ mov r2, #0x6
+ ldr r0, [r0, #0x14]
+ add r1, r5, #0x0
+ lsl r2, r2, #0x8
+ blx MIi_CpuCopy32
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ add r0, r5, #0x0
+ add sp, #0x8
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_0201C1EC
+FUN_0201C1EC: ; 0x0201C1EC
+ push {r3-r7, lr}
+ sub sp, #0x18
+ add r4, r0, #0x0
+ ldr r0, [r4, #0x2c]
+ add r7, r3, #0x0
+ ldr r5, [r4, #0x4]
+ cmp r0, #0x0
+ bne _0201C202
+ bl FUN_0201C1B0
+ str r0, [r4, #0x2c]
+_0201C202:
+ mov r0, #0x6
+ lsl r0, r0, #0x6
+ add r6, r7, #0x0
+ mul r6, r0
+ add r0, r5, #0x0
+ ldr r4, [r4, #0x2c]
+ bl FUN_0201AB0C
+ sub r0, r0, #0x3
+ lsl r0, r0, #0x13
+ mov r1, #0x18
+ lsr r2, r0, #0x10
+ str r1, [sp, #0x0]
+ mov r0, #0x20
+ str r0, [sp, #0x4]
+ str r2, [sp, #0x8]
+ mov r2, #0x0
+ str r2, [sp, #0xc]
+ str r1, [sp, #0x10]
+ str r0, [sp, #0x14]
+ add r0, r5, #0x0
+ add r1, r4, r6
+ add r3, r2, #0x0
+ bl FUN_02019658
+ add sp, #0x18
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_0201C238
+FUN_0201C238: ; 0x0201C238
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r0, [r4, #0x2c]
+ cmp r0, #0x0
+ beq _0201C24A
+ bl FUN_02016A18
+ mov r0, #0x0
+ str r0, [r4, #0x2c]
+_0201C24A:
+ pop {r4, pc}
+
+ thumb_func_start FUN_0201C24C
+FUN_0201C24C: ; 0x0201C24C
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ ldr r0, _0201C298 ; =0x021C5934
+ add r4, r1, #0x0
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ beq _0201C25E
+ bl ErrorHandling
+_0201C25E:
+ add r0, r4, #0x0
+ mov r1, #0xc
+ bl FUN_02016998
+ ldr r1, _0201C298 ; =0x021C5934
+ cmp r0, #0x0
+ str r0, [r1, #0x0]
+ bne _0201C272
+ bl ErrorHandling
+_0201C272:
+ add r0, r4, #0x0
+ lsl r1, r5, #0x4
+ bl FUN_02016998
+ ldr r1, _0201C298 ; =0x021C5934
+ ldr r2, [r1, #0x0]
+ str r0, [r2, #0x8]
+ ldr r0, [r1, #0x0]
+ mov r2, #0x0
+ str r5, [r0, #0x0]
+ ldr r0, [r1, #0x0]
+ str r2, [r0, #0x4]
+ ldr r1, [r1, #0x0]
+ ldr r0, [r1, #0x8]
+ ldr r1, [r1, #0x0]
+ blx FUN_020AEF1C
+ pop {r3-r5, pc}
+ nop
+_0201C298: .word 0x021C5934
+
+ thumb_func_start FUN_0201C29C
+FUN_0201C29C: ; 0x0201C29C
+ push {r3, lr}
+ ldr r0, _0201C2C4 ; =0x021C5934
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ bne _0201C2AA
+ bl ErrorHandling
+_0201C2AA:
+ ldr r0, _0201C2C4 ; =0x021C5934
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0x8]
+ bl FUN_02016A18
+ ldr r0, _0201C2C4 ; =0x021C5934
+ ldr r0, [r0, #0x0]
+ bl FUN_02016A18
+ ldr r0, _0201C2C4 ; =0x021C5934
+ mov r1, #0x0
+ str r1, [r0, #0x0]
+ pop {r3, pc}
+ .balign 4
+_0201C2C4: .word 0x021C5934
+
+ thumb_func_start FUN_0201C2C8
+FUN_0201C2C8: ; 0x0201C2C8
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ ldr r0, _0201C308 ; =0x021C5934
+ add r4, r1, #0x0
+ ldr r0, [r0, #0x0]
+ add r6, r2, #0x0
+ add r7, r3, #0x0
+ cmp r0, #0x0
+ bne _0201C2DE
+ bl ErrorHandling
+_0201C2DE:
+ ldr r1, _0201C308 ; =0x021C5934
+ ldr r0, [r1, #0x0]
+ ldr r2, [r0, #0x4]
+ add r2, r2, #0x1
+ str r2, [r0, #0x4]
+ ldr r0, [r1, #0x0]
+ ldr r1, [r0, #0x4]
+ ldr r0, [r0, #0x0]
+ cmp r1, r0
+ blo _0201C2FA
+ bl ErrorHandling
+ mov r0, #0x0
+ pop {r3-r7, pc}
+_0201C2FA:
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ add r2, r6, #0x0
+ add r3, r7, #0x0
+ blx FUN_020AEE40
+ pop {r3-r7, pc}
+ .balign 4
+_0201C308: .word 0x021C5934
+
+ thumb_func_start FUN_0201C30C
+FUN_0201C30C: ; 0x0201C30C
+ push {r3, lr}
+ ldr r0, _0201C324 ; =0x021C5934
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ beq _0201C322
+ blx FUN_020AEEB8
+ ldr r0, _0201C324 ; =0x021C5934
+ mov r1, #0x0
+ ldr r0, [r0, #0x0]
+ str r1, [r0, #0x4]
+_0201C322:
+ pop {r3, pc}
+ .balign 4
+_0201C324: .word 0x021C5934
+
+ thumb_func_start FUN_0201C328
+FUN_0201C328: ; 0x0201C328
+ push {r3-r5, lr}
+ add r4, r0, #0x0
+ add r0, r1, #0x0
+ mov r1, #0x30
+ mul r1, r4
+ bl FUN_02016998
+ ldr r2, _0201C344 ; =FUN_0201C358
+ add r1, r4, #0x0
+ add r5, r0, #0x0
+ blx FUN_020B4568
+ add r0, r5, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+_0201C344: .word FUN_0201C358
+
+ thumb_func_start FUN_0201C348
+FUN_0201C348: ; 0x0201C348
+ ldr r3, _0201C34C ; =FUN_020B442C
+ bx r3
+ .balign 4
+_0201C34C: .word FUN_020B442C
+
+ thumb_func_start FUN_0201C350
+FUN_0201C350: ; 0x0201C350
+ ldr r3, _0201C354 ; =FUN_02016A18
+ bx r3
+ .balign 4
+_0201C354: .word FUN_02016A18
+
+ thumb_func_start FUN_0201C358
+FUN_0201C358: ; 0x0201C358
+ push {r3, lr}
+ bl FUN_0201C2C8
+ pop {r3, pc}
+
+ thumb_func_start FUN_0201C360
+FUN_0201C360: ; 0x0201C360
+ push {r4-r6, lr}
+ add r6, r1, #0x0
+ add r5, r0, #0x0
+ add r0, r6, #0x0
+ mov r1, #0x8
+ bl FUN_02016998
+ mov r1, #0x14
+ add r4, r0, #0x0
+ add r0, r6, #0x0
+ mul r1, r5
+ bl FUN_02016998
+ str r0, [r4, #0x0]
+ mov r6, #0x0
+ str r5, [r4, #0x4]
+ cmp r5, #0x0
+ ble _0201C398
+ add r5, r6, #0x0
+_0201C386:
+ ldr r0, [r4, #0x0]
+ add r0, r0, r5
+ bl FUN_0201C444
+ ldr r0, [r4, #0x4]
+ add r6, r6, #0x1
+ add r5, #0x14
+ cmp r6, r0
+ blt _0201C386
+_0201C398:
+ add r0, r4, #0x0
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_0201C39C
+FUN_0201C39C: ; 0x0201C39C
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl FUN_0201C414
+ ldr r0, [r4, #0x0]
+ bl FUN_02016A18
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0201C3B4
+FUN_0201C3B4: ; 0x0201C3B4
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ ldr r0, [r5, #0x4]
+ mov r4, #0x0
+ add r7, r2, #0x0
+ mov r12, r1
+ add r6, r3, #0x0
+ add r2, r4, #0x0
+ cmp r0, #0x0
+ ble _0201C3E2
+ ldr r5, [r5, #0x0]
+ add r3, r5, #0x0
+_0201C3CC:
+ ldr r1, [r3, #0x0]
+ cmp r1, #0x0
+ bne _0201C3DA
+ mov r0, #0x14
+ mul r0, r2
+ add r4, r5, r0
+ b _0201C3E2
+_0201C3DA:
+ add r2, r2, #0x1
+ add r3, #0x14
+ cmp r2, r0
+ blt _0201C3CC
+_0201C3E2:
+ cmp r4, #0x0
+ bne _0201C3EA
+ mov r0, #0x0
+ pop {r3-r7, pc}
+_0201C3EA:
+ mov r0, r12
+ str r0, [r4, #0x0]
+ str r7, [r4, #0x4]
+ ldr r1, [sp, #0x1c]
+ ldr r0, [sp, #0x18]
+ str r6, [r4, #0x8]
+ str r0, [r4, #0xc]
+ mov r0, #0xff
+ strb r0, [r4, #0x10]
+ lsl r1, r1, #0x4
+ strb r0, [r4, #0x11]
+ add r0, r4, #0x0
+ lsr r1, r1, #0x10
+ bl FUN_0201C454
+ add r0, r4, #0x0
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_0201C40C
+FUN_0201C40C: ; 0x0201C40C
+ ldr r3, _0201C410 ; =FUN_0201C444
+ bx r3
+ .balign 4
+_0201C410: .word FUN_0201C444
+
+ thumb_func_start FUN_0201C414
+FUN_0201C414: ; 0x0201C414
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ ldr r0, [r5, #0x4]
+ mov r6, #0x0
+ cmp r0, #0x0
+ ble _0201C434
+ add r4, r6, #0x0
+_0201C422:
+ ldr r0, [r5, #0x0]
+ add r0, r0, r4
+ bl FUN_0201C444
+ ldr r0, [r5, #0x4]
+ add r6, r6, #0x1
+ add r4, #0x14
+ cmp r6, r0
+ blt _0201C422
+_0201C434:
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_0201C438
+FUN_0201C438: ; 0x0201C438
+ ldr r3, _0201C440 ; =FUN_0201C454
+ lsl r1, r1, #0x4
+ lsr r1, r1, #0x10
+ bx r3
+ .balign 4
+_0201C440: .word FUN_0201C454
+
+ thumb_func_start FUN_0201C444
+FUN_0201C444: ; 0x0201C444
+ mov r1, #0x0
+ str r1, [r0, #0x0]
+ str r1, [r0, #0x4]
+ str r1, [r0, #0x8]
+ str r1, [r0, #0xc]
+ strb r1, [r0, #0x10]
+ strb r1, [r0, #0x11]
+ bx lr
+
+ thumb_func_start FUN_0201C454
+FUN_0201C454: ; 0x0201C454
+ push {r3-r4, lr}
+ sub sp, #0x4
+ add r4, r0, #0x0
+ ldr r0, [r4, #0x0]
+ bl FUN_02022244
+ add r2, sp, #0x0
+ strb r0, [r2, #0x0]
+ lsr r0, r0, #0x8
+ strb r0, [r2, #0x1]
+ ldrb r0, [r2, #0x0]
+ add r1, sp, #0x0
+ add r1, #0x2
+ strb r0, [r2, #0x2]
+ ldrb r0, [r2, #0x1]
+ strb r0, [r2, #0x3]
+ ldrb r3, [r4, #0x10]
+ ldrb r0, [r2, #0x2]
+ cmp r3, r0
+ beq _0201C482
+ add r0, r4, #0x0
+ bl FUN_0201C49C
+_0201C482:
+ add r0, sp, #0x0
+ ldrb r1, [r4, #0x11]
+ ldrb r0, [r0, #0x3]
+ cmp r1, r0
+ beq _0201C496
+ add r1, sp, #0x0
+ add r0, r4, #0x0
+ add r1, #0x2
+ bl FUN_0201C4C8
+_0201C496:
+ add sp, #0x4
+ pop {r3-r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0201C49C
+FUN_0201C49C: ; 0x0201C49C
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ bl FUN_0201C4F4
+ ldr r3, [r5, #0x8]
+ add r2, r0, #0x0
+ lsl r1, r3, #0x10
+ ldr r6, _0201C4C4 ; =0x7FFF0000
+ mov r0, #0x0
+ and r3, r6
+ lsr r3, r3, #0x10
+ lsr r1, r1, #0xd
+ lsl r3, r3, #0x4
+ bl FUN_0201C2C8
+ ldrb r0, [r4, #0x0]
+ strb r0, [r5, #0x10]
+ pop {r4-r6, pc}
+ nop
+_0201C4C4: .word 0x7FFF0000
+
+ thumb_func_start FUN_0201C4C8
+FUN_0201C4C8: ; 0x0201C4C8
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ bl FUN_0201C500
+ ldr r3, [r5, #0xc]
+ add r2, r0, #0x0
+ lsl r1, r3, #0x10
+ ldr r6, _0201C4F0 ; =0xFFFF0000
+ mov r0, #0x1
+ and r3, r6
+ lsr r3, r3, #0x10
+ lsr r1, r1, #0xd
+ lsl r3, r3, #0x3
+ bl FUN_0201C2C8
+ ldrb r0, [r4, #0x1]
+ strb r0, [r5, #0x11]
+ pop {r4-r6, pc}
+ nop
+_0201C4F0: .word 0xFFFF0000
+
+ thumb_func_start FUN_0201C4F4
+FUN_0201C4F4: ; 0x0201C4F4
+ ldr r3, _0201C4FC ; =0x0201C50D
+ ldr r0, [r0, #0x4]
+ ldrb r1, [r1, #0x0]
+ bx r3
+ .balign 4
+_0201C4FC: .word 0x0201C50D
+
+ thumb_func_start FUN_0201C500
+FUN_0201C500: ; 0x0201C500
+ ldr r3, _0201C508 ; =0x0201C541
+ ldr r0, [r0, #0x4]
+ ldrb r1, [r1, #0x1]
+ bx r3
+ .balign 4
+_0201C508: .word 0x0201C541
+
+ thumb_func_start FUN_0201C50C
+FUN_0201C50C: ; 0x0201C50C
+ push {r3-r4}
+ add r2, r0, #0x0
+ add r2, #0x42
+ ldrh r2, [r2, #0x0]
+ add r4, r0, #0x0
+ add r4, #0x3c
+ add r3, r4, r2
+ ldrh r2, [r4, r2]
+ add r3, r3, #0x4
+ mul r1, r2
+ add r3, r3, r1
+ bne _0201C52A
+ mov r0, #0x0
+ pop {r3-r4}
+ bx lr
+_0201C52A:
+ ldr r1, [r0, #0x14]
+ add r2, r0, r1
+ ldr r1, [r3, #0x0]
+ ldr r0, [r0, #0x8]
+ lsl r1, r1, #0x10
+ lsr r1, r1, #0x10
+ add r0, r1, r0
+ lsl r0, r0, #0x3
+ add r0, r2, r0
+ pop {r3-r4}
+ bx lr
+
+ thumb_func_start FUN_0201C540
+FUN_0201C540: ; 0x0201C540
+ push {r3-r4}
+ ldrh r2, [r0, #0x34]
+ add r4, r0, r2
+ ldrh r2, [r4, #0x6]
+ add r3, r4, r2
+ ldrh r2, [r4, r2]
+ add r3, r3, #0x4
+ mul r1, r2
+ add r2, r3, r1
+ bne _0201C55A
+ mov r0, #0x0
+ pop {r3-r4}
+ bx lr
+_0201C55A:
+ ldr r1, [r0, #0x38]
+ add r1, r0, r1
+ ldrh r0, [r2, #0x0]
+ lsl r0, r0, #0x3
+ add r0, r1, r0
+ pop {r3-r4}
+ bx lr
+
+ thumb_func_start FUN_0201C568
+FUN_0201C568: ; 0x0201C568
+ ldr r1, [r1, #0x0]
+ ldr r0, [r0, #0x8]
+ lsl r1, r1, #0x10
+ lsl r0, r0, #0x10
+ lsr r1, r1, #0xd
+ lsr r0, r0, #0xd
+ add r0, r1, r0
+ bx lr
+
+ thumb_func_start FUN_0201C578
+FUN_0201C578: ; 0x0201C578
+ push {r4, lr}
+ sub sp, #0x10
+ add r4, r0, #0x0
+ add r0, sp, #0x0
+ bl FUN_0201C750
+ add r0, r4, #0x0
+ add r0, #0x3c
+ add r1, sp, #0x0
+ blx FUN_020BC2A0
+ add r1, r0, #0x0
+ bne _0201C598
+ add sp, #0x10
+ mov r0, #0x0
+ pop {r4, pc}
+_0201C598:
+ add r0, r4, #0x0
+ bl FUN_0201C568
+ add sp, #0x10
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0201C5A4
+FUN_0201C5A4: ; 0x0201C5A4
+ push {r3, lr}
+ ldr r0, [r1, #0x0]
+ mov r1, #0x7
+ lsl r1, r1, #0x1a
+ and r1, r0
+ lsr r1, r1, #0x1a
+ cmp r1, #0x4
+ bhi _0201C5DA
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #0x6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_0201C5C0: ; jump table (using 16-bit offset)
+ .short _0201C5DA - _0201C5C0 - 2; case 0
+ .short _0201C5D6 - _0201C5C0 - 2; case 1
+ .short _0201C5CA - _0201C5C0 - 2; case 2
+ .short _0201C5CE - _0201C5C0 - 2; case 3
+ .short _0201C5D2 - _0201C5C0 - 2; case 4
+_0201C5CA:
+ mov r1, #0x4
+ b _0201C5DE
+_0201C5CE:
+ mov r1, #0x2
+ b _0201C5DE
+_0201C5D2:
+ mov r1, #0x1
+ b _0201C5DE
+_0201C5D6:
+ mov r1, #0x1
+ b _0201C5DE
+_0201C5DA:
+ mov r0, #0x0
+ pop {r3, pc}
+_0201C5DE:
+ mov r3, #0x7
+ lsl r3, r3, #0x14
+ add r2, r0, #0x0
+ and r2, r3
+ lsl r3, r3, #0x3
+ and r0, r3
+ lsr r2, r2, #0x14
+ lsr r0, r0, #0x17
+ lsl r2, r2, #0x4
+ lsl r0, r0, #0x4
+ mul r0, r2
+ blx _u32_div_f
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_0201C5FC
+FUN_0201C5FC: ; 0x0201C5FC
+ push {r4, lr}
+ sub sp, #0x10
+ add r4, r0, #0x0
+ add r0, sp, #0x0
+ bl FUN_0201C750
+ add r0, r4, #0x0
+ add r0, #0x3c
+ add r1, sp, #0x0
+ blx FUN_020BC2A0
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_0201C5A4
+ add sp, #0x10
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0201C620
+FUN_0201C620: ; 0x0201C620
+ ldrb r3, [r0, #0x0]
+ strb r3, [r1, #0x0]
+ ldrb r0, [r0, #0x1]
+ strb r0, [r2, #0x0]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_0201C62C
+FUN_0201C62C: ; 0x0201C62C
+ ldrb r3, [r0, #0x2]
+ strb r3, [r1, #0x0]
+ ldrb r0, [r0, #0x3]
+ strb r0, [r2, #0x0]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_0201C638
+FUN_0201C638: ; 0x0201C638
+ push {r4-r5}
+ ldr r5, _0201C6B0 ; =0xFFFFFFF8
+ ldr r4, [sp, #0xc]
+ add r5, sp
+ ldrb r5, [r5, #0x18]
+ cmp r5, #0x3
+ bhi _0201C678
+ add r5, r5, r5
+ add r5, pc
+ ldrh r5, [r5, #0x6]
+ lsl r5, r5, #0x10
+ asr r5, r5, #0x10
+ add pc, r5
+_0201C652: ; jump table (using 16-bit offset)
+ .short _0201C65A - _0201C652 - 2; case 0
+ .short _0201C662 - _0201C652 - 2; case 1
+ .short _0201C66A - _0201C652 - 2; case 2
+ .short _0201C672 - _0201C652 - 2; case 3
+_0201C65A:
+ lsl r4, r4, #0x3
+ add r4, r0, r4
+ ldrb r4, [r4, #0x4]
+ b _0201C678
+_0201C662:
+ lsl r4, r4, #0x3
+ add r4, r0, r4
+ ldrb r4, [r4, #0x5]
+ b _0201C678
+_0201C66A:
+ lsl r4, r4, #0x3
+ add r4, r0, r4
+ ldrb r4, [r4, #0x6]
+ b _0201C678
+_0201C672:
+ lsl r4, r4, #0x3
+ add r4, r0, r4
+ ldrb r4, [r4, #0x7]
+_0201C678:
+ cmp r1, #0x0
+ beq _0201C682
+ lsl r5, r4, #0x3
+ ldrb r5, [r0, r5]
+ strb r5, [r1, #0x0]
+_0201C682:
+ cmp r2, #0x0
+ beq _0201C68E
+ lsl r1, r4, #0x3
+ add r1, r0, r1
+ ldrb r1, [r1, #0x1]
+ strb r1, [r2, #0x0]
+_0201C68E:
+ cmp r3, #0x0
+ beq _0201C69A
+ lsl r1, r4, #0x3
+ add r1, r0, r1
+ ldrb r1, [r1, #0x2]
+ strb r1, [r3, #0x0]
+_0201C69A:
+ ldr r2, [sp, #0x8]
+ cmp r2, #0x0
+ beq _0201C6A8
+ lsl r1, r4, #0x3
+ add r0, r0, r1
+ ldrb r0, [r0, #0x3]
+ strb r0, [r2, #0x0]
+_0201C6A8:
+ add r0, r4, #0x0
+ pop {r4-r5}
+ bx lr
+ nop
+_0201C6B0: .word 0xFFFFFFF8
+
+ thumb_func_start FUN_0201C6B4
+FUN_0201C6B4: ; 0x0201C6B4
+ mov r2, #0x0
+ ldrsb r1, [r0, r2]
+ cmp r1, #0x0
+ beq _0201C6C4
+_0201C6BC:
+ add r2, r2, #0x1
+ ldrsb r1, [r0, r2]
+ cmp r1, #0x0
+ bne _0201C6BC
+_0201C6C4:
+ add r0, r2, #0x0
+ bx lr
+
+ thumb_func_start FUN_0201C6C8
+FUN_0201C6C8: ; 0x0201C6C8
+ push {r4-r5}
+ mov r4, #0x1
+ mov r3, #0x0
+ lsl r4, r4, #0x8
+_0201C6D0:
+ ldrsb r5, [r0, r3]
+ strb r5, [r1, r3]
+ ldrsb r5, [r0, r3]
+ cmp r2, r5
+ beq _0201C6DE
+ cmp r5, #0x0
+ bne _0201C6FE
+_0201C6DE:
+ mov r4, #0x0
+ strb r4, [r1, r3]
+ cmp r2, #0xd
+ bne _0201C6F6
+ add r1, r3, #0x1
+ ldrsb r1, [r0, r1]
+ cmp r1, #0xa
+ bne _0201C6F6
+ add r1, r3, #0x2
+ add r0, r0, r1
+ pop {r4-r5}
+ bx lr
+_0201C6F6:
+ add r1, r3, #0x1
+ add r0, r0, r1
+ pop {r4-r5}
+ bx lr
+_0201C6FE:
+ add r3, r3, #0x1
+ cmp r3, r4
+ blt _0201C6D0
+ mov r0, #0x0
+ pop {r4-r5}
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_0201C70C
+FUN_0201C70C: ; 0x0201C70C
+ push {r4-r6, lr}
+ add r4, r0, #0x0
+ bl FUN_0201C6B4
+ mov r5, #0x1
+ mov r6, #0x0
+ sub r3, r0, #0x1
+ bmi _0201C74A
+ sub r1, r6, #0x1
+ mov r0, #0xa
+_0201C720:
+ ldrsb r2, [r4, r3]
+ cmp r2, #0x30
+ blt _0201C732
+ cmp r2, #0x39
+ bgt _0201C732
+ sub r2, #0x30
+ mul r2, r5
+ add r6, r6, r2
+ b _0201C744
+_0201C732:
+ cmp r3, #0x0
+ bne _0201C73E
+ cmp r2, #0x2d
+ bne _0201C744
+ mul r6, r1
+ b _0201C744
+_0201C73E:
+ mov r0, #0x0
+ mvn r0, r0
+ pop {r4-r6, pc}
+_0201C744:
+ mul r5, r0
+ sub r3, r3, #0x1
+ bpl _0201C720
+_0201C74A:
+ add r0, r6, #0x0
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_0201C750
+FUN_0201C750: ; 0x0201C750
+ push {r3-r5, lr}
+ mov r2, #0x0
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ add r1, r2, #0x0
+_0201C75A:
+ lsl r0, r2, #0x2
+ str r1, [r5, r0]
+ add r0, r2, #0x1
+ lsl r0, r0, #0x18
+ lsr r2, r0, #0x18
+ cmp r2, #0x4
+ blo _0201C75A
+ add r0, r4, #0x0
+ bl FUN_0201C6B4
+ lsl r0, r0, #0x18
+ lsr r1, r0, #0x18
+ ldr r2, _0201C788 ; =0x00000000
+ beq _0201C784
+_0201C776:
+ ldrsb r0, [r4, r2]
+ strb r0, [r5, r2]
+ add r0, r2, #0x1
+ lsl r0, r0, #0x18
+ lsr r2, r0, #0x18
+ cmp r2, r1
+ blo _0201C776
+_0201C784:
+ pop {r3-r5, pc}
+ nop
+_0201C788: .word 0x00000000
+
+ thumb_func_start FUN_0201C78C
+FUN_0201C78C: ; 0x0201C78C
+ ldr r1, _0201C79C ; =0x00000121
+ cmp r0, r1
+ bhs _0201C796
+ mov r0, #0x1
+ bx lr
+_0201C796:
+ mov r0, #0x0
+ bx lr
+ nop
+_0201C79C: .word 0x00000121
+
+ thumb_func_start FUN_0201C7A0
+FUN_0201C7A0: ; 0x0201C7A0
+ cmp r0, r1
+ blt _0201C7A6
+ add r0, r1, #0x0
+_0201C7A6:
+ bx lr
+
+ thumb_func_start FUN_0201C7A8
+FUN_0201C7A8: ; 0x0201C7A8
+ cmp r0, r1
+ bgt _0201C7AE
+ add r0, r1, #0x0
+_0201C7AE:
+ bx lr
+
+ thumb_func_start FUN_0201C7B0
+FUN_0201C7B0: ; 0x0201C7B0
+ push {r3-r7, lr}
+ sub sp, #0x30
+ add r4, r1, #0x0
+ add r1, sp, #0x24
+ blx VEC_Normalize
+ add r0, r4, #0x0
+ add r1, sp, #0x18
+ blx VEC_Normalize
+ ldr r0, [sp, #0x24]
+ ldr r4, [sp, #0x18]
+ str r0, [sp, #0x0]
+ asr r0, r0, #0x1f
+ str r0, [sp, #0x4]
+ ldr r0, [sp, #0x20]
+ asr r6, r4, #0x1f
+ str r0, [sp, #0x8]
+ asr r0, r0, #0x1f
+ str r0, [sp, #0xc]
+ ldr r0, [sp, #0x2c]
+ ldr r2, [sp, #0x8]
+ asr r7, r0, #0x1f
+ ldr r3, [sp, #0xc]
+ add r1, r7, #0x0
+ str r0, [sp, #0x10]
+ blx _ll_mul
+ str r0, [sp, #0x14]
+ add r5, r1, #0x0
+ ldr r0, [sp, #0x0]
+ ldr r1, [sp, #0x4]
+ add r2, r4, #0x0
+ add r3, r6, #0x0
+ blx _ll_mul
+ mov r2, #0x2
+ ldr r3, [sp, #0x14]
+ lsl r2, r2, #0xa
+ add r3, r3, r2
+ ldr r2, _0201C874 ; =0x00000000
+ adc r5, r2
+ lsl r2, r5, #0x14
+ lsr r3, r3, #0xc
+ orr r3, r2
+ mov r2, #0x2
+ lsl r2, r2, #0xa
+ add r0, r0, r2
+ ldr r2, _0201C874 ; =0x00000000
+ adc r1, r2
+ lsl r1, r1, #0x14
+ lsr r0, r0, #0xc
+ orr r0, r1
+ add r5, r3, r0
+ ldr r0, [sp, #0x10]
+ add r1, r7, #0x0
+ add r2, r4, #0x0
+ add r3, r6, #0x0
+ blx _ll_mul
+ add r6, r0, #0x0
+ add r4, r1, #0x0
+ ldr r0, [sp, #0x0]
+ ldr r1, [sp, #0x4]
+ ldr r2, [sp, #0x8]
+ ldr r3, [sp, #0xc]
+ blx _ll_mul
+ mov r2, #0x2
+ mov r3, #0x0
+ lsl r2, r2, #0xa
+ add r6, r6, r2
+ adc r4, r3
+ lsl r4, r4, #0x14
+ lsr r6, r6, #0xc
+ orr r6, r4
+ add r4, r0, r2
+ adc r1, r3
+ lsl r0, r1, #0x14
+ lsr r1, r4, #0xc
+ orr r1, r0
+ sub r0, r6, r1
+ cmp r5, #0x0
+ bne _0201C86A
+ cmp r0, #0x0
+ ble _0201C862
+ add sp, #0x30
+ lsl r0, r2, #0x3
+ pop {r3-r7, pc}
+_0201C862:
+ mov r0, #0x3
+ add sp, #0x30
+ lsl r0, r0, #0xe
+ pop {r3-r7, pc}
+_0201C86A:
+ add r1, r5, #0x0
+ blx FX_Modf
+ add sp, #0x30
+ pop {r3-r7, pc}
+ .balign 4
+_0201C874: .word 0x00000000
+
+ thumb_func_start FUN_0201C878
+FUN_0201C878: ; 0x0201C878
+ push {r0-r3}
+ push {r4-r7, lr}
+ sub sp, #0x54
+ ldr r0, [sp, #0x7c]
+ ldr r2, [sp, #0x80]
+ str r0, [sp, #0x8]
+ ldr r0, [sp, #0x94]
+ ldr r1, [sp, #0x8c]
+ str r0, [sp, #0xc]
+ ldr r0, [sp, #0x88]
+ ldr r4, [sp, #0x70]
+ str r0, [sp, #0x10]
+ sub r0, r2, r1
+ str r0, [sp, #0x14]
+ asr r0, r0, #0x1f
+ str r0, [sp, #0x18]
+ ldr r0, [sp, #0x8]
+ asr r0, r0, #0x1f
+ str r0, [sp, #0x1c]
+ ldr r0, [sp, #0x74]
+ sub r3, r0, r2
+ sub r0, r1, r0
+ str r3, [sp, #0x20]
+ asr r3, r3, #0x1f
+ str r3, [sp, #0x24]
+ ldr r3, [sp, #0xc]
+ str r0, [sp, #0x2c]
+ asr r0, r0, #0x1f
+ str r0, [sp, #0x30]
+ ldr r0, [sp, #0x10]
+ asr r3, r3, #0x1f
+ str r3, [sp, #0x28]
+ asr r0, r0, #0x1f
+ ldr r3, [sp, #0x68]
+ str r0, [sp, #0x34]
+ asr r0, r4, #0x1f
+ str r0, [sp, #0x38]
+ sub r2, r2, r3
+ ldr r0, [sp, #0x8]
+ ldr r1, [sp, #0x1c]
+ asr r3, r2, #0x1f
+ blx _ll_mul
+ add r7, r0, #0x0
+ add r6, r1, #0x0
+ ldr r3, [sp, #0x68]
+ ldr r2, [sp, #0x74]
+ ldr r0, [sp, #0x10]
+ sub r2, r3, r2
+ ldr r1, [sp, #0x34]
+ asr r3, r2, #0x1f
+ blx _ll_mul
+ add r5, r1, #0x0
+ str r0, [sp, #0x3c]
+ ldr r1, [sp, #0x38]
+ ldr r2, [sp, #0x20]
+ ldr r3, [sp, #0x24]
+ add r0, r4, #0x0
+ blx _ll_mul
+ mov r2, #0x2
+ str r0, [sp, #0x4c]
+ add r0, r1, #0x0
+ mov r1, #0x0
+ lsl r2, r2, #0xa
+ add r3, r7, r2
+ adc r6, r1
+ lsl r2, r6, #0x14
+ lsr r3, r3, #0xc
+ orr r3, r2
+ mov r2, #0x2
+ ldr r6, [sp, #0x3c]
+ lsl r2, r2, #0xa
+ add r2, r6, r2
+ adc r5, r1
+ mov r6, #0x2
+ lsl r5, r5, #0x14
+ lsr r2, r2, #0xc
+ orr r2, r5
+ ldr r5, [sp, #0x4c]
+ lsl r6, r6, #0xa
+ add r5, r5, r6
+ adc r0, r1
+ lsl r0, r0, #0x14
+ lsr r1, r5, #0xc
+ orr r1, r0
+ add r0, r2, r1
+ add r0, r3, r0
+ str r0, [sp, #0x4]
+ ldr r3, [sp, #0x8c]
+ ldr r2, [sp, #0x68]
+ ldr r0, [sp, #0x10]
+ sub r2, r3, r2
+ ldr r1, [sp, #0x34]
+ asr r3, r2, #0x1f
+ blx _ll_mul
+ add r7, r0, #0x0
+ add r6, r1, #0x0
+ ldr r3, [sp, #0x68]
+ ldr r2, [sp, #0x80]
+ ldr r0, [sp, #0xc]
+ sub r2, r3, r2
+ ldr r1, [sp, #0x28]
+ asr r3, r2, #0x1f
+ blx _ll_mul
+ str r0, [sp, #0x40]
+ add r5, r1, #0x0
+ ldr r1, [sp, #0x38]
+ ldr r2, [sp, #0x14]
+ ldr r3, [sp, #0x18]
+ add r0, r4, #0x0
+ blx _ll_mul
+ mov r2, #0x2
+ str r0, [sp, #0x50]
+ add r0, r1, #0x0
+ mov r1, #0x0
+ lsl r2, r2, #0xa
+ add r3, r7, r2
+ adc r6, r1
+ lsl r2, r6, #0x14
+ lsr r3, r3, #0xc
+ orr r3, r2
+ mov r2, #0x2
+ ldr r6, [sp, #0x40]
+ lsl r2, r2, #0xa
+ add r2, r6, r2
+ adc r5, r1
+ mov r6, #0x2
+ lsl r5, r5, #0x14
+ lsr r2, r2, #0xc
+ orr r2, r5
+ ldr r5, [sp, #0x50]
+ lsl r6, r6, #0xa
+ add r5, r5, r6
+ adc r0, r1
+ lsl r0, r0, #0x14
+ lsr r1, r5, #0xc
+ orr r1, r0
+ add r0, r2, r1
+ add r0, r3, r0
+ str r0, [sp, #0x0]
+ ldr r3, [sp, #0x74]
+ ldr r2, [sp, #0x68]
+ ldr r0, [sp, #0xc]
+ sub r2, r3, r2
+ ldr r1, [sp, #0x28]
+ asr r3, r2, #0x1f
+ blx _ll_mul
+ add r7, r0, #0x0
+ add r6, r1, #0x0
+ ldr r3, [sp, #0x68]
+ ldr r2, [sp, #0x8c]
+ ldr r0, [sp, #0x8]
+ sub r2, r3, r2
+ ldr r1, [sp, #0x1c]
+ asr r3, r2, #0x1f
+ blx _ll_mul
+ add r5, r1, #0x0
+ str r0, [sp, #0x44]
+ ldr r1, [sp, #0x38]
+ ldr r2, [sp, #0x2c]
+ ldr r3, [sp, #0x30]
+ add r0, r4, #0x0
+ blx _ll_mul
+ mov r3, #0x2
+ mov r2, #0x0
+ lsl r3, r3, #0xa
+ add r4, r7, r3
+ adc r6, r2
+ lsl r3, r6, #0x14
+ lsr r4, r4, #0xc
+ orr r4, r3
+ mov r3, #0x2
+ ldr r6, [sp, #0x44]
+ lsl r3, r3, #0xa
+ add r3, r6, r3
+ adc r5, r2
+ lsl r5, r5, #0x14
+ lsr r3, r3, #0xc
+ orr r3, r5
+ mov r5, #0x2
+ lsl r5, r5, #0xa
+ add r5, r0, r5
+ adc r1, r2
+ lsl r0, r1, #0x14
+ lsr r1, r5, #0xc
+ orr r1, r0
+ add r0, r3, r1
+ add r6, r4, r0
+ ldr r0, [sp, #0x10]
+ ldr r1, [sp, #0x34]
+ ldr r2, [sp, #0x2c]
+ ldr r3, [sp, #0x30]
+ blx _ll_mul
+ add r7, r0, #0x0
+ add r5, r1, #0x0
+ ldr r0, [sp, #0xc]
+ ldr r1, [sp, #0x28]
+ ldr r2, [sp, #0x20]
+ ldr r3, [sp, #0x24]
+ blx _ll_mul
+ str r0, [sp, #0x48]
+ add r4, r1, #0x0
+ ldr r0, [sp, #0x8]
+ ldr r1, [sp, #0x1c]
+ ldr r2, [sp, #0x14]
+ ldr r3, [sp, #0x18]
+ blx _ll_mul
+ mov r12, r0
+ mov r0, #0x2
+ add r2, r1, #0x0
+ mov r1, #0x0
+ lsl r0, r0, #0xa
+ add r0, r7, r0
+ adc r5, r1
+ lsl r3, r5, #0x14
+ lsr r0, r0, #0xc
+ orr r0, r3
+ mov r3, #0x2
+ ldr r5, [sp, #0x48]
+ lsl r3, r3, #0xa
+ add r3, r5, r3
+ adc r4, r1
+ lsl r4, r4, #0x14
+ lsr r3, r3, #0xc
+ orr r3, r4
+ mov r4, #0x2
+ lsl r4, r4, #0xa
+ mov r5, r12
+ add r4, r5, r4
+ adc r2, r1
+ lsl r2, r2, #0x14
+ lsr r4, r4, #0xc
+ orr r4, r2
+ add r2, r3, r4
+ add r0, r0, r2
+ bpl _0201CA72
+ add sp, #0x54
+ add r0, r1, #0x0
+ pop {r4-r7}
+ pop {r3}
+ add sp, #0x10
+ bx r3
+_0201CA72:
+ ldr r0, [sp, #0x4]
+ cmp r0, #0x0
+ bge _0201CA84
+ add sp, #0x54
+ add r0, r1, #0x0
+ pop {r4-r7}
+ pop {r3}
+ add sp, #0x10
+ bx r3
+_0201CA84:
+ ldr r0, [sp, #0x0]
+ cmp r0, #0x0
+ bge _0201CA96
+ add sp, #0x54
+ add r0, r1, #0x0
+ pop {r4-r7}
+ pop {r3}
+ add sp, #0x10
+ bx r3
+_0201CA96:
+ cmp r6, #0x0
+ blt _0201CA9C
+ mov r1, #0x1
+_0201CA9C:
+ add r0, r1, #0x0
+ add sp, #0x54
+ pop {r4-r7}
+ pop {r3}
+ add sp, #0x10
+ bx r3
+
+ thumb_func_start FUN_0201CAA8
+FUN_0201CAA8: ; 0x0201CAA8
+ push {r4-r5, lr}
+ sub sp, #0x24
+ add r4, r1, #0x0
+ ldr r1, [r4, #0x0]
+ ldr r3, _0201CB1C ; =0x020FFA38
+ lsl r1, r1, #0x10
+ lsr r1, r1, #0x10
+ asr r1, r1, #0x4
+ lsl r2, r1, #0x1
+ lsl r1, r2, #0x1
+ add r2, r2, #0x1
+ lsl r2, r2, #0x1
+ ldrsh r1, [r3, r1]
+ ldrsh r2, [r3, r2]
+ add r5, r0, #0x0
+ bl MTX_RotX33_
+ ldr r0, [r4, #0x4]
+ ldr r3, _0201CB1C ; =0x020FFA38
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ asr r0, r0, #0x4
+ lsl r2, r0, #0x1
+ lsl r1, r2, #0x1
+ add r2, r2, #0x1
+ lsl r2, r2, #0x1
+ ldrsh r1, [r3, r1]
+ ldrsh r2, [r3, r2]
+ add r0, sp, #0x0
+ bl MTX_RotY33_
+ add r0, r5, #0x0
+ add r1, sp, #0x0
+ add r2, r5, #0x0
+ blx MTX_Concat33
+ ldr r0, [r4, #0x8]
+ ldr r3, _0201CB1C ; =0x020FFA38
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ asr r0, r0, #0x4
+ lsl r2, r0, #0x1
+ lsl r1, r2, #0x1
+ add r2, r2, #0x1
+ lsl r2, r2, #0x1
+ ldrsh r1, [r3, r1]
+ ldrsh r2, [r3, r2]
+ add r0, sp, #0x0
+ bl MTX_RotZ33_
+ add r0, r5, #0x0
+ add r1, sp, #0x0
+ add r2, r5, #0x0
+ blx MTX_Concat33
+ add sp, #0x24
+ pop {r4-r5, pc}
+ nop
+_0201CB1C: .word 0x020FFA38
+
+ thumb_func_start FUN_0201CB20
+FUN_0201CB20: ; 0x0201CB20
+ push {r4-r7, lr}
+ sub sp, #0x24
+ add r6, r1, #0x0
+ add r5, r2, #0x0
+ lsl r1, r6, #0x2
+ ldr r2, _0201CB78 ; =0x020EDF50
+ add r6, #0x5a
+ add r4, r3, #0x0
+ lsl r3, r6, #0x2
+ ldr r1, [r2, r1]
+ ldr r2, [r2, r3]
+ add r7, r0, #0x0
+ bl MTX_RotX33_
+ lsl r1, r5, #0x2
+ ldr r3, _0201CB78 ; =0x020EDF50
+ add r5, #0x5a
+ lsl r2, r5, #0x2
+ ldr r1, [r3, r1]
+ ldr r2, [r3, r2]
+ add r0, sp, #0x0
+ bl MTX_RotY33_
+ add r0, r7, #0x0
+ add r1, sp, #0x0
+ add r2, r7, #0x0
+ blx MTX_Concat33
+ lsl r1, r4, #0x2
+ ldr r3, _0201CB78 ; =0x020EDF50
+ add r4, #0x5a
+ lsl r2, r4, #0x2
+ ldr r1, [r3, r1]
+ ldr r2, [r3, r2]
+ add r0, sp, #0x0
+ bl MTX_RotZ33_
+ add r0, r7, #0x0
+ add r1, sp, #0x0
+ add r2, r7, #0x0
+ blx MTX_Concat33
+ add sp, #0x24
+ pop {r4-r7, pc}
+ .balign 4
+_0201CB78: .word 0x020EDF50
+
+ thumb_func_start FUN_0201CB7C
+FUN_0201CB7C: ; 0x0201CB7C
+ push {r3-r7, lr}
+ asr r0, r0, #0x4
+ add r7, r2, #0x0
+ lsl r2, r0, #0x1
+ add r6, r1, #0x0
+ lsl r0, r2, #0x1
+ ldr r1, _0201CBE8 ; =0x020FFA38
+ add r2, r2, #0x1
+ lsl r2, r2, #0x1
+ ldrsh r0, [r1, r0]
+ ldrsh r1, [r1, r2]
+ add r5, r3, #0x0
+ ldr r4, [sp, #0x18]
+ blx FX_Div
+ add r2, r0, #0x0
+ asr r1, r6, #0x1f
+ add r0, r6, #0x0
+ asr r3, r2, #0x1f
+ blx _ll_mul
+ mov r6, #0x2
+ mov r2, #0x0
+ lsl r6, r6, #0xa
+ add r0, r0, r6
+ adc r1, r2
+ lsl r1, r1, #0x14
+ lsr r0, r0, #0xc
+ orr r0, r1
+ asr r3, r0, #0x1f
+ lsr r1, r0, #0x13
+ lsl r3, r3, #0xd
+ orr r3, r1
+ lsl r0, r0, #0xd
+ add r0, r0, r6
+ adc r3, r2
+ lsl r1, r3, #0x14
+ lsr r0, r0, #0xc
+ orr r0, r1
+ asr r1, r0, #0x1f
+ asr r3, r7, #0x1f
+ add r2, r7, #0x0
+ str r0, [r4, #0x0]
+ blx _ll_mul
+ mov r3, #0x0
+ add r2, r6, #0x0
+ add r2, r0, r2
+ adc r1, r3
+ lsl r0, r1, #0x14
+ lsr r1, r2, #0xc
+ orr r1, r0
+ str r1, [r5, #0x0]
+ pop {r3-r7, pc}
+ .balign 4
+_0201CBE8: .word 0x020FFA38
+
+ thumb_func_start FUN_0201CBEC
+FUN_0201CBEC: ; 0x0201CBEC
+ push {r3, lr}
+ sub r0, r0, r2
+ sub r2, r1, r3
+ add r1, r0, #0x0
+ mul r1, r0
+ add r0, r2, #0x0
+ mul r0, r2
+ add r0, r1, r0
+ lsl r0, r0, #0xc
+ blx FX_Sqrt
+ asr r0, r0, #0xc
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_0201CC08
+FUN_0201CC08: ; 0x0201CC08
+ push {r3, lr}
+ ldr r0, _0201CC20 ; =0x021C5978
+ ldrh r0, [r0, #0x1a]
+ cmp r0, #0x0
+ beq _0201CC16
+ bl ErrorHandling
+_0201CC16:
+ ldr r0, _0201CC20 ; =0x021C5978
+ mov r1, #0x0
+ strh r1, [r0, #0x18]
+ strh r1, [r0, #0x1a]
+ pop {r3, pc}
+ .balign 4
+_0201CC20: .word 0x021C5978
+
+ thumb_func_start FUN_0201CC24
+FUN_0201CC24: ; 0x0201CC24
+ push {r4, lr}
+ sub sp, #0x8
+ add r4, r0, #0x0
+ ldr r0, _0201CC74 ; =0x021C5978
+ ldrh r0, [r0, #0x1a]
+ cmp r0, #0x0
+ beq _0201CC36
+ bl ErrorHandling
+_0201CC36:
+ cmp r4, #0x5
+ bhs _0201CC3E
+ cmp r4, #0x0
+ bne _0201CC44
+_0201CC3E:
+ add sp, #0x8
+ mov r0, #0x0
+ pop {r4, pc}
+_0201CC44:
+ ldr r0, _0201CC74 ; =0x021C5978
+ ldrh r0, [r0, #0x18]
+ cmp r0, #0x0
+ beq _0201CC52
+ add sp, #0x8
+ mov r0, #0x0
+ pop {r4, pc}
+_0201CC52:
+ add r0, r4, #0x0
+ bl FUN_0201CE2C
+ cmp r0, #0x1
+ bne _0201CC70
+ mov r2, #0x0
+ str r2, [sp, #0x0]
+ lsl r0, r4, #0x1
+ str r0, [sp, #0x4]
+ mov r0, #0x2
+ mov r1, #0x1
+ add r3, r2, #0x0
+ bl FUN_0201CC78
+ mov r0, #0x1
+_0201CC70:
+ add sp, #0x8
+ pop {r4, pc}
+ .balign 4
+_0201CC74: .word 0x021C5978
+
+ thumb_func_start FUN_0201CC78
+FUN_0201CC78: ; 0x0201CC78
+ push {r4, lr}
+ ldr r4, _0201CC9C ; =0x021C5978
+ strh r0, [r4, #0x18]
+ ldr r0, _0201CCA0 ; =0x021C4918
+ strb r1, [r0, #0x4]
+ ldr r0, _0201CCA4 ; =0x021C5938
+ ldr r1, [sp, #0xc]
+ str r2, [r0, #0x0]
+ str r3, [r0, #0x4]
+ str r1, [r0, #0x8]
+ ldr r1, [sp, #0x8]
+ str r1, [r0, #0x54]
+ ldr r0, _0201CCA8 ; =0x021C5944
+ mov r1, #0x9
+ bl FUN_0201CCAC
+ pop {r4, pc}
+ nop
+_0201CC9C: .word 0x021C5978
+_0201CCA0: .word 0x021C4918
+_0201CCA4: .word 0x021C5938
+_0201CCA8: .word 0x021C5944
+
+ thumb_func_start FUN_0201CCAC
+FUN_0201CCAC: ; 0x0201CCAC
+ mov r3, #0x0
+ cmp r1, #0x0
+ ble _0201CCBE
+ add r2, r3, #0x0
+_0201CCB4:
+ add r3, r3, #0x1
+ strh r2, [r0, #0x4]
+ add r0, #0x8
+ cmp r3, r1
+ blt _0201CCB4
+_0201CCBE:
+ bx lr
+
+ thumb_func_start FUN_0201CCC0
+FUN_0201CCC0: ; 0x0201CCC0
+ push {r4-r6, lr}
+ ldr r0, _0201CD00 ; =0x021C5978
+ mov r5, #0x0
+ ldrh r0, [r0, #0x18]
+ cmp r0, #0x0
+ bne _0201CCD0
+ mov r0, #0x1
+ pop {r4-r6, pc}
+_0201CCD0:
+ mov r4, #0x4
+ add r6, r4, #0x0
+_0201CCD4:
+ blx TP_RequestAutoSamplingStopAsync
+ add r0, r4, #0x0
+ blx TP_WaitBusy
+ add r0, r6, #0x0
+ blx TP_CheckError
+ cmp r0, #0x0
+ beq _0201CCEA
+ add r5, r5, #0x1
+_0201CCEA:
+ cmp r0, #0x0
+ beq _0201CCF2
+ cmp r5, #0x5
+ bls _0201CCD4
+_0201CCF2:
+ cmp r5, #0x5
+ bls _0201CCFA
+ mov r0, #0x2
+ pop {r4-r6, pc}
+_0201CCFA:
+ mov r0, #0x1
+ pop {r4-r6, pc}
+ nop
+_0201CD00: .word 0x021C5978
+
+ thumb_func_start FUN_0201CD04
+FUN_0201CD04: ; 0x0201CD04
+ push {r4, lr}
+ sub sp, #0x8
+ ldr r0, _0201CD34 ; =0x021C5978
+ ldrh r0, [r0, #0x1a]
+ cmp r0, #0x0
+ beq _0201CD14
+ bl ErrorHandling
+_0201CD14:
+ bl FUN_0201CCC0
+ add r4, r0, #0x0
+ cmp r4, #0x1
+ bne _0201CD2E
+ mov r0, #0x0
+ str r0, [sp, #0x0]
+ add r1, r0, #0x0
+ add r2, r0, #0x0
+ add r3, r0, #0x0
+ str r0, [sp, #0x4]
+ bl FUN_0201CC78
+_0201CD2E:
+ add r0, r4, #0x0
+ add sp, #0x8
+ pop {r4, pc}
+ .balign 4
+_0201CD34: .word 0x021C5978
+
+ thumb_func_start FUN_0201CD38
+FUN_0201CD38: ; 0x0201CD38
+ push {r3-r7, lr}
+ add r4, r0, #0x0
+ ldr r0, _0201CD8C ; =0x021C5978
+ add r6, r1, #0x0
+ ldrh r0, [r0, #0x1a]
+ add r7, r2, #0x0
+ mov r5, #0x3
+ cmp r0, #0x0
+ beq _0201CD4E
+ bl ErrorHandling
+_0201CD4E:
+ ldr r0, _0201CD8C ; =0x021C5978
+ ldrh r0, [r0, #0x18]
+ cmp r0, #0x0
+ beq _0201CD88
+ blx TP_GetLatestIndexInAuto
+ add r5, r0, #0x0
+ ldr r0, _0201CD90 ; =0x021C5944
+ mov r1, #0x9
+ bl FUN_0201CD94
+ cmp r4, #0x0
+ beq _0201CD70
+ add r0, r4, #0x0
+ add r1, r5, #0x0
+ bl FUN_0201CFD0
+_0201CD70:
+ ldr r0, _0201CD8C ; =0x021C5978
+ ldrh r0, [r0, #0x18]
+ cmp r0, #0x1
+ bne _0201CD86
+ add r0, r6, #0x0
+ add r1, r5, #0x0
+ add r2, r7, #0x0
+ bl FUN_0201CE70
+ add r5, r0, #0x0
+ b _0201CD88
+_0201CD86:
+ mov r5, #0x1
+_0201CD88:
+ add r0, r5, #0x0
+ pop {r3-r7, pc}
+ .balign 4
+_0201CD8C: .word 0x021C5978
+_0201CD90: .word 0x021C5944
+
+ thumb_func_start FUN_0201CD94
+FUN_0201CD94: ; 0x0201CD94
+ push {r4-r7, lr}
+ sub sp, #0xc
+ add r5, r0, #0x0
+ mov r7, #0x0
+ str r1, [sp, #0x0]
+ add r0, r1, #0x0
+ beq _0201CDCA
+ add r4, r5, #0x0
+ add r6, sp, #0x4
+_0201CDA6:
+ add r0, sp, #0x4
+ add r1, r5, #0x0
+ blx TP_GetCalibratedPoint
+ ldrh r0, [r6, #0x0]
+ add r7, r7, #0x1
+ add r5, #0x8
+ strh r0, [r4, #0x0]
+ ldrh r0, [r6, #0x2]
+ strh r0, [r4, #0x2]
+ ldrh r0, [r6, #0x4]
+ strh r0, [r4, #0x4]
+ ldrh r0, [r6, #0x6]
+ strh r0, [r4, #0x6]
+ ldr r0, [sp, #0x0]
+ add r4, #0x8
+ cmp r7, r0
+ blo _0201CDA6
+_0201CDCA:
+ add sp, #0xc
+ pop {r4-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_0201CDD0
+FUN_0201CDD0: ; 0x0201CDD0
+ push {r3, lr}
+ ldr r0, _0201CDFC ; =0x021C5978
+ ldrh r1, [r0, #0x1a]
+ cmp r1, #0x0
+ beq _0201CDF8
+ ldrh r0, [r0, #0x18]
+ cmp r0, #0x0
+ beq _0201CDF8
+ ldr r0, _0201CE00 ; =0x021C5938
+ ldr r0, [r0, #0x8]
+ lsr r0, r0, #0x1
+ bl FUN_0201CE2C
+ cmp r0, #0x1
+ beq _0201CDF2
+ bl ErrorHandling
+_0201CDF2:
+ ldr r0, _0201CDFC ; =0x021C5978
+ mov r1, #0x0
+ strh r1, [r0, #0x1a]
+_0201CDF8:
+ pop {r3, pc}
+ nop
+_0201CDFC: .word 0x021C5978
+_0201CE00: .word 0x021C5938
+
+ thumb_func_start FUN_0201CE04
+FUN_0201CE04: ; 0x0201CE04
+ push {r3, lr}
+ ldr r0, _0201CE28 ; =0x021C5978
+ ldrh r1, [r0, #0x1a]
+ cmp r1, #0x1
+ beq _0201CE26
+ ldrh r0, [r0, #0x18]
+ cmp r0, #0x0
+ beq _0201CE26
+ bl FUN_0201CCC0
+ cmp r0, #0x1
+ beq _0201CE20
+ bl ErrorHandling
+_0201CE20:
+ ldr r0, _0201CE28 ; =0x021C5978
+ mov r1, #0x1
+ strh r1, [r0, #0x1a]
+_0201CE26:
+ pop {r3, pc}
+ .balign 4
+_0201CE28: .word 0x021C5978
+
+ thumb_func_start FUN_0201CE2C
+FUN_0201CE2C: ; 0x0201CE2C
+ push {r3-r7, lr}
+ mov r5, #0x0
+ lsl r0, r0, #0x10
+ ldr r7, _0201CE6C ; =0x021C5944
+ add r6, r5, #0x0
+ lsr r4, r0, #0x10
+_0201CE38:
+ add r0, r6, #0x0
+ add r1, r4, #0x0
+ add r2, r7, #0x0
+ mov r3, #0x9
+ blx TP_RequestAutoSamplingStartAsync
+ mov r0, #0x2
+ blx TP_WaitBusy
+ mov r0, #0x2
+ blx TP_CheckError
+ cmp r0, #0x0
+ beq _0201CE56
+ add r5, r5, #0x1
+_0201CE56:
+ cmp r0, #0x0
+ beq _0201CE5E
+ cmp r5, #0x5
+ ble _0201CE38
+_0201CE5E:
+ cmp r5, #0x5
+ ble _0201CE66
+ mov r0, #0x2
+ pop {r3-r7, pc}
+_0201CE66:
+ mov r0, #0x1
+ pop {r3-r7, pc}
+ nop
+_0201CE6C: .word 0x021C5944
+
+ thumb_func_start FUN_0201CE70
+FUN_0201CE70: ; 0x0201CE70
+ push {r3, lr}
+ cmp r0, #0x5
+ bhi _0201CE9A
+ add r3, r0, r0
+ add r3, pc
+ ldrh r3, [r3, #0x6]
+ lsl r3, r3, #0x10
+ asr r3, r3, #0x10
+ add pc, r3
+_0201CE82: ; jump table (using 16-bit offset)
+ .short _0201CE9A - _0201CE82 - 2; case 0
+ .short _0201CE8E - _0201CE82 - 2; case 1
+ .short _0201CE9A - _0201CE82 - 2; case 2
+ .short _0201CE8E - _0201CE82 - 2; case 3
+ .short _0201CE94 - _0201CE82 - 2; case 4
+ .short _0201CE94 - _0201CE82 - 2; case 5
+_0201CE8E:
+ bl FUN_0201CEA0
+ pop {r3, pc}
+_0201CE94:
+ bl FUN_0201CF58
+ pop {r3, pc}
+_0201CE9A:
+ mov r0, #0x1
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_0201CEA0
+FUN_0201CEA0: ; 0x0201CEA0
+ push {r3-r7, lr}
+ sub sp, #0x8
+ ldr r5, _0201CF50 ; =0x021C5938
+ str r1, [sp, #0x4]
+ ldr r1, [r5, #0x8]
+ str r0, [sp, #0x0]
+ add r7, r2, #0x0
+ mov r4, #0x0
+ cmp r1, #0x0
+ bls _0201CF46
+_0201CEB4:
+ ldr r0, [sp, #0x4]
+ sub r0, r0, r1
+ add r0, r4, r0
+ add r0, r0, #0x1
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ bpl _0201CEC8
+ add r0, #0x9
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+_0201CEC8:
+ lsl r1, r0, #0x3
+ ldr r0, _0201CF54 ; =0x021C5938
+ add r1, r0, r1
+ ldrh r0, [r1, #0x10]
+ cmp r0, #0x1
+ bne _0201CF3E
+ ldrh r0, [r1, #0x12]
+ cmp r0, #0x0
+ bne _0201CF3E
+ ldr r2, [r5, #0x54]
+ ldr r0, [r5, #0x0]
+ lsl r2, r2, #0x3
+ add r2, r0, r2
+ add r0, r2, #0x0
+ sub r0, #0x8
+ ldrh r3, [r1, #0xc]
+ ldrh r0, [r0, #0x0]
+ cmp r0, r3
+ blt _0201CEF2
+ sub r3, r0, r3
+ b _0201CEF4
+_0201CEF2:
+ sub r3, r3, r0
+_0201CEF4:
+ sub r6, r2, #0x6
+ ldrh r0, [r1, #0xe]
+ ldrh r6, [r6, #0x0]
+ cmp r6, r0
+ blt _0201CF02
+ sub r0, r6, r0
+ b _0201CF04
+_0201CF02:
+ sub r0, r0, r6
+_0201CF04:
+ cmp r3, r7
+ bhs _0201CF0C
+ cmp r0, r7
+ blo _0201CF3E
+_0201CF0C:
+ ldrh r0, [r1, #0xc]
+ strh r0, [r2, #0x0]
+ ldrh r0, [r1, #0xe]
+ strh r0, [r2, #0x2]
+ ldrh r0, [r1, #0x10]
+ strh r0, [r2, #0x4]
+ ldrh r0, [r1, #0x12]
+ strh r0, [r2, #0x6]
+ ldr r0, [r5, #0x54]
+ add r0, r0, #0x1
+ str r0, [r5, #0x54]
+ ldr r1, [r5, #0x4]
+ cmp r0, r1
+ blo _0201CF3E
+ ldr r2, [sp, #0x0]
+ cmp r2, #0x1
+ bne _0201CF36
+ blx _u32_div_f
+ str r1, [r5, #0x54]
+ b _0201CF3E
+_0201CF36:
+ mov r0, #0x0
+ add sp, #0x8
+ mvn r0, r0
+ pop {r3-r7, pc}
+_0201CF3E:
+ ldr r1, [r5, #0x8]
+ add r4, r4, #0x1
+ cmp r4, r1
+ blo _0201CEB4
+_0201CF46:
+ ldr r0, _0201CF50 ; =0x021C5938
+ ldr r0, [r0, #0x54]
+ add sp, #0x8
+ pop {r3-r7, pc}
+ nop
+_0201CF50: .word 0x021C5938
+_0201CF54: .word 0x021C5938
+
+ thumb_func_start FUN_0201CF58
+FUN_0201CF58: ; 0x0201CF58
+ push {r3-r7, lr}
+ ldr r5, _0201CFC8 ; =0x021C5938
+ str r1, [sp, #0x0]
+ ldr r1, [r5, #0x8]
+ add r7, r0, #0x0
+ mov r4, #0x0
+ cmp r1, #0x0
+ bls _0201CFC0
+_0201CF68:
+ ldr r0, [sp, #0x0]
+ sub r0, r0, r1
+ add r0, r4, r0
+ add r0, r0, #0x1
+ lsl r0, r0, #0x10
+ asr r1, r0, #0x10
+ bpl _0201CF7C
+ add r1, #0x9
+ lsl r0, r1, #0x10
+ asr r1, r0, #0x10
+_0201CF7C:
+ ldr r0, [r5, #0x54]
+ lsl r1, r1, #0x3
+ lsl r3, r0, #0x3
+ ldr r0, _0201CFCC ; =0x021C5938
+ ldr r6, [r5, #0x0]
+ add r2, r0, r1
+ ldrh r0, [r2, #0xc]
+ add r1, r6, r3
+ strh r0, [r6, r3]
+ ldrh r0, [r2, #0xe]
+ strh r0, [r1, #0x2]
+ ldrh r0, [r2, #0x10]
+ strh r0, [r1, #0x4]
+ ldrh r0, [r2, #0x12]
+ strh r0, [r1, #0x6]
+ ldr r0, [r5, #0x54]
+ add r0, r0, #0x1
+ str r0, [r5, #0x54]
+ ldr r1, [r5, #0x4]
+ cmp r0, r1
+ blo _0201CFB8
+ cmp r7, #0x4
+ bne _0201CFB2
+ blx _u32_div_f
+ str r1, [r5, #0x54]
+ b _0201CFB8
+_0201CFB2:
+ mov r0, #0x0
+ mvn r0, r0
+ pop {r3-r7, pc}
+_0201CFB8:
+ ldr r1, [r5, #0x8]
+ add r4, r4, #0x1
+ cmp r4, r1
+ blo _0201CF68
+_0201CFC0:
+ ldr r0, _0201CFC8 ; =0x021C5938
+ ldr r0, [r0, #0x54]
+ pop {r3-r7, pc}
+ nop
+_0201CFC8: .word 0x021C5938
+_0201CFCC: .word 0x021C5938
+
+ thumb_func_start FUN_0201CFD0
+FUN_0201CFD0: ; 0x0201CFD0
+ push {r4-r7}
+ mov r2, #0x0
+ strh r2, [r0, #0x0]
+ add r3, r0, #0x0
+ add r6, r2, #0x0
+_0201CFDA:
+ strh r6, [r3, #0x8]
+ strh r6, [r3, #0x6]
+ strh r6, [r3, #0x2]
+ strh r6, [r3, #0x4]
+ add r2, r2, #0x1
+ add r3, #0x8
+ cmp r2, #0x8
+ blt _0201CFDA
+ ldr r2, _0201D038 ; =0x021C5938
+ ldr r3, [r2, #0x8]
+ cmp r3, #0x0
+ bls _0201D034
+ ldr r4, _0201D03C ; =0x021C5938
+_0201CFF4:
+ sub r3, r1, r3
+ add r3, r6, r3
+ add r3, r3, #0x1
+ lsl r3, r3, #0x10
+ asr r3, r3, #0x10
+ bpl _0201D006
+ add r3, #0x9
+ lsl r3, r3, #0x10
+ asr r3, r3, #0x10
+_0201D006:
+ lsl r3, r3, #0x3
+ add r5, r4, r3
+ ldrh r3, [r5, #0x12]
+ cmp r3, #0x0
+ bne _0201D02C
+ ldrh r3, [r0, #0x0]
+ ldrh r7, [r5, #0xc]
+ lsl r3, r3, #0x3
+ add r3, r0, r3
+ strh r7, [r3, #0x2]
+ ldrh r7, [r5, #0xe]
+ strh r7, [r3, #0x4]
+ ldrh r7, [r5, #0x10]
+ strh r7, [r3, #0x6]
+ ldrh r5, [r5, #0x12]
+ strh r5, [r3, #0x8]
+ ldrh r3, [r0, #0x0]
+ add r3, r3, #0x1
+ strh r3, [r0, #0x0]
+_0201D02C:
+ ldr r3, [r2, #0x8]
+ add r6, r6, #0x1
+ cmp r6, r3
+ blo _0201CFF4
+_0201D034:
+ pop {r4-r7}
+ bx lr
+ .balign 4
+_0201D038: .word 0x021C5938
+_0201D03C: .word 0x021C5938
+
+ thumb_func_start FUN_0201D040
+FUN_0201D040: ; 0x0201D040
+ ldr r1, _0201D054 ; =0x04001000
+ ldr r2, [r1, #0x0]
+ ldr r1, _0201D058 ; =0x00300010
+ lsl r3, r1, #0x16
+ ldr r3, [r3, #0x0]
+ and r2, r1
+ and r1, r3
+ ldr r3, _0201D05C ; =FUN_0201D060
+ bx r3
+ nop
+_0201D054: .word 0x04001000
+_0201D058: .word 0x00300010
+_0201D05C: .word FUN_0201D060
+
+ thumb_func_start FUN_0201D060
+FUN_0201D060: ; 0x0201D060
+ push {r3-r7, lr}
+ sub sp, #0x8
+ add r5, r0, #0x0
+ ldr r0, _0201D120 ; =0x021C5994
+ str r1, [sp, #0x0]
+ ldr r0, [r0, #0x0]
+ str r2, [sp, #0x4]
+ cmp r0, #0x0
+ bne _0201D11A
+ ldr r0, [r5, #0xc]
+ mov r1, #0x3c
+ bl FUN_02016998
+ add r1, r0, #0x0
+ ldr r0, _0201D120 ; =0x021C5994
+ mov r2, #0x3c
+ str r1, [r0, #0x0]
+ mov r0, #0x0
+ blx MIi_CpuClear32
+ ldr r1, _0201D120 ; =0x021C5994
+ ldr r2, [r5, #0x0]
+ ldr r0, [r1, #0x0]
+ str r2, [r0, #0x4]
+ ldr r1, [r1, #0x0]
+ ldr r0, [r5, #0xc]
+ ldr r2, [r1, #0x4]
+ mov r1, #0x54
+ mul r1, r2
+ bl FUN_02016998
+ ldr r7, _0201D120 ; =0x021C5994
+ mov r6, #0x0
+ ldr r1, [r7, #0x0]
+ str r0, [r1, #0x0]
+ ldr r0, [r5, #0x0]
+ cmp r0, #0x0
+ ble _0201D0C2
+ add r4, r6, #0x0
+_0201D0AE:
+ ldr r0, [r7, #0x0]
+ ldr r0, [r0, #0x0]
+ add r0, r0, r4
+ bl FUN_0201D690
+ ldr r0, [r5, #0x0]
+ add r6, r6, #0x1
+ add r4, #0x54
+ cmp r6, r0
+ blt _0201D0AE
+_0201D0C2:
+ ldr r0, [sp, #0x0]
+ bl FUN_0201DED0
+ ldr r1, _0201D120 ; =0x021C5994
+ ldr r1, [r1, #0x0]
+ str r0, [r1, #0x2c]
+ ldr r0, [sp, #0x4]
+ bl FUN_0201DED0
+ ldr r2, _0201D120 ; =0x021C5994
+ mov r3, #0x1
+ ldr r1, [r2, #0x0]
+ lsl r3, r3, #0x1a
+ str r0, [r1, #0x30]
+ ldr r0, [r3, #0x0]
+ ldr r1, _0201D124 ; =0xFFCFFFEF
+ add r4, r0, #0x0
+ ldr r0, [sp, #0x0]
+ and r4, r1
+ orr r0, r4
+ str r0, [r3, #0x0]
+ ldr r3, _0201D128 ; =0x04001000
+ ldr r0, [r3, #0x0]
+ and r1, r0
+ ldr r0, [sp, #0x4]
+ orr r0, r1
+ str r0, [r3, #0x0]
+ ldr r1, [r2, #0x0]
+ ldr r0, [r5, #0x4]
+ ldr r1, [r1, #0x2c]
+ bl FUN_0201DF2C
+ ldr r1, _0201D120 ; =0x021C5994
+ add r4, r0, #0x0
+ ldr r1, [r1, #0x0]
+ ldr r0, [r5, #0x8]
+ ldr r1, [r1, #0x30]
+ bl FUN_0201DF2C
+ add r1, r0, #0x0
+ ldr r2, [r5, #0xc]
+ add r0, r4, #0x0
+ bl FUN_0201DC58
+_0201D11A:
+ add sp, #0x8
+ pop {r3-r7, pc}
+ nop
+_0201D120: .word 0x021C5994
+_0201D124: .word 0xFFCFFFEF
+_0201D128: .word 0x04001000
+
+ thumb_func_start FUN_0201D12C
+FUN_0201D12C: ; 0x0201D12C
+ push {r3, lr}
+ ldr r0, _0201D164 ; =0x021C5994
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ beq _0201D162
+ ldr r0, [r0, #0x34]
+ bl FUN_0201DCC0
+ ldr r0, _0201D164 ; =0x021C5994
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0x38]
+ bl FUN_0201DCC0
+ bl FUN_0201D374
+ ldr r0, _0201D164 ; =0x021C5994
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0x0]
+ bl FUN_02016A18
+ ldr r0, _0201D164 ; =0x021C5994
+ ldr r0, [r0, #0x0]
+ bl FUN_02016A18
+ ldr r0, _0201D164 ; =0x021C5994
+ mov r1, #0x0
+ str r1, [r0, #0x0]
+_0201D162:
+ pop {r3, pc}
+ .balign 4
+_0201D164: .word 0x021C5994
+
+ thumb_func_start FUN_0201D168
+FUN_0201D168: ; 0x0201D168
+ push {r3, lr}
+ ldr r0, _0201D190 ; =0x021C5994
+ mov r2, #0x0
+ ldr r1, [r0, #0x0]
+ str r2, [r1, #0xc]
+ ldr r1, [r0, #0x0]
+ str r2, [r1, #0x10]
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0x34]
+ bl FUN_0201DD00
+ ldr r0, _0201D190 ; =0x021C5994
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0x38]
+ bl FUN_0201DD00
+ bl FUN_0201DAE8
+ pop {r3, pc}
+ nop
+_0201D190: .word 0x021C5994
+
+ thumb_func_start FUN_0201D194
+FUN_0201D194: ; 0x0201D194
+ push {r3-r4, lr}
+ sub sp, #0xc
+ add r4, r0, #0x0
+ add r3, r1, #0x0
+ cmp r2, #0x1
+ add r0, sp, #0x4
+ bne _0201D1CA
+ str r0, [sp, #0x0]
+ ldr r0, _0201D1F4 ; =0x021C5994
+ add r2, r3, #0x0
+ ldr r0, [r0, #0x0]
+ add r1, r4, #0x0
+ ldr r0, [r0, #0x1c]
+ add r3, sp, #0x8
+ bl FUN_0201DFF0
+ ldr r3, [sp, #0x4]
+ cmp r3, #0x0
+ ble _0201D1F0
+ mov r2, #0x0
+ str r2, [sp, #0x0]
+ ldr r1, [sp, #0x8]
+ mov r0, #0x1
+ bl FUN_0201D948
+ add sp, #0xc
+ pop {r3-r4, pc}
+_0201D1CA:
+ str r0, [sp, #0x0]
+ ldr r0, _0201D1F4 ; =0x021C5994
+ add r2, r3, #0x0
+ ldr r0, [r0, #0x0]
+ add r1, r4, #0x0
+ ldr r0, [r0, #0x20]
+ add r3, sp, #0x8
+ bl FUN_0201DFF0
+ ldr r0, [sp, #0x4]
+ cmp r0, #0x0
+ ble _0201D1F0
+ str r0, [sp, #0x0]
+ mov r1, #0x0
+ ldr r2, [sp, #0x8]
+ mov r0, #0x2
+ add r3, r1, #0x0
+ bl FUN_0201D948
+_0201D1F0:
+ add sp, #0xc
+ pop {r3-r4, pc}
+ .balign 4
+_0201D1F4: .word 0x021C5994
+
+ thumb_func_start FUN_0201D1F8
+FUN_0201D1F8: ; 0x0201D1F8
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ ldr r0, [r5, #0x8]
+ bl FUN_0201D2AC
+ cmp r0, #0x1
+ bne _0201D20A
+ bl ErrorHandling
+_0201D20A:
+ bl FUN_0201DAAC
+ add r4, r0, #0x0
+ bne _0201D21A
+ bl ErrorHandling
+ mov r0, #0x0
+ pop {r3-r5, pc}
+_0201D21A:
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_0201D6B4
+ cmp r0, #0x0
+ bne _0201D22A
+ mov r0, #0x0
+ pop {r3-r5, pc}
+_0201D22A:
+ add r0, r4, #0x0
+ bl FUN_0201D724
+ cmp r0, #0x0
+ bne _0201D23E
+ ldr r0, [r4, #0xc]
+ bl FUN_0201D324
+ mov r0, #0x0
+ pop {r3-r5, pc}
+_0201D23E:
+ ldr r0, _0201D24C ; =0x021C5994
+ ldr r1, [r0, #0x0]
+ ldr r0, [r1, #0x8]
+ add r0, r0, #0x1
+ str r0, [r1, #0x8]
+ mov r0, #0x1
+ pop {r3-r5, pc}
+ .balign 4
+_0201D24C: .word 0x021C5994
+
+ thumb_func_start FUN_0201D250
+FUN_0201D250: ; 0x0201D250
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ ldr r0, [r5, #0x8]
+ bl FUN_0201D2AC
+ cmp r0, #0x1
+ bne _0201D262
+ bl ErrorHandling
+_0201D262:
+ bl FUN_0201DAAC
+ add r4, r0, #0x0
+ bne _0201D272
+ bl ErrorHandling
+ mov r0, #0x0
+ pop {r3-r5, pc}
+_0201D272:
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_0201D6B4
+ cmp r0, #0x0
+ bne _0201D282
+ mov r0, #0x0
+ pop {r3-r5, pc}
+_0201D282:
+ mov r0, #0x1
+ str r0, [r4, #0x40]
+ add r0, r4, #0x0
+ bl FUN_0201D724
+ cmp r0, #0x0
+ bne _0201D29A
+ ldr r0, [r4, #0xc]
+ bl FUN_0201D324
+ mov r0, #0x0
+ pop {r3-r5, pc}
+_0201D29A:
+ ldr r0, _0201D2A8 ; =0x021C5994
+ ldr r1, [r0, #0x0]
+ ldr r0, [r1, #0x8]
+ add r0, r0, #0x1
+ str r0, [r1, #0x8]
+ mov r0, #0x1
+ pop {r3-r5, pc}
+ .balign 4
+_0201D2A8: .word 0x021C5994
+
+ thumb_func_start FUN_0201D2AC
+FUN_0201D2AC: ; 0x0201D2AC
+ push {r3-r4}
+ ldr r1, _0201D2D8 ; =0x021C5994
+ mov r2, #0x0
+ ldr r4, [r1, #0x0]
+ ldr r1, [r4, #0x4]
+ cmp r1, #0x0
+ ble _0201D2D2
+ ldr r3, [r4, #0x0]
+_0201D2BC:
+ ldr r1, [r3, #0xc]
+ cmp r0, r1
+ bne _0201D2C8
+ mov r0, #0x1
+ pop {r3-r4}
+ bx lr
+_0201D2C8:
+ ldr r1, [r4, #0x4]
+ add r2, r2, #0x1
+ add r3, #0x54
+ cmp r2, r1
+ blt _0201D2BC
+_0201D2D2:
+ mov r0, #0x0
+ pop {r3-r4}
+ bx lr
+ .balign 4
+_0201D2D8: .word 0x021C5994
+
+ thumb_func_start FUN_0201D2DC
+FUN_0201D2DC: ; 0x0201D2DC
+ push {r3-r5, lr}
+ add r4, r0, #0x0
+ add r5, r1, #0x0
+ bne _0201D2E8
+ bl ErrorHandling
+_0201D2E8:
+ add r0, r4, #0x0
+ bl FUN_0201D7F8
+ add r4, r0, #0x0
+ bne _0201D2F6
+ bl ErrorHandling
+_0201D2F6:
+ str r5, [r4, #0x0]
+ ldr r1, [r4, #0x4]
+ mov r0, #0x1
+ tst r0, r1
+ beq _0201D30C
+ ldr r1, [r4, #0x34]
+ ldr r2, [r5, #0x14]
+ ldr r3, [r5, #0x10]
+ mov r0, #0x13
+ bl FUN_0201C2C8
+_0201D30C:
+ ldr r1, [r4, #0x4]
+ mov r0, #0x2
+ tst r0, r1
+ beq _0201D320
+ ldr r1, [r4, #0x38]
+ ldr r2, [r5, #0x14]
+ ldr r3, [r5, #0x10]
+ mov r0, #0x23
+ bl FUN_0201C2C8
+_0201D320:
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_0201D324
+FUN_0201D324: ; 0x0201D324
+ push {r3-r7, lr}
+ add r6, r0, #0x0
+ mov r5, #0x1
+ mov r7, #0x0
+_0201D32C:
+ add r0, r6, #0x0
+ bl FUN_0201D7F8
+ add r4, r0, #0x0
+ bne _0201D33A
+ bl ErrorHandling
+_0201D33A:
+ add r0, r4, #0x0
+ add r0, #0x3c
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x4
+ bne _0201D34E
+ add r0, r4, #0x0
+ add r0, #0x10
+ bl FUN_0201D4F0
+ b _0201D350
+_0201D34E:
+ add r5, r7, #0x0
+_0201D350:
+ cmp r5, #0x0
+ bne _0201D32C
+ add r0, r4, #0x0
+ add r0, #0x3c
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x0
+ beq _0201D36E
+ add r0, r4, #0x0
+ bl FUN_0201D7E0
+ ldr r0, _0201D370 ; =0x021C5994
+ ldr r1, [r0, #0x0]
+ ldr r0, [r1, #0x8]
+ sub r0, r0, #0x1
+ str r0, [r1, #0x8]
+_0201D36E:
+ pop {r3-r7, pc}
+ .balign 4
+_0201D370: .word 0x021C5994
+
+ thumb_func_start FUN_0201D374
+FUN_0201D374: ; 0x0201D374
+ push {r4-r6, lr}
+ ldr r6, _0201D3AC ; =0x021C5994
+ mov r4, #0x0
+ ldr r1, [r6, #0x0]
+ ldr r0, [r1, #0x4]
+ cmp r0, #0x0
+ ble _0201D3AA
+ add r5, r4, #0x0
+_0201D384:
+ ldr r1, [r1, #0x0]
+ add r0, r1, r5
+ add r0, #0x3c
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x0
+ beq _0201D39E
+ add r0, r1, r5
+ bl FUN_0201D7E0
+ ldr r1, [r6, #0x0]
+ ldr r0, [r1, #0x8]
+ sub r0, r0, #0x1
+ str r0, [r1, #0x8]
+_0201D39E:
+ ldr r1, [r6, #0x0]
+ add r4, r4, #0x1
+ ldr r0, [r1, #0x4]
+ add r5, #0x54
+ cmp r4, r0
+ blt _0201D384
+_0201D3AA:
+ pop {r4-r6, pc}
+ .balign 4
+_0201D3AC: .word 0x021C5994
+
+ thumb_func_start FUN_0201D3B0
+FUN_0201D3B0: ; 0x0201D3B0
+ push {r4, lr}
+ bl FUN_0201D7F8
+ add r4, r0, #0x0
+ bne _0201D3BE
+ bl ErrorHandling
+_0201D3BE:
+ add r0, r4, #0x0
+ add r0, #0x3c
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x0
+ bne _0201D3CC
+ mov r0, #0x0
+ pop {r4, pc}
+_0201D3CC:
+ add r4, #0x10
+ add r0, r4, #0x0
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0201D3D4
+FUN_0201D3D4: ; 0x0201D3D4
+ push {r3-r5, lr}
+ sub sp, #0x18
+ add r5, r1, #0x0
+ bl FUN_0201D7F8
+ add r4, r0, #0x0
+ bne _0201D3E6
+ bl ErrorHandling
+_0201D3E6:
+ add r0, r4, #0x0
+ add r0, #0x3c
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x0
+ bne _0201D3F6
+ add sp, #0x18
+ mov r0, #0x0
+ pop {r3-r5, pc}
+_0201D3F6:
+ add r0, sp, #0xc
+ str r0, [sp, #0x0]
+ add r0, sp, #0x8
+ str r0, [sp, #0x4]
+ ldr r0, [r4, #0x4]
+ add r1, sp, #0x14
+ add r2, sp, #0x10
+ add r3, r5, #0x0
+ bl FUN_0201D86C
+ add r0, r4, #0x0
+ add r0, #0x3c
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x3
+ bne _0201D41A
+ add sp, #0x18
+ mov r0, #0x0
+ pop {r3-r5, pc}
+_0201D41A:
+ add r0, r4, #0x0
+ mov r1, #0x3
+ add r0, #0x3c
+ strb r1, [r0, #0x0]
+ ldr r1, [sp, #0x14]
+ ldr r2, [sp, #0x10]
+ add r0, r4, #0x0
+ bl FUN_0201D918
+ mov r0, #0x1
+ str r0, [r4, #0x48]
+ ldr r0, [sp, #0xc]
+ str r0, [r4, #0x4c]
+ ldr r0, [sp, #0x8]
+ str r0, [r4, #0x50]
+ add r0, r4, #0x0
+ bl FUN_0201DA38
+ ldr r0, [sp, #0x8]
+ str r0, [sp, #0x0]
+ ldr r0, [r4, #0x4]
+ ldr r1, [sp, #0x14]
+ ldr r2, [sp, #0x10]
+ ldr r3, [sp, #0xc]
+ bl FUN_0201D948
+ add r4, #0x10
+ add r0, r4, #0x0
+ add sp, #0x18
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_0201D458
+FUN_0201D458: ; 0x0201D458
+ push {r3-r5, lr}
+ sub sp, #0x18
+ bl FUN_0201D6D8
+ add r4, r0, #0x0
+ bne _0201D468
+ bl ErrorHandling
+_0201D468:
+ bl FUN_0201DAAC
+ add r5, r0, #0x0
+ bne _0201D474
+ bl ErrorHandling
+_0201D474:
+ add r0, r4, #0x0
+ add r0, #0x3c
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x3
+ beq _0201D484
+ add sp, #0x18
+ mov r0, #0x0
+ pop {r3-r5, pc}
+_0201D484:
+ add r3, r5, #0x0
+ mov r2, #0xa
+_0201D488:
+ ldmia r4!, {r0-r1}
+ stmia r3!, {r0-r1}
+ sub r2, r2, #0x1
+ bne _0201D488
+ ldr r0, [r4, #0x0]
+ mov r1, #0x4
+ str r0, [r3, #0x0]
+ add r0, r5, #0x0
+ add r0, #0x3c
+ strb r1, [r0, #0x0]
+ ldr r0, [r5, #0x4]
+ mov r1, #0x1
+ tst r1, r0
+ beq _0201D4A8
+ ldr r3, [r5, #0x4c]
+ b _0201D4AA
+_0201D4A8:
+ ldr r3, [r5, #0x50]
+_0201D4AA:
+ add r1, sp, #0xc
+ str r1, [sp, #0x0]
+ add r1, sp, #0x8
+ str r1, [sp, #0x4]
+ add r1, sp, #0x14
+ add r2, sp, #0x10
+ bl FUN_0201D86C
+ ldr r1, [sp, #0x14]
+ ldr r2, [sp, #0x10]
+ add r0, r5, #0x0
+ bl FUN_0201D918
+ mov r0, #0x1
+ str r0, [r5, #0x48]
+ ldr r0, [sp, #0xc]
+ str r0, [r5, #0x4c]
+ ldr r0, [sp, #0x8]
+ str r0, [r5, #0x50]
+ add r0, r5, #0x0
+ bl FUN_0201DA38
+ ldr r0, [sp, #0x8]
+ str r0, [sp, #0x0]
+ ldr r0, [r5, #0x4]
+ ldr r1, [sp, #0x14]
+ ldr r2, [sp, #0x10]
+ ldr r3, [sp, #0xc]
+ bl FUN_0201D948
+ add r5, #0x10
+ add r0, r5, #0x0
+ add sp, #0x18
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_0201D4F0
+FUN_0201D4F0: ; 0x0201D4F0
+ push {r4-r6, lr}
+ ldr r2, _0201D564 ; =0x021C5994
+ mov r1, #0x0
+ ldr r5, [r2, #0x0]
+ ldr r4, [r5, #0x4]
+ cmp r4, #0x0
+ ble _0201D52E
+ ldr r2, [r5, #0x0]
+ add r3, r1, #0x0
+_0201D502:
+ add r6, r2, #0x0
+ add r6, #0x3c
+ ldrb r6, [r6, #0x0]
+ cmp r6, #0x3
+ beq _0201D518
+ ldr r6, [r5, #0x0]
+ add r6, r6, r3
+ add r6, #0x3c
+ ldrb r6, [r6, #0x0]
+ cmp r6, #0x4
+ bne _0201D522
+_0201D518:
+ ldr r6, [r5, #0x0]
+ add r6, r6, r3
+ add r6, #0x10
+ cmp r6, r0
+ beq _0201D52E
+_0201D522:
+ ldr r6, [r5, #0x4]
+ add r1, r1, #0x1
+ add r2, #0x54
+ add r3, #0x54
+ cmp r1, r6
+ blt _0201D502
+_0201D52E:
+ cmp r1, r4
+ bge _0201D562
+ mov r0, #0x54
+ add r4, r1, #0x0
+ mul r4, r0
+ ldr r0, [r5, #0x0]
+ add r0, r0, r4
+ bl FUN_0201DE4C
+ ldr r0, _0201D564 ; =0x021C5994
+ ldr r1, [r0, #0x0]
+ ldr r2, [r1, #0x0]
+ add r2, #0x3c
+ ldrb r1, [r2, r4]
+ cmp r1, #0x3
+ bne _0201D554
+ mov r0, #0x2
+ strb r0, [r2, r4]
+ pop {r4-r6, pc}
+_0201D554:
+ mov r1, #0x0
+ strb r1, [r2, r4]
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0x0]
+ add r0, r0, r4
+ bl FUN_0201D690
+_0201D562:
+ pop {r4-r6, pc}
+ .balign 4
+_0201D564: .word 0x021C5994
+
+ thumb_func_start FUN_0201D568
+FUN_0201D568: ; 0x0201D568
+ push {r3-r7, lr}
+ sub sp, #0x18
+ add r6, r0, #0x0
+ add r5, r2, #0x0
+ add r4, r3, #0x0
+ cmp r1, #0x0
+ bne _0201D5A0
+ add r1, r5, #0x0
+ add r2, sp, #0x14
+ add r3, sp, #0x10
+ bl FUN_0201DF44
+ add r7, r0, #0x0
+ beq _0201D5E0
+ add r0, r6, #0x0
+ add r1, r5, #0x0
+ bl FUN_0201DF94
+ str r5, [r4, #0x8]
+ str r6, [r4, #0x0]
+ cmp r5, #0x1
+ bne _0201D59A
+ ldr r0, [sp, #0x14]
+ str r0, [r4, #0x4]
+ b _0201D5E0
+_0201D59A:
+ ldr r0, [sp, #0x10]
+ str r0, [r4, #0x4]
+ b _0201D5E0
+_0201D5A0:
+ add r0, sp, #0xc
+ str r0, [sp, #0x0]
+ add r0, sp, #0x8
+ str r0, [sp, #0x4]
+ add r0, r5, #0x0
+ add r1, sp, #0x14
+ add r2, sp, #0x10
+ add r3, r6, #0x0
+ bl FUN_0201D86C
+ add r7, r0, #0x0
+ beq _0201D5E0
+ ldr r0, [sp, #0x8]
+ str r0, [sp, #0x0]
+ ldr r1, [sp, #0x14]
+ ldr r2, [sp, #0x10]
+ ldr r3, [sp, #0xc]
+ add r0, r5, #0x0
+ bl FUN_0201D948
+ str r5, [r4, #0x8]
+ cmp r5, #0x1
+ bne _0201D5D8
+ ldr r0, [sp, #0xc]
+ str r0, [r4, #0x0]
+ ldr r0, [sp, #0x14]
+ str r0, [r4, #0x4]
+ b _0201D5E0
+_0201D5D8:
+ ldr r0, [sp, #0x8]
+ str r0, [r4, #0x0]
+ ldr r0, [sp, #0x10]
+ str r0, [r4, #0x4]
+_0201D5E0:
+ add r0, r7, #0x0
+ add sp, #0x18
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_0201D5E8
+FUN_0201D5E8: ; 0x0201D5E8
+ push {r3-r5, lr}
+ add r4, r0, #0x0
+ ldr r1, [r4, #0x8]
+ mov r0, #0x1
+ tst r0, r1
+ beq _0201D61E
+ ldr r1, _0201D654 ; =0x021C5994
+ ldr r0, [r4, #0x0]
+ ldr r1, [r1, #0x0]
+ ldr r1, [r1, #0x2c]
+ bl FUN_0201DF2C
+ add r5, r0, #0x0
+ ldr r0, _0201D654 ; =0x021C5994
+ ldr r1, [r4, #0x4]
+ ldr r2, [r0, #0x0]
+ ldr r0, [r2, #0x1c]
+ sub r0, r1, r0
+ ldr r1, [r2, #0x2c]
+ bl FUN_0201DF2C
+ ldr r2, _0201D654 ; =0x021C5994
+ add r1, r5, #0x0
+ ldr r2, [r2, #0x0]
+ ldr r2, [r2, #0x34]
+ bl FUN_0201DDFC
+_0201D61E:
+ ldr r1, [r4, #0x8]
+ mov r0, #0x2
+ tst r0, r1
+ beq _0201D650
+ ldr r1, _0201D654 ; =0x021C5994
+ ldr r0, [r4, #0x0]
+ ldr r1, [r1, #0x0]
+ ldr r1, [r1, #0x30]
+ bl FUN_0201DF2C
+ add r5, r0, #0x0
+ ldr r0, _0201D654 ; =0x021C5994
+ ldr r1, [r4, #0x4]
+ ldr r2, [r0, #0x0]
+ ldr r0, [r2, #0x20]
+ sub r0, r1, r0
+ ldr r1, [r2, #0x30]
+ bl FUN_0201DF2C
+ ldr r2, _0201D654 ; =0x021C5994
+ add r1, r5, #0x0
+ ldr r2, [r2, #0x0]
+ ldr r2, [r2, #0x38]
+ bl FUN_0201DDFC
+_0201D650:
+ pop {r3-r5, pc}
+ nop
+_0201D654: .word 0x021C5994
+
+ thumb_func_start FUN_0201D658
+FUN_0201D658: ; 0x0201D658
+ push {r3, lr}
+ ldr r0, _0201D670 ; =0x021C5994
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ bne _0201D666
+ bl ErrorHandling
+_0201D666:
+ ldr r1, _0201D670 ; =0x021C5994
+ mov r2, #0x0
+ ldr r0, [r1, #0x0]
+ str r2, [r1, #0x0]
+ pop {r3, pc}
+ .balign 4
+_0201D670: .word 0x021C5994
+
+ thumb_func_start FUN_0201D674
+FUN_0201D674: ; 0x0201D674
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r0, _0201D68C ; =0x021C5994
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ beq _0201D684
+ bl ErrorHandling
+_0201D684:
+ ldr r0, _0201D68C ; =0x021C5994
+ str r4, [r0, #0x0]
+ pop {r4, pc}
+ nop
+_0201D68C: .word 0x021C5994
+
+ thumb_func_start FUN_0201D690
+FUN_0201D690: ; 0x0201D690
+ mov r2, #0x0
+ str r2, [r0, #0x0]
+ str r2, [r0, #0x4]
+ strb r2, [r0, #0x8]
+ sub r1, r2, #0x1
+ str r1, [r0, #0xc]
+ str r2, [r0, #0x34]
+ add r1, r0, #0x0
+ str r2, [r0, #0x38]
+ add r1, #0x3c
+ strb r2, [r1, #0x0]
+ str r2, [r0, #0x40]
+ ldr r3, _0201D6B0 ; =FUN_020B1A24
+ add r0, #0x10
+ bx r3
+ nop
+_0201D6B0: .word FUN_020B1A24
+
+ thumb_func_start FUN_0201D6B4
+FUN_0201D6B4: ; 0x0201D6B4
+ ldr r2, [r0, #0x0]
+ str r2, [r1, #0x0]
+ ldr r2, [r0, #0x8]
+ str r2, [r1, #0xc]
+ ldr r2, [r0, #0x4]
+ str r2, [r1, #0x4]
+ ldr r2, [r1, #0x0]
+ ldr r2, [r2, #0xc]
+ lsr r2, r2, #0x8
+ strb r2, [r1, #0x8]
+ ldr r0, [r0, #0xc]
+ str r0, [r1, #0x44]
+ mov r0, #0x0
+ str r0, [r1, #0x48]
+ str r0, [r1, #0x4c]
+ str r0, [r1, #0x50]
+ mov r0, #0x1
+ bx lr
+
+ thumb_func_start FUN_0201D6D8
+FUN_0201D6D8: ; 0x0201D6D8
+ push {r3-r6}
+ ldr r2, _0201D720 ; =0x021C5994
+ mov r1, #0x0
+ ldr r5, [r2, #0x0]
+ ldr r4, [r5, #0x4]
+ cmp r4, #0x0
+ ble _0201D70A
+ ldr r2, [r5, #0x0]
+ add r3, r1, #0x0
+_0201D6EA:
+ add r6, r2, #0x0
+ add r6, #0x3c
+ ldrb r6, [r6, #0x0]
+ cmp r6, #0x0
+ beq _0201D6FE
+ ldr r6, [r5, #0x0]
+ add r6, r6, r3
+ add r6, #0x10
+ cmp r6, r0
+ beq _0201D70A
+_0201D6FE:
+ ldr r6, [r5, #0x4]
+ add r1, r1, #0x1
+ add r2, #0x54
+ add r3, #0x54
+ cmp r1, r6
+ blt _0201D6EA
+_0201D70A:
+ cmp r1, r4
+ blt _0201D714
+ mov r0, #0x0
+ pop {r3-r6}
+ bx lr
+_0201D714:
+ mov r0, #0x54
+ ldr r2, [r5, #0x0]
+ mul r0, r1
+ add r0, r2, r0
+ pop {r3-r6}
+ bx lr
+ .balign 4
+_0201D720: .word 0x021C5994
+
+ thumb_func_start FUN_0201D724
+FUN_0201D724: ; 0x0201D724
+ push {r3, lr}
+ ldrb r1, [r0, #0x8]
+ mov r2, #0x1
+ cmp r1, #0x0
+ beq _0201D736
+ mov r1, #0x2
+ add r0, #0x3c
+ strb r1, [r0, #0x0]
+ b _0201D750
+_0201D736:
+ add r1, r0, #0x0
+ add r1, #0x3c
+ strb r2, [r1, #0x0]
+ ldr r1, [r0, #0x44]
+ cmp r1, #0x0
+ bne _0201D74A
+ bl FUN_0201D754
+ add r2, r0, #0x0
+ b _0201D750
+_0201D74A:
+ bl FUN_0201D788
+ add r2, r0, #0x0
+_0201D750:
+ add r0, r2, #0x0
+ pop {r3, pc}
+
+ thumb_func_start FUN_0201D754
+FUN_0201D754: ; 0x0201D754
+ push {r3-r5, lr}
+ sub sp, #0x8
+ add r5, r0, #0x0
+ ldr r0, [r5, #0x0]
+ ldr r1, [r5, #0x4]
+ ldr r0, [r0, #0x10]
+ add r2, sp, #0x4
+ add r3, sp, #0x0
+ bl FUN_0201DF44
+ add r4, r0, #0x0
+ beq _0201D780
+ ldr r1, [sp, #0x4]
+ ldr r2, [sp, #0x0]
+ add r0, r5, #0x0
+ bl FUN_0201D858
+ ldr r0, [r5, #0x0]
+ ldr r1, [r5, #0x4]
+ ldr r0, [r0, #0x10]
+ bl FUN_0201DF94
+_0201D780:
+ add r0, r4, #0x0
+ add sp, #0x8
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_0201D788
+FUN_0201D788: ; 0x0201D788
+ push {r4, lr}
+ sub sp, #0x18
+ add r4, r0, #0x0
+ add r0, sp, #0xc
+ str r0, [sp, #0x0]
+ add r0, sp, #0x8
+ str r0, [sp, #0x4]
+ ldr r3, [r4, #0x0]
+ ldr r0, [r4, #0x4]
+ ldr r3, [r3, #0x10]
+ add r1, sp, #0x14
+ add r2, sp, #0x10
+ bl FUN_0201D86C
+ cmp r0, #0x0
+ bne _0201D7AE
+ add sp, #0x18
+ mov r0, #0x0
+ pop {r4, pc}
+_0201D7AE:
+ ldr r1, [sp, #0x14]
+ ldr r2, [sp, #0x10]
+ add r0, r4, #0x0
+ bl FUN_0201D918
+ mov r0, #0x1
+ str r0, [r4, #0x48]
+ ldr r0, [sp, #0xc]
+ str r0, [r4, #0x4c]
+ ldr r0, [sp, #0x8]
+ str r0, [r4, #0x50]
+ add r0, r4, #0x0
+ bl FUN_0201D9B0
+ ldr r0, [sp, #0x8]
+ str r0, [sp, #0x0]
+ ldr r0, [r4, #0x4]
+ ldr r1, [sp, #0x14]
+ ldr r2, [sp, #0x10]
+ ldr r3, [sp, #0xc]
+ bl FUN_0201D948
+ mov r0, #0x1
+ add sp, #0x18
+ pop {r4, pc}
+
+ thumb_func_start FUN_0201D7E0
+FUN_0201D7E0: ; 0x0201D7E0
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r1, [r4, #0x48]
+ cmp r1, #0x0
+ beq _0201D7EE
+ bl FUN_0201DE4C
+_0201D7EE:
+ add r0, r4, #0x0
+ bl FUN_0201D690
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0201D7F8
+FUN_0201D7F8: ; 0x0201D7F8
+ push {r4-r5}
+ ldr r2, _0201D82C ; =0x021C5994
+ mov r1, #0x0
+ ldr r5, [r2, #0x0]
+ ldr r2, [r5, #0x4]
+ cmp r2, #0x0
+ ble _0201D824
+ ldr r2, [r5, #0x0]
+ add r4, r2, #0x0
+_0201D80A:
+ ldr r3, [r4, #0xc]
+ cmp r0, r3
+ bne _0201D81A
+ mov r0, #0x54
+ mul r0, r1
+ add r0, r2, r0
+ pop {r4-r5}
+ bx lr
+_0201D81A:
+ ldr r3, [r5, #0x4]
+ add r1, r1, #0x1
+ add r4, #0x54
+ cmp r1, r3
+ blt _0201D80A
+_0201D824:
+ mov r0, #0x0
+ pop {r4-r5}
+ bx lr
+ nop
+_0201D82C: .word 0x021C5994
+
+ thumb_func_start FUN_0201D830
+FUN_0201D830: ; 0x0201D830
+ cmp r1, #0x1
+ bne _0201D83C
+ mov r1, #0x1
+ lsl r1, r1, #0x1a
+ ldr r2, [r1, #0x0]
+ b _0201D840
+_0201D83C:
+ ldr r1, _0201D850 ; =0x04001000
+ ldr r2, [r1, #0x0]
+_0201D840:
+ ldr r1, _0201D854 ; =0x00300010
+ and r2, r1
+ ldr r1, [r0, #0x0]
+ str r2, [r1, #0x8]
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0x8]
+ bx lr
+ nop
+_0201D850: .word 0x04001000
+_0201D854: .word 0x00300010
+
+ thumb_func_start FUN_0201D858
+FUN_0201D858: ; 0x0201D858
+ push {r3, lr}
+ str r1, [r0, #0x34]
+ str r2, [r0, #0x38]
+ ldrb r1, [r0, #0x8]
+ cmp r1, #0x0
+ bne _0201D868
+ bl FUN_0201D9B0
+_0201D868:
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_0201D86C
+FUN_0201D86C: ; 0x0201D86C
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ ldr r0, [sp, #0x1c]
+ add r6, r2, #0x0
+ str r0, [sp, #0x1c]
+ mov r2, #0x1
+ add r0, r5, #0x0
+ add r4, r1, #0x0
+ str r3, [sp, #0x0]
+ ldr r7, [sp, #0x18]
+ tst r0, r2
+ beq _0201D8C4
+ ldr r1, _0201D914 ; =0x021C5994
+ add r0, r3, #0x0
+ ldr r1, [r1, #0x0]
+ ldr r1, [r1, #0x2c]
+ bl FUN_0201DF10
+ ldr r1, _0201D914 ; =0x021C5994
+ str r0, [r7, #0x0]
+ ldr r1, [r1, #0x0]
+ ldr r1, [r1, #0x2c]
+ bl FUN_0201DF2C
+ ldr r1, _0201D914 ; =0x021C5994
+ ldr r1, [r1, #0x0]
+ ldr r1, [r1, #0x34]
+ bl FUN_0201DD74
+ mov r1, #0x0
+ mvn r1, r1
+ str r0, [r4, #0x0]
+ cmp r0, r1
+ bne _0201D8B8
+ bl ErrorHandling
+ mov r0, #0x0
+ pop {r3-r7, pc}
+_0201D8B8:
+ ldr r1, _0201D914 ; =0x021C5994
+ ldr r1, [r1, #0x0]
+ ldr r1, [r1, #0x2c]
+ bl FUN_0201DF3C
+ str r0, [r4, #0x0]
+_0201D8C4:
+ mov r0, #0x2
+ tst r0, r5
+ beq _0201D90E
+ ldr r1, _0201D914 ; =0x021C5994
+ ldr r0, [sp, #0x0]
+ ldr r1, [r1, #0x0]
+ mov r2, #0x1
+ ldr r1, [r1, #0x30]
+ bl FUN_0201DF10
+ ldr r1, [sp, #0x1c]
+ str r0, [r1, #0x0]
+ ldr r1, _0201D914 ; =0x021C5994
+ ldr r1, [r1, #0x0]
+ ldr r1, [r1, #0x30]
+ bl FUN_0201DF2C
+ ldr r1, _0201D914 ; =0x021C5994
+ ldr r1, [r1, #0x0]
+ ldr r1, [r1, #0x38]
+ bl FUN_0201DD74
+ mov r1, #0x0
+ mvn r1, r1
+ str r0, [r6, #0x0]
+ cmp r0, r1
+ bne _0201D902
+ bl ErrorHandling
+ mov r0, #0x0
+ pop {r3-r7, pc}
+_0201D902:
+ ldr r1, _0201D914 ; =0x021C5994
+ ldr r1, [r1, #0x0]
+ ldr r1, [r1, #0x30]
+ bl FUN_0201DF3C
+ str r0, [r6, #0x0]
+_0201D90E:
+ mov r0, #0x1
+ pop {r3-r7, pc}
+ nop
+_0201D914: .word 0x021C5994
+
+ thumb_func_start FUN_0201D918
+FUN_0201D918: ; 0x0201D918
+ push {r3-r4}
+ ldr r4, [r0, #0x4]
+ mov r3, #0x1
+ tst r3, r4
+ beq _0201D92C
+ ldr r3, _0201D944 ; =0x021C5994
+ ldr r3, [r3, #0x0]
+ ldr r3, [r3, #0x1c]
+ add r1, r1, r3
+ str r1, [r0, #0x34]
+_0201D92C:
+ ldr r3, [r0, #0x4]
+ mov r1, #0x2
+ tst r1, r3
+ beq _0201D93E
+ ldr r1, _0201D944 ; =0x021C5994
+ ldr r1, [r1, #0x0]
+ ldr r1, [r1, #0x20]
+ add r1, r2, r1
+ str r1, [r0, #0x38]
+_0201D93E:
+ pop {r3-r4}
+ bx lr
+ nop
+_0201D944: .word 0x021C5994
+
+ thumb_func_start FUN_0201D948
+FUN_0201D948: ; 0x0201D948
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ mov r0, #0x1
+ add r4, r1, #0x0
+ add r6, r2, #0x0
+ tst r0, r5
+ beq _0201D97C
+ ldr r1, _0201D9AC ; =0x021C5994
+ add r0, r3, #0x0
+ ldr r1, [r1, #0x0]
+ ldr r1, [r1, #0x2c]
+ bl FUN_0201DF2C
+ ldr r1, _0201D9AC ; =0x021C5994
+ add r7, r0, #0x0
+ ldr r1, [r1, #0x0]
+ add r0, r4, #0x0
+ ldr r1, [r1, #0x2c]
+ bl FUN_0201DF2C
+ ldr r2, _0201D9AC ; =0x021C5994
+ add r1, r7, #0x0
+ ldr r2, [r2, #0x0]
+ ldr r2, [r2, #0x34]
+ bl FUN_0201DD18
+_0201D97C:
+ mov r0, #0x2
+ tst r0, r5
+ beq _0201D9A8
+ ldr r1, _0201D9AC ; =0x021C5994
+ ldr r0, [sp, #0x18]
+ ldr r1, [r1, #0x0]
+ ldr r1, [r1, #0x30]
+ bl FUN_0201DF2C
+ ldr r1, _0201D9AC ; =0x021C5994
+ add r4, r0, #0x0
+ ldr r1, [r1, #0x0]
+ add r0, r6, #0x0
+ ldr r1, [r1, #0x30]
+ bl FUN_0201DF2C
+ ldr r2, _0201D9AC ; =0x021C5994
+ add r1, r4, #0x0
+ ldr r2, [r2, #0x0]
+ ldr r2, [r2, #0x38]
+ bl FUN_0201DD18
+_0201D9A8:
+ pop {r3-r7, pc}
+ nop
+_0201D9AC: .word 0x021C5994
+
+ thumb_func_start FUN_0201D9B0
+FUN_0201D9B0: ; 0x0201D9B0
+ push {r4, lr}
+ add r4, r0, #0x0
+ add r0, #0x10
+ blx FUN_020B1A24
+ ldr r1, [r4, #0x4]
+ cmp r1, #0x3
+ beq _0201D9C8
+ add r0, r4, #0x0
+ bl FUN_0201D9DC
+ pop {r4, pc}
+_0201D9C8:
+ add r0, r4, #0x0
+ mov r1, #0x1
+ bl FUN_0201D9DC
+ add r0, r4, #0x0
+ mov r1, #0x2
+ bl FUN_0201D9DC
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0201D9DC
+FUN_0201D9DC: ; 0x0201D9DC
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ ldr r2, [r5, #0x40]
+ add r4, r1, #0x0
+ cmp r2, #0x0
+ beq _0201D9EE
+ bl FUN_0201D830
+ b _0201D9F0
+_0201D9EE:
+ add r0, r4, #0x0
+_0201D9F0:
+ cmp r4, #0x1
+ bne _0201D9FE
+ mov r2, #0x1
+ lsl r2, r2, #0x1a
+ ldr r1, [r5, #0x34]
+ ldr r2, [r2, #0x0]
+ b _0201DA04
+_0201D9FE:
+ ldr r2, _0201DA34 ; =0x04001000
+ ldr r1, [r5, #0x38]
+ ldr r2, [r2, #0x0]
+_0201DA04:
+ cmp r0, #0x0
+ ldr r0, [r5, #0x0]
+ bne _0201DA16
+ add r5, #0x10
+ add r2, r4, #0x0
+ add r3, r5, #0x0
+ blx FUN_020B1528
+ b _0201DA20
+_0201DA16:
+ add r5, #0x10
+ add r2, r4, #0x0
+ add r3, r5, #0x0
+ blx FUN_020B1768
+_0201DA20:
+ cmp r4, #0x1
+ bne _0201DA2C
+ mov r0, #0x1
+ lsl r0, r0, #0x1a
+ ldr r0, [r0, #0x0]
+ pop {r3-r5, pc}
+_0201DA2C:
+ ldr r0, _0201DA34 ; =0x04001000
+ ldr r0, [r0, #0x0]
+ pop {r3-r5, pc}
+ nop
+_0201DA34: .word 0x04001000
+
+ thumb_func_start FUN_0201DA38
+FUN_0201DA38: ; 0x0201DA38
+ push {r4, lr}
+ add r4, r0, #0x0
+ add r0, #0x10
+ blx FUN_020B1A24
+ ldr r1, [r4, #0x4]
+ cmp r1, #0x3
+ beq _0201DA50
+ add r0, r4, #0x0
+ bl FUN_0201DA64
+ pop {r4, pc}
+_0201DA50:
+ add r0, r4, #0x0
+ mov r1, #0x1
+ bl FUN_0201DA64
+ add r0, r4, #0x0
+ mov r1, #0x2
+ bl FUN_0201DA64
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0201DA64
+FUN_0201DA64: ; 0x0201DA64
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ ldr r2, [r5, #0x40]
+ add r4, r1, #0x0
+ cmp r2, #0x0
+ beq _0201DA74
+ bl FUN_0201D830
+_0201DA74:
+ cmp r4, #0x1
+ bne _0201DA82
+ mov r0, #0x1
+ lsl r0, r0, #0x1a
+ ldr r1, [r5, #0x34]
+ ldr r0, [r0, #0x0]
+ b _0201DA88
+_0201DA82:
+ ldr r0, _0201DAA8 ; =0x04001000
+ ldr r1, [r5, #0x38]
+ ldr r0, [r0, #0x0]
+_0201DA88:
+ ldr r0, [r5, #0x0]
+ add r5, #0x10
+ add r2, r4, #0x0
+ add r3, r5, #0x0
+ blx FUN_020B1340
+ cmp r4, #0x1
+ bne _0201DAA0
+ mov r0, #0x1
+ lsl r0, r0, #0x1a
+ ldr r0, [r0, #0x0]
+ pop {r3-r5, pc}
+_0201DAA0:
+ ldr r0, _0201DAA8 ; =0x04001000
+ ldr r0, [r0, #0x0]
+ pop {r3-r5, pc}
+ nop
+_0201DAA8: .word 0x04001000
+
+ thumb_func_start FUN_0201DAAC
+FUN_0201DAAC: ; 0x0201DAAC
+ push {r3-r4}
+ ldr r1, _0201DAE4 ; =0x021C5994
+ mov r0, #0x0
+ ldr r4, [r1, #0x0]
+ ldr r1, [r4, #0x4]
+ cmp r1, #0x0
+ ble _0201DADC
+ ldr r1, [r4, #0x0]
+ add r3, r1, #0x0
+_0201DABE:
+ add r2, r3, #0x0
+ add r2, #0x3c
+ ldrb r2, [r2, #0x0]
+ cmp r2, #0x0
+ bne _0201DAD2
+ mov r2, #0x54
+ mul r2, r0
+ add r0, r1, r2
+ pop {r3-r4}
+ bx lr
+_0201DAD2:
+ ldr r2, [r4, #0x4]
+ add r0, r0, #0x1
+ add r3, #0x54
+ cmp r0, r2
+ blt _0201DABE
+_0201DADC:
+ mov r0, #0x0
+ pop {r3-r4}
+ bx lr
+ nop
+_0201DAE4: .word 0x021C5994
+
+ thumb_func_start FUN_0201DAE8
+FUN_0201DAE8: ; 0x0201DAE8
+ push {r3, lr}
+ blx GX_GetBankForOBJ
+ cmp r0, #0x30
+ bgt _0201DB18
+ bge _0201DB60
+ cmp r0, #0x10
+ bgt _0201DB12
+ bge _0201DB54
+ cmp r0, #0x3
+ bhi _0201DB90
+ add r1, r0, r0
+ add r1, pc
+ ldrh r1, [r1, #0x6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_0201DB0A: ; jump table (using 16-bit offset)
+ .short _0201DB32 - _0201DB0A - 2; case 0
+ .short _0201DB78 - _0201DB0A - 2; case 1
+ .short _0201DB78 - _0201DB0A - 2; case 2
+ .short _0201DB84 - _0201DB0A - 2; case 3
+_0201DB12:
+ cmp r0, #0x20
+ beq _0201DB3C
+ b _0201DB90
+_0201DB18:
+ cmp r0, #0x50
+ bgt _0201DB24
+ bge _0201DB60
+ cmp r0, #0x40
+ beq _0201DB3C
+ b _0201DB90
+_0201DB24:
+ cmp r0, #0x60
+ bgt _0201DB2C
+ beq _0201DB48
+ b _0201DB90
+_0201DB2C:
+ cmp r0, #0x70
+ beq _0201DB6C
+ b _0201DB90
+_0201DB32:
+ ldr r0, _0201DC38 ; =0x021C5994
+ mov r1, #0x0
+ ldr r0, [r0, #0x0]
+ str r1, [r0, #0x14]
+ b _0201DB98
+_0201DB3C:
+ ldr r0, _0201DC38 ; =0x021C5994
+ mov r1, #0x1
+ ldr r0, [r0, #0x0]
+ lsl r1, r1, #0xe
+ str r1, [r0, #0x14]
+ b _0201DB98
+_0201DB48:
+ ldr r0, _0201DC38 ; =0x021C5994
+ mov r1, #0x2
+ ldr r0, [r0, #0x0]
+ lsl r1, r1, #0xe
+ str r1, [r0, #0x14]
+ b _0201DB98
+_0201DB54:
+ ldr r0, _0201DC38 ; =0x021C5994
+ mov r1, #0x1
+ ldr r0, [r0, #0x0]
+ lsl r1, r1, #0x10
+ str r1, [r0, #0x14]
+ b _0201DB98
+_0201DB60:
+ ldr r0, _0201DC38 ; =0x021C5994
+ mov r1, #0x5
+ ldr r0, [r0, #0x0]
+ lsl r1, r1, #0xe
+ str r1, [r0, #0x14]
+ b _0201DB98
+_0201DB6C:
+ ldr r0, _0201DC38 ; =0x021C5994
+ mov r1, #0x6
+ ldr r0, [r0, #0x0]
+ lsl r1, r1, #0xe
+ str r1, [r0, #0x14]
+ b _0201DB98
+_0201DB78:
+ ldr r0, _0201DC38 ; =0x021C5994
+ mov r1, #0x2
+ ldr r0, [r0, #0x0]
+ lsl r1, r1, #0x10
+ str r1, [r0, #0x14]
+ b _0201DB98
+_0201DB84:
+ ldr r0, _0201DC38 ; =0x021C5994
+ mov r1, #0x1
+ ldr r0, [r0, #0x0]
+ lsl r1, r1, #0x12
+ str r1, [r0, #0x14]
+ b _0201DB98
+_0201DB90:
+ ldr r0, _0201DC38 ; =0x021C5994
+ mov r1, #0x0
+ ldr r0, [r0, #0x0]
+ str r1, [r0, #0x14]
+_0201DB98:
+ blx GX_GetBankForSubOBJ
+ cmp r0, #0x0
+ beq _0201DBAE
+ cmp r0, #0x8
+ beq _0201DBC2
+ mov r1, #0x1
+ lsl r1, r1, #0x8
+ cmp r0, r1
+ beq _0201DBB8
+ b _0201DBCE
+_0201DBAE:
+ ldr r0, _0201DC38 ; =0x021C5994
+ mov r1, #0x0
+ ldr r0, [r0, #0x0]
+ str r1, [r0, #0x18]
+ b _0201DBD6
+_0201DBB8:
+ ldr r0, _0201DC38 ; =0x021C5994
+ lsl r1, r1, #0x6
+ ldr r0, [r0, #0x0]
+ str r1, [r0, #0x18]
+ b _0201DBD6
+_0201DBC2:
+ ldr r0, _0201DC38 ; =0x021C5994
+ mov r1, #0x2
+ ldr r0, [r0, #0x0]
+ lsl r1, r1, #0x10
+ str r1, [r0, #0x18]
+ b _0201DBD6
+_0201DBCE:
+ ldr r0, _0201DC38 ; =0x021C5994
+ mov r1, #0x0
+ ldr r0, [r0, #0x0]
+ str r1, [r0, #0x18]
+_0201DBD6:
+ ldr r0, _0201DC38 ; =0x021C5994
+ ldr r1, [r0, #0x0]
+ ldr r0, [r1, #0x24]
+ ldr r1, [r1, #0x2c]
+ bl FUN_0201DF3C
+ ldr r1, _0201DC38 ; =0x021C5994
+ ldr r3, [r1, #0x0]
+ ldr r2, [r3, #0x14]
+ sub r0, r2, r0
+ str r0, [r3, #0x1c]
+ ldr r1, [r1, #0x0]
+ ldr r0, [r1, #0x28]
+ ldr r1, [r1, #0x30]
+ bl FUN_0201DF3C
+ ldr r1, _0201DC38 ; =0x021C5994
+ ldr r3, [r1, #0x0]
+ ldr r2, [r3, #0x18]
+ sub r0, r2, r0
+ str r0, [r3, #0x20]
+ ldr r1, [r1, #0x0]
+ mov r2, #0x0
+ ldr r0, [r1, #0x1c]
+ cmp r0, #0x0
+ blt _0201DC12
+ ldr r0, [r1, #0x20]
+ cmp r0, #0x0
+ blt _0201DC12
+ mov r2, #0x1
+_0201DC12:
+ cmp r2, #0x0
+ bne _0201DC1A
+ bl ErrorHandling
+_0201DC1A:
+ ldr r0, _0201DC38 ; =0x021C5994
+ mov r2, #0x0
+ ldr r1, [r0, #0x0]
+ ldr r0, [r1, #0x1c]
+ cmp r0, #0x0
+ blt _0201DC2E
+ ldr r0, [r1, #0x20]
+ cmp r0, #0x0
+ blt _0201DC2E
+ mov r2, #0x1
+_0201DC2E:
+ cmp r2, #0x0
+ bne _0201DC36
+ bl ErrorHandling
+_0201DC36:
+ pop {r3, pc}
+ .balign 4
+_0201DC38: .word 0x021C5994
+
+ thumb_func_start FUN_0201DC3C
+FUN_0201DC3C: ; 0x0201DC3C
+ push {r3, lr}
+ ldr r0, _0201DC54 ; =0x021C5994
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0x34]
+ bl FUN_0201DD00
+ ldr r0, _0201DC54 ; =0x021C5994
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0x38]
+ bl FUN_0201DD00
+ pop {r3, pc}
+ .balign 4
+_0201DC54: .word 0x021C5994
+
+ thumb_func_start FUN_0201DC58
+FUN_0201DC58: ; 0x0201DC58
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ ldr r0, _0201DCBC ; =0x021C5994
+ add r4, r1, #0x0
+ ldr r1, [r0, #0x0]
+ add r6, r2, #0x0
+ str r5, [r1, #0x24]
+ ldr r1, [r0, #0x0]
+ str r4, [r1, #0x28]
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0x34]
+ cmp r0, #0x0
+ beq _0201DC76
+ bl FUN_02016A18
+_0201DC76:
+ ldr r0, _0201DCBC ; =0x021C5994
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0x38]
+ cmp r0, #0x0
+ beq _0201DC84
+ bl FUN_02016A18
+_0201DC84:
+ ldr r0, _0201DCBC ; =0x021C5994
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0x24]
+ cmp r0, #0x0
+ beq _0201DC9C
+ add r0, r6, #0x0
+ lsr r1, r5, #0x3
+ bl FUN_02016998
+ ldr r1, _0201DCBC ; =0x021C5994
+ ldr r1, [r1, #0x0]
+ str r0, [r1, #0x34]
+_0201DC9C:
+ ldr r0, _0201DCBC ; =0x021C5994
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0x28]
+ cmp r0, #0x0
+ beq _0201DCB4
+ add r0, r6, #0x0
+ lsr r1, r4, #0x3
+ bl FUN_02016998
+ ldr r1, _0201DCBC ; =0x021C5994
+ ldr r1, [r1, #0x0]
+ str r0, [r1, #0x38]
+_0201DCB4:
+ bl FUN_0201DC3C
+ pop {r4-r6, pc}
+ nop
+_0201DCBC: .word 0x021C5994
+
+ thumb_func_start FUN_0201DCC0
+FUN_0201DCC0: ; 0x0201DCC0
+ push {r3, lr}
+ cmp r0, #0x0
+ beq _0201DCE2
+ ldr r1, _0201DCE4 ; =0x021C5994
+ ldr r2, [r1, #0x0]
+ ldr r1, [r2, #0x34]
+ cmp r0, r1
+ bne _0201DCDA
+ mov r1, #0x0
+ str r1, [r2, #0x24]
+ bl FUN_02016A18
+ pop {r3, pc}
+_0201DCDA:
+ mov r1, #0x0
+ str r1, [r2, #0x28]
+ bl FUN_02016A18
+_0201DCE2:
+ pop {r3, pc}
+ .balign 4
+_0201DCE4: .word 0x021C5994
+
+ thumb_func_start FUN_0201DCE8
+FUN_0201DCE8: ; 0x0201DCE8
+ ldr r1, _0201DCFC ; =0x021C5994
+ ldr r2, [r1, #0x0]
+ ldr r1, [r2, #0x34]
+ cmp r0, r1
+ bne _0201DCF6
+ ldr r0, [r2, #0x24]
+ bx lr
+_0201DCF6:
+ ldr r0, [r2, #0x28]
+ bx lr
+ nop
+_0201DCFC: .word 0x021C5994
+
+ thumb_func_start FUN_0201DD00
+FUN_0201DD00: ; 0x0201DD00
+ push {r4, lr}
+ add r4, r0, #0x0
+ beq _0201DD16
+ bl FUN_0201DCE8
+ add r2, r0, #0x0
+ add r0, r4, #0x0
+ mov r1, #0x0
+ lsr r2, r2, #0x3
+ blx Call_FillMemWithValue
+_0201DD16:
+ pop {r4, pc}
+
+ thumb_func_start FUN_0201DD18
+FUN_0201DD18: ; 0x0201DD18
+ push {r3-r7, lr}
+ sub sp, #0x8
+ add r5, r0, #0x0
+ add r6, r1, #0x0
+ add r4, r2, #0x0
+ beq _0201DD6E
+ add r0, r4, #0x0
+ bl FUN_0201DCE8
+ add r6, r5, r6
+ add r7, r0, #0x0
+ cmp r5, r6
+ bhs _0201DD6E
+_0201DD32:
+ cmp r5, r7
+ bhs _0201DD6E
+ add r0, r5, #0x0
+ add r1, sp, #0x4
+ add r2, sp, #0x0
+ bl FUN_0201DFE4
+ add r0, sp, #0x0
+ ldrb r1, [r0, #0x0]
+ mov r0, #0x1
+ lsl r0, r1
+ ldr r1, [sp, #0x4]
+ ldrb r1, [r4, r1]
+ tst r0, r1
+ beq _0201DD54
+ bl ErrorHandling
+_0201DD54:
+ add r2, sp, #0x0
+ ldrb r3, [r2, #0x0]
+ ldr r1, [sp, #0x4]
+ mov r2, #0x1
+ lsl r2, r3
+ lsl r2, r2, #0x18
+ ldrb r0, [r4, r1]
+ lsr r2, r2, #0x18
+ add r5, r5, #0x1
+ orr r0, r2
+ strb r0, [r4, r1]
+ cmp r5, r6
+ blo _0201DD32
+_0201DD6E:
+ add sp, #0x8
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_0201DD74
+FUN_0201DD74: ; 0x0201DD74
+ push {r3-r7, lr}
+ sub sp, #0x10
+ add r7, r0, #0x0
+ str r1, [sp, #0x0]
+ cmp r1, #0x0
+ beq _0201DDF2
+ add r0, r1, #0x0
+ bl FUN_0201DCE8
+ mov r6, #0x0
+ str r0, [sp, #0x4]
+ cmp r0, #0x0
+ bls _0201DDF2
+_0201DD8E:
+ add r0, r6, #0x0
+ add r1, sp, #0xc
+ add r2, sp, #0x8
+ bl FUN_0201DFE4
+ add r0, sp, #0x8
+ ldrb r1, [r0, #0x0]
+ mov r0, #0x1
+ mov r4, #0x0
+ lsl r0, r1
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ b _0201DDD0
+_0201DDA8:
+ add r5, r6, r4
+ add r0, r5, #0x0
+ add r1, sp, #0xc
+ add r2, sp, #0x8
+ bl FUN_0201DFE4
+ add r0, sp, #0x8
+ ldrb r1, [r0, #0x0]
+ mov r0, #0x1
+ lsl r0, r1
+ lsl r0, r0, #0x18
+ ldr r1, [sp, #0x4]
+ lsr r0, r0, #0x18
+ cmp r5, r1
+ blo _0201DDCE
+ mov r0, #0x0
+ add sp, #0x10
+ mvn r0, r0
+ pop {r3-r7, pc}
+_0201DDCE:
+ add r4, r4, #0x1
+_0201DDD0:
+ ldr r2, [sp, #0xc]
+ ldr r1, [sp, #0x0]
+ ldrb r1, [r1, r2]
+ tst r0, r1
+ bne _0201DDDE
+ cmp r4, r7
+ bls _0201DDA8
+_0201DDDE:
+ cmp r4, r7
+ bls _0201DDE8
+ add sp, #0x10
+ add r0, r6, #0x0
+ pop {r3-r7, pc}
+_0201DDE8:
+ add r0, r6, r4
+ add r6, r0, #0x1
+ ldr r0, [sp, #0x4]
+ cmp r6, r0
+ blo _0201DD8E
+_0201DDF2:
+ mov r0, #0x0
+ mvn r0, r0
+ add sp, #0x10
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_0201DDFC
+FUN_0201DDFC: ; 0x0201DDFC
+ push {r3-r7, lr}
+ sub sp, #0x8
+ add r5, r0, #0x0
+ add r4, r2, #0x0
+ beq _0201DE46
+ add r6, r5, r1
+ cmp r5, r6
+ bhs _0201DE46
+ add r7, sp, #0x0
+_0201DE0E:
+ add r0, r5, #0x0
+ add r1, sp, #0x4
+ add r2, sp, #0x0
+ bl FUN_0201DFE4
+ ldrb r1, [r7, #0x0]
+ mov r0, #0x1
+ lsl r0, r1
+ ldr r1, [sp, #0x4]
+ ldrb r1, [r4, r1]
+ tst r0, r1
+ bne _0201DE2A
+ bl ErrorHandling
+_0201DE2A:
+ ldrb r0, [r7, #0x0]
+ mov r1, #0x1
+ ldr r3, [sp, #0x4]
+ lsl r1, r0
+ mov r0, #0xff
+ eor r0, r1
+ lsl r0, r0, #0x18
+ ldrb r2, [r4, r3]
+ lsr r0, r0, #0x18
+ add r5, r5, #0x1
+ and r0, r2
+ strb r0, [r4, r3]
+ cmp r5, r6
+ blo _0201DE0E
+_0201DE46:
+ add sp, #0x8
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_0201DE4C
+FUN_0201DE4C: ; 0x0201DE4C
+ push {r3-r5, lr}
+ add r4, r0, #0x0
+ ldr r0, [r4, #0x4]
+ mov r1, #0x1
+ tst r0, r1
+ beq _0201DE8A
+ add r0, r4, #0x0
+ add r0, #0x10
+ blx FUN_020B1A14
+ ldr r1, _0201DECC ; =0x021C5994
+ ldr r2, [r1, #0x0]
+ ldr r1, [r2, #0x1c]
+ sub r0, r0, r1
+ ldr r1, [r2, #0x2c]
+ bl FUN_0201DF2C
+ ldr r1, _0201DECC ; =0x021C5994
+ add r5, r0, #0x0
+ ldr r1, [r1, #0x0]
+ ldr r0, [r4, #0x4c]
+ ldr r1, [r1, #0x2c]
+ bl FUN_0201DF2C
+ ldr r2, _0201DECC ; =0x021C5994
+ add r1, r0, #0x0
+ ldr r2, [r2, #0x0]
+ add r0, r5, #0x0
+ ldr r2, [r2, #0x34]
+ bl FUN_0201DDFC
+_0201DE8A:
+ ldr r0, [r4, #0x4]
+ mov r1, #0x2
+ tst r0, r1
+ beq _0201DEC4
+ add r0, r4, #0x0
+ add r0, #0x10
+ blx FUN_020B1A14
+ ldr r1, _0201DECC ; =0x021C5994
+ ldr r2, [r1, #0x0]
+ ldr r1, [r2, #0x20]
+ sub r0, r0, r1
+ ldr r1, [r2, #0x30]
+ bl FUN_0201DF2C
+ ldr r1, _0201DECC ; =0x021C5994
+ add r5, r0, #0x0
+ ldr r1, [r1, #0x0]
+ ldr r0, [r4, #0x50]
+ ldr r1, [r1, #0x30]
+ bl FUN_0201DF2C
+ ldr r2, _0201DECC ; =0x021C5994
+ add r1, r0, #0x0
+ ldr r2, [r2, #0x0]
+ add r0, r5, #0x0
+ ldr r2, [r2, #0x38]
+ bl FUN_0201DDFC
+_0201DEC4:
+ mov r0, #0x0
+ str r0, [r4, #0x48]
+ pop {r3-r5, pc}
+ nop
+_0201DECC: .word 0x021C5994
+
+ thumb_func_start FUN_0201DED0
+FUN_0201DED0: ; 0x0201DED0
+ ldr r1, _0201DF04 ; =0x00100010
+ cmp r0, r1
+ bgt _0201DEDE
+ bge _0201DEF4
+ cmp r0, #0x10
+ beq _0201DEF0
+ b _0201DF00
+_0201DEDE:
+ ldr r1, _0201DF08 ; =0x00200010
+ cmp r0, r1
+ bgt _0201DEE8
+ beq _0201DEF8
+ b _0201DF00
+_0201DEE8:
+ ldr r1, _0201DF0C ; =0x00300010
+ cmp r0, r1
+ beq _0201DEFC
+ b _0201DF00
+_0201DEF0:
+ mov r0, #0x1
+ bx lr
+_0201DEF4:
+ mov r0, #0x2
+ bx lr
+_0201DEF8:
+ mov r0, #0x4
+ bx lr
+_0201DEFC:
+ mov r0, #0x8
+ bx lr
+_0201DF00:
+ mov r0, #0x1
+ bx lr
+ .balign 4
+_0201DF04: .word 0x00100010
+_0201DF08: .word 0x00200010
+_0201DF0C: .word 0x00300010
+
+ thumb_func_start FUN_0201DF10
+FUN_0201DF10: ; 0x0201DF10
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ add r6, r2, #0x0
+ blx _s32_div_f
+ cmp r1, #0x0
+ beq _0201DF28
+ sub r5, r5, r1
+ cmp r6, #0x1
+ bne _0201DF28
+ add r5, r5, r4
+_0201DF28:
+ add r0, r5, #0x0
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_0201DF2C
+FUN_0201DF2C: ; 0x0201DF2C
+ asr r2, r0, #0x4
+ lsr r2, r2, #0x1b
+ add r2, r0, r2
+ ldr r3, _0201DF38 ; =_s32_div_f
+ asr r0, r2, #0x5
+ bx r3
+ .balign 4
+_0201DF38: .word _s32_div_f
+
+ thumb_func_start FUN_0201DF3C
+FUN_0201DF3C: ; 0x0201DF3C
+ mul r1, r0
+ lsl r0, r1, #0x5
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_0201DF44
+FUN_0201DF44: ; 0x0201DF44
+ push {r3-r7, lr}
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ add r1, r2, #0x0
+ mov r0, #0x1
+ add r2, r4, #0x0
+ add r7, r3, #0x0
+ tst r2, r0
+ beq _0201DF6E
+ ldr r2, _0201DF90 ; =0x021C5994
+ ldr r2, [r2, #0x0]
+ ldr r6, [r2, #0xc]
+ ldr r2, [r2, #0x1c]
+ add r3, r6, r5
+ cmp r3, r2
+ bls _0201DF6C
+ bl ErrorHandling
+ mov r0, #0x0
+ b _0201DF6E
+_0201DF6C:
+ str r6, [r1, #0x0]
+_0201DF6E:
+ mov r1, #0x2
+ tst r1, r4
+ beq _0201DF8C
+ ldr r1, _0201DF90 ; =0x021C5994
+ ldr r1, [r1, #0x0]
+ ldr r3, [r1, #0x10]
+ ldr r1, [r1, #0x20]
+ add r2, r3, r5
+ cmp r2, r1
+ bls _0201DF8A
+ bl ErrorHandling
+ mov r0, #0x0
+ pop {r3-r7, pc}
+_0201DF8A:
+ str r3, [r7, #0x0]
+_0201DF8C:
+ pop {r3-r7, pc}
+ nop
+_0201DF90: .word 0x021C5994
+
+ thumb_func_start FUN_0201DF94
+FUN_0201DF94: ; 0x0201DF94
+ push {r3-r5, lr}
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ mov r2, #0x1
+ add r0, r4, #0x0
+ tst r0, r2
+ beq _0201DFBC
+ ldr r0, _0201DFE0 ; =0x021C5994
+ ldr r3, [r0, #0x0]
+ ldr r1, [r3, #0xc]
+ add r1, r1, r5
+ str r1, [r3, #0xc]
+ ldr r1, [r0, #0x0]
+ ldr r0, [r1, #0xc]
+ ldr r1, [r1, #0x2c]
+ bl FUN_0201DF10
+ ldr r1, _0201DFE0 ; =0x021C5994
+ ldr r1, [r1, #0x0]
+ str r0, [r1, #0xc]
+_0201DFBC:
+ mov r0, #0x2
+ tst r0, r4
+ beq _0201DFDE
+ ldr r0, _0201DFE0 ; =0x021C5994
+ ldr r2, [r0, #0x0]
+ ldr r1, [r2, #0x10]
+ add r1, r1, r5
+ str r1, [r2, #0x10]
+ ldr r1, [r0, #0x0]
+ mov r2, #0x1
+ ldr r0, [r1, #0x10]
+ ldr r1, [r1, #0x30]
+ bl FUN_0201DF10
+ ldr r1, _0201DFE0 ; =0x021C5994
+ ldr r1, [r1, #0x0]
+ str r0, [r1, #0x10]
+_0201DFDE:
+ pop {r3-r5, pc}
+ .balign 4
+_0201DFE0: .word 0x021C5994
+
+ thumb_func_start FUN_0201DFE4
+FUN_0201DFE4: ; 0x0201DFE4
+ asr r3, r0, #0x3
+ str r3, [r1, #0x0]
+ mov r1, #0x7
+ and r0, r1
+ strb r0, [r2, #0x0]
+ bx lr
+
+ thumb_func_start FUN_0201DFF0
+FUN_0201DFF0: ; 0x0201DFF0
+ push {r3-r4}
+ sub r0, r1, r0
+ ldr r4, [sp, #0x8]
+ str r0, [r3, #0x0]
+ bpl _0201E006
+ add r0, r2, r0
+ str r0, [r4, #0x0]
+ mov r0, #0x0
+ str r0, [r3, #0x0]
+ pop {r3-r4}
+ bx lr
+_0201E006:
+ str r2, [r4, #0x0]
+ pop {r3-r4}
+ bx lr
+
+ thumb_func_start FUN_0201E00C
+FUN_0201E00C: ; 0x0201E00C
+ push {r3-r7, lr}
+ add r6, r0, #0x0
+ ldr r0, _0201E064 ; =0x021C5998
+ add r4, r1, #0x0
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ bne _0201E060
+ add r0, r4, #0x0
+ mov r1, #0x28
+ bl FUN_02016998
+ add r1, r0, #0x0
+ ldr r0, _0201E064 ; =0x021C5998
+ mov r2, #0x28
+ str r1, [r0, #0x0]
+ mov r0, #0x0
+ blx MIi_CpuClear32
+ ldr r0, _0201E064 ; =0x021C5998
+ mov r1, #0x30
+ ldr r0, [r0, #0x0]
+ mul r1, r6
+ str r6, [r0, #0x4]
+ add r0, r4, #0x0
+ bl FUN_02016998
+ ldr r7, _0201E064 ; =0x021C5998
+ mov r4, #0x0
+ ldr r1, [r7, #0x0]
+ cmp r6, #0x0
+ str r0, [r1, #0x0]
+ ble _0201E060
+ add r5, r4, #0x0
+_0201E04E:
+ ldr r0, [r7, #0x0]
+ ldr r0, [r0, #0x0]
+ add r0, r0, r5
+ bl FUN_0201E2F8
+ add r4, r4, #0x1
+ add r5, #0x30
+ cmp r4, r6
+ blt _0201E04E
+_0201E060:
+ pop {r3-r7, pc}
+ nop
+_0201E064: .word 0x021C5998
+
+ thumb_func_start FUN_0201E068
+FUN_0201E068: ; 0x0201E068
+ cmp r1, #0x1
+ bne _0201E078
+ ldr r1, _0201E088 ; =0x021C5998
+ ldr r2, [r1, #0x0]
+ ldrh r1, [r2, #0x24]
+ orr r0, r1
+ strh r0, [r2, #0x24]
+ bx lr
+_0201E078:
+ cmp r1, #0x2
+ bne _0201E086
+ ldr r1, _0201E088 ; =0x021C5998
+ ldr r2, [r1, #0x0]
+ ldrh r1, [r2, #0x26]
+ orr r0, r1
+ strh r0, [r2, #0x26]
+_0201E086:
+ bx lr
+ .balign 4
+_0201E088: .word 0x021C5998
+
+ thumb_func_start FUN_0201E08C
+FUN_0201E08C: ; 0x0201E08C
+ push {r3, lr}
+ ldr r0, _0201E0B4 ; =0x021C5998
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ beq _0201E0B2
+ bl FUN_0201E1F0
+ ldr r0, _0201E0B4 ; =0x021C5998
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0x0]
+ bl FUN_02016A18
+ ldr r0, _0201E0B4 ; =0x021C5998
+ ldr r0, [r0, #0x0]
+ bl FUN_02016A18
+ ldr r0, _0201E0B4 ; =0x021C5998
+ mov r1, #0x0
+ str r1, [r0, #0x0]
+_0201E0B2:
+ pop {r3, pc}
+ .balign 4
+_0201E0B4: .word 0x021C5998
+
+ thumb_func_start FUN_0201E0B8
+FUN_0201E0B8: ; 0x0201E0B8
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_0201E0BC
+FUN_0201E0BC: ; 0x0201E0BC
+ push {r3, lr}
+ ldr r0, _0201E0E0 ; =0x021C5998
+ mov r2, #0x0
+ ldr r1, [r0, #0x0]
+ str r2, [r1, #0xc]
+ ldr r1, [r0, #0x0]
+ str r2, [r1, #0x10]
+ ldr r1, [r0, #0x0]
+ str r2, [r1, #0x14]
+ ldr r0, [r0, #0x0]
+ str r2, [r0, #0x18]
+ bl FUN_0201E464
+ ldr r0, _0201E0E0 ; =0x021C5998
+ ldr r0, [r0, #0x0]
+ bl FUN_0201E574
+ pop {r3, pc}
+ .balign 4
+_0201E0E0: .word 0x021C5998
+
+ thumb_func_start FUN_0201E0E4
+FUN_0201E0E4: ; 0x0201E0E4
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ bl FUN_0201E428
+ add r4, r0, #0x0
+ bne _0201E0F8
+ bl ErrorHandling
+ mov r0, #0x0
+ pop {r3-r5, pc}
+_0201E0F8:
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_0201E2C4
+ cmp r0, #0x0
+ bne _0201E108
+ mov r0, #0x0
+ pop {r3-r5, pc}
+_0201E108:
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_0201E314
+ cmp r0, #0x0
+ bne _0201E11E
+ ldr r0, [r5, #0xc]
+ bl FUN_0201E1C8
+ mov r0, #0x0
+ pop {r3-r5, pc}
+_0201E11E:
+ add r0, r4, #0x0
+ bl FUN_0201E57C
+ mov r0, #0x1
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_0201E128
+FUN_0201E128: ; 0x0201E128
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ bl FUN_0201E428
+ add r4, r0, #0x0
+ bne _0201E13C
+ bl ErrorHandling
+ mov r0, #0x0
+ pop {r3-r5, pc}
+_0201E13C:
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_0201E2C4
+ cmp r0, #0x0
+ bne _0201E14C
+ mov r0, #0x0
+ pop {r3-r5, pc}
+_0201E14C:
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_0201E36C
+ cmp r0, #0x0
+ bne _0201E162
+ ldr r0, [r5, #0xc]
+ bl FUN_0201E1C8
+ mov r0, #0x0
+ pop {r3-r5, pc}
+_0201E162:
+ mov r0, #0x1
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_0201E168
+FUN_0201E168: ; 0x0201E168
+ push {r3-r5, lr}
+ add r4, r0, #0x0
+ add r5, r1, #0x0
+ bne _0201E174
+ bl ErrorHandling
+_0201E174:
+ add r0, r4, #0x0
+ bl FUN_0201E3F0
+ add r4, r0, #0x0
+ bne _0201E182
+ bl ErrorHandling
+_0201E182:
+ str r5, [r4, #0x0]
+ ldr r1, [r4, #0x4]
+ mov r0, #0x1
+ tst r0, r1
+ beq _0201E19A
+ ldr r3, [r4, #0x8]
+ ldr r1, [r4, #0x24]
+ ldr r2, [r5, #0xc]
+ mov r0, #0xe
+ lsl r3, r3, #0x5
+ bl FUN_0201C2C8
+_0201E19A:
+ ldr r1, [r4, #0x4]
+ mov r0, #0x2
+ tst r0, r1
+ beq _0201E1B0
+ ldr r3, [r4, #0x8]
+ ldr r1, [r4, #0x28]
+ ldr r2, [r5, #0xc]
+ mov r0, #0x1e
+ lsl r3, r3, #0x5
+ bl FUN_0201C2C8
+_0201E1B0:
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_0201E1B4
+FUN_0201E1B4: ; 0x0201E1B4
+ push {r3, lr}
+ bl FUN_0201E3F0
+ cmp r0, #0x0
+ beq _0201E1C2
+ mov r0, #0x1
+ pop {r3, pc}
+_0201E1C2:
+ mov r0, #0x0
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_0201E1C8
+FUN_0201E1C8: ; 0x0201E1C8
+ push {r4, lr}
+ bl FUN_0201E3F0
+ add r4, r0, #0x0
+ bne _0201E1D6
+ bl ErrorHandling
+_0201E1D6:
+ add r0, r4, #0x0
+ add r0, #0x2c
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x1
+ bne _0201E1EC
+ add r0, r4, #0x0
+ bl FUN_0201E5B8
+ add r0, r4, #0x0
+ bl FUN_0201E2BC
+_0201E1EC:
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0201E1F0
+FUN_0201E1F0: ; 0x0201E1F0
+ push {r4-r6, lr}
+ ldr r6, _0201E22C ; =0x021C5998
+ mov r4, #0x0
+ ldr r1, [r6, #0x0]
+ ldr r0, [r1, #0x4]
+ cmp r0, #0x0
+ ble _0201E228
+ add r5, r4, #0x0
+_0201E200:
+ ldr r1, [r1, #0x0]
+ add r0, r1, r5
+ add r0, #0x2c
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x1
+ bne _0201E21C
+ add r0, r1, r5
+ bl FUN_0201E5B8
+ ldr r0, [r6, #0x0]
+ ldr r0, [r0, #0x0]
+ add r0, r0, r5
+ bl FUN_0201E2BC
+_0201E21C:
+ ldr r1, [r6, #0x0]
+ add r4, r4, #0x1
+ ldr r0, [r1, #0x4]
+ add r5, #0x30
+ cmp r4, r0
+ blt _0201E200
+_0201E228:
+ pop {r4-r6, pc}
+ nop
+_0201E22C: .word 0x021C5998
+
+ thumb_func_start FUN_0201E230
+FUN_0201E230: ; 0x0201E230
+ push {r3, lr}
+ bl FUN_0201E3F0
+ cmp r0, #0x0
+ bne _0201E244
+ bne _0201E240
+ bl ErrorHandling
+_0201E240:
+ mov r0, #0x0
+ pop {r3, pc}
+_0201E244:
+ add r1, r0, #0x0
+ add r1, #0x2c
+ ldrb r1, [r1, #0x0]
+ cmp r1, #0x1
+ bne _0201E252
+ add r0, #0x10
+ pop {r3, pc}
+_0201E252:
+ mov r0, #0x0
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_0201E258
+FUN_0201E258: ; 0x0201E258
+ push {r4, lr}
+ add r4, r1, #0x0
+ bl FUN_0201E3F0
+ cmp r0, #0x0
+ bne _0201E26E
+ bne _0201E26A
+ bl ErrorHandling
+_0201E26A:
+ mov r0, #0x0
+ pop {r4, pc}
+_0201E26E:
+ add r1, r0, #0x0
+ add r1, #0x2c
+ ldrb r1, [r1, #0x0]
+ cmp r1, #0x1
+ beq _0201E27C
+ mov r0, #0x0
+ pop {r4, pc}
+_0201E27C:
+ ldr r1, [r0, #0x0]
+ ldr r1, [r1, #0x4]
+ cmp r1, #0x0
+ beq _0201E288
+ mov r1, #0x1
+ str r1, [r4, #0x18]
+_0201E288:
+ add r0, #0x10
+ pop {r4, pc}
+
+ thumb_func_start FUN_0201E28C
+FUN_0201E28C: ; 0x0201E28C
+ push {r4, lr}
+ ldr r2, [r0, #0x4]
+ cmp r2, #0x0
+ beq _0201E29A
+ mov r4, #0x2
+ lsl r4, r4, #0x8
+ b _0201E2A6
+_0201E29A:
+ ldr r2, [r0, #0x0]
+ cmp r2, #0x4
+ bne _0201E2A4
+ mov r4, #0x0
+ b _0201E2A6
+_0201E2A4:
+ mov r4, #0x20
+_0201E2A6:
+ cmp r4, #0x0
+ beq _0201E2B6
+ blx FUN_020B19C4
+ add r1, r4, #0x0
+ blx _u32_div_f
+ pop {r4, pc}
+_0201E2B6:
+ mov r0, #0x0
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0201E2BC
+FUN_0201E2BC: ; 0x0201E2BC
+ ldr r3, _0201E2C0 ; =FUN_0201E2F8
+ bx r3
+ .balign 4
+_0201E2C0: .word FUN_0201E2F8
+
+ thumb_func_start FUN_0201E2C4
+FUN_0201E2C4: ; 0x0201E2C4
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ ldr r0, [r5, #0x0]
+ add r4, r1, #0x0
+ str r0, [r4, #0x0]
+ ldr r0, [r5, #0xc]
+ bl FUN_0201E1B4
+ cmp r0, #0x1
+ bne _0201E2E0
+ bl ErrorHandling
+ mov r0, #0x0
+ pop {r3-r5, pc}
+_0201E2E0:
+ ldr r0, [r5, #0xc]
+ add r1, r4, #0x0
+ str r0, [r4, #0xc]
+ ldr r0, [r5, #0x4]
+ add r1, #0x2c
+ str r0, [r4, #0x4]
+ mov r0, #0x1
+ strb r0, [r1, #0x0]
+ ldr r1, [r5, #0x8]
+ str r1, [r4, #0x8]
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_0201E2F8
+FUN_0201E2F8: ; 0x0201E2F8
+ push {r4, lr}
+ mov r1, #0x0
+ mov r2, #0x30
+ add r4, r0, #0x0
+ blx Call_FillMemWithValue
+ mov r0, #0x0
+ mvn r0, r0
+ str r0, [r4, #0xc]
+ add r4, #0x10
+ add r0, r4, #0x0
+ blx FUN_020B19DC
+ pop {r4, pc}
+
+ thumb_func_start FUN_0201E314
+FUN_0201E314: ; 0x0201E314
+ push {r3-r6, lr}
+ sub sp, #0x4
+ add r6, r1, #0x0
+ ldr r0, [r6, #0x0]
+ ldr r0, [r0, #0x4]
+ cmp r0, #0x0
+ beq _0201E334
+ ldr r0, _0201E368 ; =0x021C5998
+ ldr r0, [r0, #0x0]
+ add r4, r0, #0x0
+ add r5, r0, #0x0
+ ldr r3, [r0, #0x1c]
+ add r4, #0x14
+ add r5, #0x18
+ ldr r0, [r0, #0x20]
+ b _0201E344
+_0201E334:
+ ldr r0, _0201E368 ; =0x021C5998
+ mov r3, #0x2
+ ldr r5, [r0, #0x0]
+ lsl r3, r3, #0x8
+ add r4, r5, #0x0
+ add r4, #0xc
+ add r5, #0x10
+ add r0, r3, #0x0
+_0201E344:
+ str r0, [sp, #0x0]
+ ldr r1, [r4, #0x0]
+ ldr r2, [r5, #0x0]
+ add r0, r6, #0x0
+ bl FUN_0201E5F4
+ add r0, r6, #0x0
+ bl FUN_0201E4AC
+ add r0, r6, #0x0
+ add r1, r4, #0x0
+ add r2, r5, #0x0
+ bl FUN_0201E640
+ mov r0, #0x1
+ add sp, #0x4
+ pop {r3-r6, pc}
+ nop
+_0201E368: .word 0x021C5998
+
+ thumb_func_start FUN_0201E36C
+FUN_0201E36C: ; 0x0201E36C
+ push {r4-r6, lr}
+ add r5, r1, #0x0
+ ldr r0, [r5, #0x0]
+ ldr r0, [r0, #0x4]
+ cmp r0, #0x0
+ beq _0201E37C
+ bl ErrorHandling
+_0201E37C:
+ ldr r1, [r5, #0x4]
+ mov r0, #0x1
+ tst r0, r1
+ beq _0201E39E
+ ldr r0, _0201E3EC ; =0x021C5998
+ ldr r1, [r5, #0x8]
+ ldr r0, [r0, #0x0]
+ ldrh r0, [r0, #0x24]
+ bl FUN_0201E534
+ add r6, r0, #0x0
+ mov r0, #0x0
+ mvn r0, r0
+ cmp r6, r0
+ bne _0201E39E
+ mov r0, #0x0
+ pop {r4-r6, pc}
+_0201E39E:
+ ldr r1, [r5, #0x4]
+ mov r0, #0x2
+ tst r0, r1
+ beq _0201E3C0
+ ldr r0, _0201E3EC ; =0x021C5998
+ ldr r1, [r5, #0x8]
+ ldr r0, [r0, #0x0]
+ ldrh r0, [r0, #0x26]
+ bl FUN_0201E534
+ add r4, r0, #0x0
+ mov r0, #0x0
+ mvn r0, r0
+ cmp r4, r0
+ bne _0201E3C0
+ mov r0, #0x0
+ pop {r4-r6, pc}
+_0201E3C0:
+ ldr r1, [r5, #0x4]
+ mov r0, #0x1
+ tst r0, r1
+ beq _0201E3CA
+ str r6, [r5, #0x24]
+_0201E3CA:
+ ldr r1, [r5, #0x4]
+ mov r0, #0x2
+ tst r0, r1
+ beq _0201E3D4
+ str r4, [r5, #0x28]
+_0201E3D4:
+ ldr r0, [r5, #0x8]
+ lsl r1, r0, #0x5
+ ldr r0, [r5, #0x0]
+ str r1, [r0, #0x8]
+ add r0, r5, #0x0
+ bl FUN_0201E4BC
+ add r0, r5, #0x0
+ bl FUN_0201E57C
+ mov r0, #0x1
+ pop {r4-r6, pc}
+ .balign 4
+_0201E3EC: .word 0x021C5998
+
+ thumb_func_start FUN_0201E3F0
+FUN_0201E3F0: ; 0x0201E3F0
+ push {r4-r5}
+ ldr r2, _0201E424 ; =0x021C5998
+ mov r1, #0x0
+ ldr r5, [r2, #0x0]
+ ldr r2, [r5, #0x4]
+ cmp r2, #0x0
+ ble _0201E41C
+ ldr r2, [r5, #0x0]
+ add r4, r2, #0x0
+_0201E402:
+ ldr r3, [r4, #0xc]
+ cmp r0, r3
+ bne _0201E412
+ mov r0, #0x30
+ mul r0, r1
+ add r0, r2, r0
+ pop {r4-r5}
+ bx lr
+_0201E412:
+ ldr r3, [r5, #0x4]
+ add r1, r1, #0x1
+ add r4, #0x30
+ cmp r1, r3
+ blt _0201E402
+_0201E41C:
+ mov r0, #0x0
+ pop {r4-r5}
+ bx lr
+ nop
+_0201E424: .word 0x021C5998
+
+ thumb_func_start FUN_0201E428
+FUN_0201E428: ; 0x0201E428
+ push {r3-r4}
+ ldr r1, _0201E460 ; =0x021C5998
+ mov r0, #0x0
+ ldr r4, [r1, #0x0]
+ ldr r1, [r4, #0x4]
+ cmp r1, #0x0
+ ble _0201E458
+ ldr r1, [r4, #0x0]
+ add r3, r1, #0x0
+_0201E43A:
+ add r2, r3, #0x0
+ add r2, #0x2c
+ ldrb r2, [r2, #0x0]
+ cmp r2, #0x0
+ bne _0201E44E
+ mov r2, #0x30
+ mul r2, r0
+ add r0, r1, r2
+ pop {r3-r4}
+ bx lr
+_0201E44E:
+ ldr r2, [r4, #0x4]
+ add r0, r0, #0x1
+ add r3, #0x30
+ cmp r0, r2
+ blt _0201E43A
+_0201E458:
+ mov r0, #0x0
+ pop {r3-r4}
+ bx lr
+ nop
+_0201E460: .word 0x021C5998
+
+ thumb_func_start FUN_0201E464
+FUN_0201E464: ; 0x0201E464
+ push {r3, lr}
+ blx GX_GetBankForOBJExtPltt
+ cmp r0, #0x20
+ beq _0201E472
+ cmp r0, #0x40
+ bne _0201E47E
+_0201E472:
+ ldr r0, _0201E4A8 ; =0x021C5998
+ mov r1, #0x2
+ ldr r0, [r0, #0x0]
+ lsl r1, r1, #0xc
+ str r1, [r0, #0x1c]
+ b _0201E486
+_0201E47E:
+ ldr r0, _0201E4A8 ; =0x021C5998
+ mov r1, #0x0
+ ldr r0, [r0, #0x0]
+ str r1, [r0, #0x1c]
+_0201E486:
+ blx GX_GetBankForSubOBJExtPltt
+ mov r1, #0x1
+ lsl r1, r1, #0x8
+ cmp r0, r1
+ bne _0201E49C
+ ldr r0, _0201E4A8 ; =0x021C5998
+ lsl r1, r1, #0x5
+ ldr r0, [r0, #0x0]
+ str r1, [r0, #0x20]
+ pop {r3, pc}
+_0201E49C:
+ ldr r0, _0201E4A8 ; =0x021C5998
+ mov r1, #0x0
+ ldr r0, [r0, #0x0]
+ str r1, [r0, #0x20]
+ pop {r3, pc}
+ nop
+_0201E4A8: .word 0x021C5998
+
+ thumb_func_start FUN_0201E4AC
+FUN_0201E4AC: ; 0x0201E4AC
+ ldr r1, [r0, #0x8]
+ ldr r3, _0201E4B8 ; =FUN_0201E4BC
+ lsl r2, r1, #0x5
+ ldr r1, [r0, #0x0]
+ str r2, [r1, #0x8]
+ bx r3
+ .balign 4
+_0201E4B8: .word FUN_0201E4BC
+
+ thumb_func_start FUN_0201E4BC
+FUN_0201E4BC: ; 0x0201E4BC
+ push {r4, lr}
+ add r4, r0, #0x0
+ add r0, #0x10
+ blx FUN_020B19DC
+ ldr r0, [r4, #0x4]
+ mov r2, #0x1
+ tst r0, r2
+ beq _0201E4DA
+ add r3, r4, #0x0
+ ldr r0, [r4, #0x0]
+ ldr r1, [r4, #0x24]
+ add r3, #0x10
+ blx FUN_020B1240
+_0201E4DA:
+ ldr r0, [r4, #0x4]
+ mov r2, #0x2
+ tst r0, r2
+ beq _0201E4EE
+ ldr r0, [r4, #0x0]
+ ldr r1, [r4, #0x28]
+ add r4, #0x10
+ add r3, r4, #0x0
+ blx FUN_020B1240
+_0201E4EE:
+ pop {r4, pc}
+
+ thumb_func_start FUN_0201E4F0
+FUN_0201E4F0: ; 0x0201E4F0
+ push {r4-r7}
+ mov r3, #0x0
+ cmp r1, #0x0
+ ble _0201E50E
+ mov r5, #0x1
+_0201E4FA:
+ ldrh r7, [r0, #0x0]
+ add r4, r2, r3
+ add r6, r5, #0x0
+ lsl r6, r4
+ add r4, r7, #0x0
+ orr r4, r6
+ add r3, r3, #0x1
+ strh r4, [r0, #0x0]
+ cmp r3, r1
+ blt _0201E4FA
+_0201E50E:
+ pop {r4-r7}
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_0201E514
+FUN_0201E514: ; 0x0201E514
+ push {r4-r7}
+ mov r4, #0x0
+ cmp r1, #0x0
+ ble _0201E530
+ mov r6, #0x1
+_0201E51E:
+ add r5, r2, r4
+ add r7, r6, #0x0
+ ldrh r3, [r0, #0x0]
+ lsl r7, r5
+ bic r3, r7
+ add r4, r4, #0x1
+ strh r3, [r0, #0x0]
+ cmp r4, r1
+ blt _0201E51E
+_0201E530:
+ pop {r4-r7}
+ bx lr
+
+ thumb_func_start FUN_0201E534
+FUN_0201E534: ; 0x0201E534
+ push {r4-r7}
+ mov r3, #0x0
+ mov r6, #0x1
+ add r2, r3, #0x0
+_0201E53C:
+ add r4, r2, #0x0
+ b _0201E546
+_0201E540:
+ cmp r5, #0x10
+ bge _0201E554
+ add r4, r4, #0x1
+_0201E546:
+ add r5, r3, r4
+ add r7, r6, #0x0
+ lsl r7, r5
+ tst r7, r0
+ bne _0201E554
+ cmp r4, r1
+ blt _0201E540
+_0201E554:
+ cmp r4, r1
+ bge _0201E560
+ add r3, r3, r4
+ add r3, r3, #0x1
+ cmp r3, #0x10
+ blt _0201E53C
+_0201E560:
+ cmp r3, #0x10
+ blt _0201E56C
+ mov r0, #0x0
+ mvn r0, r0
+ pop {r4-r7}
+ bx lr
+_0201E56C:
+ lsl r0, r3, #0x5
+ pop {r4-r7}
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_0201E574
+FUN_0201E574: ; 0x0201E574
+ mov r1, #0x0
+ strh r1, [r0, #0x24]
+ strh r1, [r0, #0x26]
+ bx lr
+
+ thumb_func_start FUN_0201E57C
+FUN_0201E57C: ; 0x0201E57C
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r1, [r4, #0x4]
+ mov r0, #0x1
+ tst r0, r1
+ beq _0201E598
+ ldr r0, _0201E5B4 ; =0x021C5998
+ ldr r2, [r4, #0x24]
+ ldr r0, [r0, #0x0]
+ ldr r1, [r4, #0x8]
+ add r0, #0x24
+ lsr r2, r2, #0x5
+ bl FUN_0201E4F0
+_0201E598:
+ ldr r1, [r4, #0x4]
+ mov r0, #0x2
+ tst r0, r1
+ beq _0201E5B0
+ ldr r0, _0201E5B4 ; =0x021C5998
+ ldr r2, [r4, #0x28]
+ ldr r0, [r0, #0x0]
+ ldr r1, [r4, #0x8]
+ add r0, #0x26
+ lsr r2, r2, #0x5
+ bl FUN_0201E4F0
+_0201E5B0:
+ pop {r4, pc}
+ nop
+_0201E5B4: .word 0x021C5998
+
+ thumb_func_start FUN_0201E5B8
+FUN_0201E5B8: ; 0x0201E5B8
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r1, [r4, #0x4]
+ mov r0, #0x1
+ tst r0, r1
+ beq _0201E5D4
+ ldr r0, _0201E5F0 ; =0x021C5998
+ ldr r2, [r4, #0x24]
+ ldr r0, [r0, #0x0]
+ ldr r1, [r4, #0x8]
+ add r0, #0x24
+ lsr r2, r2, #0x5
+ bl FUN_0201E514
+_0201E5D4:
+ ldr r1, [r4, #0x4]
+ mov r0, #0x2
+ tst r0, r1
+ beq _0201E5EC
+ ldr r0, _0201E5F0 ; =0x021C5998
+ ldr r2, [r4, #0x28]
+ ldr r0, [r0, #0x0]
+ ldr r1, [r4, #0x8]
+ add r0, #0x26
+ lsr r2, r2, #0x5
+ bl FUN_0201E514
+_0201E5EC:
+ pop {r4, pc}
+ nop
+_0201E5F0: .word 0x021C5998
+
+ thumb_func_start FUN_0201E5F4
+FUN_0201E5F4: ; 0x0201E5F4
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r2, #0x0
+ ldr r2, [r5, #0x4]
+ mov r0, #0x1
+ tst r2, r0
+ beq _0201E61A
+ ldr r2, [r5, #0x8]
+ lsl r2, r2, #0x5
+ add r2, r1, r2
+ cmp r2, r3
+ bls _0201E618
+ bl ErrorHandling
+ bl FUN_0201E0B8
+ mov r0, #0x0
+ b _0201E61A
+_0201E618:
+ str r1, [r5, #0x24]
+_0201E61A:
+ ldr r2, [r5, #0x4]
+ mov r1, #0x2
+ tst r1, r2
+ beq _0201E63C
+ ldr r1, [r5, #0x8]
+ lsl r1, r1, #0x5
+ add r2, r4, r1
+ ldr r1, [sp, #0x10]
+ cmp r2, r1
+ bls _0201E63A
+ bl ErrorHandling
+ bl FUN_0201E0B8
+ mov r0, #0x0
+ pop {r3-r5, pc}
+_0201E63A:
+ str r4, [r5, #0x28]
+_0201E63C:
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_0201E640
+FUN_0201E640: ; 0x0201E640
+ push {r3-r4}
+ ldr r4, [r0, #0x4]
+ mov r3, #0x1
+ tst r3, r4
+ beq _0201E654
+ ldr r3, [r0, #0x8]
+ ldr r4, [r1, #0x0]
+ lsl r3, r3, #0x5
+ add r3, r4, r3
+ str r3, [r1, #0x0]
+_0201E654:
+ ldr r3, [r0, #0x4]
+ mov r1, #0x2
+ tst r1, r3
+ beq _0201E666
+ ldr r0, [r0, #0x8]
+ ldr r1, [r2, #0x0]
+ lsl r0, r0, #0x5
+ add r0, r1, r0
+ str r0, [r2, #0x0]
+_0201E666:
+ pop {r3-r4}
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_0201E66C
+FUN_0201E66C: ; 0x0201E66C
+ push {r4, lr}
+ add r4, r0, #0x0
+ blx GX_ResetBankForBG
+ blx GX_ResetBankForBGExtPltt
+ blx GX_ResetBankForSubBG
+ blx FUN_020C6034
+ blx GX_ResetBankForOBJ
+ blx GX_ResetBankForOBJExtPltt
+ blx FUN_020C605C
+ blx GX_ResetBankForSubOBJ
+ blx GX_ResetBankForTex
+ blx GX_ResetBankForTexPltt
+ ldr r0, [r4, #0x0]
+ blx GX_SetBankForBG
+ ldr r0, [r4, #0x4]
+ blx GX_SetBankForBGExtPltt
+ ldr r0, [r4, #0x8]
+ blx GX_SetBankForSubBG
+ ldr r0, [r4, #0xc]
+ blx GX_SetBankForSubBGExtPltt
+ ldr r0, [r4, #0x10]
+ blx GX_SetBankForOBJ
+ ldr r0, [r4, #0x14]
+ blx GX_SetBankForOBJExtPltt
+ ldr r0, [r4, #0x18]
+ blx GX_SetBankForSubOBJ
+ ldr r0, [r4, #0x1c]
+ blx GX_SetBankForSubOBJExtPltt
+ ldr r0, [r4, #0x20]
+ blx GX_SetBankForTex
+ ldr r0, [r4, #0x24]
+ blx GX_SetBankForTexPltt
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0201E6D8
+FUN_0201E6D8: ; 0x0201E6D8
+ ldr r0, _0201E6E0 ; =0x021C599C
+ mov r1, #0x0
+ str r1, [r0, #0x4]
+ bx lr
+ .balign 4
+_0201E6E0: .word 0x021C599C
+
+ thumb_func_start FUN_0201E6E4
+FUN_0201E6E4: ; 0x0201E6E4
+ cmp r1, #0x1
+ bne _0201E6F2
+ ldr r1, _0201E718 ; =0x021C599C
+ ldr r1, [r1, #0x4]
+ tst r1, r0
+ beq _0201E6FA
+ bx lr
+_0201E6F2:
+ ldr r1, _0201E718 ; =0x021C599C
+ ldr r1, [r1, #0x4]
+ tst r1, r0
+ beq _0201E714
+_0201E6FA:
+ ldr r1, _0201E718 ; =0x021C599C
+ ldr r2, [r1, #0x4]
+ add r3, r2, #0x0
+ eor r3, r0
+ mov r2, #0x1
+ lsl r2, r2, #0x1a
+ str r3, [r1, #0x4]
+ ldr r1, [r2, #0x0]
+ ldr r0, _0201E71C ; =0xFFFFE0FF
+ and r1, r0
+ lsl r0, r3, #0x8
+ orr r0, r1
+ str r0, [r2, #0x0]
+_0201E714:
+ bx lr
+ nop
+_0201E718: .word 0x021C599C
+_0201E71C: .word 0xFFFFE0FF
+
+ thumb_func_start FUN_0201E720
+FUN_0201E720: ; 0x0201E720
+ ldr r1, _0201E738 ; =0x021C599C
+ mov r3, #0x1
+ str r0, [r1, #0x4]
+ lsl r3, r3, #0x1a
+ ldr r2, [r3, #0x0]
+ ldr r1, _0201E73C ; =0xFFFFE0FF
+ lsl r0, r0, #0x8
+ and r1, r2
+ orr r0, r1
+ str r0, [r3, #0x0]
+ bx lr
+ nop
+_0201E738: .word 0x021C599C
+_0201E73C: .word 0xFFFFE0FF
+
+ thumb_func_start FUN_0201E740
+FUN_0201E740: ; 0x0201E740
+ ldr r0, _0201E748 ; =0x021C599C
+ mov r1, #0x0
+ str r1, [r0, #0x0]
+ bx lr
+ .balign 4
+_0201E748: .word 0x021C599C
+
+ thumb_func_start FUN_0201E74C
+FUN_0201E74C: ; 0x0201E74C
+ cmp r1, #0x1
+ bne _0201E75A
+ ldr r1, _0201E77C ; =0x021C599C
+ ldr r1, [r1, #0x0]
+ tst r1, r0
+ beq _0201E762
+ bx lr
+_0201E75A:
+ ldr r1, _0201E77C ; =0x021C599C
+ ldr r1, [r1, #0x0]
+ tst r1, r0
+ beq _0201E77A
+_0201E762:
+ ldr r1, _0201E77C ; =0x021C599C
+ ldr r2, [r1, #0x0]
+ add r3, r2, #0x0
+ eor r3, r0
+ ldr r2, _0201E780 ; =0x04001000
+ str r3, [r1, #0x0]
+ ldr r1, [r2, #0x0]
+ ldr r0, _0201E784 ; =0xFFFFE0FF
+ and r1, r0
+ lsl r0, r3, #0x8
+ orr r0, r1
+ str r0, [r2, #0x0]
+_0201E77A:
+ bx lr
+ .balign 4
+_0201E77C: .word 0x021C599C
+_0201E780: .word 0x04001000
+_0201E784: .word 0xFFFFE0FF
+
+ thumb_func_start FUN_0201E788
+FUN_0201E788: ; 0x0201E788
+ push {r3, lr}
+ blx GX_DispOn
+ ldr r2, _0201E79C ; =0x04001000
+ mov r0, #0x1
+ ldr r1, [r2, #0x0]
+ lsl r0, r0, #0x10
+ orr r0, r1
+ str r0, [r2, #0x0]
+ pop {r3, pc}
+ .balign 4
+_0201E79C: .word 0x04001000
+
+ thumb_func_start FUN_0201E7A0
+FUN_0201E7A0: ; 0x0201E7A0
+ ldr r0, _0201E7C0 ; =0x021C4918
+ ldr r2, _0201E7C4 ; =0x04000304
+ ldrb r0, [r0, #0x5]
+ cmp r0, #0x0
+ bne _0201E7B4
+ ldrh r1, [r2, #0x0]
+ lsr r0, r2, #0xb
+ orr r0, r1
+ strh r0, [r2, #0x0]
+ bx lr
+_0201E7B4:
+ ldrh r1, [r2, #0x0]
+ ldr r0, _0201E7C8 ; =0xFFFF7FFF
+ and r0, r1
+ strh r0, [r2, #0x0]
+ bx lr
+ nop
+_0201E7C0: .word 0x021C4918
+_0201E7C4: .word 0x04000304
+_0201E7C8: .word 0xFFFF7FFF
+
+ thumb_func_start FUN_0201E7CC
+FUN_0201E7CC: ; 0x0201E7CC
+ ldr r0, _0201E7D4 ; =0x021C599C
+ ldr r0, [r0, #0x4]
+ bx lr
+ nop
+_0201E7D4: .word 0x021C599C
+
+ thumb_func_start FUN_0201E7D8
+FUN_0201E7D8: ; 0x0201E7D8
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ ldrh r0, [r5, #0x3e]
+ ldr r2, [r5, #0x38]
+ ldrh r4, [r5, #0x3c]
+ asr r0, r0, #0x4
+ lsl r1, r0, #0x2
+ ldr r0, _0201E8B4 ; =0x020FFA38
+ asr r3, r2, #0x1f
+ ldrsh r0, [r0, r1]
+ asr r1, r0, #0x1f
+ blx _ll_mul
+ mov r2, #0x2
+ mov r3, #0x0
+ lsl r2, r2, #0xa
+ add r0, r0, r2
+ adc r1, r3
+ asr r2, r4, #0x4
+ lsl r2, r2, #0x1
+ add r2, r2, #0x1
+ lsl r3, r2, #0x1
+ ldr r2, _0201E8B4 ; =0x020FFA38
+ lsl r1, r1, #0x14
+ ldrsh r2, [r2, r3]
+ lsr r0, r0, #0xc
+ orr r0, r1
+ asr r1, r0, #0x1f
+ asr r3, r2, #0x1f
+ blx _ll_mul
+ mov r2, #0x2
+ mov r3, #0x0
+ 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, #0x14]
+ ldrh r0, [r5, #0x3e]
+ ldr r2, [r5, #0x38]
+ asr r0, r0, #0x4
+ lsl r0, r0, #0x1
+ add r0, r0, #0x1
+ lsl r1, r0, #0x1
+ ldr r0, _0201E8B4 ; =0x020FFA38
+ asr r3, r2, #0x1f
+ ldrsh r0, [r0, r1]
+ asr r1, r0, #0x1f
+ blx _ll_mul
+ mov r2, #0x2
+ lsl r2, r2, #0xa
+ mov r3, #0x0
+ add r0, r0, r2
+ adc r1, r3
+ ldrh r2, [r5, #0x3c]
+ lsl r1, r1, #0x14
+ lsr r0, r0, #0xc
+ asr r2, r2, #0x4
+ lsl r2, r2, #0x1
+ add r2, r2, #0x1
+ lsl r3, r2, #0x1
+ ldr r2, _0201E8B4 ; =0x020FFA38
+ orr r0, r1
+ ldrsh r2, [r2, r3]
+ asr r1, r0, #0x1f
+ asr r3, r2, #0x1f
+ blx _ll_mul
+ mov r2, #0x2
+ mov r3, #0x0
+ lsl r2, r2, #0xa
+ add r2, r0, r2
+ adc r1, r3
+ lsl r0, r1, #0x14
+ lsr r1, r2, #0xc
+ orr r1, r0
+ neg r0, r4
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r1, [r5, #0x1c]
+ asr r0, r0, #0x4
+ lsl r1, r0, #0x2
+ ldr r0, _0201E8B4 ; =0x020FFA38
+ ldr r2, [r5, #0x38]
+ ldrsh r0, [r0, r1]
+ asr r3, r2, #0x1f
+ asr r1, r0, #0x1f
+ blx _ll_mul
+ mov r2, #0x2
+ mov r3, #0x0
+ lsl r2, r2, #0xa
+ add r2, r0, r2
+ adc r1, r3
+ lsl r0, r1, #0x14
+ lsr r1, r2, #0xc
+ orr r1, r0
+ add r0, r5, #0x0
+ str r1, [r5, #0x18]
+ add r0, #0x14
+ add r5, #0x20
+ add r1, r5, #0x0
+ add r2, r0, #0x0
+ blx VEC_Add
+ pop {r3-r5, pc}
+ nop
+_0201E8B4: .word 0x020FFA38
+
+ thumb_func_start FUN_0201E8B8
+FUN_0201E8B8: ; 0x0201E8B8
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ ldrh r0, [r5, #0x3e]
+ ldr r2, [r5, #0x38]
+ ldrh r4, [r5, #0x3c]
+ asr r0, r0, #0x4
+ lsl r1, r0, #0x2
+ ldr r0, _0201E998 ; =0x020FFA38
+ asr r3, r2, #0x1f
+ ldrsh r0, [r0, r1]
+ asr r1, r0, #0x1f
+ blx _ll_mul
+ mov r2, #0x2
+ mov r3, #0x0
+ lsl r2, r2, #0xa
+ add r0, r0, r2
+ adc r1, r3
+ asr r2, r4, #0x4
+ lsl r2, r2, #0x1
+ add r2, r2, #0x1
+ lsl r3, r2, #0x1
+ ldr r2, _0201E998 ; =0x020FFA38
+ lsl r1, r1, #0x14
+ ldrsh r2, [r2, r3]
+ lsr r0, r0, #0xc
+ orr r0, r1
+ asr r1, r0, #0x1f
+ asr r3, r2, #0x1f
+ blx _ll_mul
+ mov r2, #0x2
+ mov r3, #0x0
+ lsl r2, r2, #0xa
+ add r2, r0, r2
+ adc r1, r3
+ lsl r0, r1, #0x14
+ lsr r1, r2, #0xc
+ orr r1, r0
+ neg r0, r1
+ str r0, [r5, #0x20]
+ ldrh r0, [r5, #0x3e]
+ ldr r2, [r5, #0x38]
+ asr r0, r0, #0x4
+ lsl r0, r0, #0x1
+ add r0, r0, #0x1
+ lsl r1, r0, #0x1
+ ldr r0, _0201E998 ; =0x020FFA38
+ asr r3, r2, #0x1f
+ ldrsh r0, [r0, r1]
+ asr r1, r0, #0x1f
+ blx _ll_mul
+ mov r2, #0x2
+ lsl r2, r2, #0xa
+ mov r3, #0x0
+ add r0, r0, r2
+ adc r1, r3
+ ldrh r2, [r5, #0x3c]
+ lsl r1, r1, #0x14
+ lsr r0, r0, #0xc
+ asr r2, r2, #0x4
+ lsl r2, r2, #0x1
+ add r2, r2, #0x1
+ lsl r3, r2, #0x1
+ ldr r2, _0201E998 ; =0x020FFA38
+ orr r0, r1
+ ldrsh r2, [r2, r3]
+ asr r1, r0, #0x1f
+ asr r3, r2, #0x1f
+ blx _ll_mul
+ mov r2, #0x2
+ mov r3, #0x0
+ lsl r2, r2, #0xa
+ add r2, r0, r2
+ adc r1, r3
+ lsl r0, r1, #0x14
+ lsr r1, r2, #0xc
+ orr r1, r0
+ neg r0, r1
+ str r0, [r5, #0x28]
+ neg r0, r4
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ asr r0, r0, #0x4
+ lsl r1, r0, #0x2
+ ldr r0, _0201E998 ; =0x020FFA38
+ ldr r2, [r5, #0x38]
+ ldrsh r0, [r0, r1]
+ asr r3, r2, #0x1f
+ asr r1, r0, #0x1f
+ blx _ll_mul
+ mov r2, #0x2
+ mov r3, #0x0
+ lsl r2, r2, #0xa
+ add r2, r0, r2
+ adc r1, r3
+ lsl r0, r1, #0x14
+ lsr r1, r2, #0xc
+ orr r1, r0
+ neg r0, r1
+ str r0, [r5, #0x24]
+ add r0, r5, #0x0
+ add r0, #0x20
+ add r5, #0x14
+ add r1, r5, #0x0
+ add r2, r0, #0x0
+ blx VEC_Add
+ pop {r3-r5, pc}
+ .balign 4
+_0201E998: .word 0x020FFA38
+
+ thumb_func_start FUN_0201E99C
+FUN_0201E99C: ; 0x0201E99C
+ add r2, r1, #0x0
+ add r2, #0x46
+ strh r0, [r2, #0x0]
+ asr r0, r0, #0x4
+ lsl r3, r0, #0x1
+ ldr r2, _0201E9E0 ; =0x020FFA38
+ lsl r0, r3, #0x1
+ ldrsh r0, [r2, r0]
+ str r0, [r1, #0x0]
+ add r0, r3, #0x1
+ lsl r0, r0, #0x1
+ ldrsh r0, [r2, r0]
+ mov r2, #0x0
+ str r0, [r1, #0x4]
+ ldr r0, _0201E9E4 ; =0x00001555
+ str r0, [r1, #0x8]
+ mov r0, #0x96
+ lsl r0, r0, #0xc
+ str r0, [r1, #0xc]
+ mov r0, #0xe1
+ lsl r0, r0, #0xe
+ str r0, [r1, #0x10]
+ mov r0, #0x1
+ str r2, [r1, #0x2c]
+ lsl r0, r0, #0xc
+ str r0, [r1, #0x30]
+ str r2, [r1, #0x34]
+ str r2, [r1, #0x54]
+ str r2, [r1, #0x58]
+ str r2, [r1, #0x5c]
+ str r2, [r1, #0x60]
+ str r2, [r1, #0x64]
+ bx lr
+ nop
+_0201E9E0: .word 0x020FFA38
+_0201E9E4: .word 0x00001555
+
+ thumb_func_start FUN_0201E9E8
+FUN_0201E9E8: ; 0x0201E9E8
+ ldr r2, [r0, #0x58]
+ cmp r2, #0x0
+ bne _0201E9F2
+ mov r2, #0x0
+ str r2, [r1, #0x0]
+_0201E9F2:
+ ldr r2, [r0, #0x5c]
+ cmp r2, #0x0
+ bne _0201E9FC
+ mov r2, #0x0
+ str r2, [r1, #0x4]
+_0201E9FC:
+ ldr r0, [r0, #0x60]
+ cmp r0, #0x0
+ bne _0201EA06
+ mov r0, #0x0
+ str r0, [r1, #0x8]
+_0201EA06:
+ bx lr
+
+ thumb_func_start FUN_0201EA08
+FUN_0201EA08: ; 0x0201EA08
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ ldr r7, [r5, #0x64]
+ add r4, r1, #0x0
+ add r6, r2, #0x0
+ cmp r7, #0x0
+ bne _0201EA20
+ ldmia r4!, {r0-r1}
+ stmia r6!, {r0-r1}
+ ldr r0, [r4, #0x0]
+ str r0, [r6, #0x0]
+ pop {r3-r7, pc}
+_0201EA20:
+ add r0, r7, #0x0
+ str r0, [sp, #0x0]
+ add r0, #0x8
+ str r0, [sp, #0x0]
+ ldr r0, [r7, #0x10]
+ cmp r0, #0x0
+ bne _0201EA48
+ add r3, r4, #0x0
+ ldmia r3!, {r0-r1}
+ stmia r2!, {r0-r1}
+ ldr r0, [r3, #0x0]
+ str r0, [r2, #0x0]
+ ldr r0, [r5, #0x64]
+ ldr r2, [r7, #0x4]
+ ldr r1, [r0, #0xc]
+ cmp r2, r1
+ bne _0201EA5C
+ mov r1, #0x1
+ str r1, [r0, #0x10]
+ b _0201EA5C
+_0201EA48:
+ ldr r2, [r7, #0x4]
+ mov r1, #0xc
+ mul r1, r2
+ ldr r0, [r7, #0x20]
+ add r2, r6, #0x0
+ add r3, r0, r1
+ ldmia r3!, {r0-r1}
+ stmia r2!, {r0-r1}
+ ldr r0, [r3, #0x0]
+ str r0, [r2, #0x0]
+_0201EA5C:
+ ldr r1, [r5, #0x64]
+ ldr r0, [r7, #0x4]
+ ldr r1, [r1, #0x0]
+ add r0, r0, #0x1
+ blx _s32_div_f
+ str r1, [r7, #0x4]
+ ldr r1, [sp, #0x0]
+ ldr r0, [r5, #0x64]
+ ldr r2, [r1, #0x0]
+ mov r1, #0xc
+ ldr r0, [r0, #0x20]
+ mul r1, r2
+ add r3, r4, #0x0
+ add r2, r0, r1
+ ldmia r3!, {r0-r1}
+ stmia r2!, {r0-r1}
+ ldr r0, [r3, #0x0]
+ str r0, [r2, #0x0]
+ ldr r0, [sp, #0x0]
+ ldr r1, [r5, #0x64]
+ ldr r0, [r0, #0x0]
+ ldr r1, [r1, #0x0]
+ add r0, r0, #0x1
+ blx _s32_div_f
+ ldr r0, [sp, #0x0]
+ str r1, [r0, #0x0]
+ ldr r0, [r5, #0x64]
+ ldr r0, [r0, #0x14]
+ cmp r0, #0x0
+ bne _0201EAA0
+ ldr r0, [r4, #0x0]
+ str r0, [r6, #0x0]
+_0201EAA0:
+ ldr r0, [r5, #0x64]
+ ldr r0, [r0, #0x18]
+ cmp r0, #0x0
+ bne _0201EAAC
+ ldr r0, [r4, #0x4]
+ str r0, [r6, #0x4]
+_0201EAAC:
+ ldr r0, [r5, #0x64]
+ ldr r0, [r0, #0x1c]
+ cmp r0, #0x0
+ bne _0201EAB8
+ ldr r0, [r4, #0x8]
+ str r0, [r6, #0x8]
+_0201EAB8:
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_0201EABC
+FUN_0201EABC: ; 0x0201EABC
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ ldr r0, [sp, #0x18]
+ add r7, r1, #0x0
+ str r0, [sp, #0x18]
+ ldr r0, [r0, #0x54]
+ add r6, r2, #0x0
+ str r3, [sp, #0x0]
+ cmp r0, #0x0
+ beq _0201EB46
+ add r0, r7, #0x1
+ cmp r0, r5
+ ble _0201EADA
+ bl ErrorHandling
+_0201EADA:
+ ldr r0, [sp, #0x0]
+ mov r1, #0x24
+ bl FUN_02016998
+ add r4, r0, #0x0
+ mov r1, #0xc
+ ldr r0, [sp, #0x0]
+ mul r1, r5
+ bl FUN_02016998
+ mov r1, #0x0
+ str r0, [r4, #0x20]
+ cmp r5, #0x0
+ ble _0201EB12
+ add r2, r1, #0x0
+ add r0, r1, #0x0
+_0201EAFA:
+ ldr r3, [r4, #0x20]
+ add r1, r1, #0x1
+ str r0, [r3, r2]
+ ldr r3, [r4, #0x20]
+ add r3, r3, r2
+ str r0, [r3, #0x4]
+ ldr r3, [r4, #0x20]
+ add r3, r3, r2
+ str r0, [r3, #0x8]
+ add r2, #0xc
+ cmp r1, r5
+ blt _0201EAFA
+_0201EB12:
+ str r5, [r4, #0x0]
+ mov r0, #0x0
+ str r0, [r4, #0x4]
+ str r7, [r4, #0x8]
+ str r7, [r4, #0xc]
+ str r0, [r4, #0x10]
+ str r0, [r4, #0x14]
+ str r0, [r4, #0x18]
+ str r0, [r4, #0x1c]
+ mov r0, #0x1
+ add r1, r6, #0x0
+ tst r1, r0
+ beq _0201EB2E
+ str r0, [r4, #0x14]
+_0201EB2E:
+ mov r0, #0x2
+ tst r0, r6
+ beq _0201EB38
+ mov r0, #0x1
+ str r0, [r4, #0x18]
+_0201EB38:
+ mov r0, #0x4
+ tst r0, r6
+ beq _0201EB42
+ mov r0, #0x1
+ str r0, [r4, #0x1c]
+_0201EB42:
+ ldr r0, [sp, #0x18]
+ str r4, [r0, #0x64]
+_0201EB46:
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_0201EB48
+FUN_0201EB48: ; 0x0201EB48
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r0, [r4, #0x64]
+ cmp r0, #0x0
+ beq _0201EB62
+ ldr r0, [r0, #0x20]
+ bl FUN_02016A18
+ ldr r0, [r4, #0x64]
+ bl FUN_02016A18
+ mov r0, #0x0
+ str r0, [r4, #0x64]
+_0201EB62:
+ pop {r4, pc}
+
+ thumb_func_start FUN_0201EB64
+FUN_0201EB64: ; 0x0201EB64
+ ldr r3, _0201EB6C ; =FUN_02016998
+ mov r1, #0x68
+ bx r3
+ nop
+_0201EB6C: .word FUN_02016998
+
+ thumb_func_start FUN_0201EB70
+FUN_0201EB70: ; 0x0201EB70
+ ldr r3, _0201EB74 ; =FUN_02016A18
+ bx r3
+ .balign 4
+_0201EB74: .word FUN_02016A18
+
+ thumb_func_start FUN_0201EB78
+FUN_0201EB78: ; 0x0201EB78
+ push {r3-r4}
+ add r4, r0, #0x0
+ add r3, r1, #0x0
+ mov r2, #0xd
+_0201EB80:
+ ldmia r4!, {r0-r1}
+ stmia r3!, {r0-r1}
+ sub r2, r2, #0x1
+ bne _0201EB80
+ pop {r3-r4}
+ bx lr
+
+ thumb_func_start FUN_0201EB8C
+FUN_0201EB8C: ; 0x0201EB8C
+ ldr r1, _0201EB94 ; =0x021C59A4
+ str r0, [r1, #0x0]
+ bx lr
+ nop
+_0201EB94: .word 0x021C59A4
+
+ thumb_func_start FUN_0201EB98
+FUN_0201EB98: ; 0x0201EB98
+ ldr r0, _0201EBA0 ; =0x021C59A4
+ mov r1, #0x0
+ str r1, [r0, #0x0]
+ bx lr
+ .balign 4
+_0201EBA0: .word 0x021C59A4
+
+ thumb_func_start FUN_0201EBA4
+FUN_0201EBA4: ; 0x0201EBA4
+ push {r3-r6, lr}
+ sub sp, #0x1c
+ ldr r0, _0201EC40 ; =0x021C59A4
+ ldr r1, [r0, #0x0]
+ cmp r1, #0x0
+ beq _0201EC3A
+ ldr r0, [r1, #0x54]
+ cmp r0, #0x0
+ beq _0201EBEE
+ add r1, #0x48
+ add r2, sp, #0x10
+ blx VEC_Subtract
+ ldr r0, _0201EC40 ; =0x021C59A4
+ add r1, sp, #0x10
+ ldr r0, [r0, #0x0]
+ bl FUN_0201E9E8
+ ldr r0, _0201EC40 ; =0x021C59A4
+ add r1, sp, #0x10
+ ldr r0, [r0, #0x0]
+ add r2, sp, #0x4
+ bl FUN_0201EA08
+ ldr r1, _0201EC40 ; =0x021C59A4
+ add r0, sp, #0x4
+ ldr r1, [r1, #0x0]
+ bl FUN_0201EF70
+ ldr r0, _0201EC40 ; =0x021C59A4
+ ldr r3, [r0, #0x0]
+ ldr r2, [r3, #0x54]
+ add r3, #0x48
+ ldmia r2!, {r0-r1}
+ stmia r3!, {r0-r1}
+ ldr r0, [r2, #0x0]
+ str r0, [r3, #0x0]
+_0201EBEE:
+ ldr r0, _0201EC40 ; =0x021C59A4
+ ldr r5, _0201EC44 ; =0x021CEF58
+ ldr r4, [r0, #0x0]
+ add r3, r4, #0x0
+ add r2, r4, #0x0
+ add r4, #0x14
+ add r6, r4, #0x0
+ ldmia r6!, {r0-r1}
+ stmia r5!, {r0-r1}
+ ldr r0, [r6, #0x0]
+ add r2, #0x2c
+ str r0, [r5, #0x0]
+ add r6, r2, #0x0
+ ldr r5, _0201EC48 ; =0x021CEF64
+ ldmia r6!, {r0-r1}
+ stmia r5!, {r0-r1}
+ ldr r0, [r6, #0x0]
+ add r3, #0x20
+ str r0, [r5, #0x0]
+ add r6, r3, #0x0
+ ldr r5, _0201EC4C ; =0x021CEF70
+ ldmia r6!, {r0-r1}
+ stmia r5!, {r0-r1}
+ ldr r0, [r6, #0x0]
+ add r1, r2, #0x0
+ str r0, [r5, #0x0]
+ ldr r0, _0201EC50 ; =0x021CED64
+ add r2, r3, #0x0
+ str r0, [sp, #0x0]
+ add r0, r4, #0x0
+ mov r3, #0x0
+ blx G3i_LookAt_
+ ldr r1, _0201EC54 ; =0x021CED98
+ mov r0, #0xe8
+ ldr r2, [r1, #0x7c]
+ bic r2, r0
+ str r2, [r1, #0x7c]
+_0201EC3A:
+ add sp, #0x1c
+ pop {r3-r6, pc}
+ nop
+_0201EC40: .word 0x021C59A4
+_0201EC44: .word 0x021CEF58
+_0201EC48: .word 0x021CEF64
+_0201EC4C: .word 0x021CEF70
+_0201EC50: .word 0x021CED64
+_0201EC54: .word 0x021CED98
+
+ thumb_func_start FUN_0201EC58
+FUN_0201EC58: ; 0x0201EC58
+ add r3, r0, #0x0
+ add r2, r1, #0x0
+ ldmia r3!, {r0-r1}
+ add r2, #0x2c
+ stmia r2!, {r0-r1}
+ ldr r0, [r3, #0x0]
+ str r0, [r2, #0x0]
+ bx lr
+
+ thumb_func_start FUN_0201EC68
+FUN_0201EC68: ; 0x0201EC68
+ push {r3-r4}
+ add r3, r1, #0x0
+ add r4, r0, #0x0
+ str r4, [r3, #0x54]
+ add r2, r3, #0x0
+ ldmia r4!, {r0-r1}
+ add r2, #0x48
+ stmia r2!, {r0-r1}
+ ldr r0, [r4, #0x0]
+ str r0, [r2, #0x0]
+ mov r0, #0x1
+ str r0, [r3, #0x58]
+ str r0, [r3, #0x5c]
+ str r0, [r3, #0x60]
+ pop {r3-r4}
+ bx lr
+
+ thumb_func_start FUN_0201EC88
+FUN_0201EC88: ; 0x0201EC88
+ mov r1, #0x0
+ str r1, [r0, #0x54]
+ str r1, [r0, #0x58]
+ str r1, [r0, #0x5c]
+ str r1, [r0, #0x60]
+ bx lr
+
+ thumb_func_start FUN_0201EC94
+FUN_0201EC94: ; 0x0201EC94
+ str r0, [r2, #0xc]
+ add r0, r2, #0x0
+ str r1, [r2, #0x10]
+ add r0, #0x44
+ ldr r3, _0201ECA4 ; =FUN_0201EE2C
+ ldrb r0, [r0, #0x0]
+ add r1, r2, #0x0
+ bx r3
+ .balign 4
+_0201ECA4: .word FUN_0201EE2C
+
+ thumb_func_start FUN_0201ECA8
+FUN_0201ECA8: ; 0x0201ECA8
+ push {r3-r7, lr}
+ ldr r4, [sp, #0x20]
+ add r5, r0, #0x0
+ add r7, r1, #0x0
+ add r0, r3, #0x0
+ add r1, r4, #0x0
+ add r6, r2, #0x0
+ bl FUN_0201E99C
+ add r3, r5, #0x0
+ add r2, r4, #0x0
+ ldmia r3!, {r0-r1}
+ add r2, #0x20
+ stmia r2!, {r0-r1}
+ ldr r0, [r3, #0x0]
+ str r0, [r2, #0x0]
+ str r7, [r4, #0x38]
+ ldrh r0, [r6, #0x0]
+ strh r0, [r4, #0x3c]
+ ldrh r0, [r6, #0x2]
+ strh r0, [r4, #0x3e]
+ add r0, r4, #0x0
+ ldrh r1, [r6, #0x4]
+ add r0, #0x40
+ strh r1, [r0, #0x0]
+ add r0, r4, #0x0
+ ldrh r1, [r6, #0x6]
+ add r0, #0x42
+ strh r1, [r0, #0x0]
+ add r0, r4, #0x0
+ bl FUN_0201E7D8
+ add r0, sp, #0x8
+ ldrb r0, [r0, #0x10]
+ add r1, r4, #0x0
+ bl FUN_0201EE2C
+ ldr r0, [sp, #0x1c]
+ cmp r0, #0x0
+ beq _0201ED0E
+ str r5, [r4, #0x54]
+ add r2, r4, #0x0
+ ldmia r5!, {r0-r1}
+ add r2, #0x48
+ stmia r2!, {r0-r1}
+ ldr r0, [r5, #0x0]
+ str r0, [r2, #0x0]
+ mov r0, #0x1
+ str r0, [r4, #0x58]
+ str r0, [r4, #0x5c]
+ str r0, [r4, #0x60]
+_0201ED0E:
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_0201ED10
+FUN_0201ED10: ; 0x0201ED10
+ push {r3-r7, lr}
+ ldr r4, [sp, #0x1c]
+ add r6, r0, #0x0
+ add r7, r1, #0x0
+ add r0, r3, #0x0
+ add r1, r4, #0x0
+ add r5, r2, #0x0
+ bl FUN_0201E99C
+ add r2, r4, #0x0
+ ldmia r6!, {r0-r1}
+ add r2, #0x14
+ stmia r2!, {r0-r1}
+ ldr r0, [r6, #0x0]
+ str r0, [r2, #0x0]
+ str r7, [r4, #0x38]
+ ldrh r0, [r5, #0x0]
+ strh r0, [r4, #0x3c]
+ ldrh r0, [r5, #0x2]
+ strh r0, [r4, #0x3e]
+ add r0, r4, #0x0
+ ldrh r1, [r5, #0x4]
+ add r0, #0x40
+ strh r1, [r0, #0x0]
+ add r0, r4, #0x0
+ ldrh r1, [r5, #0x6]
+ add r0, #0x42
+ strh r1, [r0, #0x0]
+ add r0, r4, #0x0
+ bl FUN_0201E8B8
+ add r0, sp, #0x8
+ ldrb r0, [r0, #0x10]
+ add r1, r4, #0x0
+ bl FUN_0201EE2C
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_0201ED5C
+FUN_0201ED5C: ; 0x0201ED5C
+ push {r4-r7, lr}
+ sub sp, #0x3c
+ ldr r4, [sp, #0x54]
+ add r5, r0, #0x0
+ add r6, r1, #0x0
+ add r0, r2, #0x0
+ add r1, r4, #0x0
+ add r7, r3, #0x0
+ bl FUN_0201E99C
+ add r3, r5, #0x0
+ add r2, r4, #0x0
+ ldmia r3!, {r0-r1}
+ add r2, #0x20
+ stmia r2!, {r0-r1}
+ ldr r0, [r3, #0x0]
+ add r3, r6, #0x0
+ str r0, [r2, #0x0]
+ add r2, r4, #0x0
+ ldmia r3!, {r0-r1}
+ add r2, #0x14
+ stmia r2!, {r0-r1}
+ ldr r0, [r3, #0x0]
+ add r1, r5, #0x0
+ str r0, [r2, #0x0]
+ add r0, r6, #0x0
+ add r2, sp, #0x30
+ blx VEC_Subtract
+ add r0, sp, #0x30
+ blx VEC_Mag
+ str r0, [r4, #0x38]
+ mov r6, #0x0
+ add r0, sp, #0x24
+ str r6, [r0, #0x0]
+ str r6, [r0, #0x4]
+ str r6, [r0, #0x8]
+ add r0, sp, #0x18
+ str r6, [r0, #0x0]
+ str r6, [r0, #0x4]
+ str r6, [r0, #0x8]
+ add r0, sp, #0xc
+ str r6, [r0, #0x0]
+ str r6, [r0, #0x4]
+ str r6, [r0, #0x8]
+ mov r0, #0x1
+ lsl r0, r0, #0xc
+ add r3, sp, #0x30
+ str r0, [sp, #0x8]
+ ldmia r3!, {r0-r1}
+ add r2, sp, #0xc
+ stmia r2!, {r0-r1}
+ ldr r0, [r3, #0x0]
+ str r6, [sp, #0x0]
+ str r0, [r2, #0x0]
+ str r6, [sp, #0x4]
+ str r6, [sp, #0x10]
+ add r0, sp, #0x0
+ add r1, sp, #0xc
+ bl FUN_0201C7B0
+ strh r0, [r4, #0x3e]
+ add r1, r6, #0x0
+ mov r0, #0x1
+ lsl r0, r0, #0xc
+ str r0, [sp, #0x0]
+ ldr r0, [sp, #0x38]
+ str r1, [sp, #0x4]
+ str r0, [sp, #0xc]
+ ldr r0, [sp, #0x34]
+ str r1, [sp, #0x8]
+ str r0, [sp, #0x14]
+ str r1, [sp, #0x10]
+ add r0, sp, #0x0
+ add r1, sp, #0xc
+ bl FUN_0201C7B0
+ strh r0, [r4, #0x3c]
+ add r0, r4, #0x0
+ add r1, r6, #0x0
+ add r0, #0x40
+ strh r1, [r0, #0x0]
+ add r0, r7, #0x0
+ add r1, r4, #0x0
+ bl FUN_0201EE2C
+ ldr r0, [sp, #0x50]
+ cmp r0, #0x0
+ beq _0201EE26
+ str r5, [r4, #0x54]
+ add r2, r4, #0x0
+ ldmia r5!, {r0-r1}
+ add r2, #0x48
+ stmia r2!, {r0-r1}
+ ldr r0, [r5, #0x0]
+ str r0, [r2, #0x0]
+ mov r0, #0x1
+ str r0, [r4, #0x58]
+ str r0, [r4, #0x5c]
+ str r0, [r4, #0x60]
+_0201EE26:
+ add sp, #0x3c
+ pop {r4-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_0201EE2C
+FUN_0201EE2C: ; 0x0201EE2C
+ push {r3-r6, lr}
+ sub sp, #0x14
+ add r5, r1, #0x0
+ cmp r0, #0x0
+ bne _0201EE6C
+ ldr r0, [r5, #0x10]
+ str r0, [sp, #0x0]
+ mov r0, #0x1
+ lsl r0, r0, #0xc
+ str r0, [sp, #0x4]
+ mov r0, #0x0
+ str r0, [sp, #0x8]
+ ldr r0, _0201EEE4 ; =0x021CED20
+ str r0, [sp, #0xc]
+ ldr r0, [r5, #0x0]
+ ldr r1, [r5, #0x4]
+ ldr r2, [r5, #0x8]
+ ldr r3, [r5, #0xc]
+ blx G3i_PerspectiveW_
+ ldr r1, _0201EEE8 ; =0x021CED98
+ mov r0, #0x50
+ ldr r2, [r1, #0x7c]
+ add r5, #0x44
+ bic r2, r0
+ str r2, [r1, #0x7c]
+ mov r1, #0x0
+ ldr r0, _0201EEEC ; =0x02105BB8
+ strb r1, [r5, #0x0]
+ str r1, [r0, #0x0]
+ add sp, #0x14
+ pop {r3-r6, pc}
+_0201EE6C:
+ ldr r4, [r5, #0x38]
+ ldr r0, [r5, #0x0]
+ ldr r1, [r5, #0x4]
+ blx FX_Div
+ asr r1, r0, #0x1f
+ asr r3, r4, #0x1f
+ add r2, r4, #0x0
+ blx _ll_mul
+ mov r2, #0x2
+ mov r3, #0x0
+ lsl r2, r2, #0xa
+ add r2, r0, r2
+ adc r1, r3
+ lsr r4, r2, #0xc
+ lsl r0, r1, #0x14
+ orr r4, r0
+ ldr r2, [r5, #0x8]
+ asr r1, r4, #0x1f
+ add r0, r4, #0x0
+ asr r3, r2, #0x1f
+ blx _ll_mul
+ mov r6, #0x2
+ mov r2, #0x0
+ lsl r6, r6, #0xa
+ add r3, r0, r6
+ adc r1, r2
+ lsl r0, r1, #0x14
+ lsr r3, r3, #0xc
+ orr r3, r0
+ ldr r0, [r5, #0xc]
+ neg r1, r4
+ str r0, [sp, #0x0]
+ ldr r0, [r5, #0x10]
+ str r0, [sp, #0x4]
+ lsl r0, r6, #0x1
+ str r0, [sp, #0x8]
+ str r2, [sp, #0xc]
+ ldr r0, _0201EEE4 ; =0x021CED20
+ neg r2, r3
+ str r0, [sp, #0x10]
+ add r0, r4, #0x0
+ blx G3i_OrthoW_
+ ldr r1, _0201EEE8 ; =0x021CED98
+ mov r0, #0x50
+ ldr r2, [r1, #0x7c]
+ add r5, #0x44
+ bic r2, r0
+ str r2, [r1, #0x7c]
+ mov r0, #0x1
+ strb r0, [r5, #0x0]
+ ldr r0, _0201EEEC ; =0x02105BB8
+ mov r1, #0x0
+ str r1, [r0, #0x0]
+ add sp, #0x14
+ pop {r3-r6, pc}
+ nop
+_0201EEE4: .word 0x021CED20
+_0201EEE8: .word 0x021CED98
+_0201EEEC: .word 0x02105BB8
+
+ thumb_func_start FUN_0201EEF0
+FUN_0201EEF0: ; 0x0201EEF0
+ add r2, r1, #0x0
+ add r2, #0x46
+ strh r0, [r2, #0x0]
+ add r0, r1, #0x0
+ add r0, #0x46
+ ldrh r0, [r0, #0x0]
+ ldr r3, _0201EF24 ; =FUN_0201EE2C
+ asr r0, r0, #0x4
+ lsl r2, r0, #0x2
+ ldr r0, _0201EF28 ; =0x020FFA38
+ ldrsh r2, [r0, r2]
+ str r2, [r1, #0x0]
+ add r2, r1, #0x0
+ add r2, #0x46
+ ldrh r2, [r2, #0x0]
+ asr r2, r2, #0x4
+ lsl r2, r2, #0x1
+ add r2, r2, #0x1
+ lsl r2, r2, #0x1
+ ldrsh r0, [r0, r2]
+ str r0, [r1, #0x4]
+ add r0, r1, #0x0
+ add r0, #0x44
+ ldrb r0, [r0, #0x0]
+ bx r3
+ nop
+_0201EF24: .word FUN_0201EE2C
+_0201EF28: .word 0x020FFA38
+
+ thumb_func_start FUN_0201EF2C
+FUN_0201EF2C: ; 0x0201EF2C
+ add r2, r1, #0x0
+ add r2, #0x46
+ ldrh r2, [r2, #0x0]
+ ldr r3, _0201EF68 ; =FUN_0201EE2C
+ add r2, r2, r0
+ add r0, r1, #0x0
+ add r0, #0x46
+ strh r2, [r0, #0x0]
+ add r0, r1, #0x0
+ add r0, #0x46
+ ldrh r0, [r0, #0x0]
+ asr r0, r0, #0x4
+ lsl r2, r0, #0x2
+ ldr r0, _0201EF6C ; =0x020FFA38
+ ldrsh r2, [r0, r2]
+ str r2, [r1, #0x0]
+ add r2, r1, #0x0
+ add r2, #0x46
+ ldrh r2, [r2, #0x0]
+ asr r2, r2, #0x4
+ lsl r2, r2, #0x1
+ add r2, r2, #0x1
+ lsl r2, r2, #0x1
+ ldrsh r0, [r0, r2]
+ str r0, [r1, #0x4]
+ add r0, r1, #0x0
+ add r0, #0x44
+ ldrb r0, [r0, #0x0]
+ bx r3
+ nop
+_0201EF68: .word FUN_0201EE2C
+_0201EF6C: .word 0x020FFA38
+
+ thumb_func_start FUN_0201EF70
+FUN_0201EF70: ; 0x0201EF70
+ push {r3-r5, lr}
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ add r0, r4, #0x0
+ add r0, #0x14
+ add r1, r5, #0x0
+ add r2, r0, #0x0
+ blx VEC_Add
+ add r4, #0x20
+ add r0, r4, #0x0
+ add r1, r5, #0x0
+ add r2, r4, #0x0
+ blx VEC_Add
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_0201EF90
+FUN_0201EF90: ; 0x0201EF90
+ ldrh r2, [r0, #0x0]
+ strh r2, [r1, #0x3c]
+ ldrh r2, [r0, #0x2]
+ strh r2, [r1, #0x3e]
+ add r2, r1, #0x0
+ ldrh r3, [r0, #0x4]
+ add r2, #0x40
+ strh r3, [r2, #0x0]
+ ldrh r2, [r0, #0x6]
+ add r0, r1, #0x0
+ add r0, #0x42
+ strh r2, [r0, #0x0]
+ ldr r3, _0201EFB0 ; =FUN_0201E7D8
+ add r0, r1, #0x0
+ bx r3
+ nop
+_0201EFB0: .word FUN_0201E7D8
+
+ thumb_func_start FUN_0201EFB4
+FUN_0201EFB4: ; 0x0201EFB4
+ ldrh r3, [r1, #0x3c]
+ ldrh r2, [r0, #0x0]
+ add r2, r3, r2
+ strh r2, [r1, #0x3c]
+ ldrh r3, [r1, #0x3e]
+ ldrh r2, [r0, #0x2]
+ add r2, r3, r2
+ strh r2, [r1, #0x3e]
+ add r2, r1, #0x0
+ add r2, #0x40
+ ldrh r2, [r2, #0x0]
+ ldrh r0, [r0, #0x4]
+ ldr r3, _0201EFDC ; =FUN_0201E8B8
+ add r2, r2, r0
+ add r0, r1, #0x0
+ add r0, #0x40
+ strh r2, [r0, #0x0]
+ add r0, r1, #0x0
+ bx r3
+ nop
+_0201EFDC: .word FUN_0201E8B8
+
+ thumb_func_start FUN_0201EFE0
+FUN_0201EFE0: ; 0x0201EFE0
+ ldr r3, _0201EFE8 ; =FUN_0201E7D8
+ str r0, [r1, #0x38]
+ add r0, r1, #0x0
+ bx r3
+ .balign 4
+_0201EFE8: .word FUN_0201E7D8
+
+ thumb_func_start FUN_0201EFEC
+FUN_0201EFEC: ; 0x0201EFEC
+ push {r4, lr}
+ add r3, r1, #0x0
+ add r4, r0, #0x0
+ add r2, r3, #0x0
+ ldmia r4!, {r0-r1}
+ add r2, #0x20
+ stmia r2!, {r0-r1}
+ ldr r0, [r4, #0x0]
+ str r0, [r2, #0x0]
+ add r0, r3, #0x0
+ bl FUN_0201E7D8
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0201F008
+FUN_0201F008: ; 0x0201F008
+ add r0, #0x46
+ ldrh r0, [r0, #0x0]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_0201F010
+FUN_0201F010: ; 0x0201F010
+ ldr r0, [r0, #0x38]
+ bx lr
+
+ thumb_func_start FUN_0201F014
+FUN_0201F014: ; 0x0201F014
+ ldrh r2, [r1, #0x3c]
+ strh r2, [r0, #0x0]
+ ldrh r2, [r1, #0x3e]
+ strh r2, [r0, #0x2]
+ add r2, r1, #0x0
+ add r2, #0x40
+ ldrh r2, [r2, #0x0]
+ add r1, #0x42
+ strh r2, [r0, #0x4]
+ ldrh r1, [r1, #0x0]
+ strh r1, [r0, #0x6]
+ bx lr
+
+ thumb_func_start FUN_0201F02C
+FUN_0201F02C: ; 0x0201F02C
+ add r2, r1, #0x0
+ add r2, #0x20
+ add r3, r0, #0x0
+ ldmia r2!, {r0-r1}
+ stmia r3!, {r0-r1}
+ ldr r0, [r2, #0x0]
+ str r0, [r3, #0x0]
+ bx lr
+
+ thumb_func_start FUN_0201F03C
+FUN_0201F03C: ; 0x0201F03C
+ add r2, r1, #0x0
+ add r2, #0x14
+ add r3, r0, #0x0
+ ldmia r2!, {r0-r1}
+ stmia r3!, {r0-r1}
+ ldr r0, [r2, #0x0]
+ str r0, [r3, #0x0]
+ bx lr
+
+ thumb_func_start FUN_0201F04C
+FUN_0201F04C: ; 0x0201F04C
+ add r3, r0, #0x0
+ add r2, r1, #0x0
+ ldmia r3!, {r0-r1}
+ add r2, #0x20
+ stmia r2!, {r0-r1}
+ ldr r0, [r3, #0x0]
+ str r0, [r2, #0x0]
+ bx lr
+
+ thumb_func_start FUN_0201F05C
+FUN_0201F05C: ; 0x0201F05C
+ add r3, r0, #0x0
+ add r2, r1, #0x0
+ ldmia r3!, {r0-r1}
+ add r2, #0x14
+ stmia r2!, {r0-r1}
+ ldr r0, [r3, #0x0]
+ str r0, [r2, #0x0]
+ bx lr
+
+ thumb_func_start FUN_0201F06C
+FUN_0201F06C: ; 0x0201F06C
+ mov r2, #0x0
+ strb r2, [r0, #0x0]
+ strb r2, [r0, #0x1]
+ str r2, [r0, #0x4]
+ add r1, r0, #0x0
+ str r2, [r0, #0x8]
+ add r1, #0xc4
+ str r2, [r1, #0x0]
+ add r1, r0, #0x0
+ add r1, #0xc8
+ str r2, [r1, #0x0]
+ add r1, r0, #0x0
+ add r1, #0xcc
+ str r2, [r1, #0x0]
+ add r1, r0, #0x0
+ add r1, #0xd0
+ str r2, [r1, #0x0]
+ strb r2, [r0, #0x3]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_0201F094
+FUN_0201F094: ; 0x0201F094
+ mov r3, #0x0
+ str r3, [r0, #0x1c]
+ str r3, [r0, #0x20]
+ str r3, [r0, #0x78]
+ add r1, r0, #0x0
+ str r3, [r0, #0x7c]
+ add r1, #0x80
+ str r3, [r1, #0x0]
+ add r1, r0, #0x0
+ add r1, #0x84
+ add r2, r0, #0x0
+ str r3, [r1, #0x0]
+ add r2, #0x94
+ mov r1, #0x10
+_0201F0B0:
+ strb r3, [r2, #0x0]
+ add r2, r2, #0x1
+ sub r1, r1, #0x1
+ bne _0201F0B0
+ add r2, r0, #0x0
+ mov r1, #0x0
+ add r2, #0x88
+ str r1, [r2, #0x0]
+ add r2, r0, #0x0
+ add r2, #0x8c
+ str r1, [r2, #0x0]
+ add r2, r0, #0x0
+ add r2, #0x90
+ str r1, [r2, #0x0]
+ add r2, r0, #0x0
+ add r2, #0xa4
+ str r1, [r2, #0x0]
+ str r1, [r0, #0x0]
+ str r1, [r0, #0x4]
+ mov r2, #0x1
+ str r1, [r0, #0x8]
+ lsl r2, r2, #0xc
+ str r2, [r0, #0xc]
+ str r2, [r0, #0x10]
+ str r2, [r0, #0x14]
+ add r2, r0, #0x0
+ add r2, #0xaa
+ strh r1, [r2, #0x0]
+ add r2, r0, #0x0
+ add r2, #0xa8
+ strb r1, [r2, #0x0]
+ add r2, r0, #0x0
+ add r2, #0xb0
+ str r1, [r2, #0x0]
+ add r2, r0, #0x0
+ add r2, #0xb4
+ str r1, [r2, #0x0]
+ strb r1, [r0, #0x18]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_0201F100
+FUN_0201F100: ; 0x0201F100
+ push {r3-r7, lr}
+ add r6, r0, #0x0
+ ldr r0, _0201F13C ; =0x021C59A8
+ add r4, r1, #0x0
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ beq _0201F112
+ bl ErrorHandling
+_0201F112:
+ mov r1, #0xd4
+ add r0, r4, #0x0
+ mul r1, r6
+ bl FUN_02016998
+ ldr r7, _0201F13C ; =0x021C59A8
+ mov r4, #0x0
+ str r0, [r7, #0x0]
+ str r6, [r7, #0x4]
+ cmp r6, #0x0
+ ble _0201F13A
+ add r5, r4, #0x0
+_0201F12A:
+ ldr r0, [r7, #0x0]
+ add r0, r0, r5
+ bl FUN_0201F06C
+ add r4, r4, #0x1
+ add r5, #0xd4
+ cmp r4, r6
+ blt _0201F12A
+_0201F13A:
+ pop {r3-r7, pc}
+ .balign 4
+_0201F13C: .word 0x021C59A8
+
+ thumb_func_start FUN_0201F140
+FUN_0201F140: ; 0x0201F140
+ push {r4-r6, lr}
+ ldr r6, _0201F174 ; =0x021C59A8
+ mov r4, #0x0
+ ldr r0, [r6, #0x4]
+ cmp r0, #0x0
+ ble _0201F160
+ add r5, r4, #0x0
+_0201F14E:
+ ldr r0, [r6, #0x0]
+ add r0, r0, r5
+ bl FUN_0201F23C
+ ldr r0, [r6, #0x4]
+ add r4, r4, #0x1
+ add r5, #0xd4
+ cmp r4, r0
+ blt _0201F14E
+_0201F160:
+ ldr r0, _0201F174 ; =0x021C59A8
+ ldr r0, [r0, #0x0]
+ bl FUN_02016A18
+ ldr r0, _0201F174 ; =0x021C59A8
+ mov r1, #0x0
+ str r1, [r0, #0x0]
+ str r1, [r0, #0x4]
+ pop {r4-r6, pc}
+ nop
+_0201F174: .word 0x021C59A8
+
+ thumb_func_start FUN_0201F178
+FUN_0201F178: ; 0x0201F178
+ push {r3-r7, lr}
+ ldr r6, _0201F1B0 ; =0x021C59A8
+ mov r4, #0x0
+ ldr r0, [r6, #0x4]
+ cmp r0, #0x0
+ ble _0201F1AC
+ add r5, r4, #0x0
+ mov r7, #0x2
+_0201F188:
+ ldr r0, [r6, #0x0]
+ add r0, r0, r5
+ ldrb r1, [r0, #0x1]
+ cmp r1, #0x1
+ bne _0201F196
+ bl FUN_0201F318
+_0201F196:
+ ldr r0, [r6, #0x0]
+ add r1, r0, r5
+ ldrb r0, [r1, #0x3]
+ cmp r0, #0x1
+ bne _0201F1A2
+ strb r7, [r1, #0x3]
+_0201F1A2:
+ ldr r0, [r6, #0x4]
+ add r4, r4, #0x1
+ add r5, #0xd4
+ cmp r4, r0
+ blt _0201F188
+_0201F1AC:
+ pop {r3-r7, pc}
+ nop
+_0201F1B0: .word 0x021C59A8
+
+ thumb_func_start FUN_0201F1B4
+FUN_0201F1B4: ; 0x0201F1B4
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ bl FUN_0201F2E4
+ add r4, r0, #0x0
+ bne _0201F1C8
+ bl ErrorHandling
+ mov r0, #0x0
+ pop {r3-r5, pc}
+_0201F1C8:
+ mov r0, #0x1
+ strb r0, [r4, #0x0]
+ strb r0, [r4, #0x1]
+ ldr r2, [r5, #0x0]
+ mov r1, #0xb8
+ ldr r0, [r5, #0x4]
+ mul r1, r2
+ bl FUN_02016998
+ str r0, [r4, #0x4]
+ ldr r0, [r5, #0x0]
+ str r0, [r4, #0x8]
+ add r0, r4, #0x0
+ add r0, #0xc
+ bl FUN_0201F094
+ add r1, r4, #0x0
+ add r0, r4, #0x0
+ add r1, #0xc
+ add r0, #0xbc
+ str r1, [r0, #0x0]
+ add r0, r4, #0x0
+ add r0, #0xc0
+ str r1, [r0, #0x0]
+ ldr r1, [r5, #0x0]
+ ldr r0, [r5, #0x4]
+ lsl r1, r1, #0x2
+ bl FUN_02016998
+ add r1, r4, #0x0
+ add r1, #0xc4
+ str r0, [r1, #0x0]
+ add r0, r4, #0x0
+ bl FUN_0201FABC
+ ldr r0, [r5, #0x4]
+ mov r1, #0x10
+ bl FUN_02016998
+ add r1, r4, #0x0
+ add r1, #0xcc
+ str r0, [r1, #0x0]
+ add r0, r4, #0x0
+ add r0, #0xcc
+ ldr r0, [r0, #0x0]
+ ldr r1, [r5, #0x4]
+ mov r2, #0x4
+ bl FUN_02016B20
+ ldr r0, [r5, #0x0]
+ ldr r1, [r5, #0x4]
+ bl FUN_0201C360
+ add r1, r4, #0x0
+ add r1, #0xd0
+ str r0, [r1, #0x0]
+ add r0, r4, #0x0
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_0201F23C
+FUN_0201F23C: ; 0x0201F23C
+ push {r4, lr}
+ add r4, r0, #0x0
+ bne _0201F24A
+ bl ErrorHandling
+ mov r0, #0x0
+ pop {r4, pc}
+_0201F24A:
+ ldrb r1, [r4, #0x0]
+ cmp r1, #0x0
+ beq _0201F27E
+ bl FUN_0201F284
+ ldr r0, [r4, #0x4]
+ bl FUN_02016A18
+ add r0, r4, #0x0
+ add r0, #0xc4
+ ldr r0, [r0, #0x0]
+ bl FUN_02016A18
+ add r0, r4, #0x0
+ add r0, #0xcc
+ ldr r0, [r0, #0x0]
+ bl FUN_02016A18
+ add r0, r4, #0x0
+ add r0, #0xd0
+ ldr r0, [r0, #0x0]
+ bl FUN_0201C39C
+ add r0, r4, #0x0
+ bl FUN_0201F06C
+_0201F27E:
+ mov r0, #0x1
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0201F284
+FUN_0201F284: ; 0x0201F284
+ push {r3-r5, lr}
+ cmp r0, #0x0
+ bne _0201F294
+ bne _0201F290
+ bl ErrorHandling
+_0201F290:
+ mov r0, #0x0
+ pop {r3-r5, pc}
+_0201F294:
+ ldrb r1, [r0, #0x0]
+ cmp r1, #0x0
+ beq _0201F2BA
+ add r1, r0, #0x0
+ add r1, #0xbc
+ add r4, r0, #0x0
+ ldr r1, [r1, #0x0]
+ add r4, #0xc
+ cmp r1, r4
+ beq _0201F2BA
+_0201F2A8:
+ add r0, r1, #0x0
+ add r0, #0xb0
+ ldr r5, [r0, #0x0]
+ add r0, r1, #0x0
+ bl FUN_0201F744
+ add r1, r5, #0x0
+ cmp r5, r4
+ bne _0201F2A8
+_0201F2BA:
+ mov r0, #0x1
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_0201F2C0
+FUN_0201F2C0: ; 0x0201F2C0
+ push {r4, lr}
+ add r4, r0, #0x0
+ bne _0201F2CA
+ bl ErrorHandling
+_0201F2CA:
+ ldrb r0, [r4, #0x3]
+ cmp r0, #0x0
+ bne _0201F2D4
+ mov r0, #0x0
+ pop {r4, pc}
+_0201F2D4:
+ mov r0, #0x1
+ pop {r4, pc}
+
+ thumb_func_start FUN_0201F2D8
+FUN_0201F2D8: ; 0x0201F2D8
+ ldrb r1, [r0, #0x3]
+ cmp r1, #0x2
+ bne _0201F2E2
+ mov r1, #0x0
+ strb r1, [r0, #0x3]
+_0201F2E2:
+ bx lr
+
+ thumb_func_start FUN_0201F2E4
+FUN_0201F2E4: ; 0x0201F2E4
+ push {r3-r4}
+ ldr r0, _0201F314 ; =0x021C59A8
+ mov r1, #0x0
+ ldr r3, [r0, #0x4]
+ cmp r3, #0x0
+ ble _0201F30C
+ ldr r4, [r0, #0x0]
+ add r2, r4, #0x0
+_0201F2F4:
+ ldrb r0, [r2, #0x0]
+ cmp r0, #0x0
+ bne _0201F304
+ mov r0, #0xd4
+ mul r0, r1
+ add r0, r4, r0
+ pop {r3-r4}
+ bx lr
+_0201F304:
+ add r1, r1, #0x1
+ add r2, #0xd4
+ cmp r1, r3
+ blt _0201F2F4
+_0201F30C:
+ mov r0, #0x0
+ pop {r3-r4}
+ bx lr
+ nop
+_0201F314: .word 0x021C59A8
+
+ thumb_func_start FUN_0201F318
+FUN_0201F318: ; 0x0201F318
+ push {r3-r6, lr}
+ sub sp, #0x24
+ add r5, r0, #0x0
+ bne _0201F324
+ bl ErrorHandling
+_0201F324:
+ add r0, sp, #0x0
+ blx MTX_Identity33_
+ add r0, r5, #0x0
+ add r0, #0xbc
+ ldr r4, [r0, #0x0]
+ add r5, #0xc
+ cmp r4, r5
+ beq _0201F37E
+ add r6, sp, #0x0
+_0201F338:
+ ldrb r0, [r4, #0x18]
+ cmp r0, #0x1
+ bne _0201F376
+ add r0, r4, #0x0
+ bl FUN_0201FC54
+ add r0, r4, #0x0
+ add r0, #0xa8
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x3
+ bne _0201F356
+ add r0, r4, #0x0
+ bl FUN_0201F90C
+ b _0201F360
+_0201F356:
+ cmp r0, #0x2
+ bne _0201F360
+ add r0, r4, #0x0
+ bl FUN_0201F8F0
+_0201F360:
+ add r0, r4, #0x0
+ add r3, r4, #0x0
+ add r0, #0x24
+ add r1, r4, #0x0
+ add r2, r6, #0x0
+ add r3, #0xc
+ bl FUN_0201B26C
+ add r0, r4, #0x0
+ bl FUN_0201FC70
+_0201F376:
+ add r4, #0xb0
+ ldr r4, [r4, #0x0]
+ cmp r4, r5
+ bne _0201F338
+_0201F37E:
+ add sp, #0x24
+ pop {r3-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_0201F384
+FUN_0201F384: ; 0x0201F384
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ ldr r6, [r5, #0x1c]
+ add r4, r1, #0x0
+ add r0, r6, #0x0
+ add r1, r5, #0x0
+ bl FUN_0201F5B8
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_0201F5D4
+ add r0, r6, #0x0
+ add r1, r5, #0x0
+ add r2, r4, #0x0
+ bl FUN_0201F648
+ add r0, r5, #0x0
+ add r0, #0xa8
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x1
+ bne _0201F3BA
+ add r6, #0xc
+ add r0, r6, #0x0
+ add r1, r5, #0x0
+ bl FUN_0201FB58
+_0201F3BA:
+ add r0, r5, #0x0
+ mov r1, #0x2
+ add r0, #0xa8
+ strb r1, [r0, #0x0]
+ ldr r0, [r4, #0x8]
+ mov r1, #0x0
+ str r0, [r5, #0x20]
+ add r0, r5, #0x0
+ add r0, #0xaa
+ strh r1, [r0, #0x0]
+ add r5, #0xac
+ str r1, [r5, #0x0]
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_0201F3D4
+FUN_0201F3D4: ; 0x0201F3D4
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ ldr r6, [r5, #0x1c]
+ add r4, r1, #0x0
+ add r0, r6, #0x0
+ add r1, r5, #0x0
+ bl FUN_0201F5B8
+ add r0, r5, #0x0
+ add r0, #0xa8
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x2
+ bne _0201F3FE
+ add r0, r5, #0x0
+ add r1, r5, #0x0
+ add r2, r5, #0x0
+ add r0, #0x88
+ add r1, #0x8c
+ add r2, #0x90
+ bl FUN_0201F524
+_0201F3FE:
+ add r0, r5, #0x0
+ ldr r1, [r4, #0x1c]
+ add r0, #0x88
+ str r1, [r0, #0x0]
+ add r0, r5, #0x0
+ ldr r1, [r4, #0x20]
+ add r0, #0x8c
+ str r1, [r0, #0x0]
+ add r0, r5, #0x0
+ ldr r1, [r4, #0x24]
+ add r0, #0x90
+ str r1, [r0, #0x0]
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_0201F69C
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_0201F6C8
+ add r0, r5, #0x0
+ add r0, #0xa8
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x1
+ bne _0201F43A
+ add r6, #0xc
+ add r0, r6, #0x0
+ add r1, r5, #0x0
+ bl FUN_0201FB58
+_0201F43A:
+ add r0, r5, #0x0
+ mov r1, #0x3
+ add r0, #0xa8
+ strb r1, [r0, #0x0]
+ ldr r0, [r4, #0x8]
+ mov r1, #0x0
+ str r0, [r5, #0x20]
+ add r0, r5, #0x0
+ add r0, #0xaa
+ strh r1, [r0, #0x0]
+ add r5, #0xac
+ str r1, [r5, #0x0]
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_0201F454
+FUN_0201F454: ; 0x0201F454
+ push {r4-r7, lr}
+ sub sp, #0xc
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ add r6, r2, #0x0
+ add r7, r3, #0x0
+ blx FUN_020B7E1C
+ str r0, [sp, #0x8]
+ add r0, r5, #0x0
+ blx FUN_020B7E10
+ str r0, [sp, #0x4]
+ add r0, r5, #0x0
+ blx FUN_020B7CE4
+ str r0, [sp, #0x0]
+ ldr r0, [sp, #0x8]
+ cmp r0, #0x0
+ beq _0201F492
+ ldr r3, _0201F4E4 ; =0x021064B8
+ mov r1, #0x0
+ ldr r3, [r3, #0x0]
+ add r2, r1, #0x0
+ blx r3
+ str r0, [r4, #0x0]
+ cmp r0, #0x0
+ bne _0201F496
+ bl ErrorHandling
+ b _0201F496
+_0201F492:
+ mov r0, #0x0
+ str r0, [r4, #0x0]
+_0201F496:
+ ldr r0, [sp, #0x4]
+ cmp r0, #0x0
+ beq _0201F4B2
+ ldr r3, _0201F4E4 ; =0x021064B8
+ mov r1, #0x1
+ ldr r3, [r3, #0x0]
+ mov r2, #0x0
+ blx r3
+ str r0, [r6, #0x0]
+ cmp r0, #0x0
+ bne _0201F4B6
+ bl ErrorHandling
+ b _0201F4B6
+_0201F4B2:
+ mov r0, #0x0
+ str r0, [r6, #0x0]
+_0201F4B6:
+ ldr r0, [sp, #0x0]
+ cmp r0, #0x0
+ beq _0201F4DA
+ ldr r3, _0201F4E8 ; =0x021064C0
+ mov r1, #0x2
+ ldrh r2, [r5, #0x20]
+ lsl r1, r1, #0xe
+ ldr r3, [r3, #0x0]
+ and r1, r2
+ mov r2, #0x0
+ blx r3
+ str r0, [r7, #0x0]
+ cmp r0, #0x0
+ bne _0201F4DE
+ bl ErrorHandling
+ add sp, #0xc
+ pop {r4-r7, pc}
+_0201F4DA:
+ mov r0, #0x0
+ str r0, [r7, #0x0]
+_0201F4DE:
+ add sp, #0xc
+ pop {r4-r7, pc}
+ nop
+_0201F4E4: .word 0x021064B8
+_0201F4E8: .word 0x021064C0
+
+ thumb_func_start FUN_0201F4EC
+FUN_0201F4EC: ; 0x0201F4EC
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r3, #0x0
+ blx FUN_020B7CF0
+ add r0, r5, #0x0
+ blx FUN_020B7C58
+ str r0, [r4, #0x0]
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_0201F500
+FUN_0201F500: ; 0x0201F500
+ push {r3-r5, lr}
+ add r4, r1, #0x0
+ ldr r1, [r2, #0x0]
+ ldr r2, [r3, #0x0]
+ add r5, r0, #0x0
+ blx FUN_020B7DFC
+ ldr r1, [sp, #0x10]
+ add r0, r5, #0x0
+ ldr r1, [r1, #0x0]
+ blx FUN_020B7CDC
+ add r0, r4, #0x0
+ add r1, r5, #0x0
+ blx FUN_020B7790
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_0201F524
+FUN_0201F524: ; 0x0201F524
+ push {r3-r5, lr}
+ ldr r0, [r0, #0x0]
+ add r5, r1, #0x0
+ add r4, r2, #0x0
+ cmp r0, #0x0
+ beq _0201F536
+ ldr r1, _0201F550 ; =0x021064BC
+ ldr r1, [r1, #0x0]
+ blx r1
+_0201F536:
+ ldr r0, [r5, #0x0]
+ cmp r0, #0x0
+ beq _0201F542
+ ldr r1, _0201F550 ; =0x021064BC
+ ldr r1, [r1, #0x0]
+ blx r1
+_0201F542:
+ ldr r0, [r4, #0x0]
+ cmp r0, #0x0
+ beq _0201F54E
+ ldr r1, _0201F554 ; =0x021064C4
+ ldr r1, [r1, #0x0]
+ blx r1
+_0201F54E:
+ pop {r3-r5, pc}
+ .balign 4
+_0201F550: .word 0x021064BC
+_0201F554: .word 0x021064C4
+
+ thumb_func_start FUN_0201F558
+FUN_0201F558: ; 0x0201F558
+ push {r3-r7, lr}
+ sub sp, #0x8
+ add r4, r0, #0x0
+ add r5, r1, #0x0
+ cmp r4, #0x0
+ beq _0201F568
+ cmp r5, #0x0
+ bne _0201F56E
+_0201F568:
+ add sp, #0x8
+ mov r0, #0x0
+ pop {r3-r7, pc}
+_0201F56E:
+ blx FUN_020B7E1C
+ str r0, [sp, #0x0]
+ add r0, r4, #0x0
+ blx FUN_020B7E10
+ str r0, [sp, #0x4]
+ add r0, r4, #0x0
+ blx FUN_020B7CE4
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ blx FUN_020B7E1C
+ add r6, r0, #0x0
+ add r0, r5, #0x0
+ blx FUN_020B7E10
+ add r7, r0, #0x0
+ add r0, r5, #0x0
+ blx FUN_020B7CE4
+ ldr r1, [sp, #0x0]
+ cmp r1, r6
+ bne _0201F5AA
+ ldr r1, [sp, #0x4]
+ cmp r1, r7
+ bne _0201F5AA
+ cmp r4, r0
+ beq _0201F5B0
+_0201F5AA:
+ add sp, #0x8
+ mov r0, #0x0
+ pop {r3-r7, pc}
+_0201F5B0:
+ mov r0, #0x1
+ add sp, #0x8
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_0201F5B8
+FUN_0201F5B8: ; 0x0201F5B8
+ push {r4, lr}
+ add r4, r1, #0x0
+ add r0, r4, #0x0
+ add r0, #0xa4
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ beq _0201F5D0
+ bl FUN_0201C40C
+ mov r0, #0x0
+ add r4, #0xa4
+ str r0, [r4, #0x0]
+_0201F5D0:
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0201F5D4
+FUN_0201F5D4: ; 0x0201F5D4
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r0, #0x80
+ ldr r4, [r0, #0x0]
+ add r0, r1, #0x0
+ add r1, r5, #0x0
+ add r2, r5, #0x0
+ add r1, #0x7c
+ add r2, #0x80
+ bl FUN_0201FB9C
+ str r0, [r5, #0x78]
+ add r0, r5, #0x0
+ ldr r1, [r5, #0x7c]
+ add r0, #0x24
+ blx FUN_020B80B4
+ add r0, r5, #0x0
+ add r0, #0xa8
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x3
+ beq _0201F60E
+ add r1, r5, #0x0
+ add r1, #0x80
+ ldr r1, [r1, #0x0]
+ add r0, r4, #0x0
+ bl FUN_0201F558
+ b _0201F610
+_0201F60E:
+ mov r0, #0x0
+_0201F610:
+ cmp r0, #0x0
+ bne _0201F644
+ add r0, r5, #0x0
+ add r0, #0xa8
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x2
+ bne _0201F62E
+ add r0, r5, #0x0
+ add r1, r5, #0x0
+ add r2, r5, #0x0
+ add r0, #0x88
+ add r1, #0x8c
+ add r2, #0x90
+ bl FUN_0201F524
+_0201F62E:
+ add r0, r5, #0x0
+ add r0, #0x80
+ add r1, r5, #0x0
+ add r2, r5, #0x0
+ add r5, #0x90
+ ldr r0, [r0, #0x0]
+ add r1, #0x88
+ add r2, #0x8c
+ add r3, r5, #0x0
+ bl FUN_0201F454
+_0201F644:
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_0201F648
+FUN_0201F648: ; 0x0201F648
+ push {r4-r6, lr}
+ sub sp, #0x8
+ add r4, r2, #0x0
+ add r6, r0, #0x0
+ add r5, r1, #0x0
+ add r0, r4, #0x0
+ bl FUN_0201FBCC
+ add r1, r5, #0x0
+ add r1, #0x84
+ add r3, r5, #0x0
+ add r3, #0x94
+ str r0, [r1, #0x0]
+ add r4, #0xc
+ add r2, r3, #0x0
+ ldmia r4!, {r0-r1}
+ stmia r3!, {r0-r1}
+ ldmia r4!, {r0-r1}
+ stmia r3!, {r0-r1}
+ add r0, r5, #0x0
+ add r0, #0x90
+ ldr r0, [r0, #0x0]
+ add r1, r2, #0x0
+ str r0, [sp, #0x0]
+ add r0, r5, #0x0
+ add r0, #0xac
+ ldr r0, [r0, #0x0]
+ add r2, r5, #0x0
+ add r3, r5, #0x0
+ str r0, [sp, #0x4]
+ add r6, #0xd0
+ add r2, #0x84
+ add r3, #0x88
+ ldr r0, [r6, #0x0]
+ ldr r2, [r2, #0x0]
+ ldr r3, [r3, #0x0]
+ bl FUN_0201C3B4
+ add r5, #0xa4
+ str r0, [r5, #0x0]
+ add sp, #0x8
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_0201F69C
+FUN_0201F69C: ; 0x0201F69C
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ add r1, r5, #0x0
+ add r2, r5, #0x0
+ add r0, r4, #0x0
+ add r1, #0x7c
+ add r2, #0x80
+ bl FUN_0201FB9C
+ str r0, [r5, #0x78]
+ add r0, r5, #0x0
+ ldr r1, [r5, #0x7c]
+ add r0, #0x24
+ blx FUN_020B80B4
+ add r0, r4, #0x0
+ bl FUN_0201FBCC
+ add r5, #0x84
+ str r0, [r5, #0x0]
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_0201F6C8
+FUN_0201F6C8: ; 0x0201F6C8
+ push {r3-r4}
+ add r4, r0, #0x0
+ add r2, r4, #0x0
+ add r3, r1, #0x0
+ add r3, #0xc
+ add r2, #0x94
+ ldmia r3!, {r0-r1}
+ stmia r2!, {r0-r1}
+ ldmia r3!, {r0-r1}
+ stmia r2!, {r0-r1}
+ mov r0, #0x0
+ add r4, #0xa4
+ str r0, [r4, #0x0]
+ pop {r3-r4}
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_0201F6E8
+FUN_0201F6E8: ; 0x0201F6E8
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ ldr r6, [r5, #0x0]
+ cmp r6, #0x0
+ bne _0201F6F6
+ mov r0, #0x0
+ pop {r4-r6, pc}
+_0201F6F6:
+ add r0, r6, #0x0
+ bl FUN_0201FAF4
+ add r4, r0, #0x0
+ bne _0201F704
+ mov r0, #0x0
+ pop {r4-r6, pc}
+_0201F704:
+ add r3, r5, #0x0
+ str r6, [r4, #0x1c]
+ add r3, #0x8
+ ldmia r3!, {r0-r1}
+ add r2, r4, #0x0
+ stmia r2!, {r0-r1}
+ ldr r0, [r3, #0x0]
+ add r3, r5, #0x0
+ str r0, [r2, #0x0]
+ add r3, #0x14
+ add r2, r4, #0x0
+ ldmia r3!, {r0-r1}
+ add r2, #0xc
+ stmia r2!, {r0-r1}
+ ldr r0, [r3, #0x0]
+ mov r1, #0x0
+ str r0, [r2, #0x0]
+ add r0, r4, #0x0
+ add r0, #0xaa
+ strh r1, [r0, #0x0]
+ mov r1, #0x1
+ add r0, r4, #0x0
+ strb r1, [r4, #0x18]
+ add r0, #0xa8
+ strb r1, [r0, #0x0]
+ ldr r1, [r5, #0x4]
+ add r0, r4, #0x0
+ bl FUN_0201FBD8
+ add r0, r4, #0x0
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_0201F744
+FUN_0201F744: ; 0x0201F744
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ bne _0201F74E
+ bl ErrorHandling
+_0201F74E:
+ add r0, r5, #0x0
+ add r0, #0xa8
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x1
+ bne _0201F75C
+ bl ErrorHandling
+_0201F75C:
+ add r0, r5, #0x0
+ add r0, #0xa8
+ ldrb r0, [r0, #0x0]
+ ldr r4, [r5, #0x1c]
+ cmp r0, #0x0
+ bne _0201F76C
+ mov r0, #0x0
+ pop {r3-r5, pc}
+_0201F76C:
+ add r0, r5, #0x0
+ bl FUN_0201FB7C
+ add r0, r5, #0x0
+ add r0, #0xa8
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x2
+ bne _0201F78C
+ add r0, r5, #0x0
+ add r1, r5, #0x0
+ add r2, r5, #0x0
+ add r0, #0x88
+ add r1, #0x8c
+ add r2, #0x90
+ bl FUN_0201F524
+_0201F78C:
+ add r0, r4, #0x0
+ add r1, r5, #0x0
+ bl FUN_0201F5B8
+ add r0, r4, #0x0
+ add r1, r5, #0x0
+ bl FUN_0201FB20
+ mov r0, #0x1
+ strb r0, [r4, #0x3]
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_0201F7A4
+FUN_0201F7A4: ; 0x0201F7A4
+ push {r3-r4}
+ add r4, r0, #0x0
+ str r1, [r4, #0x0]
+ str r2, [r4, #0x4]
+ str r3, [r4, #0x8]
+ ldr r3, [sp, #0x8]
+ add r2, r4, #0x0
+ add r2, #0xc
+ ldmia r3!, {r0-r1}
+ stmia r2!, {r0-r1}
+ ldmia r3!, {r0-r1}
+ stmia r2!, {r0-r1}
+ mov r0, #0x0
+ str r0, [r4, #0x1c]
+ str r0, [r4, #0x20]
+ str r0, [r4, #0x24]
+ pop {r3-r4}
+ bx lr
+
+ thumb_func_start FUN_0201F7C8
+FUN_0201F7C8: ; 0x0201F7C8
+ push {r3-r5, lr}
+ add r4, r0, #0x0
+ add r5, r1, #0x0
+ cmp r4, #0x0
+ bne _0201F7D6
+ bl ErrorHandling
+_0201F7D6:
+ ldmia r5!, {r0-r1}
+ stmia r4!, {r0-r1}
+ ldr r0, [r5, #0x0]
+ str r0, [r4, #0x0]
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_0201F7E0
+FUN_0201F7E0: ; 0x0201F7E0
+ push {r4, lr}
+ add r4, r0, #0x0
+ bne _0201F7EA
+ bl ErrorHandling
+_0201F7EA:
+ add r0, r4, #0x0
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0201F7F0
+FUN_0201F7F0: ; 0x0201F7F0
+ push {r3-r5, lr}
+ add r4, r0, #0x0
+ add r5, r1, #0x0
+ cmp r4, #0x0
+ bne _0201F7FE
+ bl ErrorHandling
+_0201F7FE:
+ ldmia r5!, {r0-r1}
+ add r4, #0xc
+ stmia r4!, {r0-r1}
+ ldr r0, [r5, #0x0]
+ str r0, [r4, #0x0]
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_0201F80C
+FUN_0201F80C: ; 0x0201F80C
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ cmp r5, #0x0
+ bne _0201F81A
+ bl ErrorHandling
+_0201F81A:
+ strb r4, [r5, #0x18]
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_0201F820
+FUN_0201F820: ; 0x0201F820
+ push {r4, lr}
+ add r4, r0, #0x0
+ bne _0201F82A
+ bl ErrorHandling
+_0201F82A:
+ ldrb r0, [r4, #0x18]
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0201F830
+FUN_0201F830: ; 0x0201F830
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ cmp r5, #0x0
+ bne _0201F83E
+ bl ErrorHandling
+_0201F83E:
+ add r5, #0xaa
+ strh r4, [r5, #0x0]
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_0201F844
+FUN_0201F844: ; 0x0201F844
+ push {r4, lr}
+ add r4, r0, #0x0
+ bne _0201F84E
+ bl ErrorHandling
+_0201F84E:
+ add r4, #0xaa
+ ldrh r0, [r4, #0x0]
+ pop {r4, pc}
+
+ thumb_func_start FUN_0201F854
+FUN_0201F854: ; 0x0201F854
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ cmp r5, #0x0
+ bne _0201F862
+ bl ErrorHandling
+_0201F862:
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_0201FBFC
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_0201F86C
+FUN_0201F86C: ; 0x0201F86C
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ cmp r5, #0x0
+ bne _0201F87A
+ bl ErrorHandling
+_0201F87A:
+ add r5, #0xac
+ str r4, [r5, #0x0]
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_0201F880
+FUN_0201F880: ; 0x0201F880
+ push {r4, lr}
+ add r4, r0, #0x0
+ bne _0201F88A
+ bl ErrorHandling
+_0201F88A:
+ add r4, #0xac
+ ldr r0, [r4, #0x0]
+ pop {r4, pc}
+
+ thumb_func_start FUN_0201F890
+FUN_0201F890: ; 0x0201F890
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ cmp r5, #0x0
+ bne _0201F89E
+ bl ErrorHandling
+_0201F89E:
+ add r1, r5, #0x0
+ add r1, #0xaa
+ ldrh r1, [r1, #0x0]
+ add r0, r5, #0x0
+ bl FUN_0201FBEC
+ add r1, r5, #0x0
+ add r1, #0xac
+ str r0, [r1, #0x0]
+ add r0, r5, #0x0
+ add r0, #0xac
+ ldr r0, [r0, #0x0]
+ add r5, #0xac
+ add r0, r0, r4
+ str r0, [r5, #0x0]
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_0201F8C0
+FUN_0201F8C0: ; 0x0201F8C0
+ push {r4, lr}
+ add r4, r0, #0x0
+ bne _0201F8CA
+ bl ErrorHandling
+_0201F8CA:
+ add r1, r4, #0x0
+ add r1, #0xaa
+ ldrh r1, [r1, #0x0]
+ add r0, r4, #0x0
+ bl FUN_0201FBEC
+ add r4, #0xac
+ ldr r1, [r4, #0x0]
+ sub r0, r1, r0
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0201F8E0
+FUN_0201F8E0: ; 0x0201F8E0
+ push {r4, lr}
+ add r4, r0, #0x0
+ bne _0201F8EA
+ bl ErrorHandling
+_0201F8EA:
+ ldr r0, [r4, #0x7c]
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0201F8F0
+FUN_0201F8F0: ; 0x0201F8F0
+ push {r3, lr}
+ add r1, r0, #0x0
+ add r0, #0xa8
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x2
+ bne _0201F90A
+ add r0, r1, #0x0
+ add r0, #0xa4
+ add r1, #0xac
+ ldr r0, [r0, #0x0]
+ ldr r1, [r1, #0x0]
+ bl FUN_0201C438
+_0201F90A:
+ pop {r3, pc}
+
+ thumb_func_start FUN_0201F90C
+FUN_0201F90C: ; 0x0201F90C
+ push {r3-r4, lr}
+ sub sp, #0x4
+ add r4, r0, #0x0
+ add r1, r4, #0x0
+ add r1, #0xac
+ ldr r1, [r1, #0x0]
+ add r0, #0x94
+ lsl r1, r1, #0x4
+ lsr r1, r1, #0x10
+ bl FUN_02022244
+ add r2, sp, #0x0
+ strb r0, [r2, #0x0]
+ lsr r0, r0, #0x8
+ strb r0, [r2, #0x1]
+ ldrb r0, [r2, #0x0]
+ add r1, r4, #0x0
+ add r1, #0x84
+ strb r0, [r2, #0x2]
+ ldrb r0, [r2, #0x1]
+ strb r0, [r2, #0x3]
+ ldrb r2, [r2, #0x2]
+ ldr r0, [r4, #0x7c]
+ ldr r1, [r1, #0x0]
+ bl FUN_0201F954
+ add r2, sp, #0x0
+ ldr r0, [r4, #0x7c]
+ add r4, #0x84
+ ldrb r2, [r2, #0x3]
+ ldr r1, [r4, #0x0]
+ bl FUN_0201FA04
+ add sp, #0x4
+ pop {r3-r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0201F954
+FUN_0201F954: ; 0x0201F954
+ push {r3-r7, lr}
+ ldr r3, [r0, #0x8]
+ mov r5, #0x0
+ add r6, r0, r3
+ ldrh r0, [r0, r3]
+ add r3, r1, #0x0
+ add r1, #0x42
+ ldrh r1, [r1, #0x0]
+ add r3, #0x3c
+ add r4, r6, r0
+ add r0, r3, r1
+ ldrh r1, [r3, r1]
+ mul r2, r1
+ add r0, r0, r2
+ ldr r0, [r0, #0x4]
+ lsl r0, r0, #0x10
+ lsr r7, r0, #0x10
+ ldrb r0, [r4, #0x1]
+ cmp r0, #0x0
+ ble _0201F9A2
+_0201F97C:
+ ldrh r0, [r4, #0x6]
+ add r1, r4, r0
+ ldrh r0, [r4, r0]
+ add r2, r1, #0x4
+ add r1, r0, #0x0
+ mul r1, r5
+ add r1, r2, r1
+ ldrb r2, [r1, #0x3]
+ mov r0, #0x1
+ tst r0, r2
+ beq _0201F99A
+ add r0, r6, #0x0
+ add r2, r7, #0x0
+ bl FUN_0201F9A4
+_0201F99A:
+ ldrb r0, [r4, #0x1]
+ add r5, r5, #0x1
+ cmp r5, r0
+ blt _0201F97C
+_0201F9A2:
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_0201F9A4
+FUN_0201F9A4: ; 0x0201F9A4
+ push {r4-r7, lr}
+ sub sp, #0xc
+ add r6, r0, #0x0
+ add r0, r1, #0x0
+ ldrh r0, [r0, #0x0]
+ str r1, [sp, #0x0]
+ add r7, r2, #0x0
+ add r0, r6, r0
+ str r0, [sp, #0x4]
+ add r0, r1, #0x0
+ ldrb r0, [r0, #0x2]
+ mov r4, #0x0
+ cmp r0, #0x0
+ ble _0201F9FC
+ add r0, r6, #0x4
+ str r0, [sp, #0x8]
+_0201F9C4:
+ ldrh r2, [r6, #0xa]
+ ldr r0, [sp, #0x8]
+ ldr r1, [sp, #0x8]
+ add r0, r0, r2
+ ldrh r2, [r1, r2]
+ ldr r1, [sp, #0x4]
+ ldrb r1, [r1, r4]
+ mul r1, r2
+ add r0, r0, r1
+ ldr r0, [r0, #0x4]
+ add r5, r6, r0
+ ldr r0, [r5, #0x14]
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ add r1, r0, r7
+ ldr r0, _0201FA00 ; =0x0000FFFF
+ cmp r1, r0
+ bls _0201F9EC
+ bl ErrorHandling
+_0201F9EC:
+ ldr r0, [r5, #0x14]
+ add r4, r4, #0x1
+ add r0, r0, r7
+ str r0, [r5, #0x14]
+ ldr r0, [sp, #0x0]
+ ldrb r0, [r0, #0x2]
+ cmp r4, r0
+ blt _0201F9C4
+_0201F9FC:
+ add sp, #0xc
+ pop {r4-r7, pc}
+ .balign 4
+_0201FA00: .word 0x0000FFFF
+
+ thumb_func_start FUN_0201FA04
+FUN_0201FA04: ; 0x0201FA04
+ push {r3-r7, lr}
+ ldr r3, [r0, #0x8]
+ add r7, r0, r3
+ ldrh r0, [r7, #0x2]
+ add r4, r7, r0
+ ldrh r0, [r1, #0x34]
+ add r5, r1, r0
+ ldrh r0, [r5, #0x6]
+ add r1, r5, r0
+ ldrh r0, [r5, r0]
+ add r3, r1, #0x4
+ add r1, r0, #0x0
+ mul r1, r2
+ add r0, r3, r1
+ ldrh r6, [r3, r1]
+ ldrh r1, [r0, #0x2]
+ mov r0, #0x1
+ tst r0, r1
+ bne _0201FA2C
+ lsr r6, r6, #0x1
+_0201FA2C:
+ ldrb r0, [r4, #0x1]
+ mov r5, #0x0
+ cmp r0, #0x0
+ bls _0201FA5A
+_0201FA34:
+ ldrh r0, [r4, #0x6]
+ add r1, r4, r0
+ ldrh r0, [r4, r0]
+ add r2, r1, #0x4
+ add r1, r0, #0x0
+ mul r1, r5
+ add r1, r2, r1
+ ldrb r2, [r1, #0x3]
+ mov r0, #0x1
+ tst r0, r2
+ beq _0201FA52
+ add r0, r7, #0x0
+ add r2, r6, #0x0
+ bl FUN_0201FA5C
+_0201FA52:
+ ldrb r0, [r4, #0x1]
+ add r5, r5, #0x1
+ cmp r5, r0
+ blo _0201FA34
+_0201FA5A:
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_0201FA5C
+FUN_0201FA5C: ; 0x0201FA5C
+ push {r4-r7, lr}
+ sub sp, #0xc
+ add r6, r0, #0x0
+ add r0, r1, #0x0
+ ldrh r0, [r0, #0x0]
+ str r1, [sp, #0x0]
+ add r7, r2, #0x0
+ add r0, r6, r0
+ str r0, [sp, #0x4]
+ add r0, r1, #0x0
+ ldrb r0, [r0, #0x2]
+ mov r4, #0x0
+ cmp r0, #0x0
+ bls _0201FAB4
+ add r0, r6, #0x4
+ str r0, [sp, #0x8]
+_0201FA7C:
+ ldrh r2, [r6, #0xa]
+ ldr r0, [sp, #0x8]
+ ldr r1, [sp, #0x8]
+ add r0, r0, r2
+ ldrh r2, [r1, r2]
+ ldr r1, [sp, #0x4]
+ ldrb r1, [r1, r4]
+ mul r1, r2
+ add r0, r0, r1
+ ldr r0, [r0, #0x4]
+ add r5, r6, r0
+ ldrh r1, [r5, #0x1c]
+ ldr r0, _0201FAB8 ; =0x00001FFF
+ and r0, r1
+ add r1, r0, r7
+ ldr r0, _0201FAB8 ; =0x00001FFF
+ cmp r1, r0
+ bls _0201FAA4
+ bl ErrorHandling
+_0201FAA4:
+ ldrh r0, [r5, #0x1c]
+ add r4, r4, #0x1
+ add r0, r0, r7
+ strh r0, [r5, #0x1c]
+ ldr r0, [sp, #0x0]
+ ldrb r0, [r0, #0x2]
+ cmp r4, r0
+ blo _0201FA7C
+_0201FAB4:
+ add sp, #0xc
+ pop {r4-r7, pc}
+ .balign 4
+_0201FAB8: .word 0x00001FFF
+
+ thumb_func_start FUN_0201FABC
+FUN_0201FABC: ; 0x0201FABC
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ ldr r0, [r5, #0x8]
+ mov r7, #0x0
+ cmp r0, #0x0
+ ble _0201FAEC
+ add r4, r7, #0x0
+ add r6, r7, #0x0
+_0201FACC:
+ ldr r0, [r5, #0x4]
+ add r0, r0, r4
+ bl FUN_0201F094
+ ldr r0, [r5, #0x4]
+ add r7, r7, #0x1
+ add r1, r0, r4
+ add r0, r5, #0x0
+ add r0, #0xc4
+ ldr r0, [r0, #0x0]
+ add r4, #0xb8
+ str r1, [r0, r6]
+ ldr r0, [r5, #0x8]
+ add r6, r6, #0x4
+ cmp r7, r0
+ blt _0201FACC
+_0201FAEC:
+ mov r0, #0x0
+ add r5, #0xc8
+ str r0, [r5, #0x0]
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_0201FAF4
+FUN_0201FAF4: ; 0x0201FAF4
+ add r1, r0, #0x0
+ add r1, #0xc8
+ ldr r3, [r1, #0x0]
+ ldr r1, [r0, #0x8]
+ cmp r3, r1
+ blt _0201FB04
+ mov r0, #0x0
+ bx lr
+_0201FB04:
+ add r1, r0, #0x0
+ add r1, #0xc4
+ ldr r2, [r1, #0x0]
+ lsl r1, r3, #0x2
+ ldr r2, [r2, r1]
+ add r1, r0, #0x0
+ add r1, #0xc8
+ ldr r1, [r1, #0x0]
+ add r0, #0xc8
+ add r1, r1, #0x1
+ str r1, [r0, #0x0]
+ add r0, r2, #0x0
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_0201FB20
+FUN_0201FB20: ; 0x0201FB20
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r0, #0xc8
+ ldr r0, [r0, #0x0]
+ add r4, r1, #0x0
+ cmp r0, #0x0
+ bgt _0201FB32
+ mov r0, #0x0
+ pop {r3-r5, pc}
+_0201FB32:
+ add r0, r4, #0x0
+ bl FUN_0201F094
+ add r0, r5, #0x0
+ add r0, #0xc8
+ ldr r0, [r0, #0x0]
+ sub r1, r0, #0x1
+ add r0, r5, #0x0
+ add r0, #0xc8
+ str r1, [r0, #0x0]
+ add r0, r5, #0x0
+ add r0, #0xc4
+ add r5, #0xc8
+ ldr r1, [r0, #0x0]
+ ldr r0, [r5, #0x0]
+ lsl r0, r0, #0x2
+ str r4, [r1, r0]
+ mov r0, #0x1
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_0201FB58
+FUN_0201FB58: ; 0x0201FB58
+ add r2, r0, #0x0
+ add r2, #0xb4
+ ldr r3, [r2, #0x0]
+ add r2, r1, #0x0
+ add r2, #0xb4
+ str r3, [r2, #0x0]
+ add r2, r0, #0x0
+ add r2, #0xb4
+ ldr r2, [r2, #0x0]
+ add r2, #0xb0
+ str r1, [r2, #0x0]
+ add r2, r1, #0x0
+ add r2, #0xb0
+ str r0, [r2, #0x0]
+ add r0, #0xb4
+ str r1, [r0, #0x0]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_0201FB7C
+FUN_0201FB7C: ; 0x0201FB7C
+ add r1, r0, #0x0
+ add r1, #0xb0
+ ldr r2, [r1, #0x0]
+ add r1, r0, #0x0
+ add r1, #0xb4
+ ldr r1, [r1, #0x0]
+ add r1, #0xb0
+ str r2, [r1, #0x0]
+ add r1, r0, #0x0
+ add r0, #0xb0
+ add r1, #0xb4
+ ldr r0, [r0, #0x0]
+ ldr r1, [r1, #0x0]
+ add r0, #0xb4
+ str r1, [r0, #0x0]
+ bx lr
+
+ thumb_func_start FUN_0201FB9C
+FUN_0201FB9C: ; 0x0201FB9C
+ push {r3-r7, lr}
+ add r6, r1, #0x0
+ mov r1, #0x0
+ add r5, r2, #0x0
+ bl FUN_0201FC90
+ add r7, r0, #0x0
+ blx FUN_020BC13C
+ add r4, r0, #0x0
+ ldrh r0, [r4, #0xe]
+ add r0, r4, r0
+ ldr r0, [r0, #0xc]
+ add r0, r4, r0
+ str r0, [r6, #0x0]
+ cmp r5, #0x0
+ beq _0201FBC6
+ add r0, r7, #0x0
+ blx FUN_020BC0FC
+ str r0, [r5, #0x0]
+_0201FBC6:
+ add r0, r4, #0x0
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_0201FBCC
+FUN_0201FBCC: ; 0x0201FBCC
+ ldr r3, _0201FBD4 ; =FUN_0201FC90
+ mov r1, #0x1
+ bx r3
+ nop
+_0201FBD4: .word FUN_0201FC90
+
+ thumb_func_start FUN_0201FBD8
+FUN_0201FBD8: ; 0x0201FBD8
+ push {r3, lr}
+ ldr r2, [r1, #0x1c]
+ cmp r2, #0x0
+ bne _0201FBE6
+ bl FUN_0201F384
+ pop {r3, pc}
+_0201FBE6:
+ bl FUN_0201F3D4
+ pop {r3, pc}
+
+ thumb_func_start FUN_0201FBEC
+FUN_0201FBEC: ; 0x0201FBEC
+ push {r3, lr}
+ ldr r0, [r0, #0x20]
+ bl FUN_0201FCA8
+ ldr r0, [r0, #0x0]
+ lsl r0, r0, #0xc
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_0201FBFC
+FUN_0201FBFC: ; 0x0201FBFC
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ add r1, r5, #0x0
+ add r1, #0xaa
+ ldrh r1, [r1, #0x0]
+ ldr r0, [r5, #0x20]
+ bl FUN_0201FCA8
+ add r5, #0xac
+ add r1, r5, #0x0
+ add r2, r4, #0x0
+ bl FUN_0201FC1C
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_0201FC1C
+FUN_0201FC1C: ; 0x0201FC1C
+ push {r3-r6}
+ ldr r4, [r0, #0x0]
+ ldr r6, [r1, #0x0]
+ lsl r4, r4, #0xc
+ mov r3, #0x0
+ cmp r4, r6
+ bgt _0201FC32
+ ldr r5, [r0, #0x4]
+ lsl r5, r5, #0xc
+ cmp r5, r6
+ bge _0201FC36
+_0201FC32:
+ str r4, [r1, #0x0]
+ b _0201FC4E
+_0201FC36:
+ add r2, r6, r2
+ cmp r5, r2
+ bge _0201FC4C
+ ldr r0, [r0, #0x8]
+ cmp r0, #0x0
+ bne _0201FC46
+ str r4, [r1, #0x0]
+ b _0201FC4E
+_0201FC46:
+ mov r3, #0x1
+ str r5, [r1, #0x0]
+ b _0201FC4E
+_0201FC4C:
+ str r2, [r1, #0x0]
+_0201FC4E:
+ add r0, r3, #0x0
+ pop {r3-r6}
+ bx lr
+
+ thumb_func_start FUN_0201FC54
+FUN_0201FC54: ; 0x0201FC54
+ push {r3, lr}
+ add r3, r0, #0x0
+ add r0, #0x90
+ str r0, [sp, #0x0]
+ add r0, r3, #0x0
+ add r0, #0x80
+ add r2, r3, #0x0
+ ldr r1, [r3, #0x78]
+ ldr r0, [r0, #0x0]
+ add r2, #0x88
+ add r3, #0x8c
+ bl FUN_0201F500
+ pop {r3, pc}
+
+ thumb_func_start FUN_0201FC70
+FUN_0201FC70: ; 0x0201FC70
+ push {r3-r4, lr}
+ sub sp, #0xc
+ add r4, r0, #0x0
+ ldr r0, [r4, #0x78]
+ blx FUN_020B772C
+ add r4, #0x80
+ ldr r0, [r4, #0x0]
+ add r1, sp, #0x4
+ add r2, sp, #0x8
+ add r3, sp, #0x0
+ bl FUN_0201F4EC
+ add sp, #0xc
+ pop {r3-r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0201FC90
+FUN_0201FC90: ; 0x0201FC90
+ cmp r1, #0x0
+ beq _0201FC9A
+ cmp r1, #0x1
+ beq _0201FC9E
+ b _0201FCA2
+_0201FC9A:
+ ldr r0, [r0, #0x0]
+ bx lr
+_0201FC9E:
+ ldr r0, [r0, #0x4]
+ bx lr
+_0201FCA2:
+ mov r0, #0x0
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_0201FCA8
+FUN_0201FCA8: ; 0x0201FCA8
+ mov r2, #0xc
+ mul r2, r1
+ add r0, r0, r2
+ bx lr
+
+ thumb_func_start FUN_0201FCB0
+FUN_0201FCB0: ; 0x0201FCB0
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ bne _0201FCBA
+ bl ErrorHandling
+_0201FCBA:
+ ldr r0, [r5, #0x4]
+ cmp r0, #0x0
+ bne _0201FCC4
+ bl ErrorHandling
+_0201FCC4:
+ mov r1, #0x49
+ ldr r0, [r5, #0x8]
+ lsl r1, r1, #0x2
+ bl FUN_02016998
+ add r4, r0, #0x0
+ bne _0201FCD6
+ bl ErrorHandling
+_0201FCD6:
+ add r0, r4, #0x0
+ bl FUN_0201FE44
+ ldr r2, [r5, #0x0]
+ ldr r0, [r5, #0x8]
+ lsl r1, r2, #0x6
+ add r1, r2, r1
+ lsl r1, r1, #0x2
+ bl FUN_02016998
+ str r0, [r4, #0x0]
+ cmp r0, #0x0
+ bne _0201FCF4
+ bl ErrorHandling
+_0201FCF4:
+ ldr r0, [r5, #0x0]
+ str r0, [r4, #0x4]
+ ldr r1, [r5, #0x0]
+ ldr r0, [r5, #0x8]
+ lsl r1, r1, #0x2
+ bl FUN_02016998
+ str r0, [r4, #0x8]
+ cmp r0, #0x0
+ bne _0201FD0C
+ bl ErrorHandling
+_0201FD0C:
+ add r0, r4, #0x0
+ bl FUN_0202083C
+ add r0, r4, #0x0
+ add r0, #0x10
+ bl FUN_0201FE6C
+ add r2, r4, #0x0
+ mov r1, #0x43
+ lsl r1, r1, #0x2
+ add r2, #0x10
+ str r2, [r4, r1]
+ add r0, r1, #0x4
+ str r2, [r4, r0]
+ ldr r0, [r5, #0x4]
+ add r1, #0x8
+ str r0, [r4, r1]
+ ldr r0, [r5, #0x8]
+ ldr r1, _0201FD54 ; =0x02105BBC
+ bl FUN_020161A4
+ mov r1, #0x46
+ lsl r1, r1, #0x2
+ str r0, [r4, r1]
+ ldr r0, [r4, r1]
+ add r1, r1, #0x4
+ add r1, r4, r1
+ blx thunk_FUN_020afda0_2
+ mov r0, #0x12
+ mov r1, #0x1
+ lsl r0, r0, #0x4
+ str r1, [r4, r0]
+ add r0, r4, #0x0
+ pop {r3-r5, pc}
+ nop
+_0201FD54: .word 0x02105BBC
+
+ thumb_func_start FUN_0201FD58
+FUN_0201FD58: ; 0x0201FD58
+ push {r4, lr}
+ add r4, r0, #0x0
+ bne _0201FD62
+ mov r0, #0x0
+ pop {r4, pc}
+_0201FD62:
+ ldr r1, [r4, #0x0]
+ cmp r1, #0x0
+ bne _0201FD6C
+ mov r0, #0x1
+ pop {r4, pc}
+_0201FD6C:
+ bl FUN_0201FDB4
+ mov r0, #0x46
+ lsl r0, r0, #0x2
+ ldr r0, [r4, r0]
+ bl FUN_02016A18
+ ldr r0, [r4, #0x8]
+ bl FUN_02016A18
+ ldr r0, [r4, #0x0]
+ bl FUN_02016A18
+ add r0, r4, #0x0
+ bl FUN_0201FE44
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ mov r0, #0x1
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0201FD98
+FUN_0201FD98: ; 0x0201FD98
+ cmp r0, #0x0
+ bne _0201FDA0
+ mov r0, #0x0
+ bx lr
+_0201FDA0:
+ ldr r2, [r0, #0x0]
+ cmp r2, #0x0
+ bne _0201FDAA
+ mov r0, #0x0
+ bx lr
+_0201FDAA:
+ mov r2, #0x12
+ lsl r2, r2, #0x4
+ str r1, [r0, r2]
+ mov r0, #0x1
+ bx lr
+
+ thumb_func_start FUN_0201FDB4
+FUN_0201FDB4: ; 0x0201FDB4
+ push {r4-r6, lr}
+ cmp r0, #0x0
+ bne _0201FDBE
+ mov r0, #0x0
+ pop {r4-r6, pc}
+_0201FDBE:
+ ldr r1, [r0, #0x0]
+ cmp r1, #0x0
+ bne _0201FDC8
+ mov r0, #0x1
+ pop {r4-r6, pc}
+_0201FDC8:
+ mov r1, #0x11
+ lsl r1, r1, #0x4
+ add r4, r0, #0x0
+ ldr r1, [r0, r1]
+ add r4, #0x10
+ cmp r1, r4
+ beq _0201FDE8
+ mov r6, #0x1
+ lsl r6, r6, #0x8
+_0201FDDA:
+ ldr r5, [r1, r6]
+ add r0, r1, #0x0
+ bl FUN_0201FFC8
+ add r1, r5, #0x0
+ cmp r5, r4
+ bne _0201FDDA
+_0201FDE8:
+ mov r0, #0x1
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_0201FDEC
+FUN_0201FDEC: ; 0x0201FDEC
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ bne _0201FDF6
+ bl ErrorHandling
+_0201FDF6:
+ mov r0, #0x12
+ lsl r0, r0, #0x4
+ ldr r1, [r5, r0]
+ cmp r1, #0x0
+ beq _0201FE38
+ sub r0, #0x10
+ add r6, r5, #0x0
+ ldr r4, [r5, r0]
+ add r6, #0x10
+ cmp r4, r6
+ beq _0201FE38
+ ldr r7, _0201FE3C ; =0x020EE658
+_0201FE0E:
+ add r2, r4, #0x0
+ add r2, #0x34
+ ldrb r2, [r2, #0x0]
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ lsl r2, r2, #0x2
+ ldr r2, [r7, r2]
+ blx r2
+ add r1, r4, #0x0
+ add r1, #0x35
+ ldrb r1, [r1, #0x0]
+ add r0, r4, #0x0
+ lsl r2, r1, #0x2
+ ldr r1, _0201FE40 ; =0x020EE660
+ ldr r1, [r1, r2]
+ blx r1
+ mov r0, #0x1
+ lsl r0, r0, #0x8
+ ldr r4, [r4, r0]
+ cmp r4, r6
+ bne _0201FE0E
+_0201FE38:
+ pop {r3-r7, pc}
+ nop
+_0201FE3C: .word 0x020EE658
+_0201FE40: .word 0x020EE660
+
+ thumb_func_start FUN_0201FE44
+FUN_0201FE44: ; 0x0201FE44
+ push {r4, lr}
+ add r4, r0, #0x0
+ mov r1, #0x0
+ str r1, [r4, #0x0]
+ str r1, [r4, #0x4]
+ str r1, [r4, #0x8]
+ mov r0, #0x45
+ str r1, [r4, #0xc]
+ lsl r0, r0, #0x2
+ str r1, [r4, r0]
+ add r0, r4, #0x0
+ add r0, #0x10
+ bl FUN_0201FE6C
+ mov r0, #0x12
+ mov r1, #0x0
+ lsl r0, r0, #0x4
+ str r1, [r4, r0]
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0201FE6C
+FUN_0201FE6C: ; 0x0201FE6C
+ push {r4, lr}
+ mov r2, #0x41
+ add r4, r0, #0x0
+ mov r1, #0x0
+ lsl r2, r2, #0x2
+ str r1, [r4, #0x3c]
+ blx Call_FillMemWithValue
+ add r0, r4, #0x0
+ add r0, #0xb4
+ blx FUN_020B1A24
+ add r0, r4, #0x0
+ add r0, #0xd8
+ blx FUN_020B19DC
+ mov r0, #0x0
+ str r0, [r4, #0x30]
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0201FE94
+FUN_0201FE94: ; 0x0201FE94
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ ldr r0, [r5, #0x0]
+ bl FUN_02020874
+ add r4, r0, #0x0
+ bne _0201FEA6
+ mov r0, #0x0
+ pop {r4-r6, pc}
+_0201FEA6:
+ ldr r0, [r5, #0x0]
+ add r6, r5, #0x0
+ str r0, [r4, #0x3c]
+ add r0, r4, #0x0
+ mov r2, #0x0
+ add r0, #0xf0
+ add r6, #0x8
+ strh r2, [r0, #0x0]
+ ldmia r6!, {r0-r1}
+ add r3, r4, #0x0
+ stmia r3!, {r0-r1}
+ ldr r0, [r6, #0x0]
+ add r6, r5, #0x0
+ str r0, [r3, #0x0]
+ add r6, #0x14
+ add r3, r4, #0x0
+ ldmia r6!, {r0-r1}
+ add r3, #0x18
+ stmia r3!, {r0-r1}
+ ldr r0, [r6, #0x0]
+ str r0, [r3, #0x0]
+ ldrh r0, [r5, #0x20]
+ strh r0, [r4, #0x24]
+ add r0, r4, #0x0
+ ldr r1, [r5, #0x28]
+ add r0, #0xf8
+ str r1, [r0, #0x0]
+ add r0, r4, #0x0
+ ldr r1, [r5, #0x24]
+ add r0, #0xf4
+ strh r1, [r0, #0x0]
+ add r0, r4, #0x0
+ add r0, #0x26
+ strb r2, [r0, #0x0]
+ add r0, r4, #0x0
+ add r0, #0x27
+ strb r2, [r0, #0x0]
+ str r2, [r4, #0x2c]
+ add r0, r4, #0x0
+ str r2, [r4, #0x30]
+ mov r1, #0x11
+ add r0, #0x28
+ strb r1, [r0, #0x0]
+ mov r0, #0x45
+ ldr r1, [r5, #0x0]
+ lsl r0, r0, #0x2
+ ldr r0, [r1, r0]
+ add r1, r4, #0x0
+ add r1, #0x26
+ ldrb r1, [r1, #0x0]
+ blx FUN_020B502C
+ add r0, r4, #0x0
+ add r0, #0x27
+ ldrb r2, [r0, #0x0]
+ mov r0, #0x45
+ ldr r1, [r5, #0x0]
+ lsl r0, r0, #0x2
+ ldr r0, [r1, r0]
+ mov r1, #0x1
+ mov r3, #0x2
+ and r1, r2
+ and r2, r3
+ blx FUN_020B4F38
+ add r0, r4, #0x0
+ mov r2, #0x1
+ add r0, #0x34
+ strb r2, [r0, #0x0]
+ add r0, r4, #0x0
+ mov r1, #0x0
+ add r0, #0x35
+ strb r1, [r0, #0x0]
+ lsl r0, r2, #0xd
+ str r0, [r4, #0x38]
+ ldr r0, [r5, #0x0]
+ ldr r1, [r5, #0x4]
+ ldr r3, [r5, #0x2c]
+ add r2, r4, #0x0
+ bl FUN_02020434
+ cmp r0, #0x0
+ bne _0201FF56
+ add r0, r4, #0x0
+ bl FUN_0201FFC8
+ mov r0, #0x0
+ pop {r4-r6, pc}
+_0201FF56:
+ add r1, r4, #0x0
+ add r1, #0xf8
+ add r0, r4, #0x0
+ ldr r1, [r1, #0x0]
+ add r0, #0xd8
+ bl FUN_020205E8
+ add r1, r4, #0x0
+ add r1, #0x2a
+ strb r0, [r1, #0x0]
+ add r0, r4, #0x0
+ add r0, #0x2a
+ ldrb r1, [r0, #0x0]
+ add r0, r4, #0x0
+ add r0, #0x29
+ strb r1, [r0, #0x0]
+ ldr r0, [r5, #0x0]
+ add r1, r4, #0x0
+ bl FUN_02020788
+ add r0, r4, #0x0
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_0201FF84
+FUN_0201FF84: ; 0x0201FF84
+ push {r4, lr}
+ sub sp, #0x30
+ add r2, r0, #0x0
+ ldr r0, [r2, #0x0]
+ add r4, r2, #0x0
+ str r0, [sp, #0x0]
+ ldr r0, [r2, #0x4]
+ add r4, #0x8
+ str r0, [sp, #0x4]
+ ldmia r4!, {r0-r1}
+ add r3, sp, #0x8
+ stmia r3!, {r0-r1}
+ ldr r0, [r4, #0x0]
+ mov r1, #0x0
+ str r0, [r3, #0x0]
+ mov r0, #0x1
+ lsl r0, r0, #0xc
+ str r0, [sp, #0x14]
+ str r0, [sp, #0x18]
+ str r0, [sp, #0x1c]
+ add r0, sp, #0x0
+ strh r1, [r0, #0x20]
+ ldr r0, [r2, #0x14]
+ str r0, [sp, #0x24]
+ ldr r0, [r2, #0x18]
+ str r0, [sp, #0x28]
+ ldr r0, [r2, #0x1c]
+ str r0, [sp, #0x2c]
+ add r0, sp, #0x0
+ bl FUN_0201FE94
+ add sp, #0x30
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0201FFC8
+FUN_0201FFC8: ; 0x0201FFC8
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r1, r5, #0x0
+ add r1, #0xec
+ ldr r1, [r1, #0x0]
+ cmp r1, #0x0
+ beq _02020040
+ add r1, r5, #0x0
+ add r1, #0xfc
+ ldr r1, [r1, #0x0]
+ cmp r1, #0x0
+ beq _0201FFE4
+ bl FUN_02020820
+_0201FFE4:
+ add r0, r5, #0x0
+ add r0, #0xec
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x3
+ bne _0202000E
+ add r1, r5, #0x0
+ add r1, #0xf8
+ add r0, r5, #0x0
+ add r4, r5, #0x0
+ ldr r1, [r1, #0x0]
+ add r0, #0xb4
+ add r4, #0x40
+ blx FUN_020B1A14
+ mov r1, #0x0
+ mvn r1, r1
+ cmp r0, r1
+ beq _0202000E
+ ldr r0, [r4, #0x5c]
+ blx FUN_020B4358
+_0202000E:
+ add r0, r5, #0x0
+ add r0, #0xec
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x2
+ bne _02020030
+ add r4, r5, #0x0
+ add r4, #0x40
+ ldr r0, [r4, #0x70]
+ cmp r0, #0x0
+ beq _02020026
+ bl FUN_02016A18
+_02020026:
+ ldr r0, [r4, #0x74]
+ cmp r0, #0x0
+ beq _02020030
+ bl FUN_02016A18
+_02020030:
+ add r0, r5, #0x0
+ mov r1, #0x0
+ add r0, #0xec
+ str r1, [r0, #0x0]
+ ldr r0, [r5, #0x3c]
+ add r1, r5, #0x0
+ bl FUN_02020890
+_02020040:
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_02020044
+FUN_02020044: ; 0x02020044
+ add r2, r1, #0x0
+ add r3, r0, #0x0
+ ldmia r2!, {r0-r1}
+ stmia r3!, {r0-r1}
+ ldr r0, [r2, #0x0]
+ str r0, [r3, #0x0]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02020054
+FUN_02020054: ; 0x02020054
+ add r3, r1, #0x0
+ add r2, r0, #0x0
+ ldmia r3!, {r0-r1}
+ add r2, #0xc
+ stmia r2!, {r0-r1}
+ ldr r0, [r3, #0x0]
+ str r0, [r2, #0x0]
+ bx lr
+
+ thumb_func_start FUN_02020064
+FUN_02020064: ; 0x02020064
+ add r3, r1, #0x0
+ add r2, r0, #0x0
+ ldmia r3!, {r0-r1}
+ add r2, #0x18
+ stmia r2!, {r0-r1}
+ ldr r0, [r3, #0x0]
+ str r0, [r2, #0x0]
+ bx lr
+
+ thumb_func_start FUN_02020074
+FUN_02020074: ; 0x02020074
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r2, #0x0
+ bl FUN_02020064
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_020200EC
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_02020088
+FUN_02020088: ; 0x02020088
+ strh r1, [r0, #0x24]
+ bx lr
+
+ thumb_func_start FUN_0202008C
+FUN_0202008C: ; 0x0202008C
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r2, #0x0
+ bl FUN_02020088
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_020200EC
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_020200A0
+FUN_020200A0: ; 0x020200A0
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ cmp r5, #0x0
+ bne _020200AE
+ bl ErrorHandling
+_020200AE:
+ cmp r4, #0x2
+ blt _020200B6
+ bl ErrorHandling
+_020200B6:
+ add r5, #0x34
+ strb r4, [r5, #0x0]
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_020200BC
+FUN_020200BC: ; 0x020200BC
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ cmp r5, #0x0
+ bne _020200CA
+ bl ErrorHandling
+_020200CA:
+ cmp r4, #0x2
+ blt _020200D2
+ bl ErrorHandling
+_020200D2:
+ add r5, #0x35
+ strb r4, [r5, #0x0]
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_020200D8
+FUN_020200D8: ; 0x020200D8
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ cmp r5, #0x0
+ bne _020200E6
+ bl ErrorHandling
+_020200E6:
+ str r4, [r5, #0x38]
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_020200EC
+FUN_020200EC: ; 0x020200EC
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ cmp r5, #0x0
+ bne _020200FA
+ bl ErrorHandling
+_020200FA:
+ add r5, #0x26
+ strb r4, [r5, #0x0]
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_02020100
+FUN_02020100: ; 0x02020100
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ cmp r5, #0x0
+ bne _0202010E
+ bl ErrorHandling
+_0202010E:
+ add r0, r5, #0x0
+ add r0, #0x27
+ strb r4, [r0, #0x0]
+ mov r0, #0x0
+ add r5, #0x26
+ strb r0, [r5, #0x0]
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_0202011C
+FUN_0202011C: ; 0x0202011C
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02020120
+FUN_02020120: ; 0x02020120
+ add r0, #0x18
+ bx lr
+
+ thumb_func_start FUN_02020124
+FUN_02020124: ; 0x02020124
+ ldrh r0, [r0, #0x24]
+ bx lr
+
+ thumb_func_start FUN_02020128
+FUN_02020128: ; 0x02020128
+ add r0, #0x34
+ ldrb r0, [r0, #0x0]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02020130
+FUN_02020130: ; 0x02020130
+ push {r4, lr}
+ lsl r2, r1, #0x10
+ lsr r3, r2, #0x10
+ add r2, r0, #0x0
+ add r2, #0xf0
+ strh r3, [r2, #0x0]
+ add r2, r0, #0x0
+ add r2, #0xec
+ ldr r2, [r2, #0x0]
+ cmp r2, #0x1
+ beq _0202014A
+ cmp r2, #0x3
+ bne _02020168
+_0202014A:
+ add r4, r0, #0x0
+ add r4, #0x40
+ lsl r1, r1, #0x10
+ ldr r0, [r4, #0x4]
+ lsr r1, r1, #0x10
+ blx FUN_020AFC04
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ add r0, #0x8
+ blx FUN_020B1EE4
+ mov r0, #0x1
+ str r0, [r4, #0x10]
+ pop {r4, pc}
+_02020168:
+ add r4, r0, #0x0
+ add r4, #0x40
+ ldr r0, [r4, #0x6c]
+ add r1, r3, #0x0
+ blx FUN_020AFC04
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ add r0, #0x8
+ blx FUN_020B242C
+ mov r0, #0x1
+ str r0, [r4, #0x10]
+ pop {r4, pc}
+
+ thumb_func_start FUN_02020184
+FUN_02020184: ; 0x02020184
+ push {r3, lr}
+ add r2, r0, #0x0
+ add r2, #0xf0
+ ldrh r2, [r2, #0x0]
+ cmp r2, r1
+ beq _02020194
+ bl FUN_02020130
+_02020194:
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_02020198
+FUN_02020198: ; 0x02020198
+ push {r3-r5, lr}
+ add r4, r0, #0x0
+ add r0, #0xec
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x1
+ beq _020201A8
+ cmp r0, #0x3
+ bne _020201C2
+_020201A8:
+ add r5, r4, #0x0
+ add r5, #0x40
+ add r0, r5, #0x0
+ add r0, #0x8
+ blx FUN_020B0448
+ mov r0, #0x1
+ str r0, [r5, #0x10]
+ add r0, r4, #0x0
+ mov r1, #0x0
+ bl FUN_02020208
+ pop {r3-r5, pc}
+_020201C2:
+ add r5, r4, #0x0
+ add r5, #0x40
+ add r0, r5, #0x0
+ add r0, #0x8
+ blx FUN_020B0448
+ mov r0, #0x1
+ str r0, [r5, #0x10]
+ add r0, r4, #0x0
+ mov r1, #0x0
+ bl FUN_02020208
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_020201DC
+FUN_020201DC: ; 0x020201DC
+ add r0, #0xf0
+ ldrh r0, [r0, #0x0]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_020201E4
+FUN_020201E4: ; 0x020201E4
+ push {r3, lr}
+ add r2, r0, #0x0
+ add r2, #0xec
+ ldr r2, [r2, #0x0]
+ cmp r2, #0x1
+ beq _020201F4
+ cmp r2, #0x3
+ bne _020201FE
+_020201F4:
+ add r0, #0x40
+ add r0, #0x8
+ blx FUN_020B1EC4
+ pop {r3, pc}
+_020201FE:
+ add r0, #0x40
+ add r0, #0x8
+ blx FUN_020B224C
+ pop {r3, pc}
+
+ thumb_func_start FUN_02020208
+FUN_02020208: ; 0x02020208
+ push {r3, lr}
+ add r2, r0, #0x0
+ add r2, #0xec
+ ldr r2, [r2, #0x0]
+ cmp r2, #0x1
+ beq _02020218
+ cmp r2, #0x3
+ bne _02020222
+_02020218:
+ add r0, #0x40
+ add r0, #0x8
+ blx FUN_020B1EA4
+ pop {r3, pc}
+_02020222:
+ add r0, #0x40
+ add r0, #0x8
+ blx FUN_020B2194
+ pop {r3, pc}
+
+ thumb_func_start FUN_0202022C
+FUN_0202022C: ; 0x0202022C
+ ldr r3, _02020234 ; =0x020B04FC
+ add r0, #0x40
+ add r0, #0x8
+ bx r3
+ .balign 4
+_02020234: .word 0x020B04FC
+
+ thumb_func_start FUN_02020238
+FUN_02020238: ; 0x02020238
+ add r0, #0xf2
+ strb r1, [r0, #0x0]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02020240
+FUN_02020240: ; 0x02020240
+ add r0, #0xf2
+ ldrb r0, [r0, #0x0]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02020248
+FUN_02020248: ; 0x02020248
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ cmp r5, #0x0
+ bne _02020256
+ bl ErrorHandling
+_02020256:
+ add r0, r5, #0x0
+ add r0, #0x29
+ strb r4, [r0, #0x0]
+ add r0, r5, #0x0
+ add r0, #0x28
+ ldrb r1, [r0, #0x0]
+ mov r0, #0x2
+ orr r1, r0
+ add r0, r5, #0x0
+ add r0, #0x28
+ strb r1, [r0, #0x0]
+ add r0, r5, #0x0
+ add r0, #0x28
+ ldrb r1, [r0, #0x0]
+ mov r0, #0x10
+ add r5, #0x28
+ bic r1, r0
+ strb r1, [r5, #0x0]
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_0202027C
+FUN_0202027C: ; 0x0202027C
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl FUN_02020248
+ add r1, r4, #0x0
+ add r1, #0xf8
+ add r0, r4, #0x0
+ ldr r1, [r1, #0x0]
+ add r0, #0xd8
+ bl FUN_020205E8
+ add r1, r4, #0x0
+ add r1, #0x29
+ ldrb r1, [r1, #0x0]
+ add r4, #0x29
+ add r0, r1, r0
+ strb r0, [r4, #0x0]
+ pop {r4, pc}
+
+ thumb_func_start FUN_020202A0
+FUN_020202A0: ; 0x020202A0
+ add r0, #0x29
+ ldrb r0, [r0, #0x0]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_020202A8
+FUN_020202A8: ; 0x020202A8
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ cmp r5, #0x0
+ bne _020202B6
+ bl ErrorHandling
+_020202B6:
+ add r0, r5, #0x0
+ add r0, #0x2a
+ strb r4, [r0, #0x0]
+ add r0, r5, #0x0
+ add r0, #0x28
+ ldrb r1, [r0, #0x0]
+ mov r0, #0x10
+ orr r1, r0
+ add r0, r5, #0x0
+ add r0, #0x28
+ strb r1, [r0, #0x0]
+ add r0, r5, #0x0
+ add r0, #0x28
+ ldrb r1, [r0, #0x0]
+ mov r0, #0x2
+ add r5, #0x28
+ bic r1, r0
+ strb r1, [r5, #0x0]
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_020202DC
+FUN_020202DC: ; 0x020202DC
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl FUN_020202A8
+ add r1, r4, #0x0
+ add r1, #0xf8
+ add r0, r4, #0x0
+ ldr r1, [r1, #0x0]
+ add r0, #0xd8
+ bl FUN_020205E8
+ add r1, r4, #0x0
+ add r1, #0x2a
+ ldrb r1, [r1, #0x0]
+ add r4, #0x2a
+ add r0, r1, r0
+ strb r0, [r4, #0x0]
+ pop {r4, pc}
+
+ thumb_func_start FUN_02020300
+FUN_02020300: ; 0x02020300
+ push {r4, lr}
+ add r4, r0, #0x0
+ bne _0202030A
+ bl ErrorHandling
+_0202030A:
+ add r4, #0x2a
+ ldrb r0, [r4, #0x0]
+ pop {r4, pc}
+
+ thumb_func_start FUN_02020310
+FUN_02020310: ; 0x02020310
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r2, r5, #0x0
+ ldr r4, [r5, #0x3c]
+ add r2, #0xf4
+ strh r1, [r2, #0x0]
+ bl FUN_02020820
+ add r0, r4, #0x0
+ add r1, r5, #0x0
+ bl FUN_02020788
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_0202032C
+FUN_0202032C: ; 0x0202032C
+ add r0, #0xf4
+ ldrh r0, [r0, #0x0]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02020334
+FUN_02020334: ; 0x02020334
+ push {r3-r4}
+ add r3, r0, #0x0
+ add r4, r1, #0x0
+ add r3, #0xb4
+ mov r2, #0x4
+_0202033E:
+ ldmia r4!, {r0-r1}
+ stmia r3!, {r0-r1}
+ sub r2, r2, #0x1
+ bne _0202033E
+ ldr r0, [r4, #0x0]
+ str r0, [r3, #0x0]
+ pop {r3-r4}
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02020350
+FUN_02020350: ; 0x02020350
+ add r0, #0xb4
+ bx lr
+
+ thumb_func_start FUN_02020354
+FUN_02020354: ; 0x02020354
+ add r0, #0xd8
+ bx lr
+
+ thumb_func_start FUN_02020358
+FUN_02020358: ; 0x02020358
+ str r1, [r0, #0x2c]
+ cmp r1, #0x1
+ bne _0202036E
+ add r1, r0, #0x0
+ add r1, #0x28
+ ldrb r2, [r1, #0x0]
+ mov r1, #0x4
+ add r0, #0x28
+ orr r1, r2
+ strb r1, [r0, #0x0]
+ bx lr
+_0202036E:
+ add r1, r0, #0x0
+ add r1, #0x28
+ ldrb r2, [r1, #0x0]
+ mov r1, #0x4
+ eor r1, r2
+ add r0, #0x28
+ strb r1, [r0, #0x0]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02020380
+FUN_02020380: ; 0x02020380
+ add r0, #0xf8
+ ldr r0, [r0, #0x0]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02020388
+FUN_02020388: ; 0x02020388
+ push {r4, lr}
+ add r4, r0, #0x0
+ bne _02020392
+ bl ErrorHandling
+_02020392:
+ ldr r0, [r4, #0x50]
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02020398
+FUN_02020398: ; 0x02020398
+ push {r3-r5, lr}
+ add r4, r0, #0x0
+ add r5, r1, #0x0
+ cmp r4, #0x0
+ bne _020203A6
+ bl ErrorHandling
+_020203A6:
+ str r5, [r4, #0x30]
+ cmp r5, #0x0
+ bne _020203BC
+ add r0, r4, #0x0
+ add r0, #0x28
+ ldrb r1, [r0, #0x0]
+ mov r0, #0x8
+ add r4, #0x28
+ eor r0, r1
+ strb r0, [r4, #0x0]
+ pop {r3-r5, pc}
+_020203BC:
+ add r0, r4, #0x0
+ add r0, #0x28
+ ldrb r1, [r0, #0x0]
+ mov r0, #0x8
+ orr r0, r1
+ add r4, #0x28
+ strb r0, [r4, #0x0]
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_020203CC
+FUN_020203CC: ; 0x020203CC
+ push {r4, lr}
+ mov r1, #0x1
+ lsl r1, r1, #0xa
+ bl FUN_02016998
+ add r4, r0, #0x0
+ mov r0, #0xb
+ mov r2, #0x1
+ lsl r0, r0, #0x6
+ add r1, r4, #0x0
+ lsl r2, r2, #0xa
+ blx MIi_CpuClear16
+ mov r1, #0x1
+ add r0, r4, #0x0
+ lsl r1, r1, #0xa
+ blx DC_FlushRange
+ mov r2, #0x1
+ add r0, r4, #0x0
+ mov r1, #0x0
+ lsl r2, r2, #0xa
+ blx GX_LoadOAM
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ pop {r4, pc}
+
+ thumb_func_start FUN_02020404
+FUN_02020404: ; 0x02020404
+ push {r4, lr}
+ mov r1, #0x1
+ lsl r1, r1, #0xa
+ bl FUN_02016998
+ add r4, r0, #0x0
+ mov r0, #0xb
+ mov r2, #0x1
+ lsl r0, r0, #0x6
+ add r1, r4, #0x0
+ lsl r2, r2, #0xa
+ blx MIi_CpuClear16
+ mov r2, #0x1
+ add r0, r4, #0x0
+ mov r1, #0x0
+ lsl r2, r2, #0xa
+ blx GXS_LoadOAM
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02020434
+FUN_02020434: ; 0x02020434
+ push {r3-r7, lr}
+ add r5, r1, #0x0
+ str r0, [sp, #0x0]
+ add r4, r2, #0x0
+ add r0, r5, #0x0
+ add r7, r3, #0x0
+ bl FUN_020204DC
+ add r1, r4, #0x0
+ add r1, #0xec
+ str r0, [r1, #0x0]
+ add r3, r4, #0x0
+ ldr r6, [r5, #0x0]
+ add r3, #0xb4
+ mov r2, #0x4
+_02020452:
+ ldmia r6!, {r0-r1}
+ stmia r3!, {r0-r1}
+ sub r2, r2, #0x1
+ bne _02020452
+ ldr r0, [r6, #0x0]
+ add r2, r4, #0x0
+ str r0, [r3, #0x0]
+ ldr r3, [r5, #0x8]
+ add r2, #0xd8
+ ldmia r3!, {r0-r1}
+ stmia r2!, {r0-r1}
+ ldmia r3!, {r0-r1}
+ stmia r2!, {r0-r1}
+ ldr r0, [r3, #0x0]
+ add r1, r4, #0x0
+ str r0, [r2, #0x0]
+ ldr r0, [r5, #0xc]
+ bl FUN_020204F4
+ ldr r0, [r5, #0x10]
+ cmp r0, #0x0
+ beq _02020486
+ add r1, r4, #0x0
+ bl FUN_020204F8
+ b _02020494
+_02020486:
+ mov r1, #0x47
+ ldr r0, [sp, #0x0]
+ lsl r1, r1, #0x2
+ ldr r0, [r0, r1]
+ add r1, r4, #0x0
+ bl FUN_020204F8
+_02020494:
+ add r0, r4, #0x0
+ add r0, #0xec
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x2
+ bne _020204B8
+ ldr r0, [r5, #0x14]
+ add r1, r4, #0x0
+ bl FUN_020204FC
+ ldr r0, [r5, #0x18]
+ add r1, r4, #0x0
+ bl FUN_02020504
+ add r0, r4, #0x0
+ add r1, r7, #0x0
+ bl FUN_02020588
+ b _020204D0
+_020204B8:
+ cmp r0, #0x3
+ bne _020204C8
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ add r2, r7, #0x0
+ bl FUN_0202052C
+ b _020204D0
+_020204C8:
+ add r0, r4, #0x0
+ add r1, r7, #0x0
+ bl FUN_0202050C
+_020204D0:
+ add r5, #0x20
+ ldrb r0, [r5, #0x0]
+ add r4, #0xf2
+ strb r0, [r4, #0x0]
+ mov r0, #0x1
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_020204DC
+FUN_020204DC: ; 0x020204DC
+ ldr r1, [r0, #0x14]
+ cmp r1, #0x0
+ beq _020204E6
+ mov r0, #0x2
+ bx lr
+_020204E6:
+ ldr r0, [r0, #0x1c]
+ cmp r0, #0x1
+ bne _020204F0
+ mov r0, #0x3
+ bx lr
+_020204F0:
+ mov r0, #0x1
+ bx lr
+
+ thumb_func_start FUN_020204F4
+FUN_020204F4: ; 0x020204F4
+ str r0, [r1, #0x40]
+ bx lr
+
+ thumb_func_start FUN_020204F8
+FUN_020204F8: ; 0x020204F8
+ str r0, [r1, #0x44]
+ bx lr
+
+ thumb_func_start FUN_020204FC
+FUN_020204FC: ; 0x020204FC
+ add r1, #0xa8
+ str r0, [r1, #0x0]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02020504
+FUN_02020504: ; 0x02020504
+ add r1, #0xac
+ str r0, [r1, #0x0]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_0202050C
+FUN_0202050C: ; 0x0202050C
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r5, #0x0
+ add r4, #0x40
+ ldr r0, [r4, #0x4]
+ mov r1, #0x0
+ blx FUN_020AFC04
+ add r4, #0x8
+ add r1, r0, #0x0
+ ldr r2, [r5, #0x40]
+ add r0, r4, #0x0
+ blx FUN_020B1F80
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_0202052C
+FUN_0202052C: ; 0x0202052C
+ push {r4-r7, lr}
+ sub sp, #0x1c
+ add r6, r1, #0x0
+ add r4, r6, #0x0
+ add r4, #0x40
+ add r5, r0, #0x0
+ blx FUN_020B43A4
+ str r0, [r4, #0x5c]
+ ldr r0, [r4, #0x4]
+ mov r1, #0x0
+ ldr r5, [r5, #0x4]
+ blx FUN_020AFC04
+ str r0, [sp, #0x18]
+ add r0, r6, #0x0
+ add r0, #0xb4
+ mov r1, #0x1
+ blx FUN_020B1A14
+ add r7, r0, #0x0
+ add r0, r6, #0x0
+ add r0, #0xb4
+ mov r1, #0x2
+ blx FUN_020B1A14
+ mov r1, #0x0
+ mvn r1, r1
+ str r1, [sp, #0x0]
+ str r7, [sp, #0x4]
+ str r0, [sp, #0x8]
+ ldr r0, [r5, #0x14]
+ ldr r1, [sp, #0x18]
+ str r0, [sp, #0xc]
+ mov r0, #0x0
+ str r0, [sp, #0x10]
+ ldr r0, [r5, #0x10]
+ str r0, [sp, #0x14]
+ add r0, r4, #0x0
+ ldr r2, [r6, #0x40]
+ ldr r3, [r4, #0x5c]
+ add r0, #0x8
+ blx FUN_020B1EFC
+ add sp, #0x1c
+ pop {r4-r7, pc}
+
+ thumb_func_start FUN_02020588
+FUN_02020588: ; 0x02020588
+ push {r3-r7, lr}
+ sub sp, #0x10
+ add r5, r0, #0x0
+ add r4, r5, #0x0
+ add r4, #0x40
+ ldr r0, [r4, #0x6c]
+ add r7, r1, #0x0
+ mov r1, #0x0
+ blx FUN_020AFC04
+ str r0, [sp, #0xc]
+ ldr r0, [r4, #0x68]
+ blx FUN_020B23D8
+ add r6, r0, #0x0
+ mov r1, #0x28
+ add r0, r7, #0x0
+ mul r1, r6
+ bl FUN_02016998
+ mov r1, #0x54
+ str r0, [r4, #0x70]
+ add r0, r7, #0x0
+ mul r1, r6
+ bl FUN_02016998
+ str r0, [r4, #0x74]
+ ldr r0, [r4, #0x4]
+ add r3, r6, #0x0
+ str r0, [sp, #0x0]
+ ldr r0, [r5, #0x40]
+ str r0, [sp, #0x4]
+ ldr r0, [r4, #0x68]
+ str r0, [sp, #0x8]
+ add r0, r4, #0x0
+ ldr r1, [r4, #0x70]
+ ldr r2, [r4, #0x74]
+ add r0, #0x8
+ blx FUN_020B20C8
+ add r4, #0x8
+ ldr r1, [sp, #0xc]
+ add r0, r4, #0x0
+ blx FUN_020B242C
+ add sp, #0x10
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_020205E8
+FUN_020205E8: ; 0x020205E8
+ push {r4, lr}
+ ldr r2, [r0, #0x4]
+ cmp r2, #0x0
+ beq _020205F6
+ mov r4, #0x2
+ lsl r4, r4, #0x8
+ b _02020602
+_020205F6:
+ ldr r2, [r0, #0x0]
+ cmp r2, #0x4
+ bne _02020600
+ mov r4, #0x0
+ b _02020602
+_02020600:
+ mov r4, #0x20
+_02020602:
+ cmp r4, #0x0
+ beq _02020612
+ blx FUN_020B19C4
+ add r1, r4, #0x0
+ blx _u32_div_f
+ pop {r4, pc}
+_02020612:
+ mov r0, #0x0
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02020618
+FUN_02020618: ; 0x02020618
+ push {r3-r6, lr}
+ sub sp, #0xc
+ add r4, r1, #0x0
+ add r3, r4, #0x0
+ add r5, r0, #0x0
+ ldmia r3!, {r0-r1}
+ add r2, sp, #0x0
+ stmia r2!, {r0-r1}
+ ldr r0, [r3, #0x0]
+ add r1, r4, #0x0
+ str r0, [r2, #0x0]
+ mov r0, #0x45
+ lsl r0, r0, #0x2
+ add r2, r4, #0x0
+ ldr r0, [r5, r0]
+ add r1, #0xb4
+ add r2, #0xd8
+ blx thunk_FUN_020b5040
+ mov r0, #0x45
+ lsl r0, r0, #0x2
+ ldr r0, [r5, r0]
+ blx FUN_020B326C
+ blx FUN_020B2B58
+ add r1, r4, #0x0
+ mov r0, #0x45
+ add r1, #0x26
+ lsl r0, r0, #0x2
+ ldrb r1, [r1, #0x0]
+ ldr r0, [r5, r0]
+ blx FUN_020B502C
+ add r0, r4, #0x0
+ add r0, #0x26
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x0
+ bne _02020680
+ add r0, r4, #0x0
+ add r0, #0x27
+ ldrb r2, [r0, #0x0]
+ mov r0, #0x45
+ lsl r0, r0, #0x2
+ mov r1, #0x1
+ ldr r0, [r5, r0]
+ mov r3, #0x2
+ and r1, r2
+ and r2, r3
+ blx FUN_020B4F38
+ b _0202068E
+_02020680:
+ mov r0, #0x45
+ lsl r0, r0, #0x2
+ mov r1, #0x0
+ ldr r0, [r5, r0]
+ add r2, r1, #0x0
+ blx FUN_020B4F38
+_0202068E:
+ ldr r0, [sp, #0x0]
+ ldr r1, [sp, #0x4]
+ ldr r2, [sp, #0x8]
+ blx FUN_020B2A08
+ add r0, r4, #0x0
+ add r0, #0x26
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x0
+ beq _020206DC
+ ldr r0, [r4, #0xc]
+ ldr r1, [r4, #0x10]
+ ldr r2, [r4, #0x14]
+ blx FUN_020B2A08
+ ldr r0, [r4, #0x18]
+ ldr r1, [r4, #0x1c]
+ ldr r2, [r4, #0x20]
+ blx FUN_020B28B4
+ ldrh r0, [r4, #0x24]
+ ldr r2, _02020770 ; =0x020FFA38
+ asr r0, r0, #0x4
+ lsl r1, r0, #0x1
+ lsl r0, r1, #0x1
+ add r1, r1, #0x1
+ lsl r1, r1, #0x1
+ ldrsh r0, [r2, r0]
+ ldrsh r1, [r2, r1]
+ blx FUN_020B2794
+ ldr r0, [r4, #0xc]
+ ldr r1, [r4, #0x10]
+ ldr r2, [r4, #0x14]
+ neg r0, r0
+ neg r1, r1
+ neg r2, r2
+ blx FUN_020B2A08
+_020206DC:
+ add r0, r4, #0x0
+ add r0, #0x28
+ ldrb r3, [r0, #0x0]
+ mov r0, #0x45
+ lsl r0, r0, #0x2
+ ldr r2, [r5, r0]
+ add r1, r2, #0x0
+ add r1, #0x84
+ ldr r1, [r1, #0x0]
+ add r2, #0x84
+ orr r1, r3
+ str r1, [r2, #0x0]
+ add r1, r4, #0x0
+ add r1, #0x28
+ ldrb r1, [r1, #0x0]
+ mvn r6, r1
+ ldr r1, [r5, r0]
+ add r2, r1, #0x0
+ add r2, #0x84
+ ldr r3, [r2, #0x0]
+ mvn r2, r6
+ and r2, r3
+ add r1, #0x84
+ str r2, [r1, #0x0]
+ add r1, r4, #0x0
+ add r1, #0x29
+ ldrb r2, [r1, #0x0]
+ ldr r1, [r5, r0]
+ add r1, #0x8a
+ strh r2, [r1, #0x0]
+ add r1, r4, #0x0
+ add r1, #0x2a
+ ldrb r2, [r1, #0x0]
+ ldr r1, [r5, r0]
+ add r1, #0x94
+ strh r2, [r1, #0x0]
+ ldr r1, [r5, r0]
+ ldr r2, [r4, #0x2c]
+ add r1, #0x90
+ str r2, [r1, #0x0]
+ ldr r1, [r5, r0]
+ ldr r2, [r4, #0x30]
+ add r1, #0x8c
+ str r2, [r1, #0x0]
+ add r1, r4, #0x0
+ add r1, #0xf2
+ ldr r0, [r5, r0]
+ ldrb r1, [r1, #0x0]
+ add r0, #0x88
+ strh r1, [r0, #0x0]
+ add r0, r4, #0x0
+ add r0, #0xec
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x1
+ beq _0202074E
+ cmp r0, #0x3
+ bne _0202075A
+_0202074E:
+ add r4, #0x40
+ add r4, #0x8
+ add r0, r4, #0x0
+ blx FUN_020B317C
+ b _02020764
+_0202075A:
+ add r4, #0x40
+ add r4, #0x8
+ add r0, r4, #0x0
+ blx FUN_020B2D9C
+_02020764:
+ blx FUN_020B2B08
+ blx FUN_020B31F0
+ add sp, #0xc
+ pop {r3-r6, pc}
+ .balign 4
+_02020770: .word 0x020FFA38
+
+ thumb_func_start FUN_02020774
+FUN_02020774: ; 0x02020774
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02020778
+FUN_02020778: ; 0x02020778
+ ldr r3, _02020780 ; =FUN_020201E4
+ ldr r1, [r0, #0x38]
+ bx r3
+ nop
+_02020780: .word FUN_020201E4
+
+ thumb_func_start FUN_02020784
+FUN_02020784: ; 0x02020784
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02020788
+FUN_02020788: ; 0x02020788
+ push {r4-r7}
+ mov r2, #0x11
+ lsl r2, r2, #0x4
+ add r4, r0, #0x0
+ ldr r5, [r0, r2]
+ add r4, #0x10
+ cmp r5, r4
+ bne _020207AC
+ str r1, [r0, r2]
+ sub r3, r2, #0x4
+ str r1, [r0, r3]
+ add r0, r1, #0x0
+ add r0, #0xfc
+ str r4, [r0, #0x0]
+ sub r2, #0x10
+ str r4, [r1, r2]
+ pop {r4-r7}
+ bx lr
+_020207AC:
+ add r3, r1, #0x0
+ add r3, #0xf4
+ ldrh r6, [r3, #0x0]
+ sub r3, r2, #0x4
+ ldr r3, [r0, r3]
+ add r7, r3, #0x0
+ add r7, #0xf4
+ ldrh r7, [r7, #0x0]
+ cmp r7, r6
+ bhi _020207DE
+ add r5, r1, #0x0
+ add r5, #0xfc
+ str r3, [r5, #0x0]
+ sub r3, r2, #0x4
+ ldr r5, [r0, r3]
+ add r3, r2, #0x0
+ sub r3, #0x10
+ str r1, [r5, r3]
+ add r3, r2, #0x0
+ sub r3, #0x10
+ str r4, [r1, r3]
+ sub r2, r2, #0x4
+ str r1, [r0, r2]
+ pop {r4-r7}
+ bx lr
+_020207DE:
+ cmp r5, r4
+ beq _0202081A
+ add r0, r2, #0x0
+ sub r0, #0x10
+_020207E6:
+ add r2, r5, #0x0
+ add r2, #0xf4
+ ldrh r2, [r2, #0x0]
+ cmp r2, r6
+ bls _02020814
+ add r0, r5, #0x0
+ add r0, #0xfc
+ mov r2, #0x1
+ ldr r0, [r0, #0x0]
+ lsl r2, r2, #0x8
+ str r1, [r0, r2]
+ add r0, r5, #0x0
+ add r0, #0xfc
+ ldr r3, [r0, #0x0]
+ add r0, r1, #0x0
+ add r0, #0xfc
+ str r3, [r0, #0x0]
+ add r0, r5, #0x0
+ add r0, #0xfc
+ str r1, [r0, #0x0]
+ str r5, [r1, r2]
+ pop {r4-r7}
+ bx lr
+_02020814:
+ ldr r5, [r5, r0]
+ cmp r5, r4
+ bne _020207E6
+_0202081A:
+ pop {r4-r7}
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02020820
+FUN_02020820: ; 0x02020820
+ mov r2, #0x1
+ add r1, r0, #0x0
+ lsl r2, r2, #0x8
+ add r1, #0xfc
+ ldr r3, [r0, r2]
+ ldr r1, [r1, #0x0]
+ str r3, [r1, r2]
+ add r1, r0, #0x0
+ add r1, #0xfc
+ ldr r0, [r0, r2]
+ ldr r1, [r1, #0x0]
+ add r0, #0xfc
+ str r1, [r0, #0x0]
+ bx lr
+
+ thumb_func_start FUN_0202083C
+FUN_0202083C: ; 0x0202083C
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ ldr r0, [r5, #0x4]
+ mov r7, #0x0
+ cmp r0, #0x0
+ ble _0202086C
+ add r4, r7, #0x0
+ add r6, r7, #0x0
+_0202084C:
+ ldr r0, [r5, #0x0]
+ add r0, r0, r4
+ bl FUN_0201FE6C
+ ldr r0, [r5, #0x0]
+ add r7, r7, #0x1
+ add r1, r0, r4
+ ldr r0, [r5, #0x8]
+ str r1, [r0, r6]
+ mov r0, #0x41
+ lsl r0, r0, #0x2
+ add r4, r4, r0
+ ldr r0, [r5, #0x4]
+ add r6, r6, #0x4
+ cmp r7, r0
+ blt _0202084C
+_0202086C:
+ mov r0, #0x0
+ str r0, [r5, #0xc]
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_02020874
+FUN_02020874: ; 0x02020874
+ ldr r3, [r0, #0xc]
+ ldr r1, [r0, #0x4]
+ cmp r3, r1
+ blt _02020880
+ mov r0, #0x0
+ bx lr
+_02020880:
+ ldr r2, [r0, #0x8]
+ lsl r1, r3, #0x2
+ ldr r2, [r2, r1]
+ add r1, r3, #0x1
+ str r1, [r0, #0xc]
+ add r0, r2, #0x0
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02020890
+FUN_02020890: ; 0x02020890
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ ldr r0, [r5, #0xc]
+ add r4, r1, #0x0
+ cmp r0, #0x0
+ bgt _020208A0
+ mov r0, #0x0
+ pop {r3-r5, pc}
+_020208A0:
+ add r0, r4, #0x0
+ bl FUN_0201FE6C
+ ldr r0, [r5, #0xc]
+ sub r0, r0, #0x1
+ str r0, [r5, #0xc]
+ ldr r1, [r5, #0x8]
+ lsl r0, r0, #0x2
+ str r4, [r1, r0]
+ mov r0, #0x1
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_020208B8
+FUN_020208B8: ; 0x020208B8
+ push {r4-r7}
+ ldrb r3, [r0, #0x0]
+ mov r4, #0x0
+ cmp r3, #0xff
+ beq _020208FA
+_020208C2:
+ ldrb r7, [r0, #0x2]
+ ldrb r3, [r0, #0x3]
+ ldrb r5, [r0, #0x0]
+ sub r6, r1, r7
+ sub r3, r3, r7
+ cmp r6, r3
+ bhs _020208D4
+ mov r6, #0x1
+ b _020208D6
+_020208D4:
+ mov r6, #0x0
+_020208D6:
+ ldrb r7, [r0, #0x1]
+ sub r3, r2, r5
+ sub r5, r7, r5
+ cmp r3, r5
+ bhs _020208E4
+ mov r3, #0x1
+ b _020208E6
+_020208E4:
+ mov r3, #0x0
+_020208E6:
+ tst r3, r6
+ beq _020208F0
+ add r0, r4, #0x0
+ pop {r4-r7}
+ bx lr
+_020208F0:
+ add r0, r0, #0x4
+ ldrb r3, [r0, #0x0]
+ add r4, r4, #0x1
+ cmp r3, #0xff
+ bne _020208C2
+_020208FA:
+ mov r0, #0x0
+ mvn r0, r0
+ pop {r4-r7}
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02020904
+FUN_02020904: ; 0x02020904
+ push {r3-r4}
+ ldrb r3, [r0, #0x1]
+ sub r4, r3, r1
+ ldrb r1, [r0, #0x2]
+ sub r3, r1, r2
+ ldrb r2, [r0, #0x3]
+ add r1, r4, #0x0
+ add r0, r3, #0x0
+ mul r1, r4
+ mul r0, r3
+ add r1, r1, r0
+ add r0, r2, #0x0
+ mul r0, r2
+ cmp r1, r0
+ bhs _02020928
+ mov r0, #0x1
+ pop {r3-r4}
+ bx lr
+_02020928:
+ mov r0, #0x0
+ pop {r3-r4}
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02020930
+FUN_02020930: ; 0x02020930
+ push {r4-r5}
+ ldrb r5, [r0, #0x2]
+ ldrb r3, [r0, #0x0]
+ sub r4, r1, r5
+ ldrb r1, [r0, #0x3]
+ sub r1, r1, r5
+ cmp r4, r1
+ bhs _02020944
+ mov r4, #0x1
+ b _02020946
+_02020944:
+ mov r4, #0x0
+_02020946:
+ ldrb r0, [r0, #0x1]
+ sub r1, r2, r3
+ sub r0, r0, r3
+ cmp r1, r0
+ bhs _02020954
+ mov r0, #0x1
+ b _02020956
+_02020954:
+ mov r0, #0x0
+_02020956:
+ tst r0, r4
+ beq _02020960
+ mov r0, #0x1
+ pop {r4-r5}
+ bx lr
+_02020960:
+ mov r0, #0x0
+ pop {r4-r5}
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02020968
+FUN_02020968: ; 0x02020968
+ push {r3, lr}
+ ldr r2, _02020984 ; =0x021C48F8
+ ldrh r1, [r2, #0x22]
+ cmp r1, #0x0
+ beq _0202097C
+ ldrh r1, [r2, #0x1c]
+ ldrh r2, [r2, #0x1e]
+ bl FUN_020208B8
+ pop {r3, pc}
+_0202097C:
+ mov r0, #0x0
+ mvn r0, r0
+ pop {r3, pc}
+ nop
+_02020984: .word 0x021C48F8
+
+ thumb_func_start FUN_02020988
+FUN_02020988: ; 0x02020988
+ push {r3, lr}
+ ldr r2, _020209A4 ; =0x021C48F8
+ ldrh r1, [r2, #0x20]
+ cmp r1, #0x0
+ beq _0202099C
+ ldrh r1, [r2, #0x1c]
+ ldrh r2, [r2, #0x1e]
+ bl FUN_020208B8
+ pop {r3, pc}
+_0202099C:
+ mov r0, #0x0
+ mvn r0, r0
+ pop {r3, pc}
+ nop
+_020209A4: .word 0x021C48F8
+
+ thumb_func_start FUN_020209A8
+FUN_020209A8: ; 0x020209A8
+ push {r3-r7, lr}
+ ldr r7, _020209F0 ; =0x021C48F8
+ add r5, r0, #0x0
+ ldrh r0, [r7, #0x22]
+ cmp r0, #0x0
+ beq _020209EA
+ mov r6, #0x0
+ add r4, r5, #0x0
+_020209B8:
+ ldrb r0, [r5, #0x0]
+ cmp r0, #0xfe
+ bne _020209D0
+ ldrh r1, [r7, #0x1c]
+ ldrh r2, [r7, #0x1e]
+ add r0, r4, #0x0
+ bl FUN_02020904
+ cmp r0, #0x0
+ beq _020209E2
+ add r0, r6, #0x0
+ pop {r3-r7, pc}
+_020209D0:
+ ldrh r1, [r7, #0x1c]
+ ldrh r2, [r7, #0x1e]
+ add r0, r4, #0x0
+ bl FUN_02020930
+ cmp r0, #0x0
+ beq _020209E2
+ add r0, r6, #0x0
+ pop {r3-r7, pc}
+_020209E2:
+ add r5, r5, #0x4
+ add r4, r4, #0x4
+ add r6, r6, #0x1
+ b _020209B8
+_020209EA:
+ mov r0, #0x0
+ mvn r0, r0
+ pop {r3-r7, pc}
+ .balign 4
+_020209F0: .word 0x021C48F8
+
+ thumb_func_start FUN_020209F4
+FUN_020209F4: ; 0x020209F4
+ push {r3-r7, lr}
+ ldr r7, _02020A3C ; =0x021C48F8
+ add r5, r0, #0x0
+ ldrh r0, [r7, #0x20]
+ cmp r0, #0x0
+ beq _02020A36
+ mov r6, #0x0
+ add r4, r5, #0x0
+_02020A04:
+ ldrb r0, [r5, #0x0]
+ cmp r0, #0xfe
+ bne _02020A1C
+ ldrh r1, [r7, #0x1c]
+ ldrh r2, [r7, #0x1e]
+ add r0, r4, #0x0
+ bl FUN_02020904
+ cmp r0, #0x0
+ beq _02020A2E
+ add r0, r6, #0x0
+ pop {r3-r7, pc}
+_02020A1C:
+ ldrh r1, [r7, #0x1c]
+ ldrh r2, [r7, #0x1e]
+ add r0, r4, #0x0
+ bl FUN_02020930
+ cmp r0, #0x0
+ beq _02020A2E
+ add r0, r6, #0x0
+ pop {r3-r7, pc}
+_02020A2E:
+ add r5, r5, #0x4
+ add r4, r4, #0x4
+ add r6, r6, #0x1
+ b _02020A04
+_02020A36:
+ mov r0, #0x0
+ mvn r0, r0
+ pop {r3-r7, pc}
+ .balign 4
+_02020A3C: .word 0x021C48F8
+
+ thumb_func_start FUN_02020A40
+FUN_02020A40: ; 0x02020A40
+ push {r3, lr}
+ ldr r2, _02020A68 ; =0x021C48F8
+ ldrh r1, [r2, #0x22]
+ cmp r1, #0x0
+ beq _02020A62
+ ldrb r1, [r0, #0x0]
+ cmp r1, #0xfe
+ ldrh r1, [r2, #0x1c]
+ bne _02020A5A
+ ldrh r2, [r2, #0x1e]
+ bl FUN_02020904
+ pop {r3, pc}
+_02020A5A:
+ ldrh r2, [r2, #0x1e]
+ bl FUN_02020930
+ pop {r3, pc}
+_02020A62:
+ mov r0, #0x0
+ pop {r3, pc}
+ nop
+_02020A68: .word 0x021C48F8
+
+ thumb_func_start FUN_02020A6C
+FUN_02020A6C: ; 0x02020A6C
+ push {r3, lr}
+ ldr r2, _02020A94 ; =0x021C48F8
+ ldrh r1, [r2, #0x20]
+ cmp r1, #0x0
+ beq _02020A8E
+ ldrb r1, [r0, #0x0]
+ cmp r1, #0xfe
+ ldrh r1, [r2, #0x1c]
+ bne _02020A86
+ ldrh r2, [r2, #0x1e]
+ bl FUN_02020904
+ pop {r3, pc}
+_02020A86:
+ ldrh r2, [r2, #0x1e]
+ bl FUN_02020930
+ pop {r3, pc}
+_02020A8E:
+ mov r0, #0x0
+ pop {r3, pc}
+ nop
+_02020A94: .word 0x021C48F8
+
+ thumb_func_start FUN_02020A98
+FUN_02020A98: ; 0x02020A98
+ ldr r0, _02020AA0 ; =0x021C48F8
+ ldrh r0, [r0, #0x22]
+ bx lr
+ nop
+_02020AA0: .word 0x021C48F8
+
+ thumb_func_start FUN_02020AA4
+FUN_02020AA4: ; 0x02020AA4
+ ldr r0, _02020AAC ; =0x021C48F8
+ ldrh r0, [r0, #0x20]
+ bx lr
+ nop
+_02020AAC: .word 0x021C48F8
+
+ thumb_func_start FUN_02020AB0
+FUN_02020AB0: ; 0x02020AB0
+ ldr r2, _02020AC8 ; =0x021C48F8
+ ldrh r3, [r2, #0x22]
+ cmp r3, #0x0
+ beq _02020AC4
+ ldrh r3, [r2, #0x1c]
+ str r3, [r0, #0x0]
+ ldrh r0, [r2, #0x1e]
+ str r0, [r1, #0x0]
+ mov r0, #0x1
+ bx lr
+_02020AC4:
+ mov r0, #0x0
+ bx lr
+ .balign 4
+_02020AC8: .word 0x021C48F8
+
+ thumb_func_start FUN_02020ACC
+FUN_02020ACC: ; 0x02020ACC
+ ldr r2, _02020AE4 ; =0x021C48F8
+ ldrh r3, [r2, #0x20]
+ cmp r3, #0x0
+ beq _02020AE0
+ ldrh r3, [r2, #0x1c]
+ str r3, [r0, #0x0]
+ ldrh r0, [r2, #0x1e]
+ str r0, [r1, #0x0]
+ mov r0, #0x1
+ bx lr
+_02020AE0:
+ mov r0, #0x0
+ bx lr
+ .balign 4
+_02020AE4: .word 0x021C48F8
+
+ thumb_func_start FUN_02020AE8
+FUN_02020AE8: ; 0x02020AE8
+ push {r3, lr}
+ ldrb r3, [r0, #0x0]
+ cmp r3, #0xfe
+ bne _02020AF6
+ bl FUN_02020904
+ pop {r3, pc}
+_02020AF6:
+ bl FUN_02020930
+ pop {r3, pc}
+
+ thumb_func_start FUN_02020AFC
+FUN_02020AFC: ; 0x02020AFC
+ push {r3, lr}
+ ldr r0, _02020B24 ; =0x021C59B0
+ mov r2, #0x0
+ str r2, [r0, #0x4]
+ str r2, [r0, #0x8]
+ ldr r1, _02020B28 ; =0x0400010E
+ str r2, [r0, #0x0]
+ strh r2, [r1, #0x0]
+ sub r0, r1, #0x2
+ strh r2, [r0, #0x0]
+ mov r0, #0xc1
+ strh r0, [r1, #0x0]
+ ldr r1, _02020B2C ; =FUN_02020B30
+ mov r0, #0x40
+ blx OS_SetIrqFunction
+ mov r0, #0x40
+ blx OS_EnableIrqMask
+ pop {r3, pc}
+ .balign 4
+_02020B24: .word 0x021C59B0
+_02020B28: .word 0x0400010E
+_02020B2C: .word FUN_02020B30
+
+ thumb_func_start FUN_02020B30
+FUN_02020B30: ; 0x02020B30
+ ldr r0, _02020B68 ; =0x021C59B0
+ mov r3, #0x0
+ ldr r1, [r0, #0x4]
+ ldr r2, [r0, #0x8]
+ add r1, r1, #0x1
+ adc r2, r3
+ str r1, [r0, #0x4]
+ str r2, [r0, #0x8]
+ ldr r1, [r0, #0x0]
+ cmp r1, #0x0
+ beq _02020B54
+ ldr r2, _02020B6C ; =0x0400010E
+ strh r3, [r2, #0x0]
+ sub r1, r2, #0x2
+ strh r3, [r1, #0x0]
+ mov r1, #0xc1
+ strh r1, [r2, #0x0]
+ str r3, [r0, #0x0]
+_02020B54:
+ ldr r3, _02020B70 ; =0x027E0000
+ ldr r1, _02020B74 ; =0x00003FF8
+ mov r0, #0x40
+ ldr r2, [r3, r1]
+ orr r2, r0
+ str r2, [r3, r1]
+ ldr r3, _02020B78 ; =OS_SetIrqFunction
+ ldr r1, _02020B7C ; =FUN_02020B30
+ bx r3
+ nop
+_02020B68: .word 0x021C59B0
+_02020B6C: .word 0x0400010E
+_02020B70: .word 0x027E0000
+_02020B74: .word 0x00003FF8
+_02020B78: .word OS_SetIrqFunction
+_02020B7C: .word FUN_02020B30
+
+ thumb_func_start FUN_02020B80
+FUN_02020B80: ; 0x02020B80
+ push {r4-r5, lr}
+ sub sp, #0xc
+ blx OS_DisableInterrupts
+ ldr r1, _02020BE4 ; =0x0400010C
+ add r3, sp, #0x0
+ ldrh r1, [r1, #0x0]
+ ldr r2, _02020BE8 ; =0x0000FFFF
+ strh r1, [r3, #0x0]
+ ldr r1, _02020BEC ; =0x021C59B0
+ ldr r5, [r1, #0x4]
+ ldr r4, [r1, #0x8]
+ mov r1, #0x0
+ mvn r1, r1
+ and r1, r5
+ str r1, [sp, #0x4]
+ and r2, r4
+ ldr r1, _02020BF0 ; =0x04000214
+ str r2, [sp, #0x8]
+ ldr r2, [r1, #0x0]
+ mov r1, #0x40
+ tst r2, r1
+ beq _02020BC4
+ ldrh r2, [r3, #0x0]
+ lsl r1, r1, #0x9
+ tst r1, r2
+ bne _02020BC4
+ ldr r2, [sp, #0x4]
+ mov r1, #0x0
+ ldr r3, [sp, #0x8]
+ add r2, r2, #0x1
+ adc r3, r1
+ str r2, [sp, #0x4]
+ str r3, [sp, #0x8]
+_02020BC4:
+ blx OS_RestoreInterrupts
+ ldr r2, [sp, #0x4]
+ ldr r1, [sp, #0x8]
+ lsr r0, r2, #0x10
+ lsl r1, r1, #0x10
+ orr r1, r0
+ add r0, sp, #0x0
+ lsl r3, r2, #0x10
+ ldrh r2, [r0, #0x0]
+ asr r0, r2, #0x1f
+ orr r1, r0
+ add r0, r3, #0x0
+ orr r0, r2
+ add sp, #0xc
+ pop {r4-r5, pc}
+ .balign 4
+_02020BE4: .word 0x0400010C
+_02020BE8: .word 0x0000FFFF
+_02020BEC: .word 0x021C59B0
+_02020BF0: .word 0x04000214
+
+ thumb_func_start FUN_02020BF4
+FUN_02020BF4: ; 0x02020BF4
+ ldr r3, _02020BF8 ; =FUN_02020B80
+ bx r3
+ .balign 4
+_02020BF8: .word FUN_02020B80
+
+ thumb_func_start FUN_02020BFC
+FUN_02020BFC: ; 0x02020BFC
+ push {r3, lr}
+ lsr r2, r0, #0x1a
+ lsl r1, r1, #0x6
+ orr r1, r2
+ ldr r2, _02020C10 ; =0x000082EA
+ lsl r0, r0, #0x6
+ mov r3, #0x0
+ blx _ll_udiv
+ pop {r3, pc}
+ .balign 4
+_02020C10: .word 0x000082EA
+
+ thumb_func_start FUN_02020C14
+FUN_02020C14: ; 0x02020C14
+ push {r3, lr}
+ lsr r2, r0, #0x1a
+ lsl r1, r1, #0x6
+ orr r1, r2
+ ldr r2, _02020C28 ; =0x01FF6210
+ lsl r0, r0, #0x6
+ mov r3, #0x0
+ blx _ll_udiv
+ pop {r3, pc}
+ .balign 4
+_02020C28: .word 0x01FF6210
+
+ thumb_func_start ErrorHandling
+ErrorHandling: ; 0x02020C2C
+ push {r3, lr}
+ bl FUN_02031810
+ cmp r0, #0x0
+ beq _02020C42
+ blx OS_GetProcMode
+ cmp r0, #0x12
+ beq _02020C42
+ bl FUN_0208A9B8
+_02020C42:
+ pop {r3, pc}
+
+ thumb_func_start FUN_02020C44
+FUN_02020C44: ; 0x02020C44
+ push {r3-r7, lr}
+ add r4, r1, #0x0
+ add r7, r0, #0x0
+ add r0, r4, #0x0
+ mov r1, #0xc
+ bl FUN_02016998
+ add r6, r0, #0x0
+ bne _02020C5A
+ bl ErrorHandling
+_02020C5A:
+ add r0, r4, #0x0
+ lsl r1, r7, #0x3
+ bl FUN_02016998
+ str r0, [r6, #0x0]
+ cmp r0, #0x0
+ bne _02020C6C
+ bl ErrorHandling
+_02020C6C:
+ mov r4, #0x0
+ cmp r7, #0x0
+ ble _02020C84
+ add r5, r4, #0x0
+_02020C74:
+ ldr r0, [r6, #0x0]
+ add r0, r0, r5
+ bl FUN_02020E78
+ add r4, r4, #0x1
+ add r5, #0x8
+ cmp r4, r7
+ blt _02020C74
+_02020C84:
+ str r7, [r6, #0x4]
+ mov r0, #0x0
+ str r0, [r6, #0x8]
+ add r0, r6, #0x0
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_02020C90
+FUN_02020C90: ; 0x02020C90
+ push {r4, lr}
+ add r4, r0, #0x0
+ bne _02020C9A
+ bl ErrorHandling
+_02020C9A:
+ add r0, r4, #0x0
+ bl FUN_02020D9C
+ ldr r0, [r4, #0x0]
+ bl FUN_02016A18
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02020CB0
+FUN_02020CB0: ; 0x02020CB0
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ cmp r5, #0x0
+ bne _02020CBE
+ bl ErrorHandling
+_02020CBE:
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_02020DD8
+ cmp r0, #0x0
+ bne _02020CCE
+ mov r0, #0x1
+ pop {r3-r5, pc}
+_02020CCE:
+ mov r0, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_02020CD4
+FUN_02020CD4: ; 0x02020CD4
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ add r7, r1, #0x0
+ add r6, r2, #0x0
+ cmp r5, #0x0
+ bne _02020CE4
+ bl ErrorHandling
+_02020CE4:
+ add r0, r5, #0x0
+ bl FUN_02020E48
+ add r4, r0, #0x0
+ bne _02020CF2
+ bl ErrorHandling
+_02020CF2:
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ bl FUN_02020CB0
+ cmp r0, #0x1
+ beq _02020D02
+ bl ErrorHandling
+_02020D02:
+ str r7, [r4, #0x4]
+ str r6, [r4, #0x0]
+ ldr r0, [r5, #0x8]
+ add r0, r0, #0x1
+ str r0, [r5, #0x8]
+ add r0, r4, #0x0
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_02020D10
+FUN_02020D10: ; 0x02020D10
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ add r6, r1, #0x0
+ add r7, r2, #0x0
+ str r3, [sp, #0x0]
+ cmp r5, #0x0
+ bne _02020D22
+ bl ErrorHandling
+_02020D22:
+ cmp r6, #0x0
+ bne _02020D2A
+ bl ErrorHandling
+_02020D2A:
+ add r0, r5, #0x0
+ bl FUN_02020E48
+ add r4, r0, #0x0
+ bne _02020D38
+ bl ErrorHandling
+_02020D38:
+ add r0, r5, #0x0
+ add r1, r7, #0x0
+ bl FUN_02020CB0
+ cmp r0, #0x1
+ beq _02020D48
+ bl ErrorHandling
+_02020D48:
+ ldr r0, [sp, #0x0]
+ add r1, r6, #0x0
+ bl FUN_020161A4
+ str r0, [r4, #0x4]
+ cmp r0, #0x0
+ bne _02020D5A
+ bl ErrorHandling
+_02020D5A:
+ str r7, [r4, #0x0]
+ ldr r0, [r5, #0x8]
+ add r0, r0, #0x1
+ str r0, [r5, #0x8]
+ add r0, r4, #0x0
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_02020D68
+FUN_02020D68: ; 0x02020D68
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ cmp r5, #0x0
+ bne _02020D76
+ bl ErrorHandling
+_02020D76:
+ cmp r4, #0x0
+ bne _02020D7E
+ bl ErrorHandling
+_02020D7E:
+ ldr r0, [r4, #0x4]
+ cmp r0, #0x0
+ beq _02020D8C
+ bl FUN_02016A18
+ mov r0, #0x0
+ str r0, [r4, #0x4]
+_02020D8C:
+ mov r0, #0x0
+ mvn r0, r0
+ str r0, [r4, #0x0]
+ ldr r0, [r5, #0x8]
+ sub r0, r0, #0x1
+ str r0, [r5, #0x8]
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_02020D9C
+FUN_02020D9C: ; 0x02020D9C
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ bne _02020DA6
+ bl ErrorHandling
+_02020DA6:
+ ldr r0, [r5, #0x0]
+ cmp r0, #0x0
+ bne _02020DB0
+ bl ErrorHandling
+_02020DB0:
+ ldr r0, [r5, #0x4]
+ mov r6, #0x0
+ cmp r0, #0x0
+ ble _02020DD6
+ add r4, r6, #0x0
+ sub r7, r6, #0x1
+_02020DBC:
+ ldr r1, [r5, #0x0]
+ ldr r0, [r1, r4]
+ cmp r0, r7
+ beq _02020DCC
+ add r0, r5, #0x0
+ add r1, r1, r4
+ bl FUN_02020D68
+_02020DCC:
+ ldr r0, [r5, #0x4]
+ add r6, r6, #0x1
+ add r4, #0x8
+ cmp r6, r0
+ blt _02020DBC
+_02020DD6:
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_02020DD8
+FUN_02020DD8: ; 0x02020DD8
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ cmp r5, #0x0
+ bne _02020DE6
+ bl ErrorHandling
+_02020DE6:
+ ldr r6, [r5, #0x4]
+ mov r1, #0x0
+ cmp r6, #0x0
+ ble _02020E06
+ ldr r3, [r5, #0x0]
+ add r2, r3, #0x0
+_02020DF2:
+ ldr r0, [r2, #0x0]
+ cmp r4, r0
+ bne _02020DFE
+ lsl r0, r1, #0x3
+ add r0, r3, r0
+ pop {r4-r6, pc}
+_02020DFE:
+ add r1, r1, #0x1
+ add r2, #0x8
+ cmp r1, r6
+ blt _02020DF2
+_02020E06:
+ mov r0, #0x0
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_02020E0C
+FUN_02020E0C: ; 0x02020E0C
+ push {r4, lr}
+ add r4, r0, #0x0
+ bne _02020E16
+ bl ErrorHandling
+_02020E16:
+ ldr r0, [r4, #0x4]
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02020E1C
+FUN_02020E1C: ; 0x02020E1C
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ cmp r5, #0x0
+ bne _02020E2A
+ bl ErrorHandling
+_02020E2A:
+ ldr r0, [r5, #0x4]
+ cmp r0, #0x0
+ beq _02020E34
+ bl FUN_02016A18
+_02020E34:
+ str r4, [r5, #0x4]
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_02020E38
+FUN_02020E38: ; 0x02020E38
+ push {r4, lr}
+ add r4, r0, #0x0
+ bne _02020E42
+ bl ErrorHandling
+_02020E42:
+ ldr r0, [r4, #0x0]
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02020E48
+FUN_02020E48: ; 0x02020E48
+ push {r3-r5, lr}
+ add r4, r0, #0x0
+ bne _02020E52
+ bl ErrorHandling
+_02020E52:
+ ldr r5, [r4, #0x4]
+ mov r2, #0x0
+ cmp r5, #0x0
+ ble _02020E74
+ ldr r4, [r4, #0x0]
+ sub r0, r2, #0x1
+ add r3, r4, #0x0
+_02020E60:
+ ldr r1, [r3, #0x0]
+ cmp r1, r0
+ bne _02020E6C
+ lsl r0, r2, #0x3
+ add r0, r4, r0
+ pop {r3-r5, pc}
+_02020E6C:
+ add r2, r2, #0x1
+ add r3, #0x8
+ cmp r2, r5
+ blt _02020E60
+_02020E74:
+ mov r0, #0x0
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_02020E78
+FUN_02020E78: ; 0x02020E78
+ push {r4, lr}
+ add r4, r0, #0x0
+ bne _02020E82
+ bl ErrorHandling
+_02020E82:
+ mov r0, #0x0
+ mvn r0, r0
+ str r0, [r4, #0x0]
+ mov r0, #0x0
+ str r0, [r4, #0x4]
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02020E90
+FUN_02020E90: ; 0x02020E90
+ push {r3-r7, lr}
+ add r4, r1, #0x0
+ add r6, r0, #0x0
+ add r0, r4, #0x0
+ mov r1, #0x8
+ bl FUN_02016998
+ add r7, r0, #0x0
+ add r0, r6, #0x0
+ add r1, r4, #0x0
+ bl FUN_02020C44
+ mov r1, #0x18
+ str r0, [r7, #0x0]
+ add r0, r4, #0x0
+ mul r1, r6
+ bl FUN_02016998
+ mov r4, #0x0
+ str r0, [r7, #0x4]
+ cmp r6, #0x0
+ ble _02020ECE
+ add r5, r4, #0x0
+_02020EBE:
+ ldr r0, [r7, #0x4]
+ add r0, r0, r5
+ bl FUN_0202120C
+ add r4, r4, #0x1
+ add r5, #0x18
+ cmp r4, r6
+ blt _02020EBE
+_02020ECE:
+ add r0, r7, #0x0
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_02020ED4
+FUN_02020ED4: ; 0x02020ED4
+ push {r4, lr}
+ add r4, r0, #0x0
+ bne _02020EDE
+ bl ErrorHandling
+_02020EDE:
+ add r0, r4, #0x0
+ bl FUN_02021010
+ ldr r0, [r4, #0x0]
+ bl FUN_02020C90
+ ldr r0, [r4, #0x4]
+ bl FUN_02016A18
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ pop {r4, pc}
+
+ thumb_func_start FUN_02020EF8
+FUN_02020EF8: ; 0x02020EF8
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ cmp r5, #0x0
+ bne _02020F06
+ bl ErrorHandling
+_02020F06:
+ ldr r0, [r5, #0x0]
+ add r1, r4, #0x0
+ bl FUN_02020CB0
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_02020F10
+FUN_02020F10: ; 0x02020F10
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ add r6, r1, #0x0
+ add r7, r3, #0x0
+ str r2, [sp, #0x0]
+ cmp r5, #0x0
+ bne _02020F22
+ bl ErrorHandling
+_02020F22:
+ add r0, r5, #0x0
+ bl FUN_020211DC
+ add r4, r0, #0x0
+ strh r7, [r4, #0x16]
+ ldrh r0, [r4, #0x16]
+ cmp r0, #0x1
+ bne _02020F40
+ ldr r1, [sp, #0x18]
+ add r0, r6, #0x0
+ bl FUN_02021310
+ add r1, r0, #0x0
+ str r6, [r4, #0x10]
+ b _02020F46
+_02020F40:
+ mov r0, #0x0
+ add r1, r6, #0x0
+ str r0, [r4, #0x10]
+_02020F46:
+ ldr r0, [r5, #0x0]
+ ldr r2, [sp, #0x0]
+ bl FUN_02020CD4
+ str r0, [r4, #0x0]
+ add r0, r4, #0x0
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_02020F54
+FUN_02020F54: ; 0x02020F54
+ push {r3-r4, lr}
+ sub sp, #0x4
+ ldr r4, [sp, #0x10]
+ str r4, [sp, #0x0]
+ bl FUN_02020F10
+ add r4, r0, #0x0
+ bl FUN_02021174
+ add r0, r4, #0x0
+ add sp, #0x4
+ pop {r3-r4, pc}
+
+ thumb_func_start FUN_02020F6C
+FUN_02020F6C: ; 0x02020F6C
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ cmp r5, #0x0
+ bne _02020F7A
+ bl ErrorHandling
+_02020F7A:
+ cmp r4, #0x0
+ bne _02020F82
+ bl ErrorHandling
+_02020F82:
+ ldrh r0, [r4, #0x16]
+ cmp r0, #0x1
+ bne _02020F98
+ ldrh r0, [r4, #0x14]
+ cmp r0, #0x0
+ bne _02020F98
+ ldr r0, [r4, #0x10]
+ bl FUN_02016A18
+ mov r0, #0x0
+ strh r0, [r4, #0x16]
+_02020F98:
+ ldr r1, [r4, #0x0]
+ cmp r1, #0x0
+ beq _02020FA4
+ ldr r0, [r5, #0x0]
+ bl FUN_02020D68
+_02020FA4:
+ ldr r0, [r4, #0x4]
+ cmp r0, #0x0
+ beq _02020FB8
+ ldr r1, _02020FE8 ; =0x021064BC
+ ldr r1, [r1, #0x0]
+ blx r1
+ cmp r0, #0x0
+ beq _02020FB8
+ bl ErrorHandling
+_02020FB8:
+ ldr r0, [r4, #0x8]
+ cmp r0, #0x0
+ beq _02020FCC
+ ldr r1, _02020FE8 ; =0x021064BC
+ ldr r1, [r1, #0x0]
+ blx r1
+ cmp r0, #0x0
+ beq _02020FCC
+ bl ErrorHandling
+_02020FCC:
+ ldr r0, [r4, #0xc]
+ cmp r0, #0x0
+ beq _02020FE0
+ ldr r1, _02020FEC ; =0x021064C4
+ ldr r1, [r1, #0x0]
+ blx r1
+ cmp r0, #0x0
+ beq _02020FE0
+ bl ErrorHandling
+_02020FE0:
+ add r0, r4, #0x0
+ bl FUN_0202120C
+ pop {r3-r5, pc}
+ .balign 4
+_02020FE8: .word 0x021064BC
+_02020FEC: .word 0x021064C4
+
+ thumb_func_start FUN_02020FF0
+FUN_02020FF0: ; 0x02020FF0
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ cmp r5, #0x0
+ bne _02020FFE
+ bl ErrorHandling
+_02020FFE:
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_02021050
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_02020F6C
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_02021010
+FUN_02021010: ; 0x02021010
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ bne _0202101A
+ bl ErrorHandling
+_0202101A:
+ ldr r0, [r5, #0x4]
+ cmp r0, #0x0
+ bne _02021024
+ bl ErrorHandling
+_02021024:
+ ldr r0, [r5, #0x0]
+ mov r6, #0x0
+ ldr r0, [r0, #0x4]
+ cmp r0, #0x0
+ ble _0202104C
+ add r4, r6, #0x0
+_02021030:
+ ldr r1, [r5, #0x4]
+ ldr r0, [r1, r4]
+ cmp r0, #0x0
+ beq _02021040
+ add r0, r5, #0x0
+ add r1, r1, r4
+ bl FUN_02020F6C
+_02021040:
+ ldr r0, [r5, #0x0]
+ add r6, r6, #0x1
+ ldr r0, [r0, #0x4]
+ add r4, #0x18
+ cmp r6, r0
+ blt _02021030
+_0202104C:
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_02021050
+FUN_02021050: ; 0x02021050
+ push {r3-r7, lr}
+ add r6, r0, #0x0
+ add r7, r1, #0x0
+ cmp r6, #0x0
+ bne _0202105E
+ bl ErrorHandling
+_0202105E:
+ ldr r0, [r6, #0x0]
+ mov r4, #0x0
+ ldr r0, [r0, #0x4]
+ cmp r0, #0x0
+ ble _02021092
+ add r5, r4, #0x0
+_0202106A:
+ ldr r1, [r6, #0x4]
+ ldr r0, [r1, r5]
+ cmp r0, #0x0
+ beq _02021086
+ add r0, r1, r5
+ bl FUN_02021098
+ cmp r0, r7
+ bne _02021086
+ mov r0, #0x18
+ ldr r1, [r6, #0x4]
+ mul r0, r4
+ add r0, r1, r0
+ pop {r3-r7, pc}
+_02021086:
+ ldr r0, [r6, #0x0]
+ add r4, r4, #0x1
+ ldr r0, [r0, #0x4]
+ add r5, #0x18
+ cmp r4, r0
+ blt _0202106A
+_02021092:
+ mov r0, #0x0
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_02021098
+FUN_02021098: ; 0x02021098
+ push {r4, lr}
+ add r4, r0, #0x0
+ bne _020210A2
+ bl ErrorHandling
+_020210A2:
+ ldr r0, [r4, #0x0]
+ bl FUN_02020E38
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_020210AC
+FUN_020210AC: ; 0x020210AC
+ push {r4, lr}
+ add r4, r0, #0x0
+ bne _020210B6
+ bl ErrorHandling
+_020210B6:
+ add r0, r4, #0x0
+ bl FUN_02021220
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_020210C0
+FUN_020210C0: ; 0x020210C0
+ push {r4, lr}
+ add r4, r0, #0x0
+ bne _020210CA
+ bl ErrorHandling
+_020210CA:
+ ldrh r0, [r4, #0x14]
+ cmp r0, #0x0
+ beq _020210D4
+ bl ErrorHandling
+_020210D4:
+ ldr r0, [r4, #0xc]
+ cmp r0, #0x0
+ bne _020210E0
+ bl ErrorHandling
+ pop {r4, pc}
+_020210E0:
+ add r0, r4, #0x0
+ bl FUN_02021230
+ add r1, r4, #0x0
+ bl FUN_020212B8
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_020210F0
+FUN_020210F0: ; 0x020210F0
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ cmp r5, #0x0
+ bne _020210FE
+ bl ErrorHandling
+_020210FE:
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_02021050
+ bl FUN_020210C0
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_0202110C
+FUN_0202110C: ; 0x0202110C
+ push {r4, lr}
+ add r4, r0, #0x0
+ bne _02021116
+ bl ErrorHandling
+_02021116:
+ ldrh r0, [r4, #0x16]
+ cmp r0, #0x0
+ bne _02021122
+ bl ErrorHandling
+ pop {r4, pc}
+_02021122:
+ ldrh r0, [r4, #0x14]
+ cmp r0, #0x0
+ beq _0202112E
+ bl ErrorHandling
+ pop {r4, pc}
+_0202112E:
+ add r0, r4, #0x0
+ bl FUN_02021230
+ bl FUN_020212F8
+ add r0, r4, #0x0
+ bl FUN_02021220
+ ldr r1, [r4, #0x4]
+ ldr r2, [r4, #0x8]
+ ldr r3, [r4, #0xc]
+ bl FUN_020212E4
+ ldr r0, [r4, #0x10]
+ bl FUN_02016A18
+ mov r0, #0x0
+ str r0, [r4, #0x10]
+ mov r0, #0x1
+ strh r0, [r4, #0x14]
+ pop {r4, pc}
+
+ thumb_func_start FUN_02021158
+FUN_02021158: ; 0x02021158
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ cmp r5, #0x0
+ bne _02021166
+ bl ErrorHandling
+_02021166:
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_02021050
+ bl FUN_0202110C
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_02021174
+FUN_02021174: ; 0x02021174
+ push {r4, lr}
+ add r4, r0, #0x0
+ bne _0202117E
+ bl ErrorHandling
+_0202117E:
+ ldrh r0, [r4, #0x14]
+ cmp r0, #0x0
+ beq _02021188
+ bl ErrorHandling
+_02021188:
+ ldr r0, [r4, #0xc]
+ cmp r0, #0x0
+ beq _02021194
+ bl ErrorHandling
+ pop {r4, pc}
+_02021194:
+ add r0, r4, #0x0
+ bl FUN_02021230
+ add r2, r4, #0x0
+ add r1, r4, #0x4
+ add r4, #0xc
+ add r2, #0x8
+ add r3, r4, #0x0
+ bl FUN_02021248
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_020211AC
+FUN_020211AC: ; 0x020211AC
+ push {r4, lr}
+ add r4, r0, #0x0
+ bne _020211B6
+ bl ErrorHandling
+_020211B6:
+ ldr r0, [r4, #0x4]
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_020211BC
+FUN_020211BC: ; 0x020211BC
+ push {r4, lr}
+ add r4, r0, #0x0
+ bne _020211C6
+ bl ErrorHandling
+_020211C6:
+ ldr r0, [r4, #0x8]
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_020211CC
+FUN_020211CC: ; 0x020211CC
+ push {r4, lr}
+ add r4, r0, #0x0
+ bne _020211D6
+ bl ErrorHandling
+_020211D6:
+ ldr r0, [r4, #0xc]
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_020211DC
+FUN_020211DC: ; 0x020211DC
+ push {r3-r4}
+ ldr r1, [r0, #0x0]
+ mov r2, #0x0
+ ldr r4, [r1, #0x4]
+ cmp r4, #0x0
+ ble _02021204
+ ldr r3, [r0, #0x4]
+_020211EA:
+ ldr r1, [r3, #0x0]
+ cmp r1, #0x0
+ bne _020211FC
+ ldr r1, [r0, #0x4]
+ mov r0, #0x18
+ mul r0, r2
+ add r0, r1, r0
+ pop {r3-r4}
+ bx lr
+_020211FC:
+ add r2, r2, #0x1
+ add r3, #0x18
+ cmp r2, r4
+ blt _020211EA
+_02021204:
+ mov r0, #0x0
+ pop {r3-r4}
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_0202120C
+FUN_0202120C: ; 0x0202120C
+ mov r1, #0x0
+ str r1, [r0, #0x0]
+ str r1, [r0, #0x4]
+ str r1, [r0, #0x8]
+ str r1, [r0, #0xc]
+ strh r1, [r0, #0x14]
+ str r1, [r0, #0x10]
+ strh r1, [r0, #0x14]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02021220
+FUN_02021220: ; 0x02021220
+ push {r3, lr}
+ ldr r0, [r0, #0x0]
+ bl FUN_02020E0C
+ blx FUN_020BC0FC
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_02021230
+FUN_02021230: ; 0x02021230
+ push {r3, lr}
+ ldrh r1, [r0, #0x16]
+ cmp r1, #0x0
+ bne _02021240
+ ldr r0, [r0, #0x0]
+ bl FUN_02020E0C
+ b _02021242
+_02021240:
+ ldr r0, [r0, #0x10]
+_02021242:
+ blx FUN_020BC0FC
+ pop {r3, pc}
+
+ thumb_func_start FUN_02021248
+FUN_02021248: ; 0x02021248
+ push {r4-r7, lr}
+ sub sp, #0xc
+ add r5, r0, #0x0
+ str r1, [sp, #0x0]
+ str r2, [sp, #0x4]
+ str r3, [sp, #0x8]
+ blx FUN_020B7E1C
+ add r7, r0, #0x0
+ add r0, r5, #0x0
+ blx FUN_020B7E10
+ add r6, r0, #0x0
+ add r0, r5, #0x0
+ blx FUN_020B7CE4
+ add r4, r0, #0x0
+ cmp r7, #0x0
+ beq _0202127E
+ ldr r3, _020212B0 ; =0x021064B8
+ mov r1, #0x0
+ ldr r3, [r3, #0x0]
+ add r0, r7, #0x0
+ add r2, r1, #0x0
+ blx r3
+ ldr r1, [sp, #0x0]
+ str r0, [r1, #0x0]
+_0202127E:
+ cmp r6, #0x0
+ beq _02021292
+ ldr r3, _020212B0 ; =0x021064B8
+ add r0, r6, #0x0
+ ldr r3, [r3, #0x0]
+ mov r1, #0x1
+ mov r2, #0x0
+ blx r3
+ ldr r1, [sp, #0x4]
+ str r0, [r1, #0x0]
+_02021292:
+ cmp r4, #0x0
+ beq _020212AC
+ ldr r3, _020212B4 ; =0x021064C0
+ mov r1, #0x2
+ ldrh r2, [r5, #0x20]
+ lsl r1, r1, #0xe
+ ldr r3, [r3, #0x0]
+ and r1, r2
+ add r0, r4, #0x0
+ mov r2, #0x0
+ blx r3
+ ldr r1, [sp, #0x8]
+ str r0, [r1, #0x0]
+_020212AC:
+ add sp, #0xc
+ pop {r4-r7, pc}
+ .balign 4
+_020212B0: .word 0x021064B8
+_020212B4: .word 0x021064C0
+
+ thumb_func_start FUN_020212B8
+FUN_020212B8: ; 0x020212B8
+ push {r4, lr}
+ add r3, r1, #0x0
+ ldr r1, [r3, #0x4]
+ ldr r2, [r3, #0x8]
+ ldr r3, [r3, #0xc]
+ add r4, r0, #0x0
+ bl FUN_020212E4
+ ldr r1, [r4, #0x4]
+ add r0, r4, #0x0
+ blx DC_FlushRange
+ add r0, r4, #0x0
+ mov r1, #0x1
+ blx FUN_020B7D28
+ add r0, r4, #0x0
+ mov r1, #0x1
+ blx FUN_020B7C78
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_020212E4
+FUN_020212E4: ; 0x020212E4
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r3, #0x0
+ blx FUN_020B7DFC
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ blx FUN_020B7CDC
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_020212F8
+FUN_020212F8: ; 0x020212F8
+ push {r4, lr}
+ sub sp, #0x8
+ add r4, r0, #0x0
+ add r1, sp, #0x4
+ add r2, sp, #0x0
+ blx FUN_020B7CF0
+ add r0, r4, #0x0
+ blx FUN_020B7C58
+ add sp, #0x8
+ pop {r4, pc}
+
+ thumb_func_start FUN_02021310
+FUN_02021310: ; 0x02021310
+ push {r4-r6, lr}
+ add r6, r0, #0x0
+ add r4, r1, #0x0
+ bl FUN_02021334
+ add r5, r0, #0x0
+ add r0, r4, #0x0
+ add r1, r5, #0x0
+ bl FUN_02016998
+ add r1, r6, #0x0
+ add r2, r5, #0x0
+ add r4, r0, #0x0
+ blx memcpy
+ add r0, r4, #0x0
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_02021334
+FUN_02021334: ; 0x02021334
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ blx FUN_020BC0FC
+ add r4, r0, #0x0
+ bne _02021344
+ bl ErrorHandling
+_02021344:
+ ldr r0, [r4, #0x14]
+ add r0, r4, r0
+ sub r0, r0, r5
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_0202134C
+FUN_0202134C: ; 0x0202134C
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ blx FUN_020B33A0
+ add r5, #0x80
+ str r4, [r5, #0x0]
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_0202135C
+FUN_0202135C: ; 0x0202135C
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ add r6, r2, #0x0
+ add r7, r3, #0x0
+ blx FUN_020B3334
+ add r2, r5, #0x0
+ ldmia r4!, {r0-r1}
+ stmia r2!, {r0-r1}
+ ldmia r4!, {r0-r1}
+ stmia r2!, {r0-r1}
+ str r6, [r5, #0x28]
+ ldr r0, [sp, #0x18]
+ str r7, [r5, #0x2c]
+ str r0, [r5, #0x34]
+ ldr r0, [sp, #0x1c]
+ str r0, [r5, #0x14]
+ ldr r0, [sp, #0x20]
+ cmp r0, #0x0
+ beq _0202138C
+ add r1, r5, #0x0
+ blx FUN_020B3390
+_0202138C:
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_02021390
+FUN_02021390: ; 0x02021390
+ add r3, r0, #0x0
+ add r2, r1, #0x0
+ ldmia r2!, {r0-r1}
+ stmia r3!, {r0-r1}
+ ldmia r2!, {r0-r1}
+ stmia r3!, {r0-r1}
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_020213A0
+FUN_020213A0: ; 0x020213A0
+ push {r3-r7, lr}
+ sub sp, #0x60
+ add r5, r1, #0x0
+ add r6, r2, #0x0
+ ldr r4, [r5, #0x10]
+ ldr r3, [r6, #0x0]
+ add r2, r0, #0x0
+ sub r3, r4, r3
+ ldrh r1, [r0, #0x2]
+ mov r0, #0x3f
+ str r3, [sp, #0x18]
+ and r0, r1
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ lsl r0, r0, #0x1a
+ ldr r4, [r5, #0x14]
+ ldr r3, [r6, #0x4]
+ add r2, #0x8
+ sub r3, r4, r3
+ str r3, [sp, #0x14]
+ asr r3, r1, #0xb
+ mov r1, #0x1
+ and r1, r3
+ lsr r0, r0, #0x18
+ cmp r1, #0x1
+ bne _020213F4
+ mov r0, #0x6
+ ldrsh r0, [r2, r0]
+ lsl r4, r0, #0xc
+ mov r0, #0x2
+ ldrsh r0, [r2, r0]
+ lsl r0, r0, #0xc
+ str r0, [sp, #0x10]
+ mov r0, #0x4
+ ldrsh r0, [r2, r0]
+ lsl r0, r0, #0xc
+ str r0, [sp, #0xc]
+ mov r0, #0x0
+ ldrsh r0, [r2, r0]
+ lsl r0, r0, #0xc
+ str r0, [sp, #0x8]
+ b _02021400
+_020213F4:
+ neg r1, r0
+ lsl r0, r0, #0xc
+ lsl r4, r1, #0xc
+ str r0, [sp, #0x10]
+ str r4, [sp, #0xc]
+ str r0, [sp, #0x8]
+_02021400:
+ ldr r0, [r5, #0xc]
+ str r0, [sp, #0x1c]
+ asr r0, r0, #0x1f
+ str r0, [sp, #0x20]
+ asr r0, r4, #0x1f
+ str r0, [sp, #0x24]
+ ldr r0, [r5, #0x4]
+ ldr r1, [sp, #0x24]
+ str r0, [sp, #0x28]
+ asr r0, r0, #0x1f
+ str r0, [sp, #0x2c]
+ ldr r2, [sp, #0x28]
+ ldr r3, [sp, #0x2c]
+ add r0, r4, #0x0
+ blx _ll_mul
+ add r7, r1, #0x0
+ str r0, [sp, #0x30]
+ ldr r1, [sp, #0x24]
+ ldr r2, [sp, #0x1c]
+ ldr r3, [sp, #0x20]
+ add r0, r4, #0x0
+ blx _ll_mul
+ add r2, r0, #0x0
+ add r3, r1, #0x0
+ mov r0, #0x2
+ ldr r1, [sp, #0x30]
+ mov r4, #0x0
+ lsl r0, r0, #0xa
+ add r0, r1, r0
+ adc r7, r4
+ lsl r1, r7, #0x14
+ lsr r0, r0, #0xc
+ orr r0, r1
+ mov r1, #0x2
+ lsl r1, r1, #0xa
+ add r2, r2, r1
+ adc r3, r4
+ lsl r1, r3, #0x14
+ lsr r2, r2, #0xc
+ orr r2, r1
+ add r1, r0, r2
+ ldr r0, [sp, #0x14]
+ ldr r2, [sp, #0x28]
+ add r0, r0, r1
+ str r0, [sp, #0x5c]
+ ldr r0, [sp, #0x10]
+ ldr r3, [sp, #0x2c]
+ asr r0, r0, #0x1f
+ str r0, [sp, #0x34]
+ ldr r0, [sp, #0x10]
+ ldr r1, [sp, #0x34]
+ blx _ll_mul
+ str r0, [sp, #0x38]
+ add r4, r1, #0x0
+ ldr r0, [sp, #0x10]
+ ldr r1, [sp, #0x34]
+ ldr r2, [sp, #0x1c]
+ ldr r3, [sp, #0x20]
+ blx _ll_mul
+ mov r2, #0x2
+ ldr r3, [sp, #0x38]
+ lsl r2, r2, #0xa
+ add r2, r3, r2
+ ldr r3, _0202158C ; =0x00000000
+ adc r4, r3
+ lsl r3, r4, #0x14
+ lsr r2, r2, #0xc
+ orr r2, r3
+ mov r3, #0x2
+ lsl r3, r3, #0xa
+ add r3, r0, r3
+ ldr r0, _0202158C ; =0x00000000
+ adc r1, r0
+ lsl r0, r1, #0x14
+ lsr r1, r3, #0xc
+ orr r1, r0
+ ldr r0, [sp, #0x14]
+ add r1, r2, r1
+ add r4, r0, r1
+ ldr r0, [r5, #0x8]
+ str r0, [sp, #0x3c]
+ asr r0, r0, #0x1f
+ str r0, [sp, #0x40]
+ ldr r0, [sp, #0xc]
+ asr r0, r0, #0x1f
+ str r0, [sp, #0x44]
+ ldr r0, [r5, #0x0]
+ ldr r1, [sp, #0x44]
+ str r0, [sp, #0x48]
+ asr r0, r0, #0x1f
+ str r0, [sp, #0x4c]
+ ldr r0, [sp, #0xc]
+ ldr r2, [sp, #0x48]
+ ldr r3, [sp, #0x4c]
+ blx _ll_mul
+ str r0, [sp, #0x50]
+ add r5, r1, #0x0
+ ldr r0, [sp, #0xc]
+ ldr r1, [sp, #0x44]
+ ldr r2, [sp, #0x3c]
+ ldr r3, [sp, #0x40]
+ blx _ll_mul
+ mov r2, #0x2
+ ldr r3, [sp, #0x50]
+ lsl r2, r2, #0xa
+ add r2, r3, r2
+ ldr r3, _0202158C ; =0x00000000
+ adc r5, r3
+ lsl r3, r5, #0x14
+ lsr r2, r2, #0xc
+ orr r2, r3
+ mov r3, #0x2
+ lsl r3, r3, #0xa
+ add r3, r0, r3
+ ldr r0, _0202158C ; =0x00000000
+ adc r1, r0
+ lsl r0, r1, #0x14
+ lsr r1, r3, #0xc
+ orr r1, r0
+ ldr r0, [sp, #0x18]
+ add r1, r2, r1
+ add r5, r0, r1
+ ldr r0, [sp, #0x8]
+ asr r0, r0, #0x1f
+ str r0, [sp, #0x54]
+ ldr r0, [sp, #0x8]
+ ldr r1, [sp, #0x54]
+ ldr r2, [sp, #0x48]
+ ldr r3, [sp, #0x4c]
+ blx _ll_mul
+ str r0, [sp, #0x58]
+ str r1, [sp, #0x4]
+ ldr r0, [sp, #0x8]
+ ldr r1, [sp, #0x54]
+ ldr r2, [sp, #0x3c]
+ ldr r3, [sp, #0x40]
+ blx _ll_mul
+ mov r12, r0
+ add r2, r1, #0x0
+ mov r0, #0x2
+ ldr r1, [sp, #0x58]
+ lsl r0, r0, #0xa
+ add r3, r1, r0
+ ldr r1, [sp, #0x4]
+ ldr r0, _0202158C ; =0x00000000
+ adc r1, r0
+ str r1, [sp, #0x4]
+ lsl r0, r1, #0x14
+ lsr r1, r3, #0xc
+ orr r1, r0
+ mov r0, #0x2
+ lsl r0, r0, #0xa
+ mov r3, r12
+ add r0, r3, r0
+ ldr r3, _0202158C ; =0x00000000
+ adc r2, r3
+ lsl r2, r2, #0x14
+ lsr r0, r0, #0xc
+ orr r0, r2
+ add r1, r1, r0
+ ldr r0, [sp, #0x18]
+ add r0, r0, r1
+ ldr r1, [sp, #0x5c]
+ cmp r4, r1
+ bge _02021560
+ add r1, r4, #0x0
+ ldr r4, [sp, #0x5c]
+ str r1, [sp, #0x5c]
+_02021560:
+ cmp r0, r5
+ bge _0202156A
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r5, r1, #0x0
+_0202156A:
+ cmp r4, #0x0
+ ble _02021586
+ ldr r2, [r6, #0xc]
+ ldr r1, [sp, #0x5c]
+ cmp r1, r2
+ bge _02021586
+ cmp r0, #0x0
+ ble _02021586
+ ldr r0, [r6, #0x8]
+ cmp r5, r0
+ bge _02021586
+ add sp, #0x60
+ mov r0, #0x1
+ pop {r3-r7, pc}
+_02021586:
+ mov r0, #0x0
+ add sp, #0x60
+ pop {r3-r7, pc}
+ .balign 4
+_0202158C: .word 0x00000000
+
+ thumb_func_start FUN_02021590
+FUN_02021590: ; 0x02021590
+ push {r3-r7, lr}
+ sub sp, #0x8
+ add r5, r0, #0x0
+ add r6, r1, #0x0
+ ldr r0, [sp, #0x20]
+ mov r1, #0x78
+ add r7, r2, #0x0
+ str r3, [sp, #0x4]
+ bl FUN_02016998
+ add r4, r0, #0x0
+ beq _020215C0
+ ldr r1, [sp, #0x20]
+ ldr r3, [sp, #0x4]
+ str r1, [sp, #0x0]
+ add r1, r5, #0x0
+ add r2, r6, #0x0
+ bl FUN_02021600
+ ldr r2, [sp, #0x20]
+ add r0, r4, #0x0
+ add r1, r7, #0x0
+ bl FUN_020216D4
+_020215C0:
+ add r0, r4, #0x0
+ add sp, #0x8
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_020215C8
+FUN_020215C8: ; 0x020215C8
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl FUN_02021728
+ add r0, r4, #0x0
+ bl FUN_020216B8
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_020215E0
+FUN_020215E0: ; 0x020215E0
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ ldr r1, [r5, #0x0]
+ add r6, r2, #0x0
+ cmp r1, r4
+ beq _020215FC
+ bl FUN_02021728
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ add r2, r6, #0x0
+ bl FUN_020216D4
+_020215FC:
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_02021600
+FUN_02021600: ; 0x02021600
+ push {r3-r6, lr}
+ sub sp, #0x4
+ add r5, r0, #0x0
+ add r0, r1, #0x0
+ ldr r1, [sp, #0x18]
+ add r4, r2, #0x0
+ add r6, r3, #0x0
+ bl FUN_02006670
+ str r0, [r5, #0x54]
+ cmp r0, #0x0
+ beq _020216A6
+ add r1, r5, #0x0
+ add r1, #0x5c
+ str r1, [sp, #0x0]
+ add r1, r4, #0x0
+ mov r2, #0x0
+ mov r3, #0x10
+ bl FUN_02006814
+ str r6, [r5, #0x6c]
+ cmp r6, #0x0
+ beq _02021638
+ mov r0, #0x0
+ str r0, [r5, #0x74]
+ ldr r0, _020216AC ; =FUN_0202192C
+ str r0, [r5, #0x70]
+ b _02021660
+_02021638:
+ ldr r0, [r5, #0x60]
+ cmp r0, #0x0
+ bne _02021642
+ bl ErrorHandling
+_02021642:
+ ldr r0, [sp, #0x18]
+ ldr r1, [r5, #0x64]
+ bl FUN_02016998
+ str r0, [r5, #0x74]
+ ldr r0, _020216B0 ; =FUN_02021924
+ add r1, r4, #0x0
+ str r0, [r5, #0x70]
+ ldr r0, [r5, #0x74]
+ str r0, [sp, #0x0]
+ ldr r0, [r5, #0x54]
+ ldr r2, [r5, #0x60]
+ ldr r3, [r5, #0x64]
+ bl FUN_02006814
+_02021660:
+ add r0, r5, #0x0
+ add r0, #0x6a
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x2
+ bhi _02021674
+ add r0, r5, #0x0
+ add r0, #0x6b
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x2
+ bls _02021678
+_02021674:
+ bl ErrorHandling
+_02021678:
+ add r0, r5, #0x0
+ add r0, #0x6a
+ ldrb r0, [r0, #0x0]
+ ldr r2, _020216B4 ; =0x020EE668
+ sub r0, r0, #0x1
+ lsl r3, r0, #0x1
+ add r0, r5, #0x0
+ add r0, #0x6b
+ ldrb r0, [r0, #0x0]
+ sub r1, r0, #0x1
+ add r0, r2, r3
+ ldrb r0, [r1, r0]
+ str r0, [r5, #0x8]
+ add r0, r5, #0x0
+ add r0, #0x6b
+ ldrb r1, [r0, #0x0]
+ add r0, r5, #0x0
+ add r0, #0x6a
+ ldrb r0, [r0, #0x0]
+ lsl r0, r0, #0x4
+ mul r0, r1
+ str r0, [r5, #0xc]
+ str r4, [r5, #0x58]
+_020216A6:
+ add sp, #0x4
+ pop {r3-r6, pc}
+ nop
+_020216AC: .word FUN_0202192C
+_020216B0: .word FUN_02021924
+_020216B4: .word 0x020EE668
+
+ thumb_func_start FUN_020216B8
+FUN_020216B8: ; 0x020216B8
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r0, [r4, #0x74]
+ cmp r0, #0x0
+ beq _020216C6
+ bl FUN_02016A18
+_020216C6:
+ ldr r0, [r4, #0x54]
+ cmp r0, #0x0
+ beq _020216D0
+ bl FUN_020066F4
+_020216D0:
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_020216D4
+FUN_020216D4: ; 0x020216D4
+ push {r3, lr}
+ add r3, r1, #0x0
+ add r1, r2, #0x0
+ str r3, [r0, #0x0]
+ ldr r2, _020216E8 ; =0x020EE66C
+ lsl r3, r3, #0x2
+ ldr r2, [r2, r3]
+ blx r2
+ pop {r3, pc}
+ nop
+_020216E8: .word 0x020EE66C
+
+ thumb_func_start FUN_020216EC
+FUN_020216EC: ; 0x020216EC
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ ldr r2, [r5, #0xc]
+ ldr r0, [r5, #0x64]
+ add r4, r2, #0x0
+ mul r4, r0
+ add r0, r1, #0x0
+ add r1, r4, #0x0
+ bl FUN_02016998
+ str r0, [r5, #0x10]
+ ldr r0, _02021718 ; =FUN_02021774
+ add r3, r4, #0x0
+ str r0, [r5, #0x4]
+ ldr r0, [r5, #0x10]
+ str r0, [sp, #0x0]
+ ldr r0, [r5, #0x54]
+ ldr r1, [r5, #0x58]
+ ldr r2, [r5, #0x5c]
+ bl FUN_02006814
+ pop {r3-r5, pc}
+ .balign 4
+_02021718: .word FUN_02021774
+
+ thumb_func_start FUN_0202171C
+FUN_0202171C: ; 0x0202171C
+ ldr r1, _02021724 ; =FUN_0202181C
+ str r1, [r0, #0x4]
+ bx lr
+ nop
+_02021724: .word FUN_0202181C
+
+ thumb_func_start FUN_02021728
+FUN_02021728: ; 0x02021728
+ push {r3, lr}
+ ldr r1, [r0, #0x0]
+ lsl r2, r1, #0x2
+ ldr r1, _02021738 ; =0x020EE674
+ ldr r1, [r1, r2]
+ blx r1
+ pop {r3, pc}
+ nop
+_02021738: .word 0x020EE674
+
+ thumb_func_start FUN_0202173C
+FUN_0202173C: ; 0x0202173C
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r0, [r4, #0x10]
+ bl FUN_02016A18
+ mov r0, #0x0
+ str r0, [r4, #0x10]
+ pop {r4, pc}
+
+ thumb_func_start FUN_0202174C
+FUN_0202174C: ; 0x0202174C
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02021750
+FUN_02021750: ; 0x02021750
+ push {r3, lr}
+ ldr r3, [r0, #0x64]
+ cmp r1, r3
+ bhi _02021764
+ sub r1, r1, #0x1
+ lsl r1, r1, #0x10
+ ldr r3, [r0, #0x4]
+ lsr r1, r1, #0x10
+ blx r3
+ pop {r3, pc}
+_02021764:
+ add r0, r2, #0x0
+ mov r1, #0x0
+ add r0, #0x80
+ strb r1, [r0, #0x0]
+ add r2, #0x81
+ strb r1, [r2, #0x0]
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_02021774
+FUN_02021774: ; 0x02021774
+ push {r3-r7, lr}
+ str r1, [sp, #0x0]
+ add r7, r0, #0x0
+ ldr r0, [sp, #0x0]
+ ldr r1, [r7, #0xc]
+ add r5, r0, #0x0
+ ldr r0, [r7, #0x8]
+ add r6, r2, #0x0
+ mul r5, r1
+ ldr r4, [r7, #0x10]
+ cmp r0, #0x3
+ bhi _02021802
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02021798: ; jump table (using 16-bit offset)
+ .short _020217A0 - _02021798 - 2; case 0
+ .short _020217AA - _02021798 - 2; case 1
+ .short _020217C0 - _02021798 - 2; case 2
+ .short _020217D6 - _02021798 - 2; case 3
+_020217A0:
+ add r0, r4, r5
+ add r1, r6, #0x0
+ bl FUN_0201C100
+ b _02021802
+_020217AA:
+ add r0, r4, r5
+ add r1, r6, #0x0
+ bl FUN_0201C100
+ add r0, r4, r5
+ add r1, r6, #0x0
+ add r0, #0x10
+ add r1, #0x40
+ bl FUN_0201C100
+ b _02021802
+_020217C0:
+ add r0, r4, r5
+ add r1, r6, #0x0
+ bl FUN_0201C100
+ add r0, r4, r5
+ add r1, r6, #0x0
+ add r0, #0x10
+ add r1, #0x20
+ bl FUN_0201C100
+ b _02021802
+_020217D6:
+ add r0, r4, r5
+ add r1, r6, #0x0
+ bl FUN_0201C100
+ add r0, r4, r5
+ add r1, r6, #0x0
+ add r0, #0x10
+ add r1, #0x20
+ bl FUN_0201C100
+ add r0, r4, r5
+ add r1, r6, #0x0
+ add r0, #0x20
+ add r1, #0x40
+ bl FUN_0201C100
+ add r0, r4, r5
+ add r1, r6, #0x0
+ add r0, #0x30
+ add r1, #0x60
+ bl FUN_0201C100
+_02021802:
+ ldr r1, [sp, #0x0]
+ ldr r2, [r7, #0x70]
+ add r0, r7, #0x0
+ blx r2
+ add r1, r6, #0x0
+ add r1, #0x80
+ add r7, #0x69
+ strb r0, [r1, #0x0]
+ ldrb r0, [r7, #0x0]
+ add r6, #0x81
+ strb r0, [r6, #0x0]
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_0202181C
+FUN_0202181C: ; 0x0202181C
+ push {r3-r7, lr}
+ add r4, r0, #0x0
+ ldr r6, [r4, #0xc]
+ add r0, #0x14
+ str r0, [sp, #0x0]
+ add r7, r1, #0x0
+ add r5, r2, #0x0
+ add r2, r7, #0x0
+ ldr r3, [r4, #0x5c]
+ mul r2, r6
+ add r2, r3, r2
+ ldr r0, [r4, #0x54]
+ ldr r1, [r4, #0x58]
+ add r3, r6, #0x0
+ bl FUN_02006814
+ ldr r0, [r4, #0x8]
+ cmp r0, #0x3
+ bhi _020218C0
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0202184E: ; jump table (using 16-bit offset)
+ .short _02021856 - _0202184E - 2; case 0
+ .short _02021862 - _0202184E - 2; case 1
+ .short _0202187A - _0202184E - 2; case 2
+ .short _02021892 - _0202184E - 2; case 3
+_02021856:
+ add r0, r4, #0x0
+ add r0, #0x14
+ add r1, r5, #0x0
+ bl FUN_0201C100
+ b _020218C0
+_02021862:
+ add r0, r4, #0x0
+ add r0, #0x14
+ add r1, r5, #0x0
+ bl FUN_0201C100
+ add r0, r4, #0x0
+ add r1, r5, #0x0
+ add r0, #0x24
+ add r1, #0x40
+ bl FUN_0201C100
+ b _020218C0
+_0202187A:
+ add r0, r4, #0x0
+ add r0, #0x14
+ add r1, r5, #0x0
+ bl FUN_0201C100
+ add r0, r4, #0x0
+ add r1, r5, #0x0
+ add r0, #0x24
+ add r1, #0x20
+ bl FUN_0201C100
+ b _020218C0
+_02021892:
+ add r0, r4, #0x0
+ add r0, #0x14
+ add r1, r5, #0x0
+ bl FUN_0201C100
+ add r0, r4, #0x0
+ add r1, r5, #0x0
+ add r0, #0x24
+ add r1, #0x20
+ bl FUN_0201C100
+ add r0, r4, #0x0
+ add r1, r5, #0x0
+ add r0, #0x34
+ add r1, #0x40
+ bl FUN_0201C100
+ add r0, r4, #0x0
+ add r1, r5, #0x0
+ add r0, #0x44
+ add r1, #0x60
+ bl FUN_0201C100
+_020218C0:
+ ldr r2, [r4, #0x70]
+ add r0, r4, #0x0
+ add r1, r7, #0x0
+ blx r2
+ add r1, r5, #0x0
+ add r1, #0x80
+ add r4, #0x69
+ strb r0, [r1, #0x0]
+ ldrb r0, [r4, #0x0]
+ add r5, #0x81
+ strb r0, [r5, #0x0]
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_020218D8
+FUN_020218D8: ; 0x020218D8
+ push {r3-r7, lr}
+ add r4, r1, #0x0
+ ldrh r1, [r4, #0x0]
+ add r5, r0, #0x0
+ ldr r0, _0202191C ; =0x0000FFFF
+ add r7, r2, #0x0
+ mov r6, #0x0
+ cmp r1, r0
+ beq _02021916
+_020218EA:
+ ldr r0, _02021920 ; =0x0000FFFE
+ cmp r1, r0
+ bne _02021900
+ add r0, r4, #0x0
+ bl FUN_0201B8B8
+ add r4, r0, #0x0
+ ldrh r1, [r4, #0x0]
+ ldr r0, _0202191C ; =0x0000FFFF
+ cmp r1, r0
+ beq _02021916
+_02021900:
+ ldr r2, [r5, #0x70]
+ add r0, r5, #0x0
+ sub r1, r1, #0x1
+ blx r2
+ add r4, r4, #0x2
+ add r0, r7, r0
+ add r6, r6, r0
+ ldrh r1, [r4, #0x0]
+ ldr r0, _0202191C ; =0x0000FFFF
+ cmp r1, r0
+ bne _020218EA
+_02021916:
+ sub r0, r6, r7
+ pop {r3-r7, pc}
+ nop
+_0202191C: .word 0x0000FFFF
+_02021920: .word 0x0000FFFE
+
+ thumb_func_start FUN_02021924
+FUN_02021924: ; 0x02021924
+ ldr r0, [r0, #0x74]
+ ldrb r0, [r0, r1]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_0202192C
+FUN_0202192C: ; 0x0202192C
+ add r0, #0x68
+ ldrb r0, [r0, #0x0]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02021934
+FUN_02021934: ; 0x02021934
+ push {r3-r7, lr}
+ add r5, r1, #0x0
+ ldrh r1, [r5, #0x0]
+ add r7, r0, #0x0
+ mov r4, #0x0
+ ldr r0, _02021994 ; =0x0000FFFF
+ add r6, r2, #0x0
+ str r4, [sp, #0x0]
+ cmp r1, r0
+ beq _02021986
+_02021948:
+ ldr r0, _02021998 ; =0x0000FFFE
+ cmp r1, r0
+ bne _02021958
+ add r0, r5, #0x0
+ bl FUN_0201B8B8
+ add r5, r0, #0x0
+ b _0202197E
+_02021958:
+ mov r0, #0xe
+ lsl r0, r0, #0xc
+ cmp r1, r0
+ bne _02021970
+ ldr r0, [sp, #0x0]
+ sub r1, r4, r6
+ cmp r0, r1
+ bhs _0202196A
+ str r1, [sp, #0x0]
+_0202196A:
+ mov r4, #0x0
+ add r5, r5, #0x2
+ b _0202197E
+_02021970:
+ ldr r2, [r7, #0x70]
+ add r0, r7, #0x0
+ sub r1, r1, #0x1
+ blx r2
+ add r0, r6, r0
+ add r4, r4, r0
+ add r5, r5, #0x2
+_0202197E:
+ ldrh r1, [r5, #0x0]
+ ldr r0, _02021994 ; =0x0000FFFF
+ cmp r1, r0
+ bne _02021948
+_02021986:
+ ldr r0, [sp, #0x0]
+ sub r1, r4, r6
+ cmp r0, r1
+ bhs _02021990
+ str r1, [sp, #0x0]
+_02021990:
+ ldr r0, [sp, #0x0]
+ pop {r3-r7, pc}
+ .balign 4
+_02021994: .word 0x0000FFFF
+_02021998: .word 0x0000FFFE
+
+ thumb_func_start FUN_0202199C
+FUN_0202199C: ; 0x0202199C
+ push {r3-r7, lr}
+ add r5, r1, #0x0
+ ldrh r1, [r5, #0x0]
+ add r6, r0, #0x0
+ ldr r0, _020219EC ; =0x0000FFFF
+ mov r4, #0x0
+ cmp r1, r0
+ beq _020219E8
+ sub r7, r0, #0x1
+_020219AE:
+ cmp r1, r7
+ bne _020219D4
+ add r0, r5, #0x0
+ bl FUN_0201B8E0
+ ldr r1, _020219F0 ; =0x00000203
+ cmp r0, r1
+ bne _020219CA
+ add r0, r5, #0x0
+ mov r1, #0x0
+ bl FUN_0201B914
+ add r4, r0, #0x0
+ sub r4, #0xc
+_020219CA:
+ add r0, r5, #0x0
+ bl FUN_0201B8B8
+ add r5, r0, #0x0
+ b _020219E0
+_020219D4:
+ ldr r2, [r6, #0x70]
+ add r0, r6, #0x0
+ sub r1, r1, #0x1
+ blx r2
+ add r4, r4, r0
+ add r5, r5, #0x2
+_020219E0:
+ ldrh r1, [r5, #0x0]
+ ldr r0, _020219EC ; =0x0000FFFF
+ cmp r1, r0
+ bne _020219AE
+_020219E8:
+ add r0, r4, #0x0
+ pop {r3-r7, pc}
+ .balign 4
+_020219EC: .word 0x0000FFFF
+_020219F0: .word 0x00000203
+
+ thumb_func_start FUN_020219F4
+FUN_020219F4: ; 0x020219F4
+ push {r4, lr}
+ add r4, r0, #0x0
+ add r0, r1, #0x0
+ lsl r1, r4, #0x1
+ add r1, #0xa
+ bl FUN_02016998
+ cmp r0, #0x0
+ beq _02021A14
+ ldr r1, _02021A18 ; =0xB6F8D2EC
+ str r1, [r0, #0x4]
+ strh r4, [r0, #0x0]
+ mov r1, #0x0
+ strh r1, [r0, #0x2]
+ ldr r1, _02021A1C ; =0x0000FFFF
+ strh r1, [r0, #0x8]
+_02021A14:
+ pop {r4, pc}
+ nop
+_02021A18: .word 0xB6F8D2EC
+_02021A1C: .word 0x0000FFFF
+
+ thumb_func_start FUN_02021A20
+FUN_02021A20: ; 0x02021A20
+ push {r4, lr}
+ add r4, r0, #0x0
+ bne _02021A2A
+ bl ErrorHandling
+_02021A2A:
+ ldr r1, [r4, #0x4]
+ ldr r0, _02021A44 ; =0xB6F8D2EC
+ cmp r1, r0
+ beq _02021A36
+ bl ErrorHandling
+_02021A36:
+ ldr r0, _02021A48 ; =0xB6F8D2ED
+ str r0, [r4, #0x4]
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ pop {r4, pc}
+ nop
+_02021A44: .word 0xB6F8D2EC
+_02021A48: .word 0xB6F8D2ED
+
+ thumb_func_start FUN_02021A4C
+FUN_02021A4C: ; 0x02021A4C
+ push {r4, lr}
+ add r4, r0, #0x0
+ bne _02021A56
+ bl ErrorHandling
+_02021A56:
+ ldr r1, [r4, #0x4]
+ ldr r0, _02021A6C ; =0xB6F8D2EC
+ cmp r1, r0
+ beq _02021A62
+ bl ErrorHandling
+_02021A62:
+ mov r0, #0x0
+ strh r0, [r4, #0x2]
+ ldr r0, _02021A70 ; =0x0000FFFF
+ strh r0, [r4, #0x8]
+ pop {r4, pc}
+ .balign 4
+_02021A6C: .word 0xB6F8D2EC
+_02021A70: .word 0x0000FFFF
+
+ thumb_func_start FUN_02021A74
+FUN_02021A74: ; 0x02021A74
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ cmp r5, #0x0
+ bne _02021A82
+ bl ErrorHandling
+_02021A82:
+ ldr r1, [r5, #0x4]
+ ldr r0, _02021AC8 ; =0xB6F8D2EC
+ cmp r1, r0
+ beq _02021A8E
+ bl ErrorHandling
+_02021A8E:
+ cmp r4, #0x0
+ bne _02021A96
+ bl ErrorHandling
+_02021A96:
+ ldr r1, [r4, #0x4]
+ ldr r0, _02021AC8 ; =0xB6F8D2EC
+ cmp r1, r0
+ beq _02021AA2
+ bl ErrorHandling
+_02021AA2:
+ ldrh r2, [r4, #0x2]
+ ldrh r0, [r5, #0x0]
+ cmp r0, r2
+ bls _02021AC0
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ add r2, r2, #0x1
+ add r0, #0x8
+ add r1, #0x8
+ lsl r2, r2, #0x1
+ blx memcpy
+ ldrh r0, [r4, #0x2]
+ strh r0, [r5, #0x2]
+ pop {r3-r5, pc}
+_02021AC0:
+ bl ErrorHandling
+ pop {r3-r5, pc}
+ nop
+_02021AC8: .word 0xB6F8D2EC
+
+ thumb_func_start FUN_02021ACC
+FUN_02021ACC: ; 0x02021ACC
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ cmp r5, #0x0
+ bne _02021ADA
+ bl ErrorHandling
+_02021ADA:
+ ldr r1, [r5, #0x4]
+ ldr r0, _02021B00 ; =0xB6F8D2EC
+ cmp r1, r0
+ beq _02021AE6
+ bl ErrorHandling
+_02021AE6:
+ ldrh r0, [r5, #0x2]
+ add r1, r4, #0x0
+ add r0, r0, #0x1
+ bl FUN_020219F4
+ add r4, r0, #0x0
+ beq _02021AFA
+ add r1, r5, #0x0
+ bl FUN_02021A74
+_02021AFA:
+ add r0, r4, #0x0
+ pop {r3-r5, pc}
+ nop
+_02021B00: .word 0xB6F8D2EC
+
+ thumb_func_start FUN_02021B04
+FUN_02021B04: ; 0x02021B04
+ push {r3-r7, lr}
+ sub sp, #0x8
+ add r5, r0, #0x0
+ ldr r0, [sp, #0x20]
+ add r6, r1, #0x0
+ add r7, r3, #0x0
+ str r2, [sp, #0x0]
+ str r0, [sp, #0x20]
+ cmp r5, #0x0
+ bne _02021B1C
+ bl ErrorHandling
+_02021B1C:
+ ldr r1, [r5, #0x4]
+ ldr r0, _02021C1C ; =0xB6F8D2EC
+ cmp r1, r0
+ beq _02021B28
+ bl ErrorHandling
+_02021B28:
+ cmp r6, #0x0
+ bge _02021B30
+ mov r4, #0x1
+ b _02021B32
+_02021B30:
+ mov r4, #0x0
+_02021B32:
+ ldr r0, [sp, #0x0]
+ ldrh r1, [r5, #0x0]
+ add r0, r0, r4
+ cmp r1, r0
+ bls _02021C14
+ ldr r0, [sp, #0x20]
+ cmp r0, #0x0
+ bne _02021B48
+ ldr r0, _02021C20 ; =0x020EE67C
+ str r0, [sp, #0x4]
+ b _02021B4C
+_02021B48:
+ ldr r0, _02021C24 ; =0x020EE690
+ str r0, [sp, #0x4]
+_02021B4C:
+ add r0, r5, #0x0
+ bl FUN_02021A4C
+ cmp r4, #0x0
+ beq _02021B74
+ mov r0, #0x0
+ mvn r0, r0
+ mul r6, r0
+ ldr r0, [sp, #0x20]
+ cmp r0, #0x0
+ bne _02021B66
+ mov r0, #0xf1
+ b _02021B68
+_02021B66:
+ ldr r0, _02021C28 ; =0x000001BE
+_02021B68:
+ ldrh r2, [r5, #0x2]
+ add r1, r2, #0x1
+ strh r1, [r5, #0x2]
+ lsl r1, r2, #0x1
+ add r1, r5, r1
+ strh r0, [r1, #0x8]
+_02021B74:
+ ldr r0, [sp, #0x0]
+ lsl r1, r0, #0x2
+ ldr r0, _02021C2C ; =0x020EE6A0
+ ldr r4, [r0, r1]
+ cmp r4, #0x0
+ beq _02021C06
+_02021B80:
+ add r0, r6, #0x0
+ add r1, r4, #0x0
+ blx _u32_div_f
+ lsl r0, r0, #0x10
+ lsr r1, r0, #0x10
+ add r0, r4, #0x0
+ mul r0, r1
+ sub r6, r6, r0
+ cmp r7, #0x2
+ bne _02021BB4
+ cmp r1, #0xa
+ bhs _02021BA2
+ ldr r0, [sp, #0x4]
+ lsl r1, r1, #0x1
+ ldrh r1, [r0, r1]
+ b _02021BA4
+_02021BA2:
+ mov r1, #0xe2
+_02021BA4:
+ ldrh r0, [r5, #0x2]
+ add r2, r0, #0x0
+ add r2, r2, #0x1
+ lsl r0, r0, #0x1
+ strh r2, [r5, #0x2]
+ add r0, r5, r0
+ strh r1, [r0, #0x8]
+ b _02021BFA
+_02021BB4:
+ cmp r1, #0x0
+ bne _02021BBC
+ cmp r4, #0x1
+ bne _02021BDC
+_02021BBC:
+ mov r7, #0x2
+ cmp r1, #0xa
+ bhs _02021BCA
+ ldr r0, [sp, #0x4]
+ lsl r1, r1, #0x1
+ ldrh r1, [r0, r1]
+ b _02021BCC
+_02021BCA:
+ mov r1, #0xe2
+_02021BCC:
+ ldrh r0, [r5, #0x2]
+ add r2, r0, #0x0
+ add r2, r2, #0x1
+ lsl r0, r0, #0x1
+ strh r2, [r5, #0x2]
+ add r0, r5, r0
+ strh r1, [r0, #0x8]
+ b _02021BFA
+_02021BDC:
+ cmp r7, #0x1
+ bne _02021BFA
+ ldr r0, [sp, #0x20]
+ cmp r0, #0x0
+ bne _02021BEA
+ mov r1, #0x1
+ b _02021BEC
+_02021BEA:
+ ldr r1, _02021C30 ; =0x000001E2
+_02021BEC:
+ ldrh r0, [r5, #0x2]
+ add r2, r0, #0x0
+ add r2, r2, #0x1
+ lsl r0, r0, #0x1
+ strh r2, [r5, #0x2]
+ add r0, r5, r0
+ strh r1, [r0, #0x8]
+_02021BFA:
+ add r0, r4, #0x0
+ mov r1, #0xa
+ blx _u32_div_f
+ add r4, r0, #0x0
+ bne _02021B80
+_02021C06:
+ ldrh r0, [r5, #0x2]
+ ldr r1, _02021C34 ; =0x0000FFFF
+ add sp, #0x8
+ lsl r0, r0, #0x1
+ add r0, r5, r0
+ strh r1, [r0, #0x8]
+ pop {r3-r7, pc}
+_02021C14:
+ bl ErrorHandling
+ add sp, #0x8
+ pop {r3-r7, pc}
+ .balign 4
+_02021C1C: .word 0xB6F8D2EC
+_02021C20: .word 0x020EE67C
+_02021C24: .word 0x020EE690
+_02021C28: .word 0x000001BE
+_02021C2C: .word 0x020EE6A0
+_02021C30: .word 0x000001E2
+_02021C34: .word 0x0000FFFF
+
+ thumb_func_start FUN_02021C38
+FUN_02021C38: ; 0x02021C38
+ push {r3-r7, lr}
+ sub sp, #0x10
+ str r1, [sp, #0x0]
+ mov r1, #0x0
+ str r1, [sp, #0x8]
+ str r1, [sp, #0xc]
+ add r5, r1, #0x0
+ ldrh r1, [r0, #0x2]
+ mov r7, #0x1
+ cmp r1, #0x12
+ bls _02021C56
+ ldr r0, [sp, #0x8]
+ add sp, #0x10
+ add r1, r0, #0x0
+ pop {r3-r7, pc}
+_02021C56:
+ sub r1, r1, #0x1
+ str r1, [sp, #0x4]
+ bmi _02021CCC
+ lsl r1, r1, #0x1
+ add r4, r0, r1
+_02021C60:
+ ldrh r6, [r4, #0x8]
+ mov r3, #0xa
+ mov r0, #0x0
+ add r1, r6, #0x0
+ sub r1, #0xa2
+ asr r2, r1, #0x1f
+ sub r3, r1, r3
+ mov r12, r2
+ mov r3, r12
+ sbc r3, r0
+ blo _02021C98
+ ldr r0, _02021CDC ; =0x00000121
+ mov r3, #0xa
+ sub r1, r6, r0
+ asr r2, r1, #0x1f
+ mov r0, #0x0
+ sub r3, r1, r3
+ mov r12, r2
+ mov r3, r12
+ sbc r3, r0
+ blo _02021C98
+ ldr r0, [sp, #0x0]
+ mov r1, #0x0
+ str r1, [r0, #0x0]
+ ldr r0, [sp, #0x8]
+ ldr r1, [sp, #0xc]
+ add sp, #0x10
+ pop {r3-r7, pc}
+_02021C98:
+ add r0, r1, #0x0
+ add r1, r2, #0x0
+ add r2, r7, #0x0
+ add r3, r5, #0x0
+ blx _ll_mul
+ add r2, r1, #0x0
+ ldr r1, [sp, #0x8]
+ add r0, r1, r0
+ str r0, [sp, #0x8]
+ ldr r0, [sp, #0xc]
+ adc r0, r2
+ str r0, [sp, #0xc]
+ add r0, r7, #0x0
+ add r1, r5, #0x0
+ mov r2, #0xa
+ mov r3, #0x0
+ blx _ll_mul
+ add r7, r0, #0x0
+ ldr r0, [sp, #0x4]
+ add r5, r1, #0x0
+ sub r4, r4, #0x2
+ sub r0, r0, #0x1
+ str r0, [sp, #0x4]
+ bpl _02021C60
+_02021CCC:
+ ldr r0, [sp, #0x0]
+ mov r1, #0x1
+ str r1, [r0, #0x0]
+ ldr r0, [sp, #0x8]
+ ldr r1, [sp, #0xc]
+ add sp, #0x10
+ pop {r3-r7, pc}
+ nop
+_02021CDC: .word 0x00000121
+
+ thumb_func_start FUN_02021CE0
+FUN_02021CE0: ; 0x02021CE0
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ cmp r5, #0x0
+ bne _02021CEE
+ bl ErrorHandling
+_02021CEE:
+ ldr r1, [r5, #0x4]
+ ldr r0, _02021D34 ; =0xB6F8D2EC
+ cmp r1, r0
+ beq _02021CFA
+ bl ErrorHandling
+_02021CFA:
+ cmp r4, #0x0
+ bne _02021D02
+ bl ErrorHandling
+_02021D02:
+ ldr r1, [r4, #0x4]
+ ldr r0, _02021D34 ; =0xB6F8D2EC
+ cmp r1, r0
+ beq _02021D0E
+ bl ErrorHandling
+_02021D0E:
+ ldrh r1, [r5, #0x8]
+ ldrh r0, [r4, #0x8]
+ cmp r1, r0
+ bne _02021D2E
+ ldr r0, _02021D38 ; =0x0000FFFF
+_02021D18:
+ ldrh r1, [r5, #0x8]
+ cmp r1, r0
+ bne _02021D22
+ mov r0, #0x0
+ pop {r3-r5, pc}
+_02021D22:
+ add r5, r5, #0x2
+ add r4, r4, #0x2
+ ldrh r2, [r5, #0x8]
+ ldrh r1, [r4, #0x8]
+ cmp r2, r1
+ beq _02021D18
+_02021D2E:
+ mov r0, #0x1
+ pop {r3-r5, pc}
+ nop
+_02021D34: .word 0xB6F8D2EC
+_02021D38: .word 0x0000FFFF
+
+ thumb_func_start FUN_02021D3C
+FUN_02021D3C: ; 0x02021D3C
+ push {r4, lr}
+ add r4, r0, #0x0
+ bne _02021D46
+ bl ErrorHandling
+_02021D46:
+ ldr r1, [r4, #0x4]
+ ldr r0, _02021D58 ; =0xB6F8D2EC
+ cmp r1, r0
+ beq _02021D52
+ bl ErrorHandling
+_02021D52:
+ ldrh r0, [r4, #0x2]
+ pop {r4, pc}
+ nop
+_02021D58: .word 0xB6F8D2EC
+
+ thumb_func_start FUN_02021D5C
+FUN_02021D5C: ; 0x02021D5C
+ push {r3-r5, lr}
+ add r4, r0, #0x0
+ bne _02021D66
+ bl ErrorHandling
+_02021D66:
+ ldr r1, [r4, #0x4]
+ ldr r0, _02021D98 ; =0xB6F8D2EC
+ cmp r1, r0
+ beq _02021D72
+ bl ErrorHandling
+_02021D72:
+ ldrh r1, [r4, #0x2]
+ mov r3, #0x0
+ mov r0, #0x1
+ cmp r1, #0x0
+ ble _02021D94
+ mov r1, #0xe
+ add r5, r4, #0x0
+ lsl r1, r1, #0xc
+_02021D82:
+ ldrh r2, [r5, #0x8]
+ cmp r2, r1
+ bne _02021D8A
+ add r0, r0, #0x1
+_02021D8A:
+ ldrh r2, [r4, #0x2]
+ add r3, r3, #0x1
+ add r5, r5, #0x2
+ cmp r3, r2
+ blt _02021D82
+_02021D94:
+ pop {r3-r5, pc}
+ nop
+_02021D98: .word 0xB6F8D2EC
+
+ thumb_func_start FUN_02021D9C
+FUN_02021D9C: ; 0x02021D9C
+ push {r3-r7, lr}
+ add r5, r1, #0x0
+ add r7, r0, #0x0
+ add r6, r2, #0x0
+ cmp r5, #0x0
+ bne _02021DAC
+ bl ErrorHandling
+_02021DAC:
+ ldr r1, [r5, #0x4]
+ ldr r0, _02021E24 ; =0xB6F8D2EC
+ cmp r1, r0
+ beq _02021DB8
+ bl ErrorHandling
+_02021DB8:
+ cmp r7, #0x0
+ bne _02021DC0
+ bl ErrorHandling
+_02021DC0:
+ ldr r1, [r7, #0x4]
+ ldr r0, _02021E24 ; =0xB6F8D2EC
+ cmp r1, r0
+ beq _02021DCC
+ bl ErrorHandling
+_02021DCC:
+ mov r4, #0x0
+ cmp r6, #0x0
+ beq _02021DF6
+ ldrh r0, [r5, #0x2]
+ cmp r0, #0x0
+ ble _02021DF6
+ mov r1, #0xe
+ add r0, r5, #0x0
+ lsl r1, r1, #0xc
+_02021DDE:
+ ldrh r2, [r0, #0x8]
+ cmp r2, r1
+ bne _02021DEC
+ sub r6, r6, #0x1
+ bne _02021DEC
+ add r4, r4, #0x1
+ b _02021DF6
+_02021DEC:
+ ldrh r2, [r5, #0x2]
+ add r4, r4, #0x1
+ add r0, r0, #0x2
+ cmp r4, r2
+ blt _02021DDE
+_02021DF6:
+ add r0, r7, #0x0
+ bl FUN_02021A4C
+ ldrh r0, [r5, #0x2]
+ cmp r4, r0
+ bge _02021E20
+ lsl r0, r4, #0x1
+ add r6, r5, r0
+_02021E06:
+ ldrh r1, [r6, #0x8]
+ mov r0, #0xe
+ lsl r0, r0, #0xc
+ cmp r1, r0
+ beq _02021E20
+ add r0, r7, #0x0
+ bl FUN_02021FB0
+ ldrh r0, [r5, #0x2]
+ add r4, r4, #0x1
+ add r6, r6, #0x2
+ cmp r4, r0
+ blt _02021E06
+_02021E20:
+ pop {r3-r7, pc}
+ nop
+_02021E24: .word 0xB6F8D2EC
+
+ thumb_func_start FUN_02021E28
+FUN_02021E28: ; 0x02021E28
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ cmp r5, #0x0
+ bne _02021E36
+ bl ErrorHandling
+_02021E36:
+ ldr r1, [r5, #0x4]
+ ldr r0, _02021E84 ; =0xB6F8D2EC
+ cmp r1, r0
+ beq _02021E42
+ bl ErrorHandling
+_02021E42:
+ mov r0, #0x0
+ strh r0, [r5, #0x2]
+ ldrh r1, [r4, #0x0]
+ ldr r0, _02021E88 ; =0x0000FFFF
+ cmp r1, r0
+ beq _02021E76
+ add r1, r0, #0x0
+_02021E50:
+ ldrh r2, [r5, #0x0]
+ ldrh r0, [r5, #0x2]
+ sub r2, r2, #0x1
+ cmp r0, r2
+ blt _02021E60
+ bl ErrorHandling
+ b _02021E76
+_02021E60:
+ add r2, r0, #0x0
+ add r2, r2, #0x1
+ strh r2, [r5, #0x2]
+ ldrh r2, [r4, #0x0]
+ lsl r0, r0, #0x1
+ add r0, r5, r0
+ add r4, r4, #0x2
+ strh r2, [r0, #0x8]
+ ldrh r0, [r4, #0x0]
+ cmp r0, r1
+ bne _02021E50
+_02021E76:
+ ldrh r0, [r5, #0x2]
+ ldr r1, _02021E88 ; =0x0000FFFF
+ lsl r0, r0, #0x1
+ add r0, r5, r0
+ strh r1, [r0, #0x8]
+ pop {r3-r5, pc}
+ nop
+_02021E84: .word 0xB6F8D2EC
+_02021E88: .word 0x0000FFFF
+
+ thumb_func_start FUN_02021E8C
+FUN_02021E8C: ; 0x02021E8C
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ add r7, r1, #0x0
+ add r4, r2, #0x0
+ cmp r5, #0x0
+ bne _02021E9C
+ bl ErrorHandling
+_02021E9C:
+ ldr r1, [r5, #0x4]
+ ldr r0, _02021EE8 ; =0xB6F8D2EC
+ cmp r1, r0
+ beq _02021EA8
+ bl ErrorHandling
+_02021EA8:
+ ldrh r0, [r5, #0x0]
+ cmp r4, r0
+ bhi _02021EE2
+ lsl r6, r4, #0x1
+ add r0, r5, #0x0
+ add r0, #0x8
+ add r1, r7, #0x0
+ add r2, r6, #0x0
+ blx memcpy
+ mov r2, #0x0
+ cmp r4, #0x0
+ bls _02021ED4
+ ldr r0, _02021EEC ; =0x0000FFFF
+ add r3, r5, #0x0
+_02021EC6:
+ ldrh r1, [r3, #0x8]
+ cmp r1, r0
+ beq _02021ED4
+ add r2, r2, #0x1
+ add r3, r3, #0x2
+ cmp r2, r4
+ blo _02021EC6
+_02021ED4:
+ strh r2, [r5, #0x2]
+ cmp r2, r4
+ bne _02021EE6
+ ldr r1, _02021EEC ; =0x0000FFFF
+ add r0, r5, r6
+ strh r1, [r0, #0x6]
+ pop {r3-r7, pc}
+_02021EE2:
+ bl ErrorHandling
+_02021EE6:
+ pop {r3-r7, pc}
+ .balign 4
+_02021EE8: .word 0xB6F8D2EC
+_02021EEC: .word 0x0000FFFF
+
+ thumb_func_start FUN_02021EF0
+FUN_02021EF0: ; 0x02021EF0
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ add r6, r1, #0x0
+ add r4, r2, #0x0
+ cmp r5, #0x0
+ bne _02021F00
+ bl ErrorHandling
+_02021F00:
+ ldr r1, [r5, #0x4]
+ ldr r0, _02021F28 ; =0xB6F8D2EC
+ cmp r1, r0
+ beq _02021F0C
+ bl ErrorHandling
+_02021F0C:
+ ldrh r0, [r5, #0x2]
+ add r2, r0, #0x1
+ cmp r2, r4
+ bhi _02021F22
+ add r5, #0x8
+ add r0, r6, #0x0
+ add r1, r5, #0x0
+ lsl r2, r2, #0x1
+ blx memcpy
+ pop {r4-r6, pc}
+_02021F22:
+ bl ErrorHandling
+ pop {r4-r6, pc}
+ .balign 4
+_02021F28: .word 0xB6F8D2EC
+
+ thumb_func_start FUN_02021F2C
+FUN_02021F2C: ; 0x02021F2C
+ push {r4, lr}
+ add r4, r0, #0x0
+ bne _02021F36
+ bl ErrorHandling
+_02021F36:
+ ldr r1, [r4, #0x4]
+ ldr r0, _02021F48 ; =0xB6F8D2EC
+ cmp r1, r0
+ beq _02021F42
+ bl ErrorHandling
+_02021F42:
+ add r4, #0x8
+ add r0, r4, #0x0
+ pop {r4, pc}
+ .balign 4
+_02021F48: .word 0xB6F8D2EC
+
+ thumb_func_start FUN_02021F4C
+FUN_02021F4C: ; 0x02021F4C
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ cmp r5, #0x0
+ bne _02021F5A
+ bl ErrorHandling
+_02021F5A:
+ ldr r1, [r5, #0x4]
+ ldr r0, _02021FAC ; =0xB6F8D2EC
+ cmp r1, r0
+ beq _02021F66
+ bl ErrorHandling
+_02021F66:
+ cmp r4, #0x0
+ bne _02021F6E
+ bl ErrorHandling
+_02021F6E:
+ ldr r1, [r4, #0x4]
+ ldr r0, _02021FAC ; =0xB6F8D2EC
+ cmp r1, r0
+ beq _02021F7A
+ bl ErrorHandling
+_02021F7A:
+ ldrh r2, [r4, #0x2]
+ ldrh r0, [r5, #0x2]
+ add r1, r0, r2
+ add r3, r1, #0x1
+ ldrh r1, [r5, #0x0]
+ cmp r3, r1
+ bgt _02021FA6
+ add r1, r5, #0x0
+ add r1, #0x8
+ lsl r0, r0, #0x1
+ add r0, r1, r0
+ add r1, r4, #0x0
+ add r2, r2, #0x1
+ add r1, #0x8
+ lsl r2, r2, #0x1
+ blx memcpy
+ ldrh r1, [r5, #0x2]
+ ldrh r0, [r4, #0x2]
+ add r0, r1, r0
+ strh r0, [r5, #0x2]
+ pop {r3-r5, pc}
+_02021FA6:
+ bl ErrorHandling
+ pop {r3-r5, pc}
+ .balign 4
+_02021FAC: .word 0xB6F8D2EC
+
+ thumb_func_start FUN_02021FB0
+FUN_02021FB0: ; 0x02021FB0
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ cmp r5, #0x0
+ bne _02021FBE
+ bl ErrorHandling
+_02021FBE:
+ ldr r1, [r5, #0x4]
+ ldr r0, _02021FF0 ; =0xB6F8D2EC
+ cmp r1, r0
+ beq _02021FCA
+ bl ErrorHandling
+_02021FCA:
+ ldrh r2, [r5, #0x2]
+ ldrh r0, [r5, #0x0]
+ add r1, r2, #0x1
+ cmp r1, r0
+ bge _02021FE8
+ lsl r0, r2, #0x1
+ strh r1, [r5, #0x2]
+ add r0, r5, r0
+ strh r4, [r0, #0x8]
+ ldrh r0, [r5, #0x2]
+ ldr r1, _02021FF4 ; =0x0000FFFF
+ lsl r0, r0, #0x1
+ add r0, r5, r0
+ strh r1, [r0, #0x8]
+ pop {r3-r5, pc}
+_02021FE8:
+ bl ErrorHandling
+ pop {r3-r5, pc}
+ nop
+_02021FF0: .word 0xB6F8D2EC
+_02021FF4: .word 0x0000FFFF
+
+ thumb_func_start FUN_02021FF8
+FUN_02021FF8: ; 0x02021FF8
+ push {r4, lr}
+ add r4, r0, #0x0
+ bne _02022002
+ bl ErrorHandling
+_02022002:
+ ldr r1, [r4, #0x4]
+ ldr r0, _02022028 ; =0xB6F8D2EC
+ cmp r1, r0
+ beq _0202200E
+ bl ErrorHandling
+_0202200E:
+ ldrh r0, [r4, #0x2]
+ cmp r0, #0x0
+ beq _02022026
+ ldrh r1, [r4, #0x8]
+ ldr r0, _0202202C ; =0x00000145
+ cmp r1, r0
+ blo _02022026
+ add r0, #0x19
+ cmp r1, r0
+ bhi _02022026
+ sub r1, #0x1a
+ strh r1, [r4, #0x8]
+_02022026:
+ pop {r4, pc}
+ .balign 4
+_02022028: .word 0xB6F8D2EC
+_0202202C: .word 0x00000145
+
+ thumb_func_start FUN_02022030
+FUN_02022030: ; 0x02022030
+ ldrh r1, [r0, #0x2]
+ cmp r1, #0x0
+ beq _02022044
+ ldrh r1, [r0, #0x8]
+ mov r0, #0xf1
+ lsl r0, r0, #0x8
+ cmp r1, r0
+ bne _02022044
+ mov r0, #0x1
+ bx lr
+_02022044:
+ mov r0, #0x0
+ bx lr
+
+ thumb_func_start FUN_02022048
+FUN_02022048: ; 0x02022048
+ push {r3-r7, lr}
+ add r4, r1, #0x0
+ str r0, [sp, #0x0]
+ add r0, r4, #0x0
+ bl FUN_02022030
+ cmp r0, #0x0
+ beq _020220B2
+ ldr r0, [sp, #0x0]
+ ldr r1, [sp, #0x0]
+ ldrh r0, [r0, #0x2]
+ add r1, #0x8
+ ldr r7, _020220BC ; =0x000001FF
+ lsl r0, r0, #0x1
+ add r3, r1, r0
+ mov r0, #0x0
+ add r4, #0xa
+ add r1, r0, #0x0
+_0202206C:
+ ldrh r2, [r4, #0x0]
+ asr r2, r0
+ and r2, r7
+ lsl r2, r2, #0x10
+ add r0, #0x9
+ lsr r2, r2, #0x10
+ cmp r0, #0xf
+ blt _02022094
+ add r4, r4, #0x2
+ sub r0, #0xf
+ beq _02022094
+ ldrh r6, [r4, #0x0]
+ mov r5, #0x9
+ sub r5, r5, r0
+ lsl r6, r5
+ ldr r5, _020220BC ; =0x000001FF
+ and r5, r6
+ orr r2, r5
+ lsl r2, r2, #0x10
+ lsr r2, r2, #0x10
+_02022094:
+ ldr r5, _020220BC ; =0x000001FF
+ cmp r2, r5
+ beq _020220A2
+ strh r2, [r3, #0x0]
+ add r3, r3, #0x2
+ add r1, r1, #0x1
+ b _0202206C
+_020220A2:
+ ldr r0, _020220C0 ; =0x0000FFFF
+ strh r0, [r3, #0x0]
+ ldr r0, [sp, #0x0]
+ ldrh r0, [r0, #0x2]
+ add r1, r0, r1
+ ldr r0, [sp, #0x0]
+ strh r1, [r0, #0x2]
+ pop {r3-r7, pc}
+_020220B2:
+ ldr r0, [sp, #0x0]
+ add r1, r4, #0x0
+ bl FUN_02021F4C
+ pop {r3-r7, pc}
+ .balign 4
+_020220BC: .word 0x000001FF
+_020220C0: .word 0x0000FFFF
+
+ thumb_func_start FUN_020220C4
+FUN_020220C4: ; 0x020220C4
+ push {r3-r7, lr}
+ add r7, r1, #0x0
+ add r5, r0, #0x0
+ add r6, r2, #0x0
+ str r3, [sp, #0x0]
+ cmp r7, #0x0
+ bne _020220D6
+ bl ErrorHandling
+_020220D6:
+ ldr r0, [sp, #0x18]
+ mov r1, #0x14
+ bl FUN_02016998
+ add r4, r0, #0x0
+ beq _0202211C
+ str r5, [r4, #0x0]
+ str r7, [r4, #0x4]
+ ldr r0, [sp, #0x0]
+ str r6, [r4, #0x8]
+ str r0, [r4, #0xc]
+ ldr r0, [sp, #0x18]
+ lsl r1, r7, #0x2
+ bl FUN_02016998
+ str r0, [r4, #0x10]
+ cmp r0, #0x0
+ beq _02022114
+ mov r6, #0x0
+ cmp r7, #0x0
+ bls _0202211C
+ add r5, r6, #0x0
+_02022102:
+ ldr r0, [r4, #0x10]
+ add r0, r0, r5
+ bl FUN_02022120
+ add r6, r6, #0x1
+ add r5, r5, #0x4
+ cmp r6, r7
+ blo _02022102
+ b _0202211C
+_02022114:
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ mov r4, #0x0
+_0202211C:
+ add r0, r4, #0x0
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_02022120
+FUN_02022120: ; 0x02022120
+ mov r1, #0x0
+ strb r1, [r0, #0x0]
+ strb r1, [r0, #0x1]
+ strh r1, [r0, #0x2]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_0202212C
+FUN_0202212C: ; 0x0202212C
+ push {r4, lr}
+ add r4, r0, #0x0
+ bne _02022136
+ bl ErrorHandling
+_02022136:
+ ldr r0, [r4, #0x10]
+ bl FUN_02016A18
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ pop {r4, pc}
+
+ thumb_func_start FUN_02022144
+FUN_02022144: ; 0x02022144
+ push {r3-r7, lr}
+ sub sp, #0x8
+ add r5, r0, #0x0
+ bl FUN_02020A98
+ str r0, [sp, #0x0]
+ cmp r0, #0x0
+ beq _02022190
+ bl FUN_02020AA4
+ str r0, [sp, #0x4]
+ ldr r0, [r5, #0x4]
+ mov r6, #0x0
+ cmp r0, #0x0
+ bls _020221AE
+ add r4, r6, #0x0
+_02022164:
+ ldr r0, [r5, #0x10]
+ add r0, r0, r4
+ ldrb r0, [r0, #0x1]
+ cmp r0, #0x0
+ ldr r0, [r5, #0x0]
+ beq _02022178
+ add r0, r0, r4
+ bl FUN_02020A40
+ b _0202217E
+_02022178:
+ add r0, r0, r4
+ bl FUN_02020A6C
+_0202217E:
+ ldr r1, [r5, #0x10]
+ add r6, r6, #0x1
+ add r1, r1, r4
+ strb r0, [r1, #0x1]
+ ldr r0, [r5, #0x4]
+ add r4, r4, #0x4
+ cmp r6, r0
+ blo _02022164
+ b _020221AE
+_02022190:
+ ldr r0, [r5, #0x4]
+ mov r3, #0x0
+ str r3, [sp, #0x4]
+ cmp r0, #0x0
+ bls _020221AE
+ add r2, r3, #0x0
+ add r1, r3, #0x0
+_0202219E:
+ ldr r0, [r5, #0x10]
+ add r3, r3, #0x1
+ add r0, r0, r2
+ strb r1, [r0, #0x1]
+ ldr r0, [r5, #0x4]
+ add r2, r2, #0x4
+ cmp r3, r0
+ blo _0202219E
+_020221AE:
+ mov r4, #0x0
+ cmp r0, #0x0
+ bls _020221E4
+ add r7, r4, #0x0
+_020221B6:
+ ldr r3, [r5, #0x10]
+ ldr r1, [sp, #0x0]
+ add r0, r3, r7
+ ldrb r3, [r3, r7]
+ ldr r2, [sp, #0x4]
+ lsl r6, r3, #0x2
+ ldr r3, _020221E8 ; =0x020EE6CC
+ ldr r3, [r3, r6]
+ blx r3
+ add r1, r0, #0x0
+ mov r0, #0x0
+ mvn r0, r0
+ cmp r1, r0
+ beq _020221DA
+ ldr r2, [r5, #0xc]
+ ldr r3, [r5, #0x8]
+ add r0, r4, #0x0
+ blx r3
+_020221DA:
+ ldr r0, [r5, #0x4]
+ add r4, r4, #0x1
+ add r7, r7, #0x4
+ cmp r4, r0
+ blo _020221B6
+_020221E4:
+ add sp, #0x8
+ pop {r3-r7, pc}
+ .balign 4
+_020221E8: .word 0x020EE6CC
+
+ thumb_func_start FUN_020221EC
+FUN_020221EC: ; 0x020221EC
+ push {r3, lr}
+ ldrb r1, [r0, #0x1]
+ cmp r1, #0x0
+ beq _02022202
+ cmp r2, #0x0
+ beq _02022202
+ mov r1, #0x1
+ bl FUN_0202223C
+ mov r0, #0x0
+ pop {r3, pc}
+_02022202:
+ mov r0, #0x0
+ mvn r0, r0
+ pop {r3, pc}
+
+ thumb_func_start FUN_02022208
+FUN_02022208: ; 0x02022208
+ push {r3, lr}
+ ldrb r2, [r0, #0x1]
+ cmp r2, #0x0
+ beq _02022220
+ ldrh r2, [r0, #0x2]
+ ldr r1, _02022238 ; =0x0000FFFF
+ cmp r2, r1
+ bhs _0202221C
+ add r1, r2, #0x1
+ strh r1, [r0, #0x2]
+_0202221C:
+ mov r0, #0x2
+ pop {r3, pc}
+_02022220:
+ cmp r1, #0x0
+ beq _0202222E
+ mov r1, #0x0
+ bl FUN_0202223C
+ mov r0, #0x3
+ pop {r3, pc}
+_0202222E:
+ mov r1, #0x0
+ bl FUN_0202223C
+ mov r0, #0x1
+ pop {r3, pc}
+ .balign 4
+_02022238: .word 0x0000FFFF
+
+ thumb_func_start FUN_0202223C
+FUN_0202223C: ; 0x0202223C
+ strb r1, [r0, #0x0]
+ mov r1, #0x0
+ strh r1, [r0, #0x2]
+ bx lr
+
+ thumb_func_start FUN_02022244
+FUN_02022244: ; 0x02022244
+ push {r3-r4}
+ ldr r3, [r0, #0xc]
+ mov r2, #0x0
+ sub r3, r3, #0x1
+ beq _02022262
+ ldr r4, [r0, #0x0]
+_02022250:
+ ldrh r3, [r4, #0x2]
+ cmp r3, r1
+ bhi _02022262
+ ldr r3, [r0, #0xc]
+ add r2, r2, #0x1
+ sub r3, r3, #0x1
+ add r4, r4, #0x2
+ cmp r2, r3
+ blo _02022250
+_02022262:
+ ldr r1, [r0, #0x4]
+ ldrb r3, [r1, r2]
+ add r1, sp, #0x0
+ strb r3, [r1, #0x0]
+ ldr r0, [r0, #0x8]
+ ldrb r2, [r0, r2]
+ strb r2, [r1, #0x1]
+ ldrb r0, [r1, #0x0]
+ lsl r1, r2, #0x8
+ orr r0, r1
+ pop {r3-r4}
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_0202227C
+FUN_0202227C: ; 0x0202227C
+ ldr r2, [r0, #0x0]
+ str r2, [r1, #0xc]
+ add r2, r0, #0x4
+ str r2, [r1, #0x0]
+ ldr r0, [r1, #0xc]
+ lsl r0, r0, #0x1
+ add r2, r2, r0
+ str r2, [r1, #0x4]
+ ldr r0, [r1, #0xc]
+ add r0, r2, r0
+ str r0, [r1, #0x8]
+ bx lr
+
+ thumb_func_start FUN_02022294
+FUN_02022294: ; 0x02022294
+ ldr r0, _020222A4 ; =0x021C59BC
+ mov r1, #0x0
+ str r1, [r0, #0x0]
+ str r1, [r0, #0x4]
+ str r1, [r0, #0x8]
+ ldr r0, _020222A8 ; =0x021C59BC
+ str r1, [r0, #0x0]
+ bx lr
+ .balign 4
+_020222A4: .word 0x021C59BC
+_020222A8: .word 0x021C59BC
+
+ thumb_func_start FUN_020222AC
+FUN_020222AC: ; 0x020222AC
+ ldr r3, _020222B0 ; =G3X_ResetMtxStack
+ bx r3
+ .balign 4
+_020222B0: .word G3X_ResetMtxStack
+
+ thumb_func_start FUN_020222B4
+FUN_020222B4: ; 0x020222B4
+ ldr r2, _020222C0 ; =0x021C59BC
+ str r0, [r2, #0x4]
+ str r1, [r2, #0x8]
+ mov r0, #0x1
+ str r0, [r2, #0x0]
+ bx lr
+ .balign 4
+_020222C0: .word 0x021C59BC
+
+ thumb_func_start FUN_020222C4
+FUN_020222C4: ; 0x020222C4
+ ldr r0, _020222E0 ; =0x021C59BC
+ ldr r1, [r0, #0x0]
+ cmp r1, #0x0
+ beq _020222DC
+ ldr r1, [r0, #0x8]
+ ldr r2, [r0, #0x4]
+ lsl r1, r1, #0x1
+ orr r2, r1
+ ldr r1, _020222E4 ; =0x04000540
+ str r2, [r1, #0x0]
+ mov r1, #0x0
+ str r1, [r0, #0x0]
+_020222DC:
+ bx lr
+ nop
+_020222E0: .word 0x021C59BC
+_020222E4: .word 0x04000540
+
+ thumb_func_start FUN_020222E8
+FUN_020222E8: ; 0x020222E8
+ mov r0, #0x5
+ lsl r0, r0, #0x18
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_020222F0
+FUN_020222F0: ; 0x020222F0
+ mov r0, #0x2
+ lsl r0, r0, #0x8
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_020222F8
+FUN_020222F8: ; 0x020222F8
+ ldr r0, _020222FC ; =0x05000400
+ bx lr
+ .balign 4
+_020222FC: .word 0x05000400
+
+ thumb_func_start FUN_02022300
+FUN_02022300: ; 0x02022300
+ mov r0, #0x2
+ lsl r0, r0, #0x8
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02022308
+FUN_02022308: ; 0x02022308
+ ldr r0, _0202230C ; =0x05000200
+ bx lr
+ .balign 4
+_0202230C: .word 0x05000200
+
+ thumb_func_start FUN_02022310
+FUN_02022310: ; 0x02022310
+ ldr r0, _02022314 ; =0x05000600
+ bx lr
+ .balign 4
+_02022314: .word 0x05000600
+
+ thumb_func_start FUN_02022318
+FUN_02022318: ; 0x02022318
+ push {r3-r7, lr}
+ sub sp, #0x8
+ add r7, r1, #0x0
+ mov r1, #0xc
+ add r6, r0, #0x0
+ add r5, r2, #0x0
+ str r3, [sp, #0x4]
+ bl FUN_02016998
+ add r4, r0, #0x0
+ str r6, [r4, #0x0]
+ blx FUN_020BB7F4
+ blx G3X_InitMtxStack
+ mov r1, #0x2
+ ldr r0, _020223B8 ; =0x04000540
+ cmp r7, #0x0
+ str r1, [r0, #0x0]
+ bne _02022364
+ lsl r0, r5, #0x7
+ blx FUN_020AFA28
+ add r6, r0, #0x0
+ ldr r0, [r4, #0x0]
+ add r1, r6, #0x0
+ bl FUN_02016998
+ str r0, [r4, #0x8]
+ mov r0, #0x1
+ str r0, [sp, #0x0]
+ ldr r2, [r4, #0x8]
+ lsl r0, r5, #0x11
+ mov r1, #0x0
+ add r3, r6, #0x0
+ blx FUN_020AF9C4
+ b _0202236E
+_02022364:
+ lsl r0, r5, #0x10
+ lsr r0, r0, #0x10
+ mov r1, #0x1
+ blx FUN_020AEB70
+_0202236E:
+ ldr r0, [sp, #0x4]
+ cmp r0, #0x0
+ bne _02022398
+ ldr r0, [sp, #0x20]
+ lsl r0, r0, #0x8
+ blx FUN_020AFBFC
+ add r5, r0, #0x0
+ ldr r0, [r4, #0x0]
+ add r1, r5, #0x0
+ bl FUN_02016998
+ str r0, [r4, #0x4]
+ ldr r0, [sp, #0x20]
+ ldr r1, [r4, #0x4]
+ lsl r0, r0, #0xd
+ add r2, r5, #0x0
+ mov r3, #0x1
+ blx FUN_020AFBA8
+ b _020223A4
+_02022398:
+ ldr r0, [sp, #0x20]
+ mov r1, #0x1
+ lsl r0, r0, #0x1d
+ lsr r0, r0, #0x10
+ blx FUN_020AEB70
+_020223A4:
+ ldr r0, [sp, #0x24]
+ cmp r0, #0x0
+ beq _020223AE
+ blx r0
+ b _020223B2
+_020223AE:
+ bl FUN_020223D4
+_020223B2:
+ add r0, r4, #0x0
+ add sp, #0x8
+ pop {r3-r7, pc}
+ .balign 4
+_020223B8: .word 0x04000540
+
+ thumb_func_start FUN_020223BC
+FUN_020223BC: ; 0x020223BC
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r0, [r4, #0x4]
+ bl FUN_02016A18
+ ldr r0, [r4, #0x8]
+ bl FUN_02016A18
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ pop {r4, pc}
+
+ thumb_func_start FUN_020223D4
+FUN_020223D4: ; 0x020223D4
+ push {r3, lr}
+ mov r0, #0x1
+ add r1, r0, #0x0
+ bl FUN_0201E6E4
+ ldr r0, _02022438 ; =0x04000008
+ mov r1, #0x3
+ ldrh r2, [r0, #0x0]
+ bic r2, r1
+ strh r2, [r0, #0x0]
+ add r0, #0x58
+ ldrh r2, [r0, #0x0]
+ ldr r1, _0202243C ; =0xFFFFCFFD
+ and r1, r2
+ strh r1, [r0, #0x0]
+ ldrh r1, [r0, #0x0]
+ ldr r2, _02022440 ; =0x0000CFEF
+ and r1, r2
+ strh r1, [r0, #0x0]
+ add r1, r2, #0x0
+ ldrh r3, [r0, #0x0]
+ add r1, #0xc
+ and r1, r3
+ strh r1, [r0, #0x0]
+ add r1, r2, #0x0
+ ldrh r3, [r0, #0x0]
+ add r1, #0x8
+ sub r2, #0x10
+ and r1, r3
+ strh r1, [r0, #0x0]
+ ldrh r1, [r0, #0x0]
+ and r1, r2
+ strh r1, [r0, #0x0]
+ mov r0, #0x0
+ add r1, r0, #0x0
+ add r2, r0, #0x0
+ add r3, r0, #0x0
+ blx G3X_SetFog
+ mov r0, #0x0
+ ldr r2, _02022444 ; =0x00007FFF
+ add r1, r0, #0x0
+ mov r3, #0x3f
+ str r0, [sp, #0x0]
+ blx G3X_SetClearColor
+ ldr r1, _02022448 ; =0xBFFF0000
+ ldr r0, _0202244C ; =0x04000580
+ str r1, [r0, #0x0]
+ pop {r3, pc}
+ .balign 4
+_02022438: .word 0x04000008
+_0202243C: .word 0xFFFFCFFD
+_02022440: .word 0x0000CFEF
+_02022444: .word 0x00007FFF
+_02022448: .word 0xBFFF0000
+_0202244C: .word 0x04000580
+
+ thumb_func_start FUN_02022450
+FUN_02022450: ; 0x02022450
+ push {r3, lr}
+ blx FS_IsAvailable
+ cmp r0, #0x0
+ bne _02022460
+ blx OS_Terminate
+ pop {r3, pc}
+_02022460:
+ ldr r0, _020224BC ; =0x027FF00C
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ bne _0202248A
+ blx CARD_Init
+ mov r2, #0x16
+ ldr r0, _020224C0 ; =0x027FFE00
+ ldr r1, _020224C4 ; =0x027FF000
+ lsl r2, r2, #0x4
+ blx MI_CpuCopy8
+ mov r2, #0x16
+ ldr r0, _020224C0 ; =0x027FFE00
+ ldr r1, _020224C8 ; =0x027FFA80
+ lsl r2, r2, #0x4
+ blx MI_CpuCopy8
+ ldr r1, _020224CC ; =0x4A414441
+ ldr r0, _020224BC ; =0x027FF00C
+ str r1, [r0, #0x0]
+_0202248A:
+ ldr r0, _020224D0 ; =0x020EE6D4
+ mov r1, #0x3
+ blx FS_FindArchive
+ ldr r1, _020224C4 ; =0x027FF000
+ ldr r2, [r1, #0x48]
+ str r2, [r0, #0x2c]
+ ldr r2, [r1, #0x4c]
+ str r2, [r0, #0x30]
+ ldr r2, [r1, #0x40]
+ str r2, [r0, #0x34]
+ ldr r2, [r1, #0x44]
+ str r2, [r0, #0x38]
+ ldr r2, [r1, #0xc]
+ ldr r0, _020224CC ; =0x4A414441
+ cmp r2, r0
+ bne _020224B4
+ ldrh r1, [r1, #0x10]
+ ldr r0, _020224D4 ; =0x00003130
+ cmp r1, r0
+ beq _020224B8
+_020224B4:
+ blx OS_Terminate
+_020224B8:
+ pop {r3, pc}
+ nop
+_020224BC: .word 0x027FF00C
+_020224C0: .word 0x027FFE00
+_020224C4: .word 0x027FF000
+_020224C8: .word 0x027FFA80
+_020224CC: .word 0x4A414441
+_020224D0: .word 0x020EE6D4
+_020224D4: .word 0x00003130
+
+ thumb_func_start FUN_020224D8
+FUN_020224D8: ; 0x020224D8
+ push {r4, lr}
+ sub sp, #0x48
+ add r4, r0, #0x0
+ add r0, sp, #0x0
+ blx FS_InitFile
+ add r0, sp, #0x0
+ add r1, r4, #0x0
+ blx FS_OpenFile
+ cmp r0, #0x0
+ beq _020224FC
+ ldr r1, [sp, #0x24]
+ ldr r0, _02022500 ; =0x027FFC2C
+ str r1, [r0, #0x0]
+ mov r0, #0x0
+ blx OS_ResetSystem
+_020224FC:
+ add sp, #0x48
+ pop {r4, pc}
+ .balign 4
+_02022500: .word 0x027FFC2C
+
+ thumb_func_start FUN_02022504
+FUN_02022504: ; 0x02022504
+ ldr r3, _0202250C ; =FUN_02022610
+ mov r1, #0x1b
+ bx r3
+ nop
+_0202250C: .word FUN_02022610
+
+ thumb_func_start FUN_02022510
+FUN_02022510: ; 0x02022510
+ ldr r3, _02022518 ; =FUN_02022610
+ mov r1, #0x23
+ bx r3
+ nop
+_02022518: .word FUN_02022610
+
+ thumb_func_start FUN_0202251C
+FUN_0202251C: ; 0x0202251C
+ ldr r3, _02022524 ; =FUN_02022610
+ mov r1, #0x1f
+ bx r3
+ nop
+_02022524: .word FUN_02022610
+
+ thumb_func_start FUN_02022528
+FUN_02022528: ; 0x02022528
+ ldr r3, _02022530 ; =FUN_02022610
+ mov r1, #0x20
+ bx r3
+ nop
+_02022530: .word FUN_02022610
+
+ thumb_func_start FUN_02022534
+FUN_02022534: ; 0x02022534
+ push {r3, lr}
+ add r3, r2, #0x0
+ mov r2, #0x0
+ bl FUN_02023408
+ pop {r3, pc}
+
+ thumb_func_start FUN_02022540
+FUN_02022540: ; 0x02022540
+ ldr r3, _02022548 ; =FUN_020232BC
+ add r2, r1, #0x0
+ mov r1, #0x0
+ bx r3
+ .balign 4
+_02022548: .word FUN_020232BC
+
+ thumb_func_start FUN_0202254C
+FUN_0202254C: ; 0x0202254C
+ push {r4, lr}
+ ldr r1, _020225E0 ; =0x000204A8
+ mov r0, #0x1
+ bl FUN_02016998
+ add r4, r0, #0x0
+ ldr r2, _020225E0 ; =0x000204A8
+ mov r0, #0x0
+ add r1, r4, #0x0
+ blx MIi_CpuClearFast
+ ldr r0, _020225E4 ; =0x021C59C8
+ str r4, [r0, #0x0]
+ bl FUN_02023570
+ str r0, [r4, #0x0]
+ mov r0, #0x0
+ str r0, [r4, #0x4]
+ mov r0, #0x1
+ str r0, [r4, #0x8]
+ str r0, [r4, #0xc]
+ add r0, r4, #0x0
+ ldr r1, _020225E8 ; =0x00001021
+ add r0, #0x14
+ blx MATHi_CRC16InitTable
+ ldr r0, _020225EC ; =0x00020224
+ add r0, r4, r0
+ bl FUN_020230E4
+ ldr r0, _020225F0 ; =0x00020464
+ ldr r1, _020225EC ; =0x00020224
+ add r0, r4, r0
+ add r1, r4, r1
+ bl FUN_02023160
+ ldr r1, _020225F4 ; =0x00020218
+ mov r0, #0x0
+ add r1, r4, r1
+ mov r2, #0x8
+ blx MIi_CpuClearFast
+ add r0, r4, #0x0
+ bl FUN_02022AD8
+ str r0, [r4, #0x10]
+ cmp r0, #0x3
+ bhi _020225DA
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_020225B8: ; jump table (using 16-bit offset)
+ .short _020225D4 - _020225B8 - 2; case 0
+ .short _020225C0 - _020225B8 - 2; case 1
+ .short _020225C4 - _020225B8 - 2; case 2
+ .short _020225D4 - _020225B8 - 2; case 3
+_020225C0:
+ mov r0, #0x0
+ str r0, [r4, #0xc]
+_020225C4:
+ add r0, r4, #0x0
+ bl FUN_02022D08
+ mov r0, #0x1
+ str r0, [r4, #0x4]
+ mov r0, #0x0
+ str r0, [r4, #0x8]
+ b _020225DA
+_020225D4:
+ add r0, r4, #0x0
+ bl FUN_020227DC
+_020225DA:
+ add r0, r4, #0x0
+ pop {r4, pc}
+ nop
+_020225E0: .word 0x000204A8
+_020225E4: .word 0x021C59C8
+_020225E8: .word 0x00001021
+_020225EC: .word 0x00020224
+_020225F0: .word 0x00020464
+_020225F4: .word 0x00020218
+
+ thumb_func_start FUN_020225F8
+FUN_020225F8: ; 0x020225F8
+ push {r3, lr}
+ ldr r0, _0202260C ; =0x021C59C8
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ bne _02022606
+ bl ErrorHandling
+_02022606:
+ ldr r0, _0202260C ; =0x021C59C8
+ ldr r0, [r0, #0x0]
+ pop {r3, pc}
+ .balign 4
+_0202260C: .word 0x021C59C8
+
+ thumb_func_start FUN_02022610
+FUN_02022610: ; 0x02022610
+ push {r3-r5, lr}
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ cmp r4, #0x24
+ blt _0202261E
+ bl ErrorHandling
+_0202261E:
+ mov r0, #0x85
+ lsl r0, r0, #0x2
+ add r2, r5, r0
+ lsl r0, r4, #0x4
+ add r1, r5, r0
+ ldr r0, _02022630 ; =0x0002022C
+ ldr r0, [r1, r0]
+ add r0, r2, r0
+ pop {r3-r5, pc}
+ .balign 4
+_02022630: .word 0x0002022C
+
+ thumb_func_start FUN_02022634
+FUN_02022634: ; 0x02022634
+ ldr r3, _02022638 ; =FUN_02022610
+ bx r3
+ .balign 4
+_02022638: .word FUN_02022610
+
+ thumb_func_start FUN_0202263C
+FUN_0202263C: ; 0x0202263C
+ push {r3-r7, lr}
+ mov r1, #0x1
+ str r0, [sp, #0x0]
+ mov r0, #0x3
+ lsl r1, r1, #0xc
+ bl FUN_020169D8
+ add r6, r0, #0x0
+ mov r0, #0x1
+ bl FUN_02016444
+ ldr r1, _020226F4 ; =0x00020220
+ ldr r0, [sp, #0x0]
+ ldrb r0, [r0, r1]
+ cmp r0, #0x0
+ bne _02022660
+ mov r2, #0x1
+ b _02022662
+_02022660:
+ mov r2, #0x0
+_02022662:
+ ldr r0, [sp, #0x0]
+ mov r1, #0x0
+ bl FUN_02023074
+ ldr r1, _020226F8 ; =0x00020221
+ ldr r0, [sp, #0x0]
+ ldrb r0, [r0, r1]
+ cmp r0, #0x0
+ bne _02022678
+ mov r2, #0x1
+ b _0202267A
+_02022678:
+ mov r2, #0x0
+_0202267A:
+ ldr r0, [sp, #0x0]
+ mov r1, #0x1
+ bl FUN_02023074
+ ldr r0, [sp, #0x0]
+ ldr r3, _020226F4 ; =0x00020220
+ add r2, r0, #0x0
+ ldrb r2, [r2, r3]
+ mov r1, #0x0
+ bl FUN_02023074
+ ldr r0, [sp, #0x0]
+ ldr r3, _020226F8 ; =0x00020221
+ add r2, r0, #0x0
+ ldrb r2, [r2, r3]
+ mov r1, #0x1
+ bl FUN_02023074
+ mov r0, #0x0
+ mov r2, #0x1
+ mvn r0, r0
+ add r1, r6, #0x0
+ lsl r2, r2, #0xc
+ blx MIi_CpuClearFast
+ mov r4, #0x0
+ mov r7, #0x1
+ add r5, r4, #0x0
+ lsl r7, r7, #0xc
+_020226B4:
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ add r2, r7, #0x0
+ bl FUN_020235D0
+ add r0, r4, #0x0
+ add r0, #0x40
+ lsl r0, r0, #0xc
+ add r1, r6, #0x0
+ add r2, r7, #0x0
+ bl FUN_020235D0
+ mov r0, #0x1
+ lsl r0, r0, #0xc
+ add r4, r4, #0x1
+ add r5, r5, r0
+ cmp r4, #0x40
+ blt _020226B4
+ add r0, r6, #0x0
+ bl FUN_02016A18
+ ldr r0, [sp, #0x0]
+ bl FUN_020227DC
+ ldr r0, [sp, #0x0]
+ mov r1, #0x0
+ str r1, [r0, #0x4]
+ mov r0, #0x1
+ bl FUN_02016454
+ mov r0, #0x1
+ pop {r3-r7, pc}
+ .balign 4
+_020226F4: .word 0x00020220
+_020226F8: .word 0x00020221
+
+ thumb_func_start FUN_020226FC
+FUN_020226FC: ; 0x020226FC
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r1, [r4, #0x0]
+ cmp r1, #0x0
+ bne _0202270A
+ mov r0, #0x0
+ pop {r4, pc}
+_0202270A:
+ bl FUN_02022D08
+ cmp r0, #0x0
+ beq _0202271C
+ mov r0, #0x1
+ str r0, [r4, #0x4]
+ mov r1, #0x0
+ str r1, [r4, #0x8]
+ pop {r4, pc}
+_0202271C:
+ mov r0, #0x0
+ pop {r4, pc}
+
+ thumb_func_start FUN_02022720
+FUN_02022720: ; 0x02022720
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r0, [r4, #0x0]
+ cmp r0, #0x0
+ bne _0202272E
+ mov r0, #0x3
+ pop {r4, pc}
+_0202272E:
+ ldr r0, [r4, #0x8]
+ cmp r0, #0x0
+ beq _02022784
+ mov r0, #0x1
+ bl FUN_02016444
+ ldr r0, _02022798 ; =0x00020220
+ ldrb r0, [r4, r0]
+ cmp r0, #0x0
+ bne _02022746
+ mov r2, #0x1
+ b _02022748
+_02022746:
+ mov r2, #0x0
+_02022748:
+ add r0, r4, #0x0
+ mov r1, #0x0
+ bl FUN_02023074
+ ldr r0, _0202279C ; =0x00020221
+ ldrb r0, [r4, r0]
+ cmp r0, #0x0
+ bne _0202275C
+ mov r2, #0x1
+ b _0202275E
+_0202275C:
+ mov r2, #0x0
+_0202275E:
+ add r0, r4, #0x0
+ mov r1, #0x1
+ bl FUN_02023074
+ ldr r2, _02022798 ; =0x00020220
+ add r0, r4, #0x0
+ ldrb r2, [r4, r2]
+ mov r1, #0x0
+ bl FUN_02023074
+ ldr r2, _0202279C ; =0x00020221
+ add r0, r4, #0x0
+ ldrb r2, [r4, r2]
+ mov r1, #0x1
+ bl FUN_02023074
+ mov r0, #0x1
+ bl FUN_02016454
+_02022784:
+ add r0, r4, #0x0
+ bl FUN_02023044
+ cmp r0, #0x2
+ bne _02022796
+ mov r1, #0x1
+ str r1, [r4, #0x4]
+ mov r1, #0x0
+ str r1, [r4, #0x8]
+_02022796:
+ pop {r4, pc}
+ .balign 4
+_02022798: .word 0x00020220
+_0202279C: .word 0x00020221
+
+ thumb_func_start FUN_020227A0
+FUN_020227A0: ; 0x020227A0
+ push {r3-r5, lr}
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ cmp r4, #0x2
+ blt _020227AE
+ bl ErrorHandling
+_020227AE:
+ ldr r0, [r5, #0x8]
+ cmp r0, #0x0
+ beq _020227B8
+ bl ErrorHandling
+_020227B8:
+ ldr r0, [r5, #0x4]
+ cmp r0, #0x1
+ beq _020227C2
+ bl ErrorHandling
+_020227C2:
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_02022840
+_020227CA:
+ add r0, r5, #0x0
+ bl FUN_02022854
+ cmp r0, #0x0
+ beq _020227CA
+ cmp r0, #0x1
+ beq _020227CA
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_020227DC
+FUN_020227DC: ; 0x020227DC
+ add r2, r0, #0x0
+ mov r0, #0x1
+ str r0, [r2, #0x8]
+ str r0, [r2, #0xc]
+ mov r0, #0x85
+ ldr r1, _020227F4 ; =0x00020224
+ lsl r0, r0, #0x2
+ ldr r3, _020227F8 ; =FUN_020231F4
+ add r0, r2, r0
+ add r1, r2, r1
+ bx r3
+ nop
+_020227F4: .word 0x00020224
+_020227F8: .word FUN_020231F4
+
+ thumb_func_start FUN_020227FC
+FUN_020227FC: ; 0x020227FC
+ ldr r0, [r0, #0x0]
+ bx lr
+
+ thumb_func_start FUN_02022800
+FUN_02022800: ; 0x02022800
+ ldr r0, [r0, #0x10]
+ bx lr
+
+ thumb_func_start FUN_02022804
+FUN_02022804: ; 0x02022804
+ ldr r0, [r0, #0x4]
+ bx lr
+
+ thumb_func_start FUN_02022808
+FUN_02022808: ; 0x02022808
+ ldr r0, [r0, #0x8]
+ bx lr
+
+ thumb_func_start FUN_0202280C
+FUN_0202280C: ; 0x0202280C
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl FUN_02022808
+ cmp r0, #0x0
+ beq _02022826
+ add r0, r4, #0x0
+ bl FUN_02022804
+ cmp r0, #0x0
+ beq _02022826
+ mov r0, #0x1
+ pop {r4, pc}
+_02022826:
+ mov r0, #0x0
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0202282C
+FUN_0202282C: ; 0x0202282C
+ ldr r0, [r0, #0xc]
+ bx lr
+
+ thumb_func_start FUN_02022830
+FUN_02022830: ; 0x02022830
+ ldr r0, _0202283C ; =0x021C59C8
+ mov r1, #0x1
+ ldr r0, [r0, #0x0]
+ str r1, [r0, #0xc]
+ bx lr
+ nop
+_0202283C: .word 0x021C59C8
+
+ thumb_func_start FUN_02022840
+FUN_02022840: ; 0x02022840
+ add r2, r1, #0x0
+ ldr r1, _0202284C ; =0x0002047C
+ ldr r3, _02022850 ; =FUN_02022DFC
+ add r1, r0, r1
+ bx r3
+ nop
+_0202284C: .word 0x0002047C
+_02022850: .word FUN_02022DFC
+
+ thumb_func_start FUN_02022854
+FUN_02022854: ; 0x02022854
+ push {r3-r5, lr}
+ ldr r1, _02022878 ; =0x0002047C
+ add r5, r0, #0x0
+ add r1, r5, r1
+ bl FUN_02022E78
+ add r4, r0, #0x0
+ beq _02022874
+ cmp r4, #0x1
+ beq _02022874
+ ldr r1, _02022878 ; =0x0002047C
+ add r0, r5, #0x0
+ add r1, r5, r1
+ add r2, r4, #0x0
+ bl FUN_02022F80
+_02022874:
+ add r0, r4, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+_02022878: .word 0x0002047C
+
+ thumb_func_start FUN_0202287C
+FUN_0202287C: ; 0x0202287C
+ ldr r1, _02022884 ; =0x0002047C
+ ldr r3, _02022888 ; =FUN_02022FF0
+ add r1, r0, r1
+ bx r3
+ .balign 4
+_02022884: .word 0x0002047C
+_02022888: .word FUN_02022FF0
+
+ thumb_func_start FUN_0202288C
+FUN_0202288C: ; 0x0202288C
+ mov r1, #0x0
+ str r1, [r0, #0x0]
+ str r1, [r0, #0x4]
+ str r1, [r0, #0x8]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02022898
+FUN_02022898: ; 0x02022898
+ ldr r3, _020228A0 ; =MATH_CalcCRC16CCITT
+ add r0, #0x14
+ sub r2, #0x14
+ bx r3
+ .balign 4
+_020228A0: .word MATH_CalcCRC16CCITT
+
+ thumb_func_start FUN_020228A4
+FUN_020228A4: ; 0x020228A4
+ cmp r0, #0x0
+ bne _020228AC
+ mov r2, #0x0
+ b _020228B0
+_020228AC:
+ mov r2, #0x1
+ lsl r2, r2, #0x12
+_020228B0:
+ ldr r0, [r1, #0x4]
+ add r0, r2, r0
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_020228B8
+FUN_020228B8: ; 0x020228B8
+ push {r3-r5, lr}
+ ldr r3, _020228DC ; =0x00020464
+ add r3, r0, r3
+ mov r0, #0xc
+ mul r0, r2
+ add r5, r3, r0
+ ldr r0, [r5, #0x4]
+ add r4, r1, r0
+ ldr r0, [r5, #0x8]
+ cmp r0, #0x0
+ bne _020228D2
+ bl ErrorHandling
+_020228D2:
+ ldr r0, [r5, #0x8]
+ add r0, r4, r0
+ sub r0, #0x14
+ pop {r3-r5, pc}
+ nop
+_020228DC: .word 0x00020464
+
+ thumb_func_start FUN_020228E0
+FUN_020228E0: ; 0x020228E0
+ push {r3-r7, lr}
+ ldr r4, _02022934 ; =0x00020464
+ add r3, r0, #0x0
+ add r3, r3, r4
+ add r5, r2, #0x0
+ mov r4, #0xc
+ mul r4, r5
+ str r0, [sp, #0x0]
+ add r7, r1, #0x0
+ add r6, r3, r4
+ bl FUN_020228B8
+ add r4, r0, #0x0
+ ldr r2, [r6, #0x8]
+ ldr r0, [r4, #0x8]
+ ldr r1, [r6, #0x4]
+ cmp r0, r2
+ beq _02022908
+ mov r0, #0x0
+ pop {r3-r7, pc}
+_02022908:
+ ldr r3, [r4, #0xc]
+ ldr r0, _02022938 ; =0x20060623
+ cmp r3, r0
+ beq _02022914
+ mov r0, #0x0
+ pop {r3-r7, pc}
+_02022914:
+ ldrb r0, [r4, #0x10]
+ cmp r0, r5
+ beq _0202291E
+ mov r0, #0x0
+ pop {r3-r7, pc}
+_0202291E:
+ ldr r0, [sp, #0x0]
+ add r1, r7, r1
+ bl FUN_02022898
+ ldrh r1, [r4, #0x12]
+ cmp r1, r0
+ bne _02022930
+ mov r0, #0x1
+ pop {r3-r7, pc}
+_02022930:
+ mov r0, #0x0
+ pop {r3-r7, pc}
+ .balign 4
+_02022934: .word 0x00020464
+_02022938: .word 0x20060623
+
+ thumb_func_start FUN_0202293C
+FUN_0202293C: ; 0x0202293C
+ push {r3-r7, lr}
+ add r7, r2, #0x0
+ add r6, r1, #0x0
+ add r5, r0, #0x0
+ str r3, [sp, #0x0]
+ add r0, r6, #0x0
+ add r1, r7, #0x0
+ add r2, r3, #0x0
+ bl FUN_020228B8
+ add r4, r0, #0x0
+ ldr r2, [sp, #0x0]
+ add r0, r6, #0x0
+ add r1, r7, #0x0
+ bl FUN_020228E0
+ str r0, [r5, #0x0]
+ ldr r0, [r4, #0x0]
+ str r0, [r5, #0x4]
+ ldr r0, [r4, #0x4]
+ str r0, [r5, #0x8]
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_02022968
+FUN_02022968: ; 0x02022968
+ push {r3-r7, lr}
+ ldr r3, _020229AC ; =0x00020464
+ add r5, r0, #0x0
+ add r7, r2, #0x0
+ mov r4, #0xc
+ add r3, r5, r3
+ mul r4, r7
+ str r1, [sp, #0x0]
+ add r6, r3, r4
+ bl FUN_020228B8
+ ldr r2, _020229B0 ; =0x00020214
+ add r4, r0, #0x0
+ ldr r0, [r5, r2]
+ ldr r1, [r6, #0x4]
+ add r2, r2, #0x4
+ str r0, [r4, #0x0]
+ lsl r0, r7, #0x2
+ add r0, r5, r0
+ ldr r0, [r0, r2]
+ ldr r2, [sp, #0x0]
+ str r0, [r4, #0x4]
+ ldr r0, [r6, #0x8]
+ add r1, r2, r1
+ str r0, [r4, #0x8]
+ ldr r0, _020229B4 ; =0x20060623
+ str r0, [r4, #0xc]
+ strb r7, [r4, #0x10]
+ ldr r2, [r6, #0x8]
+ add r0, r5, #0x0
+ bl FUN_02022898
+ strh r0, [r4, #0x12]
+ pop {r3-r7, pc}
+ .balign 4
+_020229AC: .word 0x00020464
+_020229B0: .word 0x00020214
+_020229B4: .word 0x20060623
+
+ thumb_func_start FUN_020229B8
+FUN_020229B8: ; 0x020229B8
+ mov r2, #0x0
+ mvn r2, r2
+ cmp r0, r2
+ bne _020229C8
+ cmp r1, #0x0
+ bne _020229C8
+ add r0, r2, #0x0
+ bx lr
+_020229C8:
+ cmp r0, #0x0
+ bne _020229D8
+ mov r2, #0x0
+ mvn r2, r2
+ cmp r1, r2
+ bne _020229D8
+ mov r0, #0x1
+ bx lr
+_020229D8:
+ cmp r0, r1
+ bls _020229E0
+ mov r0, #0x1
+ bx lr
+_020229E0:
+ cmp r0, r1
+ bhs _020229E8
+ mov r0, #0x1
+ b _020229EA
+_020229E8:
+ mov r0, #0x0
+_020229EA:
+ neg r0, r0
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_020229F0
+FUN_020229F0: ; 0x020229F0
+ push {r3-r7, lr}
+ add r7, r0, #0x0
+ add r6, r1, #0x0
+ ldr r0, [r7, #0x4]
+ ldr r1, [r6, #0x4]
+ add r5, r2, #0x0
+ add r4, r3, #0x0
+ bl FUN_020229B8
+ str r0, [sp, #0x0]
+ ldr r0, [r7, #0x8]
+ ldr r1, [r6, #0x8]
+ bl FUN_020229B8
+ ldr r2, [r7, #0x0]
+ cmp r2, #0x0
+ beq _02022A6A
+ ldr r1, [r6, #0x0]
+ cmp r1, #0x0
+ beq _02022A6A
+ ldr r1, [sp, #0x0]
+ cmp r1, #0x0
+ ble _02022A30
+ cmp r0, #0x0
+ bgt _02022A26
+ bl ErrorHandling
+_02022A26:
+ mov r0, #0x0
+ str r0, [r5, #0x0]
+ mov r0, #0x1
+ str r0, [r4, #0x0]
+ b _02022A66
+_02022A30:
+ bge _02022A44
+ cmp r0, #0x0
+ blt _02022A3A
+ bl ErrorHandling
+_02022A3A:
+ mov r0, #0x1
+ str r0, [r5, #0x0]
+ mov r0, #0x0
+ str r0, [r4, #0x0]
+ b _02022A66
+_02022A44:
+ cmp r0, #0x0
+ ble _02022A52
+ mov r0, #0x0
+ str r0, [r5, #0x0]
+ mov r0, #0x1
+ str r0, [r4, #0x0]
+ b _02022A66
+_02022A52:
+ bge _02022A5E
+ mov r0, #0x1
+ str r0, [r5, #0x0]
+ mov r0, #0x0
+ str r0, [r4, #0x0]
+ b _02022A66
+_02022A5E:
+ mov r0, #0x0
+ str r0, [r5, #0x0]
+ mov r0, #0x1
+ str r0, [r4, #0x0]
+_02022A66:
+ mov r0, #0x2
+ pop {r3-r7, pc}
+_02022A6A:
+ cmp r2, #0x0
+ beq _02022A80
+ ldr r0, [r6, #0x0]
+ cmp r0, #0x0
+ bne _02022A80
+ mov r0, #0x0
+ str r0, [r5, #0x0]
+ mov r0, #0x2
+ str r0, [r4, #0x0]
+ mov r0, #0x1
+ pop {r3-r7, pc}
+_02022A80:
+ cmp r2, #0x0
+ bne _02022A94
+ ldr r0, [r6, #0x0]
+ cmp r0, #0x0
+ beq _02022A94
+ mov r0, #0x1
+ str r0, [r5, #0x0]
+ mov r1, #0x2
+ str r1, [r4, #0x0]
+ pop {r3-r7, pc}
+_02022A94:
+ mov r0, #0x2
+ str r0, [r5, #0x0]
+ str r0, [r4, #0x0]
+ mov r0, #0x0
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_02022AA0
+FUN_02022AA0: ; 0x02022AA0
+ push {r3-r6}
+ mov r4, #0xc
+ add r5, r3, #0x0
+ mul r5, r4
+ add r6, r1, r5
+ ldr r5, [r6, #0x4]
+ ldr r1, _02022AD4 ; =0x00020214
+ str r5, [r0, r1]
+ ldr r6, [r6, #0x8]
+ add r5, r1, #0x4
+ str r6, [r0, r5]
+ ldr r5, [sp, #0x10]
+ mul r4, r5
+ add r2, r2, r4
+ ldr r4, [r2, #0x8]
+ add r2, r1, #0x0
+ add r2, #0x8
+ str r4, [r0, r2]
+ add r2, r1, #0x0
+ add r2, #0xc
+ strb r3, [r0, r2]
+ add r1, #0xd
+ strb r5, [r0, r1]
+ pop {r3-r6}
+ bx lr
+ nop
+_02022AD4: .word 0x00020214
+
+ thumb_func_start FUN_02022AD8
+FUN_02022AD8: ; 0x02022AD8
+ push {r3-r6, lr}
+ sub sp, #0x44
+ mov r1, #0x2
+ add r5, r0, #0x0
+ mov r0, #0x3
+ lsl r1, r1, #0x10
+ bl FUN_020169D8
+ mov r1, #0x2
+ add r6, r0, #0x0
+ mov r0, #0x3
+ lsl r1, r1, #0x10
+ bl FUN_020169D8
+ mov r2, #0x2
+ add r4, r0, #0x0
+ mov r0, #0x0
+ add r1, r6, #0x0
+ lsl r2, r2, #0x10
+ bl FUN_020235EC
+ cmp r0, #0x0
+ add r0, sp, #0x2c
+ beq _02022B20
+ add r1, r5, #0x0
+ add r2, r6, #0x0
+ mov r3, #0x0
+ bl FUN_0202293C
+ add r0, sp, #0x14
+ add r1, r5, #0x0
+ add r2, r6, #0x0
+ mov r3, #0x1
+ bl FUN_0202293C
+ b _02022B2A
+_02022B20:
+ bl FUN_0202288C
+ add r0, sp, #0x14
+ bl FUN_0202288C
+_02022B2A:
+ mov r0, #0x1
+ lsl r0, r0, #0x12
+ add r1, r4, #0x0
+ lsr r2, r0, #0x1
+ bl FUN_020235EC
+ cmp r0, #0x0
+ add r0, sp, #0x38
+ beq _02022B54
+ add r1, r5, #0x0
+ add r2, r4, #0x0
+ mov r3, #0x0
+ bl FUN_0202293C
+ add r0, sp, #0x20
+ add r1, r5, #0x0
+ add r2, r4, #0x0
+ mov r3, #0x1
+ bl FUN_0202293C
+ b _02022B5E
+_02022B54:
+ bl FUN_0202288C
+ add r0, sp, #0x20
+ bl FUN_0202288C
+_02022B5E:
+ add r0, r6, #0x0
+ bl FUN_02016A18
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ add r0, sp, #0x2c
+ add r1, sp, #0x38
+ add r2, sp, #0x10
+ add r3, sp, #0x8
+ bl FUN_020229F0
+ add r4, r0, #0x0
+ add r0, sp, #0x14
+ add r1, sp, #0x20
+ add r2, sp, #0xc
+ add r3, sp, #0x4
+ bl FUN_020229F0
+ cmp r4, #0x0
+ bne _02022B92
+ cmp r0, #0x0
+ bne _02022B92
+ add sp, #0x44
+ mov r0, #0x0
+ pop {r3-r6, pc}
+_02022B92:
+ cmp r4, #0x0
+ beq _02022B9A
+ cmp r0, #0x0
+ bne _02022BA0
+_02022B9A:
+ add sp, #0x44
+ mov r0, #0x3
+ pop {r3-r6, pc}
+_02022BA0:
+ cmp r4, #0x2
+ bne _02022BE4
+ cmp r0, #0x2
+ bne _02022BE4
+ ldr r3, [sp, #0x10]
+ ldr r1, [sp, #0xc]
+ mov r2, #0xc
+ add r4, r3, #0x0
+ mul r4, r2
+ add r0, sp, #0x30
+ ldr r0, [r0, r4]
+ add r4, r1, #0x0
+ mul r4, r2
+ add r2, sp, #0x18
+ ldr r2, [r2, r4]
+ cmp r0, r2
+ str r1, [sp, #0x0]
+ add r1, sp, #0x2c
+ bne _02022BD4
+ add r0, r5, #0x0
+ add r2, sp, #0x14
+ bl FUN_02022AA0
+ add sp, #0x44
+ mov r0, #0x1
+ pop {r3-r6, pc}
+_02022BD4:
+ ldr r3, [sp, #0x8]
+ add r0, r5, #0x0
+ add r2, sp, #0x14
+ bl FUN_02022AA0
+ add sp, #0x44
+ mov r0, #0x2
+ pop {r3-r6, pc}
+_02022BE4:
+ cmp r4, #0x1
+ bne _02022C3A
+ cmp r0, #0x2
+ bne _02022C3A
+ ldr r3, [sp, #0x10]
+ ldr r0, [sp, #0xc]
+ mov r4, #0xc
+ add r2, r3, #0x0
+ add r6, r0, #0x0
+ mul r2, r4
+ add r1, sp, #0x30
+ ldr r2, [r1, r2]
+ mul r6, r4
+ add r1, sp, #0x18
+ ldr r6, [r1, r6]
+ cmp r2, r6
+ bne _02022C18
+ str r0, [sp, #0x0]
+ add r0, r5, #0x0
+ add r1, sp, #0x2c
+ add r2, sp, #0x14
+ bl FUN_02022AA0
+ add sp, #0x44
+ mov r0, #0x2
+ pop {r3-r6, pc}
+_02022C18:
+ ldr r0, [sp, #0x4]
+ mul r4, r0
+ ldr r1, [r1, r4]
+ cmp r2, r1
+ bne _02022C34
+ str r0, [sp, #0x0]
+ add r0, r5, #0x0
+ add r1, sp, #0x2c
+ add r2, sp, #0x14
+ bl FUN_02022AA0
+ add sp, #0x44
+ mov r0, #0x2
+ pop {r3-r6, pc}
+_02022C34:
+ add sp, #0x44
+ mov r0, #0x3
+ pop {r3-r6, pc}
+_02022C3A:
+ cmp r4, #0x2
+ bne _02022C7E
+ cmp r0, #0x1
+ bne _02022C7E
+ ldr r3, [sp, #0x10]
+ ldr r1, [sp, #0xc]
+ mov r2, #0xc
+ add r4, r3, #0x0
+ mul r4, r2
+ add r0, sp, #0x30
+ ldr r0, [r0, r4]
+ add r4, r1, #0x0
+ mul r4, r2
+ add r2, sp, #0x18
+ ldr r2, [r2, r4]
+ cmp r0, r2
+ str r1, [sp, #0x0]
+ add r1, sp, #0x2c
+ bne _02022C6E
+ add r0, r5, #0x0
+ add r2, sp, #0x14
+ bl FUN_02022AA0
+ add sp, #0x44
+ mov r0, #0x1
+ pop {r3-r6, pc}
+_02022C6E:
+ ldr r3, [sp, #0x8]
+ add r0, r5, #0x0
+ add r2, sp, #0x14
+ bl FUN_02022AA0
+ add sp, #0x44
+ mov r0, #0x2
+ pop {r3-r6, pc}
+_02022C7E:
+ cmp r4, #0x1
+ bne _02022CBC
+ cmp r0, #0x1
+ bne _02022CBC
+ ldr r0, [sp, #0xc]
+ ldr r2, [sp, #0x10]
+ cmp r2, r0
+ bne _02022CBC
+ add r3, r2, #0x0
+ mov r1, #0xc
+ mul r3, r1
+ add r2, sp, #0x30
+ mul r1, r0
+ add r0, sp, #0x18
+ ldr r2, [r2, r3]
+ ldr r0, [r0, r1]
+ cmp r2, r0
+ beq _02022CA6
+ bl ErrorHandling
+_02022CA6:
+ ldr r0, [sp, #0xc]
+ add r1, sp, #0x2c
+ str r0, [sp, #0x0]
+ ldr r3, [sp, #0x10]
+ add r0, r5, #0x0
+ add r2, sp, #0x14
+ bl FUN_02022AA0
+ add sp, #0x44
+ mov r0, #0x1
+ pop {r3-r6, pc}
+_02022CBC:
+ ldr r1, [sp, #0x10]
+ mov r0, #0xc
+ add r2, r1, #0x0
+ mul r2, r0
+ add r1, sp, #0x30
+ ldr r3, [r1, r2]
+ ldr r1, [sp, #0xc]
+ add r2, r1, #0x0
+ mul r2, r0
+ add r0, sp, #0x18
+ ldr r0, [r0, r2]
+ cmp r3, r0
+ beq _02022CDA
+ bl ErrorHandling
+_02022CDA:
+ ldr r0, [sp, #0xc]
+ add r1, sp, #0x2c
+ str r0, [sp, #0x0]
+ ldr r3, [sp, #0x10]
+ add r0, r5, #0x0
+ add r2, sp, #0x14
+ bl FUN_02022AA0
+ mov r0, #0x2
+ add sp, #0x44
+ pop {r3-r6, pc}
+
+ thumb_func_start FUN_02022CF0
+FUN_02022CF0: ; 0x02022CF0
+ push {r3-r5, lr}
+ add r5, r1, #0x0
+ add r4, r2, #0x0
+ bl FUN_020228A4
+ ldr r1, [r5, #0x4]
+ ldr r2, [r5, #0x8]
+ add r1, r4, r1
+ bl FUN_020235EC
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_02022D08
+FUN_02022D08: ; 0x02022D08
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ ldr r0, _02022D4C ; =0x00020464
+ mov r7, #0x85
+ mov r4, #0x0
+ add r6, r5, r0
+ lsl r7, r7, #0x2
+_02022D16:
+ ldr r0, _02022D50 ; =0x00020220
+ add r1, r5, r4
+ ldrb r0, [r1, r0]
+ add r1, r6, #0x0
+ add r2, r5, r7
+ bl FUN_02022CF0
+ cmp r0, #0x0
+ bne _02022D2C
+ mov r0, #0x0
+ pop {r3-r7, pc}
+_02022D2C:
+ add r0, r5, #0x0
+ add r1, r5, r7
+ add r2, r4, #0x0
+ bl FUN_020228E0
+ cmp r0, #0x0
+ bne _02022D3E
+ mov r0, #0x0
+ pop {r3-r7, pc}
+_02022D3E:
+ add r4, r4, #0x1
+ add r6, #0xc
+ cmp r4, #0x2
+ blt _02022D16
+ mov r0, #0x1
+ pop {r3-r7, pc}
+ nop
+_02022D4C: .word 0x00020464
+_02022D50: .word 0x00020220
+
+ thumb_func_start FUN_02022D54
+FUN_02022D54: ; 0x02022D54
+ push {r4-r6, lr}
+ add r3, r1, #0x0
+ ldr r1, _02022D90 ; =0x00020464
+ add r5, r0, #0x0
+ add r6, r2, #0x0
+ add r2, r5, r1
+ mov r1, #0xc
+ mul r1, r3
+ add r4, r2, r1
+ mov r1, #0x85
+ lsl r1, r1, #0x2
+ add r1, r5, r1
+ add r2, r3, #0x0
+ bl FUN_02022968
+ add r0, r6, #0x0
+ add r1, r4, #0x0
+ bl FUN_020228A4
+ mov r1, #0x85
+ lsl r1, r1, #0x2
+ add r2, r5, r1
+ ldr r1, [r4, #0x4]
+ add r1, r2, r1
+ ldr r2, [r4, #0x8]
+ sub r2, #0x14
+ bl FUN_02023668
+ pop {r4-r6, pc}
+ nop
+_02022D90: .word 0x00020464
+
+ thumb_func_start FUN_02022D94
+FUN_02022D94: ; 0x02022D94
+ push {r4-r6, lr}
+ add r6, r0, #0x0
+ ldr r0, _02022DC4 ; =0x00020464
+ add r3, r6, r0
+ mov r0, #0xc
+ mul r0, r1
+ add r4, r3, r0
+ add r0, r2, #0x0
+ add r1, r4, #0x0
+ ldr r5, [r4, #0x8]
+ bl FUN_020228A4
+ mov r1, #0x2
+ lsl r1, r1, #0x8
+ add r2, r6, r1
+ ldr r1, [r4, #0x4]
+ add r0, r5, r0
+ add r1, r2, r1
+ sub r0, #0x14
+ add r1, r1, r5
+ mov r2, #0x14
+ bl FUN_02023668
+ pop {r4-r6, pc}
+ .balign 4
+_02022DC4: .word 0x00020464
+
+ thumb_func_start FUN_02022DC8
+FUN_02022DC8: ; 0x02022DC8
+ push {r4-r6, lr}
+ add r6, r0, #0x0
+ ldr r0, _02022DF8 ; =0x00020464
+ add r3, r6, r0
+ mov r0, #0xc
+ mul r0, r1
+ add r4, r3, r0
+ add r0, r2, #0x0
+ add r1, r4, #0x0
+ ldr r5, [r4, #0x8]
+ bl FUN_020228A4
+ mov r1, #0x82
+ lsl r1, r1, #0x2
+ add r2, r6, r1
+ ldr r1, [r4, #0x4]
+ add r0, r5, r0
+ add r1, r2, r1
+ sub r0, #0xc
+ add r1, r1, r5
+ mov r2, #0x8
+ bl FUN_02023668
+ pop {r4-r6, pc}
+ .balign 4
+_02022DF8: .word 0x00020464
+
+ thumb_func_start FUN_02022DFC
+FUN_02022DFC: ; 0x02022DFC
+ push {r3-r7, lr}
+ ldr r7, _02022E70 ; =0x00020218
+ add r4, r1, #0x0
+ mov r12, r2
+ mov r1, #0x0
+ add r2, r0, #0x0
+ add r3, r4, #0x0
+ add r6, r7, #0x0
+_02022E0C:
+ ldr r5, _02022E70 ; =0x00020218
+ add r1, r1, #0x1
+ ldr r5, [r2, r5]
+ str r5, [r3, #0x1c]
+ ldr r5, [r2, r7]
+ add r3, r3, #0x4
+ add r5, r5, #0x1
+ str r5, [r2, r6]
+ add r2, r2, #0x4
+ cmp r1, #0x2
+ blt _02022E0C
+ mov r1, #0x0
+ str r1, [r4, #0x14]
+ mov r2, r12
+ str r1, [r4, #0x0]
+ cmp r2, #0x2
+ bne _02022E58
+ ldr r2, [r0, #0xc]
+ cmp r2, #0x0
+ beq _02022E4E
+ mov r2, #0x1
+ str r2, [r4, #0x0]
+ ldr r2, _02022E74 ; =0x00020214
+ ldr r3, [r0, r2]
+ str r3, [r4, #0x18]
+ ldr r3, [r0, r2]
+ add r3, r3, #0x1
+ str r3, [r0, r2]
+ str r1, [r4, #0x4]
+ str r1, [r4, #0x8]
+ mov r0, #0x2
+ str r0, [r4, #0xc]
+ b _02022E66
+_02022E4E:
+ str r1, [r4, #0x4]
+ str r1, [r4, #0x8]
+ mov r0, #0x1
+ str r0, [r4, #0xc]
+ b _02022E66
+_02022E58:
+ mov r0, r12
+ str r0, [r4, #0x4]
+ mov r0, r12
+ str r0, [r4, #0x8]
+ mov r0, r12
+ add r0, r0, #0x1
+ str r0, [r4, #0xc]
+_02022E66:
+ mov r0, #0x1
+ bl FUN_02016444
+ pop {r3-r7, pc}
+ nop
+_02022E70: .word 0x00020218
+_02022E74: .word 0x00020214
+
+ thumb_func_start FUN_02022E78
+FUN_02022E78: ; 0x02022E78
+ push {r3-r5, lr}
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ ldr r0, [r4, #0x14]
+ cmp r0, #0x5
+ bhi _02022F78
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02022E90: ; jump table (using 16-bit offset)
+ .short _02022E9C - _02022E90 - 2; case 0
+ .short _02022EC0 - _02022E90 - 2; case 1
+ .short _02022EDC - _02022E90 - 2; case 2
+ .short _02022F00 - _02022E90 - 2; case 3
+ .short _02022F2A - _02022E90 - 2; case 4
+ .short _02022F4E - _02022E90 - 2; case 5
+_02022E9C:
+ ldr r1, [r4, #0x8]
+ ldr r0, _02022F7C ; =0x00020220
+ add r2, r5, r1
+ ldrb r0, [r2, r0]
+ cmp r0, #0x0
+ bne _02022EAC
+ mov r2, #0x1
+ b _02022EAE
+_02022EAC:
+ mov r2, #0x0
+_02022EAE:
+ lsl r2, r2, #0x18
+ add r0, r5, #0x0
+ lsr r2, r2, #0x18
+ bl FUN_02022D54
+ str r0, [r4, #0x10]
+ ldr r0, [r4, #0x14]
+ add r0, r0, #0x1
+ str r0, [r4, #0x14]
+_02022EC0:
+ ldr r0, [r4, #0x10]
+ add r1, sp, #0x0
+ bl FUN_020236E4
+ cmp r0, #0x0
+ beq _02022F78
+ ldr r0, [sp, #0x0]
+ cmp r0, #0x0
+ bne _02022ED6
+ mov r0, #0x3
+ pop {r3-r5, pc}
+_02022ED6:
+ ldr r0, [r4, #0x14]
+ add r0, r0, #0x1
+ str r0, [r4, #0x14]
+_02022EDC:
+ ldr r1, [r4, #0x8]
+ ldr r0, _02022F7C ; =0x00020220
+ add r2, r5, r1
+ ldrb r0, [r2, r0]
+ cmp r0, #0x0
+ bne _02022EEC
+ mov r2, #0x1
+ b _02022EEE
+_02022EEC:
+ mov r2, #0x0
+_02022EEE:
+ lsl r2, r2, #0x18
+ add r0, r5, #0x0
+ lsr r2, r2, #0x18
+ bl FUN_02022DC8
+ str r0, [r4, #0x10]
+ ldr r0, [r4, #0x14]
+ add r0, r0, #0x1
+ str r0, [r4, #0x14]
+_02022F00:
+ ldr r0, [r4, #0x10]
+ add r1, sp, #0x0
+ bl FUN_020236E4
+ cmp r0, #0x0
+ beq _02022F78
+ ldr r0, [sp, #0x0]
+ cmp r0, #0x0
+ bne _02022F16
+ mov r0, #0x3
+ pop {r3-r5, pc}
+_02022F16:
+ ldr r0, [r4, #0x14]
+ add r0, r0, #0x1
+ str r0, [r4, #0x14]
+ ldr r0, [r4, #0x8]
+ add r1, r0, #0x1
+ ldr r0, [r4, #0xc]
+ cmp r1, r0
+ bne _02022F2A
+ mov r0, #0x1
+ pop {r3-r5, pc}
+_02022F2A:
+ ldr r1, [r4, #0x8]
+ ldr r0, _02022F7C ; =0x00020220
+ add r2, r5, r1
+ ldrb r0, [r2, r0]
+ cmp r0, #0x0
+ bne _02022F3A
+ mov r2, #0x1
+ b _02022F3C
+_02022F3A:
+ mov r2, #0x0
+_02022F3C:
+ lsl r2, r2, #0x18
+ add r0, r5, #0x0
+ lsr r2, r2, #0x18
+ bl FUN_02022D94
+ str r0, [r4, #0x10]
+ ldr r0, [r4, #0x14]
+ add r0, r0, #0x1
+ str r0, [r4, #0x14]
+_02022F4E:
+ ldr r0, [r4, #0x10]
+ add r1, sp, #0x0
+ bl FUN_020236E4
+ cmp r0, #0x0
+ beq _02022F78
+ ldr r0, [sp, #0x0]
+ cmp r0, #0x0
+ bne _02022F64
+ mov r0, #0x3
+ pop {r3-r5, pc}
+_02022F64:
+ ldr r0, [r4, #0x8]
+ add r1, r0, #0x1
+ str r1, [r4, #0x8]
+ ldr r0, [r4, #0xc]
+ cmp r1, r0
+ bne _02022F74
+ mov r0, #0x2
+ pop {r3-r5, pc}
+_02022F74:
+ mov r0, #0x0
+ str r0, [r4, #0x14]
+_02022F78:
+ mov r0, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+_02022F7C: .word 0x00020220
+
+ thumb_func_start FUN_02022F80
+FUN_02022F80: ; 0x02022F80
+ push {r3-r7, lr}
+ add r3, r0, #0x0
+ add r0, r1, #0x0
+ cmp r2, #0x3
+ bne _02022FAA
+ ldr r1, [r0, #0x0]
+ cmp r1, #0x0
+ beq _02022F96
+ ldr r2, [r0, #0x18]
+ ldr r1, _02022FE4 ; =0x00020214
+ str r2, [r3, r1]
+_02022F96:
+ ldr r1, _02022FE8 ; =0x00020218
+ mov r4, #0x0
+_02022F9A:
+ ldr r2, [r0, #0x1c]
+ add r4, r4, #0x1
+ str r2, [r3, r1]
+ add r0, r0, #0x4
+ add r3, r3, #0x4
+ cmp r4, #0x2
+ blt _02022F9A
+ b _02022FDA
+_02022FAA:
+ ldr r6, [r0, #0x4]
+ ldr r1, [r0, #0xc]
+ cmp r6, r1
+ bge _02022FD0
+ ldr r1, _02022FEC ; =0x00020220
+ mov r7, #0x1
+ add r2, r1, #0x0
+_02022FB8:
+ add r5, r3, r6
+ ldrb r4, [r5, r2]
+ cmp r4, #0x0
+ bne _02022FC4
+ add r4, r7, #0x0
+ b _02022FC6
+_02022FC4:
+ mov r4, #0x0
+_02022FC6:
+ strb r4, [r5, r1]
+ ldr r4, [r0, #0xc]
+ add r6, r6, #0x1
+ cmp r6, r4
+ blt _02022FB8
+_02022FD0:
+ mov r0, #0x1
+ str r0, [r3, #0x4]
+ mov r0, #0x0
+ str r0, [r3, #0x8]
+ str r0, [r3, #0xc]
+_02022FDA:
+ mov r0, #0x1
+ bl FUN_02016454
+ pop {r3-r7, pc}
+ nop
+_02022FE4: .word 0x00020214
+_02022FE8: .word 0x00020218
+_02022FEC: .word 0x00020220
+
+ thumb_func_start FUN_02022FF0
+FUN_02022FF0: ; 0x02022FF0
+ push {r3-r5, lr}
+ add r4, r1, #0x0
+ ldr r1, [r4, #0x0]
+ cmp r1, #0x0
+ beq _02023000
+ ldr r2, [r4, #0x18]
+ ldr r1, _0202303C ; =0x00020214
+ str r2, [r0, r1]
+_02023000:
+ ldr r1, _02023040 ; =0x00020218
+ mov r3, #0x0
+ add r5, r4, #0x0
+_02023006:
+ ldr r2, [r5, #0x1c]
+ add r3, r3, #0x1
+ str r2, [r0, r1]
+ add r5, r5, #0x4
+ add r0, r0, #0x4
+ cmp r3, #0x2
+ blt _02023006
+ blx CARD_TryWaitBackupAsync
+ cmp r0, #0x0
+ bne _02023034
+ blx CARD_CancelBackupAsync
+ ldr r0, [r4, #0x10]
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ blx CARD_UnlockBackup
+ ldr r0, [r4, #0x10]
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ blx OS_ReleaseLockID
+_02023034:
+ mov r0, #0x1
+ bl FUN_02016454
+ pop {r3-r5, pc}
+ .balign 4
+_0202303C: .word 0x00020214
+_02023040: .word 0x00020218
+
+ thumb_func_start FUN_02023044
+FUN_02023044: ; 0x02023044
+ push {r3-r6, lr}
+ sub sp, #0x24
+ add r1, sp, #0x0
+ mov r2, #0x2
+ add r5, r0, #0x0
+ bl FUN_02022DFC
+ add r6, sp, #0x0
+_02023054:
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ bl FUN_02022E78
+ add r4, r0, #0x0
+ beq _02023054
+ cmp r4, #0x1
+ beq _02023054
+ add r0, r5, #0x0
+ add r1, sp, #0x0
+ add r2, r4, #0x0
+ bl FUN_02022F80
+ add r0, r4, #0x0
+ add sp, #0x24
+ pop {r3-r6, pc}
+
+ thumb_func_start FUN_02023074
+FUN_02023074: ; 0x02023074
+ push {r4-r5, lr}
+ sub sp, #0x14
+ add r4, r2, #0x0
+ ldr r2, _020230A8 ; =0x00020464
+ add r2, r0, r2
+ mov r0, #0xc
+ mul r0, r1
+ add r5, r2, r0
+ add r0, sp, #0x0
+ mov r1, #0xff
+ mov r2, #0x14
+ blx MI_CpuFill8
+ add r0, r4, #0x0
+ add r1, r5, #0x0
+ bl FUN_020228A4
+ ldr r1, [r5, #0x8]
+ mov r2, #0x14
+ add r0, r1, r0
+ sub r0, #0x14
+ add r1, sp, #0x0
+ bl FUN_020235D0
+ add sp, #0x14
+ pop {r4-r5, pc}
+ .balign 4
+_020230A8: .word 0x00020464
+
+ thumb_func_start FUN_020230AC
+FUN_020230AC: ; 0x020230AC
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ ldr r0, _020230DC ; =0x020EE6DC
+ ldr r4, _020230E0 ; =0x020EE700
+ ldr r0, [r0, #0x0]
+ cmp r5, r0
+ blt _020230BE
+ bl ErrorHandling
+_020230BE:
+ lsl r0, r5, #0x4
+ add r0, r4, r0
+ ldr r0, [r0, #0x8]
+ blx r0
+ lsr r3, r0, #0x1f
+ lsl r2, r0, #0x1e
+ sub r2, r2, r3
+ mov r1, #0x1e
+ ror r2, r1
+ add r2, r3, r2
+ mov r1, #0x4
+ sub r1, r1, r2
+ add r0, r0, r1
+ pop {r3-r5, pc}
+ nop
+_020230DC: .word 0x020EE6DC
+_020230E0: .word 0x020EE700
+
+ thumb_func_start FUN_020230E4
+FUN_020230E4: ; 0x020230E4
+ push {r3-r7, lr}
+ sub sp, #0x8
+ add r5, r0, #0x0
+ ldr r0, _02023158 ; =0x020EE6DC
+ ldr r4, _0202315C ; =0x020EE700
+ ldr r0, [r0, #0x0]
+ mov r7, #0x0
+ str r0, [sp, #0x0]
+ cmp r0, #0x24
+ beq _020230FC
+ bl ErrorHandling
+_020230FC:
+ ldr r0, [sp, #0x0]
+ mov r6, #0x0
+ cmp r0, #0x0
+ ble _02023148
+ sub r0, r0, #0x1
+ str r0, [sp, #0x4]
+_02023108:
+ ldr r0, [r4, #0x0]
+ cmp r6, r0
+ beq _02023112
+ bl ErrorHandling
+_02023112:
+ ldr r0, [r4, #0x0]
+ str r0, [r5, #0x0]
+ add r0, r6, #0x0
+ bl FUN_020230AC
+ str r0, [r5, #0x4]
+ str r7, [r5, #0x8]
+ mov r0, #0x0
+ strh r0, [r5, #0xc]
+ ldr r0, [r4, #0x4]
+ strh r0, [r5, #0xe]
+ ldr r0, [r5, #0x4]
+ add r7, r7, r0
+ ldr r0, [sp, #0x4]
+ cmp r6, r0
+ beq _0202313A
+ ldr r1, [r4, #0x4]
+ ldr r0, [r4, #0x14]
+ cmp r1, r0
+ beq _0202313C
+_0202313A:
+ add r7, #0x14
+_0202313C:
+ ldr r0, [sp, #0x0]
+ add r6, r6, #0x1
+ add r4, #0x10
+ add r5, #0x10
+ cmp r6, r0
+ blt _02023108
+_02023148:
+ mov r0, #0x2
+ lsl r0, r0, #0x10
+ cmp r7, r0
+ ble _02023154
+ bl ErrorHandling
+_02023154:
+ add sp, #0x8
+ pop {r3-r7, pc}
+ .balign 4
+_02023158: .word 0x020EE6DC
+_0202315C: .word 0x020EE700
+
+ thumb_func_start FUN_02023160
+FUN_02023160: ; 0x02023160
+ push {r3-r7, lr}
+ sub sp, #0x8
+ str r0, [sp, #0x0]
+ mov r0, #0x0
+ str r0, [sp, #0x4]
+ mov r12, r0
+ add r3, r0, #0x0
+ add r6, r0, #0x0
+ ldr r0, _020231EC ; =0x020EE6DC
+ ldr r4, [sp, #0x0]
+ ldr r7, [r0, #0x0]
+ add r5, r1, #0x0
+_02023178:
+ add r2, r4, #0x0
+ strb r6, [r4, #0x0]
+ mov r0, #0x0
+ str r0, [r4, #0x8]
+ add r2, #0x8
+ b _02023190
+_02023184:
+ ldr r0, [r5, #0x4]
+ ldr r1, [r2, #0x0]
+ add r5, #0x10
+ add r0, r1, r0
+ str r0, [r2, #0x0]
+ add r3, r3, #0x1
+_02023190:
+ ldrh r0, [r5, #0xe]
+ cmp r6, r0
+ bne _0202319A
+ cmp r3, r7
+ blt _02023184
+_0202319A:
+ ldr r0, [r4, #0x8]
+ add r6, r6, #0x1
+ add r0, #0x14
+ str r0, [r4, #0x8]
+ ldr r0, [sp, #0x4]
+ strb r0, [r4, #0x1]
+ mov r0, r12
+ str r0, [r4, #0x4]
+ ldr r1, [r4, #0x8]
+ ldr r0, _020231F0 ; =0x00000FFF
+ add r0, r1, r0
+ lsr r0, r0, #0xc
+ strb r0, [r4, #0x2]
+ ldrb r1, [r4, #0x2]
+ ldr r0, [sp, #0x4]
+ add r0, r0, r1
+ str r0, [sp, #0x4]
+ ldr r0, [r4, #0x8]
+ mov r1, r12
+ add r0, r1, r0
+ add r4, #0xc
+ mov r12, r0
+ cmp r6, #0x2
+ blt _02023178
+ ldr r0, [sp, #0x0]
+ ldrb r1, [r0, #0xd]
+ ldrb r0, [r0, #0xe]
+ add r1, r1, r0
+ ldr r0, [sp, #0x4]
+ cmp r0, r1
+ beq _020231DC
+ bl ErrorHandling
+_020231DC:
+ ldr r0, [sp, #0x4]
+ cmp r0, #0x20
+ ble _020231E6
+ bl ErrorHandling
+_020231E6:
+ add sp, #0x8
+ pop {r3-r7, pc}
+ nop
+_020231EC: .word 0x020EE6DC
+_020231F0: .word 0x00000FFF
+
+ thumb_func_start FUN_020231F4
+FUN_020231F4: ; 0x020231F4
+ push {r3-r7, lr}
+ sub sp, #0x8
+ add r6, r0, #0x0
+ mov r2, #0x2
+ add r5, r1, #0x0
+ mov r0, #0x0
+ add r1, r6, #0x0
+ lsl r2, r2, #0x10
+ ldr r4, _02023240 ; =0x020EE700
+ blx MIi_CpuClearFast
+ ldr r0, _02023244 ; =0x020EE6DC
+ mov r7, #0x0
+ ldr r0, [r0, #0x0]
+ str r0, [sp, #0x0]
+ cmp r0, #0x0
+ ble _0202323A
+_02023216:
+ ldr r0, [r5, #0x8]
+ ldr r2, [r5, #0x4]
+ str r0, [sp, #0x4]
+ ldr r1, [sp, #0x4]
+ mov r0, #0x0
+ add r1, r6, r1
+ blx MIi_CpuClearFast
+ ldr r0, [sp, #0x4]
+ ldr r1, [r4, #0xc]
+ add r0, r6, r0
+ blx r1
+ ldr r0, [sp, #0x0]
+ add r7, r7, #0x1
+ add r5, #0x10
+ add r4, #0x10
+ cmp r7, r0
+ blt _02023216
+_0202323A:
+ add sp, #0x8
+ pop {r3-r7, pc}
+ nop
+_02023240: .word 0x020EE700
+_02023244: .word 0x020EE6DC
+
+ thumb_func_start FUN_02023248
+FUN_02023248: ; 0x02023248
+ push {r3-r5, lr}
+ ldr r5, _0202326C ; =0x20060623
+ add r4, r1, r3
+ str r5, [r1, r3]
+ ldr r5, _02023270 ; =0x000204A4
+ ldr r5, [r0, r5]
+ add r0, #0x14
+ add r5, r5, #0x1
+ str r5, [r4, #0x4]
+ str r3, [r4, #0x8]
+ add r3, #0xe
+ strh r2, [r4, #0xc]
+ add r2, r3, #0x0
+ blx MATH_CalcCRC16CCITT
+ strh r0, [r4, #0xe]
+ pop {r3-r5, pc}
+ nop
+_0202326C: .word 0x20060623
+_02023270: .word 0x000204A4
+
+ thumb_func_start FUN_02023274
+FUN_02023274: ; 0x02023274
+ push {r4-r6, lr}
+ ldr r6, [r1, r3]
+ ldr r5, _020232B0 ; =0x20060623
+ add r4, r1, r3
+ cmp r6, r5
+ beq _02023284
+ mov r0, #0x0
+ pop {r4-r6, pc}
+_02023284:
+ ldr r5, [r4, #0x8]
+ cmp r5, r3
+ beq _0202328E
+ mov r0, #0x0
+ pop {r4-r6, pc}
+_0202328E:
+ ldrh r5, [r4, #0xc]
+ cmp r5, r2
+ beq _02023298
+ mov r0, #0x0
+ pop {r4-r6, pc}
+_02023298:
+ add r3, #0xe
+ add r0, #0x14
+ add r2, r3, #0x0
+ blx MATH_CalcCRC16CCITT
+ ldrh r1, [r4, #0xe]
+ cmp r1, r0
+ bne _020232AC
+ mov r0, #0x1
+ pop {r4-r6, pc}
+_020232AC:
+ mov r0, #0x0
+ pop {r4-r6, pc}
+ .balign 4
+_020232B0: .word 0x20060623
+
+ thumb_func_start FUN_020232B4
+FUN_020232B4: ; 0x020232B4
+ add r0, r0, r1
+ ldr r0, [r0, #0x4]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_020232BC
+FUN_020232BC: ; 0x020232BC
+ push {r3-r7, lr}
+ sub sp, #0x8
+ add r7, r0, #0x0
+ mov r0, #0x1
+ add r5, r1, #0x0
+ add r6, r2, #0x0
+ bl FUN_02016444
+ ldr r0, _020233FC ; =0x020EE6D8
+ ldr r0, [r0, #0x0]
+ cmp r5, r0
+ blt _020232D8
+ bl ErrorHandling
+_020232D8:
+ ldr r1, _02023400 ; =0x020EE6E0
+ lsl r0, r5, #0x4
+ add r4, r1, r0
+ ldr r0, [r1, r0]
+ cmp r0, r5
+ beq _020232E8
+ bl ErrorHandling
+_020232E8:
+ ldr r0, [r4, #0x8]
+ blx r0
+ str r0, [sp, #0x4]
+ add r0, #0x10
+ str r0, [sp, #0x4]
+ ldr r0, _02023404 ; =0x000204A0
+ ldr r0, [r7, r0]
+ cmp r0, #0x1
+ ldr r0, [r4, #0x8]
+ bne _0202336E
+ blx r0
+ add r3, r0, #0x0
+ add r0, r7, #0x0
+ add r1, r6, #0x0
+ add r2, r5, #0x0
+ bl FUN_02023248
+ ldr r0, [r4, #0x4]
+ ldr r2, [sp, #0x4]
+ lsl r0, r0, #0xc
+ add r1, r6, #0x0
+ bl FUN_020235D0
+ str r0, [sp, #0x0]
+ ldr r0, [r4, #0x8]
+ blx r0
+ add r3, r0, #0x0
+ add r0, r7, #0x0
+ add r1, r6, #0x0
+ add r2, r5, #0x0
+ bl FUN_02023274
+ cmp r0, #0x1
+ beq _02023330
+ bl ErrorHandling
+_02023330:
+ ldr r0, [r4, #0x8]
+ blx r0
+ add r3, r0, #0x0
+ add r0, r7, #0x0
+ add r1, r6, #0x0
+ add r2, r5, #0x0
+ bl FUN_02023248
+ ldr r0, [r4, #0x4]
+ ldr r2, [sp, #0x4]
+ add r0, #0x40
+ lsl r0, r0, #0xc
+ add r1, r6, #0x0
+ bl FUN_020235D0
+ ldr r1, [sp, #0x0]
+ orr r0, r1
+ str r0, [sp, #0x0]
+ ldr r0, [r4, #0x8]
+ blx r0
+ add r3, r0, #0x0
+ add r0, r7, #0x0
+ add r1, r6, #0x0
+ add r2, r5, #0x0
+ bl FUN_02023274
+ cmp r0, #0x1
+ beq _020233DE
+ bl ErrorHandling
+ b _020233DE
+_0202336E:
+ blx r0
+ add r3, r0, #0x0
+ add r0, r7, #0x0
+ add r1, r6, #0x0
+ add r2, r5, #0x0
+ bl FUN_02023248
+ ldr r0, [r4, #0x4]
+ ldr r2, [sp, #0x4]
+ add r0, #0x40
+ lsl r0, r0, #0xc
+ add r1, r6, #0x0
+ bl FUN_020235D0
+ str r0, [sp, #0x0]
+ ldr r0, [r4, #0x8]
+ blx r0
+ add r3, r0, #0x0
+ add r0, r7, #0x0
+ add r1, r6, #0x0
+ add r2, r5, #0x0
+ bl FUN_02023274
+ cmp r0, #0x1
+ beq _020233A4
+ bl ErrorHandling
+_020233A4:
+ ldr r0, [r4, #0x8]
+ blx r0
+ add r3, r0, #0x0
+ add r0, r7, #0x0
+ add r1, r6, #0x0
+ add r2, r5, #0x0
+ bl FUN_02023248
+ ldr r0, [r4, #0x4]
+ ldr r2, [sp, #0x4]
+ lsl r0, r0, #0xc
+ add r1, r6, #0x0
+ bl FUN_020235D0
+ ldr r1, [sp, #0x0]
+ orr r0, r1
+ str r0, [sp, #0x0]
+ ldr r0, [r4, #0x8]
+ blx r0
+ add r3, r0, #0x0
+ add r0, r7, #0x0
+ add r1, r6, #0x0
+ add r2, r5, #0x0
+ bl FUN_02023274
+ cmp r0, #0x1
+ beq _020233DE
+ bl ErrorHandling
+_020233DE:
+ ldr r0, [sp, #0x0]
+ cmp r0, #0x1
+ bne _020233F0
+ mov r0, #0x1
+ bl FUN_02016454
+ add sp, #0x8
+ mov r0, #0x2
+ pop {r3-r7, pc}
+_020233F0:
+ mov r0, #0x1
+ bl FUN_02016454
+ mov r0, #0x3
+ add sp, #0x8
+ pop {r3-r7, pc}
+ .balign 4
+_020233FC: .word 0x020EE6D8
+_02023400: .word 0x020EE6E0
+_02023404: .word 0x000204A0
+
+ thumb_func_start FUN_02023408
+FUN_02023408: ; 0x02023408
+ push {r4-r7, lr}
+ sub sp, #0x14
+ add r5, r0, #0x0
+ ldr r0, _02023564 ; =0x020EE6D8
+ add r7, r2, #0x0
+ ldr r0, [r0, #0x0]
+ add r6, r1, #0x0
+ str r3, [sp, #0x0]
+ cmp r7, r0
+ blt _02023420
+ bl ErrorHandling
+_02023420:
+ ldr r1, _02023568 ; =0x020EE6E0
+ lsl r0, r7, #0x4
+ add r4, r1, r0
+ ldr r0, [r1, r0]
+ cmp r0, r7
+ beq _02023430
+ bl ErrorHandling
+_02023430:
+ ldr r0, [r4, #0x8]
+ blx r0
+ str r0, [sp, #0x10]
+ add r0, #0x10
+ str r0, [sp, #0x10]
+ ldr r1, [sp, #0x10]
+ add r0, r6, #0x0
+ bl FUN_02016998
+ add r6, r0, #0x0
+ ldr r0, [r4, #0x4]
+ ldr r2, [sp, #0x10]
+ lsl r0, r0, #0xc
+ add r1, r6, #0x0
+ bl FUN_020235EC
+ ldr r0, [r4, #0x8]
+ blx r0
+ add r3, r0, #0x0
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ add r2, r7, #0x0
+ bl FUN_02023274
+ str r0, [sp, #0xc]
+ ldr r0, [r4, #0x8]
+ blx r0
+ add r1, r0, #0x0
+ add r0, r6, #0x0
+ bl FUN_020232B4
+ str r0, [sp, #0x8]
+ ldr r0, [r4, #0x4]
+ ldr r2, [sp, #0x10]
+ add r0, #0x40
+ lsl r0, r0, #0xc
+ add r1, r6, #0x0
+ bl FUN_020235EC
+ ldr r0, [r4, #0x8]
+ blx r0
+ add r3, r0, #0x0
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ add r2, r7, #0x0
+ bl FUN_02023274
+ add r7, r0, #0x0
+ ldr r0, [r4, #0x8]
+ blx r0
+ add r1, r0, #0x0
+ add r0, r6, #0x0
+ bl FUN_020232B4
+ str r0, [sp, #0x4]
+ ldr r0, [sp, #0x0]
+ mov r1, #0x1
+ str r1, [r0, #0x0]
+ ldr r0, [sp, #0xc]
+ cmp r0, #0x1
+ bne _020234CC
+ cmp r7, #0x0
+ bne _020234CC
+ ldr r0, _0202356C ; =0x000204A0
+ mov r1, #0x0
+ str r1, [r5, r0]
+ add r1, r0, #0x4
+ ldr r0, [sp, #0x8]
+ ldr r2, [sp, #0x10]
+ str r0, [r5, r1]
+ ldr r0, [r4, #0x4]
+ add r1, r6, #0x0
+ lsl r0, r0, #0xc
+ bl FUN_020235EC
+ add sp, #0x14
+ add r0, r6, #0x0
+ pop {r4-r7, pc}
+_020234CC:
+ ldr r0, [sp, #0xc]
+ cmp r0, #0x0
+ bne _020234F6
+ cmp r7, #0x1
+ bne _020234F6
+ ldr r0, _0202356C ; =0x000204A0
+ mov r1, #0x1
+ str r1, [r5, r0]
+ add r1, r0, #0x4
+ ldr r0, [sp, #0x4]
+ ldr r2, [sp, #0x10]
+ str r0, [r5, r1]
+ ldr r0, [r4, #0x4]
+ add r1, r6, #0x0
+ add r0, #0x40
+ lsl r0, r0, #0xc
+ bl FUN_020235EC
+ add sp, #0x14
+ add r0, r6, #0x0
+ pop {r4-r7, pc}
+_020234F6:
+ ldr r0, [sp, #0xc]
+ cmp r0, #0x1
+ bne _0202354C
+ cmp r7, #0x1
+ bne _0202354C
+ ldr r0, [sp, #0x8]
+ ldr r1, [sp, #0x4]
+ bl FUN_020229B8
+ mov r1, #0x0
+ mvn r1, r1
+ cmp r0, r1
+ ldr r0, _0202356C ; =0x000204A0
+ beq _0202352E
+ mov r1, #0x0
+ str r1, [r5, r0]
+ add r1, r0, #0x4
+ ldr r0, [sp, #0x8]
+ ldr r2, [sp, #0x10]
+ str r0, [r5, r1]
+ ldr r0, [r4, #0x4]
+ add r1, r6, #0x0
+ lsl r0, r0, #0xc
+ bl FUN_020235EC
+ add sp, #0x14
+ add r0, r6, #0x0
+ pop {r4-r7, pc}
+_0202352E:
+ mov r1, #0x1
+ str r1, [r5, r0]
+ add r1, r0, #0x4
+ ldr r0, [sp, #0x4]
+ ldr r2, [sp, #0x10]
+ str r0, [r5, r1]
+ ldr r0, [r4, #0x4]
+ add r1, r6, #0x0
+ add r0, #0x40
+ lsl r0, r0, #0xc
+ bl FUN_020235EC
+ add sp, #0x14
+ add r0, r6, #0x0
+ pop {r4-r7, pc}
+_0202354C:
+ ldr r0, [sp, #0x0]
+ mov r1, #0x2
+ str r1, [r0, #0x0]
+ ldr r0, _0202356C ; =0x000204A0
+ mov r1, #0x0
+ str r1, [r5, r0]
+ add r0, r0, #0x4
+ str r1, [r5, r0]
+ add r0, r6, #0x0
+ add sp, #0x14
+ pop {r4-r7, pc}
+ nop
+_02023564: .word 0x020EE6D8
+_02023568: .word 0x020EE6E0
+_0202356C: .word 0x000204A0
+
+ thumb_func_start FUN_02023570
+FUN_02023570: ; 0x02023570
+ push {r3-r5, lr}
+ blx OS_GetLockID
+ add r4, r0, #0x0
+ mov r0, #0x2
+ mvn r0, r0
+ cmp r4, r0
+ bne _02023584
+ bl ErrorHandling
+_02023584:
+ lsl r0, r4, #0x10
+ lsr r0, r0, #0x10
+ blx CARD_LockBackup
+ ldr r0, _020235C8 ; =0x00001302
+ blx CARD_IdentifyBackup
+ cmp r0, #0x0
+ beq _0202359A
+ ldr r5, _020235C8 ; =0x00001302
+ b _020235AA
+_0202359A:
+ ldr r0, _020235CC ; =0x00001202
+ blx CARD_IdentifyBackup
+ cmp r0, #0x0
+ beq _020235A8
+ ldr r5, _020235CC ; =0x00001202
+ b _020235AA
+_020235A8:
+ mov r5, #0x0
+_020235AA:
+ lsl r0, r4, #0x10
+ lsr r0, r0, #0x10
+ blx CARD_UnlockBackup
+ lsl r0, r4, #0x10
+ lsr r0, r0, #0x10
+ blx OS_ReleaseLockID
+ cmp r5, #0x0
+ beq _020235C2
+ mov r0, #0x1
+ pop {r3-r5, pc}
+_020235C2:
+ mov r0, #0x0
+ pop {r3-r5, pc}
+ nop
+_020235C8: .word 0x00001302
+_020235CC: .word 0x00001202
+
+ thumb_func_start FUN_020235D0
+FUN_020235D0: ; 0x020235D0
+ push {r3-r5, lr}
+ bl FUN_02023668
+ add r5, r0, #0x0
+ add r4, sp, #0x0
+_020235DA:
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_020236E4
+ cmp r0, #0x0
+ beq _020235DA
+ ldr r0, [sp, #0x0]
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_020235EC
+FUN_020235EC: ; 0x020235EC
+ push {r4-r7, lr}
+ sub sp, #0x14
+ add r5, r0, #0x0
+ add r6, r1, #0x0
+ add r7, r2, #0x0
+ blx OS_GetLockID
+ add r4, r0, #0x0
+ mov r0, #0x2
+ mvn r0, r0
+ cmp r4, r0
+ bne _02023608
+ bl ErrorHandling
+_02023608:
+ lsl r0, r4, #0x10
+ lsr r0, r0, #0x10
+ blx CARD_LockBackup
+ mov r3, #0x0
+ str r3, [sp, #0x0]
+ mov r1, #0x1
+ str r1, [sp, #0x4]
+ mov r0, #0x6
+ str r0, [sp, #0x8]
+ str r1, [sp, #0xc]
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ add r2, r7, #0x0
+ str r3, [sp, #0x10]
+ blx CARDi_RequestStreamCommand
+ blx CARD_WaitBackupAsync
+ add r5, r0, #0x0
+ lsl r0, r4, #0x10
+ lsr r0, r0, #0x10
+ blx CARD_UnlockBackup
+ lsl r0, r4, #0x10
+ lsr r0, r0, #0x10
+ blx OS_ReleaseLockID
+ cmp r5, #0x0
+ bne _02023652
+ ldr r0, _02023658 ; =0x021C59C8
+ ldr r0, [r0, #0x0]
+ bl FUN_02016A18
+ mov r0, #0x1
+ bl FUN_02089D90
+_02023652:
+ add r0, r5, #0x0
+ add sp, #0x14
+ pop {r4-r7, pc}
+ .balign 4
+_02023658: .word 0x021C59C8
+
+ thumb_func_start FUN_0202365C
+FUN_0202365C: ; 0x0202365C
+ ldr r0, _02023664 ; =0x021C59C8
+ mov r1, #0x1
+ str r1, [r0, #0x4]
+ bx lr
+ .balign 4
+_02023664: .word 0x021C59C8
+
+ thumb_func_start FUN_02023668
+FUN_02023668: ; 0x02023668
+ push {r3-r7, lr}
+ sub sp, #0x18
+ add r5, r0, #0x0
+ add r6, r1, #0x0
+ add r7, r2, #0x0
+ blx OS_GetLockID
+ add r4, r0, #0x0
+ mov r0, #0x2
+ mvn r0, r0
+ cmp r4, r0
+ bne _02023684
+ bl ErrorHandling
+_02023684:
+ lsl r0, r4, #0x10
+ lsr r0, r0, #0x10
+ blx CARD_LockBackup
+ mov r0, #0x0
+ str r0, [sp, #0x0]
+ str r0, [sp, #0x4]
+ mov r1, #0x6
+ str r1, [sp, #0x8]
+ mov r1, #0x1
+ str r1, [sp, #0xc]
+ add r1, sp, #0x14
+ mov r2, #0x4
+ add r3, r0, #0x0
+ str r0, [sp, #0x10]
+ blx CARDi_RequestStreamCommand
+ cmp r0, #0x0
+ bne _020236B2
+ add r0, r4, #0x0
+ mov r1, #0x1
+ bl FUN_02023740
+_020236B2:
+ ldr r0, _020236DC ; =0x021C59C8
+ mov r1, #0x0
+ str r1, [r0, #0x4]
+ str r1, [sp, #0x0]
+ mov r0, #0x1
+ str r0, [sp, #0x4]
+ mov r0, #0x7
+ str r0, [sp, #0x8]
+ mov r0, #0xa
+ str r0, [sp, #0xc]
+ mov r0, #0x2
+ str r0, [sp, #0x10]
+ ldr r3, _020236E0 ; =FUN_0202365C
+ add r0, r6, #0x0
+ add r1, r5, #0x0
+ add r2, r7, #0x0
+ blx CARDi_RequestStreamCommand
+ add r0, r4, #0x0
+ add sp, #0x18
+ pop {r3-r7, pc}
+ .balign 4
+_020236DC: .word 0x021C59C8
+_020236E0: .word FUN_0202365C
+
+ thumb_func_start FUN_020236E4
+FUN_020236E4: ; 0x020236E4
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ ldr r0, _0202373C ; =0x021C59C8
+ add r4, r1, #0x0
+ ldr r0, [r0, #0x4]
+ cmp r0, #0x1
+ bne _02023738
+ lsl r0, r5, #0x10
+ lsr r0, r0, #0x10
+ blx CARD_UnlockBackup
+ lsl r0, r5, #0x10
+ lsr r0, r0, #0x10
+ blx OS_ReleaseLockID
+ blx CARD_GetResultCode
+ cmp r0, #0x0
+ beq _02023714
+ cmp r0, #0x4
+ beq _0202371E
+ cmp r0, #0x6
+ beq _02023728
+ b _0202371A
+_02023714:
+ mov r0, #0x1
+ str r0, [r4, #0x0]
+ b _02023734
+_0202371A:
+ bl ErrorHandling
+_0202371E:
+ mov r1, #0x0
+ add r0, r5, #0x0
+ str r1, [r4, #0x0]
+ bl FUN_02023740
+_02023728:
+ mov r0, #0x0
+ str r0, [r4, #0x0]
+ add r0, r5, #0x0
+ mov r1, #0x1
+ bl FUN_02023740
+_02023734:
+ mov r0, #0x1
+ pop {r3-r5, pc}
+_02023738:
+ mov r0, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+_0202373C: .word 0x021C59C8
+
+ thumb_func_start FUN_02023740
+FUN_02023740: ; 0x02023740
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ lsl r0, r5, #0x10
+ lsr r0, r0, #0x10
+ add r4, r1, #0x0
+ blx CARD_UnlockBackup
+ lsl r0, r5, #0x10
+ lsr r0, r0, #0x10
+ blx OS_ReleaseLockID
+ ldr r0, _02023768 ; =0x021C59C8
+ ldr r0, [r0, #0x0]
+ bl FUN_02016A18
+ mov r0, #0x1
+ add r1, r4, #0x0
+ bl FUN_0208A0B8
+ pop {r3-r5, pc}
+ .balign 4
+_02023768: .word 0x021C59C8
+
+ thumb_func_start FUN_0202376C
+FUN_0202376C: ; 0x0202376C
+ mov r0, #0x5c
+ bx lr
+
+ thumb_func_start FUN_02023770
+FUN_02023770: ; 0x02023770
+ push {r4, lr}
+ add r4, r0, #0x0
+ mov r0, #0x0
+ add r1, r4, #0x0
+ mov r2, #0x5c
+ blx MIi_CpuClearFast
+ add r4, #0x10
+ add r0, r4, #0x0
+ bl FUN_02023840
+ pop {r4, pc}
+
+ thumb_func_start FUN_02023788
+FUN_02023788: ; 0x02023788
+ ldr r3, _02023790 ; =FUN_02022610
+ mov r1, #0x0
+ bx r3
+ nop
+_02023790: .word FUN_02022610
+
+ thumb_func_start FUN_02023794
+FUN_02023794: ; 0x02023794
+ push {r3, lr}
+ bl FUN_02023788
+ add r0, #0x10
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_020237A0
+FUN_020237A0: ; 0x020237A0
+ push {r4, lr}
+ sub sp, #0x50
+ add r4, r0, #0x0
+ blx OS_GetOwnerRtcOffset
+ str r0, [r4, #0x0]
+ add r0, r4, #0x0
+ add r0, #0x8
+ str r1, [r4, #0x4]
+ blx OS_GetMacAddress
+ add r0, sp, #0x0
+ blx OS_GetOwnerInfo
+ add r0, sp, #0x0
+ ldrb r1, [r0, #0x2]
+ strb r1, [r4, #0xe]
+ ldrb r0, [r0, #0x3]
+ strb r0, [r4, #0xf]
+ add sp, #0x50
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_020237CC
+FUN_020237CC: ; 0x020237CC
+ push {r4, lr}
+ sub sp, #0x8
+ add r4, r0, #0x0
+ add r0, sp, #0x0
+ blx OS_GetMacAddress
+ mov r2, #0x0
+ add r3, sp, #0x0
+_020237DC:
+ add r0, r4, r2
+ ldrb r1, [r3, #0x0]
+ ldrb r0, [r0, #0x8]
+ cmp r1, r0
+ beq _020237EC
+ add sp, #0x8
+ mov r0, #0x0
+ pop {r4, pc}
+_020237EC:
+ add r2, r2, #0x1
+ add r3, r3, #0x1
+ cmp r2, #0x6
+ blt _020237DC
+ mov r0, #0x1
+ add sp, #0x8
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_020237FC
+FUN_020237FC: ; 0x020237FC
+ push {r4, lr}
+ add r4, r0, #0x0
+ blx OS_GetOwnerRtcOffset
+ ldr r3, [r4, #0x0]
+ ldr r2, [r4, #0x4]
+ eor r0, r3
+ eor r1, r2
+ orr r0, r1
+ bne _02023814
+ mov r0, #0x1
+ pop {r4, pc}
+_02023814:
+ mov r0, #0x0
+ pop {r4, pc}
+
+ thumb_func_start FUN_02023818
+FUN_02023818: ; 0x02023818
+ ldrb r0, [r0, #0xe]
+ bx lr
+
+ thumb_func_start FUN_0202381C
+FUN_0202381C: ; 0x0202381C
+ ldrb r0, [r0, #0xf]
+ bx lr
+
+ thumb_func_start FUN_02023820
+FUN_02023820: ; 0x02023820
+ add r0, #0x48
+ ldrb r0, [r0, #0x0]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02023828
+FUN_02023828: ; 0x02023828
+ add r0, #0x48
+ strb r1, [r0, #0x0]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02023830
+FUN_02023830: ; 0x02023830
+ ldr r0, [r0, #0x4c]
+ bx lr
+
+ thumb_func_start FUN_02023834
+FUN_02023834: ; 0x02023834
+ ldr r2, [r0, #0x4c]
+ cmp r2, #0x0
+ bne _0202383C
+ str r1, [r0, #0x4c]
+_0202383C:
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02023840
+FUN_02023840: ; 0x02023840
+ push {r4, lr}
+ add r4, r0, #0x0
+ mov r0, #0x1
+ add r1, r4, #0x0
+ str r0, [r4, #0x0]
+ add r0, r4, #0x4
+ add r1, #0x14
+ bl FUN_0201265C
+ add r0, r4, #0x4
+ blx RTC_ConvertDateToDay
+ add r1, r4, #0x0
+ str r0, [r4, #0x20]
+ add r0, r4, #0x4
+ add r1, #0x14
+ blx RTC_ConvertDateTimeToSecond
+ str r0, [r4, #0x24]
+ str r1, [r4, #0x28]
+ mov r0, #0x0
+ str r0, [r4, #0x2c]
+ str r0, [r4, #0x30]
+ str r0, [r4, #0x34]
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02023874
+FUN_02023874: ; 0x02023874
+ ldr r0, [r0, #0x34]
+ cmp r0, #0x0
+ beq _0202387E
+ mov r0, #0x1
+ bx lr
+_0202387E:
+ mov r0, #0x0
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02023884
+FUN_02023884: ; 0x02023884
+ mov r2, #0x5a
+ ldr r3, [r0, #0x34]
+ lsl r2, r2, #0x4
+ cmp r3, r2
+ bls _02023890
+ str r2, [r0, #0x34]
+_02023890:
+ ldr r2, [r0, #0x34]
+ cmp r2, r1
+ bhs _0202389C
+ mov r1, #0x0
+ str r1, [r0, #0x34]
+ bx lr
+_0202389C:
+ sub r1, r2, r1
+ str r1, [r0, #0x34]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_020238A4
+FUN_020238A4: ; 0x020238A4
+ push {r4, lr}
+ add r4, r0, #0x0
+ mov r0, #0x5a
+ lsl r0, r0, #0x4
+ add r1, r4, #0x0
+ str r0, [r4, #0x34]
+ add r0, r4, #0x4
+ add r1, #0x14
+ bl FUN_0201265C
+ add r0, r4, #0x4
+ blx RTC_ConvertDateToDay
+ str r0, [r4, #0x20]
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_020238C4
+FUN_020238C4: ; 0x020238C4
+ mov r0, #0x2c
+ bx lr
+
+ thumb_func_start FUN_020238C8
+FUN_020238C8: ; 0x020238C8
+ push {r4, lr}
+ add r4, r0, #0x0
+ mov r0, #0x0
+ add r1, r4, #0x0
+ mov r2, #0x2c
+ blx MIi_CpuClearFast
+ add r0, r4, #0x0
+ bl FUN_02024F50
+ add r0, r4, #0x4
+ bl FUN_02023948
+ add r0, r4, #0x0
+ add r0, #0x24
+ bl FUN_02028910
+ add r4, #0x26
+ add r0, r4, #0x0
+ bl FUN_02029E48
+ pop {r4, pc}
+
+ thumb_func_start FUN_020238F4
+FUN_020238F4: ; 0x020238F4
+ push {r3, lr}
+ mov r1, #0x1
+ bl FUN_02022610
+ add r0, r0, #0x4
+ pop {r3, pc}
+
+ thumb_func_start LoadPlayerDataAddress
+LoadPlayerDataAddress: ; 0x02023900
+ ldr r3, _02023908 ; =FUN_02022610
+ mov r1, #0x1
+ bx r3
+ nop
+_02023908: .word FUN_02022610
+
+ thumb_func_start FUN_0202390C
+FUN_0202390C: ; 0x0202390C
+ push {r3, lr}
+ mov r1, #0x1
+ bl FUN_02022610
+ add r0, #0x24
+ pop {r3, pc}
+
+ thumb_func_start FUN_02023918
+FUN_02023918: ; 0x02023918
+ push {r3, lr}
+ mov r1, #0x1
+ bl FUN_02022610
+ add r0, #0x26
+ pop {r3, pc}
+
+ thumb_func_start FUN_02023924
+FUN_02023924: ; 0x02023924
+ mov r0, #0x20
+ bx lr
+
+ thumb_func_start FUN_02023928
+FUN_02023928: ; 0x02023928
+ push {r4, lr}
+ mov r1, #0x20
+ bl FUN_02016998
+ add r4, r0, #0x0
+ bl FUN_02023948
+ add r0, r4, #0x0
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0202393C
+FUN_0202393C: ; 0x0202393C
+ ldr r3, _02023944 ; =MI_CpuCopy8
+ mov r2, #0x20
+ bx r3
+ nop
+_02023944: .word MI_CpuCopy8
+
+ thumb_func_start FUN_02023948
+FUN_02023948: ; 0x02023948
+ push {r4, lr}
+ mov r1, #0x0
+ mov r2, #0x20
+ add r4, r0, #0x0
+ blx Call_FillMemWithValue
+ mov r0, #0x2
+ strb r0, [r4, #0x19]
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0202395C
+FUN_0202395C: ; 0x0202395C
+ push {r3-r5, lr}
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ add r0, r4, #0x0
+ bl StringLength
+ cmp r0, #0x8
+ blt _02023970
+ bl ErrorHandling
+_02023970:
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl StringCopy
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_0202397C
+FUN_0202397C: ; 0x0202397C
+ ldr r3, _02023988 ; =FUN_02021EF0
+ add r2, r0, #0x0
+ add r0, r1, #0x0
+ add r1, r2, #0x0
+ mov r2, #0x8
+ bx r3
+ .balign 4
+_02023988: .word FUN_02021EF0
+
+ thumb_func_start FUN_0202398C
+FUN_0202398C: ; 0x0202398C
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02023990
+FUN_02023990: ; 0x02023990
+ ldr r3, _0202399C ; =FUN_02021E28
+ add r2, r0, #0x0
+ add r0, r1, #0x0
+ add r1, r2, #0x0
+ bx r3
+ nop
+_0202399C: .word FUN_02021E28
+
+ thumb_func_start FUN_020239A0
+FUN_020239A0: ; 0x020239A0
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ mov r0, #0x8
+ bl FUN_020219F4
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_02023990
+ add r0, r4, #0x0
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_020239B8
+FUN_020239B8: ; 0x020239B8
+ str r1, [r0, #0x10]
+ bx lr
+
+ thumb_func_start FUN_020239BC
+FUN_020239BC: ; 0x020239BC
+ ldr r0, [r0, #0x10]
+ bx lr
+
+ thumb_func_start FUN_020239C0
+FUN_020239C0: ; 0x020239C0
+ ldr r0, [r0, #0x10]
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ bx lr
+
+ thumb_func_start FUN_020239C8
+FUN_020239C8: ; 0x020239C8
+ strb r1, [r0, #0x18]
+ bx lr
+
+ thumb_func_start FUN_020239CC
+FUN_020239CC: ; 0x020239CC
+ ldrb r0, [r0, #0x18]
+ bx lr
+
+ thumb_func_start FUN_020239D0
+FUN_020239D0: ; 0x020239D0
+ ldrb r3, [r0, #0x1a]
+ mov r0, #0x1
+ add r2, r0, #0x0
+ lsl r2, r1
+ add r1, r3, #0x0
+ tst r1, r2
+ bne _020239E0
+ mov r0, #0x0
+_020239E0:
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_020239E4
+FUN_020239E4: ; 0x020239E4
+ ldrb r3, [r0, #0x1a]
+ mov r2, #0x1
+ lsl r2, r1
+ add r1, r3, #0x0
+ orr r1, r2
+ strb r1, [r0, #0x1a]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_020239F4
+FUN_020239F4: ; 0x020239F4
+ ldrb r3, [r0, #0x1a]
+ mov r2, #0x0
+ cmp r3, #0x0
+ beq _02023A0A
+ mov r0, #0x1
+_020239FE:
+ add r1, r3, #0x0
+ tst r1, r0
+ beq _02023A06
+ add r2, r2, #0x1
+_02023A06:
+ lsr r3, r3, #0x1
+ bne _020239FE
+_02023A0A:
+ add r0, r2, #0x0
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02023A10
+FUN_02023A10: ; 0x02023A10
+ ldr r0, [r0, #0x14]
+ bx lr
+
+ thumb_func_start FUN_02023A14
+FUN_02023A14: ; 0x02023A14
+ ldr r2, _02023A24 ; =0x000F423F
+ cmp r1, r2
+ bls _02023A1C
+ add r1, r2, #0x0
+_02023A1C:
+ str r1, [r0, #0x14]
+ add r0, r1, #0x0
+ bx lr
+ nop
+_02023A24: .word 0x000F423F
+
+ thumb_func_start FUN_02023A28
+FUN_02023A28: ; 0x02023A28
+ ldrb r0, [r0, #0x1b]
+ bx lr
+
+ thumb_func_start FUN_02023A2C
+FUN_02023A2C: ; 0x02023A2C
+ strb r1, [r0, #0x1b]
+ bx lr
+
+ thumb_func_start FUN_02023A30
+FUN_02023A30: ; 0x02023A30
+ ldr r2, _02023A50 ; =0x000F423F
+ cmp r1, r2
+ bls _02023A3A
+ str r2, [r0, #0x14]
+ b _02023A40
+_02023A3A:
+ ldr r2, [r0, #0x14]
+ add r1, r2, r1
+ str r1, [r0, #0x14]
+_02023A40:
+ ldr r2, [r0, #0x14]
+ ldr r1, _02023A50 ; =0x000F423F
+ cmp r2, r1
+ bls _02023A4A
+ str r1, [r0, #0x14]
+_02023A4A:
+ ldr r0, [r0, #0x14]
+ bx lr
+ nop
+_02023A50: .word 0x000F423F
+
+ thumb_func_start FUN_02023A54
+FUN_02023A54: ; 0x02023A54
+ ldr r2, [r0, #0x14]
+ cmp r2, r1
+ bhs _02023A5E
+ mov r1, #0x0
+ b _02023A60
+_02023A5E:
+ sub r1, r2, r1
+_02023A60:
+ str r1, [r0, #0x14]
+ ldr r0, [r0, #0x14]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02023A68
+FUN_02023A68: ; 0x02023A68
+ ldrb r0, [r0, #0x1c]
+ bx lr
+
+ thumb_func_start FUN_02023A6C
+FUN_02023A6C: ; 0x02023A6C
+ strb r1, [r0, #0x1c]
+ bx lr
+
+ thumb_func_start FUN_02023A70
+FUN_02023A70: ; 0x02023A70
+ ldrb r0, [r0, #0x19]
+ bx lr
+
+ thumb_func_start FUN_02023A74
+FUN_02023A74: ; 0x02023A74
+ strb r1, [r0, #0x19]
+ bx lr
+
+ thumb_func_start FUN_02023A78
+FUN_02023A78: ; 0x02023A78
+ ldrb r2, [r0, #0x1d]
+ mov r1, #0x1
+ bic r2, r1
+ mov r1, #0x1
+ orr r1, r2
+ strb r1, [r0, #0x1d]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02023A88
+FUN_02023A88: ; 0x02023A88
+ ldrb r0, [r0, #0x1d]
+ lsl r0, r0, #0x1f
+ lsr r0, r0, #0x1f
+ bx lr
+
+ thumb_func_start FUN_02023A90
+FUN_02023A90: ; 0x02023A90
+ ldrb r2, [r0, #0x1d]
+ mov r1, #0x2
+ orr r1, r2
+ strb r1, [r0, #0x1d]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02023A9C
+FUN_02023A9C: ; 0x02023A9C
+ ldrb r0, [r0, #0x1d]
+ lsl r0, r0, #0x1e
+ lsr r0, r0, #0x1f
+ bx lr
+
+ thumb_func_start FUN_02023AA4
+FUN_02023AA4: ; 0x02023AA4
+ push {r3-r5, lr}
+ mov r2, #0x7
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ bl StringNotEqualN
+ cmp r0, #0x0
+ bne _02023AC0
+ ldr r1, [r5, #0x10]
+ ldr r0, [r4, #0x10]
+ cmp r1, r0
+ bne _02023AC0
+ mov r0, #0x1
+ pop {r3-r5, pc}
+_02023AC0:
+ mov r0, #0x0
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_02023AC4
+FUN_02023AC4: ; 0x02023AC4
+ mov r0, #0x20
+ bx lr
+
+ thumb_func_start FUN_02023AC8
+FUN_02023AC8: ; 0x02023AC8
+ mov r0, #0x20
+ bx lr
+
+ thumb_func_start FUN_02023ACC
+FUN_02023ACC: ; 0x02023ACC
+ ldr r3, _02023AD4 ; =MI_CpuCopy8
+ mov r2, #0x20
+ bx r3
+ nop
+_02023AD4: .word MI_CpuCopy8
+
+ thumb_func_start FUN_02023AD8
+FUN_02023AD8: ; 0x02023AD8
+ ldr r3, _02023AE0 ; =Call_FillMemWithValue
+ mov r1, #0x0
+ mov r2, #0x20
+ bx r3
+ .balign 4
+_02023AE0: .word Call_FillMemWithValue
+
+ thumb_func_start FUN_02023AE4
+FUN_02023AE4: ; 0x02023AE4
+ ldr r3, _02023AF0 ; =FUN_02021E8C
+ add r2, r0, #0x0
+ add r0, r1, #0x0
+ add r1, r2, #0x0
+ mov r2, #0xc
+ bx r3
+ .balign 4
+_02023AF0: .word FUN_02021E8C
+
+ thumb_func_start FUN_02023AF4
+FUN_02023AF4: ; 0x02023AF4
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ mov r0, #0x18
+ bl FUN_020219F4
+ add r1, r5, #0x0
+ add r4, r0, #0x0
+ bl FUN_02021E28
+ add r0, r4, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_02023B0C
+FUN_02023B0C: ; 0x02023B0C
+ mov r2, #0x0
+ cmp r1, #0xc
+ bhi _02023B9E
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #0x6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_02023B1E: ; jump table (using 16-bit offset)
+ .short _02023B9E - _02023B1E - 2; case 0
+ .short _02023B38 - _02023B1E - 2; case 1
+ .short _02023B3C - _02023B1E - 2; case 2
+ .short _02023B40 - _02023B1E - 2; case 3
+ .short _02023B44 - _02023B1E - 2; case 4
+ .short _02023B4C - _02023B1E - 2; case 5
+ .short _02023B52 - _02023B1E - 2; case 6
+ .short _02023B66 - _02023B1E - 2; case 7
+ .short _02023B6C - _02023B1E - 2; case 8
+ .short _02023B80 - _02023B1E - 2; case 9
+ .short _02023B88 - _02023B1E - 2; case 10
+ .short _02023B90 - _02023B1E - 2; case 11
+ .short _02023B98 - _02023B1E - 2; case 12
+_02023B38:
+ ldrb r2, [r0, #0x1a]
+ b _02023B9E
+_02023B3C:
+ ldrb r2, [r0, #0x1b]
+ b _02023B9E
+_02023B40:
+ ldrh r2, [r0, #0x18]
+ b _02023B9E
+_02023B44:
+ ldrb r0, [r0, #0x1e]
+ lsl r0, r0, #0x1f
+ lsr r2, r0, #0x1f
+ b _02023B9E
+_02023B4C:
+ mov r1, #0x1c
+ ldrsb r2, [r0, r1]
+ b _02023B9E
+_02023B52:
+ mov r1, #0x1c
+ ldrsb r0, [r0, r1]
+ cmp r0, #0x0
+ ble _02023B5E
+ mov r2, #0x1
+ b _02023B9E
+_02023B5E:
+ bge _02023B9E
+ add r2, r1, #0x0
+ sub r2, #0x1d
+ b _02023B9E
+_02023B66:
+ mov r1, #0x1d
+ ldrsb r2, [r0, r1]
+ b _02023B9E
+_02023B6C:
+ mov r1, #0x1d
+ ldrsb r0, [r0, r1]
+ cmp r0, #0x0
+ ble _02023B78
+ mov r2, #0x1
+ b _02023B9E
+_02023B78:
+ bge _02023B9E
+ add r2, r1, #0x0
+ sub r2, #0x1e
+ b _02023B9E
+_02023B80:
+ ldrb r0, [r0, #0x1e]
+ lsl r0, r0, #0x1c
+ lsr r2, r0, #0x1f
+ b _02023B9E
+_02023B88:
+ ldrb r0, [r0, #0x1e]
+ lsl r0, r0, #0x1d
+ lsr r2, r0, #0x1f
+ b _02023B9E
+_02023B90:
+ ldrb r0, [r0, #0x1e]
+ lsl r0, r0, #0x1e
+ lsr r2, r0, #0x1f
+ b _02023B9E
+_02023B98:
+ ldrb r0, [r0, #0x1e]
+ lsl r0, r0, #0x1b
+ lsr r2, r0, #0x1f
+_02023B9E:
+ add r0, r2, #0x0
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02023BA4
+FUN_02023BA4: ; 0x02023BA4
+ push {r3-r5, lr}
+ add r5, r1, #0x0
+ add r4, r0, #0x0
+ cmp r5, #0x1
+ blt _02023BB2
+ bl ErrorHandling
+_02023BB2:
+ add r0, r4, #0x0
+ mov r1, #0xd
+ bl FUN_02022610
+ add r4, r0, #0x0
+ lsl r5, r5, #0x5
+ add r0, r4, r5
+ mov r1, #0x1
+ bl FUN_02023B0C
+ cmp r0, #0x0
+ beq _02023BCE
+ add r0, r4, r5
+ pop {r3-r5, pc}
+_02023BCE:
+ mov r0, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_02023BD4
+FUN_02023BD4: ; 0x02023BD4
+ push {r4, lr}
+ add r4, r1, #0x0
+ mov r1, #0xd
+ bl FUN_02022610
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_02023ACC
+ pop {r4, pc}
+
+ thumb_func_start FUN_02023BE8
+FUN_02023BE8: ; 0x02023BE8
+ push {r3, lr}
+ cmp r1, #0x5
+ bhs _02023BF6
+ ldr r2, _02023C00 ; =0x02105BD4
+ lsl r0, r1, #0x5
+ add r0, r2, r0
+ pop {r3, pc}
+_02023BF6:
+ mov r1, #0xd
+ bl FUN_02022610
+ pop {r3, pc}
+ nop
+_02023C00: .word 0x02105BD4
+
+ thumb_func_start FUN_02023C04
+FUN_02023C04: ; 0x02023C04
+ push {r4-r6, lr}
+ add r5, r1, #0x0
+ add r4, r2, #0x0
+ cmp r5, #0x5
+ bhs _02023C2C
+ ldr r2, _02023C3C ; =0x0000013A
+ mov r0, #0x0
+ mov r1, #0x1a
+ bl FUN_0200A86C
+ add r5, #0x38
+ add r6, r0, #0x0
+ add r1, r5, #0x0
+ add r2, r4, #0x0
+ bl FUN_0200A8E0
+ add r0, r6, #0x0
+ bl FUN_0200A8B8
+ pop {r4-r6, pc}
+_02023C2C:
+ mov r1, #0x0
+ bl FUN_02023BA4
+ add r1, r4, #0x0
+ bl FUN_02023AE4
+ pop {r4-r6, pc}
+ nop
+_02023C3C: .word 0x0000013A
+
+ thumb_func_start FUN_02023C40
+FUN_02023C40: ; 0x02023C40
+ mov r0, #0x1e
+ lsl r0, r0, #0x4
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02023C48
+FUN_02023C48: ; 0x02023C48
+ push {r4, lr}
+ mov r2, #0x1e
+ add r4, r0, #0x0
+ mov r1, #0x0
+ lsl r2, r2, #0x4
+ blx Call_FillMemWithValue
+ add r0, r4, #0x0
+ bl FUN_020669A0
+ add r0, r4, #0x0
+ add r0, #0xec
+ bl FUN_020669A0
+ mov r0, #0x76
+ mov r1, #0x0
+ lsl r0, r0, #0x2
+ str r1, [r4, r0]
+ add r0, r0, #0x4
+ strb r1, [r4, r0]
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02023C74
+FUN_02023C74: ; 0x02023C74
+ mov r2, #0xec
+ mul r2, r1
+ add r0, r0, r2
+ bx lr
+
+ thumb_func_start FUN_02023C7C
+FUN_02023C7C: ; 0x02023C7C
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02023C80
+FUN_02023C80: ; 0x02023C80
+ add r0, #0x88
+ bx lr
+
+ thumb_func_start FUN_02023C84
+FUN_02023C84: ; 0x02023C84
+ add r0, #0xe8
+ ldr r0, [r0, #0x0]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02023C8C
+FUN_02023C8C: ; 0x02023C8C
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02023C90
+FUN_02023C90: ; 0x02023C90
+ mov r1, #0x76
+ lsl r1, r1, #0x2
+ ldr r0, [r0, r1]
+ bx lr
+
+ thumb_func_start FUN_02023C98
+FUN_02023C98: ; 0x02023C98
+ mov r1, #0x77
+ lsl r1, r1, #0x2
+ ldrb r0, [r0, r1]
+ bx lr
+
+ thumb_func_start FUN_02023CA0
+FUN_02023CA0: ; 0x02023CA0
+ add r0, #0xe8
+ str r1, [r0, #0x0]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02023CA8
+FUN_02023CA8: ; 0x02023CA8
+ add r2, r0, #0x0
+ add r2, #0xe8
+ ldr r2, [r2, #0x0]
+ add r0, #0xe8
+ add r1, r2, r1
+ str r1, [r0, #0x0]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02023CB8
+FUN_02023CB8: ; 0x02023CB8
+ mov r2, #0x76
+ lsl r2, r2, #0x2
+ str r1, [r0, r2]
+ bx lr
+
+ thumb_func_start FUN_02023CC0
+FUN_02023CC0: ; 0x02023CC0
+ mov r2, #0x77
+ lsl r2, r2, #0x2
+ strb r1, [r0, r2]
+ bx lr
+
+ thumb_func_start FUN_02023CC8
+FUN_02023CC8: ; 0x02023CC8
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ mov r1, #0xc
+ mov r2, #0x0
+ bl FUN_020672BC
+ add r5, #0xec
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ mov r1, #0xc
+ mov r2, #0x0
+ bl FUN_020672BC
+ cmp r4, r0
+ beq _02023CEA
+ mov r0, #0x1
+ pop {r3-r5, pc}
+_02023CEA:
+ mov r0, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_02023CF0
+FUN_02023CF0: ; 0x02023CF0
+ push {r3-r4}
+ add r4, r0, #0x0
+ add r3, r1, #0x0
+ mov r2, #0x1d
+_02023CF8:
+ ldmia r3!, {r0-r1}
+ stmia r4!, {r0-r1}
+ sub r2, r2, #0x1
+ bne _02023CF8
+ ldr r0, [r3, #0x0]
+ str r0, [r4, #0x0]
+ pop {r3-r4}
+ bx lr
+
+ thumb_func_start FUN_02023D08
+FUN_02023D08: ; 0x02023D08
+ push {r3-r4}
+ mov r1, #0x0
+ add r2, r0, #0x0
+ add r4, r1, #0x0
+_02023D10:
+ add r1, r1, #0x1
+ strh r4, [r2, #0x38]
+ add r2, r2, #0x2
+ cmp r1, #0x8
+ blt _02023D10
+ add r3, r0, #0x0
+ mov r2, #0x0
+_02023D1E:
+ add r1, r3, #0x0
+ add r1, #0x48
+ add r4, r4, #0x1
+ add r3, r3, #0x2
+ strh r2, [r1, #0x0]
+ cmp r4, #0xb
+ blt _02023D1E
+ ldr r1, _02023D38 ; =0x0000FFFF
+ strh r1, [r0, #0x38]
+ add r0, #0x48
+ strh r1, [r0, #0x0]
+ pop {r3-r4}
+ bx lr
+ .balign 4
+_02023D38: .word 0x0000FFFF
+
+ thumb_func_start FUN_02023D3C
+FUN_02023D3C: ; 0x02023D3C
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl FUN_020669A0
+ add r0, r4, #0x0
+ mov r1, #0x0
+ add r0, #0xe8
+ add r4, #0x88
+ str r1, [r0, #0x0]
+ add r0, r4, #0x0
+ bl FUN_02023D08
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02023D58
+FUN_02023D58: ; 0x02023D58
+ ldr r3, _02023D60 ; =FUN_02022610
+ mov r1, #0x8
+ bx r3
+ nop
+_02023D60: .word FUN_02022610
+
+ thumb_func_start FUN_02023D64
+FUN_02023D64: ; 0x02023D64
+ mov r0, #0x4f
+ lsl r0, r0, #0x2
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02023D6C
+FUN_02023D6C: ; 0x02023D6C
+ push {r4, lr}
+ mov r1, #0x4f
+ lsl r1, r1, #0x2
+ bl FUN_02016998
+ add r4, r0, #0x0
+ bl FUN_02024378
+ add r0, r4, #0x0
+ pop {r4, pc}
+
+ thumb_func_start FUN_02023D80
+FUN_02023D80: ; 0x02023D80
+ ldr r3, _02023D88 ; =MI_CpuCopy8
+ mov r2, #0x4f
+ lsl r2, r2, #0x2
+ bx r3
+ .balign 4
+_02023D88: .word MI_CpuCopy8
+
+ thumb_func_start FUN_02023D8C
+FUN_02023D8C: ; 0x02023D8C
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ ldr r0, _02023DE8 ; =0x000001A6
+ add r4, r1, #0x0
+ cmp r4, r0
+ beq _02023DA2
+ add r0, r0, #0x1
+ cmp r4, r0
+ beq _02023DA2
+ bl ErrorHandling
+_02023DA2:
+ lsl r1, r4, #0x10
+ add r0, r5, #0x0
+ lsr r1, r1, #0x10
+ bl FUN_020245F0
+ cmp r0, #0x0
+ bne _02023DB4
+ mov r0, #0x0
+ pop {r3-r5, pc}
+_02023DB4:
+ ldr r0, _02023DE8 ; =0x000001A6
+ cmp r4, r0
+ bne _02023DBE
+ sub r0, #0x9e
+ b _02023DC0
+_02023DBE:
+ sub r0, #0x9d
+_02023DC0:
+ add r0, r5, r0
+ ldrb r1, [r0, #0x0]
+ mov r2, #0x1
+ add r0, r1, #0x0
+ tst r0, r2
+ bne _02023DCE
+ mov r2, #0x0
+_02023DCE:
+ mov r0, #0x2
+ tst r0, r1
+ beq _02023DD8
+ mov r0, #0x1
+ b _02023DDA
+_02023DD8:
+ mov r0, #0x0
+_02023DDA:
+ cmp r2, r0
+ bne _02023DE2
+ mov r0, #0x1
+ pop {r3-r5, pc}
+_02023DE2:
+ mov r0, #0x2
+ pop {r3-r5, pc}
+ nop
+_02023DE8: .word 0x000001A6
+
+ thumb_func_start FUN_02023DEC
+FUN_02023DEC: ; 0x02023DEC
+ push {r3-r7, lr}
+ add r7, r0, #0x0
+ ldr r0, _02023E6C ; =0x000001A6
+ add r6, r1, #0x0
+ add r5, r2, #0x0
+ cmp r6, r0
+ beq _02023E04
+ add r0, r0, #0x1
+ cmp r6, r0
+ beq _02023E04
+ bl ErrorHandling
+_02023E04:
+ lsl r1, r6, #0x10
+ add r0, r7, #0x0
+ lsr r1, r1, #0x10
+ bl FUN_020245F0
+ cmp r0, #0x0
+ bne _02023E16
+ mov r0, #0x0
+ pop {r3-r7, pc}
+_02023E16:
+ ldr r0, _02023E6C ; =0x000001A6
+ cmp r6, r0
+ bne _02023E20
+ sub r0, #0x9e
+ b _02023E22
+_02023E20:
+ sub r0, #0x9d
+_02023E22:
+ add r4, r7, r0
+ add r0, r7, #0x0
+ add r1, r6, #0x0
+ bl FUN_02023D8C
+ mov r6, #0x0
+ cmp r0, #0x0
+ bls _02023E66
+ mov r1, #0x1
+_02023E34:
+ add r2, r6, #0x1
+ lsl r2, r2, #0x10
+ lsr r2, r2, #0x10
+ sub r2, r2, #0x1
+ lsl r2, r2, #0x10
+ lsr r3, r2, #0x10
+ add r7, r3, #0x0
+ mov r2, #0x7
+ asr r3, r3, #0x3
+ and r7, r2
+ add r2, r1, #0x0
+ ldrb r3, [r4, r3]
+ lsl r2, r7
+ tst r2, r3
+ beq _02023E56
+ add r2, r1, #0x0
+ b _02023E58
+_02023E56:
+ mov r2, #0x0
+_02023E58:
+ cmp r2, r5
+ bne _02023E60
+ mov r0, #0x1
+ pop {r3-r7, pc}
+_02023E60:
+ add r6, r6, #0x1
+ cmp r6, r0
+ blo _02023E34
+_02023E66:
+ mov r0, #0x0
+ pop {r3-r7, pc}
+ nop
+_02023E6C: .word 0x000001A6
+
+ thumb_func_start FUN_02023E70
+FUN_02023E70: ; 0x02023E70
+ push {r3-r7, lr}
+ add r6, r0, #0x0
+ ldr r0, _02023F28 ; =0x000001A6
+ add r5, r1, #0x0
+ add r7, r2, #0x0
+ cmp r5, r0
+ beq _02023E88
+ add r0, r0, #0x1
+ cmp r5, r0
+ beq _02023E88
+ bl ErrorHandling
+_02023E88:
+ lsl r2, r7, #0x18
+ add r0, r6, #0x0
+ add r1, r5, #0x0
+ lsr r2, r2, #0x18
+ bl FUN_02023DEC
+ cmp r0, #0x0
+ bne _02023F26
+ ldr r0, _02023F28 ; =0x000001A6
+ cmp r5, r0
+ bne _02023EA2
+ sub r0, #0x9e
+ b _02023EA4
+_02023EA2:
+ sub r0, #0x9d
+_02023EA4:
+ add r4, r6, r0
+ add r0, r6, #0x0
+ add r1, r5, #0x0
+ bl FUN_02023D8C
+ add r5, r0, #0x0
+ cmp r5, #0x2
+ bge _02023F26
+ add r0, r5, #0x1
+ lsl r0, r0, #0x10
+ lsr r6, r0, #0x10
+ lsl r0, r7, #0x18
+ lsr r0, r0, #0x18
+ cmp r0, #0x2
+ blo _02023EC6
+ bl ErrorHandling
+_02023EC6:
+ sub r0, r6, #0x1
+ lsl r0, r0, #0x10
+ lsr r1, r0, #0x10
+ add r2, r1, #0x0
+ mov r0, #0x7
+ and r2, r0
+ asr r1, r1, #0x3
+ mov r3, #0x1
+ lsl r3, r2
+ ldrb r0, [r4, r1]
+ mvn r3, r3
+ and r0, r3
+ strb r0, [r4, r1]
+ lsl r0, r7, #0x18
+ lsr r6, r0, #0x18
+ add r0, r6, #0x0
+ ldrb r3, [r4, r1]
+ lsl r0, r2
+ orr r0, r3
+ strb r0, [r4, r1]
+ cmp r5, #0x0
+ bne _02023F26
+ add r0, r5, #0x2
+ lsl r0, r0, #0x10
+ lsr r5, r0, #0x10
+ cmp r6, #0x2
+ blo _02023F00
+ bl ErrorHandling
+_02023F00:
+ sub r0, r5, #0x1
+ lsl r0, r0, #0x10
+ lsr r2, r0, #0x10
+ mov r0, #0x7
+ add r1, r2, #0x0
+ and r1, r0
+ asr r0, r2, #0x3
+ mov r2, #0x1
+ lsl r2, r1
+ ldrb r3, [r4, r0]
+ mvn r2, r2
+ and r2, r3
+ strb r2, [r4, r0]
+ add r2, r6, #0x0
+ ldrb r3, [r4, r0]
+ lsl r2, r1
+ add r1, r3, #0x0
+ orr r1, r2
+ strb r1, [r4, r0]
+_02023F26:
+ pop {r3-r7, pc}
+ .balign 4
+_02023F28: .word 0x000001A6
+
+ thumb_func_start FUN_02023F2C
+FUN_02023F2C: ; 0x02023F2C
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ mov r0, #0x67
+ add r4, r1, #0x0
+ lsl r0, r0, #0x2
+ cmp r4, r0
+ beq _02023F44
+ add r0, r0, #0x1
+ cmp r4, r0
+ beq _02023F44
+ bl ErrorHandling
+_02023F44:
+ lsl r1, r4, #0x10
+ add r0, r5, #0x0
+ lsr r1, r1, #0x10
+ bl FUN_020245F0
+ cmp r0, #0x0
+ bne _02023F56
+ mov r0, #0x0
+ pop {r3-r5, pc}
+_02023F56:
+ mov r0, #0x67
+ lsl r0, r0, #0x2
+ cmp r4, r0
+ bne _02023F62
+ sub r0, #0x92
+ b _02023F64
+_02023F62:
+ sub r0, #0x91
+_02023F64:
+ add r1, r5, r0
+ mov r0, #0x0
+ mov r3, #0x3
+_02023F6A:
+ lsl r2, r0, #0x10
+ lsr r5, r2, #0x10
+ asr r2, r5, #0x2
+ ldrb r4, [r1, r2]
+ lsl r2, r5, #0x1e
+ lsr r2, r2, #0x1d
+ asr r4, r2
+ add r2, r4, #0x0
+ and r2, r3
+ cmp r2, #0x3
+ beq _02023F86
+ add r0, r0, #0x1
+ cmp r0, #0x3
+ blt _02023F6A
+_02023F86:
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_02023F88
+FUN_02023F88: ; 0x02023F88
+ push {r4-r6, lr}
+ add r6, r0, #0x0
+ mov r0, #0x67
+ add r5, r1, #0x0
+ lsl r0, r0, #0x2
+ add r4, r2, #0x0
+ cmp r5, r0
+ beq _02023FA2
+ add r0, r0, #0x1
+ cmp r5, r0
+ beq _02023FA2
+ bl ErrorHandling
+_02023FA2:
+ lsl r1, r5, #0x10
+ add r0, r6, #0x0
+ lsr r1, r1, #0x10
+ bl FUN_020245F0
+ cmp r0, #0x0
+ bne _02023FB4
+ mov r0, #0x0
+ pop {r4-r6, pc}
+_02023FB4:
+ mov r0, #0x67
+ lsl r0, r0, #0x2
+ cmp r5, r0
+ bne _02023FC0
+ sub r0, #0x92
+ b _02023FC2
+_02023FC0:
+ sub r0, #0x91
+_02023FC2:
+ add r1, r6, r0
+ mov r0, #0x0
+ mov r3, #0x3
+_02023FC8:
+ lsl r2, r0, #0x10
+ lsr r6, r2, #0x10
+ asr r2, r6, #0x2
+ ldrb r5, [r1, r2]
+ lsl r2, r6, #0x1e
+ lsr r2, r2, #0x1d
+ asr r5, r2
+ add r2, r5, #0x0
+ and r2, r3
+ cmp r2, r4
+ bne _02023FE2
+ mov r0, #0x1
+ pop {r4-r6, pc}
+_02023FE2:
+ add r0, r0, #0x1
+ cmp r0, #0x3
+ blt _02023FC8
+ mov r0, #0x0
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_02023FEC
+FUN_02023FEC: ; 0x02023FEC
+ push {r3-r7, lr}
+ add r6, r0, #0x0
+ mov r0, #0x67
+ add r5, r1, #0x0
+ lsl r0, r0, #0x2
+ add r7, r2, #0x0
+ cmp r5, r0
+ beq _02024006
+ add r0, r0, #0x1
+ cmp r5, r0
+ beq _02024006
+ bl ErrorHandling
+_02024006:
+ lsl r2, r7, #0x18
+ add r0, r6, #0x0
+ add r1, r5, #0x0
+ lsr r2, r2, #0x18
+ bl FUN_02023F88
+ cmp r0, #0x0
+ bne _02024064
+ mov r0, #0x67
+ lsl r0, r0, #0x2
+ cmp r5, r0
+ bne _02024022
+ sub r0, #0x92
+ b _02024024
+_02024022:
+ sub r0, #0x91
+_02024024:
+ add r4, r6, r0
+ add r0, r6, #0x0
+ add r1, r5, #0x0
+ bl FUN_02023F2C
+ add r5, r0, #0x0
+ cmp r5, #0x3
+ bge _02024064
+ lsl r0, r7, #0x18
+ lsr r0, r0, #0x18
+ cmp r0, #0x4
+ blo _02024040
+ bl ErrorHandling
+_02024040:
+ lsl r0, r5, #0x10
+ lsr r2, r0, #0x10
+ lsl r0, r2, #0x1e
+ lsr r1, r0, #0x1d
+ asr r0, r2, #0x2
+ mov r2, #0x3
+ lsl r2, r1
+ ldrb r3, [r4, r0]
+ mvn r2, r2
+ and r2, r3
+ strb r2, [r4, r0]
+ lsl r2, r7, #0x18
+ lsr r2, r2, #0x18
+ ldrb r3, [r4, r0]
+ lsl r2, r1
+ add r1, r3, #0x0
+ orr r1, r2
+ strb r1, [r4, r0]
+_02024064:
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_02024068
+FUN_02024068: ; 0x02024068
+ push {r4-r6, lr}
+ add r6, r2, #0x0
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ cmp r6, #0x4
+ blo _02024078
+ bl ErrorHandling
+_02024078:
+ cmp r4, #0xf
+ bls _02024080
+ bl ErrorHandling
+_02024080:
+ cmp r6, #0x2
+ bhs _0202409E
+ lsl r0, r6, #0x2
+ add r0, #0x18
+ mov r1, #0xf
+ lsl r1, r0
+ ldr r2, [r5, #0x40]
+ mvn r1, r1
+ and r2, r1
+ add r1, r4, #0x0
+ lsl r1, r0
+ add r0, r2, #0x0
+ orr r0, r1
+ str r0, [r5, #0x40]
+ pop {r4-r6, pc}
+_0202409E:
+ sub r0, r6, #0x2
+ lsl r0, r0, #0x18
+ add r1, r5, #0x0
+ lsr r0, r0, #0x16
+ add r1, #0x80
+ ldr r2, [r1, #0x0]
+ add r0, #0x18
+ mov r1, #0xf
+ lsl r1, r0
+ mvn r1, r1
+ and r2, r1
+ add r1, r5, #0x0
+ add r1, #0x80
+ str r2, [r1, #0x0]
+ add r1, r5, #0x0
+ add r1, #0x80
+ ldr r2, [r1, #0x0]
+ add r1, r4, #0x0
+ lsl r1, r0
+ add r0, r2, #0x0
+ orr r0, r1
+ add r5, #0x80
+ str r0, [r5, #0x0]
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_020240D0
+FUN_020240D0: ; 0x020240D0
+ push {r3-r6}
+ mov r3, #0xf
+ mov r1, #0x0
+ add r4, r3, #0x0
+_020240D8:
+ lsl r2, r1, #0x18
+ lsr r6, r2, #0x18
+ cmp r6, #0x2
+ bhs _020240EE
+ lsl r2, r6, #0x2
+ ldr r5, [r0, #0x40]
+ add r2, #0x18
+ lsr r5, r2
+ add r2, r5, #0x0
+ and r2, r4
+ b _02024102
+_020240EE:
+ add r2, r0, #0x0
+ add r2, #0x80
+ ldr r5, [r2, #0x0]
+ sub r2, r6, #0x2
+ lsl r2, r2, #0x18
+ lsr r2, r2, #0x16
+ add r2, #0x18
+ lsr r5, r2
+ add r2, r5, #0x0
+ and r2, r3
+_02024102:
+ cmp r2, #0xf
+ beq _0202410C
+ add r1, r1, #0x1
+ cmp r1, #0x4
+ blt _020240D8
+_0202410C:
+ add r0, r1, #0x0
+ pop {r3-r6}
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02024114
+FUN_02024114: ; 0x02024114
+ push {r4-r7}
+ mov r2, #0xf
+ mov r6, #0x0
+ add r3, r2, #0x0
+_0202411C:
+ lsl r4, r6, #0x18
+ lsr r5, r4, #0x18
+ cmp r5, #0x2
+ bhs _02024134
+ ldr r7, [r0, #0x40]
+ lsl r4, r5, #0x2
+ add r4, #0x18
+ add r5, r7, #0x0
+ lsr r5, r4
+ add r4, r5, #0x0
+ and r4, r3
+ b _02024146
+_02024134:
+ add r4, r0, #0x0
+ sub r5, r5, #0x2
+ add r4, #0x80
+ lsl r5, r5, #0x18
+ lsr r5, r5, #0x16
+ ldr r4, [r4, #0x0]
+ add r5, #0x18
+ lsr r4, r5
+ and r4, r2
+_02024146:
+ cmp r1, r4
+ bne _02024150
+ mov r0, #0x1
+ pop {r4-r7}
+ bx lr
+_02024150:
+ add r6, r6, #0x1
+ cmp r6, #0x4
+ blt _0202411C
+ mov r0, #0x0
+ pop {r4-r7}
+ bx lr
+
+ thumb_func_start FUN_0202415C
+FUN_0202415C: ; 0x0202415C
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ add r6, r1, #0x0
+ add r0, r2, #0x0
+ mov r1, #0x70
+ mov r2, #0x0
+ bl FUN_020671BC
+ lsl r0, r0, #0x18
+ lsr r4, r0, #0x18
+ ldr r0, _02024198 ; =0x00000182
+ cmp r6, r0
+ bne _02024196
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_02024114
+ cmp r0, #0x0
+ bne _02024196
+ add r0, r5, #0x0
+ bl FUN_020240D0
+ add r2, r0, #0x0
+ lsl r2, r2, #0x18
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ lsr r2, r2, #0x18
+ bl FUN_02024068
+_02024196:
+ pop {r4-r6, pc}
+ .balign 4
+_02024198: .word 0x00000182
+
+ thumb_func_start FUN_0202419C
+FUN_0202419C: ; 0x0202419C
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ mov r4, #0x0
+ mov r6, #0xf
+_020241A4:
+ lsl r2, r4, #0x18
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ lsr r2, r2, #0x18
+ bl FUN_02024068
+ add r4, r4, #0x1
+ cmp r4, #0x4
+ blt _020241A4
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_020241B8
+FUN_020241B8: ; 0x020241B8
+ push {r4-r6, lr}
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ cmp r4, #0xc9
+ bne _02024210
+ add r0, r2, #0x0
+ bl FUN_020690CC
+ lsl r1, r0, #0x18
+ lsr r3, r1, #0x18
+ mov r1, #0x43
+ mov r4, #0x0
+ add r6, r5, #0x0
+ lsl r1, r1, #0x2
+_020241D4:
+ ldrb r2, [r6, r1]
+ cmp r3, r2
+ bne _020241DE
+ mov r1, #0x1
+ b _020241E8
+_020241DE:
+ add r4, r4, #0x1
+ add r6, r6, #0x1
+ cmp r4, #0x1c
+ blt _020241D4
+ mov r1, #0x0
+_020241E8:
+ cmp r1, #0x0
+ bne _02024290
+ mov r1, #0x43
+ mov r3, #0x0
+ add r4, r5, #0x0
+ lsl r1, r1, #0x2
+_020241F4:
+ ldrb r2, [r4, r1]
+ cmp r2, #0xff
+ beq _02024202
+ add r3, r3, #0x1
+ add r4, r4, #0x1
+ cmp r3, #0x1c
+ blt _020241F4
+_02024202:
+ cmp r3, #0x1c
+ bge _02024290
+ mov r1, #0x43
+ add r2, r5, r3
+ lsl r1, r1, #0x2
+ strb r0, [r2, r1]
+ pop {r4-r6, pc}
+_02024210:
+ mov r6, #0x67
+ lsl r6, r6, #0x2
+ cmp r4, r6
+ bne _0202422E
+ add r0, r2, #0x0
+ mov r1, #0x70
+ mov r2, #0x0
+ bl FUN_020671BC
+ add r2, r0, #0x0
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_02023FEC
+ pop {r4-r6, pc}
+_0202422E:
+ add r3, r6, #0x1
+ cmp r4, r3
+ bne _0202424A
+ add r0, r2, #0x0
+ mov r1, #0x70
+ mov r2, #0x0
+ bl FUN_020671BC
+ add r2, r0, #0x0
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_02023FEC
+ pop {r4-r6, pc}
+_0202424A:
+ add r3, r6, #0x0
+ add r3, #0xa
+ cmp r4, r3
+ bne _02024268
+ add r0, r2, #0x0
+ mov r1, #0x70
+ mov r2, #0x0
+ bl FUN_020671BC
+ add r2, r0, #0x0
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_02023E70
+ pop {r4-r6, pc}
+_02024268:
+ add r3, r6, #0x0
+ add r3, #0xb
+ cmp r4, r3
+ bne _02024286
+ add r0, r2, #0x0
+ mov r1, #0x70
+ mov r2, #0x0
+ bl FUN_020671BC
+ add r2, r0, #0x0
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_02023E70
+ pop {r4-r6, pc}
+_02024286:
+ sub r6, #0x1a
+ cmp r4, r6
+ bne _02024290
+ bl FUN_0202415C
+_02024290:
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_02024294
+FUN_02024294: ; 0x02024294
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ add r6, r2, #0x0
+ add r0, r1, #0x0
+ bl FUN_02087A50
+ add r4, r0, #0x0
+ add r0, r6, #0x0
+ bl FUN_02087A1C
+ cmp r4, #0xe
+ beq _020242C0
+ cmp r0, #0x6
+ beq _020242C0
+ ldr r1, _020242C4 ; =0x00000129
+ add r3, r5, r1
+ ldrb r2, [r3, r4]
+ mov r1, #0x1
+ lsl r1, r0
+ add r0, r2, #0x0
+ orr r0, r1
+ strb r0, [r3, r4]
+_020242C0:
+ pop {r4-r6, pc}
+ nop
+_020242C4: .word 0x00000129
+
+ thumb_func_start FUN_020242C8
+FUN_020242C8: ; 0x020242C8
+ push {r4-r6, lr}
+ add r6, r1, #0x0
+ add r5, r0, #0x0
+ add r0, r6, #0x0
+ mov r1, #0x12
+ add r4, r2, #0x0
+ bl FUN_02068678
+ cmp r0, #0xff
+ bne _020242EA
+ cmp r4, #0x0
+ bne _020242E4
+ mov r0, #0x2
+ pop {r4-r6, pc}
+_020242E4:
+ mov r0, #0x0
+ mvn r0, r0
+ pop {r4-r6, pc}
+_020242EA:
+ sub r0, r6, #0x1
+ lsl r0, r0, #0x10
+ lsr r2, r0, #0x10
+ mov r1, #0x1
+ mov r0, #0x7
+ add r3, r2, #0x0
+ and r3, r0
+ add r0, r1, #0x0
+ lsl r0, r3
+ asr r3, r2, #0x3
+ add r3, r5, r3
+ add r3, #0x84
+ ldrb r3, [r3, #0x0]
+ tst r0, r3
+ bne _0202430A
+ mov r1, #0x0
+_0202430A:
+ lsl r0, r1, #0x18
+ lsr r1, r0, #0x18
+ cmp r4, #0x1
+ bne _0202433A
+ add r4, r2, #0x0
+ asr r2, r2, #0x3
+ add r2, r5, r2
+ mov r0, #0x7
+ add r2, #0xc4
+ mov r3, #0x1
+ and r4, r0
+ add r0, r3, #0x0
+ ldrb r2, [r2, #0x0]
+ lsl r0, r4
+ tst r0, r2
+ bne _0202432C
+ mov r3, #0x0
+_0202432C:
+ lsl r0, r3, #0x18
+ lsr r0, r0, #0x18
+ cmp r0, r1
+ bne _0202433C
+ mov r0, #0x0
+ mvn r0, r0
+ pop {r4-r6, pc}
+_0202433A:
+ add r0, r1, #0x0
+_0202433C:
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_02024340
+FUN_02024340: ; 0x02024340
+ push {r4-r5}
+ mov r3, #0x0
+ ldr r5, _02024360 ; =0x020EE942
+ mov r4, #0x1
+ add r1, r3, #0x0
+_0202434A:
+ ldrh r2, [r5, #0x0]
+ cmp r0, r2
+ bne _02024352
+ add r4, r1, #0x0
+_02024352:
+ add r3, r3, #0x1
+ add r5, r5, #0x2
+ cmp r3, #0xb
+ blt _0202434A
+ add r0, r4, #0x0
+ pop {r4-r5}
+ bx lr
+ .balign 4
+_02024360: .word 0x020EE942
+
+ thumb_func_start FUN_02024364
+FUN_02024364: ; 0x02024364
+ ldr r1, _02024374 ; =0x000001EA
+ mov r2, #0x1
+ cmp r0, r1
+ bne _0202436E
+ mov r2, #0x0
+_0202436E:
+ add r0, r2, #0x0
+ bx lr
+ nop
+_02024374: .word 0x000001EA
+
+ thumb_func_start FUN_02024378
+FUN_02024378: ; 0x02024378
+ push {r4, lr}
+ mov r2, #0x4f
+ mov r1, #0x0
+ lsl r2, r2, #0x2
+ add r4, r0, #0x0
+ blx Call_FillMemWithValue
+ ldr r0, _020243C0 ; =0xBEEFCAFE
+ mov r1, #0x0
+ str r0, [r4, #0x0]
+ ldr r0, _020243C4 ; =0x00000139
+ mov r2, #0x1c
+ strb r1, [r4, r0]
+ sub r0, #0x2d
+ add r0, r4, r0
+ mov r1, #0xff
+ blx Call_FillMemWithValue
+ mov r1, #0xff
+ add r0, r1, #0x0
+ add r0, #0x9
+ strb r1, [r4, r0]
+ add r0, r1, #0x0
+ add r0, #0xa
+ strb r1, [r4, r0]
+ add r0, r1, #0x0
+ add r0, #0xb
+ strb r1, [r4, r0]
+ add r0, r1, #0x0
+ add r0, #0xc
+ strb r1, [r4, r0]
+ add r0, r4, #0x0
+ bl FUN_0202419C
+ pop {r4, pc}
+ nop
+_020243C0: .word 0xBEEFCAFE
+_020243C4: .word 0x00000139
+
+ thumb_func_start FUN_020243C8
+FUN_020243C8: ; 0x020243C8
+ push {r3-r7, lr}
+ add r6, r0, #0x0
+ ldr r1, [r6, #0x0]
+ ldr r0, _020243FC ; =0xBEEFCAFE
+ cmp r1, r0
+ beq _020243D8
+ bl ErrorHandling
+_020243D8:
+ ldr r7, _02024400 ; =0x000001ED
+ mov r5, #0x0
+ mov r4, #0x1
+_020243DE:
+ lsl r1, r4, #0x10
+ add r0, r6, #0x0
+ lsr r1, r1, #0x10
+ bl FUN_02024594
+ cmp r0, #0x1
+ bne _020243EE
+ add r5, r5, #0x1
+_020243EE:
+ add r4, r4, #0x1
+ cmp r4, r7
+ ble _020243DE
+ lsl r0, r5, #0x10
+ lsr r0, r0, #0x10
+ pop {r3-r7, pc}
+ nop
+_020243FC: .word 0xBEEFCAFE
+_02024400: .word 0x000001ED
+
+ thumb_func_start FUN_02024404
+FUN_02024404: ; 0x02024404
+ push {r3-r7, lr}
+ add r6, r0, #0x0
+ ldr r1, [r6, #0x0]
+ ldr r0, _02024438 ; =0xBEEFCAFE
+ cmp r1, r0
+ beq _02024414
+ bl ErrorHandling
+_02024414:
+ ldr r7, _0202443C ; =0x000001ED
+ mov r5, #0x0
+ mov r4, #0x1
+_0202441A:
+ lsl r1, r4, #0x10
+ add r0, r6, #0x0
+ lsr r1, r1, #0x10
+ bl FUN_020245F0
+ cmp r0, #0x1
+ bne _0202442A
+ add r5, r5, #0x1
+_0202442A:
+ add r4, r4, #0x1
+ cmp r4, r7
+ ble _0202441A
+ lsl r0, r5, #0x10
+ lsr r0, r0, #0x10
+ pop {r3-r7, pc}
+ nop
+_02024438: .word 0xBEEFCAFE
+_0202443C: .word 0x000001ED
+
+ thumb_func_start FUN_02024440
+FUN_02024440: ; 0x02024440
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl FUN_02024CA4
+ cmp r0, #0x0
+ beq _02024454
+ add r0, r4, #0x0
+ bl FUN_02024404
+ pop {r4, pc}
+_02024454:
+ add r0, r4, #0x0
+ bl FUN_020244A4
+ pop {r4, pc}
+
+ thumb_func_start FUN_0202445C
+FUN_0202445C: ; 0x0202445C
+ push {r3-r7, lr}
+ add r6, r0, #0x0
+ ldr r1, [r6, #0x0]
+ ldr r0, _0202449C ; =0xBEEFCAFE
+ cmp r1, r0
+ beq _0202446C
+ bl ErrorHandling
+_0202446C:
+ ldr r7, _020244A0 ; =0x000001ED
+ mov r5, #0x0
+ mov r4, #0x1
+_02024472:
+ lsl r1, r4, #0x10
+ add r0, r6, #0x0
+ lsr r1, r1, #0x10
+ bl FUN_02024594
+ cmp r0, #0x1
+ bne _0202448E
+ lsl r0, r4, #0x10
+ lsr r0, r0, #0x10
+ bl FUN_02069B40
+ cmp r0, #0x0
+ beq _0202448E
+ add r5, r5, #0x1
+_0202448E:
+ add r4, r4, #0x1
+ cmp r4, r7
+ ble _02024472
+ lsl r0, r5, #0x10
+ lsr r0, r0, #0x10
+ pop {r3-r7, pc}
+ nop
+_0202449C: .word 0xBEEFCAFE
+_020244A0: .word 0x000001ED
+
+ thumb_func_start FUN_020244A4
+FUN_020244A4: ; 0x020244A4
+ push {r3-r7, lr}
+ add r6, r0, #0x0
+ ldr r1, [r6, #0x0]
+ ldr r0, _020244E4 ; =0xBEEFCAFE
+ cmp r1, r0
+ beq _020244B4
+ bl ErrorHandling
+_020244B4:
+ ldr r7, _020244E8 ; =0x000001ED
+ mov r5, #0x0
+ mov r4, #0x1
+_020244BA:
+ lsl r1, r4, #0x10
+ add r0, r6, #0x0
+ lsr r1, r1, #0x10
+ bl FUN_020245F0
+ cmp r0, #0x1
+ bne _020244D6
+ lsl r0, r4, #0x10
+ lsr r0, r0, #0x10
+ bl FUN_02069B40
+ cmp r0, #0x0
+ beq _020244D6
+ add r5, r5, #0x1
+_020244D6:
+ add r4, r4, #0x1
+ cmp r4, r7
+ ble _020244BA
+ lsl r0, r5, #0x10
+ lsr r0, r0, #0x10
+ pop {r3-r7, pc}
+ nop
+_020244E4: .word 0xBEEFCAFE
+_020244E8: .word 0x000001ED
+
+ thumb_func_start FUN_020244EC
+FUN_020244EC: ; 0x020244EC
+ push {r3, lr}
+ bl FUN_02024518
+ ldr r1, _02024500 ; =0x000001E2
+ cmp r0, r1
+ blo _020244FC
+ mov r0, #0x1
+ pop {r3, pc}
+_020244FC:
+ mov r0, #0x0
+ pop {r3, pc}
+ .balign 4
+_02024500: .word 0x000001E2
+
+ thumb_func_start FUN_02024504
+FUN_02024504: ; 0x02024504
+ push {r3, lr}
+ bl FUN_02024550
+ cmp r0, #0x96
+ blo _02024512
+ mov r0, #0x1
+ pop {r3, pc}
+_02024512:
+ mov r0, #0x0
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_02024518
+FUN_02024518: ; 0x02024518
+ push {r3-r7, lr}
+ ldr r7, _0202454C ; =0x000001ED
+ add r6, r0, #0x0
+ mov r5, #0x0
+ mov r4, #0x1
+_02024522:
+ lsl r1, r4, #0x10
+ add r0, r6, #0x0
+ lsr r1, r1, #0x10
+ bl FUN_02024594
+ cmp r0, #0x1
+ bne _02024542
+ lsl r0, r4, #0x10
+ lsr r0, r0, #0x10
+ bl FUN_02024340
+ cmp r0, #0x1
+ bne _02024542
+ add r0, r5, #0x1
+ lsl r0, r0, #0x10
+ lsr r5, r0, #0x10
+_02024542:
+ add r4, r4, #0x1
+ cmp r4, r7
+ ble _02024522
+ add r0, r5, #0x0
+ pop {r3-r7, pc}
+ .balign 4
+_0202454C: .word 0x000001ED
+
+ thumb_func_start FUN_02024550
+FUN_02024550: ; 0x02024550
+ push {r3-r7, lr}
+ ldr r7, _02024590 ; =0x000001ED
+ add r6, r0, #0x0
+ mov r5, #0x0
+ mov r4, #0x1
+_0202455A:
+ lsl r1, r4, #0x10
+ add r0, r6, #0x0
+ lsr r1, r1, #0x10
+ bl FUN_020245F0
+ cmp r0, #0x1
+ bne _02024586
+ lsl r0, r4, #0x10
+ lsr r0, r0, #0x10
+ bl FUN_02069B40
+ cmp r0, #0x0
+ beq _02024586
+ lsl r0, r4, #0x10
+ lsr r0, r0, #0x10
+ bl FUN_02024364
+ cmp r0, #0x1
+ bne _02024586
+ add r0, r5, #0x1
+ lsl r0, r0, #0x10
+ lsr r5, r0, #0x10
+_02024586:
+ add r4, r4, #0x1
+ cmp r4, r7
+ ble _0202455A
+ add r0, r5, #0x0
+ pop {r3-r7, pc}
+ .balign 4
+_02024590: .word 0x000001ED
+
+ thumb_func_start FUN_02024594
+FUN_02024594: ; 0x02024594
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ ldr r1, [r5, #0x0]
+ ldr r0, _020245E8 ; =0xBEEFCAFE
+ cmp r1, r0
+ beq _020245A6
+ bl ErrorHandling
+_020245A6:
+ cmp r4, #0x0
+ beq _020245B0
+ ldr r0, _020245EC ; =0x000001ED
+ cmp r4, r0
+ bls _020245B8
+_020245B0:
+ bl ErrorHandling
+ mov r0, #0x1
+ b _020245BA
+_020245B8:
+ mov r0, #0x0
+_020245BA:
+ cmp r0, #0x0
+ beq _020245C2
+ mov r0, #0x0
+ pop {r3-r5, pc}
+_020245C2:
+ sub r0, r4, #0x1
+ lsl r0, r0, #0x10
+ lsr r2, r0, #0x10
+ mov r0, #0x1
+ mov r1, #0x7
+ and r1, r2
+ add r3, r0, #0x0
+ lsl r3, r1
+ asr r1, r2, #0x3
+ add r2, r5, r1
+ ldrb r1, [r2, #0x4]
+ tst r1, r3
+ beq _020245E4
+ add r2, #0x44
+ ldrb r1, [r2, #0x0]
+ tst r1, r3
+ bne _020245E6
+_020245E4:
+ mov r0, #0x0
+_020245E6:
+ pop {r3-r5, pc}
+ .balign 4
+_020245E8: .word 0xBEEFCAFE
+_020245EC: .word 0x000001ED
+
+ thumb_func_start FUN_020245F0
+FUN_020245F0: ; 0x020245F0
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ ldr r1, [r5, #0x0]
+ ldr r0, _02024640 ; =0xBEEFCAFE
+ cmp r1, r0
+ beq _02024602
+ bl ErrorHandling
+_02024602:
+ cmp r4, #0x0
+ beq _0202460C
+ ldr r0, _02024644 ; =0x000001ED
+ cmp r4, r0
+ bls _02024614
+_0202460C:
+ bl ErrorHandling
+ mov r0, #0x1
+ b _02024616
+_02024614:
+ mov r0, #0x0
+_02024616:
+ cmp r0, #0x0
+ beq _0202461E
+ mov r0, #0x0
+ pop {r3-r5, pc}
+_0202461E:
+ sub r0, r4, #0x1
+ lsl r0, r0, #0x10
+ lsr r3, r0, #0x10
+ mov r0, #0x1
+ mov r1, #0x7
+ and r1, r3
+ add r2, r0, #0x0
+ lsl r2, r1
+ asr r1, r3, #0x3
+ add r1, r5, r1
+ add r1, #0x44
+ ldrb r1, [r1, #0x0]
+ tst r1, r2
+ bne _0202463C
+ mov r0, #0x0
+_0202463C:
+ pop {r3-r5, pc}
+ nop
+_02024640: .word 0xBEEFCAFE
+_02024644: .word 0x000001ED
+
+ thumb_func_start FUN_02024648
+FUN_02024648: ; 0x02024648
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ ldr r1, [r5, #0x0]
+ ldr r0, _02024670 ; =0xBEEFCAFE
+ cmp r1, r0
+ beq _0202465A
+ bl ErrorHandling
+_0202465A:
+ cmp r4, #0x0
+ bne _02024666
+ mov r0, #0x41
+ lsl r0, r0, #0x2
+ ldr r6, [r5, r0]
+ b _0202466A
+_02024666:
+ bl ErrorHandling
+_0202466A:
+ add r0, r6, #0x0
+ pop {r4-r6, pc}
+ nop
+_02024670: .word 0xBEEFCAFE
+
+ thumb_func_start FUN_02024674
+FUN_02024674: ; 0x02024674
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ ldr r1, [r5, #0x0]
+ ldr r0, _020246D4 ; =0xBEEFCAFE
+ add r6, r2, #0x0
+ cmp r1, r0
+ beq _02024688
+ bl ErrorHandling
+_02024688:
+ cmp r4, #0x0
+ beq _02024692
+ ldr r0, _020246D8 ; =0x000001ED
+ cmp r4, r0
+ bls _0202469A
+_02024692:
+ bl ErrorHandling
+ mov r0, #0x1
+ b _0202469C
+_0202469A:
+ mov r0, #0x0
+_0202469C:
+ cmp r0, #0x0
+ beq _020246A6
+ mov r0, #0x0
+ mvn r0, r0
+ pop {r4-r6, pc}
+_020246A6:
+ sub r0, r4, #0x1
+ lsl r0, r0, #0x10
+ lsr r2, r0, #0x10
+ add r3, r2, #0x0
+ asr r2, r2, #0x3
+ add r2, r5, r2
+ mov r0, #0x7
+ add r2, #0x44
+ mov r1, #0x1
+ and r3, r0
+ ldrb r2, [r2, #0x0]
+ lsl r1, r3
+ tst r1, r2
+ beq _020246CE
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ add r2, r6, #0x0
+ bl FUN_020242C8
+ pop {r4-r6, pc}
+_020246CE:
+ sub r0, #0x8
+ pop {r4-r6, pc}
+ nop
+_020246D4: .word 0xBEEFCAFE
+_020246D8: .word 0x000001ED
+
+ thumb_func_start FUN_020246DC
+FUN_020246DC: ; 0x020246DC
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ ldr r1, [r5, #0x0]
+ ldr r0, _02024718 ; =0xBEEFCAFE
+ cmp r1, r0
+ beq _020246EE
+ bl ErrorHandling
+_020246EE:
+ mov r0, #0x43
+ mov r2, #0x0
+ lsl r0, r0, #0x2
+_020246F4:
+ add r1, r5, r2
+ ldrb r1, [r1, r0]
+ cmp r1, #0xff
+ beq _02024702
+ add r2, r2, #0x1
+ cmp r2, #0x1c
+ blt _020246F4
+_02024702:
+ cmp r2, r4
+ bgt _0202470C
+ mov r0, #0x0
+ mvn r0, r0
+ pop {r3-r5, pc}
+_0202470C:
+ mov r0, #0x43
+ add r1, r5, r4
+ lsl r0, r0, #0x2
+ ldrb r0, [r1, r0]
+ pop {r3-r5, pc}
+ nop
+_02024718: .word 0xBEEFCAFE
+
+ thumb_func_start FUN_0202471C
+FUN_0202471C: ; 0x0202471C
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r1, [r4, #0x0]
+ ldr r0, _02024744 ; =0xBEEFCAFE
+ cmp r1, r0
+ beq _0202472C
+ bl ErrorHandling
+_0202472C:
+ mov r1, #0x43
+ mov r0, #0x0
+ lsl r1, r1, #0x2
+_02024732:
+ add r2, r4, r0
+ ldrb r2, [r2, r1]
+ cmp r2, #0xff
+ beq _02024740
+ add r0, r0, #0x1
+ cmp r0, #0x1c
+ blt _02024732
+_02024740:
+ pop {r4, pc}
+ nop
+_02024744: .word 0xBEEFCAFE
+
+ thumb_func_start FUN_02024748
+FUN_02024748: ; 0x02024748
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ ldr r1, [r5, #0x0]
+ ldr r0, _0202479C ; =0xBEEFCAFE
+ cmp r1, r0
+ beq _0202475A
+ bl ErrorHandling
+_0202475A:
+ ldr r1, _020247A0 ; =0x000001A6
+ add r0, r5, #0x0
+ bl FUN_02023D8C
+ cmp r0, r4
+ bgt _0202476C
+ mov r0, #0x0
+ mvn r0, r0
+ pop {r3-r5, pc}
+_0202476C:
+ cmp r4, #0x2
+ blt _02024774
+ bl ErrorHandling
+_02024774:
+ add r0, r4, #0x1
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ sub r0, r0, #0x1
+ lsl r0, r0, #0x10
+ lsr r2, r0, #0x10
+ mov r0, #0x1
+ mov r1, #0x7
+ and r1, r2
+ add r3, r0, #0x0
+ lsl r3, r1
+ asr r1, r2, #0x3
+ add r2, r5, r1
+ mov r1, #0x42
+ lsl r1, r1, #0x2
+ ldrb r1, [r2, r1]
+ tst r1, r3
+ bne _0202479A
+ mov r0, #0x0
+_0202479A:
+ pop {r3-r5, pc}
+ .balign 4
+_0202479C: .word 0xBEEFCAFE
+_020247A0: .word 0x000001A6
+
+ thumb_func_start FUN_020247A4
+FUN_020247A4: ; 0x020247A4
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r1, [r4, #0x0]
+ ldr r0, _020247C0 ; =0xBEEFCAFE
+ cmp r1, r0
+ beq _020247B4
+ bl ErrorHandling
+_020247B4:
+ ldr r1, _020247C4 ; =0x000001A6
+ add r0, r4, #0x0
+ bl FUN_02023D8C
+ pop {r4, pc}
+ nop
+_020247C0: .word 0xBEEFCAFE
+_020247C4: .word 0x000001A6
+
+ thumb_func_start FUN_020247C8
+FUN_020247C8: ; 0x020247C8
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ ldr r1, [r5, #0x0]
+ ldr r0, _0202481C ; =0xBEEFCAFE
+ cmp r1, r0
+ beq _020247DA
+ bl ErrorHandling
+_020247DA:
+ ldr r1, _02024820 ; =0x000001A7
+ add r0, r5, #0x0
+ bl FUN_02023D8C
+ cmp r0, r4
+ bgt _020247EC
+ mov r0, #0x0
+ mvn r0, r0
+ pop {r3-r5, pc}
+_020247EC:
+ cmp r4, #0x2
+ blt _020247F4
+ bl ErrorHandling
+_020247F4:
+ add r0, r4, #0x1
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ sub r0, r0, #0x1
+ lsl r0, r0, #0x10
+ lsr r2, r0, #0x10
+ mov r0, #0x1
+ mov r1, #0x7
+ and r1, r2
+ add r3, r0, #0x0
+ lsl r3, r1
+ asr r1, r2, #0x3
+ add r2, r5, r1
+ ldr r1, _02024824 ; =0x00000109
+ ldrb r1, [r2, r1]
+ tst r1, r3
+ bne _02024818
+ mov r0, #0x0
+_02024818:
+ pop {r3-r5, pc}
+ nop
+_0202481C: .word 0xBEEFCAFE
+_02024820: .word 0x000001A7
+_02024824: .word 0x00000109
+
+ thumb_func_start FUN_02024828
+FUN_02024828: ; 0x02024828
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r1, [r4, #0x0]
+ ldr r0, _02024844 ; =0xBEEFCAFE
+ cmp r1, r0
+ beq _02024838
+ bl ErrorHandling
+_02024838:
+ ldr r1, _02024848 ; =0x000001A7
+ add r0, r4, #0x0
+ bl FUN_02023D8C
+ pop {r4, pc}
+ nop
+_02024844: .word 0xBEEFCAFE
+_02024848: .word 0x000001A7
+
+ thumb_func_start FUN_0202484C
+FUN_0202484C: ; 0x0202484C
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ ldr r1, [r5, #0x0]
+ ldr r0, _02024894 ; =0xBEEFCAFE
+ cmp r1, r0
+ beq _0202485E
+ bl ErrorHandling
+_0202485E:
+ mov r1, #0x67
+ add r0, r5, #0x0
+ lsl r1, r1, #0x2
+ bl FUN_02023F2C
+ cmp r0, r4
+ bgt _02024872
+ mov r0, #0x0
+ mvn r0, r0
+ pop {r3-r5, pc}
+_02024872:
+ cmp r4, #0x3
+ blt _0202487A
+ bl ErrorHandling
+_0202487A:
+ lsl r0, r4, #0x10
+ lsr r2, r0, #0x10
+ asr r0, r2, #0x2
+ add r1, r5, r0
+ ldr r0, _02024898 ; =0x0000010A
+ ldrb r1, [r1, r0]
+ lsl r0, r2, #0x1e
+ lsr r0, r0, #0x1d
+ asr r1, r0
+ mov r0, #0x3
+ and r0, r1
+ pop {r3-r5, pc}
+ nop
+_02024894: .word 0xBEEFCAFE
+_02024898: .word 0x0000010A
+
+ thumb_func_start FUN_0202489C
+FUN_0202489C: ; 0x0202489C
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r1, [r4, #0x0]
+ ldr r0, _020248B8 ; =0xBEEFCAFE
+ cmp r1, r0
+ beq _020248AC
+ bl ErrorHandling
+_020248AC:
+ mov r1, #0x67
+ add r0, r4, #0x0
+ lsl r1, r1, #0x2
+ bl FUN_02023F2C
+ pop {r4, pc}
+ .balign 4
+_020248B8: .word 0xBEEFCAFE
+
+ thumb_func_start FUN_020248BC
+FUN_020248BC: ; 0x020248BC
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ ldr r1, [r5, #0x0]
+ ldr r0, _02024900 ; =0xBEEFCAFE
+ cmp r1, r0
+ beq _020248CE
+ bl ErrorHandling
+_020248CE:
+ ldr r1, _02024904 ; =0x0000019D
+ add r0, r5, #0x0
+ bl FUN_02023F2C
+ cmp r0, r4
+ bgt _020248E0
+ mov r0, #0x0
+ mvn r0, r0
+ pop {r3-r5, pc}
+_020248E0:
+ cmp r4, #0x3
+ blt _020248E8
+ bl ErrorHandling
+_020248E8:
+ lsl r0, r4, #0x10
+ lsr r2, r0, #0x10
+ asr r0, r2, #0x2
+ add r1, r5, r0
+ ldr r0, _02024908 ; =0x0000010B
+ ldrb r1, [r1, r0]
+ lsl r0, r2, #0x1e
+ lsr r0, r0, #0x1d
+ asr r1, r0
+ mov r0, #0x3
+ and r0, r1
+ pop {r3-r5, pc}
+ .balign 4
+_02024900: .word 0xBEEFCAFE
+_02024904: .word 0x0000019D
+_02024908: .word 0x0000010B
+
+ thumb_func_start FUN_0202490C
+FUN_0202490C: ; 0x0202490C
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r1, [r4, #0x0]
+ ldr r0, _02024928 ; =0xBEEFCAFE
+ cmp r1, r0
+ beq _0202491C
+ bl ErrorHandling
+_0202491C:
+ ldr r1, _0202492C ; =0x0000019D
+ add r0, r4, #0x0
+ bl FUN_02023F2C
+ pop {r4, pc}
+ nop
+_02024928: .word 0xBEEFCAFE
+_0202492C: .word 0x0000019D
+
+ thumb_func_start FUN_02024930
+FUN_02024930: ; 0x02024930
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ ldr r1, [r5, #0x0]
+ ldr r0, _0202496C ; =0xBEEFCAFE
+ cmp r1, r0
+ beq _02024942
+ bl ErrorHandling
+_02024942:
+ lsl r0, r4, #0x18
+ lsr r0, r0, #0x18
+ cmp r0, #0x2
+ bhs _02024958
+ lsl r0, r0, #0x2
+ ldr r1, [r5, #0x40]
+ add r0, #0x18
+ lsr r1, r0
+ mov r0, #0xf
+ and r0, r1
+ pop {r3-r5, pc}
+_02024958:
+ add r5, #0x80
+ sub r0, r0, #0x2
+ lsl r0, r0, #0x18
+ ldr r1, [r5, #0x0]
+ lsr r0, r0, #0x16
+ add r0, #0x18
+ lsr r1, r0
+ mov r0, #0xf
+ and r0, r1
+ pop {r3-r5, pc}
+ .balign 4
+_0202496C: .word 0xBEEFCAFE
+
+ thumb_func_start FUN_02024970
+FUN_02024970: ; 0x02024970
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r1, [r4, #0x0]
+ ldr r0, _02024988 ; =0xBEEFCAFE
+ cmp r1, r0
+ beq _02024980
+ bl ErrorHandling
+_02024980:
+ add r0, r4, #0x0
+ bl FUN_020240D0
+ pop {r4, pc}
+ .balign 4
+_02024988: .word 0xBEEFCAFE
+
+ thumb_func_start FUN_0202498C
+FUN_0202498C: ; 0x0202498C
+ push {r3-r7, lr}
+ sub sp, #0x8
+ add r5, r0, #0x0
+ str r1, [sp, #0x0]
+ add r0, r1, #0x0
+ mov r1, #0x5
+ mov r2, #0x0
+ bl FUN_020671BC
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #0x4]
+ mov r1, #0x0
+ ldr r0, [sp, #0x0]
+ add r2, r1, #0x0
+ bl FUN_020671BC
+ add r7, r0, #0x0
+ ldr r0, [sp, #0x0]
+ bl FUN_020689E0
+ add r6, r0, #0x0
+ ldr r1, [r5, #0x0]
+ ldr r0, _02024AE4 ; =0xBEEFCAFE
+ cmp r1, r0
+ beq _020249C4
+ bl ErrorHandling
+_020249C4:
+ ldr r0, [sp, #0x4]
+ cmp r0, #0x0
+ beq _020249D0
+ ldr r1, _02024AE8 ; =0x000001ED
+ cmp r0, r1
+ bls _020249D8
+_020249D0:
+ bl ErrorHandling
+ mov r0, #0x1
+ b _020249DA
+_020249D8:
+ mov r0, #0x0
+_020249DA:
+ cmp r0, #0x0
+ bne _02024ADE
+ ldr r0, [sp, #0x4]
+ mov r2, #0x1
+ sub r0, r0, #0x1
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+ mov r0, #0x7
+ and r0, r4
+ add r1, r2, #0x0
+ lsl r1, r0
+ asr r0, r4, #0x3
+ add r3, r5, r0
+ add r3, #0x44
+ ldrb r3, [r3, #0x0]
+ tst r3, r1
+ bne _02024A70
+ ldr r1, _02024AEC ; =0x00000147
+ ldr r0, [sp, #0x4]
+ cmp r0, r1
+ bne _02024A08
+ sub r1, #0x43
+ str r7, [r5, r1]
+_02024A08:
+ lsl r0, r6, #0x18
+ lsr r6, r0, #0x18
+ cmp r6, #0x2
+ bls _02024A14
+ bl ErrorHandling
+_02024A14:
+ cmp r6, #0x2
+ bne _02024A1A
+ mov r6, #0x0
+_02024A1A:
+ cmp r6, #0x2
+ blo _02024A22
+ bl ErrorHandling
+_02024A22:
+ add r2, r5, #0x0
+ mov r0, #0x7
+ add r3, r4, #0x0
+ and r3, r0
+ mov r0, #0x1
+ lsl r0, r3
+ add r2, #0xc4
+ asr r1, r4, #0x3
+ ldrb r7, [r2, r1]
+ mvn r0, r0
+ and r0, r7
+ strb r0, [r2, r1]
+ add r0, r6, #0x0
+ ldrb r7, [r2, r1]
+ lsl r0, r3
+ orr r0, r7
+ strb r0, [r2, r1]
+ cmp r6, #0x2
+ blo _02024A4C
+ bl ErrorHandling
+_02024A4C:
+ add r1, r5, #0x0
+ mov r0, #0x7
+ add r2, r4, #0x0
+ and r2, r0
+ mov r3, #0x1
+ lsl r3, r2
+ add r1, #0x84
+ asr r0, r4, #0x3
+ ldrb r7, [r1, r0]
+ mvn r3, r3
+ lsl r6, r2
+ and r3, r7
+ strb r3, [r1, r0]
+ ldrb r3, [r1, r0]
+ add r2, r3, #0x0
+ orr r2, r6
+ strb r2, [r1, r0]
+ b _02024AC0
+_02024A70:
+ add r0, r5, r0
+ add r0, #0x84
+ ldrb r0, [r0, #0x0]
+ tst r0, r1
+ bne _02024A7C
+ mov r2, #0x0
+_02024A7C:
+ lsl r0, r2, #0x18
+ lsr r0, r0, #0x18
+ cmp r0, r6
+ beq _02024AC0
+ lsl r0, r6, #0x18
+ lsr r6, r0, #0x18
+ cmp r6, #0x2
+ bls _02024A90
+ bl ErrorHandling
+_02024A90:
+ cmp r6, #0x2
+ bne _02024A96
+ mov r6, #0x0
+_02024A96:
+ cmp r6, #0x2
+ blo _02024A9E
+ bl ErrorHandling
+_02024A9E:
+ add r1, r5, #0x0
+ mov r0, #0x7
+ add r2, r4, #0x0
+ and r2, r0
+ mov r3, #0x1
+ lsl r3, r2
+ add r1, #0xc4
+ asr r0, r4, #0x3
+ ldrb r7, [r1, r0]
+ mvn r3, r3
+ lsl r6, r2
+ and r3, r7
+ strb r3, [r1, r0]
+ ldrb r3, [r1, r0]
+ add r2, r3, #0x0
+ orr r2, r6
+ strb r2, [r1, r0]
+_02024AC0:
+ ldr r1, [sp, #0x4]
+ ldr r2, [sp, #0x0]
+ add r0, r5, #0x0
+ bl FUN_020241B8
+ mov r1, #0x7
+ add r5, #0x44
+ asr r0, r4, #0x3
+ ldrb r3, [r5, r0]
+ mov r2, #0x1
+ and r1, r4
+ lsl r2, r1
+ add r1, r3, #0x0
+ orr r1, r2
+ strb r1, [r5, r0]
+_02024ADE:
+ add sp, #0x8
+ pop {r3-r7, pc}
+ nop
+_02024AE4: .word 0xBEEFCAFE
+_02024AE8: .word 0x000001ED
+_02024AEC: .word 0x00000147
+
+ thumb_func_start FUN_02024AF0
+FUN_02024AF0: ; 0x02024AF0
+ push {r4-r7, lr}
+ sub sp, #0x14
+ add r4, r0, #0x0
+ str r1, [sp, #0x0]
+ add r0, r1, #0x0
+ mov r1, #0x5
+ mov r2, #0x0
+ bl FUN_020671BC
+ lsl r0, r0, #0x10
+ lsr r6, r0, #0x10
+ ldr r0, [sp, #0x0]
+ mov r1, #0xc
+ mov r2, #0x0
+ bl FUN_020671BC
+ str r0, [sp, #0x8]
+ mov r1, #0x0
+ ldr r0, [sp, #0x0]
+ add r2, r1, #0x0
+ bl FUN_020671BC
+ str r0, [sp, #0x4]
+ ldr r0, [sp, #0x0]
+ bl FUN_020689E0
+ add r7, r0, #0x0
+ ldr r1, [r4, #0x0]
+ ldr r0, _02024C78 ; =0xBEEFCAFE
+ cmp r1, r0
+ beq _02024B32
+ bl ErrorHandling
+_02024B32:
+ cmp r6, #0x0
+ beq _02024B3C
+ ldr r0, _02024C7C ; =0x000001ED
+ cmp r6, r0
+ bls _02024B44
+_02024B3C:
+ bl ErrorHandling
+ mov r0, #0x1
+ b _02024B46
+_02024B44:
+ mov r0, #0x0
+_02024B46:
+ cmp r0, #0x0
+ beq _02024B4C
+ b _02024C72
+_02024B4C:
+ sub r0, r6, #0x1
+ lsl r0, r0, #0x10
+ lsr r5, r0, #0x10
+ mov r0, #0x1
+ mov r1, #0x7
+ and r1, r5
+ add r2, r0, #0x0
+ asr r3, r5, #0x3
+ lsl r2, r1
+ add r1, r4, r3
+ add r1, #0x44
+ ldrb r1, [r1, #0x0]
+ tst r1, r2
+ bne _02024BEA
+ ldr r1, _02024C80 ; =0x00000147
+ cmp r6, r1
+ bne _02024B74
+ ldr r0, [sp, #0x4]
+ sub r1, #0x43
+ str r0, [r4, r1]
+_02024B74:
+ lsl r0, r7, #0x18
+ lsr r7, r0, #0x18
+ cmp r7, #0x2
+ bls _02024B80
+ bl ErrorHandling
+_02024B80:
+ cmp r7, #0x2
+ bne _02024B86
+ mov r7, #0x0
+_02024B86:
+ cmp r7, #0x2
+ blo _02024B8E
+ bl ErrorHandling
+_02024B8E:
+ mov r0, #0x7
+ and r0, r5
+ str r0, [sp, #0x10]
+ add r0, r4, #0x0
+ add r0, #0xc4
+ asr r3, r5, #0x3
+ ldrb r1, [r0, r3]
+ mov r2, #0x1
+ str r1, [sp, #0xc]
+ ldr r1, [sp, #0x10]
+ lsl r2, r1
+ ldr r1, [sp, #0xc]
+ mvn r2, r2
+ and r1, r2
+ strb r1, [r0, r3]
+ ldrb r1, [r0, r3]
+ add r2, r7, #0x0
+ mov r12, r1
+ ldr r1, [sp, #0x10]
+ lsl r2, r1
+ mov r1, r12
+ orr r1, r2
+ strb r1, [r0, r3]
+ cmp r7, #0x2
+ blo _02024BC4
+ bl ErrorHandling
+_02024BC4:
+ add r1, r4, #0x0
+ mov r0, #0x7
+ add r2, r5, #0x0
+ and r2, r0
+ mov r3, #0x1
+ lsl r3, r2
+ add r1, #0x84
+ asr r0, r5, #0x3
+ ldrb r5, [r1, r0]
+ mvn r3, r3
+ and r3, r5
+ strb r3, [r1, r0]
+ add r5, r7, #0x0
+ ldrb r3, [r1, r0]
+ lsl r5, r2
+ add r2, r3, #0x0
+ orr r2, r5
+ strb r2, [r1, r0]
+ b _02024C3C
+_02024BEA:
+ add r1, r4, r3
+ add r1, #0x84
+ ldrb r1, [r1, #0x0]
+ tst r1, r2
+ bne _02024BF6
+ mov r0, #0x0
+_02024BF6:
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ cmp r0, r7
+ beq _02024C3C
+ lsl r0, r7, #0x18
+ lsr r7, r0, #0x18
+ cmp r7, #0x2
+ bls _02024C0A
+ bl ErrorHandling
+_02024C0A:
+ cmp r7, #0x2
+ bne _02024C10
+ mov r7, #0x0
+_02024C10:
+ cmp r7, #0x2
+ blo _02024C18
+ bl ErrorHandling
+_02024C18:
+ add r1, r4, #0x0
+ mov r0, #0x7
+ add r2, r5, #0x0
+ and r2, r0
+ mov r3, #0x1
+ lsl r3, r2
+ add r1, #0xc4
+ asr r0, r5, #0x3
+ ldrb r5, [r1, r0]
+ mvn r3, r3
+ and r3, r5
+ strb r3, [r1, r0]
+ add r5, r7, #0x0
+ ldrb r3, [r1, r0]
+ lsl r5, r2
+ add r2, r3, #0x0
+ orr r2, r5
+ strb r2, [r1, r0]
+_02024C3C:
+ ldr r2, [sp, #0x0]
+ add r0, r4, #0x0
+ add r1, r6, #0x0
+ bl FUN_020241B8
+ ldr r2, [sp, #0x8]
+ add r0, r4, #0x0
+ add r1, r6, #0x0
+ bl FUN_02024294
+ sub r0, r6, #0x1
+ lsl r0, r0, #0x10
+ lsr r6, r0, #0x10
+ add r1, r4, #0x4
+ asr r0, r6, #0x3
+ mov r2, #0x7
+ ldrb r5, [r1, r0]
+ mov r3, #0x1
+ and r2, r6
+ lsl r3, r2
+ add r2, r5, #0x0
+ orr r2, r3
+ add r4, #0x44
+ strb r2, [r1, r0]
+ ldrb r1, [r4, r0]
+ orr r1, r3
+ strb r1, [r4, r0]
+_02024C72:
+ add sp, #0x14
+ pop {r4-r7, pc}
+ nop
+_02024C78: .word 0xBEEFCAFE
+_02024C7C: .word 0x000001ED
+_02024C80: .word 0x00000147
+
+ thumb_func_start FUN_02024C84
+FUN_02024C84: ; 0x02024C84
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r1, [r4, #0x0]
+ ldr r0, _02024C9C ; =0xBEEFCAFE
+ cmp r1, r0
+ beq _02024C94
+ bl ErrorHandling
+_02024C94:
+ ldr r0, _02024CA0 ; =0x00000139
+ mov r1, #0x1
+ strb r1, [r4, r0]
+ pop {r4, pc}
+ .balign 4
+_02024C9C: .word 0xBEEFCAFE
+_02024CA0: .word 0x00000139
+
+ thumb_func_start FUN_02024CA4
+FUN_02024CA4: ; 0x02024CA4
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r1, [r4, #0x0]
+ ldr r0, _02024CBC ; =0xBEEFCAFE
+ cmp r1, r0
+ beq _02024CB4
+ bl ErrorHandling
+_02024CB4:
+ ldr r0, _02024CC0 ; =0x00000139
+ ldrb r0, [r4, r0]
+ pop {r4, pc}
+ nop
+_02024CBC: .word 0xBEEFCAFE
+_02024CC0: .word 0x00000139
+
+ thumb_func_start FUN_02024CC4
+FUN_02024CC4: ; 0x02024CC4
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r1, [r4, #0x0]
+ ldr r0, _02024CDC ; =0xBEEFCAFE
+ cmp r1, r0
+ beq _02024CD4
+ bl ErrorHandling
+_02024CD4:
+ mov r0, #0x4a
+ lsl r0, r0, #0x2
+ ldrb r0, [r4, r0]
+ pop {r4, pc}
+ .balign 4
+_02024CDC: .word 0xBEEFCAFE
+
+ thumb_func_start FUN_02024CE0
+FUN_02024CE0: ; 0x02024CE0
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r1, [r4, #0x0]
+ ldr r0, _02024CFC ; =0xBEEFCAFE
+ cmp r1, r0
+ beq _02024CF0
+ bl ErrorHandling
+_02024CF0:
+ mov r0, #0x4a
+ mov r1, #0x1
+ lsl r0, r0, #0x2
+ strb r1, [r4, r0]
+ pop {r4, pc}
+ nop
+_02024CFC: .word 0xBEEFCAFE
+
+ thumb_func_start FUN_02024D00
+FUN_02024D00: ; 0x02024D00
+ push {r4-r6, lr}
+ add r6, r2, #0x0
+ add r4, r0, #0x0
+ add r5, r1, #0x0
+ cmp r6, #0x8
+ blo _02024D10
+ bl ErrorHandling
+_02024D10:
+ ldr r1, [r4, #0x0]
+ ldr r0, _02024D44 ; =0xBEEFCAFE
+ cmp r1, r0
+ beq _02024D1C
+ bl ErrorHandling
+_02024D1C:
+ add r0, r5, #0x0
+ bl FUN_02087A50
+ add r5, r0, #0x0
+ cmp r5, #0xe
+ bne _02024D2C
+ mov r0, #0x0
+ pop {r4-r6, pc}
+_02024D2C:
+ add r0, r6, #0x0
+ bl FUN_02087A1C
+ mov r1, #0x1
+ add r2, r1, #0x0
+ lsl r2, r0
+ ldr r0, _02024D48 ; =0x00000129
+ add r1, r4, r5
+ ldrb r0, [r1, r0]
+ and r0, r2
+ pop {r4-r6, pc}
+ nop
+_02024D44: .word 0xBEEFCAFE
+_02024D48: .word 0x00000129
+
+ thumb_func_start FUN_02024D4C
+FUN_02024D4C: ; 0x02024D4C
+ ldr r1, _02024D54 ; =0x00000137
+ mov r2, #0x1
+ strb r2, [r0, r1]
+ bx lr
+ .balign 4
+_02024D54: .word 0x00000137
+
+ thumb_func_start FUN_02024D58
+FUN_02024D58: ; 0x02024D58
+ ldr r1, _02024D60 ; =0x00000137
+ ldrb r0, [r0, r1]
+ bx lr
+ nop
+_02024D60: .word 0x00000137
+
+ thumb_func_start FUN_02024D64
+FUN_02024D64: ; 0x02024D64
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r1, [r4, #0x0]
+ ldr r0, _02024D7C ; =0xBEEFCAFE
+ cmp r1, r0
+ beq _02024D74
+ bl ErrorHandling
+_02024D74:
+ mov r0, #0x4e
+ lsl r0, r0, #0x2
+ ldrb r0, [r4, r0]
+ pop {r4, pc}
+ .balign 4
+_02024D7C: .word 0xBEEFCAFE
+
+ thumb_func_start FUN_02024D80
+FUN_02024D80: ; 0x02024D80
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r1, [r4, #0x0]
+ ldr r0, _02024D9C ; =0xBEEFCAFE
+ cmp r1, r0
+ beq _02024D90
+ bl ErrorHandling
+_02024D90:
+ mov r0, #0x4e
+ mov r1, #0x1
+ lsl r0, r0, #0x2
+ strb r1, [r4, r0]
+ pop {r4, pc}
+ nop
+_02024D9C: .word 0xBEEFCAFE
+
+ thumb_func_start FUN_02024DA0
+FUN_02024DA0: ; 0x02024DA0
+ ldr r3, _02024DA8 ; =FUN_02022610
+ mov r1, #0x7
+ bx r3
+ nop
+_02024DA8: .word FUN_02022610
+
+ thumb_func_start FUN_02024DAC
+FUN_02024DAC: ; 0x02024DAC
+ push {r3-r5, lr}
+ add r4, r2, #0x0
+ ldr r2, _02024E60 ; =0x0000019D
+ add r5, r0, #0x0
+ cmp r1, r2
+ bgt _02024DD6
+ sub r3, r2, #0x1
+ cmp r1, r3
+ blt _02024DC6
+ beq _02024E24
+ cmp r1, r2
+ beq _02024E36
+ b _02024E5A
+_02024DC6:
+ cmp r1, #0xc9
+ bgt _02024DCE
+ beq _02024DEE
+ b _02024E5A
+_02024DCE:
+ sub r2, #0x1b
+ cmp r1, r2
+ beq _02024E48
+ b _02024E5A
+_02024DD6:
+ add r3, r2, #0x0
+ add r3, #0x9
+ cmp r1, r3
+ bgt _02024DE6
+ add r2, #0x9
+ cmp r1, r2
+ beq _02024E00
+ b _02024E5A
+_02024DE6:
+ add r2, #0xa
+ cmp r1, r2
+ beq _02024E12
+ b _02024E5A
+_02024DEE:
+ bl FUN_0202471C
+ cmp r4, r0
+ bhs _02024E5A
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_020246DC
+ pop {r3-r5, pc}
+_02024E00:
+ bl FUN_020247A4
+ cmp r4, r0
+ bhs _02024E5A
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_02024748
+ pop {r3-r5, pc}
+_02024E12:
+ bl FUN_02024828
+ cmp r4, r0
+ bhs _02024E5A
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_020247C8
+ pop {r3-r5, pc}
+_02024E24:
+ bl FUN_0202489C
+ cmp r4, r0
+ bhs _02024E5A
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_0202484C
+ pop {r3-r5, pc}
+_02024E36:
+ bl FUN_0202490C
+ cmp r4, r0
+ bhs _02024E5A
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_020248BC
+ pop {r3-r5, pc}
+_02024E48:
+ bl FUN_02024970
+ cmp r4, r0
+ bhs _02024E5A
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_02024930
+ pop {r3-r5, pc}
+_02024E5A:
+ mov r0, #0x0
+ pop {r3-r5, pc}
+ nop
+_02024E60: .word 0x0000019D
+
+ thumb_func_start FUN_02024E64
+FUN_02024E64: ; 0x02024E64
+ ldr r0, _02024E68 ; =0x0000074C
+ bx lr
+ .balign 4
+_02024E68: .word 0x0000074C
+
+ thumb_func_start FUN_02024E6C
+FUN_02024E6C: ; 0x02024E6C
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r2, _02024EA4 ; =0x0000074C
+ mov r0, #0x0
+ add r1, r4, #0x0
+ blx MIi_CpuClearFast
+ add r0, r4, #0x0
+ bl FUN_020250A4
+ mov r0, #0x7
+ lsl r0, r0, #0x8
+ add r0, r4, r0
+ bl FUN_02025484
+ ldr r1, _02024EA8 ; =0x00000724
+ ldr r0, _02024EAC ; =0x0000FFFF
+ add r1, r4, r1
+ mov r2, #0x8
+ blx MIi_CpuClear16
+ ldr r1, _02024EB0 ; =0x00000734
+ ldr r0, _02024EAC ; =0x0000FFFF
+ add r1, r4, r1
+ mov r2, #0xb
+ blx MIi_CpuClear16
+ pop {r4, pc}
+ .balign 4
+_02024EA4: .word 0x0000074C
+_02024EA8: .word 0x00000724
+_02024EAC: .word 0x0000FFFF
+_02024EB0: .word 0x00000734
+
+ thumb_func_start FUN_02024EB4
+FUN_02024EB4: ; 0x02024EB4
+ ldr r3, _02024EBC ; =FUN_02022610
+ mov r1, #0xa
+ bx r3
+ nop
+_02024EBC: .word FUN_02022610
+
+ thumb_func_start FUN_02024EC0
+FUN_02024EC0: ; 0x02024EC0
+ ldr r3, _02024EC8 ; =0x02022635
+ mov r1, #0xa
+ bx r3
+ nop
+_02024EC8: .word 0x02022635
+
+ thumb_func_start FUN_02024ECC
+FUN_02024ECC: ; 0x02024ECC
+ ldr r3, _02024ED4 ; =FUN_02022610
+ mov r1, #0xa
+ bx r3
+ nop
+_02024ED4: .word FUN_02022610
+
+ thumb_func_start FUN_02024ED8
+FUN_02024ED8: ; 0x02024ED8
+ push {r3, lr}
+ mov r1, #0xa
+ bl FUN_02022610
+ mov r1, #0x7
+ lsl r1, r1, #0x8
+ add r0, r0, r1
+ pop {r3, pc}
+
+ thumb_func_start FUN_02024EE8
+FUN_02024EE8: ; 0x02024EE8
+ ldr r1, _02024EF0 ; =0x00000724
+ add r0, r0, r1
+ bx lr
+ nop
+_02024EF0: .word 0x00000724
+
+ thumb_func_start FUN_02024EF4
+FUN_02024EF4: ; 0x02024EF4
+ add r2, r0, #0x0
+ add r0, r1, #0x0
+ ldr r1, _02024F04 ; =0x00000724
+ ldr r3, _02024F08 ; =FUN_02021EF0
+ add r1, r2, r1
+ mov r2, #0x8
+ bx r3
+ nop
+_02024F04: .word 0x00000724
+_02024F08: .word FUN_02021EF0
+
+ thumb_func_start FUN_02024F0C
+FUN_02024F0C: ; 0x02024F0C
+ ldr r1, _02024F14 ; =0x00000734
+ add r0, r0, r1
+ bx lr
+ nop
+_02024F14: .word 0x00000734
+
+ thumb_func_start FUN_02024F18
+FUN_02024F18: ; 0x02024F18
+ add r2, r0, #0x0
+ add r0, r1, #0x0
+ ldr r1, _02024F28 ; =0x00000734
+ ldr r3, _02024F2C ; =FUN_02021EF0
+ add r1, r2, r1
+ mov r2, #0xb
+ bx r3
+ nop
+_02024F28: .word 0x00000734
+_02024F2C: .word FUN_02021EF0
+
+ thumb_func_start FUN_02024F30
+FUN_02024F30: ; 0x02024F30
+ push {r4, lr}
+ mov r1, #0x2
+ bl FUN_02016998
+ add r4, r0, #0x0
+ bl FUN_02024F50
+ add r0, r4, #0x0
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02024F44
+FUN_02024F44: ; 0x02024F44
+ ldr r3, _02024F4C ; =MI_CpuCopy8
+ mov r2, #0x2
+ bx r3
+ nop
+_02024F4C: .word MI_CpuCopy8
+
+ thumb_func_start FUN_02024F50
+FUN_02024F50: ; 0x02024F50
+ push {r4, lr}
+ add r4, r0, #0x0
+ mov r1, #0x0
+ mov r2, #0x2
+ blx MI_CpuFill8
+ ldrh r1, [r4, #0x0]
+ mov r0, #0xf
+ bic r1, r0
+ mov r0, #0x1
+ orr r0, r1
+ strh r0, [r4, #0x0]
+ ldrh r1, [r4, #0x0]
+ mov r0, #0x30
+ bic r1, r0
+ strh r1, [r4, #0x0]
+ ldrh r1, [r4, #0x0]
+ mov r0, #0x40
+ bic r1, r0
+ strh r1, [r4, #0x0]
+ ldrh r1, [r4, #0x0]
+ mov r0, #0x80
+ bic r1, r0
+ strh r1, [r4, #0x0]
+ ldrh r1, [r4, #0x0]
+ ldr r0, _02024F94 ; =0xFFFFFCFF
+ and r0, r1
+ strh r0, [r4, #0x0]
+ ldrh r1, [r4, #0x0]
+ ldr r0, _02024F98 ; =0xFFFF83FF
+ and r0, r1
+ strh r0, [r4, #0x0]
+ pop {r4, pc}
+ nop
+_02024F94: .word 0xFFFFFCFF
+_02024F98: .word 0xFFFF83FF
+
+ thumb_func_start FUN_02024F9C
+FUN_02024F9C: ; 0x02024F9C
+ push {r3, lr}
+ cmp r0, #0x0
+ beq _02024FAC
+ bl LoadPlayerDataAddress
+ bl FUN_02025064
+ add r1, r0, #0x0
+_02024FAC:
+ cmp r1, #0x0
+ beq _02024FCA
+ cmp r1, #0x1
+ beq _02024FBA
+ cmp r1, #0x2
+ beq _02024FC2
+ b _02024FCA
+_02024FBA:
+ ldr r0, _02024FD4 ; =0x021C48B8
+ mov r1, #0x1
+ str r1, [r0, #0x34]
+ pop {r3, pc}
+_02024FC2:
+ ldr r0, _02024FD4 ; =0x021C48B8
+ mov r1, #0x3
+ str r1, [r0, #0x34]
+ pop {r3, pc}
+_02024FCA:
+ ldr r0, _02024FD4 ; =0x021C48B8
+ mov r1, #0x0
+ str r1, [r0, #0x34]
+ pop {r3, pc}
+ nop
+_02024FD4: .word 0x021C48B8
+
+ thumb_func_start FUN_02024FD8
+FUN_02024FD8: ; 0x02024FD8
+ ldrh r0, [r0, #0x0]
+ lsl r0, r0, #0x1c
+ lsr r0, r0, #0x1c
+ bx lr
+
+ thumb_func_start FUN_02024FE0
+FUN_02024FE0: ; 0x02024FE0
+ ldrh r3, [r0, #0x0]
+ mov r2, #0xf
+ lsl r1, r1, #0x10
+ bic r3, r2
+ lsr r2, r1, #0x10
+ mov r1, #0xf
+ and r1, r2
+ orr r1, r3
+ strh r1, [r0, #0x0]
+ bx lr
+
+ thumb_func_start FUN_02024FF4
+FUN_02024FF4: ; 0x02024FF4
+ push {r3, lr}
+ bl FUN_02024FD8
+ cmp r0, #0x0
+ bne _02025002
+ mov r0, #0x8
+ pop {r3, pc}
+_02025002:
+ cmp r0, #0x1
+ bne _0202500A
+ mov r0, #0x4
+ pop {r3, pc}
+_0202500A:
+ mov r0, #0x1
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_02025010
+FUN_02025010: ; 0x02025010
+ ldrh r0, [r0, #0x0]
+ lsl r0, r0, #0x1a
+ lsr r0, r0, #0x1e
+ bx lr
+
+ thumb_func_start FUN_02025018
+FUN_02025018: ; 0x02025018
+ lsl r1, r1, #0x10
+ lsr r1, r1, #0x10
+ lsl r1, r1, #0x1e
+ ldrh r3, [r0, #0x0]
+ mov r2, #0x30
+ lsr r1, r1, #0x1a
+ bic r3, r2
+ orr r1, r3
+ strh r1, [r0, #0x0]
+ bx lr
+
+ thumb_func_start FUN_0202502C
+FUN_0202502C: ; 0x0202502C
+ ldrh r0, [r0, #0x0]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x1f
+ bx lr
+
+ thumb_func_start FUN_02025034
+FUN_02025034: ; 0x02025034
+ lsl r1, r1, #0x10
+ lsr r1, r1, #0x10
+ lsl r1, r1, #0x1f
+ ldrh r3, [r0, #0x0]
+ mov r2, #0x80
+ lsr r1, r1, #0x18
+ bic r3, r2
+ orr r1, r3
+ strh r1, [r0, #0x0]
+ bx lr
+
+ thumb_func_start FUN_02025048
+FUN_02025048: ; 0x02025048
+ ldrh r0, [r0, #0x0]
+ lsl r0, r0, #0x19
+ lsr r0, r0, #0x1f
+ bx lr
+
+ thumb_func_start FUN_02025050
+FUN_02025050: ; 0x02025050
+ lsl r1, r1, #0x10
+ lsr r1, r1, #0x10
+ lsl r1, r1, #0x1f
+ ldrh r3, [r0, #0x0]
+ mov r2, #0x40
+ lsr r1, r1, #0x19
+ bic r3, r2
+ orr r1, r3
+ strh r1, [r0, #0x0]
+ bx lr
+
+ thumb_func_start FUN_02025064
+FUN_02025064: ; 0x02025064
+ ldrh r0, [r0, #0x0]
+ lsl r0, r0, #0x16
+ lsr r0, r0, #0x1e
+ bx lr
+
+ thumb_func_start FUN_0202506C
+FUN_0202506C: ; 0x0202506C
+ lsl r1, r1, #0x10
+ lsr r1, r1, #0x10
+ lsl r1, r1, #0x1e
+ ldrh r3, [r0, #0x0]
+ ldr r2, _02025080 ; =0xFFFFFCFF
+ lsr r1, r1, #0x16
+ and r2, r3
+ orr r1, r2
+ strh r1, [r0, #0x0]
+ bx lr
+ .balign 4
+_02025080: .word 0xFFFFFCFF
+
+ thumb_func_start FUN_02025084
+FUN_02025084: ; 0x02025084
+ ldrh r0, [r0, #0x0]
+ lsl r0, r0, #0x11
+ lsr r0, r0, #0x1b
+ bx lr
+
+ thumb_func_start FUN_0202508C
+FUN_0202508C: ; 0x0202508C
+ lsl r1, r1, #0x10
+ lsr r1, r1, #0x10
+ lsl r1, r1, #0x1b
+ ldrh r3, [r0, #0x0]
+ ldr r2, _020250A0 ; =0xFFFF83FF
+ lsr r1, r1, #0x11
+ and r2, r3
+ orr r1, r2
+ strh r1, [r0, #0x0]
+ bx lr
+ .balign 4
+_020250A0: .word 0xFFFF83FF
+
+ thumb_func_start FUN_020250A4
+FUN_020250A4: ; 0x020250A4
+ push {r4, lr}
+ mov r2, #0x7
+ mov r1, #0x0
+ lsl r2, r2, #0x8
+ add r4, r0, #0x0
+ blx MI_CpuFill8
+ mov r1, #0x0
+ add r0, r1, #0x0
+_020250B6:
+ strb r0, [r4, #0x1]
+ strb r0, [r4, #0x0]
+ add r1, r1, #0x1
+ add r4, #0xe
+ cmp r1, #0x80
+ blt _020250B6
+ pop {r4, pc}
+
+ thumb_func_start FUN_020250C4
+FUN_020250C4: ; 0x020250C4
+ push {r4-r7, lr}
+ sub sp, #0xc
+ add r5, r0, #0x0
+ add r0, r1, #0x0
+ str r2, [sp, #0x0]
+ str r3, [sp, #0x4]
+ bl FUN_02025128
+ mov r4, #0x0
+ str r0, [sp, #0x8]
+ add r6, r4, #0x0
+ b _02025112
+_020250DC:
+ add r0, r5, #0x0
+ bl FUN_02025184
+ ldr r0, [sp, #0x0]
+ lsl r1, r6, #0x1
+ add r7, r0, r1
+ ldrh r0, [r0, r1]
+ sub r0, #0x94
+ strb r0, [r5, #0x0]
+ mov r0, #0x5
+ strb r0, [r5, #0x1]
+ ldrb r1, [r5, #0x0]
+ ldrb r2, [r5, #0xc]
+ ldr r0, [sp, #0x8]
+ bl FUN_020251B0
+ lsl r0, r0, #0x2
+ strh r0, [r5, #0x2]
+ ldrh r0, [r7, #0x2]
+ add r6, r6, #0x2
+ add r4, r4, #0x1
+ strh r0, [r5, #0x8]
+ mov r0, #0x64
+ strb r0, [r5, #0xa]
+ mov r0, #0x3
+ strb r0, [r5, #0xb]
+ add r5, #0xe
+_02025112:
+ cmp r4, #0x80
+ blt _020250DC
+ ldr r0, [sp, #0x4]
+ cmp r4, r0
+ blt _020250DC
+ ldr r0, [sp, #0x8]
+ bl FUN_02016A18
+ add sp, #0xc
+ pop {r4-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_02025128
+FUN_02025128: ; 0x02025128
+ push {r3-r7, lr}
+ sub sp, #0x8
+ add r7, r0, #0x0
+ bl FUN_02085258
+ str r0, [sp, #0x0]
+ add r0, r7, #0x0
+ mov r1, #0xc0
+ bl FUN_02016998
+ str r0, [sp, #0x4]
+ mov r6, #0x0
+ add r5, r0, #0x0
+_02025142:
+ ldr r0, [sp, #0x0]
+ add r1, r6, #0x0
+ add r2, r7, #0x0
+ bl FUN_02085264
+ add r4, r0, #0x0
+ mov r1, #0x3
+ bl FUN_02085290
+ strb r0, [r5, #0x0]
+ add r0, r4, #0x0
+ mov r1, #0x4
+ bl FUN_02085290
+ strb r0, [r5, #0x1]
+ add r0, r4, #0x0
+ mov r1, #0x2
+ bl FUN_02085290
+ strb r0, [r5, #0x2]
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ add r6, r6, #0x1
+ add r5, r5, #0x3
+ cmp r6, #0x40
+ blt _02025142
+ ldr r0, [sp, #0x0]
+ bl FUN_0208526C
+ ldr r0, [sp, #0x4]
+ add sp, #0x8
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_02025184
+FUN_02025184: ; 0x02025184
+ mov r1, #0x0
+ strb r1, [r0, #0x0]
+ strb r1, [r0, #0x1]
+ strh r1, [r0, #0x2]
+ strh r1, [r0, #0x4]
+ strb r1, [r0, #0x6]
+ strh r1, [r0, #0x8]
+ strb r1, [r0, #0xa]
+ strb r1, [r0, #0xb]
+ strb r1, [r0, #0xc]
+ strb r1, [r0, #0xd]
+ bx lr
+
+ thumb_func_start FUN_0202519C
+FUN_0202519C: ; 0x0202519C
+ ldrb r2, [r0, #0xb]
+ ldrb r0, [r0, #0x0]
+ sub r3, r0, #0x1
+ lsl r0, r3, #0x1
+ add r0, r3, r0
+ add r0, r1, r0
+ ldrb r0, [r0, #0x2]
+ mul r0, r2
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_020251B0
+FUN_020251B0: ; 0x020251B0
+ sub r3, r1, #0x1
+ lsl r1, r3, #0x1
+ add r1, r3, r1
+ ldrb r1, [r0, r1]
+ mov r0, #0x3c
+ mul r0, r1
+ cmp r2, #0x1
+ bne _020251CE
+ lsl r1, r0, #0x1
+ add r1, r0, r1
+ asr r0, r1, #0x1
+ lsr r0, r0, #0x1e
+ add r0, r1, r0
+ asr r0, r0, #0x2
+ bx lr
+_020251CE:
+ cmp r2, #0x2
+ bne _020251DA
+ lsr r1, r0, #0x1f
+ add r1, r0, r1
+ asr r1, r1, #0x1
+ add r0, r0, r1
+_020251DA:
+ bx lr
+
+ thumb_func_start FUN_020251DC
+FUN_020251DC: ; 0x020251DC
+ sub r3, r1, #0x1
+ lsl r1, r3, #0x1
+ add r1, r3, r1
+ add r0, r0, r1
+ ldrb r0, [r0, #0x1]
+ cmp r2, #0x2
+ bne _020251F2
+ lsr r1, r0, #0x1f
+ add r1, r0, r1
+ asr r0, r1, #0x1
+ bx lr
+_020251F2:
+ cmp r2, #0x1
+ bne _020251FE
+ lsr r1, r0, #0x1f
+ add r1, r0, r1
+ asr r1, r1, #0x1
+ add r0, r0, r1
+_020251FE:
+ bx lr
+
+ thumb_func_start FUN_02025200
+FUN_02025200: ; 0x02025200
+ ldrb r0, [r0, #0xc]
+ cmp r0, #0x3
+ bne _0202520A
+ mov r0, #0x6
+ bx lr
+_0202520A:
+ mov r0, #0x4
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02025210
+FUN_02025210: ; 0x02025210
+ ldrb r0, [r0, #0xc]
+ cmp r0, #0x4
+ bne _0202521A
+ mov r0, #0xf
+ bx lr
+_0202521A:
+ mov r0, #0xa
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02025220
+FUN_02025220: ; 0x02025220
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ bl FUN_02025200
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_02025210
+ add r1, r4, #0x3
+ mul r0, r1
+ add r0, r0, #0x1
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_02025238
+FUN_02025238: ; 0x02025238
+ mov r2, #0xe
+ mul r2, r1
+ add r0, r0, r2
+ ldrb r0, [r0, #0x1]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02025244
+FUN_02025244: ; 0x02025244
+ mov r2, #0xe
+ mul r2, r1
+ ldrb r0, [r0, r2]
+ bx lr
+
+ thumb_func_start FUN_0202524C
+FUN_0202524C: ; 0x0202524C
+ mov r2, #0xe
+ mul r2, r1
+ add r0, r0, r2
+ ldrb r0, [r0, #0xa]
+ cmp r0, #0x0
+ bne _0202525C
+ mov r0, #0x0
+ bx lr
+_0202525C:
+ cmp r0, #0x32
+ bgt _02025264
+ mov r0, #0x1
+ bx lr
+_02025264:
+ mov r0, #0x2
+ bx lr
+
+ thumb_func_start FUN_02025268
+FUN_02025268: ; 0x02025268
+ mov r2, #0xe
+ mul r2, r1
+ add r0, r0, r2
+ ldrb r0, [r0, #0xb]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02025274
+FUN_02025274: ; 0x02025274
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ mov r0, #0xe
+ mul r4, r0
+ strb r3, [r5, r4]
+ mov r0, #0x1
+ add r6, r5, r4
+ strb r0, [r6, #0x1]
+ add r0, r2, #0x0
+ ldrb r2, [r6, #0xc]
+ add r1, r3, #0x0
+ bl FUN_020251B0
+ add r1, r6, #0x0
+ strh r0, [r1, #0x2]
+ mov r0, #0x0
+ strh r0, [r1, #0x4]
+ strb r0, [r1, #0x6]
+ strh r0, [r1, #0x8]
+ mov r0, #0x64
+ strb r0, [r1, #0xa]
+ mov r0, #0x5
+ strb r0, [r1, #0xb]
+ mov r0, #0x1
+ strb r0, [r1, #0xd]
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_020252AC
+FUN_020252AC: ; 0x020252AC
+ mov r2, #0xe
+ mul r2, r1
+ mov r3, #0x64
+ add r0, r0, r2
+ strb r3, [r0, #0xa]
+ bx lr
+
+ thumb_func_start FUN_020252B8
+FUN_020252B8: ; 0x020252B8
+ mov r2, #0xe
+ mul r2, r1
+ add r0, r0, r2
+ ldrb r0, [r0, #0xd]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_020252C4
+FUN_020252C4: ; 0x020252C4
+ mov r3, #0xe
+ mul r3, r1
+ add r0, r0, r3
+ strb r2, [r0, #0xd]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_020252D0
+FUN_020252D0: ; 0x020252D0
+ mov r2, #0xe
+ mul r2, r1
+ add r0, r0, r2
+ ldrb r0, [r0, #0xc]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_020252DC
+FUN_020252DC: ; 0x020252DC
+ mov r3, #0xe
+ mul r3, r1
+ add r0, r0, r3
+ strb r2, [r0, #0xc]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_020252E8
+FUN_020252E8: ; 0x020252E8
+ mov r2, #0xe
+ mul r2, r1
+ add r0, r0, r2
+ ldrh r0, [r0, #0x8]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_020252F4
+FUN_020252F4: ; 0x020252F4
+ push {r4, lr}
+ mov r2, #0xe
+ mul r2, r1
+ add r0, r0, r2
+ ldrh r4, [r0, #0x8]
+ bl FUN_02025184
+ add r0, r4, #0x0
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02025308
+FUN_02025308: ; 0x02025308
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldrb r2, [r4, #0x1]
+ cmp r2, #0x5
+ bhi _02025370
+ add r3, r2, r2
+ add r3, pc
+ ldrh r3, [r3, #0x6]
+ lsl r3, r3, #0x10
+ asr r3, r3, #0x10
+ add pc, r3
+_0202531E: ; jump table (using 16-bit offset)
+ .short _0202532A - _0202531E - 2; case 0
+ .short _02025330 - _0202531E - 2; case 1
+ .short _02025330 - _0202531E - 2; case 2
+ .short _02025330 - _0202531E - 2; case 3
+ .short _02025336 - _0202531E - 2; case 4
+ .short _0202534E - _0202531E - 2; case 5
+_0202532A:
+ bl ErrorHandling
+ pop {r4, pc}
+_02025330:
+ add r0, r2, #0x1
+ strb r0, [r4, #0x1]
+ pop {r4, pc}
+_02025336:
+ bl FUN_0202519C
+ strh r0, [r4, #0x8]
+ ldrh r0, [r4, #0x8]
+ cmp r0, #0x2
+ bhs _02025346
+ mov r0, #0x2
+ strh r0, [r4, #0x8]
+_02025346:
+ ldrb r0, [r4, #0x1]
+ add r0, r0, #0x1
+ strb r0, [r4, #0x1]
+ pop {r4, pc}
+_0202534E:
+ mov r1, #0x0
+ strh r1, [r4, #0x8]
+ mov r1, #0x2
+ strb r1, [r4, #0x1]
+ mov r1, #0x5
+ strb r1, [r4, #0xb]
+ ldrb r1, [r4, #0x6]
+ add r1, r1, #0x1
+ strb r1, [r4, #0x6]
+ bl FUN_02025210
+ ldrb r1, [r4, #0x6]
+ cmp r1, r0
+ bne _02025370
+ add r0, r4, #0x0
+ bl FUN_02025184
+_02025370:
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02025374
+FUN_02025374: ; 0x02025374
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ ldrb r0, [r5, #0x1]
+ add r7, r2, #0x0
+ cmp r0, #0x5
+ beq _020253DE
+ add r0, r1, #0x0
+ ldrb r1, [r5, #0x0]
+ ldrb r2, [r5, #0xc]
+ bl FUN_020251DC
+ add r6, r0, #0x0
+ ldrh r0, [r5, #0x4]
+ mov r1, #0x3c
+ str r0, [sp, #0x0]
+ add r0, r7, r0
+ blx _s32_div_f
+ add r4, r0, #0x0
+ ldr r0, [sp, #0x0]
+ mov r1, #0x3c
+ add r0, r7, r0
+ blx _s32_div_f
+ strh r1, [r5, #0x4]
+ cmp r4, #0x0
+ beq _020253DE
+ ldrb r1, [r5, #0xa]
+ add r0, r6, #0x0
+ mul r0, r4
+ cmp r1, r0
+ blt _020253BA
+ sub r0, r1, r0
+ strb r0, [r5, #0xa]
+ pop {r3-r7, pc}
+_020253BA:
+ cmp r1, #0x0
+ beq _020253CE
+ sub r0, r6, #0x1
+ add r0, r1, r0
+ add r1, r6, #0x0
+ blx _s32_div_f
+ sub r4, r4, r0
+ mov r0, #0x0
+ strb r0, [r5, #0xa]
+_020253CE:
+ ldrb r0, [r5, #0xb]
+ cmp r0, r4
+ ble _020253DA
+ sub r0, r0, r4
+ strb r0, [r5, #0xb]
+ pop {r3-r7, pc}
+_020253DA:
+ mov r0, #0x0
+ strb r0, [r5, #0xb]
+_020253DE:
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_020253E0
+FUN_020253E0: ; 0x020253E0
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ mov r0, #0x0
+ add r6, r1, #0x0
+ add r7, r2, #0x0
+ str r0, [sp, #0x0]
+_020253EC:
+ ldrb r1, [r5, #0x0]
+ cmp r1, #0x0
+ beq _02025474
+ ldrb r0, [r5, #0x1]
+ cmp r0, #0x0
+ beq _02025474
+ ldrb r0, [r5, #0xd]
+ cmp r0, #0x0
+ beq _02025474
+ ldrb r2, [r5, #0xc]
+ add r0, r6, #0x0
+ bl FUN_020251B0
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_02025220
+ mul r0, r4
+ cmp r7, r0
+ blt _0202541C
+ add r0, r5, #0x0
+ bl FUN_02025184
+ b _02025474
+_0202541C:
+ add r4, r7, #0x0
+ b _0202546A
+_02025420:
+ ldrh r2, [r5, #0x2]
+ cmp r2, r4
+ ble _02025438
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ add r2, r4, #0x0
+ bl FUN_02025374
+ ldrh r0, [r5, #0x2]
+ sub r0, r0, r4
+ strh r0, [r5, #0x2]
+ b _02025474
+_02025438:
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ bl FUN_02025374
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ bl FUN_02025308
+ ldrh r0, [r5, #0x2]
+ ldrb r1, [r5, #0x0]
+ ldrb r2, [r5, #0xc]
+ sub r4, r4, r0
+ add r0, r6, #0x0
+ bl FUN_020251B0
+ strh r0, [r5, #0x2]
+ ldrb r0, [r5, #0x1]
+ cmp r0, #0x5
+ bne _0202546A
+ add r0, r5, #0x0
+ bl FUN_02025200
+ ldrh r1, [r5, #0x2]
+ mul r0, r1
+ strh r0, [r5, #0x2]
+_0202546A:
+ ldrb r0, [r5, #0x1]
+ cmp r0, #0x0
+ beq _02025474
+ cmp r4, #0x0
+ bne _02025420
+_02025474:
+ ldr r0, [sp, #0x0]
+ add r5, #0xe
+ add r0, r0, #0x1
+ str r0, [sp, #0x0]
+ cmp r0, #0x80
+ blt _020253EC
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_02025484
+FUN_02025484: ; 0x02025484
+ ldr r3, _0202548C ; =MI_CpuFill8
+ mov r1, #0x0
+ mov r2, #0x24
+ bx r3
+ .balign 4
+_0202548C: .word MI_CpuFill8
+
+ thumb_func_start FUN_02025490
+FUN_02025490: ; 0x02025490
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ bl FUN_02025484
+ str r4, [r5, #0x0]
+ add r0, r5, #0x4
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_020254A0
+FUN_020254A0: ; 0x020254A0
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r0, [r4, #0x0]
+ cmp r0, r1
+ beq _020254AE
+ bl ErrorHandling
+_020254AE:
+ add r0, r4, #0x4
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_020254B4
+FUN_020254B4: ; 0x020254B4
+ ldr r0, [r0, #0x0]
+ bx lr
+
+ thumb_func_start FUN_020254B8
+FUN_020254B8: ; 0x020254B8
+ mov r0, #0x22
+ lsl r0, r0, #0x6
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_020254C0
+FUN_020254C0: ; 0x020254C0
+ ldr r3, _020254C8 ; =FUN_02022610
+ mov r1, #0x9
+ bx r3
+ nop
+_020254C8: .word FUN_02022610
+
+ thumb_func_start FUN_020254CC
+FUN_020254CC: ; 0x020254CC
+ push {r3-r7, lr}
+ mov r4, #0x0
+ ldr r6, _020254EC ; =0x0000FFFF
+ add r5, r0, #0x0
+ add r7, r4, #0x0
+_020254D6:
+ add r0, r5, #0x0
+ add r1, r7, #0x0
+ mov r2, #0x88
+ blx Call_FillMemWithValue
+ strh r6, [r5, #0x0]
+ add r4, r4, #0x1
+ add r5, #0x88
+ cmp r4, #0x10
+ blt _020254D6
+ pop {r3-r7, pc}
+ .balign 4
+_020254EC: .word 0x0000FFFF
+
+ thumb_func_start FUN_020254F0
+FUN_020254F0: ; 0x020254F0
+ mov r2, #0x88
+ mul r2, r1
+ add r0, r0, r2
+ bx lr
+
+ thumb_func_start FUN_020254F8
+FUN_020254F8: ; 0x020254F8
+ add r0, r0, r1
+ add r0, #0x68
+ ldrb r0, [r0, #0x0]
+ bx lr
+
+ thumb_func_start FUN_02025500
+FUN_02025500: ; 0x02025500
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ bl StringNotEqual
+ cmp r0, #0x0
+ bne _0202551A
+ ldr r1, [r5, #0x10]
+ ldr r0, [r4, #0x10]
+ cmp r1, r0
+ bne _0202551A
+ mov r0, #0x1
+ pop {r3-r5, pc}
+_0202551A:
+ mov r0, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_02025520
+FUN_02025520: ; 0x02025520
+ push {r4-r7, lr}
+ sub sp, #0x2c
+ str r1, [sp, #0x4]
+ mov r1, #0x22
+ str r0, [sp, #0x0]
+ add r0, r3, #0x0
+ lsl r1, r1, #0x6
+ str r2, [sp, #0x8]
+ bl FUN_02016998
+ str r0, [sp, #0x10]
+ bl FUN_020254CC
+ mov r0, #0x0
+ str r0, [sp, #0x14]
+ ldr r0, [sp, #0x8]
+ cmp r0, #0x0
+ ble _02025578
+ ldr r7, [sp, #0x4]
+ add r6, sp, #0x18
+_02025548:
+ mov r0, #0x0
+ mvn r0, r0
+ ldr r5, [sp, #0x0]
+ str r0, [r6, #0x0]
+ mov r4, #0x0
+_02025552:
+ add r0, r5, #0x0
+ add r1, r7, #0x0
+ bl FUN_02025500
+ cmp r0, #0x0
+ beq _02025560
+ str r4, [r6, #0x0]
+_02025560:
+ add r4, r4, #0x1
+ add r5, #0x88
+ cmp r4, #0x10
+ blt _02025552
+ ldr r0, [sp, #0x14]
+ add r6, r6, #0x4
+ add r1, r0, #0x1
+ ldr r0, [sp, #0x8]
+ add r7, #0x88
+ str r1, [sp, #0x14]
+ cmp r1, r0
+ blt _02025548
+_02025578:
+ ldr r0, [sp, #0x8]
+ mov r4, #0x0
+ str r4, [sp, #0xc]
+ cmp r0, #0x0
+ ble _020255BE
+ ldr r5, [sp, #0x10]
+ add r6, sp, #0x18
+_02025586:
+ ldr r3, [sp, #0x4]
+ add r7, r5, #0x0
+ mov r2, #0x11
+_0202558C:
+ ldmia r3!, {r0-r1}
+ stmia r7!, {r0-r1}
+ sub r2, r2, #0x1
+ bne _0202558C
+ ldr r1, [r6, #0x0]
+ cmp r1, #0x0
+ blt _020255A6
+ add r2, r1, #0x0
+ mov r0, #0x88
+ mul r2, r0
+ ldr r1, _02025610 ; =0x0000FFFF
+ ldr r0, [sp, #0x0]
+ strh r1, [r0, r2]
+_020255A6:
+ ldr r0, [sp, #0x4]
+ add r5, #0x88
+ add r0, #0x88
+ str r0, [sp, #0x4]
+ ldr r0, [sp, #0xc]
+ add r4, r4, #0x1
+ add r1, r0, #0x1
+ ldr r0, [sp, #0x8]
+ add r6, r6, #0x4
+ str r1, [sp, #0xc]
+ cmp r1, r0
+ blt _02025586
+_020255BE:
+ mov r0, #0x0
+ mov r12, r0
+ mov r0, #0x88
+ add r1, r4, #0x0
+ mul r1, r0
+ ldr r0, [sp, #0x10]
+ ldr r3, [sp, #0x0]
+ add r5, r0, r1
+_020255CE:
+ ldrh r1, [r3, #0x0]
+ ldr r0, _02025610 ; =0x0000FFFF
+ cmp r1, r0
+ beq _020255EC
+ add r6, r3, #0x0
+ add r7, r5, #0x0
+ mov r2, #0x11
+_020255DC:
+ ldmia r6!, {r0-r1}
+ stmia r7!, {r0-r1}
+ sub r2, r2, #0x1
+ bne _020255DC
+ add r4, r4, #0x1
+ add r5, #0x88
+ cmp r4, #0x10
+ bge _020255F8
+_020255EC:
+ mov r0, r12
+ add r0, r0, #0x1
+ add r3, #0x88
+ mov r12, r0
+ cmp r0, #0x10
+ blt _020255CE
+_020255F8:
+ mov r2, #0x22
+ ldr r0, [sp, #0x0]
+ ldr r1, [sp, #0x10]
+ lsl r2, r2, #0x6
+ blx memcpy
+ ldr r0, [sp, #0x10]
+ bl FUN_02016A18
+ add sp, #0x2c
+ pop {r4-r7, pc}
+ nop
+_02025610: .word 0x0000FFFF
+
+ thumb_func_start FUN_02025614
+FUN_02025614: ; 0x02025614
+ push {r3-r6}
+ mov r3, #0x0
+ add r4, r0, #0x0
+_0202561A:
+ ldr r2, [r4, #0x10]
+ cmp r1, r2
+ bne _02025626
+ mov r0, #0x1
+ pop {r3-r6}
+ bx lr
+_02025626:
+ add r3, r3, #0x1
+ add r4, #0x88
+ cmp r3, #0x10
+ blt _0202561A
+ mov r6, #0x0
+ add r3, r6, #0x0
+_02025632:
+ add r4, r3, #0x0
+ add r5, r0, #0x0
+_02025636:
+ ldr r2, [r5, #0x18]
+ cmp r1, r2
+ bne _02025642
+ add r0, r6, #0x2
+ pop {r3-r6}
+ bx lr
+_02025642:
+ add r4, r4, #0x1
+ add r5, r5, #0x4
+ cmp r4, #0x10
+ blt _02025636
+ add r6, r6, #0x1
+ add r0, #0x88
+ cmp r6, #0x10
+ blt _02025632
+ mov r0, #0x0
+ pop {r3-r6}
+ bx lr
+
+ thumb_func_start FUN_02025658
+FUN_02025658: ; 0x02025658
+ push {r3-r5, lr}
+ add r4, r0, #0x0
+ mov r0, #0x0
+ str r0, [r4, #0x0]
+ strb r0, [r4, #0x4]
+ ldr r0, _020256A0 ; =0x020ECAC4
+ mov r1, #0x8
+ ldrb r0, [r0, #0x0]
+ strb r0, [r4, #0x5]
+ ldr r0, _020256A4 ; =0x020ECAC0
+ ldrb r0, [r0, #0x0]
+ strb r0, [r4, #0x6]
+ mov r0, #0xff
+ strb r0, [r4, #0x7]
+ add r0, r4, #0x0
+ add r0, #0x8
+ bl StringFillEOS
+ ldr r0, _020256A8 ; =0x0000FFFF
+ mov r1, #0x0
+ add r2, r4, #0x0
+_02025682:
+ add r1, r1, #0x1
+ strh r0, [r2, #0x18]
+ add r2, r2, #0x2
+ cmp r1, #0x3
+ blt _02025682
+ mov r5, #0x0
+ add r4, #0x20
+_02025690:
+ add r0, r4, #0x0
+ bl FUN_02013724
+ add r5, r5, #0x1
+ add r4, #0x8
+ cmp r5, #0x3
+ blt _02025690
+ pop {r3-r5, pc}
+ .balign 4
+_020256A0: .word 0x020ECAC4
+_020256A4: .word 0x020ECAC0
+_020256A8: .word 0x0000FFFF
+
+ thumb_func_start FUN_020256AC
+FUN_020256AC: ; 0x020256AC
+ ldrb r0, [r0, #0x7]
+ cmp r0, #0xb
+ bhi _020256B6
+ mov r0, #0x1
+ bx lr
+_020256B6:
+ mov r0, #0x0
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_020256BC
+FUN_020256BC: ; 0x020256BC
+ push {r4, lr}
+ mov r1, #0x38
+ bl FUN_020169D8
+ add r4, r0, #0x0
+ bl FUN_02025658
+ add r0, r4, #0x0
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_020256D0
+FUN_020256D0: ; 0x020256D0
+ ldr r3, _020256D8 ; =MI_CpuCopy8
+ mov r2, #0x38
+ bx r3
+ nop
+_020256D8: .word MI_CpuCopy8
+
+ thumb_func_start FUN_020256DC
+FUN_020256DC: ; 0x020256DC
+ push {r4-r7, lr}
+ sub sp, #0x14
+ add r7, r3, #0x0
+ add r5, r0, #0x0
+ add r6, r1, #0x0
+ add r4, r2, #0x0
+ bl FUN_02025658
+ add r0, r7, #0x0
+ strb r6, [r5, #0x7]
+ bl FUN_0206BB1C
+ str r0, [sp, #0x0]
+ add r0, r7, #0x0
+ bl FUN_020238F4
+ add r6, r0, #0x0
+ bl FUN_0202398C
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x8
+ bl StringCopy
+ add r0, r6, #0x0
+ bl FUN_020239CC
+ strb r0, [r5, #0x4]
+ add r0, r6, #0x0
+ bl FUN_020239BC
+ str r0, [r5, #0x0]
+ ldr r0, [sp, #0x0]
+ mov r6, #0x0
+ bl FUN_0206B9AC
+ cmp r4, r0
+ bge _020257AE
+ add r5, #0x18
+_0202572A:
+ ldr r0, [sp, #0x0]
+ add r1, r4, #0x0
+ bl FUN_0206B9B0
+ mov r1, #0x5
+ mov r2, #0x0
+ add r7, r0, #0x0
+ bl FUN_020671BC
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #0x4]
+ add r0, r7, #0x0
+ mov r1, #0x4c
+ mov r2, #0x0
+ bl FUN_020671BC
+ str r0, [sp, #0x8]
+ add r0, r7, #0x0
+ mov r1, #0x70
+ mov r2, #0x0
+ bl FUN_020671BC
+ str r0, [sp, #0xc]
+ add r0, r7, #0x0
+ bl FUN_0206B6C8
+ str r0, [sp, #0x10]
+ ldr r0, [sp, #0x4]
+ ldr r1, [sp, #0xc]
+ ldr r2, [sp, #0x8]
+ bl FUN_0206B7BC
+ lsl r3, r6, #0x1
+ ldrh r1, [r5, r3]
+ add r7, r0, #0x0
+ ldr r0, _020257B4 ; =0xFFFFF000
+ add r2, r1, #0x0
+ and r2, r0
+ ldr r0, [sp, #0x10]
+ lsl r0, r0, #0x10
+ lsr r1, r0, #0x10
+ ldr r0, _020257B8 ; =0x00000FFF
+ and r0, r1
+ orr r0, r2
+ strh r0, [r5, r3]
+ add r0, r6, #0x1
+ lsl r0, r0, #0x18
+ lsr r6, r0, #0x18
+ ldrh r1, [r5, r3]
+ ldr r0, _020257BC ; =0xFFFF0FFF
+ and r0, r1
+ lsl r1, r7, #0x1c
+ lsr r1, r1, #0x10
+ orr r0, r1
+ strh r0, [r5, r3]
+ cmp r6, #0x3
+ bhs _020257AE
+ add r0, r4, #0x1
+ lsl r0, r0, #0x18
+ lsr r4, r0, #0x18
+ ldr r0, [sp, #0x0]
+ bl FUN_0206B9AC
+ cmp r4, r0
+ blt _0202572A
+_020257AE:
+ add sp, #0x14
+ pop {r4-r7, pc}
+ nop
+_020257B4: .word 0xFFFFF000
+_020257B8: .word 0x00000FFF
+_020257BC: .word 0xFFFF0FFF
+
+ thumb_func_start FUN_020257C0
+FUN_020257C0: ; 0x020257C0
+ ldr r0, [r0, #0x0]
+ bx lr
+
+ thumb_func_start FUN_020257C4
+FUN_020257C4: ; 0x020257C4
+ add r0, #0x8
+ bx lr
+
+ thumb_func_start FUN_020257C8
+FUN_020257C8: ; 0x020257C8
+ ldrb r0, [r0, #0x4]
+ bx lr
+
+ thumb_func_start FUN_020257CC
+FUN_020257CC: ; 0x020257CC
+ ldrb r0, [r0, #0x7]
+ bx lr
+
+ thumb_func_start FUN_020257D0
+FUN_020257D0: ; 0x020257D0
+ cmp r1, #0xc
+ bhs _020257D6
+ strb r1, [r0, #0x7]
+_020257D6:
+ bx lr
+
+ thumb_func_start FUN_020257D8
+FUN_020257D8: ; 0x020257D8
+ ldrb r0, [r0, #0x5]
+ bx lr
+
+ thumb_func_start FUN_020257DC
+FUN_020257DC: ; 0x020257DC
+ ldrb r0, [r0, #0x6]
+ bx lr
+
+ thumb_func_start FUN_020257E0
+FUN_020257E0: ; 0x020257E0
+ cmp r1, #0x3
+ bhs _02025810
+ cmp r2, #0x0
+ beq _020257F0
+ cmp r2, #0x1
+ beq _020257FC
+ cmp r2, #0x2
+ b _02025808
+_020257F0:
+ lsl r1, r1, #0x1
+ add r0, r0, r1
+ ldrh r0, [r0, #0x18]
+ lsl r0, r0, #0x14
+ lsr r0, r0, #0x14
+ bx lr
+_020257FC:
+ lsl r1, r1, #0x1
+ add r0, r0, r1
+ ldrh r0, [r0, #0x18]
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x1c
+ bx lr
+_02025808:
+ lsl r1, r1, #0x1
+ add r0, r0, r1
+ ldrh r0, [r0, #0x18]
+ bx lr
+_02025810:
+ mov r0, #0x0
+ bx lr
+
+ thumb_func_start FUN_02025814
+FUN_02025814: ; 0x02025814
+ cmp r1, #0x3
+ bhs _02025820
+ add r0, #0x20
+ lsl r1, r1, #0x3
+ add r0, r0, r1
+ bx lr
+_02025820:
+ add r0, #0x20
+ bx lr
+
+ thumb_func_start FUN_02025824
+FUN_02025824: ; 0x02025824
+ push {r3, lr}
+ cmp r2, #0x3
+ bhs _02025834
+ add r0, #0x20
+ lsl r2, r2, #0x3
+ add r0, r0, r2
+ bl FUN_02013960
+_02025834:
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_02025838
+FUN_02025838: ; 0x02025838
+ ldr r3, _02025840 ; =FUN_02022610
+ mov r1, #0xf
+ bx r3
+ nop
+_02025840: .word FUN_02022610
+
+ thumb_func_start FUN_02025844
+FUN_02025844: ; 0x02025844
+ mov r0, #0x46
+ lsl r0, r0, #0x4
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_0202584C
+FUN_0202584C: ; 0x0202584C
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ mov r4, #0x0
+_02025852:
+ add r0, r5, #0x0
+ bl FUN_02025658
+ add r4, r4, #0x1
+ add r5, #0x38
+ cmp r4, #0x14
+ blt _02025852
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_02025864
+FUN_02025864: ; 0x02025864
+ push {r3, lr}
+ cmp r1, #0x0
+ bne _02025872
+ mov r1, #0x14
+ bl FUN_020258F0
+ pop {r3, pc}
+_02025872:
+ mov r0, #0x0
+ mvn r0, r0
+ pop {r3, pc}
+
+ thumb_func_start FUN_02025878
+FUN_02025878: ; 0x02025878
+ push {r3, lr}
+ bl FUN_02025940
+ cmp r0, #0x0
+ beq _02025886
+ bl FUN_02025658
+_02025886:
+ pop {r3, pc}
+
+ thumb_func_start FUN_02025888
+FUN_02025888: ; 0x02025888
+ push {r4, lr}
+ add r4, r3, #0x0
+ bl FUN_02025940
+ add r1, r0, #0x0
+ beq _0202589A
+ add r0, r4, #0x0
+ bl FUN_020256D0
+_0202589A:
+ pop {r4, pc}
+
+ thumb_func_start FUN_0202589C
+FUN_0202589C: ; 0x0202589C
+ push {r3, lr}
+ cmp r1, #0x0
+ bne _020258AA
+ mov r1, #0x14
+ bl FUN_02025918
+ pop {r3, pc}
+_020258AA:
+ mov r0, #0x0
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_020258B0
+FUN_020258B0: ; 0x020258B0
+ push {r3-r5, lr}
+ add r5, r3, #0x0
+ bl FUN_02025940
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_020256BC
+ add r5, r0, #0x0
+ cmp r4, #0x0
+ beq _020258CE
+ add r0, r4, #0x0
+ add r1, r5, #0x0
+ bl FUN_020256D0
+_020258CE:
+ add r0, r5, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_020258D4
+FUN_020258D4: ; 0x020258D4
+ push {r4, lr}
+ add r4, r3, #0x0
+ bl FUN_02025940
+ cmp r0, #0x0
+ bne _020258E8
+ add r0, r4, #0x0
+ bl FUN_02025658
+ pop {r4, pc}
+_020258E8:
+ add r1, r4, #0x0
+ bl FUN_020256D0
+ pop {r4, pc}
+
+ thumb_func_start FUN_020258F0
+FUN_020258F0: ; 0x020258F0
+ push {r4-r6, lr}
+ add r6, r1, #0x0
+ add r5, r0, #0x0
+ mov r4, #0x0
+ cmp r6, #0x0
+ ble _02025912
+_020258FC:
+ add r0, r5, #0x0
+ bl FUN_020256AC
+ cmp r0, #0x0
+ bne _0202590A
+ add r0, r4, #0x0
+ pop {r4-r6, pc}
+_0202590A:
+ add r4, r4, #0x1
+ add r5, #0x38
+ cmp r4, r6
+ blt _020258FC
+_02025912:
+ mov r0, #0x0
+ mvn r0, r0
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_02025918
+FUN_02025918: ; 0x02025918
+ push {r3-r7, lr}
+ mov r4, #0x0
+ add r7, r1, #0x0
+ add r5, r0, #0x0
+ add r6, r4, #0x0
+ cmp r7, #0x0
+ ble _0202593A
+_02025926:
+ add r0, r5, #0x0
+ bl FUN_020256AC
+ cmp r0, #0x0
+ beq _02025932
+ add r4, r4, #0x1
+_02025932:
+ add r6, r6, #0x1
+ add r5, #0x38
+ cmp r6, r7
+ blt _02025926
+_0202593A:
+ add r0, r4, #0x0
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_02025940
+FUN_02025940: ; 0x02025940
+ mov r3, #0x0
+ cmp r1, #0x0
+ bne _02025950
+ cmp r2, #0x14
+ bge _02025950
+ mov r1, #0x38
+ mul r1, r2
+ add r3, r0, r1
+_02025950:
+ add r0, r3, #0x0
+ bx lr
+
+ thumb_func_start FUN_02025954
+FUN_02025954: ; 0x02025954
+ ldr r0, _02025958 ; =0x000009B4
+ bx lr
+ .balign 4
+_02025958: .word 0x000009B4
+
+ thumb_func_start FUN_0202595C
+FUN_0202595C: ; 0x0202595C
+ mov r0, #0x94
+ bx lr
+
+ thumb_func_start FUN_02025960
+FUN_02025960: ; 0x02025960
+ mov r0, #0x3c
+ bx lr
+
+ thumb_func_start FUN_02025964
+FUN_02025964: ; 0x02025964
+ push {r4, lr}
+ mov r1, #0x3c
+ bl FUN_02016998
+ mov r1, #0x0
+ mov r2, #0x3c
+ add r4, r0, #0x0
+ blx MI_CpuFill8
+ add r0, r4, #0x0
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0202597C
+FUN_0202597C: ; 0x0202597C
+ push {r4-r7, lr}
+ sub sp, #0x1c
+ add r4, r0, #0x0
+ add r0, sp, #0xc
+ add r1, sp, #0x0
+ bl FUN_0201265C
+ ldr r0, _020259D8 ; =0x021C48B8
+ ldr r6, [sp, #0xc]
+ ldr r1, [sp, #0x8]
+ ldr r0, [r0, #0x2c]
+ lsl r6, r6, #0x5
+ add r5, r1, r0
+ ldr r0, [sp, #0x10]
+ ldr r1, [sp, #0x14]
+ add r0, r0, r6
+ lsl r0, r0, #0x5
+ add r0, r1, r0
+ mov r7, #0x0
+ ldr r2, [sp, #0x0]
+ lsl r0, r0, #0x5
+ add r0, r2, r0
+ ldr r3, [sp, #0x4]
+ lsl r0, r0, #0x5
+ add r0, r3, r0
+ lsl r0, r0, #0x5
+ add r5, r5, r0
+ ldr r2, _020259DC ; =0x000009B4
+ add r0, r4, #0x0
+ add r1, r7, #0x0
+ blx MI_CpuFill8
+ add r0, r4, #0x0
+ add r0, #0x94
+ mov r1, #0x9b
+ str r5, [r0, #0x0]
+ lsl r1, r1, #0x4
+ ldrb r2, [r4, r1]
+ mov r0, #0xf
+ bic r2, r0
+ mov r0, #0x1
+ orr r0, r2
+ strb r0, [r4, r1]
+ add sp, #0x1c
+ pop {r4-r7, pc}
+ nop
+_020259D8: .word 0x021C48B8
+_020259DC: .word 0x000009B4
+
+ thumb_func_start FUN_020259E0
+FUN_020259E0: ; 0x020259E0
+ mov r1, #0x9
+ mov r3, #0x0
+ lsl r1, r1, #0x8
+_020259E6:
+ add r2, r0, r3
+ ldrb r2, [r2, r1]
+ cmp r2, #0x0
+ bne _020259F2
+ add r0, r3, #0x0
+ bx lr
+_020259F2:
+ add r3, r3, #0x1
+ cmp r3, #0x28
+ blt _020259E6
+ mov r0, #0x0
+ mvn r0, r0
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02025A00
+FUN_02025A00: ; 0x02025A00
+ mov r1, #0x95
+ mov r3, #0x0
+ lsl r1, r1, #0x4
+_02025A06:
+ add r2, r0, r3
+ ldrb r2, [r2, r1]
+ cmp r2, #0x0
+ bne _02025A12
+ add r0, r3, #0x0
+ bx lr
+_02025A12:
+ add r3, r3, #0x1
+ cmp r3, #0x28
+ blt _02025A06
+ mov r0, #0x0
+ mvn r0, r0
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02025A20
+FUN_02025A20: ; 0x02025A20
+ ldr r1, _02025A3C ; =0x00000928
+ mov r3, #0x0
+_02025A24:
+ add r2, r0, r3
+ ldrb r2, [r2, r1]
+ cmp r2, #0x0
+ bne _02025A30
+ add r0, r3, #0x0
+ bx lr
+_02025A30:
+ add r3, r3, #0x1
+ cmp r3, #0x28
+ blt _02025A24
+ mov r0, #0x0
+ mvn r0, r0
+ bx lr
+ .balign 4
+_02025A3C: .word 0x00000928
+
+ thumb_func_start FUN_02025A40
+FUN_02025A40: ; 0x02025A40
+ ldr r1, _02025A5C ; =0x000008D8
+ mov r3, #0x0
+_02025A44:
+ add r2, r0, r3
+ ldrb r2, [r2, r1]
+ cmp r2, #0x0
+ bne _02025A50
+ add r0, r3, #0x0
+ bx lr
+_02025A50:
+ add r3, r3, #0x1
+ cmp r3, #0x28
+ blt _02025A44
+ mov r0, #0x0
+ mvn r0, r0
+ bx lr
+ .balign 4
+_02025A5C: .word 0x000008D8
+
+ thumb_func_start FUN_02025A60
+FUN_02025A60: ; 0x02025A60
+ push {r4-r7, lr}
+ sub sp, #0x14
+ str r1, [sp, #0x0]
+ bl FUN_02026CC4
+ ldr r1, _02025B50 ; =0x020EE958
+ add r6, r0, #0x0
+ ldrb r2, [r1, #0x0]
+ add r0, sp, #0x8
+ strb r2, [r0, #0x6]
+ ldrb r2, [r1, #0x1]
+ strb r2, [r0, #0x7]
+ ldrb r2, [r1, #0x2]
+ strb r2, [r0, #0x8]
+ ldrb r2, [r1, #0x3]
+ strb r2, [r0, #0x9]
+ ldrb r2, [r1, #0x4]
+ strb r2, [r0, #0xa]
+ ldrb r2, [r1, #0x5]
+ strb r2, [r0, #0xb]
+ ldrb r2, [r1, #0x6]
+ strb r2, [r0, #0x0]
+ ldrb r2, [r1, #0x7]
+ strb r2, [r0, #0x1]
+ ldrb r2, [r1, #0x8]
+ strb r2, [r0, #0x2]
+ ldrb r2, [r1, #0x9]
+ strb r2, [r0, #0x3]
+ ldrb r2, [r1, #0xa]
+ strb r2, [r0, #0x4]
+ ldrb r1, [r1, #0xb]
+ strb r1, [r0, #0x5]
+ ldr r0, [sp, #0x0]
+ cmp r0, #0x0
+ ble _02025B4C
+ str r0, [sp, #0x4]
+ cmp r0, #0x63
+ ble _02025AB0
+ mov r0, #0x63
+ str r0, [sp, #0x4]
+_02025AB0:
+ add r0, r6, #0x0
+ add r0, #0x94
+ ldr r3, [r0, #0x0]
+ mov r0, #0x0
+ mov r12, r0
+ ldr r0, [sp, #0x4]
+ cmp r0, #0x0
+ ble _02025B28
+ add r7, sp, #0xc
+ add r7, #0x2
+_02025AC4:
+ mov r2, #0x0
+_02025AC6:
+ ldr r0, _02025B54 ; =0x0000055C
+ add r4, r6, r2
+ ldrb r5, [r4, r0]
+ cmp r5, #0x0
+ beq _02025B16
+ ldr r0, _02025B58 ; =0x5D588B65
+ ldrb r1, [r7, r5]
+ mul r0, r3
+ ldr r3, _02025B5C ; =0x00269EC3
+ add r3, r0, r3
+ cmp r1, #0x0
+ bne _02025AE2
+ lsr r0, r3, #0x10
+ b _02025AE8
+_02025AE2:
+ lsr r0, r3, #0x10
+ mul r1, r0
+ lsr r0, r1, #0x10
+_02025AE8:
+ lsl r0, r0, #0x10
+ lsr r1, r0, #0x10
+ add r0, sp, #0x8
+ ldrb r0, [r0, r5]
+ add r0, r0, r1
+ mov r1, #0x17
+ lsl r1, r1, #0x6
+ ldrb r1, [r4, r1]
+ add r1, r0, r1
+ cmp r1, #0x63
+ bge _02025B0E
+ mov r1, #0x17
+ lsl r1, r1, #0x6
+ ldrb r1, [r4, r1]
+ add r1, r1, r0
+ mov r0, #0x17
+ lsl r0, r0, #0x6
+ strb r1, [r4, r0]
+ b _02025B16
+_02025B0E:
+ mov r0, #0x17
+ mov r1, #0x63
+ lsl r0, r0, #0x6
+ strb r1, [r4, r0]
+_02025B16:
+ add r2, r2, #0x1
+ cmp r2, #0x64
+ blt _02025AC6
+ mov r0, r12
+ add r1, r0, #0x1
+ ldr r0, [sp, #0x4]
+ mov r12, r1
+ cmp r1, r0
+ blt _02025AC4
+_02025B28:
+ add r0, r6, #0x0
+ add r0, #0x94
+ ldr r1, [r0, #0x0]
+ ldr r0, [sp, #0x0]
+ add r0, r1, r0
+ bl FUN_0201BA10
+ add r1, r6, #0x0
+ add r1, #0x94
+ str r0, [r1, #0x0]
+ mov r1, #0x9b
+ lsl r1, r1, #0x4
+ ldrb r2, [r6, r1]
+ mov r0, #0xf
+ bic r2, r0
+ mov r0, #0x1
+ orr r0, r2
+ strb r0, [r6, r1]
+_02025B4C:
+ add sp, #0x14
+ pop {r4-r7, pc}
+ .balign 4
+_02025B50: .word 0x020EE958
+_02025B54: .word 0x0000055C
+_02025B58: .word 0x5D588B65
+_02025B5C: .word 0x00269EC3
+
+ thumb_func_start FUN_02025B60
+FUN_02025B60: ; 0x02025B60
+ push {r3-r5, lr}
+ add r4, r1, #0x0
+ add r5, r2, #0x0
+ bl FUN_02026CC4
+ cmp r4, #0x0
+ blt _02025B90
+ cmp r5, #0x0
+ bne _02025B90
+ add r1, r0, #0x0
+ add r1, #0x98
+ ldr r1, [r1, #0x0]
+ cmp r1, r4
+ bge _02025B84
+ mov r1, #0x0
+ add r0, #0x98
+ str r1, [r0, #0x0]
+ pop {r3-r5, pc}
+_02025B84:
+ add r1, r0, #0x0
+ add r1, #0x98
+ ldr r1, [r1, #0x0]
+ add r0, #0x98
+ sub r1, r1, r4
+ str r1, [r0, #0x0]
+_02025B90:
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_02025B94
+FUN_02025B94: ; 0x02025B94
+ push {r3, lr}
+ bl FUN_02026CC4
+ add r1, r0, #0x0
+ add r1, #0x98
+ ldr r1, [r1, #0x0]
+ cmp r1, #0x0
+ bne _02025BB6
+ add r1, r0, #0x0
+ add r1, #0x9c
+ ldrb r1, [r1, #0x0]
+ cmp r1, #0x2
+ bne _02025BB6
+ add r1, r0, #0x0
+ mov r2, #0x0
+ add r1, #0x9c
+ strb r2, [r1, #0x0]
+_02025BB6:
+ add r1, r0, #0x0
+ add r1, #0x98
+ ldr r1, [r1, #0x0]
+ cmp r1, #0x0
+ bne _02025BD4
+ add r1, r0, #0x0
+ add r1, #0x9c
+ ldrb r1, [r1, #0x0]
+ cmp r1, #0x1
+ bne _02025BD4
+ mov r2, #0x5a
+ add r1, r0, #0x0
+ lsl r2, r2, #0x4
+ add r1, #0x98
+ str r2, [r1, #0x0]
+_02025BD4:
+ add r1, r0, #0x0
+ add r1, #0x9c
+ ldrb r1, [r1, #0x0]
+ cmp r1, #0x1
+ bne _02025BE4
+ mov r1, #0x2
+ add r0, #0x9c
+ strb r1, [r0, #0x0]
+_02025BE4:
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_02025BE8
+FUN_02025BE8: ; 0x02025BE8
+ push {r3, lr}
+ bl FUN_02026CC4
+ add r1, r0, #0x0
+ add r1, #0x9c
+ ldrb r1, [r1, #0x0]
+ cmp r1, #0x0
+ bne _02025BFE
+ mov r1, #0x1
+ add r0, #0x9c
+ strb r1, [r0, #0x0]
+_02025BFE:
+ pop {r3, pc}
+
+ thumb_func_start FUN_02025C00
+FUN_02025C00: ; 0x02025C00
+ push {r3, lr}
+ bl FUN_02026CC4
+ add r1, r0, #0x0
+ add r1, #0x9c
+ ldrb r1, [r1, #0x0]
+ cmp r1, #0x1
+ bne _02025C16
+ mov r1, #0x0
+ add r0, #0x9c
+ strb r1, [r0, #0x0]
+_02025C16:
+ pop {r3, pc}
+
+ thumb_func_start FUN_02025C18
+FUN_02025C18: ; 0x02025C18
+ push {r3, lr}
+ bl FUN_02026CC4
+ add r0, #0x9c
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x2
+ beq _02025C2A
+ mov r0, #0x1
+ pop {r3, pc}
+_02025C2A:
+ mov r0, #0x0
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_02025C30
+FUN_02025C30: ; 0x02025C30
+ mov r1, #0x1
+ add r0, #0x9d
+ strb r1, [r0, #0x0]
+ bx lr
+
+ thumb_func_start FUN_02025C38
+FUN_02025C38: ; 0x02025C38
+ add r0, #0x9d
+ ldrb r0, [r0, #0x0]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02025C40
+FUN_02025C40: ; 0x02025C40
+ push {r3-r7, lr}
+ add r7, r0, #0x0
+ ldr r0, _02025CD0 ; =0x0000010E
+ add r6, r1, #0x0
+ ldrb r0, [r7, r0]
+ mov r4, #0x0
+ add r5, r7, #0x0
+ str r0, [sp, #0x0]
+_02025C50:
+ add r0, r6, #0x0
+ bl FUN_020239BC
+ add r1, r5, #0x0
+ add r1, #0xa0
+ ldr r1, [r1, #0x0]
+ cmp r1, r0
+ beq _02025CCC
+ add r4, r4, #0x1
+ add r5, r5, #0x4
+ cmp r4, #0x5
+ blt _02025C50
+ ldr r0, [sp, #0x0]
+ cmp r0, #0x5
+ blt _02025C72
+ bl ErrorHandling
+_02025C72:
+ add r0, r6, #0x0
+ bl FUN_0202398C
+ ldr r1, [sp, #0x0]
+ add r2, r7, #0x0
+ add r2, #0xb4
+ lsl r1, r1, #0x4
+ add r1, r2, r1
+ mov r2, #0x10
+ blx MI_CpuCopy8
+ add r0, r6, #0x0
+ bl FUN_020239BC
+ ldr r1, [sp, #0x0]
+ lsl r1, r1, #0x2
+ add r1, r7, r1
+ add r1, #0xa0
+ str r0, [r1, #0x0]
+ add r0, r6, #0x0
+ bl FUN_02023A70
+ ldr r1, [sp, #0x0]
+ add r2, r7, r1
+ mov r1, #0x41
+ lsl r1, r1, #0x2
+ strb r0, [r2, r1]
+ add r0, r6, #0x0
+ bl FUN_02023A68
+ ldr r1, [sp, #0x0]
+ add r2, r7, r1
+ ldr r1, _02025CD4 ; =0x00000109
+ strb r0, [r2, r1]
+ add r0, r1, #0x5
+ ldrb r0, [r7, r0]
+ add r2, r0, #0x1
+ add r0, r1, #0x5
+ strb r2, [r7, r0]
+ ldrb r0, [r7, r0]
+ cmp r0, #0x5
+ blo _02025CCC
+ mov r2, #0x0
+ add r0, r1, #0x5
+ strb r2, [r7, r0]
+_02025CCC:
+ pop {r3-r7, pc}
+ nop
+_02025CD0: .word 0x0000010E
+_02025CD4: .word 0x00000109
+
+ thumb_func_start FUN_02025CD8
+FUN_02025CD8: ; 0x02025CD8
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ ldr r0, _02025D38 ; =0x0000010E
+ ldrb r0, [r5, r0]
+ sub r0, r0, r2
+ sub r4, r0, #0x1
+ bpl _02025CE8
+ add r4, r4, #0x5
+_02025CE8:
+ add r7, r5, #0x0
+ lsl r0, r4, #0x4
+ add r7, #0xb4
+ str r0, [sp, #0x0]
+ ldrh r0, [r7, r0]
+ cmp r0, #0x0
+ beq _02025D32
+ add r0, r1, #0x0
+ bl FUN_02023928
+ ldr r1, [sp, #0x0]
+ add r6, r0, #0x0
+ add r1, r7, r1
+ bl FUN_0202395C
+ ldr r1, _02025D3C ; =0x00000109
+ add r2, r5, r4
+ ldrb r1, [r2, r1]
+ add r0, r6, #0x0
+ bl FUN_02023A6C
+ mov r1, #0x41
+ add r2, r5, r4
+ lsl r1, r1, #0x2
+ ldrb r1, [r2, r1]
+ add r0, r6, #0x0
+ bl FUN_02023A74
+ lsl r1, r4, #0x2
+ add r1, r5, r1
+ add r1, #0xa0
+ ldr r1, [r1, #0x0]
+ add r0, r6, #0x0
+ bl FUN_020239B8
+ add r0, r6, #0x0
+ pop {r3-r7, pc}
+_02025D32:
+ mov r0, #0x0
+ pop {r3-r7, pc}
+ nop
+_02025D38: .word 0x0000010E
+_02025D3C: .word 0x00000109
+
+ thumb_func_start FUN_02025D40
+FUN_02025D40: ; 0x02025D40
+ add r0, #0x94
+ ldr r0, [r0, #0x0]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02025D48
+FUN_02025D48: ; 0x02025D48
+ push {r4, lr}
+ add r4, r0, #0x0
+ cmp r4, #0xb
+ bge _02025D54
+ bl ErrorHandling
+_02025D54:
+ cmp r4, #0x3c
+ blt _02025D5C
+ bl ErrorHandling
+_02025D5C:
+ sub r4, #0xb
+ ldr r0, _02025D68 ; =0x02105C74
+ lsl r1, r4, #0x1
+ ldrh r0, [r0, r1]
+ pop {r4, pc}
+ nop
+_02025D68: .word 0x02105C74
+
+ thumb_func_start FUN_02025D6C
+FUN_02025D6C: ; 0x02025D6C
+ push {r4-r5}
+ mov r2, #0x81
+ mov r5, #0x0
+ lsl r2, r2, #0x4
+_02025D74:
+ add r4, r0, r5
+ ldrb r3, [r4, r2]
+ cmp r3, #0x0
+ bne _02025D88
+ mov r0, #0x81
+ lsl r0, r0, #0x4
+ strb r1, [r4, r0]
+ mov r0, #0x1
+ pop {r4-r5}
+ bx lr
+_02025D88:
+ add r5, r5, #0x1
+ cmp r5, #0xc8
+ blt _02025D74
+ mov r0, #0x0
+ pop {r4-r5}
+ bx lr
+
+ thumb_func_start FUN_02025D94
+FUN_02025D94: ; 0x02025D94
+ mov r1, #0x81
+ mov r3, #0x0
+ lsl r1, r1, #0x4
+_02025D9A:
+ add r2, r0, r3
+ ldrb r2, [r2, r1]
+ cmp r2, #0x0
+ bne _02025DA6
+ mov r0, #0x1
+ bx lr
+_02025DA6:
+ add r3, r3, #0x1
+ cmp r3, #0xc8
+ blt _02025D9A
+ mov r0, #0x0
+ bx lr
+
+ thumb_func_start FUN_02025DB0
+FUN_02025DB0: ; 0x02025DB0
+ mov r1, #0x81
+ mov r3, #0x0
+ lsl r1, r1, #0x4
+_02025DB6:
+ add r2, r0, r3
+ ldrb r2, [r2, r1]
+ cmp r2, #0x0
+ beq _02025DC4
+ add r3, r3, #0x1
+ cmp r3, #0xc8
+ blt _02025DB6
+_02025DC4:
+ add r0, r3, #0x0
+ bx lr
+
+ thumb_func_start FUN_02025DC8
+FUN_02025DC8: ; 0x02025DC8
+ add r1, r0, r1
+ mov r0, #0x81
+ lsl r0, r0, #0x4
+ ldrb r0, [r1, r0]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02025DD4
+FUN_02025DD4: ; 0x02025DD4
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ bl FUN_02025F0C
+ cmp r0, #0x0
+ beq _02025DE6
+ bl ErrorHandling
+_02025DE6:
+ mov r0, #0x81
+ add r1, r5, r4
+ lsl r0, r0, #0x4
+ add r6, r4, #0x0
+ ldrb r7, [r1, r0]
+ cmp r4, #0xc7
+ bge _02025E06
+ mov r1, #0x81
+ add r0, r0, #0x1
+ lsl r1, r1, #0x4
+_02025DFA:
+ add r3, r5, r6
+ ldrb r2, [r3, r0]
+ add r6, r6, #0x1
+ cmp r6, #0xc7
+ strb r2, [r3, r1]
+ blt _02025DFA
+_02025E06:
+ ldr r0, _02025E1C ; =0x000008D7
+ mov r2, #0x0
+ strb r2, [r5, r0]
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ sub r2, r2, #0x1
+ bl FUN_02025F58
+ add r0, r7, #0x0
+ pop {r3-r7, pc}
+ nop
+_02025E1C: .word 0x000008D7
+
+ thumb_func_start FUN_02025E20
+FUN_02025E20: ; 0x02025E20
+ push {r4-r7, lr}
+ sub sp, #0xd4
+ mov r4, #0x0
+ add r5, r0, #0x0
+ sub r0, r4, #0x1
+ str r0, [sp, #0x4]
+ mov r0, #0x81
+ lsl r0, r0, #0x4
+ str r1, [sp, #0x8]
+ str r2, [sp, #0x0]
+ add r0, r5, r0
+ add r1, sp, #0xc
+ mov r2, #0xc8
+ blx MI_CpuCopy8
+ ldr r2, [sp, #0x8]
+ add r1, sp, #0xc
+ add r0, r4, #0x0
+ add r7, r1, r2
+_02025E46:
+ ldr r2, [sp, #0x8]
+ cmp r0, r2
+ beq _02025E58
+ ldrb r6, [r1, #0x0]
+ mov r2, #0x81
+ add r3, r5, r4
+ lsl r2, r2, #0x4
+ strb r6, [r3, r2]
+ add r4, r4, #0x1
+_02025E58:
+ ldr r2, [sp, #0x0]
+ cmp r0, r2
+ bne _02025E6A
+ ldrb r6, [r7, #0x0]
+ mov r2, #0x81
+ add r3, r5, r4
+ lsl r2, r2, #0x4
+ strb r6, [r3, r2]
+ add r4, r4, #0x1
+_02025E6A:
+ add r0, r0, #0x1
+ add r1, r1, #0x1
+ cmp r0, #0xc8
+ blt _02025E46
+ ldr r0, [sp, #0x8]
+ mov r3, #0x0
+ add r2, r0, #0x1
+ mov r0, #0x9a
+ lsl r0, r0, #0x4
+_02025E7C:
+ add r1, r5, r3
+ ldrb r1, [r1, r0]
+ cmp r2, r1
+ bne _02025E88
+ str r3, [sp, #0x4]
+ b _02025E8E
+_02025E88:
+ add r3, r3, #0x1
+ cmp r3, #0xf
+ blt _02025E7C
+_02025E8E:
+ ldr r1, [sp, #0x0]
+ add r0, r5, #0x0
+ mov r2, #0x1
+ bl FUN_02025F58
+ mov r2, #0x0
+ ldr r1, [sp, #0x8]
+ add r0, r5, #0x0
+ mvn r2, r2
+ bl FUN_02025F58
+ mov r1, #0x0
+ ldr r0, [sp, #0x4]
+ mvn r1, r1
+ cmp r0, r1
+ beq _02025ED6
+ ldr r1, [sp, #0x0]
+ ldr r0, [sp, #0x8]
+ cmp r0, r1
+ bge _02025EC8
+ add r0, r1, #0x0
+ add r2, r0, #0x1
+ ldr r0, [sp, #0x4]
+ add sp, #0xd4
+ add r1, r5, r0
+ mov r0, #0x9a
+ lsl r0, r0, #0x4
+ strb r2, [r1, r0]
+ pop {r4-r7, pc}
+_02025EC8:
+ add r0, r1, #0x0
+ add r2, r0, #0x2
+ ldr r0, [sp, #0x4]
+ add r1, r5, r0
+ mov r0, #0x9a
+ lsl r0, r0, #0x4
+ strb r2, [r1, r0]
+_02025ED6:
+ add sp, #0xd4
+ pop {r4-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_02025EDC
+FUN_02025EDC: ; 0x02025EDC
+ push {r4-r6, lr}
+ add r6, r2, #0x0
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ cmp r6, #0x1
+ bge _02025EEC
+ bl ErrorHandling
+_02025EEC:
+ cmp r6, #0xf
+ ble _02025EF4
+ bl ErrorHandling
+_02025EF4:
+ sub r0, r6, #0x1
+ add r1, r5, r0
+ mov r0, #0x9a
+ add r2, r4, #0x1
+ lsl r0, r0, #0x4
+ strb r2, [r1, r0]
+ mov r0, #0x81
+ add r1, r5, r4
+ lsl r0, r0, #0x4
+ ldrb r0, [r1, r0]
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_02025F0C
+FUN_02025F0C: ; 0x02025F0C
+ push {r3-r4}
+ add r3, r1, #0x1
+ mov r1, #0x9a
+ mov r4, #0x0
+ lsl r1, r1, #0x4
+_02025F16:
+ add r2, r0, r4
+ ldrb r2, [r2, r1]
+ cmp r3, r2
+ bne _02025F24
+ mov r0, #0x1
+ pop {r3-r4}
+ bx lr
+_02025F24:
+ add r4, r4, #0x1
+ cmp r4, #0xf
+ blt _02025F16
+ mov r0, #0x0
+ pop {r3-r4}
+ bx lr
+
+ thumb_func_start FUN_02025F30
+FUN_02025F30: ; 0x02025F30
+ sub r1, r1, #0x1
+ cmp r1, #0xf
+ bge _02025F40
+ add r1, r0, r1
+ mov r0, #0x9a
+ mov r2, #0x0
+ lsl r0, r0, #0x4
+ strb r2, [r1, r0]
+_02025F40:
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02025F44
+FUN_02025F44: ; 0x02025F44
+ mov r1, #0x9a
+ lsl r1, r1, #0x4
+ add r0, r0, r1
+ ldr r3, _02025F54 ; =MI_CpuFill8
+ mov r1, #0x0
+ mov r2, #0xf
+ bx r3
+ nop
+_02025F54: .word MI_CpuFill8
+
+ thumb_func_start FUN_02025F58
+FUN_02025F58: ; 0x02025F58
+ push {r4-r7}
+ mov r6, #0x9a
+ lsl r6, r6, #0x4
+ mov r4, #0x0
+ add r1, r1, #0x1
+ add r7, r6, #0x0
+_02025F64:
+ add r3, r0, r4
+ ldrb r5, [r3, r7]
+ cmp r5, r1
+ ble _02025F76
+ mov r5, #0x9a
+ lsl r5, r5, #0x4
+ ldrb r5, [r3, r5]
+ add r5, r5, r2
+ strb r5, [r3, r6]
+_02025F76:
+ add r4, r4, #0x1
+ cmp r4, #0xf
+ blt _02025F64
+ pop {r4-r7}
+ bx lr
+
+ thumb_func_start FUN_02025F80
+FUN_02025F80: ; 0x02025F80
+ mov r1, #0x9
+ mov r3, #0x0
+ lsl r1, r1, #0x8
+_02025F86:
+ add r2, r0, r3
+ ldrb r2, [r2, r1]
+ cmp r2, #0x0
+ beq _02025F94
+ add r3, r3, #0x1
+ cmp r3, #0x28
+ blt _02025F86
+_02025F94:
+ add r0, r3, #0x0
+ bx lr
+
+ thumb_func_start FUN_02025F98
+FUN_02025F98: ; 0x02025F98
+ add r1, r0, r1
+ mov r0, #0x9
+ lsl r0, r0, #0x8
+ ldrb r0, [r1, r0]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02025FA4
+FUN_02025FA4: ; 0x02025FA4
+ push {r3-r6}
+ mov r2, #0x9
+ add r3, r0, r1
+ lsl r2, r2, #0x8
+ ldrb r2, [r3, r2]
+ cmp r1, #0x27
+ bge _02025FC2
+ ldr r3, _02025FD0 ; =0x00000901
+ sub r4, r3, #0x1
+_02025FB6:
+ add r6, r0, r1
+ ldrb r5, [r6, r3]
+ add r1, r1, #0x1
+ cmp r1, #0x27
+ strb r5, [r6, r4]
+ blt _02025FB6
+_02025FC2:
+ ldr r1, _02025FD4 ; =0x00000927
+ mov r3, #0x0
+ strb r3, [r0, r1]
+ add r0, r2, #0x0
+ pop {r3-r6}
+ bx lr
+ nop
+_02025FD0: .word 0x00000901
+_02025FD4: .word 0x00000927
+
+ thumb_func_start FUN_02025FD8
+FUN_02025FD8: ; 0x02025FD8
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ bl FUN_020259E0
+ mov r1, #0x0
+ mvn r1, r1
+ cmp r0, r1
+ beq _02025FF6
+ add r1, r5, r0
+ mov r0, #0x9
+ lsl r0, r0, #0x8
+ strb r4, [r1, r0]
+ mov r0, #0x1
+ pop {r3-r5, pc}
+_02025FF6:
+ mov r0, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_02025FFC
+FUN_02025FFC: ; 0x02025FFC
+ push {r3-r7, lr}
+ sub sp, #0x30
+ add r5, r0, #0x0
+ mov r0, #0x9
+ lsl r0, r0, #0x8
+ str r1, [sp, #0x4]
+ str r2, [sp, #0x0]
+ add r0, r5, r0
+ add r1, sp, #0x8
+ mov r2, #0x28
+ mov r4, #0x0
+ blx MI_CpuCopy8
+ ldr r2, [sp, #0x4]
+ add r1, sp, #0x8
+ add r0, r4, #0x0
+ add r7, r1, r2
+_0202601E:
+ ldr r2, [sp, #0x4]
+ cmp r0, r2
+ beq _02026030
+ ldrb r6, [r1, #0x0]
+ mov r2, #0x9
+ add r3, r5, r4
+ lsl r2, r2, #0x8
+ strb r6, [r3, r2]
+ add r4, r4, #0x1
+_02026030:
+ ldr r2, [sp, #0x0]
+ cmp r0, r2
+ bne _02026042
+ ldrb r6, [r7, #0x0]
+ mov r2, #0x9
+ add r3, r5, r4
+ lsl r2, r2, #0x8
+ strb r6, [r3, r2]
+ add r4, r4, #0x1
+_02026042:
+ add r0, r0, #0x1
+ add r1, r1, #0x1
+ cmp r0, #0x28
+ blt _0202601E
+ add sp, #0x30
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_02026050
+FUN_02026050: ; 0x02026050
+ mov r1, #0x95
+ mov r3, #0x0
+ lsl r1, r1, #0x4
+_02026056:
+ add r2, r0, r3
+ ldrb r2, [r2, r1]
+ cmp r2, #0x0
+ beq _02026064
+ add r3, r3, #0x1
+ cmp r3, #0x28
+ blt _02026056
+_02026064:
+ add r0, r3, #0x0
+ bx lr
+
+ thumb_func_start FUN_02026068
+FUN_02026068: ; 0x02026068
+ add r1, r0, r1
+ mov r0, #0x95
+ lsl r0, r0, #0x4
+ ldrb r0, [r1, r0]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02026074
+FUN_02026074: ; 0x02026074
+ add r1, r0, r1
+ ldr r0, _0202607C ; =0x00000978
+ ldrb r0, [r1, r0]
+ bx lr
+ .balign 4
+_0202607C: .word 0x00000978
+
+ thumb_func_start FUN_02026080
+FUN_02026080: ; 0x02026080
+ push {r4-r7}
+ add r2, r0, #0x0
+ mov r0, #0x95
+ add r3, r2, r1
+ lsl r0, r0, #0x4
+ ldrb r0, [r3, r0]
+ cmp r1, #0x27
+ mov r12, r0
+ bge _020260AE
+ ldr r7, _020260BC ; =0x00000951
+ add r4, r7, #0x0
+ add r5, r7, #0x0
+ sub r3, r7, #0x1
+ add r4, #0x28
+ add r5, #0x27
+_0202609E:
+ add r0, r2, r1
+ ldrb r6, [r0, r7]
+ add r1, r1, #0x1
+ cmp r1, #0x27
+ strb r6, [r0, r3]
+ ldrb r6, [r0, r4]
+ strb r6, [r0, r5]
+ blt _0202609E
+_020260AE:
+ ldr r0, _020260C0 ; =0x00000977
+ mov r1, #0x0
+ strb r1, [r2, r0]
+ mov r0, r12
+ pop {r4-r7}
+ bx lr
+ nop
+_020260BC: .word 0x00000951
+_020260C0: .word 0x00000977
+
+ thumb_func_start FUN_020260C4
+FUN_020260C4: ; 0x020260C4
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ add r6, r2, #0x0
+ bl FUN_02025A00
+ mov r1, #0x0
+ mvn r1, r1
+ cmp r0, r1
+ beq _020260E8
+ add r1, r5, r0
+ mov r0, #0x95
+ lsl r0, r0, #0x4
+ strb r4, [r1, r0]
+ add r0, #0x28
+ strb r6, [r1, r0]
+ mov r0, #0x1
+ pop {r4-r6, pc}
+_020260E8:
+ mov r0, #0x0
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_020260EC
+FUN_020260EC: ; 0x020260EC
+ push {r4-r7, lr}
+ sub sp, #0x5c
+ add r7, r0, #0x0
+ mov r0, #0x95
+ lsl r0, r0, #0x4
+ str r1, [sp, #0x0]
+ str r2, [sp, #0x4]
+ add r0, r7, r0
+ add r1, sp, #0x34
+ mov r2, #0x28
+ mov r4, #0x0
+ blx MI_CpuCopy8
+ ldr r0, _02026168 ; =0x00000978
+ add r1, sp, #0xc
+ add r0, r7, r0
+ mov r2, #0x28
+ blx MI_CpuCopy8
+ ldr r3, [sp, #0x0]
+ add r1, sp, #0x34
+ add r3, r1, r3
+ mov r12, r3
+ ldr r3, [sp, #0x0]
+ add r2, sp, #0xc
+ add r3, r2, r3
+ add r0, r4, #0x0
+ str r3, [sp, #0x8]
+_02026124:
+ ldr r3, [sp, #0x0]
+ cmp r0, r3
+ beq _0202613C
+ ldrb r5, [r1, #0x0]
+ mov r3, #0x95
+ add r6, r7, r4
+ lsl r3, r3, #0x4
+ strb r5, [r6, r3]
+ ldrb r5, [r2, #0x0]
+ add r3, #0x28
+ add r4, r4, #0x1
+ strb r5, [r6, r3]
+_0202613C:
+ ldr r3, [sp, #0x4]
+ cmp r0, r3
+ bne _02026158
+ mov r3, r12
+ ldrb r5, [r3, #0x0]
+ mov r3, #0x95
+ add r6, r7, r4
+ lsl r3, r3, #0x4
+ strb r5, [r6, r3]
+ ldr r3, [sp, #0x8]
+ add r4, r4, #0x1
+ ldrb r5, [r3, #0x0]
+ ldr r3, _02026168 ; =0x00000978
+ strb r5, [r6, r3]
+_02026158:
+ add r0, r0, #0x1
+ add r1, r1, #0x1
+ add r2, r2, #0x1
+ cmp r0, #0x28
+ blt _02026124
+ add sp, #0x5c
+ pop {r4-r7, pc}
+ nop
+_02026168: .word 0x00000978
+
+ thumb_func_start FUN_0202616C
+FUN_0202616C: ; 0x0202616C
+ ldr r1, _02026184 ; =0x00000928
+ mov r3, #0x0
+_02026170:
+ add r2, r0, r3
+ ldrb r2, [r2, r1]
+ cmp r2, #0x0
+ beq _0202617E
+ add r3, r3, #0x1
+ cmp r3, #0x28
+ blt _02026170
+_0202617E:
+ add r0, r3, #0x0
+ bx lr
+ nop
+_02026184: .word 0x00000928
+
+ thumb_func_start FUN_02026188
+FUN_02026188: ; 0x02026188
+ add r1, r0, r1
+ ldr r0, _02026190 ; =0x00000928
+ ldrb r0, [r1, r0]
+ bx lr
+ .balign 4
+_02026190: .word 0x00000928
+
+ thumb_func_start FUN_02026194
+FUN_02026194: ; 0x02026194
+ push {r3-r6}
+ ldr r2, _020261BC ; =0x00000928
+ add r3, r0, r1
+ ldrb r2, [r3, r2]
+ cmp r1, #0x27
+ bge _020261B0
+ ldr r3, _020261C0 ; =0x00000929
+ sub r4, r3, #0x1
+_020261A4:
+ add r6, r0, r1
+ ldrb r5, [r6, r3]
+ add r1, r1, #0x1
+ cmp r1, #0x27
+ strb r5, [r6, r4]
+ blt _020261A4
+_020261B0:
+ ldr r1, _020261C4 ; =0x0000094F
+ mov r3, #0x0
+ strb r3, [r0, r1]
+ add r0, r2, #0x0
+ pop {r3-r6}
+ bx lr
+ .balign 4
+_020261BC: .word 0x00000928
+_020261C0: .word 0x00000929
+_020261C4: .word 0x0000094F
+
+ thumb_func_start FUN_020261C8
+FUN_020261C8: ; 0x020261C8
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ bl FUN_02025A20
+ mov r1, #0x0
+ mvn r1, r1
+ cmp r0, r1
+ beq _020261E4
+ add r1, r5, r0
+ ldr r0, _020261E8 ; =0x00000928
+ strb r4, [r1, r0]
+ mov r0, #0x1
+ pop {r3-r5, pc}
+_020261E4:
+ mov r0, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+_020261E8: .word 0x00000928
+
+ thumb_func_start FUN_020261EC
+FUN_020261EC: ; 0x020261EC
+ push {r3-r7, lr}
+ sub sp, #0x30
+ add r5, r0, #0x0
+ ldr r0, _02026238 ; =0x00000928
+ str r1, [sp, #0x4]
+ str r2, [sp, #0x0]
+ add r0, r5, r0
+ add r1, sp, #0x8
+ mov r2, #0x28
+ mov r4, #0x0
+ blx MI_CpuCopy8
+ ldr r2, [sp, #0x4]
+ add r1, sp, #0x8
+ add r0, r4, #0x0
+ add r7, r1, r2
+_0202620C:
+ ldr r2, [sp, #0x4]
+ cmp r0, r2
+ beq _0202621C
+ ldrb r6, [r1, #0x0]
+ ldr r2, _02026238 ; =0x00000928
+ add r3, r5, r4
+ strb r6, [r3, r2]
+ add r4, r4, #0x1
+_0202621C:
+ ldr r2, [sp, #0x0]
+ cmp r0, r2
+ bne _0202622C
+ ldrb r6, [r7, #0x0]
+ ldr r2, _02026238 ; =0x00000928
+ add r3, r5, r4
+ strb r6, [r3, r2]
+ add r4, r4, #0x1
+_0202622C:
+ add r0, r0, #0x1
+ add r1, r1, #0x1
+ cmp r0, #0x28
+ blt _0202620C
+ add sp, #0x30
+ pop {r3-r7, pc}
+ .balign 4
+_02026238: .word 0x00000928
+
+ thumb_func_start FUN_0202623C
+FUN_0202623C: ; 0x0202623C
+ ldr r1, _02026254 ; =0x000008D8
+ mov r3, #0x0
+_02026240:
+ add r2, r0, r3
+ ldrb r2, [r2, r1]
+ cmp r2, #0x0
+ beq _0202624E
+ add r3, r3, #0x1
+ cmp r3, #0x28
+ blt _02026240
+_0202624E:
+ add r0, r3, #0x0
+ bx lr
+ nop
+_02026254: .word 0x000008D8
+
+ thumb_func_start FUN_02026258
+FUN_02026258: ; 0x02026258
+ add r1, r0, r1
+ ldr r0, _02026260 ; =0x000008D8
+ ldrb r0, [r1, r0]
+ bx lr
+ .balign 4
+_02026260: .word 0x000008D8
+
+ thumb_func_start FUN_02026264
+FUN_02026264: ; 0x02026264
+ push {r3-r6}
+ ldr r2, _0202628C ; =0x000008D8
+ add r3, r0, r1
+ ldrb r2, [r3, r2]
+ cmp r1, #0x27
+ bge _02026280
+ ldr r3, _02026290 ; =0x000008D9
+ sub r4, r3, #0x1
+_02026274:
+ add r6, r0, r1
+ ldrb r5, [r6, r3]
+ add r1, r1, #0x1
+ cmp r1, #0x27
+ strb r5, [r6, r4]
+ blt _02026274
+_02026280:
+ ldr r1, _02026294 ; =0x000008FF
+ mov r3, #0x0
+ strb r3, [r0, r1]
+ add r0, r2, #0x0
+ pop {r3-r6}
+ bx lr
+ .balign 4
+_0202628C: .word 0x000008D8
+_02026290: .word 0x000008D9
+_02026294: .word 0x000008FF
+
+ thumb_func_start FUN_02026298
+FUN_02026298: ; 0x02026298
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ bl FUN_02025A40
+ mov r1, #0x0
+ mvn r1, r1
+ cmp r0, r1
+ beq _020262B4
+ add r1, r5, r0
+ ldr r0, _020262B8 ; =0x000008D8
+ strb r4, [r1, r0]
+ mov r0, #0x1
+ pop {r3-r5, pc}
+_020262B4:
+ mov r0, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+_020262B8: .word 0x000008D8
+
+ thumb_func_start FUN_020262BC
+FUN_020262BC: ; 0x020262BC
+ push {r3-r7, lr}
+ sub sp, #0x30
+ add r5, r0, #0x0
+ ldr r0, _02026308 ; =0x000008D8
+ str r1, [sp, #0x4]
+ str r2, [sp, #0x0]
+ add r0, r5, r0
+ add r1, sp, #0x8
+ mov r2, #0x28
+ mov r4, #0x0
+ blx MI_CpuCopy8
+ ldr r2, [sp, #0x4]
+ add r1, sp, #0x8
+ add r0, r4, #0x0
+ add r7, r1, r2
+_020262DC:
+ ldr r2, [sp, #0x4]
+ cmp r0, r2
+ beq _020262EC
+ ldrb r6, [r1, #0x0]
+ ldr r2, _02026308 ; =0x000008D8
+ add r3, r5, r4
+ strb r6, [r3, r2]
+ add r4, r4, #0x1
+_020262EC:
+ ldr r2, [sp, #0x0]
+ cmp r0, r2
+ bne _020262FC
+ ldrb r6, [r7, #0x0]
+ ldr r2, _02026308 ; =0x000008D8
+ add r3, r5, r4
+ strb r6, [r3, r2]
+ add r4, r4, #0x1
+_020262FC:
+ add r0, r0, #0x1
+ add r1, r1, #0x1
+ cmp r0, #0x28
+ blt _020262DC
+ add sp, #0x30
+ pop {r3-r7, pc}
+ .balign 4
+_02026308: .word 0x000008D8
+
+ thumb_func_start FUN_0202630C
+FUN_0202630C: ; 0x0202630C
+ push {r3-r7, lr}
+ add r4, r2, #0x0
+ add r5, r0, #0x0
+ add r7, r1, #0x0
+ add r6, r3, #0x0
+ cmp r4, #0x40
+ blt _0202631E
+ bl ErrorHandling
+_0202631E:
+ ldr r0, _02026350 ; =0x0000010F
+ add r1, r5, r4
+ strb r7, [r1, r0]
+ lsl r1, r4, #0x1
+ add r1, r4, r1
+ add r2, r0, #0x0
+ add r1, r5, r1
+ add r2, #0x40
+ strb r6, [r1, r2]
+ mov r2, #0xf
+ lsl r2, r2, #0x8
+ add r3, r6, #0x0
+ and r3, r2
+ asr r4, r3, #0x8
+ ldr r3, [sp, #0x18]
+ and r2, r3
+ asr r2, r2, #0x4
+ add r4, r4, r2
+ add r2, r0, #0x0
+ add r2, #0x41
+ strb r4, [r1, r2]
+ add r0, #0x42
+ strb r3, [r1, r0]
+ pop {r3-r7, pc}
+ nop
+_02026350: .word 0x0000010F
+
+ thumb_func_start FUN_02026354
+FUN_02026354: ; 0x02026354
+ push {r3-r5, lr}
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ cmp r4, #0x40
+ blt _02026362
+ bl ErrorHandling
+_02026362:
+ ldr r0, _0202636C ; =0x0000010F
+ add r1, r5, r4
+ ldrb r0, [r1, r0]
+ pop {r3-r5, pc}
+ nop
+_0202636C: .word 0x0000010F
+
+ thumb_func_start FUN_02026370
+FUN_02026370: ; 0x02026370
+ push {r3-r5, lr}
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ cmp r4, #0x40
+ blt _0202637E
+ bl ErrorHandling
+_0202637E:
+ lsl r0, r4, #0x1
+ add r0, r4, r0
+ add r1, r5, r0
+ ldr r0, _02026398 ; =0x0000014F
+ ldrb r2, [r1, r0]
+ add r0, r0, #0x1
+ ldrb r0, [r1, r0]
+ lsl r1, r0, #0x8
+ mov r0, #0xf
+ lsl r0, r0, #0x8
+ and r0, r1
+ add r0, r2, r0
+ pop {r3-r5, pc}
+ .balign 4
+_02026398: .word 0x0000014F
+
+ thumb_func_start FUN_0202639C
+FUN_0202639C: ; 0x0202639C
+ push {r3-r5, lr}
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ cmp r4, #0x40
+ blt _020263AA
+ bl ErrorHandling
+_020263AA:
+ lsl r0, r4, #0x1
+ add r0, r4, r0
+ add r1, r5, r0
+ ldr r0, _020263C4 ; =0x00000151
+ ldrb r2, [r1, r0]
+ sub r0, r0, #0x1
+ ldrb r0, [r1, r0]
+ lsl r1, r0, #0x4
+ mov r0, #0xf
+ lsl r0, r0, #0x8
+ and r0, r1
+ add r0, r2, r0
+ pop {r3-r5, pc}
+ .balign 4
+_020263C4: .word 0x00000151
+
+ thumb_func_start FUN_020263C8
+FUN_020263C8: ; 0x020263C8
+ push {r3-r5, lr}
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ cmp r4, #0x40
+ blt _020263D6
+ bl ErrorHandling
+_020263D6:
+ ldr r0, _020263F0 ; =0x0000010F
+ mov r1, #0x0
+ add r2, r5, r4
+ strb r1, [r2, r0]
+ add r0, #0x40
+ add r2, r5, r0
+ lsl r0, r4, #0x1
+ add r0, r4, r0
+ add r0, r2, r0
+ mov r2, #0x3
+ blx MI_CpuFill8
+ pop {r3-r5, pc}
+ .balign 4
+_020263F0: .word 0x0000010F
+
+ thumb_func_start FUN_020263F4
+FUN_020263F4: ; 0x020263F4
+ push {r3-r7, lr}
+ add r4, r2, #0x0
+ add r5, r0, #0x0
+ add r7, r1, #0x0
+ add r6, r3, #0x0
+ cmp r4, #0x10
+ blt _02026406
+ bl ErrorHandling
+_02026406:
+ lsl r2, r4, #0x1
+ ldr r1, _02026440 ; =0x0000050C
+ add r0, r5, r4
+ add r2, r4, r2
+ add r4, r5, r2
+ add r2, r1, #0x0
+ mov r5, #0xf
+ strb r7, [r0, r1]
+ add r2, #0x10
+ strb r6, [r4, r2]
+ lsl r5, r5, #0x8
+ add r2, r6, #0x0
+ and r2, r5
+ asr r3, r2, #0x8
+ ldr r2, [sp, #0x18]
+ and r5, r2
+ asr r5, r5, #0x4
+ add r5, r3, r5
+ add r3, r1, #0x0
+ add r3, #0x11
+ strb r5, [r4, r3]
+ add r3, r1, #0x0
+ add r3, #0x12
+ strb r2, [r4, r3]
+ ldr r2, [sp, #0x1c]
+ add r1, #0x40
+ strb r2, [r0, r1]
+ pop {r3-r7, pc}
+ nop
+_02026440: .word 0x0000050C
+
+ thumb_func_start FUN_02026444
+FUN_02026444: ; 0x02026444
+ add r1, r0, r1
+ ldr r0, _0202644C ; =0x0000050C
+ ldrb r0, [r1, r0]
+ bx lr
+ .balign 4
+_0202644C: .word 0x0000050C
+
+ thumb_func_start FUN_02026450
+FUN_02026450: ; 0x02026450
+ lsl r2, r1, #0x1
+ add r1, r1, r2
+ add r1, r0, r1
+ ldr r0, _0202646C ; =0x0000051C
+ ldrb r2, [r1, r0]
+ add r0, r0, #0x1
+ ldrb r0, [r1, r0]
+ lsl r1, r0, #0x8
+ mov r0, #0xf
+ lsl r0, r0, #0x8
+ and r0, r1
+ add r0, r2, r0
+ bx lr
+ nop
+_0202646C: .word 0x0000051C
+
+ thumb_func_start FUN_02026470
+FUN_02026470: ; 0x02026470
+ lsl r2, r1, #0x1
+ add r1, r1, r2
+ add r1, r0, r1
+ ldr r0, _0202648C ; =0x0000051E
+ ldrb r2, [r1, r0]
+ sub r0, r0, #0x1
+ ldrb r0, [r1, r0]
+ lsl r1, r0, #0x4
+ mov r0, #0xf
+ lsl r0, r0, #0x8
+ and r0, r1
+ add r0, r2, r0
+ bx lr
+ nop
+_0202648C: .word 0x0000051E
+
+ thumb_func_start FUN_02026490
+FUN_02026490: ; 0x02026490
+ add r1, r0, r1
+ ldr r0, _02026498 ; =0x0000054C
+ ldrb r0, [r1, r0]
+ bx lr
+ .balign 4
+_02026498: .word 0x0000054C
+
+ thumb_func_start FUN_0202649C
+FUN_0202649C: ; 0x0202649C
+ push {r3-r7, lr}
+ add r4, r2, #0x0
+ add r5, r0, #0x0
+ add r6, r1, #0x0
+ add r7, r3, #0x0
+ cmp r4, #0x64
+ blt _020264AE
+ bl ErrorHandling
+_020264AE:
+ ldr r1, _020264E8 ; =0x0000055C
+ add r0, r5, r4
+ strb r6, [r0, r1]
+ lsl r1, r4, #0x1
+ add r1, r4, r1
+ add r4, r5, r1
+ mov r5, #0xf
+ lsl r5, r5, #0x8
+ add r2, r7, #0x0
+ and r2, r5
+ asr r3, r2, #0x8
+ ldr r2, [sp, #0x18]
+ ldr r1, _020264EC ; =0x00000688
+ and r5, r2
+ asr r5, r5, #0x4
+ add r5, r3, r5
+ strb r7, [r4, r1]
+ add r3, r1, #0x1
+ strb r5, [r4, r3]
+ add r3, r1, #0x2
+ strb r2, [r4, r3]
+ add r2, r1, #0x0
+ ldr r3, [sp, #0x1c]
+ sub r2, #0x64
+ strb r3, [r0, r2]
+ ldr r2, [sp, #0x20]
+ sub r1, #0xc8
+ strb r2, [r0, r1]
+ pop {r3-r7, pc}
+ .balign 4
+_020264E8: .word 0x0000055C
+_020264EC: .word 0x00000688
+
+ thumb_func_start FUN_020264F0
+FUN_020264F0: ; 0x020264F0
+ add r1, r0, r1
+ ldr r0, _020264F8 ; =0x0000055C
+ ldrb r0, [r1, r0]
+ bx lr
+ .balign 4
+_020264F8: .word 0x0000055C
+
+ thumb_func_start FUN_020264FC
+FUN_020264FC: ; 0x020264FC
+ lsl r2, r1, #0x1
+ add r1, r1, r2
+ add r1, r0, r1
+ ldr r0, _02026518 ; =0x00000688
+ ldrb r2, [r1, r0]
+ add r0, r0, #0x1
+ ldrb r0, [r1, r0]
+ lsl r1, r0, #0x8
+ mov r0, #0xf
+ lsl r0, r0, #0x8
+ and r0, r1
+ add r0, r2, r0
+ bx lr
+ nop
+_02026518: .word 0x00000688
+
+ thumb_func_start FUN_0202651C
+FUN_0202651C: ; 0x0202651C
+ lsl r2, r1, #0x1
+ add r1, r1, r2
+ add r1, r0, r1
+ ldr r0, _02026538 ; =0x0000068A
+ ldrb r2, [r1, r0]
+ sub r0, r0, #0x1
+ ldrb r0, [r1, r0]
+ lsl r1, r0, #0x4
+ mov r0, #0xf
+ lsl r0, r0, #0x8
+ and r0, r1
+ add r0, r2, r0
+ bx lr
+ nop
+_02026538: .word 0x0000068A
+
+ thumb_func_start FUN_0202653C
+FUN_0202653C: ; 0x0202653C
+ add r1, r0, r1
+ ldr r0, _02026544 ; =0x00000624
+ ldrb r0, [r1, r0]
+ bx lr
+ .balign 4
+_02026544: .word 0x00000624
+
+ thumb_func_start FUN_02026548
+FUN_02026548: ; 0x02026548
+ add r1, r0, r1
+ mov r0, #0x17
+ lsl r0, r0, #0x6
+ ldrb r0, [r1, r0]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02026554
+FUN_02026554: ; 0x02026554
+ push {r4-r7}
+ ldr r3, _020265B0 ; =0x00000211
+ add r7, r0, #0x0
+ mov r12, r1
+ mov r0, #0x0
+ add r1, r7, #0x0
+ sub r4, r3, #0x1
+ sub r5, r3, #0x2
+_02026564:
+ ldrb r6, [r1, r5]
+ cmp r6, #0x0
+ bne _020265A0
+ ldrb r6, [r1, r4]
+ cmp r6, #0x0
+ bne _020265A0
+ ldrb r6, [r1, r3]
+ cmp r6, #0x0
+ bne _020265A0
+ lsl r1, r0, #0x1
+ add r1, r0, r1
+ mov r5, #0xf
+ ldr r4, _020265B4 ; =0x0000020F
+ add r1, r7, r1
+ mov r3, r12
+ strb r3, [r1, r4]
+ lsl r5, r5, #0x8
+ mov r3, r12
+ and r3, r5
+ asr r6, r3, #0x8
+ add r3, r2, #0x0
+ and r3, r5
+ asr r3, r3, #0x4
+ add r5, r6, r3
+ add r3, r4, #0x1
+ strb r5, [r1, r3]
+ add r3, r4, #0x2
+ strb r2, [r1, r3]
+ pop {r4-r7}
+ bx lr
+_020265A0:
+ add r0, r0, #0x1
+ add r1, r1, #0x3
+ cmp r0, #0xff
+ blt _02026564
+ mov r0, #0x0
+ pop {r4-r7}
+ bx lr
+ nop
+_020265B0: .word 0x00000211
+_020265B4: .word 0x0000020F
+
+ thumb_func_start FUN_020265B8
+FUN_020265B8: ; 0x020265B8
+ push {r3-r5, lr}
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ cmp r4, #0xff
+ blt _020265C6
+ bl ErrorHandling
+_020265C6:
+ ldr r0, _020265DC ; =0x0000020F
+ mov r2, #0x3
+ add r1, r5, r0
+ lsl r0, r4, #0x1
+ add r0, r4, r0
+ add r0, r1, r0
+ mov r1, #0x0
+ blx MI_CpuFill8
+ pop {r3-r5, pc}
+ nop
+_020265DC: .word 0x0000020F
+
+ thumb_func_start FUN_020265E0
+FUN_020265E0: ; 0x020265E0
+ lsl r2, r1, #0x1
+ add r1, r1, r2
+ add r1, r0, r1
+ ldr r0, _020265FC ; =0x0000020F
+ ldrb r2, [r1, r0]
+ add r0, r0, #0x1
+ ldrb r0, [r1, r0]
+ lsl r1, r0, #0x8
+ mov r0, #0xf
+ lsl r0, r0, #0x8
+ and r0, r1
+ add r0, r2, r0
+ bx lr
+ nop
+_020265FC: .word 0x0000020F
+
+ thumb_func_start FUN_02026600
+FUN_02026600: ; 0x02026600
+ lsl r2, r1, #0x1
+ add r1, r1, r2
+ add r1, r0, r1
+ ldr r0, _0202661C ; =0x00000211
+ ldrb r2, [r1, r0]
+ sub r0, r0, #0x1
+ ldrb r0, [r1, r0]
+ lsl r1, r0, #0x4
+ mov r0, #0xf
+ lsl r0, r0, #0x8
+ and r0, r1
+ add r0, r2, r0
+ bx lr
+ nop
+_0202661C: .word 0x00000211
+
+ thumb_func_start FUN_02026620
+FUN_02026620: ; 0x02026620
+ mov r1, #0x9b
+ lsl r1, r1, #0x4
+ ldrb r0, [r0, r1]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x1c
+ bne _02026630
+ mov r0, #0x1
+ bx lr
+_02026630:
+ mov r0, #0x0
+ bx lr
+
+ thumb_func_start FUN_02026634
+FUN_02026634: ; 0x02026634
+ mov r2, #0x9b
+ lsl r2, r2, #0x4
+ ldrb r3, [r0, r2]
+ mov r1, #0xf0
+ bic r3, r1
+ mov r1, #0x10
+ orr r1, r3
+ strb r1, [r0, r2]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02026648
+FUN_02026648: ; 0x02026648
+ mov r1, #0x9b
+ lsl r1, r1, #0x4
+ ldrb r0, [r0, r1]
+ lsl r0, r0, #0x1c
+ lsr r0, r0, #0x1c
+ bx lr
+
+ thumb_func_start FUN_02026654
+FUN_02026654: ; 0x02026654
+ mov r2, #0x9b
+ lsl r2, r2, #0x4
+ ldrb r3, [r0, r2]
+ mov r1, #0xf
+ bic r3, r1
+ strb r3, [r0, r2]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02026664
+FUN_02026664: ; 0x02026664
+ push {r3-r4}
+ cmp r1, #0x2c
+ blt _0202667E
+ cmp r1, #0x3b
+ bgt _0202667E
+ ldr r2, _02026684 ; =0x0000080C
+ mov r3, #0x1
+ sub r1, #0x2c
+ ldr r4, [r0, r2]
+ lsl r3, r1
+ add r1, r4, #0x0
+ orr r1, r3
+ str r1, [r0, r2]
+_0202667E:
+ pop {r3-r4}
+ bx lr
+ nop
+_02026684: .word 0x0000080C
+
+ thumb_func_start FUN_02026688
+FUN_02026688: ; 0x02026688
+ cmp r1, #0x2c
+ blt _02026690
+ cmp r1, #0x3b
+ ble _02026694
+_02026690:
+ mov r0, #0x1
+ bx lr
+_02026694:
+ ldr r2, _020266AC ; =0x0000080C
+ sub r1, #0x2c
+ ldr r3, [r0, r2]
+ mov r0, #0x1
+ add r2, r0, #0x0
+ lsl r2, r1
+ add r1, r3, #0x0
+ tst r1, r2
+ beq _020266A8
+ mov r0, #0x0
+_020266A8:
+ bx lr
+ nop
+_020266AC: .word 0x0000080C
+
+ thumb_func_start FUN_020266B0
+FUN_020266B0: ; 0x020266B0
+ ldr r1, _020266C4 ; =0x000009AF
+ ldrb r2, [r0, r1]
+ cmp r2, #0x63
+ blo _020266BE
+ mov r2, #0x0
+ strb r2, [r0, r1]
+ bx lr
+_020266BE:
+ add r2, r2, #0x1
+ strb r2, [r0, r1]
+ bx lr
+ .balign 4
+_020266C4: .word 0x000009AF
+
+ thumb_func_start FUN_020266C8
+FUN_020266C8: ; 0x020266C8
+ ldr r1, _020266D0 ; =0x000009AF
+ ldrb r0, [r0, r1]
+ bx lr
+ nop
+_020266D0: .word 0x000009AF
+
+ thumb_func_start FUN_020266D4
+FUN_020266D4: ; 0x020266D4
+ ldr r3, _020266DC ; =MI_CpuFill8
+ mov r1, #0x0
+ mov r2, #0x94
+ bx r3
+ .balign 4
+_020266DC: .word MI_CpuFill8
+
+ thumb_func_start FUN_020266E0
+FUN_020266E0: ; 0x020266E0
+ push {r4, lr}
+ add r4, r0, #0x0
+ mov r1, #0x0
+ mov r2, #0x2d
+ blx MI_CpuFill8
+ add r0, r4, #0x0
+ add r0, #0x2d
+ mov r1, #0x0
+ mov r2, #0x20
+ blx MI_CpuFill8
+ add r0, r4, #0x0
+ mov r1, #0x0
+ add r0, #0x8c
+ strh r1, [r0, #0x0]
+ add r0, r4, #0x0
+ add r0, #0x8e
+ strh r1, [r0, #0x0]
+ add r0, r4, #0x0
+ add r0, #0x90
+ strb r1, [r0, #0x0]
+ add r4, #0x91
+ strb r1, [r4, #0x0]
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02026714
+FUN_02026714: ; 0x02026714
+ mov r1, #0x0
+ add r0, #0x91
+ strb r1, [r0, #0x0]
+ bx lr
+
+ thumb_func_start FUN_0202671C
+FUN_0202671C: ; 0x0202671C
+ push {r3-r7, lr}
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ add r7, r2, #0x0
+ add r6, r3, #0x0
+ cmp r4, #0x20
+ blt _0202672E
+ bl ErrorHandling
+_0202672E:
+ cmp r6, #0x20
+ blt _02026736
+ bl ErrorHandling
+_02026736:
+ ldr r0, [sp, #0x18]
+ cmp r0, #0x20
+ blt _02026740
+ bl ErrorHandling
+_02026740:
+ cmp r5, #0x0
+ bne _02026748
+ bl ErrorHandling
+_02026748:
+ cmp r4, #0x0
+ beq _02026774
+ cmp r4, #0x10
+ bge _02026762
+ sub r1, r4, #0x1
+ lsl r0, r1, #0x1
+ add r0, r1, r0
+ strb r6, [r5, r0]
+ ldr r1, [sp, #0x18]
+ add r0, r5, r0
+ strb r1, [r0, #0x1]
+ strb r7, [r0, #0x2]
+ pop {r3-r7, pc}
+_02026762:
+ sub r4, #0x10
+ lsl r2, r4, #0x1
+ add r0, r5, r2
+ add r0, #0x2d
+ strb r6, [r0, #0x0]
+ add r0, r5, r2
+ ldr r1, [sp, #0x18]
+ add r0, #0x2e
+ strb r1, [r0, #0x0]
+_02026774:
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_02026778
+FUN_02026778: ; 0x02026778
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ add r6, r1, #0x0
+ add r7, r2, #0x0
+ add r4, r3, #0x0
+ bl FUN_020267C4
+ add r2, r0, #0x0
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ add r3, r7, #0x0
+ str r4, [sp, #0x0]
+ bl FUN_0202671C
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_02026798
+FUN_02026798: ; 0x02026798
+ add r0, #0x88
+ ldr r0, [r0, #0x0]
+ lsl r0, r0, #0xc
+ lsr r0, r0, #0xc
+ cmp r0, #0x32
+ blt _020267A8
+ mov r0, #0x5
+ bx lr
+_020267A8:
+ cmp r0, #0xa
+ blt _020267B0
+ mov r0, #0x4
+ bx lr
+_020267B0:
+ cmp r0, #0x3
+ blt _020267B8
+ mov r0, #0x3
+ bx lr
+_020267B8:
+ cmp r0, #0x1
+ blt _020267C0
+ mov r0, #0x2
+ bx lr
+_020267C0:
+ mov r0, #0x1
+ bx lr
+
+ thumb_func_start FUN_020267C4
+FUN_020267C4: ; 0x020267C4
+ push {r3-r5, lr}
+ add r5, r1, #0x0
+ add r4, r0, #0x0
+ cmp r5, #0x20
+ blt _020267D2
+ bl ErrorHandling
+_020267D2:
+ cmp r5, #0x0
+ bne _020267DE
+ add r0, r4, #0x0
+ bl FUN_02026798
+ pop {r3-r5, pc}
+_020267DE:
+ cmp r5, #0x10
+ bge _020267EE
+ sub r1, r5, #0x1
+ lsl r0, r1, #0x1
+ add r0, r1, r0
+ add r0, r4, r0
+ ldrb r0, [r0, #0x2]
+ pop {r3-r5, pc}
+_020267EE:
+ sub r5, #0x10
+ lsl r1, r5, #0x1
+ add r0, r4, r1
+ add r0, #0x2d
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x0
+ beq _0202680A
+ add r0, r4, r1
+ add r0, #0x2e
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x0
+ beq _0202680A
+ mov r0, #0x6
+ pop {r3-r5, pc}
+_0202680A:
+ mov r0, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_02026810
+FUN_02026810: ; 0x02026810
+ push {r3-r5, lr}
+ add r5, r1, #0x0
+ add r4, r0, #0x0
+ cmp r5, #0x20
+ blt _0202681E
+ bl ErrorHandling
+_0202681E:
+ cmp r5, #0x0
+ bne _02026826
+ mov r0, #0xf
+ pop {r3-r5, pc}
+_02026826:
+ cmp r5, #0x10
+ bge _02026834
+ sub r1, r5, #0x1
+ lsl r0, r1, #0x1
+ add r0, r1, r0
+ ldrb r0, [r4, r0]
+ pop {r3-r5, pc}
+_02026834:
+ sub r5, #0x10
+ lsl r0, r5, #0x1
+ add r0, r4, r0
+ add r0, #0x2d
+ ldrb r0, [r0, #0x0]
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_02026840
+FUN_02026840: ; 0x02026840
+ push {r3-r5, lr}
+ add r5, r1, #0x0
+ add r4, r0, #0x0
+ cmp r5, #0x20
+ blt _0202684E
+ bl ErrorHandling
+_0202684E:
+ cmp r5, #0x0
+ bne _02026856
+ mov r0, #0xc
+ pop {r3-r5, pc}
+_02026856:
+ cmp r5, #0x10
+ bge _02026866
+ sub r1, r5, #0x1
+ lsl r0, r1, #0x1
+ add r0, r1, r0
+ add r0, r4, r0
+ ldrb r0, [r0, #0x1]
+ pop {r3-r5, pc}
+_02026866:
+ sub r5, #0x10
+ lsl r0, r5, #0x1
+ add r0, r4, r0
+ add r0, #0x2e
+ ldrb r0, [r0, #0x0]
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_02026874
+FUN_02026874: ; 0x02026874
+ add r0, #0x88
+ ldr r0, [r0, #0x0]
+ lsl r0, r0, #0xc
+ lsr r0, r0, #0xc
+ cmp r0, #0x32
+ blo _02026884
+ mov r0, #0x0
+ bx lr
+_02026884:
+ cmp r0, #0xa
+ blo _0202688C
+ mov r0, #0x6
+ bx lr
+_0202688C:
+ cmp r0, #0x3
+ blo _02026894
+ mov r0, #0xb
+ bx lr
+_02026894:
+ cmp r0, #0x1
+ blo _0202689C
+ mov r0, #0xf
+ bx lr
+_0202689C:
+ mov r0, #0x10
+ bx lr
+
+ thumb_func_start FUN_020268A0
+FUN_020268A0: ; 0x020268A0
+ add r0, #0x88
+ ldr r0, [r0, #0x0]
+ lsl r0, r0, #0xc
+ lsr r0, r0, #0xc
+ cmp r0, #0x32
+ blo _020268B0
+ mov r0, #0xf
+ bx lr
+_020268B0:
+ cmp r0, #0xa
+ blo _020268B8
+ mov r0, #0xf
+ bx lr
+_020268B8:
+ cmp r0, #0x3
+ blo _020268C0
+ mov r0, #0xf
+ bx lr
+_020268C0:
+ cmp r0, #0x1
+ blo _020268C8
+ mov r0, #0xc
+ bx lr
+_020268C8:
+ mov r0, #0xa
+ bx lr
+
+ thumb_func_start FUN_020268CC
+FUN_020268CC: ; 0x020268CC
+ ldr r0, [r0, #0x0]
+ lsl r0, r0, #0xc
+ lsr r0, r0, #0xc
+ bx lr
+
+ thumb_func_start FUN_020268D4
+FUN_020268D4: ; 0x020268D4
+ push {r3, lr}
+ bl FUN_020269A0
+ cmp r0, #0x4
+ bne _020268E2
+ mov r0, #0x1
+ pop {r3, pc}
+_020268E2:
+ mov r0, #0x0
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_020268E8
+FUN_020268E8: ; 0x020268E8
+ ldr r3, [r0, #0x0]
+ ldr r2, _020268F8 ; =0xFFF00000
+ and r3, r2
+ ldr r2, _020268FC ; =0x000FFFFF
+ and r1, r2
+ orr r1, r3
+ str r1, [r0, #0x0]
+ bx lr
+ .balign 4
+_020268F8: .word 0xFFF00000
+_020268FC: .word 0x000FFFFF
+
+ thumb_func_start FUN_02026900
+FUN_02026900: ; 0x02026900
+ ldr r0, [r0, #0x4]
+ lsl r0, r0, #0xc
+ lsr r0, r0, #0xc
+ bx lr
+
+ thumb_func_start FUN_02026908
+FUN_02026908: ; 0x02026908
+ push {r3-r4}
+ ldr r2, [r0, #0x4]
+ lsl r1, r2, #0xc
+ lsr r4, r1, #0xc
+ ldr r1, _0202692C ; =0x000F423F
+ cmp r4, r1
+ bhs _02026926
+ ldr r1, _02026930 ; =0xFFF00000
+ add r3, r2, #0x0
+ and r3, r1
+ ldr r1, _02026934 ; =0x000FFFFF
+ add r2, r4, #0x1
+ and r1, r2
+ orr r1, r3
+ str r1, [r0, #0x4]
+_02026926:
+ pop {r3-r4}
+ bx lr
+ nop
+_0202692C: .word 0x000F423F
+_02026930: .word 0xFFF00000
+_02026934: .word 0x000FFFFF
+
+ thumb_func_start FUN_02026938
+FUN_02026938: ; 0x02026938
+ ldr r0, [r0, #0x8]
+ lsl r0, r0, #0xc
+ lsr r0, r0, #0xc
+ bx lr
+
+ thumb_func_start FUN_02026940
+FUN_02026940: ; 0x02026940
+ push {r3-r4}
+ ldr r2, [r0, #0x8]
+ lsl r1, r2, #0xc
+ lsr r4, r1, #0xc
+ ldr r1, _02026964 ; =0x000F423F
+ cmp r4, r1
+ bhs _0202695E
+ ldr r1, _02026968 ; =0xFFF00000
+ add r3, r2, #0x0
+ and r3, r1
+ ldr r1, _0202696C ; =0x000FFFFF
+ add r2, r4, #0x1
+ and r1, r2
+ orr r1, r3
+ str r1, [r0, #0x8]
+_0202695E:
+ pop {r3-r4}
+ bx lr
+ nop
+_02026964: .word 0x000F423F
+_02026968: .word 0xFFF00000
+_0202696C: .word 0x000FFFFF
+
+ thumb_func_start FUN_02026970
+FUN_02026970: ; 0x02026970
+ push {r3-r4}
+ ldr r2, [r0, #0xc]
+ lsl r1, r2, #0xc
+ lsr r4, r1, #0xc
+ ldr r1, _02026994 ; =0x000F423F
+ cmp r4, r1
+ bhs _0202698E
+ ldr r1, _02026998 ; =0xFFF00000
+ add r3, r2, #0x0
+ and r3, r1
+ ldr r1, _0202699C ; =0x000FFFFF
+ add r2, r4, #0x1
+ and r1, r2
+ orr r1, r3
+ str r1, [r0, #0xc]
+_0202698E:
+ pop {r3-r4}
+ bx lr
+ nop
+_02026994: .word 0x000F423F
+_02026998: .word 0xFFF00000
+_0202699C: .word 0x000FFFFF
+
+ thumb_func_start FUN_020269A0
+FUN_020269A0: ; 0x020269A0
+ ldr r0, [r0, #0x38]
+ lsl r0, r0, #0xc
+ lsr r0, r0, #0xc
+ cmp r0, #0x32
+ blt _020269AE
+ mov r0, #0x4
+ bx lr
+_020269AE:
+ cmp r0, #0xa
+ blt _020269B6
+ mov r0, #0x3
+ bx lr
+_020269B6:
+ cmp r0, #0x3
+ blt _020269BE
+ mov r0, #0x2
+ bx lr
+_020269BE:
+ cmp r0, #0x1
+ blt _020269C6
+ mov r0, #0x1
+ bx lr
+_020269C6:
+ mov r0, #0x0
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_020269CC
+FUN_020269CC: ; 0x020269CC
+ ldr r0, [r0, #0x38]
+ lsl r0, r0, #0xc
+ lsr r0, r0, #0xc
+ bx lr
+
+ thumb_func_start FUN_020269D4
+FUN_020269D4: ; 0x020269D4
+ push {r3-r4}
+ ldr r2, [r0, #0x38]
+ lsl r1, r2, #0xc
+ lsr r4, r1, #0xc
+ ldr r1, _020269F8 ; =0x000F423F
+ cmp r4, r1
+ bhs _020269F2
+ ldr r1, _020269FC ; =0xFFF00000
+ add r3, r2, #0x0
+ and r3, r1
+ ldr r1, _02026A00 ; =0x000FFFFF
+ add r2, r4, #0x1
+ and r1, r2
+ orr r1, r3
+ str r1, [r0, #0x38]
+_020269F2:
+ pop {r3-r4}
+ bx lr
+ nop
+_020269F8: .word 0x000F423F
+_020269FC: .word 0xFFF00000
+_02026A00: .word 0x000FFFFF
+
+ thumb_func_start FUN_02026A04
+FUN_02026A04: ; 0x02026A04
+ ldr r0, [r0, #0x10]
+ lsl r0, r0, #0xc
+ lsr r0, r0, #0xc
+ bx lr
+
+ thumb_func_start FUN_02026A0C
+FUN_02026A0C: ; 0x02026A0C
+ push {r4-r5}
+ cmp r1, #0x0
+ ble _02026A2C
+ ldr r4, [r0, #0x10]
+ lsl r2, r4, #0xc
+ lsr r5, r2, #0xc
+ ldr r2, _02026A44 ; =0x000F423F
+ sub r3, r2, r1
+ cmp r5, r3
+ bls _02026A2C
+ ldr r1, _02026A48 ; =0xFFF00000
+ and r1, r4
+ orr r1, r2
+ str r1, [r0, #0x10]
+ pop {r4-r5}
+ bx lr
+_02026A2C:
+ ldr r3, [r0, #0x10]
+ ldr r2, _02026A48 ; =0xFFF00000
+ and r2, r3
+ lsl r3, r3, #0xc
+ lsr r3, r3, #0xc
+ add r3, r3, r1
+ ldr r1, _02026A4C ; =0x000FFFFF
+ and r1, r3
+ orr r1, r2
+ str r1, [r0, #0x10]
+ pop {r4-r5}
+ bx lr
+ .balign 4
+_02026A44: .word 0x000F423F
+_02026A48: .word 0xFFF00000
+_02026A4C: .word 0x000FFFFF
+
+ thumb_func_start FUN_02026A50
+FUN_02026A50: ; 0x02026A50
+ ldr r0, [r0, #0x14]
+ lsl r0, r0, #0xc
+ lsr r0, r0, #0xc
+ bx lr
+
+ thumb_func_start FUN_02026A58
+FUN_02026A58: ; 0x02026A58
+ push {r4-r5}
+ cmp r1, #0x0
+ ble _02026A78
+ ldr r4, [r0, #0x14]
+ lsl r2, r4, #0xc
+ lsr r5, r2, #0xc
+ ldr r2, _02026A90 ; =0x000F423F
+ sub r3, r2, r1
+ cmp r5, r3
+ bls _02026A78
+ ldr r1, _02026A94 ; =0xFFF00000
+ and r1, r4
+ orr r1, r2
+ str r1, [r0, #0x14]
+ pop {r4-r5}
+ bx lr
+_02026A78:
+ ldr r3, [r0, #0x14]
+ ldr r2, _02026A94 ; =0xFFF00000
+ and r2, r3
+ lsl r3, r3, #0xc
+ lsr r3, r3, #0xc
+ add r3, r3, r1
+ ldr r1, _02026A98 ; =0x000FFFFF
+ and r1, r3
+ orr r1, r2
+ str r1, [r0, #0x14]
+ pop {r4-r5}
+ bx lr
+ .balign 4
+_02026A90: .word 0x000F423F
+_02026A94: .word 0xFFF00000
+_02026A98: .word 0x000FFFFF
+
+ thumb_func_start FUN_02026A9C
+FUN_02026A9C: ; 0x02026A9C
+ push {r4-r5}
+ cmp r1, #0x0
+ ble _02026ABC
+ ldr r4, [r0, #0x18]
+ lsl r2, r4, #0xc
+ lsr r5, r2, #0xc
+ ldr r2, _02026AD4 ; =0x000F423F
+ sub r3, r2, r1
+ cmp r5, r3
+ bls _02026ABC
+ ldr r1, _02026AD8 ; =0xFFF00000
+ and r1, r4
+ orr r1, r2
+ str r1, [r0, #0x18]
+ pop {r4-r5}
+ bx lr
+_02026ABC:
+ ldr r3, [r0, #0x18]
+ ldr r2, _02026AD8 ; =0xFFF00000
+ and r2, r3
+ lsl r3, r3, #0xc
+ lsr r3, r3, #0xc
+ add r3, r3, r1
+ ldr r1, _02026ADC ; =0x000FFFFF
+ and r1, r3
+ orr r1, r2
+ str r1, [r0, #0x18]
+ pop {r4-r5}
+ bx lr
+ .balign 4
+_02026AD4: .word 0x000F423F
+_02026AD8: .word 0xFFF00000
+_02026ADC: .word 0x000FFFFF
+
+ thumb_func_start FUN_02026AE0
+FUN_02026AE0: ; 0x02026AE0
+ ldr r0, [r0, #0x1c]
+ lsl r0, r0, #0xc
+ lsr r0, r0, #0xc
+ bx lr
+
+ thumb_func_start FUN_02026AE8
+FUN_02026AE8: ; 0x02026AE8
+ push {r3-r4}
+ ldr r2, [r0, #0x1c]
+ lsl r1, r2, #0xc
+ lsr r4, r1, #0xc
+ ldr r1, _02026B0C ; =0x000F423F
+ cmp r4, r1
+ bhs _02026B06
+ ldr r1, _02026B10 ; =0xFFF00000
+ add r3, r2, #0x0
+ and r3, r1
+ ldr r1, _02026B14 ; =0x000FFFFF
+ add r2, r4, #0x1
+ and r1, r2
+ orr r1, r3
+ str r1, [r0, #0x1c]
+_02026B06:
+ pop {r3-r4}
+ bx lr
+ nop
+_02026B0C: .word 0x000F423F
+_02026B10: .word 0xFFF00000
+_02026B14: .word 0x000FFFFF
+
+ thumb_func_start FUN_02026B18
+FUN_02026B18: ; 0x02026B18
+ ldr r0, [r0, #0x20]
+ lsl r0, r0, #0xc
+ lsr r0, r0, #0xc
+ bx lr
+
+ thumb_func_start FUN_02026B20
+FUN_02026B20: ; 0x02026B20
+ push {r3-r4}
+ ldr r2, [r0, #0x20]
+ lsl r1, r2, #0xc
+ lsr r4, r1, #0xc
+ ldr r1, _02026B44 ; =0x000F423F
+ cmp r4, r1
+ bhs _02026B3E
+ ldr r1, _02026B48 ; =0xFFF00000
+ add r3, r2, #0x0
+ and r3, r1
+ ldr r1, _02026B4C ; =0x000FFFFF
+ add r2, r4, #0x1
+ and r1, r2
+ orr r1, r3
+ str r1, [r0, #0x20]
+_02026B3E:
+ pop {r3-r4}
+ bx lr
+ nop
+_02026B44: .word 0x000F423F
+_02026B48: .word 0xFFF00000
+_02026B4C: .word 0x000FFFFF
+
+ thumb_func_start FUN_02026B50
+FUN_02026B50: ; 0x02026B50
+ ldr r0, [r0, #0x24]
+ lsl r0, r0, #0xc
+ lsr r0, r0, #0xc
+ bx lr
+
+ thumb_func_start FUN_02026B58
+FUN_02026B58: ; 0x02026B58
+ push {r3-r4}
+ ldr r2, [r0, #0x24]
+ lsl r1, r2, #0xc
+ lsr r4, r1, #0xc
+ ldr r1, _02026B7C ; =0x000F423F
+ cmp r4, r1
+ bhs _02026B76
+ ldr r1, _02026B80 ; =0xFFF00000
+ add r3, r2, #0x0
+ and r3, r1
+ ldr r1, _02026B84 ; =0x000FFFFF
+ add r2, r4, #0x1
+ and r1, r2
+ orr r1, r3
+ str r1, [r0, #0x24]
+_02026B76:
+ pop {r3-r4}
+ bx lr
+ nop
+_02026B7C: .word 0x000F423F
+_02026B80: .word 0xFFF00000
+_02026B84: .word 0x000FFFFF
+
+ thumb_func_start FUN_02026B88
+FUN_02026B88: ; 0x02026B88
+ ldr r0, [r0, #0x28]
+ lsl r0, r0, #0xc
+ lsr r0, r0, #0xc
+ bx lr
+
+ thumb_func_start FUN_02026B90
+FUN_02026B90: ; 0x02026B90
+ push {r3-r4}
+ ldr r2, [r0, #0x28]
+ lsl r1, r2, #0xc
+ lsr r4, r1, #0xc
+ ldr r1, _02026BB4 ; =0x000F423F
+ cmp r4, r1
+ bhs _02026BAE
+ ldr r1, _02026BB8 ; =0xFFF00000
+ add r3, r2, #0x0
+ and r3, r1
+ ldr r1, _02026BBC ; =0x000FFFFF
+ add r2, r4, #0x1
+ and r1, r2
+ orr r1, r3
+ str r1, [r0, #0x28]
+_02026BAE:
+ pop {r3-r4}
+ bx lr
+ nop
+_02026BB4: .word 0x000F423F
+_02026BB8: .word 0xFFF00000
+_02026BBC: .word 0x000FFFFF
+
+ thumb_func_start FUN_02026BC0
+FUN_02026BC0: ; 0x02026BC0
+ ldr r0, [r0, #0x2c]
+ lsl r0, r0, #0xc
+ lsr r0, r0, #0xc
+ bx lr
+
+ thumb_func_start FUN_02026BC8
+FUN_02026BC8: ; 0x02026BC8
+ push {r3-r4}
+ ldr r2, [r0, #0x2c]
+ lsl r1, r2, #0xc
+ lsr r4, r1, #0xc
+ ldr r1, _02026BEC ; =0x000F423F
+ cmp r4, r1
+ bhs _02026BE6
+ ldr r1, _02026BF0 ; =0xFFF00000
+ add r3, r2, #0x0
+ and r3, r1
+ ldr r1, _02026BF4 ; =0x000FFFFF
+ add r2, r4, #0x1
+ and r1, r2
+ orr r1, r3
+ str r1, [r0, #0x2c]
+_02026BE6:
+ pop {r3-r4}
+ bx lr
+ nop
+_02026BEC: .word 0x000F423F
+_02026BF0: .word 0xFFF00000
+_02026BF4: .word 0x000FFFFF
+
+ thumb_func_start FUN_02026BF8
+FUN_02026BF8: ; 0x02026BF8
+ ldr r0, [r0, #0x30]
+ lsl r0, r0, #0xc
+ lsr r0, r0, #0xc
+ bx lr
+
+ thumb_func_start FUN_02026C00
+FUN_02026C00: ; 0x02026C00
+ push {r3-r4}
+ ldr r2, [r0, #0x30]
+ lsl r1, r2, #0xc
+ lsr r4, r1, #0xc
+ ldr r1, _02026C24 ; =0x000F423F
+ cmp r4, r1
+ bhs _02026C1E
+ ldr r1, _02026C28 ; =0xFFF00000
+ add r3, r2, #0x0
+ and r3, r1
+ ldr r1, _02026C2C ; =0x000FFFFF
+ add r2, r4, #0x1
+ and r1, r2
+ orr r1, r3
+ str r1, [r0, #0x30]
+_02026C1E:
+ pop {r3-r4}
+ bx lr
+ nop
+_02026C24: .word 0x000F423F
+_02026C28: .word 0xFFF00000
+_02026C2C: .word 0x000FFFFF
+
+ thumb_func_start FUN_02026C30
+FUN_02026C30: ; 0x02026C30
+ ldr r0, [r0, #0x34]
+ lsl r0, r0, #0xc
+ lsr r0, r0, #0xc
+ bx lr
+
+ thumb_func_start FUN_02026C38
+FUN_02026C38: ; 0x02026C38
+ push {r3-r4}
+ ldr r2, [r0, #0x34]
+ lsl r1, r2, #0xc
+ lsr r4, r1, #0xc
+ ldr r1, _02026C5C ; =0x000F423F
+ cmp r4, r1
+ bhs _02026C56
+ ldr r1, _02026C60 ; =0xFFF00000
+ add r3, r2, #0x0
+ and r3, r1
+ ldr r1, _02026C64 ; =0x000FFFFF
+ add r2, r4, #0x1
+ and r1, r2
+ orr r1, r3
+ str r1, [r0, #0x34]
+_02026C56:
+ pop {r3-r4}
+ bx lr
+ nop
+_02026C5C: .word 0x000F423F
+_02026C60: .word 0xFFF00000
+_02026C64: .word 0x000FFFFF
+
+ thumb_func_start FUN_02026C68
+FUN_02026C68: ; 0x02026C68
+ push {r3-r4}
+ add r4, r0, #0x0
+ add r4, #0x8c
+ strh r1, [r4, #0x0]
+ add r1, r0, #0x0
+ add r1, #0x8e
+ strh r2, [r1, #0x0]
+ add r1, r0, #0x0
+ add r1, #0x90
+ strb r3, [r1, #0x0]
+ mov r1, #0x1
+ add r0, #0x91
+ strb r1, [r0, #0x0]
+ pop {r3-r4}
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02026C88
+FUN_02026C88: ; 0x02026C88
+ add r0, #0x8c
+ ldrh r0, [r0, #0x0]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02026C90
+FUN_02026C90: ; 0x02026C90
+ add r0, #0x8e
+ ldrh r0, [r0, #0x0]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02026C98
+FUN_02026C98: ; 0x02026C98
+ add r0, #0x90
+ ldrb r0, [r0, #0x0]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02026CA0
+FUN_02026CA0: ; 0x02026CA0
+ add r0, #0x91
+ ldrb r0, [r0, #0x0]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02026CA8
+FUN_02026CA8: ; 0x02026CA8
+ ldr r3, _02026CB0 ; =FUN_02022610
+ mov r1, #0xc
+ bx r3
+ nop
+_02026CB0: .word FUN_02022610
+
+ thumb_func_start FUN_02026CB4
+FUN_02026CB4: ; 0x02026CB4
+ push {r3, lr}
+ mov r1, #0xc
+ bl FUN_02022610
+ add r0, #0x50
+ pop {r3, pc}
+
+ thumb_func_start FUN_02026CC0
+FUN_02026CC0: ; 0x02026CC0
+ add r0, #0x50
+ bx lr
+
+ thumb_func_start FUN_02026CC4
+FUN_02026CC4: ; 0x02026CC4
+ ldr r3, _02026CCC ; =FUN_02022610
+ mov r1, #0xc
+ bx r3
+ nop
+_02026CCC: .word FUN_02022610
+
+ thumb_func_start FUN_02026CD0
+FUN_02026CD0: ; 0x02026CD0
+ push {r3-r7, lr}
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ add r6, r2, #0x0
+ add r0, r4, #0x0
+ mov r1, #0x5
+ mov r2, #0x0
+ add r7, r3, #0x0
+ bl FUN_020671BC
+ add r2, r5, #0x0
+ strh r0, [r5, #0x8]
+ add r0, r4, #0x0
+ mov r1, #0x74
+ add r2, #0xa
+ bl FUN_020671BC
+ mov r1, #0x0
+ add r0, r4, #0x0
+ add r2, r1, #0x0
+ bl FUN_020671BC
+ str r0, [r5, #0x0]
+ add r0, r4, #0x0
+ mov r1, #0x7
+ mov r2, #0x0
+ bl FUN_020671BC
+ str r0, [r5, #0x4]
+ add r0, r4, #0x0
+ mov r1, #0x70
+ mov r2, #0x0
+ bl FUN_020671BC
+ add r1, r5, #0x0
+ add r1, #0x33
+ strb r0, [r1, #0x0]
+ add r0, r5, #0x0
+ add r0, #0x31
+ strb r6, [r0, #0x0]
+ add r0, r5, #0x0
+ add r0, #0x32
+ strb r7, [r0, #0x0]
+ add r1, sp, #0x8
+ mov r0, #0x10
+ ldrsb r0, [r1, r0]
+ add r5, #0x30
+ strb r0, [r5, #0x0]
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_02026D34
+FUN_02026D34: ; 0x02026D34
+ push {r3-r6, lr}
+ sub sp, #0xc
+ add r4, r2, #0x0
+ add r5, r0, #0x0
+ add r6, r1, #0x0
+ add r0, r4, #0x0
+ add r1, sp, #0x4
+ add r2, sp, #0x8
+ bl FUN_021DB858
+ add r0, r4, #0x0
+ bl FUN_021DB7E8
+ add r4, r0, #0x0
+ mov r0, #0x1
+ ldr r1, [sp, #0x4]
+ lsl r0, r0, #0x8
+ cmp r1, r0
+ blt _02026D5E
+ bl ErrorHandling
+_02026D5E:
+ mov r0, #0x1
+ ldr r1, [sp, #0x8]
+ lsl r0, r0, #0x8
+ cmp r1, r0
+ blt _02026D6C
+ bl ErrorHandling
+_02026D6C:
+ mov r0, #0x7f
+ mvn r0, r0
+ cmp r4, r0
+ bgt _02026D78
+ bl ErrorHandling
+_02026D78:
+ lsl r0, r4, #0x18
+ asr r0, r0, #0x18
+ str r0, [sp, #0x0]
+ ldr r2, [sp, #0x4]
+ ldr r3, [sp, #0x8]
+ lsl r2, r2, #0x18
+ lsl r3, r3, #0x18
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ lsr r2, r2, #0x18
+ lsr r3, r3, #0x18
+ bl FUN_02026CD0
+ add sp, #0xc
+ pop {r3-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_02026D98
+FUN_02026D98: ; 0x02026D98
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r0, r1, #0x0
+ add r1, r5, #0x0
+ add r4, r2, #0x0
+ add r1, #0x20
+ mov r2, #0x8
+ bl FUN_02021EF0
+ add r5, #0x34
+ strb r4, [r5, #0x0]
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_02026DB0
+FUN_02026DB0: ; 0x02026DB0
+ strb r1, [r0, #0x0]
+ ldr r1, _02026DC0 ; =0xFFFFFFF0
+ strb r2, [r0, #0x1]
+ strb r3, [r0, #0x2]
+ add r1, sp
+ ldrb r1, [r1, #0x10]
+ strb r1, [r0, #0x3]
+ bx lr
+ .balign 4
+_02026DC0: .word 0xFFFFFFF0
+
+ thumb_func_start FUN_02026DC4
+FUN_02026DC4: ; 0x02026DC4
+ push {r4-r6, lr}
+ add r4, r2, #0x0
+ add r5, r0, #0x0
+ add r6, r1, #0x0
+ cmp r4, #0x3d
+ blo _02026DD4
+ bl ErrorHandling
+_02026DD4:
+ lsr r2, r4, #0x1f
+ lsl r1, r4, #0x1d
+ sub r1, r1, r2
+ mov r0, #0x1d
+ ror r1, r0
+ add r0, r2, r1
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ lsl r0, r0, #0x1a
+ lsr r1, r0, #0x18
+ lsr r0, r4, #0x3
+ lsl r0, r0, #0x18
+ mov r2, #0xf
+ lsr r0, r0, #0x16
+ lsl r2, r1
+ ldr r3, [r5, r0]
+ mvn r2, r2
+ and r2, r3
+ str r2, [r5, r0]
+ add r2, r6, #0x0
+ ldr r3, [r5, r0]
+ lsl r2, r1
+ add r1, r3, #0x0
+ orr r1, r2
+ str r1, [r5, r0]
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_02026E08
+FUN_02026E08: ; 0x02026E08
+ push {r3-r5, lr}
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ cmp r4, #0x3d
+ blo _02026E16
+ bl ErrorHandling
+_02026E16:
+ lsr r3, r4, #0x1f
+ lsl r2, r4, #0x1d
+ lsr r0, r4, #0x3
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x16
+ sub r2, r2, r3
+ mov r1, #0x1d
+ ror r2, r1
+ add r1, r3, r2
+ lsl r1, r1, #0x18
+ ldr r0, [r5, r0]
+ lsr r1, r1, #0x18
+ lsl r1, r1, #0x1a
+ add r2, r0, #0x0
+ lsr r1, r1, #0x18
+ lsr r2, r1
+ mov r0, #0xf
+ and r0, r2
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ cmp r0, #0x9
+ bls _02026E44
+ mov r0, #0x9
+_02026E44:
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_02026E48
+FUN_02026E48: ; 0x02026E48
+ push {r4-r6, lr}
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ add r6, r2, #0x0
+ cmp r4, #0x2
+ blo _02026E58
+ bl ErrorHandling
+_02026E58:
+ lsr r2, r6, #0x1f
+ lsl r1, r6, #0x1b
+ sub r1, r1, r2
+ mov r0, #0x1b
+ ror r1, r0
+ add r0, r2, r1
+ lsl r0, r0, #0x18
+ lsr r1, r0, #0x18
+ lsr r0, r6, #0x5
+ lsl r0, r0, #0x18
+ mov r2, #0x1
+ lsr r0, r0, #0x16
+ lsl r2, r1
+ ldr r3, [r5, r0]
+ mvn r2, r2
+ and r2, r3
+ str r2, [r5, r0]
+ add r2, r4, #0x0
+ ldr r3, [r5, r0]
+ lsl r2, r1
+ add r1, r3, #0x0
+ orr r1, r2
+ str r1, [r5, r0]
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_02026E88
+FUN_02026E88: ; 0x02026E88
+ lsr r2, r1, #0x5
+ lsl r2, r2, #0x18
+ lsr r2, r2, #0x16
+ ldr r3, [r0, r2]
+ lsr r2, r1, #0x1f
+ lsl r1, r1, #0x1b
+ sub r1, r1, r2
+ mov r0, #0x1b
+ ror r1, r0
+ add r0, r2, r1
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ add r1, r3, #0x0
+ lsr r1, r0
+ mov r0, #0x1
+ and r0, r1
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02026EB0
+FUN_02026EB0: ; 0x02026EB0
+ push {r4-r6, lr}
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ add r6, r2, #0x0
+ cmp r4, #0x12
+ bls _02026EC0
+ bl ErrorHandling
+_02026EC0:
+ 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, #0x18
+ lsr r0, r0, #0x18
+ lsl r0, r0, #0x1b
+ lsr r1, r0, #0x18
+ lsr r0, r6, #0x2
+ lsl r0, r0, #0x18
+ mov r2, #0xff
+ lsr r0, r0, #0x16
+ lsl r2, r1
+ ldr r3, [r5, r0]
+ mvn r2, r2
+ and r2, r3
+ str r2, [r5, r0]
+ add r2, r4, #0x0
+ ldr r3, [r5, r0]
+ lsl r2, r1
+ add r1, r3, #0x0
+ orr r1, r2
+ str r1, [r5, r0]
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_02026EF4
+FUN_02026EF4: ; 0x02026EF4
+ lsr r2, r1, #0x2
+ lsl r2, r2, #0x18
+ lsr r2, r2, #0x16
+ ldr r0, [r0, r2]
+ lsr r3, r1, #0x1f
+ lsl r2, r1, #0x1e
+ sub r2, r2, r3
+ mov r1, #0x1e
+ ror r2, r1
+ add r1, r3, r2
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ lsl r1, r1, #0x1b
+ lsr r1, r1, #0x18
+ lsr r0, r1
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bx lr
+
+ thumb_func_start FUN_02026F18
+FUN_02026F18: ; 0x02026F18
+ push {r4-r6, lr}
+ mov r5, #0x0
+ add r6, r0, #0x0
+ add r4, r5, #0x0
+_02026F20:
+ lsl r1, r4, #0x18
+ add r0, r6, #0x0
+ lsr r1, r1, #0x18
+ bl FUN_02026EF4
+ cmp r0, #0x12
+ beq _02026F30
+ add r5, r5, #0x1
+_02026F30:
+ add r4, r4, #0x1
+ cmp r4, #0x12
+ blt _02026F20
+ lsl r0, r5, #0x18
+ lsr r0, r0, #0x18
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_02026F3C
+FUN_02026F3C: ; 0x02026F3C
+ push {r3-r5, lr}
+ add r5, r1, #0x0
+ mov r1, #0x2
+ add r4, r2, #0x0
+ bl FUN_02068E14
+ mov r1, #0x80
+ strb r1, [r5, #0x0]
+ mov r1, #0x28
+ sub r1, r1, r0
+ mov r0, #0x8d
+ sub r0, r0, r1
+ strb r0, [r4, #0x0]
+ ldrb r0, [r4, #0x0]
+ add r0, #0x28
+ strb r0, [r4, #0x0]
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_02026F60
+FUN_02026F60: ; 0x02026F60
+ push {r3-r7, lr}
+ add r7, r0, #0x0
+ ldr r6, _02026FC8 ; =0x00001234
+ mov r4, #0x0
+ add r5, r7, #0x0
+_02026F6A:
+ add r0, r5, #0x0
+ mov r1, #0x0
+ mov r2, #0x74
+ blx Call_FillMemWithValue
+ str r6, [r5, #0x0]
+ add r4, r4, #0x1
+ add r5, #0x74
+ cmp r4, #0xb
+ blt _02026F6A
+ ldr r0, _02026FCC ; =0x000004FC
+ mov r6, #0x0
+ add r4, r7, r0
+ add r5, r7, #0x0
+_02026F86:
+ add r0, r4, #0x0
+ mov r1, #0x0
+ mov r2, #0x98
+ blx Call_FillMemWithValue
+ ldr r1, _02026FC8 ; =0x00001234
+ ldr r0, _02026FCC ; =0x000004FC
+ add r6, r6, #0x1
+ str r1, [r5, r0]
+ add r4, #0x98
+ add r5, #0x98
+ cmp r6, #0x5
+ blt _02026F86
+ ldr r0, _02026FD0 ; =0x000007F4
+ mov r1, #0x0
+ add r0, r7, r0
+ mov r2, #0x40
+ blx Call_FillMemWithValue
+ ldr r5, _02026FD4 ; =0x0000081C
+ mov r4, #0x0
+ mov r6, #0x12
+_02026FB2:
+ lsl r2, r4, #0x18
+ add r0, r7, r5
+ add r1, r6, #0x0
+ lsr r2, r2, #0x18
+ bl FUN_02026EB0
+ add r4, r4, #0x1
+ cmp r4, #0x12
+ blt _02026FB2
+ pop {r3-r7, pc}
+ nop
+_02026FC8: .word 0x00001234
+_02026FCC: .word 0x000004FC
+_02026FD0: .word 0x000007F4
+_02026FD4: .word 0x0000081C
+
+ thumb_func_start FUN_02026FD8
+FUN_02026FD8: ; 0x02026FD8
+ ldr r0, _02026FDC ; =0x00000834
+ bx lr
+ .balign 4
+_02026FDC: .word 0x00000834
+
+ thumb_func_start FUN_02026FE0
+FUN_02026FE0: ; 0x02026FE0
+ mov r0, #0x74
+ bx lr
+
+ thumb_func_start FUN_02026FE4
+FUN_02026FE4: ; 0x02026FE4
+ mov r0, #0x98
+ bx lr
+
+ thumb_func_start FUN_02026FE8
+FUN_02026FE8: ; 0x02026FE8
+ push {r4, lr}
+ mov r1, #0x98
+ bl FUN_02016998
+ mov r1, #0x0
+ mov r2, #0x98
+ add r4, r0, #0x0
+ blx Call_FillMemWithValue
+ ldr r0, _02027004 ; =0x00001234
+ str r0, [r4, #0x0]
+ add r0, r4, #0x0
+ pop {r4, pc}
+ nop
+_02027004: .word 0x00001234
+
+ thumb_func_start FUN_02027008
+FUN_02027008: ; 0x02027008
+ push {r4-r6, lr}
+ add r6, r1, #0x0
+ add r5, r0, #0x0
+ cmp r6, #0xb
+ blt _02027016
+ bl ErrorHandling
+_02027016:
+ mov r0, #0x74
+ add r4, r6, #0x0
+ mul r4, r0
+ ldr r1, [r5, r4]
+ ldr r0, _0202703C ; =0x00001234
+ cmp r1, r0
+ beq _0202702A
+ ldr r0, _02027040 ; =0x00002345
+ cmp r1, r0
+ bne _0202702E
+_0202702A:
+ mov r0, #0x1
+ b _02027030
+_0202702E:
+ mov r0, #0x0
+_02027030:
+ cmp r0, #0x0
+ bne _02027038
+ bl ErrorHandling
+_02027038:
+ add r0, r5, r4
+ pop {r4-r6, pc}
+ .balign 4
+_0202703C: .word 0x00001234
+_02027040: .word 0x00002345
+
+ thumb_func_start FUN_02027044
+FUN_02027044: ; 0x02027044
+ push {r4-r6, lr}
+ add r6, r1, #0x0
+ add r5, r0, #0x0
+ cmp r6, #0x5
+ blt _02027052
+ bl ErrorHandling
+_02027052:
+ mov r0, #0x98
+ add r4, r6, #0x0
+ mul r4, r0
+ ldr r0, _02027080 ; =0x000004FC
+ add r1, r5, r4
+ ldr r1, [r1, r0]
+ ldr r0, _02027084 ; =0x00001234
+ cmp r1, r0
+ beq _0202706A
+ ldr r0, _02027088 ; =0x00002345
+ cmp r1, r0
+ bne _0202706E
+_0202706A:
+ mov r0, #0x1
+ b _02027070
+_0202706E:
+ mov r0, #0x0
+_02027070:
+ cmp r0, #0x0
+ bne _02027078
+ bl ErrorHandling
+_02027078:
+ ldr r0, _02027080 ; =0x000004FC
+ add r0, r5, r0
+ add r0, r0, r4
+ pop {r4-r6, pc}
+ .balign 4
+_02027080: .word 0x000004FC
+_02027084: .word 0x00001234
+_02027088: .word 0x00002345
+
+ thumb_func_start FUN_0202708C
+FUN_0202708C: ; 0x0202708C
+ ldr r1, _02027094 ; =0x000007F4
+ add r0, r0, r1
+ bx lr
+ nop
+_02027094: .word 0x000007F4
+
+ thumb_func_start FUN_02027098
+FUN_02027098: ; 0x02027098
+ push {r3-r5, lr}
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ cmp r4, #0xb
+ blt _020270A6
+ bl ErrorHandling
+_020270A6:
+ mov r0, #0x74
+ mul r0, r4
+ add r0, r5, r0
+ bl FUN_0202729C
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_020270B4
+FUN_020270B4: ; 0x020270B4
+ push {r3-r5, lr}
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ cmp r4, #0x5
+ blt _020270C2
+ bl ErrorHandling
+_020270C2:
+ ldr r0, _020270D4 ; =0x000004FC
+ add r1, r5, r0
+ mov r0, #0x98
+ mul r0, r4
+ add r0, r1, r0
+ bl FUN_020276D8
+ pop {r3-r5, pc}
+ nop
+_020270D4: .word 0x000004FC
+
+ thumb_func_start FUN_020270D8
+FUN_020270D8: ; 0x020270D8
+ push {r4-r6, lr}
+ add r6, r1, #0x0
+ add r5, r2, #0x0
+ mov r4, #0x1
+ bl FUN_02027114
+ cmp r6, #0x3d
+ bhs _020270F2
+ add r0, r0, r5
+ cmp r0, #0x9
+ bls _020270FA
+ mov r4, #0x0
+ b _020270FA
+_020270F2:
+ add r0, r0, r5
+ cmp r0, #0x1
+ bls _020270FA
+ mov r4, #0x0
+_020270FA:
+ add r0, r4, #0x0
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_02027100
+FUN_02027100: ; 0x02027100
+ push {r3, lr}
+ bl FUN_0202714C
+ cmp r0, #0x12
+ beq _0202710E
+ mov r0, #0x1
+ pop {r3, pc}
+_0202710E:
+ mov r0, #0x0
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_02027114
+FUN_02027114: ; 0x02027114
+ push {r3-r5, lr}
+ add r5, r1, #0x0
+ add r4, r0, #0x0
+ cmp r5, #0x64
+ blo _02027122
+ bl ErrorHandling
+_02027122:
+ cmp r5, #0x3d
+ bhs _02027132
+ lsl r1, r5, #0x18
+ add r0, r4, #0x0
+ lsr r1, r1, #0x18
+ bl FUN_02026E08
+ pop {r3-r5, pc}
+_02027132:
+ bhs _02027138
+ bl ErrorHandling
+_02027138:
+ sub r5, #0x3d
+ lsl r0, r5, #0x18
+ lsr r1, r0, #0x18
+ add r4, #0x20
+ lsl r1, r1, #0x18
+ add r0, r4, #0x0
+ lsr r1, r1, #0x18
+ bl FUN_02026E88
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_0202714C
+FUN_0202714C: ; 0x0202714C
+ push {r3-r5, lr}
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ cmp r4, #0x12
+ blo _0202715A
+ bl ErrorHandling
+_0202715A:
+ add r5, #0x28
+ lsl r1, r4, #0x18
+ add r0, r5, #0x0
+ lsr r1, r1, #0x18
+ bl FUN_02026EF4
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_02027168
+FUN_02027168: ; 0x02027168
+ push {r4-r6, lr}
+ mov r5, #0x0
+ add r6, r0, #0x0
+ add r4, r5, #0x0
+_02027170:
+ add r0, r6, #0x0
+ add r1, r4, #0x0
+ bl FUN_02027114
+ add r4, r4, #0x1
+ add r5, r5, r0
+ cmp r4, #0x64
+ blt _02027170
+ add r0, r5, #0x0
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_02027184
+FUN_02027184: ; 0x02027184
+ push {r4-r6, lr}
+ mov r5, #0x0
+ add r6, r0, #0x0
+ add r4, r5, #0x0
+_0202718C:
+ add r0, r6, #0x0
+ add r1, r4, #0x0
+ bl FUN_0202714C
+ cmp r0, #0x12
+ beq _0202719A
+ add r5, r5, #0x1
+_0202719A:
+ add r4, r4, #0x1
+ cmp r4, #0x12
+ blt _0202718C
+ add r0, r5, #0x0
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_020271A4
+FUN_020271A4: ; 0x020271A4
+ push {r4-r6, lr}
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ add r6, r2, #0x0
+ cmp r4, #0x64
+ blo _020271B4
+ bl ErrorHandling
+_020271B4:
+ cmp r4, #0x3d
+ bhs _020271DA
+ lsl r1, r4, #0x18
+ add r0, r5, #0x0
+ lsr r1, r1, #0x18
+ bl FUN_02026E08
+ add r0, r0, r6
+ lsl r0, r0, #0x18
+ lsr r1, r0, #0x18
+ cmp r1, #0x9
+ bls _020271CE
+ mov r1, #0x9
+_020271CE:
+ lsl r2, r4, #0x18
+ add r0, r5, #0x0
+ lsr r2, r2, #0x18
+ bl FUN_02026DC4
+ pop {r4-r6, pc}
+_020271DA:
+ add r0, r5, #0x0
+ lsl r1, r4, #0x18
+ add r0, #0x20
+ lsr r1, r1, #0x18
+ bl FUN_02026E88
+ add r0, r0, r6
+ lsl r0, r0, #0x18
+ lsr r6, r0, #0x18
+ cmp r6, #0x1
+ bls _020271F2
+ mov r6, #0x1
+_020271F2:
+ cmp r4, #0x3d
+ bhs _020271FA
+ bl ErrorHandling
+_020271FA:
+ sub r4, #0x3d
+ lsl r0, r4, #0x18
+ lsr r2, r0, #0x18
+ add r5, #0x20
+ lsl r2, r2, #0x18
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ lsr r2, r2, #0x18
+ bl FUN_02026E48
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_02027210
+FUN_02027210: ; 0x02027210
+ push {r4-r6, lr}
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ add r6, r2, #0x0
+ cmp r4, #0x64
+ blo _02027220
+ bl ErrorHandling
+_02027220:
+ cmp r4, #0x3d
+ bhs _02027248
+ lsl r1, r4, #0x18
+ add r0, r5, #0x0
+ lsr r1, r1, #0x18
+ bl FUN_02026E08
+ cmp r0, r6
+ bls _0202723A
+ sub r0, r0, r6
+ lsl r0, r0, #0x18
+ lsr r1, r0, #0x18
+ b _0202723C
+_0202723A:
+ mov r1, #0x0
+_0202723C:
+ lsl r2, r4, #0x18
+ add r0, r5, #0x0
+ lsr r2, r2, #0x18
+ bl FUN_02026DC4
+ pop {r4-r6, pc}
+_02027248:
+ bhs _0202724E
+ bl ErrorHandling
+_0202724E:
+ sub r4, #0x3d
+ lsl r0, r4, #0x18
+ lsr r2, r0, #0x18
+ add r5, #0x20
+ lsl r2, r2, #0x18
+ add r0, r5, #0x0
+ mov r1, #0x0
+ lsr r2, r2, #0x18
+ bl FUN_02026E48
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_02027264
+FUN_02027264: ; 0x02027264
+ push {r3-r5, lr}
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ cmp r4, #0x12
+ blo _02027272
+ bl ErrorHandling
+_02027272:
+ add r0, r5, #0x0
+ lsl r1, r4, #0x18
+ add r0, #0x28
+ lsr r1, r1, #0x18
+ bl FUN_02026EF4
+ cmp r0, #0x12
+ bne _02027298
+ add r0, r5, #0x0
+ add r0, #0x28
+ bl FUN_02026F18
+ lsl r2, r4, #0x18
+ add r5, #0x28
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ lsr r2, r2, #0x18
+ bl FUN_02026EB0
+_02027298:
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_0202729C
+FUN_0202729C: ; 0x0202729C
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r1, [r4, #0x0]
+ ldr r0, _020272CC ; =0x00001234
+ cmp r1, r0
+ beq _020272AE
+ ldr r0, _020272D0 ; =0x00002345
+ cmp r1, r0
+ bne _020272B2
+_020272AE:
+ mov r0, #0x1
+ b _020272B4
+_020272B2:
+ mov r0, #0x0
+_020272B4:
+ cmp r0, #0x0
+ bne _020272BC
+ bl ErrorHandling
+_020272BC:
+ ldr r1, [r4, #0x0]
+ ldr r0, _020272D0 ; =0x00002345
+ cmp r1, r0
+ bne _020272C8
+ mov r0, #0x1
+ pop {r4, pc}
+_020272C8:
+ mov r0, #0x0
+ pop {r4, pc}
+ .balign 4
+_020272CC: .word 0x00001234
+_020272D0: .word 0x00002345
+
+ thumb_func_start FUN_020272D4
+FUN_020272D4: ; 0x020272D4
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r1, [r4, #0x0]
+ ldr r0, _02027304 ; =0x00001234
+ cmp r1, r0
+ beq _020272E6
+ ldr r0, _02027308 ; =0x00002345
+ cmp r1, r0
+ bne _020272EA
+_020272E6:
+ mov r0, #0x1
+ b _020272EC
+_020272EA:
+ mov r0, #0x0
+_020272EC:
+ cmp r0, #0x0
+ bne _020272F4
+ bl ErrorHandling
+_020272F4:
+ ldr r0, _02027308 ; =0x00002345
+ str r0, [r4, #0x0]
+ ldr r0, _0202730C ; =0x020ECAC4
+ add r4, #0x71
+ ldrb r0, [r0, #0x0]
+ strb r0, [r4, #0x0]
+ pop {r4, pc}
+ nop
+_02027304: .word 0x00001234
+_02027308: .word 0x00002345
+_0202730C: .word 0x020ECAC4
+
+ thumb_func_start FUN_02027310
+FUN_02027310: ; 0x02027310
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r1, [r4, #0x0]
+ ldr r0, _02027340 ; =0x00001234
+ cmp r1, r0
+ beq _02027322
+ ldr r0, _02027344 ; =0x00002345
+ cmp r1, r0
+ bne _02027326
+_02027322:
+ mov r0, #0x1
+ b _02027328
+_02027326:
+ mov r0, #0x0
+_02027328:
+ cmp r0, #0x0
+ bne _02027330
+ bl ErrorHandling
+_02027330:
+ add r0, r4, #0x0
+ mov r1, #0x0
+ mov r2, #0x74
+ blx Call_FillMemWithValue
+ ldr r0, _02027340 ; =0x00001234
+ str r0, [r4, #0x0]
+ pop {r4, pc}
+ .balign 4
+_02027340: .word 0x00001234
+_02027344: .word 0x00002345
+
+ thumb_func_start FUN_02027348
+FUN_02027348: ; 0x02027348
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ ldr r1, [r5, #0x0]
+ ldr r0, _02027378 ; =0x00001234
+ add r6, r2, #0x0
+ cmp r1, r0
+ beq _0202735E
+ ldr r0, _0202737C ; =0x00002345
+ cmp r1, r0
+ bne _02027362
+_0202735E:
+ mov r0, #0x1
+ b _02027364
+_02027362:
+ mov r0, #0x0
+_02027364:
+ cmp r0, #0x0
+ bne _0202736C
+ bl ErrorHandling
+_0202736C:
+ add r0, r5, #0x4
+ add r1, r4, #0x0
+ add r2, r6, #0x0
+ bl FUN_02026D34
+ pop {r4-r6, pc}
+ .balign 4
+_02027378: .word 0x00001234
+_0202737C: .word 0x00002345
+
+ thumb_func_start FUN_02027380
+FUN_02027380: ; 0x02027380
+ push {r4-r7, lr}
+ sub sp, #0x14
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ ldr r0, [r4, #0x4]
+ add r6, r2, #0x0
+ bl FUN_02013ECC
+ add r1, sp, #0xc
+ strh r0, [r1, #0x0]
+ lsr r0, r0, #0x10
+ strh r0, [r1, #0x2]
+ ldrh r0, [r1, #0x0]
+ strh r0, [r1, #0x4]
+ ldrh r0, [r1, #0x2]
+ strh r0, [r1, #0x6]
+ ldr r0, [r4, #0x4]
+ bl FUN_02013F00
+ str r0, [sp, #0x8]
+ cmp r6, #0xa
+ blt _020273B0
+ bl ErrorHandling
+_020273B0:
+ add r1, sp, #0xc
+ mov r0, #0x4
+ ldrsh r1, [r1, r0]
+ add r0, #0xfc
+ cmp r1, r0
+ blt _020273C0
+ bl ErrorHandling
+_020273C0:
+ add r1, sp, #0xc
+ mov r0, #0x6
+ ldrsh r7, [r1, r0]
+ add r0, #0xfa
+ cmp r7, r0
+ blt _020273D0
+ bl ErrorHandling
+_020273D0:
+ mov r1, #0x7f
+ ldr r0, [sp, #0x8]
+ mvn r1, r1
+ cmp r0, r1
+ bgt _020273DE
+ bl ErrorHandling
+_020273DE:
+ mov r0, #0x1
+ lsl r0, r6
+ ldr r1, [r5, #0x3c]
+ str r0, [sp, #0x4]
+ tst r0, r1
+ beq _020273EE
+ bl ErrorHandling
+_020273EE:
+ ldr r1, [r5, #0x0]
+ ldr r0, _02027440 ; =0x00001234
+ cmp r1, r0
+ beq _020273FC
+ ldr r0, _02027444 ; =0x00002345
+ cmp r1, r0
+ bne _02027400
+_020273FC:
+ mov r0, #0x1
+ b _02027402
+_02027400:
+ mov r0, #0x0
+_02027402:
+ cmp r0, #0x0
+ bne _0202740A
+ bl ErrorHandling
+_0202740A:
+ ldr r0, [sp, #0x8]
+ add r1, r5, #0x0
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x0]
+ add r3, sp, #0xc
+ mov r2, #0x4
+ ldrsh r2, [r3, r2]
+ lsl r3, r7, #0x18
+ add r1, #0x48
+ lsl r0, r6, #0x2
+ add r0, r1, r0
+ ldr r1, [r4, #0x0]
+ lsl r2, r2, #0x18
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ lsr r2, r2, #0x18
+ lsr r3, r3, #0x18
+ bl FUN_02026DB0
+ ldr r1, [r5, #0x3c]
+ ldr r0, [sp, #0x4]
+ orr r0, r1
+ str r0, [r5, #0x3c]
+ add sp, #0x14
+ pop {r4-r7, pc}
+ nop
+_02027440: .word 0x00001234
+_02027444: .word 0x00002345
+
+ thumb_func_start FUN_02027448
+FUN_02027448: ; 0x02027448
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ ldr r1, [r5, #0x0]
+ ldr r0, _02027470 ; =0x00001234
+ cmp r1, r0
+ beq _0202745C
+ ldr r0, _02027474 ; =0x00002345
+ cmp r1, r0
+ bne _02027460
+_0202745C:
+ mov r0, #0x1
+ b _02027462
+_02027460:
+ mov r0, #0x0
+_02027462:
+ cmp r0, #0x0
+ bne _0202746A
+ bl ErrorHandling
+_0202746A:
+ add r5, #0x70
+ strb r4, [r5, #0x0]
+ pop {r3-r5, pc}
+ .balign 4
+_02027470: .word 0x00001234
+_02027474: .word 0x00002345
+
+ thumb_func_start FUN_02027478
+FUN_02027478: ; 0x02027478
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ ldr r1, [r5, #0x0]
+ ldr r0, _020274B0 ; =0x00001234
+ cmp r1, r0
+ beq _0202748C
+ ldr r0, _020274B4 ; =0x00002345
+ cmp r1, r0
+ bne _02027490
+_0202748C:
+ mov r0, #0x1
+ b _02027492
+_02027490:
+ mov r0, #0x0
+_02027492:
+ cmp r0, #0x0
+ bne _0202749A
+ bl ErrorHandling
+_0202749A:
+ add r0, r5, #0x0
+ add r0, #0x40
+ bl FUN_02013724
+ add r5, #0x40
+ add r0, r5, #0x0
+ mov r1, #0x0
+ add r2, r4, #0x0
+ bl FUN_02013998
+ pop {r3-r5, pc}
+ .balign 4
+_020274B0: .word 0x00001234
+_020274B4: .word 0x00002345
+
+ thumb_func_start FUN_020274B8
+FUN_020274B8: ; 0x020274B8
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ ldr r1, [r5, #0x0]
+ ldr r0, _020274E8 ; =0x00001234
+ cmp r1, r0
+ beq _020274CC
+ ldr r0, _020274EC ; =0x00002345
+ cmp r1, r0
+ bne _020274D0
+_020274CC:
+ mov r0, #0x1
+ b _020274D2
+_020274D0:
+ mov r0, #0x0
+_020274D2:
+ cmp r0, #0x0
+ bne _020274DA
+ bl ErrorHandling
+_020274DA:
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ mov r2, #0x74
+ blx memcpy
+ pop {r3-r5, pc}
+ nop
+_020274E8: .word 0x00001234
+_020274EC: .word 0x00002345
+
+ thumb_func_start FUN_020274F0
+FUN_020274F0: ; 0x020274F0
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ ldr r1, [r5, #0x0]
+ ldr r0, _02027520 ; =0x00001234
+ add r6, r2, #0x0
+ cmp r1, r0
+ beq _02027506
+ ldr r0, _02027524 ; =0x00002345
+ cmp r1, r0
+ bne _0202750A
+_02027506:
+ mov r0, #0x1
+ b _0202750C
+_0202750A:
+ mov r0, #0x0
+_0202750C:
+ cmp r0, #0x0
+ bne _02027514
+ bl ErrorHandling
+_02027514:
+ add r0, r5, #0x4
+ add r1, r4, #0x0
+ add r2, r6, #0x0
+ bl FUN_02026D98
+ pop {r4-r6, pc}
+ .balign 4
+_02027520: .word 0x00001234
+_02027524: .word 0x00002345
+
+ thumb_func_start FUN_02027528
+FUN_02027528: ; 0x02027528
+ push {r3-r5, lr}
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ cmp r4, #0xa
+ blt _02027536
+ bl ErrorHandling
+_02027536:
+ ldr r1, [r5, #0x0]
+ ldr r0, _0202755C ; =0x00001234
+ cmp r1, r0
+ beq _02027544
+ ldr r0, _02027560 ; =0x00002345
+ cmp r1, r0
+ bne _02027548
+_02027544:
+ mov r0, #0x1
+ b _0202754A
+_02027548:
+ mov r0, #0x0
+_0202754A:
+ cmp r0, #0x0
+ bne _02027552
+ bl ErrorHandling
+_02027552:
+ mov r0, #0x1
+ ldr r1, [r5, #0x3c]
+ lsl r0, r4
+ and r0, r1
+ pop {r3-r5, pc}
+ .balign 4
+_0202755C: .word 0x00001234
+_02027560: .word 0x00002345
+
+ thumb_func_start FUN_02027564
+FUN_02027564: ; 0x02027564
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r1, [r4, #0x0]
+ ldr r0, _02027588 ; =0x00001234
+ cmp r1, r0
+ beq _02027576
+ ldr r0, _0202758C ; =0x00002345
+ cmp r1, r0
+ bne _0202757A
+_02027576:
+ mov r0, #0x1
+ b _0202757C
+_0202757A:
+ mov r0, #0x0
+_0202757C:
+ cmp r0, #0x0
+ bne _02027584
+ bl ErrorHandling
+_02027584:
+ add r0, r4, #0x4
+ pop {r4, pc}
+ .balign 4
+_02027588: .word 0x00001234
+_0202758C: .word 0x00002345
+
+ thumb_func_start FUN_02027590
+FUN_02027590: ; 0x02027590
+ push {r3-r5, lr}
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ cmp r4, #0xa
+ blt _0202759E
+ bl ErrorHandling
+_0202759E:
+ mov r0, #0x1
+ ldr r1, [r5, #0x3c]
+ lsl r0, r4
+ tst r0, r1
+ bne _020275AC
+ bl ErrorHandling
+_020275AC:
+ ldr r1, [r5, #0x0]
+ ldr r0, _020275D0 ; =0x00001234
+ cmp r1, r0
+ beq _020275BA
+ ldr r0, _020275D4 ; =0x00002345
+ cmp r1, r0
+ bne _020275BE
+_020275BA:
+ mov r0, #0x1
+ b _020275C0
+_020275BE:
+ mov r0, #0x0
+_020275C0:
+ cmp r0, #0x0
+ bne _020275C8
+ bl ErrorHandling
+_020275C8:
+ add r5, #0x48
+ lsl r0, r4, #0x2
+ add r0, r5, r0
+ pop {r3-r5, pc}
+ .balign 4
+_020275D0: .word 0x00001234
+_020275D4: .word 0x00002345
+
+ thumb_func_start FUN_020275D8
+FUN_020275D8: ; 0x020275D8
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r1, [r4, #0x0]
+ ldr r0, _02027600 ; =0x00001234
+ cmp r1, r0
+ beq _020275EA
+ ldr r0, _02027604 ; =0x00002345
+ cmp r1, r0
+ bne _020275EE
+_020275EA:
+ mov r0, #0x1
+ b _020275F0
+_020275EE:
+ mov r0, #0x0
+_020275F0:
+ cmp r0, #0x0
+ bne _020275F8
+ bl ErrorHandling
+_020275F8:
+ add r0, r4, #0x4
+ bl FUN_02027C84
+ pop {r4, pc}
+ .balign 4
+_02027600: .word 0x00001234
+_02027604: .word 0x00002345
+
+ thumb_func_start FUN_02027608
+FUN_02027608: ; 0x02027608
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ ldr r1, [r5, #0x0]
+ ldr r0, _02027634 ; =0x00001234
+ cmp r1, r0
+ beq _0202761C
+ ldr r0, _02027638 ; =0x00002345
+ cmp r1, r0
+ bne _02027620
+_0202761C:
+ mov r0, #0x1
+ b _02027622
+_02027620:
+ mov r0, #0x0
+_02027622:
+ cmp r0, #0x0
+ bne _0202762A
+ bl ErrorHandling
+_0202762A:
+ add r0, r5, #0x4
+ add r1, r4, #0x0
+ bl FUN_02027C88
+ pop {r3-r5, pc}
+ .balign 4
+_02027634: .word 0x00001234
+_02027638: .word 0x00002345
+
+ thumb_func_start FUN_0202763C
+FUN_0202763C: ; 0x0202763C
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r1, [r4, #0x0]
+ ldr r0, _02027664 ; =0x00001234
+ cmp r1, r0
+ beq _0202764E
+ ldr r0, _02027668 ; =0x00002345
+ cmp r1, r0
+ bne _02027652
+_0202764E:
+ mov r0, #0x1
+ b _02027654
+_02027652:
+ mov r0, #0x0
+_02027654:
+ cmp r0, #0x0
+ bne _0202765C
+ bl ErrorHandling
+_0202765C:
+ add r0, r4, #0x4
+ bl FUN_02027C98
+ pop {r4, pc}
+ .balign 4
+_02027664: .word 0x00001234
+_02027668: .word 0x00002345
+
+ thumb_func_start FUN_0202766C
+FUN_0202766C: ; 0x0202766C
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r1, [r4, #0x0]
+ ldr r0, _02027694 ; =0x00001234
+ cmp r1, r0
+ beq _0202767E
+ ldr r0, _02027698 ; =0x00002345
+ cmp r1, r0
+ bne _02027682
+_0202767E:
+ mov r0, #0x1
+ b _02027684
+_02027682:
+ mov r0, #0x0
+_02027684:
+ cmp r0, #0x0
+ bne _0202768C
+ bl ErrorHandling
+_0202768C:
+ add r4, #0x70
+ ldrb r0, [r4, #0x0]
+ pop {r4, pc}
+ nop
+_02027694: .word 0x00001234
+_02027698: .word 0x00002345
+
+ thumb_func_start FUN_0202769C
+FUN_0202769C: ; 0x0202769C
+ ldr r3, _020276A4 ; =FUN_02013918
+ add r0, #0x40
+ mov r1, #0x0
+ bx r3
+ .balign 4
+_020276A4: .word FUN_02013918
+
+ thumb_func_start FUN_020276A8
+FUN_020276A8: ; 0x020276A8
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r1, [r4, #0x0]
+ ldr r0, _020276D0 ; =0x00001234
+ cmp r1, r0
+ beq _020276BA
+ ldr r0, _020276D4 ; =0x00002345
+ cmp r1, r0
+ bne _020276BE
+_020276BA:
+ mov r0, #0x1
+ b _020276C0
+_020276BE:
+ mov r0, #0x0
+_020276C0:
+ cmp r0, #0x0
+ bne _020276C8
+ bl ErrorHandling
+_020276C8:
+ add r4, #0x71
+ ldrb r0, [r4, #0x0]
+ pop {r4, pc}
+ nop
+_020276D0: .word 0x00001234
+_020276D4: .word 0x00002345
+
+ thumb_func_start FUN_020276D8
+FUN_020276D8: ; 0x020276D8
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r1, [r4, #0x0]
+ ldr r0, _02027708 ; =0x00001234
+ cmp r1, r0
+ beq _020276EA
+ ldr r0, _0202770C ; =0x00002345
+ cmp r1, r0
+ bne _020276EE
+_020276EA:
+ mov r0, #0x1
+ b _020276F0
+_020276EE:
+ mov r0, #0x0
+_020276F0:
+ cmp r0, #0x0
+ bne _020276F8
+ bl ErrorHandling
+_020276F8:
+ ldr r1, [r4, #0x0]
+ ldr r0, _0202770C ; =0x00002345
+ cmp r1, r0
+ bne _02027704
+ mov r0, #0x1
+ pop {r4, pc}
+_02027704:
+ mov r0, #0x0
+ pop {r4, pc}
+ .balign 4
+_02027708: .word 0x00001234
+_0202770C: .word 0x00002345
+
+ thumb_func_start FUN_02027710
+FUN_02027710: ; 0x02027710
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r1, [r4, #0x0]
+ ldr r0, _02027738 ; =0x00001234
+ cmp r1, r0
+ beq _02027722
+ ldr r0, _0202773C ; =0x00002345
+ cmp r1, r0
+ bne _02027726
+_02027722:
+ mov r0, #0x1
+ b _02027728
+_02027726:
+ mov r0, #0x0
+_02027728:
+ cmp r0, #0x0
+ bne _02027730
+ bl ErrorHandling
+_02027730:
+ ldr r0, _0202773C ; =0x00002345
+ str r0, [r4, #0x0]
+ pop {r4, pc}
+ nop
+_02027738: .word 0x00001234
+_0202773C: .word 0x00002345
+
+ thumb_func_start FUN_02027740
+FUN_02027740: ; 0x02027740
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r1, [r4, #0x0]
+ ldr r0, _02027770 ; =0x00001234
+ cmp r1, r0
+ beq _02027752
+ ldr r0, _02027774 ; =0x00002345
+ cmp r1, r0
+ bne _02027756
+_02027752:
+ mov r0, #0x1
+ b _02027758
+_02027756:
+ mov r0, #0x0
+_02027758:
+ cmp r0, #0x0
+ bne _02027760
+ bl ErrorHandling
+_02027760:
+ add r0, r4, #0x0
+ mov r1, #0x0
+ mov r2, #0x98
+ blx Call_FillMemWithValue
+ ldr r0, _02027770 ; =0x00001234
+ str r0, [r4, #0x0]
+ pop {r4, pc}
+ .balign 4
+_02027770: .word 0x00001234
+_02027774: .word 0x00002345
+
+ thumb_func_start FUN_02027778
+FUN_02027778: ; 0x02027778
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ ldr r1, [r5, #0x0]
+ ldr r0, _020277AC ; =0x00001234
+ add r6, r2, #0x0
+ cmp r1, r0
+ beq _0202778E
+ ldr r0, _020277B0 ; =0x00002345
+ cmp r1, r0
+ bne _02027792
+_0202778E:
+ mov r0, #0x1
+ b _02027794
+_02027792:
+ mov r0, #0x0
+_02027794:
+ cmp r0, #0x0
+ bne _0202779C
+ bl ErrorHandling
+_0202779C:
+ add r5, #0x8
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ add r2, r6, #0x0
+ bl FUN_02026D34
+ pop {r4-r6, pc}
+ nop
+_020277AC: .word 0x00001234
+_020277B0: .word 0x00002345
+
+ thumb_func_start FUN_020277B4
+FUN_020277B4: ; 0x020277B4
+ push {r4-r7, lr}
+ sub sp, #0x14
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ ldr r0, [r4, #0x4]
+ add r6, r2, #0x0
+ bl FUN_02013ECC
+ add r1, sp, #0xc
+ strh r0, [r1, #0x0]
+ lsr r0, r0, #0x10
+ strh r0, [r1, #0x2]
+ ldrh r0, [r1, #0x0]
+ strh r0, [r1, #0x4]
+ ldrh r0, [r1, #0x2]
+ strh r0, [r1, #0x6]
+ ldr r0, [r4, #0x4]
+ bl FUN_02013F00
+ str r0, [sp, #0x8]
+ cmp r6, #0x14
+ blt _020277E4
+ bl ErrorHandling
+_020277E4:
+ add r1, sp, #0xc
+ mov r0, #0x4
+ ldrsh r1, [r1, r0]
+ add r0, #0xfc
+ cmp r1, r0
+ blt _020277F4
+ bl ErrorHandling
+_020277F4:
+ add r1, sp, #0xc
+ mov r0, #0x6
+ ldrsh r7, [r1, r0]
+ add r0, #0xfa
+ cmp r7, r0
+ blt _02027804
+ bl ErrorHandling
+_02027804:
+ mov r1, #0x7f
+ ldr r0, [sp, #0x8]
+ mvn r1, r1
+ cmp r0, r1
+ bgt _02027812
+ bl ErrorHandling
+_02027812:
+ mov r0, #0x1
+ lsl r0, r6
+ ldr r1, [r5, #0x40]
+ str r0, [sp, #0x4]
+ tst r0, r1
+ beq _02027822
+ bl ErrorHandling
+_02027822:
+ ldr r1, [r5, #0x0]
+ ldr r0, _02027874 ; =0x00001234
+ cmp r1, r0
+ beq _02027830
+ ldr r0, _02027878 ; =0x00002345
+ cmp r1, r0
+ bne _02027834
+_02027830:
+ mov r0, #0x1
+ b _02027836
+_02027834:
+ mov r0, #0x0
+_02027836:
+ cmp r0, #0x0
+ bne _0202783E
+ bl ErrorHandling
+_0202783E:
+ ldr r0, [sp, #0x8]
+ add r1, r5, #0x0
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x0]
+ add r3, sp, #0xc
+ mov r2, #0x4
+ ldrsh r2, [r3, r2]
+ lsl r3, r7, #0x18
+ add r1, #0x44
+ lsl r0, r6, #0x2
+ add r0, r1, r0
+ ldr r1, [r4, #0x0]
+ lsl r2, r2, #0x18
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ lsr r2, r2, #0x18
+ lsr r3, r3, #0x18
+ bl FUN_02026DB0
+ ldr r1, [r5, #0x40]
+ ldr r0, [sp, #0x4]
+ orr r0, r1
+ str r0, [r5, #0x40]
+ add sp, #0x14
+ pop {r4-r7, pc}
+ nop
+_02027874: .word 0x00001234
+_02027878: .word 0x00002345
+
+ thumb_func_start FUN_0202787C
+FUN_0202787C: ; 0x0202787C
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ ldr r1, [r5, #0x0]
+ ldr r0, _020278A4 ; =0x00001234
+ cmp r1, r0
+ beq _02027890
+ ldr r0, _020278A8 ; =0x00002345
+ cmp r1, r0
+ bne _02027894
+_02027890:
+ mov r0, #0x1
+ b _02027896
+_02027894:
+ mov r0, #0x0
+_02027896:
+ cmp r0, #0x0
+ bne _0202789E
+ bl ErrorHandling
+_0202789E:
+ add r5, #0x94
+ strb r4, [r5, #0x0]
+ pop {r3-r5, pc}
+ .balign 4
+_020278A4: .word 0x00001234
+_020278A8: .word 0x00002345
+
+ thumb_func_start FUN_020278AC
+FUN_020278AC: ; 0x020278AC
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ ldr r1, [r5, #0x0]
+ ldr r0, _020278D4 ; =0x00001234
+ cmp r1, r0
+ beq _020278C0
+ ldr r0, _020278D8 ; =0x00002345
+ cmp r1, r0
+ bne _020278C4
+_020278C0:
+ mov r0, #0x1
+ b _020278C6
+_020278C4:
+ mov r0, #0x0
+_020278C6:
+ cmp r0, #0x0
+ bne _020278CE
+ bl ErrorHandling
+_020278CE:
+ str r4, [r5, #0x4]
+ pop {r3-r5, pc}
+ nop
+_020278D4: .word 0x00001234
+_020278D8: .word 0x00002345
+
+ thumb_func_start FUN_020278DC
+FUN_020278DC: ; 0x020278DC
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ ldr r1, [r5, #0x0]
+ ldr r0, _0202790C ; =0x00001234
+ cmp r1, r0
+ beq _020278F0
+ ldr r0, _02027910 ; =0x00002345
+ cmp r1, r0
+ bne _020278F4
+_020278F0:
+ mov r0, #0x1
+ b _020278F6
+_020278F4:
+ mov r0, #0x0
+_020278F6:
+ cmp r0, #0x0
+ bne _020278FE
+ bl ErrorHandling
+_020278FE:
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ mov r2, #0x98
+ blx memcpy
+ pop {r3-r5, pc}
+ nop
+_0202790C: .word 0x00001234
+_02027910: .word 0x00002345
+
+ thumb_func_start FUN_02027914
+FUN_02027914: ; 0x02027914
+ push {r4-r6, lr}
+ sub sp, #0x8
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ ldr r1, [r5, #0x0]
+ ldr r0, _0202795C ; =0x00001234
+ add r6, r2, #0x0
+ cmp r1, r0
+ beq _0202792C
+ ldr r0, _02027960 ; =0x00002345
+ cmp r1, r0
+ bne _02027930
+_0202792C:
+ mov r0, #0x1
+ b _02027932
+_02027930:
+ mov r0, #0x0
+_02027932:
+ cmp r0, #0x0
+ bne _0202793A
+ bl ErrorHandling
+_0202793A:
+ add r1, sp, #0x4
+ add r0, r4, #0x0
+ add r1, #0x1
+ add r2, sp, #0x4
+ bl FUN_02026F3C
+ add r5, #0x8
+ str r6, [sp, #0x0]
+ add r3, sp, #0x4
+ ldrb r2, [r3, #0x1]
+ ldrb r3, [r3, #0x0]
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_02026CD0
+ add sp, #0x8
+ pop {r4-r6, pc}
+ .balign 4
+_0202795C: .word 0x00001234
+_02027960: .word 0x00002345
+
+ thumb_func_start FUN_02027964
+FUN_02027964: ; 0x02027964
+ push {r4-r7, lr}
+ sub sp, #0xc
+ str r3, [sp, #0x4]
+ add r6, r1, #0x0
+ add r5, r0, #0x0
+ add r7, r2, #0x0
+ ldr r4, [sp, #0x24]
+ cmp r6, #0x14
+ blo _0202797A
+ bl ErrorHandling
+_0202797A:
+ cmp r7, #0x64
+ blo _02027982
+ bl ErrorHandling
+_02027982:
+ mov r1, #0x1
+ ldr r0, [sp, #0x4]
+ lsl r1, r1, #0x8
+ cmp r0, r1
+ blt _02027990
+ bl ErrorHandling
+_02027990:
+ add r0, sp, #0x10
+ ldrb r1, [r0, #0x10]
+ mov r0, #0x1
+ lsl r0, r0, #0x8
+ cmp r1, r0
+ blt _020279A0
+ bl ErrorHandling
+_020279A0:
+ mov r0, #0x7f
+ mvn r0, r0
+ cmp r4, r0
+ bgt _020279AC
+ bl ErrorHandling
+_020279AC:
+ mov r0, #0x1
+ lsl r0, r6
+ ldr r1, [r5, #0x40]
+ str r0, [sp, #0x8]
+ tst r0, r1
+ beq _020279BC
+ bl ErrorHandling
+_020279BC:
+ ldr r1, [r5, #0x0]
+ ldr r0, _02027A0C ; =0x00001234
+ cmp r1, r0
+ beq _020279CA
+ ldr r0, _02027A10 ; =0x00002345
+ cmp r1, r0
+ bne _020279CE
+_020279CA:
+ mov r0, #0x1
+ b _020279D0
+_020279CE:
+ mov r0, #0x0
+_020279D0:
+ cmp r0, #0x0
+ bne _020279D8
+ bl ErrorHandling
+_020279D8:
+ mov r0, #0x38
+ ldrsb r0, [r5, r0]
+ cmp r0, r4
+ blt _020279E6
+ add r0, r0, #0x1
+ lsl r0, r0, #0x18
+ asr r4, r0, #0x18
+_020279E6:
+ lsl r0, r4, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x0]
+ add r3, sp, #0x10
+ add r1, r5, #0x0
+ ldrb r3, [r3, #0x10]
+ add r1, #0x44
+ lsl r0, r6, #0x2
+ add r0, r1, r0
+ ldr r2, [sp, #0x4]
+ add r1, r7, #0x0
+ bl FUN_02026DB0
+ ldr r1, [r5, #0x40]
+ ldr r0, [sp, #0x8]
+ orr r0, r1
+ str r0, [r5, #0x40]
+ add sp, #0xc
+ pop {r4-r7, pc}
+ .balign 4
+_02027A0C: .word 0x00001234
+_02027A10: .word 0x00002345
+
+ thumb_func_start FUN_02027A14
+FUN_02027A14: ; 0x02027A14
+ push {r3-r5, lr}
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ cmp r4, #0x14
+ blt _02027A22
+ bl ErrorHandling
+_02027A22:
+ ldr r1, [r5, #0x0]
+ ldr r0, _02027A50 ; =0x00001234
+ cmp r1, r0
+ beq _02027A30
+ ldr r0, _02027A54 ; =0x00002345
+ cmp r1, r0
+ bne _02027A34
+_02027A30:
+ mov r0, #0x1
+ b _02027A36
+_02027A34:
+ mov r0, #0x0
+_02027A36:
+ cmp r0, #0x0
+ bne _02027A3E
+ bl ErrorHandling
+_02027A3E:
+ mov r0, #0x1
+ add r1, r0, #0x0
+ ldr r2, [r5, #0x40]
+ lsl r1, r4
+ tst r1, r2
+ bne _02027A4C
+ mov r0, #0x0
+_02027A4C:
+ pop {r3-r5, pc}
+ nop
+_02027A50: .word 0x00001234
+_02027A54: .word 0x00002345
+
+ thumb_func_start FUN_02027A58
+FUN_02027A58: ; 0x02027A58
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ ldr r1, [r5, #0x0]
+ ldr r0, _02027A8C ; =0x00001234
+ add r6, r2, #0x0
+ cmp r1, r0
+ beq _02027A6E
+ ldr r0, _02027A90 ; =0x00002345
+ cmp r1, r0
+ bne _02027A72
+_02027A6E:
+ mov r0, #0x1
+ b _02027A74
+_02027A72:
+ mov r0, #0x0
+_02027A74:
+ cmp r0, #0x0
+ bne _02027A7C
+ bl ErrorHandling
+_02027A7C:
+ add r5, #0x8
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ add r2, r6, #0x0
+ bl FUN_02026D98
+ pop {r4-r6, pc}
+ nop
+_02027A8C: .word 0x00001234
+_02027A90: .word 0x00002345
+
+ thumb_func_start FUN_02027A94
+FUN_02027A94: ; 0x02027A94
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r1, [r4, #0x0]
+ ldr r0, _02027ABC ; =0x00001234
+ cmp r1, r0
+ beq _02027AA6
+ ldr r0, _02027AC0 ; =0x00002345
+ cmp r1, r0
+ bne _02027AAA
+_02027AA6:
+ mov r0, #0x1
+ b _02027AAC
+_02027AAA:
+ mov r0, #0x0
+_02027AAC:
+ cmp r0, #0x0
+ bne _02027AB4
+ bl ErrorHandling
+_02027AB4:
+ add r4, #0x8
+ add r0, r4, #0x0
+ pop {r4, pc}
+ nop
+_02027ABC: .word 0x00001234
+_02027AC0: .word 0x00002345
+
+ thumb_func_start FUN_02027AC4
+FUN_02027AC4: ; 0x02027AC4
+ push {r3-r5, lr}
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ cmp r4, #0x14
+ blt _02027AD2
+ bl ErrorHandling
+_02027AD2:
+ mov r0, #0x1
+ ldr r1, [r5, #0x40]
+ lsl r0, r4
+ tst r0, r1
+ bne _02027AE0
+ bl ErrorHandling
+_02027AE0:
+ ldr r1, [r5, #0x0]
+ ldr r0, _02027B04 ; =0x00001234
+ cmp r1, r0
+ beq _02027AEE
+ ldr r0, _02027B08 ; =0x00002345
+ cmp r1, r0
+ bne _02027AF2
+_02027AEE:
+ mov r0, #0x1
+ b _02027AF4
+_02027AF2:
+ mov r0, #0x0
+_02027AF4:
+ cmp r0, #0x0
+ bne _02027AFC
+ bl ErrorHandling
+_02027AFC:
+ add r5, #0x44
+ lsl r0, r4, #0x2
+ add r0, r5, r0
+ pop {r3-r5, pc}
+ .balign 4
+_02027B04: .word 0x00001234
+_02027B08: .word 0x00002345
+
+ thumb_func_start FUN_02027B0C
+FUN_02027B0C: ; 0x02027B0C
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ ldr r1, [r5, #0x0]
+ ldr r0, _02027B3C ; =0x00001234
+ cmp r1, r0
+ beq _02027B20
+ ldr r0, _02027B40 ; =0x00002345
+ cmp r1, r0
+ bne _02027B24
+_02027B20:
+ mov r0, #0x1
+ b _02027B26
+_02027B24:
+ mov r0, #0x0
+_02027B26:
+ cmp r0, #0x0
+ bne _02027B2E
+ bl ErrorHandling
+_02027B2E:
+ add r5, #0x8
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_02027C88
+ pop {r3-r5, pc}
+ nop
+_02027B3C: .word 0x00001234
+_02027B40: .word 0x00002345
+
+ thumb_func_start FUN_02027B44
+FUN_02027B44: ; 0x02027B44
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r1, [r4, #0x0]
+ ldr r0, _02027B70 ; =0x00001234
+ cmp r1, r0
+ beq _02027B56
+ ldr r0, _02027B74 ; =0x00002345
+ cmp r1, r0
+ bne _02027B5A
+_02027B56:
+ mov r0, #0x1
+ b _02027B5C
+_02027B5A:
+ mov r0, #0x0
+_02027B5C:
+ cmp r0, #0x0
+ bne _02027B64
+ bl ErrorHandling
+_02027B64:
+ add r4, #0x8
+ add r0, r4, #0x0
+ bl FUN_02027C98
+ pop {r4, pc}
+ nop
+_02027B70: .word 0x00001234
+_02027B74: .word 0x00002345
+
+ thumb_func_start FUN_02027B78
+FUN_02027B78: ; 0x02027B78
+ push {r3-r5, lr}
+ sub sp, #0x10
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ ldr r1, [r5, #0x0]
+ ldr r0, _02027BD4 ; =0x00001234
+ cmp r1, r0
+ beq _02027B8E
+ ldr r0, _02027BD8 ; =0x00002345
+ cmp r1, r0
+ bne _02027B92
+_02027B8E:
+ mov r0, #0x1
+ b _02027B94
+_02027B92:
+ mov r0, #0x0
+_02027B94:
+ cmp r0, #0x0
+ bne _02027B9C
+ bl ErrorHandling
+_02027B9C:
+ mov r1, #0x1
+ str r1, [sp, #0x0]
+ ldr r0, [r5, #0x8]
+ mov r2, #0x0
+ str r0, [sp, #0x4]
+ str r1, [sp, #0x8]
+ ldr r0, [r5, #0xc]
+ add r3, r2, #0x0
+ str r0, [sp, #0xc]
+ ldrh r1, [r5, #0x10]
+ add r0, r4, #0x0
+ bl FUN_02066ACC
+ add r2, r5, #0x0
+ add r0, r4, #0x0
+ mov r1, #0x74
+ add r2, #0x12
+ bl FUN_02067830
+ add r5, #0x3b
+ add r0, r4, #0x0
+ mov r1, #0x70
+ add r2, r5, #0x0
+ bl FUN_02067830
+ add sp, #0x10
+ pop {r3-r5, pc}
+ nop
+_02027BD4: .word 0x00001234
+_02027BD8: .word 0x00002345
+
+ thumb_func_start FUN_02027BDC
+FUN_02027BDC: ; 0x02027BDC
+ push {r3-r5, lr}
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ cmp r4, #0x14
+ blt _02027BEA
+ bl ErrorHandling
+_02027BEA:
+ mov r0, #0x1
+ ldr r1, [r5, #0x40]
+ lsl r0, r4
+ tst r0, r1
+ bne _02027BF8
+ bl ErrorHandling
+_02027BF8:
+ ldr r1, [r5, #0x0]
+ ldr r0, _02027C20 ; =0x00001234
+ cmp r1, r0
+ beq _02027C06
+ ldr r0, _02027C24 ; =0x00002345
+ cmp r1, r0
+ bne _02027C0A
+_02027C06:
+ mov r0, #0x1
+ b _02027C0C
+_02027C0A:
+ mov r0, #0x0
+_02027C0C:
+ cmp r0, #0x0
+ bne _02027C14
+ bl ErrorHandling
+_02027C14:
+ add r5, #0x44
+ lsl r0, r4, #0x2
+ add r0, r5, r0
+ bl FUN_02027CF8
+ pop {r3-r5, pc}
+ .balign 4
+_02027C20: .word 0x00001234
+_02027C24: .word 0x00002345
+
+ thumb_func_start FUN_02027C28
+FUN_02027C28: ; 0x02027C28
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r1, [r4, #0x0]
+ ldr r0, _02027C50 ; =0x00001234
+ cmp r1, r0
+ beq _02027C3A
+ ldr r0, _02027C54 ; =0x00002345
+ cmp r1, r0
+ bne _02027C3E
+_02027C3A:
+ mov r0, #0x1
+ b _02027C40
+_02027C3E:
+ mov r0, #0x0
+_02027C40:
+ cmp r0, #0x0
+ bne _02027C48
+ bl ErrorHandling
+_02027C48:
+ add r4, #0x94
+ ldrb r0, [r4, #0x0]
+ pop {r4, pc}
+ nop
+_02027C50: .word 0x00001234
+_02027C54: .word 0x00002345
+
+ thumb_func_start FUN_02027C58
+FUN_02027C58: ; 0x02027C58
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r1, [r4, #0x0]
+ ldr r0, _02027C7C ; =0x00001234
+ cmp r1, r0
+ beq _02027C6A
+ ldr r0, _02027C80 ; =0x00002345
+ cmp r1, r0
+ bne _02027C6E
+_02027C6A:
+ mov r0, #0x1
+ b _02027C70
+_02027C6E:
+ mov r0, #0x0
+_02027C70:
+ cmp r0, #0x0
+ bne _02027C78
+ bl ErrorHandling
+_02027C78:
+ ldr r0, [r4, #0x4]
+ pop {r4, pc}
+ .balign 4
+_02027C7C: .word 0x00001234
+_02027C80: .word 0x00002345
+
+ thumb_func_start FUN_02027C84
+FUN_02027C84: ; 0x02027C84
+ ldrh r0, [r0, #0x8]
+ bx lr
+
+ thumb_func_start FUN_02027C88
+FUN_02027C88: ; 0x02027C88
+ add r2, r0, #0x0
+ ldr r3, _02027C94 ; =FUN_02021E28
+ add r2, #0x20
+ add r0, r1, #0x0
+ add r1, r2, #0x0
+ bx r3
+ .balign 4
+_02027C94: .word FUN_02021E28
+
+ thumb_func_start FUN_02027C98
+FUN_02027C98: ; 0x02027C98
+ add r0, #0x34
+ ldrb r0, [r0, #0x0]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02027CA0
+FUN_02027CA0: ; 0x02027CA0
+ mov r1, #0x30
+ ldrsb r0, [r0, r1]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02027CA8
+FUN_02027CA8: ; 0x02027CA8
+ add r0, #0x31
+ ldrb r0, [r0, #0x0]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02027CB0
+FUN_02027CB0: ; 0x02027CB0
+ add r0, #0x32
+ ldrb r0, [r0, #0x0]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02027CB8
+FUN_02027CB8: ; 0x02027CB8
+ push {r3-r5, lr}
+ sub sp, #0x10
+ add r4, r1, #0x0
+ mov r1, #0x1
+ add r5, r0, #0x0
+ str r1, [sp, #0x0]
+ ldr r0, [r5, #0x0]
+ mov r2, #0x0
+ str r0, [sp, #0x4]
+ str r1, [sp, #0x8]
+ ldr r0, [r5, #0x4]
+ add r3, r2, #0x0
+ str r0, [sp, #0xc]
+ ldrh r1, [r5, #0x8]
+ add r0, r4, #0x0
+ bl FUN_02066ACC
+ add r2, r5, #0x0
+ add r0, r4, #0x0
+ mov r1, #0x74
+ add r2, #0xa
+ bl FUN_02067830
+ add r5, #0x33
+ add r0, r4, #0x0
+ mov r1, #0x70
+ add r2, r5, #0x0
+ bl FUN_02067830
+ add sp, #0x10
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_02027CF8
+FUN_02027CF8: ; 0x02027CF8
+ ldrb r0, [r0, #0x0]
+ bx lr
+
+ thumb_func_start FUN_02027CFC
+FUN_02027CFC: ; 0x02027CFC
+ ldrb r0, [r0, #0x1]
+ bx lr
+
+ thumb_func_start FUN_02027D00
+FUN_02027D00: ; 0x02027D00
+ ldrb r0, [r0, #0x2]
+ bx lr
+
+ thumb_func_start FUN_02027D04
+FUN_02027D04: ; 0x02027D04
+ mov r1, #0x3
+ ldrsb r0, [r0, r1]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02027D0C
+FUN_02027D0C: ; 0x02027D0C
+ push {r4-r7, lr}
+ sub sp, #0x1fc
+ sub sp, #0x1fc
+ sub sp, #0xc
+ add r7, r0, #0x0
+ mov r0, #0x1
+ add r4, r1, #0x0
+ str r0, [sp, #0x0]
+ add r0, r4, #0x0
+ bl FUN_0202729C
+ cmp r0, #0x1
+ bne _02027D6A
+ ldr r1, _02027D78 ; =0xEDB88320
+ add r0, sp, #0x4
+ blx MATHi_CRC32InitTableRev
+ add r0, sp, #0x4
+ add r1, r4, #0x0
+ mov r2, #0x74
+ blx MATH_CalcCRC32
+ add r6, r0, #0x0
+ mov r5, #0x0
+_02027D3C:
+ add r0, r7, #0x0
+ add r1, r5, #0x0
+ bl FUN_02027008
+ add r4, r0, #0x0
+ ldr r1, _02027D78 ; =0xEDB88320
+ add r0, sp, #0x4
+ blx MATHi_CRC32InitTableRev
+ add r0, sp, #0x4
+ add r1, r4, #0x0
+ mov r2, #0x74
+ blx MATH_CalcCRC32
+ cmp r0, r6
+ bne _02027D62
+ mov r0, #0x0
+ str r0, [sp, #0x0]
+ b _02027D6E
+_02027D62:
+ add r5, r5, #0x1
+ cmp r5, #0xb
+ blt _02027D3C
+ b _02027D6E
+_02027D6A:
+ mov r0, #0x0
+ str r0, [sp, #0x0]
+_02027D6E:
+ ldr r0, [sp, #0x0]
+ add sp, #0x1fc
+ add sp, #0x1fc
+ add sp, #0xc
+ pop {r4-r7, pc}
+ .balign 4
+_02027D78: .word 0xEDB88320
+
+ thumb_func_start FUN_02027D7C
+FUN_02027D7C: ; 0x02027D7C
+ push {r4-r7, lr}
+ sub sp, #0xc
+ str r0, [sp, #0x0]
+ mov r7, #0x0
+ ldr r0, [sp, #0x0]
+ str r1, [sp, #0x4]
+ add r5, r2, #0x0
+ add r6, r7, #0x0
+ str r3, [sp, #0x8]
+ cmp r0, #0x0
+ ble _02027DB6
+ add r4, r3, #0x0
+_02027D94:
+ ldr r0, [sp, #0x4]
+ cmp r6, r0
+ beq _02027DAC
+ ldr r1, [r4, #0x0]
+ cmp r1, #0x0
+ beq _02027DAC
+ add r0, r5, #0x0
+ bl FUN_02027D0C
+ cmp r0, #0x1
+ bne _02027DAC
+ add r7, r7, #0x1
+_02027DAC:
+ ldr r0, [sp, #0x0]
+ add r6, r6, #0x1
+ add r4, r4, #0x4
+ cmp r6, r0
+ blt _02027D94
+_02027DB6:
+ mov r4, #0xa
+_02027DB8:
+ add r1, r4, r7
+ cmp r1, #0xb
+ bge _02027DD6
+ add r0, r5, #0x0
+ bl FUN_02027008
+ add r6, r0, #0x0
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_02027008
+ add r1, r0, #0x0
+ add r0, r6, #0x0
+ bl FUN_020274B8
+_02027DD6:
+ sub r4, r4, #0x1
+ cmp r4, #0x1
+ bge _02027DB8
+ ldr r0, [sp, #0x0]
+ mov r6, #0x1
+ mov r4, #0x0
+ cmp r0, #0x0
+ ble _02027E1E
+_02027DE6:
+ ldr r0, [sp, #0x4]
+ cmp r4, r0
+ beq _02027E10
+ ldr r0, [sp, #0x8]
+ ldr r7, [r0, #0x0]
+ cmp r7, #0x0
+ beq _02027E10
+ add r0, r5, #0x0
+ add r1, r7, #0x0
+ bl FUN_02027D0C
+ cmp r0, #0x1
+ bne _02027E10
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ bl FUN_02027008
+ add r1, r7, #0x0
+ add r6, r6, #0x1
+ bl FUN_020274B8
+_02027E10:
+ ldr r0, [sp, #0x8]
+ add r4, r4, #0x1
+ add r0, r0, #0x4
+ str r0, [sp, #0x8]
+ ldr r0, [sp, #0x0]
+ cmp r4, r0
+ blt _02027DE6
+_02027E1E:
+ add sp, #0xc
+ pop {r4-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_02027E24
+FUN_02027E24: ; 0x02027E24
+ ldr r3, _02027E2C ; =FUN_02022610
+ mov r1, #0xe
+ bx r3
+ nop
+_02027E2C: .word FUN_02022610
+
+ thumb_func_start FUN_02027E30
+FUN_02027E30: ; 0x02027E30
+ mov r0, #0x8
+ bx lr
+
+ thumb_func_start FUN_02027E34
+FUN_02027E34: ; 0x02027E34
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x1e
+ beq _02027E3E
+ mov r0, #0x1
+ bx lr
+_02027E3E:
+ mov r0, #0x0
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02027E44
+FUN_02027E44: ; 0x02027E44
+ mov r1, #0x1e
+ strb r1, [r0, #0x0]
+ mov r1, #0x0
+ strb r1, [r0, #0x1]
+ strb r1, [r0, #0x2]
+ strb r1, [r0, #0x3]
+ strb r1, [r0, #0x4]
+ strb r1, [r0, #0x5]
+ strb r1, [r0, #0x6]
+ strb r1, [r0, #0x7]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02027E5C
+FUN_02027E5C: ; 0x02027E5C
+ push {r4, lr}
+ mov r1, #0x8
+ bl FUN_020169D8
+ add r4, r0, #0x0
+ bl FUN_02027E44
+ add r0, r4, #0x0
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02027E70
+FUN_02027E70: ; 0x02027E70
+ ldrb r2, [r0, #0x0]
+ strb r2, [r1, #0x0]
+ ldrb r2, [r0, #0x1]
+ strb r2, [r1, #0x1]
+ ldrb r2, [r0, #0x2]
+ strb r2, [r1, #0x2]
+ ldrb r2, [r0, #0x3]
+ strb r2, [r1, #0x3]
+ ldrb r2, [r0, #0x4]
+ strb r2, [r1, #0x4]
+ ldrb r2, [r0, #0x5]
+ strb r2, [r1, #0x5]
+ ldrb r2, [r0, #0x6]
+ strb r2, [r1, #0x6]
+ ldrb r0, [r0, #0x7]
+ strb r0, [r1, #0x7]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02027E94
+FUN_02027E94: ; 0x02027E94
+ cmp r1, #0x6
+ bhi _02027ECA
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #0x6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_02027EA4: ; jump table (using 16-bit offset)
+ .short _02027EB2 - _02027EA4 - 2; case 0
+ .short _02027EB6 - _02027EA4 - 2; case 1
+ .short _02027EBA - _02027EA4 - 2; case 2
+ .short _02027EBE - _02027EA4 - 2; case 3
+ .short _02027EC2 - _02027EA4 - 2; case 4
+ .short _02027EC6 - _02027EA4 - 2; case 5
+ .short _02027ECA - _02027EA4 - 2; case 6
+_02027EB2:
+ ldrb r0, [r0, #0x0]
+ bx lr
+_02027EB6:
+ ldrb r0, [r0, #0x1]
+ bx lr
+_02027EBA:
+ ldrb r0, [r0, #0x2]
+ bx lr
+_02027EBE:
+ ldrb r0, [r0, #0x3]
+ bx lr
+_02027EC2:
+ ldrb r0, [r0, #0x4]
+ bx lr
+_02027EC6:
+ ldrb r0, [r0, #0x5]
+ bx lr
+_02027ECA:
+ ldrb r0, [r0, #0x6]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02027ED0
+FUN_02027ED0: ; 0x02027ED0
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ str r1, [sp, #0x0]
+ mov r4, #0x0
+ mov r6, #0x2
+ mov r7, #0x5
+_02027EDC:
+ bl FUN_0201B9EC
+ add r1, r7, #0x0
+ blx _s32_div_f
+ lsl r0, r1, #0x18
+ lsr r0, r0, #0x18
+ add r1, r5, r0
+ ldrb r0, [r1, #0x1]
+ cmp r0, #0x0
+ bne _02027EF6
+ strb r6, [r1, #0x1]
+ add r4, r4, #0x1
+_02027EF6:
+ cmp r4, #0x3
+ blt _02027EDC
+ mov r0, #0x1b
+ strb r0, [r5, #0x0]
+ ldr r0, [sp, #0x0]
+ strb r0, [r5, #0x6]
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_02027F04
+FUN_02027F04: ; 0x02027F04
+ push {r3-r7, lr}
+ sub sp, #0x8
+ mov r12, r2
+ mov r2, #0x0
+ add r6, r2, #0x0
+ mov r5, #0x1b
+ cmp r3, #0x0
+ beq _02027F20
+ mov r1, r12
+ bl FUN_02027ED0
+ add sp, #0x8
+ add r0, r5, #0x0
+ pop {r3-r7, pc}
+_02027F20:
+ add r4, r2, #0x0
+ add r7, sp, #0x0
+_02027F24:
+ ldrb r3, [r1, r4]
+ cmp r3, #0x0
+ beq _02027F34
+ cmp r3, #0x32
+ blo _02027F30
+ mov r6, #0x1
+_02027F30:
+ strb r4, [r7, r2]
+ add r2, r2, #0x1
+_02027F34:
+ add r4, r4, #0x1
+ cmp r4, #0x5
+ blt _02027F24
+ cmp r2, #0x5
+ bhi _02027F9C
+ add r2, r2, r2
+ add r2, pc
+ ldrh r2, [r2, #0x6]
+ lsl r2, r2, #0x10
+ asr r2, r2, #0x10
+ add pc, r2
+_02027F4A: ; jump table (using 16-bit offset)
+ .short _02027F56 - _02027F4A - 2; case 0
+ .short _02027F62 - _02027F4A - 2; case 1
+ .short _02027F70 - _02027F4A - 2; case 2
+ .short _02027F96 - _02027F4A - 2; case 3
+ .short _02027F9A - _02027F4A - 2; case 4
+ .short _02027F9A - _02027F4A - 2; case 5
+_02027F56:
+ mov r1, r12
+ bl FUN_02027ED0
+ add sp, #0x8
+ mov r0, #0x1b
+ pop {r3-r7, pc}
+_02027F62:
+ add r2, sp, #0x0
+ ldrb r3, [r2, #0x0]
+ mov r2, #0x6
+ mul r2, r3
+ lsl r2, r2, #0x18
+ lsr r5, r2, #0x18
+ b _02027F9C
+_02027F70:
+ add r2, sp, #0x0
+ ldrb r3, [r2, #0x1]
+ ldrb r2, [r2, #0x0]
+ ldrb r4, [r1, r3]
+ ldrb r5, [r1, r2]
+ cmp r5, r4
+ blo _02027F8A
+ lsl r4, r2, #0x2
+ add r2, r2, r4
+ add r2, r3, r2
+ lsl r2, r2, #0x18
+ lsr r5, r2, #0x18
+ b _02027F9C
+_02027F8A:
+ lsl r4, r3, #0x2
+ add r3, r3, r4
+ add r2, r2, r3
+ lsl r2, r2, #0x18
+ lsr r5, r2, #0x18
+ b _02027F9C
+_02027F96:
+ mov r5, #0x19
+ b _02027F9C
+_02027F9A:
+ mov r5, #0x1a
+_02027F9C:
+ cmp r6, #0x0
+ beq _02027FA2
+ mov r5, #0x1c
+_02027FA2:
+ mov r4, #0x0
+_02027FA4:
+ ldrb r3, [r1, r4]
+ add r2, r0, r4
+ add r4, r4, #0x1
+ strb r3, [r2, #0x1]
+ cmp r4, #0x5
+ blt _02027FA4
+ strb r5, [r0, #0x0]
+ mov r1, r12
+ strb r1, [r0, #0x6]
+ add r0, r5, #0x0
+ add sp, #0x8
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_02027FBC
+FUN_02027FBC: ; 0x02027FBC
+ ldrb r2, [r0, #0x0]
+ strb r2, [r1, #0x0]
+ ldrb r2, [r0, #0x1]
+ strb r2, [r1, #0x1]
+ ldrb r2, [r0, #0x2]
+ strb r2, [r1, #0x2]
+ ldrb r2, [r0, #0x3]
+ strb r2, [r1, #0x3]
+ ldrb r2, [r0, #0x4]
+ strb r2, [r1, #0x4]
+ ldrb r2, [r0, #0x5]
+ strb r2, [r1, #0x5]
+ ldrb r0, [r0, #0x6]
+ strb r0, [r1, #0x6]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02027FDC
+FUN_02027FDC: ; 0x02027FDC
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldrb r0, [r4, #0x0]
+ mov r1, #0x5
+ blx _s32_div_f
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ cmp r0, #0x5
+ bhi _0202801C
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02027FFC: ; jump table (using 16-bit offset)
+ .short _02028008 - _02027FFC - 2; case 0
+ .short _0202800C - _02027FFC - 2; case 1
+ .short _02028010 - _02027FFC - 2; case 2
+ .short _02028014 - _02027FFC - 2; case 3
+ .short _02028018 - _02027FFC - 2; case 4
+ .short _0202801C - _02027FFC - 2; case 5
+_02028008:
+ ldrb r0, [r4, #0x1]
+ b _0202803E
+_0202800C:
+ ldrb r0, [r4, #0x2]
+ b _0202803E
+_02028010:
+ ldrb r0, [r4, #0x3]
+ b _0202803E
+_02028014:
+ ldrb r0, [r4, #0x4]
+ b _0202803E
+_02028018:
+ ldrb r0, [r4, #0x5]
+ b _0202803E
+_0202801C:
+ ldrb r0, [r4, #0x1]
+ ldrb r1, [r4, #0x2]
+ cmp r0, r1
+ bhs _02028026
+ add r0, r1, #0x0
+_02028026:
+ ldrb r1, [r4, #0x3]
+ cmp r0, r1
+ bhs _0202802E
+ add r0, r1, #0x0
+_0202802E:
+ ldrb r1, [r4, #0x4]
+ cmp r0, r1
+ bhs _02028036
+ add r0, r1, #0x0
+_02028036:
+ ldrb r1, [r4, #0x5]
+ cmp r0, r1
+ bhs _0202803E
+ add r0, r1, #0x0
+_0202803E:
+ cmp r0, #0x63
+ bls _02028044
+ mov r0, #0x63
+_02028044:
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02028048
+FUN_02028048: ; 0x02028048
+ ldr r3, _02028050 ; =FUN_02022610
+ mov r1, #0x10
+ bx r3
+ nop
+_02028050: .word FUN_02022610
+
+ thumb_func_start FUN_02028054
+FUN_02028054: ; 0x02028054
+ mov r0, #0x32
+ lsl r0, r0, #0x4
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_0202805C
+FUN_0202805C: ; 0x0202805C
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ mov r4, #0x0
+_02028062:
+ add r0, r5, #0x0
+ bl FUN_02027E44
+ add r4, r4, #0x1
+ add r5, #0x8
+ cmp r4, #0x64
+ blt _02028062
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_02028074
+FUN_02028074: ; 0x02028074
+ mov r2, #0x0
+_02028076:
+ lsl r1, r2, #0x3
+ ldrb r1, [r0, r1]
+ cmp r1, #0x1e
+ bne _02028082
+ add r0, r2, #0x0
+ bx lr
+_02028082:
+ add r1, r2, #0x1
+ lsl r1, r1, #0x10
+ lsr r2, r1, #0x10
+ cmp r2, #0x64
+ blo _02028076
+ ldr r0, _02028090 ; =0x0000FFFF
+ bx lr
+ .balign 4
+_02028090: .word 0x0000FFFF
+
+ thumb_func_start FUN_02028094
+FUN_02028094: ; 0x02028094
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ add r6, r1, #0x0
+ bl FUN_02028074
+ ldr r1, _020280B4 ; =0x0000FFFF
+ add r4, r0, #0x0
+ cmp r4, r1
+ beq _020280B2
+ lsl r1, r4, #0x3
+ add r0, r6, #0x0
+ add r1, r5, r1
+ bl FUN_02027E70
+ add r0, r4, #0x0
+_020280B2:
+ pop {r4-r6, pc}
+ .balign 4
+_020280B4: .word 0x0000FFFF
+
+ thumb_func_start FUN_020280B8
+FUN_020280B8: ; 0x020280B8
+ push {r3, lr}
+ cmp r1, #0x64
+ blo _020280C2
+ mov r0, #0x0
+ pop {r3, pc}
+_020280C2:
+ lsl r1, r1, #0x3
+ add r0, r0, r1
+ bl FUN_02027E44
+ mov r0, #0x1
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_020280D0
+FUN_020280D0: ; 0x020280D0
+ cmp r1, #0x64
+ bhs _020280EA
+_020280D4:
+ lsl r2, r1, #0x3
+ ldrb r2, [r0, r2]
+ cmp r2, #0x1e
+ beq _020280E0
+ add r0, r1, #0x0
+ bx lr
+_020280E0:
+ add r1, r1, #0x1
+ lsl r1, r1, #0x10
+ lsr r1, r1, #0x10
+ cmp r1, #0x64
+ blo _020280D4
+_020280EA:
+ ldr r0, _020280F0 ; =0x0000FFFF
+ bx lr
+ nop
+_020280F0: .word 0x0000FFFF
+
+ thumb_func_start FUN_020280F4
+FUN_020280F4: ; 0x020280F4
+ push {r4-r7, lr}
+ sub sp, #0xc
+ add r5, r0, #0x0
+ mov r0, #0x0
+ mov r7, #0x64
+ str r0, [sp, #0x4]
+_02028100:
+ ldr r0, [sp, #0x4]
+ lsl r0, r0, #0x3
+ ldrb r0, [r5, r0]
+ cmp r0, #0x1e
+ bne _0202815C
+ ldr r6, [sp, #0x4]
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ bl FUN_020280D0
+ add r4, r0, #0x0
+ ldr r0, _02028170 ; =0x0000FFFF
+ cmp r4, r0
+ beq _0202816A
+ ldr r0, [sp, #0x4]
+ sub r0, r4, r0
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #0x0]
+ cmp r4, r7
+ bhs _02028154
+ cmp r4, r7
+ bhs _02028154
+_0202812E:
+ lsl r0, r4, #0x3
+ lsl r1, r6, #0x3
+ str r0, [sp, #0x8]
+ add r0, r5, r0
+ add r1, r5, r1
+ bl FUN_02027E70
+ ldr r0, [sp, #0x8]
+ add r0, r5, r0
+ bl FUN_02027E44
+ add r0, r6, #0x1
+ lsl r0, r0, #0x10
+ lsr r6, r0, #0x10
+ add r0, r4, #0x1
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+ cmp r4, r7
+ blo _0202812E
+_02028154:
+ ldr r0, [sp, #0x0]
+ sub r0, r7, r0
+ lsl r0, r0, #0x10
+ lsr r7, r0, #0x10
+_0202815C:
+ ldr r0, [sp, #0x4]
+ add r0, r0, #0x1
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #0x4]
+ cmp r0, r7
+ blo _02028100
+_0202816A:
+ add sp, #0xc
+ pop {r4-r7, pc}
+ nop
+_02028170: .word 0x0000FFFF
+
+ thumb_func_start FUN_02028174
+FUN_02028174: ; 0x02028174
+ push {r3, lr}
+ cmp r1, #0x64
+ blo _02028182
+ add r0, r2, #0x0
+ bl FUN_02027E44
+ pop {r3, pc}
+_02028182:
+ lsl r1, r1, #0x3
+ add r0, r0, r1
+ add r1, r2, #0x0
+ bl FUN_02027E70
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_02028190
+FUN_02028190: ; 0x02028190
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ add r0, r2, #0x0
+ add r4, r1, #0x0
+ bl FUN_02027E5C
+ add r6, r0, #0x0
+ cmp r4, #0x64
+ blo _020281AA
+ bl FUN_02027E44
+ mov r0, #0x0
+ pop {r4-r6, pc}
+_020281AA:
+ lsl r0, r4, #0x3
+ add r0, r5, r0
+ add r1, r6, #0x0
+ bl FUN_02027E70
+ add r0, r6, #0x0
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_020281B8
+FUN_020281B8: ; 0x020281B8
+ push {r4-r6, lr}
+ mov r4, #0x0
+ add r6, r0, #0x0
+ add r5, r4, #0x0
+_020281C0:
+ lsl r0, r5, #0x3
+ add r0, r6, r0
+ bl FUN_02027E34
+ cmp r0, #0x0
+ beq _020281D2
+ add r0, r4, #0x1
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+_020281D2:
+ add r0, r5, #0x1
+ lsl r0, r0, #0x10
+ lsr r5, r0, #0x10
+ cmp r5, #0x64
+ blo _020281C0
+ add r0, r4, #0x0
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_020281E0
+FUN_020281E0: ; 0x020281E0
+ mov r0, #0x1f
+ lsl r0, r0, #0x6
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_020281E8
+FUN_020281E8: ; 0x020281E8
+ push {r3-r7, lr}
+ add r7, r0, #0x0
+ mov r2, #0x1f
+ mov r0, #0x0
+ add r1, r7, #0x0
+ lsl r2, r2, #0x6
+ blx MIi_CpuClearFast
+ mov r0, #0x1d
+ lsl r0, r0, #0x4
+ add r1, r0, #0x0
+ add r2, r0, #0x0
+ ldr r4, _02028224 ; =0x0000FFFF
+ mov r5, #0x0
+ add r6, r7, #0x0
+ mov r3, #0x2
+ sub r1, #0x10
+ add r2, #0x1e
+_0202820C:
+ strh r4, [r6, r0]
+ strh r4, [r6, r1]
+ strb r3, [r6, r2]
+ add r5, r5, #0x1
+ add r6, #0x30
+ cmp r5, #0x20
+ blt _0202820C
+ add r0, r7, #0x0
+ bl FUN_0203380C
+ pop {r3-r7, pc}
+ nop
+_02028224: .word 0x0000FFFF
+
+ thumb_func_start FUN_02028228
+FUN_02028228: ; 0x02028228
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_0202822C
+FUN_0202822C: ; 0x0202822C
+ push {r3-r7, lr}
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ add r7, r2, #0x0
+ cmp r4, #0x20
+ blt _0202823C
+ bl ErrorHandling
+_0202823C:
+ cmp r7, #0x8
+ bhi _020282D0
+ add r0, r7, r7
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0202824C: ; jump table (using 16-bit offset)
+ .short _0202825E - _0202824C - 2; case 0
+ .short _0202826C - _0202824C - 2; case 1
+ .short _0202827A - _0202824C - 2; case 2
+ .short _02028286 - _0202824C - 2; case 3
+ .short _02028294 - _0202824C - 2; case 4
+ .short _020282A0 - _0202824C - 2; case 5
+ .short _020282AE - _0202824C - 2; case 6
+ .short _020282C6 - _0202824C - 2; case 7
+ .short _020282BA - _0202824C - 2; case 8
+_0202825E:
+ mov r0, #0x30
+ mul r0, r4
+ add r1, r5, r0
+ mov r0, #0x1e
+ lsl r0, r0, #0x4
+ ldr r6, [r1, r0]
+ b _020282D0
+_0202826C:
+ mov r0, #0x30
+ mul r0, r4
+ add r1, r5, r0
+ mov r0, #0x79
+ lsl r0, r0, #0x2
+ ldrh r6, [r1, r0]
+ b _020282D0
+_0202827A:
+ mov r0, #0x30
+ mul r0, r4
+ add r1, r5, r0
+ ldr r0, _020282D4 ; =0x000001E6
+ ldrh r6, [r1, r0]
+ b _020282D0
+_02028286:
+ mov r0, #0x30
+ mul r0, r4
+ add r1, r5, r0
+ mov r0, #0x7a
+ lsl r0, r0, #0x2
+ ldrh r6, [r1, r0]
+ b _020282D0
+_02028294:
+ mov r0, #0x30
+ mul r0, r4
+ add r1, r5, r0
+ ldr r0, _020282D8 ; =0x000001EA
+ ldrh r6, [r1, r0]
+ b _020282D0
+_020282A0:
+ mov r0, #0x30
+ mul r0, r4
+ add r1, r5, r0
+ mov r0, #0x7b
+ lsl r0, r0, #0x2
+ ldrb r6, [r1, r0]
+ b _020282D0
+_020282AE:
+ mov r0, #0x30
+ mul r0, r4
+ add r1, r5, r0
+ ldr r0, _020282DC ; =0x000001ED
+ ldrb r6, [r1, r0]
+ b _020282D0
+_020282BA:
+ mov r0, #0x30
+ mul r0, r4
+ add r1, r5, r0
+ ldr r0, _020282E0 ; =0x000001EE
+ ldrb r6, [r1, r0]
+ b _020282D0
+_020282C6:
+ mov r0, #0x30
+ mul r0, r4
+ add r1, r5, r0
+ ldr r0, _020282E4 ; =0x000001EF
+ ldrb r6, [r1, r0]
+_020282D0:
+ add r0, r6, #0x0
+ pop {r3-r7, pc}
+ .balign 4
+_020282D4: .word 0x000001E6
+_020282D8: .word 0x000001EA
+_020282DC: .word 0x000001ED
+_020282E0: .word 0x000001EE
+_020282E4: .word 0x000001EF
+
+ thumb_func_start FUN_020282E8
+FUN_020282E8: ; 0x020282E8
+ push {r3-r7, lr}
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ add r7, r2, #0x0
+ add r6, r3, #0x0
+ cmp r4, #0x20
+ blt _020282FA
+ bl ErrorHandling
+_020282FA:
+ cmp r7, #0x8
+ bhi _02028378
+ add r0, r7, r7
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0202830A: ; jump table (using 16-bit offset)
+ .short _0202831C - _0202830A - 2; case 0
+ .short _0202832A - _0202830A - 2; case 1
+ .short _02028330 - _0202830A - 2; case 2
+ .short _02028336 - _0202830A - 2; case 3
+ .short _0202833C - _0202830A - 2; case 4
+ .short _02028348 - _0202830A - 2; case 5
+ .short _02028356 - _0202830A - 2; case 6
+ .short _0202836E - _0202830A - 2; case 7
+ .short _02028362 - _0202830A - 2; case 8
+_0202831C:
+ mov r0, #0x30
+ mul r0, r4
+ add r1, r5, r0
+ mov r0, #0x1e
+ lsl r0, r0, #0x4
+ str r6, [r1, r0]
+ pop {r3-r7, pc}
+_0202832A:
+ bl ErrorHandling
+ pop {r3-r7, pc}
+_02028330:
+ bl ErrorHandling
+ pop {r3-r7, pc}
+_02028336:
+ bl ErrorHandling
+ pop {r3-r7, pc}
+_0202833C:
+ mov r0, #0x30
+ mul r0, r4
+ add r1, r5, r0
+ ldr r0, _0202837C ; =0x000001EA
+ strh r6, [r1, r0]
+ pop {r3-r7, pc}
+_02028348:
+ mov r0, #0x30
+ mul r0, r4
+ add r1, r5, r0
+ mov r0, #0x7b
+ lsl r0, r0, #0x2
+ strb r6, [r1, r0]
+ pop {r3-r7, pc}
+_02028356:
+ mov r0, #0x30
+ mul r0, r4
+ add r1, r5, r0
+ ldr r0, _02028380 ; =0x000001ED
+ strb r6, [r1, r0]
+ pop {r3-r7, pc}
+_02028362:
+ mov r0, #0x30
+ mul r0, r4
+ add r1, r5, r0
+ ldr r0, _02028384 ; =0x000001EE
+ strb r6, [r1, r0]
+ pop {r3-r7, pc}
+_0202836E:
+ mov r0, #0x30
+ mul r0, r4
+ add r1, r5, r0
+ ldr r0, _02028388 ; =0x000001EF
+ strb r6, [r1, r0]
+_02028378:
+ pop {r3-r7, pc}
+ nop
+_0202837C: .word 0x000001EA
+_02028380: .word 0x000001ED
+_02028384: .word 0x000001EE
+_02028388: .word 0x000001EF
+
+ thumb_func_start FUN_0202838C
+FUN_0202838C: ; 0x0202838C
+ push {r3-r5, lr}
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ cmp r4, #0x20
+ blt _0202839A
+ bl ErrorHandling
+_0202839A:
+ mov r0, #0xc
+ add r5, #0x40
+ mul r0, r4
+ add r0, r5, r0
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_020283A4
+FUN_020283A4: ; 0x020283A4
+ push {r3-r5, lr}
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ cmp r4, #0x20
+ blt _020283B2
+ bl ErrorHandling
+_020283B2:
+ mov r0, #0x1d
+ lsl r0, r0, #0x4
+ add r1, r5, r0
+ mov r0, #0x30
+ mul r0, r4
+ add r0, r1, r0
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_020283C0
+FUN_020283C0: ; 0x020283C0
+ push {r4-r6, lr}
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ add r6, r2, #0x0
+ cmp r4, #0x20
+ blt _020283D0
+ bl ErrorHandling
+_020283D0:
+ mov r1, #0x1d
+ lsl r1, r1, #0x4
+ add r2, r5, r1
+ mov r1, #0x30
+ mul r1, r4
+ add r1, r2, r1
+ add r0, r6, #0x0
+ mov r2, #0x10
+ bl FUN_02021EF0
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_020283E8
+FUN_020283E8: ; 0x020283E8
+ push {r3-r5, lr}
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ cmp r4, #0x20
+ blt _020283F6
+ bl ErrorHandling
+_020283F6:
+ mov r0, #0x7
+ lsl r0, r0, #0x6
+ add r1, r5, r0
+ mov r0, #0x30
+ mul r0, r4
+ add r0, r1, r0
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_02028404
+FUN_02028404: ; 0x02028404
+ push {r4-r6, lr}
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ add r6, r2, #0x0
+ cmp r4, #0x20
+ blt _02028414
+ bl ErrorHandling
+_02028414:
+ mov r1, #0x7
+ lsl r1, r1, #0x6
+ add r2, r5, r1
+ mov r1, #0x30
+ mul r1, r4
+ add r1, r2, r1
+ add r0, r6, #0x0
+ mov r2, #0x10
+ bl FUN_02021EF0
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_0202842C
+FUN_0202842C: ; 0x0202842C
+ push {r3-r5, lr}
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ cmp r4, #0x20
+ blt _0202843A
+ bl ErrorHandling
+_0202843A:
+ mov r0, #0xc
+ add r5, #0x40
+ mul r0, r4
+ add r0, r5, r0
+ blx FUN_0209700C
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_02028448
+FUN_02028448: ; 0x02028448
+ push {r4-r6, lr}
+ mov r5, #0x0
+ add r6, r0, #0x0
+ add r4, r5, #0x0
+_02028450:
+ add r0, r6, #0x0
+ add r1, r4, #0x0
+ bl FUN_0202842C
+ cmp r0, #0x0
+ beq _0202845E
+ add r5, r5, #0x1
+_0202845E:
+ add r4, r4, #0x1
+ cmp r4, #0x20
+ blt _02028450
+ add r0, r5, #0x0
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_02028468
+FUN_02028468: ; 0x02028468
+ push {r4-r7, lr}
+ sub sp, #0xc
+ add r5, r1, #0x0
+ str r0, [sp, #0x0]
+ cmp r5, #0x20
+ blt _02028478
+ bl ErrorHandling
+_02028478:
+ cmp r5, #0x1f
+ bge _020284D2
+ mov r1, #0x7
+ ldr r0, [sp, #0x0]
+ lsl r1, r1, #0x6
+ add r0, r0, r1
+ str r0, [sp, #0x4]
+ mov r0, #0x30
+ add r1, r5, #0x0
+ mul r1, r0
+ ldr r0, [sp, #0x4]
+ add r6, r0, r1
+ ldr r0, [sp, #0x0]
+ add r1, r5, #0x0
+ str r0, [sp, #0x8]
+ add r0, #0x40
+ str r0, [sp, #0x8]
+ mov r0, #0xc
+ mul r1, r0
+ ldr r0, [sp, #0x8]
+ add r4, r0, r1
+_020284A2:
+ add r7, r5, #0x1
+ mov r0, #0x30
+ add r1, r7, #0x0
+ mul r1, r0
+ ldr r0, [sp, #0x4]
+ mov r2, #0x30
+ add r0, r0, r1
+ add r1, r6, #0x0
+ blx MI_CpuCopy8
+ mov r0, #0xc
+ add r1, r7, #0x0
+ mul r1, r0
+ ldr r0, [sp, #0x8]
+ mov r2, #0xc
+ add r0, r0, r1
+ add r1, r4, #0x0
+ blx MI_CpuCopy8
+ add r5, r5, #0x1
+ add r6, #0x30
+ add r4, #0xc
+ cmp r5, #0x1f
+ blt _020284A2
+_020284D2:
+ mov r2, #0x7
+ ldr r1, [sp, #0x0]
+ lsl r2, r2, #0x6
+ add r2, r1, r2
+ mov r1, #0x5d
+ lsl r1, r1, #0x4
+ add r1, r2, r1
+ mov r0, #0x0
+ mov r2, #0x30
+ blx MIi_CpuClearFast
+ ldr r2, [sp, #0x0]
+ mov r1, #0x5d
+ add r2, #0x40
+ lsl r1, r1, #0x2
+ add r1, r2, r1
+ mov r0, #0x0
+ mov r2, #0xc
+ blx MIi_CpuClearFast
+ mov r2, #0x7a
+ lsl r2, r2, #0x4
+ add r1, r2, #0x0
+ ldr r3, _02028514 ; =0x0000FFFF
+ ldr r0, [sp, #0x0]
+ sub r1, #0x10
+ strh r3, [r0, r2]
+ strh r3, [r0, r1]
+ mov r1, #0x2
+ add r2, #0x1e
+ strb r1, [r0, r2]
+ add sp, #0xc
+ pop {r4-r7, pc}
+ .balign 4
+_02028514: .word 0x0000FFFF
+
+ thumb_func_start FUN_02028518
+FUN_02028518: ; 0x02028518
+ push {r4-r7, lr}
+ sub sp, #0xc
+ str r2, [sp, #0x4]
+ add r7, r0, #0x0
+ ldr r0, [sp, #0x4]
+ mov r2, #0x30
+ add r5, r0, #0x0
+ mov r0, #0x7
+ lsl r0, r0, #0x6
+ add r3, r1, #0x0
+ mul r5, r2
+ add r4, r7, r0
+ mul r3, r2
+ str r1, [sp, #0x0]
+ add r0, r4, r5
+ add r1, r4, r3
+ blx MI_CpuCopy8
+ ldr r0, [sp, #0x4]
+ add r6, r7, #0x0
+ mov r3, #0xc
+ add r1, r0, #0x0
+ mul r1, r3
+ add r6, #0x40
+ str r1, [sp, #0x8]
+ add r0, r6, r1
+ ldr r1, [sp, #0x0]
+ add r2, r1, #0x0
+ mul r2, r3
+ add r1, r6, r2
+ add r2, r3, #0x0
+ blx MI_CpuCopy8
+ mov r0, #0x0
+ add r1, r4, r5
+ mov r2, #0x30
+ blx MIi_CpuClearFast
+ ldr r1, [sp, #0x8]
+ mov r0, #0x0
+ add r1, r6, r1
+ mov r2, #0xc
+ blx MIi_CpuClearFast
+ mov r0, #0x1d
+ ldr r1, _02028588 ; =0x0000FFFF
+ add r2, r7, r5
+ lsl r0, r0, #0x4
+ strh r1, [r2, r0]
+ strh r1, [r4, r5]
+ mov r1, #0x2
+ add r0, #0x1e
+ strb r1, [r2, r0]
+ add sp, #0xc
+ pop {r4-r7, pc}
+ nop
+_02028588: .word 0x0000FFFF
+
+ thumb_func_start FUN_0202858C
+FUN_0202858C: ; 0x0202858C
+ push {r3-r7, lr}
+ mov r5, #0x0
+ mvn r5, r5
+ add r6, r0, #0x0
+ mov r4, #0x0
+ add r7, r5, #0x0
+_02028598:
+ add r0, r6, #0x0
+ add r1, r4, #0x0
+ bl FUN_0202842C
+ cmp r0, #0x0
+ beq _020285BC
+ mov r0, #0x0
+ mvn r0, r0
+ cmp r5, r0
+ beq _020285C6
+ add r0, r6, #0x0
+ add r1, r5, #0x0
+ add r2, r4, #0x0
+ bl FUN_02028518
+ add r4, r7, #0x0
+ add r5, r7, #0x0
+ b _020285C6
+_020285BC:
+ mov r0, #0x0
+ mvn r0, r0
+ cmp r5, r0
+ bne _020285C6
+ add r5, r4, #0x0
+_020285C6:
+ add r4, r4, #0x1
+ cmp r4, #0x20
+ blt _02028598
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_020285D0
+FUN_020285D0: ; 0x020285D0
+ push {r3-r5, lr}
+ sub sp, #0x10
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ add r0, sp, #0x0
+ bl FUN_020126B4
+ mov r0, #0x30
+ add r2, r4, #0x0
+ mul r2, r0
+ mov r0, #0x7d
+ ldr r1, [sp, #0x0]
+ lsl r0, r0, #0x4
+ add r1, r1, r0
+ ldr r0, _02028604 ; =0x000001EA
+ add r3, r5, r2
+ strh r1, [r3, r0]
+ add r1, r0, #0x2
+ ldr r2, [sp, #0x4]
+ add r0, r0, #0x3
+ strb r2, [r3, r1]
+ ldr r1, [sp, #0x8]
+ strb r1, [r3, r0]
+ add sp, #0x10
+ pop {r3-r5, pc}
+ nop
+_02028604: .word 0x000001EA
+
+ thumb_func_start FUN_02028608
+FUN_02028608: ; 0x02028608
+ push {r4-r6, lr}
+ mov r5, #0x79
+ add r4, r0, #0x0
+ mov r0, #0x30
+ lsl r5, r5, #0x2
+ mul r0, r1
+ add r5, r4, r5
+ ldrh r6, [r5, r0]
+ add r2, r6, r2
+ strh r2, [r5, r0]
+ ldrh r6, [r5, r0]
+ ldr r2, _0202865C ; =0x0000270F
+ cmp r6, r2
+ bls _02028626
+ strh r2, [r5, r0]
+_02028626:
+ ldr r2, _02028660 ; =0x000001E6
+ add r2, r4, r2
+ ldrh r5, [r2, r0]
+ add r3, r5, r3
+ strh r3, [r2, r0]
+ ldrh r5, [r2, r0]
+ ldr r3, _0202865C ; =0x0000270F
+ cmp r5, r3
+ bls _0202863A
+ strh r3, [r2, r0]
+_0202863A:
+ mov r2, #0x7a
+ lsl r2, r2, #0x2
+ add r2, r4, r2
+ ldrh r5, [r2, r0]
+ ldr r3, [sp, #0x10]
+ add r3, r5, r3
+ strh r3, [r2, r0]
+ ldrh r5, [r2, r0]
+ ldr r3, _0202865C ; =0x0000270F
+ cmp r5, r3
+ bls _02028652
+ strh r3, [r2, r0]
+_02028652:
+ add r0, r4, #0x0
+ bl FUN_020285D0
+ pop {r4-r6, pc}
+ nop
+_0202865C: .word 0x0000270F
+_02028660: .word 0x000001E6
+
+ thumb_func_start FUN_02028664
+FUN_02028664: ; 0x02028664
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ mov r3, #0x79
+ mov r0, #0x30
+ add r4, r1, #0x0
+ mul r4, r0
+ lsl r3, r3, #0x2
+ mul r0, r2
+ add r2, r5, r3
+ add r6, r5, r4
+ ldrh r1, [r2, r0]
+ ldrh r3, [r6, r3]
+ add r1, r1, r3
+ strh r1, [r2, r0]
+ ldrh r3, [r2, r0]
+ ldr r1, _020286E0 ; =0x0000270F
+ cmp r3, r1
+ bls _0202868A
+ strh r1, [r2, r0]
+_0202868A:
+ ldr r3, _020286E4 ; =0x000001E6
+ add r6, r5, r4
+ add r2, r5, r3
+ ldrh r1, [r2, r0]
+ ldrh r3, [r6, r3]
+ add r1, r1, r3
+ strh r1, [r2, r0]
+ ldrh r3, [r2, r0]
+ ldr r1, _020286E0 ; =0x0000270F
+ cmp r3, r1
+ bls _020286A2
+ strh r1, [r2, r0]
+_020286A2:
+ mov r3, #0x7a
+ lsl r3, r3, #0x2
+ add r2, r5, r3
+ add r6, r5, r4
+ ldrh r1, [r2, r0]
+ ldrh r3, [r6, r3]
+ add r1, r1, r3
+ strh r1, [r2, r0]
+ ldrh r3, [r2, r0]
+ ldr r1, _020286E0 ; =0x0000270F
+ cmp r3, r1
+ bls _020286BC
+ strh r1, [r2, r0]
+_020286BC:
+ mov r0, #0x7
+ lsl r0, r0, #0x6
+ add r6, r5, r0
+ mov r0, #0x0
+ add r1, r6, r4
+ mov r2, #0x30
+ blx MIi_CpuClearFast
+ mov r0, #0x1d
+ ldr r1, _020286E8 ; =0x0000FFFF
+ add r2, r5, r4
+ lsl r0, r0, #0x4
+ strh r1, [r2, r0]
+ strh r1, [r6, r4]
+ mov r1, #0x2
+ add r0, #0x1e
+ strb r1, [r2, r0]
+ pop {r4-r6, pc}
+ .balign 4
+_020286E0: .word 0x0000270F
+_020286E4: .word 0x000001E6
+_020286E8: .word 0x0000FFFF
+
+ thumb_func_start FUN_020286EC
+FUN_020286EC: ; 0x020286EC
+ ldr r3, _020286F4 ; =FUN_02022610
+ mov r1, #0x1d
+ bx r3
+ nop
+_020286F4: .word FUN_02022610
+
+ thumb_func_start FUN_020286F8
+FUN_020286F8: ; 0x020286F8
+ mov r0, #0x42
+ lsl r0, r0, #0x2
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02028700
+FUN_02028700: ; 0x02028700
+ push {r4-r5}
+ add r5, r2, #0x0
+ mov r3, #0x2c
+ add r2, r1, #0x0
+ mul r2, r3
+ mul r5, r3
+ add r4, r0, r2
+ add r3, r0, r5
+ mov r2, #0x5
+_02028712:
+ ldmia r4!, {r0-r1}
+ stmia r3!, {r0-r1}
+ sub r2, r2, #0x1
+ bne _02028712
+ ldr r0, [r4, #0x0]
+ str r0, [r3, #0x0]
+ pop {r4-r5}
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02028724
+FUN_02028724: ; 0x02028724
+ push {r4, lr}
+ add r4, r0, #0x0
+ mov r2, #0x42
+ mov r0, #0x0
+ add r1, r4, #0x0
+ lsl r2, r2, #0x2
+ blx MIi_CpuClearFast
+ ldr r0, _0202874C ; =0x0000FFFF
+ mov r1, #0x0
+ add r2, r4, #0x0
+_0202873A:
+ strh r0, [r2, #0x0]
+ strh r0, [r2, #0x10]
+ add r1, r1, #0x1
+ add r2, #0x2c
+ cmp r1, #0x6
+ blt _0202873A
+ ldr r0, _02028750 ; =0x021C59D0
+ str r4, [r0, #0x0]
+ pop {r4, pc}
+ .balign 4
+_0202874C: .word 0x0000FFFF
+_02028750: .word 0x021C59D0
+
+ thumb_func_start FUN_02028754
+FUN_02028754: ; 0x02028754
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ add r6, r1, #0x0
+ mov r7, #0x0
+_0202875C:
+ mov r4, #0x0
+ cmp r6, #0x0
+ bls _02028770
+_02028762:
+ ldr r0, [r5, #0x28]
+ bl FUN_0201BA10
+ add r4, r4, #0x1
+ str r0, [r5, #0x28]
+ cmp r4, r6
+ blo _02028762
+_02028770:
+ add r7, r7, #0x1
+ add r5, #0x2c
+ cmp r7, #0x6
+ blo _0202875C
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_0202877C
+FUN_0202877C: ; 0x0202877C
+ mov r2, #0x2c
+ mul r2, r1
+ add r0, r0, r2
+ ldr r0, [r0, #0x24]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02028788
+FUN_02028788: ; 0x02028788
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ mov r0, #0x2c
+ add r4, r1, #0x0
+ mul r4, r0
+ add r0, r5, r4
+ str r2, [r0, #0x24]
+ add r0, r2, #0x0
+ bl FUN_0201BA10
+ add r1, r5, r4
+ str r0, [r1, #0x28]
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_020287A4
+FUN_020287A4: ; 0x020287A4
+ ldr r0, [r0, #0x54]
+ bx lr
+
+ thumb_func_start FUN_020287A8
+FUN_020287A8: ; 0x020287A8
+ cmp r2, #0x0
+ bne _020287B4
+ mov r2, #0x2c
+ mul r2, r1
+ add r0, r0, r2
+ bx lr
+_020287B4:
+ mov r2, #0x2c
+ mul r2, r1
+ add r0, r0, r2
+ add r0, #0x10
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_020287C0
+FUN_020287C0: ; 0x020287C0
+ push {r4, lr}
+ add r4, r0, #0x0
+ cmp r2, #0x0
+ bne _020287D8
+ mov r2, #0x2c
+ mul r2, r1
+ add r1, r4, r2
+ add r0, r3, #0x0
+ mov r2, #0x8
+ bl FUN_02021EF0
+ pop {r4, pc}
+_020287D8:
+ mov r2, #0x2c
+ mul r2, r1
+ add r1, r4, r2
+ add r0, r3, #0x0
+ add r1, #0x10
+ mov r2, #0x8
+ bl FUN_02021EF0
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_020287EC
+FUN_020287EC: ; 0x020287EC
+ mov r3, #0x2c
+ mul r3, r1
+ add r0, r0, r3
+ add r0, #0x20
+ strb r2, [r0, #0x0]
+ bx lr
+
+ thumb_func_start FUN_020287F8
+FUN_020287F8: ; 0x020287F8
+ mov r2, #0x2c
+ mul r2, r1
+ add r0, r0, r2
+ add r0, #0x20
+ ldrb r0, [r0, #0x0]
+ bx lr
+
+ thumb_func_start FUN_02028804
+FUN_02028804: ; 0x02028804
+ mov r2, #0x2c
+ mul r2, r1
+ add r0, r0, r2
+ add r0, #0x21
+ ldrb r0, [r0, #0x0]
+ bx lr
+
+ thumb_func_start FUN_02028810
+FUN_02028810: ; 0x02028810
+ mov r3, #0x2c
+ mul r3, r1
+ add r0, r0, r3
+ add r0, #0x21
+ strb r2, [r0, #0x0]
+ bx lr
+
+ thumb_func_start FUN_0202881C
+FUN_0202881C: ; 0x0202881C
+ ldr r3, _02028824 ; =FUN_02022610
+ mov r1, #0x11
+ bx r3
+ nop
+_02028824: .word FUN_02022610
+
+ thumb_func_start FUN_02028828
+FUN_02028828: ; 0x02028828
+ push {r3, lr}
+ mov r2, #0x2c
+ mul r2, r1
+ add r0, r0, r2
+ bl FUN_0202888C
+ cmp r0, #0x0
+ bne _0202883C
+ mov r0, #0x1
+ pop {r3, pc}
+_0202883C:
+ mov r0, #0x0
+ pop {r3, pc}
+
+ thumb_func_start FUN_02028840
+FUN_02028840: ; 0x02028840
+ mov r2, #0x2c
+ add r3, r0, #0x0
+ mul r2, r1
+ add r1, r3, r2
+ ldr r3, _02028850 ; =FUN_020288AC
+ add r0, #0x2c
+ bx r3
+ nop
+_02028850: .word FUN_020288AC
+
+ thumb_func_start FUN_02028854
+FUN_02028854: ; 0x02028854
+ push {r3-r7, lr}
+ add r6, r1, #0x0
+ ldrh r1, [r6, #0x0]
+ add r5, r0, #0x0
+ ldr r0, _02028888 ; =0x0000FFFF
+ cmp r1, r0
+ bne _02028866
+ mov r0, #0x0
+ pop {r3-r7, pc}
+_02028866:
+ mov r4, #0x0
+ mov r7, #0x8
+_0202886A:
+ add r0, r6, #0x0
+ add r1, r5, #0x0
+ add r2, r7, #0x0
+ bl StringNotEqualN
+ cmp r0, #0x0
+ bne _0202887C
+ mov r0, #0x1
+ pop {r3-r7, pc}
+_0202887C:
+ add r4, r4, #0x1
+ add r5, #0x2c
+ cmp r4, #0x6
+ blt _0202886A
+ mov r0, #0x0
+ pop {r3-r7, pc}
+ .balign 4
+_02028888: .word 0x0000FFFF
+
+ thumb_func_start FUN_0202888C
+FUN_0202888C: ; 0x0202888C
+ ldrh r2, [r0, #0x0]
+ ldr r1, _020288A8 ; =0x0000FFFF
+ cmp r2, r1
+ bne _02028898
+ mov r0, #0x1
+ bx lr
+_02028898:
+ ldrh r0, [r0, #0x10]
+ cmp r0, r1
+ bne _020288A2
+ mov r0, #0x1
+ bx lr
+_020288A2:
+ mov r0, #0x0
+ bx lr
+ nop
+_020288A8: .word 0x0000FFFF
+
+ thumb_func_start FUN_020288AC
+FUN_020288AC: ; 0x020288AC
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ add r0, #0x10
+ add r1, #0x10
+ mov r2, #0x8
+ bl StringNotEqualN
+ cmp r0, #0x0
+ beq _020288C4
+ mov r0, #0x0
+ pop {r3-r5, pc}
+_020288C4:
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ mov r2, #0x8
+ bl StringNotEqualN
+ cmp r0, #0x0
+ beq _020288D6
+ mov r0, #0x0
+ pop {r3-r5, pc}
+_020288D6:
+ add r0, r5, #0x0
+ add r0, #0x20
+ ldrb r1, [r0, #0x0]
+ add r0, r4, #0x0
+ add r0, #0x20
+ ldrb r0, [r0, #0x0]
+ cmp r1, r0
+ beq _020288EA
+ mov r0, #0x0
+ pop {r3-r5, pc}
+_020288EA:
+ add r0, r5, #0x0
+ add r0, #0x21
+ ldrb r1, [r0, #0x0]
+ add r0, r4, #0x0
+ add r0, #0x21
+ ldrb r0, [r0, #0x0]
+ cmp r1, r0
+ beq _020288FE
+ mov r0, #0x0
+ pop {r3-r5, pc}
+_020288FE:
+ ldr r1, [r5, #0x24]
+ ldr r0, [r4, #0x24]
+ cmp r1, r0
+ bne _0202890A
+ mov r0, #0x1
+ pop {r3-r5, pc}
+_0202890A:
+ mov r0, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_02028910
+FUN_02028910: ; 0x02028910
+ mov r1, #0x0
+ strh r1, [r0, #0x0]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02028918
+FUN_02028918: ; 0x02028918
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ ldr r0, _0202892C ; =0x0000C350
+ add r4, r1, #0x0
+ cmp r4, r0
+ bls _02028928
+ bl ErrorHandling
+_02028928:
+ strh r4, [r5, #0x0]
+ pop {r3-r5, pc}
+ .balign 4
+_0202892C: .word 0x0000C350
+
+ thumb_func_start FUN_02028930
+FUN_02028930: ; 0x02028930
+ ldrh r0, [r0, #0x0]
+ bx lr
+
+ thumb_func_start FUN_02028934
+FUN_02028934: ; 0x02028934
+ ldrh r3, [r0, #0x0]
+ ldr r2, _02028950 ; =0x0000C350
+ cmp r3, r2
+ blo _02028940
+ mov r0, #0x0
+ bx lr
+_02028940:
+ add r1, r3, r1
+ strh r1, [r0, #0x0]
+ ldrh r1, [r0, #0x0]
+ cmp r1, r2
+ bls _0202894C
+ strh r2, [r0, #0x0]
+_0202894C:
+ mov r0, #0x1
+ bx lr
+ .balign 4
+_02028950: .word 0x0000C350
+
+ thumb_func_start FUN_02028954
+FUN_02028954: ; 0x02028954
+ ldrh r0, [r0, #0x0]
+ add r1, r1, r0
+ ldr r0, _02028968 ; =0x0000C350
+ cmp r1, r0
+ bhi _02028962
+ mov r0, #0x1
+ bx lr
+_02028962:
+ mov r0, #0x0
+ bx lr
+ nop
+_02028968: .word 0x0000C350
+
+ thumb_func_start FUN_0202896C
+FUN_0202896C: ; 0x0202896C
+ ldrh r2, [r0, #0x0]
+ cmp r2, r1
+ bhs _02028976
+ mov r0, #0x0
+ bx lr
+_02028976:
+ sub r1, r2, r1
+ strh r1, [r0, #0x0]
+ mov r0, #0x1
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02028980
+FUN_02028980: ; 0x02028980
+ mov r0, #0x46
+ lsl r0, r0, #0x4
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02028988
+FUN_02028988: ; 0x02028988
+ ldr r3, _02028990 ; =Call_FillMemWithValue
+ mov r1, #0x0
+ mov r2, #0x70
+ bx r3
+ .balign 4
+_02028990: .word Call_FillMemWithValue
+
+ thumb_func_start FUN_02028994
+FUN_02028994: ; 0x02028994
+ ldr r3, _020289A0 ; =Call_FillMemWithValue
+ mov r2, #0x46
+ mov r1, #0x0
+ lsl r2, r2, #0x4
+ bx r3
+ nop
+_020289A0: .word Call_FillMemWithValue
+
+ thumb_func_start FUN_020289A4
+FUN_020289A4: ; 0x020289A4
+ ldr r3, _020289AC ; =FUN_02022610
+ mov r1, #0x12
+ bx r3
+ nop
+_020289AC: .word FUN_02022610
+
+ thumb_func_start FUN_020289B0
+FUN_020289B0: ; 0x020289B0
+ push {r3-r7, lr}
+ sub sp, #0x10
+ add r7, r0, #0x0
+ cmp r1, #0x1
+ beq _020289C0
+ add sp, #0x10
+ mov r0, #0x0
+ pop {r3-r7, pc}
+_020289C0:
+ add r0, sp, #0x0
+ bl FUN_020126B4
+ ldr r0, [r7, #0x0]
+ lsl r1, r0, #0x15
+ lsr r3, r1, #0x1c
+ beq _02028A18
+ lsl r1, r0, #0x19
+ lsr r2, r1, #0x19
+ ldr r1, [sp, #0x0]
+ cmp r2, r1
+ bne _020289F2
+ ldr r1, [sp, #0x4]
+ cmp r3, r1
+ bne _020289F2
+ lsl r1, r0, #0xd
+ lsr r2, r1, #0x1b
+ ldr r1, [sp, #0x8]
+ cmp r2, r1
+ bne _020289F2
+ lsl r0, r0, #0x12
+ lsr r1, r0, #0x1d
+ ldr r0, [sp, #0xc]
+ cmp r1, r0
+ beq _02028A18
+_020289F2:
+ mov r0, #0x3f
+ lsl r0, r0, #0x4
+ mov r5, #0x9
+ add r6, r7, r0
+_020289FA:
+ add r4, r6, #0x0
+ sub r4, #0x70
+ add r3, r6, #0x0
+ mov r2, #0xe
+_02028A02:
+ ldmia r4!, {r0-r1}
+ stmia r3!, {r0-r1}
+ sub r2, r2, #0x1
+ bne _02028A02
+ sub r5, r5, #0x1
+ sub r6, #0x70
+ cmp r5, #0x1
+ bge _020289FA
+ add r0, r7, #0x0
+ bl FUN_02028988
+_02028A18:
+ add r0, r7, #0x0
+ add sp, #0x10
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_02028A20
+FUN_02028A20: ; 0x02028A20
+ push {r4, lr}
+ sub sp, #0x20
+ add r4, r0, #0x0
+ cmp r1, #0x1
+ beq _02028A30
+ add sp, #0x20
+ mov r0, #0x0
+ pop {r4, pc}
+_02028A30:
+ add r0, sp, #0x0
+ bl FUN_020126B4
+ ldr r0, [r4, #0x0]
+ lsl r0, r0, #0x19
+ lsr r0, r0, #0x19
+ str r0, [sp, #0x10]
+ ldr r0, [r4, #0x0]
+ lsl r0, r0, #0x15
+ lsr r0, r0, #0x1c
+ str r0, [sp, #0x14]
+ ldr r0, [r4, #0x0]
+ lsl r0, r0, #0xd
+ lsr r0, r0, #0x1b
+ str r0, [sp, #0x18]
+ ldr r0, [r4, #0x0]
+ lsl r0, r0, #0x12
+ lsr r0, r0, #0x1d
+ str r0, [sp, #0x1c]
+ add r0, sp, #0x0
+ bl FUN_02012710
+ add r4, r0, #0x0
+ add r0, sp, #0x10
+ bl FUN_02012710
+ ldr r2, [sp, #0x4]
+ sub r0, r4, r0
+ cmp r2, #0xc
+ bne _02028A7E
+ ldr r1, [sp, #0x8]
+ cmp r1, #0x1f
+ bne _02028A7E
+ ldr r1, [sp, #0x14]
+ cmp r1, #0x1
+ bne _02028A7E
+ ldr r1, [sp, #0x18]
+ cmp r1, #0x1
+ beq _02028A94
+_02028A7E:
+ cmp r2, #0x1
+ bne _02028AAC
+ ldr r1, [sp, #0x8]
+ cmp r1, #0x1
+ bne _02028AAC
+ ldr r1, [sp, #0x14]
+ cmp r1, #0xc
+ bne _02028AAC
+ ldr r1, [sp, #0x18]
+ cmp r1, #0x1f
+ bne _02028AAC
+_02028A94:
+ ldr r1, [sp, #0x0]
+ ldr r0, [sp, #0x10]
+ sub r1, r1, r0
+ cmp r1, #0x2
+ bge _02028AA6
+ mov r0, #0x1
+ mvn r0, r0
+ cmp r1, r0
+ bgt _02028ACC
+_02028AA6:
+ add sp, #0x20
+ mov r0, #0x1
+ pop {r4, pc}
+_02028AAC:
+ mov r1, #0x1
+ mvn r1, r1
+ cmp r0, r1
+ ble _02028AB8
+ cmp r0, #0x2
+ blt _02028ABE
+_02028AB8:
+ add sp, #0x20
+ mov r0, #0x1
+ pop {r4, pc}
+_02028ABE:
+ ldr r1, [sp, #0x0]
+ ldr r0, [sp, #0x10]
+ cmp r1, r0
+ beq _02028ACC
+ add sp, #0x20
+ mov r0, #0x1
+ pop {r4, pc}
+_02028ACC:
+ mov r0, #0x0
+ add sp, #0x20
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02028AD4
+FUN_02028AD4: ; 0x02028AD4
+ push {r4, lr}
+ add r4, r1, #0x0
+ cmp r0, #0x0
+ beq _02028B12
+ cmp r2, #0x4
+ bhi _02028B12
+ add r2, r2, r2
+ add r2, pc
+ ldrh r2, [r2, #0x6]
+ lsl r2, r2, #0x10
+ asr r2, r2, #0x10
+ add pc, r2
+_02028AEC: ; jump table (using 16-bit offset)
+ .short _02028AF6 - _02028AEC - 2; case 0
+ .short _02028AFC - _02028AEC - 2; case 1
+ .short _02028B02 - _02028AEC - 2; case 2
+ .short _02028B08 - _02028AEC - 2; case 3
+ .short _02028B0E - _02028AEC - 2; case 4
+_02028AF6:
+ bl FUN_02028B1C
+ b _02028B12
+_02028AFC:
+ bl FUN_02028B5C
+ b _02028B12
+_02028B02:
+ bl FUN_02028BF0
+ b _02028B12
+_02028B08:
+ bl FUN_02028BFC
+ b _02028B12
+_02028B0E:
+ bl FUN_02028C08
+_02028B12:
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02028B1C
+FUN_02028B1C: ; 0x02028B1C
+ push {r4-r5}
+ ldr r3, [r0, #0x0]
+ lsl r2, r3, #0x19
+ lsr r5, r2, #0x19
+ ldr r2, [r1, #0x0]
+ lsl r4, r2, #0x19
+ lsr r4, r4, #0x19
+ cmp r5, r4
+ bne _02028B52
+ lsl r4, r3, #0x15
+ lsr r5, r4, #0x1c
+ lsl r4, r2, #0x15
+ lsr r4, r4, #0x1c
+ cmp r5, r4
+ bne _02028B52
+ lsl r4, r3, #0xd
+ lsr r5, r4, #0x1b
+ lsl r4, r2, #0xd
+ lsr r4, r4, #0x1b
+ cmp r5, r4
+ bne _02028B52
+ lsl r3, r3, #0x12
+ lsl r2, r2, #0x12
+ lsr r3, r3, #0x1d
+ lsr r2, r2, #0x1d
+ cmp r3, r2
+ beq _02028B56
+_02028B52:
+ ldr r1, [r1, #0x0]
+ str r1, [r0, #0x0]
+_02028B56:
+ pop {r4-r5}
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02028B5C
+FUN_02028B5C: ; 0x02028B5C
+ push {r3, lr}
+ ldrb r2, [r1, #0x0]
+ cmp r2, #0x23
+ bhi _02028BEE
+ add r2, r2, r2
+ add r2, pc
+ ldrh r2, [r2, #0x6]
+ lsl r2, r2, #0x10
+ asr r2, r2, #0x10
+ add pc, r2
+_02028B70: ; jump table (using 16-bit offset)
+ .short _02028BEE - _02028B70 - 2; case 0
+ .short _02028BB8 - _02028B70 - 2; case 1
+ .short _02028BB8 - _02028B70 - 2; case 2
+ .short _02028BB8 - _02028B70 - 2; case 3
+ .short _02028BB8 - _02028B70 - 2; case 4
+ .short _02028BB8 - _02028B70 - 2; case 5
+ .short _02028BB8 - _02028B70 - 2; case 6
+ .short _02028BB8 - _02028B70 - 2; case 7
+ .short _02028BB8 - _02028B70 - 2; case 8
+ .short _02028BC0 - _02028B70 - 2; case 9
+ .short _02028BC0 - _02028B70 - 2; case 10
+ .short _02028BC8 - _02028B70 - 2; case 11
+ .short _02028BD0 - _02028B70 - 2; case 12
+ .short _02028BD8 - _02028B70 - 2; case 13
+ .short _02028BD8 - _02028B70 - 2; case 14
+ .short _02028BD8 - _02028B70 - 2; case 15
+ .short _02028BB8 - _02028B70 - 2; case 16
+ .short _02028BB8 - _02028B70 - 2; case 17
+ .short _02028BE0 - _02028B70 - 2; case 18
+ .short _02028BE8 - _02028B70 - 2; case 19
+ .short _02028BE8 - _02028B70 - 2; case 20
+ .short _02028BE8 - _02028B70 - 2; case 21
+ .short _02028BE8 - _02028B70 - 2; case 22
+ .short _02028BE8 - _02028B70 - 2; case 23
+ .short _02028BE8 - _02028B70 - 2; case 24
+ .short _02028BE8 - _02028B70 - 2; case 25
+ .short _02028BE8 - _02028B70 - 2; case 26
+ .short _02028BE8 - _02028B70 - 2; case 27
+ .short _02028BE8 - _02028B70 - 2; case 28
+ .short _02028BE8 - _02028B70 - 2; case 29
+ .short _02028BE8 - _02028B70 - 2; case 30
+ .short _02028BEE - _02028B70 - 2; case 31
+ .short _02028BE8 - _02028B70 - 2; case 32
+ .short _02028BE8 - _02028B70 - 2; case 33
+ .short _02028BB8 - _02028B70 - 2; case 34
+ .short _02028BB8 - _02028B70 - 2; case 35
+_02028BB8:
+ add r0, r0, #0x4
+ bl FUN_02028CE8
+ pop {r3, pc}
+_02028BC0:
+ add r0, r0, #0x4
+ bl FUN_02028D98
+ pop {r3, pc}
+_02028BC8:
+ add r0, r0, #0x4
+ bl FUN_02028D44
+ pop {r3, pc}
+_02028BD0:
+ add r0, r0, #0x4
+ bl FUN_02028D24
+ pop {r3, pc}
+_02028BD8:
+ add r0, r0, #0x4
+ bl FUN_02028DFC
+ pop {r3, pc}
+_02028BE0:
+ add r0, r0, #0x4
+ bl FUN_02028E44
+ pop {r3, pc}
+_02028BE8:
+ add r0, r0, #0x4
+ bl FUN_02028E8C
+_02028BEE:
+ pop {r3, pc}
+
+ thumb_func_start FUN_02028BF0
+FUN_02028BF0: ; 0x02028BF0
+ ldrh r2, [r1, #0x0]
+ strh r2, [r0, #0x14]
+ ldrh r1, [r1, #0x2]
+ strh r1, [r0, #0x16]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02028BFC
+FUN_02028BFC: ; 0x02028BFC
+ ldrh r2, [r1, #0x0]
+ strh r2, [r0, #0x18]
+ ldrh r1, [r1, #0x2]
+ strh r1, [r0, #0x1a]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02028C08
+FUN_02028C08: ; 0x02028C08
+ push {r3-r5, lr}
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ bl FUN_02028CA8
+ ldrb r1, [r4, #0x0]
+ cmp r1, #0x10
+ bhi _02028C6E
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #0x6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_02028C24: ; jump table (using 16-bit offset)
+ .short _02028C6E - _02028C24 - 2; case 0
+ .short _02028C46 - _02028C24 - 2; case 1
+ .short _02028C46 - _02028C24 - 2; case 2
+ .short _02028C46 - _02028C24 - 2; case 3
+ .short _02028C46 - _02028C24 - 2; case 4
+ .short _02028C46 - _02028C24 - 2; case 5
+ .short _02028C4E - _02028C24 - 2; case 6
+ .short _02028C56 - _02028C24 - 2; case 7
+ .short _02028C5E - _02028C24 - 2; case 8
+ .short _02028C56 - _02028C24 - 2; case 9
+ .short _02028C5E - _02028C24 - 2; case 10
+ .short _02028C46 - _02028C24 - 2; case 11
+ .short _02028C5E - _02028C24 - 2; case 12
+ .short _02028C68 - _02028C24 - 2; case 13
+ .short _02028C5E - _02028C24 - 2; case 14
+ .short _02028C56 - _02028C24 - 2; case 15
+ .short _02028C5E - _02028C24 - 2; case 16
+_02028C46:
+ add r1, r4, #0x0
+ bl FUN_02028ED4
+ pop {r3-r5, pc}
+_02028C4E:
+ add r1, r4, #0x0
+ bl FUN_02028F10
+ pop {r3-r5, pc}
+_02028C56:
+ add r1, r4, #0x0
+ bl FUN_02028F2C
+ pop {r3-r5, pc}
+_02028C5E:
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_02028F60
+ pop {r3-r5, pc}
+_02028C68:
+ add r1, r4, #0x0
+ bl FUN_02028F94
+_02028C6E:
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_02028C70
+FUN_02028C70: ; 0x02028C70
+ push {r3-r4}
+ mov r3, #0x0
+ add r4, r0, #0x0
+ mov r1, #0x3f
+_02028C78:
+ ldr r2, [r4, #0x0]
+ tst r2, r1
+ bne _02028C86
+ lsl r1, r3, #0x2
+ add r0, r0, r1
+ pop {r3-r4}
+ bx lr
+_02028C86:
+ add r3, r3, #0x1
+ add r4, r4, #0x4
+ cmp r3, #0x4
+ blo _02028C78
+ mov r3, #0x0
+ add r2, r0, #0x0
+_02028C92:
+ ldr r1, [r2, #0x4]
+ add r3, r3, #0x1
+ stmia r2!, {r1}
+ cmp r3, #0x3
+ blo _02028C92
+ lsl r2, r3, #0x2
+ mov r1, #0x0
+ str r1, [r0, r2]
+ add r0, r0, r2
+ pop {r3-r4}
+ bx lr
+
+ thumb_func_start FUN_02028CA8
+FUN_02028CA8: ; 0x02028CA8
+ push {r4, lr}
+ add r4, r0, #0x0
+ mov r1, #0x0
+ add r2, r4, #0x0
+_02028CB0:
+ ldrb r0, [r2, #0x1c]
+ cmp r0, #0x0
+ bne _02028CC0
+ mov r0, #0x2a
+ add r4, #0x1c
+ mul r0, r1
+ add r0, r4, r0
+ pop {r4, pc}
+_02028CC0:
+ add r1, r1, #0x1
+ add r2, #0x2a
+ cmp r1, #0x2
+ blo _02028CB0
+ add r0, r4, #0x0
+ add r1, r4, #0x0
+ add r0, #0x1c
+ add r1, #0x46
+ mov r2, #0x2a
+ blx memcpy
+ add r4, #0x46
+ add r0, r4, #0x0
+ mov r1, #0x0
+ mov r2, #0x2a
+ blx Call_FillMemWithValue
+ add r0, r4, #0x0
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02028CE8
+FUN_02028CE8: ; 0x02028CE8
+ push {r4, lr}
+ add r4, r1, #0x0
+ mov r2, #0x0
+ add r3, r0, #0x0
+_02028CF0:
+ ldr r1, [r3, #0x0]
+ cmp r1, #0x0
+ beq _02028CFE
+ add r2, r2, #0x1
+ add r3, r3, #0x4
+ cmp r2, #0x4
+ blo _02028CF0
+_02028CFE:
+ cmp r2, #0x0
+ beq _02028D14
+ lsl r2, r2, #0x2
+ add r2, r0, r2
+ sub r2, r2, #0x4
+ ldr r3, [r2, #0x0]
+ mov r2, #0x3f
+ ldrb r1, [r4, #0x0]
+ and r2, r3
+ cmp r1, r2
+ beq _02028D20
+_02028D14:
+ bl FUN_02028C70
+ ldrb r2, [r4, #0x0]
+ mov r1, #0x3f
+ and r1, r2
+ str r1, [r0, #0x0]
+_02028D20:
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02028D24
+FUN_02028D24: ; 0x02028D24
+ push {r4, lr}
+ add r4, r1, #0x0
+ bl FUN_02028C70
+ ldrb r2, [r4, #0x0]
+ mov r1, #0x3f
+ and r1, r2
+ ldrh r2, [r4, #0x2]
+ lsl r3, r2, #0x10
+ ldrh r2, [r4, #0x4]
+ lsl r2, r2, #0x16
+ lsr r2, r2, #0x10
+ orr r2, r3
+ orr r1, r2
+ str r1, [r0, #0x0]
+ pop {r4, pc}
+
+ thumb_func_start FUN_02028D44
+FUN_02028D44: ; 0x02028D44
+ push {r3-r5, lr}
+ add r4, r1, #0x0
+ mov r2, #0x0
+ mov r3, #0x3f
+_02028D4C:
+ lsl r1, r2, #0x2
+ ldr r5, [r0, r1]
+ and r5, r3
+ cmp r5, #0xb
+ bne _02028D72
+ mov r3, #0x0
+ str r3, [r0, r1]
+ cmp r2, #0x3
+ bhs _02028D7C
+_02028D5E:
+ lsl r3, r2, #0x2
+ add r1, r0, r3
+ ldr r1, [r1, #0x4]
+ str r1, [r0, r3]
+ add r1, r2, #0x1
+ lsl r1, r1, #0x10
+ lsr r2, r1, #0x10
+ cmp r2, #0x3
+ blo _02028D5E
+ b _02028D7C
+_02028D72:
+ add r1, r2, #0x1
+ lsl r1, r1, #0x10
+ lsr r2, r1, #0x10
+ cmp r2, #0x4
+ blo _02028D4C
+_02028D7C:
+ bl FUN_02028C70
+ ldrb r2, [r4, #0x0]
+ mov r1, #0x3f
+ and r1, r2
+ ldrh r2, [r4, #0x2]
+ lsl r3, r2, #0x10
+ ldrh r2, [r4, #0x4]
+ lsl r2, r2, #0x16
+ lsr r2, r2, #0x10
+ orr r2, r3
+ orr r1, r2
+ str r1, [r0, #0x0]
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_02028D98
+FUN_02028D98: ; 0x02028D98
+ push {r4-r6, lr}
+ add r4, r1, #0x0
+ mov r6, #0x0
+ mov r1, #0x3f
+_02028DA0:
+ lsl r5, r6, #0x2
+ ldr r3, [r0, r5]
+ add r2, r3, #0x0
+ and r2, r1
+ cmp r2, #0x9
+ bne _02028DD4
+ lsr r3, r3, #0x10
+ lsl r3, r3, #0x10
+ ldrh r2, [r4, #0x2]
+ lsr r3, r3, #0x10
+ cmp r2, r3
+ bne _02028DD4
+ mov r1, #0x0
+ str r1, [r0, r5]
+ cmp r6, #0x3
+ bhs _02028DDE
+_02028DC0:
+ lsl r2, r6, #0x2
+ add r1, r0, r2
+ ldr r1, [r1, #0x4]
+ str r1, [r0, r2]
+ add r1, r6, #0x1
+ lsl r1, r1, #0x10
+ lsr r6, r1, #0x10
+ cmp r6, #0x3
+ blo _02028DC0
+ b _02028DDE
+_02028DD4:
+ add r2, r6, #0x1
+ lsl r2, r2, #0x10
+ lsr r6, r2, #0x10
+ cmp r6, #0x4
+ blo _02028DA0
+_02028DDE:
+ bl FUN_02028C70
+ ldrb r2, [r4, #0x0]
+ mov r1, #0x3f
+ and r1, r2
+ ldrh r2, [r4, #0x2]
+ lsl r3, r2, #0x10
+ ldrh r2, [r4, #0x4]
+ lsl r2, r2, #0x16
+ lsr r2, r2, #0x10
+ orr r2, r3
+ orr r1, r2
+ str r1, [r0, #0x0]
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_02028DFC
+FUN_02028DFC: ; 0x02028DFC
+ push {r4, lr}
+ add r4, r1, #0x0
+ mov r2, #0x0
+ add r3, r0, #0x0
+_02028E04:
+ ldr r1, [r3, #0x0]
+ cmp r1, #0x0
+ beq _02028E12
+ add r2, r2, #0x1
+ add r3, r3, #0x4
+ cmp r2, #0x4
+ blo _02028E04
+_02028E12:
+ cmp r2, #0x0
+ beq _02028E30
+ lsl r1, r2, #0x2
+ add r1, r0, r1
+ sub r1, r1, #0x4
+ ldr r3, [r1, #0x0]
+ mov r1, #0x3f
+ ldrb r2, [r4, #0x0]
+ and r1, r3
+ cmp r2, r1
+ bne _02028E30
+ ldrh r2, [r4, #0x2]
+ lsr r1, r3, #0x10
+ cmp r2, r1
+ beq _02028E42
+_02028E30:
+ bl FUN_02028C70
+ ldrh r1, [r4, #0x2]
+ ldrb r2, [r4, #0x0]
+ lsl r3, r1, #0x10
+ mov r1, #0x3f
+ and r1, r2
+ orr r1, r3
+ str r1, [r0, #0x0]
+_02028E42:
+ pop {r4, pc}
+
+ thumb_func_start FUN_02028E44
+FUN_02028E44: ; 0x02028E44
+ push {r4, lr}
+ add r4, r1, #0x0
+ mov r2, #0x0
+ add r3, r0, #0x0
+_02028E4C:
+ ldr r1, [r3, #0x0]
+ cmp r1, #0x0
+ beq _02028E5A
+ add r2, r2, #0x1
+ add r3, r3, #0x4
+ cmp r2, #0x4
+ blo _02028E4C
+_02028E5A:
+ cmp r2, #0x0
+ beq _02028E78
+ lsl r1, r2, #0x2
+ add r1, r0, r1
+ sub r1, r1, #0x4
+ ldr r3, [r1, #0x0]
+ mov r1, #0x3f
+ ldrb r2, [r4, #0x0]
+ and r1, r3
+ cmp r2, r1
+ bne _02028E78
+ ldrh r2, [r4, #0x6]
+ lsr r1, r3, #0x10
+ cmp r2, r1
+ beq _02028E8A
+_02028E78:
+ bl FUN_02028C70
+ ldrh r1, [r4, #0x6]
+ ldrb r2, [r4, #0x0]
+ lsl r3, r1, #0x10
+ mov r1, #0x3f
+ and r1, r2
+ orr r1, r3
+ str r1, [r0, #0x0]
+_02028E8A:
+ pop {r4, pc}
+
+ thumb_func_start FUN_02028E8C
+FUN_02028E8C: ; 0x02028E8C
+ push {r4, lr}
+ add r4, r1, #0x0
+ mov r2, #0x0
+ add r3, r0, #0x0
+_02028E94:
+ ldr r1, [r3, #0x0]
+ cmp r1, #0x0
+ beq _02028EA2
+ add r2, r2, #0x1
+ add r3, r3, #0x4
+ cmp r2, #0x4
+ blo _02028E94
+_02028EA2:
+ cmp r2, #0x0
+ beq _02028EC0
+ lsl r1, r2, #0x2
+ add r1, r0, r1
+ sub r1, r1, #0x4
+ ldr r3, [r1, #0x0]
+ mov r1, #0x3f
+ ldrb r2, [r4, #0x0]
+ and r1, r3
+ cmp r2, r1
+ bne _02028EC0
+ ldrh r2, [r4, #0x2]
+ lsr r1, r3, #0x10
+ cmp r2, r1
+ beq _02028ED2
+_02028EC0:
+ bl FUN_02028C70
+ ldrh r1, [r4, #0x2]
+ ldrb r2, [r4, #0x0]
+ lsl r3, r1, #0x10
+ mov r1, #0x3f
+ and r1, r2
+ orr r1, r3
+ str r1, [r0, #0x0]
+_02028ED2:
+ pop {r4, pc}
+
+ thumb_func_start FUN_02028ED4
+FUN_02028ED4: ; 0x02028ED4
+ push {r3-r5, lr}
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ ldrb r0, [r4, #0x0]
+ strb r0, [r5, #0x0]
+ ldrb r3, [r4, #0x1]
+ lsl r1, r3, #0x1c
+ lsr r2, r1, #0x1a
+ lsl r1, r3, #0x1b
+ lsr r1, r1, #0x1f
+ lsl r0, r3, #0x1a
+ lsl r1, r1, #0x1
+ orr r1, r2
+ lsr r0, r0, #0x1f
+ orr r0, r1
+ strb r0, [r5, #0x1]
+ add r0, r4, #0x2
+ add r1, r5, #0x2
+ mov r2, #0x8
+ bl FUN_020292D4
+ add r4, #0x12
+ add r5, #0x12
+ add r0, r4, #0x0
+ add r1, r5, #0x0
+ mov r2, #0x8
+ bl FUN_020292D4
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_02028F10
+FUN_02028F10: ; 0x02028F10
+ add r2, r0, #0x0
+ ldrb r0, [r1, #0x0]
+ ldr r3, _02028F28 ; =FUN_020292D4
+ strb r0, [r2, #0x0]
+ ldrb r0, [r1, #0x1]
+ lsl r0, r0, #0x1b
+ lsr r0, r0, #0x1f
+ strb r0, [r2, #0x1]
+ add r0, r1, #0x2
+ add r1, r2, #0x2
+ mov r2, #0x8
+ bx r3
+ .balign 4
+_02028F28: .word FUN_020292D4
+
+ thumb_func_start FUN_02028F2C
+FUN_02028F2C: ; 0x02028F2C
+ push {r3-r5, lr}
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ ldrb r0, [r4, #0x0]
+ mov r2, #0x8
+ strb r0, [r5, #0x0]
+ ldrb r0, [r4, #0x1]
+ lsl r1, r0, #0x1b
+ lsr r1, r1, #0x1f
+ lsl r0, r0, #0x18
+ lsl r1, r1, #0x2
+ lsr r0, r0, #0x1e
+ orr r0, r1
+ strb r0, [r5, #0x1]
+ add r0, r4, #0x2
+ add r1, r5, #0x2
+ bl FUN_020292D4
+ add r4, #0x22
+ add r5, #0x12
+ add r0, r4, #0x0
+ add r1, r5, #0x0
+ mov r2, #0xc
+ bl FUN_020292D4
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_02028F60
+FUN_02028F60: ; 0x02028F60
+ push {r4, lr}
+ add r4, r1, #0x0
+ mov r3, #0x0
+ add r2, r0, #0x0
+_02028F68:
+ ldrb r1, [r2, #0x1c]
+ cmp r1, #0x0
+ beq _02028F76
+ add r3, r3, #0x1
+ add r2, #0x2a
+ cmp r3, #0x2
+ blo _02028F68
+_02028F76:
+ cmp r3, #0x0
+ beq _02028F8A
+ mov r1, #0x2a
+ mul r1, r3
+ add r1, r0, r1
+ sub r1, #0xe
+ ldrb r2, [r4, #0x0]
+ ldrb r1, [r1, #0x0]
+ cmp r2, r1
+ beq _02028F92
+_02028F8A:
+ bl FUN_02028CA8
+ ldrb r1, [r4, #0x0]
+ strb r1, [r0, #0x0]
+_02028F92:
+ pop {r4, pc}
+
+ thumb_func_start FUN_02028F94
+FUN_02028F94: ; 0x02028F94
+ ldrb r2, [r1, #0x0]
+ strb r2, [r0, #0x0]
+ ldrb r1, [r1, #0x1]
+ lsl r1, r1, #0x1c
+ lsr r1, r1, #0x1c
+ strb r1, [r0, #0x1]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02028FA4
+FUN_02028FA4: ; 0x02028FA4
+ push {r3-r5, lr}
+ sub sp, #0x10
+ add r5, r0, #0x0
+ add r0, r1, #0x0
+ mov r1, #0x4
+ bl FUN_02016998
+ add r4, r0, #0x0
+ add r0, sp, #0x0
+ bl FUN_020126B4
+ ldr r2, [r4, #0x0]
+ mov r0, #0x7f
+ bic r2, r0
+ ldr r1, [sp, #0x0]
+ mov r0, #0x7f
+ and r0, r1
+ add r1, r2, #0x0
+ orr r1, r0
+ str r1, [r4, #0x0]
+ add r2, r1, #0x0
+ ldr r1, [sp, #0x4]
+ ldr r0, _02029008 ; =0xFFFFF87F
+ lsl r1, r1, #0x1c
+ and r2, r0
+ lsr r1, r1, #0x15
+ orr r2, r1
+ ldr r1, _0202900C ; =0xFFF83FFF
+ str r2, [r4, #0x0]
+ and r2, r1
+ ldr r1, [sp, #0x8]
+ lsr r0, r0, #0xd
+ lsl r1, r1, #0x1b
+ lsr r1, r1, #0xd
+ orr r2, r1
+ ldr r1, _02029010 ; =0xFFFFC7FF
+ str r2, [r4, #0x0]
+ and r2, r1
+ ldr r1, [sp, #0xc]
+ lsl r1, r1, #0x1d
+ lsr r1, r1, #0x12
+ orr r1, r2
+ and r1, r0
+ lsl r0, r5, #0x13
+ orr r0, r1
+ str r0, [r4, #0x0]
+ add r0, r4, #0x0
+ add sp, #0x10
+ pop {r3-r5, pc}
+ nop
+_02029008: .word 0xFFFFF87F
+_0202900C: .word 0xFFF83FFF
+_02029010: .word 0xFFFFC7FF
+
+ thumb_func_start FUN_02029014
+FUN_02029014: ; 0x02029014
+ push {r3, lr}
+ mov r1, #0x8
+ bl FUN_02016998
+ mov r1, #0x0
+ strb r1, [r0, #0x0]
+ strb r1, [r0, #0x1]
+ strb r1, [r0, #0x2]
+ strb r1, [r0, #0x3]
+ strb r1, [r0, #0x4]
+ strb r1, [r0, #0x5]
+ strb r1, [r0, #0x6]
+ strb r1, [r0, #0x7]
+ pop {r3, pc}
+
+ thumb_func_start FUN_02029030
+FUN_02029030: ; 0x02029030
+ push {r3, lr}
+ bl FUN_02029014
+ mov r1, #0x1
+ strb r1, [r0, #0x0]
+ pop {r3, pc}
+
+ thumb_func_start FUN_0202903C
+FUN_0202903C: ; 0x0202903C
+ push {r3, lr}
+ bl FUN_02029014
+ mov r1, #0x2
+ strb r1, [r0, #0x0]
+ pop {r3, pc}
+
+ thumb_func_start FUN_02029048
+FUN_02029048: ; 0x02029048
+ push {r3, lr}
+ bl FUN_02029014
+ mov r1, #0x3
+ strb r1, [r0, #0x0]
+ pop {r3, pc}
+
+ thumb_func_start FUN_02029054
+FUN_02029054: ; 0x02029054
+ push {r3, lr}
+ bl FUN_02029014
+ mov r1, #0x4
+ strb r1, [r0, #0x0]
+ pop {r3, pc}
+
+ thumb_func_start FUN_02029060
+FUN_02029060: ; 0x02029060
+ push {r3, lr}
+ bl FUN_02029014
+ mov r1, #0x5
+ strb r1, [r0, #0x0]
+ pop {r3, pc}
+
+ thumb_func_start FUN_0202906C
+FUN_0202906C: ; 0x0202906C
+ push {r3, lr}
+ bl FUN_02029014
+ mov r1, #0x6
+ strb r1, [r0, #0x0]
+ pop {r3, pc}
+
+ thumb_func_start FUN_02029078
+FUN_02029078: ; 0x02029078
+ push {r3, lr}
+ bl FUN_02029014
+ mov r1, #0x7
+ strb r1, [r0, #0x0]
+ pop {r3, pc}
+
+ thumb_func_start FUN_02029084
+FUN_02029084: ; 0x02029084
+ push {r3, lr}
+ bl FUN_02029014
+ mov r1, #0x8
+ strb r1, [r0, #0x0]
+ pop {r3, pc}
+
+ thumb_func_start FUN_02029090
+FUN_02029090: ; 0x02029090
+ push {r4, lr}
+ add r4, r0, #0x0
+ add r0, r1, #0x0
+ bl FUN_02029014
+ mov r1, #0x9
+ strb r1, [r0, #0x0]
+ strh r4, [r0, #0x2]
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_020290A4
+FUN_020290A4: ; 0x020290A4
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r0, r2, #0x0
+ add r4, r1, #0x0
+ bl FUN_02029014
+ mov r1, #0xa
+ strb r1, [r0, #0x0]
+ strh r5, [r0, #0x2]
+ strh r4, [r0, #0x4]
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_020290BC
+FUN_020290BC: ; 0x020290BC
+ push {r4, lr}
+ add r4, r0, #0x0
+ add r0, r1, #0x0
+ bl FUN_02029014
+ mov r1, #0xb
+ strb r1, [r0, #0x0]
+ strh r4, [r0, #0x4]
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_020290D0
+FUN_020290D0: ; 0x020290D0
+ push {r4, lr}
+ add r4, r0, #0x0
+ add r0, r1, #0x0
+ bl FUN_02029014
+ mov r1, #0xc
+ strb r1, [r0, #0x0]
+ strh r4, [r0, #0x4]
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_020290E4
+FUN_020290E4: ; 0x020290E4
+ push {r4, lr}
+ add r4, r0, #0x0
+ add r0, r1, #0x0
+ bl FUN_02029014
+ mov r1, #0xd
+ strb r1, [r0, #0x0]
+ strh r4, [r0, #0x2]
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_020290F8
+FUN_020290F8: ; 0x020290F8
+ push {r4, lr}
+ add r4, r0, #0x0
+ add r0, r1, #0x0
+ bl FUN_02029014
+ mov r1, #0xe
+ strb r1, [r0, #0x0]
+ strh r4, [r0, #0x2]
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0202910C
+FUN_0202910C: ; 0x0202910C
+ push {r4, lr}
+ add r4, r0, #0x0
+ add r0, r1, #0x0
+ bl FUN_02029014
+ mov r1, #0xf
+ strb r1, [r0, #0x0]
+ strh r4, [r0, #0x2]
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02029120
+FUN_02029120: ; 0x02029120
+ push {r3, lr}
+ bl FUN_02029014
+ mov r1, #0x10
+ strb r1, [r0, #0x0]
+ pop {r3, pc}
+
+ thumb_func_start FUN_0202912C
+FUN_0202912C: ; 0x0202912C
+ push {r3, lr}
+ bl FUN_02029014
+ mov r1, #0x11
+ strb r1, [r0, #0x0]
+ pop {r3, pc}
+
+ thumb_func_start FUN_02029138
+FUN_02029138: ; 0x02029138
+ push {r4, lr}
+ add r4, r0, #0x0
+ add r0, r1, #0x0
+ bl FUN_02029014
+ mov r1, #0x12
+ strb r1, [r0, #0x0]
+ strh r4, [r0, #0x6]
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0202914C
+FUN_0202914C: ; 0x0202914C
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r0, r2, #0x0
+ add r4, r1, #0x0
+ bl FUN_02029014
+ add r5, #0x13
+ strb r5, [r0, #0x0]
+ strh r4, [r0, #0x2]
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_02029160
+FUN_02029160: ; 0x02029160
+ push {r3, lr}
+ bl FUN_02029014
+ mov r1, #0x22
+ strb r1, [r0, #0x0]
+ pop {r3, pc}
+
+ thumb_func_start FUN_0202916C
+FUN_0202916C: ; 0x0202916C
+ push {r3, lr}
+ bl FUN_02029014
+ mov r1, #0x23
+ strb r1, [r0, #0x0]
+ pop {r3, pc}
+
+ thumb_func_start FUN_02029178
+FUN_02029178: ; 0x02029178
+ push {r3, lr}
+ mov r1, #0x4
+ bl FUN_02016998
+ mov r1, #0x0
+ strb r1, [r0, #0x0]
+ strb r1, [r0, #0x1]
+ strb r1, [r0, #0x2]
+ strb r1, [r0, #0x3]
+ pop {r3, pc}
+
+ thumb_func_start FUN_0202918C
+FUN_0202918C: ; 0x0202918C
+ push {r3-r7, lr}
+ str r0, [sp, #0x0]
+ ldr r0, [sp, #0x18]
+ add r5, r1, #0x0
+ add r6, r2, #0x0
+ add r7, r3, #0x0
+ bl FUN_02029178
+ add r4, r0, #0x0
+ mov r0, #0x1
+ strb r0, [r4, #0x0]
+ strh r5, [r4, #0x2]
+ ldrb r1, [r4, #0x1]
+ mov r0, #0xc0
+ bic r1, r0
+ lsl r0, r6, #0x1e
+ lsr r0, r0, #0x18
+ orr r0, r1
+ strb r0, [r4, #0x1]
+ ldrb r1, [r4, #0x1]
+ mov r0, #0x3c
+ bic r1, r0
+ lsl r0, r7, #0x1c
+ lsr r0, r0, #0x1a
+ orr r0, r1
+ strb r0, [r4, #0x1]
+ ldr r0, [sp, #0x0]
+ bl FUN_02029EC0
+ mov r1, #0xa
+ blx _s32_div_f
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ beq _020291DA
+ cmp r0, #0x2
+ beq _020291DA
+ cmp r0, #0x4
+ bne _020291E4
+_020291DA:
+ ldrb r1, [r4, #0x1]
+ mov r0, #0x3
+ bic r1, r0
+ strb r1, [r4, #0x1]
+ b _02029206
+_020291E4:
+ cmp r0, #0x1
+ beq _020291EC
+ cmp r0, #0x3
+ bne _020291FA
+_020291EC:
+ ldrb r1, [r4, #0x1]
+ mov r0, #0x3
+ bic r1, r0
+ mov r0, #0x1
+ orr r0, r1
+ strb r0, [r4, #0x1]
+ b _02029206
+_020291FA:
+ ldrb r1, [r4, #0x1]
+ mov r0, #0x3
+ bic r1, r0
+ mov r0, #0x2
+ orr r0, r1
+ strb r0, [r4, #0x1]
+_02029206:
+ add r0, r4, #0x0
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_0202920C
+FUN_0202920C: ; 0x0202920C
+ push {r3-r7, lr}
+ str r0, [sp, #0x0]
+ ldr r0, [sp, #0x18]
+ add r5, r1, #0x0
+ add r6, r2, #0x0
+ add r7, r3, #0x0
+ bl FUN_02029178
+ add r4, r0, #0x0
+ mov r0, #0x2
+ strb r0, [r4, #0x0]
+ strh r5, [r4, #0x2]
+ ldrb r1, [r4, #0x1]
+ mov r0, #0xc0
+ bic r1, r0
+ lsl r0, r6, #0x1e
+ lsr r0, r0, #0x18
+ orr r0, r1
+ strb r0, [r4, #0x1]
+ ldrb r1, [r4, #0x1]
+ mov r0, #0x3c
+ bic r1, r0
+ lsl r0, r7, #0x1c
+ lsr r0, r0, #0x1a
+ orr r0, r1
+ strb r0, [r4, #0x1]
+ ldr r0, [sp, #0x0]
+ bl FUN_02029EC0
+ mov r1, #0xa
+ blx _s32_div_f
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ cmp r0, #0x1
+ beq _0202925C
+ cmp r0, #0x3
+ beq _0202925C
+ cmp r0, #0x5
+ bne _02029266
+_0202925C:
+ ldrb r1, [r4, #0x1]
+ mov r0, #0x3
+ bic r1, r0
+ strb r1, [r4, #0x1]
+ b _02029288
+_02029266:
+ cmp r0, #0x2
+ beq _0202926E
+ cmp r0, #0x4
+ bne _0202927C
+_0202926E:
+ ldrb r1, [r4, #0x1]
+ mov r0, #0x3
+ bic r1, r0
+ mov r0, #0x1
+ orr r0, r1
+ strb r0, [r4, #0x1]
+ b _02029288
+_0202927C:
+ ldrb r1, [r4, #0x1]
+ mov r0, #0x3
+ bic r1, r0
+ mov r0, #0x2
+ orr r0, r1
+ strb r0, [r4, #0x1]
+_02029288:
+ add r0, r4, #0x0
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_0202928C
+FUN_0202928C: ; 0x0202928C
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ add r0, r2, #0x0
+ mov r1, #0x4
+ bl FUN_02016998
+ ldrh r2, [r0, #0x0]
+ mov r1, #0x1
+ bic r2, r1
+ mov r1, #0x1
+ orr r1, r2
+ strh r1, [r0, #0x0]
+ strh r5, [r0, #0x2]
+ ldrh r2, [r0, #0x0]
+ ldr r1, _020292B8 ; =0xFFFF0001
+ and r2, r1
+ lsl r1, r4, #0x11
+ lsr r1, r1, #0x10
+ orr r1, r2
+ strh r1, [r0, #0x0]
+ pop {r3-r5, pc}
+ .balign 4
+_020292B8: .word 0xFFFF0001
+
+ thumb_func_start FUN_020292BC
+FUN_020292BC: ; 0x020292BC
+ push {r4, lr}
+ mov r1, #0x3a
+ bl FUN_02016998
+ mov r1, #0x0
+ mov r2, #0x3a
+ add r4, r0, #0x0
+ blx Call_FillMemWithValue
+ add r0, r4, #0x0
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_020292D4
+FUN_020292D4: ; 0x020292D4
+ push {r4-r5}
+ mov r4, #0x0
+ cmp r2, #0x0
+ bls _020292EA
+ ldr r3, _02029308 ; =0x0000FFFF
+ add r5, r1, #0x0
+_020292E0:
+ add r4, r4, #0x1
+ strh r3, [r5, #0x0]
+ add r5, r5, #0x2
+ cmp r4, r2
+ blo _020292E0
+_020292EA:
+ mov r5, #0x0
+ cmp r2, #0x0
+ bls _02029304
+ ldr r3, _02029308 ; =0x0000FFFF
+_020292F2:
+ ldrh r4, [r0, #0x0]
+ cmp r4, r3
+ beq _02029304
+ add r5, r5, #0x1
+ strh r4, [r1, #0x0]
+ add r0, r0, #0x2
+ add r1, r1, #0x2
+ cmp r5, r2
+ blo _020292F2
+_02029304:
+ pop {r4-r5}
+ bx lr
+ .balign 4
+_02029308: .word 0x0000FFFF
+
+ thumb_func_start FUN_0202930C
+FUN_0202930C: ; 0x0202930C
+ push {r3-r7, lr}
+ add r7, r0, #0x0
+ add r0, r3, #0x0
+ add r5, r1, #0x0
+ add r6, r2, #0x0
+ bl FUN_020292BC
+ add r4, r0, #0x0
+ mov r0, #0x1
+ strb r0, [r4, #0x0]
+ ldrb r0, [r4, #0x1]
+ mov r1, #0xf
+ mov r2, #0x8
+ bic r0, r1
+ mov r1, #0xf
+ and r1, r6
+ orr r0, r1
+ strb r0, [r4, #0x1]
+ ldrb r1, [r4, #0x1]
+ mov r0, #0x10
+ bic r1, r0
+ lsl r0, r5, #0x1f
+ lsr r0, r0, #0x1b
+ orr r0, r1
+ strb r0, [r4, #0x1]
+ add r0, r7, #0x0
+ add r1, r4, #0x2
+ bl FUN_020292D4
+ add r0, r4, #0x0
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_0202934C
+FUN_0202934C: ; 0x0202934C
+ push {r3-r7, lr}
+ add r7, r0, #0x0
+ add r0, r3, #0x0
+ add r5, r1, #0x0
+ add r6, r2, #0x0
+ bl FUN_020292BC
+ add r4, r0, #0x0
+ mov r0, #0x2
+ strb r0, [r4, #0x0]
+ ldrb r0, [r4, #0x1]
+ mov r1, #0xf
+ mov r2, #0x8
+ bic r0, r1
+ mov r1, #0xf
+ and r1, r6
+ orr r0, r1
+ strb r0, [r4, #0x1]
+ ldrb r1, [r4, #0x1]
+ mov r0, #0x10
+ bic r1, r0
+ lsl r0, r5, #0x1f
+ lsr r0, r0, #0x1b
+ orr r0, r1
+ strb r0, [r4, #0x1]
+ add r0, r7, #0x0
+ add r1, r4, #0x2
+ bl FUN_020292D4
+ add r0, r4, #0x0
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_0202938C
+FUN_0202938C: ; 0x0202938C
+ push {r3-r7, lr}
+ add r7, r0, #0x0
+ ldr r0, [sp, #0x1c]
+ str r1, [sp, #0x0]
+ add r5, r2, #0x0
+ add r6, r3, #0x0
+ bl FUN_020292BC
+ add r4, r0, #0x0
+ mov r0, #0x3
+ strb r0, [r4, #0x0]
+ ldrb r0, [r4, #0x1]
+ mov r1, #0xf
+ bic r0, r1
+ add r1, sp, #0x8
+ ldrb r2, [r1, #0x10]
+ mov r1, #0xf
+ and r1, r2
+ orr r0, r1
+ strb r0, [r4, #0x1]
+ ldrb r0, [r4, #0x1]
+ mov r1, #0x10
+ mov r2, #0x8
+ bic r0, r1
+ lsl r1, r5, #0x1f
+ lsr r1, r1, #0x1b
+ orr r0, r1
+ strb r0, [r4, #0x1]
+ ldrb r1, [r4, #0x1]
+ mov r0, #0x20
+ bic r1, r0
+ lsl r0, r6, #0x1f
+ lsr r0, r0, #0x1a
+ orr r0, r1
+ strb r0, [r4, #0x1]
+ add r0, r7, #0x0
+ add r1, r4, #0x2
+ bl FUN_020292D4
+ add r1, r4, #0x0
+ ldr r0, [sp, #0x0]
+ add r1, #0x12
+ mov r2, #0x8
+ bl FUN_020292D4
+ add r0, r4, #0x0
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_020293EC
+FUN_020293EC: ; 0x020293EC
+ push {r3-r7, lr}
+ add r7, r0, #0x0
+ add r0, r3, #0x0
+ add r5, r1, #0x0
+ add r6, r2, #0x0
+ bl FUN_020292BC
+ add r4, r0, #0x0
+ mov r0, #0x4
+ strb r0, [r4, #0x0]
+ ldrb r0, [r4, #0x1]
+ mov r1, #0xf
+ mov r2, #0x8
+ bic r0, r1
+ mov r1, #0xf
+ and r1, r6
+ orr r0, r1
+ strb r0, [r4, #0x1]
+ ldrb r1, [r4, #0x1]
+ mov r0, #0x10
+ bic r1, r0
+ lsl r0, r5, #0x1f
+ lsr r0, r0, #0x1b
+ orr r0, r1
+ strb r0, [r4, #0x1]
+ add r0, r7, #0x0
+ add r1, r4, #0x2
+ bl FUN_020292D4
+ add r0, r4, #0x0
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_0202942C
+FUN_0202942C: ; 0x0202942C
+ push {r4-r6, lr}
+ add r6, r0, #0x0
+ add r0, r2, #0x0
+ add r5, r1, #0x0
+ bl FUN_020292BC
+ add r4, r0, #0x0
+ mov r0, #0x6
+ strb r0, [r4, #0x0]
+ ldrb r1, [r4, #0x1]
+ mov r0, #0x10
+ mov r2, #0x8
+ bic r1, r0
+ lsl r0, r5, #0x1f
+ lsr r0, r0, #0x1b
+ orr r0, r1
+ strb r0, [r4, #0x1]
+ add r0, r6, #0x0
+ add r1, r4, #0x2
+ bl FUN_020292D4
+ add r0, r4, #0x0
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_0202945C
+FUN_0202945C: ; 0x0202945C
+ push {r3-r7, lr}
+ add r7, r0, #0x0
+ ldr r0, [sp, #0x18]
+ add r5, r1, #0x0
+ str r2, [sp, #0x0]
+ add r6, r3, #0x0
+ bl FUN_020292BC
+ add r4, r0, #0x0
+ mov r0, #0x7
+ strb r0, [r4, #0x0]
+ ldrb r0, [r4, #0x1]
+ mov r1, #0x10
+ mov r2, #0x8
+ bic r0, r1
+ lsl r1, r5, #0x1f
+ lsr r1, r1, #0x1b
+ orr r0, r1
+ strb r0, [r4, #0x1]
+ ldrb r1, [r4, #0x1]
+ mov r0, #0xc0
+ bic r1, r0
+ lsl r0, r6, #0x1e
+ lsr r0, r0, #0x18
+ orr r0, r1
+ strb r0, [r4, #0x1]
+ add r0, r7, #0x0
+ add r1, r4, #0x2
+ bl FUN_020292D4
+ add r1, r4, #0x0
+ ldr r0, [sp, #0x0]
+ add r1, #0x22
+ mov r2, #0xc
+ bl FUN_020292D4
+ add r0, r4, #0x0
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_020294A8
+FUN_020294A8: ; 0x020294A8
+ push {r3, lr}
+ bl FUN_020292BC
+ mov r1, #0x8
+ strb r1, [r0, #0x0]
+ pop {r3, pc}
+
+ thumb_func_start FUN_020294B4
+FUN_020294B4: ; 0x020294B4
+ push {r3-r7, lr}
+ add r7, r0, #0x0
+ add r0, r3, #0x0
+ add r5, r1, #0x0
+ add r6, r2, #0x0
+ bl FUN_020292BC
+ add r4, r0, #0x0
+ mov r0, #0xb
+ strb r0, [r4, #0x0]
+ ldrb r0, [r4, #0x1]
+ mov r1, #0xf
+ mov r2, #0x8
+ bic r0, r1
+ mov r1, #0xf
+ and r1, r6
+ orr r0, r1
+ strb r0, [r4, #0x1]
+ ldrb r1, [r4, #0x1]
+ mov r0, #0x10
+ bic r1, r0
+ lsl r0, r5, #0x1f
+ lsr r0, r0, #0x1b
+ orr r0, r1
+ strb r0, [r4, #0x1]
+ add r0, r7, #0x0
+ add r1, r4, #0x2
+ bl FUN_020292D4
+ add r0, r4, #0x0
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_020294F4
+FUN_020294F4: ; 0x020294F4
+ push {r3, lr}
+ bl FUN_020292BC
+ mov r1, #0xc
+ strb r1, [r0, #0x0]
+ pop {r3, pc}
+
+ thumb_func_start FUN_02029500
+FUN_02029500: ; 0x02029500
+ push {r4, lr}
+ add r4, r0, #0x0
+ add r0, r1, #0x0
+ bl FUN_020292BC
+ mov r1, #0xd
+ strb r1, [r0, #0x0]
+ ldrb r2, [r0, #0x1]
+ mov r1, #0xf
+ bic r2, r1
+ mov r1, #0xf
+ and r1, r4
+ orr r1, r2
+ strb r1, [r0, #0x1]
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02029520
+FUN_02029520: ; 0x02029520
+ push {r3, lr}
+ bl FUN_020292BC
+ mov r1, #0xe
+ strb r1, [r0, #0x0]
+ pop {r3, pc}
+
+ thumb_func_start FUN_0202952C
+FUN_0202952C: ; 0x0202952C
+ push {r3-r7, lr}
+ add r7, r0, #0x0
+ ldr r0, [sp, #0x18]
+ add r5, r1, #0x0
+ str r2, [sp, #0x0]
+ add r6, r3, #0x0
+ bl FUN_020292BC
+ add r4, r0, #0x0
+ mov r0, #0xf
+ strb r0, [r4, #0x0]
+ ldrb r0, [r4, #0x1]
+ mov r1, #0x10
+ mov r2, #0x8
+ bic r0, r1
+ lsl r1, r5, #0x1f
+ lsr r1, r1, #0x1b
+ orr r0, r1
+ strb r0, [r4, #0x1]
+ ldrb r1, [r4, #0x1]
+ mov r0, #0xc0
+ bic r1, r0
+ lsl r0, r6, #0x1e
+ lsr r0, r0, #0x18
+ orr r0, r1
+ strb r0, [r4, #0x1]
+ add r0, r7, #0x0
+ add r1, r4, #0x2
+ bl FUN_020292D4
+ add r1, r4, #0x0
+ ldr r0, [sp, #0x0]
+ add r1, #0x22
+ mov r2, #0xc
+ bl FUN_020292D4
+ add r0, r4, #0x0
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_02029578
+FUN_02029578: ; 0x02029578
+ push {r3, lr}
+ bl FUN_020292BC
+ mov r1, #0x10
+ strb r1, [r0, #0x0]
+ pop {r3, pc}
+
+ thumb_func_start FUN_02029584
+FUN_02029584: ; 0x02029584
+ push {r3, lr}
+ cmp r2, #0x4
+ bhi _020295DA
+ add r2, r2, r2
+ add r2, pc
+ ldrh r2, [r2, #0x6]
+ lsl r2, r2, #0x10
+ asr r2, r2, #0x10
+ add pc, r2
+_02029596: ; jump table (using 16-bit offset)
+ .short _020295A0 - _02029596 - 2; case 0
+ .short _020295AC - _02029596 - 2; case 1
+ .short _020295B8 - _02029596 - 2; case 2
+ .short _020295C4 - _02029596 - 2; case 3
+ .short _020295D0 - _02029596 - 2; case 4
+_020295A0:
+ mov r2, #0x70
+ mul r2, r3
+ add r0, r0, r2
+ bl FUN_020295DC
+ pop {r3, pc}
+_020295AC:
+ mov r2, #0x70
+ mul r2, r3
+ add r0, r0, r2
+ bl FUN_020295E4
+ pop {r3, pc}
+_020295B8:
+ mov r2, #0x70
+ mul r2, r3
+ add r0, r0, r2
+ bl FUN_02029690
+ pop {r3, pc}
+_020295C4:
+ mov r2, #0x70
+ mul r2, r3
+ add r0, r0, r2
+ bl FUN_0202969C
+ pop {r3, pc}
+_020295D0:
+ mov r2, #0x70
+ mul r2, r3
+ add r0, r0, r2
+ bl FUN_020296A8
+_020295DA:
+ pop {r3, pc}
+
+ thumb_func_start FUN_020295DC
+FUN_020295DC: ; 0x020295DC
+ ldr r0, [r0, #0x0]
+ str r0, [r1, #0x0]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_020295E4
+FUN_020295E4: ; 0x020295E4
+ push {r3-r7, lr}
+ mov r6, #0x0
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ add r7, r6, #0x0
+_020295EE:
+ strb r7, [r4, #0x0]
+ strb r7, [r4, #0x1]
+ strb r7, [r4, #0x2]
+ strb r7, [r4, #0x3]
+ strb r7, [r4, #0x4]
+ strb r7, [r4, #0x5]
+ strb r7, [r4, #0x6]
+ strb r7, [r4, #0x7]
+ ldr r0, [r5, #0x4]
+ mov r1, #0x3f
+ and r1, r0
+ cmp r1, #0x23
+ bhi _02029682
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #0x6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_02029614: ; jump table (using 16-bit offset)
+ .short _02029682 - _02029614 - 2; case 0
+ .short _0202965C - _02029614 - 2; case 1
+ .short _0202965C - _02029614 - 2; case 2
+ .short _0202965C - _02029614 - 2; case 3
+ .short _0202965C - _02029614 - 2; case 4
+ .short _0202965C - _02029614 - 2; case 5
+ .short _0202965C - _02029614 - 2; case 6
+ .short _0202965C - _02029614 - 2; case 7
+ .short _0202965C - _02029614 - 2; case 8
+ .short _02029664 - _02029614 - 2; case 9
+ .short _02029664 - _02029614 - 2; case 10
+ .short _02029664 - _02029614 - 2; case 11
+ .short _02029664 - _02029614 - 2; case 12
+ .short _0202966C - _02029614 - 2; case 13
+ .short _0202966C - _02029614 - 2; case 14
+ .short _0202966C - _02029614 - 2; case 15
+ .short _0202965C - _02029614 - 2; case 16
+ .short _0202965C - _02029614 - 2; case 17
+ .short _02029674 - _02029614 - 2; case 18
+ .short _0202967C - _02029614 - 2; case 19
+ .short _0202967C - _02029614 - 2; case 20
+ .short _0202967C - _02029614 - 2; case 21
+ .short _0202967C - _02029614 - 2; case 22
+ .short _0202967C - _02029614 - 2; case 23
+ .short _0202967C - _02029614 - 2; case 24
+ .short _0202967C - _02029614 - 2; case 25
+ .short _0202967C - _02029614 - 2; case 26
+ .short _0202967C - _02029614 - 2; case 27
+ .short _0202967C - _02029614 - 2; case 28
+ .short _0202967C - _02029614 - 2; case 29
+ .short _0202967C - _02029614 - 2; case 30
+ .short _02029682 - _02029614 - 2; case 31
+ .short _0202967C - _02029614 - 2; case 32
+ .short _0202967C - _02029614 - 2; case 33
+ .short _0202965C - _02029614 - 2; case 34
+ .short _0202965C - _02029614 - 2; case 35
+_0202965C:
+ add r1, r4, #0x0
+ bl FUN_02029730
+ b _02029682
+_02029664:
+ add r1, r4, #0x0
+ bl FUN_02029738
+ b _02029682
+_0202966C:
+ add r1, r4, #0x0
+ bl FUN_02029750
+ b _02029682
+_02029674:
+ add r1, r4, #0x0
+ bl FUN_0202975C
+ b _02029682
+_0202967C:
+ add r1, r4, #0x0
+ bl FUN_02029768
+_02029682:
+ add r6, r6, #0x1
+ add r4, #0x8
+ add r5, r5, #0x4
+ cmp r6, #0x4
+ blo _020295EE
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_02029690
+FUN_02029690: ; 0x02029690
+ ldrh r2, [r0, #0x14]
+ strh r2, [r1, #0x0]
+ ldrh r0, [r0, #0x16]
+ strh r0, [r1, #0x2]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_0202969C
+FUN_0202969C: ; 0x0202969C
+ ldrh r2, [r0, #0x18]
+ strh r2, [r1, #0x0]
+ ldrh r0, [r0, #0x1a]
+ strh r0, [r1, #0x2]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_020296A8
+FUN_020296A8: ; 0x020296A8
+ push {r3-r7, lr}
+ add r6, r0, #0x0
+ add r5, r6, #0x0
+ add r4, r1, #0x0
+ mov r7, #0x0
+ add r5, #0x1c
+_020296B4:
+ add r0, r4, #0x0
+ mov r1, #0x0
+ mov r2, #0x3a
+ blx Call_FillMemWithValue
+ ldrb r0, [r6, #0x1c]
+ cmp r0, #0x10
+ bhi _02029722
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_020296D0: ; jump table (using 16-bit offset)
+ .short _02029722 - _020296D0 - 2; case 0
+ .short _020296F2 - _020296D0 - 2; case 1
+ .short _020296F2 - _020296D0 - 2; case 2
+ .short _020296F2 - _020296D0 - 2; case 3
+ .short _020296F2 - _020296D0 - 2; case 4
+ .short _020296F2 - _020296D0 - 2; case 5
+ .short _020296FC - _020296D0 - 2; case 6
+ .short _02029706 - _020296D0 - 2; case 7
+ .short _02029710 - _020296D0 - 2; case 8
+ .short _02029706 - _020296D0 - 2; case 9
+ .short _02029710 - _020296D0 - 2; case 10
+ .short _020296F2 - _020296D0 - 2; case 11
+ .short _02029710 - _020296D0 - 2; case 12
+ .short _0202971A - _020296D0 - 2; case 13
+ .short _02029710 - _020296D0 - 2; case 14
+ .short _02029706 - _020296D0 - 2; case 15
+ .short _02029710 - _020296D0 - 2; case 16
+_020296F2:
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_02029774
+ b _02029722
+_020296FC:
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_020297E4
+ b _02029722
+_02029706:
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_02029808
+ b _02029722
+_02029710:
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_02029860
+ b _02029722
+_0202971A:
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_02029868
+_02029722:
+ add r7, r7, #0x1
+ add r4, #0x3a
+ add r6, #0x2a
+ add r5, #0x2a
+ cmp r7, #0x2
+ blo _020296B4
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_02029730
+FUN_02029730: ; 0x02029730
+ mov r2, #0x3f
+ and r0, r2
+ strb r0, [r1, #0x0]
+ bx lr
+
+ thumb_func_start FUN_02029738
+FUN_02029738: ; 0x02029738
+ mov r2, #0x3f
+ and r2, r0
+ strb r2, [r1, #0x0]
+ lsr r3, r0, #0x6
+ ldr r2, _0202974C ; =0x000003FF
+ lsr r0, r0, #0x10
+ and r2, r3
+ strh r2, [r1, #0x4]
+ strh r0, [r1, #0x2]
+ bx lr
+ .balign 4
+_0202974C: .word 0x000003FF
+
+ thumb_func_start FUN_02029750
+FUN_02029750: ; 0x02029750
+ mov r2, #0x3f
+ and r2, r0
+ strb r2, [r1, #0x0]
+ lsr r0, r0, #0x10
+ strh r0, [r1, #0x2]
+ bx lr
+
+ thumb_func_start FUN_0202975C
+FUN_0202975C: ; 0x0202975C
+ mov r2, #0x3f
+ and r2, r0
+ strb r2, [r1, #0x0]
+ lsr r0, r0, #0x10
+ strh r0, [r1, #0x6]
+ bx lr
+
+ thumb_func_start FUN_02029768
+FUN_02029768: ; 0x02029768
+ mov r2, #0x3f
+ and r2, r0
+ strb r2, [r1, #0x0]
+ lsr r0, r0, #0x10
+ strh r0, [r1, #0x2]
+ bx lr
+
+ thumb_func_start FUN_02029774
+FUN_02029774: ; 0x02029774
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ ldrb r0, [r5, #0x0]
+ add r4, r1, #0x0
+ mov r1, #0xf
+ strb r0, [r4, #0x0]
+ ldrb r0, [r4, #0x1]
+ bic r0, r1
+ ldrb r1, [r5, #0x1]
+ asr r2, r1, #0x2
+ mov r1, #0x1f
+ and r1, r2
+ lsl r1, r1, #0x18
+ lsr r2, r1, #0x18
+ mov r1, #0xf
+ and r1, r2
+ orr r0, r1
+ strb r0, [r4, #0x1]
+ ldrb r0, [r4, #0x1]
+ mov r1, #0x10
+ mov r2, #0x1
+ bic r0, r1
+ ldrb r1, [r5, #0x1]
+ asr r1, r1, #0x1
+ and r1, r2
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ lsl r1, r1, #0x1f
+ lsr r1, r1, #0x1b
+ orr r0, r1
+ strb r0, [r4, #0x1]
+ ldrb r0, [r4, #0x1]
+ mov r1, #0x20
+ bic r0, r1
+ ldrb r1, [r5, #0x1]
+ and r1, r2
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ lsl r1, r1, #0x1f
+ lsr r1, r1, #0x1a
+ orr r0, r1
+ strb r0, [r4, #0x1]
+ add r0, r5, #0x2
+ add r1, r4, #0x2
+ mov r2, #0x8
+ bl FUN_020292D4
+ add r5, #0x12
+ add r4, #0x12
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ mov r2, #0x8
+ bl FUN_020292D4
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_020297E4
+FUN_020297E4: ; 0x020297E4
+ ldrb r2, [r0, #0x0]
+ strb r2, [r1, #0x0]
+ ldrb r3, [r1, #0x1]
+ mov r2, #0x10
+ bic r3, r2
+ ldrb r2, [r0, #0x1]
+ add r0, r0, #0x2
+ lsl r2, r2, #0x1f
+ lsr r2, r2, #0x1b
+ orr r2, r3
+ strb r2, [r1, #0x1]
+ ldr r3, _02029804 ; =FUN_020292D4
+ add r1, r1, #0x2
+ mov r2, #0x8
+ bx r3
+ nop
+_02029804: .word FUN_020292D4
+
+ thumb_func_start FUN_02029808
+FUN_02029808: ; 0x02029808
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ ldrb r0, [r5, #0x0]
+ add r4, r1, #0x0
+ mov r1, #0x10
+ strb r0, [r4, #0x0]
+ ldrb r0, [r4, #0x1]
+ bic r0, r1
+ ldrb r1, [r5, #0x1]
+ asr r2, r1, #0x2
+ mov r1, #0x1
+ and r1, r2
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ lsl r1, r1, #0x1f
+ lsr r1, r1, #0x1b
+ orr r0, r1
+ strb r0, [r4, #0x1]
+ ldrb r0, [r4, #0x1]
+ mov r1, #0xc0
+ ldrb r2, [r5, #0x1]
+ bic r0, r1
+ mov r1, #0x3
+ and r1, r2
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ lsl r1, r1, #0x1e
+ lsr r1, r1, #0x18
+ orr r0, r1
+ strb r0, [r4, #0x1]
+ add r0, r5, #0x2
+ add r1, r4, #0x2
+ mov r2, #0x8
+ bl FUN_020292D4
+ add r5, #0x12
+ add r4, #0x22
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ mov r2, #0xc
+ bl FUN_020292D4
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_02029860
+FUN_02029860: ; 0x02029860
+ ldrb r0, [r0, #0x0]
+ strb r0, [r1, #0x0]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02029868
+FUN_02029868: ; 0x02029868
+ ldrb r2, [r0, #0x0]
+ strb r2, [r1, #0x0]
+ ldrb r3, [r1, #0x1]
+ mov r2, #0xf
+ bic r3, r2
+ ldrb r2, [r0, #0x1]
+ mov r0, #0xf
+ and r0, r2
+ orr r0, r3
+ strb r0, [r1, #0x1]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02029880
+FUN_02029880: ; 0x02029880
+ push {r4-r7, lr}
+ sub sp, #0xc
+ add r7, r0, #0x0
+ mov r0, #0x0
+ add r4, r3, #0x0
+ str r0, [sp, #0x4]
+ add r0, r4, #0x0
+ str r1, [sp, #0x0]
+ add r5, r2, #0x0
+ ldr r6, [sp, #0x20]
+ bl FUN_02034930
+ cmp r0, #0x1
+ bne _020298BA
+ add r0, r5, #0x0
+ bl FUN_02034964
+ cmp r0, #0x1
+ bne _02029942
+ add r0, r4, #0x0
+ bl FUN_02034824
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ add r1, r6, #0x0
+ bl FUN_020290F8
+ str r0, [sp, #0x4]
+ b _02029942
+_020298BA:
+ add r0, r4, #0x0
+ bl FUN_02034944
+ cmp r0, #0x1
+ bne _0202991A
+ add r0, r5, #0x0
+ bl FUN_02034964
+ cmp r0, #0x1
+ bne _02029942
+ ldr r0, _02029958 ; =0x0000019E
+ cmp r4, r0
+ bne _020298DE
+ add r0, r6, #0x0
+ bl FUN_02029030
+ str r0, [sp, #0x4]
+ b _02029942
+_020298DE:
+ add r0, #0x8
+ cmp r4, r0
+ bne _020298EE
+ add r0, r6, #0x0
+ bl FUN_0202903C
+ str r0, [sp, #0x4]
+ b _02029942
+_020298EE:
+ add r0, r4, #0x0
+ bl FUN_02034824
+ add r7, r0, #0x0
+ lsl r0, r7, #0x10
+ lsr r0, r0, #0x10
+ ldr r5, _0202995C ; =0x020EE9A4
+ mov r4, #0x0
+ str r0, [sp, #0x8]
+_02029900:
+ ldr r0, [r5, #0x0]
+ cmp r7, r0
+ bne _02029910
+ ldr r0, [sp, #0x8]
+ add r1, r6, #0x0
+ bl FUN_0202910C
+ str r0, [sp, #0x4]
+_02029910:
+ add r4, r4, #0x1
+ add r5, #0x8
+ cmp r4, #0x1b
+ blo _02029900
+ b _02029942
+_0202991A:
+ add r0, r4, #0x0
+ bl FUN_02034964
+ cmp r0, #0x1
+ bne _02029942
+ add r0, r5, #0x0
+ bl FUN_02034944
+ cmp r0, #0x1
+ bne _02029942
+ add r0, r7, #0x0
+ add r1, r5, #0x0
+ bl FUN_02029988
+ cmp r0, #0xff
+ beq _02029942
+ add r1, r6, #0x0
+ bl FUN_02029090
+ str r0, [sp, #0x4]
+_02029942:
+ ldr r0, [sp, #0x4]
+ cmp r0, #0x0
+ beq _02029952
+ ldr r0, [sp, #0x0]
+ ldr r1, [sp, #0x4]
+ mov r2, #0x1
+ bl FUN_02028AD4
+_02029952:
+ add sp, #0xc
+ pop {r4-r7, pc}
+ nop
+_02029958: .word 0x0000019E
+_0202995C: .word 0x020EE9A4
+
+ thumb_func_start FUN_02029960
+FUN_02029960: ; 0x02029960
+ ldr r3, _02029980 ; =0x020EE9A4
+ mov r2, #0x0
+_02029964:
+ ldr r1, [r3, #0x0]
+ cmp r0, r1
+ bne _02029972
+ ldr r0, _02029984 ; =0x020EE9A8
+ lsl r1, r2, #0x3
+ ldr r0, [r0, r1]
+ bx lr
+_02029972:
+ add r2, r2, #0x1
+ add r3, #0x8
+ cmp r2, #0x1b
+ blo _02029964
+ mov r0, #0x0
+ bx lr
+ nop
+_02029980: .word 0x020EE9A4
+_02029984: .word 0x020EE9A8
+
+ thumb_func_start FUN_02029988
+FUN_02029988: ; 0x02029988
+ push {r3-r5, lr}
+ ldr r2, _020299B8 ; =0x020EE964
+ mov r4, #0x0
+_0202998E:
+ lsl r3, r4, #0x3
+ add r5, r2, r3
+ ldrh r5, [r5, #0x4]
+ cmp r1, r5
+ bne _020299A8
+ ldr r1, _020299BC ; =0x020EE96A
+ ldrh r1, [r1, r3]
+ bl FUN_020239D0
+ cmp r0, #0x0
+ bne _020299B2
+ add r0, r4, #0x0
+ pop {r3-r5, pc}
+_020299A8:
+ add r3, r4, #0x1
+ lsl r3, r3, #0x18
+ lsr r4, r3, #0x18
+ cmp r4, #0x8
+ blo _0202998E
+_020299B2:
+ mov r0, #0xff
+ pop {r3-r5, pc}
+ nop
+_020299B8: .word 0x020EE964
+_020299BC: .word 0x020EE96A
+
+ thumb_func_start FUN_020299C0
+FUN_020299C0: ; 0x020299C0
+ push {r4, lr}
+ add r4, r0, #0x0
+ lsl r0, r1, #0x10
+ lsr r0, r0, #0x10
+ add r1, r2, #0x0
+ bl FUN_020290E4
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ mov r2, #0x1
+ bl FUN_02028AD4
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_020299DC
+FUN_020299DC: ; 0x020299DC
+ push {r3-r7, lr}
+ add r4, r2, #0x0
+ add r5, r0, #0x0
+ add r0, r4, #0x0
+ add r7, r1, #0x0
+ add r6, r3, #0x0
+ bl FUN_02029A48
+ cmp r0, #0x8
+ bhs _02029A04
+ add r1, r4, #0x0
+ add r2, r6, #0x0
+ bl FUN_020290A4
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ mov r2, #0x1
+ bl FUN_02028AD4
+ pop {r3-r7, pc}
+_02029A04:
+ bne _02029A1A
+ add r0, r4, #0x0
+ add r1, r6, #0x0
+ bl FUN_020290BC
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ mov r2, #0x1
+ bl FUN_02028AD4
+ pop {r3-r7, pc}
+_02029A1A:
+ cmp r0, #0x9
+ bne _02029A32
+ add r0, r4, #0x0
+ add r1, r6, #0x0
+ bl FUN_020290D0
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ mov r2, #0x1
+ bl FUN_02028AD4
+ pop {r3-r7, pc}
+_02029A32:
+ add r0, r7, #0x0
+ add r1, r4, #0x0
+ add r2, r6, #0x0
+ bl FUN_0202928C
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ mov r2, #0x3
+ bl FUN_02028AD4
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_02029A48
+FUN_02029A48: ; 0x02029A48
+ ldr r2, _02029A7C ; =0x020EE964
+ mov r3, #0x0
+_02029A4C:
+ lsl r1, r3, #0x3
+ ldr r1, [r2, r1]
+ cmp r0, r1
+ bne _02029A58
+ add r0, r3, #0x0
+ bx lr
+_02029A58:
+ add r1, r3, #0x1
+ lsl r1, r1, #0x18
+ lsr r3, r1, #0x18
+ cmp r3, #0x8
+ blo _02029A4C
+ ldr r1, _02029A80 ; =0x00000105
+ sub r2, r0, r1
+ cmp r2, #0x3
+ bhi _02029A6E
+ mov r0, #0x8
+ bx lr
+_02029A6E:
+ add r1, r1, #0x6
+ cmp r0, r1
+ bne _02029A78
+ mov r0, #0x9
+ bx lr
+_02029A78:
+ mov r0, #0xa
+ bx lr
+ .balign 4
+_02029A7C: .word 0x020EE964
+_02029A80: .word 0x00000105
+
+ thumb_func_start FUN_02029A84
+FUN_02029A84: ; 0x02029A84
+ mov r0, #0x62
+ lsl r0, r0, #0x4
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02029A8C
+FUN_02029A8C: ; 0x02029A8C
+ push {r4-r6, lr}
+ mov r2, #0x62
+ add r4, r0, #0x0
+ mov r1, #0x0
+ lsl r2, r2, #0x4
+ blx Call_FillMemWithValue
+ add r0, r4, #0x0
+ bl FUN_02029ACC
+ add r5, r0, #0x0
+ mov r4, #0x0
+ mov r6, #0x8c
+_02029AA6:
+ lsl r0, r4, #0x18
+ lsr r0, r0, #0x18
+ add r1, r6, #0x0
+ add r2, r5, #0x0
+ bl FUN_02029AD8
+ add r4, r4, #0x1
+ cmp r4, #0x8
+ blt _02029AA6
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_02029ABC
+FUN_02029ABC: ; 0x02029ABC
+ ldr r3, _02029AC4 ; =FUN_02022610
+ mov r1, #0x13
+ bx r3
+ nop
+_02029AC4: .word FUN_02022610
+
+ thumb_func_start FUN_02029AC8
+FUN_02029AC8: ; 0x02029AC8
+ add r0, #0x20
+ bx lr
+
+ thumb_func_start FUN_02029ACC
+FUN_02029ACC: ; 0x02029ACC
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02029AD0
+FUN_02029AD0: ; 0x02029AD0
+ lsl r0, r0, #0x2
+ ldr r0, [r1, r0]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02029AD8
+FUN_02029AD8: ; 0x02029AD8
+ lsl r0, r0, #0x2
+ str r1, [r2, r0]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02029AE0
+FUN_02029AE0: ; 0x02029AE0
+ ldr r0, _02029AE4 ; =0x00000FF8
+ bx lr
+ .balign 4
+_02029AE4: .word 0x00000FF8
+
+ thumb_func_start FUN_02029AE8
+FUN_02029AE8: ; 0x02029AE8
+ ldr r3, _02029AF4 ; =MIi_CpuClear32
+ add r1, r0, #0x0
+ mov r0, #0x0
+ ldr r2, _02029AF8 ; =0x00000FF8
+ bx r3
+ nop
+_02029AF4: .word MIi_CpuClear32
+_02029AF8: .word 0x00000FF8
+
+ thumb_func_start FUN_02029AFC
+FUN_02029AFC: ; 0x02029AFC
+ ldr r3, _02029B04 ; =FUN_02022610
+ mov r1, #0x1e
+ bx r3
+ nop
+_02029B04: .word FUN_02022610
+
+ thumb_func_start FUN_02029B08
+FUN_02029B08: ; 0x02029B08
+ push {r4-r6, lr}
+ add r6, r0, #0x0
+ mov r0, #0x1
+ add r5, r1, #0x0
+ lsl r0, r0, #0x8
+ add r4, r2, #0x0
+ cmp r5, r0
+ blt _02029B1C
+ bl ErrorHandling
+_02029B1C:
+ cmp r4, #0x40
+ blt _02029B24
+ bl ErrorHandling
+_02029B24:
+ strb r5, [r6, #0x5]
+ add r0, r6, #0x0
+ add r1, r5, #0x0
+ add r2, r4, #0x0
+ mov r3, #0x3
+ strb r4, [r6, #0x6]
+ bl FUN_02029B90
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_02029B38
+FUN_02029B38: ; 0x02029B38
+ ldrb r0, [r0, #0x5]
+ bx lr
+
+ thumb_func_start FUN_02029B3C
+FUN_02029B3C: ; 0x02029B3C
+ ldrb r0, [r0, #0x6]
+ bx lr
+
+ thumb_func_start FUN_02029B40
+FUN_02029B40: ; 0x02029B40
+ push {r4-r6, lr}
+ add r6, r0, #0x0
+ mov r0, #0x1
+ add r5, r1, #0x0
+ lsl r0, r0, #0x8
+ add r4, r2, #0x0
+ cmp r5, r0
+ blt _02029B54
+ bl ErrorHandling
+_02029B54:
+ cmp r4, #0x40
+ blt _02029B5C
+ bl ErrorHandling
+_02029B5C:
+ cmp r5, #0x0
+ bne _02029B64
+ mov r0, #0x0
+ pop {r4-r6, pc}
+_02029B64:
+ asr r0, r4, #0x1
+ lsr r0, r0, #0x1e
+ add r0, r4, r0
+ asr r1, r0, #0x2
+ sub r0, r5, #0x1
+ lsl r0, r0, #0x4
+ add r0, r1, r0
+ add r0, r6, r0
+ ldrb r3, [r0, #0x7]
+ 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, #0x1
+ add r1, r3, #0x0
+ asr r1, r0
+ mov r0, #0x3
+ and r0, r1
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_02029B90
+FUN_02029B90: ; 0x02029B90
+ push {r3-r7, lr}
+ add r7, r0, #0x0
+ add r5, r1, #0x0
+ add r4, r2, #0x0
+ str r3, [sp, #0x0]
+ cmp r3, #0x4
+ blt _02029BA2
+ bl ErrorHandling
+_02029BA2:
+ mov r0, #0x1
+ lsl r0, r0, #0x8
+ cmp r5, r0
+ blt _02029BAE
+ bl ErrorHandling
+_02029BAE:
+ cmp r4, #0x40
+ blt _02029BB6
+ bl ErrorHandling
+_02029BB6:
+ cmp r5, #0x0
+ beq _02029BFE
+ asr r0, r4, #0x1
+ lsr r0, r0, #0x1e
+ add r0, r4, r0
+ asr r2, r0, #0x2
+ sub r0, r5, #0x1
+ lsl r0, r0, #0x4
+ add r0, r2, r0
+ lsr r2, r4, #0x1f
+ lsl r4, r4, #0x1e
+ sub r4, r4, r2
+ mov r3, #0x1e
+ ror r4, r3
+ add r2, r2, r4
+ lsl r6, r2, #0x1
+ mov r2, #0x3
+ add r3, r2, #0x0
+ add r1, r7, #0x7
+ ldrb r4, [r1, r0]
+ lsl r3, r6
+ mov r2, #0xff
+ eor r2, r3
+ and r2, r4
+ ldr r3, [sp, #0x0]
+ strb r2, [r1, r0]
+ ldrb r2, [r1, r0]
+ lsl r3, r6
+ orr r2, r3
+ strb r2, [r1, r0]
+ cmp r5, #0x67
+ beq _02029BFE
+ add r0, r7, #0x0
+ mov r1, #0x1
+ bl FUN_02029C04
+_02029BFE:
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_02029C00
+FUN_02029C00: ; 0x02029C00
+ ldrb r0, [r0, #0x4]
+ bx lr
+
+ thumb_func_start FUN_02029C04
+FUN_02029C04: ; 0x02029C04
+ strb r1, [r0, #0x4]
+ bx lr
+
+ thumb_func_start FUN_02029C08
+FUN_02029C08: ; 0x02029C08
+ push {r3-r7, lr}
+ mov lr, r0
+ mov r0, #0x3
+ mov r7, #0x0
+ mov r4, #0x2
+ mov r6, #0xff
+ add r3, r0, #0x0
+_02029C16:
+ mov r1, lr
+ add r1, r1, r7
+ ldrb r2, [r1, #0x7]
+ mov r12, r1
+ mov r1, #0x0
+_02029C20:
+ add r5, r2, #0x0
+ asr r5, r1
+ and r5, r3
+ cmp r5, #0x1
+ bne _02029C40
+ add r5, r0, #0x0
+ lsl r5, r1
+ eor r5, r6
+ and r2, r5
+ lsl r2, r2, #0x18
+ lsr r5, r2, #0x18
+ add r2, r4, #0x0
+ lsl r2, r1
+ orr r2, r5
+ lsl r2, r2, #0x18
+ lsr r2, r2, #0x18
+_02029C40:
+ add r1, r1, #0x2
+ cmp r1, #0x8
+ blt _02029C20
+ mov r1, r12
+ strb r2, [r1, #0x7]
+ mov r1, #0xff
+ add r7, r7, #0x1
+ lsl r1, r1, #0x4
+ cmp r7, r1
+ blt _02029C16
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_02029C58
+FUN_02029C58: ; 0x02029C58
+ mov r0, #0x17
+ lsl r0, r0, #0x4
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02029C60
+FUN_02029C60: ; 0x02029C60
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl FUN_02029C58
+ add r2, r0, #0x0
+ add r0, r4, #0x0
+ mov r1, #0x0
+ blx MI_CpuFill8
+ pop {r4, pc}
+
+ thumb_func_start FUN_02029C74
+FUN_02029C74: ; 0x02029C74
+ ldr r3, _02029C7C ; =MI_CpuCopy8
+ mov r2, #0x18
+ bx r3
+ nop
+_02029C7C: .word MI_CpuCopy8
+
+ thumb_func_start FUN_02029C80
+FUN_02029C80: ; 0x02029C80
+ ldr r3, _02029C88 ; =FUN_02022610
+ mov r1, #0x15
+ bx r3
+ nop
+_02029C88: .word FUN_02022610
+
+ thumb_func_start FUN_02029C8C
+FUN_02029C8C: ; 0x02029C8C
+ push {r3-r5, lr}
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ cmp r4, #0xc
+ blt _02029C9A
+ bl ErrorHandling
+_02029C9A:
+ mov r0, #0x18
+ mul r0, r4
+ add r0, r5, r0
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_02029CA4
+FUN_02029CA4: ; 0x02029CA4
+ push {r4-r6, lr}
+ add r6, r2, #0x0
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ cmp r6, #0xc
+ blt _02029CB4
+ bl ErrorHandling
+_02029CB4:
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ bl FUN_02029C8C
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_02029C74
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_02029CC8
+FUN_02029CC8: ; 0x02029CC8
+ push {r3-r5, lr}
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ cmp r4, #0x8
+ blt _02029CD6
+ bl ErrorHandling
+_02029CD6:
+ lsl r0, r4, #0x1
+ add r0, r4, r0
+ add r0, r5, r0
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_02029CE0
+FUN_02029CE0: ; 0x02029CE0
+ ldrb r0, [r0, #0x0]
+ bx lr
+
+ thumb_func_start FUN_02029CE4
+FUN_02029CE4: ; 0x02029CE4
+ ldrb r0, [r0, #0x1]
+ bx lr
+
+ thumb_func_start FUN_02029CE8
+FUN_02029CE8: ; 0x02029CE8
+ ldrb r0, [r0, #0x2]
+ bx lr
+
+ thumb_func_start FUN_02029CEC
+FUN_02029CEC: ; 0x02029CEC
+ mov r1, #0x12
+ lsl r1, r1, #0x4
+ add r0, r0, r1
+ bx lr
+
+ thumb_func_start FUN_02029CF4
+FUN_02029CF4: ; 0x02029CF4
+ ldrb r0, [r0, r1]
+ bx lr
+
+ thumb_func_start FUN_02029CF8
+FUN_02029CF8: ; 0x02029CF8
+ mov r3, #0x0
+ add r2, r1, #0x1
+_02029CFC:
+ ldrb r1, [r0, #0x0]
+ cmp r2, r1
+ bne _02029D06
+ mov r0, #0x1
+ bx lr
+_02029D06:
+ add r3, r3, #0x1
+ add r0, r0, #0x3
+ cmp r3, #0x8
+ blt _02029CFC
+ mov r0, #0x0
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02029D14
+FUN_02029D14: ; 0x02029D14
+ push {r4-r7}
+ mov r6, #0x0
+ add r4, r6, #0x0
+ add r2, r1, #0x1
+ add r3, r6, #0x0
+_02029D1E:
+ add r5, r3, #0x0
+ add r7, r0, #0x0
+_02029D22:
+ ldrb r1, [r7, #0x0]
+ cmp r2, r1
+ bne _02029D2A
+ add r6, r6, #0x1
+_02029D2A:
+ add r5, r5, #0x1
+ add r7, r7, #0x3
+ cmp r5, #0x8
+ blt _02029D22
+ add r4, r4, #0x1
+ add r0, #0x18
+ cmp r4, #0xc
+ blt _02029D1E
+ add r0, r6, #0x0
+ pop {r4-r7}
+ bx lr
+
+ thumb_func_start FUN_02029D40
+FUN_02029D40: ; 0x02029D40
+ strb r2, [r0, r1]
+ bx lr
+
+ thumb_func_start FUN_02029D44
+FUN_02029D44: ; 0x02029D44
+ push {r4-r6, lr}
+ add r5, r1, #0x0
+ sub r1, r5, #0x1
+ add r6, r0, #0x0
+ add r4, r2, #0x0
+ bl FUN_02029D14
+ mov r1, #0x12
+ lsl r1, r1, #0x4
+ add r2, r6, r1
+ sub r1, r5, #0x1
+ ldrb r3, [r2, r1]
+ add r0, r0, r3
+ cmp r4, #0x0
+ bge _02029D6E
+ add r0, r4, r3
+ bmi _02029D6A
+ strb r0, [r2, r1]
+ b _02029D7E
+_02029D6A:
+ mov r0, #0x0
+ pop {r4-r6, pc}
+_02029D6E:
+ add r0, r0, r4
+ cmp r0, #0x63
+ bgt _02029D7A
+ add r0, r3, r4
+ strb r0, [r2, r1]
+ b _02029D7E
+_02029D7A:
+ mov r0, #0x0
+ pop {r4-r6, pc}
+_02029D7E:
+ mov r0, #0x1
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_02029D84
+FUN_02029D84: ; 0x02029D84
+ push {r4-r6, lr}
+ add r5, r1, #0x0
+ sub r1, r5, #0x1
+ add r6, r0, #0x0
+ add r4, r2, #0x0
+ bl FUN_02029D14
+ cmp r4, #0x0
+ bge _02029DAC
+ mov r0, #0x12
+ lsl r0, r0, #0x4
+ add r2, r6, r0
+ sub r1, r5, #0x1
+ ldrb r0, [r2, r1]
+ add r0, r4, r0
+ bmi _02029DA8
+ strb r0, [r2, r1]
+ b _02029DD0
+_02029DA8:
+ mov r0, #0x0
+ pop {r4-r6, pc}
+_02029DAC:
+ add r0, r0, r4
+ cmp r0, #0x63
+ bgt _02029DCC
+ mov r0, #0x12
+ lsl r0, r0, #0x4
+ add r2, r6, r0
+ sub r1, r5, #0x1
+ ldrb r0, [r2, r1]
+ add r0, r0, r4
+ strb r0, [r2, r1]
+ ldrb r0, [r2, r1]
+ cmp r0, #0x63
+ blo _02029DD0
+ mov r0, #0x63
+ strb r0, [r2, r1]
+ b _02029DD0
+_02029DCC:
+ mov r0, #0x0
+ pop {r4-r6, pc}
+_02029DD0:
+ mov r0, #0x1
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_02029DD4
+FUN_02029DD4: ; 0x02029DD4
+ push {r4-r6, lr}
+ add r5, r1, #0x0
+ sub r1, r5, #0x1
+ add r6, r0, #0x0
+ add r4, r2, #0x0
+ bl FUN_02029D14
+ sub r1, r5, #0x1
+ add r2, r6, r1
+ mov r1, #0x12
+ lsl r1, r1, #0x4
+ ldrb r1, [r2, r1]
+ add r0, r0, r1
+ cmp r4, #0x0
+ bge _02029DFE
+ add r0, r4, r1
+ bmi _02029DFA
+ mov r0, #0x1
+ pop {r4-r6, pc}
+_02029DFA:
+ mov r0, #0x0
+ pop {r4-r6, pc}
+_02029DFE:
+ add r0, r0, r4
+ cmp r0, #0x63
+ bgt _02029E08
+ mov r0, #0x1
+ pop {r4-r6, pc}
+_02029E08:
+ mov r0, #0x0
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_02029E0C
+FUN_02029E0C: ; 0x02029E0C
+ push {r4-r6, lr}
+ add r6, r0, #0x0
+ mov r5, #0x0
+ mov r4, #0x1
+_02029E14:
+ add r0, r6, #0x0
+ add r1, r4, #0x0
+ bl FUN_02029E2C
+ cmp r0, #0x0
+ beq _02029E22
+ add r5, r5, #0x1
+_02029E22:
+ add r4, r4, #0x1
+ cmp r4, #0x51
+ blt _02029E14
+ add r0, r5, #0x0
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_02029E2C
+FUN_02029E2C: ; 0x02029E2C
+ push {r3-r5, lr}
+ add r5, r1, #0x0
+ sub r1, r5, #0x1
+ add r4, r0, #0x0
+ bl FUN_02029D14
+ sub r1, r5, #0x1
+ add r2, r4, r1
+ mov r1, #0x12
+ lsl r1, r1, #0x4
+ ldrb r1, [r2, r1]
+ add r0, r0, r1
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_02029E48
+FUN_02029E48: ; 0x02029E48
+ mov r1, #0x0
+ strh r1, [r0, #0x0]
+ strb r1, [r0, #0x2]
+ strb r1, [r0, #0x3]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02029E54
+FUN_02029E54: ; 0x02029E54
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ ldrh r6, [r5, #0x0]
+ ldr r0, _02029EB8 ; =0x000003E7
+ cmp r6, r0
+ bne _02029E6C
+ ldrb r0, [r5, #0x2]
+ cmp r0, #0x3b
+ bne _02029E6C
+ ldrb r0, [r5, #0x3]
+ cmp r0, #0x3b
+ beq _02029EB4
+_02029E6C:
+ ldrb r0, [r5, #0x3]
+ ldrb r4, [r5, #0x2]
+ add r7, r0, r1
+ cmp r7, #0x3b
+ bls _02029EAE
+ add r0, r7, #0x0
+ mov r1, #0x3c
+ blx _u32_div_f
+ add r4, r4, r0
+ add r0, r7, #0x0
+ mov r1, #0x3c
+ blx _u32_div_f
+ add r7, r1, #0x0
+ cmp r4, #0x3b
+ bls _02029EAE
+ add r0, r4, #0x0
+ mov r1, #0x3c
+ blx _u32_div_f
+ add r6, r6, r0
+ add r0, r4, #0x0
+ mov r1, #0x3c
+ blx _u32_div_f
+ ldr r0, _02029EB8 ; =0x000003E7
+ add r4, r1, #0x0
+ cmp r6, r0
+ blo _02029EAE
+ mov r4, #0x3b
+ add r6, r0, #0x0
+ add r7, r4, #0x0
+_02029EAE:
+ strh r6, [r5, #0x0]
+ strb r4, [r5, #0x2]
+ strb r7, [r5, #0x3]
+_02029EB4:
+ pop {r3-r7, pc}
+ nop
+_02029EB8: .word 0x000003E7
+
+ thumb_func_start FUN_02029EBC
+FUN_02029EBC: ; 0x02029EBC
+ ldrh r0, [r0, #0x0]
+ bx lr
+
+ thumb_func_start FUN_02029EC0
+FUN_02029EC0: ; 0x02029EC0
+ ldrb r0, [r0, #0x2]
+ bx lr
+
+ thumb_func_start FUN_02029EC4
+FUN_02029EC4: ; 0x02029EC4
+ mov r0, #0xfb
+ lsl r0, r0, #0x2
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02029ECC
+FUN_02029ECC: ; 0x02029ECC
+ push {r4, lr}
+ add r4, r0, #0x0
+ mov r2, #0xfb
+ mov r0, #0x0
+ add r1, r4, #0x0
+ lsl r2, r2, #0x2
+ blx MIi_CpuClear32
+ mov r0, #0x0
+ str r0, [r4, #0x0]
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02029EE4
+FUN_02029EE4: ; 0x02029EE4
+ push {r4, lr}
+ mov r1, #0xfb
+ lsl r1, r1, #0x2
+ bl FUN_02016998
+ add r4, r0, #0x0
+ bl FUN_02029ECC
+ add r0, r4, #0x0
+ pop {r4, pc}
+
+ thumb_func_start FUN_02029EF8
+FUN_02029EF8: ; 0x02029EF8
+ ldr r3, _02029F00 ; =FUN_02022610
+ mov r1, #0x16
+ bx r3
+ nop
+_02029F00: .word FUN_02022610
+
+ thumb_func_start FUN_02029F04
+FUN_02029F04: ; 0x02029F04
+ ldr r0, [r0, #0x0]
+ bx lr
+
+ thumb_func_start FUN_02029F08
+FUN_02029F08: ; 0x02029F08
+ mov r1, #0x0
+ str r1, [r0, #0x0]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02029F10
+FUN_02029F10: ; 0x02029F10
+ add r0, r0, #0x4
+ bx lr
+
+ thumb_func_start FUN_02029F14
+FUN_02029F14: ; 0x02029F14
+ push {r4-r7}
+ mov r5, #0x0
+ mov r2, #0xfa
+ add r4, r5, #0x0
+ mov r6, #0xf
+ lsl r2, r2, #0x2
+_02029F20:
+ ldrsb r7, [r1, r4]
+ add r3, r0, r5
+ and r7, r6
+ lsl r7, r7, #0x18
+ lsr r7, r7, #0x18
+ sub r7, #0x8
+ lsl r7, r7, #0x18
+ asr r7, r7, #0x14
+ strb r7, [r0, r5]
+ ldrsb r7, [r1, r4]
+ add r4, r4, #0x1
+ add r5, r5, #0x2
+ lsl r7, r7, #0x14
+ lsr r7, r7, #0x18
+ sub r7, #0x8
+ lsl r7, r7, #0x18
+ asr r7, r7, #0x14
+ strb r7, [r3, #0x1]
+ cmp r4, r2
+ blt _02029F20
+ pop {r4-r7}
+ bx lr
+
+ thumb_func_start FUN_02029F4C
+FUN_02029F4C: ; 0x02029F4C
+ push {r4-r7}
+ add r3, r0, #0x0
+ add r2, r1, #0x0
+ mov r0, #0x1
+ mov r1, #0x0
+ str r0, [r3, #0x0]
+ add r0, r1, #0x0
+_02029F5A:
+ ldrsb r4, [r2, r0]
+ add r6, r3, r1
+ add r7, r2, r0
+ asr r5, r4, #0x3
+ lsr r5, r5, #0x1c
+ add r5, r4, r5
+ lsl r4, r5, #0x14
+ asr r4, r4, #0x18
+ add r4, #0x8
+ strb r4, [r6, #0x4]
+ mov r4, #0x4
+ ldrsb r5, [r6, r4]
+ mov r4, #0x1
+ ldrsb r4, [r7, r4]
+ add r0, r0, #0x2
+ add r1, r1, #0x1
+ asr r7, r4, #0x3
+ lsr r7, r7, #0x1c
+ add r7, r4, r7
+ lsl r4, r7, #0x14
+ asr r4, r4, #0x18
+ add r4, #0x8
+ lsl r4, r4, #0x18
+ lsr r4, r4, #0x14
+ orr r4, r5
+ strb r4, [r6, #0x4]
+ mov r4, #0x7d
+ lsl r4, r4, #0x4
+ cmp r0, r4
+ blt _02029F5A
+ pop {r4-r7}
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02029F9C
+FUN_02029F9C: ; 0x02029F9C
+ add r2, r0, #0x0
+ add r0, r1, #0x0
+ add r1, r2, #0x0
+ mov r2, #0xfb
+ ldr r3, _02029FAC ; =MIi_CpuCopyFast
+ lsl r2, r2, #0x2
+ bx r3
+ nop
+_02029FAC: .word MIi_CpuCopyFast
+
+ thumb_func_start FUN_02029FB0
+FUN_02029FB0: ; 0x02029FB0
+ mov r0, #0x53
+ lsl r0, r0, #0x2
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02029FB8
+FUN_02029FB8: ; 0x02029FB8
+ ldr r3, _02029FC4 ; =MIi_CpuClear32
+ mov r2, #0x53
+ add r1, r0, #0x0
+ mov r0, #0x0
+ lsl r2, r2, #0x2
+ bx r3
+ .balign 4
+_02029FC4: .word MIi_CpuClear32
+
+ thumb_func_start FUN_02029FC8
+FUN_02029FC8: ; 0x02029FC8
+ ldr r3, _02029FD0 ; =FUN_02022610
+ mov r1, #0x14
+ bx r3
+ nop
+_02029FD0: .word FUN_02022610
+
+ thumb_func_start FUN_02029FD4
+FUN_02029FD4: ; 0x02029FD4
+ push {r3, lr}
+ cmp r1, #0x2c
+ bge _02029FE0
+ lsl r1, r1, #0x2
+ ldr r0, [r0, r1]
+ pop {r3, pc}
+_02029FE0:
+ cmp r1, #0x79
+ bge _02029FF0
+ sub r1, #0x2c
+ lsl r1, r1, #0x1
+ add r0, r0, r1
+ add r0, #0xb0
+ ldrh r0, [r0, #0x0]
+ pop {r3, pc}
+_02029FF0:
+ bl ErrorHandling
+ mov r0, #0x0
+ pop {r3, pc}
+
+ thumb_func_start FUN_02029FF8
+FUN_02029FF8: ; 0x02029FF8
+ push {r3-r5, lr}
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ cmp r4, #0x2c
+ bge _0202A008
+ lsl r0, r4, #0x2
+ str r2, [r5, r0]
+ b _0202A01E
+_0202A008:
+ cmp r4, #0x79
+ bge _0202A01A
+ add r0, r4, #0x0
+ sub r0, #0x2c
+ lsl r0, r0, #0x1
+ add r0, r5, r0
+ add r0, #0xb0
+ strh r2, [r0, #0x0]
+ b _0202A01E
+_0202A01A:
+ bl ErrorHandling
+_0202A01E:
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_02029FD4
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_0202A028
+FUN_0202A028: ; 0x0202A028
+ push {r3, lr}
+ cmp r0, #0x2c
+ bge _0202A03E
+ ldr r1, _0202A05C ; =0x02105CD8
+ ldrb r0, [r1, r0]
+ cmp r0, #0x0
+ beq _0202A03A
+ ldr r0, _0202A060 ; =0x3B9AC9FF
+ pop {r3, pc}
+_0202A03A:
+ ldr r0, _0202A064 ; =0x000F423F
+ pop {r3, pc}
+_0202A03E:
+ cmp r0, #0x79
+ bge _0202A052
+ ldr r1, _0202A05C ; =0x02105CD8
+ ldrb r0, [r1, r0]
+ cmp r0, #0x0
+ beq _0202A04E
+ ldr r0, _0202A068 ; =0x0000FFFF
+ pop {r3, pc}
+_0202A04E:
+ ldr r0, _0202A06C ; =0x0000270F
+ pop {r3, pc}
+_0202A052:
+ bl ErrorHandling
+ mov r0, #0x0
+ pop {r3, pc}
+ nop
+_0202A05C: .word 0x02105CD8
+_0202A060: .word 0x3B9AC9FF
+_0202A064: .word 0x000F423F
+_0202A068: .word 0x0000FFFF
+_0202A06C: .word 0x0000270F
+
+ thumb_func_start FUN_0202A070
+FUN_0202A070: ; 0x0202A070
+ lsl r1, r0, #0x1
+ ldr r0, _0202A078 ; =0x020EEA7C
+ ldrh r0, [r0, r1]
+ bx lr
+ .balign 4
+_0202A078: .word 0x020EEA7C
+
+ thumb_func_start FUN_0202A07C
+FUN_0202A07C: ; 0x0202A07C
+ push {r4-r6, lr}
+ add r5, r1, #0x0
+ add r6, r0, #0x0
+ add r0, r5, #0x0
+ add r4, r2, #0x0
+ bl FUN_0202A028
+ add r2, r0, #0x0
+ cmp r4, r2
+ bhs _0202A09C
+ add r0, r6, #0x0
+ add r1, r5, #0x0
+ add r2, r4, #0x0
+ bl FUN_02029FF8
+ pop {r4-r6, pc}
+_0202A09C:
+ add r0, r6, #0x0
+ add r1, r5, #0x0
+ bl FUN_02029FF8
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_0202A0A8
+FUN_0202A0A8: ; 0x0202A0A8
+ push {r3-r7, lr}
+ add r6, r1, #0x0
+ add r7, r0, #0x0
+ add r0, r6, #0x0
+ add r5, r2, #0x0
+ bl FUN_0202A028
+ add r4, r0, #0x0
+ add r0, r7, #0x0
+ add r1, r6, #0x0
+ bl FUN_02029FD4
+ cmp r5, r4
+ bls _0202A0C6
+ add r5, r4, #0x0
+_0202A0C6:
+ cmp r0, r5
+ bhs _0202A0D6
+ add r0, r7, #0x0
+ add r1, r6, #0x0
+ add r2, r5, #0x0
+ bl FUN_02029FF8
+ pop {r3-r7, pc}
+_0202A0D6:
+ cmp r0, r4
+ bls _0202A0E4
+ add r0, r7, #0x0
+ add r1, r6, #0x0
+ add r2, r4, #0x0
+ bl FUN_02029FF8
+_0202A0E4:
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_0202A0E8
+FUN_0202A0E8: ; 0x0202A0E8
+ push {r4-r6, lr}
+ add r6, r1, #0x0
+ add r5, r0, #0x0
+ add r0, r6, #0x0
+ bl FUN_0202A028
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ bl FUN_02029FD4
+ add r2, r0, #0x1
+ cmp r2, r4
+ bhs _0202A10E
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ bl FUN_02029FF8
+ pop {r4-r6, pc}
+_0202A10E:
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ add r2, r4, #0x0
+ bl FUN_02029FF8
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_0202A11C
+FUN_0202A11C: ; 0x0202A11C
+ push {r3-r7, lr}
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ add r0, r4, #0x0
+ add r7, r2, #0x0
+ bl FUN_0202A028
+ add r6, r0, #0x0
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_02029FD4
+ add r2, r0, r7
+ cmp r2, r6
+ bhs _0202A144
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_02029FF8
+ pop {r3-r7, pc}
+_0202A144:
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ add r2, r6, #0x0
+ bl FUN_02029FF8
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_0202A150
+FUN_0202A150: ; 0x0202A150
+ push {r4-r6, lr}
+ add r6, r1, #0x0
+ add r5, r0, #0x0
+ add r0, r6, #0x0
+ bl FUN_0202A028
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ bl FUN_02029FD4
+ cmp r0, r4
+ bhi _0202A16C
+ add r4, r0, #0x0
+_0202A16C:
+ add r0, r4, #0x0
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_0202A170
+FUN_0202A170: ; 0x0202A170
+ push {r4-r6, lr}
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ cmp r4, #0x26
+ blt _0202A17E
+ bl ErrorHandling
+_0202A17E:
+ add r0, r5, #0x0
+ mov r1, #0x0
+ bl FUN_0202A150
+ add r6, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_0202A070
+ ldr r2, _0202A1B4 ; =0x05F5E0FF
+ add r0, r6, r0
+ cmp r0, r2
+ bls _0202A1A0
+ add r0, r5, #0x0
+ mov r1, #0x0
+ bl FUN_0202A07C
+ pop {r4-r6, pc}
+_0202A1A0:
+ add r0, r4, #0x0
+ bl FUN_0202A070
+ add r2, r0, #0x0
+ add r0, r5, #0x0
+ mov r1, #0x0
+ bl FUN_0202A11C
+ pop {r4-r6, pc}
+ nop
+_0202A1B4: .word 0x05F5E0FF
+
+ thumb_func_start FUN_0202A1B8
+FUN_0202A1B8: ; 0x0202A1B8
+ ldr r3, _0202A1C0 ; =FUN_0202A150
+ mov r1, #0x0
+ bx r3
+ nop
+_0202A1C0: .word FUN_0202A150
+
+ thumb_func_start FUN_0202A1C4
+FUN_0202A1C4: ; 0x0202A1C4
+ push {r4, lr}
+ add r4, r0, #0x0
+ add r0, r1, #0x0
+ add r1, r2, #0x0
+ bl FUN_02024594
+ cmp r0, #0x0
+ bne _0202A1DC
+ add r0, r4, #0x0
+ mov r1, #0x16
+ bl FUN_0202A170
+_0202A1DC:
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0202A1E0
+FUN_0202A1E0: ; 0x0202A1E0
+ mov r0, #0xe4
+ bx lr
+
+ thumb_func_start FUN_0202A1E4
+FUN_0202A1E4: ; 0x0202A1E4
+ ldr r3, _0202A1EC ; =MI_CpuFill8
+ mov r1, #0x0
+ mov r2, #0x3c
+ bx r3
+ .balign 4
+_0202A1EC: .word MI_CpuFill8
+
+ thumb_func_start FUN_0202A1F0
+FUN_0202A1F0: ; 0x0202A1F0
+ push {r4, lr}
+ mov r2, #0x5a
+ mov r1, #0x0
+ lsl r2, r2, #0x2
+ add r4, r0, #0x0
+ blx MI_CpuFill8
+ mov r0, #0x1
+ strb r0, [r4, #0x3]
+ pop {r4, pc}
+
+ thumb_func_start FUN_0202A204
+FUN_0202A204: ; 0x0202A204
+ push {r4, lr}
+ add r4, r0, #0x0
+ mov r1, #0x0
+ bl FUN_02013764
+ add r0, r4, #0x0
+ add r0, #0x8
+ mov r1, #0x1
+ bl FUN_02013764
+ add r0, r4, #0x0
+ add r0, #0x10
+ mov r1, #0x2
+ bl FUN_02013764
+ add r4, #0x18
+ add r0, r4, #0x0
+ mov r1, #0x3
+ bl FUN_02013764
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0202A230
+FUN_0202A230: ; 0x0202A230
+ ldr r3, _0202A238 ; =MI_CpuFill8
+ mov r1, #0x0
+ ldr r2, _0202A23C ; =0x00000B3C
+ bx r3
+ .balign 4
+_0202A238: .word MI_CpuFill8
+_0202A23C: .word 0x00000B3C
+
+ thumb_func_start FUN_0202A240
+FUN_0202A240: ; 0x0202A240
+ push {r3, lr}
+ cmp r1, #0xa
+ bhi _0202A2BE
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #0x6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_0202A252: ; jump table (using 16-bit offset)
+ .short _0202A268 - _0202A252 - 2; case 0
+ .short _0202A270 - _0202A252 - 2; case 1
+ .short _0202A274 - _0202A252 - 2; case 2
+ .short _0202A278 - _0202A252 - 2; case 3
+ .short _0202A27C - _0202A252 - 2; case 4
+ .short _0202A280 - _0202A252 - 2; case 5
+ .short _0202A28E - _0202A252 - 2; case 6
+ .short _0202A29C - _0202A252 - 2; case 7
+ .short _0202A2A4 - _0202A252 - 2; case 8
+ .short _0202A2B2 - _0202A252 - 2; case 9
+ .short _0202A2BA - _0202A252 - 2; case 10
+_0202A268:
+ ldrb r0, [r0, #0x0]
+ lsl r0, r0, #0x1b
+ lsr r0, r0, #0x1d
+ pop {r3, pc}
+_0202A270:
+ ldrb r0, [r0, #0x2]
+ pop {r3, pc}
+_0202A274:
+ ldrb r0, [r0, #0x3]
+ pop {r3, pc}
+_0202A278:
+ ldrh r0, [r0, #0x4]
+ pop {r3, pc}
+_0202A27C:
+ ldrh r0, [r0, #0x6]
+ pop {r3, pc}
+_0202A280:
+ add r1, r2, #0x0
+ add r0, #0x8
+ mov r2, #0x4
+ blx MI_CpuCopy8
+ mov r0, #0x0
+ pop {r3, pc}
+_0202A28E:
+ add r1, r2, #0x0
+ add r0, #0x2c
+ mov r2, #0x10
+ blx MI_CpuCopy8
+ mov r0, #0x0
+ pop {r3, pc}
+_0202A29C:
+ ldrb r0, [r0, #0x0]
+ lsl r0, r0, #0x1f
+ lsr r0, r0, #0x1f
+ pop {r3, pc}
+_0202A2A4:
+ add r1, r2, #0x0
+ add r0, #0xc
+ mov r2, #0x1c
+ blx MI_CpuCopy8
+ mov r0, #0x0
+ pop {r3, pc}
+_0202A2B2:
+ ldrb r0, [r0, #0x0]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x1d
+ pop {r3, pc}
+_0202A2BA:
+ ldr r0, [r0, #0x28]
+ pop {r3, pc}
+_0202A2BE:
+ mov r0, #0x0
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_0202A2C4
+FUN_0202A2C4: ; 0x0202A2C4
+ push {r4, lr}
+ add r3, r0, #0x0
+ cmp r1, #0xa
+ bhi _0202A36A
+ add r0, r1, r1
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0202A2D8: ; jump table (using 16-bit offset)
+ .short _0202A2EE - _0202A2D8 - 2; case 0
+ .short _0202A300 - _0202A2D8 - 2; case 1
+ .short _0202A306 - _0202A2D8 - 2; case 2
+ .short _0202A30C - _0202A2D8 - 2; case 3
+ .short _0202A312 - _0202A2D8 - 2; case 4
+ .short _0202A318 - _0202A2D8 - 2; case 5
+ .short _0202A326 - _0202A2D8 - 2; case 6
+ .short _0202A334 - _0202A2D8 - 2; case 7
+ .short _0202A346 - _0202A2D8 - 2; case 8
+ .short _0202A35A - _0202A2D8 - 2; case 9
+ .short _0202A354 - _0202A2D8 - 2; case 10
+_0202A2EE:
+ ldrb r1, [r3, #0x0]
+ mov r0, #0x1c
+ bic r1, r0
+ ldrb r0, [r2, #0x0]
+ lsl r0, r0, #0x1d
+ lsr r0, r0, #0x1b
+ orr r0, r1
+ strb r0, [r3, #0x0]
+ pop {r4, pc}
+_0202A300:
+ ldrb r0, [r2, #0x0]
+ strb r0, [r3, #0x2]
+ pop {r4, pc}
+_0202A306:
+ ldrb r0, [r2, #0x0]
+ strb r0, [r3, #0x3]
+ pop {r4, pc}
+_0202A30C:
+ ldrh r0, [r2, #0x0]
+ strh r0, [r3, #0x4]
+ pop {r4, pc}
+_0202A312:
+ ldrh r0, [r2, #0x0]
+ strh r0, [r3, #0x6]
+ pop {r4, pc}
+_0202A318:
+ add r3, #0x8
+ add r0, r2, #0x0
+ add r1, r3, #0x0
+ mov r2, #0x4
+ blx MI_CpuCopy8
+ pop {r4, pc}
+_0202A326:
+ add r3, #0x2c
+ add r0, r2, #0x0
+ add r1, r3, #0x0
+ mov r2, #0x10
+ blx MI_CpuCopy8
+ pop {r4, pc}
+_0202A334:
+ ldrb r4, [r3, #0x0]
+ ldrb r1, [r2, #0x0]
+ mov r0, #0x1
+ bic r4, r0
+ mov r0, #0x1
+ and r0, r1
+ orr r0, r4
+ strb r0, [r3, #0x0]
+ pop {r4, pc}
+_0202A346:
+ add r3, #0xc
+ add r0, r2, #0x0
+ add r1, r3, #0x0
+ mov r2, #0x1c
+ blx MI_CpuCopy8
+ pop {r4, pc}
+_0202A354:
+ ldr r0, [r2, #0x0]
+ str r0, [r3, #0x28]
+ pop {r4, pc}
+_0202A35A:
+ ldrb r1, [r3, #0x0]
+ mov r0, #0xe0
+ bic r1, r0
+ ldrb r0, [r2, #0x0]
+ lsl r0, r0, #0x1d
+ lsr r0, r0, #0x18
+ orr r0, r1
+ strb r0, [r3, #0x0]
+_0202A36A:
+ pop {r4, pc}
+
+ thumb_func_start FUN_0202A36C
+FUN_0202A36C: ; 0x0202A36C
+ push {r3-r4}
+ ldrb r4, [r0, #0x3]
+ add r1, r4, r1
+ cmp r1, #0xff
+ bge _0202A378
+ strb r1, [r0, #0x3]
+_0202A378:
+ ldrh r1, [r0, #0x4]
+ add r2, r1, r2
+ ldr r1, _0202A394 ; =0x0000FFFF
+ cmp r2, r1
+ bge _0202A384
+ strh r2, [r0, #0x4]
+_0202A384:
+ ldrh r1, [r0, #0x6]
+ add r2, r1, r3
+ ldr r1, _0202A394 ; =0x0000FFFF
+ cmp r2, r1
+ bge _0202A390
+ strh r2, [r0, #0x6]
+_0202A390:
+ pop {r3-r4}
+ bx lr
+ .balign 4
+_0202A394: .word 0x0000FFFF
+
+ thumb_func_start FUN_0202A398
+FUN_0202A398: ; 0x0202A398
+ ldrb r0, [r0, #0x0]
+ lsl r0, r0, #0x1e
+ lsr r0, r0, #0x1f
+ bx lr
+
+ thumb_func_start FUN_0202A3A0
+FUN_0202A3A0: ; 0x0202A3A0
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ lsl r1, r1, #0x1f
+ ldrb r3, [r0, #0x0]
+ mov r2, #0x2
+ lsr r1, r1, #0x1e
+ bic r3, r2
+ orr r1, r3
+ strb r1, [r0, #0x0]
+ bx lr
+
+ thumb_func_start FUN_0202A3B4
+FUN_0202A3B4: ; 0x0202A3B4
+ cmp r2, #0x6
+ bhi _0202A402
+ add r2, r2, r2
+ add r2, pc
+ ldrh r2, [r2, #0x6]
+ lsl r2, r2, #0x10
+ asr r2, r2, #0x10
+ add pc, r2
+_0202A3C4: ; jump table (using 16-bit offset)
+ .short _0202A402 - _0202A3C4 - 2; case 0
+ .short _0202A3D2 - _0202A3C4 - 2; case 1
+ .short _0202A402 - _0202A3C4 - 2; case 2
+ .short _0202A402 - _0202A3C4 - 2; case 3
+ .short _0202A402 - _0202A3C4 - 2; case 4
+ .short _0202A3E0 - _0202A3C4 - 2; case 5
+ .short _0202A3F2 - _0202A3C4 - 2; case 6
+_0202A3D2:
+ ldr r2, _0202A408 ; =0x0000270F
+ cmp r1, r2
+ bls _0202A3DC
+ strh r2, [r0, #0x0]
+ b _0202A402
+_0202A3DC:
+ strh r1, [r0, #0x0]
+ b _0202A402
+_0202A3E0:
+ ldrh r2, [r0, #0x0]
+ add r2, r2, r1
+ ldr r1, _0202A408 ; =0x0000270F
+ cmp r2, r1
+ ble _0202A3EE
+ strh r1, [r0, #0x0]
+ b _0202A402
+_0202A3EE:
+ strh r2, [r0, #0x0]
+ b _0202A402
+_0202A3F2:
+ ldrh r2, [r0, #0x0]
+ cmp r2, r1
+ bhs _0202A3FE
+ mov r1, #0x0
+ strh r1, [r0, #0x0]
+ b _0202A402
+_0202A3FE:
+ sub r1, r2, r1
+ strh r1, [r0, #0x0]
+_0202A402:
+ ldrh r0, [r0, #0x0]
+ bx lr
+ nop
+_0202A408: .word 0x0000270F
+
+ thumb_func_start FUN_0202A40C
+FUN_0202A40C: ; 0x0202A40C
+ cmp r1, #0x2
+ beq _0202A416
+ cmp r1, #0x3
+ beq _0202A424
+ b _0202A440
+_0202A416:
+ mov r1, #0x0
+ strb r1, [r0, #0x2]
+ ldrh r2, [r0, #0x8]
+ mov r1, #0x10
+ bic r2, r1
+ strh r2, [r0, #0x8]
+ b _0202A440
+_0202A424:
+ ldrh r1, [r0, #0x8]
+ lsl r1, r1, #0x1b
+ lsr r1, r1, #0x1f
+ beq _0202A434
+ ldrb r1, [r0, #0x2]
+ add r1, r1, #0x1
+ strb r1, [r0, #0x2]
+ b _0202A440
+_0202A434:
+ mov r1, #0x1
+ strb r1, [r0, #0x2]
+ ldrh r2, [r0, #0x8]
+ mov r1, #0x10
+ orr r1, r2
+ strh r1, [r0, #0x8]
+_0202A440:
+ ldrb r0, [r0, #0x2]
+ bx lr
+
+ thumb_func_start FUN_0202A444
+FUN_0202A444: ; 0x0202A444
+ cmp r1, #0x2
+ beq _0202A452
+ cmp r1, #0x3
+ beq _0202A458
+ cmp r1, #0x4
+ beq _0202A464
+ b _0202A46E
+_0202A452:
+ mov r1, #0x1
+ strb r1, [r0, #0x3]
+ b _0202A46E
+_0202A458:
+ ldrb r1, [r0, #0x3]
+ cmp r1, #0xa
+ bhs _0202A46E
+ add r1, r1, #0x1
+ strb r1, [r0, #0x3]
+ b _0202A46E
+_0202A464:
+ ldrb r1, [r0, #0x3]
+ cmp r1, #0x1
+ bls _0202A46E
+ sub r1, r1, #0x1
+ strb r1, [r0, #0x3]
+_0202A46E:
+ ldrb r0, [r0, #0x3]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_0202A474
+FUN_0202A474: ; 0x0202A474
+ push {r3, lr}
+ add r3, r0, #0x0
+ cmp r1, #0x0
+ bne _0202A48A
+ add r3, #0xc0
+ add r0, r2, #0x0
+ add r1, r3, #0x0
+ mov r2, #0xa8
+ blx MI_CpuCopy8
+ pop {r3, pc}
+_0202A48A:
+ add r3, #0x18
+ add r0, r2, #0x0
+ add r1, r3, #0x0
+ mov r2, #0xa8
+ blx MI_CpuCopy8
+ pop {r3, pc}
+
+ thumb_func_start FUN_0202A498
+FUN_0202A498: ; 0x0202A498
+ push {r3, lr}
+ cmp r1, #0x0
+ bne _0202A4AA
+ add r1, r2, #0x0
+ add r0, #0xc0
+ mov r2, #0xa8
+ blx MI_CpuCopy8
+ pop {r3, pc}
+_0202A4AA:
+ add r1, r2, #0x0
+ add r0, #0x18
+ mov r2, #0xa8
+ blx MI_CpuCopy8
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_0202A4B8
+FUN_0202A4B8: ; 0x0202A4B8
+ push {r4-r6, lr}
+ add r6, r0, #0x0
+ ldrb r0, [r1, #0x2]
+ mov r2, #0xfa
+ lsl r2, r2, #0x2
+ sub r0, r0, #0x1
+ add r3, r0, #0x0
+ mul r3, r2
+ lsl r0, r3, #0x10
+ lsr r4, r0, #0x10
+ ldrh r3, [r1, #0x4]
+ mov r0, #0xa
+ ldrb r5, [r1, #0x3]
+ mul r0, r3
+ mov r3, #0x14
+ mul r3, r5
+ lsl r0, r0, #0x10
+ lsl r3, r3, #0x10
+ lsr r0, r0, #0x10
+ lsr r3, r3, #0x10
+ add r3, r0, r3
+ add r0, r2, #0x0
+ sub r0, #0x32
+ cmp r3, r0
+ ble _0202A4EE
+ mov r5, #0x0
+ b _0202A4F6
+_0202A4EE:
+ sub r2, #0x32
+ sub r0, r2, r3
+ lsl r0, r0, #0x10
+ lsr r5, r0, #0x10
+_0202A4F6:
+ ldrh r1, [r1, #0x6]
+ ldr r0, _0202A51C ; =0x000003CA
+ cmp r1, r0
+ bls _0202A502
+ mov r1, #0x0
+ b _0202A510
+_0202A502:
+ add r0, #0x1e
+ sub r0, r0, r1
+ mov r1, #0x1e
+ blx _s32_div_f
+ lsl r0, r0, #0x10
+ lsr r1, r0, #0x10
+_0202A510:
+ add r0, r4, r5
+ add r0, r1, r0
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ strh r0, [r6, #0x16]
+ pop {r4-r6, pc}
+ .balign 4
+_0202A51C: .word 0x000003CA
+
+ thumb_func_start FUN_0202A520
+FUN_0202A520: ; 0x0202A520
+ ldrh r0, [r0, #0x16]
+ bx lr
+
+ thumb_func_start FUN_0202A524
+FUN_0202A524: ; 0x0202A524
+ push {r3, lr}
+ ldrh r0, [r0, #0x16]
+ mov r1, #0xfa
+ lsl r1, r1, #0x2
+ blx _s32_div_f
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_0202A538
+FUN_0202A538: ; 0x0202A538
+ push {r4-r5}
+ cmp r1, #0x5
+ bne _0202A544
+ mov r0, #0x0
+ pop {r4-r5}
+ bx lr
+_0202A544:
+ cmp r2, #0x2
+ beq _0202A54E
+ cmp r2, #0x3
+ beq _0202A558
+ b _0202A56A
+_0202A54E:
+ lsl r2, r1, #0x1
+ mov r3, #0x0
+ add r2, r0, r2
+ strh r3, [r2, #0xc]
+ b _0202A56A
+_0202A558:
+ add r5, r0, #0x0
+ add r5, #0xc
+ lsl r4, r1, #0x1
+ ldrh r3, [r5, r4]
+ ldr r2, _0202A574 ; =0x0000FFFE
+ cmp r3, r2
+ bhs _0202A56A
+ add r2, r3, #0x1
+ strh r2, [r5, r4]
+_0202A56A:
+ lsl r1, r1, #0x1
+ add r0, r0, r1
+ ldrh r0, [r0, #0xc]
+ pop {r4-r5}
+ bx lr
+ .balign 4
+_0202A574: .word 0x0000FFFE
+
+ thumb_func_start FUN_0202A578
+FUN_0202A578: ; 0x0202A578
+ push {r3-r4}
+ mov r3, #0x1
+ mov r4, #0x0
+ cmp r1, #0x0
+ bls _0202A590
+_0202A582:
+ add r4, r4, #0x1
+ lsl r4, r4, #0x10
+ lsl r3, r3, #0x11
+ lsr r4, r4, #0x10
+ lsr r3, r3, #0x10
+ cmp r4, r1
+ blo _0202A582
+_0202A590:
+ cmp r2, #0x0
+ beq _0202A5B4
+ cmp r2, #0x1
+ beq _0202A5AC
+ cmp r2, #0x2
+ bne _0202A5C2
+ ldr r1, _0202A5C8 ; =0x0000FFFF
+ eor r1, r3
+ lsl r1, r1, #0x10
+ lsr r2, r1, #0x10
+ ldrh r1, [r0, #0x8]
+ and r1, r2
+ strh r1, [r0, #0x8]
+ b _0202A5C2
+_0202A5AC:
+ ldrh r1, [r0, #0x8]
+ orr r1, r3
+ strh r1, [r0, #0x8]
+ b _0202A5C2
+_0202A5B4:
+ ldrh r0, [r0, #0x8]
+ add r2, r0, #0x0
+ asr r2, r1
+ mov r0, #0x1
+ and r0, r2
+ pop {r3-r4}
+ bx lr
+_0202A5C2:
+ mov r0, #0x0
+ pop {r3-r4}
+ bx lr
+ .balign 4
+_0202A5C8: .word 0x0000FFFF
+
+ thumb_func_start FUN_0202A5CC
+FUN_0202A5CC: ; 0x0202A5CC
+ str r1, [r0, #0x4]
+ bx lr
+
+ thumb_func_start FUN_0202A5D0
+FUN_0202A5D0: ; 0x0202A5D0
+ ldr r0, [r0, #0x4]
+ bx lr
+
+ thumb_func_start FUN_0202A5D4
+FUN_0202A5D4: ; 0x0202A5D4
+ push {r3-r5, lr}
+ add r5, r1, #0x0
+ mov r1, #0x17
+ add r4, r2, #0x0
+ bl FUN_02022610
+ mov r1, #0x69
+ lsl r1, r1, #0x2
+ add r1, r0, r1
+ lsl r0, r5, #0x3
+ add r0, r1, r0
+ add r1, r4, #0x0
+ bl FUN_02013960
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_0202A5F4
+FUN_0202A5F4: ; 0x0202A5F4
+ push {r4, lr}
+ add r4, r1, #0x0
+ mov r1, #0x17
+ bl FUN_02022610
+ mov r1, #0x69
+ lsl r1, r1, #0x2
+ add r1, r0, r1
+ lsl r0, r4, #0x3
+ add r0, r1, r0
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0202A60C
+FUN_0202A60C: ; 0x0202A60C
+ push {r3-r6}
+ add r4, r3, #0x0
+ mov r3, #0x1
+ cmp r2, #0x0
+ beq _0202A66C
+ cmp r2, #0xc8
+ bhi _0202A66C
+ cmp r1, #0x0
+ beq _0202A66C
+ cmp r1, #0xa
+ bhi _0202A66C
+ sub r5, r2, #0x1
+ sub r2, r1, #0x1
+ mov r1, #0xc8
+ mul r1, r2
+ add r1, r5, r1
+ lsl r1, r1, #0x10
+ lsr r1, r1, #0x10
+ lsr r6, r1, #0x1f
+ lsl r5, r1, #0x1d
+ sub r5, r5, r6
+ mov r2, #0x1d
+ ror r5, r2
+ add r2, r6, r5
+ lsl r2, r2, #0x18
+ lsr r2, r2, #0x18
+ lsl r3, r2
+ lsl r2, r3, #0x18
+ lsl r1, r1, #0x15
+ lsr r5, r2, #0x18
+ add r3, r0, #0x4
+ lsr r2, r1, #0x18
+ ldrb r1, [r3, r2]
+ orr r1, r5
+ strb r1, [r3, r2]
+ ldr r3, [r4, #0x0]
+ ldr r1, [r4, #0x8]
+ lsl r5, r3, #0x18
+ ldr r3, [r4, #0x4]
+ lsl r1, r1, #0x18
+ lsl r3, r3, #0x18
+ lsr r3, r3, #0x8
+ ldr r2, [r4, #0xc]
+ lsr r1, r1, #0x10
+ orr r3, r5
+ orr r1, r3
+ orr r1, r2
+ str r1, [r0, #0x0]
+_0202A66C:
+ pop {r3-r6}
+ bx lr
+
+ thumb_func_start FUN_0202A670
+FUN_0202A670: ; 0x0202A670
+ push {r4, lr}
+ add r4, r0, #0x0
+ add r0, r4, #0x4
+ mov r1, #0x0
+ mov r2, #0xfa
+ blx MI_CpuFill8
+ add r0, r4, #0x0
+ mov r1, #0x0
+ mov r2, #0x4
+ blx MI_CpuFill8
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0202A68C
+FUN_0202A68C: ; 0x0202A68C
+ ldr r3, [r0, #0x0]
+ ldr r2, [r1, #0x0]
+ cmp r3, r2
+ bls _0202A698
+ mov r0, #0x1
+ bx lr
+_0202A698:
+ ldr r3, [r0, #0x4]
+ ldr r2, [r1, #0x4]
+ cmp r3, r2
+ bls _0202A6A4
+ mov r0, #0x1
+ bx lr
+_0202A6A4:
+ ldr r2, [r0, #0x8]
+ ldr r0, [r1, #0x8]
+ cmp r2, r0
+ bls _0202A6B0
+ mov r0, #0x1
+ bx lr
+_0202A6B0:
+ mov r0, #0x0
+ bx lr
+
+ thumb_func_start FUN_0202A6B4
+FUN_0202A6B4: ; 0x0202A6B4
+ push {r3-r7, lr}
+ sub sp, #0x10
+ add r6, r2, #0x0
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ mov r7, #0x1
+ cmp r6, #0xc8
+ bhi _0202A6C8
+ cmp r4, #0xa
+ bls _0202A6CE
+_0202A6C8:
+ add sp, #0x10
+ mov r0, #0x0
+ pop {r3-r7, pc}
+_0202A6CE:
+ ldr r0, [r5, #0x0]
+ lsr r1, r0, #0x18
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ str r1, [sp, #0x0]
+ lsr r1, r0, #0x10
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ str r1, [sp, #0x4]
+ lsr r1, r0, #0x8
+ lsl r1, r1, #0x18
+ lsl r0, r0, #0x18
+ lsr r1, r1, #0x18
+ lsr r0, r0, #0x18
+ str r1, [sp, #0x8]
+ str r0, [sp, #0xc]
+ add r0, r3, #0x0
+ add r1, sp, #0x0
+ bl FUN_0202A68C
+ cmp r0, #0x0
+ beq _0202A706
+ add r0, r5, #0x0
+ bl FUN_0202A670
+ add sp, #0x10
+ mov r0, #0x0
+ pop {r3-r7, pc}
+_0202A706:
+ sub r1, r4, #0x1
+ mov r0, #0xc8
+ mul r0, r1
+ sub r2, r6, #0x1
+ add r0, r2, r0
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ lsr r3, r0, #0x1f
+ lsl r2, r0, #0x1d
+ lsl r0, r0, #0x15
+ lsr r0, r0, #0x18
+ add r0, r5, r0
+ sub r2, r2, r3
+ mov r1, #0x1d
+ ror r2, r1
+ add r1, r3, r2
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ add r2, r7, #0x0
+ lsl r2, r1
+ lsl r1, r2, #0x18
+ ldrb r0, [r0, #0x4]
+ lsr r1, r1, #0x18
+ tst r0, r1
+ beq _0202A73E
+ add sp, #0x10
+ add r0, r7, #0x0
+ pop {r3-r7, pc}
+_0202A73E:
+ mov r0, #0x0
+ add sp, #0x10
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_0202A744
+FUN_0202A744: ; 0x0202A744
+ add r0, #0xfe
+ ldrb r0, [r0, #0x0]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_0202A74C
+FUN_0202A74C: ; 0x0202A74C
+ add r0, #0xff
+ ldrb r0, [r0, #0x0]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_0202A754
+FUN_0202A754: ; 0x0202A754
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ add r0, r1, #0x0
+ mov r1, #0x41
+ add r4, r2, #0x0
+ lsl r1, r1, #0x2
+ ldr r2, _0202A77C ; =0x0000063C
+ add r1, r5, r1
+ add r6, r3, #0x0
+ blx MI_CpuCopy8
+ ldr r0, _0202A780 ; =0x00000101
+ strb r4, [r5, r0]
+ sub r0, r0, #0x1
+ strb r6, [r5, r0]
+ mov r0, #0x1
+ add r5, #0xfe
+ strb r0, [r5, #0x0]
+ pop {r4-r6, pc}
+ nop
+_0202A77C: .word 0x0000063C
+_0202A780: .word 0x00000101
+
+ thumb_func_start FUN_0202A784
+FUN_0202A784: ; 0x0202A784
+ ldr r2, _0202A794 ; =0x00000101
+ ldrb r3, [r0, r2]
+ sub r2, r2, #0x1
+ strb r3, [r1, #0x0]
+ ldrb r0, [r0, r2]
+ strb r0, [r1, #0x1]
+ bx lr
+ nop
+_0202A794: .word 0x00000101
+
+ thumb_func_start FUN_0202A798
+FUN_0202A798: ; 0x0202A798
+ push {r3-r7, lr}
+ add r6, r1, #0x0
+ mov r1, #0x41
+ lsl r1, r1, #0x2
+ add r5, r0, r1
+ mov r0, #0xe4
+ add r4, r2, #0x0
+ mul r4, r0
+ ldr r0, _0202A834 ; =0x00002710
+ add r7, r6, #0x0
+ str r0, [r6, #0x0]
+ add r0, r5, r4
+ add r0, #0xc9
+ ldrb r0, [r0, #0x0]
+ add r7, #0x30
+ strh r0, [r6, #0x4]
+ add r0, r5, r4
+ add r0, #0xc8
+ ldrb r0, [r0, #0x0]
+ lsl r0, r0, #0x1f
+ lsr r0, r0, #0x1f
+ beq _0202A7EE
+ mov r0, #0x0
+ mov r1, #0x1a
+ mov r2, #0x11
+ mov r3, #0xb
+ bl FUN_0200A86C
+ add r1, r5, r4
+ add r1, #0xc8
+ ldrb r1, [r1, #0x0]
+ add r2, r6, #0x0
+ str r0, [sp, #0x0]
+ lsl r1, r1, #0x1e
+ lsr r1, r1, #0x1f
+ add r1, #0x16
+ add r2, #0x8
+ bl FUN_0200A968
+ ldr r0, [sp, #0x0]
+ bl FUN_0200A8B8
+ b _0202A7FC
+_0202A7EE:
+ add r0, r5, r4
+ add r1, r6, #0x0
+ add r0, #0xa8
+ add r1, #0x8
+ mov r2, #0x10
+ blx MI_CpuCopy8
+_0202A7FC:
+ add r0, r5, r4
+ add r1, r6, #0x0
+ add r0, #0xca
+ add r1, #0x18
+ mov r2, #0x8
+ blx MI_CpuCopy8
+ add r0, r5, r4
+ add r1, r6, #0x0
+ add r0, #0xd2
+ add r1, #0x20
+ mov r2, #0x8
+ blx MI_CpuCopy8
+ add r0, r5, r4
+ add r6, #0x28
+ add r0, #0xda
+ add r1, r6, #0x0
+ mov r2, #0x8
+ blx MI_CpuCopy8
+ add r0, r5, r4
+ add r1, r7, #0x0
+ mov r2, #0xa8
+ blx MI_CpuCopy8
+ pop {r3-r7, pc}
+ nop
+_0202A834: .word 0x00002710
+
+ thumb_func_start FUN_0202A838
+FUN_0202A838: ; 0x0202A838
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ add r0, r1, #0x0
+ mov r1, #0x1d
+ add r4, r2, #0x0
+ lsl r1, r1, #0x6
+ mov r2, #0xff
+ add r1, r5, r1
+ lsl r2, r2, #0x2
+ add r6, r3, #0x0
+ blx MI_CpuCopy8
+ ldr r0, _0202A860 ; =0x00000103
+ strb r4, [r5, r0]
+ sub r0, r0, #0x1
+ strb r6, [r5, r0]
+ mov r0, #0x1
+ add r5, #0xff
+ strb r0, [r5, #0x0]
+ pop {r4-r6, pc}
+ .balign 4
+_0202A860: .word 0x00000103
+
+ thumb_func_start FUN_0202A864
+FUN_0202A864: ; 0x0202A864
+ ldr r2, _0202A874 ; =0x00000103
+ ldrb r3, [r0, r2]
+ sub r2, r2, #0x1
+ strb r3, [r1, #0x0]
+ ldrb r0, [r0, r2]
+ strb r0, [r1, #0x1]
+ bx lr
+ nop
+_0202A874: .word 0x00000103
+
+ thumb_func_start FUN_0202A878
+FUN_0202A878: ; 0x0202A878
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r0, r1, #0x0
+ mov r1, #0xff
+ lsl r1, r1, #0x2
+ bl FUN_02016998
+ add r4, r0, #0x0
+ mov r0, #0x1d
+ lsl r0, r0, #0x6
+ mov r2, #0xff
+ add r0, r5, r0
+ add r1, r4, #0x0
+ lsl r2, r2, #0x2
+ blx MI_CpuCopy8
+ add r0, r4, #0x0
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_0202A89C
+FUN_0202A89C: ; 0x0202A89C
+ mov r0, #0xd
+ lsl r0, r0, #0x8
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_0202A8A4
+FUN_0202A8A4: ; 0x0202A8A4
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl FUN_0202A1E4
+ add r0, r4, #0x0
+ add r0, #0x3c
+ bl FUN_0202A1F0
+ mov r0, #0x69
+ lsl r0, r0, #0x2
+ add r0, r4, r0
+ bl FUN_0202A204
+ mov r0, #0x71
+ lsl r0, r0, #0x2
+ add r0, r4, r0
+ bl FUN_0202A230
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0202A8CC
+FUN_0202A8CC: ; 0x0202A8CC
+ ldr r3, _0202A8D4 ; =FUN_02022610
+ mov r1, #0x17
+ bx r3
+ nop
+_0202A8D4: .word FUN_02022610
+
+ thumb_func_start FUN_0202A8D8
+FUN_0202A8D8: ; 0x0202A8D8
+ push {r3, lr}
+ mov r1, #0x17
+ bl FUN_02022610
+ add r0, #0x3c
+ pop {r3, pc}
+
+ thumb_func_start FUN_0202A8E4
+FUN_0202A8E4: ; 0x0202A8E4
+ push {r3, lr}
+ mov r1, #0x17
+ bl FUN_02022610
+ mov r1, #0x71
+ lsl r1, r1, #0x2
+ add r0, r0, r1
+ pop {r3, pc}
+
+ thumb_func_start FUN_0202A8F4
+FUN_0202A8F4: ; 0x0202A8F4
+ mov r0, #0xe
+ bx lr
+
+ thumb_func_start FUN_0202A8F8
+FUN_0202A8F8: ; 0x0202A8F8
+ mov r1, #0x0
+ strb r1, [r0, #0x0]
+ strb r1, [r0, #0x1]
+ strb r1, [r0, #0x2]
+ strb r1, [r0, #0x3]
+ strb r1, [r0, #0x4]
+ strb r1, [r0, #0x5]
+ strb r1, [r0, #0x6]
+ strb r1, [r0, #0x7]
+ strb r1, [r0, #0x8]
+ strb r1, [r0, #0x9]
+ strb r1, [r0, #0xa]
+ strb r1, [r0, #0xb]
+ strb r1, [r0, #0xc]
+ strb r1, [r0, #0xd]
+ bx lr
+
+ thumb_func_start FUN_0202A918
+FUN_0202A918: ; 0x0202A918
+ ldr r3, _0202A920 ; =FUN_02022610
+ mov r1, #0x18
+ bx r3
+ nop
+_0202A920: .word FUN_02022610
+
+ thumb_func_start FUN_0202A924
+FUN_0202A924: ; 0x0202A924
+ mov r0, #0x45
+ lsl r0, r0, #0x2
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_0202A92C
+FUN_0202A92C: ; 0x0202A92C
+ push {r4, lr}
+ mov r2, #0x45
+ add r4, r0, #0x0
+ mov r1, #0x0
+ lsl r2, r2, #0x2
+ blx Call_FillMemWithValue
+ bl FUN_0201BA60
+ str r0, [r4, #0x0]
+ bl FUN_0201BA60
+ str r0, [r4, #0x4]
+ mov r1, #0x0
+ add r3, r4, #0x0
+ ldr r0, _0202A980 ; =0x0000FFFF
+ str r1, [r4, #0x8]
+ strh r0, [r4, #0xc]
+ strh r0, [r4, #0xe]
+ mov r0, #0x15
+ add r3, #0x10
+ strb r0, [r4, #0x10]
+ add r2, r1, #0x0
+_0202A95A:
+ str r2, [r3, #0x4]
+ strb r2, [r3, #0x8]
+ strb r2, [r3, #0x9]
+ strb r2, [r3, #0xa]
+ strb r2, [r3, #0xb]
+ add r1, r1, #0x1
+ add r3, #0x8
+ cmp r1, #0x15
+ blt _0202A95A
+ ldr r0, _0202A984 ; =0x0000010F
+ strb r2, [r4, r0]
+ add r1, r0, #0x1
+ strb r2, [r4, r1]
+ add r1, r0, #0x2
+ strb r2, [r4, r1]
+ add r0, r0, #0x3
+ strb r2, [r4, r0]
+ pop {r4, pc}
+ nop
+_0202A980: .word 0x0000FFFF
+_0202A984: .word 0x0000010F
+
+ thumb_func_start FUN_0202A988
+FUN_0202A988: ; 0x0202A988
+ str r1, [r0, #0x0]
+ str r1, [r0, #0x4]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_0202A990
+FUN_0202A990: ; 0x0202A990
+ push {r3, lr}
+ cmp r1, #0x1
+ beq _0202A99C
+ cmp r1, #0x2
+ beq _0202A9A0
+ b _0202A9A4
+_0202A99C:
+ ldr r0, [r0, #0x0]
+ pop {r3, pc}
+_0202A9A0:
+ ldr r0, [r0, #0x4]
+ pop {r3, pc}
+_0202A9A4:
+ bl ErrorHandling
+ mov r0, #0x0
+ pop {r3, pc}
+
+ thumb_func_start FUN_0202A9AC
+FUN_0202A9AC: ; 0x0202A9AC
+ add r0, #0xbc
+ bx lr
+
+ thumb_func_start FUN_0202A9B0
+FUN_0202A9B0: ; 0x0202A9B0
+ ldr r3, _0202A9B8 ; =FUN_02022610
+ mov r1, #0x19
+ bx r3
+ nop
+_0202A9B8: .word FUN_02022610
+
+ thumb_func_start FUN_0202A9BC
+FUN_0202A9BC: ; 0x0202A9BC
+ add r0, #0x10
+ bx lr
+
+ thumb_func_start FUN_0202A9C0
+FUN_0202A9C0: ; 0x0202A9C0
+ ldrb r0, [r0, #0x0]
+ bx lr
+
+ thumb_func_start FUN_0202A9C4
+FUN_0202A9C4: ; 0x0202A9C4
+ strb r0, [r1, #0x0]
+ bx lr
+
+ thumb_func_start FUN_0202A9C8
+FUN_0202A9C8: ; 0x0202A9C8
+ add r1, r1, #0x4
+ lsl r0, r0, #0x3
+ add r0, r1, r0
+ bx lr
+
+ thumb_func_start FUN_0202A9D0
+FUN_0202A9D0: ; 0x0202A9D0
+ push {r3-r7, lr}
+ add r5, r1, #0x0
+ bl FUN_0202A9B0
+ add r6, r0, #0x0
+ mov r4, #0x0
+ add r6, #0x10
+ add r7, r4, #0x0
+_0202A9E0:
+ lsl r0, r4, #0x18
+ lsr r0, r0, #0x18
+ add r1, r6, #0x0
+ bl FUN_0202A9C8
+ ldr r1, [r0, #0x0]
+ cmp r1, #0x0
+ beq _0202A9F8
+ sub r1, r1, r5
+ str r1, [r0, #0x0]
+ bpl _0202A9F8
+ str r7, [r0, #0x0]
+_0202A9F8:
+ add r4, r4, #0x1
+ cmp r4, #0x15
+ blt _0202A9E0
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_0202AA00
+FUN_0202AA00: ; 0x0202AA00
+ push {r3, lr}
+ bl FUN_0202A9B0
+ ldr r1, _0202AA10 ; =0x0000010F
+ mov r2, #0x1
+ strb r2, [r0, r1]
+ pop {r3, pc}
+ nop
+_0202AA10: .word 0x0000010F
+
+ thumb_func_start FUN_0202AA14
+FUN_0202AA14: ; 0x0202AA14
+ ldr r1, _0202AA1C ; =0x0000010F
+ ldrb r0, [r0, r1]
+ bx lr
+ nop
+_0202AA1C: .word 0x0000010F
+
+ thumb_func_start FUN_0202AA20
+FUN_0202AA20: ; 0x0202AA20
+ add r2, r0, #0x0
+ add r2, #0xc8
+ ldr r3, [r2, #0x0]
+ cmp r3, r1
+ beq _0202AA34
+ add r2, r0, #0x0
+ add r2, #0xcc
+ str r3, [r2, #0x0]
+ add r0, #0xc8
+ str r1, [r0, #0x0]
+_0202AA34:
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_0202AA38
+FUN_0202AA38: ; 0x0202AA38
+ add r0, #0xcc
+ ldr r0, [r0, #0x0]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_0202AA40
+FUN_0202AA40: ; 0x0202AA40
+ push {r3-r5, lr}
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ cmp r4, #0x3
+ blo _0202AA4E
+ bl ErrorHandling
+_0202AA4E:
+ mov r0, #0x43
+ add r1, r5, r4
+ lsl r0, r0, #0x2
+ ldrb r0, [r1, r0]
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_0202AA58
+FUN_0202AA58: ; 0x0202AA58
+ push {r4-r6, lr}
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ add r6, r2, #0x0
+ cmp r4, #0x3
+ blo _0202AA68
+ bl ErrorHandling
+_0202AA68:
+ mov r0, #0x43
+ add r1, r5, r4
+ lsl r0, r0, #0x2
+ strb r6, [r1, r0]
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_0202AA74
+FUN_0202AA74: ; 0x0202AA74
+ push {r3-r5, lr}
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ cmp r4, #0x3
+ blo _0202AA82
+ bl ErrorHandling
+_0202AA82:
+ mov r0, #0x14
+ mul r0, r4
+ add r0, r5, r0
+ add r0, #0xe2
+ ldrb r0, [r0, #0x0]
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_0202AA90
+FUN_0202AA90: ; 0x0202AA90
+ ldr r2, [r0, #0x0]
+ mov r1, #0x14
+ mov r0, #0x0
+_0202AA96:
+ strb r0, [r2, #0x0]
+ add r2, r2, #0x1
+ sub r1, r1, #0x1
+ bne _0202AA96
+ bx lr
+
+ thumb_func_start FUN_0202AAA0
+FUN_0202AAA0: ; 0x0202AAA0
+ push {r3-r5, lr}
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ cmp r4, #0x3
+ blo _0202AAAE
+ bl ErrorHandling
+_0202AAAE:
+ mov r0, #0x14
+ add r5, #0xd0
+ mul r0, r4
+ add r0, r5, r0
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_0202AAB8
+FUN_0202AAB8: ; 0x0202AAB8
+ cmp r1, #0x8
+ bhi _0202AAF8
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #0x6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_0202AAC8: ; jump table (using 16-bit offset)
+ .short _0202AAF8 - _0202AAC8 - 2; case 0
+ .short _0202AADA - _0202AAC8 - 2; case 1
+ .short _0202AADE - _0202AAC8 - 2; case 2
+ .short _0202AAE2 - _0202AAC8 - 2; case 3
+ .short _0202AAE6 - _0202AAC8 - 2; case 4
+ .short _0202AAEA - _0202AAC8 - 2; case 5
+ .short _0202AAEE - _0202AAC8 - 2; case 6
+ .short _0202AAF2 - _0202AAC8 - 2; case 7
+ .short _0202AAF6 - _0202AAC8 - 2; case 8
+_0202AADA:
+ ldr r0, [r0, #0x0]
+ bx lr
+_0202AADE:
+ ldr r0, [r0, #0x4]
+ bx lr
+_0202AAE2:
+ ldr r0, [r0, #0x8]
+ bx lr
+_0202AAE6:
+ ldrh r0, [r0, #0xc]
+ bx lr
+_0202AAEA:
+ ldrh r0, [r0, #0xe]
+ bx lr
+_0202AAEE:
+ ldrb r0, [r0, #0x10]
+ bx lr
+_0202AAF2:
+ ldrb r0, [r0, #0x11]
+ bx lr
+_0202AAF6:
+ ldrb r0, [r0, #0x12]
+_0202AAF8:
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_0202AAFC
+FUN_0202AAFC: ; 0x0202AAFC
+ cmp r1, #0x8
+ bhi _0202AB3C
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #0x6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_0202AB0C: ; jump table (using 16-bit offset)
+ .short _0202AB3C - _0202AB0C - 2; case 0
+ .short _0202AB1E - _0202AB0C - 2; case 1
+ .short _0202AB22 - _0202AB0C - 2; case 2
+ .short _0202AB26 - _0202AB0C - 2; case 3
+ .short _0202AB2A - _0202AB0C - 2; case 4
+ .short _0202AB2E - _0202AB0C - 2; case 5
+ .short _0202AB32 - _0202AB0C - 2; case 6
+ .short _0202AB36 - _0202AB0C - 2; case 7
+ .short _0202AB3A - _0202AB0C - 2; case 8
+_0202AB1E:
+ str r2, [r0, #0x0]
+ bx lr
+_0202AB22:
+ str r2, [r0, #0x4]
+ bx lr
+_0202AB26:
+ str r2, [r0, #0x8]
+ bx lr
+_0202AB2A:
+ strh r2, [r0, #0xc]
+ bx lr
+_0202AB2E:
+ strh r2, [r0, #0xe]
+ bx lr
+_0202AB32:
+ strb r2, [r0, #0x10]
+ bx lr
+_0202AB36:
+ strb r2, [r0, #0x11]
+ bx lr
+_0202AB3A:
+ strb r2, [r0, #0x12]
+_0202AB3C:
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_0202AB40
+FUN_0202AB40: ; 0x0202AB40
+ ldr r1, _0202AB48 ; =0x00000111
+ add r0, r0, r1
+ bx lr
+ nop
+_0202AB48: .word 0x00000111
+
+ thumb_func_start FUN_0202AB4C
+FUN_0202AB4C: ; 0x0202AB4C
+ mov r1, #0x11
+ lsl r1, r1, #0x4
+ add r0, r0, r1
+ bx lr
+
+ thumb_func_start FUN_0202AB54
+FUN_0202AB54: ; 0x0202AB54
+ mov r1, #0x11
+ lsl r1, r1, #0x4
+ ldrb r0, [r0, r1]
+ cmp r0, #0x0
+ bne _0202AB62
+ mov r0, #0x1
+ bx lr
+_0202AB62:
+ mov r0, #0x0
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_0202AB68
+FUN_0202AB68: ; 0x0202AB68
+ push {r3-r5, lr}
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ cmp r4, #0x2
+ bls _0202AB76
+ bl ErrorHandling
+_0202AB76:
+ ldr r0, _0202AB7C ; =0x00000112
+ strb r4, [r5, r0]
+ pop {r3-r5, pc}
+ .balign 4
+_0202AB7C: .word 0x00000112
+
+ thumb_func_start FUN_0202AB80
+FUN_0202AB80: ; 0x0202AB80
+ ldr r1, _0202AB88 ; =0x00000112
+ ldrb r0, [r0, r1]
+ bx lr
+ nop
+_0202AB88: .word 0x00000112
+
+ thumb_func_start FUN_0202AB8C
+FUN_0202AB8C: ; 0x0202AB8C
+ push {r3-r5, lr}
+ add r5, r1, #0x0
+ add r4, r2, #0x0
+ bl FUN_0202A9B0
+ ldrh r1, [r0, #0xc]
+ strh r1, [r5, #0x0]
+ ldrh r0, [r0, #0xe]
+ strh r0, [r4, #0x0]
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_0202ABA0
+FUN_0202ABA0: ; 0x0202ABA0
+ push {r3-r5, lr}
+ add r5, r1, #0x0
+ bl FUN_0202A9B0
+ add r4, r0, #0x0
+ cmp r5, #0x10
+ blo _0202ABB2
+ bl ErrorHandling
+_0202ABB2:
+ ldrh r0, [r4, #0xc]
+ strh r0, [r4, #0xe]
+ strh r5, [r4, #0xc]
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_0202ABBC
+FUN_0202ABBC: ; 0x0202ABBC
+ ldr r3, _0202ABC4 ; =FUN_02022610
+ mov r1, #0x1a
+ bx r3
+ nop
+_0202ABC4: .word FUN_02022610
+
+ thumb_func_start FUN_0202ABC8
+FUN_0202ABC8: ; 0x0202ABC8
+ mov r0, #0xf4
+ bx lr
+
+ thumb_func_start FUN_0202ABCC
+FUN_0202ABCC: ; 0x0202ABCC
+ ldr r3, _0202ABD8 ; =MIi_CpuClearFast
+ add r1, r0, #0x0
+ mov r0, #0x0
+ mov r2, #0xf4
+ bx r3
+ nop
+_0202ABD8: .word MIi_CpuClearFast
+
+ thumb_func_start FUN_0202ABDC
+FUN_0202ABDC: ; 0x0202ABDC
+ add r0, #0xec
+ ldrh r0, [r0, #0x0]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_0202ABE4
+FUN_0202ABE4: ; 0x0202ABE4
+ add r0, #0xec
+ strh r1, [r0, #0x0]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_0202ABEC
+FUN_0202ABEC: ; 0x0202ABEC
+ ldr r3, _0202ABF4 ; =MIi_CpuCopyFast
+ mov r2, #0xec
+ bx r3
+ nop
+_0202ABF4: .word MIi_CpuCopyFast
+
+ thumb_func_start FUN_0202ABF8
+FUN_0202ABF8: ; 0x0202ABF8
+ ldr r3, _0202AC04 ; =MIi_CpuCopyFast
+ add r2, r0, #0x0
+ add r0, r1, #0x0
+ add r1, r2, #0x0
+ mov r2, #0xec
+ bx r3
+ .balign 4
+_0202AC04: .word MIi_CpuCopyFast
+
+ thumb_func_start FUN_0202AC08
+FUN_0202AC08: ; 0x0202AC08
+ add r0, #0xf0
+ ldr r0, [r0, #0x0]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_0202AC10
+FUN_0202AC10: ; 0x0202AC10
+ add r0, #0xf0
+ str r1, [r0, #0x0]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_0202AC18
+FUN_0202AC18: ; 0x0202AC18
+ add r0, #0xee
+ ldrh r0, [r0, #0x0]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_0202AC20
+FUN_0202AC20: ; 0x0202AC20
+ ldr r0, _0202AC24 ; =0x00001354
+ bx lr
+ .balign 4
+_0202AC24: .word 0x00001354
+
+ thumb_func_start FUN_0202AC28
+FUN_0202AC28: ; 0x0202AC28
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_0202AC2C
+FUN_0202AC2C: ; 0x0202AC2C
+ push {r4-r6, lr}
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ cmp r4, #0x8
+ blt _0202AC3A
+ bl ErrorHandling
+_0202AC3A:
+ mov r0, #0x1
+ lsl r0, r0, #0x8
+ add r6, r5, r0
+ lsl r3, r4, #0x2
+ ldr r2, [r6, r3]
+ ldr r1, _0202AC60 ; =0xEDB88320
+ cmp r2, r1
+ bne _0202AC58
+ add r0, #0x2c
+ add r1, r5, r0
+ lsl r0, r4, #0x6
+ add r0, r4, r0
+ lsl r0, r0, #0x2
+ add r0, r1, r0
+ pop {r4-r6, pc}
+_0202AC58:
+ mov r0, #0x0
+ str r0, [r6, r3]
+ pop {r4-r6, pc}
+ nop
+_0202AC60: .word 0xEDB88320
+
+ thumb_func_start FUN_0202AC64
+FUN_0202AC64: ; 0x0202AC64
+ push {r3-r5, lr}
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ cmp r4, #0x3
+ blt _0202AC72
+ bl ErrorHandling
+_0202AC72:
+ lsl r0, r4, #0x2
+ add r1, r5, r0
+ mov r0, #0x12
+ lsl r0, r0, #0x4
+ ldr r0, [r1, r0]
+ cmp r0, #0x0
+ beq _0202AC8E
+ ldr r0, _0202AC94 ; =0x0000094C
+ add r1, r5, r0
+ mov r0, #0xd6
+ lsl r0, r0, #0x2
+ mul r0, r4
+ add r0, r1, r0
+ pop {r3-r5, pc}
+_0202AC8E:
+ mov r0, #0x0
+ pop {r3-r5, pc}
+ nop
+_0202AC94: .word 0x0000094C
+
+ thumb_func_start FUN_0202AC98
+FUN_0202AC98: ; 0x0202AC98
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ str r1, [sp, #0x0]
+ add r7, r2, #0x0
+ bl FUN_0202ADF0
+ cmp r0, #0x0
+ bne _0202ACAC
+ mov r0, #0x0
+ pop {r3-r7, pc}
+_0202ACAC:
+ mov r0, #0x1
+ mov r4, #0x0
+ add r2, r5, #0x0
+ lsl r0, r0, #0x8
+_0202ACB4:
+ ldr r1, [r2, r0]
+ cmp r1, #0x0
+ bne _0202ACF6
+ lsl r0, r4, #0x6
+ mov r2, #0x4b
+ add r0, r4, r0
+ lsl r2, r2, #0x2
+ lsl r6, r0, #0x2
+ add r1, r5, r2
+ ldr r0, [sp, #0x0]
+ add r1, r1, r6
+ sub r2, #0x28
+ blx MI_CpuCopy8
+ lsl r0, r4, #0x2
+ add r1, r5, r0
+ mov r0, #0x1
+ ldr r2, _0202AD04 ; =0xEDB88320
+ lsl r0, r0, #0x8
+ str r2, [r1, r0]
+ add r0, #0x2e
+ add r1, r5, r0
+ ldrh r0, [r1, r6]
+ mov r2, #0x3
+ bic r0, r2
+ lsl r2, r7, #0x10
+ lsr r3, r2, #0x10
+ mov r2, #0x3
+ and r2, r3
+ orr r0, r2
+ strh r0, [r1, r6]
+ mov r0, #0x1
+ pop {r3-r7, pc}
+_0202ACF6:
+ add r4, r4, #0x1
+ add r2, r2, #0x4
+ cmp r4, #0x8
+ blt _0202ACB4
+ mov r0, #0x0
+ pop {r3-r7, pc}
+ nop
+_0202AD04: .word 0xEDB88320
+
+ thumb_func_start FUN_0202AD08
+FUN_0202AD08: ; 0x0202AD08
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ add r6, r1, #0x0
+ bl FUN_0202AE0C
+ cmp r0, #0x0
+ bne _0202AD1A
+ mov r0, #0x0
+ pop {r4-r6, pc}
+_0202AD1A:
+ ldr r0, _0202AD88 ; =0x00000152
+ ldrb r0, [r6, r0]
+ lsl r0, r0, #0x1c
+ lsr r0, r0, #0x1f
+ cmp r0, #0x1
+ bne _0202AD34
+ add r0, r5, #0x0
+ bl FUN_0202ADF0
+ cmp r0, #0x0
+ bne _0202AD34
+ mov r0, #0x0
+ pop {r4-r6, pc}
+_0202AD34:
+ mov r0, #0x12
+ mov r4, #0x0
+ add r2, r5, #0x0
+ lsl r0, r0, #0x4
+_0202AD3C:
+ ldr r1, [r2, r0]
+ cmp r1, #0x0
+ bne _0202AD7C
+ ldr r1, _0202AD8C ; =0x0000094C
+ mov r2, #0xd6
+ add r3, r5, r1
+ lsl r2, r2, #0x2
+ add r1, r4, #0x0
+ mul r1, r2
+ add r0, r6, #0x0
+ add r1, r3, r1
+ blx MI_CpuCopy8
+ lsl r0, r4, #0x2
+ add r1, r5, r0
+ mov r0, #0x12
+ ldr r2, _0202AD90 ; =0xEDB88320
+ lsl r0, r0, #0x4
+ str r2, [r1, r0]
+ add r0, #0x32
+ ldrb r0, [r6, r0]
+ lsl r0, r0, #0x1c
+ lsr r0, r0, #0x1f
+ cmp r0, #0x1
+ bne _0202AD78
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ add r2, r4, #0x1
+ bl FUN_0202AC98
+_0202AD78:
+ mov r0, #0x1
+ pop {r4-r6, pc}
+_0202AD7C:
+ add r4, r4, #0x1
+ add r2, r2, #0x4
+ cmp r4, #0x3
+ blt _0202AD3C
+ mov r0, #0x0
+ pop {r4-r6, pc}
+ .balign 4
+_0202AD88: .word 0x00000152
+_0202AD8C: .word 0x0000094C
+_0202AD90: .word 0xEDB88320
+
+ thumb_func_start FUN_0202AD94
+FUN_0202AD94: ; 0x0202AD94
+ push {r3-r5, lr}
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ sub r0, r4, #0x1
+ cmp r0, #0x8
+ blt _0202ADA4
+ bl ErrorHandling
+_0202ADA4:
+ sub r4, r4, #0x1
+ lsl r0, r4, #0x2
+ add r1, r5, r0
+ mov r0, #0x1
+ mov r2, #0x0
+ lsl r0, r0, #0x8
+ str r2, [r1, r0]
+ add r0, #0x2e
+ add r3, r5, r0
+ lsl r0, r4, #0x6
+ add r0, r4, r0
+ lsl r2, r0, #0x2
+ ldrh r1, [r3, r2]
+ mov r0, #0x3
+ bic r1, r0
+ strh r1, [r3, r2]
+ mov r0, #0x1
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_0202ADC8
+FUN_0202ADC8: ; 0x0202ADC8
+ push {r3-r5, lr}
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ cmp r4, #0x3
+ blt _0202ADD6
+ bl ErrorHandling
+_0202ADD6:
+ lsl r0, r4, #0x2
+ add r1, r5, r0
+ mov r0, #0x12
+ mov r2, #0x0
+ lsl r0, r0, #0x4
+ str r2, [r1, r0]
+ add r0, r5, #0x0
+ add r1, r4, #0x1
+ bl FUN_0202AEC4
+ mov r0, #0x1
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_0202ADF0
+FUN_0202ADF0: ; 0x0202ADF0
+ mov r1, #0x1
+ mov r3, #0x0
+ lsl r1, r1, #0x8
+_0202ADF6:
+ ldr r2, [r0, r1]
+ cmp r2, #0x0
+ bne _0202AE00
+ mov r0, #0x1
+ bx lr
+_0202AE00:
+ add r3, r3, #0x1
+ add r0, r0, #0x4
+ cmp r3, #0x8
+ blt _0202ADF6
+ mov r0, #0x0
+ bx lr
+
+ thumb_func_start FUN_0202AE0C
+FUN_0202AE0C: ; 0x0202AE0C
+ mov r1, #0x12
+ mov r3, #0x0
+ lsl r1, r1, #0x4
+_0202AE12:
+ ldr r2, [r0, r1]
+ cmp r2, #0x0
+ bne _0202AE1C
+ mov r0, #0x1
+ bx lr
+_0202AE1C:
+ add r3, r3, #0x1
+ add r0, r0, #0x4
+ cmp r3, #0x3
+ blt _0202AE12
+ mov r0, #0x0
+ bx lr
+
+ thumb_func_start FUN_0202AE28
+FUN_0202AE28: ; 0x0202AE28
+ push {r3-r5, lr}
+ add r5, r1, #0x0
+ add r4, r0, #0x0
+ cmp r5, #0x8
+ blt _0202AE36
+ bl ErrorHandling
+_0202AE36:
+ lsl r0, r5, #0x2
+ add r1, r4, r0
+ mov r0, #0x1
+ lsl r0, r0, #0x8
+ ldr r0, [r1, r0]
+ cmp r0, #0x0
+ bne _0202AE48
+ mov r0, #0x0
+ pop {r3-r5, pc}
+_0202AE48:
+ mov r0, #0x1
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_0202AE4C
+FUN_0202AE4C: ; 0x0202AE4C
+ push {r3-r5, lr}
+ add r5, r1, #0x0
+ add r4, r0, #0x0
+ cmp r5, #0x3
+ blt _0202AE5A
+ bl ErrorHandling
+_0202AE5A:
+ lsl r0, r5, #0x2
+ add r1, r4, r0
+ mov r0, #0x12
+ lsl r0, r0, #0x4
+ ldr r0, [r1, r0]
+ cmp r0, #0x0
+ bne _0202AE6C
+ mov r0, #0x0
+ pop {r3-r5, pc}
+_0202AE6C:
+ mov r0, #0x1
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_0202AE70
+FUN_0202AE70: ; 0x0202AE70
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ mov r4, #0x0
+_0202AE76:
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_0202AE4C
+ cmp r0, #0x1
+ bne _0202AE86
+ mov r0, #0x1
+ pop {r3-r5, pc}
+_0202AE86:
+ add r4, r4, #0x1
+ cmp r4, #0x3
+ blt _0202AE76
+ mov r0, #0x0
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_0202AE90
+FUN_0202AE90: ; 0x0202AE90
+ push {r3-r4}
+ cmp r1, #0x0
+ beq _0202AEB8
+ ldr r2, _0202AEC0 ; =0x0000012E
+ mov r3, #0x0
+ add r4, r0, r2
+ add r0, r2, #0x0
+ sub r0, #0x2a
+_0202AEA0:
+ ldrh r2, [r4, #0x0]
+ lsl r2, r2, #0x1e
+ lsr r2, r2, #0x1e
+ cmp r1, r2
+ bne _0202AEB0
+ mov r0, #0x1
+ pop {r3-r4}
+ bx lr
+_0202AEB0:
+ add r3, r3, #0x1
+ add r4, r4, r0
+ cmp r3, #0x8
+ blt _0202AEA0
+_0202AEB8:
+ mov r0, #0x0
+ pop {r3-r4}
+ bx lr
+ nop
+_0202AEC0: .word 0x0000012E
+
+ thumb_func_start FUN_0202AEC4
+FUN_0202AEC4: ; 0x0202AEC4
+ push {r3-r5, lr}
+ cmp r1, #0x0
+ beq _0202AEEE
+ ldr r3, _0202AEF0 ; =0x0000012E
+ mov r4, #0x41
+ mov r2, #0x0
+ add r3, r0, r3
+ lsl r4, r4, #0x2
+_0202AED4:
+ ldrh r5, [r3, #0x0]
+ lsl r5, r5, #0x1e
+ lsr r5, r5, #0x1e
+ cmp r1, r5
+ bne _0202AEE6
+ add r1, r2, #0x1
+ bl FUN_0202AD94
+ pop {r3-r5, pc}
+_0202AEE6:
+ add r2, r2, #0x1
+ add r3, r3, r4
+ cmp r2, #0x8
+ blt _0202AED4
+_0202AEEE:
+ pop {r3-r5, pc}
+ .balign 4
+_0202AEF0: .word 0x0000012E
+
+ thumb_func_start FUN_0202AEF4
+FUN_0202AEF4: ; 0x0202AEF4
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ mov r0, #0x2
+ add r4, r1, #0x0
+ lsl r0, r0, #0xa
+ cmp r4, r0
+ blt _0202AF06
+ bl ErrorHandling
+_0202AF06:
+ mov r0, #0x1
+ mov r1, #0x7
+ add r2, r4, #0x0
+ and r2, r1
+ add r1, r0, #0x0
+ lsl r1, r2
+ asr r2, r4, #0x2
+ lsr r2, r2, #0x1d
+ add r2, r4, r2
+ asr r2, r2, #0x3
+ ldrb r2, [r5, r2]
+ tst r1, r2
+ bne _0202AF22
+ mov r0, #0x0
+_0202AF22:
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_0202AF24
+FUN_0202AF24: ; 0x0202AF24
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ mov r0, #0x2
+ add r4, r1, #0x0
+ lsl r0, r0, #0xa
+ cmp r4, r0
+ blt _0202AF36
+ bl ErrorHandling
+_0202AF36:
+ asr r0, r4, #0x2
+ lsr r0, r0, #0x1d
+ add r0, r4, r0
+ asr r0, r0, #0x3
+ mov r1, #0x7
+ ldrb r3, [r5, r0]
+ mov r2, #0x1
+ and r1, r4
+ lsl r2, r1
+ add r1, r3, #0x0
+ orr r1, r2
+ strb r1, [r5, r0]
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_0202AF50
+FUN_0202AF50: ; 0x0202AF50
+ ldr r3, _0202AF58 ; =FUN_0202AEF4
+ ldr r1, _0202AF5C ; =0x000007FF
+ bx r3
+ nop
+_0202AF58: .word FUN_0202AEF4
+_0202AF5C: .word 0x000007FF
+
+ thumb_func_start FUN_0202AF60
+FUN_0202AF60: ; 0x0202AF60
+ ldr r3, _0202AF68 ; =FUN_0202AF24
+ ldr r1, _0202AF6C ; =0x000007FF
+ bx r3
+ nop
+_0202AF68: .word FUN_0202AF24
+_0202AF6C: .word 0x000007FF
+
+ thumb_func_start FUN_0202AF70
+FUN_0202AF70: ; 0x0202AF70
+ push {r3, lr}
+ ldr r1, _0202AF84 ; =0x021C59D4
+ ldr r1, [r1, #0x0]
+ cmp r1, #0x0
+ bne _0202AF82
+ bl FUN_0202251C
+ ldr r1, _0202AF84 ; =0x021C59D4
+ str r0, [r1, #0x0]
+_0202AF82:
+ pop {r3, pc}
+ .balign 4
+_0202AF84: .word 0x021C59D4
+
+ thumb_func_start FUN_0202AF88
+FUN_0202AF88: ; 0x0202AF88
+ ldr r0, _0202AF98 ; =0x021C59D4
+ ldr r1, [r0, #0x0]
+ cmp r1, #0x0
+ beq _0202AF94
+ mov r1, #0x0
+ str r1, [r0, #0x0]
+_0202AF94:
+ bx lr
+ nop
+_0202AF98: .word 0x021C59D4
+
+ thumb_func_start FUN_0202AF9C
+FUN_0202AF9C: ; 0x0202AF9C
+ push {r3-r5, lr}
+ ldr r4, _0202AFBC ; =0x021C59D4
+ mov r5, #0x0
+_0202AFA2:
+ ldr r0, [r4, #0x0]
+ add r1, r5, #0x0
+ bl FUN_0202AE28
+ cmp r0, #0x1
+ bne _0202AFB2
+ add r0, r5, #0x1
+ pop {r3-r5, pc}
+_0202AFB2:
+ add r5, r5, #0x1
+ cmp r5, #0x8
+ blt _0202AFA2
+ mov r0, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+_0202AFBC: .word 0x021C59D4
+
+ thumb_func_start FUN_0202AFC0
+FUN_0202AFC0: ; 0x0202AFC0
+ push {r4, lr}
+ add r4, r0, #0x0
+ bne _0202AFCA
+ mov r0, #0x0
+ pop {r4, pc}
+_0202AFCA:
+ sub r0, r4, #0x1
+ cmp r0, #0x8
+ blt _0202AFD4
+ bl ErrorHandling
+_0202AFD4:
+ ldr r0, _0202AFF8 ; =0x021C59D4
+ sub r1, r4, #0x1
+ ldr r0, [r0, #0x0]
+ bl FUN_0202AE28
+ cmp r0, #0x1
+ bne _0202AFF4
+ ldr r0, _0202AFF8 ; =0x021C59D4
+ sub r1, r4, #0x1
+ ldr r0, [r0, #0x0]
+ bl FUN_0202AC2C
+ cmp r0, #0x0
+ beq _0202AFF4
+ ldrh r0, [r0, #0x0]
+ pop {r4, pc}
+_0202AFF4:
+ mov r0, #0x0
+ pop {r4, pc}
+ .balign 4
+_0202AFF8: .word 0x021C59D4
+
+ thumb_func_start FUN_0202AFFC
+FUN_0202AFFC: ; 0x0202AFFC
+ cmp r0, #0x0
+ beq _0202B016
+ ldr r1, _0202B01C ; =0x021C59D4
+ ldr r2, [r1, #0x0]
+ mov r1, #0x13
+ lsl r1, r1, #0x4
+ add r2, r2, r1
+ sub r1, r0, #0x1
+ lsl r0, r1, #0x6
+ add r0, r1, r0
+ lsl r0, r0, #0x2
+ add r0, r2, r0
+ bx lr
+_0202B016:
+ mov r0, #0x0
+ bx lr
+ nop
+_0202B01C: .word 0x021C59D4
+
+ thumb_func_start FUN_0202B020
+FUN_0202B020: ; 0x0202B020
+ add r1, r0, #0x0
+ ldr r0, _0202B02C ; =0x021C59D4
+ ldr r3, _0202B030 ; =FUN_0202AD94
+ ldr r0, [r0, #0x0]
+ bx r3
+ nop
+_0202B02C: .word 0x021C59D4
+_0202B030: .word FUN_0202AD94
+
+ thumb_func_start FUN_0202B034
+FUN_0202B034: ; 0x0202B034
+ ldr r0, _0202B038 ; =0x00002AB0
+ bx lr
+ .balign 4
+_0202B038: .word 0x00002AB0
+
+ thumb_func_start FUN_0202B03C
+FUN_0202B03C: ; 0x0202B03C
+ ldr r3, _0202B048 ; =MIi_CpuClear32
+ add r1, r0, #0x0
+ mov r0, #0x0
+ ldr r2, _0202B04C ; =0x00002AB0
+ bx r3
+ nop
+_0202B048: .word MIi_CpuClear32
+_0202B04C: .word 0x00002AB0
+
+ thumb_func_start FUN_0202B050
+FUN_0202B050: ; 0x0202B050
+ push {r3-r7, lr}
+ sub sp, #0x18
+ str r0, [sp, #0x0]
+ str r1, [sp, #0x4]
+ str r2, [sp, #0x8]
+ cmp r0, #0x0
+ bne _0202B062
+ bl ErrorHandling
+_0202B062:
+ ldr r1, _0202B1E0 ; =0x00002AA8
+ ldr r0, [sp, #0x0]
+ ldr r0, [r0, r1]
+ cmp r0, #0x1e
+ blo _0202B070
+ bl ErrorHandling
+_0202B070:
+ ldr r1, _0202B1E4 ; =0x00002AAC
+ ldr r0, [sp, #0x0]
+ ldr r2, [r0, r1]
+ ldr r0, _0202B1E8 ; =0x0000270F
+ cmp r2, r0
+ blo _0202B07E
+ b _0202B1DC
+_0202B07E:
+ ldr r0, [sp, #0x0]
+ sub r1, r1, #0x4
+ ldr r1, [r0, r1]
+ mov r0, #0x5b
+ lsl r0, r0, #0x2
+ add r2, r1, #0x0
+ mul r2, r0
+ ldr r0, [sp, #0x0]
+ add r0, r0, r2
+ str r0, [sp, #0x14]
+ ldr r0, [sp, #0x4]
+ bl FUN_0206B9AC
+ str r0, [sp, #0x10]
+ mov r0, #0xb
+ mov r1, #0x0
+ bl FUN_020219F4
+ mov r2, #0x5a
+ add r6, r0, #0x0
+ ldr r1, [sp, #0x14]
+ mov r0, #0x0
+ lsl r2, r2, #0x2
+ blx MIi_CpuClear16
+ ldr r0, [sp, #0x10]
+ mov r7, #0x0
+ cmp r0, #0x0
+ ble _0202B18E
+ ldr r5, [sp, #0x14]
+_0202B0BA:
+ ldr r0, [sp, #0x4]
+ add r1, r7, #0x0
+ bl FUN_0206B9B0
+ add r4, r0, #0x0
+ bl FUN_020669D4
+ str r0, [sp, #0xc]
+ add r0, r4, #0x0
+ mov r1, #0x4c
+ mov r2, #0x0
+ bl FUN_020671BC
+ cmp r0, #0x0
+ bne _0202B17E
+ add r0, r4, #0x0
+ mov r1, #0x5
+ mov r2, #0x0
+ bl FUN_020671BC
+ strh r0, [r5, #0x0]
+ add r0, r4, #0x0
+ mov r1, #0xa0
+ mov r2, #0x0
+ bl FUN_020671BC
+ strb r0, [r5, #0x2]
+ add r0, r4, #0x0
+ mov r1, #0x70
+ mov r2, #0x0
+ bl FUN_020671BC
+ mov r1, #0x0
+ strb r0, [r5, #0x3]
+ add r0, r4, #0x0
+ add r2, r1, #0x0
+ bl FUN_020671BC
+ str r0, [r5, #0x4]
+ add r0, r4, #0x0
+ mov r1, #0x7
+ mov r2, #0x0
+ bl FUN_020671BC
+ str r0, [r5, #0x8]
+ add r0, r4, #0x0
+ mov r1, #0x36
+ mov r2, #0x0
+ bl FUN_020671BC
+ strh r0, [r5, #0x32]
+ add r0, r4, #0x0
+ mov r1, #0x37
+ mov r2, #0x0
+ bl FUN_020671BC
+ strh r0, [r5, #0x34]
+ add r0, r4, #0x0
+ mov r1, #0x38
+ mov r2, #0x0
+ bl FUN_020671BC
+ strh r0, [r5, #0x36]
+ add r0, r4, #0x0
+ mov r1, #0x39
+ mov r2, #0x0
+ bl FUN_020671BC
+ strh r0, [r5, #0x38]
+ cmp r6, #0x0
+ beq _0202B176
+ add r0, r4, #0x0
+ mov r1, #0x76
+ add r2, r6, #0x0
+ bl FUN_020671BC
+ add r1, r5, #0x0
+ add r0, r6, #0x0
+ add r1, #0xc
+ mov r2, #0xb
+ bl FUN_02021EF0
+ add r0, r4, #0x0
+ mov r1, #0x90
+ add r2, r6, #0x0
+ bl FUN_020671BC
+ add r1, r5, #0x0
+ add r0, r6, #0x0
+ add r1, #0x22
+ mov r2, #0x8
+ bl FUN_02021EF0
+ b _0202B17C
+_0202B176:
+ ldr r0, _0202B1EC ; =0x0000FFFF
+ strh r0, [r5, #0xc]
+ strh r0, [r5, #0x22]
+_0202B17C:
+ add r5, #0x3c
+_0202B17E:
+ ldr r1, [sp, #0xc]
+ add r0, r4, #0x0
+ bl FUN_02066A20
+ ldr r0, [sp, #0x10]
+ add r7, r7, #0x1
+ cmp r7, r0
+ blt _0202B0BA
+_0202B18E:
+ ldr r0, [sp, #0x8]
+ mov r1, #0x5a
+ ldr r2, [r0, #0x0]
+ ldr r0, [sp, #0x14]
+ lsl r1, r1, #0x2
+ strh r2, [r0, r1]
+ ldr r0, [sp, #0x8]
+ add r2, r1, #0x2
+ ldr r3, [r0, #0x4]
+ ldr r0, [sp, #0x14]
+ add r1, r1, #0x3
+ strb r3, [r0, r2]
+ ldr r0, [sp, #0x8]
+ ldr r2, [r0, #0x8]
+ ldr r0, [sp, #0x14]
+ strb r2, [r0, r1]
+ ldr r1, _0202B1E0 ; =0x00002AA8
+ ldr r0, [sp, #0x0]
+ ldr r0, [r0, r1]
+ add r2, r0, #0x1
+ ldr r0, [sp, #0x0]
+ str r2, [r0, r1]
+ ldr r0, [r0, r1]
+ cmp r0, #0x1e
+ blo _0202B1C6
+ ldr r0, [sp, #0x0]
+ mov r2, #0x0
+ str r2, [r0, r1]
+_0202B1C6:
+ ldr r1, _0202B1E4 ; =0x00002AAC
+ ldr r0, [sp, #0x0]
+ ldr r0, [r0, r1]
+ add r2, r0, #0x1
+ ldr r0, [sp, #0x0]
+ cmp r6, #0x0
+ str r2, [r0, r1]
+ beq _0202B1DC
+ add r0, r6, #0x0
+ bl FUN_02021A20
+_0202B1DC:
+ add sp, #0x18
+ pop {r3-r7, pc}
+ .balign 4
+_0202B1E0: .word 0x00002AA8
+_0202B1E4: .word 0x00002AAC
+_0202B1E8: .word 0x0000270F
+_0202B1EC: .word 0x0000FFFF
+
+ thumb_func_start FUN_0202B1F0
+FUN_0202B1F0: ; 0x0202B1F0
+ push {r4, lr}
+ add r4, r0, #0x0
+ bne _0202B1FA
+ bl ErrorHandling
+_0202B1FA:
+ ldr r0, _0202B214 ; =0x00002AA8
+ ldr r0, [r4, r0]
+ cmp r0, #0x1e
+ blo _0202B206
+ bl ErrorHandling
+_0202B206:
+ ldr r0, _0202B218 ; =0x00002AAC
+ ldr r0, [r4, r0]
+ cmp r0, #0x1e
+ blo _0202B210
+ mov r0, #0x1e
+_0202B210:
+ pop {r4, pc}
+ nop
+_0202B214: .word 0x00002AA8
+_0202B218: .word 0x00002AAC
+
+ thumb_func_start FUN_0202B21C
+FUN_0202B21C: ; 0x0202B21C
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ cmp r5, #0x0
+ bne _0202B22A
+ bl ErrorHandling
+_0202B22A:
+ ldr r0, _0202B248 ; =0x00002AA8
+ ldr r0, [r5, r0]
+ cmp r0, #0x1e
+ blo _0202B236
+ bl ErrorHandling
+_0202B236:
+ cmp r4, #0x1e
+ blt _0202B23E
+ bl ErrorHandling
+_0202B23E:
+ ldr r0, _0202B24C ; =0x00002AAC
+ ldr r0, [r5, r0]
+ sub r0, r0, r4
+ pop {r3-r5, pc}
+ nop
+_0202B248: .word 0x00002AA8
+_0202B24C: .word 0x00002AAC
+
+ thumb_func_start FUN_0202B250
+FUN_0202B250: ; 0x0202B250
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ cmp r5, #0x0
+ bne _0202B25E
+ bl ErrorHandling
+_0202B25E:
+ ldr r0, _0202B298 ; =0x00002AA8
+ ldr r0, [r5, r0]
+ cmp r0, #0x1e
+ blo _0202B26A
+ bl ErrorHandling
+_0202B26A:
+ cmp r4, #0x1e
+ blt _0202B272
+ bl ErrorHandling
+_0202B272:
+ ldr r0, _0202B298 ; =0x00002AA8
+ ldr r0, [r5, r0]
+ sub r0, r0, #0x1
+ sub r2, r0, r4
+ bpl _0202B27E
+ add r2, #0x1e
+_0202B27E:
+ mov r1, #0x5b
+ lsl r1, r1, #0x2
+ mul r1, r2
+ mov r0, #0x0
+ add r2, r5, r1
+_0202B288:
+ ldrh r1, [r2, #0x0]
+ cmp r1, #0x0
+ beq _0202B296
+ add r0, r0, #0x1
+ add r2, #0x3c
+ cmp r0, #0x6
+ blo _0202B288
+_0202B296:
+ pop {r3-r5, pc}
+ .balign 4
+_0202B298: .word 0x00002AA8
+
+ thumb_func_start FUN_0202B29C
+FUN_0202B29C: ; 0x0202B29C
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ add r6, r1, #0x0
+ add r7, r2, #0x0
+ add r4, r3, #0x0
+ cmp r5, #0x0
+ bne _0202B2AE
+ bl ErrorHandling
+_0202B2AE:
+ ldr r0, _0202B318 ; =0x00002AA8
+ ldr r0, [r5, r0]
+ cmp r0, #0x1e
+ blo _0202B2BA
+ bl ErrorHandling
+_0202B2BA:
+ cmp r6, #0x1e
+ blt _0202B2C2
+ bl ErrorHandling
+_0202B2C2:
+ ldr r0, _0202B318 ; =0x00002AA8
+ ldr r0, [r5, r0]
+ sub r0, r0, #0x1
+ sub r1, r0, r6
+ bpl _0202B2CE
+ add r1, #0x1e
+_0202B2CE:
+ mov r0, #0x5b
+ lsl r0, r0, #0x2
+ mul r0, r1
+ add r1, r5, r0
+ mov r0, #0x3c
+ mul r0, r7
+ add r5, r1, r0
+ ldrh r0, [r1, r0]
+ add r1, r5, #0x0
+ add r1, #0xc
+ strh r0, [r4, #0x10]
+ ldrb r0, [r5, #0x2]
+ strb r0, [r4, #0x12]
+ ldr r0, [r5, #0x4]
+ str r0, [r4, #0x8]
+ ldr r0, [r5, #0x8]
+ str r0, [r4, #0xc]
+ ldrb r0, [r5, #0x3]
+ strb r0, [r4, #0x13]
+ ldr r0, [r4, #0x0]
+ bl FUN_02021E28
+ add r1, r5, #0x0
+ ldr r0, [r4, #0x4]
+ add r1, #0x22
+ bl FUN_02021E28
+ mov r1, #0x0
+_0202B306:
+ ldrh r0, [r5, #0x32]
+ add r1, r1, #0x1
+ add r5, r5, #0x2
+ strh r0, [r4, #0x14]
+ add r4, r4, #0x2
+ cmp r1, #0x4
+ blt _0202B306
+ pop {r3-r7, pc}
+ nop
+_0202B318: .word 0x00002AA8
+
+ thumb_func_start FUN_0202B31C
+FUN_0202B31C: ; 0x0202B31C
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ add r6, r1, #0x0
+ add r4, r2, #0x0
+ cmp r5, #0x0
+ bne _0202B32C
+ bl ErrorHandling
+_0202B32C:
+ ldr r0, _0202B370 ; =0x00002AA8
+ ldr r0, [r5, r0]
+ cmp r0, #0x1e
+ blo _0202B338
+ bl ErrorHandling
+_0202B338:
+ cmp r6, #0x1e
+ blt _0202B340
+ bl ErrorHandling
+_0202B340:
+ ldr r0, _0202B370 ; =0x00002AA8
+ ldr r0, [r5, r0]
+ sub r0, r0, #0x1
+ sub r2, r0, r6
+ bpl _0202B34C
+ add r2, #0x1e
+_0202B34C:
+ mov r0, #0x5b
+ lsl r0, r0, #0x2
+ add r1, r2, #0x0
+ mul r1, r0
+ add r2, r5, r1
+ sub r1, r0, #0x4
+ ldrh r1, [r2, r1]
+ str r1, [r4, #0x0]
+ sub r1, r0, #0x2
+ ldrb r1, [r2, r1]
+ sub r0, r0, #0x1
+ str r1, [r4, #0x4]
+ ldrb r0, [r2, r0]
+ str r0, [r4, #0x8]
+ mov r0, #0x0
+ str r0, [r4, #0xc]
+ pop {r4-r6, pc}
+ nop
+_0202B370: .word 0x00002AA8
+
+ thumb_func_start FUN_0202B374
+FUN_0202B374: ; 0x0202B374
+ ldr r0, _0202B378 ; =0x00000B88
+ bx lr
+ .balign 4
+_0202B378: .word 0x00000B88
+
+ thumb_func_start FUN_0202B37C
+FUN_0202B37C: ; 0x0202B37C
+ ldr r3, _0202B388 ; =MIi_CpuClearFast
+ add r1, r0, #0x0
+ mov r0, #0x0
+ ldr r2, _0202B38C ; =0x00000B88
+ bx r3
+ nop
+_0202B388: .word MIi_CpuClearFast
+_0202B38C: .word 0x00000B88
+
+ thumb_func_start FUN_0202B390
+FUN_0202B390: ; 0x0202B390
+ push {r4, lr}
+ add r4, r0, #0x0
+ add r1, r4, #0x0
+ mov r0, #0x0
+ add r1, #0xc
+ mov r2, #0xc0
+ blx MIi_CpuClearFast
+ add r1, r4, #0x0
+ mov r0, #0x0
+ add r1, #0xcc
+ mov r2, #0xc0
+ blx MIi_CpuClearFast
+ mov r1, #0x63
+ lsl r1, r1, #0x2
+ mov r0, #0x0
+ add r1, r4, r1
+ mov r2, #0xc0
+ blx MIi_CpuClearFast
+ add r0, r4, #0x0
+ bl FUN_0202B3F8
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0202B3C4
+FUN_0202B3C4: ; 0x0202B3C4
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r0, [r4, #0x4]
+ cmp r0, r1
+ ble _0202B3D4
+ sub r0, r0, r1
+ str r0, [r4, #0x4]
+ pop {r4, pc}
+_0202B3D4:
+ add r0, r2, #0x0
+ mov r1, #0xf
+ blx _s32_div_f
+ mov r0, #0xf
+ sub r1, r0, r1
+ str r1, [r4, #0x4]
+ bne _0202B3E6
+ str r0, [r4, #0x4]
+_0202B3E6:
+ mov r1, #0x0
+ strb r1, [r4, #0x8]
+ add r0, r1, #0x0
+_0202B3EC:
+ strb r0, [r4, r1]
+ add r1, r1, #0x1
+ cmp r1, #0x4
+ blt _0202B3EC
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0202B3F8
+FUN_0202B3F8: ; 0x0202B3F8
+ push {r4, lr}
+ add r4, r0, #0x0
+ mov r1, #0x0
+ bl FUN_0202B40C
+ add r0, r4, #0x0
+ bl FUN_0202B430
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0202B40C
+FUN_0202B40C: ; 0x0202B40C
+ strb r1, [r0, #0x8]
+ bx lr
+
+ thumb_func_start FUN_0202B410
+FUN_0202B410: ; 0x0202B410
+ ldrb r0, [r0, #0x8]
+ bx lr
+
+ thumb_func_start FUN_0202B414
+FUN_0202B414: ; 0x0202B414
+ push {r3, lr}
+ mov r3, #0x0
+_0202B418:
+ ldrb r2, [r0, r3]
+ cmp r2, #0x0
+ bne _0202B422
+ strb r1, [r0, r3]
+ pop {r3, pc}
+_0202B422:
+ add r3, r3, #0x1
+ cmp r3, #0x4
+ blt _0202B418
+ bl ErrorHandling
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_0202B430
+FUN_0202B430: ; 0x0202B430
+ mov r2, #0x0
+ add r1, r2, #0x0
+_0202B434:
+ strb r1, [r0, r2]
+ add r2, r2, #0x1
+ cmp r2, #0x4
+ blt _0202B434
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_0202B440
+FUN_0202B440: ; 0x0202B440
+ mov r3, #0x0
+_0202B442:
+ ldrb r2, [r0, r3]
+ cmp r1, r2
+ bne _0202B44C
+ mov r0, #0x1
+ bx lr
+_0202B44C:
+ add r3, r3, #0x1
+ cmp r3, #0x4
+ blt _0202B442
+ mov r0, #0x0
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_0202B458
+FUN_0202B458: ; 0x0202B458
+ mov r2, #0x0
+ add r3, r2, #0x0
+_0202B45C:
+ ldrb r1, [r0, r2]
+ cmp r1, #0x0
+ beq _0202B464
+ add r3, r3, #0x1
+_0202B464:
+ add r2, r2, #0x1
+ cmp r2, #0x4
+ blt _0202B45C
+ add r0, r3, #0x0
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_0202B470
+FUN_0202B470: ; 0x0202B470
+ push {r4-r6, lr}
+ sub sp, #0x10
+ add r5, r0, #0x0
+ add r0, sp, #0x0
+ add r4, r1, #0x0
+ add r6, r2, #0x0
+ bl FUN_020126B4
+ ldr r0, [sp, #0x8]
+ ldr r3, [sp, #0x4]
+ lsl r0, r0, #0x18
+ lsr r1, r0, #0x10
+ ldr r0, [sp, #0x0]
+ lsl r3, r3, #0x18
+ lsl r0, r0, #0x18
+ lsr r3, r3, #0x8
+ orr r0, r3
+ ldr r2, [sp, #0xc]
+ orr r0, r1
+ orr r0, r2
+ str r0, [r5, #0x4]
+ strb r4, [r5, #0x0]
+ mov r0, #0x0
+ strb r0, [r5, #0x1]
+ add r5, #0x8
+ add r0, r6, #0x0
+ add r1, r5, #0x0
+ mov r2, #0x28
+ blx MIi_CpuCopyFast
+ add sp, #0x10
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_0202B4B0
+FUN_0202B4B0: ; 0x0202B4B0
+ push {r3-r5, lr}
+ add r5, r2, #0x0
+ add r4, r3, #0x0
+ bl FUN_0202B548
+ mov r2, #0x0
+ add r3, r0, #0x0
+_0202B4BE:
+ ldrb r1, [r3, #0x0]
+ cmp r5, r1
+ bne _0202B4E0
+ mov r1, #0x30
+ mul r1, r2
+ add r0, r0, r1
+ ldrb r1, [r0, #0x1]
+ cmp r1, #0x3
+ blo _0202B4DC
+ add r1, r5, #0x0
+ add r2, r4, #0x0
+ bl FUN_0202B470
+ mov r0, #0x1
+ pop {r3-r5, pc}
+_0202B4DC:
+ mov r0, #0x0
+ pop {r3-r5, pc}
+_0202B4E0:
+ add r2, r2, #0x1
+ add r3, #0x30
+ cmp r2, #0x4
+ blt _0202B4BE
+ mov r1, #0x0
+ add r3, r0, #0x0
+_0202B4EC:
+ ldrb r2, [r3, #0x0]
+ cmp r2, #0x0
+ bne _0202B504
+ mov r2, #0x30
+ mul r2, r1
+ add r0, r0, r2
+ add r1, r5, #0x0
+ add r2, r4, #0x0
+ bl FUN_0202B470
+ mov r0, #0x1
+ pop {r3-r5, pc}
+_0202B504:
+ add r1, r1, #0x1
+ add r3, #0x30
+ cmp r1, #0x4
+ blt _0202B4EC
+ mov r1, #0x0
+ add r3, r0, #0x0
+_0202B510:
+ ldrb r2, [r3, #0x1]
+ cmp r2, #0x3
+ blo _0202B528
+ mov r2, #0x30
+ mul r2, r1
+ add r0, r0, r2
+ add r1, r5, #0x0
+ add r2, r4, #0x0
+ bl FUN_0202B470
+ mov r0, #0x1
+ pop {r3-r5, pc}
+_0202B528:
+ add r1, r1, #0x1
+ add r3, #0x30
+ cmp r1, #0x4
+ blt _0202B510
+ mov r0, #0x0
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_0202B534
+FUN_0202B534: ; 0x0202B534
+ add r0, #0x8
+ bx lr
+
+ thumb_func_start FUN_0202B538
+FUN_0202B538: ; 0x0202B538
+ ldrb r0, [r0, #0x6]
+ bx lr
+
+ thumb_func_start FUN_0202B53C
+FUN_0202B53C: ; 0x0202B53C
+ ldrb r0, [r0, #0x5]
+ bx lr
+
+ thumb_func_start FUN_0202B540
+FUN_0202B540: ; 0x0202B540
+ add r0, #0x18
+ bx lr
+
+ thumb_func_start FUN_0202B544
+FUN_0202B544: ; 0x0202B544
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_0202B548
+FUN_0202B548: ; 0x0202B548
+ push {r4, lr}
+ mov r4, #0x0
+ cmp r1, #0x4
+ bhi _0202B57E
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #0x6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_0202B55C: ; jump table (using 16-bit offset)
+ .short _0202B57E - _0202B55C - 2; case 0
+ .short _0202B566 - _0202B55C - 2; case 1
+ .short _0202B56E - _0202B55C - 2; case 2
+ .short _0202B574 - _0202B55C - 2; case 3
+ .short _0202B57A - _0202B55C - 2; case 4
+_0202B566:
+ mov r1, #0x63
+ lsl r1, r1, #0x2
+ add r4, r0, r1
+ b _0202B57E
+_0202B56E:
+ add r4, r0, #0x0
+ add r4, #0xc
+ b _0202B57E
+_0202B574:
+ add r4, r0, #0x0
+ add r4, #0xcc
+ b _0202B57E
+_0202B57A:
+ bl ErrorHandling
+_0202B57E:
+ add r0, r4, #0x0
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0202B584
+FUN_0202B584: ; 0x0202B584
+ push {r4, lr}
+ mov r4, #0x0
+ cmp r1, #0x4
+ bhi _0202B5BA
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #0x6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_0202B598: ; jump table (using 16-bit offset)
+ .short _0202B5BA - _0202B598 - 2; case 0
+ .short _0202B5B0 - _0202B598 - 2; case 1
+ .short _0202B5A2 - _0202B598 - 2; case 2
+ .short _0202B5AA - _0202B598 - 2; case 3
+ .short _0202B5B6 - _0202B598 - 2; case 4
+_0202B5A2:
+ mov r1, #0x93
+ lsl r1, r1, #0x2
+ add r4, r0, r1
+ b _0202B5BA
+_0202B5AA:
+ ldr r1, _0202B5C0 ; =0x000006CC
+ add r4, r0, r1
+ b _0202B5BA
+_0202B5B0:
+ ldr r1, _0202B5C4 ; =0x0000090C
+ add r4, r0, r1
+ b _0202B5BA
+_0202B5B6:
+ bl ErrorHandling
+_0202B5BA:
+ add r0, r4, #0x0
+ pop {r4, pc}
+ nop
+_0202B5C0: .word 0x000006CC
+_0202B5C4: .word 0x0000090C
+
+ thumb_func_start FUN_0202B5C8
+FUN_0202B5C8: ; 0x0202B5C8
+ ldrb r0, [r0, #0x0]
+ bx lr
+
+ thumb_func_start FUN_0202B5CC
+FUN_0202B5CC: ; 0x0202B5CC
+ ldrb r1, [r0, #0x1]
+ cmp r1, #0x3
+ bhs _0202B5D6
+ add r1, r1, #0x1
+ strb r1, [r0, #0x1]
+_0202B5D6:
+ bx lr
+
+ thumb_func_start FUN_0202B5D8
+FUN_0202B5D8: ; 0x0202B5D8
+ add r0, #0x8
+ bx lr
+
+ thumb_func_start FUN_0202B5DC
+FUN_0202B5DC: ; 0x0202B5DC
+ push {r4-r7}
+ mov r5, #0x0
+ add r4, r5, #0x0
+ ldr r6, [sp, #0x10]
+ cmp r1, #0x0
+ ble _0202B616
+_0202B5E8:
+ ldrb r7, [r0, #0x0]
+ cmp r2, r7
+ bne _0202B60E
+ ldrb r7, [r0, #0x1]
+ cmp r3, #0x0
+ beq _0202B600
+ cmp r7, #0x0
+ beq _0202B600
+ add r7, r4, #0x1
+ strb r7, [r6, r5]
+ add r5, r5, #0x1
+ b _0202B60E
+_0202B600:
+ cmp r3, #0x0
+ bne _0202B60E
+ cmp r7, #0x0
+ bne _0202B60E
+ add r7, r4, #0x1
+ strb r7, [r6, r5]
+ add r5, r5, #0x1
+_0202B60E:
+ add r4, r4, #0x1
+ add r0, #0x30
+ cmp r4, r1
+ blt _0202B5E8
+_0202B616:
+ add r0, r5, #0x0
+ pop {r4-r7}
+ bx lr
+
+ thumb_func_start FUN_0202B61C
+FUN_0202B61C: ; 0x0202B61C
+ push {r4-r7, lr}
+ sub sp, #0xc
+ add r6, r0, #0x0
+ mov r5, #0x0
+ add r0, r1, #0x0
+ add r4, r5, #0x0
+ str r1, [sp, #0x0]
+ str r2, [sp, #0x4]
+ str r3, [sp, #0x8]
+ ldr r7, [sp, #0x20]
+ cmp r0, #0x0
+ ble _0202B672
+_0202B634:
+ ldrb r2, [r6, #0x18]
+ ldr r1, [sp, #0x4]
+ ldrb r0, [r6, #0x19]
+ cmp r1, r2
+ bne _0202B668
+ ldr r1, [sp, #0x8]
+ cmp r1, #0x0
+ beq _0202B654
+ cmp r0, #0x0
+ beq _0202B654
+ add r0, r4, #0x1
+ bl FUN_0202B830
+ strb r0, [r7, r5]
+ add r5, r5, #0x1
+ b _0202B668
+_0202B654:
+ ldr r1, [sp, #0x8]
+ cmp r1, #0x0
+ bne _0202B668
+ cmp r0, #0x0
+ bne _0202B668
+ add r0, r4, #0x1
+ bl FUN_0202B830
+ strb r0, [r7, r5]
+ add r5, r5, #0x1
+_0202B668:
+ ldr r0, [sp, #0x0]
+ add r4, r4, #0x1
+ add r6, #0x48
+ cmp r4, r0
+ blt _0202B634
+_0202B672:
+ add r0, r5, #0x0
+ add sp, #0xc
+ pop {r4-r7, pc}
+
+ thumb_func_start FUN_0202B678
+FUN_0202B678: ; 0x0202B678
+ push {r3-r5, lr}
+ ldr r5, [sp, #0x10]
+ ldr r4, [sp, #0x14]
+ cmp r1, #0x4
+ bhi _0202B702
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #0x6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_0202B68E: ; jump table (using 16-bit offset)
+ .short _0202B702 - _0202B68E - 2; case 0
+ .short _0202B6DA - _0202B68E - 2; case 1
+ .short _0202B698 - _0202B68E - 2; case 2
+ .short _0202B6BA - _0202B68E - 2; case 3
+ .short _0202B6FE - _0202B68E - 2; case 4
+_0202B698:
+ cmp r3, #0x0
+ str r4, [sp, #0x0]
+ beq _0202B6AA
+ add r0, #0xc
+ mov r1, #0x4
+ add r3, r5, #0x0
+ bl FUN_0202B5DC
+ pop {r3-r5, pc}
+_0202B6AA:
+ mov r1, #0x93
+ lsl r1, r1, #0x2
+ add r0, r0, r1
+ mov r1, #0x10
+ add r3, r5, #0x0
+ bl FUN_0202B61C
+ pop {r3-r5, pc}
+_0202B6BA:
+ cmp r3, #0x0
+ str r4, [sp, #0x0]
+ beq _0202B6CC
+ add r0, #0xcc
+ mov r1, #0x4
+ add r3, r5, #0x0
+ bl FUN_0202B5DC
+ pop {r3-r5, pc}
+_0202B6CC:
+ ldr r1, _0202B708 ; =0x000006CC
+ add r3, r5, #0x0
+ add r0, r0, r1
+ mov r1, #0x8
+ bl FUN_0202B61C
+ pop {r3-r5, pc}
+_0202B6DA:
+ cmp r3, #0x0
+ str r4, [sp, #0x0]
+ beq _0202B6F0
+ mov r1, #0x63
+ lsl r1, r1, #0x2
+ add r0, r0, r1
+ mov r1, #0x4
+ add r3, r5, #0x0
+ bl FUN_0202B5DC
+ pop {r3-r5, pc}
+_0202B6F0:
+ ldr r1, _0202B70C ; =0x0000090C
+ add r3, r5, #0x0
+ add r0, r0, r1
+ mov r1, #0x8
+ bl FUN_0202B61C
+ pop {r3-r5, pc}
+_0202B6FE:
+ mov r0, #0x0
+ pop {r3-r5, pc}
+_0202B702:
+ mov r0, #0x0
+ pop {r3-r5, pc}
+ nop
+_0202B708: .word 0x000006CC
+_0202B70C: .word 0x0000090C
+
+ thumb_func_start FUN_0202B710
+FUN_0202B710: ; 0x0202B710
+ push {r4-r7, lr}
+ sub sp, #0xc
+ add r4, r0, #0x0
+ add r6, r1, #0x0
+ add r5, r2, #0x0
+ add r0, sp, #0x8
+ mov r1, #0x0
+ mov r2, #0x4
+ blx MI_CpuFill8
+ mov r0, #0x0
+ str r0, [sp, #0x0]
+ add r0, sp, #0x8
+ str r0, [sp, #0x4]
+ add r0, r4, #0x0
+ add r1, r6, #0x0
+ add r2, r5, #0x0
+ mov r3, #0x1
+ bl FUN_0202B678
+ cmp r0, #0x0
+ beq _0202B742
+ add sp, #0xc
+ mov r0, #0x0
+ pop {r4-r7, pc}
+_0202B742:
+ mov r3, #0x1
+ str r3, [sp, #0x0]
+ add r0, sp, #0x8
+ str r0, [sp, #0x4]
+ add r0, r4, #0x0
+ add r1, r6, #0x0
+ add r2, r5, #0x0
+ bl FUN_0202B678
+ cmp r0, #0x0
+ beq _0202B79E
+ add r0, sp, #0x8
+ ldrb r0, [r0, #0x0]
+ mov r7, #0x0
+ cmp r0, #0x0
+ beq _0202B798
+ add r5, sp, #0x8
+_0202B764:
+ ldrb r2, [r5, #0x0]
+ add r0, r4, #0x0
+ add r1, r6, #0x0
+ bl FUN_0202B7C8
+ ldrb r0, [r0, #0x1]
+ cmp r0, #0x3
+ blo _0202B77A
+ add sp, #0xc
+ mov r0, #0x1
+ pop {r4-r7, pc}
+_0202B77A:
+ add r7, r7, #0x1
+ add r5, r5, #0x1
+ cmp r7, #0x4
+ bge _0202B786
+ mov r1, #0x1
+ b _0202B788
+_0202B786:
+ mov r1, #0x0
+_0202B788:
+ ldrb r0, [r5, #0x0]
+ cmp r0, #0x0
+ beq _0202B792
+ mov r0, #0x1
+ b _0202B794
+_0202B792:
+ mov r0, #0x0
+_0202B794:
+ tst r0, r1
+ bne _0202B764
+_0202B798:
+ add sp, #0xc
+ mov r0, #0x0
+ pop {r4-r7, pc}
+_0202B79E:
+ mov r5, #0x1
+_0202B7A0:
+ add r0, r4, #0x0
+ add r1, r6, #0x0
+ add r2, r5, #0x0
+ bl FUN_0202B7C8
+ ldrb r1, [r0, #0x0]
+ cmp r1, #0x0
+ beq _0202B7B6
+ ldrb r0, [r0, #0x1]
+ cmp r0, #0x3
+ blo _0202B7BC
+_0202B7B6:
+ add sp, #0xc
+ mov r0, #0x1
+ pop {r4-r7, pc}
+_0202B7BC:
+ add r5, r5, #0x1
+ cmp r5, #0x4
+ ble _0202B7A0
+ mov r0, #0x0
+ add sp, #0xc
+ pop {r4-r7, pc}
+
+ thumb_func_start FUN_0202B7C8
+FUN_0202B7C8: ; 0x0202B7C8
+ push {r4-r6, lr}
+ add r4, r2, #0x0
+ add r5, r0, #0x0
+ add r0, r4, #0x0
+ add r6, r1, #0x0
+ bl FUN_0202B820
+ cmp r0, #0x1
+ beq _0202B7DE
+ bl ErrorHandling
+_0202B7DE:
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ bl FUN_0202B548
+ mov r1, #0x80
+ bic r4, r1
+ sub r2, r4, #0x1
+ mov r1, #0x30
+ mul r1, r2
+ add r0, r0, r1
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_0202B7F4
+FUN_0202B7F4: ; 0x0202B7F4
+ push {r4-r6, lr}
+ add r4, r2, #0x0
+ add r5, r0, #0x0
+ add r0, r4, #0x0
+ add r6, r1, #0x0
+ bl FUN_0202B820
+ cmp r0, #0x0
+ beq _0202B80A
+ bl ErrorHandling
+_0202B80A:
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ bl FUN_0202B584
+ mov r1, #0x80
+ bic r4, r1
+ sub r2, r4, #0x1
+ mov r1, #0x48
+ mul r1, r2
+ add r0, r0, r1
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_0202B820
+FUN_0202B820: ; 0x0202B820
+ mov r1, #0x80
+ tst r0, r1
+ bne _0202B82A
+ mov r0, #0x1
+ bx lr
+_0202B82A:
+ mov r0, #0x0
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_0202B830
+FUN_0202B830: ; 0x0202B830
+ mov r1, #0x80
+ orr r0, r1
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_0202B838
+FUN_0202B838: ; 0x0202B838
+ ldr r1, _0202B840 ; =0x00000B4C
+ add r0, r0, r1
+ bx lr
+ nop
+_0202B840: .word 0x00000B4C
+
+ thumb_func_start FUN_0202B844
+FUN_0202B844: ; 0x0202B844
+ ldr r1, _0202B84C ; =0x00000B56
+ add r0, r0, r1
+ bx lr
+ nop
+_0202B84C: .word 0x00000B56
+
+ thumb_func_start FUN_0202B850
+FUN_0202B850: ; 0x0202B850
+ ldr r1, _0202B858 ; =0x00000B7A
+ add r0, r0, r1
+ bx lr
+ nop
+_0202B858: .word 0x00000B7A
+
+ thumb_func_start FUN_0202B85C
+FUN_0202B85C: ; 0x0202B85C
+ ldr r1, _0202B864 ; =0x00000B7C
+ add r0, r0, r1
+ bx lr
+ nop
+_0202B864: .word 0x00000B7C
+
+ thumb_func_start FUN_0202B868
+FUN_0202B868: ; 0x0202B868
+ mov r1, #0x2e
+ lsl r1, r1, #0x6
+ add r0, r0, r1
+ bx lr
+
+ thumb_func_start FUN_0202B870
+FUN_0202B870: ; 0x0202B870
+ lsl r1, r0, #0x1
+ ldr r0, _0202B878 ; =0x020EEAC8
+ ldrb r0, [r0, r1]
+ bx lr
+ .balign 4
+_0202B878: .word 0x020EEAC8
+
+ thumb_func_start FUN_0202B87C
+FUN_0202B87C: ; 0x0202B87C
+ lsl r1, r0, #0x1
+ ldr r0, _0202B884 ; =0x020EEAC9
+ ldrb r0, [r0, r1]
+ bx lr
+ .balign 4
+_0202B884: .word 0x020EEAC9
+
+ thumb_func_start FUN_0202B888
+FUN_0202B888: ; 0x0202B888
+ mov r1, #0x0
+ str r1, [r0, #0x0]
+ str r1, [r0, #0x4]
+ ldr r3, _0202B898 ; =StringFillEOS
+ add r0, #0x8
+ mov r1, #0x8
+ bx r3
+ nop
+_0202B898: .word StringFillEOS
+
+ thumb_func_start FUN_0202B89C
+FUN_0202B89C: ; 0x0202B89C
+ push {r3, lr}
+ add r0, #0x8
+ bl StringLength
+ cmp r0, #0x0
+ beq _0202B8AC
+ mov r0, #0x1
+ pop {r3, pc}
+_0202B8AC:
+ mov r0, #0x0
+ pop {r3, pc}
+
+ thumb_func_start FUN_0202B8B0
+FUN_0202B8B0: ; 0x0202B8B0
+ mov r0, #0xea
+ lsl r0, r0, #0x4
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_0202B8B8
+FUN_0202B8B8: ; 0x0202B8B8
+ push {r3-r7, lr}
+ mov r2, #0xea
+ mov r1, #0x0
+ lsl r2, r2, #0x4
+ add r6, r0, #0x0
+ blx MI_CpuFill8
+ mov r7, #0x0
+_0202B8C8:
+ mov r4, #0x0
+ add r5, r6, #0x0
+_0202B8CC:
+ add r0, r5, #0x0
+ bl FUN_0202B888
+ add r4, r4, #0x1
+ add r5, #0x18
+ cmp r4, #0x6
+ blt _0202B8CC
+ add r7, r7, #0x1
+ add r6, #0x90
+ cmp r7, #0x1a
+ blt _0202B8C8
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_0202B8E4
+FUN_0202B8E4: ; 0x0202B8E4
+ ldr r3, _0202B8EC ; =FUN_02022610
+ mov r1, #0x1c
+ bx r3
+ nop
+_0202B8EC: .word FUN_02022610
+
+ thumb_func_start FUN_0202B8F0
+FUN_0202B8F0: ; 0x0202B8F0
+ push {r4-r6, lr}
+ cmp r2, #0x6
+ blo _0202B8FE
+ blo _0202B930
+ bl ErrorHandling
+ pop {r4-r6, pc}
+_0202B8FE:
+ mov r3, #0x90
+ mul r3, r1
+ add r3, r0, r3
+ cmp r2, #0x5
+ bge _0202B928
+ mov r0, #0x18
+ mul r0, r2
+ add r6, r3, r0
+_0202B90E:
+ add r5, r6, #0x0
+ add r5, #0x18
+ add r4, r6, #0x0
+ ldmia r5!, {r0-r1}
+ stmia r4!, {r0-r1}
+ ldmia r5!, {r0-r1}
+ stmia r4!, {r0-r1}
+ ldmia r5!, {r0-r1}
+ add r2, r2, #0x1
+ add r6, #0x18
+ stmia r4!, {r0-r1}
+ cmp r2, #0x5
+ blt _0202B90E
+_0202B928:
+ add r3, #0x78
+ add r0, r3, #0x0
+ bl FUN_0202B888
+_0202B930:
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_0202B934
+FUN_0202B934: ; 0x0202B934
+ mov r0, #0x4e
+ lsl r0, r0, #0x2
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_0202B93C
+FUN_0202B93C: ; 0x0202B93C
+ push {r3-r7, lr}
+ sub sp, #0x8
+ add r5, r1, #0x0
+ bl FUN_02029FC8
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ mov r1, #0x34
+ bl FUN_020169D8
+ str r0, [sp, #0x4]
+ add r5, r0, #0x0
+ ldr r0, _0202B9E8 ; =0x020EEAD0
+ mov r6, #0x0
+ str r0, [sp, #0x0]
+_0202B95A:
+ cmp r6, #0x5
+ beq _0202B968
+ cmp r6, #0xa
+ beq _0202B988
+ cmp r6, #0xb
+ beq _0202B9A0
+ b _0202B9C8
+_0202B968:
+ add r0, r4, #0x0
+ mov r1, #0xf
+ bl FUN_0202A150
+ add r7, r0, #0x0
+ beq _0202B984
+ add r0, r4, #0x0
+ mov r1, #0x1d
+ bl FUN_0202A150
+ add r1, r7, #0x0
+ blx _u32_div_f
+ add r7, r0, #0x0
+_0202B984:
+ str r7, [r5, #0x0]
+ b _0202B9D4
+_0202B988:
+ add r0, r4, #0x0
+ mov r1, #0x41
+ bl FUN_0202A150
+ add r7, r0, #0x0
+ add r0, r4, #0x0
+ mov r1, #0x42
+ bl FUN_0202A150
+ add r0, r7, r0
+ str r0, [r5, #0x0]
+ b _0202B9D4
+_0202B9A0:
+ add r0, r4, #0x0
+ mov r1, #0x3f
+ bl FUN_0202A150
+ add r7, r0, #0x0
+ add r0, r4, #0x0
+ mov r1, #0x40
+ bl FUN_0202A150
+ add r1, r7, r0
+ beq _0202B9C4
+ ldr r0, [sp, #0x4]
+ ldr r2, [r0, #0x28]
+ mov r0, #0x64
+ mul r0, r2
+ blx _u32_div_f
+ add r1, r0, #0x0
+_0202B9C4:
+ str r1, [r5, #0x0]
+ b _0202B9D4
+_0202B9C8:
+ ldr r1, [sp, #0x0]
+ add r0, r4, #0x0
+ ldr r1, [r1, #0x0]
+ bl FUN_0202A150
+ str r0, [r5, #0x0]
+_0202B9D4:
+ ldr r0, [sp, #0x0]
+ add r6, r6, #0x1
+ add r0, r0, #0x4
+ add r5, r5, #0x4
+ str r0, [sp, #0x0]
+ cmp r6, #0xd
+ blt _0202B95A
+ ldr r0, [sp, #0x4]
+ add sp, #0x8
+ pop {r3-r7, pc}
+ .balign 4
+_0202B9E8: .word 0x020EEAD0
+
+ thumb_func_start FUN_0202B9EC
+FUN_0202B9EC: ; 0x0202B9EC
+ push {r4-r7, lr}
+ sub sp, #0xc
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ bl FUN_020238F4
+ mov r1, #0x4e
+ add r6, r0, #0x0
+ add r0, r4, #0x0
+ lsl r1, r1, #0x2
+ bl FUN_020169D8
+ mov r2, #0x4e
+ mov r1, #0x0
+ lsl r2, r2, #0x2
+ str r0, [sp, #0x4]
+ blx MI_CpuFill8
+ add r0, r5, #0x0
+ bl FUN_0202881C
+ mov r1, #0x1
+ bl FUN_0202877C
+ str r0, [sp, #0x8]
+ add r0, r6, #0x0
+ add r1, r4, #0x0
+ bl FUN_020239A0
+ add r7, r0, #0x0
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_0202B93C
+ ldr r4, [sp, #0x4]
+ str r0, [sp, #0x0]
+ mov r6, #0x0
+ add r5, r0, #0x0
+_0202BA38:
+ ldr r0, [sp, #0x8]
+ add r1, r4, #0x0
+ str r0, [r4, #0x0]
+ add r0, r7, #0x0
+ add r1, #0x8
+ mov r2, #0x8
+ bl FUN_02021EF0
+ ldr r0, [r5, #0x0]
+ add r6, r6, #0x1
+ str r0, [r4, #0x4]
+ add r4, #0x18
+ add r5, r5, #0x4
+ cmp r6, #0xd
+ blt _0202BA38
+ ldr r0, [sp, #0x0]
+ bl FUN_02016A18
+ add r0, r7, #0x0
+ bl FUN_02021A20
+ ldr r0, [sp, #0x4]
+ add sp, #0xc
+ pop {r4-r7, pc}
+
+ thumb_func_start FUN_0202BA68
+FUN_0202BA68: ; 0x0202BA68
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ mov r4, #0x0
+_0202BA6E:
+ add r0, r5, #0x0
+ bl FUN_0202B888
+ add r4, r4, #0x1
+ add r5, #0x18
+ cmp r4, #0x6
+ blt _0202BA6E
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_0202BA80
+FUN_0202BA80: ; 0x0202BA80
+ push {r3, lr}
+ ldr r3, [r0, #0x0]
+ ldr r2, [r1, #0x0]
+ cmp r3, r2
+ beq _0202BA8E
+ mov r0, #0x0
+ pop {r3, pc}
+_0202BA8E:
+ add r0, #0x8
+ add r1, #0x8
+ bl StringNotEqual
+ cmp r0, #0x0
+ bne _0202BA9E
+ mov r0, #0x1
+ pop {r3, pc}
+_0202BA9E:
+ mov r0, #0x0
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_0202BAA4
+FUN_0202BAA4: ; 0x0202BAA4
+ push {r3-r7, lr}
+ add r6, r0, #0x0
+ ldr r0, [r6, #0x4]
+ add r7, r1, #0x0
+ mov r4, #0x0
+ cmp r0, #0x0
+ ble _0202BACE
+ add r5, r6, #0x0
+_0202BAB4:
+ ldr r0, [r5, #0xc]
+ add r1, r7, #0x0
+ bl FUN_0202BA80
+ cmp r0, #0x0
+ beq _0202BAC4
+ mov r0, #0x1
+ pop {r3-r7, pc}
+_0202BAC4:
+ ldr r0, [r6, #0x4]
+ add r4, r4, #0x1
+ add r5, r5, #0x4
+ cmp r4, r0
+ blt _0202BAB4
+_0202BACE:
+ mov r0, #0x0
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_0202BAD4
+FUN_0202BAD4: ; 0x0202BAD4
+ push {r4-r7, lr}
+ sub sp, #0xc
+ add r6, r1, #0x0
+ add r5, r0, #0x0
+ str r2, [sp, #0x0]
+ add r0, r6, #0x0
+ mov r1, #0x0
+ mov r2, #0xe0
+ add r4, r3, #0x0
+ blx MI_CpuFill8
+ add r0, sp, #0x10
+ ldrb r0, [r0, #0x10]
+ cmp r0, #0x0
+ bne _0202BB64
+ mov r2, #0x90
+ add r0, r4, #0x0
+ mul r0, r2
+ add r1, r6, #0x0
+ add r0, r5, r0
+ add r1, #0x50
+ str r0, [sp, #0x8]
+ blx MI_CpuCopy8
+ add r1, sp, #0x10
+ ldrb r3, [r1, #0x18]
+ mov r0, #0x0
+ cmp r3, #0x0
+ ble _0202BB2E
+ mov r2, #0x18
+ ldr r1, [sp, #0x24]
+ mul r2, r4
+_0202BB14:
+ ldr r5, [r6, #0x4]
+ add r0, r0, #0x1
+ add r4, r5, #0x0
+ add r4, r4, #0x1
+ str r4, [r6, #0x4]
+ ldr r4, [r1, #0x0]
+ lsl r5, r5, #0x2
+ add r4, r4, r2
+ add r5, r6, r5
+ str r4, [r5, #0xc]
+ add r1, r1, #0x4
+ cmp r0, r3
+ blt _0202BB14
+_0202BB2E:
+ add r4, r6, #0x0
+ add r4, #0x50
+ mov r7, #0x0
+ add r5, r4, #0x0
+_0202BB36:
+ add r0, r4, #0x0
+ bl FUN_0202B89C
+ cmp r0, #0x0
+ beq _0202BB58
+ add r0, r6, #0x0
+ add r1, r5, #0x0
+ bl FUN_0202BAA4
+ cmp r0, #0x0
+ bne _0202BB58
+ ldr r1, [r6, #0x0]
+ add r0, r1, #0x1
+ str r0, [r6, #0x0]
+ lsl r0, r1, #0x2
+ add r0, r6, r0
+ str r4, [r0, #0x38]
+_0202BB58:
+ add r7, r7, #0x1
+ add r4, #0x18
+ add r5, #0x18
+ cmp r7, #0x6
+ blt _0202BB36
+ b _0202BBF8
+_0202BB64:
+ add r0, r4, #0x0
+ add r0, #0xd
+ mov r2, #0x90
+ add r1, r0, #0x0
+ mul r1, r2
+ add r0, r5, r1
+ add r1, r6, #0x0
+ add r1, #0x50
+ str r0, [sp, #0x8]
+ blx MI_CpuCopy8
+ add r0, sp, #0x10
+ ldrb r2, [r0, #0x18]
+ mov r3, #0x0
+ cmp r2, #0x0
+ ble _0202BBB2
+ mov r1, #0x18
+ ldr r0, [sp, #0x24]
+ mul r1, r4
+_0202BB8A:
+ ldr r4, [r0, #0x0]
+ ldr r5, [r1, r4]
+ cmp r5, #0x0
+ beq _0202BBAA
+ ldr r4, [sp, #0x0]
+ cmp r4, r5
+ bne _0202BBAA
+ ldr r5, [r6, #0x4]
+ add r4, r5, #0x0
+ add r4, r4, #0x1
+ str r4, [r6, #0x4]
+ ldr r4, [r0, #0x0]
+ lsl r5, r5, #0x2
+ add r4, r4, r1
+ add r5, r6, r5
+ str r4, [r5, #0xc]
+_0202BBAA:
+ add r3, r3, #0x1
+ add r0, r0, #0x4
+ cmp r3, r2
+ blt _0202BB8A
+_0202BBB2:
+ add r4, r6, #0x0
+ mov r0, #0x0
+ add r4, #0x50
+ str r0, [sp, #0x4]
+ add r5, r6, #0x0
+ add r7, r4, #0x0
+_0202BBBE:
+ add r0, r4, #0x0
+ bl FUN_0202B89C
+ cmp r0, #0x0
+ beq _0202BBE8
+ ldr r1, [r5, #0x50]
+ ldr r0, [sp, #0x0]
+ cmp r0, r1
+ bne _0202BBE8
+ add r0, r6, #0x0
+ add r1, r7, #0x0
+ bl FUN_0202BAA4
+ cmp r0, #0x0
+ bne _0202BBE8
+ ldr r1, [r6, #0x0]
+ add r0, r1, #0x1
+ str r0, [r6, #0x0]
+ lsl r0, r1, #0x2
+ add r0, r6, r0
+ str r4, [r0, #0x38]
+_0202BBE8:
+ ldr r0, [sp, #0x4]
+ add r4, #0x18
+ add r0, r0, #0x1
+ add r5, #0x18
+ add r7, #0x18
+ str r0, [sp, #0x4]
+ cmp r0, #0x6
+ blt _0202BBBE
+_0202BBF8:
+ ldr r1, [r6, #0x4]
+ ldr r0, [r6, #0x0]
+ mov r2, #0x0
+ add r0, r1, r0
+ str r0, [r6, #0x8]
+ ldr r0, [r6, #0x0]
+ cmp r0, #0x0
+ ble _0202BC20
+ add r1, r6, #0x0
+_0202BC0A:
+ ldr r3, [r6, #0x4]
+ ldr r0, [r1, #0x38]
+ add r3, r2, r3
+ lsl r3, r3, #0x2
+ add r3, r6, r3
+ str r0, [r3, #0xc]
+ ldr r0, [r6, #0x0]
+ add r2, r2, #0x1
+ add r1, r1, #0x4
+ cmp r2, r0
+ blt _0202BC0A
+_0202BC20:
+ mov r0, #0x0
+ mov r12, r0
+ ldr r0, [r6, #0x8]
+ sub r5, r0, #0x1
+ cmp r5, #0x0
+ ble _0202BC64
+ add r3, r6, #0x0
+_0202BC2E:
+ mov r0, r12
+ cmp r5, r0
+ ble _0202BC52
+ lsl r0, r5, #0x2
+ add r4, r6, r0
+_0202BC38:
+ ldr r2, [r4, #0xc]
+ ldr r7, [r3, #0xc]
+ ldr r0, [r2, #0x4]
+ ldr r1, [r7, #0x4]
+ cmp r1, r0
+ bhs _0202BC48
+ str r2, [r3, #0xc]
+ str r7, [r4, #0xc]
+_0202BC48:
+ sub r5, r5, #0x1
+ mov r0, r12
+ sub r4, r4, #0x4
+ cmp r5, r0
+ bgt _0202BC38
+_0202BC52:
+ mov r0, r12
+ add r0, r0, #0x1
+ mov r12, r0
+ ldr r0, [r6, #0x8]
+ add r3, r3, #0x4
+ sub r5, r0, #0x1
+ mov r0, r12
+ cmp r0, r5
+ blt _0202BC2E
+_0202BC64:
+ ldr r0, [sp, #0x8]
+ bl FUN_0202BA68
+ mov r3, #0x0
+ add r2, r6, #0x0
+ b _0202BC8A
+_0202BC70:
+ ldr r5, [r2, #0xc]
+ ldr r4, [sp, #0x8]
+ ldmia r5!, {r0-r1}
+ stmia r4!, {r0-r1}
+ ldmia r5!, {r0-r1}
+ stmia r4!, {r0-r1}
+ ldmia r5!, {r0-r1}
+ stmia r4!, {r0-r1}
+ ldr r0, [sp, #0x8]
+ add r2, r2, #0x4
+ add r0, #0x18
+ str r0, [sp, #0x8]
+ add r3, r3, #0x1
+_0202BC8A:
+ cmp r3, #0x6
+ bge _0202BC94
+ ldr r0, [r6, #0x8]
+ cmp r3, r0
+ blt _0202BC70
+_0202BC94:
+ add sp, #0xc
+ pop {r4-r7, pc}
+
+ thumb_func_start FUN_0202BC98
+FUN_0202BC98: ; 0x0202BC98
+ push {r4-r7, lr}
+ sub sp, #0x14
+ add r7, r0, #0x0
+ add r5, r1, #0x0
+ ldr r0, [sp, #0x2c]
+ mov r1, #0xe0
+ str r2, [sp, #0x10]
+ add r4, r3, #0x0
+ bl FUN_020169D8
+ add r6, r0, #0x0
+ mov r0, #0x0
+ str r0, [sp, #0x0]
+ str r4, [sp, #0x4]
+ add r0, sp, #0x18
+ ldrb r0, [r0, #0x10]
+ add r1, r6, #0x0
+ add r2, r5, #0x0
+ str r0, [sp, #0x8]
+ ldr r0, [sp, #0x2c]
+ str r0, [sp, #0xc]
+ ldr r3, [sp, #0x10]
+ add r0, r7, #0x0
+ bl FUN_0202BAD4
+ cmp r5, #0x0
+ beq _0202BCEA
+ mov r0, #0x1
+ str r0, [sp, #0x0]
+ str r4, [sp, #0x4]
+ add r0, sp, #0x18
+ ldrb r0, [r0, #0x10]
+ add r1, r6, #0x0
+ add r2, r5, #0x0
+ str r0, [sp, #0x8]
+ ldr r0, [sp, #0x2c]
+ str r0, [sp, #0xc]
+ ldr r3, [sp, #0x10]
+ add r0, r7, #0x0
+ bl FUN_0202BAD4
+_0202BCEA:
+ add r0, r6, #0x0
+ bl FUN_02016A18
+ add sp, #0x14
+ pop {r4-r7, pc}
+
+ thumb_func_start FUN_0202BCF4
+FUN_0202BCF4: ; 0x0202BCF4
+ push {r4-r7, lr}
+ sub sp, #0x24
+ add r6, r1, #0x0
+ ldr r1, [sp, #0x38]
+ add r4, r0, #0x0
+ add r5, r2, #0x0
+ add r7, r3, #0x0
+ str r1, [sp, #0x38]
+ bl FUN_0202B8E4
+ str r0, [sp, #0x8]
+ add r0, r4, #0x0
+ bl FUN_0202881C
+ mov r1, #0x1
+ bl FUN_0202877C
+ mov r4, #0x0
+ add r3, r4, #0x0
+ str r0, [sp, #0xc]
+ cmp r5, #0x0
+ bls _0202BD44
+_0202BD20:
+ cmp r3, r6
+ beq _0202BD3A
+ lsl r0, r3, #0x2
+ ldr r2, [r7, r0]
+ cmp r2, #0x0
+ beq _0202BD3A
+ add r1, r4, #0x1
+ add r0, r4, #0x0
+ lsl r1, r1, #0x18
+ lsr r4, r1, #0x18
+ lsl r1, r0, #0x2
+ add r0, sp, #0x10
+ str r2, [r0, r1]
+_0202BD3A:
+ add r0, r3, #0x1
+ lsl r0, r0, #0x18
+ lsr r3, r0, #0x18
+ cmp r3, r5
+ blo _0202BD20
+_0202BD44:
+ cmp r4, #0x0
+ beq _0202BD68
+ mov r5, #0x0
+ add r6, sp, #0x10
+_0202BD4C:
+ ldr r0, [sp, #0x38]
+ str r4, [sp, #0x0]
+ str r0, [sp, #0x4]
+ ldr r0, [sp, #0x8]
+ ldr r1, [sp, #0xc]
+ add r2, r5, #0x0
+ add r3, r6, #0x0
+ bl FUN_0202BC98
+ add r0, r5, #0x1
+ lsl r0, r0, #0x18
+ lsr r5, r0, #0x18
+ cmp r5, #0xd
+ blo _0202BD4C
+_0202BD68:
+ add sp, #0x24
+ pop {r4-r7, pc}
+
+ thumb_func_start FUN_0202BD6C
+FUN_0202BD6C: ; 0x0202BD6C
+ push {r3-r7, lr}
+ sub sp, #0x10
+ str r2, [sp, #0x0]
+ add r4, r0, #0x0
+ add r5, r1, #0x0
+ bl FUN_020238F4
+ str r0, [sp, #0x4]
+ ldr r0, [sp, #0x0]
+ mov r1, #0x4c
+ bl FUN_02016998
+ mov r1, #0x0
+ mov r2, #0x4c
+ add r7, r0, #0x0
+ blx MI_CpuFill8
+ add r0, r4, #0x0
+ bl FUN_0202881C
+ mov r1, #0x1
+ bl FUN_0202877C
+ str r0, [sp, #0xc]
+ ldr r1, [sp, #0x0]
+ add r0, r4, #0x0
+ bl FUN_0202B93C
+ str r0, [sp, #0x8]
+ add r0, r5, #0x0
+ bl FUN_0202B870
+ str r0, [r7, #0x0]
+ add r0, r5, #0x0
+ bl FUN_0202B87C
+ ldr r1, [r7, #0x0]
+ mov r6, #0x0
+ cmp r1, #0x0
+ ble _0202BDE2
+ lsl r1, r0, #0x2
+ ldr r0, [sp, #0x8]
+ add r4, r7, #0x0
+ add r5, r0, r1
+_0202BDC4:
+ ldr r0, [sp, #0xc]
+ ldr r1, [sp, #0x0]
+ str r0, [r4, #0x4]
+ ldr r0, [r5, #0x0]
+ str r0, [r4, #0x8]
+ ldr r0, [sp, #0x4]
+ bl FUN_020239A0
+ str r0, [r4, #0xc]
+ ldr r0, [r7, #0x0]
+ add r6, r6, #0x1
+ add r4, #0xc
+ add r5, r5, #0x4
+ cmp r6, r0
+ blt _0202BDC4
+_0202BDE2:
+ ldr r0, [sp, #0x8]
+ bl FUN_02016A18
+ add r0, r7, #0x0
+ add sp, #0x10
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_0202BDF0
+FUN_0202BDF0: ; 0x0202BDF0
+ push {r3-r7, lr}
+ add r7, r2, #0x0
+ add r5, r0, #0x0
+ str r1, [sp, #0x0]
+ add r0, r7, #0x0
+ mov r1, #0x4c
+ bl FUN_02016998
+ mov r1, #0x0
+ mov r2, #0x4c
+ add r4, r0, #0x0
+ blx MI_CpuFill8
+ ldr r0, [sp, #0x0]
+ mov r1, #0x90
+ mul r1, r0
+ mov r6, #0x0
+ add r5, r5, r1
+_0202BE14:
+ add r0, r5, #0x0
+ bl FUN_0202B89C
+ cmp r0, #0x0
+ beq _0202BE60
+ ldr r2, [r4, #0x0]
+ mov r1, #0xc
+ mul r1, r2
+ ldr r0, [r5, #0x0]
+ add r1, r4, r1
+ str r0, [r1, #0x4]
+ ldr r2, [r4, #0x0]
+ mov r1, #0xc
+ mul r1, r2
+ ldr r0, [r5, #0x4]
+ add r1, r4, r1
+ str r0, [r1, #0x8]
+ mov r0, #0x8
+ add r1, r7, #0x0
+ bl FUN_020219F4
+ ldr r2, [r4, #0x0]
+ mov r1, #0xc
+ mul r1, r2
+ add r1, r4, r1
+ str r0, [r1, #0xc]
+ ldr r1, [r4, #0x0]
+ mov r0, #0xc
+ mul r0, r1
+ add r0, r4, r0
+ add r1, r5, #0x0
+ ldr r0, [r0, #0xc]
+ add r1, #0x8
+ bl FUN_02021E28
+ ldr r0, [r4, #0x0]
+ add r0, r0, #0x1
+ str r0, [r4, #0x0]
+_0202BE60:
+ add r6, r6, #0x1
+ add r5, #0x18
+ cmp r6, #0x6
+ blt _0202BE14
+ add r0, r4, #0x0
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_0202BE6C
+FUN_0202BE6C: ; 0x0202BE6C
+ push {r4-r6, lr}
+ add r6, r0, #0x0
+ mov r4, #0x0
+ add r5, r6, #0x0
+_0202BE74:
+ ldr r0, [r5, #0xc]
+ cmp r0, #0x0
+ beq _0202BE7E
+ bl FUN_02021A20
+_0202BE7E:
+ add r4, r4, #0x1
+ add r5, #0xc
+ cmp r4, #0x6
+ blt _0202BE74
+ add r0, r6, #0x0
+ mov r1, #0x0
+ mov r2, #0x4c
+ blx MI_CpuFill8
+ add r0, r6, #0x0
+ bl FUN_02016A18
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_0202BE98
+FUN_0202BE98: ; 0x0202BE98
+ ldr r0, _0202BE9C ; =0x00000688
+ bx lr
+ .balign 4
+_0202BE9C: .word 0x00000688
+
+ thumb_func_start FUN_0202BEA0
+FUN_0202BEA0: ; 0x0202BEA0
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ ldr r2, _0202BED8 ; =0x00000688
+ mov r0, #0x0
+ add r1, r5, #0x0
+ blx MIi_CpuClearFast
+ mov r4, #0x0
+ mov r6, #0xab
+ add r7, r4, #0x0
+_0202BEB4:
+ add r0, r5, #0x0
+ bl FUN_02066978
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ add r2, r7, #0x0
+ bl FUN_020671BC
+ cmp r0, #0x0
+ beq _0202BECC
+ bl ErrorHandling
+_0202BECC:
+ add r4, r4, #0x1
+ add r5, #0xec
+ cmp r4, #0x6
+ blt _0202BEB4
+ pop {r3-r7, pc}
+ nop
+_0202BED8: .word 0x00000688
+
+ thumb_func_start FUN_0202BEDC
+FUN_0202BEDC: ; 0x0202BEDC
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ ldr r2, _0202BF14 ; =0x00000588
+ mov r0, #0x0
+ add r1, r5, #0x0
+ blx MIi_CpuClearFast
+ mov r4, #0x0
+ mov r6, #0xab
+ add r7, r4, #0x0
+_0202BEF0:
+ add r0, r5, #0x0
+ bl FUN_02066978
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ add r2, r7, #0x0
+ bl FUN_020671BC
+ cmp r0, #0x0
+ beq _0202BF08
+ bl ErrorHandling
+_0202BF08:
+ add r4, r4, #0x1
+ add r5, #0xec
+ cmp r4, #0x6
+ blt _0202BEF0
+ pop {r3-r7, pc}
+ nop
+_0202BF14: .word 0x00000588
+
+ thumb_func_start FUN_0202BF18
+FUN_0202BF18: ; 0x0202BF18
+ push {r4-r7}
+ add r2, r0, #0x0
+ ldr r3, _0202BF70 ; =0x00000588
+ mov r0, #0x0
+ add r5, r2, #0x0
+_0202BF22:
+ ldr r4, [r5, r3]
+ cmp r1, r4
+ beq _0202BF6C
+ add r0, r0, #0x1
+ add r5, r5, #0x4
+ cmp r0, #0x14
+ blt _0202BF22
+ ldr r1, _0202BF70 ; =0x00000588
+ mov r0, #0x0
+ add r4, r2, #0x0
+_0202BF36:
+ ldr r3, [r4, r1]
+ cmp r3, #0x0
+ beq _0202BF6C
+ add r0, r0, #0x1
+ add r4, r4, #0x4
+ cmp r0, #0x14
+ blt _0202BF36
+ mov r3, #0x0
+ ldr r4, _0202BF74 ; =0x7FFFFFFF
+ add r5, r3, #0x0
+_0202BF4A:
+ ldr r0, _0202BF78 ; =0x000005D8
+ ldr r1, [r2, r0]
+ add r0, r0, #0x4
+ ldr r0, [r2, r0]
+ sub r6, r1, r4
+ mov r12, r0
+ mov r6, r12
+ sbc r6, r3
+ bge _0202BF62
+ add r4, r1, #0x0
+ add r3, r0, #0x0
+ add r7, r5, #0x0
+_0202BF62:
+ add r5, r5, #0x1
+ add r2, #0x8
+ cmp r5, #0x14
+ blt _0202BF4A
+ add r0, r7, #0x0
+_0202BF6C:
+ pop {r4-r7}
+ bx lr
+ .balign 4
+_0202BF70: .word 0x00000588
+_0202BF74: .word 0x7FFFFFFF
+_0202BF78: .word 0x000005D8
+
+ thumb_func_start FUN_0202BF7C
+FUN_0202BF7C: ; 0x0202BF7C
+ add r3, r0, #0x0
+ add r0, r1, #0x0
+ mov r1, #0xec
+ mul r1, r2
+ add r1, r3, r1
+ ldr r3, _0202BF8C ; =FUN_02069A64
+ bx r3
+ nop
+_0202BF8C: .word FUN_02069A64
+
+ thumb_func_start FUN_0202BF90
+FUN_0202BF90: ; 0x0202BF90
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ bl FUN_0202BF18
+ add r6, r0, #0x0
+ lsl r0, r6, #0x2
+ add r1, r5, r0
+ ldr r0, _0202BFCC ; =0x00000588
+ str r4, [r1, r0]
+ bl FUN_020126FC
+ lsl r2, r6, #0x3
+ add r3, r5, r2
+ ldr r2, _0202BFD0 ; =0x000005D8
+ str r0, [r3, r2]
+ add r0, r2, #0x4
+ str r1, [r3, r0]
+ blx OS_GetOwnerRtcOffset
+ ldr r2, _0202BFD4 ; =0x00000678
+ str r0, [r5, r2]
+ add r0, r2, #0x4
+ add r2, #0x8
+ str r1, [r5, r0]
+ add r0, r5, r2
+ blx OS_GetMacAddress
+ pop {r4-r6, pc}
+ nop
+_0202BFCC: .word 0x00000588
+_0202BFD0: .word 0x000005D8
+_0202BFD4: .word 0x00000678
+
+ thumb_func_start FUN_0202BFD8
+FUN_0202BFD8: ; 0x0202BFD8
+ push {r4-r6, lr}
+ add r5, r1, #0x0
+ add r6, r0, #0x0
+ add r4, r2, #0x0
+ cmp r5, #0x6
+ blt _0202BFE8
+ bl ErrorHandling
+_0202BFE8:
+ mov r0, #0xec
+ mul r0, r5
+ add r3, r6, r0
+ mov r2, #0x1d
+_0202BFF0:
+ ldmia r3!, {r0-r1}
+ stmia r4!, {r0-r1}
+ sub r2, r2, #0x1
+ bne _0202BFF0
+ ldr r0, [r3, #0x0]
+ str r0, [r4, #0x0]
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_0202C000
+FUN_0202C000: ; 0x0202C000
+ push {r3-r7, lr}
+ mov r4, #0x0
+ add r5, r0, #0x0
+ add r6, r4, #0x0
+ mov r7, #0xab
+_0202C00A:
+ add r0, r5, #0x0
+ add r1, r7, #0x0
+ mov r2, #0x0
+ bl FUN_020671BC
+ cmp r0, #0x0
+ beq _0202C01A
+ add r4, r4, #0x1
+_0202C01A:
+ add r6, r6, #0x1
+ add r5, #0xec
+ cmp r6, #0x6
+ blt _0202C00A
+ add r0, r4, #0x0
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_0202C028
+FUN_0202C028: ; 0x0202C028
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ bl FUN_020126FC
+ ldr r1, _0202C058 ; =0x00000588
+ mov r3, #0x0
+ add r6, r5, #0x0
+_0202C038:
+ ldr r2, [r6, r1]
+ cmp r4, r2
+ bne _0202C04A
+ lsl r1, r3, #0x3
+ add r2, r5, r1
+ ldr r1, _0202C05C ; =0x000005D8
+ ldr r1, [r2, r1]
+ sub r0, r0, r1
+ pop {r4-r6, pc}
+_0202C04A:
+ add r3, r3, #0x1
+ add r6, r6, #0x4
+ cmp r3, #0x14
+ blt _0202C038
+ mov r0, #0x0
+ pop {r4-r6, pc}
+ nop
+_0202C058: .word 0x00000588
+_0202C05C: .word 0x000005D8
+
+ thumb_func_start FUN_0202C060
+FUN_0202C060: ; 0x0202C060
+ push {r3-r5, lr}
+ sub sp, #0x8
+ add r4, r0, #0x0
+ add r0, sp, #0x0
+ blx OS_GetMacAddress
+ mov r0, #0x1a
+ mov r3, #0x0
+ add r5, sp, #0x0
+ lsl r0, r0, #0x6
+_0202C074:
+ add r1, r4, r3
+ ldrb r2, [r5, #0x0]
+ ldrb r1, [r1, r0]
+ cmp r2, r1
+ beq _0202C084
+ add sp, #0x8
+ mov r0, #0x0
+ pop {r3-r5, pc}
+_0202C084:
+ add r3, r3, #0x1
+ add r5, r5, #0x1
+ cmp r3, #0x6
+ blt _0202C074
+ mov r0, #0x1
+ add sp, #0x8
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_0202C094
+FUN_0202C094: ; 0x0202C094
+ push {r4, lr}
+ add r4, r0, #0x0
+ blx OS_GetOwnerRtcOffset
+ ldr r2, _0202C0B4 ; =0x00000678
+ ldr r3, [r4, r2]
+ add r2, r2, #0x4
+ ldr r2, [r4, r2]
+ eor r0, r3
+ eor r1, r2
+ orr r0, r1
+ bne _0202C0B0
+ mov r0, #0x1
+ pop {r4, pc}
+_0202C0B0:
+ mov r0, #0x0
+ pop {r4, pc}
+ .balign 4
+_0202C0B4: .word 0x00000678
+
+ thumb_func_start FUN_0202C0B8
+FUN_0202C0B8: ; 0x0202C0B8
+ push {r3-r4}
+ mov r4, #0x0
+ mov r1, #0x1a
+ add r3, r4, #0x0
+ lsl r1, r1, #0x6
+_0202C0C2:
+ add r2, r0, r3
+ ldrb r2, [r2, r1]
+ add r3, r3, #0x1
+ orr r4, r2
+ cmp r3, #0x6
+ blt _0202C0C2
+ cmp r4, #0x0
+ bne _0202C0D8
+ mov r0, #0x1
+ pop {r3-r4}
+ bx lr
+_0202C0D8:
+ mov r0, #0x0
+ pop {r3-r4}
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_0202C0E0
+FUN_0202C0E0: ; 0x0202C0E0
+ mov r0, #0x28
+ bx lr
+
+ thumb_func_start FUN_0202C0E4
+FUN_0202C0E4: ; 0x0202C0E4
+ push {r4-r5}
+ mov r4, #0x0
+ add r1, r4, #0x0
+ add r2, r4, #0x0
+_0202C0EC:
+ add r3, r2, #0x0
+ add r5, r0, #0x0
+_0202C0F0:
+ add r3, r3, #0x1
+ strh r1, [r5, #0x0]
+ add r5, r5, #0x2
+ cmp r3, #0x4
+ blt _0202C0F0
+ add r4, r4, #0x1
+ add r0, #0x8
+ cmp r4, #0x5
+ blt _0202C0EC
+ pop {r4-r5}
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_0202C108
+FUN_0202C108: ; 0x0202C108
+ push {r3-r5, lr}
+ add r5, r1, #0x0
+ mov r1, #0x21
+ add r4, r2, #0x0
+ bl FUN_02022610
+ lsl r1, r5, #0x3
+ add r3, r0, r1
+ lsl r2, r4, #0x1
+ ldrh r1, [r3, r2]
+ ldr r0, _0202C128 ; =0x0000270F
+ cmp r1, r0
+ bhs _0202C126
+ add r0, r1, #0x1
+ strh r0, [r3, r2]
+_0202C126:
+ pop {r3-r5, pc}
+ .balign 4
+_0202C128: .word 0x0000270F
+
+ thumb_func_start FUN_0202C12C
+FUN_0202C12C: ; 0x0202C12C
+ push {r3-r5, lr}
+ add r5, r1, #0x0
+ mov r1, #0x21
+ add r4, r2, #0x0
+ bl FUN_02022610
+ lsl r2, r5, #0x3
+ lsl r1, r4, #0x1
+ add r0, r0, r2
+ ldrh r0, [r1, r0]
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_0202C144
+FUN_0202C144: ; 0x0202C144
+ push {r3-r7, lr}
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ add r0, r4, #0x0
+ mov r1, #0x4c
+ mov r2, #0x0
+ bl FUN_020671BC
+ cmp r0, #0x0
+ bne _0202C194
+ add r0, r5, #0x0
+ bl FUN_02024DA0
+ add r6, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_02029FC8
+ add r7, r0, #0x0
+ add r0, r4, #0x0
+ mov r1, #0x5
+ mov r2, #0x0
+ bl FUN_020671BC
+ add r2, r0, #0x0
+ lsl r2, r2, #0x10
+ add r0, r7, #0x0
+ add r1, r6, #0x0
+ lsr r2, r2, #0x10
+ bl FUN_0202A1C4
+ add r0, r6, #0x0
+ add r1, r4, #0x0
+ bl FUN_02024AF0
+ add r0, r5, #0x0
+ bl FUN_0204C1A8
+ add r1, r4, #0x0
+ bl FUN_0204C104
+_0202C194:
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_0202C198
+FUN_0202C198: ; 0x0202C198
+ ldr r1, _0202C1A4 ; =0x021C59D8
+ ldr r2, [r1, #0x4]
+ ldr r1, _0202C1A8 ; =0x00001310
+ str r0, [r2, r1]
+ bx lr
+ nop
+_0202C1A4: .word 0x021C59D8
+_0202C1A8: .word 0x00001310
+
+ thumb_func_start FUN_0202C1AC
+FUN_0202C1AC: ; 0x0202C1AC
+ ldr r1, _0202C1C0 ; =0x021C59D8
+ ldr r3, [r1, #0x4]
+ ldr r1, _0202C1C4 ; =0x00001310
+ ldr r2, [r3, r1]
+ sub r2, #0x9
+ cmp r2, #0x1
+ bls _0202C1BE
+ add r1, #0x20
+ str r0, [r3, r1]
+_0202C1BE:
+ bx lr
+ .balign 4
+_0202C1C0: .word 0x021C59D8
+_0202C1C4: .word 0x00001310
+
+ thumb_func_start FUN_0202C1C8
+FUN_0202C1C8: ; 0x0202C1C8
+ push {r3, lr}
+ mov r0, #0x3
+ bl FUN_0202C198
+ ldr r1, _0202C1F0 ; =0x021C59D8
+ ldr r0, _0202C1F4 ; =FUN_0202C1F8
+ ldr r1, [r1, #0x4]
+ blx WM_SetParentParameter
+ cmp r0, #0x2
+ beq _0202C1EC
+ bl FUN_0202C1AC
+ mov r0, #0x9
+ bl FUN_0202C198
+ mov r0, #0x0
+ pop {r3, pc}
+_0202C1EC:
+ mov r0, #0x1
+ pop {r3, pc}
+ .balign 4
+_0202C1F0: .word 0x021C59D8
+_0202C1F4: .word FUN_0202C1F8
+
+ thumb_func_start FUN_0202C1F8
+FUN_0202C1F8: ; 0x0202C1F8
+ push {r3, lr}
+ ldrh r0, [r0, #0x2]
+ cmp r0, #0x0
+ beq _0202C20C
+ bl FUN_0202C1AC
+ mov r0, #0x9
+ bl FUN_0202C198
+ pop {r3, pc}
+_0202C20C:
+ bl FUN_0202C21C
+ cmp r0, #0x0
+ bne _0202C21A
+ mov r0, #0x9
+ bl FUN_0202C198
+_0202C21A:
+ pop {r3, pc}
+
+ thumb_func_start FUN_0202C21C
+FUN_0202C21C: ; 0x0202C21C
+ push {r4, lr}
+ ldr r0, _0202C278 ; =0x021C59D8
+ ldr r1, [r0, #0x4]
+ ldr r0, _0202C27C ; =0x00001310
+ ldr r0, [r1, r0]
+ sub r0, r0, #0x4
+ cmp r0, #0x2
+ bhi _0202C230
+ mov r0, #0x1
+ pop {r4, pc}
+_0202C230:
+ blx WMi_GetStatusAddress
+ add r4, r0, #0x0
+ mov r0, #0x66
+ lsl r0, r0, #0x2
+ add r0, r4, r0
+ mov r1, #0x4
+ blx DC_InvalidateRange
+ mov r0, #0x66
+ mov r1, #0x0
+ lsl r0, r0, #0x2
+ str r1, [r4, r0]
+ add r0, r4, r0
+ mov r1, #0x4
+ blx DC_FlushRange
+ ldr r0, _0202C280 ; =FUN_0202C288
+ blx WM_StartParent
+ cmp r0, #0x2
+ beq _0202C264
+ bl FUN_0202C1AC
+ mov r0, #0x0
+ pop {r4, pc}
+_0202C264:
+ ldr r2, _0202C278 ; =0x021C59D8
+ ldr r1, _0202C284 ; =0x0000132C
+ ldr r0, [r2, #0x4]
+ mov r3, #0x0
+ strh r3, [r0, r1]
+ ldr r2, [r2, #0x4]
+ mov r0, #0x1
+ add r1, r1, #0x2
+ strh r0, [r2, r1]
+ pop {r4, pc}
+ .balign 4
+_0202C278: .word 0x021C59D8
+_0202C27C: .word 0x00001310
+_0202C280: .word FUN_0202C288
+_0202C284: .word 0x0000132C
+
+ thumb_func_start FUN_0202C288
+FUN_0202C288: ; 0x0202C288
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ ldrh r0, [r5, #0x10]
+ mov r1, #0x1
+ lsl r1, r0
+ lsl r0, r1, #0x10
+ lsr r4, r0, #0x10
+ ldrh r0, [r5, #0x2]
+ cmp r0, #0x0
+ beq _0202C2A8
+ bl FUN_0202C1AC
+ mov r0, #0x9
+ bl FUN_0202C198
+ pop {r4-r6, pc}
+_0202C2A8:
+ ldrh r0, [r5, #0x8]
+ cmp r0, #0x7
+ bgt _0202C2C0
+ bge _0202C2DA
+ cmp r0, #0x2
+ bgt _0202C378
+ cmp r0, #0x0
+ blt _0202C378
+ beq _0202C36A
+ cmp r0, #0x2
+ beq _0202C2CC
+ pop {r4-r6, pc}
+_0202C2C0:
+ cmp r0, #0x9
+ bgt _0202C2C8
+ beq _0202C34C
+ pop {r4-r6, pc}
+_0202C2C8:
+ cmp r0, #0x1a
+ pop {r4-r6, pc}
+_0202C2CC:
+ ldr r0, _0202C37C ; =0x021C59D8
+ ldr r2, [r0, #0x4]
+ ldr r0, _0202C380 ; =0x00001345
+ ldrb r1, [r2, r0]
+ add r1, r1, #0x1
+ strb r1, [r2, r0]
+ pop {r4-r6, pc}
+_0202C2DA:
+ ldr r0, _0202C37C ; =0x021C59D8
+ ldr r2, [r0, #0x4]
+ ldr r0, _0202C384 ; =0x00001343
+ ldrb r1, [r2, r0]
+ cmp r1, #0x1
+ beq _0202C318
+ sub r0, r0, #0x1
+ ldrb r0, [r2, r0]
+ cmp r0, #0x1
+ beq _0202C318
+ bl FUN_0202CBA0
+ ldr r1, _0202C37C ; =0x021C59D8
+ ldr r2, [r1, #0x4]
+ ldr r1, _0202C388 ; =0x00001334
+ ldrb r1, [r2, r1]
+ cmp r0, r1
+ bge _0202C318
+ bl FUN_02033534
+ ldrb r1, [r5, #0x14]
+ cmp r1, r0
+ bne _0202C318
+ add r1, r5, #0x0
+ ldr r0, _0202C38C ; =0x02105D54
+ add r1, #0x15
+ mov r2, #0x3
+ blx memcmp
+ cmp r0, #0x0
+ beq _0202C330
+_0202C318:
+ ldrh r1, [r5, #0x10]
+ mov r0, #0x0
+ blx WM_Disconnect
+ cmp r0, #0x2
+ beq _0202C378
+ bl FUN_0202C1AC
+ mov r0, #0x9
+ bl FUN_0202C198
+ pop {r4-r6, pc}
+_0202C330:
+ ldr r1, _0202C37C ; =0x021C59D8
+ ldr r0, _0202C390 ; =0x0000132E
+ ldr r3, [r1, #0x4]
+ ldrh r2, [r3, r0]
+ orr r2, r4
+ strh r2, [r3, r0]
+ ldr r1, [r1, #0x4]
+ sub r0, r0, #0x6
+ ldr r1, [r1, r0]
+ cmp r1, #0x0
+ beq _0202C378
+ ldrh r0, [r5, #0x10]
+ blx r1
+ pop {r4-r6, pc}
+_0202C34C:
+ ldr r2, _0202C37C ; =0x021C59D8
+ ldr r1, _0202C390 ; =0x0000132E
+ ldr r0, [r2, #0x4]
+ mvn r3, r4
+ ldrh r6, [r0, r1]
+ and r3, r6
+ strh r3, [r0, r1]
+ ldr r0, [r2, #0x4]
+ sub r1, #0xa
+ ldr r1, [r0, r1]
+ cmp r1, #0x0
+ beq _0202C378
+ ldrh r0, [r5, #0x10]
+ blx r1
+ pop {r4-r6, pc}
+_0202C36A:
+ bl FUN_0202C394
+ cmp r0, #0x0
+ bne _0202C378
+ mov r0, #0x9
+ bl FUN_0202C198
+_0202C378:
+ pop {r4-r6, pc}
+ nop
+_0202C37C: .word 0x021C59D8
+_0202C380: .word 0x00001345
+_0202C384: .word 0x00001343
+_0202C388: .word 0x00001334
+_0202C38C: .word 0x02105D54
+_0202C390: .word 0x0000132E
+
+ thumb_func_start FUN_0202C394
+FUN_0202C394: ; 0x0202C394
+ push {r4, lr}
+ sub sp, #0x8
+ ldr r0, _0202C3F0 ; =0x021C59D8
+ ldr r1, [r0, #0x4]
+ ldr r0, _0202C3F4 ; =0x00001310
+ ldr r0, [r1, r0]
+ sub r0, r0, #0x4
+ cmp r0, #0x2
+ bhi _0202C3AC
+ add sp, #0x8
+ mov r0, #0x1
+ pop {r4, pc}
+_0202C3AC:
+ mov r0, #0x4
+ bl FUN_0202C198
+ ldr r0, _0202C3F0 ; =0x021C59D8
+ ldr r2, _0202C3F8 ; =0x00001304
+ ldr r4, [r0, #0x4]
+ ldr r3, _0202C3FC ; =0x00001020
+ ldr r0, [r4, r2]
+ add r2, r2, #0x4
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #0x0]
+ mov r0, #0x1
+ str r0, [sp, #0x4]
+ ldr r2, [r4, r2]
+ add r1, r4, r3
+ lsl r2, r2, #0x10
+ sub r3, #0xe0
+ ldr r0, _0202C400 ; =FUN_0202C404
+ lsr r2, r2, #0x10
+ add r3, r4, r3
+ blx WM_StartMP
+ cmp r0, #0x2
+ beq _0202C3E8
+ bl FUN_0202C1AC
+ add sp, #0x8
+ mov r0, #0x0
+ pop {r4, pc}
+_0202C3E8:
+ mov r0, #0x1
+ add sp, #0x8
+ pop {r4, pc}
+ nop
+_0202C3F0: .word 0x021C59D8
+_0202C3F4: .word 0x00001310
+_0202C3F8: .word 0x00001304
+_0202C3FC: .word 0x00001020
+_0202C400: .word FUN_0202C404
+
+ thumb_func_start FUN_0202C404
+FUN_0202C404: ; 0x0202C404
+ push {r3, lr}
+ ldrh r1, [r0, #0x2]
+ cmp r1, #0x0
+ beq _0202C41A
+ add r0, r1, #0x0
+ bl FUN_0202C1AC
+ mov r0, #0x9
+ bl FUN_0202C198
+ pop {r3, pc}
+_0202C41A:
+ ldrh r0, [r0, #0x4]
+ sub r0, #0xa
+ cmp r0, #0x3
+ bhi _0202C454
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0202C42E: ; jump table (using 16-bit offset)
+ .short _0202C436 - _0202C42E - 2; case 0
+ .short _0202C454 - _0202C42E - 2; case 1
+ .short _0202C454 - _0202C42E - 2; case 2
+ .short _0202C454 - _0202C42E - 2; case 3
+_0202C436:
+ ldr r0, _0202C458 ; =0x021C59D8
+ ldr r2, [r0, #0x4]
+ ldr r0, _0202C45C ; =0x00001314
+ ldr r1, [r2, r0]
+ cmp r1, #0x2
+ bne _0202C44E
+ sub r0, r0, #0x4
+ ldr r0, [r2, r0]
+ cmp r0, #0x4
+ beq _0202C44E
+ cmp r0, #0x6
+ beq _0202C454
+_0202C44E:
+ mov r0, #0x4
+ bl FUN_0202C198
+_0202C454:
+ pop {r3, pc}
+ nop
+_0202C458: .word 0x021C59D8
+_0202C45C: .word 0x00001314
+
+ thumb_func_start FUN_0202C460
+FUN_0202C460: ; 0x0202C460
+ push {r3, lr}
+ mov r0, #0x3
+ bl FUN_0202C198
+ ldr r0, _0202C480 ; =FUN_0202C484
+ blx WM_EndMP
+ cmp r0, #0x2
+ beq _0202C47A
+ bl FUN_0202C1AC
+ mov r0, #0x0
+ pop {r3, pc}
+_0202C47A:
+ mov r0, #0x1
+ pop {r3, pc}
+ nop
+_0202C480: .word FUN_0202C484
+
+ thumb_func_start FUN_0202C484
+FUN_0202C484: ; 0x0202C484
+ push {r3, lr}
+ ldrh r0, [r0, #0x2]
+ cmp r0, #0x0
+ beq _0202C496
+ bl FUN_0202C1AC
+ bl FUN_0202D0D8
+ pop {r3, pc}
+_0202C496:
+ bl FUN_0202C4A4
+ cmp r0, #0x0
+ bne _0202C4A2
+ bl FUN_0202D0D8
+_0202C4A2:
+ pop {r3, pc}
+
+ thumb_func_start FUN_0202C4A4
+FUN_0202C4A4: ; 0x0202C4A4
+ push {r3, lr}
+ ldr r0, _0202C4BC ; =FUN_0202C4C0
+ blx WM_EndParent
+ cmp r0, #0x2
+ beq _0202C4B8
+ bl FUN_0202C1AC
+ mov r0, #0x0
+ pop {r3, pc}
+_0202C4B8:
+ mov r0, #0x1
+ pop {r3, pc}
+ .balign 4
+_0202C4BC: .word FUN_0202C4C0
+
+ thumb_func_start FUN_0202C4C0
+FUN_0202C4C0: ; 0x0202C4C0
+ push {r3, lr}
+ ldrh r0, [r0, #0x2]
+ cmp r0, #0x0
+ beq _0202C4CE
+ bl FUN_0202C1AC
+ pop {r3, pc}
+_0202C4CE:
+ mov r0, #0x1
+ bl FUN_0202C198
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_0202C4D8
+FUN_0202C4D8: ; 0x0202C4D8
+ push {r3-r7, lr}
+ add r6, r2, #0x0
+ ldr r2, _0202C564 ; =0x021C59D8
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ mov r3, #0x2
+ ldr r0, [r2, #0x4]
+ ldr r1, _0202C568 ; =0x00001308
+ lsl r3, r3, #0x8
+ str r3, [r0, r1]
+ ldr r2, [r2, #0x4]
+ mov r0, #0x40
+ sub r1, r1, #0x4
+ str r0, [r2, r1]
+ mov r0, #0x2
+ bl FUN_0202C198
+ ldr r1, _0202C564 ; =0x021C59D8
+ ldr r0, _0202C56C ; =0x00001256
+ ldr r3, [r1, #0x4]
+ mov r2, #0x1
+ strh r2, [r3, r0]
+ add r7, r0, #0x0
+ ldrh r3, [r4, #0x4]
+ ldr r2, [r1, #0x4]
+ add r7, #0x96
+ strh r3, [r2, r7]
+ add r7, r0, #0x0
+ ldrh r3, [r4, #0x2]
+ ldr r2, [r1, #0x4]
+ add r7, #0x94
+ strh r3, [r2, r7]
+ add r2, r0, #0x0
+ ldrh r4, [r4, #0x0]
+ ldr r3, [r1, #0x4]
+ add r2, #0x92
+ strh r4, [r3, r2]
+ add r2, r0, #0x0
+ ldr r3, [r1, #0x4]
+ add r2, #0xbe
+ str r5, [r3, r2]
+ add r3, r0, #0x0
+ ldr r4, [r1, #0x4]
+ mov r2, #0x0
+ add r3, #0xaa
+ str r2, [r4, r3]
+ add r3, r0, #0x0
+ ldr r4, [r1, #0x4]
+ add r3, #0xb6
+ strh r6, [r4, r3]
+ add r3, r0, #0x0
+ ldr r4, [r1, #0x4]
+ add r3, #0x8e
+ strh r2, [r4, r3]
+ ldr r2, [r1, #0x4]
+ add r0, #0xb8
+ mov r1, #0x1
+ strh r1, [r2, r0]
+ bl FUN_0202C5D8
+ cmp r0, #0x0
+ bne _0202C55E
+ mov r0, #0x9
+ bl FUN_0202C198
+ mov r0, #0x0
+ pop {r3-r7, pc}
+_0202C55E:
+ mov r0, #0x1
+ pop {r3-r7, pc}
+ nop
+_0202C564: .word 0x021C59D8
+_0202C568: .word 0x00001308
+_0202C56C: .word 0x00001256
+
+ thumb_func_start FUN_0202C570
+FUN_0202C570: ; 0x0202C570
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ mov r0, #0x2
+ add r4, r1, #0x0
+ add r6, r2, #0x0
+ bl FUN_0202C198
+ ldr r1, _0202C5D4 ; =0x021C59D8
+ mov r0, #0x13
+ ldr r2, [r1, #0x4]
+ lsl r0, r0, #0x8
+ str r5, [r2, r0]
+ add r2, r0, #0x0
+ ldr r3, [r1, #0x4]
+ add r2, #0xc
+ strh r6, [r3, r2]
+ add r3, r0, #0x0
+ ldr r5, [r1, #0x4]
+ mov r2, #0x0
+ sub r3, #0x1c
+ strh r2, [r5, r3]
+ add r3, r0, #0x0
+ ldr r5, [r1, #0x4]
+ add r3, #0xe
+ strh r2, [r5, r3]
+ add r2, r0, #0x0
+ ldrh r5, [r4, #0x4]
+ ldr r3, [r1, #0x4]
+ sub r2, #0x14
+ strh r5, [r3, r2]
+ add r2, r0, #0x0
+ ldrh r5, [r4, #0x2]
+ ldr r3, [r1, #0x4]
+ sub r2, #0x16
+ strh r5, [r3, r2]
+ ldrh r2, [r4, #0x0]
+ ldr r1, [r1, #0x4]
+ sub r0, #0x18
+ strh r2, [r1, r0]
+ bl FUN_0202C5D8
+ cmp r0, #0x0
+ bne _0202C5D0
+ mov r0, #0x9
+ bl FUN_0202C198
+ mov r0, #0x0
+ pop {r4-r6, pc}
+_0202C5D0:
+ mov r0, #0x1
+ pop {r4-r6, pc}
+ .balign 4
+_0202C5D4: .word 0x021C59D8
+
+ thumb_func_start FUN_0202C5D8
+FUN_0202C5D8: ; 0x0202C5D8
+ push {r3-r7, lr}
+ blx WM_GetAllowedChannel
+ add r5, r0, #0x0
+ mov r0, #0x2
+ lsl r0, r0, #0xe
+ cmp r5, r0
+ bne _0202C5F8
+ mov r0, #0x3
+ bl FUN_0202C1AC
+ mov r0, #0x1
+ bl FUN_020336A0
+ mov r0, #0x0
+ pop {r3-r7, pc}
+_0202C5F8:
+ cmp r5, #0x0
+ bne _0202C60C
+ mov r0, #0x16
+ bl FUN_0202C1AC
+ mov r0, #0x1
+ bl FUN_020336A0
+ mov r0, #0x0
+ pop {r3-r7, pc}
+_0202C60C:
+ ldr r1, _0202C684 ; =0x021C59D8
+ ldr r0, _0202C688 ; =0x0000130C
+ ldr r3, [r1, #0x4]
+ ldrh r2, [r3, r0]
+ cmp r2, #0x0
+ bne _0202C64C
+ add r7, r0, #0x0
+ mov r3, #0x1
+ add r2, r3, #0x0
+ sub r7, #0x28
+ sub r0, #0x28
+_0202C622:
+ ldr r4, [r1, #0x4]
+ ldr r6, _0202C68C ; =0x000012E4
+ ldrh r6, [r4, r6]
+ add r6, r6, #0x1
+ strh r6, [r4, r7]
+ ldr r4, [r1, #0x4]
+ ldrh r6, [r4, r0]
+ cmp r6, #0x10
+ bls _0202C638
+ ldr r6, _0202C68C ; =0x000012E4
+ strh r3, [r4, r6]
+_0202C638:
+ ldr r6, [r1, #0x4]
+ ldr r4, _0202C68C ; =0x000012E4
+ ldrh r4, [r6, r4]
+ add r6, r2, #0x0
+ sub r4, r4, #0x1
+ lsl r6, r4
+ add r4, r5, #0x0
+ tst r4, r6
+ bne _0202C650
+ b _0202C622
+_0202C64C:
+ sub r0, #0x28
+ strh r2, [r3, r0]
+_0202C650:
+ blx WM_GetDispersionScanPeriod
+ ldr r2, _0202C684 ; =0x021C59D8
+ ldr r1, _0202C690 ; =0x000012E6
+ ldr r3, [r2, #0x4]
+ strh r0, [r3, r1]
+ add r0, r1, #0x0
+ ldr r3, [r2, #0x4]
+ sub r0, #0xc6
+ add r4, r3, r0
+ sub r0, r1, #0x6
+ str r4, [r3, r0]
+ ldr r2, [r2, #0x4]
+ sub r1, r1, #0x6
+ ldr r0, _0202C694 ; =FUN_0202C698
+ add r1, r2, r1
+ blx WM_StartScan
+ cmp r0, #0x2
+ beq _0202C680
+ bl FUN_0202C1AC
+ mov r0, #0x0
+ pop {r3-r7, pc}
+_0202C680:
+ mov r0, #0x1
+ pop {r3-r7, pc}
+ .balign 4
+_0202C684: .word 0x021C59D8
+_0202C688: .word 0x0000130C
+_0202C68C: .word 0x000012E4
+_0202C690: .word 0x000012E6
+_0202C694: .word FUN_0202C698
+
+ thumb_func_start FUN_0202C698
+FUN_0202C698: ; 0x0202C698
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldrh r0, [r4, #0x2]
+ cmp r0, #0x0
+ beq _0202C6AE
+ bl FUN_0202C1AC
+ mov r0, #0x9
+ bl FUN_0202C198
+ pop {r4, pc}
+_0202C6AE:
+ ldr r0, _0202C760 ; =0x021C59D8
+ ldr r2, [r0, #0x4]
+ ldr r0, _0202C764 ; =0x00001310
+ ldr r1, [r2, r0]
+ cmp r1, #0x2
+ beq _0202C6D0
+ mov r1, #0x0
+ sub r0, r0, #0x2
+ strh r1, [r2, r0]
+ bl FUN_0202C794
+ cmp r0, #0x0
+ bne _0202C75C
+ mov r0, #0x9
+ bl FUN_0202C198
+ pop {r4, pc}
+_0202C6D0:
+ ldrh r1, [r4, #0x8]
+ cmp r1, #0x3
+ beq _0202C75C
+ cmp r1, #0x4
+ beq _0202C74E
+ cmp r1, #0x5
+ bne _0202C74E
+ sub r0, #0xf0
+ add r0, r2, r0
+ mov r1, #0xc0
+ blx DC_InvalidateRange
+ ldr r0, _0202C760 ; =0x021C59D8
+ ldr r1, [r0, #0x4]
+ ldr r0, _0202C768 ; =0x00001320
+ ldr r2, [r1, r0]
+ cmp r2, #0x0
+ beq _0202C704
+ ldrh r0, [r4, #0x36]
+ cmp r0, #0x8
+ blo _0202C704
+ add r1, r4, #0x0
+ add r1, #0x48
+ ldrb r1, [r1, #0x4]
+ ldr r0, [r4, #0x3c]
+ blx r2
+_0202C704:
+ ldrh r0, [r4, #0x36]
+ cmp r0, #0x8
+ blo _0202C74E
+ ldr r0, _0202C760 ; =0x021C59D8
+ ldr r2, [r4, #0x3c]
+ ldr r0, [r0, #0x4]
+ ldr r1, [r0, #0x8]
+ cmp r2, r1
+ bne _0202C74E
+ add r4, #0x43
+ ldrb r2, [r4, #0x0]
+ mov r1, #0x3
+ and r1, r2
+ cmp r1, #0x1
+ bne _0202C74E
+ mov r1, #0x13
+ lsl r1, r1, #0x8
+ ldr r2, [r0, r1]
+ cmp r2, #0x0
+ beq _0202C732
+ sub r1, #0xe0
+ add r0, r0, r1
+ blx r2
+_0202C732:
+ ldr r0, _0202C760 ; =0x021C59D8
+ ldr r1, [r0, #0x4]
+ ldr r0, _0202C76C ; =0x0000130E
+ ldrh r0, [r1, r0]
+ cmp r0, #0x0
+ beq _0202C74E
+ bl FUN_0202C794
+ cmp r0, #0x0
+ bne _0202C75C
+ mov r0, #0x9
+ bl FUN_0202C198
+ pop {r4, pc}
+_0202C74E:
+ bl FUN_0202C5D8
+ cmp r0, #0x0
+ bne _0202C75C
+ mov r0, #0x9
+ bl FUN_0202C198
+_0202C75C:
+ pop {r4, pc}
+ nop
+_0202C760: .word 0x021C59D8
+_0202C764: .word 0x00001310
+_0202C768: .word 0x00001320
+_0202C76C: .word 0x0000130E
+
+ thumb_func_start FUN_0202C770
+FUN_0202C770: ; 0x0202C770
+ push {r3, lr}
+ ldr r0, _0202C78C ; =0x021C59D8
+ ldr r1, [r0, #0x4]
+ ldr r0, _0202C790 ; =0x00001310
+ ldr r0, [r1, r0]
+ cmp r0, #0x2
+ beq _0202C782
+ mov r0, #0x0
+ pop {r3, pc}
+_0202C782:
+ mov r0, #0x3
+ bl FUN_0202C198
+ mov r0, #0x1
+ pop {r3, pc}
+ .balign 4
+_0202C78C: .word 0x021C59D8
+_0202C790: .word 0x00001310
+
+ thumb_func_start FUN_0202C794
+FUN_0202C794: ; 0x0202C794
+ push {r3, lr}
+ ldr r0, _0202C7AC ; =FUN_0202C7B0
+ blx WM_EndScan
+ cmp r0, #0x2
+ beq _0202C7A8
+ bl FUN_0202C1AC
+ mov r0, #0x0
+ pop {r3, pc}
+_0202C7A8:
+ mov r0, #0x1
+ pop {r3, pc}
+ .balign 4
+_0202C7AC: .word FUN_0202C7B0
+
+ thumb_func_start FUN_0202C7B0
+FUN_0202C7B0: ; 0x0202C7B0
+ push {r3, lr}
+ ldrh r0, [r0, #0x2]
+ cmp r0, #0x0
+ beq _0202C7BE
+ bl FUN_0202C1AC
+ pop {r3, pc}
+_0202C7BE:
+ mov r0, #0x1
+ bl FUN_0202C198
+ ldr r0, _0202C7E0 ; =0x021C59D8
+ ldr r1, [r0, #0x4]
+ ldr r0, _0202C7E4 ; =0x0000130E
+ ldrh r0, [r1, r0]
+ cmp r0, #0x0
+ beq _0202C7DE
+ bl FUN_0202C7E8
+ cmp r0, #0x0
+ bne _0202C7DE
+ mov r0, #0x9
+ bl FUN_0202C198
+_0202C7DE:
+ pop {r3, pc}
+ .balign 4
+_0202C7E0: .word 0x021C59D8
+_0202C7E4: .word 0x0000130E
+
+ thumb_func_start FUN_0202C7E8
+FUN_0202C7E8: ; 0x0202C7E8
+ push {lr}
+ sub sp, #0x24
+ ldr r0, _0202C844 ; =0x021C59D8
+ ldr r1, [r0, #0x4]
+ ldr r0, _0202C848 ; =0x00001310
+ ldr r0, [r1, r0]
+ sub r0, r0, #0x4
+ cmp r0, #0x2
+ bhi _0202C800
+ add sp, #0x24
+ mov r0, #0x1
+ pop {pc}
+_0202C800:
+ mov r0, #0x3
+ bl FUN_0202C198
+ add r1, sp, #0x4
+ ldr r0, _0202C84C ; =0x02105D54
+ add r1, #0x1
+ mov r2, #0x3
+ blx MI_CpuCopy8
+ bl FUN_02033534
+ add r1, sp, #0x4
+ strb r0, [r1, #0x0]
+ mov r0, #0x0
+ str r0, [sp, #0x0]
+ ldr r1, _0202C844 ; =0x021C59D8
+ ldr r0, _0202C850 ; =FUN_0202C858
+ ldr r2, [r1, #0x4]
+ ldr r1, _0202C854 ; =0x00001220
+ mov r3, #0x1
+ add r1, r2, r1
+ add r2, sp, #0x4
+ blx WM_StartConnectEx
+ cmp r0, #0x2
+ beq _0202C83E
+ bl FUN_0202C1AC
+ add sp, #0x24
+ mov r0, #0x0
+ pop {pc}
+_0202C83E:
+ mov r0, #0x1
+ add sp, #0x24
+ pop {pc}
+ .balign 4
+_0202C844: .word 0x021C59D8
+_0202C848: .word 0x00001310
+_0202C84C: .word 0x02105D54
+_0202C850: .word FUN_0202C858
+_0202C854: .word 0x00001220
+
+ thumb_func_start FUN_0202C858
+FUN_0202C858: ; 0x0202C858
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldrh r0, [r4, #0x2]
+ cmp r0, #0x0
+ beq _0202C894
+ bl FUN_0202C1AC
+ ldrh r0, [r4, #0x2]
+ cmp r0, #0xc
+ bne _0202C874
+ mov r0, #0x9
+ bl FUN_0202C198
+ pop {r4, pc}
+_0202C874:
+ cmp r0, #0xb
+ bne _0202C880
+ mov r0, #0x9
+ bl FUN_0202C198
+ pop {r4, pc}
+_0202C880:
+ cmp r0, #0x1
+ bne _0202C88C
+ mov r0, #0x8
+ bl FUN_0202C198
+ pop {r4, pc}
+_0202C88C:
+ mov r0, #0x9
+ bl FUN_0202C198
+ pop {r4, pc}
+_0202C894:
+ ldrh r0, [r4, #0x8]
+ cmp r0, #0x8
+ beq _0202C8FA
+ cmp r0, #0x7
+ bne _0202C8DA
+ ldr r0, _0202C8FC ; =0x021C59D8
+ ldr r1, [r0, #0x4]
+ ldr r0, _0202C900 ; =0x00001335
+ ldrb r0, [r1, r0]
+ cmp r0, #0x0
+ beq _0202C8B8
+ mov r0, #0x14
+ bl FUN_0202C1AC
+ mov r0, #0x9
+ bl FUN_0202C198
+ pop {r4, pc}
+_0202C8B8:
+ mov r0, #0x4
+ bl FUN_0202C198
+ bl FUN_0202C908
+ cmp r0, #0x0
+ bne _0202C8CE
+ mov r0, #0x3
+ bl FUN_0202C198
+ pop {r4, pc}
+_0202C8CE:
+ ldr r0, _0202C8FC ; =0x021C59D8
+ ldrh r2, [r4, #0xa]
+ ldr r1, [r0, #0x4]
+ ldr r0, _0202C904 ; =0x0000132C
+ strh r2, [r1, r0]
+ pop {r4, pc}
+_0202C8DA:
+ cmp r0, #0x6
+ beq _0202C8FA
+ cmp r0, #0x9
+ bne _0202C8F0
+ mov r0, #0x14
+ bl FUN_0202C1AC
+ mov r0, #0x9
+ bl FUN_0202C198
+ pop {r4, pc}
+_0202C8F0:
+ cmp r0, #0x1a
+ beq _0202C8FA
+ mov r0, #0x9
+ bl FUN_0202C198
+_0202C8FA:
+ pop {r4, pc}
+ .balign 4
+_0202C8FC: .word 0x021C59D8
+_0202C900: .word 0x00001335
+_0202C904: .word 0x0000132C
+
+ thumb_func_start FUN_0202C908
+FUN_0202C908: ; 0x0202C908
+ push {r4, lr}
+ sub sp, #0x8
+ ldr r0, _0202C948 ; =0x021C59D8
+ ldr r2, _0202C94C ; =0x00001304
+ ldr r4, [r0, #0x4]
+ ldr r3, _0202C950 ; =0x00001020
+ ldr r0, [r4, r2]
+ add r1, r4, r3
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #0x0]
+ mov r0, #0x1
+ str r0, [sp, #0x4]
+ add r2, r2, #0x4
+ ldr r2, [r4, r2]
+ sub r3, #0xe0
+ lsl r2, r2, #0x10
+ ldr r0, _0202C954 ; =FUN_0202C958
+ lsr r2, r2, #0x10
+ add r3, r4, r3
+ blx WM_StartMP
+ cmp r0, #0x2
+ beq _0202C942
+ bl FUN_0202C1AC
+ add sp, #0x8
+ mov r0, #0x0
+ pop {r4, pc}
+_0202C942:
+ mov r0, #0x1
+ add sp, #0x8
+ pop {r4, pc}
+ .balign 4
+_0202C948: .word 0x021C59D8
+_0202C94C: .word 0x00001304
+_0202C950: .word 0x00001020
+_0202C954: .word FUN_0202C958
+
+ thumb_func_start FUN_0202C958
+FUN_0202C958: ; 0x0202C958
+ push {r3, lr}
+ ldrh r1, [r0, #0x2]
+ cmp r1, #0x0
+ beq _0202C97A
+ cmp r1, #0xf
+ beq _0202C9B0
+ cmp r1, #0x9
+ beq _0202C9B0
+ cmp r1, #0xd
+ beq _0202C9B0
+ add r0, r1, #0x0
+ bl FUN_0202C1AC
+ mov r0, #0x9
+ bl FUN_0202C198
+ pop {r3, pc}
+_0202C97A:
+ ldrh r0, [r0, #0x4]
+ sub r0, #0xa
+ cmp r0, #0x3
+ bhi _0202C9B0
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0202C98E: ; jump table (using 16-bit offset)
+ .short _0202C996 - _0202C98E - 2; case 0
+ .short _0202C9B0 - _0202C98E - 2; case 1
+ .short _0202C9B0 - _0202C98E - 2; case 2
+ .short _0202C9B0 - _0202C98E - 2; case 3
+_0202C996:
+ ldr r0, _0202C9B4 ; =0x021C59D8
+ ldr r2, [r0, #0x4]
+ ldr r0, _0202C9B8 ; =0x00001314
+ ldr r1, [r2, r0]
+ cmp r1, #0x3
+ bne _0202C9AA
+ sub r0, r0, #0x4
+ ldr r0, [r2, r0]
+ cmp r0, #0x6
+ beq _0202C9B0
+_0202C9AA:
+ mov r0, #0x4
+ bl FUN_0202C198
+_0202C9B0:
+ pop {r3, pc}
+ nop
+_0202C9B4: .word 0x021C59D8
+_0202C9B8: .word 0x00001314
+
+ thumb_func_start FUN_0202C9BC
+FUN_0202C9BC: ; 0x0202C9BC
+ push {r3, lr}
+ mov r0, #0x3
+ bl FUN_0202C198
+ ldr r0, _0202C9DC ; =FUN_0202C9E0
+ blx WM_EndMP
+ cmp r0, #0x2
+ beq _0202C9D6
+ bl FUN_0202C1AC
+ mov r0, #0x0
+ pop {r3, pc}
+_0202C9D6:
+ mov r0, #0x1
+ pop {r3, pc}
+ nop
+_0202C9DC: .word FUN_0202C9E0
+
+ thumb_func_start FUN_0202C9E0
+FUN_0202C9E0: ; 0x0202C9E0
+ push {r3, lr}
+ ldrh r0, [r0, #0x2]
+ cmp r0, #0x0
+ beq _0202C9F2
+ bl FUN_0202C1AC
+ bl FUN_0202D100
+ pop {r3, pc}
+_0202C9F2:
+ bl FUN_0202CA04
+ cmp r0, #0x0
+ bne _0202CA00
+ mov r0, #0x9
+ bl FUN_0202C198
+_0202CA00:
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_0202CA04
+FUN_0202CA04: ; 0x0202CA04
+ push {r3, lr}
+ mov r0, #0x3
+ bl FUN_0202C198
+ ldr r0, _0202CA28 ; =FUN_0202CA2C
+ mov r1, #0x0
+ blx WM_Disconnect
+ cmp r0, #0x2
+ beq _0202CA24
+ bl FUN_0202C1AC
+ bl FUN_0202D0D8
+ mov r0, #0x0
+ pop {r3, pc}
+_0202CA24:
+ mov r0, #0x1
+ pop {r3, pc}
+ .balign 4
+_0202CA28: .word FUN_0202CA2C
+
+ thumb_func_start FUN_0202CA2C
+FUN_0202CA2C: ; 0x0202CA2C
+ push {r3, lr}
+ ldrh r0, [r0, #0x2]
+ cmp r0, #0x0
+ beq _0202CA3A
+ bl FUN_0202C1AC
+ pop {r3, pc}
+_0202CA3A:
+ mov r0, #0x1
+ bl FUN_0202C198
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_0202CA44
+FUN_0202CA44: ; 0x0202CA44
+ push {r3, lr}
+ mov r0, #0x3
+ bl FUN_0202C198
+ ldr r0, _0202CA64 ; =FUN_0202CA68
+ blx WM_Reset
+ cmp r0, #0x2
+ beq _0202CA5E
+ bl FUN_0202C1AC
+ mov r0, #0x0
+ pop {r3, pc}
+_0202CA5E:
+ mov r0, #0x1
+ pop {r3, pc}
+ nop
+_0202CA64: .word FUN_0202CA68
+
+ thumb_func_start FUN_0202CA68
+FUN_0202CA68: ; 0x0202CA68
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldrh r0, [r4, #0x2]
+ cmp r0, #0x0
+ beq _0202CA80
+ mov r0, #0x9
+ bl FUN_0202C198
+ ldrh r0, [r4, #0x2]
+ bl FUN_0202C1AC
+ pop {r4, pc}
+_0202CA80:
+ mov r0, #0x1
+ bl FUN_0202C198
+ pop {r4, pc}
+
+ thumb_func_start FUN_0202CA88
+FUN_0202CA88: ; 0x0202CA88
+ push {r4-r7, lr}
+ sub sp, #0xc
+ add r5, r0, #0x0
+ ldr r0, _0202CAD0 ; =0x021C59D8
+ add r6, r1, #0x0
+ add r4, r2, #0x0
+ ldr r1, [r0, #0x4]
+ mov r0, #0x3d
+ lsl r0, r0, #0x6
+ ldr r2, _0202CAD4 ; =0x00001304
+ add r0, r1, r0
+ ldr r1, [r1, r2]
+ add r7, r3, #0x0
+ blx DC_FlushRange
+ ldr r0, _0202CAD8 ; =0x0000FFFF
+ add r1, r7, #0x0
+ str r0, [sp, #0x0]
+ lsl r0, r4, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #0x4]
+ mov r0, #0x2
+ str r0, [sp, #0x8]
+ ldr r0, _0202CADC ; =FUN_0202CAE0
+ add r2, r5, #0x0
+ add r3, r6, #0x0
+ blx WM_SetMPDataToPortEx
+ cmp r0, #0x2
+ bne _0202CACA
+ add sp, #0xc
+ mov r0, #0x1
+ pop {r4-r7, pc}
+_0202CACA:
+ mov r0, #0x0
+ add sp, #0xc
+ pop {r4-r7, pc}
+ .balign 4
+_0202CAD0: .word 0x021C59D8
+_0202CAD4: .word 0x00001304
+_0202CAD8: .word 0x0000FFFF
+_0202CADC: .word FUN_0202CAE0
+
+ thumb_func_start FUN_0202CAE0
+FUN_0202CAE0: ; 0x0202CAE0
+ push {r3, lr}
+ ldrh r1, [r0, #0x2]
+ cmp r1, #0x0
+ beq _0202CAF4
+ cmp r1, #0xf
+ beq _0202CAF4
+ add r0, r1, #0x0
+ bl FUN_0202C1AC
+ pop {r3, pc}
+_0202CAF4:
+ ldr r2, [r0, #0x20]
+ cmp r2, #0x0
+ beq _0202CB06
+ cmp r1, #0x0
+ bne _0202CB02
+ mov r0, #0x1
+ b _0202CB04
+_0202CB02:
+ mov r0, #0x0
+_0202CB04:
+ blx r2
+_0202CB06:
+ pop {r3, pc}
+
+ thumb_func_start FUN_0202CB08
+FUN_0202CB08: ; 0x0202CB08
+ push {r3, lr}
+ add r2, r0, #0x0
+ ldrh r0, [r2, #0x2]
+ cmp r0, #0x0
+ beq _0202CB18
+ bl FUN_0202C1AC
+ pop {r3, pc}
+_0202CB18:
+ ldr r0, _0202CB48 ; =0x021C59D8
+ ldr r1, [r0, #0x4]
+ ldr r0, _0202CB4C ; =0x00001318
+ ldr r3, [r1, r0]
+ cmp r3, #0x0
+ beq _0202CB44
+ ldrh r0, [r2, #0x4]
+ cmp r0, #0x19
+ beq _0202CB44
+ cmp r0, #0x15
+ bne _0202CB38
+ ldrh r0, [r2, #0x12]
+ ldr r1, [r2, #0xc]
+ ldrh r2, [r2, #0x10]
+ blx r3
+ pop {r3, pc}
+_0202CB38:
+ cmp r0, #0x9
+ bne _0202CB44
+ ldrh r0, [r2, #0x12]
+ mov r1, #0x0
+ add r2, r1, #0x0
+ blx r3
+_0202CB44:
+ pop {r3, pc}
+ nop
+_0202CB48: .word 0x021C59D8
+_0202CB4C: .word 0x00001318
+
+ thumb_func_start FUN_0202CB50
+FUN_0202CB50: ; 0x0202CB50
+ push {r3, lr}
+ ldrh r0, [r0, #0x2]
+ cmp r0, #0x0
+ beq _0202CB60
+ mov r0, #0xa
+ bl FUN_0202C198
+ pop {r3, pc}
+_0202CB60:
+ mov r0, #0x0
+ add r1, r0, #0x0
+ blx FUN_02090CC8
+ mov r0, #0x0
+ bl FUN_0202C198
+ pop {r3, pc}
+
+ thumb_func_start FUN_0202CB70
+FUN_0202CB70: ; 0x0202CB70
+ ldr r1, _0202CB78 ; =0x021C59D8
+ ldr r1, [r1, #0x4]
+ str r0, [r1, #0x8]
+ bx lr
+ .balign 4
+_0202CB78: .word 0x021C59D8
+
+ thumb_func_start FUN_0202CB7C
+FUN_0202CB7C: ; 0x0202CB7C
+ ldr r2, _0202CB88 ; =0x021C59D8
+ ldr r3, [r2, #0x4]
+ str r0, [r3, #0x0]
+ ldr r0, [r2, #0x4]
+ strh r1, [r0, #0x4]
+ bx lr
+ .balign 4
+_0202CB88: .word 0x021C59D8
+
+ thumb_func_start FUN_0202CB8C
+FUN_0202CB8C: ; 0x0202CB8C
+ ldr r0, _0202CB98 ; =0x021C59D8
+ ldr r1, [r0, #0x4]
+ ldr r0, _0202CB9C ; =0x0000132E
+ ldrh r0, [r1, r0]
+ bx lr
+ nop
+_0202CB98: .word 0x021C59D8
+_0202CB9C: .word 0x0000132E
+
+ thumb_func_start FUN_0202CBA0
+FUN_0202CBA0: ; 0x0202CBA0
+ push {r3-r4}
+ ldr r0, _0202CBCC ; =0x021C59D8
+ mov r2, #0x0
+ ldr r1, [r0, #0x4]
+ ldr r0, _0202CBD0 ; =0x0000132E
+ add r3, r2, #0x0
+ ldrh r4, [r1, r0]
+ mov r1, #0x1
+_0202CBB0:
+ add r0, r4, #0x0
+ tst r0, r1
+ beq _0202CBB8
+ add r2, r2, #0x1
+_0202CBB8:
+ lsl r0, r4, #0xf
+ add r3, r3, #0x1
+ lsr r4, r0, #0x10
+ cmp r3, #0x10
+ blt _0202CBB0
+ lsl r0, r2, #0x10
+ lsr r0, r0, #0x10
+ pop {r3-r4}
+ bx lr
+ nop
+_0202CBCC: .word 0x021C59D8
+_0202CBD0: .word 0x0000132E
+
+ thumb_func_start FUN_0202CBD4
+FUN_0202CBD4: ; 0x0202CBD4
+ ldr r0, _0202CBE0 ; =0x021C59D8
+ ldr r1, [r0, #0x4]
+ ldr r0, _0202CBE4 ; =0x00001310
+ ldr r0, [r1, r0]
+ bx lr
+ nop
+_0202CBE0: .word 0x021C59D8
+_0202CBE4: .word 0x00001310
+
+ thumb_func_start FUN_0202CBE8
+FUN_0202CBE8: ; 0x0202CBE8
+ ldr r0, _0202CBF4 ; =0x021C59D8
+ ldr r1, [r0, #0x4]
+ ldr r0, _0202CBF8 ; =0x00001330
+ ldr r0, [r1, r0]
+ bx lr
+ nop
+_0202CBF4: .word 0x021C59D8
+_0202CBF8: .word 0x00001330
+
+ thumb_func_start FUN_0202CBFC
+FUN_0202CBFC: ; 0x0202CBFC
+ push {r3-r5, lr}
+ sub sp, #0x8
+ add r0, sp, #0x0
+ blx OS_GetMacAddress
+ ldr r0, _0202CC84 ; =0x027FFC3C
+ ldr r3, [r0, #0x0]
+ add r0, sp, #0x0
+ ldrh r2, [r0, #0x4]
+ ldrh r1, [r0, #0x2]
+ ldrh r0, [r0, #0x0]
+ add r0, r0, r3
+ add r0, r1, r0
+ add r1, r2, r0
+ ldr r3, _0202CC88 ; =0x021C59D8
+ ldr r2, _0202CC8C ; =0x00001338
+ ldr r0, [r3, #0x4]
+ str r1, [r0, r2]
+ ldr r0, [r3, #0x4]
+ ldr r1, _0202CC90 ; =0x00010DCD
+ ldr r4, [r0, r2]
+ add r5, r4, #0x0
+ mul r5, r1
+ ldr r1, _0202CC94 ; =0x00003039
+ mov r4, #0x0
+ add r1, r5, r1
+ str r1, [r0, r2]
+ ldr r1, [r3, #0x4]
+ add r0, r2, #0x4
+ strh r4, [r1, r0]
+ ldr r1, [r3, #0x4]
+ mov r4, #0x65
+ add r0, r2, #0x6
+ strh r4, [r1, r0]
+ mov r0, #0x3
+ bl FUN_0202C198
+ mov r0, #0x1
+ bl FUN_0202CC98
+ cmp r0, #0x18
+ bne _0202CC68
+ mov r0, #0x18
+ bl FUN_0202C1AC
+ mov r0, #0x9
+ bl FUN_0202C198
+ mov r0, #0x1
+ bl FUN_020336A0
+ add sp, #0x8
+ mov r0, #0x0
+ pop {r3-r5, pc}
+_0202CC68:
+ cmp r0, #0x2
+ beq _0202CC7C
+ bl FUN_0202C1AC
+ mov r0, #0x9
+ bl FUN_0202C198
+ add sp, #0x8
+ mov r0, #0x0
+ pop {r3-r5, pc}
+_0202CC7C:
+ mov r0, #0x1
+ add sp, #0x8
+ pop {r3-r5, pc}
+ nop
+_0202CC84: .word 0x027FFC3C
+_0202CC88: .word 0x021C59D8
+_0202CC8C: .word 0x00001338
+_0202CC90: .word 0x00010DCD
+_0202CC94: .word 0x00003039
+
+ thumb_func_start FUN_0202CC98
+FUN_0202CC98: ; 0x0202CC98
+ push {r4, lr}
+ add r4, r0, #0x0
+ blx WM_GetAllowedChannel
+ mov r1, #0x2
+ lsl r1, r1, #0xe
+ cmp r0, r1
+ bne _0202CCBE
+ mov r0, #0x3
+ bl FUN_0202C1AC
+ mov r0, #0x9
+ bl FUN_0202C198
+ mov r0, #0x1
+ bl FUN_020336A0
+ mov r0, #0x3
+ pop {r4, pc}
+_0202CCBE:
+ cmp r0, #0x0
+ bne _0202CCD8
+ mov r0, #0x16
+ bl FUN_0202C1AC
+ mov r0, #0x9
+ bl FUN_0202C198
+ mov r0, #0x1
+ bl FUN_020336A0
+ mov r0, #0x18
+ pop {r4, pc}
+_0202CCD8:
+ mov r2, #0x1
+ sub r1, r4, #0x1
+ lsl r2, r1
+ add r1, r2, #0x0
+ tst r1, r0
+ bne _0202CD00
+ mov r2, #0x1
+_0202CCE6:
+ add r1, r4, #0x1
+ lsl r1, r1, #0x10
+ lsr r4, r1, #0x10
+ cmp r4, #0x10
+ bls _0202CCF4
+ mov r0, #0x18
+ pop {r4, pc}
+_0202CCF4:
+ sub r1, r4, #0x1
+ add r3, r2, #0x0
+ lsl r3, r1
+ add r1, r3, #0x0
+ tst r1, r0
+ beq _0202CCE6
+_0202CD00:
+ ldr r0, _0202CD10 ; =FUN_0202CD14
+ add r1, r4, #0x0
+ bl FUN_0202CD90
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ pop {r4, pc}
+ nop
+_0202CD10: .word FUN_0202CD14
+
+ thumb_func_start FUN_0202CD14
+FUN_0202CD14: ; 0x0202CD14
+ push {r3-r5, lr}
+ ldrh r1, [r0, #0x2]
+ cmp r1, #0x0
+ beq _0202CD30
+ add r0, r1, #0x0
+ bl FUN_0202C1AC
+ mov r0, #0x9
+ bl FUN_0202C198
+ mov r0, #0x1
+ bl FUN_020336A0
+ pop {r3-r5, pc}
+_0202CD30:
+ ldr r2, _0202CD88 ; =0x021C59D8
+ ldrh r1, [r0, #0x8]
+ ldrh r5, [r0, #0xa]
+ ldr r0, [r2, #0x4]
+ ldr r3, _0202CD8C ; =0x0000133E
+ ldrh r4, [r0, r3]
+ cmp r4, r5
+ bls _0202CD50
+ strh r5, [r0, r3]
+ mov r4, #0x1
+ sub r0, r1, #0x1
+ lsl r4, r0
+ ldr r2, [r2, #0x4]
+ add r0, r3, #0x2
+ strh r4, [r2, r0]
+ b _0202CD64
+_0202CD50:
+ cmp r4, r5
+ bne _0202CD64
+ add r2, r3, #0x2
+ ldrh r5, [r0, r2]
+ mov r4, #0x1
+ sub r2, r1, #0x1
+ lsl r4, r2
+ orr r4, r5
+ add r2, r3, #0x2
+ strh r4, [r0, r2]
+_0202CD64:
+ add r0, r1, #0x1
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ bl FUN_0202CC98
+ cmp r0, #0x18
+ bne _0202CD7A
+ mov r0, #0x7
+ bl FUN_0202C198
+ pop {r3-r5, pc}
+_0202CD7A:
+ cmp r0, #0x2
+ beq _0202CD84
+ mov r0, #0x9
+ bl FUN_0202C198
+_0202CD84:
+ pop {r3-r5, pc}
+ nop
+_0202CD88: .word 0x021C59D8
+_0202CD8C: .word 0x0000133E
+
+ thumb_func_start FUN_0202CD90
+FUN_0202CD90: ; 0x0202CD90
+ push {r3, lr}
+ add r3, r1, #0x0
+ mov r1, #0x1e
+ str r1, [sp, #0x0]
+ mov r1, #0x3
+ mov r2, #0x11
+ blx WM_MeasureChannel
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_0202CDA4
+FUN_0202CDA4: ; 0x0202CDA4
+ push {r3, lr}
+ mov r0, #0x1
+ bl FUN_0202C198
+ ldr r0, _0202CDC8 ; =0x021C59D8
+ ldr r1, [r0, #0x4]
+ mov r0, #0x4d
+ lsl r0, r0, #0x6
+ ldrh r0, [r1, r0]
+ bl FUN_0202CDD0
+ ldr r2, _0202CDC8 ; =0x021C59D8
+ ldr r1, _0202CDCC ; =0x0000133C
+ ldr r3, [r2, #0x4]
+ strh r0, [r3, r1]
+ ldr r0, [r2, #0x4]
+ ldrh r0, [r0, r1]
+ pop {r3, pc}
+ .balign 4
+_0202CDC8: .word 0x021C59D8
+_0202CDCC: .word 0x0000133C
+
+ thumb_func_start FUN_0202CDD0
+FUN_0202CDD0: ; 0x0202CDD0
+ push {r4-r7}
+ add r4, r0, #0x0
+ mov r0, #0x0
+ add r3, r0, #0x0
+ add r2, r0, #0x0
+ mov r1, #0x1
+_0202CDDC:
+ add r5, r1, #0x0
+ lsl r5, r2
+ tst r5, r4
+ beq _0202CDF0
+ add r0, r2, #0x1
+ add r3, r3, #0x1
+ lsl r0, r0, #0x10
+ lsl r3, r3, #0x10
+ asr r0, r0, #0x10
+ lsr r3, r3, #0x10
+_0202CDF0:
+ add r2, r2, #0x1
+ lsl r2, r2, #0x10
+ asr r2, r2, #0x10
+ cmp r2, #0x10
+ blt _0202CDDC
+ cmp r3, #0x1
+ bls _0202CE4E
+ ldr r5, _0202CE54 ; =0x021C59D8
+ ldr r2, _0202CE58 ; =0x00001338
+ ldr r0, [r5, #0x4]
+ ldr r1, _0202CE5C ; =0x00010DCD
+ ldr r6, [r0, r2]
+ add r7, r6, #0x0
+ mul r7, r1
+ ldr r1, _0202CE60 ; =0x00003039
+ add r1, r7, r1
+ str r1, [r0, r2]
+ ldr r0, [r5, #0x4]
+ mov r1, #0x1
+ ldr r0, [r0, r2]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ mul r0, r3
+ lsl r0, r0, #0x8
+ lsr r2, r0, #0x10
+ mov r3, #0x0
+_0202CE24:
+ add r0, r4, #0x0
+ tst r0, r1
+ beq _0202CE3E
+ cmp r2, #0x0
+ bne _0202CE38
+ add r0, r3, #0x1
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ pop {r4-r7}
+ bx lr
+_0202CE38:
+ sub r0, r2, #0x1
+ lsl r0, r0, #0x10
+ lsr r2, r0, #0x10
+_0202CE3E:
+ lsl r0, r4, #0xf
+ lsr r4, r0, #0x10
+ add r0, r3, #0x1
+ lsl r0, r0, #0x10
+ asr r3, r0, #0x10
+ cmp r3, #0x10
+ blt _0202CE24
+ mov r0, #0x0
+_0202CE4E:
+ pop {r4-r7}
+ bx lr
+ nop
+_0202CE54: .word 0x021C59D8
+_0202CE58: .word 0x00001338
+_0202CE5C: .word 0x00010DCD
+_0202CE60: .word 0x00003039
+
+ thumb_func_start FUN_0202CE64
+FUN_0202CE64: ; 0x0202CE64
+ push {r3-r5, lr}
+ lsl r1, r0, #0x1b
+ lsr r2, r1, #0x1b
+ beq _0202CE72
+ mov r1, #0x20
+ sub r1, r1, r2
+ add r0, r0, r1
+_0202CE72:
+ ldr r2, _0202CEE4 ; =0x021C59D8
+ ldr r1, _0202CEE8 ; =0x00001308
+ str r0, [r2, #0x4]
+ mov r3, #0x0
+ str r3, [r0, r1]
+ ldr r4, [r2, #0x4]
+ sub r0, r1, #0x4
+ str r3, [r4, r0]
+ add r0, r1, #0x0
+ ldr r4, [r2, #0x4]
+ add r0, #0x10
+ str r3, [r4, r0]
+ add r0, r1, #0x0
+ ldr r4, [r2, #0x4]
+ add r0, #0x24
+ strh r3, [r4, r0]
+ add r0, r1, #0x0
+ ldr r4, [r2, #0x4]
+ mov r5, #0x1
+ add r0, #0x26
+ strh r5, [r4, r0]
+ add r0, r1, #0x0
+ ldr r4, [r2, #0x4]
+ add r0, #0x28
+ str r3, [r4, r0]
+ add r0, r1, #0x0
+ ldr r4, [r2, #0x4]
+ add r0, #0x8
+ str r3, [r4, r0]
+ ldr r0, [r2, #0x4]
+ mov r5, #0x8
+ str r3, [r0, #0x0]
+ ldr r0, [r2, #0x4]
+ strh r3, [r0, #0x4]
+ add r0, r1, #0x0
+ ldr r4, [r2, #0x4]
+ add r0, #0x14
+ str r3, [r4, r0]
+ add r0, r1, #0x0
+ ldr r4, [r2, #0x4]
+ add r0, #0x2c
+ strb r5, [r4, r0]
+ add r0, r1, #0x0
+ ldr r4, [r2, #0x4]
+ add r0, #0x2d
+ strb r3, [r4, r0]
+ ldr r0, [r2, #0x4]
+ add r1, #0x3a
+ strb r3, [r0, r1]
+ bl FUN_0202CF0C
+ cmp r0, #0x0
+ bne _0202CEE0
+ mov r0, #0x0
+ pop {r3-r5, pc}
+_0202CEE0:
+ mov r0, #0x1
+ pop {r3-r5, pc}
+ .balign 4
+_0202CEE4: .word 0x021C59D8
+_0202CEE8: .word 0x00001308
+
+ thumb_func_start FUN_0202CEEC
+FUN_0202CEEC: ; 0x0202CEEC
+ mov r0, #0x4e
+ lsl r0, r0, #0x6
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_0202CEF4
+FUN_0202CEF4: ; 0x0202CEF4
+ push {r3, lr}
+ ldrh r0, [r0, #0x2]
+ cmp r0, #0x8
+ bne _0202CF08
+ mov r0, #0x9
+ bl FUN_0202C198
+ mov r0, #0x19
+ bl FUN_0202C1AC
+_0202CF08:
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_0202CF0C
+FUN_0202CF0C: ; 0x0202CF0C
+ push {r3, lr}
+ mov r0, #0x3
+ bl FUN_0202C198
+ ldr r0, _0202CF38 ; =0x021C59D8
+ ldr r1, _0202CF3C ; =FUN_0202CF40
+ ldr r0, [r0, #0x4]
+ mov r2, #0x2
+ add r0, #0x40
+ blx WM_Initialize
+ cmp r0, #0x2
+ beq _0202CF34
+ bl FUN_0202C1AC
+ mov r0, #0xa
+ bl FUN_0202C198
+ mov r0, #0x0
+ pop {r3, pc}
+_0202CF34:
+ mov r0, #0x1
+ pop {r3, pc}
+ .balign 4
+_0202CF38: .word 0x021C59D8
+_0202CF3C: .word FUN_0202CF40
+
+ thumb_func_start FUN_0202CF40
+FUN_0202CF40: ; 0x0202CF40
+ push {r3, lr}
+ ldrh r0, [r0, #0x2]
+ cmp r0, #0x0
+ beq _0202CF5A
+ bl FUN_0202C1AC
+ mov r0, #0xa
+ bl FUN_0202C198
+ mov r0, #0x1
+ bl FUN_020336A0
+ pop {r3, pc}
+_0202CF5A:
+ ldr r0, _0202CF80 ; =FUN_0202CEF4
+ blx WM_SetIndCallback
+ cmp r0, #0x0
+ beq _0202CF76
+ bl FUN_0202C1AC
+ mov r0, #0xa
+ bl FUN_0202C198
+ mov r0, #0x1
+ bl FUN_020336A0
+ pop {r3, pc}
+_0202CF76:
+ mov r0, #0x1
+ bl FUN_0202C198
+ pop {r3, pc}
+ nop
+_0202CF80: .word FUN_0202CEF4
+
+ thumb_func_start FUN_0202CF84
+FUN_0202CF84: ; 0x0202CF84
+ push {r3-r7, lr}
+ add r6, r1, #0x0
+ ldr r1, _0202D02C ; =0x021C59D8
+ add r5, r0, #0x0
+ add r7, r2, #0x0
+ mov r0, #0x7
+ ldr r2, [r1, #0x4]
+ ldr r1, _0202D030 ; =0x00001308
+ lsl r0, r0, #0x6
+ str r0, [r2, r1]
+ ldr r0, _0202D02C ; =0x021C59D8
+ add r4, r3, #0x0
+ ldr r2, [r0, #0x4]
+ sub r0, r1, #0x4
+ mov r3, #0xe0
+ str r3, [r2, r0]
+ ldr r0, _0202D02C ; =0x021C59D8
+ add r1, #0xc
+ ldr r0, [r0, #0x4]
+ str r5, [r0, r1]
+ mov r0, #0x3
+ bl FUN_0202C198
+ ldr r1, _0202D02C ; =0x021C59D8
+ cmp r5, #0x0
+ ldr r0, [r1, #0x4]
+ strh r6, [r0, #0xc]
+ ldr r0, [r1, #0x4]
+ strh r7, [r0, #0x32]
+ add r0, sp, #0x8
+ ldrh r2, [r0, #0x10]
+ ldr r0, [r1, #0x4]
+ strh r2, [r0, #0x18]
+ beq _0202CFCE
+ cmp r5, #0x4
+ beq _0202CFE8
+ b _0202CFF4
+_0202CFCE:
+ ldr r0, [r1, #0x4]
+ mov r2, #0xc0
+ strh r2, [r0, #0x34]
+ cmp r4, #0x5
+ blo _0202CFE0
+ ldr r0, [r1, #0x4]
+ mov r2, #0xc
+ strh r2, [r0, #0x36]
+ b _0202CFF4
+_0202CFE0:
+ ldr r0, [r1, #0x4]
+ mov r2, #0x26
+ strh r2, [r0, #0x36]
+ b _0202CFF4
+_0202CFE8:
+ ldr r0, [r1, #0x4]
+ mov r2, #0x64
+ strh r2, [r0, #0x34]
+ ldr r0, [r1, #0x4]
+ mov r2, #0xc
+ strh r2, [r0, #0x36]
+_0202CFF4:
+ ldr r1, _0202D02C ; =0x021C59D8
+ ldr r0, [r1, #0x4]
+ strh r4, [r0, #0x10]
+ ldr r2, [r1, #0x4]
+ mov r0, #0x0
+ strh r0, [r2, #0x16]
+ ldr r2, [r1, #0x4]
+ cmp r5, #0x2
+ strh r0, [r2, #0x12]
+ ldr r2, [sp, #0x1c]
+ ldr r1, [r1, #0x4]
+ strh r2, [r1, #0xe]
+ bne _0202D010
+ mov r0, #0x1
+_0202D010:
+ ldr r1, _0202D02C ; =0x021C59D8
+ cmp r5, #0x0
+ ldr r1, [r1, #0x4]
+ strh r0, [r1, #0x14]
+ beq _0202D022
+ cmp r5, #0x2
+ beq _0202D022
+ cmp r5, #0x4
+ bne _0202D028
+_0202D022:
+ bl FUN_0202C1C8
+ pop {r3-r7, pc}
+_0202D028:
+ mov r0, #0x0
+ pop {r3-r7, pc}
+ .balign 4
+_0202D02C: .word 0x021C59D8
+_0202D030: .word 0x00001308
+
+ thumb_func_start FUN_0202D034
+FUN_0202D034: ; 0x0202D034
+ push {r4-r6, lr}
+ ldr r2, _0202D094 ; =0x021C59D8
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ mov r3, #0x2
+ ldr r0, [r2, #0x4]
+ ldr r1, _0202D098 ; =0x00001308
+ lsl r3, r3, #0x8
+ str r3, [r0, r1]
+ sub r0, r1, #0x4
+ ldr r3, [r2, #0x4]
+ mov r6, #0x40
+ str r6, [r3, r0]
+ ldr r0, [r2, #0x4]
+ add r1, #0xc
+ str r5, [r0, r1]
+ mov r0, #0x3
+ bl FUN_0202C198
+ cmp r5, #0x1
+ beq _0202D066
+ cmp r5, #0x3
+ beq _0202D066
+ cmp r5, #0x5
+ bne _0202D08E
+_0202D066:
+ ldr r1, _0202D094 ; =0x021C59D8
+ add r0, r4, #0x0
+ ldr r2, [r1, #0x4]
+ ldr r1, _0202D09C ; =0x00001220
+ add r1, r2, r1
+ mov r2, #0xc0
+ blx MI_CpuCopy8
+ ldr r0, _0202D094 ; =0x021C59D8
+ ldr r1, [r0, #0x4]
+ ldr r0, _0202D09C ; =0x00001220
+ add r0, r1, r0
+ mov r1, #0xc0
+ blx DC_FlushRange
+ blx DC_WaitWriteBufferEmpty
+ bl FUN_0202C7E8
+ pop {r4-r6, pc}
+_0202D08E:
+ mov r0, #0x0
+ pop {r4-r6, pc}
+ nop
+_0202D094: .word 0x021C59D8
+_0202D098: .word 0x00001308
+_0202D09C: .word 0x00001220
+
+ thumb_func_start FUN_0202D0A0
+FUN_0202D0A0: ; 0x0202D0A0
+ push {r3, lr}
+ ldr r2, _0202D0C4 ; =0x021C59D8
+ ldr r3, [r2, #0x4]
+ ldr r2, _0202D0C8 ; =0x00001318
+ str r0, [r3, r2]
+ lsl r0, r1, #0x10
+ ldr r1, _0202D0CC ; =FUN_0202CB08
+ lsr r0, r0, #0x10
+ mov r2, #0x0
+ blx WM_SetPortCallback
+ cmp r0, #0x0
+ beq _0202D0C2
+ mov r0, #0x9
+ bl FUN_0202C198
+_0202D0C0:
+ b _0202D0C0
+_0202D0C2:
+ pop {r3, pc}
+ .balign 4
+_0202D0C4: .word 0x021C59D8
+_0202D0C8: .word 0x00001318
+_0202D0CC: .word FUN_0202CB08
+
+ thumb_func_start FUN_0202D0D0
+FUN_0202D0D0: ; 0x0202D0D0
+ push {r3, lr}
+ bl FUN_0202CA88
+ pop {r3, pc}
+
+ thumb_func_start FUN_0202D0D8
+FUN_0202D0D8: ; 0x0202D0D8
+ push {r3, lr}
+ ldr r0, _0202D0F8 ; =0x021C59D8
+ ldr r1, [r0, #0x4]
+ ldr r0, _0202D0FC ; =0x00001310
+ ldr r0, [r1, r0]
+ cmp r0, #0x2
+ bne _0202D0E8
+_0202D0E6:
+ b _0202D0E6
+_0202D0E8:
+ bl FUN_0202CA44
+ cmp r0, #0x0
+ bne _0202D0F6
+ mov r0, #0xa
+ bl FUN_0202C198
+_0202D0F6:
+ pop {r3, pc}
+ .balign 4
+_0202D0F8: .word 0x021C59D8
+_0202D0FC: .word 0x00001310
+
+ thumb_func_start FUN_0202D100
+FUN_0202D100: ; 0x0202D100
+ push {r3, lr}
+ ldr r0, _0202D16C ; =0x021C59D8
+ ldr r1, [r0, #0x4]
+ ldr r0, _0202D170 ; =0x00001310
+ ldr r0, [r1, r0]
+ cmp r0, #0x1
+ beq _0202D16A
+ cmp r0, #0x6
+ beq _0202D126
+ cmp r0, #0x5
+ beq _0202D126
+ cmp r0, #0x4
+ beq _0202D126
+ mov r0, #0x3
+ bl FUN_0202C198
+ bl FUN_0202D0D8
+ pop {r3, pc}
+_0202D126:
+ mov r0, #0x3
+ bl FUN_0202C198
+ ldr r0, _0202D16C ; =0x021C59D8
+ ldr r1, [r0, #0x4]
+ ldr r0, _0202D174 ; =0x00001314
+ ldr r0, [r1, r0]
+ cmp r0, #0x5
+ bhi _0202D16A
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0202D144: ; jump table (using 16-bit offset)
+ .short _0202D15E - _0202D144 - 2; case 0
+ .short _0202D150 - _0202D144 - 2; case 1
+ .short _0202D16A - _0202D144 - 2; case 2
+ .short _0202D16A - _0202D144 - 2; case 3
+ .short _0202D15E - _0202D144 - 2; case 4
+ .short _0202D150 - _0202D144 - 2; case 5
+_0202D150:
+ bl FUN_0202C9BC
+ cmp r0, #0x0
+ bne _0202D16A
+ bl FUN_0202D0D8
+ pop {r3, pc}
+_0202D15E:
+ bl FUN_0202C460
+ cmp r0, #0x0
+ bne _0202D16A
+ bl FUN_0202D0D8
+_0202D16A:
+ pop {r3, pc}
+ .balign 4
+_0202D16C: .word 0x021C59D8
+_0202D170: .word 0x00001310
+_0202D174: .word 0x00001314
+
+ thumb_func_start FUN_0202D178
+FUN_0202D178: ; 0x0202D178
+ push {r3, lr}
+ mov r0, #0x3
+ bl FUN_0202C198
+ ldr r0, _0202D198 ; =FUN_0202CB50
+ blx WM_End
+ cmp r0, #0x2
+ beq _0202D194
+ mov r0, #0x9
+ bl FUN_0202C198
+ mov r0, #0x0
+ pop {r3, pc}
+_0202D194:
+ mov r0, #0x1
+ pop {r3, pc}
+ .balign 4
+_0202D198: .word FUN_0202CB50
+
+ thumb_func_start FUN_0202D19C
+FUN_0202D19C: ; 0x0202D19C
+ ldr r0, _0202D1A8 ; =0x021C59D8
+ ldr r1, [r0, #0x4]
+ ldr r0, _0202D1AC ; =0x0000132C
+ ldrh r0, [r1, r0]
+ bx lr
+ nop
+_0202D1A8: .word 0x021C59D8
+_0202D1AC: .word 0x0000132C
+
+ thumb_func_start FUN_0202D1B0
+FUN_0202D1B0: ; 0x0202D1B0
+ ldr r1, _0202D1C0 ; =0x021C59D8
+ ldr r2, [r1, #0x4]
+ cmp r2, #0x0
+ beq _0202D1BC
+ ldr r1, _0202D1C4 ; =0x00001334
+ strb r0, [r2, r1]
+_0202D1BC:
+ bx lr
+ nop
+_0202D1C0: .word 0x021C59D8
+_0202D1C4: .word 0x00001334
+
+ thumb_func_start FUN_0202D1C8
+FUN_0202D1C8: ; 0x0202D1C8
+ ldr r0, _0202D1DC ; =0x021C59D8
+ ldr r1, [r0, #0x4]
+ ldr r0, _0202D1E0 ; =0x00001310
+ ldr r0, [r1, r0]
+ cmp r0, #0x1
+ bne _0202D1D8
+ mov r0, #0x1
+ bx lr
+_0202D1D8:
+ mov r0, #0x0
+ bx lr
+ .balign 4
+_0202D1DC: .word 0x021C59D8
+_0202D1E0: .word 0x00001310
+
+ thumb_func_start FUN_0202D1E4
+FUN_0202D1E4: ; 0x0202D1E4
+ ldr r0, _0202D1F8 ; =0x021C59D8
+ ldr r1, [r0, #0x4]
+ ldr r0, _0202D1FC ; =0x00001310
+ ldr r0, [r1, r0]
+ cmp r0, #0x3
+ bne _0202D1F4
+ mov r0, #0x1
+ bx lr
+_0202D1F4:
+ mov r0, #0x0
+ bx lr
+ .balign 4
+_0202D1F8: .word 0x021C59D8
+_0202D1FC: .word 0x00001310
+
+ thumb_func_start FUN_0202D200
+FUN_0202D200: ; 0x0202D200
+ ldr r0, _0202D214 ; =0x021C59D8
+ ldr r1, [r0, #0x4]
+ ldr r0, _0202D218 ; =0x00001310
+ ldr r0, [r1, r0]
+ cmp r0, #0x9
+ bne _0202D210
+ mov r0, #0x1
+ bx lr
+_0202D210:
+ mov r0, #0x0
+ bx lr
+ .balign 4
+_0202D214: .word 0x021C59D8
+_0202D218: .word 0x00001310
+
+ thumb_func_start FUN_0202D21C
+FUN_0202D21C: ; 0x0202D21C
+ ldr r0, _0202D238 ; =0x021C59D8
+ ldr r1, [r0, #0x4]
+ cmp r1, #0x0
+ beq _0202D234
+ ldr r0, _0202D23C ; =0x00001310
+ ldr r0, [r1, r0]
+ cmp r0, #0x2
+ bne _0202D230
+ mov r0, #0x1
+ bx lr
+_0202D230:
+ mov r0, #0x0
+ bx lr
+_0202D234:
+ mov r0, #0x0
+ bx lr
+ .balign 4
+_0202D238: .word 0x021C59D8
+_0202D23C: .word 0x00001310
+
+ thumb_func_start FUN_0202D240
+FUN_0202D240: ; 0x0202D240
+ push {r4-r6, lr}
+ sub sp, #0x8
+ add r6, r0, #0x0
+ ldr r0, _0202D274 ; =0x021C59D8
+ add r5, r1, #0x0
+ ldr r1, [r0, #0x4]
+ ldr r0, _0202D278 ; =0x00001310
+ add r4, r2, #0x0
+ ldr r0, [r1, r0]
+ cmp r0, #0x4
+ bne _0202D26E
+ lsl r0, r3, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #0x0]
+ mov r0, #0x1
+ lsl r2, r5, #0x10
+ str r0, [sp, #0x4]
+ mov r0, #0x0
+ add r1, r6, #0x0
+ lsr r2, r2, #0x10
+ add r3, r4, #0x0
+ blx WM_SetGameInfo
+_0202D26E:
+ add sp, #0x8
+ pop {r4-r6, pc}
+ nop
+_0202D274: .word 0x021C59D8
+_0202D278: .word 0x00001310
+
+ thumb_func_start FUN_0202D27C
+FUN_0202D27C: ; 0x0202D27C
+ ldrh r0, [r0, #0x2]
+ cmp r0, #0x0
+ bne _0202D28C
+ ldr r0, _0202D290 ; =0x021C59D8
+ mov r2, #0x1
+ ldr r1, [r0, #0x4]
+ ldr r0, _0202D294 ; =0x00001344
+ strb r2, [r1, r0]
+_0202D28C:
+ bx lr
+ nop
+_0202D290: .word 0x021C59D8
+_0202D294: .word 0x00001344
+
+ thumb_func_start FUN_0202D298
+FUN_0202D298: ; 0x0202D298
+ push {r4, lr}
+ ldr r2, _0202D2C4 ; =0x021C59D8
+ add r1, r0, #0x0
+ ldr r3, [r2, #0x4]
+ ldr r0, _0202D2C8 ; =0x00001344
+ mov r4, #0x0
+ strb r4, [r3, r0]
+ ldr r2, [r2, #0x4]
+ sub r0, #0x34
+ ldr r0, [r2, r0]
+ cmp r0, #0x4
+ bne _0202D2BE
+ ldr r0, _0202D2CC ; =FUN_0202D27C
+ blx WM_SetEntry
+ cmp r0, #0x2
+ bne _0202D2BE
+ mov r0, #0x1
+ pop {r4, pc}
+_0202D2BE:
+ mov r0, #0x0
+ pop {r4, pc}
+ nop
+_0202D2C4: .word 0x021C59D8
+_0202D2C8: .word 0x00001344
+_0202D2CC: .word FUN_0202D27C
+
+ thumb_func_start FUN_0202D2D0
+FUN_0202D2D0: ; 0x0202D2D0
+ ldr r0, _0202D2EC ; =0x021C59D8
+ ldr r1, [r0, #0x4]
+ cmp r1, #0x0
+ beq _0202D2E8
+ ldr r0, _0202D2F0 ; =0x00001345
+ ldrb r0, [r1, r0]
+ cmp r0, #0x6
+ blo _0202D2E4
+ mov r0, #0x1
+ bx lr
+_0202D2E4:
+ mov r0, #0x0
+ bx lr
+_0202D2E8:
+ mov r0, #0x0
+ bx lr
+ .balign 4
+_0202D2EC: .word 0x021C59D8
+_0202D2F0: .word 0x00001345
+
+ thumb_func_start FUN_0202D2F4
+FUN_0202D2F4: ; 0x0202D2F4
+ ldr r0, _0202D300 ; =0x021C59D8
+ mov r2, #0x0
+ ldr r1, [r0, #0x4]
+ ldr r0, _0202D304 ; =0x00001345
+ strb r2, [r1, r0]
+ bx lr
+ .balign 4
+_0202D300: .word 0x021C59D8
+_0202D304: .word 0x00001345
+
+ thumb_func_start FUN_0202D308
+FUN_0202D308: ; 0x0202D308
+ ldr r1, _0202D314 ; =0x021C59D8
+ ldr r2, [r1, #0x4]
+ ldr r1, _0202D318 ; =0x00001320
+ str r0, [r2, r1]
+ bx lr
+ nop
+_0202D314: .word 0x021C59D8
+_0202D318: .word 0x00001320
+
+ thumb_func_start FUN_0202D31C
+FUN_0202D31C: ; 0x0202D31C
+ ldr r1, _0202D328 ; =0x021C59D8
+ ldr r2, [r1, #0x4]
+ ldr r1, _0202D32C ; =0x00001324
+ str r0, [r2, r1]
+ bx lr
+ nop
+_0202D328: .word 0x021C59D8
+_0202D32C: .word 0x00001324
+
+ thumb_func_start FUN_0202D330
+FUN_0202D330: ; 0x0202D330
+ ldr r1, _0202D33C ; =0x021C59D8
+ ldr r2, [r1, #0x4]
+ ldr r1, _0202D340 ; =0x00001328
+ str r0, [r2, r1]
+ bx lr
+ nop
+_0202D33C: .word 0x021C59D8
+_0202D340: .word 0x00001328
+
+ thumb_func_start FUN_0202D344
+FUN_0202D344: ; 0x0202D344
+ ldr r1, _0202D350 ; =0x021C59D8
+ ldr r2, [r1, #0x4]
+ ldr r1, _0202D354 ; =0x00001342
+ strb r0, [r2, r1]
+ bx lr
+ nop
+_0202D350: .word 0x021C59D8
+_0202D354: .word 0x00001342
+
+ thumb_func_start FUN_0202D358
+FUN_0202D358: ; 0x0202D358
+ ldr r0, _0202D364 ; =0x021C59D8
+ ldr r1, [r0, #0x4]
+ ldr r0, _0202D368 ; =0x00001342
+ ldrb r0, [r1, r0]
+ bx lr
+ nop
+_0202D364: .word 0x021C59D8
+_0202D368: .word 0x00001342
+
+ thumb_func_start FUN_0202D36C
+FUN_0202D36C: ; 0x0202D36C
+ ldr r1, _0202D378 ; =0x021C59D8
+ ldr r2, [r1, #0x4]
+ ldr r1, _0202D37C ; =0x00001343
+ strb r0, [r2, r1]
+ bx lr
+ nop
+_0202D378: .word 0x021C59D8
+_0202D37C: .word 0x00001343
+
+ thumb_func_start FUN_0202D380
+FUN_0202D380: ; 0x0202D380
+ ldr r1, _0202D38C ; =0x021C59D8
+ ldr r2, [r1, #0x4]
+ ldr r1, _0202D390 ; =0x00001335
+ strb r0, [r2, r1]
+ bx lr
+ nop
+_0202D38C: .word 0x021C59D8
+_0202D390: .word 0x00001335
+
+ thumb_func_start FUN_0202D394
+FUN_0202D394: ; 0x0202D394
+ str r1, [r0, #0x0]
+ strh r2, [r0, #0xa]
+ mov r1, #0x0
+ strh r1, [r0, #0x4]
+ strh r1, [r0, #0x6]
+ strh r1, [r0, #0x8]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_0202D3A4
+FUN_0202D3A4: ; 0x0202D3A4
+ push {r3-r7, lr}
+ str r2, [sp, #0x0]
+ add r5, r0, #0x0
+ add r7, r1, #0x0
+ bl FUN_0202D498
+ ldr r1, [sp, #0x0]
+ cmp r0, r1
+ bgt _0202D3BC
+ bl FUN_02031454
+ pop {r3-r7, pc}
+_0202D3BC:
+ mov r0, #0x8
+ ldrsh r4, [r5, r0]
+ ldrsh r1, [r5, r0]
+ ldr r0, [sp, #0x0]
+ mov r6, #0x0
+ add r0, r1, r0
+ cmp r4, r0
+ bge _0202D3F2
+_0202D3CC:
+ cmp r7, #0x0
+ bne _0202D3D4
+ bl ErrorHandling
+_0202D3D4:
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_0202D4A8
+ ldrb r2, [r7, r6]
+ ldr r1, [r5, #0x0]
+ add r4, r4, #0x1
+ strb r2, [r1, r0]
+ mov r0, #0x8
+ ldrsh r1, [r5, r0]
+ ldr r0, [sp, #0x0]
+ add r6, r6, #0x1
+ add r0, r1, r0
+ cmp r4, r0
+ blt _0202D3CC
+_0202D3F2:
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_0202D4A8
+ strh r0, [r5, #0x8]
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_0202D400
+FUN_0202D400: ; 0x0202D400
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ bl FUN_0202D42C
+ mov r1, #0x4
+ add r4, r0, #0x0
+ ldrsh r1, [r5, r1]
+ add r0, r5, #0x0
+ add r1, r1, r4
+ bl FUN_0202D4A8
+ strh r0, [r5, #0x4]
+ add r0, r4, #0x0
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_0202D41C
+FUN_0202D41C: ; 0x0202D41C
+ push {r3, lr}
+ add r1, sp, #0x0
+ mov r2, #0x1
+ bl FUN_0202D400
+ add r0, sp, #0x0
+ ldrb r0, [r0, #0x0]
+ pop {r3, pc}
+
+ thumb_func_start FUN_0202D42C
+FUN_0202D42C: ; 0x0202D42C
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ mov r0, #0x4
+ ldrsh r4, [r5, r0]
+ add r7, r2, #0x0
+ str r1, [sp, #0x0]
+ add r0, r4, r7
+ mov r6, #0x0
+ cmp r4, r0
+ bge _0202D472
+_0202D440:
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_0202D4A8
+ mov r1, #0x6
+ ldrsh r1, [r5, r1]
+ cmp r1, r0
+ bne _0202D454
+ add r0, r6, #0x0
+ pop {r3-r7, pc}
+_0202D454:
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_0202D4A8
+ ldr r1, [r5, #0x0]
+ add r4, r4, #0x1
+ ldrb r1, [r1, r0]
+ ldr r0, [sp, #0x0]
+ strb r1, [r0, r6]
+ mov r0, #0x4
+ ldrsh r0, [r5, r0]
+ add r6, r6, #0x1
+ add r0, r0, r7
+ cmp r4, r0
+ blt _0202D440
+_0202D472:
+ add r0, r6, #0x0
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_0202D478
+FUN_0202D478: ; 0x0202D478
+ mov r1, #0x4
+ mov r3, #0x6
+ ldrsh r1, [r0, r1]
+ ldrsh r2, [r0, r3]
+ cmp r1, r2
+ ble _0202D490
+ mov r2, #0xa
+ ldrsh r2, [r0, r2]
+ ldrsh r0, [r0, r3]
+ add r0, r2, r0
+ sub r0, r0, r1
+ bx lr
+_0202D490:
+ ldrsh r0, [r0, r3]
+ sub r0, r0, r1
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_0202D498
+FUN_0202D498: ; 0x0202D498
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl FUN_0202D478
+ mov r1, #0xa
+ ldrsh r1, [r4, r1]
+ sub r0, r1, r0
+ pop {r4, pc}
+
+ thumb_func_start FUN_0202D4A8
+FUN_0202D4A8: ; 0x0202D4A8
+ push {r3, lr}
+ add r2, r0, #0x0
+ add r0, r1, #0x0
+ mov r1, #0xa
+ ldrsh r1, [r2, r1]
+ blx _s32_div_f
+ add r0, r1, #0x0
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_0202D4BC
+FUN_0202D4BC: ; 0x0202D4BC
+ mov r1, #0x8
+ ldrsh r1, [r0, r1]
+ strh r1, [r0, #0x6]
+ bx lr
+
+ thumb_func_start FUN_0202D4C4
+FUN_0202D4C4: ; 0x0202D4C4
+ ldr r3, [r0, #0x1c]
+ mov r2, #0x0
+ ldr r1, [r0, #0x18]
+ cmp r3, #0x0
+ ble _0202D4E0
+_0202D4CE:
+ ldrb r0, [r1, #0xe]
+ cmp r0, #0x0
+ bne _0202D4D8
+ add r0, r1, #0x0
+ bx lr
+_0202D4D8:
+ add r2, r2, #0x1
+ add r1, #0x10
+ cmp r2, r3
+ blt _0202D4CE
+_0202D4E0:
+ mov r0, #0x0
+ bx lr
+
+ thumb_func_start FUN_0202D4E4
+FUN_0202D4E4: ; 0x0202D4E4
+ ldr r3, [r0, #0x1c]
+ mov r2, #0x0
+ ldr r1, [r0, #0x18]
+ cmp r3, #0x0
+ ble _0202D500
+_0202D4EE:
+ ldrb r0, [r1, #0xe]
+ cmp r0, #0x0
+ beq _0202D4F8
+ mov r0, #0x0
+ bx lr
+_0202D4F8:
+ add r2, r2, #0x1
+ add r1, #0x10
+ cmp r2, r3
+ blt _0202D4EE
+_0202D500:
+ mov r0, #0x1
+ bx lr
+
+ thumb_func_start FUN_0202D504
+FUN_0202D504: ; 0x0202D504
+ ldr r1, [r0, #0x0]
+ cmp r1, #0x0
+ beq _0202D522
+ ldr r1, [r1, #0x8]
+ cmp r1, #0x0
+ beq _0202D518
+ str r1, [r0, #0x0]
+ mov r0, #0x0
+ str r0, [r1, #0x4]
+ b _0202D51E
+_0202D518:
+ mov r1, #0x0
+ str r1, [r0, #0x0]
+ str r1, [r0, #0x4]
+_0202D51E:
+ mov r0, #0x1
+ bx lr
+_0202D522:
+ mov r0, #0x0
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_0202D528
+FUN_0202D528: ; 0x0202D528
+ ldr r2, [r0, #0x0]
+ strb r1, [r2, #0x0]
+ ldr r1, [r0, #0x0]
+ add r1, r1, #0x1
+ str r1, [r0, #0x0]
+ ldr r1, [r0, #0x4]
+ sub r1, r1, #0x1
+ str r1, [r0, #0x4]
+ bne _0202D53E
+ mov r0, #0x1
+ bx lr
+_0202D53E:
+ mov r0, #0x0
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_0202D544
+FUN_0202D544: ; 0x0202D544
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ ldrb r0, [r5, #0xe]
+ add r4, r1, #0x0
+ bl FUN_0202D9A0
+ add r6, r0, #0x0
+ ldr r0, _0202D5B8 ; =0x0000FFFF
+ cmp r6, r0
+ ldr r0, [r4, #0x4]
+ bne _0202D56A
+ cmp r0, #0x3
+ bge _0202D57A
+ ldrb r1, [r5, #0xf]
+ mov r0, #0x1
+ bic r1, r0
+ strb r1, [r5, #0xf]
+ mov r0, #0x1
+ pop {r4-r6, pc}
+_0202D56A:
+ cmp r0, #0x1
+ bge _0202D57A
+ ldrb r1, [r5, #0xf]
+ mov r0, #0x1
+ bic r1, r0
+ strb r1, [r5, #0xf]
+ mov r0, #0x1
+ pop {r4-r6, pc}
+_0202D57A:
+ ldrb r1, [r5, #0xe]
+ add r0, r4, #0x0
+ bl FUN_0202D528
+ ldr r0, _0202D5B8 ; =0x0000FFFF
+ cmp r6, r0
+ bne _0202D5A4
+ ldrh r1, [r5, #0xc]
+ add r0, r4, #0x0
+ asr r1, r1, #0x8
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ bl FUN_0202D528
+ ldrh r1, [r5, #0xc]
+ add r0, r4, #0x0
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ bl FUN_0202D528
+ b _0202D5A6
+_0202D5A4:
+ strh r6, [r5, #0xc]
+_0202D5A6:
+ ldrb r1, [r5, #0xf]
+ mov r0, #0x1
+ bic r1, r0
+ mov r0, #0x1
+ orr r0, r1
+ strb r0, [r5, #0xf]
+ mov r0, #0x0
+ pop {r4-r6, pc}
+ nop
+_0202D5B8: .word 0x0000FFFF
+
+ thumb_func_start FUN_0202D5BC
+FUN_0202D5BC: ; 0x0202D5BC
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ ldrb r0, [r5, #0xe]
+ add r4, r1, #0x0
+ add r6, r2, #0x0
+ add r7, r3, #0x0
+ bl FUN_0202D9A0
+ ldr r1, _0202D680 ; =0x0000FFFF
+ cmp r0, r1
+ bne _0202D5D6
+ mov r2, #0x3
+ b _0202D5D8
+_0202D5D6:
+ mov r2, #0x1
+_0202D5D8:
+ ldrh r0, [r5, #0xc]
+ ldr r1, [r4, #0x4]
+ add r0, r0, r2
+ cmp r1, r0
+ bge _0202D5EA
+ cmp r7, #0x0
+ bne _0202D5EA
+ mov r0, #0x0
+ pop {r3-r7, pc}
+_0202D5EA:
+ ldrb r0, [r5, #0xf]
+ lsl r0, r0, #0x1f
+ lsr r0, r0, #0x1f
+ cmp r0, #0x1
+ beq _0202D604
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_0202D544
+ cmp r0, #0x0
+ beq _0202D604
+ mov r0, #0x0
+ pop {r3-r7, pc}
+_0202D604:
+ ldrh r3, [r5, #0xc]
+ ldr r2, [r4, #0x4]
+ cmp r2, r3
+ ldrb r0, [r5, #0xf]
+ bge _0202D64E
+ lsl r0, r0, #0x1e
+ lsr r0, r0, #0x1f
+ beq _0202D61E
+ ldr r1, [r4, #0x0]
+ add r0, r6, #0x0
+ bl FUN_0202D400
+ b _0202D634
+_0202D61E:
+ mov r3, #0x0
+ cmp r2, #0x0
+ ble _0202D634
+_0202D624:
+ ldr r0, [r5, #0x0]
+ ldrb r1, [r0, r3]
+ ldr r0, [r4, #0x0]
+ strb r1, [r0, r3]
+ ldr r0, [r4, #0x4]
+ add r3, r3, #0x1
+ cmp r3, r0
+ blt _0202D624
+_0202D634:
+ ldr r1, [r5, #0x0]
+ ldr r0, [r4, #0x4]
+ add r0, r1, r0
+ str r0, [r5, #0x0]
+ ldrh r1, [r5, #0xc]
+ ldr r0, [r4, #0x4]
+ sub r0, r1, r0
+ strh r0, [r5, #0xc]
+ mov r0, #0x0
+ mvn r0, r0
+ str r0, [r4, #0x4]
+ mov r0, #0x1
+ pop {r3-r7, pc}
+_0202D64E:
+ lsl r0, r0, #0x1e
+ lsr r0, r0, #0x1f
+ beq _0202D660
+ ldr r1, [r4, #0x0]
+ add r0, r6, #0x0
+ add r2, r3, #0x0
+ bl FUN_0202D400
+ b _0202D66A
+_0202D660:
+ ldr r0, [r5, #0x0]
+ ldr r1, [r4, #0x0]
+ add r2, r3, #0x0
+ blx MI_CpuCopy8
+_0202D66A:
+ ldrh r0, [r5, #0xc]
+ ldr r1, [r4, #0x0]
+ add r0, r1, r0
+ str r0, [r4, #0x0]
+ ldrh r0, [r5, #0xc]
+ ldr r1, [r4, #0x4]
+ sub r0, r1, r0
+ str r0, [r4, #0x4]
+ mov r0, #0x1
+ pop {r3-r7, pc}
+ nop
+_0202D680: .word 0x0000FFFF
+
+ thumb_func_start FUN_0202D684
+FUN_0202D684: ; 0x0202D684
+ push {r3-r7, lr}
+ sub sp, #0x8
+ add r5, r0, #0x0
+ str r1, [sp, #0x0]
+ str r2, [sp, #0x4]
+ add r7, r3, #0x0
+ bl FUN_0202D4C4
+ add r4, r0, #0x0
+ bne _0202D69E
+ add sp, #0x8
+ mov r0, #0x0
+ pop {r3-r7, pc}
+_0202D69E:
+ ldr r0, _0202D710 ; =0x0000FFFE
+ cmp r7, r0
+ blt _0202D6A8
+ bl ErrorHandling
+_0202D6A8:
+ ldr r0, [sp, #0x0]
+ bl FUN_0202D9A0
+ add r6, r0, #0x0
+ ldr r0, _0202D714 ; =0x0000FFFF
+ cmp r6, r0
+ bne _0202D6B8
+ add r6, r7, #0x0
+_0202D6B8:
+ ldr r0, [sp, #0x24]
+ cmp r0, #0x0
+ beq _0202D6EA
+ ldr r0, [r5, #0x14]
+ bl FUN_0202D498
+ add r1, r6, #0x3
+ cmp r1, r0
+ blt _0202D6D0
+ add sp, #0x8
+ mov r0, #0x0
+ pop {r3-r7, pc}
+_0202D6D0:
+ ldr r0, [r5, #0x14]
+ ldr r1, [sp, #0x4]
+ ldr r3, _0202D718 ; =0x00000109
+ add r2, r6, #0x0
+ bl FUN_0202D3A4
+ ldr r0, [r5, #0x14]
+ bl FUN_0202D4BC
+ ldrb r1, [r4, #0xf]
+ mov r0, #0x2
+ orr r0, r1
+ strb r0, [r4, #0xf]
+_0202D6EA:
+ ldr r0, [sp, #0x0]
+ strh r6, [r4, #0xc]
+ strb r0, [r4, #0xe]
+ ldr r0, [sp, #0x4]
+ str r0, [r4, #0x0]
+ ldr r0, [r5, #0x4]
+ cmp r0, #0x0
+ bne _0202D700
+ str r4, [r5, #0x4]
+ str r4, [r5, #0x0]
+ b _0202D708
+_0202D700:
+ str r4, [r0, #0x8]
+ ldr r0, [r5, #0x4]
+ str r0, [r4, #0x4]
+ str r4, [r5, #0x4]
+_0202D708:
+ mov r0, #0x1
+ add sp, #0x8
+ pop {r3-r7, pc}
+ nop
+_0202D710: .word 0x0000FFFE
+_0202D714: .word 0x0000FFFF
+_0202D718: .word 0x00000109
+
+ thumb_func_start FUN_0202D71C
+FUN_0202D71C: ; 0x0202D71C
+ ldr r1, [r0, #0x10]
+ cmp r1, #0x0
+ beq _0202D726
+ add r0, r1, #0x0
+ bx lr
+_0202D726:
+ ldr r1, [r0, #0x0]
+ cmp r1, #0x0
+ beq _0202D730
+ add r0, r1, #0x0
+ bx lr
+_0202D730:
+ ldr r0, [r0, #0x8]
+ cmp r0, #0x0
+ bne _0202D738
+ mov r0, #0x0
+_0202D738:
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_0202D73C
+FUN_0202D73C: ; 0x0202D73C
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r1, [r4, #0x10]
+ cmp r1, #0x0
+ beq _0202D74C
+ mov r0, #0x0
+ str r0, [r4, #0x10]
+ pop {r4, pc}
+_0202D74C:
+ bl FUN_0202D504
+ cmp r0, #0x0
+ bne _0202D75C
+ add r4, #0x8
+ add r0, r4, #0x0
+ bl FUN_0202D504
+_0202D75C:
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0202D760
+FUN_0202D760: ; 0x0202D760
+ push {r3-r7, lr}
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ ldr r0, [r4, #0x4]
+ mov r7, #0x1
+ str r2, [sp, #0x0]
+ cmp r0, #0x0
+ ble _0202D7B6
+_0202D770:
+ add r0, r5, #0x0
+ bl FUN_0202D71C
+ add r6, r0, #0x0
+ beq _0202D7B6
+ add r0, r5, #0x0
+ bl FUN_0202D73C
+ ldr r2, [r5, #0x14]
+ add r0, r6, #0x0
+ add r1, r4, #0x0
+ add r3, r7, #0x0
+ bl FUN_0202D5BC
+ cmp r0, #0x0
+ bne _0202D794
+ str r6, [r5, #0x10]
+ b _0202D7B6
+_0202D794:
+ mov r0, #0x0
+ ldr r1, [r4, #0x4]
+ mvn r0, r0
+ cmp r1, r0
+ bne _0202D7A4
+ str r6, [r5, #0x10]
+ mov r0, #0x0
+ pop {r3-r7, pc}
+_0202D7A4:
+ add r0, r6, #0x0
+ mov r1, #0x0
+ mov r2, #0x10
+ blx MI_CpuFill8
+ ldr r0, [r4, #0x4]
+ ldr r7, [sp, #0x0]
+ cmp r0, #0x0
+ bgt _0202D770
+_0202D7B6:
+ ldr r0, [r4, #0x4]
+ mov r2, #0x0
+ cmp r0, #0x0
+ ble _0202D7D2
+ mov r1, #0xee
+_0202D7C0:
+ ldr r0, [r4, #0x0]
+ add r2, r2, #0x1
+ strb r1, [r0, #0x0]
+ ldr r0, [r4, #0x0]
+ add r0, r0, #0x1
+ str r0, [r4, #0x0]
+ ldr r0, [r4, #0x4]
+ cmp r2, r0
+ blt _0202D7C0
+_0202D7D2:
+ mov r0, #0x1
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_0202D7D8
+FUN_0202D7D8: ; 0x0202D7D8
+ push {r3-r7, lr}
+ add r4, r1, #0x0
+ add r6, r2, #0x0
+ mov r1, #0x0
+ mov r2, #0x20
+ add r5, r0, #0x0
+ blx MI_CpuFill8
+ lsl r7, r4, #0x4
+ mov r0, #0xf
+ add r1, r7, #0x0
+ bl FUN_02016998
+ mov r1, #0x0
+ add r2, r7, #0x0
+ str r0, [r5, #0x18]
+ blx MI_CpuFill8
+ str r4, [r5, #0x1c]
+ str r6, [r5, #0x14]
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_0202D804
+FUN_0202D804: ; 0x0202D804
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r2, [r4, #0x1c]
+ ldr r0, [r4, #0x18]
+ mov r1, #0x0
+ lsl r2, r2, #0x4
+ blx MI_CpuFill8
+ mov r0, #0x0
+ str r0, [r4, #0x0]
+ str r0, [r4, #0x4]
+ str r0, [r4, #0x8]
+ str r0, [r4, #0xc]
+ str r0, [r4, #0x10]
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0202D824
+FUN_0202D824: ; 0x0202D824
+ ldr r3, _0202D82C ; =FUN_02016A18
+ ldr r0, [r0, #0x18]
+ bx r3
+ nop
+_0202D82C: .word FUN_02016A18
+
+ thumb_func_start FUN_0202D830
+FUN_0202D830: ; 0x0202D830
+ push {r3-r4}
+ ldr r4, [r0, #0x1c]
+ mov r2, #0x0
+ ldr r3, [r0, #0x18]
+ cmp r4, #0x0
+ ble _0202D850
+_0202D83C:
+ ldrb r0, [r3, #0xe]
+ cmp r0, r1
+ bne _0202D848
+ mov r0, #0x1
+ pop {r3-r4}
+ bx lr
+_0202D848:
+ add r2, r2, #0x1
+ add r3, #0x10
+ cmp r2, r4
+ blt _0202D83C
+_0202D850:
+ mov r0, #0x0
+ pop {r3-r4}
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_0202D858
+FUN_0202D858: ; 0x0202D858
+ push {r3-r4, lr}
+ sub sp, #0x1c
+ ldr r3, _0202D880 ; =0x020EEB04
+ add r4, r0, #0x0
+ add r2, sp, #0x0
+ mov r1, #0x1a
+_0202D864:
+ ldrb r0, [r3, #0x0]
+ add r3, r3, #0x1
+ strb r0, [r2, #0x0]
+ add r2, r2, #0x1
+ sub r1, r1, #0x1
+ bne _0202D864
+ cmp r4, #0x1a
+ blo _0202D878
+ bl ErrorHandling
+_0202D878:
+ add r0, sp, #0x0
+ ldrb r0, [r0, r4]
+ add sp, #0x1c
+ pop {r3-r4, pc}
+ .balign 4
+_0202D880: .word 0x020EEB04
+
+ thumb_func_start FUN_0202D884
+FUN_0202D884: ; 0x0202D884
+ push {r3-r4, lr}
+ sub sp, #0x1c
+ ldr r3, _0202D8AC ; =0x020EEB1E
+ add r4, r0, #0x0
+ add r2, sp, #0x0
+ mov r1, #0x1a
+_0202D890:
+ ldrb r0, [r3, #0x0]
+ add r3, r3, #0x1
+ strb r0, [r2, #0x0]
+ add r2, r2, #0x1
+ sub r1, r1, #0x1
+ bne _0202D890
+ cmp r4, #0x1a
+ blo _0202D8A4
+ bl ErrorHandling
+_0202D8A4:
+ add r0, sp, #0x0
+ ldrb r0, [r0, r4]
+ add sp, #0x1c
+ pop {r3-r4, pc}
+ .balign 4
+_0202D8AC: .word 0x020EEB1E
+
+ thumb_func_start FUN_0202D8B0
+FUN_0202D8B0: ; 0x0202D8B0
+ cmp r0, #0xd
+ bgt _0202D8C4
+ cmp r0, #0x7
+ blt _0202D8CC
+ beq _0202D8C8
+ cmp r0, #0x9
+ beq _0202D8C8
+ cmp r0, #0xd
+ beq _0202D8C8
+ b _0202D8CC
+_0202D8C4:
+ cmp r0, #0x12
+ bne _0202D8CC
+_0202D8C8:
+ mov r0, #0x1
+ bx lr
+_0202D8CC:
+ mov r0, #0x0
+ bx lr
+
+ thumb_func_start FUN_0202D8D0
+FUN_0202D8D0: ; 0x0202D8D0
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ ldr r0, _0202D914 ; =0x021C59E0
+ add r4, r1, #0x0
+ ldr r0, [r0, #0x0]
+ add r6, r2, #0x0
+ cmp r0, #0x0
+ bne _0202D8EC
+ mov r0, #0xf
+ mov r1, #0x18
+ bl FUN_02016998
+ ldr r1, _0202D914 ; =0x021C59E0
+ str r0, [r1, #0x0]
+_0202D8EC:
+ ldr r0, _0202D914 ; =0x021C59E0
+ mov r3, #0x0
+ ldr r1, [r0, #0x0]
+ add r2, r3, #0x0
+ str r5, [r1, #0x0]
+ ldr r1, [r0, #0x0]
+ str r4, [r1, #0x4]
+ ldr r1, [r0, #0x0]
+ str r6, [r1, #0x8]
+_0202D8FE:
+ ldr r1, [r0, #0x0]
+ add r1, r1, r3
+ add r3, r3, #0x1
+ strb r2, [r1, #0xc]
+ cmp r3, #0x8
+ blt _0202D8FE
+ ldr r0, _0202D914 ; =0x021C59E0
+ ldr r0, [r0, #0x0]
+ strb r2, [r0, #0x14]
+ pop {r4-r6, pc}
+ nop
+_0202D914: .word 0x021C59E0
+
+ thumb_func_start FUN_0202D918
+FUN_0202D918: ; 0x0202D918
+ push {r3, lr}
+ ldr r0, _0202D930 ; =0x021C59E0
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ beq _0202D92C
+ bl FUN_02016A18
+ ldr r0, _0202D930 ; =0x021C59E0
+ mov r1, #0x0
+ str r1, [r0, #0x0]
+_0202D92C:
+ pop {r3, pc}
+ nop
+_0202D930: .word 0x021C59E0
+
+ thumb_func_start FUN_0202D934
+FUN_0202D934: ; 0x0202D934
+ push {r3-r7, lr}
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ add r6, r2, #0x0
+ add r7, r3, #0x0
+ cmp r4, #0x16
+ bge _0202D94C
+ mov r0, #0xc
+ mul r1, r0
+ ldr r0, _0202D998 ; =0x020EEB38
+ ldr r4, [r0, r1]
+ b _0202D974
+_0202D94C:
+ ldr r0, _0202D99C ; =0x021C59E0
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ bne _0202D958
+ bl ErrorHandling
+_0202D958:
+ ldr r0, _0202D99C ; =0x021C59E0
+ ldr r1, [r0, #0x0]
+ ldr r0, [r1, #0x4]
+ add r0, #0x16
+ cmp r4, r0
+ ble _0202D96A
+ bl FUN_02031454
+ pop {r3-r7, pc}
+_0202D96A:
+ ldr r1, [r1, #0x0]
+ sub r4, #0x16
+ mov r0, #0xc
+ mul r0, r4
+ ldr r4, [r1, r0]
+_0202D974:
+ cmp r4, #0x0
+ beq _0202D996
+ ldr r0, _0202D99C ; =0x021C59E0
+ ldr r3, [r0, #0x0]
+ cmp r3, #0x0
+ beq _0202D98C
+ ldr r3, [r3, #0x8]
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ add r2, r7, #0x0
+ blx r4
+ pop {r3-r7, pc}
+_0202D98C:
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ add r2, r7, #0x0
+ mov r3, #0x0
+ blx r4
+_0202D996:
+ pop {r3-r7, pc}
+ .balign 4
+_0202D998: .word 0x020EEB38
+_0202D99C: .word 0x021C59E0
+
+ thumb_func_start FUN_0202D9A0
+FUN_0202D9A0: ; 0x0202D9A0
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ mov r4, #0x0
+ cmp r5, #0x16
+ bge _0202D9B6
+ mov r0, #0xc
+ add r1, r5, #0x0
+ mul r1, r0
+ ldr r0, _0202D9FC ; =0x020EEB3C
+ ldr r0, [r0, r1]
+ b _0202D9EE
+_0202D9B6:
+ ldr r0, _0202DA00 ; =0x021C59E0
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ bne _0202D9C2
+ bl ErrorHandling
+_0202D9C2:
+ ldr r0, _0202DA00 ; =0x021C59E0
+ ldr r1, [r0, #0x0]
+ cmp r1, #0x0
+ bne _0202D9D2
+ bl FUN_02031454
+ mov r0, #0x0
+ pop {r3-r5, pc}
+_0202D9D2:
+ ldr r0, [r1, #0x4]
+ add r0, #0x16
+ cmp r5, r0
+ ble _0202D9E2
+ bl FUN_02031454
+ mov r0, #0x0
+ pop {r3-r5, pc}
+_0202D9E2:
+ ldr r1, [r1, #0x0]
+ sub r5, #0x16
+ mov r0, #0xc
+ mul r0, r5
+ add r0, r1, r0
+ ldr r0, [r0, #0x4]
+_0202D9EE:
+ cmp r0, #0x0
+ beq _0202D9F6
+ blx r0
+ add r4, r0, #0x0
+_0202D9F6:
+ add r0, r4, #0x0
+ pop {r3-r5, pc}
+ nop
+_0202D9FC: .word 0x020EEB3C
+_0202DA00: .word 0x021C59E0
+
+ thumb_func_start FUN_0202DA04
+FUN_0202DA04: ; 0x0202DA04
+ cmp r0, #0x16
+ bge _0202DA1C
+ mov r1, #0xc
+ mul r1, r0
+ ldr r0, _0202DA38 ; =0x020EEB40
+ ldr r0, [r0, r1]
+ cmp r0, #0x0
+ beq _0202DA18
+ mov r0, #0x1
+ bx lr
+_0202DA18:
+ mov r0, #0x0
+ bx lr
+_0202DA1C:
+ ldr r1, _0202DA3C ; =0x021C59E0
+ sub r0, #0x16
+ ldr r1, [r1, #0x0]
+ ldr r2, [r1, #0x0]
+ mov r1, #0xc
+ mul r1, r0
+ add r0, r2, r1
+ ldr r0, [r0, #0x8]
+ cmp r0, #0x0
+ beq _0202DA34
+ mov r0, #0x1
+ bx lr
+_0202DA34:
+ mov r0, #0x0
+ bx lr
+ .balign 4
+_0202DA38: .word 0x020EEB40
+_0202DA3C: .word 0x021C59E0
+
+ thumb_func_start FUN_0202DA40
+FUN_0202DA40: ; 0x0202DA40
+ push {r3-r5, lr}
+ add r3, r0, #0x0
+ cmp r3, #0x16
+ bge _0202DA58
+ mov r4, #0xc
+ mul r4, r3
+ ldr r3, _0202DA70 ; =0x020EEB40
+ add r0, r1, #0x0
+ ldr r3, [r3, r4]
+ mov r1, #0x0
+ blx r3
+ pop {r3-r5, pc}
+_0202DA58:
+ ldr r0, _0202DA74 ; =0x021C59E0
+ sub r3, #0x16
+ ldr r4, [r0, #0x0]
+ add r0, r1, #0x0
+ ldr r1, [r4, #0x8]
+ ldr r5, [r4, #0x0]
+ mov r4, #0xc
+ mul r4, r3
+ add r3, r5, r4
+ ldr r3, [r3, #0x8]
+ blx r3
+ pop {r3-r5, pc}
+ .balign 4
+_0202DA70: .word 0x020EEB40
+_0202DA74: .word 0x021C59E0
+
+ thumb_func_start FUN_0202DA78
+FUN_0202DA78: ; 0x0202DA78
+ ldr r0, _0202DA7C ; =0x0000FFFF
+ bx lr
+ .balign 4
+_0202DA7C: .word 0x0000FFFF
+
+ thumb_func_start FUN_0202DA80
+FUN_0202DA80: ; 0x0202DA80
+ mov r0, #0x0
+ bx lr
+
+ thumb_func_start FUN_0202DA84
+FUN_0202DA84: ; 0x0202DA84
+ mov r0, #0x1
+ bx lr
+
+ thumb_func_start FUN_0202DA88
+FUN_0202DA88: ; 0x0202DA88
+ mov r0, #0x2
+ bx lr
+
+ thumb_func_start FUN_0202DA8C
+FUN_0202DA8C: ; 0x0202DA8C
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ bl FUN_02031190
+ cmp r0, #0x0
+ bne _0202DACA
+ ldr r4, _0202DACC ; =0x021C59E0
+ mov r1, #0x1
+ ldr r0, [r4, #0x0]
+ add r0, r0, r5
+ strb r1, [r0, #0xc]
+ mov r5, #0x0
+_0202DAA4:
+ lsl r0, r5, #0x10
+ lsr r0, r0, #0x10
+ bl FUN_02030E7C
+ cmp r0, #0x0
+ beq _0202DABA
+ ldr r0, [r4, #0x0]
+ add r0, r0, r5
+ ldrb r0, [r0, #0xc]
+ cmp r0, #0x0
+ beq _0202DACA
+_0202DABA:
+ add r5, r5, #0x1
+ cmp r5, #0x8
+ blt _0202DAA4
+ mov r1, #0x0
+ mov r0, #0xe
+ add r2, r1, #0x0
+ bl FUN_02030BC4
+_0202DACA:
+ pop {r3-r5, pc}
+ .balign 4
+_0202DACC: .word 0x021C59E0
+
+ thumb_func_start FUN_0202DAD0
+FUN_0202DAD0: ; 0x0202DAD0
+ ldr r0, _0202DAF0 ; =0x021C59E0
+ mov r3, #0x0
+ ldr r1, [r0, #0x0]
+ str r3, [r1, #0x0]
+ ldr r1, [r0, #0x0]
+ str r3, [r1, #0x4]
+ ldr r1, [r0, #0x0]
+ str r3, [r1, #0x8]
+ ldr r0, [r0, #0x0]
+ mov r1, #0x1
+ strb r1, [r0, #0x14]
+ ldr r3, _0202DAF4 ; =FUN_020311D0
+ mov r0, #0xf
+ add r1, r2, #0x0
+ bx r3
+ nop
+_0202DAF0: .word 0x021C59E0
+_0202DAF4: .word FUN_020311D0
+
+ thumb_func_start FUN_0202DAF8
+FUN_0202DAF8: ; 0x0202DAF8
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl FUN_02031190
+ cmp r0, #0x0
+ bne _0202DB0E
+ ldr r0, _0202DB10 ; =0x021C59E0
+ mov r1, #0x0
+ ldr r0, [r0, #0x0]
+ add r0, r0, r4
+ strb r1, [r0, #0xc]
+_0202DB0E:
+ pop {r4, pc}
+ .balign 4
+_0202DB10: .word 0x021C59E0
+
+ thumb_func_start FUN_0202DB14
+FUN_0202DB14: ; 0x0202DB14
+ push {r4-r7, lr}
+ sub sp, #0xc
+ str r0, [sp, #0x0]
+ str r1, [sp, #0x4]
+ bl FUN_020238F4
+ str r0, [sp, #0x8]
+ ldr r0, _0202DBA0 ; =0x021C59E4
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ bne _0202DB9A
+ mov r1, #0xe9
+ mov r0, #0xf
+ lsl r1, r1, #0x2
+ bl FUN_02016998
+ ldr r1, _0202DBA0 ; =0x021C59E4
+ mov r2, #0xe9
+ str r0, [r1, #0x0]
+ mov r1, #0x0
+ lsl r2, r2, #0x2
+ blx MI_CpuFill8
+ mov r6, #0x0
+ ldr r7, _0202DBA0 ; =0x021C59E4
+ add r4, r6, #0x0
+ add r5, r6, #0x0
+_0202DB4A:
+ ldr r1, [r7, #0x0]
+ add r0, r1, #0x0
+ add r0, #0x28
+ add r2, r0, r4
+ mov r0, #0xd2
+ add r1, r1, r5
+ lsl r0, r0, #0x2
+ str r2, [r1, r0]
+ add r0, r6, #0x0
+ bl FUN_0202DE78
+ add r6, r6, #0x1
+ add r4, #0x68
+ add r5, r5, #0x4
+ cmp r6, #0x8
+ blt _0202DB4A
+ ldr r2, _0202DBA0 ; =0x021C59E4
+ mov r1, #0x3a
+ ldr r3, [r2, #0x0]
+ mov r0, #0x0
+ lsl r1, r1, #0x4
+ strb r0, [r3, r1]
+ ldr r4, [r2, #0x0]
+ add r3, r1, #0x1
+ strb r0, [r4, r3]
+ add r3, r1, #0x2
+ ldr r4, [r2, #0x0]
+ sub r1, #0x58
+ strb r0, [r4, r3]
+ ldr r3, [r2, #0x0]
+ ldr r0, [sp, #0x0]
+ str r0, [r3, #0x4]
+ ldr r3, [r2, #0x0]
+ ldr r0, [sp, #0x4]
+ str r0, [r3, #0x0]
+ ldr r2, [r2, #0x0]
+ ldr r0, [sp, #0x8]
+ ldr r1, [r2, r1]
+ bl FUN_0202393C
+_0202DB9A:
+ add sp, #0xc
+ pop {r4-r7, pc}
+ nop
+_0202DBA0: .word 0x021C59E4
+
+ thumb_func_start FUN_0202DBA4
+FUN_0202DBA4: ; 0x0202DBA4
+ push {r3-r5, lr}
+ ldr r1, _0202DBDC ; =0x021C59E4
+ ldr r0, [r1, #0x0]
+ cmp r0, #0x0
+ beq _0202DBD8
+ mov r4, #0x0
+ mov r0, #0xd2
+ add r5, r4, #0x0
+ add r3, r4, #0x0
+ lsl r0, r0, #0x2
+_0202DBB8:
+ ldr r2, [r1, #0x0]
+ add r4, r4, #0x1
+ add r2, r2, r5
+ add r5, r5, #0x4
+ str r3, [r2, r0]
+ cmp r4, #0x8
+ blt _0202DBB8
+ ldr r0, _0202DBDC ; =0x021C59E4
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ beq _0202DBD2
+ bl FUN_02016A18
+_0202DBD2:
+ ldr r0, _0202DBDC ; =0x021C59E4
+ mov r1, #0x0
+ str r1, [r0, #0x0]
+_0202DBD8:
+ pop {r3-r5, pc}
+ nop
+_0202DBDC: .word 0x021C59E4
+
+ thumb_func_start FUN_0202DBE0
+FUN_0202DBE0: ; 0x0202DBE0
+ push {r3-r7, lr}
+ bl FUN_02031190
+ add r4, r0, #0x0
+ ldr r0, _0202DCD8 ; =0x021C59E4
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0x4]
+ bl FUN_0202881C
+ add r7, r0, #0x0
+ ldr r0, _0202DCD8 ; =0x021C59E4
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0x4]
+ bl FUN_020286EC
+ str r0, [sp, #0x0]
+ ldr r0, _0202DCD8 ; =0x021C59E4
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0x4]
+ bl FUN_02029AFC
+ add r6, r0, #0x0
+ ldr r0, _0202DCD8 ; =0x021C59E4
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0x4]
+ bl FUN_020238F4
+ ldr r1, _0202DCD8 ; =0x021C59E4
+ ldr r2, [r1, #0x0]
+ lsl r1, r4, #0x2
+ add r2, r2, r1
+ mov r1, #0xd2
+ lsl r1, r1, #0x2
+ ldr r1, [r2, r1]
+ bl FUN_0202393C
+ mov r0, #0x68
+ add r5, r4, #0x0
+ mul r5, r0
+ ldr r0, _0202DCD8 ; =0x021C59E4
+ ldr r0, [r0, #0x0]
+ add r0, #0x64
+ add r0, r0, r5
+ blx OS_GetMacAddress
+ add r0, r7, #0x0
+ mov r1, #0x1
+ mov r2, #0x0
+ bl FUN_020287A8
+ ldr r1, _0202DCD8 ; =0x021C59E4
+ mov r2, #0x10
+ ldr r1, [r1, #0x0]
+ add r1, #0x54
+ add r1, r1, r5
+ blx MI_CpuCopy8
+ add r0, r6, #0x0
+ bl FUN_02029B38
+ ldr r1, _0202DCD8 ; =0x021C59E4
+ ldr r1, [r1, #0x0]
+ add r1, r1, r5
+ add r1, #0x6b
+ strb r0, [r1, #0x0]
+ add r0, r6, #0x0
+ bl FUN_02029B3C
+ ldr r2, _0202DCD8 ; =0x021C59E4
+ ldr r1, [r2, #0x0]
+ add r1, r1, r5
+ add r1, #0x6c
+ strb r0, [r1, #0x0]
+ ldr r0, [r2, #0x0]
+ ldr r0, [r0, #0x4]
+ bl FUN_02025C18
+ ldr r2, _0202DCD8 ; =0x021C59E4
+ ldr r1, [r2, #0x0]
+ add r1, r1, r5
+ add r1, #0x6d
+ strb r0, [r1, #0x0]
+ ldr r2, [r2, #0x0]
+ mov r0, #0x1
+ add r2, #0x6d
+ ldrb r1, [r2, r5]
+ sub r0, r0, r1
+ strb r0, [r2, r5]
+ ldr r0, [sp, #0x0]
+ bl FUN_02028228
+ ldr r1, _0202DCD8 ; =0x021C59E4
+ ldr r1, [r1, #0x0]
+ add r1, #0x48
+ add r1, r1, r5
+ blx FUN_02096CCC
+ ldr r0, _0202DCD8 ; =0x021C59E4
+ mov r1, #0x0
+ ldr r0, [r0, #0x0]
+ mov r2, #0x20
+ add r0, #0x8
+ add r0, r0, r5
+ blx MI_CpuFill8
+ ldr r0, _0202DCD8 ; =0x021C59E4
+ ldr r1, [r0, #0x0]
+ ldr r0, [r1, #0x0]
+ cmp r0, #0x0
+ beq _0202DCC4
+ add r1, #0x8
+ add r1, r1, r5
+ bl FUN_02023ACC
+_0202DCC4:
+ ldr r1, _0202DCD8 ; =0x021C59E4
+ mov r0, #0x3
+ ldr r1, [r1, #0x0]
+ mov r2, #0x68
+ add r1, #0x8
+ add r1, r1, r5
+ bl FUN_02030ADC
+ pop {r3-r7, pc}
+ nop
+_0202DCD8: .word 0x021C59E4
+
+ thumb_func_start FUN_0202DCDC
+FUN_0202DCDC: ; 0x0202DCDC
+ mov r0, #0x68
+ bx lr
+
+ thumb_func_start FUN_0202DCE0
+FUN_0202DCE0: ; 0x0202DCE0
+ ldr r0, _0202DCF4 ; =0x021C59E4
+ ldr r2, [r0, #0x0]
+ cmp r2, #0x0
+ beq _0202DCF0
+ mov r0, #0x3a
+ mov r1, #0x1
+ lsl r0, r0, #0x4
+ strb r1, [r2, r0]
+_0202DCF0:
+ bx lr
+ nop
+_0202DCF4: .word 0x021C59E4
+
+ thumb_func_start FUN_0202DCF8
+FUN_0202DCF8: ; 0x0202DCF8
+ ldr r0, _0202DD04 ; =0x021C59E4
+ ldr r1, [r0, #0x0]
+ mov r0, #0x3a
+ lsl r0, r0, #0x4
+ ldrb r0, [r1, r0]
+ bx lr
+ .balign 4
+_0202DD04: .word 0x021C59E4
+
+ thumb_func_start FUN_0202DD08
+FUN_0202DD08: ; 0x0202DD08
+ push {r3-r5, lr}
+ ldr r1, _0202DD78 ; =0x021C59E4
+ add r4, r2, #0x0
+ ldr r1, [r1, #0x0]
+ cmp r1, #0x0
+ beq _0202DD74
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ bl FUN_02030E7C
+ cmp r0, #0x0
+ beq _0202DD74
+ ldr r1, _0202DD78 ; =0x021C59E4
+ mov r2, #0x68
+ ldr r5, [r1, #0x0]
+ add r1, r4, #0x0
+ add r1, #0x62
+ ldrb r1, [r1, #0x0]
+ add r5, #0x8
+ add r0, r4, #0x0
+ add r3, r1, #0x0
+ mul r3, r2
+ add r1, r5, r3
+ blx MI_CpuCopy8
+ add r4, #0x62
+ ldr r2, _0202DD78 ; =0x021C59E4
+ ldrb r3, [r4, #0x0]
+ ldr r0, [r2, #0x0]
+ ldr r1, _0202DD7C ; =0x000003A2
+ strb r3, [r0, r1]
+ add r0, r1, #0x0
+ ldr r3, [r2, #0x0]
+ sub r0, #0xa
+ add r4, r3, r0
+ ldrb r3, [r3, r1]
+ ldrb r0, [r4, r3]
+ cmp r0, #0x2
+ bhs _0202DD74
+ mov r0, #0x1
+ strb r0, [r4, r3]
+ ldr r0, [r2, #0x0]
+ ldrb r4, [r0, r1]
+ bl FUN_02031190
+ cmp r4, r0
+ bne _0202DD74
+ ldr r0, _0202DD78 ; =0x021C59E4
+ mov r2, #0x3
+ ldr r0, [r0, #0x0]
+ add r1, r0, r4
+ mov r0, #0xe6
+ lsl r0, r0, #0x2
+ strb r2, [r1, r0]
+_0202DD74:
+ pop {r3-r5, pc}
+ nop
+_0202DD78: .word 0x021C59E4
+_0202DD7C: .word 0x000003A2
+
+ thumb_func_start FUN_0202DD80
+FUN_0202DD80: ; 0x0202DD80
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ ldr r0, _0202DDE0 ; =0x021C59E4
+ ldr r1, [r0, #0x0]
+ cmp r1, #0x0
+ beq _0202DDDC
+ mov r3, #0x68
+ add r4, r5, #0x0
+ add r0, r2, #0x0
+ mul r4, r3
+ add r1, #0x8
+ add r1, r1, r4
+ add r2, r3, #0x0
+ blx MI_CpuCopy8
+ ldr r0, _0202DDE0 ; =0x021C59E4
+ add r1, r5, #0x0
+ ldr r0, [r0, #0x0]
+ add r0, #0x64
+ add r0, r0, r4
+ bl FUN_0202EFAC
+ ldr r0, _0202DDE0 ; =0x021C59E4
+ mov r2, #0x1
+ ldr r0, [r0, #0x0]
+ add r1, r0, r5
+ mov r0, #0xe6
+ lsl r0, r0, #0x2
+ strb r2, [r1, r0]
+ bl FUN_02031190
+ cmp r5, r0
+ bne _0202DDD2
+ ldr r0, _0202DDE0 ; =0x021C59E4
+ mov r2, #0x3
+ ldr r0, [r0, #0x0]
+ add r1, r0, r5
+ mov r0, #0xe6
+ lsl r0, r0, #0x2
+ strb r2, [r1, r0]
+ pop {r3-r5, pc}
+_0202DDD2:
+ ldr r0, _0202DDE0 ; =0x021C59E4
+ mov r2, #0x1
+ ldr r1, [r0, #0x0]
+ ldr r0, _0202DDE4 ; =0x000003A1
+ strb r2, [r1, r0]
+_0202DDDC:
+ pop {r3-r5, pc}
+ nop
+_0202DDE0: .word 0x021C59E4
+_0202DDE4: .word 0x000003A1
+
+ thumb_func_start FUN_0202DDE8
+FUN_0202DDE8: ; 0x0202DDE8
+ push {r3-r7, lr}
+ ldr r0, _0202DE70 ; =0x021C59E4
+ ldr r1, [r0, #0x0]
+ ldr r0, _0202DE74 ; =0x000003A1
+ ldrb r0, [r1, r0]
+ cmp r0, #0x0
+ bne _0202DDFA
+ mov r0, #0x0
+ pop {r3-r7, pc}
+_0202DDFA:
+ mov r0, #0x5
+ bl FUN_02031354
+ cmp r0, #0x0
+ bne _0202DE6C
+ mov r4, #0x0
+ add r5, r4, #0x0
+ add r7, r4, #0x0
+_0202DE0A:
+ ldr r0, _0202DE70 ; =0x021C59E4
+ ldr r2, [r0, #0x0]
+ mov r0, #0xe6
+ add r1, r2, r4
+ lsl r0, r0, #0x2
+ ldrb r0, [r1, r0]
+ cmp r0, #0x0
+ beq _0202DE4A
+ add r0, r2, r5
+ add r0, #0x6a
+ strb r4, [r0, #0x0]
+ ldr r0, _0202DE70 ; =0x021C59E4
+ ldr r6, [r0, #0x0]
+ bl FUN_02023924
+ add r2, r0, #0x0
+ mov r0, #0xd2
+ add r1, r6, r7
+ lsl r0, r0, #0x2
+ ldr r0, [r1, r0]
+ add r6, #0x28
+ add r1, r6, r5
+ blx MI_CpuCopy8
+ ldr r1, _0202DE70 ; =0x021C59E4
+ mov r0, #0x4
+ ldr r1, [r1, #0x0]
+ mov r2, #0x68
+ add r1, #0x8
+ add r1, r1, r5
+ bl FUN_02031000
+_0202DE4A:
+ add r4, r4, #0x1
+ add r5, #0x68
+ add r7, r7, #0x4
+ cmp r4, #0x8
+ blt _0202DE0A
+ mov r1, #0x0
+ mov r0, #0x5
+ add r2, r1, #0x0
+ bl FUN_02031000
+ ldr r0, _0202DE70 ; =0x021C59E4
+ mov r2, #0x0
+ ldr r1, [r0, #0x0]
+ ldr r0, _0202DE74 ; =0x000003A1
+ strb r2, [r1, r0]
+ mov r0, #0x1
+ pop {r3-r7, pc}
+_0202DE6C:
+ mov r0, #0x0
+ pop {r3-r7, pc}
+ .balign 4
+_0202DE70: .word 0x021C59E4
+_0202DE74: .word 0x000003A1
+
+ thumb_func_start FUN_0202DE78
+FUN_0202DE78: ; 0x0202DE78
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r0, _0202DEA0 ; =0x021C59E4
+ ldr r1, [r0, #0x0]
+ lsl r0, r4, #0x2
+ add r1, r1, r0
+ mov r0, #0xd2
+ lsl r0, r0, #0x2
+ ldr r0, [r1, r0]
+ bl FUN_02023948
+ ldr r0, _0202DEA0 ; =0x021C59E4
+ mov r2, #0x0
+ ldr r0, [r0, #0x0]
+ add r1, r0, r4
+ mov r0, #0xe6
+ lsl r0, r0, #0x2
+ strb r2, [r1, r0]
+ pop {r4, pc}
+ nop
+_0202DEA0: .word 0x021C59E4
+
+ thumb_func_start FUN_0202DEA4
+FUN_0202DEA4: ; 0x0202DEA4
+ ldr r1, _0202DEBC ; =0x021C59E4
+ ldr r1, [r1, #0x0]
+ add r1, r1, r0
+ mov r0, #0xe6
+ lsl r0, r0, #0x2
+ ldrb r0, [r1, r0]
+ cmp r0, #0x1
+ bne _0202DEB8
+ mov r0, #0x1
+ bx lr
+_0202DEB8:
+ mov r0, #0x0
+ bx lr
+ .balign 4
+_0202DEBC: .word 0x021C59E4
+
+ thumb_func_start FUN_0202DEC0
+FUN_0202DEC0: ; 0x0202DEC0
+ ldr r1, _0202DEDC ; =0x021C59E4
+ mov r2, #0x1
+ ldr r1, [r1, #0x0]
+ add r1, r1, r0
+ mov r0, #0xe6
+ lsl r0, r0, #0x2
+ ldrb r0, [r1, r0]
+ cmp r0, #0x2
+ beq _0202DED8
+ cmp r0, #0x1
+ beq _0202DED8
+ mov r2, #0x0
+_0202DED8:
+ add r0, r2, #0x0
+ bx lr
+ .balign 4
+_0202DEDC: .word 0x021C59E4
+
+ thumb_func_start FUN_0202DEE0
+FUN_0202DEE0: ; 0x0202DEE0
+ ldr r1, _0202DEF0 ; =0x021C59E4
+ mov r2, #0x2
+ ldr r1, [r1, #0x0]
+ add r1, r1, r0
+ mov r0, #0xe6
+ lsl r0, r0, #0x2
+ strb r2, [r1, r0]
+ bx lr
+ .balign 4
+_0202DEF0: .word 0x021C59E4
+
+ thumb_func_start FUN_0202DEF4
+FUN_0202DEF4: ; 0x0202DEF4
+ ldr r1, _0202DF04 ; =0x021C59E4
+ mov r2, #0x3
+ ldr r1, [r1, #0x0]
+ add r1, r1, r0
+ mov r0, #0xe6
+ lsl r0, r0, #0x2
+ strb r2, [r1, r0]
+ bx lr
+ .balign 4
+_0202DF04: .word 0x021C59E4
+
+ thumb_func_start FUN_0202DF08
+FUN_0202DF08: ; 0x0202DF08
+ ldr r1, _0202DF24 ; =0x021C59E4
+ mov r0, #0x0
+ ldr r3, [r1, #0x0]
+ mov r1, #0xe6
+ lsl r1, r1, #0x2
+_0202DF12:
+ ldrb r2, [r3, r1]
+ cmp r2, #0x1
+ beq _0202DF22
+ add r0, r0, #0x1
+ add r3, r3, #0x1
+ cmp r0, #0x8
+ blt _0202DF12
+ mov r0, #0xff
+_0202DF22:
+ bx lr
+ .balign 4
+_0202DF24: .word 0x021C59E4
+
+ thumb_func_start FUN_0202DF28
+FUN_0202DF28: ; 0x0202DF28
+ push {r3-r4}
+ ldr r1, _0202DF50 ; =0x021C59E4
+ mov r0, #0x0
+ ldr r4, [r1, #0x0]
+ mov r1, #0xe6
+ add r3, r0, #0x0
+ lsl r1, r1, #0x2
+_0202DF36:
+ ldrb r2, [r4, r1]
+ cmp r2, #0x2
+ beq _0202DF40
+ cmp r2, #0x3
+ bne _0202DF42
+_0202DF40:
+ add r0, r0, #0x1
+_0202DF42:
+ add r3, r3, #0x1
+ add r4, r4, #0x1
+ cmp r3, #0x8
+ blt _0202DF36
+ pop {r3-r4}
+ bx lr
+ nop
+_0202DF50: .word 0x021C59E4
+
+ thumb_func_start FUN_0202DF54
+FUN_0202DF54: ; 0x0202DF54
+ push {r4-r6, lr}
+ ldr r0, _0202DFA0 ; =0x021C59E4
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ beq _0202DF9C
+ bl FUN_02030F20
+ cmp r0, #0x0
+ beq _0202DF9C
+ mov r6, #0xe6
+ ldr r4, _0202DFA0 ; =0x021C59E4
+ mov r5, #0x0
+ lsl r6, r6, #0x2
+_0202DF6E:
+ lsl r0, r5, #0x10
+ lsr r0, r0, #0x10
+ bl FUN_02030E7C
+ cmp r0, #0x0
+ bne _0202DF96
+ cmp r5, #0x0
+ bne _0202DF86
+ bl FUN_02031280
+ cmp r0, #0x0
+ bne _0202DF96
+_0202DF86:
+ ldr r0, [r4, #0x0]
+ add r0, r0, r5
+ ldrb r0, [r0, r6]
+ cmp r0, #0x0
+ beq _0202DF96
+ add r0, r5, #0x0
+ bl FUN_0202DE78
+_0202DF96:
+ add r5, r5, #0x1
+ cmp r5, #0x8
+ blt _0202DF6E
+_0202DF9C:
+ pop {r4-r6, pc}
+ nop
+_0202DFA0: .word 0x021C59E4
+
+ thumb_func_start FUN_0202DFA4
+FUN_0202DFA4: ; 0x0202DFA4
+ ldr r1, _0202DFD4 ; =0x021C59E4
+ ldr r3, [r1, #0x0]
+ cmp r3, #0x0
+ bne _0202DFB0
+ mov r0, #0x0
+ bx lr
+_0202DFB0:
+ mov r1, #0xe6
+ add r2, r3, r0
+ lsl r1, r1, #0x2
+ ldrb r1, [r2, r1]
+ cmp r1, #0x1
+ beq _0202DFC4
+ cmp r1, #0x2
+ beq _0202DFC4
+ cmp r1, #0x3
+ bne _0202DFD0
+_0202DFC4:
+ lsl r0, r0, #0x2
+ add r1, r3, r0
+ mov r0, #0xd2
+ lsl r0, r0, #0x2
+ ldr r0, [r1, r0]
+ bx lr
+_0202DFD0:
+ mov r0, #0x0
+ bx lr
+ .balign 4
+_0202DFD4: .word 0x021C59E4
+
+ thumb_func_start FUN_0202DFD8
+FUN_0202DFD8: ; 0x0202DFD8
+ ldr r1, _0202DFF8 ; =0x021C59E4
+ ldr r3, [r1, #0x0]
+ mov r1, #0xe6
+ add r2, r3, r0
+ lsl r1, r1, #0x2
+ ldrb r1, [r2, r1]
+ cmp r1, #0x0
+ beq _0202DFF2
+ mov r1, #0x68
+ add r3, #0x48
+ mul r1, r0
+ add r0, r3, r1
+ bx lr
+_0202DFF2:
+ mov r0, #0x0
+ bx lr
+ nop
+_0202DFF8: .word 0x021C59E4
+
+ thumb_func_start FUN_0202DFFC
+FUN_0202DFFC: ; 0x0202DFFC
+ ldr r1, _0202E01C ; =0x021C59E4
+ ldr r3, [r1, #0x0]
+ mov r1, #0xe6
+ add r2, r3, r0
+ lsl r1, r1, #0x2
+ ldrb r1, [r2, r1]
+ cmp r1, #0x0
+ beq _0202E016
+ mov r1, #0x68
+ add r3, #0x54
+ mul r1, r0
+ add r0, r3, r1
+ bx lr
+_0202E016:
+ mov r0, #0x0
+ bx lr
+ nop
+_0202E01C: .word 0x021C59E4
+
+ thumb_func_start FUN_0202E020
+FUN_0202E020: ; 0x0202E020
+ ldr r1, _0202E040 ; =0x021C59E4
+ ldr r3, [r1, #0x0]
+ mov r1, #0xe6
+ add r2, r3, r0
+ lsl r1, r1, #0x2
+ ldrb r1, [r2, r1]
+ cmp r1, #0x0
+ beq _0202E03C
+ mov r1, #0x68
+ mul r1, r0
+ add r0, r3, r1
+ add r0, #0x6b
+ ldrb r0, [r0, #0x0]
+ bx lr
+_0202E03C:
+ mov r0, #0x0
+ bx lr
+ .balign 4
+_0202E040: .word 0x021C59E4
+
+ thumb_func_start FUN_0202E044
+FUN_0202E044: ; 0x0202E044
+ ldr r1, _0202E064 ; =0x021C59E4
+ ldr r3, [r1, #0x0]
+ mov r1, #0xe6
+ add r2, r3, r0
+ lsl r1, r1, #0x2
+ ldrb r1, [r2, r1]
+ cmp r1, #0x0
+ beq _0202E060
+ mov r1, #0x68
+ mul r1, r0
+ add r0, r3, r1
+ add r0, #0x6c
+ ldrb r0, [r0, #0x0]
+ bx lr
+_0202E060:
+ mov r0, #0x0
+ bx lr
+ .balign 4
+_0202E064: .word 0x021C59E4
+
+ thumb_func_start FUN_0202E068
+FUN_0202E068: ; 0x0202E068
+ ldr r1, _0202E088 ; =0x021C59E4
+ ldr r3, [r1, #0x0]
+ mov r1, #0xe6
+ add r2, r3, r0
+ lsl r1, r1, #0x2
+ ldrb r1, [r2, r1]
+ cmp r1, #0x0
+ beq _0202E084
+ mov r1, #0x68
+ mul r1, r0
+ add r0, r3, r1
+ add r0, #0x6d
+ ldrb r0, [r0, #0x0]
+ bx lr
+_0202E084:
+ mov r0, #0x0
+ bx lr
+ .balign 4
+_0202E088: .word 0x021C59E4
+
+ thumb_func_start FUN_0202E08C
+FUN_0202E08C: ; 0x0202E08C
+ push {r4-r6, lr}
+ mov r4, #0x0
+ add r5, r4, #0x0
+ add r6, r4, #0x0
+_0202E094:
+ lsl r0, r4, #0x10
+ lsr r0, r0, #0x10
+ bl FUN_02030E7C
+ cmp r0, #0x0
+ beq _0202E0E8
+ ldr r0, _0202E0F4 ; =0x021C59E4
+ ldr r0, [r0, #0x0]
+ add r1, r0, r4
+ mov r0, #0xe6
+ lsl r0, r0, #0x2
+ ldrb r0, [r1, r0]
+ cmp r0, #0x0
+ beq _0202E0E8
+ add r0, r4, #0x1
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ bl FUN_02030E7C
+ cmp r0, #0x0
+ beq _0202E0E8
+ ldr r0, _0202E0F4 ; =0x021C59E4
+ ldr r1, _0202E0F8 ; =0x00000399
+ ldr r0, [r0, #0x0]
+ add r2, r0, r4
+ ldrb r1, [r2, r1]
+ cmp r1, #0x0
+ beq _0202E0E8
+ add r1, r6, #0x0
+ add r2, r0, r5
+_0202E0D0:
+ add r3, r2, #0x0
+ add r3, #0x70
+ ldrb r0, [r2, #0x8]
+ ldrb r3, [r3, #0x0]
+ cmp r0, r3
+ beq _0202E0E0
+ mov r0, #0x0
+ pop {r4-r6, pc}
+_0202E0E0:
+ add r1, r1, #0x1
+ add r2, r2, #0x1
+ cmp r1, #0x20
+ blt _0202E0D0
+_0202E0E8:
+ add r4, r4, #0x1
+ add r5, #0x68
+ cmp r4, #0x7
+ blt _0202E094
+ mov r0, #0x1
+ pop {r4-r6, pc}
+ .balign 4
+_0202E0F4: .word 0x021C59E4
+_0202E0F8: .word 0x00000399
+
+ thumb_func_start FUN_0202E0FC
+FUN_0202E0FC: ; 0x0202E0FC
+ push {r3-r7, lr}
+ add r7, r0, #0x0
+ ldr r0, _0202E1B4 ; =0x021C59E4
+ add r6, r1, #0x0
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ beq _0202E1B0
+ cmp r7, #0x2
+ beq _0202E11C
+ bl FUN_02031190
+ bl FUN_020313CC
+ mov r1, #0x1
+ and r0, r1
+ str r0, [sp, #0x0]
+_0202E11C:
+ mov r4, #0x0
+ bl FUN_02030F20
+ cmp r0, #0x0
+ ble _0202E1B0
+ add r5, r4, #0x0
+_0202E128:
+ lsl r0, r4, #0x10
+ lsr r0, r0, #0x10
+ bl FUN_02030E7C
+ cmp r0, #0x0
+ beq _0202E1A4
+ ldr r0, _0202E1B4 ; =0x021C59E4
+ mov r1, #0xe6
+ ldr r0, [r0, #0x0]
+ lsl r1, r1, #0x2
+ add r2, r0, r4
+ ldrb r1, [r2, r1]
+ cmp r1, #0x0
+ beq _0202E1A4
+ cmp r7, #0x0
+ bne _0202E16E
+ add r0, r4, #0x0
+ bl FUN_020313CC
+ mov r1, #0x1
+ and r1, r0
+ ldr r0, [sp, #0x0]
+ cmp r0, r1
+ beq _0202E1A4
+ ldr r0, _0202E1B4 ; =0x021C59E4
+ mov r1, #0xda
+ ldr r0, [r0, #0x0]
+ lsl r1, r1, #0x2
+ add r0, r0, r5
+ ldrh r1, [r0, r1]
+ add r2, r1, r6
+ mov r1, #0xda
+ lsl r1, r1, #0x2
+ strh r2, [r0, r1]
+ b _0202E1A4
+_0202E16E:
+ cmp r7, #0x1
+ bne _0202E194
+ add r0, r4, #0x0
+ bl FUN_020313CC
+ mov r1, #0x1
+ and r1, r0
+ ldr r0, [sp, #0x0]
+ cmp r0, r1
+ beq _0202E1A4
+ ldr r0, _0202E1B4 ; =0x021C59E4
+ ldr r1, _0202E1B8 ; =0x0000036A
+ ldr r0, [r0, #0x0]
+ add r0, r0, r5
+ ldrh r1, [r0, r1]
+ add r2, r1, r6
+ ldr r1, _0202E1B8 ; =0x0000036A
+ strh r2, [r0, r1]
+ b _0202E1A4
+_0202E194:
+ mov r1, #0xdb
+ add r0, r0, r5
+ lsl r1, r1, #0x2
+ ldrh r1, [r0, r1]
+ add r2, r1, r6
+ mov r1, #0xdb
+ lsl r1, r1, #0x2
+ strh r2, [r0, r1]
+_0202E1A4:
+ add r5, r5, #0x6
+ add r4, r4, #0x1
+ bl FUN_02030F20
+ cmp r4, r0
+ blt _0202E128
+_0202E1B0:
+ pop {r3-r7, pc}
+ nop
+_0202E1B4: .word 0x021C59E4
+_0202E1B8: .word 0x0000036A
+
+ thumb_func_start FUN_0202E1BC
+FUN_0202E1BC: ; 0x0202E1BC
+ push {r4-r7, lr}
+ sub sp, #0xc
+ add r7, r0, #0x0
+ bl FUN_020286EC
+ str r0, [sp, #0x4]
+ mov r4, #0x0
+ bl FUN_02030F20
+ cmp r0, #0x0
+ ble _0202E224
+ add r5, r4, #0x0
+_0202E1D4:
+ add r0, r4, #0x0
+ bl FUN_0202DFD8
+ add r1, r0, #0x0
+ beq _0202E218
+ add r0, r7, #0x0
+ add r2, sp, #0x8
+ bl FUN_02033874
+ cmp r0, #0x0
+ beq _0202E1EE
+ cmp r0, #0x1
+ bne _0202E218
+_0202E1EE:
+ ldr r0, [sp, #0x8]
+ cmp r0, #0x0
+ bge _0202E1F8
+ bl ErrorHandling
+_0202E1F8:
+ ldr r0, _0202E254 ; =0x021C59E4
+ mov r2, #0xda
+ ldr r0, [r0, #0x0]
+ ldr r3, _0202E258 ; =0x0000036A
+ add r6, r0, r5
+ mov r0, #0xdb
+ lsl r0, r0, #0x2
+ ldrh r0, [r6, r0]
+ lsl r2, r2, #0x2
+ str r0, [sp, #0x0]
+ ldrh r2, [r6, r2]
+ ldrh r3, [r6, r3]
+ ldr r0, [sp, #0x4]
+ ldr r1, [sp, #0x8]
+ bl FUN_02028608
+_0202E218:
+ add r5, r5, #0x6
+ add r4, r4, #0x1
+ bl FUN_02030F20
+ cmp r4, r0
+ blt _0202E1D4
+_0202E224:
+ mov r3, #0xda
+ mov r2, #0x0
+ lsl r3, r3, #0x2
+ ldr r6, _0202E254 ; =0x021C59E4
+ add r1, r2, #0x0
+ add r0, r2, #0x0
+ add r4, r3, #0x2
+ add r5, r3, #0x4
+_0202E234:
+ ldr r7, [r6, #0x0]
+ add r2, r2, #0x1
+ add r7, r7, r1
+ strh r0, [r7, r3]
+ ldr r7, [r6, #0x0]
+ add r7, r7, r1
+ strh r0, [r7, r4]
+ ldr r7, [r6, #0x0]
+ add r7, r7, r1
+ add r1, r1, #0x6
+ strh r0, [r7, r5]
+ cmp r2, #0x8
+ blt _0202E234
+ add sp, #0xc
+ pop {r4-r7, pc}
+ nop
+_0202E254: .word 0x021C59E4
+_0202E258: .word 0x0000036A
+
+ thumb_func_start FUN_0202E25C
+FUN_0202E25C: ; 0x0202E25C
+ push {r4, lr}
+ add r4, r0, #0x0
+ cmp r1, #0x1
+ bne _0202E26E
+ mov r0, #0x0
+ mov r1, #0x1
+ bl FUN_0202E0FC
+ b _0202E27E
+_0202E26E:
+ mov r0, #0x0
+ mvn r0, r0
+ cmp r1, r0
+ bne _0202E27E
+ mov r0, #0x1
+ add r1, r0, #0x0
+ bl FUN_0202E0FC
+_0202E27E:
+ add r0, r4, #0x0
+ bl FUN_0202E1BC
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0202E288
+FUN_0202E288: ; 0x0202E288
+ push {r4, lr}
+ add r4, r0, #0x0
+ mov r0, #0x2
+ bl FUN_0202E0FC
+ add r0, r4, #0x0
+ bl FUN_0202E1BC
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0202E29C
+FUN_0202E29C: ; 0x0202E29C
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r0, _0202E334 ; =0x021C59E8
+ ldr r0, [r0, #0x8]
+ cmp r0, #0x0
+ bne _0202E332
+ mov r1, #0xdb
+ mov r0, #0xf
+ lsl r1, r1, #0x4
+ bl FUN_02016998
+ ldr r1, _0202E334 ; =0x021C59E8
+ mov r2, #0xdb
+ str r0, [r1, #0x8]
+ mov r1, #0x0
+ lsl r2, r2, #0x4
+ blx MI_CpuFill8
+ bl FUN_0202CEEC
+ add r1, r0, #0x0
+ mov r0, #0xf
+ bl FUN_02016998
+ ldr r1, _0202E334 ; =0x021C59E8
+ ldr r2, [r1, #0x8]
+ ldr r1, _0202E338 ; =0x00000CA4
+ str r0, [r2, r1]
+ bl FUN_0202CEEC
+ add r2, r0, #0x0
+ ldr r0, _0202E334 ; =0x021C59E8
+ ldr r1, [r0, #0x8]
+ ldr r0, _0202E338 ; =0x00000CA4
+ ldr r0, [r1, r0]
+ mov r1, #0x0
+ blx MI_CpuFill8
+ bl FUN_02023AC4
+ add r1, r0, #0x0
+ mov r0, #0xf
+ bl FUN_02016998
+ ldr r1, _0202E334 ; =0x021C59E8
+ ldr r2, [r1, #0x8]
+ ldr r1, _0202E33C ; =0x00000CBC
+ str r0, [r2, r1]
+ bl FUN_02023AC4
+ add r2, r0, #0x0
+ ldr r0, _0202E334 ; =0x021C59E8
+ ldr r1, [r0, #0x8]
+ ldr r0, _0202E33C ; =0x00000CBC
+ ldr r0, [r1, r0]
+ mov r1, #0x0
+ blx MI_CpuFill8
+ ldr r2, _0202E334 ; =0x021C59E8
+ mov r1, #0x33
+ ldr r3, _0202E340 ; =0x00000333
+ ldr r0, [r2, #0x8]
+ lsl r1, r1, #0x6
+ str r3, [r0, r1]
+ add r0, r1, #0x0
+ ldr r3, [r2, #0x8]
+ sub r0, #0x8
+ str r4, [r3, r0]
+ ldr r0, [r2, #0x8]
+ sub r1, #0x18
+ add r0, r0, r1
+ bl FUN_02013724
+ bl FUN_0202E500
+_0202E332:
+ pop {r4, pc}
+ .balign 4
+_0202E334: .word 0x021C59E8
+_0202E338: .word 0x00000CA4
+_0202E33C: .word 0x00000CBC
+_0202E340: .word 0x00000333
+
+ thumb_func_start FUN_0202E344
+FUN_0202E344: ; 0x0202E344
+ ldr r0, _0202E354 ; =0x021C59E8
+ ldr r0, [r0, #0x8]
+ cmp r0, #0x0
+ beq _0202E350
+ mov r0, #0x1
+ bx lr
+_0202E350:
+ mov r0, #0x0
+ bx lr
+ .balign 4
+_0202E354: .word 0x021C59E8
+
+ thumb_func_start FUN_0202E358
+FUN_0202E358: ; 0x0202E358
+ push {r4-r5}
+ mov r5, #0x0
+ cmp r2, #0x0
+ ble _0202E378
+_0202E360:
+ ldrb r4, [r0, #0x0]
+ ldrb r3, [r1, #0x0]
+ cmp r4, r3
+ beq _0202E36E
+ mov r0, #0x0
+ pop {r4-r5}
+ bx lr
+_0202E36E:
+ add r5, r5, #0x1
+ add r0, r0, #0x1
+ add r1, r1, #0x1
+ cmp r5, r2
+ blt _0202E360
+_0202E378:
+ mov r0, #0x1
+ pop {r4-r5}
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_0202E380
+FUN_0202E380: ; 0x0202E380
+ push {r3-r7, lr}
+ add r7, r0, #0x0
+ bl FUN_02033534
+ add r5, r0, #0x0
+ bl FUN_0203354C
+ add r4, r7, #0x0
+ add r6, r0, #0x0
+ add r4, #0x50
+ cmp r5, #0xe
+ beq _0202E3C2
+ ldrb r0, [r4, #0x4]
+ bl FUN_0202D8B0
+ cmp r0, #0x0
+ beq _0202E3AC
+ add r0, r5, #0x0
+ bl FUN_0202D8B0
+ cmp r0, #0x0
+ bne _0202E3C2
+_0202E3AC:
+ add r0, r4, #0x0
+ add r0, #0x54
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x0
+ beq _0202E3BC
+ ldrb r0, [r4, #0x4]
+ cmp r0, #0xa
+ beq _0202E460
+_0202E3BC:
+ ldrb r0, [r4, #0x4]
+ cmp r0, r5
+ bne _0202E460
+_0202E3C2:
+ cmp r5, #0xe
+ beq _0202E3CC
+ ldrb r0, [r4, #0x5]
+ cmp r0, r6
+ bne _0202E460
+_0202E3CC:
+ mov r6, #0x0
+ add r4, r6, #0x0
+ add r5, r6, #0x0
+_0202E3D2:
+ ldr r0, _0202E464 ; =0x021C59E8
+ ldr r1, _0202E468 ; =0x00000C84
+ ldr r0, [r0, #0x8]
+ add r2, r0, r4
+ ldrh r1, [r2, r1]
+ cmp r1, #0x0
+ beq _0202E412
+ add r0, #0x58
+ add r0, r0, r5
+ add r1, r7, #0x4
+ mov r2, #0x6
+ bl FUN_0202E358
+ cmp r0, #0x0
+ beq _0202E412
+ ldr r2, _0202E464 ; =0x021C59E8
+ lsl r1, r6, #0x1
+ ldr r3, [r2, #0x8]
+ mov r0, #0x96
+ add r3, r3, r1
+ ldr r1, _0202E468 ; =0x00000C84
+ strh r0, [r3, r1]
+ ldr r3, [r2, #0x8]
+ mov r2, #0xc0
+ add r1, r6, #0x0
+ add r3, #0x54
+ mul r1, r2
+ add r0, r7, #0x0
+ add r1, r3, r1
+ blx MI_CpuCopy8
+ pop {r3-r7, pc}
+_0202E412:
+ add r6, r6, #0x1
+ add r4, r4, #0x2
+ add r5, #0xc0
+ cmp r6, #0x10
+ blt _0202E3D2
+ ldr r0, _0202E464 ; =0x021C59E8
+ ldr r2, _0202E468 ; =0x00000C84
+ ldr r0, [r0, #0x8]
+ mov r1, #0x0
+ add r4, r0, #0x0
+_0202E426:
+ ldrh r3, [r4, r2]
+ cmp r3, #0x0
+ beq _0202E434
+ add r1, r1, #0x1
+ add r4, r4, #0x2
+ cmp r1, #0x10
+ blt _0202E426
+_0202E434:
+ cmp r1, #0x10
+ bge _0202E460
+ lsl r2, r1, #0x1
+ add r2, r0, r2
+ ldr r0, _0202E468 ; =0x00000C84
+ mov r3, #0x96
+ strh r3, [r2, r0]
+ ldr r2, _0202E464 ; =0x021C59E8
+ add r3, r1, #0x0
+ ldr r4, [r2, #0x8]
+ mov r2, #0xc0
+ add r4, #0x54
+ mul r3, r2
+ add r0, r7, #0x0
+ add r1, r4, r3
+ blx MI_CpuCopy8
+ ldr r0, _0202E464 ; =0x021C59E8
+ mov r2, #0x1
+ ldr r1, [r0, #0x8]
+ ldr r0, _0202E46C ; =0x00000CB4
+ strb r2, [r1, r0]
+_0202E460:
+ pop {r3-r7, pc}
+ nop
+_0202E464: .word 0x021C59E8
+_0202E468: .word 0x00000C84
+_0202E46C: .word 0x00000CB4
+
+ thumb_func_start FUN_0202E470
+FUN_0202E470: ; 0x0202E470
+ push {r3, lr}
+ cmp r1, #0x0
+ beq _0202E47A
+ blx OS_Terminate
+_0202E47A:
+ ldr r0, _0202E484 ; =0x021C59E8
+ mov r1, #0x2
+ str r1, [r0, #0x4]
+ pop {r3, pc}
+ nop
+_0202E484: .word 0x021C59E8
+
+ thumb_func_start FUN_0202E488
+FUN_0202E488: ; 0x0202E488
+ ldr r0, _0202E494 ; =0x021C59E8
+ mov r1, #0x0
+ str r1, [r0, #0x4]
+ ldr r3, _0202E498 ; =FUN_02016454
+ mov r0, #0x4
+ bx r3
+ .balign 4
+_0202E494: .word 0x021C59E8
+_0202E498: .word FUN_02016454
+
+ thumb_func_start FUN_0202E49C
+FUN_0202E49C: ; 0x0202E49C
+ push {r3, lr}
+ mov r0, #0x4
+ bl FUN_02016444
+ ldr r0, _0202E4C0 ; =0x021C59E8
+ mov r1, #0x1
+ str r1, [r0, #0x4]
+ ldr r1, _0202E4C4 ; =FUN_0202E470
+ mov r0, #0x8
+ mov r2, #0x0
+ blx FUN_02090DB8
+ cmp r0, #0x1
+ beq _0202E4BC
+ blx OS_Terminate
+_0202E4BC:
+ pop {r3, pc}
+ nop
+_0202E4C0: .word 0x021C59E8
+_0202E4C4: .word FUN_0202E470
+
+ thumb_func_start FUN_0202E4C8
+FUN_0202E4C8: ; 0x0202E4C8
+ ldr r0, _0202E4D8 ; =0x021C59E8
+ ldr r0, [r0, #0x4]
+ cmp r0, #0x2
+ bne _0202E4D4
+ mov r0, #0x1
+ bx lr
+_0202E4D4:
+ mov r0, #0x0
+ bx lr
+ .balign 4
+_0202E4D8: .word 0x021C59E8
+
+ thumb_func_start FUN_0202E4DC
+FUN_0202E4DC: ; 0x0202E4DC
+ ldr r0, _0202E4EC ; =0x021C59E8
+ ldr r0, [r0, #0x4]
+ cmp r0, #0x0
+ beq _0202E4E8
+ mov r0, #0x1
+ bx lr
+_0202E4E8:
+ mov r0, #0x0
+ bx lr
+ .balign 4
+_0202E4EC: .word 0x021C59E8
+
+ thumb_func_start FUN_0202E4F0
+FUN_0202E4F0: ; 0x0202E4F0
+ ldr r3, _0202E4F8 ; =FUN_02090CC8
+ ldr r0, _0202E4FC ; =FUN_0202E488
+ mov r1, #0x0
+ bx r3
+ .balign 4
+_0202E4F8: .word FUN_02090CC8
+_0202E4FC: .word FUN_0202E488
+
+ thumb_func_start FUN_0202E500
+FUN_0202E500: ; 0x0202E500
+ push {r3, lr}
+ ldr r1, _0202E534 ; =0x021C59E8
+ mov r0, #0xcb
+ ldr r2, [r1, #0x8]
+ mov r3, #0x0
+ lsl r0, r0, #0x4
+ str r3, [r2, r0]
+ ldr r1, [r1, #0x8]
+ sub r0, #0xc
+ ldr r2, [r1, r0]
+ mov r0, #0x1f
+ add r1, r2, #0x0
+ and r1, r0
+ mov r0, #0x20
+ sub r0, r0, r1
+ add r0, r2, r0
+ bl FUN_0202CE64
+ ldr r0, _0202E534 ; =0x021C59E8
+ ldr r1, [r0, #0x8]
+ mov r0, #0x33
+ lsl r0, r0, #0x6
+ ldr r0, [r1, r0]
+ bl FUN_0202CB70
+ pop {r3, pc}
+ .balign 4
+_0202E534: .word 0x021C59E8
+
+ thumb_func_start FUN_0202E538
+FUN_0202E538: ; 0x0202E538
+ push {r3-r5, lr}
+ mov r4, #0x0
+ ldr r2, _0202E564 ; =0x021C59E8
+ ldr r0, _0202E568 ; =0x00000C84
+ add r5, r4, #0x0
+ add r1, r4, #0x0
+_0202E544:
+ ldr r3, [r2, #0x8]
+ add r4, r4, #0x1
+ add r3, r3, r5
+ add r5, r5, #0x2
+ strh r1, [r3, r0]
+ cmp r4, #0x10
+ blt _0202E544
+ ldr r0, _0202E564 ; =0x021C59E8
+ mov r2, #0x3
+ ldr r0, [r0, #0x8]
+ lsl r2, r2, #0xa
+ add r0, #0x54
+ blx MI_CpuFill8
+ pop {r3-r5, pc}
+ nop
+_0202E564: .word 0x021C59E8
+_0202E568: .word 0x00000C84
+
+ thumb_func_start FUN_0202E56C
+FUN_0202E56C: ; 0x0202E56C
+ push {r3-r4}
+ ldr r1, _0202E58C ; =0x021C59E8
+ lsl r0, r0, #0x18
+ ldr r2, [r1, #0x8]
+ ldr r4, _0202E590 ; =0x00000DAD
+ lsr r0, r0, #0x18
+ ldrb r1, [r2, r4]
+ mov r3, #0x8
+ lsl r0, r0, #0x1f
+ bic r1, r3
+ lsr r0, r0, #0x1c
+ orr r0, r1
+ strb r0, [r2, r4]
+ pop {r3-r4}
+ bx lr
+ nop
+_0202E58C: .word 0x021C59E8
+_0202E590: .word 0x00000DAD
+
+ thumb_func_start FUN_0202E594
+FUN_0202E594: ; 0x0202E594
+ push {r4-r5}
+ ldr r1, _0202E5F0 ; =0x021C59E8
+ ldr r0, _0202E5F4 ; =0x00000CB4
+ ldr r3, [r1, #0x8]
+ mov r2, #0x0
+ strb r2, [r3, r0]
+ add r3, r0, #0x0
+ ldr r5, [r1, #0x8]
+ add r3, #0xf9
+ ldrb r4, [r5, r3]
+ mov r3, #0x1
+ bic r4, r3
+ add r3, r0, #0x0
+ add r3, #0xf9
+ strb r4, [r5, r3]
+ add r3, r0, #0x0
+ ldr r5, [r1, #0x8]
+ add r3, #0xf9
+ ldrb r4, [r5, r3]
+ mov r3, #0x4
+ bic r4, r3
+ add r3, r0, #0x0
+ add r3, #0xf9
+ strb r4, [r5, r3]
+ add r3, r0, #0x0
+ ldr r4, [r1, #0x8]
+ add r3, #0xf6
+ strb r2, [r4, r3]
+ add r3, r0, #0x0
+ ldr r5, [r1, #0x8]
+ add r3, #0xf9
+ ldrb r4, [r5, r3]
+ mov r3, #0x10
+ bic r4, r3
+ add r3, r0, #0x0
+ add r3, #0xf9
+ strb r4, [r5, r3]
+ add r3, r0, #0x0
+ ldr r4, [r1, #0x8]
+ add r3, #0xf8
+ strb r2, [r4, r3]
+ ldr r1, [r1, #0x8]
+ add r0, #0xf7
+ strb r2, [r1, r0]
+ pop {r4-r5}
+ bx lr
+ .balign 4
+_0202E5F0: .word 0x021C59E8
+_0202E5F4: .word 0x00000CB4
+
+ thumb_func_start FUN_0202E5F8
+FUN_0202E5F8: ; 0x0202E5F8
+ push {r3-r5, lr}
+ add r5, r1, #0x0
+ add r4, r2, #0x0
+ bl FUN_0202E594
+ add r0, r5, #0x0
+ bl FUN_0202E56C
+ bl FUN_0202D2F4
+ ldr r0, _0202E65C ; =0x021C59E8
+ ldr r1, [r0, #0x8]
+ ldr r0, _0202E660 ; =0x00000DAB
+ ldrb r0, [r1, r0]
+ cmp r0, #0x0
+ bne _0202E62A
+ ldr r0, _0202E664 ; =FUN_020303BC
+ mov r1, #0xe
+ bl FUN_0202D0A0
+ ldr r0, _0202E65C ; =0x021C59E8
+ mov r2, #0x1
+ ldr r1, [r0, #0x8]
+ ldr r0, _0202E660 ; =0x00000DAB
+ strb r2, [r1, r0]
+_0202E62A:
+ ldr r0, _0202E65C ; =0x021C59E8
+ ldr r3, _0202E668 ; =0x00000DAD
+ ldr r1, [r0, #0x8]
+ mov r2, #0x20
+ ldrb r0, [r1, r3]
+ bic r0, r2
+ lsl r2, r4, #0x18
+ lsr r2, r2, #0x18
+ lsl r2, r2, #0x1f
+ lsr r2, r2, #0x1a
+ orr r0, r2
+ strb r0, [r1, r3]
+ bl FUN_0202CBD4
+ cmp r0, #0x1
+ bne _0202E656
+ bl FUN_0202CBFC
+ cmp r0, #0x0
+ beq _0202E656
+ mov r0, #0x1
+ pop {r3-r5, pc}
+_0202E656:
+ mov r0, #0x0
+ pop {r3-r5, pc}
+ nop
+_0202E65C: .word 0x021C59E8
+_0202E660: .word 0x00000DAB
+_0202E664: .word FUN_020303BC
+_0202E668: .word 0x00000DAD
+
+ thumb_func_start FUN_0202E66C
+FUN_0202E66C: ; 0x0202E66C
+ push {r4, lr}
+ sub sp, #0x8
+ add r4, r1, #0x0
+ bl FUN_0202E594
+ cmp r4, #0x0
+ beq _0202E67E
+ bl FUN_0202E538
+_0202E67E:
+ ldr r0, _0202E6DC ; =0x021C59E8
+ ldr r1, [r0, #0x8]
+ ldr r0, _0202E6E0 ; =0x00000DAB
+ ldrb r0, [r1, r0]
+ cmp r0, #0x0
+ bne _0202E69C
+ ldr r0, _0202E6E4 ; =FUN_02030238
+ mov r1, #0xe
+ bl FUN_0202D0A0
+ ldr r0, _0202E6DC ; =0x021C59E8
+ mov r2, #0x1
+ ldr r1, [r0, #0x8]
+ ldr r0, _0202E6E0 ; =0x00000DAB
+ strb r2, [r1, r0]
+_0202E69C:
+ bl FUN_0202CBD4
+ cmp r0, #0x1
+ bne _0202E6D4
+ ldr r2, _0202E6E8 ; =0x020EEC40
+ add r0, sp, #0x0
+ ldrb r3, [r2, #0x0]
+ add r1, sp, #0x0
+ strb r3, [r0, #0x0]
+ ldrb r3, [r2, #0x1]
+ strb r3, [r0, #0x1]
+ ldrb r3, [r2, #0x2]
+ strb r3, [r0, #0x2]
+ ldrb r3, [r2, #0x3]
+ strb r3, [r0, #0x3]
+ ldrb r3, [r2, #0x4]
+ ldrb r2, [r2, #0x5]
+ strb r3, [r0, #0x4]
+ strb r2, [r0, #0x5]
+ ldr r0, _0202E6EC ; =FUN_0202E380
+ mov r2, #0x0
+ bl FUN_0202C570
+ cmp r0, #0x0
+ beq _0202E6D4
+ add sp, #0x8
+ mov r0, #0x1
+ pop {r4, pc}
+_0202E6D4:
+ mov r0, #0x0
+ add sp, #0x8
+ pop {r4, pc}
+ nop
+_0202E6DC: .word 0x021C59E8
+_0202E6E0: .word 0x00000DAB
+_0202E6E4: .word FUN_02030238
+_0202E6E8: .word 0x020EEC40
+_0202E6EC: .word FUN_0202E380
+
+ thumb_func_start FUN_0202E6F0
+FUN_0202E6F0: ; 0x0202E6F0
+ push {r3, lr}
+ ldr r0, _0202E77C ; =0x021C59E8
+ ldr r1, [r0, #0x8]
+ cmp r1, #0x0
+ bne _0202E6FE
+ mov r0, #0x1
+ pop {r3, pc}
+_0202E6FE:
+ ldr r0, _0202E780 ; =0x00000DAC
+ ldrb r0, [r1, r0]
+ cmp r0, #0x0
+ beq _0202E710
+ cmp r0, #0x1
+ beq _0202E740
+ cmp r0, #0x2
+ beq _0202E758
+ b _0202E776
+_0202E710:
+ bl FUN_0202D21C
+ cmp r0, #0x0
+ beq _0202E728
+ bl FUN_0202C770
+ ldr r0, _0202E77C ; =0x021C59E8
+ mov r2, #0x1
+ ldr r1, [r0, #0x8]
+ ldr r0, _0202E780 ; =0x00000DAC
+ strb r2, [r1, r0]
+ b _0202E776
+_0202E728:
+ bl FUN_0202D1E4
+ cmp r0, #0x0
+ bne _0202E776
+ bl FUN_0202D100
+ ldr r0, _0202E77C ; =0x021C59E8
+ mov r2, #0x2
+ ldr r1, [r0, #0x8]
+ ldr r0, _0202E780 ; =0x00000DAC
+ strb r2, [r1, r0]
+ b _0202E776
+_0202E740:
+ bl FUN_0202D1E4
+ cmp r0, #0x0
+ bne _0202E776
+ bl FUN_0202D100
+ ldr r0, _0202E77C ; =0x021C59E8
+ mov r2, #0x2
+ ldr r1, [r0, #0x8]
+ ldr r0, _0202E780 ; =0x00000DAC
+ strb r2, [r1, r0]
+ b _0202E776
+_0202E758:
+ bl FUN_0202D1C8
+ cmp r0, #0x0
+ beq _0202E764
+ mov r0, #0x1
+ pop {r3, pc}
+_0202E764:
+ bl FUN_0202D200
+ cmp r0, #0x0
+ beq _0202E776
+ ldr r0, _0202E77C ; =0x021C59E8
+ mov r2, #0x1
+ ldr r1, [r0, #0x8]
+ ldr r0, _0202E780 ; =0x00000DAC
+ strb r2, [r1, r0]
+_0202E776:
+ mov r0, #0x0
+ pop {r3, pc}
+ nop
+_0202E77C: .word 0x021C59E8
+_0202E780: .word 0x00000DAC
+
+ thumb_func_start FUN_0202E784
+FUN_0202E784: ; 0x0202E784
+ push {r3, lr}
+ ldr r0, _0202E7A8 ; =0x021C59E8
+ ldr r2, [r0, #0x8]
+ cmp r2, #0x0
+ beq _0202E7A2
+ ldr r0, _0202E7AC ; =0x00000DAA
+ ldrb r1, [r2, r0]
+ cmp r1, #0x0
+ bne _0202E7A2
+ mov r1, #0x1
+ strb r1, [r2, r0]
+ bl FUN_0202D100
+ mov r0, #0x1
+ pop {r3, pc}
+_0202E7A2:
+ mov r0, #0x0
+ pop {r3, pc}
+ nop
+_0202E7A8: .word 0x021C59E8
+_0202E7AC: .word 0x00000DAA
+
+ thumb_func_start FUN_0202E7B0
+FUN_0202E7B0: ; 0x0202E7B0
+ push {r3, lr}
+ ldr r1, _0202E7D0 ; =0x021C59E8
+ ldr r2, [r1, #0x8]
+ cmp r2, #0x0
+ beq _0202E7CE
+ cmp r0, #0x0
+ ldr r0, _0202E7D4 ; =0x00000DAA
+ beq _0202E7C6
+ mov r1, #0x2
+ strb r1, [r2, r0]
+ pop {r3, pc}
+_0202E7C6:
+ mov r1, #0x0
+ strb r1, [r2, r0]
+ bl FUN_0202E500
+_0202E7CE:
+ pop {r3, pc}
+ .balign 4
+_0202E7D0: .word 0x021C59E8
+_0202E7D4: .word 0x00000DAA
+
+ thumb_func_start FUN_0202E7D8
+FUN_0202E7D8: ; 0x0202E7D8
+ push {r3, lr}
+ ldr r0, _0202E804 ; =0x021C59E8
+ ldr r1, [r0, #0x8]
+ ldr r0, _0202E808 ; =0x00000CBC
+ ldr r0, [r1, r0]
+ bl FUN_02016A18
+ ldr r0, _0202E804 ; =0x021C59E8
+ ldr r1, [r0, #0x8]
+ ldr r0, _0202E80C ; =0x00000CA4
+ ldr r0, [r1, r0]
+ bl FUN_02016A18
+ ldr r0, _0202E804 ; =0x021C59E8
+ ldr r0, [r0, #0x8]
+ bl FUN_02016A18
+ ldr r0, _0202E804 ; =0x021C59E8
+ mov r1, #0x0
+ str r1, [r0, #0x8]
+ pop {r3, pc}
+ nop
+_0202E804: .word 0x021C59E8
+_0202E808: .word 0x00000CBC
+_0202E80C: .word 0x00000CA4
+
+ thumb_func_start FUN_0202E810
+FUN_0202E810: ; 0x0202E810
+ push {r4, lr}
+ bl FUN_02030F40
+ cmp r0, #0x0
+ bne _0202E81E
+ mov r0, #0x0
+ pop {r4, pc}
+_0202E81E:
+ ldr r1, _0202E83C ; =0x021C59E8
+ mov r0, #0x0
+ ldr r4, [r1, #0x8]
+ ldr r1, _0202E840 ; =0x00000C84
+ add r3, r0, #0x0
+_0202E828:
+ ldrh r2, [r4, r1]
+ cmp r2, #0x0
+ beq _0202E830
+ add r0, r0, #0x1
+_0202E830:
+ add r3, r3, #0x1
+ add r4, r4, #0x2
+ cmp r3, #0x10
+ blt _0202E828
+ pop {r4, pc}
+ nop
+_0202E83C: .word 0x021C59E8
+_0202E840: .word 0x00000C84
+
+ thumb_func_start FUN_0202E844
+FUN_0202E844: ; 0x0202E844
+ push {r3-r5, lr}
+ ldr r1, _0202E870 ; =0x021C59E8
+ mov r4, #0x0
+ ldr r5, [r1, #0x8]
+ ldr r1, _0202E874 ; =0x00000C84
+ add r3, r4, #0x0
+_0202E850:
+ ldrh r2, [r5, r1]
+ cmp r2, #0x0
+ beq _0202E860
+ cmp r4, r0
+ bne _0202E85E
+ add r0, r3, #0x0
+ pop {r3-r5, pc}
+_0202E85E:
+ add r4, r4, #0x1
+_0202E860:
+ add r3, r3, #0x1
+ add r5, r5, #0x2
+ cmp r3, #0x10
+ blt _0202E850
+ bl ErrorHandling
+ mov r0, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+_0202E870: .word 0x021C59E8
+_0202E874: .word 0x00000C84
+
+ thumb_func_start FUN_0202E878
+FUN_0202E878: ; 0x0202E878
+ ldr r0, _0202E884 ; =0x021C59E8
+ ldr r1, [r0, #0x8]
+ ldr r0, _0202E888 ; =0x00000CB4
+ ldrb r0, [r1, r0]
+ bx lr
+ nop
+_0202E884: .word 0x021C59E8
+_0202E888: .word 0x00000CB4
+
+ thumb_func_start FUN_0202E88C
+FUN_0202E88C: ; 0x0202E88C
+ ldr r0, _0202E898 ; =0x021C59E8
+ mov r2, #0x0
+ ldr r1, [r0, #0x8]
+ ldr r0, _0202E89C ; =0x00000CB4
+ strb r2, [r1, r0]
+ bx lr
+ .balign 4
+_0202E898: .word 0x021C59E8
+_0202E89C: .word 0x00000CB4
+
+ thumb_func_start FUN_0202E8A0
+FUN_0202E8A0: ; 0x0202E8A0
+ ldr r1, _0202E8C8 ; =0x021C59E8
+ ldr r3, [r1, #0x8]
+ lsl r1, r0, #0x1
+ add r2, r3, r1
+ ldr r1, _0202E8CC ; =0x00000C84
+ ldrh r1, [r2, r1]
+ cmp r1, #0x0
+ beq _0202E8C2
+ mov r1, #0xc0
+ mul r1, r0
+ add r0, r3, r1
+ add r0, #0xaa
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x0
+ bne _0202E8C4
+ mov r0, #0x1
+ bx lr
+_0202E8C2:
+ mov r0, #0x0
+_0202E8C4:
+ bx lr
+ nop
+_0202E8C8: .word 0x021C59E8
+_0202E8CC: .word 0x00000C84
+
+ thumb_func_start FUN_0202E8D0
+FUN_0202E8D0: ; 0x0202E8D0
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ mov r4, #0xf
+_0202E8D6:
+ add r0, r4, #0x0
+ bl FUN_0202E8A0
+ cmp r0, r5
+ ble _0202E8E8
+ cmp r0, #0x8
+ bge _0202E8E8
+ add r0, r4, #0x0
+ pop {r3-r5, pc}
+_0202E8E8:
+ sub r4, r4, #0x1
+ bpl _0202E8D6
+ mov r0, #0x0
+ mvn r0, r0
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_0202E8F4
+FUN_0202E8F4: ; 0x0202E8F4
+ push {r3-r7, lr}
+ bl FUN_0202E810
+ cmp r0, #0x0
+ bne _0202E904
+ mov r0, #0x0
+ mvn r0, r0
+ pop {r3-r7, pc}
+_0202E904:
+ mov r5, #0x2d
+ ldr r7, _0202E948 ; =0x021C59E8
+ mov r6, #0xf
+ mov r4, #0x1e
+ lsl r5, r5, #0x6
+_0202E90E:
+ ldr r0, [r7, #0x8]
+ ldr r1, _0202E94C ; =0x00000C84
+ add r2, r0, r4
+ ldrh r1, [r2, r1]
+ cmp r1, #0x0
+ beq _0202E938
+ add r0, #0x58
+ add r0, r0, r5
+ bl FUN_0202EFE4
+ cmp r0, #0x0
+ beq _0202E938
+ add r0, r6, #0x0
+ bl FUN_0202E8A0
+ cmp r0, #0x1
+ ble _0202E938
+ cmp r0, #0x8
+ bge _0202E938
+ add r0, r6, #0x0
+ pop {r3-r7, pc}
+_0202E938:
+ sub r4, r4, #0x2
+ sub r5, #0xc0
+ sub r6, r6, #0x1
+ bpl _0202E90E
+ mov r0, #0x0
+ mvn r0, r0
+ pop {r3-r7, pc}
+ nop
+_0202E948: .word 0x021C59E8
+_0202E94C: .word 0x00000C84
+
+ thumb_func_start FUN_0202E950
+FUN_0202E950: ; 0x0202E950
+ push {r3-r7, lr}
+ bl FUN_0202E810
+ cmp r0, #0x0
+ bne _0202E960
+ mov r0, #0x0
+ mvn r0, r0
+ pop {r3-r7, pc}
+_0202E960:
+ mov r5, #0x2d
+ ldr r7, _0202E9A4 ; =0x021C59E8
+ mov r6, #0xf
+ mov r4, #0x1e
+ lsl r5, r5, #0x6
+_0202E96A:
+ ldr r0, [r7, #0x8]
+ ldr r1, _0202E9A8 ; =0x00000C84
+ add r2, r0, r4
+ ldrh r1, [r2, r1]
+ cmp r1, #0x0
+ beq _0202E986
+ add r0, #0x58
+ add r0, r0, r5
+ bl FUN_0202EFE4
+ cmp r0, #0x0
+ beq _0202E986
+ add r0, r6, #0x0
+ pop {r3-r7, pc}
+_0202E986:
+ sub r4, r4, #0x2
+ sub r5, #0xc0
+ sub r6, r6, #0x1
+ bpl _0202E96A
+ mov r0, #0x1
+ bl FUN_0202E8D0
+ mov r1, #0x0
+ mvn r1, r1
+ cmp r0, r1
+ bne _0202E9A2
+ mov r0, #0x0
+ bl FUN_0202E8D0
+_0202E9A2:
+ pop {r3-r7, pc}
+ .balign 4
+_0202E9A4: .word 0x021C59E8
+_0202E9A8: .word 0x00000C84
+
+ thumb_func_start FUN_0202E9AC
+FUN_0202E9AC: ; 0x0202E9AC
+ push {r4-r6, lr}
+ add r4, r1, #0x0
+ ldr r1, _0202E9E0 ; =0x021C59E8
+ mov r5, #0x0
+ ldr r6, [r1, #0x8]
+ ldr r1, _0202E9E4 ; =0x00000C84
+ add r3, r5, #0x0
+_0202E9BA:
+ ldrh r2, [r6, r1]
+ cmp r2, #0x0
+ beq _0202E9D4
+ cmp r0, r5
+ bne _0202E9D2
+ add r0, r3, #0x0
+ bl FUN_0202EF84
+ add r1, r4, #0x0
+ bl FUN_0202393C
+ pop {r4-r6, pc}
+_0202E9D2:
+ add r5, r5, #0x1
+_0202E9D4:
+ add r3, r3, #0x1
+ add r6, r6, #0x2
+ cmp r3, #0x10
+ blt _0202E9BA
+ pop {r4-r6, pc}
+ nop
+_0202E9E0: .word 0x021C59E8
+_0202E9E4: .word 0x00000C84
+
+ thumb_func_start FUN_0202E9E8
+FUN_0202E9E8: ; 0x0202E9E8
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ bl FUN_0202CBD4
+ cmp r0, #0x2
+ bne _0202E9FC
+ bl FUN_0202C770
+ mov r0, #0x0
+ pop {r3-r5, pc}
+_0202E9FC:
+ bl FUN_0202CBD4
+ cmp r0, #0x1
+ bne _0202EA48
+ bl FUN_02033534
+ mov r1, #0xc0
+ add r4, r5, #0x0
+ mul r4, r1
+ ldr r1, _0202EA4C ; =0x021C59E8
+ ldr r3, [r1, #0x8]
+ add r1, r3, r4
+ add r1, #0x8a
+ ldrh r2, [r1, #0x0]
+ ldr r1, _0202EA50 ; =0x00000DA8
+ strb r2, [r3, r1]
+ bl FUN_0202D8B0
+ cmp r0, #0x0
+ beq _0202EA36
+ ldr r1, _0202EA4C ; =0x021C59E8
+ mov r0, #0x1
+ ldr r1, [r1, #0x8]
+ mov r2, #0x0
+ add r1, #0x58
+ add r1, r1, r4
+ bl FUN_0202C4D8
+ b _0202EA44
+_0202EA36:
+ ldr r1, _0202EA4C ; =0x021C59E8
+ mov r0, #0x1
+ ldr r1, [r1, #0x8]
+ add r1, #0x54
+ add r1, r1, r4
+ bl FUN_0202D034
+_0202EA44:
+ mov r0, #0x1
+ pop {r3-r5, pc}
+_0202EA48:
+ mov r0, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+_0202EA4C: .word 0x021C59E8
+_0202EA50: .word 0x00000DA8
+
+ thumb_func_start FUN_0202EA54
+FUN_0202EA54: ; 0x0202EA54
+ push {r4-r7}
+ mov r4, #0x0
+ ldr r1, _0202EA90 ; =0x021C59E8
+ ldr r0, _0202EA94 ; =0x00000C84
+ add r5, r4, #0x0
+ mov r2, #0x1
+_0202EA60:
+ ldr r3, [r1, #0x8]
+ add r3, r3, r5
+ ldrh r6, [r3, r0]
+ cmp r6, #0x0
+ beq _0202EA84
+ beq _0202EA84
+ ldr r6, _0202EA94 ; =0x00000C84
+ ldrh r6, [r3, r6]
+ sub r7, r6, #0x1
+ ldr r6, _0202EA94 ; =0x00000C84
+ strh r7, [r3, r6]
+ ldr r3, [r1, #0x8]
+ add r7, r3, r5
+ ldrh r6, [r7, r6]
+ cmp r6, #0x0
+ bne _0202EA84
+ ldr r6, _0202EA98 ; =0x00000CB4
+ strb r2, [r3, r6]
+_0202EA84:
+ add r4, r4, #0x1
+ add r5, r5, #0x2
+ cmp r4, #0x10
+ blt _0202EA60
+ pop {r4-r7}
+ bx lr
+ .balign 4
+_0202EA90: .word 0x021C59E8
+_0202EA94: .word 0x00000C84
+_0202EA98: .word 0x00000CB4
+
+ thumb_func_start FUN_0202EA9C
+FUN_0202EA9C: ; 0x0202EA9C
+ push {r3-r5, lr}
+ bl FUN_02033534
+ add r5, r0, #0x0
+ bl FUN_0202EF70
+ add r4, r0, #0x0
+ cmp r5, #0xf
+ beq _0202EB24
+ ldr r0, _0202EB6C ; =0x021C59E8
+ ldr r1, [r0, #0x8]
+ ldr r0, _0202EB70 ; =0x00000CC4
+ add r5, r1, r0
+ bl FUN_02023AC4
+ cmp r0, #0x20
+ ble _0202EAC2
+ bl ErrorHandling
+_0202EAC2:
+ bl FUN_02023924
+ cmp r0, #0x20
+ beq _0202EACE
+ bl ErrorHandling
+_0202EACE:
+ bl FUN_02023924
+ add r1, r5, #0x0
+ add r2, r0, #0x0
+ add r0, r4, #0x0
+ add r1, #0x10
+ blx MI_CpuCopy8
+ bl FUN_02023AC4
+ add r2, r0, #0x0
+ ldr r0, _0202EB6C ; =0x021C59E8
+ ldr r1, [r0, #0x8]
+ ldr r0, _0202EB74 ; =0x00000CBC
+ ldr r0, [r1, r0]
+ add r1, r5, #0x0
+ add r1, #0x30
+ blx MI_CpuCopy8
+ add r0, r4, #0x0
+ bl FUN_020239BC
+ str r0, [r5, #0x0]
+ bl FUN_02033534
+ strb r0, [r5, #0x4]
+ bl FUN_0203354C
+ strb r0, [r5, #0x5]
+ ldr r0, _0202EB6C ; =0x021C59E8
+ mov r2, #0x8
+ ldr r1, [r0, #0x8]
+ ldr r0, _0202EB78 ; =0x00000CA8
+ add r0, r1, r0
+ add r1, r5, #0x0
+ add r1, #0x8
+ blx MI_CpuCopy8
+ bl FUN_0202D358
+ add r5, #0x54
+ strb r0, [r5, #0x0]
+ b _0202EB4E
+_0202EB24:
+ ldr r1, _0202EB6C ; =0x021C59E8
+ ldr r4, [r1, #0x8]
+ ldr r1, _0202EB70 ; =0x00000CC4
+ add r5, r4, r1
+ bl FUN_020239BC
+ ldr r1, _0202EB70 ; =0x00000CC4
+ str r0, [r4, r1]
+ bl FUN_02033534
+ strb r0, [r5, #0x4]
+ bl FUN_0203354C
+ strb r0, [r5, #0x5]
+ ldr r0, _0202EB6C ; =0x021C59E8
+ add r5, #0x8
+ ldr r0, [r0, #0x8]
+ add r1, r5, #0x0
+ mov r2, #0x54
+ blx MI_CpuCopy8
+_0202EB4E:
+ ldr r0, _0202EB6C ; =0x021C59E8
+ ldr r1, [r0, #0x8]
+ ldr r0, _0202EB70 ; =0x00000CC4
+ add r0, r1, r0
+ mov r1, #0x5c
+ blx DC_FlushRange
+ ldr r0, _0202EB6C ; =0x021C59E8
+ ldr r1, [r0, #0x8]
+ ldr r0, _0202EB70 ; =0x00000CC4
+ add r0, r1, r0
+ mov r1, #0x5c
+ bl FUN_0202CB7C
+ pop {r3-r5, pc}
+ .balign 4
+_0202EB6C: .word 0x021C59E8
+_0202EB70: .word 0x00000CC4
+_0202EB74: .word 0x00000CBC
+_0202EB78: .word 0x00000CA8
+
+ thumb_func_start FUN_0202EB7C
+FUN_0202EB7C: ; 0x0202EB7C
+ push {r4, lr}
+ ldr r0, _0202EBC8 ; =0x021C59E8
+ ldr r1, [r0, #0x8]
+ ldr r0, _0202EBCC ; =0x00000CC4
+ add r4, r1, r0
+ bl FUN_0202EDB8
+ ldrb r1, [r4, #0x6]
+ cmp r1, r0
+ beq _0202EBC6
+ bl FUN_0202EDB8
+ strb r0, [r4, #0x6]
+ ldr r0, _0202EBC8 ; =0x021C59E8
+ ldr r1, [r0, #0x8]
+ ldr r0, _0202EBCC ; =0x00000CC4
+ add r0, r1, r0
+ mov r1, #0x5c
+ blx DC_FlushRange
+ ldr r0, _0202EBC8 ; =0x021C59E8
+ ldr r1, [r0, #0x8]
+ ldr r0, _0202EBCC ; =0x00000CC4
+ add r0, r1, r0
+ mov r1, #0x5c
+ bl FUN_0202CB7C
+ ldr r3, _0202EBC8 ; =0x021C59E8
+ ldr r2, _0202EBCC ; =0x00000CC4
+ ldr r4, [r3, #0x8]
+ ldrh r3, [r3, #0x0]
+ add r0, r4, r2
+ sub r2, r2, #0x4
+ ldr r2, [r4, r2]
+ mov r1, #0x5c
+ bl FUN_0202D240
+_0202EBC6:
+ pop {r4, pc}
+ .balign 4
+_0202EBC8: .word 0x021C59E8
+_0202EBCC: .word 0x00000CC4
+
+ thumb_func_start FUN_0202EBD0
+FUN_0202EBD0: ; 0x0202EBD0
+ push {r3-r5, lr}
+ sub sp, #0x8
+ add r4, r0, #0x0
+ bl FUN_0202CBD4
+ add r5, r0, #0x0
+ bl FUN_0202DF54
+ bl FUN_0202EB7C
+ bl FUN_0202D19C
+ cmp r0, #0x0
+ bne _0202EC0C
+ bl FUN_0202EE24
+ cmp r0, #0x0
+ bne _0202EC0C
+ ldr r0, _0202ED50 ; =0x021C59E8
+ ldr r2, [r0, #0x8]
+ ldr r0, _0202ED54 ; =0x00000DAD
+ ldrb r1, [r2, r0]
+ lsl r3, r1, #0x1d
+ lsr r3, r3, #0x1f
+ beq _0202EC0C
+ mov r3, #0x1
+ bic r1, r3
+ mov r3, #0x1
+ orr r1, r3
+ strb r1, [r2, r0]
+_0202EC0C:
+ ldr r0, _0202ED50 ; =0x021C59E8
+ ldr r1, _0202ED58 ; =0x0000FFFF
+ ldr r3, [r0, #0x8]
+ ldr r0, _0202ED5C ; =0x00000DA6
+ ldrh r2, [r3, r0]
+ cmp r2, r1
+ bne _0202EC1C
+ strh r4, [r3, r0]
+_0202EC1C:
+ ldr r0, _0202ED50 ; =0x021C59E8
+ ldr r2, [r0, #0x8]
+ ldr r0, _0202ED54 ; =0x00000DAD
+ ldrb r1, [r2, r0]
+ lsl r3, r1, #0x1e
+ lsr r3, r3, #0x1f
+ beq _0202EC3C
+ sub r3, r0, #0x7
+ ldrh r3, [r2, r3]
+ cmp r3, r4
+ bls _0202EC3C
+ mov r3, #0x1
+ bic r1, r3
+ mov r3, #0x1
+ orr r1, r3
+ strb r1, [r2, r0]
+_0202EC3C:
+ bl FUN_0202CBE8
+ cmp r0, #0x19
+ bne _0202EC4A
+ mov r0, #0x0
+ bl FUN_020335D0
+_0202EC4A:
+ cmp r5, #0x9
+ bhi _0202ED4C
+ add r0, r5, r5
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0202EC5A: ; jump table (using 16-bit offset)
+ .short _0202EC6E - _0202EC5A - 2; case 0
+ .short _0202EC8E - _0202EC5A - 2; case 1
+ .short _0202ED4C - _0202EC5A - 2; case 2
+ .short _0202ED4C - _0202EC5A - 2; case 3
+ .short _0202ED4C - _0202EC5A - 2; case 4
+ .short _0202ED4C - _0202EC5A - 2; case 5
+ .short _0202ED4C - _0202EC5A - 2; case 6
+ .short _0202ECD2 - _0202EC5A - 2; case 7
+ .short _0202ECB8 - _0202EC5A - 2; case 8
+ .short _0202ECB8 - _0202EC5A - 2; case 9
+_0202EC6E:
+ ldr r0, _0202ED50 ; =0x021C59E8
+ ldr r2, [r0, #0x8]
+ ldr r0, _0202ED60 ; =0x00000DAA
+ ldrb r1, [r2, r0]
+ cmp r1, #0x1
+ bne _0202EC82
+ bl FUN_0202E7D8
+ add sp, #0x8
+ pop {r3-r5, pc}
+_0202EC82:
+ cmp r1, #0x2
+ bne _0202ED4C
+ mov r1, #0x3
+ strb r1, [r2, r0]
+ add sp, #0x8
+ pop {r3-r5, pc}
+_0202EC8E:
+ ldr r0, _0202ED50 ; =0x021C59E8
+ ldr r1, [r0, #0x8]
+ ldr r0, _0202ED60 ; =0x00000DAA
+ ldrb r0, [r1, r0]
+ cmp r0, #0x1
+ bne _0202ECA2
+ bl FUN_0202D178
+ cmp r0, #0x0
+ bne _0202ED4C
+_0202ECA2:
+ ldr r0, _0202ED50 ; =0x021C59E8
+ ldr r1, [r0, #0x8]
+ ldr r0, _0202ED60 ; =0x00000DAA
+ ldrb r0, [r1, r0]
+ cmp r0, #0x2
+ bne _0202ED4C
+ bl FUN_0202D178
+ add sp, #0x8
+ cmp r0, #0x0
+ pop {r3-r5, pc}
+_0202ECB8:
+ ldr r0, _0202ED50 ; =0x021C59E8
+ ldr r3, [r0, #0x8]
+ cmp r3, #0x0
+ beq _0202ED4C
+ ldr r1, _0202ED54 ; =0x00000DAD
+ mov r0, #0x1
+ ldrb r2, [r3, r1]
+ add sp, #0x8
+ bic r2, r0
+ mov r0, #0x1
+ orr r0, r2
+ strb r0, [r3, r1]
+ pop {r3-r5, pc}
+_0202ECD2:
+ bl FUN_0202CDA4
+ ldr r3, _0202ED50 ; =0x021C59E8
+ ldr r2, _0202ED64 ; =0x00000DA9
+ ldr r4, [r3, #0x8]
+ ldrb r1, [r4, r2]
+ cmp r1, #0x0
+ bne _0202ECEE
+ sub r1, r2, #0x5
+ strh r0, [r4, r1]
+ ldr r0, [r3, #0x8]
+ mov r1, #0x5
+ strb r1, [r0, r2]
+ b _0202ECF2
+_0202ECEE:
+ sub r0, r1, #0x1
+ strb r0, [r4, r2]
+_0202ECF2:
+ ldr r1, _0202ED50 ; =0x021C59E8
+ ldr r0, _0202ED68 ; =0x00000DA4
+ ldr r2, [r1, #0x8]
+ ldrh r5, [r2, r0]
+ add r0, #0x9
+ ldrb r0, [r2, r0]
+ lsl r0, r0, #0x1c
+ lsr r0, r0, #0x1f
+ beq _0202ED0A
+ ldrh r0, [r1, #0x0]
+ add r0, r0, #0x1
+ strh r0, [r1, #0x0]
+_0202ED0A:
+ bl FUN_0202EA9C
+ bl FUN_02033534
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ bl FUN_0202D858
+ add r4, r0, #0x0
+ bl FUN_02033534
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ bl FUN_0202EEE8
+ str r0, [sp, #0x0]
+ ldr r1, _0202ED50 ; =0x021C59E8
+ ldr r0, _0202ED54 ; =0x00000DAD
+ ldr r2, [r1, #0x8]
+ add r3, r4, #0x0
+ ldrb r0, [r2, r0]
+ add r2, r5, #0x0
+ lsl r0, r0, #0x1a
+ lsr r0, r0, #0x1f
+ str r0, [sp, #0x4]
+ ldrh r1, [r1, #0x0]
+ mov r0, #0x0
+ bl FUN_0202CF84
+ ldr r0, _0202ED50 ; =0x021C59E8
+ ldr r1, [r0, #0x8]
+ ldr r0, _0202ED6C ; =0x00000DA8
+ strb r5, [r1, r0]
+_0202ED4C:
+ add sp, #0x8
+ pop {r3-r5, pc}
+ .balign 4
+_0202ED50: .word 0x021C59E8
+_0202ED54: .word 0x00000DAD
+_0202ED58: .word 0x0000FFFF
+_0202ED5C: .word 0x00000DA6
+_0202ED60: .word 0x00000DAA
+_0202ED64: .word 0x00000DA9
+_0202ED68: .word 0x00000DA4
+_0202ED6C: .word 0x00000DA8
+
+ thumb_func_start FUN_0202ED70
+FUN_0202ED70: ; 0x0202ED70
+ push {r3, lr}
+ ldr r1, _0202ED80 ; =0x021C59E8
+ ldr r1, [r1, #0x8]
+ cmp r1, #0x0
+ beq _0202ED7E
+ bl FUN_0202EBD0
+_0202ED7E:
+ pop {r3, pc}
+ .balign 4
+_0202ED80: .word 0x021C59E8
+
+ thumb_func_start FUN_0202ED84
+FUN_0202ED84: ; 0x0202ED84
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r0, _0202EDB4 ; =0x021C59E8
+ ldr r0, [r0, #0x8]
+ cmp r0, #0x0
+ bne _0202ED94
+ mov r0, #0x0
+ pop {r4, pc}
+_0202ED94:
+ bl FUN_0202CBD4
+ cmp r0, #0x4
+ beq _0202EDA0
+ mov r0, #0x0
+ pop {r4, pc}
+_0202EDA0:
+ bl FUN_0202CB8C
+ mov r2, #0x1
+ add r1, r2, #0x0
+ lsl r1, r4
+ tst r0, r1
+ bne _0202EDB0
+ mov r2, #0x0
+_0202EDB0:
+ add r0, r2, #0x0
+ pop {r4, pc}
+ .balign 4
+_0202EDB4: .word 0x021C59E8
+
+ thumb_func_start FUN_0202EDB8
+FUN_0202EDB8: ; 0x0202EDB8
+ push {r3-r5, lr}
+ mov r4, #0x0
+ add r5, r4, #0x0
+_0202EDBE:
+ lsl r0, r5, #0x10
+ lsr r0, r0, #0x10
+ bl FUN_0202ED84
+ cmp r0, #0x0
+ beq _0202EDCC
+ add r4, r4, #0x1
+_0202EDCC:
+ add r5, r5, #0x1
+ cmp r5, #0x8
+ blt _0202EDBE
+ add r0, r4, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_0202EDD8
+FUN_0202EDD8: ; 0x0202EDD8
+ ldr r0, _0202EDF0 ; =0x021C59E8
+ ldr r1, [r0, #0x8]
+ cmp r1, #0x0
+ beq _0202EDEC
+ ldr r0, _0202EDF4 ; =0x00000DAA
+ ldrb r0, [r1, r0]
+ cmp r0, #0x3
+ bne _0202EDEC
+ mov r0, #0x1
+ bx lr
+_0202EDEC:
+ mov r0, #0x0
+ bx lr
+ .balign 4
+_0202EDF0: .word 0x021C59E8
+_0202EDF4: .word 0x00000DAA
+
+ thumb_func_start FUN_0202EDF8
+FUN_0202EDF8: ; 0x0202EDF8
+ ldr r0, _0202EE08 ; =0x021C59E8
+ ldr r0, [r0, #0x8]
+ cmp r0, #0x0
+ beq _0202EE04
+ mov r0, #0x1
+ bx lr
+_0202EE04:
+ mov r0, #0x0
+ bx lr
+ .balign 4
+_0202EE08: .word 0x021C59E8
+
+ thumb_func_start FUN_0202EE0C
+FUN_0202EE0C: ; 0x0202EE0C
+ push {r3, lr}
+ ldr r0, _0202EE20 ; =0x021C59E8
+ ldr r0, [r0, #0x8]
+ cmp r0, #0x0
+ beq _0202EE1C
+ bl FUN_0202D1C8
+ pop {r3, pc}
+_0202EE1C:
+ mov r0, #0x1
+ pop {r3, pc}
+ .balign 4
+_0202EE20: .word 0x021C59E8
+
+ thumb_func_start FUN_0202EE24
+FUN_0202EE24: ; 0x0202EE24
+ push {r3, lr}
+ ldr r0, _0202EE3C ; =0x021C59E8
+ ldr r0, [r0, #0x8]
+ cmp r0, #0x0
+ beq _0202EE38
+ bl FUN_0202CB8C
+ ldr r1, _0202EE40 ; =0x0000FFFE
+ and r0, r1
+ pop {r3, pc}
+_0202EE38:
+ mov r0, #0x0
+ pop {r3, pc}
+ .balign 4
+_0202EE3C: .word 0x021C59E8
+_0202EE40: .word 0x0000FFFE
+
+ thumb_func_start FUN_0202EE44
+FUN_0202EE44: ; 0x0202EE44
+ push {r3, lr}
+ bl FUN_0202EE60
+ cmp r0, #0x0
+ beq _0202EE5A
+ bl FUN_0202CBE8
+ cmp r0, #0x14
+ bne _0202EE5A
+ mov r0, #0x1
+ pop {r3, pc}
+_0202EE5A:
+ mov r0, #0x0
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_0202EE60
+FUN_0202EE60: ; 0x0202EE60
+ ldr r0, _0202EE7C ; =0x021C59E8
+ ldr r1, [r0, #0x8]
+ cmp r1, #0x0
+ beq _0202EE76
+ ldr r0, _0202EE80 ; =0x00000DAD
+ ldrb r0, [r1, r0]
+ lsl r0, r0, #0x1f
+ lsr r0, r0, #0x1f
+ beq _0202EE76
+ mov r0, #0x1
+ bx lr
+_0202EE76:
+ mov r0, #0x0
+ bx lr
+ nop
+_0202EE7C: .word 0x021C59E8
+_0202EE80: .word 0x00000DAD
+
+ thumb_func_start FUN_0202EE84
+FUN_0202EE84: ; 0x0202EE84
+ push {r3-r4}
+ ldr r1, _0202EEA8 ; =0x021C59E8
+ ldr r2, [r1, #0x8]
+ cmp r2, #0x0
+ beq _0202EEA2
+ ldr r4, _0202EEAC ; =0x00000DAD
+ lsl r0, r0, #0x18
+ ldrb r1, [r2, r4]
+ lsr r0, r0, #0x18
+ mov r3, #0x4
+ lsl r0, r0, #0x1f
+ bic r1, r3
+ lsr r0, r0, #0x1d
+ orr r0, r1
+ strb r0, [r2, r4]
+_0202EEA2:
+ pop {r3-r4}
+ bx lr
+ nop
+_0202EEA8: .word 0x021C59E8
+_0202EEAC: .word 0x00000DAD
+
+ thumb_func_start FUN_0202EEB0
+FUN_0202EEB0: ; 0x0202EEB0
+ push {r4-r5}
+ ldr r5, _0202EEDC ; =0x021C59E8
+ ldr r2, [r5, #0x8]
+ cmp r2, #0x0
+ beq _0202EED6
+ ldr r4, _0202EEE0 ; =0x00000DAD
+ lsl r0, r0, #0x18
+ ldrb r1, [r2, r4]
+ lsr r0, r0, #0x18
+ mov r3, #0x2
+ lsl r0, r0, #0x1f
+ bic r1, r3
+ lsr r0, r0, #0x1e
+ orr r0, r1
+ strb r0, [r2, r4]
+ ldr r2, _0202EEE4 ; =0x0000FFFF
+ ldr r1, [r5, #0x8]
+ sub r0, r4, #0x7
+ strh r2, [r1, r0]
+_0202EED6:
+ pop {r4-r5}
+ bx lr
+ nop
+_0202EEDC: .word 0x021C59E8
+_0202EEE0: .word 0x00000DAD
+_0202EEE4: .word 0x0000FFFF
+
+ thumb_func_start FUN_0202EEE8
+FUN_0202EEE8: ; 0x0202EEE8
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ blx WM_GetDispersionBeaconPeriod
+ add r4, r0, #0x0
+ cmp r5, #0x1a
+ blo _0202EEFA
+ bl ErrorHandling
+_0202EEFA:
+ cmp r5, #0xa
+ bne _0202EF04
+ lsl r0, r4, #0xe
+ lsr r0, r0, #0x10
+ pop {r3-r5, pc}
+_0202EF04:
+ cmp r5, #0x9
+ beq _0202EF0C
+ cmp r5, #0xd
+ bne _0202EF12
+_0202EF0C:
+ lsl r0, r4, #0xe
+ lsr r0, r0, #0x10
+ pop {r3-r5, pc}
+_0202EF12:
+ add r0, r4, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_0202EF18
+FUN_0202EF18: ; 0x0202EF18
+ ldr r1, _0202EF3C ; =0x021C59E8
+ ldr r3, [r1, #0x8]
+ cmp r3, #0x0
+ beq _0202EF36
+ lsl r1, r0, #0x1
+ add r2, r3, r1
+ ldr r1, _0202EF40 ; =0x00000C84
+ ldrh r1, [r2, r1]
+ cmp r1, #0x0
+ beq _0202EF36
+ mov r1, #0xc0
+ add r3, #0x54
+ mul r1, r0
+ add r0, r3, r1
+ bx lr
+_0202EF36:
+ mov r0, #0x0
+ bx lr
+ nop
+_0202EF3C: .word 0x021C59E8
+_0202EF40: .word 0x00000C84
+
+ thumb_func_start FUN_0202EF44
+FUN_0202EF44: ; 0x0202EF44
+ ldr r1, _0202EF68 ; =0x021C59E8
+ ldr r3, [r1, #0x8]
+ cmp r3, #0x0
+ beq _0202EF62
+ lsl r1, r0, #0x1
+ add r2, r3, r1
+ ldr r1, _0202EF6C ; =0x00000C84
+ ldrh r1, [r2, r1]
+ cmp r1, #0x0
+ beq _0202EF62
+ mov r1, #0xc0
+ add r3, #0xa4
+ mul r1, r0
+ add r0, r3, r1
+ bx lr
+_0202EF62:
+ mov r0, #0x0
+ bx lr
+ nop
+_0202EF68: .word 0x021C59E8
+_0202EF6C: .word 0x00000C84
+
+ thumb_func_start FUN_0202EF70
+FUN_0202EF70: ; 0x0202EF70
+ ldr r0, _0202EF7C ; =0x021C59E8
+ ldr r1, [r0, #0x8]
+ ldr r0, _0202EF80 ; =0x00000CB8
+ ldr r0, [r1, r0]
+ bx lr
+ nop
+_0202EF7C: .word 0x021C59E8
+_0202EF80: .word 0x00000CB8
+
+ thumb_func_start FUN_0202EF84
+FUN_0202EF84: ; 0x0202EF84
+ ldr r1, _0202EFA4 ; =0x021C59E8
+ ldr r3, [r1, #0x8]
+ lsl r1, r0, #0x1
+ add r2, r3, r1
+ ldr r1, _0202EFA8 ; =0x00000C84
+ ldrh r1, [r2, r1]
+ cmp r1, #0x0
+ bne _0202EF98
+ mov r0, #0x0
+ bx lr
+_0202EF98:
+ mov r1, #0xc0
+ add r3, #0xa4
+ mul r1, r0
+ add r0, r3, r1
+ add r0, #0x10
+ bx lr
+ .balign 4
+_0202EFA4: .word 0x021C59E8
+_0202EFA8: .word 0x00000C84
+
+ thumb_func_start FUN_0202EFAC
+FUN_0202EFAC: ; 0x0202EFAC
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ ldr r0, _0202EFDC ; =0x021C59E8
+ add r4, r1, #0x0
+ ldr r0, [r0, #0x8]
+ cmp r0, #0x0
+ beq _0202EFD8
+ cmp r4, #0x8
+ blt _0202EFC2
+ bl ErrorHandling
+_0202EFC2:
+ ldr r1, _0202EFDC ; =0x021C59E8
+ add r0, r5, #0x0
+ ldr r2, [r1, #0x8]
+ ldr r1, _0202EFE0 ; =0x00000C54
+ add r3, r2, r1
+ mov r2, #0x6
+ add r1, r4, #0x0
+ mul r1, r2
+ add r1, r3, r1
+ blx MI_CpuCopy8
+_0202EFD8:
+ pop {r3-r5, pc}
+ nop
+_0202EFDC: .word 0x021C59E8
+_0202EFE0: .word 0x00000C54
+
+ thumb_func_start FUN_0202EFE4
+FUN_0202EFE4: ; 0x0202EFE4
+ push {r4-r5}
+ ldr r2, _0202F034 ; =0x021C59E8
+ mov r1, #0x0
+ ldr r3, [r2, #0x8]
+ ldr r2, _0202F038 ; =0x00000C54
+ add r2, r3, r2
+ ldrb r3, [r0, #0x0]
+_0202EFF2:
+ ldrb r4, [r2, #0x0]
+ cmp r4, r3
+ bne _0202F026
+ ldrb r5, [r2, #0x1]
+ ldrb r4, [r0, #0x1]
+ cmp r5, r4
+ bne _0202F026
+ ldrb r5, [r2, #0x2]
+ ldrb r4, [r0, #0x2]
+ cmp r5, r4
+ bne _0202F026
+ ldrb r5, [r2, #0x3]
+ ldrb r4, [r0, #0x3]
+ cmp r5, r4
+ bne _0202F026
+ ldrb r5, [r2, #0x4]
+ ldrb r4, [r0, #0x4]
+ cmp r5, r4
+ bne _0202F026
+ ldrb r5, [r2, #0x5]
+ ldrb r4, [r0, #0x5]
+ cmp r5, r4
+ bne _0202F026
+ mov r0, #0x1
+ pop {r4-r5}
+ bx lr
+_0202F026:
+ add r1, r1, #0x1
+ add r2, r2, #0x6
+ cmp r1, #0x8
+ blt _0202EFF2
+ mov r0, #0x0
+ pop {r4-r5}
+ bx lr
+ .balign 4
+_0202F034: .word 0x021C59E8
+_0202F038: .word 0x00000C54
+
+ thumb_func_start FUN_0202F03C
+FUN_0202F03C: ; 0x0202F03C
+ ldr r0, _0202F054 ; =0x021C59E8
+ ldr r1, [r0, #0x8]
+ cmp r1, #0x0
+ beq _0202F04E
+ ldr r0, _0202F058 ; =0x00000DAD
+ ldrb r0, [r1, r0]
+ lsl r0, r0, #0x1b
+ lsr r0, r0, #0x1f
+ bx lr
+_0202F04E:
+ mov r0, #0x0
+ bx lr
+ nop
+_0202F054: .word 0x021C59E8
+_0202F058: .word 0x00000DAD
+
+ thumb_func_start FUN_0202F05C
+FUN_0202F05C: ; 0x0202F05C
+ ldr r0, _0202F070 ; =0x021C59E8
+ ldr r3, [r0, #0x8]
+ cmp r3, #0x0
+ beq _0202F06E
+ ldr r1, _0202F074 ; =0x00000DAD
+ mov r0, #0x10
+ ldrb r2, [r3, r1]
+ orr r0, r2
+ strb r0, [r3, r1]
+_0202F06E:
+ bx lr
+ .balign 4
+_0202F070: .word 0x021C59E8
+_0202F074: .word 0x00000DAD
+
+ thumb_func_start FUN_0202F078
+FUN_0202F078: ; 0x0202F078
+ ldr r1, _0202F088 ; =0x021C59E8
+ ldr r3, _0202F08C ; =MI_CpuCopy8
+ ldr r2, [r1, #0x8]
+ ldr r1, _0202F090 ; =0x00000CA8
+ add r1, r2, r1
+ mov r2, #0x8
+ bx r3
+ nop
+_0202F088: .word 0x021C59E8
+_0202F08C: .word MI_CpuCopy8
+_0202F090: .word 0x00000CA8
+
+ thumb_func_start FUN_0202F094
+FUN_0202F094: ; 0x0202F094
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl FUN_02023AC4
+ ldr r1, _0202F0B0 ; =0x021C59E8
+ add r2, r0, #0x0
+ ldr r3, [r1, #0x8]
+ ldr r1, _0202F0B4 ; =0x00000CBC
+ add r0, r4, #0x0
+ ldr r1, [r3, r1]
+ blx MI_CpuCopy8
+ pop {r4, pc}
+ nop
+_0202F0B0: .word 0x021C59E8
+_0202F0B4: .word 0x00000CBC
+
+ thumb_func_start FUN_0202F0B8
+FUN_0202F0B8: ; 0x0202F0B8
+ push {r4, lr}
+ bl FUN_0202EA9C
+ ldr r3, _0202F0D4 ; =0x021C59E8
+ ldr r2, _0202F0D8 ; =0x00000CC4
+ ldr r4, [r3, #0x8]
+ ldrh r3, [r3, #0x0]
+ add r0, r4, r2
+ sub r2, r2, #0x4
+ ldr r2, [r4, r2]
+ mov r1, #0x5c
+ bl FUN_0202D240
+ pop {r4, pc}
+ .balign 4
+_0202F0D4: .word 0x021C59E8
+_0202F0D8: .word 0x00000CC4
+
+ thumb_func_start FUN_0202F0DC
+FUN_0202F0DC: ; 0x0202F0DC
+ push {r4-r6, lr}
+ mov r5, #0x0
+ add r6, r0, #0x0
+ add r4, r5, #0x0
+_0202F0E4:
+ add r0, r4, #0x0
+ bl FUN_0202EF44
+ cmp r0, #0x0
+ beq _0202F0F8
+ ldrb r1, [r0, #0x4]
+ cmp r1, r6
+ bne _0202F0F8
+ ldrb r0, [r0, #0x6]
+ add r5, r5, r0
+_0202F0F8:
+ add r4, r4, #0x1
+ cmp r4, #0x10
+ blt _0202F0E4
+ add r0, r5, #0x0
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_0202F104
+FUN_0202F104: ; 0x0202F104
+ ldr r3, _0202F108 ; =FUN_0202D2D0
+ bx r3
+ .balign 4
+_0202F108: .word FUN_0202D2D0
+
+ thumb_func_start FUN_0202F10C
+FUN_0202F10C: ; 0x0202F10C
+ push {r3, lr}
+ ldr r1, _0202F120 ; =0x021C59E8
+ mov r2, #0x54
+ ldr r1, [r1, #0x8]
+ blx MI_CpuCopy8
+ bl FUN_0202F0B8
+ pop {r3, pc}
+ nop
+_0202F120: .word 0x021C59E8
+
+ thumb_func_start FUN_0202F124
+FUN_0202F124: ; 0x0202F124
+ ldr r1, _0202F148 ; =0x021C59E8
+ ldr r3, [r1, #0x8]
+ cmp r3, #0x0
+ beq _0202F144
+ lsl r1, r0, #0x1
+ add r2, r3, r1
+ ldr r1, _0202F14C ; =0x00000C84
+ ldrh r1, [r2, r1]
+ cmp r1, #0x0
+ beq _0202F144
+ mov r1, #0xc0
+ add r3, #0xa4
+ mul r1, r0
+ add r0, r3, r1
+ add r0, #0x8
+ bx lr
+_0202F144:
+ mov r0, #0x0
+ bx lr
+ .balign 4
+_0202F148: .word 0x021C59E8
+_0202F14C: .word 0x00000C84
+
+ thumb_func_start FUN_0202F150
+FUN_0202F150: ; 0x0202F150
+ push {r4-r6, lr}
+ add r6, r1, #0x0
+ mov r4, #0x0
+ ldr r1, _0202F2BC ; =0x021C59F4
+ cmp r0, #0x0
+ strb r4, [r1, #0x0]
+ beq _0202F25C
+ bl FUN_02033534
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ bl FUN_0202D858
+ add r5, r0, #0x1
+ ldr r0, _0202F2BC ; =0x021C59F4
+ ldr r0, [r0, #0x4]
+ cmp r0, #0x0
+ beq _0202F178
+ mov r0, #0x1
+ pop {r4-r6, pc}
+_0202F178:
+ mov r0, #0xf
+ bl FUN_02031480
+ ldr r1, _0202F2C0 ; =0x0000068C
+ mov r0, #0xf
+ bl FUN_02016998
+ ldr r1, _0202F2BC ; =0x021C59F4
+ ldr r2, _0202F2C0 ; =0x0000068C
+ str r0, [r1, #0x4]
+ add r1, r4, #0x0
+ blx MI_CpuFill8
+ ldr r2, _0202F2BC ; =0x021C59F4
+ ldr r1, _0202F2C4 ; =0x00000658
+ ldr r0, [r2, #0x4]
+ add r6, #0x40
+ str r6, [r0, r1]
+ add r0, r1, #0x0
+ ldr r3, [r2, #0x4]
+ add r6, r4, #0x0
+ add r0, #0x25
+ strb r6, [r3, r0]
+ add r0, r1, #0x0
+ ldr r3, [r2, #0x4]
+ mov r6, #0x1b
+ add r0, #0x26
+ strb r6, [r3, r0]
+ ldr r2, [r2, #0x4]
+ mov r0, #0xf
+ ldr r1, [r2, r1]
+ lsl r1, r1, #0x1
+ bl FUN_02016998
+ ldr r2, _0202F2BC ; =0x021C59F4
+ ldr r1, _0202F2C8 ; =0x0000045C
+ ldr r3, [r2, #0x4]
+ str r0, [r3, r1]
+ ldr r2, [r2, #0x4]
+ ldr r1, _0202F2C4 ; =0x00000658
+ mov r0, #0xf
+ ldr r1, [r2, r1]
+ bl FUN_02016998
+ ldr r2, _0202F2BC ; =0x021C59F4
+ mov r1, #0x46
+ ldr r3, [r2, #0x4]
+ lsl r1, r1, #0x4
+ str r0, [r3, r1]
+ ldr r2, [r2, #0x4]
+ ldr r1, _0202F2C4 ; =0x00000658
+ mov r0, #0xf
+ ldr r1, [r2, r1]
+ mul r1, r5
+ bl FUN_02016998
+ ldr r2, _0202F2BC ; =0x021C59F4
+ ldr r1, _0202F2CC ; =0x00000458
+ ldr r3, [r2, #0x4]
+ str r0, [r3, r1]
+ ldr r2, [r2, #0x4]
+ ldr r1, _0202F2C4 ; =0x00000658
+ mov r0, #0xf
+ ldr r1, [r2, r1]
+ mul r1, r5
+ bl FUN_02016998
+ ldr r1, _0202F2BC ; =0x021C59F4
+ ldr r2, [r1, #0x4]
+ ldr r1, _0202F2D0 ; =0x00000454
+ str r0, [r2, r1]
+ bl FUN_02033534
+ cmp r0, #0xa
+ ldr r2, _0202F2D4 ; =0x0000054C
+ bne _0202F236
+ ldr r0, _0202F2BC ; =0x021C59F4
+ mov r1, #0x64
+ ldr r3, [r0, #0x4]
+ add r0, r3, r2
+ sub r2, #0xe8
+ add r2, r3, r2
+ bl FUN_0202D7D8
+ ldr r0, _0202F2BC ; =0x021C59F4
+ mov r1, #0x32
+ ldr r3, [r0, #0x4]
+ ldr r2, _0202F2D8 ; =0x0000056C
+ lsl r1, r1, #0x4
+ add r0, r3, r2
+ sub r2, #0x90
+ add r2, r3, r2
+ bl FUN_0202D7D8
+ b _0202F268
+_0202F236:
+ ldr r0, _0202F2BC ; =0x021C59F4
+ mov r1, #0x14
+ ldr r3, [r0, #0x4]
+ add r0, r3, r2
+ sub r2, #0xe8
+ add r2, r3, r2
+ bl FUN_0202D7D8
+ ldr r0, _0202F2BC ; =0x021C59F4
+ add r1, r6, #0x0
+ ldr r3, [r0, #0x4]
+ ldr r2, _0202F2D8 ; =0x0000056C
+ add r1, #0xfd
+ add r0, r3, r2
+ sub r2, #0x90
+ add r2, r3, r2
+ bl FUN_0202D7D8
+ b _0202F268
+_0202F25C:
+ ldr r0, [r1, #0x4]
+ mov r4, #0x1
+ cmp r0, #0x0
+ bne _0202F268
+ bl ErrorHandling
+_0202F268:
+ ldr r2, _0202F2BC ; =0x021C59F4
+ ldr r1, _0202F2DC ; =0x0000065C
+ ldr r3, [r2, #0x4]
+ mov r0, #0x0
+ strh r0, [r3, r1]
+ mov r5, #0xff
+ add r1, #0x1b
+_0202F276:
+ ldr r3, [r2, #0x4]
+ add r3, r3, r0
+ add r0, r0, #0x1
+ strb r5, [r3, r1]
+ cmp r0, #0x4
+ blt _0202F276
+ cmp r4, #0x0
+ bne _0202F28A
+ bl FUN_0202F2F0
+_0202F28A:
+ ldr r0, _0202F2BC ; =0x021C59F4
+ ldr r1, [r0, #0x4]
+ ldr r0, _0202F2E0 ; =0x000005F8
+ add r0, r1, r0
+ bl FUN_020312BC
+ cmp r4, #0x0
+ bne _0202F2AC
+ mov r1, #0x0
+ ldr r0, _0202F2E4 ; =FUN_0202FB20
+ add r2, r1, #0x0
+ bl FUN_0200CA60
+ ldr r1, _0202F2BC ; =0x021C59F4
+ ldr r2, [r1, #0x4]
+ ldr r1, _0202F2E8 ; =0x00000548
+ str r0, [r2, r1]
+_0202F2AC:
+ ldr r0, _0202F2BC ; =0x021C59F4
+ mov r2, #0x0
+ ldr r1, [r0, #0x4]
+ ldr r0, _0202F2EC ; =0x00000687
+ strb r2, [r1, r0]
+ mov r0, #0x1
+ pop {r4-r6, pc}
+ nop
+_0202F2BC: .word 0x021C59F4
+_0202F2C0: .word 0x0000068C
+_0202F2C4: .word 0x00000658
+_0202F2C8: .word 0x0000045C
+_0202F2CC: .word 0x00000458
+_0202F2D0: .word 0x00000454
+_0202F2D4: .word 0x0000054C
+_0202F2D8: .word 0x0000056C
+_0202F2DC: .word 0x0000065C
+_0202F2E0: .word 0x000005F8
+_0202F2E4: .word FUN_0202FB20
+_0202F2E8: .word 0x00000548
+_0202F2EC: .word 0x00000687
+
+ thumb_func_start FUN_0202F2F0
+FUN_0202F2F0: ; 0x0202F2F0
+ push {r3-r7, lr}
+ ldr r3, _0202F54C ; =0x021C59F4
+ ldr r2, _0202F550 ; =0x0000062C
+ ldr r1, [r3, #0x4]
+ mov r0, #0x0
+ strb r0, [r1, r2]
+ ldr r4, [r3, #0x4]
+ add r1, r2, #0x1
+ strb r0, [r4, r1]
+ add r1, r2, #0x0
+ ldr r4, [r3, #0x4]
+ add r1, #0x53
+ strb r0, [r4, r1]
+ ldr r1, [r3, #0x4]
+ add r2, #0x54
+ strb r0, [r1, r2]
+ bl FUN_02033534
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ bl FUN_0202D858
+ add r6, r0, #0x1
+ ldr r0, _0202F54C ; =0x021C59F4
+ ldr r2, _0202F554 ; =0x00000658
+ ldr r3, [r0, #0x4]
+ ldr r0, _0202F558 ; =0x00000458
+ mov r1, #0x0
+ ldr r0, [r3, r0]
+ ldr r3, [r3, r2]
+ add r2, r3, #0x0
+ mul r2, r6
+ blx MI_CpuFill8
+ mov r4, #0x0
+ cmp r6, #0x0
+ ble _0202F360
+ ldr r7, _0202F54C ; =0x021C59F4
+ add r5, r4, #0x0
+_0202F33E:
+ ldr r3, [r7, #0x4]
+ ldr r0, _0202F554 ; =0x00000658
+ ldr r1, _0202F558 ; =0x00000458
+ ldr r2, [r3, r0]
+ ldr r0, _0202F55C ; =0x000004E8
+ add r0, r3, r0
+ ldr r3, [r3, r1]
+ add r1, r4, #0x0
+ mul r1, r2
+ add r0, r0, r5
+ add r1, r3, r1
+ bl FUN_0202D394
+ add r4, r4, #0x1
+ add r5, #0xc
+ cmp r4, r6
+ blt _0202F33E
+_0202F360:
+ ldr r0, _0202F54C ; =0x021C59F4
+ ldr r2, _0202F554 ; =0x00000658
+ ldr r3, [r0, #0x4]
+ ldr r0, _0202F560 ; =0x00000454
+ mov r1, #0x0
+ ldr r0, [r3, r0]
+ ldr r3, [r3, r2]
+ add r2, r3, #0x0
+ mul r2, r6
+ blx MI_CpuFill8
+ mov r5, #0x0
+ cmp r6, #0x0
+ ble _0202F3A2
+ ldr r7, _0202F54C ; =0x021C59F4
+ add r4, r5, #0x0
+_0202F380:
+ ldr r3, [r7, #0x4]
+ ldr r0, _0202F554 ; =0x00000658
+ ldr r1, _0202F560 ; =0x00000454
+ ldr r2, [r3, r0]
+ ldr r0, _0202F564 ; =0x0000047C
+ add r0, r3, r0
+ ldr r3, [r3, r1]
+ add r1, r5, #0x0
+ mul r1, r2
+ add r0, r0, r4
+ add r1, r3, r1
+ bl FUN_0202D394
+ add r5, r5, #0x1
+ add r4, #0xc
+ cmp r5, r6
+ blt _0202F380
+_0202F3A2:
+ ldr r0, _0202F54C ; =0x021C59F4
+ mov r2, #0x6
+ ldr r1, [r0, #0x4]
+ mov r0, #0xb5
+ lsl r0, r0, #0x2
+ add r0, r1, r0
+ mov r1, #0x0
+ lsl r2, r2, #0x6
+ blx MI_CpuFill8
+ ldr r0, _0202F54C ; =0x021C59F4
+ mov r1, #0xb5
+ ldr r2, [r0, #0x4]
+ ldr r0, _0202F568 ; =0x000004DC
+ lsl r1, r1, #0x2
+ add r0, r2, r0
+ add r1, r2, r1
+ mov r2, #0x6
+ lsl r2, r2, #0x6
+ bl FUN_0202D394
+ mov r0, #0xee
+ add r2, r0, #0x0
+ mov r3, #0x85
+ ldr r4, _0202F54C ; =0x021C59F4
+ mov r1, #0x0
+ add r2, #0x66
+ lsl r3, r3, #0x2
+_0202F3DA:
+ ldr r5, [r4, #0x4]
+ add r5, r5, r1
+ strb r0, [r5, r2]
+ ldr r5, [r4, #0x4]
+ add r5, r5, r1
+ add r1, r1, #0x1
+ strb r0, [r5, r3]
+ cmp r1, #0xc0
+ blt _0202F3DA
+ ldr r0, _0202F54C ; =0x021C59F4
+ mov r2, #0x42
+ ldr r0, [r0, #0x4]
+ mov r1, #0x0
+ add r0, #0x4c
+ lsl r2, r2, #0x2
+ blx MI_CpuFill8
+ ldr r0, _0202F54C ; =0x021C59F4
+ mov r2, #0x42
+ ldr r1, [r0, #0x4]
+ ldr r0, _0202F56C ; =0x00000464
+ lsl r2, r2, #0x2
+ add r0, r1, r0
+ add r1, #0x4c
+ bl FUN_0202D394
+ ldr r1, _0202F54C ; =0x021C59F4
+ mov r2, #0xff
+ ldr r0, [r1, #0x4]
+ mov r3, #0x1
+ strb r2, [r0, #0x0]
+ ldr r0, [r1, #0x4]
+ add r0, #0x26
+ strb r2, [r0, #0x0]
+ mov r2, #0xee
+_0202F420:
+ ldr r0, [r1, #0x4]
+ strb r2, [r0, r3]
+ ldr r0, [r1, #0x4]
+ add r0, r0, r3
+ add r0, #0x26
+ add r3, r3, #0x1
+ strb r2, [r0, #0x0]
+ cmp r3, #0x26
+ blt _0202F420
+ ldr r0, _0202F54C ; =0x021C59F4
+ ldr r2, _0202F554 ; =0x00000658
+ ldr r3, [r0, #0x4]
+ ldr r0, _0202F570 ; =0x0000045C
+ ldr r2, [r3, r2]
+ ldr r0, [r3, r0]
+ mov r1, #0x0
+ lsl r2, r2, #0x1
+ blx MI_CpuFill8
+ ldr r0, _0202F54C ; =0x021C59F4
+ mov r1, #0x47
+ ldr r3, [r0, #0x4]
+ ldr r2, _0202F554 ; =0x00000658
+ lsl r1, r1, #0x4
+ add r0, r3, r1
+ sub r1, #0x14
+ ldr r2, [r3, r2]
+ ldr r1, [r3, r1]
+ lsl r2, r2, #0x1
+ bl FUN_0202D394
+ mov r2, #0x0
+ ldr r0, _0202F54C ; =0x021C59F4
+ ldr r1, _0202F574 ; =0x00000684
+ ldr r3, [r0, #0x4]
+ mov r12, r2
+ strb r2, [r3, r1]
+ ldr r3, [r0, #0x4]
+ add r1, r1, #0x1
+ strb r2, [r3, r1]
+ add r1, r2, #0x0
+ add r7, r2, #0x0
+ add r6, r2, #0x0
+_0202F476:
+ ldr r3, [r0, #0x4]
+ add r4, r3, r2
+ ldr r3, _0202F578 ; =0x0000065F
+ strb r6, [r4, r3]
+ ldr r3, [r0, #0x4]
+ ldr r4, _0202F57C ; =0x00000667
+ add r5, r3, r2
+ mov r3, #0x1
+ strb r3, [r5, r4]
+ ldr r3, [r0, #0x4]
+ add r4, #0x8
+ add r5, r3, r2
+ mov r3, #0x1
+ strb r3, [r5, r4]
+ ldr r4, [r0, #0x4]
+ mov r3, r12
+ add r4, r4, r3
+ mov r3, #0x61
+ lsl r3, r3, #0x4
+ strh r6, [r4, r3]
+ ldr r3, [r0, #0x4]
+ mov r4, #0xee
+ add r5, r3, r1
+ ldr r3, _0202F580 ; =0x00000596
+ add r2, r2, #0x1
+ strb r4, [r5, r3]
+ ldr r3, [r0, #0x4]
+ ldr r4, _0202F584 ; =0x0000FFFF
+ add r5, r3, r1
+ ldr r3, _0202F588 ; =0x00000594
+ strh r4, [r5, r3]
+ ldr r3, [r0, #0x4]
+ add r4, r3, r1
+ mov r3, #0x59
+ lsl r3, r3, #0x4
+ str r6, [r4, r3]
+ ldr r3, [r0, #0x4]
+ add r4, r3, r1
+ ldr r3, _0202F58C ; =0x0000058C
+ add r1, #0xc
+ str r6, [r4, r3]
+ ldr r3, [r0, #0x4]
+ add r4, r3, r7
+ ldr r3, _0202F590 ; =0x00000638
+ add r7, r7, #0x4
+ str r6, [r4, r3]
+ mov r3, r12
+ add r3, r3, #0x2
+ mov r12, r3
+ cmp r2, #0x8
+ blt _0202F476
+ ldr r1, _0202F54C ; =0x021C59F4
+ ldr r0, _0202F594 ; =0x00000634
+ ldr r2, [r1, #0x4]
+ sub r3, r0, #0x4
+ str r6, [r2, r0]
+ ldr r4, [r1, #0x4]
+ mov r2, #0x1
+ str r2, [r4, r3]
+ add r3, r0, #0x0
+ ldr r4, [r1, #0x4]
+ sub r3, #0x3e
+ mov r2, #0xee
+ strb r2, [r4, r3]
+ add r3, r0, #0x0
+ ldr r4, [r1, #0x4]
+ ldr r2, _0202F584 ; =0x0000FFFF
+ sub r3, #0x40
+ strh r2, [r4, r3]
+ add r2, r0, #0x0
+ ldr r3, [r1, #0x4]
+ sub r2, #0x44
+ str r6, [r3, r2]
+ add r2, r0, #0x0
+ ldr r3, [r1, #0x4]
+ sub r2, #0x48
+ str r6, [r3, r2]
+ add r3, r0, #0x0
+ ldr r4, [r1, #0x4]
+ add r3, #0x4e
+ mov r2, #0x1
+ strb r2, [r4, r3]
+ add r3, r0, #0x0
+ ldr r4, [r1, #0x4]
+ add r3, #0x4f
+ strb r2, [r4, r3]
+ ldr r2, _0202F598 ; =0x02105D58
+ mov r3, #0x4
+ strb r3, [r2, #0x1]
+ strb r3, [r2, #0x0]
+ ldr r1, [r1, #0x4]
+ sub r0, #0xe8
+ add r0, r1, r0
+ bl FUN_0202D804
+ ldr r0, _0202F54C ; =0x021C59F4
+ ldr r1, [r0, #0x4]
+ ldr r0, _0202F59C ; =0x0000056C
+ add r0, r1, r0
+ bl FUN_0202D804
+ ldr r0, _0202F54C ; =0x021C59F4
+ mov r2, #0x0
+ ldr r1, [r0, #0x4]
+ ldr r0, _0202F5A0 ; =0x00000688
+ strb r2, [r1, r0]
+ pop {r3-r7, pc}
+ .balign 4
+_0202F54C: .word 0x021C59F4
+_0202F550: .word 0x0000062C
+_0202F554: .word 0x00000658
+_0202F558: .word 0x00000458
+_0202F55C: .word 0x000004E8
+_0202F560: .word 0x00000454
+_0202F564: .word 0x0000047C
+_0202F568: .word 0x000004DC
+_0202F56C: .word 0x00000464
+_0202F570: .word 0x0000045C
+_0202F574: .word 0x00000684
+_0202F578: .word 0x0000065F
+_0202F57C: .word 0x00000667
+_0202F580: .word 0x00000596
+_0202F584: .word 0x0000FFFF
+_0202F588: .word 0x00000594
+_0202F58C: .word 0x0000058C
+_0202F590: .word 0x00000638
+_0202F594: .word 0x00000634
+_0202F598: .word 0x02105D58
+_0202F59C: .word 0x0000056C
+_0202F5A0: .word 0x00000688
+
+ thumb_func_start FUN_0202F5A4
+FUN_0202F5A4: ; 0x0202F5A4
+ push {r3-r7, lr}
+ ldr r1, _0202F7D4 ; =0x021C59F4
+ ldr r0, _0202F7D8 ; =0x0000062C
+ ldr r2, [r1, #0x4]
+ mov r3, #0x0
+ strb r3, [r2, r0]
+ ldr r1, [r1, #0x4]
+ add r0, r0, #0x1
+ strb r3, [r1, r0]
+ bl FUN_02033534
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ bl FUN_0202D858
+ add r6, r0, #0x1
+ ldr r0, _0202F7D4 ; =0x021C59F4
+ ldr r2, _0202F7DC ; =0x00000658
+ ldr r3, [r0, #0x4]
+ ldr r0, _0202F7E0 ; =0x00000458
+ mov r1, #0x0
+ ldr r0, [r3, r0]
+ ldr r3, [r3, r2]
+ add r2, r3, #0x0
+ mul r2, r6
+ blx MI_CpuFill8
+ mov r4, #0x0
+ cmp r6, #0x0
+ ble _0202F606
+ ldr r7, _0202F7D4 ; =0x021C59F4
+ add r5, r4, #0x0
+_0202F5E4:
+ ldr r3, [r7, #0x4]
+ ldr r0, _0202F7DC ; =0x00000658
+ ldr r1, _0202F7E0 ; =0x00000458
+ ldr r2, [r3, r0]
+ ldr r0, _0202F7E4 ; =0x000004E8
+ add r0, r3, r0
+ ldr r3, [r3, r1]
+ add r1, r4, #0x0
+ mul r1, r2
+ add r0, r0, r5
+ add r1, r3, r1
+ bl FUN_0202D394
+ add r4, r4, #0x1
+ add r5, #0xc
+ cmp r4, r6
+ blt _0202F5E4
+_0202F606:
+ ldr r0, _0202F7D4 ; =0x021C59F4
+ ldr r2, _0202F7DC ; =0x00000658
+ ldr r3, [r0, #0x4]
+ ldr r0, _0202F7E8 ; =0x00000454
+ mov r1, #0x0
+ ldr r0, [r3, r0]
+ ldr r3, [r3, r2]
+ add r2, r3, #0x0
+ mul r2, r6
+ blx MI_CpuFill8
+ mov r5, #0x0
+ cmp r6, #0x0
+ ble _0202F648
+ ldr r7, _0202F7D4 ; =0x021C59F4
+ add r4, r5, #0x0
+_0202F626:
+ ldr r3, [r7, #0x4]
+ ldr r0, _0202F7DC ; =0x00000658
+ ldr r1, _0202F7E8 ; =0x00000454
+ ldr r2, [r3, r0]
+ ldr r0, _0202F7EC ; =0x0000047C
+ add r0, r3, r0
+ ldr r3, [r3, r1]
+ add r1, r5, #0x0
+ mul r1, r2
+ add r0, r0, r4
+ add r1, r3, r1
+ bl FUN_0202D394
+ add r5, r5, #0x1
+ add r4, #0xc
+ cmp r5, r6
+ blt _0202F626
+_0202F648:
+ ldr r0, _0202F7D4 ; =0x021C59F4
+ mov r2, #0x6
+ ldr r1, [r0, #0x4]
+ mov r0, #0xb5
+ lsl r0, r0, #0x2
+ add r0, r1, r0
+ mov r1, #0x0
+ lsl r2, r2, #0x6
+ blx MI_CpuFill8
+ ldr r0, _0202F7D4 ; =0x021C59F4
+ mov r1, #0xb5
+ ldr r2, [r0, #0x4]
+ ldr r0, _0202F7F0 ; =0x000004DC
+ lsl r1, r1, #0x2
+ add r0, r2, r0
+ add r1, r2, r1
+ mov r2, #0x6
+ lsl r2, r2, #0x6
+ bl FUN_0202D394
+ mov r0, #0xee
+ add r2, r0, #0x0
+ mov r3, #0x85
+ ldr r4, _0202F7D4 ; =0x021C59F4
+ mov r1, #0x0
+ add r2, #0x66
+ lsl r3, r3, #0x2
+_0202F680:
+ ldr r5, [r4, #0x4]
+ add r5, r5, r1
+ strb r0, [r5, r2]
+ ldr r5, [r4, #0x4]
+ add r5, r5, r1
+ add r1, r1, #0x1
+ strb r0, [r5, r3]
+ cmp r1, #0xc0
+ blt _0202F680
+ ldr r0, _0202F7D4 ; =0x021C59F4
+ mov r2, #0x42
+ ldr r0, [r0, #0x4]
+ mov r1, #0x0
+ add r0, #0x4c
+ lsl r2, r2, #0x2
+ blx MI_CpuFill8
+ ldr r0, _0202F7D4 ; =0x021C59F4
+ mov r2, #0x42
+ ldr r1, [r0, #0x4]
+ ldr r0, _0202F7F4 ; =0x00000464
+ lsl r2, r2, #0x2
+ add r0, r1, r0
+ add r1, #0x4c
+ bl FUN_0202D394
+ ldr r1, _0202F7D4 ; =0x021C59F4
+ mov r2, #0xff
+ ldr r0, [r1, #0x4]
+ mov r3, #0x1
+ strb r2, [r0, #0x0]
+ ldr r0, [r1, #0x4]
+ add r0, #0x26
+ strb r2, [r0, #0x0]
+ mov r2, #0xee
+_0202F6C6:
+ ldr r0, [r1, #0x4]
+ strb r2, [r0, r3]
+ ldr r0, [r1, #0x4]
+ add r0, r0, r3
+ add r0, #0x26
+ add r3, r3, #0x1
+ strb r2, [r0, #0x0]
+ cmp r3, #0x26
+ blt _0202F6C6
+ ldr r0, _0202F7D4 ; =0x021C59F4
+ ldr r2, _0202F7DC ; =0x00000658
+ ldr r3, [r0, #0x4]
+ ldr r0, _0202F7F8 ; =0x0000045C
+ ldr r2, [r3, r2]
+ ldr r0, [r3, r0]
+ mov r1, #0x0
+ lsl r2, r2, #0x1
+ blx MI_CpuFill8
+ ldr r0, _0202F7D4 ; =0x021C59F4
+ mov r1, #0x47
+ ldr r3, [r0, #0x4]
+ ldr r2, _0202F7DC ; =0x00000658
+ lsl r1, r1, #0x4
+ add r0, r3, r1
+ sub r1, #0x14
+ ldr r2, [r3, r2]
+ ldr r1, [r3, r1]
+ lsl r2, r2, #0x1
+ bl FUN_0202D394
+ ldr r0, _0202F7D4 ; =0x021C59F4
+ mov r3, #0x0
+ ldr r2, [r0, #0x4]
+ ldr r1, _0202F7FC ; =0x00000684
+ add r7, r3, #0x0
+ strb r3, [r2, r1]
+ ldr r2, [r0, #0x4]
+ add r1, r1, #0x1
+ strb r3, [r2, r1]
+ add r1, r3, #0x0
+ add r2, r3, #0x0
+_0202F71A:
+ ldr r4, [r0, #0x4]
+ add r5, r4, r3
+ ldr r4, _0202F800 ; =0x0000065F
+ strb r7, [r5, r4]
+ ldr r4, [r0, #0x4]
+ ldr r5, _0202F804 ; =0x00000667
+ add r6, r4, r3
+ mov r4, #0x1
+ strb r4, [r6, r5]
+ ldr r4, [r0, #0x4]
+ add r5, #0x8
+ add r6, r4, r3
+ mov r4, #0x1
+ strb r4, [r6, r5]
+ ldr r4, [r0, #0x4]
+ add r3, r3, #0x1
+ add r5, r4, r1
+ mov r4, #0x61
+ lsl r4, r4, #0x4
+ strh r7, [r5, r4]
+ ldr r4, [r0, #0x4]
+ ldr r5, _0202F808 ; =0x00000596
+ add r6, r4, r2
+ mov r4, #0xee
+ strb r4, [r6, r5]
+ ldr r4, [r0, #0x4]
+ ldr r5, _0202F80C ; =0x0000FFFF
+ add r6, r4, r2
+ ldr r4, _0202F810 ; =0x00000594
+ add r1, r1, #0x2
+ strh r5, [r6, r4]
+ ldr r4, [r0, #0x4]
+ add r5, r4, r2
+ mov r4, #0x59
+ lsl r4, r4, #0x4
+ str r7, [r5, r4]
+ ldr r4, [r0, #0x4]
+ add r5, r4, r2
+ ldr r4, _0202F814 ; =0x0000058C
+ add r2, #0xc
+ str r7, [r5, r4]
+ cmp r3, #0x8
+ blt _0202F71A
+ ldr r1, _0202F7D4 ; =0x021C59F4
+ add r0, r4, #0x0
+ ldr r3, [r1, #0x4]
+ add r0, #0xa4
+ mov r2, #0x1
+ str r2, [r3, r0]
+ add r3, r0, #0x0
+ ldr r4, [r1, #0x4]
+ sub r3, #0x3a
+ mov r2, #0xee
+ strb r2, [r4, r3]
+ add r3, r0, #0x0
+ ldr r4, [r1, #0x4]
+ ldr r2, _0202F80C ; =0x0000FFFF
+ sub r3, #0x3c
+ strh r2, [r4, r3]
+ add r2, r0, #0x0
+ ldr r3, [r1, #0x4]
+ sub r2, #0x40
+ str r7, [r3, r2]
+ add r2, r0, #0x0
+ ldr r3, [r1, #0x4]
+ sub r2, #0x44
+ str r7, [r3, r2]
+ add r3, r0, #0x0
+ ldr r4, [r1, #0x4]
+ add r3, #0x52
+ mov r2, #0x1
+ strb r2, [r4, r3]
+ add r3, r0, #0x0
+ ldr r4, [r1, #0x4]
+ add r3, #0x53
+ strb r2, [r4, r3]
+ ldr r1, [r1, #0x4]
+ sub r0, #0xe4
+ add r0, r1, r0
+ bl FUN_0202D804
+ ldr r0, _0202F7D4 ; =0x021C59F4
+ ldr r1, [r0, #0x4]
+ ldr r0, _0202F818 ; =0x0000056C
+ add r0, r1, r0
+ bl FUN_0202D804
+ ldr r0, _0202F7D4 ; =0x021C59F4
+ mov r2, #0x0
+ ldr r1, [r0, #0x4]
+ ldr r0, _0202F81C ; =0x00000688
+ strb r2, [r1, r0]
+ pop {r3-r7, pc}
+ .balign 4
+_0202F7D4: .word 0x021C59F4
+_0202F7D8: .word 0x0000062C
+_0202F7DC: .word 0x00000658
+_0202F7E0: .word 0x00000458
+_0202F7E4: .word 0x000004E8
+_0202F7E8: .word 0x00000454
+_0202F7EC: .word 0x0000047C
+_0202F7F0: .word 0x000004DC
+_0202F7F4: .word 0x00000464
+_0202F7F8: .word 0x0000045C
+_0202F7FC: .word 0x00000684
+_0202F800: .word 0x0000065F
+_0202F804: .word 0x00000667
+_0202F808: .word 0x00000596
+_0202F80C: .word 0x0000FFFF
+_0202F810: .word 0x00000594
+_0202F814: .word 0x0000058C
+_0202F818: .word 0x0000056C
+_0202F81C: .word 0x00000688
+
+ thumb_func_start FUN_0202F820
+FUN_0202F820: ; 0x0202F820
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ ldr r0, _0202F8B8 ; =0x021C59F4
+ ldr r3, _0202F8BC ; =0x0000065F
+ ldr r1, [r0, #0x4]
+ mov r2, #0x0
+ add r1, r1, r5
+ strb r2, [r1, r3]
+ ldr r4, [r0, #0x4]
+ mov r1, #0x1
+ add r6, r4, r5
+ add r4, r3, #0x0
+ add r4, #0x8
+ strb r1, [r6, r4]
+ ldr r6, [r0, #0x4]
+ lsl r4, r5, #0x2
+ add r6, r6, r4
+ add r4, r3, #0x0
+ sub r4, #0x27
+ str r2, [r6, r4]
+ ldr r2, [r0, #0x4]
+ add r4, r2, r5
+ add r2, r3, #0x0
+ add r2, #0x10
+ strb r1, [r4, r2]
+ ldr r1, [r0, #0x4]
+ sub r0, r3, #0x7
+ ldr r2, [r1, r0]
+ ldr r3, _0202F8C0 ; =0x0000047C
+ mov r0, #0xc
+ add r4, r5, #0x0
+ mul r4, r0
+ add r0, r1, r3
+ sub r3, #0x28
+ ldr r3, [r1, r3]
+ add r1, r5, #0x0
+ mul r1, r2
+ add r0, r0, r4
+ add r1, r3, r1
+ bl FUN_0202D394
+ ldr r0, _0202F8B8 ; =0x021C59F4
+ ldr r3, _0202F8C4 ; =0x000004E8
+ ldr r1, [r0, #0x4]
+ ldr r0, _0202F8C8 ; =0x00000658
+ ldr r2, [r1, r0]
+ add r0, r1, r3
+ sub r3, #0x90
+ ldr r3, [r1, r3]
+ add r1, r5, #0x0
+ mul r1, r2
+ add r0, r0, r4
+ add r1, r3, r1
+ bl FUN_0202D394
+ ldr r3, _0202F8B8 ; =0x021C59F4
+ ldr r2, _0202F8CC ; =0x00000596
+ ldr r0, [r3, #0x4]
+ mov r1, #0xee
+ add r0, r0, r4
+ strb r1, [r0, r2]
+ ldr r0, [r3, #0x4]
+ ldr r5, _0202F8D0 ; =0x0000FFFF
+ add r1, r0, r4
+ sub r0, r2, #0x2
+ strh r5, [r1, r0]
+ ldr r1, [r3, #0x4]
+ mov r0, #0x0
+ add r5, r1, r4
+ sub r1, r2, #0x6
+ str r0, [r5, r1]
+ ldr r1, [r3, #0x4]
+ sub r2, #0xa
+ add r1, r1, r4
+ str r0, [r1, r2]
+ pop {r4-r6, pc}
+ .balign 4
+_0202F8B8: .word 0x021C59F4
+_0202F8BC: .word 0x0000065F
+_0202F8C0: .word 0x0000047C
+_0202F8C4: .word 0x000004E8
+_0202F8C8: .word 0x00000658
+_0202F8CC: .word 0x00000596
+_0202F8D0: .word 0x0000FFFF
+
+ thumb_func_start FUN_0202F8D4
+FUN_0202F8D4: ; 0x0202F8D4
+ push {r4-r6, lr}
+ ldr r4, _0202F908 ; =0x021C59F4
+ ldr r6, _0202F90C ; =0x00000667
+ mov r5, #0x1
+_0202F8DC:
+ lsl r0, r5, #0x10
+ lsr r0, r0, #0x10
+ bl FUN_02030E7C
+ cmp r0, #0x0
+ bne _0202F900
+ ldr r0, [r4, #0x4]
+ add r0, r0, r5
+ ldrb r0, [r0, r6]
+ cmp r0, #0x0
+ bne _0202F900
+ bl FUN_02031280
+ cmp r0, #0x0
+ bne _0202F900
+ add r0, r5, #0x0
+ bl FUN_0202F820
+_0202F900:
+ add r5, r5, #0x1
+ cmp r5, #0x8
+ blt _0202F8DC
+ pop {r4-r6, pc}
+ .balign 4
+_0202F908: .word 0x021C59F4
+_0202F90C: .word 0x00000667
+
+ thumb_func_start FUN_0202F910
+FUN_0202F910: ; 0x0202F910
+ ldr r3, _0202F914 ; =FUN_0202F820
+ bx r3
+ .balign 4
+_0202F914: .word FUN_0202F820
+
+ thumb_func_start FUN_0202F918
+FUN_0202F918: ; 0x0202F918
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ add r6, r1, #0x0
+ add r7, r2, #0x0
+ str r3, [sp, #0x0]
+ mov r4, #0x1
+ bl FUN_02033534
+ cmp r0, #0x13
+ bge _0202F93E
+ ldr r2, [sp, #0x0]
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ bl FUN_0202E5F8
+ add r4, r0, #0x0
+ ldr r0, _0202F94C ; =FUN_0202F910
+ bl FUN_0202D330
+_0202F93E:
+ add r0, r5, #0x0
+ add r1, r7, #0x0
+ bl FUN_0202F150
+ add r0, r4, #0x0
+ pop {r3-r7, pc}
+ nop
+_0202F94C: .word FUN_0202F910
+
+ thumb_func_start FUN_0202F950
+FUN_0202F950: ; 0x0202F950
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ add r6, r1, #0x0
+ add r7, r2, #0x0
+ mov r4, #0x1
+ bl FUN_02033534
+ cmp r0, #0x13
+ bge _0202F96C
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ bl FUN_0202E66C
+ add r4, r0, #0x0
+_0202F96C:
+ add r0, r5, #0x0
+ add r1, r7, #0x0
+ bl FUN_0202F150
+ ldr r0, _0202F980 ; =0x02105D58
+ mov r1, #0x4
+ strb r1, [r0, #0x0]
+ add r0, r4, #0x0
+ pop {r3-r7, pc}
+ nop
+_0202F980: .word 0x02105D58
+
+ thumb_func_start FUN_0202F984
+FUN_0202F984: ; 0x0202F984
+ push {r4, lr}
+ mov r4, #0x0
+ bl FUN_02031190
+ cmp r0, #0x0
+ bne _0202F99A
+ ldr r0, _0202F9D4 ; =0x02105D58
+ ldrb r0, [r0, #0x1]
+ cmp r0, #0x4
+ beq _0202F9A2
+ pop {r4, pc}
+_0202F99A:
+ ldr r0, _0202F9D4 ; =0x02105D58
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x4
+ bne _0202F9D0
+_0202F9A2:
+ ldr r0, _0202F9D8 ; =0x021C59F4
+ ldr r2, [r0, #0x4]
+ ldr r0, _0202F9DC ; =0x0000067D
+ ldrb r1, [r2, r0]
+ cmp r1, #0x2
+ bne _0202F9B4
+ mov r1, #0x0
+ strb r1, [r2, r0]
+ mov r4, #0x1
+_0202F9B4:
+ ldr r0, _0202F9D8 ; =0x021C59F4
+ ldr r2, [r0, #0x4]
+ ldr r0, _0202F9DC ; =0x0000067D
+ ldrb r1, [r2, r0]
+ cmp r1, #0x3
+ bne _0202F9C4
+ mov r4, #0x1
+ strb r4, [r2, r0]
+_0202F9C4:
+ cmp r4, #0x0
+ beq _0202F9CC
+ bl FUN_0202F5A4
+_0202F9CC:
+ bl FUN_02031088
+_0202F9D0:
+ pop {r4, pc}
+ nop
+_0202F9D4: .word 0x02105D58
+_0202F9D8: .word 0x021C59F4
+_0202F9DC: .word 0x0000067D
+
+ thumb_func_start FUN_0202F9E0
+FUN_0202F9E0: ; 0x0202F9E0
+ ldr r1, _0202FA08 ; =0x021C59F4
+ ldr r3, [r1, #0x4]
+ ldr r1, _0202FA0C ; =0x0000067D
+ ldrb r2, [r3, r1]
+ cmp r2, #0x0
+ bne _0202F9F6
+ cmp r0, #0x1
+ bne _0202F9F6
+ mov r0, #0x3
+ strb r0, [r3, r1]
+ bx lr
+_0202F9F6:
+ cmp r2, #0x1
+ bne _0202FA04
+ cmp r0, #0x0
+ bne _0202FA04
+ ldr r0, _0202FA0C ; =0x0000067D
+ mov r1, #0x2
+ strb r1, [r3, r0]
+_0202FA04:
+ bx lr
+ nop
+_0202FA08: .word 0x021C59F4
+_0202FA0C: .word 0x0000067D
+
+ thumb_func_start FUN_0202FA10
+FUN_0202FA10: ; 0x0202FA10
+ ldr r3, _0202FA18 ; =FUN_0202F9E0
+ mov r0, #0x1
+ bx r3
+ nop
+_0202FA18: .word FUN_0202F9E0
+
+ thumb_func_start FUN_0202FA1C
+FUN_0202FA1C: ; 0x0202FA1C
+ ldr r3, _0202FA24 ; =FUN_0202F9E0
+ mov r0, #0x0
+ bx r3
+ nop
+_0202FA24: .word FUN_0202F9E0
+
+ thumb_func_start FUN_0202FA28
+FUN_0202FA28: ; 0x0202FA28
+ ldr r0, _0202FA40 ; =0x021C59F4
+ ldr r1, [r0, #0x4]
+ ldr r0, _0202FA44 ; =0x0000067D
+ ldrb r0, [r1, r0]
+ cmp r0, #0x2
+ bne _0202FA38
+ mov r0, #0x1
+ bx lr
+_0202FA38:
+ cmp r0, #0x3
+ bne _0202FA3E
+ mov r0, #0x0
+_0202FA3E:
+ bx lr
+ .balign 4
+_0202FA40: .word 0x021C59F4
+_0202FA44: .word 0x0000067D
+
+ thumb_func_start FUN_0202FA48
+FUN_0202FA48: ; 0x0202FA48
+ push {r3, lr}
+ bl FUN_0202FA28
+ cmp r0, #0x1
+ bne _0202FA56
+ mov r0, #0x1
+ pop {r3, pc}
+_0202FA56:
+ mov r0, #0x0
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_0202FA5C
+FUN_0202FA5C: ; 0x0202FA5C
+ push {r4, lr}
+ ldr r0, _0202FB00 ; =0x021C59F4
+ mov r4, #0x0
+ ldr r0, [r0, #0x4]
+ cmp r0, #0x0
+ beq _0202FA82
+ bl FUN_02033534
+ cmp r0, #0x13
+ blt _0202FA78
+ bl FUN_021D83C0
+ mov r4, #0x1
+ b _0202FA82
+_0202FA78:
+ bl FUN_0202E784
+ cmp r0, #0x0
+ beq _0202FA82
+ mov r4, #0x1
+_0202FA82:
+ cmp r4, #0x0
+ beq _0202FAFE
+ bl FUN_020314D0
+ bl FUN_0202DBA4
+ ldr r0, _0202FB00 ; =0x021C59F4
+ mov r1, #0x0
+ strb r1, [r0, #0x0]
+ ldr r1, [r0, #0x4]
+ ldr r0, _0202FB04 ; =0x00000548
+ ldr r0, [r1, r0]
+ bl FUN_0200CAB4
+ ldr r1, _0202FB00 ; =0x021C59F4
+ ldr r0, _0202FB04 ; =0x00000548
+ ldr r2, [r1, #0x4]
+ mov r3, #0x0
+ str r3, [r2, r0]
+ ldr r1, [r1, #0x4]
+ sub r0, #0xec
+ ldr r0, [r1, r0]
+ bl FUN_02016A18
+ ldr r0, _0202FB00 ; =0x021C59F4
+ ldr r1, [r0, #0x4]
+ mov r0, #0x46
+ lsl r0, r0, #0x4
+ ldr r0, [r1, r0]
+ bl FUN_02016A18
+ ldr r0, _0202FB00 ; =0x021C59F4
+ ldr r1, [r0, #0x4]
+ ldr r0, _0202FB08 ; =0x00000458
+ ldr r0, [r1, r0]
+ bl FUN_02016A18
+ ldr r0, _0202FB00 ; =0x021C59F4
+ ldr r1, [r0, #0x4]
+ ldr r0, _0202FB0C ; =0x00000454
+ ldr r0, [r1, r0]
+ bl FUN_02016A18
+ ldr r0, _0202FB00 ; =0x021C59F4
+ ldr r1, [r0, #0x4]
+ ldr r0, _0202FB10 ; =0x0000056C
+ add r0, r1, r0
+ bl FUN_0202D824
+ ldr r0, _0202FB00 ; =0x021C59F4
+ ldr r1, [r0, #0x4]
+ ldr r0, _0202FB14 ; =0x0000054C
+ add r0, r1, r0
+ bl FUN_0202D824
+ ldr r0, _0202FB00 ; =0x021C59F4
+ ldr r0, [r0, #0x4]
+ bl FUN_02016A18
+ ldr r0, _0202FB00 ; =0x021C59F4
+ mov r1, #0x0
+ str r1, [r0, #0x4]
+_0202FAFE:
+ pop {r4, pc}
+ .balign 4
+_0202FB00: .word 0x021C59F4
+_0202FB04: .word 0x00000548
+_0202FB08: .word 0x00000458
+_0202FB0C: .word 0x00000454
+_0202FB10: .word 0x0000056C
+_0202FB14: .word 0x0000054C
+
+ thumb_func_start FUN_0202FB18
+FUN_0202FB18: ; 0x0202FB18
+ ldr r3, _0202FB1C ; =FUN_0202E9E8
+ bx r3
+ .balign 4
+_0202FB1C: .word FUN_0202E9E8
+
+ thumb_func_start FUN_0202FB20
+FUN_0202FB20: ; 0x0202FB20
+ push {r3, lr}
+ ldr r0, _0202FB54 ; =0x021C59F4
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x0
+ beq _0202FB52
+ bl FUN_0203050C
+ bl FUN_02031190
+ cmp r0, #0x0
+ bne _0202FB40
+ mov r0, #0x0
+ bl FUN_02030E7C
+ cmp r0, #0x0
+ bne _0202FB48
+_0202FB40:
+ bl FUN_02031280
+ cmp r0, #0x0
+ beq _0202FB4C
+_0202FB48:
+ bl FUN_0202FEEC
+_0202FB4C:
+ ldr r0, _0202FB54 ; =0x021C59F4
+ mov r1, #0x0
+ strb r1, [r0, #0x0]
+_0202FB52:
+ pop {r3, pc}
+ .balign 4
+_0202FB54: .word 0x021C59F4
+
+ thumb_func_start FUN_0202FB58
+FUN_0202FB58: ; 0x0202FB58
+ push {r3, lr}
+ bl FUN_0202F03C
+ cmp r0, #0x0
+ beq _0202FB7C
+ bl FUN_02031190
+ cmp r0, #0x0
+ bne _0202FB78
+ bl FUN_0202EE24
+ cmp r0, #0x0
+ bne _0202FB7C
+ bl FUN_0202FA5C
+ pop {r3, pc}
+_0202FB78:
+ bl FUN_0202FA5C
+_0202FB7C:
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_0202FB80
+FUN_0202FB80: ; 0x0202FB80
+ push {r4, lr}
+ bl FUN_02031CDC
+ ldr r1, _0202FC48 ; =0x021C59F4
+ ldr r2, [r1, #0x4]
+ cmp r2, #0x0
+ beq _0202FC34
+ ldr r0, _0202FC4C ; =0x0000068A
+ ldrb r0, [r2, r0]
+ cmp r0, #0x0
+ bne _0202FC16
+ mov r0, #0x0
+ strb r0, [r1, #0x0]
+ bl FUN_0202F984
+ ldr r0, _0202FC48 ; =0x021C59F4
+ ldr r1, _0202FC50 ; =0x021C48B8
+ ldr r0, [r0, #0x4]
+ ldr r2, _0202FC54 ; =0x00000628
+ ldr r3, [r1, #0x44]
+ ldr r1, _0202FC58 ; =0x00007FFF
+ ldrh r4, [r0, r2]
+ and r1, r3
+ orr r1, r4
+ strh r1, [r0, r2]
+ bl FUN_02030674
+ bl FUN_0202FCCC
+ ldr r0, _0202FC48 ; =0x021C59F4
+ ldr r1, _0202FC54 ; =0x00000628
+ ldr r3, [r0, #0x4]
+ mov r0, #0x2
+ ldrh r2, [r3, r1]
+ lsl r0, r0, #0xe
+ and r0, r2
+ strh r0, [r3, r1]
+ bl FUN_0202FA28
+ cmp r0, #0x0
+ bne _0202FBD6
+ bl FUN_02030DA4
+_0202FBD6:
+ bl FUN_02031190
+ cmp r0, #0x0
+ bne _0202FBE8
+ mov r0, #0x0
+ bl FUN_02030E7C
+ cmp r0, #0x0
+ bne _0202FBF0
+_0202FBE8:
+ bl FUN_02031280
+ cmp r0, #0x0
+ beq _0202FBF4
+_0202FBF0:
+ bl FUN_02030074
+_0202FBF4:
+ bl FUN_02031190
+ cmp r0, #0x0
+ beq _0202FC0C
+ bl FUN_0202FA28
+ cmp r0, #0x1
+ beq _0202FC0C
+ bl FUN_02031280
+ cmp r0, #0x0
+ beq _0202FC10
+_0202FC0C:
+ bl FUN_02030DFC
+_0202FC10:
+ ldr r0, _0202FC48 ; =0x021C59F4
+ mov r1, #0x1
+ strb r1, [r0, #0x0]
+_0202FC16:
+ ldr r0, _0202FC48 ; =0x021C59F4
+ ldr r1, [r0, #0x4]
+ ldr r0, _0202FC5C ; =0x0000065C
+ ldrh r0, [r1, r0]
+ bl FUN_0202ED70
+ bl FUN_02031190
+ cmp r0, #0x0
+ bne _0202FC2E
+ bl FUN_0202F8D4
+_0202FC2E:
+ bl FUN_0202FB58
+ b _0202FC3A
+_0202FC34:
+ mov r0, #0x0
+ bl FUN_0202ED70
+_0202FC3A:
+ mov r0, #0x0
+ bl FUN_020335F4
+ bl FUN_020315A4
+ mov r0, #0x1
+ pop {r4, pc}
+ .balign 4
+_0202FC48: .word 0x021C59F4
+_0202FC4C: .word 0x0000068A
+_0202FC50: .word 0x021C48B8
+_0202FC54: .word 0x00000628
+_0202FC58: .word 0x00007FFF
+_0202FC5C: .word 0x0000065C
+
+ thumb_func_start FUN_0202FC60
+FUN_0202FC60: ; 0x0202FC60
+ push {r4, lr}
+ ldr r0, _0202FC7C ; =0x021C59F4
+ mov r1, #0x0
+ ldrb r4, [r0, #0x0]
+ strb r1, [r0, #0x0]
+ ldr r0, [r0, #0x4]
+ cmp r0, #0x0
+ beq _0202FC74
+ bl FUN_0202F2F0
+_0202FC74:
+ ldr r0, _0202FC7C ; =0x021C59F4
+ strb r4, [r0, #0x0]
+ pop {r4, pc}
+ nop
+_0202FC7C: .word 0x021C59F4
+
+ thumb_func_start FUN_0202FC80
+FUN_0202FC80: ; 0x0202FC80
+ push {r4, lr}
+ ldr r0, _0202FCA0 ; =0x021C59F4
+ mov r1, #0x0
+ ldrb r4, [r0, #0x0]
+ strb r1, [r0, #0x0]
+ ldr r2, [r0, #0x4]
+ cmp r2, #0x0
+ beq _0202FC9A
+ ldr r0, _0202FCA4 ; =0x0000067D
+ mov r1, #0x1
+ strb r1, [r2, r0]
+ bl FUN_0202F2F0
+_0202FC9A:
+ ldr r0, _0202FCA0 ; =0x021C59F4
+ strb r4, [r0, #0x0]
+ pop {r4, pc}
+ .balign 4
+_0202FCA0: .word 0x021C59F4
+_0202FCA4: .word 0x0000067D
+
+ thumb_func_start FUN_0202FCA8
+FUN_0202FCA8: ; 0x0202FCA8
+ push {r4, lr}
+ ldr r0, _0202FCC8 ; =0x021C59F4
+ mov r1, #0x0
+ ldrb r4, [r0, #0x0]
+ strb r1, [r0, #0x0]
+ ldr r0, [r0, #0x4]
+ cmp r0, #0x0
+ beq _0202FCC0
+ bl FUN_0202F2F0
+ bl FUN_0202E538
+_0202FCC0:
+ ldr r0, _0202FCC8 ; =0x021C59F4
+ strb r4, [r0, #0x0]
+ pop {r4, pc}
+ nop
+_0202FCC8: .word 0x021C59F4
+
+ thumb_func_start FUN_0202FCCC
+FUN_0202FCCC: ; 0x0202FCCC
+ push {r3, lr}
+ ldr r0, _0202FE14 ; =0x021C59F4
+ ldr r1, [r0, #0x4]
+ ldr r0, _0202FE18 ; =0x00000683
+ ldrb r0, [r1, r0]
+ cmp r0, #0x0
+ beq _0202FD40
+ bl FUN_02033534
+ cmp r0, #0x13
+ blt _0202FD06
+ ldr r0, _0202FE14 ; =0x021C59F4
+ ldr r1, _0202FE1C ; =0x00000687
+ ldr r0, [r0, #0x4]
+ ldrb r1, [r0, r1]
+ cmp r1, #0x0
+ beq _0202FCF8
+ mov r1, #0x26
+ bl FUN_021D78FC
+ cmp r0, #0x0
+ bne _0202FCFA
+_0202FCF8:
+ b _0202FE10
+_0202FCFA:
+ ldr r0, _0202FE14 ; =0x021C59F4
+ mov r2, #0x0
+ ldr r1, [r0, #0x4]
+ ldr r0, _0202FE18 ; =0x00000683
+ strb r2, [r1, r0]
+ pop {r3, pc}
+_0202FD06:
+ bl FUN_0202CBD4
+ cmp r0, #0x4
+ bne _0202FD1A
+ bl FUN_02031190
+ bl FUN_02030E7C
+ cmp r0, #0x0
+ bne _0202FD22
+_0202FD1A:
+ bl FUN_02031280
+ cmp r0, #0x0
+ beq _0202FE10
+_0202FD22:
+ ldr r0, _0202FE20 ; =0x02105D58
+ mov r1, #0x0
+ strb r1, [r0, #0x0]
+ bl FUN_0203050C
+ ldr r0, _0202FE20 ; =0x02105D58
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x0
+ beq _0202FE10
+ ldr r0, _0202FE14 ; =0x021C59F4
+ mov r2, #0x0
+ ldr r1, [r0, #0x4]
+ ldr r0, _0202FE18 ; =0x00000683
+ strb r2, [r1, r0]
+ pop {r3, pc}
+_0202FD40:
+ bl FUN_02033534
+ cmp r0, #0x13
+ blt _0202FDB2
+ ldr r0, _0202FE14 ; =0x021C59F4
+ ldr r2, _0202FE1C ; =0x00000687
+ ldr r0, [r0, #0x4]
+ ldrb r1, [r0, r2]
+ cmp r1, #0x0
+ beq _0202FE10
+ add r1, r2, #0x0
+ sub r1, #0x57
+ ldr r1, [r0, r1]
+ cmp r1, #0x0
+ beq _0202FD7A
+ sub r2, #0x53
+ ldr r1, [r0, r2]
+ cmp r1, #0x3
+ bgt _0202FE10
+ ldr r1, _0202FE20 ; =0x02105D58
+ ldrb r1, [r1, #0x0]
+ cmp r1, #0x4
+ bne _0202FD90
+ bl FUN_02030930
+ ldr r0, _0202FE20 ; =0x02105D58
+ mov r1, #0x2
+ strb r1, [r0, #0x0]
+ b _0202FD90
+_0202FD7A:
+ ldr r1, _0202FE20 ; =0x02105D58
+ ldrb r1, [r1, #0x0]
+ cmp r1, #0x4
+ bne _0202FD90
+ bl FUN_02030930
+ cmp r0, #0x0
+ beq _0202FE10
+ ldr r0, _0202FE20 ; =0x02105D58
+ mov r1, #0x2
+ strb r1, [r0, #0x0]
+_0202FD90:
+ ldr r0, _0202FE14 ; =0x021C59F4
+ mov r1, #0x26
+ ldr r0, [r0, #0x4]
+ bl FUN_021D78FC
+ cmp r0, #0x0
+ beq _0202FE10
+ ldr r0, _0202FE20 ; =0x02105D58
+ mov r1, #0x4
+ strb r1, [r0, #0x0]
+ ldr r0, _0202FE14 ; =0x021C59F4
+ ldr r2, [r0, #0x4]
+ ldr r0, _0202FE24 ; =0x00000634
+ ldr r1, [r2, r0]
+ add r1, r1, #0x1
+ str r1, [r2, r0]
+ pop {r3, pc}
+_0202FDB2:
+ bl FUN_0202CBD4
+ cmp r0, #0x4
+ bne _0202FDC6
+ bl FUN_02031190
+ bl FUN_02030E7C
+ cmp r0, #0x0
+ bne _0202FDCE
+_0202FDC6:
+ bl FUN_02031280
+ cmp r0, #0x0
+ beq _0202FE10
+_0202FDCE:
+ ldr r0, _0202FE20 ; =0x02105D58
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x4
+ bne _0202FE10
+ ldr r0, _0202FE14 ; =0x021C59F4
+ ldr r2, [r0, #0x4]
+ ldr r0, _0202FE24 ; =0x00000634
+ ldr r1, [r2, r0]
+ cmp r1, #0x3
+ bgt _0202FE10
+ add r0, #0x4b
+ ldrb r1, [r2, r0]
+ mov r0, #0x26
+ mul r0, r1
+ add r0, r2, r0
+ bl FUN_02030930
+ ldr r0, _0202FE14 ; =0x021C59F4
+ ldr r2, [r0, #0x4]
+ ldr r0, _0202FE28 ; =0x0000067F
+ ldrb r1, [r2, r0]
+ mov r0, #0x1
+ sub r1, r0, r1
+ mov r0, #0x26
+ mul r0, r1
+ add r0, r2, r0
+ bl FUN_02030930
+ ldr r0, _0202FE20 ; =0x02105D58
+ mov r1, #0x0
+ strb r1, [r0, #0x0]
+ bl FUN_0203050C
+_0202FE10:
+ pop {r3, pc}
+ nop
+_0202FE14: .word 0x021C59F4
+_0202FE18: .word 0x00000683
+_0202FE1C: .word 0x00000687
+_0202FE20: .word 0x02105D58
+_0202FE24: .word 0x00000634
+_0202FE28: .word 0x0000067F
+
+ thumb_func_start FUN_0202FE2C
+FUN_0202FE2C: ; 0x0202FE2C
+ push {r3-r7, lr}
+ sub sp, #0x10
+ str r0, [sp, #0x0]
+ mov r0, #0x0
+ str r0, [sp, #0x4]
+ bl FUN_02033534
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ bl FUN_02031228
+ str r0, [sp, #0xc]
+ bl FUN_02033534
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ bl FUN_0202D858
+ add r0, r0, #0x1
+ mov r7, #0x0
+ str r0, [sp, #0x8]
+ cmp r0, #0x0
+ ble _0202FED0
+ ldr r0, [sp, #0x0]
+ mov r1, #0xc0
+ add r6, r0, #0x0
+ add r4, r7, #0x0
+ add r5, r7, #0x0
+ mul r6, r1
+_0202FE66:
+ ldr r0, _0202FEE4 ; =0x021C59F4
+ ldr r1, [r0, #0x4]
+ ldr r0, _0202FEE8 ; =0x0000047C
+ add r0, r1, r0
+ add r0, r0, r4
+ bl FUN_0202D4BC
+ lsl r0, r7, #0x10
+ lsr r0, r0, #0x10
+ bl FUN_02030E7C
+ cmp r0, #0x0
+ beq _0202FE90
+ ldr r0, _0202FEE4 ; =0x021C59F4
+ mov r1, #0xe
+ ldr r0, [r0, #0x4]
+ add r0, r6, r0
+ add r2, r5, r0
+ mov r0, #0x55
+ lsl r0, r0, #0x2
+ strb r1, [r2, r0]
+_0202FE90:
+ ldr r0, _0202FEE4 ; =0x021C59F4
+ mov r2, #0x55
+ ldr r1, [r0, #0x4]
+ ldr r0, _0202FEE8 ; =0x0000047C
+ lsl r2, r2, #0x2
+ add r0, r1, r0
+ add r1, r1, r2
+ add r1, r1, r6
+ ldr r2, [sp, #0xc]
+ add r0, r0, r4
+ add r1, r1, r5
+ bl FUN_0202D400
+ ldr r0, _0202FEE4 ; =0x021C59F4
+ ldr r0, [r0, #0x4]
+ add r0, r6, r0
+ add r1, r5, r0
+ mov r0, #0x55
+ lsl r0, r0, #0x2
+ ldrb r0, [r1, r0]
+ cmp r0, #0xe
+ bne _0202FEC2
+ ldr r0, [sp, #0x4]
+ add r0, r0, #0x1
+ str r0, [sp, #0x4]
+_0202FEC2:
+ ldr r0, [sp, #0xc]
+ add r7, r7, #0x1
+ add r5, r5, r0
+ ldr r0, [sp, #0x8]
+ add r4, #0xc
+ cmp r7, r0
+ blt _0202FE66
+_0202FED0:
+ ldr r1, [sp, #0x4]
+ ldr r0, [sp, #0x8]
+ cmp r1, r0
+ bne _0202FEDE
+ add sp, #0x10
+ mov r0, #0x0
+ pop {r3-r7, pc}
+_0202FEDE:
+ mov r0, #0x1
+ add sp, #0x10
+ pop {r3-r7, pc}
+ .balign 4
+_0202FEE4: .word 0x021C59F4
+_0202FEE8: .word 0x0000047C
+
+ thumb_func_start FUN_0202FEEC
+FUN_0202FEEC: ; 0x0202FEEC
+ push {r3-r7, lr}
+ ldr r0, _02030064 ; =0x021C59F4
+ ldr r0, [r0, #0x4]
+ cmp r0, #0x0
+ beq _0202FEFE
+ bl FUN_02033534
+ cmp r0, #0x13
+ blt _0202FF00
+_0202FEFE:
+ b _02030062
+_0202FF00:
+ bl FUN_02033534
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ bl FUN_02031228
+ str r0, [sp, #0x0]
+ bl FUN_02033534
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ bl FUN_0202D858
+ add r6, r0, #0x1
+ ldr r0, _02030068 ; =0x02105D58
+ ldrb r1, [r0, #0x1]
+ cmp r1, #0x2
+ beq _0202FF2C
+ ldrb r0, [r0, #0x1]
+ cmp r0, #0x0
+ beq _0202FF2C
+ b _02030062
+_0202FF2C:
+ ldr r0, _02030068 ; =0x02105D58
+ ldrb r1, [r0, #0x1]
+ add r1, r1, #0x1
+ strb r1, [r0, #0x1]
+ bl FUN_0202FA28
+ cmp r0, #0x1
+ bne _0202FF4A
+ ldr r0, _02030064 ; =0x021C59F4
+ ldr r1, [r0, #0x4]
+ mov r0, #0x1a
+ lsl r0, r0, #0x6
+ ldrb r0, [r1, r0]
+ bl FUN_0202FE2C
+_0202FF4A:
+ bl FUN_0202CBD4
+ cmp r0, #0x4
+ bne _0202FF86
+ bl FUN_02031280
+ cmp r0, #0x0
+ bne _0202FF86
+ ldr r0, _02030064 ; =0x021C59F4
+ ldr r1, [r0, #0x4]
+ mov r0, #0x55
+ lsl r0, r0, #0x2
+ add r3, r1, r0
+ mov r0, #0x1a
+ lsl r0, r0, #0x6
+ ldrb r0, [r1, r0]
+ mov r1, #0xc0
+ add r2, r0, #0x0
+ mul r2, r1
+ add r0, r3, r2
+ ldr r3, _0203006C ; =FUN_020304F0
+ mov r2, #0xe
+ bl FUN_0202D0D0
+ cmp r0, #0x0
+ bne _0202FF86
+ ldr r0, _02030068 ; =0x02105D58
+ ldrb r1, [r0, #0x1]
+ sub r1, r1, #0x1
+ strb r1, [r0, #0x1]
+_0202FF86:
+ ldr r0, _02030068 ; =0x02105D58
+ ldrb r1, [r0, #0x1]
+ cmp r1, #0x1
+ beq _0202FF94
+ ldrb r0, [r0, #0x1]
+ cmp r0, #0x3
+ bne _0203000A
+_0202FF94:
+ mov r4, #0x0
+ cmp r6, #0x0
+ ble _0202FFDC
+ ldr r7, _02030064 ; =0x021C59F4
+ add r5, r4, #0x0
+_0202FF9E:
+ lsl r0, r4, #0x10
+ lsr r0, r0, #0x10
+ bl FUN_02030E7C
+ cmp r0, #0x0
+ beq _0202FFBA
+ ldr r0, [r7, #0x4]
+ ldr r1, _02030070 ; =0x00000638
+ add r0, r0, r5
+ ldr r1, [r0, r1]
+ add r2, r1, #0x1
+ ldr r1, _02030070 ; =0x00000638
+ str r2, [r0, r1]
+ b _0202FFD4
+_0202FFBA:
+ bl FUN_02031280
+ cmp r0, #0x0
+ beq _0202FFD4
+ cmp r4, #0x0
+ bne _0202FFD4
+ ldr r0, [r7, #0x4]
+ ldr r1, _02030070 ; =0x00000638
+ add r0, r0, r5
+ ldr r1, [r0, r1]
+ add r2, r1, #0x1
+ ldr r1, _02030070 ; =0x00000638
+ str r2, [r0, r1]
+_0202FFD4:
+ add r4, r4, #0x1
+ add r5, r5, #0x4
+ cmp r4, r6
+ blt _0202FF9E
+_0202FFDC:
+ ldr r0, _02030064 ; =0x021C59F4
+ mov r1, #0x55
+ ldr r2, [r0, #0x4]
+ lsl r1, r1, #0x2
+ add r4, r2, r1
+ mov r1, #0x1a
+ lsl r1, r1, #0x6
+ ldrb r1, [r2, r1]
+ mov r2, #0xc0
+ mov r0, #0x0
+ add r3, r1, #0x0
+ mul r3, r2
+ add r1, r4, r3
+ bl FUN_0203026C
+ ldr r0, _02030064 ; =0x021C59F4
+ mov r1, #0x1a
+ ldr r3, [r0, #0x4]
+ lsl r1, r1, #0x6
+ ldrb r2, [r3, r1]
+ mov r0, #0x1
+ sub r0, r0, r2
+ strb r0, [r3, r1]
+_0203000A:
+ mov r5, #0x0
+ cmp r6, #0x0
+ ble _0203004A
+ add r4, r5, #0x0
+ mov r7, #0xff
+_02030014:
+ lsl r0, r5, #0x10
+ lsr r0, r0, #0x10
+ bl FUN_02030E7C
+ cmp r0, #0x0
+ bne _02030040
+ bl FUN_0202FA28
+ cmp r0, #0x1
+ bne _02030040
+ ldr r0, _02030064 ; =0x021C59F4
+ mov r1, #0x1a
+ ldr r0, [r0, #0x4]
+ lsl r1, r1, #0x6
+ ldrb r2, [r0, r1]
+ mov r1, #0xc0
+ mul r1, r2
+ add r0, r0, r1
+ add r1, r4, r0
+ mov r0, #0x55
+ lsl r0, r0, #0x2
+ strb r7, [r1, r0]
+_02030040:
+ ldr r0, [sp, #0x0]
+ add r5, r5, #0x1
+ add r4, r4, r0
+ cmp r5, r6
+ blt _02030014
+_0203004A:
+ bl FUN_0202CBD4
+ cmp r0, #0x4
+ bne _0203005A
+ bl FUN_02031280
+ cmp r0, #0x0
+ beq _02030062
+_0203005A:
+ ldr r0, _02030068 ; =0x02105D58
+ ldrb r1, [r0, #0x1]
+ add r1, r1, #0x1
+ strb r1, [r0, #0x1]
+_02030062:
+ pop {r3-r7, pc}
+ .balign 4
+_02030064: .word 0x021C59F4
+_02030068: .word 0x02105D58
+_0203006C: .word FUN_020304F0
+_02030070: .word 0x00000638
+
+ thumb_func_start FUN_02030074
+FUN_02030074: ; 0x02030074
+ push {r3-r7, lr}
+ ldr r0, _02030228 ; =0x021C59F4
+ ldr r1, [r0, #0x4]
+ ldr r0, _0203022C ; =0x00000683
+ ldrb r0, [r1, r0]
+ cmp r0, #0x0
+ beq _020300DC
+ bl FUN_02033534
+ cmp r0, #0x13
+ blt _020300B4
+ mov r0, #0x0
+ bl FUN_02030E7C
+ cmp r0, #0x0
+ beq _020300DC
+ ldr r0, _02030228 ; =0x021C59F4
+ ldr r1, [r0, #0x4]
+ mov r0, #0x55
+ lsl r0, r0, #0x2
+ add r0, r1, r0
+ mov r1, #0x4c
+ bl FUN_021D79B4
+ cmp r0, #0x0
+ beq _020300DC
+ ldr r0, _02030228 ; =0x021C59F4
+ mov r2, #0x0
+ ldr r1, [r0, #0x4]
+ ldr r0, _0203022C ; =0x00000683
+ strb r2, [r1, r0]
+ pop {r3-r7, pc}
+_020300B4:
+ bl FUN_0202CBD4
+ cmp r0, #0x4
+ beq _020300C4
+ bl FUN_02031280
+ cmp r0, #0x0
+ beq _020300DC
+_020300C4:
+ bl FUN_0202FEEC
+ ldr r0, _02030230 ; =0x02105D58
+ ldrb r0, [r0, #0x1]
+ cmp r0, #0x2
+ bne _020300DC
+ ldr r0, _02030228 ; =0x021C59F4
+ mov r2, #0x0
+ ldr r1, [r0, #0x4]
+ ldr r0, _0203022C ; =0x00000683
+ strb r2, [r1, r0]
+ pop {r3-r7, pc}
+_020300DC:
+ bl FUN_02033534
+ cmp r0, #0x13
+ blt _02030184
+ mov r0, #0x0
+ bl FUN_02030E7C
+ cmp r0, #0x0
+ bne _020300F0
+ b _02030224
+_020300F0:
+ ldr r0, _02030228 ; =0x021C59F4
+ mov r1, #0x63
+ ldr r2, [r0, #0x4]
+ lsl r1, r1, #0x4
+ ldr r0, [r2, r1]
+ cmp r0, #0x0
+ beq _02030130
+ add r0, r1, #0x0
+ add r0, #0xc
+ ldr r0, [r2, r0]
+ cmp r0, #0x3
+ bgt _02030110
+ add r1, #0x8
+ ldr r0, [r2, r1]
+ cmp r0, #0x3
+ ble _02030112
+_02030110:
+ b _02030224
+_02030112:
+ ldr r0, _02030230 ; =0x02105D58
+ ldrb r0, [r0, #0x1]
+ cmp r0, #0x4
+ bne _02030150
+ bl FUN_0202FA28
+ cmp r0, #0x1
+ bne _02030128
+ mov r0, #0x0
+ bl FUN_0202FE2C
+_02030128:
+ ldr r0, _02030230 ; =0x02105D58
+ mov r1, #0x2
+ strb r1, [r0, #0x1]
+ b _02030150
+_02030130:
+ ldr r0, _02030230 ; =0x02105D58
+ ldrb r0, [r0, #0x1]
+ cmp r0, #0x4
+ bne _0203014A
+ bl FUN_0202FA28
+ cmp r0, #0x1
+ bne _0203014A
+ mov r0, #0x0
+ bl FUN_0202FE2C
+ cmp r0, #0x0
+ beq _02030224
+_0203014A:
+ ldr r0, _02030230 ; =0x02105D58
+ mov r1, #0x2
+ strb r1, [r0, #0x1]
+_02030150:
+ ldr r0, _02030228 ; =0x021C59F4
+ ldr r1, [r0, #0x4]
+ mov r0, #0x55
+ lsl r0, r0, #0x2
+ add r0, r1, r0
+ mov r1, #0x4c
+ bl FUN_021D79B4
+ cmp r0, #0x0
+ beq _02030224
+ ldr r0, _02030230 ; =0x02105D58
+ mov r1, #0x4
+ strb r1, [r0, #0x1]
+ ldr r1, _02030228 ; =0x021C59F4
+ ldr r0, _02030234 ; =0x00000638
+ ldr r3, [r1, #0x4]
+ ldr r2, [r3, r0]
+ add r2, r2, #0x1
+ str r2, [r3, r0]
+ ldr r2, [r1, #0x4]
+ add r1, r0, #0x4
+ ldr r1, [r2, r1]
+ add r0, r0, #0x4
+ add r1, r1, #0x1
+ str r1, [r2, r0]
+ pop {r3-r7, pc}
+_02030184:
+ bl FUN_0202CBD4
+ cmp r0, #0x4
+ beq _02030194
+ bl FUN_02031280
+ cmp r0, #0x0
+ beq _02030224
+_02030194:
+ ldr r0, _02030230 ; =0x02105D58
+ ldrb r0, [r0, #0x1]
+ cmp r0, #0x4
+ bne _02030224
+ ldr r6, _02030228 ; =0x021C59F4
+ ldr r7, _02030234 ; =0x00000638
+ mov r4, #0x1
+ mov r5, #0x4
+_020301A4:
+ lsl r0, r4, #0x10
+ lsr r0, r0, #0x10
+ bl FUN_02030E7C
+ cmp r0, #0x0
+ beq _020301BC
+ ldr r0, [r6, #0x4]
+ add r0, r0, r5
+ ldr r0, [r0, r7]
+ cmp r0, #0x3
+ ble _020301D2
+ pop {r3-r7, pc}
+_020301BC:
+ cmp r4, #0x0
+ bne _020301D2
+ bl FUN_02031280
+ cmp r0, #0x0
+ beq _020301D2
+ ldr r1, [r6, #0x4]
+ ldr r0, _02030234 ; =0x00000638
+ ldr r0, [r1, r0]
+ cmp r0, #0x3
+ bgt _02030224
+_020301D2:
+ add r4, r4, #0x1
+ add r5, r5, #0x4
+ cmp r4, #0x8
+ blt _020301A4
+ bl FUN_0202FA28
+ cmp r0, #0x0
+ bne _0203021A
+ ldr r0, _02030228 ; =0x021C59F4
+ ldr r1, [r0, #0x4]
+ mov r0, #0x55
+ lsl r0, r0, #0x2
+ add r2, r1, r0
+ mov r0, #0x1a
+ lsl r0, r0, #0x6
+ ldrb r1, [r1, r0]
+ mov r0, #0xc0
+ mul r0, r1
+ add r0, r2, r0
+ bl FUN_02030A00
+ ldr r0, _02030228 ; =0x021C59F4
+ ldr r1, [r0, #0x4]
+ mov r0, #0x55
+ lsl r0, r0, #0x2
+ add r2, r1, r0
+ mov r0, #0x1a
+ lsl r0, r0, #0x6
+ ldrb r1, [r1, r0]
+ mov r0, #0x1
+ sub r1, r0, r1
+ mov r0, #0xc0
+ mul r0, r1
+ add r0, r2, r0
+ bl FUN_02030A00
+_0203021A:
+ ldr r0, _02030230 ; =0x02105D58
+ mov r1, #0x0
+ strb r1, [r0, #0x1]
+ bl FUN_0202FEEC
+_02030224:
+ pop {r3-r7, pc}
+ nop
+_02030228: .word 0x021C59F4
+_0203022C: .word 0x00000683
+_02030230: .word 0x02105D58
+_02030234: .word 0x00000638
+
+ thumb_func_start FUN_02030238
+FUN_02030238: ; 0x02030238
+ push {r4-r6, lr}
+ ldr r4, _02030264 ; =0x021C59F4
+ ldr r3, _02030268 ; =0x0000066F
+ ldr r5, [r4, #0x4]
+ ldrb r6, [r5, r3]
+ cmp r6, #0x0
+ beq _0203025C
+ add r0, r3, #0x0
+ sub r0, #0x3b
+ ldr r0, [r5, r0]
+ sub r1, r0, #0x1
+ add r0, r3, #0x0
+ sub r0, #0x3b
+ str r1, [r5, r0]
+ ldr r0, [r4, #0x4]
+ mov r1, #0x0
+ strb r1, [r0, r3]
+ pop {r4-r6, pc}
+_0203025C:
+ bl FUN_0203026C
+ pop {r4-r6, pc}
+ nop
+_02030264: .word 0x021C59F4
+_02030268: .word 0x0000066F
+
+ thumb_func_start FUN_0203026C
+FUN_0203026C: ; 0x0203026C
+ push {r3-r7, lr}
+ sub sp, #0x8
+ ldr r0, _020303A0 ; =0x021C59F4
+ add r5, r1, #0x0
+ ldr r2, [r0, #0x4]
+ ldr r0, _020303A4 ; =0x00000634
+ ldr r1, [r2, r0]
+ sub r1, r1, #0x1
+ str r1, [r2, r0]
+ cmp r5, #0x0
+ beq _02030290
+ ldrb r0, [r5, #0x0]
+ cmp r0, #0xb
+ bne _02030296
+ bl FUN_0202FA28
+ cmp r0, #0x1
+ bne _02030292
+_02030290:
+ b _0203039C
+_02030292:
+ add r5, r5, #0x1
+ b _0203029E
+_02030296:
+ bl FUN_0202FA28
+ cmp r0, #0x0
+ beq _0203039C
+_0203029E:
+ ldr r0, _020303A0 ; =0x021C59F4
+ ldr r1, _020303A8 ; =0x00000682
+ ldr r0, [r0, #0x4]
+ ldrb r1, [r0, r1]
+ cmp r1, #0x0
+ beq _020302B2
+ ldrb r2, [r5, #0x0]
+ mov r1, #0x1
+ tst r1, r2
+ bne _0203039C
+_020302B2:
+ ldr r1, _020303A8 ; =0x00000682
+ mov r2, #0x0
+ strb r2, [r0, r1]
+ bl FUN_0202FA28
+ cmp r0, #0x1
+ bne _0203036E
+ bl FUN_02033534
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ bl FUN_02031228
+ add r6, r0, #0x0
+ bl FUN_02033534
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ bl FUN_0202D858
+ add r0, r0, #0x1
+ mov r4, #0x0
+ str r0, [sp, #0x4]
+ cmp r0, #0x0
+ ble _0203039C
+ sub r0, r6, #0x1
+ add r7, r4, #0x0
+ str r0, [sp, #0x0]
+_020302EA:
+ ldrb r0, [r5, #0x0]
+ cmp r0, #0xff
+ bne _02030302
+ ldr r0, _020303A0 ; =0x021C59F4
+ mov r2, #0x1
+ ldr r1, [r0, #0x4]
+ ldr r0, _020303AC ; =0x0000065C
+ lsl r2, r4
+ ldrh r0, [r1, r0]
+ mvn r2, r2
+ and r2, r0
+ b _02030310
+_02030302:
+ ldr r0, _020303A0 ; =0x021C59F4
+ mov r2, #0x1
+ ldr r1, [r0, #0x4]
+ ldr r0, _020303AC ; =0x0000065C
+ lsl r2, r4
+ ldrh r0, [r1, r0]
+ orr r2, r0
+_02030310:
+ ldr r0, _020303AC ; =0x0000065C
+ strh r2, [r1, r0]
+ ldrb r2, [r5, #0x0]
+ cmp r2, #0xff
+ bne _0203031E
+ add r5, r5, r6
+ b _02030360
+_0203031E:
+ cmp r2, #0xe
+ bne _02030326
+ add r5, r5, r6
+ b _02030360
+_02030326:
+ ldr r0, _020303A0 ; =0x021C59F4
+ ldr r3, [r0, #0x4]
+ ldr r0, _020303B0 ; =0x00000667
+ add r1, r3, r4
+ ldrb r0, [r1, r0]
+ cmp r0, #0x0
+ beq _0203033E
+ mov r0, #0x1
+ tst r0, r2
+ beq _0203033E
+ add r5, r5, r6
+ b _02030360
+_0203033E:
+ ldr r0, _020303B4 ; =0x000004E8
+ add r5, r5, #0x1
+ add r0, r3, r0
+ ldr r2, [sp, #0x0]
+ ldr r3, _020303B8 ; =0x000005E6
+ add r0, r0, r7
+ add r1, r5, #0x0
+ bl FUN_0202D3A4
+ ldr r0, [sp, #0x0]
+ mov r1, #0x0
+ add r5, r5, r0
+ ldr r0, _020303A0 ; =0x021C59F4
+ ldr r0, [r0, #0x4]
+ add r2, r0, r4
+ ldr r0, _020303B0 ; =0x00000667
+ strb r1, [r2, r0]
+_02030360:
+ ldr r0, [sp, #0x4]
+ add r4, r4, #0x1
+ add r7, #0xc
+ cmp r4, r0
+ blt _020302EA
+ add sp, #0x8
+ pop {r3-r7, pc}
+_0203036E:
+ ldr r0, _020303A0 ; =0x021C59F4
+ ldrb r2, [r5, #0x1]
+ ldr r1, [r0, #0x4]
+ ldr r3, _020303AC ; =0x0000065C
+ strh r2, [r1, r3]
+ ldr r2, [r0, #0x4]
+ ldrh r1, [r2, r3]
+ lsl r1, r1, #0x8
+ strh r1, [r2, r3]
+ ldr r4, [r0, #0x4]
+ ldrb r1, [r5, #0x2]
+ ldrh r2, [r4, r3]
+ add r1, r2, r1
+ strh r1, [r4, r3]
+ ldr r1, [r0, #0x4]
+ mov r0, #0x47
+ lsl r0, r0, #0x4
+ add r0, r1, r0
+ ldrb r2, [r5, #0x3]
+ add r1, r5, #0x4
+ sub r3, #0x5d
+ bl FUN_0202D3A4
+_0203039C:
+ add sp, #0x8
+ pop {r3-r7, pc}
+ .balign 4
+_020303A0: .word 0x021C59F4
+_020303A4: .word 0x00000634
+_020303A8: .word 0x00000682
+_020303AC: .word 0x0000065C
+_020303B0: .word 0x00000667
+_020303B4: .word 0x000004E8
+_020303B8: .word 0x000005E6
+
+ thumb_func_start FUN_020303BC
+FUN_020303BC: ; 0x020303BC
+ push {r4-r6, lr}
+ ldr r3, _020303EC ; =0x021C59F4
+ ldr r6, _020303F0 ; =0x0000066F
+ ldr r5, [r3, #0x4]
+ add r4, r5, r0
+ ldrb r4, [r4, r6]
+ cmp r4, #0x0
+ beq _020303E4
+ add r1, r6, #0x0
+ sub r1, #0x37
+ add r4, r5, r1
+ lsl r2, r0, #0x2
+ ldr r1, [r4, r2]
+ sub r1, r1, #0x1
+ str r1, [r4, r2]
+ ldr r1, [r3, #0x4]
+ mov r2, #0x0
+ add r0, r1, r0
+ strb r2, [r0, r6]
+ pop {r4-r6, pc}
+_020303E4:
+ bl FUN_020303F4
+ pop {r4-r6, pc}
+ nop
+_020303EC: .word 0x021C59F4
+_020303F0: .word 0x0000066F
+
+ thumb_func_start FUN_020303F4
+FUN_020303F4: ; 0x020303F4
+ push {r4-r6, lr}
+ ldr r3, _020304B8 ; =0x021C59F4
+ add r5, r0, #0x0
+ ldr r0, [r3, #0x4]
+ ldr r2, _020304BC ; =0x00000638
+ add r4, r1, #0x0
+ add r1, r0, r2
+ lsl r0, r5, #0x2
+ ldr r6, [r1, r0]
+ sub r6, r6, #0x1
+ str r6, [r1, r0]
+ cmp r4, #0x0
+ beq _020304B4
+ ldr r0, [r3, #0x4]
+ add r2, #0x2f
+ add r0, r0, r2
+ ldrb r1, [r0, r5]
+ cmp r1, #0x0
+ beq _02030422
+ ldrb r2, [r4, #0x0]
+ mov r1, #0x1
+ tst r1, r2
+ bne _020304B4
+_02030422:
+ mov r1, #0x0
+ strb r1, [r0, r5]
+ bl FUN_0202FA28
+ cmp r0, #0x1
+ bne _02030478
+ bl FUN_02033534
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ bl FUN_02031228
+ add r6, r0, #0x0
+ bl FUN_02033534
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ bl FUN_0202D858
+ ldrb r1, [r4, #0x0]
+ mov r0, #0x2
+ tst r0, r1
+ bne _02030468
+ ldr r0, _020304B8 ; =0x021C59F4
+ ldr r3, _020304C0 ; =0x0000065E
+ ldr r1, [r0, #0x4]
+ ldr r0, _020304C4 ; =0x0000047C
+ add r2, r6, #0x0
+ add r1, r1, r0
+ mov r0, #0xc
+ mul r0, r5
+ add r0, r1, r0
+ add r1, r4, #0x0
+ bl FUN_0202D3A4
+_02030468:
+ ldr r0, _020304B8 ; =0x021C59F4
+ ldr r1, [r0, #0x4]
+ ldr r0, _020304C8 ; =0x0000065F
+ add r1, r1, r0
+ ldrb r0, [r1, r5]
+ add r0, r0, #0x1
+ strb r0, [r1, r5]
+ pop {r4-r6, pc}
+_02030478:
+ add r0, r4, #0x0
+ add r1, r5, #0x0
+ bl FUN_020307E4
+ ldrb r1, [r4, #0x0]
+ mov r0, #0x2
+ tst r0, r1
+ bne _020304B4
+ mov r0, #0xc
+ add r6, r5, #0x0
+ mul r6, r0
+ ldr r0, _020304B8 ; =0x021C59F4
+ ldr r1, [r0, #0x4]
+ ldr r0, _020304CC ; =0x000004E8
+ add r0, r1, r0
+ add r0, r0, r6
+ bl FUN_0202D498
+ cmp r0, #0xb
+ blt _020304B4
+ ldr r0, _020304B8 ; =0x021C59F4
+ ldr r3, _020304D0 ; =0x0000066E
+ ldr r1, [r0, #0x4]
+ ldr r0, _020304CC ; =0x000004E8
+ mov r2, #0xb
+ add r0, r1, r0
+ add r0, r0, r6
+ add r1, r4, #0x1
+ bl FUN_0202D3A4
+_020304B4:
+ pop {r4-r6, pc}
+ nop
+_020304B8: .word 0x021C59F4
+_020304BC: .word 0x00000638
+_020304C0: .word 0x0000065E
+_020304C4: .word 0x0000047C
+_020304C8: .word 0x0000065F
+_020304CC: .word 0x000004E8
+_020304D0: .word 0x0000066E
+
+ thumb_func_start FUN_020304D4
+FUN_020304D4: ; 0x020304D4
+ push {r3, lr}
+ cmp r0, #0x0
+ beq _020304E4
+ ldr r0, _020304EC ; =0x02105D58
+ ldrb r1, [r0, #0x0]
+ add r1, r1, #0x1
+ strb r1, [r0, #0x0]
+ pop {r3, pc}
+_020304E4:
+ bl ErrorHandling
+ pop {r3, pc}
+ nop
+_020304EC: .word 0x02105D58
+
+ thumb_func_start FUN_020304F0
+FUN_020304F0: ; 0x020304F0
+ push {r3, lr}
+ cmp r0, #0x0
+ beq _02030500
+ ldr r0, _02030508 ; =0x02105D58
+ ldrb r1, [r0, #0x1]
+ add r1, r1, #0x1
+ strb r1, [r0, #0x1]
+ pop {r3, pc}
+_02030500:
+ bl ErrorHandling
+ pop {r3, pc}
+ nop
+_02030508: .word 0x02105D58
+
+ thumb_func_start FUN_0203050C
+FUN_0203050C: ; 0x0203050C
+ push {r4, lr}
+ ldr r0, _02030660 ; =0x021C59F4
+ ldr r0, [r0, #0x4]
+ cmp r0, #0x0
+ beq _0203051E
+ bl FUN_02033534
+ cmp r0, #0x13
+ blt _02030520
+_0203051E:
+ b _0203065E
+_02030520:
+ bl FUN_02033534
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ bl FUN_02031228
+ add r4, r0, #0x0
+ bl FUN_02033534
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ bl FUN_0202D858
+ bl FUN_02031280
+ cmp r0, #0x0
+ beq _02030594
+ ldr r0, _02030664 ; =0x02105D58
+ ldrb r1, [r0, #0x0]
+ cmp r1, #0x2
+ beq _02030550
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x0
+ bne _02030594
+_02030550:
+ ldr r0, _02030664 ; =0x02105D58
+ ldrb r1, [r0, #0x0]
+ add r1, r1, #0x1
+ strb r1, [r0, #0x0]
+ mov r0, #0x1
+ bl FUN_020304D4
+ ldr r0, _02030660 ; =0x021C59F4
+ ldr r1, _02030668 ; =0x0000067F
+ ldr r3, [r0, #0x4]
+ mov r0, #0x0
+ ldrb r2, [r3, r1]
+ mov r1, #0x26
+ mul r1, r2
+ lsl r2, r4, #0x10
+ add r1, r3, r1
+ lsr r2, r2, #0x10
+ bl FUN_020303F4
+ ldr r2, _02030660 ; =0x021C59F4
+ ldr r1, _02030668 ; =0x0000067F
+ ldr r4, [r2, #0x4]
+ mov r0, #0x1
+ ldrb r3, [r4, r1]
+ sub r0, r0, r3
+ strb r0, [r4, r1]
+ add r0, r1, #0x0
+ ldr r2, [r2, #0x4]
+ sub r0, #0x4b
+ ldr r0, [r2, r0]
+ sub r1, #0x4b
+ add r0, r0, #0x1
+ str r0, [r2, r1]
+ pop {r4, pc}
+_02030594:
+ bl FUN_0202CBD4
+ cmp r0, #0x4
+ bne _0203065E
+ bl FUN_02031190
+ bl FUN_02030E7C
+ cmp r0, #0x0
+ bne _020305AE
+ bl FUN_02031190
+ pop {r4, pc}
+_020305AE:
+ ldr r0, _02030664 ; =0x02105D58
+ ldrb r1, [r0, #0x0]
+ cmp r1, #0x2
+ beq _020305BC
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x0
+ bne _0203065E
+_020305BC:
+ bl FUN_02031190
+ cmp r0, #0x0
+ beq _02030612
+ ldr r0, _02030664 ; =0x02105D58
+ ldr r3, _0203066C ; =FUN_020304D4
+ ldrb r1, [r0, #0x0]
+ add r1, r1, #0x1
+ strb r1, [r0, #0x0]
+ ldr r0, _02030660 ; =0x021C59F4
+ ldr r2, [r0, #0x4]
+ ldr r0, _02030668 ; =0x0000067F
+ ldrb r1, [r2, r0]
+ mov r0, #0x26
+ mul r0, r1
+ lsl r1, r4, #0x10
+ add r0, r2, r0
+ lsr r1, r1, #0x10
+ mov r2, #0xe
+ bl FUN_0202D0D0
+ cmp r0, #0x0
+ bne _020305F4
+ ldr r0, _02030664 ; =0x02105D58
+ ldrb r1, [r0, #0x0]
+ sub r1, r1, #0x1
+ strb r1, [r0, #0x0]
+ pop {r4, pc}
+_020305F4:
+ ldr r2, _02030660 ; =0x021C59F4
+ ldr r1, _02030668 ; =0x0000067F
+ ldr r4, [r2, #0x4]
+ mov r0, #0x1
+ ldrb r3, [r4, r1]
+ sub r0, r0, r3
+ strb r0, [r4, r1]
+ add r0, r1, #0x0
+ ldr r2, [r2, #0x4]
+ sub r0, #0x4b
+ ldr r0, [r2, r0]
+ sub r1, #0x4b
+ add r0, r0, #0x1
+ str r0, [r2, r1]
+ pop {r4, pc}
+_02030612:
+ bl FUN_0202CB8C
+ ldr r1, _02030670 ; =0x0000FFFE
+ tst r0, r1
+ beq _0203065E
+ ldr r0, _02030664 ; =0x02105D58
+ ldrb r1, [r0, #0x0]
+ add r1, r1, #0x1
+ strb r1, [r0, #0x0]
+ mov r0, #0x1
+ bl FUN_020304D4
+ ldr r0, _02030660 ; =0x021C59F4
+ ldr r1, _02030668 ; =0x0000067F
+ ldr r3, [r0, #0x4]
+ mov r0, #0x0
+ ldrb r2, [r3, r1]
+ mov r1, #0x26
+ mul r1, r2
+ lsl r2, r4, #0x10
+ add r1, r3, r1
+ lsr r2, r2, #0x10
+ bl FUN_020303F4
+ ldr r2, _02030660 ; =0x021C59F4
+ ldr r1, _02030668 ; =0x0000067F
+ ldr r4, [r2, #0x4]
+ mov r0, #0x1
+ ldrb r3, [r4, r1]
+ sub r0, r0, r3
+ strb r0, [r4, r1]
+ add r0, r1, #0x0
+ ldr r2, [r2, #0x4]
+ sub r0, #0x4b
+ ldr r0, [r2, r0]
+ sub r1, #0x4b
+ add r0, r0, #0x1
+ str r0, [r2, r1]
+_0203065E:
+ pop {r4, pc}
+ .balign 4
+_02030660: .word 0x021C59F4
+_02030664: .word 0x02105D58
+_02030668: .word 0x0000067F
+_0203066C: .word FUN_020304D4
+_02030670: .word 0x0000FFFE
+
+ thumb_func_start FUN_02030674
+FUN_02030674: ; 0x02030674
+ push {r3-r7, lr}
+ ldr r7, _02030798 ; =0x021C59F4
+ mov r6, #0x0
+ ldr r5, [r7, #0x4]
+ ldr r2, _0203079C ; =0x0000062C
+ add r4, r6, #0x0
+ ldrb r0, [r5, r2]
+ cmp r0, #0x0
+ beq _02030690
+ sub r1, r2, #0x4
+ ldrh r1, [r5, r1]
+ mov r3, #0xf0
+ tst r3, r1
+ bne _02030692
+_02030690:
+ b _02030794
+_02030692:
+ cmp r0, #0x2
+ bne _020306D0
+ mov r0, #0x20
+ tst r0, r1
+ beq _020306A4
+ mov r0, #0x10
+ orr r0, r6
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+_020306A4:
+ mov r0, #0x10
+ tst r0, r1
+ beq _020306B2
+ mov r0, #0x20
+ orr r0, r4
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+_020306B2:
+ mov r0, #0x40
+ tst r0, r1
+ beq _020306C0
+ mov r0, #0x80
+ orr r0, r4
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+_020306C0:
+ mov r0, #0x80
+ tst r0, r1
+ beq _0203077E
+ mov r0, #0x40
+ orr r0, r4
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+ b _0203077E
+_020306D0:
+ add r0, r2, #0x2
+ ldrh r0, [r5, r0]
+ cmp r0, #0x0
+ beq _020306F2
+ add r4, r0, #0x0
+ add r0, r2, #0x1
+ ldrsb r0, [r5, r0]
+ sub r1, r0, #0x1
+ add r0, r2, #0x1
+ strb r1, [r5, r0]
+ ldr r1, [r7, #0x4]
+ ldrsb r0, [r1, r0]
+ cmp r0, #0x0
+ bge _0203077E
+ add r0, r2, #0x2
+ strh r6, [r1, r0]
+ b _0203077E
+_020306F2:
+ add r0, r2, #0x0
+ sub r0, #0x34
+ add r6, r5, r0
+ sub r2, #0x34
+ ldr r0, [r6, #0x8]
+ ldr r1, [r6, #0xc]
+ ldr r2, [r5, r2]
+ ldr r3, [r6, #0x4]
+ blx _ll_mul
+ add r3, r0, #0x0
+ add r2, r1, #0x0
+ ldr r0, [r6, #0x10]
+ ldr r1, [r6, #0x14]
+ add r0, r0, r3
+ adc r1, r2
+ ldr r2, _020307A0 ; =0x000005F8
+ str r0, [r5, r2]
+ mov r2, #0x0
+ str r1, [r6, #0x4]
+ lsr r0, r1, #0x1e
+ lsl r1, r2, #0x2
+ orr r1, r0
+ cmp r1, #0x3
+ bhi _02030746
+ add r0, r1, r1
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02030730: ; jump table (using 16-bit offset)
+ .short _02030738 - _02030730 - 2; case 0
+ .short _0203073C - _02030730 - 2; case 1
+ .short _02030740 - _02030730 - 2; case 2
+ .short _02030744 - _02030730 - 2; case 3
+_02030738:
+ mov r4, #0x20
+ b _02030746
+_0203073C:
+ mov r4, #0x10
+ b _02030746
+_02030740:
+ mov r4, #0x40
+ b _02030746
+_02030744:
+ mov r4, #0x80
+_02030746:
+ ldr r0, _02030798 ; =0x021C59F4
+ ldr r5, [r0, #0x4]
+ ldr r0, _020307A0 ; =0x000005F8
+ add r6, r5, r0
+ ldr r0, [r6, #0x8]
+ ldr r1, [r6, #0xc]
+ ldr r2, [r6, #0x0]
+ ldr r3, [r6, #0x4]
+ blx _ll_mul
+ ldr r3, [r6, #0x10]
+ ldr r2, [r6, #0x14]
+ add r0, r3, r0
+ adc r2, r1
+ ldr r1, _020307A0 ; =0x000005F8
+ mov r3, #0x0
+ str r0, [r5, r1]
+ str r2, [r6, #0x4]
+ lsr r0, r2, #0x1c
+ lsl r2, r3, #0x4
+ orr r2, r0
+ add r0, r1, #0x0
+ add r0, #0x35
+ strb r2, [r5, r0]
+ ldr r0, _02030798 ; =0x021C59F4
+ add r1, #0x36
+ ldr r0, [r0, #0x4]
+ strh r4, [r0, r1]
+_0203077E:
+ ldr r2, _02030798 ; =0x021C59F4
+ ldr r1, _020307A4 ; =0x00000628
+ ldr r5, [r2, #0x4]
+ mov r0, #0xf0
+ ldrh r3, [r5, r1]
+ bic r3, r0
+ strh r3, [r5, r1]
+ ldr r2, [r2, #0x4]
+ ldrh r0, [r2, r1]
+ add r0, r0, r4
+ strh r0, [r2, r1]
+_02030794:
+ pop {r3-r7, pc}
+ nop
+_02030798: .word 0x021C59F4
+_0203079C: .word 0x0000062C
+_020307A0: .word 0x000005F8
+_020307A4: .word 0x00000628
+
+ thumb_func_start FUN_020307A8
+FUN_020307A8: ; 0x020307A8
+ ldr r0, _020307B4 ; =0x021C59F4
+ mov r2, #0x1
+ ldr r1, [r0, #0x4]
+ ldr r0, _020307B8 ; =0x0000062C
+ strb r2, [r1, r0]
+ bx lr
+ .balign 4
+_020307B4: .word 0x021C59F4
+_020307B8: .word 0x0000062C
+
+ thumb_func_start FUN_020307BC
+FUN_020307BC: ; 0x020307BC
+ ldr r0, _020307C8 ; =0x021C59F4
+ mov r2, #0x2
+ ldr r1, [r0, #0x4]
+ ldr r0, _020307CC ; =0x0000062C
+ strb r2, [r1, r0]
+ bx lr
+ .balign 4
+_020307C8: .word 0x021C59F4
+_020307CC: .word 0x0000062C
+
+ thumb_func_start FUN_020307D0
+FUN_020307D0: ; 0x020307D0
+ ldr r0, _020307DC ; =0x021C59F4
+ mov r2, #0x0
+ ldr r1, [r0, #0x4]
+ ldr r0, _020307E0 ; =0x0000062C
+ strb r2, [r1, r0]
+ bx lr
+ .balign 4
+_020307DC: .word 0x021C59F4
+_020307E0: .word 0x0000062C
+
+ thumb_func_start FUN_020307E4
+FUN_020307E4: ; 0x020307E4
+ push {r4-r7}
+ ldr r4, _02030868 ; =0x021C59F4
+ lsl r6, r1, #0x1
+ ldr r2, [r4, #0x4]
+ mov r5, #0x0
+ add r3, r2, r6
+ mov r2, #0x61
+ lsl r2, r2, #0x4
+ strh r5, [r3, r2]
+ ldrb r5, [r0, #0x0]
+ mov r3, #0x10
+ add r7, r5, #0x0
+ and r7, r3
+ cmp r7, #0x10
+ bne _02030860
+ mov r7, #0xc
+ and r5, r7
+ lsl r5, r5, #0x18
+ lsr r5, r5, #0x18
+ bne _0203081A
+ ldr r3, [r4, #0x4]
+ add r4, r3, r2
+ ldrh r3, [r4, r6]
+ mov r2, #0x40
+ orr r2, r3
+ strh r2, [r4, r6]
+ b _0203084C
+_0203081A:
+ cmp r5, #0x4
+ bne _0203082C
+ ldr r3, [r4, #0x4]
+ add r4, r3, r2
+ ldrh r3, [r4, r6]
+ mov r2, #0x80
+ orr r2, r3
+ strh r2, [r4, r6]
+ b _0203084C
+_0203082C:
+ cmp r5, #0x8
+ bne _0203083E
+ ldr r3, [r4, #0x4]
+ add r4, r3, r2
+ ldrh r3, [r4, r6]
+ mov r2, #0x20
+ orr r2, r3
+ strh r2, [r4, r6]
+ b _0203084C
+_0203083E:
+ cmp r5, #0xc
+ bne _0203084C
+ ldr r4, [r4, #0x4]
+ add r4, r4, r2
+ ldrh r2, [r4, r6]
+ orr r2, r3
+ strh r2, [r4, r6]
+_0203084C:
+ ldrb r0, [r0, #0x0]
+ asr r2, r0, #0x5
+ mov r0, #0x7
+ and r2, r0
+ ldr r0, _02030868 ; =0x021C59F4
+ ldr r0, [r0, #0x4]
+ add r1, r0, r1
+ mov r0, #0x62
+ lsl r0, r0, #0x4
+ strb r2, [r1, r0]
+_02030860:
+ mov r0, #0x1
+ pop {r4-r7}
+ bx lr
+ nop
+_02030868: .word 0x021C59F4
+
+ thumb_func_start FUN_0203086C
+FUN_0203086C: ; 0x0203086C
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02030870
+FUN_02030870: ; 0x02030870
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r0, _0203091C ; =0x021C59F4
+ ldr r1, [r0, #0x4]
+ ldr r0, _02030920 ; =0x0000062A
+ ldrb r0, [r1, r0]
+ cmp r0, #0x0
+ beq _02030884
+ mov r0, #0x0
+ pop {r4, pc}
+_02030884:
+ bl FUN_02030FE0
+ cmp r0, #0x0
+ bne _02030890
+ mov r0, #0x0
+ pop {r4, pc}
+_02030890:
+ ldr r0, _0203091C ; =0x021C59F4
+ ldr r2, [r0, #0x4]
+ ldr r0, _02030924 ; =0x00000681
+ ldrb r1, [r2, r0]
+ cmp r1, #0x0
+ beq _020308A0
+ sub r1, r1, #0x1
+ strb r1, [r2, r0]
+_020308A0:
+ ldr r1, _0203091C ; =0x021C59F4
+ ldr r0, _02030928 ; =0x00000628
+ ldr r2, [r1, #0x4]
+ mov r3, #0x40
+ ldrh r2, [r2, r0]
+ tst r3, r2
+ beq _020308C0
+ ldrb r3, [r4, #0x0]
+ mov r2, #0x10
+ add r0, #0x59
+ orr r2, r3
+ strb r2, [r4, #0x0]
+ ldr r1, [r1, #0x4]
+ mov r2, #0x8
+ strb r2, [r1, r0]
+ b _02030906
+_020308C0:
+ mov r3, #0x80
+ tst r3, r2
+ beq _020308D8
+ ldrb r3, [r4, #0x0]
+ mov r2, #0x14
+ add r0, #0x59
+ orr r2, r3
+ strb r2, [r4, #0x0]
+ ldr r1, [r1, #0x4]
+ mov r2, #0x8
+ strb r2, [r1, r0]
+ b _02030906
+_020308D8:
+ mov r3, #0x20
+ tst r3, r2
+ beq _020308F0
+ ldrb r3, [r4, #0x0]
+ mov r2, #0x18
+ add r0, #0x59
+ orr r2, r3
+ strb r2, [r4, #0x0]
+ ldr r1, [r1, #0x4]
+ mov r2, #0x8
+ strb r2, [r1, r0]
+ b _02030906
+_020308F0:
+ mov r3, #0x10
+ tst r2, r3
+ beq _02030906
+ ldrb r3, [r4, #0x0]
+ mov r2, #0x1c
+ add r0, #0x59
+ orr r2, r3
+ strb r2, [r4, #0x0]
+ ldr r1, [r1, #0x4]
+ mov r2, #0x8
+ strb r2, [r1, r0]
+_02030906:
+ ldr r0, _0203091C ; =0x021C59F4
+ ldrb r2, [r4, #0x0]
+ ldr r1, [r0, #0x4]
+ ldr r0, _0203092C ; =0x0000062B
+ ldrb r0, [r1, r0]
+ lsl r0, r0, #0x5
+ orr r0, r2
+ strb r0, [r4, #0x0]
+ mov r0, #0x0
+ pop {r4, pc}
+ nop
+_0203091C: .word 0x021C59F4
+_02030920: .word 0x0000062A
+_02030924: .word 0x00000681
+_02030928: .word 0x00000628
+_0203092C: .word 0x0000062B
+
+ thumb_func_start FUN_02030930
+FUN_02030930: ; 0x02030930
+ push {r3-r5, lr}
+ sub sp, #0x8
+ add r4, r0, #0x0
+ bl FUN_02033534
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ bl FUN_02031228
+ add r5, r0, #0x0
+ bl FUN_02033534
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ bl FUN_0202D858
+ ldr r0, _020309F0 ; =0x021C59F4
+ ldr r1, [r0, #0x4]
+ ldr r0, _020309F4 ; =0x00000684
+ ldrb r0, [r1, r0]
+ cmp r0, #0x0
+ bne _02030960
+ mov r0, #0x0
+ b _02030962
+_02030960:
+ mov r0, #0x1
+_02030962:
+ strb r0, [r4, #0x0]
+ bl FUN_0202FA28
+ cmp r0, #0x0
+ bne _02030972
+ add r0, r4, #0x0
+ bl FUN_02030870
+_02030972:
+ ldr r1, _020309F0 ; =0x021C59F4
+ ldr r0, _020309F4 ; =0x00000684
+ ldr r2, [r1, #0x4]
+ mov r3, #0x0
+ strb r3, [r2, r0]
+ ldr r1, [r1, #0x4]
+ ldr r0, _020309F8 ; =0x0000054C
+ add r0, r1, r0
+ bl FUN_0202D4E4
+ cmp r0, #0x0
+ beq _0203099E
+ ldrb r1, [r4, #0x0]
+ mov r0, #0x2
+ orr r0, r1
+ strb r0, [r4, #0x0]
+ ldrb r0, [r4, #0x0]
+ cmp r0, #0x2
+ bne _020309E8
+ add sp, #0x8
+ mov r0, #0x0
+ pop {r3-r5, pc}
+_0203099E:
+ sub r0, r5, #0x1
+ str r0, [sp, #0x4]
+ add r0, r4, #0x1
+ str r0, [sp, #0x0]
+ ldr r0, _020309F0 ; =0x021C59F4
+ mov r2, #0x1
+ ldr r1, [r0, #0x4]
+ ldr r0, _020309F8 ; =0x0000054C
+ add r0, r1, r0
+ add r1, sp, #0x0
+ bl FUN_0202D760
+ cmp r0, #0x0
+ bne _020309C4
+ ldr r0, _020309F0 ; =0x021C59F4
+ mov r2, #0x1
+ ldr r1, [r0, #0x4]
+ ldr r0, _020309F4 ; =0x00000684
+ strb r2, [r1, r0]
+_020309C4:
+ bl FUN_0202FA28
+ cmp r0, #0x1
+ bne _020309E8
+ ldr r2, _020309F0 ; =0x021C59F4
+ ldr r1, _020309FC ; =0x0000065E
+ ldr r3, [r2, #0x4]
+ ldrb r0, [r3, r1]
+ add r0, r0, #0x1
+ strb r0, [r3, r1]
+ ldr r2, [r2, #0x4]
+ ldrb r0, [r4, #0x0]
+ ldrb r1, [r2, r1]
+ lsl r2, r1, #0x4
+ mov r1, #0xf0
+ and r1, r2
+ orr r0, r1
+ strb r0, [r4, #0x0]
+_020309E8:
+ mov r0, #0x1
+ add sp, #0x8
+ pop {r3-r5, pc}
+ nop
+_020309F0: .word 0x021C59F4
+_020309F4: .word 0x00000684
+_020309F8: .word 0x0000054C
+_020309FC: .word 0x0000065E
+
+ thumb_func_start FUN_02030A00
+FUN_02030A00: ; 0x02030A00
+ push {r4, lr}
+ sub sp, #0x8
+ add r4, r0, #0x0
+ mov r0, #0xb
+ strb r0, [r4, #0x0]
+ ldr r0, _02030A6C ; =0x021C59F4
+ ldr r1, [r0, #0x4]
+ ldr r0, _02030A70 ; =0x00000685
+ ldrb r0, [r1, r0]
+ cmp r0, #0x0
+ bne _02030A1A
+ mov r0, #0x0
+ b _02030A1C
+_02030A1A:
+ mov r0, #0x1
+_02030A1C:
+ strb r0, [r4, #0x1]
+ bl FUN_0202CB8C
+ asr r1, r0, #0x8
+ strb r1, [r4, #0x2]
+ strb r0, [r4, #0x3]
+ mov r0, #0xbb
+ str r0, [sp, #0x4]
+ add r0, r4, #0x5
+ str r0, [sp, #0x0]
+ ldr r0, _02030A6C ; =0x021C59F4
+ mov r2, #0x0
+ ldr r1, [r0, #0x4]
+ ldr r0, _02030A74 ; =0x0000056C
+ add r0, r1, r0
+ add r1, sp, #0x0
+ bl FUN_0202D760
+ cmp r0, #0x0
+ beq _02030A5A
+ ldr r0, _02030A6C ; =0x021C59F4
+ mov r2, #0x0
+ ldr r1, [r0, #0x4]
+ ldr r0, _02030A70 ; =0x00000685
+ strb r2, [r1, r0]
+ ldr r1, [sp, #0x4]
+ mov r0, #0xbb
+ sub r0, r0, r1
+ add sp, #0x8
+ strb r0, [r4, #0x4]
+ pop {r4, pc}
+_02030A5A:
+ ldr r0, _02030A6C ; =0x021C59F4
+ mov r2, #0x1
+ ldr r1, [r0, #0x4]
+ ldr r0, _02030A70 ; =0x00000685
+ strb r2, [r1, r0]
+ mov r0, #0xbb
+ strb r0, [r4, #0x4]
+ add sp, #0x8
+ pop {r4, pc}
+ .balign 4
+_02030A6C: .word 0x021C59F4
+_02030A70: .word 0x00000685
+_02030A74: .word 0x0000056C
+
+ thumb_func_start FUN_02030A78
+FUN_02030A78: ; 0x02030A78
+ push {r4-r6, lr}
+ sub sp, #0x8
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ add r6, r2, #0x0
+ bl FUN_02031190
+ bl FUN_02030E7C
+ cmp r0, #0x0
+ bne _02030A9C
+ bl FUN_02031280
+ cmp r0, #0x0
+ bne _02030A9C
+ add sp, #0x8
+ mov r0, #0x0
+ pop {r4-r6, pc}
+_02030A9C:
+ mov r0, #0x1
+ str r0, [sp, #0x0]
+ mov r0, #0x0
+ str r0, [sp, #0x4]
+ ldr r0, _02030AD4 ; =0x021C59F4
+ add r2, r4, #0x0
+ ldr r1, [r0, #0x4]
+ ldr r0, _02030AD8 ; =0x0000054C
+ add r3, r6, #0x0
+ add r0, r1, r0
+ add r1, r5, #0x0
+ bl FUN_0202D684
+ cmp r0, #0x0
+ beq _02030AC0
+ add sp, #0x8
+ mov r0, #0x1
+ pop {r4-r6, pc}
+_02030AC0:
+ bl FUN_02033534
+ cmp r0, #0xa
+ bne _02030ACC
+ bl FUN_02031454
+_02030ACC:
+ mov r0, #0x0
+ add sp, #0x8
+ pop {r4-r6, pc}
+ nop
+_02030AD4: .word 0x021C59F4
+_02030AD8: .word 0x0000054C
+
+ thumb_func_start FUN_02030ADC
+FUN_02030ADC: ; 0x02030ADC
+ push {r4-r6, lr}
+ sub sp, #0x8
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ add r6, r2, #0x0
+ bl FUN_02031190
+ bl FUN_02030E7C
+ cmp r0, #0x0
+ bne _02030B00
+ bl FUN_02031280
+ cmp r0, #0x0
+ bne _02030B00
+ add sp, #0x8
+ mov r0, #0x0
+ pop {r4-r6, pc}
+_02030B00:
+ mov r0, #0x1
+ str r0, [sp, #0x0]
+ str r0, [sp, #0x4]
+ ldr r0, _02030B34 ; =0x021C59F4
+ add r2, r4, #0x0
+ ldr r1, [r0, #0x4]
+ ldr r0, _02030B38 ; =0x0000054C
+ add r3, r6, #0x0
+ add r0, r1, r0
+ add r1, r5, #0x0
+ bl FUN_0202D684
+ cmp r0, #0x0
+ beq _02030B22
+ add sp, #0x8
+ mov r0, #0x1
+ pop {r4-r6, pc}
+_02030B22:
+ bl FUN_02033534
+ cmp r0, #0xa
+ bne _02030B2E
+ bl FUN_02031454
+_02030B2E:
+ mov r0, #0x0
+ add sp, #0x8
+ pop {r4-r6, pc}
+ .balign 4
+_02030B34: .word 0x021C59F4
+_02030B38: .word 0x0000054C
+
+ thumb_func_start FUN_02030B3C
+FUN_02030B3C: ; 0x02030B3C
+ push {r4-r6, lr}
+ sub sp, #0x8
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ add r6, r2, #0x0
+ bl FUN_02031190
+ cmp r0, #0x0
+ beq _02030B58
+ bl ErrorHandling
+ add sp, #0x8
+ mov r0, #0x0
+ pop {r4-r6, pc}
+_02030B58:
+ mov r0, #0x0
+ bl FUN_02030E7C
+ cmp r0, #0x0
+ bne _02030B70
+ bl FUN_02031280
+ cmp r0, #0x0
+ bne _02030B70
+ add sp, #0x8
+ mov r0, #0x0
+ pop {r4-r6, pc}
+_02030B70:
+ bl FUN_0202FA28
+ cmp r0, #0x1
+ bne _02030B86
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ add r2, r6, #0x0
+ bl FUN_02030A78
+ add sp, #0x8
+ pop {r4-r6, pc}
+_02030B86:
+ mov r0, #0x1
+ str r0, [sp, #0x0]
+ mov r0, #0x0
+ str r0, [sp, #0x4]
+ ldr r0, _02030BBC ; =0x021C59F4
+ add r2, r4, #0x0
+ ldr r1, [r0, #0x4]
+ ldr r0, _02030BC0 ; =0x0000056C
+ add r3, r6, #0x0
+ add r0, r1, r0
+ add r1, r5, #0x0
+ bl FUN_0202D684
+ cmp r0, #0x0
+ beq _02030BAA
+ add sp, #0x8
+ mov r0, #0x1
+ pop {r4-r6, pc}
+_02030BAA:
+ bl FUN_02033534
+ cmp r0, #0xa
+ bne _02030BB6
+ bl FUN_02031454
+_02030BB6:
+ mov r0, #0x0
+ add sp, #0x8
+ pop {r4-r6, pc}
+ .balign 4
+_02030BBC: .word 0x021C59F4
+_02030BC0: .word 0x0000056C
+
+ thumb_func_start FUN_02030BC4
+FUN_02030BC4: ; 0x02030BC4
+ push {r4-r6, lr}
+ sub sp, #0x8
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ add r6, r2, #0x0
+ bl FUN_02031190
+ cmp r0, #0x0
+ beq _02030BE0
+ bl FUN_02031454
+ add sp, #0x8
+ mov r0, #0x0
+ pop {r4-r6, pc}
+_02030BE0:
+ mov r0, #0x0
+ bl FUN_02030E7C
+ cmp r0, #0x0
+ bne _02030BF8
+ bl FUN_02031280
+ cmp r0, #0x0
+ bne _02030BF8
+ add sp, #0x8
+ mov r0, #0x0
+ pop {r4-r6, pc}
+_02030BF8:
+ bl FUN_0202FA28
+ cmp r0, #0x1
+ bne _02030C0E
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ add r2, r6, #0x0
+ bl FUN_02030ADC
+ add sp, #0x8
+ pop {r4-r6, pc}
+_02030C0E:
+ mov r0, #0x1
+ str r0, [sp, #0x0]
+ str r0, [sp, #0x4]
+ ldr r0, _02030C44 ; =0x021C59F4
+ add r2, r4, #0x0
+ ldr r1, [r0, #0x4]
+ ldr r0, _02030C48 ; =0x0000056C
+ add r3, r6, #0x0
+ add r0, r1, r0
+ add r1, r5, #0x0
+ bl FUN_0202D684
+ cmp r0, #0x0
+ beq _02030C30
+ add sp, #0x8
+ mov r0, #0x1
+ pop {r4-r6, pc}
+_02030C30:
+ bl FUN_02033534
+ cmp r0, #0xa
+ bne _02030C3C
+ bl FUN_02031454
+_02030C3C:
+ mov r0, #0x0
+ add sp, #0x8
+ pop {r4-r6, pc}
+ nop
+_02030C44: .word 0x021C59F4
+_02030C48: .word 0x0000056C
+
+ thumb_func_start FUN_02030C4C
+FUN_02030C4C: ; 0x02030C4C
+ ldr r3, _02030C54 ; =FUN_02030BC4
+ mov r2, #0x0
+ bx r3
+ nop
+_02030C54: .word FUN_02030BC4
+
+ thumb_func_start FUN_02030C58
+FUN_02030C58: ; 0x02030C58
+ ldr r0, _02030C64 ; =0x021C59F4
+ ldr r3, _02030C68 ; =FUN_0202D498
+ ldr r1, [r0, #0x4]
+ ldr r0, _02030C6C ; =0x00000464
+ add r0, r1, r0
+ bx r3
+ .balign 4
+_02030C64: .word 0x021C59F4
+_02030C68: .word FUN_0202D498
+_02030C6C: .word 0x00000464
+
+ thumb_func_start FUN_02030C70
+FUN_02030C70: ; 0x02030C70
+ push {r4, lr}
+ ldr r4, [sp, #0x8]
+ bl FUN_0202D934
+ mov r0, #0xee
+ strb r0, [r4, #0xa]
+ ldr r0, _02030C88 ; =0x0000FFFF
+ strh r0, [r4, #0x8]
+ mov r0, #0x0
+ str r0, [r4, #0x4]
+ str r0, [r4, #0x0]
+ pop {r4, pc}
+ .balign 4
+_02030C88: .word 0x0000FFFF
+
+ thumb_func_start FUN_02030C8C
+FUN_02030C8C: ; 0x02030C8C
+ push {r4-r7, lr}
+ sub sp, #0x14
+ add r6, r0, #0x0
+ str r1, [sp, #0x4]
+ str r2, [sp, #0x8]
+ ldr r5, [sp, #0x28]
+ bl FUN_0202D478
+ cmp r0, #0x0
+ beq _02030D94
+_02030CA0:
+ ldrb r7, [r5, #0xa]
+ cmp r7, #0xee
+ bne _02030CB2
+ add r0, r6, #0x0
+ bl FUN_0202D41C
+ add r7, r0, #0x0
+ cmp r7, #0xee
+ beq _02030D8A
+_02030CB2:
+ mov r0, #0x4
+ ldrsh r0, [r6, r0]
+ strb r7, [r5, #0xa]
+ ldrh r4, [r5, #0x8]
+ str r0, [sp, #0x10]
+ ldr r0, _02030D98 ; =0x0000FFFF
+ cmp r4, r0
+ bne _02030D06
+ add r0, r7, #0x0
+ bl FUN_0202D9A0
+ add r4, r0, #0x0
+ ldr r0, _02030D9C ; =0x021C59F4
+ ldr r1, [r0, #0x4]
+ ldr r0, _02030DA0 ; =0x00000689
+ ldrb r0, [r1, r0]
+ cmp r0, #0x0
+ bne _02030D94
+ ldr r0, _02030D98 ; =0x0000FFFF
+ cmp r4, r0
+ bne _02030D04
+ add r0, r6, #0x0
+ bl FUN_0202D478
+ cmp r0, #0x1
+ bge _02030CEE
+ ldr r0, [sp, #0x10]
+ add sp, #0x14
+ strh r0, [r6, #0x4]
+ pop {r4-r7, pc}
+_02030CEE:
+ add r0, r6, #0x0
+ bl FUN_0202D41C
+ lsl r4, r0, #0x8
+ add r0, r6, #0x0
+ bl FUN_0202D41C
+ add r4, r4, r0
+ mov r0, #0x4
+ ldrsh r0, [r6, r0]
+ str r0, [sp, #0x10]
+_02030D04:
+ strh r4, [r5, #0x8]
+_02030D06:
+ add r0, r7, #0x0
+ bl FUN_0202DA04
+ cmp r0, #0x0
+ beq _02030D5E
+ ldr r0, [r5, #0x4]
+ cmp r0, #0x0
+ bne _02030D22
+ ldrh r2, [r5, #0x8]
+ ldr r1, [sp, #0x4]
+ add r0, r7, #0x0
+ bl FUN_0202DA40
+ str r0, [r5, #0x4]
+_02030D22:
+ ldr r2, [r5, #0x0]
+ ldr r1, [sp, #0x8]
+ add r0, r6, #0x0
+ sub r2, r4, r2
+ bl FUN_0202D400
+ ldr r2, [r5, #0x4]
+ str r0, [sp, #0xc]
+ cmp r2, #0x0
+ beq _02030D42
+ ldr r1, [r5, #0x0]
+ ldr r0, [sp, #0x8]
+ add r1, r2, r1
+ ldr r2, [sp, #0xc]
+ blx MI_CpuCopy8
+_02030D42:
+ ldr r1, [r5, #0x0]
+ ldr r0, [sp, #0xc]
+ add r0, r1, r0
+ str r0, [r5, #0x0]
+ cmp r0, r4
+ blt _02030D8A
+ str r5, [sp, #0x0]
+ ldr r0, [sp, #0x4]
+ ldr r3, [r5, #0x4]
+ add r1, r7, #0x0
+ add r2, r4, #0x0
+ bl FUN_02030C70
+ b _02030D8A
+_02030D5E:
+ add r0, r6, #0x0
+ bl FUN_0202D478
+ cmp r0, r4
+ blt _02030D82
+ ldr r1, [sp, #0x8]
+ add r0, r6, #0x0
+ add r2, r4, #0x0
+ bl FUN_0202D400
+ ldr r0, [sp, #0x4]
+ ldr r3, [sp, #0x8]
+ add r1, r7, #0x0
+ add r2, r4, #0x0
+ str r5, [sp, #0x0]
+ bl FUN_02030C70
+ b _02030D8A
+_02030D82:
+ ldr r0, [sp, #0x10]
+ add sp, #0x14
+ strh r0, [r6, #0x4]
+ pop {r4-r7, pc}
+_02030D8A:
+ add r0, r6, #0x0
+ bl FUN_0202D478
+ cmp r0, #0x0
+ bne _02030CA0
+_02030D94:
+ add sp, #0x14
+ pop {r4-r7, pc}
+ .balign 4
+_02030D98: .word 0x0000FFFF
+_02030D9C: .word 0x021C59F4
+_02030DA0: .word 0x00000689
+
+ thumb_func_start FUN_02030DA4
+FUN_02030DA4: ; 0x02030DA4
+ push {r3, lr}
+ ldr r0, _02030DF0 ; =0x021C59F4
+ ldr r1, [r0, #0x4]
+ cmp r1, #0x0
+ beq _02030DEE
+ ldr r0, _02030DF4 ; =0x0000068B
+ ldrb r0, [r1, r0]
+ cmp r0, #0x0
+ bne _02030DEE
+ mov r0, #0x47
+ lsl r0, r0, #0x4
+ add r0, r1, r0
+ bl FUN_0202D4BC
+ ldr r0, _02030DF0 ; =0x021C59F4
+ ldr r1, [r0, #0x4]
+ mov r0, #0x47
+ lsl r0, r0, #0x4
+ add r0, r1, r0
+ bl FUN_0202D478
+ cmp r0, #0x0
+ ble _02030DEE
+ ldr r0, _02030DF0 ; =0x021C59F4
+ mov r2, #0x47
+ ldr r3, [r0, #0x4]
+ ldr r0, _02030DF8 ; =0x000005EC
+ lsl r2, r2, #0x4
+ add r0, r3, r0
+ str r0, [sp, #0x0]
+ add r0, r3, r2
+ sub r2, #0x10
+ ldr r2, [r3, r2]
+ mov r1, #0x0
+ mov r3, #0x1
+ bl FUN_02030C8C
+_02030DEE:
+ pop {r3, pc}
+ .balign 4
+_02030DF0: .word 0x021C59F4
+_02030DF4: .word 0x0000068B
+_02030DF8: .word 0x000005EC
+
+ thumb_func_start FUN_02030DFC
+FUN_02030DFC: ; 0x02030DFC
+ push {r3-r7, lr}
+ ldr r0, _02030E6C ; =0x021C59F4
+ ldr r1, [r0, #0x4]
+ cmp r1, #0x0
+ beq _02030E68
+ ldr r0, _02030E70 ; =0x0000068B
+ ldrb r0, [r1, r0]
+ cmp r0, #0x0
+ bne _02030E68
+ bl FUN_02033534
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ bl FUN_0202D858
+ add r7, r0, #0x1
+ mov r4, #0x0
+ cmp r7, #0x0
+ ble _02030E68
+ ldr r6, _02030E6C ; =0x021C59F4
+ add r5, r4, #0x0
+_02030E26:
+ ldr r1, [r6, #0x4]
+ ldr r0, _02030E74 ; =0x000004E8
+ add r0, r1, r0
+ add r0, r0, r5
+ bl FUN_0202D4BC
+ ldr r1, [r6, #0x4]
+ ldr r0, _02030E74 ; =0x000004E8
+ add r0, r1, r0
+ add r0, r0, r5
+ bl FUN_0202D478
+ cmp r0, #0x0
+ ble _02030E60
+ ldr r3, [r6, #0x4]
+ ldr r0, _02030E78 ; =0x0000058C
+ mov r2, #0x46
+ add r0, r3, r0
+ add r0, r0, r5
+ str r0, [sp, #0x0]
+ ldr r0, _02030E74 ; =0x000004E8
+ lsl r2, r2, #0x4
+ add r0, r3, r0
+ ldr r2, [r3, r2]
+ add r0, r0, r5
+ add r1, r4, #0x0
+ mov r3, #0x0
+ bl FUN_02030C8C
+_02030E60:
+ add r4, r4, #0x1
+ add r5, #0xc
+ cmp r4, r7
+ blt _02030E26
+_02030E68:
+ pop {r3-r7, pc}
+ nop
+_02030E6C: .word 0x021C59F4
+_02030E70: .word 0x0000068B
+_02030E74: .word 0x000004E8
+_02030E78: .word 0x0000058C
+
+ thumb_func_start FUN_02030E7C
+FUN_02030E7C: ; 0x02030E7C
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r0, _02030F14 ; =0x021C59F4
+ ldr r0, [r0, #0x4]
+ cmp r0, #0x0
+ bne _02030E8C
+ mov r0, #0x0
+ pop {r4, pc}
+_02030E8C:
+ bl FUN_02033534
+ cmp r0, #0x13
+ blt _02030EC0
+ ldr r0, _02030F14 ; =0x021C59F4
+ ldr r1, [r0, #0x4]
+ ldr r0, _02030F18 ; =0x00000687
+ ldrb r0, [r1, r0]
+ cmp r0, #0x0
+ beq _02030EBC
+ bl FUN_021D8018
+ mov r1, #0x0
+ mvn r1, r1
+ cmp r0, r1
+ beq _02030EBC
+ cmp r4, #0x0
+ bne _02030EB4
+ mov r0, #0x1
+ pop {r4, pc}
+_02030EB4:
+ cmp r4, #0x1
+ bne _02030EBC
+ mov r0, #0x1
+ pop {r4, pc}
+_02030EBC:
+ mov r0, #0x0
+ pop {r4, pc}
+_02030EC0:
+ bl FUN_02030F40
+ cmp r0, #0x0
+ bne _02030ECC
+ mov r0, #0x0
+ pop {r4, pc}
+_02030ECC:
+ bl FUN_0202CBD4
+ cmp r0, #0x4
+ beq _02030ED8
+ mov r0, #0x0
+ pop {r4, pc}
+_02030ED8:
+ bl FUN_02031190
+ cmp r4, r0
+ bne _02030EE4
+ mov r0, #0x1
+ pop {r4, pc}
+_02030EE4:
+ bl FUN_02031190
+ cmp r0, #0x0
+ bne _02030EFE
+ bl FUN_0202CB8C
+ mov r1, #0x1
+ add r2, r1, #0x0
+ lsl r2, r4
+ tst r0, r2
+ beq _02030F10
+ add r0, r1, #0x0
+ pop {r4, pc}
+_02030EFE:
+ ldr r0, _02030F14 ; =0x021C59F4
+ ldr r1, [r0, #0x4]
+ ldr r0, _02030F1C ; =0x0000065C
+ ldrh r2, [r1, r0]
+ mov r0, #0x1
+ add r1, r0, #0x0
+ lsl r1, r4
+ tst r1, r2
+ bne _02030F12
+_02030F10:
+ mov r0, #0x0
+_02030F12:
+ pop {r4, pc}
+ .balign 4
+_02030F14: .word 0x021C59F4
+_02030F18: .word 0x00000687
+_02030F1C: .word 0x0000065C
+
+ thumb_func_start FUN_02030F20
+FUN_02030F20: ; 0x02030F20
+ push {r3-r5, lr}
+ mov r4, #0x0
+ add r5, r4, #0x0
+_02030F26:
+ lsl r0, r5, #0x10
+ lsr r0, r0, #0x10
+ bl FUN_02030E7C
+ cmp r0, #0x0
+ beq _02030F34
+ add r4, r4, #0x1
+_02030F34:
+ add r5, r5, #0x1
+ cmp r5, #0x8
+ blt _02030F26
+ add r0, r4, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_02030F40
+FUN_02030F40: ; 0x02030F40
+ push {r3, lr}
+ ldr r0, _02030F5C ; =0x021C59F4
+ ldr r0, [r0, #0x4]
+ cmp r0, #0x0
+ beq _02030F56
+ bl FUN_02033534
+ cmp r0, #0x13
+ blt _02030F56
+ mov r0, #0x1
+ pop {r3, pc}
+_02030F56:
+ bl FUN_0202EDF8
+ pop {r3, pc}
+ .balign 4
+_02030F5C: .word 0x021C59F4
+
+ thumb_func_start FUN_02030F60
+FUN_02030F60: ; 0x02030F60
+ ldr r1, _02030F6C ; =0x021C59F4
+ ldr r2, [r1, #0x4]
+ ldr r1, _02030F70 ; =0x0000062B
+ strb r0, [r2, r1]
+ bx lr
+ nop
+_02030F6C: .word 0x021C59F4
+_02030F70: .word 0x0000062B
+
+ thumb_func_start FUN_02030F74
+FUN_02030F74: ; 0x02030F74
+ ldr r1, _02030F84 ; =0x021C59F4
+ ldr r1, [r1, #0x4]
+ add r1, r1, r0
+ mov r0, #0x62
+ lsl r0, r0, #0x4
+ ldrb r0, [r1, r0]
+ bx lr
+ nop
+_02030F84: .word 0x021C59F4
+
+ thumb_func_start FUN_02030F88
+FUN_02030F88: ; 0x02030F88
+ ldr r1, _02030FA4 ; =0x021C59F4
+ ldr r2, [r1, #0x4]
+ cmp r2, #0x0
+ bne _02030F94
+ mov r0, #0x0
+ bx lr
+_02030F94:
+ mov r1, #0x61
+ lsl r1, r1, #0x4
+ add r3, r2, r1
+ lsl r2, r0, #0x1
+ ldrh r0, [r3, r2]
+ mov r1, #0x0
+ strh r1, [r3, r2]
+ bx lr
+ .balign 4
+_02030FA4: .word 0x021C59F4
+
+ thumb_func_start FUN_02030FA8
+FUN_02030FA8: ; 0x02030FA8
+ ldr r0, _02030FC0 ; =0x021C59F4
+ ldr r3, [r0, #0x4]
+ cmp r3, #0x0
+ beq _02030FBC
+ ldr r1, _02030FC4 ; =0x00000628
+ mov r0, #0x2
+ ldrh r2, [r3, r1]
+ lsl r0, r0, #0xe
+ orr r0, r2
+ strh r0, [r3, r1]
+_02030FBC:
+ bx lr
+ nop
+_02030FC0: .word 0x021C59F4
+_02030FC4: .word 0x00000628
+
+ thumb_func_start FUN_02030FC8
+FUN_02030FC8: ; 0x02030FC8
+ ldr r0, _02030FD8 ; =0x021C59F4
+ ldr r2, [r0, #0x4]
+ cmp r2, #0x0
+ beq _02030FD6
+ ldr r0, _02030FDC ; =0x00000628
+ mov r1, #0x0
+ strh r1, [r2, r0]
+_02030FD6:
+ bx lr
+ .balign 4
+_02030FD8: .word 0x021C59F4
+_02030FDC: .word 0x00000628
+
+ thumb_func_start FUN_02030FE0
+FUN_02030FE0: ; 0x02030FE0
+ ldr r0, _02030FF8 ; =0x021C59F4
+ ldr r1, [r0, #0x4]
+ cmp r1, #0x0
+ beq _02030FF4
+ ldr r0, _02030FFC ; =0x00000628
+ ldrh r1, [r1, r0]
+ mov r0, #0x2
+ lsl r0, r0, #0xe
+ and r0, r1
+ bx lr
+_02030FF4:
+ mov r0, #0x1
+ bx lr
+ .balign 4
+_02030FF8: .word 0x021C59F4
+_02030FFC: .word 0x00000628
+
+ thumb_func_start FUN_02031000
+FUN_02031000: ; 0x02031000
+ push {r4-r6, lr}
+ sub sp, #0x8
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ add r6, r2, #0x0
+ bl FUN_0202FA28
+ cmp r0, #0x1
+ bne _02031030
+ mov r0, #0x1
+ str r0, [sp, #0x0]
+ mov r0, #0x0
+ str r0, [sp, #0x4]
+ ldr r0, _02031050 ; =0x021C59F4
+ add r2, r4, #0x0
+ ldr r1, [r0, #0x4]
+ ldr r0, _02031054 ; =0x0000054C
+ add r3, r6, #0x0
+ add r0, r1, r0
+ add r1, r5, #0x0
+ bl FUN_0202D684
+ add sp, #0x8
+ pop {r4-r6, pc}
+_02031030:
+ mov r0, #0x1
+ str r0, [sp, #0x0]
+ mov r0, #0x0
+ str r0, [sp, #0x4]
+ ldr r0, _02031050 ; =0x021C59F4
+ add r2, r4, #0x0
+ ldr r1, [r0, #0x4]
+ ldr r0, _02031058 ; =0x0000056C
+ add r3, r6, #0x0
+ add r0, r1, r0
+ add r1, r5, #0x0
+ bl FUN_0202D684
+ add sp, #0x8
+ pop {r4-r6, pc}
+ nop
+_02031050: .word 0x021C59F4
+_02031054: .word 0x0000054C
+_02031058: .word 0x0000056C
+
+ thumb_func_start FUN_0203105C
+FUN_0203105C: ; 0x0203105C
+ push {r3-r5, lr}
+ sub sp, #0x8
+ add r5, r0, #0x0
+ mov r0, #0x0
+ str r0, [sp, #0x0]
+ str r0, [sp, #0x4]
+ ldr r0, _02031080 ; =0x021C59F4
+ add r4, r1, #0x0
+ ldr r1, [r0, #0x4]
+ ldr r0, _02031084 ; =0x0000054C
+ add r3, r2, #0x0
+ add r0, r1, r0
+ add r1, r5, #0x0
+ add r2, r4, #0x0
+ bl FUN_0202D684
+ add sp, #0x8
+ pop {r3-r5, pc}
+ .balign 4
+_02031080: .word 0x021C59F4
+_02031084: .word 0x0000054C
+
+ thumb_func_start FUN_02031088
+FUN_02031088: ; 0x02031088
+ push {r3, lr}
+ ldr r0, _02031100 ; =0x021C59F4
+ ldr r2, [r0, #0x4]
+ cmp r2, #0x0
+ beq _020310FC
+ ldr r1, _02031104 ; =0x0000067B
+ ldrb r0, [r2, r1]
+ cmp r0, #0x1
+ beq _020310A0
+ cmp r0, #0x3
+ beq _020310D8
+ pop {r3, pc}
+_020310A0:
+ bl FUN_0202FA28
+ cmp r0, #0x1
+ bne _020310B8
+ ldr r1, _02031100 ; =0x021C59F4
+ mov r0, #0xb
+ ldr r2, [r1, #0x4]
+ ldr r1, _02031108 ; =0x0000067C
+ add r1, r2, r1
+ bl FUN_020311D0
+ b _020310C8
+_020310B8:
+ ldr r1, _02031100 ; =0x021C59F4
+ mov r0, #0xb
+ ldr r2, [r1, #0x4]
+ ldr r1, _02031108 ; =0x0000067C
+ add r1, r2, r1
+ mov r2, #0x1
+ bl FUN_02030BC4
+_020310C8:
+ cmp r0, #0x0
+ beq _020310FC
+ ldr r0, _02031100 ; =0x021C59F4
+ mov r2, #0x2
+ ldr r1, [r0, #0x4]
+ ldr r0, _02031104 ; =0x0000067B
+ strb r2, [r1, r0]
+ pop {r3, pc}
+_020310D8:
+ add r1, r1, #0x1
+ mov r0, #0xc
+ add r1, r2, r1
+ bl FUN_020311D0
+ cmp r0, #0x0
+ beq _020310FC
+ ldr r0, _02031100 ; =0x021C59F4
+ ldr r1, [r0, #0x4]
+ ldr r0, _02031108 ; =0x0000067C
+ ldrb r0, [r1, r0]
+ bl FUN_0202F9E0
+ ldr r0, _02031100 ; =0x021C59F4
+ mov r2, #0x0
+ ldr r1, [r0, #0x4]
+ ldr r0, _02031104 ; =0x0000067B
+ strb r2, [r1, r0]
+_020310FC:
+ pop {r3, pc}
+ nop
+_02031100: .word 0x021C59F4
+_02031104: .word 0x0000067B
+_02031108: .word 0x0000067C
+
+ thumb_func_start FUN_0203110C
+FUN_0203110C: ; 0x0203110C
+ push {r4, lr}
+ add r4, r2, #0x0
+ bl FUN_02031190
+ cmp r0, #0x0
+ bne _0203112A
+ ldr r1, _0203112C ; =0x021C59F4
+ ldr r0, _02031130 ; =0x0000067B
+ ldr r2, [r1, #0x4]
+ mov r3, #0x1
+ strb r3, [r2, r0]
+ ldrb r2, [r4, #0x0]
+ ldr r1, [r1, #0x4]
+ add r0, r0, #0x1
+ strb r2, [r1, r0]
+_0203112A:
+ pop {r4, pc}
+ .balign 4
+_0203112C: .word 0x021C59F4
+_02031130: .word 0x0000067B
+
+ thumb_func_start FUN_02031134
+FUN_02031134: ; 0x02031134
+ push {r4, lr}
+ add r4, r2, #0x0
+ bl FUN_02031190
+ cmp r0, #0x0
+ beq _02031152
+ ldr r1, _02031154 ; =0x021C59F4
+ ldrb r3, [r4, #0x0]
+ ldr r2, [r1, #0x4]
+ ldr r0, _02031158 ; =0x0000067C
+ strb r3, [r2, r0]
+ ldr r1, [r1, #0x4]
+ mov r2, #0x3
+ sub r0, r0, #0x1
+ strb r2, [r1, r0]
+_02031152:
+ pop {r4, pc}
+ .balign 4
+_02031154: .word 0x021C59F4
+_02031158: .word 0x0000067C
+
+ thumb_func_start FUN_0203115C
+FUN_0203115C: ; 0x0203115C
+ push {r4, lr}
+ add r4, r2, #0x0
+ bl FUN_02031190
+ cmp r0, #0x0
+ bne _02031184
+ ldr r0, _02031188 ; =0x021C59F4
+ ldr r1, [r0, #0x4]
+ ldr r0, _0203118C ; =0x0000067B
+ ldrb r0, [r1, r0]
+ cmp r0, #0x2
+ bne _02031184
+ ldrb r0, [r4, #0x0]
+ bl FUN_0202F9E0
+ ldr r0, _02031188 ; =0x021C59F4
+ mov r2, #0x0
+ ldr r1, [r0, #0x4]
+ ldr r0, _0203118C ; =0x0000067B
+ strb r2, [r1, r0]
+_02031184:
+ pop {r4, pc}
+ nop
+_02031188: .word 0x021C59F4
+_0203118C: .word 0x0000067B
+
+ thumb_func_start FUN_02031190
+FUN_02031190: ; 0x02031190
+ push {r3, lr}
+ ldr r0, _020311CC ; =0x021C59F4
+ ldr r0, [r0, #0x4]
+ cmp r0, #0x0
+ beq _020311C6
+ bl FUN_02033534
+ cmp r0, #0x13
+ blt _020311B4
+ bl FUN_021D8018
+ mov r1, #0x0
+ mvn r1, r1
+ cmp r0, r1
+ beq _020311C6
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ pop {r3, pc}
+_020311B4:
+ bl FUN_02031280
+ cmp r0, #0x0
+ beq _020311C0
+ mov r0, #0x0
+ pop {r3, pc}
+_020311C0:
+ bl FUN_0202D19C
+ pop {r3, pc}
+_020311C6:
+ mov r0, #0x0
+ pop {r3, pc}
+ nop
+_020311CC: .word 0x021C59F4
+
+ thumb_func_start FUN_020311D0
+FUN_020311D0: ; 0x020311D0
+ ldr r3, _020311D8 ; =FUN_02030ADC
+ mov r2, #0x0
+ bx r3
+ nop
+_020311D8: .word FUN_02030ADC
+
+ thumb_func_start FUN_020311DC
+FUN_020311DC: ; 0x020311DC
+ ldr r3, _020311E4 ; =FUN_02030ADC
+ mov r1, #0x0
+ add r2, r1, #0x0
+ bx r3
+ .balign 4
+_020311E4: .word FUN_02030ADC
+
+ thumb_func_start FUN_020311E8
+FUN_020311E8: ; 0x020311E8
+ ldr r3, _020311EC ; =FUN_0202EE24
+ bx r3
+ .balign 4
+_020311EC: .word FUN_0202EE24
+
+ thumb_func_start FUN_020311F0
+FUN_020311F0: ; 0x020311F0
+ push {r3, lr}
+ bl FUN_02031280
+ cmp r0, #0x0
+ beq _020311FE
+ mov r0, #0x0
+ pop {r3, pc}
+_020311FE:
+ ldr r0, _02031220 ; =0x021C59F4
+ ldr r1, [r0, #0x4]
+ cmp r1, #0x0
+ beq _0203121A
+ ldr r0, _02031224 ; =0x00000689
+ ldrb r0, [r1, r0]
+ cmp r0, #0x0
+ beq _0203121A
+ mov r0, #0x1
+ add r1, r0, #0x0
+ bl FUN_020334E8
+ mov r0, #0x1
+ pop {r3, pc}
+_0203121A:
+ bl FUN_0202EE60
+ pop {r3, pc}
+ .balign 4
+_02031220: .word 0x021C59F4
+_02031224: .word 0x00000689
+
+ thumb_func_start FUN_02031228
+FUN_02031228: ; 0x02031228
+ push {r3, lr}
+ bl FUN_0202D858
+ cmp r0, #0x5
+ blo _02031236
+ mov r0, #0xc
+ pop {r3, pc}
+_02031236:
+ bl FUN_0202FA28
+ cmp r0, #0x0
+ bne _02031242
+ mov r0, #0xc
+ pop {r3, pc}
+_02031242:
+ mov r0, #0x26
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_02031248
+FUN_02031248: ; 0x02031248
+ push {r3, lr}
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ bl FUN_0202D858
+ add r0, r0, #0x1
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_02031258
+FUN_02031258: ; 0x02031258
+ push {r3, lr}
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ bl FUN_0202D884
+ add r0, r0, #0x1
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_02031268
+FUN_02031268: ; 0x02031268
+ ldr r1, _02031278 ; =0x021C59F4
+ ldr r2, [r1, #0x4]
+ cmp r2, #0x0
+ beq _02031274
+ ldr r1, _0203127C ; =0x00000686
+ strb r0, [r2, r1]
+_02031274:
+ bx lr
+ nop
+_02031278: .word 0x021C59F4
+_0203127C: .word 0x00000686
+
+ thumb_func_start FUN_02031280
+FUN_02031280: ; 0x02031280
+ ldr r0, _02031294 ; =0x021C59F4
+ ldr r1, [r0, #0x4]
+ cmp r1, #0x0
+ beq _0203128E
+ ldr r0, _02031298 ; =0x00000686
+ ldrb r0, [r1, r0]
+ bx lr
+_0203128E:
+ mov r0, #0x0
+ bx lr
+ nop
+_02031294: .word 0x021C59F4
+_02031298: .word 0x00000686
+
+ thumb_func_start FUN_0203129C
+FUN_0203129C: ; 0x0203129C
+ push {r3, lr}
+ bl FUN_0202F03C
+ cmp r0, #0x0
+ bne _020312B6
+ bl FUN_02031190
+ cmp r0, #0x0
+ bne _020312B6
+ mov r0, #0x2
+ add r1, sp, #0x0
+ bl FUN_02030C4C
+_020312B6:
+ bl FUN_0202F05C
+ pop {r3, pc}
+
+ thumb_func_start FUN_020312BC
+FUN_020312BC: ; 0x020312BC
+ push {r3-r7, lr}
+ sub sp, #0x20
+ add r4, r0, #0x0
+ add r0, sp, #0x10
+ add r1, sp, #0x4
+ bl FUN_0201265C
+ ldr r0, _02031340 ; =0x021C48B8
+ ldr r6, [sp, #0x10]
+ mov r5, #0x0
+ lsr r7, r6, #0x1c
+ lsl r5, r5, #0x4
+ ldr r1, [sp, #0xc]
+ ldr r0, [r0, #0x2c]
+ lsl r6, r6, #0x4
+ add r3, r1, r0
+ ldr r0, [sp, #0x18]
+ orr r5, r7
+ str r0, [sp, #0x0]
+ ldr r0, [sp, #0x14]
+ ldr r1, [sp, #0x4]
+ add r6, r0, r6
+ ldr r0, _02031344 ; =0x00000000
+ ldr r2, [sp, #0x8]
+ adc r0, r5
+ lsr r5, r6, #0x1b
+ lsl r0, r0, #0x5
+ orr r0, r5
+ ldr r5, [sp, #0x0]
+ lsl r6, r6, #0x5
+ add r6, r5, r6
+ ldr r5, _02031344 ; =0x00000000
+ adc r5, r0
+ lsr r0, r6, #0x1b
+ lsl r5, r5, #0x5
+ orr r5, r0
+ lsl r0, r6, #0x5
+ add r6, r1, r0
+ ldr r1, _02031344 ; =0x00000000
+ adc r1, r5
+ lsr r0, r6, #0x1a
+ lsl r1, r1, #0x6
+ orr r1, r0
+ lsl r0, r6, #0x6
+ add r5, r2, r0
+ ldr r2, _02031344 ; =0x00000000
+ adc r2, r1
+ lsr r0, r5, #0x1a
+ lsl r1, r2, #0x6
+ orr r1, r0
+ lsl r0, r5, #0x6
+ add r2, r3, r0
+ ldr r0, _02031344 ; =0x00000000
+ str r2, [r4, #0x0]
+ adc r0, r1
+ str r0, [r4, #0x4]
+ ldr r1, _02031348 ; =0x6C078965
+ ldr r0, _0203134C ; =0x5D588B65
+ str r1, [r4, #0x8]
+ str r0, [r4, #0xc]
+ ldr r0, _02031350 ; =0x00269EC3
+ str r0, [r4, #0x10]
+ mov r0, #0x0
+ str r0, [r4, #0x14]
+ add sp, #0x20
+ pop {r3-r7, pc}
+ .balign 4
+_02031340: .word 0x021C48B8
+_02031344: .word 0x00000000
+_02031348: .word 0x6C078965
+_0203134C: .word 0x5D588B65
+_02031350: .word 0x00269EC3
+
+ thumb_func_start FUN_02031354
+FUN_02031354: ; 0x02031354
+ add r1, r0, #0x0
+ ldr r0, _02031364 ; =0x021C59F4
+ ldr r3, _02031368 ; =FUN_0202D830
+ ldr r2, [r0, #0x4]
+ ldr r0, _0203136C ; =0x0000056C
+ add r0, r2, r0
+ bx r3
+ nop
+_02031364: .word 0x021C59F4
+_02031368: .word FUN_0202D830
+_0203136C: .word 0x0000056C
+
+ thumb_func_start FUN_02031370
+FUN_02031370: ; 0x02031370
+ ldr r0, _0203137C ; =0x021C59F4
+ ldr r3, _02031380 ; =FUN_0202D4E4
+ ldr r1, [r0, #0x4]
+ ldr r0, _02031384 ; =0x0000056C
+ add r0, r1, r0
+ bx r3
+ .balign 4
+_0203137C: .word 0x021C59F4
+_02031380: .word FUN_0202D4E4
+_02031384: .word 0x0000056C
+
+ thumb_func_start FUN_02031388
+FUN_02031388: ; 0x02031388
+ ldr r0, _02031394 ; =0x021C59F4
+ ldr r3, _02031398 ; =FUN_0202D4E4
+ ldr r1, [r0, #0x4]
+ ldr r0, _0203139C ; =0x0000054C
+ add r0, r1, r0
+ bx r3
+ .balign 4
+_02031394: .word 0x021C59F4
+_02031398: .word FUN_0202D4E4
+_0203139C: .word 0x0000054C
+
+ thumb_func_start FUN_020313A0
+FUN_020313A0: ; 0x020313A0
+ ldr r1, _020313AC ; =0x021C59F4
+ ldr r2, [r1, #0x4]
+ ldr r1, _020313B0 ; =0x00000687
+ strb r0, [r2, r1]
+ bx lr
+ nop
+_020313AC: .word 0x021C59F4
+_020313B0: .word 0x00000687
+
+ thumb_func_start FUN_020313B4
+FUN_020313B4: ; 0x020313B4
+ ldr r2, _020313C4 ; =0x021C59F4
+ ldr r2, [r2, #0x4]
+ cmp r2, #0x0
+ beq _020313C2
+ add r2, r2, r1
+ ldr r1, _020313C8 ; =0x00000677
+ strb r0, [r2, r1]
+_020313C2:
+ bx lr
+ .balign 4
+_020313C4: .word 0x021C59F4
+_020313C8: .word 0x00000677
+
+ thumb_func_start FUN_020313CC
+FUN_020313CC: ; 0x020313CC
+ ldr r1, _020313E4 ; =0x021C59F4
+ ldr r1, [r1, #0x4]
+ cmp r1, #0x0
+ beq _020313E0
+ add r2, r1, r0
+ ldr r1, _020313E8 ; =0x00000677
+ ldrb r1, [r2, r1]
+ cmp r1, #0xff
+ beq _020313E0
+ add r0, r1, #0x0
+_020313E0:
+ bx lr
+ nop
+_020313E4: .word 0x021C59F4
+_020313E8: .word 0x00000677
+
+ thumb_func_start FUN_020313EC
+FUN_020313EC: ; 0x020313EC
+ push {r3, lr}
+ bl FUN_02033534
+ cmp r0, #0x13
+ bge _020313FA
+ mov r0, #0x0
+ pop {r3, pc}
+_020313FA:
+ bl FUN_021D8624
+ pop {r3, pc}
+
+ thumb_func_start FUN_02031400
+FUN_02031400: ; 0x02031400
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl FUN_02033534
+ cmp r0, #0x13
+ blt _02031430
+ ldr r2, _02031434 ; =0x021C59F4
+ mov r1, #0x63
+ ldr r0, [r2, #0x4]
+ lsl r1, r1, #0x4
+ str r4, [r0, r1]
+ cmp r4, #0x0
+ beq _02031430
+ ldr r3, [r2, #0x4]
+ mov r4, #0x0
+ add r0, r1, #0x4
+ str r4, [r3, r0]
+ add r0, r1, #0x0
+ ldr r3, [r2, #0x4]
+ add r0, #0x8
+ str r4, [r3, r0]
+ ldr r0, [r2, #0x4]
+ add r1, #0xc
+ str r4, [r0, r1]
+_02031430:
+ pop {r4, pc}
+ nop
+_02031434: .word 0x021C59F4
+
+ thumb_func_start FUN_02031438
+FUN_02031438: ; 0x02031438
+ ldr r0, _0203144C ; =0x021C59F4
+ ldr r1, [r0, #0x4]
+ ldr r0, _02031450 ; =0x00000681
+ ldrb r0, [r1, r0]
+ cmp r0, #0x0
+ beq _02031448
+ mov r0, #0x1
+ bx lr
+_02031448:
+ mov r0, #0x0
+ bx lr
+ .balign 4
+_0203144C: .word 0x021C59F4
+_02031450: .word 0x00000681
+
+ thumb_func_start FUN_02031454
+FUN_02031454: ; 0x02031454
+ ldr r0, _02031460 ; =0x021C59F4
+ mov r2, #0x1
+ ldr r1, [r0, #0x4]
+ ldr r0, _02031464 ; =0x00000689
+ strb r2, [r1, r0]
+ bx lr
+ .balign 4
+_02031460: .word 0x021C59F4
+_02031464: .word 0x00000689
+
+ thumb_func_start FUN_02031468
+FUN_02031468: ; 0x02031468
+ ldr r0, _02031478 ; =0x021C59F4
+ ldr r2, [r0, #0x4]
+ cmp r2, #0x0
+ beq _02031476
+ ldr r0, _0203147C ; =0x0000068A
+ mov r1, #0x1
+ strb r1, [r2, r0]
+_02031476:
+ bx lr
+ .balign 4
+_02031478: .word 0x021C59F4
+_0203147C: .word 0x0000068A
+
+ thumb_func_start FUN_02031480
+FUN_02031480: ; 0x02031480
+ push {r4, lr}
+ ldr r1, _020314C8 ; =0x021C59FC
+ ldr r1, [r1, #0x0]
+ cmp r1, #0x0
+ bne _0203149C
+ ldr r1, _020314CC ; =0x00000253
+ bl FUN_02016998
+ ldr r1, _020314C8 ; =0x021C59FC
+ ldr r2, _020314CC ; =0x00000253
+ str r0, [r1, #0x0]
+ mov r1, #0x0
+ blx MI_CpuFill8
+_0203149C:
+ ldr r1, _020314C8 ; =0x021C59FC
+ mov r3, #0x0
+ mov r0, #0xff
+_020314A2:
+ ldr r2, [r1, #0x0]
+ add r2, r2, r3
+ add r3, r3, #0x1
+ strb r0, [r2, #0x10]
+ cmp r3, #0x8
+ blt _020314A2
+ ldr r3, _020314C8 ; =0x021C59FC
+ mov r1, #0x25
+ ldr r2, [r3, #0x0]
+ lsl r1, r1, #0x4
+ strb r0, [r2, r1]
+ ldr r4, [r3, #0x0]
+ add r2, r1, #0x1
+ strb r0, [r4, r2]
+ ldr r2, [r3, #0x0]
+ mov r4, #0x0
+ add r0, r1, #0x2
+ strb r4, [r2, r0]
+ pop {r4, pc}
+ .balign 4
+_020314C8: .word 0x021C59FC
+_020314CC: .word 0x00000253
+
+ thumb_func_start FUN_020314D0
+FUN_020314D0: ; 0x020314D0
+ push {r3, lr}
+ ldr r0, _020314E4 ; =0x021C59FC
+ ldr r0, [r0, #0x0]
+ bl FUN_02016A18
+ ldr r0, _020314E4 ; =0x021C59FC
+ mov r1, #0x0
+ str r1, [r0, #0x0]
+ pop {r3, pc}
+ nop
+_020314E4: .word 0x021C59FC
+
+ thumb_func_start FUN_020314E8
+FUN_020314E8: ; 0x020314E8
+ ldr r0, _020314F8 ; =0x021C59FC
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ beq _020314F4
+ mov r0, #0x1
+ bx lr
+_020314F4:
+ mov r0, #0x0
+ bx lr
+ .balign 4
+_020314F8: .word 0x021C59FC
+
+ thumb_func_start FUN_020314FC
+FUN_020314FC: ; 0x020314FC
+ push {r3-r6, lr}
+ sub sp, #0x4
+ ldrb r1, [r2, #0x0]
+ add r5, r0, #0x0
+ add r0, sp, #0x0
+ strb r1, [r0, #0x0]
+ bl FUN_02031190
+ cmp r0, #0x0
+ bne _02031556
+ add r0, sp, #0x0
+ strb r5, [r0, #0x1]
+ ldrb r1, [r0, #0x0]
+ strb r1, [r0, #0x2]
+ add r1, sp, #0x0
+ mov r0, #0x12
+ add r1, #0x1
+ bl FUN_02030C4C
+ ldr r6, _0203155C ; =0x021C59FC
+ add r4, sp, #0x0
+ ldr r0, [r6, #0x0]
+ ldrb r1, [r4, #0x0]
+ add r0, r0, r5
+ mov r5, #0x0
+ strb r1, [r0, #0x10]
+_02031530:
+ lsl r0, r5, #0x10
+ lsr r0, r0, #0x10
+ bl FUN_02030E7C
+ cmp r0, #0x0
+ beq _02031548
+ ldr r0, [r6, #0x0]
+ ldrb r1, [r4, #0x0]
+ add r0, r0, r5
+ ldrb r0, [r0, #0x10]
+ cmp r1, r0
+ bne _02031556
+_02031548:
+ add r5, r5, #0x1
+ cmp r5, #0x8
+ blt _02031530
+ mov r0, #0x11
+ add r1, sp, #0x0
+ bl FUN_02030C4C
+_02031556:
+ add sp, #0x4
+ pop {r3-r6, pc}
+ nop
+_0203155C: .word 0x021C59FC
+
+ thumb_func_start FUN_02031560
+FUN_02031560: ; 0x02031560
+ ldr r0, _02031570 ; =0x021C59FC
+ ldrb r3, [r2, #0x1]
+ ldr r1, [r0, #0x0]
+ ldrb r0, [r2, #0x0]
+ add r0, r1, r0
+ strb r3, [r0, #0x10]
+ bx lr
+ nop
+_02031570: .word 0x021C59FC
+
+ thumb_func_start FUN_02031574
+FUN_02031574: ; 0x02031574
+ ldr r0, _02031584 ; =0x021C59FC
+ ldrb r2, [r2, #0x0]
+ ldr r1, [r0, #0x0]
+ mov r0, #0x25
+ lsl r0, r0, #0x4
+ strb r2, [r1, r0]
+ bx lr
+ nop
+_02031584: .word 0x021C59FC
+
+ thumb_func_start FUN_02031588
+FUN_02031588: ; 0x02031588
+ ldr r2, _0203159C ; =0x021C59FC
+ ldr r1, _020315A0 ; =0x00000251
+ ldr r3, [r2, #0x0]
+ strb r0, [r3, r1]
+ ldr r2, [r2, #0x0]
+ mov r3, #0x1
+ add r0, r1, #0x1
+ strb r3, [r2, r0]
+ bx lr
+ nop
+_0203159C: .word 0x021C59FC
+_020315A0: .word 0x00000251
+
+ thumb_func_start FUN_020315A4
+FUN_020315A4: ; 0x020315A4
+ push {r3, lr}
+ ldr r0, _020315D0 ; =0x021C59FC
+ ldr r2, [r0, #0x0]
+ cmp r2, #0x0
+ beq _020315CE
+ ldr r1, _020315D4 ; =0x00000252
+ ldrb r0, [r2, r1]
+ cmp r0, #0x0
+ beq _020315CE
+ sub r1, r1, #0x1
+ mov r0, #0x10
+ add r1, r2, r1
+ bl FUN_020311D0
+ cmp r0, #0x0
+ beq _020315CE
+ ldr r0, _020315D0 ; =0x021C59FC
+ mov r2, #0x0
+ ldr r1, [r0, #0x0]
+ ldr r0, _020315D4 ; =0x00000252
+ strb r2, [r1, r0]
+_020315CE:
+ pop {r3, pc}
+ .balign 4
+_020315D0: .word 0x021C59FC
+_020315D4: .word 0x00000252
+
+ thumb_func_start FUN_020315D8
+FUN_020315D8: ; 0x020315D8
+ ldr r1, _020315F8 ; =0x021C59FC
+ ldr r2, [r1, #0x0]
+ cmp r2, #0x0
+ bne _020315E4
+ mov r0, #0x1
+ bx lr
+_020315E4:
+ mov r1, #0x25
+ lsl r1, r1, #0x4
+ ldrb r1, [r2, r1]
+ cmp r1, r0
+ bne _020315F2
+ mov r0, #0x1
+ bx lr
+_020315F2:
+ mov r0, #0x0
+ bx lr
+ nop
+_020315F8: .word 0x021C59FC
+
+ thumb_func_start FUN_020315FC
+FUN_020315FC: ; 0x020315FC
+ ldr r1, _02031608 ; =0x021C59FC
+ ldr r1, [r1, #0x0]
+ add r0, r1, r0
+ ldrb r0, [r0, #0x10]
+ bx lr
+ nop
+_02031608: .word 0x021C59FC
+
+ thumb_func_start FUN_0203160C
+FUN_0203160C: ; 0x0203160C
+ push {r3-r4}
+ lsl r4, r0, #0x1
+ ldr r0, _02031624 ; =0x021C59FC
+ ldrb r3, [r2, #0x0]
+ ldr r1, [r0, #0x0]
+ strb r3, [r1, r4]
+ ldr r0, [r0, #0x0]
+ ldrb r1, [r2, #0x1]
+ add r0, r0, r4
+ strb r1, [r0, #0x1]
+ pop {r3-r4}
+ bx lr
+ .balign 4
+_02031624: .word 0x021C59FC
+
+ thumb_func_start FUN_02031628
+FUN_02031628: ; 0x02031628
+ mov r0, #0x2
+ bx lr
+
+ thumb_func_start FUN_0203162C
+FUN_0203162C: ; 0x0203162C
+ push {r3, lr}
+ add r2, sp, #0x0
+ strb r0, [r2, #0x0]
+ strb r1, [r2, #0x1]
+ mov r0, #0x13
+ add r1, sp, #0x0
+ bl FUN_020311D0
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_02031640
+FUN_02031640: ; 0x02031640
+ ldr r2, _02031664 ; =0x021C59FC
+ ldr r3, [r2, #0x0]
+ cmp r3, #0x0
+ bne _0203164E
+ mov r0, #0x0
+ mvn r0, r0
+ bx lr
+_0203164E:
+ lsl r2, r0, #0x1
+ ldrb r0, [r3, r2]
+ cmp r1, r0
+ bne _0203165C
+ add r0, r3, r2
+ ldrb r0, [r0, #0x1]
+ bx lr
+_0203165C:
+ mov r0, #0x0
+ mvn r0, r0
+ bx lr
+ nop
+_02031664: .word 0x021C59FC
+
+ thumb_func_start FUN_02031668
+FUN_02031668: ; 0x02031668
+ push {r3-r7, lr}
+ mov r4, #0x0
+ ldr r6, _02031688 ; =0x021C59FC
+ add r5, r4, #0x0
+ add r7, r4, #0x0
+_02031672:
+ ldr r0, [r6, #0x0]
+ add r1, r7, #0x0
+ add r0, r0, r5
+ mov r2, #0x2
+ blx MI_CpuFill8
+ add r4, r4, #0x1
+ add r5, r5, #0x2
+ cmp r4, #0x8
+ blt _02031672
+ pop {r3-r7, pc}
+ .balign 4
+_02031688: .word 0x021C59FC
+
+ thumb_func_start FUN_0203168C
+FUN_0203168C: ; 0x0203168C
+ push {r3-r4}
+ mov r4, #0x0
+ mov r0, #0x92
+ ldr r1, _020316A8 ; =0x021C59FC
+ add r3, r4, #0x0
+ lsl r0, r0, #0x2
+_02031698:
+ ldr r2, [r1, #0x0]
+ add r2, r2, r4
+ add r4, r4, #0x1
+ strb r3, [r2, r0]
+ cmp r4, #0x8
+ blt _02031698
+ pop {r3-r4}
+ bx lr
+ .balign 4
+_020316A8: .word 0x021C59FC
+
+ thumb_func_start FUN_020316AC
+FUN_020316AC: ; 0x020316AC
+ push {r4, lr}
+ ldr r2, _020316DC ; =0x021C59FC
+ ldr r3, [r2, #0x0]
+ cmp r3, #0x0
+ beq _020316D8
+ add r4, r0, #0x0
+ mov r2, #0x46
+ mul r4, r2
+ add r3, #0x18
+ add r0, r1, #0x0
+ add r1, r3, r4
+ blx MI_CpuCopy8
+ ldr r1, _020316DC ; =0x021C59FC
+ mov r0, #0x14
+ ldr r1, [r1, #0x0]
+ add r1, #0x18
+ add r1, r1, r4
+ bl FUN_020311D0
+ mov r0, #0x1
+ pop {r4, pc}
+_020316D8:
+ mov r0, #0x0
+ pop {r4, pc}
+ .balign 4
+_020316DC: .word 0x021C59FC
+
+ thumb_func_start FUN_020316E0
+FUN_020316E0: ; 0x020316E0
+ ldr r1, _02031700 ; =0x021C59FC
+ ldr r3, [r1, #0x0]
+ mov r1, #0x92
+ add r2, r3, r0
+ lsl r1, r1, #0x2
+ ldrb r1, [r2, r1]
+ cmp r1, #0x0
+ beq _020316FA
+ mov r1, #0x46
+ add r3, #0x18
+ mul r1, r0
+ add r0, r3, r1
+ bx lr
+_020316FA:
+ mov r0, #0x0
+ bx lr
+ nop
+_02031700: .word 0x021C59FC
+
+ thumb_func_start FUN_02031704
+FUN_02031704: ; 0x02031704
+ push {r3-r5, lr}
+ ldr r3, _0203172C ; =0x021C59FC
+ add r1, r0, #0x0
+ ldr r0, [r3, #0x0]
+ mov r5, #0x1
+ add r4, r0, r1
+ mov r0, #0x92
+ lsl r0, r0, #0x2
+ strb r5, [r4, r0]
+ ldr r4, [r3, #0x0]
+ add r0, r2, #0x0
+ mov r2, #0x46
+ add r3, r1, #0x0
+ add r4, #0x18
+ mul r3, r2
+ add r1, r4, r3
+ blx MI_CpuCopy8
+ pop {r3-r5, pc}
+ nop
+_0203172C: .word 0x021C59FC
+
+ thumb_func_start FUN_02031730
+FUN_02031730: ; 0x02031730
+ mov r0, #0x46
+ bx lr
+
+ thumb_func_start FUN_02031734
+FUN_02031734: ; 0x02031734
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ ldr r0, _020317BC ; =0x021C5A00
+ add r4, r1, #0x0
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ bne _020317B8
+ bl FUN_0202E49C
+ mov r0, #0xf
+ mov r1, #0x50
+ bl FUN_02016998
+ ldr r1, _020317BC ; =0x021C5A00
+ mov r2, #0x50
+ str r0, [r1, #0x0]
+ mov r1, #0x0
+ blx MI_CpuFill8
+ ldr r0, _020317BC ; =0x021C5A00
+ mov r2, #0x32
+ ldr r1, [r0, #0x0]
+ strh r2, [r1, #0x3a]
+ ldr r1, [r0, #0x0]
+ mov r2, #0x1
+ add r1, #0x43
+ strb r2, [r1, #0x0]
+ ldr r0, [r0, #0x0]
+ str r5, [r0, #0x28]
+ add r0, r5, #0x0
+ bl FUN_020238F4
+ ldr r1, _020317BC ; =0x021C5A00
+ ldr r2, [r1, #0x0]
+ str r0, [r2, #0x2c]
+ ldr r0, [r1, #0x0]
+ mov r2, #0x2
+ add r0, #0x3c
+ strb r2, [r0, #0x0]
+ ldr r0, [r1, #0x0]
+ mov r2, #0x0
+ add r0, #0x3d
+ strb r2, [r0, #0x0]
+ ldr r0, [r1, #0x0]
+ add r0, #0x48
+ strb r2, [r0, #0x0]
+ ldr r0, [r1, #0x0]
+ add r0, #0x3f
+ strb r4, [r0, #0x0]
+ ldr r0, [r1, #0x0]
+ add r0, #0xc
+ bl FUN_020312BC
+ mov r0, #0x0
+ add r1, r0, #0x0
+ add r2, r0, #0x0
+ bl FUN_0202D8D0
+ cmp r4, #0x9
+ beq _020317B8
+ cmp r4, #0x11
+ beq _020317B8
+ cmp r4, #0xf
+ beq _020317B8
+ bl FUN_02033E74
+_020317B8:
+ pop {r3-r5, pc}
+ nop
+_020317BC: .word 0x021C5A00
+
+ thumb_func_start FUN_020317C0
+FUN_020317C0: ; 0x020317C0
+ push {r3, lr}
+ ldr r0, _0203180C ; =0x021C5A00
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ beq _0203180A
+ bl FUN_0202D918
+ ldr r0, _0203180C ; =0x021C5A00
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ beq _020317DC
+ bl FUN_02016A18
+_020317DC:
+ ldr r0, _0203180C ; =0x021C5A00
+ ldr r0, [r0, #0x0]
+ add r0, #0x3f
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x13
+ blo _020317EE
+ mov r0, #0x31
+ bl FUN_020168D0
+_020317EE:
+ bl FUN_02033ED0
+ bl FUN_0202E4F0
+ ldr r0, _0203180C ; =0x021C5A00
+ ldr r0, [r0, #0x0]
+ bl FUN_02016A18
+ mov r0, #0xf
+ bl FUN_020168D0
+ ldr r0, _0203180C ; =0x021C5A00
+ mov r1, #0x0
+ str r1, [r0, #0x0]
+_0203180A:
+ pop {r3, pc}
+ .balign 4
+_0203180C: .word 0x021C5A00
+
+ thumb_func_start FUN_02031810
+FUN_02031810: ; 0x02031810
+ ldr r0, _02031820 ; =0x021C5A00
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ beq _0203181C
+ mov r0, #0x1
+ bx lr
+_0203181C:
+ mov r0, #0x0
+ bx lr
+ .balign 4
+_02031820: .word 0x021C5A00
+
+ thumb_func_start FUN_02031824
+FUN_02031824: ; 0x02031824
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r0, _02031858 ; =0x021C5A00
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ bne _02031856
+ mov r2, #0xe
+ mov r0, #0x3
+ mov r1, #0xf
+ lsl r2, r2, #0xc
+ bl FUN_02016828
+ add r0, r4, #0x0
+ mov r1, #0xa
+ bl FUN_02031734
+ ldr r0, _02031858 ; =0x021C5A00
+ mov r1, #0x0
+ ldr r0, [r0, #0x0]
+ add r0, #0x40
+ strb r1, [r0, #0x0]
+ ldr r0, _0203185C ; =FUN_02031D30
+ mov r1, #0x32
+ bl FUN_02031D20
+_02031856:
+ pop {r4, pc}
+ .balign 4
+_02031858: .word 0x021C5A00
+_0203185C: .word FUN_02031D30
+
+ thumb_func_start FUN_02031860
+FUN_02031860: ; 0x02031860
+ push {r3, lr}
+ ldr r0, _02031878 ; =0x021C5A00
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ beq _02031876
+ bl FUN_02031468
+ ldr r0, _0203187C ; =FUN_020323CC
+ mov r1, #0x0
+ bl FUN_02031D20
+_02031876:
+ pop {r3, pc}
+ .balign 4
+_02031878: .word 0x021C5A00
+_0203187C: .word FUN_020323CC
+
+ thumb_func_start FUN_02031880
+FUN_02031880: ; 0x02031880
+ push {r3, lr}
+ bl FUN_0202FC60
+ bl FUN_02031190
+ ldr r1, _0203189C ; =0x021C5A00
+ ldr r1, [r1, #0x0]
+ strh r0, [r1, #0x38]
+ ldr r0, _020318A0 ; =FUN_020321B8
+ mov r1, #0x0
+ bl FUN_02031D20
+ pop {r3, pc}
+ nop
+_0203189C: .word 0x021C5A00
+_020318A0: .word FUN_020321B8
+
+ thumb_func_start FUN_020318A4
+FUN_020318A4: ; 0x020318A4
+ ldr r1, _020318B0 ; =0x021C5A00
+ ldr r1, [r1, #0x0]
+ add r1, #0x4f
+ strb r0, [r1, #0x0]
+ bx lr
+ nop
+_020318B0: .word 0x021C5A00
+
+ thumb_func_start FUN_020318B4
+FUN_020318B4: ; 0x020318B4
+ ldr r3, _020318BC ; =FUN_02031D20
+ ldr r0, _020318C0 ; =FUN_02032028
+ mov r1, #0x0
+ bx r3
+ .balign 4
+_020318BC: .word FUN_02031D20
+_020318C0: .word FUN_02032028
+
+ thumb_func_start FUN_020318C4
+FUN_020318C4: ; 0x020318C4
+ push {r4}
+ sub sp, #0xc
+ ldr r4, _0203190C ; =0x020EEC50
+ add r3, sp, #0x0
+ ldmia r4!, {r0-r1}
+ add r2, r3, #0x0
+ stmia r3!, {r0-r1}
+ ldr r0, [r4, #0x0]
+ str r0, [r3, #0x0]
+ ldr r0, _02031910 ; =0x021C5A00
+ ldr r0, [r0, #0x0]
+ ldr r1, [r0, #0x24]
+ cmp r0, #0x0
+ bne _020318E8
+ add sp, #0xc
+ mov r0, #0x0
+ pop {r4}
+ bx lr
+_020318E8:
+ ldr r0, [sp, #0x0]
+ cmp r0, #0x0
+ beq _02031904
+_020318EE:
+ ldr r0, [r2, #0x0]
+ cmp r1, r0
+ bne _020318FC
+ add sp, #0xc
+ mov r0, #0x1
+ pop {r4}
+ bx lr
+_020318FC:
+ add r2, r2, #0x4
+ ldr r0, [r2, #0x0]
+ cmp r0, #0x0
+ bne _020318EE
+_02031904:
+ mov r0, #0x0
+ add sp, #0xc
+ pop {r4}
+ bx lr
+ .balign 4
+_0203190C: .word 0x020EEC50
+_02031910: .word 0x021C5A00
+
+ thumb_func_start FUN_02031914
+FUN_02031914: ; 0x02031914
+ ldr r3, _0203191C ; =FUN_02031D20
+ ldr r0, _02031920 ; =FUN_02032178
+ mov r1, #0x0
+ bx r3
+ .balign 4
+_0203191C: .word FUN_02031D20
+_02031920: .word FUN_02032178
+
+ thumb_func_start FUN_02031924
+FUN_02031924: ; 0x02031924
+ ldr r0, _02031930 ; =0x021C5A00
+ mov r1, #0x1
+ ldr r0, [r0, #0x0]
+ add r0, #0x4c
+ strb r1, [r0, #0x0]
+ bx lr
+ .balign 4
+_02031930: .word 0x021C5A00
+
+ thumb_func_start FUN_02031934
+FUN_02031934: ; 0x02031934
+ push {r3, lr}
+ bl FUN_0202E49C
+ ldr r0, _02031944 ; =FUN_02032194
+ mov r1, #0x0
+ bl FUN_02031D20
+ pop {r3, pc}
+ .balign 4
+_02031944: .word FUN_02032194
+
+ thumb_func_start FUN_02031948
+FUN_02031948: ; 0x02031948
+ push {r3-r7, lr}
+ add r6, r0, #0x0
+ add r7, r1, #0x0
+ add r5, r2, #0x0
+ add r4, r3, #0x0
+ bl FUN_02030F40
+ cmp r0, #0x0
+ bne _02031980
+ ldr r2, _02031984 ; =0x00007080
+ mov r0, #0x3
+ mov r1, #0xf
+ bl FUN_02016828
+ add r0, r6, #0x0
+ add r1, r7, #0x0
+ bl FUN_02031734
+ ldr r0, _02031988 ; =0x021C5A00
+ ldr r1, [r0, #0x0]
+ add r1, #0x40
+ strb r5, [r1, #0x0]
+ ldr r0, [r0, #0x0]
+ mov r1, #0x0
+ str r4, [r0, #0x30]
+ ldr r0, _0203198C ; =FUN_020321D0
+ bl FUN_02031D20
+_02031980:
+ pop {r3-r7, pc}
+ nop
+_02031984: .word 0x00007080
+_02031988: .word 0x021C5A00
+_0203198C: .word FUN_020321D0
+
+ thumb_func_start FUN_02031990
+FUN_02031990: ; 0x02031990
+ push {r3-r7, lr}
+ add r6, r0, #0x0
+ add r7, r1, #0x0
+ add r5, r2, #0x0
+ add r4, r3, #0x0
+ bl FUN_02030F40
+ cmp r0, #0x0
+ bne _020319C8
+ ldr r2, _020319CC ; =0x00007080
+ mov r0, #0x3
+ mov r1, #0xf
+ bl FUN_02016828
+ add r0, r6, #0x0
+ add r1, r7, #0x0
+ bl FUN_02031734
+ ldr r0, _020319D0 ; =0x021C5A00
+ ldr r1, [r0, #0x0]
+ add r1, #0x40
+ strb r5, [r1, #0x0]
+ ldr r0, [r0, #0x0]
+ mov r1, #0x0
+ str r4, [r0, #0x30]
+ ldr r0, _020319D4 ; =FUN_0203224C
+ bl FUN_02031D20
+_020319C8:
+ pop {r3-r7, pc}
+ nop
+_020319CC: .word 0x00007080
+_020319D0: .word 0x021C5A00
+_020319D4: .word FUN_0203224C
+
+ thumb_func_start FUN_020319D8
+FUN_020319D8: ; 0x020319D8
+ ldr r1, _020319E8 ; =0x021C5A00
+ ldr r3, _020319EC ; =FUN_02031D20
+ ldr r1, [r1, #0x0]
+ add r1, #0x3e
+ strb r0, [r1, #0x0]
+ ldr r0, _020319F0 ; =FUN_02032298
+ mov r1, #0x0
+ bx r3
+ .balign 4
+_020319E8: .word 0x021C5A00
+_020319EC: .word FUN_02031D20
+_020319F0: .word FUN_02032298
+
+ thumb_func_start FUN_020319F4
+FUN_020319F4: ; 0x020319F4
+ push {r3, lr}
+ bl FUN_0202FCA8
+ ldr r0, _02031A04 ; =FUN_02032364
+ mov r1, #0x0
+ bl FUN_02031D20
+ pop {r3, pc}
+ .balign 4
+_02031A04: .word FUN_02032364
+
+ thumb_func_start FUN_02031A08
+FUN_02031A08: ; 0x02031A08
+ push {r3, lr}
+ ldr r0, _02031A1C ; =0x021C5A00
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ beq _02031A1A
+ ldr r0, _02031A20 ; =FUN_02032440
+ mov r1, #0x5
+ bl FUN_02031D20
+_02031A1A:
+ pop {r3, pc}
+ .balign 4
+_02031A1C: .word 0x021C5A00
+_02031A20: .word FUN_02032440
+
+ thumb_func_start FUN_02031A24
+FUN_02031A24: ; 0x02031A24
+ ldr r3, _02031A28 ; =FUN_0202D298
+ bx r3
+ .balign 4
+_02031A28: .word FUN_0202D298
+
+ thumb_func_start FUN_02031A2C
+FUN_02031A2C: ; 0x02031A2C
+ push {r4}
+ sub sp, #0xc
+ ldr r4, _02031A74 ; =0x020EEC5C
+ add r3, sp, #0x0
+ ldmia r4!, {r0-r1}
+ add r2, r3, #0x0
+ stmia r3!, {r0-r1}
+ ldr r0, [r4, #0x0]
+ str r0, [r3, #0x0]
+ ldr r0, _02031A78 ; =0x021C5A00
+ ldr r0, [r0, #0x0]
+ ldr r1, [r0, #0x24]
+ cmp r0, #0x0
+ bne _02031A50
+ add sp, #0xc
+ mov r0, #0x0
+ pop {r4}
+ bx lr
+_02031A50:
+ ldr r0, [sp, #0x0]
+ cmp r0, #0x0
+ beq _02031A6C
+_02031A56:
+ ldr r0, [r2, #0x0]
+ cmp r1, r0
+ bne _02031A64
+ add sp, #0xc
+ mov r0, #0x1
+ pop {r4}
+ bx lr
+_02031A64:
+ add r2, r2, #0x4
+ ldr r0, [r2, #0x0]
+ cmp r0, #0x0
+ bne _02031A56
+_02031A6C:
+ mov r0, #0x0
+ add sp, #0xc
+ pop {r4}
+ bx lr
+ .balign 4
+_02031A74: .word 0x020EEC5C
+_02031A78: .word 0x021C5A00
+
+ thumb_func_start FUN_02031A7C
+FUN_02031A7C: ; 0x02031A7C
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r0, _02031ABC ; =0x021C5A00
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ bne _02031ABA
+ ldr r2, _02031AC0 ; =0x00007080
+ mov r0, #0x3
+ mov r1, #0xf
+ bl FUN_02016828
+ cmp r0, #0x0
+ bne _02031A9A
+ bl FUN_020335E0
+_02031A9A:
+ add r0, r4, #0x0
+ mov r1, #0x9
+ bl FUN_02031734
+ ldr r0, _02031ABC ; =0x021C5A00
+ mov r2, #0x9
+ ldr r1, [r0, #0x0]
+ add r1, #0x3f
+ strb r2, [r1, #0x0]
+ ldr r0, [r0, #0x0]
+ mov r1, #0x0
+ add r0, #0x40
+ strb r1, [r0, #0x0]
+ ldr r0, _02031AC4 ; =FUN_02032478
+ bl FUN_02031D20
+_02031ABA:
+ pop {r4, pc}
+ .balign 4
+_02031ABC: .word 0x021C5A00
+_02031AC0: .word 0x00007080
+_02031AC4: .word FUN_02032478
+
+ thumb_func_start FUN_02031AC8
+FUN_02031AC8: ; 0x02031AC8
+ push {r3, lr}
+ ldr r1, _02031AEC ; =0x021C5A00
+ ldr r2, [r1, #0x0]
+ add r2, #0x3e
+ strb r0, [r2, #0x0]
+ ldr r0, [r1, #0x0]
+ mov r2, #0x3
+ strh r2, [r0, #0x38]
+ mov r0, #0x1
+ bl FUN_0202D344
+ bl FUN_02033E74
+ ldr r0, _02031AF0 ; =FUN_02032628
+ mov r1, #0x0
+ bl FUN_02031D20
+ pop {r3, pc}
+ .balign 4
+_02031AEC: .word 0x021C5A00
+_02031AF0: .word FUN_02032628
+
+ thumb_func_start FUN_02031AF4
+FUN_02031AF4: ; 0x02031AF4
+ ldr r0, _02031B20 ; =0x021C5A00
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ bne _02031B02
+ mov r0, #0x0
+ mvn r0, r0
+ bx lr
+_02031B02:
+ ldr r1, [r0, #0x24]
+ ldr r0, _02031B24 ; =FUN_0203279C
+ cmp r1, r0
+ bne _02031B0E
+ mov r0, #0x1
+ bx lr
+_02031B0E:
+ ldr r0, _02031B28 ; =FUN_020327B4
+ cmp r1, r0
+ bne _02031B18
+ mov r0, #0x1
+ b _02031B1A
+_02031B18:
+ mov r0, #0x0
+_02031B1A:
+ neg r0, r0
+ bx lr
+ nop
+_02031B20: .word 0x021C5A00
+_02031B24: .word FUN_0203279C
+_02031B28: .word FUN_020327B4
+
+ thumb_func_start FUN_02031B2C
+FUN_02031B2C: ; 0x02031B2C
+ ldr r0, _02031B48 ; =0x021C5A00
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ bne _02031B38
+ mov r0, #0x0
+ bx lr
+_02031B38:
+ ldr r1, [r0, #0x24]
+ ldr r0, _02031B4C ; =FUN_020327FC
+ cmp r1, r0
+ bne _02031B44
+ mov r0, #0x1
+ bx lr
+_02031B44:
+ mov r0, #0x0
+ bx lr
+ .balign 4
+_02031B48: .word 0x021C5A00
+_02031B4C: .word FUN_020327FC
+
+ thumb_func_start FUN_02031B50
+FUN_02031B50: ; 0x02031B50
+ push {r3, lr}
+ mov r0, #0x0
+ bl FUN_0202D344
+ ldr r0, _02031BC4 ; =0x021C5A00
+ ldr r1, [r0, #0x0]
+ add r0, r1, #0x0
+ add r0, #0x44
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x1
+ bne _02031B78
+ add r0, r1, #0x0
+ add r0, #0x45
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x1
+ bne _02031B78
+ add r1, #0x3f
+ ldrb r0, [r1, #0x0]
+ cmp r0, #0x9
+ bne _02031B80
+_02031B78:
+ mov r0, #0x0
+ add r1, r0, #0x0
+ bl FUN_020334E8
+_02031B80:
+ bl FUN_02033ED0
+ ldr r0, _02031BC4 ; =0x021C5A00
+ mov r2, #0x9
+ ldr r1, [r0, #0x0]
+ add r1, #0x3f
+ strb r2, [r1, #0x0]
+ ldr r1, [r0, #0x0]
+ mov r2, #0x0
+ add r1, #0x48
+ strb r2, [r1, #0x0]
+ ldr r0, [r0, #0x0]
+ add r0, #0x3c
+ ldrb r0, [r0, #0x0]
+ bl FUN_0202D1B0
+ bl FUN_02031190
+ cmp r0, #0x0
+ bne _02031BB8
+ mov r0, #0x1
+ bl FUN_0202D36C
+ ldr r0, _02031BC8 ; =FUN_020323DC
+ mov r1, #0xf
+ bl FUN_02031D20
+ pop {r3, pc}
+_02031BB8:
+ ldr r0, _02031BCC ; =FUN_02032424
+ mov r1, #0x5
+ bl FUN_02031D20
+ pop {r3, pc}
+ nop
+_02031BC4: .word 0x021C5A00
+_02031BC8: .word FUN_020323DC
+_02031BCC: .word FUN_02032424
+
+ thumb_func_start FUN_02031BD0
+FUN_02031BD0: ; 0x02031BD0
+ ldr r0, _02031BEC ; =0x021C5A00
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ bne _02031BDC
+ mov r0, #0x1
+ bx lr
+_02031BDC:
+ ldr r1, [r0, #0x24]
+ ldr r0, _02031BF0 ; =FUN_020324F8
+ cmp r1, r0
+ beq _02031BE8
+ mov r0, #0x1
+ bx lr
+_02031BE8:
+ mov r0, #0x0
+ bx lr
+ .balign 4
+_02031BEC: .word 0x021C5A00
+_02031BF0: .word FUN_020324F8
+
+ thumb_func_start FUN_02031BF4
+FUN_02031BF4: ; 0x02031BF4
+ push {r3, lr}
+ ldr r0, _02031C08 ; =0x021C5A00
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ beq _02031C06
+ ldr r0, _02031C0C ; =FUN_02032440
+ mov r1, #0x5
+ bl FUN_02031D20
+_02031C06:
+ pop {r3, pc}
+ .balign 4
+_02031C08: .word 0x021C5A00
+_02031C0C: .word FUN_02032440
+
+ thumb_func_start FUN_02031C10
+FUN_02031C10: ; 0x02031C10
+ push {r3, lr}
+ ldr r0, _02031C28 ; =0x021C5A00
+ ldr r1, [r0, #0x0]
+ cmp r1, #0x0
+ beq _02031C24
+ mov r0, #0x1
+ add r1, #0x48
+ strb r0, [r1, #0x0]
+ bl FUN_0202D344
+_02031C24:
+ pop {r3, pc}
+ nop
+_02031C28: .word 0x021C5A00
+
+ thumb_func_start FUN_02031C2C
+FUN_02031C2C: ; 0x02031C2C
+ push {r3, lr}
+ ldr r0, _02031C4C ; =0x021C5A00
+ ldr r1, [r0, #0x0]
+ cmp r1, #0x0
+ beq _02031C48
+ mov r0, #0x1
+ add r1, #0x48
+ strb r0, [r1, #0x0]
+ bl FUN_0202D344
+ ldr r0, _02031C50 ; =FUN_02032850
+ mov r1, #0x0
+ bl FUN_02031D20
+_02031C48:
+ pop {r3, pc}
+ nop
+_02031C4C: .word 0x021C5A00
+_02031C50: .word FUN_02032850
+
+ thumb_func_start FUN_02031C54
+FUN_02031C54: ; 0x02031C54
+ ldr r0, _02031C60 ; =0x021C5A00
+ mov r1, #0x12
+ ldr r0, [r0, #0x0]
+ add r0, #0x3f
+ strb r1, [r0, #0x0]
+ bx lr
+ .balign 4
+_02031C60: .word 0x021C5A00
+
+ thumb_func_start FUN_02031C64
+FUN_02031C64: ; 0x02031C64
+ ldr r0, _02031C70 ; =0x021C5A00
+ mov r1, #0x9
+ ldr r0, [r0, #0x0]
+ add r0, #0x3f
+ strb r1, [r0, #0x0]
+ bx lr
+ .balign 4
+_02031C70: .word 0x021C5A00
+
+ thumb_func_start FUN_02031C74
+FUN_02031C74: ; 0x02031C74
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ bl FUN_02030F40
+ cmp r0, #0x0
+ bne _02031C9C
+ ldr r2, _02031CA0 ; =0x00007080
+ mov r0, #0x3
+ mov r1, #0xf
+ bl FUN_02016828
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_02031734
+ ldr r0, _02031CA4 ; =FUN_02032E00
+ mov r1, #0x0
+ bl FUN_02031D20
+_02031C9C:
+ pop {r3-r5, pc}
+ nop
+_02031CA0: .word 0x00007080
+_02031CA4: .word FUN_02032E00
+
+ thumb_func_start FUN_02031CA8
+FUN_02031CA8: ; 0x02031CA8
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ bl FUN_02030F40
+ cmp r0, #0x0
+ bne _02031CD0
+ ldr r2, _02031CD4 ; =0x00007080
+ mov r0, #0x3
+ mov r1, #0xf
+ bl FUN_02016828
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_02031734
+ ldr r0, _02031CD8 ; =FUN_02032E48
+ mov r1, #0x0
+ bl FUN_02031D20
+_02031CD0:
+ pop {r3-r5, pc}
+ nop
+_02031CD4: .word 0x00007080
+_02031CD8: .word FUN_02032E48
+
+ thumb_func_start FUN_02031CDC
+FUN_02031CDC: ; 0x02031CDC
+ push {r3, lr}
+ ldr r0, _02031D1C ; =0x021C5A00
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ beq _02031CEE
+ ldr r0, [r0, #0x24]
+ cmp r0, #0x0
+ beq _02031CEE
+ blx r0
+_02031CEE:
+ bl FUN_02033590
+ cmp r0, #0x0
+ beq _02031D04
+ blx FUN_021DDB08
+ mov r1, #0x3
+ sub r0, r1, r0
+ bl FUN_02033EEC
+ pop {r3, pc}
+_02031D04:
+ bl FUN_0202EDF8
+ cmp r0, #0x0
+ beq _02031D18
+ blx WM_GetLinkLevel
+ mov r1, #0x3
+ sub r0, r1, r0
+ bl FUN_02033EEC
+_02031D18:
+ pop {r3, pc}
+ nop
+_02031D1C: .word 0x021C5A00
+
+ thumb_func_start FUN_02031D20
+FUN_02031D20: ; 0x02031D20
+ ldr r2, _02031D2C ; =0x021C5A00
+ ldr r3, [r2, #0x0]
+ str r0, [r3, #0x24]
+ ldr r0, [r2, #0x0]
+ strh r1, [r0, #0x3a]
+ bx lr
+ .balign 4
+_02031D2C: .word 0x021C5A00
+
+ thumb_func_start FUN_02031D30
+FUN_02031D30: ; 0x02031D30
+ push {r3-r5, lr}
+ ldr r0, _02031DF8 ; =0x021C5A00
+ ldr r1, [r0, #0x0]
+ ldrh r0, [r1, #0x3a]
+ cmp r0, #0x0
+ beq _02031D42
+ sub r0, r0, #0x1
+ strh r0, [r1, #0x3a]
+ pop {r3-r5, pc}
+_02031D42:
+ bl FUN_0202E4C8
+ cmp r0, #0x0
+ beq _02031DF6
+ ldr r0, _02031DF8 ; =0x021C5A00
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0x2c]
+ bl FUN_0202E29C
+ ldr r0, _02031DF8 ; =0x021C5A00
+ mov r1, #0x0
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0x28]
+ bl FUN_0202DB14
+ mov r0, #0x1
+ bl FUN_02031268
+ bl FUN_02030FA8
+ ldr r0, _02031DF8 ; =0x021C5A00
+ ldr r1, [r0, #0x0]
+ add r0, r1, #0x0
+ add r0, #0x4a
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x0
+ beq _02031DC8
+ add r1, #0x43
+ ldrb r1, [r1, #0x0]
+ mov r0, #0x1
+ mov r2, #0x7d
+ lsl r2, r2, #0x2
+ add r3, r0, #0x0
+ bl FUN_0202F918
+ cmp r0, #0x0
+ beq _02031DF6
+ ldr r0, _02031DF8 ; =0x021C5A00
+ ldr r5, [r0, #0x0]
+ add r4, r5, #0x0
+ add r4, #0xc
+ ldr r0, [r4, #0x8]
+ ldr r1, [r4, #0xc]
+ ldr r2, [r5, #0xc]
+ ldr r3, [r4, #0x4]
+ blx _ll_mul
+ ldr r2, [r4, #0x10]
+ ldr r3, [r4, #0x14]
+ add r0, r2, r0
+ adc r3, r1
+ str r0, [r5, #0xc]
+ str r3, [r4, #0x4]
+ add r0, r3, #0x0
+ mov r1, #0x0
+ mov r2, #0x14
+ mov r3, #0x0
+ blx _ll_mul
+ mov r0, #0x0
+ add r5, #0x43
+ strb r0, [r5, #0x0]
+ ldr r0, _02031DFC ; =FUN_020320C4
+ add r1, #0x14
+ bl FUN_02031D20
+ pop {r3-r5, pc}
+_02031DC8:
+ mov r0, #0x1
+ mov r2, #0x7d
+ add r1, r0, #0x0
+ lsl r2, r2, #0x2
+ bl FUN_0202F950
+ cmp r0, #0x0
+ beq _02031DF6
+ ldr r0, _02031DF8 ; =0x021C5A00
+ ldr r0, [r0, #0x0]
+ add r0, #0x4c
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x0
+ beq _02031DEE
+ ldr r0, _02031E00 ; =FUN_020323B8
+ mov r1, #0x0
+ bl FUN_02031D20
+ pop {r3-r5, pc}
+_02031DEE:
+ ldr r0, _02031E04 ; =FUN_02031EE0
+ mov r1, #0x40
+ bl FUN_02031D20
+_02031DF6:
+ pop {r3-r5, pc}
+ .balign 4
+_02031DF8: .word 0x021C5A00
+_02031DFC: .word FUN_020320C4
+_02031E00: .word FUN_020323B8
+_02031E04: .word FUN_02031EE0
+
+ thumb_func_start FUN_02031E08
+FUN_02031E08: ; 0x02031E08
+ push {r3-r5, lr}
+ bl FUN_0202EE0C
+ cmp r0, #0x0
+ beq _02031E7C
+ mov r0, #0x1
+ bl FUN_02031268
+ bl FUN_02030FA8
+ ldr r0, _02031E80 ; =0x021C5A00
+ ldr r0, [r0, #0x0]
+ add r0, #0x4a
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x0
+ beq _02031E32
+ ldr r0, _02031E84 ; =FUN_02032058
+ mov r1, #0x0
+ bl FUN_02031D20
+ pop {r3-r5, pc}
+_02031E32:
+ mov r2, #0x7d
+ mov r0, #0x0
+ mov r1, #0x1
+ lsl r2, r2, #0x2
+ bl FUN_0202F950
+ cmp r0, #0x0
+ beq _02031E7C
+ ldr r0, _02031E80 ; =0x021C5A00
+ ldr r5, [r0, #0x0]
+ add r4, r5, #0x0
+ add r4, #0xc
+ ldr r0, [r4, #0x8]
+ ldr r1, [r4, #0xc]
+ ldr r2, [r5, #0xc]
+ ldr r3, [r4, #0x4]
+ blx _ll_mul
+ ldr r2, [r4, #0x10]
+ ldr r3, [r4, #0x14]
+ add r0, r2, r0
+ adc r3, r1
+ str r0, [r5, #0xc]
+ mov r1, #0x0
+ str r3, [r4, #0x4]
+ lsr r0, r3, #0x1a
+ lsl r1, r1, #0x6
+ orr r1, r0
+ ldrh r0, [r5, #0x38]
+ cmp r0, #0x0
+ beq _02031E76
+ lsl r1, r0, #0x6
+ mov r0, #0x0
+ strh r0, [r5, #0x38]
+_02031E76:
+ ldr r0, _02031E88 ; =FUN_02031EE0
+ bl FUN_02031D20
+_02031E7C:
+ pop {r3-r5, pc}
+ nop
+_02031E80: .word 0x021C5A00
+_02031E84: .word FUN_02032058
+_02031E88: .word FUN_02031EE0
+
+ thumb_func_start FUN_02031E8C
+FUN_02031E8C: ; 0x02031E8C
+ push {r3-r5, lr}
+ bl FUN_0202EE0C
+ cmp r0, #0x0
+ beq _02031ED6
+ mov r0, #0x0
+ mov r2, #0x7d
+ add r1, r0, #0x0
+ lsl r2, r2, #0x2
+ bl FUN_0202F950
+ cmp r0, #0x0
+ beq _02031ED6
+ ldr r0, _02031ED8 ; =0x021C5A00
+ ldr r4, [r0, #0x0]
+ add r5, r4, #0x0
+ add r5, #0xc
+ ldr r0, [r5, #0x8]
+ ldr r1, [r5, #0xc]
+ ldr r2, [r4, #0xc]
+ ldr r3, [r5, #0x4]
+ blx _ll_mul
+ ldr r2, [r5, #0x10]
+ ldr r3, [r5, #0x14]
+ add r0, r2, r0
+ adc r3, r1
+ str r0, [r4, #0xc]
+ mov r1, #0x0
+ lsr r2, r3, #0x1b
+ lsl r1, r1, #0x5
+ orr r1, r2
+ ldr r0, _02031EDC ; =FUN_02031EE0
+ add r1, #0x10
+ str r3, [r5, #0x4]
+ bl FUN_02031D20
+_02031ED6:
+ pop {r3-r5, pc}
+ .balign 4
+_02031ED8: .word 0x021C5A00
+_02031EDC: .word FUN_02031EE0
+
+ thumb_func_start FUN_02031EE0
+FUN_02031EE0: ; 0x02031EE0
+ push {r3, lr}
+ bl FUN_0202EA54
+ ldr r0, _02031F54 ; =0x021C5A00
+ ldr r1, [r0, #0x0]
+ add r0, r1, #0x0
+ add r0, #0x4f
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x0
+ bne _02031F50
+ add r1, #0x4b
+ ldrb r0, [r1, #0x0]
+ cmp r0, #0x0
+ bne _02031F50
+ bl FUN_0202E8F4
+ mov r1, #0x0
+ mvn r1, r1
+ cmp r0, r1
+ beq _02031F1A
+ ldr r1, _02031F54 ; =0x021C5A00
+ ldr r1, [r1, #0x0]
+ add r1, #0x3e
+ strb r0, [r1, #0x0]
+ ldr r0, _02031F58 ; =FUN_02031F60
+ mov r1, #0x20
+ bl FUN_02031D20
+ pop {r3, pc}
+_02031F1A:
+ ldr r0, _02031F54 ; =0x021C5A00
+ ldr r1, [r0, #0x0]
+ ldrh r0, [r1, #0x3a]
+ cmp r0, #0x0
+ beq _02031F2A
+ sub r0, r0, #0x1
+ strh r0, [r1, #0x3a]
+ pop {r3, pc}
+_02031F2A:
+ bl FUN_0202E950
+ mov r1, #0x0
+ mvn r1, r1
+ cmp r0, r1
+ beq _02031F48
+ ldr r1, _02031F54 ; =0x021C5A00
+ ldr r1, [r1, #0x0]
+ add r1, #0x3e
+ strb r0, [r1, #0x0]
+ ldr r0, _02031F58 ; =FUN_02031F60
+ mov r1, #0x20
+ bl FUN_02031D20
+ pop {r3, pc}
+_02031F48:
+ ldr r0, _02031F5C ; =FUN_02032028
+ mov r1, #0x0
+ bl FUN_02031D20
+_02031F50:
+ pop {r3, pc}
+ nop
+_02031F54: .word 0x021C5A00
+_02031F58: .word FUN_02031F60
+_02031F5C: .word FUN_02032028
+
+ thumb_func_start FUN_02031F60
+FUN_02031F60: ; 0x02031F60
+ push {r3, lr}
+ bl FUN_0202EA54
+ ldr r0, _02031FBC ; =0x021C5A00
+ ldr r0, [r0, #0x0]
+ add r0, #0x3e
+ ldrb r0, [r0, #0x0]
+ bl FUN_0202E8A0
+ cmp r0, #0x0
+ beq _02031F90
+ ldr r0, _02031FBC ; =0x021C5A00
+ ldr r0, [r0, #0x0]
+ add r0, #0x3e
+ ldrb r0, [r0, #0x0]
+ bl FUN_0202FB18
+ cmp r0, #0x0
+ beq _02031F90
+ ldr r0, _02031FC0 ; =FUN_02031FC8
+ mov r1, #0x64
+ bl FUN_02031D20
+ pop {r3, pc}
+_02031F90:
+ bl FUN_020311F0
+ cmp r0, #0x0
+ beq _02031FA2
+ ldr r0, _02031FC4 ; =FUN_02032028
+ mov r1, #0x0
+ bl FUN_02031D20
+ pop {r3, pc}
+_02031FA2:
+ ldr r0, _02031FBC ; =0x021C5A00
+ ldr r1, [r0, #0x0]
+ ldrh r0, [r1, #0x3a]
+ cmp r0, #0x0
+ beq _02031FB2
+ sub r0, r0, #0x1
+ strh r0, [r1, #0x3a]
+ pop {r3, pc}
+_02031FB2:
+ ldr r0, _02031FC4 ; =FUN_02032028
+ mov r1, #0x0
+ bl FUN_02031D20
+ pop {r3, pc}
+ .balign 4
+_02031FBC: .word 0x021C5A00
+_02031FC0: .word FUN_02031FC8
+_02031FC4: .word FUN_02032028
+
+ thumb_func_start FUN_02031FC8
+FUN_02031FC8: ; 0x02031FC8
+ push {r3, lr}
+ bl FUN_02031190
+ bl FUN_02030E7C
+ cmp r0, #0x0
+ beq _02031FEE
+ bl FUN_0202FC60
+ mov r0, #0x0
+ bl FUN_02031268
+ bl FUN_02030FA8
+ ldr r0, _0203201C ; =FUN_0203213C
+ mov r1, #0x0
+ bl FUN_02031D20
+ pop {r3, pc}
+_02031FEE:
+ bl FUN_020311F0
+ cmp r0, #0x0
+ beq _02032000
+ ldr r0, _02032020 ; =FUN_02032028
+ mov r1, #0x0
+ bl FUN_02031D20
+ pop {r3, pc}
+_02032000:
+ ldr r0, _02032024 ; =0x021C5A00
+ ldr r1, [r0, #0x0]
+ ldrh r0, [r1, #0x3a]
+ cmp r0, #0x0
+ beq _02032010
+ sub r0, r0, #0x1
+ strh r0, [r1, #0x3a]
+ pop {r3, pc}
+_02032010:
+ ldr r0, _02032020 ; =FUN_02032028
+ mov r1, #0x0
+ bl FUN_02031D20
+ pop {r3, pc}
+ nop
+_0203201C: .word FUN_0203213C
+_02032020: .word FUN_02032028
+_02032024: .word 0x021C5A00
+
+ thumb_func_start FUN_02032028
+FUN_02032028: ; 0x02032028
+ push {r3, lr}
+ bl FUN_0202E6F0
+ cmp r0, #0x0
+ beq _0203203A
+ ldr r0, _0203203C ; =FUN_02032058
+ mov r1, #0x0
+ bl FUN_02031D20
+_0203203A:
+ pop {r3, pc}
+ .balign 4
+_0203203C: .word FUN_02032058
+
+ thumb_func_start FUN_02032040
+FUN_02032040: ; 0x02032040
+ push {r3, lr}
+ bl FUN_0202E6F0
+ cmp r0, #0x0
+ beq _02032052
+ ldr r0, _02032054 ; =FUN_02031E8C
+ mov r1, #0x0
+ bl FUN_02031D20
+_02032052:
+ pop {r3, pc}
+ .balign 4
+_02032054: .word FUN_02031E8C
+
+ thumb_func_start FUN_02032058
+FUN_02032058: ; 0x02032058
+ push {r3-r5, lr}
+ bl FUN_0202EE0C
+ cmp r0, #0x0
+ beq _020320BA
+ mov r0, #0x1
+ bl FUN_02031268
+ ldr r1, _020320BC ; =0x021C5A00
+ mov r2, #0x7d
+ ldr r1, [r1, #0x0]
+ mov r0, #0x0
+ add r1, #0x43
+ ldrb r1, [r1, #0x0]
+ lsl r2, r2, #0x2
+ mov r3, #0x1
+ bl FUN_0202F918
+ cmp r0, #0x0
+ beq _020320BA
+ ldr r0, _020320BC ; =0x021C5A00
+ ldr r5, [r0, #0x0]
+ add r4, r5, #0x0
+ add r4, #0xc
+ ldr r0, [r4, #0x8]
+ ldr r1, [r4, #0xc]
+ ldr r2, [r5, #0xc]
+ ldr r3, [r4, #0x4]
+ blx _ll_mul
+ ldr r2, [r4, #0x10]
+ ldr r3, [r4, #0x14]
+ add r0, r2, r0
+ adc r3, r1
+ str r0, [r5, #0xc]
+ str r3, [r4, #0x4]
+ add r0, r3, #0x0
+ mov r1, #0x0
+ mov r2, #0x14
+ mov r3, #0x0
+ blx _ll_mul
+ mov r0, #0x0
+ add r5, #0x43
+ strb r0, [r5, #0x0]
+ ldr r0, _020320C0 ; =FUN_020320C4
+ add r1, #0x14
+ bl FUN_02031D20
+_020320BA:
+ pop {r3-r5, pc}
+ .balign 4
+_020320BC: .word 0x021C5A00
+_020320C0: .word FUN_020320C4
+
+ thumb_func_start FUN_020320C4
+FUN_020320C4: ; 0x020320C4
+ push {r3, lr}
+ bl FUN_020311E8
+ cmp r0, #0x0
+ beq _020320E2
+ ldr r0, _0203210C ; =0x021C5A00
+ mov r1, #0x1
+ ldr r0, [r0, #0x0]
+ add r0, #0x43
+ strb r1, [r0, #0x0]
+ ldr r0, _02032110 ; =FUN_02032118
+ mov r1, #0x0
+ bl FUN_02031D20
+ pop {r3, pc}
+_020320E2:
+ ldr r0, _0203210C ; =0x021C5A00
+ ldr r1, [r0, #0x0]
+ ldrh r0, [r1, #0x3a]
+ cmp r0, #0x0
+ beq _020320F2
+ sub r0, r0, #0x1
+ strh r0, [r1, #0x3a]
+ pop {r3, pc}
+_020320F2:
+ add r1, #0x4a
+ ldrb r0, [r1, #0x0]
+ cmp r0, #0x0
+ bne _0203210A
+ bl FUN_0202E6F0
+ cmp r0, #0x0
+ beq _0203210A
+ ldr r0, _02032114 ; =FUN_02032040
+ mov r1, #0x2
+ bl FUN_02031D20
+_0203210A:
+ pop {r3, pc}
+ .balign 4
+_0203210C: .word 0x021C5A00
+_02032110: .word FUN_02032118
+_02032114: .word FUN_02032040
+
+ thumb_func_start FUN_02032118
+FUN_02032118: ; 0x02032118
+ push {r3, lr}
+ mov r0, #0x0
+ bl FUN_02031268
+ mov r0, #0x1
+ bl FUN_0202EE84
+ bl FUN_02030FA8
+ ldr r0, _02032134 ; =FUN_02032138
+ mov r1, #0x0
+ bl FUN_02031D20
+ pop {r3, pc}
+ .balign 4
+_02032134: .word FUN_02032138
+
+ thumb_func_start FUN_02032138
+FUN_02032138: ; 0x02032138
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_0203213C
+FUN_0203213C: ; 0x0203213C
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02032140
+FUN_02032140: ; 0x02032140
+ push {r3, lr}
+ ldr r0, _02032170 ; =0x021C5A00
+ ldr r0, [r0, #0x0]
+ add r0, #0x3f
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x13
+ bhs _02032166
+ bl FUN_0202EE0C
+ cmp r0, #0x0
+ beq _0203216E
+ mov r0, #0x1
+ bl FUN_02031268
+ bl FUN_02030FA8
+ mov r0, #0x1
+ bl FUN_0202E7B0
+_02032166:
+ ldr r0, _02032174 ; =FUN_020323B8
+ mov r1, #0x0
+ bl FUN_02031D20
+_0203216E:
+ pop {r3, pc}
+ .balign 4
+_02032170: .word 0x021C5A00
+_02032174: .word FUN_020323B8
+
+ thumb_func_start FUN_02032178
+FUN_02032178: ; 0x02032178
+ push {r3, lr}
+ bl FUN_0202E6F0
+ cmp r0, #0x0
+ beq _0203218E
+ bl FUN_0202FC60
+ ldr r0, _02032190 ; =FUN_02032140
+ mov r1, #0x0
+ bl FUN_02031D20
+_0203218E:
+ pop {r3, pc}
+ .balign 4
+_02032190: .word FUN_02032140
+
+ thumb_func_start FUN_02032194
+FUN_02032194: ; 0x02032194
+ push {r3, lr}
+ bl FUN_0202E4C8
+ cmp r0, #0x0
+ beq _020321B0
+ mov r0, #0x0
+ bl FUN_0202E7B0
+ bl FUN_0202FC60
+ ldr r0, _020321B4 ; =FUN_02031E08
+ mov r1, #0x0
+ bl FUN_02031D20
+_020321B0:
+ pop {r3, pc}
+ nop
+_020321B4: .word FUN_02031E08
+
+ thumb_func_start FUN_020321B8
+FUN_020321B8: ; 0x020321B8
+ push {r3, lr}
+ bl FUN_0202E6F0
+ cmp r0, #0x0
+ beq _020321CA
+ ldr r0, _020321CC ; =FUN_02031E08
+ mov r1, #0x0
+ bl FUN_02031D20
+_020321CA:
+ pop {r3, pc}
+ .balign 4
+_020321CC: .word FUN_02031E08
+
+ thumb_func_start FUN_020321D0
+FUN_020321D0: ; 0x020321D0
+ push {r3, lr}
+ bl FUN_0202E4C8
+ cmp r0, #0x0
+ beq _0203220C
+ ldr r0, _02032210 ; =0x021C5A00
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0x2c]
+ bl FUN_0202E29C
+ ldr r0, _02032210 ; =0x021C5A00
+ ldr r1, [r0, #0x0]
+ ldr r0, [r1, #0x28]
+ ldr r1, [r1, #0x30]
+ bl FUN_0202DB14
+ mov r0, #0x1
+ add r1, r0, #0x0
+ lsl r2, r0, #0x9
+ add r3, r0, #0x0
+ bl FUN_0202F918
+ cmp r0, #0x0
+ beq _0203220C
+ bl FUN_0202FA10
+ ldr r0, _02032214 ; =FUN_02032218
+ mov r1, #0x0
+ bl FUN_02031D20
+_0203220C:
+ pop {r3, pc}
+ nop
+_02032210: .word 0x021C5A00
+_02032214: .word FUN_02032218
+
+ thumb_func_start FUN_02032218
+FUN_02032218: ; 0x02032218
+ push {r3, lr}
+ bl FUN_02031190
+ bl FUN_02030E7C
+ cmp r0, #0x0
+ beq _0203222E
+ ldr r0, _02032230 ; =FUN_02032234
+ mov r1, #0x0
+ bl FUN_02031D20
+_0203222E:
+ pop {r3, pc}
+ .balign 4
+_02032230: .word FUN_02032234
+
+ thumb_func_start FUN_02032234
+FUN_02032234: ; 0x02032234
+ push {r3, lr}
+ bl FUN_02030F40
+ cmp r0, #0x0
+ bne _02032246
+ ldr r0, _02032248 ; =FUN_020323BC
+ mov r1, #0x0
+ bl FUN_02031D20
+_02032246:
+ pop {r3, pc}
+ .balign 4
+_02032248: .word FUN_020323BC
+
+ thumb_func_start FUN_0203224C
+FUN_0203224C: ; 0x0203224C
+ push {r3, lr}
+ bl FUN_0202E4C8
+ cmp r0, #0x0
+ beq _02032286
+ ldr r0, _02032288 ; =0x021C5A00
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0x2c]
+ bl FUN_0202E29C
+ ldr r0, _02032288 ; =0x021C5A00
+ ldr r1, [r0, #0x0]
+ ldr r0, [r1, #0x28]
+ ldr r1, [r1, #0x30]
+ bl FUN_0202DB14
+ mov r0, #0x1
+ add r1, r0, #0x0
+ lsl r2, r0, #0x9
+ bl FUN_0202F950
+ cmp r0, #0x0
+ beq _02032286
+ bl FUN_0202FA10
+ ldr r0, _0203228C ; =FUN_02032290
+ mov r1, #0x0
+ bl FUN_02031D20
+_02032286:
+ pop {r3, pc}
+ .balign 4
+_02032288: .word 0x021C5A00
+_0203228C: .word FUN_02032290
+
+ thumb_func_start FUN_02032290
+FUN_02032290: ; 0x02032290
+ ldr r3, _02032294 ; =FUN_0202EA54
+ bx r3
+ .balign 4
+_02032294: .word FUN_0202EA54
+
+ thumb_func_start FUN_02032298
+FUN_02032298: ; 0x02032298
+ push {r3, lr}
+ bl FUN_0202EA54
+ ldr r0, _020322B8 ; =0x021C5A00
+ ldr r0, [r0, #0x0]
+ add r0, #0x3e
+ ldrb r0, [r0, #0x0]
+ bl FUN_0202FB18
+ cmp r0, #0x0
+ beq _020322B6
+ ldr r0, _020322BC ; =FUN_020322C0
+ mov r1, #0xa
+ bl FUN_02031D20
+_020322B6:
+ pop {r3, pc}
+ .balign 4
+_020322B8: .word 0x021C5A00
+_020322BC: .word FUN_020322C0
+
+ thumb_func_start FUN_020322C0
+FUN_020322C0: ; 0x020322C0
+ push {r3, lr}
+ bl FUN_020311F0
+ cmp r0, #0x0
+ beq _020322D2
+ ldr r0, _020322F0 ; =FUN_020322F8
+ mov r1, #0x0
+ bl FUN_02031D20
+_020322D2:
+ bl FUN_02031190
+ bl FUN_02030E7C
+ cmp r0, #0x0
+ beq _020322EE
+ bl FUN_02031190
+ cmp r0, #0x0
+ beq _020322EE
+ ldr r0, _020322F4 ; =FUN_0203234C
+ mov r1, #0x0
+ bl FUN_02031D20
+_020322EE:
+ pop {r3, pc}
+ .balign 4
+_020322F0: .word FUN_020322F8
+_020322F4: .word FUN_0203234C
+
+ thumb_func_start FUN_020322F8
+FUN_020322F8: ; 0x020322F8
+ push {r3, lr}
+ bl FUN_0202E6F0
+ ldr r0, _02032308 ; =FUN_0203230C
+ mov r1, #0x2
+ bl FUN_02031D20
+ pop {r3, pc}
+ .balign 4
+_02032308: .word FUN_0203230C
+
+ thumb_func_start FUN_0203230C
+FUN_0203230C: ; 0x0203230C
+ push {r3, lr}
+ ldr r0, _02032344 ; =0x021C5A00
+ ldr r1, [r0, #0x0]
+ ldrh r0, [r1, #0x3a]
+ cmp r0, #0x0
+ beq _0203231E
+ sub r0, r0, #0x1
+ strh r0, [r1, #0x3a]
+ pop {r3, pc}
+_0203231E:
+ bl FUN_0202EE0C
+ cmp r0, #0x0
+ beq _02032340
+ mov r1, #0x1
+ mov r0, #0x0
+ lsl r2, r1, #0x9
+ bl FUN_0202F950
+ cmp r0, #0x0
+ beq _02032340
+ bl FUN_0202FA10
+ ldr r0, _02032348 ; =FUN_02032298
+ mov r1, #0xa
+ bl FUN_02031D20
+_02032340:
+ pop {r3, pc}
+ nop
+_02032344: .word 0x021C5A00
+_02032348: .word FUN_02032298
+
+ thumb_func_start FUN_0203234C
+FUN_0203234C: ; 0x0203234C
+ push {r3, lr}
+ bl FUN_02030F40
+ cmp r0, #0x0
+ bne _0203235E
+ ldr r0, _02032360 ; =FUN_020323BC
+ mov r1, #0x0
+ bl FUN_02031D20
+_0203235E:
+ pop {r3, pc}
+ .balign 4
+_02032360: .word FUN_020323BC
+
+ thumb_func_start FUN_02032364
+FUN_02032364: ; 0x02032364
+ push {r3, lr}
+ bl FUN_0202E6F0
+ ldr r0, _02032374 ; =FUN_02032378
+ mov r1, #0x2
+ bl FUN_02031D20
+ pop {r3, pc}
+ .balign 4
+_02032374: .word FUN_02032378
+
+ thumb_func_start FUN_02032378
+FUN_02032378: ; 0x02032378
+ push {r3, lr}
+ ldr r0, _020323B0 ; =0x021C5A00
+ ldr r1, [r0, #0x0]
+ ldrh r0, [r1, #0x3a]
+ cmp r0, #0x0
+ beq _0203238A
+ sub r0, r0, #0x1
+ strh r0, [r1, #0x3a]
+ pop {r3, pc}
+_0203238A:
+ bl FUN_0202EE0C
+ cmp r0, #0x0
+ beq _020323AC
+ mov r1, #0x1
+ mov r0, #0x0
+ lsl r2, r1, #0x9
+ bl FUN_0202F950
+ cmp r0, #0x0
+ beq _020323AC
+ bl FUN_0202FA10
+ ldr r0, _020323B4 ; =FUN_02032290
+ mov r1, #0xa
+ bl FUN_02031D20
+_020323AC:
+ pop {r3, pc}
+ nop
+_020323B0: .word 0x021C5A00
+_020323B4: .word FUN_02032290
+
+ thumb_func_start FUN_020323B8
+FUN_020323B8: ; 0x020323B8
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_020323BC
+FUN_020323BC: ; 0x020323BC
+ push {r3, lr}
+ bl FUN_02030F40
+ cmp r0, #0x0
+ bne _020323CA
+ bl FUN_020317C0
+_020323CA:
+ pop {r3, pc}
+
+ thumb_func_start FUN_020323CC
+FUN_020323CC: ; 0x020323CC
+ ldr r3, _020323D4 ; =FUN_02031D20
+ ldr r0, _020323D8 ; =FUN_02032440
+ mov r1, #0x5
+ bx r3
+ .balign 4
+_020323D4: .word FUN_02031D20
+_020323D8: .word FUN_02032440
+
+ thumb_func_start FUN_020323DC
+FUN_020323DC: ; 0x020323DC
+ push {r3, lr}
+ bl FUN_02030F20
+ cmp r0, #0x1
+ bgt _020323F8
+ mov r0, #0x0
+ bl FUN_0202D36C
+ bl FUN_0202FC80
+ ldr r0, _0203241C ; =FUN_020324F8
+ mov r1, #0x0
+ bl FUN_02031D20
+_020323F8:
+ ldr r0, _02032420 ; =0x021C5A00
+ ldr r1, [r0, #0x0]
+ ldrh r0, [r1, #0x3a]
+ cmp r0, #0x0
+ beq _02032408
+ sub r0, r0, #0x1
+ strh r0, [r1, #0x3a]
+ pop {r3, pc}
+_02032408:
+ mov r0, #0x0
+ bl FUN_0202D36C
+ bl FUN_0202FC80
+ ldr r0, _0203241C ; =FUN_020324F8
+ mov r1, #0x0
+ bl FUN_02031D20
+ pop {r3, pc}
+ .balign 4
+_0203241C: .word FUN_020324F8
+_02032420: .word 0x021C5A00
+
+ thumb_func_start FUN_02032424
+FUN_02032424: ; 0x02032424
+ push {r3, lr}
+ bl FUN_0202E6F0
+ cmp r0, #0x0
+ beq _0203243A
+ bl FUN_0202FC60
+ ldr r0, _0203243C ; =FUN_020324F8
+ mov r1, #0x0
+ bl FUN_02031D20
+_0203243A:
+ pop {r3, pc}
+ .balign 4
+_0203243C: .word FUN_020324F8
+
+ thumb_func_start FUN_02032440
+FUN_02032440: ; 0x02032440
+ push {r3, lr}
+ ldr r0, _02032470 ; =0x021C5A00
+ ldr r1, [r0, #0x0]
+ ldrh r0, [r1, #0x3a]
+ cmp r0, #0x0
+ beq _02032450
+ sub r0, r0, #0x1
+ strh r0, [r1, #0x3a]
+_02032450:
+ bl FUN_0202E6F0
+ cmp r0, #0x0
+ beq _0203246E
+ ldr r0, _02032470 ; =0x021C5A00
+ ldr r0, [r0, #0x0]
+ ldrh r0, [r0, #0x3a]
+ cmp r0, #0x0
+ bne _0203246E
+ bl FUN_0202FA5C
+ ldr r0, _02032474 ; =FUN_020323BC
+ mov r1, #0x0
+ bl FUN_02031D20
+_0203246E:
+ pop {r3, pc}
+ .balign 4
+_02032470: .word 0x021C5A00
+_02032474: .word FUN_020323BC
+
+ thumb_func_start FUN_02032478
+FUN_02032478: ; 0x02032478
+ push {r3, lr}
+ bl FUN_0202E4C8
+ cmp r0, #0x0
+ beq _020324BE
+ ldr r0, _020324C0 ; =0x021C5A00
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0x2c]
+ bl FUN_0202E29C
+ ldr r0, _020324C0 ; =0x021C5A00
+ ldr r0, [r0, #0x0]
+ add r0, #0x3c
+ ldrb r0, [r0, #0x0]
+ bl FUN_0202D1B0
+ ldr r0, _020324C0 ; =0x021C5A00
+ mov r1, #0x0
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0x28]
+ bl FUN_0202DB14
+ mov r0, #0x1
+ add r1, r0, #0x0
+ lsl r2, r0, #0x9
+ bl FUN_0202F950
+ cmp r0, #0x0
+ beq _020324BE
+ bl FUN_0202FA10
+ ldr r0, _020324C4 ; =FUN_020324C8
+ mov r1, #0x40
+ bl FUN_02031D20
+_020324BE:
+ pop {r3, pc}
+ .balign 4
+_020324C0: .word 0x021C5A00
+_020324C4: .word FUN_020324C8
+
+ thumb_func_start FUN_020324C8
+FUN_020324C8: ; 0x020324C8
+ push {r3, lr}
+ bl FUN_0202EA54
+ ldr r0, _020324F0 ; =0x021C5A00
+ ldr r1, [r0, #0x0]
+ ldrh r0, [r1, #0x3a]
+ cmp r0, #0x0
+ beq _020324DE
+ sub r0, r0, #0x1
+ strh r0, [r1, #0x3a]
+ pop {r3, pc}
+_020324DE:
+ bl FUN_0202E6F0
+ cmp r0, #0x0
+ beq _020324EE
+ ldr r0, _020324F4 ; =FUN_02032510
+ mov r1, #0x0
+ bl FUN_02031D20
+_020324EE:
+ pop {r3, pc}
+ .balign 4
+_020324F0: .word 0x021C5A00
+_020324F4: .word FUN_02032510
+
+ thumb_func_start FUN_020324F8
+FUN_020324F8: ; 0x020324F8
+ push {r3, lr}
+ bl FUN_0202E6F0
+ cmp r0, #0x0
+ beq _0203250A
+ ldr r0, _0203250C ; =FUN_02032510
+ mov r1, #0x0
+ bl FUN_02031D20
+_0203250A:
+ pop {r3, pc}
+ .balign 4
+_0203250C: .word FUN_02032510
+
+ thumb_func_start FUN_02032510
+FUN_02032510: ; 0x02032510
+ push {r3-r5, lr}
+ bl FUN_0202EE0C
+ cmp r0, #0x0
+ beq _02032568
+ ldr r1, _0203256C ; =0x021C5A00
+ mov r2, #0x2
+ ldr r1, [r1, #0x0]
+ mov r0, #0x0
+ add r1, #0x43
+ ldrb r1, [r1, #0x0]
+ lsl r2, r2, #0x8
+ mov r3, #0x1
+ bl FUN_0202F918
+ cmp r0, #0x0
+ beq _02032568
+ ldr r0, _0203256C ; =0x021C5A00
+ ldr r4, [r0, #0x0]
+ add r5, r4, #0x0
+ add r5, #0xc
+ ldr r0, [r5, #0x8]
+ ldr r1, [r5, #0xc]
+ ldr r2, [r4, #0xc]
+ ldr r3, [r5, #0x4]
+ blx _ll_mul
+ ldr r2, [r5, #0x10]
+ ldr r3, [r5, #0x14]
+ add r0, r2, r0
+ adc r3, r1
+ str r0, [r4, #0xc]
+ str r3, [r5, #0x4]
+ bl FUN_0202FA10
+ ldr r0, _0203256C ; =0x021C5A00
+ mov r1, #0x0
+ ldr r0, [r0, #0x0]
+ add r0, #0x43
+ strb r1, [r0, #0x0]
+ ldr r0, _02032570 ; =FUN_02032578
+ ldr r1, _02032574 ; =0x00002710
+ bl FUN_02031D20
+_02032568:
+ pop {r3-r5, pc}
+ nop
+_0203256C: .word 0x021C5A00
+_02032570: .word FUN_02032578
+_02032574: .word 0x00002710
+
+ thumb_func_start FUN_02032578
+FUN_02032578: ; 0x02032578
+ push {r3, lr}
+ bl FUN_0202F104
+ cmp r0, #0x0
+ bne _020325B2
+ bl FUN_020311E8
+ cmp r0, #0x0
+ beq _020325A2
+ ldr r0, _020325C4 ; =0x021C5A00
+ mov r1, #0x1
+ ldr r0, [r0, #0x0]
+ add r0, #0x43
+ strb r1, [r0, #0x0]
+ bl FUN_02033E74
+ ldr r0, _020325C8 ; =FUN_020327FC
+ mov r1, #0x0
+ bl FUN_02031D20
+ pop {r3, pc}
+_020325A2:
+ ldr r0, _020325C4 ; =0x021C5A00
+ ldr r1, [r0, #0x0]
+ ldrh r0, [r1, #0x3a]
+ cmp r0, #0x0
+ beq _020325B2
+ sub r0, r0, #0x1
+ strh r0, [r1, #0x3a]
+ pop {r3, pc}
+_020325B2:
+ bl FUN_0202E6F0
+ cmp r0, #0x0
+ beq _020325C2
+ ldr r0, _020325CC ; =FUN_020325D0
+ mov r1, #0x0
+ bl FUN_02031D20
+_020325C2:
+ pop {r3, pc}
+ .balign 4
+_020325C4: .word 0x021C5A00
+_020325C8: .word FUN_020327FC
+_020325CC: .word FUN_020325D0
+
+ thumb_func_start FUN_020325D0
+FUN_020325D0: ; 0x020325D0
+ push {r3-r5, lr}
+ bl FUN_0202EE0C
+ cmp r0, #0x0
+ beq _0203261C
+ mov r0, #0x0
+ mov r2, #0x2
+ add r1, r0, #0x0
+ lsl r2, r2, #0x8
+ bl FUN_0202F950
+ cmp r0, #0x0
+ beq _0203261C
+ bl FUN_0202FA10
+ ldr r0, _02032620 ; =0x021C5A00
+ ldr r4, [r0, #0x0]
+ add r5, r4, #0x0
+ add r5, #0xc
+ ldr r0, [r5, #0x8]
+ ldr r1, [r5, #0xc]
+ ldr r2, [r4, #0xc]
+ ldr r3, [r5, #0x4]
+ blx _ll_mul
+ ldr r2, [r5, #0x10]
+ ldr r3, [r5, #0x14]
+ add r0, r2, r0
+ adc r3, r1
+ str r0, [r4, #0xc]
+ mov r1, #0x0
+ ldr r0, _02032624 ; =FUN_020324C8
+ lsr r2, r3, #0x1b
+ lsl r1, r1, #0x5
+ orr r1, r2
+ str r3, [r5, #0x4]
+ bl FUN_02031D20
+_0203261C:
+ pop {r3-r5, pc}
+ nop
+_02032620: .word 0x021C5A00
+_02032624: .word FUN_020324C8
+
+ thumb_func_start FUN_02032628
+FUN_02032628: ; 0x02032628
+ push {r3, lr}
+ bl FUN_0202E6F0
+ cmp r0, #0x0
+ beq _0203263A
+ ldr r0, _0203263C ; =FUN_02032640
+ mov r1, #0x0
+ bl FUN_02031D20
+_0203263A:
+ pop {r3, pc}
+ .balign 4
+_0203263C: .word FUN_02032640
+
+ thumb_func_start FUN_02032640
+FUN_02032640: ; 0x02032640
+ push {r3, lr}
+ bl FUN_0202EE0C
+ cmp r0, #0x0
+ beq _02032666
+ mov r0, #0x0
+ mov r2, #0x2
+ add r1, r0, #0x0
+ lsl r2, r2, #0x8
+ bl FUN_0202F950
+ cmp r0, #0x0
+ beq _02032666
+ bl FUN_0202FA10
+ ldr r0, _02032668 ; =FUN_0203266C
+ mov r1, #0x64
+ bl FUN_02031D20
+_02032666:
+ pop {r3, pc}
+ .balign 4
+_02032668: .word FUN_0203266C
+
+ thumb_func_start FUN_0203266C
+FUN_0203266C: ; 0x0203266C
+ push {r3, lr}
+ ldr r0, _020326C4 ; =0x021C5A00
+ ldr r0, [r0, #0x0]
+ add r0, #0x3e
+ ldrb r0, [r0, #0x0]
+ bl FUN_0202E8A0
+ cmp r0, #0x0
+ beq _02032698
+ ldr r0, _020326C4 ; =0x021C5A00
+ ldr r0, [r0, #0x0]
+ add r0, #0x3e
+ ldrb r0, [r0, #0x0]
+ bl FUN_0202FB18
+ cmp r0, #0x0
+ beq _02032698
+ ldr r0, _020326C8 ; =FUN_020326D0
+ mov r1, #0x64
+ bl FUN_02031D20
+ pop {r3, pc}
+_02032698:
+ bl FUN_020311F0
+ cmp r0, #0x0
+ beq _020326AA
+ ldr r0, _020326CC ; =FUN_020327B8
+ mov r1, #0x0
+ bl FUN_02031D20
+ pop {r3, pc}
+_020326AA:
+ ldr r0, _020326C4 ; =0x021C5A00
+ ldr r1, [r0, #0x0]
+ ldrh r0, [r1, #0x3a]
+ cmp r0, #0x0
+ beq _020326BA
+ sub r0, r0, #0x1
+ strh r0, [r1, #0x3a]
+ pop {r3, pc}
+_020326BA:
+ ldr r0, _020326CC ; =FUN_020327B8
+ mov r1, #0x0
+ bl FUN_02031D20
+ pop {r3, pc}
+ .balign 4
+_020326C4: .word 0x021C5A00
+_020326C8: .word FUN_020326D0
+_020326CC: .word FUN_020327B8
+
+ thumb_func_start FUN_020326D0
+FUN_020326D0: ; 0x020326D0
+ push {r3, lr}
+ bl FUN_020311F0
+ cmp r0, #0x0
+ beq _020326E4
+ ldr r0, _02032728 ; =FUN_020327B8
+ mov r1, #0x0
+ bl FUN_02031D20
+ pop {r3, pc}
+_020326E4:
+ bl FUN_02031190
+ bl FUN_02030E7C
+ cmp r0, #0x0
+ beq _0203270C
+ ldr r0, _0203272C ; =0x021C5A00
+ mov r1, #0x0
+ ldr r0, [r0, #0x0]
+ add r0, #0x3d
+ strb r1, [r0, #0x0]
+ ldr r1, _02032730 ; =0x02105D5C
+ mov r0, #0x6
+ bl FUN_020311D0
+ ldr r0, _02032734 ; =FUN_02032738
+ mov r1, #0x78
+ bl FUN_02031D20
+ pop {r3, pc}
+_0203270C:
+ ldr r0, _0203272C ; =0x021C5A00
+ ldr r1, [r0, #0x0]
+ ldrh r0, [r1, #0x3a]
+ cmp r0, #0x0
+ beq _0203271C
+ sub r0, r0, #0x1
+ strh r0, [r1, #0x3a]
+ pop {r3, pc}
+_0203271C:
+ ldr r0, _02032728 ; =FUN_020327B8
+ mov r1, #0x0
+ bl FUN_02031D20
+ pop {r3, pc}
+ nop
+_02032728: .word FUN_020327B8
+_0203272C: .word 0x021C5A00
+_02032730: .word 0x02105D5C
+_02032734: .word FUN_02032738
+
+ thumb_func_start FUN_02032738
+FUN_02032738: ; 0x02032738
+ push {r3, lr}
+ bl FUN_020311F0
+ cmp r0, #0x0
+ beq _0203274C
+ ldr r0, _0203278C ; =FUN_020327B8
+ mov r1, #0x0
+ bl FUN_02031D20
+ pop {r3, pc}
+_0203274C:
+ ldr r0, _02032790 ; =0x021C5A00
+ ldr r1, [r0, #0x0]
+ add r0, r1, #0x0
+ add r0, #0x3d
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x2
+ bne _02032764
+ ldr r0, _02032794 ; =FUN_020327B4
+ mov r1, #0x0
+ bl FUN_02031D20
+ pop {r3, pc}
+_02032764:
+ cmp r0, #0x1
+ bne _02032776
+ bl FUN_0202DBE0
+ ldr r0, _02032798 ; =FUN_0203279C
+ mov r1, #0x0
+ bl FUN_02031D20
+ pop {r3, pc}
+_02032776:
+ ldrh r0, [r1, #0x3a]
+ cmp r0, #0x0
+ beq _02032782
+ sub r0, r0, #0x1
+ strh r0, [r1, #0x3a]
+ pop {r3, pc}
+_02032782:
+ ldr r0, _0203278C ; =FUN_020327B8
+ mov r1, #0x0
+ bl FUN_02031D20
+ pop {r3, pc}
+ .balign 4
+_0203278C: .word FUN_020327B8
+_02032790: .word 0x021C5A00
+_02032794: .word FUN_020327B4
+_02032798: .word FUN_0203279C
+
+ thumb_func_start FUN_0203279C
+FUN_0203279C: ; 0x0203279C
+ push {r3, lr}
+ bl FUN_020311F0
+ cmp r0, #0x0
+ beq _020327AE
+ ldr r0, _020327B0 ; =FUN_020327B8
+ mov r1, #0x0
+ bl FUN_02031D20
+_020327AE:
+ pop {r3, pc}
+ .balign 4
+_020327B0: .word FUN_020327B8
+
+ thumb_func_start FUN_020327B4
+FUN_020327B4: ; 0x020327B4
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_020327B8
+FUN_020327B8: ; 0x020327B8
+ push {r3, lr}
+ ldr r0, _020327F0 ; =0x021C5A00
+ mov r1, #0x0
+ ldr r0, [r0, #0x0]
+ add r0, #0x3d
+ strb r1, [r0, #0x0]
+ bl FUN_0202E6F0
+ cmp r0, #0x0
+ beq _020327EC
+ ldr r0, _020327F0 ; =0x021C5A00
+ ldr r1, [r0, #0x0]
+ ldrh r0, [r1, #0x38]
+ cmp r0, #0x0
+ beq _020327E4
+ sub r0, r0, #0x1
+ strh r0, [r1, #0x38]
+ ldr r0, _020327F4 ; =FUN_02032640
+ mov r1, #0x0
+ bl FUN_02031D20
+ pop {r3, pc}
+_020327E4:
+ ldr r0, _020327F8 ; =FUN_020327B4
+ mov r1, #0x0
+ bl FUN_02031D20
+_020327EC:
+ pop {r3, pc}
+ nop
+_020327F0: .word 0x021C5A00
+_020327F4: .word FUN_02032640
+_020327F8: .word FUN_020327B4
+
+ thumb_func_start FUN_020327FC
+FUN_020327FC: ; 0x020327FC
+ push {r3, lr}
+ bl FUN_020311E8
+ cmp r0, #0x0
+ bne _02032820
+ bl FUN_02033510
+ cmp r0, #0x0
+ bne _0203282C
+ bl FUN_0202E6F0
+ cmp r0, #0x0
+ beq _0203282C
+ ldr r0, _02032848 ; =FUN_020325D0
+ mov r1, #0x0
+ bl FUN_02031D20
+ b _0203282C
+_02032820:
+ bl FUN_02031190
+ cmp r0, #0x0
+ bne _0203282C
+ bl FUN_0202DDE8
+_0203282C:
+ bl FUN_020311F0
+ cmp r0, #0x0
+ beq _02032844
+ bl FUN_02033510
+ cmp r0, #0x0
+ bne _02032844
+ ldr r0, _0203284C ; =FUN_020327B8
+ mov r1, #0x0
+ bl FUN_02031D20
+_02032844:
+ pop {r3, pc}
+ nop
+_02032848: .word FUN_020325D0
+_0203284C: .word FUN_020327B8
+
+ thumb_func_start FUN_02032850
+FUN_02032850: ; 0x02032850
+ push {r3, lr}
+ bl FUN_0202EE0C
+ cmp r0, #0x0
+ beq _0203287E
+ ldr r1, _02032880 ; =0x021C5A00
+ mov r0, #0x0
+ ldr r1, [r1, #0x0]
+ mov r2, #0x2
+ add r1, #0x43
+ ldrb r1, [r1, #0x0]
+ lsl r2, r2, #0x8
+ add r3, r0, #0x0
+ bl FUN_0202F918
+ cmp r0, #0x0
+ beq _0203287E
+ bl FUN_0202FA10
+ ldr r0, _02032884 ; =FUN_020323B8
+ mov r1, #0x0
+ bl FUN_02031D20
+_0203287E:
+ pop {r3, pc}
+ .balign 4
+_02032880: .word 0x021C5A00
+_02032884: .word FUN_020323B8
+
+ thumb_func_start FUN_02032888
+FUN_02032888: ; 0x02032888
+ push {r3, lr}
+ ldr r0, _020328BC ; =0x021C5A00
+ mov r1, #0xd
+ ldr r0, [r0, #0x0]
+ add r0, #0x3f
+ strb r1, [r0, #0x0]
+ bl FUN_02031190
+ cmp r0, #0x0
+ add r0, sp, #0x0
+ bne _020328AE
+ mov r1, #0x0
+ strb r1, [r0, #0x1]
+ add r1, sp, #0x0
+ mov r0, #0xa
+ add r1, #0x1
+ bl FUN_020311D0
+ pop {r3, pc}
+_020328AE:
+ mov r1, #0x0
+ strb r1, [r0, #0x0]
+ mov r0, #0xa
+ add r1, sp, #0x0
+ bl FUN_020311D0
+ pop {r3, pc}
+ .balign 4
+_020328BC: .word 0x021C5A00
+
+ thumb_func_start FUN_020328C0
+FUN_020328C0: ; 0x020328C0
+ ldr r1, _020328D8 ; =0x021C5A00
+ ldr r3, _020328DC ; =FUN_02031D20
+ ldr r2, [r1, #0x0]
+ add r2, #0x3e
+ strb r0, [r2, #0x0]
+ ldr r0, [r1, #0x0]
+ mov r2, #0x3
+ strh r2, [r0, #0x38]
+ ldr r0, _020328E0 ; =FUN_02032924
+ mov r1, #0x0
+ bx r3
+ nop
+_020328D8: .word 0x021C5A00
+_020328DC: .word FUN_02031D20
+_020328E0: .word FUN_02032924
+
+ thumb_func_start FUN_020328E4
+FUN_020328E4: ; 0x020328E4
+ ldr r0, _020328F0 ; =0x021C5A00
+ mov r1, #0x7
+ ldr r0, [r0, #0x0]
+ add r0, #0x3f
+ strb r1, [r0, #0x0]
+ bx lr
+ .balign 4
+_020328F0: .word 0x021C5A00
+
+ thumb_func_start FUN_020328F4
+FUN_020328F4: ; 0x020328F4
+ push {r3, lr}
+ ldr r1, _0203291C ; =0x021C5A00
+ ldr r2, [r1, #0x0]
+ add r2, #0x3e
+ strb r0, [r2, #0x0]
+ ldr r0, [r1, #0x0]
+ mov r2, #0x7
+ add r0, #0x3f
+ strb r2, [r0, #0x0]
+ ldr r0, [r1, #0x0]
+ mov r2, #0x3
+ strh r2, [r0, #0x38]
+ bl FUN_02033E74
+ ldr r0, _02032920 ; =FUN_02032628
+ mov r1, #0x0
+ bl FUN_02031D20
+ pop {r3, pc}
+ nop
+_0203291C: .word 0x021C5A00
+_02032920: .word FUN_02032628
+
+ thumb_func_start FUN_02032924
+FUN_02032924: ; 0x02032924
+ push {r3, lr}
+ bl FUN_0202E6F0
+ cmp r0, #0x0
+ beq _02032936
+ ldr r0, _02032938 ; =FUN_0203293C
+ mov r1, #0x0
+ bl FUN_02031D20
+_02032936:
+ pop {r3, pc}
+ .balign 4
+_02032938: .word FUN_0203293C
+
+ thumb_func_start FUN_0203293C
+FUN_0203293C: ; 0x0203293C
+ push {r3, lr}
+ bl FUN_0202EE0C
+ cmp r0, #0x0
+ beq _0203296C
+ ldr r0, _02032970 ; =0x021C5A00
+ mov r2, #0x2
+ ldr r0, [r0, #0x0]
+ mov r1, #0xd
+ add r0, #0x3f
+ strb r1, [r0, #0x0]
+ mov r0, #0x0
+ add r1, r0, #0x0
+ lsl r2, r2, #0x8
+ bl FUN_0202F950
+ cmp r0, #0x0
+ beq _0203296C
+ bl FUN_0202FA1C
+ ldr r0, _02032974 ; =FUN_02032978
+ mov r1, #0x64
+ bl FUN_02031D20
+_0203296C:
+ pop {r3, pc}
+ nop
+_02032970: .word 0x021C5A00
+_02032974: .word FUN_02032978
+
+ thumb_func_start FUN_02032978
+FUN_02032978: ; 0x02032978
+ push {r3, lr}
+ ldr r0, _020329E4 ; =0x021C5A00
+ ldr r0, [r0, #0x0]
+ add r0, #0x3e
+ ldrb r0, [r0, #0x0]
+ bl FUN_0202E8A0
+ cmp r0, #0x0
+ beq _020329A4
+ ldr r0, _020329E4 ; =0x021C5A00
+ ldr r0, [r0, #0x0]
+ add r0, #0x3e
+ ldrb r0, [r0, #0x0]
+ bl FUN_0202FB18
+ cmp r0, #0x0
+ beq _020329A4
+ ldr r0, _020329E8 ; =FUN_020329F4
+ mov r1, #0x64
+ bl FUN_02031D20
+ pop {r3, pc}
+_020329A4:
+ bl FUN_020311F0
+ cmp r0, #0x0
+ bne _020329B6
+ ldr r0, _020329E4 ; =0x021C5A00
+ ldr r1, [r0, #0x0]
+ ldrh r0, [r1, #0x3a]
+ cmp r0, #0x0
+ bne _020329DC
+_020329B6:
+ ldr r0, _020329E4 ; =0x021C5A00
+ ldr r2, [r0, #0x0]
+ ldrh r1, [r2, #0x38]
+ sub r1, r1, #0x1
+ strh r1, [r2, #0x38]
+ ldr r0, [r0, #0x0]
+ ldrh r0, [r0, #0x38]
+ cmp r0, #0x0
+ bne _020329D2
+ ldr r0, _020329EC ; =FUN_020327B4
+ mov r1, #0x0
+ bl FUN_02031D20
+ pop {r3, pc}
+_020329D2:
+ ldr r0, _020329F0 ; =FUN_02032924
+ mov r1, #0x0
+ bl FUN_02031D20
+ pop {r3, pc}
+_020329DC:
+ beq _020329E2
+ sub r0, r0, #0x1
+ strh r0, [r1, #0x3a]
+_020329E2:
+ pop {r3, pc}
+ .balign 4
+_020329E4: .word 0x021C5A00
+_020329E8: .word FUN_020329F4
+_020329EC: .word FUN_020327B4
+_020329F0: .word FUN_02032924
+
+ thumb_func_start FUN_020329F4
+FUN_020329F4: ; 0x020329F4
+ push {r3, lr}
+ ldr r0, _02032A7C ; =0x021C5A00
+ ldr r1, [r0, #0x0]
+ ldrh r0, [r1, #0x3a]
+ cmp r0, #0x5a
+ bls _02032A06
+ sub r0, r0, #0x1
+ strh r0, [r1, #0x3a]
+ pop {r3, pc}
+_02032A06:
+ bl FUN_020311F0
+ cmp r0, #0x0
+ beq _02032A34
+ ldr r0, _02032A7C ; =0x021C5A00
+ ldr r2, [r0, #0x0]
+ ldrh r1, [r2, #0x38]
+ sub r1, r1, #0x1
+ strh r1, [r2, #0x38]
+ ldr r0, [r0, #0x0]
+ ldrh r0, [r0, #0x38]
+ cmp r0, #0x0
+ bne _02032A2A
+ ldr r0, _02032A80 ; =FUN_020327B4
+ mov r1, #0x0
+ bl FUN_02031D20
+ pop {r3, pc}
+_02032A2A:
+ ldr r0, _02032A84 ; =FUN_02032924
+ mov r1, #0x0
+ bl FUN_02031D20
+ pop {r3, pc}
+_02032A34:
+ bl FUN_02031190
+ bl FUN_02030E7C
+ cmp r0, #0x0
+ beq _02032A4A
+ ldr r0, _02032A88 ; =FUN_0203279C
+ mov r1, #0x0
+ bl FUN_02031D20
+ pop {r3, pc}
+_02032A4A:
+ ldr r0, _02032A7C ; =0x021C5A00
+ ldr r2, [r0, #0x0]
+ ldrh r1, [r2, #0x3a]
+ cmp r1, #0x0
+ beq _02032A5A
+ sub r0, r1, #0x1
+ strh r0, [r2, #0x3a]
+ pop {r3, pc}
+_02032A5A:
+ ldrh r1, [r2, #0x38]
+ sub r1, r1, #0x1
+ strh r1, [r2, #0x38]
+ ldr r0, [r0, #0x0]
+ ldrh r0, [r0, #0x38]
+ cmp r0, #0x0
+ bne _02032A72
+ ldr r0, _02032A80 ; =FUN_020327B4
+ mov r1, #0x0
+ bl FUN_02031D20
+ pop {r3, pc}
+_02032A72:
+ ldr r0, _02032A84 ; =FUN_02032924
+ mov r1, #0x0
+ bl FUN_02031D20
+ pop {r3, pc}
+ .balign 4
+_02032A7C: .word 0x021C5A00
+_02032A80: .word FUN_020327B4
+_02032A84: .word FUN_02032924
+_02032A88: .word FUN_0203279C
+
+ thumb_func_start FUN_02032A8C
+FUN_02032A8C: ; 0x02032A8C
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ add r4, r2, #0x0
+ bl FUN_02031190
+ cmp r0, #0x0
+ bne _02032ADA
+ ldr r6, _02032ADC ; =0x02105D5C
+ mov r3, #0x1
+ mov r2, #0x0
+_02032AA0:
+ ldrb r1, [r6, #0x0]
+ ldrb r0, [r4, r2]
+ cmp r1, r0
+ beq _02032AAC
+ mov r3, #0x0
+ b _02032AB4
+_02032AAC:
+ add r2, r2, #0x1
+ add r6, r6, #0x1
+ cmp r2, #0x6
+ blo _02032AA0
+_02032AB4:
+ cmp r3, #0x0
+ beq _02032AD0
+ ldr r0, _02032AE0 ; =0x021C5A00
+ ldr r0, [r0, #0x0]
+ add r0, #0x48
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x0
+ bne _02032AD0
+ ldr r1, _02032AE4 ; =0x02105D6C
+ mov r0, #0x7
+ strb r5, [r1, #0x0]
+ bl FUN_02030C4C
+ pop {r4-r6, pc}
+_02032AD0:
+ ldr r1, _02032AE8 ; =0x02105D64
+ mov r0, #0x7
+ strb r5, [r1, #0x0]
+ bl FUN_02030C4C
+_02032ADA:
+ pop {r4-r6, pc}
+ .balign 4
+_02032ADC: .word 0x02105D5C
+_02032AE0: .word 0x021C5A00
+_02032AE4: .word 0x02105D6C
+_02032AE8: .word 0x02105D64
+
+ thumb_func_start FUN_02032AEC
+FUN_02032AEC: ; 0x02032AEC
+ push {r3-r5, lr}
+ mov r4, #0x1
+ ldr r5, _02032B5C ; =0x02105D6D
+ add r3, r4, #0x0
+_02032AF4:
+ ldrb r1, [r5, #0x0]
+ ldrb r0, [r2, r3]
+ cmp r1, r0
+ beq _02032B00
+ mov r4, #0x0
+ b _02032B08
+_02032B00:
+ add r3, r3, #0x1
+ add r5, r5, #0x1
+ cmp r3, #0x6
+ blo _02032AF4
+_02032B08:
+ cmp r4, #0x0
+ beq _02032B22
+ ldrb r4, [r2, #0x0]
+ bl FUN_02031190
+ cmp r4, r0
+ bne _02032B58
+ ldr r0, _02032B60 ; =0x021C5A00
+ mov r1, #0x1
+ ldr r0, [r0, #0x0]
+ add r0, #0x3d
+ strb r1, [r0, #0x0]
+ pop {r3-r5, pc}
+_02032B22:
+ mov r4, #0x1
+ ldr r3, _02032B64 ; =0x02105D65
+ add r5, r4, #0x0
+_02032B28:
+ ldrb r1, [r3, #0x0]
+ ldrb r0, [r2, r5]
+ cmp r1, r0
+ beq _02032B34
+ mov r4, #0x0
+ b _02032B3C
+_02032B34:
+ add r5, r5, #0x1
+ add r3, r3, #0x1
+ cmp r5, #0x6
+ blo _02032B28
+_02032B3C:
+ cmp r4, #0x0
+ beq _02032B58
+ ldrb r4, [r2, #0x0]
+ bl FUN_02031190
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ cmp r4, r0
+ bne _02032B58
+ ldr r0, _02032B60 ; =0x021C5A00
+ mov r1, #0x2
+ ldr r0, [r0, #0x0]
+ add r0, #0x3d
+ strb r1, [r0, #0x0]
+_02032B58:
+ pop {r3-r5, pc}
+ nop
+_02032B5C: .word 0x02105D6D
+_02032B60: .word 0x021C5A00
+_02032B64: .word 0x02105D65
+
+ thumb_func_start FUN_02032B68
+FUN_02032B68: ; 0x02032B68
+ mov r0, #0x6
+ bx lr
+
+ thumb_func_start FUN_02032B6C
+FUN_02032B6C: ; 0x02032B6C
+ push {r3, lr}
+ ldr r1, _02032B80 ; =0x021C5A00
+ ldr r1, [r1, #0x0]
+ cmp r1, #0x0
+ beq _02032B7E
+ add r1, #0x3c
+ strb r0, [r1, #0x0]
+ bl FUN_0202D1B0
+_02032B7E:
+ pop {r3, pc}
+ .balign 4
+_02032B80: .word 0x021C5A00
+
+ thumb_func_start FUN_02032B84
+FUN_02032B84: ; 0x02032B84
+ ldr r3, _02032B88 ; =FUN_0202EA54
+ bx r3
+ .balign 4
+_02032B88: .word FUN_0202EA54
+
+ thumb_func_start FUN_02032B8C
+FUN_02032B8C: ; 0x02032B8C
+ push {r3, lr}
+ bl FUN_0202E4C8
+ cmp r0, #0x0
+ beq _02032BC6
+ ldr r0, _02032BC8 ; =0x021C5A00
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0x2c]
+ bl FUN_0202E29C
+ ldr r0, _02032BC8 ; =0x021C5A00
+ mov r1, #0x0
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0x28]
+ bl FUN_0202DB14
+ mov r0, #0x1
+ add r1, r0, #0x0
+ mov r2, #0x20
+ bl FUN_0202F950
+ cmp r0, #0x0
+ beq _02032BC6
+ bl FUN_0202FA10
+ ldr r0, _02032BCC ; =FUN_02032B84
+ mov r1, #0x0
+ bl FUN_02031D20
+_02032BC6:
+ pop {r3, pc}
+ .balign 4
+_02032BC8: .word 0x021C5A00
+_02032BCC: .word FUN_02032B84
+
+ thumb_func_start FUN_02032BD0
+FUN_02032BD0: ; 0x02032BD0
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl FUN_02030F40
+ cmp r0, #0x0
+ bne _02032C00
+ mov r2, #0x7
+ mov r0, #0x3
+ mov r1, #0xf
+ lsl r2, r2, #0xc
+ bl FUN_02016828
+ add r0, r4, #0x0
+ mov r1, #0xe
+ bl FUN_02031734
+ ldr r0, _02032C04 ; =0x021C5A00
+ mov r1, #0x0
+ ldr r0, [r0, #0x0]
+ add r0, #0x40
+ strb r1, [r0, #0x0]
+ ldr r0, _02032C08 ; =FUN_02032B8C
+ bl FUN_02031D20
+_02032C00:
+ pop {r4, pc}
+ nop
+_02032C04: .word 0x021C5A00
+_02032C08: .word FUN_02032B8C
+
+ thumb_func_start FUN_02032C0C
+FUN_02032C0C: ; 0x02032C0C
+ push {r3, lr}
+ ldr r0, _02032C20 ; =0x021C5A00
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ beq _02032C1E
+ ldr r0, _02032C24 ; =FUN_02032440
+ mov r1, #0x5
+ bl FUN_02031D20
+_02032C1E:
+ pop {r3, pc}
+ .balign 4
+_02032C20: .word 0x021C5A00
+_02032C24: .word FUN_02032440
+
+ thumb_func_start FUN_02032C28
+FUN_02032C28: ; 0x02032C28
+ sub sp, #0x8
+ ldr r1, _02032C64 ; =0x020EEC48
+ add r0, sp, #0x0
+ ldr r2, [r1, #0x0]
+ ldr r1, [r1, #0x4]
+ str r2, [sp, #0x0]
+ str r1, [sp, #0x4]
+ ldr r1, _02032C68 ; =0x021C5A00
+ ldr r1, [r1, #0x0]
+ ldr r3, [r1, #0x24]
+ cmp r1, #0x0
+ bne _02032C46
+ mov r0, #0x0
+ add sp, #0x8
+ bx lr
+_02032C46:
+ cmp r2, #0x0
+ beq _02032C5E
+_02032C4A:
+ ldr r1, [r0, #0x0]
+ cmp r3, r1
+ bne _02032C56
+ mov r0, #0x1
+ add sp, #0x8
+ bx lr
+_02032C56:
+ add r0, r0, #0x4
+ ldr r1, [r0, #0x0]
+ cmp r1, #0x0
+ bne _02032C4A
+_02032C5E:
+ mov r0, #0x0
+ add sp, #0x8
+ bx lr
+ .balign 4
+_02032C64: .word 0x020EEC48
+_02032C68: .word 0x021C5A00
+
+ thumb_func_start FUN_02032C6C
+FUN_02032C6C: ; 0x02032C6C
+ ldr r2, _02032CE4 ; =0x00400131
+ cmp r0, r2
+ bhi _02032C7C
+ bhs _02032CBA
+ ldr r2, _02032CE8 ; =0x00000333
+ cmp r0, r2
+ beq _02032C8E
+ bx lr
+_02032C7C:
+ ldr r1, _02032CEC ; =0x00400286
+ cmp r0, r1
+ bhi _02032C86
+ beq _02032CCE
+ bx lr
+_02032C86:
+ add r1, #0x92
+ cmp r0, r1
+ beq _02032CA6
+ bx lr
+_02032C8E:
+ cmp r1, #0xf
+ bne _02032CE0
+ ldr r0, _02032CF0 ; =0x021C5A00
+ ldr r2, [r0, #0x0]
+ add r0, r2, #0x0
+ add r0, #0x49
+ ldrb r1, [r0, #0x0]
+ mov r0, #0x1
+ add r2, #0x49
+ orr r0, r1
+ strb r0, [r2, #0x0]
+ bx lr
+_02032CA6:
+ ldr r0, _02032CF0 ; =0x021C5A00
+ ldr r2, [r0, #0x0]
+ add r0, r2, #0x0
+ add r0, #0x49
+ ldrb r1, [r0, #0x0]
+ mov r0, #0x1
+ add r2, #0x49
+ orr r0, r1
+ strb r0, [r2, #0x0]
+ bx lr
+_02032CBA:
+ ldr r0, _02032CF0 ; =0x021C5A00
+ ldr r2, [r0, #0x0]
+ add r0, r2, #0x0
+ add r0, #0x49
+ ldrb r1, [r0, #0x0]
+ mov r0, #0x2
+ add r2, #0x49
+ orr r0, r1
+ strb r0, [r2, #0x0]
+ bx lr
+_02032CCE:
+ ldr r0, _02032CF0 ; =0x021C5A00
+ ldr r2, [r0, #0x0]
+ add r0, r2, #0x0
+ add r0, #0x49
+ ldrb r1, [r0, #0x0]
+ mov r0, #0x4
+ add r2, #0x49
+ orr r0, r1
+ strb r0, [r2, #0x0]
+_02032CE0:
+ bx lr
+ nop
+_02032CE4: .word 0x00400131
+_02032CE8: .word 0x00000333
+_02032CEC: .word 0x00400286
+_02032CF0: .word 0x021C5A00
+
+ thumb_func_start FUN_02032CF4
+FUN_02032CF4: ; 0x02032CF4
+ push {r3, lr}
+ bl FUN_0202E4C8
+ cmp r0, #0x0
+ beq _02032D34
+ ldr r0, _02032D38 ; =0x021C5A00
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0x2c]
+ bl FUN_0202E29C
+ ldr r0, _02032D38 ; =0x021C5A00
+ mov r1, #0x0
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0x28]
+ bl FUN_0202DB14
+ ldr r0, _02032D3C ; =FUN_02032C6C
+ bl FUN_0202D308
+ mov r0, #0x1
+ add r1, r0, #0x0
+ mov r2, #0x20
+ bl FUN_0202F950
+ cmp r0, #0x0
+ beq _02032D34
+ bl FUN_0202FA10
+ ldr r0, _02032D40 ; =FUN_02032B84
+ mov r1, #0x0
+ bl FUN_02031D20
+_02032D34:
+ pop {r3, pc}
+ nop
+_02032D38: .word 0x021C5A00
+_02032D3C: .word FUN_02032C6C
+_02032D40: .word FUN_02032B84
+
+ thumb_func_start FUN_02032D44
+FUN_02032D44: ; 0x02032D44
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl FUN_02030F40
+ cmp r0, #0x0
+ bne _02032D74
+ mov r2, #0x7
+ mov r0, #0x3
+ mov r1, #0xf
+ lsl r2, r2, #0xc
+ bl FUN_02016828
+ add r0, r4, #0x0
+ mov r1, #0x11
+ bl FUN_02031734
+ ldr r0, _02032D78 ; =0x021C5A00
+ mov r1, #0x0
+ ldr r0, [r0, #0x0]
+ add r0, #0x40
+ strb r1, [r0, #0x0]
+ ldr r0, _02032D7C ; =FUN_02032CF4
+ bl FUN_02031D20
+_02032D74:
+ pop {r4, pc}
+ nop
+_02032D78: .word 0x021C5A00
+_02032D7C: .word FUN_02032CF4
+
+ thumb_func_start FUN_02032D80
+FUN_02032D80: ; 0x02032D80
+ push {r3, lr}
+ ldr r0, _02032D94 ; =0x021C5A00
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ beq _02032D92
+ ldr r0, _02032D98 ; =FUN_02032440
+ mov r1, #0x5
+ bl FUN_02031D20
+_02032D92:
+ pop {r3, pc}
+ .balign 4
+_02032D94: .word 0x021C5A00
+_02032D98: .word FUN_02032440
+
+ thumb_func_start FUN_02032D9C
+FUN_02032D9C: ; 0x02032D9C
+ ldr r0, _02032DA8 ; =0x021C5A00
+ ldr r0, [r0, #0x0]
+ add r0, #0x49
+ ldrb r0, [r0, #0x0]
+ bx lr
+ nop
+_02032DA8: .word 0x021C5A00
+
+ thumb_func_start FUN_02032DAC
+FUN_02032DAC: ; 0x02032DAC
+ push {r3, lr}
+ bl FUN_02031468
+ ldr r0, _02032DF4 ; =0x021C5A00
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ bne _02032DBE
+ mov r0, #0x1
+ pop {r3, pc}
+_02032DBE:
+ add r0, #0x3f
+ ldrb r0, [r0, #0x0]
+ add r0, #0xe8
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ cmp r0, #0x1
+ bhi _02032DD4
+ bl FUN_021D83C0
+ mov r0, #0x1
+ pop {r3, pc}
+_02032DD4:
+ bl FUN_02033590
+ cmp r0, #0x0
+ beq _02032DE6
+ ldr r0, _02032DF8 ; =FUN_0203318C
+ mov r1, #0x0
+ bl FUN_02031D20
+ b _02032DEE
+_02032DE6:
+ ldr r0, _02032DFC ; =FUN_02032178
+ mov r1, #0x0
+ bl FUN_02031D20
+_02032DEE:
+ mov r0, #0x0
+ pop {r3, pc}
+ nop
+_02032DF4: .word 0x021C5A00
+_02032DF8: .word FUN_0203318C
+_02032DFC: .word FUN_02032178
+
+ thumb_func_start FUN_02032E00
+FUN_02032E00: ; 0x02032E00
+ push {r3, lr}
+ bl FUN_0202E4C8
+ cmp r0, #0x0
+ beq _02032E3C
+ ldr r0, _02032E40 ; =0x021C5A00
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0x2c]
+ bl FUN_0202E29C
+ ldr r0, _02032E40 ; =0x021C5A00
+ mov r1, #0x0
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0x28]
+ bl FUN_0202DB14
+ mov r0, #0x1
+ add r1, r0, #0x0
+ lsl r2, r0, #0x9
+ add r3, r0, #0x0
+ bl FUN_0202F918
+ cmp r0, #0x0
+ beq _02032E3C
+ bl FUN_0202FA10
+ ldr r0, _02032E44 ; =FUN_02032218
+ mov r1, #0x0
+ bl FUN_02031D20
+_02032E3C:
+ pop {r3, pc}
+ nop
+_02032E40: .word 0x021C5A00
+_02032E44: .word FUN_02032218
+
+ thumb_func_start FUN_02032E48
+FUN_02032E48: ; 0x02032E48
+ push {r3, lr}
+ bl FUN_0202E4C8
+ cmp r0, #0x0
+ beq _02032E82
+ ldr r0, _02032E84 ; =0x021C5A00
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0x2c]
+ bl FUN_0202E29C
+ ldr r0, _02032E84 ; =0x021C5A00
+ mov r1, #0x0
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0x28]
+ bl FUN_0202DB14
+ mov r0, #0x1
+ add r1, r0, #0x0
+ lsl r2, r0, #0x9
+ bl FUN_0202F950
+ cmp r0, #0x0
+ beq _02032E82
+ bl FUN_0202FA10
+ ldr r0, _02032E88 ; =FUN_02032290
+ mov r1, #0x0
+ bl FUN_02031D20
+_02032E82:
+ pop {r3, pc}
+ .balign 4
+_02032E84: .word 0x021C5A00
+_02032E88: .word FUN_02032290
+
+ thumb_func_start FUN_02032E8C
+FUN_02032E8C: ; 0x02032E8C
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02032E90
+FUN_02032E90: ; 0x02032E90
+ push {r3, lr}
+ bl FUN_021D7F8C
+ cmp r0, #0x0
+ bge _02032EA2
+ ldr r0, _02032EA4 ; =FUN_02032E8C
+ mov r1, #0x0
+ bl FUN_02031D20
+_02032EA2:
+ pop {r3, pc}
+ .balign 4
+_02032EA4: .word FUN_02032E8C
+
+ thumb_func_start FUN_02032EA8
+FUN_02032EA8: ; 0x02032EA8
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02032EAC
+FUN_02032EAC: ; 0x02032EAC
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02032EB0
+FUN_02032EB0: ; 0x02032EB0
+ push {r3, lr}
+ mov r0, #0x1
+ bl FUN_020313A0
+ bl FUN_021D7F8C
+ cmp r0, #0xa
+ blt _02032ECA
+ ldr r0, _02032F0C ; =FUN_02032EAC
+ mov r1, #0x0
+ bl FUN_02031D20
+ pop {r3, pc}
+_02032ECA:
+ cmp r0, #0x0
+ bge _02032ED8
+ ldr r0, _02032F10 ; =FUN_02032E8C
+ mov r1, #0x0
+ bl FUN_02031D20
+ pop {r3, pc}
+_02032ED8:
+ cmp r0, #0x1
+ bne _02032EE6
+ ldr r0, _02032F14 ; =FUN_02032E90
+ mov r1, #0x0
+ bl FUN_02031D20
+ pop {r3, pc}
+_02032EE6:
+ cmp r0, #0x2
+ bne _02032F08
+ ldr r0, _02032F18 ; =0x021C5A00
+ ldr r0, [r0, #0x0]
+ add r0, #0x44
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x0
+ beq _02032F00
+ ldr r0, _02032F10 ; =FUN_02032E8C
+ mov r1, #0x0
+ bl FUN_02031D20
+ pop {r3, pc}
+_02032F00:
+ ldr r0, _02032F1C ; =FUN_02032EA8
+ mov r1, #0x0
+ bl FUN_02031D20
+_02032F08:
+ pop {r3, pc}
+ nop
+_02032F0C: .word FUN_02032EAC
+_02032F10: .word FUN_02032E8C
+_02032F14: .word FUN_02032E90
+_02032F18: .word 0x021C5A00
+_02032F1C: .word FUN_02032EA8
+
+ thumb_func_start FUN_02032F20
+FUN_02032F20: ; 0x02032F20
+ add r1, r0, #0x2
+ cmp r1, #0x1
+ bls _02032F28
+ neg r0, r0
+_02032F28:
+ ldr r1, _02032F30 ; =0x021C5A00
+ ldr r1, [r1, #0x0]
+ str r0, [r1, #0x34]
+ bx lr
+ .balign 4
+_02032F30: .word 0x021C5A00
+
+ thumb_func_start FUN_02032F34
+FUN_02032F34: ; 0x02032F34
+ push {r3, lr}
+ mov r0, #0x0
+ bl FUN_021D7800
+ cmp r0, #0xa
+ blt _02032F4A
+ ldr r0, _02032F88 ; =FUN_02032EAC
+ mov r1, #0x0
+ bl FUN_02031D20
+ pop {r3, pc}
+_02032F4A:
+ cmp r0, #0x0
+ bge _02032F5C
+ bl FUN_02032F20
+ ldr r0, _02032F8C ; =FUN_02032E8C
+ mov r1, #0x0
+ bl FUN_02031D20
+ pop {r3, pc}
+_02032F5C:
+ cmp r0, #0x1
+ bne _02032F6A
+ ldr r0, _02032F90 ; =FUN_02032EB0
+ mov r1, #0x0
+ bl FUN_02031D20
+ pop {r3, pc}
+_02032F6A:
+ cmp r0, #0x2
+ bne _02032F78
+ ldr r0, _02032F94 ; =FUN_02032EA8
+ mov r1, #0x0
+ bl FUN_02031D20
+ pop {r3, pc}
+_02032F78:
+ cmp r0, #0x3
+ bne _02032F84
+ ldr r0, _02032F88 ; =FUN_02032EAC
+ mov r1, #0x0
+ bl FUN_02031D20
+_02032F84:
+ pop {r3, pc}
+ nop
+_02032F88: .word FUN_02032EAC
+_02032F8C: .word FUN_02032E8C
+_02032F90: .word FUN_02032EB0
+_02032F94: .word FUN_02032EA8
+
+ thumb_func_start FUN_02032F98
+FUN_02032F98: ; 0x02032F98
+ push {r3, lr}
+ mov r0, #0x1
+ bl FUN_021D7800
+ cmp r0, #0x0
+ bge _02032FB2
+ bl FUN_02032F20
+ ldr r0, _02032FD0 ; =FUN_02032E8C
+ mov r1, #0x0
+ bl FUN_02031D20
+ pop {r3, pc}
+_02032FB2:
+ ldr r0, _02032FD4 ; =0x021C5A00
+ ldr r0, [r0, #0x0]
+ add r0, #0x42
+ ldrb r0, [r0, #0x0]
+ bl FUN_021D8494
+ cmp r0, #0x0
+ beq _02032FCE
+ bl FUN_0202FC60
+ ldr r0, _02032FD8 ; =FUN_02032F34
+ mov r1, #0x0
+ bl FUN_02031D20
+_02032FCE:
+ pop {r3, pc}
+ .balign 4
+_02032FD0: .word FUN_02032E8C
+_02032FD4: .word 0x021C5A00
+_02032FD8: .word FUN_02032F34
+
+ thumb_func_start FUN_02032FDC
+FUN_02032FDC: ; 0x02032FDC
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r0, _02032FFC ; =FUN_020303BC
+ ldr r1, _02033000 ; =FUN_02030238
+ bl FUN_021D77C4
+ ldr r0, _02033004 ; =0x021C5A00
+ mov r1, #0x0
+ ldr r0, [r0, #0x0]
+ add r0, #0x42
+ strb r4, [r0, #0x0]
+ ldr r0, _02033008 ; =FUN_02032F98
+ bl FUN_02031D20
+ mov r0, #0x1
+ pop {r4, pc}
+ .balign 4
+_02032FFC: .word FUN_020303BC
+_02033000: .word FUN_02030238
+_02033004: .word 0x021C5A00
+_02033008: .word FUN_02032F98
+
+ thumb_func_start FUN_0203300C
+FUN_0203300C: ; 0x0203300C
+ ldr r0, _02033048 ; =0x021C5A00
+ ldr r0, [r0, #0x0]
+ ldr r1, [r0, #0x24]
+ ldr r0, _0203304C ; =FUN_02032F34
+ cmp r1, r0
+ bne _0203301C
+ mov r0, #0x0
+ bx lr
+_0203301C:
+ ldr r0, _02033050 ; =FUN_02032EB0
+ cmp r1, r0
+ bne _02033026
+ mov r0, #0x1
+ bx lr
+_02033026:
+ ldr r0, _02033054 ; =FUN_02032E90
+ cmp r1, r0
+ bne _02033030
+ mov r0, #0x3
+ bx lr
+_02033030:
+ ldr r0, _02033058 ; =FUN_02032EA8
+ cmp r1, r0
+ bne _0203303A
+ mov r0, #0x4
+ bx lr
+_0203303A:
+ ldr r0, _0203305C ; =FUN_02032EAC
+ cmp r1, r0
+ bne _02033044
+ mov r0, #0x5
+ bx lr
+_02033044:
+ mov r0, #0x2
+ bx lr
+ .balign 4
+_02033048: .word 0x021C5A00
+_0203304C: .word FUN_02032F34
+_02033050: .word FUN_02032EB0
+_02033054: .word FUN_02032E90
+_02033058: .word FUN_02032EA8
+_0203305C: .word FUN_02032EAC
+
+ thumb_func_start FUN_02033060
+FUN_02033060: ; 0x02033060
+ push {r3, lr}
+ ldr r0, _02033090 ; =FUN_020303BC
+ ldr r1, _02033094 ; =FUN_02030238
+ bl FUN_021D77C4
+ mov r0, #0x0
+ mvn r0, r0
+ bl FUN_021D8494
+ cmp r0, #0x0
+ beq _0203308C
+ ldr r0, _02033098 ; =0x021C5A00
+ mov r1, #0x0
+ ldr r0, [r0, #0x0]
+ add r0, #0x4d
+ strb r1, [r0, #0x0]
+ bl FUN_0202FC60
+ ldr r0, _0203309C ; =FUN_02032F34
+ mov r1, #0x0
+ bl FUN_02031D20
+_0203308C:
+ pop {r3, pc}
+ nop
+_02033090: .word FUN_020303BC
+_02033094: .word FUN_02030238
+_02033098: .word 0x021C5A00
+_0203309C: .word FUN_02032F34
+
+ thumb_func_start FUN_020330A0
+FUN_020330A0: ; 0x020330A0
+ push {r3, lr}
+ mov r0, #0x0
+ bl FUN_020313A0
+ ldr r0, _020330D8 ; =0x021C5A00
+ ldr r0, [r0, #0x0]
+ add r0, #0x41
+ ldrb r0, [r0, #0x0]
+ bl FUN_021D82BC
+ cmp r0, #0x0
+ beq _020330C6
+ bl FUN_021D836C
+ ldr r0, _020330DC ; =FUN_02033060
+ mov r1, #0x0
+ bl FUN_02031D20
+ pop {r3, pc}
+_020330C6:
+ bl FUN_021D7F8C
+ cmp r0, #0x0
+ bge _020330D6
+ ldr r0, _020330E0 ; =FUN_02032E8C
+ mov r1, #0x0
+ bl FUN_02031D20
+_020330D6:
+ pop {r3, pc}
+ .balign 4
+_020330D8: .word 0x021C5A00
+_020330DC: .word FUN_02033060
+_020330E0: .word FUN_02032E8C
+
+ thumb_func_start FUN_020330E4
+FUN_020330E4: ; 0x020330E4
+ push {r3, lr}
+ bl FUN_02031190
+ cmp r0, #0x0
+ bne _02033100
+ ldr r0, _02033120 ; =0x021C5A00
+ mov r1, #0x0
+ ldr r0, [r0, #0x0]
+ add r0, #0x41
+ strb r1, [r0, #0x0]
+ ldr r0, _02033124 ; =FUN_020330A0
+ bl FUN_02031D20
+ b _02033112
+_02033100:
+ ldr r0, _02033120 ; =0x021C5A00
+ mov r1, #0x1
+ ldr r0, [r0, #0x0]
+ add r0, #0x41
+ strb r1, [r0, #0x0]
+ ldr r0, _02033124 ; =FUN_020330A0
+ mov r1, #0x0
+ bl FUN_02031D20
+_02033112:
+ ldr r0, _02033120 ; =0x021C5A00
+ mov r1, #0x1
+ ldr r0, [r0, #0x0]
+ add r0, #0x4d
+ strb r1, [r0, #0x0]
+ pop {r3, pc}
+ nop
+_02033120: .word 0x021C5A00
+_02033124: .word FUN_020330A0
+
+ thumb_func_start FUN_02033128
+FUN_02033128: ; 0x02033128
+ ldr r0, _02033134 ; =0x021C5A00
+ ldr r0, [r0, #0x0]
+ add r0, #0x4d
+ ldrb r0, [r0, #0x0]
+ bx lr
+ nop
+_02033134: .word 0x021C5A00
+
+ thumb_func_start FUN_02033138
+FUN_02033138: ; 0x02033138
+ ldr r0, _0203314C ; =0x021C5A00
+ ldr r0, [r0, #0x0]
+ ldr r1, [r0, #0x24]
+ ldr r0, _02033150 ; =FUN_02033060
+ cmp r1, r0
+ bne _02033148
+ mov r0, #0x1
+ bx lr
+_02033148:
+ mov r0, #0x0
+ bx lr
+ .balign 4
+_0203314C: .word 0x021C5A00
+_02033150: .word FUN_02033060
+
+ thumb_func_start FUN_02033154
+FUN_02033154: ; 0x02033154
+ ldr r0, _02033174 ; =0x021C5A00
+ ldr r0, [r0, #0x0]
+ ldr r1, [r0, #0x24]
+ ldr r0, _02033178 ; =FUN_02032F34
+ cmp r1, r0
+ bne _02033164
+ mov r0, #0x1
+ bx lr
+_02033164:
+ ldr r0, _0203317C ; =FUN_02033060
+ cmp r1, r0
+ bne _0203316E
+ mov r0, #0x1
+ bx lr
+_0203316E:
+ mov r0, #0x0
+ bx lr
+ nop
+_02033174: .word 0x021C5A00
+_02033178: .word FUN_02032F34
+_0203317C: .word FUN_02033060
+
+ thumb_func_start FUN_02033180
+FUN_02033180: ; 0x02033180
+ ldr r0, _02033188 ; =0x021C5A00
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0x34]
+ bx lr
+ .balign 4
+_02033188: .word 0x021C5A00
+
+ thumb_func_start FUN_0203318C
+FUN_0203318C: ; 0x0203318C
+ push {r3, lr}
+ mov r0, #0x0
+ bl FUN_020313A0
+ mov r0, #0x0
+ bl FUN_021D82BC
+ cmp r0, #0x0
+ beq _020331AA
+ bl FUN_021D836C
+ ldr r0, _020331BC ; =FUN_02032440
+ mov r1, #0x0
+ bl FUN_02031D20
+_020331AA:
+ bl FUN_021D7F8C
+ cmp r0, #0x0
+ bge _020331BA
+ ldr r0, _020331C0 ; =FUN_02032E8C
+ mov r1, #0x0
+ bl FUN_02031D20
+_020331BA:
+ pop {r3, pc}
+ .balign 4
+_020331BC: .word FUN_02032440
+_020331C0: .word FUN_02032E8C
+
+ thumb_func_start FUN_020331C4
+FUN_020331C4: ; 0x020331C4
+ push {r3, lr}
+ ldr r0, _020331E0 ; =0x021C5A00
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ beq _020331DC
+ mov r0, #0x1
+ bl FUN_020166B8
+ ldr r0, _020331E4 ; =FUN_02032440
+ mov r1, #0x5
+ bl FUN_02031D20
+_020331DC:
+ pop {r3, pc}
+ nop
+_020331E0: .word 0x021C5A00
+_020331E4: .word FUN_02032440
+
+ thumb_func_start FUN_020331E8
+FUN_020331E8: ; 0x020331E8
+ push {r3, lr}
+ ldr r0, _02033200 ; =0x021C5A00
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ beq _020331FE
+ mov r1, #0x0
+ add r0, #0x41
+ strb r1, [r0, #0x0]
+ ldr r0, _02033204 ; =FUN_020330A0
+ bl FUN_02031D20
+_020331FE:
+ pop {r3, pc}
+ .balign 4
+_02033200: .word 0x021C5A00
+_02033204: .word FUN_020330A0
+
+ thumb_func_start FUN_02033208
+FUN_02033208: ; 0x02033208
+ push {r3, lr}
+ ldr r0, _02033234 ; =0x021C5A00
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ beq _02033232
+ bl FUN_02031190
+ cmp r0, #0x0
+ bne _02033220
+ mov r1, #0x0
+ ldr r0, _02033234 ; =0x021C5A00
+ b _02033224
+_02033220:
+ ldr r0, _02033234 ; =0x021C5A00
+ mov r1, #0x1
+_02033224:
+ ldr r0, [r0, #0x0]
+ add r0, #0x41
+ strb r1, [r0, #0x0]
+ ldr r0, _02033238 ; =FUN_020330A0
+ mov r1, #0x0
+ bl FUN_02031D20
+_02033232:
+ pop {r3, pc}
+ .balign 4
+_02033234: .word 0x021C5A00
+_02033238: .word FUN_020330A0
+
+ thumb_func_start FUN_0203323C
+FUN_0203323C: ; 0x0203323C
+ push {r3, lr}
+ bl FUN_02031190
+ add r1, sp, #0x0
+ strb r0, [r1, #0x0]
+ mov r0, #0x15
+ add r1, sp, #0x0
+ bl FUN_020311D0
+ pop {r3, pc}
+
+ thumb_func_start FUN_02033250
+FUN_02033250: ; 0x02033250
+ ldr r0, _0203327C ; =0x021C5A00
+ ldr r2, [r0, #0x0]
+ cmp r2, #0x0
+ beq _02033276
+ ldr r1, [r2, #0x24]
+ ldr r0, _02033280 ; =FUN_02032E8C
+ cmp r1, r0
+ bne _02033264
+ mov r0, #0x1
+ bx lr
+_02033264:
+ ldr r0, _02033284 ; =FUN_02032E90
+ cmp r1, r0
+ bne _02033276
+ add r2, #0x44
+ ldrb r0, [r2, #0x0]
+ cmp r0, #0x0
+ beq _02033276
+ mov r0, #0x1
+ bx lr
+_02033276:
+ mov r0, #0x0
+ bx lr
+ nop
+_0203327C: .word 0x021C5A00
+_02033280: .word FUN_02032E8C
+_02033284: .word FUN_02032E90
+
+ thumb_func_start FUN_02033288
+FUN_02033288: ; 0x02033288
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r0, _020332D8 ; =0x021C5A00
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ bne _020332D6
+ mov r1, #0xf
+ add r2, r1, #0x0
+ mov r0, #0x3
+ add r2, #0xf1
+ bl FUN_02016828
+ mov r0, #0xf
+ mov r1, #0x50
+ bl FUN_02016998
+ ldr r1, _020332D8 ; =0x021C5A00
+ mov r2, #0x50
+ str r0, [r1, #0x0]
+ mov r1, #0x0
+ blx MI_CpuFill8
+ ldr r0, _020332D8 ; =0x021C5A00
+ mov r2, #0x18
+ ldr r1, [r0, #0x0]
+ add r1, #0x3f
+ strb r2, [r1, #0x0]
+ ldr r2, [r0, #0x0]
+ mov r1, #0x1
+ add r2, #0x46
+ strb r1, [r2, #0x0]
+ ldr r0, [r0, #0x0]
+ str r4, [r0, #0x28]
+ mov r0, #0x0
+ bl FUN_020334E8
+ mov r0, #0x1
+ bl FUN_020166A8
+_020332D6:
+ pop {r4, pc}
+ .balign 4
+_020332D8: .word 0x021C5A00
+
+ thumb_func_start FUN_020332DC
+FUN_020332DC: ; 0x020332DC
+ push {r3, lr}
+ ldr r0, _0203330C ; =0x021C5A00
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ beq _02033308
+ mov r0, #0x1
+ bl FUN_020166B8
+ mov r0, #0x0
+ add r1, r0, #0x0
+ bl FUN_020334E8
+ ldr r0, _0203330C ; =0x021C5A00
+ ldr r0, [r0, #0x0]
+ bl FUN_02016A18
+ ldr r0, _0203330C ; =0x021C5A00
+ mov r1, #0x0
+ str r1, [r0, #0x0]
+ mov r0, #0xf
+ bl FUN_020168D0
+_02033308:
+ pop {r3, pc}
+ nop
+_0203330C: .word 0x021C5A00
+
+ thumb_func_start FUN_02033310
+FUN_02033310: ; 0x02033310
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r0, _02033360 ; =0x021C5A00
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ bne _0203335E
+ mov r1, #0xf
+ add r2, r1, #0x0
+ mov r0, #0x3
+ add r2, #0xf1
+ bl FUN_02016828
+ mov r0, #0xf
+ mov r1, #0x50
+ bl FUN_02016998
+ ldr r1, _02033360 ; =0x021C5A00
+ mov r2, #0x50
+ str r0, [r1, #0x0]
+ mov r1, #0x0
+ blx MI_CpuFill8
+ ldr r0, _02033360 ; =0x021C5A00
+ mov r2, #0x19
+ ldr r1, [r0, #0x0]
+ add r1, #0x3f
+ strb r2, [r1, #0x0]
+ ldr r2, [r0, #0x0]
+ mov r1, #0x1
+ add r2, #0x46
+ strb r1, [r2, #0x0]
+ ldr r0, [r0, #0x0]
+ str r4, [r0, #0x28]
+ mov r0, #0x0
+ bl FUN_020334E8
+ mov r0, #0x1
+ bl FUN_020166A8
+_0203335E:
+ pop {r4, pc}
+ .balign 4
+_02033360: .word 0x021C5A00
+
+ thumb_func_start FUN_02033364
+FUN_02033364: ; 0x02033364
+ push {r3, lr}
+ ldr r0, _02033394 ; =0x021C5A00
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ beq _02033390
+ mov r0, #0x1
+ bl FUN_020166B8
+ mov r0, #0x0
+ add r1, r0, #0x0
+ bl FUN_020334E8
+ ldr r0, _02033394 ; =0x021C5A00
+ ldr r0, [r0, #0x0]
+ bl FUN_02016A18
+ ldr r0, _02033394 ; =0x021C5A00
+ mov r1, #0x0
+ str r1, [r0, #0x0]
+ mov r0, #0xf
+ bl FUN_020168D0
+_02033390:
+ pop {r3, pc}
+ nop
+_02033394: .word 0x021C5A00
+
+ thumb_func_start FUN_02033398
+FUN_02033398: ; 0x02033398
+ push {r3, lr}
+ sub sp, #0x8
+ ldr r0, _020333EC ; =0x021C5A00
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ bne _020333AA
+ add sp, #0x8
+ mov r0, #0x0
+ pop {r3, pc}
+_020333AA:
+ add r0, #0x3f
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x18
+ bne _020333C8
+ add r0, sp, #0x4
+ add r1, sp, #0x0
+ blx FUN_021DD718
+ cmp r0, #0x0
+ beq _020333E4
+ blx FUN_021DD6F0
+ add sp, #0x8
+ mov r0, #0x1
+ pop {r3, pc}
+_020333C8:
+ cmp r0, #0x19
+ bne _020333E4
+ add r0, sp, #0x4
+ add r1, sp, #0x0
+ blx FUN_021DD718
+ cmp r0, #0x0
+ beq _020333E4
+ ldr r0, [sp, #0x0]
+ cmp r0, #0x7
+ bne _020333E4
+ add sp, #0x8
+ mov r0, #0x1
+ pop {r3, pc}
+_020333E4:
+ mov r0, #0x0
+ add sp, #0x8
+ pop {r3, pc}
+ nop
+_020333EC: .word 0x021C5A00
+
+ thumb_func_start FUN_020333F0
+FUN_020333F0: ; 0x020333F0
+ push {r3, lr}
+ bl FUN_021D76AC
+ cmp r0, #0x0
+ bge _02033408
+ bl FUN_02032F20
+ ldr r0, _02033414 ; =FUN_02032E8C
+ mov r1, #0x0
+ bl FUN_02031D20
+ pop {r3, pc}
+_02033408:
+ ble _02033412
+ ldr r0, _02033418 ; =FUN_02033060
+ mov r1, #0x0
+ bl FUN_02031D20
+_02033412:
+ pop {r3, pc}
+ .balign 4
+_02033414: .word FUN_02032E8C
+_02033418: .word FUN_02033060
+
+ thumb_func_start FUN_0203341C
+FUN_0203341C: ; 0x0203341C
+ push {r3, lr}
+ bl FUN_0202E4C8
+ cmp r0, #0x0
+ beq _0203345E
+ mov r1, #0x31
+ mov r0, #0x3
+ lsl r2, r1, #0xc
+ bl FUN_02016828
+ mov r0, #0x1
+ add r1, r0, #0x0
+ lsl r2, r0, #0x9
+ add r3, r0, #0x0
+ bl FUN_0202F918
+ cmp r0, #0x0
+ beq _0203345E
+ ldr r0, _02033460 ; =0x021C5A00
+ mov r1, #0x31
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0x28]
+ bl FUN_021D74E0
+ ldr r0, _02033464 ; =FUN_020335D0
+ bl FUN_021D83A8
+ bl FUN_0202FA10
+ ldr r0, _02033468 ; =FUN_020333F0
+ mov r1, #0x0
+ bl FUN_02031D20
+_0203345E:
+ pop {r3, pc}
+ .balign 4
+_02033460: .word 0x021C5A00
+_02033464: .word FUN_020335D0
+_02033468: .word FUN_020333F0
+
+ thumb_func_start FUN_0203346C
+FUN_0203346C: ; 0x0203346C
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ bl FUN_020238F4
+ bl FUN_02030F40
+ cmp r0, #0x0
+ beq _02033482
+ mov r0, #0x0
+ pop {r3-r5, pc}
+_02033482:
+ mov r0, #0x1
+ bl FUN_020166A8
+ ldr r2, _020334D0 ; =0x00007080
+ mov r0, #0x3
+ mov r1, #0xf
+ bl FUN_02016828
+ add r0, r5, #0x0
+ mov r1, #0x17
+ bl FUN_02031734
+ mov r0, #0xf
+ add r1, r4, #0x0
+ bl FUN_02016998
+ ldr r1, _020334D4 ; =0x021C5A00
+ ldr r2, [r1, #0x0]
+ str r0, [r2, #0x0]
+ ldr r0, [r1, #0x0]
+ mov r1, #0x0
+ ldr r0, [r0, #0x0]
+ add r2, r4, #0x0
+ blx MI_CpuFill8
+ ldr r0, _020334D4 ; =0x021C5A00
+ mov r1, #0x0
+ ldr r2, [r0, #0x0]
+ add r2, #0x40
+ strb r1, [r2, #0x0]
+ ldr r0, [r0, #0x0]
+ str r5, [r0, #0x28]
+ ldr r0, _020334D8 ; =FUN_0203341C
+ bl FUN_02031D20
+ ldr r0, _020334D4 ; =0x021C5A00
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0x0]
+ pop {r3-r5, pc}
+ .balign 4
+_020334D0: .word 0x00007080
+_020334D4: .word 0x021C5A00
+_020334D8: .word FUN_0203341C
+
+ thumb_func_start FUN_020334DC
+FUN_020334DC: ; 0x020334DC
+ ldr r0, _020334E4 ; =0x021C5A00
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0x0]
+ bx lr
+ .balign 4
+_020334E4: .word 0x021C5A00
+
+ thumb_func_start FUN_020334E8
+FUN_020334E8: ; 0x020334E8
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r0, _0203350C ; =0x021C5A00
+ ldr r2, [r0, #0x0]
+ cmp r2, #0x0
+ beq _020334FE
+ add r2, #0x44
+ strb r4, [r2, #0x0]
+ ldr r0, [r0, #0x0]
+ add r0, #0x45
+ strb r1, [r0, #0x0]
+_020334FE:
+ add r0, r4, #0x0
+ bl FUN_0202EE84
+ add r0, r4, #0x0
+ bl FUN_0202EEB0
+ pop {r4, pc}
+ .balign 4
+_0203350C: .word 0x021C5A00
+
+ thumb_func_start FUN_02033510
+FUN_02033510: ; 0x02033510
+ ldr r0, _02033530 ; =0x021C5A00
+ ldr r1, [r0, #0x0]
+ cmp r1, #0x0
+ beq _0203352C
+ add r0, r1, #0x0
+ add r0, #0x4e
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x0
+ beq _02033526
+ mov r0, #0x1
+ bx lr
+_02033526:
+ add r1, #0x45
+ ldrb r0, [r1, #0x0]
+ bx lr
+_0203352C:
+ mov r0, #0x0
+ bx lr
+ .balign 4
+_02033530: .word 0x021C5A00
+
+ thumb_func_start FUN_02033534
+FUN_02033534: ; 0x02033534
+ ldr r0, _02033548 ; =0x021C5A00
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ beq _02033542
+ add r0, #0x3f
+ ldrb r0, [r0, #0x0]
+ bx lr
+_02033542:
+ mov r0, #0x1
+ bx lr
+ nop
+_02033548: .word 0x021C5A00
+
+ thumb_func_start FUN_0203354C
+FUN_0203354C: ; 0x0203354C
+ ldr r0, _02033560 ; =0x021C5A00
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ beq _0203355A
+ add r0, #0x40
+ ldrb r0, [r0, #0x0]
+ bx lr
+_0203355A:
+ mov r0, #0x0
+ bx lr
+ nop
+_02033560: .word 0x021C5A00
+
+ thumb_func_start FUN_02033564
+FUN_02033564: ; 0x02033564
+ ldr r1, _02033570 ; =0x021C5A00
+ ldr r3, _02033574 ; =MI_CpuCopy8
+ ldr r1, [r1, #0x0]
+ mov r2, #0x6
+ add r1, r1, #0x4
+ bx r3
+ .balign 4
+_02033570: .word 0x021C5A00
+_02033574: .word MI_CpuCopy8
+
+ thumb_func_start FUN_02033578
+FUN_02033578: ; 0x02033578
+ add r1, r0, #0x0
+ ldr r0, _02033588 ; =0x021C5A00
+ ldr r3, _0203358C ; =MI_CpuCopy8
+ ldr r0, [r0, #0x0]
+ mov r2, #0x6
+ add r0, r0, #0x4
+ bx r3
+ nop
+_02033588: .word 0x021C5A00
+_0203358C: .word MI_CpuCopy8
+
+ thumb_func_start FUN_02033590
+FUN_02033590: ; 0x02033590
+ push {r3, lr}
+ bl FUN_02033534
+ cmp r0, #0x13
+ blt _0203359E
+ mov r0, #0x1
+ pop {r3, pc}
+_0203359E:
+ mov r0, #0x0
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_020335A4
+FUN_020335A4: ; 0x020335A4
+ ldr r1, _020335B4 ; =0x021C5A00
+ ldr r1, [r1, #0x0]
+ cmp r1, #0x0
+ beq _020335B0
+ add r1, #0x47
+ strb r0, [r1, #0x0]
+_020335B0:
+ bx lr
+ nop
+_020335B4: .word 0x021C5A00
+
+ thumb_func_start FUN_020335B8
+FUN_020335B8: ; 0x020335B8
+ ldr r0, _020335CC ; =0x021C5A00
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ beq _020335C6
+ add r0, #0x47
+ ldrb r0, [r0, #0x0]
+ bx lr
+_020335C6:
+ mov r0, #0x0
+ bx lr
+ nop
+_020335CC: .word 0x021C5A00
+
+ thumb_func_start FUN_020335D0
+FUN_020335D0: ; 0x020335D0
+ push {r3, lr}
+ add r2, r0, #0x0
+ mov r0, #0x0
+ mov r1, #0x1
+ bl FUN_02033F70
+_020335DC:
+ b _020335DC
+ .balign 4
+
+ thumb_func_start FUN_020335E0
+FUN_020335E0: ; 0x020335E0
+ push {r3, lr}
+ mov r0, #0x0
+ mov r1, #0x4
+ add r2, r0, #0x0
+ bl FUN_02033F70
+_020335EC:
+ b _020335EC
+ .balign 4
+
+ thumb_func_start FUN_020335F0
+FUN_020335F0: ; 0x020335F0
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_020335F4
+FUN_020335F4: ; 0x020335F4
+ push {r3, lr}
+ bl FUN_02033510
+ cmp r0, #0x0
+ beq _0203366C
+ bl FUN_020311F0
+ cmp r0, #0x0
+ bne _02033622
+ bl FUN_02033250
+ cmp r0, #0x0
+ bne _02033622
+ bl FUN_02033398
+ cmp r0, #0x0
+ bne _02033622
+ ldr r0, _02033670 ; =0x021C5A00
+ ldr r0, [r0, #0x0]
+ add r0, #0x4e
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x0
+ beq _0203366C
+_02033622:
+ bl FUN_020335B8
+ cmp r0, #0x0
+ bne _0203366C
+ bl FUN_0200541C
+ ldr r0, _02033670 ; =0x021C5A00
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0x28]
+ bl FUN_0202287C
+ ldr r1, _02033674 ; =0x021C4918
+ mov r0, #0x1
+ strb r0, [r1, #0x4]
+ ldr r1, _02033670 ; =0x021C5A00
+ ldr r2, [r1, #0x0]
+ add r1, r2, #0x0
+ add r1, #0x4e
+ ldrb r1, [r1, #0x0]
+ cmp r1, #0x3
+ bne _02033654
+ mov r0, #0x3
+ bl FUN_020335A4
+ pop {r3, pc}
+_02033654:
+ add r2, #0x3f
+ ldrb r1, [r2, #0x0]
+ cmp r1, #0x19
+ beq _02033660
+ cmp r1, #0xf
+ bne _02033668
+_02033660:
+ mov r0, #0x2
+ bl FUN_020335A4
+ pop {r3, pc}
+_02033668:
+ bl FUN_020335A4
+_0203366C:
+ pop {r3, pc}
+ nop
+_02033670: .word 0x021C5A00
+_02033674: .word 0x021C4918
+
+ thumb_func_start FUN_02033678
+FUN_02033678: ; 0x02033678
+ push {r3, lr}
+ bl FUN_0202EDD8
+ cmp r0, #0x0
+ bne _0203368A
+ bl FUN_02031810
+ cmp r0, #0x0
+ bne _0203368E
+_0203368A:
+ mov r0, #0x1
+ pop {r3, pc}
+_0203368E:
+ bl FUN_0202E344
+ cmp r0, #0x0
+ bne _0203369A
+ mov r0, #0x1
+ pop {r3, pc}
+_0203369A:
+ mov r0, #0x0
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_020336A0
+FUN_020336A0: ; 0x020336A0
+ push {r3, lr}
+ ldr r1, _020336BC ; =0x021C5A00
+ ldr r1, [r1, #0x0]
+ cmp r1, #0x0
+ beq _020336B6
+ add r1, #0x4e
+ strb r0, [r1, #0x0]
+ bl FUN_02031468
+ mov r0, #0x1
+ pop {r3, pc}
+_020336B6:
+ mov r0, #0x0
+ pop {r3, pc}
+ nop
+_020336BC: .word 0x021C5A00
+
+ thumb_func_start FUN_020336C0
+FUN_020336C0: ; 0x020336C0
+ mov r1, #0x0
+ str r1, [r0, #0x0]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_020336C8
+FUN_020336C8: ; 0x020336C8
+ push {r4-r6, lr}
+ add r4, r2, #0x0
+ add r6, r1, #0x0
+ ldr r1, [r4, #0x0]
+ add r5, r0, #0x0
+ cmp r1, #0x6
+ bhi _02033774
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #0x6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_020336E2: ; jump table (using 16-bit offset)
+ .short _020336F0 - _020336E2 - 2; case 0
+ .short _020336FC - _020336E2 - 2; case 1
+ .short _02033714 - _020336E2 - 2; case 2
+ .short _0203373A - _020336E2 - 2; case 3
+ .short _0203374A - _020336E2 - 2; case 4
+ .short _0203376A - _020336E2 - 2; case 5
+ .short _02033770 - _020336E2 - 2; case 6
+_020336F0:
+ mov r0, #0x6f
+ bl FUN_02031588
+ mov r0, #0x1
+ str r0, [r4, #0x0]
+ b _02033774
+_020336FC:
+ mov r0, #0x6f
+ bl FUN_020315D8
+ cmp r0, #0x0
+ beq _02033774
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ bl FUN_02022840
+ mov r0, #0x2
+ str r0, [r4, #0x0]
+ b _02033774
+_02033714:
+ bl FUN_02022854
+ add r5, r0, #0x0
+ cmp r5, #0x2
+ bne _02033722
+ bl ErrorHandling
+_02033722:
+ cmp r5, #0x3
+ bne _0203372A
+ bl ErrorHandling
+_0203372A:
+ cmp r5, #0x1
+ bne _02033774
+ mov r0, #0x3
+ str r0, [r4, #0x0]
+ mov r0, #0x70
+ bl FUN_02031588
+ b _02033774
+_0203373A:
+ mov r0, #0x70
+ bl FUN_020315D8
+ cmp r0, #0x0
+ beq _02033774
+ mov r0, #0x4
+ str r0, [r4, #0x0]
+ b _02033774
+_0203374A:
+ bl FUN_02022854
+ add r5, r0, #0x0
+ cmp r5, #0x3
+ bne _02033758
+ bl ErrorHandling
+_02033758:
+ cmp r5, #0x1
+ bne _02033760
+ bl ErrorHandling
+_02033760:
+ cmp r5, #0x2
+ bne _02033774
+ mov r0, #0x5
+ str r0, [r4, #0x0]
+ b _02033774
+_0203376A:
+ mov r0, #0x6
+ str r0, [r4, #0x0]
+ b _02033774
+_02033770:
+ mov r0, #0x1
+ pop {r4-r6, pc}
+_02033774:
+ mov r0, #0x0
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_02033778
+FUN_02033778: ; 0x02033778
+ push {r3-r7, lr}
+ str r0, [sp, #0x0]
+ bl FUN_02030F20
+ add r7, r0, #0x0
+ mov r0, #0x0
+ bl FUN_0202DFA4
+ cmp r0, #0x0
+ beq _020337C6
+ mov r5, #0x0
+ cmp r7, #0x0
+ ble _020337C6
+_02033792:
+ bl FUN_02031190
+ cmp r5, r0
+ beq _020337C0
+ add r0, r5, #0x0
+ bl FUN_0202E020
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_0202E044
+ add r6, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_0202DFA4
+ bl FUN_02023A70
+ add r3, r0, #0x0
+ ldr r0, [sp, #0x0]
+ add r1, r4, #0x0
+ add r2, r6, #0x0
+ bl FUN_020337C8
+_020337C0:
+ add r5, r5, #0x1
+ cmp r5, r7
+ blt _02033792
+_020337C6:
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_020337C8
+FUN_020337C8: ; 0x020337C8
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ add r6, r2, #0x0
+ bl FUN_02029B40
+ cmp r0, #0x0
+ bne _020337E4
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ add r2, r6, #0x0
+ mov r3, #0x1
+ bl FUN_02029B90
+_020337E4:
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_020337E8
+FUN_020337E8: ; 0x020337E8
+ push {r3-r5, lr}
+ mov r1, #0x72
+ lsl r1, r1, #0x4
+ bl FUN_02016998
+ add r4, r0, #0x0
+ add r0, #0x1f
+ mov r1, #0x1f
+ bic r0, r1
+ blx FUN_02096B14
+ add r5, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ add r0, r5, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_0203380C
+FUN_0203380C: ; 0x0203380C
+ push {r4, lr}
+ bl FUN_02028228
+ add r4, r0, #0x0
+ blx FUN_02096FB0
+ cmp r0, #0x0
+ bne _0203382A
+ ldr r1, _0203382C ; =0x4144414A
+ add r0, r4, #0x0
+ blx thunk_FUN_02097190
+ add r0, r4, #0x0
+ blx thunk_FUN_02096e4c
+_0203382A:
+ pop {r4, pc}
+ .balign 4
+_0203382C: .word 0x4144414A
+
+ thumb_func_start FUN_02033830
+FUN_02033830: ; 0x02033830
+ push {r3-r4, lr}
+ sub sp, #0xc
+ bl FUN_02028228
+ add r4, r0, #0x0
+ add r1, sp, #0x0
+ blx FUN_02096CCC
+ add r0, r4, #0x0
+ add r1, sp, #0x0
+ blx FUN_02096DA0
+ add sp, #0xc
+ pop {r3-r4, pc}
+
+ thumb_func_start FUN_0203384C
+FUN_0203384C: ; 0x0203384C
+ push {r4, lr}
+ bl FUN_020286EC
+ bl FUN_02028228
+ add r4, r0, #0x0
+ blx FUN_02096F80
+ cmp r0, #0x0
+ beq _0203386E
+ add r0, r4, #0x0
+ blx FUN_02096F18
+ cmp r0, #0x0
+ beq _0203386E
+ mov r0, #0x1
+ pop {r4, pc}
+_0203386E:
+ mov r0, #0x0
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02033874
+FUN_02033874: ; 0x02033874
+ push {r3-r7, lr}
+ sub sp, #0x8
+ add r4, r0, #0x0
+ add r5, r1, #0x0
+ str r2, [sp, #0x0]
+ bl FUN_020286EC
+ bl FUN_02028228
+ add r6, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_020286EC
+ mov r1, #0x0
+ bl FUN_0202838C
+ add r4, r0, #0x0
+ mov r1, #0x0
+ ldr r0, [sp, #0x0]
+ mvn r1, r1
+ str r1, [r0, #0x0]
+ add r0, r5, #0x0
+ blx FUN_0209700C
+ cmp r0, #0x0
+ bne _020338AE
+ add sp, #0x8
+ mov r0, #0x3
+ pop {r3-r7, pc}
+_020338AE:
+ mov r7, #0x0
+_020338B0:
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ blx FUN_02096B78
+ cmp r0, #0x0
+ beq _020338C6
+ ldr r0, [sp, #0x0]
+ add sp, #0x8
+ str r7, [r0, #0x0]
+ mov r0, #0x0
+ pop {r3-r7, pc}
+_020338C6:
+ add r0, r6, #0x0
+ add r1, r5, #0x0
+ blx FUN_02096DA0
+ cmp r0, #0x0
+ ble _020338F4
+ add r0, r6, #0x0
+ add r1, r5, #0x0
+ blx FUN_02096DA0
+ str r0, [sp, #0x4]
+ add r0, r6, #0x0
+ add r1, r4, #0x0
+ blx FUN_02096DA0
+ ldr r1, [sp, #0x4]
+ cmp r1, r0
+ bne _020338F4
+ ldr r0, [sp, #0x0]
+ add sp, #0x8
+ str r7, [r0, #0x0]
+ mov r0, #0x1
+ pop {r3-r7, pc}
+_020338F4:
+ ldr r0, [sp, #0x0]
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ bge _0203390A
+ add r0, r4, #0x0
+ blx FUN_0209700C
+ cmp r0, #0x0
+ bne _0203390A
+ ldr r0, [sp, #0x0]
+ str r7, [r0, #0x0]
+_0203390A:
+ add r7, r7, #0x1
+ add r4, #0xc
+ cmp r7, #0x20
+ blt _020338B0
+ mov r0, #0x2
+ add sp, #0x8
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_02033918
+FUN_02033918: ; 0x02033918
+ push {r3-r7, lr}
+ sub sp, #0x18
+ add r4, r0, #0x0
+ str r1, [sp, #0x0]
+ str r2, [sp, #0x4]
+ add r6, r3, #0x0
+ bl FUN_020286EC
+ bl FUN_02028228
+ add r7, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_020286EC
+ mov r1, #0x0
+ bl FUN_0202838C
+ add r5, r0, #0x0
+ ldr r1, [sp, #0x0]
+ ldr r2, [sp, #0x4]
+ add r0, r7, #0x0
+ blx FUN_020973B4
+ cmp r0, #0x0
+ bne _02033950
+ add sp, #0x18
+ mov r0, #0x3
+ pop {r3-r7, pc}
+_02033950:
+ ldr r1, [sp, #0x0]
+ ldr r2, [sp, #0x4]
+ add r0, sp, #0xc
+ blx FUN_02096D2C
+ add r0, r7, #0x0
+ add r1, sp, #0xc
+ blx FUN_02096DA0
+ cmp r0, #0x0
+ bgt _0203396C
+ add sp, #0x18
+ mov r0, #0x3
+ pop {r3-r7, pc}
+_0203396C:
+ mov r0, #0x0
+ mvn r0, r0
+ str r0, [r6, #0x0]
+ mov r4, #0x0
+_02033974:
+ add r0, r7, #0x0
+ add r1, sp, #0xc
+ blx FUN_02096DA0
+ str r0, [sp, #0x8]
+ add r0, r7, #0x0
+ add r1, r5, #0x0
+ blx FUN_02096DA0
+ ldr r1, [sp, #0x8]
+ cmp r1, r0
+ bne _02033994
+ add sp, #0x18
+ str r4, [r6, #0x0]
+ mov r0, #0x0
+ pop {r3-r7, pc}
+_02033994:
+ ldr r0, [r6, #0x0]
+ cmp r0, #0x0
+ bge _020339A6
+ add r0, r5, #0x0
+ blx FUN_0209700C
+ cmp r0, #0x0
+ bne _020339A6
+ str r4, [r6, #0x0]
+_020339A6:
+ add r4, r4, #0x1
+ add r5, #0xc
+ cmp r4, #0x20
+ blt _02033974
+ mov r0, #0x2
+ add sp, #0x18
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_020339B4
+FUN_020339B4: ; 0x020339B4
+ push {r4-r7, lr}
+ sub sp, #0x14
+ add r6, r1, #0x0
+ mov r1, #0x0
+ add r5, r0, #0x0
+ str r2, [sp, #0x4]
+ str r1, [sp, #0xc]
+ bl FUN_020286EC
+ mov r1, #0x0
+ bl FUN_0202838C
+ str r0, [sp, #0x8]
+ mov r4, #0x0
+ bl FUN_02030F20
+ cmp r0, #0x0
+ ble _02033A68
+_020339D8:
+ bl FUN_02031190
+ cmp r4, r0
+ beq _02033A5C
+ add r0, r4, #0x0
+ bl FUN_0202DFD8
+ add r7, r0, #0x0
+ beq _02033A5C
+ add r0, r5, #0x0
+ add r1, r7, #0x0
+ add r2, sp, #0x10
+ bl FUN_02033874
+ str r0, [r6, #0x0]
+ cmp r0, #0x3
+ bne _020339FE
+ bl ErrorHandling
+_020339FE:
+ ldr r0, [r6, #0x0]
+ cmp r0, #0x0
+ bne _02033A1C
+ mov r0, #0x2
+ str r0, [sp, #0x0]
+ ldr r2, [sp, #0x10]
+ ldr r3, [sp, #0x4]
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_02033A70
+ add r0, r5, #0x0
+ bl FUN_0202E1BC
+ b _02033A5C
+_02033A1C:
+ cmp r0, #0x1
+ bne _02033A54
+ bl FUN_02033590
+ cmp r0, #0x0
+ bne _02033A5C
+ mov r0, #0x1
+ str r0, [sp, #0x0]
+ ldr r2, [sp, #0x10]
+ ldr r3, [sp, #0x4]
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_02033A70
+ ldr r2, [sp, #0x10]
+ mov r1, #0xc
+ add r3, r2, #0x0
+ mul r3, r1
+ ldr r1, [sp, #0x8]
+ add r0, r7, #0x0
+ add r1, r1, r3
+ mov r2, #0xc
+ blx MI_CpuCopy8
+ add r0, r5, #0x0
+ bl FUN_0202E1BC
+ b _02033A5C
+_02033A54:
+ cmp r0, #0x2
+ bne _02033A5C
+ mov r0, #0x1
+ str r0, [sp, #0xc]
+_02033A5C:
+ add r6, r6, #0x4
+ add r4, r4, #0x1
+ bl FUN_02030F20
+ cmp r4, r0
+ blt _020339D8
+_02033A68:
+ ldr r0, [sp, #0xc]
+ add sp, #0x14
+ pop {r4-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_02033A70
+FUN_02033A70: ; 0x02033A70
+ push {r4-r7, lr}
+ sub sp, #0x14
+ add r5, r2, #0x0
+ str r0, [sp, #0x0]
+ add r7, r1, #0x0
+ str r3, [sp, #0x4]
+ bl FUN_020286EC
+ add r1, r5, #0x0
+ add r4, r0, #0x0
+ bl FUN_0202838C
+ str r0, [sp, #0x8]
+ add r0, r7, #0x0
+ bl FUN_0202DFA4
+ add r6, r0, #0x0
+ ldr r0, [sp, #0x28]
+ cmp r0, #0x2
+ beq _02033AA6
+ add r0, r7, #0x0
+ bl FUN_0202DFD8
+ ldr r1, [sp, #0x8]
+ mov r2, #0xc
+ blx MI_CpuCopy8
+_02033AA6:
+ ldr r0, [sp, #0x28]
+ cmp r0, #0x0
+ bne _02033AEC
+ ldr r1, [sp, #0x4]
+ add r0, r6, #0x0
+ bl FUN_020239A0
+ str r0, [sp, #0xc]
+ ldr r2, [sp, #0xc]
+ add r0, r4, #0x0
+ add r1, r5, #0x0
+ bl FUN_020283C0
+ ldr r0, [sp, #0xc]
+ bl FUN_02021A20
+ add r0, r6, #0x0
+ bl FUN_020239CC
+ add r3, r0, #0x0
+ add r0, r4, #0x0
+ add r1, r5, #0x0
+ mov r2, #0x8
+ bl FUN_020282E8
+ add r0, r6, #0x0
+ bl FUN_020239BC
+ add r3, r0, #0x0
+ add r0, r4, #0x0
+ add r1, r5, #0x0
+ mov r2, #0x0
+ bl FUN_020282E8
+ b _02033B22
+_02033AEC:
+ cmp r0, #0x1
+ bne _02033B22
+ add r0, r4, #0x0
+ add r1, r5, #0x0
+ mov r2, #0x8
+ bl FUN_0202822C
+ cmp r0, #0x2
+ bne _02033B22
+ add r0, r6, #0x0
+ bl FUN_020239CC
+ add r3, r0, #0x0
+ add r0, r4, #0x0
+ add r1, r5, #0x0
+ mov r2, #0x8
+ bl FUN_020282E8
+ add r0, r6, #0x0
+ bl FUN_020239BC
+ add r3, r0, #0x0
+ add r0, r4, #0x0
+ add r1, r5, #0x0
+ mov r2, #0x0
+ bl FUN_020282E8
+_02033B22:
+ ldr r1, [sp, #0x4]
+ mov r0, #0x78
+ bl FUN_020219F4
+ str r0, [sp, #0x10]
+ add r0, r7, #0x0
+ bl FUN_0202DFFC
+ add r1, r0, #0x0
+ ldr r0, [sp, #0x10]
+ bl FUN_02021E28
+ ldr r2, [sp, #0x10]
+ add r0, r4, #0x0
+ add r1, r5, #0x0
+ bl FUN_02028404
+ ldr r0, [sp, #0x10]
+ bl FUN_02021A20
+ add r0, r6, #0x0
+ bl FUN_02023A28
+ add r3, r0, #0x0
+ add r0, r4, #0x0
+ add r1, r5, #0x0
+ mov r2, #0x7
+ bl FUN_020282E8
+ ldr r0, [sp, #0x0]
+ bl FUN_0202E1BC
+ add sp, #0x14
+ pop {r4-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_02033B68
+FUN_02033B68: ; 0x02033B68
+ push {r4-r6, lr}
+ add r4, r1, #0x0
+ add r5, r2, #0x0
+ mov r2, #0x7
+ add r6, r3, #0x0
+ ldr r1, [sp, #0x10]
+ mov r0, #0x1
+ lsl r2, r2, #0x6
+ add r3, r4, #0x0
+ bl FUN_02033D3C
+ ldr r1, [sp, #0x10]
+ mov r0, #0x1
+ add r2, r4, #0x0
+ bl FUN_02033D9C
+ add r0, r4, #0x0
+ mov r1, #0x20
+ bl FUN_020169D8
+ add r4, r0, #0x0
+ ldr r0, _02033BC4 ; =FUN_02033BC8
+ add r1, r4, #0x0
+ mov r2, #0x5
+ bl FUN_0200CA98
+ str r0, [r4, #0x18]
+ strh r5, [r4, #0xc]
+ strh r6, [r4, #0xe]
+ mov r1, #0x0
+ str r1, [r4, #0x0]
+ mov r0, #0x3
+ str r0, [r4, #0x4]
+ ldr r0, [sp, #0x14]
+ str r0, [r4, #0x14]
+ ldr r0, [sp, #0x10]
+ str r1, [r4, #0x8]
+ strb r0, [r4, #0x10]
+ strb r1, [r4, #0x12]
+ mov r0, #0x7
+ strb r1, [r4, #0x11]
+ lsl r0, r0, #0x18
+ str r0, [r4, #0x1c]
+ add r0, r4, #0x0
+ pop {r4-r6, pc}
+ nop
+_02033BC4: .word FUN_02033BC8
+
+ thumb_func_start FUN_02033BC8
+FUN_02033BC8: ; 0x02033BC8
+ push {r3-r7, lr}
+ add r5, r1, #0x0
+ ldrb r0, [r5, #0x11]
+ cmp r0, #0x1
+ beq _02033BD8
+ cmp r0, #0x2
+ beq _02033BEE
+ b _02033C04
+_02033BD8:
+ ldr r0, _02033CB0 ; =0x04000304
+ ldrh r1, [r0, #0x0]
+ lsr r0, r0, #0xb
+ and r0, r1
+ asr r0, r0, #0xf
+ cmp r0, #0x1
+ bne _02033BEA
+ mov r6, #0x1
+ b _02033C06
+_02033BEA:
+ mov r6, #0x2
+ b _02033C06
+_02033BEE:
+ ldr r0, _02033CB0 ; =0x04000304
+ ldrh r1, [r0, #0x0]
+ lsr r0, r0, #0xb
+ and r0, r1
+ asr r0, r0, #0xf
+ cmp r0, #0x1
+ bne _02033C00
+ mov r6, #0x2
+ b _02033C06
+_02033C00:
+ mov r6, #0x1
+ b _02033C06
+_02033C04:
+ mov r6, #0x1
+_02033C06:
+ ldr r4, [r5, #0x4]
+ cmp r6, #0x1
+ bne _02033C1E
+ mov r0, #0x1
+ lsl r0, r0, #0x1a
+ ldr r1, [r0, #0x0]
+ ldr r0, _02033CB4 ; =0x00300010
+ add r7, r1, #0x0
+ and r7, r0
+ blx GX_GetBankForOBJ
+ b _02033C2C
+_02033C1E:
+ ldr r0, _02033CB8 ; =0x04001000
+ ldr r1, [r0, #0x0]
+ ldr r0, _02033CB4 ; =0x00300010
+ add r7, r1, #0x0
+ and r7, r0
+ blx GX_GetBankForSubOBJ
+_02033C2C:
+ cmp r7, #0x10
+ beq _02033C38
+ ldr r1, _02033CBC ; =0x00200010
+ cmp r7, r1
+ beq _02033C54
+ b _02033C6C
+_02033C38:
+ cmp r0, #0x40
+ beq _02033C40
+ cmp r0, #0x20
+ bne _02033C4A
+_02033C40:
+ mov r0, #0x1f
+ lsl r1, r4, #0x2
+ lsl r0, r0, #0x4
+ add r1, r1, r0
+ b _02033C74
+_02033C4A:
+ mov r0, #0x3f
+ lsl r1, r4, #0x2
+ lsl r0, r0, #0x4
+ add r1, r1, r0
+ b _02033C74
+_02033C54:
+ cmp r0, #0x30
+ beq _02033C5C
+ cmp r0, #0x50
+ bne _02033C64
+_02033C5C:
+ mov r0, #0x9f
+ lsl r0, r0, #0x2
+ add r1, r4, r0
+ b _02033C74
+_02033C64:
+ mov r0, #0xff
+ lsl r0, r0, #0x2
+ add r1, r4, r0
+ b _02033C74
+_02033C6C:
+ mov r0, #0xfe
+ lsl r1, r4, #0x1
+ lsl r0, r0, #0x2
+ add r1, r1, r0
+_02033C74:
+ cmp r6, #0x1
+ bne _02033C7E
+ mov r2, #0x7
+ lsl r2, r2, #0x18
+ b _02033C80
+_02033C7E:
+ ldr r2, _02033CC0 ; =0x07000400
+_02033C80:
+ ldrh r3, [r5, #0xe]
+ ldrh r0, [r5, #0xc]
+ lsl r3, r3, #0x18
+ lsr r4, r3, #0x18
+ mov r3, #0x1
+ lsl r0, r0, #0x17
+ lsl r3, r3, #0x1e
+ lsr r0, r0, #0x7
+ orr r3, r4
+ orr r0, r3
+ str r0, [r2, #0x0]
+ mov r0, #0xe
+ lsl r0, r0, #0xc
+ orr r0, r1
+ strh r0, [r2, #0x4]
+ ldr r1, [r5, #0x1c]
+ cmp r2, r1
+ beq _02033CAE
+ ldr r0, _02033CC4 ; =0x40000200
+ str r0, [r1, #0x0]
+ mov r0, #0x0
+ strh r0, [r1, #0x4]
+ str r2, [r5, #0x1c]
+_02033CAE:
+ pop {r3-r7, pc}
+ .balign 4
+_02033CB0: .word 0x04000304
+_02033CB4: .word 0x00300010
+_02033CB8: .word 0x04001000
+_02033CBC: .word 0x00200010
+_02033CC0: .word 0x07000400
+_02033CC4: .word 0x40000200
+
+ thumb_func_start FUN_02033CC8
+FUN_02033CC8: ; 0x02033CC8
+ cmp r1, #0x4
+ bge _02033CD2
+ str r1, [r0, #0x4]
+ mov r1, #0x0
+ str r1, [r0, #0x8]
+_02033CD2:
+ bx lr
+
+ thumb_func_start FUN_02033CD4
+FUN_02033CD4: ; 0x02033CD4
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r0, [r4, #0x18]
+ bl FUN_0200CAB4
+ mov r0, #0x7
+ ldr r2, _02033D00 ; =0x40000200
+ lsl r0, r0, #0x18
+ str r2, [r0, #0x0]
+ mov r1, #0x0
+ strh r1, [r0, #0x4]
+ ldrb r0, [r4, #0x12]
+ cmp r0, #0x0
+ beq _02033CF6
+ ldr r0, _02033D04 ; =0x07000400
+ str r2, [r0, #0x0]
+ strh r1, [r0, #0x4]
+_02033CF6:
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ pop {r4, pc}
+ nop
+_02033D00: .word 0x40000200
+_02033D04: .word 0x07000400
+
+ thumb_func_start FUN_02033D08
+FUN_02033D08: ; 0x02033D08
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ add r6, r2, #0x0
+ mov r2, #0x7
+ ldrb r1, [r5, #0x10]
+ mov r0, #0x2
+ lsl r2, r2, #0x6
+ add r3, r6, #0x0
+ bl FUN_02033D3C
+ ldrb r1, [r5, #0x10]
+ mov r0, #0x2
+ add r2, r6, #0x0
+ bl FUN_02033D9C
+ cmp r4, #0x0
+ beq _02033D30
+ mov r0, #0x1
+ b _02033D32
+_02033D30:
+ mov r0, #0x2
+_02033D32:
+ strb r0, [r5, #0x11]
+ mov r0, #0x1
+ strb r0, [r5, #0x12]
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_02033D3C
+FUN_02033D3C: ; 0x02033D3C
+ push {r3-r5, lr}
+ sub sp, #0x8
+ mov r1, #0x96
+ add r5, r0, #0x0
+ add r0, r3, #0x0
+ lsl r1, r1, #0x2
+ add r4, r2, #0x0
+ bl FUN_020169D8
+ str r0, [sp, #0x4]
+ cmp r0, #0x0
+ beq _02033D92
+ ldr r0, _02033D98 ; =0x02105D88
+ add r1, sp, #0x4
+ bl FUN_020161F8
+ mov r1, #0x96
+ ldr r0, [sp, #0x4]
+ lsl r1, r1, #0x2
+ blx DC_FlushRange
+ ldr r0, [sp, #0x4]
+ add r1, sp, #0x0
+ blx FUN_020B0138
+ cmp r5, #0x1
+ bne _02033D80
+ ldr r0, [sp, #0x0]
+ add r1, r4, #0x0
+ ldr r0, [r0, #0xc]
+ mov r2, #0x20
+ blx GX_LoadOBJPltt
+ b _02033D8C
+_02033D80:
+ ldr r0, [sp, #0x0]
+ add r1, r4, #0x0
+ ldr r0, [r0, #0xc]
+ mov r2, #0x20
+ blx GXS_LoadOBJPltt
+_02033D8C:
+ ldr r0, [sp, #0x4]
+ bl FUN_02016A18
+_02033D92:
+ add sp, #0x8
+ pop {r3-r5, pc}
+ nop
+_02033D98: .word 0x02105D88
+
+ thumb_func_start FUN_02033D9C
+FUN_02033D9C: ; 0x02033D9C
+ push {r3-r5, lr}
+ sub sp, #0x8
+ add r4, r1, #0x0
+ mov r1, #0x96
+ add r5, r0, #0x0
+ add r0, r2, #0x0
+ lsl r1, r1, #0x2
+ bl FUN_020169D8
+ str r0, [sp, #0x4]
+ cmp r0, #0x0
+ beq _02033E58
+ cmp r4, #0x0
+ add r1, sp, #0x4
+ beq _02033DC2
+ ldr r0, _02033E5C ; =0x02105D98
+ bl FUN_020161F8
+ b _02033DC8
+_02033DC2:
+ ldr r0, _02033E60 ; =0x02105DA8
+ bl FUN_020161F8
+_02033DC8:
+ mov r1, #0x96
+ ldr r0, [sp, #0x4]
+ lsl r1, r1, #0x2
+ blx DC_FlushRange
+ ldr r0, [sp, #0x4]
+ add r1, sp, #0x0
+ blx FUN_020B0088
+ cmp r5, #0x1
+ bne _02033DF0
+ mov r0, #0x1
+ lsl r0, r0, #0x1a
+ ldr r1, [r0, #0x0]
+ ldr r0, _02033E64 ; =0x00300010
+ add r4, r1, #0x0
+ and r4, r0
+ blx GX_GetBankForOBJ
+ b _02033E00
+_02033DF0:
+ mov r0, #0x1
+ lsl r0, r0, #0x1a
+ ldr r1, [r0, #0x0]
+ ldr r0, _02033E64 ; =0x00300010
+ add r4, r1, #0x0
+ and r4, r0
+ blx GX_GetBankForOBJ
+_02033E00:
+ cmp r4, #0x10
+ beq _02033E0C
+ ldr r1, _02033E68 ; =0x00200010
+ cmp r4, r1
+ beq _02033E20
+ b _02033E30
+_02033E0C:
+ cmp r0, #0x40
+ beq _02033E14
+ cmp r0, #0x20
+ bne _02033E1A
+_02033E14:
+ mov r1, #0x3e
+ lsl r1, r1, #0x8
+ b _02033E34
+_02033E1A:
+ mov r1, #0x7e
+ lsl r1, r1, #0x8
+ b _02033E34
+_02033E20:
+ cmp r0, #0x30
+ beq _02033E28
+ cmp r0, #0x50
+ bne _02033E2C
+_02033E28:
+ ldr r1, _02033E6C ; =0x00013E00
+ b _02033E34
+_02033E2C:
+ ldr r1, _02033E70 ; =0x0001FE00
+ b _02033E34
+_02033E30:
+ mov r1, #0xfe
+ lsl r1, r1, #0x8
+_02033E34:
+ cmp r5, #0x1
+ bne _02033E46
+ ldr r0, [sp, #0x0]
+ mov r2, #0x2
+ ldr r0, [r0, #0x14]
+ lsl r2, r2, #0x8
+ blx GX_LoadOBJ
+ b _02033E52
+_02033E46:
+ ldr r0, [sp, #0x0]
+ mov r2, #0x2
+ ldr r0, [r0, #0x14]
+ lsl r2, r2, #0x8
+ blx GXS_LoadOBJ
+_02033E52:
+ ldr r0, [sp, #0x4]
+ bl FUN_02016A18
+_02033E58:
+ add sp, #0x8
+ pop {r3-r5, pc}
+ .balign 4
+_02033E5C: .word 0x02105D98
+_02033E60: .word 0x02105DA8
+_02033E64: .word 0x00300010
+_02033E68: .word 0x00200010
+_02033E6C: .word 0x00013E00
+_02033E70: .word 0x0001FE00
+
+ thumb_func_start FUN_02033E74
+FUN_02033E74: ; 0x02033E74
+ push {r4, lr}
+ mov r4, #0x0
+ bl FUN_02033590
+ cmp r0, #0x0
+ beq _02033E82
+ mov r4, #0x1
+_02033E82:
+ mov r0, #0xf0
+ mov r1, #0x0
+ add r2, r4, #0x0
+ bl FUN_02033E90
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02033E90
+FUN_02033E90: ; 0x02033E90
+ push {r4-r6, lr}
+ sub sp, #0x8
+ add r5, r0, #0x0
+ add r6, r1, #0x0
+ add r4, r2, #0x0
+ bl FUN_0202E4DC
+ cmp r0, #0x0
+ beq _02033EC4
+ ldr r0, _02033EC8 ; =0x021C5A04
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ beq _02033EAE
+ bl FUN_02033ED0
+_02033EAE:
+ ldr r0, _02033ECC ; =0x02105D74
+ str r4, [sp, #0x0]
+ str r0, [sp, #0x4]
+ mov r0, #0x0
+ mov r1, #0x5b
+ add r2, r5, #0x0
+ add r3, r6, #0x0
+ bl FUN_02033B68
+ ldr r1, _02033EC8 ; =0x021C5A04
+ str r0, [r1, #0x0]
+_02033EC4:
+ add sp, #0x8
+ pop {r4-r6, pc}
+ .balign 4
+_02033EC8: .word 0x021C5A04
+_02033ECC: .word 0x02105D74
+
+ thumb_func_start FUN_02033ED0
+FUN_02033ED0: ; 0x02033ED0
+ push {r3, lr}
+ ldr r0, _02033EE8 ; =0x021C5A04
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ beq _02033EE4
+ bl FUN_02033CD4
+ ldr r0, _02033EE8 ; =0x021C5A04
+ mov r1, #0x0
+ str r1, [r0, #0x0]
+_02033EE4:
+ pop {r3, pc}
+ nop
+_02033EE8: .word 0x021C5A04
+
+ thumb_func_start FUN_02033EEC
+FUN_02033EEC: ; 0x02033EEC
+ push {r3, lr}
+ add r1, r0, #0x0
+ ldr r0, _02033F00 ; =0x021C5A04
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ beq _02033EFC
+ bl FUN_02033CC8
+_02033EFC:
+ pop {r3, pc}
+ nop
+_02033F00: .word 0x021C5A04
+
+ thumb_func_start FUN_02033F04
+FUN_02033F04: ; 0x02033F04
+ push {r3, lr}
+ add r3, r0, #0x0
+ ldr r0, _02033F1C ; =0x021C5A04
+ add r2, r1, #0x0
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ beq _02033F18
+ add r1, r3, #0x0
+ bl FUN_02033D08
+_02033F18:
+ pop {r3, pc}
+ nop
+_02033F1C: .word 0x021C5A04
+
+ thumb_func_start FUN_02033F20
+FUN_02033F20: ; 0x02033F20
+ push {r3, lr}
+ bl FUN_02030F40
+ cmp r0, #0x0
+ beq _02033F40
+ bl FUN_02030F20
+ cmp r0, #0x1
+ bgt _02033F3A
+ bl FUN_02033590
+ cmp r0, #0x0
+ beq _02033F4C
+_02033F3A:
+ bl FUN_02033E74
+ pop {r3, pc}
+_02033F40:
+ bl FUN_02033590
+ cmp r0, #0x0
+ beq _02033F4C
+ bl FUN_02033E74
+_02033F4C:
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_02033F50
+FUN_02033F50: ; 0x02033F50
+ ldr r3, _02033F64 ; =0x027E0000
+ ldr r1, _02033F68 ; =0x00003FF8
+ mov r0, #0x1
+ ldr r2, [r3, r1]
+ orr r0, r2
+ str r0, [r3, r1]
+ ldr r3, _02033F6C ; =MI_WaitDma
+ mov r0, #0x3
+ bx r3
+ nop
+_02033F64: .word 0x027E0000
+_02033F68: .word 0x00003FF8
+_02033F6C: .word MI_WaitDma
+
+ thumb_func_start FUN_02033F70
+FUN_02033F70: ; 0x02033F70
+ push {r3-r7, lr}
+ sub sp, #0x28
+ add r4, r0, #0x0
+ str r2, [sp, #0xc]
+ cmp r1, #0x4
+ bhi _02033F92
+ add r0, r1, r1
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02033F88: ; jump table (using 16-bit offset)
+ .short _02033F92 - _02033F88 - 2; case 0
+ .short _02033F96 - _02033F88 - 2; case 1
+ .short _02033F9A - _02033F88 - 2; case 2
+ .short _02033F9E - _02033F88 - 2; case 3
+ .short _02033FA2 - _02033F88 - 2; case 4
+_02033F92:
+ mov r5, #0x1
+ b _02033FA4
+_02033F96:
+ mov r5, #0x2
+ b _02033FA4
+_02033F9A:
+ mov r5, #0x3
+ b _02033FA4
+_02033F9E:
+ mov r5, #0x4
+ b _02033FA4
+_02033FA2:
+ mov r5, #0x5
+_02033FA4:
+ mov r0, #0x0
+ add r1, r0, #0x0
+ bl FUN_0200E3A0
+ mov r0, #0x1
+ mov r1, #0x0
+ bl FUN_0200E3A0
+ mov r0, #0x1
+ blx OS_DisableIrqMask
+ ldr r1, _02034154 ; =FUN_02033F50
+ mov r0, #0x1
+ blx OS_SetIrqFunction
+ mov r0, #0x1
+ blx OS_EnableIrqMask
+ mov r0, #0x0
+ add r1, r0, #0x0
+ bl FUN_02015F10
+ mov r0, #0x0
+ add r1, r0, #0x0
+ bl FUN_02015F34
+ bl FUN_0201E6D8
+ bl FUN_0201E740
+ mov r2, #0x1
+ lsl r2, r2, #0x1a
+ ldr r1, [r2, #0x0]
+ ldr r0, _02034158 ; =0xFFFFE0FF
+ and r1, r0
+ str r1, [r2, #0x0]
+ ldr r2, _0203415C ; =0x04001000
+ ldr r1, [r2, #0x0]
+ and r0, r1
+ str r0, [r2, #0x0]
+ mov r0, #0x4
+ mov r1, #0x8
+ bl FUN_0201669C
+ ldr r0, _02034160 ; =0x021C4918
+ mov r1, #0x0
+ strb r1, [r0, #0x5]
+ bl FUN_0201E7A0
+ ldr r3, _02034164 ; =0x04000050
+ mov r1, #0x0
+ strh r1, [r3, #0x0]
+ ldr r0, _02034168 ; =0x04001050
+ sub r3, #0x50
+ strh r1, [r0, #0x0]
+ ldr r2, [r3, #0x0]
+ ldr r1, _0203416C ; =0xFFFF1FFF
+ sub r0, #0x50
+ and r2, r1
+ str r2, [r3, #0x0]
+ ldr r2, [r0, #0x0]
+ and r1, r2
+ str r1, [r0, #0x0]
+ ldr r0, _02034170 ; =0x020EECD0
+ bl FUN_0201E66C
+ add r0, r4, #0x0
+ bl FUN_02016B94
+ add r6, r0, #0x0
+ ldr r0, _02034174 ; =0x020EECA4
+ bl FUN_02016BBC
+ mov r1, #0x0
+ ldr r2, _02034178 ; =0x020EECB4
+ add r0, r6, #0x0
+ add r3, r1, #0x0
+ bl FUN_02016C18
+ add r0, r6, #0x0
+ mov r1, #0x0
+ bl FUN_02018744
+ mov r1, #0x0
+ str r1, [sp, #0x0]
+ ldr r2, _0203417C ; =0x000001F7
+ add r0, r6, #0x0
+ mov r3, #0x2
+ str r4, [sp, #0x4]
+ bl FUN_0200CB00
+ mov r0, #0x0
+ mov r1, #0x20
+ add r2, r4, #0x0
+ bl FUN_02002ED0
+ mov r0, #0x0
+ mov r1, #0x20
+ add r2, r0, #0x0
+ add r3, r4, #0x0
+ bl FUN_02017F18
+ ldr r1, _02034180 ; =0x00006C21
+ mov r0, #0x0
+ bl FUN_02017FE4
+ ldr r1, _02034180 ; =0x00006C21
+ mov r0, #0x4
+ bl FUN_02017FE4
+ mov r0, #0x1
+ mov r1, #0x1a
+ mov r2, #0xc8
+ add r3, r4, #0x0
+ bl FUN_0200A86C
+ str r0, [sp, #0x10]
+ mov r0, #0x6
+ lsl r0, r0, #0x6
+ add r1, r4, #0x0
+ bl FUN_020219F4
+ add r7, r0, #0x0
+ mov r0, #0x6
+ lsl r0, r0, #0x6
+ add r1, r4, #0x0
+ bl FUN_020219F4
+ str r0, [sp, #0x14]
+ bl FUN_0201BD5C
+ add r0, r4, #0x0
+ bl FUN_0200AA80
+ add r4, r0, #0x0
+ ldr r2, _02034184 ; =0x020EEC9C
+ add r0, r6, #0x0
+ add r1, sp, #0x18
+ bl FUN_02019150
+ mov r0, #0xd0
+ str r0, [sp, #0x0]
+ mov r0, #0x90
+ mov r2, #0x0
+ str r0, [sp, #0x4]
+ add r0, sp, #0x18
+ mov r1, #0xf
+ add r3, r2, #0x0
+ bl FUN_020196F4
+ ldr r2, _0203417C ; =0x000001F7
+ add r0, sp, #0x18
+ mov r1, #0x0
+ mov r3, #0x2
+ bl FUN_0200CCA4
+ mov r0, #0x2
+ str r0, [sp, #0x0]
+ mov r0, #0x1
+ str r0, [sp, #0x4]
+ ldr r2, [sp, #0xc]
+ add r0, r4, #0x0
+ mov r1, #0x0
+ mov r3, #0x5
+ bl FUN_0200AD38
+ ldr r0, [sp, #0x10]
+ ldr r2, [sp, #0x14]
+ add r1, r5, #0x0
+ bl FUN_0200A8E0
+ ldr r2, [sp, #0x14]
+ add r0, r4, #0x0
+ add r1, r7, #0x0
+ bl FUN_0200B7B8
+ mov r1, #0x0
+ str r1, [sp, #0x0]
+ str r1, [sp, #0x4]
+ add r0, sp, #0x18
+ add r2, r7, #0x0
+ add r3, r1, #0x0
+ str r1, [sp, #0x8]
+ bl FUN_0201BD84
+ add r0, r7, #0x0
+ bl FUN_02021A20
+ bl FUN_0201E788
+ mov r0, #0x0
+ bl FUN_0200E394
+ mov r0, #0x1
+ bl FUN_0200E394
+ mov r0, #0x0
+ mov r1, #0x3f
+ mov r2, #0x3
+ bl FUN_0200A274
+ add r0, sp, #0x18
+ bl FUN_02019178
+ ldr r0, [sp, #0x10]
+ bl FUN_0200A8B8
+ add r0, r4, #0x0
+ bl FUN_0200AB18
+ add r0, r6, #0x0
+ bl FUN_02016A18
+ add sp, #0x28
+ pop {r3-r7, pc}
+ nop
+_02034154: .word FUN_02033F50
+_02034158: .word 0xFFFFE0FF
+_0203415C: .word 0x04001000
+_02034160: .word 0x021C4918
+_02034164: .word 0x04000050
+_02034168: .word 0x04001050
+_0203416C: .word 0xFFFF1FFF
+_02034170: .word 0x020EECD0
+_02034174: .word 0x020EECA4
+_02034178: .word 0x020EECB4
+_0203417C: .word 0x000001F7
+_02034180: .word 0x00006C21
+_02034184: .word 0x020EEC9C
+
+ thumb_func_start FUN_02034188
+FUN_02034188: ; 0x02034188
+ push {r4-r7, lr}
+ sub sp, #0x24
+ add r4, r0, #0x0
+ mov r0, #0x0
+ add r1, r0, #0x0
+ bl FUN_0200E3A0
+ mov r0, #0x1
+ mov r1, #0x0
+ bl FUN_0200E3A0
+ bl FUN_02015EF4
+ mov r0, #0x0
+ add r1, r0, #0x0
+ bl FUN_02015F10
+ mov r0, #0x0
+ add r1, r0, #0x0
+ bl FUN_02015F34
+ bl FUN_0201E6D8
+ bl FUN_0201E740
+ mov r2, #0x1
+ lsl r2, r2, #0x1a
+ ldr r1, [r2, #0x0]
+ ldr r0, _02034368 ; =0xFFFFE0FF
+ and r1, r0
+ str r1, [r2, #0x0]
+ ldr r2, _0203436C ; =0x04001000
+ ldr r1, [r2, #0x0]
+ and r0, r1
+ str r0, [r2, #0x0]
+ mov r0, #0x4
+ mov r1, #0x8
+ bl FUN_0201669C
+ ldr r0, _02034370 ; =0x021C4918
+ mov r1, #0x0
+ strb r1, [r0, #0x5]
+ bl FUN_0201E7A0
+ ldr r3, _02034374 ; =0x04000050
+ mov r0, #0x0
+ strh r0, [r3, #0x0]
+ ldr r2, _02034378 ; =0x04001050
+ sub r3, #0x50
+ strh r0, [r2, #0x0]
+ ldr r1, [r3, #0x0]
+ ldr r0, _0203437C ; =0xFFFF1FFF
+ sub r2, #0x50
+ and r1, r0
+ str r1, [r3, #0x0]
+ ldr r1, [r2, #0x0]
+ and r0, r1
+ str r0, [r2, #0x0]
+ ldr r0, _02034380 ; =0x020EED2C
+ bl FUN_0201E66C
+ add r0, r4, #0x0
+ bl FUN_02016B94
+ str r0, [sp, #0x10]
+ ldr r0, _02034384 ; =0x020EED00
+ bl FUN_02016BBC
+ mov r1, #0x0
+ ldr r0, [sp, #0x10]
+ ldr r2, _02034388 ; =0x020EED10
+ add r3, r1, #0x0
+ bl FUN_02016C18
+ ldr r0, [sp, #0x10]
+ mov r1, #0x0
+ bl FUN_02018744
+ mov r1, #0x0
+ str r1, [sp, #0x0]
+ ldr r0, [sp, #0x10]
+ ldr r2, _0203438C ; =0x000001F7
+ mov r3, #0x2
+ str r4, [sp, #0x4]
+ bl FUN_0200CB00
+ mov r0, #0x0
+ mov r1, #0x20
+ add r2, r4, #0x0
+ bl FUN_02002ED0
+ mov r0, #0x0
+ mov r1, #0x20
+ add r2, r0, #0x0
+ add r3, r4, #0x0
+ bl FUN_02017F18
+ ldr r1, _02034390 ; =0x00006C21
+ mov r0, #0x0
+ bl FUN_02017FE4
+ ldr r1, _02034390 ; =0x00006C21
+ mov r0, #0x4
+ bl FUN_02017FE4
+ ldr r2, _02034394 ; =0x00000265
+ mov r0, #0x1
+ mov r1, #0x1a
+ add r3, r4, #0x0
+ bl FUN_0200A86C
+ str r0, [sp, #0xc]
+ mov r0, #0x6
+ lsl r0, r0, #0x6
+ add r1, r4, #0x0
+ bl FUN_020219F4
+ add r4, r0, #0x0
+ bl FUN_0201BD5C
+ ldr r0, [sp, #0x10]
+ ldr r2, _02034398 ; =0x020EECF8
+ add r1, sp, #0x14
+ bl FUN_02019150
+ mov r0, #0xd0
+ str r0, [sp, #0x0]
+ mov r0, #0x90
+ mov r2, #0x0
+ str r0, [sp, #0x4]
+ add r0, sp, #0x14
+ mov r1, #0xf
+ add r3, r2, #0x0
+ bl FUN_020196F4
+ ldr r2, _0203438C ; =0x000001F7
+ add r0, sp, #0x14
+ mov r1, #0x0
+ mov r3, #0x2
+ bl FUN_0200CCA4
+ ldr r0, [sp, #0xc]
+ mov r1, #0xf
+ add r2, r4, #0x0
+ bl FUN_0200A8E0
+ mov r1, #0x0
+ str r1, [sp, #0x0]
+ str r1, [sp, #0x4]
+ add r0, sp, #0x14
+ add r2, r4, #0x0
+ add r3, r1, #0x0
+ str r1, [sp, #0x8]
+ bl FUN_0201BD84
+ add r0, r4, #0x0
+ bl FUN_02021A20
+ bl FUN_0201E788
+ mov r0, #0x0
+ bl FUN_0200E394
+ mov r0, #0x1
+ bl FUN_0200E394
+ mov r0, #0x0
+ mov r1, #0x3f
+ mov r2, #0x3
+ bl FUN_0200A274
+ ldr r4, _0203439C ; =0x04000130
+ ldr r6, _020343A0 ; =0x027FFFA8
+ mov r7, #0x1
+_020342E4:
+ ldrh r1, [r4, #0x0]
+ ldrh r0, [r6, #0x0]
+ orr r1, r0
+ ldr r0, _020343A4 ; =0x00002FFF
+ eor r1, r0
+ and r0, r1
+ lsl r0, r0, #0x10
+ lsr r5, r0, #0x10
+ bl FUN_02000FE8
+ add r0, r5, #0x0
+ tst r0, r7
+ bne _02034308
+ mov r0, #0x1
+ add r1, r0, #0x0
+ blx OS_WaitIrq
+ b _020342E4
+_02034308:
+ add r0, sp, #0x14
+ bl FUN_02019178
+ ldr r0, [sp, #0xc]
+ bl FUN_0200A8B8
+ mov r0, #0x0
+ add r1, r0, #0x0
+ bl FUN_0201797C
+ mov r0, #0x1
+ mov r1, #0x0
+ bl FUN_0201797C
+ mov r0, #0x2
+ mov r1, #0x0
+ bl FUN_0201797C
+ mov r0, #0x3
+ mov r1, #0x0
+ bl FUN_0201797C
+ mov r0, #0x4
+ mov r1, #0x0
+ bl FUN_0201797C
+ mov r0, #0x5
+ mov r1, #0x0
+ bl FUN_0201797C
+ mov r0, #0x6
+ mov r1, #0x0
+ bl FUN_0201797C
+ mov r0, #0x7
+ mov r1, #0x0
+ bl FUN_0201797C
+ ldr r0, [sp, #0x10]
+ mov r1, #0x0
+ bl FUN_020178A0
+ ldr r0, [sp, #0x10]
+ bl FUN_02016A18
+ add sp, #0x24
+ pop {r4-r7, pc}
+ nop
+_02034368: .word 0xFFFFE0FF
+_0203436C: .word 0x04001000
+_02034370: .word 0x021C4918
+_02034374: .word 0x04000050
+_02034378: .word 0x04001050
+_0203437C: .word 0xFFFF1FFF
+_02034380: .word 0x020EED2C
+_02034384: .word 0x020EED00
+_02034388: .word 0x020EED10
+_0203438C: .word 0x000001F7
+_02034390: .word 0x00006C21
+_02034394: .word 0x00000265
+_02034398: .word 0x020EECF8
+_0203439C: .word 0x04000130
+_020343A0: .word 0x027FFFA8
+_020343A4: .word 0x00002FFF
+
+ thumb_func_start FUN_020343A8
+FUN_020343A8: ; 0x020343A8
+ push {r4-r7, lr}
+ sub sp, #0xc
+ add r4, r0, #0x0
+ str r2, [sp, #0x0]
+ mov r2, #0x0
+ strb r2, [r4, #0x1]
+ mov r0, #0xe1
+ ldr r7, _02034488 ; =0x0000070A
+ ldr r6, _0203448C ; =0x00000A8E
+ mov r12, r1
+ strb r2, [r4, #0x0]
+ add r3, r4, #0x0
+ add r5, r2, #0x0
+ lsl r0, r0, #0x2
+_020343C4:
+ add r1, r4, r2
+ strh r5, [r3, #0x2]
+ strb r5, [r1, r7]
+ strh r5, [r3, r6]
+ add r2, r2, #0x1
+ add r3, r3, #0x2
+ cmp r2, r0
+ blt _020343C4
+ ldr r0, _02034490 ; =0x00001196
+ mov r2, #0x0
+_020343D8:
+ add r1, r4, r5
+ add r5, r5, #0x1
+ strb r2, [r1, r0]
+ cmp r5, #0x10
+ blt _020343D8
+ mov r0, #0x29
+ mov r1, r12
+ mov r2, #0xb
+ bl FUN_02006528
+ add r6, r0, #0x0
+ ldrb r0, [r6, #0x0]
+ add r5, r6, #0x5
+ strb r0, [r4, #0x1]
+ ldrb r0, [r6, #0x1]
+ strb r0, [r4, #0x0]
+ ldrb r0, [r6, #0x2]
+ str r0, [sp, #0x8]
+ ldrb r0, [r6, #0x3]
+ str r0, [sp, #0x4]
+ ldrb r7, [r6, #0x4]
+ cmp r7, #0x10
+ bls _0203440A
+ bl ErrorHandling
+_0203440A:
+ ldr r1, _02034490 ; =0x00001196
+ add r0, r5, #0x0
+ add r1, r4, r1
+ add r2, r7, #0x0
+ blx MI_CpuCopy8
+ ldr r0, [sp, #0x8]
+ add r5, r5, r7
+ cmp r0, #0x0
+ beq _0203443A
+ ldrb r3, [r4, #0x1]
+ ldrb r2, [r4, #0x0]
+ add r0, r5, #0x0
+ add r1, r4, #0x2
+ mul r2, r3
+ lsl r2, r2, #0x1
+ blx MI_CpuCopy8
+ ldrb r1, [r4, #0x1]
+ ldrb r0, [r4, #0x0]
+ mul r0, r1
+ lsl r0, r0, #0x1
+ add r5, r5, r0
+ b _0203444E
+_0203443A:
+ ldrb r3, [r4, #0x1]
+ ldrb r2, [r4, #0x0]
+ ldr r0, [sp, #0x0]
+ add r1, r4, #0x2
+ lsl r0, r0, #0x10
+ mul r2, r3
+ lsr r0, r0, #0x10
+ lsl r2, r2, #0x1
+ blx MIi_CpuClear16
+_0203444E:
+ ldr r0, [sp, #0x4]
+ cmp r0, #0x0
+ beq _0203446C
+ ldrb r3, [r4, #0x1]
+ ldrb r2, [r4, #0x0]
+ ldr r1, _02034488 ; =0x0000070A
+ add r0, r5, #0x0
+ add r1, r4, r1
+ mul r2, r3
+ blx MI_CpuCopy8
+ ldrb r1, [r4, #0x1]
+ ldrb r0, [r4, #0x0]
+ mul r0, r1
+ add r5, r5, r0
+_0203446C:
+ ldrb r3, [r4, #0x1]
+ ldrb r2, [r4, #0x0]
+ ldr r1, _0203448C ; =0x00000A8E
+ add r0, r5, #0x0
+ mul r2, r3
+ add r1, r4, r1
+ lsl r2, r2, #0x1
+ blx MI_CpuCopy8
+ add r0, r6, #0x0
+ bl FUN_02016A18
+ add sp, #0xc
+ pop {r4-r7, pc}
+ .balign 4
+_02034488: .word 0x0000070A
+_0203448C: .word 0x00000A8E
+_02034490: .word 0x00001196
+
+ thumb_func_start FUN_02034494
+FUN_02034494: ; 0x02034494
+ push {r3, lr}
+ ldr r1, _020344A8 ; =0x000011AA
+ mov r0, #0xb
+ bl FUN_02016998
+ mov r1, #0x0
+ strb r1, [r0, #0x0]
+ strb r1, [r0, #0x1]
+ strb r1, [r0, #0x2]
+ pop {r3, pc}
+ .balign 4
+_020344A8: .word 0x000011AA
+
+ thumb_func_start FUN_020344AC
+FUN_020344AC: ; 0x020344AC
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ bl FUN_0203474C
+ add r6, r0, #0x0
+ add r0, r4, #0x4
+ add r1, r6, #0x0
+ add r2, r5, #0x0
+ bl FUN_020343A8
+ strb r6, [r4, #0x2]
+ ldrb r0, [r4, #0x4]
+ strb r0, [r4, #0x1]
+ ldrb r0, [r4, #0x5]
+ strb r0, [r4, #0x0]
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_020344D0
+FUN_020344D0: ; 0x020344D0
+ ldr r3, _020344D4 ; =FUN_02016A18
+ bx r3
+ .balign 4
+_020344D4: .word FUN_02016A18
+
+ thumb_func_start FUN_020344D8
+FUN_020344D8: ; 0x020344D8
+ push {r3-r5, lr}
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ ldrb r1, [r4, #0x0]
+ ldrb r0, [r4, #0x1]
+ mul r0, r1
+ cmp r5, r0
+ blt _020344EC
+ bl ErrorHandling
+_020344EC:
+ lsl r0, r5, #0x1
+ add r1, r4, r0
+ ldr r0, _020344F8 ; =0x00000A92
+ ldrh r0, [r1, r0]
+ pop {r3-r5, pc}
+ nop
+_020344F8: .word 0x00000A92
+
+ thumb_func_start FUN_020344FC
+FUN_020344FC: ; 0x020344FC
+ push {r4, lr}
+ add r4, r0, #0x0
+ bne _02034506
+ bl ErrorHandling
+_02034506:
+ ldrb r0, [r4, #0x0]
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0203450C
+FUN_0203450C: ; 0x0203450C
+ push {r4, lr}
+ add r4, r0, #0x0
+ bne _02034516
+ bl ErrorHandling
+_02034516:
+ ldrb r0, [r4, #0x1]
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0203451C
+FUN_0203451C: ; 0x0203451C
+ push {r3-r7, lr}
+ add r7, r0, #0x0
+ ldrb r0, [r7, #0x1]
+ add r5, r1, #0x0
+ add r4, r2, #0x0
+ ldrb r6, [r7, #0x0]
+ str r0, [sp, #0x0]
+ cmp r5, #0x0
+ blt _02034532
+ cmp r5, r6
+ blt _02034536
+_02034532:
+ bl ErrorHandling
+_02034536:
+ cmp r4, #0x0
+ blt _02034540
+ ldr r0, [sp, #0x0]
+ cmp r4, r0
+ blt _02034544
+_02034540:
+ bl ErrorHandling
+_02034544:
+ add r0, r4, #0x0
+ mul r0, r6
+ add r0, r5, r0
+ lsl r0, r0, #0x1
+ add r0, r7, r0
+ ldrh r0, [r0, #0x6]
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_02034554
+FUN_02034554: ; 0x02034554
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ ldrb r1, [r5, #0x0]
+ ldrb r0, [r5, #0x1]
+ mul r0, r1
+ cmp r4, #0x0
+ blt _02034568
+ cmp r4, r0
+ blt _0203456C
+_02034568:
+ bl ErrorHandling
+_0203456C:
+ lsl r0, r4, #0x1
+ add r0, r5, r0
+ ldrh r0, [r0, #0x6]
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_02034574
+FUN_02034574: ; 0x02034574
+ ldrb r0, [r0, #0x2]
+ bx lr
+
+ thumb_func_start FUN_02034578
+FUN_02034578: ; 0x02034578
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ ldr r0, [sp, #0x10]
+ add r4, r2, #0x0
+ add r6, r3, #0x0
+ cmp r4, r0
+ blt _0203458A
+ bl ErrorHandling
+_0203458A:
+ ldr r0, [sp, #0x10]
+ mul r0, r6
+ add r4, r4, r0
+ mov r0, #0xe1
+ lsl r0, r0, #0x2
+ cmp r4, r0
+ blt _0203459C
+ bl ErrorHandling
+_0203459C:
+ ldr r0, _020345A4 ; =0x0000070E
+ add r1, r5, r4
+ ldrb r0, [r1, r0]
+ pop {r4-r6, pc}
+ .balign 4
+_020345A4: .word 0x0000070E
+
+ thumb_func_start FUN_020345A8
+FUN_020345A8: ; 0x020345A8
+ push {r3-r5, lr}
+ ldr r1, _020345D8 ; =0x00000708
+ add r4, r0, #0x0
+ bl FUN_02016998
+ add r5, r0, #0x0
+ mov r0, #0x29
+ mov r1, #0x0
+ add r2, r4, #0x0
+ bl FUN_02006528
+ add r4, r0, #0x0
+ ldrb r1, [r4, #0x4]
+ add r0, r4, #0x5
+ ldr r2, _020345D8 ; =0x00000708
+ add r0, r0, r1
+ add r1, r5, #0x0
+ blx MI_CpuCopy8
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ add r0, r5, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+_020345D8: .word 0x00000708
+
+ thumb_func_start FUN_020345DC
+FUN_020345DC: ; 0x020345DC
+ push {r4, lr}
+ add r4, r0, #0x0
+ bne _020345E6
+ bl ErrorHandling
+_020345E6:
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_020345F0
+FUN_020345F0: ; 0x020345F0
+ mov r3, #0x1e
+ mul r3, r2
+ add r1, r1, r3
+ lsl r1, r1, #0x1
+ ldrh r0, [r0, r1]
+ bx lr
+
+ thumb_func_start FUN_020345FC
+FUN_020345FC: ; 0x020345FC
+ push {r3-r5, lr}
+ sub sp, #0x1fc
+ sub sp, #0x1fc
+ sub sp, #0x1fc
+ sub sp, #0x1fc
+ sub sp, #0x1fc
+ sub sp, #0x1fc
+ sub sp, #0x1fc
+ sub sp, #0x1fc
+ sub sp, #0x1c8
+ add r3, r0, #0x0
+ add r5, r1, #0x0
+ lsl r1, r3, #0x10
+ add r4, r2, #0x0
+ add r0, sp, #0x0
+ lsr r1, r1, #0x10
+ mov r2, #0x0
+ bl FUN_020343A8
+ add r0, sp, #0x0
+ ldrb r0, [r0, #0x1]
+ cmp r5, r0
+ blt _0203462E
+ bl ErrorHandling
+_0203462E:
+ add r0, sp, #0x0
+ ldrb r0, [r0, #0x0]
+ cmp r4, r0
+ blt _0203463A
+ bl ErrorHandling
+_0203463A:
+ add r0, sp, #0x0
+ ldrb r0, [r0, #0x1]
+ mul r0, r4
+ add r0, r5, r0
+ lsl r1, r0, #0x1
+ add r0, sp, #0x0
+ add r0, #0x2
+ ldrh r0, [r0, r1]
+ add sp, #0x1fc
+ add sp, #0x1fc
+ add sp, #0x1fc
+ add sp, #0x1fc
+ add sp, #0x1fc
+ add sp, #0x1fc
+ add sp, #0x1fc
+ add sp, #0x1fc
+ add sp, #0x1c8
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_02034660
+FUN_02034660: ; 0x02034660
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ bne _0203466C
+ bl ErrorHandling
+_0203466C:
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_020344D8
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_02034678
+FUN_02034678: ; 0x02034678
+ push {r4-r7}
+ ldr r1, _020346C4 ; =0x00000A92
+ ldrb r7, [r0, #0x0]
+ add r2, r0, r1
+ ldr r1, _020346C8 ; =0x0000070E
+ add r1, r0, r1
+ ldrb r0, [r0, #0x2]
+ cmp r0, #0x0
+ bne _020346BE
+ mov r0, #0x15
+ add r6, r7, #0x0
+ mul r6, r0
+ add r5, r6, #0x0
+ add r5, #0x17
+ mov r4, #0xb0
+ lsl r0, r5, #0x1
+ add r6, #0x18
+ strh r4, [r2, r0]
+ lsl r0, r6, #0x1
+ strh r4, [r2, r0]
+ mov r0, #0x16
+ add r3, r7, #0x0
+ mul r3, r0
+ add r0, r3, #0x0
+ add r0, #0x17
+ lsl r7, r0, #0x1
+ add r3, #0x18
+ strh r4, [r2, r7]
+ lsl r7, r3, #0x1
+ strh r4, [r2, r7]
+ mov r2, #0x2
+ strb r2, [r1, r5]
+ strb r2, [r1, r6]
+ strb r2, [r1, r0]
+ strb r2, [r1, r3]
+_020346BE:
+ pop {r4-r7}
+ bx lr
+ nop
+_020346C4: .word 0x00000A92
+_020346C8: .word 0x0000070E
+
+ thumb_func_start FUN_020346CC
+FUN_020346CC: ; 0x020346CC
+ push {r3-r4}
+ ldr r1, _0203470C ; =0x00000A92
+ add r2, r0, r1
+ ldrb r1, [r0, #0x0]
+ ldrb r0, [r0, #0x2]
+ cmp r0, #0x0
+ bne _02034706
+ mov r0, #0xf
+ mul r0, r1
+ add r0, #0x1c
+ mov r3, #0x77
+ lsl r0, r0, #0x1
+ strh r3, [r2, r0]
+ lsl r0, r1, #0x4
+ add r3, r0, #0x0
+ add r3, #0x1b
+ mov r4, #0x78
+ lsl r3, r3, #0x1
+ strh r4, [r2, r3]
+ add r3, r0, #0x0
+ add r3, #0x1c
+ add r0, r1, r0
+ add r0, #0x1b
+ mov r4, #0x79
+ lsl r3, r3, #0x1
+ strh r4, [r2, r3]
+ mov r3, #0x7a
+ lsl r0, r0, #0x1
+ strh r3, [r2, r0]
+_02034706:
+ pop {r3-r4}
+ bx lr
+ nop
+_0203470C: .word 0x00000A92
+
+ thumb_func_start FUN_02034710
+FUN_02034710: ; 0x02034710
+ push {r3, lr}
+ ldr r1, _02034720 ; =0x0000022F
+ cmp r0, r1
+ blo _0203471E
+ bl ErrorHandling
+ mov r0, #0x3
+_0203471E:
+ pop {r3, pc}
+ .balign 4
+_02034720: .word 0x0000022F
+
+ thumb_func_start FUN_02034724
+FUN_02034724: ; 0x02034724
+ push {r3, lr}
+ bl FUN_02034710
+ mov r1, #0x18
+ mul r1, r0
+ ldr r0, _02034734 ; =0x020EEDBC
+ ldrb r0, [r0, r1]
+ pop {r3, pc}
+ .balign 4
+_02034734: .word 0x020EEDBC
+
+ thumb_func_start FUN_02034738
+FUN_02034738: ; 0x02034738
+ push {r3, lr}
+ bl FUN_02034710
+ mov r1, #0x18
+ mul r1, r0
+ ldr r0, _02034748 ; =0x020EEDBD
+ ldrb r0, [r0, r1]
+ pop {r3, pc}
+ .balign 4
+_02034748: .word 0x020EEDBD
+
+ thumb_func_start FUN_0203474C
+FUN_0203474C: ; 0x0203474C
+ push {r3, lr}
+ bl FUN_02034710
+ mov r1, #0x18
+ mul r1, r0
+ ldr r0, _0203476C ; =0x020EEDBE
+ ldrh r0, [r0, r1]
+ cmp r0, #0x16
+ bne _02034768
+ ldr r1, _02034770 ; =0x020ECAC0
+ ldrb r1, [r1, #0x0]
+ cmp r1, #0xb
+ bne _02034768
+ mov r0, #0x17
+_02034768:
+ pop {r3, pc}
+ nop
+_0203476C: .word 0x020EEDBE
+_02034770: .word 0x020ECAC0
+
+ thumb_func_start FUN_02034774
+FUN_02034774: ; 0x02034774
+ push {r3, lr}
+ bl FUN_02034710
+ mov r1, #0x18
+ mul r1, r0
+ ldr r0, _02034784 ; =0x020EEDC4
+ ldrh r0, [r0, r1]
+ pop {r3, pc}
+ .balign 4
+_02034784: .word 0x020EEDC4
+
+ thumb_func_start FUN_02034788
+FUN_02034788: ; 0x02034788
+ push {r3, lr}
+ bl FUN_02034710
+ mov r1, #0x18
+ mul r1, r0
+ ldr r0, _02034798 ; =0x020EEDC0
+ ldrh r0, [r0, r1]
+ pop {r3, pc}
+ .balign 4
+_02034798: .word 0x020EEDC0
+
+ thumb_func_start FUN_0203479C
+FUN_0203479C: ; 0x0203479C
+ push {r3, lr}
+ bl FUN_02034710
+ mov r1, #0x18
+ mul r1, r0
+ ldr r0, _020347AC ; =0x020EEDC2
+ ldrh r0, [r0, r1]
+ pop {r3, pc}
+ .balign 4
+_020347AC: .word 0x020EEDC2
+
+ thumb_func_start FUN_020347B0
+FUN_020347B0: ; 0x020347B0
+ push {r3, lr}
+ bl FUN_02034710
+ mov r1, #0x18
+ mul r1, r0
+ ldr r0, _020347C0 ; =0x020EEDC6
+ ldrh r0, [r0, r1]
+ pop {r3, pc}
+ .balign 4
+_020347C0: .word 0x020EEDC6
+
+ thumb_func_start FUN_020347C4
+FUN_020347C4: ; 0x020347C4
+ push {r3, lr}
+ bl FUN_02034710
+ mov r1, #0x18
+ mul r1, r0
+ ldr r0, _020347D4 ; =0x020EEDC8
+ ldrh r0, [r0, r1]
+ pop {r3, pc}
+ .balign 4
+_020347D4: .word 0x020EEDC8
+
+ thumb_func_start FUN_020347D8
+FUN_020347D8: ; 0x020347D8
+ push {r3, lr}
+ bl FUN_02034710
+ mov r1, #0x18
+ mul r1, r0
+ ldr r0, _020347F4 ; =0x020EEDCA
+ ldrh r1, [r0, r1]
+ ldr r0, _020347F8 ; =0x0000FFFF
+ cmp r1, r0
+ beq _020347F0
+ mov r0, #0x1
+ pop {r3, pc}
+_020347F0:
+ mov r0, #0x0
+ pop {r3, pc}
+ .balign 4
+_020347F4: .word 0x020EEDCA
+_020347F8: .word 0x0000FFFF
+
+ thumb_func_start FUN_020347FC
+FUN_020347FC: ; 0x020347FC
+ push {r3, lr}
+ bl FUN_02034710
+ mov r1, #0x18
+ mul r1, r0
+ ldr r0, _0203480C ; =0x020EEDCA
+ ldrh r0, [r0, r1]
+ pop {r3, pc}
+ .balign 4
+_0203480C: .word 0x020EEDCA
+
+ thumb_func_start FUN_02034810
+FUN_02034810: ; 0x02034810
+ push {r3, lr}
+ bl FUN_02034710
+ mov r1, #0x18
+ mul r1, r0
+ ldr r0, _02034820 ; =0x020EEDCC
+ ldrh r0, [r0, r1]
+ pop {r3, pc}
+ .balign 4
+_02034820: .word 0x020EEDCC
+
+ thumb_func_start FUN_02034824
+FUN_02034824: ; 0x02034824
+ push {r3, lr}
+ bl FUN_02034710
+ mov r1, #0x18
+ mul r1, r0
+ ldr r0, _02034834 ; =0x020EEDCE
+ ldrh r0, [r0, r1]
+ pop {r3, pc}
+ .balign 4
+_02034834: .word 0x020EEDCE
+
+ thumb_func_start FUN_02034838
+FUN_02034838: ; 0x02034838
+ push {r3, lr}
+ bl FUN_02034710
+ mov r1, #0x18
+ mul r1, r0
+ ldr r0, _02034848 ; =0x020EEDD0
+ ldrb r0, [r0, r1]
+ pop {r3, pc}
+ .balign 4
+_02034848: .word 0x020EEDD0
+
+ thumb_func_start FUN_0203484C
+FUN_0203484C: ; 0x0203484C
+ push {r3, lr}
+ bl FUN_02034710
+ mov r1, #0x18
+ mul r1, r0
+ ldr r0, _0203485C ; =0x020EEDD1
+ ldrb r0, [r0, r1]
+ pop {r3, pc}
+ .balign 4
+_0203485C: .word 0x020EEDD1
+
+ thumb_func_start FUN_02034860
+FUN_02034860: ; 0x02034860
+ push {r3, lr}
+ bl FUN_02034710
+ mov r1, #0x18
+ mul r1, r0
+ ldr r0, _02034878 ; =0x020EEDBC
+ add r0, r0, r1
+ ldrb r0, [r0, #0x17]
+ lsl r0, r0, #0x1c
+ lsr r0, r0, #0x1c
+ pop {r3, pc}
+ nop
+_02034878: .word 0x020EEDBC
+
+ thumb_func_start FUN_0203487C
+FUN_0203487C: ; 0x0203487C
+ push {r3, lr}
+ bl FUN_02034710
+ mov r1, #0x18
+ mul r1, r0
+ ldr r0, _02034894 ; =0x020EEDBC
+ add r0, r0, r1
+ ldrb r0, [r0, #0x17]
+ lsl r0, r0, #0x19
+ lsr r0, r0, #0x1f
+ pop {r3, pc}
+ nop
+_02034894: .word 0x020EEDBC
+
+ thumb_func_start FUN_02034898
+FUN_02034898: ; 0x02034898
+ push {r3, lr}
+ bl FUN_02034710
+ mov r1, #0x18
+ mul r1, r0
+ ldr r0, _020348B0 ; =0x020EEDBC
+ add r0, r0, r1
+ ldrb r0, [r0, #0x17]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x1f
+ pop {r3, pc}
+ nop
+_020348B0: .word 0x020EEDBC
+
+ thumb_func_start FUN_020348B4
+FUN_020348B4: ; 0x020348B4
+ push {r3, lr}
+ bl FUN_02034710
+ mov r1, #0x18
+ mul r1, r0
+ ldr r0, _020348CC ; =0x020EEDBC
+ add r0, r0, r1
+ ldrb r0, [r0, #0x17]
+ lsl r0, r0, #0x1b
+ lsr r0, r0, #0x1f
+ pop {r3, pc}
+ nop
+_020348CC: .word 0x020EEDBC
+
+ thumb_func_start FUN_020348D0
+FUN_020348D0: ; 0x020348D0
+ push {r3, lr}
+ bl FUN_02034710
+ mov r1, #0x18
+ mul r1, r0
+ ldr r0, _020348E0 ; =0x020EEDD2
+ ldrb r0, [r0, r1]
+ pop {r3, pc}
+ .balign 4
+_020348E0: .word 0x020EEDD2
+
+ thumb_func_start FUN_020348E4
+FUN_020348E4: ; 0x020348E4
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl FUN_02034898
+ cmp r0, #0x0
+ bne _020348F4
+ mov r0, #0x0
+ pop {r4, pc}
+_020348F4:
+ add r0, r4, #0x0
+ bl FUN_020348D0
+ cmp r0, #0x1
+ beq _02034902
+ mov r0, #0x1
+ pop {r4, pc}
+_02034902:
+ mov r0, #0x0
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02034908
+FUN_02034908: ; 0x02034908
+ push {r3, lr}
+ bl FUN_0203474C
+ cmp r0, #0x0
+ bne _02034916
+ mov r0, #0x1
+ pop {r3, pc}
+_02034916:
+ mov r0, #0x0
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_0203491C
+FUN_0203491C: ; 0x0203491C
+ push {r3, lr}
+ bl FUN_020348D0
+ cmp r0, #0x5
+ bne _0203492A
+ mov r0, #0x1
+ pop {r3, pc}
+_0203492A:
+ mov r0, #0x0
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_02034930
+FUN_02034930: ; 0x02034930
+ push {r3, lr}
+ bl FUN_020348D0
+ cmp r0, #0x3
+ bne _0203493E
+ mov r0, #0x1
+ pop {r3, pc}
+_0203493E:
+ mov r0, #0x0
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_02034944
+FUN_02034944: ; 0x02034944
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl FUN_020348D0
+ cmp r0, #0x4
+ beq _0203495A
+ add r0, r4, #0x0
+ bl FUN_020348D0
+ cmp r0, #0x5
+ bne _0203495E
+_0203495A:
+ mov r0, #0x1
+ pop {r4, pc}
+_0203495E:
+ mov r0, #0x0
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02034964
+FUN_02034964: ; 0x02034964
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl FUN_020348D0
+ cmp r0, #0x1
+ beq _0203497A
+ add r0, r4, #0x0
+ bl FUN_020348D0
+ cmp r0, #0x2
+ bne _0203497E
+_0203497A:
+ mov r0, #0x1
+ pop {r4, pc}
+_0203497E:
+ mov r0, #0x0
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02034984
+FUN_02034984: ; 0x02034984
+ push {r3, lr}
+ bl FUN_0203491C
+ cmp r0, #0x0
+ beq _02034992
+ mov r0, #0x1
+ pop {r3, pc}
+_02034992:
+ mov r0, #0x0
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_02034998
+FUN_02034998: ; 0x02034998
+ ldr r1, _020349A8 ; =0x000001D2
+ cmp r0, r1
+ bne _020349A2
+ mov r0, #0x1
+ bx lr
+_020349A2:
+ mov r0, #0x0
+ bx lr
+ nop
+_020349A8: .word 0x000001D2
+
+ thumb_func_start FUN_020349AC
+FUN_020349AC: ; 0x020349AC
+ cmp r0, #0xdb
+ bne _020349B4
+ mov r0, #0x1
+ bx lr
+_020349B4:
+ mov r0, #0x0
+ bx lr
+
+ thumb_func_start FUN_020349B8
+FUN_020349B8: ; 0x020349B8
+ ldr r1, _020349C8 ; =0x0000011F
+ cmp r0, r1
+ bne _020349C2
+ mov r0, #0x1
+ bx lr
+_020349C2:
+ mov r0, #0x0
+ bx lr
+ nop
+_020349C8: .word 0x0000011F
+
+ thumb_func_start FUN_020349CC
+FUN_020349CC: ; 0x020349CC
+ cmp r0, #0xfd
+ bne _020349D4
+ mov r0, #0x1
+ bx lr
+_020349D4:
+ mov r0, #0x0
+ bx lr
+
+ thumb_func_start FUN_020349D8
+FUN_020349D8: ; 0x020349D8
+ cmp r0, #0xdc
+ bne _020349E0
+ mov r0, #0x1
+ bx lr
+_020349E0:
+ mov r0, #0x0
+ bx lr
+
+ thumb_func_start FUN_020349E4
+FUN_020349E4: ; 0x020349E4
+ ldr r3, _02034A00 ; =0x020EED54
+ mov r2, #0x0
+_020349E8:
+ ldrh r1, [r3, #0x0]
+ cmp r0, r1
+ bne _020349F2
+ mov r0, #0x1
+ bx lr
+_020349F2:
+ add r2, r2, #0x1
+ add r3, r3, #0x2
+ cmp r2, #0x12
+ blo _020349E8
+ mov r0, #0x0
+ bx lr
+ nop
+_02034A00: .word 0x020EED54
+
+ thumb_func_start FUN_02034A04
+FUN_02034A04: ; 0x02034A04
+ ldr r3, _02034A24 ; =0x020EED78
+ mov r2, #0x0
+_02034A08:
+ ldrh r1, [r3, #0x0]
+ cmp r0, r1
+ bne _02034A18
+ add r0, r2, #0x1
+ lsl r1, r0, #0x1
+ ldr r0, _02034A24 ; =0x020EED78
+ ldrh r0, [r0, r1]
+ bx lr
+_02034A18:
+ add r2, r2, #0x2
+ add r3, r3, #0x4
+ cmp r2, #0x22
+ blo _02034A08
+ mov r0, #0x0
+ bx lr
+ .balign 4
+_02034A24: .word 0x020EED78
+
+ thumb_func_start FUN_02034A28
+FUN_02034A28: ; 0x02034A28
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ ldr r0, [r5, #0x14]
+ add r4, r1, #0x0
+ cmp r0, #0x0
+ beq _02034A38
+ bl ErrorHandling
+_02034A38:
+ ldr r1, _02034A44 ; =0x00000AC8
+ add r0, r4, #0x0
+ bl FUN_02016998
+ str r0, [r5, #0x14]
+ pop {r3-r5, pc}
+ .balign 4
+_02034A44: .word 0x00000AC8
+
+ thumb_func_start FUN_02034A48
+FUN_02034A48: ; 0x02034A48
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r0, [r4, #0x14]
+ cmp r0, #0x0
+ bne _02034A56
+ bl ErrorHandling
+_02034A56:
+ ldr r0, [r4, #0x14]
+ bl FUN_02016A18
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02034A60
+FUN_02034A60: ; 0x02034A60
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ ldr r0, [r5, #0x14]
+ add r4, r1, #0x0
+ cmp r0, #0x0
+ bne _02034A70
+ bl ErrorHandling
+_02034A70:
+ ldr r0, [r5, #0x14]
+ add r1, r4, #0x0
+ bl FUN_02034A98
+ ldr r0, [r5, #0x14]
+ bl FUN_02034C50
+ mov r0, #0x92
+ ldr r1, [r5, #0x14]
+ lsl r0, r0, #0x4
+ add r0, r1, r0
+ add r1, r4, #0x0
+ bl FUN_02034CB4
+ ldr r0, [r5, #0x14]
+ add r1, r4, #0x0
+ bl FUN_02034CEC
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_02034A98
+FUN_02034A98: ; 0x02034A98
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r0, r1, #0x0
+ bl FUN_02034810
+ add r4, r0, #0x0
+ mov r0, #0x20
+ add r1, r4, #0x0
+ bl LoadFromNARC_7
+ mov r1, #0x2
+ lsl r1, r1, #0xa
+ cmp r0, r1
+ blo _02034AB8
+ bl ErrorHandling
+_02034AB8:
+ add r5, #0x20
+ add r0, r5, #0x0
+ mov r1, #0x20
+ add r2, r4, #0x0
+ bl LoadFromNARC
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_02034AC8
+FUN_02034AC8: ; 0x02034AC8
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ ldr r0, [r5, #0x14]
+ ldr r4, [r0, #0x4]
+ cmp r0, #0x0
+ bne _02034AD8
+ bl ErrorHandling
+_02034AD8:
+ cmp r4, #0x0
+ beq _02034AEC
+ ldr r1, [r5, #0x1c]
+ ldr r3, [r5, #0x14]
+ ldr r0, [r5, #0x34]
+ ldr r1, [r1, #0x0]
+ ldr r3, [r3, #0x14]
+ add r2, r4, #0x0
+ bl FUN_02057BAC
+_02034AEC:
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_02034AF0
+FUN_02034AF0: ; 0x02034AF0
+ ldr r0, [r0, #0x14]
+ ldr r0, [r0, #0x10]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02034AF8
+FUN_02034AF8: ; 0x02034AF8
+ ldr r0, [r0, #0x14]
+ ldr r0, [r0, #0x0]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02034B00
+FUN_02034B00: ; 0x02034B00
+ ldr r2, [r0, #0x14]
+ ldr r0, [r2, #0x8]
+ cmp r1, r0
+ blo _02034B0C
+ mov r0, #0x0
+ bx lr
+_02034B0C:
+ mov r0, #0xc
+ ldr r2, [r2, #0x18]
+ mul r0, r1
+ add r0, r2, r0
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02034B18
+FUN_02034B18: ; 0x02034B18
+ push {r4-r7}
+ ldr r5, [r0, #0x14]
+ mov r3, #0x0
+ ldr r0, [r5, #0x8]
+ cmp r0, #0x0
+ bls _02034B4A
+ ldr r6, [r5, #0x18]
+ add r4, r3, #0x0
+ add r0, r6, #0x0
+_02034B2A:
+ ldrh r7, [r0, #0x0]
+ cmp r1, r7
+ bne _02034B3E
+ add r7, r6, r4
+ ldrh r7, [r7, #0x2]
+ cmp r2, r7
+ bne _02034B3E
+ add r0, r3, #0x0
+ pop {r4-r7}
+ bx lr
+_02034B3E:
+ ldr r7, [r5, #0x8]
+ add r3, r3, #0x1
+ add r0, #0xc
+ add r4, #0xc
+ cmp r3, r7
+ blo _02034B2A
+_02034B4A:
+ mov r0, #0x0
+ mvn r0, r0
+ pop {r4-r7}
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02034B54
+FUN_02034B54: ; 0x02034B54
+ ldr r0, [r0, #0x14]
+ ldr r0, [r0, #0xc]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02034B5C
+FUN_02034B5C: ; 0x02034B5C
+ ldr r0, [r0, #0x14]
+ ldr r0, [r0, #0x1c]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02034B64
+FUN_02034B64: ; 0x02034B64
+ ldr r0, [r0, #0x14]
+ ldr r0, [r0, #0x4]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02034B6C
+FUN_02034B6C: ; 0x02034B6C
+ ldr r0, [r0, #0x14]
+ ldr r0, [r0, #0x14]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02034B74
+FUN_02034B74: ; 0x02034B74
+ push {r3-r7, lr}
+ ldr r0, [r0, #0x14]
+ add r4, r1, #0x0
+ ldr r5, [r0, #0x4]
+ add r7, r2, #0x0
+ add r1, r3, #0x0
+ mov r2, #0x0
+ ldr r3, [r0, #0x14]
+ cmp r5, #0x0
+ bls _02034BA4
+ add r6, r3, #0x0
+_02034B8A:
+ ldrh r0, [r6, #0x0]
+ cmp r4, r0
+ bne _02034B9C
+ lsl r0, r2, #0x5
+ add r0, r3, r0
+ strh r7, [r0, #0x18]
+ strh r1, [r0, #0x1a]
+ mov r0, #0x1
+ pop {r3-r7, pc}
+_02034B9C:
+ add r2, r2, #0x1
+ add r6, #0x20
+ cmp r2, r5
+ blo _02034B8A
+_02034BA4:
+ bl ErrorHandling
+ mov r0, #0x0
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_02034BAC
+FUN_02034BAC: ; 0x02034BAC
+ push {r4-r6, lr}
+ ldr r0, [r0, #0x14]
+ mov r3, #0x0
+ ldr r5, [r0, #0x4]
+ ldr r4, [r0, #0x14]
+ cmp r5, #0x0
+ bls _02034BD4
+ add r6, r4, #0x0
+_02034BBC:
+ ldrh r0, [r6, #0x0]
+ cmp r1, r0
+ bne _02034BCC
+ lsl r0, r3, #0x5
+ add r0, r4, r0
+ strh r2, [r0, #0xc]
+ mov r0, #0x1
+ pop {r4-r6, pc}
+_02034BCC:
+ add r3, r3, #0x1
+ add r6, #0x20
+ cmp r3, r5
+ blo _02034BBC
+_02034BD4:
+ bl ErrorHandling
+ mov r0, #0x0
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_02034BDC
+FUN_02034BDC: ; 0x02034BDC
+ push {r4-r6, lr}
+ ldr r0, [r0, #0x14]
+ mov r3, #0x0
+ ldr r5, [r0, #0x4]
+ ldr r4, [r0, #0x14]
+ cmp r5, #0x0
+ bls _02034C04
+ add r6, r4, #0x0
+_02034BEC:
+ ldrh r0, [r6, #0x0]
+ cmp r1, r0
+ bne _02034BFC
+ lsl r0, r3, #0x5
+ add r0, r4, r0
+ strh r2, [r0, #0x4]
+ mov r0, #0x1
+ pop {r4-r6, pc}
+_02034BFC:
+ add r3, r3, #0x1
+ add r6, #0x20
+ cmp r3, r5
+ blo _02034BEC
+_02034C04:
+ bl ErrorHandling
+ mov r0, #0x0
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_02034C0C
+FUN_02034C0C: ; 0x02034C0C
+ push {r3-r4}
+ ldr r0, [r0, #0x14]
+ ldr r4, [r0, #0x18]
+ mov r0, #0xc
+ mul r0, r1
+ strh r2, [r4, r0]
+ add r0, r4, r0
+ strh r3, [r0, #0x2]
+ mov r0, #0x1
+ pop {r3-r4}
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02034C24
+FUN_02034C24: ; 0x02034C24
+ ldr r0, [r0, #0x14]
+ ldr r3, [r0, #0x18]
+ mov r0, #0xc
+ mul r0, r1
+ add r0, r3, r0
+ strh r2, [r0, #0x4]
+ mov r0, #0x1
+ bx lr
+
+ thumb_func_start FUN_02034C34
+FUN_02034C34: ; 0x02034C34
+ push {r4-r6, lr}
+ add r5, r1, #0x0
+ add r4, r2, #0x0
+ add r6, r3, #0x0
+ bl FUN_02034AF0
+ mov r1, #0x14
+ mul r1, r5
+ add r0, r0, r1
+ str r4, [r0, #0x4]
+ str r6, [r0, #0x8]
+ mov r0, #0x1
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_02034C50
+FUN_02034C50: ; 0x02034C50
+ add r1, r0, #0x0
+ ldr r2, [r0, #0x20]
+ add r1, #0x20
+ add r1, r1, #0x4
+ str r2, [r0, #0x0]
+ cmp r2, #0x0
+ beq _02034C62
+ str r1, [r0, #0x10]
+ b _02034C66
+_02034C62:
+ mov r2, #0x0
+ str r2, [r0, #0x10]
+_02034C66:
+ ldr r3, [r0, #0x0]
+ mov r2, #0x14
+ mul r2, r3
+ add r3, r1, r2
+ ldr r2, [r1, r2]
+ add r1, r3, #0x4
+ str r2, [r0, #0x4]
+ cmp r2, #0x0
+ beq _02034C7C
+ str r1, [r0, #0x14]
+ b _02034C80
+_02034C7C:
+ mov r2, #0x0
+ str r2, [r0, #0x14]
+_02034C80:
+ ldr r2, [r0, #0x4]
+ lsl r2, r2, #0x5
+ add r3, r1, r2
+ ldr r2, [r1, r2]
+ add r1, r3, #0x4
+ str r2, [r0, #0x8]
+ cmp r2, #0x0
+ beq _02034C94
+ str r1, [r0, #0x18]
+ b _02034C98
+_02034C94:
+ mov r2, #0x0
+ str r2, [r0, #0x18]
+_02034C98:
+ ldr r3, [r0, #0x8]
+ mov r2, #0xc
+ mul r2, r3
+ add r3, r1, r2
+ ldr r1, [r1, r2]
+ str r1, [r0, #0xc]
+ cmp r1, #0x0
+ beq _02034CAE
+ add r1, r3, #0x4
+ str r1, [r0, #0x1c]
+ bx lr
+_02034CAE:
+ mov r1, #0x0
+ str r1, [r0, #0x1c]
+ bx lr
+
+ thumb_func_start FUN_02034CB4
+FUN_02034CB4: ; 0x02034CB4
+ push {r3-r5, lr}
+ mov r2, #0x6a
+ add r4, r1, #0x0
+ mov r1, #0x0
+ lsl r2, r2, #0x2
+ add r5, r0, #0x0
+ blx Call_FillMemWithValue
+ add r0, r4, #0x0
+ bl FUN_020347D8
+ cmp r0, #0x0
+ beq _02034CDE
+ add r0, r4, #0x0
+ bl FUN_020347FC
+ add r2, r0, #0x0
+ add r0, r5, #0x0
+ mov r1, #0x25
+ bl LoadFromNARC
+_02034CDE:
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_02034CE0
+FUN_02034CE0: ; 0x02034CE0
+ ldr r1, [r0, #0x14]
+ mov r0, #0x92
+ lsl r0, r0, #0x4
+ add r0, r1, r0
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02034CEC
+FUN_02034CEC: ; 0x02034CEC
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r0, r1, #0x0
+ bl FUN_0203479C
+ mov r1, #0x82
+ lsl r1, r1, #0x4
+ mov r2, #0x1
+ add r4, r0, #0x0
+ mov r0, #0x0
+ add r1, r5, r1
+ lsl r2, r2, #0x8
+ blx MIi_CpuClearFast
+ mov r0, #0xa
+ add r1, r4, #0x0
+ bl LoadFromNARC_7
+ mov r1, #0x1
+ lsl r1, r1, #0x8
+ cmp r0, r1
+ blo _02034D1C
+ bl ErrorHandling
+_02034D1C:
+ mov r0, #0x82
+ lsl r0, r0, #0x4
+ add r0, r5, r0
+ mov r1, #0xa
+ add r2, r4, #0x0
+ bl LoadFromNARC
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_02034D2C
+FUN_02034D2C: ; 0x02034D2C
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r0, [r4, #0x14]
+ cmp r0, #0x0
+ bne _02034D3A
+ bl ErrorHandling
+_02034D3A:
+ mov r0, #0x82
+ ldr r1, [r4, #0x14]
+ lsl r0, r0, #0x4
+ add r0, r1, r0
+ pop {r4, pc}
+
+ thumb_func_start FUN_02034D44
+FUN_02034D44: ; 0x02034D44
+ push {r4-r7}
+ ldr r0, [r0, #0x14]
+ mov r3, #0x0
+ ldr r4, [r0, #0x4]
+ cmp r4, #0x0
+ bls _02034D76
+ ldr r6, [r0, #0x14]
+ add r5, r3, #0x0
+ add r4, r6, #0x0
+_02034D56:
+ ldrh r7, [r4, #0x18]
+ cmp r1, r7
+ bne _02034D6A
+ add r7, r6, r5
+ ldrh r7, [r7, #0x1a]
+ cmp r2, r7
+ bne _02034D6A
+ mov r0, #0x0
+ pop {r4-r7}
+ bx lr
+_02034D6A:
+ ldr r7, [r0, #0x4]
+ add r3, r3, #0x1
+ add r4, #0x20
+ add r5, #0x20
+ cmp r3, r7
+ blo _02034D56
+_02034D76:
+ mov r0, #0x1
+ pop {r4-r7}
+ bx lr
+
+ thumb_func_start FUN_02034D7C
+FUN_02034D7C: ; 0x02034D7C
+ mov r0, #0xa0
+ bx lr
+
+ thumb_func_start FUN_02034D80
+FUN_02034D80: ; 0x02034D80
+ mov r0, #0x5
+ lsl r0, r0, #0xa
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02034D88
+FUN_02034D88: ; 0x02034D88
+ ldr r3, _02034D94 ; =MIi_CpuClear32
+ mov r2, #0x5
+ add r1, r0, #0x0
+ mov r0, #0x0
+ lsl r2, r2, #0xa
+ bx r3
+ .balign 4
+_02034D94: .word MIi_CpuClear32
+
+ thumb_func_start FUN_02034D98
+FUN_02034D98: ; 0x02034D98
+ push {r4, lr}
+ add r4, r0, #0x0
+ mov r1, #0x0
+ mov r2, #0xa0
+ blx Call_FillMemWithValue
+ add r0, r4, #0x0
+ add r0, #0x6c
+ bl FUN_0204ADE0
+ add r0, r4, #0x0
+ add r0, #0x8c
+ bl FUN_02055468
+ bl FUN_02034E8C
+ add r4, #0x68
+ strh r0, [r4, #0x0]
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02034DC0
+FUN_02034DC0: ; 0x02034DC0
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02034DC4
+FUN_02034DC4: ; 0x02034DC4
+ add r0, #0x14
+ bx lr
+
+ thumb_func_start FUN_02034DC8
+FUN_02034DC8: ; 0x02034DC8
+ add r0, #0x28
+ bx lr
+
+ thumb_func_start FUN_02034DCC
+FUN_02034DCC: ; 0x02034DCC
+ add r0, #0x50
+ bx lr
+
+ thumb_func_start FUN_02034DD0
+FUN_02034DD0: ; 0x02034DD0
+ add r0, #0x3c
+ bx lr
+
+ thumb_func_start FUN_02034DD4
+FUN_02034DD4: ; 0x02034DD4
+ add r3, r1, #0x0
+ add r2, r0, #0x0
+ ldmia r3!, {r0-r1}
+ add r2, #0x3c
+ stmia r2!, {r0-r1}
+ ldmia r3!, {r0-r1}
+ stmia r2!, {r0-r1}
+ ldr r0, [r3, #0x0]
+ str r0, [r2, #0x0]
+ bx lr
+
+ thumb_func_start FUN_02034DE8
+FUN_02034DE8: ; 0x02034DE8
+ add r0, #0x64
+ bx lr
+
+ thumb_func_start FUN_02034DEC
+FUN_02034DEC: ; 0x02034DEC
+ add r0, #0x66
+ ldrh r0, [r0, #0x0]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02034DF4
+FUN_02034DF4: ; 0x02034DF4
+ add r0, #0x66
+ strh r1, [r0, #0x0]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02034DFC
+FUN_02034DFC: ; 0x02034DFC
+ add r0, #0x68
+ ldrh r0, [r0, #0x0]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02034E04
+FUN_02034E04: ; 0x02034E04
+ add r0, #0x68
+ strh r1, [r0, #0x0]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02034E0C
+FUN_02034E0C: ; 0x02034E0C
+ add r0, #0x6c
+ bx lr
+
+ thumb_func_start FUN_02034E10
+FUN_02034E10: ; 0x02034E10
+ add r0, #0x6a
+ ldrb r0, [r0, #0x0]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02034E18
+FUN_02034E18: ; 0x02034E18
+ add r0, #0x6a
+ strb r1, [r0, #0x0]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02034E20
+FUN_02034E20: ; 0x02034E20
+ add r0, #0x8c
+ bx lr
+
+ thumb_func_start FUN_02034E24
+FUN_02034E24: ; 0x02034E24
+ add r0, #0x98
+ bx lr
+
+ thumb_func_start FUN_02034E28
+FUN_02034E28: ; 0x02034E28
+ add r0, #0x96
+ bx lr
+
+ thumb_func_start FUN_02034E2C
+FUN_02034E2C: ; 0x02034E2C
+ add r0, #0x94
+ bx lr
+
+ thumb_func_start FUN_02034E30
+FUN_02034E30: ; 0x02034E30
+ ldr r3, _02034E38 ; =FUN_02022610
+ mov r1, #0x6
+ bx r3
+ nop
+_02034E38: .word FUN_02022610
+
+ thumb_func_start FUN_02034E3C
+FUN_02034E3C: ; 0x02034E3C
+ ldr r3, _02034E44 ; =FUN_02022610
+ mov r1, #0xb
+ bx r3
+ nop
+_02034E44: .word FUN_02022610
+
+ thumb_func_start FUN_02034E48
+FUN_02034E48: ; 0x02034E48
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r0, [r4, #0xc]
+ bl FUN_02034E3C
+ add r2, r0, #0x0
+ ldr r1, [r4, #0x34]
+ add r0, r4, #0x0
+ mov r3, #0x40
+ bl FUN_02057800
+ pop {r4, pc}
+
+ thumb_func_start FUN_02034E60
+FUN_02034E60: ; 0x02034E60
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r0, [r4, #0xc]
+ bl FUN_02034E3C
+ add r1, r0, #0x0
+ ldr r0, [r4, #0x34]
+ mov r2, #0x40
+ bl FUN_0205785C
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02034E78
+FUN_02034E78: ; 0x02034E78
+ push {r3, lr}
+ cmp r0, #0x0
+ ble _02034E82
+ cmp r0, #0x14
+ bls _02034E88
+_02034E82:
+ bl ErrorHandling
+ mov r0, #0x1
+_02034E88:
+ sub r0, r0, #0x1
+ pop {r3, pc}
+
+ thumb_func_start FUN_02034E8C
+FUN_02034E8C: ; 0x02034E8C
+ mov r0, #0x1
+ bx lr
+
+ thumb_func_start FUN_02034E90
+FUN_02034E90: ; 0x02034E90
+ push {r4, lr}
+ add r4, r1, #0x0
+ bl FUN_02034E78
+ lsl r1, r0, #0x4
+ ldr r0, _02034EB8 ; =0x020F222A
+ ldrh r0, [r0, r1]
+ str r0, [r4, #0x0]
+ mov r0, #0x0
+ mvn r0, r0
+ str r0, [r4, #0x4]
+ ldr r0, _02034EBC ; =0x020F222C
+ ldrh r0, [r0, r1]
+ str r0, [r4, #0x8]
+ ldr r0, _02034EC0 ; =0x020F222E
+ ldrh r0, [r0, r1]
+ str r0, [r4, #0xc]
+ mov r0, #0x1
+ str r0, [r4, #0x10]
+ pop {r4, pc}
+ .balign 4
+_02034EB8: .word 0x020F222A
+_02034EBC: .word 0x020F222C
+_02034EC0: .word 0x020F222E
+
+ thumb_func_start FUN_02034EC4
+FUN_02034EC4: ; 0x02034EC4
+ push {r4, lr}
+ add r4, r1, #0x0
+ bl FUN_02034E78
+ lsl r1, r0, #0x4
+ ldr r0, _02034EEC ; =0x020F2224
+ ldrh r0, [r0, r1]
+ str r0, [r4, #0x0]
+ mov r0, #0x0
+ mvn r0, r0
+ str r0, [r4, #0x4]
+ ldr r0, _02034EF0 ; =0x020F2226
+ ldrh r0, [r0, r1]
+ str r0, [r4, #0x8]
+ ldr r0, _02034EF4 ; =0x020F2228
+ ldrh r0, [r0, r1]
+ str r0, [r4, #0xc]
+ mov r0, #0x0
+ str r0, [r4, #0x10]
+ pop {r4, pc}
+ .balign 4
+_02034EEC: .word 0x020F2224
+_02034EF0: .word 0x020F2226
+_02034EF4: .word 0x020F2228
+
+ thumb_func_start FUN_02034EF8
+FUN_02034EF8: ; 0x02034EF8
+ ldr r3, _02034F18 ; =0x020F2224
+ mov r2, #0x0
+_02034EFC:
+ ldrh r1, [r3, #0x0]
+ cmp r0, r1
+ bne _02034F0C
+ ldrb r1, [r3, #0xc]
+ cmp r1, #0x0
+ beq _02034F0C
+ add r0, r2, #0x1
+ bx lr
+_02034F0C:
+ add r2, r2, #0x1
+ add r3, #0x10
+ cmp r2, #0x14
+ blo _02034EFC
+ mov r0, #0x0
+ bx lr
+ .balign 4
+_02034F18: .word 0x020F2224
+
+ thumb_func_start FUN_02034F1C
+FUN_02034F1C: ; 0x02034F1C
+ ldr r3, _02034F3C ; =0x020F2224
+ mov r2, #0x0
+_02034F20:
+ ldrh r1, [r3, #0x6]
+ cmp r0, r1
+ bne _02034F30
+ ldrb r1, [r3, #0xc]
+ cmp r1, #0x0
+ beq _02034F30
+ add r0, r2, #0x1
+ bx lr
+_02034F30:
+ add r2, r2, #0x1
+ add r3, #0x10
+ cmp r2, #0x14
+ blo _02034F20
+ mov r0, #0x0
+ bx lr
+ .balign 4
+_02034F3C: .word 0x020F2224
+
+ thumb_func_start FUN_02034F40
+FUN_02034F40: ; 0x02034F40
+ push {r3-r6}
+ asr r3, r1, #0x4
+ lsr r3, r3, #0x1b
+ add r3, r1, r3
+ asr r1, r2, #0x4
+ lsr r1, r1, #0x1b
+ add r1, r2, r1
+ mov r4, #0x0
+ asr r2, r1, #0x5
+ ldr r5, _02034F84 ; =0x020F2224
+ asr r3, r3, #0x5
+ add r1, r4, #0x0
+_02034F58:
+ ldrh r6, [r5, #0x6]
+ cmp r0, r6
+ bne _02034F76
+ ldrh r6, [r5, #0x8]
+ add r4, r1, #0x1
+ lsr r6, r6, #0x5
+ cmp r3, r6
+ bne _02034F76
+ ldrh r6, [r5, #0xa]
+ lsr r6, r6, #0x5
+ cmp r2, r6
+ bne _02034F76
+ add r0, r4, #0x0
+ pop {r3-r6}
+ bx lr
+_02034F76:
+ add r1, r1, #0x1
+ add r5, #0x10
+ cmp r1, #0x14
+ blo _02034F58
+ add r0, r4, #0x0
+ pop {r3-r6}
+ bx lr
+ .balign 4
+_02034F84: .word 0x020F2224
+
+ thumb_func_start FUN_02034F88
+FUN_02034F88: ; 0x02034F88
+ push {r4, lr}
+ ldr r3, _02034FB8 ; =0x020F2224
+ mov r4, #0x0
+_02034F8E:
+ ldrh r2, [r3, #0x6]
+ cmp r1, r2
+ bne _02034FAE
+ ldrb r2, [r3, #0xd]
+ cmp r2, #0x0
+ beq _02034FAE
+ ldr r0, [r0, #0xc]
+ bl FUN_020462AC
+ ldr r2, _02034FBC ; =0x020F2232
+ lsl r3, r4, #0x4
+ ldrh r2, [r2, r3]
+ mov r1, #0x1
+ bl FUN_0205F2E4
+ pop {r4, pc}
+_02034FAE:
+ add r4, r4, #0x1
+ add r3, #0x10
+ cmp r4, #0x14
+ blo _02034F8E
+ pop {r4, pc}
+ .balign 4
+_02034FB8: .word 0x020F2224
+_02034FBC: .word 0x020F2232
+
+ thumb_func_start FUN_02034FC0
+FUN_02034FC0: ; 0x02034FC0
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r0, r1, #0x0
+ bl FUN_02034E78
+ add r4, r0, #0x0
+ ldr r0, [r5, #0xc]
+ bl FUN_020462AC
+ ldr r2, _02034FE0 ; =0x020F2232
+ lsl r3, r4, #0x4
+ ldrh r2, [r2, r3]
+ mov r1, #0x2
+ bl FUN_0205F2E4
+ pop {r3-r5, pc}
+ .balign 4
+_02034FE0: .word 0x020F2232
+
+ thumb_func_start FUN_02034FE4
+FUN_02034FE4: ; 0x02034FE4
+ push {r3-r7, lr}
+ add r7, r0, #0x0
+ add r0, r1, #0x0
+ bl FUN_02034838
+ add r4, r0, #0x0
+ cmp r4, #0x18
+ blt _0203505C
+ ldr r0, [r7, #0xc]
+ bl FUN_02023794
+ add r6, r0, #0x0
+ add r0, r6, #0x4
+ bl FUN_02012710
+ sub r5, r0, #0x1
+ bmi _0203500C
+ ldr r0, _02035060 ; =0x0000016E
+ cmp r5, r0
+ blt _02035010
+_0203500C:
+ bl ErrorHandling
+_02035010:
+ ldr r0, [r6, #0x8]
+ cmp r0, #0x2
+ bls _02035044
+ ldr r6, [r6, #0x4]
+ mov r0, #0x3
+ tst r0, r6
+ bne _0203502A
+ add r0, r6, #0x0
+ mov r1, #0x64
+ blx _u32_div_f
+ cmp r1, #0x0
+ bne _02035038
+_0203502A:
+ mov r1, #0x19
+ add r0, r6, #0x0
+ lsl r1, r1, #0x4
+ blx _u32_div_f
+ cmp r1, #0x0
+ bne _0203503C
+_02035038:
+ mov r0, #0x1
+ b _0203503E
+_0203503C:
+ mov r0, #0x0
+_0203503E:
+ cmp r0, #0x0
+ bne _02035044
+ add r5, r5, #0x1
+_02035044:
+ add r0, r7, #0x0
+ bl FUN_0204B33C
+ cmp r0, #0x0
+ beq _02035050
+ mov r5, #0x1
+_02035050:
+ lsl r0, r5, #0x2
+ sub r4, #0x18
+ add r0, r5, r0
+ add r1, r4, r0
+ ldr r0, _02035064 ; =0x020F2364
+ ldrb r0, [r0, r1]
+_0203505C:
+ pop {r3-r7, pc}
+ nop
+_02035060: .word 0x0000016E
+_02035064: .word 0x020F2364
+
+ thumb_func_start FUN_02035068
+FUN_02035068: ; 0x02035068
+ push {r3, lr}
+ ldr r0, [r0, #0x1c]
+ ldr r0, [r0, #0x0]
+ bl FUN_02034824
+ cmp r0, #0x0
+ beq _0203507A
+ mov r0, #0x1
+ pop {r3, pc}
+_0203507A:
+ mov r0, #0x0
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_02035080
+FUN_02035080: ; 0x02035080
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ bl FUN_02035254
+ add r4, r0, #0x0
+ ldr r0, [r5, #0xc]
+ bl FUN_020462AC
+ bl FUN_0205F214
+ cmp r0, #0x1
+ bne _020350A6
+ add r0, r5, #0x0
+ bl FUN_020352C4
+ mov r1, #0x7
+ lsl r1, r1, #0x6
+ str r0, [r4, r1]
+ b _020350E6
+_020350A6:
+ ldr r0, [r5, #0xc]
+ bl FUN_020462AC
+ bl FUN_0205F244
+ cmp r0, #0x1
+ bne _020350C2
+ add r0, r5, #0x0
+ bl FUN_020352C8
+ mov r1, #0x7
+ lsl r1, r1, #0x6
+ str r0, [r4, r1]
+ b _020350E6
+_020350C2:
+ add r0, r5, #0x0
+ bl FUN_02060144
+ cmp r0, #0x1
+ bne _020350DA
+ add r0, r5, #0x0
+ bl FUN_020352CC
+ mov r1, #0x7
+ lsl r1, r1, #0x6
+ str r0, [r4, r1]
+ b _020350E6
+_020350DA:
+ add r0, r5, #0x0
+ bl FUN_02035270
+ mov r1, #0x7
+ lsl r1, r1, #0x6
+ str r0, [r4, r1]
+_020350E6:
+ mov r0, #0x71
+ mov r1, #0x0
+ lsl r0, r0, #0x2
+ str r1, [r4, r0]
+ ldr r0, [r5, #0x38]
+ bl FUN_02055B30
+ cmp r0, #0x1
+ bne _02035106
+ ldr r0, [r5, #0x38]
+ bl FUN_020552F8
+ add r1, r0, #0x0
+ ldr r0, [r5, #0x38]
+ bl FUN_02055B8C
+_02035106:
+ ldr r1, _02035114 ; =FUN_020352E4
+ add r0, r5, #0x0
+ add r2, r4, #0x0
+ bl FUN_020463CC
+ pop {r3-r5, pc}
+ nop
+_02035114: .word FUN_020352E4
+
+ thumb_func_start FUN_02035118
+FUN_02035118: ; 0x02035118
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ bl FUN_02035254
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_020352D4
+ mov r1, #0x7
+ lsl r1, r1, #0x6
+ str r0, [r4, r1]
+ mov r2, #0x1
+ add r0, r1, #0x4
+ str r2, [r4, r0]
+ ldr r0, [r5, #0x38]
+ bl FUN_02055B30
+ cmp r0, #0x1
+ bne _0203514C
+ ldr r0, [r5, #0x38]
+ bl FUN_020552F8
+ add r1, r0, #0x0
+ ldr r0, [r5, #0x38]
+ bl FUN_02055B8C
+_0203514C:
+ ldr r1, _02035158 ; =FUN_020352E4
+ add r0, r5, #0x0
+ add r2, r4, #0x0
+ bl FUN_020463CC
+ pop {r3-r5, pc}
+ .balign 4
+_02035158: .word FUN_020352E4
+
+ thumb_func_start FUN_0203515C
+FUN_0203515C: ; 0x0203515C
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ bl FUN_02035254
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_020352DC
+ mov r1, #0x7
+ lsl r1, r1, #0x6
+ str r0, [r4, r1]
+ mov r2, #0x0
+ add r0, r1, #0x4
+ str r2, [r4, r0]
+ ldr r0, [r5, #0x38]
+ bl FUN_02055B30
+ cmp r0, #0x1
+ bne _02035190
+ ldr r0, [r5, #0x38]
+ bl FUN_020552F8
+ add r1, r0, #0x0
+ ldr r0, [r5, #0x38]
+ bl FUN_02055B8C
+_02035190:
+ ldr r1, _0203519C ; =FUN_020352E4
+ add r0, r5, #0x0
+ add r2, r4, #0x0
+ bl FUN_020463CC
+ pop {r3-r5, pc}
+ .balign 4
+_0203519C: .word FUN_020352E4
+
+ thumb_func_start FUN_020351A0
+FUN_020351A0: ; 0x020351A0
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ ldr r0, _0203524C ; =0x000005FD
+ bl FUN_020054C8
+ bl FUN_02035254
+ add r4, r0, #0x0
+ mov r0, #0x71
+ mov r1, #0x0
+ lsl r0, r0, #0x2
+ str r1, [r4, r0]
+ ldr r0, [r5, #0xc]
+ bl FUN_020462AC
+ bl FUN_0205F214
+ cmp r0, #0x1
+ bne _020351D4
+ add r0, r5, #0x0
+ bl FUN_020352C4
+ mov r1, #0x7
+ lsl r1, r1, #0x6
+ str r0, [r4, r1]
+ b _02035240
+_020351D4:
+ ldr r0, [r5, #0xc]
+ bl FUN_020462AC
+ bl FUN_0205F244
+ cmp r0, #0x1
+ bne _020351F0
+ add r0, r5, #0x0
+ bl FUN_020352C8
+ mov r1, #0x7
+ lsl r1, r1, #0x6
+ str r0, [r4, r1]
+ b _02035240
+_020351F0:
+ add r0, r5, #0x0
+ bl FUN_02060144
+ cmp r0, #0x1
+ bne _02035208
+ add r0, r5, #0x0
+ bl FUN_020352CC
+ mov r1, #0x7
+ lsl r1, r1, #0x6
+ str r0, [r4, r1]
+ b _02035240
+_02035208:
+ ldr r0, [r5, #0x6c]
+ cmp r0, #0x3
+ bne _0203521C
+ add r0, r5, #0x0
+ bl FUN_020352DC
+ mov r1, #0x7
+ lsl r1, r1, #0x6
+ str r0, [r4, r1]
+ b _02035240
+_0203521C:
+ cmp r0, #0x2
+ bne _02035234
+ add r0, r5, #0x0
+ bl FUN_020352D4
+ mov r1, #0x7
+ lsl r1, r1, #0x6
+ str r0, [r4, r1]
+ mov r2, #0x1
+ add r0, r1, #0x4
+ str r2, [r4, r0]
+ b _02035240
+_02035234:
+ add r0, r5, #0x0
+ bl FUN_02035270
+ mov r1, #0x7
+ lsl r1, r1, #0x6
+ str r0, [r4, r1]
+_02035240:
+ ldr r0, [r5, #0x10]
+ ldr r1, _02035250 ; =FUN_020352E4
+ add r2, r4, #0x0
+ bl FUN_020463EC
+ pop {r3-r5, pc}
+ .balign 4
+_0203524C: .word 0x000005FD
+_02035250: .word FUN_020352E4
+
+ thumb_func_start FUN_02035254
+FUN_02035254: ; 0x02035254
+ push {r3, lr}
+ mov r1, #0x2
+ mov r0, #0xb
+ lsl r1, r1, #0x8
+ bl FUN_02016998
+ mov r2, #0x0
+ strh r2, [r0, #0x2a]
+ mov r1, #0x7e
+ strh r2, [r0, #0x28]
+ lsl r1, r1, #0x2
+ str r2, [r0, r1]
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_02035270
+FUN_02035270: ; 0x02035270
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ ldr r0, [r5, #0xc]
+ mov r4, #0x0
+ bl FUN_02024DA0
+ bl FUN_02024D64
+ cmp r0, #0x0
+ bne _02035288
+ mov r0, #0x1
+ orr r4, r0
+_02035288:
+ ldr r0, [r5, #0xc]
+ bl FUN_020462AC
+ bl FUN_0205F388
+ cmp r0, #0x0
+ bne _0203529A
+ mov r0, #0x2
+ orr r4, r0
+_0203529A:
+ ldr r0, [r5, #0xc]
+ bl FUN_020462AC
+ bl FUN_0205ECE0
+ cmp r0, #0x0
+ bne _020352AC
+ mov r0, #0x4
+ orr r4, r0
+_020352AC:
+ ldr r0, [r5, #0x1c]
+ ldr r0, [r0, #0x0]
+ bl FUN_020349CC
+ cmp r0, #0x1
+ bne _020352BC
+ mov r0, #0x6
+ orr r4, r0
+_020352BC:
+ mov r0, #0x6
+ lsl r0, r0, #0x6
+ orr r0, r4
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_020352C4
+FUN_020352C4: ; 0x020352C4
+ mov r0, #0x90
+ bx lr
+
+ thumb_func_start FUN_020352C8
+FUN_020352C8: ; 0x020352C8
+ mov r0, #0x94
+ bx lr
+
+ thumb_func_start FUN_020352CC
+FUN_020352CC: ; 0x020352CC
+ ldr r0, _020352D0 ; =0x00000195
+ bx lr
+ .balign 4
+_020352D0: .word 0x00000195
+
+ thumb_func_start FUN_020352D4
+FUN_020352D4: ; 0x020352D4
+ mov r0, #0x11
+ lsl r0, r0, #0x4
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_020352DC
+FUN_020352DC: ; 0x020352DC
+ ldr r0, _020352E0 ; =0x00000191
+ bx lr
+ .balign 4
+_020352E0: .word 0x00000191
+
+ thumb_func_start FUN_020352E4
+FUN_020352E4: ; 0x020352E4
+ push {r4-r6, lr}
+ add r6, r0, #0x0
+ bl FUN_02046528
+ add r5, r0, #0x0
+ add r0, r6, #0x0
+ bl FUN_0204652C
+ add r4, r0, #0x0
+ ldrh r1, [r4, #0x2a]
+ cmp r1, #0xf
+ bhi _02035362
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #0x6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_02035308: ; jump table (using 16-bit offset)
+ .short _02035328 - _02035308 - 2; case 0
+ .short _02035358 - _02035308 - 2; case 1
+ .short _02035368 - _02035308 - 2; case 2
+ .short _02035370 - _02035308 - 2; case 3
+ .short _02035378 - _02035308 - 2; case 4
+ .short _02035380 - _02035308 - 2; case 5
+ .short _02035388 - _02035308 - 2; case 6
+ .short _02035390 - _02035308 - 2; case 7
+ .short _020353C0 - _02035308 - 2; case 8
+ .short _020353D6 - _02035308 - 2; case 9
+ .short _020353F6 - _02035308 - 2; case 10
+ .short _02035412 - _02035308 - 2; case 11
+ .short _02035398 - _02035308 - 2; case 12
+ .short _02035440 - _02035308 - 2; case 13
+ .short _02035478 - _02035308 - 2; case 14
+ .short _02035432 - _02035308 - 2; case 15
+_02035328:
+ ldr r0, [r5, #0x34]
+ bl FUN_02058780
+ mov r1, #0x73
+ lsl r1, r1, #0x2
+ add r0, r5, #0x0
+ add r1, r4, r1
+ bl FUN_0205CE80
+ mov r1, #0x7a
+ lsl r1, r1, #0x2
+ add r0, r5, #0x0
+ add r1, r4, r1
+ bl FUN_02063964
+ add r0, r6, #0x0
+ bl FUN_0203549C
+ add r0, r6, #0x0
+ bl FUN_02035734
+ mov r0, #0x1
+ strh r0, [r4, #0x2a]
+ b _02035484
+_02035358:
+ add r0, r6, #0x0
+ bl FUN_020358E4
+ cmp r0, #0x0
+ beq _02035364
+_02035362:
+ b _02035484
+_02035364:
+ mov r0, #0x0
+ pop {r4-r6, pc}
+_02035368:
+ add r0, r6, #0x0
+ bl FUN_02035CA0
+ b _02035484
+_02035370:
+ add r0, r6, #0x0
+ bl FUN_02035CDC
+ b _02035484
+_02035378:
+ add r0, r6, #0x0
+ bl FUN_020365F0
+ b _02035484
+_02035380:
+ add r0, r6, #0x0
+ bl FUN_02036644
+ b _02035484
+_02035388:
+ add r0, r6, #0x0
+ bl FUN_02036E08
+ b _02035484
+_02035390:
+ add r0, r6, #0x0
+ bl FUN_02036F1C
+ b _02035484
+_02035398:
+ add r0, r5, #0x0
+ bl FUN_020464A4
+ cmp r0, #0x0
+ beq _02035484
+ ldr r0, [r5, #0x34]
+ bl FUN_02058780
+ add r0, r6, #0x0
+ bl FUN_0203549C
+ add r0, r6, #0x0
+ bl FUN_02035734
+ mov r0, #0x1
+ bl FUN_021D7CA4
+ mov r0, #0xe
+ strh r0, [r4, #0x2a]
+ b _02035484
+_020353C0:
+ add r0, r5, #0x0
+ bl FUN_020464A4
+ cmp r0, #0x0
+ beq _02035484
+ mov r0, #0x1
+ bl FUN_021D7CA4
+ mov r0, #0x9
+ strh r0, [r4, #0x2a]
+ b _02035484
+_020353D6:
+ bl FUN_0200E308
+ cmp r0, #0x0
+ beq _02035484
+ add r0, r4, #0x0
+ add r1, r5, #0x0
+ bl FUN_0203598C
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ ldr r0, [r5, #0x34]
+ bl FUN_020587B0
+ mov r0, #0x1
+ pop {r4-r6, pc}
+_020353F6:
+ add r0, r5, #0x0
+ bl FUN_020464A4
+ cmp r0, #0x0
+ beq _02035484
+ ldr r0, [r5, #0x34]
+ bl FUN_02058780
+ mov r0, #0x1
+ bl FUN_021D7CA4
+ mov r0, #0xb
+ strh r0, [r4, #0x2a]
+ b _02035484
+_02035412:
+ bl FUN_0200E308
+ cmp r0, #0x0
+ beq _02035484
+ mov r2, #0x72
+ lsl r2, r2, #0x2
+ ldr r1, [r4, r2]
+ add r2, #0x30
+ ldr r2, [r4, r2]
+ add r0, r6, #0x0
+ bl FUN_020463EC
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ b _02035484
+_02035432:
+ bl FUN_02016A18
+ ldr r0, [r5, #0x34]
+ bl FUN_020587B0
+ mov r0, #0x1
+ pop {r4-r6, pc}
+_02035440:
+ add r1, r5, #0x0
+ bl FUN_0203598C
+ add r0, r4, #0x0
+ bl FUN_02035718
+ add r0, r4, #0x0
+ mov r1, #0x1
+ bl FUN_0200CCF8
+ add r0, r4, #0x0
+ bl FUN_02019178
+ add r0, r6, #0x0
+ bl FUN_020358A0
+ ldr r0, [r5, #0x8]
+ mov r1, #0x3
+ bl FUN_0201AC68
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ ldr r0, [r5, #0x34]
+ bl FUN_020587B0
+ mov r0, #0x1
+ pop {r4-r6, pc}
+_02035478:
+ bl FUN_0200E308
+ cmp r0, #0x0
+ beq _02035484
+ mov r0, #0x1
+ strh r0, [r4, #0x2a]
+_02035484:
+ ldr r0, [r4, #0x20]
+ cmp r0, #0x0
+ beq _02035496
+ add r0, r4, #0x0
+ bl FUN_02035BB0
+ ldr r0, [r4, #0x38]
+ bl FUN_0201FDEC
+_02035496:
+ mov r0, #0x0
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_0203549C
+FUN_0203549C: ; 0x0203549C
+ push {r3-r7, lr}
+ sub sp, #0x30
+ add r4, r0, #0x0
+ bl FUN_02046528
+ str r0, [sp, #0x1c]
+ add r0, r4, #0x0
+ bl FUN_0204652C
+ add r4, r0, #0x0
+ add r1, r4, #0x0
+ add r1, #0x30
+ bl FUN_0203566C
+ str r0, [sp, #0x14]
+ mov r0, #0x1
+ str r0, [sp, #0x0]
+ mov r0, #0xb
+ str r0, [sp, #0x4]
+ ldr r0, [sp, #0x14]
+ mov r2, #0x3
+ lsl r1, r0, #0x1
+ add r0, r0, r1
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x8]
+ mov r0, #0xc
+ str r0, [sp, #0xc]
+ ldr r0, _02035658 ; =0x0000023B
+ add r1, r4, #0x0
+ str r0, [sp, #0x10]
+ ldr r0, [sp, #0x1c]
+ mov r3, #0x14
+ ldr r0, [r0, #0x8]
+ bl FUN_02019064
+ mov r0, #0x1
+ str r0, [sp, #0x0]
+ mov r3, #0xb
+ ldr r0, [sp, #0x1c]
+ str r3, [sp, #0x4]
+ ldr r0, [r0, #0x8]
+ ldr r2, _0203565C ; =0x000003D9
+ mov r1, #0x3
+ bl FUN_0200CB00
+ ldr r2, _0203565C ; =0x000003D9
+ add r0, r4, #0x0
+ mov r1, #0x1
+ mov r3, #0xb
+ bl FUN_0200CCA4
+ ldr r2, _02035660 ; =0x00000143
+ mov r0, #0x0
+ mov r1, #0x1a
+ mov r3, #0xb
+ bl FUN_0200A86C
+ str r0, [sp, #0x18]
+ ldr r0, [sp, #0x14]
+ mov r1, #0xb
+ bl FUN_02012838
+ str r0, [r4, #0x24]
+ mov r5, #0x0
+ ldr r0, [sp, #0x14]
+ strh r5, [r4, #0x28]
+ cmp r0, #0x0
+ bls _020355BC
+_02035526:
+ add r0, r4, r5
+ add r0, #0x30
+ ldrb r3, [r0, #0x0]
+ cmp r3, #0x3
+ bne _02035594
+ mov r0, #0xb
+ bl FUN_0200AA80
+ add r6, r0, #0x0
+ mov r0, #0x8
+ mov r1, #0xb
+ bl FUN_020219F4
+ add r1, r4, r5
+ add r1, #0x30
+ ldrb r1, [r1, #0x0]
+ add r7, r0, #0x0
+ ldr r0, [sp, #0x18]
+ lsl r2, r1, #0x3
+ ldr r1, _02035664 ; =0x020F2ACC
+ ldr r1, [r1, r2]
+ bl FUN_0200A914
+ str r0, [sp, #0x20]
+ ldr r0, [sp, #0x1c]
+ ldr r0, [r0, #0xc]
+ bl FUN_020238F4
+ add r2, r0, #0x0
+ add r0, r6, #0x0
+ mov r1, #0x0
+ bl FUN_0200ABC0
+ ldr r2, [sp, #0x20]
+ add r0, r6, #0x0
+ add r1, r7, #0x0
+ bl FUN_0200B7B8
+ add r2, r4, r5
+ add r2, #0x30
+ ldrb r2, [r2, #0x0]
+ ldr r0, [r4, #0x24]
+ add r1, r7, #0x0
+ bl FUN_020128A0
+ ldr r0, [sp, #0x20]
+ bl FUN_02021A20
+ add r0, r7, #0x0
+ bl FUN_02021A20
+ add r0, r6, #0x0
+ bl FUN_0200AB18
+ b _020355A2
+_02035594:
+ ldr r2, _02035664 ; =0x020F2ACC
+ lsl r6, r3, #0x3
+ ldr r0, [r4, #0x24]
+ ldr r1, [sp, #0x18]
+ ldr r2, [r2, r6]
+ bl FUN_02012880
+_020355A2:
+ ldr r0, [sp, #0x1c]
+ add r0, #0x8c
+ ldr r1, [r0, #0x0]
+ add r0, r4, r5
+ add r0, #0x30
+ ldrb r0, [r0, #0x0]
+ cmp r1, r0
+ bne _020355B4
+ strh r5, [r4, #0x28]
+_020355B4:
+ ldr r0, [sp, #0x14]
+ add r5, r5, #0x1
+ cmp r5, r0
+ blo _02035526
+_020355BC:
+ ldrh r0, [r4, #0x28]
+ add r0, r4, r0
+ add r0, #0x30
+ ldrb r1, [r0, #0x0]
+ ldr r0, [sp, #0x1c]
+ add r0, #0x8c
+ str r1, [r0, #0x0]
+ ldr r0, [sp, #0x18]
+ bl FUN_0200A8B8
+ ldr r0, [r4, #0x24]
+ mov r1, #0x1
+ str r0, [sp, #0x24]
+ str r4, [sp, #0x28]
+ add r0, sp, #0x24
+ strb r1, [r0, #0x8]
+ strb r1, [r0, #0x9]
+ ldr r1, [sp, #0x14]
+ strb r1, [r0, #0xa]
+ ldrb r2, [r0, #0xb]
+ mov r1, #0xf
+ bic r2, r1
+ mov r1, #0x8
+ orr r1, r2
+ strb r1, [r0, #0xb]
+ ldrb r2, [r0, #0xb]
+ mov r1, #0x30
+ bic r2, r1
+ mov r1, #0x10
+ orr r1, r2
+ strb r1, [r0, #0xb]
+ ldr r1, [sp, #0x14]
+ ldrb r2, [r0, #0xb]
+ cmp r1, #0x4
+ blo _0203560E
+ mov r1, #0xc0
+ bic r2, r1
+ mov r1, #0x40
+ orr r1, r2
+ strb r1, [r0, #0xb]
+ b _02035614
+_0203560E:
+ mov r1, #0xc0
+ bic r2, r1
+ strb r2, [r0, #0xb]
+_02035614:
+ mov r0, #0xb
+ str r0, [sp, #0x0]
+ ldr r0, _02035668 ; =0x00000402
+ mov r1, #0x1c
+ str r0, [sp, #0x4]
+ ldrh r3, [r4, #0x28]
+ add r0, sp, #0x24
+ mov r2, #0x4
+ lsl r3, r3, #0x18
+ lsr r3, r3, #0x18
+ bl FUN_02001B8C
+ str r0, [r4, #0x20]
+ add r0, r4, #0x0
+ bl FUN_02019220
+ ldr r0, [sp, #0x1c]
+ ldr r0, [r0, #0xc]
+ bl FUN_020238F4
+ bl FUN_020239CC
+ add r3, r0, #0x0
+ add r0, r4, #0x0
+ add r4, #0x30
+ lsl r3, r3, #0x18
+ ldr r2, [sp, #0x14]
+ add r1, r4, #0x0
+ lsr r3, r3, #0x18
+ bl FUN_020359B8
+ add sp, #0x30
+ pop {r3-r7, pc}
+ nop
+_02035658: .word 0x0000023B
+_0203565C: .word 0x000003D9
+_02035660: .word 0x00000143
+_02035664: .word 0x020F2ACC
+_02035668: .word 0x00000402
+
+ thumb_func_start FUN_0203566C
+FUN_0203566C: ; 0x0203566C
+ push {r3-r4}
+ mov r3, #0x7
+ lsl r3, r3, #0x6
+ ldr r4, [r0, r3]
+ sub r3, #0xc0
+ mov r2, #0x0
+ tst r3, r4
+ bne _02035682
+ mov r3, #0x8
+ strb r3, [r1, #0x0]
+ add r2, r2, #0x1
+_02035682:
+ mov r3, #0x7
+ lsl r3, r3, #0x6
+ ldr r4, [r0, r3]
+ mov r3, #0x80
+ tst r3, r4
+ bne _02035694
+ mov r3, #0x7
+ strb r3, [r1, r2]
+ add r2, r2, #0x1
+_02035694:
+ mov r3, #0x7
+ lsl r3, r3, #0x6
+ ldr r4, [r0, r3]
+ mov r3, #0x1
+ tst r3, r4
+ bne _020356A6
+ mov r3, #0x0
+ strb r3, [r1, r2]
+ add r2, r2, #0x1
+_020356A6:
+ mov r3, #0x7
+ lsl r3, r3, #0x6
+ ldr r4, [r0, r3]
+ mov r3, #0x2
+ tst r3, r4
+ bne _020356B8
+ mov r3, #0x1
+ strb r3, [r1, r2]
+ add r2, r2, #0x1
+_020356B8:
+ mov r3, #0x7
+ lsl r3, r3, #0x6
+ ldr r4, [r0, r3]
+ mov r3, #0x4
+ tst r3, r4
+ bne _020356CA
+ mov r3, #0x2
+ strb r3, [r1, r2]
+ add r2, r2, #0x1
+_020356CA:
+ mov r3, #0x7
+ lsl r3, r3, #0x6
+ ldr r4, [r0, r3]
+ mov r3, #0x8
+ tst r3, r4
+ bne _020356DC
+ mov r3, #0x3
+ strb r3, [r1, r2]
+ add r2, r2, #0x1
+_020356DC:
+ mov r3, #0x7
+ lsl r3, r3, #0x6
+ ldr r4, [r0, r3]
+ mov r3, #0x10
+ tst r3, r4
+ bne _020356EE
+ mov r3, #0x4
+ strb r3, [r1, r2]
+ add r2, r2, #0x1
+_020356EE:
+ mov r3, #0x7
+ lsl r3, r3, #0x6
+ ldr r4, [r0, r3]
+ mov r3, #0x20
+ tst r3, r4
+ bne _02035700
+ mov r3, #0x5
+ strb r3, [r1, r2]
+ add r2, r2, #0x1
+_02035700:
+ mov r3, #0x7
+ lsl r3, r3, #0x6
+ ldr r3, [r0, r3]
+ mov r0, #0x40
+ tst r0, r3
+ bne _02035712
+ mov r0, #0x6
+ strb r0, [r1, r2]
+ add r2, r2, #0x1
+_02035712:
+ add r0, r2, #0x0
+ pop {r3-r4}
+ bx lr
+
+ thumb_func_start FUN_02035718
+FUN_02035718: ; 0x02035718
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl FUN_02035B78
+ ldr r0, [r4, #0x20]
+ mov r1, #0x0
+ bl FUN_02001C5C
+ ldr r0, [r4, #0x24]
+ bl FUN_02012870
+ mov r0, #0x0
+ str r0, [r4, #0x20]
+ pop {r4, pc}
+
+ thumb_func_start FUN_02035734
+FUN_02035734: ; 0x02035734
+ push {r3-r7, lr}
+ sub sp, #0x20
+ add r5, r0, #0x0
+ bl FUN_02046528
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_0204652C
+ add r5, r0, #0x0
+ ldr r0, [r4, #0xc]
+ bl FUN_020462AC
+ bl FUN_0205F214
+ cmp r0, #0x1
+ bne _0203575A
+ mov r6, #0x0
+ b _0203576C
+_0203575A:
+ ldr r0, [r4, #0xc]
+ bl FUN_020462AC
+ bl FUN_0205F244
+ cmp r0, #0x1
+ beq _0203576A
+ b _0203588E
+_0203576A:
+ mov r6, #0x1
+_0203576C:
+ mov r3, #0x1
+ str r3, [sp, #0x0]
+ mov r0, #0xc
+ str r0, [sp, #0x4]
+ mov r0, #0x4
+ str r0, [sp, #0x8]
+ mov r0, #0xd
+ str r0, [sp, #0xc]
+ ldr r0, _02035894 ; =0x0000032D
+ add r1, r5, #0x0
+ str r0, [sp, #0x10]
+ ldr r0, [r4, #0x8]
+ add r1, #0x10
+ mov r2, #0x3
+ bl FUN_02019064
+ mov r0, #0x1
+ str r0, [sp, #0x0]
+ mov r3, #0xb
+ str r3, [sp, #0x4]
+ ldr r0, [r4, #0x8]
+ ldr r2, _02035898 ; =0x000003D9
+ mov r1, #0x3
+ bl FUN_0200CB00
+ add r0, r5, #0x0
+ ldr r2, _02035898 ; =0x000003D9
+ add r0, #0x10
+ mov r1, #0x1
+ mov r3, #0xb
+ bl FUN_0200CCA4
+ add r0, r5, #0x0
+ add r0, #0x10
+ mov r1, #0xf
+ bl FUN_02019620
+ ldr r2, _0203589C ; =0x00000143
+ mov r0, #0x0
+ mov r1, #0x1a
+ mov r3, #0xb
+ bl FUN_0200A86C
+ str r0, [sp, #0x1c]
+ cmp r6, #0x0
+ bne _020357D0
+ mov r1, #0x9
+ bl FUN_0200A914
+ b _020357D6
+_020357D0:
+ mov r1, #0xa
+ bl FUN_0200A914
+_020357D6:
+ mov r1, #0x0
+ add r7, r0, #0x0
+ str r1, [sp, #0x0]
+ mov r0, #0xff
+ str r0, [sp, #0x4]
+ add r0, r5, #0x0
+ add r0, #0x10
+ add r2, r7, #0x0
+ add r3, r1, #0x0
+ str r1, [sp, #0x8]
+ bl FUN_0201BD84
+ add r0, r7, #0x0
+ bl FUN_02021A20
+ mov r0, #0xb
+ bl FUN_0200AA80
+ add r7, r0, #0x0
+ mov r0, #0x20
+ mov r1, #0xb
+ bl FUN_020219F4
+ str r0, [sp, #0x18]
+ ldr r0, [sp, #0x1c]
+ mov r1, #0xb
+ bl FUN_0200A914
+ str r0, [sp, #0x14]
+ cmp r6, #0x0
+ bne _02035834
+ ldr r0, [r4, #0xc]
+ bl FUN_02034E30
+ bl FUN_02034E24
+ mov r1, #0x0
+ add r2, r0, #0x0
+ str r1, [sp, #0x0]
+ mov r0, #0x1
+ str r0, [sp, #0x4]
+ ldrh r2, [r2, #0x0]
+ add r0, r7, #0x0
+ mov r3, #0x2
+ bl FUN_0200AD38
+ b _0203584C
+_02035834:
+ add r0, r4, #0x0
+ bl FUN_0204BAB0
+ mov r1, #0x0
+ add r2, r0, #0x0
+ str r1, [sp, #0x0]
+ mov r0, #0x1
+ str r0, [sp, #0x4]
+ add r0, r7, #0x0
+ mov r3, #0x2
+ bl FUN_0200AD38
+_0203584C:
+ ldr r1, [sp, #0x18]
+ ldr r2, [sp, #0x14]
+ add r0, r7, #0x0
+ bl FUN_0200B7B8
+ mov r0, #0x10
+ str r0, [sp, #0x0]
+ mov r0, #0xff
+ str r0, [sp, #0x4]
+ mov r1, #0x0
+ add r0, r5, #0x0
+ ldr r2, [sp, #0x18]
+ add r0, #0x10
+ add r3, r1, #0x0
+ str r1, [sp, #0x8]
+ bl FUN_0201BD84
+ ldr r0, [sp, #0x18]
+ bl FUN_02021A20
+ ldr r0, [sp, #0x14]
+ bl FUN_02021A20
+ add r0, r7, #0x0
+ bl FUN_0200AB18
+ ldr r0, [sp, #0x1c]
+ bl FUN_0200A8B8
+ add r5, #0x10
+ add r0, r5, #0x0
+ bl FUN_02019220
+_0203588E:
+ add sp, #0x20
+ pop {r3-r7, pc}
+ nop
+_02035894: .word 0x0000032D
+_02035898: .word 0x000003D9
+_0203589C: .word 0x00000143
+
+ thumb_func_start FUN_020358A0
+FUN_020358A0: ; 0x020358A0
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ bl FUN_02046528
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_0204652C
+ add r5, r0, #0x0
+ ldr r0, [r4, #0xc]
+ bl FUN_020462AC
+ bl FUN_0205F214
+ cmp r0, #0x0
+ bne _020358CE
+ ldr r0, [r4, #0xc]
+ bl FUN_020462AC
+ bl FUN_0205F244
+ cmp r0, #0x0
+ beq _020358E0
+_020358CE:
+ add r0, r5, #0x0
+ add r0, #0x10
+ mov r1, #0x1
+ bl FUN_0200CCF8
+ add r5, #0x10
+ add r0, r5, #0x0
+ bl FUN_02019178
+_020358E0:
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_020358E4
+FUN_020358E4: ; 0x020358E4
+ push {r3-r7, lr}
+ add r7, r0, #0x0
+ bl FUN_02046528
+ add r4, r0, #0x0
+ add r0, r7, #0x0
+ bl FUN_0204652C
+ add r5, r0, #0x0
+ ldr r0, [r5, #0x20]
+ bl FUN_02001E5C
+ add r6, r0, #0x0
+ mov r1, #0x5e
+ ldr r0, [r5, #0x20]
+ lsl r1, r1, #0x4
+ bl FUN_02001D2C
+ str r0, [r5, #0x2c]
+ ldr r0, [r5, #0x20]
+ bl FUN_02001E5C
+ strh r0, [r5, #0x28]
+ ldrh r1, [r5, #0x28]
+ cmp r6, r1
+ beq _0203593A
+ mov r0, #0x67
+ lsl r0, r0, #0x2
+ ldr r0, [r5, r0]
+ ldr r0, [r0, #0x0]
+ bl FUN_02035BE8
+ ldrh r2, [r5, #0x28]
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ bl FUN_02035C44
+ ldrh r0, [r5, #0x28]
+ add r4, #0x8c
+ add r0, r5, r0
+ add r0, #0x30
+ ldrb r0, [r0, #0x0]
+ str r0, [r4, #0x0]
+_0203593A:
+ ldrh r0, [r5, #0x28]
+ add r0, r0, #0x1
+ lsl r0, r0, #0x2
+ add r1, r5, r0
+ mov r0, #0x67
+ lsl r0, r0, #0x2
+ ldr r0, [r1, r0]
+ ldr r0, [r0, #0x0]
+ bl FUN_02035C78
+ mov r1, #0x1
+ ldr r2, [r5, #0x2c]
+ mvn r1, r1
+ cmp r2, r1
+ beq _02035960
+ add r0, r1, #0x1
+ cmp r2, r0
+ beq _02035982
+ b _02035966
+_02035960:
+ mov r0, #0xd
+ strh r0, [r5, #0x2a]
+ b _02035982
+_02035966:
+ ldr r0, _02035988 ; =0x020F2AD0
+ lsl r2, r2, #0x3
+ ldr r2, [r0, r2]
+ cmp r2, r1
+ bne _02035976
+ mov r0, #0xd
+ strh r0, [r5, #0x2a]
+ b _02035982
+_02035976:
+ add r0, r1, #0x1
+ cmp r2, r0
+ beq _02035982
+ add r0, r7, #0x0
+ blx r2
+ pop {r3-r7, pc}
+_02035982:
+ mov r0, #0x1
+ pop {r3-r7, pc}
+ nop
+_02035988: .word 0x020F2AD0
+
+ thumb_func_start FUN_0203598C
+FUN_0203598C: ; 0x0203598C
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ bl FUN_0202EDF8
+ cmp r0, #0x0
+ beq _020359B4
+ mov r0, #0x71
+ lsl r0, r0, #0x2
+ ldr r0, [r5, r0]
+ cmp r0, #0x0
+ beq _020359B4
+ ldr r0, [r4, #0x7c]
+ bl FUN_02052F74
+ bl FUN_02031B50
+ mov r0, #0x0
+ bl FUN_02052B74
+_020359B4:
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_020359B8
+FUN_020359B8: ; 0x020359B8
+ push {r4-r7, lr}
+ sub sp, #0xb4
+ ldr r4, _02035B60 ; =0x020F2AB4
+ str r3, [sp, #0x18]
+ add r3, sp, #0x9c
+ str r2, [sp, #0x14]
+ str r0, [sp, #0xc]
+ str r1, [sp, #0x10]
+ add r2, r3, #0x0
+ 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, [sp, #0xc]
+ add r1, r2, #0x0
+ add r0, #0x38
+ mov r2, #0x8
+ mov r3, #0xb
+ bl FUN_021D959C
+ mov r0, #0x2
+ str r0, [sp, #0x0]
+ mov r0, #0x1
+ str r0, [sp, #0x4]
+ ldr r0, _02035B64 ; =0x000034D8
+ mov r1, #0x42
+ str r0, [sp, #0x8]
+ ldr r0, [sp, #0xc]
+ mov r2, #0x5
+ add r0, #0x38
+ mov r3, #0x0
+ bl FUN_021D967C
+ ldr r0, _02035B64 ; =0x000034D8
+ mov r1, #0x42
+ str r0, [sp, #0x0]
+ ldr r0, [sp, #0xc]
+ mov r2, #0x1
+ add r0, #0x38
+ mov r3, #0x0
+ bl FUN_021D96F4
+ ldr r0, _02035B64 ; =0x000034D8
+ mov r2, #0x0
+ str r0, [sp, #0x0]
+ ldr r0, [sp, #0xc]
+ mov r1, #0x42
+ add r0, #0x38
+ add r3, r2, #0x0
+ bl FUN_021D9708
+ mov r0, #0x1
+ str r0, [sp, #0x0]
+ ldr r0, _02035B64 ; =0x000034D8
+ mov r1, #0x42
+ str r0, [sp, #0x4]
+ ldr r0, [sp, #0xc]
+ mov r2, #0x2
+ add r0, #0x38
+ mov r3, #0x0
+ bl FUN_021D971C
+ ldr r0, [sp, #0xc]
+ ldr r1, _02035B68 ; =0x020F2B14
+ add r0, #0x38
+ bl FUN_021D9820
+ mov r2, #0x67
+ ldr r1, [sp, #0xc]
+ lsl r2, r2, #0x2
+ str r0, [r1, r2]
+ add r0, r1, #0x0
+ ldr r0, [r0, r2]
+ ldrh r1, [r1, #0x28]
+ ldr r0, [r0, #0x0]
+ bl FUN_02035BE8
+ ldr r0, _02035B6C ; =0x000034D9
+ mov r1, #0x42
+ str r0, [sp, #0x0]
+ ldr r0, [sp, #0xc]
+ mov r2, #0x4
+ add r0, #0x38
+ mov r3, #0x0
+ bl FUN_021D96F4
+ ldr r0, _02035B6C ; =0x000034D9
+ mov r1, #0x42
+ str r0, [sp, #0x0]
+ ldr r0, [sp, #0xc]
+ mov r2, #0x3
+ add r0, #0x38
+ mov r3, #0x0
+ bl FUN_021D9708
+ mov r0, #0x1
+ str r0, [sp, #0x0]
+ ldr r0, _02035B6C ; =0x000034D9
+ mov r1, #0x42
+ str r0, [sp, #0x4]
+ ldr r0, [sp, #0xc]
+ mov r2, #0x6
+ add r0, #0x38
+ mov r3, #0x0
+ bl FUN_021D971C
+ ldr r0, [sp, #0x14]
+ mov r4, #0x0
+ cmp r0, #0x0
+ bls _02035B2C
+ ldr r5, [sp, #0xc]
+ ldr r3, _02035B70 ; =0x020F2B48
+ add r7, r4, #0x0
+ add r2, sp, #0x28
+ mov r6, #0x6
+_02035AA2:
+ ldmia r3!, {r0-r1}
+ stmia r2!, {r0-r1}
+ sub r6, r6, #0x1
+ bne _02035AA2
+ ldr r0, [r3, #0x0]
+ ldr r3, _02035B74 ; =0x020F2AA8
+ str r0, [r2, #0x0]
+ ldmia r3!, {r0-r1}
+ add r2, sp, #0x1c
+ stmia r2!, {r0-r1}
+ ldr r0, [r3, #0x0]
+ str r0, [r2, #0x0]
+_02035ABA:
+ add r6, sp, #0x28
+ add r3, sp, #0x68
+ mov r2, #0x6
+_02035AC0:
+ ldmia r6!, {r0-r1}
+ stmia r3!, {r0-r1}
+ sub r2, r2, #0x1
+ bne _02035AC0
+ ldr r0, [r6, #0x0]
+ add r1, sp, #0x68
+ str r0, [r3, #0x0]
+ mov r0, #0x2
+ ldrsh r0, [r1, r0]
+ add r0, r0, r7
+ strh r0, [r1, #0x2]
+ ldr r0, [sp, #0x10]
+ ldrb r2, [r0, r4]
+ cmp r2, #0x2
+ bne _02035AEA
+ ldr r0, [sp, #0x18]
+ cmp r0, #0x1
+ bne _02035AEA
+ mov r0, #0x1b
+ strh r0, [r1, #0x6]
+ b _02035AF2
+_02035AEA:
+ lsl r0, r2, #0x1
+ add r1, r2, r0
+ add r0, sp, #0x68
+ strh r1, [r0, #0x6]
+_02035AF2:
+ ldr r0, [sp, #0xc]
+ add r1, sp, #0x68
+ add r0, #0x38
+ bl FUN_021D9820
+ mov r1, #0x1a
+ lsl r1, r1, #0x4
+ add r2, sp, #0x5c
+ add r3, sp, #0x1c
+ str r0, [r5, r1]
+ ldmia r3!, {r0-r1}
+ add r6, r2, #0x0
+ stmia r2!, {r0-r1}
+ ldr r0, [r3, #0x0]
+ add r1, r6, #0x0
+ str r0, [r2, #0x0]
+ mov r0, #0x1a
+ lsl r0, r0, #0x4
+ ldr r0, [r5, r0]
+ mov r2, #0x1
+ ldr r0, [r0, #0x0]
+ bl FUN_02020074
+ ldr r0, [sp, #0x14]
+ add r4, r4, #0x1
+ add r7, #0x18
+ add r5, r5, #0x4
+ cmp r4, r0
+ blo _02035ABA
+_02035B2C:
+ ldr r0, [sp, #0xc]
+ mov r2, #0x1
+ ldrh r0, [r0, #0x28]
+ add r0, r0, #0x1
+ lsl r1, r0, #0x2
+ ldr r0, [sp, #0xc]
+ add r1, r0, r1
+ mov r0, #0x67
+ lsl r0, r0, #0x2
+ ldr r0, [r1, r0]
+ mov r1, #0x2
+ ldr r0, [r0, #0x0]
+ bl FUN_02035C18
+ ldr r0, [sp, #0x14]
+ mov r1, #0x6f
+ add r2, r0, #0x1
+ ldr r0, [sp, #0xc]
+ lsl r1, r1, #0x2
+ str r2, [r0, r1]
+ mov r0, #0x10
+ mov r1, #0x1
+ bl FUN_0201E6E4
+ add sp, #0xb4
+ pop {r4-r7, pc}
+ .balign 4
+_02035B60: .word 0x020F2AB4
+_02035B64: .word 0x000034D8
+_02035B68: .word 0x020F2B14
+_02035B6C: .word 0x000034D9
+_02035B70: .word 0x020F2B48
+_02035B74: .word 0x020F2AA8
+
+ thumb_func_start FUN_02035B78
+FUN_02035B78: ; 0x02035B78
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ mov r0, #0x6f
+ lsl r0, r0, #0x2
+ ldr r0, [r5, r0]
+ mov r4, #0x0
+ cmp r0, #0x0
+ bls _02035BA6
+ mov r7, #0x67
+ lsl r7, r7, #0x2
+ add r6, r7, #0x0
+ add r6, #0x20
+_02035B90:
+ lsl r0, r4, #0x2
+ add r0, r5, r0
+ ldr r0, [r0, r7]
+ bl FUN_0200C3DC
+ add r0, r4, #0x1
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+ ldr r0, [r5, r6]
+ cmp r4, r0
+ blo _02035B90
+_02035BA6:
+ add r5, #0x38
+ add r0, r5, #0x0
+ bl FUN_021D99F8
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_02035BB0
+FUN_02035BB0: ; 0x02035BB0
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ mov r0, #0x6f
+ lsl r0, r0, #0x2
+ ldr r0, [r5, r0]
+ mov r4, #0x0
+ cmp r0, #0x0
+ bls _02035BE4
+ mov r7, #0x67
+ lsl r7, r7, #0x2
+ add r6, r7, #0x0
+ add r6, #0x20
+_02035BC8:
+ lsl r0, r4, #0x2
+ add r0, r5, r0
+ ldr r0, [r0, r7]
+ mov r1, #0x1
+ ldr r0, [r0, #0x0]
+ lsl r1, r1, #0xc
+ bl FUN_020201E4
+ add r0, r4, #0x1
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+ ldr r0, [r5, r6]
+ cmp r4, r0
+ blo _02035BC8
+_02035BE4:
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_02035BE8
+FUN_02035BE8: ; 0x02035BE8
+ push {r3-r6, lr}
+ sub sp, #0xc
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ bl FUN_0202011C
+ add r6, r0, #0x0
+ add r3, sp, #0x0
+ ldmia r6!, {r0-r1}
+ add r2, r3, #0x0
+ stmia r3!, {r0-r1}
+ ldr r0, [r6, #0x0]
+ add r1, r2, #0x0
+ str r0, [r3, #0x0]
+ mov r0, #0x18
+ mul r0, r4
+ add r0, #0x14
+ lsl r0, r0, #0xc
+ str r0, [sp, #0x4]
+ add r0, r5, #0x0
+ bl FUN_02020044
+ add sp, #0xc
+ pop {r3-r6, pc}
+
+ thumb_func_start FUN_02035C18
+FUN_02035C18: ; 0x02035C18
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ add r6, r2, #0x0
+ bl FUN_020201DC
+ mov r1, #0x3
+ blx _u32_div_f
+ add r2, r0, #0x0
+ lsl r1, r2, #0x1
+ add r1, r2, r1
+ add r0, r5, #0x0
+ add r1, r4, r1
+ bl FUN_02020130
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ bl FUN_0202027C
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_02035C44
+FUN_02035C44: ; 0x02035C44
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r0, r1, #0x1
+ lsl r0, r0, #0x2
+ add r1, r5, r0
+ mov r0, #0x67
+ lsl r0, r0, #0x2
+ ldr r0, [r1, r0]
+ mov r1, #0x0
+ add r4, r2, #0x0
+ ldr r0, [r0, #0x0]
+ add r2, r1, #0x0
+ bl FUN_02035C18
+ add r0, r4, #0x1
+ lsl r0, r0, #0x2
+ add r1, r5, r0
+ mov r0, #0x67
+ lsl r0, r0, #0x2
+ ldr r0, [r1, r0]
+ mov r1, #0x1
+ ldr r0, [r0, #0x0]
+ add r2, r1, #0x0
+ bl FUN_02035C18
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_02035C78
+FUN_02035C78: ; 0x02035C78
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl FUN_020201DC
+ mov r1, #0x3
+ blx _u32_div_f
+ cmp r1, #0x1
+ bne _02035C9E
+ add r0, r4, #0x0
+ bl FUN_02020388
+ cmp r0, #0x0
+ bne _02035C9E
+ add r0, r4, #0x0
+ mov r1, #0x2
+ mov r2, #0x1
+ bl FUN_02035C18
+_02035C9E:
+ pop {r4, pc}
+
+ thumb_func_start FUN_02035CA0
+FUN_02035CA0: ; 0x02035CA0
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ bl FUN_0200E308
+ cmp r0, #0x0
+ beq _02035CD8
+ add r0, r5, #0x0
+ bl FUN_02046528
+ add r0, r5, #0x0
+ bl FUN_0204652C
+ add r4, r0, #0x0
+ bl FUN_02035718
+ add r0, r4, #0x0
+ bl FUN_02019178
+ add r0, r5, #0x0
+ bl FUN_020358A0
+ mov r1, #0x72
+ lsl r1, r1, #0x2
+ ldr r1, [r4, r1]
+ add r0, r5, #0x0
+ blx r1
+ mov r0, #0x3
+ strh r0, [r4, #0x2a]
+_02035CD8:
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_02035CDC
+FUN_02035CDC: ; 0x02035CDC
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ bl FUN_02046528
+ add r6, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_0204652C
+ add r4, r0, #0x0
+ add r0, r6, #0x0
+ bl FUN_0204647C
+ cmp r0, #0x0
+ bne _02035D02
+ mov r1, #0x72
+ lsl r1, r1, #0x2
+ ldr r1, [r4, r1]
+ add r0, r5, #0x0
+ blx r1
+_02035D02:
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_02035D04
+FUN_02035D04: ; 0x02035D04
+ mov r2, #0x72
+ lsl r2, r2, #0x2
+ str r1, [r0, r2]
+ mov r1, #0x3
+ strh r1, [r0, #0x2a]
+ bx lr
+
+ thumb_func_start FUN_02035D10
+FUN_02035D10: ; 0x02035D10
+ push {r4, lr}
+ bl FUN_0204652C
+ add r4, r0, #0x0
+ mov r0, #0x0
+ bl FUN_021D7CA4
+ mov r0, #0x72
+ ldr r1, _02035D30 ; =FUN_02035D34
+ lsl r0, r0, #0x2
+ str r1, [r4, r0]
+ mov r0, #0x2
+ strh r0, [r4, #0x2a]
+ mov r0, #0x1
+ pop {r4, pc}
+ nop
+_02035D30: .word FUN_02035D34
+
+ thumb_func_start FUN_02035D34
+FUN_02035D34: ; 0x02035D34
+ push {r3-r7, lr}
+ sub sp, #0x8
+ add r4, r0, #0x0
+ bl FUN_02046528
+ add r5, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_0204652C
+ add r6, r0, #0x0
+ mov r0, #0xb
+ mov r1, #0x20
+ bl FUN_02016998
+ add r4, r0, #0x0
+ ldr r0, [r5, #0xc]
+ bl FUN_02024DA0
+ str r0, [sp, #0x0]
+ ldr r0, [r5, #0xc]
+ bl FUN_020238F4
+ str r0, [sp, #0x4]
+ ldr r0, [r5, #0xc]
+ bl FUN_020462AC
+ add r7, r0, #0x0
+ ldr r0, [sp, #0x0]
+ str r0, [r4, #0x0]
+ ldr r0, [sp, #0x4]
+ str r0, [r4, #0x4]
+ add r0, r5, #0x0
+ bl FUN_0204B2A4
+ str r0, [r4, #0x8]
+ add r0, r7, #0x0
+ mov r1, #0x0
+ bl FUN_0205F524
+ str r0, [r4, #0xc]
+ add r0, r7, #0x0
+ mov r1, #0x1
+ bl FUN_0205F524
+ str r0, [r4, #0x10]
+ add r0, r7, #0x0
+ mov r1, #0x2
+ bl FUN_0205F524
+ str r0, [r4, #0x14]
+ add r0, r7, #0x0
+ mov r1, #0x3
+ bl FUN_0205F524
+ str r0, [r4, #0x18]
+ add r0, r5, #0x0
+ add r0, #0xb0
+ ldr r0, [r0, #0x0]
+ add r1, r4, #0x0
+ str r0, [r4, #0x1c]
+ add r0, r5, #0x0
+ bl FUN_02038690
+ mov r0, #0x7e
+ lsl r0, r0, #0x2
+ str r4, [r6, r0]
+ ldr r1, _02035DC4 ; =FUN_02035DC8
+ sub r0, #0x30
+ str r1, [r6, r0]
+ mov r0, #0x0
+ add sp, #0x8
+ pop {r3-r7, pc}
+ .balign 4
+_02035DC4: .word FUN_02035DC8
+
+ thumb_func_start FUN_02035DC8
+FUN_02035DC8: ; 0x02035DC8
+ push {r3-r5, lr}
+ add r4, r0, #0x0
+ bl FUN_02046528
+ add r5, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_0204652C
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_0204649C
+ mov r0, #0x7e
+ lsl r0, r0, #0x2
+ ldr r1, [r4, r0]
+ cmp r1, #0x0
+ beq _02035DF0
+ mov r0, #0xb
+ bl FUN_02016A8C
+_02035DF0:
+ mov r0, #0xc
+ strh r0, [r4, #0x2a]
+ mov r0, #0x0
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_02035DF8
+FUN_02035DF8: ; 0x02035DF8
+ push {r4, lr}
+ bl FUN_0204652C
+ add r4, r0, #0x0
+ mov r0, #0x0
+ bl FUN_021D7CA4
+ mov r0, #0x72
+ ldr r1, _02035E18 ; =FUN_02035E1C
+ lsl r0, r0, #0x2
+ str r1, [r4, r0]
+ mov r0, #0x2
+ strh r0, [r4, #0x2a]
+ mov r0, #0x1
+ pop {r4, pc}
+ nop
+_02035E18: .word FUN_02035E1C
+
+ thumb_func_start FUN_02035E1C
+FUN_02035E1C: ; 0x02035E1C
+ push {r3-r5, lr}
+ add r4, r0, #0x0
+ bl FUN_02046528
+ add r5, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_0204652C
+ mov r1, #0x7a
+ add r4, r0, #0x0
+ lsl r1, r1, #0x2
+ add r0, r5, #0x0
+ add r1, r4, r1
+ mov r2, #0x0
+ bl FUN_020379C8
+ mov r1, #0x7e
+ lsl r1, r1, #0x2
+ str r0, [r4, r1]
+ ldr r0, _02035E4C ; =FUN_02035E50
+ sub r1, #0x30
+ str r0, [r4, r1]
+ mov r0, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+_02035E4C: .word FUN_02035E50
+
+ thumb_func_start FUN_02035E50
+FUN_02035E50: ; 0x02035E50
+ push {r4-r7, lr}
+ sub sp, #0xc
+ add r7, r0, #0x0
+ bl FUN_02046528
+ add r5, r0, #0x0
+ add r0, r7, #0x0
+ bl FUN_0204652C
+ add r4, r0, #0x0
+ mov r0, #0xb
+ mov r1, #0x40
+ bl FUN_02016998
+ mov r1, #0x7e
+ lsl r1, r1, #0x2
+ ldr r1, [r4, r1]
+ mov r2, #0x40
+ add r6, r0, #0x0
+ blx memcpy
+ mov r0, #0x7e
+ lsl r0, r0, #0x2
+ ldr r0, [r4, r0]
+ bl FUN_02016A18
+ add r0, r6, #0x0
+ add r0, #0x23
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x17
+ bls _02035E90
+ b _020361E6
+_02035E90:
+ add r1, r0, r0
+ add r1, pc
+ ldrh r1, [r1, #0x6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_02035E9C: ; jump table (using 16-bit offset)
+ .short _020361E6 - _02035E9C - 2; case 0
+ .short _02035ECC - _02035E9C - 2; case 1
+ .short _020361E6 - _02035E9C - 2; case 2
+ .short _020360EA - _02035E9C - 2; case 3
+ .short _02035F4A - _02035E9C - 2; case 4
+ .short _02035FD0 - _02035E9C - 2; case 5
+ .short _02036056 - _02035E9C - 2; case 6
+ .short _020360AC - _02035E9C - 2; case 7
+ .short _02036144 - _02035E9C - 2; case 8
+ .short _02036170 - _02035E9C - 2; case 9
+ .short _020361CA - _02035E9C - 2; case 10
+ .short _020361A4 - _02035E9C - 2; case 11
+ .short _020361A4 - _02035E9C - 2; case 12
+ .short _020361A4 - _02035E9C - 2; case 13
+ .short _020361A4 - _02035E9C - 2; case 14
+ .short _020361A4 - _02035E9C - 2; case 15
+ .short _020361A4 - _02035E9C - 2; case 16
+ .short _020361A4 - _02035E9C - 2; case 17
+ .short _020361A4 - _02035E9C - 2; case 18
+ .short _020361A4 - _02035E9C - 2; case 19
+ .short _020361A4 - _02035E9C - 2; case 20
+ .short _020361A4 - _02035E9C - 2; case 21
+ .short _020361A4 - _02035E9C - 2; case 22
+ .short _020361A4 - _02035E9C - 2; case 23
+_02035ECC:
+ mov r0, #0xb
+ mov r1, #0x30
+ bl FUN_02016998
+ add r7, r0, #0x0
+ ldr r0, [r5, #0xc]
+ bl FUN_0206BB1C
+ str r0, [r7, #0x0]
+ ldr r0, [r5, #0xc]
+ bl LoadPlayerDataAddress
+ str r0, [r7, #0x4]
+ mov r0, #0x1
+ strb r0, [r7, #0x11]
+ add r0, r6, #0x0
+ add r0, #0x22
+ ldrb r0, [r0, #0x0]
+ strb r0, [r7, #0x14]
+ ldr r0, [r7, #0x0]
+ bl FUN_0206B9AC
+ strb r0, [r7, #0x13]
+ mov r0, #0x0
+ strh r0, [r7, #0x18]
+ strb r0, [r7, #0x12]
+ ldr r0, [r5, #0xc]
+ bl FUN_0202A918
+ str r0, [r7, #0x20]
+ ldr r0, [r5, #0xc]
+ bl FUN_0206BB28
+ str r0, [r7, #0x1c]
+ ldr r0, [r5, #0xc]
+ bl FUN_02079C70
+ str r0, [r7, #0x2c]
+ mov r0, #0x0
+ str r0, [r7, #0x28]
+ ldr r1, _0203626C ; =0x020F2A9C
+ add r0, r7, #0x0
+ bl FUN_0207B000
+ ldr r0, [r5, #0xc]
+ bl FUN_020238F4
+ add r1, r0, #0x0
+ add r0, r7, #0x0
+ bl FUN_0207C2A4
+ add r0, r5, #0x0
+ add r1, r7, #0x0
+ bl FUN_0203796C
+ mov r0, #0x7e
+ lsl r0, r0, #0x2
+ str r7, [r4, r0]
+ ldr r1, _02036270 ; =FUN_0203684C
+ add r0, r4, #0x0
+ bl FUN_02035D04
+ b _0203625E
+_02035F4A:
+ mov r0, #0xb
+ mov r1, #0x30
+ bl FUN_02016998
+ add r7, r0, #0x0
+ ldr r0, [r5, #0xc]
+ bl FUN_0206BB1C
+ str r0, [r7, #0x0]
+ ldr r0, [r5, #0xc]
+ bl LoadPlayerDataAddress
+ str r0, [r7, #0x4]
+ mov r1, #0x1
+ add r0, r6, #0x0
+ strb r1, [r7, #0x11]
+ add r0, #0x22
+ ldrb r0, [r0, #0x0]
+ strb r0, [r7, #0x14]
+ strb r1, [r7, #0x13]
+ ldrh r0, [r6, #0x26]
+ strh r0, [r7, #0x18]
+ mov r0, #0x2
+ strb r0, [r7, #0x12]
+ ldr r0, [r5, #0xc]
+ bl FUN_0206BB28
+ str r0, [r7, #0x1c]
+ ldr r0, [r5, #0xc]
+ bl FUN_02079C70
+ str r0, [r7, #0x2c]
+ mov r0, #0x0
+ str r0, [r7, #0x28]
+ ldr r1, _02036274 ; =0x020F2A8C
+ add r0, r7, #0x0
+ bl FUN_0207B000
+ ldr r0, [r5, #0xc]
+ bl FUN_020238F4
+ add r1, r0, #0x0
+ add r0, r7, #0x0
+ bl FUN_0207C2A4
+ add r0, r5, #0x0
+ add r1, r7, #0x0
+ bl FUN_0203796C
+ mov r0, #0xb
+ mov r1, #0x4
+ bl FUN_02016998
+ ldrh r1, [r6, #0x24]
+ strh r1, [r0, #0x0]
+ mov r1, #0x0
+ strh r1, [r0, #0x2]
+ mov r1, #0x7f
+ lsl r1, r1, #0x2
+ str r0, [r4, r1]
+ sub r0, r1, #0x4
+ str r7, [r4, r0]
+ ldr r1, _02036270 ; =FUN_0203684C
+ add r0, r4, #0x0
+ bl FUN_02035D04
+ b _0203625E
+_02035FD0:
+ mov r0, #0xb
+ mov r1, #0x30
+ bl FUN_02016998
+ add r7, r0, #0x0
+ ldr r0, [r5, #0xc]
+ bl FUN_0206BB1C
+ str r0, [r7, #0x0]
+ ldr r0, [r5, #0xc]
+ bl LoadPlayerDataAddress
+ str r0, [r7, #0x4]
+ mov r1, #0x1
+ add r0, r6, #0x0
+ strb r1, [r7, #0x11]
+ add r0, #0x22
+ ldrb r0, [r0, #0x0]
+ strb r0, [r7, #0x14]
+ strb r1, [r7, #0x13]
+ ldrh r0, [r6, #0x26]
+ strh r0, [r7, #0x18]
+ mov r0, #0x2
+ strb r0, [r7, #0x12]
+ ldr r0, [r5, #0xc]
+ bl FUN_0206BB28
+ str r0, [r7, #0x1c]
+ ldr r0, [r5, #0xc]
+ bl FUN_02079C70
+ str r0, [r7, #0x2c]
+ mov r0, #0x0
+ str r0, [r7, #0x28]
+ ldr r1, _02036274 ; =0x020F2A8C
+ add r0, r7, #0x0
+ bl FUN_0207B000
+ ldr r0, [r5, #0xc]
+ bl FUN_020238F4
+ add r1, r0, #0x0
+ add r0, r7, #0x0
+ bl FUN_0207C2A4
+ add r0, r5, #0x0
+ add r1, r7, #0x0
+ bl FUN_0203796C
+ mov r0, #0xb
+ mov r1, #0x4
+ bl FUN_02016998
+ mov r1, #0x0
+ strh r1, [r0, #0x0]
+ ldr r1, [r6, #0x34]
+ strh r1, [r0, #0x2]
+ mov r1, #0x7f
+ lsl r1, r1, #0x2
+ str r0, [r4, r1]
+ sub r0, r1, #0x4
+ str r7, [r4, r0]
+ ldr r1, _02036270 ; =FUN_0203684C
+ add r0, r4, #0x0
+ bl FUN_02035D04
+ b _0203625E
+_02036056:
+ ldrh r0, [r6, #0x24]
+ bl FUN_0206EAB8
+ add r3, r0, #0x0
+ mov r0, #0xb
+ add r2, r6, #0x0
+ str r0, [sp, #0x0]
+ add r2, #0x22
+ ldrb r2, [r2, #0x0]
+ add r0, r5, #0x0
+ mov r1, #0x2
+ bl FUN_02037F2C
+ mov r1, #0x7e
+ lsl r1, r1, #0x2
+ str r0, [r4, r1]
+ add r0, r6, #0x0
+ add r0, #0x20
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0xa
+ ldrh r0, [r6, #0x24]
+ bne _02036090
+ add r2, r6, #0x0
+ add r2, #0x22
+ ldrb r2, [r2, #0x0]
+ mov r1, #0x0
+ bl FUN_02036BC4
+ b _0203609C
+_02036090:
+ add r2, r6, #0x0
+ add r2, #0x22
+ ldrb r2, [r2, #0x0]
+ mov r1, #0x1
+ bl FUN_02036BC4
+_0203609C:
+ mov r1, #0x7f
+ lsl r1, r1, #0x2
+ str r0, [r4, r1]
+ ldr r1, _02036278 ; =FUN_02036BDC
+ add r0, r4, #0x0
+ bl FUN_02035D04
+ b _0203625E
+_020360AC:
+ ldr r0, [r5, #0xc]
+ bl FUN_0206BB1C
+ add r1, r6, #0x0
+ add r1, #0x22
+ ldrb r1, [r1, #0x0]
+ bl FUN_0206B9B0
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ mov r2, #0xb
+ bl FUN_02037F90
+ mov r1, #0x7e
+ lsl r1, r1, #0x2
+ str r0, [r4, r1]
+ add r2, r6, #0x0
+ add r2, #0x22
+ ldrh r0, [r6, #0x24]
+ ldrb r2, [r2, #0x0]
+ mov r1, #0x2
+ bl FUN_02036BC4
+ mov r1, #0x7f
+ lsl r1, r1, #0x2
+ str r0, [r4, r1]
+ ldr r1, _02036278 ; =FUN_02036BDC
+ add r0, r4, #0x0
+ bl FUN_02035D04
+ b _0203625E
+_020360EA:
+ mov r0, #0xb
+ mov r1, #0x4
+ bl FUN_02016998
+ add r1, r6, #0x0
+ add r1, #0x22
+ ldrb r1, [r1, #0x0]
+ str r1, [r0, #0x0]
+ mov r1, #0x7f
+ lsl r1, r1, #0x2
+ str r0, [r4, r1]
+ ldr r0, [r5, #0xc]
+ bl FUN_0206F158
+ add r7, r0, #0x0
+ ldr r0, [r5, #0xc]
+ bl FUN_020238F4
+ ldr r1, _0203627C ; =0x020F2A90
+ add r0, r7, #0x0
+ mov r2, #0xb
+ bl FUN_0206EFEC
+ mov r1, #0x7e
+ lsl r1, r1, #0x2
+ add r3, r5, #0x0
+ str r0, [r4, r1]
+ add r3, #0x94
+ ldr r0, [r4, r1]
+ ldr r1, [r5, #0xc]
+ ldr r3, [r3, #0x0]
+ mov r2, #0x1
+ bl FUN_0206E314
+ mov r1, #0x7e
+ lsl r1, r1, #0x2
+ ldr r1, [r4, r1]
+ add r0, r5, #0x0
+ bl FUN_0203781C
+ ldr r1, _02036280 ; =FUN_020362E4
+ add r0, r4, #0x0
+ bl FUN_02035D04
+ b _0203625E
+_02036144:
+ mov r0, #0xb
+ mov r1, #0xc
+ bl FUN_02016998
+ ldrh r1, [r6, #0x24]
+ strh r1, [r0, #0x2]
+ mov r1, #0x3
+ strb r1, [r0, #0x1]
+ add r1, r6, #0x0
+ add r1, #0x22
+ ldrb r1, [r1, #0x0]
+ strb r1, [r0, #0x0]
+ ldrh r1, [r6, #0x38]
+ strh r1, [r0, #0x4]
+ ldr r1, [r6, #0x3c]
+ str r1, [r0, #0x8]
+ mov r1, #0x7e
+ lsl r1, r1, #0x2
+ str r0, [r4, r1]
+ mov r0, #0x6
+ strh r0, [r4, #0x2a]
+ b _0203625E
+_02036170:
+ mov r0, #0xb
+ mov r1, #0xc
+ bl FUN_02016998
+ add r7, r0, #0x0
+ ldr r0, [r5, #0x1c]
+ ldr r0, [r0, #0x0]
+ bl FUN_02034A04
+ strh r0, [r7, #0x2]
+ mov r0, #0x0
+ strb r0, [r7, #0x1]
+ add r0, r6, #0x0
+ add r0, #0x22
+ ldrb r0, [r0, #0x0]
+ strb r0, [r7, #0x0]
+ ldrh r0, [r6, #0x38]
+ strh r0, [r7, #0x4]
+ ldr r0, [r6, #0x3c]
+ str r0, [r7, #0x8]
+ mov r0, #0x7e
+ lsl r0, r0, #0x2
+ str r7, [r4, r0]
+ mov r0, #0x6
+ strh r0, [r4, #0x2a]
+ b _0203625E
+_020361A4:
+ sub r0, #0xb
+ add r1, sp, #0x4
+ strh r0, [r1, #0x6]
+ add r0, r6, #0x0
+ add r0, #0x22
+ ldrb r0, [r0, #0x0]
+ strh r0, [r1, #0x4]
+ str r7, [sp, #0x4]
+ ldrh r1, [r1, #0x6]
+ mov r0, #0x0
+ bl FUN_02063948
+ mov r1, #0x7a
+ lsl r1, r1, #0x2
+ add r2, r0, #0x0
+ add r0, sp, #0x4
+ add r1, r4, r1
+ blx r2
+ b _0203625E
+_020361CA:
+ mov r1, #0x73
+ lsl r1, r1, #0x2
+ add r0, r5, #0x0
+ add r1, r4, r1
+ bl FUN_02037844
+ mov r1, #0x7e
+ lsl r1, r1, #0x2
+ str r0, [r4, r1]
+ ldr r1, _02036280 ; =FUN_020362E4
+ add r0, r4, #0x0
+ bl FUN_02035D04
+ b _0203625E
+_020361E6:
+ add r0, r6, #0x0
+ add r0, #0x20
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x5
+ beq _02036200
+ cmp r0, #0x6
+ beq _02036200
+ cmp r0, #0x7
+ beq _02036200
+ cmp r0, #0x10
+ beq _02036200
+ cmp r0, #0x8
+ bne _02036234
+_02036200:
+ mov r1, #0x73
+ lsl r1, r1, #0x2
+ add r0, r5, #0x0
+ add r1, r4, r1
+ bl FUN_02037844
+ mov r2, #0x7e
+ lsl r2, r2, #0x2
+ str r0, [r4, r2]
+ add r0, r6, #0x0
+ add r0, #0x22
+ ldrb r1, [r0, #0x0]
+ ldr r0, [r4, r2]
+ cmp r1, #0x6
+ blo _02036226
+ mov r1, #0x0
+ bl FUN_0206E358
+ b _0203622A
+_02036226:
+ bl FUN_0206E358
+_0203622A:
+ ldr r1, _02036280 ; =FUN_020362E4
+ add r0, r4, #0x0
+ bl FUN_02035D04
+ b _0203625E
+_02036234:
+ cmp r0, #0x9
+ bne _02036254
+ mov r1, #0x73
+ lsl r1, r1, #0x2
+ add r0, r5, #0x0
+ add r1, r4, r1
+ bl FUN_02037844
+ mov r1, #0x7e
+ lsl r1, r1, #0x2
+ str r0, [r4, r1]
+ ldr r1, _02036280 ; =FUN_020362E4
+ add r0, r4, #0x0
+ bl FUN_02035D04
+ b _0203625E
+_02036254:
+ add r0, r5, #0x0
+ bl FUN_0204649C
+ mov r0, #0xc
+ strh r0, [r4, #0x2a]
+_0203625E:
+ add r0, r6, #0x0
+ bl FUN_02016A18
+ mov r0, #0x0
+ add sp, #0xc
+ pop {r4-r7, pc}
+ nop
+_0203626C: .word 0x020F2A9C
+_02036270: .word FUN_0203684C
+_02036274: .word 0x020F2A8C
+_02036278: .word FUN_02036BDC
+_0203627C: .word 0x020F2A90
+_02036280: .word FUN_020362E4
+
+ thumb_func_start FUN_02036284
+FUN_02036284: ; 0x02036284
+ push {r4, lr}
+ bl FUN_0204652C
+ add r4, r0, #0x0
+ mov r0, #0x0
+ bl FUN_021D7CA4
+ mov r0, #0x72
+ ldr r1, _020362A4 ; =FUN_020362A8
+ lsl r0, r0, #0x2
+ str r1, [r4, r0]
+ mov r0, #0x2
+ strh r0, [r4, #0x2a]
+ mov r0, #0x1
+ pop {r4, pc}
+ nop
+_020362A4: .word FUN_020362A8
+
+ thumb_func_start FUN_020362A8
+FUN_020362A8: ; 0x020362A8
+ push {r3-r5, lr}
+ add r4, r0, #0x0
+ bl FUN_02046528
+ add r5, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_0204652C
+ mov r1, #0x73
+ add r4, r0, #0x0
+ lsl r1, r1, #0x2
+ add r0, r5, #0x0
+ add r1, r4, r1
+ bl FUN_02037844
+ mov r1, #0x7e
+ lsl r1, r1, #0x2
+ str r0, [r4, r1]
+ ldr r0, [r4, r1]
+ mov r1, #0x0
+ bl FUN_0206E358
+ mov r0, #0x72
+ ldr r1, _020362E0 ; =FUN_020362E4
+ lsl r0, r0, #0x2
+ str r1, [r4, r0]
+ mov r0, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+_020362E0: .word FUN_020362E4
+
+ thumb_func_start FUN_020362E4
+FUN_020362E4: ; 0x020362E4
+ push {r3-r7, lr}
+ sub sp, #0x18
+ add r5, r0, #0x0
+ bl FUN_02046528
+ add r6, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_0204652C
+ add r4, r0, #0x0
+ mov r0, #0xb
+ bl FUN_0206E2F0
+ str r0, [sp, #0x8]
+ bl FUN_0206E308
+ mov r1, #0x7e
+ lsl r1, r1, #0x2
+ add r2, r0, #0x0
+ ldr r0, [sp, #0x8]
+ ldr r1, [r4, r1]
+ blx memcpy
+ mov r0, #0x7e
+ lsl r0, r0, #0x2
+ ldr r0, [r4, r0]
+ bl FUN_02016A18
+ ldr r0, [sp, #0x8]
+ bl FUN_0206E384
+ cmp r0, #0x5
+ bls _02036328
+ b _020364EE
+_02036328:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02036334: ; jump table (using 16-bit offset)
+ .short _02036340 - _02036334 - 2; case 0
+ .short _0203637A - _02036334 - 2; case 1
+ .short _0203638A - _02036334 - 2; case 2
+ .short _020364EE - _02036334 - 2; case 3
+ .short _020363F6 - _02036334 - 2; case 4
+ .short _020364EE - _02036334 - 2; case 5
+_02036340:
+ ldr r0, [sp, #0x8]
+ bl FUN_0206E37C
+ add r1, sp, #0x10
+ strh r0, [r1, #0x4]
+ ldr r0, [sp, #0x8]
+ bl FUN_0206E38C
+ add r1, sp, #0x10
+ strb r0, [r1, #0x6]
+ str r5, [sp, #0x10]
+ ldrh r0, [r1, #0x4]
+ mov r1, #0x6
+ mov r2, #0xb
+ bl FUN_0206E7B8
+ add r1, r0, #0x0
+ lsl r1, r1, #0x10
+ mov r0, #0x0
+ lsr r1, r1, #0x10
+ bl FUN_0205CE48
+ mov r1, #0x73
+ lsl r1, r1, #0x2
+ add r2, r0, #0x0
+ add r0, sp, #0x10
+ add r1, r4, r1
+ blx r2
+ b _020364F8
+_0203637A:
+ ldr r0, [sp, #0x8]
+ bl FUN_0206E37C
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_0203695C
+ b _020364F8
+_0203638A:
+ mov r0, #0xb
+ mov r1, #0x40
+ bl FUN_02016998
+ mov r1, #0x0
+ mov r2, #0x40
+ add r5, r0, #0x0
+ blx Call_FillMemWithValue
+ ldr r0, [r6, #0xc]
+ bl FUN_0206BB1C
+ str r0, [r5, #0x0]
+ ldr r0, [r6, #0xc]
+ bl FUN_0206F158
+ str r0, [r5, #0x4]
+ ldr r0, [r6, #0xc]
+ bl FUN_02025838
+ str r0, [r5, #0x8]
+ ldr r0, [r6, #0xc]
+ bl LoadPlayerDataAddress
+ str r0, [r5, #0xc]
+ mov r0, #0x7a
+ lsl r0, r0, #0x2
+ add r0, r4, r0
+ str r0, [r5, #0x18]
+ add r0, r5, #0x0
+ mov r1, #0x0
+ add r0, #0x21
+ strb r1, [r0, #0x0]
+ add r0, r5, #0x0
+ mov r1, #0x9
+ add r0, #0x20
+ strb r1, [r0, #0x0]
+ ldr r0, [sp, #0x8]
+ bl FUN_0206E37C
+ strh r0, [r5, #0x24]
+ ldr r1, _02036504 ; =0x020F96DC
+ add r0, r6, #0x0
+ add r2, r5, #0x0
+ bl FUN_020373D4
+ mov r0, #0x7e
+ lsl r0, r0, #0x2
+ str r5, [r4, r0]
+ ldr r1, _02036508 ; =FUN_02035E50
+ add r0, r4, #0x0
+ bl FUN_02035D04
+ b _020364F8
+_020363F6:
+ ldr r0, [r6, #0xc]
+ bl FUN_0206BB1C
+ str r0, [sp, #0x4]
+ mov r0, #0x7f
+ lsl r0, r0, #0x2
+ ldr r0, [r4, r0]
+ ldr r7, [r0, #0x0]
+ ldr r0, [sp, #0x8]
+ bl FUN_0206E37C
+ add r5, r0, #0x0
+ ldr r0, [sp, #0x4]
+ add r1, r7, #0x0
+ bl FUN_0206B9B0
+ str r0, [sp, #0xc]
+ mov r0, #0x7f
+ lsl r0, r0, #0x2
+ ldr r0, [r4, r0]
+ bl FUN_02016A18
+ add r0, r5, #0x0
+ bl FUN_0206EA98
+ cmp r0, #0x1
+ bne _02036474
+ ldr r0, [sp, #0xc]
+ mov r1, #0x6
+ mov r2, #0x0
+ bl FUN_020671BC
+ cmp r0, #0x0
+ bne _02036474
+ add r0, r5, #0x0
+ bl FUN_0206EAB8
+ add r3, r0, #0x0
+ mov r0, #0xb
+ lsl r2, r7, #0x18
+ str r0, [sp, #0x0]
+ add r0, r6, #0x0
+ mov r1, #0x2
+ lsr r2, r2, #0x18
+ bl FUN_02037F2C
+ mov r1, #0x7e
+ lsl r1, r1, #0x2
+ str r0, [r4, r1]
+ lsl r2, r7, #0x18
+ add r0, r5, #0x0
+ mov r1, #0x0
+ lsr r2, r2, #0x18
+ bl FUN_02036BC4
+ mov r1, #0x7f
+ lsl r1, r1, #0x2
+ str r0, [r4, r1]
+ ldr r1, _0203650C ; =FUN_02036BDC
+ add r0, r4, #0x0
+ bl FUN_02035D04
+ b _020364F8
+_02036474:
+ mov r0, #0xb
+ mov r1, #0x40
+ bl FUN_02016998
+ mov r1, #0x0
+ mov r2, #0x40
+ add r5, r0, #0x0
+ blx Call_FillMemWithValue
+ ldr r0, [sp, #0x4]
+ str r0, [r5, #0x0]
+ ldr r0, [r6, #0xc]
+ bl FUN_0206F158
+ str r0, [r5, #0x4]
+ ldr r0, [r6, #0xc]
+ bl FUN_02025838
+ str r0, [r5, #0x8]
+ ldr r0, [r6, #0xc]
+ bl LoadPlayerDataAddress
+ str r0, [r5, #0xc]
+ mov r0, #0x7a
+ lsl r0, r0, #0x2
+ add r0, r4, r0
+ str r0, [r5, #0x18]
+ add r0, r5, #0x0
+ mov r1, #0x0
+ add r0, #0x21
+ strb r1, [r0, #0x0]
+ ldr r0, [sp, #0x8]
+ bl FUN_0206E37C
+ strh r0, [r5, #0x24]
+ add r0, r5, #0x0
+ add r0, #0x22
+ strb r7, [r0, #0x0]
+ str r6, [r5, #0x1c]
+ ldrh r0, [r5, #0x24]
+ cmp r0, #0x0
+ bne _020364CC
+ mov r1, #0x0
+ b _020364CE
+_020364CC:
+ mov r1, #0xa
+_020364CE:
+ add r0, r5, #0x0
+ add r0, #0x20
+ strb r1, [r0, #0x0]
+ ldr r1, _02036504 ; =0x020F96DC
+ add r0, r6, #0x0
+ add r2, r5, #0x0
+ bl FUN_020373D4
+ mov r0, #0x7e
+ lsl r0, r0, #0x2
+ str r5, [r4, r0]
+ ldr r1, _02036508 ; =FUN_02035E50
+ add r0, r4, #0x0
+ bl FUN_02035D04
+ b _020364F8
+_020364EE:
+ add r0, r6, #0x0
+ bl FUN_0204649C
+ mov r0, #0xc
+ strh r0, [r4, #0x2a]
+_020364F8:
+ ldr r0, [sp, #0x8]
+ bl FUN_02016A18
+ mov r0, #0x0
+ add sp, #0x18
+ pop {r3-r7, pc}
+ .balign 4
+_02036504: .word 0x020F96DC
+_02036508: .word FUN_02035E50
+_0203650C: .word FUN_02036BDC
+
+ thumb_func_start FUN_02036510
+FUN_02036510: ; 0x02036510
+ push {r4, lr}
+ bl FUN_0204652C
+ add r4, r0, #0x0
+ mov r0, #0x0
+ bl FUN_021D7CA4
+ mov r0, #0x72
+ ldr r1, _02036530 ; =FUN_02036534
+ lsl r0, r0, #0x2
+ str r1, [r4, r0]
+ mov r0, #0x2
+ strh r0, [r4, #0x2a]
+ mov r0, #0x1
+ pop {r4, pc}
+ nop
+_02036530: .word FUN_02036534
+
+ thumb_func_start FUN_02036534
+FUN_02036534: ; 0x02036534
+ push {r3-r5, lr}
+ sub sp, #0x8
+ add r4, r0, #0x0
+ bl FUN_02046528
+ add r5, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_0204652C
+ add r4, r0, #0x0
+ mov r0, #0xb
+ bl FUN_02065054
+ mov r1, #0x7e
+ lsl r1, r1, #0x2
+ str r0, [r4, r1]
+ str r5, [sp, #0x0]
+ ldr r0, [r4, r1]
+ mov r2, #0x0
+ str r0, [sp, #0x4]
+ mov r0, #0x1
+ add r1, r0, #0x0
+ mov r3, #0xff
+ bl FUN_02064E90
+ mov r1, #0x7e
+ lsl r1, r1, #0x2
+ ldr r1, [r4, r1]
+ add r0, r5, #0x0
+ bl FUN_02038680
+ mov r0, #0x72
+ ldr r1, _02036580 ; =FUN_02036584
+ lsl r0, r0, #0x2
+ str r1, [r4, r0]
+ mov r0, #0x0
+ add sp, #0x8
+ pop {r3-r5, pc}
+ .balign 4
+_02036580: .word FUN_02036584
+
+ thumb_func_start FUN_02036584
+FUN_02036584: ; 0x02036584
+ push {r3-r5, lr}
+ add r4, r0, #0x0
+ bl FUN_02046528
+ add r5, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_0204652C
+ mov r1, #0x7e
+ add r4, r0, #0x0
+ lsl r1, r1, #0x2
+ ldr r1, [r4, r1]
+ add r0, r5, #0x0
+ bl FUN_02065314
+ mov r0, #0x7e
+ lsl r0, r0, #0x2
+ ldr r0, [r4, r0]
+ bl FUN_02065070
+ add r0, r5, #0x0
+ bl FUN_0204649C
+ mov r0, #0xc
+ strh r0, [r4, #0x2a]
+ mov r0, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_020365BC
+FUN_020365BC: ; 0x020365BC
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ bl FUN_0204652C
+ add r4, r0, #0x0
+ bl FUN_02035718
+ add r0, r4, #0x0
+ mov r1, #0x1
+ bl FUN_0200CCF8
+ ldrb r1, [r4, #0x4]
+ ldr r0, [r4, #0x0]
+ bl FUN_0201AC68
+ add r0, r4, #0x0
+ bl FUN_02019178
+ add r0, r5, #0x0
+ bl FUN_020358A0
+ mov r0, #0x4
+ strh r0, [r4, #0x2a]
+ mov r0, #0x1
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_020365F0
+FUN_020365F0: ; 0x020365F0
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ bl FUN_0204652C
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_02046528
+ ldr r0, [r0, #0xc]
+ bl FUN_0202280C
+ cmp r0, #0x0
+ beq _02036618
+ mov r2, #0x0
+ ldr r1, _0203663C ; =0x000007F2
+ add r0, r5, #0x0
+ add r3, r2, #0x0
+ bl FUN_02038CD8
+ b _02036636
+_02036618:
+ mov r0, #0x20
+ mov r1, #0x8
+ bl FUN_02016998
+ mov r1, #0x7e
+ lsl r1, r1, #0x2
+ str r0, [r4, r1]
+ ldr r3, [r4, r1]
+ mov r2, #0x0
+ strh r2, [r3, #0x4]
+ ldr r1, _02036640 ; =0x000007D5
+ add r0, r5, #0x0
+ add r3, r3, #0x4
+ bl FUN_02038CD8
+_02036636:
+ mov r0, #0x5
+ strh r0, [r4, #0x2a]
+ pop {r3-r5, pc}
+ .balign 4
+_0203663C: .word 0x000007F2
+_02036640: .word 0x000007D5
+
+ thumb_func_start FUN_02036644
+FUN_02036644: ; 0x02036644
+ push {r4-r6, lr}
+ add r4, r0, #0x0
+ bl FUN_02046528
+ add r6, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_0204652C
+ add r4, r0, #0x0
+ mov r0, #0x7e
+ lsl r0, r0, #0x2
+ ldr r5, [r4, r0]
+ ldr r0, [r6, #0xc]
+ bl FUN_0202280C
+ cmp r0, #0x0
+ beq _0203666C
+ mov r0, #0x0
+ strh r0, [r4, #0x2a]
+ pop {r4-r6, pc}
+_0203666C:
+ ldrh r0, [r5, #0x4]
+ cmp r0, #0x0
+ bne _02036676
+ mov r0, #0x0
+ b _02036678
+_02036676:
+ mov r0, #0xf
+_02036678:
+ strh r0, [r4, #0x2a]
+ add r0, r5, #0x0
+ bl FUN_02016A18
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_02036684
+FUN_02036684: ; 0x02036684
+ push {r4, lr}
+ bl FUN_0204652C
+ add r4, r0, #0x0
+ mov r0, #0x0
+ bl FUN_021D7CA4
+ mov r0, #0x72
+ ldr r1, _020366A4 ; =FUN_020366A8
+ lsl r0, r0, #0x2
+ str r1, [r4, r0]
+ mov r0, #0x2
+ strh r0, [r4, #0x2a]
+ mov r0, #0x1
+ pop {r4, pc}
+ nop
+_020366A4: .word FUN_020366A8
+
+ thumb_func_start FUN_020366A8
+FUN_020366A8: ; 0x020366A8
+ push {r3-r5, lr}
+ add r4, r0, #0x0
+ bl FUN_02046528
+ add r5, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_0204652C
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_02037EF8
+ mov r1, #0x7e
+ lsl r1, r1, #0x2
+ str r0, [r4, r1]
+ ldr r0, _020366D0 ; =FUN_020366D4
+ sub r1, #0x30
+ str r0, [r4, r1]
+ mov r0, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+_020366D0: .word FUN_020366D4
+
+ thumb_func_start FUN_020366D4
+FUN_020366D4: ; 0x020366D4
+ push {r3-r5, lr}
+ add r4, r0, #0x0
+ bl FUN_02046528
+ add r5, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_0204652C
+ add r4, r0, #0x0
+ mov r0, #0x7e
+ lsl r0, r0, #0x2
+ ldr r0, [r4, r0]
+ bl FUN_02016A18
+ add r0, r5, #0x0
+ bl FUN_0204649C
+ mov r0, #0xc
+ strh r0, [r4, #0x2a]
+ mov r0, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_02036700
+FUN_02036700: ; 0x02036700
+ push {r4, lr}
+ bl FUN_0204652C
+ add r4, r0, #0x0
+ mov r0, #0x0
+ bl FUN_021D7CA4
+ mov r0, #0x72
+ ldr r1, _02036720 ; =FUN_02036724
+ lsl r0, r0, #0x2
+ str r1, [r4, r0]
+ mov r0, #0x2
+ strh r0, [r4, #0x2a]
+ mov r0, #0x1
+ pop {r4, pc}
+ nop
+_02036720: .word FUN_02036724
+
+ thumb_func_start FUN_02036724
+FUN_02036724: ; 0x02036724
+ push {r3-r5, lr}
+ sub sp, #0x8
+ add r4, r0, #0x0
+ bl FUN_02046528
+ add r5, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_0204652C
+ add r4, r0, #0x0
+ ldr r2, [r5, #0xc]
+ mov r0, #0x2
+ mov r1, #0x0
+ mov r3, #0xb
+ bl FUN_02085338
+ mov r1, #0x7e
+ lsl r1, r1, #0x2
+ str r0, [r4, r1]
+ add r0, sp, #0x0
+ mov r1, #0x4
+ bl FUN_0201373C
+ mov r0, #0x7e
+ lsl r0, r0, #0x2
+ ldr r0, [r4, r0]
+ add r1, sp, #0x0
+ bl FUN_020853BC
+ mov r1, #0x7e
+ lsl r1, r1, #0x2
+ ldr r1, [r4, r1]
+ add r0, r5, #0x0
+ bl FUN_02037E80
+ mov r0, #0x72
+ ldr r1, _02036778 ; =FUN_0203677C
+ lsl r0, r0, #0x2
+ str r1, [r4, r0]
+ mov r0, #0x0
+ add sp, #0x8
+ pop {r3-r5, pc}
+ .balign 4
+_02036778: .word FUN_0203677C
+
+ thumb_func_start FUN_0203677C
+FUN_0203677C: ; 0x0203677C
+ push {r3-r5, lr}
+ sub sp, #0x8
+ add r5, r0, #0x0
+ bl FUN_02046528
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_0204652C
+ add r5, r0, #0x0
+ mov r0, #0x7e
+ lsl r0, r0, #0x2
+ ldr r0, [r5, r0]
+ bl FUN_020853E4
+ cmp r0, #0x0
+ bne _020367C6
+ mov r0, #0x7e
+ lsl r0, r0, #0x2
+ ldr r0, [r5, r0]
+ add r1, sp, #0x0
+ bl FUN_020853FC
+ bl FUN_0202EDF8
+ cmp r0, #0x0
+ beq _020367C0
+ add r0, sp, #0x0
+ bl FUN_02052DE8
+ ldr r0, [r4, #0x78]
+ add r1, sp, #0x0
+ bl FUN_02052CD8
+_020367C0:
+ mov r0, #0x8
+ strh r0, [r5, #0x2a]
+ b _020367CA
+_020367C6:
+ mov r0, #0xc
+ strh r0, [r5, #0x2a]
+_020367CA:
+ mov r0, #0x7e
+ lsl r0, r0, #0x2
+ ldr r0, [r5, r0]
+ bl FUN_020853A8
+ add r0, r4, #0x0
+ bl FUN_0204649C
+ ldr r0, [r4, #0x7c]
+ bl FUN_02052F74
+ mov r0, #0x0
+ add sp, #0x8
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_020367E8
+FUN_020367E8: ; 0x020367E8
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ bl FUN_02046528
+ add r6, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_0204652C
+ add r4, r0, #0x0
+ bl FUN_02035718
+ add r0, r4, #0x0
+ mov r1, #0x1
+ bl FUN_0200CCF8
+ ldrb r1, [r4, #0x4]
+ ldr r0, [r4, #0x0]
+ bl FUN_0201AC68
+ add r0, r4, #0x0
+ bl FUN_02019178
+ add r0, r5, #0x0
+ bl FUN_020358A0
+ ldr r0, [r6, #0xc]
+ bl FUN_020462AC
+ bl FUN_0205F214
+ cmp r0, #0x1
+ bne _02036834
+ ldr r1, _02036848 ; =0x00002275
+ add r0, r5, #0x0
+ mov r2, #0x0
+ bl FUN_02038D10
+ b _0203683E
+_02036834:
+ add r0, r5, #0x0
+ mov r1, #0x4
+ mov r2, #0x0
+ bl FUN_02038D10
+_0203683E:
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ mov r0, #0x0
+ pop {r4-r6, pc}
+ .balign 4
+_02036848: .word 0x00002275
+
+ thumb_func_start FUN_0203684C
+FUN_0203684C: ; 0x0203684C
+ push {r3-r7, lr}
+ add r4, r0, #0x0
+ bl FUN_02046528
+ add r6, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_0204652C
+ add r4, r0, #0x0
+ mov r0, #0xb
+ mov r1, #0x30
+ bl FUN_02016998
+ mov r1, #0x7e
+ lsl r1, r1, #0x2
+ ldr r1, [r4, r1]
+ mov r2, #0x30
+ add r7, r0, #0x0
+ blx memcpy
+ mov r0, #0x7e
+ lsl r0, r0, #0x2
+ ldr r0, [r4, r0]
+ bl FUN_02016A18
+ ldrb r0, [r7, #0x12]
+ cmp r0, #0x2
+ bne _0203692E
+ mov r0, #0xb
+ mov r1, #0x40
+ bl FUN_02016998
+ mov r1, #0x7f
+ lsl r1, r1, #0x2
+ ldr r1, [r4, r1]
+ mov r2, #0x40
+ str r1, [sp, #0x0]
+ mov r1, #0x0
+ add r5, r0, #0x0
+ blx Call_FillMemWithValue
+ ldr r0, [r6, #0xc]
+ bl FUN_0206BB1C
+ str r0, [r5, #0x0]
+ ldr r0, [r6, #0xc]
+ bl FUN_0206F158
+ str r0, [r5, #0x4]
+ ldr r0, [r6, #0xc]
+ bl FUN_02025838
+ str r0, [r5, #0x8]
+ ldr r0, [r6, #0xc]
+ bl LoadPlayerDataAddress
+ str r0, [r5, #0xc]
+ mov r0, #0x7a
+ lsl r0, r0, #0x2
+ add r0, r4, r0
+ add r1, r5, #0x0
+ str r0, [r5, #0x18]
+ mov r0, #0x0
+ add r1, #0x21
+ strb r0, [r1, #0x0]
+ ldr r1, [sp, #0x0]
+ str r6, [r5, #0x1c]
+ ldrh r1, [r1, #0x0]
+ cmp r1, #0x0
+ beq _020368E2
+ add r1, r5, #0x0
+ mov r2, #0x7
+ add r1, #0x20
+ strb r2, [r1, #0x0]
+ b _020368EE
+_020368E2:
+ add r0, r5, #0x0
+ mov r1, #0x8
+ add r0, #0x20
+ strb r1, [r0, #0x0]
+ ldr r0, [sp, #0x0]
+ ldrh r0, [r0, #0x2]
+_020368EE:
+ str r0, [r5, #0x34]
+ ldr r0, [sp, #0x0]
+ add r2, r5, #0x0
+ ldrh r0, [r0, #0x0]
+ strh r0, [r5, #0x24]
+ add r0, r5, #0x0
+ ldrb r1, [r7, #0x14]
+ add r0, #0x22
+ strb r1, [r0, #0x0]
+ ldrh r0, [r7, #0x18]
+ strh r0, [r5, #0x26]
+ add r0, r5, #0x0
+ ldrb r1, [r7, #0x16]
+ add r0, #0x28
+ strb r1, [r0, #0x0]
+ ldr r1, _02036954 ; =0x020F96DC
+ add r0, r6, #0x0
+ bl FUN_020373D4
+ mov r0, #0x7f
+ lsl r0, r0, #0x2
+ ldr r0, [r4, r0]
+ bl FUN_02016A18
+ mov r0, #0x7e
+ lsl r0, r0, #0x2
+ str r5, [r4, r0]
+ ldr r1, _02036958 ; =FUN_02035E50
+ add r0, r4, #0x0
+ bl FUN_02035D04
+ b _0203694A
+_0203692E:
+ mov r1, #0x7a
+ lsl r1, r1, #0x2
+ ldrb r2, [r7, #0x14]
+ add r0, r6, #0x0
+ add r1, r4, r1
+ bl FUN_020379C8
+ mov r1, #0x7e
+ lsl r1, r1, #0x2
+ str r0, [r4, r1]
+ ldr r1, _02036958 ; =FUN_02035E50
+ add r0, r4, #0x0
+ bl FUN_02035D04
+_0203694A:
+ add r0, r7, #0x0
+ bl FUN_02016A18
+ mov r0, #0x0
+ pop {r3-r7, pc}
+ .balign 4
+_02036954: .word 0x020F96DC
+_02036958: .word FUN_02035E50
+
+ thumb_func_start FUN_0203695C
+FUN_0203695C: ; 0x0203695C
+ push {r4-r7, lr}
+ sub sp, #0xc
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ bl FUN_02046528
+ str r0, [sp, #0x4]
+ add r0, r5, #0x0
+ bl FUN_0204652C
+ add r6, r0, #0x0
+ mov r0, #0xb
+ bl FUN_020851B8
+ mov r1, #0x7e
+ lsl r1, r1, #0x2
+ str r0, [r6, r1]
+ ldr r0, [sp, #0x4]
+ ldr r0, [r0, #0xc]
+ bl FUN_0206F158
+ str r0, [sp, #0x0]
+ mov r0, #0x7e
+ lsl r0, r0, #0x2
+ ldr r0, [r6, r0]
+ add r1, r4, #0x0
+ mov r2, #0x1
+ bl FUN_020851DC
+ mov r5, #0x0
+ add r4, r5, #0x0
+_0203699A:
+ add r0, r4, #0x0
+ bl FUN_0206EB1C
+ add r7, r0, #0x0
+ ldr r0, [sp, #0x0]
+ add r1, r7, #0x0
+ mov r2, #0x1
+ mov r3, #0xb
+ bl FUN_0206EE50
+ cmp r0, #0x1
+ bne _020369C6
+ mov r0, #0x7e
+ lsl r0, r0, #0x2
+ ldr r0, [r6, r0]
+ add r1, r7, #0x0
+ mov r2, #0x0
+ bl FUN_020851DC
+ add r0, r5, #0x1
+ lsl r0, r0, #0x18
+ lsr r5, r0, #0x18
+_020369C6:
+ add r0, r4, #0x1
+ lsl r0, r0, #0x18
+ lsr r4, r0, #0x18
+ cmp r4, #0x40
+ blo _0203699A
+ ldr r0, [sp, #0x4]
+ add r3, sp, #0x8
+ add r0, #0x94
+ ldr r0, [r0, #0x0]
+ mov r1, #0x4
+ add r2, sp, #0x8
+ add r3, #0x1
+ bl FUN_0206F17C
+ mov r0, #0x7e
+ add r2, sp, #0x8
+ lsl r0, r0, #0x2
+ ldrb r1, [r2, #0x1]
+ add r3, r5, #0x3
+ lsl r3, r3, #0x18
+ ldrb r2, [r2, #0x0]
+ ldr r0, [r6, r0]
+ lsr r3, r3, #0x18
+ bl FUN_020851F8
+ mov r1, #0x7e
+ lsl r1, r1, #0x2
+ ldr r0, [sp, #0x4]
+ ldr r1, [r6, r1]
+ bl FUN_0203791C
+ ldr r1, _02036A10 ; =FUN_02036A14
+ add r0, r6, #0x0
+ bl FUN_02035D04
+ add sp, #0xc
+ pop {r4-r7, pc}
+ .balign 4
+_02036A10: .word FUN_02036A14
+
+ thumb_func_start FUN_02036A14
+FUN_02036A14: ; 0x02036A14
+ push {r3-r5, lr}
+ add r4, r0, #0x0
+ bl FUN_02046528
+ add r5, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_0204652C
+ add r4, r0, #0x0
+ mov r0, #0x7e
+ lsl r0, r0, #0x2
+ add r1, sp, #0x0
+ ldr r0, [r4, r0]
+ add r1, #0x1
+ add r2, sp, #0x0
+ bl FUN_0208524C
+ add r0, r5, #0x0
+ add r3, sp, #0x0
+ add r0, #0x94
+ ldrb r2, [r3, #0x0]
+ ldrb r3, [r3, #0x1]
+ ldr r0, [r0, #0x0]
+ mov r1, #0x4
+ bl FUN_0206F190
+ mov r1, #0x7e
+ lsl r1, r1, #0x2
+ ldr r1, [r4, r1]
+ mov r0, #0xb
+ bl FUN_02016A8C
+ mov r1, #0x73
+ lsl r1, r1, #0x2
+ add r0, r5, #0x0
+ add r1, r4, r1
+ bl FUN_02037844
+ mov r1, #0x7e
+ lsl r1, r1, #0x2
+ str r0, [r4, r1]
+ ldr r1, _02036A74 ; =FUN_020362E4
+ add r0, r4, #0x0
+ bl FUN_02035D04
+ mov r0, #0x0
+ pop {r3-r5, pc}
+ nop
+_02036A74: .word FUN_020362E4
+
+ thumb_func_start FUN_02036A78
+FUN_02036A78: ; 0x02036A78
+ push {r3-r5, lr}
+ add r4, r0, #0x0
+ bl FUN_02046528
+ add r5, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_0204652C
+ mov r1, #0x7e
+ add r4, r0, #0x0
+ lsl r1, r1, #0x2
+ ldr r1, [r4, r1]
+ mov r0, #0xb
+ bl FUN_02016A8C
+ mov r1, #0x73
+ lsl r1, r1, #0x2
+ add r0, r5, #0x0
+ add r1, r4, r1
+ bl FUN_02037844
+ mov r1, #0x7e
+ lsl r1, r1, #0x2
+ str r0, [r4, r1]
+ ldr r1, _02036AB4 ; =FUN_020362E4
+ add r0, r4, #0x0
+ bl FUN_02035D04
+ mov r0, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+_02036AB4: .word FUN_020362E4
+
+ thumb_func_start FUN_02036AB8
+FUN_02036AB8: ; 0x02036AB8
+ push {r3-r7, lr}
+ sub sp, #0x8
+ add r4, r0, #0x0
+ bl FUN_02046528
+ add r6, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_0204652C
+ add r4, r0, #0x0
+ mov r0, #0x7f
+ lsl r0, r0, #0x2
+ ldr r1, [r4, r0]
+ mov r0, #0xb
+ ldr r7, [r1, #0x0]
+ bl FUN_02016A8C
+ mov r0, #0x7e
+ lsl r0, r0, #0x2
+ ldr r5, [r4, r0]
+ ldr r0, [r5, #0x10]
+ cmp r0, #0x0
+ bne _02036B0E
+ mov r0, #0xb
+ add r1, r5, #0x0
+ bl FUN_02016A8C
+ mov r1, #0x7a
+ lsl r1, r1, #0x2
+ lsl r2, r7, #0x18
+ add r0, r6, #0x0
+ add r1, r4, r1
+ lsr r2, r2, #0x18
+ bl FUN_020379C8
+ mov r1, #0x7e
+ lsl r1, r1, #0x2
+ str r0, [r4, r1]
+ ldr r1, _02036B88 ; =FUN_02035E50
+ add r0, r4, #0x0
+ bl FUN_02035D04
+ b _02036B82
+_02036B0E:
+ ldr r0, [r6, #0xc]
+ bl FUN_0206BB1C
+ add r1, r7, #0x0
+ bl FUN_0206B9B0
+ add r2, r0, #0x0
+ ldr r0, [r5, #0x14]
+ add r1, r6, #0x0
+ lsl r0, r0, #0x5
+ add r0, #0x10
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ str r0, [sp, #0x0]
+ ldr r0, [r5, #0x18]
+ lsl r0, r0, #0x5
+ add r0, #0x10
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ str r0, [sp, #0x4]
+ ldr r3, [r5, #0x1c]
+ mov r0, #0xb
+ lsl r3, r3, #0x10
+ lsr r3, r3, #0x10
+ bl FUN_02063888
+ ldr r1, [r5, #0x1c]
+ add r7, r0, #0x0
+ lsl r1, r1, #0x10
+ mov r0, #0x1
+ lsr r1, r1, #0x10
+ mov r2, #0xb
+ bl FUN_0202914C
+ add r1, r0, #0x0
+ add r0, r6, #0x0
+ add r0, #0x98
+ ldr r0, [r0, #0x0]
+ mov r2, #0x1
+ bl FUN_02028AD4
+ mov r1, #0x7e
+ lsl r1, r1, #0x2
+ ldr r1, [r4, r1]
+ mov r0, #0xb
+ bl FUN_02016A8C
+ add r0, r6, #0x0
+ bl FUN_0204649C
+ mov r0, #0x72
+ ldr r1, _02036B8C ; =FUN_020638BC
+ lsl r0, r0, #0x2
+ str r1, [r4, r0]
+ add r0, #0x30
+ str r7, [r4, r0]
+ mov r0, #0xa
+ strh r0, [r4, #0x2a]
+_02036B82:
+ mov r0, #0x0
+ add sp, #0x8
+ pop {r3-r7, pc}
+ .balign 4
+_02036B88: .word FUN_02035E50
+_02036B8C: .word FUN_020638BC
+
+ thumb_func_start FUN_02036B90
+FUN_02036B90: ; 0x02036B90
+ push {r3-r5, lr}
+ add r4, r0, #0x0
+ bl FUN_02046528
+ add r5, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_0204652C
+ mov r1, #0x73
+ add r4, r0, #0x0
+ lsl r1, r1, #0x2
+ add r0, r5, #0x0
+ add r1, r4, r1
+ bl FUN_02037844
+ mov r1, #0x7e
+ lsl r1, r1, #0x2
+ str r0, [r4, r1]
+ ldr r1, _02036BC0 ; =FUN_020362E4
+ add r0, r4, #0x0
+ bl FUN_02035D04
+ mov r0, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+_02036BC0: .word FUN_020362E4
+
+ thumb_func_start FUN_02036BC4
+FUN_02036BC4: ; 0x02036BC4
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ mov r0, #0xb
+ mov r1, #0x4
+ add r6, r2, #0x0
+ bl FUN_02016998
+ strh r5, [r0, #0x0]
+ strb r6, [r0, #0x2]
+ strb r4, [r0, #0x3]
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_02036BDC
+FUN_02036BDC: ; 0x02036BDC
+ push {r4-r6, lr}
+ add r4, r0, #0x0
+ bl FUN_02046528
+ add r5, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_0204652C
+ add r4, r0, #0x0
+ mov r0, #0x7f
+ lsl r0, r0, #0x2
+ ldr r6, [r4, r0]
+ ldrb r1, [r6, #0x3]
+ cmp r1, #0x3
+ bhi _02036CD4
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #0x6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_02036C06: ; jump table (using 16-bit offset)
+ .short _02036C58 - _02036C06 - 2; case 0
+ .short _02036C98 - _02036C06 - 2; case 1
+ .short _02036C32 - _02036C06 - 2; case 2
+ .short _02036C0E - _02036C06 - 2; case 3
+_02036C0E:
+ sub r0, r0, #0x4
+ ldr r0, [r4, r0]
+ bl FUN_0208562C
+ mov r1, #0x73
+ lsl r1, r1, #0x2
+ add r0, r5, #0x0
+ add r1, r4, r1
+ bl FUN_02037844
+ mov r1, #0x7e
+ lsl r1, r1, #0x2
+ str r0, [r4, r1]
+ ldr r1, _02036CE4 ; =FUN_020362E4
+ add r0, r4, #0x0
+ bl FUN_02035D04
+ b _02036CD4
+_02036C32:
+ sub r0, r0, #0x4
+ ldr r0, [r4, r0]
+ bl FUN_0208562C
+ mov r1, #0x7a
+ lsl r1, r1, #0x2
+ ldrb r2, [r6, #0x2]
+ add r0, r5, #0x0
+ add r1, r4, r1
+ bl FUN_020379C8
+ mov r1, #0x7e
+ lsl r1, r1, #0x2
+ str r0, [r4, r1]
+ ldr r1, _02036CE8 ; =FUN_02035E50
+ add r0, r4, #0x0
+ bl FUN_02035D04
+ b _02036CD4
+_02036C58:
+ sub r0, r0, #0x4
+ ldr r0, [r4, r0]
+ bl FUN_020855E4
+ cmp r0, #0x1
+ bne _02036C70
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ mov r2, #0xc
+ bl FUN_02036CEC
+ b _02036CD4
+_02036C70:
+ mov r0, #0x7e
+ lsl r0, r0, #0x2
+ ldr r0, [r4, r0]
+ bl FUN_0208562C
+ mov r1, #0x7a
+ lsl r1, r1, #0x2
+ ldrb r2, [r6, #0x2]
+ add r0, r5, #0x0
+ add r1, r4, r1
+ bl FUN_020379C8
+ mov r1, #0x7e
+ lsl r1, r1, #0x2
+ str r0, [r4, r1]
+ ldr r1, _02036CE8 ; =FUN_02035E50
+ add r0, r4, #0x0
+ bl FUN_02035D04
+ b _02036CD4
+_02036C98:
+ sub r0, r0, #0x4
+ ldr r0, [r4, r0]
+ bl FUN_020855E4
+ cmp r0, #0x1
+ bne _02036CB0
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ mov r2, #0xb
+ bl FUN_02036CEC
+ b _02036CD4
+_02036CB0:
+ mov r0, #0x7e
+ lsl r0, r0, #0x2
+ ldr r0, [r4, r0]
+ bl FUN_0208562C
+ mov r1, #0x73
+ lsl r1, r1, #0x2
+ add r0, r5, #0x0
+ add r1, r4, r1
+ bl FUN_02037844
+ mov r1, #0x7e
+ lsl r1, r1, #0x2
+ str r0, [r4, r1]
+ ldr r1, _02036CE4 ; =FUN_020362E4
+ add r0, r4, #0x0
+ bl FUN_02035D04
+_02036CD4:
+ mov r0, #0x7f
+ lsl r0, r0, #0x2
+ ldr r0, [r4, r0]
+ bl FUN_02016A18
+ mov r0, #0x0
+ pop {r4-r6, pc}
+ nop
+_02036CE4: .word FUN_020362E4
+_02036CE8: .word FUN_02035E50
+
+ thumb_func_start FUN_02036CEC
+FUN_02036CEC: ; 0x02036CEC
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ mov r0, #0x7f
+ add r6, r1, #0x0
+ str r2, [sp, #0x0]
+ lsl r0, r0, #0x2
+ ldr r7, [r6, r0]
+ mov r0, #0xb
+ mov r1, #0x40
+ bl FUN_02016998
+ mov r1, #0x0
+ mov r2, #0x40
+ add r4, r0, #0x0
+ blx Call_FillMemWithValue
+ ldr r0, [r5, #0xc]
+ bl FUN_0206BB1C
+ str r0, [r4, #0x0]
+ ldr r0, [r5, #0xc]
+ bl FUN_0206F158
+ str r0, [r4, #0x4]
+ ldr r0, [r5, #0xc]
+ bl FUN_02025838
+ str r0, [r4, #0x8]
+ ldr r0, [r5, #0xc]
+ bl LoadPlayerDataAddress
+ str r0, [r4, #0xc]
+ mov r0, #0x7a
+ lsl r0, r0, #0x2
+ add r0, r6, r0
+ str r0, [r4, #0x18]
+ add r0, r4, #0x0
+ mov r1, #0x0
+ add r0, #0x21
+ strb r1, [r0, #0x0]
+ ldrh r0, [r7, #0x0]
+ strh r0, [r4, #0x24]
+ add r0, r4, #0x0
+ ldrb r1, [r7, #0x2]
+ add r0, #0x22
+ strb r1, [r0, #0x0]
+ add r1, r4, #0x0
+ ldr r0, [sp, #0x0]
+ add r1, #0x20
+ strb r0, [r1, #0x0]
+ str r5, [r4, #0x1c]
+ ldrb r1, [r7, #0x2]
+ ldr r0, [r4, #0x0]
+ bl FUN_0206B9B0
+ add r1, r0, #0x0
+ mov r0, #0x7e
+ lsl r0, r0, #0x2
+ ldr r0, [r6, r0]
+ bl FUN_0208560C
+ mov r0, #0x7e
+ lsl r0, r0, #0x2
+ ldr r0, [r6, r0]
+ bl FUN_0208562C
+ ldr r1, _02036D8C ; =0x020F96DC
+ add r0, r5, #0x0
+ add r2, r4, #0x0
+ bl FUN_020373D4
+ mov r0, #0x7e
+ lsl r0, r0, #0x2
+ str r4, [r6, r0]
+ ldr r1, _02036D90 ; =FUN_02035E50
+ add r0, r6, #0x0
+ bl FUN_02035D04
+ pop {r3-r7, pc}
+ nop
+_02036D8C: .word 0x020F96DC
+_02036D90: .word FUN_02035E50
+
+ thumb_func_start FUN_02036D94
+FUN_02036D94: ; 0x02036D94
+ push {r3-r5, lr}
+ add r4, r0, #0x0
+ bl FUN_02046528
+ add r5, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_0204652C
+ add r4, r0, #0x0
+ mov r0, #0x7e
+ lsl r0, r0, #0x2
+ ldr r0, [r4, r0]
+ bl FUN_02087E14
+ mov r1, #0x73
+ lsl r1, r1, #0x2
+ add r0, r5, #0x0
+ add r1, r4, r1
+ bl FUN_02037844
+ mov r1, #0x7e
+ lsl r1, r1, #0x2
+ str r0, [r4, r1]
+ ldr r1, _02036DD0 ; =FUN_020362E4
+ add r0, r4, #0x0
+ bl FUN_02035D04
+ mov r0, #0x0
+ pop {r3-r5, pc}
+ nop
+_02036DD0: .word FUN_020362E4
+
+ thumb_func_start FUN_02036DD4
+FUN_02036DD4: ; 0x02036DD4
+ push {r3-r5, lr}
+ add r4, r0, #0x0
+ bl FUN_02046528
+ add r5, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_0204652C
+ mov r1, #0x73
+ add r4, r0, #0x0
+ lsl r1, r1, #0x2
+ add r0, r5, #0x0
+ add r1, r4, r1
+ bl FUN_02037844
+ mov r1, #0x7e
+ lsl r1, r1, #0x2
+ str r0, [r4, r1]
+ ldr r1, _02036E04 ; =FUN_020362E4
+ add r0, r4, #0x0
+ bl FUN_02035D04
+ mov r0, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+_02036E04: .word FUN_020362E4
+
+ thumb_func_start FUN_02036E08
+FUN_02036E08: ; 0x02036E08
+ push {r3-r7, lr}
+ sub sp, #0x48
+ add r5, r0, #0x0
+ bl FUN_02046528
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_0204652C
+ add r6, r0, #0x0
+ mov r0, #0x7e
+ lsl r0, r0, #0x2
+ ldr r5, [r6, r0]
+ bl FUN_0200541C
+ mov r0, #0x3
+ mov r1, #0x49
+ lsl r2, r0, #0x10
+ bl FUN_0201681C
+ ldr r0, [r4, #0xc]
+ bl FUN_0206BB1C
+ ldrb r1, [r5, #0x0]
+ str r0, [sp, #0x20]
+ bl FUN_0206B9B0
+ str r0, [sp, #0x24]
+ ldrb r0, [r5, #0x1]
+ cmp r0, #0x0
+ ldr r0, [r4, #0xc]
+ bne _02036E9E
+ bl LoadPlayerDataAddress
+ str r0, [sp, #0x28]
+ ldr r0, [r4, #0xc]
+ bl FUN_02079C70
+ add r7, r0, #0x0
+ ldr r0, [r4, #0xc]
+ bl FUN_02024DA0
+ str r0, [sp, #0x2c]
+ ldr r0, [r4, #0xc]
+ bl FUN_0206F158
+ str r0, [sp, #0x30]
+ ldr r0, [r4, #0xc]
+ bl FUN_02029FC8
+ str r0, [sp, #0x34]
+ ldr r0, [r4, #0xc]
+ bl FUN_0204C1A8
+ ldr r1, [sp, #0x2c]
+ str r7, [sp, #0x0]
+ str r1, [sp, #0x4]
+ ldr r1, [sp, #0x30]
+ ldr r3, [sp, #0x28]
+ str r1, [sp, #0x8]
+ ldr r1, [sp, #0x34]
+ str r1, [sp, #0xc]
+ str r0, [sp, #0x10]
+ ldr r0, [r5, #0x8]
+ ldr r1, [sp, #0x24]
+ str r0, [sp, #0x14]
+ mov r0, #0x1
+ str r0, [sp, #0x18]
+ mov r0, #0x49
+ str r0, [sp, #0x1c]
+ ldrh r2, [r5, #0x4]
+ ldr r0, [sp, #0x20]
+ bl FUN_0206C700
+ b _02036EF2
+_02036E9E:
+ bl LoadPlayerDataAddress
+ str r0, [sp, #0x38]
+ ldr r0, [r4, #0xc]
+ bl FUN_02079C70
+ add r7, r0, #0x0
+ ldr r0, [r4, #0xc]
+ bl FUN_02024DA0
+ str r0, [sp, #0x3c]
+ ldr r0, [r4, #0xc]
+ bl FUN_0206F158
+ str r0, [sp, #0x40]
+ ldr r0, [r4, #0xc]
+ bl FUN_02029FC8
+ str r0, [sp, #0x44]
+ ldr r0, [r4, #0xc]
+ bl FUN_0204C1A8
+ ldr r1, [sp, #0x3c]
+ str r7, [sp, #0x0]
+ str r1, [sp, #0x4]
+ ldr r1, [sp, #0x40]
+ ldr r3, [sp, #0x38]
+ str r1, [sp, #0x8]
+ ldr r1, [sp, #0x44]
+ str r1, [sp, #0xc]
+ str r0, [sp, #0x10]
+ ldr r0, [r5, #0x8]
+ ldr r1, [sp, #0x24]
+ str r0, [sp, #0x14]
+ mov r0, #0x0
+ str r0, [sp, #0x18]
+ mov r0, #0x49
+ str r0, [sp, #0x1c]
+ ldrh r2, [r5, #0x4]
+ ldr r0, [sp, #0x20]
+ bl FUN_0206C700
+_02036EF2:
+ add r4, r0, #0x0
+ mov r0, #0xb
+ mov r1, #0x4
+ bl FUN_02016998
+ ldrb r1, [r5, #0x0]
+ str r1, [r0, #0x0]
+ mov r1, #0x7f
+ lsl r1, r1, #0x2
+ str r0, [r6, r1]
+ sub r0, r1, #0x4
+ ldr r0, [r6, r0]
+ bl FUN_02016A18
+ mov r0, #0x7e
+ lsl r0, r0, #0x2
+ str r4, [r6, r0]
+ mov r0, #0x7
+ strh r0, [r6, #0x2a]
+ add sp, #0x48
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_02036F1C
+FUN_02036F1C: ; 0x02036F1C
+ push {r3-r5, lr}
+ add r4, r0, #0x0
+ bl FUN_02046528
+ add r5, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_0204652C
+ add r4, r0, #0x0
+ mov r0, #0x7e
+ lsl r0, r0, #0x2
+ ldr r0, [r4, r0]
+ bl FUN_0206C91C
+ cmp r0, #0x1
+ bne _02036F98
+ mov r0, #0x7e
+ lsl r0, r0, #0x2
+ ldr r0, [r4, r0]
+ bl FUN_0206C92C
+ mov r0, #0x49
+ bl FUN_020168D0
+ ldr r0, _02036F9C ; =0x00000475
+ mov r1, #0x0
+ bl FUN_02005350
+ mov r0, #0x0
+ bl FUN_0200415C
+ ldr r1, [r5, #0x1c]
+ add r0, r5, #0x0
+ ldr r1, [r1, #0x0]
+ bl FUN_0204ADBC
+ mov r1, #0x73
+ lsl r1, r1, #0x2
+ add r0, r5, #0x0
+ add r1, r4, r1
+ bl FUN_02037844
+ mov r1, #0x7e
+ lsl r1, r1, #0x2
+ str r0, [r4, r1]
+ ldr r0, [r4, r1]
+ add r1, r1, #0x4
+ ldr r1, [r4, r1]
+ ldr r1, [r1, #0x0]
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ bl FUN_0206E358
+ mov r0, #0x7f
+ lsl r0, r0, #0x2
+ ldr r0, [r4, r0]
+ bl FUN_02016A18
+ ldr r1, _02036FA0 ; =FUN_020362E4
+ add r0, r4, #0x0
+ bl FUN_02035D04
+_02036F98:
+ pop {r3-r5, pc}
+ nop
+_02036F9C: .word 0x00000475
+_02036FA0: .word FUN_020362E4
+
+ thumb_func_start FUN_02036FA4
+FUN_02036FA4: ; 0x02036FA4
+ push {r3-r7, lr}
+ add r6, r0, #0x0
+ ldr r0, [r6, #0x38]
+ add r4, r1, #0x0
+ add r5, r2, #0x0
+ bl FUN_020552F8
+ add r7, r0, #0x0
+ ldr r0, [r6, #0x38]
+ bl FUN_02055320
+ str r0, [r4, #0x0]
+ ldr r0, [r6, #0x38]
+ bl FUN_0205532C
+ str r0, [r5, #0x0]
+ cmp r7, #0x3
+ bhi _02036FFA
+ add r0, r7, r7
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02036FD4: ; jump table (using 16-bit offset)
+ .short _02036FDC - _02036FD4 - 2; case 0
+ .short _02036FE4 - _02036FD4 - 2; case 1
+ .short _02036FEC - _02036FD4 - 2; case 2
+ .short _02036FF4 - _02036FD4 - 2; case 3
+_02036FDC:
+ ldr r0, [r5, #0x0]
+ sub r0, r0, #0x1
+ str r0, [r5, #0x0]
+ b _02036FFA
+_02036FE4:
+ ldr r0, [r5, #0x0]
+ add r0, r0, #0x1
+ str r0, [r5, #0x0]
+ b _02036FFA
+_02036FEC:
+ ldr r0, [r4, #0x0]
+ sub r0, r0, #0x1
+ str r0, [r4, #0x0]
+ b _02036FFA
+_02036FF4:
+ ldr r0, [r4, #0x0]
+ add r0, r0, #0x1
+ str r0, [r4, #0x0]
+_02036FFA:
+ add r0, r7, #0x0
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_02037000
+FUN_02037000: ; 0x02037000
+ push {r3-r5, lr}
+ add r5, r1, #0x0
+ bl FUN_020553A0
+ bl FUN_02058BE4
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_02058BE4
+ cmp r4, r0
+ bne _0203701C
+ mov r0, #0x1
+ b _0203701E
+_0203701C:
+ mov r0, #0x0
+_0203701E:
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_02037024
+FUN_02037024: ; 0x02037024
+ push {r4-r6, lr}
+ sub sp, #0x8
+ add r6, r1, #0x0
+ add r1, sp, #0x4
+ add r2, sp, #0x0
+ add r5, r0, #0x0
+ bl FUN_02036FA4
+ add r4, r0, #0x0
+ ldr r1, [sp, #0x4]
+ ldr r2, [sp, #0x0]
+ add r0, r5, #0x0
+ bl FUN_0204A6E0
+ bl FUN_020547A4
+ cmp r0, #0x1
+ bne _0203707E
+ cmp r4, #0x3
+ bhi _0203707E
+ add r0, r4, r4
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02037058: ; jump table (using 16-bit offset)
+ .short _02037060 - _02037058 - 2; case 0
+ .short _02037068 - _02037058 - 2; case 1
+ .short _02037070 - _02037058 - 2; case 2
+ .short _02037078 - _02037058 - 2; case 3
+_02037060:
+ ldr r0, [sp, #0x0]
+ sub r0, r0, #0x1
+ str r0, [sp, #0x0]
+ b _0203707E
+_02037068:
+ ldr r0, [sp, #0x0]
+ add r0, r0, #0x1
+ str r0, [sp, #0x0]
+ b _0203707E
+_02037070:
+ ldr r0, [sp, #0x4]
+ sub r0, r0, #0x1
+ str r0, [sp, #0x4]
+ b _0203707E
+_02037078:
+ ldr r0, [sp, #0x4]
+ add r0, r0, #0x1
+ str r0, [sp, #0x4]
+_0203707E:
+ ldr r0, [r5, #0x34]
+ ldr r1, [sp, #0x4]
+ ldr r2, [sp, #0x0]
+ bl FUN_02058D74
+ str r0, [r6, #0x0]
+ add sp, #0x8
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_02037090
+FUN_02037090: ; 0x02037090
+ push {r3-r5, lr}
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ bl FUN_02037024
+ ldr r0, [r4, #0x0]
+ cmp r0, #0x0
+ beq _020370B8
+ bl FUN_020588D4
+ cmp r0, #0x1
+ bne _020370B8
+ ldr r0, [r5, #0x38]
+ ldr r1, [r4, #0x0]
+ bl FUN_02037000
+ cmp r0, #0x1
+ bne _020370B8
+ mov r0, #0x1
+ pop {r3-r5, pc}
+_020370B8:
+ mov r0, #0x0
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_020370BC
+FUN_020370BC: ; 0x020370BC
+ push {r3-r7, lr}
+ sub sp, #0x10
+ str r1, [sp, #0x0]
+ str r2, [sp, #0x4]
+ add r1, sp, #0xc
+ add r2, sp, #0x8
+ add r6, r0, #0x0
+ bl FUN_02036FA4
+ ldr r0, [sp, #0x4]
+ mov r7, #0x0
+ cmp r0, #0x0
+ ble _02037130
+ ldr r4, [sp, #0x0]
+ add r5, r4, #0x0
+_020370DA:
+ ldr r1, [sp, #0xc]
+ ldr r0, [r4, #0x4]
+ cmp r1, r0
+ bne _02037124
+ ldr r1, [sp, #0x8]
+ ldr r0, [r4, #0x8]
+ cmp r1, r0
+ bne _02037124
+ ldrh r0, [r4, #0x2]
+ cmp r0, #0x2
+ bne _0203710A
+ add r0, r6, #0x0
+ add r1, r5, #0x0
+ bl FUN_0203713C
+ cmp r0, #0x1
+ bne _02037124
+ mov r0, #0x14
+ add r1, r7, #0x0
+ mul r1, r0
+ ldr r0, [sp, #0x0]
+ add sp, #0x10
+ ldrh r0, [r0, r1]
+ pop {r3-r7, pc}
+_0203710A:
+ add r0, r6, #0x0
+ add r1, r5, #0x0
+ bl FUN_02037168
+ cmp r0, #0x1
+ bne _02037124
+ mov r0, #0x14
+ add r1, r7, #0x0
+ mul r1, r0
+ ldr r0, [sp, #0x0]
+ add sp, #0x10
+ ldrh r0, [r0, r1]
+ pop {r3-r7, pc}
+_02037124:
+ ldr r0, [sp, #0x4]
+ add r7, r7, #0x1
+ add r4, #0x14
+ add r5, #0x14
+ cmp r7, r0
+ blt _020370DA
+_02037130:
+ ldr r0, _02037138 ; =0x0000FFFF
+ add sp, #0x10
+ pop {r3-r7, pc}
+ nop
+_02037138: .word 0x0000FFFF
+
+ thumb_func_start FUN_0203713C
+FUN_0203713C: ; 0x0203713C
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldrh r0, [r1, #0x2]
+ cmp r0, #0x2
+ beq _0203714A
+ mov r0, #0x0
+ pop {r4, pc}
+_0203714A:
+ ldrh r0, [r1, #0x0]
+ bl FUN_02039694
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_02039528
+ cmp r0, #0x1
+ beq _02037160
+ mov r0, #0x1
+ b _02037162
+_02037160:
+ mov r0, #0x0
+_02037162:
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ pop {r4, pc}
+
+ thumb_func_start FUN_02037168
+FUN_02037168: ; 0x02037168
+ push {r4, lr}
+ add r4, r1, #0x0
+ ldrh r1, [r4, #0x10]
+ cmp r1, #0x4
+ bne _02037176
+ mov r0, #0x1
+ pop {r4, pc}
+_02037176:
+ ldr r0, [r0, #0x38]
+ bl FUN_020552F8
+ cmp r0, #0x3
+ bhi _020371CC
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0203718C: ; jump table (using 16-bit offset)
+ .short _02037194 - _0203718C - 2; case 0
+ .short _020371A2 - _0203718C - 2; case 1
+ .short _020371B0 - _0203718C - 2; case 2
+ .short _020371BE - _0203718C - 2; case 3
+_02037194:
+ ldrh r0, [r4, #0x10]
+ cmp r0, #0x0
+ beq _0203719E
+ cmp r0, #0x6
+ bne _020371CC
+_0203719E:
+ mov r0, #0x1
+ pop {r4, pc}
+_020371A2:
+ ldrh r0, [r4, #0x10]
+ cmp r0, #0x3
+ beq _020371AC
+ cmp r0, #0x6
+ bne _020371CC
+_020371AC:
+ mov r0, #0x1
+ pop {r4, pc}
+_020371B0:
+ ldrh r0, [r4, #0x10]
+ cmp r0, #0x2
+ beq _020371BA
+ cmp r0, #0x5
+ bne _020371CC
+_020371BA:
+ mov r0, #0x1
+ pop {r4, pc}
+_020371BE:
+ ldrh r0, [r4, #0x10]
+ cmp r0, #0x1
+ beq _020371C8
+ cmp r0, #0x5
+ bne _020371CC
+_020371C8:
+ mov r0, #0x1
+ pop {r4, pc}
+_020371CC:
+ mov r0, #0x0
+ pop {r4, pc}
+
+ thumb_func_start FUN_020371D0
+FUN_020371D0: ; 0x020371D0
+ push {r4-r6, lr}
+ sub sp, #0x8
+ add r5, r0, #0x0
+ ldr r0, [r5, #0x38]
+ add r6, r1, #0x0
+ add r4, r2, #0x0
+ bl FUN_020552F8
+ cmp r0, #0x0
+ beq _020371EA
+ add sp, #0x8
+ ldr r0, _0203722C ; =0x0000FFFF
+ pop {r4-r6, pc}
+_020371EA:
+ add r0, r5, #0x0
+ add r1, sp, #0x4
+ add r2, sp, #0x0
+ bl FUN_02036FA4
+ mov r0, #0x0
+ cmp r4, #0x0
+ ble _02037224
+ ldr r2, [sp, #0x4]
+ ldr r3, [sp, #0x0]
+ add r1, r6, #0x0
+_02037200:
+ ldr r5, [r1, #0x4]
+ cmp r2, r5
+ bne _0203721C
+ ldr r5, [r1, #0x8]
+ cmp r3, r5
+ bne _0203721C
+ ldrh r5, [r1, #0x2]
+ cmp r5, #0x1
+ bne _0203721C
+ mov r1, #0x14
+ mul r1, r0
+ add sp, #0x8
+ ldrh r0, [r6, r1]
+ pop {r4-r6, pc}
+_0203721C:
+ add r0, r0, #0x1
+ add r1, #0x14
+ cmp r0, r4
+ blt _02037200
+_02037224:
+ ldr r0, _0203722C ; =0x0000FFFF
+ add sp, #0x8
+ pop {r4-r6, pc}
+ nop
+_0203722C: .word 0x0000FFFF
+
+ thumb_func_start FUN_02037230
+FUN_02037230: ; 0x02037230
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ ldr r0, [r5, #0x38]
+ add r4, r1, #0x0
+ bl FUN_020552F8
+ cmp r0, #0x0
+ beq _02037244
+ mov r0, #0x0
+ pop {r3-r5, pc}
+_02037244:
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_02037090
+ cmp r0, #0x1
+ bne _02037260
+ ldr r0, [r4, #0x0]
+ bl FUN_02058458
+ sub r0, #0x5b
+ cmp r0, #0x5
+ bhi _02037260
+ mov r0, #0x1
+ pop {r3-r5, pc}
+_02037260:
+ mov r0, #0x0
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_02037264
+FUN_02037264: ; 0x02037264
+ push {r4-r7, lr}
+ sub sp, #0xc
+ str r0, [sp, #0x0]
+ ldr r0, [r0, #0x38]
+ str r1, [sp, #0x4]
+ str r2, [sp, #0x8]
+ bl FUN_02055320
+ add r6, r0, #0x0
+ ldr r0, [sp, #0x0]
+ ldr r0, [r0, #0x38]
+ bl FUN_0205532C
+ add r4, r0, #0x0
+ ldr r0, [sp, #0x8]
+ mov r7, #0x0
+ cmp r0, #0x0
+ ble _020372C8
+ ldr r5, [sp, #0x4]
+_0203728A:
+ ldrh r1, [r5, #0x2]
+ cmp r6, r1
+ blt _020372BE
+ ldrh r0, [r5, #0x6]
+ add r0, r1, r0
+ cmp r6, r0
+ bge _020372BE
+ ldrh r1, [r5, #0x4]
+ cmp r4, r1
+ blt _020372BE
+ ldrh r0, [r5, #0x8]
+ add r0, r1, r0
+ cmp r4, r0
+ bge _020372BE
+ ldrh r1, [r5, #0xe]
+ ldr r0, [sp, #0x0]
+ bl FUN_020394F0
+ ldrh r1, [r5, #0xc]
+ cmp r1, r0
+ bne _020372BE
+ ldr r0, [sp, #0x4]
+ lsl r1, r7, #0x4
+ add sp, #0xc
+ ldrh r0, [r0, r1]
+ pop {r4-r7, pc}
+_020372BE:
+ ldr r0, [sp, #0x8]
+ add r7, r7, #0x1
+ add r5, #0x10
+ cmp r7, r0
+ blt _0203728A
+_020372C8:
+ ldr r0, _020372D0 ; =0x0000FFFF
+ add sp, #0xc
+ pop {r4-r7, pc}
+ nop
+_020372D0: .word 0x0000FFFF
+
+ thumb_func_start FUN_020372D4
+FUN_020372D4: ; 0x020372D4
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ bl FUN_0200628C
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_02037400
+ ldr r1, _02037300 ; =0x021C5A08
+ str r0, [r1, #0x0]
+ ldr r1, [r4, #0x4]
+ cmp r1, #0x0
+ beq _020372F4
+ bl FUN_02048FC8
+ b _020372F8
+_020372F4:
+ bl FUN_02048EC8
+_020372F8:
+ mov r0, #0x0
+ str r0, [r4, #0x4]
+ mov r0, #0x1
+ pop {r3-r5, pc}
+ .balign 4
+_02037300: .word 0x021C5A08
+
+ thumb_func_start FUN_02037304
+FUN_02037304: ; 0x02037304
+ push {r3, lr}
+ bl FUN_02037400
+ ldr r1, _02037318 ; =0x021C5A08
+ str r0, [r1, #0x0]
+ bl FUN_02048D90
+ mov r0, #0x1
+ pop {r3, pc}
+ nop
+_02037318: .word 0x021C5A08
+
+ thumb_func_start FUN_0203731C
+FUN_0203731C: ; 0x0203731C
+ push {r3, lr}
+ bl FUN_02006278
+ bl FUN_02037524
+ cmp r0, #0x0
+ beq _0203732E
+ mov r0, #0x1
+ pop {r3, pc}
+_0203732E:
+ mov r0, #0x0
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_02037334
+FUN_02037334: ; 0x02037334
+ push {r3, lr}
+ bl FUN_020374B0
+ ldr r0, _02037348 ; =0x0000003F
+ ldr r1, _0203734C ; =0x021DBAB8
+ bl FUN_02000E7C
+ mov r0, #0x1
+ pop {r3, pc}
+ nop
+_02037348: .word 0x0000003F
+_0203734C: .word 0x021DBAB8
+
+ thumb_func_start FUN_02037350
+FUN_02037350: ; 0x02037350
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r0, [r4, #0x0]
+ ldr r0, [r0, #0x4]
+ cmp r0, #0x0
+ beq _02037360
+ bl ErrorHandling
+_02037360:
+ ldr r0, [r4, #0x0]
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ beq _0203736C
+ bl ErrorHandling
+_0203736C:
+ ldr r0, _0203738C ; =0x00000005
+ mov r1, #0x2
+ bl FUN_02005FDC
+ mov r1, #0x0
+ str r1, [r4, #0x64]
+ ldr r0, [r4, #0x0]
+ mov r2, #0xb
+ str r1, [r0, #0x8]
+ ldr r0, _02037390 ; =0x021F64C8
+ add r1, r4, #0x0
+ bl FUN_02006234
+ ldr r1, [r4, #0x0]
+ str r0, [r1, #0x0]
+ pop {r4, pc}
+ .balign 4
+_0203738C: .word 0x00000005
+_02037390: .word 0x021F64C8
+
+ thumb_func_start FUN_02037394
+FUN_02037394: ; 0x02037394
+ mov r1, #0x0
+ str r1, [r0, #0x64]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_0203739C
+FUN_0203739C: ; 0x0203739C
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ beq _020373A8
+ mov r0, #0x1
+ bx lr
+_020373A8:
+ mov r0, #0x0
+ bx lr
+
+ thumb_func_start FUN_020373AC
+FUN_020373AC: ; 0x020373AC
+ ldr r1, [r0, #0x0]
+ ldr r1, [r1, #0x0]
+ cmp r1, #0x0
+ beq _020373BE
+ ldr r0, [r0, #0x64]
+ cmp r0, #0x0
+ beq _020373BE
+ mov r0, #0x1
+ bx lr
+_020373BE:
+ mov r0, #0x0
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_020373C4
+FUN_020373C4: ; 0x020373C4
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0x4]
+ cmp r0, #0x0
+ beq _020373D0
+ mov r0, #0x1
+ bx lr
+_020373D0:
+ mov r0, #0x0
+ bx lr
+
+ thumb_func_start FUN_020373D4
+FUN_020373D4: ; 0x020373D4
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ ldr r0, [r5, #0x0]
+ add r4, r1, #0x0
+ ldr r0, [r0, #0x4]
+ add r6, r2, #0x0
+ cmp r0, #0x0
+ beq _020373E8
+ bl ErrorHandling
+_020373E8:
+ add r0, r5, #0x0
+ bl FUN_02037394
+ add r0, r4, #0x0
+ add r1, r6, #0x0
+ mov r2, #0xb
+ bl FUN_02006234
+ ldr r1, [r5, #0x0]
+ str r0, [r1, #0x4]
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_02037400
+FUN_02037400: ; 0x02037400
+ push {r3-r5, lr}
+ mov r2, #0x7
+ add r5, r0, #0x0
+ mov r0, #0x3
+ mov r1, #0xb
+ lsl r2, r2, #0xe
+ bl FUN_0201681C
+ mov r1, #0x20
+ mov r0, #0x3
+ lsl r2, r1, #0x9
+ bl FUN_0201681C
+ mov r2, #0x3
+ mov r0, #0x0
+ mov r1, #0x5b
+ lsl r2, r2, #0x8
+ bl FUN_0201681C
+ add r0, r5, #0x0
+ mov r1, #0xb8
+ mov r2, #0xb
+ bl FUN_02006268
+ mov r1, #0x0
+ mov r2, #0xb8
+ add r4, r0, #0x0
+ blx MI_CpuFill8
+ mov r0, #0xb
+ mov r1, #0x10
+ bl FUN_02016998
+ str r0, [r4, #0x0]
+ mov r1, #0x0
+ str r1, [r0, #0x0]
+ ldr r0, [r4, #0x0]
+ str r1, [r0, #0x4]
+ ldr r0, [r4, #0x0]
+ str r1, [r0, #0x8]
+ ldr r0, [r4, #0x0]
+ str r1, [r0, #0xc]
+ add r0, r5, #0x0
+ bl FUN_0200628C
+ ldr r0, [r0, #0x8]
+ str r0, [r4, #0xc]
+ mov r0, #0x0
+ str r0, [r4, #0x10]
+ ldr r0, [r4, #0xc]
+ bl FUN_02034E30
+ bl FUN_02034DC0
+ str r0, [r4, #0x1c]
+ bl FUN_02034494
+ str r0, [r4, #0x28]
+ add r0, r4, #0x0
+ mov r1, #0xb
+ bl FUN_02034A28
+ mov r0, #0xb
+ bl FUN_0206F164
+ add r1, r4, #0x0
+ add r1, #0x94
+ str r0, [r1, #0x0]
+ mov r0, #0xb
+ bl FUN_0205DD18
+ add r1, r4, #0x0
+ add r1, #0x90
+ str r0, [r1, #0x0]
+ add r0, r4, #0x0
+ add r0, #0x90
+ ldr r0, [r0, #0x0]
+ bl FUN_0205DD40
+ mov r0, #0xb
+ bl FUN_0208A300
+ add r1, r4, #0x0
+ add r1, #0xb0
+ str r0, [r1, #0x0]
+ add r0, r4, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_020374B0
+FUN_020374B0: ; 0x020374B0
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ bl FUN_02006278
+ add r4, r0, #0x0
+ ldr r0, [r4, #0x28]
+ bl FUN_020344D0
+ add r0, r4, #0x0
+ bl FUN_02034A48
+ add r0, r4, #0x0
+ add r0, #0x94
+ ldr r0, [r0, #0x0]
+ bl FUN_02016A18
+ add r0, r4, #0x0
+ add r0, #0x90
+ ldr r0, [r0, #0x0]
+ bl FUN_0205DD38
+ add r0, r4, #0x0
+ add r0, #0xb0
+ ldr r0, [r0, #0x0]
+ bl FUN_0208A320
+ ldr r0, [r4, #0x0]
+ bl FUN_02016A18
+ add r0, r5, #0x0
+ bl FUN_0200627C
+ mov r0, #0x5b
+ bl FUN_020168D0
+ mov r0, #0xb
+ bl FUN_020168D0
+ mov r0, #0x20
+ bl FUN_020168D0
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_02037504
+FUN_02037504: ; 0x02037504
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r0, [r4, #0x0]
+ cmp r0, #0x0
+ beq _02037520
+ bl FUN_02006290
+ cmp r0, #0x0
+ beq _02037520
+ ldr r0, [r4, #0x0]
+ bl FUN_02006260
+ mov r0, #0x0
+ str r0, [r4, #0x0]
+_02037520:
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02037524
+FUN_02037524: ; 0x02037524
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl FUN_02037594
+ add r0, r4, #0x0
+ bl FUN_02046420
+ cmp r0, #0x1
+ bne _02037546
+ ldr r0, [r4, #0x4]
+ cmp r0, #0x0
+ beq _02037546
+ mov r1, #0x0
+ add r0, r4, #0x0
+ add r2, r1, #0x0
+ bl FUN_021EFA9C
+_02037546:
+ ldr r0, [r4, #0x0]
+ ldr r1, [r0, #0x0]
+ cmp r1, #0x0
+ beq _02037562
+ bl FUN_02037504
+ ldr r0, [r4, #0x0]
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ bne _0203756E
+ ldr r0, _02037590 ; =0x00000005
+ bl FUN_02005F60
+ b _0203756E
+_02037562:
+ ldr r1, [r0, #0x4]
+ cmp r1, #0x0
+ beq _0203756E
+ add r0, r0, #0x4
+ bl FUN_02037504
+_0203756E:
+ ldr r1, [r4, #0x0]
+ ldr r0, [r1, #0xc]
+ cmp r0, #0x0
+ beq _0203758C
+ ldr r0, [r4, #0x10]
+ cmp r0, #0x0
+ bne _0203758C
+ ldr r0, [r1, #0x0]
+ cmp r0, #0x0
+ bne _0203758C
+ ldr r0, [r1, #0x4]
+ cmp r0, #0x0
+ bne _0203758C
+ mov r0, #0x1
+ pop {r4, pc}
+_0203758C:
+ mov r0, #0x0
+ pop {r4, pc}
+ .balign 4
+_02037590: .word 0x00000005
+
+ thumb_func_start FUN_02037594
+FUN_02037594: ; 0x02037594
+ push {r3-r5, lr}
+ sub sp, #0x10
+ add r4, r0, #0x0
+ ldr r1, [r4, #0x0]
+ mov r5, #0x0
+ ldr r1, [r1, #0x8]
+ cmp r1, #0x0
+ bne _020375B4
+ ldr r1, [r4, #0x64]
+ cmp r1, #0x0
+ beq _020375B4
+ bl FUN_0204646C
+ cmp r0, #0x0
+ bne _020375B4
+ mov r5, #0x1
+_020375B4:
+ cmp r5, #0x0
+ beq _020375D4
+ ldr r0, [r4, #0x38]
+ bl FUN_02055A38
+ ldr r3, _02037758 ; =0x021C48B8
+ add r0, sp, #0x8
+ ldr r2, [r3, #0x48]
+ ldr r3, [r3, #0x44]
+ lsl r2, r2, #0x10
+ lsl r3, r3, #0x10
+ add r1, r4, #0x0
+ lsr r2, r2, #0x10
+ lsr r3, r3, #0x10
+ bl FUN_021D8164
+_020375D4:
+ ldr r0, [r4, #0x1c]
+ ldr r2, [r4, #0x6c]
+ ldr r1, [r0, #0x0]
+ ldr r0, _0203775C ; =0x00000146
+ cmp r1, r0
+ bne _020375E2
+ mov r2, #0x0
+_020375E2:
+ cmp r2, #0x4
+ bhi _020376E2
+ add r0, r2, r2
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_020375F2: ; jump table (using 16-bit offset)
+ .short _020376E2 - _020375F2 - 2; case 0
+ .short _020375FC - _020375F2 - 2; case 1
+ .short _02037646 - _020375F2 - 2; case 2
+ .short _0203761C - _020375F2 - 2; case 3
+ .short _02037672 - _020375F2 - 2; case 4
+_020375FC:
+ cmp r5, #0x0
+ beq _02037610
+ bl FUN_0204E2FC
+ cmp r0, #0x0
+ beq _02037610
+ add r0, sp, #0x8
+ add r1, r4, #0x0
+ bl FUN_021D85FC
+_02037610:
+ add r0, r4, #0x0
+ add r1, r5, #0x0
+ bl FUN_0204D6C0
+ add sp, #0x10
+ pop {r3-r5, pc}
+_0203761C:
+ cmp r5, #0x0
+ beq _0203763A
+ bl FUN_0204E2FC
+ cmp r0, #0x0
+ beq _02037638
+ add r0, sp, #0x8
+ add r1, r4, #0x0
+ bl FUN_021D865C
+ cmp r0, #0x1
+ bne _0203763A
+ mov r5, #0x0
+ b _0203763A
+_02037638:
+ mov r5, #0x0
+_0203763A:
+ add r0, r4, #0x0
+ add r1, r5, #0x0
+ bl FUN_0204D6C0
+ add sp, #0x10
+ pop {r3-r5, pc}
+_02037646:
+ cmp r5, #0x0
+ bne _0203764C
+ b _02037754
+_0203764C:
+ add r0, sp, #0x8
+ add r1, r4, #0x0
+ bl FUN_021D8758
+ cmp r0, #0x1
+ beq _02037754
+ add r3, sp, #0x8
+ ldrh r0, [r3, #0x6]
+ mov r2, #0x0
+ str r0, [sp, #0x0]
+ str r2, [sp, #0x4]
+ ldrh r3, [r3, #0x4]
+ ldr r0, [r4, #0x38]
+ ldr r1, [r4, #0x24]
+ sub r2, r2, #0x1
+ bl FUN_020557F4
+ add sp, #0x10
+ pop {r3-r5, pc}
+_02037672:
+ cmp r5, #0x0
+ beq _02037754
+ add r0, sp, #0x8
+ add r1, r4, #0x0
+ bl FUN_021D8820
+ cmp r0, #0x1
+ bne _020376A6
+ ldr r0, [r4, #0x4]
+ ldr r0, [r0, #0x8]
+ bl FUN_021E32F0
+ add r0, r4, #0x0
+ mov r1, #0x4
+ bl FUN_021E81BC
+ ldr r0, [r4, #0x38]
+ bl FUN_021E7138
+ add r0, r4, #0x0
+ mov r1, #0x0
+ mov r2, #0x1
+ bl FUN_021EFA9C
+ add sp, #0x10
+ pop {r3-r5, pc}
+_020376A6:
+ ldr r0, _02037758 ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #0x1
+ tst r0, r1
+ beq _020376B8
+ ldr r0, [r4, #0x4]
+ ldr r0, [r0, #0x8]
+ bl FUN_021E32F0
+_020376B8:
+ mov r5, #0x0
+ bl FUN_02037790
+ cmp r0, #0x0
+ beq _020376C8
+ bl FUN_02252534
+ add r5, r0, #0x0
+_020376C8:
+ add r3, sp, #0x8
+ ldrh r0, [r3, #0x6]
+ mov r2, #0x0
+ mvn r2, r2
+ str r0, [sp, #0x0]
+ str r5, [sp, #0x4]
+ ldrh r3, [r3, #0x4]
+ ldr r0, [r4, #0x38]
+ ldr r1, [r4, #0x24]
+ bl FUN_020557F4
+ add sp, #0x10
+ pop {r3-r5, pc}
+_020376E2:
+ cmp r5, #0x0
+ beq _02037754
+ add r0, sp, #0x8
+ add r1, r4, #0x0
+ bl FUN_021D8320
+ cmp r0, #0x1
+ bne _0203771C
+ ldr r0, [r4, #0x4]
+ ldr r0, [r0, #0x8]
+ bl FUN_021E32F0
+ add r0, r4, #0x0
+ mov r1, #0x4
+ bl FUN_021E81BC
+ ldr r0, [r4, #0x38]
+ bl FUN_02055B14
+ ldr r0, [r4, #0x38]
+ bl FUN_021E7138
+ add r0, r4, #0x0
+ mov r1, #0x0
+ mov r2, #0x1
+ bl FUN_021EFA9C
+ add sp, #0x10
+ pop {r3-r5, pc}
+_0203771C:
+ ldr r0, _02037758 ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #0x1
+ tst r0, r1
+ beq _0203772E
+ ldr r0, [r4, #0x4]
+ ldr r0, [r0, #0x8]
+ bl FUN_021E32F0
+_0203772E:
+ mov r5, #0x0
+ bl FUN_02037790
+ cmp r0, #0x0
+ beq _0203773E
+ bl FUN_02252534
+ add r5, r0, #0x0
+_0203773E:
+ add r3, sp, #0x8
+ ldrh r0, [r3, #0x6]
+ mov r2, #0x0
+ mvn r2, r2
+ str r0, [sp, #0x0]
+ str r5, [sp, #0x4]
+ ldrh r3, [r3, #0x4]
+ ldr r0, [r4, #0x38]
+ ldr r1, [r4, #0x24]
+ bl FUN_020557F4
+_02037754:
+ add sp, #0x10
+ pop {r3-r5, pc}
+ .balign 4
+_02037758: .word 0x021C48B8
+_0203775C: .word 0x00000146
+
+ thumb_func_start FUN_02037760
+FUN_02037760: ; 0x02037760
+ ldr r0, _02037770 ; =0x021C5A08
+ ldr r3, _02037774 ; =FUN_02030FC8
+ ldr r0, [r0, #0x0]
+ mov r1, #0x1
+ ldr r0, [r0, #0x0]
+ str r1, [r0, #0x8]
+ bx r3
+ nop
+_02037770: .word 0x021C5A08
+_02037774: .word FUN_02030FC8
+
+ thumb_func_start FUN_02037778
+FUN_02037778: ; 0x02037778
+ ldr r0, _02037788 ; =0x021C5A08
+ ldr r3, _0203778C ; =FUN_02030FA8
+ ldr r0, [r0, #0x0]
+ mov r1, #0x0
+ ldr r0, [r0, #0x0]
+ str r1, [r0, #0x8]
+ bx r3
+ nop
+_02037788: .word 0x021C5A08
+_0203778C: .word FUN_02030FA8
+
+ thumb_func_start FUN_02037790
+FUN_02037790: ; 0x02037790
+ ldr r0, _020377A4 ; =0x021C5A08
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0x4]
+ cmp r0, #0x0
+ bne _0203779E
+ mov r0, #0x0
+ bx lr
+_0203779E:
+ ldr r0, [r0, #0x14]
+ bx lr
+ nop
+_020377A4: .word 0x021C5A08
+
+ thumb_func_start FUN_020377A8
+FUN_020377A8: ; 0x020377A8
+ ldr r0, [r0, #0x8]
+ bx lr
+
+ thumb_func_start FUN_020377AC
+FUN_020377AC: ; 0x020377AC
+ ldr r0, [r0, #0xc]
+ bx lr
+
+ thumb_func_start FUN_020377B0
+FUN_020377B0: ; 0x020377B0
+ ldr r2, _020377C4 ; =0x020F2B9C
+ add r3, r0, #0x0
+ ldmia r2!, {r0-r1}
+ stmia r3!, {r0-r1}
+ ldmia r2!, {r0-r1}
+ stmia r3!, {r0-r1}
+ ldr r0, [r2, #0x0]
+ str r0, [r3, #0x0]
+ bx lr
+ nop
+_020377C4: .word 0x020F2B9C
+
+ thumb_func_start FUN_020377C8
+FUN_020377C8: ; 0x020377C8
+ ldr r2, _020377DC ; =0x020F2BB0
+ add r3, r0, #0x0
+ ldmia r2!, {r0-r1}
+ stmia r3!, {r0-r1}
+ ldmia r2!, {r0-r1}
+ stmia r3!, {r0-r1}
+ ldr r0, [r2, #0x0]
+ str r0, [r3, #0x0]
+ bx lr
+ nop
+_020377DC: .word 0x020F2BB0
+
+ thumb_func_start FUN_020377E0
+FUN_020377E0: ; 0x020377E0
+ push {r3, lr}
+ bl FUN_02034E30
+ bl FUN_02034DC0
+ bl FUN_020377B0
+ pop {r3, pc}
+
+ thumb_func_start FUN_020377F0
+FUN_020377F0: ; 0x020377F0
+ mov r0, #0x1
+ bx lr
+
+ thumb_func_start FUN_020377F4
+FUN_020377F4: ; 0x020377F4
+ push {r3, lr}
+ bl FUN_0222D5C0
+ cmp r0, #0x0
+ beq _02037802
+ mov r0, #0x1
+ pop {r3, pc}
+_02037802:
+ mov r0, #0x0
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_02037808
+FUN_02037808: ; 0x02037808
+ mov r0, #0x1
+ bx lr
+
+ thumb_func_start FUN_0203780C
+FUN_0203780C: ; 0x0203780C
+ ldr r3, _02037814 ; =FUN_020373D4
+ add r2, r1, #0x0
+ ldr r1, _02037818 ; =0x020F2D94
+ bx r3
+ .balign 4
+_02037814: .word FUN_020373D4
+_02037818: .word 0x020F2D94
+
+ thumb_func_start FUN_0203781C
+FUN_0203781C: ; 0x0203781C
+ push {r4-r6, lr}
+ sub sp, #0x10
+ ldr r5, _02037840 ; =0x020F2D74
+ add r4, sp, #0x0
+ add r6, r0, #0x0
+ add r2, r1, #0x0
+ add r3, r4, #0x0
+ ldmia r5!, {r0-r1}
+ stmia r4!, {r0-r1}
+ ldmia r5!, {r0-r1}
+ stmia r4!, {r0-r1}
+ add r0, r6, #0x0
+ add r1, r3, #0x0
+ bl FUN_020373D4
+ add sp, #0x10
+ pop {r4-r6, pc}
+ nop
+_02037840: .word 0x020F2D74
+
+ thumb_func_start FUN_02037844
+FUN_02037844: ; 0x02037844
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ ldr r0, [r5, #0xc]
+ add r6, r1, #0x0
+ bl FUN_0206F158
+ ldr r1, _02037898 ; =0x020F2BDC
+ mov r2, #0xb
+ bl FUN_0206EFEC
+ add r3, r5, #0x0
+ add r3, #0x94
+ ldr r1, [r5, #0xc]
+ ldr r3, [r3, #0x0]
+ mov r2, #0x0
+ add r4, r0, #0x0
+ bl FUN_0206E314
+ ldr r1, [r5, #0x6c]
+ add r0, r4, #0x0
+ lsl r1, r1, #0x10
+ lsr r1, r1, #0x10
+ bl FUN_0206E360
+ ldr r0, [r5, #0x38]
+ bl FUN_020553C4
+ cmp r0, #0x1
+ bne _02037884
+ add r0, r4, #0x0
+ bl FUN_0206E340
+_02037884:
+ add r0, r4, #0x0
+ add r1, r6, #0x0
+ bl FUN_0206E354
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_0203781C
+ add r0, r4, #0x0
+ pop {r4-r6, pc}
+ .balign 4
+_02037898: .word 0x020F2BDC
+
+ thumb_func_start FUN_0203789C
+FUN_0203789C: ; 0x0203789C
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ ldr r0, [r5, #0xc]
+ add r4, r1, #0x0
+ bl FUN_0206F158
+ add r6, r0, #0x0
+ cmp r4, #0x0
+ beq _020378B4
+ cmp r4, #0x1
+ beq _020378BC
+ b _020378C4
+_020378B4:
+ ldr r1, _020378F0 ; =0x020F2BC8
+ ldr r0, _020378F4 ; =0x02105DB8
+ str r1, [r0, #0x0]
+ b _020378C8
+_020378BC:
+ ldr r1, _020378F8 ; =0x020F2BC4
+ ldr r0, _020378F4 ; =0x02105DB8
+ str r1, [r0, #0x0]
+ b _020378C8
+_020378C4:
+ bl ErrorHandling
+_020378C8:
+ ldr r1, _020378F4 ; =0x02105DB8
+ add r0, r6, #0x0
+ ldr r1, [r1, #0x0]
+ mov r2, #0x20
+ bl FUN_0206EFEC
+ add r3, r5, #0x0
+ add r3, #0x94
+ ldr r1, [r5, #0xc]
+ ldr r3, [r3, #0x0]
+ add r4, r0, #0x0
+ mov r2, #0x3
+ bl FUN_0206E314
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_0203781C
+ add r0, r4, #0x0
+ pop {r4-r6, pc}
+ .balign 4
+_020378F0: .word 0x020F2BC8
+_020378F4: .word 0x02105DB8
+_020378F8: .word 0x020F2BC4
+
+ thumb_func_start FUN_020378FC
+FUN_020378FC: ; 0x020378FC
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ bl FUN_0206E37C
+ add r4, r0, #0x0
+ beq _02037916
+ add r0, r5, #0x0
+ bl FUN_0206E384
+ cmp r0, #0x5
+ bne _02037916
+ bl ErrorHandling
+_02037916:
+ add r0, r4, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_0203791C
+FUN_0203791C: ; 0x0203791C
+ push {r4-r6, lr}
+ sub sp, #0x10
+ ldr r5, _02037940 ; =0x020F2D44
+ add r4, sp, #0x0
+ add r6, r0, #0x0
+ add r2, r1, #0x0
+ add r3, r4, #0x0
+ ldmia r5!, {r0-r1}
+ stmia r4!, {r0-r1}
+ ldmia r5!, {r0-r1}
+ stmia r4!, {r0-r1}
+ add r0, r6, #0x0
+ add r1, r3, #0x0
+ bl FUN_020373D4
+ add sp, #0x10
+ pop {r4-r6, pc}
+ nop
+_02037940: .word 0x020F2D44
+
+ thumb_func_start FUN_02037944
+FUN_02037944: ; 0x02037944
+ push {r3-r5, lr}
+ sub sp, #0x10
+ ldr r4, _02037968 ; =0x020F2D24
+ add r3, sp, #0x0
+ add r5, r0, #0x0
+ add r2, r3, #0x0
+ ldmia r4!, {r0-r1}
+ stmia r3!, {r0-r1}
+ ldmia r4!, {r0-r1}
+ stmia r3!, {r0-r1}
+ add r1, r2, #0x0
+ ldr r2, [r5, #0xc]
+ add r0, r5, #0x0
+ bl FUN_020373D4
+ add sp, #0x10
+ pop {r3-r5, pc}
+ nop
+_02037968: .word 0x020F2D24
+
+ thumb_func_start FUN_0203796C
+FUN_0203796C: ; 0x0203796C
+ ldr r3, _02037974 ; =FUN_020373D4
+ add r2, r1, #0x0
+ ldr r1, _02037978 ; =0x020FA6E8
+ bx r3
+ .balign 4
+_02037974: .word FUN_020373D4
+_02037978: .word 0x020FA6E8
+
+ thumb_func_start FUN_0203797C
+FUN_0203797C: ; 0x0203797C
+ push {r3-r7, lr}
+ add r5, r1, #0x0
+ mov r1, #0x40
+ add r6, r2, #0x0
+ add r7, r3, #0x0
+ bl FUN_02016998
+ add r4, r0, #0x0
+ mov r0, #0x0
+ add r1, r4, #0x0
+ mov r2, #0x40
+ blx MIi_CpuClearFast
+ ldr r0, [r5, #0xc]
+ bl FUN_0206BB1C
+ str r0, [r4, #0x0]
+ ldr r0, [r5, #0xc]
+ bl FUN_0206F158
+ str r0, [r4, #0x4]
+ ldr r0, [r5, #0xc]
+ bl FUN_02025838
+ str r0, [r4, #0x8]
+ ldr r0, [r5, #0xc]
+ bl LoadPlayerDataAddress
+ str r0, [r4, #0xc]
+ add r0, r4, #0x0
+ add r0, #0x21
+ strb r6, [r0, #0x0]
+ add r0, r4, #0x0
+ add r0, #0x20
+ strb r7, [r0, #0x0]
+ str r5, [r4, #0x1c]
+ add r0, r4, #0x0
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_020379C8
+FUN_020379C8: ; 0x020379C8
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ add r7, r2, #0x0
+ mov r2, #0x0
+ add r6, r1, #0x0
+ mov r0, #0xb
+ add r1, r5, #0x0
+ add r3, r2, #0x0
+ bl FUN_0203797C
+ add r4, r0, #0x0
+ str r6, [r4, #0x18]
+ add r0, #0x22
+ strb r7, [r0, #0x0]
+ ldr r1, _020379F4 ; =0x020F96DC
+ add r0, r5, #0x0
+ add r2, r4, #0x0
+ bl FUN_020373D4
+ add r0, r4, #0x0
+ pop {r3-r7, pc}
+ nop
+_020379F4: .word 0x020F96DC
+
+ thumb_func_start FUN_020379F8
+FUN_020379F8: ; 0x020379F8
+ push {r3-r5, lr}
+ mov r0, #0xb
+ mov r2, #0x0
+ mov r3, #0x3
+ add r5, r1, #0x0
+ bl FUN_0203797C
+ add r4, r0, #0x0
+ ldr r1, _02037A18 ; =0x020F96DC
+ add r0, r5, #0x0
+ add r2, r4, #0x0
+ bl FUN_020373D4
+ add r0, r4, #0x0
+ pop {r3-r5, pc}
+ nop
+_02037A18: .word 0x020F96DC
+
+ thumb_func_start FUN_02037A1C
+FUN_02037A1C: ; 0x02037A1C
+ push {r3-r5, lr}
+ mov r0, #0xb
+ mov r2, #0x0
+ mov r3, #0x13
+ add r5, r1, #0x0
+ bl FUN_0203797C
+ add r4, r0, #0x0
+ ldr r1, _02037A3C ; =0x020F96DC
+ add r0, r5, #0x0
+ add r2, r4, #0x0
+ bl FUN_020373D4
+ add r0, r4, #0x0
+ pop {r3-r5, pc}
+ nop
+_02037A3C: .word 0x020F96DC
+
+ thumb_func_start FUN_02037A40
+FUN_02037A40: ; 0x02037A40
+ add r0, #0x22
+ ldrb r0, [r0, #0x0]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02037A48
+FUN_02037A48: ; 0x02037A48
+ push {r4-r6, lr}
+ add r4, r2, #0x0
+ mov r0, #0xb
+ mov r2, #0x0
+ mov r3, #0x12
+ add r5, r1, #0x0
+ bl FUN_0203797C
+ add r6, r0, #0x0
+ add r0, #0x22
+ strb r4, [r0, #0x0]
+ ldr r1, _02037A6C ; =0x020F96DC
+ add r0, r5, #0x0
+ add r2, r6, #0x0
+ bl FUN_020373D4
+ add r0, r6, #0x0
+ pop {r4-r6, pc}
+ .balign 4
+_02037A6C: .word 0x020F96DC
+
+ thumb_func_start FUN_02037A70
+FUN_02037A70: ; 0x02037A70
+ add r0, #0x23
+ ldrb r0, [r0, #0x0]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02037A78
+FUN_02037A78: ; 0x02037A78
+ ldrb r0, [r0, #0x14]
+ bx lr
+
+ thumb_func_start FUN_02037A7C
+FUN_02037A7C: ; 0x02037A7C
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ bl FUN_02046528
+ add r6, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_0204652C
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_02046530
+ add r5, r0, #0x0
+ ldr r0, [r5, #0x0]
+ cmp r0, #0x4
+ bhi _02037B3A
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02037AA8: ; jump table (using 16-bit offset)
+ .short _02037AB2 - _02037AA8 - 2; case 0
+ .short _02037AC2 - _02037AA8 - 2; case 1
+ .short _02037AF8 - _02037AA8 - 2; case 2
+ .short _02037B1A - _02037AA8 - 2; case 3
+ .short _02037B30 - _02037AA8 - 2; case 4
+_02037AB2:
+ ldr r1, _02037B40 ; =0x020F96DC
+ ldr r2, [r4, #0x4]
+ add r0, r6, #0x0
+ bl FUN_020373D4
+ mov r0, #0x1
+ str r0, [r5, #0x0]
+ b _02037B3A
+_02037AC2:
+ add r0, r6, #0x0
+ bl FUN_0204647C
+ cmp r0, #0x0
+ bne _02037B3A
+ ldr r0, [r4, #0x4]
+ add r0, #0x22
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x6
+ beq _02037AE6
+ cmp r0, #0x7
+ bne _02037AF2
+ mov r0, #0x2
+ bl FUN_020527D8
+ mov r0, #0x4
+ str r0, [r5, #0x0]
+ b _02037B3A
+_02037AE6:
+ mov r0, #0x1
+ bl FUN_020527D8
+ mov r0, #0x4
+ str r0, [r5, #0x0]
+ b _02037B3A
+_02037AF2:
+ mov r0, #0x2
+ str r0, [r5, #0x0]
+ b _02037B3A
+_02037AF8:
+ ldr r1, [r4, #0x0]
+ add r0, r6, #0x0
+ mov r2, #0x0
+ bl FUN_02037C7C
+ str r0, [r4, #0x8]
+ ldr r1, [r4, #0x4]
+ add r1, #0x22
+ ldrb r1, [r1, #0x0]
+ strb r1, [r0, #0x14]
+ ldr r1, [r4, #0x8]
+ add r0, r6, #0x0
+ bl FUN_0203796C
+ mov r0, #0x3
+ str r0, [r5, #0x0]
+ b _02037B3A
+_02037B1A:
+ add r0, r6, #0x0
+ bl FUN_0204647C
+ cmp r0, #0x0
+ bne _02037B3A
+ ldr r0, [r4, #0x8]
+ bl FUN_02016A18
+ mov r0, #0x0
+ str r0, [r5, #0x0]
+ b _02037B3A
+_02037B30:
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ mov r0, #0x1
+ pop {r4-r6, pc}
+_02037B3A:
+ mov r0, #0x0
+ pop {r4-r6, pc}
+ nop
+_02037B40: .word 0x020F96DC
+
+ thumb_func_start FUN_02037B44
+FUN_02037B44: ; 0x02037B44
+ push {r3-r7, lr}
+ add r5, r1, #0x0
+ add r7, r0, #0x0
+ bl FUN_02046528
+ add r6, r0, #0x0
+ add r0, r5, #0x0
+ mov r1, #0xc
+ bl FUN_02016998
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ mov r2, #0x0
+ mov r3, #0x2
+ str r5, [r4, #0x0]
+ bl FUN_0203797C
+ add r5, r0, #0x0
+ add r0, #0x32
+ ldrb r1, [r0, #0x0]
+ mov r0, #0xf
+ add r2, r4, #0x0
+ bic r1, r0
+ mov r0, #0x2
+ orr r1, r0
+ add r0, r5, #0x0
+ add r0, #0x32
+ strb r1, [r0, #0x0]
+ add r0, r5, #0x0
+ add r0, #0x32
+ ldrb r1, [r0, #0x0]
+ mov r0, #0xf0
+ bic r1, r0
+ mov r0, #0x20
+ orr r1, r0
+ add r0, r5, #0x0
+ add r0, #0x32
+ strb r1, [r0, #0x0]
+ add r0, r5, #0x0
+ mov r1, #0x1e
+ add r0, #0x33
+ strb r1, [r0, #0x0]
+ mov r0, #0x0
+ str r0, [r5, #0x14]
+ ldr r1, _02037BAC ; =FUN_02037A7C
+ add r0, r7, #0x0
+ str r5, [r4, #0x4]
+ bl FUN_0204640C
+ add r0, r5, #0x0
+ pop {r3-r7, pc}
+ .balign 4
+_02037BAC: .word FUN_02037A7C
+
+ thumb_func_start FUN_02037BB0
+FUN_02037BB0: ; 0x02037BB0
+ push {r3-r7, lr}
+ add r5, r2, #0x0
+ add r6, r3, #0x0
+ mov r0, #0xb
+ mov r2, #0x0
+ mov r3, #0xd
+ add r7, r1, #0x0
+ bl FUN_0203797C
+ add r4, r0, #0x0
+ ldr r1, [sp, #0x1c]
+ add r0, #0x22
+ strb r1, [r0, #0x0]
+ add r0, r4, #0x0
+ mov r1, #0x2
+ add r0, #0x29
+ strb r1, [r0, #0x0]
+ add r0, r4, #0x0
+ add r0, #0x2a
+ strb r5, [r0, #0x0]
+ ldr r0, [sp, #0x18]
+ cmp r0, #0x0
+ bne _02037BE6
+ add r0, r4, #0x0
+ add r0, #0x2b
+ strb r6, [r0, #0x0]
+ b _02037BEE
+_02037BE6:
+ add r0, r4, #0x0
+ mov r1, #0x0
+ add r0, #0x2b
+ strb r1, [r0, #0x0]
+_02037BEE:
+ ldr r1, _02037BFC ; =0x020F96DC
+ add r0, r7, #0x0
+ add r2, r4, #0x0
+ bl FUN_020373D4
+ add r0, r4, #0x0
+ pop {r3-r7, pc}
+ .balign 4
+_02037BFC: .word 0x020F96DC
+
+ thumb_func_start FUN_02037C00
+FUN_02037C00: ; 0x02037C00
+ push {r4-r6, lr}
+ add r5, r1, #0x0
+ mov r0, #0xb
+ mov r1, #0x30
+ add r6, r2, #0x0
+ bl FUN_02016998
+ add r4, r0, #0x0
+ ldr r0, [r5, #0xc]
+ bl FUN_0206BB1C
+ str r0, [r4, #0x0]
+ ldr r0, [r5, #0xc]
+ bl LoadPlayerDataAddress
+ str r0, [r4, #0x4]
+ mov r0, #0x1
+ strb r0, [r4, #0x11]
+ strb r6, [r4, #0x14]
+ ldr r0, [r4, #0x0]
+ bl FUN_0206B9AC
+ strb r0, [r4, #0x13]
+ mov r0, #0x0
+ strh r0, [r4, #0x18]
+ strb r0, [r4, #0x12]
+ ldr r0, [r5, #0xc]
+ bl FUN_0202A918
+ str r0, [r4, #0x20]
+ ldr r0, [r5, #0xc]
+ bl FUN_0206BB28
+ str r0, [r4, #0x1c]
+ ldr r0, [r5, #0xc]
+ bl FUN_02079C70
+ str r0, [r4, #0x2c]
+ mov r0, #0x0
+ str r0, [r4, #0x28]
+ ldr r1, _02037C74 ; =0x020F2A9C
+ add r0, r4, #0x0
+ bl FUN_0207B000
+ ldr r0, [r5, #0xc]
+ bl FUN_020238F4
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_0207C2A4
+ ldr r1, _02037C78 ; =0x020FA6E8
+ add r0, r5, #0x0
+ add r2, r4, #0x0
+ bl FUN_020373D4
+ add r0, r4, #0x0
+ pop {r4-r6, pc}
+ .balign 4
+_02037C74: .word 0x020F2A9C
+_02037C78: .word 0x020FA6E8
+
+ thumb_func_start FUN_02037C7C
+FUN_02037C7C: ; 0x02037C7C
+ push {r4-r6, lr}
+ ldr r5, [r0, #0xc]
+ add r0, r1, #0x0
+ mov r1, #0x30
+ add r6, r2, #0x0
+ bl FUN_020169D8
+ mov r1, #0x0
+ mov r2, #0x30
+ add r4, r0, #0x0
+ blx MI_CpuFill8
+ add r0, r5, #0x0
+ bl LoadPlayerDataAddress
+ str r0, [r4, #0x4]
+ add r0, r5, #0x0
+ bl FUN_0206BB1C
+ str r0, [r4, #0x0]
+ mov r0, #0x1
+ strb r0, [r4, #0x11]
+ mov r0, #0x0
+ strb r0, [r4, #0x14]
+ ldr r0, [r4, #0x0]
+ bl FUN_0206B9AC
+ strb r0, [r4, #0x13]
+ mov r0, #0x0
+ strh r0, [r4, #0x18]
+ strb r6, [r4, #0x12]
+ add r0, r5, #0x0
+ bl FUN_0206BB28
+ str r0, [r4, #0x1c]
+ add r0, r5, #0x0
+ bl FUN_02079C70
+ str r0, [r4, #0x2c]
+ add r0, r5, #0x0
+ bl FUN_0202A918
+ str r0, [r4, #0x20]
+ ldr r1, _02037CEC ; =0x020F2BD0
+ add r0, r4, #0x0
+ bl FUN_0207B000
+ add r0, r5, #0x0
+ bl FUN_020238F4
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_0207C2A4
+ add r0, r4, #0x0
+ pop {r4-r6, pc}
+ .balign 4
+_02037CEC: .word 0x020F2BD0
+
+ thumb_func_start FUN_02037CF0
+FUN_02037CF0: ; 0x02037CF0
+ push {r4-r6, lr}
+ add r5, r1, #0x0
+ mov r1, #0x30
+ add r6, r2, #0x0
+ bl FUN_02016998
+ mov r1, #0x0
+ mov r2, #0x30
+ add r4, r0, #0x0
+ blx Call_FillMemWithValue
+ ldr r0, [r5, #0xc]
+ bl FUN_0206BB1C
+ str r0, [r4, #0x0]
+ ldr r0, [r5, #0xc]
+ bl LoadPlayerDataAddress
+ str r0, [r4, #0x4]
+ mov r0, #0x1
+ strb r0, [r4, #0x11]
+ strb r6, [r4, #0x14]
+ strb r0, [r4, #0x13]
+ mov r0, #0x0
+ strh r0, [r4, #0x18]
+ mov r0, #0x2
+ strb r0, [r4, #0x12]
+ ldr r0, [r5, #0xc]
+ bl FUN_0206BB28
+ str r0, [r4, #0x1c]
+ ldr r0, [r5, #0xc]
+ bl FUN_02079C70
+ str r0, [r4, #0x2c]
+ ldr r1, _02037D58 ; =0x020F2BCC
+ add r0, r4, #0x0
+ bl FUN_0207B000
+ ldr r0, [r5, #0xc]
+ bl FUN_020238F4
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_0207C2A4
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_0203796C
+ add r0, r4, #0x0
+ pop {r4-r6, pc}
+ .balign 4
+_02037D58: .word 0x020F2BCC
+
+ thumb_func_start FUN_02037D5C
+FUN_02037D5C: ; 0x02037D5C
+ ldrb r0, [r0, #0x16]
+ bx lr
+
+ thumb_func_start FUN_02037D60
+FUN_02037D60: ; 0x02037D60
+ ldr r3, _02037D68 ; =FUN_020373D4
+ add r2, r1, #0x0
+ ldr r1, _02037D6C ; =0x020F2CF4
+ bx r3
+ .balign 4
+_02037D68: .word FUN_020373D4
+_02037D6C: .word 0x020F2CF4
+
+ thumb_func_start FUN_02037D70
+FUN_02037D70: ; 0x02037D70
+ push {r3-r6, lr}
+ sub sp, #0x4
+ add r6, r0, #0x0
+ bl FUN_02046530
+ add r4, r0, #0x0
+ add r0, r6, #0x0
+ bl FUN_0204652C
+ add r5, r0, #0x0
+ add r0, r6, #0x0
+ bl FUN_02046528
+ ldr r1, [r4, #0x0]
+ cmp r1, #0x0
+ beq _02037D9A
+ cmp r1, #0x1
+ beq _02037DA8
+ cmp r1, #0x2
+ beq _02037DB8
+ b _02037E12
+_02037D9A:
+ ldr r1, [r5, #0xc]
+ bl FUN_02037E80
+ ldr r0, [r4, #0x0]
+ add r0, r0, #0x1
+ str r0, [r4, #0x0]
+ b _02037E12
+_02037DA8:
+ bl FUN_0204647C
+ cmp r0, #0x0
+ bne _02037E12
+ ldr r0, [r4, #0x0]
+ add r0, r0, #0x1
+ str r0, [r4, #0x0]
+ b _02037E12
+_02037DB8:
+ ldr r0, [r5, #0xc]
+ bl FUN_020853E4
+ cmp r0, #0x0
+ bne _02037DCC
+ ldr r0, [r5, #0xc]
+ bl FUN_020853E8
+ cmp r0, #0x0
+ bne _02037DD4
+_02037DCC:
+ ldr r0, [r5, #0x0]
+ mov r1, #0x0
+ strh r1, [r0, #0x0]
+ b _02037E00
+_02037DD4:
+ ldr r0, [r5, #0x0]
+ mov r1, #0x1
+ strh r1, [r0, #0x0]
+ ldr r0, [r5, #0x8]
+ cmp r0, #0x0
+ ldr r0, [r5, #0xc]
+ bne _02037DEC
+ bl FUN_020853EC
+ ldr r1, [r5, #0x4]
+ strh r0, [r1, #0x0]
+ b _02037E00
+_02037DEC:
+ add r1, sp, #0x0
+ bl FUN_020853F0
+ add r0, sp, #0x0
+ ldrh r2, [r0, #0x0]
+ ldr r1, [r5, #0x4]
+ strh r2, [r1, #0x0]
+ ldrh r1, [r0, #0x2]
+ ldr r0, [r5, #0x8]
+ strh r1, [r0, #0x0]
+_02037E00:
+ ldr r0, [r5, #0xc]
+ bl FUN_020853A8
+ add r0, r5, #0x0
+ bl FUN_02016A18
+ add sp, #0x4
+ mov r0, #0x1
+ pop {r3-r6, pc}
+_02037E12:
+ mov r0, #0x0
+ add sp, #0x4
+ pop {r3-r6, pc}
+
+ thumb_func_start FUN_02037E18
+FUN_02037E18: ; 0x02037E18
+ push {r3-r7, lr}
+ sub sp, #0x8
+ str r0, [sp, #0x0]
+ str r1, [sp, #0x4]
+ add r5, r2, #0x0
+ add r6, r3, #0x0
+ bl FUN_02046528
+ add r7, r0, #0x0
+ mov r0, #0x20
+ mov r1, #0x10
+ bl FUN_02016998
+ add r4, r0, #0x0
+ ldr r0, [sp, #0x4]
+ cmp r6, #0x0
+ str r0, [r4, #0x0]
+ str r5, [r4, #0x4]
+ str r6, [r4, #0x8]
+ bne _02037E56
+ mov r0, #0x0
+ ldr r2, [r7, #0xc]
+ add r1, r0, #0x0
+ mov r3, #0x20
+ bl FUN_02085338
+ str r0, [r4, #0xc]
+ ldrh r1, [r5, #0x0]
+ bl FUN_020853B0
+ b _02037E6C
+_02037E56:
+ ldr r2, [r7, #0xc]
+ mov r0, #0x1
+ mov r1, #0x0
+ mov r3, #0x20
+ bl FUN_02085338
+ str r0, [r4, #0xc]
+ ldrh r1, [r5, #0x0]
+ ldrh r2, [r6, #0x0]
+ bl FUN_020853B4
+_02037E6C:
+ ldr r0, [sp, #0x0]
+ ldr r1, _02037E7C ; =FUN_02037D70
+ add r2, r4, #0x0
+ bl FUN_0204640C
+ add sp, #0x8
+ pop {r3-r7, pc}
+ nop
+_02037E7C: .word FUN_02037D70
+
+ thumb_func_start FUN_02037E80
+FUN_02037E80: ; 0x02037E80
+ ldr r3, _02037E88 ; =FUN_020373D4
+ add r2, r1, #0x0
+ ldr r1, _02037E8C ; =0x020F2CE4
+ bx r3
+ .balign 4
+_02037E88: .word FUN_020373D4
+_02037E8C: .word 0x020F2CE4
+
+ thumb_func_start FUN_02037E90
+FUN_02037E90: ; 0x02037E90
+ push {r4-r6, lr}
+ sub sp, #0x10
+ ldr r5, _02037EB4 ; =0x020F2CD4
+ add r4, sp, #0x0
+ add r6, r0, #0x0
+ add r2, r1, #0x0
+ add r3, r4, #0x0
+ ldmia r5!, {r0-r1}
+ stmia r4!, {r0-r1}
+ ldmia r5!, {r0-r1}
+ stmia r4!, {r0-r1}
+ add r0, r6, #0x0
+ add r1, r3, #0x0
+ bl FUN_020373D4
+ add sp, #0x10
+ pop {r4-r6, pc}
+ nop
+_02037EB4: .word 0x020F2CD4
+
+ thumb_func_start FUN_02037EB8
+FUN_02037EB8: ; 0x02037EB8
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ ldr r0, [r5, #0xc]
+ bl FUN_02034E30
+ bl FUN_02034E0C
+ mov r1, #0x5
+ mov r0, #0xb
+ lsl r1, r1, #0x6
+ bl FUN_020169D8
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ mov r2, #0x0
+ bl FUN_0205F7A0
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_02037E90
+ add r0, r4, #0x0
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_02037EE8
+FUN_02037EE8: ; 0x02037EE8
+ ldr r3, _02037EF0 ; =FUN_020373D4
+ add r2, r1, #0x0
+ ldr r1, _02037EF4 ; =0x020F2CC4
+ bx r3
+ .balign 4
+_02037EF0: .word FUN_020373D4
+_02037EF4: .word 0x020F2CC4
+
+ thumb_func_start FUN_02037EF8
+FUN_02037EF8: ; 0x02037EF8
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ mov r0, #0xb
+ mov r1, #0x2
+ bl FUN_020169D8
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_020377AC
+ bl LoadPlayerDataAddress
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_02037EE8
+ add r0, r4, #0x0
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_02037F1C
+FUN_02037F1C: ; 0x02037F1C
+ ldr r3, _02037F24 ; =FUN_020373D4
+ add r2, r1, #0x0
+ ldr r1, _02037F28 ; =0x020FCAC8
+ bx r3
+ .balign 4
+_02037F24: .word FUN_020373D4
+_02037F28: .word 0x020FCAC8
+
+ thumb_func_start FUN_02037F2C
+FUN_02037F2C: ; 0x02037F2C
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ add r6, r2, #0x0
+ add r7, r3, #0x0
+ bl FUN_020377AC
+ mov r1, #0xb
+ str r1, [sp, #0x0]
+ add r1, r4, #0x0
+ add r2, r6, #0x0
+ add r3, r7, #0x0
+ bl FUN_020854E0
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_02037F1C
+ add r0, r4, #0x0
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_02037F58
+FUN_02037F58: ; 0x02037F58
+ push {r3-r7, lr}
+ add r5, r1, #0x0
+ add r7, r0, #0x0
+ add r4, r2, #0x0
+ add r6, r3, #0x0
+ cmp r5, #0x3
+ bne _02037F74
+ bl FUN_020377AC
+ add r1, r4, #0x0
+ add r2, r6, #0x0
+ bl FUN_020855B0
+ b _02037F82
+_02037F74:
+ bl FUN_020377AC
+ add r1, r5, #0x0
+ add r2, r4, #0x0
+ add r3, r6, #0x0
+ bl FUN_02085538
+_02037F82:
+ add r4, r0, #0x0
+ add r0, r7, #0x0
+ add r1, r4, #0x0
+ bl FUN_02037F1C
+ add r0, r4, #0x0
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_02037F90
+FUN_02037F90: ; 0x02037F90
+ push {r4-r6, lr}
+ add r4, r1, #0x0
+ add r6, r2, #0x0
+ add r5, r0, #0x0
+ bl FUN_020377AC
+ add r1, r4, #0x0
+ add r2, r6, #0x0
+ bl FUN_02085578
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_02037F1C
+ add r0, r4, #0x0
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_02037FB4
+FUN_02037FB4: ; 0x02037FB4
+ ldr r3, _02037FBC ; =FUN_020373D4
+ add r2, r1, #0x0
+ ldr r1, _02037FC0 ; =0x020FD1B0
+ bx r3
+ .balign 4
+_02037FBC: .word FUN_020373D4
+_02037FC0: .word 0x020FD1B0
+
+ thumb_func_start FUN_02037FC4
+FUN_02037FC4: ; 0x02037FC4
+ push {r3-r5, lr}
+ add r5, r1, #0x0
+ add r4, r0, #0x0
+ bl FUN_020377AC
+ add r1, r5, #0x0
+ bl FUN_02087D00
+ add r5, r0, #0x0
+ add r0, r4, #0x0
+ add r1, r5, #0x0
+ bl FUN_02037FB4
+ add r0, r5, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_02037FE4
+FUN_02037FE4: ; 0x02037FE4
+ push {r4-r6, lr}
+ sub sp, #0x10
+ ldr r5, _02038008 ; =0x020F2CB4
+ add r4, sp, #0x0
+ add r6, r0, #0x0
+ add r2, r1, #0x0
+ add r3, r4, #0x0
+ ldmia r5!, {r0-r1}
+ stmia r4!, {r0-r1}
+ ldmia r5!, {r0-r1}
+ stmia r4!, {r0-r1}
+ add r0, r6, #0x0
+ add r1, r3, #0x0
+ bl FUN_020373D4
+ add sp, #0x10
+ pop {r4-r6, pc}
+ nop
+_02038008: .word 0x020F2CB4
+
+ thumb_func_start FUN_0203800C
+FUN_0203800C: ; 0x0203800C
+ push {r3-r7, lr}
+ add r5, r1, #0x0
+ mov r1, #0x20
+ add r7, r2, #0x0
+ add r6, r3, #0x0
+ bl FUN_02016998
+ mov r1, #0x0
+ mov r2, #0x20
+ add r4, r0, #0x0
+ blx Call_FillMemWithValue
+ add r0, r5, #0x0
+ bl FUN_0206BB1C
+ add r1, r7, #0x0
+ bl FUN_0206B9B0
+ str r0, [r4, #0x0]
+ add r0, r5, #0x0
+ bl FUN_02027E24
+ str r0, [sp, #0x0]
+ mov r1, #0x0
+ bl FUN_02027008
+ add r7, r0, #0x0
+ ldr r0, [sp, #0x0]
+ bl FUN_0202708C
+ str r7, [r4, #0x4]
+ str r0, [r4, #0x8]
+ add r0, r5, #0x0
+ bl LoadPlayerDataAddress
+ str r0, [r4, #0xc]
+ add r0, r5, #0x0
+ bl FUN_02029FC8
+ str r0, [r4, #0x10]
+ add r0, r5, #0x0
+ bl FUN_020238F4
+ str r0, [r4, #0x14]
+ ldr r0, [sp, #0x18]
+ str r6, [r4, #0x18]
+ str r0, [r4, #0x1c]
+ add r0, r4, #0x0
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_02038070
+FUN_02038070: ; 0x02038070
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ bl FUN_02046528
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_0204652C
+ add r5, r0, #0x0
+ ldr r0, [r5, #0x0]
+ cmp r0, #0x0
+ beq _0203808E
+ cmp r0, #0x1
+ beq _0203809E
+ b _020380C8
+_0203808E:
+ ldr r1, [r5, #0xc]
+ add r0, r4, #0x0
+ bl FUN_0203811C
+ ldr r0, [r5, #0x0]
+ add r0, r0, #0x1
+ str r0, [r5, #0x0]
+ b _020380C8
+_0203809E:
+ add r0, r4, #0x0
+ bl FUN_0204647C
+ cmp r0, #0x0
+ bne _020380C8
+ ldr r0, [r5, #0x8]
+ cmp r0, #0x1
+ bne _020380B2
+ mov r1, #0x1
+ b _020380B4
+_020380B2:
+ mov r1, #0x0
+_020380B4:
+ ldr r0, [r5, #0x4]
+ strh r1, [r0, #0x0]
+ ldr r0, [r5, #0xc]
+ bl FUN_02016A18
+ add r0, r5, #0x0
+ bl FUN_02016A18
+ mov r0, #0x1
+ pop {r3-r5, pc}
+_020380C8:
+ mov r0, #0x0
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_020380CC
+FUN_020380CC: ; 0x020380CC
+ push {r3-r7, lr}
+ sub sp, #0x8
+ add r6, r0, #0x0
+ add r5, r1, #0x0
+ mov r0, #0x20
+ mov r1, #0x10
+ add r7, r2, #0x0
+ str r3, [sp, #0x4]
+ bl FUN_02016998
+ add r4, r0, #0x0
+ add r2, r4, #0x0
+ mov r1, #0x10
+ mov r0, #0x0
+_020380E8:
+ strb r0, [r2, #0x0]
+ add r2, r2, #0x1
+ sub r1, r1, #0x1
+ bne _020380E8
+ add r0, sp, #0x10
+ ldrh r0, [r0, #0x10]
+ add r3, r4, #0x0
+ add r1, r7, #0x0
+ str r0, [sp, #0x0]
+ ldr r2, [sp, #0x4]
+ mov r0, #0x20
+ add r3, #0x8
+ bl FUN_0203800C
+ str r0, [r4, #0xc]
+ ldr r1, _02038118 ; =FUN_02038070
+ add r0, r6, #0x0
+ add r2, r4, #0x0
+ str r5, [r4, #0x4]
+ bl FUN_0204640C
+ add sp, #0x8
+ pop {r3-r7, pc}
+ nop
+_02038118: .word FUN_02038070
+
+ thumb_func_start FUN_0203811C
+FUN_0203811C: ; 0x0203811C
+ push {r3, lr}
+ add r2, r1, #0x0
+ ldr r1, _0203812C ; =0x02105DDC
+ bl FUN_020373D4
+ mov r0, #0x1
+ pop {r3, pc}
+ nop
+_0203812C: .word 0x02105DDC
+
+ thumb_func_start FUN_02038130
+FUN_02038130: ; 0x02038130
+ push {r3, lr}
+ add r2, r1, #0x0
+ ldr r1, _02038140 ; =0x02105DCC
+ bl FUN_020373D4
+ mov r0, #0x1
+ pop {r3, pc}
+ nop
+_02038140: .word 0x02105DCC
+
+ thumb_func_start FUN_02038144
+FUN_02038144: ; 0x02038144
+ push {r3-r5, lr}
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ ldr r0, [r4, #0xc]
+ bl FUN_020238F4
+ str r0, [r5, #0x4]
+ ldr r0, [r4, #0xc]
+ bl FUN_0206BB1C
+ str r0, [r5, #0x8]
+ ldr r0, [r4, #0xc]
+ mov r1, #0x9
+ bl FUN_02022610
+ str r0, [r5, #0xc]
+ ldr r0, [r4, #0xc]
+ bl FUN_02029AFC
+ str r0, [r5, #0x14]
+ ldr r0, [r4, #0xc]
+ bl LoadPlayerDataAddress
+ str r0, [r5, #0x18]
+ ldr r0, [r4, #0xc]
+ bl FUN_02024DA0
+ str r0, [r5, #0x24]
+ ldr r0, [r4, #0xc]
+ bl FUN_0206BB28
+ str r0, [r5, #0x30]
+ ldr r0, [r4, #0xc]
+ str r0, [r5, #0x10]
+ add r0, r4, #0x0
+ add r0, #0x98
+ ldr r0, [r0, #0x0]
+ str r0, [r5, #0x1c]
+ ldr r0, [r4, #0xc]
+ bl FUN_02029FC8
+ str r0, [r5, #0x20]
+ bl FUN_02023924
+ add r1, r0, #0x0
+ mov r0, #0x20
+ bl FUN_02016998
+ str r0, [r5, #0x38]
+ bl FUN_020690C4
+ add r1, r0, #0x0
+ mov r0, #0x20
+ bl FUN_02016998
+ str r0, [r5, #0x3c]
+ bl FUN_020690C4
+ add r1, r0, #0x0
+ mov r0, #0x20
+ bl FUN_02016998
+ str r0, [r5, #0x40]
+ str r4, [r5, #0x0]
+ mov r0, #0x0
+ str r0, [r5, #0x34]
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_020381CC
+FUN_020381CC: ; 0x020381CC
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r0, [r4, #0x38]
+ cmp r0, #0x0
+ beq _020381DE
+ bl FUN_02016A18
+ mov r0, #0x0
+ str r0, [r4, #0x38]
+_020381DE:
+ ldr r0, [r4, #0x3c]
+ cmp r0, #0x0
+ beq _020381EC
+ bl FUN_02016A18
+ mov r0, #0x0
+ str r0, [r4, #0x3c]
+_020381EC:
+ ldr r0, [r4, #0x40]
+ cmp r0, #0x0
+ beq _020381FA
+ bl FUN_02016A18
+ mov r0, #0x0
+ str r0, [r4, #0x40]
+_020381FA:
+ pop {r4, pc}
+
+ thumb_func_start FUN_020381FC
+FUN_020381FC: ; 0x020381FC
+ push {r4-r7, lr}
+ sub sp, #0x34
+ add r6, r0, #0x0
+ bl FUN_02046528
+ add r5, r0, #0x0
+ add r0, r6, #0x0
+ bl FUN_0204652C
+ add r4, r0, #0x0
+ ldr r0, [r4, #0x0]
+ cmp r0, #0x7
+ bls _02038218
+ b _020383C8
+_02038218:
+ add r1, r0, r0
+ add r1, pc
+ ldrh r1, [r1, #0x6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_02038224: ; jump table (using 16-bit offset)
+ .short _02038234 - _02038224 - 2; case 0
+ .short _0203824A - _02038224 - 2; case 1
+ .short _02038258 - _02038224 - 2; case 2
+ .short _0203826A - _02038224 - 2; case 3
+ .short _02038288 - _02038224 - 2; case 4
+ .short _020382F6 - _02038224 - 2; case 5
+ .short _02038386 - _02038224 - 2; case 6
+ .short _020383B2 - _02038224 - 2; case 7
+_02038234:
+ bl FUN_02033590
+ cmp r0, #0x0
+ bne _02038242
+ add r0, r6, #0x0
+ bl FUN_0204AF3C
+_02038242:
+ ldr r0, [r4, #0x0]
+ add r0, r0, #0x1
+ str r0, [r4, #0x0]
+ b _020383C8
+_0203824A:
+ add r0, r4, #0x4
+ add r1, r5, #0x0
+ bl FUN_02038144
+ ldr r0, [r4, #0x0]
+ add r0, r0, #0x1
+ str r0, [r4, #0x0]
+_02038258:
+ ldr r1, _020383D0 ; =0x02105DBC
+ add r0, r6, #0x0
+ add r2, r4, #0x4
+ bl FUN_02046500
+ ldr r0, [r4, #0x0]
+ add r0, r0, #0x1
+ str r0, [r4, #0x0]
+ b _020383C8
+_0203826A:
+ ldr r1, [r4, #0x2c]
+ cmp r1, #0x0
+ bne _02038282
+ add r0, r4, #0x4
+ bl FUN_020381CC
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ add sp, #0x34
+ mov r0, #0x1
+ pop {r4-r7, pc}
+_02038282:
+ add r0, r0, #0x1
+ str r0, [r4, #0x0]
+ b _020383C8
+_02038288:
+ ldr r0, [r4, #0x3c]
+ str r0, [r4, #0x50]
+ ldr r0, [r4, #0x40]
+ bl FUN_020690E4
+ str r0, [r4, #0x48]
+ ldr r0, [r4, #0x44]
+ bl FUN_020690E4
+ str r0, [r4, #0x4c]
+ ldr r0, [r5, #0xc]
+ bl LoadPlayerDataAddress
+ str r0, [r4, #0x5c]
+ mov r0, #0x1
+ str r0, [r4, #0x58]
+ add r0, r5, #0x0
+ bl FUN_0204B2A4
+ cmp r0, #0x4
+ bhi _020382C8
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_020382BE: ; jump table (using 16-bit offset)
+ .short _020382C8 - _020382BE - 2; case 0
+ .short _020382C8 - _020382BE - 2; case 1
+ .short _020382CE - _020382BE - 2; case 2
+ .short _020382D4 - _020382BE - 2; case 3
+ .short _020382D4 - _020382BE - 2; case 4
+_020382C8:
+ mov r0, #0x0
+ str r0, [r4, #0x54]
+ b _020382D8
+_020382CE:
+ mov r0, #0x1
+ str r0, [r4, #0x54]
+ b _020382D8
+_020382D4:
+ mov r0, #0x2
+ str r0, [r4, #0x54]
+_020382D8:
+ bl FUN_02033590
+ cmp r0, #0x0
+ beq _020382E4
+ mov r0, #0x3
+ str r0, [r4, #0x54]
+_020382E4:
+ add r2, r4, #0x0
+ ldr r1, _020383D4 ; =0x020F2CA4
+ add r0, r6, #0x0
+ add r2, #0x48
+ bl FUN_02046500
+ mov r0, #0x5
+ str r0, [r4, #0x0]
+ b _020383C8
+_020382F6:
+ ldr r0, [r4, #0x44]
+ mov r1, #0x6
+ mov r2, #0x0
+ bl FUN_020671BC
+ add r3, r0, #0x0
+ add r0, sp, #0x30
+ str r0, [sp, #0x0]
+ lsl r3, r3, #0x10
+ ldr r1, [r4, #0x44]
+ mov r0, #0x0
+ mov r2, #0x1
+ lsr r3, r3, #0x10
+ bl FUN_02069168
+ str r0, [sp, #0x20]
+ cmp r0, #0x0
+ beq _02038380
+ mov r0, #0x3
+ mov r1, #0x1a
+ lsl r2, r0, #0x10
+ bl FUN_0201681C
+ ldr r0, [r5, #0xc]
+ bl LoadPlayerDataAddress
+ str r0, [sp, #0x24]
+ ldr r0, [r5, #0xc]
+ bl FUN_02079C70
+ add r6, r0, #0x0
+ ldr r0, [r5, #0xc]
+ bl FUN_02024DA0
+ add r7, r0, #0x0
+ ldr r0, [r5, #0xc]
+ bl FUN_0206F158
+ str r0, [sp, #0x28]
+ ldr r0, [r5, #0xc]
+ bl FUN_02029FC8
+ str r0, [sp, #0x2c]
+ ldr r0, [r5, #0xc]
+ bl FUN_0204C1A8
+ str r6, [sp, #0x0]
+ ldr r1, [sp, #0x28]
+ str r7, [sp, #0x4]
+ str r1, [sp, #0x8]
+ ldr r1, [sp, #0x2c]
+ ldr r2, [sp, #0x20]
+ str r1, [sp, #0xc]
+ str r0, [sp, #0x10]
+ ldr r0, [sp, #0x30]
+ ldr r3, [sp, #0x24]
+ str r0, [sp, #0x14]
+ mov r0, #0x4
+ str r0, [sp, #0x18]
+ mov r0, #0x1a
+ str r0, [sp, #0x1c]
+ ldr r1, [r4, #0x44]
+ mov r0, #0x0
+ bl FUN_0206C700
+ str r0, [r4, #0x60]
+ mov r0, #0x6
+ str r0, [r4, #0x0]
+ b _020383C8
+_02038380:
+ mov r0, #0x7
+ str r0, [r4, #0x0]
+ b _020383C8
+_02038386:
+ ldr r0, [r4, #0x60]
+ bl FUN_0206C91C
+ cmp r0, #0x0
+ beq _020383C8
+ ldr r0, [r4, #0xc]
+ ldr r1, [r4, #0x30]
+ bl FUN_0206B9B0
+ add r1, r0, #0x0
+ ldr r0, [r4, #0x44]
+ bl FUN_02069B88
+ ldr r0, [r4, #0x60]
+ bl FUN_0206C92C
+ mov r0, #0x1a
+ bl FUN_020168D0
+ mov r0, #0x7
+ str r0, [r4, #0x0]
+ b _020383C8
+_020383B2:
+ ldr r0, [r4, #0x38]
+ add r0, r0, #0x1
+ str r0, [r4, #0x38]
+ mov r0, #0x2
+ str r0, [r4, #0x0]
+ ldr r0, [r5, #0xc]
+ bl FUN_02029FC8
+ mov r1, #0x10
+ bl FUN_0202A170
+_020383C8:
+ mov r0, #0x0
+ add sp, #0x34
+ pop {r4-r7, pc}
+ nop
+_020383D0: .word 0x02105DBC
+_020383D4: .word 0x020F2CA4
+
+ thumb_func_start FUN_020383D8
+FUN_020383D8: ; 0x020383D8
+ push {r4, lr}
+ add r4, r0, #0x0
+ mov r0, #0x20
+ mov r1, #0x68
+ bl FUN_02016998
+ add r2, r0, #0x0
+ mov r0, #0x0
+ str r0, [r2, #0x0]
+ ldr r1, _020383F4 ; =FUN_020381FC
+ add r0, r4, #0x0
+ bl FUN_0204640C
+ pop {r4, pc}
+ .balign 4
+_020383F4: .word FUN_020381FC
+
+ thumb_func_start FUN_020383F8
+FUN_020383F8: ; 0x020383F8
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ mov r0, #0x20
+ mov r1, #0xc
+ bl FUN_02016998
+ add r4, r0, #0x0
+ ldr r0, [r5, #0x7c]
+ str r0, [r4, #0x0]
+ add r0, r5, #0x0
+ add r0, #0x98
+ ldr r0, [r0, #0x0]
+ str r0, [r4, #0x4]
+ ldr r0, [r5, #0xc]
+ bl LoadPlayerDataAddress
+ str r0, [r4, #0x8]
+ ldr r1, _02038428 ; =0x020F2C94
+ add r0, r5, #0x0
+ add r2, r4, #0x0
+ bl FUN_020373D4
+ pop {r3-r5, pc}
+ nop
+_02038428: .word 0x020F2C94
+
+ thumb_func_start FUN_0203842C
+FUN_0203842C: ; 0x0203842C
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ mov r0, #0xb
+ mov r1, #0x14
+ bl FUN_02016998
+ add r4, r0, #0x0
+ ldr r0, [r5, #0xc]
+ str r0, [r4, #0x0]
+ ldr r0, [r5, #0x7c]
+ str r0, [r4, #0x4]
+ ldr r0, [r5, #0xc]
+ bl LoadPlayerDataAddress
+ str r0, [r4, #0x8]
+ ldr r0, [r5, #0xc]
+ bl FUN_02029FC8
+ str r0, [r4, #0xc]
+ add r0, r5, #0x0
+ add r0, #0x98
+ ldr r0, [r0, #0x0]
+ ldr r1, _02038468 ; =0x020F2D04
+ str r0, [r4, #0x10]
+ add r0, r5, #0x0
+ add r2, r4, #0x0
+ bl FUN_020373D4
+ add r0, r4, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+_02038468: .word 0x020F2D04
+
+ thumb_func_start FUN_0203846C
+FUN_0203846C: ; 0x0203846C
+ ldr r3, _02038474 ; =FUN_020373D4
+ add r2, r1, #0x0
+ ldr r1, _02038478 ; =0x020F2D54
+ bx r3
+ .balign 4
+_02038474: .word FUN_020373D4
+_02038478: .word 0x020F2D54
+
+ thumb_func_start FUN_0203847C
+FUN_0203847C: ; 0x0203847C
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ bl FUN_02046528
+ add r6, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_0204652C
+ add r4, r0, #0x0
+ ldr r0, [r4, #0x0]
+ cmp r0, #0x3
+ bhi _02038544
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_020384A0: ; jump table (using 16-bit offset)
+ .short _020384A8 - _020384A0 - 2; case 0
+ .short _020384B6 - _020384A0 - 2; case 1
+ .short _020384C8 - _020384A0 - 2; case 2
+ .short _020384D6 - _020384A0 - 2; case 3
+_020384A8:
+ add r0, r5, #0x0
+ bl FUN_0204AF3C
+ ldr r0, [r4, #0x0]
+ add r0, r0, #0x1
+ str r0, [r4, #0x0]
+ b _02038544
+_020384B6:
+ ldr r1, _02038548 ; =0x020FA5FC
+ ldr r2, [r4, #0xc]
+ add r0, r5, #0x0
+ bl FUN_02046500
+ ldr r0, [r4, #0x0]
+ add r0, r0, #0x1
+ str r0, [r4, #0x0]
+ b _02038544
+_020384C8:
+ add r0, r5, #0x0
+ bl FUN_0204AF84
+ ldr r0, [r4, #0x0]
+ add r0, r0, #0x1
+ str r0, [r4, #0x0]
+ b _02038544
+_020384D6:
+ ldr r1, [r4, #0xc]
+ ldr r0, [r1, #0x0]
+ cmp r0, #0x1
+ bne _020384F2
+ ldr r0, [r1, #0x18]
+ ldr r1, [r4, #0x10]
+ bl FUN_02021CE0
+ cmp r0, #0x0
+ bne _02038514
+ ldr r0, [r4, #0xc]
+ mov r1, #0x1
+ str r1, [r0, #0x14]
+ b _02038514
+_020384F2:
+ cmp r0, #0x5
+ bne _02038514
+ ldr r0, [r1, #0x18]
+ bl FUN_02021F2C
+ add r7, r0, #0x0
+ ldr r0, [r6, #0xc]
+ bl FUN_0202881C
+ add r1, r7, #0x0
+ bl FUN_02028854
+ cmp r0, #0x0
+ beq _02038514
+ ldr r0, [r4, #0xc]
+ mov r1, #0x2
+ str r1, [r0, #0x14]
+_02038514:
+ ldr r0, [r4, #0xc]
+ ldr r0, [r0, #0x14]
+ cmp r0, #0x0
+ bne _02038522
+ add r0, r5, #0x0
+ bl FUN_0203854C
+_02038522:
+ ldr r1, [r4, #0x8]
+ cmp r1, #0x0
+ beq _0203852E
+ ldr r0, [r4, #0xc]
+ ldr r0, [r0, #0x14]
+ strh r0, [r1, #0x0]
+_0203852E:
+ ldr r0, [r4, #0xc]
+ bl FUN_02077AC4
+ ldr r0, [r4, #0x10]
+ bl FUN_02021A20
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ mov r0, #0x1
+ pop {r3-r7, pc}
+_02038544:
+ mov r0, #0x0
+ pop {r3-r7, pc}
+ .balign 4
+_02038548: .word 0x020FA5FC
+
+ thumb_func_start FUN_0203854C
+FUN_0203854C: ; 0x0203854C
+ push {r3-r5, lr}
+ add r4, r0, #0x0
+ bl FUN_02046528
+ add r5, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_0204652C
+ add r4, r0, #0x0
+ ldr r0, [r4, #0xc]
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x6
+ bhi _020385CA
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02038572: ; jump table (using 16-bit offset)
+ .short _02038580 - _02038572 - 2; case 0
+ .short _02038590 - _02038572 - 2; case 1
+ .short _020385CA - _02038572 - 2; case 2
+ .short _020385CA - _02038572 - 2; case 3
+ .short _020385CA - _02038572 - 2; case 4
+ .short _020385A8 - _02038572 - 2; case 5
+ .short _020385BC - _02038572 - 2; case 6
+_02038580:
+ ldr r0, [r5, #0xc]
+ bl FUN_020238F4
+ ldr r1, [r4, #0xc]
+ add r1, #0x1c
+ bl FUN_0202395C
+ pop {r3-r5, pc}
+_02038590:
+ ldr r0, [r5, #0xc]
+ bl FUN_0206BB1C
+ ldr r1, [r4, #0x4]
+ bl FUN_0206B9B0
+ ldr r2, [r4, #0xc]
+ mov r1, #0x75
+ add r2, #0x1c
+ bl FUN_02067830
+ pop {r3-r5, pc}
+_020385A8:
+ ldr r0, [r5, #0xc]
+ bl FUN_0202881C
+ ldr r3, [r4, #0xc]
+ mov r1, #0x0
+ ldr r3, [r3, #0x18]
+ add r2, r1, #0x0
+ bl FUN_020287C0
+ pop {r3-r5, pc}
+_020385BC:
+ ldr r0, [r5, #0xc]
+ bl FUN_02024EB4
+ ldr r1, [r4, #0xc]
+ ldr r1, [r1, #0x18]
+ bl FUN_02024F18
+_020385CA:
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_020385CC
+FUN_020385CC: ; 0x020385CC
+ push {r3-r7, lr}
+ sub sp, #0x10
+ str r0, [sp, #0x4]
+ add r6, r1, #0x0
+ str r2, [sp, #0x8]
+ str r3, [sp, #0xc]
+ ldr r5, [sp, #0x2c]
+ bl FUN_02046528
+ add r7, r0, #0x0
+ mov r0, #0xb
+ mov r1, #0x14
+ bl FUN_020169D8
+ add r4, r0, #0x0
+ mov r0, #0x0
+ str r0, [r4, #0x0]
+ ldr r0, [sp, #0x28]
+ str r0, [r4, #0x4]
+ ldr r0, [sp, #0x30]
+ str r0, [r4, #0x8]
+ ldr r0, [r7, #0xc]
+ bl LoadPlayerDataAddress
+ str r0, [sp, #0x0]
+ ldr r2, [sp, #0x8]
+ ldr r3, [sp, #0xc]
+ mov r0, #0xb
+ add r1, r6, #0x0
+ bl FUN_02077A84
+ str r0, [r4, #0xc]
+ mov r0, #0xc
+ mov r1, #0xb
+ bl FUN_020219F4
+ str r0, [r4, #0x10]
+ cmp r6, #0x1
+ beq _02038620
+ cmp r6, #0x5
+ beq _02038656
+ b _02038660
+_02038620:
+ ldr r0, [r7, #0xc]
+ bl FUN_0206BB1C
+ ldr r1, [r4, #0x4]
+ bl FUN_0206B9B0
+ mov r1, #0x6f
+ mov r2, #0x0
+ add r6, r0, #0x0
+ bl FUN_020671BC
+ ldr r1, [r4, #0xc]
+ mov r2, #0x0
+ str r0, [r1, #0x10]
+ add r0, r6, #0x0
+ mov r1, #0x70
+ bl FUN_020671BC
+ ldr r1, [r4, #0xc]
+ cmp r5, #0x0
+ str r0, [r1, #0x8]
+ beq _0203866E
+ ldr r0, [r4, #0x10]
+ add r1, r5, #0x0
+ bl FUN_02021E28
+ b _0203866E
+_02038656:
+ ldr r0, [r4, #0x10]
+ add r1, r5, #0x0
+ bl FUN_02021E28
+ b _0203866E
+_02038660:
+ cmp r5, #0x0
+ beq _0203866E
+ ldr r0, [r4, #0xc]
+ add r1, r5, #0x0
+ ldr r0, [r0, #0x18]
+ bl FUN_02021E28
+_0203866E:
+ ldr r0, [sp, #0x4]
+ ldr r1, _0203867C ; =FUN_0203847C
+ add r2, r4, #0x0
+ bl FUN_0204640C
+ add sp, #0x10
+ pop {r3-r7, pc}
+ .balign 4
+_0203867C: .word FUN_0203847C
+
+ thumb_func_start FUN_02038680
+FUN_02038680: ; 0x02038680
+ ldr r3, _02038688 ; =FUN_020373D4
+ add r2, r1, #0x0
+ ldr r1, _0203868C ; =0x020F2C54
+ bx r3
+ .balign 4
+_02038688: .word FUN_020373D4
+_0203868C: .word 0x020F2C54
+
+ thumb_func_start FUN_02038690
+FUN_02038690: ; 0x02038690
+ push {r3, lr}
+ add r2, r1, #0x0
+ ldr r1, _020386A0 ; =0x020F2C44
+ bl FUN_020373D4
+ mov r0, #0x1
+ pop {r3, pc}
+ nop
+_020386A0: .word 0x020F2C44
+
+ thumb_func_start FUN_020386A4
+FUN_020386A4: ; 0x020386A4
+ ldr r3, _020386AC ; =FUN_020373D4
+ add r2, r1, #0x0
+ ldr r1, _020386B0 ; =0x020F2C34
+ bx r3
+ .balign 4
+_020386AC: .word FUN_020373D4
+_020386B0: .word 0x020F2C34
+
+ thumb_func_start FUN_020386B4
+FUN_020386B4: ; 0x020386B4
+ push {r3-r5, lr}
+ sub sp, #0x10
+ add r4, r0, #0x0
+ ldr r0, [r4, #0xc]
+ bl FUN_02029ABC
+ ldr r5, _020386DC ; =0x020F2C24
+ add r3, sp, #0x0
+ add r2, r3, #0x0
+ ldmia r5!, {r0-r1}
+ stmia r3!, {r0-r1}
+ ldmia r5!, {r0-r1}
+ stmia r3!, {r0-r1}
+ add r1, r2, #0x0
+ ldr r2, [r4, #0xc]
+ add r0, r4, #0x0
+ bl FUN_020373D4
+ add sp, #0x10
+ pop {r3-r5, pc}
+ .balign 4
+_020386DC: .word 0x020F2C24
+
+ thumb_func_start FUN_020386E0
+FUN_020386E0: ; 0x020386E0
+ push {r4-r6, lr}
+ sub sp, #0x10
+ ldr r3, _0203878C ; =0x020F2C64
+ add r2, sp, #0x0
+ add r5, r0, #0x0
+ add r6, r1, #0x0
+ ldmia r3!, {r0-r1}
+ stmia r2!, {r0-r1}
+ ldmia r3!, {r0-r1}
+ stmia r2!, {r0-r1}
+ mov r0, #0xb
+ mov r1, #0x44
+ bl FUN_020169D8
+ add r4, r0, #0x0
+ ldr r0, [r5, #0xc]
+ bl FUN_0202ABBC
+ str r0, [r4, #0x0]
+ ldr r0, [r5, #0xc]
+ bl FUN_02023788
+ str r0, [r4, #0x4]
+ ldr r0, [r5, #0xc]
+ mov r1, #0x2
+ bl FUN_02022610
+ str r0, [r4, #0x8]
+ ldr r0, [r5, #0xc]
+ bl FUN_02022510
+ str r0, [r4, #0xc]
+ ldr r0, [r5, #0xc]
+ bl FUN_02024DA0
+ str r0, [r4, #0x10]
+ ldr r0, [r5, #0xc]
+ bl FUN_020286EC
+ str r0, [r4, #0x14]
+ ldr r0, [r5, #0xc]
+ bl FUN_02029AFC
+ str r0, [r4, #0x18]
+ ldr r0, [r5, #0xc]
+ bl FUN_020238F4
+ str r0, [r4, #0x1c]
+ ldr r0, [r5, #0xc]
+ bl LoadPlayerDataAddress
+ str r0, [r4, #0x24]
+ ldr r0, [r5, #0xc]
+ bl FUN_02029FC8
+ str r0, [r4, #0x28]
+ add r0, r5, #0x0
+ add r0, #0x98
+ ldr r0, [r0, #0x0]
+ str r0, [r4, #0x2c]
+ ldr r0, [r5, #0xc]
+ bl FUN_02079C70
+ str r0, [r4, #0x3c]
+ ldr r0, [r5, #0xc]
+ str r0, [r4, #0x20]
+ ldr r0, [r5, #0xc]
+ bl FUN_0206BB28
+ str r0, [r4, #0x34]
+ ldr r0, [r4, #0x14]
+ bl FUN_02033830
+ str r0, [r4, #0x38]
+ ldr r0, [r5, #0xc]
+ bl FUN_0206F158
+ str r0, [r4, #0x30]
+ add r0, r5, #0x0
+ add r1, sp, #0x0
+ add r2, r4, #0x0
+ str r6, [r4, #0x40]
+ bl FUN_020373D4
+ add sp, #0x10
+ pop {r4-r6, pc}
+ .balign 4
+_0203878C: .word 0x020F2C64
+
+ thumb_func_start FUN_02038790
+FUN_02038790: ; 0x02038790
+ push {r3-r7, lr}
+ sub sp, #0x10
+ ldr r3, _02038800 ; =0x020F2C74
+ add r7, r2, #0x0
+ add r2, sp, #0x0
+ add r5, r0, #0x0
+ add r6, r1, #0x0
+ ldmia r3!, {r0-r1}
+ stmia r2!, {r0-r1}
+ ldmia r3!, {r0-r1}
+ stmia r2!, {r0-r1}
+ mov r0, #0xb
+ mov r1, #0x28
+ bl FUN_020169D8
+ add r4, r0, #0x0
+ ldr r0, [r5, #0xc]
+ bl FUN_0202A8D8
+ str r0, [r4, #0x0]
+ ldr r0, [r5, #0xc]
+ bl FUN_0202A8E4
+ str r0, [r4, #0x4]
+ ldr r0, [r5, #0xc]
+ bl FUN_02023788
+ str r0, [r4, #0x8]
+ ldr r0, [r5, #0xc]
+ bl LoadPlayerDataAddress
+ str r0, [r4, #0x10]
+ ldr r0, [r5, #0xc]
+ bl FUN_020286EC
+ bl FUN_02028228
+ str r0, [r4, #0x14]
+ ldr r0, [r5, #0xc]
+ str r0, [r4, #0xc]
+ ldr r0, [r5, #0xc]
+ bl FUN_020286EC
+ bl FUN_02033830
+ str r0, [r4, #0x1c]
+ str r6, [r4, #0x18]
+ add r0, r5, #0x0
+ add r1, sp, #0x0
+ add r2, r4, #0x0
+ str r7, [r4, #0x24]
+ bl FUN_020373D4
+ add r0, r4, #0x0
+ add sp, #0x10
+ pop {r3-r7, pc}
+ .balign 4
+_02038800: .word 0x020F2C74
+
+ thumb_func_start FUN_02038804
+FUN_02038804: ; 0x02038804
+ ldr r3, _0203880C ; =FUN_020373D4
+ ldr r1, _02038810 ; =0x020F2D14
+ ldr r2, [r0, #0xc]
+ bx r3
+ .balign 4
+_0203880C: .word FUN_020373D4
+_02038810: .word 0x020F2D14
+
+ thumb_func_start FUN_02038814
+FUN_02038814: ; 0x02038814
+ ldr r3, _0203881C ; =FUN_020373D4
+ add r2, r1, #0x0
+ ldr r1, _02038820 ; =0x020F2D64
+ bx r3
+ .balign 4
+_0203881C: .word FUN_020373D4
+_02038820: .word 0x020F2D64
+
+ thumb_func_start FUN_02038824
+FUN_02038824: ; 0x02038824
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ ldr r0, [r5, #0xc]
+ mov r1, #0xb
+ add r2, sp, #0x0
+ bl FUN_02022534
+ ldr r1, [sp, #0x0]
+ add r4, r0, #0x0
+ cmp r1, #0x2
+ bne _02038842
+ bl FUN_02016A18
+ mov r0, #0x0
+ pop {r3-r5, pc}
+_02038842:
+ ldr r1, _02038850 ; =0x020F2BF4
+ add r0, r5, #0x0
+ add r2, r4, #0x0
+ bl FUN_020373D4
+ add r0, r4, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+_02038850: .word 0x020F2BF4
+
+ thumb_func_start FUN_02038854
+FUN_02038854: ; 0x02038854
+ ldr r3, _0203885C ; =FUN_020373D4
+ add r2, r1, #0x0
+ ldr r1, _02038860 ; =0x020F2C04
+ bx r3
+ .balign 4
+_0203885C: .word FUN_020373D4
+_02038860: .word 0x020F2C04
+
+ thumb_func_start FUN_02038864
+FUN_02038864: ; 0x02038864
+ push {r4-r6, lr}
+ sub sp, #0x10
+ ldr r5, _02038888 ; =0x020F2C84
+ add r4, sp, #0x0
+ add r6, r0, #0x0
+ add r2, r1, #0x0
+ add r3, r4, #0x0
+ ldmia r5!, {r0-r1}
+ stmia r4!, {r0-r1}
+ ldmia r5!, {r0-r1}
+ stmia r4!, {r0-r1}
+ add r0, r6, #0x0
+ add r1, r3, #0x0
+ bl FUN_020373D4
+ add sp, #0x10
+ pop {r4-r6, pc}
+ nop
+_02038888: .word 0x020F2C84
+
+ thumb_func_start FUN_0203888C
+FUN_0203888C: ; 0x0203888C
+ push {r4-r6, lr}
+ sub sp, #0x10
+ ldr r5, _020388B0 ; =0x020F2D84
+ add r4, sp, #0x0
+ add r6, r0, #0x0
+ add r2, r1, #0x0
+ add r3, r4, #0x0
+ ldmia r5!, {r0-r1}
+ stmia r4!, {r0-r1}
+ ldmia r5!, {r0-r1}
+ stmia r4!, {r0-r1}
+ add r0, r6, #0x0
+ add r1, r3, #0x0
+ bl FUN_020373D4
+ add sp, #0x10
+ pop {r4-r6, pc}
+ nop
+_020388B0: .word 0x020F2D84
+
+ thumb_func_start FUN_020388B4
+FUN_020388B4: ; 0x020388B4
+ push {r3-r5, lr}
+ sub sp, #0x10
+ add r4, r0, #0x0
+ ldr r0, [r4, #0xc]
+ bl FUN_0206BB1C
+ bl FUN_021ED49C
+ add r5, r0, #0x0
+ bne _020388CC
+ bl ErrorHandling
+_020388CC:
+ add r0, r4, #0x0
+ add r1, r5, #0x0
+ bl FUN_020613CC
+ str r5, [sp, #0x0]
+ ldr r0, [r4, #0xc]
+ bl LoadPlayerDataAddress
+ str r0, [sp, #0x4]
+ ldr r0, [r4, #0xc]
+ bl FUN_020238F4
+ str r0, [sp, #0x8]
+ ldr r1, [r4, #0x1c]
+ add r0, r4, #0x0
+ ldr r1, [r1, #0x0]
+ bl FUN_0204AB58
+ add r1, sp, #0x0
+ strh r0, [r1, #0xc]
+ ldr r0, [r4, #0x10]
+ add r1, sp, #0x0
+ bl FUN_020863DC
+ add sp, #0x10
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_02038900
+FUN_02038900: ; 0x02038900
+ push {r3, lr}
+ add r2, r1, #0x0
+ ldr r1, _02038910 ; =0x020F2C14
+ bl FUN_020373D4
+ mov r0, #0x1
+ pop {r3, pc}
+ nop
+_02038910: .word 0x020F2C14
+
+ thumb_func_start FUN_02038914
+FUN_02038914: ; 0x02038914
+ push {r4-r7, lr}
+ sub sp, #0xc
+ add r6, r0, #0x0
+ bl FUN_02046528
+ add r4, r0, #0x0
+ ldr r0, [r4, #0xc]
+ bl FUN_020462AC
+ add r7, r0, #0x0
+ add r0, r6, #0x0
+ bl FUN_0204652C
+ add r5, r0, #0x0
+ add r0, r6, #0x0
+ bl FUN_02046530
+ add r6, r0, #0x0
+ ldr r0, [r6, #0x0]
+ cmp r0, #0x0
+ beq _02038944
+ cmp r0, #0x1
+ beq _02038956
+ b _020389C6
+_02038944:
+ add r5, #0xc
+ add r0, r4, #0x0
+ add r1, r5, #0x0
+ bl FUN_02038900
+ ldr r0, [r6, #0x0]
+ add r0, r0, #0x1
+ str r0, [r6, #0x0]
+ b _020389C6
+_02038956:
+ add r0, r4, #0x0
+ bl FUN_0204647C
+ cmp r0, #0x0
+ bne _020389C6
+ ldr r0, [r4, #0xc]
+ bl FUN_0202390C
+ str r0, [sp, #0x0]
+ bl FUN_020126FC
+ str r0, [sp, #0x4]
+ ldr r0, [sp, #0x0]
+ add r6, r1, #0x0
+ bl FUN_02028930
+ str r0, [sp, #0x8]
+ ldr r0, [r5, #0x4]
+ ldr r1, [r5, #0x8]
+ ldr r2, [sp, #0x4]
+ add r3, r6, #0x0
+ bl FUN_020127C0
+ mov r2, #0x3c
+ mov r3, #0x0
+ blx _ll_sdiv
+ add r3, r0, #0x0
+ ldr r1, [sp, #0x8]
+ ldr r2, [r5, #0x0]
+ add r0, r4, #0x0
+ bl FUN_02061A8C
+ ldr r0, [r4, #0xc]
+ bl FUN_0202390C
+ ldr r1, [r5, #0x0]
+ bl FUN_02028918
+ add r0, r7, #0x0
+ bl FUN_0205F6C8
+ ldr r1, [r5, #0x18]
+ cmp r1, r0
+ ble _020389BA
+ lsl r1, r1, #0x10
+ add r0, r7, #0x0
+ lsr r1, r1, #0x10
+ bl FUN_0205F6D8
+_020389BA:
+ add r0, r5, #0x0
+ bl FUN_02016A18
+ add sp, #0xc
+ mov r0, #0x1
+ pop {r4-r7, pc}
+_020389C6:
+ mov r0, #0x0
+ add sp, #0xc
+ pop {r4-r7, pc}
+
+ thumb_func_start FUN_020389CC
+FUN_020389CC: ; 0x020389CC
+ push {r3-r7, lr}
+ add r7, r0, #0x0
+ add r6, r1, #0x0
+ bl FUN_02046528
+ add r5, r0, #0x0
+ ldr r0, [r5, #0xc]
+ bl LoadPlayerDataAddress
+ str r0, [sp, #0x0]
+ mov r0, #0x20
+ add r1, r0, #0x0
+ bl FUN_02016998
+ add r4, r0, #0x0
+ str r4, [r4, #0xc]
+ ldr r0, [r5, #0xc]
+ bl FUN_0202390C
+ bl FUN_02028930
+ str r0, [r4, #0x0]
+ bl FUN_020126FC
+ str r0, [r4, #0x4]
+ str r1, [r4, #0x8]
+ ldr r0, [r5, #0xc]
+ bl FUN_02029FC8
+ str r0, [r4, #0x14]
+ mov r0, #0x0
+ str r0, [r4, #0x18]
+ ldr r0, [sp, #0x0]
+ bl FUN_02025084
+ str r0, [r4, #0x1c]
+ lsl r1, r6, #0x18
+ ldr r0, [r5, #0xc]
+ lsr r1, r1, #0x18
+ bl FUN_02038A3C
+ str r0, [r4, #0x10]
+ ldr r0, [r5, #0xc]
+ bl FUN_02029FC8
+ mov r1, #0x5
+ bl FUN_0202A170
+ ldr r1, _02038A38 ; =FUN_02038914
+ add r0, r7, #0x0
+ add r2, r4, #0x0
+ bl FUN_0204640C
+ pop {r3-r7, pc}
+ .balign 4
+_02038A38: .word FUN_02038914
+
+ thumb_func_start FUN_02038A3C
+FUN_02038A3C: ; 0x02038A3C
+ push {r4-r7, lr}
+ sub sp, #0x14
+ str r1, [sp, #0x0]
+ bl FUN_0202881C
+ add r4, r0, #0x0
+ bl FUN_0201B9D4
+ str r0, [sp, #0x4]
+ add r0, r4, #0x0
+ bl FUN_020287A4
+ bl FUN_0201B9E0
+ ldr r0, _02038AAC ; =0x020F2BE8
+ add r1, sp, #0x8
+ mov r2, #0xc
+ blx MI_CpuCopy8
+ mov r4, #0x0
+ mov r7, #0xc
+ add r6, sp, #0x8
+_02038A68:
+ add r0, r4, #0x1
+ lsl r0, r0, #0x18
+ lsr r5, r0, #0x18
+ cmp r5, #0xc
+ bhs _02038A92
+_02038A72:
+ bl FUN_0201B9EC
+ add r1, r7, #0x0
+ blx _s32_div_f
+ lsl r0, r1, #0x18
+ lsr r2, r0, #0x18
+ ldrb r1, [r6, r4]
+ ldrb r0, [r6, r2]
+ strb r0, [r6, r4]
+ add r0, r5, #0x1
+ lsl r0, r0, #0x18
+ lsr r5, r0, #0x18
+ strb r1, [r6, r2]
+ cmp r5, #0xc
+ blo _02038A72
+_02038A92:
+ add r0, r4, #0x1
+ lsl r0, r0, #0x18
+ lsr r4, r0, #0x18
+ cmp r4, #0xc
+ blo _02038A68
+ ldr r0, [sp, #0x4]
+ bl FUN_0201B9E0
+ ldr r0, [sp, #0x0]
+ add r1, sp, #0x8
+ ldrb r0, [r1, r0]
+ add sp, #0x14
+ pop {r4-r7, pc}
+ .balign 4
+_02038AAC: .word 0x020F2BE8
+
+ thumb_func_start FUN_02038AB0
+FUN_02038AB0: ; 0x02038AB0
+ push {r4, lr}
+ bl FUN_0204652C
+ add r4, r0, #0x0
+ bl FUN_0224D79C
+ cmp r0, #0x1
+ bne _02038ACA
+ add r0, r4, #0x0
+ bl FUN_0224D76C
+ mov r0, #0x1
+ pop {r4, pc}
+_02038ACA:
+ mov r0, #0x0
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02038AD0
+FUN_02038AD0: ; 0x02038AD0
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl FUN_02046528
+ add r2, r0, #0x0
+ ldr r1, [r2, #0xc]
+ ldr r2, [r2, #0x8]
+ mov r0, #0x4
+ bl FUN_0224D70C
+ add r2, r0, #0x0
+ ldr r1, _02038AF0 ; =FUN_02038AB0
+ add r0, r4, #0x0
+ bl FUN_0204640C
+ pop {r4, pc}
+ .balign 4
+_02038AF0: .word FUN_02038AB0
+
+ thumb_func_start FUN_02038AF4
+FUN_02038AF4: ; 0x02038AF4
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ add r0, r1, #0x0
+ mov r1, #0x8
+ add r6, r2, #0x0
+ bl FUN_02016998
+ add r4, r0, #0x0
+ str r6, [r4, #0x4]
+ ldr r0, [r5, #0xc]
+ ldr r1, _02038B18 ; =0x020F2DA4
+ str r0, [r4, #0x0]
+ add r0, r5, #0x0
+ add r2, r4, #0x0
+ bl FUN_020373D4
+ add r0, r4, #0x0
+ pop {r4-r6, pc}
+ .balign 4
+_02038B18: .word 0x020F2DA4
diff --git a/arm9/asm/unk_02038C78.s b/arm9/asm/unk_02038C78.s
new file mode 100644
index 00000000..785e5b48
--- /dev/null
+++ b/arm9/asm/unk_02038C78.s
@@ -0,0 +1,1744 @@
+ .include "asm/macros.inc"
+ .include "global.inc"
+
+ .text
+
+ thumb_func_start FUN_02038C78
+FUN_02038C78: ; 0x02038C78
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ add r6, r1, #0x0
+ add r7, r2, #0x0
+ bl FUN_02038E20
+ add r4, r0, #0x0
+ mov r0, #0x0
+ str r0, [sp, #0x0]
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ add r2, r6, #0x0
+ add r3, r7, #0x0
+ bl FUN_02038E60
+ ldr r1, _02038CA4 ; =FUN_02038D48
+ add r0, r5, #0x0
+ add r2, r4, #0x0
+ bl FUN_020463CC
+ pop {r3-r7, pc}
+ nop
+_02038CA4: .word FUN_02038D48
+
+ thumb_func_start FUN_02038CA8
+FUN_02038CA8: ; 0x02038CA8
+ push {r4-r6, lr}
+ ldr r0, [r0, #0x10]
+ add r5, r1, #0x0
+ add r4, r2, #0x0
+ add r6, r3, #0x0
+ bl FUN_0204652C
+ ldr r2, [sp, #0x1c]
+ mov r1, #0x1c
+ add r3, r2, #0x0
+ add r0, #0x50
+ mul r3, r1
+ add r1, r0, r3
+ str r4, [r0, r3]
+ ldr r0, [sp, #0x10]
+ str r6, [r1, #0x4]
+ str r0, [r1, #0x8]
+ ldr r0, [sp, #0x14]
+ str r0, [r1, #0xc]
+ ldr r0, [sp, #0x18]
+ str r0, [r1, #0x10]
+ str r5, [r1, #0x14]
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_02038CD8
+FUN_02038CD8: ; 0x02038CD8
+ push {r4-r7, lr}
+ sub sp, #0xc
+ add r6, r0, #0x0
+ add r7, r1, #0x0
+ str r2, [sp, #0x4]
+ add r5, r3, #0x0
+ bl FUN_02046528
+ str r0, [sp, #0x8]
+ bl FUN_02038E20
+ add r4, r0, #0x0
+ ldr r0, [sp, #0x8]
+ ldr r3, [sp, #0x4]
+ add r1, r4, #0x0
+ add r2, r7, #0x0
+ str r5, [sp, #0x0]
+ bl FUN_02038E60
+ ldr r1, _02038D0C ; =FUN_02038D48
+ add r0, r6, #0x0
+ add r2, r4, #0x0
+ bl FUN_0204640C
+ add sp, #0xc
+ pop {r4-r7, pc}
+ .balign 4
+_02038D0C: .word FUN_02038D48
+
+ thumb_func_start FUN_02038D10
+FUN_02038D10: ; 0x02038D10
+ push {r3-r7, lr}
+ sub sp, #0x8
+ add r5, r0, #0x0
+ add r6, r1, #0x0
+ add r7, r2, #0x0
+ bl FUN_02046528
+ str r0, [sp, #0x4]
+ bl FUN_02038E20
+ add r4, r0, #0x0
+ mov r0, #0x0
+ str r0, [sp, #0x0]
+ ldr r0, [sp, #0x4]
+ add r1, r4, #0x0
+ add r2, r6, #0x0
+ add r3, r7, #0x0
+ bl FUN_02038E60
+ ldr r1, _02038D44 ; =FUN_02038D48
+ add r0, r5, #0x0
+ add r2, r4, #0x0
+ bl FUN_020463EC
+ add sp, #0x8
+ pop {r3-r7, pc}
+ .balign 4
+_02038D44: .word FUN_02038D48
+
+ thumb_func_start FUN_02038D48
+FUN_02038D48: ; 0x02038D48
+ push {r3-r7, lr}
+ sub sp, #0x8
+ add r5, r0, #0x0
+ bl FUN_0204652C
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_02046528
+ ldrb r1, [r4, #0x4]
+ str r0, [sp, #0x0]
+ cmp r1, #0x0
+ beq _02038D68
+ cmp r1, #0x1
+ beq _02038D9E
+ b _02038E1A
+_02038D68:
+ ldrh r1, [r4, #0xa]
+ bl FUN_02038EB0
+ str r0, [r4, #0x38]
+ mov r0, #0x1
+ strb r0, [r4, #0x9]
+ mov r0, #0x8
+ mov r1, #0x40
+ mov r2, #0xb
+ bl FUN_0200AA90
+ str r0, [r4, #0x40]
+ mov r0, #0x1
+ lsl r0, r0, #0xa
+ mov r1, #0xb
+ bl FUN_020219F4
+ str r0, [r4, #0x44]
+ mov r0, #0x1
+ lsl r0, r0, #0xa
+ mov r1, #0xb
+ bl FUN_020219F4
+ str r0, [r4, #0x48]
+ ldrb r0, [r4, #0x4]
+ add r0, r0, #0x1
+ strb r0, [r4, #0x4]
+_02038D9E:
+ mov r0, #0x0
+ add r7, r4, #0x0
+ str r0, [sp, #0x4]
+ add r5, r4, #0x0
+ add r7, #0x9
+_02038DA8:
+ ldr r6, [r5, #0x38]
+ cmp r6, #0x0
+ beq _02038DD2
+ add r0, r6, #0x0
+ bl RunScriptCommand
+ cmp r0, #0x0
+ bne _02038DD2
+ add r0, r6, #0x0
+ bl FUN_02038E48
+ ldrb r0, [r4, #0x9]
+ cmp r0, #0x0
+ bne _02038DC8
+ bl ErrorHandling
+_02038DC8:
+ mov r0, #0x0
+ str r0, [r5, #0x38]
+ ldrb r0, [r7, #0x0]
+ sub r0, r0, #0x1
+ strb r0, [r7, #0x0]
+_02038DD2:
+ ldr r0, [sp, #0x4]
+ add r5, r5, #0x4
+ add r0, r0, #0x1
+ str r0, [sp, #0x4]
+ cmp r0, #0x2
+ blt _02038DA8
+ ldrb r0, [r4, #0x9]
+ cmp r0, #0x0
+ bne _02038E1A
+ add r0, r4, #0x0
+ add r0, #0xa4
+ ldr r5, [r0, #0x0]
+ ldr r0, [r4, #0x40]
+ bl FUN_0200AB18
+ ldr r0, [r4, #0x44]
+ bl FUN_02021A20
+ ldr r0, [r4, #0x48]
+ bl FUN_02021A20
+ mov r0, #0x0
+ str r0, [r4, #0x0]
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ cmp r5, #0x0
+ beq _02038E14
+ ldr r0, [sp, #0x0]
+ blx r5
+ add sp, #0x8
+ mov r0, #0x0
+ pop {r3-r7, pc}
+_02038E14:
+ add sp, #0x8
+ mov r0, #0x1
+ pop {r3-r7, pc}
+_02038E1A:
+ mov r0, #0x0
+ add sp, #0x8
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_02038E20
+FUN_02038E20: ; 0x02038E20
+ push {r4, lr}
+ mov r0, #0xb
+ mov r1, #0xdc
+ bl FUN_02016998
+ add r4, r0, #0x0
+ bne _02038E32
+ bl ErrorHandling
+_02038E32:
+ add r0, r4, #0x0
+ mov r1, #0x0
+ mov r2, #0xdc
+ blx Call_FillMemWithValue
+ ldr r0, _02038E44 ; =0x0003643F
+ str r0, [r4, #0x0]
+ add r0, r4, #0x0
+ pop {r4, pc}
+ .balign 4
+_02038E44: .word 0x0003643F
+
+ thumb_func_start FUN_02038E48
+FUN_02038E48: ; 0x02038E48
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r0, [r4, #0x78]
+ bl FUN_0200A8B8
+ ldr r0, [r4, #0x7c]
+ bl FUN_02016A18
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ pop {r4, pc}
+
+ thumb_func_start FUN_02038E60
+FUN_02038E60: ; 0x02038E60
+ push {r3-r7, lr}
+ add r5, r1, #0x0
+ add r7, r0, #0x0
+ add r0, r5, #0x0
+ mov r1, #0x36
+ add r4, r2, #0x0
+ add r6, r3, #0x0
+ bl FUN_02039300
+ str r0, [sp, #0x0]
+ ldr r0, [r7, #0x38]
+ bl FUN_020552F8
+ str r0, [r5, #0x28]
+ str r6, [r5, #0x2c]
+ ldr r0, [sp, #0x18]
+ strh r4, [r5, #0xa]
+ str r0, [r5, #0x34]
+ cmp r6, #0x0
+ beq _02038E92
+ add r0, r6, #0x0
+ bl FUN_02058448
+ ldr r1, [sp, #0x0]
+ strh r0, [r1, #0x0]
+_02038E92:
+ mov r0, #0x7d
+ lsl r0, r0, #0x6
+ cmp r4, r0
+ blo _02038EA8
+ ldr r0, _02038EAC ; =0x0000225F
+ cmp r4, r0
+ bhi _02038EA8
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_020396E8
+_02038EA8:
+ pop {r3-r7, pc}
+ nop
+_02038EAC: .word 0x0000225F
+
+ thumb_func_start FUN_02038EB0
+FUN_02038EB0: ; 0x02038EB0
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ add r6, r1, #0x0
+ mov r0, #0xb
+ mov r1, #0x84
+ bl FUN_02016998
+ add r4, r0, #0x0
+ bne _02038EC6
+ bl ErrorHandling
+_02038EC6:
+ ldr r2, _02038EE4 ; =0x020F34DC
+ ldr r1, _02038EE8 ; =gScriptCmdTable
+ ldr r2, [r2, #0x0]
+ add r0, r4, #0x0
+ bl InitScriptContext
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ add r2, r6, #0x0
+ mov r3, #0x0
+ bl FUN_02038EEC
+ add r0, r4, #0x0
+ pop {r4-r6, pc}
+ nop
+_02038EE4: .word 0x020F34DC
+_02038EE8: .word gScriptCmdTable
+
+ thumb_func_start FUN_02038EEC
+FUN_02038EEC: ; 0x02038EEC
+ push {r4-r6, lr}
+ add r4, r1, #0x0
+ add r3, r4, #0x0
+ add r5, r0, #0x0
+ add r3, #0x80
+ str r5, [r3, #0x0]
+ bl FUN_02038F18
+ add r6, r0, #0x0
+ ldr r1, [r4, #0x7c]
+ add r0, r4, #0x0
+ bl SetupBytecodeScript
+ add r0, r4, #0x0
+ add r1, r6, #0x0
+ bl FUN_02039484
+ ldr r1, [r5, #0x10]
+ add r0, r4, #0x0
+ bl FUN_02038B6C
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_02038F18
+FUN_02038F18: ; 0x02038F18
+ push {r3-r5, lr}
+ ldr r3, _02039210 ; =0x0000283C
+ add r4, r2, #0x0
+ cmp r4, r3
+ blo _02038F36
+ mov r3, #0x1f
+ ldr r2, _02039214 ; =0x000003D1
+ lsl r3, r3, #0x4
+ bl FUN_020392B4
+ ldr r0, _02039210 ; =0x0000283C
+ sub r0, r4, r0
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+ b _0203920A
+_02038F36:
+ add r2, r3, #0x0
+ sub r2, #0x64
+ cmp r4, r2
+ blo _02038F52
+ ldr r2, _02039218 ; =0x00000175
+ add r3, r2, #0x0
+ sub r3, #0x29
+ bl FUN_020392B4
+ ldr r0, _0203921C ; =0x000027D8
+ sub r0, r4, r0
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+ b _0203920A
+_02038F52:
+ add r2, r3, #0x0
+ sub r2, #0x96
+ cmp r4, r2
+ blo _02038F6C
+ ldr r2, _02039220 ; =0x00000412
+ ldr r3, _02039224 ; =0x00000232
+ bl FUN_020392B4
+ ldr r0, _02039228 ; =0x000027A6
+ sub r0, r4, r0
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+ b _0203920A
+_02038F6C:
+ sub r3, #0xc8
+ cmp r4, r3
+ blo _02038F84
+ ldr r2, _0203922C ; =0x00000411
+ ldr r3, _02039230 ; =0x00000233
+ bl FUN_020392B4
+ ldr r0, _02039234 ; =0x00002774
+ sub r0, r4, r0
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+ b _0203920A
+_02038F84:
+ ldr r3, _02039238 ; =0x00002710
+ cmp r4, r3
+ blo _02038F9E
+ ldr r2, _0203923C ; =0x00000177
+ add r3, r2, #0x0
+ sub r3, #0x29
+ bl FUN_020392B4
+ ldr r0, _02039238 ; =0x00002710
+ sub r0, r4, r0
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+ b _0203920A
+_02038F9E:
+ add r2, r3, #0x0
+ sub r2, #0x32
+ cmp r4, r2
+ blo _02038FBC
+ mov r2, #0x5e
+ lsl r2, r2, #0x2
+ add r3, r2, #0x0
+ sub r3, #0x29
+ bl FUN_020392B4
+ ldr r0, _02039240 ; =0x000026DE
+ sub r0, r4, r0
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+ b _0203920A
+_02038FBC:
+ add r2, r3, #0x0
+ sub r2, #0x64
+ cmp r4, r2
+ blo _02038FD6
+ ldr r2, _02039244 ; =0x0000016D
+ mov r3, #0xc7
+ bl FUN_020392B4
+ ldr r0, _02039248 ; =0x000026AC
+ sub r0, r4, r0
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+ b _0203920A
+_02038FD6:
+ add r2, r3, #0x0
+ sub r2, #0xc8
+ cmp r4, r2
+ blo _02038FF0
+ mov r2, #0xce
+ mov r3, #0xcb
+ bl FUN_020392B4
+ ldr r0, _0203924C ; =0x00002648
+ sub r0, r4, r0
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+ b _0203920A
+_02038FF0:
+ ldr r5, _02039250 ; =0x000025E4
+ cmp r4, r5
+ blo _0203900A
+ ldr r2, _02039254 ; =0x00000183
+ add r3, r2, #0x0
+ sub r3, #0x9
+ bl FUN_020392B4
+ add r0, r5, #0x0
+ sub r0, r4, r0
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+ b _0203920A
+_0203900A:
+ add r2, r5, #0x0
+ sub r2, #0x64
+ cmp r4, r2
+ blo _02039026
+ ldr r2, _02039258 ; =0x00000179
+ mov r3, #0xc7
+ bl FUN_020392B4
+ add r0, r5, #0x0
+ sub r0, #0x64
+ sub r0, r4, r0
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+ b _0203920A
+_02039026:
+ sub r5, #0xc8
+ cmp r4, r5
+ blo _02039042
+ mov r2, #0x1d
+ lsl r2, r2, #0x4
+ add r3, r2, #0x0
+ add r3, #0x1c
+ bl FUN_020392B4
+ ldr r0, _0203925C ; =0x0000251C
+ sub r0, r4, r0
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+ b _0203920A
+_02039042:
+ ldr r5, _02039260 ; =0x000024B8
+ cmp r4, r5
+ blo _0203905C
+ ldr r2, _02039264 ; =0x00000187
+ add r3, r2, #0x0
+ sub r3, #0xa
+ bl FUN_020392B4
+ add r0, r5, #0x0
+ sub r0, r4, r0
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+ b _0203920A
+_0203905C:
+ add r2, r5, #0x0
+ sub r2, #0x64
+ cmp r4, r2
+ blo _0203907C
+ mov r2, #0x5d
+ lsl r2, r2, #0x2
+ add r3, r2, #0x0
+ sub r3, #0x2b
+ bl FUN_020392B4
+ add r0, r5, #0x0
+ sub r0, #0x64
+ sub r0, r4, r0
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+ b _0203920A
+_0203907C:
+ sub r5, #0xc8
+ cmp r4, r5
+ blo _02039098
+ mov r2, #0x61
+ lsl r2, r2, #0x2
+ add r3, r2, #0x0
+ sub r3, #0x9
+ bl FUN_020392B4
+ ldr r0, _02039268 ; =0x000023F0
+ sub r0, r4, r0
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+ b _0203920A
+_02039098:
+ ldr r2, _0203926C ; =0x0000238C
+ cmp r4, r2
+ blo _020390B0
+ mov r2, #0x0
+ mov r3, #0x9
+ bl FUN_020392B4
+ ldr r0, _0203926C ; =0x0000238C
+ sub r0, r4, r0
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+ b _0203920A
+_020390B0:
+ add r5, r2, #0x0
+ sub r5, #0x64
+ cmp r4, r5
+ blo _020390CA
+ mov r2, #0xcf
+ add r3, r2, #0x0
+ bl FUN_020392B4
+ ldr r0, _02039270 ; =0x00002328
+ sub r0, r4, r0
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+ b _0203920A
+_020390CA:
+ add r5, r2, #0x0
+ sub r5, #0x82
+ cmp r4, r5
+ blo _020390E4
+ ldr r2, _02039274 ; =0x00000186
+ mov r3, #0x7
+ bl FUN_020392B4
+ ldr r0, _02039278 ; =0x0000230A
+ sub r0, r4, r0
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+ b _0203920A
+_020390E4:
+ add r5, r2, #0x0
+ sub r5, #0x96
+ cmp r4, r5
+ blo _02039100
+ ldr r2, _0203927C ; =0x000001CF
+ add r3, r2, #0x0
+ add r3, #0x17
+ bl FUN_020392B4
+ ldr r0, _02039280 ; =0x000022F6
+ sub r0, r4, r0
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+ b _0203920A
+_02039100:
+ sub r2, #0xc8
+ cmp r4, r2
+ blo _0203911A
+ ldr r2, _02039284 ; =0x00000185
+ add r3, r2, #0x0
+ sub r3, #0x9
+ bl FUN_020392B4
+ ldr r0, _02039288 ; =0x000022C4
+ sub r0, r4, r0
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+ b _0203920A
+_0203911A:
+ ldr r2, _0203928C ; =0x00002260
+ cmp r4, r2
+ blo _02039134
+ ldr r2, _02039290 ; =0x000001CE
+ add r3, r2, #0x0
+ add r3, #0x17
+ bl FUN_020392B4
+ ldr r0, _0203928C ; =0x00002260
+ sub r0, r4, r0
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+ b _0203920A
+_02039134:
+ mov r2, #0x7d
+ lsl r2, r2, #0x6
+ cmp r4, r2
+ blo _02039152
+ ldr r2, _02039294 ; =0x00000176
+ add r3, r2, #0x0
+ sub r3, #0x29
+ bl FUN_020392B4
+ mov r0, #0x7d
+ lsl r0, r0, #0x6
+ sub r0, r4, r0
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+ b _0203920A
+_02039152:
+ ldr r5, _02039298 ; =0x00001B58
+ cmp r4, r5
+ blo _0203916C
+ ldr r2, _0203929C ; =0x00000172
+ add r3, r2, #0x0
+ sub r3, #0x2d
+ bl FUN_020392B4
+ add r0, r5, #0x0
+ sub r0, r4, r0
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+ b _0203920A
+_0203916C:
+ lsr r5, r3, #0x1
+ cmp r4, r5
+ blo _02039186
+ mov r2, #0x41
+ lsl r2, r2, #0x4
+ mov r3, #0xc7
+ bl FUN_020392B4
+ ldr r0, _020392A0 ; =0x00001388
+ sub r0, r4, r0
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+ b _0203920A
+_02039186:
+ ldr r5, _020392A4 ; =0x00000BB8
+ cmp r4, r5
+ blo _020391A0
+ mov r2, #0x41
+ lsl r2, r2, #0x4
+ mov r3, #0xc7
+ bl FUN_020392B4
+ add r0, r5, #0x0
+ sub r0, r4, r0
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+ b _0203920A
+_020391A0:
+ sub r5, #0xc8
+ cmp r4, r5
+ blo _020391BC
+ ldr r2, _020392A8 ; =0x0000017A
+ add r3, r2, #0x0
+ sub r3, #0x1c
+ bl FUN_020392B4
+ mov r0, #0xaf
+ lsl r0, r0, #0x4
+ sub r0, r4, r0
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+ b _0203920A
+_020391BC:
+ lsr r3, r3, #0x2
+ cmp r4, r3
+ blo _020391D4
+ mov r2, #0x1
+ mov r3, #0xd
+ bl FUN_020392B4
+ ldr r0, _020392AC ; =0x000009C4
+ sub r0, r4, r0
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+ b _0203920A
+_020391D4:
+ lsr r2, r2, #0x2
+ cmp r4, r2
+ blo _020391EE
+ mov r2, #0xcd
+ mov r3, #0xc7
+ bl FUN_020392B4
+ mov r0, #0x7d
+ lsl r0, r0, #0x4
+ sub r0, r4, r0
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+ b _0203920A
+_020391EE:
+ cmp r4, #0x1
+ blo _020391FE
+ bl FUN_020392D8
+ sub r0, r4, #0x1
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+ b _0203920A
+_020391FE:
+ ldr r2, _020392B0 ; =0x00000171
+ add r3, r2, #0x0
+ sub r3, #0x34
+ bl FUN_020392B4
+ mov r4, #0x0
+_0203920A:
+ add r0, r4, #0x0
+ pop {r3-r5, pc}
+ nop
+_02039210: .word 0x0000283C
+_02039214: .word 0x000003D1
+_02039218: .word 0x00000175
+_0203921C: .word 0x000027D8
+_02039220: .word 0x00000412
+_02039224: .word 0x00000232
+_02039228: .word 0x000027A6
+_0203922C: .word 0x00000411
+_02039230: .word 0x00000233
+_02039234: .word 0x00002774
+_02039238: .word 0x00002710
+_0203923C: .word 0x00000177
+_02039240: .word 0x000026DE
+_02039244: .word 0x0000016D
+_02039248: .word 0x000026AC
+_0203924C: .word 0x00002648
+_02039250: .word 0x000025E4
+_02039254: .word 0x00000183
+_02039258: .word 0x00000179
+_0203925C: .word 0x0000251C
+_02039260: .word 0x000024B8
+_02039264: .word 0x00000187
+_02039268: .word 0x000023F0
+_0203926C: .word 0x0000238C
+_02039270: .word 0x00002328
+_02039274: .word 0x00000186
+_02039278: .word 0x0000230A
+_0203927C: .word 0x000001CF
+_02039280: .word 0x000022F6
+_02039284: .word 0x00000185
+_02039288: .word 0x000022C4
+_0203928C: .word 0x00002260
+_02039290: .word 0x000001CE
+_02039294: .word 0x00000176
+_02039298: .word 0x00001B58
+_0203929C: .word 0x00000172
+_020392A0: .word 0x00001388
+_020392A4: .word 0x00000BB8
+_020392A8: .word 0x0000017A
+_020392AC: .word 0x000009C4
+_020392B0: .word 0x00000171
+
+ thumb_func_start FUN_020392B4
+FUN_020392B4: ; 0x020392B4
+ push {r3-r5, lr}
+ add r5, r1, #0x0
+ add r1, r2, #0x0
+ add r4, r3, #0x0
+ mov r0, #0xa
+ mov r2, #0xb
+ bl LoadFromNarc_2
+ str r0, [r5, #0x7c]
+ mov r0, #0x1
+ mov r1, #0x1a
+ add r2, r4, #0x0
+ mov r3, #0xb
+ bl FUN_0200A86C
+ str r0, [r5, #0x78]
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_020392D8
+FUN_020392D8: ; 0x020392D8
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ ldr r0, [r5, #0x1c]
+ add r4, r1, #0x0
+ ldr r0, [r0, #0x0]
+ bl FUN_0203949C
+ str r0, [r4, #0x7c]
+ ldr r0, [r5, #0x1c]
+ ldr r0, [r0, #0x0]
+ bl FUN_020394B0
+ add r2, r0, #0x0
+ mov r0, #0x1
+ mov r1, #0x1a
+ mov r3, #0xb
+ bl FUN_0200A86C
+ str r0, [r4, #0x78]
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_02039300
+FUN_02039300: ; 0x02039300
+ push {r3, lr}
+ cmp r1, #0x36
+ bls _02039308
+ b _02039430
+_02039308:
+ add r2, r1, r1
+ add r2, pc
+ ldrh r2, [r2, #0x6]
+ lsl r2, r2, #0x10
+ asr r2, r2, #0x10
+ add pc, r2
+_02039314: ; jump table (using 16-bit offset)
+ .short _02039382 - _02039314 - 2; case 0
+ .short _02039386 - _02039314 - 2; case 1
+ .short _0203938A - _02039314 - 2; case 2
+ .short _0203938E - _02039314 - 2; case 3
+ .short _02039392 - _02039314 - 2; case 4
+ .short _02039396 - _02039314 - 2; case 5
+ .short _0203939A - _02039314 - 2; case 6
+ .short _0203939E - _02039314 - 2; case 7
+ .short _020393A2 - _02039314 - 2; case 8
+ .short _020393A6 - _02039314 - 2; case 9
+ .short _020393AA - _02039314 - 2; case 10
+ .short _020393AE - _02039314 - 2; case 11
+ .short _020393B2 - _02039314 - 2; case 12
+ .short _020393B6 - _02039314 - 2; case 13
+ .short _020393BA - _02039314 - 2; case 14
+ .short _020393BE - _02039314 - 2; case 15
+ .short _020393C2 - _02039314 - 2; case 16
+ .short _020393C6 - _02039314 - 2; case 17
+ .short _020393CA - _02039314 - 2; case 18
+ .short _020393CE - _02039314 - 2; case 19
+ .short _020393D2 - _02039314 - 2; case 20
+ .short _020393D6 - _02039314 - 2; case 21
+ .short _020393DA - _02039314 - 2; case 22
+ .short _020393DE - _02039314 - 2; case 23
+ .short _020393E2 - _02039314 - 2; case 24
+ .short _020393E6 - _02039314 - 2; case 25
+ .short _020393EA - _02039314 - 2; case 26
+ .short _020393EE - _02039314 - 2; case 27
+ .short _020393F2 - _02039314 - 2; case 28
+ .short _020393F6 - _02039314 - 2; case 29
+ .short _020393FA - _02039314 - 2; case 30
+ .short _020393FE - _02039314 - 2; case 31
+ .short _02039402 - _02039314 - 2; case 32
+ .short _02039406 - _02039314 - 2; case 33
+ .short _0203940A - _02039314 - 2; case 34
+ .short _0203940E - _02039314 - 2; case 35
+ .short _02039412 - _02039314 - 2; case 36
+ .short _02039416 - _02039314 - 2; case 37
+ .short _0203941A - _02039314 - 2; case 38
+ .short _0203941E - _02039314 - 2; case 39
+ .short _02039422 - _02039314 - 2; case 40
+ .short _02039426 - _02039314 - 2; case 41
+ .short _02039426 - _02039314 - 2; case 42
+ .short _02039426 - _02039314 - 2; case 43
+ .short _02039426 - _02039314 - 2; case 44
+ .short _02039426 - _02039314 - 2; case 45
+ .short _02039426 - _02039314 - 2; case 46
+ .short _02039426 - _02039314 - 2; case 47
+ .short _02039426 - _02039314 - 2; case 48
+ .short _02039426 - _02039314 - 2; case 49
+ .short _02039426 - _02039314 - 2; case 50
+ .short _02039426 - _02039314 - 2; case 51
+ .short _02039426 - _02039314 - 2; case 52
+ .short _02039426 - _02039314 - 2; case 53
+ .short _02039426 - _02039314 - 2; case 54
+_02039382:
+ add r0, #0x10
+ pop {r3, pc}
+_02039386:
+ add r0, #0x14
+ pop {r3, pc}
+_0203938A:
+ add r0, #0x24
+ pop {r3, pc}
+_0203938E:
+ add r0, r0, #0x5
+ pop {r3, pc}
+_02039392:
+ add r0, r0, #0x6
+ pop {r3, pc}
+_02039396:
+ add r0, r0, #0x7
+ pop {r3, pc}
+_0203939A:
+ add r0, #0x8
+ pop {r3, pc}
+_0203939E:
+ add r0, #0x9
+ pop {r3, pc}
+_020393A2:
+ add r0, #0xa
+ pop {r3, pc}
+_020393A6:
+ add r0, #0x28
+ pop {r3, pc}
+_020393AA:
+ add r0, #0x2c
+ pop {r3, pc}
+_020393AE:
+ add r0, #0x30
+ pop {r3, pc}
+_020393B2:
+ add r0, #0x34
+ pop {r3, pc}
+_020393B6:
+ add r0, #0x38
+ pop {r3, pc}
+_020393BA:
+ add r0, #0x3c
+ pop {r3, pc}
+_020393BE:
+ add r0, #0x40
+ pop {r3, pc}
+_020393C2:
+ add r0, #0x44
+ pop {r3, pc}
+_020393C6:
+ add r0, #0x48
+ pop {r3, pc}
+_020393CA:
+ add r0, #0x4c
+ pop {r3, pc}
+_020393CE:
+ add r0, #0xa8
+ pop {r3, pc}
+_020393D2:
+ add r0, #0xac
+ pop {r3, pc}
+_020393D6:
+ add r0, #0xb0
+ pop {r3, pc}
+_020393DA:
+ add r0, #0xb4
+ pop {r3, pc}
+_020393DE:
+ add r0, #0xc
+ pop {r3, pc}
+_020393E2:
+ add r0, #0x50
+ pop {r3, pc}
+_020393E6:
+ add r0, #0x54
+ pop {r3, pc}
+_020393EA:
+ add r0, #0x58
+ pop {r3, pc}
+_020393EE:
+ add r0, #0x5c
+ pop {r3, pc}
+_020393F2:
+ add r0, #0x60
+ pop {r3, pc}
+_020393F6:
+ add r0, #0x64
+ pop {r3, pc}
+_020393FA:
+ add r0, #0x68
+ pop {r3, pc}
+_020393FE:
+ add r0, #0x6c
+ pop {r3, pc}
+_02039402:
+ add r0, #0x70
+ pop {r3, pc}
+_02039406:
+ add r0, #0x74
+ pop {r3, pc}
+_0203940A:
+ add r0, #0x78
+ pop {r3, pc}
+_0203940E:
+ add r0, #0x7c
+ pop {r3, pc}
+_02039412:
+ add r0, #0x80
+ pop {r3, pc}
+_02039416:
+ add r0, #0x84
+ pop {r3, pc}
+_0203941A:
+ add r0, #0xb8
+ pop {r3, pc}
+_0203941E:
+ add r0, #0xc8
+ pop {r3, pc}
+_02039422:
+ add r0, #0xd8
+ pop {r3, pc}
+_02039426:
+ sub r1, #0x29
+ add r0, #0x88
+ lsl r1, r1, #0x1
+ add r0, r0, r1
+ pop {r3, pc}
+_02039430:
+ bl ErrorHandling
+ mov r0, #0x0
+ pop {r3, pc}
+
+ thumb_func_start FUN_02039438
+FUN_02039438: ; 0x02039438
+ push {r3-r5, lr}
+ ldr r0, [r0, #0x10]
+ add r5, r1, #0x0
+ bl FUN_0204652C
+ add r4, r0, #0x0
+ ldr r1, [r4, #0x0]
+ ldr r0, _0203945C ; =0x0003643F
+ cmp r1, r0
+ beq _02039450
+ bl ErrorHandling
+_02039450:
+ add r0, r4, #0x0
+ add r1, r5, #0x0
+ bl FUN_02039300
+ pop {r3-r5, pc}
+ nop
+_0203945C: .word 0x0003643F
+
+ thumb_func_start FUN_02039460
+FUN_02039460: ; 0x02039460
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ ldr r0, [r5, #0x10]
+ bl FUN_0204652C
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_02035068
+ cmp r0, #0x1
+ bne _0203947C
+ ldr r0, _02039480 ; =FUN_020351A0
+ add r4, #0xa4
+ str r0, [r4, #0x0]
+_0203947C:
+ pop {r3-r5, pc}
+ nop
+_02039480: .word FUN_020351A0
+
+ thumb_func_start FUN_02039484
+FUN_02039484: ; 0x02039484
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r2, [r4, #0x8]
+ lsl r1, r1, #0x2
+ add r1, r2, r1
+ str r1, [r4, #0x8]
+ bl ScriptReadWord
+ ldr r1, [r4, #0x8]
+ add r0, r1, r0
+ str r0, [r4, #0x8]
+ pop {r4, pc}
+
+ thumb_func_start FUN_0203949C
+FUN_0203949C: ; 0x0203949C
+ push {r3, lr}
+ bl FUN_02034788
+ add r1, r0, #0x0
+ mov r0, #0xa
+ mov r2, #0xb
+ bl LoadFromNarc_2
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_020394B0
+FUN_020394B0: ; 0x020394B0
+ ldr r3, _020394B4 ; =FUN_02034774
+ bx r3
+ .balign 4
+_020394B4: .word FUN_02034774
+
+ thumb_func_start FUN_020394B8
+FUN_020394B8: ; 0x020394B8
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ ldr r0, [r5, #0xc]
+ add r4, r1, #0x0
+ bl FUN_020462AC
+ mov r1, #0x1
+ lsl r1, r1, #0xe
+ cmp r4, r1
+ bhs _020394D0
+ mov r0, #0x0
+ pop {r3-r5, pc}
+_020394D0:
+ lsl r1, r1, #0x1
+ cmp r4, r1
+ bhs _020394DE
+ add r1, r4, #0x0
+ bl FUN_02046380
+ pop {r3-r5, pc}
+_020394DE:
+ ldr r1, _020394EC ; =0x00007FD7
+ add r0, r5, #0x0
+ sub r1, r4, r1
+ bl FUN_02039438
+ pop {r3-r5, pc}
+ nop
+_020394EC: .word 0x00007FD7
+
+ thumb_func_start FUN_020394F0
+FUN_020394F0: ; 0x020394F0
+ push {r4, lr}
+ add r4, r1, #0x0
+ bl FUN_020394B8
+ cmp r0, #0x0
+ beq _020394FE
+ ldrh r4, [r0, #0x0]
+_020394FE:
+ add r0, r4, #0x0
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02039504
+FUN_02039504: ; 0x02039504
+ push {r3-r5, lr}
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ cmp r4, #0x10
+ blo _02039512
+ bl ErrorHandling
+_02039512:
+ ldr r1, _02039524 ; =0x00004020
+ add r0, r5, #0x0
+ add r1, r4, r1
+ lsl r1, r1, #0x10
+ lsr r1, r1, #0x10
+ bl FUN_020394F0
+ pop {r3-r5, pc}
+ nop
+_02039524: .word 0x00004020
+
+ thumb_func_start FUN_02039528
+FUN_02039528: ; 0x02039528
+ push {r4, lr}
+ ldr r0, [r0, #0xc]
+ add r4, r1, #0x0
+ bl FUN_020462AC
+ add r1, r4, #0x0
+ bl FUN_020462B8
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0203953C
+FUN_0203953C: ; 0x0203953C
+ push {r4, lr}
+ ldr r0, [r0, #0xc]
+ add r4, r1, #0x0
+ bl FUN_020462AC
+ add r1, r4, #0x0
+ bl FUN_020462E4
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02039550
+FUN_02039550: ; 0x02039550
+ push {r4, lr}
+ ldr r0, [r0, #0xc]
+ add r4, r1, #0x0
+ bl FUN_020462AC
+ add r1, r4, #0x0
+ bl FUN_0204630C
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02039564
+FUN_02039564: ; 0x02039564
+ push {r4, lr}
+ ldr r0, [r0, #0xc]
+ bl FUN_020462AC
+ mov r1, #0x1
+ add r4, r0, #0x0
+ bl FUN_02046338
+ mov r1, #0x0
+ strb r1, [r0, #0x0]
+ strb r1, [r0, #0x1]
+ strb r1, [r0, #0x2]
+ strb r1, [r0, #0x3]
+ strb r1, [r0, #0x4]
+ strb r1, [r0, #0x5]
+ strb r1, [r0, #0x6]
+ strb r1, [r0, #0x7]
+ mov r1, #0x1
+ add r0, r4, #0x0
+ lsl r1, r1, #0xe
+ bl FUN_02046380
+ mov r1, #0x0
+ mov r2, #0x40
+ blx Call_FillMemWithValue
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0203959C
+FUN_0203959C: ; 0x0203959C
+ push {r3, lr}
+ ldr r0, [r0, #0xc]
+ bl FUN_020462AC
+ mov r1, #0xaa
+ lsl r1, r1, #0x4
+ bl FUN_02046338
+ mov r2, #0x18
+ mov r1, #0x0
+_020395B0:
+ strb r1, [r0, #0x0]
+ add r0, r0, #0x1
+ sub r2, r2, #0x1
+ bne _020395B0
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_020395BC
+FUN_020395BC: ; 0x020395BC
+ push {r3-r7, lr}
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ mov r1, #0x29
+ add r6, r2, #0x0
+ add r7, r3, #0x0
+ bl FUN_02039438
+ strh r4, [r0, #0x0]
+ add r0, r5, #0x0
+ mov r1, #0x2a
+ bl FUN_02039438
+ strh r6, [r0, #0x0]
+ add r0, r5, #0x0
+ mov r1, #0x2b
+ bl FUN_02039438
+ strh r7, [r0, #0x0]
+ add r0, r5, #0x0
+ mov r1, #0x2c
+ bl FUN_02039438
+ add r1, sp, #0x8
+ ldrh r1, [r1, #0x10]
+ strh r1, [r0, #0x0]
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_020395F4
+FUN_020395F4: ; 0x020395F4
+ ldr r1, _02039610 ; =0x00001388
+ cmp r0, r1
+ bhs _02039604
+ ldr r1, _02039614 ; =0x00000BB7
+ sub r0, r0, r1
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ bx lr
+_02039604:
+ sub r1, r1, #0x1
+ sub r0, r0, r1
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ bx lr
+ nop
+_02039610: .word 0x00001388
+_02039614: .word 0x00000BB7
+
+ thumb_func_start FUN_02039618
+FUN_02039618: ; 0x02039618
+ ldr r1, _02039628 ; =0x00001388
+ cmp r0, r1
+ blo _02039622
+ mov r0, #0x1
+ bx lr
+_02039622:
+ mov r0, #0x0
+ bx lr
+ nop
+_02039628: .word 0x00001388
+
+ thumb_func_start FUN_0203962C
+FUN_0203962C: ; 0x0203962C
+ push {r3, lr}
+ mov r1, #0x9
+ bl FUN_0206AC74
+ cmp r0, #0x0
+ beq _0203963C
+ mov r0, #0x1
+ pop {r3, pc}
+_0203963C:
+ mov r0, #0x0
+ pop {r3, pc}
+
+ thumb_func_start FUN_02039640
+FUN_02039640: ; 0x02039640
+ push {r4, lr}
+ ldr r0, [r0, #0xc]
+ add r4, r1, #0x0
+ bl FUN_020462AC
+ mov r1, #0x55
+ lsl r1, r1, #0x4
+ add r1, r4, r1
+ lsl r1, r1, #0x10
+ lsr r1, r1, #0x10
+ bl FUN_020462B8
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0203965C
+FUN_0203965C: ; 0x0203965C
+ push {r4, lr}
+ ldr r0, [r0, #0xc]
+ add r4, r1, #0x0
+ bl FUN_020462AC
+ mov r1, #0x55
+ lsl r1, r1, #0x4
+ add r1, r4, r1
+ lsl r1, r1, #0x10
+ lsr r1, r1, #0x10
+ bl FUN_020462E4
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02039678
+FUN_02039678: ; 0x02039678
+ push {r4, lr}
+ ldr r0, [r0, #0xc]
+ add r4, r1, #0x0
+ bl FUN_020462AC
+ mov r1, #0x55
+ lsl r1, r1, #0x4
+ add r1, r4, r1
+ lsl r1, r1, #0x10
+ lsr r1, r1, #0x10
+ bl FUN_0204630C
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02039694
+FUN_02039694: ; 0x02039694
+ ldr r1, _020396A0 ; =0x00001C66
+ sub r0, r0, r1
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ bx lr
+ nop
+_020396A0: .word 0x00001C66
+
+ thumb_func_start FUN_020396A4
+FUN_020396A4: ; 0x020396A4
+ mov r1, #0x7d
+ lsl r1, r1, #0x6
+ sub r0, r0, r1
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ bx lr
+
+ thumb_func_start FUN_020396B0
+FUN_020396B0: ; 0x020396B0
+ push {r4, lr}
+ ldr r4, _020396E4 ; =0x020F2DB4
+ bl FUN_020396A4
+ lsl r0, r0, #0x18
+ lsr r3, r0, #0x18
+ mov r1, #0x0
+ add r2, r4, #0x0
+_020396C0:
+ ldrh r0, [r2, #0x6]
+ cmp r3, r0
+ beq _020396CE
+ add r1, r1, #0x1
+ add r2, #0x8
+ cmp r1, #0xe5
+ blo _020396C0
+_020396CE:
+ cmp r1, #0xe5
+ blo _020396DA
+ bl ErrorHandling
+ mov r0, #0x0
+ pop {r4, pc}
+_020396DA:
+ lsl r0, r1, #0x3
+ add r0, r4, r0
+ ldrb r0, [r0, #0x3]
+ pop {r4, pc}
+ nop
+_020396E4: .word 0x020F2DB4
+
+ thumb_func_start FUN_020396E8
+FUN_020396E8: ; 0x020396E8
+ push {r3-r7, lr}
+ add r5, r1, #0x0
+ add r4, r0, #0x0
+ mov r1, #0x29
+ bl FUN_02039300
+ add r7, r0, #0x0
+ add r0, r4, #0x0
+ mov r1, #0x2a
+ bl FUN_02039300
+ add r6, r0, #0x0
+ add r0, r4, #0x0
+ mov r1, #0x2b
+ bl FUN_02039300
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_020396A4
+ lsl r0, r0, #0x18
+ ldr r2, _02039750 ; =0x020F2DB4
+ lsr r3, r0, #0x18
+ mov r1, #0x0
+_02039718:
+ ldrh r0, [r2, #0x6]
+ cmp r3, r0
+ beq _02039726
+ add r1, r1, #0x1
+ add r2, #0x8
+ cmp r1, #0xe5
+ blo _02039718
+_02039726:
+ cmp r1, #0xe5
+ blo _02039732
+ bl ErrorHandling
+ mov r0, #0x0
+ pop {r3-r7, pc}
+_02039732:
+ lsl r0, r1, #0x3
+ ldr r1, _02039750 ; =0x020F2DB4
+ ldrh r1, [r1, r0]
+ strh r1, [r7, #0x0]
+ ldr r1, _02039750 ; =0x020F2DB4
+ add r0, r1, r0
+ ldrb r0, [r0, #0x2]
+ strh r0, [r6, #0x0]
+ add r0, r5, #0x0
+ bl FUN_02039694
+ strh r0, [r4, #0x0]
+ mov r0, #0x1
+ pop {r3-r7, pc}
+ nop
+_02039750: .word 0x020F2DB4
+
+ thumb_func_start FUN_02039754
+FUN_02039754: ; 0x02039754
+ push {r4-r7, lr}
+ sub sp, #0x24
+ str r0, [sp, #0x0]
+ add r4, r1, #0x0
+ mov r6, #0x0
+ bl FUN_02034AF8
+ add r5, r0, #0x0
+ add r2, r5, #0x1
+ mov r1, #0x6
+ add r0, r4, #0x0
+ mul r1, r2
+ bl FUN_02016998
+ str r0, [sp, #0x1c]
+ cmp r5, #0x0
+ bne _02039786
+ mov r2, #0xff
+ add r1, r0, #0x0
+ strb r2, [r1, #0x4]
+ ldr r2, _02039870 ; =0x0000FFFF
+ add sp, #0x24
+ strh r2, [r1, #0x0]
+ strh r2, [r1, #0x2]
+ pop {r4-r7, pc}
+_02039786:
+ ldr r0, [sp, #0x0]
+ bl FUN_02034AF0
+ add r4, r0, #0x0
+ bne _020397A0
+ ldr r0, [sp, #0x1c]
+ mov r1, #0xff
+ strb r1, [r0, #0x4]
+ ldr r1, _02039870 ; =0x0000FFFF
+ add sp, #0x24
+ strh r1, [r0, #0x0]
+ strh r1, [r0, #0x2]
+ pop {r4-r7, pc}
+_020397A0:
+ ldr r0, [sp, #0x0]
+ ldr r0, [r0, #0x38]
+ bl FUN_02055320
+ str r0, [sp, #0x18]
+ ldr r0, [sp, #0x0]
+ ldr r0, [r0, #0x38]
+ bl FUN_0205532C
+ str r0, [sp, #0x14]
+ ldr r0, [sp, #0x18]
+ sub r0, r0, #0x7
+ str r0, [sp, #0x10]
+ ldr r0, [sp, #0x18]
+ add r0, r0, #0x7
+ str r0, [sp, #0xc]
+ ldr r0, [sp, #0x14]
+ sub r0, r0, #0x7
+ str r0, [sp, #0x8]
+ ldr r0, [sp, #0x14]
+ add r0, r0, #0x6
+ str r0, [sp, #0x4]
+ ldr r0, [sp, #0x10]
+ cmp r0, #0x0
+ bge _020397D6
+ add r0, r6, #0x0
+ str r0, [sp, #0x10]
+_020397D6:
+ ldr r0, [sp, #0x8]
+ cmp r0, #0x0
+ bge _020397E0
+ mov r0, #0x0
+ str r0, [sp, #0x8]
+_020397E0:
+ add r0, r5, #0x1
+ mov r7, #0x0
+ str r0, [sp, #0x20]
+ cmp r0, #0x0
+ ble _02039856
+ ldr r5, [sp, #0x1c]
+_020397EC:
+ ldrh r0, [r4, #0x2]
+ cmp r0, #0x2
+ bne _0203984C
+ ldrh r0, [r4, #0x0]
+ bl FUN_02039694
+ add r1, r0, #0x0
+ ldr r0, [sp, #0x0]
+ bl FUN_02039528
+ cmp r0, #0x0
+ bne _0203984C
+ ldr r1, [r4, #0x4]
+ ldr r0, [sp, #0x10]
+ cmp r1, r0
+ blt _0203984C
+ ldr r0, [sp, #0xc]
+ cmp r1, r0
+ bgt _0203984C
+ ldr r1, [r4, #0x8]
+ ldr r0, [sp, #0x8]
+ cmp r1, r0
+ blt _0203984C
+ ldr r0, [sp, #0x4]
+ cmp r1, r0
+ bgt _0203984C
+ ldrh r0, [r4, #0x0]
+ bl FUN_020396B0
+ strb r0, [r5, #0x4]
+ ldr r1, [r4, #0x4]
+ ldr r0, [sp, #0x18]
+ sub r1, r0, r1
+ mov r0, #0x7
+ sub r0, r0, r1
+ blx 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
+ strh r0, [r5, #0x2]
+ add r5, r5, #0x6
+ add r6, r6, #0x1
+_0203984C:
+ ldr r0, [sp, #0x20]
+ add r7, r7, #0x1
+ add r4, #0x14
+ cmp r7, r0
+ blt _020397EC
+_02039856:
+ mov r0, #0x6
+ add r3, r6, #0x0
+ mul r3, r0
+ ldr r0, [sp, #0x1c]
+ mov r1, #0xff
+ add r2, r0, r3
+ strb r1, [r2, #0x4]
+ ldr r1, _02039870 ; =0x0000FFFF
+ strh r1, [r0, r3]
+ strh r1, [r2, #0x2]
+ add sp, #0x24
+ pop {r4-r7, pc}
+ nop
+_02039870: .word 0x0000FFFF
+
+ thumb_func_start FUN_02039874
+FUN_02039874: ; 0x02039874
+ ldr r3, _0203987C ; =FUN_02039880
+ mov r1, #0x96
+ lsl r1, r1, #0x6
+ bx r3
+ .balign 4
+_0203987C: .word FUN_02039880
+
+ thumb_func_start FUN_02039880
+FUN_02039880: ; 0x02039880
+ push {r4, lr}
+ bl FUN_02038EB0
+ add r4, r0, #0x0
+_02039888:
+ add r0, r4, #0x0
+ bl RunScriptCommand
+ cmp r0, #0x1
+ beq _02039888
+ add r0, r4, #0x0
+ bl FUN_02038E48
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0203989C
+FUN_0203989C: ; 0x0203989C
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ bl FUN_02034D2C
+ add r1, r0, #0x0
+ bne _020398AE
+ mov r0, #0x0
+ pop {r3-r5, pc}
+_020398AE:
+ cmp r4, #0x1
+ bne _020398BC
+ add r0, r5, #0x0
+ add r2, r4, #0x0
+ bl FUN_02039914
+ b _020398C2
+_020398BC:
+ add r1, r4, #0x0
+ bl _020398EC
+_020398C2:
+ add r1, r0, #0x0
+ ldr r0, _020398E8 ; =0x0000FFFF
+ cmp r1, r0
+ bne _020398CE
+ mov r0, #0x0
+ pop {r3-r5, pc}
+_020398CE:
+ cmp r4, #0x1
+ bne _020398DC
+ add r0, r5, #0x0
+ mov r2, #0x0
+ bl FUN_02038C78
+ b _020398E2
+_020398DC:
+ add r0, r5, #0x0
+ bl FUN_02039880
+_020398E2:
+ mov r0, #0x1
+ pop {r3-r5, pc}
+ nop
+_020398E8: .word 0x0000FFFF
+_020398EC:
+ ldrb r2, [r0, #0x0]
+ cmp r2, #0x0
+ bne _020398F6
+ ldr r0, _02039910 ; =0x0000FFFF
+ bx lr
+_020398F6:
+ cmp r2, r1
+ bne _02039908
+ ldrb r1, [r0, #0x1]
+ ldrb r0, [r0, #0x2]
+ lsl r0, r0, #0x8
+ add r0, r1, r0
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ bx lr
+_02039908:
+ add r0, r0, #0x5
+ b _020398EC
+_0203990C: ; 0x0203990C
+ bx lr
+ nop
+_02039910: .word 0x0000FFFF
+
+ thumb_func_start FUN_02039914
+FUN_02039914: ; 0x02039914
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+_0203991A:
+ ldrb r0, [r4, #0x0]
+ cmp r0, #0x0
+ bne _02039924
+ ldr r0, _0203999C ; =0x0000FFFF
+ pop {r3-r7, pc}
+_02039924:
+ cmp r0, r2
+ bne _02039940
+ ldrb r0, [r4, #0x4]
+ ldrb r2, [r4, #0x2]
+ ldrb r3, [r4, #0x1]
+ lsl r1, r0, #0x18
+ ldrb r0, [r4, #0x3]
+ lsl r2, r2, #0x8
+ add r2, r3, r2
+ lsl r0, r0, #0x10
+ add r0, r0, r2
+ add r1, r1, r0
+ add r0, r4, #0x5
+ b _02039944
+_02039940:
+ add r4, r4, #0x5
+ b _0203991A
+_02039944:
+ cmp r1, #0x0
+ bne _0203994C
+ ldr r0, _0203999C ; =0x0000FFFF
+ pop {r3-r7, pc}
+_0203994C:
+ add r4, r0, r1
+_0203994E:
+ ldrb r1, [r4, #0x0]
+ cmp r1, #0x0
+ bne _02039958
+ ldr r0, _0203999C ; =0x0000FFFF
+ pop {r3-r7, pc}
+_02039958:
+ ldrb r0, [r4, #0x1]
+ lsl r0, r0, #0x8
+ add r0, r1, r0
+ lsl r0, r0, #0x10
+ lsr r1, r0, #0x10
+ bne _02039968
+ ldr r0, _0203999C ; =0x0000FFFF
+ pop {r3-r7, pc}
+_02039968:
+ ldrb r0, [r4, #0x3]
+ ldrb r2, [r4, #0x2]
+ lsl r0, r0, #0x8
+ add r0, r2, r0
+ lsl r0, r0, #0x10
+ lsr r6, r0, #0x10
+ add r0, r5, #0x0
+ bl FUN_020394F0
+ add r7, r0, #0x0
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ bl FUN_020394F0
+ cmp r7, r0
+ bne _02039996
+ ldrb r0, [r4, #0x5]
+ ldrb r1, [r4, #0x4]
+ lsl r0, r0, #0x8
+ add r0, r1, r0
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ pop {r3-r7, pc}
+_02039996:
+ add r4, r4, #0x6
+ b _0203994E
+ pop {r3-r7, pc}
+ .balign 4
+_0203999C: .word 0x0000FFFF
diff --git a/arm9/asm/unk_02046030.s b/arm9/asm/unk_02046030.s
new file mode 100644
index 00000000..30b8ee4c
--- /dev/null
+++ b/arm9/asm/unk_02046030.s
@@ -0,0 +1,142185 @@
+ .include "asm/macros.inc"
+ .include "global.inc"
+
+ .text
+
+ thumb_func_start FUN_02046030
+FUN_02046030: ; 0x02046030
+ push {r4, lr}
+ add r4, r0, #0x0
+ mov r0, #0xb
+ mov r1, #0xc
+ bl FUN_020169D8
+ add r2, r0, #0x0
+ mov r0, #0x0
+ strb r0, [r2, #0x0]
+ strb r0, [r2, #0x1]
+ strb r0, [r2, #0x2]
+ strb r0, [r2, #0x3]
+ strb r0, [r2, #0x4]
+ strb r0, [r2, #0x5]
+ strb r0, [r2, #0x6]
+ strb r0, [r2, #0x7]
+ strb r0, [r2, #0x8]
+ strb r0, [r2, #0x9]
+ strb r0, [r2, #0xa]
+ strb r0, [r2, #0xb]
+ ldr r0, [r4, #0x10]
+ ldr r1, _02046064 ; =FUN_02046068
+ bl FUN_0204640C
+ pop {r4, pc}
+ nop
+_02046064: .word FUN_02046068
+
+ thumb_func_start FUN_02046068
+FUN_02046068: ; 0x02046068
+ push {r4-r6, lr}
+ sub sp, #0x38
+ add r6, r0, #0x0
+ bl FUN_02046528
+ add r5, r0, #0x0
+ add r0, r6, #0x0
+ bl FUN_0204652C
+ add r4, r0, #0x0
+ ldr r0, [r5, #0xc]
+ bl FUN_020462AC
+ ldrb r1, [r4, #0x8]
+ cmp r1, #0xb
+ bls _0204608A
+ b _020461F8
+_0204608A:
+ add r2, r1, r1
+ add r2, pc
+ ldrh r2, [r2, #0x6]
+ lsl r2, r2, #0x10
+ asr r2, r2, #0x10
+ add pc, r2
+_02046096: ; jump table (using 16-bit offset)
+ .short _020460AE - _02046096 - 2; case 0
+ .short _020460D4 - _02046096 - 2; case 1
+ .short _020460E2 - _02046096 - 2; case 2
+ .short _0204610A - _02046096 - 2; case 3
+ .short _02046118 - _02046096 - 2; case 4
+ .short _02046150 - _02046096 - 2; case 5
+ .short _02046160 - _02046096 - 2; case 6
+ .short _0204618A - _02046096 - 2; case 7
+ .short _02046198 - _02046096 - 2; case 8
+ .short _020461C0 - _02046096 - 2; case 9
+ .short _020461CE - _02046096 - 2; case 10
+ .short _020461E4 - _02046096 - 2; case 11
+_020460AE:
+ ldr r0, [r5, #0x38]
+ bl FUN_02055320
+ strh r0, [r4, #0x4]
+ ldr r0, [r5, #0x38]
+ bl FUN_0205532C
+ strh r0, [r4, #0x6]
+ add r0, r5, #0x0
+ mov r1, #0x1
+ bl FUN_0206367C
+ add r0, r6, #0x0
+ bl FUN_0204AFC8
+ ldrb r0, [r4, #0x8]
+ add r0, r0, #0x1
+ strb r0, [r4, #0x8]
+ b _020461F8
+_020460D4:
+ add r0, r6, #0x0
+ bl FUN_0204AF3C
+ ldrb r0, [r4, #0x8]
+ add r0, r0, #0x1
+ strb r0, [r4, #0x8]
+ b _020461F8
+_020460E2:
+ bl FUN_0205F1C4
+ mov r0, #0xac
+ str r0, [sp, #0x24]
+ sub r0, #0xad
+ str r0, [sp, #0x28]
+ ldr r0, _02046200 ; =0x0000034F
+ add r1, sp, #0x24
+ str r0, [sp, #0x2c]
+ ldr r0, _02046204 ; =0x00000231
+ str r0, [sp, #0x30]
+ mov r0, #0x1
+ str r0, [sp, #0x34]
+ add r0, r6, #0x0
+ bl FUN_02049160
+ ldrb r0, [r4, #0x8]
+ add r0, r0, #0x1
+ strb r0, [r4, #0x8]
+ b _020461F8
+_0204610A:
+ add r0, r6, #0x0
+ bl FUN_0204AF84
+ ldrb r0, [r4, #0x8]
+ add r0, r0, #0x1
+ strb r0, [r4, #0x8]
+ b _020461F8
+_02046118:
+ ldr r0, [r5, #0x38]
+ mov r1, #0x1
+ bl FUN_02046214
+ add r0, r5, #0x0
+ bl FUN_02046224
+ mov r0, #0x0
+ str r0, [sp, #0x0]
+ mov r0, #0x6
+ str r0, [sp, #0x4]
+ mov r0, #0x1
+ str r0, [sp, #0x8]
+ mov r0, #0xb
+ str r0, [sp, #0xc]
+ ldr r3, _02046208 ; =0x0000FFFF
+ add r0, r6, #0x0
+ mov r1, #0x3
+ mov r2, #0x11
+ bl FUN_0204C1B4
+ ldr r0, _0204620C ; =0x00000679
+ bl FUN_020054C8
+ ldrb r0, [r4, #0x8]
+ add r0, r0, #0x1
+ strb r0, [r4, #0x8]
+ b _020461F8
+_02046150:
+ ldr r0, _02046210 ; =0x021C48B8
+ ldr r2, [r0, #0x48]
+ mov r0, #0x3
+ tst r0, r2
+ beq _020461F8
+ add r0, r1, #0x1
+ strb r0, [r4, #0x8]
+ b _020461F8
+_02046160:
+ mov r0, #0x0
+ str r0, [sp, #0x0]
+ mov r0, #0x6
+ str r0, [sp, #0x4]
+ mov r0, #0x1
+ str r0, [sp, #0x8]
+ mov r0, #0xb
+ str r0, [sp, #0xc]
+ ldr r3, _02046208 ; =0x0000FFFF
+ add r0, r6, #0x0
+ mov r1, #0x3
+ mov r2, #0x10
+ bl FUN_0204C1B4
+ ldr r0, _0204620C ; =0x00000679
+ bl FUN_020054C8
+ ldrb r0, [r4, #0x8]
+ add r0, r0, #0x1
+ strb r0, [r4, #0x8]
+ b _020461F8
+_0204618A:
+ add r0, r6, #0x0
+ bl FUN_0204AF3C
+ ldrb r0, [r4, #0x8]
+ add r0, r0, #0x1
+ strb r0, [r4, #0x8]
+ b _020461F8
+_02046198:
+ bl FUN_0205F1D4
+ ldrh r2, [r4, #0x6]
+ ldrh r1, [r4, #0x4]
+ mov r0, #0xa4
+ str r0, [sp, #0x10]
+ sub r0, #0xa5
+ str r0, [sp, #0x14]
+ mov r0, #0x0
+ str r1, [sp, #0x18]
+ str r0, [sp, #0x20]
+ str r2, [sp, #0x1c]
+ add r0, r6, #0x0
+ add r1, sp, #0x10
+ bl FUN_02049160
+ ldrb r0, [r4, #0x8]
+ add r0, r0, #0x1
+ strb r0, [r4, #0x8]
+ b _020461F8
+_020461C0:
+ add r0, r6, #0x0
+ bl FUN_0204AF84
+ ldrb r0, [r4, #0x8]
+ add r0, r0, #0x1
+ strb r0, [r4, #0x8]
+ b _020461F8
+_020461CE:
+ ldr r0, [r5, #0x38]
+ mov r1, #0x0
+ bl FUN_02046214
+ add r0, r6, #0x0
+ bl FUN_0204B00C
+ ldrb r0, [r4, #0x8]
+ add r0, r0, #0x1
+ strb r0, [r4, #0x8]
+ b _020461F8
+_020461E4:
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ add r0, r5, #0x0
+ mov r1, #0x0
+ bl FUN_0206367C
+ add sp, #0x38
+ mov r0, #0x1
+ pop {r4-r6, pc}
+_020461F8:
+ mov r0, #0x0
+ add sp, #0x38
+ pop {r4-r6, pc}
+ nop
+_02046200: .word 0x0000034F
+_02046204: .word 0x00000231
+_02046208: .word 0x0000FFFF
+_0204620C: .word 0x00000679
+_02046210: .word 0x021C48B8
+
+ thumb_func_start FUN_02046214
+FUN_02046214: ; 0x02046214
+ push {r4, lr}
+ add r4, r1, #0x0
+ bl FUN_020553A0
+ add r1, r4, #0x0
+ bl FUN_0205889C
+ pop {r4, pc}
+
+ thumb_func_start FUN_02046224
+FUN_02046224: ; 0x02046224
+ push {r3-r4, lr}
+ sub sp, #0x14
+ add r4, r0, #0x0
+ ldr r0, _02046278 ; =0x000008C1
+ ldr r1, [r4, #0x20]
+ bl FUN_0201EEF0
+ ldr r0, _0204627C ; =0x000F81B8
+ ldr r1, [r4, #0x20]
+ bl FUN_0201EFE0
+ ldr r0, _02046280 ; =0x0350523D
+ str r0, [sp, #0x8]
+ ldr r0, _02046284 ; =0x0015EDB7
+ str r0, [sp, #0xc]
+ ldr r0, _02046288 ; =0x023DA40E
+ str r0, [sp, #0x10]
+ ldr r1, [r4, #0x20]
+ add r0, sp, #0x8
+ bl FUN_0201F04C
+ ldr r1, _0204628C ; =0x00000823
+ add r0, sp, #0x0
+ strh r1, [r0, #0x0]
+ mov r1, #0x52
+ lsl r1, r1, #0x4
+ strh r1, [r0, #0x2]
+ mov r1, #0x0
+ strh r1, [r0, #0x4]
+ ldr r1, [r4, #0x20]
+ add r0, sp, #0x0
+ bl FUN_0201EF90
+ mov r0, #0x3
+ ldr r1, _02046290 ; =0x0061C000
+ ldr r2, [r4, #0x20]
+ lsl r0, r0, #0xe
+ bl FUN_0201EC94
+ add sp, #0x14
+ pop {r3-r4, pc}
+ nop
+_02046278: .word 0x000008C1
+_0204627C: .word 0x000F81B8
+_02046280: .word 0x0350523D
+_02046284: .word 0x0015EDB7
+_02046288: .word 0x023DA40E
+_0204628C: .word 0x00000823
+_02046290: .word 0x0061C000
+
+ thumb_func_start FUN_02046294
+FUN_02046294: ; 0x02046294
+ mov r0, #0xeb
+ lsl r0, r0, #0x2
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_0204629C
+FUN_0204629C: ; 0x0204629C
+ ldr r3, _020462A8 ; =Call_FillMemWithValue
+ mov r2, #0xeb
+ mov r1, #0x0
+ lsl r2, r2, #0x2
+ bx r3
+ nop
+_020462A8: .word Call_FillMemWithValue
+
+ thumb_func_start FUN_020462AC
+FUN_020462AC: ; 0x020462AC
+ ldr r3, _020462B4 ; =FUN_02022610
+ mov r1, #0x4
+ bx r3
+ nop
+_020462B4: .word FUN_02022610
+
+ thumb_func_start FUN_020462B8
+FUN_020462B8: ; 0x020462B8
+ push {r3-r5, lr}
+ add r4, r1, #0x0
+ bl FUN_02046338
+ cmp r0, #0x0
+ beq _020462DE
+ lsr r3, r4, #0x1f
+ lsl r2, r4, #0x1d
+ ldrb r5, [r0, #0x0]
+ sub r2, r2, r3
+ mov r1, #0x1d
+ ror r2, r1
+ mov r0, #0x1
+ add r1, r3, r2
+ add r2, r0, #0x0
+ lsl r2, r1
+ add r1, r5, #0x0
+ tst r1, r2
+ bne _020462E0
+_020462DE:
+ mov r0, #0x0
+_020462E0:
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_020462E4
+FUN_020462E4: ; 0x020462E4
+ push {r4-r6, lr}
+ add r4, r1, #0x0
+ bl FUN_02046338
+ cmp r0, #0x0
+ beq _02046308
+ lsr r5, r4, #0x1f
+ lsl r3, r4, #0x1d
+ sub r3, r3, r5
+ mov r2, #0x1d
+ ror r3, r2
+ mov r6, #0x1
+ add r2, r5, r3
+ add r3, r6, #0x0
+ ldrb r1, [r0, #0x0]
+ lsl r3, r2
+ orr r1, r3
+ strb r1, [r0, #0x0]
+_02046308:
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_0204630C
+FUN_0204630C: ; 0x0204630C
+ push {r4-r6, lr}
+ add r4, r1, #0x0
+ bl FUN_02046338
+ cmp r0, #0x0
+ beq _02046334
+ lsr r5, r4, #0x1f
+ lsl r3, r4, #0x1d
+ sub r3, r3, r5
+ mov r2, #0x1d
+ ror r3, r2
+ mov r6, #0x1
+ add r2, r5, r3
+ add r3, r6, #0x0
+ lsl r3, r2
+ mov r2, #0xff
+ ldrb r1, [r0, #0x0]
+ eor r2, r3
+ and r1, r2
+ strb r1, [r0, #0x0]
+_02046334:
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_02046338
+FUN_02046338: ; 0x02046338
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ cmp r1, #0x0
+ bne _02046344
+ mov r0, #0x0
+ pop {r3-r5, pc}
+_02046344:
+ mov r0, #0x1
+ lsl r0, r0, #0xe
+ cmp r1, r0
+ bhs _02046364
+ mov r0, #0x5b
+ lsr r4, r1, #0x3
+ lsl r0, r0, #0x2
+ cmp r4, r0
+ blt _0204635A
+ bl ErrorHandling
+_0204635A:
+ mov r0, #0x9
+ lsl r0, r0, #0x6
+ add r0, r5, r0
+ add r0, r0, r4
+ pop {r3-r5, pc}
+_02046364:
+ sub r1, r1, r0
+ asr r0, r1, #0x2
+ lsr r0, r0, #0x1d
+ add r0, r1, r0
+ asr r4, r0, #0x3
+ cmp r4, #0x8
+ blt _02046376
+ bl ErrorHandling
+_02046376:
+ ldr r0, _0204637C ; =0x021C5A14
+ add r0, r0, r4
+ pop {r3-r5, pc}
+ .balign 4
+_0204637C: .word 0x021C5A14
+
+ thumb_func_start FUN_02046380
+FUN_02046380: ; 0x02046380
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ mov r0, #0x1
+ lsl r0, r0, #0xe
+ sub r4, r1, r0
+ mov r0, #0x12
+ lsl r0, r0, #0x4
+ cmp r4, r0
+ blt _02046396
+ bl ErrorHandling
+_02046396:
+ lsl r0, r4, #0x1
+ add r0, r5, r0
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_0204639C
+FUN_0204639C: ; 0x0204639C
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ mov r0, #0x20
+ add r6, r1, #0x0
+ add r1, r0, #0x0
+ add r7, r2, #0x0
+ bl FUN_020169D8
+ add r4, r0, #0x0
+ mov r0, #0x0
+ str r0, [r4, #0x0]
+ str r6, [r4, #0x4]
+ str r0, [r4, #0x8]
+ str r7, [r4, #0xc]
+ str r0, [r4, #0x10]
+ str r0, [r4, #0x14]
+ mov r0, #0x20
+ mov r1, #0x4
+ str r5, [r4, #0x18]
+ bl FUN_020169D8
+ str r0, [r4, #0x1c]
+ add r0, r4, #0x0
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_020463CC
+FUN_020463CC: ; 0x020463CC
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ ldr r0, [r5, #0x10]
+ add r4, r1, #0x0
+ add r6, r2, #0x0
+ cmp r0, #0x0
+ beq _020463DE
+ bl ErrorHandling
+_020463DE:
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ add r2, r6, #0x0
+ bl FUN_0204639C
+ str r0, [r5, #0x10]
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_020463EC
+FUN_020463EC: ; 0x020463EC
+ push {r4, lr}
+ add r4, r0, #0x0
+ str r1, [r4, #0x4]
+ mov r0, #0x0
+ str r0, [r4, #0x8]
+ str r2, [r4, #0xc]
+ ldr r0, [r4, #0x14]
+ cmp r0, #0x0
+ bne _02046400
+ beq _0204640A
+_02046400:
+ bl FUN_02016A18
+ mov r0, #0x0
+ str r0, [r4, #0x10]
+ str r0, [r4, #0x14]
+_0204640A:
+ pop {r4, pc}
+
+ thumb_func_start FUN_0204640C
+FUN_0204640C: ; 0x0204640C
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r0, [r4, #0x18]
+ bl FUN_0204639C
+ str r4, [r0, #0x0]
+ ldr r1, [r4, #0x18]
+ str r0, [r1, #0x10]
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02046420
+FUN_02046420: ; 0x02046420
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ ldr r0, [r5, #0x10]
+ cmp r0, #0x0
+ bne _0204642E
+ mov r0, #0x0
+ pop {r3-r5, pc}
+_0204642E:
+ ldr r1, [r0, #0x4]
+ blx r1
+ cmp r0, #0x1
+ bne _02046466
+_02046436:
+ ldr r0, [r5, #0x10]
+ ldr r4, [r0, #0x0]
+ ldr r0, [r0, #0x14]
+ cmp r0, #0x0
+ beq _02046444
+ bl FUN_02016A18
+_02046444:
+ ldr r0, [r5, #0x10]
+ ldr r0, [r0, #0x1c]
+ bl FUN_02016A18
+ ldr r0, [r5, #0x10]
+ bl FUN_02016A18
+ str r4, [r5, #0x10]
+ cmp r4, #0x0
+ bne _0204645C
+ mov r0, #0x1
+ pop {r3-r5, pc}
+_0204645C:
+ ldr r0, [r5, #0x10]
+ ldr r1, [r0, #0x4]
+ blx r1
+ cmp r0, #0x1
+ beq _02046436
+_02046466:
+ mov r0, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_0204646C
+FUN_0204646C: ; 0x0204646C
+ ldr r0, [r0, #0x10]
+ cmp r0, #0x0
+ beq _02046476
+ mov r0, #0x1
+ bx lr
+_02046476:
+ mov r0, #0x0
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_0204647C
+FUN_0204647C: ; 0x0204647C
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl FUN_0203739C
+ cmp r0, #0x0
+ bne _02046492
+ add r0, r4, #0x0
+ bl FUN_020373C4
+ cmp r0, #0x0
+ beq _02046496
+_02046492:
+ mov r0, #0x1
+ pop {r4, pc}
+_02046496:
+ mov r0, #0x0
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0204649C
+FUN_0204649C: ; 0x0204649C
+ ldr r3, _020464A0 ; =FUN_02037350
+ bx r3
+ .balign 4
+_020464A0: .word FUN_02037350
+
+ thumb_func_start FUN_020464A4
+FUN_020464A4: ; 0x020464A4
+ push {r3, lr}
+ bl FUN_020373AC
+ cmp r0, #0x0
+ beq _020464B2
+ mov r0, #0x1
+ pop {r3, pc}
+_020464B2:
+ mov r0, #0x0
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_020464B8
+FUN_020464B8: ; 0x020464B8
+ push {r3-r5, lr}
+ add r4, r0, #0x0
+ bl FUN_02046528
+ add r5, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_0204652C
+ add r4, r0, #0x0
+ ldr r0, [r4, #0x0]
+ cmp r0, #0x0
+ beq _020464D6
+ cmp r0, #0x1
+ beq _020464E8
+ b _020464FC
+_020464D6:
+ ldr r1, [r4, #0x4]
+ ldr r2, [r4, #0x8]
+ add r0, r5, #0x0
+ bl FUN_020373D4
+ ldr r0, [r4, #0x0]
+ add r0, r0, #0x1
+ str r0, [r4, #0x0]
+ b _020464FC
+_020464E8:
+ add r0, r5, #0x0
+ bl FUN_0204647C
+ cmp r0, #0x0
+ bne _020464FC
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ mov r0, #0x1
+ pop {r3-r5, pc}
+_020464FC:
+ mov r0, #0x0
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_02046500
+FUN_02046500: ; 0x02046500
+ push {r4-r6, lr}
+ add r6, r0, #0x0
+ add r5, r1, #0x0
+ mov r0, #0x20
+ mov r1, #0xc
+ add r4, r2, #0x0
+ bl FUN_020169D8
+ add r2, r0, #0x0
+ mov r0, #0x0
+ str r0, [r2, #0x0]
+ str r5, [r2, #0x4]
+ ldr r1, _02046524 ; =FUN_020464B8
+ add r0, r6, #0x0
+ str r4, [r2, #0x8]
+ bl FUN_0204640C
+ pop {r4-r6, pc}
+ .balign 4
+_02046524: .word FUN_020464B8
+
+ thumb_func_start FUN_02046528
+FUN_02046528: ; 0x02046528
+ ldr r0, [r0, #0x18]
+ bx lr
+
+ thumb_func_start FUN_0204652C
+FUN_0204652C: ; 0x0204652C
+ ldr r0, [r0, #0xc]
+ bx lr
+
+ thumb_func_start FUN_02046530
+FUN_02046530: ; 0x02046530
+ add r0, #0x8
+ bx lr
+
+ thumb_func_start FUN_02046534
+FUN_02046534: ; 0x02046534
+ ldr r0, [r0, #0x1c]
+ ldr r0, [r0, #0x0]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_0204653C
+FUN_0204653C: ; 0x0204653C
+ push {r4-r6, lr}
+ add r4, r0, #0x0
+ bl FUN_02046528
+ add r5, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_0204652C
+ add r6, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_02046530
+ add r4, r0, #0x0
+ ldr r0, [r4, #0x0]
+ cmp r0, #0x0
+ beq _02046562
+ cmp r0, #0x1
+ beq _02046572
+ b _02046580
+_02046562:
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ bl FUN_0203780C
+ ldr r0, [r4, #0x0]
+ add r0, r0, #0x1
+ str r0, [r4, #0x0]
+ b _02046580
+_02046572:
+ add r0, r5, #0x0
+ bl FUN_0204647C
+ cmp r0, #0x0
+ bne _02046580
+ mov r0, #0x1
+ pop {r4-r6, pc}
+_02046580:
+ mov r0, #0x0
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_02046584
+FUN_02046584: ; 0x02046584
+ ldr r3, _0204658C ; =FUN_0204640C
+ add r2, r1, #0x0
+ ldr r1, _02046590 ; =FUN_0204653C
+ bx r3
+ .balign 4
+_0204658C: .word FUN_0204640C
+_02046590: .word FUN_0204653C
+
+ thumb_func_start FUN_02046594
+FUN_02046594: ; 0x02046594
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ add r6, r1, #0x0
+ mov r0, #0xb
+ mov r1, #0x14
+ add r7, r2, #0x0
+ add r4, r3, #0x0
+ bl FUN_020169D8
+ str r4, [r0, #0x0]
+ cmp r4, #0x0
+ beq _020465B0
+ mov r1, #0x0
+ str r1, [r4, #0x0]
+_020465B0:
+ str r6, [r0, #0x4]
+ str r7, [r0, #0x8]
+ str r5, [r0, #0x10]
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_020465B8
+FUN_020465B8: ; 0x020465B8
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r0, [r4, #0x10]
+ bl FUN_02047964
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_020465CC
+FUN_020465CC: ; 0x020465CC
+ ldr r2, [r0, #0x0]
+ cmp r2, #0x0
+ beq _020465D8
+ ldr r1, [r0, #0x10]
+ ldr r1, [r1, #0x14]
+ str r1, [r2, #0x0]
+_020465D8:
+ ldr r0, [r0, #0x10]
+ ldr r3, _020465E0 ; =FUN_020480B8
+ ldr r0, [r0, #0x14]
+ bx r3
+ .balign 4
+_020465E0: .word FUN_020480B8
+
+ thumb_func_start FUN_020465E4
+FUN_020465E4: ; 0x020465E4
+ push {r3, lr}
+ mov r2, #0x2
+ ldr r3, [r0, #0x0]
+ lsl r2, r2, #0x1e
+ tst r2, r3
+ bne _020465F4
+ bl FUN_02047F38
+_020465F4:
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_020465F8
+FUN_020465F8: ; 0x020465F8
+ push {r3-r7, lr}
+ add r7, r0, #0x0
+ bl FUN_02046528
+ add r6, r0, #0x0
+ add r0, r7, #0x0
+ bl FUN_0204652C
+ add r5, r0, #0x0
+ add r0, r7, #0x0
+ bl FUN_02046530
+ add r4, r0, #0x0
+ ldr r0, [r4, #0x0]
+ cmp r0, #0x5
+ bhi _020466F8
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02046624: ; jump table (using 16-bit offset)
+ .short _02046630 - _02046624 - 2; case 0
+ .short _02046648 - _02046624 - 2; case 1
+ .short _02046656 - _02046624 - 2; case 2
+ .short _02046666 - _02046624 - 2; case 3
+ .short _020466DA - _02046624 - 2; case 4
+ .short _020466EE - _02046624 - 2; case 5
+_02046630:
+ ldr r0, [r6, #0x34]
+ bl FUN_02058780
+ ldr r1, [r5, #0x4]
+ ldr r2, [r5, #0x8]
+ add r0, r7, #0x0
+ bl FUN_0204AEF8
+ ldr r0, [r4, #0x0]
+ add r0, r0, #0x1
+ str r0, [r4, #0x0]
+ b _020466F8
+_02046648:
+ add r0, r7, #0x0
+ bl FUN_0204AF3C
+ ldr r0, [r4, #0x0]
+ add r0, r0, #0x1
+ str r0, [r4, #0x0]
+ b _020466F8
+_02046656:
+ ldr r1, [r5, #0x10]
+ add r0, r7, #0x0
+ bl FUN_02046584
+ ldr r0, [r4, #0x0]
+ add r0, r0, #0x1
+ str r0, [r4, #0x0]
+ b _020466F8
+_02046666:
+ ldr r0, [r5, #0x10]
+ add r1, r6, #0x0
+ bl FUN_020465E4
+ ldr r2, [r5, #0x10]
+ ldr r1, [r2, #0x0]
+ cmp r1, #0x0
+ beq _02046682
+ mov r0, #0x1
+ lsl r0, r0, #0x8
+ cmp r1, r0
+ beq _02046682
+ cmp r1, #0x4a
+ bne _02046690
+_02046682:
+ mov r1, #0x4d
+ lsl r1, r1, #0x2
+ ldr r1, [r2, r1]
+ ldr r2, [r2, #0x14]
+ add r0, r6, #0x0
+ bl FUN_02061080
+_02046690:
+ add r0, r5, #0x0
+ bl FUN_020465CC
+ cmp r0, #0x0
+ bne _020466A4
+ add r0, r5, #0x0
+ bl FUN_020465B8
+ mov r0, #0x1
+ pop {r3-r7, pc}
+_020466A4:
+ ldr r0, [r6, #0xc]
+ bl FUN_020462AC
+ bl FUN_0205ED3C
+ cmp r0, #0x0
+ beq _020466BC
+ ldr r0, [r6, #0xc]
+ bl FUN_0206BB1C
+ bl FUN_02085140
+_020466BC:
+ ldr r1, [r5, #0x10]
+ add r0, r6, #0x0
+ bl FUN_020472F4
+ ldr r1, [r5, #0x10]
+ add r0, r6, #0x0
+ bl FUN_020473CC
+ add r0, r7, #0x0
+ bl FUN_0204AF84
+ ldr r0, [r4, #0x0]
+ add r0, r0, #0x1
+ str r0, [r4, #0x0]
+ b _020466F8
+_020466DA:
+ ldr r0, [r6, #0x34]
+ bl FUN_020587B0
+ add r0, r7, #0x0
+ bl FUN_0204B00C
+ ldr r0, [r4, #0x0]
+ add r0, r0, #0x1
+ str r0, [r4, #0x0]
+ b _020466F8
+_020466EE:
+ add r0, r5, #0x0
+ bl FUN_020465B8
+ mov r0, #0x1
+ pop {r3-r7, pc}
+_020466F8:
+ mov r0, #0x0
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_020466FC
+FUN_020466FC: ; 0x020466FC
+ push {r4, lr}
+ add r4, r0, #0x0
+ add r0, r1, #0x0
+ add r1, r2, #0x0
+ add r2, r3, #0x0
+ ldr r3, [sp, #0x8]
+ bl FUN_02046594
+ add r2, r0, #0x0
+ ldr r1, _02046718 ; =FUN_020465F8
+ add r0, r4, #0x0
+ bl FUN_0204640C
+ pop {r4, pc}
+ .balign 4
+_02046718: .word FUN_020465F8
+
+ thumb_func_start FUN_0204671C
+FUN_0204671C: ; 0x0204671C
+ push {r3, lr}
+ mov r2, #0xf
+ and r0, r2
+ cmp r0, #0x6
+ bhi _02046754
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02046732: ; jump table (using 16-bit offset)
+ .short _02046754 - _02046732 - 2; case 0
+ .short _02046740 - _02046732 - 2; case 1
+ .short _0204674A - _02046732 - 2; case 2
+ .short _02046754 - _02046732 - 2; case 3
+ .short _02046754 - _02046732 - 2; case 4
+ .short _0204674A - _02046732 - 2; case 5
+ .short _02046740 - _02046732 - 2; case 6
+_02046740:
+ ldr r0, [r1, #0xc]
+ mov r1, #0x1
+ bl FUN_0202E25C
+ pop {r3, pc}
+_0204674A:
+ ldr r0, [r1, #0xc]
+ sub r2, #0x10
+ add r1, r2, #0x0
+ bl FUN_0202E25C
+_02046754:
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_02046758
+FUN_02046758: ; 0x02046758
+ push {r3-r7, lr}
+ add r6, r0, #0x0
+ bl FUN_02046528
+ add r7, r0, #0x0
+ add r0, r6, #0x0
+ bl FUN_0204652C
+ add r5, r0, #0x0
+ add r0, r6, #0x0
+ bl FUN_02046530
+ add r4, r0, #0x0
+ ldr r0, [r4, #0x0]
+ cmp r0, #0x5
+ bhi _020467F6
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02046784: ; jump table (using 16-bit offset)
+ .short _02046790 - _02046784 - 2; case 0
+ .short _020467A2 - _02046784 - 2; case 1
+ .short _020467B0 - _02046784 - 2; case 2
+ .short _020467C0 - _02046784 - 2; case 3
+ .short _020467EC - _02046784 - 2; case 4
+ .short _020467EC - _02046784 - 2; case 5
+_02046790:
+ ldr r1, [r5, #0x4]
+ ldr r2, [r5, #0x8]
+ add r0, r6, #0x0
+ bl FUN_0204AEF8
+ ldr r0, [r4, #0x0]
+ add r0, r0, #0x1
+ str r0, [r4, #0x0]
+ b _020467F6
+_020467A2:
+ add r0, r6, #0x0
+ bl FUN_0204AF3C
+ ldr r0, [r4, #0x0]
+ add r0, r0, #0x1
+ str r0, [r4, #0x0]
+ b _020467F6
+_020467B0:
+ ldr r1, [r5, #0x10]
+ add r0, r6, #0x0
+ bl FUN_02046584
+ ldr r0, [r4, #0x0]
+ add r0, r0, #0x1
+ str r0, [r4, #0x0]
+ b _020467F6
+_020467C0:
+ ldr r0, [r5, #0x10]
+ add r1, r7, #0x0
+ ldr r0, [r0, #0x14]
+ bl FUN_0204671C
+ ldr r0, [r5, #0x10]
+ add r1, r7, #0x0
+ bl FUN_02047FA4
+ ldr r0, [r7, #0xc]
+ bl FUN_02029FC8
+ mov r1, #0x15
+ bl FUN_0202A170
+ add r0, r6, #0x0
+ bl FUN_0204AF84
+ ldr r0, [r4, #0x0]
+ add r0, r0, #0x1
+ str r0, [r4, #0x0]
+ b _020467F6
+_020467EC:
+ add r0, r5, #0x0
+ bl FUN_020465B8
+ mov r0, #0x1
+ pop {r3-r7, pc}
+_020467F6:
+ mov r0, #0x0
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_020467FC
+FUN_020467FC: ; 0x020467FC
+ push {r3-r7, lr}
+ add r7, r0, #0x0
+ bl FUN_02046528
+ add r6, r0, #0x0
+ add r0, r7, #0x0
+ bl FUN_0204652C
+ add r5, r0, #0x0
+ add r0, r7, #0x0
+ bl FUN_02046530
+ add r4, r0, #0x0
+ ldr r0, [r4, #0x0]
+ cmp r0, #0x0
+ beq _02046826
+ cmp r0, #0x1
+ beq _02046844
+ cmp r0, #0x2
+ beq _0204686A
+ b _02046874
+_02046826:
+ ldr r1, [r5, #0x8]
+ mov r0, #0x5
+ lsl r1, r1, #0x10
+ lsr r1, r1, #0x10
+ mov r2, #0x1
+ bl FUN_0200433C
+ ldr r1, [r5, #0x10]
+ add r0, r7, #0x0
+ bl FUN_02046584
+ ldr r0, [r4, #0x0]
+ add r0, r0, #0x1
+ str r0, [r4, #0x0]
+ b _02046874
+_02046844:
+ ldr r0, [r5, #0x10]
+ add r1, r6, #0x0
+ ldr r0, [r0, #0x14]
+ bl FUN_0204671C
+ ldr r0, [r5, #0x10]
+ add r1, r6, #0x0
+ bl FUN_02047FA4
+ ldr r0, [r6, #0xc]
+ bl FUN_02029FC8
+ mov r1, #0x15
+ bl FUN_0202A170
+ ldr r0, [r4, #0x0]
+ add r0, r0, #0x1
+ str r0, [r4, #0x0]
+ b _02046874
+_0204686A:
+ add r0, r5, #0x0
+ bl FUN_020465B8
+ mov r0, #0x1
+ pop {r3-r7, pc}
+_02046874:
+ mov r0, #0x0
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_02046878
+FUN_02046878: ; 0x02046878
+ push {r3-r7, lr}
+ add r6, r0, #0x0
+ bl FUN_02046528
+ add r7, r0, #0x0
+ add r0, r6, #0x0
+ bl FUN_0204652C
+ add r5, r0, #0x0
+ add r0, r6, #0x0
+ bl FUN_02046530
+ add r4, r0, #0x0
+ ldr r0, [r4, #0x0]
+ cmp r0, #0x5
+ bhi _02046922
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_020468A4: ; jump table (using 16-bit offset)
+ .short _020468B0 - _020468A4 - 2; case 0
+ .short _020468C2 - _020468A4 - 2; case 1
+ .short _020468D0 - _020468A4 - 2; case 2
+ .short _020468E0 - _020468A4 - 2; case 3
+ .short _0204690A - _020468A4 - 2; case 4
+ .short _02046918 - _020468A4 - 2; case 5
+_020468B0:
+ ldr r1, [r5, #0x4]
+ ldr r2, [r5, #0x8]
+ add r0, r6, #0x0
+ bl FUN_0204AEF8
+ ldr r0, [r4, #0x0]
+ add r0, r0, #0x1
+ str r0, [r4, #0x0]
+ b _02046922
+_020468C2:
+ add r0, r6, #0x0
+ bl FUN_0204AF3C
+ ldr r0, [r4, #0x0]
+ add r0, r0, #0x1
+ str r0, [r4, #0x0]
+ b _02046922
+_020468D0:
+ ldr r1, [r5, #0x10]
+ add r0, r6, #0x0
+ bl FUN_02046584
+ ldr r0, [r4, #0x0]
+ add r0, r0, #0x1
+ str r0, [r4, #0x0]
+ b _02046922
+_020468E0:
+ ldr r0, [r5, #0x10]
+ add r1, r7, #0x0
+ bl FUN_02047FA4
+ mov r1, #0x4e
+ ldr r2, [r5, #0x10]
+ lsl r1, r1, #0x2
+ add r0, r7, #0x0
+ add r1, r2, r1
+ bl FUN_02060044
+ add r0, r5, #0x0
+ bl FUN_020465CC
+ add r0, r6, #0x0
+ bl FUN_0204AF84
+ ldr r0, [r4, #0x0]
+ add r0, r0, #0x1
+ str r0, [r4, #0x0]
+ b _02046922
+_0204690A:
+ add r0, r6, #0x0
+ bl FUN_0204B00C
+ ldr r0, [r4, #0x0]
+ add r0, r0, #0x1
+ str r0, [r4, #0x0]
+ b _02046922
+_02046918:
+ add r0, r5, #0x0
+ bl FUN_020465B8
+ mov r0, #0x1
+ pop {r3-r7, pc}
+_02046922:
+ mov r0, #0x0
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_02046928
+FUN_02046928: ; 0x02046928
+ push {r4, lr}
+ add r4, r0, #0x0
+ add r0, r1, #0x0
+ add r1, r2, #0x0
+ add r2, r3, #0x0
+ ldr r3, [sp, #0x8]
+ bl FUN_02046594
+ add r2, r0, #0x0
+ ldr r1, _02046944 ; =FUN_02046878
+ add r0, r4, #0x0
+ bl FUN_0204640C
+ pop {r4, pc}
+ .balign 4
+_02046944: .word FUN_02046878
+
+ thumb_func_start FUN_02046948
+FUN_02046948: ; 0x02046948
+ push {r3-r7, lr}
+ add r4, r1, #0x0
+ add r7, r0, #0x0
+ add r5, r2, #0x0
+ bl FUN_02046528
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_02244558
+ add r4, r0, #0x0
+ bl FUN_020475A0
+ add r6, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_020475B0
+ add r3, r0, #0x0
+ add r0, r7, #0x0
+ add r1, r4, #0x0
+ add r2, r6, #0x0
+ str r5, [sp, #0x0]
+ bl FUN_02046928
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_0204697C
+FUN_0204697C: ; 0x0204697C
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ add r6, r1, #0x0
+ mov r0, #0xb
+ mov r1, #0x14
+ add r7, r2, #0x0
+ add r4, r3, #0x0
+ bl FUN_020169D8
+ str r4, [r0, #0xc]
+ cmp r4, #0x0
+ beq _02046998
+ mov r1, #0x0
+ str r1, [r4, #0x0]
+_02046998:
+ str r6, [r0, #0x4]
+ str r7, [r0, #0x8]
+ str r5, [r0, #0x10]
+ mov r1, #0x0
+ str r1, [r0, #0x0]
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_020469A4
+FUN_020469A4: ; 0x020469A4
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r0, [r4, #0x10]
+ bl FUN_02047964
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_020469B8
+FUN_020469B8: ; 0x020469B8
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ ldr r0, [r5, #0xc]
+ add r4, r1, #0x0
+ bl FUN_020462AC
+ bl FUN_0205F214
+ cmp r0, #0x0
+ beq _020469F2
+ add r0, r4, #0x0
+ bl FUN_020475A0
+ add r6, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_020475B0
+ add r2, r0, #0x0
+ add r0, r4, #0x0
+ add r1, r6, #0x0
+ mov r3, #0x0
+ bl FUN_02046594
+ add r2, r0, #0x0
+ ldr r1, _02046A18 ; =FUN_02046C1C
+ add r0, r5, #0x0
+ bl FUN_020463CC
+ pop {r4-r6, pc}
+_020469F2:
+ add r0, r4, #0x0
+ bl FUN_020475A0
+ add r6, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_020475B0
+ add r2, r0, #0x0
+ add r0, r4, #0x0
+ add r1, r6, #0x0
+ mov r3, #0x0
+ bl FUN_0204697C
+ add r2, r0, #0x0
+ ldr r1, _02046A1C ; =FUN_02046A88
+ add r0, r5, #0x0
+ bl FUN_020463CC
+ pop {r4-r6, pc}
+ .balign 4
+_02046A18: .word FUN_02046C1C
+_02046A1C: .word FUN_02046A88
+
+ thumb_func_start FUN_02046A20
+FUN_02046A20: ; 0x02046A20
+ push {r4-r6, lr}
+ ldr r0, [r0, #0xc]
+ add r5, r1, #0x0
+ add r4, r2, #0x0
+ bl FUN_020462AC
+ bl FUN_0205F214
+ cmp r0, #0x0
+ beq _02046A5A
+ add r0, r4, #0x0
+ bl FUN_020475A0
+ add r6, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_020475B0
+ add r2, r0, #0x0
+ add r0, r4, #0x0
+ add r1, r6, #0x0
+ mov r3, #0x0
+ bl FUN_02046594
+ add r2, r0, #0x0
+ ldr r1, _02046A80 ; =FUN_02046C1C
+ add r0, r5, #0x0
+ bl FUN_020463EC
+ pop {r4-r6, pc}
+_02046A5A:
+ add r0, r4, #0x0
+ bl FUN_020475A0
+ add r6, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_020475B0
+ add r2, r0, #0x0
+ add r0, r4, #0x0
+ add r1, r6, #0x0
+ mov r3, #0x0
+ bl FUN_0204697C
+ add r2, r0, #0x0
+ ldr r1, _02046A84 ; =FUN_02046A88
+ add r0, r5, #0x0
+ bl FUN_020463EC
+ pop {r4-r6, pc}
+ .balign 4
+_02046A80: .word FUN_02046C1C
+_02046A84: .word FUN_02046A88
+
+ thumb_func_start FUN_02046A88
+FUN_02046A88: ; 0x02046A88
+ push {r4-r6, lr}
+ add r6, r0, #0x0
+ bl FUN_02046528
+ add r5, r0, #0x0
+ add r0, r6, #0x0
+ bl FUN_0204652C
+ add r4, r0, #0x0
+ ldr r0, [r4, #0x0]
+ cmp r0, #0x6
+ bls _02046AA2
+ b _02046C12
+_02046AA2:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02046AAE: ; jump table (using 16-bit offset)
+ .short _02046ABC - _02046AAE - 2; case 0
+ .short _02046AE0 - _02046AAE - 2; case 1
+ .short _02046AEE - _02046AAE - 2; case 2
+ .short _02046AFE - _02046AAE - 2; case 3
+ .short _02046BAE - _02046AAE - 2; case 4
+ .short _02046BC4 - _02046AAE - 2; case 5
+ .short _02046BF4 - _02046AAE - 2; case 6
+_02046ABC:
+ ldr r0, [r5, #0x34]
+ bl FUN_02058780
+ ldr r0, [r5, #0xc]
+ bl FUN_02029FC8
+ mov r1, #0x7
+ bl FUN_0202A0E8
+ ldr r1, [r4, #0x4]
+ ldr r2, [r4, #0x8]
+ add r0, r6, #0x0
+ bl FUN_0204AEF8
+ ldr r0, [r4, #0x0]
+ add r0, r0, #0x1
+ str r0, [r4, #0x0]
+ b _02046C12
+_02046AE0:
+ add r0, r6, #0x0
+ bl FUN_0204AF3C
+ ldr r0, [r4, #0x0]
+ add r0, r0, #0x1
+ str r0, [r4, #0x0]
+ b _02046C12
+_02046AEE:
+ ldr r1, [r4, #0x10]
+ add r0, r6, #0x0
+ bl FUN_02046584
+ ldr r0, [r4, #0x0]
+ add r0, r0, #0x1
+ str r0, [r4, #0x0]
+ b _02046C12
+_02046AFE:
+ ldr r0, [r4, #0x10]
+ add r1, r5, #0x0
+ bl FUN_020465E4
+ mov r1, #0x4d
+ ldr r2, [r4, #0x10]
+ lsl r1, r1, #0x2
+ ldr r1, [r2, r1]
+ ldr r2, [r2, #0x14]
+ add r0, r5, #0x0
+ bl FUN_02061080
+ ldr r0, [r4, #0x10]
+ ldr r0, [r0, #0x14]
+ bl FUN_020480B8
+ cmp r0, #0x0
+ bne _02046B3E
+ add r0, r4, #0x0
+ bl FUN_020469A4
+ add r5, #0x90
+ ldr r0, [r5, #0x0]
+ bl FUN_0205DD40
+ ldr r1, _02046C18 ; =FUN_0204837C
+ add r0, r6, #0x0
+ mov r2, #0x0
+ bl FUN_020463EC
+ mov r0, #0x0
+ pop {r4-r6, pc}
+_02046B3E:
+ ldr r0, [r5, #0xc]
+ bl FUN_020462AC
+ bl FUN_0205ED3C
+ cmp r0, #0x0
+ beq _02046B56
+ ldr r0, [r5, #0xc]
+ bl FUN_0206BB1C
+ bl FUN_02085140
+_02046B56:
+ ldr r1, [r4, #0x10]
+ add r0, r5, #0x0
+ bl FUN_020472F4
+ ldr r1, [r4, #0x10]
+ add r0, r5, #0x0
+ bl FUN_020473CC
+ add r0, r5, #0x0
+ add r0, #0x90
+ ldr r0, [r0, #0x0]
+ bl FUN_0205E128
+ cmp r0, #0x0
+ beq _02046BA0
+ add r0, r5, #0x0
+ add r0, #0x90
+ ldr r0, [r0, #0x0]
+ bl FUN_0205E0A4
+ cmp r0, #0x0
+ beq _02046B98
+ ldr r0, [r4, #0x10]
+ ldr r0, [r0, #0x14]
+ cmp r0, #0x1
+ beq _02046BA0
+ cmp r0, #0x4
+ beq _02046BA0
+ add r5, #0x90
+ ldr r0, [r5, #0x0]
+ bl FUN_0205DD40
+ b _02046BA0
+_02046B98:
+ add r5, #0x90
+ ldr r0, [r5, #0x0]
+ bl FUN_0205DD40
+_02046BA0:
+ add r0, r6, #0x0
+ bl FUN_0204AF84
+ ldr r0, [r4, #0x0]
+ add r0, r0, #0x1
+ str r0, [r4, #0x0]
+ b _02046C12
+_02046BAE:
+ ldr r1, [r4, #0x10]
+ add r0, r5, #0x0
+ bl FUN_02248724
+ add r0, r6, #0x0
+ bl FUN_0204B00C
+ ldr r0, [r4, #0x0]
+ add r0, r0, #0x1
+ str r0, [r4, #0x0]
+ b _02046C12
+_02046BC4:
+ add r0, r5, #0x0
+ add r0, #0x90
+ ldr r0, [r0, #0x0]
+ bl FUN_0205E128
+ cmp r0, #0x0
+ beq _02046BEC
+ ldr r1, [r4, #0x10]
+ add r2, r5, #0x0
+ add r2, #0x90
+ ldr r1, [r1, #0x14]
+ ldr r2, [r2, #0x0]
+ add r0, r5, #0x0
+ bl FUN_0205DED4
+ add r0, r5, #0x0
+ add r5, #0x90
+ ldr r1, [r5, #0x0]
+ bl FUN_0205DF44
+_02046BEC:
+ ldr r0, [r4, #0x0]
+ add r0, r0, #0x1
+ str r0, [r4, #0x0]
+ b _02046C12
+_02046BF4:
+ add r0, r5, #0x0
+ add r0, #0x90
+ ldr r0, [r0, #0x0]
+ bl FUN_0205DF9C
+ cmp r0, #0x0
+ beq _02046C12
+ ldr r0, [r5, #0x34]
+ bl FUN_020587B0
+ add r0, r4, #0x0
+ bl FUN_020469A4
+ mov r0, #0x1
+ pop {r4-r6, pc}
+_02046C12:
+ mov r0, #0x0
+ pop {r4-r6, pc}
+ nop
+_02046C18: .word FUN_0204837C
+
+ thumb_func_start FUN_02046C1C
+FUN_02046C1C: ; 0x02046C1C
+ push {r4-r7, lr}
+ sub sp, #0xc
+ add r7, r0, #0x0
+ bl FUN_02046528
+ add r6, r0, #0x0
+ add r0, r7, #0x0
+ bl FUN_0204652C
+ add r5, r0, #0x0
+ add r0, r7, #0x0
+ bl FUN_02046530
+ add r4, r0, #0x0
+ ldr r0, [r6, #0xc]
+ bl FUN_02034E30
+ bl FUN_02034E24
+ str r0, [sp, #0x0]
+ ldr r0, [r4, #0x0]
+ cmp r0, #0x7
+ bls _02046C4C
+ b _02046DA0
+_02046C4C:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02046C58: ; jump table (using 16-bit offset)
+ .short _02046C68 - _02046C58 - 2; case 0
+ .short _02046C8C - _02046C58 - 2; case 1
+ .short _02046C9A - _02046C58 - 2; case 2
+ .short _02046CAA - _02046C58 - 2; case 3
+ .short _02046D0E - _02046C58 - 2; case 4
+ .short _02046D1C - _02046C58 - 2; case 5
+ .short _02046D30 - _02046C58 - 2; case 6
+ .short _02046D94 - _02046C58 - 2; case 7
+_02046C68:
+ ldr r0, [r6, #0x34]
+ bl FUN_02058780
+ ldr r0, [r6, #0xc]
+ bl FUN_02029FC8
+ mov r1, #0x7
+ bl FUN_0202A0E8
+ ldr r1, [r5, #0x4]
+ ldr r2, [r5, #0x8]
+ add r0, r7, #0x0
+ bl FUN_0204AEF8
+ ldr r0, [r4, #0x0]
+ add r0, r0, #0x1
+ str r0, [r4, #0x0]
+ b _02046DA0
+_02046C8C:
+ add r0, r7, #0x0
+ bl FUN_0204AF3C
+ ldr r0, [r4, #0x0]
+ add r0, r0, #0x1
+ str r0, [r4, #0x0]
+ b _02046DA0
+_02046C9A:
+ ldr r1, [r5, #0x10]
+ add r0, r7, #0x0
+ bl FUN_02046584
+ ldr r0, [r4, #0x0]
+ add r0, r0, #0x1
+ str r0, [r4, #0x0]
+ b _02046DA0
+_02046CAA:
+ ldr r0, [r5, #0x10]
+ add r1, r6, #0x0
+ bl FUN_020465E4
+ ldr r0, [r5, #0x10]
+ ldr r0, [r0, #0x14]
+ cmp r0, #0x4
+ bne _02046CD4
+ ldr r0, [r6, #0xc]
+ bl FUN_02022504
+ str r0, [sp, #0x4]
+ ldr r0, [r5, #0x10]
+ mov r1, #0x0
+ ldr r0, [r0, #0x8]
+ bl FUN_0206B9B0
+ add r1, r0, #0x0
+ ldr r0, [sp, #0x4]
+ bl FUN_02060FE0
+_02046CD4:
+ ldr r1, [r5, #0x10]
+ add r0, r6, #0x0
+ bl FUN_020472F4
+ ldr r0, [sp, #0x0]
+ ldrh r0, [r0, #0x0]
+ cmp r0, #0x0
+ bne _02046CFE
+ ldr r0, [r5, #0x10]
+ ldr r0, [r0, #0x14]
+ cmp r0, #0x4
+ beq _02046CFE
+ ldr r0, [r6, #0xc]
+ bl FUN_02034E30
+ bl FUN_02034DD0
+ add r1, r0, #0x0
+ add r0, r7, #0x0
+ bl FUN_02049160
+_02046CFE:
+ ldr r1, [r5, #0x10]
+ add r0, r6, #0x0
+ bl FUN_020473CC
+ ldr r0, [r4, #0x0]
+ add r0, r0, #0x1
+ str r0, [r4, #0x0]
+ b _02046DA0
+_02046D0E:
+ add r0, r7, #0x0
+ bl FUN_0204AF84
+ ldr r0, [r4, #0x0]
+ add r0, r0, #0x1
+ str r0, [r4, #0x0]
+ b _02046DA0
+_02046D1C:
+ ldr r0, [r6, #0x34]
+ bl FUN_020587B0
+ add r0, r7, #0x0
+ bl FUN_0204B00C
+ ldr r0, [r4, #0x0]
+ add r0, r0, #0x1
+ str r0, [r4, #0x0]
+ b _02046DA0
+_02046D30:
+ ldr r0, [sp, #0x0]
+ ldrh r0, [r0, #0x0]
+ cmp r0, #0x0
+ bne _02046D5C
+ ldr r0, [r5, #0x10]
+ ldr r0, [r0, #0x14]
+ cmp r0, #0x4
+ bne _02046D4E
+ mov r2, #0x0
+ ldr r1, _02046DA8 ; =0x00002262
+ add r0, r7, #0x0
+ add r3, r2, #0x0
+ bl FUN_02038CD8
+ b _02046D8C
+_02046D4E:
+ mov r2, #0x0
+ ldr r1, _02046DAC ; =0x00002269
+ add r0, r7, #0x0
+ add r3, r2, #0x0
+ bl FUN_02038CD8
+ b _02046D8C
+_02046D5C:
+ ldr r0, [r6, #0xc]
+ bl FUN_02022510
+ str r0, [sp, #0x8]
+ ldr r0, [r6, #0xc]
+ bl FUN_0206BB1C
+ add r5, r0, #0x0
+ ldr r0, [sp, #0x8]
+ bl FUN_0206B334
+ cmp r0, #0x12
+ bne _02046D8C
+ add r0, r5, #0x0
+ bl FUN_0206B9AC
+ cmp r0, #0x6
+ bne _02046D8C
+ mov r2, #0x0
+ ldr r1, _02046DB0 ; =0x00002276
+ add r0, r7, #0x0
+ add r3, r2, #0x0
+ bl FUN_02038CD8
+_02046D8C:
+ ldr r0, [r4, #0x0]
+ add r0, r0, #0x1
+ str r0, [r4, #0x0]
+ b _02046DA0
+_02046D94:
+ add r0, r5, #0x0
+ bl FUN_020465B8
+ add sp, #0xc
+ mov r0, #0x1
+ pop {r4-r7, pc}
+_02046DA0:
+ mov r0, #0x0
+ add sp, #0xc
+ pop {r4-r7, pc}
+ nop
+_02046DA8: .word 0x00002262
+_02046DAC: .word 0x00002269
+_02046DB0: .word 0x00002276
+
+ thumb_func_start FUN_02046DB4
+FUN_02046DB4: ; 0x02046DB4
+ push {r3-r7, lr}
+ add r7, r0, #0x0
+ add r6, r1, #0x0
+ bl FUN_02046528
+ add r5, r0, #0x0
+ add r0, #0x90
+ ldr r0, [r0, #0x0]
+ bl FUN_0205DD40
+ mov r0, #0xb
+ mov r1, #0x0
+ bl FUN_020476CC
+ add r1, r5, #0x0
+ add r4, r0, #0x0
+ bl FUN_02047BB0
+ mov r0, #0x15
+ mov r1, #0x0
+ lsl r0, r0, #0x4
+ str r1, [r4, r0]
+ add r0, r0, #0x4
+ str r1, [r4, r0]
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_0223CCDC
+ ldr r0, [r5, #0xc]
+ bl FUN_02029FC8
+ mov r1, #0x7
+ bl FUN_0202A0E8
+ add r0, r4, #0x0
+ bl FUN_020475A0
+ add r5, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_020475B0
+ add r3, r0, #0x0
+ add r0, r7, #0x0
+ add r1, r4, #0x0
+ add r2, r5, #0x0
+ str r6, [sp, #0x0]
+ bl FUN_020466FC
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_02046E18
+FUN_02046E18: ; 0x02046E18
+ push {r4-r7, lr}
+ sub sp, #0xc
+ str r0, [sp, #0x4]
+ add r7, r1, #0x0
+ str r2, [sp, #0x8]
+ add r6, r3, #0x0
+ bl FUN_02046528
+ add r5, r0, #0x0
+ add r0, #0x90
+ ldr r0, [r0, #0x0]
+ bl FUN_0205DD40
+ mov r0, #0xb
+ mov r1, #0x0
+ bl FUN_020476CC
+ add r1, r5, #0x0
+ add r4, r0, #0x0
+ bl FUN_02047BB0
+ ldr r2, [sp, #0x8]
+ add r0, r5, #0x0
+ add r1, r7, #0x0
+ add r3, r4, #0x0
+ bl FUN_0223CD7C
+ ldr r0, [sp, #0x20]
+ cmp r0, #0x0
+ beq _02046E60
+ mov r1, #0x63
+ lsl r1, r1, #0x2
+ ldr r2, [r4, r1]
+ mov r0, #0x8
+ orr r0, r2
+ str r0, [r4, r1]
+_02046E60:
+ ldr r0, [r5, #0xc]
+ bl FUN_02029FC8
+ mov r1, #0x7
+ bl FUN_0202A0E8
+ add r0, r4, #0x0
+ bl FUN_020475A0
+ add r5, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_020475B0
+ add r3, r0, #0x0
+ ldr r0, [sp, #0x4]
+ add r1, r4, #0x0
+ add r2, r5, #0x0
+ str r6, [sp, #0x0]
+ bl FUN_020466FC
+ add sp, #0xc
+ pop {r4-r7, pc}
+
+ thumb_func_start FUN_02046E8C
+FUN_02046E8C: ; 0x02046E8C
+ push {r3-r7, lr}
+ add r7, r0, #0x0
+ bl FUN_02046528
+ add r6, r0, #0x0
+ add r0, r7, #0x0
+ bl FUN_0204652C
+ add r5, r0, #0x0
+ add r0, r7, #0x0
+ bl FUN_02046530
+ add r4, r0, #0x0
+ ldr r0, [r4, #0x0]
+ cmp r0, #0x6
+ bhi _02046F6C
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02046EB8: ; jump table (using 16-bit offset)
+ .short _02046EC6 - _02046EB8 - 2; case 0
+ .short _02046EEA - _02046EB8 - 2; case 1
+ .short _02046EF8 - _02046EB8 - 2; case 2
+ .short _02046F08 - _02046EB8 - 2; case 3
+ .short _02046F28 - _02046EB8 - 2; case 4
+ .short _02046F36 - _02046EB8 - 2; case 5
+ .short _02046F4A - _02046EB8 - 2; case 6
+_02046EC6:
+ ldr r0, [r6, #0x34]
+ bl FUN_02058780
+ ldr r0, [r6, #0xc]
+ bl FUN_02029FC8
+ mov r1, #0x7
+ bl FUN_0202A0E8
+ ldr r1, [r5, #0x4]
+ ldr r2, [r5, #0x8]
+ add r0, r7, #0x0
+ bl FUN_0204AEF8
+ ldr r0, [r4, #0x0]
+ add r0, r0, #0x1
+ str r0, [r4, #0x0]
+ b _02046F6C
+_02046EEA:
+ add r0, r7, #0x0
+ bl FUN_0204AF3C
+ ldr r0, [r4, #0x0]
+ add r0, r0, #0x1
+ str r0, [r4, #0x0]
+ b _02046F6C
+_02046EF8:
+ ldr r1, [r5, #0x10]
+ add r0, r7, #0x0
+ bl FUN_02046584
+ ldr r0, [r4, #0x0]
+ add r0, r0, #0x1
+ str r0, [r4, #0x0]
+ b _02046F6C
+_02046F08:
+ ldr r0, [r5, #0x10]
+ add r1, r6, #0x0
+ bl FUN_020465E4
+ ldr r1, [r5, #0x10]
+ add r0, r6, #0x0
+ bl FUN_0204BAA0
+ ldr r1, [r5, #0x10]
+ add r0, r6, #0x0
+ bl FUN_020472F4
+ ldr r0, [r4, #0x0]
+ add r0, r0, #0x1
+ str r0, [r4, #0x0]
+ b _02046F6C
+_02046F28:
+ add r0, r7, #0x0
+ bl FUN_0204AF84
+ ldr r0, [r4, #0x0]
+ add r0, r0, #0x1
+ str r0, [r4, #0x0]
+ b _02046F6C
+_02046F36:
+ ldr r0, [r6, #0x34]
+ bl FUN_020587B0
+ add r0, r7, #0x0
+ bl FUN_0204B00C
+ ldr r0, [r4, #0x0]
+ add r0, r0, #0x1
+ str r0, [r4, #0x0]
+ b _02046F6C
+_02046F4A:
+ add r0, r5, #0x0
+ bl FUN_020465B8
+ add r0, r6, #0x0
+ bl FUN_0204BAB0
+ cmp r0, #0x0
+ bne _02046F68
+ add r0, r7, #0x0
+ mov r1, #0x3
+ mov r2, #0x0
+ bl FUN_02038D10
+ mov r0, #0x0
+ pop {r3-r7, pc}
+_02046F68:
+ mov r0, #0x1
+ pop {r3-r7, pc}
+_02046F6C:
+ mov r0, #0x0
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_02046F70
+FUN_02046F70: ; 0x02046F70
+ push {r4-r6, lr}
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_020475A0
+ add r6, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_020475B0
+ add r2, r0, #0x0
+ add r0, r4, #0x0
+ add r1, r6, #0x0
+ mov r3, #0x0
+ bl FUN_02046594
+ add r2, r0, #0x0
+ ldr r1, _02046F9C ; =FUN_02046E8C
+ add r0, r5, #0x0
+ bl FUN_020463CC
+ pop {r4-r6, pc}
+ .balign 4
+_02046F9C: .word FUN_02046E8C
+
+ thumb_func_start FUN_02046FA0
+FUN_02046FA0: ; 0x02046FA0
+ push {r3-r7, lr}
+ sub sp, #0x8
+ str r0, [sp, #0x4]
+ add r6, r1, #0x0
+ add r7, r2, #0x0
+ bl FUN_02046528
+ add r5, r0, #0x0
+ mov r0, #0xb
+ mov r1, #0x0
+ bl FUN_020476CC
+ add r4, r0, #0x0
+ add r1, r5, #0x0
+ bl FUN_02047BB0
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ add r2, r7, #0x0
+ add r3, r4, #0x0
+ bl FUN_0223CD7C
+ mov r0, #0x63
+ mov r1, #0x1
+ lsl r0, r0, #0x2
+ str r1, [r4, r0]
+ ldr r0, [r5, #0xc]
+ bl FUN_02029FC8
+ mov r1, #0x7
+ bl FUN_0202A0E8
+ add r0, r4, #0x0
+ bl FUN_020475A0
+ add r5, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_020475B0
+ add r3, r0, #0x0
+ mov r0, #0x0
+ str r0, [sp, #0x0]
+ ldr r0, [sp, #0x4]
+ add r1, r4, #0x0
+ add r2, r5, #0x0
+ bl FUN_020466FC
+ add sp, #0x8
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_02047004
+FUN_02047004: ; 0x02047004
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ bl FUN_0204652C
+ add r6, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_02046528
+ add r7, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_02046530
+ add r4, r0, #0x0
+ ldr r0, [r4, #0x0]
+ cmp r0, #0x6
+ bhi _020470A6
+ add r1, r0, r0
+ add r1, pc
+ ldrh r1, [r1, #0x6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_02047030: ; jump table (using 16-bit offset)
+ .short _0204703E - _02047030 - 2; case 0
+ .short _02047056 - _02047030 - 2; case 1
+ .short _02047064 - _02047030 - 2; case 2
+ .short _02047074 - _02047030 - 2; case 3
+ .short _0204707A - _02047030 - 2; case 4
+ .short _02047088 - _02047030 - 2; case 5
+ .short _0204709C - _02047030 - 2; case 6
+_0204703E:
+ ldr r0, [r7, #0x34]
+ bl FUN_02058780
+ ldr r1, [r6, #0x4]
+ ldr r2, [r6, #0x8]
+ add r0, r5, #0x0
+ bl FUN_0204AEF8
+ ldr r0, [r4, #0x0]
+ add r0, r0, #0x1
+ str r0, [r4, #0x0]
+ b _020470A6
+_02047056:
+ add r0, r5, #0x0
+ bl FUN_0204AF3C
+ ldr r0, [r4, #0x0]
+ add r0, r0, #0x1
+ str r0, [r4, #0x0]
+ b _020470A6
+_02047064:
+ ldr r1, [r6, #0x10]
+ add r0, r5, #0x0
+ bl FUN_02046584
+ ldr r0, [r4, #0x0]
+ add r0, r0, #0x1
+ str r0, [r4, #0x0]
+ b _020470A6
+_02047074:
+ add r0, r0, #0x1
+ str r0, [r4, #0x0]
+ b _020470A6
+_0204707A:
+ add r0, r5, #0x0
+ bl FUN_0204AF84
+ ldr r0, [r4, #0x0]
+ add r0, r0, #0x1
+ str r0, [r4, #0x0]
+ b _020470A6
+_02047088:
+ ldr r0, [r7, #0x34]
+ bl FUN_020587B0
+ add r0, r5, #0x0
+ bl FUN_0204B00C
+ ldr r0, [r4, #0x0]
+ add r0, r0, #0x1
+ str r0, [r4, #0x0]
+ b _020470A6
+_0204709C:
+ add r0, r6, #0x0
+ bl FUN_020465B8
+ mov r0, #0x1
+ pop {r3-r7, pc}
+_020470A6:
+ mov r0, #0x0
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_020470AC
+FUN_020470AC: ; 0x020470AC
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ bl FUN_02046528
+ add r1, r0, #0x0
+ mov r0, #0xb
+ bl FUN_02047814
+ add r4, r0, #0x0
+ bl FUN_020475A0
+ add r6, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_020475B0
+ add r2, r0, #0x0
+ add r0, r4, #0x0
+ add r1, r6, #0x0
+ mov r3, #0x0
+ bl FUN_02046594
+ add r2, r0, #0x0
+ ldr r1, _020470E4 ; =FUN_02047004
+ add r0, r5, #0x0
+ bl FUN_0204640C
+ pop {r4-r6, pc}
+ nop
+_020470E4: .word FUN_02047004
+
+ thumb_func_start FUN_020470E8
+FUN_020470E8: ; 0x020470E8
+ push {r4-r7, lr}
+ sub sp, #0xc
+ str r0, [sp, #0x4]
+ add r6, r1, #0x0
+ add r5, r2, #0x0
+ str r3, [sp, #0x8]
+ bl FUN_02046528
+ add r7, r0, #0x0
+ cmp r5, #0x0
+ beq _02047110
+ cmp r6, r5
+ beq _02047110
+ ldr r0, [sp, #0x8]
+ cmp r0, #0x0
+ bne _0204710C
+ mov r4, #0x13
+ b _0204711A
+_0204710C:
+ mov r4, #0x4b
+ b _0204711A
+_02047110:
+ cmp r6, r5
+ bne _02047118
+ mov r4, #0x3
+ b _0204711A
+_02047118:
+ mov r4, #0x1
+_0204711A:
+ add r0, r7, #0x0
+ add r0, #0x90
+ ldr r0, [r0, #0x0]
+ bl FUN_0205DD40
+ mov r0, #0xb
+ add r1, r4, #0x0
+ bl FUN_020476CC
+ add r4, r0, #0x0
+ add r1, r7, #0x0
+ bl FUN_02047BB0
+ str r6, [r4, #0x1c]
+ ldr r0, [sp, #0x8]
+ str r5, [r4, #0x24]
+ str r0, [r4, #0x20]
+ ldr r1, [r7, #0xc]
+ ldr r2, [sp, #0x20]
+ add r0, r4, #0x0
+ bl FUN_0206ABC4
+ ldr r0, [r7, #0xc]
+ bl FUN_02029FC8
+ mov r1, #0x8
+ bl FUN_0202A0E8
+ add r0, r4, #0x0
+ bl FUN_020475A0
+ add r5, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_020475B0
+ add r3, r0, #0x0
+ ldr r0, [sp, #0x24]
+ add r1, r4, #0x0
+ str r0, [sp, #0x0]
+ ldr r0, [sp, #0x4]
+ add r2, r5, #0x0
+ bl FUN_020466FC
+ add sp, #0xc
+ pop {r4-r7, pc}
+
+ thumb_func_start FUN_02047174
+FUN_02047174: ; 0x02047174
+ push {r3-r7, lr}
+ add r5, r2, #0x0
+ add r7, r0, #0x0
+ add r4, r1, #0x0
+ bl FUN_02046528
+ add r6, r0, #0x0
+ mov r0, #0xb
+ add r1, r5, #0x0
+ bl FUN_020476CC
+ add r5, r0, #0x0
+ add r1, r6, #0x0
+ add r2, r4, #0x0
+ bl FUN_02047F1C
+ add r0, r5, #0x0
+ bl FUN_020475A0
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_020475B0
+ add r2, r0, #0x0
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ mov r3, #0x0
+ bl FUN_02046594
+ add r2, r0, #0x0
+ ldr r1, _020471BC ; =FUN_02046758
+ add r0, r7, #0x0
+ bl FUN_0204640C
+ pop {r3-r7, pc}
+ nop
+_020471BC: .word FUN_02046758
+
+ thumb_func_start FUN_020471C0
+FUN_020471C0: ; 0x020471C0
+ push {r3-r7, lr}
+ str r0, [sp, #0x0]
+ add r5, r1, #0x0
+ add r6, r2, #0x0
+ add r4, r3, #0x0
+ bl FUN_02046528
+ add r7, r0, #0x0
+ cmp r4, #0x0
+ beq _020471DE
+ mov r0, #0xb
+ mov r1, #0x5
+ bl FUN_020476CC
+ b _020471E6
+_020471DE:
+ mov r0, #0xb
+ mov r1, #0x7
+ bl FUN_020476CC
+_020471E6:
+ add r4, r0, #0x0
+ add r0, r4, #0x0
+ add r1, r7, #0x0
+ add r2, r6, #0x0
+ bl FUN_02047BC0
+ add r0, r4, #0x0
+ bl FUN_020475A0
+ add r6, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_020475B0
+ add r2, r0, #0x0
+ add r0, r4, #0x0
+ add r1, r6, #0x0
+ mov r3, #0x0
+ bl FUN_02046594
+ add r2, r0, #0x0
+ ldr r0, [sp, #0x0]
+ ldr r1, _0204721C ; =FUN_020467FC
+ str r5, [r2, #0xc]
+ bl FUN_0204640C
+ pop {r3-r7, pc}
+ nop
+_0204721C: .word FUN_020467FC
+
+ thumb_func_start FUN_02047220
+FUN_02047220: ; 0x02047220
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ bl FUN_02046528
+ add r6, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_0204652C
+ add r7, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_02046530
+ add r4, r0, #0x0
+ ldr r0, [r4, #0x0]
+ cmp r0, #0x0
+ beq _02047246
+ cmp r0, #0x1
+ beq _02047258
+ b _02047262
+_02047246:
+ ldr r1, _02047268 ; =FUN_02046758
+ add r0, r5, #0x0
+ add r2, r7, #0x0
+ bl FUN_0204640C
+ ldr r0, [r4, #0x0]
+ add r0, r0, #0x1
+ str r0, [r4, #0x0]
+ b _02047262
+_02047258:
+ add r0, r6, #0x0
+ bl FUN_0204FF5C
+ mov r0, #0x1
+ pop {r3-r7, pc}
+_02047262:
+ mov r0, #0x0
+ pop {r3-r7, pc}
+ nop
+_02047268: .word FUN_02046758
+
+ thumb_func_start FUN_0204726C
+FUN_0204726C: ; 0x0204726C
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ add r6, r1, #0x0
+ mov r0, #0xb
+ add r1, r2, #0x0
+ bl FUN_020476CC
+ add r4, r0, #0x0
+ add r1, r5, #0x0
+ add r2, r6, #0x0
+ bl FUN_02047F1C
+ add r0, r4, #0x0
+ bl FUN_020475A0
+ add r6, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_020475B0
+ add r2, r0, #0x0
+ add r0, r4, #0x0
+ add r1, r6, #0x0
+ mov r3, #0x0
+ bl FUN_02046594
+ add r2, r0, #0x0
+ ldr r1, _020472AC ; =FUN_02047220
+ add r0, r5, #0x0
+ bl FUN_020463CC
+ pop {r4-r6, pc}
+ nop
+_020472AC: .word FUN_02047220
+
+ thumb_func_start FUN_020472B0
+FUN_020472B0: ; 0x020472B0
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ add r6, r1, #0x0
+ mov r0, #0xb
+ add r1, r2, #0x0
+ bl FUN_020476CC
+ add r4, r0, #0x0
+ add r1, r5, #0x0
+ add r2, r6, #0x0
+ mov r3, #0x0
+ bl FUN_02047D48
+ add r0, r4, #0x0
+ bl FUN_020475A0
+ add r6, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_020475B0
+ add r2, r0, #0x0
+ add r0, r4, #0x0
+ add r1, r6, #0x0
+ mov r3, #0x0
+ bl FUN_02046594
+ add r2, r0, #0x0
+ ldr r1, _020472F0 ; =FUN_02047220
+ add r0, r5, #0x0
+ bl FUN_020463CC
+ pop {r4-r6, pc}
+ .balign 4
+_020472F0: .word FUN_02047220
+
+ thumb_func_start FUN_020472F4
+FUN_020472F4: ; 0x020472F4
+ push {r3-r5, lr}
+ add r4, r0, #0x0
+ ldr r0, [r1, #0x0]
+ mov r3, #0x4
+ ldr r2, [r1, #0x14]
+ tst r3, r0
+ bne _020473C8
+ mov r3, #0x80
+ add r5, r0, #0x0
+ tst r5, r3
+ bne _020473C8
+ cmp r0, #0x0
+ beq _02047318
+ add r3, #0x80
+ cmp r0, r3
+ beq _02047318
+ cmp r0, #0x4a
+ bne _02047364
+_02047318:
+ cmp r2, #0x1
+ bne _0204732A
+ ldr r0, [r4, #0xc]
+ bl FUN_02029FC8
+ mov r1, #0x8
+ bl FUN_0202A170
+ pop {r3-r5, pc}
+_0204732A:
+ cmp r2, #0x4
+ bne _020473C8
+ ldr r0, [r1, #0x8]
+ mov r1, #0x0
+ bl FUN_0206B9B0
+ mov r1, #0x5
+ mov r2, #0x0
+ bl FUN_020671BC
+ add r1, r0, #0x0
+ mov r0, #0x0
+ bl FUN_0206BB48
+ cmp r0, #0x0
+ ldr r0, [r4, #0xc]
+ beq _02047358
+ bl FUN_02029FC8
+ mov r1, #0x9
+ bl FUN_0202A170
+ pop {r3-r5, pc}
+_02047358:
+ bl FUN_02029FC8
+ mov r1, #0xa
+ bl FUN_0202A170
+ pop {r3-r5, pc}
+_02047364:
+ mov r3, #0x1
+ tst r3, r0
+ bne _02047370
+ mov r3, #0x10
+ tst r3, r0
+ beq _02047382
+_02047370:
+ cmp r2, #0x1
+ bne _020473C8
+ ldr r0, [r4, #0xc]
+ bl FUN_02029FC8
+ mov r1, #0xb
+ bl FUN_0202A170
+ pop {r3-r5, pc}
+_02047382:
+ mov r3, #0x20
+ add r5, r0, #0x0
+ tst r5, r3
+ bne _02047390
+ lsl r3, r3, #0x4
+ tst r0, r3
+ beq _020473C8
+_02047390:
+ cmp r2, #0x4
+ bne _020473C8
+ ldr r0, [r1, #0x8]
+ mov r1, #0x0
+ bl FUN_0206B9B0
+ mov r1, #0x5
+ mov r2, #0x0
+ bl FUN_020671BC
+ add r1, r0, #0x0
+ mov r0, #0x0
+ bl FUN_0206BB48
+ cmp r0, #0x0
+ ldr r0, [r4, #0xc]
+ beq _020473BE
+ bl FUN_02029FC8
+ mov r1, #0x9
+ bl FUN_0202A170
+ pop {r3-r5, pc}
+_020473BE:
+ bl FUN_02029FC8
+ mov r1, #0xa
+ bl FUN_0202A170
+_020473C8:
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_020473CC
+FUN_020473CC: ; 0x020473CC
+ push {r4-r7, lr}
+ sub sp, #0xc
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ ldr r0, [r4, #0x0]
+ mov r2, #0x4
+ ldr r1, [r4, #0x14]
+ tst r2, r0
+ bne _020473EC
+ mov r3, #0x80
+ add r2, r0, #0x0
+ tst r2, r3
+ bne _020473EC
+ lsl r2, r3, #0x2
+ tst r2, r0
+ beq _020473EE
+_020473EC:
+ b _020474FC
+_020473EE:
+ cmp r0, #0x0
+ beq _02047400
+ add r3, #0x80
+ cmp r0, r3
+ beq _02047400
+ cmp r0, #0x4a
+ beq _02047400
+ cmp r0, #0x20
+ bne _020474D2
+_02047400:
+ cmp r1, #0x1
+ bne _02047470
+ add r0, r5, #0x0
+ add r0, #0x76
+ ldrh r0, [r0, #0x0]
+ add r1, r0, #0x1
+ add r0, r5, #0x0
+ add r0, #0x76
+ strh r1, [r0, #0x0]
+ add r0, r5, #0x0
+ add r0, #0x76
+ ldrh r0, [r0, #0x0]
+ cmp r0, #0x5
+ blo _020474FC
+ ldr r0, [r4, #0x8]
+ mov r1, #0x0
+ bl FUN_0206B9B0
+ add r6, r0, #0x0
+ ldr r0, [r5, #0xc]
+ bl FUN_02023918
+ str r0, [sp, #0x4]
+ add r0, r6, #0x0
+ mov r1, #0x5
+ mov r2, #0x0
+ bl FUN_020671BC
+ add r7, r0, #0x0
+ add r0, r6, #0x0
+ mov r1, #0x6f
+ mov r2, #0x0
+ bl FUN_020671BC
+ add r2, r0, #0x0
+ mov r3, #0xb
+ str r3, [sp, #0x0]
+ lsl r3, r3, #0x5
+ ldr r3, [r4, r3]
+ lsl r1, r7, #0x10
+ lsl r2, r2, #0x18
+ lsl r3, r3, #0x18
+ ldr r0, [sp, #0x4]
+ lsr r1, r1, #0x10
+ lsr r2, r2, #0x18
+ lsr r3, r3, #0x18
+ bl FUN_0202920C
+ add r5, #0x98
+ add r1, r0, #0x0
+ ldr r0, [r5, #0x0]
+ mov r2, #0x2
+ bl FUN_02028AD4
+ add sp, #0xc
+ pop {r4-r7, pc}
+_02047470:
+ cmp r1, #0x4
+ bne _020474FC
+ mov r0, #0x17
+ lsl r0, r0, #0x4
+ ldr r0, [r4, r0]
+ mov r1, #0x0
+ lsl r0, r0, #0x2
+ add r0, r4, r0
+ ldr r0, [r0, #0x4]
+ bl FUN_0206B9B0
+ add r6, r0, #0x0
+ ldr r0, [r5, #0xc]
+ bl FUN_02023918
+ str r0, [sp, #0x8]
+ add r0, r6, #0x0
+ mov r1, #0x5
+ mov r2, #0x0
+ bl FUN_020671BC
+ add r7, r0, #0x0
+ add r0, r6, #0x0
+ mov r1, #0x6f
+ mov r2, #0x0
+ bl FUN_020671BC
+ add r2, r0, #0x0
+ mov r3, #0xb
+ str r3, [sp, #0x0]
+ lsl r3, r3, #0x5
+ ldr r3, [r4, r3]
+ lsl r1, r7, #0x10
+ lsl r2, r2, #0x18
+ lsl r3, r3, #0x18
+ ldr r0, [sp, #0x8]
+ lsr r1, r1, #0x10
+ lsr r2, r2, #0x18
+ lsr r3, r3, #0x18
+ bl FUN_0202918C
+ add r5, #0x98
+ add r1, r0, #0x0
+ ldr r0, [r5, #0x0]
+ mov r2, #0x2
+ bl FUN_02028AD4
+ add sp, #0xc
+ pop {r4-r7, pc}
+_020474D2:
+ mov r2, #0x1
+ tst r2, r0
+ bne _020474DE
+ mov r2, #0x10
+ tst r0, r2
+ beq _020474FC
+_020474DE:
+ cmp r1, #0x1
+ bne _020474FC
+ ldr r1, [r5, #0x1c]
+ add r0, r5, #0x0
+ ldr r1, [r1, #0x0]
+ ldr r2, [r4, #0x1c]
+ add r0, #0x98
+ lsl r1, r1, #0x10
+ lsl r2, r2, #0x10
+ ldr r0, [r0, #0x0]
+ lsr r1, r1, #0x10
+ lsr r2, r2, #0x10
+ mov r3, #0xb
+ bl FUN_020299DC
+_020474FC:
+ add sp, #0xc
+ pop {r4-r7, pc}
+
+ thumb_func_start FUN_02047500
+FUN_02047500: ; 0x02047500
+ push {r4, lr}
+ ldr r4, [r0, #0x0]
+ mov r1, #0x1
+ tst r1, r4
+ beq _02047546
+ add r0, #0x5d
+ ldrb r0, [r0, #0x0]
+ bl FUN_020475C0
+ mov r1, #0x80
+ tst r1, r4
+ beq _0204752A
+ cmp r0, #0x1c
+ beq _02047558
+ mov r0, #0x2
+ tst r0, r4
+ beq _02047526
+ mov r0, #0x1a
+ pop {r4, pc}
+_02047526:
+ mov r0, #0x18
+ pop {r4, pc}
+_0204752A:
+ add r1, r0, #0x0
+ sub r1, #0x15
+ cmp r1, #0x2
+ bls _02047558
+ mov r1, #0x2
+ tst r1, r4
+ beq _0204753C
+ mov r0, #0x1a
+ pop {r4, pc}
+_0204753C:
+ mov r1, #0x4
+ tst r1, r4
+ beq _02047558
+ mov r0, #0x19
+ pop {r4, pc}
+_02047546:
+ ldr r0, [r0, #0x8]
+ bl FUN_02047668
+ cmp r0, #0x1e
+ blo _02047558
+ mov r1, #0x2
+ tst r1, r4
+ beq _02047558
+ mov r0, #0x1b
+_02047558:
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0204755C
+FUN_0204755C: ; 0x0204755C
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ cmp r5, #0x1f
+ blo _0204756A
+ bl ErrorHandling
+_0204756A:
+ ldr r0, _02047580 ; =0x020F457C
+ lsl r1, r5, #0x2
+ ldrh r0, [r0, r1]
+ ldr r1, _02047584 ; =0x0000FFFF
+ cmp r0, r1
+ bne _0204757C
+ add r0, r4, #0x0
+ bl FUN_021E495C
+_0204757C:
+ pop {r3-r5, pc}
+ nop
+_02047580: .word 0x020F457C
+_02047584: .word 0x0000FFFF
+
+ thumb_func_start FUN_02047588
+FUN_02047588: ; 0x02047588
+ push {r4, lr}
+ add r4, r0, #0x0
+ cmp r4, #0x1f
+ blo _02047594
+ bl ErrorHandling
+_02047594:
+ ldr r0, _0204759C ; =0x020F457E
+ lsl r1, r4, #0x2
+ ldrh r0, [r0, r1]
+ pop {r4, pc}
+ .balign 4
+_0204759C: .word 0x020F457E
+
+ thumb_func_start FUN_020475A0
+FUN_020475A0: ; 0x020475A0
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl FUN_02047500
+ add r1, r4, #0x0
+ bl FUN_0204755C
+ pop {r4, pc}
+
+ thumb_func_start FUN_020475B0
+FUN_020475B0: ; 0x020475B0
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl FUN_02047500
+ add r1, r4, #0x0
+ bl FUN_02047588
+ pop {r4, pc}
+
+ thumb_func_start FUN_020475C0
+FUN_020475C0: ; 0x020475C0
+ sub r0, #0x3e
+ mov r1, #0x1d
+ cmp r0, #0x23
+ bhi _02047662
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_020475D4: ; jump table (using 16-bit offset)
+ .short _0204761C - _020475D4 - 2; case 0
+ .short _02047650 - _020475D4 - 2; case 1
+ .short _02047634 - _020475D4 - 2; case 2
+ .short _0204763C - _020475D4 - 2; case 3
+ .short _02047640 - _020475D4 - 2; case 4
+ .short _02047644 - _020475D4 - 2; case 5
+ .short _02047648 - _020475D4 - 2; case 6
+ .short _0204764C - _020475D4 - 2; case 7
+ .short _02047662 - _020475D4 - 2; case 8
+ .short _02047662 - _020475D4 - 2; case 9
+ .short _02047658 - _020475D4 - 2; case 10
+ .short _0204765C - _020475D4 - 2; case 11
+ .short _02047620 - _020475D4 - 2; case 12
+ .short _02047624 - _020475D4 - 2; case 13
+ .short _02047628 - _020475D4 - 2; case 14
+ .short _0204762C - _020475D4 - 2; case 15
+ .short _02047630 - _020475D4 - 2; case 16
+ .short _02047638 - _020475D4 - 2; case 17
+ .short _02047662 - _020475D4 - 2; case 18
+ .short _02047662 - _020475D4 - 2; case 19
+ .short _02047662 - _020475D4 - 2; case 20
+ .short _02047662 - _020475D4 - 2; case 21
+ .short _02047662 - _020475D4 - 2; case 22
+ .short _02047662 - _020475D4 - 2; case 23
+ .short _02047654 - _020475D4 - 2; case 24
+ .short _02047658 - _020475D4 - 2; case 25
+ .short _02047658 - _020475D4 - 2; case 26
+ .short _0204765C - _020475D4 - 2; case 27
+ .short _02047662 - _020475D4 - 2; case 28
+ .short _02047662 - _020475D4 - 2; case 29
+ .short _02047662 - _020475D4 - 2; case 30
+ .short _02047662 - _020475D4 - 2; case 31
+ .short _02047662 - _020475D4 - 2; case 32
+ .short _02047662 - _020475D4 - 2; case 33
+ .short _02047662 - _020475D4 - 2; case 34
+ .short _02047660 - _020475D4 - 2; case 35
+_0204761C:
+ mov r1, #0x0
+ b _02047662
+_02047620:
+ mov r1, #0x1
+ b _02047662
+_02047624:
+ mov r1, #0x2
+ b _02047662
+_02047628:
+ mov r1, #0x3
+ b _02047662
+_0204762C:
+ mov r1, #0x4
+ b _02047662
+_02047630:
+ mov r1, #0x5
+ b _02047662
+_02047634:
+ mov r1, #0x6
+ b _02047662
+_02047638:
+ mov r1, #0x7
+ b _02047662
+_0204763C:
+ mov r1, #0x8
+ b _02047662
+_02047640:
+ mov r1, #0x9
+ b _02047662
+_02047644:
+ mov r1, #0xa
+ b _02047662
+_02047648:
+ mov r1, #0xb
+ b _02047662
+_0204764C:
+ mov r1, #0xc
+ b _02047662
+_02047650:
+ mov r1, #0xd
+ b _02047662
+_02047654:
+ mov r1, #0x17
+ b _02047662
+_02047658:
+ mov r1, #0x16
+ b _02047662
+_0204765C:
+ mov r1, #0x15
+ b _02047662
+_02047660:
+ mov r1, #0x1c
+_02047662:
+ add r0, r1, #0x0
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02047668
+FUN_02047668: ; 0x02047668
+ push {r4, lr}
+ mov r4, #0x1e
+ bl FUN_0204A1D8
+ mov r1, #0x5
+ mov r2, #0x0
+ bl FUN_020671BC
+ ldr r1, _020476C8 ; =0x000001DF
+ sub r0, r0, r1
+ cmp r0, #0xe
+ bhi _020476C4
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0204768C: ; jump table (using 16-bit offset)
+ .short _020476B2 - _0204768C - 2; case 0
+ .short _020476BA - _0204768C - 2; case 1
+ .short _020476B6 - _0204768C - 2; case 2
+ .short _020476BA - _0204768C - 2; case 3
+ .short _020476BE - _0204768C - 2; case 4
+ .short _020476BE - _0204768C - 2; case 5
+ .short _020476B2 - _0204768C - 2; case 6
+ .short _020476B2 - _0204768C - 2; case 7
+ .short _020476B2 - _0204768C - 2; case 8
+ .short _020476AE - _0204768C - 2; case 9
+ .short _020476C4 - _0204768C - 2; case 10
+ .short _020476C4 - _0204768C - 2; case 11
+ .short _020476B2 - _0204768C - 2; case 12
+ .short _020476AA - _0204768C - 2; case 13
+ .short _020476C2 - _0204768C - 2; case 14
+_020476AA:
+ mov r4, #0xe
+ b _020476C4
+_020476AE:
+ mov r4, #0x14
+ b _020476C4
+_020476B2:
+ mov r4, #0x13
+ b _020476C4
+_020476B6:
+ mov r4, #0x11
+ b _020476C4
+_020476BA:
+ mov r4, #0x10
+ b _020476C4
+_020476BE:
+ mov r4, #0xf
+ b _020476C4
+_020476C2:
+ mov r4, #0x12
+_020476C4:
+ add r0, r4, #0x0
+ pop {r4, pc}
+ .balign 4
+_020476C8: .word 0x000001DF
+
+ thumb_func_start FUN_020476CC
+FUN_020476CC: ; 0x020476CC
+ push {r3-r7, lr}
+ add r4, r1, #0x0
+ mov r1, #0x67
+ lsl r1, r1, #0x2
+ add r5, r0, #0x0
+ bl FUN_02016998
+ mov r2, #0x67
+ mov r1, #0x0
+ lsl r2, r2, #0x2
+ add r7, r0, #0x0
+ blx MI_CpuFill8
+ mov r1, #0x63
+ str r4, [r7, #0x0]
+ mov r0, #0x0
+ lsl r1, r1, #0x2
+ str r0, [r7, r1]
+ add r4, r7, #0x0
+ str r0, [sp, #0x0]
+ str r0, [r7, #0x14]
+ add r6, r7, #0x0
+ add r4, #0x28
+_020476FA:
+ mov r0, #0x0
+ add r1, r4, #0x0
+ mov r2, #0x34
+ str r0, [r6, #0x18]
+ blx MIi_CpuClear32
+ ldr r0, [sp, #0x0]
+ add r6, r6, #0x4
+ add r0, r0, #0x1
+ add r4, #0x34
+ str r0, [sp, #0x0]
+ cmp r0, #0x4
+ blt _020476FA
+ mov r0, #0x15
+ lsl r0, r0, #0x4
+ mov r6, #0x0
+ str r6, [r7, r0]
+ mov r2, #0xc
+ add r1, r0, #0x4
+ str r2, [r7, r1]
+ add r1, r0, #0x0
+ add r1, #0x8
+ str r6, [r7, r1]
+ add r1, r0, #0x0
+ add r1, #0x10
+ str r6, [r7, r1]
+ add r1, r0, #0x0
+ add r1, #0x14
+ str r6, [r7, r1]
+ add r1, r0, #0x0
+ mov r2, #0x1
+ add r1, #0x18
+ str r2, [r7, r1]
+ add r1, r0, #0x0
+ add r1, #0x1c
+ str r2, [r7, r1]
+ add r0, #0x24
+ str r6, [r7, r0]
+ add r4, r7, #0x0
+_02047748:
+ add r0, r5, #0x0
+ bl FUN_0206B8AC
+ str r0, [r4, #0x4]
+ add r6, r6, #0x1
+ add r4, r4, #0x4
+ cmp r6, #0x4
+ blt _02047748
+ mov r6, #0x0
+ add r4, r7, #0x0
+_0204775C:
+ add r0, r5, #0x0
+ bl FUN_02023928
+ add r1, r4, #0x0
+ add r1, #0xf8
+ add r6, r6, #0x1
+ add r4, r4, #0x4
+ str r0, [r1, #0x0]
+ cmp r6, #0x4
+ blt _0204775C
+ mov r6, #0x0
+ add r4, r7, #0x0
+_02047774:
+ add r0, r5, #0x0
+ bl FUN_02029EE4
+ mov r1, #0x46
+ lsl r1, r1, #0x2
+ str r0, [r4, r1]
+ add r6, r6, #0x1
+ add r4, r4, #0x4
+ cmp r6, #0x4
+ blt _02047774
+ add r0, r5, #0x0
+ bl FUN_0206EB88
+ mov r1, #0x42
+ lsl r1, r1, #0x2
+ str r0, [r7, r1]
+ add r0, r5, #0x0
+ bl FUN_02023D6C
+ mov r1, #0x11
+ lsl r1, r1, #0x4
+ str r0, [r7, r1]
+ add r0, r5, #0x0
+ bl FUN_02024F30
+ mov r1, #0x13
+ lsl r1, r1, #0x4
+ str r0, [r7, r1]
+ add r0, r5, #0x0
+ bl FUN_02061008
+ mov r2, #0x4d
+ lsl r2, r2, #0x2
+ str r0, [r7, r2]
+ add r0, r2, #0x0
+ mov r1, #0x0
+ sub r0, #0x28
+ str r1, [r7, r0]
+ add r0, r2, #0x0
+ add r0, #0x5c
+ str r1, [r7, r0]
+ add r0, r2, #0x0
+ sub r0, #0x8
+ str r1, [r7, r0]
+ add r0, r2, #0x0
+ add r0, #0x10
+ str r1, [r7, r0]
+ add r0, r2, #0x0
+ add r0, #0x14
+ str r1, [r7, r0]
+ add r0, r2, #0x0
+ add r0, #0x60
+ str r1, [r7, r0]
+ add r0, r2, #0x4
+ add r0, r7, r0
+ mov r2, #0xc
+ blx MI_CpuFill8
+ add r0, r7, #0x0
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_020477EC
+FUN_020477EC: ; 0x020477EC
+ push {r4, lr}
+ add r4, r1, #0x0
+ mov r1, #0x20
+ bl FUN_020476CC
+ mov r1, #0x19
+ lsl r1, r1, #0x4
+ str r4, [r0, r1]
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02047800
+FUN_02047800: ; 0x02047800
+ push {r4, lr}
+ add r4, r1, #0x0
+ mov r1, #0x2
+ lsl r1, r1, #0x8
+ bl FUN_020476CC
+ mov r1, #0x19
+ lsl r1, r1, #0x4
+ str r4, [r0, r1]
+ pop {r4, pc}
+
+ thumb_func_start FUN_02047814
+FUN_02047814: ; 0x02047814
+ push {r4-r7, lr}
+ sub sp, #0x1c
+ add r5, r1, #0x0
+ add r6, r0, #0x0
+ ldr r0, [r5, #0xc]
+ bl FUN_020238F4
+ str r0, [sp, #0x10]
+ ldr r0, [r5, #0xc]
+ bl LoadPlayerDataAddress
+ mov r1, #0x1
+ str r0, [sp, #0x14]
+ add r0, r6, #0x0
+ lsl r1, r1, #0xa
+ bl FUN_020476CC
+ add r4, r0, #0x0
+ ldr r2, _0204795C ; =0x000001F1
+ mov r0, #0x1
+ mov r1, #0x1a
+ add r3, r6, #0x0
+ bl FUN_0200A86C
+ str r0, [sp, #0x18]
+ mov r0, #0x8
+ add r1, r6, #0x0
+ bl FUN_020219F4
+ add r7, r0, #0x0
+ ldr r0, [sp, #0x10]
+ bl FUN_020239CC
+ add r2, r0, #0x0
+ mov r1, #0x1
+ eor r1, r2
+ ldr r0, [sp, #0x18]
+ add r2, r7, #0x0
+ bl FUN_0200A8E0
+ add r0, r7, #0x0
+ bl FUN_02021F2C
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ add r0, #0xf8
+ ldr r0, [r0, #0x0]
+ bl FUN_0202395C
+ add r0, r7, #0x0
+ bl FUN_02021A20
+ ldr r0, [sp, #0x18]
+ bl FUN_0200A8B8
+ ldr r0, [sp, #0x10]
+ bl FUN_020239CC
+ add r2, r0, #0x0
+ add r0, r4, #0x0
+ add r0, #0xf8
+ mov r1, #0x1
+ ldr r0, [r0, #0x0]
+ eor r1, r2
+ bl FUN_020239C8
+ add r0, r4, #0x0
+ add r1, r5, #0x0
+ bl FUN_0204806C
+ mov r1, #0x13
+ lsl r1, r1, #0x4
+ ldr r0, [sp, #0x14]
+ ldr r1, [r4, r1]
+ bl FUN_02024F44
+ add r0, r5, #0x0
+ bl FUN_0204B2A4
+ mov r1, #0x16
+ lsl r1, r1, #0x4
+ str r0, [r4, r1]
+ sub r1, #0x58
+ ldr r0, [r4, r1]
+ mov r1, #0x4
+ mov r2, #0x14
+ add r3, r6, #0x0
+ bl FUN_0206ED38
+ add r0, r6, #0x0
+ bl FUN_020669C0
+ add r6, r0, #0x0
+ ldr r0, [r5, #0xc]
+ bl FUN_020462AC
+ bl FUN_0205F3C0
+ mov r2, #0x0
+ str r2, [sp, #0x0]
+ add r1, r0, #0x0
+ str r2, [sp, #0x4]
+ mov r0, #0x2
+ str r0, [sp, #0x8]
+ str r2, [sp, #0xc]
+ add r0, r6, #0x0
+ mov r2, #0x5
+ mov r3, #0x20
+ bl FUN_02066ACC
+ ldr r0, [r4, #0x4]
+ add r1, r6, #0x0
+ bl FUN_0206B900
+ mov r0, #0x0
+ str r0, [sp, #0x0]
+ str r0, [sp, #0x4]
+ mov r2, #0x2
+ str r2, [sp, #0x8]
+ str r0, [sp, #0xc]
+ ldr r1, _02047960 ; =0x0000018F
+ add r0, r6, #0x0
+ mov r3, #0x20
+ bl FUN_02066ACC
+ ldr r0, [r4, #0x8]
+ add r1, r6, #0x0
+ bl FUN_0206B900
+ add r0, r6, #0x0
+ bl FUN_02016A18
+ ldr r0, [r5, #0xc]
+ bl FUN_02022510
+ mov r1, #0x45
+ lsl r1, r1, #0x2
+ str r0, [r4, r1]
+ add r0, r5, #0x0
+ add r0, #0x94
+ ldr r0, [r0, #0x0]
+ sub r1, #0x8
+ str r0, [r4, r1]
+ ldr r0, [r5, #0xc]
+ bl FUN_02029FC8
+ mov r1, #0x51
+ lsl r1, r1, #0x2
+ str r0, [r4, r1]
+ add r0, r5, #0x0
+ add r0, #0x98
+ ldr r2, [r0, #0x0]
+ add r0, r1, #0x4
+ str r2, [r4, r0]
+ ldr r0, [r5, #0x1c]
+ add r1, #0x18
+ ldr r0, [r0, #0x0]
+ str r0, [r4, r1]
+ add r0, r4, #0x0
+ bl FUN_020480E4
+ add r0, r4, #0x0
+ add sp, #0x1c
+ pop {r4-r7, pc}
+ .balign 4
+_0204795C: .word 0x000001F1
+_02047960: .word 0x0000018F
+
+ thumb_func_start FUN_02047964
+FUN_02047964: ; 0x02047964
+ push {r3-r7, lr}
+ add r7, r0, #0x0
+ mov r4, #0x0
+ add r5, r7, #0x0
+_0204796C:
+ ldr r0, [r5, #0x4]
+ cmp r0, #0x0
+ bne _02047976
+ bl ErrorHandling
+_02047976:
+ ldr r0, [r5, #0x4]
+ bl FUN_02016A18
+ add r4, r4, #0x1
+ add r5, r5, #0x4
+ cmp r4, #0x4
+ blt _0204796C
+ mov r5, #0x0
+ add r4, r7, #0x0
+_02047988:
+ add r0, r4, #0x0
+ add r0, #0xf8
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ bne _02047996
+ bl ErrorHandling
+_02047996:
+ add r0, r4, #0x0
+ add r0, #0xf8
+ ldr r0, [r0, #0x0]
+ bl FUN_02016A18
+ add r5, r5, #0x1
+ add r4, r4, #0x4
+ cmp r5, #0x4
+ blt _02047988
+ mov r6, #0x46
+ mov r5, #0x0
+ add r4, r7, #0x0
+ lsl r6, r6, #0x2
+_020479B0:
+ ldr r0, [r4, r6]
+ cmp r0, #0x0
+ bne _020479BA
+ bl ErrorHandling
+_020479BA:
+ mov r0, #0x46
+ lsl r0, r0, #0x2
+ ldr r0, [r4, r0]
+ bl FUN_02016A18
+ add r5, r5, #0x1
+ add r4, r4, #0x4
+ cmp r5, #0x4
+ blt _020479B0
+ mov r0, #0x42
+ lsl r0, r0, #0x2
+ ldr r0, [r7, r0]
+ bl FUN_02016A18
+ mov r0, #0x11
+ lsl r0, r0, #0x4
+ ldr r0, [r7, r0]
+ bl FUN_02016A18
+ mov r0, #0x13
+ lsl r0, r0, #0x4
+ ldr r0, [r7, r0]
+ bl FUN_02016A18
+ mov r0, #0x4d
+ lsl r0, r0, #0x2
+ ldr r0, [r7, r0]
+ bl FUN_02061020
+ add r0, r7, #0x0
+ bl FUN_02016A18
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_020479FC
+FUN_020479FC: ; 0x020479FC
+ push {r4-r6, lr}
+ add r4, r2, #0x0
+ add r5, r0, #0x0
+ add r6, r1, #0x0
+ cmp r4, #0x4
+ blt _02047A0C
+ bl ErrorHandling
+_02047A0C:
+ lsl r0, r4, #0x2
+ add r0, r5, r0
+ ldr r0, [r0, #0x4]
+ add r1, r6, #0x0
+ bl FUN_0206B900
+ cmp r0, #0x0
+ bne _02047A20
+ bl ErrorHandling
+_02047A20:
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_02047A24
+FUN_02047A24: ; 0x02047A24
+ push {r4-r6, lr}
+ add r4, r2, #0x0
+ add r5, r0, #0x0
+ add r6, r1, #0x0
+ cmp r4, #0x4
+ blt _02047A34
+ bl ErrorHandling
+_02047A34:
+ lsl r1, r4, #0x2
+ add r1, r5, r1
+ ldr r1, [r1, #0x4]
+ add r0, r6, #0x0
+ bl FUN_0206BAD0
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_02047A44
+FUN_02047A44: ; 0x02047A44
+ push {r4-r6, lr}
+ add r4, r2, #0x0
+ add r5, r0, #0x0
+ add r6, r1, #0x0
+ cmp r4, #0x4
+ blt _02047A54
+ bl ErrorHandling
+_02047A54:
+ lsl r1, r4, #0x2
+ add r1, r5, r1
+ add r1, #0xf8
+ ldr r1, [r1, #0x0]
+ add r0, r6, #0x0
+ bl FUN_0202393C
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_02047A64
+FUN_02047A64: ; 0x02047A64
+ lsl r2, r2, #0x2
+ add r2, r0, r2
+ mov r0, #0x46
+ lsl r0, r0, #0x2
+ ldr r3, _02047A74 ; =FUN_02029F9C
+ ldr r0, [r2, r0]
+ bx r3
+ nop
+_02047A74: .word FUN_02029F9C
+
+ thumb_func_start FUN_02047A78
+FUN_02047A78: ; 0x02047A78
+ push {r4-r7, lr}
+ sub sp, #0x14
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ ldr r0, [r4, #0xc]
+ bl FUN_020238F4
+ add r6, r0, #0x0
+ ldr r0, [r4, #0xc]
+ bl FUN_0206BB1C
+ add r7, r0, #0x0
+ ldr r0, [r4, #0xc]
+ bl FUN_0206F158
+ str r0, [sp, #0x0]
+ ldr r0, [r4, #0xc]
+ bl FUN_02024DA0
+ str r0, [sp, #0x4]
+ ldr r0, [r4, #0xc]
+ bl FUN_02029EF8
+ str r0, [sp, #0x8]
+ ldr r0, [r4, #0xc]
+ bl LoadPlayerDataAddress
+ str r0, [sp, #0xc]
+ ldr r0, [r4, #0xc]
+ bl FUN_02034E30
+ str r0, [sp, #0x10]
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_0204806C
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ mov r2, #0x0
+ bl FUN_02047A44
+ add r0, r5, #0x0
+ add r1, r7, #0x0
+ mov r2, #0x0
+ bl FUN_02047A24
+ mov r1, #0x42
+ lsl r1, r1, #0x2
+ ldr r0, [sp, #0x0]
+ ldr r1, [r5, r1]
+ bl FUN_0206EBB4
+ mov r1, #0x11
+ lsl r1, r1, #0x4
+ ldr r0, [sp, #0x4]
+ ldr r1, [r5, r1]
+ bl FUN_02023D80
+ mov r1, #0x13
+ lsl r1, r1, #0x4
+ ldr r0, [sp, #0xc]
+ ldr r1, [r5, r1]
+ bl FUN_02024F44
+ ldr r1, [sp, #0x8]
+ add r0, r5, #0x0
+ mov r2, #0x0
+ bl FUN_02047A64
+ ldr r0, [r4, #0xc]
+ bl FUN_02022510
+ mov r1, #0x45
+ lsl r1, r1, #0x2
+ str r0, [r5, r1]
+ ldr r0, [r4, #0x1c]
+ ldr r0, [r0, #0x0]
+ bl FUN_02034824
+ mov r1, #0x56
+ lsl r1, r1, #0x2
+ str r0, [r5, r1]
+ add r0, r4, #0x0
+ bl FUN_0204B2A4
+ mov r1, #0x16
+ lsl r1, r1, #0x4
+ str r0, [r5, r1]
+ ldr r0, [r4, #0x1c]
+ ldr r0, [r0, #0x0]
+ bl FUN_02034A04
+ mov r1, #0x59
+ lsl r1, r1, #0x2
+ str r0, [r5, r1]
+ ldr r0, [r4, #0xc]
+ bl FUN_02079C70
+ mov r1, #0x5a
+ lsl r1, r1, #0x2
+ str r0, [r5, r1]
+ ldr r0, [r4, #0xc]
+ bl FUN_020462AC
+ bl FUN_0205F1B4
+ mov r1, #0x5b
+ lsl r1, r1, #0x2
+ str r0, [r5, r1]
+ ldr r0, [sp, #0x10]
+ bl FUN_02034DEC
+ mov r1, #0x5d
+ lsl r1, r1, #0x2
+ str r0, [r5, r1]
+ add r0, r4, #0x0
+ add r0, #0x94
+ ldr r0, [r0, #0x0]
+ sub r1, #0x68
+ str r0, [r5, r1]
+ ldr r0, [r4, #0xc]
+ bl FUN_0204C1A8
+ mov r1, #0x4a
+ lsl r1, r1, #0x2
+ str r0, [r5, r1]
+ ldr r0, [r4, #0xc]
+ bl FUN_02029AFC
+ mov r1, #0x4b
+ lsl r1, r1, #0x2
+ str r0, [r5, r1]
+ ldr r0, [r4, #0xc]
+ bl FUN_02029FC8
+ mov r1, #0x51
+ lsl r1, r1, #0x2
+ str r0, [r5, r1]
+ add r0, r4, #0x0
+ add r0, #0x98
+ ldr r2, [r0, #0x0]
+ add r0, r1, #0x4
+ str r2, [r5, r0]
+ ldr r0, [r4, #0xc]
+ bl FUN_020254C0
+ mov r1, #0x53
+ lsl r1, r1, #0x2
+ str r0, [r5, r1]
+ ldr r0, [r4, #0x1c]
+ add r1, #0x10
+ ldr r0, [r0, #0x0]
+ str r0, [r5, r1]
+ add sp, #0x14
+ pop {r4-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_02047BB0
+FUN_02047BB0: ; 0x02047BB0
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl FUN_02047A78
+ add r0, r4, #0x0
+ bl FUN_020480E4
+ pop {r4, pc}
+
+ thumb_func_start FUN_02047BC0
+FUN_02047BC0: ; 0x02047BC0
+ push {r4-r7, lr}
+ sub sp, #0x1c
+ add r6, r0, #0x0
+ add r0, r1, #0x0
+ ldr r0, [r0, #0xc]
+ str r1, [sp, #0x0]
+ add r7, r2, #0x0
+ bl FUN_020238F4
+ add r4, r0, #0x0
+ ldr r0, [sp, #0x0]
+ ldr r0, [r0, #0xc]
+ bl FUN_0206BB1C
+ str r0, [sp, #0x14]
+ ldr r0, [sp, #0x0]
+ ldr r0, [r0, #0xc]
+ bl FUN_0206F158
+ str r0, [sp, #0x10]
+ ldr r0, [sp, #0x0]
+ ldr r0, [r0, #0xc]
+ bl FUN_02024DA0
+ str r0, [sp, #0xc]
+ ldr r0, [sp, #0x0]
+ ldr r0, [r0, #0xc]
+ bl FUN_02029EF8
+ str r0, [sp, #0x8]
+ ldr r0, [sp, #0x0]
+ ldr r0, [r0, #0xc]
+ bl LoadPlayerDataAddress
+ str r0, [sp, #0x4]
+ mov r0, #0x15
+ mov r1, #0x6
+ lsl r0, r0, #0x4
+ str r1, [r6, r0]
+ mov r1, #0x9
+ add r0, r0, #0x4
+ str r1, [r6, r0]
+ add r0, r6, #0x0
+ add r1, r4, #0x0
+ mov r2, #0x0
+ bl FUN_02047A44
+ mov r0, #0xb
+ bl FUN_020669C0
+ add r5, r0, #0x0
+ ldr r0, [sp, #0x14]
+ bl FUN_0206B9AC
+ add r1, r0, #0x0
+ ldr r0, [r6, #0x4]
+ bl FUN_0206B8CC
+ ldr r0, [sp, #0x14]
+ mov r4, #0x0
+ bl FUN_0206B9AC
+ cmp r0, #0x0
+ ble _02047C98
+_02047C40:
+ ldr r0, [sp, #0x14]
+ add r1, r4, #0x0
+ bl FUN_0206B9B0
+ add r1, r5, #0x0
+ bl FUN_02069B88
+ add r0, r5, #0x0
+ mov r1, #0xa0
+ mov r2, #0x0
+ bl FUN_020671BC
+ cmp r7, r0
+ beq _02047C82
+ cmp r7, #0x0
+ beq _02047C82
+ add r0, r5, #0x0
+ mov r1, #0x5
+ mov r2, #0x0
+ bl FUN_020671BC
+ add r1, r7, #0x0
+ bl FUN_02068758
+ str r0, [sp, #0x18]
+ add r0, r5, #0x0
+ mov r1, #0x8
+ add r2, sp, #0x18
+ bl FUN_02067830
+ add r0, r5, #0x0
+ bl FUN_02066ED8
+_02047C82:
+ add r0, r6, #0x0
+ add r1, r5, #0x0
+ mov r2, #0x0
+ bl FUN_020479FC
+ ldr r0, [sp, #0x14]
+ add r4, r4, #0x1
+ bl FUN_0206B9AC
+ cmp r4, r0
+ blt _02047C40
+_02047C98:
+ add r0, r5, #0x0
+ bl FUN_02016A18
+ mov r1, #0x42
+ lsl r1, r1, #0x2
+ ldr r0, [sp, #0x10]
+ ldr r1, [r6, r1]
+ bl FUN_0206EBB4
+ mov r1, #0x11
+ lsl r1, r1, #0x4
+ ldr r0, [sp, #0xc]
+ ldr r1, [r6, r1]
+ bl FUN_02023D80
+ mov r1, #0x13
+ lsl r1, r1, #0x4
+ ldr r0, [sp, #0x4]
+ ldr r1, [r6, r1]
+ bl FUN_02024F44
+ ldr r1, [sp, #0x8]
+ add r0, r6, #0x0
+ mov r2, #0x0
+ bl FUN_02047A64
+ ldr r0, [sp, #0x0]
+ ldr r0, [r0, #0xc]
+ bl FUN_02022510
+ mov r1, #0x45
+ lsl r1, r1, #0x2
+ str r0, [r6, r1]
+ ldr r0, [sp, #0x0]
+ bl FUN_0204B2A4
+ mov r1, #0x16
+ lsl r1, r1, #0x4
+ str r0, [r6, r1]
+ ldr r0, [sp, #0x0]
+ sub r1, #0x54
+ add r0, #0x94
+ ldr r0, [r0, #0x0]
+ str r0, [r6, r1]
+ ldr r0, [sp, #0x0]
+ ldr r0, [r0, #0xc]
+ bl FUN_0204C1A8
+ mov r1, #0x4a
+ lsl r1, r1, #0x2
+ str r0, [r6, r1]
+ ldr r0, [sp, #0x0]
+ ldr r0, [r0, #0xc]
+ bl FUN_02029AFC
+ mov r1, #0x4b
+ lsl r1, r1, #0x2
+ str r0, [r6, r1]
+ ldr r0, [sp, #0x0]
+ ldr r0, [r0, #0xc]
+ bl FUN_02029FC8
+ mov r1, #0x51
+ lsl r1, r1, #0x2
+ str r0, [r6, r1]
+ ldr r0, [sp, #0x0]
+ add r0, #0x98
+ ldr r2, [r0, #0x0]
+ add r0, r1, #0x4
+ str r2, [r6, r0]
+ ldr r0, [sp, #0x0]
+ ldr r0, [r0, #0xc]
+ bl FUN_020254C0
+ mov r1, #0x53
+ lsl r1, r1, #0x2
+ str r0, [r6, r1]
+ ldr r0, [sp, #0x0]
+ add r1, #0x10
+ ldr r0, [r0, #0x1c]
+ ldr r0, [r0, #0x0]
+ str r0, [r6, r1]
+ add r0, r6, #0x0
+ bl FUN_020480E4
+ add sp, #0x1c
+ pop {r4-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_02047D48
+FUN_02047D48: ; 0x02047D48
+ push {r4-r7, lr}
+ sub sp, #0x24
+ add r5, r0, #0x0
+ add r0, r1, #0x0
+ ldr r0, [r0, #0xc]
+ str r1, [sp, #0x0]
+ str r2, [sp, #0x4]
+ add r7, r3, #0x0
+ bl FUN_020238F4
+ str r0, [sp, #0x20]
+ ldr r0, [sp, #0x0]
+ ldr r0, [r0, #0xc]
+ bl FUN_0206F158
+ str r0, [sp, #0x1c]
+ ldr r0, [sp, #0x0]
+ ldr r0, [r0, #0xc]
+ bl FUN_02024DA0
+ str r0, [sp, #0x18]
+ ldr r0, [sp, #0x0]
+ ldr r0, [r0, #0xc]
+ bl FUN_02029EF8
+ str r0, [sp, #0x14]
+ ldr r0, [sp, #0x0]
+ ldr r0, [r0, #0xc]
+ bl LoadPlayerDataAddress
+ str r0, [sp, #0x10]
+ ldr r0, [sp, #0x0]
+ mov r1, #0x6
+ add r0, #0xac
+ ldr r0, [r0, #0x0]
+ mov r2, #0x0
+ str r0, [sp, #0xc]
+ mov r0, #0x15
+ lsl r0, r0, #0x4
+ str r1, [r5, r0]
+ mov r1, #0x9
+ add r0, r0, #0x4
+ str r1, [r5, r0]
+ ldr r1, [sp, #0x20]
+ add r0, r5, #0x0
+ bl FUN_02047A44
+ cmp r7, #0x0
+ bne _02047DB6
+ ldr r1, [sp, #0x4]
+ add r0, r5, #0x0
+ mov r2, #0x0
+ bl FUN_02047A24
+ b _02047E14
+_02047DB6:
+ mov r4, #0x0
+ add r1, r4, #0x0
+_02047DBA:
+ ldrb r0, [r7, r1]
+ cmp r0, #0x0
+ beq _02047DC2
+ add r4, r4, #0x1
+_02047DC2:
+ add r1, r1, #0x1
+ cmp r1, #0x6
+ blt _02047DBA
+ cmp r4, #0x0
+ bne _02047DD8
+ ldr r1, [sp, #0x4]
+ add r0, r5, #0x0
+ mov r2, #0x0
+ bl FUN_02047A24
+ b _02047E14
+_02047DD8:
+ mov r0, #0xb
+ bl FUN_020669C0
+ str r0, [sp, #0x8]
+ ldr r0, [r5, #0x4]
+ add r1, r4, #0x0
+ bl FUN_0206B8CC
+ mov r6, #0x0
+ cmp r4, #0x0
+ ble _02047E0E
+_02047DEE:
+ ldrb r1, [r7, r6]
+ ldr r0, [sp, #0x4]
+ sub r1, r1, #0x1
+ bl FUN_0206B9B0
+ ldr r1, [sp, #0x8]
+ bl FUN_02069B88
+ ldr r1, [sp, #0x8]
+ add r0, r5, #0x0
+ mov r2, #0x0
+ bl FUN_020479FC
+ add r6, r6, #0x1
+ cmp r6, r4
+ blt _02047DEE
+_02047E0E:
+ ldr r0, [sp, #0x8]
+ bl FUN_02016A18
+_02047E14:
+ ldr r0, [sp, #0xc]
+ cmp r0, #0x0
+ beq _02047E2C
+ mov r1, #0xc
+ bl FUN_02023B0C
+ cmp r0, #0x0
+ beq _02047E2C
+ mov r0, #0x65
+ mov r1, #0x1
+ lsl r0, r0, #0x2
+ str r1, [r5, r0]
+_02047E2C:
+ mov r1, #0x42
+ lsl r1, r1, #0x2
+ ldr r0, [sp, #0x1c]
+ ldr r1, [r5, r1]
+ bl FUN_0206EBB4
+ mov r1, #0x11
+ lsl r1, r1, #0x4
+ ldr r0, [sp, #0x18]
+ ldr r1, [r5, r1]
+ bl FUN_02023D80
+ mov r1, #0x13
+ lsl r1, r1, #0x4
+ ldr r0, [sp, #0x10]
+ ldr r1, [r5, r1]
+ bl FUN_02024F44
+ ldr r1, [sp, #0x14]
+ add r0, r5, #0x0
+ mov r2, #0x0
+ bl FUN_02047A64
+ ldr r0, [sp, #0x0]
+ ldr r0, [r0, #0xc]
+ bl FUN_02022510
+ mov r1, #0x45
+ lsl r1, r1, #0x2
+ str r0, [r5, r1]
+ ldr r0, [sp, #0x0]
+ bl FUN_0204B2A4
+ mov r1, #0x16
+ lsl r1, r1, #0x4
+ str r0, [r5, r1]
+ ldr r0, [sp, #0x0]
+ sub r1, #0x54
+ add r0, #0x94
+ ldr r0, [r0, #0x0]
+ str r0, [r5, r1]
+ ldr r0, [sp, #0x0]
+ ldr r0, [r0, #0xc]
+ bl FUN_02029AFC
+ mov r1, #0x4b
+ lsl r1, r1, #0x2
+ str r0, [r5, r1]
+ ldr r0, [sp, #0x0]
+ ldr r0, [r0, #0xc]
+ bl FUN_02029FC8
+ mov r1, #0x51
+ lsl r1, r1, #0x2
+ str r0, [r5, r1]
+ ldr r0, [sp, #0x0]
+ add r0, #0x98
+ ldr r2, [r0, #0x0]
+ add r0, r1, #0x4
+ str r2, [r5, r0]
+ ldr r0, [sp, #0x0]
+ add r1, #0x18
+ ldr r0, [r0, #0x1c]
+ ldr r0, [r0, #0x0]
+ str r0, [r5, r1]
+ ldr r0, [sp, #0x0]
+ ldr r0, [r0, #0xc]
+ bl FUN_020254C0
+ mov r1, #0x53
+ lsl r1, r1, #0x2
+ str r0, [r5, r1]
+ bl FUN_02033534
+ bl FUN_0202D8B0
+ cmp r0, #0x0
+ beq _02047F10
+ ldr r0, [sp, #0x20]
+ bl FUN_02023A28
+ add r4, r0, #0x0
+ ldr r0, [sp, #0x20]
+ bl FUN_020239CC
+ add r1, r4, #0x0
+ mov r2, #0x1
+ bl FUN_020536D0
+ add r1, r5, #0x0
+ add r1, #0x29
+ strb r0, [r1, #0x0]
+ add r0, r5, #0x0
+ add r0, #0xf8
+ ldr r0, [r0, #0x0]
+ bl FUN_0202398C
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x3c
+ bl StringCopy
+ add r3, r5, #0x0
+ add r3, #0x28
+ add r5, #0x90
+ mov r2, #0x6
+_02047F00:
+ ldmia r3!, {r0-r1}
+ stmia r5!, {r0-r1}
+ sub r2, r2, #0x1
+ bne _02047F00
+ ldr r0, [r3, #0x0]
+ add sp, #0x24
+ str r0, [r5, #0x0]
+ pop {r4-r7, pc}
+_02047F10:
+ add r0, r5, #0x0
+ bl FUN_020480E4
+ add sp, #0x24
+ pop {r4-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_02047F1C
+FUN_02047F1C: ; 0x02047F1C
+ push {r4-r6, lr}
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ ldr r0, [r4, #0xc]
+ add r6, r2, #0x0
+ bl FUN_0206BB1C
+ add r2, r0, #0x0
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ add r3, r6, #0x0
+ bl FUN_02047D48
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_02047F38
+FUN_02047F38: ; 0x02047F38
+ push {r3-r7, lr}
+ sub sp, #0x8
+ add r5, r1, #0x0
+ add r4, r0, #0x0
+ ldr r0, [r5, #0xc]
+ bl FUN_020238F4
+ add r6, r0, #0x0
+ ldr r0, [r5, #0xc]
+ bl FUN_0206BB1C
+ add r7, r0, #0x0
+ ldr r0, [r5, #0xc]
+ bl FUN_0206F158
+ str r0, [sp, #0x0]
+ ldr r0, [r5, #0xc]
+ bl FUN_02024DA0
+ str r0, [sp, #0x4]
+ ldr r0, [r5, #0xc]
+ bl FUN_02034E30
+ bl FUN_02034E24
+ add r5, r0, #0x0
+ add r0, r4, #0x0
+ add r0, #0xf8
+ ldr r0, [r0, #0x0]
+ add r1, r6, #0x0
+ bl FUN_0202393C
+ ldr r0, [r4, #0x4]
+ add r1, r7, #0x0
+ bl FUN_0206BAD0
+ mov r0, #0x42
+ lsl r0, r0, #0x2
+ ldr r0, [r4, r0]
+ ldr r1, [sp, #0x0]
+ bl FUN_0206EBB4
+ mov r0, #0x11
+ lsl r0, r0, #0x4
+ ldr r0, [r4, r0]
+ ldr r1, [sp, #0x4]
+ bl FUN_02023D80
+ mov r0, #0x19
+ lsl r0, r0, #0x4
+ ldr r0, [r4, r0]
+ strh r0, [r5, #0x0]
+ add sp, #0x8
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_02047FA4
+FUN_02047FA4: ; 0x02047FA4
+ push {r3-r5, lr}
+ add r5, r1, #0x0
+ add r4, r0, #0x0
+ ldr r0, [r5, #0xc]
+ bl FUN_020238F4
+ ldr r0, [r5, #0xc]
+ bl FUN_0206BB1C
+ ldr r0, [r5, #0xc]
+ bl FUN_0206F158
+ ldr r0, [r5, #0xc]
+ bl FUN_02024DA0
+ add r1, r0, #0x0
+ mov r0, #0x11
+ lsl r0, r0, #0x4
+ ldr r0, [r4, r0]
+ bl FUN_02023D80
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_02047FD0
+FUN_02047FD0: ; 0x02047FD0
+ push {r3-r5, lr}
+ ldr r2, [r0, #0x1c]
+ add r4, r1, #0x0
+ ldr r1, [r2, #0x8]
+ ldr r2, [r2, #0xc]
+ bl FUN_0204A6E0
+ add r5, r0, #0x0
+ bl FUN_020548F0
+ cmp r0, #0x0
+ beq _02047FEC
+ mov r0, #0x8
+ pop {r3-r5, pc}
+_02047FEC:
+ add r0, r5, #0x0
+ bl FUN_0205478C
+ cmp r0, #0x0
+ bne _02048000
+ add r0, r5, #0x0
+ bl FUN_02054798
+ cmp r0, #0x0
+ beq _02048004
+_02048000:
+ mov r0, #0x2
+ pop {r3-r5, pc}
+_02048004:
+ add r0, r5, #0x0
+ bl FUN_02054830
+ cmp r0, #0x0
+ beq _02048012
+ mov r0, #0x1
+ pop {r3-r5, pc}
+_02048012:
+ add r0, r5, #0x0
+ bl FUN_020549AC
+ cmp r0, #0x0
+ beq _02048020
+ mov r0, #0x6
+ pop {r3-r5, pc}
+_02048020:
+ add r0, r5, #0x0
+ bl FUN_02054974
+ cmp r0, #0x0
+ bne _02048034
+ add r0, r5, #0x0
+ bl FUN_02054990
+ cmp r0, #0x0
+ beq _02048038
+_02048034:
+ mov r0, #0xa
+ pop {r3-r5, pc}
+_02048038:
+ add r0, r5, #0x0
+ bl FUN_02054A3C
+ cmp r0, #0x0
+ beq _02048046
+ mov r0, #0x5
+ pop {r3-r5, pc}
+_02048046:
+ add r0, r5, #0x0
+ bl FUN_0205481C
+ cmp r0, #0x0
+ beq _02048054
+ mov r0, #0x7
+ pop {r3-r5, pc}
+_02048054:
+ cmp r4, #0xc
+ bhs _02048060
+ ldr r0, _02048068 ; =0x020F45F8
+ lsl r1, r4, #0x2
+ ldr r0, [r0, r1]
+ pop {r3-r5, pc}
+_02048060:
+ bl ErrorHandling
+ mov r0, #0xc
+ pop {r3-r5, pc}
+ .balign 4
+_02048068: .word 0x020F45F8
+
+ thumb_func_start FUN_0204806C
+FUN_0204806C: ; 0x0204806C
+ push {r4-r6, lr}
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ ldr r0, [r4, #0xc]
+ bl FUN_02034E30
+ bl FUN_02034E20
+ add r6, r0, #0x0
+ ldr r0, [r4, #0x1c]
+ ldr r0, [r0, #0x0]
+ bl FUN_02034860
+ mov r1, #0x15
+ lsl r1, r1, #0x4
+ str r0, [r5, r1]
+ ldr r0, [r6, #0x4]
+ cmp r0, #0x2
+ bne _02048096
+ mov r0, #0x1
+ str r0, [r5, r1]
+_02048096:
+ mov r1, #0x15
+ lsl r1, r1, #0x4
+ ldr r1, [r5, r1]
+ add r0, r4, #0x0
+ bl FUN_02047FD0
+ mov r1, #0x55
+ lsl r1, r1, #0x2
+ str r0, [r5, r1]
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_020480AC
+FUN_020480AC: ; 0x020480AC
+ mov r1, #0x55
+ mov r2, #0x7
+ lsl r1, r1, #0x2
+ str r2, [r0, r1]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_020480B8
+FUN_020480B8: ; 0x020480B8
+ cmp r0, #0x2
+ beq _020480C0
+ cmp r0, #0x3
+ bne _020480C4
+_020480C0:
+ mov r0, #0x0
+ bx lr
+_020480C4:
+ mov r0, #0x1
+ bx lr
+
+ thumb_func_start FUN_020480C8
+FUN_020480C8: ; 0x020480C8
+ cmp r0, #0x1
+ beq _020480D0
+ cmp r0, #0x4
+ bne _020480D4
+_020480D0:
+ mov r0, #0x0
+ bx lr
+_020480D4:
+ mov r0, #0x1
+ bx lr
+
+ thumb_func_start FUN_020480D8
+FUN_020480D8: ; 0x020480D8
+ cmp r0, #0x4
+ bne _020480E0
+ mov r0, #0x0
+ bx lr
+_020480E0:
+ mov r0, #0x1
+ bx lr
+
+ thumb_func_start FUN_020480E4
+FUN_020480E4: ; 0x020480E4
+ push {r4, lr}
+ add r4, r0, #0x0
+ add r0, #0xf8
+ ldr r0, [r0, #0x0]
+ bl FUN_020239CC
+ add r1, r4, #0x0
+ add r1, #0x29
+ strb r0, [r1, #0x0]
+ add r0, r4, #0x0
+ add r0, #0xf8
+ ldr r0, [r0, #0x0]
+ bl FUN_0202398C
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ add r0, #0x3c
+ bl StringCopy
+ add r3, r4, #0x0
+ add r3, #0x28
+ add r4, #0x90
+ mov r2, #0x6
+_02048112:
+ ldmia r3!, {r0-r1}
+ stmia r4!, {r0-r1}
+ sub r2, r2, #0x1
+ bne _02048112
+ ldr r0, [r3, #0x0]
+ str r0, [r4, #0x0]
+ pop {r4, pc}
+
+ thumb_func_start FUN_02048120
+FUN_02048120: ; 0x02048120
+ push {r4, lr}
+ sub sp, #0x8
+ add r4, r0, #0x0
+ ldr r0, _02048158 ; =0x020F465C
+ bl FUN_0201E66C
+ ldr r0, _0204815C ; =0x020F4630
+ bl FUN_02016BBC
+ ldr r2, _02048160 ; =0x020F4640
+ add r0, r4, #0x0
+ mov r1, #0x3
+ mov r3, #0x0
+ bl FUN_02016C18
+ mov r0, #0x20
+ str r0, [sp, #0x0]
+ mov r0, #0xb
+ mov r3, #0x1a
+ str r0, [sp, #0x4]
+ mov r0, #0xe
+ mov r1, #0x6
+ mov r2, #0x0
+ lsl r3, r3, #0x4
+ bl FUN_02006930
+ add sp, #0x8
+ pop {r4, pc}
+ .balign 4
+_02048158: .word 0x020F465C
+_0204815C: .word 0x020F4630
+_02048160: .word 0x020F4640
+
+ thumb_func_start FUN_02048164
+FUN_02048164: ; 0x02048164
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ add r6, r1, #0x0
+ mov r0, #0xb
+ mov r1, #0x24
+ bl FUN_02016998
+ add r4, r0, #0x0
+ bne _0204817A
+ bl ErrorHandling
+_0204817A:
+ add r0, r4, #0x0
+ mov r1, #0x0
+ mov r2, #0x24
+ blx Call_FillMemWithValue
+ mov r0, #0x0
+ str r0, [r4, #0x0]
+ str r5, [r4, #0x4]
+ mov r0, #0xb
+ bl FUN_02016B94
+ str r0, [r4, #0x8]
+ bl FUN_02048120
+ mov r2, #0x52
+ mov r0, #0x1
+ mov r1, #0x1a
+ lsl r2, r2, #0x2
+ mov r3, #0xb
+ bl FUN_0200A86C
+ str r0, [r4, #0x1c]
+ mov r0, #0xb
+ bl FUN_0200AA80
+ str r0, [r4, #0x20]
+ add r1, r4, #0x0
+ ldr r0, [r4, #0x8]
+ ldr r2, _02048208 ; =0x020F4628
+ add r1, #0xc
+ bl FUN_02019150
+ add r0, r5, #0x0
+ bl FUN_020377AC
+ bl FUN_020238F4
+ add r2, r0, #0x0
+ ldr r0, [r4, #0x20]
+ mov r1, #0x0
+ bl FUN_0200ABC0
+ ldr r0, [r5, #0x1c]
+ ldr r1, [r0, #0x0]
+ ldr r0, _0204820C ; =0x0000019E
+ cmp r1, r0
+ bne _020481E6
+ mov r2, #0x0
+ add r0, r4, #0x0
+ mov r1, #0x4
+ add r3, r2, #0x0
+ bl FUN_020482F4
+ b _020481F2
+_020481E6:
+ mov r2, #0x0
+ add r0, r4, #0x0
+ mov r1, #0x3
+ add r3, r2, #0x0
+ bl FUN_020482F4
+_020481F2:
+ add r0, r4, #0x0
+ add r0, #0xc
+ bl FUN_020191D0
+ ldr r1, _02048210 ; =FUN_02048214
+ add r0, r6, #0x0
+ add r2, r4, #0x0
+ bl FUN_0204640C
+ pop {r4-r6, pc}
+ nop
+_02048208: .word 0x020F4628
+_0204820C: .word 0x0000019E
+_02048210: .word FUN_02048214
+
+ thumb_func_start FUN_02048214
+FUN_02048214: ; 0x02048214
+ push {r3-r4, lr}
+ sub sp, #0xc
+ bl FUN_0204652C
+ add r4, r0, #0x0
+ ldr r0, [r4, #0x0]
+ cmp r0, #0x4
+ bhi _020482EA
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02048230: ; jump table (using 16-bit offset)
+ .short _0204823A - _02048230 - 2; case 0
+ .short _02048258 - _02048230 - 2; case 1
+ .short _02048268 - _02048230 - 2; case 2
+ .short _02048298 - _02048230 - 2; case 3
+ .short _020482B2 - _02048230 - 2; case 4
+_0204823A:
+ mov r0, #0x8
+ str r0, [sp, #0x0]
+ mov r1, #0x1
+ str r1, [sp, #0x4]
+ mov r0, #0x20
+ str r0, [sp, #0x8]
+ mov r0, #0x3
+ mov r2, #0x2a
+ mov r3, #0x0
+ bl FUN_0200E1D0
+ ldr r0, [r4, #0x0]
+ add r0, r0, #0x1
+ str r0, [r4, #0x0]
+ b _020482EA
+_02048258:
+ bl FUN_0200E308
+ cmp r0, #0x0
+ beq _020482EA
+ ldr r0, [r4, #0x0]
+ add r0, r0, #0x1
+ str r0, [r4, #0x0]
+ b _020482EA
+_02048268:
+ ldr r0, _020482F0 ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #0x1
+ tst r0, r1
+ bne _02048278
+ mov r0, #0x2
+ tst r0, r1
+ beq _020482EA
+_02048278:
+ mov r0, #0x8
+ str r0, [sp, #0x0]
+ mov r0, #0x1
+ str r0, [sp, #0x4]
+ mov r0, #0x20
+ str r0, [sp, #0x8]
+ mov r0, #0x0
+ add r1, r0, #0x0
+ add r2, r0, #0x0
+ add r3, r0, #0x0
+ bl FUN_0200E1D0
+ ldr r0, [r4, #0x0]
+ add r0, r0, #0x1
+ str r0, [r4, #0x0]
+ b _020482EA
+_02048298:
+ bl FUN_0200E308
+ cmp r0, #0x0
+ beq _020482EA
+ add r0, r4, #0x0
+ add r0, #0xc
+ mov r1, #0x0
+ bl FUN_02019620
+ ldr r0, [r4, #0x0]
+ add r0, r0, #0x1
+ str r0, [r4, #0x0]
+ b _020482EA
+_020482B2:
+ add r0, r4, #0x0
+ add r0, #0xc
+ mov r1, #0x0
+ bl FUN_0200D0E0
+ add r0, r4, #0x0
+ add r0, #0xc
+ bl FUN_02019178
+ ldr r0, [r4, #0x20]
+ bl FUN_0200AB18
+ ldr r0, [r4, #0x1c]
+ bl FUN_0200A8B8
+ ldr r0, [r4, #0x8]
+ mov r1, #0x3
+ bl FUN_020178A0
+ ldr r0, [r4, #0x8]
+ bl FUN_02016A18
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ add sp, #0xc
+ mov r0, #0x1
+ pop {r3-r4, pc}
+_020482EA:
+ mov r0, #0x0
+ add sp, #0xc
+ pop {r3-r4, pc}
+ .balign 4
+_020482F0: .word 0x021C48B8
+
+ thumb_func_start FUN_020482F4
+FUN_020482F4: ; 0x020482F4
+ push {r4-r7, lr}
+ sub sp, #0x14
+ add r5, r0, #0x0
+ mov r0, #0x1
+ str r1, [sp, #0x10]
+ lsl r0, r0, #0xa
+ mov r1, #0xb
+ add r7, r3, #0x0
+ bl FUN_020219F4
+ add r6, r0, #0x0
+ mov r0, #0x1
+ lsl r0, r0, #0xa
+ mov r1, #0xb
+ bl FUN_020219F4
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0xc
+ mov r1, #0x0
+ bl FUN_02019620
+ ldr r0, [r5, #0x1c]
+ ldr r1, [sp, #0x10]
+ add r2, r6, #0x0
+ bl FUN_0200A8E0
+ ldr r0, [r5, #0x20]
+ add r1, r4, #0x0
+ add r2, r6, #0x0
+ bl FUN_0200B7B8
+ mov r0, #0x0
+ add r1, r4, #0x0
+ add r2, r0, #0x0
+ bl FUN_02002F08
+ add r3, r0, #0x0
+ str r7, [sp, #0x0]
+ mov r0, #0xff
+ str r0, [sp, #0x4]
+ ldr r0, _02048378 ; =0x000F0200
+ mov r1, #0x0
+ str r0, [sp, #0x8]
+ add r0, r5, #0x0
+ str r1, [sp, #0xc]
+ ldrb r5, [r5, #0x13]
+ add r0, #0xc
+ add r2, r4, #0x0
+ lsl r5, r5, #0x3
+ sub r3, r5, r3
+ lsl r3, r3, #0x18
+ lsr r3, r3, #0x19
+ sub r3, r3, #0x4
+ lsl r3, r3, #0x18
+ lsr r3, r3, #0x18
+ bl FUN_0201BDE0
+ add r0, r6, #0x0
+ bl FUN_02021A20
+ add r0, r4, #0x0
+ bl FUN_02021A20
+ add sp, #0x14
+ pop {r4-r7, pc}
+ .balign 4
+_02048378: .word 0x000F0200
+
+ thumb_func_start FUN_0204837C
+FUN_0204837C: ; 0x0204837C
+ push {r3-r7, lr}
+ sub sp, #0x18
+ add r5, r0, #0x0
+ bl FUN_02046528
+ add r6, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_02046530
+ add r4, r0, #0x0
+ ldr r0, [r4, #0x0]
+ cmp r0, #0x6
+ bhi _02048488
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_020483A2: ; jump table (using 16-bit offset)
+ .short _020483B0 - _020483A2 - 2; case 0
+ .short _020483E8 - _020483A2 - 2; case 1
+ .short _020483F8 - _020483A2 - 2; case 2
+ .short _0204840C - _020483A2 - 2; case 3
+ .short _02048434 - _020483A2 - 2; case 4
+ .short _02048442 - _020483A2 - 2; case 5
+ .short _02048482 - _020483A2 - 2; case 6
+_020483B0:
+ ldr r0, [r6, #0xc]
+ bl FUN_02034E30
+ add r7, r0, #0x0
+ bl FUN_02034DFC
+ add r1, sp, #0x4
+ str r0, [sp, #0x0]
+ bl FUN_02034EC4
+ add r0, r7, #0x0
+ bl FUN_02034DCC
+ add r1, r0, #0x0
+ ldr r0, [sp, #0x0]
+ bl FUN_02034E90
+ add r0, r5, #0x0
+ add r1, sp, #0x4
+ bl FUN_02049160
+ add r0, r6, #0x0
+ bl FUN_020637F0
+ ldr r0, [r4, #0x0]
+ add r0, r0, #0x1
+ str r0, [r4, #0x0]
+ b _02048488
+_020483E8:
+ mov r0, #0x0
+ mov r1, #0x14
+ bl FUN_020053CC
+ ldr r0, [r4, #0x0]
+ add r0, r0, #0x1
+ str r0, [r4, #0x0]
+ b _02048488
+_020483F8:
+ bl FUN_02005404
+ cmp r0, #0x0
+ bne _02048488
+ bl FUN_0204AB0C
+ ldr r0, [r4, #0x0]
+ add r0, r0, #0x1
+ str r0, [r4, #0x0]
+ b _02048488
+_0204840C:
+ mov r0, #0xf
+ mvn r0, r0
+ mov r1, #0x37
+ mov r2, #0x1
+ bl FUN_0200A274
+ mov r0, #0xf
+ mvn r0, r0
+ mov r1, #0x3f
+ mov r2, #0x2
+ bl FUN_0200A274
+ add r0, r6, #0x0
+ add r1, r5, #0x0
+ bl FUN_02048164
+ ldr r0, [r4, #0x0]
+ add r0, r0, #0x1
+ str r0, [r4, #0x0]
+ b _02048488
+_02048434:
+ add r0, r5, #0x0
+ bl FUN_0204AF84
+ ldr r0, [r4, #0x0]
+ add r0, r0, #0x1
+ str r0, [r4, #0x0]
+ b _02048488
+_02048442:
+ mov r0, #0x0
+ mov r1, #0x3f
+ mov r2, #0x3
+ bl FUN_0200A274
+ bl FUN_02034E8C
+ add r7, r0, #0x0
+ ldr r0, [r6, #0xc]
+ bl FUN_02034E30
+ bl FUN_02034DFC
+ cmp r7, r0
+ bne _0204846E
+ mov r2, #0x0
+ ldr r1, _02048490 ; =0x000007E4
+ add r0, r5, #0x0
+ add r3, r2, #0x0
+ bl FUN_02038CD8
+ b _0204847A
+_0204846E:
+ mov r2, #0x0
+ ldr r1, _02048494 ; =0x000007E5
+ add r0, r5, #0x0
+ add r3, r2, #0x0
+ bl FUN_02038CD8
+_0204847A:
+ ldr r0, [r4, #0x0]
+ add r0, r0, #0x1
+ str r0, [r4, #0x0]
+ b _02048488
+_02048482:
+ add sp, #0x18
+ mov r0, #0x1
+ pop {r3-r7, pc}
+_02048488:
+ mov r0, #0x0
+ add sp, #0x18
+ pop {r3-r7, pc}
+ nop
+_02048490: .word 0x000007E4
+_02048494: .word 0x000007E5
+
+ thumb_func_start FUN_02048498
+FUN_02048498: ; 0x02048498
+ ldr r3, _020484A0 ; =FUN_0204640C
+ ldr r1, _020484A4 ; =FUN_0204837C
+ mov r2, #0x0
+ bx r3
+ .balign 4
+_020484A0: .word FUN_0204640C
+_020484A4: .word FUN_0204837C
+
+ thumb_func_start FUN_020484A8
+FUN_020484A8: ; 0x020484A8
+ push {r3-r6, lr}
+ sub sp, #0x14
+ add r5, r0, #0x0
+ ldr r0, [r5, #0xc]
+ add r6, r1, #0x0
+ mov r1, #0xb
+ add r2, sp, #0x0
+ bl FUN_02022534
+ add r4, r0, #0x0
+ ldr r0, [sp, #0x0]
+ cmp r0, #0x1
+ bne _020484C6
+ cmp r6, #0x0
+ bne _020484CC
+_020484C6:
+ add r0, r4, #0x0
+ bl FUN_0202B03C
+_020484CC:
+ ldr r0, [r5, #0xc]
+ bl FUN_0206BB1C
+ add r6, r0, #0x0
+ add r0, sp, #0x4
+ bl FUN_020126B4
+ add r0, r4, #0x0
+ add r1, r6, #0x0
+ add r2, sp, #0x4
+ bl FUN_0202B050
+ ldr r0, [r5, #0xc]
+ add r1, r4, #0x0
+ bl FUN_02022540
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ add sp, #0x14
+ pop {r3-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_020484F8
+FUN_020484F8: ; 0x020484F8
+ push {r4-r7, lr}
+ sub sp, #0xc
+ add r4, r0, #0x0
+ bl FUN_02046528
+ add r6, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_0204652C
+ add r5, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_02046530
+ add r4, r0, #0x0
+ ldr r0, [r4, #0x0]
+ cmp r0, #0x9
+ bhi _02048554
+ add r1, r0, r0
+ add r1, pc
+ ldrh r1, [r1, #0x6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_02048526: ; jump table (using 16-bit offset)
+ .short _0204853A - _02048526 - 2; case 0
+ .short _0204854A - _02048526 - 2; case 1
+ .short _02048586 - _02048526 - 2; case 2
+ .short _020485AE - _02048526 - 2; case 3
+ .short _020485C0 - _02048526 - 2; case 4
+ .short _020485F6 - _02048526 - 2; case 5
+ .short _02048612 - _02048526 - 2; case 6
+ .short _02048624 - _02048526 - 2; case 7
+ .short _02048644 - _02048526 - 2; case 8
+ .short _02048666 - _02048526 - 2; case 9
+_0204853A:
+ add r0, r6, #0x0
+ add r1, r5, #0x4
+ bl FUN_02038814
+ ldr r0, [r4, #0x0]
+ add r0, r0, #0x1
+ str r0, [r4, #0x0]
+ b _02048688
+_0204854A:
+ add r0, r6, #0x0
+ bl FUN_0204647C
+ cmp r0, #0x0
+ beq _02048556
+_02048554:
+ b _02048688
+_02048556:
+ mov r1, #0x4
+ mov r0, #0x3
+ lsl r2, r1, #0xf
+ bl FUN_0201681C
+ add r0, r6, #0x0
+ add r1, r5, #0x0
+ bl FUN_02048764
+ mov r0, #0x8
+ str r0, [sp, #0x0]
+ mov r1, #0x1
+ str r1, [sp, #0x4]
+ mov r0, #0x20
+ str r0, [sp, #0x8]
+ mov r0, #0x3
+ add r2, r1, #0x0
+ mov r3, #0x0
+ bl FUN_0200E1D0
+ ldr r0, [r4, #0x0]
+ add r0, r0, #0x1
+ str r0, [r4, #0x0]
+ b _02048688
+_02048586:
+ bl FUN_0200E308
+ cmp r0, #0x0
+ beq _02048688
+ ldr r0, [r6, #0xc]
+ bl FUN_0202280C
+ cmp r0, #0x0
+ bne _020485A8
+ add r0, r6, #0x0
+ add r1, r5, #0x0
+ bl FUN_020487E4
+ ldr r0, [r4, #0x0]
+ add r0, r0, #0x1
+ str r0, [r4, #0x0]
+ b _02048688
+_020485A8:
+ mov r0, #0x7
+ str r0, [r4, #0x0]
+ b _02048688
+_020485AE:
+ add r0, r5, #0x0
+ bl FUN_02048838
+ cmp r0, #0x0
+ beq _02048688
+ ldr r0, [r4, #0x0]
+ add r0, r0, #0x1
+ str r0, [r4, #0x0]
+ b _02048688
+_020485C0:
+ ldr r0, [r6, #0xc]
+ bl FUN_0206BB1C
+ bl FUN_02085140
+ bl FUN_02022830
+ ldr r0, [r6, #0xc]
+ bl FUN_02022720
+ add r7, r0, #0x0
+ ldr r1, [r5, #0x0]
+ add r0, r6, #0x0
+ bl FUN_020484A8
+ add r0, r5, #0x0
+ bl FUN_02048848
+ add r0, r6, #0x0
+ add r1, r5, #0x0
+ add r2, r7, #0x0
+ bl FUN_02048864
+ ldr r0, [r4, #0x0]
+ add r0, r0, #0x1
+ str r0, [r4, #0x0]
+ b _02048688
+_020485F6:
+ add r0, r5, #0x0
+ bl FUN_02048838
+ cmp r0, #0x0
+ beq _02048688
+ ldr r0, _02048690 ; =0x0000061B
+ bl FUN_020054C8
+ mov r0, #0x12
+ str r0, [r5, #0x38]
+ ldr r0, [r4, #0x0]
+ add r0, r0, #0x1
+ str r0, [r4, #0x0]
+ b _02048688
+_02048612:
+ ldr r1, [r5, #0x38]
+ cmp r1, #0x0
+ beq _0204861E
+ sub r0, r1, #0x1
+ str r0, [r5, #0x38]
+ b _02048688
+_0204861E:
+ add r0, r0, #0x1
+ str r0, [r4, #0x0]
+ b _02048688
+_02048624:
+ mov r0, #0x8
+ str r0, [sp, #0x0]
+ mov r1, #0x0
+ mov r0, #0x1
+ str r0, [sp, #0x4]
+ mov r0, #0x20
+ str r0, [sp, #0x8]
+ mov r0, #0x3
+ add r2, r1, #0x0
+ add r3, r1, #0x0
+ bl FUN_0200E1D0
+ ldr r0, [r4, #0x0]
+ add r0, r0, #0x1
+ str r0, [r4, #0x0]
+ b _02048688
+_02048644:
+ bl FUN_0200E308
+ cmp r0, #0x0
+ beq _02048688
+ add r0, r6, #0x0
+ add r1, r5, #0x0
+ bl FUN_020488D4
+ add r5, #0x10
+ add r0, r6, #0x0
+ add r1, r5, #0x0
+ bl FUN_02038854
+ ldr r0, [r4, #0x0]
+ add r0, r0, #0x1
+ str r0, [r4, #0x0]
+ b _02048688
+_02048666:
+ add r0, r6, #0x0
+ bl FUN_0204647C
+ cmp r0, #0x0
+ bne _02048688
+ add r0, r5, #0x0
+ bl FUN_02016A18
+ mov r0, #0x4
+ bl FUN_020168D0
+ mov r0, #0x0
+ blx OS_ResetSystem
+ add sp, #0xc
+ mov r0, #0x1
+ pop {r4-r7, pc}
+_02048688:
+ mov r0, #0x0
+ add sp, #0xc
+ pop {r4-r7, pc}
+ nop
+_02048690: .word 0x0000061B
+
+ thumb_func_start FUN_02048694
+FUN_02048694: ; 0x02048694
+ push {r4-r7, lr}
+ sub sp, #0xc
+ add r7, r0, #0x0
+ bl FUN_02046528
+ add r4, r0, #0x0
+ mov r0, #0x20
+ mov r1, #0x3c
+ bl FUN_02016998
+ add r5, r0, #0x0
+ ldr r0, [r4, #0xc]
+ bl FUN_020462AC
+ add r6, r0, #0x0
+ ldr r0, [r4, #0xc]
+ bl FUN_020238F4
+ str r0, [sp, #0x0]
+ ldr r0, [r4, #0xc]
+ bl FUN_02034E30
+ bl FUN_02034DD0
+ str r0, [sp, #0x8]
+ ldr r0, [r4, #0xc]
+ bl FUN_02034E30
+ bl FUN_02034DCC
+ str r0, [sp, #0x4]
+ add r0, r6, #0x0
+ bl FUN_0205ED0C
+ str r0, [r5, #0x0]
+ ldr r0, [r4, #0xc]
+ bl FUN_020238F4
+ str r0, [r5, #0x4]
+ ldr r0, [r4, #0xc]
+ bl FUN_0206BB1C
+ str r0, [r5, #0x8]
+ ldr r0, [r4, #0xc]
+ bl FUN_02023918
+ str r0, [r5, #0xc]
+ ldr r0, [r4, #0xc]
+ bl FUN_020238F4
+ bl FUN_020239CC
+ str r0, [r5, #0x10]
+ add r0, r6, #0x0
+ bl FUN_0205ED0C
+ str r0, [r5, #0x14]
+ ldr r0, [r4, #0xc]
+ bl FUN_02024DA0
+ str r0, [r5, #0x18]
+ add r0, r6, #0x0
+ bl FUN_0205ED0C
+ cmp r0, #0x0
+ bne _0204871E
+ add r0, r4, #0x0
+ bl FUN_0204B328
+_0204871E:
+ ldr r0, [r4, #0xc]
+ bl FUN_0206BB1C
+ bl FUN_0204A25C
+ ldr r0, [sp, #0x8]
+ bl FUN_020377B0
+ ldr r0, [sp, #0x4]
+ bl FUN_020377C8
+ add r0, r6, #0x0
+ bl FUN_0205F154
+ add r0, r6, #0x0
+ bl FUN_0205ECFC
+ ldr r0, [sp, #0x0]
+ bl FUN_02023A78
+ ldr r0, [r4, #0xc]
+ bl FUN_02029FC8
+ mov r1, #0x2e
+ bl FUN_0202A0E8
+ ldr r1, _02048760 ; =FUN_020484F8
+ add r0, r7, #0x0
+ add r2, r5, #0x0
+ bl FUN_0204640C
+ add sp, #0xc
+ pop {r4-r7, pc}
+ .balign 4
+_02048760: .word FUN_020484F8
+
+ thumb_func_start FUN_02048764
+FUN_02048764: ; 0x02048764
+ push {r4, lr}
+ sub sp, #0x10
+ add r4, r0, #0x0
+ mov r0, #0x0
+ str r0, [r1, #0x2c]
+ str r0, [r1, #0x30]
+ add r1, #0x1c
+ add r0, r1, #0x0
+ bl FUN_0201901C
+ ldr r0, _020487D4 ; =0x020F46B0
+ bl FUN_0201E66C
+ ldr r2, _020487D8 ; =0x04000304
+ ldrh r1, [r2, #0x0]
+ lsr r0, r2, #0xb
+ orr r0, r1
+ strh r0, [r2, #0x0]
+ ldr r0, _020487DC ; =0x020F4684
+ bl FUN_02016BBC
+ mov r0, #0x3
+ mov r1, #0x0
+ bl FUN_02017FE4
+ ldr r0, [r4, #0x8]
+ ldr r2, _020487E0 ; =0x020F4694
+ mov r1, #0x3
+ mov r3, #0x0
+ bl FUN_02016C18
+ mov r1, #0x20
+ mov r0, #0x3
+ mov r2, #0x0
+ add r3, r1, #0x0
+ bl FUN_02017F18
+ mov r2, #0x0
+ str r2, [sp, #0x0]
+ mov r0, #0x20
+ str r0, [sp, #0x4]
+ str r0, [sp, #0x8]
+ mov r0, #0x11
+ str r0, [sp, #0xc]
+ ldr r0, [r4, #0x8]
+ mov r1, #0x3
+ add r3, r2, #0x0
+ bl FUN_02018540
+ ldr r0, [r4, #0x8]
+ mov r1, #0x3
+ bl FUN_02017CD0
+ add sp, #0x10
+ pop {r4, pc}
+ nop
+_020487D4: .word 0x020F46B0
+_020487D8: .word 0x04000304
+_020487DC: .word 0x020F4684
+_020487E0: .word 0x020F4694
+
+ thumb_func_start FUN_020487E4
+FUN_020487E4: ; 0x020487E4
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ ldr r0, [r5, #0xc]
+ add r4, r1, #0x0
+ bl LoadPlayerDataAddress
+ add r6, r0, #0x0
+ mov r0, #0x1a
+ mov r1, #0xc7
+ mov r2, #0xf
+ mov r3, #0x20
+ bl FUN_0200A738
+ str r0, [r4, #0x2c]
+ add r1, r4, #0x0
+ ldr r0, [r5, #0x8]
+ add r1, #0x1c
+ mov r2, #0x3
+ bl FUN_020545B8
+ add r0, r4, #0x0
+ add r0, #0x1c
+ add r1, r6, #0x0
+ bl FUN_02054608
+ add r0, r4, #0x0
+ ldr r1, [r4, #0x2c]
+ add r0, #0x1c
+ add r2, r6, #0x0
+ mov r3, #0x1
+ bl FUN_02054658
+ str r0, [r4, #0x34]
+ add r0, r4, #0x0
+ ldr r1, _02048834 ; =0x000003E2
+ add r0, #0x1c
+ bl FUN_0200D858
+ str r0, [r4, #0x30]
+ pop {r4-r6, pc}
+ .balign 4
+_02048834: .word 0x000003E2
+
+ thumb_func_start FUN_02048838
+FUN_02048838: ; 0x02048838
+ ldr r0, [r0, #0x34]
+ ldr r3, _02048844 ; =FUN_020546C8
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bx r3
+ nop
+_02048844: .word FUN_020546C8
+
+ thumb_func_start FUN_02048848
+FUN_02048848: ; 0x02048848
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r0, [r4, #0x2c]
+ bl FUN_02021A20
+ ldr r0, [r4, #0x30]
+ bl FUN_0200DBFC
+ add r4, #0x1c
+ add r0, r4, #0x0
+ bl FUN_0205464C
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02048864
+FUN_02048864: ; 0x02048864
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ add r6, r2, #0x0
+ mov r0, #0x1
+ mov r1, #0x1a
+ mov r2, #0xc7
+ mov r3, #0x4
+ bl FUN_0200A86C
+ add r7, r0, #0x0
+ cmp r6, #0x2
+ bne _020488AC
+ mov r0, #0x4
+ bl FUN_0200AA80
+ add r6, r0, #0x0
+ ldr r0, [r5, #0xc]
+ bl FUN_020238F4
+ add r2, r0, #0x0
+ add r0, r6, #0x0
+ mov r1, #0x0
+ bl FUN_0200ABC0
+ add r0, r6, #0x0
+ add r1, r7, #0x0
+ mov r2, #0x10
+ mov r3, #0x4
+ bl FUN_0200A9C4
+ str r0, [r4, #0x2c]
+ add r0, r6, #0x0
+ bl FUN_0200AB18
+ b _020488B4
+_020488AC:
+ mov r1, #0x12
+ bl FUN_0200A914
+ str r0, [r4, #0x2c]
+_020488B4:
+ add r0, r7, #0x0
+ bl FUN_0200A8B8
+ ldr r0, [r5, #0xc]
+ bl LoadPlayerDataAddress
+ add r2, r0, #0x0
+ add r0, r4, #0x0
+ ldr r1, [r4, #0x2c]
+ add r0, #0x1c
+ mov r3, #0x1
+ bl FUN_02054658
+ str r0, [r4, #0x34]
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_020488D4
+FUN_020488D4: ; 0x020488D4
+ push {r3-r5, lr}
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ ldr r0, [r4, #0x2c]
+ cmp r0, #0x0
+ beq _020488E4
+ bl FUN_02021A20
+_020488E4:
+ add r0, r4, #0x0
+ add r0, #0x1c
+ bl FUN_02019048
+ cmp r0, #0x0
+ beq _020488F8
+ add r4, #0x1c
+ add r0, r4, #0x0
+ bl FUN_02019178
+_020488F8:
+ ldr r0, [r5, #0x8]
+ mov r1, #0x3
+ bl FUN_020178A0
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_02048904
+FUN_02048904: ; 0x02048904
+ ldr r1, [r0, #0x1c]
+ ldr r2, _02048950 ; =0x0000014B
+ ldr r1, [r1, #0x0]
+ cmp r1, r2
+ bgt _0204892C
+ sub r2, r2, #0x5
+ sub r2, r1, r2
+ bmi _02048936
+ add r2, r2, r2
+ add r2, pc
+ ldrh r2, [r2, #0x6]
+ lsl r2, r2, #0x10
+ asr r2, r2, #0x10
+ add pc, r2
+_02048920: ; jump table (using 16-bit offset)
+ .short _02048932 - _02048920 - 2; case 0
+ .short _02048932 - _02048920 - 2; case 1
+ .short _02048932 - _02048920 - 2; case 2
+ .short _02048932 - _02048920 - 2; case 3
+ .short _02048932 - _02048920 - 2; case 4
+ .short _02048932 - _02048920 - 2; case 5
+_0204892C:
+ ldr r2, _02048954 ; =0x000001ED
+ cmp r1, r2
+ bne _02048936
+_02048932:
+ mov r2, #0x1
+ b _02048938
+_02048936:
+ mov r2, #0x0
+_02048938:
+ cmp r2, #0x0
+ bne _02048946
+ ldr r1, [r0, #0x6c]
+ cmp r1, #0x4
+ bne _02048946
+ mov r1, #0x0
+ str r1, [r0, #0x6c]
+_02048946:
+ cmp r2, #0x0
+ beq _0204894E
+ mov r1, #0x4
+ str r1, [r0, #0x6c]
+_0204894E:
+ bx lr
+ .balign 4
+_02048950: .word 0x0000014B
+_02048954: .word 0x000001ED
+
+ thumb_func_start FUN_02048958
+FUN_02048958: ; 0x02048958
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ ldr r0, [r5, #0xc]
+ add r4, r1, #0x0
+ bl FUN_02034E30
+ add r6, r0, #0x0
+ bl FUN_02034DC8
+ add r2, r0, #0x0
+ cmp r4, #0x0
+ beq _0204898C
+ ldr r3, [r5, #0x1c]
+ ldmia r3!, {r0-r1}
+ stmia r2!, {r0-r1}
+ ldmia r3!, {r0-r1}
+ stmia r2!, {r0-r1}
+ ldr r0, [r3, #0x0]
+ str r0, [r2, #0x0]
+ ldr r2, [r5, #0x1c]
+ ldmia r4!, {r0-r1}
+ stmia r2!, {r0-r1}
+ ldmia r4!, {r0-r1}
+ stmia r2!, {r0-r1}
+ ldr r0, [r4, #0x0]
+ str r0, [r2, #0x0]
+_0204898C:
+ ldr r1, [r5, #0x1c]
+ add r0, r5, #0x0
+ ldr r1, [r1, #0x0]
+ bl FUN_02034A60
+ ldr r0, [r5, #0x1c]
+ ldr r1, [r0, #0x4]
+ mov r0, #0x0
+ mvn r0, r0
+ cmp r1, r0
+ beq _020489DA
+ add r0, r5, #0x0
+ bl FUN_02034B00
+ ldrh r2, [r0, #0x0]
+ ldr r1, [r5, #0x1c]
+ str r2, [r1, #0x8]
+ ldrh r2, [r0, #0x2]
+ ldr r1, [r5, #0x1c]
+ str r2, [r1, #0xc]
+ ldrh r1, [r0, #0x6]
+ mov r0, #0x1
+ lsl r0, r0, #0x8
+ cmp r1, r0
+ bne _020489DA
+ add r0, r6, #0x0
+ bl FUN_02034DD0
+ add r4, r0, #0x0
+ add r0, r6, #0x0
+ bl FUN_02034DC4
+ add r2, r0, #0x0
+ ldmia r2!, {r0-r1}
+ stmia r4!, {r0-r1}
+ ldmia r2!, {r0-r1}
+ stmia r4!, {r0-r1}
+ ldr r0, [r2, #0x0]
+ str r0, [r4, #0x0]
+_020489DA:
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_020489DC
+FUN_020489DC: ; 0x020489DC
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r0, [r4, #0x6c]
+ cmp r0, #0x5
+ blt _020489EA
+ bl ErrorHandling
+_020489EA:
+ ldr r0, [r4, #0x70]
+ ldr r0, [r0, #0x0]
+ lsl r0, r0, #0x10
+ lsr r1, r0, #0x1c
+ ldr r0, _020489F8 ; =0x021C4918
+ strb r1, [r0, #0x5]
+ pop {r4, pc}
+ .balign 4
+_020489F8: .word 0x021C4918
+
+ thumb_func_start FUN_020489FC
+FUN_020489FC: ; 0x020489FC
+ push {r3-r7, lr}
+ sub sp, #0x8
+ add r5, r0, #0x0
+ ldr r0, [r5, #0x1c]
+ add r4, r1, #0x0
+ ldr r7, [r0, #0x0]
+ ldr r0, [r5, #0xc]
+ bl FUN_02034E30
+ str r0, [sp, #0x4]
+ add r0, r5, #0x0
+ bl FUN_0204AB44
+ add r0, r5, #0x0
+ bl FUN_02039564
+ cmp r4, #0x0
+ bne _02048A28
+ add r0, r5, #0x0
+ bl FUN_020636DC
+ b _02048A2E
+_02048A28:
+ add r0, r5, #0x0
+ bl FUN_02063684
+_02048A2E:
+ ldr r0, [r5, #0xc]
+ bl FUN_020462AC
+ bl FUN_0205F408
+ cmp r4, #0x0
+ bne _02048A42
+ add r0, r5, #0x0
+ bl FUN_0204B0F8
+_02048A42:
+ cmp r4, #0x0
+ bne _02048A50
+ ldr r0, [r5, #0xc]
+ bl FUN_02024ED8
+ bl FUN_02025484
+_02048A50:
+ ldr r0, [r5, #0xc]
+ bl FUN_020462AC
+ str r0, [sp, #0x0]
+ add r0, r5, #0x0
+ add r1, r7, #0x0
+ bl FUN_02034FE4
+ lsl r0, r0, #0x10
+ lsr r6, r0, #0x10
+ cmp r6, #0xe
+ bne _02048A72
+ ldr r0, [sp, #0x0]
+ bl FUN_0205F2C4
+ cmp r0, #0x1
+ beq _02048A80
+_02048A72:
+ cmp r6, #0x10
+ bne _02048A82
+ ldr r0, [sp, #0x0]
+ bl FUN_0205F294
+ cmp r0, #0x1
+ bne _02048A82
+_02048A80:
+ mov r6, #0x0
+_02048A82:
+ ldr r0, [sp, #0x4]
+ add r1, r6, #0x0
+ bl FUN_02034DF4
+ cmp r4, #0x0
+ beq _02048AA6
+ ldr r0, [sp, #0x4]
+ bl FUN_02034E10
+ add r6, r0, #0x0
+ add r0, r7, #0x0
+ bl FUN_0203484C
+ cmp r6, r0
+ beq _02048AB4
+ bl ErrorHandling
+ b _02048AB4
+_02048AA6:
+ add r0, r7, #0x0
+ bl FUN_0203484C
+ add r1, r0, #0x0
+ ldr r0, [sp, #0x4]
+ bl FUN_02034E18
+_02048AB4:
+ cmp r4, #0x0
+ bne _02048ACA
+ add r0, r7, #0x0
+ bl FUN_02034EF8
+ lsl r0, r0, #0x10
+ lsr r1, r0, #0x10
+ beq _02048ACA
+ ldr r0, [sp, #0x4]
+ bl FUN_02034E04
+_02048ACA:
+ add r0, r5, #0x0
+ mov r1, #0x2
+ bl FUN_0203989C
+ add r0, r5, #0x0
+ mov r1, #0x0
+ add r0, #0x74
+ strh r1, [r0, #0x0]
+ add r5, #0x76
+ strh r1, [r5, #0x0]
+ add sp, #0x8
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_02048AE4
+FUN_02048AE4: ; 0x02048AE4
+ push {r4-r5, lr}
+ sub sp, #0xc
+ add r5, r0, #0x0
+ mov r1, #0x40
+ mov r2, #0x5
+ bl FUN_02057380
+ str r0, [r5, #0x34]
+ ldr r0, [r5, #0xc]
+ bl FUN_020238F4
+ bl FUN_020239CC
+ add r4, r0, #0x0
+ ldr r0, [r5, #0xc]
+ bl FUN_02034E30
+ bl FUN_02034E20
+ ldr r3, [r5, #0x1c]
+ ldr r1, [r0, #0x4]
+ str r1, [sp, #0x0]
+ str r4, [sp, #0x4]
+ str r0, [sp, #0x8]
+ ldr r0, [r5, #0x34]
+ ldr r1, [r3, #0x8]
+ ldr r2, [r3, #0xc]
+ ldr r3, [r3, #0x10]
+ bl FUN_02055068
+ str r0, [r5, #0x38]
+ add r0, r5, #0x0
+ bl FUN_02034AC8
+ ldr r0, [r5, #0x34]
+ bl FUN_02058768
+ add sp, #0xc
+ pop {r4-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_02048B34
+FUN_02048B34: ; 0x02048B34
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl FUN_0204CC48
+ ldr r0, [r4, #0x38]
+ bl FUN_02055160
+ ldr r0, [r4, #0x34]
+ bl FUN_0205771C
+ ldr r0, [r4, #0x34]
+ bl FUN_020573AC
+ pop {r4, pc}
+
+ thumb_func_start FUN_02048B50
+FUN_02048B50: ; 0x02048B50
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ mov r1, #0x40
+ mov r2, #0x5
+ bl FUN_02057380
+ str r0, [r5, #0x34]
+ add r0, r5, #0x0
+ bl FUN_02034E60
+ ldr r0, [r5, #0xc]
+ bl FUN_02034E30
+ bl FUN_02034E20
+ add r4, r0, #0x0
+ ldr r0, [r5, #0xc]
+ bl FUN_020238F4
+ bl FUN_020239CC
+ add r2, r0, #0x0
+ ldr r0, [r5, #0x34]
+ add r1, r4, #0x0
+ bl FUN_020550A4
+ str r0, [r5, #0x38]
+ ldr r0, [r5, #0x34]
+ bl FUN_02058768
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_02048B90
+FUN_02048B90: ; 0x02048B90
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl FUN_02048904
+ ldr r0, [r4, #0x58]
+ cmp r0, #0x0
+ beq _02048BA2
+ bl ErrorHandling
+_02048BA2:
+ ldr r0, [r4, #0x1c]
+ ldr r1, [r4, #0x28]
+ ldr r0, [r0, #0x0]
+ bl FUN_020344AC
+ ldr r0, [r4, #0xc]
+ bl FUN_020462AC
+ mov r1, #0x3
+ bl FUN_0205F524
+ cmp r0, #0x0
+ beq _02048BC2
+ ldr r0, [r4, #0x28]
+ bl FUN_020346CC
+_02048BC2:
+ ldr r0, [r4, #0xc]
+ bl FUN_020462AC
+ mov r1, #0x2
+ bl FUN_0205F524
+ cmp r0, #0x0
+ bne _02048BD8
+ ldr r0, [r4, #0x28]
+ bl FUN_02034678
+_02048BD8:
+ ldr r0, [r4, #0x6c]
+ cmp r0, #0x5
+ blt _02048BE2
+ bl ErrorHandling
+_02048BE2:
+ ldr r0, [r4, #0x6c]
+ ldr r1, _02048C28 ; =0x020F46E0
+ lsl r0, r0, #0x3
+ add r0, r1, r0
+ str r0, [r4, #0x70]
+ ldr r0, [r0, #0x0]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x1c
+ str r0, [r4, #0x5c]
+ ldr r0, [r4, #0x70]
+ ldr r0, [r0, #0x0]
+ lsl r0, r0, #0x1c
+ lsr r0, r0, #0x1c
+ str r0, [r4, #0x18]
+ ldr r1, [r4, #0x70]
+ add r0, r4, #0x0
+ ldr r1, [r1, #0x0]
+ add r0, #0x58
+ lsl r1, r1, #0x14
+ lsr r1, r1, #0x1c
+ bl FUN_0204A690
+ ldr r0, [r4, #0x70]
+ ldr r1, [r0, #0x0]
+ lsl r0, r1, #0xc
+ lsr r0, r0, #0x1c
+ beq _02048C24
+ lsr r1, r1, #0x18
+ lsl r1, r1, #0x18
+ add r0, r4, #0x0
+ lsr r1, r1, #0x18
+ bl FUN_0204A368
+_02048C24:
+ pop {r4, pc}
+ nop
+_02048C28: .word 0x020F46E0
+
+ thumb_func_start FUN_02048C2C
+FUN_02048C2C: ; 0x02048C2C
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r0, [r4, #0x58]
+ cmp r0, #0x0
+ bne _02048C3A
+ bl ErrorHandling
+_02048C3A:
+ mov r0, #0x0
+ str r0, [r4, #0x58]
+ mov r0, #0x5
+ str r0, [r4, #0x18]
+ ldr r0, [r4, #0x70]
+ ldr r0, [r0, #0x0]
+ lsl r0, r0, #0xc
+ lsr r0, r0, #0x1c
+ beq _02048C52
+ add r0, r4, #0x0
+ bl FUN_0204A390
+_02048C52:
+ mov r0, #0x0
+ str r0, [r4, #0x70]
+ pop {r4, pc}
+
+ thumb_func_start FUN_02048C58
+FUN_02048C58: ; 0x02048C58
+ push {r4, lr}
+ add r4, r0, #0x0
+ add r0, #0x98
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ beq _02048C7E
+ ldr r0, [r4, #0x1c]
+ mov r1, #0xb
+ ldr r0, [r0, #0x0]
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ bl FUN_02028FA4
+ add r4, #0x98
+ add r1, r0, #0x0
+ ldr r0, [r4, #0x0]
+ mov r2, #0x0
+ bl FUN_02028AD4
+_02048C7E:
+ pop {r4, pc}
+
+ thumb_func_start FUN_02048C80
+FUN_02048C80: ; 0x02048C80
+ push {r4, lr}
+ add r4, r0, #0x0
+ add r0, #0x98
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ beq _02048CAE
+ ldr r0, [r4, #0xc]
+ bl FUN_02034E30
+ bl FUN_02034DD0
+ ldr r0, [r0, #0x0]
+ mov r1, #0xb
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ bl FUN_02028FA4
+ add r4, #0x98
+ add r1, r0, #0x0
+ ldr r0, [r4, #0x0]
+ mov r2, #0x0
+ bl FUN_02028AD4
+_02048CAE:
+ pop {r4, pc}
+
+ thumb_func_start FUN_02048CB0
+FUN_02048CB0: ; 0x02048CB0
+ push {r4-r6, lr}
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ ldr r0, [r4, #0x38]
+ bl FUN_0205532C
+ add r6, r0, #0x0
+ ldr r0, [r4, #0x38]
+ bl FUN_02055320
+ ldr r1, [r4, #0x1c]
+ ldr r1, [r1, #0x0]
+ str r1, [r5, #0x0]
+ mov r1, #0x0
+ mvn r1, r1
+ str r1, [r5, #0x4]
+ str r0, [r5, #0x8]
+ str r6, [r5, #0xc]
+ mov r0, #0x1
+ str r0, [r5, #0x10]
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_02048CDC
+FUN_02048CDC: ; 0x02048CDC
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r0, [r4, #0x1c]
+ ldr r0, [r0, #0x0]
+ bl FUN_020349E4
+ cmp r0, #0x0
+ beq _02048CFE
+ ldr r1, [r4, #0x1c]
+ ldr r0, [r1, #0x8]
+ cmp r0, #0x7
+ bne _02048CFE
+ ldr r0, [r1, #0xc]
+ cmp r0, #0x6
+ bne _02048CFE
+ mov r0, #0x1
+ pop {r4, pc}
+_02048CFE:
+ mov r0, #0x0
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02048D04
+FUN_02048D04: ; 0x02048D04
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ ldr r0, [r5, #0xc]
+ bl FUN_02034E30
+ bl FUN_02034DD0
+ add r4, r0, #0x0
+ ldr r0, [r5, #0xc]
+ bl FUN_020462AC
+ ldr r0, [r5, #0x1c]
+ ldr r0, [r0, #0x0]
+ str r0, [r4, #0x0]
+ mov r0, #0x0
+ mvn r0, r0
+ str r0, [r4, #0x4]
+ mov r0, #0x8
+ str r0, [r4, #0x8]
+ mov r0, #0x2
+ str r0, [r4, #0xc]
+ mov r0, #0x1
+ str r0, [r4, #0x10]
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_02048D34
+FUN_02048D34: ; 0x02048D34
+ push {r4-r6, lr}
+ add r6, r0, #0x0
+ bl FUN_02046528
+ add r5, r0, #0x0
+ add r0, r6, #0x0
+ bl FUN_02046530
+ add r4, r0, #0x0
+ ldr r0, [r4, #0x0]
+ cmp r0, #0x0
+ beq _02048D56
+ cmp r0, #0x1
+ beq _02048D7A
+ cmp r0, #0x2
+ beq _02048D88
+ b _02048D8C
+_02048D56:
+ ldr r1, [r5, #0x1c]
+ add r0, r5, #0x0
+ bl FUN_02048958
+ add r0, r5, #0x0
+ bl FUN_02048B90
+ add r0, r5, #0x0
+ mov r1, #0x0
+ bl FUN_020489FC
+ add r0, r5, #0x0
+ bl FUN_02048AE4
+ ldr r0, [r4, #0x0]
+ add r0, r0, #0x1
+ str r0, [r4, #0x0]
+ b _02048D8C
+_02048D7A:
+ add r0, r6, #0x0
+ bl FUN_0204B0E8
+ ldr r0, [r4, #0x0]
+ add r0, r0, #0x1
+ str r0, [r4, #0x0]
+ b _02048D8C
+_02048D88:
+ mov r0, #0x1
+ pop {r4-r6, pc}
+_02048D8C:
+ mov r0, #0x0
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_02048D90
+FUN_02048D90: ; 0x02048D90
+ push {r4, lr}
+ add r4, r0, #0x0
+ mov r1, #0x0
+ str r1, [r4, #0x6c]
+ bl FUN_02039874
+ ldr r1, _02048DA8 ; =FUN_02048D34
+ add r0, r4, #0x0
+ mov r2, #0x0
+ bl FUN_020463CC
+ pop {r4, pc}
+ .balign 4
+_02048DA8: .word FUN_02048D34
+
+ thumb_func_start FUN_02048DAC
+FUN_02048DAC: ; 0x02048DAC
+ push {r3-r7, lr}
+ add r7, r0, #0x0
+ bl FUN_02046528
+ add r4, r0, #0x0
+ ldr r0, [r4, #0xc]
+ bl FUN_020462AC
+ add r6, r0, #0x0
+ add r0, r7, #0x0
+ bl FUN_02046530
+ add r5, r0, #0x0
+ ldr r0, [r5, #0x0]
+ cmp r0, #0x4
+ bhi _02048EC2
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02048DD8: ; jump table (using 16-bit offset)
+ .short _02048DE2 - _02048DD8 - 2; case 0
+ .short _02048E10 - _02048DD8 - 2; case 1
+ .short _02048EA4 - _02048DD8 - 2; case 2
+ .short _02048EB0 - _02048DD8 - 2; case 3
+ .short _02048EB4 - _02048DD8 - 2; case 4
+_02048DE2:
+ ldr r0, [r4, #0xc]
+ bl FUN_02025B94
+ add r0, r6, #0x0
+ mov r1, #0x2
+ bl FUN_0205F2D4
+ add r7, r0, #0x0
+ ldr r0, [r4, #0xc]
+ bl FUN_020289A4
+ add r1, r7, #0x0
+ bl FUN_02028A20
+ cmp r0, #0x0
+ beq _02048E10
+ add r0, r4, #0x0
+ mov r1, #0x0
+ bl FUN_02037944
+ mov r0, #0x4
+ str r0, [r5, #0x0]
+ b _02048EC2
+_02048E10:
+ add r0, r6, #0x0
+ mov r1, #0x2
+ bl FUN_0205F2D4
+ add r7, r0, #0x0
+ ldr r0, [r4, #0xc]
+ bl FUN_020289A4
+ add r1, r7, #0x0
+ bl FUN_020289B0
+ add r1, r4, #0x0
+ add r1, #0x98
+ str r0, [r1, #0x0]
+ add r0, r6, #0x0
+ bl FUN_0205F174
+ cmp r0, #0x0
+ beq _02048E78
+ ldr r0, [r4, #0xc]
+ bl FUN_02034E30
+ add r7, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_02048CDC
+ cmp r0, #0x0
+ beq _02048E4E
+ add r0, r4, #0x0
+ bl FUN_02048D04
+_02048E4E:
+ add r0, r6, #0x0
+ bl FUN_0205F164
+ add r0, r7, #0x0
+ bl FUN_02034DD0
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_02048958
+ add r0, r4, #0x0
+ bl FUN_02048B90
+ add r0, r4, #0x0
+ mov r1, #0x0
+ bl FUN_020489FC
+ add r0, r4, #0x0
+ bl FUN_02048AE4
+ b _02048E92
+_02048E78:
+ add r0, r4, #0x0
+ mov r1, #0x0
+ bl FUN_02048958
+ add r0, r4, #0x0
+ bl FUN_02048B90
+ add r0, r4, #0x0
+ bl FUN_0204B0F8
+ add r0, r4, #0x0
+ bl FUN_02048B50
+_02048E92:
+ add r0, r4, #0x0
+ bl FUN_02048C58
+ add r0, r4, #0x0
+ bl FUN_02063808
+ mov r0, #0x2
+ str r0, [r5, #0x0]
+ b _02048EC2
+_02048EA4:
+ add r0, r7, #0x0
+ bl FUN_0204B0E8
+ mov r0, #0x3
+ str r0, [r5, #0x0]
+ b _02048EC2
+_02048EB0:
+ mov r0, #0x1
+ pop {r3-r7, pc}
+_02048EB4:
+ add r0, r4, #0x0
+ bl FUN_0204647C
+ cmp r0, #0x0
+ bne _02048EC2
+ mov r0, #0x1
+ str r0, [r5, #0x0]
+_02048EC2:
+ mov r0, #0x0
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_02048EC8
+FUN_02048EC8: ; 0x02048EC8
+ ldr r3, _02048ED4 ; =FUN_020463CC
+ mov r2, #0x0
+ str r2, [r0, #0x6c]
+ ldr r1, _02048ED8 ; =FUN_02048DAC
+ bx r3
+ nop
+_02048ED4: .word FUN_020463CC
+_02048ED8: .word FUN_02048DAC
+
+ thumb_func_start FUN_02048EDC
+FUN_02048EDC: ; 0x02048EDC
+ push {r3-r7, lr}
+ add r7, r0, #0x0
+ bl FUN_02046528
+ add r4, r0, #0x0
+ add r0, r7, #0x0
+ bl FUN_0204652C
+ add r6, r0, #0x0
+ ldr r0, [r4, #0xc]
+ bl FUN_020462AC
+ str r0, [sp, #0x0]
+ add r0, r7, #0x0
+ bl FUN_02046530
+ add r5, r0, #0x0
+ ldr r0, [r5, #0x0]
+ cmp r0, #0x5
+ bhi _02048FC4
+ add r1, r0, r0
+ add r1, pc
+ ldrh r1, [r1, #0x6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_02048F10: ; jump table (using 16-bit offset)
+ .short _02048F1C - _02048F10 - 2; case 0
+ .short _02048F54 - _02048F10 - 2; case 1
+ .short _02048F7E - _02048F10 - 2; case 2
+ .short _02048F9A - _02048F10 - 2; case 3
+ .short _02048FAE - _02048F10 - 2; case 4
+ .short _02048FBA - _02048F10 - 2; case 5
+_02048F1C:
+ mov r0, #0x0
+ add r1, r0, #0x0
+ bl FUN_0200E3A0
+ mov r0, #0x1
+ mov r1, #0x0
+ bl FUN_0200E3A0
+ ldr r0, [r4, #0xc]
+ bl FUN_02025B94
+ ldr r0, [sp, #0x0]
+ mov r1, #0x2
+ bl FUN_0205F2D4
+ add r6, r0, #0x0
+ ldr r0, [r4, #0xc]
+ bl FUN_020289A4
+ add r1, r6, #0x0
+ bl FUN_020289B0
+ add r4, #0x98
+ str r0, [r4, #0x0]
+ ldr r0, [r5, #0x0]
+ add r0, r0, #0x1
+ str r0, [r5, #0x0]
+ b _02048FC4
+_02048F54:
+ add r0, r4, #0x0
+ add r1, r6, #0x4
+ bl FUN_02048958
+ add r0, r4, #0x0
+ bl FUN_02048B90
+ add r0, r4, #0x0
+ mov r1, #0x0
+ bl FUN_020489FC
+ add r0, r4, #0x0
+ bl FUN_02048AE4
+ add r0, r4, #0x0
+ bl FUN_02048C80
+ ldr r0, [r5, #0x0]
+ add r0, r0, #0x1
+ str r0, [r5, #0x0]
+ b _02048FC4
+_02048F7E:
+ add r0, r4, #0x0
+ bl FUN_020520AC
+ str r0, [r4, #0x78]
+ bl FUN_02052EE8
+ str r0, [r4, #0x7c]
+ add r0, r7, #0x0
+ bl FUN_0204AF84
+ ldr r0, [r5, #0x0]
+ add r0, r0, #0x1
+ str r0, [r5, #0x0]
+ b _02048FC4
+_02048F9A:
+ mov r1, #0x0
+ str r1, [r6, #0x0]
+ add r0, r4, #0x0
+ add r2, r6, #0x0
+ bl FUN_021E7750
+ ldr r0, [r5, #0x0]
+ add r0, r0, #0x1
+ str r0, [r5, #0x0]
+ b _02048FC4
+_02048FAE:
+ ldr r1, [r6, #0x0]
+ cmp r1, #0x0
+ beq _02048FC4
+ add r0, r0, #0x1
+ str r0, [r5, #0x0]
+ b _02048FC4
+_02048FBA:
+ add r0, r6, #0x0
+ bl FUN_02016A18
+ mov r0, #0x1
+ pop {r3-r7, pc}
+_02048FC4:
+ mov r0, #0x0
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_02048FC8
+FUN_02048FC8: ; 0x02048FC8
+ push {r3-r5, lr}
+ add r4, r0, #0x0
+ ldr r0, [r4, #0x1c]
+ ldr r0, [r0, #0x0]
+ bl FUN_02034998
+ cmp r0, #0x0
+ bne _02049000
+ add r0, r4, #0x0
+ bl FUN_02048CDC
+ cmp r0, #0x0
+ beq _02048FF8
+ ldr r0, [r4, #0xc]
+ bl FUN_020462AC
+ add r5, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_02048D04
+ add r0, r5, #0x0
+ bl FUN_0205F154
+ b _02049000
+_02048FF8:
+ add r0, r4, #0x0
+ bl FUN_02048EC8
+ pop {r3-r5, pc}
+_02049000:
+ mov r0, #0xb
+ mov r1, #0x18
+ bl FUN_020169D8
+ add r2, r0, #0x0
+ mov r1, #0x0
+ ldr r0, _02049030 ; =0x000001D2
+ str r1, [r2, #0x0]
+ str r0, [r2, #0x4]
+ sub r0, r1, #0x1
+ str r0, [r2, #0x8]
+ mov r0, #0x8
+ str r0, [r2, #0xc]
+ mov r0, #0xe
+ str r0, [r2, #0x10]
+ str r1, [r2, #0x14]
+ mov r0, #0x2
+ str r0, [r4, #0x6c]
+ ldr r1, _02049034 ; =FUN_02048EDC
+ add r0, r4, #0x0
+ bl FUN_020463CC
+ pop {r3-r5, pc}
+ nop
+_02049030: .word 0x000001D2
+_02049034: .word FUN_02048EDC
+
+ thumb_func_start FUN_02049038
+FUN_02049038: ; 0x02049038
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ bl FUN_02046528
+ add r6, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_0204652C
+ add r4, r0, #0x0
+ ldr r1, [r4, #0x0]
+ cmp r1, #0x3
+ bhi _020490B6
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #0x6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_0204905C: ; jump table (using 16-bit offset)
+ .short _02049064 - _0204905C - 2; case 0
+ .short _02049080 - _0204905C - 2; case 1
+ .short _02049090 - _0204905C - 2; case 2
+ .short _020490AE - _0204905C - 2; case 3
+_02049064:
+ ldr r0, _020490BC ; =0x00000603
+ bl FUN_020054C8
+ ldr r1, [r4, #0x4]
+ add r0, r6, #0x0
+ bl FUN_0204AD60
+ add r0, r5, #0x0
+ bl FUN_0204B090
+ ldr r0, [r4, #0x0]
+ add r0, r0, #0x1
+ str r0, [r4, #0x0]
+ b _020490B6
+_02049080:
+ add r0, r5, #0x0
+ add r1, r4, #0x4
+ bl FUN_02049160
+ ldr r0, [r4, #0x0]
+ add r0, r0, #0x1
+ str r0, [r4, #0x0]
+ b _020490B6
+_02049090:
+ bl FUN_02005404
+ cmp r0, #0x0
+ bne _020490B6
+ ldr r1, [r4, #0x4]
+ add r0, r6, #0x0
+ bl FUN_0204AD8C
+ add r0, r5, #0x0
+ bl FUN_0204B0E8
+ ldr r0, [r4, #0x0]
+ add r0, r0, #0x1
+ str r0, [r4, #0x0]
+ b _020490B6
+_020490AE:
+ bl FUN_02016A18
+ mov r0, #0x1
+ pop {r4-r6, pc}
+_020490B6:
+ mov r0, #0x0
+ pop {r4-r6, pc}
+ nop
+_020490BC: .word 0x00000603
+
+ thumb_func_start FUN_020490C0
+FUN_020490C0: ; 0x020490C0
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ mov r0, #0xb
+ mov r1, #0x1c
+ bl FUN_020169D8
+ add r2, r0, #0x0
+ mov r0, #0x0
+ str r0, [r2, #0x0]
+ ldmia r4!, {r0-r1}
+ add r3, r2, #0x4
+ stmia r3!, {r0-r1}
+ ldmia r4!, {r0-r1}
+ stmia r3!, {r0-r1}
+ ldr r0, [r4, #0x0]
+ ldr r1, _020490EC ; =FUN_02049038
+ str r0, [r3, #0x0]
+ add r0, r5, #0x0
+ bl FUN_0204640C
+ pop {r3-r5, pc}
+ .balign 4
+_020490EC: .word FUN_02049038
+
+ thumb_func_start FUN_020490F0
+FUN_020490F0: ; 0x020490F0
+ push {r3-r5, lr}
+ add r4, r0, #0x0
+ bl FUN_02046528
+ add r5, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_0204652C
+ add r4, r0, #0x0
+ ldr r0, [r4, #0x0]
+ cmp r0, #0x0
+ beq _02049112
+ cmp r0, #0x1
+ beq _02049126
+ cmp r0, #0x2
+ beq _0204914C
+ b _0204915C
+_02049112:
+ add r0, r5, #0x0
+ bl FUN_02048B34
+ add r0, r5, #0x0
+ bl FUN_02048C2C
+ ldr r0, [r4, #0x0]
+ add r0, r0, #0x1
+ str r0, [r4, #0x0]
+ b _0204915C
+_02049126:
+ add r0, r5, #0x0
+ add r1, r4, #0x4
+ bl FUN_02048958
+ add r0, r5, #0x0
+ bl FUN_02048B90
+ add r0, r5, #0x0
+ mov r1, #0x0
+ bl FUN_020489FC
+ add r5, #0x90
+ ldr r0, [r5, #0x0]
+ bl FUN_0205DD40
+ ldr r0, [r4, #0x0]
+ add r0, r0, #0x1
+ str r0, [r4, #0x0]
+ b _0204915C
+_0204914C:
+ add r0, r5, #0x0
+ bl FUN_02048AE4
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ mov r0, #0x1
+ pop {r3-r5, pc}
+_0204915C:
+ mov r0, #0x0
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_02049160
+FUN_02049160: ; 0x02049160
+ push {r3-r7, lr}
+ add r6, r0, #0x0
+ add r5, r1, #0x0
+ bl FUN_02046528
+ add r7, r0, #0x0
+ mov r0, #0xb
+ mov r1, #0x18
+ bl FUN_020169D8
+ add r4, r0, #0x0
+ add r0, r7, #0x0
+ bl FUN_0203739C
+ cmp r0, #0x0
+ beq _02049186
+ bl ErrorHandling
+ pop {r3-r7, pc}
+_02049186:
+ mov r0, #0x0
+ str r0, [r4, #0x0]
+ ldmia r5!, {r0-r1}
+ add r2, r4, #0x4
+ stmia r2!, {r0-r1}
+ ldmia r5!, {r0-r1}
+ stmia r2!, {r0-r1}
+ ldr r0, [r5, #0x0]
+ ldr r1, _020491A4 ; =FUN_020490F0
+ str r0, [r2, #0x0]
+ add r0, r6, #0x0
+ add r2, r4, #0x0
+ bl FUN_0204640C
+ pop {r3-r7, pc}
+ .balign 4
+_020491A4: .word FUN_020490F0
+
+ thumb_func_start FUN_020491A8
+FUN_020491A8: ; 0x020491A8
+ push {lr}
+ sub sp, #0x14
+ str r1, [sp, #0x0]
+ ldr r1, [sp, #0x18]
+ str r2, [sp, #0x4]
+ str r1, [sp, #0xc]
+ ldr r1, [sp, #0x1c]
+ str r3, [sp, #0x8]
+ str r1, [sp, #0x10]
+ add r1, sp, #0x0
+ bl FUN_02049160
+ add sp, #0x14
+ pop {pc}
+
+ thumb_func_start FUN_020491C4
+FUN_020491C4: ; 0x020491C4
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ bl FUN_02046528
+ add r6, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_0204652C
+ add r4, r0, #0x0
+ ldr r1, [r4, #0x0]
+ cmp r1, #0x3
+ bhi _0204923C
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #0x6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_020491E8: ; jump table (using 16-bit offset)
+ .short _020491F0 - _020491E8 - 2; case 0
+ .short _02049206 - _020491E8 - 2; case 1
+ .short _02049216 - _020491E8 - 2; case 2
+ .short _02049234 - _020491E8 - 2; case 3
+_020491F0:
+ ldr r1, [r4, #0x4]
+ add r0, r6, #0x0
+ bl FUN_0204AD60
+ add r0, r5, #0x0
+ bl FUN_0204AF3C
+ ldr r0, [r4, #0x0]
+ add r0, r0, #0x1
+ str r0, [r4, #0x0]
+ b _0204923C
+_02049206:
+ add r0, r5, #0x0
+ add r1, r4, #0x4
+ bl FUN_02049160
+ ldr r0, [r4, #0x0]
+ add r0, r0, #0x1
+ str r0, [r4, #0x0]
+ b _0204923C
+_02049216:
+ bl FUN_02005404
+ cmp r0, #0x0
+ bne _0204923C
+ ldr r1, [r4, #0x4]
+ add r0, r6, #0x0
+ bl FUN_0204AD8C
+ add r0, r5, #0x0
+ bl FUN_0204AF84
+ ldr r0, [r4, #0x0]
+ add r0, r0, #0x1
+ str r0, [r4, #0x0]
+ b _0204923C
+_02049234:
+ bl FUN_02016A18
+ mov r0, #0x1
+ pop {r4-r6, pc}
+_0204923C:
+ mov r0, #0x0
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_02049240
+FUN_02049240: ; 0x02049240
+ push {r3-r7, lr}
+ add r7, r0, #0x0
+ add r5, r1, #0x0
+ mov r0, #0xb
+ mov r1, #0x18
+ add r4, r2, #0x0
+ add r6, r3, #0x0
+ bl FUN_020169D8
+ add r2, r0, #0x0
+ mov r0, #0x0
+ str r0, [r2, #0x0]
+ str r5, [r2, #0x4]
+ str r4, [r2, #0x8]
+ ldr r0, [sp, #0x18]
+ str r6, [r2, #0xc]
+ str r0, [r2, #0x10]
+ ldr r0, [sp, #0x1c]
+ ldr r1, _02049270 ; =FUN_020491C4
+ str r0, [r2, #0x14]
+ add r0, r7, #0x0
+ bl FUN_0204640C
+ pop {r3-r7, pc}
+ .balign 4
+_02049270: .word FUN_020491C4
+
+ thumb_func_start FUN_02049274
+FUN_02049274: ; 0x02049274
+ push {r4-r5, lr}
+ sub sp, #0x14
+ add r4, r0, #0x0
+ ldr r0, [sp, #0x20]
+ str r1, [sp, #0x0]
+ str r0, [sp, #0xc]
+ ldr r0, [sp, #0x24]
+ mov r1, #0x20
+ str r0, [sp, #0x10]
+ mov r0, #0xb
+ str r2, [sp, #0x4]
+ str r3, [sp, #0x8]
+ bl FUN_020169D8
+ add r2, r0, #0x0
+ mov r0, #0x0
+ str r0, [r2, #0x0]
+ add r3, r2, #0x0
+ add r5, sp, #0x0
+ str r0, [r2, #0x4]
+ ldmia r5!, {r0-r1}
+ add r3, #0x8
+ stmia r3!, {r0-r1}
+ ldmia r5!, {r0-r1}
+ stmia r3!, {r0-r1}
+ ldr r0, [r5, #0x0]
+ ldr r1, _020492B8 ; =FUN_02049304
+ str r0, [r3, #0x0]
+ add r0, r4, #0x0
+ bl FUN_020463CC
+ add sp, #0x14
+ pop {r4-r5, pc}
+ nop
+_020492B8: .word FUN_02049304
+
+ thumb_func_start FUN_020492BC
+FUN_020492BC: ; 0x020492BC
+ push {r4-r5, lr}
+ sub sp, #0x14
+ add r4, r0, #0x0
+ ldr r0, [sp, #0x20]
+ str r1, [sp, #0x0]
+ str r0, [sp, #0xc]
+ ldr r0, [sp, #0x24]
+ mov r1, #0x20
+ str r0, [sp, #0x10]
+ mov r0, #0xb
+ str r2, [sp, #0x4]
+ str r3, [sp, #0x8]
+ bl FUN_020169D8
+ add r2, r0, #0x0
+ mov r0, #0x0
+ str r0, [r2, #0x0]
+ add r3, r2, #0x0
+ add r5, sp, #0x0
+ str r0, [r2, #0x4]
+ ldmia r5!, {r0-r1}
+ add r3, #0x8
+ stmia r3!, {r0-r1}
+ ldmia r5!, {r0-r1}
+ stmia r3!, {r0-r1}
+ ldr r0, [r5, #0x0]
+ ldr r1, _02049300 ; =FUN_02049304
+ str r0, [r3, #0x0]
+ add r0, r4, #0x0
+ bl FUN_020463EC
+ add sp, #0x14
+ pop {r4-r5, pc}
+ nop
+_02049300: .word FUN_02049304
+
+ thumb_func_start FUN_02049304
+FUN_02049304: ; 0x02049304
+ push {r3-r7, lr}
+ add r7, r0, #0x0
+ bl FUN_02046528
+ add r6, r0, #0x0
+ add r0, r7, #0x0
+ bl FUN_0204652C
+ add r4, r0, #0x0
+ add r5, r4, #0x0
+ ldr r1, [r4, #0x0]
+ add r5, #0x8
+ cmp r1, #0x3
+ bhi _02049390
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #0x6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_0204932C: ; jump table (using 16-bit offset)
+ .short _02049334 - _0204932C - 2; case 0
+ .short _0204934A - _0204932C - 2; case 1
+ .short _02049364 - _0204932C - 2; case 2
+ .short _02049388 - _0204932C - 2; case 3
+_02049334:
+ ldr r1, [r5, #0x0]
+ add r0, r6, #0x0
+ bl FUN_0204AD60
+ add r0, r7, #0x0
+ bl FUN_02049394
+ ldr r0, [r4, #0x0]
+ add r0, r0, #0x1
+ str r0, [r4, #0x0]
+ b _02049390
+_0204934A:
+ ldr r0, [r6, #0x38]
+ mov r1, #0x0
+ bl FUN_020553A8
+ add r1, r4, #0x0
+ add r0, r7, #0x0
+ add r1, #0x8
+ bl FUN_02049160
+ ldr r0, [r4, #0x0]
+ add r0, r0, #0x1
+ str r0, [r4, #0x0]
+ b _02049390
+_02049364:
+ bl FUN_02005404
+ cmp r0, #0x0
+ bne _02049390
+ ldr r1, [r5, #0x0]
+ add r0, r6, #0x0
+ bl FUN_0204AD8C
+ add r0, r6, #0x0
+ bl FUN_020637A8
+ add r0, r7, #0x0
+ bl FUN_020493D0
+ ldr r0, [r4, #0x0]
+ add r0, r0, #0x1
+ str r0, [r4, #0x0]
+ b _02049390
+_02049388:
+ bl FUN_02016A18
+ mov r0, #0x1
+ pop {r3-r7, pc}
+_02049390:
+ mov r0, #0x0
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_02049394
+FUN_02049394: ; 0x02049394
+ ldr r3, _0204939C ; =FUN_0204640C
+ ldr r1, _020493A0 ; =FUN_020493A4
+ mov r2, #0x0
+ bx r3
+ .balign 4
+_0204939C: .word FUN_0204640C
+_020493A0: .word FUN_020493A4
+
+ thumb_func_start FUN_020493A4
+FUN_020493A4: ; 0x020493A4
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ bl FUN_02046530
+ add r4, r0, #0x0
+ ldr r0, [r4, #0x0]
+ cmp r0, #0x0
+ beq _020493BA
+ cmp r0, #0x1
+ beq _020493C8
+ b _020493CC
+_020493BA:
+ add r0, r5, #0x0
+ bl FUN_0204AF3C
+ ldr r0, [r4, #0x0]
+ add r0, r0, #0x1
+ str r0, [r4, #0x0]
+ b _020493CC
+_020493C8:
+ mov r0, #0x1
+ pop {r3-r5, pc}
+_020493CC:
+ mov r0, #0x0
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_020493D0
+FUN_020493D0: ; 0x020493D0
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl FUN_0204652C
+ add r2, r0, #0x0
+ ldr r1, _020493E4 ; =FUN_020493E8
+ add r0, r4, #0x0
+ bl FUN_0204640C
+ pop {r4, pc}
+ .balign 4
+_020493E4: .word FUN_020493E8
+
+ thumb_func_start FUN_020493E8
+FUN_020493E8: ; 0x020493E8
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ bl FUN_02046530
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_02046528
+ ldr r1, [r4, #0x0]
+ cmp r1, #0x0
+ beq _02049408
+ cmp r1, #0x1
+ beq _02049416
+ cmp r1, #0x2
+ beq _02049428
+ b _0204942C
+_02049408:
+ add r0, r5, #0x0
+ bl FUN_0204AF84
+ ldr r0, [r4, #0x0]
+ add r0, r0, #0x1
+ str r0, [r4, #0x0]
+ b _0204942C
+_02049416:
+ bl FUN_021E331C
+ add r0, r5, #0x0
+ bl FUN_02049430
+ ldr r0, [r4, #0x0]
+ add r0, r0, #0x1
+ str r0, [r4, #0x0]
+ b _0204942C
+_02049428:
+ mov r0, #0x1
+ pop {r3-r5, pc}
+_0204942C:
+ mov r0, #0x0
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_02049430
+FUN_02049430: ; 0x02049430
+ push {r4-r6, lr}
+ add r6, r0, #0x0
+ bl FUN_02046528
+ add r5, r0, #0x0
+ add r0, r6, #0x0
+ bl FUN_0204652C
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_0203739C
+ cmp r0, #0x0
+ bne _02049452
+ bl ErrorHandling
+ pop {r4-r6, pc}
+_02049452:
+ ldr r0, [r5, #0x38]
+ bl FUN_020553E8
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_022483BC
+ str r0, [r4, #0x4]
+ ldr r1, _02049470 ; =FUN_02049474
+ add r0, r6, #0x0
+ add r2, r4, #0x0
+ bl FUN_0204640C
+ pop {r4-r6, pc}
+ nop
+_02049470: .word FUN_02049474
+
+ thumb_func_start FUN_02049474
+FUN_02049474: ; 0x02049474
+ push {r4, lr}
+ bl FUN_0204652C
+ add r4, r0, #0x0
+ ldr r0, [r4, #0x4]
+ bl FUN_022483E0
+ cmp r0, #0x1
+ bne _02049490
+ ldr r0, [r4, #0x4]
+ bl FUN_022483EC
+ mov r0, #0x1
+ pop {r4, pc}
+_02049490:
+ mov r0, #0x0
+ pop {r4, pc}
+
+ thumb_func_start FUN_02049494
+FUN_02049494: ; 0x02049494
+ push {r4-r6, lr}
+ add r6, r0, #0x0
+ add r5, r1, #0x0
+ mov r0, #0xb
+ mov r1, #0x20
+ add r4, r2, #0x0
+ bl FUN_020169D8
+ add r2, r0, #0x0
+ mov r0, #0x0
+ str r0, [r2, #0x0]
+ str r4, [r2, #0x4]
+ str r0, [r2, #0x8]
+ add r3, r2, #0x0
+ ldmia r5!, {r0-r1}
+ add r3, #0xc
+ stmia r3!, {r0-r1}
+ ldmia r5!, {r0-r1}
+ stmia r3!, {r0-r1}
+ ldr r0, [r5, #0x0]
+ ldr r1, _020494C8 ; =FUN_020494CC
+ str r0, [r3, #0x0]
+ add r0, r6, #0x0
+ bl FUN_020463EC
+ pop {r4-r6, pc}
+ .balign 4
+_020494C8: .word FUN_020494CC
+
+ thumb_func_start FUN_020494CC
+FUN_020494CC: ; 0x020494CC
+ push {r3-r7, lr}
+ add r7, r0, #0x0
+ bl FUN_02046528
+ add r5, r0, #0x0
+ add r0, r7, #0x0
+ bl FUN_0204652C
+ add r4, r0, #0x0
+ add r6, r4, #0x0
+ ldr r1, [r4, #0x0]
+ add r6, #0xc
+ cmp r1, #0x3
+ bhi _02049570
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #0x6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_020494F4: ; jump table (using 16-bit offset)
+ .short _020494FC - _020494F4 - 2; case 0
+ .short _02049512 - _020494F4 - 2; case 1
+ .short _0204952C - _020494F4 - 2; case 2
+ .short _02049568 - _020494F4 - 2; case 3
+_020494FC:
+ ldr r1, [r6, #0x0]
+ add r0, r5, #0x0
+ bl FUN_0204AD60
+ add r0, r7, #0x0
+ bl FUN_02049574
+ ldr r0, [r4, #0x0]
+ add r0, r0, #0x1
+ str r0, [r4, #0x0]
+ b _02049570
+_02049512:
+ ldr r0, [r5, #0x38]
+ mov r1, #0x0
+ bl FUN_020553A8
+ add r1, r4, #0x0
+ add r0, r7, #0x0
+ add r1, #0xc
+ bl FUN_02049160
+ ldr r0, [r4, #0x0]
+ add r0, r0, #0x1
+ str r0, [r4, #0x0]
+ b _02049570
+_0204952C:
+ bl FUN_02005404
+ cmp r0, #0x0
+ bne _02049570
+ ldr r1, [r6, #0x0]
+ add r0, r5, #0x0
+ bl FUN_0204AD8C
+ ldr r0, [r4, #0x4]
+ cmp r0, #0x2
+ bne _0204954A
+ add r0, r5, #0x0
+ bl FUN_020637C4
+ b _0204955A
+_0204954A:
+ cmp r0, #0x1
+ bhi _02049556
+ add r0, r5, #0x0
+ bl FUN_020637E0
+ b _0204955A
+_02049556:
+ bl ErrorHandling
+_0204955A:
+ add r0, r7, #0x0
+ bl FUN_020495B0
+ ldr r0, [r4, #0x0]
+ add r0, r0, #0x1
+ str r0, [r4, #0x0]
+ b _02049570
+_02049568:
+ bl FUN_02016A18
+ mov r0, #0x1
+ pop {r3-r7, pc}
+_02049570:
+ mov r0, #0x0
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_02049574
+FUN_02049574: ; 0x02049574
+ ldr r3, _0204957C ; =FUN_0204640C
+ ldr r1, _02049580 ; =FUN_02049584
+ mov r2, #0x0
+ bx r3
+ .balign 4
+_0204957C: .word FUN_0204640C
+_02049580: .word FUN_02049584
+
+ thumb_func_start FUN_02049584
+FUN_02049584: ; 0x02049584
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ bl FUN_02046530
+ add r4, r0, #0x0
+ ldr r0, [r4, #0x0]
+ cmp r0, #0x0
+ beq _0204959A
+ cmp r0, #0x1
+ beq _020495A8
+ b _020495AC
+_0204959A:
+ add r0, r5, #0x0
+ bl FUN_0204AF3C
+ ldr r0, [r4, #0x0]
+ add r0, r0, #0x1
+ str r0, [r4, #0x0]
+ b _020495AC
+_020495A8:
+ mov r0, #0x1
+ pop {r3-r5, pc}
+_020495AC:
+ mov r0, #0x0
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_020495B0
+FUN_020495B0: ; 0x020495B0
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl FUN_0204652C
+ add r2, r0, #0x0
+ ldr r1, _020495C4 ; =FUN_020495C8
+ add r0, r4, #0x0
+ bl FUN_0204640C
+ pop {r4, pc}
+ .balign 4
+_020495C4: .word FUN_020495C8
+
+ thumb_func_start FUN_020495C8
+FUN_020495C8: ; 0x020495C8
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ bl FUN_02046530
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_02046528
+ add r6, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_0204652C
+ ldr r0, [r4, #0x0]
+ cmp r0, #0x0
+ beq _020495F0
+ cmp r0, #0x1
+ beq _020495FE
+ cmp r0, #0x2
+ beq _02049612
+ b _02049616
+_020495F0:
+ add r0, r5, #0x0
+ bl FUN_0204AF84
+ ldr r0, [r4, #0x0]
+ add r0, r0, #0x1
+ str r0, [r4, #0x0]
+ b _02049616
+_020495FE:
+ add r0, r6, #0x0
+ bl FUN_021E331C
+ add r0, r5, #0x0
+ bl FUN_0204961C
+ ldr r0, [r4, #0x0]
+ add r0, r0, #0x1
+ str r0, [r4, #0x0]
+ b _02049616
+_02049612:
+ mov r0, #0x1
+ pop {r4-r6, pc}
+_02049616:
+ mov r0, #0x0
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_0204961C
+FUN_0204961C: ; 0x0204961C
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ bl FUN_02046528
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_0204652C
+ add r6, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_0203739C
+ cmp r0, #0x0
+ bne _0204963E
+ bl ErrorHandling
+ pop {r4-r6, pc}
+_0204963E:
+ ldr r2, [r6, #0x4]
+ add r0, r4, #0x0
+ mov r1, #0x4
+ bl FUN_0224C8C8
+ add r2, r0, #0x0
+ ldr r1, _02049654 ; =0x0224C8E9
+ add r0, r5, #0x0
+ bl FUN_0204640C
+ pop {r4-r6, pc}
+ .balign 4
+_02049654: .word 0x0224C8E9
+
+ thumb_func_start FUN_02049658
+FUN_02049658: ; 0x02049658
+ push {r3-r7, lr}
+ add r6, r0, #0x0
+ bl FUN_02046528
+ add r7, r0, #0x0
+ add r0, r6, #0x0
+ bl FUN_0204652C
+ add r4, r0, #0x0
+ add r5, r4, #0x0
+ ldr r1, [r4, #0x0]
+ add r5, #0x8
+ cmp r1, #0x6
+ bhi _02049712
+ add r2, r1, r1
+ add r2, pc
+ ldrh r2, [r2, #0x6]
+ lsl r2, r2, #0x10
+ asr r2, r2, #0x10
+ add pc, r2
+_02049680: ; jump table (using 16-bit offset)
+ .short _0204968E - _02049680 - 2; case 0
+ .short _020496A0 - _02049680 - 2; case 1
+ .short _020496BC - _02049680 - 2; case 2
+ .short _020496CC - _02049680 - 2; case 3
+ .short _020496EA - _02049680 - 2; case 4
+ .short _020496FE - _02049680 - 2; case 5
+ .short _0204970A - _02049680 - 2; case 6
+_0204968E:
+ add r0, r7, #0x0
+ mov r1, #0x1
+ add r2, r4, #0x4
+ bl FUN_021E7750
+ ldr r0, [r4, #0x0]
+ add r0, r0, #0x1
+ str r0, [r4, #0x0]
+ b _02049712
+_020496A0:
+ ldr r0, [r4, #0x4]
+ cmp r0, #0x0
+ beq _02049712
+ ldr r1, [r5, #0x0]
+ add r0, r7, #0x0
+ bl FUN_0204AD60
+ add r0, r6, #0x0
+ bl FUN_0204AF3C
+ ldr r0, [r4, #0x0]
+ add r0, r0, #0x1
+ str r0, [r4, #0x0]
+ b _02049712
+_020496BC:
+ add r0, r6, #0x0
+ add r1, r5, #0x0
+ bl FUN_02049160
+ ldr r0, [r4, #0x0]
+ add r0, r0, #0x1
+ str r0, [r4, #0x0]
+ b _02049712
+_020496CC:
+ bl FUN_02005404
+ cmp r0, #0x0
+ bne _02049712
+ ldr r1, [r5, #0x0]
+ add r0, r7, #0x0
+ bl FUN_0204AD8C
+ add r0, r6, #0x0
+ bl FUN_0204AF84
+ ldr r0, [r4, #0x0]
+ add r0, r0, #0x1
+ str r0, [r4, #0x0]
+ b _02049712
+_020496EA:
+ mov r1, #0x0
+ str r1, [r4, #0x4]
+ add r0, r7, #0x0
+ add r2, r4, #0x4
+ bl FUN_021E7750
+ ldr r0, [r4, #0x0]
+ add r0, r0, #0x1
+ str r0, [r4, #0x0]
+ b _02049712
+_020496FE:
+ ldr r0, [r4, #0x4]
+ cmp r0, #0x0
+ beq _02049712
+ add r0, r1, #0x1
+ str r0, [r4, #0x0]
+ b _02049712
+_0204970A:
+ bl FUN_02016A18
+ mov r0, #0x1
+ pop {r3-r7, pc}
+_02049712:
+ mov r0, #0x0
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_02049718
+FUN_02049718: ; 0x02049718
+ push {r4-r7, lr}
+ sub sp, #0x14
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ mov r0, #0xb
+ mov r1, #0x1c
+ add r6, r2, #0x0
+ bl FUN_020169D8
+ mov r1, #0x0
+ mov r2, #0x1c
+ add r7, r0, #0x0
+ blx MI_CpuFill8
+ ldr r0, [r5, #0x38]
+ bl FUN_020552F8
+ mov r1, #0x0
+ add r2, r7, #0x0
+ str r4, [sp, #0x0]
+ str r6, [sp, #0x4]
+ add r3, sp, #0x0
+ str r1, [sp, #0x8]
+ str r1, [sp, #0xc]
+ str r0, [sp, #0x10]
+ ldmia r3!, {r0-r1}
+ add r2, #0x8
+ stmia r2!, {r0-r1}
+ ldmia r3!, {r0-r1}
+ stmia r2!, {r0-r1}
+ ldr r0, [r3, #0x0]
+ ldr r1, _02049768 ; =FUN_02049658
+ str r0, [r2, #0x0]
+ add r0, r5, #0x0
+ add r2, r7, #0x0
+ bl FUN_020463CC
+ add sp, #0x14
+ pop {r4-r7, pc}
+ nop
+_02049768: .word FUN_02049658
+
+ thumb_func_start FUN_0204976C
+FUN_0204976C: ; 0x0204976C
+ push {r4-r6, lr}
+ add r6, r0, #0x0
+ ldr r0, [r6, #0xc]
+ bl FUN_02034E30
+ bl FUN_02034DD0
+ add r4, r0, #0x0
+ mov r0, #0xb
+ mov r1, #0x40
+ bl FUN_020169D8
+ add r5, r0, #0x0
+ mov r1, #0x0
+ str r1, [r5, #0x0]
+ str r1, [r5, #0x4]
+ ldr r0, [r6, #0x6c]
+ cmp r0, #0x1
+ bne _020497A4
+ ldr r0, [r4, #0x0]
+ str r0, [r5, #0x8]
+ sub r0, r1, #0x1
+ str r0, [r5, #0xc]
+ ldr r0, [r4, #0x8]
+ str r0, [r5, #0x10]
+ ldr r0, [r4, #0xc]
+ str r0, [r5, #0x14]
+ b _02049820
+_020497A4:
+ add r0, r4, #0x0
+ add r1, r6, #0x0
+ bl FUN_02048CB0
+ mov r0, #0x2
+ str r0, [r5, #0x8]
+ sub r0, r0, #0x3
+ str r0, [r5, #0xc]
+ ldr r1, [r4, #0x8]
+ asr r0, r1, #0x4
+ lsr r0, r0, #0x1b
+ add r0, r1, r0
+ asr r0, r0, #0x5
+ ldr r1, [r4, #0xc]
+ sub r6, r0, #0x1
+ asr r0, r1, #0x4
+ lsr r0, r0, #0x1b
+ add r0, r1, r0
+ asr r0, r0, #0x5
+ sub r4, r0, #0x6
+ cmp r6, #0x0
+ bge _020497D4
+ bl ErrorHandling
+_020497D4:
+ cmp r4, #0x0
+ bge _020497DC
+ bl ErrorHandling
+_020497DC:
+ lsr r2, r6, #0x1f
+ lsl r1, r6, #0x1f
+ sub r1, r1, r2
+ mov r0, #0x1f
+ ror r1, r0
+ add r0, r2, r1
+ bne _020497EE
+ mov r0, #0x8
+ b _020497F0
+_020497EE:
+ mov r0, #0x17
+_020497F0:
+ lsr r3, r4, #0x1f
+ lsl r2, r4, #0x1f
+ sub r2, r2, r3
+ mov r1, #0x1f
+ ror r2, r1
+ add r1, r3, r2
+ bne _02049802
+ mov r1, #0x8
+ b _02049804
+_02049802:
+ mov r1, #0x17
+_02049804:
+ lsr r2, r6, #0x1f
+ add r2, r6, r2
+ asr r2, r2, #0x1
+ add r6, r2, #0x1
+ lsr r2, r4, #0x1f
+ add r2, r4, r2
+ asr r2, r2, #0x1
+ add r3, r2, #0x3
+ lsl r2, r6, #0x5
+ add r0, r0, r2
+ str r0, [r5, #0x10]
+ lsl r0, r3, #0x5
+ add r0, r1, r0
+ str r0, [r5, #0x14]
+_02049820:
+ add r0, r5, #0x0
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_02049824
+FUN_02049824: ; 0x02049824
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ bl FUN_0204976C
+ add r4, r0, #0x0
+ beq _02049840
+ add r0, r5, #0x0
+ bl FUN_02049BE8
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r2, r4, #0x0
+ bl FUN_020463CC
+_02049840:
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_02049844
+FUN_02049844: ; 0x02049844
+ push {r4-r6, lr}
+ sub sp, #0x8
+ add r6, r0, #0x0
+ bl FUN_02046528
+ add r5, r0, #0x0
+ add r0, r6, #0x0
+ bl FUN_0204652C
+ add r4, r0, #0x0
+ ldr r0, [r4, #0x0]
+ cmp r0, #0xc
+ bhi _0204992C
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0204986A: ; jump table (using 16-bit offset)
+ .short _02049884 - _0204986A - 2; case 0
+ .short _020498DC - _0204986A - 2; case 1
+ .short _02049918 - _0204986A - 2; case 2
+ .short _0204995E - _0204986A - 2; case 3
+ .short _020499A2 - _0204986A - 2; case 4
+ .short _020499D0 - _0204986A - 2; case 5
+ .short _020499E2 - _0204986A - 2; case 6
+ .short _020499F2 - _0204986A - 2; case 7
+ .short _02049A06 - _0204986A - 2; case 8
+ .short _02049A14 - _0204986A - 2; case 9
+ .short _02049A42 - _0204986A - 2; case 10
+ .short _02049A64 - _0204986A - 2; case 11
+ .short _02049A96 - _0204986A - 2; case 12
+_02049884:
+ mov r0, #0x1
+ mov r1, #0x1a
+ mov r2, #0xcf
+ mov r3, #0xb
+ bl FUN_0200A86C
+ add r6, r0, #0x0
+ mov r1, #0x7c
+ bl FUN_0200A914
+ str r0, [r4, #0x34]
+ add r0, r6, #0x0
+ bl FUN_0200A8B8
+ add r1, r4, #0x0
+ ldr r0, [r5, #0x8]
+ add r1, #0x24
+ mov r2, #0x3
+ bl FUN_020545B8
+ ldr r0, [r5, #0xc]
+ bl LoadPlayerDataAddress
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ add r0, #0x24
+ bl FUN_02054608
+ ldr r0, [r5, #0xc]
+ bl LoadPlayerDataAddress
+ add r2, r0, #0x0
+ add r0, r4, #0x0
+ ldr r1, [r4, #0x34]
+ add r0, #0x24
+ mov r3, #0x1
+ bl FUN_02054658
+ add r1, r4, #0x0
+ add r1, #0x38
+ strb r0, [r1, #0x0]
+ mov r0, #0x1
+ str r0, [r4, #0x0]
+ b _02049AB2
+_020498DC:
+ add r0, r4, #0x0
+ add r0, #0x38
+ ldrb r0, [r0, #0x0]
+ bl FUN_020546C8
+ cmp r0, #0x1
+ bne _0204992C
+ ldr r0, [r4, #0x34]
+ bl FUN_02021A20
+ mov r0, #0x0
+ str r0, [sp, #0x0]
+ mov r3, #0xb
+ str r3, [sp, #0x4]
+ ldr r0, [r5, #0x8]
+ ldr r2, _02049AB8 ; =0x000003D9
+ mov r1, #0x3
+ bl FUN_0200CB00
+ mov r3, #0xb
+ str r3, [sp, #0x0]
+ ldr r0, [r5, #0x8]
+ ldr r1, _02049ABC ; =0x020F46D8
+ ldr r2, _02049AB8 ; =0x000003D9
+ bl FUN_02002198
+ str r0, [r4, #0x3c]
+ mov r0, #0x2
+ str r0, [r4, #0x0]
+ b _02049AB2
+_02049918:
+ ldr r0, [r4, #0x3c]
+ mov r1, #0xb
+ bl FUN_020021AC
+ cmp r0, #0x0
+ beq _0204992E
+ mov r1, #0x1
+ mvn r1, r1
+ cmp r0, r1
+ beq _02049946
+_0204992C:
+ b _02049AB2
+_0204992E:
+ add r0, r4, #0x0
+ add r0, #0x24
+ mov r1, #0x0
+ bl FUN_0200D0E0
+ add r0, r4, #0x0
+ add r0, #0x24
+ bl FUN_02019178
+ mov r0, #0x3
+ str r0, [r4, #0x0]
+ b _02049AB2
+_02049946:
+ add r0, r4, #0x0
+ add r0, #0x24
+ mov r1, #0x0
+ bl FUN_0200D0E0
+ add r0, r4, #0x0
+ add r0, #0x24
+ bl FUN_02019178
+ mov r0, #0x5
+ str r0, [r4, #0x0]
+ b _02049AB2
+_0204995E:
+ ldr r0, [r5, #0xc]
+ bl FUN_0202280C
+ cmp r0, #0x0
+ beq _02049976
+ mov r2, #0x0
+ ldr r1, _02049AC0 ; =0x000007F2
+ add r0, r6, #0x0
+ add r3, r2, #0x0
+ bl FUN_02038CD8
+ b _0204999C
+_02049976:
+ ldr r0, [r5, #0xc]
+ bl FUN_02025BE8
+ add r0, r5, #0x0
+ mov r1, #0xb
+ mov r2, #0x3
+ bl FUN_021E8588
+ str r0, [r4, #0x20]
+ bl FUN_021E84F4
+ add r3, r4, #0x0
+ mov r2, #0x0
+ ldr r1, _02049AC4 ; =0x000007D5
+ add r0, r6, #0x0
+ add r3, #0x1c
+ strh r2, [r4, #0x1c]
+ bl FUN_02038CD8
+_0204999C:
+ mov r0, #0x4
+ str r0, [r4, #0x0]
+ b _02049AB2
+_020499A2:
+ ldr r0, [r5, #0xc]
+ bl FUN_0202280C
+ cmp r0, #0x0
+ beq _020499B2
+ mov r0, #0x5
+ str r0, [r4, #0x0]
+ b _02049AB2
+_020499B2:
+ ldr r0, [r4, #0x20]
+ bl FUN_021E856C
+ ldr r0, [r4, #0x20]
+ bl FUN_021E85E4
+ ldrh r0, [r4, #0x1c]
+ cmp r0, #0x0
+ bne _020499CA
+ mov r0, #0x5
+ str r0, [r4, #0x0]
+ b _02049AB2
+_020499CA:
+ mov r0, #0x6
+ str r0, [r4, #0x0]
+ b _02049AB2
+_020499D0:
+ ldr r0, [r5, #0x34]
+ bl FUN_020587B0
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ add sp, #0x8
+ mov r0, #0x1
+ pop {r4-r6, pc}
+_020499E2:
+ mov r0, #0x0
+ mov r1, #0x1e
+ bl FUN_020053CC
+ ldr r0, [r4, #0x0]
+ add r0, r0, #0x1
+ str r0, [r4, #0x0]
+ b _02049AB2
+_020499F2:
+ add r0, r6, #0x0
+ mov r1, #0x0
+ bl FUN_02049C0C
+ cmp r0, #0x0
+ beq _02049AB2
+ ldr r0, [r4, #0x0]
+ add r0, r0, #0x1
+ str r0, [r4, #0x0]
+ b _02049AB2
+_02049A06:
+ add r0, r6, #0x0
+ bl FUN_0204AF3C
+ ldr r0, [r4, #0x0]
+ add r0, r0, #0x1
+ str r0, [r4, #0x0]
+ b _02049AB2
+_02049A14:
+ mov r0, #0x1
+ str r0, [r5, #0x6c]
+ ldr r0, _02049AC8 ; =0x00000012
+ mov r1, #0x2
+ bl FUN_02005FDC
+ add r0, r5, #0x0
+ bl FUN_0204FC5C
+ ldr r0, [r4, #0x14]
+ mov r2, #0x1
+ str r0, [sp, #0x0]
+ str r2, [sp, #0x4]
+ ldr r1, [r4, #0x8]
+ ldr r3, [r4, #0x10]
+ add r0, r6, #0x0
+ sub r2, r2, #0x2
+ bl FUN_020491A8
+ ldr r0, [r4, #0x0]
+ add r0, r0, #0x1
+ str r0, [r4, #0x0]
+ b _02049AB2
+_02049A42:
+ bl FUN_02005404
+ cmp r0, #0x0
+ bne _02049AB2
+ mov r0, #0x0
+ bl FUN_0200415C
+ add r0, r5, #0x0
+ bl FUN_0204AB44
+ add r0, r6, #0x0
+ bl FUN_0204AF84
+ ldr r0, [r4, #0x0]
+ add r0, r0, #0x1
+ str r0, [r4, #0x0]
+ b _02049AB2
+_02049A64:
+ add r0, r6, #0x0
+ mov r1, #0x1
+ bl FUN_02049C0C
+ cmp r0, #0x0
+ beq _02049AB2
+ bl FUN_0204FCA0
+ add r0, r5, #0x0
+ bl FUN_02244824
+ mov r1, #0x0
+ str r0, [r5, #0x68]
+ mov r0, #0x2
+ add r2, r1, #0x0
+ str r0, [sp, #0x0]
+ mov r0, #0x1e
+ sub r2, #0x10
+ mov r3, #0x19
+ bl FUN_0200A208
+ ldr r0, [r4, #0x0]
+ add r0, r0, #0x1
+ str r0, [r4, #0x0]
+ b _02049AB2
+_02049A96:
+ mov r0, #0x2
+ bl FUN_0200A344
+ cmp r0, #0x0
+ beq _02049AB2
+ mov r0, #0x1
+ bl FUN_02247970
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ add sp, #0x8
+ mov r0, #0x1
+ pop {r4-r6, pc}
+_02049AB2:
+ mov r0, #0x0
+ add sp, #0x8
+ pop {r4-r6, pc}
+ .balign 4
+_02049AB8: .word 0x000003D9
+_02049ABC: .word 0x020F46D8
+_02049AC0: .word 0x000007F2
+_02049AC4: .word 0x000007D5
+_02049AC8: .word 0x00000012
+
+ thumb_func_start FUN_02049ACC
+FUN_02049ACC: ; 0x02049ACC
+ push {r4-r6, lr}
+ sub sp, #0x8
+ add r6, r0, #0x0
+ bl FUN_02046528
+ add r5, r0, #0x0
+ add r0, r6, #0x0
+ bl FUN_0204652C
+ add r4, r0, #0x0
+ ldr r1, [r4, #0x0]
+ cmp r1, #0x7
+ bhi _02049BDC
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #0x6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_02049AF2: ; jump table (using 16-bit offset)
+ .short _02049B02 - _02049AF2 - 2; case 0
+ .short _02049B2C - _02049AF2 - 2; case 1
+ .short _02049B54 - _02049AF2 - 2; case 2
+ .short _02049B68 - _02049AF2 - 2; case 3
+ .short _02049B76 - _02049AF2 - 2; case 4
+ .short _02049B9C - _02049AF2 - 2; case 5
+ .short _02049BBE - _02049AF2 - 2; case 6
+ .short _02049BD2 - _02049AF2 - 2; case 7
+_02049B02:
+ mov r0, #0x0
+ bl FUN_02247970
+ bl FUN_0204FCD8
+ ldr r0, [r5, #0x68]
+ bl FUN_0224484C
+ mov r0, #0x2
+ str r0, [sp, #0x0]
+ mov r0, #0x1e
+ add r1, r0, #0x0
+ sub r1, #0x2e
+ mov r2, #0x0
+ mov r3, #0x1
+ bl FUN_0200A208
+ ldr r0, [r4, #0x0]
+ add r0, r0, #0x1
+ str r0, [r4, #0x0]
+ b _02049BDC
+_02049B2C:
+ mov r0, #0x2
+ bl FUN_0200A344
+ cmp r0, #0x0
+ beq _02049BDC
+ ldr r0, [r5, #0x68]
+ cmp r0, #0x0
+ bne _02049BDC
+ bl FUN_02030F40
+ cmp r0, #0x0
+ bne _02049BDC
+ mov r0, #0x0
+ mov r1, #0x1e
+ bl FUN_020053CC
+ ldr r0, [r4, #0x0]
+ add r0, r0, #0x1
+ str r0, [r4, #0x0]
+ b _02049BDC
+_02049B54:
+ add r0, r6, #0x0
+ mov r1, #0x2
+ bl FUN_02049C0C
+ cmp r0, #0x0
+ beq _02049BDC
+ ldr r0, [r4, #0x0]
+ add r0, r0, #0x1
+ str r0, [r4, #0x0]
+ b _02049BDC
+_02049B68:
+ add r0, r6, #0x0
+ bl FUN_0204AF3C
+ ldr r0, [r4, #0x0]
+ add r0, r0, #0x1
+ str r0, [r4, #0x0]
+ b _02049BDC
+_02049B76:
+ mov r0, #0x0
+ str r0, [r5, #0x6c]
+ ldr r0, _02049BE4 ; =0x00000012
+ bl FUN_02005F60
+ ldr r0, [r4, #0x14]
+ mov r2, #0x1
+ str r0, [sp, #0x0]
+ str r2, [sp, #0x4]
+ ldr r1, [r4, #0x8]
+ ldr r3, [r4, #0x10]
+ add r0, r6, #0x0
+ sub r2, r2, #0x2
+ bl FUN_020491A8
+ ldr r0, [r4, #0x0]
+ add r0, r0, #0x1
+ str r0, [r4, #0x0]
+ b _02049BDC
+_02049B9C:
+ bl FUN_02005404
+ cmp r0, #0x0
+ bne _02049BDC
+ mov r0, #0x0
+ bl FUN_0200415C
+ add r0, r5, #0x0
+ bl FUN_0204AB44
+ add r0, r6, #0x0
+ bl FUN_0204AF84
+ ldr r0, [r4, #0x0]
+ add r0, r0, #0x1
+ str r0, [r4, #0x0]
+ b _02049BDC
+_02049BBE:
+ add r0, r6, #0x0
+ mov r1, #0x3
+ bl FUN_02049C0C
+ cmp r0, #0x0
+ beq _02049BDC
+ ldr r0, [r4, #0x0]
+ add r0, r0, #0x1
+ str r0, [r4, #0x0]
+ b _02049BDC
+_02049BD2:
+ bl FUN_02016A18
+ add sp, #0x8
+ mov r0, #0x1
+ pop {r4-r6, pc}
+_02049BDC:
+ mov r0, #0x0
+ add sp, #0x8
+ pop {r4-r6, pc}
+ nop
+_02049BE4: .word 0x00000012
+
+ thumb_func_start FUN_02049BE8
+FUN_02049BE8: ; 0x02049BE8
+ push {r3, lr}
+ ldr r0, [r0, #0x6c]
+ cmp r0, #0x0
+ bne _02049BF4
+ ldr r0, _02049C04 ; =FUN_02049844
+ pop {r3, pc}
+_02049BF4:
+ cmp r0, #0x1
+ bne _02049BFC
+ ldr r0, _02049C08 ; =FUN_02049ACC
+ pop {r3, pc}
+_02049BFC:
+ bl ErrorHandling
+ mov r0, #0x0
+ pop {r3, pc}
+ .balign 4
+_02049C04: .word FUN_02049844
+_02049C08: .word FUN_02049ACC
+
+ thumb_func_start FUN_02049C0C
+FUN_02049C0C: ; 0x02049C0C
+ push {r3-r7, lr}
+ add r4, r0, #0x0
+ add r6, r1, #0x0
+ bl FUN_02046528
+ add r7, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_0204652C
+ add r4, r0, #0x0
+ ldr r0, [r4, #0x4]
+ mov r5, #0x0
+ cmp r0, #0x0
+ beq _02049C2E
+ cmp r0, #0x1
+ beq _02049C44
+ b _02049C4E
+_02049C2E:
+ add r2, r4, #0x0
+ str r5, [r4, #0x18]
+ add r0, r7, #0x0
+ add r1, r6, #0x0
+ add r2, #0x18
+ bl FUN_02053C98
+ ldr r0, [r4, #0x4]
+ add r0, r0, #0x1
+ str r0, [r4, #0x4]
+ b _02049C4E
+_02049C44:
+ ldr r0, [r4, #0x18]
+ cmp r0, #0x0
+ beq _02049C4E
+ str r5, [r4, #0x4]
+ mov r5, #0x1
+_02049C4E:
+ add r0, r5, #0x0
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_02049C54
+FUN_02049C54: ; 0x02049C54
+ push {r3-r5, lr}
+ add r4, r0, #0x0
+ bl FUN_02046528
+ add r5, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_0204652C
+ add r4, r0, #0x0
+ ldr r0, [r4, #0x0]
+ cmp r0, #0x0
+ beq _02049C76
+ cmp r0, #0x1
+ beq _02049C84
+ cmp r0, #0x2
+ beq _02049C9C
+ b _02049CAC
+_02049C76:
+ add r0, r5, #0x0
+ bl FUN_02048B34
+ ldr r0, [r4, #0x0]
+ add r0, r0, #0x1
+ str r0, [r4, #0x0]
+ b _02049CAC
+_02049C84:
+ add r0, r5, #0x0
+ add r1, r4, #0x4
+ bl FUN_02048958
+ add r0, r5, #0x0
+ mov r1, #0x2
+ bl FUN_0203989C
+ ldr r0, [r4, #0x0]
+ add r0, r0, #0x1
+ str r0, [r4, #0x0]
+ b _02049CAC
+_02049C9C:
+ add r0, r5, #0x0
+ bl FUN_02048AE4
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ mov r0, #0x1
+ pop {r3-r5, pc}
+_02049CAC:
+ mov r0, #0x0
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_02049CB0
+FUN_02049CB0: ; 0x02049CB0
+ push {r3-r7, lr}
+ add r6, r0, #0x0
+ add r5, r1, #0x0
+ bl FUN_02046528
+ add r7, r0, #0x0
+ mov r0, #0xb
+ mov r1, #0x18
+ bl FUN_020169D8
+ add r4, r0, #0x0
+ add r0, r7, #0x0
+ bl FUN_0203739C
+ cmp r0, #0x0
+ beq _02049CD6
+ bl ErrorHandling
+ pop {r3-r7, pc}
+_02049CD6:
+ mov r0, #0x0
+ str r0, [r4, #0x0]
+ ldmia r5!, {r0-r1}
+ add r2, r4, #0x4
+ stmia r2!, {r0-r1}
+ ldmia r5!, {r0-r1}
+ stmia r2!, {r0-r1}
+ ldr r0, [r5, #0x0]
+ ldr r1, _02049CF4 ; =FUN_02049C54
+ str r0, [r2, #0x0]
+ add r0, r6, #0x0
+ add r2, r4, #0x0
+ bl FUN_0204640C
+ pop {r3-r7, pc}
+ .balign 4
+_02049CF4: .word FUN_02049C54
+
+ thumb_func_start FUN_02049CF8
+FUN_02049CF8: ; 0x02049CF8
+ push {r3-r7, lr}
+ add r6, r0, #0x0
+ bl FUN_02046528
+ add r7, r0, #0x0
+ add r0, r6, #0x0
+ bl FUN_0204652C
+ add r5, r0, #0x0
+ add r0, r6, #0x0
+ bl FUN_02046530
+ add r4, r0, #0x0
+ ldr r0, [r4, #0x0]
+ cmp r0, #0x5
+ bhi _02049D98
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02049D24: ; jump table (using 16-bit offset)
+ .short _02049D30 - _02049D24 - 2; case 0
+ .short _02049D4C - _02049D24 - 2; case 1
+ .short _02049D60 - _02049D24 - 2; case 2
+ .short _02049D72 - _02049D24 - 2; case 3
+ .short _02049D80 - _02049D24 - 2; case 4
+ .short _02049D8E - _02049D24 - 2; case 5
+_02049D30:
+ ldr r1, [r5, #0x8]
+ add r0, r7, #0x0
+ mov r2, #0x0
+ bl FUN_0204ACA8
+ add r0, r7, #0x0
+ mov r1, #0x1
+ add r2, r5, #0x4
+ bl FUN_021E7750
+ ldr r0, [r4, #0x0]
+ add r0, r0, #0x1
+ str r0, [r4, #0x0]
+ b _02049D98
+_02049D4C:
+ ldr r0, [r5, #0x4]
+ cmp r0, #0x0
+ beq _02049D98
+ add r0, r6, #0x0
+ bl FUN_0204AF3C
+ ldr r0, [r4, #0x0]
+ add r0, r0, #0x1
+ str r0, [r4, #0x0]
+ b _02049D98
+_02049D60:
+ add r5, #0x8
+ add r0, r6, #0x0
+ add r1, r5, #0x0
+ bl FUN_02049160
+ ldr r0, [r4, #0x0]
+ add r0, r0, #0x1
+ str r0, [r4, #0x0]
+ b _02049D98
+_02049D72:
+ add r0, r6, #0x0
+ bl FUN_0204AF84
+ ldr r0, [r4, #0x0]
+ add r0, r0, #0x1
+ str r0, [r4, #0x0]
+ b _02049D98
+_02049D80:
+ add r0, r6, #0x0
+ bl FUN_0204B00C
+ ldr r0, [r4, #0x0]
+ add r0, r0, #0x1
+ str r0, [r4, #0x0]
+ b _02049D98
+_02049D8E:
+ add r0, r5, #0x0
+ bl FUN_02016A18
+ mov r0, #0x1
+ pop {r3-r7, pc}
+_02049D98:
+ mov r0, #0x0
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_02049D9C
+FUN_02049D9C: ; 0x02049D9C
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ ldr r0, [r5, #0xc]
+ bl FUN_02034E30
+ bl FUN_02034DD0
+ add r4, r0, #0x0
+ mov r0, #0xb
+ mov r1, #0x1c
+ bl FUN_020169D8
+ add r6, r0, #0x0
+ mov r1, #0x0
+ mov r2, #0x1c
+ blx MI_CpuFill8
+ add r2, r6, #0x0
+ ldmia r4!, {r0-r1}
+ add r2, #0x8
+ stmia r2!, {r0-r1}
+ ldmia r4!, {r0-r1}
+ stmia r2!, {r0-r1}
+ ldr r0, [r4, #0x0]
+ str r0, [r2, #0x0]
+ add r0, r5, #0x0
+ bl FUN_020520F8
+ ldr r0, [r5, #0x7c]
+ bl FUN_02052FA4
+ mov r0, #0x0
+ str r0, [r5, #0x6c]
+ ldr r1, _02049DF0 ; =FUN_02049CF8
+ add r0, r5, #0x0
+ add r2, r6, #0x0
+ bl FUN_020463CC
+ mov r0, #0x0
+ str r0, [r5, #0x78]
+ pop {r4-r6, pc}
+ nop
+_02049DF0: .word FUN_02049CF8
+
+ thumb_func_start FUN_02049DF4
+FUN_02049DF4: ; 0x02049DF4
+ push {r3-r7, lr}
+ add r6, r0, #0x0
+ bl FUN_02046528
+ add r7, r0, #0x0
+ add r0, r6, #0x0
+ bl FUN_0204652C
+ add r5, r0, #0x0
+ add r0, r6, #0x0
+ bl FUN_02046530
+ add r4, r0, #0x0
+ ldr r0, [r4, #0x0]
+ cmp r0, #0x6
+ bhi _02049E9E
+ add r1, r0, r0
+ add r1, pc
+ ldrh r1, [r1, #0x6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_02049E20: ; jump table (using 16-bit offset)
+ .short _02049E2E - _02049E20 - 2; case 0
+ .short _02049E46 - _02049E20 - 2; case 1
+ .short _02049E54 - _02049E20 - 2; case 2
+ .short _02049E66 - _02049E20 - 2; case 3
+ .short _02049E74 - _02049E20 - 2; case 4
+ .short _02049E88 - _02049E20 - 2; case 5
+ .short _02049E94 - _02049E20 - 2; case 6
+_02049E2E:
+ ldr r1, [r5, #0x8]
+ add r0, r7, #0x0
+ mov r2, #0x0
+ bl FUN_0204ACA8
+ add r0, r6, #0x0
+ bl FUN_0204AFC8
+ ldr r0, [r4, #0x0]
+ add r0, r0, #0x1
+ str r0, [r4, #0x0]
+ b _02049E9E
+_02049E46:
+ add r0, r6, #0x0
+ bl FUN_0204AF3C
+ ldr r0, [r4, #0x0]
+ add r0, r0, #0x1
+ str r0, [r4, #0x0]
+ b _02049E9E
+_02049E54:
+ add r5, #0x8
+ add r0, r6, #0x0
+ add r1, r5, #0x0
+ bl FUN_02049160
+ ldr r0, [r4, #0x0]
+ add r0, r0, #0x1
+ str r0, [r4, #0x0]
+ b _02049E9E
+_02049E66:
+ add r0, r6, #0x0
+ bl FUN_0204AF84
+ ldr r0, [r4, #0x0]
+ add r0, r0, #0x1
+ str r0, [r4, #0x0]
+ b _02049E9E
+_02049E74:
+ mov r1, #0x0
+ str r1, [r5, #0x4]
+ add r0, r7, #0x0
+ add r2, r5, #0x4
+ bl FUN_021E7750
+ ldr r0, [r4, #0x0]
+ add r0, r0, #0x1
+ str r0, [r4, #0x0]
+ b _02049E9E
+_02049E88:
+ ldr r1, [r5, #0x4]
+ cmp r1, #0x0
+ beq _02049E9E
+ add r0, r0, #0x1
+ str r0, [r4, #0x0]
+ b _02049E9E
+_02049E94:
+ add r0, r5, #0x0
+ bl FUN_02016A18
+ mov r0, #0x1
+ pop {r3-r7, pc}
+_02049E9E:
+ mov r0, #0x0
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_02049EA4
+FUN_02049EA4: ; 0x02049EA4
+ push {r3-r7, lr}
+ add r6, r0, #0x0
+ bl FUN_02046528
+ add r5, r0, #0x0
+ ldr r0, [r5, #0xc]
+ bl FUN_02034E30
+ bl FUN_02034DD0
+ add r7, r0, #0x0
+ mov r0, #0xb
+ mov r1, #0x1c
+ bl FUN_020169D8
+ mov r1, #0x0
+ mov r2, #0x1c
+ add r4, r0, #0x0
+ blx MI_CpuFill8
+ add r0, r7, #0x0
+ add r1, r5, #0x0
+ bl FUN_02048CB0
+ ldr r0, _02049F08 ; =0x000001D2
+ str r0, [r4, #0x8]
+ mov r0, #0x0
+ mvn r0, r0
+ str r0, [r4, #0xc]
+ mov r0, #0x8
+ str r0, [r4, #0x10]
+ mov r0, #0xe
+ str r0, [r4, #0x14]
+ mov r0, #0x0
+ str r0, [r4, #0x18]
+ add r0, r5, #0x0
+ bl FUN_020520AC
+ str r0, [r5, #0x78]
+ bl FUN_02052EE8
+ str r0, [r5, #0x7c]
+ mov r0, #0x2
+ str r0, [r5, #0x6c]
+ ldr r1, _02049F0C ; =FUN_02049DF4
+ add r0, r6, #0x0
+ add r2, r4, #0x0
+ bl FUN_0204640C
+ pop {r3-r7, pc}
+ .balign 4
+_02049F08: .word 0x000001D2
+_02049F0C: .word FUN_02049DF4
+
+ thumb_func_start FUN_02049F10
+FUN_02049F10: ; 0x02049F10
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ bl FUN_02046528
+ add r6, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_0204652C
+ add r4, r0, #0x0
+ ldr r1, [r4, #0x0]
+ cmp r1, #0x3
+ bhi _02049F8E
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #0x6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_02049F34: ; jump table (using 16-bit offset)
+ .short _02049F3C - _02049F34 - 2; case 0
+ .short _02049F58 - _02049F34 - 2; case 1
+ .short _02049F68 - _02049F34 - 2; case 2
+ .short _02049F86 - _02049F34 - 2; case 3
+_02049F3C:
+ ldr r0, _02049F94 ; =0x00000603
+ bl FUN_020054C8
+ ldr r1, [r4, #0x4]
+ add r0, r6, #0x0
+ bl FUN_0204AD60
+ add r0, r5, #0x0
+ bl FUN_0204B090
+ ldr r0, [r4, #0x0]
+ add r0, r0, #0x1
+ str r0, [r4, #0x0]
+ b _02049F8E
+_02049F58:
+ add r0, r5, #0x0
+ add r1, r4, #0x4
+ bl FUN_02049160
+ ldr r0, [r4, #0x0]
+ add r0, r0, #0x1
+ str r0, [r4, #0x0]
+ b _02049F8E
+_02049F68:
+ bl FUN_02005404
+ cmp r0, #0x0
+ bne _02049F8E
+ ldr r1, [r4, #0x4]
+ add r0, r6, #0x0
+ bl FUN_0204AD8C
+ add r0, r5, #0x0
+ bl FUN_0204AF84
+ ldr r0, [r4, #0x0]
+ add r0, r0, #0x1
+ str r0, [r4, #0x0]
+ b _02049F8E
+_02049F86:
+ bl FUN_02016A18
+ mov r0, #0x1
+ pop {r4-r6, pc}
+_02049F8E:
+ mov r0, #0x0
+ pop {r4-r6, pc}
+ nop
+_02049F94: .word 0x00000603
+
+ thumb_func_start FUN_02049F98
+FUN_02049F98: ; 0x02049F98
+ push {r3-r7, lr}
+ sub sp, #0x18
+ str r0, [sp, #0x0]
+ add r5, r1, #0x0
+ add r6, r2, #0x0
+ add r7, r3, #0x0
+ bl FUN_02046528
+ add r4, r0, #0x0
+ ldr r0, [r4, #0xc]
+ bl FUN_02034E30
+ bl FUN_02034DD0
+ add r1, r4, #0x0
+ bl FUN_02048CB0
+ mov r0, #0x3
+ str r0, [r4, #0x6c]
+ mov r0, #0xb
+ mov r1, #0x1c
+ bl FUN_020169D8
+ add r2, r0, #0x0
+ ldr r0, [sp, #0x30]
+ str r5, [sp, #0x4]
+ str r0, [sp, #0x10]
+ ldr r0, [sp, #0x34]
+ str r6, [sp, #0x8]
+ str r0, [sp, #0x14]
+ mov r0, #0x0
+ str r7, [sp, #0xc]
+ add r4, sp, #0x4
+ str r0, [r2, #0x0]
+ ldmia r4!, {r0-r1}
+ add r3, r2, #0x4
+ stmia r3!, {r0-r1}
+ ldmia r4!, {r0-r1}
+ stmia r3!, {r0-r1}
+ ldr r0, [r4, #0x0]
+ ldr r1, _02049FF8 ; =FUN_02049F10
+ str r0, [r3, #0x0]
+ ldr r0, [sp, #0x0]
+ bl FUN_0204640C
+ add sp, #0x18
+ pop {r3-r7, pc}
+ nop
+_02049FF8: .word FUN_02049F10
+
+ thumb_func_start FUN_02049FFC
+FUN_02049FFC: ; 0x02049FFC
+ push {r4, lr}
+ bl FUN_02046528
+ add r4, r0, #0x0
+ ldr r0, [r4, #0xc]
+ bl FUN_02034E30
+ bl FUN_02034DD0
+ add r1, r0, #0x0
+ mov r0, #0x0
+ str r0, [r4, #0x6c]
+ ldr r0, [r4, #0x10]
+ bl FUN_020490C0
+ pop {r4, pc}
+
+ thumb_func_start FUN_0204A01C
+FUN_0204A01C: ; 0x0204A01C
+ push {r4, lr}
+ mov r1, #0xa2
+ mov r2, #0x0
+ add r4, r0, #0x0
+ bl FUN_020671BC
+ cmp r0, #0x0
+ bne _0204A030
+ mov r0, #0x0
+ pop {r4, pc}
+_0204A030:
+ add r0, r4, #0x0
+ mov r1, #0x4c
+ mov r2, #0x0
+ bl FUN_020671BC
+ cmp r0, #0x0
+ bne _0204A042
+ mov r0, #0x1
+ pop {r4, pc}
+_0204A042:
+ mov r0, #0x0
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0204A048
+FUN_0204A048: ; 0x0204A048
+ push {r3-r7, lr}
+ sub sp, #0x20
+ add r6, r1, #0x0
+ add r5, r0, #0x0
+ add r0, r6, #0x0
+ add r7, r2, #0x0
+ str r3, [sp, #0x10]
+ bl FUN_020238F4
+ str r0, [sp, #0x14]
+ add r0, r6, #0x0
+ bl FUN_0206BB1C
+ str r0, [sp, #0x18]
+ add r0, r5, #0x0
+ bl FUN_020669C0
+ add r4, r0, #0x0
+ bl FUN_02066978
+ mov r0, #0x0
+ str r0, [sp, #0x0]
+ str r0, [sp, #0x4]
+ str r0, [sp, #0x8]
+ str r0, [sp, #0xc]
+ ldr r2, [sp, #0x10]
+ add r0, r4, #0x0
+ add r1, r7, #0x0
+ mov r3, #0x20
+ bl FUN_02066ACC
+ ldr r0, [sp, #0x40]
+ ldr r1, [sp, #0x14]
+ str r0, [sp, #0x0]
+ ldr r3, [sp, #0x3c]
+ add r0, r4, #0x0
+ mov r2, #0x4
+ str r5, [sp, #0x4]
+ bl FUN_0206A014
+ add r0, sp, #0x28
+ ldrh r0, [r0, #0x10]
+ mov r1, #0x6
+ add r2, sp, #0x1c
+ str r0, [sp, #0x1c]
+ add r0, r4, #0x0
+ bl FUN_02067830
+ ldr r0, [sp, #0x18]
+ add r1, r4, #0x0
+ bl FUN_0206B900
+ add r5, r0, #0x0
+ beq _0204A0BC
+ add r0, r6, #0x0
+ add r1, r4, #0x0
+ bl FUN_0202C144
+_0204A0BC:
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ add r0, r5, #0x0
+ add sp, #0x20
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_0204A0C8
+FUN_0204A0C8: ; 0x0204A0C8
+ push {r4-r7, lr}
+ sub sp, #0xc
+ add r4, r1, #0x0
+ add r0, r4, #0x0
+ add r5, r2, #0x0
+ add r7, r3, #0x0
+ bl FUN_020238F4
+ str r0, [sp, #0x8]
+ add r0, r4, #0x0
+ bl FUN_0206BB1C
+ add r6, r0, #0x0
+ mov r0, #0x20
+ bl FUN_020669C0
+ add r4, r0, #0x0
+ bl FUN_02066978
+ ldr r0, [sp, #0x20]
+ ldr r1, [sp, #0x24]
+ bl FUN_02015CF8
+ mov r1, #0x4
+ str r1, [sp, #0x0]
+ str r0, [sp, #0x4]
+ ldr r3, [sp, #0x8]
+ add r0, r4, #0x0
+ add r1, r5, #0x0
+ add r2, r7, #0x0
+ bl FUN_021ECF14
+ add r0, r6, #0x0
+ add r1, r4, #0x0
+ bl FUN_0206B900
+ add r5, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ add r0, r5, #0x0
+ add sp, #0xc
+ pop {r4-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_0204A120
+FUN_0204A120: ; 0x0204A120
+ push {r3-r5, lr}
+ add r5, r2, #0x0
+ add r4, r3, #0x0
+ bl FUN_0206B9B0
+ lsl r2, r5, #0x18
+ add r1, r4, #0x0
+ lsr r2, r2, #0x18
+ bl FUN_020697CC
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_0204A138
+FUN_0204A138: ; 0x0204A138
+ push {r3-r7, lr}
+ str r0, [sp, #0x0]
+ add r5, r1, #0x0
+ bl FUN_0206B9AC
+ add r7, r0, #0x0
+ mov r6, #0x0
+ cmp r7, #0x0
+ ble _0204A1A2
+_0204A14A:
+ ldr r0, [sp, #0x0]
+ add r1, r6, #0x0
+ bl FUN_0206B9B0
+ mov r1, #0x4c
+ mov r2, #0x0
+ add r4, r0, #0x0
+ bl FUN_020671BC
+ cmp r0, #0x0
+ bne _0204A19C
+ add r0, r4, #0x0
+ mov r1, #0x36
+ mov r2, #0x0
+ bl FUN_020671BC
+ cmp r5, r0
+ beq _0204A198
+ add r0, r4, #0x0
+ mov r1, #0x37
+ mov r2, #0x0
+ bl FUN_020671BC
+ cmp r5, r0
+ beq _0204A198
+ add r0, r4, #0x0
+ mov r1, #0x38
+ mov r2, #0x0
+ bl FUN_020671BC
+ cmp r5, r0
+ beq _0204A198
+ add r0, r4, #0x0
+ mov r1, #0x39
+ mov r2, #0x0
+ bl FUN_020671BC
+ cmp r5, r0
+ bne _0204A19C
+_0204A198:
+ add r0, r6, #0x0
+ pop {r3-r7, pc}
+_0204A19C:
+ add r6, r6, #0x1
+ cmp r6, r7
+ blt _0204A14A
+_0204A1A2:
+ mov r0, #0xff
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_0204A1A8
+FUN_0204A1A8: ; 0x0204A1A8
+ push {r3-r7, lr}
+ add r7, r0, #0x0
+ bl FUN_0206B9AC
+ mov r5, #0x0
+ add r6, r0, #0x0
+ add r4, r5, #0x0
+ cmp r6, #0x0
+ ble _0204A1D2
+_0204A1BA:
+ add r0, r7, #0x0
+ add r1, r4, #0x0
+ bl FUN_0206B9B0
+ bl FUN_0204A01C
+ cmp r0, #0x0
+ beq _0204A1CC
+ add r5, r5, #0x1
+_0204A1CC:
+ add r4, r4, #0x1
+ cmp r4, r6
+ blt _0204A1BA
+_0204A1D2:
+ add r0, r5, #0x0
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_0204A1D8
+FUN_0204A1D8: ; 0x0204A1D8
+ push {r3-r7, lr}
+ add r6, r0, #0x0
+ bl FUN_0206B9AC
+ add r5, r0, #0x0
+ mov r4, #0x0
+ cmp r5, #0x0
+ ble _0204A204
+_0204A1E8:
+ add r0, r6, #0x0
+ add r1, r4, #0x0
+ bl FUN_0206B9B0
+ add r7, r0, #0x0
+ bl FUN_0204A01C
+ cmp r0, #0x0
+ beq _0204A1FE
+ add r0, r7, #0x0
+ pop {r3-r7, pc}
+_0204A1FE:
+ add r4, r4, #0x1
+ cmp r4, r5
+ blt _0204A1E8
+_0204A204:
+ bl ErrorHandling
+ mov r0, #0x0
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_0204A20C
+FUN_0204A20C: ; 0x0204A20C
+ push {r3-r7, lr}
+ add r6, r0, #0x0
+ bl FUN_0206B9AC
+ lsl r0, r0, #0x10
+ lsr r5, r0, #0x10
+ ldr r4, _0204A244 ; =0x00000000
+ beq _0204A240
+_0204A21C:
+ add r0, r6, #0x0
+ add r1, r4, #0x0
+ bl FUN_0206B9B0
+ mov r1, #0x4c
+ mov r2, #0x0
+ add r7, r0, #0x0
+ bl FUN_020671BC
+ cmp r0, #0x0
+ bne _0204A236
+ add r0, r7, #0x0
+ pop {r3-r7, pc}
+_0204A236:
+ add r0, r4, #0x1
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+ cmp r4, r5
+ blo _0204A21C
+_0204A240:
+ mov r0, #0x0
+ pop {r3-r7, pc}
+ .balign 4
+_0204A244: .word 0x00000000
+
+ thumb_func_start FUN_0204A248
+FUN_0204A248: ; 0x0204A248
+ push {r3, lr}
+ bl FUN_0204A1A8
+ cmp r0, #0x2
+ blt _0204A256
+ mov r0, #0x1
+ pop {r3, pc}
+_0204A256:
+ mov r0, #0x0
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_0204A25C
+FUN_0204A25C: ; 0x0204A25C
+ push {r3-r7, lr}
+ mov r2, #0x1
+ add r1, sp, #0x0
+ add r7, r0, #0x0
+ strb r2, [r1, #0x0]
+ bl FUN_0206B9AC
+ add r6, r0, #0x0
+ mov r5, #0x0
+ cmp r6, #0x0
+ ble _0204A298
+_0204A272:
+ add r0, r7, #0x0
+ add r1, r5, #0x0
+ bl FUN_0206B9B0
+ mov r1, #0x4c
+ mov r2, #0x0
+ add r4, r0, #0x0
+ bl FUN_020671BC
+ cmp r0, #0x0
+ bne _0204A292
+ add r0, r4, #0x0
+ mov r1, #0x19
+ add r2, sp, #0x0
+ bl FUN_02067830
+_0204A292:
+ add r5, r5, #0x1
+ cmp r5, r6
+ blt _0204A272
+_0204A298:
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_0204A29C
+FUN_0204A29C: ; 0x0204A29C
+ push {r3-r7, lr}
+ sub sp, #0x10
+ mov r7, #0x0
+ str r0, [sp, #0x0]
+ str r1, [sp, #0x4]
+ add r6, r7, #0x0
+ bl FUN_0206B9AC
+ add r4, r7, #0x0
+ str r0, [sp, #0x8]
+ cmp r0, #0x0
+ ble _0204A310
+_0204A2B4:
+ ldr r0, [sp, #0x0]
+ add r1, r4, #0x0
+ bl FUN_0206B9B0
+ add r5, r0, #0x0
+ bl FUN_0204A01C
+ cmp r0, #0x0
+ beq _0204A308
+ add r0, r5, #0x0
+ mov r1, #0x9f
+ mov r2, #0x0
+ bl FUN_020671BC
+ mov r1, #0x88
+ tst r0, r1
+ beq _0204A308
+ add r0, r5, #0x0
+ mov r1, #0xa2
+ mov r2, #0x0
+ bl FUN_020671BC
+ str r0, [sp, #0xc]
+ cmp r0, #0x1
+ bls _0204A2EA
+ sub r0, r0, #0x1
+ str r0, [sp, #0xc]
+_0204A2EA:
+ add r0, r5, #0x0
+ mov r1, #0xa2
+ add r2, sp, #0xc
+ bl FUN_02067830
+ ldr r0, [sp, #0xc]
+ cmp r0, #0x1
+ bne _0204A306
+ ldr r2, [sp, #0x4]
+ add r0, r5, #0x0
+ mov r1, #0x7
+ add r6, r6, #0x1
+ bl FUN_020688E8
+_0204A306:
+ add r7, r7, #0x1
+_0204A308:
+ ldr r0, [sp, #0x8]
+ add r4, r4, #0x1
+ cmp r4, r0
+ blt _0204A2B4
+_0204A310:
+ cmp r6, #0x0
+ beq _0204A31A
+ add sp, #0x10
+ mov r0, #0x2
+ pop {r3-r7, pc}
+_0204A31A:
+ cmp r7, #0x0
+ beq _0204A324
+ add sp, #0x10
+ mov r0, #0x1
+ pop {r3-r7, pc}
+_0204A324:
+ mov r0, #0x0
+ add sp, #0x10
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_0204A32C
+FUN_0204A32C: ; 0x0204A32C
+ push {r3-r4, lr}
+ sub sp, #0x4
+ mov r1, #0x9f
+ mov r2, #0x0
+ add r4, r0, #0x0
+ bl FUN_020671BC
+ mov r1, #0x88
+ tst r0, r1
+ beq _0204A362
+ add r0, r4, #0x0
+ mov r1, #0xa2
+ mov r2, #0x0
+ bl FUN_020671BC
+ cmp r0, #0x1
+ bne _0204A362
+ mov r0, #0x0
+ str r0, [sp, #0x0]
+ add r0, r4, #0x0
+ mov r1, #0x9f
+ add r2, sp, #0x0
+ bl FUN_02067830
+ add sp, #0x4
+ mov r0, #0x1
+ pop {r3-r4, pc}
+_0204A362:
+ mov r0, #0x0
+ add sp, #0x4
+ pop {r3-r4, pc}
+
+ thumb_func_start FUN_0204A368
+FUN_0204A368: ; 0x0204A368
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ ldr r0, [r5, #0x54]
+ add r4, r1, #0x0
+ cmp r0, #0x0
+ bne _0204A388
+ ldr r1, _0204A38C ; =0x000080E2
+ mov r0, #0xb
+ bl FUN_02016998
+ str r0, [r5, #0x54]
+ ldr r0, [r5, #0x28]
+ ldr r1, [r5, #0x54]
+ add r2, r4, #0x0
+ bl FUN_0204A3B0
+_0204A388:
+ pop {r3-r5, pc}
+ nop
+_0204A38C: .word 0x000080E2
+
+ thumb_func_start FUN_0204A390
+FUN_0204A390: ; 0x0204A390
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r0, [r4, #0x54]
+ cmp r0, #0x0
+ beq _0204A3A2
+ bl FUN_02016A18
+ mov r0, #0x0
+ str r0, [r4, #0x54]
+_0204A3A2:
+ pop {r4, pc}
+
+ thumb_func_start FUN_0204A3A4
+FUN_0204A3A4: ; 0x0204A3A4
+ ldrb r0, [r1, r0]
+ add r2, r1, #0x0
+ add r2, #0xe2
+ lsl r0, r0, #0xb
+ add r0, r2, r0
+ bx lr
+
+ thumb_func_start FUN_0204A3B0
+FUN_0204A3B0: ; 0x0204A3B0
+ push {r4-r7, lr}
+ sub sp, #0x3c
+ str r1, [sp, #0x8]
+ str r2, [sp, #0xc]
+ str r0, [sp, #0x4]
+ mov r2, #0x0
+ add r1, sp, #0x18
+ strb r2, [r1, #0x0]
+ bl FUN_020344FC
+ add r6, r0, #0x0
+ ldr r0, [sp, #0x4]
+ bl FUN_0203450C
+ str r0, [sp, #0x10]
+ mov r0, #0x0
+ str r0, [sp, #0x14]
+ ldr r0, [sp, #0x10]
+ cmp r0, #0x0
+ ble _0204A410
+ ldr r7, [sp, #0x14]
+_0204A3DA:
+ mov r5, #0x0
+ cmp r6, #0x0
+ ble _0204A402
+_0204A3E0:
+ add r0, r5, r7
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+ ldr r1, [sp, #0x4]
+ add r0, r4, #0x0
+ bl FUN_020344D8
+ add r1, sp, #0x18
+ add r1, #0x2
+ add r2, sp, #0x18
+ bl FUN_0204A45C
+ ldr r1, [sp, #0x8]
+ add r5, r5, #0x1
+ strb r0, [r1, r4]
+ cmp r5, r6
+ blt _0204A3E0
+_0204A402:
+ ldr r0, [sp, #0x14]
+ add r7, r7, r6
+ add r1, r0, #0x1
+ ldr r0, [sp, #0x10]
+ str r1, [sp, #0x14]
+ cmp r1, r0
+ blt _0204A3DA
+_0204A410:
+ mov r0, #0x43
+ mov r1, #0xb
+ bl FUN_02006670
+ add r7, r0, #0x0
+ ldr r0, [sp, #0xc]
+ mov r6, #0x0
+ cmp r0, #0x0
+ ble _0204A452
+ ldr r0, [sp, #0x8]
+ add r4, sp, #0x18
+ add r0, #0xe2
+ add r4, #0x2
+ add r5, r6, #0x0
+ str r0, [sp, #0x8]
+_0204A42E:
+ ldr r0, [sp, #0x8]
+ lsl r1, r5, #0x1
+ add r0, r0, r1
+ str r0, [sp, #0x0]
+ ldrh r1, [r4, #0x0]
+ mov r2, #0x10
+ add r0, r7, #0x0
+ lsl r3, r2, #0x7
+ bl FUN_02006814
+ mov r0, #0x1
+ lsl r0, r0, #0xa
+ add r5, r5, r0
+ ldr r0, [sp, #0xc]
+ add r6, r6, #0x1
+ add r4, r4, #0x2
+ cmp r6, r0
+ blt _0204A42E
+_0204A452:
+ add r0, r7, #0x0
+ bl FUN_020066F4
+ add sp, #0x3c
+ pop {r4-r7, pc}
+
+ thumb_func_start FUN_0204A45C
+FUN_0204A45C: ; 0x0204A45C
+ push {r3-r7, lr}
+ add r7, r2, #0x0
+ add r5, r0, #0x0
+ ldrb r0, [r7, #0x0]
+ add r6, r1, #0x0
+ mov r4, #0x0
+ cmp r0, #0x0
+ bls _0204A482
+_0204A46C:
+ lsl r1, r4, #0x1
+ ldrh r1, [r6, r1]
+ cmp r5, r1
+ bne _0204A478
+ add r0, r4, #0x0
+ pop {r3-r7, pc}
+_0204A478:
+ add r1, r4, #0x1
+ lsl r1, r1, #0x18
+ lsr r4, r1, #0x18
+ cmp r4, r0
+ blo _0204A46C
+_0204A482:
+ cmp r4, #0x10
+ blo _0204A48A
+ bl ErrorHandling
+_0204A48A:
+ lsl r0, r4, #0x1
+ strh r5, [r6, r0]
+ ldrb r0, [r7, #0x0]
+ add r0, r0, #0x1
+ strb r0, [r7, #0x0]
+ add r0, r4, #0x0
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_0204A498
+FUN_0204A498: ; 0x0204A498
+ cmp r0, r1
+ blt _0204A4A0
+ sub r0, r0, r1
+ bx lr
+_0204A4A0:
+ sub r0, r1, r0
+ bx lr
+
+ thumb_func_start FUN_0204A4A4
+FUN_0204A4A4: ; 0x0204A4A4
+ push {r3-r7, lr}
+ sub sp, #0x38
+ add r4, r2, #0x0
+ add r6, r3, #0x0
+ add r5, r0, #0x0
+ mov r0, #0x0
+ str r4, [sp, #0x2c]
+ str r6, [sp, #0x34]
+ str r0, [sp, #0x10]
+ str r0, [sp, #0x30]
+ ldr r0, [r5, #0x24]
+ str r1, [sp, #0x4]
+ str r0, [sp, #0x8]
+ ldr r0, [r5, #0x28]
+ bl FUN_020344FC
+ str r0, [sp, #0x24]
+ lsl r0, r0, #0x5
+ str r0, [sp, #0xc]
+ asr r0, r4, #0xf
+ lsr r0, r0, #0x10
+ add r0, r4, r0
+ asr r7, r0, #0x10
+ asr r0, r6, #0xf
+ lsr r0, r0, #0x10
+ add r0, r6, r0
+ asr r0, r0, #0x10
+ str r0, [sp, #0x1c]
+ add r2, r5, #0x0
+ add r2, #0x9c
+ ldr r1, [sp, #0x1c]
+ ldr r2, [r2, #0x0]
+ add r0, r7, #0x0
+ add r3, sp, #0x28
+ bl FUN_021F4520
+ str r0, [sp, #0x20]
+ lsr r0, r7, #0x5
+ str r0, [sp, #0x18]
+ ldr r0, [sp, #0x1c]
+ ldr r1, [sp, #0x1c]
+ lsr r0, r0, #0x5
+ str r0, [sp, #0x14]
+ ldr r0, [sp, #0x18]
+ lsl r0, r0, #0x5
+ add r0, #0x10
+ lsl r0, r0, #0x10
+ sub r0, r4, r0
+ str r0, [sp, #0x2c]
+ ldr r0, [sp, #0x14]
+ lsl r0, r0, #0x5
+ add r0, #0x10
+ lsl r0, r0, #0x10
+ sub r0, r6, r0
+ str r0, [sp, #0x34]
+ ldr r0, [sp, #0xc]
+ mul r0, r1
+ ldr r1, [sp, #0xc]
+ add r0, r7, r0
+ bl FUN_021EF620
+ ldr r2, [sp, #0x14]
+ add r1, r0, #0x0
+ add r3, r2, #0x0
+ ldr r0, [sp, #0x24]
+ ldr r2, [sp, #0x8]
+ mul r3, r0
+ ldr r0, [sp, #0x18]
+ add r0, r0, r3
+ bl FUN_021EF654
+ add r1, r0, #0x0
+ cmp r1, #0x3
+ bls _0204A53C
+ mov r4, #0x0
+ b _0204A558
+_0204A53C:
+ lsl r1, r1, #0x18
+ ldr r0, [sp, #0x8]
+ lsr r1, r1, #0x18
+ bl FUN_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
+ add r4, r0, #0x0
+_0204A558:
+ ldr r0, [sp, #0x20]
+ cmp r0, #0x0
+ beq _0204A5A4
+ add r0, sp, #0x28
+ add r5, #0x9c
+ ldrb r0, [r0, #0x0]
+ ldr r1, [r5, #0x0]
+ bl FUN_021F4568
+ add r5, r0, #0x0
+ cmp r4, #0x0
+ beq _0204A59E
+ ldr r0, [sp, #0x30]
+ str r0, [sp, #0x10]
+ cmp r5, r0
+ bgt _0204A57C
+ mov r1, #0x1
+ b _0204A5B2
+_0204A57C:
+ ldr r1, [sp, #0x4]
+ bl FUN_0204A498
+ add r4, r0, #0x0
+ ldr r1, [sp, #0x4]
+ add r0, r5, #0x0
+ bl FUN_0204A498
+ cmp r4, r0
+ bgt _0204A598
+ ldr r0, [sp, #0x30]
+ mov r1, #0x1
+ str r0, [sp, #0x10]
+ b _0204A5B2
+_0204A598:
+ str r5, [sp, #0x10]
+ mov r1, #0x2
+ b _0204A5B2
+_0204A59E:
+ mov r1, #0x2
+ str r5, [sp, #0x10]
+ b _0204A5B2
+_0204A5A4:
+ cmp r4, #0x0
+ beq _0204A5B0
+ ldr r0, [sp, #0x30]
+ mov r1, #0x1
+ str r0, [sp, #0x10]
+ b _0204A5B2
+_0204A5B0:
+ mov r1, #0x0
+_0204A5B2:
+ ldr r0, [sp, #0x50]
+ cmp r0, #0x0
+ beq _0204A5BA
+ strb r1, [r0, #0x0]
+_0204A5BA:
+ ldr r0, [sp, #0x10]
+ add sp, #0x38
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_0204A5C0
+FUN_0204A5C0: ; 0x0204A5C0
+ push {r3, lr}
+ asr r1, r2, #0xf
+ lsr r1, r1, #0x10
+ add r1, r2, r1
+ asr r2, r3, #0xf
+ lsr r2, r2, #0x10
+ add r2, r3, r2
+ ldr r0, [r0, #0x24]
+ asr r1, r1, #0x10
+ asr r2, r2, #0x10
+ mov r3, #0x0
+ bl FUN_021EF844
+ ldr r1, [sp, #0x8]
+ cmp r1, #0x0
+ beq _0204A5EE
+ cmp r0, #0x0
+ beq _0204A5E8
+ mov r1, #0x1
+ b _0204A5EA
+_0204A5E8:
+ mov r1, #0x0
+_0204A5EA:
+ ldr r0, [sp, #0x8]
+ strb r1, [r0, #0x0]
+_0204A5EE:
+ mov r0, #0x0
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_0204A5F4
+FUN_0204A5F4: ; 0x0204A5F4
+ push {r3-r7, lr}
+ ldr r7, [r0, #0x24]
+ add r4, r3, #0x0
+ add r0, r7, #0x0
+ add r3, sp, #0x0
+ add r5, r1, #0x0
+ add r6, r2, #0x0
+ bl FUN_021EF844
+ cmp r0, #0x0
+ bne _0204A612
+ mov r0, #0xff
+ strh r0, [r4, #0x0]
+ mov r0, #0x0
+ pop {r3-r7, pc}
+_0204A612:
+ add r1, sp, #0x0
+ ldrb r1, [r1, #0x0]
+ add r0, r7, #0x0
+ bl FUN_021EF8DC
+ lsr r2, r5, #0x1f
+ lsl r1, r5, #0x1b
+ sub r1, r1, r2
+ mov r3, #0x1b
+ ror r1, r3
+ add r1, r2, r1
+ lsr r5, r6, #0x1f
+ lsl r2, r6, #0x1b
+ sub r2, r2, r5
+ ror r2, r3
+ add r2, r5, r2
+ lsl r2, r2, #0x5
+ add r1, r1, r2
+ lsl r1, r1, #0x1
+ ldrh r0, [r0, r1]
+ strh r0, [r4, #0x0]
+ mov r0, #0x1
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_0204A640
+FUN_0204A640: ; 0x0204A640
+ push {r3-r7, lr}
+ add r6, r0, #0x0
+ ldr r0, [r6, #0x28]
+ add r4, r2, #0x0
+ add r5, r1, #0x0
+ add r7, r3, #0x0
+ bl FUN_020344FC
+ asr r2, r4, #0x4
+ asr r1, r5, #0x4
+ lsr r2, r2, #0x1b
+ lsr r1, r1, #0x1b
+ add r2, r4, r2
+ add r1, r5, r1
+ asr r2, r2, #0x5
+ asr r1, r1, #0x5
+ mul r0, r2
+ add r0, r1, r0
+ ldr r1, [r6, #0x54]
+ bl FUN_0204A3A4
+ lsr r2, r5, #0x1f
+ lsl r1, r5, #0x1b
+ sub r1, r1, r2
+ mov r3, #0x1b
+ ror r1, r3
+ add r1, r2, r1
+ lsr r5, r4, #0x1f
+ lsl r2, r4, #0x1b
+ sub r2, r2, r5
+ ror r2, r3
+ add r2, r5, r2
+ lsl r2, r2, #0x5
+ add r1, r1, r2
+ lsl r1, r1, #0x1
+ ldrh r0, [r0, r1]
+ strh r0, [r7, #0x0]
+ mov r0, #0x1
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_0204A690
+FUN_0204A690: ; 0x0204A690
+ push {r3, lr}
+ cmp r1, #0x0
+ bne _0204A69C
+ ldr r1, _0204A6AC ; =0x020F4708
+ str r1, [r0, #0x0]
+ pop {r3, pc}
+_0204A69C:
+ cmp r1, #0x1
+ bne _0204A6A6
+ ldr r1, _0204A6B0 ; =0x020F4710
+ str r1, [r0, #0x0]
+ pop {r3, pc}
+_0204A6A6:
+ bl ErrorHandling
+ pop {r3, pc}
+ .balign 4
+_0204A6AC: .word 0x020F4708
+_0204A6B0: .word 0x020F4710
+
+ thumb_func_start FUN_0204A6B4
+FUN_0204A6B4: ; 0x0204A6B4
+ push {r3-r4, lr}
+ sub sp, #0x4
+ ldr r4, [r0, #0x58]
+ add r3, sp, #0x0
+ ldr r4, [r4, #0x4]
+ blx r4
+ cmp r0, #0x0
+ beq _0204A6DA
+ add r0, sp, #0x0
+ ldrh r0, [r0, #0x0]
+ asr r0, r0, #0xf
+ lsl r0, r0, #0x18
+ lsr r1, r0, #0x18
+ mov r0, #0x1
+ and r1, r0
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ cmp r1, #0x1
+ beq _0204A6DC
+_0204A6DA:
+ mov r0, #0x0
+_0204A6DC:
+ add sp, #0x4
+ pop {r3-r4, pc}
+
+ thumb_func_start FUN_0204A6E0
+FUN_0204A6E0: ; 0x0204A6E0
+ push {r3-r4, lr}
+ sub sp, #0x4
+ ldr r4, [r0, #0x58]
+ add r3, sp, #0x0
+ ldr r4, [r4, #0x4]
+ blx r4
+ cmp r0, #0x0
+ beq _0204A700
+ add r0, sp, #0x0
+ ldrh r0, [r0, #0x0]
+ add sp, #0x4
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ pop {r3-r4, pc}
+_0204A700:
+ mov r0, #0xff
+ add sp, #0x4
+ pop {r3-r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0204A708
+FUN_0204A708: ; 0x0204A708
+ push {r3-r4, lr}
+ sub sp, #0x4
+ ldr r4, [sp, #0x10]
+ str r4, [sp, #0x0]
+ ldr r4, [r0, #0x58]
+ ldr r4, [r4, #0x0]
+ blx r4
+ add sp, #0x4
+ pop {r3-r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0204A71C
+FUN_0204A71C: ; 0x0204A71C
+ push {r3-r5, lr}
+ add r4, r1, #0x0
+ ldr r1, [sp, #0x10]
+ mov r5, #0x2
+ str r1, [sp, #0x0]
+ ldr r1, [r4, #0x4]
+ lsl r2, r2, #0x10
+ lsl r5, r5, #0xe
+ lsl r3, r3, #0x10
+ add r2, r2, r5
+ add r3, r3, r5
+ bl FUN_0204A708
+ ldr r1, [r4, #0x4]
+ cmp r0, r1
+ bge _0204A744
+ mov r4, #0x0
+ add r2, r1, #0x0
+ mvn r4, r4
+ b _0204A754
+_0204A744:
+ cmp r0, r1
+ ble _0204A750
+ add r2, r0, #0x0
+ add r0, r1, #0x0
+ mov r4, #0x1
+ b _0204A754
+_0204A750:
+ mov r0, #0x0
+ pop {r3-r5, pc}
+_0204A754:
+ sub r1, r2, r0
+ mov r0, #0x5
+ lsl r0, r0, #0xe
+ cmp r1, r0
+ blt _0204A768
+ cmp r4, #0x0
+ bne _0204A76A
+ bl ErrorHandling
+ b _0204A76A
+_0204A768:
+ mov r4, #0x0
+_0204A76A:
+ add r0, r4, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_0204A770
+FUN_0204A770: ; 0x0204A770
+ push {r3-r7, lr}
+ sub sp, #0x8
+ add r6, sp, #0x4
+ add r5, r0, #0x0
+ add r4, r2, #0x0
+ add r7, r3, #0x0
+ str r6, [sp, #0x0]
+ bl FUN_0204A71C
+ ldr r1, [sp, #0x20]
+ cmp r1, #0x0
+ beq _0204A78A
+ strb r0, [r1, #0x0]
+_0204A78A:
+ cmp r0, #0x0
+ bne _0204A7C2
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ add r2, r7, #0x0
+ bl FUN_0204A6B4
+ add r6, r0, #0x0
+ bne _0204A7BC
+ add r0, sp, #0x4
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x2
+ bne _0204A7BC
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ add r2, r7, #0x0
+ bl FUN_0204A6E0
+ bl FUN_020548B4
+ cmp r0, #0x0
+ beq _0204A7BC
+ add sp, #0x8
+ mov r0, #0x1
+ pop {r3-r7, pc}
+_0204A7BC:
+ add sp, #0x8
+ add r0, r6, #0x0
+ pop {r3-r7, pc}
+_0204A7C2:
+ mov r0, #0x1
+ add sp, #0x8
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_0204A7C8
+FUN_0204A7C8: ; 0x0204A7C8
+ push {r3-r7, lr}
+ sub sp, #0x10
+ add r6, sp, #0x8
+ add r5, r0, #0x0
+ str r1, [sp, #0x4]
+ add r4, r2, #0x0
+ add r7, r3, #0x0
+ str r6, [sp, #0x0]
+ bl FUN_0204A71C
+ ldr r1, [sp, #0x28]
+ cmp r1, #0x0
+ beq _0204A7E4
+ strb r0, [r1, #0x0]
+_0204A7E4:
+ cmp r0, #0x0
+ bne _0204A83A
+ add r0, sp, #0xc
+ str r0, [sp, #0x0]
+ ldr r3, [sp, #0x4]
+ add r0, r5, #0x0
+ ldr r3, [r3, #0x4]
+ add r1, r4, #0x0
+ add r2, r7, #0x0
+ bl FUN_0205CE00
+ cmp r0, #0x0
+ bne _0204A834
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ add r2, r7, #0x0
+ bl FUN_0204A6B4
+ str r0, [sp, #0xc]
+ cmp r0, #0x0
+ bne _0204A82E
+ add r0, sp, #0x8
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x2
+ bne _0204A82E
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ add r2, r7, #0x0
+ bl FUN_0204A6E0
+ bl FUN_020548B4
+ cmp r0, #0x0
+ beq _0204A82E
+ add sp, #0x10
+ mov r0, #0x1
+ pop {r3-r7, pc}
+_0204A82E:
+ ldr r0, [sp, #0xc]
+ add sp, #0x10
+ pop {r3-r7, pc}
+_0204A834:
+ ldr r0, [sp, #0xc]
+ add sp, #0x10
+ pop {r3-r7, pc}
+_0204A83A:
+ mov r0, #0x1
+ add sp, #0x10
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_0204A840
+FUN_0204A840: ; 0x0204A840
+ push {r3-r7, lr}
+ add r6, r0, r2
+ ldr r0, [sp, #0x18]
+ add r4, r1, r3
+ add r0, r6, r0
+ str r0, [sp, #0x0]
+ ldr r0, [sp, #0x1c]
+ ldr r5, [sp, #0x20]
+ add r7, r4, r0
+ cmp r6, #0x0
+ blt _0204A864
+ cmp r4, #0x0
+ blt _0204A864
+ ldr r0, [sp, #0x0]
+ cmp r0, #0x0
+ blt _0204A864
+ cmp r7, #0x0
+ bge _0204A868
+_0204A864:
+ bl ErrorHandling
+_0204A868:
+ lsl r0, r6, #0x10
+ str r0, [r5, #0x0]
+ lsl r0, r4, #0x10
+ str r0, [r5, #0x4]
+ ldr r0, [sp, #0x0]
+ lsl r0, r0, #0x10
+ str r0, [r5, #0x8]
+ lsl r0, r7, #0x10
+ str r0, [r5, #0xc]
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_0204A87C
+FUN_0204A87C: ; 0x0204A87C
+ push {r4-r5, lr}
+ sub sp, #0xc
+ add r3, r0, #0x0
+ add r5, r1, #0x0
+ add r4, r2, #0x0
+ add r0, sp, #0x0
+ add r1, r3, #0x0
+ bl FUN_021E7EA0
+ ldr r1, [sp, #0x0]
+ ldr r0, [r4, #0x0]
+ ldr r2, [sp, #0x8]
+ add r0, r1, r0
+ str r0, [sp, #0x0]
+ ldr r1, [r4, #0x8]
+ add r2, r2, r1
+ str r2, [sp, #0x8]
+ ldr r1, [r5, #0x0]
+ cmp r1, r0
+ bgt _0204A8BC
+ ldr r1, [r5, #0x8]
+ cmp r0, r1
+ bgt _0204A8BC
+ ldr r0, [r5, #0x4]
+ cmp r0, r2
+ bgt _0204A8BC
+ ldr r0, [r5, #0xc]
+ cmp r2, r0
+ bgt _0204A8BC
+ add sp, #0xc
+ mov r0, #0x1
+ pop {r4-r5, pc}
+_0204A8BC:
+ mov r0, #0x0
+ add sp, #0xc
+ pop {r4-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_0204A8C4
+FUN_0204A8C4: ; 0x0204A8C4
+ push {r4-r7, lr}
+ sub sp, #0x1c
+ str r0, [sp, #0x0]
+ mov r0, #0x0
+ add r6, r1, #0x0
+ add r7, r2, #0x0
+ str r3, [sp, #0x4]
+ str r0, [sp, #0x8]
+_0204A8D4:
+ ldr r1, [sp, #0x0]
+ ldr r0, [sp, #0x8]
+ ldr r1, [r1, #0x24]
+ add r2, sp, #0xc
+ bl FUN_021EF604
+ ldr r0, [sp, #0x0]
+ ldr r1, [sp, #0x8]
+ ldr r0, [r0, #0x24]
+ bl FUN_021EF824
+ add r4, r0, #0x0
+ ldr r0, [sp, #0x0]
+ ldr r0, [r0, #0x28]
+ bl FUN_020344FC
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ add r2, sp, #0x10
+ bl FUN_0204AAD4
+ mov r5, #0x0
+_0204A900:
+ ldr r0, [sp, #0xc]
+ add r1, r5, #0x0
+ bl FUN_021E7ED0
+ add r1, r7, #0x0
+ add r2, sp, #0x10
+ add r4, r0, #0x0
+ bl FUN_0204A87C
+ cmp r0, #0x0
+ beq _0204A92E
+ add r0, r4, #0x0
+ bl FUN_021E7EC4
+ cmp r0, r6
+ bne _0204A92E
+ ldr r0, [sp, #0x4]
+ cmp r0, #0x0
+ beq _0204A928
+ str r4, [r0, #0x0]
+_0204A928:
+ add sp, #0x1c
+ mov r0, #0x1
+ pop {r4-r7, pc}
+_0204A92E:
+ add r0, r5, #0x1
+ lsl r0, r0, #0x18
+ lsr r5, r0, #0x18
+ cmp r5, #0x20
+ blo _0204A900
+ ldr r0, [sp, #0x8]
+ add r0, r0, #0x1
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x8]
+ cmp r0, #0x4
+ blo _0204A8D4
+ mov r0, #0x0
+ add sp, #0x1c
+ pop {r4-r7, pc}
+
+ thumb_func_start FUN_0204A94C
+FUN_0204A94C: ; 0x0204A94C
+ push {r4-r7, lr}
+ sub sp, #0x1c
+ str r0, [sp, #0x0]
+ mov r0, #0x0
+ add r5, r1, #0x0
+ add r4, r2, #0x0
+ str r3, [sp, #0x4]
+ str r0, [sp, #0x8]
+_0204A95C:
+ ldr r1, [sp, #0x0]
+ ldr r0, [sp, #0x8]
+ ldr r1, [r1, #0x24]
+ add r2, sp, #0xc
+ bl FUN_021EF604
+ ldr r0, [sp, #0x0]
+ ldr r1, [sp, #0x8]
+ ldr r0, [r0, #0x24]
+ bl FUN_021EF824
+ add r6, r0, #0x0
+ ldr r0, [sp, #0x0]
+ ldr r0, [r0, #0x28]
+ bl FUN_020344FC
+ add r1, r0, #0x0
+ add r0, r6, #0x0
+ add r2, sp, #0x10
+ bl FUN_0204AAD4
+ mov r6, #0x0
+_0204A988:
+ ldr r0, [sp, #0xc]
+ add r1, r6, #0x0
+ bl FUN_021E7ED0
+ ldr r1, [sp, #0x4]
+ add r2, sp, #0x10
+ add r7, r0, #0x0
+ bl FUN_0204A87C
+ cmp r0, #0x0
+ beq _0204A9D2
+ add r0, r7, #0x0
+ bl FUN_021E7EC4
+ mov r1, #0x0
+ cmp r4, #0x0
+ bls _0204A9D2
+_0204A9AA:
+ lsl r2, r1, #0x2
+ ldr r2, [r5, r2]
+ cmp r0, r2
+ bne _0204A9C8
+ ldr r1, [sp, #0x30]
+ cmp r1, #0x0
+ beq _0204A9BA
+ str r7, [r1, #0x0]
+_0204A9BA:
+ ldr r1, [sp, #0x34]
+ cmp r1, #0x0
+ beq _0204A9C2
+ str r0, [r1, #0x0]
+_0204A9C2:
+ add sp, #0x1c
+ mov r0, #0x1
+ pop {r4-r7, pc}
+_0204A9C8:
+ add r1, r1, #0x1
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ cmp r1, r4
+ blo _0204A9AA
+_0204A9D2:
+ add r0, r6, #0x1
+ lsl r0, r0, #0x18
+ lsr r6, r0, #0x18
+ cmp r6, #0x20
+ blo _0204A988
+ ldr r0, [sp, #0x8]
+ add r0, r0, #0x1
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x8]
+ cmp r0, #0x4
+ blo _0204A95C
+ mov r0, #0x0
+ add sp, #0x1c
+ pop {r4-r7, pc}
+
+ thumb_func_start FUN_0204A9F0
+FUN_0204A9F0: ; 0x0204A9F0
+ push {r3-r7, lr}
+ sub sp, #0x10
+ str r0, [sp, #0x0]
+ add r5, r1, #0x0
+ str r2, [sp, #0x4]
+ str r3, [sp, #0x8]
+ mov r7, #0x0
+_0204A9FE:
+ ldr r1, [sp, #0x0]
+ add r0, r7, #0x0
+ ldr r1, [r1, #0x24]
+ add r2, sp, #0xc
+ bl FUN_021EF604
+ mov r4, #0x0
+_0204AA0C:
+ ldr r0, [sp, #0xc]
+ add r1, r4, #0x0
+ bl FUN_021E7ED0
+ add r6, r0, #0x0
+ bl FUN_021E7EC4
+ cmp r0, r5
+ bne _0204AA40
+ ldr r0, [sp, #0x4]
+ cmp r0, #0x0
+ beq _0204AA26
+ str r6, [r0, #0x0]
+_0204AA26:
+ ldr r0, [sp, #0x8]
+ cmp r0, #0x0
+ beq _0204AA3A
+ ldr r0, [sp, #0x0]
+ add r1, r7, #0x0
+ ldr r0, [r0, #0x24]
+ bl FUN_021EF824
+ ldr r1, [sp, #0x8]
+ str r0, [r1, #0x0]
+_0204AA3A:
+ add sp, #0x10
+ mov r0, #0x1
+ pop {r3-r7, pc}
+_0204AA40:
+ add r0, r4, #0x1
+ lsl r0, r0, #0x18
+ lsr r4, r0, #0x18
+ cmp r4, #0x20
+ blo _0204AA0C
+ add r0, r7, #0x1
+ lsl r0, r0, #0x18
+ lsr r7, r0, #0x18
+ cmp r7, #0x4
+ blo _0204A9FE
+ mov r0, #0x0
+ add sp, #0x10
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_0204AA5C
+FUN_0204AA5C: ; 0x0204AA5C
+ push {r3-r7, lr}
+ sub sp, #0x10
+ str r0, [sp, #0x0]
+ mov r0, #0x0
+ add r5, r1, #0x0
+ add r4, r2, #0x0
+ str r3, [sp, #0x4]
+ str r0, [sp, #0x8]
+_0204AA6C:
+ ldr r1, [sp, #0x0]
+ ldr r0, [sp, #0x8]
+ ldr r1, [r1, #0x24]
+ add r2, sp, #0xc
+ bl FUN_021EF604
+ mov r6, #0x0
+_0204AA7A:
+ ldr r0, [sp, #0xc]
+ add r1, r6, #0x0
+ bl FUN_021E7ED0
+ add r7, r0, #0x0
+ bl FUN_021E7EC4
+ mov r1, #0x0
+ cmp r4, #0x0
+ bls _0204AAB6
+_0204AA8E:
+ lsl r2, r1, #0x2
+ ldr r2, [r5, r2]
+ cmp r0, r2
+ bne _0204AAAC
+ ldr r1, [sp, #0x4]
+ cmp r1, #0x0
+ beq _0204AA9E
+ str r7, [r1, #0x0]
+_0204AA9E:
+ ldr r1, [sp, #0x28]
+ cmp r1, #0x0
+ beq _0204AAA6
+ str r0, [r1, #0x0]
+_0204AAA6:
+ add sp, #0x10
+ mov r0, #0x1
+ pop {r3-r7, pc}
+_0204AAAC:
+ add r1, r1, #0x1
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ cmp r1, r4
+ blo _0204AA8E
+_0204AAB6:
+ add r0, r6, #0x1
+ lsl r0, r0, #0x18
+ lsr r6, r0, #0x18
+ cmp r6, #0x20
+ blo _0204AA7A
+ ldr r0, [sp, #0x8]
+ add r0, r0, #0x1
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x8]
+ cmp r0, #0x4
+ blo _0204AA6C
+ mov r0, #0x0
+ add sp, #0x10
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_0204AAD4
+FUN_0204AAD4: ; 0x0204AAD4
+ push {r4-r6, lr}
+ add r4, r2, #0x0
+ mov r2, #0x1
+ lsl r2, r2, #0x14
+ str r2, [r4, #0x0]
+ add r5, r0, #0x0
+ add r6, r1, #0x0
+ str r2, [r4, #0x8]
+ blx _s32_div_f
+ lsl r1, r1, #0x10
+ lsr r1, r1, #0x10
+ ldr r0, [r4, #0x0]
+ lsl r1, r1, #0x15
+ add r0, r0, r1
+ str r0, [r4, #0x0]
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ blx _s32_div_f
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ ldr r1, [r4, #0x8]
+ lsl r0, r0, #0x15
+ add r0, r1, r0
+ str r0, [r4, #0x8]
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_0204AB0C
+FUN_0204AB0C: ; 0x0204AB0C
+ push {r3, lr}
+ bl FUN_0200541C
+ bl FUN_02004810
+ mov r0, #0x0
+ bl FUN_0200415C
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_0204AB20
+FUN_0204AB20: ; 0x0204AB20
+ push {r4, lr}
+ ldr r0, [r0, #0xc]
+ add r4, r1, #0x0
+ bl FUN_02034E30
+ bl FUN_02034DE8
+ strh r4, [r0, #0x0]
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0204AB34
+FUN_0204AB34: ; 0x0204AB34
+ push {r3, lr}
+ ldr r0, [r0, #0xc]
+ bl FUN_02034E30
+ bl FUN_02034DE8
+ ldrh r0, [r0, #0x0]
+ pop {r3, pc}
+
+ thumb_func_start FUN_0204AB44
+FUN_0204AB44: ; 0x0204AB44
+ push {r3, lr}
+ ldr r0, [r0, #0xc]
+ bl FUN_02034E30
+ bl FUN_02034DE8
+ mov r1, #0x0
+ strh r1, [r0, #0x0]
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_0204AB58
+FUN_0204AB58: ; 0x0204AB58
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ ldr r0, [r5, #0x38]
+ add r4, r1, #0x0
+ bl FUN_020553C4
+ cmp r0, #0x2
+ bne _0204AB6C
+ ldr r0, _0204ABA0 ; =0x0000047F
+ pop {r3-r5, pc}
+_0204AB6C:
+ add r0, r5, #0x0
+ add r0, #0x90
+ ldr r0, [r0, #0x0]
+ bl FUN_0205E128
+ cmp r0, #0x1
+ bne _0204AB7E
+ ldr r0, _0204ABA4 ; =0x0000047E
+ pop {r3-r5, pc}
+_0204AB7E:
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_0204ABA8
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_0204AB34
+ cmp r0, #0x0
+ beq _0204AB9A
+ add r0, r5, #0x0
+ bl FUN_0204AB34
+ add r4, r0, #0x0
+_0204AB9A:
+ add r0, r4, #0x0
+ pop {r3-r5, pc}
+ nop
+_0204ABA0: .word 0x0000047F
+_0204ABA4: .word 0x0000047E
+
+ thumb_func_start FUN_0204ABA8
+FUN_0204ABA8: ; 0x0204ABA8
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ bl FUN_0201277C
+ cmp r0, #0x0
+ bne _0204ABBE
+ add r0, r4, #0x0
+ bl FUN_020347B0
+ b _0204ABC4
+_0204ABBE:
+ add r0, r4, #0x0
+ bl FUN_020347C4
+_0204ABC4:
+ add r6, r0, #0x0
+ ldr r0, [r5, #0xc]
+ bl FUN_020462AC
+ add r1, r4, #0x0
+ bl FUN_0205EF20
+ cmp r0, #0x0
+ beq _0204ABD8
+ add r6, r0, #0x0
+_0204ABD8:
+ add r0, r6, #0x0
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_0204ABDC
+FUN_0204ABDC: ; 0x0204ABDC
+ push {r4-r7, lr}
+ sub sp, #0x14
+ add r5, r0, #0x0
+ ldr r0, [r5, #0x38]
+ add r4, r1, #0x0
+ add r7, r2, #0x0
+ bl FUN_020553C4
+ add r6, r0, #0x0
+ bl FUN_02004104
+ cmp r0, #0x1
+ bne _0204ABFC
+ add sp, #0x14
+ mov r0, #0x0
+ pop {r4-r7, pc}
+_0204ABFC:
+ add r0, r5, #0x0
+ bl FUN_02004124
+ cmp r4, r0
+ bne _0204AC0C
+ add sp, #0x14
+ mov r0, #0x0
+ pop {r4-r7, pc}
+_0204AC0C:
+ bl FUN_02004810
+ add r0, r5, #0x0
+ add r1, r7, #0x0
+ add r2, sp, #0x10
+ add r3, sp, #0xc
+ bl FUN_0204ACCC
+ cmp r6, #0x1
+ beq _0204AC22
+ bne _0204AC3A
+_0204AC22:
+ mov r0, #0x1e
+ str r0, [sp, #0x0]
+ mov r0, #0x0
+ str r0, [sp, #0x4]
+ str r0, [sp, #0x8]
+ ldr r2, [sp, #0x10]
+ ldr r3, [sp, #0xc]
+ mov r0, #0x4
+ add r1, r4, #0x0
+ bl FUN_02004E08
+ b _0204AC4C
+_0204AC3A:
+ mov r0, #0x0
+ str r0, [sp, #0x0]
+ str r0, [sp, #0x4]
+ ldr r2, [sp, #0x10]
+ ldr r3, [sp, #0xc]
+ mov r0, #0x4
+ add r1, r4, #0x0
+ bl FUN_02004DCC
+_0204AC4C:
+ mov r0, #0x1
+ add sp, #0x14
+ pop {r4-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_0204AC54
+FUN_0204AC54: ; 0x0204AC54
+ push {r4-r6, lr}
+ sub sp, #0x10
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ add r6, r2, #0x0
+ bl FUN_02004104
+ cmp r0, #0x1
+ bne _0204AC6C
+ add sp, #0x10
+ mov r0, #0x0
+ pop {r4-r6, pc}
+_0204AC6C:
+ add r0, r5, #0x0
+ bl FUN_02004124
+ cmp r4, r0
+ bne _0204AC7C
+ add sp, #0x10
+ mov r0, #0x0
+ pop {r4-r6, pc}
+_0204AC7C:
+ bl FUN_02004810
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ add r2, sp, #0xc
+ add r3, sp, #0x8
+ bl FUN_0204ACCC
+ mov r0, #0x1
+ str r0, [sp, #0x0]
+ mov r0, #0x0
+ str r0, [sp, #0x4]
+ ldr r2, [sp, #0xc]
+ ldr r3, [sp, #0x8]
+ mov r0, #0x4
+ add r1, r4, #0x0
+ bl FUN_02004DCC
+ mov r0, #0x1
+ add sp, #0x10
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_0204ACA8
+FUN_0204ACA8: ; 0x0204ACA8
+ push {r3-r7, lr}
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ add r6, r2, #0x0
+ bl FUN_0204AB58
+ add r7, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_0204AD44
+ bl FUN_0200414C
+ add r0, r5, #0x0
+ add r1, r7, #0x0
+ add r2, r6, #0x0
+ bl FUN_0204AC54
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_0204ACCC
+FUN_0204ACCC: ; 0x0204ACCC
+ cmp r1, #0x3
+ bhi _0204AD0A
+ add r0, r1, r1
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0204ACDC: ; jump table (using 16-bit offset)
+ .short _0204ACE4 - _0204ACDC - 2; case 0
+ .short _0204ACEE - _0204ACDC - 2; case 1
+ .short _0204ACF8 - _0204ACDC - 2; case 2
+ .short _0204AD02 - _0204ACDC - 2; case 3
+_0204ACE4:
+ mov r0, #0x1e
+ str r0, [r2, #0x0]
+ mov r0, #0x0
+ str r0, [r3, #0x0]
+ bx lr
+_0204ACEE:
+ mov r0, #0x3c
+ str r0, [r2, #0x0]
+ mov r0, #0x0
+ str r0, [r3, #0x0]
+ bx lr
+_0204ACF8:
+ mov r0, #0x3c
+ str r0, [r2, #0x0]
+ mov r0, #0xf
+ str r0, [r3, #0x0]
+ bx lr
+_0204AD02:
+ mov r0, #0x3c
+ str r0, [r2, #0x0]
+ mov r0, #0x0
+ str r0, [r3, #0x0]
+_0204AD0A:
+ bx lr
+
+ thumb_func_start FUN_0204AD0C
+FUN_0204AD0C: ; 0x0204AD0C
+ push {r3-r5, lr}
+ mov r1, #0x1
+ bl FUN_0206AC74
+ lsl r0, r0, #0x18
+ lsr r5, r0, #0x18
+ ldr r0, _0204AD38 ; =0x0000044D
+ ldr r2, _0204AD3C ; =0x020F4718
+ mov r4, #0x0
+_0204AD1E:
+ lsl r3, r4, #0x2
+ ldrh r1, [r2, r3]
+ cmp r5, r1
+ bne _0204AD2C
+ ldr r0, _0204AD40 ; =0x020F471A
+ ldrh r0, [r0, r3]
+ pop {r3-r5, pc}
+_0204AD2C:
+ add r1, r4, #0x1
+ lsl r1, r1, #0x10
+ lsr r4, r1, #0x10
+ cmp r4, #0x4e
+ blo _0204AD1E
+ pop {r3-r5, pc}
+ .balign 4
+_0204AD38: .word 0x0000044D
+_0204AD3C: .word 0x020F4718
+_0204AD40: .word 0x020F471A
+
+ thumb_func_start FUN_0204AD44
+FUN_0204AD44: ; 0x0204AD44
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl FUN_0201277C
+ cmp r0, #0x0
+ bne _0204AD58
+ add r0, r4, #0x0
+ bl FUN_020347B0
+ pop {r4, pc}
+_0204AD58:
+ add r0, r4, #0x0
+ bl FUN_020347C4
+ pop {r4, pc}
+
+ thumb_func_start FUN_0204AD60
+FUN_0204AD60: ; 0x0204AD60
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ add r6, r1, #0x0
+ bl FUN_02004104
+ cmp r0, #0x1
+ beq _0204AD88
+ bl FUN_02004124
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ bl FUN_0204ABA8
+ cmp r4, r0
+ beq _0204AD88
+ mov r0, #0x0
+ mov r1, #0x28
+ bl FUN_020053CC
+_0204AD88:
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_0204AD8C
+FUN_0204AD8C: ; 0x0204AD8C
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ bl FUN_02004104
+ cmp r0, #0x1
+ beq _0204ADB8
+ mov r0, #0x0
+ bl FUN_0200415C
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_0204ABA8
+ add r4, r0, #0x0
+ bl FUN_0200414C
+ mov r0, #0x4
+ add r1, r4, #0x0
+ mov r2, #0x1
+ bl FUN_0200433C
+_0204ADB8:
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_0204ADBC
+FUN_0204ADBC: ; 0x0204ADBC
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ bl FUN_0204AB58
+ add r6, r0, #0x0
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_0204ABA8
+ bl FUN_0200414C
+ mov r0, #0x4
+ add r1, r6, #0x0
+ mov r2, #0x1
+ bl FUN_0200433C
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_0204ADE0
+FUN_0204ADE0: ; 0x0204ADE0
+ mov r3, #0x0
+ add r2, r3, #0x0
+_0204ADE4:
+ lsl r1, r3, #0x2
+ add r1, r0, r1
+ strb r2, [r1, #0x6]
+ strb r2, [r1, #0x7]
+ strb r2, [r1, #0x8]
+ strb r2, [r1, #0x9]
+ add r1, r3, #0x1
+ lsl r1, r1, #0x18
+ lsr r3, r1, #0x18
+ cmp r3, #0x6
+ blo _0204ADE4
+ str r2, [r0, #0x0]
+ strb r2, [r0, #0x4]
+ strb r2, [r0, #0x5]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_0204AE04
+FUN_0204AE04: ; 0x0204AE04
+ push {r4, lr}
+ add r4, r0, #0x0
+ asr r0, r1, #0x4
+ lsr r0, r0, #0x1b
+ add r0, r1, r0
+ asr r1, r2, #0x4
+ lsr r1, r1, #0x1b
+ add r1, r2, r1
+ lsl r0, r0, #0x13
+ lsl r1, r1, #0x13
+ ldrb r2, [r4, #0x4]
+ lsr r0, r0, #0x18
+ lsr r1, r1, #0x18
+ cmp r0, r2
+ bne _0204AE28
+ ldrb r2, [r4, #0x5]
+ cmp r1, r2
+ beq _0204AE58
+_0204AE28:
+ ldr r2, [r4, #0x0]
+ lsl r2, r2, #0x2
+ add r2, r4, r2
+ strb r0, [r2, #0x6]
+ ldr r0, [r4, #0x0]
+ lsl r0, r0, #0x2
+ add r0, r4, r0
+ strb r1, [r0, #0x7]
+ ldr r0, [r4, #0x0]
+ mov r1, #0xff
+ lsl r0, r0, #0x2
+ add r0, r4, r0
+ strb r1, [r0, #0x8]
+ ldr r0, [r4, #0x0]
+ mov r1, #0x1
+ lsl r0, r0, #0x2
+ add r0, r4, r0
+ strb r1, [r0, #0x9]
+ ldr r0, [r4, #0x0]
+ mov r1, #0x6
+ add r0, r0, #0x1
+ blx _s32_div_f
+ str r1, [r4, #0x0]
+_0204AE58:
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0204AE5C
+FUN_0204AE5C: ; 0x0204AE5C
+ push {r4, lr}
+ add r4, r0, #0x0
+ lsl r0, r1, #0x18
+ lsl r1, r2, #0x18
+ ldrb r2, [r4, #0x4]
+ lsr r0, r0, #0x18
+ lsr r1, r1, #0x18
+ cmp r0, r2
+ bne _0204AE74
+ ldrb r2, [r4, #0x5]
+ cmp r1, r2
+ beq _0204AEA6
+_0204AE74:
+ ldr r2, [r4, #0x0]
+ lsl r2, r2, #0x2
+ add r2, r4, r2
+ strb r0, [r2, #0x6]
+ ldr r2, [r4, #0x0]
+ lsl r2, r2, #0x2
+ add r2, r4, r2
+ strb r1, [r2, #0x7]
+ ldr r2, [r4, #0x0]
+ lsl r2, r2, #0x2
+ add r2, r4, r2
+ strb r3, [r2, #0x8]
+ ldr r2, [r4, #0x0]
+ mov r3, #0x1
+ lsl r2, r2, #0x2
+ add r2, r4, r2
+ strb r3, [r2, #0x9]
+ strb r0, [r4, #0x4]
+ strb r1, [r4, #0x5]
+ ldr r0, [r4, #0x0]
+ mov r1, #0x6
+ add r0, r0, #0x1
+ blx _s32_div_f
+ str r1, [r4, #0x0]
+_0204AEA6:
+ pop {r4, pc}
+
+ thumb_func_start FUN_0204AEA8
+FUN_0204AEA8: ; 0x0204AEA8
+ push {r3-r5, lr}
+ add r4, r0, #0x0
+ bl FUN_02046528
+ add r5, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_0204652C
+ add r4, r0, #0x0
+ ldr r1, [r4, #0x0]
+ cmp r1, #0x0
+ beq _0204AEC6
+ cmp r1, #0x1
+ beq _0204AEE6
+ b _0204AEF4
+_0204AEC6:
+ ldr r0, [r4, #0x8]
+ add r1, r5, #0x0
+ add r2, r4, #0x4
+ bl FUN_021E3444
+ ldr r1, [r4, #0xc]
+ mov r0, #0x5
+ lsl r1, r1, #0x10
+ lsr r1, r1, #0x10
+ mov r2, #0x1
+ bl FUN_0200433C
+ ldr r0, [r4, #0x0]
+ add r0, r0, #0x1
+ str r0, [r4, #0x0]
+ b _0204AEF4
+_0204AEE6:
+ ldr r1, [r4, #0x4]
+ cmp r1, #0x1
+ bne _0204AEF4
+ bl FUN_02016A18
+ mov r0, #0x1
+ pop {r3-r5, pc}
+_0204AEF4:
+ mov r0, #0x0
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_0204AEF8
+FUN_0204AEF8: ; 0x0204AEF8
+ push {r4-r6, lr}
+ add r6, r0, #0x0
+ add r5, r1, #0x0
+ mov r0, #0xb
+ mov r1, #0x10
+ add r4, r2, #0x0
+ bl FUN_020169D8
+ add r2, r0, #0x0
+ mov r0, #0x0
+ str r0, [r2, #0x0]
+ str r0, [r2, #0x4]
+ str r5, [r2, #0x8]
+ ldr r1, _0204AF20 ; =FUN_0204AEA8
+ add r0, r6, #0x0
+ str r4, [r2, #0xc]
+ bl FUN_0204640C
+ pop {r4-r6, pc}
+ nop
+_0204AF20: .word FUN_0204AEA8
+
+ thumb_func_start FUN_0204AF24
+FUN_0204AF24: ; 0x0204AF24
+ push {r3, lr}
+ bl FUN_02046528
+ bl FUN_0203739C
+ cmp r0, #0x0
+ bne _0204AF36
+ mov r0, #0x1
+ pop {r3, pc}
+_0204AF36:
+ mov r0, #0x0
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_0204AF3C
+FUN_0204AF3C: ; 0x0204AF3C
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ bl FUN_02046528
+ add r4, r0, #0x0
+ bl FUN_0203739C
+ cmp r0, #0x0
+ bne _0204AF54
+ bl ErrorHandling
+ pop {r3-r5, pc}
+_0204AF54:
+ add r0, r4, #0x0
+ bl FUN_02037394
+ ldr r1, _0204AF68 ; =FUN_0204AF24
+ add r0, r5, #0x0
+ mov r2, #0x0
+ bl FUN_0204640C
+ pop {r3-r5, pc}
+ nop
+_0204AF68: .word FUN_0204AF24
+
+ thumb_func_start FUN_0204AF6C
+FUN_0204AF6C: ; 0x0204AF6C
+ push {r3, lr}
+ bl FUN_02046528
+ bl FUN_020464A4
+ cmp r0, #0x0
+ beq _0204AF7E
+ mov r0, #0x1
+ pop {r3, pc}
+_0204AF7E:
+ mov r0, #0x0
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_0204AF84
+FUN_0204AF84: ; 0x0204AF84
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ bl FUN_02046528
+ add r4, r0, #0x0
+ bl FUN_0203739C
+ cmp r0, #0x0
+ beq _0204AF9C
+ bl ErrorHandling
+ pop {r3-r5, pc}
+_0204AF9C:
+ add r0, r4, #0x0
+ bl FUN_0204649C
+ ldr r1, _0204AFB0 ; =FUN_0204AF6C
+ add r0, r5, #0x0
+ mov r2, #0x0
+ bl FUN_0204640C
+ pop {r3-r5, pc}
+ nop
+_0204AFB0: .word FUN_0204AF6C
+
+ thumb_func_start FUN_0204AFB4
+FUN_0204AFB4: ; 0x0204AFB4
+ push {r3, lr}
+ bl FUN_0200E308
+ cmp r0, #0x0
+ beq _0204AFC2
+ mov r0, #0x1
+ pop {r3, pc}
+_0204AFC2:
+ mov r0, #0x0
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_0204AFC8
+FUN_0204AFC8: ; 0x0204AFC8
+ push {r3-r4, lr}
+ sub sp, #0xc
+ add r4, r0, #0x0
+ bl FUN_02046528
+ bl FUN_0203739C
+ cmp r0, #0x0
+ bne _0204AFE2
+ bl ErrorHandling
+ add sp, #0xc
+ pop {r3-r4, pc}
+_0204AFE2:
+ mov r0, #0x6
+ str r0, [sp, #0x0]
+ mov r0, #0x1
+ str r0, [sp, #0x4]
+ mov r0, #0x4
+ str r0, [sp, #0x8]
+ mov r0, #0x0
+ add r1, r0, #0x0
+ add r2, r0, #0x0
+ add r3, r0, #0x0
+ bl FUN_0200E1D0
+ ldr r1, _0204B008 ; =FUN_0204AFB4
+ add r0, r4, #0x0
+ mov r2, #0x0
+ bl FUN_0204640C
+ add sp, #0xc
+ pop {r3-r4, pc}
+ .balign 4
+_0204B008: .word FUN_0204AFB4
+
+ thumb_func_start FUN_0204B00C
+FUN_0204B00C: ; 0x0204B00C
+ push {r3-r4, lr}
+ sub sp, #0xc
+ add r4, r0, #0x0
+ bl FUN_02046528
+ bl FUN_0203739C
+ cmp r0, #0x0
+ bne _0204B026
+ bl ErrorHandling
+ add sp, #0xc
+ pop {r3-r4, pc}
+_0204B026:
+ mov r0, #0x6
+ str r0, [sp, #0x0]
+ mov r1, #0x1
+ str r1, [sp, #0x4]
+ mov r0, #0x4
+ str r0, [sp, #0x8]
+ mov r0, #0x0
+ add r2, r1, #0x0
+ add r3, r0, #0x0
+ bl FUN_0200E1D0
+ ldr r1, _0204B04C ; =FUN_0204AFB4
+ add r0, r4, #0x0
+ mov r2, #0x0
+ bl FUN_0204640C
+ add sp, #0xc
+ pop {r3-r4, pc}
+ nop
+_0204B04C: .word FUN_0204AFB4
+
+ thumb_func_start FUN_0204B050
+FUN_0204B050: ; 0x0204B050
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ bl FUN_02046530
+ add r4, r0, #0x0
+ ldr r0, [r4, #0x0]
+ cmp r0, #0x0
+ beq _0204B06A
+ cmp r0, #0x1
+ beq _0204B078
+ cmp r0, #0x2
+ beq _0204B086
+ b _0204B08A
+_0204B06A:
+ add r0, r5, #0x0
+ bl FUN_0204AFC8
+ ldr r0, [r4, #0x0]
+ add r0, r0, #0x1
+ str r0, [r4, #0x0]
+ b _0204B08A
+_0204B078:
+ add r0, r5, #0x0
+ bl FUN_0204AF3C
+ ldr r0, [r4, #0x0]
+ add r0, r0, #0x1
+ str r0, [r4, #0x0]
+ b _0204B08A
+_0204B086:
+ mov r0, #0x1
+ pop {r3-r5, pc}
+_0204B08A:
+ mov r0, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_0204B090
+FUN_0204B090: ; 0x0204B090
+ ldr r3, _0204B098 ; =FUN_0204640C
+ ldr r1, _0204B09C ; =FUN_0204B050
+ mov r2, #0x0
+ bx r3
+ .balign 4
+_0204B098: .word FUN_0204640C
+_0204B09C: .word FUN_0204B050
+
+ thumb_func_start FUN_0204B0A0
+FUN_0204B0A0: ; 0x0204B0A0
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ bl FUN_02046530
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_02046528
+ ldr r1, [r4, #0x0]
+ cmp r1, #0x0
+ beq _0204B0C0
+ cmp r1, #0x1
+ beq _0204B0CE
+ cmp r1, #0x2
+ beq _0204B0E0
+ b _0204B0E4
+_0204B0C0:
+ add r0, r5, #0x0
+ bl FUN_0204AF84
+ ldr r0, [r4, #0x0]
+ add r0, r0, #0x1
+ str r0, [r4, #0x0]
+ b _0204B0E4
+_0204B0CE:
+ bl FUN_021E331C
+ add r0, r5, #0x0
+ bl FUN_0204B00C
+ ldr r0, [r4, #0x0]
+ add r0, r0, #0x1
+ str r0, [r4, #0x0]
+ b _0204B0E4
+_0204B0E0:
+ mov r0, #0x1
+ pop {r3-r5, pc}
+_0204B0E4:
+ mov r0, #0x0
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_0204B0E8
+FUN_0204B0E8: ; 0x0204B0E8
+ ldr r3, _0204B0F0 ; =FUN_0204640C
+ ldr r1, _0204B0F4 ; =FUN_0204B0A0
+ mov r2, #0x0
+ bx r3
+ .balign 4
+_0204B0F0: .word FUN_0204640C
+_0204B0F4: .word FUN_0204B0A0
+
+ thumb_func_start FUN_0204B0F8
+FUN_0204B0F8: ; 0x0204B0F8
+ push {r4-r5, lr}
+ sub sp, #0x1c
+ add r5, r0, #0x0
+ ldr r0, [r5, #0xc]
+ bl FUN_02023794
+ add r4, r0, #0x0
+ ldr r0, [r4, #0x0]
+ cmp r0, #0x0
+ beq _0204B12A
+ add r0, sp, #0xc
+ add r1, sp, #0x0
+ bl FUN_0201265C
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ add r2, sp, #0xc
+ bl FUN_0204B130
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ add r2, sp, #0xc
+ add r3, sp, #0x0
+ bl FUN_0204B158
+_0204B12A:
+ add sp, #0x1c
+ pop {r4-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_0204B130
+FUN_0204B130: ; 0x0204B130
+ push {r4-r6, lr}
+ add r6, r0, #0x0
+ add r5, r1, #0x0
+ add r0, r2, #0x0
+ blx RTC_ConvertDateToDay
+ ldr r1, [r5, #0x20]
+ add r4, r0, #0x0
+ cmp r4, r1
+ bhs _0204B148
+ str r4, [r5, #0x20]
+ pop {r4-r6, pc}
+_0204B148:
+ cmp r4, r1
+ bls _0204B156
+ add r0, r6, #0x0
+ sub r1, r4, r1
+ bl FUN_0204B1DC
+ str r4, [r5, #0x20]
+_0204B156:
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_0204B158
+FUN_0204B158: ; 0x0204B158
+ push {r4-r7, lr}
+ sub sp, #0xc
+ add r4, r2, #0x0
+ str r0, [sp, #0x0]
+ add r6, r3, #0x0
+ add r5, r1, #0x0
+ add r0, r4, #0x0
+ add r1, r6, #0x0
+ blx RTC_ConvertDateTimeToSecond
+ str r1, [sp, #0x8]
+ add r1, r5, #0x0
+ add r7, r0, #0x0
+ add r0, r5, #0x4
+ add r1, #0x14
+ blx RTC_ConvertDateTimeToSecond
+ add r2, r1, #0x0
+ sub r1, r7, r0
+ ldr r1, [sp, #0x8]
+ sbc r1, r2
+ bge _0204B19C
+ add r2, r5, #0x4
+ ldmia r4!, {r0-r1}
+ stmia r2!, {r0-r1}
+ ldmia r4!, {r0-r1}
+ stmia r2!, {r0-r1}
+ ldmia r6!, {r0-r1}
+ add r5, #0x14
+ stmia r5!, {r0-r1}
+ ldr r0, [r6, #0x0]
+ add sp, #0xc
+ str r0, [r5, #0x0]
+ pop {r4-r7, pc}
+_0204B19C:
+ ldr r1, [sp, #0x8]
+ sub r0, r7, r0
+ sbc r1, r2
+ mov r2, #0x3c
+ mov r3, #0x0
+ str r1, [sp, #0x8]
+ blx _ll_sdiv
+ add r7, r0, #0x0
+ cmp r7, #0x0
+ ble _0204B1D8
+ add r0, r5, #0x0
+ add r1, r7, #0x0
+ bl FUN_02023884
+ ldr r0, [sp, #0x0]
+ add r1, r7, #0x0
+ add r2, r6, #0x0
+ bl FUN_0204B270
+ add r2, r5, #0x4
+ ldmia r4!, {r0-r1}
+ stmia r2!, {r0-r1}
+ ldmia r4!, {r0-r1}
+ stmia r2!, {r0-r1}
+ ldmia r6!, {r0-r1}
+ add r5, #0x14
+ stmia r5!, {r0-r1}
+ ldr r0, [r6, #0x0]
+ str r0, [r5, #0x0]
+_0204B1D8:
+ add sp, #0xc
+ pop {r4-r7, pc}
+
+ thumb_func_start FUN_0204B1DC
+FUN_0204B1DC: ; 0x0204B1DC
+ push {r4-r6, lr}
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ bl FUN_020377AC
+ add r1, r4, #0x0
+ bl FUN_02025A60
+ add r0, r5, #0x0
+ bl FUN_0203959C
+ ldr r0, [r5, #0xc]
+ add r1, r4, #0x0
+ bl FUN_02060344
+ ldr r0, [r5, #0xc]
+ bl FUN_0202881C
+ add r1, r4, #0x0
+ bl FUN_02028754
+ ldr r0, [r5, #0xc]
+ bl FUN_0202A9B0
+ add r6, r0, #0x0
+ ldr r0, [r5, #0xc]
+ bl FUN_0202881C
+ bl FUN_020287A4
+ add r1, r0, #0x0
+ add r0, r6, #0x0
+ bl FUN_0202A988
+ ldr r0, [r5, #0xc]
+ bl FUN_0206BB1C
+ add r1, r4, #0x0
+ bl FUN_02069D50
+ ldr r0, [r5, #0xc]
+ bl FUN_020462AC
+ add r6, r0, #0x0
+ bl FUN_0205F594
+ cmp r0, r4
+ ble _0204B244
+ sub r0, r0, r4
+ lsl r0, r0, #0x10
+ lsr r1, r0, #0x10
+ b _0204B246
+_0204B244:
+ mov r1, #0x0
+_0204B246:
+ add r0, r6, #0x0
+ bl FUN_0205F5A4
+ lsl r1, r4, #0x10
+ ldr r0, [r5, #0xc]
+ lsr r1, r1, #0x10
+ bl FUN_0205F618
+ ldr r0, [r5, #0xc]
+ bl FUN_0205F668
+ ldr r0, [r5, #0xc]
+ bl FUN_0206007C
+ ldr r0, [r5, #0xc]
+ bl FUN_02029AFC
+ bl FUN_02029C08
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_0204B270
+FUN_0204B270: ; 0x0204B270
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ add r6, r2, #0x0
+ bl FUN_0204B3D0
+ ldr r0, [r5, #0xc]
+ add r1, r4, #0x0
+ bl FUN_0202A9D0
+ add r0, r5, #0x0
+ bl FUN_0204B33C
+ add r2, r0, #0x0
+ ldr r0, [r5, #0xc]
+ add r1, r4, #0x0
+ bl FUN_02025B60
+ ldr r0, [r5, #0xc]
+ bl FUN_02022504
+ ldr r2, [r6, #0x4]
+ add r1, r4, #0x0
+ bl FUN_0202B3C4
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_0204B2A4
+FUN_0204B2A4: ; 0x0204B2A4
+ push {r3, lr}
+ ldr r0, [r0, #0xc]
+ bl FUN_02023794
+ ldr r0, [r0, #0x14]
+ bl FUN_020127A8
+ pop {r3, pc}
+
+ thumb_func_start FUN_0204B2B4
+FUN_0204B2B4: ; 0x0204B2B4
+ push {r3, lr}
+ ldr r0, [r0, #0xc]
+ bl FUN_02023794
+ ldr r0, [r0, #0x8]
+ pop {r3, pc}
+
+ thumb_func_start FUN_0204B2C0
+FUN_0204B2C0: ; 0x0204B2C0
+ push {r3, lr}
+ ldr r0, [r0, #0xc]
+ bl FUN_02023794
+ ldr r0, [r0, #0xc]
+ pop {r3, pc}
+
+ thumb_func_start FUN_0204B2CC
+FUN_0204B2CC: ; 0x0204B2CC
+ push {r3, lr}
+ ldr r0, [r0, #0xc]
+ bl FUN_02023794
+ ldr r0, [r0, #0x10]
+ pop {r3, pc}
+
+ thumb_func_start FUN_0204B2D8
+FUN_0204B2D8: ; 0x0204B2D8
+ push {r3, lr}
+ ldr r0, [r0, #0xc]
+ bl FUN_02023794
+ ldr r0, [r0, #0x14]
+ pop {r3, pc}
+
+ thumb_func_start FUN_0204B2E4
+FUN_0204B2E4: ; 0x0204B2E4
+ push {r3, lr}
+ ldr r0, [r0, #0xc]
+ bl FUN_02023794
+ ldr r0, [r0, #0x18]
+ pop {r3, pc}
+
+ thumb_func_start FUN_0204B2F0
+FUN_0204B2F0: ; 0x0204B2F0
+ push {r3-r5, lr}
+ ldr r0, [r0, #0xc]
+ add r5, r1, #0x0
+ add r4, r2, #0x0
+ bl FUN_02023794
+ add r3, r0, #0x0
+ ldr r2, [r3, #0x24]
+ ldr r3, [r3, #0x28]
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ blx RTC_ConvertSecondToDateTime
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_0204B30C
+FUN_0204B30C: ; 0x0204B30C
+ push {r3-r5, lr}
+ ldr r0, [r0, #0xc]
+ add r5, r1, #0x0
+ add r4, r2, #0x0
+ bl FUN_02023794
+ add r3, r0, #0x0
+ ldr r2, [r3, #0x2c]
+ ldr r3, [r3, #0x30]
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ blx RTC_ConvertSecondToDateTime
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_0204B328
+FUN_0204B328: ; 0x0204B328
+ push {r4, lr}
+ ldr r0, [r0, #0xc]
+ bl FUN_02023794
+ add r4, r0, #0x0
+ bl FUN_020126FC
+ str r0, [r4, #0x2c]
+ str r1, [r4, #0x30]
+ pop {r4, pc}
+
+ thumb_func_start FUN_0204B33C
+FUN_0204B33C: ; 0x0204B33C
+ push {r3, lr}
+ ldr r0, [r0, #0xc]
+ bl FUN_02023794
+ bl FUN_02023874
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_0204B34C
+FUN_0204B34C: ; 0x0204B34C
+ cmp r0, #0x0
+ bne _0204B354
+ mov r0, #0x0
+ bx lr
+_0204B354:
+ add r0, #0x94
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ bx lr
+
+ thumb_func_start FUN_0204B35C
+FUN_0204B35C: ; 0x0204B35C
+ cmp r0, #0x0
+ bne _0204B364
+ mov r0, #0x0
+ bx lr
+_0204B364:
+ sub r0, #0x94
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ bx lr
+
+ thumb_func_start FUN_0204B36C
+FUN_0204B36C: ; 0x0204B36C
+ cmp r0, #0x0
+ bne _0204B374
+ mov r0, #0x0
+ bx lr
+_0204B374:
+ add r0, #0x5e
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ bx lr
+
+ thumb_func_start FUN_0204B37C
+FUN_0204B37C: ; 0x0204B37C
+ cmp r0, #0x0
+ bne _0204B384
+ mov r0, #0x0
+ bx lr
+_0204B384:
+ sub r0, #0x5e
+ bx lr
+
+ thumb_func_start FUN_0204B388
+FUN_0204B388: ; 0x0204B388
+ push {r4-r6, lr}
+ add r6, r1, #0x0
+ add r5, r0, #0x0
+ add r0, r6, #0x0
+ mov r1, #0x64
+ bl FUN_02016998
+ add r4, r0, #0x0
+ mov r1, #0x0
+ mov r2, #0x64
+ blx MI_CpuFill8
+ str r6, [r4, #0x0]
+ add r0, r6, #0x0
+ bl FUN_02025128
+ str r0, [r4, #0x4]
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_0204B410
+ add r0, r4, #0x0
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_0204B3B8
+FUN_0204B3B8: ; 0x0204B3B8
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl FUN_0204B444
+ ldr r0, [r4, #0x4]
+ bl FUN_02016A18
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0204B3D0
+FUN_0204B3D0: ; 0x0204B3D0
+ push {r4-r6, lr}
+ add r4, r0, #0x0
+ ldr r0, [r4, #0x4]
+ add r6, r1, #0x0
+ cmp r0, #0x0
+ bne _0204B3FA
+ mov r0, #0xb
+ bl FUN_02025128
+ add r5, r0, #0x0
+ ldr r0, [r4, #0xc]
+ bl FUN_02024ECC
+ add r1, r5, #0x0
+ add r2, r6, #0x0
+ bl FUN_020253E0
+ add r0, r5, #0x0
+ bl FUN_02016A18
+ pop {r4-r6, pc}
+_0204B3FA:
+ ldr r0, [r0, #0x18]
+ ldr r5, [r0, #0x4]
+ ldr r0, [r4, #0xc]
+ bl FUN_02024ECC
+ add r1, r5, #0x0
+ add r2, r6, #0x0
+ bl FUN_020253E0
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_0204B410
+FUN_0204B410: ; 0x0204B410
+ push {r3-r5, lr}
+ ldr r4, [r0, #0x3c]
+ add r5, r1, #0x0
+ add r0, r4, #0x0
+ mov r1, #0x11
+ bl FUN_021E4C54
+ add r1, r0, #0x0
+ ldr r0, [r5, #0x0]
+ bl FUN_02016998
+ str r0, [r5, #0x60]
+ ldr r2, [r5, #0x60]
+ add r0, r4, #0x0
+ mov r1, #0x11
+ bl FUN_021E4C60
+ add r0, r5, #0x0
+ add r1, r5, #0x0
+ add r5, #0x60
+ add r0, #0x8
+ add r1, #0x5c
+ add r2, r5, #0x0
+ bl FUN_0201B234
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_0204B444
+FUN_0204B444: ; 0x0204B444
+ ldr r3, _0204B44C ; =0x021E4C01
+ ldr r0, [r0, #0x60]
+ bx r3
+ nop
+_0204B44C: .word 0x021E4C01
+
+ thumb_func_start FUN_0204B450
+FUN_0204B450: ; 0x0204B450
+ push {r3-r5, lr}
+ sub sp, #0x30
+ ldr r3, _0204B48C ; =0x020F4860
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ ldmia r3!, {r0-r1}
+ add r2, sp, #0x24
+ stmia r2!, {r0-r1}
+ ldr r0, [r3, #0x0]
+ str r0, [r2, #0x0]
+ add r0, sp, #0x0
+ blx MTX_Identity33_
+ ldr r0, [r5, #0x4]
+ add r1, r4, #0x0
+ ldr r0, [r0, #0x18]
+ add r2, sp, #0x0
+ ldr r0, [r0, #0x5c]
+ add r3, sp, #0x24
+ bl FUN_0201B6D0
+ cmp r0, #0x0
+ beq _0204B484
+ add sp, #0x30
+ mov r0, #0x1
+ pop {r3-r5, pc}
+_0204B484:
+ mov r0, #0x0
+ add sp, #0x30
+ pop {r3-r5, pc}
+ nop
+_0204B48C: .word 0x020F4860
+
+ thumb_func_start FUN_0204B490
+FUN_0204B490: ; 0x0204B490
+ push {r3-r7, lr}
+ sub sp, #0x8
+ add r5, r0, #0x0
+ mov r0, #0x0
+ str r0, [sp, #0x4]
+ ldr r0, [r5, #0xc]
+ bl FUN_02024ECC
+ add r4, r0, #0x0
+ ldr r0, [r5, #0x34]
+ add r1, sp, #0x0
+ add r2, sp, #0x4
+ mov r3, #0x1
+ bl FUN_020580F4
+ cmp r0, #0x1
+ bne _0204B4F8
+ mov r6, #0x0
+ mov r7, #0x1
+_0204B4B6:
+ ldr r0, [sp, #0x0]
+ bl FUN_02058458
+ bl FUN_0205C334
+ cmp r0, #0x1
+ bne _0204B4E8
+ ldr r0, [sp, #0x0]
+ bl FUN_02058B7C
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_0204B450
+ cmp r0, #0x0
+ beq _0204B4E8
+ ldr r0, [sp, #0x0]
+ add r1, r6, #0x0
+ bl FUN_02058510
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ add r2, r7, #0x0
+ bl FUN_020252C4
+_0204B4E8:
+ ldr r0, [r5, #0x34]
+ add r1, sp, #0x0
+ add r2, sp, #0x4
+ mov r3, #0x1
+ bl FUN_020580F4
+ cmp r0, #0x1
+ beq _0204B4B6
+_0204B4F8:
+ add sp, #0x8
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_0204B4FC
+FUN_0204B4FC: ; 0x0204B4FC
+ push {r4-r7, lr}
+ sub sp, #0xc
+ add r5, r0, #0x0
+ ldr r0, [r5, #0xc]
+ add r7, r1, #0x0
+ bl FUN_02024ECC
+ add r4, r0, #0x0
+ add r0, r7, #0x0
+ mov r1, #0x0
+ bl FUN_02058510
+ str r0, [sp, #0x0]
+ ldr r1, [sp, #0x0]
+ add r0, r4, #0x0
+ bl FUN_02025244
+ str r0, [sp, #0x4]
+ ldr r1, [sp, #0x0]
+ add r0, r4, #0x0
+ bl FUN_020252E8
+ add r6, r0, #0x0
+ ldr r0, [sp, #0x4]
+ bl FUN_0204B34C
+ str r0, [sp, #0x8]
+ ldr r1, [sp, #0x0]
+ add r0, r4, #0x0
+ bl FUN_02025268
+ add r2, r0, #0x0
+ lsl r2, r2, #0x18
+ lsl r3, r6, #0x10
+ ldr r1, [sp, #0x8]
+ add r0, r5, #0x0
+ lsr r2, r2, #0x18
+ lsr r3, r3, #0x10
+ bl FUN_020616A4
+ ldr r1, [sp, #0x0]
+ add r0, r4, #0x0
+ bl FUN_020252F4
+ add r0, r7, #0x0
+ bl FUN_0205C374
+ ldr r0, [r5, #0xc]
+ bl FUN_0206F158
+ add r4, r0, #0x0
+ ldr r0, [sp, #0x4]
+ bl FUN_0204B34C
+ lsl r2, r6, #0x10
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ lsr r2, r2, #0x10
+ mov r3, #0x4
+ bl FUN_0206ED38
+ add sp, #0xc
+ pop {r4-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_0204B57C
+FUN_0204B57C: ; 0x0204B57C
+ push {r4-r6, lr}
+ ldr r0, [r0, #0xc]
+ add r4, r1, #0x0
+ add r5, r2, #0x0
+ bl FUN_02024ECC
+ add r6, r0, #0x0
+ add r0, r4, #0x0
+ mov r1, #0x0
+ bl FUN_02058510
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_0204B37C
+ add r2, r0, #0x0
+ add r0, r6, #0x0
+ add r1, r4, #0x0
+ bl FUN_020252DC
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_0204B5A8
+FUN_0204B5A8: ; 0x0204B5A8
+ push {r3-r7, lr}
+ add r4, r0, #0x0
+ ldr r0, [r4, #0xc]
+ add r5, r1, #0x0
+ add r6, r2, #0x0
+ bl FUN_02024ECC
+ add r7, r0, #0x0
+ add r0, r5, #0x0
+ mov r1, #0x0
+ bl FUN_02058510
+ add r5, r0, #0x0
+ add r0, r6, #0x0
+ bl FUN_0204B35C
+ ldr r2, [r4, #0x4]
+ add r3, r0, #0x0
+ ldr r2, [r2, #0x18]
+ add r0, r7, #0x0
+ ldr r2, [r2, #0x4]
+ add r1, r5, #0x0
+ bl FUN_02025274
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_0204B5DC
+FUN_0204B5DC: ; 0x0204B5DC
+ push {r3-r5, lr}
+ ldr r0, [r0, #0xc]
+ add r5, r1, #0x0
+ bl FUN_02024ECC
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ mov r1, #0x0
+ bl FUN_02058510
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_020252AC
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_0204B5FC
+FUN_0204B5FC: ; 0x0204B5FC
+ push {r3-r5, lr}
+ ldr r0, [r0, #0xc]
+ add r5, r1, #0x0
+ bl FUN_02024ECC
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ mov r1, #0x0
+ bl FUN_02058510
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_02025238
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_0204B61C
+FUN_0204B61C: ; 0x0204B61C
+ push {r3-r5, lr}
+ ldr r0, [r0, #0xc]
+ add r5, r1, #0x0
+ bl FUN_02024ECC
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ mov r1, #0x0
+ bl FUN_02058510
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_02025244
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_0204B63C
+FUN_0204B63C: ; 0x0204B63C
+ push {r3-r5, lr}
+ ldr r0, [r0, #0xc]
+ add r5, r1, #0x0
+ bl FUN_02024ECC
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ mov r1, #0x0
+ bl FUN_02058510
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_02025244
+ bl FUN_0204B34C
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_0204B660
+FUN_0204B660: ; 0x0204B660
+ push {r3-r5, lr}
+ ldr r0, [r0, #0xc]
+ add r5, r1, #0x0
+ bl FUN_02024ECC
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ mov r1, #0x0
+ bl FUN_02058510
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_020252D0
+ bl FUN_0204B36C
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_0204B684
+FUN_0204B684: ; 0x0204B684
+ push {r3-r5, lr}
+ ldr r0, [r0, #0xc]
+ add r5, r1, #0x0
+ bl FUN_02024ECC
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ mov r1, #0x0
+ bl FUN_02058510
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_0202524C
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_0204B6A4
+FUN_0204B6A4: ; 0x0204B6A4
+ push {r3-r5, lr}
+ ldr r0, [r0, #0xc]
+ add r5, r1, #0x0
+ bl FUN_02024ECC
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ mov r1, #0x0
+ bl FUN_02058510
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_020252E8
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_0204B6C4
+FUN_0204B6C4: ; 0x0204B6C4
+ push {r4-r6, lr}
+ add r6, r0, #0x0
+ add r5, r1, #0x0
+ ldr r4, _0204B708 ; =0x00000000
+ beq _0204B6D8
+ add r0, r5, #0x0
+ bl FUN_02058458
+ cmp r0, #0x64
+ beq _0204B6DC
+_0204B6D8:
+ mov r0, #0x0
+ pop {r4-r6, pc}
+_0204B6DC:
+ add r0, r6, #0x0
+ add r1, r5, #0x0
+ bl FUN_0204B5FC
+ cmp r0, #0x0
+ bne _0204B6FE
+ mov r0, #0x1
+ orr r4, r0
+ add r0, r6, #0x0
+ add r1, r5, #0x0
+ bl FUN_0204B660
+ cmp r0, #0x0
+ bne _0204B702
+ mov r0, #0x2
+ orr r4, r0
+ b _0204B702
+_0204B6FE:
+ mov r0, #0x4
+ orr r4, r0
+_0204B702:
+ add r0, r4, #0x0
+ pop {r4-r6, pc}
+ nop
+_0204B708: .word 0x00000000
+
+ thumb_func_start FUN_0204B70C
+FUN_0204B70C: ; 0x0204B70C
+ push {r3-r7, lr}
+ add r7, r0, #0x0
+ ldr r0, [r7, #0x38]
+ add r5, r2, #0x0
+ bl FUN_02055320
+ add r6, r0, #0x0
+ ldr r0, [r7, #0x38]
+ bl FUN_0205532C
+ add r4, r0, #0x0
+ cmp r5, #0x2
+ bne _0204B72A
+ sub r6, r6, #0x1
+ b _0204B746
+_0204B72A:
+ cmp r5, #0x3
+ bne _0204B732
+ add r6, r6, #0x1
+ b _0204B746
+_0204B732:
+ cmp r5, #0x0
+ bne _0204B73A
+ sub r4, r4, #0x1
+ b _0204B746
+_0204B73A:
+ cmp r5, #0x1
+ bne _0204B742
+ add r4, r4, #0x1
+ b _0204B746
+_0204B742:
+ bl ErrorHandling
+_0204B746:
+ add r0, r7, #0x0
+ add r1, r6, #0x0
+ add r2, r4, #0x0
+ bl FUN_0204A6B4
+ cmp r0, #0x0
+ beq _0204B758
+ mov r0, #0x1
+ pop {r3-r7, pc}
+_0204B758:
+ ldr r0, [r7, #0x34]
+ add r1, r6, #0x0
+ add r2, r4, #0x0
+ bl FUN_02058D74
+ cmp r0, #0x0
+ beq _0204B76A
+ mov r0, #0x1
+ pop {r3-r7, pc}
+_0204B76A:
+ mov r0, #0x0
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_0204B770
+FUN_0204B770: ; 0x0204B770
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ ldr r0, [r5, #0x38]
+ add r6, r1, #0x0
+ bl FUN_02055320
+ add r4, r0, #0x0
+ ldr r0, [r5, #0x38]
+ bl FUN_0205532C
+ add r2, r0, #0x0
+ cmp r6, #0x2
+ bne _0204B78E
+ sub r4, r4, #0x1
+ b _0204B794
+_0204B78E:
+ cmp r6, #0x3
+ bne _0204B794
+ add r4, r4, #0x1
+_0204B794:
+ ldr r0, [r5, #0x34]
+ add r1, r4, #0x0
+ sub r2, r2, #0x1
+ bl FUN_02058D74
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_0204B7A0
+FUN_0204B7A0: ; 0x0204B7A0
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ ldr r0, [r5, #0x38]
+ add r6, r1, #0x0
+ bl FUN_02055320
+ add r7, r0, #0x0
+ ldr r0, [r5, #0x38]
+ bl FUN_0205532C
+ add r4, r0, #0x0
+ ldr r0, [r6, #0x4]
+ cmp r0, #0x0
+ bne _0204B7C0
+ sub r4, r4, #0x1
+ b _0204B7CC
+_0204B7C0:
+ cmp r0, #0x1
+ bne _0204B7C8
+ add r4, r4, #0x1
+ b _0204B7CC
+_0204B7C8:
+ bl ErrorHandling
+_0204B7CC:
+ ldr r0, [r5, #0x34]
+ add r1, r7, #0x0
+ add r2, r4, #0x0
+ bl FUN_02058D74
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_0204B7D8
+FUN_0204B7D8: ; 0x0204B7D8
+ push {r3, lr}
+ bl FUN_02058458
+ cmp r0, #0x64
+ bne _0204B7E6
+ mov r0, #0x1
+ pop {r3, pc}
+_0204B7E6:
+ mov r0, #0x0
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_0204B7EC
+FUN_0204B7EC: ; 0x0204B7EC
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl FUN_0204B7A0
+ add r1, r0, #0x0
+ beq _0204B7FE
+ add r0, r4, #0x0
+ bl FUN_0204B5DC
+_0204B7FE:
+ pop {r4, pc}
+
+ thumb_func_start FUN_0204B800
+FUN_0204B800: ; 0x0204B800
+ push {r3-r5, lr}
+ ldr r0, [r0, #0x38]
+ add r4, r2, #0x0
+ add r5, r1, #0x0
+ bl FUN_020553A0
+ add r1, r4, #0x0
+ bl FUN_0205AEA4
+ str r0, [r5, #0xc]
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_0204B818
+FUN_0204B818: ; 0x0204B818
+ push {r3-r5, lr}
+ add r4, r0, #0x0
+ bl FUN_02046528
+ add r5, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_0204652C
+ add r4, r0, #0x0
+ ldr r0, [r4, #0x0]
+ cmp r0, #0x4
+ bls _0204B832
+ b _0204B98E
+_0204B832:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0204B83E: ; jump table (using 16-bit offset)
+ .short _0204B848 - _0204B83E - 2; case 0
+ .short _0204B866 - _0204B83E - 2; case 1
+ .short _0204B876 - _0204B83E - 2; case 2
+ .short _0204B93A - _0204B83E - 2; case 3
+ .short _0204B972 - _0204B83E - 2; case 4
+_0204B848:
+ ldr r0, [r5, #0x38]
+ mov r1, #0x10
+ bl FUN_021E5FD8
+ ldr r0, [r5, #0x38]
+ bl FUN_021E5FE0
+ ldr r0, [r5, #0x38]
+ bl FUN_020553A0
+ bl FUN_02058914
+ mov r0, #0x1
+ str r0, [r4, #0x0]
+ b _0204B98E
+_0204B866:
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_0204B7EC
+ mov r0, #0x0
+ str r0, [r4, #0x8]
+ mov r0, #0x2
+ str r0, [r4, #0x0]
+_0204B876:
+ ldr r0, _0204B994 ; =0x021C48B8
+ mov r1, #0x20
+ ldr r0, [r0, #0x44]
+ tst r1, r0
+ beq _0204B8B8
+ add r0, r5, #0x0
+ mov r1, #0x2
+ bl FUN_0204B770
+ cmp r0, #0x0
+ beq _0204B894
+ bl FUN_0204B7D8
+ cmp r0, #0x0
+ bne _0204B89A
+_0204B894:
+ mov r0, #0x4
+ str r0, [r4, #0x0]
+ b _0204B98E
+_0204B89A:
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ mov r2, #0x2
+ bl FUN_0204B70C
+ cmp r0, #0x0
+ bne _0204B922
+ ldr r2, _0204B998 ; =0x020F4850
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_0204B800
+ mov r0, #0x3
+ str r0, [r4, #0x0]
+ b _0204B98E
+_0204B8B8:
+ mov r1, #0x10
+ tst r1, r0
+ beq _0204B8F6
+ add r0, r5, #0x0
+ mov r1, #0x3
+ bl FUN_0204B770
+ cmp r0, #0x0
+ beq _0204B8D2
+ bl FUN_0204B7D8
+ cmp r0, #0x0
+ bne _0204B8D8
+_0204B8D2:
+ mov r0, #0x4
+ str r0, [r4, #0x0]
+ b _0204B98E
+_0204B8D8:
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ mov r2, #0x3
+ bl FUN_0204B70C
+ cmp r0, #0x0
+ bne _0204B922
+ ldr r2, _0204B99C ; =0x020F4858
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_0204B800
+ mov r0, #0x3
+ str r0, [r4, #0x0]
+ b _0204B98E
+_0204B8F6:
+ mov r1, #0x40
+ tst r1, r0
+ beq _0204B910
+ ldr r1, [r4, #0x4]
+ cmp r1, #0x1
+ bne _0204B910
+ ldr r0, [r5, #0x38]
+ mov r1, #0x0
+ bl FUN_02055304
+ mov r0, #0x4
+ str r0, [r4, #0x0]
+ b _0204B98E
+_0204B910:
+ mov r1, #0x80
+ tst r0, r1
+ beq _0204B922
+ ldr r0, [r4, #0x4]
+ cmp r0, #0x0
+ bne _0204B922
+ mov r0, #0x4
+ str r0, [r4, #0x0]
+ b _0204B98E
+_0204B922:
+ ldr r0, [r4, #0x8]
+ add r0, r0, #0x1
+ str r0, [r4, #0x8]
+ cmp r0, #0x5a
+ ble _0204B98E
+ ldr r0, [r5, #0x38]
+ ldr r1, [r4, #0x4]
+ bl FUN_02055304
+ mov r0, #0x4
+ str r0, [r4, #0x0]
+ b _0204B98E
+_0204B93A:
+ ldr r0, [r4, #0xc]
+ bl FUN_0205AEF0
+ cmp r0, #0x0
+ beq _0204B98E
+ ldr r0, [r4, #0xc]
+ bl FUN_0205AEFC
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_0204B7A0
+ cmp r0, #0x0
+ beq _0204B964
+ bl FUN_0204B7D8
+ cmp r0, #0x0
+ beq _0204B964
+ mov r0, #0x1
+ str r0, [r4, #0x0]
+ b _0204B98E
+_0204B964:
+ ldr r0, [r5, #0x38]
+ ldr r1, [r4, #0x4]
+ bl FUN_02055304
+ mov r0, #0x4
+ str r0, [r4, #0x0]
+ b _0204B98E
+_0204B972:
+ ldr r0, [r5, #0x38]
+ ldr r1, [r4, #0x4]
+ bl FUN_02055304
+ ldr r0, [r5, #0x38]
+ bl FUN_020553A0
+ bl FUN_02058908
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ mov r0, #0x1
+ pop {r3-r5, pc}
+_0204B98E:
+ mov r0, #0x0
+ pop {r3-r5, pc}
+ nop
+_0204B994: .word 0x021C48B8
+_0204B998: .word 0x020F4850
+_0204B99C: .word 0x020F4858
+
+ thumb_func_start FUN_0204B9A0
+FUN_0204B9A0: ; 0x0204B9A0
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ mov r0, #0x20
+ mov r1, #0x10
+ bl FUN_02016998
+ add r4, r0, #0x0
+ mov r0, #0x0
+ str r0, [r4, #0x0]
+ str r0, [r4, #0xc]
+ ldr r0, [r5, #0x38]
+ bl FUN_020552F8
+ str r0, [r4, #0x4]
+ ldr r0, [r5, #0x10]
+ ldr r1, _0204B9C8 ; =FUN_0204B818
+ add r2, r4, #0x0
+ bl FUN_0204640C
+ pop {r3-r5, pc}
+ .balign 4
+_0204B9C8: .word FUN_0204B818
+
+ thumb_func_start FUN_0204B9CC
+FUN_0204B9CC: ; 0x0204B9CC
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r0, [r4, #0x38]
+ bl FUN_020553C4
+ bl FUN_02055648
+ add r1, r0, #0x0
+ ldr r0, [r4, #0x38]
+ bl FUN_021E5FD8
+ ldr r0, [r4, #0x38]
+ bl FUN_021E5FE0
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0204B9EC
+FUN_0204B9EC: ; 0x0204B9EC
+ push {r4, lr}
+ ldr r1, _0204BA14 ; =0x021C5A1C
+ add r4, r0, #0x0
+ mov r0, #0x0
+ mov r2, #0x4c
+ blx MIi_CpuClearFast
+ ldr r1, _0204BA14 ; =0x021C5A1C
+ add r0, r4, #0x0
+ bl FUN_0204BB20
+ ldr r0, _0204BA14 ; =0x021C5A1C
+ bl FUN_0204BBC4
+ bl FUN_020126FC
+ ldr r2, _0204BA18 ; =0x021C5A1C
+ str r0, [r2, #0x40]
+ str r1, [r2, #0x44]
+ pop {r4, pc}
+ .balign 4
+_0204BA14: .word 0x021C5A1C
+_0204BA18: .word 0x021C5A1C
+
+ thumb_func_start FUN_0204BA1C
+FUN_0204BA1C: ; 0x0204BA1C
+ push {r3-r5, lr}
+ ldr r0, [r0, #0xc]
+ ldr r4, _0204BA60 ; =0x021C5A1C
+ bl FUN_02029FC8
+ add r5, r0, #0x0
+ bl FUN_020126FC
+ add r3, r1, #0x0
+ ldr r1, _0204BA64 ; =0x021C5A1C
+ add r2, r0, #0x0
+ ldr r0, [r1, #0x40]
+ ldr r1, [r1, #0x44]
+ bl FUN_020127C0
+ mov r2, #0xfa
+ mov r3, #0x0
+ lsl r2, r2, #0x2
+ sub r2, r0, r2
+ sbc r1, r3
+ bge _0204BA50
+ mov r1, #0xfa
+ lsl r1, r1, #0x2
+ sub r0, r1, r0
+ lsl r0, r0, #0x1
+ b _0204BA52
+_0204BA50:
+ mov r0, #0x0
+_0204BA52:
+ str r0, [r4, #0x48]
+ add r0, r5, #0x0
+ mov r1, #0x11
+ bl FUN_0202A170
+ pop {r3-r5, pc}
+ nop
+_0204BA60: .word 0x021C5A1C
+_0204BA64: .word 0x021C5A1C
+
+ thumb_func_start FUN_0204BA68
+FUN_0204BA68: ; 0x0204BA68
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ ldr r0, _0204BA8C ; =0x021C5A1C
+ add r4, r1, #0x0
+ add r6, r2, #0x0
+ bl FUN_0204BBE8
+ cmp r0, #0x1
+ bne _0204BA88
+ ldr r1, _0204BA8C ; =0x021C5A1C
+ add r0, r5, #0x0
+ add r2, r4, #0x0
+ add r3, r6, #0x0
+ bl FUN_0204BC48
+ pop {r4-r6, pc}
+_0204BA88:
+ mov r0, #0x0
+ pop {r4-r6, pc}
+ .balign 4
+_0204BA8C: .word 0x021C5A1C
+
+ thumb_func_start FUN_0204BA90
+FUN_0204BA90: ; 0x0204BA90
+ ldr r3, _0204BA98 ; =FUN_0204BD40
+ ldr r1, _0204BA9C ; =0x021C5A1C
+ bx r3
+ nop
+_0204BA98: .word FUN_0204BD40
+_0204BA9C: .word 0x021C5A1C
+
+ thumb_func_start FUN_0204BAA0
+FUN_0204BAA0: ; 0x0204BAA0
+ ldr r3, _0204BAA8 ; =FUN_0204BD18
+ ldr r2, _0204BAAC ; =0x021C5A1C
+ bx r3
+ nop
+_0204BAA8: .word FUN_0204BD18
+_0204BAAC: .word 0x021C5A1C
+
+ thumb_func_start FUN_0204BAB0
+FUN_0204BAB0: ; 0x0204BAB0
+ push {r3, lr}
+ ldr r0, _0204BAC0 ; =0x021C5A1C
+ bl FUN_0204BBA8
+ mov r1, #0x6
+ sub r0, r1, r0
+ pop {r3, pc}
+ nop
+_0204BAC0: .word 0x021C5A1C
+
+ thumb_func_start FUN_0204BAC4
+FUN_0204BAC4: ; 0x0204BAC4
+ ldr r3, _0204BACC ; =FUN_0204BD8C
+ ldr r0, _0204BAD0 ; =0x021C5A1C
+ bx r3
+ nop
+_0204BACC: .word FUN_0204BD8C
+_0204BAD0: .word 0x021C5A1C
+
+ thumb_func_start FUN_0204BAD4
+FUN_0204BAD4: ; 0x0204BAD4
+ ldr r3, _0204BADC ; =0x0204BE11
+ ldr r0, _0204BAE0 ; =0x021C5A1C
+ bx r3
+ nop
+_0204BADC: .word 0x0204BE11
+_0204BAE0: .word 0x021C5A1C
+
+ thumb_func_start FUN_0204BAE4
+FUN_0204BAE4: ; 0x0204BAE4
+ ldr r3, _0204BAEC ; =FUN_0204BDA0
+ ldr r0, _0204BAF0 ; =0x021C5A1C
+ bx r3
+ nop
+_0204BAEC: .word FUN_0204BDA0
+_0204BAF0: .word 0x021C5A1C
+
+ thumb_func_start FUN_0204BAF4
+FUN_0204BAF4: ; 0x0204BAF4
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ cmp r5, #0x0
+ beq _0204BB04
+ ldr r0, _0204BB1C ; =0x000001ED
+ cmp r5, r0
+ bls _0204BB08
+_0204BB04:
+ bl ErrorHandling
+_0204BB08:
+ mov r3, #0x6
+ add r0, r4, #0x0
+ sub r4, r5, #0x1
+ str r3, [sp, #0x0]
+ mov r1, #0x83
+ mov r2, #0x0
+ mul r3, r4
+ bl FUN_02006548
+ pop {r3-r5, pc}
+ .balign 4
+_0204BB1C: .word 0x000001ED
+
+ thumb_func_start FUN_0204BB20
+FUN_0204BB20: ; 0x0204BB20
+ push {r3-r7, lr}
+ sub sp, #0x10
+ ldr r0, [r0, #0xc]
+ str r1, [sp, #0x0]
+ bl FUN_02022528
+ str r0, [sp, #0x4]
+ mov r0, #0x4
+ bl FUN_020669C0
+ ldr r5, [sp, #0x0]
+ add r4, r0, #0x0
+ mov r6, #0x0
+ add r7, sp, #0x8
+_0204BB3C:
+ ldr r0, [sp, #0x0]
+ add r2, r4, #0x0
+ add r1, r0, r6
+ add r1, #0x30
+ mov r0, #0x0
+ strb r0, [r1, #0x0]
+ ldr r0, [sp, #0x4]
+ add r1, r6, #0x0
+ bl FUN_0202BFD8
+ add r0, r4, #0x0
+ mov r1, #0x5
+ mov r2, #0x0
+ bl FUN_020671BC
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ strh r0, [r5, #0x0]
+ add r1, sp, #0x8
+ bl FUN_0204BAF4
+ ldrb r0, [r7, #0x0]
+ cmp r0, #0x0
+ beq _0204BB6E
+ b _0204BB72
+_0204BB6E:
+ ldrb r0, [r7, #0x1]
+ add r0, r0, #0x4
+_0204BB72:
+ strb r0, [r5, #0x2]
+ ldrb r0, [r7, #0x3]
+ mov r1, #0xb0
+ mov r2, #0x0
+ strb r0, [r5, #0x3]
+ ldrb r0, [r7, #0x2]
+ strh r0, [r5, #0x4]
+ add r0, r4, #0x0
+ bl FUN_020671BC
+ strb r0, [r5, #0x6]
+ add r0, r4, #0x0
+ mov r1, #0xb1
+ mov r2, #0x0
+ bl FUN_020671BC
+ strb r0, [r5, #0x7]
+ add r6, r6, #0x1
+ add r5, #0x8
+ cmp r6, #0x6
+ blt _0204BB3C
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ add sp, #0x10
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_0204BBA8
+FUN_0204BBA8: ; 0x0204BBA8
+ mov r3, #0x0
+ add r2, r3, #0x0
+_0204BBAC:
+ add r1, r0, r2
+ add r1, #0x30
+ ldrb r1, [r1, #0x0]
+ cmp r1, #0x0
+ beq _0204BBB8
+ add r3, r3, #0x1
+_0204BBB8:
+ add r2, r2, #0x1
+ cmp r2, #0x6
+ blt _0204BBAC
+ add r0, r3, #0x0
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_0204BBC4
+FUN_0204BBC4: ; 0x0204BBC4
+ push {r3-r5, lr}
+ add r4, r0, #0x0
+ bl FUN_0201B9EC
+ ldr r1, _0204BBE4 ; =0x0000199A
+ blx _s32_div_f
+ lsl r0, r0, #0x10
+ lsr r5, r0, #0x10
+ cmp r5, #0xa
+ blo _0204BBDE
+ bl ErrorHandling
+_0204BBDE:
+ add r0, r5, #0x5
+ str r0, [r4, #0x38]
+ pop {r3-r5, pc}
+ .balign 4
+_0204BBE4: .word 0x0000199A
+
+ thumb_func_start FUN_0204BBE8
+FUN_0204BBE8: ; 0x0204BBE8
+ push {r3, lr}
+ ldr r1, [r0, #0x38]
+ sub r1, r1, #0x1
+ str r1, [r0, #0x38]
+ bne _0204BBFA
+ bl FUN_0204BBC4
+ mov r0, #0x1
+ pop {r3, pc}
+_0204BBFA:
+ mov r0, #0x0
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_0204BC00
+FUN_0204BC00: ; 0x0204BC00
+ push {r4-r6, lr}
+ add r5, r1, #0x0
+ add r6, r2, #0x0
+ bl FUN_0204A6E0
+ add r4, r0, #0x0
+ cmp r5, #0x20
+ blt _0204BC14
+ mov r5, #0x1
+ b _0204BC16
+_0204BC14:
+ mov r5, #0x0
+_0204BC16:
+ cmp r6, #0x20
+ bge _0204BC1E
+ mov r0, #0x0
+ b _0204BC20
+_0204BC1E:
+ mov r0, #0x2
+_0204BC20:
+ add r5, r5, r0
+ lsl r0, r4, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_0205478C
+ cmp r0, #0x0
+ beq _0204BC32
+ add r0, r5, #0x1
+ pop {r4-r6, pc}
+_0204BC32:
+ lsl r0, r4, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_0205481C
+ cmp r0, #0x0
+ beq _0204BC42
+ add r0, r5, #0x5
+ pop {r4-r6, pc}
+_0204BC42:
+ mov r0, #0x0
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_0204BC48
+FUN_0204BC48: ; 0x0204BC48
+ push {r3-r7, lr}
+ add r5, r1, #0x0
+ add r1, r2, #0x0
+ add r2, r3, #0x0
+ mov r6, #0x0
+ bl FUN_0204BC00
+ add r7, r0, #0x0
+ bne _0204BC5E
+ add r0, r6, #0x0
+ pop {r3-r7, pc}
+_0204BC5E:
+ add r0, r6, #0x0
+ add r1, r5, #0x0
+_0204BC62:
+ add r2, r5, r0
+ add r2, #0x30
+ ldrb r2, [r2, #0x0]
+ cmp r2, #0x0
+ bne _0204BC76
+ ldrb r2, [r1, #0x2]
+ cmp r7, r2
+ bne _0204BC76
+ ldrb r2, [r1, #0x3]
+ add r6, r6, r2
+_0204BC76:
+ add r0, r0, #0x1
+ add r1, #0x8
+ cmp r0, #0x6
+ blt _0204BC62
+ cmp r6, #0x0
+ bne _0204BC86
+ mov r0, #0x0
+ pop {r3-r7, pc}
+_0204BC86:
+ add r0, r6, #0x0
+ add r0, #0x14
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ bne _0204BC94
+ bl ErrorHandling
+_0204BC94:
+ add r0, r6, #0x0
+ add r0, #0x14
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ cmp r0, #0x1
+ bhi _0204BCA4
+ mov r4, #0x0
+ b _0204BCD8
+_0204BCA4:
+ bl FUN_0201B9EC
+ add r1, r6, #0x0
+ add r1, #0x14
+ add r4, r0, #0x0
+ lsl r1, r1, #0x10
+ ldr r0, _0204BD14 ; =0x0000FFFF
+ lsr r1, r1, #0x10
+ blx _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
+ lsl r0, r0, #0x10
+ add r6, #0x14
+ lsr r4, r0, #0x10
+ lsl r0, r6, #0x10
+ lsr r0, r0, #0x10
+ cmp r4, r0
+ blo _0204BCD8
+ bl ErrorHandling
+_0204BCD8:
+ cmp r4, #0x14
+ bge _0204BCE0
+ mov r0, #0x0
+ pop {r3-r7, pc}
+_0204BCE0:
+ sub r4, #0x14
+ mov r1, #0x0
+ add r0, r5, #0x0
+_0204BCE6:
+ add r2, r5, r1
+ add r2, #0x30
+ ldrb r2, [r2, #0x0]
+ cmp r2, #0x0
+ bne _0204BD04
+ ldrb r2, [r0, #0x2]
+ cmp r7, r2
+ bne _0204BD04
+ ldrb r2, [r0, #0x3]
+ cmp r4, r2
+ bge _0204BD02
+ str r1, [r5, #0x3c]
+ mov r0, #0x1
+ pop {r3-r7, pc}
+_0204BD02:
+ sub r4, r4, r2
+_0204BD04:
+ add r1, r1, #0x1
+ add r0, #0x8
+ cmp r1, #0x6
+ blt _0204BCE6
+ bl ErrorHandling
+ mov r0, #0x0
+ pop {r3-r7, pc}
+ .balign 4
+_0204BD14: .word 0x0000FFFF
+
+ thumb_func_start FUN_0204BD18
+FUN_0204BD18: ; 0x0204BD18
+ push {r4, lr}
+ ldr r0, [r1, #0x14]
+ add r4, r2, #0x0
+ cmp r0, #0x4
+ beq _0204BD28
+ cmp r0, #0x5
+ beq _0204BD3E
+ b _0204BD3A
+_0204BD28:
+ add r0, r4, #0x0
+ bl FUN_0204BBA8
+ add r1, r0, #0x1
+ ldr r0, [r4, #0x3c]
+ add r0, r4, r0
+ add r0, #0x30
+ strb r1, [r0, #0x0]
+ pop {r4, pc}
+_0204BD3A:
+ bl ErrorHandling
+_0204BD3E:
+ pop {r4, pc}
+
+ thumb_func_start FUN_0204BD40
+FUN_0204BD40: ; 0x0204BD40
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ mov r0, #0x20
+ add r6, r1, #0x0
+ bl FUN_020669C0
+ add r4, r0, #0x0
+ ldr r0, [r5, #0xc]
+ bl FUN_02022528
+ str r0, [sp, #0x0]
+ add r0, r5, #0x0
+ bl FUN_0204BAB0
+ add r1, r0, #0x0
+ mov r0, #0xb
+ bl FUN_02047800
+ add r1, r5, #0x0
+ add r7, r0, #0x0
+ bl FUN_02047BB0
+ ldr r0, [sp, #0x0]
+ ldr r1, [r6, #0x3c]
+ add r2, r4, #0x0
+ bl FUN_0202BFD8
+ add r0, r7, #0x0
+ add r1, r4, #0x0
+ mov r2, #0x1
+ bl FUN_020479FC
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ add r0, r7, #0x0
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_0204BD8C
+FUN_0204BD8C: ; 0x0204BD8C
+ mov r3, #0x0
+ add r2, r3, #0x0
+_0204BD90:
+ ldrh r1, [r0, #0x4]
+ add r2, r2, #0x1
+ add r0, #0x8
+ add r3, r3, r1
+ cmp r2, #0x6
+ blt _0204BD90
+ add r0, r3, #0x0
+ bx lr
+
+ thumb_func_start FUN_0204BDA0
+FUN_0204BDA0: ; 0x0204BDA0
+ push {r4-r7}
+ mov r3, #0x0
+ add r5, r0, #0x0
+ add r4, r3, #0x0
+ mov r0, #0x1
+_0204BDAA:
+ mov r1, #0x0
+_0204BDAC:
+ add r2, r5, r1
+ add r2, #0x30
+ ldrb r2, [r2, #0x0]
+ cmp r0, r2
+ bne _0204BDEC
+ lsl r1, r1, #0x3
+ add r2, r5, r1
+ ldrb r1, [r2, #0x6]
+ ldrb r2, [r2, #0x7]
+ cmp r0, #0x1
+ beq _0204BDD8
+ mov r6, r12
+ cmp r6, r1
+ beq _0204BDD8
+ mov r6, r12
+ cmp r6, r2
+ beq _0204BDD8
+ cmp r7, r1
+ beq _0204BDD8
+ cmp r7, r2
+ beq _0204BDD8
+ add r4, #0xc8
+_0204BDD8:
+ mov r6, #0x1
+ mov r12, r1
+ lsl r6, r1
+ add r1, r3, #0x0
+ mov r3, #0x1
+ lsl r3, r2
+ orr r1, r6
+ add r7, r2, #0x0
+ orr r3, r1
+ b _0204BDF2
+_0204BDEC:
+ add r1, r1, #0x1
+ cmp r1, #0x6
+ blt _0204BDAC
+_0204BDF2:
+ add r0, r0, #0x1
+ cmp r0, #0x7
+ blt _0204BDAA
+ cmp r3, #0x0
+ beq _0204BE0A
+ mov r0, #0x1
+_0204BDFE:
+ add r1, r3, #0x0
+ tst r1, r0
+ beq _0204BE06
+ add r4, #0x32
+_0204BE06:
+ lsr r3, r3, #0x1
+ bne _0204BDFE
+_0204BE0A:
+ add r0, r4, #0x0
+ pop {r4-r7}
+ bx lr
+
+ thumb_func_start FUN_0204BE10
+FUN_0204BE10: ; 0x0204BE10
+ ldr r0, [r0, #0x48]
+ bx lr
+
+ thumb_func_start FUN_0204BE14
+FUN_0204BE14: ; 0x0204BE14
+ mov r0, #0xe8
+ bx lr
+
+ thumb_func_start FUN_0204BE18
+FUN_0204BE18: ; 0x0204BE18
+ push {r3-r5, lr}
+ mov r2, #0x0
+ add r3, r2, #0x0
+_0204BE1E:
+ add r1, r0, r2
+ add r2, r2, #0x1
+ strb r3, [r1, #0x3]
+ cmp r2, #0x20
+ blt _0204BE1E
+ strb r3, [r0, #0x1]
+ strb r3, [r0, #0x2]
+ ldrb r1, [r0, #0x0]
+ mov r2, #0x1
+ bic r1, r2
+ strb r1, [r0, #0x0]
+ ldrb r4, [r0, #0x0]
+ mov r1, #0x38
+ bic r4, r1
+ strb r4, [r0, #0x0]
+ ldrb r4, [r0, #0x0]
+ mov r1, #0x2
+ bic r4, r1
+ strb r4, [r0, #0x0]
+ str r3, [r0, #0x24]
+ ldrh r1, [r0, #0x28]
+ bic r1, r2
+ strh r1, [r0, #0x28]
+ ldrh r2, [r0, #0x28]
+ mov r1, #0x3e
+ bic r2, r1
+ strh r2, [r0, #0x28]
+ ldrh r2, [r0, #0x28]
+ ldr r1, _0204BEB0 ; =0xFFFFF03F
+ and r1, r2
+ strh r1, [r0, #0x28]
+ add r1, r0, #0x0
+ mov r2, #0x1
+ add r1, #0xa8
+ strb r2, [r1, #0x0]
+ add r1, r0, #0x0
+ add r1, #0xa4
+ str r3, [r1, #0x0]
+ ldr r1, _0204BEB4 ; =0x020F486C
+ add r2, r0, #0x0
+_0204BE6E:
+ ldrb r5, [r1, #0x0]
+ add r4, r2, #0x0
+ add r4, #0xa9
+ strb r5, [r4, #0x0]
+ add r4, r2, #0x0
+ ldrb r5, [r1, #0x1]
+ add r4, #0xaa
+ add r3, r3, #0x1
+ strb r5, [r4, #0x0]
+ add r1, r1, #0x2
+ add r2, r2, #0x2
+ cmp r3, #0x6
+ blt _0204BE6E
+ mov r4, #0x0
+ add r3, r0, #0x0
+ add r1, r4, #0x0
+_0204BE8E:
+ add r2, r3, #0x0
+ add r2, #0xb6
+ strh r1, [r2, #0x0]
+ add r2, r3, #0x0
+ add r2, #0xb8
+ add r4, r4, #0x1
+ add r3, r3, #0x4
+ strh r1, [r2, #0x0]
+ cmp r4, #0xc
+ blt _0204BE8E
+ ldrb r3, [r0, #0x0]
+ mov r2, #0x4
+ bic r3, r2
+ strb r3, [r0, #0x0]
+ bl FUN_0204BED8
+ pop {r3-r5, pc}
+ .balign 4
+_0204BEB0: .word 0xFFFFF03F
+_0204BEB4: .word 0x020F486C
+
+ thumb_func_start FUN_0204BEB8
+FUN_0204BEB8: ; 0x0204BEB8
+ ldrb r2, [r0, #0x0]
+ mov r1, #0x1
+ bic r2, r1
+ mov r1, #0x1
+ orr r1, r2
+ strb r1, [r0, #0x0]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_0204BEC8
+FUN_0204BEC8: ; 0x0204BEC8
+ ldrb r0, [r0, #0x0]
+ lsl r0, r0, #0x1f
+ lsr r0, r0, #0x1f
+ bx lr
+
+ thumb_func_start FUN_0204BED0
+FUN_0204BED0: ; 0x0204BED0
+ add r0, r0, r1
+ ldrb r0, [r0, #0x3]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_0204BED8
+FUN_0204BED8: ; 0x0204BED8
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ bmi _0204BEE4
+ cmp r4, #0x19
+ blt _0204BEE8
+_0204BEE4:
+ bl ErrorHandling
+_0204BEE8:
+ mov r0, #0x1
+ ldrsb r1, [r5, r0]
+ cmp r1, #0x19
+ bge _0204BF10
+ add r2, r5, #0x3
+ ldrb r1, [r2, r4]
+ cmp r1, #0x0
+ bne _0204BF10
+ strb r0, [r2, r4]
+ ldrsb r0, [r5, r0]
+ add r0, r0, #0x1
+ strb r0, [r5, #0x1]
+ cmp r4, #0x3
+ bne _0204BF0C
+ ldrb r1, [r5, #0x0]
+ mov r0, #0x2
+ orr r0, r1
+ strb r0, [r5, #0x0]
+_0204BF0C:
+ mov r0, #0x1
+ pop {r3-r5, pc}
+_0204BF10:
+ mov r0, #0x0
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_0204BF14
+FUN_0204BF14: ; 0x0204BF14
+ mov r1, #0x2
+ ldrsb r0, [r0, r1]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_0204BF1C
+FUN_0204BF1C: ; 0x0204BF1C
+ push {r3-r4}
+ mov r1, #0x2
+ ldrsb r3, [r0, r1]
+ mov r2, #0x0
+ add r4, r3, #0x0
+_0204BF26:
+ add r3, r3, #0x1
+ cmp r3, #0x19
+ blt _0204BF2E
+ add r3, r2, #0x0
+_0204BF2E:
+ cmp r3, r4
+ beq _0204BF3A
+ add r1, r0, r3
+ ldrb r1, [r1, #0x3]
+ cmp r1, #0x0
+ beq _0204BF26
+_0204BF3A:
+ mov r1, #0x2
+ strb r3, [r0, #0x2]
+ ldrsb r0, [r0, r1]
+ pop {r3-r4}
+ bx lr
+
+ thumb_func_start FUN_0204BF44
+FUN_0204BF44: ; 0x0204BF44
+ push {r4, lr}
+ add r4, r0, #0x0
+ bne _0204BF4E
+ bl ErrorHandling
+_0204BF4E:
+ ldrb r0, [r4, #0x0]
+ lsl r0, r0, #0x1a
+ lsr r0, r0, #0x1d
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0204BF58
+FUN_0204BF58: ; 0x0204BF58
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ cmp r5, #0x0
+ bne _0204BF66
+ bl ErrorHandling
+_0204BF66:
+ cmp r4, #0x8
+ blo _0204BF6E
+ bl ErrorHandling
+_0204BF6E:
+ ldrb r1, [r5, #0x0]
+ mov r0, #0x38
+ bic r1, r0
+ lsl r0, r4, #0x18
+ lsr r0, r0, #0x18
+ lsl r0, r0, #0x1d
+ lsr r0, r0, #0x1a
+ orr r0, r1
+ strb r0, [r5, #0x0]
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_0204BF84
+FUN_0204BF84: ; 0x0204BF84
+ ldr r0, [r0, #0x24]
+ bx lr
+
+ thumb_func_start FUN_0204BF88
+FUN_0204BF88: ; 0x0204BF88
+ ldrb r2, [r0, #0x0]
+ lsl r2, r2, #0x1e
+ lsr r2, r2, #0x1f
+ beq _0204BF92
+ str r1, [r0, #0x24]
+_0204BF92:
+ bx lr
+
+ thumb_func_start FUN_0204BF94
+FUN_0204BF94: ; 0x0204BF94
+ ldrh r0, [r0, #0x28]
+ lsl r0, r0, #0x1f
+ lsr r0, r0, #0x1f
+ bx lr
+
+ thumb_func_start FUN_0204BF9C
+FUN_0204BF9C: ; 0x0204BF9C
+ ldrh r3, [r0, #0x28]
+ lsl r3, r3, #0x1a
+ lsr r3, r3, #0x1b
+ str r3, [r1, #0x0]
+ ldrh r0, [r0, #0x28]
+ lsl r0, r0, #0x14
+ lsr r0, r0, #0x1a
+ str r0, [r2, #0x0]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_0204BFB0
+FUN_0204BFB0: ; 0x0204BFB0
+ push {r4-r5}
+ ldrh r4, [r0, #0x28]
+ mov r5, #0x1
+ lsl r1, r1, #0x10
+ bic r4, r5
+ lsr r5, r1, #0x10
+ mov r1, #0x1
+ and r1, r5
+ orr r1, r4
+ strh r1, [r0, #0x28]
+ lsl r2, r2, #0x10
+ lsr r2, r2, #0x10
+ lsl r2, r2, #0x1b
+ ldrh r1, [r0, #0x28]
+ mov r4, #0x3e
+ lsr r2, r2, #0x1a
+ bic r1, r4
+ orr r1, r2
+ strh r1, [r0, #0x28]
+ ldrh r2, [r0, #0x28]
+ ldr r1, _0204BFEC ; =0xFFFFF03F
+ and r2, r1
+ lsl r1, r3, #0x10
+ lsr r1, r1, #0x10
+ lsl r1, r1, #0x1a
+ lsr r1, r1, #0x14
+ orr r1, r2
+ strh r1, [r0, #0x28]
+ pop {r4-r5}
+ bx lr
+ .balign 4
+_0204BFEC: .word 0xFFFFF03F
+
+ thumb_func_start FUN_0204BFF0
+FUN_0204BFF0: ; 0x0204BFF0
+ push {r3-r4}
+ add r3, r0, #0x0
+ add r3, #0xa8
+ ldrb r3, [r3, #0x0]
+ cmp r3, r1
+ bne _0204C016
+ add r1, r0, #0x0
+ add r1, #0xa4
+ ldr r4, [r1, #0x0]
+ mov r3, #0x1
+ sub r1, r2, #0x1
+ add r2, r3, #0x0
+ lsl r2, r1
+ add r1, r4, #0x0
+ orr r1, r2
+ add r0, #0xa4
+ str r1, [r0, #0x0]
+ pop {r3-r4}
+ bx lr
+_0204C016:
+ add r3, r0, #0x0
+ add r3, #0xa8
+ strb r1, [r3, #0x0]
+ mov r3, #0x1
+ sub r1, r2, #0x1
+ add r2, r3, #0x0
+ lsl r2, r1
+ add r0, #0xa4
+ str r2, [r0, #0x0]
+ pop {r3-r4}
+ bx lr
+
+ thumb_func_start FUN_0204C02C
+FUN_0204C02C: ; 0x0204C02C
+ push {r3-r4}
+ add r3, r0, #0x0
+ add r3, #0xa8
+ ldrb r3, [r3, #0x0]
+ cmp r3, r1
+ bne _0204C052
+ add r1, r0, #0x0
+ add r1, #0xa4
+ ldr r4, [r1, #0x0]
+ mov r3, #0x1
+ sub r1, r2, #0x1
+ add r2, r3, #0x0
+ lsl r2, r1
+ mvn r1, r2
+ and r1, r4
+ add r0, #0xa4
+ str r1, [r0, #0x0]
+ pop {r3-r4}
+ bx lr
+_0204C052:
+ add r2, r0, #0x0
+ add r2, #0xa8
+ strb r1, [r2, #0x0]
+ mov r1, #0x0
+ add r0, #0xa4
+ str r1, [r0, #0x0]
+ pop {r3-r4}
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_0204C064
+FUN_0204C064: ; 0x0204C064
+ add r3, r0, #0x0
+ add r3, #0xa8
+ ldrb r3, [r3, #0x0]
+ cmp r3, r1
+ bne _0204C07C
+ add r0, #0xa4
+ ldr r1, [r0, #0x0]
+ sub r0, r2, #0x1
+ lsr r1, r0
+ mov r0, #0x1
+ and r0, r1
+ bx lr
+_0204C07C:
+ mov r0, #0x0
+ bx lr
+
+ thumb_func_start FUN_0204C080
+FUN_0204C080: ; 0x0204C080
+ push {r3-r7, lr}
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ add r6, r2, #0x0
+ add r7, r3, #0x0
+ cmp r4, #0x6
+ blt _0204C092
+ bl ErrorHandling
+_0204C092:
+ lsl r1, r4, #0x1
+ add r0, r5, r1
+ add r0, #0xa9
+ strb r6, [r0, #0x0]
+ add r0, r5, r1
+ add r0, #0xaa
+ strb r7, [r0, #0x0]
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_0204C0A4
+FUN_0204C0A4: ; 0x0204C0A4
+ push {r3-r7, lr}
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ add r6, r2, #0x0
+ add r7, r3, #0x0
+ cmp r4, #0x6
+ blt _0204C0B6
+ bl ErrorHandling
+_0204C0B6:
+ lsl r1, r4, #0x1
+ add r0, r5, r1
+ add r0, #0xa9
+ ldrb r0, [r0, #0x0]
+ strb r0, [r6, #0x0]
+ add r0, r5, r1
+ add r0, #0xaa
+ ldrb r0, [r0, #0x0]
+ strb r0, [r7, #0x0]
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_0204C0CC
+FUN_0204C0CC: ; 0x0204C0CC
+ ldrb r0, [r0, #0x0]
+ lsl r0, r0, #0x1d
+ lsr r0, r0, #0x1f
+ bx lr
+
+ thumb_func_start FUN_0204C0D4
+FUN_0204C0D4: ; 0x0204C0D4
+ push {r3, lr}
+ ldrb r2, [r0, #0x0]
+ lsl r2, r2, #0x1d
+ lsr r2, r2, #0x1f
+ beq _0204C0E6
+ add r0, #0x2a
+ mov r2, #0x78
+ blx MI_CpuCopy8
+_0204C0E6:
+ pop {r3, pc}
+
+ thumb_func_start FUN_0204C0E8
+FUN_0204C0E8: ; 0x0204C0E8
+ push {r4, lr}
+ add r4, r0, #0x0
+ add r0, r1, #0x0
+ add r1, r4, #0x0
+ add r1, #0x2a
+ mov r2, #0x78
+ blx MI_CpuCopy8
+ ldrb r1, [r4, #0x0]
+ mov r0, #0x4
+ orr r0, r1
+ strb r0, [r4, #0x0]
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0204C104
+FUN_0204C104: ; 0x0204C104
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ add r6, r1, #0x0
+ bl FUN_0204C158
+ cmp r0, #0xc
+ blt _0204C138
+ mov r0, #0x0
+ add r1, r5, #0x0
+_0204C116:
+ add r2, r1, #0x0
+ add r2, #0xba
+ ldrh r3, [r2, #0x0]
+ add r2, r1, #0x0
+ add r2, #0xb6
+ strh r3, [r2, #0x0]
+ add r2, r1, #0x0
+ add r2, #0xbc
+ ldrh r3, [r2, #0x0]
+ add r2, r1, #0x0
+ add r2, #0xb8
+ add r0, r0, #0x1
+ add r1, r1, #0x4
+ strh r3, [r2, #0x0]
+ cmp r0, #0xb
+ blt _0204C116
+ mov r0, #0xb
+_0204C138:
+ lsl r4, r0, #0x2
+ add r0, r6, #0x0
+ mov r1, #0x5
+ mov r2, #0x0
+ bl FUN_020672BC
+ add r1, r5, r4
+ add r1, #0xb6
+ strh r0, [r1, #0x0]
+ add r0, r6, #0x0
+ bl FUN_0206B754
+ add r1, r5, r4
+ add r1, #0xb8
+ strh r0, [r1, #0x0]
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_0204C158
+FUN_0204C158: ; 0x0204C158
+ mov r2, #0x0
+_0204C15A:
+ add r1, r0, #0x0
+ add r1, #0xb6
+ ldrh r1, [r1, #0x0]
+ cmp r1, #0x0
+ bne _0204C168
+ add r0, r2, #0x0
+ bx lr
+_0204C168:
+ add r2, r2, #0x1
+ add r0, r0, #0x4
+ cmp r2, #0xc
+ blt _0204C15A
+ add r0, r2, #0x0
+ bx lr
+
+ thumb_func_start FUN_0204C174
+FUN_0204C174: ; 0x0204C174
+ push {r3-r7, lr}
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ add r7, r2, #0x0
+ str r3, [sp, #0x0]
+ cmp r4, #0xc
+ blt _0204C186
+ bl ErrorHandling
+_0204C186:
+ add r6, r5, #0x0
+ lsl r4, r4, #0x2
+ add r6, #0xb6
+ ldrh r0, [r6, r4]
+ cmp r0, #0x0
+ bne _0204C196
+ bl ErrorHandling
+_0204C196:
+ ldrh r0, [r6, r4]
+ str r0, [r7, #0x0]
+ add r0, r5, r4
+ add r0, #0xb8
+ ldrh r1, [r0, #0x0]
+ ldr r0, [sp, #0x0]
+ str r1, [r0, #0x0]
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_0204C1A8
+FUN_0204C1A8: ; 0x0204C1A8
+ ldr r3, _0204C1B0 ; =FUN_02022610
+ mov r1, #0x5
+ bx r3
+ nop
+_0204C1B0: .word FUN_02022610
+
+ thumb_func_start FUN_0204C1B4
+FUN_0204C1B4: ; 0x0204C1B4
+ push {r3-r7, lr}
+ add r7, r0, #0x0
+ add r5, r1, #0x0
+ ldr r0, [sp, #0x24]
+ mov r1, #0x20
+ add r4, r2, #0x0
+ add r6, r3, #0x0
+ bl FUN_02016998
+ add r2, r0, #0x0
+ str r5, [r2, #0x4]
+ str r4, [r2, #0x8]
+ str r6, [r2, #0xc]
+ add r0, sp, #0x8
+ ldrh r0, [r0, #0x10]
+ ldr r1, _0204C1F0 ; =FUN_0204C1F4
+ strh r0, [r2, #0x10]
+ ldr r0, [sp, #0x1c]
+ str r0, [r2, #0x14]
+ ldr r0, [sp, #0x20]
+ str r0, [r2, #0x18]
+ ldr r0, [sp, #0x24]
+ str r0, [r2, #0x1c]
+ mov r0, #0x0
+ str r0, [r2, #0x0]
+ add r0, r7, #0x0
+ bl FUN_0204640C
+ pop {r3-r7, pc}
+ nop
+_0204C1F0: .word FUN_0204C1F4
+
+ thumb_func_start FUN_0204C1F4
+FUN_0204C1F4: ; 0x0204C1F4
+ push {r4-r5, lr}
+ sub sp, #0xc
+ add r4, r0, #0x0
+ bl FUN_02046528
+ add r5, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_0204652C
+ add r4, r0, #0x0
+ ldr r0, [r4, #0x0]
+ cmp r0, #0x0
+ beq _0204C214
+ cmp r0, #0x1
+ beq _0204C23C
+ b _0204C258
+_0204C214:
+ ldr r0, [r5, #0x4]
+ ldr r0, [r0, #0x1c]
+ bl FUN_021F4608
+ ldr r0, [r4, #0x14]
+ str r0, [sp, #0x0]
+ ldr r0, [r4, #0x18]
+ str r0, [sp, #0x4]
+ ldr r0, [r4, #0x1c]
+ str r0, [sp, #0x8]
+ ldrh r3, [r4, #0x10]
+ ldr r0, [r4, #0x4]
+ ldr r1, [r4, #0x8]
+ ldr r2, [r4, #0xc]
+ bl FUN_0200E1D0
+ ldr r0, [r4, #0x0]
+ add r0, r0, #0x1
+ str r0, [r4, #0x0]
+ b _0204C258
+_0204C23C:
+ bl FUN_0200E308
+ cmp r0, #0x0
+ beq _0204C258
+ ldr r0, [r5, #0x4]
+ ldr r0, [r0, #0x1c]
+ bl FUN_021F45E8
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ add sp, #0xc
+ mov r0, #0x1
+ pop {r4-r5, pc}
+_0204C258:
+ mov r0, #0x0
+ add sp, #0xc
+ pop {r4-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_0204C260
+FUN_0204C260: ; 0x0204C260
+ push {r3-r7, lr}
+ add r7, r0, #0x0
+ add r5, r1, #0x0
+ mov r0, #0xb
+ mov r1, #0x24
+ add r4, r2, #0x0
+ add r6, r3, #0x0
+ bl FUN_020169D8
+ add r2, r0, #0x0
+ mov r0, #0x0
+ str r0, [r2, #0x0]
+ str r0, [r2, #0x4]
+ str r5, [r2, #0x8]
+ str r4, [r2, #0xc]
+ ldr r0, [sp, #0x18]
+ str r6, [r2, #0x10]
+ str r0, [r2, #0x14]
+ ldr r0, [sp, #0x1c]
+ ldr r1, _0204C298 ; =FUN_0204C380
+ str r0, [r2, #0x18]
+ ldr r0, [sp, #0x20]
+ str r0, [r2, #0x20]
+ add r0, r7, #0x0
+ bl FUN_020463CC
+ pop {r3-r7, pc}
+ nop
+_0204C298: .word FUN_0204C380
+
+ thumb_func_start FUN_0204C29C
+FUN_0204C29C: ; 0x0204C29C
+ push {r4-r7, lr}
+ sub sp, #0xc
+ add r7, r0, #0x0
+ add r5, r1, #0x0
+ mov r0, #0xb
+ mov r1, #0x24
+ str r2, [sp, #0x0]
+ str r3, [sp, #0x4]
+ bl FUN_020169D8
+ add r6, r0, #0x0
+ mov r4, #0x0
+ str r4, [r6, #0x0]
+ str r4, [r6, #0x4]
+ ldr r0, [sp, #0x0]
+ str r5, [r6, #0x8]
+ str r0, [r6, #0xc]
+ ldr r0, [sp, #0x4]
+ str r0, [r6, #0x10]
+ ldr r0, [sp, #0x20]
+ str r0, [r6, #0x14]
+ ldr r0, [sp, #0x24]
+ str r0, [r6, #0x18]
+ ldr r0, [r7, #0x1c]
+ ldr r0, [r0, #0x0]
+ str r0, [sp, #0x8]
+ bl FUN_02034930
+ cmp r0, #0x0
+ beq _0204C308
+ add r0, r5, #0x0
+ bl FUN_02034930
+ cmp r0, #0x0
+ beq _0204C2E6
+ mov r4, #0x6
+ b _0204C36A
+_0204C2E6:
+ add r0, r5, #0x0
+ bl FUN_02034964
+ cmp r0, #0x0
+ beq _0204C2F4
+ mov r4, #0x5
+ b _0204C36A
+_0204C2F4:
+ add r0, r5, #0x0
+ bl FUN_02034944
+ cmp r0, #0x0
+ beq _0204C302
+ mov r4, #0x6
+ b _0204C36A
+_0204C302:
+ bl ErrorHandling
+ b _0204C36A
+_0204C308:
+ ldr r0, [sp, #0x8]
+ bl FUN_02034964
+ cmp r0, #0x0
+ beq _0204C334
+ add r0, r5, #0x0
+ bl FUN_02034930
+ cmp r0, #0x0
+ beq _0204C320
+ mov r4, #0x4
+ b _0204C36A
+_0204C320:
+ add r0, r5, #0x0
+ bl FUN_02034944
+ cmp r0, #0x0
+ beq _0204C32E
+ mov r4, #0x6
+ b _0204C36A
+_0204C32E:
+ bl ErrorHandling
+ b _0204C36A
+_0204C334:
+ ldr r0, [sp, #0x8]
+ bl FUN_02034944
+ cmp r0, #0x0
+ beq _0204C366
+ add r0, r5, #0x0
+ bl FUN_02034964
+ cmp r0, #0x0
+ bne _0204C36A
+ add r0, r5, #0x0
+ bl FUN_02034944
+ cmp r0, #0x0
+ beq _0204C356
+ mov r4, #0x6
+ b _0204C36A
+_0204C356:
+ add r0, r5, #0x0
+ bl FUN_02034930
+ cmp r0, #0x0
+ bne _0204C36A
+ bl ErrorHandling
+ b _0204C36A
+_0204C366:
+ bl ErrorHandling
+_0204C36A:
+ ldr r1, _0204C37C ; =FUN_0204C380
+ add r0, r7, #0x0
+ add r2, r6, #0x0
+ str r4, [r6, #0x20]
+ bl FUN_020463CC
+ add sp, #0xc
+ pop {r4-r7, pc}
+ nop
+_0204C37C: .word FUN_0204C380
+
+ thumb_func_start FUN_0204C380
+FUN_0204C380: ; 0x0204C380
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ bl FUN_02046528
+ add r7, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_0204652C
+ add r4, r0, #0x0
+ add r6, r4, #0x0
+ ldr r1, [r4, #0x0]
+ add r6, #0x8
+ cmp r1, #0x6
+ bhi _0204C458
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #0x6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_0204C3A8: ; jump table (using 16-bit offset)
+ .short _0204C3B6 - _0204C3A8 - 2; case 0
+ .short _0204C3DA - _0204C3A8 - 2; case 1
+ .short _0204C3E8 - _0204C3A8 - 2; case 2
+ .short _0204C3F8 - _0204C3A8 - 2; case 3
+ .short _0204C406 - _0204C3A8 - 2; case 4
+ .short _0204C41E - _0204C3A8 - 2; case 5
+ .short _0204C450 - _0204C3A8 - 2; case 6
+_0204C3B6:
+ mov r0, #0x0
+ str r0, [r4, #0x4]
+ ldr r1, [r6, #0x0]
+ add r0, r7, #0x0
+ bl FUN_0204AD60
+ ldr r1, [r4, #0x20]
+ add r0, r5, #0x0
+ lsl r2, r1, #0x2
+ ldr r1, _0204C45C ; =0x020F4894
+ ldr r1, [r1, r2]
+ add r2, r4, #0x0
+ bl FUN_0204640C
+ ldr r0, [r4, #0x0]
+ add r0, r0, #0x1
+ str r0, [r4, #0x0]
+ b _0204C458
+_0204C3DA:
+ add r0, r5, #0x0
+ bl FUN_0204AF3C
+ ldr r0, [r4, #0x0]
+ add r0, r0, #0x1
+ str r0, [r4, #0x0]
+ b _0204C458
+_0204C3E8:
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ bl FUN_02049160
+ ldr r0, [r4, #0x0]
+ add r0, r0, #0x1
+ str r0, [r4, #0x0]
+ b _0204C458
+_0204C3F8:
+ add r0, r5, #0x0
+ bl FUN_0204AF84
+ ldr r0, [r4, #0x0]
+ add r0, r0, #0x1
+ str r0, [r4, #0x0]
+ b _0204C458
+_0204C406:
+ ldr r0, [r4, #0x20]
+ lsl r1, r0, #0x2
+ ldr r0, _0204C460 ; =0x020F48B0
+ ldr r1, [r0, r1]
+ cmp r1, #0x0
+ beq _0204C416
+ add r0, r7, #0x0
+ blx r1
+_0204C416:
+ ldr r0, [r4, #0x0]
+ add r0, r0, #0x1
+ str r0, [r4, #0x0]
+ b _0204C458
+_0204C41E:
+ bl FUN_02005404
+ cmp r0, #0x0
+ bne _0204C458
+ ldr r1, [r6, #0x0]
+ add r0, r7, #0x0
+ bl FUN_0204AD8C
+ add r0, r7, #0x0
+ bl FUN_021E331C
+ mov r0, #0x0
+ str r0, [r4, #0x4]
+ ldr r1, [r4, #0x20]
+ add r0, r5, #0x0
+ lsl r2, r1, #0x2
+ ldr r1, _0204C464 ; =0x020F4878
+ ldr r1, [r1, r2]
+ add r2, r4, #0x0
+ bl FUN_0204640C
+ ldr r0, [r4, #0x0]
+ add r0, r0, #0x1
+ str r0, [r4, #0x0]
+ b _0204C458
+_0204C450:
+ bl FUN_02016A18
+ mov r0, #0x1
+ pop {r3-r7, pc}
+_0204C458:
+ mov r0, #0x0
+ pop {r3-r7, pc}
+ .balign 4
+_0204C45C: .word 0x020F4894
+_0204C460: .word 0x020F48B0
+_0204C464: .word 0x020F4878
+
+ thumb_func_start FUN_0204C468
+FUN_0204C468: ; 0x0204C468
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ bl FUN_02046528
+ add r0, r5, #0x0
+ bl FUN_0204652C
+ add r4, r0, #0x0
+ ldr r0, [r4, #0x4]
+ cmp r0, #0x0
+ beq _0204C484
+ cmp r0, #0x1
+ beq _0204C498
+ b _0204C49C
+_0204C484:
+ ldr r0, _0204C4A0 ; =0x00000603
+ bl FUN_020054C8
+ add r0, r5, #0x0
+ bl FUN_0204AFC8
+ ldr r0, [r4, #0x4]
+ add r0, r0, #0x1
+ str r0, [r4, #0x4]
+ b _0204C49C
+_0204C498:
+ mov r0, #0x1
+ pop {r3-r5, pc}
+_0204C49C:
+ mov r0, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+_0204C4A0: .word 0x00000603
+
+ thumb_func_start FUN_0204C4A4
+FUN_0204C4A4: ; 0x0204C4A4
+ push {r4-r6, lr}
+ add r6, r0, #0x0
+ bl FUN_02046528
+ add r5, r0, #0x0
+ add r0, r6, #0x0
+ bl FUN_0204652C
+ add r4, r0, #0x0
+ ldr r0, [r4, #0x4]
+ cmp r0, #0x3
+ bhi _0204C522
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0204C4C8: ; jump table (using 16-bit offset)
+ .short _0204C4D0 - _0204C4C8 - 2; case 0
+ .short _0204C4F6 - _0204C4C8 - 2; case 1
+ .short _0204C510 - _0204C4C8 - 2; case 2
+ .short _0204C51E - _0204C4C8 - 2; case 3
+_0204C4D0:
+ bl FUN_021DA5B8
+ str r0, [r4, #0x1c]
+ ldr r0, [r5, #0x38]
+ bl FUN_02055320
+ add r6, r0, #0x0
+ ldr r0, [r5, #0x38]
+ bl FUN_0205532C
+ add r1, r0, #0x0
+ ldr r2, [r4, #0x1c]
+ add r0, r6, #0x0
+ bl FUN_021DA5D0
+ ldr r0, [r4, #0x4]
+ add r0, r0, #0x1
+ str r0, [r4, #0x4]
+ b _0204C522
+_0204C4F6:
+ ldr r1, [r4, #0x1c]
+ add r0, r5, #0x0
+ bl FUN_021DA5D8
+ cmp r0, #0x0
+ beq _0204C522
+ ldr r0, [r4, #0x1c]
+ bl FUN_021DA5C8
+ ldr r0, [r4, #0x4]
+ add r0, r0, #0x1
+ str r0, [r4, #0x4]
+ b _0204C522
+_0204C510:
+ add r0, r6, #0x0
+ bl FUN_0204AFC8
+ ldr r0, [r4, #0x4]
+ add r0, r0, #0x1
+ str r0, [r4, #0x4]
+ b _0204C522
+_0204C51E:
+ mov r0, #0x1
+ pop {r4-r6, pc}
+_0204C522:
+ mov r0, #0x0
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_0204C528
+FUN_0204C528: ; 0x0204C528
+ push {r4-r6, lr}
+ add r4, r0, #0x0
+ bl FUN_02046528
+ add r5, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_0204652C
+ add r4, r0, #0x0
+ ldr r0, [r4, #0x4]
+ cmp r0, #0x0
+ beq _0204C54A
+ cmp r0, #0x1
+ beq _0204C570
+ cmp r0, #0x2
+ beq _0204C598
+ b _0204C59C
+_0204C54A:
+ bl FUN_021DA5B8
+ str r0, [r4, #0x1c]
+ ldr r0, [r5, #0x38]
+ bl FUN_02055320
+ add r6, r0, #0x0
+ ldr r0, [r5, #0x38]
+ bl FUN_0205532C
+ add r1, r0, #0x0
+ ldr r2, [r4, #0x1c]
+ add r0, r6, #0x0
+ bl FUN_021DA5D0
+ ldr r0, [r4, #0x4]
+ add r0, r0, #0x1
+ str r0, [r4, #0x4]
+ b _0204C59C
+_0204C570:
+ ldr r0, [r5, #0x38]
+ ldr r6, [r4, #0x1c]
+ bl FUN_020552F8
+ add r2, r0, #0x0
+ lsl r2, r2, #0x18
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ lsr r2, r2, #0x18
+ bl FUN_021DAC70
+ cmp r0, #0x0
+ beq _0204C59C
+ ldr r0, [r4, #0x1c]
+ bl FUN_021DA5C8
+ ldr r0, [r4, #0x4]
+ add r0, r0, #0x1
+ str r0, [r4, #0x4]
+ b _0204C59C
+_0204C598:
+ mov r0, #0x1
+ pop {r4-r6, pc}
+_0204C59C:
+ mov r0, #0x0
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_0204C5A0
+FUN_0204C5A0: ; 0x0204C5A0
+ push {r4-r6, lr}
+ add r4, r0, #0x0
+ bl FUN_02046528
+ add r5, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_0204652C
+ add r4, r0, #0x0
+ ldr r0, [r4, #0x4]
+ cmp r0, #0x3
+ bhi _0204C63C
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0204C5C4: ; jump table (using 16-bit offset)
+ .short _0204C5CC - _0204C5C4 - 2; case 0
+ .short _0204C5FE - _0204C5C4 - 2; case 1
+ .short _0204C61C - _0204C5C4 - 2; case 2
+ .short _0204C630 - _0204C5C4 - 2; case 3
+_0204C5CC:
+ ldr r0, [r5, #0x38]
+ bl FUN_020552F8
+ add r6, r0, #0x0
+ ldr r0, [r5, #0x38]
+ bl FUN_020553A0
+ cmp r6, #0x2
+ bne _0204C5E6
+ mov r1, #0xa
+ bl FUN_0205ADDC
+ b _0204C5F6
+_0204C5E6:
+ cmp r6, #0x3
+ bne _0204C5F2
+ mov r1, #0xb
+ bl FUN_0205ADDC
+ b _0204C5F6
+_0204C5F2:
+ bl ErrorHandling
+_0204C5F6:
+ ldr r0, [r4, #0x4]
+ add r0, r0, #0x1
+ str r0, [r4, #0x4]
+ b _0204C63C
+_0204C5FE:
+ ldr r0, [r5, #0x38]
+ bl FUN_020553A0
+ add r5, r0, #0x0
+ bl FUN_0205AE28
+ cmp r0, #0x1
+ bne _0204C63C
+ add r0, r5, #0x0
+ bl FUN_0205AE50
+ ldr r0, [r4, #0x4]
+ add r0, r0, #0x1
+ str r0, [r4, #0x4]
+ b _0204C63C
+_0204C61C:
+ ldr r0, _0204C640 ; =0x00000603
+ bl FUN_020054C8
+ mov r0, #0x0
+ bl FUN_021D7CA4
+ ldr r0, [r4, #0x4]
+ add r0, r0, #0x1
+ str r0, [r4, #0x4]
+ b _0204C63C
+_0204C630:
+ bl FUN_0200E308
+ cmp r0, #0x0
+ beq _0204C63C
+ mov r0, #0x1
+ pop {r4-r6, pc}
+_0204C63C:
+ mov r0, #0x0
+ pop {r4-r6, pc}
+ .balign 4
+_0204C640: .word 0x00000603
+
+ thumb_func_start FUN_0204C644
+FUN_0204C644: ; 0x0204C644
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ bl FUN_02046528
+ add r6, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_0204652C
+ add r4, r0, #0x0
+ ldr r0, [r6, #0x38]
+ bl FUN_020553A0
+ ldr r0, [r4, #0x4]
+ cmp r0, #0x0
+ beq _0204C668
+ cmp r0, #0x1
+ beq _0204C67E
+ b _0204C682
+_0204C668:
+ bl FUN_021DB030
+ add r2, r0, #0x0
+ ldr r1, _0204C688 ; =0x021DB1D1
+ add r0, r5, #0x0
+ bl FUN_0204640C
+ ldr r0, [r4, #0x4]
+ add r0, r0, #0x1
+ str r0, [r4, #0x4]
+ b _0204C682
+_0204C67E:
+ mov r0, #0x1
+ pop {r4-r6, pc}
+_0204C682:
+ mov r0, #0x0
+ pop {r4-r6, pc}
+ nop
+_0204C688: .word 0x021DB1D1
+
+ thumb_func_start FUN_0204C68C
+FUN_0204C68C: ; 0x0204C68C
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ bl FUN_02046528
+ add r6, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_0204652C
+ add r4, r0, #0x0
+ ldr r0, [r6, #0x38]
+ bl FUN_020553A0
+ ldr r0, [r4, #0x4]
+ cmp r0, #0x0
+ beq _0204C6B0
+ cmp r0, #0x1
+ beq _0204C6C6
+ b _0204C6CA
+_0204C6B0:
+ bl FUN_021DB030
+ add r2, r0, #0x0
+ ldr r1, _0204C6D0 ; =0x021DB145
+ add r0, r5, #0x0
+ bl FUN_0204640C
+ ldr r0, [r4, #0x4]
+ add r0, r0, #0x1
+ str r0, [r4, #0x4]
+ b _0204C6CA
+_0204C6C6:
+ mov r0, #0x1
+ pop {r4-r6, pc}
+_0204C6CA:
+ mov r0, #0x0
+ pop {r4-r6, pc}
+ nop
+_0204C6D0: .word 0x021DB145
+
+ thumb_func_start FUN_0204C6D4
+FUN_0204C6D4: ; 0x0204C6D4
+ push {r3-r7, lr}
+ add r6, r0, #0x0
+ bl FUN_02046528
+ add r4, r0, #0x0
+ add r0, r6, #0x0
+ bl FUN_0204652C
+ add r5, r0, #0x0
+ ldr r0, [r5, #0x4]
+ cmp r0, #0x3
+ bhi _0204C798
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0204C6F8: ; jump table (using 16-bit offset)
+ .short _0204C700 - _0204C6F8 - 2; case 0
+ .short _0204C74A - _0204C6F8 - 2; case 1
+ .short _0204C770 - _0204C6F8 - 2; case 2
+ .short _0204C794 - _0204C6F8 - 2; case 3
+_0204C700:
+ ldr r0, [r4, #0x38]
+ bl FUN_020553A0
+ add r7, r0, #0x0
+ ldr r0, [r4, #0x38]
+ bl FUN_02055320
+ str r0, [sp, #0x0]
+ ldr r0, [r4, #0x38]
+ bl FUN_0205532C
+ add r2, r0, #0x0
+ ldr r1, [sp, #0x0]
+ add r0, r4, #0x0
+ bl FUN_0204A6E0
+ bl FUN_020547B0
+ cmp r0, #0x0
+ beq _0204C736
+ add r0, r7, #0x0
+ mov r1, #0x1
+ bl FUN_0205889C
+ mov r0, #0x1
+ str r0, [r5, #0x4]
+ b _0204C798
+_0204C736:
+ bl FUN_021DB030
+ add r2, r0, #0x0
+ ldr r1, _0204C79C ; =0x021DB251
+ add r0, r6, #0x0
+ bl FUN_0204640C
+ mov r0, #0x3
+ str r0, [r5, #0x4]
+ b _0204C798
+_0204C74A:
+ bl FUN_021DA5B8
+ str r0, [r5, #0x1c]
+ ldr r0, [r4, #0x38]
+ bl FUN_02055320
+ add r6, r0, #0x0
+ ldr r0, [r4, #0x38]
+ bl FUN_0205532C
+ add r1, r0, #0x0
+ ldr r2, [r5, #0x1c]
+ add r0, r6, #0x0
+ bl FUN_021DA5D0
+ ldr r0, [r5, #0x4]
+ add r0, r0, #0x1
+ str r0, [r5, #0x4]
+ b _0204C798
+_0204C770:
+ ldr r5, [r5, #0x1c]
+ add r0, r4, #0x0
+ add r1, r5, #0x0
+ bl FUN_021DA7B4
+ cmp r0, #0x0
+ beq _0204C798
+ add r0, r5, #0x0
+ bl FUN_021DA5C8
+ ldr r0, [r4, #0x38]
+ bl FUN_020553A0
+ mov r1, #0x0
+ bl FUN_0205889C
+ mov r0, #0x1
+ pop {r3-r7, pc}
+_0204C794:
+ mov r0, #0x1
+ pop {r3-r7, pc}
+_0204C798:
+ mov r0, #0x0
+ pop {r3-r7, pc}
+ .balign 4
+_0204C79C: .word 0x021DB251
+
+ thumb_func_start FUN_0204C7A0
+FUN_0204C7A0: ; 0x0204C7A0
+ push {r3-r7, lr}
+ add r6, r0, #0x0
+ bl FUN_02046528
+ add r5, r0, #0x0
+ add r0, r6, #0x0
+ bl FUN_0204652C
+ add r4, r0, #0x0
+ ldr r0, [r4, #0x4]
+ cmp r0, #0x0
+ beq _0204C7BE
+ cmp r0, #0x1
+ beq _0204C814
+ b _0204C818
+_0204C7BE:
+ ldr r0, [r5, #0x38]
+ bl FUN_020553A0
+ add r7, r0, #0x0
+ ldr r0, [r5, #0x38]
+ bl FUN_02055320
+ str r0, [sp, #0x0]
+ ldr r0, [r5, #0x38]
+ bl FUN_0205532C
+ add r2, r0, #0x0
+ ldr r1, [sp, #0x0]
+ add r0, r5, #0x0
+ bl FUN_0204A6E0
+ bl FUN_020547B0
+ cmp r0, #0x0
+ beq _0204C7FE
+ add r0, r7, #0x0
+ mov r1, #0x1
+ bl FUN_0205889C
+ mov r0, #0x1
+ str r0, [r4, #0x4]
+ ldr r1, _0204C81C ; =FUN_0204C6D4
+ add r0, r6, #0x0
+ add r2, r4, #0x0
+ bl FUN_020463EC
+ b _0204C818
+_0204C7FE:
+ bl FUN_021DB030
+ add r2, r0, #0x0
+ ldr r1, _0204C820 ; =0x021DB381
+ add r0, r6, #0x0
+ bl FUN_0204640C
+ ldr r0, [r4, #0x4]
+ add r0, r0, #0x1
+ str r0, [r4, #0x4]
+ b _0204C818
+_0204C814:
+ mov r0, #0x1
+ pop {r3-r7, pc}
+_0204C818:
+ mov r0, #0x0
+ pop {r3-r7, pc}
+ .balign 4
+_0204C81C: .word FUN_0204C6D4
+_0204C820: .word 0x021DB381
+
+ thumb_func_start FUN_0204C824
+FUN_0204C824: ; 0x0204C824
+ push {r4-r6, lr}
+ add r4, r0, #0x0
+ bl FUN_02046528
+ add r5, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_0204652C
+ add r4, r0, #0x0
+ ldr r0, [r4, #0x4]
+ cmp r0, #0x0
+ beq _0204C846
+ cmp r0, #0x1
+ beq _0204C86C
+ cmp r0, #0x2
+ beq _0204C894
+ b _0204C898
+_0204C846:
+ bl FUN_021DA5B8
+ str r0, [r4, #0x1c]
+ ldr r0, [r5, #0x38]
+ bl FUN_02055320
+ add r6, r0, #0x0
+ ldr r0, [r5, #0x38]
+ bl FUN_0205532C
+ add r1, r0, #0x0
+ ldr r2, [r4, #0x1c]
+ add r0, r6, #0x0
+ bl FUN_021DA5D0
+ ldr r0, [r4, #0x4]
+ add r0, r0, #0x1
+ str r0, [r4, #0x4]
+ b _0204C898
+_0204C86C:
+ ldr r0, [r5, #0x38]
+ ldr r6, [r4, #0x1c]
+ bl FUN_020552F8
+ add r2, r0, #0x0
+ lsl r2, r2, #0x18
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ lsr r2, r2, #0x18
+ bl FUN_021DAAA4
+ cmp r0, #0x0
+ beq _0204C898
+ ldr r0, [r4, #0x1c]
+ bl FUN_021DA5C8
+ ldr r0, [r4, #0x4]
+ add r0, r0, #0x1
+ str r0, [r4, #0x4]
+ b _0204C898
+_0204C894:
+ mov r0, #0x1
+ pop {r4-r6, pc}
+_0204C898:
+ mov r0, #0x0
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_0204C89C
+FUN_0204C89C: ; 0x0204C89C
+ push {r4-r6, lr}
+ add r4, r0, #0x0
+ bl FUN_02046528
+ add r5, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_0204652C
+ add r4, r0, #0x0
+ ldr r0, [r4, #0x4]
+ cmp r0, #0x3
+ bhi _0204C936
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0204C8C0: ; jump table (using 16-bit offset)
+ .short _0204C8C8 - _0204C8C0 - 2; case 0
+ .short _0204C904 - _0204C8C0 - 2; case 1
+ .short _0204C922 - _0204C8C0 - 2; case 2
+ .short _0204C932 - _0204C8C0 - 2; case 3
+_0204C8C8:
+ mov r0, #0x1
+ bl FUN_021D7CA4
+ ldr r0, [r5, #0x38]
+ bl FUN_020553A0
+ add r6, r0, #0x0
+ ldr r0, [r5, #0x38]
+ bl FUN_020552F8
+ cmp r0, #0x2
+ bne _0204C8EA
+ add r0, r6, #0x0
+ mov r1, #0xa
+ bl FUN_0205ADDC
+ b _0204C8FC
+_0204C8EA:
+ cmp r0, #0x3
+ bne _0204C8F8
+ add r0, r6, #0x0
+ mov r1, #0xb
+ bl FUN_0205ADDC
+ b _0204C8FC
+_0204C8F8:
+ bl ErrorHandling
+_0204C8FC:
+ ldr r0, [r4, #0x4]
+ add r0, r0, #0x1
+ str r0, [r4, #0x4]
+ b _0204C936
+_0204C904:
+ ldr r0, [r5, #0x38]
+ bl FUN_020553A0
+ add r5, r0, #0x0
+ bl FUN_0205AE28
+ cmp r0, #0x1
+ bne _0204C936
+ add r0, r5, #0x0
+ bl FUN_0205AE50
+ ldr r0, [r4, #0x4]
+ add r0, r0, #0x1
+ str r0, [r4, #0x4]
+ b _0204C936
+_0204C922:
+ bl FUN_0200E308
+ cmp r0, #0x0
+ beq _0204C936
+ ldr r0, [r4, #0x4]
+ add r0, r0, #0x1
+ str r0, [r4, #0x4]
+ b _0204C936
+_0204C932:
+ mov r0, #0x1
+ pop {r4-r6, pc}
+_0204C936:
+ mov r0, #0x0
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_0204C93C
+FUN_0204C93C: ; 0x0204C93C
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ bl FUN_02046528
+ add r6, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_0204652C
+ add r4, r0, #0x0
+ ldr r0, [r6, #0x38]
+ bl FUN_020553A0
+ ldr r0, [r4, #0x4]
+ cmp r0, #0x0
+ beq _0204C960
+ cmp r0, #0x1
+ beq _0204C976
+ b _0204C97A
+_0204C960:
+ bl FUN_021DB030
+ add r2, r0, #0x0
+ ldr r1, _0204C980 ; =0x021DB041
+ add r0, r5, #0x0
+ bl FUN_0204640C
+ ldr r0, [r4, #0x4]
+ add r0, r0, #0x1
+ str r0, [r4, #0x4]
+ b _0204C97A
+_0204C976:
+ mov r0, #0x1
+ pop {r4-r6, pc}
+_0204C97A:
+ mov r0, #0x0
+ pop {r4-r6, pc}
+ nop
+_0204C980: .word 0x021DB041
+
+ thumb_func_start FUN_0204C984
+FUN_0204C984: ; 0x0204C984
+ push {r3-r5, lr}
+ sub sp, #0x10
+ add r5, r0, #0x0
+ ldr r0, [r5, #0x38]
+ bl FUN_020552F8
+ add r4, r0, #0x0
+ ldr r0, [r5, #0x38]
+ add r1, sp, #0x4
+ bl FUN_02055350
+ cmp r4, #0x3
+ bne _0204C9AA
+ mov r0, #0x1
+ ldr r1, [sp, #0x4]
+ lsl r0, r0, #0x10
+ sub r0, r1, r0
+ str r0, [sp, #0x4]
+ b _0204C9B4
+_0204C9AA:
+ mov r0, #0x1
+ ldr r1, [sp, #0x4]
+ lsl r0, r0, #0x10
+ add r0, r1, r0
+ str r0, [sp, #0x4]
+_0204C9B4:
+ mov r0, #0x0
+ str r0, [sp, #0x0]
+ ldr r1, [sp, #0x8]
+ ldr r2, [sp, #0x4]
+ ldr r3, [sp, #0xc]
+ add r0, r5, #0x0
+ bl FUN_0204A708
+ str r0, [sp, #0x8]
+ ldr r0, [r5, #0x38]
+ add r1, sp, #0x4
+ add r2, r4, #0x0
+ bl FUN_020554EC
+ ldr r0, [r5, #0x38]
+ bl FUN_02055360
+ ldr r1, [r5, #0x20]
+ bl FUN_0201EFEC
+ ldr r0, [r5, #0x38]
+ bl FUN_02055360
+ ldr r1, [r5, #0x20]
+ bl FUN_0201EC68
+ add sp, #0x10
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_0204C9EC
+FUN_0204C9EC: ; 0x0204C9EC
+ push {r4-r6, lr}
+ sub sp, #0x10
+ add r5, r0, #0x0
+ ldr r0, [r5, #0x38]
+ bl FUN_020552F8
+ add r4, r0, #0x0
+ ldr r0, [r5, #0x38]
+ add r1, sp, #0x4
+ bl FUN_02055350
+ ldr r0, [r5, #0x38]
+ bl FUN_02055320
+ add r6, r0, #0x0
+ ldr r0, [r5, #0x38]
+ bl FUN_0205532C
+ add r2, r0, #0x0
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ bl FUN_0204A6E0
+ add r6, r0, #0x0
+ bl FUN_020548D8
+ cmp r0, #0x0
+ beq _0204CA32
+ mov r0, #0x1
+ ldr r1, [sp, #0x4]
+ lsl r0, r0, #0x10
+ add r0, r1, r0
+ str r0, [sp, #0x4]
+ mov r4, #0x2
+ b _0204CA48
+_0204CA32:
+ add r0, r6, #0x0
+ bl FUN_020548E4
+ cmp r0, #0x0
+ beq _0204CA48
+ mov r0, #0x1
+ ldr r1, [sp, #0x4]
+ lsl r0, r0, #0x10
+ sub r0, r1, r0
+ str r0, [sp, #0x4]
+ mov r4, #0x3
+_0204CA48:
+ mov r0, #0x0
+ str r0, [sp, #0x0]
+ ldr r1, [sp, #0x8]
+ ldr r2, [sp, #0x4]
+ ldr r3, [sp, #0xc]
+ add r0, r5, #0x0
+ bl FUN_0204A708
+ str r0, [sp, #0x8]
+ ldr r0, [r5, #0x38]
+ add r1, sp, #0x4
+ add r2, r4, #0x0
+ bl FUN_020554EC
+ ldr r0, [r5, #0x38]
+ bl FUN_02055360
+ ldr r1, [r5, #0x20]
+ bl FUN_0201EFEC
+ ldr r0, [r5, #0x38]
+ bl FUN_02055360
+ ldr r1, [r5, #0x20]
+ bl FUN_0201EC68
+ add sp, #0x10
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_0204CA80
+FUN_0204CA80: ; 0x0204CA80
+ mov r1, #0x1c
+ mul r1, r0
+ ldr r0, _0204CA8C ; =0x020F48CC
+ ldrb r0, [r0, r1]
+ bx lr
+ nop
+_0204CA8C: .word 0x020F48CC
+
+ thumb_func_start FUN_0204CA90
+FUN_0204CA90: ; 0x0204CA90
+ mov r1, #0x1c
+ mul r1, r0
+ ldr r0, _0204CA9C ; =0x020F48CD
+ ldrb r0, [r0, r1]
+ bx lr
+ nop
+_0204CA9C: .word 0x020F48CD
+
+ thumb_func_start FUN_0204CAA0
+FUN_0204CAA0: ; 0x0204CAA0
+ mov r1, #0x1c
+ ldr r2, _0204CAAC ; =0x020F48CC
+ mul r1, r0
+ add r0, r2, r1
+ add r0, r0, #0x2
+ bx lr
+ .balign 4
+_0204CAAC: .word 0x020F48CC
+
+ thumb_func_start FUN_0204CAB0
+FUN_0204CAB0: ; 0x0204CAB0
+ mov r1, #0x1c
+ mul r1, r0
+ ldr r0, _0204CABC ; =0x020F48D7
+ ldrb r0, [r0, r1]
+ bx lr
+ nop
+_0204CABC: .word 0x020F48D7
+
+ thumb_func_start FUN_0204CAC0
+FUN_0204CAC0: ; 0x0204CAC0
+ mov r1, #0x1c
+ mul r1, r0
+ ldr r0, _0204CACC ; =0x020F48D8
+ ldrb r0, [r0, r1]
+ bx lr
+ nop
+_0204CACC: .word 0x020F48D8
+
+ thumb_func_start FUN_0204CAD0
+FUN_0204CAD0: ; 0x0204CAD0
+ mov r1, #0x1c
+ mul r1, r0
+ ldr r0, _0204CADC ; =0x020F48D9
+ ldrb r0, [r0, r1]
+ bx lr
+ nop
+_0204CADC: .word 0x020F48D9
+
+ thumb_func_start FUN_0204CAE0
+FUN_0204CAE0: ; 0x0204CAE0
+ mov r1, #0x1c
+ mul r1, r0
+ ldr r0, _0204CAEC ; =0x020F48DC
+ ldr r0, [r0, r1]
+ bx lr
+ nop
+_0204CAEC: .word 0x020F48DC
+
+ thumb_func_start FUN_0204CAF0
+FUN_0204CAF0: ; 0x0204CAF0
+ mov r1, #0x1c
+ mul r1, r0
+ ldr r0, _0204CAFC ; =0x020F48E0
+ ldr r0, [r0, r1]
+ bx lr
+ nop
+_0204CAFC: .word 0x020F48E0
+
+ thumb_func_start FUN_0204CB00
+FUN_0204CB00: ; 0x0204CB00
+ mov r1, #0x1c
+ mul r1, r0
+ ldr r0, _0204CB0C ; =0x020F48E4
+ ldrb r0, [r0, r1]
+ bx lr
+ nop
+_0204CB0C: .word 0x020F48E4
+
+ thumb_func_start FUN_0204CB10
+FUN_0204CB10: ; 0x0204CB10
+ mov r1, #0x1c
+ mul r1, r0
+ ldr r0, _0204CB1C ; =0x020F48E5
+ ldrb r0, [r0, r1]
+ bx lr
+ nop
+_0204CB1C: .word 0x020F48E5
+
+ thumb_func_start FUN_0204CB20
+FUN_0204CB20: ; 0x0204CB20
+ push {r3-r7, lr}
+ add r4, r1, #0x0
+ ldr r1, _0204CC34 ; =0x021C5A68
+ add r5, r2, #0x0
+ ldr r2, [r1, #0x0]
+ cmp r2, #0x0
+ beq _0204CB32
+ mov r0, #0x0
+ pop {r3-r7, pc}
+_0204CB32:
+ bne _0204CB40
+ mov r2, #0xb1
+ str r0, [r1, #0x0]
+ mov r1, #0x0
+ lsl r2, r2, #0x2
+ blx MI_CpuFill8
+_0204CB40:
+ ldr r1, _0204CC34 ; =0x021C5A68
+ ldr r0, _0204CC38 ; =0x000002BE
+ ldr r2, [r1, #0x0]
+ strb r5, [r2, r0]
+ mov r2, #0x0
+ ldr r0, [r1, #0x0]
+ cmp r5, #0x0
+ str r2, [r0, #0x4]
+ beq _0204CB6C
+ bl FUN_02244D1C
+ add r1, r0, #0x0
+ mov r0, #0xf
+ bl FUN_02016998
+ ldr r1, _0204CC34 ; =0x021C5A68
+ ldr r2, [r1, #0x0]
+ str r0, [r2, #0x4]
+ ldr r0, [r1, #0x0]
+ ldr r0, [r0, #0x4]
+ bl FUN_02244D20
+_0204CB6C:
+ ldr r0, _0204CC34 ; =0x021C5A68
+ ldr r7, _0204CC3C ; =0x0000FFFF
+ ldr r1, [r0, #0x0]
+ str r4, [r1, #0x54]
+ mov r1, #0x0
+ add r2, r1, #0x0
+ add r3, r1, #0x0
+_0204CB7A:
+ ldr r4, [r0, #0x0]
+ add r5, r4, r2
+ mov r4, #0x0
+ add r5, #0xa6
+ mvn r4, r4
+ strb r4, [r5, #0x0]
+ ldr r4, [r0, #0x0]
+ add r4, r4, r2
+ add r4, #0xa2
+ strh r7, [r4, #0x0]
+ ldr r4, [r0, #0x0]
+ add r4, r4, r2
+ add r4, #0xa4
+ strh r7, [r4, #0x0]
+ ldr r4, [r0, #0x0]
+ add r5, r4, r2
+ add r5, #0xa7
+ mov r4, #0x2
+ strb r4, [r5, #0x0]
+ ldr r4, [r0, #0x0]
+ add r5, r4, r2
+ mov r4, #0x0
+ add r5, #0x66
+ mvn r4, r4
+ strb r4, [r5, #0x0]
+ ldr r4, [r0, #0x0]
+ add r4, r4, r2
+ add r4, #0x62
+ strh r7, [r4, #0x0]
+ ldr r4, [r0, #0x0]
+ add r4, r4, r2
+ add r4, #0x64
+ strh r7, [r4, #0x0]
+ ldr r4, [r0, #0x0]
+ add r5, r4, r2
+ add r5, #0x67
+ mov r4, #0x2
+ strb r4, [r5, #0x0]
+ ldr r4, [r0, #0x0]
+ ldr r5, _0204CC40 ; =0x00000102
+ add r6, r4, r1
+ mov r4, #0x0
+ mvn r4, r4
+ strb r4, [r6, r5]
+ ldr r4, [r0, #0x0]
+ add r2, #0x8
+ add r5, r4, r1
+ add r5, #0xe2
+ mov r4, #0x0
+ strb r4, [r5, #0x0]
+ ldr r4, [r0, #0x0]
+ add r5, r4, r1
+ add r5, #0xea
+ mov r4, #0x1
+ strb r4, [r5, #0x0]
+ ldr r4, [r0, #0x0]
+ add r5, r4, r1
+ add r5, #0xf2
+ mov r4, #0x0
+ strb r4, [r5, #0x0]
+ ldr r4, [r0, #0x0]
+ mov r5, #0xff
+ add r6, r4, r3
+ add r4, r5, #0x0
+ add r4, #0x6b
+ add r1, r1, #0x1
+ add r3, #0x22
+ strh r5, [r6, r4]
+ cmp r1, #0x8
+ blt _0204CB7A
+ ldr r2, _0204CC34 ; =0x021C5A68
+ mov r1, #0xaf
+ ldr r3, [r2, #0x0]
+ lsl r1, r1, #0x2
+ mov r0, #0x0
+ strb r0, [r3, r1]
+ ldr r2, [r2, #0x0]
+ add r1, r1, #0x3
+ strb r0, [r2, r1]
+ ldr r0, _0204CC44 ; =FUN_0204D4F0
+ mov r1, #0x0
+ mov r2, #0xc8
+ bl FUN_0200CA44
+ ldr r1, _0204CC34 ; =0x021C5A68
+ ldr r1, [r1, #0x0]
+ str r0, [r1, #0x50]
+ bl FUN_02030FA8
+ bl FUN_0204CF60
+ mov r0, #0x1
+ pop {r3-r7, pc}
+ .balign 4
+_0204CC34: .word 0x021C5A68
+_0204CC38: .word 0x000002BE
+_0204CC3C: .word 0x0000FFFF
+_0204CC40: .word 0x00000102
+_0204CC44: .word FUN_0204D4F0
+
+ thumb_func_start FUN_0204CC48
+FUN_0204CC48: ; 0x0204CC48
+ push {r3-r7, lr}
+ ldr r4, _0204CC94 ; =0x021C5A68
+ ldr r0, [r4, #0x0]
+ cmp r0, #0x0
+ beq _0204CC92
+ ldr r6, _0204CC98 ; =0x000002BE
+ mov r5, #0x0
+ mov r7, #0x1
+_0204CC58:
+ ldr r0, [r4, #0x0]
+ ldrb r0, [r0, r6]
+ cmp r0, #0x0
+ beq _0204CC6E
+ lsl r0, r5, #0x18
+ lsr r0, r0, #0x18
+ add r1, r7, #0x0
+ mov r2, #0x0
+ bl FUN_0204D43C
+ b _0204CC7A
+_0204CC6E:
+ lsl r0, r5, #0x18
+ mov r1, #0x1
+ lsr r0, r0, #0x18
+ add r2, r1, #0x0
+ bl FUN_0204D43C
+_0204CC7A:
+ add r5, r5, #0x1
+ cmp r5, #0x8
+ blt _0204CC58
+ ldr r0, _0204CC94 ; =0x021C5A68
+ ldr r2, [r0, #0x0]
+ ldr r0, _0204CC98 ; =0x000002BE
+ ldrb r1, [r2, r0]
+ cmp r1, #0x0
+ beq _0204CC92
+ mov r1, #0x1
+ sub r0, r0, #0x1
+ strb r1, [r2, r0]
+_0204CC92:
+ pop {r3-r7, pc}
+ .balign 4
+_0204CC94: .word 0x021C5A68
+_0204CC98: .word 0x000002BE
+
+ thumb_func_start FUN_0204CC9C
+FUN_0204CC9C: ; 0x0204CC9C
+ push {r3, lr}
+ ldr r1, _0204CCD8 ; =0x021C5A68
+ ldr r3, [r1, #0x0]
+ cmp r3, #0x0
+ beq _0204CCD6
+ ldr r0, _0204CCDC ; =0x000002BB
+ mov r2, #0x1
+ strb r2, [r3, r0]
+ ldr r1, [r1, #0x0]
+ mov r2, #0x0
+ add r0, r0, #0x2
+ strb r2, [r1, r0]
+ bl FUN_0204CF60
+ mov r0, #0x1
+ bl FUN_0204D168
+ ldr r0, _0204CCD8 ; =0x021C5A68
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0x54]
+ ldr r0, [r0, #0x38]
+ bl FUN_02055320
+ ldr r0, _0204CCD8 ; =0x021C5A68
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0x54]
+ ldr r0, [r0, #0x38]
+ bl FUN_0205532C
+_0204CCD6:
+ pop {r3, pc}
+ .balign 4
+_0204CCD8: .word 0x021C5A68
+_0204CCDC: .word 0x000002BB
+
+ thumb_func_start FUN_0204CCE0
+FUN_0204CCE0: ; 0x0204CCE0
+ push {r3-r7, lr}
+ ldr r7, _0204CD70 ; =0x021C5A68
+ add r6, r0, #0x0
+ ldr r0, [r7, #0x0]
+ cmp r0, #0x0
+ beq _0204CD6E
+ mov r4, #0x0
+ add r5, r4, #0x0
+_0204CCF0:
+ ldr r0, [r7, #0x0]
+ add r1, r0, r5
+ mov r0, #0x9f
+ lsl r0, r0, #0x2
+ ldr r0, [r1, r0]
+ cmp r0, #0x0
+ beq _0204CD0E
+ bl FUN_02016A18
+ ldr r0, [r7, #0x0]
+ mov r1, #0x0
+ add r2, r0, r5
+ mov r0, #0x9f
+ lsl r0, r0, #0x2
+ str r1, [r2, r0]
+_0204CD0E:
+ add r4, r4, #0x1
+ add r5, r5, #0x4
+ cmp r4, #0x5
+ blt _0204CCF0
+ ldr r0, _0204CD70 ; =0x021C5A68
+ ldr r2, [r0, #0x0]
+ ldr r0, _0204CD74 ; =0x000002B2
+ ldrh r1, [r2, r0]
+ cmp r1, #0x5
+ blo _0204CD28
+ ldr r0, [r2, #0x54]
+ bl FUN_02061B64
+_0204CD28:
+ mov r4, #0x0
+ add r5, r4, #0x0
+_0204CD2C:
+ lsl r0, r4, #0x18
+ lsr r0, r0, #0x18
+ add r1, r5, #0x0
+ add r2, r6, #0x0
+ bl FUN_0204D43C
+ add r4, r4, #0x1
+ cmp r4, #0x8
+ blt _0204CD2C
+ ldr r0, _0204CD70 ; =0x021C5A68
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0x50]
+ bl FUN_0200CAB4
+ ldr r0, _0204CD70 ; =0x021C5A68
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0x4]
+ cmp r0, #0x0
+ beq _0204CD60
+ bl FUN_02244D3C
+ ldr r0, _0204CD70 ; =0x021C5A68
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0x4]
+ bl FUN_02016A18
+_0204CD60:
+ ldr r0, _0204CD70 ; =0x021C5A68
+ ldr r0, [r0, #0x0]
+ bl FUN_02016A18
+ ldr r0, _0204CD70 ; =0x021C5A68
+ mov r1, #0x0
+ str r1, [r0, #0x0]
+_0204CD6E:
+ pop {r3-r7, pc}
+ .balign 4
+_0204CD70: .word 0x021C5A68
+_0204CD74: .word 0x000002B2
+
+ thumb_func_start FUN_0204CD78
+FUN_0204CD78: ; 0x0204CD78
+ push {r4, lr}
+ lsl r4, r0, #0x2
+ ldr r0, _0204CDB0 ; =0x021C5A68
+ ldr r0, [r0, #0x0]
+ add r0, r0, r4
+ ldr r0, [r0, #0x28]
+ cmp r0, #0x0
+ beq _0204CDAC
+ bl FUN_020646A0
+ cmp r0, #0x0
+ beq _0204CD9E
+ ldr r0, _0204CDB0 ; =0x021C5A68
+ ldr r0, [r0, #0x0]
+ add r0, r0, r4
+ ldr r0, [r0, #0x28]
+ bl FUN_02064520
+ b _0204CDA2
+_0204CD9E:
+ bl ErrorHandling
+_0204CDA2:
+ ldr r0, _0204CDB0 ; =0x021C5A68
+ mov r1, #0x0
+ ldr r0, [r0, #0x0]
+ add r0, r0, r4
+ str r1, [r0, #0x28]
+_0204CDAC:
+ pop {r4, pc}
+ nop
+_0204CDB0: .word 0x021C5A68
+
+ thumb_func_start FUN_0204CDB4
+FUN_0204CDB4: ; 0x0204CDB4
+ push {r3-r7, lr}
+ mov r4, #0x0
+ ldr r6, _0204CED4 ; =0x021C5A68
+ add r7, r4, #0x0
+ add r5, r4, #0x0
+_0204CDBE:
+ add r0, r4, #0x0
+ bl FUN_0204E778
+ add r0, r4, #0x0
+ bl FUN_0204CD78
+ cmp r4, #0x0
+ beq _0204CDD4
+ add r0, r4, #0x0
+ bl FUN_0204ED9C
+_0204CDD4:
+ ldr r1, [r6, #0x0]
+ add r0, r1, r7
+ ldr r0, [r0, #0x8]
+ cmp r0, #0x0
+ beq _0204CDFA
+ ldr r2, [r1, #0x54]
+ ldr r2, [r2, #0x38]
+ cmp r2, r0
+ beq _0204CDF2
+ ldr r2, _0204CED8 ; =0x000002BE
+ ldrb r1, [r1, r2]
+ cmp r1, #0x0
+ beq _0204CDF2
+ bl FUN_02055168
+_0204CDF2:
+ ldr r0, [r6, #0x0]
+ add r1, r0, r7
+ mov r0, #0x0
+ str r0, [r1, #0x8]
+_0204CDFA:
+ ldr r0, [r6, #0x0]
+ add r7, r7, #0x4
+ add r1, r0, r4
+ add r1, #0x48
+ mov r0, #0x0
+ strb r0, [r1, #0x0]
+ ldr r0, [r6, #0x0]
+ add r1, r0, r5
+ mov r0, #0x0
+ add r1, #0xa6
+ mvn r0, r0
+ strb r0, [r1, #0x0]
+ ldr r0, [r6, #0x0]
+ add r1, r0, r5
+ ldr r0, _0204CEDC ; =0x0000FFFF
+ add r1, #0xa2
+ strh r0, [r1, #0x0]
+ ldr r0, [r6, #0x0]
+ add r1, r0, r5
+ ldr r0, _0204CEDC ; =0x0000FFFF
+ add r1, #0xa4
+ strh r0, [r1, #0x0]
+ ldr r0, [r6, #0x0]
+ add r1, r0, r5
+ add r1, #0xa7
+ mov r0, #0x2
+ strb r0, [r1, #0x0]
+ ldr r0, [r6, #0x0]
+ add r1, r0, r5
+ mov r0, #0x0
+ add r1, #0x66
+ mvn r0, r0
+ strb r0, [r1, #0x0]
+ ldr r0, [r6, #0x0]
+ add r1, r0, r5
+ ldr r0, _0204CEDC ; =0x0000FFFF
+ add r1, #0x62
+ strh r0, [r1, #0x0]
+ ldr r0, [r6, #0x0]
+ add r1, r0, r5
+ ldr r0, _0204CEDC ; =0x0000FFFF
+ add r1, #0x64
+ strh r0, [r1, #0x0]
+ ldr r0, [r6, #0x0]
+ add r1, r0, r5
+ add r1, #0x67
+ mov r0, #0x2
+ strb r0, [r1, #0x0]
+ ldr r0, [r6, #0x0]
+ mov r1, #0x0
+ add r2, r0, r4
+ ldr r0, _0204CEE0 ; =0x00000102
+ mvn r1, r1
+ strb r1, [r2, r0]
+ ldr r0, [r6, #0x0]
+ mov r1, #0x0
+ add r2, r0, r4
+ ldr r0, _0204CEE4 ; =0x0000010A
+ add r5, #0x8
+ strb r1, [r2, r0]
+ ldr r0, [r6, #0x0]
+ add r1, r0, r4
+ add r1, #0xe2
+ mov r0, #0x0
+ strb r0, [r1, #0x0]
+ ldr r0, [r6, #0x0]
+ add r1, r0, r4
+ add r1, #0xea
+ mov r0, #0x1
+ strb r0, [r1, #0x0]
+ ldr r0, [r6, #0x0]
+ add r1, r0, r4
+ add r1, #0xf2
+ mov r0, #0x0
+ strb r0, [r1, #0x0]
+ ldr r0, [r6, #0x0]
+ mov r1, #0x0
+ add r2, r0, r4
+ ldr r0, _0204CEE8 ; =0x0000013A
+ strb r1, [r2, r0]
+ ldr r0, [r6, #0x0]
+ add r2, r0, r4
+ ldr r0, _0204CEEC ; =0x00000142
+ add r4, r4, #0x1
+ strb r1, [r2, r0]
+ cmp r4, #0x8
+ blt _0204CDBE
+ ldr r0, _0204CED4 ; =0x021C5A68
+ ldr r1, _0204CEF0 ; =0x000002BF
+ ldr r2, [r0, #0x0]
+ mov r0, #0x0
+ strb r0, [r2, r1]
+ bl FUN_0204CF60
+ ldr r0, _0204CED4 ; =0x021C5A68
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0x50]
+ cmp r0, #0x0
+ bne _0204CED0
+ ldr r0, _0204CEF4 ; =FUN_0204D4F0
+ mov r1, #0x0
+ mov r2, #0xc8
+ bl FUN_0200CA44
+ ldr r1, _0204CED4 ; =0x021C5A68
+ ldr r1, [r1, #0x0]
+ str r0, [r1, #0x50]
+_0204CED0:
+ pop {r3-r7, pc}
+ nop
+_0204CED4: .word 0x021C5A68
+_0204CED8: .word 0x000002BE
+_0204CEDC: .word 0x0000FFFF
+_0204CEE0: .word 0x00000102
+_0204CEE4: .word 0x0000010A
+_0204CEE8: .word 0x0000013A
+_0204CEEC: .word 0x00000142
+_0204CEF0: .word 0x000002BF
+_0204CEF4: .word FUN_0204D4F0
+
+ thumb_func_start FUN_0204CEF8
+FUN_0204CEF8: ; 0x0204CEF8
+ push {r3, lr}
+ ldr r0, _0204CF20 ; =0x021C5A68
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0x50]
+ cmp r0, #0x0
+ beq _0204CF16
+ mov r0, #0x0
+ add r1, r0, #0x0
+ bl FUN_0204D4F0
+ ldr r0, _0204CF20 ; =0x021C5A68
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0x50]
+ bl FUN_0200CAB4
+_0204CF16:
+ ldr r0, _0204CF20 ; =0x021C5A68
+ mov r1, #0x0
+ ldr r0, [r0, #0x0]
+ str r1, [r0, #0x50]
+ pop {r3, pc}
+ .balign 4
+_0204CF20: .word 0x021C5A68
+
+ thumb_func_start FUN_0204CF24
+FUN_0204CF24: ; 0x0204CF24
+ push {r3-r5, lr}
+ ldr r0, _0204CF58 ; =0x021C5A68
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ beq _0204CF54
+ mov r5, #0x0
+ add r4, r5, #0x0
+_0204CF32:
+ lsl r0, r5, #0x18
+ lsr r0, r0, #0x18
+ add r1, r4, #0x0
+ add r2, r4, #0x0
+ bl FUN_0204D43C
+ add r0, r5, #0x0
+ bl FUN_0204F69C
+ add r5, r5, #0x1
+ cmp r5, #0x8
+ blt _0204CF32
+ ldr r0, _0204CF58 ; =0x021C5A68
+ mov r2, #0x1
+ ldr r1, [r0, #0x0]
+ ldr r0, _0204CF5C ; =0x000002BD
+ strb r2, [r1, r0]
+_0204CF54:
+ pop {r3-r5, pc}
+ nop
+_0204CF58: .word 0x021C5A68
+_0204CF5C: .word 0x000002BD
+
+ thumb_func_start FUN_0204CF60
+FUN_0204CF60: ; 0x0204CF60
+ push {r4, lr}
+ bl FUN_02031190
+ ldr r1, _0204D03C ; =0x021C5A68
+ lsl r0, r0, #0x2
+ ldr r2, [r1, #0x0]
+ ldr r1, [r2, #0x54]
+ add r0, r2, r0
+ ldr r1, [r1, #0x38]
+ str r1, [r0, #0x8]
+ bl FUN_02031190
+ ldr r1, _0204D03C ; =0x021C5A68
+ mov r2, #0x1
+ ldr r1, [r1, #0x0]
+ add r0, r1, r0
+ add r0, #0x48
+ strb r2, [r0, #0x0]
+ bl FUN_02031190
+ add r4, r0, #0x0
+ ldr r0, _0204D03C ; =0x021C5A68
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0x54]
+ ldr r0, [r0, #0x38]
+ bl FUN_02055320
+ ldr r1, _0204D03C ; =0x021C5A68
+ ldr r2, [r1, #0x0]
+ lsl r1, r4, #0x3
+ add r1, r2, r1
+ add r1, #0xa2
+ strh r0, [r1, #0x0]
+ bl FUN_02031190
+ add r4, r0, #0x0
+ ldr r0, _0204D03C ; =0x021C5A68
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0x54]
+ ldr r0, [r0, #0x38]
+ bl FUN_0205532C
+ ldr r1, _0204D03C ; =0x021C5A68
+ ldr r2, [r1, #0x0]
+ lsl r1, r4, #0x3
+ add r1, r2, r1
+ add r1, #0xa4
+ strh r0, [r1, #0x0]
+ bl FUN_02031190
+ add r4, r0, #0x0
+ ldr r0, _0204D03C ; =0x021C5A68
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0x54]
+ ldr r0, [r0, #0x38]
+ bl FUN_020552F8
+ ldr r1, _0204D03C ; =0x021C5A68
+ ldr r2, [r1, #0x0]
+ lsl r1, r4, #0x3
+ add r1, r2, r1
+ add r1, #0xa6
+ strb r0, [r1, #0x0]
+ bl FUN_02031190
+ add r4, r0, #0x0
+ ldr r0, _0204D03C ; =0x021C5A68
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0x54]
+ ldr r0, [r0, #0x38]
+ bl FUN_02055320
+ ldr r1, _0204D03C ; =0x021C5A68
+ ldr r2, [r1, #0x0]
+ lsl r1, r4, #0x3
+ add r1, r2, r1
+ add r1, #0x62
+ strh r0, [r1, #0x0]
+ bl FUN_02031190
+ add r4, r0, #0x0
+ ldr r0, _0204D03C ; =0x021C5A68
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0x54]
+ ldr r0, [r0, #0x38]
+ bl FUN_0205532C
+ ldr r1, _0204D03C ; =0x021C5A68
+ ldr r2, [r1, #0x0]
+ lsl r1, r4, #0x3
+ add r1, r2, r1
+ add r1, #0x64
+ strh r0, [r1, #0x0]
+ bl FUN_02031190
+ add r4, r0, #0x0
+ ldr r0, _0204D03C ; =0x021C5A68
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0x54]
+ ldr r0, [r0, #0x38]
+ bl FUN_020552F8
+ ldr r1, _0204D03C ; =0x021C5A68
+ ldr r2, [r1, #0x0]
+ lsl r1, r4, #0x3
+ add r1, r2, r1
+ add r1, #0x66
+ strb r0, [r1, #0x0]
+ pop {r4, pc}
+ nop
+_0204D03C: .word 0x021C5A68
+
+ thumb_func_start FUN_0204D040
+FUN_0204D040: ; 0x0204D040
+ push {r3-r7, lr}
+ str r0, [sp, #0x0]
+ ldr r0, _0204D110 ; =0x021C5A68
+ mov r2, #0x0
+ ldr r1, [r0, #0x0]
+ ldr r0, _0204D114 ; =0x000002BF
+ strb r2, [r1, r0]
+ bl FUN_02031190
+ ldr r2, _0204D110 ; =0x021C5A68
+ add r1, r0, #0x0
+ ldr r4, [r2, #0x0]
+ lsl r6, r1, #0x2
+ ldr r0, [r4, #0x54]
+ ldr r3, [r0, #0x38]
+ add r0, r4, r6
+ str r3, [r0, #0x8]
+ ldr r0, [r2, #0x0]
+ mov r3, #0x1
+ add r0, r0, r1
+ add r0, #0x48
+ strb r3, [r0, #0x0]
+ ldr r0, [sp, #0x0]
+ ldr r3, [r2, #0x0]
+ lsl r5, r0, #0x3
+ add r0, r3, r5
+ add r0, #0xa2
+ lsl r4, r1, #0x3
+ add r3, r3, r4
+ ldrh r0, [r0, #0x0]
+ add r3, #0xa2
+ strh r0, [r3, #0x0]
+ ldr r3, [r2, #0x0]
+ add r0, r3, r5
+ add r0, #0xa4
+ add r3, r3, r4
+ ldrh r0, [r0, #0x0]
+ add r3, #0xa4
+ strh r0, [r3, #0x0]
+ ldr r7, [r2, #0x0]
+ mov r0, #0xa6
+ add r3, r7, r5
+ ldrsb r0, [r3, r0]
+ add r3, r7, r4
+ add r3, #0xa6
+ strb r0, [r3, #0x0]
+ ldr r3, [r2, #0x0]
+ mov r7, #0x29
+ add r0, r3, r5
+ add r0, #0x62
+ add r3, r3, r4
+ ldrh r0, [r0, #0x0]
+ add r3, #0x62
+ lsl r7, r7, #0x4
+ strh r0, [r3, #0x0]
+ ldr r3, [r2, #0x0]
+ add r0, r3, r5
+ add r0, #0x64
+ add r3, r3, r4
+ ldrh r0, [r0, #0x0]
+ add r3, #0x64
+ strh r0, [r3, #0x0]
+ ldr r0, [r2, #0x0]
+ mov r3, #0x66
+ add r5, r0, r5
+ add r0, r0, r4
+ ldrsb r5, [r5, r3]
+ add r0, #0x66
+ strb r5, [r0, #0x0]
+ ldr r0, [sp, #0x0]
+ ldr r4, [r2, #0x0]
+ lsl r5, r0, #0x2
+ add r0, r4, r5
+ ldr r0, [r0, r7]
+ add r4, r4, r6
+ str r0, [r4, r7]
+ ldr r0, [r2, #0x0]
+ mov r4, #0x0
+ add r0, r0, r5
+ str r4, [r0, r7]
+ ldr r2, [r2, #0x0]
+ add r0, r2, r6
+ ldr r0, [r0, r7]
+ cmp r0, #0x0
+ beq _0204D0F8
+ add r3, #0xe4
+ add r3, r2, r3
+ mov r2, #0x22
+ mul r2, r1
+ add r1, r3, r2
+ bl FUN_0202393C
+_0204D0F8:
+ ldr r1, _0204D110 ; =0x021C5A68
+ mov r0, #0xff
+ ldr r3, [r1, #0x0]
+ ldr r1, [sp, #0x0]
+ mov r2, #0x22
+ mul r2, r1
+ add r1, r0, #0x0
+ add r2, r3, r2
+ add r1, #0x6b
+ strh r0, [r2, r1]
+ pop {r3-r7, pc}
+ nop
+_0204D110: .word 0x021C5A68
+_0204D114: .word 0x000002BF
+
+ thumb_func_start FUN_0204D118
+FUN_0204D118: ; 0x0204D118
+ push {r4-r6, lr}
+ sub sp, #0x8
+ add r5, r0, #0x0
+ ldr r0, _0204D160 ; =0x021C5A68
+ add r4, r1, #0x0
+ ldr r0, [r0, #0x0]
+ add r6, r2, #0x0
+ ldr r0, [r0, #0x54]
+ ldr r0, [r0, #0x38]
+ bl FUN_020552F8
+ add r1, sp, #0x0
+ strb r4, [r1, #0x0]
+ asr r2, r4, #0x8
+ strb r2, [r1, #0x1]
+ asr r2, r6, #0x8
+ strb r6, [r1, #0x2]
+ strb r2, [r1, #0x3]
+ strb r0, [r1, #0x4]
+ cmp r5, #0x0
+ beq _0204D14A
+ ldrb r2, [r1, #0x4]
+ mov r0, #0x80
+ orr r0, r2
+ strb r0, [r1, #0x4]
+_0204D14A:
+ mov r0, #0x16
+ add r1, sp, #0x0
+ bl FUN_020311D0
+ ldr r0, _0204D160 ; =0x021C5A68
+ mov r2, #0x1
+ ldr r1, [r0, #0x0]
+ ldr r0, _0204D164 ; =0x000002BB
+ strb r2, [r1, r0]
+ add sp, #0x8
+ pop {r4-r6, pc}
+ .balign 4
+_0204D160: .word 0x021C5A68
+_0204D164: .word 0x000002BB
+
+ thumb_func_start FUN_0204D168
+FUN_0204D168: ; 0x0204D168
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ ldr r0, _0204D194 ; =0x021C5A68
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0x54]
+ ldr r0, [r0, #0x38]
+ bl FUN_02055320
+ add r4, r0, #0x0
+ ldr r0, _0204D194 ; =0x021C5A68
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0x54]
+ ldr r0, [r0, #0x38]
+ bl FUN_0205532C
+ add r2, r0, #0x0
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_0204D118
+ pop {r3-r5, pc}
+ nop
+_0204D194: .word 0x021C5A68
+
+ thumb_func_start FUN_0204D198
+FUN_0204D198: ; 0x0204D198
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ bl FUN_02031190
+ ldr r1, _0204D1C8 ; =0x021C5A68
+ lsl r0, r0, #0x3
+ ldr r1, [r1, #0x0]
+ add r0, r1, r0
+ add r0, #0x62
+ ldrh r4, [r0, #0x0]
+ bl FUN_02031190
+ ldr r1, _0204D1C8 ; =0x021C5A68
+ lsl r0, r0, #0x3
+ ldr r1, [r1, #0x0]
+ add r0, r1, r0
+ add r0, #0x64
+ ldrh r2, [r0, #0x0]
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_0204D118
+ pop {r3-r5, pc}
+ nop
+_0204D1C8: .word 0x021C5A68
+
+ thumb_func_start FUN_0204D1CC
+FUN_0204D1CC: ; 0x0204D1CC
+ push {r3-r5, lr}
+ sub sp, #0x8
+ ldrh r2, [r1, #0x0]
+ mov r4, #0xf
+ lsl r4, r4, #0xc
+ ldrh r3, [r1, #0x2]
+ cmp r2, r4
+ blo _0204D1DE
+ sub r2, r4, #0x1
+_0204D1DE:
+ mov r4, #0xf
+ lsl r4, r4, #0xc
+ cmp r3, r4
+ blo _0204D1E8
+ sub r3, r4, #0x1
+_0204D1E8:
+ mov r4, #0xf
+ and r0, r4
+ add r4, sp, #0x0
+ strb r0, [r4, #0x0]
+ strb r2, [r4, #0x1]
+ asr r2, r2, #0x8
+ add r5, r2, #0x0
+ mov r0, #0x1
+ and r5, r0
+ asr r2, r3, #0x7
+ mov r0, #0x2
+ and r0, r2
+ add r0, r5, r0
+ strb r0, [r4, #0x2]
+ strb r3, [r4, #0x3]
+ ldrb r0, [r1, #0x7]
+ cmp r0, #0x0
+ beq _0204D214
+ ldrb r2, [r4, #0x2]
+ mov r0, #0x80
+ orr r0, r2
+ strb r0, [r4, #0x2]
+_0204D214:
+ mov r2, #0x4
+ ldrsb r2, [r1, r2]
+ add r5, sp, #0x0
+ ldrb r0, [r5, #0x0]
+ lsr r4, r2, #0x1f
+ lsl r3, r2, #0x1e
+ sub r3, r3, r4
+ mov r2, #0x1e
+ ror r3, r2
+ add r2, r4, r3
+ lsl r2, r2, #0x4
+ add r0, r0, r2
+ strb r0, [r5, #0x0]
+ ldrb r0, [r1, #0x5]
+ ldrb r2, [r5, #0x0]
+ add r1, sp, #0x0
+ lsl r0, r0, #0x6
+ add r0, r2, r0
+ strb r0, [r5, #0x0]
+ mov r0, #0x17
+ mov r2, #0x0
+ bl FUN_02030BC4
+ add sp, #0x8
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_0204D248
+FUN_0204D248: ; 0x0204D248
+ push {r3-r5, lr}
+ ldr r0, _0204D2A8 ; =0x021C5A68
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0x54]
+ ldr r0, [r0, #0x38]
+ bl FUN_02055370
+ add r4, r0, #0x0
+ ldr r0, _0204D2A8 ; =0x021C5A68
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0x54]
+ ldr r0, [r0, #0x38]
+ bl FUN_02055378
+ add r5, r0, #0x0
+ cmp r4, #0x0
+ bne _0204D292
+ bl FUN_02031190
+ bl FUN_02030E7C
+ cmp r0, #0x0
+ beq _0204D292
+ ldr r0, _0204D2A8 ; =0x021C5A68
+ ldr r1, [r0, #0x0]
+ ldr r0, _0204D2AC ; =0x000002BA
+ ldrb r0, [r1, r0]
+ cmp r0, #0x0
+ bne _0204D292
+ mov r0, #0x1
+ bl FUN_0204D168
+ ldr r0, _0204D2A8 ; =0x021C5A68
+ mov r2, #0x1
+ ldr r1, [r0, #0x0]
+ ldr r0, _0204D2AC ; =0x000002BA
+ strb r2, [r1, r0]
+_0204D292:
+ cmp r4, #0x1
+ bne _0204D2A4
+ cmp r5, #0x1
+ bne _0204D2A4
+ ldr r0, _0204D2A8 ; =0x021C5A68
+ mov r2, #0x0
+ ldr r1, [r0, #0x0]
+ ldr r0, _0204D2AC ; =0x000002BA
+ strb r2, [r1, r0]
+_0204D2A4:
+ pop {r3-r5, pc}
+ nop
+_0204D2A8: .word 0x021C5A68
+_0204D2AC: .word 0x000002BA
+
+ thumb_func_start FUN_0204D2B0
+FUN_0204D2B0: ; 0x0204D2B0
+ push {r3-r7, lr}
+ mov r4, #0x0
+ ldr r7, _0204D2FC ; =0x021C5A68
+ add r5, r4, #0x0
+ add r6, r4, #0x0
+_0204D2BA:
+ ldr r0, [r7, #0x0]
+ add r2, r0, r4
+ add r1, r2, #0x0
+ add r1, #0x48
+ ldrb r1, [r1, #0x0]
+ cmp r1, #0x0
+ beq _0204D2E8
+ ldr r3, _0204D300 ; =0x00000132
+ add r1, r0, #0x0
+ ldrb r3, [r2, r3]
+ add r1, #0x62
+ cmp r3, #0x0
+ bne _0204D2DC
+ ldr r3, _0204D304 ; =0x000002BB
+ ldrb r0, [r0, r3]
+ cmp r0, #0x0
+ beq _0204D2E8
+_0204D2DC:
+ ldr r0, _0204D300 ; =0x00000132
+ add r1, r1, r5
+ strb r6, [r2, r0]
+ add r0, r4, #0x0
+ bl FUN_0204D1CC
+_0204D2E8:
+ add r4, r4, #0x1
+ add r5, #0x8
+ cmp r4, #0x8
+ blt _0204D2BA
+ ldr r0, _0204D2FC ; =0x021C5A68
+ mov r2, #0x0
+ ldr r1, [r0, #0x0]
+ ldr r0, _0204D304 ; =0x000002BB
+ strb r2, [r1, r0]
+ pop {r3-r7, pc}
+ .balign 4
+_0204D2FC: .word 0x021C5A68
+_0204D300: .word 0x00000132
+_0204D304: .word 0x000002BB
+
+ thumb_func_start FUN_0204D308
+FUN_0204D308: ; 0x0204D308
+ ldr r0, _0204D31C ; =0x021C5A68
+ ldr r2, [r0, #0x0]
+ cmp r2, #0x0
+ beq _0204D318
+ mov r0, #0xae
+ mov r1, #0x0
+ lsl r0, r0, #0x2
+ strb r1, [r2, r0]
+_0204D318:
+ bx lr
+ nop
+_0204D31C: .word 0x021C5A68
+
+ thumb_func_start FUN_0204D320
+FUN_0204D320: ; 0x0204D320
+ mov r0, #0xb1
+ lsl r0, r0, #0x2
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_0204D328
+FUN_0204D328: ; 0x0204D328
+ push {r3-r7, lr}
+ sub sp, #0x10
+ ldr r1, _0204D430 ; =0x021C5A68
+ add r5, r0, #0x0
+ ldr r2, [r1, #0x0]
+ lsl r6, r5, #0x2
+ add r1, r2, r6
+ ldr r1, [r1, #0x8]
+ cmp r1, #0x0
+ bne _0204D42A
+ ldr r1, _0204D434 ; =0x000002BD
+ ldrb r1, [r2, r1]
+ cmp r1, #0x0
+ bne _0204D42A
+ bl FUN_0202DFA4
+ str r0, [sp, #0xc]
+ cmp r0, #0x0
+ beq _0204D42A
+ ldr r0, _0204D430 ; =0x021C5A68
+ ldr r1, [r0, #0x0]
+ ldr r0, _0204D438 ; =0x000002BE
+ ldrb r0, [r1, r0]
+ cmp r0, #0x0
+ bne _0204D37C
+ bl FUN_02031190
+ cmp r5, r0
+ beq _0204D37C
+ ldr r0, _0204D430 ; =0x021C5A68
+ mov r1, #0x1
+ ldr r0, [r0, #0x0]
+ lsl r1, r1, #0x8
+ ldr r0, [r0, #0x54]
+ add r1, r5, r1
+ ldr r0, [r0, #0x34]
+ bl FUN_02058060
+ cmp r0, #0x0
+ beq _0204D37C
+ bl FUN_02057654
+_0204D37C:
+ ldr r0, _0204D430 ; =0x021C5A68
+ lsl r4, r5, #0x3
+ ldr r7, [r0, #0x0]
+ ldr r0, [sp, #0xc]
+ bl FUN_020239CC
+ mov r1, #0x0
+ str r1, [sp, #0x0]
+ str r0, [sp, #0x4]
+ str r1, [sp, #0x8]
+ ldr r0, [r7, #0x54]
+ add r7, r7, r4
+ add r1, r7, #0x0
+ add r2, r7, #0x0
+ add r1, #0xa2
+ add r2, #0xa4
+ mov r3, #0xa6
+ ldrh r1, [r1, #0x0]
+ ldrh r2, [r2, #0x0]
+ ldrsb r3, [r7, r3]
+ ldr r0, [r0, #0x34]
+ bl FUN_02055068
+ add r7, r0, #0x0
+ bne _0204D3B2
+ bl ErrorHandling
+_0204D3B2:
+ ldr r0, _0204D430 ; =0x021C5A68
+ ldr r0, [r0, #0x0]
+ add r0, r0, r6
+ str r7, [r0, #0x8]
+ add r0, r7, #0x0
+ bl FUN_020553A0
+ mov r1, #0x1
+ lsl r1, r1, #0x8
+ add r1, r5, r1
+ bl FUN_02058444
+ ldr r0, _0204D430 ; =0x021C5A68
+ ldr r1, [r0, #0x0]
+ ldr r0, _0204D438 ; =0x000002BE
+ ldrb r0, [r1, r0]
+ cmp r0, #0x0
+ beq _0204D3DC
+ add r0, r5, #0x0
+ bl FUN_0223E4D4
+_0204D3DC:
+ ldr r0, _0204D430 ; =0x021C5A68
+ ldr r1, _0204D438 ; =0x000002BE
+ ldr r3, [r0, #0x0]
+ ldrb r2, [r3, r1]
+ cmp r2, #0x0
+ beq _0204D41E
+ add r0, r3, r5
+ add r0, #0x48
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x0
+ bne _0204D41E
+ sub r0, r1, #0x1
+ ldrb r0, [r3, r0]
+ cmp r0, #0x0
+ bne _0204D40E
+ add r1, r3, r4
+ ldr r0, [r3, #0x54]
+ add r3, r3, r4
+ add r1, #0xa2
+ add r3, #0xa4
+ ldrh r1, [r1, #0x0]
+ ldrh r3, [r3, #0x0]
+ mov r2, #0x0
+ bl FUN_021E5B30
+_0204D40E:
+ ldr r0, _0204D430 ; =0x021C5A68
+ mov r1, #0x1
+ ldr r0, [r0, #0x0]
+ add sp, #0x10
+ add r0, r0, r5
+ add r0, #0x48
+ strb r1, [r0, #0x0]
+ pop {r3-r7, pc}
+_0204D41E:
+ cmp r2, #0x0
+ bne _0204D42A
+ add r0, r3, r5
+ mov r1, #0x1
+ add r0, #0x48
+ strb r1, [r0, #0x0]
+_0204D42A:
+ add sp, #0x10
+ pop {r3-r7, pc}
+ nop
+_0204D430: .word 0x021C5A68
+_0204D434: .word 0x000002BD
+_0204D438: .word 0x000002BE
+
+ thumb_func_start FUN_0204D43C
+FUN_0204D43C: ; 0x0204D43C
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ ldr r0, _0204D4CC ; =0x021C5A68
+ add r6, r1, #0x0
+ ldr r0, [r0, #0x0]
+ add r7, r2, #0x0
+ cmp r0, #0x0
+ beq _0204D4C8
+ add r0, #0x5a
+ mov r1, #0x0
+ mov r2, #0x8
+ blx MI_CpuFill8
+ add r0, r5, #0x0
+ bl FUN_0204CD78
+ ldr r0, _0204D4CC ; =0x021C5A68
+ lsl r4, r5, #0x2
+ ldr r1, [r0, #0x0]
+ add r0, r1, r4
+ ldr r0, [r0, #0x8]
+ cmp r0, #0x0
+ beq _0204D492
+ ldr r2, [r1, #0x54]
+ ldr r2, [r2, #0x38]
+ cmp r2, r0
+ beq _0204D488
+ ldr r2, _0204D4D0 ; =0x000002BE
+ ldrb r1, [r1, r2]
+ cmp r1, #0x0
+ bne _0204D47E
+ cmp r7, #0x0
+ beq _0204D484
+_0204D47E:
+ bl FUN_02055168
+ b _0204D488
+_0204D484:
+ bl FUN_02055160
+_0204D488:
+ ldr r0, _0204D4CC ; =0x021C5A68
+ mov r1, #0x0
+ ldr r0, [r0, #0x0]
+ add r0, r0, r4
+ str r1, [r0, #0x8]
+_0204D492:
+ ldr r0, _0204D4CC ; =0x021C5A68
+ ldr r1, [r0, #0x0]
+ add r1, #0x48
+ ldrb r0, [r1, r5]
+ cmp r0, #0x0
+ beq _0204D4A6
+ cmp r6, #0x0
+ bne _0204D4A6
+ mov r0, #0x0
+ strb r0, [r1, r5]
+_0204D4A6:
+ ldr r0, _0204D4CC ; =0x021C5A68
+ mov r2, #0x1
+ ldr r0, [r0, #0x0]
+ add r1, r0, r5
+ ldr r0, _0204D4D4 ; =0x00000132
+ cmp r6, #0x0
+ strb r2, [r1, r0]
+ bne _0204D4C8
+ add r0, r5, #0x0
+ bl FUN_0204ED9C
+ ldr r0, _0204D4CC ; =0x021C5A68
+ mov r1, #0x0
+ ldr r0, [r0, #0x0]
+ add r0, r0, r5
+ add r0, #0xfa
+ strb r1, [r0, #0x0]
+_0204D4C8:
+ pop {r3-r7, pc}
+ nop
+_0204D4CC: .word 0x021C5A68
+_0204D4D0: .word 0x000002BE
+_0204D4D4: .word 0x00000132
+
+ thumb_func_start FUN_0204D4D8
+FUN_0204D4D8: ; 0x0204D4D8
+ ldr r1, _0204D4E8 ; =0x021C48B8
+ mov r0, #0x2
+ ldr r1, [r1, #0x44]
+ tst r1, r0
+ beq _0204D4E4
+ mov r0, #0x1
+_0204D4E4:
+ ldr r3, _0204D4EC ; =FUN_02030F60
+ bx r3
+ .balign 4
+_0204D4E8: .word 0x021C48B8
+_0204D4EC: .word FUN_02030F60
+
+ thumb_func_start FUN_0204D4F0
+FUN_0204D4F0: ; 0x0204D4F0
+ push {r4-r6, lr}
+ add r4, r1, #0x0
+ bl FUN_02030F40
+ cmp r0, #0x0
+ beq _0204D530
+ bl FUN_0204D4D8
+ bl FUN_02031190
+ cmp r0, #0x0
+ bne _0204D524
+ add r0, r4, #0x0
+ bl FUN_0204D2B0
+ add r0, r4, #0x0
+ bl FUN_0204D248
+ ldr r0, _0204D560 ; =0x021C5A68
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0x4]
+ cmp r0, #0x0
+ beq _0204D52A
+ bl FUN_02244D58
+ b _0204D52A
+_0204D524:
+ add r0, r4, #0x0
+ bl FUN_0204D248
+_0204D52A:
+ add r0, r4, #0x0
+ bl FUN_0204D568
+_0204D530:
+ ldr r4, _0204D560 ; =0x021C5A68
+ ldr r6, _0204D564 ; =0x000002BE
+ mov r5, #0x0
+_0204D536:
+ ldr r0, [r4, #0x0]
+ ldrb r0, [r0, r6]
+ cmp r0, #0x0
+ beq _0204D556
+ bl FUN_02031190
+ cmp r0, #0x0
+ bne _0204D556
+ add r0, r5, #0x0
+ bl FUN_0202DFA4
+ cmp r0, #0x0
+ bne _0204D556
+ add r0, r5, #0x0
+ bl FUN_02245358
+_0204D556:
+ add r5, r5, #0x1
+ cmp r5, #0x8
+ blt _0204D536
+ pop {r4-r6, pc}
+ nop
+_0204D560: .word 0x021C5A68
+_0204D564: .word 0x000002BE
+
+ thumb_func_start FUN_0204D568
+FUN_0204D568: ; 0x0204D568
+ push {r3-r7, lr}
+ ldr r4, _0204D608 ; =0x021C5A68
+ ldr r7, _0204D60C ; =0x000002BE
+ mov r5, #0x0
+ add r6, sp, #0x0
+_0204D572:
+ lsl r0, r5, #0x10
+ lsr r0, r0, #0x10
+ bl FUN_02030E7C
+ cmp r0, #0x0
+ bne _0204D5A0
+ bl FUN_02031280
+ cmp r0, #0x0
+ beq _0204D58A
+ cmp r5, #0x0
+ beq _0204D5A0
+_0204D58A:
+ bl FUN_02031190
+ cmp r0, #0x0
+ bne _0204D5A0
+ ldr r0, [r4, #0x0]
+ ldrb r0, [r0, r7]
+ cmp r0, #0x0
+ beq _0204D5A0
+ add r0, r5, #0x0
+ bl FUN_02247614
+_0204D5A0:
+ lsl r0, r5, #0x10
+ lsr r0, r0, #0x10
+ bl FUN_02030E7C
+ cmp r0, #0x0
+ bne _0204D5B8
+ bl FUN_02031280
+ cmp r0, #0x0
+ beq _0204D5C6
+ cmp r5, #0x0
+ bne _0204D5C6
+_0204D5B8:
+ add r0, r5, #0x0
+ bl FUN_0204DE30
+ add r0, r5, #0x0
+ bl FUN_0204EFCC
+ b _0204D600
+_0204D5C6:
+ ldr r0, [r4, #0x0]
+ add r0, r0, r5
+ add r0, #0x48
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x0
+ beq _0204D600
+ bl FUN_02031190
+ cmp r0, #0x0
+ bne _0204D5F0
+ ldr r1, [r4, #0x0]
+ ldr r0, _0204D60C ; =0x000002BE
+ ldrb r0, [r1, r0]
+ cmp r0, #0x0
+ beq _0204D5F0
+ add r0, r5, #0x0
+ bl FUN_0223EB8C
+ add r0, r5, #0x0
+ bl FUN_0223CB08
+_0204D5F0:
+ strb r5, [r6, #0x0]
+ ldr r3, [r4, #0x0]
+ mov r0, #0x0
+ ldr r3, [r3, #0x54]
+ mov r1, #0x1
+ add r2, sp, #0x0
+ bl FUN_0204DBCC
+_0204D600:
+ add r5, r5, #0x1
+ cmp r5, #0x8
+ blt _0204D572
+ pop {r3-r7, pc}
+ .balign 4
+_0204D608: .word 0x021C5A68
+_0204D60C: .word 0x000002BE
+
+ thumb_func_start FUN_0204D610
+FUN_0204D610: ; 0x0204D610
+ ldr r0, _0204D624 ; =0x021C5A68
+ ldr r1, [r0, #0x0]
+ cmp r1, #0x0
+ beq _0204D620
+ mov r0, #0xaf
+ lsl r0, r0, #0x2
+ ldrb r0, [r1, r0]
+ bx lr
+_0204D620:
+ mov r0, #0x0
+ bx lr
+ .balign 4
+_0204D624: .word 0x021C5A68
+
+ thumb_func_start FUN_0204D628
+FUN_0204D628: ; 0x0204D628
+ push {r3, lr}
+ ldr r1, _0204D650 ; =0x021C5A68
+ ldr r3, [r1, #0x0]
+ cmp r3, #0x0
+ beq _0204D64E
+ mov r1, #0xaf
+ lsl r1, r1, #0x2
+ ldrb r2, [r3, r1]
+ cmp r2, r0
+ beq _0204D63E
+ strb r0, [r3, r1]
+_0204D63E:
+ ldr r1, _0204D650 ; =0x021C5A68
+ mov r0, #0x3e
+ ldr r2, [r1, #0x0]
+ mov r1, #0xaf
+ lsl r1, r1, #0x2
+ add r1, r2, r1
+ bl FUN_020311D0
+_0204D64E:
+ pop {r3, pc}
+ .balign 4
+_0204D650: .word 0x021C5A68
+
+ thumb_func_start FUN_0204D654
+FUN_0204D654: ; 0x0204D654
+ push {r4, lr}
+ ldr r2, _0204D678 ; =0x021C5A68
+ ldr r4, [r2, #0x0]
+ cmp r4, #0x0
+ beq _0204D674
+ mov r1, #0xaf
+ lsl r1, r1, #0x2
+ ldrb r3, [r4, r1]
+ cmp r3, r0
+ beq _0204D674
+ strb r0, [r4, r1]
+ ldr r2, [r2, #0x0]
+ mov r0, #0x3e
+ add r1, r2, r1
+ bl FUN_020311D0
+_0204D674:
+ pop {r4, pc}
+ nop
+_0204D678: .word 0x021C5A68
+
+ thumb_func_start FUN_0204D67C
+FUN_0204D67C: ; 0x0204D67C
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ ldr r0, _0204D6BC ; =0x021C5A68
+ add r4, r2, #0x0
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ beq _0204D6B8
+ cmp r1, #0x1
+ beq _0204D692
+ bl ErrorHandling
+_0204D692:
+ cmp r5, #0x8
+ blt _0204D69A
+ bl ErrorHandling
+_0204D69A:
+ ldrb r0, [r4, #0x0]
+ mov r1, #0x1
+ cmp r0, #0x1
+ beq _0204D6A8
+ cmp r0, #0x0
+ beq _0204D6A8
+ mov r1, #0x0
+_0204D6A8:
+ cmp r1, #0x0
+ bne _0204D6B0
+ bl ErrorHandling
+_0204D6B0:
+ ldrb r1, [r4, #0x0]
+ add r0, r5, #0x0
+ bl FUN_0204EAD8
+_0204D6B8:
+ pop {r3-r5, pc}
+ nop
+_0204D6BC: .word 0x021C5A68
+
+ thumb_func_start FUN_0204D6C0
+FUN_0204D6C0: ; 0x0204D6C0
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ ldr r0, _0204D734 ; =0x021C5A68
+ add r4, r1, #0x0
+ ldr r1, [r0, #0x0]
+ cmp r1, #0x0
+ beq _0204D732
+ ldr r0, _0204D738 ; =0x000002BE
+ ldrb r0, [r1, r0]
+ cmp r0, #0x0
+ bne _0204D6E4
+ add r0, r4, #0x0
+ bl FUN_0204D654
+ ldr r0, _0204D734 ; =0x021C5A68
+ ldr r1, [r0, #0x0]
+ ldr r0, _0204D73C ; =0x000002C1
+ strb r4, [r1, r0]
+_0204D6E4:
+ ldr r4, [r5, #0x38]
+ cmp r4, #0x0
+ beq _0204D6F8
+ bl FUN_02031190
+ ldr r1, _0204D734 ; =0x021C5A68
+ lsl r0, r0, #0x2
+ ldr r1, [r1, #0x0]
+ add r0, r1, r0
+ str r4, [r0, #0x8]
+_0204D6F8:
+ bl FUN_02030F40
+ cmp r0, #0x0
+ beq _0204D712
+ bl FUN_02031190
+ cmp r0, #0x0
+ bne _0204D712
+ ldr r1, _0204D734 ; =0x021C5A68
+ mov r0, #0x0
+ ldr r1, [r1, #0x0]
+ bl FUN_0204D89C
+_0204D712:
+ bl FUN_02030F40
+ cmp r0, #0x0
+ beq _0204D732
+ bl FUN_02031190
+ cmp r0, #0x0
+ bne _0204D732
+ ldr r0, _0204D734 ; =0x021C5A68
+ ldr r1, [r0, #0x0]
+ ldr r0, _0204D738 ; =0x000002BE
+ ldrb r0, [r1, r0]
+ cmp r0, #0x0
+ bne _0204D732
+ bl FUN_0204EC28
+_0204D732:
+ pop {r3-r5, pc}
+ .balign 4
+_0204D734: .word 0x021C5A68
+_0204D738: .word 0x000002BE
+_0204D73C: .word 0x000002C1
+
+ thumb_func_start FUN_0204D740
+FUN_0204D740: ; 0x0204D740
+ mov r0, #0x20
+ tst r0, r1
+ beq _0204D74A
+ mov r0, #0x2
+ bx lr
+_0204D74A:
+ mov r0, #0x10
+ tst r0, r1
+ beq _0204D754
+ mov r0, #0x3
+ bx lr
+_0204D754:
+ mov r0, #0x40
+ tst r0, r1
+ beq _0204D75E
+ mov r0, #0x0
+ bx lr
+_0204D75E:
+ mov r0, #0x80
+ tst r1, r0
+ beq _0204D768
+ mov r0, #0x1
+ bx lr
+_0204D768:
+ sub r0, #0x81
+ bx lr
+
+ thumb_func_start FUN_0204D76C
+FUN_0204D76C: ; 0x0204D76C
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ ldr r0, _0204D7AC ; =0x021C5A68
+ add r6, r1, #0x0
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0x54]
+ bl FUN_02034B64
+ add r4, r0, #0x0
+ ldr r0, _0204D7AC ; =0x021C5A68
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0x54]
+ bl FUN_02034B6C
+ mov r2, #0x0
+ cmp r4, #0x0
+ ble _0204D7A6
+_0204D78E:
+ ldrh r1, [r0, #0x18]
+ cmp r5, r1
+ bne _0204D79E
+ ldrh r1, [r0, #0x1a]
+ cmp r6, r1
+ bne _0204D79E
+ mov r0, #0x1
+ pop {r4-r6, pc}
+_0204D79E:
+ add r2, r2, #0x1
+ add r0, #0x20
+ cmp r2, r4
+ blt _0204D78E
+_0204D7A6:
+ mov r0, #0x0
+ pop {r4-r6, pc}
+ nop
+_0204D7AC: .word 0x021C5A68
+
+ thumb_func_start FUN_0204D7B0
+FUN_0204D7B0: ; 0x0204D7B0
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ ldr r0, _0204D824 ; =0x0000FFFF
+ add r6, r1, #0x0
+ add r7, r2, #0x0
+ cmp r5, r0
+ beq _0204D812
+ cmp r6, r0
+ beq _0204D812
+ mov r4, #0x0
+_0204D7C4:
+ cmp r4, r7
+ beq _0204D7E0
+ add r0, r4, #0x0
+ bl FUN_0204E544
+ cmp r5, r0
+ bne _0204D7E0
+ add r0, r4, #0x0
+ bl FUN_0204E598
+ cmp r6, r0
+ bne _0204D7E0
+ mov r0, #0x1
+ pop {r3-r7, pc}
+_0204D7E0:
+ add r4, r4, #0x1
+ cmp r4, #0x8
+ blt _0204D7C4
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ bl FUN_0204D76C
+ cmp r0, #0x0
+ beq _0204D7F6
+ mov r0, #0x1
+ pop {r3-r7, pc}
+_0204D7F6:
+ ldr r0, _0204D828 ; =0x021C5A68
+ ldr r1, [r0, #0x0]
+ ldr r0, _0204D82C ; =0x000002BE
+ ldrb r0, [r1, r0]
+ cmp r0, #0x0
+ beq _0204D812
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ bl FUN_02246F1C
+ cmp r0, #0x0
+ bne _0204D812
+ mov r0, #0x1
+ pop {r3-r7, pc}
+_0204D812:
+ ldr r0, _0204D828 ; =0x021C5A68
+ add r1, r5, #0x0
+ ldr r0, [r0, #0x0]
+ add r2, r6, #0x0
+ ldr r0, [r0, #0x54]
+ bl FUN_0204A6B4
+ pop {r3-r7, pc}
+ nop
+_0204D824: .word 0x0000FFFF
+_0204D828: .word 0x021C5A68
+_0204D82C: .word 0x000002BE
+
+ thumb_func_start FUN_0204D830
+FUN_0204D830: ; 0x0204D830
+ push {r3, lr}
+ add r1, r0, #0x0
+ ldr r0, _0204D858 ; =0x021C5A68
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0x4]
+ cmp r0, #0x0
+ beq _0204D852
+ bl FUN_02244D40
+ bl FUN_02244DA0
+ cmp r0, #0x0
+ bne _0204D84E
+ mov r0, #0x1
+ pop {r3, pc}
+_0204D84E:
+ mov r0, #0x0
+ pop {r3, pc}
+_0204D852:
+ mov r0, #0x0
+ pop {r3, pc}
+ nop
+_0204D858: .word 0x021C5A68
+
+ thumb_func_start FUN_0204D85C
+FUN_0204D85C: ; 0x0204D85C
+ cmp r0, #0x5
+ bge _0204D864
+ mov r0, #0x8
+ bx lr
+_0204D864:
+ cmp r0, #0xa
+ bge _0204D86C
+ mov r0, #0x4
+ bx lr
+_0204D86C:
+ mov r0, #0x2
+ bx lr
+
+ thumb_func_start FUN_0204D870
+FUN_0204D870: ; 0x0204D870
+ push {r3-r4, lr}
+ sub sp, #0x14
+ ldr r3, _0204D898 ; =0x020F5824
+ add r4, r0, #0x0
+ ldmia r3!, {r0-r1}
+ add r2, sp, #0x0
+ stmia r2!, {r0-r1}
+ ldmia r3!, {r0-r1}
+ stmia r2!, {r0-r1}
+ ldr r0, [r3, #0x0]
+ cmp r4, #0x5
+ str r0, [r2, #0x0]
+ blt _0204D88E
+ bl ErrorHandling
+_0204D88E:
+ lsl r1, r4, #0x2
+ add r0, sp, #0x0
+ ldr r0, [r0, r1]
+ add sp, #0x14
+ pop {r3-r4, pc}
+ .balign 4
+_0204D898: .word 0x020F5824
+
+ thumb_func_start FUN_0204D89C
+FUN_0204D89C: ; 0x0204D89C
+ push {r3-r7, lr}
+ sub sp, #0x18
+ mov r5, #0x0
+ add r0, r5, #0x0
+ ldr r6, _0204DAF4 ; =0x021C5A68
+ str r5, [sp, #0x4]
+ str r0, [sp, #0x0]
+_0204D8AA:
+ ldr r0, [r6, #0x0]
+ add r1, r0, r5
+ add r1, #0x48
+ ldrb r1, [r1, #0x0]
+ cmp r1, #0x0
+ beq _0204D976
+ add r1, r0, r5
+ add r1, #0xe2
+ ldrb r1, [r1, #0x0]
+ cmp r1, #0x0
+ beq _0204D976
+ add r1, r0, r5
+ add r1, #0xea
+ ldrb r1, [r1, #0x0]
+ cmp r1, #0x0
+ beq _0204D976
+ add r2, r0, #0x0
+ ldr r1, [sp, #0x0]
+ add r2, #0x62
+ ldr r0, [r0, #0x4]
+ add r4, r2, r1
+ cmp r0, #0x0
+ beq _0204D8E0
+ add r1, r5, #0x0
+ bl FUN_02244D40
+ str r0, [sp, #0x4]
+_0204D8E0:
+ ldr r1, [r6, #0x0]
+ ldr r0, _0204DAF8 ; =0x000002BE
+ ldrb r0, [r1, r0]
+ cmp r0, #0x0
+ beq _0204D8F4
+ add r0, r5, #0x0
+ bl FUN_02245F4C
+ cmp r0, #0x0
+ bne _0204D976
+_0204D8F4:
+ ldr r0, [r6, #0x0]
+ ldr r1, _0204DAFC ; =0x0000013A
+ add r0, r0, r5
+ ldrb r1, [r0, r1]
+ cmp r1, #0x0
+ beq _0204D90A
+ ldr r1, _0204DAFC ; =0x0000013A
+ ldrb r1, [r0, r1]
+ sub r2, r1, #0x1
+ ldr r1, _0204DAFC ; =0x0000013A
+ strb r2, [r0, r1]
+_0204D90A:
+ ldr r0, [r6, #0x0]
+ ldr r1, _0204DAFC ; =0x0000013A
+ add r2, r0, r5
+ ldrb r1, [r2, r1]
+ cmp r1, #0x0
+ bne _0204D93C
+ ldr r1, _0204DAF8 ; =0x000002BE
+ ldrb r0, [r0, r1]
+ cmp r0, #0x0
+ beq _0204D93C
+ add r0, r5, #0x0
+ bl FUN_0223F8D8
+ cmp r0, #0x0
+ bne _0204D976
+ add r0, r5, #0x0
+ bl FUN_0204D830
+ cmp r0, #0x0
+ bne _0204D93C
+ add r0, r5, #0x0
+ bl FUN_02247544
+ cmp r0, #0x0
+ bne _0204D976
+_0204D93C:
+ ldr r0, [sp, #0x4]
+ cmp r0, #0x0
+ beq _0204D94A
+ bl FUN_02244DB0
+ cmp r0, #0x0
+ beq _0204D976
+_0204D94A:
+ ldr r0, [r6, #0x0]
+ add r0, r0, r5
+ add r0, #0xf2
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x0
+ beq _0204D95A
+ mov r7, #0x0
+ b _0204D962
+_0204D95A:
+ add r0, r5, #0x0
+ bl FUN_02030F88
+ add r7, r0, #0x0
+_0204D962:
+ add r0, r5, #0x0
+ bl FUN_02030F74
+ strb r0, [r4, #0x5]
+ ldr r0, [r6, #0x0]
+ add r1, r0, r5
+ ldr r0, _0204DAFC ; =0x0000013A
+ ldrb r0, [r1, r0]
+ cmp r0, #0x0
+ beq _0204D978
+_0204D976:
+ b _0204DAE2
+_0204D978:
+ ldr r0, _0204DB00 ; =0x0000010A
+ ldr r2, _0204DB04 ; =0x0000012A
+ ldrb r0, [r1, r0]
+ ldrb r1, [r1, r2]
+ bl FUN_0204D85C
+ str r0, [sp, #0x10]
+ ldr r1, [sp, #0x10]
+ add r0, r5, #0x0
+ bl FUN_0204E084
+ cmp r0, #0x0
+ beq _0204D9A8
+ ldr r0, [r6, #0x0]
+ ldr r1, [sp, #0x10]
+ add r2, r0, r5
+ ldr r0, _0204DAFC ; =0x0000013A
+ strb r1, [r2, r0]
+ ldr r0, [r6, #0x0]
+ mov r1, #0x1
+ add r2, r0, r5
+ ldr r0, _0204DB08 ; =0x00000132
+ strb r1, [r2, r0]
+ b _0204DAE2
+_0204D9A8:
+ ldrb r0, [r4, #0x7]
+ cmp r0, #0x1
+ bne _0204D9B8
+ ldr r0, [r6, #0x0]
+ mov r1, #0x1
+ add r2, r0, r5
+ ldr r0, _0204DB08 ; =0x00000132
+ strb r1, [r2, r0]
+_0204D9B8:
+ mov r0, #0x0
+ strb r0, [r4, #0x7]
+ ldr r0, [r6, #0x0]
+ ldr r1, _0204DB0C ; =0x00000122
+ add r0, r0, r5
+ ldrb r1, [r0, r1]
+ cmp r1, #0x2
+ bne _0204D9DE
+ add r1, sp, #0x14
+ strb r5, [r1, #0x1]
+ ldr r1, _0204DB0C ; =0x00000122
+ mov r2, #0x1
+ strb r2, [r0, r1]
+ add r1, sp, #0x14
+ mov r0, #0x28
+ add r1, #0x1
+ bl FUN_02030C4C
+ b _0204DAE2
+_0204D9DE:
+ add r0, r7, #0x0
+ add r1, r7, #0x0
+ bl FUN_0204D740
+ add r7, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_0204E62C
+ str r0, [sp, #0xc]
+ add r0, r5, #0x0
+ bl FUN_0204E664
+ str r0, [sp, #0x8]
+ ldr r1, [sp, #0xc]
+ ldr r0, _0204DB10 ; =0x0000FFFF
+ cmp r1, r0
+ beq _0204DAE2
+ ldr r1, [sp, #0x8]
+ cmp r1, r0
+ beq _0204DAE2
+ mov r0, #0x0
+ mvn r0, r0
+ cmp r7, r0
+ beq _0204DAE2
+ mov r0, #0x4
+ ldrsb r0, [r4, r0]
+ cmp r0, r7
+ beq _0204DA44
+ strb r7, [r4, #0x4]
+ ldr r0, [r6, #0x0]
+ mov r1, #0x4
+ add r2, r0, r5
+ ldr r0, _0204DAFC ; =0x0000013A
+ strb r1, [r2, r0]
+ ldr r0, [r6, #0x0]
+ mov r1, #0x1
+ add r2, r0, r5
+ ldr r0, _0204DB08 ; =0x00000132
+ strb r1, [r2, r0]
+ ldr r0, [r6, #0x0]
+ ldr r1, _0204DB0C ; =0x00000122
+ add r0, r0, r5
+ ldrb r1, [r0, r1]
+ cmp r1, #0x2
+ bls _0204DAE2
+ ldr r1, _0204DB0C ; =0x00000122
+ ldrb r1, [r0, r1]
+ sub r2, r1, #0x1
+ ldr r1, _0204DB0C ; =0x00000122
+ strb r2, [r0, r1]
+ b _0204DAE2
+_0204DA44:
+ ldr r0, [r6, #0x0]
+ ldr r1, _0204DB0C ; =0x00000122
+ add r2, r0, r5
+ ldrb r1, [r2, r1]
+ cmp r1, #0x0
+ bne _0204DAE2
+ ldr r1, _0204DAF8 ; =0x000002BE
+ ldrb r0, [r0, r1]
+ cmp r0, #0x0
+ beq _0204DA66
+ ldr r1, [sp, #0xc]
+ ldr r2, [sp, #0x8]
+ add r0, r5, #0x0
+ bl FUN_0224566C
+ cmp r0, #0x1
+ beq _0204DAE2
+_0204DA66:
+ ldr r0, [sp, #0xc]
+ ldr r1, [sp, #0x8]
+ add r2, r5, #0x0
+ bl FUN_0204D7B0
+ cmp r0, #0x0
+ beq _0204DA8E
+ mov r0, #0x1
+ strb r0, [r4, #0x7]
+ ldr r0, [r6, #0x0]
+ mov r1, #0x1
+ add r2, r0, r5
+ ldr r0, _0204DB08 ; =0x00000132
+ strb r1, [r2, r0]
+ ldr r0, [r6, #0x0]
+ mov r1, #0x4
+ add r2, r0, r5
+ ldr r0, _0204DAFC ; =0x0000013A
+ strb r1, [r2, r0]
+ b _0204DAE2
+_0204DA8E:
+ ldr r0, [r6, #0x0]
+ mov r1, #0x1
+ add r2, r0, r5
+ ldr r0, _0204DB08 ; =0x00000132
+ strb r1, [r2, r0]
+ ldr r0, [sp, #0xc]
+ strh r0, [r4, #0x0]
+ ldr r0, [sp, #0x8]
+ strh r0, [r4, #0x2]
+ strb r7, [r4, #0x4]
+ ldrb r0, [r4, #0x5]
+ bl FUN_0204D870
+ ldr r1, [r6, #0x0]
+ add r2, r1, r5
+ ldr r1, _0204DAFC ; =0x0000013A
+ strb r0, [r2, r1]
+ ldr r0, [r6, #0x0]
+ sub r1, #0x20
+ add r0, r0, r5
+ ldrb r1, [r0, r1]
+ cmp r1, #0x0
+ beq _0204DAE2
+ ldr r1, _0204DB14 ; =0x0000011A
+ ldrb r1, [r0, r1]
+ sub r2, r1, #0x1
+ ldr r1, _0204DB14 ; =0x0000011A
+ strb r2, [r0, r1]
+ ldr r0, [r6, #0x0]
+ add r1, r0, r5
+ ldr r0, _0204DB14 ; =0x0000011A
+ ldrb r0, [r1, r0]
+ cmp r0, #0x0
+ bne _0204DAE2
+ mov r1, #0x1
+ add r0, sp, #0x14
+ strb r1, [r0, #0x0]
+ add r0, r5, #0x0
+ add r2, sp, #0x14
+ mov r3, #0x0
+ bl FUN_0224089C
+_0204DAE2:
+ ldr r0, [sp, #0x0]
+ add r5, r5, #0x1
+ add r0, #0x8
+ str r0, [sp, #0x0]
+ cmp r5, #0x8
+ bge _0204DAF0
+ b _0204D8AA
+_0204DAF0:
+ add sp, #0x18
+ pop {r3-r7, pc}
+ .balign 4
+_0204DAF4: .word 0x021C5A68
+_0204DAF8: .word 0x000002BE
+_0204DAFC: .word 0x0000013A
+_0204DB00: .word 0x0000010A
+_0204DB04: .word 0x0000012A
+_0204DB08: .word 0x00000132
+_0204DB0C: .word 0x00000122
+_0204DB10: .word 0x0000FFFF
+_0204DB14: .word 0x0000011A
+
+ thumb_func_start FUN_0204DB18
+FUN_0204DB18: ; 0x0204DB18
+ push {r3-r7, lr}
+ ldr r5, _0204DBC0 ; =0x021C5A68
+ add r7, r0, #0x0
+ ldr r0, [r5, #0x0]
+ add r3, r2, #0x0
+ cmp r0, #0x0
+ beq _0204DBBC
+ add r2, r0, #0x0
+ ldrb r4, [r3, #0x4]
+ add r2, #0x62
+ lsl r1, r7, #0x3
+ add r2, r2, r1
+ mov r1, #0x80
+ tst r1, r4
+ beq _0204DB3E
+ ldr r1, _0204DBC4 ; =0x000002BB
+ mov r2, #0x1
+ strb r2, [r0, r1]
+ pop {r3-r7, pc}
+_0204DB3E:
+ mov r0, #0x4
+ ldrsb r1, [r2, r0]
+ sub r0, r0, #0x5
+ cmp r1, r0
+ bne _0204DB5A
+ ldr r4, _0204DBC8 ; =0x00000132
+ mov r1, #0x0
+ mov r0, #0x1
+_0204DB4E:
+ ldr r6, [r5, #0x0]
+ add r6, r6, r1
+ add r1, r1, #0x1
+ strb r0, [r6, r4]
+ cmp r1, #0x8
+ blt _0204DB4E
+_0204DB5A:
+ mov r0, #0x0
+ strh r0, [r2, #0x0]
+ strh r0, [r2, #0x2]
+ ldrh r1, [r2, #0x0]
+ ldrb r0, [r3, #0x0]
+ add r0, r1, r0
+ strh r0, [r2, #0x0]
+ ldrb r1, [r3, #0x1]
+ ldrh r0, [r2, #0x0]
+ lsl r4, r1, #0x8
+ mov r1, #0xff
+ lsl r1, r1, #0x8
+ and r4, r1
+ add r0, r0, r4
+ strh r0, [r2, #0x0]
+ ldrh r4, [r2, #0x2]
+ ldrb r0, [r3, #0x2]
+ add r0, r4, r0
+ strh r0, [r2, #0x2]
+ ldrb r4, [r3, #0x3]
+ ldrh r0, [r2, #0x2]
+ lsl r4, r4, #0x8
+ and r1, r4
+ add r0, r0, r1
+ strh r0, [r2, #0x2]
+ ldrb r1, [r3, #0x4]
+ mov r0, #0xf
+ ldr r3, _0204DBC0 ; =0x021C5A68
+ and r0, r1
+ strb r0, [r2, #0x4]
+ ldr r1, [r3, #0x0]
+ mov r0, #0x1
+ add r1, r1, r7
+ add r1, #0x48
+ strb r0, [r1, #0x0]
+ ldr r1, [r3, #0x0]
+ add r4, r1, r7
+ ldr r1, _0204DBC8 ; =0x00000132
+ strb r0, [r4, r1]
+ ldr r0, [r3, #0x0]
+ ldrh r1, [r2, #0x0]
+ ldrh r2, [r2, #0x2]
+ ldr r0, [r0, #0x54]
+ bl FUN_0204A6B4
+ cmp r0, #0x0
+ beq _0204DBBC
+ bl ErrorHandling
+_0204DBBC:
+ pop {r3-r7, pc}
+ nop
+_0204DBC0: .word 0x021C5A68
+_0204DBC4: .word 0x000002BB
+_0204DBC8: .word 0x00000132
+
+ thumb_func_start FUN_0204DBCC
+FUN_0204DBCC: ; 0x0204DBCC
+ push {r3-r5, lr}
+ ldr r0, _0204DC28 ; =0x021C5A68
+ ldrb r4, [r2, #0x0]
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ beq _0204DC24
+ bl FUN_02031190
+ cmp r4, r0
+ beq _0204DC24
+ ldr r0, _0204DC28 ; =0x021C5A68
+ ldr r1, [r0, #0x0]
+ ldr r0, _0204DC2C ; =0x000002BE
+ ldrb r0, [r1, r0]
+ cmp r0, #0x0
+ beq _0204DC14
+ add r0, r4, #0x0
+ bl FUN_0223E554
+ ldr r0, _0204DC28 ; =0x021C5A68
+ ldr r3, [r0, #0x0]
+ ldr r0, _0204DC30 ; =0x000002BD
+ ldrb r0, [r3, r0]
+ cmp r0, #0x0
+ bne _0204DC14
+ lsl r5, r4, #0x3
+ add r1, r3, r5
+ ldr r0, [r3, #0x54]
+ add r3, r3, r5
+ add r1, #0xa2
+ add r3, #0xa4
+ ldrh r1, [r1, #0x0]
+ ldrh r3, [r3, #0x0]
+ mov r2, #0x0
+ bl FUN_021E5B30
+_0204DC14:
+ mov r1, #0x0
+ add r0, r4, #0x0
+ add r2, r1, #0x0
+ bl FUN_0204D43C
+ add r0, r4, #0x0
+ bl FUN_0202DE78
+_0204DC24:
+ pop {r3-r5, pc}
+ nop
+_0204DC28: .word 0x021C5A68
+_0204DC2C: .word 0x000002BE
+_0204DC30: .word 0x000002BD
+
+ thumb_func_start FUN_0204DC34
+FUN_0204DC34: ; 0x0204DC34
+ mov r0, #0x5
+ bx lr
+
+ thumb_func_start FUN_0204DC38
+FUN_0204DC38: ; 0x0204DC38
+ push {r3-r5, lr}
+ ldrb r1, [r2, #0x0]
+ mov r0, #0xf
+ add r3, r1, #0x0
+ and r3, r0
+ ldr r0, _0204DCB0 ; =0x021C5A68
+ ldr r1, [r0, #0x0]
+ cmp r1, #0x0
+ beq _0204DCAC
+ ldrb r4, [r2, #0x2]
+ add r1, #0xa2
+ lsl r0, r3, #0x3
+ add r1, r1, r0
+ mov r0, #0x80
+ tst r0, r4
+ beq _0204DC5C
+ mov r0, #0x1
+ b _0204DC5E
+_0204DC5C:
+ mov r0, #0x0
+_0204DC5E:
+ strb r0, [r1, #0x7]
+ mov r0, #0x0
+ strh r0, [r1, #0x0]
+ strh r0, [r1, #0x2]
+ ldrh r4, [r1, #0x0]
+ ldrb r0, [r2, #0x1]
+ add r0, r4, r0
+ strh r0, [r1, #0x0]
+ ldrb r4, [r2, #0x2]
+ ldrh r0, [r1, #0x0]
+ lsl r5, r4, #0x8
+ mov r4, #0x1
+ lsl r4, r4, #0x8
+ and r5, r4
+ add r0, r0, r5
+ strh r0, [r1, #0x0]
+ ldrh r5, [r1, #0x2]
+ ldrb r0, [r2, #0x3]
+ add r0, r5, r0
+ strh r0, [r1, #0x2]
+ ldrb r5, [r2, #0x2]
+ ldrh r0, [r1, #0x2]
+ lsl r5, r5, #0x7
+ and r4, r5
+ add r0, r0, r4
+ strh r0, [r1, #0x2]
+ ldrb r0, [r2, #0x0]
+ asr r4, r0, #0x4
+ mov r0, #0x3
+ and r4, r0
+ strb r4, [r1, #0x4]
+ ldrb r2, [r2, #0x0]
+ asr r2, r2, #0x6
+ and r0, r2
+ strb r0, [r1, #0x5]
+ lsl r0, r3, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_0204D328
+_0204DCAC:
+ pop {r3-r5, pc}
+ nop
+_0204DCB0: .word 0x021C5A68
+
+ thumb_func_start FUN_0204DCB4
+FUN_0204DCB4: ; 0x0204DCB4
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ ldr r0, _0204DD10 ; =0x021C5A68
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0x54]
+ bl FUN_020377AC
+ bl FUN_02026CC4
+ add r4, r0, #0x0
+ ldr r0, _0204DD10 ; =0x021C5A68
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0x54]
+ bl FUN_020377AC
+ bl FUN_02026CB4
+ ldr r0, _0204DD10 ; =0x021C5A68
+ ldr r1, [r0, #0x0]
+ ldr r0, _0204DD14 ; =0x000002BE
+ ldrb r0, [r1, r0]
+ cmp r0, #0x0
+ beq _0204DD0C
+ bl FUN_02031190
+ cmp r5, r0
+ bne _0204DD0C
+ add r0, r4, #0x0
+ bl FUN_020266B0
+ add r0, r4, #0x0
+ bl FUN_020266C8
+ cmp r0, #0x32
+ bne _0204DD0C
+ ldr r0, _0204DD10 ; =0x021C5A68
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0x54]
+ ldr r0, [r0, #0xc]
+ bl FUN_02029FC8
+ mov r1, #0x25
+ bl FUN_0202A170
+_0204DD0C:
+ pop {r3-r5, pc}
+ nop
+_0204DD10: .word 0x021C5A68
+_0204DD14: .word 0x000002BE
+
+ thumb_func_start FUN_0204DD18
+FUN_0204DD18: ; 0x0204DD18
+ push {r3-r7, lr}
+ sub sp, #0x10
+ ldr r4, _0204DE24 ; =0x020F5808
+ add r6, r3, #0x0
+ add r5, r0, #0x0
+ add r3, sp, #0x4
+ mov r2, #0xc
+_0204DD26:
+ ldrb r0, [r4, #0x0]
+ add r4, r4, #0x1
+ strb r0, [r3, #0x0]
+ add r3, r3, #0x1
+ sub r2, r2, #0x1
+ bne _0204DD26
+ ldr r0, _0204DE28 ; =0x021C5A68
+ ldr r2, _0204DE2C ; =0x00000102
+ ldr r0, [r0, #0x0]
+ add r3, r0, r5
+ ldrsb r3, [r3, r2]
+ mov r2, #0x0
+ mvn r2, r2
+ cmp r3, r2
+ beq _0204DD4E
+ lsl r7, r5, #0x2
+ add r0, r0, r7
+ ldr r0, [r0, #0x8]
+ cmp r0, #0x0
+ bne _0204DD54
+_0204DD4E:
+ add sp, #0x10
+ mov r0, #0x0
+ pop {r3-r7, pc}
+_0204DD54:
+ cmp r1, #0x0
+ bne _0204DD5E
+ add sp, #0x10
+ mov r0, #0x1
+ pop {r3-r7, pc}
+_0204DD5E:
+ bl FUN_020553A0
+ add r4, r0, #0x0
+ ldr r0, _0204DE28 ; =0x021C5A68
+ ldr r1, [r0, #0x0]
+ add r0, r7, #0x0
+ add r0, r1, r0
+ ldr r0, [r0, #0x8]
+ bl FUN_020552F8
+ str r0, [sp, #0x0]
+ ldr r0, _0204DE28 ; =0x021C5A68
+ ldr r0, [r0, #0x0]
+ add r1, r0, r5
+ ldr r0, _0204DE2C ; =0x00000102
+ ldrsb r0, [r1, r0]
+ bl FUN_0204F610
+ ldr r1, [sp, #0x0]
+ cmp r1, r0
+ beq _0204DDB4
+ add r0, r4, #0x0
+ mov r1, #0x80
+ bl FUN_02058418
+ ldr r0, _0204DE28 ; =0x021C5A68
+ ldr r0, [r0, #0x0]
+ add r1, r0, r5
+ ldr r0, _0204DE2C ; =0x00000102
+ ldrsb r0, [r1, r0]
+ bl FUN_0204F610
+ add r1, r0, #0x0
+ ldr r0, _0204DE28 ; =0x021C5A68
+ ldr r0, [r0, #0x0]
+ add r0, r0, r7
+ ldr r0, [r0, #0x8]
+ bl FUN_02055304
+ add r0, r4, #0x0
+ mov r1, #0x80
+ bl FUN_02058410
+_0204DDB4:
+ add r0, r4, #0x0
+ bl FUN_0205AE28
+ add r0, r4, #0x0
+ bl FUN_0205AD98
+ cmp r0, #0x1
+ bne _0204DE1C
+ add r0, r5, #0x0
+ bl FUN_0204DCB4
+ cmp r6, #0x0
+ beq _0204DDD8
+ cmp r6, #0x1
+ beq _0204DDEE
+ cmp r6, #0x2
+ beq _0204DE06
+ b _0204DE1C
+_0204DDD8:
+ ldr r1, _0204DE28 ; =0x021C5A68
+ add r0, r4, #0x0
+ ldr r1, [r1, #0x0]
+ add r2, r1, r5
+ ldr r1, _0204DE2C ; =0x00000102
+ ldrsb r2, [r2, r1]
+ add r1, sp, #0x4
+ ldrb r1, [r1, r2]
+ bl FUN_0205ADDC
+ b _0204DE1C
+_0204DDEE:
+ ldr r1, _0204DE28 ; =0x021C5A68
+ add r0, r4, #0x0
+ ldr r1, [r1, #0x0]
+ add r2, r1, r5
+ ldr r1, _0204DE2C ; =0x00000102
+ ldrsb r1, [r2, r1]
+ add r2, r1, #0x4
+ add r1, sp, #0x4
+ ldrb r1, [r1, r2]
+ bl FUN_0205ADDC
+ b _0204DE1C
+_0204DE06:
+ ldr r1, _0204DE28 ; =0x021C5A68
+ add r0, r4, #0x0
+ ldr r1, [r1, #0x0]
+ add r2, r1, r5
+ ldr r1, _0204DE2C ; =0x00000102
+ ldrsb r2, [r2, r1]
+ add r1, sp, #0x4
+ add r2, #0x8
+ ldrb r1, [r1, r2]
+ bl FUN_0205ADDC
+_0204DE1C:
+ mov r0, #0x1
+ add sp, #0x10
+ pop {r3-r7, pc}
+ nop
+_0204DE24: .word 0x020F5808
+_0204DE28: .word 0x021C5A68
+_0204DE2C: .word 0x00000102
+
+ thumb_func_start FUN_0204DE30
+FUN_0204DE30: ; 0x0204DE30
+ push {r4-r7, lr}
+ sub sp, #0x1c
+ add r4, r0, #0x0
+ ldr r0, _0204E06C ; =0x021C5A68
+ lsl r1, r4, #0x3
+ ldr r0, [r0, #0x0]
+ add r2, r0, #0x0
+ add r2, #0xa2
+ add r5, r2, r1
+ ldr r1, _0204E070 ; =0x00000142
+ add r2, r0, r1
+ ldrb r1, [r2, r4]
+ cmp r1, #0x0
+ beq _0204DE54
+ sub r0, r1, #0x1
+ add sp, #0x1c
+ strb r0, [r2, r4]
+ pop {r4-r7, pc}
+_0204DE54:
+ ldrh r2, [r5, #0x0]
+ ldr r1, _0204E074 ; =0x0000FFFF
+ cmp r2, r1
+ beq _0204DF08
+ ldrh r2, [r5, #0x2]
+ cmp r2, r1
+ beq _0204DF08
+ ldr r1, _0204E078 ; =0x000002BD
+ ldrb r2, [r0, r1]
+ cmp r2, #0x0
+ bne _0204DF08
+ add r1, r1, #0x1
+ ldrb r0, [r0, r1]
+ cmp r0, #0x0
+ bne _0204DE86
+ bl FUN_02031190
+ cmp r4, r0
+ bne _0204DE86
+ ldr r0, _0204E06C ; =0x021C5A68
+ ldr r1, [r0, #0x0]
+ ldr r0, _0204E07C ; =0x000002C1
+ ldrb r0, [r1, r0]
+ cmp r0, #0x0
+ beq _0204DF08
+_0204DE86:
+ ldr r0, _0204E06C ; =0x021C5A68
+ ldr r1, [r0, #0x0]
+ lsl r0, r4, #0x2
+ add r0, r1, r0
+ ldr r0, [r0, #0x8]
+ str r0, [sp, #0x18]
+ cmp r0, #0x0
+ bne _0204DE98
+ b _0204E068
+_0204DE98:
+ bl FUN_02055320
+ ldrh r1, [r5, #0x0]
+ sub r0, r0, r1
+ str r0, [sp, #0x10]
+ ldr r0, [sp, #0x18]
+ bl FUN_0205532C
+ ldrh r1, [r5, #0x2]
+ sub r7, r0, r1
+ ldr r0, [sp, #0x18]
+ bl FUN_020552F8
+ str r0, [sp, #0xc]
+ ldr r0, [sp, #0x10]
+ cmp r0, #0x0
+ bne _0204DEC2
+ cmp r7, #0x0
+ bne _0204DEC2
+ mov r6, #0x0
+ b _0204DEEC
+_0204DEC2:
+ ldr r0, [sp, #0x10]
+ blx abs
+ add r6, r0, #0x0
+ add r0, r7, #0x0
+ blx abs
+ cmp r6, r0
+ ble _0204DEE2
+ ldr r0, [sp, #0x10]
+ cmp r0, #0x0
+ ble _0204DEDE
+ mov r6, #0x20
+ b _0204DEEC
+_0204DEDE:
+ mov r6, #0x10
+ b _0204DEEC
+_0204DEE2:
+ cmp r7, #0x0
+ ble _0204DEEA
+ mov r6, #0x40
+ b _0204DEEC
+_0204DEEA:
+ mov r6, #0x80
+_0204DEEC:
+ add r0, r7, #0x0
+ blx abs
+ ldr r0, [sp, #0x10]
+ blx abs
+ ldrb r3, [r5, #0x5]
+ add r0, r4, #0x0
+ add r1, r6, #0x0
+ add r2, r6, #0x0
+ bl FUN_0204DD18
+ cmp r0, #0x0
+ beq _0204DF0A
+_0204DF08:
+ b _0204E068
+_0204DF0A:
+ ldrb r0, [r5, #0x5]
+ mov r7, #0xff
+ str r0, [sp, #0x14]
+ cmp r0, #0x3
+ bhi _0204DF46
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0204DF20: ; jump table (using 16-bit offset)
+ .short _0204DF28 - _0204DF20 - 2; case 0
+ .short _0204DF2E - _0204DF20 - 2; case 1
+ .short _0204DF3C - _0204DF20 - 2; case 2
+ .short _0204DF42 - _0204DF20 - 2; case 3
+_0204DF28:
+ mov r0, #0x5
+ str r0, [sp, #0x8]
+ b _0204DF46
+_0204DF2E:
+ mov r0, #0x4
+ str r0, [sp, #0x8]
+ mov r0, #0x2
+ orr r0, r6
+ lsl r0, r0, #0x10
+ lsr r6, r0, #0x10
+ b _0204DF46
+_0204DF3C:
+ mov r0, #0x2
+ str r0, [sp, #0x8]
+ b _0204DF46
+_0204DF42:
+ mov r0, #0x1
+ str r0, [sp, #0x8]
+_0204DF46:
+ ldr r0, _0204E06C ; =0x021C5A68
+ ldr r1, [r0, #0x0]
+ mov r0, #0xb
+ lsl r0, r0, #0x6
+ ldrb r0, [r1, r0]
+ cmp r0, #0x0
+ beq _0204DF6C
+ bl FUN_02031190
+ cmp r4, r0
+ bne _0204DF6C
+ ldr r0, _0204E06C ; =0x021C5A68
+ ldr r2, [r0, #0x0]
+ mov r0, #0xb
+ lsl r0, r0, #0x6
+ ldrb r1, [r2, r0]
+ sub r1, r1, #0x1
+ strb r1, [r2, r0]
+ b _0204E00C
+_0204DF6C:
+ bl FUN_02030FE0
+ cmp r0, #0x0
+ bne _0204DFA0
+ ldr r0, _0204E06C ; =0x021C5A68
+ ldr r1, [r0, #0x0]
+ ldr r0, _0204E080 ; =0x000002BE
+ ldrb r0, [r1, r0]
+ cmp r0, #0x0
+ beq _0204DFA0
+ bl FUN_02031190
+ cmp r4, r0
+ bne _0204DFA0
+ mov r0, #0x1
+ str r0, [sp, #0x0]
+ mov r0, #0x0
+ str r0, [sp, #0x4]
+ ldr r0, [sp, #0x18]
+ ldr r3, [sp, #0x8]
+ add r1, r6, #0x0
+ add r2, r6, #0x0
+ bl FUN_02057194
+ add r7, r0, #0x0
+ b _0204E00C
+_0204DFA0:
+ mov r0, #0x2
+ add r1, r6, #0x0
+ bic r1, r0
+ bne _0204DFDE
+ ldrb r0, [r5, #0x7]
+ cmp r0, #0x0
+ beq _0204DFDE
+ mov r0, #0x3
+ str r0, [sp, #0x14]
+ mov r0, #0x4
+ ldrsb r0, [r5, r0]
+ cmp r0, #0x3
+ bhi _0204DFD2
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0204DFC6: ; jump table (using 16-bit offset)
+ .short _0204DFCE - _0204DFC6 - 2; case 0
+ .short _0204DFD2 - _0204DFC6 - 2; case 1
+ .short _0204DFD6 - _0204DFC6 - 2; case 2
+ .short _0204DFDA - _0204DFC6 - 2; case 3
+_0204DFCE:
+ mov r7, #0x1c
+ b _0204E00C
+_0204DFD2:
+ mov r7, #0x1d
+ b _0204E00C
+_0204DFD6:
+ mov r7, #0x1e
+ b _0204E00C
+_0204DFDA:
+ mov r7, #0x1f
+ b _0204E00C
+_0204DFDE:
+ cmp r1, #0x0
+ bne _0204DFF6
+ mov r0, #0x4
+ ldrsb r0, [r5, r0]
+ ldr r1, [sp, #0xc]
+ cmp r0, r1
+ beq _0204DFF6
+ mov r1, #0x24
+ bl FUN_0205AFDC
+ add r7, r0, #0x0
+ b _0204E00C
+_0204DFF6:
+ mov r0, #0x1
+ str r0, [sp, #0x0]
+ mov r0, #0x0
+ str r0, [sp, #0x4]
+ ldr r0, [sp, #0x18]
+ ldr r3, [sp, #0x8]
+ add r1, r6, #0x0
+ add r2, r6, #0x0
+ bl FUN_02057194
+ add r7, r0, #0x0
+_0204E00C:
+ ldr r0, [sp, #0x18]
+ bl FUN_02057254
+ cmp r0, #0x0
+ bne _0204E020
+ ldr r0, [sp, #0x18]
+ bl FUN_020570C4
+ cmp r0, #0x0
+ beq _0204E068
+_0204E020:
+ cmp r7, #0xff
+ beq _0204E068
+ ldr r0, [sp, #0x18]
+ add r1, r7, #0x0
+ bl FUN_02057260
+ mov r0, #0x2
+ bic r6, r0
+ beq _0204E068
+ ldr r0, _0204E06C ; =0x021C5A68
+ ldr r0, [r0, #0x0]
+ add r1, r0, r4
+ ldr r0, _0204E070 ; =0x00000142
+ ldrb r0, [r1, r0]
+ cmp r0, #0x0
+ bne _0204E050
+ ldr r0, [sp, #0x14]
+ bl FUN_0204D870
+ ldr r1, _0204E06C ; =0x021C5A68
+ ldr r1, [r1, #0x0]
+ add r2, r1, r4
+ ldr r1, _0204E070 ; =0x00000142
+ strb r0, [r2, r1]
+_0204E050:
+ ldr r0, _0204E06C ; =0x021C5A68
+ ldr r1, [r0, #0x0]
+ ldr r0, _0204E070 ; =0x00000142
+ add r1, r1, r0
+ ldrb r0, [r1, r4]
+ cmp r0, #0x0
+ beq _0204E062
+ sub r0, r0, #0x1
+ strb r0, [r1, r4]
+_0204E062:
+ add r0, r4, #0x0
+ bl FUN_0204DCB4
+_0204E068:
+ add sp, #0x1c
+ pop {r4-r7, pc}
+ .balign 4
+_0204E06C: .word 0x021C5A68
+_0204E070: .word 0x00000142
+_0204E074: .word 0x0000FFFF
+_0204E078: .word 0x000002BD
+_0204E07C: .word 0x000002C1
+_0204E080: .word 0x000002BE
+
+ thumb_func_start FUN_0204E084
+FUN_0204E084: ; 0x0204E084
+ push {r3-r7, lr}
+ sub sp, #0x8
+ add r4, r1, #0x0
+ ldr r1, _0204E16C ; =0x021C5A68
+ add r5, r0, #0x0
+ ldr r2, [r1, #0x0]
+ ldr r1, _0204E170 ; =0x0000010A
+ add r2, r2, r1
+ ldrb r1, [r2, r5]
+ cmp r1, #0x0
+ bne _0204E0A0
+ add sp, #0x8
+ mov r0, #0x0
+ pop {r3-r7, pc}
+_0204E0A0:
+ cmp r1, #0xff
+ bne _0204E0AA
+ add sp, #0x8
+ mov r0, #0x1
+ pop {r3-r7, pc}
+_0204E0AA:
+ sub r1, r1, #0x1
+ strb r1, [r2, r5]
+ cmp r4, #0x1
+ bne _0204E0B8
+ add sp, #0x8
+ mov r0, #0x1
+ pop {r3-r7, pc}
+_0204E0B8:
+ bl FUN_0204E544
+ add r6, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_0204E598
+ str r0, [sp, #0x0]
+ ldr r0, _0204E16C ; =0x021C5A68
+ ldr r0, [r0, #0x0]
+ add r1, r0, r5
+ ldr r0, _0204E174 ; =0x00000112
+ ldrb r0, [r1, r0]
+ bl FUN_02059BF4
+ add r7, r6, r0
+ ldr r0, _0204E16C ; =0x021C5A68
+ ldr r0, [r0, #0x0]
+ add r1, r0, r5
+ ldr r0, _0204E174 ; =0x00000112
+ ldrb r0, [r1, r0]
+ bl FUN_02059C00
+ ldr r1, [sp, #0x0]
+ add r6, r1, r0
+ ldr r0, _0204E16C ; =0x021C5A68
+ ldr r0, [r0, #0x0]
+ add r1, r0, r5
+ ldr r0, _0204E170 ; =0x0000010A
+ ldrb r0, [r1, r0]
+ cmp r0, #0x0
+ beq _0204E110
+ add r0, r7, #0x0
+ add r1, r6, #0x0
+ add r2, r5, #0x0
+ bl FUN_0204D7B0
+ cmp r0, #0x0
+ beq _0204E110
+ ldr r1, _0204E16C ; =0x021C5A68
+ mov r0, #0x1
+ ldr r1, [r1, #0x0]
+ add r2, r1, r5
+ ldr r1, _0204E170 ; =0x0000010A
+ strb r0, [r2, r1]
+_0204E110:
+ ldr r0, _0204E16C ; =0x021C5A68
+ ldr r1, [r0, #0x0]
+ ldr r0, _0204E170 ; =0x0000010A
+ add r2, r1, r5
+ ldrb r0, [r2, r0]
+ cmp r0, #0x1
+ bne _0204E124
+ add sp, #0x8
+ mov r0, #0x1
+ pop {r3-r7, pc}
+_0204E124:
+ cmp r0, #0x0
+ bne _0204E13E
+ mov r1, #0x1
+ add r0, sp, #0x4
+ strb r1, [r0, #0x0]
+ add r0, r5, #0x0
+ add r2, sp, #0x4
+ mov r3, #0x0
+ bl FUN_0224089C
+ add sp, #0x8
+ mov r0, #0x1
+ pop {r3-r7, pc}
+_0204E13E:
+ add r1, #0x62
+ lsl r2, r5, #0x3
+ add r0, r1, r2
+ strh r7, [r1, r2]
+ strh r6, [r0, #0x2]
+ cmp r4, #0x2
+ beq _0204E156
+ cmp r4, #0x4
+ beq _0204E15C
+ cmp r4, #0x8
+ beq _0204E162
+ b _0204E166
+_0204E156:
+ mov r1, #0x0
+ strb r1, [r0, #0x5]
+ b _0204E166
+_0204E15C:
+ mov r1, #0x1
+ strb r1, [r0, #0x5]
+ b _0204E166
+_0204E162:
+ mov r1, #0x2
+ strb r1, [r0, #0x5]
+_0204E166:
+ mov r0, #0x1
+ add sp, #0x8
+ pop {r3-r7, pc}
+ .balign 4
+_0204E16C: .word 0x021C5A68
+_0204E170: .word 0x0000010A
+_0204E174: .word 0x00000112
+
+ thumb_func_start FUN_0204E178
+FUN_0204E178: ; 0x0204E178
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ ldr r0, _0204E1DC ; =0x021C5A68
+ add r4, r1, #0x0
+ ldr r1, [r0, #0x0]
+ lsl r0, r5, #0x3
+ add r1, #0x62
+ add r6, r1, r0
+ add r0, r4, #0x0
+ add r7, r2, #0x0
+ bl FUN_0204F610
+ ldr r1, _0204E1DC ; =0x021C5A68
+ strb r0, [r6, #0x4]
+ ldr r0, [r1, #0x0]
+ add r2, r0, r5
+ ldr r0, _0204E1E0 ; =0x00000112
+ cmp r7, #0x0
+ strb r4, [r2, r0]
+ beq _0204E1B6
+ ldr r2, [r1, #0x0]
+ mov r3, #0x1
+ add r2, r2, r5
+ add r0, #0x18
+ strb r3, [r2, r0]
+ ldr r0, [r1, #0x0]
+ mov r2, #0x2d
+ add r1, r0, r5
+ add r0, r2, #0x0
+ add r0, #0xdd
+ b _0204E1CA
+_0204E1B6:
+ ldr r2, [r1, #0x0]
+ mov r3, #0x0
+ add r2, r2, r5
+ add r0, #0x18
+ strb r3, [r2, r0]
+ ldr r0, [r1, #0x0]
+ mov r2, #0x1b
+ add r1, r0, r5
+ add r0, r2, #0x0
+ add r0, #0xef
+_0204E1CA:
+ strb r2, [r1, r0]
+ ldr r0, _0204E1DC ; =0x021C5A68
+ mov r2, #0x1
+ ldr r0, [r0, #0x0]
+ add r1, r0, r5
+ ldr r0, _0204E1E4 ; =0x00000132
+ strb r2, [r1, r0]
+ pop {r3-r7, pc}
+ nop
+_0204E1DC: .word 0x021C5A68
+_0204E1E0: .word 0x00000112
+_0204E1E4: .word 0x00000132
+
+ thumb_func_start FUN_0204E1E8
+FUN_0204E1E8: ; 0x0204E1E8
+ ldr r1, _0204E1F8 ; =0x021C5A68
+ mov r2, #0x0
+ ldr r1, [r1, #0x0]
+ add r1, r1, r0
+ ldr r0, _0204E1FC ; =0x0000010A
+ strb r2, [r1, r0]
+ bx lr
+ nop
+_0204E1F8: .word 0x021C5A68
+_0204E1FC: .word 0x0000010A
+
+ thumb_func_start FUN_0204E200
+FUN_0204E200: ; 0x0204E200
+ ldr r1, _0204E210 ; =0x021C5A68
+ mov r2, #0xff
+ ldr r1, [r1, #0x0]
+ add r1, r1, r0
+ add r0, r2, #0x0
+ add r0, #0xb
+ strb r2, [r1, r0]
+ bx lr
+ .balign 4
+_0204E210: .word 0x021C5A68
+
+ thumb_func_start FUN_0204E214
+FUN_0204E214: ; 0x0204E214
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ ldr r0, _0204E24C ; =0x021C5A68
+ add r4, r1, #0x0
+ ldr r1, [r0, #0x0]
+ lsl r0, r5, #0x2
+ add r0, r1, r0
+ ldr r0, [r0, #0x8]
+ cmp r0, #0x0
+ beq _0204E248
+ bl FUN_020553A0
+ mov r1, #0x80
+ add r6, r0, #0x0
+ bl FUN_02058410
+ mov r1, #0x1
+ add r0, r6, #0x0
+ lsl r1, r1, #0x8
+ bl FUN_02058410
+ ldr r0, _0204E24C ; =0x021C5A68
+ ldr r0, [r0, #0x0]
+ add r1, r0, r5
+ ldr r0, _0204E250 ; =0x00000102
+ strb r4, [r1, r0]
+_0204E248:
+ pop {r4-r6, pc}
+ nop
+_0204E24C: .word 0x021C5A68
+_0204E250: .word 0x00000102
+
+ thumb_func_start FUN_0204E254
+FUN_0204E254: ; 0x0204E254
+ push {r3-r5, lr}
+ add r4, r0, #0x0
+ ldr r0, _0204E2A0 ; =0x021C5A68
+ ldr r1, [r0, #0x0]
+ lsl r0, r4, #0x2
+ add r0, r1, r0
+ ldr r0, [r0, #0x8]
+ cmp r0, #0x0
+ beq _0204E29E
+ add r2, r1, r4
+ ldr r1, _0204E2A4 ; =0x00000102
+ ldrsb r2, [r2, r1]
+ mov r1, #0x0
+ mvn r1, r1
+ cmp r2, r1
+ beq _0204E29E
+ bl FUN_020553A0
+ add r5, r0, #0x0
+ bl FUN_0205AE50
+ add r0, r5, #0x0
+ mov r1, #0x80
+ bl FUN_02058418
+ mov r1, #0x1
+ add r0, r5, #0x0
+ lsl r1, r1, #0x8
+ bl FUN_02058418
+ ldr r0, _0204E2A0 ; =0x021C5A68
+ mov r2, #0x0
+ ldr r0, [r0, #0x0]
+ mvn r2, r2
+ add r1, r0, r4
+ ldr r0, _0204E2A4 ; =0x00000102
+ strb r2, [r1, r0]
+_0204E29E:
+ pop {r3-r5, pc}
+ .balign 4
+_0204E2A0: .word 0x021C5A68
+_0204E2A4: .word 0x00000102
+
+ thumb_func_start FUN_0204E2A8
+FUN_0204E2A8: ; 0x0204E2A8
+ mov r0, #0x4
+ bx lr
+
+ thumb_func_start FUN_0204E2AC
+FUN_0204E2AC: ; 0x0204E2AC
+ ldr r3, _0204E2B0 ; =FUN_0204F7FC
+ bx r3
+ .balign 4
+_0204E2B0: .word FUN_0204F7FC
+
+ thumb_func_start FUN_0204E2B4
+FUN_0204E2B4: ; 0x0204E2B4
+ ldr r3, _0204E2B8 ; =FUN_0204F7FC
+ bx r3
+ .balign 4
+_0204E2B8: .word FUN_0204F7FC
+
+ thumb_func_start FUN_0204E2BC
+FUN_0204E2BC: ; 0x0204E2BC
+ ldr r3, _0204E2C4 ; =FUN_0204F774
+ mov r0, #0x2
+ bx r3
+ nop
+_0204E2C4: .word FUN_0204F774
+
+ thumb_func_start FUN_0204E2C8
+FUN_0204E2C8: ; 0x0204E2C8
+ ldr r3, _0204E2D0 ; =FUN_0204F774
+ mov r0, #0x20
+ bx r3
+ nop
+_0204E2D0: .word FUN_0204F774
+
+ thumb_func_start FUN_0204E2D4
+FUN_0204E2D4: ; 0x0204E2D4
+ ldr r3, _0204E2DC ; =FUN_0204F774
+ mov r0, #0x1
+ bx r3
+ nop
+_0204E2DC: .word FUN_0204F774
+
+ thumb_func_start FUN_0204E2E0
+FUN_0204E2E0: ; 0x0204E2E0
+ push {r3, lr}
+ add r1, sp, #0x0
+ strb r0, [r1, #0x0]
+ mov r0, #0x1a
+ add r1, sp, #0x0
+ bl FUN_02030C4C
+ pop {r3, pc}
+
+ thumb_func_start FUN_0204E2F0
+FUN_0204E2F0: ; 0x0204E2F0
+ ldr r3, _0204E2F8 ; =0x0223E4BD
+ ldrb r0, [r2, #0x0]
+ bx r3
+ nop
+_0204E2F8: .word 0x0223E4BD
+
+ thumb_func_start FUN_0204E2FC
+FUN_0204E2FC: ; 0x0204E2FC
+ push {r3, lr}
+ bl FUN_02031280
+ cmp r0, #0x0
+ beq _0204E30A
+ mov r0, #0x1
+ pop {r3, pc}
+_0204E30A:
+ ldr r0, _0204E344 ; =0x021C5A68
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ bne _0204E316
+ mov r0, #0x0
+ pop {r3, pc}
+_0204E316:
+ bl FUN_02031190
+ bl FUN_02030E7C
+ cmp r0, #0x0
+ bne _0204E326
+ mov r0, #0x0
+ pop {r3, pc}
+_0204E326:
+ ldr r0, _0204E344 ; =0x021C5A68
+ ldr r1, [r0, #0x0]
+ ldr r0, _0204E348 ; =0x000002BE
+ ldrb r0, [r1, r0]
+ cmp r0, #0x0
+ beq _0204E33E
+ bl FUN_0204FE5C
+ cmp r0, #0x0
+ bne _0204E33E
+ mov r0, #0x0
+ pop {r3, pc}
+_0204E33E:
+ mov r0, #0x1
+ pop {r3, pc}
+ nop
+_0204E344: .word 0x021C5A68
+_0204E348: .word 0x000002BE
+
+ thumb_func_start FUN_0204E34C
+FUN_0204E34C: ; 0x0204E34C
+ ldr r1, _0204E358 ; =0x021C5A68
+ ldr r1, [r1, #0x0]
+ add r0, r1, r0
+ add r0, #0x48
+ ldrb r0, [r0, #0x0]
+ bx lr
+ .balign 4
+_0204E358: .word 0x021C5A68
+
+ thumb_func_start FUN_0204E35C
+FUN_0204E35C: ; 0x0204E35C
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r0, _0204E39C ; =0x021C5A68
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ bne _0204E36C
+ ldr r0, _0204E3A0 ; =0x0000FFFF
+ pop {r4, pc}
+_0204E36C:
+ bl FUN_02031190
+ cmp r4, r0
+ bne _0204E382
+ ldr r0, _0204E39C ; =0x021C5A68
+ ldr r1, [r0, #0x0]
+ lsl r0, r4, #0x3
+ add r0, r1, r0
+ add r0, #0xa2
+ ldrh r0, [r0, #0x0]
+ pop {r4, pc}
+_0204E382:
+ bl FUN_0204E2FC
+ cmp r0, #0x0
+ beq _0204E398
+ ldr r0, _0204E39C ; =0x021C5A68
+ ldr r1, [r0, #0x0]
+ lsl r0, r4, #0x3
+ add r0, r1, r0
+ add r0, #0xa2
+ ldrh r0, [r0, #0x0]
+ pop {r4, pc}
+_0204E398:
+ ldr r0, _0204E3A0 ; =0x0000FFFF
+ pop {r4, pc}
+ .balign 4
+_0204E39C: .word 0x021C5A68
+_0204E3A0: .word 0x0000FFFF
+
+ thumb_func_start FUN_0204E3A4
+FUN_0204E3A4: ; 0x0204E3A4
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r0, _0204E3E4 ; =0x021C5A68
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ bne _0204E3B4
+ ldr r0, _0204E3E8 ; =0x0000FFFF
+ pop {r4, pc}
+_0204E3B4:
+ bl FUN_02031190
+ cmp r4, r0
+ bne _0204E3CA
+ ldr r0, _0204E3E4 ; =0x021C5A68
+ ldr r1, [r0, #0x0]
+ lsl r0, r4, #0x3
+ add r0, r1, r0
+ add r0, #0xa4
+ ldrh r0, [r0, #0x0]
+ pop {r4, pc}
+_0204E3CA:
+ bl FUN_0204E2FC
+ cmp r0, #0x0
+ beq _0204E3E0
+ ldr r0, _0204E3E4 ; =0x021C5A68
+ ldr r1, [r0, #0x0]
+ lsl r0, r4, #0x3
+ add r0, r1, r0
+ add r0, #0xa4
+ ldrh r0, [r0, #0x0]
+ pop {r4, pc}
+_0204E3E0:
+ ldr r0, _0204E3E8 ; =0x0000FFFF
+ pop {r4, pc}
+ .balign 4
+_0204E3E4: .word 0x021C5A68
+_0204E3E8: .word 0x0000FFFF
+
+ thumb_func_start FUN_0204E3EC
+FUN_0204E3EC: ; 0x0204E3EC
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r0, _0204E438 ; =0x021C5A68
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ bne _0204E3FC
+ ldr r0, _0204E43C ; =0x0000FFFF
+ pop {r4, pc}
+_0204E3FC:
+ bl FUN_02031190
+ cmp r4, r0
+ bne _0204E412
+ ldr r0, _0204E438 ; =0x021C5A68
+ ldr r1, [r0, #0x0]
+ lsl r0, r4, #0x3
+ add r0, r1, r0
+ add r0, #0xa2
+ ldrh r0, [r0, #0x0]
+ pop {r4, pc}
+_0204E412:
+ bl FUN_0204E2FC
+ cmp r0, #0x0
+ beq _0204E428
+ ldr r0, _0204E438 ; =0x021C5A68
+ ldr r1, [r0, #0x0]
+ add r0, r1, r4
+ add r0, #0x48
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x0
+ bne _0204E42C
+_0204E428:
+ ldr r0, _0204E43C ; =0x0000FFFF
+ pop {r4, pc}
+_0204E42C:
+ lsl r0, r4, #0x3
+ add r0, r1, r0
+ add r0, #0xa2
+ ldrh r0, [r0, #0x0]
+ pop {r4, pc}
+ nop
+_0204E438: .word 0x021C5A68
+_0204E43C: .word 0x0000FFFF
+
+ thumb_func_start FUN_0204E440
+FUN_0204E440: ; 0x0204E440
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r0, _0204E48C ; =0x021C5A68
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ bne _0204E450
+ ldr r0, _0204E490 ; =0x0000FFFF
+ pop {r4, pc}
+_0204E450:
+ bl FUN_02031190
+ cmp r4, r0
+ bne _0204E466
+ ldr r0, _0204E48C ; =0x021C5A68
+ ldr r1, [r0, #0x0]
+ lsl r0, r4, #0x3
+ add r0, r1, r0
+ add r0, #0xa4
+ ldrh r0, [r0, #0x0]
+ pop {r4, pc}
+_0204E466:
+ bl FUN_0204E2FC
+ cmp r0, #0x0
+ beq _0204E47C
+ ldr r0, _0204E48C ; =0x021C5A68
+ ldr r1, [r0, #0x0]
+ add r0, r1, r4
+ add r0, #0x48
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x0
+ bne _0204E480
+_0204E47C:
+ ldr r0, _0204E490 ; =0x0000FFFF
+ pop {r4, pc}
+_0204E480:
+ lsl r0, r4, #0x3
+ add r0, r1, r0
+ add r0, #0xa4
+ ldrh r0, [r0, #0x0]
+ pop {r4, pc}
+ nop
+_0204E48C: .word 0x021C5A68
+_0204E490: .word 0x0000FFFF
+
+ thumb_func_start FUN_0204E494
+FUN_0204E494: ; 0x0204E494
+ ldr r1, _0204E4AC ; =0x021C5A68
+ ldr r1, [r1, #0x0]
+ cmp r1, #0x0
+ beq _0204E4A6
+ lsl r0, r0, #0x3
+ add r0, r1, r0
+ add r0, #0xa2
+ ldrh r0, [r0, #0x0]
+ bx lr
+_0204E4A6:
+ ldr r0, _0204E4B0 ; =0x0000FFFF
+ bx lr
+ nop
+_0204E4AC: .word 0x021C5A68
+_0204E4B0: .word 0x0000FFFF
+
+ thumb_func_start FUN_0204E4B4
+FUN_0204E4B4: ; 0x0204E4B4
+ ldr r1, _0204E4CC ; =0x021C5A68
+ ldr r1, [r1, #0x0]
+ cmp r1, #0x0
+ beq _0204E4C6
+ lsl r0, r0, #0x3
+ add r0, r1, r0
+ add r0, #0xa4
+ ldrh r0, [r0, #0x0]
+ bx lr
+_0204E4C6:
+ ldr r0, _0204E4D0 ; =0x0000FFFF
+ bx lr
+ nop
+_0204E4CC: .word 0x021C5A68
+_0204E4D0: .word 0x0000FFFF
+
+ thumb_func_start FUN_0204E4D4
+FUN_0204E4D4: ; 0x0204E4D4
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl FUN_0204E3EC
+ ldr r1, _0204E504 ; =0x0000FFFF
+ cmp r0, r1
+ bne _0204E4E6
+ add r0, r1, #0x0
+ pop {r4, pc}
+_0204E4E6:
+ ldr r0, _0204E508 ; =0x021C5A68
+ lsl r4, r4, #0x3
+ ldr r0, [r0, #0x0]
+ add r1, r0, r4
+ mov r0, #0xa6
+ ldrsb r0, [r1, r0]
+ bl FUN_02059BF4
+ ldr r1, _0204E508 ; =0x021C5A68
+ ldr r1, [r1, #0x0]
+ add r1, r1, r4
+ add r1, #0xa2
+ ldrh r1, [r1, #0x0]
+ add r0, r1, r0
+ pop {r4, pc}
+ .balign 4
+_0204E504: .word 0x0000FFFF
+_0204E508: .word 0x021C5A68
+
+ thumb_func_start FUN_0204E50C
+FUN_0204E50C: ; 0x0204E50C
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl FUN_0204E440
+ ldr r1, _0204E53C ; =0x0000FFFF
+ cmp r0, r1
+ bne _0204E51E
+ add r0, r1, #0x0
+ pop {r4, pc}
+_0204E51E:
+ ldr r0, _0204E540 ; =0x021C5A68
+ lsl r4, r4, #0x3
+ ldr r0, [r0, #0x0]
+ add r1, r0, r4
+ mov r0, #0xa6
+ ldrsb r0, [r1, r0]
+ bl FUN_02059C00
+ ldr r1, _0204E540 ; =0x021C5A68
+ ldr r1, [r1, #0x0]
+ add r1, r1, r4
+ add r1, #0xa4
+ ldrh r1, [r1, #0x0]
+ add r0, r1, r0
+ pop {r4, pc}
+ .balign 4
+_0204E53C: .word 0x0000FFFF
+_0204E540: .word 0x021C5A68
+
+ thumb_func_start FUN_0204E544
+FUN_0204E544: ; 0x0204E544
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r0, _0204E590 ; =0x021C5A68
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ bne _0204E554
+ ldr r0, _0204E594 ; =0x0000FFFF
+ pop {r4, pc}
+_0204E554:
+ bl FUN_02031190
+ cmp r4, r0
+ bne _0204E56A
+ ldr r0, _0204E590 ; =0x021C5A68
+ ldr r1, [r0, #0x0]
+ lsl r0, r4, #0x3
+ add r0, r1, r0
+ add r0, #0x62
+ ldrh r0, [r0, #0x0]
+ pop {r4, pc}
+_0204E56A:
+ bl FUN_0204E2FC
+ cmp r0, #0x0
+ beq _0204E580
+ ldr r0, _0204E590 ; =0x021C5A68
+ ldr r1, [r0, #0x0]
+ add r0, r1, r4
+ add r0, #0x48
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x0
+ bne _0204E584
+_0204E580:
+ ldr r0, _0204E594 ; =0x0000FFFF
+ pop {r4, pc}
+_0204E584:
+ lsl r0, r4, #0x3
+ add r0, r1, r0
+ add r0, #0x62
+ ldrh r0, [r0, #0x0]
+ pop {r4, pc}
+ nop
+_0204E590: .word 0x021C5A68
+_0204E594: .word 0x0000FFFF
+
+ thumb_func_start FUN_0204E598
+FUN_0204E598: ; 0x0204E598
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r0, _0204E5E4 ; =0x021C5A68
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ bne _0204E5A8
+ ldr r0, _0204E5E8 ; =0x0000FFFF
+ pop {r4, pc}
+_0204E5A8:
+ bl FUN_02031190
+ cmp r4, r0
+ bne _0204E5BE
+ ldr r0, _0204E5E4 ; =0x021C5A68
+ ldr r1, [r0, #0x0]
+ lsl r0, r4, #0x3
+ add r0, r1, r0
+ add r0, #0x64
+ ldrh r0, [r0, #0x0]
+ pop {r4, pc}
+_0204E5BE:
+ bl FUN_0204E2FC
+ cmp r0, #0x0
+ beq _0204E5D4
+ ldr r0, _0204E5E4 ; =0x021C5A68
+ ldr r1, [r0, #0x0]
+ add r0, r1, r4
+ add r0, #0x48
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x0
+ bne _0204E5D8
+_0204E5D4:
+ ldr r0, _0204E5E8 ; =0x0000FFFF
+ pop {r4, pc}
+_0204E5D8:
+ lsl r0, r4, #0x3
+ add r0, r1, r0
+ add r0, #0x64
+ ldrh r0, [r0, #0x0]
+ pop {r4, pc}
+ nop
+_0204E5E4: .word 0x021C5A68
+_0204E5E8: .word 0x0000FFFF
+
+ thumb_func_start FUN_0204E5EC
+FUN_0204E5EC: ; 0x0204E5EC
+ ldr r1, _0204E604 ; =0x021C5A68
+ ldr r1, [r1, #0x0]
+ cmp r1, #0x0
+ beq _0204E5FE
+ lsl r0, r0, #0x3
+ add r0, r1, r0
+ add r0, #0x62
+ ldrh r0, [r0, #0x0]
+ bx lr
+_0204E5FE:
+ ldr r0, _0204E608 ; =0x0000FFFF
+ bx lr
+ nop
+_0204E604: .word 0x021C5A68
+_0204E608: .word 0x0000FFFF
+
+ thumb_func_start FUN_0204E60C
+FUN_0204E60C: ; 0x0204E60C
+ ldr r1, _0204E624 ; =0x021C5A68
+ ldr r1, [r1, #0x0]
+ cmp r1, #0x0
+ beq _0204E61E
+ lsl r0, r0, #0x3
+ add r0, r1, r0
+ add r0, #0x64
+ ldrh r0, [r0, #0x0]
+ bx lr
+_0204E61E:
+ ldr r0, _0204E628 ; =0x0000FFFF
+ bx lr
+ nop
+_0204E624: .word 0x021C5A68
+_0204E628: .word 0x0000FFFF
+
+ thumb_func_start FUN_0204E62C
+FUN_0204E62C: ; 0x0204E62C
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl FUN_0204E544
+ ldr r1, _0204E65C ; =0x0000FFFF
+ cmp r0, r1
+ bne _0204E63E
+ add r0, r1, #0x0
+ pop {r4, pc}
+_0204E63E:
+ ldr r0, _0204E660 ; =0x021C5A68
+ lsl r4, r4, #0x3
+ ldr r0, [r0, #0x0]
+ add r1, r0, r4
+ mov r0, #0x66
+ ldrsb r0, [r1, r0]
+ bl FUN_02059BF4
+ ldr r1, _0204E660 ; =0x021C5A68
+ ldr r1, [r1, #0x0]
+ add r1, r1, r4
+ add r1, #0x62
+ ldrh r1, [r1, #0x0]
+ add r0, r1, r0
+ pop {r4, pc}
+ .balign 4
+_0204E65C: .word 0x0000FFFF
+_0204E660: .word 0x021C5A68
+
+ thumb_func_start FUN_0204E664
+FUN_0204E664: ; 0x0204E664
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl FUN_0204E598
+ ldr r1, _0204E694 ; =0x0000FFFF
+ cmp r0, r1
+ bne _0204E676
+ add r0, r1, #0x0
+ pop {r4, pc}
+_0204E676:
+ ldr r0, _0204E698 ; =0x021C5A68
+ lsl r4, r4, #0x3
+ ldr r0, [r0, #0x0]
+ add r1, r0, r4
+ mov r0, #0x66
+ ldrsb r0, [r1, r0]
+ bl FUN_02059C00
+ ldr r1, _0204E698 ; =0x021C5A68
+ ldr r1, [r1, #0x0]
+ add r1, r1, r4
+ add r1, #0x64
+ ldrh r1, [r1, #0x0]
+ add r0, r1, r0
+ pop {r4, pc}
+ .balign 4
+_0204E694: .word 0x0000FFFF
+_0204E698: .word 0x021C5A68
+
+ thumb_func_start FUN_0204E69C
+FUN_0204E69C: ; 0x0204E69C
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl FUN_0204E2FC
+ cmp r0, #0x0
+ beq _0204E6B6
+ ldr r0, _0204E6C8 ; =0x021C5A68
+ ldr r1, [r0, #0x0]
+ add r0, r1, r4
+ add r0, #0x48
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x0
+ bne _0204E6BC
+_0204E6B6:
+ mov r0, #0x0
+ mvn r0, r0
+ pop {r4, pc}
+_0204E6BC:
+ lsl r0, r4, #0x3
+ add r1, r1, r0
+ mov r0, #0xa6
+ ldrsb r0, [r1, r0]
+ pop {r4, pc}
+ nop
+_0204E6C8: .word 0x021C5A68
+
+ thumb_func_start FUN_0204E6CC
+FUN_0204E6CC: ; 0x0204E6CC
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl FUN_0204E2FC
+ cmp r0, #0x0
+ beq _0204E6E6
+ ldr r0, _0204E6F8 ; =0x021C5A68
+ ldr r1, [r0, #0x0]
+ add r0, r1, r4
+ add r0, #0x48
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x0
+ bne _0204E6EC
+_0204E6E6:
+ mov r0, #0x0
+ mvn r0, r0
+ pop {r4, pc}
+_0204E6EC:
+ lsl r0, r4, #0x3
+ add r1, r1, r0
+ mov r0, #0x66
+ ldrsb r0, [r1, r0]
+ pop {r4, pc}
+ nop
+_0204E6F8: .word 0x021C5A68
+
+ thumb_func_start FUN_0204E6FC
+FUN_0204E6FC: ; 0x0204E6FC
+ push {r4, lr}
+ add r4, r1, #0x0
+ ldr r1, _0204E728 ; =0x021C5A68
+ lsl r0, r0, #0x3
+ ldr r1, [r1, #0x0]
+ add r1, r1, r0
+ mov r0, #0x66
+ ldrsb r0, [r1, r0]
+ bl FUN_0204F610
+ ldr r2, _0204E728 ; =0x021C5A68
+ lsl r1, r4, #0x3
+ ldr r3, [r2, #0x0]
+ add r1, r3, r1
+ add r1, #0x66
+ strb r0, [r1, #0x0]
+ ldr r0, [r2, #0x0]
+ mov r3, #0x1
+ add r1, r0, r4
+ ldr r0, _0204E72C ; =0x00000132
+ strb r3, [r1, r0]
+ pop {r4, pc}
+ .balign 4
+_0204E728: .word 0x021C5A68
+_0204E72C: .word 0x00000132
+
+ thumb_func_start FUN_0204E730
+FUN_0204E730: ; 0x0204E730
+ push {r4, lr}
+ add r4, r1, #0x0
+ ldr r1, _0204E754 ; =0x021C5A68
+ lsl r0, r0, #0x3
+ ldr r1, [r1, #0x0]
+ add r1, r1, r0
+ mov r0, #0xa6
+ ldrsb r0, [r1, r0]
+ bl FUN_0204F610
+ ldr r1, _0204E754 ; =0x021C5A68
+ ldr r2, [r1, #0x0]
+ lsl r1, r4, #0x3
+ add r1, r2, r1
+ add r1, #0xa6
+ strb r0, [r1, #0x0]
+ pop {r4, pc}
+ nop
+_0204E754: .word 0x021C5A68
+
+ thumb_func_start FUN_0204E758
+FUN_0204E758: ; 0x0204E758
+ push {r4, lr}
+ add r2, r0, #0x0
+ ldr r0, _0204E774 ; =0x021C5A68
+ add r4, r1, #0x0
+ ldr r0, [r0, #0x0]
+ add r1, r2, #0x0
+ ldr r0, [r0, #0x4]
+ bl FUN_02244D40
+ add r1, r4, #0x0
+ bl FUN_02244D98
+ pop {r4, pc}
+ nop
+_0204E774: .word 0x021C5A68
+
+ thumb_func_start FUN_0204E778
+FUN_0204E778: ; 0x0204E778
+ push {r3, lr}
+ add r1, r0, #0x0
+ ldr r0, _0204E790 ; =0x021C5A68
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0x4]
+ bl FUN_02244D40
+ mov r1, #0x0
+ bl FUN_02244D98
+ pop {r3, pc}
+ nop
+_0204E790: .word 0x021C5A68
+
+ thumb_func_start FUN_0204E794
+FUN_0204E794: ; 0x0204E794
+ push {r3-r7, lr}
+ sub sp, #0x8
+ str r1, [sp, #0x0]
+ ldr r1, _0204E7C8 ; =0x021C5A68
+ add r6, r3, #0x0
+ ldr r4, [r1, #0x0]
+ lsl r7, r0, #0x3
+ add r4, #0x62
+ add r0, r6, #0x0
+ str r2, [sp, #0x4]
+ add r5, r4, r7
+ bl FUN_02059BF4
+ ldr r1, [sp, #0x0]
+ add r0, r1, r0
+ strh r0, [r4, r7]
+ add r0, r6, #0x0
+ bl FUN_02059C00
+ ldr r1, [sp, #0x4]
+ add r0, r1, r0
+ strh r0, [r5, #0x2]
+ strb r6, [r5, #0x4]
+ add sp, #0x8
+ pop {r3-r7, pc}
+ nop
+_0204E7C8: .word 0x021C5A68
+
+ thumb_func_start FUN_0204E7CC
+FUN_0204E7CC: ; 0x0204E7CC
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ ldr r0, _0204E848 ; =0x021C5A68
+ add r6, r1, #0x0
+ ldr r0, [r0, #0x0]
+ add r7, r2, #0x0
+ str r3, [sp, #0x0]
+ cmp r0, #0x0
+ beq _0204E844
+ add r2, r0, #0x0
+ add r2, #0xa2
+ lsl r1, r5, #0x3
+ add r4, r2, r1
+ ldr r1, _0204E84C ; =0x000002BD
+ ldrb r1, [r0, r1]
+ cmp r1, #0x0
+ bne _0204E7FA
+ ldrh r1, [r4, #0x0]
+ ldrh r3, [r4, #0x2]
+ ldr r0, [r0, #0x54]
+ mov r2, #0x0
+ bl FUN_021E5B30
+_0204E7FA:
+ strh r6, [r4, #0x0]
+ ldr r0, [sp, #0x0]
+ strh r7, [r4, #0x2]
+ strb r0, [r4, #0x4]
+ ldr r0, _0204E848 ; =0x021C5A68
+ ldr r1, [r0, #0x0]
+ lsl r0, r5, #0x2
+ add r0, r1, r0
+ ldr r0, [r0, #0x8]
+ cmp r0, #0x0
+ beq _0204E81A
+ ldr r3, [sp, #0x0]
+ add r1, r6, #0x0
+ add r2, r7, #0x0
+ bl FUN_02055514
+_0204E81A:
+ ldr r0, _0204E848 ; =0x021C5A68
+ ldr r1, [r0, #0x0]
+ ldr r0, _0204E84C ; =0x000002BD
+ ldrb r0, [r1, r0]
+ cmp r0, #0x0
+ bne _0204E832
+ ldr r0, [r1, #0x54]
+ ldrh r1, [r4, #0x0]
+ ldrh r3, [r4, #0x2]
+ mov r2, #0x0
+ bl FUN_021E5B30
+_0204E832:
+ ldr r0, _0204E848 ; =0x021C5A68
+ ldr r1, [r0, #0x0]
+ ldr r0, _0204E84C ; =0x000002BD
+ ldrb r0, [r1, r0]
+ cmp r0, #0x0
+ bne _0204E844
+ add r0, r5, #0x0
+ bl FUN_0204F0A8
+_0204E844:
+ pop {r3-r7, pc}
+ nop
+_0204E848: .word 0x021C5A68
+_0204E84C: .word 0x000002BD
+
+ thumb_func_start FUN_0204E850
+FUN_0204E850: ; 0x0204E850
+ push {r3-r4, lr}
+ sub sp, #0x4
+ mov r2, #0x2
+ add r1, sp, #0x0
+ add r4, r0, #0x0
+ strb r2, [r1, #0x0]
+ strb r4, [r1, #0x1]
+ ldr r1, _0204E8AC ; =0x021C5A68
+ ldr r1, [r1, #0x0]
+ add r1, r1, r4
+ add r1, #0xe2
+ ldrb r1, [r1, #0x0]
+ cmp r1, #0x0
+ beq _0204E88A
+ bl FUN_0204D830
+ cmp r0, #0x0
+ bne _0204E88A
+ add r0, r4, #0x0
+ bl FUN_0204EE9C
+ cmp r0, #0x0
+ add r0, sp, #0x0
+ beq _0204E886
+ mov r1, #0x3
+ strb r1, [r0, #0x0]
+ b _0204E88A
+_0204E886:
+ mov r1, #0x1
+ strb r1, [r0, #0x0]
+_0204E88A:
+ mov r0, #0x1d
+ add r1, sp, #0x0
+ mov r2, #0x2
+ bl FUN_02030BC4
+ cmp r0, #0x0
+ beq _0204E8A8
+ add r0, sp, #0x0
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x2
+ beq _0204E8A8
+ add r0, r4, #0x0
+ mov r1, #0x0
+ bl FUN_0204EAD8
+_0204E8A8:
+ add sp, #0x4
+ pop {r3-r4, pc}
+ .balign 4
+_0204E8AC: .word 0x021C5A68
+
+ thumb_func_start FUN_0204E8B0
+FUN_0204E8B0: ; 0x0204E8B0
+ push {r3-r6}
+ ldr r2, _0204E8F8 ; =0x021C5A68
+ ldr r3, [r2, #0x0]
+ cmp r3, #0x0
+ bne _0204E8C0
+ mov r0, #0xff
+ pop {r3-r6}
+ bx lr
+_0204E8C0:
+ mov r2, #0x0
+ add r4, r3, #0x0
+_0204E8C4:
+ add r5, r3, #0x0
+ add r5, #0x48
+ ldrb r5, [r5, #0x0]
+ cmp r5, #0x0
+ beq _0204E8E8
+ add r5, r4, #0x0
+ add r5, #0x64
+ ldrh r6, [r5, #0x0]
+ add r5, r4, #0x0
+ add r5, #0x62
+ ldrh r5, [r5, #0x0]
+ cmp r0, r5
+ bne _0204E8E8
+ cmp r1, r6
+ bne _0204E8E8
+ add r0, r2, #0x0
+ pop {r3-r6}
+ bx lr
+_0204E8E8:
+ add r2, r2, #0x1
+ add r3, r3, #0x1
+ add r4, #0x8
+ cmp r2, #0x8
+ blt _0204E8C4
+ mov r0, #0xff
+ pop {r3-r6}
+ bx lr
+ .balign 4
+_0204E8F8: .word 0x021C5A68
+
+ thumb_func_start FUN_0204E8FC
+FUN_0204E8FC: ; 0x0204E8FC
+ push {r4, lr}
+ add r4, r2, #0x0
+ bl FUN_02030FE0
+ cmp r0, #0x0
+ beq _0204E962
+ ldrb r0, [r4, #0x0]
+ cmp r0, #0x1
+ bne _0204E936
+ bl FUN_02031190
+ ldrb r1, [r4, #0x1]
+ cmp r1, r0
+ bne _0204E936
+ ldr r1, _0204E964 ; =0x021C5A68
+ mov r0, #0xae
+ ldr r3, [r1, #0x0]
+ lsl r0, r0, #0x2
+ ldrb r2, [r3, r0]
+ cmp r2, #0x0
+ bne _0204E962
+ mov r2, #0x1
+ strb r2, [r3, r0]
+ ldr r1, [r1, #0x0]
+ ldr r0, _0204E968 ; =FUN_0204D308
+ ldr r1, [r1, #0x54]
+ bl FUN_022494C8
+ pop {r4, pc}
+_0204E936:
+ ldrb r0, [r4, #0x0]
+ cmp r0, #0x3
+ bne _0204E962
+ bl FUN_02031190
+ ldrb r1, [r4, #0x1]
+ cmp r1, r0
+ bne _0204E962
+ ldr r1, _0204E964 ; =0x021C5A68
+ mov r0, #0xae
+ ldr r3, [r1, #0x0]
+ lsl r0, r0, #0x2
+ ldrb r2, [r3, r0]
+ cmp r2, #0x0
+ bne _0204E962
+ mov r2, #0x1
+ strb r2, [r3, r0]
+ ldr r1, [r1, #0x0]
+ ldr r0, _0204E968 ; =FUN_0204D308
+ ldr r1, [r1, #0x54]
+ bl FUN_0224A7C8
+_0204E962:
+ pop {r4, pc}
+ .balign 4
+_0204E964: .word 0x021C5A68
+_0204E968: .word FUN_0204D308
+
+ thumb_func_start FUN_0204E96C
+FUN_0204E96C: ; 0x0204E96C
+ push {r4-r6, lr}
+ ldr r0, _0204EACC ; =0x021C5A68
+ add r5, r2, #0x0
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0x54]
+ ldr r0, [r0, #0xc]
+ bl FUN_020462AC
+ add r6, r0, #0x0
+ ldrb r0, [r5, #0x1]
+ cmp r0, #0x8
+ blo _0204E988
+ bl ErrorHandling
+_0204E988:
+ ldrb r0, [r5, #0x0]
+ cmp r0, #0x4
+ bne _0204E9AA
+ bl FUN_02031190
+ ldrb r1, [r5, #0x1]
+ cmp r1, r0
+ bne _0204E9AA
+ bl FUN_0204F7E4
+ bl FUN_0223D638
+ ldr r3, _0204EAD0 ; =FUN_0204E2AC
+ mov r1, #0x48
+ mov r2, #0x1
+ bl FUN_0224DCB8
+_0204E9AA:
+ ldrb r0, [r5, #0x0]
+ cmp r0, #0x1
+ bne _0204E9B8
+ ldrb r0, [r5, #0x1]
+ ldrb r1, [r5, #0x2]
+ bl FUN_0204E730
+_0204E9B8:
+ ldrb r0, [r5, #0x0]
+ cmp r0, #0x1
+ bne _0204EA7C
+ bl FUN_02031190
+ ldrb r1, [r5, #0x1]
+ cmp r1, r0
+ bne _0204EA7C
+ ldr r2, _0204EACC ; =0x021C5A68
+ ldrb r0, [r5, #0x2]
+ ldr r2, [r2, #0x0]
+ ldr r1, _0204EAD4 ; =FUN_0204D308
+ ldr r2, [r2, #0x54]
+ bl FUN_02247A34
+ ldr r0, _0204EACC ; =0x021C5A68
+ ldrb r4, [r5, #0x1]
+ ldr r2, [r0, #0x0]
+ mov r3, #0xf
+ add r1, r2, #0x0
+ add r1, #0x58
+ ldrb r1, [r1, #0x0]
+ add r2, #0x58
+ bic r1, r3
+ mov r3, #0xf
+ and r3, r4
+ orr r1, r3
+ strb r1, [r2, #0x0]
+ ldr r2, [r0, #0x0]
+ mov r3, #0xf0
+ add r1, r2, #0x0
+ add r1, #0x58
+ ldrb r1, [r1, #0x0]
+ add r2, #0x58
+ bic r1, r3
+ ldrb r3, [r5, #0x2]
+ lsl r3, r3, #0x1c
+ lsr r3, r3, #0x18
+ orr r1, r3
+ strb r1, [r2, #0x0]
+ ldr r3, [r0, #0x0]
+ add r1, r3, #0x0
+ add r1, #0x59
+ ldrb r2, [r1, #0x0]
+ mov r1, #0x1
+ add r3, #0x59
+ bic r2, r1
+ strb r2, [r3, #0x0]
+ ldr r3, [r0, #0x0]
+ add r1, r3, #0x0
+ add r1, #0x59
+ ldrb r2, [r1, #0x0]
+ mov r1, #0x2
+ add r3, #0x59
+ bic r2, r1
+ strb r2, [r3, #0x0]
+ ldrb r4, [r5, #0x2]
+ ldr r1, [r0, #0x0]
+ add r0, r1, r4
+ add r0, #0x5a
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x0
+ bne _0204EA7C
+ ldr r0, [r1, #0x54]
+ bl FUN_020377AC
+ bl FUN_02026CB4
+ add r1, r4, #0x0
+ bl FUN_02026908
+ add r0, r6, #0x0
+ bl FUN_0205F688
+ add r1, r0, #0x0
+ add r1, r1, #0x1
+ lsl r1, r1, #0x10
+ add r0, r6, #0x0
+ lsr r1, r1, #0x10
+ bl FUN_0205F698
+ add r0, r6, #0x0
+ bl FUN_0205F6A8
+ add r1, r0, #0x0
+ add r1, r1, #0x1
+ lsl r1, r1, #0x10
+ add r0, r6, #0x0
+ lsr r1, r1, #0x10
+ bl FUN_0205F6B8
+ ldr r0, _0204EACC ; =0x021C5A68
+ ldrb r1, [r5, #0x2]
+ ldr r2, [r0, #0x0]
+ add r2, #0x5a
+ ldrb r0, [r2, r1]
+ add r0, r0, #0x1
+ strb r0, [r2, r1]
+_0204EA7C:
+ ldrb r0, [r5, #0x0]
+ cmp r0, #0x1
+ bne _0204EA9A
+ ldrb r4, [r5, #0x2]
+ bl FUN_02031190
+ cmp r4, r0
+ bne _0204EA9A
+ ldr r2, _0204EACC ; =0x021C5A68
+ ldrb r1, [r5, #0x1]
+ ldr r2, [r2, #0x0]
+ add r0, r4, #0x0
+ ldr r2, [r2, #0x54]
+ bl FUN_02248DF8
+_0204EA9A:
+ ldrb r0, [r5, #0x0]
+ cmp r0, #0x2
+ bne _0204EABC
+ bl FUN_02031190
+ ldrb r1, [r5, #0x1]
+ cmp r1, r0
+ bne _0204EABC
+ bl FUN_0204F7E4
+ bl FUN_0223D638
+ ldr r3, _0204EAD0 ; =FUN_0204E2AC
+ mov r1, #0x2
+ mov r2, #0x1
+ bl FUN_0224DCB8
+_0204EABC:
+ ldrb r0, [r5, #0x0]
+ cmp r0, #0x1
+ bne _0204EACA
+ ldrb r0, [r5, #0x1]
+ ldrb r1, [r5, #0x2]
+ bl FUN_0223E4A8
+_0204EACA:
+ pop {r4-r6, pc}
+ .balign 4
+_0204EACC: .word 0x021C5A68
+_0204EAD0: .word FUN_0204E2AC
+_0204EAD4: .word FUN_0204D308
+
+ thumb_func_start FUN_0204EAD8
+FUN_0204EAD8: ; 0x0204EAD8
+ push {r3-r4}
+ ldr r3, _0204EB0C ; =0x021C5A68
+ ldr r4, [r3, #0x0]
+ add r4, #0xe2
+ ldrb r2, [r4, r0]
+ cmp r1, r2
+ beq _0204EB08
+ strb r1, [r4, r0]
+ ldr r2, [r3, #0x0]
+ lsl r1, r0, #0x3
+ add r2, r2, r1
+ mov r4, #0x0
+ add r2, #0x69
+ strb r4, [r2, #0x0]
+ ldr r2, [r3, #0x0]
+ mov r4, #0x1
+ add r2, r2, r0
+ ldr r0, _0204EB10 ; =0x00000132
+ strb r4, [r2, r0]
+ ldr r0, [r3, #0x0]
+ mov r2, #0x2
+ add r0, r0, r1
+ add r0, #0x67
+ strb r2, [r0, #0x0]
+_0204EB08:
+ pop {r3-r4}
+ bx lr
+ .balign 4
+_0204EB0C: .word 0x021C5A68
+_0204EB10: .word 0x00000132
+
+ thumb_func_start FUN_0204EB14
+FUN_0204EB14: ; 0x0204EB14
+ ldr r1, _0204EB3C ; =0x021C5A68
+ ldr r2, [r1, #0x0]
+ ldr r1, _0204EB40 ; =0x000002C2
+ ldrb r1, [r2, r1]
+ cmp r1, #0x0
+ beq _0204EB24
+ mov r0, #0x0
+ bx lr
+_0204EB24:
+ add r1, r2, r0
+ add r1, #0xea
+ ldrb r1, [r1, #0x0]
+ cmp r1, #0x0
+ beq _0204EB36
+ add r0, r2, r0
+ add r0, #0xe2
+ ldrb r0, [r0, #0x0]
+ bx lr
+_0204EB36:
+ mov r0, #0x0
+ bx lr
+ nop
+_0204EB3C: .word 0x021C5A68
+_0204EB40: .word 0x000002C2
+
+ thumb_func_start FUN_0204EB44
+FUN_0204EB44: ; 0x0204EB44
+ push {r3-r7, lr}
+ sub sp, #0x30
+ ldr r1, _0204EBF8 ; =0x020F5800
+ add r0, sp, #0x8
+ ldrh r2, [r1, #0x0]
+ ldr r3, _0204EBFC ; =0x020F5814
+ strh r2, [r0, #0x0]
+ ldrh r2, [r1, #0x2]
+ strh r2, [r0, #0x2]
+ ldrh r2, [r1, #0x4]
+ ldrh r1, [r1, #0x6]
+ strh r2, [r0, #0x4]
+ strh r1, [r0, #0x6]
+ add r2, sp, #0x20
+ mov r1, #0x8
+_0204EB62:
+ ldrh r0, [r3, #0x0]
+ add r3, r3, #0x2
+ strh r0, [r2, #0x0]
+ add r2, r2, #0x2
+ sub r1, r1, #0x1
+ bne _0204EB62
+ bl FUN_02033534
+ bl FUN_02031248
+ add r6, r0, #0x0
+ mov r0, #0x0
+ str r0, [sp, #0x4]
+ str r0, [sp, #0x0]
+ cmp r6, #0x2
+ bne _0204EB86
+ add r5, sp, #0x8
+ b _0204EB88
+_0204EB86:
+ add r5, sp, #0x20
+_0204EB88:
+ mov r7, #0x0
+ cmp r6, #0x0
+ ble _0204EBD4
+_0204EB8E:
+ mov r4, #0x0
+ cmp r6, #0x0
+ ble _0204EBCC
+_0204EB94:
+ add r0, r4, #0x0
+ bl FUN_0204E3EC
+ ldrh r1, [r5, #0x0]
+ cmp r1, r0
+ bne _0204EBC6
+ add r0, r4, #0x0
+ bl FUN_0204E440
+ ldrh r1, [r5, #0x2]
+ cmp r1, r0
+ bne _0204EBC6
+ ldr r0, [sp, #0x4]
+ lsl r1, r4, #0x2
+ add r0, r0, #0x1
+ str r0, [sp, #0x4]
+ add r0, sp, #0x10
+ str r7, [r0, r1]
+ bl FUN_02031190
+ cmp r4, r0
+ bne _0204EBCC
+ mov r0, #0x1
+ str r0, [sp, #0x0]
+ b _0204EBCC
+_0204EBC6:
+ add r4, r4, #0x1
+ cmp r4, r6
+ blt _0204EB94
+_0204EBCC:
+ add r7, r7, #0x1
+ add r5, r5, #0x4
+ cmp r7, r6
+ blt _0204EB8E
+_0204EBD4:
+ ldr r0, [sp, #0x4]
+ cmp r0, r6
+ bne _0204EBF2
+ mov r5, #0x0
+ cmp r6, #0x0
+ ble _0204EBF2
+ add r4, sp, #0x10
+_0204EBE2:
+ ldr r0, [r4, #0x0]
+ add r1, r5, #0x0
+ bl FUN_020313B4
+ add r5, r5, #0x1
+ add r4, r4, #0x4
+ cmp r5, r6
+ blt _0204EBE2
+_0204EBF2:
+ ldr r0, [sp, #0x0]
+ add sp, #0x30
+ pop {r3-r7, pc}
+ .balign 4
+_0204EBF8: .word 0x020F5800
+_0204EBFC: .word 0x020F5814
+
+ thumb_func_start FUN_0204EC00
+FUN_0204EC00: ; 0x0204EC00
+ ldrb r2, [r2, #0x0]
+ cmp r2, #0x3
+ bne _0204EC14
+ ldr r1, _0204EC24 ; =0x021C5A68
+ mov r2, #0x0
+ ldr r1, [r1, #0x0]
+ add r0, r1, r0
+ add r0, #0xf2
+ strb r2, [r0, #0x0]
+ bx lr
+_0204EC14:
+ ldr r1, _0204EC24 ; =0x021C5A68
+ ldr r1, [r1, #0x0]
+ add r1, r1, r0
+ mov r0, #0xad
+ lsl r0, r0, #0x2
+ strb r2, [r1, r0]
+ bx lr
+ nop
+_0204EC24: .word 0x021C5A68
+
+ thumb_func_start FUN_0204EC28
+FUN_0204EC28: ; 0x0204EC28
+ push {r3-r7, lr}
+ sub sp, #0x8
+ bl FUN_02033534
+ bl FUN_02031248
+ add r7, r0, #0x0
+ cmp r7, #0x2
+ bne _0204EC40
+ ldr r0, _0204ECB4 ; =0x02105E5C
+ str r0, [sp, #0x0]
+ b _0204EC44
+_0204EC40:
+ ldr r0, _0204ECB8 ; =0x02105E64
+ str r0, [sp, #0x0]
+_0204EC44:
+ mov r1, #0x0
+ add r0, sp, #0x4
+ strb r1, [r0, #0x0]
+ cmp r7, #0x0
+ ble _0204ECAE
+_0204EC4E:
+ ldr r0, _0204ECBC ; =0x021C5A68
+ add r6, sp, #0x4
+ ldr r1, [r0, #0x0]
+ ldrb r0, [r6, #0x0]
+ add r1, r1, r0
+ mov r0, #0xad
+ lsl r0, r0, #0x2
+ ldrb r0, [r1, r0]
+ cmp r0, #0x0
+ beq _0204ECA0
+ mov r4, #0x0
+ cmp r7, #0x0
+ ble _0204ECA0
+ ldr r5, [sp, #0x0]
+_0204EC6A:
+ ldrb r0, [r6, #0x0]
+ bl FUN_0204E544
+ ldrh r1, [r5, #0x0]
+ cmp r1, r0
+ bne _0204EC98
+ ldrb r0, [r6, #0x0]
+ bl FUN_0204E598
+ ldrh r1, [r5, #0x2]
+ cmp r1, r0
+ bne _0204EC98
+ ldr r0, _0204ECBC ; =0x021C5A68
+ ldr r1, [r0, #0x0]
+ ldrb r0, [r6, #0x0]
+ add r1, r1, r0
+ add r1, #0xf2
+ mov r0, #0x1
+ strb r0, [r1, #0x0]
+ mov r0, #0x5f
+ add r1, sp, #0x4
+ bl FUN_02030C4C
+_0204EC98:
+ add r4, r4, #0x1
+ add r5, r5, #0x4
+ cmp r4, r7
+ blt _0204EC6A
+_0204ECA0:
+ add r0, sp, #0x4
+ ldrb r1, [r0, #0x0]
+ add r1, r1, #0x1
+ strb r1, [r0, #0x0]
+ ldrb r0, [r0, #0x0]
+ cmp r0, r7
+ blt _0204EC4E
+_0204ECAE:
+ add sp, #0x8
+ pop {r3-r7, pc}
+ nop
+_0204ECB4: .word 0x02105E5C
+_0204ECB8: .word 0x02105E64
+_0204ECBC: .word 0x021C5A68
+
+ thumb_func_start FUN_0204ECC0
+FUN_0204ECC0: ; 0x0204ECC0
+ push {r4, lr}
+ bl FUN_02031190
+ add r4, r0, #0x0
+ bl FUN_0204E3EC
+ cmp r0, #0x8
+ ble _0204ECE0
+ mov r0, #0x2
+ bl FUN_0204F6DC
+ mov r0, #0x2
+ mov r1, #0x24
+ bl FUN_0205AFDC
+ b _0204ECEE
+_0204ECE0:
+ mov r0, #0x3
+ bl FUN_0204F6DC
+ mov r0, #0x3
+ mov r1, #0x24
+ bl FUN_0205AFDC
+_0204ECEE:
+ add r1, r0, #0x0
+ ldr r0, _0204ED04 ; =0x021C5A68
+ ldr r2, [r0, #0x0]
+ lsl r0, r4, #0x2
+ add r0, r2, r0
+ ldr r0, [r0, #0x8]
+ bl FUN_02057260
+ bl FUN_0204FB14
+ pop {r4, pc}
+ .balign 4
+_0204ED04: .word 0x021C5A68
+
+ thumb_func_start FUN_0204ED08
+FUN_0204ED08: ; 0x0204ED08
+ push {r3-r7, lr}
+ sub sp, #0x8
+ bl FUN_02033534
+ bl FUN_02031248
+ mov r3, #0x0
+ str r0, [sp, #0x0]
+ cmp r0, #0x0
+ ble _0204ED3C
+ ldr r0, _0204ED94 ; =0x021C5A68
+ mov r1, #0x66
+ add r2, r1, #0x0
+ ldr r4, [r0, #0x0]
+ sub r2, #0x67
+_0204ED26:
+ ldrsb r0, [r4, r1]
+ cmp r0, r2
+ bne _0204ED32
+ add sp, #0x8
+ mov r0, #0x0
+ pop {r3-r7, pc}
+_0204ED32:
+ ldr r0, [sp, #0x0]
+ add r3, r3, #0x1
+ add r4, #0x8
+ cmp r3, r0
+ blt _0204ED26
+_0204ED3C:
+ ldr r0, [sp, #0x0]
+ mov r5, #0x0
+ cmp r0, #0x0
+ ble _0204ED8E
+ add r4, r5, #0x0
+_0204ED46:
+ ldr r0, _0204ED94 ; =0x021C5A68
+ ldr r7, [r0, #0x0]
+ mov r0, #0x4
+ add r7, #0x62
+ add r6, r7, r4
+ ldrsb r0, [r6, r0]
+ bl FUN_0204F610
+ str r0, [sp, #0x4]
+ bl FUN_02059BF4
+ ldrh r1, [r7, r4]
+ add r0, r1, r0
+ strh r0, [r7, r4]
+ ldr r0, [sp, #0x4]
+ bl FUN_02059C00
+ ldrh r1, [r6, #0x2]
+ add r0, r1, r0
+ strh r0, [r6, #0x2]
+ mov r0, #0x2
+ strb r0, [r6, #0x5]
+ ldr r0, _0204ED94 ; =0x021C5A68
+ mov r1, #0x1
+ ldr r0, [r0, #0x0]
+ add r2, r0, r5
+ ldr r0, _0204ED98 ; =0x00000132
+ strb r1, [r2, r0]
+ add r0, r5, #0x0
+ bl FUN_0204EAD8
+ ldr r0, [sp, #0x0]
+ add r5, r5, #0x1
+ add r4, #0x8
+ cmp r5, r0
+ blt _0204ED46
+_0204ED8E:
+ mov r0, #0x1
+ add sp, #0x8
+ pop {r3-r7, pc}
+ .balign 4
+_0204ED94: .word 0x021C5A68
+_0204ED98: .word 0x00000132
+
+ thumb_func_start FUN_0204ED9C
+FUN_0204ED9C: ; 0x0204ED9C
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r0, _0204EDE8 ; =0x021C5A68
+ ldr r1, [r0, #0x0]
+ lsl r0, r4, #0x2
+ add r1, r1, r0
+ mov r0, #0x29
+ lsl r0, r0, #0x4
+ ldr r0, [r1, r0]
+ cmp r0, #0x0
+ beq _0204EDE2
+ bl FUN_02016A18
+ ldr r2, _0204EDE8 ; =0x021C5A68
+ lsl r1, r4, #0x2
+ ldr r3, [r2, #0x0]
+ mov r0, #0x0
+ add r3, r3, r1
+ mov r1, #0x29
+ lsl r1, r1, #0x4
+ str r0, [r3, r1]
+ ldr r1, [r2, #0x0]
+ mov r3, #0xff
+ add r1, r1, r4
+ add r1, #0xfa
+ strb r0, [r1, #0x0]
+ mov r0, #0x22
+ ldr r1, [r2, #0x0]
+ mul r0, r4
+ add r1, r1, r0
+ add r0, r3, #0x0
+ add r0, #0x6b
+ strh r3, [r1, r0]
+ mov r0, #0x1
+ pop {r4, pc}
+_0204EDE2:
+ mov r0, #0x0
+ pop {r4, pc}
+ nop
+_0204EDE8: .word 0x021C5A68
+
+ thumb_func_start FUN_0204EDEC
+FUN_0204EDEC: ; 0x0204EDEC
+ push {r3-r7, lr}
+ add r7, r0, #0x0
+ bl FUN_02031190
+ cmp r7, r0
+ bne _0204EE90
+ ldr r0, _0204EE98 ; =0x021C5A68
+ ldr r2, [r0, #0x0]
+ lsl r0, r7, #0x2
+ add r1, r2, r0
+ mov r0, #0x29
+ lsl r0, r0, #0x4
+ ldr r0, [r1, r0]
+ cmp r0, #0x0
+ beq _0204EE96
+ ldr r0, [r2, #0x54]
+ ldr r0, [r0, #0xc]
+ bl FUN_02029FC8
+ mov r1, #0x1c
+ bl FUN_0202A170
+ ldr r0, _0204EE98 ; =0x021C5A68
+ ldr r1, [r0, #0x0]
+ mov r0, #0xa3
+ lsl r0, r0, #0x2
+ ldr r0, [r1, r0]
+ cmp r0, #0x0
+ beq _0204EE2A
+ bl FUN_02016A18
+_0204EE2A:
+ mov r0, #0x9e
+ lsl r0, r0, #0x2
+ ldr r2, _0204EE98 ; =0x021C5A68
+ mov r5, #0x4
+ mov r6, #0x10
+ add r1, r0, #0x4
+_0204EE36:
+ ldr r3, [r2, #0x0]
+ sub r5, r5, #0x1
+ add r4, r3, r6
+ ldr r3, [r4, r0]
+ sub r6, r6, #0x4
+ str r3, [r4, r1]
+ cmp r5, #0x1
+ bge _0204EE36
+ ldr r1, _0204EE98 ; =0x021C5A68
+ mov r0, #0x29
+ ldr r3, [r1, #0x0]
+ lsl r4, r7, #0x2
+ add r2, r3, r4
+ lsl r0, r0, #0x4
+ ldr r2, [r2, r0]
+ sub r0, #0x14
+ str r2, [r3, r0]
+ ldr r5, [r1, #0x0]
+ ldr r0, [r5, #0x54]
+ bl FUN_020377AC
+ bl FUN_02026CC4
+ mov r1, #0x29
+ add r2, r5, r4
+ lsl r1, r1, #0x4
+ ldr r1, [r2, r1]
+ bl FUN_02025C40
+ ldr r1, _0204EE98 ; =0x021C5A68
+ mov r3, #0x0
+ ldr r0, [r1, #0x0]
+ add r2, r0, r4
+ mov r0, #0x29
+ lsl r0, r0, #0x4
+ str r3, [r2, r0]
+ mov r0, #0x22
+ ldr r1, [r1, #0x0]
+ mul r0, r7
+ mov r2, #0xff
+ add r1, r1, r0
+ add r0, r2, #0x0
+ add r0, #0x6b
+ strh r2, [r1, r0]
+ pop {r3-r7, pc}
+_0204EE90:
+ add r0, r7, #0x0
+ bl FUN_0204ED9C
+_0204EE96:
+ pop {r3-r7, pc}
+ .balign 4
+_0204EE98: .word 0x021C5A68
+
+ thumb_func_start FUN_0204EE9C
+FUN_0204EE9C: ; 0x0204EE9C
+ ldr r1, _0204EEB8 ; =0x021C5A68
+ lsl r0, r0, #0x2
+ ldr r1, [r1, #0x0]
+ add r1, r1, r0
+ mov r0, #0x29
+ lsl r0, r0, #0x4
+ ldr r0, [r1, r0]
+ cmp r0, #0x0
+ beq _0204EEB2
+ mov r0, #0x1
+ bx lr
+_0204EEB2:
+ mov r0, #0x0
+ bx lr
+ nop
+_0204EEB8: .word 0x021C5A68
+
+ thumb_func_start FUN_0204EEBC
+FUN_0204EEBC: ; 0x0204EEBC
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ ldr r0, _0204EF48 ; =0x021C5A68
+ add r6, r1, #0x0
+ ldr r1, [r0, #0x0]
+ lsl r0, r5, #0x2
+ add r1, r1, r0
+ mov r0, #0x29
+ lsl r0, r0, #0x4
+ ldr r0, [r1, r0]
+ cmp r0, #0x0
+ bne _0204EF44
+ add r0, r6, #0x0
+ bl FUN_0202DFA4
+ add r7, r0, #0x0
+ beq _0204EF44
+ mov r0, #0xf
+ lsl r4, r5, #0x2
+ bl FUN_02023928
+ mov r3, #0x29
+ ldr r1, _0204EF48 ; =0x021C5A68
+ add r2, r0, #0x0
+ ldr r0, [r1, #0x0]
+ lsl r3, r3, #0x4
+ add r0, r0, r4
+ str r2, [r0, r3]
+ ldr r1, [r1, #0x0]
+ add r0, r7, #0x0
+ add r1, r1, r4
+ ldr r1, [r1, r3]
+ bl FUN_0202393C
+ ldr r1, _0204EF48 ; =0x021C5A68
+ mov r2, #0x1
+ ldr r0, [r1, #0x0]
+ ldr r3, _0204EF4C ; =0x0000016A
+ add r0, r0, r5
+ add r0, #0xfa
+ strb r2, [r0, #0x0]
+ mov r0, #0x22
+ add r2, r5, #0x0
+ mul r2, r0
+ ldr r0, [r1, #0x0]
+ add r0, r0, r2
+ strh r5, [r0, r3]
+ ldr r1, [r1, #0x0]
+ sub r3, #0x20
+ add r1, r1, r3
+ add r0, r7, #0x0
+ add r1, r1, r2
+ bl FUN_0202393C
+ bl FUN_02031190
+ cmp r6, r0
+ bne _0204EF40
+ ldr r0, _0204EF48 ; =0x021C5A68
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0x54]
+ ldr r0, [r0, #0xc]
+ bl FUN_02026CB4
+ bl FUN_02026BC8
+_0204EF40:
+ mov r0, #0x1
+ pop {r3-r7, pc}
+_0204EF44:
+ mov r0, #0x0
+ pop {r3-r7, pc}
+ .balign 4
+_0204EF48: .word 0x021C5A68
+_0204EF4C: .word 0x0000016A
+
+ thumb_func_start FUN_0204EF50
+FUN_0204EF50: ; 0x0204EF50
+ push {r3-r7, lr}
+ ldr r4, _0204EFC4 ; =0x021C5A68
+ mov r7, #0x29
+ ldr r6, [r4, #0x0]
+ add r3, r0, #0x0
+ lsl r7, r7, #0x4
+ add r5, r6, r7
+ lsl r0, r3, #0x2
+ add r2, r1, #0x0
+ ldr r1, [r5, r0]
+ cmp r1, #0x0
+ bne _0204EFBE
+ lsl r1, r2, #0x2
+ add r6, r6, r1
+ ldr r6, [r6, r7]
+ cmp r6, #0x0
+ beq _0204EFBE
+ str r6, [r5, r0]
+ ldr r5, [r4, #0x0]
+ mov r6, #0x0
+ add r1, r5, r1
+ str r6, [r1, r7]
+ ldr r1, [r4, #0x0]
+ mov r5, #0x1
+ add r1, r1, r3
+ add r1, #0xfa
+ strb r5, [r1, #0x0]
+ ldr r1, [r4, #0x0]
+ add r1, r1, r2
+ add r1, #0xfa
+ strb r6, [r1, #0x0]
+ mov r1, #0x22
+ ldr r5, [r4, #0x0]
+ mul r1, r3
+ add r6, r5, r1
+ ldr r5, _0204EFC8 ; =0x0000016A
+ strh r3, [r6, r5]
+ mov r6, #0x22
+ mov r5, #0xff
+ mul r6, r2
+ ldr r3, [r4, #0x0]
+ add r2, r5, #0x0
+ add r3, r3, r6
+ add r2, #0x6b
+ strh r5, [r3, r2]
+ ldr r2, [r4, #0x0]
+ add r5, #0x4b
+ add r0, r2, r0
+ add r2, r2, r5
+ ldr r0, [r0, r7]
+ add r1, r2, r1
+ bl FUN_0202393C
+ mov r0, #0x1
+ pop {r3-r7, pc}
+_0204EFBE:
+ mov r0, #0x0
+ pop {r3-r7, pc}
+ nop
+_0204EFC4: .word 0x021C5A68
+_0204EFC8: .word 0x0000016A
+
+ thumb_func_start FUN_0204EFCC
+FUN_0204EFCC: ; 0x0204EFCC
+ push {r4, lr}
+ ldr r1, _0204F06C ; =0x021C5A68
+ add r4, r0, #0x0
+ ldr r3, [r1, #0x0]
+ ldr r1, _0204F070 ; =0x000002BD
+ ldrb r1, [r3, r1]
+ cmp r1, #0x0
+ bne _0204F068
+ lsl r1, r4, #0x2
+ add r2, r3, r1
+ ldr r1, [r2, #0x8]
+ cmp r1, #0x0
+ beq _0204F068
+ add r3, r3, r4
+ add r3, #0xfa
+ ldrb r3, [r3, #0x0]
+ cmp r3, #0x3
+ bhi _0204F068
+ add r3, r3, r3
+ add r3, pc
+ ldrh r3, [r3, #0x6]
+ lsl r3, r3, #0x10
+ asr r3, r3, #0x10
+ add pc, r3
+_0204EFFC: ; jump table (using 16-bit offset)
+ .short _0204F064 - _0204EFFC - 2; case 0
+ .short _0204F048 - _0204EFFC - 2; case 1
+ .short _0204F02C - _0204EFFC - 2; case 2
+ .short _0204F004 - _0204EFFC - 2; case 3
+_0204F004:
+ ldr r0, [r2, #0x28]
+ cmp r0, #0x0
+ bne _0204F01E
+ add r0, r1, #0x0
+ bl FUN_020553A0
+ bl FUN_021E5970
+ ldr r1, _0204F06C ; =0x021C5A68
+ ldr r2, [r1, #0x0]
+ lsl r1, r4, #0x2
+ add r1, r2, r1
+ str r0, [r1, #0x28]
+_0204F01E:
+ ldr r0, _0204F06C ; =0x021C5A68
+ mov r1, #0x0
+ ldr r0, [r0, #0x0]
+ add r0, r0, r4
+ add r0, #0xfa
+ strb r1, [r0, #0x0]
+ pop {r4, pc}
+_0204F02C:
+ ldr r0, [r2, #0x28]
+ cmp r0, #0x0
+ bne _0204F068
+ add r0, r1, #0x0
+ bl FUN_020553A0
+ bl FUN_021E57D4
+ ldr r1, _0204F06C ; =0x021C5A68
+ ldr r2, [r1, #0x0]
+ lsl r1, r4, #0x2
+ add r1, r2, r1
+ str r0, [r1, #0x28]
+ pop {r4, pc}
+_0204F048:
+ ldr r0, [r2, #0x28]
+ cmp r0, #0x0
+ bne _0204F068
+ add r0, r1, #0x0
+ bl FUN_020553A0
+ bl FUN_021E5614
+ ldr r1, _0204F06C ; =0x021C5A68
+ ldr r2, [r1, #0x0]
+ lsl r1, r4, #0x2
+ add r1, r2, r1
+ str r0, [r1, #0x28]
+ pop {r4, pc}
+_0204F064:
+ bl FUN_0204CD78
+_0204F068:
+ pop {r4, pc}
+ nop
+_0204F06C: .word 0x021C5A68
+_0204F070: .word 0x000002BD
+
+ thumb_func_start FUN_0204F074
+FUN_0204F074: ; 0x0204F074
+ ldr r1, _0204F088 ; =0x021C5A68
+ ldr r2, [r1, #0x0]
+ add r2, #0xfa
+ ldrb r1, [r2, r0]
+ cmp r1, #0x1
+ beq _0204F084
+ mov r1, #0x2
+ strb r1, [r2, r0]
+_0204F084:
+ bx lr
+ nop
+_0204F088: .word 0x021C5A68
+
+ thumb_func_start FUN_0204F08C
+FUN_0204F08C: ; 0x0204F08C
+ ldr r1, _0204F0A0 ; =0x021C5A68
+ ldr r2, [r1, #0x0]
+ add r2, #0xfa
+ ldrb r1, [r2, r0]
+ cmp r1, #0x1
+ beq _0204F09C
+ mov r1, #0x3
+ strb r1, [r2, r0]
+_0204F09C:
+ ldr r3, _0204F0A4 ; =FUN_0204CD78
+ bx r3
+ .balign 4
+_0204F0A0: .word 0x021C5A68
+_0204F0A4: .word FUN_0204CD78
+
+ thumb_func_start FUN_0204F0A8
+FUN_0204F0A8: ; 0x0204F0A8
+ ldr r1, _0204F0BC ; =0x021C5A68
+ ldr r2, [r1, #0x0]
+ add r2, #0xfa
+ ldrb r1, [r2, r0]
+ cmp r1, #0x1
+ beq _0204F0B8
+ mov r1, #0x0
+ strb r1, [r2, r0]
+_0204F0B8:
+ ldr r3, _0204F0C0 ; =FUN_0204CD78
+ bx r3
+ .balign 4
+_0204F0BC: .word 0x021C5A68
+_0204F0C0: .word FUN_0204CD78
+
+ thumb_func_start FUN_0204F0C4
+FUN_0204F0C4: ; 0x0204F0C4
+ mov r0, #0x3
+ bx lr
+
+ thumb_func_start FUN_0204F0C8
+FUN_0204F0C8: ; 0x0204F0C8
+ push {r3-r4, lr}
+ sub sp, #0x4
+ add r4, r0, #0x0
+ add r0, sp, #0x0
+ strb r4, [r0, #0x1]
+ ldrb r1, [r2, #0x0]
+ cmp r1, #0x0
+ beq _0204F0E0
+ cmp r1, #0x3
+ beq _0204F0F0
+ add sp, #0x4
+ pop {r3-r4, pc}
+_0204F0E0:
+ mov r1, #0x0
+ strb r1, [r0, #0x0]
+ mov r0, #0x55
+ add r1, sp, #0x0
+ bl FUN_02030C4C
+ add sp, #0x4
+ pop {r3-r4, pc}
+_0204F0F0:
+ mov r1, #0x3
+ strb r1, [r0, #0x0]
+ mov r0, #0x55
+ add r1, sp, #0x0
+ bl FUN_02030C4C
+ add r0, r4, #0x0
+ mov r1, #0x0
+ bl FUN_0204EAD8
+ add sp, #0x4
+ pop {r3-r4, pc}
+
+ thumb_func_start FUN_0204F108
+FUN_0204F108: ; 0x0204F108
+ push {r3, lr}
+ bl FUN_02031190
+ bl FUN_0204F0A8
+ bl FUN_0223D648
+ bl FUN_0224DD94
+ mov r0, #0x4
+ bl FUN_0204F774
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_0204F124
+FUN_0204F124: ; 0x0204F124
+ push {r3-r7, lr}
+ add r5, r1, #0x0
+ add r6, r0, #0x0
+ ldr r0, [r5, #0x4]
+ mov r4, #0x0
+ lsl r0, r0, #0x18
+ lsr r7, r0, #0x18
+ add r0, r7, #0x0
+ bl FUN_02030E7C
+ cmp r0, #0x0
+ bne _0204F14A
+ add r0, r5, #0x0
+ bl FUN_02016A18
+ add r0, r6, #0x0
+ bl FUN_0200CAB4
+ pop {r3-r7, pc}
+_0204F14A:
+ ldr r0, [r5, #0x0]
+ add r0, r0, #0x1
+ str r0, [r5, #0x0]
+ cmp r0, #0x3c
+ ble _0204F156
+ mov r4, #0x1
+_0204F156:
+ cmp r4, #0x0
+ beq _0204F172
+ ldr r0, _0204F174 ; =0x021C5A68
+ mov r1, #0x1
+ ldr r0, [r0, #0x0]
+ add r0, r0, r7
+ add r0, #0xea
+ strb r1, [r0, #0x0]
+ add r0, r5, #0x0
+ bl FUN_02016A18
+ add r0, r6, #0x0
+ bl FUN_0200CAB4
+_0204F172:
+ pop {r3-r7, pc}
+ .balign 4
+_0204F174: .word 0x021C5A68
+
+ thumb_func_start FUN_0204F178
+FUN_0204F178: ; 0x0204F178
+ push {r4, lr}
+ add r4, r0, #0x0
+ mov r0, #0xb
+ mov r1, #0x8
+ bl FUN_02016998
+ add r1, r0, #0x0
+ mov r2, #0x0
+ str r2, [r1, #0x0]
+ ldr r0, _0204F1A8 ; =0x021C5A68
+ str r4, [r1, #0x4]
+ ldr r0, [r0, #0x0]
+ add r0, r0, r4
+ add r0, #0xea
+ strb r2, [r0, #0x0]
+ ldr r0, _0204F1AC ; =FUN_0204F124
+ mov r2, #0x64
+ bl FUN_0200CA44
+ add r0, r4, #0x0
+ mov r1, #0x0
+ bl FUN_0204EAD8
+ pop {r4, pc}
+ .balign 4
+_0204F1A8: .word 0x021C5A68
+_0204F1AC: .word FUN_0204F124
+
+ thumb_func_start FUN_0204F1B0
+FUN_0204F1B0: ; 0x0204F1B0
+ push {r3-r5, lr}
+ add r4, r1, #0x0
+ mov r1, #0x1
+ add r5, r0, #0x0
+ tst r1, r2
+ beq _0204F1C4
+ mov r1, #0xb
+ add r0, sp, #0x0
+ strb r1, [r0, #0x0]
+ b _0204F1F6
+_0204F1C4:
+ bl FUN_0204EE9C
+ cmp r0, #0x0
+ beq _0204F1D4
+ mov r1, #0xb
+ add r0, sp, #0x0
+ strb r1, [r0, #0x0]
+ b _0204F1F6
+_0204F1D4:
+ cmp r4, #0xff
+ bne _0204F1DC
+ mov r0, #0x0
+ pop {r3-r5, pc}
+_0204F1DC:
+ add r0, r4, #0x0
+ bl FUN_0204EE9C
+ cmp r0, #0x0
+ bne _0204F1EA
+ mov r0, #0x0
+ pop {r3-r5, pc}
+_0204F1EA:
+ mov r1, #0x5
+ add r0, sp, #0x0
+ strb r1, [r0, #0x0]
+ add r0, r4, #0x0
+ bl FUN_0204F178
+_0204F1F6:
+ add r0, sp, #0x0
+ strb r5, [r0, #0x1]
+ strb r4, [r0, #0x2]
+ add r0, r5, #0x0
+ mov r1, #0x0
+ bl FUN_0204EAD8
+ mov r0, #0x55
+ add r1, sp, #0x0
+ bl FUN_02030C4C
+ mov r0, #0x1
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_0204F210
+FUN_0204F210: ; 0x0204F210
+ push {r3-r4, lr}
+ sub sp, #0x4
+ add r4, r0, #0x0
+ bl FUN_0204EE9C
+ cmp r0, #0x0
+ beq _0204F226
+ mov r1, #0xc
+ add r0, sp, #0x0
+ strb r1, [r0, #0x0]
+ b _0204F22C
+_0204F226:
+ add sp, #0x4
+ mov r0, #0x0
+ pop {r3-r4, pc}
+_0204F22C:
+ strb r4, [r0, #0x1]
+ mov r0, #0x55
+ add r1, sp, #0x0
+ bl FUN_02030C4C
+ mov r0, #0x1
+ add sp, #0x4
+ pop {r3-r4, pc}
+
+ thumb_func_start FUN_0204F23C
+FUN_0204F23C: ; 0x0204F23C
+ push {r4-r6, lr}
+ sub sp, #0x8
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ bl FUN_0223E6B8
+ mov r0, #0x0
+ bl FUN_0204D628
+ mov r0, #0x4
+ bl FUN_0204F74C
+ bl FUN_0223D648
+ add r6, r0, #0x0
+ ldrb r0, [r5, #0x1]
+ bl FUN_0202DFA4
+ add r1, r0, #0x0
+ add r0, r6, #0x0
+ bl FUN_0224DDB8
+ cmp r4, #0x0
+ beq _0204F29C
+ bl FUN_02031190
+ ldr r1, _0204F2C8 ; =0x021C5A68
+ mov r2, #0x0
+ ldr r1, [r1, #0x0]
+ add r0, r1, r0
+ add r0, #0xfa
+ strb r2, [r0, #0x0]
+ bl FUN_02031190
+ bl FUN_0204F0A8
+ bl FUN_02031190
+ bl FUN_0204F074
+ bl FUN_0223D648
+ ldr r3, _0204F2CC ; =FUN_0204F108
+ mov r1, #0xa
+ mov r2, #0x1
+ bl FUN_0224DCB8
+ b _0204F2AA
+_0204F29C:
+ bl FUN_0223D648
+ ldr r3, _0204F2CC ; =FUN_0204F108
+ mov r1, #0xb
+ mov r2, #0x1
+ bl FUN_0224DCB8
+_0204F2AA:
+ mov r0, #0xff
+ str r0, [sp, #0x0]
+ mov r3, #0x0
+ ldr r1, _0204F2D0 ; =0x00000424
+ mov r0, #0x4
+ mov r2, #0x3c
+ str r3, [sp, #0x4]
+ bl FUN_02004DCC
+ ldr r0, _0204F2D4 ; =0x000005F6
+ bl FUN_020054C8
+ add sp, #0x8
+ pop {r4-r6, pc}
+ nop
+_0204F2C8: .word 0x021C5A68
+_0204F2CC: .word FUN_0204F108
+_0204F2D0: .word 0x00000424
+_0204F2D4: .word 0x000005F6
+
+ thumb_func_start FUN_0204F2D8
+FUN_0204F2D8: ; 0x0204F2D8
+ push {r4-r5, lr}
+ sub sp, #0xc
+ ldr r0, _0204F5E0 ; =0x021C5A68
+ add r5, r2, #0x0
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0x54]
+ bl FUN_020377AC
+ bl FUN_02026CB4
+ add r4, r0, #0x0
+ ldrb r0, [r5, #0x0]
+ cmp r0, #0x5
+ bgt _0204F308
+ cmp r0, #0x0
+ blt _0204F346
+ beq _0204F31E
+ cmp r0, #0x3
+ bne _0204F300
+ b _0204F4D2
+_0204F300:
+ cmp r0, #0x5
+ beq _0204F370
+ add sp, #0xc
+ pop {r4-r5, pc}
+_0204F308:
+ cmp r0, #0xc
+ bgt _0204F346
+ cmp r0, #0xb
+ blt _0204F346
+ bne _0204F314
+ b _0204F48C
+_0204F314:
+ cmp r0, #0xc
+ bne _0204F31A
+ b _0204F4AE
+_0204F31A:
+ add sp, #0xc
+ pop {r4-r5, pc}
+_0204F31E:
+ ldr r1, _0204F5E0 ; =0x021C5A68
+ ldrb r0, [r5, #0x1]
+ ldr r2, [r1, #0x0]
+ lsl r1, r0, #0x2
+ add r2, r2, r1
+ mov r1, #0x29
+ lsl r1, r1, #0x4
+ ldr r1, [r2, r1]
+ cmp r1, #0x0
+ beq _0204F346
+ bl FUN_0204ED9C
+ ldrb r0, [r5, #0x1]
+ bl FUN_0204F0A8
+ bl FUN_02031190
+ ldrb r1, [r5, #0x1]
+ cmp r1, r0
+ beq _0204F348
+_0204F346:
+ b _0204F5DA
+_0204F348:
+ bl FUN_0204F7E4
+ bl FUN_0223D648
+ ldr r3, _0204F5E4 ; =FUN_0204E2B4
+ mov r1, #0x2
+ mov r2, #0x1
+ bl FUN_0224DCB8
+ mov r0, #0xff
+ str r0, [sp, #0x0]
+ mov r3, #0x0
+ ldr r1, _0204F5E8 ; =0x00000424
+ mov r0, #0x4
+ mov r2, #0x3c
+ str r3, [sp, #0x4]
+ bl FUN_02004DCC
+ add sp, #0xc
+ pop {r4-r5, pc}
+_0204F370:
+ ldrb r0, [r5, #0x1]
+ bl FUN_0202DFA4
+ cmp r0, #0x0
+ bne _0204F384
+ ldrb r0, [r5, #0x2]
+ bl FUN_0204ED9C
+ add sp, #0xc
+ pop {r4-r5, pc}
+_0204F384:
+ ldr r0, _0204F5E0 ; =0x021C5A68
+ ldr r1, [r0, #0x0]
+ ldrb r0, [r5, #0x2]
+ lsl r0, r0, #0x2
+ add r1, r1, r0
+ mov r0, #0x29
+ lsl r0, r0, #0x4
+ ldr r0, [r1, r0]
+ cmp r0, #0x0
+ bne _0204F3AC
+ bl FUN_02031190
+ ldrb r1, [r5, #0x1]
+ cmp r1, r0
+ beq _0204F3A4
+ b _0204F5DA
+_0204F3A4:
+ bl FUN_0204F7FC
+ add sp, #0xc
+ pop {r4-r5, pc}
+_0204F3AC:
+ ldrb r0, [r5, #0x1]
+ bl FUN_0202DFA4
+ add r1, r0, #0x0
+ ldr r0, _0204F5E0 ; =0x021C5A68
+ ldr r2, [r0, #0x0]
+ ldrb r0, [r5, #0x2]
+ lsl r0, r0, #0x2
+ add r2, r2, r0
+ mov r0, #0x29
+ lsl r0, r0, #0x4
+ ldr r0, [r2, r0]
+ bl FUN_02023AA4
+ cmp r0, #0x1
+ bne _0204F41A
+ ldrb r0, [r5, #0x2]
+ bl FUN_0204ED9C
+ bl FUN_02031190
+ ldrb r1, [r5, #0x1]
+ cmp r1, r0
+ bne _0204F3FC
+ add r0, r4, #0x0
+ bl FUN_02026C00
+ bl FUN_0204F7E4
+ bl FUN_0223D648
+ ldr r3, _0204F5EC ; =FUN_0204E2AC
+ mov r1, #0xd
+ mov r2, #0x1
+ bl FUN_0224DCB8
+ ldr r0, _0204F5F0 ; =0x00000625
+ bl FUN_020054C8
+ b _0204F410
+_0204F3FC:
+ bl FUN_02031190
+ ldrb r1, [r5, #0x2]
+ cmp r1, r0
+ bne _0204F410
+ add r0, r5, #0x0
+ mov r1, #0x0
+ add r2, r4, #0x0
+ bl FUN_0204F23C
+_0204F410:
+ ldrb r0, [r5, #0x1]
+ bl FUN_022472AC
+ add sp, #0xc
+ pop {r4-r5, pc}
+_0204F41A:
+ ldrb r0, [r5, #0x1]
+ ldrb r1, [r5, #0x2]
+ bl FUN_0204EF50
+ cmp r0, #0x0
+ beq _0204F4B8
+ bl FUN_02031190
+ ldrb r1, [r5, #0x1]
+ cmp r1, r0
+ bne _0204F46C
+ add r0, r4, #0x0
+ bl FUN_02026970
+ mov r0, #0x1
+ bl FUN_0204F74C
+ bl FUN_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
+ ldr r3, _0204F5F4 ; =FUN_0204E2D4
+ mov r1, #0xc
+ mov r2, #0x1
+ bl FUN_0224DCB8
+ ldr r0, _0204F5F8 ; =0x00000425
+ bl FUN_0200521C
+ ldr r0, _0204F5F0 ; =0x00000625
+ bl FUN_020054C8
+ b _0204F480
+_0204F46C:
+ bl FUN_02031190
+ ldrb r1, [r5, #0x2]
+ cmp r1, r0
+ bne _0204F480
+ add r0, r5, #0x0
+ mov r1, #0x1
+ add r2, r4, #0x0
+ bl FUN_0204F23C
+_0204F480:
+ ldrb r0, [r5, #0x1]
+ ldrb r1, [r5, #0x2]
+ bl FUN_02247294
+ add sp, #0xc
+ pop {r4-r5, pc}
+_0204F48C:
+ bl FUN_02031190
+ ldrb r1, [r5, #0x1]
+ cmp r1, r0
+ bne _0204F4B8
+ mov r0, #0x2
+ bl FUN_0204F74C
+ bl FUN_0223D648
+ ldr r3, _0204F5FC ; =FUN_0204E2BC
+ mov r1, #0x6
+ mov r2, #0x1
+ bl FUN_0224DCB8
+ add sp, #0xc
+ pop {r4-r5, pc}
+_0204F4AE:
+ bl FUN_02031190
+ ldrb r1, [r5, #0x1]
+ cmp r1, r0
+ beq _0204F4BA
+_0204F4B8:
+ b _0204F5DA
+_0204F4BA:
+ mov r0, #0x20
+ bl FUN_0204F74C
+ bl FUN_0223D648
+ ldr r3, _0204F600 ; =FUN_0204E2C8
+ mov r1, #0x5
+ mov r2, #0x1
+ bl FUN_0224DCB8
+ add sp, #0xc
+ pop {r4-r5, pc}
+_0204F4D2:
+ ldr r0, _0204F5E0 ; =0x021C5A68
+ mov r2, #0x0
+ ldr r1, [r0, #0x0]
+ ldrb r0, [r5, #0x1]
+ add r0, r1, r0
+ add r0, #0xfa
+ strb r2, [r0, #0x0]
+ ldrb r0, [r5, #0x1]
+ bl FUN_0204F0A8
+ bl FUN_02031190
+ ldrb r1, [r5, #0x1]
+ cmp r1, r0
+ bne _0204F58C
+ ldr r0, _0204F5E0 ; =0x021C5A68
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0x54]
+ bl FUN_020377AC
+ bl FUN_02026CB4
+ add r4, r0, #0x0
+ bl FUN_020269A0
+ add r1, sp, #0x8
+ strb r0, [r1, #0x0]
+ add r0, r4, #0x0
+ bl FUN_020269D4
+ ldr r0, _0204F5E0 ; =0x021C5A68
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0x54]
+ ldr r0, [r0, #0xc]
+ bl FUN_020462AC
+ bl FUN_0205EDF8
+ ldr r0, _0204F5E0 ; =0x021C5A68
+ ldrb r1, [r5, #0x1]
+ ldr r0, [r0, #0x0]
+ lsl r1, r1, #0x2
+ add r2, r0, r1
+ mov r1, #0x29
+ lsl r1, r1, #0x4
+ ldr r1, [r2, r1]
+ cmp r1, #0x0
+ beq _0204F54A
+ ldr r0, [r0, #0x54]
+ bl FUN_0206189C
+ ldr r0, _0204F5E0 ; =0x021C5A68
+ ldr r1, _0204F604 ; =0x0000FFFF
+ ldr r3, [r0, #0x0]
+ ldr r0, _0204F608 ; =0x000002B2
+ ldrh r2, [r3, r0]
+ cmp r2, r1
+ beq _0204F54A
+ add r1, r2, #0x1
+ strh r1, [r3, r0]
+_0204F54A:
+ bl FUN_0204F7E4
+ ldr r0, _0204F60C ; =0x0000062B
+ bl FUN_020054C8
+ add r0, r4, #0x0
+ bl FUN_020269A0
+ add r1, sp, #0x8
+ ldrb r1, [r1, #0x0]
+ cmp r1, r0
+ bne _0204F572
+ bl FUN_0223D648
+ ldr r3, _0204F5EC ; =FUN_0204E2AC
+ mov r1, #0x7
+ mov r2, #0x1
+ bl FUN_0224DCB8
+ b _0204F57A
+_0204F572:
+ mov r0, #0x60
+ add r1, sp, #0x8
+ bl FUN_020311D0
+_0204F57A:
+ mov r0, #0xff
+ str r0, [sp, #0x0]
+ mov r3, #0x0
+ ldr r1, _0204F5E8 ; =0x00000424
+ mov r0, #0x4
+ mov r2, #0x3c
+ str r3, [sp, #0x4]
+ bl FUN_02004DCC
+_0204F58C:
+ ldr r0, _0204F5E0 ; =0x021C5A68
+ ldr r1, [r0, #0x0]
+ ldrb r0, [r5, #0x1]
+ lsl r0, r0, #0x2
+ add r1, r1, r0
+ mov r0, #0x29
+ lsl r0, r0, #0x4
+ ldr r0, [r1, r0]
+ cmp r0, #0x0
+ beq _0204F5D4
+ bl FUN_02031190
+ bl FUN_0202DFA4
+ add r1, r0, #0x0
+ ldr r0, _0204F5E0 ; =0x021C5A68
+ ldr r2, [r0, #0x0]
+ ldrb r0, [r5, #0x1]
+ lsl r0, r0, #0x2
+ add r2, r2, r0
+ mov r0, #0x29
+ lsl r0, r0, #0x4
+ ldr r0, [r2, r0]
+ bl FUN_02023AA4
+ cmp r0, #0x1
+ bne _0204F5D4
+ ldrb r0, [r5, #0x1]
+ bl FUN_0202DFA4
+ add r1, r0, #0x0
+ ldr r0, _0204F5E0 ; =0x021C5A68
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0x54]
+ bl FUN_020618B8
+_0204F5D4:
+ ldrb r0, [r5, #0x1]
+ bl FUN_0204EDEC
+_0204F5DA:
+ add sp, #0xc
+ pop {r4-r5, pc}
+ nop
+_0204F5E0: .word 0x021C5A68
+_0204F5E4: .word FUN_0204E2B4
+_0204F5E8: .word 0x00000424
+_0204F5EC: .word FUN_0204E2AC
+_0204F5F0: .word 0x00000625
+_0204F5F4: .word FUN_0204E2D4
+_0204F5F8: .word 0x00000425
+_0204F5FC: .word FUN_0204E2BC
+_0204F600: .word FUN_0204E2C8
+_0204F604: .word 0x0000FFFF
+_0204F608: .word 0x000002B2
+_0204F60C: .word 0x0000062B
+
+ thumb_func_start FUN_0204F610
+FUN_0204F610: ; 0x0204F610
+ push {r3, lr}
+ cmp r0, #0x0
+ bne _0204F61A
+ mov r0, #0x1
+ pop {r3, pc}
+_0204F61A:
+ cmp r0, #0x1
+ bne _0204F622
+ mov r0, #0x0
+ pop {r3, pc}
+_0204F622:
+ cmp r0, #0x2
+ bne _0204F62A
+ mov r0, #0x3
+ pop {r3, pc}
+_0204F62A:
+ cmp r0, #0x3
+ bne _0204F632
+ mov r0, #0x2
+ pop {r3, pc}
+_0204F632:
+ bl ErrorHandling
+ mov r0, #0x2
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_0204F63C
+FUN_0204F63C: ; 0x0204F63C
+ push {r3-r4}
+ ldr r3, _0204F658 ; =0x021C5A68
+ ldr r2, [r3, #0x0]
+ add r4, r2, r0
+ ldr r2, _0204F65C ; =0x0000011A
+ strb r1, [r4, r2]
+ ldr r1, [r3, #0x0]
+ mov r4, #0xf
+ add r0, r1, r0
+ add r2, #0x20
+ strb r4, [r0, r2]
+ pop {r3-r4}
+ bx lr
+ nop
+_0204F658: .word 0x021C5A68
+_0204F65C: .word 0x0000011A
+
+ thumb_func_start FUN_0204F660
+FUN_0204F660: ; 0x0204F660
+ ldr r1, _0204F670 ; =0x021C5A68
+ mov r2, #0x0
+ ldr r1, [r1, #0x0]
+ add r1, r1, r0
+ ldr r0, _0204F674 ; =0x0000011A
+ strb r2, [r1, r0]
+ bx lr
+ nop
+_0204F670: .word 0x021C5A68
+_0204F674: .word 0x0000011A
+
+ thumb_func_start FUN_0204F678
+FUN_0204F678: ; 0x0204F678
+ push {r3-r4}
+ ldr r3, _0204F694 ; =0x021C5A68
+ ldr r2, [r3, #0x0]
+ add r4, r2, r0
+ ldr r2, _0204F698 ; =0x00000122
+ strb r1, [r4, r2]
+ ldr r1, [r3, #0x0]
+ mov r4, #0xf
+ add r0, r1, r0
+ add r2, #0x18
+ strb r4, [r0, r2]
+ pop {r3-r4}
+ bx lr
+ nop
+_0204F694: .word 0x021C5A68
+_0204F698: .word 0x00000122
+
+ thumb_func_start FUN_0204F69C
+FUN_0204F69C: ; 0x0204F69C
+ ldr r1, _0204F6AC ; =0x021C5A68
+ mov r2, #0x0
+ ldr r1, [r1, #0x0]
+ add r1, r1, r0
+ ldr r0, _0204F6B0 ; =0x00000122
+ strb r2, [r1, r0]
+ bx lr
+ nop
+_0204F6AC: .word 0x021C5A68
+_0204F6B0: .word 0x00000122
+
+ thumb_func_start FUN_0204F6B4
+FUN_0204F6B4: ; 0x0204F6B4
+ ldr r1, _0204F6C0 ; =0x021C5A68
+ ldr r1, [r1, #0x0]
+ add r1, r1, r0
+ ldr r0, _0204F6C4 ; =0x00000142
+ ldrb r0, [r1, r0]
+ bx lr
+ .balign 4
+_0204F6C0: .word 0x021C5A68
+_0204F6C4: .word 0x00000142
+
+ thumb_func_start FUN_0204F6C8
+FUN_0204F6C8: ; 0x0204F6C8
+ ldr r1, _0204F6D4 ; =0x021C5A68
+ ldr r1, [r1, #0x0]
+ add r1, r1, r0
+ ldr r0, _0204F6D8 ; =0x0000013A
+ ldrb r0, [r1, r0]
+ bx lr
+ .balign 4
+_0204F6D4: .word 0x021C5A68
+_0204F6D8: .word 0x0000013A
+
+ thumb_func_start FUN_0204F6DC
+FUN_0204F6DC: ; 0x0204F6DC
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r0, _0204F708 ; =0x021C5A68
+ add r1, r4, #0x0
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0x54]
+ ldr r0, [r0, #0x38]
+ bl FUN_02055304
+ bl FUN_02031190
+ ldr r1, _0204F708 ; =0x021C5A68
+ lsl r0, r0, #0x3
+ ldr r1, [r1, #0x0]
+ add r0, r1, r0
+ add r0, #0xa6
+ strb r4, [r0, #0x0]
+ mov r0, #0x0
+ bl FUN_0204D168
+ pop {r4, pc}
+ nop
+_0204F708: .word 0x021C5A68
+
+ thumb_func_start FUN_0204F70C
+FUN_0204F70C: ; 0x0204F70C
+ push {r4, lr}
+ ldr r3, _0204F728 ; =0x021C5A68
+ lsl r2, r0, #0x3
+ ldr r4, [r3, #0x0]
+ lsl r0, r0, #0x2
+ add r2, r4, r2
+ add r2, #0xa6
+ strb r1, [r2, #0x0]
+ ldr r2, [r3, #0x0]
+ add r0, r2, r0
+ ldr r0, [r0, #0x8]
+ bl FUN_02055304
+ pop {r4, pc}
+ .balign 4
+_0204F728: .word 0x021C5A68
+
+ thumb_func_start FUN_0204F72C
+FUN_0204F72C: ; 0x0204F72C
+ push {r3, lr}
+ ldr r1, _0204F748 ; =0x021C5A68
+ lsl r0, r0, #0x2
+ ldr r1, [r1, #0x0]
+ add r0, r1, r0
+ ldr r0, [r0, #0x8]
+ cmp r0, #0x0
+ beq _0204F742
+ bl FUN_020552F8
+ pop {r3, pc}
+_0204F742:
+ mov r0, #0x0
+ mvn r0, r0
+ pop {r3, pc}
+ .balign 4
+_0204F748: .word 0x021C5A68
+
+ thumb_func_start FUN_0204F74C
+FUN_0204F74C: ; 0x0204F74C
+ push {r3, lr}
+ cmp r0, #0x0
+ beq _0204F75C
+ ldr r1, _0204F770 ; =0x021C5A68
+ ldr r2, [r1, #0x0]
+ ldr r1, [r2, #0x0]
+ orr r0, r1
+ str r0, [r2, #0x0]
+_0204F75C:
+ bl FUN_02037760
+ ldr r0, _0204F770 ; =0x021C5A68
+ mov r2, #0x0
+ ldr r1, [r0, #0x0]
+ mov r0, #0xaf
+ lsl r0, r0, #0x2
+ strb r2, [r1, r0]
+ pop {r3, pc}
+ nop
+_0204F770: .word 0x021C5A68
+
+ thumb_func_start FUN_0204F774
+FUN_0204F774: ; 0x0204F774
+ push {r3-r4, lr}
+ sub sp, #0x4
+ add r4, r0, #0x0
+ beq _0204F788
+ ldr r0, _0204F7D0 ; =0x021C5A68
+ ldr r2, [r0, #0x0]
+ mvn r0, r4
+ ldr r1, [r2, #0x0]
+ and r0, r1
+ str r0, [r2, #0x0]
+_0204F788:
+ ldr r0, _0204F7D0 ; =0x021C5A68
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x10
+ bne _0204F7A0
+ mov r1, #0x1
+ add r0, sp, #0x0
+ strb r1, [r0, #0x0]
+ mov r0, #0x3e
+ add r1, sp, #0x0
+ bl FUN_020311D0
+_0204F7A0:
+ ldr r0, _0204F7D0 ; =0x021C5A68
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ bne _0204F7CC
+ cmp r4, #0x10
+ beq _0204F7BC
+ bl FUN_02037778
+ mov r0, #0x1
+ bl FUN_0204D628
+ add sp, #0x4
+ pop {r3-r4, pc}
+_0204F7BC:
+ bl FUN_02037778
+ ldr r0, _0204F7D0 ; =0x021C5A68
+ mov r2, #0x1
+ ldr r1, [r0, #0x0]
+ mov r0, #0xaf
+ lsl r0, r0, #0x2
+ strb r2, [r1, r0]
+_0204F7CC:
+ add sp, #0x4
+ pop {r3-r4, pc}
+ .balign 4
+_0204F7D0: .word 0x021C5A68
+
+ thumb_func_start FUN_0204F7D4
+FUN_0204F7D4: ; 0x0204F7D4
+ ldr r0, _0204F7E0 ; =0x021C5A68
+ mov r1, #0x0
+ ldr r0, [r0, #0x0]
+ str r1, [r0, #0x0]
+ bx lr
+ nop
+_0204F7E0: .word 0x021C5A68
+
+ thumb_func_start FUN_0204F7E4
+FUN_0204F7E4: ; 0x0204F7E4
+ push {r3, lr}
+ bl FUN_02037760
+ ldr r0, _0204F7F8 ; =0x021C5A68
+ mov r2, #0x0
+ ldr r1, [r0, #0x0]
+ mov r0, #0xaf
+ lsl r0, r0, #0x2
+ strb r2, [r1, r0]
+ pop {r3, pc}
+ .balign 4
+_0204F7F8: .word 0x021C5A68
+
+ thumb_func_start FUN_0204F7FC
+FUN_0204F7FC: ; 0x0204F7FC
+ push {r3, lr}
+ bl FUN_02037778
+ mov r0, #0x1
+ bl FUN_0204D628
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_0204F80C
+FUN_0204F80C: ; 0x0204F80C
+ push {r3, lr}
+ ldr r0, _0204F850 ; =0x021C5A68
+ ldr r2, [r0, #0x0]
+ ldr r0, _0204F854 ; =0x000002BF
+ ldrb r1, [r2, r0]
+ cmp r1, #0x0
+ bne _0204F84C
+ sub r0, r0, #0x1
+ ldrb r0, [r2, r0]
+ cmp r0, #0x0
+ bne _0204F832
+ bl FUN_0204F7FC
+ ldr r0, _0204F850 ; =0x021C5A68
+ mov r2, #0x1
+ ldr r1, [r0, #0x0]
+ ldr r0, _0204F854 ; =0x000002BF
+ strb r2, [r1, r0]
+ pop {r3, pc}
+_0204F832:
+ bl FUN_02031190
+ bl FUN_0223E734
+ cmp r0, #0x0
+ beq _0204F84C
+ bl FUN_0204F7FC
+ ldr r0, _0204F850 ; =0x021C5A68
+ mov r2, #0x1
+ ldr r1, [r0, #0x0]
+ ldr r0, _0204F854 ; =0x000002BF
+ strb r2, [r1, r0]
+_0204F84C:
+ pop {r3, pc}
+ nop
+_0204F850: .word 0x021C5A68
+_0204F854: .word 0x000002BF
+
+ thumb_func_start FUN_0204F858
+FUN_0204F858: ; 0x0204F858
+ push {r3, lr}
+ ldr r0, _0204F884 ; =0x021C5A68
+ ldr r2, [r0, #0x0]
+ ldr r0, _0204F888 ; =0x000002BF
+ ldrb r1, [r2, r0]
+ cmp r1, #0x0
+ bne _0204F880
+ sub r0, r0, #0x1
+ ldrb r0, [r2, r0]
+ cmp r0, #0x0
+ beq _0204F880
+ bl FUN_02031190
+ bl FUN_0223E734
+ cmp r0, #0x0
+ bne _0204F880
+ mov r0, #0x0
+ bl FUN_0204D628
+_0204F880:
+ pop {r3, pc}
+ nop
+_0204F884: .word 0x021C5A68
+_0204F888: .word 0x000002BF
+
+ thumb_func_start FUN_0204F88C
+FUN_0204F88C: ; 0x0204F88C
+ push {r3-r7, lr}
+ sub sp, #0x10
+ ldr r0, _0204F908 ; =0x021C5A68
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ beq _0204F902
+ mov r6, #0x0
+ add r4, r6, #0x0
+ add r5, r6, #0x0
+_0204F89E:
+ ldr r0, _0204F908 ; =0x021C5A68
+ ldr r0, [r0, #0x0]
+ add r0, r0, r4
+ ldr r0, [r0, #0x8]
+ cmp r0, #0x0
+ beq _0204F8F8
+ bl FUN_02031190
+ cmp r6, r0
+ beq _0204F8F8
+ ldr r0, _0204F908 ; =0x021C5A68
+ ldr r0, [r0, #0x0]
+ add r0, r0, r4
+ ldr r0, [r0, #0x8]
+ bl FUN_020553A0
+ ldr r1, _0204F908 ; =0x021C5A68
+ str r0, [sp, #0xc]
+ ldr r1, [r1, #0x0]
+ add r1, r1, r5
+ add r2, r1, #0x0
+ add r2, #0xa2
+ ldrh r2, [r2, #0x0]
+ str r2, [sp, #0x8]
+ add r2, r1, #0x0
+ add r2, #0xa4
+ ldrh r7, [r2, #0x0]
+ mov r2, #0xa6
+ ldrsb r1, [r1, r2]
+ str r1, [sp, #0x4]
+ ldr r1, [sp, #0x8]
+ bl FUN_02058B30
+ ldr r0, [sp, #0xc]
+ add r1, r7, #0x0
+ bl FUN_02058B50
+ ldr r0, [sp, #0x4]
+ ldr r1, [sp, #0x8]
+ str r0, [sp, #0x0]
+ ldr r0, [sp, #0xc]
+ mov r2, #0x0
+ add r3, r7, #0x0
+ bl FUN_02058E28
+_0204F8F8:
+ add r6, r6, #0x1
+ add r4, r4, #0x4
+ add r5, #0x8
+ cmp r6, #0x8
+ blt _0204F89E
+_0204F902:
+ add sp, #0x10
+ pop {r3-r7, pc}
+ nop
+_0204F908: .word 0x021C5A68
+
+ thumb_func_start FUN_0204F90C
+FUN_0204F90C: ; 0x0204F90C
+ push {r4-r5}
+ mov r3, #0xff
+ mov r4, #0x0
+ add r0, r3, #0x0
+ ldr r1, _0204F92C ; =0x021C5A68
+ add r5, r4, #0x0
+ add r0, #0x6b
+_0204F91A:
+ ldr r2, [r1, #0x0]
+ add r4, r4, #0x1
+ add r2, r2, r5
+ add r5, #0x22
+ strh r3, [r2, r0]
+ cmp r4, #0x8
+ blt _0204F91A
+ pop {r4-r5}
+ bx lr
+ .balign 4
+_0204F92C: .word 0x021C5A68
+
+ thumb_func_start FUN_0204F930
+FUN_0204F930: ; 0x0204F930
+ push {r3-r5, lr}
+ ldr r0, _0204F9B0 ; =0x021C5A68
+ mov r2, #0x0
+ ldr r1, [r0, #0x0]
+ ldr r0, _0204F9B4 ; =0x000002B9
+ strb r2, [r1, r0]
+ bl FUN_02031190
+ ldr r1, _0204F9B0 ; =0x021C5A68
+ lsl r0, r0, #0x2
+ ldr r1, [r1, #0x0]
+ add r1, r1, r0
+ mov r0, #0x29
+ lsl r0, r0, #0x4
+ ldr r0, [r1, r0]
+ cmp r0, #0x0
+ beq _0204F96E
+ bl FUN_02031190
+ ldr r1, _0204F9B0 ; =0x021C5A68
+ add r3, r0, #0x0
+ ldr r2, [r1, #0x0]
+ lsl r1, r3, #0x2
+ add r2, r2, r1
+ mov r1, #0x29
+ lsl r1, r1, #0x4
+ ldr r1, [r2, r1]
+ mov r0, #0x5b
+ bl FUN_020311D0
+ pop {r3-r5, pc}
+_0204F96E:
+ mov r0, #0xf
+ bl FUN_02023928
+ add r4, r0, #0x0
+ mov r0, #0x14
+ mov r1, #0xf
+ bl FUN_020219F4
+ add r5, r0, #0x0
+ cmp r4, #0x0
+ bne _0204F988
+ bl ErrorHandling
+_0204F988:
+ cmp r5, #0x0
+ bne _0204F990
+ bl ErrorHandling
+_0204F990:
+ add r0, r4, #0x0
+ add r1, r5, #0x0
+ bl FUN_0202397C
+ mov r0, #0x5b
+ add r1, r4, #0x0
+ bl FUN_020311D0
+ add r0, r5, #0x0
+ bl FUN_02021A20
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ pop {r3-r5, pc}
+ nop
+_0204F9B0: .word 0x021C5A68
+_0204F9B4: .word 0x000002B9
+
+ thumb_func_start FUN_0204F9B8
+FUN_0204F9B8: ; 0x0204F9B8
+ mov r0, #0x20
+ bx lr
+
+ thumb_func_start FUN_0204F9BC
+FUN_0204F9BC: ; 0x0204F9BC
+ push {r3-r7, lr}
+ sub sp, #0x8
+ add r5, r0, #0x0
+ add r0, sp, #0x4
+ strb r5, [r0, #0x0]
+ ldr r0, _0204FA54 ; =0x021C5A68
+ add r6, r2, #0x0
+ ldr r2, [r0, #0x0]
+ cmp r2, #0x0
+ beq _0204FA4C
+ ldr r1, _0204FA58 ; =0x0000014A
+ mov r0, #0x22
+ add r4, r5, #0x0
+ mul r4, r0
+ add r1, r2, r1
+ add r0, r6, #0x0
+ add r1, r1, r4
+ bl FUN_0202393C
+ add r0, r6, #0x0
+ mov r1, #0xf
+ bl FUN_020239A0
+ str r0, [sp, #0x0]
+ bl FUN_02021D3C
+ cmp r0, #0x0
+ beq _0204F9FE
+ ldr r0, _0204FA54 ; =0x021C5A68
+ ldr r0, [r0, #0x0]
+ add r1, r0, r4
+ ldr r0, _0204FA5C ; =0x0000016A
+ strh r5, [r1, r0]
+_0204F9FE:
+ mov r4, #0x0
+ ldr r6, _0204FA54 ; =0x021C5A68
+ ldr r7, _0204FA5C ; =0x0000016A
+ add r5, r4, #0x0
+_0204FA06:
+ ldr r0, [r6, #0x0]
+ add r1, r0, r5
+ ldrh r0, [r1, r7]
+ cmp r0, #0xff
+ beq _0204FA26
+ ldr r0, _0204FA5C ; =0x0000016A
+ strh r4, [r1, r0]
+ mov r0, #0x5c
+ add r1, r0, #0x0
+ ldr r2, [r6, #0x0]
+ add r1, #0xee
+ add r1, r2, r1
+ add r1, r1, r5
+ mov r2, #0x22
+ bl FUN_02030B3C
+_0204FA26:
+ add r4, r4, #0x1
+ add r5, #0x22
+ cmp r4, #0x8
+ blt _0204FA06
+ mov r0, #0x5d
+ add r1, sp, #0x4
+ mov r2, #0x1
+ bl FUN_02030BC4
+ ldr r0, [sp, #0x0]
+ bl FUN_02021A20
+ ldr r0, _0204FA54 ; =0x021C5A68
+ mov r2, #0x1
+ ldr r1, [r0, #0x0]
+ ldr r0, _0204FA60 ; =0x000002C2
+ add sp, #0x8
+ strb r2, [r1, r0]
+ pop {r3-r7, pc}
+_0204FA4C:
+ bl ErrorHandling
+ add sp, #0x8
+ pop {r3-r7, pc}
+ .balign 4
+_0204FA54: .word 0x021C5A68
+_0204FA58: .word 0x0000014A
+_0204FA5C: .word 0x0000016A
+_0204FA60: .word 0x000002C2
+
+ thumb_func_start FUN_0204FA64
+FUN_0204FA64: ; 0x0204FA64
+ ldr r0, _0204FA70 ; =0x021C5A68
+ ldr r1, [r0, #0x0]
+ ldr r0, _0204FA74 ; =0x0000025A
+ add r0, r1, r0
+ bx lr
+ nop
+_0204FA70: .word 0x021C5A68
+_0204FA74: .word 0x0000025A
+
+ thumb_func_start FUN_0204FA78
+FUN_0204FA78: ; 0x0204FA78
+ push {r4-r6, lr}
+ ldr r0, _0204FAC8 ; =0x021C5A68
+ add r6, r2, #0x0
+ ldr r1, [r0, #0x0]
+ cmp r1, #0x0
+ beq _0204FAC4
+ ldrh r5, [r6, #0x20]
+ lsl r0, r5, #0x2
+ add r1, r1, r0
+ mov r0, #0x29
+ lsl r0, r0, #0x4
+ ldr r0, [r1, r0]
+ cmp r0, #0x0
+ beq _0204FA98
+ bl FUN_02016A18
+_0204FA98:
+ mov r0, #0xf
+ lsl r4, r5, #0x2
+ bl FUN_02023928
+ ldr r2, _0204FAC8 ; =0x021C5A68
+ ldr r1, [r2, #0x0]
+ add r3, r1, r4
+ mov r1, #0x29
+ lsl r1, r1, #0x4
+ str r0, [r3, r1]
+ ldr r2, [r2, #0x0]
+ add r0, r6, #0x0
+ add r2, r2, r4
+ ldr r1, [r2, r1]
+ bl FUN_0202393C
+ ldr r0, _0204FAC8 ; =0x021C5A68
+ mov r1, #0x1
+ ldr r0, [r0, #0x0]
+ add r0, r0, r5
+ add r0, #0xfa
+ strb r1, [r0, #0x0]
+_0204FAC4:
+ pop {r4-r6, pc}
+ nop
+_0204FAC8: .word 0x021C5A68
+
+ thumb_func_start FUN_0204FACC
+FUN_0204FACC: ; 0x0204FACC
+ mov r0, #0x22
+ bx lr
+
+ thumb_func_start FUN_0204FAD0
+FUN_0204FAD0: ; 0x0204FAD0
+ push {r4, lr}
+ add r4, r2, #0x0
+ bl FUN_02031190
+ ldrb r1, [r4, #0x0]
+ cmp r1, r0
+ bne _0204FAE8
+ ldr r0, _0204FAF4 ; =0x021C5A68
+ mov r2, #0x1
+ ldr r1, [r0, #0x0]
+ ldr r0, _0204FAF8 ; =0x000002B9
+ strb r2, [r1, r0]
+_0204FAE8:
+ ldr r0, _0204FAF4 ; =0x021C5A68
+ mov r2, #0x0
+ ldr r1, [r0, #0x0]
+ ldr r0, _0204FAFC ; =0x000002C2
+ strb r2, [r1, r0]
+ pop {r4, pc}
+ .balign 4
+_0204FAF4: .word 0x021C5A68
+_0204FAF8: .word 0x000002B9
+_0204FAFC: .word 0x000002C2
+
+ thumb_func_start FUN_0204FB00
+FUN_0204FB00: ; 0x0204FB00
+ ldr r0, _0204FB0C ; =0x021C5A68
+ ldr r1, [r0, #0x0]
+ ldr r0, _0204FB10 ; =0x000002B9
+ ldrb r0, [r1, r0]
+ bx lr
+ nop
+_0204FB0C: .word 0x021C5A68
+_0204FB10: .word 0x000002B9
+
+ thumb_func_start FUN_0204FB14
+FUN_0204FB14: ; 0x0204FB14
+ ldr r0, _0204FB24 ; =0x021C5A68
+ mov r2, #0x8
+ ldr r1, [r0, #0x0]
+ mov r0, #0xb
+ lsl r0, r0, #0x6
+ strb r2, [r1, r0]
+ bx lr
+ nop
+_0204FB24: .word 0x021C5A68
+
+ thumb_func_start FUN_0204FB28
+FUN_0204FB28: ; 0x0204FB28
+ push {r3-r5, lr}
+ mov r4, #0x0
+ bl FUN_02031190
+ ldr r2, _0204FB9C ; =0x021C5A68
+ lsl r1, r0, #0x2
+ ldr r3, [r2, #0x0]
+ add r5, r3, r1
+ mov r1, #0x29
+ lsl r1, r1, #0x4
+ ldr r3, [r5, r1]
+ cmp r3, #0x0
+ beq _0204FB60
+ add r4, r3, #0x0
+ mov r3, #0x0
+ str r3, [r5, r1]
+ ldr r1, [r2, #0x0]
+ add r1, r1, r0
+ add r1, #0xfa
+ strb r3, [r1, #0x0]
+ ldr r3, [r2, #0x0]
+ mov r2, #0x22
+ mul r2, r0
+ mov r1, #0xff
+ add r0, r1, #0x0
+ add r2, r3, r2
+ add r0, #0x6b
+ strh r1, [r2, r0]
+_0204FB60:
+ mov r5, #0x0
+_0204FB62:
+ add r0, r5, #0x0
+ bl FUN_0204ED9C
+ add r5, r5, #0x1
+ cmp r5, #0x8
+ blt _0204FB62
+ cmp r4, #0x0
+ beq _0204FB9A
+ ldr r1, _0204FB9C ; =0x021C5A68
+ mov r0, #0x29
+ ldr r2, [r1, #0x0]
+ lsl r0, r0, #0x4
+ str r4, [r2, r0]
+ ldr r0, [r1, #0x0]
+ mov r2, #0x1
+ add r0, #0xfa
+ strb r2, [r0, #0x0]
+ ldr r2, [r1, #0x0]
+ ldr r1, _0204FBA0 ; =0x0000014A
+ add r0, r4, #0x0
+ add r1, r2, r1
+ bl FUN_0202393C
+ ldr r0, _0204FB9C ; =0x021C5A68
+ mov r2, #0x0
+ ldr r1, [r0, #0x0]
+ ldr r0, _0204FBA4 ; =0x0000016A
+ strh r2, [r1, r0]
+_0204FB9A:
+ pop {r3-r5, pc}
+ .balign 4
+_0204FB9C: .word 0x021C5A68
+_0204FBA0: .word 0x0000014A
+_0204FBA4: .word 0x0000016A
+
+ thumb_func_start FUN_0204FBA8
+FUN_0204FBA8: ; 0x0204FBA8
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_0204FBAC
+FUN_0204FBAC: ; 0x0204FBAC
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_0204FBB0
+FUN_0204FBB0: ; 0x0204FBB0
+ push {r4, lr}
+ ldr r1, _0204FC08 ; =0x021C5A6C
+ add r4, r0, #0x0
+ ldr r1, [r1, #0x0]
+ cmp r1, #0x0
+ bne _0204FC04
+ bl FUN_0208881C
+ mov r0, #0xf
+ mov r1, #0x48
+ bl FUN_02016998
+ ldr r1, _0204FC08 ; =0x021C5A6C
+ mov r2, #0x48
+ str r0, [r1, #0x0]
+ mov r1, #0x0
+ blx MI_CpuFill8
+ ldr r0, _0204FC08 ; =0x021C5A6C
+ mov r1, #0x32
+ ldr r0, [r0, #0x0]
+ mov r2, #0xa
+ strh r1, [r0, #0x3c]
+ ldr r0, _0204FC0C ; =FUN_0205006C
+ mov r1, #0x0
+ bl FUN_0200CA44
+ ldr r1, _0204FC08 ; =0x021C5A6C
+ ldr r2, [r1, #0x0]
+ str r0, [r2, #0x38]
+ ldr r0, [r1, #0x0]
+ mov r2, #0x0
+ str r4, [r0, #0x18]
+ ldr r0, [r1, #0x0]
+ str r2, [r0, #0x44]
+ bl FUN_0204FBA8
+ ldr r0, _0204FC08 ; =0x021C5A6C
+ ldr r0, [r0, #0x0]
+ add r0, #0x1c
+ bl FUN_020312BC
+_0204FC04:
+ pop {r4, pc}
+ nop
+_0204FC08: .word 0x021C5A6C
+_0204FC0C: .word FUN_0205006C
+
+ thumb_func_start FUN_0204FC10
+FUN_0204FC10: ; 0x0204FC10
+ push {r4-r6, lr}
+ ldr r0, _0204FC58 ; =0x021C5A6C
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ beq _0204FC56
+ ldr r0, [r0, #0x38]
+ bl FUN_0200CAB4
+ mov r4, #0x0
+ ldr r6, _0204FC58 ; =0x021C5A6C
+ add r5, r4, #0x0
+_0204FC26:
+ ldr r0, [r6, #0x0]
+ ldr r0, [r0, r5]
+ cmp r0, #0x0
+ beq _0204FC32
+ bl FUN_02016A18
+_0204FC32:
+ add r4, r4, #0x1
+ add r5, r5, #0x4
+ cmp r4, #0x4
+ blt _0204FC26
+ ldr r0, _0204FC58 ; =0x021C5A6C
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0x44]
+ cmp r0, #0x0
+ beq _0204FC48
+ bl FUN_02016A18
+_0204FC48:
+ ldr r0, _0204FC58 ; =0x021C5A6C
+ ldr r0, [r0, #0x0]
+ bl FUN_02016A18
+ ldr r0, _0204FC58 ; =0x021C5A6C
+ mov r1, #0x0
+ str r1, [r0, #0x0]
+_0204FC56:
+ pop {r4-r6, pc}
+ .balign 4
+_0204FC58: .word 0x021C5A6C
+
+ thumb_func_start FUN_0204FC5C
+FUN_0204FC5C: ; 0x0204FC5C
+ push {r4, lr}
+ ldr r1, _0204FC9C ; =0x021C5A6C
+ add r4, r0, #0x0
+ ldr r1, [r1, #0x0]
+ cmp r1, #0x0
+ bne _0204FC9A
+ bl FUN_020377AC
+ bl FUN_02031824
+ add r0, r4, #0x0
+ bl FUN_0204FBB0
+ mov r2, #0x3a
+ mov r0, #0x3
+ mov r1, #0x21
+ lsl r2, r2, #0xa
+ bl FUN_0201681C
+ ldr r0, _0204FC9C ; =0x021C5A6C
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0x18]
+ ldr r0, [r0, #0xc]
+ bl FUN_020462AC
+ bl FUN_0205F194
+ cmp r0, #0x0
+ bne _0204FC9A
+ bl FUN_02031924
+_0204FC9A:
+ pop {r4, pc}
+ .balign 4
+_0204FC9C: .word 0x021C5A6C
+
+ thumb_func_start FUN_0204FCA0
+FUN_0204FCA0: ; 0x0204FCA0
+ push {r3, lr}
+ ldr r0, _0204FCD0 ; =0x021C5A6C
+ mov r2, #0x1
+ ldr r1, [r0, #0x0]
+ add r1, #0x41
+ strb r2, [r1, #0x0]
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0x18]
+ ldr r0, [r0, #0xc]
+ bl FUN_02029FC8
+ mov r1, #0x24
+ bl FUN_0202A170
+ ldr r0, _0204FCD0 ; =0x021C5A6C
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0x18]
+ bl FUN_0223E060
+ ldr r0, _0204FCD4 ; =FUN_020500A4
+ mov r1, #0x0
+ bl FUN_02050094
+ pop {r3, pc}
+ .balign 4
+_0204FCD0: .word 0x021C5A6C
+_0204FCD4: .word FUN_020500A4
+
+ thumb_func_start FUN_0204FCD8
+FUN_0204FCD8: ; 0x0204FCD8
+ push {r3, lr}
+ ldr r0, _0204FCEC ; =0x021C5A6C
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ beq _0204FCEA
+ ldr r0, _0204FCF0 ; =FUN_02050D54
+ mov r1, #0x3
+ bl FUN_02050094
+_0204FCEA:
+ pop {r3, pc}
+ .balign 4
+_0204FCEC: .word 0x021C5A6C
+_0204FCF0: .word FUN_02050D54
+
+ thumb_func_start FUN_0204FCF4
+FUN_0204FCF4: ; 0x0204FCF4
+ push {r3, lr}
+ bl FUN_02031914
+ ldr r0, _0204FD04 ; =FUN_020504D8
+ mov r1, #0x0
+ bl FUN_02050094
+ pop {r3, pc}
+ .balign 4
+_0204FD04: .word FUN_020504D8
+
+ thumb_func_start FUN_0204FD08
+FUN_0204FD08: ; 0x0204FD08
+ push {r3, lr}
+ bl FUN_0202EDD8
+ cmp r0, #0x0
+ bne _0204FD1E
+ bl FUN_02245F1C
+ ldr r0, _0204FD20 ; =FUN_020500A4
+ mov r1, #0x0
+ bl FUN_02050094
+_0204FD1E:
+ pop {r3, pc}
+ .balign 4
+_0204FD20: .word FUN_020500A4
+
+ thumb_func_start FUN_0204FD24
+FUN_0204FD24: ; 0x0204FD24
+ push {r3, lr}
+ bl FUN_02031934
+ ldr r0, _0204FD34 ; =FUN_0204FD08
+ mov r1, #0x0
+ bl FUN_02050094
+ pop {r3, pc}
+ .balign 4
+_0204FD34: .word FUN_0204FD08
+
+ thumb_func_start FUN_0204FD38
+FUN_0204FD38: ; 0x0204FD38
+ push {r3-r7, lr}
+ sub sp, #0x10
+ ldr r0, _0204FDBC ; =0x021C5A6C
+ add r2, sp, #0x0
+ ldr r0, [r0, #0x0]
+ ldr r3, _0204FDC0 ; =0x020F5838
+ ldr r5, [r0, #0x34]
+ add r6, r2, #0x0
+ ldmia r3!, {r0-r1}
+ stmia r2!, {r0-r1}
+ ldmia r3!, {r0-r1}
+ stmia r2!, {r0-r1}
+ ldr r0, _0204FDC4 ; =FUN_020502AC
+ ldr r4, _0204FDC8 ; =FUN_02050548
+ ldr r7, _0204FDCC ; =FUN_02050168
+ cmp r5, r0
+ bne _0204FD68
+ ldr r0, _0204FDD0 ; =FUN_0205031C
+ mov r1, #0x0
+ bl FUN_02050094
+ add sp, #0x10
+ mov r0, #0x1
+ pop {r3-r7, pc}
+_0204FD68:
+ cmp r4, r5
+ bne _0204FD7A
+ ldr r0, _0204FDD4 ; =FUN_02050578
+ mov r1, #0x0
+ bl FUN_02050094
+ add sp, #0x10
+ mov r0, #0x1
+ pop {r3-r7, pc}
+_0204FD7A:
+ cmp r7, r5
+ bne _0204FD8C
+ ldr r0, _0204FDD8 ; =FUN_020505E0
+ mov r1, #0x0
+ bl FUN_02050094
+ add sp, #0x10
+ mov r0, #0x1
+ pop {r3-r7, pc}
+_0204FD8C:
+ ldr r0, _0204FDDC ; =FUN_020504D0
+ cmp r0, r5
+ bne _0204FDA0
+ ldr r0, _0204FDE0 ; =FUN_02050610
+ mov r1, #0x0
+ bl FUN_02050094
+ add sp, #0x10
+ mov r0, #0x1
+ pop {r3-r7, pc}
+_0204FDA0:
+ mov r1, #0x0
+_0204FDA2:
+ ldr r0, [r6, #0x0]
+ cmp r5, r0
+ bne _0204FDAE
+ add sp, #0x10
+ mov r0, #0x1
+ pop {r3-r7, pc}
+_0204FDAE:
+ add r1, r1, #0x1
+ add r6, r6, #0x4
+ cmp r1, #0x4
+ blo _0204FDA2
+ mov r0, #0x0
+ add sp, #0x10
+ pop {r3-r7, pc}
+ .balign 4
+_0204FDBC: .word 0x021C5A6C
+_0204FDC0: .word 0x020F5838
+_0204FDC4: .word FUN_020502AC
+_0204FDC8: .word FUN_02050548
+_0204FDCC: .word FUN_02050168
+_0204FDD0: .word FUN_0205031C
+_0204FDD4: .word FUN_02050578
+_0204FDD8: .word FUN_020505E0
+_0204FDDC: .word FUN_020504D0
+_0204FDE0: .word FUN_02050610
+
+ thumb_func_start FUN_0204FDE4
+FUN_0204FDE4: ; 0x0204FDE4
+ push {r4, lr}
+ ldr r0, _0204FE38 ; =0x021C5A6C
+ ldr r3, _0204FE3C ; =FUN_0205058C
+ ldr r0, [r0, #0x0]
+ ldr r2, _0204FE40 ; =FUN_020505F4
+ ldr r4, [r0, #0x34]
+ ldr r0, _0204FE44 ; =FUN_02050330
+ ldr r1, _0204FE48 ; =FUN_02050624
+ cmp r4, r0
+ bne _0204FE04
+ ldr r0, _0204FE4C ; =FUN_02050338
+ mov r1, #0x0
+ bl FUN_02050094
+ mov r0, #0x1
+ pop {r4, pc}
+_0204FE04:
+ cmp r3, r4
+ bne _0204FE14
+ ldr r0, _0204FE50 ; =FUN_02050594
+ mov r1, #0x0
+ bl FUN_02050094
+ mov r0, #0x1
+ pop {r4, pc}
+_0204FE14:
+ cmp r2, r4
+ bne _0204FE24
+ ldr r0, _0204FE54 ; =FUN_020505F8
+ mov r1, #0x0
+ bl FUN_02050094
+ mov r0, #0x1
+ pop {r4, pc}
+_0204FE24:
+ cmp r1, r4
+ bne _0204FE34
+ ldr r0, _0204FE58 ; =FUN_02050628
+ mov r1, #0x0
+ bl FUN_02050094
+ mov r0, #0x1
+ pop {r4, pc}
+_0204FE34:
+ mov r0, #0x0
+ pop {r4, pc}
+ .balign 4
+_0204FE38: .word 0x021C5A6C
+_0204FE3C: .word FUN_0205058C
+_0204FE40: .word FUN_020505F4
+_0204FE44: .word FUN_02050330
+_0204FE48: .word FUN_02050624
+_0204FE4C: .word FUN_02050338
+_0204FE50: .word FUN_02050594
+_0204FE54: .word FUN_020505F8
+_0204FE58: .word FUN_02050628
+
+ thumb_func_start FUN_0204FE5C
+FUN_0204FE5C: ; 0x0204FE5C
+ push {r3-r4}
+ sub sp, #0x38
+ ldr r4, _0204FEA8 ; =0x020F5848
+ add r3, sp, #0x0
+ mov r2, #0x7
+_0204FE66:
+ ldmia r4!, {r0-r1}
+ stmia r3!, {r0-r1}
+ sub r2, r2, #0x1
+ bne _0204FE66
+ ldr r0, _0204FEAC ; =0x021C5A6C
+ ldr r0, [r0, #0x0]
+ ldr r1, [r0, #0x34]
+ cmp r0, #0x0
+ bne _0204FE80
+ add sp, #0x38
+ mov r0, #0x0
+ pop {r3-r4}
+ bx lr
+_0204FE80:
+ ldr r0, [sp, #0x0]
+ cmp r0, #0x0
+ beq _0204FE9E
+ add r2, sp, #0x0
+_0204FE88:
+ ldr r0, [r2, #0x0]
+ cmp r1, r0
+ bne _0204FE96
+ add sp, #0x38
+ mov r0, #0x1
+ pop {r3-r4}
+ bx lr
+_0204FE96:
+ add r2, r2, #0x4
+ ldr r0, [r2, #0x0]
+ cmp r0, #0x0
+ bne _0204FE88
+_0204FE9E:
+ mov r0, #0x0
+ add sp, #0x38
+ pop {r3-r4}
+ bx lr
+ nop
+_0204FEA8: .word 0x020F5848
+_0204FEAC: .word 0x021C5A6C
+
+ thumb_func_start FUN_0204FEB0
+FUN_0204FEB0: ; 0x0204FEB0
+ push {r3-r6, lr}
+ sub sp, #0x4
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ add r6, r2, #0x0
+ bl FUN_02030F40
+ cmp r0, #0x0
+ bne _0204FEE8
+ add r0, r5, #0x0
+ bl FUN_020377AC
+ mov r1, #0x0
+ add r3, r5, #0x0
+ str r1, [sp, #0x0]
+ add r3, #0xac
+ ldr r3, [r3, #0x0]
+ add r1, r4, #0x0
+ add r2, r6, #0x0
+ bl FUN_02031948
+ add r0, r5, #0x0
+ bl FUN_0204FBB0
+ ldr r0, _0204FEEC ; =FUN_02050640
+ mov r1, #0x0
+ bl FUN_02050094
+_0204FEE8:
+ add sp, #0x4
+ pop {r3-r6, pc}
+ .balign 4
+_0204FEEC: .word FUN_02050640
+
+ thumb_func_start FUN_0204FEF0
+FUN_0204FEF0: ; 0x0204FEF0
+ push {r3-r6, lr}
+ sub sp, #0x4
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ add r6, r2, #0x0
+ bl FUN_02030F40
+ cmp r0, #0x0
+ bne _0204FF28
+ add r0, r5, #0x0
+ bl FUN_020377AC
+ mov r1, #0x0
+ add r3, r5, #0x0
+ str r1, [sp, #0x0]
+ add r3, #0xac
+ ldr r3, [r3, #0x0]
+ add r1, r4, #0x0
+ add r2, r6, #0x0
+ bl FUN_02031990
+ add r0, r5, #0x0
+ bl FUN_0204FBB0
+ ldr r0, _0204FF2C ; =FUN_02050668
+ mov r1, #0x0
+ bl FUN_02050094
+_0204FF28:
+ add sp, #0x4
+ pop {r3-r6, pc}
+ .balign 4
+_0204FF2C: .word FUN_02050668
+
+ thumb_func_start FUN_0204FF30
+FUN_0204FF30: ; 0x0204FF30
+ ldr r1, _0204FF40 ; =0x021C5A6C
+ ldr r3, _0204FF44 ; =FUN_02050094
+ ldr r1, [r1, #0x0]
+ add r1, #0x3e
+ strb r0, [r1, #0x0]
+ ldr r0, _0204FF48 ; =FUN_02050688
+ mov r1, #0x0
+ bx r3
+ .balign 4
+_0204FF40: .word 0x021C5A6C
+_0204FF44: .word FUN_02050094
+_0204FF48: .word FUN_02050688
+
+ thumb_func_start FUN_0204FF4C
+FUN_0204FF4C: ; 0x0204FF4C
+ ldr r3, _0204FF54 ; =FUN_02050094
+ ldr r0, _0204FF58 ; =FUN_02050BBC
+ mov r1, #0x0
+ bx r3
+ .balign 4
+_0204FF54: .word FUN_02050094
+_0204FF58: .word FUN_02050BBC
+
+ thumb_func_start FUN_0204FF5C
+FUN_0204FF5C: ; 0x0204FF5C
+ push {r4-r7, lr}
+ sub sp, #0xc
+ add r4, r0, #0x0
+ mov r0, #0x0
+ add r1, r0, #0x0
+ bl FUN_0200E3BC
+ mov r0, #0x1
+ mov r1, #0x0
+ bl FUN_0200E3BC
+ mov r0, #0x1
+ add r1, r0, #0x0
+ bl FUN_020334E8
+ bl FUN_02031810
+ cmp r0, #0x0
+ beq _02050014
+ ldr r0, _02050018 ; =0x021C5A6C
+ ldr r1, [r0, #0x0]
+ cmp r1, #0x0
+ bne _0204FF9C
+ add r0, r4, #0x0
+ bl FUN_0204FBB0
+ ldr r0, _02050018 ; =0x021C5A6C
+ mov r1, #0x1
+ ldr r0, [r0, #0x0]
+ add r0, #0x42
+ strb r1, [r0, #0x0]
+ b _0204FFA2
+_0204FF9C:
+ mov r0, #0x0
+ add r1, #0x42
+ strb r0, [r1, #0x0]
+_0204FFA2:
+ ldr r0, _02050018 ; =0x021C5A6C
+ mov r1, #0x0
+ ldr r0, [r0, #0x0]
+ add r0, #0x43
+ strb r1, [r0, #0x0]
+ bl FUN_02031190
+ str r0, [sp, #0x8]
+ bl FUN_02031190
+ bl FUN_0202DFA4
+ mov r4, #0x0
+ bl FUN_02030F20
+ cmp r0, #0x0
+ ble _0204FFEA
+ ldr r6, _02050018 ; =0x021C5A6C
+ add r5, r4, #0x0
+ add r7, r4, #0x0
+_0204FFCA:
+ ldr r0, [r6, #0x0]
+ ldr r0, [r0, r5]
+ cmp r0, #0x0
+ bne _0204FFDE
+ ldr r1, _0205001C ; =0x0000066C
+ add r0, r7, #0x0
+ bl FUN_02016998
+ ldr r1, [r6, #0x0]
+ str r0, [r1, r5]
+_0204FFDE:
+ add r5, r5, #0x4
+ add r4, r4, #0x1
+ bl FUN_02030F20
+ cmp r4, r0
+ blt _0204FFCA
+_0204FFEA:
+ ldr r0, _02050018 ; =0x021C5A6C
+ mov r3, #0xff
+ ldr r1, [r0, #0x0]
+ ldr r0, [r1, #0x18]
+ str r0, [sp, #0x0]
+ ldr r0, [sp, #0x8]
+ lsl r0, r0, #0x2
+ ldr r0, [r1, r0]
+ str r0, [sp, #0x4]
+ mov r0, #0x0
+ add r1, r0, #0x0
+ add r2, r0, #0x0
+ bl FUN_02064E90
+ mov r0, #0x5f
+ bl FUN_02031588
+ ldr r0, _02050020 ; =FUN_02050C14
+ mov r1, #0x0
+ bl FUN_02050094
+_02050014:
+ add sp, #0xc
+ pop {r4-r7, pc}
+ .balign 4
+_02050018: .word 0x021C5A6C
+_0205001C: .word 0x0000066C
+_02050020: .word FUN_02050C14
+
+ thumb_func_start FUN_02050024
+FUN_02050024: ; 0x02050024
+ push {r3, lr}
+ ldr r0, _02050040 ; =0x021C5A6C
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ beq _0205003E
+ mov r0, #0x0
+ add r1, r0, #0x0
+ bl FUN_020334E8
+ ldr r0, _02050044 ; =FUN_02050DB0
+ mov r1, #0x5
+ bl FUN_02050094
+_0205003E:
+ pop {r3, pc}
+ .balign 4
+_02050040: .word 0x021C5A6C
+_02050044: .word FUN_02050DB0
+
+ thumb_func_start FUN_02050048
+FUN_02050048: ; 0x02050048
+ push {r3, lr}
+ ldr r0, _02050064 ; =0x021C5A6C
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ beq _02050060
+ mov r0, #0x5b
+ bl FUN_02031588
+ ldr r0, _02050068 ; =FUN_02050D88
+ mov r1, #0x5
+ bl FUN_02050094
+_02050060:
+ pop {r3, pc}
+ nop
+_02050064: .word 0x021C5A6C
+_02050068: .word FUN_02050D88
+
+ thumb_func_start FUN_0205006C
+FUN_0205006C: ; 0x0205006C
+ push {r3, lr}
+ ldr r1, _02050090 ; =0x021C5A6C
+ ldr r2, [r1, #0x0]
+ cmp r2, #0x0
+ bne _0205007C
+ bl FUN_0200CAB4
+ pop {r3, pc}
+_0205007C:
+ ldr r1, [r2, #0x34]
+ cmp r1, #0x0
+ beq _0205008C
+ add r2, #0x40
+ ldrb r0, [r2, #0x0]
+ cmp r0, #0x0
+ bne _0205008C
+ blx r1
+_0205008C:
+ pop {r3, pc}
+ nop
+_02050090: .word 0x021C5A6C
+
+ thumb_func_start FUN_02050094
+FUN_02050094: ; 0x02050094
+ ldr r2, _020500A0 ; =0x021C5A6C
+ ldr r3, [r2, #0x0]
+ str r0, [r3, #0x34]
+ ldr r0, [r2, #0x0]
+ strh r1, [r0, #0x3c]
+ bx lr
+ .balign 4
+_020500A0: .word 0x021C5A6C
+
+ thumb_func_start FUN_020500A4
+FUN_020500A4: ; 0x020500A4
+ push {r3, lr}
+ ldr r0, _02050108 ; =0x021C5A6C
+ ldr r1, [r0, #0x0]
+ ldrh r0, [r1, #0x3c]
+ cmp r0, #0x0
+ beq _020500B6
+ sub r0, r0, #0x1
+ strh r0, [r1, #0x3c]
+ pop {r3, pc}
+_020500B6:
+ bl FUN_02030F40
+ cmp r0, #0x0
+ beq _02050104
+ ldr r0, _02050108 ; =0x021C5A6C
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0x18]
+ bl FUN_0223E1E0
+ bl FUN_0202DBE0
+ mov r0, #0x0
+ bl FUN_0204D168
+ bl FUN_0223EF7C
+ bl FUN_02245FA0
+ ldr r0, _02050108 ; =0x021C5A6C
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0x18]
+ ldr r0, [r0, #0xc]
+ bl FUN_020462AC
+ bl FUN_0205F194
+ cmp r0, #0x0
+ bne _020500F8
+ ldr r0, _0205010C ; =FUN_02050114
+ mov r1, #0x0
+ bl FUN_02050094
+ pop {r3, pc}
+_020500F8:
+ bl FUN_0204F80C
+ ldr r0, _02050110 ; =FUN_02050144
+ mov r1, #0x18
+ bl FUN_02050094
+_02050104:
+ pop {r3, pc}
+ nop
+_02050108: .word 0x021C5A6C
+_0205010C: .word FUN_02050114
+_02050110: .word FUN_02050144
+
+ thumb_func_start FUN_02050114
+FUN_02050114: ; 0x02050114
+ push {r3, lr}
+ ldr r0, _0205013C ; =0x021C5A6C
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0x18]
+ ldr r0, [r0, #0xc]
+ bl FUN_020462AC
+ bl FUN_0205F194
+ cmp r0, #0x0
+ beq _0205013A
+ bl FUN_02031880
+ bl FUN_0204F80C
+ ldr r0, _02050140 ; =FUN_02050168
+ mov r1, #0x18
+ bl FUN_02050094
+_0205013A:
+ pop {r3, pc}
+ .balign 4
+_0205013C: .word 0x021C5A6C
+_02050140: .word FUN_02050168
+
+ thumb_func_start FUN_02050144
+FUN_02050144: ; 0x02050144
+ push {r3, lr}
+ ldr r0, _02050160 ; =0x021C5A6C
+ ldr r1, [r0, #0x0]
+ ldrh r0, [r1, #0x3c]
+ cmp r0, #0x0
+ beq _02050156
+ sub r0, r0, #0x1
+ strh r0, [r1, #0x3c]
+ pop {r3, pc}
+_02050156:
+ ldr r0, _02050164 ; =FUN_02050168
+ mov r1, #0x18
+ bl FUN_02050094
+ pop {r3, pc}
+ .balign 4
+_02050160: .word 0x021C5A6C
+_02050164: .word FUN_02050168
+
+ thumb_func_start FUN_02050168
+FUN_02050168: ; 0x02050168
+ push {r3, lr}
+ bl FUN_0223DFB4
+ bl FUN_0204F80C
+ bl FUN_020318C4
+ cmp r0, #0x0
+ beq _02050198
+ bl FUN_02031190
+ cmp r0, #0x0
+ bne _02050190
+ bl FUN_02245324
+ ldr r0, _0205019C ; =FUN_0205024C
+ mov r1, #0x3c
+ bl FUN_02050094
+ pop {r3, pc}
+_02050190:
+ ldr r0, _020501A0 ; =FUN_020501A4
+ mov r1, #0x78
+ bl FUN_02050094
+_02050198:
+ pop {r3, pc}
+ nop
+_0205019C: .word FUN_0205024C
+_020501A0: .word FUN_020501A4
+
+ thumb_func_start FUN_020501A4
+FUN_020501A4: ; 0x020501A4
+ push {r3, lr}
+ ldr r0, _02050240 ; =0x021C5A6C
+ ldr r1, [r0, #0x0]
+ ldrh r0, [r1, #0x3c]
+ cmp r0, #0x0
+ beq _020501B4
+ sub r0, r0, #0x1
+ strh r0, [r1, #0x3c]
+_020501B4:
+ bl FUN_0202EE44
+ cmp r0, #0x0
+ bne _020501CE
+ bl FUN_020311F0
+ cmp r0, #0x0
+ bne _020501CE
+ ldr r0, _02050240 ; =0x021C5A6C
+ ldr r0, [r0, #0x0]
+ ldrh r0, [r0, #0x3c]
+ cmp r0, #0x0
+ bne _020501DC
+_020501CE:
+ bl FUN_02031880
+ ldr r0, _02050244 ; =FUN_020504A4
+ mov r1, #0x0
+ bl FUN_02050094
+ pop {r3, pc}
+_020501DC:
+ bl FUN_02031190
+ bl FUN_02030E7C
+ cmp r0, #0x0
+ beq _0205023C
+ ldr r0, _02050240 ; =0x021C5A6C
+ ldr r1, [r0, #0x0]
+ ldrh r0, [r1, #0x3c]
+ cmp r0, #0x0
+ beq _02050202
+ sub r0, r0, #0x1
+ strh r0, [r1, #0x3c]
+ bl FUN_02030C58
+ mov r1, #0x42
+ lsl r1, r1, #0x2
+ cmp r0, r1
+ bne _0205023C
+_02050202:
+ bl FUN_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
+ mov r0, #0x0
+ mov r1, #0x1
+ bl FUN_0223FCE8
+ mov r0, #0x0
+ bl FUN_0202DE78
+ mov r0, #0x0
+ add r1, r0, #0x0
+ add r2, r0, #0x0
+ bl FUN_0204D43C
+ bl FUN_0204F858
+ ldr r0, _02050248 ; =FUN_02050350
+ mov r1, #0xa
+ bl FUN_02050094
+_0205023C:
+ pop {r3, pc}
+ nop
+_02050240: .word 0x021C5A6C
+_02050244: .word FUN_020504A4
+_02050248: .word FUN_02050350
+
+ thumb_func_start FUN_0205024C
+FUN_0205024C: ; 0x0205024C
+ push {r3, lr}
+ bl FUN_0223DFB4
+ ldr r0, _020502A0 ; =0x021C5A6C
+ ldr r1, [r0, #0x0]
+ ldrh r0, [r1, #0x3c]
+ cmp r0, #0x0
+ beq _02050260
+ sub r0, r0, #0x1
+ strh r0, [r1, #0x3c]
+_02050260:
+ bl FUN_020311E8
+ cmp r0, #0x0
+ bne _02050272
+ ldr r0, _020502A0 ; =0x021C5A6C
+ ldr r0, [r0, #0x0]
+ ldrh r0, [r0, #0x3c]
+ cmp r0, #0x0
+ bne _0205029E
+_02050272:
+ bl FUN_0223E6B8
+ cmp r0, #0x0
+ beq _0205027E
+ bl FUN_0204F7FC
+_0205027E:
+ ldr r0, _020502A4 ; =0x02105E74
+ bl FUN_0204FBAC
+ mov r0, #0x0
+ bl FUN_0204D168
+ bl FUN_0204F930
+ bl FUN_02245FA0
+ bl FUN_0223E7FC
+ ldr r0, _020502A8 ; =FUN_020502AC
+ mov r1, #0x0
+ bl FUN_02050094
+_0205029E:
+ pop {r3, pc}
+ .balign 4
+_020502A0: .word 0x021C5A6C
+_020502A4: .word 0x02105E74
+_020502A8: .word FUN_020502AC
+
+ thumb_func_start FUN_020502AC
+FUN_020502AC: ; 0x020502AC
+ push {r3, lr}
+ bl FUN_0223DFB4
+ ldr r0, _02050314 ; =0x021C5A6C
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0x18]
+ ldr r0, [r0, #0x10]
+ cmp r0, #0x0
+ bne _02050310
+ bl FUN_020311F0
+ cmp r0, #0x0
+ bne _020502E2
+ bl FUN_0202EE24
+ cmp r0, #0x0
+ beq _020502E2
+ bl FUN_02031190
+ bl FUN_02030E7C
+ cmp r0, #0x0
+ bne _02050310
+ bl FUN_02031280
+ cmp r0, #0x0
+ bne _02050310
+_020502E2:
+ mov r0, #0x0
+ bl FUN_02245358
+ bl FUN_0204F90C
+ bl FUN_02247808
+ mov r0, #0x2b
+ bl FUN_020311DC
+ bl FUN_02031190
+ mov r1, #0x1
+ bl FUN_0223FCE8
+ bl FUN_0223E6B8
+ bl FUN_020318B4
+ ldr r0, _02050318 ; =FUN_02050458
+ mov r1, #0x0
+ bl FUN_02050094
+_02050310:
+ pop {r3, pc}
+ nop
+_02050314: .word 0x021C5A6C
+_02050318: .word FUN_02050458
+
+ thumb_func_start FUN_0205031C
+FUN_0205031C: ; 0x0205031C
+ push {r3, lr}
+ bl FUN_0204CC48
+ ldr r0, _0205032C ; =FUN_02050330
+ mov r1, #0x0
+ bl FUN_02050094
+ pop {r3, pc}
+ .balign 4
+_0205032C: .word FUN_02050330
+
+ thumb_func_start FUN_02050330
+FUN_02050330: ; 0x02050330
+ ldr r3, _02050334 ; =FUN_0223DFB4
+ bx r3
+ .balign 4
+_02050334: .word FUN_0223DFB4 + 1
+
+ thumb_func_start FUN_02050338
+FUN_02050338: ; 0x02050338
+ push {r3, lr}
+ bl FUN_02245F1C
+ bl FUN_0204CC9C
+ ldr r0, _0205034C ; =FUN_020502AC
+ mov r1, #0x0
+ bl FUN_02050094
+ pop {r3, pc}
+ .balign 4
+_0205034C: .word FUN_020502AC
+
+ thumb_func_start FUN_02050350
+FUN_02050350: ; 0x02050350
+ push {r3, lr}
+ ldr r0, _020503A8 ; =0x021C5A6C
+ ldr r0, [r0, #0x0]
+ ldrh r0, [r0, #0x3c]
+ cmp r0, #0x9
+ bne _02050364
+ bl FUN_0202DBE0
+ bl FUN_0223E7FC
+_02050364:
+ ldr r0, _020503A8 ; =0x021C5A6C
+ ldr r0, [r0, #0x0]
+ ldrh r0, [r0, #0x3c]
+ cmp r0, #0x1
+ bne _02050374
+ mov r0, #0x0
+ bl FUN_0204D198
+_02050374:
+ ldr r0, _020503A8 ; =0x021C5A6C
+ ldr r1, [r0, #0x0]
+ ldrh r0, [r1, #0x3c]
+ cmp r0, #0x0
+ beq _02050384
+ sub r0, r0, #0x1
+ strh r0, [r1, #0x3c]
+ pop {r3, pc}
+_02050384:
+ bl FUN_0202DCF8
+ cmp r0, #0x0
+ beq _020503A0
+ ldr r0, _020503AC ; =0x02105E80
+ bl FUN_0204FBAC
+ bl FUN_0204F930
+ ldr r0, _020503B0 ; =FUN_020503B4
+ mov r1, #0xc8
+ bl FUN_02050094
+ pop {r3, pc}
+_020503A0:
+ bl FUN_02050548
+ pop {r3, pc}
+ nop
+_020503A8: .word 0x021C5A6C
+_020503AC: .word 0x02105E80
+_020503B0: .word FUN_020503B4
+
+ thumb_func_start FUN_020503B4
+FUN_020503B4: ; 0x020503B4
+ push {r3, lr}
+ bl FUN_0204FB00
+ cmp r0, #0x0
+ beq _020503CC
+ bl FUN_0223EF7C
+ ldr r0, _020503E8 ; =FUN_020503F0
+ mov r1, #0x0
+ bl FUN_02050094
+ pop {r3, pc}
+_020503CC:
+ bl FUN_02050548
+ ldr r0, _020503EC ; =0x021C5A6C
+ ldr r1, [r0, #0x0]
+ ldrh r0, [r1, #0x3c]
+ cmp r0, #0x0
+ beq _020503E0
+ sub r0, r0, #0x1
+ strh r0, [r1, #0x3c]
+ pop {r3, pc}
+_020503E0:
+ bl FUN_02050510
+ pop {r3, pc}
+ nop
+_020503E8: .word FUN_020503F0
+_020503EC: .word 0x021C5A6C
+
+ thumb_func_start FUN_020503F0
+FUN_020503F0: ; 0x020503F0
+ push {r3, lr}
+ bl FUN_0223F4D8
+ cmp r0, #0x0
+ beq _02050412
+ ldr r0, _02050418 ; =0x02105E94
+ bl FUN_0204FBAC
+ bl FUN_0223F4F4
+ bl FUN_02245FA0
+ ldr r0, _0205041C ; =FUN_02050420
+ mov r1, #0x0
+ bl FUN_02050094
+ pop {r3, pc}
+_02050412:
+ bl FUN_02050548
+ pop {r3, pc}
+ .balign 4
+_02050418: .word 0x02105E94
+_0205041C: .word FUN_02050420
+
+ thumb_func_start FUN_02050420
+FUN_02050420: ; 0x02050420
+ push {r3, lr}
+ bl FUN_022461A4
+ cmp r0, #0x0
+ beq _0205044A
+ ldr r0, _02050450 ; =0x02105EB0
+ bl FUN_0204FBAC
+ bl FUN_022461B8
+ mov r0, #0x1
+ bl FUN_0204D168
+ mov r0, #0x1f
+ bl FUN_020311DC
+ ldr r0, _02050454 ; =FUN_02050548
+ mov r1, #0x0
+ bl FUN_02050094
+ pop {r3, pc}
+_0205044A:
+ bl FUN_02050548
+ pop {r3, pc}
+ .balign 4
+_02050450: .word 0x02105EB0
+_02050454: .word FUN_02050548
+
+ thumb_func_start FUN_02050458
+FUN_02050458: ; 0x02050458
+ push {r3, lr}
+ bl FUN_02031280
+ cmp r0, #0x0
+ beq _02050472
+ mov r0, #0x0
+ add r1, r0, #0x0
+ bl FUN_0204EAD8
+ ldr r0, _02050474 ; =FUN_02050478
+ mov r1, #0x1e
+ bl FUN_02050094
+_02050472:
+ pop {r3, pc}
+ .balign 4
+_02050474: .word FUN_02050478
+
+ thumb_func_start FUN_02050478
+FUN_02050478: ; 0x02050478
+ push {r3, lr}
+ ldr r0, _0205049C ; =0x021C5A6C
+ ldr r1, [r0, #0x0]
+ ldrh r0, [r1, #0x3c]
+ cmp r0, #0x0
+ beq _0205048A
+ sub r0, r0, #0x1
+ strh r0, [r1, #0x3c]
+ pop {r3, pc}
+_0205048A:
+ bl FUN_02031190
+ cmp r0, #0x0
+ bne _0205049A
+ ldr r0, _020504A0 ; =FUN_020500A4
+ mov r1, #0x0
+ bl FUN_02050094
+_0205049A:
+ pop {r3, pc}
+ .balign 4
+_0205049C: .word 0x021C5A6C
+_020504A0: .word FUN_020500A4
+
+ thumb_func_start FUN_020504A4
+FUN_020504A4: ; 0x020504A4
+ push {r3, lr}
+ ldr r0, _020504C8 ; =0x021C5A6C
+ ldr r1, [r0, #0x0]
+ ldrh r0, [r1, #0x3c]
+ cmp r0, #0x0
+ beq _020504B6
+ sub r0, r0, #0x1
+ strh r0, [r1, #0x3c]
+ pop {r3, pc}
+_020504B6:
+ bl FUN_02031190
+ cmp r0, #0x0
+ bne _020504C6
+ ldr r0, _020504CC ; =FUN_020500A4
+ mov r1, #0x0
+ bl FUN_02050094
+_020504C6:
+ pop {r3, pc}
+ .balign 4
+_020504C8: .word 0x021C5A6C
+_020504CC: .word FUN_020500A4
+
+ thumb_func_start FUN_020504D0
+FUN_020504D0: ; 0x020504D0
+ ldr r3, _020504D4 ; =FUN_0223DFB4
+ bx r3
+ .balign 4
+_020504D4: .word FUN_0223DFB4 + 1
+
+ thumb_func_start FUN_020504D8
+FUN_020504D8: ; 0x020504D8
+ push {r3, lr}
+ bl FUN_02031190
+ cmp r0, #0x0
+ bne _02050506
+ ldr r0, _02050508 ; =0x021C5A6C
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0x18]
+ bl FUN_0223E1E0
+ bl FUN_0202DBE0
+ mov r0, #0x0
+ bl FUN_0204D168
+ bl FUN_0223EF7C
+ bl FUN_02245FA0
+ ldr r0, _0205050C ; =FUN_020504D0
+ mov r1, #0x0
+ bl FUN_02050094
+_02050506:
+ pop {r3, pc}
+ .balign 4
+_02050508: .word 0x021C5A6C
+_0205050C: .word FUN_020504D0
+
+ thumb_func_start FUN_02050510
+FUN_02050510: ; 0x02050510
+ push {r3, lr}
+ bl FUN_02031190
+ mov r1, #0x1
+ bl FUN_0223FCE8
+ bl FUN_02031190
+ mov r1, #0x1
+ bl FUN_02247728
+ bl FUN_0223CACC
+ bl FUN_0204CEF8
+ bl FUN_0223E6B8
+ bl FUN_02031880
+ bl FUN_0204FB28
+ ldr r0, _02050544 ; =FUN_020504A4
+ mov r1, #0x0
+ bl FUN_02050094
+ pop {r3, pc}
+ .balign 4
+_02050544: .word FUN_020504A4
+
+ thumb_func_start FUN_02050548
+FUN_02050548: ; 0x02050548
+ push {r3, lr}
+ bl FUN_0223DFB4
+ bl FUN_0204F80C
+ ldr r0, _02050574 ; =0x021C5A6C
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0x18]
+ ldr r0, [r0, #0x10]
+ cmp r0, #0x0
+ bne _02050572
+ bl FUN_0202EE44
+ cmp r0, #0x0
+ bne _0205056E
+ bl FUN_020311F0
+ cmp r0, #0x0
+ beq _02050572
+_0205056E:
+ bl FUN_02050510
+_02050572:
+ pop {r3, pc}
+ .balign 4
+_02050574: .word 0x021C5A6C
+
+ thumb_func_start FUN_02050578
+FUN_02050578: ; 0x02050578
+ push {r3, lr}
+ bl FUN_0204CC48
+ ldr r0, _02050588 ; =FUN_0205058C
+ mov r1, #0x0
+ bl FUN_02050094
+ pop {r3, pc}
+ .balign 4
+_02050588: .word FUN_0205058C
+
+ thumb_func_start FUN_0205058C
+FUN_0205058C: ; 0x0205058C
+ ldr r3, _02050590 ; =0x02247831
+ bx r3
+ .balign 4
+_02050590: .word 0x02247831
+
+ thumb_func_start FUN_02050594
+FUN_02050594: ; 0x02050594
+ push {r3, lr}
+ bl FUN_02245F1C
+ bl FUN_0204CC9C
+ bl FUN_0202EE44
+ cmp r0, #0x0
+ bne _020505AE
+ bl FUN_020311F0
+ cmp r0, #0x0
+ beq _020505CC
+_020505AE:
+ bl FUN_022452A4
+ bl FUN_0204CEF8
+ bl FUN_0223E6B8
+ bl FUN_02031880
+ bl FUN_0204FB28
+ ldr r0, _020505D8 ; =FUN_020504A4
+ mov r1, #0x0
+ bl FUN_02050094
+ pop {r3, pc}
+_020505CC:
+ ldr r0, _020505DC ; =FUN_02050548
+ mov r1, #0x0
+ bl FUN_02050094
+ pop {r3, pc}
+ nop
+_020505D8: .word FUN_020504A4
+_020505DC: .word FUN_02050548
+
+ thumb_func_start FUN_020505E0
+FUN_020505E0: ; 0x020505E0
+ push {r3, lr}
+ bl FUN_0204CC48
+ ldr r0, _020505F0 ; =FUN_020505F4
+ mov r1, #0x0
+ bl FUN_02050094
+ pop {r3, pc}
+ .balign 4
+_020505F0: .word FUN_020505F4
+
+ thumb_func_start FUN_020505F4
+FUN_020505F4: ; 0x020505F4
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_020505F8
+FUN_020505F8: ; 0x020505F8
+ push {r3, lr}
+ bl FUN_02245F1C
+ bl FUN_0204CC9C
+ ldr r0, _0205060C ; =FUN_02050168
+ mov r1, #0x0
+ bl FUN_02050094
+ pop {r3, pc}
+ .balign 4
+_0205060C: .word FUN_02050168
+
+ thumb_func_start FUN_02050610
+FUN_02050610: ; 0x02050610
+ push {r3, lr}
+ bl FUN_0204CF24
+ ldr r0, _02050620 ; =FUN_02050624
+ mov r1, #0x0
+ bl FUN_02050094
+ pop {r3, pc}
+ .balign 4
+_02050620: .word FUN_02050624
+
+ thumb_func_start FUN_02050624
+FUN_02050624: ; 0x02050624
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02050628
+FUN_02050628: ; 0x02050628
+ push {r3, lr}
+ bl FUN_02245F1C
+ bl FUN_0204CC9C
+ ldr r0, _0205063C ; =FUN_020504D0
+ mov r1, #0x0
+ bl FUN_02050094
+ pop {r3, pc}
+ .balign 4
+_0205063C: .word FUN_020504D0
+
+ thumb_func_start FUN_02050640
+FUN_02050640: ; 0x02050640
+ push {r3, lr}
+ bl FUN_02031190
+ bl FUN_02030E7C
+ cmp r0, #0x0
+ beq _0205065E
+ bl FUN_02240834
+ bl FUN_0202DBE0
+ ldr r0, _02050660 ; =FUN_02050664
+ mov r1, #0x0
+ bl FUN_02050094
+_0205065E:
+ pop {r3, pc}
+ .balign 4
+_02050660: .word FUN_02050664
+
+ thumb_func_start FUN_02050664
+FUN_02050664: ; 0x02050664
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02050668
+FUN_02050668: ; 0x02050668
+ push {r3, lr}
+ bl FUN_0202E4C8
+ cmp r0, #0x0
+ beq _0205067E
+ bl FUN_022407CC
+ ldr r0, _02050680 ; =FUN_02050684
+ mov r1, #0x0
+ bl FUN_02050094
+_0205067E:
+ pop {r3, pc}
+ .balign 4
+_02050680: .word FUN_02050684
+
+ thumb_func_start FUN_02050684
+FUN_02050684: ; 0x02050684
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02050688
+FUN_02050688: ; 0x02050688
+ push {r3, lr}
+ ldr r0, _020506A0 ; =0x021C5A6C
+ ldr r0, [r0, #0x0]
+ add r0, #0x3e
+ ldrb r0, [r0, #0x0]
+ bl FUN_020319D8
+ ldr r0, _020506A4 ; =FUN_020506A8
+ mov r1, #0x0
+ bl FUN_02050094
+ pop {r3, pc}
+ .balign 4
+_020506A0: .word 0x021C5A6C
+_020506A4: .word FUN_020506A8
+
+ thumb_func_start FUN_020506A8
+FUN_020506A8: ; 0x020506A8
+ push {r3, lr}
+ bl FUN_02031A2C
+ cmp r0, #0x0
+ beq _020506BE
+ bl FUN_0202DBE0
+ ldr r0, _020506C0 ; =FUN_020506C4
+ mov r1, #0x0
+ bl FUN_02050094
+_020506BE:
+ pop {r3, pc}
+ .balign 4
+_020506C0: .word FUN_020506C4
+
+ thumb_func_start FUN_020506C4
+FUN_020506C4: ; 0x020506C4
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_020506C8
+FUN_020506C8: ; 0x020506C8
+ push {r3, lr}
+ mov r0, #0x62
+ bl FUN_020315D8
+ cmp r0, #0x0
+ beq _02050704
+ bl FUN_0204D320
+ add r1, r0, #0x0
+ mov r0, #0xf
+ bl FUN_02016998
+ ldr r1, _02050720 ; =0x021C5A6C
+ mov r2, #0x0
+ ldr r1, [r1, #0x0]
+ ldr r1, [r1, #0x18]
+ bl FUN_0204CB20
+ bl FUN_0204F80C
+ bl FUN_02030FC8
+ mov r0, #0x5c
+ bl FUN_02031588
+ ldr r0, _02050724 ; =FUN_02050728
+ mov r1, #0x0
+ bl FUN_02050094
+ pop {r3, pc}
+_02050704:
+ ldr r0, _02050720 ; =0x021C5A6C
+ ldr r1, [r0, #0x0]
+ ldrh r0, [r1, #0x3c]
+ cmp r0, #0x0
+ beq _02050714
+ sub r0, r0, #0x1
+ strh r0, [r1, #0x3c]
+ pop {r3, pc}
+_02050714:
+ mov r0, #0x1e
+ strh r0, [r1, #0x3c]
+ mov r0, #0x62
+ bl FUN_02031588
+ pop {r3, pc}
+ .balign 4
+_02050720: .word 0x021C5A6C
+_02050724: .word FUN_02050728
+
+ thumb_func_start FUN_02050728
+FUN_02050728: ; 0x02050728
+ push {lr}
+ sub sp, #0xc
+ bl FUN_02031190
+ cmp r0, #0x0
+ bne _02050738
+ bl FUN_0202DDE8
+_02050738:
+ mov r0, #0x5c
+ bl FUN_020315D8
+ cmp r0, #0x0
+ beq _02050776
+ mov r0, #0x6
+ str r0, [sp, #0x0]
+ mov r1, #0x1
+ str r1, [sp, #0x4]
+ mov r0, #0x4
+ str r0, [sp, #0x8]
+ mov r0, #0x0
+ add r2, r1, #0x0
+ add r3, r0, #0x0
+ bl FUN_0200E1D0
+ mov r0, #0x0
+ bl FUN_0200E388
+ mov r0, #0x1
+ bl FUN_0200E388
+ bl FUN_0204CC9C
+ mov r0, #0x0
+ bl FUN_0204D168
+ ldr r0, _0205077C ; =FUN_020507B4
+ mov r1, #0x1
+ bl FUN_02050094
+_02050776:
+ add sp, #0xc
+ pop {pc}
+ nop
+_0205077C: .word FUN_020507B4
+
+ thumb_func_start FUN_02050780
+FUN_02050780: ; 0x02050780
+ push {r3, lr}
+ ldr r0, _020507AC ; =0x021C5A6C
+ ldr r1, [r0, #0x0]
+ ldrh r0, [r1, #0x3c]
+ cmp r0, #0x0
+ beq _02050792
+ sub r0, r0, #0x1
+ strh r0, [r1, #0x3c]
+ pop {r3, pc}
+_02050792:
+ mov r0, #0x1e
+ bl FUN_020315D8
+ cmp r0, #0x0
+ beq _020507A8
+ bl FUN_02030FA8
+ ldr r0, _020507B0 ; =FUN_02050930
+ mov r1, #0x0
+ bl FUN_02050094
+_020507A8:
+ pop {r3, pc}
+ nop
+_020507AC: .word 0x021C5A6C
+_020507B0: .word FUN_02050930
+
+ thumb_func_start FUN_020507B4
+FUN_020507B4: ; 0x020507B4
+ push {r3, lr}
+ ldr r0, _020507F0 ; =0x021C5A6C
+ ldr r1, [r0, #0x0]
+ ldrh r0, [r1, #0x3c]
+ cmp r0, #0x0
+ beq _020507C6
+ sub r0, r0, #0x1
+ strh r0, [r1, #0x3c]
+ pop {r3, pc}
+_020507C6:
+ bl FUN_02031190
+ cmp r0, #0x0
+ bne _020507DE
+ bl FUN_0204ED08
+ cmp r0, #0x0
+ beq _020507EC
+ mov r0, #0x1e
+ bl FUN_02031588
+ b _020507E4
+_020507DE:
+ mov r0, #0x1e
+ bl FUN_02031588
+_020507E4:
+ ldr r0, _020507F4 ; =FUN_02050780
+ mov r1, #0x14
+ bl FUN_02050094
+_020507EC:
+ pop {r3, pc}
+ nop
+_020507F0: .word 0x021C5A6C
+_020507F4: .word FUN_02050780
+
+ thumb_func_start FUN_020507F8
+FUN_020507F8: ; 0x020507F8
+ push {r3, lr}
+ mov r0, #0x62
+ bl FUN_020315D8
+ cmp r0, #0x0
+ beq _02050830
+ bl FUN_0204D320
+ add r1, r0, #0x0
+ mov r0, #0xf
+ bl FUN_02016998
+ ldr r1, _0205084C ; =0x021C5A6C
+ mov r2, #0x0
+ ldr r1, [r1, #0x0]
+ ldr r1, [r1, #0x18]
+ bl FUN_0204CB20
+ bl FUN_0204F80C
+ mov r0, #0x5c
+ bl FUN_02031588
+ ldr r0, _02050850 ; =FUN_02050854
+ mov r1, #0x0
+ bl FUN_02050094
+ pop {r3, pc}
+_02050830:
+ ldr r0, _0205084C ; =0x021C5A6C
+ ldr r1, [r0, #0x0]
+ ldrh r0, [r1, #0x3c]
+ cmp r0, #0x0
+ beq _02050840
+ sub r0, r0, #0x1
+ strh r0, [r1, #0x3c]
+ pop {r3, pc}
+_02050840:
+ mov r0, #0x1e
+ strh r0, [r1, #0x3c]
+ mov r0, #0x62
+ bl FUN_02031588
+ pop {r3, pc}
+ .balign 4
+_0205084C: .word 0x021C5A6C
+_02050850: .word FUN_02050854
+
+ thumb_func_start FUN_02050854
+FUN_02050854: ; 0x02050854
+ push {r3, lr}
+ sub sp, #0x10
+ bl FUN_02031190
+ cmp r0, #0x0
+ bne _02050864
+ bl FUN_0202DDE8
+_02050864:
+ mov r0, #0x5c
+ bl FUN_020315D8
+ cmp r0, #0x0
+ beq _020508B0
+ bl FUN_0204CC9C
+ mov r0, #0x0
+ bl FUN_0204D168
+ mov r1, #0x1
+ add r0, sp, #0xc
+ strb r1, [r0, #0x0]
+ mov r0, #0x5e
+ add r1, sp, #0xc
+ bl FUN_020311D0
+ mov r0, #0x6
+ str r0, [sp, #0x0]
+ mov r1, #0x1
+ str r1, [sp, #0x4]
+ mov r0, #0x4
+ str r0, [sp, #0x8]
+ mov r0, #0x0
+ add r2, r1, #0x0
+ add r3, r0, #0x0
+ bl FUN_0200E1D0
+ mov r0, #0x0
+ bl FUN_0200E388
+ mov r0, #0x1
+ bl FUN_0200E388
+ ldr r0, _020508B4 ; =FUN_02050A14
+ mov r1, #0x0
+ bl FUN_02050094
+_020508B0:
+ add sp, #0x10
+ pop {r3, pc}
+ .balign 4
+_020508B4: .word FUN_02050A14
+
+ thumb_func_start FUN_020508B8
+FUN_020508B8: ; 0x020508B8
+ push {r3-r7, lr}
+ mov r7, #0x0
+ bl FUN_02030F20
+ cmp r0, #0x0
+ ble _02050916
+ ldr r6, _02050928 ; =0x021C5A6C
+_020508C6:
+ bl FUN_02031190
+ cmp r7, r0
+ beq _0205090C
+ add r0, r7, #0x0
+ bl FUN_020315FC
+ cmp r0, #0x5e
+ bne _0205090C
+ ldr r0, [r6, #0x0]
+ ldr r0, [r0, #0x18]
+ ldr r0, [r0, #0x10]
+ cmp r0, #0x0
+ bne _0205090C
+ mov r4, #0x0
+ add r5, r4, #0x0
+_020508E6:
+ ldr r0, [r6, #0x0]
+ ldr r0, [r0, r5]
+ cmp r0, #0x0
+ beq _020508F8
+ bl FUN_02016A18
+ ldr r1, [r6, #0x0]
+ mov r0, #0x0
+ str r0, [r1, r5]
+_020508F8:
+ add r4, r4, #0x1
+ add r5, r5, #0x4
+ cmp r4, #0x4
+ blt _020508E6
+ ldr r0, [r6, #0x0]
+ ldr r1, _0205092C ; =0x0000238E
+ ldr r0, [r0, #0x18]
+ mov r2, #0x0
+ bl FUN_02038C78
+_0205090C:
+ add r7, r7, #0x1
+ bl FUN_02030F20
+ cmp r7, r0
+ blt _020508C6
+_02050916:
+ ldr r1, _02050928 ; =0x021C5A6C
+ mov r0, #0x4
+ ldr r1, [r1, #0x0]
+ ldr r1, [r1, #0x18]
+ ldr r1, [r1, #0x8]
+ bl FUN_020335F0
+ pop {r3-r7, pc}
+ nop
+_02050928: .word 0x021C5A6C
+_0205092C: .word 0x0000238E
+
+ thumb_func_start FUN_02050930
+FUN_02050930: ; 0x02050930
+ push {r3, lr}
+ bl FUN_0204EB44
+ cmp r0, #0x0
+ bne _0205095A
+ ldr r0, _02050960 ; =0x021C5A6C
+ mov r1, #0x0
+ ldr r0, [r0, #0x0]
+ add r0, #0x43
+ strb r1, [r0, #0x0]
+ mov r1, #0x1
+ add r0, sp, #0x0
+ strb r1, [r0, #0x0]
+ mov r0, #0x5e
+ add r1, sp, #0x0
+ bl FUN_020311D0
+ ldr r0, _02050964 ; =FUN_02050A14
+ mov r1, #0x0
+ bl FUN_02050094
+_0205095A:
+ bl FUN_020508B8
+ pop {r3, pc}
+ .balign 4
+_02050960: .word 0x021C5A6C
+_02050964: .word FUN_02050A14
+
+ thumb_func_start FUN_02050968
+FUN_02050968: ; 0x02050968
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ beq _02050986
+ mov r0, #0xb
+ bl FUN_0206B8AC
+ ldr r1, _020509AC ; =0x021C5A6C
+ ldr r2, [r1, #0x0]
+ str r0, [r2, #0x44]
+ ldr r1, [r1, #0x0]
+ add r0, r4, #0x0
+ ldr r1, [r1, #0x44]
+ bl FUN_0206BAD0
+_02050986:
+ cmp r5, #0x0
+ beq _02050994
+ ldr r0, _020509B0 ; =FUN_02050B8C
+ mov r1, #0x3
+ bl FUN_02050094
+ pop {r3-r5, pc}
+_02050994:
+ mov r1, #0x3
+ add r0, sp, #0x0
+ strb r1, [r0, #0x0]
+ mov r0, #0x5e
+ add r1, sp, #0x0
+ bl FUN_020311D0
+ ldr r0, _020509B4 ; =FUN_02050930
+ mov r1, #0x0
+ bl FUN_02050094
+ pop {r3-r5, pc}
+ .balign 4
+_020509AC: .word 0x021C5A6C
+_020509B0: .word FUN_02050B8C
+_020509B4: .word FUN_02050930
+
+ thumb_func_start FUN_020509B8
+FUN_020509B8: ; 0x020509B8
+ ldr r3, _020509C0 ; =FUN_02050094
+ ldr r0, _020509C4 ; =FUN_02050930
+ mov r1, #0x0
+ bx r3
+ .balign 4
+_020509C0: .word FUN_02050094
+_020509C4: .word FUN_02050930
+
+ thumb_func_start FUN_020509C8
+FUN_020509C8: ; 0x020509C8
+ push {r3, lr}
+ bl FUN_02031438
+ cmp r0, #0x0
+ bne _02050A06
+ bl FUN_02031190
+ bl FUN_0204F6B4
+ cmp r0, #0x0
+ bne _02050A06
+ ldr r0, _02050A08 ; =0x021C5A6C
+ ldr r1, [r0, #0x0]
+ ldrh r0, [r1, #0x3c]
+ cmp r0, #0x0
+ beq _020509EE
+ sub r0, r0, #0x1
+ strh r0, [r1, #0x3c]
+ pop {r3, pc}
+_020509EE:
+ bl FUN_0204F7E4
+ ldr r0, _02050A08 ; =0x021C5A6C
+ ldr r1, _02050A0C ; =FUN_02050968
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0x18]
+ bl FUN_02051880
+ ldr r0, _02050A10 ; =FUN_020509B8
+ mov r1, #0x0
+ bl FUN_02050094
+_02050A06:
+ pop {r3, pc}
+ .balign 4
+_02050A08: .word 0x021C5A6C
+_02050A0C: .word FUN_02050968
+_02050A10: .word FUN_020509B8
+
+ thumb_func_start FUN_02050A14
+FUN_02050A14: ; 0x02050A14
+ push {r3, lr}
+ ldr r0, _02050A40 ; =0x021C5A6C
+ ldr r0, [r0, #0x0]
+ add r0, #0x43
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x0
+ beq _02050A38
+ ldr r0, _02050A44 ; =FUN_020509C8
+ mov r1, #0x5
+ bl FUN_02050094
+ mov r1, #0x0
+ add r0, sp, #0x0
+ strb r1, [r0, #0x0]
+ mov r0, #0x5e
+ add r1, sp, #0x0
+ bl FUN_020311D0
+_02050A38:
+ bl FUN_020508B8
+ pop {r3, pc}
+ nop
+_02050A40: .word 0x021C5A6C
+_02050A44: .word FUN_020509C8
+
+ thumb_func_start FUN_02050A48
+FUN_02050A48: ; 0x02050A48
+ push {r4, lr}
+ add r4, r2, #0x0
+ bl FUN_02031190
+ ldrb r1, [r4, #0x0]
+ cmp r1, r0
+ bne _02050A60
+ ldr r0, _02050A64 ; =0x021C5A6C
+ mov r1, #0x1
+ ldr r0, [r0, #0x0]
+ add r0, #0x43
+ strb r1, [r0, #0x0]
+_02050A60:
+ pop {r4, pc}
+ nop
+_02050A64: .word 0x021C5A6C
+
+ thumb_func_start FUN_02050A68
+FUN_02050A68: ; 0x02050A68
+ ldr r0, _02050A88 ; =0x021C5A6C
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ beq _02050A82
+ ldr r1, [r0, #0x34]
+ ldr r0, _02050A8C ; =FUN_02050A14
+ cmp r1, r0
+ beq _02050A7E
+ ldr r0, _02050A90 ; =FUN_02050930
+ cmp r1, r0
+ bne _02050A82
+_02050A7E:
+ mov r0, #0x1
+ bx lr
+_02050A82:
+ mov r0, #0x0
+ bx lr
+ nop
+_02050A88: .word 0x021C5A6C
+_02050A8C: .word FUN_02050A14
+_02050A90: .word FUN_02050930
+
+ thumb_func_start FUN_02050A94
+FUN_02050A94: ; 0x02050A94
+ push {r4, lr}
+ sub sp, #0x8
+ ldr r0, _02050B00 ; =0x021C5A6C
+ ldr r1, [r0, #0x0]
+ ldrh r0, [r1, #0x3c]
+ cmp r0, #0x0
+ beq _02050AAA
+ sub r0, r0, #0x1
+ strh r0, [r1, #0x3c]
+ add sp, #0x8
+ pop {r4, pc}
+_02050AAA:
+ mov r4, #0x5
+ bl FUN_02033534
+ cmp r0, #0x2
+ beq _02050AC0
+ cmp r0, #0x4
+ beq _02050ABC
+ cmp r0, #0x5
+ bne _02050AC2
+_02050ABC:
+ mov r4, #0xf
+ b _02050AC2
+_02050AC0:
+ mov r4, #0x7
+_02050AC2:
+ add r0, sp, #0x0
+ bl FUN_02033578
+ ldr r0, _02050B00 ; =0x021C5A6C
+ ldr r0, [r0, #0x0]
+ ldr r1, [r0, #0x44]
+ ldr r0, [r0, #0x18]
+ cmp r1, #0x0
+ bne _02050ADE
+ add r1, sp, #0x0
+ add r2, r4, #0x0
+ bl FUN_0204726C
+ b _02050AF6
+_02050ADE:
+ add r2, r4, #0x0
+ bl FUN_020472B0
+ ldr r0, _02050B00 ; =0x021C5A6C
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0x44]
+ bl FUN_02016A18
+ ldr r0, _02050B00 ; =0x021C5A6C
+ mov r1, #0x0
+ ldr r0, [r0, #0x0]
+ str r1, [r0, #0x44]
+_02050AF6:
+ bl FUN_0204FC10
+ add sp, #0x8
+ pop {r4, pc}
+ nop
+_02050B00: .word 0x021C5A6C
+
+ thumb_func_start FUN_02050B04
+FUN_02050B04: ; 0x02050B04
+ push {r3, lr}
+ bl FUN_0202FA48
+ cmp r0, #0x0
+ beq _02050B3E
+ ldr r0, _02050B40 ; =0x021C5A6C
+ ldr r1, [r0, #0x0]
+ ldrh r0, [r1, #0x3c]
+ cmp r0, #0x0
+ beq _02050B1C
+ sub r0, r0, #0x1
+ strh r0, [r1, #0x3c]
+_02050B1C:
+ ldr r0, _02050B40 ; =0x021C5A6C
+ ldr r0, [r0, #0x0]
+ ldrh r0, [r0, #0x3c]
+ cmp r0, #0x5a
+ bne _02050B2C
+ mov r0, #0x4
+ bl FUN_02031588
+_02050B2C:
+ mov r0, #0x4
+ bl FUN_020315D8
+ cmp r0, #0x0
+ beq _02050B3E
+ ldr r0, _02050B44 ; =FUN_02050A94
+ mov r1, #0x0
+ bl FUN_02050094
+_02050B3E:
+ pop {r3, pc}
+ .balign 4
+_02050B40: .word 0x021C5A6C
+_02050B44: .word FUN_02050A94
+
+ thumb_func_start FUN_02050B48
+FUN_02050B48: ; 0x02050B48
+ push {r3, lr}
+ ldr r0, _02050B68 ; =0x021C5A6C
+ ldr r1, [r0, #0x0]
+ ldrh r0, [r1, #0x3c]
+ cmp r0, #0x0
+ beq _02050B5A
+ sub r0, r0, #0x1
+ strh r0, [r1, #0x3c]
+ pop {r3, pc}
+_02050B5A:
+ bl FUN_0202FA10
+ ldr r0, _02050B6C ; =FUN_02050B04
+ mov r1, #0x78
+ bl FUN_02050094
+ pop {r3, pc}
+ .balign 4
+_02050B68: .word 0x021C5A6C
+_02050B6C: .word FUN_02050B04
+
+ thumb_func_start FUN_02050B70
+FUN_02050B70: ; 0x02050B70
+ push {r3, lr}
+ mov r0, #0x3
+ bl FUN_020315D8
+ cmp r0, #0x0
+ beq _02050B84
+ ldr r0, _02050B88 ; =FUN_02050B48
+ mov r1, #0x2
+ bl FUN_02050094
+_02050B84:
+ pop {r3, pc}
+ nop
+_02050B88: .word FUN_02050B48
+
+ thumb_func_start FUN_02050B8C
+FUN_02050B8C: ; 0x02050B8C
+ push {r3, lr}
+ ldr r0, _02050BB4 ; =0x021C5A6C
+ ldr r1, [r0, #0x0]
+ ldrh r0, [r1, #0x3c]
+ cmp r0, #0x0
+ beq _02050B9E
+ sub r0, r0, #0x1
+ strh r0, [r1, #0x3c]
+ pop {r3, pc}
+_02050B9E:
+ mov r0, #0x0
+ bl FUN_0204CCE0
+ mov r0, #0x3
+ bl FUN_02031588
+ ldr r0, _02050BB8 ; =FUN_02050B70
+ mov r1, #0x0
+ bl FUN_02050094
+ pop {r3, pc}
+ .balign 4
+_02050BB4: .word 0x021C5A6C
+_02050BB8: .word FUN_02050B70
+
+ thumb_func_start FUN_02050BBC
+FUN_02050BBC: ; 0x02050BBC
+ push {r3, lr}
+ bl FUN_020319F4
+ ldr r0, _02050BCC ; =FUN_02050BD0
+ mov r1, #0x2
+ bl FUN_02050094
+ pop {r3, pc}
+ .balign 4
+_02050BCC: .word FUN_02050BD0
+
+ thumb_func_start FUN_02050BD0
+FUN_02050BD0: ; 0x02050BD0
+ push {r3, lr}
+ bl FUN_0202EE0C
+ cmp r0, #0x0
+ beq _02050BE2
+ ldr r0, _02050BE4 ; =FUN_020506A8
+ mov r1, #0xa
+ bl FUN_02050094
+_02050BE2:
+ pop {r3, pc}
+ .balign 4
+_02050BE4: .word FUN_020506A8
+
+ thumb_func_start FUN_02050BE8
+FUN_02050BE8: ; 0x02050BE8
+ ldr r1, _02050BF4 ; =0x021C5A6C
+ mov r2, #0x1
+ ldr r1, [r1, #0x0]
+ add r0, r1, r0
+ strb r2, [r0, #0x10]
+ bx lr
+ .balign 4
+_02050BF4: .word 0x021C5A6C
+
+ thumb_func_start FUN_02050BF8
+FUN_02050BF8: ; 0x02050BF8
+ push {r4, lr}
+ add r4, r0, #0x0
+ cmp r4, #0x4
+ blt _02050C04
+ bl ErrorHandling
+_02050C04:
+ ldr r0, _02050C10 ; =0x021C5A6C
+ ldr r1, [r0, #0x0]
+ lsl r0, r4, #0x2
+ ldr r0, [r1, r0]
+ pop {r4, pc}
+ nop
+_02050C10: .word 0x021C5A6C
+
+ thumb_func_start FUN_02050C14
+FUN_02050C14: ; 0x02050C14
+ push {r4, lr}
+ bl FUN_02031190
+ add r4, r0, #0x0
+ mov r0, #0x5f
+ bl FUN_020315D8
+ cmp r0, #0x0
+ beq _02050C3E
+ ldr r1, _02050C40 ; =0x021C5A6C
+ mov r0, #0x58
+ ldr r2, [r1, #0x0]
+ lsl r1, r4, #0x2
+ ldr r1, [r2, r1]
+ ldr r2, _02050C44 ; =0x0000066C
+ bl FUN_02030A78
+ ldr r0, _02050C48 ; =FUN_02050C4C
+ mov r1, #0x0
+ bl FUN_02050094
+_02050C3E:
+ pop {r4, pc}
+ .balign 4
+_02050C40: .word 0x021C5A6C
+_02050C44: .word 0x0000066C
+_02050C48: .word FUN_02050C4C
+
+ thumb_func_start FUN_02050C4C
+FUN_02050C4C: ; 0x02050C4C
+ push {r3-r5, lr}
+ mov r4, #0x0
+ bl FUN_02030F20
+ cmp r0, #0x0
+ ble _02050C6E
+ ldr r5, _02050C80 ; =0x021C5A6C
+_02050C5A:
+ ldr r0, [r5, #0x0]
+ add r0, r0, r4
+ ldrb r0, [r0, #0x10]
+ cmp r0, #0x0
+ beq _02050C7C
+ add r4, r4, #0x1
+ bl FUN_02030F20
+ cmp r4, r0
+ blt _02050C5A
+_02050C6E:
+ mov r0, #0x61
+ bl FUN_02031588
+ ldr r0, _02050C84 ; =FUN_02050CF4
+ mov r1, #0x0
+ bl FUN_02050094
+_02050C7C:
+ pop {r3-r5, pc}
+ nop
+_02050C80: .word 0x021C5A6C
+_02050C84: .word FUN_02050CF4
+
+ thumb_func_start FUN_02050C88
+FUN_02050C88: ; 0x02050C88
+ push {r3, lr}
+ bl FUN_0202FA48
+ cmp r0, #0x0
+ bne _02050CC2
+ ldr r0, _02050CC4 ; =0x021C5A6C
+ ldr r1, [r0, #0x0]
+ ldrh r0, [r1, #0x3c]
+ cmp r0, #0x0
+ beq _02050CA0
+ sub r0, r0, #0x1
+ strh r0, [r1, #0x3c]
+_02050CA0:
+ ldr r0, _02050CC4 ; =0x021C5A6C
+ ldr r0, [r0, #0x0]
+ ldrh r0, [r0, #0x3c]
+ cmp r0, #0x5a
+ bne _02050CB0
+ mov r0, #0x5
+ bl FUN_02031588
+_02050CB0:
+ mov r0, #0x5
+ bl FUN_020315D8
+ cmp r0, #0x0
+ beq _02050CC2
+ ldr r0, _02050CC8 ; =FUN_02050D10
+ mov r1, #0x0
+ bl FUN_02050094
+_02050CC2:
+ pop {r3, pc}
+ .balign 4
+_02050CC4: .word 0x021C5A6C
+_02050CC8: .word FUN_02050D10
+
+ thumb_func_start FUN_02050CCC
+FUN_02050CCC: ; 0x02050CCC
+ push {r3, lr}
+ ldr r0, _02050CEC ; =0x021C5A6C
+ ldr r1, [r0, #0x0]
+ ldrh r0, [r1, #0x3c]
+ cmp r0, #0x0
+ beq _02050CDE
+ sub r0, r0, #0x1
+ strh r0, [r1, #0x3c]
+ pop {r3, pc}
+_02050CDE:
+ bl FUN_0202FA1C
+ ldr r0, _02050CF0 ; =FUN_02050C88
+ mov r1, #0x78
+ bl FUN_02050094
+ pop {r3, pc}
+ .balign 4
+_02050CEC: .word 0x021C5A6C
+_02050CF0: .word FUN_02050C88
+
+ thumb_func_start FUN_02050CF4
+FUN_02050CF4: ; 0x02050CF4
+ push {r3, lr}
+ mov r0, #0x61
+ bl FUN_020315D8
+ cmp r0, #0x0
+ beq _02050D08
+ ldr r0, _02050D0C ; =FUN_02050CCC
+ mov r1, #0x2
+ bl FUN_02050094
+_02050D08:
+ pop {r3, pc}
+ nop
+_02050D0C: .word FUN_02050CCC
+
+ thumb_func_start FUN_02050D10
+FUN_02050D10: ; 0x02050D10
+ push {r3, lr}
+ ldr r0, _02050D48 ; =0x021C5A6C
+ ldr r1, [r0, #0x0]
+ ldrh r0, [r1, #0x3c]
+ cmp r0, #0x0
+ beq _02050D22
+ sub r0, r0, #0x1
+ strh r0, [r1, #0x3c]
+ pop {r3, pc}
+_02050D22:
+ mov r0, #0x62
+ bl FUN_02031588
+ ldr r0, _02050D48 ; =0x021C5A6C
+ ldr r0, [r0, #0x0]
+ add r0, #0x42
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x0
+ beq _02050D3E
+ ldr r0, _02050D4C ; =FUN_020506C8
+ mov r1, #0x1e
+ bl FUN_02050094
+ pop {r3, pc}
+_02050D3E:
+ ldr r0, _02050D50 ; =FUN_020507F8
+ mov r1, #0x1e
+ bl FUN_02050094
+ pop {r3, pc}
+ .balign 4
+_02050D48: .word 0x021C5A6C
+_02050D4C: .word FUN_020506C8
+_02050D50: .word FUN_020507F8
+
+ thumb_func_start FUN_02050D54
+FUN_02050D54: ; 0x02050D54
+ push {r3, lr}
+ ldr r0, _02050D84 ; =0x021C5A6C
+ ldr r1, [r0, #0x0]
+ ldrh r0, [r1, #0x3c]
+ cmp r0, #0x0
+ beq _02050D66
+ sub r0, r0, #0x1
+ strh r0, [r1, #0x3c]
+ pop {r3, pc}
+_02050D66:
+ bl FUN_0223E1A4
+ bl FUN_02031860
+ mov r0, #0x21
+ bl FUN_020168D0
+ ldr r0, _02050D84 ; =0x021C5A6C
+ mov r1, #0x0
+ ldr r0, [r0, #0x0]
+ add r0, #0x41
+ strb r1, [r0, #0x0]
+ bl FUN_0204FC10
+ pop {r3, pc}
+ .balign 4
+_02050D84: .word 0x021C5A6C
+
+ thumb_func_start FUN_02050D88
+FUN_02050D88: ; 0x02050D88
+ push {r3, lr}
+ mov r0, #0x5b
+ bl FUN_020315D8
+ cmp r0, #0x0
+ beq _02050DAA
+ mov r0, #0x0
+ add r1, r0, #0x0
+ bl FUN_020334E8
+ mov r0, #0x1
+ bl FUN_0204CCE0
+ ldr r0, _02050DAC ; =FUN_02050DC8
+ mov r1, #0x5
+ bl FUN_02050094
+_02050DAA:
+ pop {r3, pc}
+ .balign 4
+_02050DAC: .word FUN_02050DC8
+
+ thumb_func_start FUN_02050DB0
+FUN_02050DB0: ; 0x02050DB0
+ push {r3, lr}
+ mov r0, #0x1
+ bl FUN_0204CCE0
+ ldr r0, _02050DC4 ; =FUN_02050DC8
+ mov r1, #0x5
+ bl FUN_02050094
+ pop {r3, pc}
+ nop
+_02050DC4: .word FUN_02050DC8
+
+ thumb_func_start FUN_02050DC8
+FUN_02050DC8: ; 0x02050DC8
+ push {r3, lr}
+ ldr r0, _02050DE8 ; =0x021C5A6C
+ ldr r1, [r0, #0x0]
+ ldrh r0, [r1, #0x3c]
+ cmp r0, #0x0
+ beq _02050DDA
+ sub r0, r0, #0x1
+ strh r0, [r1, #0x3c]
+ pop {r3, pc}
+_02050DDA:
+ bl FUN_02031A08
+ ldr r0, _02050DEC ; =FUN_0204FC10
+ mov r1, #0x0
+ bl FUN_02050094
+ pop {r3, pc}
+ .balign 4
+_02050DE8: .word 0x021C5A6C
+_02050DEC: .word FUN_0204FC10
+
+ thumb_func_start FUN_02050DF0
+FUN_02050DF0: ; 0x02050DF0
+ push {r3, lr}
+ ldr r1, _02050E0C ; =0x021C5A6C
+ ldr r1, [r1, #0x0]
+ cmp r1, #0x0
+ beq _02050E02
+ add r1, #0x41
+ ldrb r1, [r1, #0x0]
+ cmp r1, #0x0
+ bne _02050E06
+_02050E02:
+ mov r0, #0x0
+ pop {r3, pc}
+_02050E06:
+ bl FUN_0223E2AC
+ pop {r3, pc}
+ .balign 4
+_02050E0C: .word 0x021C5A6C
+
+ thumb_func_start FUN_02050E10
+FUN_02050E10: ; 0x02050E10
+ push {r3, lr}
+ ldr r0, _02050E28 ; =0x021C5A6C
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ beq _02050E26
+ add r0, #0x41
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x0
+ beq _02050E26
+ bl FUN_0223E118
+_02050E26:
+ pop {r3, pc}
+ .balign 4
+_02050E28: .word 0x021C5A6C
+
+ thumb_func_start FUN_02050E2C
+FUN_02050E2C: ; 0x02050E2C
+ push {r3, lr}
+ ldr r0, _02050E44 ; =0x021C5A6C
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ beq _02050E42
+ add r0, #0x41
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x0
+ beq _02050E42
+ bl FUN_0223E154
+_02050E42:
+ pop {r3, pc}
+ .balign 4
+_02050E44: .word 0x021C5A6C
+
+ thumb_func_start FUN_02050E48
+FUN_02050E48: ; 0x02050E48
+ push {r3-r7, lr}
+ sub sp, #0x8
+ add r7, r0, #0x0
+ add r5, r1, #0x0
+ ldr r0, [sp, #0x24]
+ mov r1, #0x30
+ str r2, [sp, #0x0]
+ str r3, [sp, #0x4]
+ ldr r6, [r5, #0xc]
+ bl FUN_020169D8
+ mov r1, #0x0
+ mov r2, #0x30
+ add r4, r0, #0x0
+ blx MI_CpuFill8
+ ldr r0, [r5, #0xc]
+ bl FUN_020238F4
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_0207C2A4
+ add r0, r6, #0x0
+ bl FUN_0206BB28
+ str r0, [r4, #0x1c]
+ add r0, r6, #0x0
+ bl FUN_02079C70
+ str r0, [r4, #0x2c]
+ add r0, r6, #0x0
+ bl LoadPlayerDataAddress
+ str r0, [r4, #0x4]
+ ldr r0, [sp, #0x0]
+ str r0, [r4, #0x0]
+ mov r0, #0x1
+ strb r0, [r4, #0x11]
+ ldr r0, [sp, #0x4]
+ strb r0, [r4, #0x14]
+ ldr r0, [r4, #0x0]
+ bl FUN_0206B9AC
+ strb r0, [r4, #0x13]
+ mov r0, #0x0
+ strh r0, [r4, #0x18]
+ ldr r0, [sp, #0x20]
+ strb r0, [r4, #0x12]
+ add r0, r6, #0x0
+ bl FUN_0202A918
+ str r0, [r4, #0x20]
+ ldr r1, _02050ECC ; =0x020F5880
+ add r0, r4, #0x0
+ bl FUN_0207B000
+ ldr r1, _02050ED0 ; =0x020FA6E8
+ add r0, r5, #0x0
+ add r2, r4, #0x0
+ bl FUN_020373D4
+ str r4, [r7, #0x0]
+ add sp, #0x8
+ pop {r3-r7, pc}
+ nop
+_02050ECC: .word 0x020F5880
+_02050ED0: .word 0x020FA6E8
+
+ thumb_func_start FUN_02050ED4
+FUN_02050ED4: ; 0x02050ED4
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r0, r1, #0x0
+ mov r1, #0x40
+ bl FUN_02016998
+ mov r1, #0x0
+ mov r2, #0x40
+ add r4, r0, #0x0
+ blx MI_CpuFill8
+ ldr r0, [r5, #0x24]
+ ldr r0, [r0, #0xc]
+ bl LoadPlayerDataAddress
+ str r0, [r4, #0xc]
+ ldr r0, [r5, #0x24]
+ add r0, #0xac
+ ldr r0, [r0, #0x0]
+ str r0, [r4, #0x14]
+ ldr r0, [r5, #0x24]
+ ldr r0, [r0, #0xc]
+ bl FUN_0206BB1C
+ str r0, [r4, #0x0]
+ ldr r0, [r5, #0x24]
+ ldr r0, [r0, #0xc]
+ bl FUN_0206F158
+ str r0, [r4, #0x4]
+ add r0, r4, #0x0
+ mov r1, #0x0
+ add r0, #0x21
+ strb r1, [r0, #0x0]
+ add r0, r4, #0x0
+ mov r1, #0x2
+ add r0, #0x20
+ strb r1, [r0, #0x0]
+ ldr r0, [r5, #0x24]
+ add r0, #0xac
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ beq _02050F64
+ mov r1, #0x1
+ bl FUN_02023B0C
+ add r1, r4, #0x0
+ add r1, #0x32
+ ldrb r1, [r1, #0x0]
+ mov r2, #0xf
+ lsl r0, r0, #0x18
+ bic r1, r2
+ lsr r2, r0, #0x18
+ mov r0, #0xf
+ and r0, r2
+ orr r1, r0
+ add r0, r4, #0x0
+ add r0, #0x32
+ strb r1, [r0, #0x0]
+ add r0, r4, #0x0
+ add r0, #0x32
+ ldrb r0, [r0, #0x0]
+ mov r1, #0xf0
+ bic r0, r1
+ add r1, r4, #0x0
+ add r1, #0x32
+ ldrb r1, [r1, #0x0]
+ lsl r1, r1, #0x1c
+ lsr r1, r1, #0x1c
+ lsl r1, r1, #0x1c
+ lsr r1, r1, #0x18
+ b _02050F84
+_02050F64:
+ add r0, r4, #0x0
+ add r0, #0x32
+ ldrb r1, [r0, #0x0]
+ mov r0, #0xf
+ bic r1, r0
+ mov r0, #0x3
+ orr r1, r0
+ add r0, r4, #0x0
+ add r0, #0x32
+ strb r1, [r0, #0x0]
+ add r0, r4, #0x0
+ add r0, #0x32
+ ldrb r1, [r0, #0x0]
+ mov r0, #0xf0
+ bic r1, r0
+ mov r0, #0x30
+_02050F84:
+ orr r1, r0
+ add r0, r4, #0x0
+ add r0, #0x32
+ strb r1, [r0, #0x0]
+ add r0, r4, #0x0
+ mov r1, #0x64
+ add r0, #0x33
+ strb r1, [r0, #0x0]
+ add r0, r5, #0x0
+ add r0, #0x3c
+ ldrb r1, [r0, #0x0]
+ add r0, r4, #0x0
+ add r0, #0x22
+ strb r1, [r0, #0x0]
+ mov r2, #0x0
+_02050FA2:
+ add r0, r5, r2
+ add r0, #0x3d
+ ldrb r1, [r0, #0x0]
+ add r0, r4, r2
+ add r0, #0x2c
+ add r2, r2, #0x1
+ strb r1, [r0, #0x0]
+ cmp r2, #0x6
+ blt _02050FA2
+ ldr r0, [r5, #0x24]
+ ldr r1, _02050FC4 ; =0x020F96DC
+ add r2, r4, #0x0
+ bl FUN_020373D4
+ str r4, [r5, #0x4]
+ pop {r3-r5, pc}
+ nop
+_02050FC4: .word 0x020F96DC
+
+ thumb_func_start FUN_02050FC8
+FUN_02050FC8: ; 0x02050FC8
+ push {r4, lr}
+ add r4, r0, #0x0
+ add r0, r1, #0x0
+ bl FUN_0204647C
+ cmp r0, #0x0
+ beq _02050FDA
+ mov r0, #0x0
+ pop {r4, pc}
+_02050FDA:
+ ldr r0, [r4, #0x4]
+ add r1, r4, #0x0
+ add r0, #0x2c
+ add r1, #0x3d
+ mov r2, #0x6
+ blx MI_CpuCopy8
+ ldr r0, [r4, #0x4]
+ add r0, #0x22
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x6
+ beq _02050FFC
+ cmp r0, #0x7
+ bne _02051002
+ mov r0, #0x0
+ str r0, [r4, #0x38]
+ b _02051006
+_02050FFC:
+ mov r0, #0x1
+ str r0, [r4, #0x38]
+ b _02051006
+_02051002:
+ mov r0, #0x2
+ str r0, [r4, #0x38]
+_02051006:
+ ldr r0, [r4, #0x4]
+ add r0, #0x22
+ ldrb r1, [r0, #0x0]
+ add r0, r4, #0x0
+ add r0, #0x3c
+ strb r1, [r0, #0x0]
+ ldr r0, [r4, #0x4]
+ bl FUN_02016A18
+ mov r0, #0x0
+ str r0, [r4, #0x4]
+ mov r0, #0x1
+ pop {r4, pc}
+
+ thumb_func_start FUN_02051020
+FUN_02051020: ; 0x02051020
+ push {r4, lr}
+ add r4, r0, #0x0
+ add r0, r1, #0x0
+ bl FUN_0204647C
+ cmp r0, #0x0
+ beq _02051032
+ mov r0, #0x0
+ pop {r4, pc}
+_02051032:
+ ldr r0, [r4, #0x0]
+ ldrb r1, [r0, #0x14]
+ add r0, r4, #0x0
+ add r0, #0x3c
+ strb r1, [r0, #0x0]
+ ldr r0, [r4, #0x0]
+ bl FUN_02016A18
+ mov r0, #0x0
+ str r0, [r4, #0x0]
+ mov r0, #0x1
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0205104C
+FUN_0205104C: ; 0x0205104C
+ push {r3, lr}
+ ldr r0, [r0, #0x24]
+ bl FUN_020464A4
+ cmp r0, #0x0
+ beq _02051066
+ mov r0, #0x1
+ bl FUN_021D7CA4
+ bl FUN_0204CC9C
+ mov r0, #0x1
+ pop {r3, pc}
+_02051066:
+ mov r0, #0x0
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_0205106C
+FUN_0205106C: ; 0x0205106C
+ push {r3-r5, lr}
+ bl FUN_02030F20
+ add r5, r0, #0x0
+ mov r4, #0x0
+ cmp r5, #0x0
+ ble _0205108E
+_0205107A:
+ add r0, r4, #0x0
+ bl FUN_020315FC
+ cmp r0, #0x5e
+ bne _02051088
+ mov r0, #0x1
+ pop {r3-r5, pc}
+_02051088:
+ add r4, r4, #0x1
+ cmp r4, r5
+ blt _0205107A
+_0205108E:
+ mov r0, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_02051094
+FUN_02051094: ; 0x02051094
+ push {r3-r5, lr}
+ sub sp, #0x8
+ add r5, r0, #0x0
+ bl FUN_0204652C
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_02046528
+ ldr r1, [r4, #0x34]
+ cmp r1, #0x2c
+ bls _020510AE
+ b _020517B8
+_020510AE:
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #0x6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_020510BA: ; jump table (using 16-bit offset)
+ .short _02051114 - _020510BA - 2; case 0
+ .short _02051136 - _020510BA - 2; case 1
+ .short _02051150 - _020510BA - 2; case 2
+ .short _0205116A - _020510BA - 2; case 3
+ .short _020511A6 - _020510BA - 2; case 4
+ .short _020511F6 - _020510BA - 2; case 5
+ .short _020517B8 - _020510BA - 2; case 6
+ .short _020511E4 - _020510BA - 2; case 7
+ .short _0205120C - _020510BA - 2; case 8
+ .short _02051232 - _020510BA - 2; case 9
+ .short _0205123E - _020510BA - 2; case 10
+ .short _0205126A - _020510BA - 2; case 11
+ .short _02051288 - _020510BA - 2; case 12
+ .short _0205129C - _020510BA - 2; case 13
+ .short _020512A8 - _020510BA - 2; case 14
+ .short _020512CA - _020510BA - 2; case 15
+ .short _020512E0 - _020510BA - 2; case 16
+ .short _0205130E - _020510BA - 2; case 17
+ .short _02051334 - _020510BA - 2; case 18
+ .short _02051346 - _020510BA - 2; case 19
+ .short _0205138A - _020510BA - 2; case 20
+ .short _0205136A - _020510BA - 2; case 21
+ .short _020513A6 - _020510BA - 2; case 22
+ .short _020513B6 - _020510BA - 2; case 23
+ .short _020513D4 - _020510BA - 2; case 24
+ .short _020513F2 - _020510BA - 2; case 25
+ .short _02051406 - _020510BA - 2; case 26
+ .short _02051472 - _020510BA - 2; case 27
+ .short _020514A8 - _020510BA - 2; case 28
+ .short _020514BE - _020510BA - 2; case 29
+ .short _02051508 - _020510BA - 2; case 30
+ .short _02051540 - _020510BA - 2; case 31
+ .short _02051566 - _020510BA - 2; case 32
+ .short _02051686 - _020510BA - 2; case 33
+ .short _020516B6 - _020510BA - 2; case 34
+ .short _020516CE - _020510BA - 2; case 35
+ .short _020515BA - _020510BA - 2; case 36
+ .short _020515F8 - _020510BA - 2; case 37
+ .short _02051614 - _020510BA - 2; case 38
+ .short _020516DE - _020510BA - 2; case 39
+ .short _020517B8 - _020510BA - 2; case 40
+ .short _02051702 - _020510BA - 2; case 41
+ .short _02051744 - _020510BA - 2; case 42
+ .short _02051766 - _020510BA - 2; case 43
+ .short _02051798 - _020510BA - 2; case 44
+_02051114:
+ add r0, r4, #0x0
+ add r0, #0x43
+ ldrb r0, [r0, #0x0]
+ sub r1, r0, #0x1
+ add r0, r4, #0x0
+ add r0, #0x43
+ strb r1, [r0, #0x0]
+ add r0, r4, #0x0
+ add r0, #0x43
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x0
+ bne _020511DC
+ mov r0, #0x1
+ str r0, [r4, #0x34]
+ bl FUN_0204ECC0
+ b _020517B8
+_02051136:
+ ldr r0, [r4, #0x2c]
+ ldr r2, [r4, #0xc]
+ mov r1, #0x1
+ bl FUN_0200A8E0
+ ldr r1, [r4, #0xc]
+ add r0, r4, #0x0
+ bl FUN_020517C0
+ str r0, [r4, #0x30]
+ mov r0, #0x2
+ str r0, [r4, #0x34]
+ b _020517B8
+_02051150:
+ ldr r0, [r4, #0x30]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_020546C8
+ cmp r0, #0x0
+ beq _020511DC
+ mov r0, #0x5d
+ bl FUN_02031588
+ mov r0, #0x3
+ str r0, [r4, #0x34]
+ b _020517B8
+_0205116A:
+ mov r0, #0x5d
+ bl FUN_020315D8
+ cmp r0, #0x0
+ beq _0205118A
+ mov r0, #0x7
+ str r0, [r4, #0x34]
+ ldr r0, [r4, #0x24]
+ ldr r0, [r0, #0x34]
+ bl FUN_02058768
+ ldr r1, [r4, #0x50]
+ ldr r2, [r4, #0x8]
+ mov r0, #0x1
+ blx r2
+ b _020517B8
+_0205118A:
+ ldr r0, _020514A4 ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #0x2
+ tst r0, r1
+ beq _020511DC
+ mov r0, #0x4
+ str r0, [r4, #0x34]
+ mov r0, #0x5c
+ bl FUN_02031588
+ mov r0, #0x5
+ add r4, #0x43
+ strb r0, [r4, #0x0]
+ b _020517B8
+_020511A6:
+ mov r0, #0x5d
+ bl FUN_020315D8
+ cmp r0, #0x0
+ beq _020511C4
+ mov r0, #0x7
+ str r0, [r4, #0x34]
+ ldr r0, [r4, #0x24]
+ ldr r0, [r0, #0x34]
+ bl FUN_02058768
+ ldr r1, [r4, #0x50]
+ ldr r2, [r4, #0x8]
+ mov r0, #0x1
+ blx r2
+_020511C4:
+ add r0, r4, #0x0
+ add r0, #0x43
+ ldrb r0, [r0, #0x0]
+ sub r1, r0, #0x1
+ add r0, r4, #0x0
+ add r0, #0x43
+ strb r1, [r0, #0x0]
+ add r0, r4, #0x0
+ add r0, #0x43
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x0
+ beq _020511DE
+_020511DC:
+ b _020517B8
+_020511DE:
+ mov r0, #0x8
+ str r0, [r4, #0x34]
+ b _020517B8
+_020511E4:
+ add r0, r4, #0x0
+ bl FUN_02051998
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ add sp, #0x8
+ mov r0, #0x1
+ pop {r3-r5, pc}
+_020511F6:
+ add r0, r4, #0x0
+ bl FUN_02051998
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ bl FUN_0204F7FC
+ add sp, #0x8
+ mov r0, #0x1
+ pop {r3-r5, pc}
+_0205120C:
+ mov r0, #0x5d
+ bl FUN_020315D8
+ cmp r0, #0x0
+ beq _02051224
+ mov r0, #0x5
+ str r0, [r4, #0x34]
+ ldr r1, [r4, #0x50]
+ ldr r2, [r4, #0x8]
+ mov r0, #0x1
+ blx r2
+ b _020517B8
+_02051224:
+ ldr r1, [r4, #0x50]
+ ldr r2, [r4, #0x8]
+ mov r0, #0x0
+ blx r2
+ mov r0, #0x5
+ str r0, [r4, #0x34]
+ b _020517B8
+_02051232:
+ mov r0, #0xa
+ str r0, [r4, #0x34]
+ mov r0, #0x5
+ add r4, #0x44
+ strb r0, [r4, #0x0]
+ b _020517B8
+_0205123E:
+ add r1, r4, #0x0
+ add r1, #0x44
+ ldrb r1, [r1, #0x0]
+ cmp r1, #0x0
+ beq _02051256
+ add r0, r4, #0x0
+ add r0, #0x44
+ ldrb r0, [r0, #0x0]
+ add r4, #0x44
+ sub r0, r0, #0x1
+ strb r0, [r4, #0x0]
+ b _020517B8
+_02051256:
+ ldr r0, [r0, #0x38]
+ bl FUN_020553A0
+ bl FUN_0205AE28
+ cmp r0, #0x0
+ beq _020512FA
+ mov r0, #0xb
+ str r0, [r4, #0x34]
+ b _020517B8
+_0205126A:
+ bl FUN_0204ECC0
+ ldr r0, [r4, #0x2c]
+ ldr r2, [r4, #0xc]
+ mov r1, #0xd
+ bl FUN_0200A8E0
+ ldr r1, [r4, #0xc]
+ add r0, r4, #0x0
+ bl FUN_020517C0
+ str r0, [r4, #0x30]
+ mov r0, #0xc
+ str r0, [r4, #0x34]
+ b _020517B8
+_02051288:
+ ldr r0, [r4, #0x30]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_020546C8
+ cmp r0, #0x0
+ beq _020512FA
+ mov r0, #0xd
+ str r0, [r4, #0x34]
+ b _020517B8
+_0205129C:
+ mov r0, #0x0
+ bl FUN_021D7CA4
+ mov r0, #0xe
+ str r0, [r4, #0x34]
+ b _020517B8
+_020512A8:
+ add r0, r4, #0x0
+ add r0, #0x43
+ ldrb r0, [r0, #0x0]
+ sub r1, r0, #0x1
+ add r0, r4, #0x0
+ add r0, #0x43
+ strb r1, [r0, #0x0]
+ add r0, r4, #0x0
+ add r0, #0x43
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x0
+ bne _020512FA
+ bl FUN_0204ECC0
+ mov r0, #0xf
+ str r0, [r4, #0x34]
+ b _020517B8
+_020512CA:
+ add r0, r4, #0x0
+ mov r1, #0x0
+ bl FUN_02051810
+ add r0, r4, #0x0
+ mov r1, #0xb
+ bl FUN_02050ED4
+ mov r0, #0x10
+ str r0, [r4, #0x34]
+ b _020517B8
+_020512E0:
+ ldr r1, [r4, #0x24]
+ add r0, r4, #0x0
+ bl FUN_02050FC8
+ cmp r0, #0x0
+ beq _020512FA
+ ldr r0, [r4, #0x38]
+ cmp r0, #0x0
+ beq _020512FC
+ cmp r0, #0x1
+ beq _02051302
+ cmp r0, #0x2
+ beq _02051308
+_020512FA:
+ b _020517B8
+_020512FC:
+ mov r0, #0x14
+ str r0, [r4, #0x34]
+ b _020517B8
+_02051302:
+ mov r0, #0x13
+ str r0, [r4, #0x34]
+ b _020517B8
+_02051308:
+ mov r0, #0x11
+ str r0, [r4, #0x34]
+ b _020517B8
+_0205130E:
+ ldr r0, [r4, #0x24]
+ ldr r0, [r0, #0xc]
+ bl FUN_0206BB1C
+ add r2, r0, #0x0
+ mov r0, #0x0
+ str r0, [sp, #0x0]
+ mov r0, #0xb
+ str r0, [sp, #0x4]
+ add r3, r4, #0x0
+ add r3, #0x3c
+ ldrb r3, [r3, #0x0]
+ ldr r1, [r4, #0x24]
+ add r0, r4, #0x0
+ bl FUN_02050E48
+ mov r0, #0x12
+ str r0, [r4, #0x34]
+ b _020517B8
+_02051334:
+ ldr r1, [r4, #0x24]
+ add r0, r4, #0x0
+ bl FUN_02051020
+ cmp r0, #0x0
+ beq _02051410
+ mov r0, #0xf
+ str r0, [r4, #0x34]
+ b _020517B8
+_02051346:
+ ldr r0, [r4, #0x24]
+ bl FUN_0204649C
+ add r0, r4, #0x0
+ add r0, #0x88
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x3
+ beq _02051364
+ add r0, r4, #0x0
+ mov r1, #0x5
+ add r0, #0x43
+ strb r1, [r0, #0x0]
+ mov r0, #0x15
+ str r0, [r4, #0x34]
+ b _020517B8
+_02051364:
+ mov r0, #0x1a
+ str r0, [r4, #0x34]
+ b _020517B8
+_0205136A:
+ add r0, r4, #0x0
+ add r0, #0x3d
+ bl FUN_02033564
+ add r0, r4, #0x0
+ bl FUN_0205104C
+ cmp r0, #0x0
+ beq _02051410
+ add r0, r4, #0x0
+ mov r1, #0x5
+ add r0, #0x43
+ strb r1, [r0, #0x0]
+ mov r0, #0x0
+ str r0, [r4, #0x34]
+ b _020517B8
+_0205138A:
+ ldr r0, [r4, #0x24]
+ bl FUN_0204649C
+ add r0, r4, #0x0
+ add r0, #0x88
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x3
+ beq _020513A0
+ mov r0, #0x16
+ str r0, [r4, #0x34]
+ b _020517B8
+_020513A0:
+ mov r0, #0x1a
+ str r0, [r4, #0x34]
+ b _020517B8
+_020513A6:
+ add r0, r4, #0x0
+ bl FUN_0205104C
+ cmp r0, #0x0
+ beq _02051410
+ mov r0, #0x8
+ str r0, [r4, #0x34]
+ b _020517B8
+_020513B6:
+ add r0, r4, #0x0
+ add r0, #0x44
+ ldrb r0, [r0, #0x0]
+ sub r1, r0, #0x1
+ add r0, r4, #0x0
+ add r0, #0x44
+ strb r1, [r0, #0x0]
+ add r0, r4, #0x0
+ add r0, #0x44
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x0
+ bne _02051410
+ mov r0, #0x18
+ str r0, [r4, #0x34]
+ b _020517B8
+_020513D4:
+ bl FUN_0204ECC0
+ ldr r0, [r4, #0x2c]
+ ldr r2, [r4, #0xc]
+ mov r1, #0x13
+ bl FUN_0200A8E0
+ ldr r1, [r4, #0xc]
+ add r0, r4, #0x0
+ bl FUN_020517C0
+ str r0, [r4, #0x30]
+ mov r0, #0x19
+ str r0, [r4, #0x34]
+ b _020517B8
+_020513F2:
+ ldr r0, [r4, #0x30]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_020546C8
+ cmp r0, #0x0
+ beq _02051410
+ mov r0, #0xd
+ str r0, [r4, #0x34]
+ b _020517B8
+_02051406:
+ add r0, r4, #0x0
+ bl FUN_0205104C
+ cmp r0, #0x0
+ bne _02051412
+_02051410:
+ b _020517B8
+_02051412:
+ bl FUN_0205106C
+ cmp r0, #0x0
+ beq _02051420
+ mov r0, #0x5
+ str r0, [r4, #0x34]
+ b _020517B8
+_02051420:
+ ldr r0, [r4, #0x38]
+ cmp r0, #0x0
+ beq _0205142A
+ mov r1, #0x1
+ b _0205142C
+_0205142A:
+ mov r1, #0x0
+_0205142C:
+ add r0, r4, #0x0
+ add r0, #0x82
+ strb r1, [r0, #0x0]
+ add r1, r4, #0x0
+ add r1, #0x82
+ ldrb r1, [r1, #0x0]
+ add r0, r4, #0x0
+ bl FUN_020519F0
+ mov r0, #0x0
+ bl FUN_02031588
+ ldr r0, [r4, #0x28]
+ ldr r2, [r4, #0x74]
+ mov r1, #0x0
+ bl FUN_0200ABC0
+ ldr r0, [r4, #0x2c]
+ ldr r2, [r4, #0xc]
+ mov r1, #0xe
+ bl FUN_0200A8E0
+ ldr r0, [r4, #0x28]
+ ldr r1, [r4, #0x10]
+ ldr r2, [r4, #0xc]
+ bl FUN_0200B7B8
+ ldr r1, [r4, #0x10]
+ add r0, r4, #0x0
+ bl FUN_020517C0
+ str r0, [r4, #0x30]
+ mov r0, #0x1b
+ str r0, [r4, #0x34]
+ b _020517B8
+_02051472:
+ ldr r0, [r4, #0x30]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_020546C8
+ cmp r0, #0x0
+ beq _02051574
+ bl FUN_0205106C
+ cmp r0, #0x0
+ beq _0205148E
+ mov r0, #0x5
+ str r0, [r4, #0x34]
+ b _020517B8
+_0205148E:
+ mov r0, #0x0
+ bl FUN_020315D8
+ cmp r0, #0x0
+ beq _02051574
+ add r0, r4, #0x0
+ bl FUN_02051A38
+ mov r0, #0x1c
+ str r0, [r4, #0x34]
+ b _020517B8
+ .balign 4
+_020514A4: .word 0x021C48B8
+_020514A8:
+ add r0, r4, #0x0
+ bl FUN_02051A80
+ cmp r0, #0x0
+ beq _02051574
+ mov r0, #0x1
+ bl FUN_02031588
+ mov r0, #0x1d
+ str r0, [r4, #0x34]
+ b _020517B8
+_020514BE:
+ mov r0, #0x1
+ bl FUN_020315D8
+ cmp r0, #0x0
+ beq _02051574
+ add r0, r4, #0x0
+ bl FUN_02051A90
+ add r1, r4, #0x0
+ add r1, #0x83
+ strb r0, [r1, #0x0]
+ add r0, r4, #0x0
+ add r0, #0x82
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x0
+ beq _02051502
+ add r0, r4, #0x0
+ add r0, #0x83
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x0
+ beq _02051502
+ ldr r0, [r4, #0x2c]
+ ldr r2, [r4, #0xc]
+ mov r1, #0x14
+ bl FUN_0200A8E0
+ ldr r1, [r4, #0xc]
+ add r0, r4, #0x0
+ bl FUN_020517C0
+ str r0, [r4, #0x30]
+ mov r0, #0x1e
+ str r0, [r4, #0x34]
+ b _020517B8
+_02051502:
+ mov r0, #0x2a
+ str r0, [r4, #0x34]
+ b _020517B8
+_02051508:
+ ldr r0, [r4, #0x30]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_020546C8
+ cmp r0, #0x0
+ beq _02051574
+ add r0, r4, #0x0
+ mov r1, #0x0
+ add r0, #0x89
+ strb r1, [r0, #0x0]
+ ldr r0, [r4, #0x2c]
+ ldr r2, [r4, #0xc]
+ mov r1, #0x11
+ bl FUN_0200A8E0
+ ldr r1, [r4, #0xc]
+ add r0, r4, #0x0
+ bl FUN_020517C0
+ str r0, [r4, #0x30]
+ add r0, r4, #0x0
+ mov r1, #0x0
+ add r0, #0x84
+ strb r1, [r0, #0x0]
+ mov r0, #0x1f
+ str r0, [r4, #0x34]
+ b _020517B8
+_02051540:
+ ldr r0, [r4, #0x30]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_020546C8
+ cmp r0, #0x0
+ beq _02051574
+ add r0, r4, #0x0
+ bl FUN_02051AF0
+ add r1, r4, #0x0
+ add r1, #0x84
+ ldrb r1, [r1, #0x0]
+ add r0, r4, #0x0
+ bl FUN_02051B68
+ mov r0, #0x20
+ str r0, [r4, #0x34]
+ b _020517B8
+_02051566:
+ add r0, r4, #0x0
+ bl FUN_02051D54
+ cmp r0, #0x1
+ beq _02051576
+ cmp r0, #0x2
+ beq _0205158C
+_02051574:
+ b _020517B8
+_02051576:
+ add r0, r4, #0x0
+ bl FUN_02051E24
+ mov r0, #0x81
+ ldrsb r1, [r4, r0]
+ add r0, r4, #0x0
+ add r0, #0x84
+ strb r1, [r0, #0x0]
+ mov r0, #0x24
+ str r0, [r4, #0x34]
+ b _020517B8
+_0205158C:
+ add r0, r4, #0x0
+ bl FUN_02051E24
+ add r0, r4, #0x0
+ mov r1, #0xff
+ add r0, #0x84
+ strb r1, [r0, #0x0]
+ ldr r0, [r4, #0x2c]
+ ldr r2, [r4, #0xc]
+ mov r1, #0xf
+ bl FUN_0200A8E0
+ ldr r1, [r4, #0xc]
+ add r0, r4, #0x0
+ bl FUN_020517C0
+ str r0, [r4, #0x30]
+ mov r0, #0x2
+ bl FUN_02031588
+ mov r0, #0x27
+ str r0, [r4, #0x34]
+ b _020517B8
+_020515BA:
+ add r1, r4, #0x0
+ add r1, #0x84
+ ldrb r1, [r1, #0x0]
+ ldr r0, [r4, #0x50]
+ bl FUN_0206B9B0
+ bl FUN_020690E4
+ add r2, r0, #0x0
+ ldr r0, [r4, #0x28]
+ mov r1, #0x1
+ bl FUN_0200AC60
+ ldr r0, [r4, #0x2c]
+ ldr r2, [r4, #0xc]
+ mov r1, #0x12
+ bl FUN_0200A8E0
+ ldr r0, [r4, #0x28]
+ ldr r1, [r4, #0x10]
+ ldr r2, [r4, #0xc]
+ bl FUN_0200B7B8
+ ldr r1, [r4, #0x10]
+ add r0, r4, #0x0
+ bl FUN_020517C0
+ str r0, [r4, #0x30]
+ mov r0, #0x25
+ str r0, [r4, #0x34]
+ b _020517B8
+_020515F8:
+ ldr r0, [r4, #0x30]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_020546C8
+ cmp r0, #0x0
+ beq _0205168E
+ add r0, r4, #0x0
+ mov r1, #0x0
+ bl FUN_02051C88
+ mov r0, #0x26
+ str r0, [r4, #0x34]
+ b _020517B8
+_02051614:
+ add r0, r4, #0x0
+ bl FUN_02051D54
+ cmp r0, #0x1
+ beq _02051642
+ cmp r0, #0x2
+ bne _0205168E
+ add r0, r4, #0x0
+ bl FUN_02051E24
+ ldr r0, [r4, #0x2c]
+ ldr r2, [r4, #0xc]
+ mov r1, #0x11
+ bl FUN_0200A8E0
+ ldr r1, [r4, #0xc]
+ add r0, r4, #0x0
+ bl FUN_020517C0
+ str r0, [r4, #0x30]
+ mov r0, #0x1f
+ str r0, [r4, #0x34]
+ b _020517B8
+_02051642:
+ mov r0, #0x81
+ ldrsb r0, [r4, r0]
+ cmp r0, #0x1
+ bne _0205167A
+ add r0, r4, #0x0
+ bl FUN_02051E24
+ ldr r0, [r4, #0x2c]
+ ldr r2, [r4, #0xc]
+ mov r1, #0xe
+ bl FUN_0200A8E0
+ ldr r0, [r4, #0x28]
+ ldr r1, [r4, #0x10]
+ ldr r2, [r4, #0xc]
+ bl FUN_0200B7B8
+ ldr r1, [r4, #0x10]
+ add r0, r4, #0x0
+ bl FUN_020517C0
+ str r0, [r4, #0x30]
+ mov r0, #0x2
+ bl FUN_02031588
+ mov r0, #0x27
+ str r0, [r4, #0x34]
+ b _020517B8
+_0205167A:
+ mov r0, #0x0
+ bl FUN_021D7CA4
+ mov r0, #0x21
+ str r0, [r4, #0x34]
+ b _020517B8
+_02051686:
+ bl FUN_0200E308
+ cmp r0, #0x0
+ bne _02051690
+_0205168E:
+ b _020517B8
+_02051690:
+ add r0, r4, #0x0
+ mov r1, #0x0
+ bl FUN_02051810
+ mov r0, #0x1
+ str r0, [sp, #0x0]
+ mov r0, #0xb
+ str r0, [sp, #0x4]
+ add r3, r4, #0x0
+ add r3, #0x84
+ ldrb r3, [r3, #0x0]
+ ldr r1, [r4, #0x24]
+ ldr r2, [r4, #0x50]
+ add r0, r4, #0x0
+ bl FUN_02050E48
+ mov r0, #0x22
+ str r0, [r4, #0x34]
+ b _020517B8
+_020516B6:
+ ldr r1, [r4, #0x24]
+ add r0, r4, #0x0
+ bl FUN_02051020
+ cmp r0, #0x0
+ beq _020517B8
+ ldr r0, [r4, #0x24]
+ bl FUN_0204649C
+ mov r0, #0x23
+ str r0, [r4, #0x34]
+ b _020517B8
+_020516CE:
+ add r0, r4, #0x0
+ bl FUN_0205104C
+ cmp r0, #0x0
+ beq _020517B8
+ mov r0, #0x24
+ str r0, [r4, #0x34]
+ b _020517B8
+_020516DE:
+ ldr r0, [r4, #0x30]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_020546C8
+ cmp r0, #0x0
+ beq _020517B8
+ mov r0, #0x2
+ bl FUN_020315D8
+ cmp r0, #0x0
+ beq _020517B8
+ add r0, r4, #0x0
+ bl FUN_02051AA4
+ mov r0, #0x29
+ str r0, [r4, #0x34]
+ b _020517B8
+_02051702:
+ add r0, r4, #0x0
+ bl FUN_02051AE0
+ cmp r0, #0x0
+ beq _020517B8
+ add r0, r4, #0x0
+ add r0, #0x84
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0xff
+ bne _02051722
+ mov r0, #0x4
+ bl FUN_02031588
+ mov r0, #0x2c
+ str r0, [r4, #0x34]
+ b _020517B8
+_02051722:
+ add r0, r4, #0x0
+ add r0, #0x85
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0xff
+ bne _02051732
+ mov r0, #0x2a
+ str r0, [r4, #0x34]
+ b _020517B8
+_02051732:
+ add r0, r4, #0x0
+ bl FUN_02051B1C
+ mov r0, #0x5d
+ bl FUN_02031588
+ mov r0, #0x2
+ str r0, [r4, #0x34]
+ b _020517B8
+_02051744:
+ ldr r0, [r4, #0x2c]
+ ldr r2, [r4, #0xc]
+ mov r1, #0xf
+ bl FUN_0200A8E0
+ ldr r1, [r4, #0xc]
+ add r0, r4, #0x0
+ bl FUN_020517C0
+ str r0, [r4, #0x30]
+ add r0, r4, #0x0
+ mov r1, #0x0
+ add r0, #0x43
+ strb r1, [r0, #0x0]
+ mov r0, #0x2b
+ str r0, [r4, #0x34]
+ b _020517B8
+_02051766:
+ ldr r0, [r4, #0x30]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_020546C8
+ cmp r0, #0x0
+ beq _020517B8
+ add r0, r4, #0x0
+ add r0, #0x43
+ ldrb r0, [r0, #0x0]
+ add r1, r0, #0x1
+ add r0, r4, #0x0
+ add r0, #0x43
+ strb r1, [r0, #0x0]
+ add r0, r4, #0x0
+ add r0, #0x43
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x3c
+ bls _020517B8
+ mov r0, #0x4
+ bl FUN_02031588
+ mov r0, #0x2c
+ str r0, [r4, #0x34]
+ b _020517B8
+_02051798:
+ mov r0, #0x4
+ bl FUN_020315D8
+ cmp r0, #0x0
+ beq _020517B8
+ add r0, r4, #0x0
+ add r0, #0x14
+ mov r1, #0x0
+ bl FUN_0200D0E0
+ mov r0, #0x0
+ ldr r2, [r4, #0x8]
+ add r1, r0, #0x0
+ blx r2
+ mov r0, #0x5
+ str r0, [r4, #0x34]
+_020517B8:
+ mov r0, #0x0
+ add sp, #0x8
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_020517C0
+FUN_020517C0: ; 0x020517C0
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ add r4, r5, #0x0
+ add r4, #0x14
+ add r0, r4, #0x0
+ add r6, r1, #0x0
+ bl FUN_02019048
+ cmp r0, #0x0
+ bne _020517F2
+ ldr r0, [r5, #0x24]
+ add r1, r4, #0x0
+ ldr r0, [r0, #0x8]
+ mov r2, #0x3
+ bl FUN_020545B8
+ ldr r0, [r5, #0x24]
+ ldr r0, [r0, #0xc]
+ bl LoadPlayerDataAddress
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_02054608
+ b _020517F8
+_020517F2:
+ add r0, r4, #0x0
+ bl FUN_0205464C
+_020517F8:
+ ldr r0, [r5, #0x24]
+ ldr r0, [r0, #0xc]
+ bl LoadPlayerDataAddress
+ add r2, r0, #0x0
+ add r0, r4, #0x0
+ add r1, r6, #0x0
+ mov r3, #0x1
+ bl FUN_02054658
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_02051810
+FUN_02051810: ; 0x02051810
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r0, #0x14
+ add r4, r1, #0x0
+ bl FUN_02019048
+ cmp r0, #0x0
+ beq _02051846
+ cmp r4, #0x0
+ beq _02051836
+ add r0, r5, #0x0
+ add r0, #0x14
+ mov r1, #0x0
+ bl FUN_0200D0E0
+ add r0, r5, #0x0
+ add r0, #0x14
+ bl FUN_02019570
+_02051836:
+ add r0, r5, #0x0
+ add r0, #0x14
+ bl FUN_02019178
+ add r0, r5, #0x0
+ add r0, #0x14
+ bl FUN_0201901C
+_02051846:
+ add r0, r5, #0x0
+ add r0, #0x54
+ bl FUN_02019048
+ cmp r0, #0x0
+ beq _02051862
+ add r0, r5, #0x0
+ add r0, #0x54
+ bl FUN_02019178
+ add r0, r5, #0x0
+ add r0, #0x54
+ bl FUN_0201901C
+_02051862:
+ add r0, r5, #0x0
+ add r0, #0x64
+ bl FUN_02019048
+ cmp r0, #0x0
+ beq _0205187E
+ add r0, r5, #0x0
+ add r0, #0x64
+ bl FUN_02019178
+ add r5, #0x64
+ add r0, r5, #0x0
+ bl FUN_0201901C
+_0205187E:
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_02051880
+FUN_02051880: ; 0x02051880
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ ldr r0, [r5, #0x10]
+ add r6, r1, #0x0
+ cmp r0, #0x0
+ beq _0205188E
+ b _02051992
+_0205188E:
+ mov r0, #0xb
+ mov r1, #0x8c
+ bl FUN_020169D8
+ add r4, r0, #0x0
+ mov r1, #0x0
+ mov r2, #0x8c
+ blx MI_CpuFill8
+ add r0, r4, #0x0
+ mov r1, #0x5
+ add r0, #0x43
+ strb r1, [r0, #0x0]
+ str r5, [r4, #0x24]
+ str r6, [r4, #0x8]
+ mov r0, #0xb
+ bl FUN_0200AA80
+ str r0, [r4, #0x28]
+ mov r0, #0x0
+ mov r1, #0x1a
+ mov r2, #0x9
+ mov r3, #0xb
+ bl FUN_0200A86C
+ str r0, [r4, #0x2c]
+ mov r0, #0xc8
+ mov r1, #0xb
+ bl FUN_020219F4
+ str r0, [r4, #0xc]
+ mov r0, #0xc8
+ mov r1, #0xb
+ bl FUN_020219F4
+ str r0, [r4, #0x10]
+ add r0, r4, #0x0
+ add r0, #0x14
+ bl FUN_0201901C
+ add r0, r4, #0x0
+ add r0, #0x54
+ bl FUN_0201901C
+ add r0, r4, #0x0
+ add r0, #0x64
+ bl FUN_0201901C
+ mov r0, #0xb
+ bl FUN_02013690
+ str r0, [r4, #0x78]
+ bl FUN_02033534
+ add r1, r4, #0x0
+ add r1, #0x88
+ strb r0, [r1, #0x0]
+ mov r1, #0x0
+ str r1, [r4, #0x4c]
+ str r1, [r4, #0x48]
+ add r0, r4, #0x0
+ str r1, [r4, #0x50]
+ add r0, #0x89
+ strb r1, [r0, #0x0]
+ bl FUN_02031190
+ add r1, r4, #0x0
+ add r1, #0x86
+ strh r0, [r1, #0x0]
+ add r0, r4, #0x0
+ add r0, #0x86
+ ldrh r1, [r0, #0x0]
+ mov r0, #0x1
+ eor r0, r1
+ bl FUN_0202DFA4
+ str r0, [r4, #0x74]
+ add r0, r4, #0x0
+ add r0, #0x88
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x3
+ beq _02051938
+ cmp r0, #0x4
+ beq _0205196E
+ b _02051974
+_02051938:
+ bl FUN_02051E54
+ add r6, r0, #0x0
+ mov r0, #0xb
+ add r1, r6, #0x0
+ bl FUN_020169D8
+ str r0, [r4, #0x4c]
+ mov r0, #0xb
+ add r1, r6, #0x0
+ bl FUN_020169D8
+ str r0, [r4, #0x48]
+ mov r0, #0xb
+ bl FUN_0206B8AC
+ mov r1, #0x3
+ str r0, [r4, #0x50]
+ bl FUN_0206B8CC
+ add r0, r4, #0x0
+ mov r1, #0x5
+ add r0, #0x44
+ strb r1, [r0, #0x0]
+ mov r0, #0x17
+ str r0, [r4, #0x34]
+ b _02051988
+_0205196E:
+ mov r0, #0x9
+ str r0, [r4, #0x34]
+ b _02051988
+_02051974:
+ ldr r0, [r4, #0x24]
+ add r0, #0xac
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ beq _02051984
+ mov r0, #0x9
+ str r0, [r4, #0x34]
+ b _02051988
+_02051984:
+ mov r0, #0x0
+ str r0, [r4, #0x34]
+_02051988:
+ ldr r1, _02051994 ; =FUN_02051094
+ add r0, r5, #0x0
+ add r2, r4, #0x0
+ bl FUN_020463CC
+_02051992:
+ pop {r4-r6, pc}
+ .balign 4
+_02051994: .word FUN_02051094
+
+ thumb_func_start FUN_02051998
+FUN_02051998: ; 0x02051998
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r0, [r4, #0x50]
+ cmp r0, #0x0
+ beq _020519A6
+ bl FUN_02016A18
+_020519A6:
+ ldr r0, [r4, #0x4c]
+ cmp r0, #0x0
+ beq _020519B0
+ bl FUN_02016A18
+_020519B0:
+ ldr r0, [r4, #0x48]
+ cmp r0, #0x0
+ beq _020519BA
+ bl FUN_02016A18
+_020519BA:
+ ldr r0, [r4, #0x2c]
+ bl FUN_0200A8B8
+ ldr r0, [r4, #0x28]
+ bl FUN_0200AB18
+ ldr r0, [r4, #0xc]
+ bl FUN_02021A20
+ ldr r0, [r4, #0x10]
+ bl FUN_02021A20
+ ldr r0, [r4, #0x78]
+ bl FUN_020136C0
+ add r0, r4, #0x0
+ mov r1, #0x1
+ bl FUN_02051810
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_020519E4
+FUN_020519E4: ; 0x020519E4
+ ldr r3, _020519EC ; =FUN_0204652C
+ ldr r0, [r0, #0x10]
+ bx r3
+ nop
+_020519EC: .word FUN_0204652C
+
+ thumb_func_start FUN_020519F0
+FUN_020519F0: ; 0x020519F0
+ push {r3-r7, lr}
+ add r7, r0, #0x0
+ ldr r0, [r7, #0x24]
+ add r5, r1, #0x0
+ ldr r0, [r0, #0xc]
+ bl FUN_0206BB1C
+ str r0, [sp, #0x0]
+ ldr r4, [r7, #0x4c]
+ bl FUN_020690C4
+ add r6, r0, #0x0
+ lsl r0, r6, #0x1
+ add r0, r6, r0
+ str r5, [r4, r0]
+ ldr r0, [r4, r0]
+ cmp r0, #0x0
+ beq _02051A34
+ mov r5, #0x0
+_02051A16:
+ add r1, r7, r5
+ add r1, #0x3d
+ ldrb r1, [r1, #0x0]
+ ldr r0, [sp, #0x0]
+ sub r1, r1, #0x1
+ bl FUN_0206B9B0
+ add r1, r4, #0x0
+ add r2, r6, #0x0
+ blx MI_CpuCopy8
+ add r5, r5, #0x1
+ add r4, r4, r6
+ cmp r5, #0x3
+ blt _02051A16
+_02051A34:
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_02051A38
+FUN_02051A38: ; 0x02051A38
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r0, #0x89
+ ldrb r1, [r0, #0x0]
+ mov r0, #0x1
+ tst r1, r0
+ bne _02051A7C
+ ldr r4, [r5, #0x4c]
+ bl FUN_02051E54
+ add r2, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x86
+ ldrh r0, [r0, #0x0]
+ cmp r0, #0x0
+ bne _02051A62
+ mov r0, #0x6a
+ add r1, r4, #0x0
+ bl FUN_02030B3C
+ b _02051A6A
+_02051A62:
+ mov r0, #0x6a
+ add r1, r4, #0x0
+ bl FUN_02030A78
+_02051A6A:
+ cmp r0, #0x0
+ beq _02051A7C
+ add r1, r5, #0x0
+ add r1, #0x89
+ ldrb r2, [r1, #0x0]
+ mov r1, #0x1
+ add r5, #0x89
+ orr r1, r2
+ strb r1, [r5, #0x0]
+_02051A7C:
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_02051A80
+FUN_02051A80: ; 0x02051A80
+ add r0, #0x89
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x3
+ bne _02051A8C
+ mov r0, #0x1
+ bx lr
+_02051A8C:
+ mov r0, #0x0
+ bx lr
+
+ thumb_func_start FUN_02051A90
+FUN_02051A90: ; 0x02051A90
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl FUN_020690C4
+ lsl r1, r0, #0x1
+ ldr r2, [r4, #0x48]
+ add r0, r0, r1
+ ldr r0, [r2, r0]
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02051AA4
+FUN_02051AA4: ; 0x02051AA4
+ push {r4, lr}
+ add r4, r0, #0x0
+ add r0, #0x86
+ ldrh r0, [r0, #0x0]
+ cmp r0, #0x0
+ bne _02051ABE
+ add r1, r4, #0x0
+ mov r0, #0x6b
+ add r1, #0x84
+ mov r2, #0x1
+ bl FUN_02030BC4
+ b _02051ACA
+_02051ABE:
+ add r1, r4, #0x0
+ mov r0, #0x6b
+ add r1, #0x84
+ mov r2, #0x1
+ bl FUN_02030ADC
+_02051ACA:
+ cmp r0, #0x0
+ beq _02051ADC
+ add r1, r4, #0x0
+ add r1, #0x89
+ ldrb r2, [r1, #0x0]
+ mov r1, #0x1
+ add r4, #0x89
+ orr r1, r2
+ strb r1, [r4, #0x0]
+_02051ADC:
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02051AE0
+FUN_02051AE0: ; 0x02051AE0
+ add r0, #0x89
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x3
+ bne _02051AEC
+ mov r0, #0x1
+ bx lr
+_02051AEC:
+ mov r0, #0x0
+ bx lr
+
+ thumb_func_start FUN_02051AF0
+FUN_02051AF0: ; 0x02051AF0
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ bl FUN_020690C4
+ add r6, r0, #0x0
+ ldr r0, [r5, #0x50]
+ mov r1, #0x3
+ bl FUN_0206B8CC
+ mov r4, #0x0
+_02051B04:
+ add r1, r4, #0x0
+ ldr r2, [r5, #0x48]
+ mul r1, r6
+ ldr r0, [r5, #0x50]
+ add r1, r2, r1
+ bl FUN_0206B900
+ add r4, r4, #0x1
+ cmp r4, #0x3
+ blt _02051B04
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_02051B1C
+FUN_02051B1C: ; 0x02051B1C
+ push {r4-r6, lr}
+ add r6, r0, #0x0
+ bl FUN_020690C4
+ add r4, r0, #0x0
+ add r0, r6, #0x0
+ add r0, #0x84
+ ldrb r0, [r0, #0x0]
+ ldr r2, [r6, #0x48]
+ ldr r3, [r6, #0x4c]
+ add r1, r0, #0x0
+ mul r1, r4
+ add r0, r2, r1
+ add r1, r6, #0x0
+ add r1, #0x85
+ ldrb r1, [r1, #0x0]
+ add r2, r1, #0x0
+ mul r2, r4
+ add r1, r3, r2
+ add r2, r4, #0x0
+ blx MI_CpuCopy8
+ ldr r0, [r6, #0x50]
+ mov r1, #0x3
+ bl FUN_0206B8CC
+ mov r5, #0x0
+_02051B52:
+ add r1, r5, #0x0
+ ldr r2, [r6, #0x4c]
+ mul r1, r4
+ ldr r0, [r6, #0x50]
+ add r1, r2, r1
+ bl FUN_0206B900
+ add r5, r5, #0x1
+ cmp r5, #0x3
+ blt _02051B52
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_02051B68
+FUN_02051B68: ; 0x02051B68
+ push {r4-r7, lr}
+ sub sp, #0x24
+ add r5, r0, #0x0
+ str r0, [sp, #0x20]
+ add r0, #0x54
+ str r1, [sp, #0x14]
+ str r0, [sp, #0x20]
+ bl FUN_02019048
+ cmp r0, #0x0
+ bne _02051C34
+ ldr r2, _02051C84 ; =0x0000016A
+ mov r0, #0x1
+ mov r1, #0x1a
+ mov r3, #0x4
+ bl FUN_0200A86C
+ str r0, [sp, #0x18]
+ bl FUN_020690C4
+ str r0, [sp, #0x1c]
+ mov r0, #0x9
+ str r0, [sp, #0x0]
+ mov r1, #0xa
+ str r1, [sp, #0x4]
+ mov r0, #0x8
+ str r0, [sp, #0x8]
+ mov r0, #0xd
+ str r0, [sp, #0xc]
+ str r1, [sp, #0x10]
+ ldr r0, [r5, #0x24]
+ ldr r1, [sp, #0x20]
+ ldr r0, [r0, #0x8]
+ mov r2, #0x3
+ mov r3, #0x15
+ bl FUN_02019064
+ mov r0, #0x0
+ str r0, [sp, #0x0]
+ mov r0, #0x4
+ str r0, [sp, #0x4]
+ ldr r0, [r5, #0x24]
+ mov r1, #0x3
+ ldr r0, [r0, #0x8]
+ mov r2, #0x1
+ mov r3, #0xb
+ bl FUN_0200CB00
+ ldr r0, [sp, #0x20]
+ mov r1, #0xf
+ bl FUN_02019620
+ mov r7, #0x0
+ add r6, r7, #0x0
+ add r4, r7, #0x0
+_02051BD6:
+ ldr r0, [r5, #0x48]
+ mov r1, #0x5
+ add r0, r0, r6
+ mov r2, #0x0
+ bl FUN_020671BC
+ add r1, r0, #0x0
+ ldr r0, [sp, #0x18]
+ ldr r2, [r5, #0xc]
+ bl FUN_0200A8E0
+ str r4, [sp, #0x0]
+ mov r0, #0xff
+ str r0, [sp, #0x4]
+ mov r0, #0x0
+ str r0, [sp, #0x8]
+ ldr r0, [sp, #0x20]
+ ldr r2, [r5, #0xc]
+ mov r1, #0x0
+ mov r3, #0x10
+ bl FUN_0201BD84
+ ldr r0, [sp, #0x1c]
+ add r7, r7, #0x1
+ add r6, r6, r0
+ add r4, #0x10
+ cmp r7, #0x3
+ blt _02051BD6
+ ldr r0, [r5, #0x2c]
+ ldr r2, [r5, #0xc]
+ mov r1, #0x15
+ bl FUN_0200A8E0
+ lsl r0, r7, #0x4
+ str r0, [sp, #0x0]
+ mov r0, #0xff
+ str r0, [sp, #0x4]
+ mov r1, #0x0
+ str r1, [sp, #0x8]
+ ldr r0, [sp, #0x20]
+ ldr r2, [r5, #0xc]
+ mov r3, #0x10
+ bl FUN_0201BD84
+ ldr r0, [sp, #0x18]
+ bl FUN_0200A8B8
+_02051C34:
+ mov r0, #0x10
+ str r0, [sp, #0x0]
+ ldr r0, [sp, #0x20]
+ mov r2, #0x0
+ ldrb r0, [r0, #0x8]
+ mov r1, #0xf
+ add r3, r2, #0x0
+ lsl r0, r0, #0x13
+ lsr r0, r0, #0x10
+ str r0, [sp, #0x4]
+ ldr r0, [sp, #0x20]
+ bl FUN_020196F4
+ ldr r3, [sp, #0x14]
+ add r1, r5, #0x0
+ ldr r0, [r5, #0x78]
+ add r1, #0x54
+ mov r2, #0x0
+ lsl r3, r3, #0x4
+ bl FUN_020136F8
+ add r0, r5, #0x0
+ add r0, #0x54
+ mov r1, #0x0
+ mov r2, #0x1
+ mov r3, #0xb
+ bl FUN_0200CCA4
+ add r1, r5, #0x0
+ ldr r0, [sp, #0x14]
+ add r1, #0x81
+ strb r0, [r1, #0x0]
+ add r0, r5, #0x0
+ mov r1, #0x4
+ add r0, #0x80
+ strb r1, [r0, #0x0]
+ ldr r0, [sp, #0x20]
+ str r0, [r5, #0x7c]
+ add sp, #0x24
+ pop {r4-r7, pc}
+ .balign 4
+_02051C84: .word 0x0000016A
+
+ thumb_func_start FUN_02051C88
+FUN_02051C88: ; 0x02051C88
+ push {r3-r7, lr}
+ sub sp, #0x18
+ add r5, r0, #0x0
+ add r7, r5, #0x0
+ add r7, #0x64
+ add r0, r7, #0x0
+ str r1, [sp, #0x14]
+ bl FUN_02019048
+ cmp r0, #0x0
+ bne _02051D0A
+ mov r0, #0xb
+ str r0, [sp, #0x0]
+ str r0, [sp, #0x4]
+ mov r0, #0x6
+ str r0, [sp, #0x8]
+ mov r0, #0xd
+ str r0, [sp, #0xc]
+ mov r0, #0x5a
+ str r0, [sp, #0x10]
+ ldr r0, [r5, #0x24]
+ add r1, r7, #0x0
+ ldr r0, [r0, #0x8]
+ mov r2, #0x3
+ mov r3, #0x14
+ bl FUN_02019064
+ mov r0, #0x0
+ str r0, [sp, #0x0]
+ mov r0, #0x4
+ str r0, [sp, #0x4]
+ ldr r0, [r5, #0x24]
+ mov r1, #0x3
+ ldr r0, [r0, #0x8]
+ mov r2, #0x1
+ mov r3, #0xb
+ bl FUN_0200CB00
+ add r0, r7, #0x0
+ mov r1, #0xf
+ bl FUN_02019620
+ mov r6, #0x0
+ add r4, r6, #0x0
+_02051CE0:
+ add r1, r6, #0x0
+ ldr r0, [r5, #0x2c]
+ ldr r2, [r5, #0xc]
+ add r1, #0x16
+ bl FUN_0200A8E0
+ str r4, [sp, #0x0]
+ mov r0, #0xff
+ str r0, [sp, #0x4]
+ mov r0, #0x0
+ str r0, [sp, #0x8]
+ ldr r2, [r5, #0xc]
+ add r0, r7, #0x0
+ mov r1, #0x0
+ mov r3, #0x10
+ bl FUN_0201BD84
+ add r6, r6, #0x1
+ add r4, #0x10
+ cmp r6, #0x3
+ blt _02051CE0
+_02051D0A:
+ add r0, r5, #0x0
+ mov r1, #0x3
+ add r0, #0x80
+ strb r1, [r0, #0x0]
+ add r1, r5, #0x0
+ ldr r0, [sp, #0x14]
+ str r7, [r5, #0x7c]
+ add r1, #0x81
+ strb r0, [r1, #0x0]
+ mov r0, #0x10
+ str r0, [sp, #0x0]
+ ldrb r0, [r7, #0x8]
+ mov r2, #0x0
+ mov r1, #0xf
+ lsl r0, r0, #0x13
+ lsr r0, r0, #0x10
+ str r0, [sp, #0x4]
+ add r0, r7, #0x0
+ add r3, r2, #0x0
+ bl FUN_020196F4
+ ldr r3, [sp, #0x14]
+ ldr r0, [r5, #0x78]
+ ldr r1, [r5, #0x7c]
+ mov r2, #0x0
+ lsl r3, r3, #0x4
+ bl FUN_020136F8
+ ldr r0, [r5, #0x7c]
+ mov r1, #0x0
+ mov r2, #0x1
+ mov r3, #0xb
+ bl FUN_0200CCA4
+ add sp, #0x18
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_02051D54
+FUN_02051D54: ; 0x02051D54
+ push {r4, lr}
+ sub sp, #0x8
+ add r4, r0, #0x0
+ ldr r0, _02051E1C ; =0x021C48B8
+ mov r1, #0x40
+ ldr r0, [r0, #0x48]
+ tst r1, r0
+ beq _02051D7E
+ mov r0, #0x81
+ ldrsb r0, [r4, r0]
+ cmp r0, #0x0
+ bne _02051D74
+ add r0, r4, #0x0
+ add r0, #0x80
+ ldrb r0, [r0, #0x0]
+ b _02051D74
+_02051D74:
+ sub r1, r0, #0x1
+ add r0, r4, #0x0
+ add r0, #0x81
+ strb r1, [r0, #0x0]
+ b _02051DE0
+_02051D7E:
+ mov r1, #0x80
+ tst r1, r0
+ beq _02051DA2
+ mov r0, #0x81
+ ldrsb r1, [r4, r0]
+ add r0, r4, #0x0
+ add r0, #0x80
+ ldrb r0, [r0, #0x0]
+ sub r0, r0, #0x1
+ cmp r1, r0
+ bne _02051D98
+ mov r1, #0x0
+ b _02051D9A
+_02051D98:
+ add r1, r1, #0x1
+_02051D9A:
+ add r0, r4, #0x0
+ add r0, #0x81
+ strb r1, [r0, #0x0]
+ b _02051DE0
+_02051DA2:
+ mov r1, #0x1
+ tst r1, r0
+ beq _02051DC8
+ ldr r0, _02051E20 ; =0x000005DC
+ bl FUN_020054C8
+ mov r0, #0x81
+ ldrsb r1, [r4, r0]
+ add r4, #0x80
+ ldrb r0, [r4, #0x0]
+ sub r0, r0, #0x1
+ cmp r1, r0
+ bge _02051DC2
+ add sp, #0x8
+ mov r0, #0x1
+ pop {r4, pc}
+_02051DC2:
+ add sp, #0x8
+ mov r0, #0x2
+ pop {r4, pc}
+_02051DC8:
+ mov r1, #0x2
+ tst r0, r1
+ beq _02051DDA
+ ldr r0, _02051E20 ; =0x000005DC
+ bl FUN_020054C8
+ add sp, #0x8
+ mov r0, #0x2
+ pop {r4, pc}
+_02051DDA:
+ add sp, #0x8
+ mov r0, #0x0
+ pop {r4, pc}
+_02051DE0:
+ ldr r0, _02051E20 ; =0x000005DC
+ bl FUN_020054C8
+ ldr r0, [r4, #0x7c]
+ mov r1, #0x10
+ str r1, [sp, #0x0]
+ ldrb r1, [r0, #0x8]
+ mov r2, #0x0
+ add r3, r2, #0x0
+ lsl r1, r1, #0x13
+ lsr r1, r1, #0x10
+ str r1, [sp, #0x4]
+ mov r1, #0xf
+ bl FUN_020196F4
+ mov r3, #0x81
+ ldrsb r3, [r4, r3]
+ ldr r0, [r4, #0x78]
+ ldr r1, [r4, #0x7c]
+ mov r2, #0x0
+ lsl r3, r3, #0x4
+ bl FUN_020136F8
+ ldr r0, [r4, #0x7c]
+ bl FUN_02019548
+ mov r0, #0x0
+ add sp, #0x8
+ pop {r4, pc}
+ nop
+_02051E1C: .word 0x021C48B8
+_02051E20: .word 0x000005DC
+
+ thumb_func_start FUN_02051E24
+FUN_02051E24: ; 0x02051E24
+ ldr r3, _02051E2C ; =FUN_0200CCF8
+ ldr r0, [r0, #0x7c]
+ mov r1, #0x1
+ bx r3
+ .balign 4
+_02051E2C: .word FUN_0200CCF8
+
+ thumb_func_start FUN_02051E30
+FUN_02051E30: ; 0x02051E30
+ push {r4, lr}
+ add r4, r0, #0x0
+ add r0, r3, #0x0
+ bl FUN_020519E4
+ add r1, r0, #0x0
+ add r1, #0x86
+ ldrh r1, [r1, #0x0]
+ cmp r1, r4
+ beq _02051E52
+ add r1, r0, #0x0
+ add r1, #0x89
+ ldrb r2, [r1, #0x0]
+ mov r1, #0x2
+ add r0, #0x89
+ orr r1, r2
+ strb r1, [r0, #0x0]
+_02051E52:
+ pop {r4, pc}
+
+ thumb_func_start FUN_02051E54
+FUN_02051E54: ; 0x02051E54
+ push {r3, lr}
+ bl FUN_020690C4
+ lsl r1, r0, #0x1
+ add r0, r0, r1
+ add r0, r0, #0x4
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_02051E64
+FUN_02051E64: ; 0x02051E64
+ push {r4, lr}
+ add r4, r0, #0x0
+ add r0, r1, #0x0
+ bl FUN_020519E4
+ add r1, r0, #0x0
+ add r1, #0x86
+ ldrh r1, [r1, #0x0]
+ cmp r1, r4
+ beq _02051E7C
+ ldr r0, [r0, #0x48]
+ pop {r4, pc}
+_02051E7C:
+ mov r0, #0x0
+ pop {r4, pc}
+
+ thumb_func_start FUN_02051E80
+FUN_02051E80: ; 0x02051E80
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r0, r3, #0x0
+ add r4, r2, #0x0
+ bl FUN_020519E4
+ add r1, r0, #0x0
+ add r1, #0x86
+ ldrh r1, [r1, #0x0]
+ cmp r1, r5
+ beq _02051EAC
+ ldrb r2, [r4, #0x0]
+ add r1, r0, #0x0
+ add r1, #0x85
+ strb r2, [r1, #0x0]
+ add r1, r0, #0x0
+ add r1, #0x89
+ ldrb r2, [r1, #0x0]
+ mov r1, #0x2
+ add r0, #0x89
+ orr r1, r2
+ strb r1, [r0, #0x0]
+_02051EAC:
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_02051EB0
+FUN_02051EB0: ; 0x02051EB0
+ push {r4-r6, lr}
+ add r4, r0, #0x0
+ bl FUN_02046528
+ add r5, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_0204652C
+ add r4, r0, #0x0
+ mov r1, #0x0
+ ldr r0, [r4, #0x24]
+ add r2, r1, #0x0
+ bl FUN_02050BF8
+ add r6, r0, #0x0
+ ldr r0, [r4, #0x28]
+ cmp r0, #0x7
+ bls _02051ED6
+ b _02052036
+_02051ED6:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02051EE2: ; jump table (using 16-bit offset)
+ .short _02051EF2 - _02051EE2 - 2; case 0
+ .short _02051F7C - _02051EE2 - 2; case 1
+ .short _02051FCC - _02051EE2 - 2; case 2
+ .short _02051FDC - _02051EE2 - 2; case 3
+ .short _02051FEC - _02051EE2 - 2; case 4
+ .short _02051FFE - _02051EE2 - 2; case 5
+ .short _0205200C - _02051EE2 - 2; case 6
+ .short _02052028 - _02051EE2 - 2; case 7
+_02051EF2:
+ mov r0, #0x4
+ bl FUN_0200AA80
+ str r0, [r4, #0x18]
+ mov r0, #0x0
+ mov r1, #0x1a
+ mov r2, #0x9
+ mov r3, #0x4
+ bl FUN_0200A86C
+ str r0, [r4, #0x1c]
+ mov r0, #0xc8
+ mov r1, #0x4
+ bl FUN_020219F4
+ str r0, [r4, #0x0]
+ mov r0, #0xc8
+ mov r1, #0x4
+ bl FUN_020219F4
+ str r0, [r4, #0x4]
+ ldrb r1, [r6, #0x3]
+ ldr r0, [r4, #0x1c]
+ ldr r2, [r4, #0x0]
+ add r1, r1, #0x2
+ bl FUN_0200A8E0
+ ldr r0, [r4, #0x24]
+ bl FUN_0202DFA4
+ add r2, r0, #0x0
+ ldr r0, [r4, #0x18]
+ mov r1, #0x0
+ bl FUN_0200ABC0
+ ldr r0, [r4, #0x18]
+ ldr r1, [r4, #0x4]
+ ldr r2, [r4, #0x0]
+ bl FUN_0200B7B8
+ add r1, r4, #0x0
+ ldr r0, [r5, #0x8]
+ add r1, #0x8
+ mov r2, #0x3
+ bl FUN_020545B8
+ ldr r0, [r5, #0xc]
+ bl LoadPlayerDataAddress
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ add r0, #0x8
+ bl FUN_02054608
+ ldr r0, [r5, #0xc]
+ bl LoadPlayerDataAddress
+ add r2, r0, #0x0
+ add r0, r4, #0x0
+ ldr r1, [r4, #0x4]
+ add r0, #0x8
+ mov r3, #0x1
+ bl FUN_02054658
+ str r0, [r4, #0x20]
+ ldr r0, [r4, #0x28]
+ add r0, r0, #0x1
+ str r0, [r4, #0x28]
+ b _0205203A
+_02051F7C:
+ ldr r0, [r4, #0x20]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_020546C8
+ cmp r0, #0x0
+ beq _0205203A
+ ldr r0, _02052040 ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #0x1
+ tst r0, r1
+ beq _0205203A
+ ldr r0, [r4, #0x1c]
+ bl FUN_0200A8B8
+ ldr r0, [r4, #0x18]
+ bl FUN_0200AB18
+ ldr r0, [r4, #0x0]
+ bl FUN_02021A20
+ ldr r0, [r4, #0x4]
+ bl FUN_02021A20
+ add r0, r4, #0x0
+ add r0, #0x8
+ mov r1, #0x0
+ bl FUN_0200D0E0
+ add r0, r4, #0x0
+ add r0, #0x8
+ bl FUN_02019178
+ mov r0, #0x0
+ bl FUN_021D7CA4
+ ldr r0, [r4, #0x28]
+ add r0, r0, #0x1
+ str r0, [r4, #0x28]
+ b _0205203A
+_02051FCC:
+ bl FUN_0200E308
+ cmp r0, #0x0
+ beq _0205203A
+ ldr r0, [r4, #0x28]
+ add r0, r0, #0x1
+ str r0, [r4, #0x28]
+ b _0205203A
+_02051FDC:
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ bl FUN_02038680
+ ldr r0, [r4, #0x28]
+ add r0, r0, #0x1
+ str r0, [r4, #0x28]
+ b _0205203A
+_02051FEC:
+ add r0, r5, #0x0
+ bl FUN_0204647C
+ cmp r0, #0x0
+ bne _0205203A
+ ldr r0, [r4, #0x28]
+ add r0, r0, #0x1
+ str r0, [r4, #0x28]
+ b _0205203A
+_02051FFE:
+ add r0, r5, #0x0
+ bl FUN_0204649C
+ ldr r0, [r4, #0x28]
+ add r0, r0, #0x1
+ str r0, [r4, #0x28]
+ b _0205203A
+_0205200C:
+ add r0, r5, #0x0
+ bl FUN_020464A4
+ cmp r0, #0x0
+ bne _0205203A
+ mov r0, #0x1
+ bl FUN_021D7CA4
+ bl FUN_0204CC9C
+ ldr r0, [r4, #0x28]
+ add r0, r0, #0x1
+ str r0, [r4, #0x28]
+ b _0205203A
+_02052028:
+ bl FUN_0204F7FC
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ mov r0, #0x1
+ pop {r4-r6, pc}
+_02052036:
+ mov r0, #0x1
+ pop {r4-r6, pc}
+_0205203A:
+ mov r0, #0x0
+ pop {r4-r6, pc}
+ nop
+_02052040: .word 0x021C48B8
+
+ thumb_func_start FUN_02052044
+FUN_02052044: ; 0x02052044
+ push {r3-r7, lr}
+ str r0, [sp, #0x0]
+ bl FUN_02031190
+ add r5, r0, #0x0
+ bl FUN_0204E4D4
+ add r7, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_0204E50C
+ add r6, r0, #0x0
+ mov r4, #0x0
+ bl FUN_02030F20
+ cmp r0, #0x0
+ ble _020520A6
+_02052066:
+ cmp r4, r5
+ beq _0205209C
+ add r0, r4, #0x0
+ bl FUN_0204E3EC
+ cmp r7, r0
+ bne _0205209C
+ add r0, r4, #0x0
+ bl FUN_0204E440
+ cmp r6, r0
+ bne _0205209C
+ mov r0, #0xb
+ mov r1, #0x2c
+ bl FUN_020169D8
+ add r2, r0, #0x0
+ str r4, [r2, #0x24]
+ mov r0, #0x0
+ str r0, [r2, #0x28]
+ ldr r0, [sp, #0x0]
+ ldr r1, _020520A8 ; =FUN_02051EB0
+ bl FUN_020463CC
+ bl FUN_02037760
+ pop {r3-r7, pc}
+_0205209C:
+ add r4, r4, #0x1
+ bl FUN_02030F20
+ cmp r4, r0
+ blt _02052066
+_020520A6:
+ pop {r3-r7, pc}
+ .balign 4
+_020520A8: .word FUN_02051EB0
+
+ thumb_func_start FUN_020520AC
+FUN_020520AC: ; 0x020520AC
+ push {r3-r5, lr}
+ add r4, r0, #0x0
+ bne _020520B6
+ bl ErrorHandling
+_020520B6:
+ ldr r0, [r4, #0x78]
+ cmp r0, #0x0
+ beq _020520C0
+ mov r0, #0x0
+ pop {r3-r5, pc}
+_020520C0:
+ mov r2, #0x2a
+ mov r0, #0x3
+ mov r1, #0x1f
+ lsl r2, r2, #0x6
+ bl FUN_02016828
+ add r0, r4, #0x0
+ bl FUN_02052110
+ add r5, r0, #0x0
+ bne _020520D8
+ ldr r5, [r4, #0x78]
+_020520D8:
+ add r0, r4, #0x0
+ bl FUN_0208881C
+ mov r0, #0x2
+ bl FUN_02032B6C
+ ldr r1, _020520F4 ; =FUN_02052178
+ add r0, r5, #0x0
+ mov r2, #0x28
+ bl FUN_02052300
+ add r0, r5, #0x0
+ pop {r3-r5, pc}
+ nop
+_020520F4: .word FUN_02052178
+
+ thumb_func_start FUN_020520F8
+FUN_020520F8: ; 0x020520F8
+ push {r3, lr}
+ ldr r0, [r0, #0x78]
+ cmp r0, #0x0
+ beq _02052108
+ ldr r1, _0205210C ; =FUN_02052348
+ mov r2, #0x5
+ bl FUN_02052300
+_02052108:
+ pop {r3, pc}
+ nop
+_0205210C: .word FUN_02052348
+
+ thumb_func_start FUN_02052110
+FUN_02052110: ; 0x02052110
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ ldr r1, [r5, #0x78]
+ cmp r1, #0x0
+ beq _0205211E
+ mov r0, #0x0
+ pop {r4-r6, pc}
+_0205211E:
+ bl FUN_020377AC
+ add r6, r0, #0x0
+ bl FUN_02031A7C
+ mov r1, #0x19
+ mov r0, #0x1f
+ lsl r1, r1, #0x4
+ bl FUN_02016998
+ mov r2, #0x19
+ mov r1, #0x0
+ lsl r2, r2, #0x4
+ add r4, r0, #0x0
+ blx MI_CpuFill8
+ mov r0, #0x0
+ str r0, [r4, #0x10]
+ mov r0, #0x28
+ str r0, [r4, #0x14]
+ ldr r0, _02052174 ; =FUN_02052308
+ add r1, r4, #0x0
+ mov r2, #0xa
+ bl FUN_0200CA44
+ str r0, [r4, #0xc]
+ str r5, [r4, #0x0]
+ str r6, [r4, #0x4]
+ add r0, r6, #0x0
+ bl FUN_020238F4
+ str r0, [r4, #0x8]
+ add r0, r4, #0x0
+ bl FUN_02052E1C
+ mov r0, #0x15
+ lsl r0, r0, #0x4
+ add r0, r4, r0
+ bl FUN_020312BC
+ add r0, r4, #0x0
+ pop {r4-r6, pc}
+ nop
+_02052174: .word FUN_02052308
+
+ thumb_func_start FUN_02052178
+FUN_02052178: ; 0x02052178
+ push {r4, lr}
+ sub sp, #0x8
+ add r4, r0, #0x0
+ bl FUN_0202EDF8
+ cmp r0, #0x0
+ beq _020521A4
+ add r0, sp, #0x0
+ bl FUN_02013754
+ add r0, sp, #0x0
+ bl FUN_02052DE8
+ add r0, r4, #0x0
+ add r1, sp, #0x0
+ bl FUN_02052CD8
+ ldr r1, _020521A8 ; =FUN_020521AC
+ add r0, r4, #0x0
+ mov r2, #0x28
+ bl FUN_02052300
+_020521A4:
+ add sp, #0x8
+ pop {r4, pc}
+ .balign 4
+_020521A8: .word FUN_020521AC
+
+ thumb_func_start FUN_020521AC
+FUN_020521AC: ; 0x020521AC
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl FUN_02031B2C
+ cmp r0, #0x0
+ beq _020521C8
+ ldr r0, _02052208 ; =0x021C5A70
+ mov r2, #0x0
+ str r2, [r0, #0x0]
+ ldr r1, _0205220C ; =FUN_0205225C
+ add r0, r4, #0x0
+ bl FUN_02052300
+ pop {r4, pc}
+_020521C8:
+ ldr r0, [r4, #0x20]
+ cmp r0, #0x0
+ beq _02052206
+ mov r0, #0x2
+ str r0, [r4, #0x28]
+ ldr r0, [r4, #0x20]
+ cmp r0, #0x1
+ bne _020521EC
+ ldr r0, [r4, #0x30]
+ cmp r0, #0x5
+ ldr r0, [r4, #0x18]
+ bne _020521E6
+ bl FUN_020328F4
+ b _020521FC
+_020521E6:
+ bl FUN_02031AC8
+ b _020521FC
+_020521EC:
+ cmp r0, #0x2
+ bne _020521FC
+ mov r0, #0x0
+ bl FUN_02083D48
+ ldr r0, [r4, #0x18]
+ bl FUN_020328C0
+_020521FC:
+ ldr r1, _02052210 ; =FUN_02052380
+ add r0, r4, #0x0
+ mov r2, #0xc
+ bl FUN_02052300
+_02052206:
+ pop {r4, pc}
+ .balign 4
+_02052208: .word 0x021C5A70
+_0205220C: .word FUN_0205225C
+_02052210: .word FUN_02052380
+
+ thumb_func_start FUN_02052214
+FUN_02052214: ; 0x02052214
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl FUN_02031BD0
+ cmp r0, #0x1
+ bne _02052230
+ ldr r0, [r4, #0x0]
+ bl FUN_0208881C
+ ldr r1, _02052234 ; =FUN_020521AC
+ add r0, r4, #0x0
+ mov r2, #0x2
+ bl FUN_02052300
+_02052230:
+ pop {r4, pc}
+ nop
+_02052234: .word FUN_020521AC
+
+ thumb_func_start FUN_02052238
+FUN_02052238: ; 0x02052238
+ push {r3-r5, lr}
+ mov r5, #0x0
+ mov r4, #0x1
+_0205223E:
+ add r0, r4, #0x0
+ bl FUN_0202DFA4
+ cmp r0, #0x0
+ beq _0205224A
+ add r5, r5, #0x1
+_0205224A:
+ add r4, r4, #0x1
+ cmp r4, #0x5
+ blt _0205223E
+ cmp r5, #0x1
+ blt _02052258
+ mov r0, #0x1
+ pop {r3-r5, pc}
+_02052258:
+ mov r0, #0x0
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_0205225C
+FUN_0205225C: ; 0x0205225C
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r0, [r4, #0x14]
+ cmp r0, #0x0
+ ble _0205226C
+ sub r0, r0, #0x1
+ str r0, [r4, #0x14]
+ pop {r4, pc}
+_0205226C:
+ ldr r0, _020522C4 ; =0x021C5A70
+ ldr r1, [r0, #0x0]
+ add r1, r1, #0x1
+ str r1, [r0, #0x0]
+ bl FUN_020311E8
+ cmp r0, #0x0
+ beq _020522A0
+ bl FUN_02052238
+ cmp r0, #0x1
+ bne _020522A0
+ bl FUN_0202DBE0
+ mov r0, #0x1
+ add r1, r0, #0x0
+ bl FUN_020334E8
+ mov r0, #0xb
+ bl FUN_02052B74
+ ldr r1, _020522C8 ; =FUN_020522D0
+ add r0, r4, #0x0
+ mov r2, #0x0
+ bl FUN_02052300
+_020522A0:
+ bl FUN_02031B2C
+ cmp r0, #0x0
+ bne _020522C2
+ bl FUN_02031B50
+ add r0, r4, #0x0
+ bl FUN_02052E1C
+ mov r0, #0x0
+ bl FUN_02052B74
+ ldr r1, _020522CC ; =FUN_02052214
+ add r0, r4, #0x0
+ mov r2, #0x2
+ bl FUN_02052300
+_020522C2:
+ pop {r4, pc}
+ .balign 4
+_020522C4: .word 0x021C5A70
+_020522C8: .word FUN_020522D0
+_020522CC: .word FUN_02052214
+
+ thumb_func_start FUN_020522D0
+FUN_020522D0: ; 0x020522D0
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl FUN_020311E8
+ bl FUN_020311E8
+ cmp r0, #0x0
+ bne _020522FA
+ bl FUN_02031B50
+ add r0, r4, #0x0
+ bl FUN_02052E1C
+ mov r0, #0x0
+ bl FUN_02052B74
+ ldr r1, _020522FC ; =FUN_02052214
+ add r0, r4, #0x0
+ mov r2, #0x2
+ bl FUN_02052300
+_020522FA:
+ pop {r4, pc}
+ .balign 4
+_020522FC: .word FUN_02052214
+
+ thumb_func_start FUN_02052300
+FUN_02052300: ; 0x02052300
+ str r1, [r0, #0x10]
+ str r2, [r0, #0x14]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02052308
+FUN_02052308: ; 0x02052308
+ push {r3-r7, lr}
+ str r1, [sp, #0x0]
+ cmp r1, #0x0
+ bne _02052316
+ bl FUN_0200CAB4
+ pop {r3-r7, pc}
+_02052316:
+ mov r7, #0x11
+ ldr r5, _02052344 ; =0x021C5A7C
+ mov r6, #0x0
+ add r4, r1, #0x0
+ lsl r7, r7, #0x4
+_02052320:
+ add r0, r6, #0x0
+ bl FUN_0202EF18
+ mov r1, #0x11
+ lsl r1, r1, #0x4
+ str r0, [r4, r1]
+ ldr r0, [r4, r7]
+ add r6, r6, #0x1
+ add r4, r4, #0x4
+ stmia r5!, {r0}
+ cmp r6, #0x10
+ blt _02052320
+ ldr r0, [sp, #0x0]
+ ldr r1, [r0, #0x10]
+ cmp r1, #0x0
+ beq _02052342
+ blx r1
+_02052342:
+ pop {r3-r7, pc}
+ .balign 4
+_02052344: .word 0x021C5A7C
+
+ thumb_func_start FUN_02052348
+FUN_02052348: ; 0x02052348
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r0, [r4, #0x14]
+ cmp r0, #0x0
+ beq _02052358
+ sub r0, r0, #0x1
+ str r0, [r4, #0x14]
+ pop {r4, pc}
+_02052358:
+ bl FUN_02031BF4
+ ldr r1, _02052368 ; =FUN_0205236C
+ add r0, r4, #0x0
+ mov r2, #0x0
+ bl FUN_02052300
+ pop {r4, pc}
+ .balign 4
+_02052368: .word FUN_0205236C
+
+ thumb_func_start FUN_0205236C
+FUN_0205236C: ; 0x0205236C
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl FUN_02030F40
+ cmp r0, #0x0
+ bne _0205237E
+ add r0, r4, #0x0
+ bl FUN_020524A0
+_0205237E:
+ pop {r4, pc}
+
+ thumb_func_start FUN_02052380
+FUN_02052380: ; 0x02052380
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl FUN_02031AF4
+ cmp r0, #0x1
+ bne _0205239C
+ bl FUN_0202DBE0
+ ldr r1, _020523D4 ; =FUN_02052410
+ add r0, r4, #0x0
+ mov r2, #0x3
+ bl FUN_02052300
+ pop {r4, pc}
+_0205239C:
+ bl FUN_020311E8
+ cmp r0, #0x0
+ beq _020523B4
+ mov r2, #0x0
+ str r2, [r4, #0x20]
+ mov r0, #0x3
+ str r0, [r4, #0x1c]
+ ldr r1, _020523D8 ; =FUN_0205225C
+ add r0, r4, #0x0
+ bl FUN_02052300
+_020523B4:
+ bl FUN_02031AF4
+ cmp r0, #0x0
+ beq _020523D2
+ ldr r1, _020523DC ; =FUN_020523E0
+ add r0, r4, #0x0
+ mov r2, #0x2
+ bl FUN_02052300
+ mov r1, #0x0
+ str r1, [r4, #0x24]
+ mov r0, #0x2
+ str r0, [r4, #0x1c]
+ str r1, [r4, #0x20]
+ str r1, [r4, #0x44]
+_020523D2:
+ pop {r4, pc}
+ .balign 4
+_020523D4: .word FUN_02052410
+_020523D8: .word FUN_0205225C
+_020523DC: .word FUN_020523E0
+
+ thumb_func_start FUN_020523E0
+FUN_020523E0: ; 0x020523E0
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r0, [r4, #0x0]
+ bl FUN_0204646C
+ cmp r0, #0x0
+ bne _02052408
+ bl FUN_02031B50
+ add r0, r4, #0x0
+ bl FUN_02052E1C
+ mov r0, #0x0
+ bl FUN_02052B74
+ ldr r1, _0205240C ; =FUN_02052214
+ add r0, r4, #0x0
+ mov r2, #0x2
+ bl FUN_02052300
+_02052408:
+ pop {r4, pc}
+ nop
+_0205240C: .word FUN_02052214
+
+ thumb_func_start FUN_02052410
+FUN_02052410: ; 0x02052410
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl FUN_02031AF4
+ cmp r0, #0x1
+ bne _02052444
+ bl FUN_02031190
+ bl FUN_0202DFA4
+ cmp r0, #0x0
+ beq _0205246C
+ mov r1, #0x0
+ str r1, [r4, #0x20]
+ mov r0, #0x1
+ str r0, [r4, #0x1c]
+ str r1, [r4, #0x44]
+ add r1, r0, #0x0
+ bl FUN_020334E8
+ ldr r1, _02052470 ; =FUN_02052478
+ add r0, r4, #0x0
+ mov r2, #0x3
+ bl FUN_02052300
+ pop {r4, pc}
+_02052444:
+ bl FUN_02031AF4
+ cmp r0, #0x0
+ bne _0205246C
+ bl FUN_02031B50
+ add r0, r4, #0x0
+ bl FUN_02052E1C
+ ldr r1, _02052474 ; =FUN_02052214
+ add r0, r4, #0x0
+ mov r2, #0x2
+ bl FUN_02052300
+ mov r1, #0x0
+ str r1, [r4, #0x24]
+ mov r0, #0x2
+ str r0, [r4, #0x1c]
+ str r1, [r4, #0x20]
+ str r1, [r4, #0x44]
+_0205246C:
+ pop {r4, pc}
+ nop
+_02052470: .word FUN_02052478
+_02052474: .word FUN_02052214
+
+ thumb_func_start FUN_02052478
+FUN_02052478: ; 0x02052478
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl FUN_02031AF4
+ cmp r0, #0x0
+ bne _02052498
+ bl FUN_02031B50
+ add r0, r4, #0x0
+ bl FUN_02052E1C
+ ldr r1, _0205249C ; =FUN_02052214
+ add r0, r4, #0x0
+ mov r2, #0x2
+ bl FUN_02052300
+_02052498:
+ pop {r4, pc}
+ nop
+_0205249C: .word FUN_02052214
+
+ thumb_func_start FUN_020524A0
+FUN_020524A0: ; 0x020524A0
+ push {r4, lr}
+ add r4, r0, #0x0
+ beq _020524B8
+ ldr r0, [r4, #0xc]
+ bl FUN_0200CAB4
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ mov r0, #0x1f
+ bl FUN_020168D0
+_020524B8:
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_020524BC
+FUN_020524BC: ; 0x020524BC
+ ldr r0, [r0, #0x0]
+ bx lr
+
+ thumb_func_start FUN_020524C0
+FUN_020524C0: ; 0x020524C0
+ lsl r1, r1, #0x2
+ add r1, r0, r1
+ mov r0, #0x11
+ lsl r0, r0, #0x4
+ ldr r0, [r1, r0]
+ bx lr
+
+ thumb_func_start FUN_020524CC
+FUN_020524CC: ; 0x020524CC
+ push {r4-r6, lr}
+ add r5, r1, #0x0
+ add r4, r0, #0x0
+ sub r0, r5, #0x1
+ bl FUN_0202EF84
+ add r6, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_02052E10
+ cmp r6, #0x0
+ bne _020524E8
+ mov r0, #0x5
+ pop {r4-r6, pc}
+_020524E8:
+ sub r0, r5, #0x1
+ lsl r0, r0, #0x2
+ add r1, r4, r0
+ mov r0, #0x11
+ lsl r0, r0, #0x4
+ ldr r1, [r1, r0]
+ ldr r0, _02052540 ; =0x021C5A70
+ add r1, #0x50
+ add r1, #0x30
+ str r1, [r0, #0x4]
+ ldrb r0, [r1, #0x1c]
+ cmp r0, #0xb
+ bhi _0205253A
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0205250E: ; jump table (using 16-bit offset)
+ .short _02052526 - _0205250E - 2; case 0
+ .short _0205252A - _0205250E - 2; case 1
+ .short _0205252E - _0205250E - 2; case 2
+ .short _02052532 - _0205250E - 2; case 3
+ .short _02052536 - _0205250E - 2; case 4
+ .short _02052536 - _0205250E - 2; case 5
+ .short _02052536 - _0205250E - 2; case 6
+ .short _02052536 - _0205250E - 2; case 7
+ .short _02052536 - _0205250E - 2; case 8
+ .short _0205253A - _0205250E - 2; case 9
+ .short _0205253A - _0205250E - 2; case 10
+ .short _02052536 - _0205250E - 2; case 11
+_02052526:
+ mov r0, #0x1
+ pop {r4-r6, pc}
+_0205252A:
+ mov r0, #0x2
+ pop {r4-r6, pc}
+_0205252E:
+ mov r0, #0x3
+ pop {r4-r6, pc}
+_02052532:
+ mov r0, #0x4
+ pop {r4-r6, pc}
+_02052536:
+ mov r0, #0x5
+ pop {r4-r6, pc}
+_0205253A:
+ mov r0, #0x5
+ pop {r4-r6, pc}
+ nop
+_02052540: .word 0x021C5A70
+
+ thumb_func_start FUN_02052544
+FUN_02052544: ; 0x02052544
+ push {r4-r6, lr}
+ add r6, r1, #0x0
+ add r4, r0, #0x0
+ sub r0, r6, #0x1
+ add r5, r2, #0x0
+ bl FUN_0202EF84
+ sub r0, r6, #0x1
+ lsl r1, r0, #0x2
+ add r2, r4, r1
+ mov r1, #0x11
+ lsl r1, r1, #0x4
+ ldr r2, [r2, r1]
+ ldr r1, _02052600 ; =0x021C5A70
+ add r2, #0x50
+ add r2, #0x30
+ str r2, [r1, #0x4]
+ ldrb r1, [r2, #0x1c]
+ cmp r1, #0xb
+ bhi _020525F8
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #0x6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_02052578: ; jump table (using 16-bit offset)
+ .short _020525C6 - _02052578 - 2; case 0
+ .short _020525DC - _02052578 - 2; case 1
+ .short _020525AC - _02052578 - 2; case 2
+ .short _02052590 - _02052578 - 2; case 3
+ .short _020525F4 - _02052578 - 2; case 4
+ .short _020525F4 - _02052578 - 2; case 5
+ .short _020525F4 - _02052578 - 2; case 6
+ .short _020525F4 - _02052578 - 2; case 7
+ .short _020525F4 - _02052578 - 2; case 8
+ .short _020525F8 - _02052578 - 2; case 9
+ .short _020525F8 - _02052578 - 2; case 10
+ .short _020525F4 - _02052578 - 2; case 11
+_02052590:
+ cmp r5, #0x4
+ beq _02052598
+ mov r0, #0x5
+ pop {r4-r6, pc}
+_02052598:
+ mov r1, #0x6
+ str r1, [r4, #0x30]
+ str r0, [r4, #0x18]
+ mov r0, #0x2
+ str r0, [r4, #0x20]
+ mov r0, #0x0
+ str r0, [r4, #0x24]
+ str r0, [r4, #0x1c]
+ mov r0, #0x1
+ pop {r4-r6, pc}
+_020525AC:
+ cmp r5, #0x3
+ beq _020525B4
+ mov r0, #0x5
+ pop {r4-r6, pc}
+_020525B4:
+ mov r1, #0x5
+ str r1, [r4, #0x30]
+ str r0, [r4, #0x18]
+ mov r0, #0x1
+ str r0, [r4, #0x20]
+ mov r1, #0x0
+ str r1, [r4, #0x24]
+ str r1, [r4, #0x1c]
+ pop {r4-r6, pc}
+_020525C6:
+ cmp r5, #0x1
+ beq _020525CE
+ mov r0, #0x5
+ pop {r4-r6, pc}
+_020525CE:
+ str r0, [r4, #0x18]
+ mov r0, #0x1
+ str r0, [r4, #0x20]
+ mov r1, #0x0
+ str r1, [r4, #0x24]
+ str r1, [r4, #0x1c]
+ pop {r4-r6, pc}
+_020525DC:
+ cmp r5, #0x2
+ beq _020525E4
+ mov r0, #0x5
+ pop {r4-r6, pc}
+_020525E4:
+ str r0, [r4, #0x18]
+ mov r0, #0x2
+ str r0, [r4, #0x20]
+ mov r0, #0x0
+ str r0, [r4, #0x24]
+ str r0, [r4, #0x1c]
+ mov r0, #0x1
+ pop {r4-r6, pc}
+_020525F4:
+ mov r0, #0x5
+ pop {r4-r6, pc}
+_020525F8:
+ bl ErrorHandling
+ mov r0, #0x0
+ pop {r4-r6, pc}
+ .balign 4
+_02052600: .word 0x021C5A70
+
+ thumb_func_start FUN_02052604
+FUN_02052604: ; 0x02052604
+ ldr r0, [r0, #0x1c]
+ bx lr
+
+ thumb_func_start FUN_02052608
+FUN_02052608: ; 0x02052608
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r0, [r4, #0x44]
+ cmp r0, #0x0
+ beq _02052616
+ mov r0, #0x7
+ pop {r4, pc}
+_02052616:
+ bl FUN_02030F20
+ cmp r0, #0x2
+ bge _02052622
+ mov r0, #0x7
+ pop {r4, pc}
+_02052622:
+ bl FUN_02031190
+ cmp r0, #0x0
+ bne _02052636
+ bl FUN_02031B2C
+ cmp r0, #0x1
+ bne _02052642
+ ldr r0, [r4, #0x40]
+ pop {r4, pc}
+_02052636:
+ bl FUN_02031AF4
+ cmp r0, #0x1
+ bne _02052642
+ ldr r0, [r4, #0x40]
+ pop {r4, pc}
+_02052642:
+ mov r0, #0x7
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02052648
+FUN_02052648: ; 0x02052648
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl FUN_02031B2C
+ cmp r0, #0x1
+ bne _02052658
+ ldr r0, [r4, #0x30]
+ pop {r4, pc}
+_02052658:
+ mov r0, #0x7
+ pop {r4, pc}
+
+ thumb_func_start FUN_0205265C
+FUN_0205265C: ; 0x0205265C
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r2, #0x0
+ add r0, sp, #0x0
+ strb r4, [r0, #0x2]
+ cmp r1, #0x0
+ beq _02052670
+ cmp r1, #0x1
+ beq _02052688
+ pop {r3-r5, pc}
+_02052670:
+ ldr r1, [r5, #0x44]
+ cmp r1, #0x0
+ bne _020526B0
+ ldrb r0, [r0, #0x2]
+ add r1, sp, #0x0
+ add r1, #0x2
+ str r0, [r5, #0x34]
+ mov r0, #0x63
+ mov r2, #0x1
+ bl FUN_02030ADC
+ pop {r3-r5, pc}
+_02052688:
+ cmp r4, #0x0
+ bne _020526A0
+ ldr r1, [r5, #0x30]
+ mov r2, #0x1
+ strb r1, [r0, #0x1]
+ add r1, sp, #0x0
+ mov r0, #0x67
+ add r1, #0x1
+ bl FUN_02030BC4
+ str r4, [r5, #0x3c]
+ pop {r3-r5, pc}
+_020526A0:
+ mov r1, #0x7
+ strb r1, [r0, #0x0]
+ mov r0, #0x67
+ add r1, sp, #0x0
+ mov r2, #0x1
+ bl FUN_02030BC4
+ str r4, [r5, #0x3c]
+_020526B0:
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_020526B4
+FUN_020526B4: ; 0x020526B4
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_020526B8
+FUN_020526B8: ; 0x020526B8
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_020526BC
+FUN_020526BC: ; 0x020526BC
+ push {r4, lr}
+ add r4, r3, #0x0
+ ldr r0, [r4, #0x78]
+ ldr r1, _020526D4 ; =FUN_020521AC
+ mov r2, #0x2
+ bl FUN_02052300
+ ldr r0, [r4, #0x78]
+ bl FUN_02052E1C
+ pop {r4, pc}
+ nop
+_020526D4: .word FUN_020521AC
+
+ thumb_func_start FUN_020526D8
+FUN_020526D8: ; 0x020526D8
+ ldr r1, [r3, #0x78]
+ ldr r0, [r1, #0x44]
+ cmp r0, #0x0
+ bne _020526EA
+ ldrb r0, [r2, #0x0]
+ str r0, [r1, #0x30]
+ ldrb r1, [r2, #0x0]
+ ldr r0, _020526EC ; =0x021C5A70
+ str r1, [r0, #0x8]
+_020526EA:
+ bx lr
+ .balign 4
+_020526EC: .word 0x021C5A70
+
+ thumb_func_start FUN_020526F0
+FUN_020526F0: ; 0x020526F0
+ push {r3, lr}
+ ldr r0, [r3, #0x78]
+ mov r1, #0x1
+ str r1, [r0, #0x2c]
+ ldrb r1, [r2, #0x0]
+ ldr r0, [r3, #0x78]
+ str r1, [r0, #0x40]
+ ldrb r0, [r2, #0x0]
+ cmp r0, #0x4
+ bne _02052708
+ bl FUN_02032888
+_02052708:
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_0205270C
+FUN_0205270C: ; 0x0205270C
+ ldr r0, [r3, #0x78]
+ mov r1, #0x1
+ str r1, [r0, #0x44]
+ bx lr
+
+ thumb_func_start FUN_02052714
+FUN_02052714: ; 0x02052714
+ ldr r0, [r0, #0x44]
+ bx lr
+
+ thumb_func_start FUN_02052718
+FUN_02052718: ; 0x02052718
+ push {r4, lr}
+ ldr r0, [r0, #0x30]
+ add r4, r1, #0x0
+ cmp r0, #0x0
+ bne _02052730
+ mov r1, #0x0
+ mov r0, #0x68
+ add r2, r1, #0x0
+ bl FUN_02030ADC
+ add r0, r4, #0x0
+ pop {r4, pc}
+_02052730:
+ mov r0, #0x0
+ pop {r4, pc}
+
+ thumb_func_start FUN_02052734
+FUN_02052734: ; 0x02052734
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ add r6, r2, #0x0
+ add r4, r3, #0x0
+ bl FUN_02031190
+ mov r1, #0x1
+ eor r0, r1
+ bl FUN_0202DFA4
+ add r7, r0, #0x0
+ ldr r0, _02052784 ; =0x0000066A
+ mov r1, #0x1
+ strh r1, [r6, r0]
+ bl FUN_02031190
+ cmp r5, r0
+ beq _02052780
+ add r0, r7, #0x0
+ bl FUN_0202398C
+ add r5, r0, #0x0
+ add r0, r7, #0x0
+ bl FUN_020239CC
+ add r1, r0, #0x0
+ lsl r1, r1, #0x18
+ add r0, r5, #0x0
+ lsr r1, r1, #0x18
+ mov r2, #0x1f
+ bl FUN_0202942C
+ add r4, #0x98
+ add r1, r0, #0x0
+ ldr r0, [r4, #0x0]
+ mov r2, #0x4
+ bl FUN_02028AD4
+_02052780:
+ pop {r3-r7, pc}
+ nop
+_02052784: .word 0x0000066A
+
+ thumb_func_start FUN_02052788
+FUN_02052788: ; 0x02052788
+ ldr r1, [r1, #0x78]
+ lsl r0, r0, #0x2
+ add r1, r1, r0
+ mov r0, #0x62
+ lsl r0, r0, #0x2
+ ldr r0, [r1, r0]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02052798
+FUN_02052798: ; 0x02052798
+ ldr r1, [r3, #0x78]
+ ldrb r2, [r2, #0x0]
+ add r1, r1, r0
+ ldr r0, _020527A4 ; =0x00000176
+ strb r2, [r1, r0]
+ bx lr
+ .balign 4
+_020527A4: .word 0x00000176
+
+ thumb_func_start FUN_020527A8
+FUN_020527A8: ; 0x020527A8
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl FUN_02031190
+ ldr r2, _020527D4 ; =0x00000176
+ add r1, r4, r0
+ ldrb r1, [r1, r2]
+ cmp r1, #0x2
+ bne _020527BE
+ mov r0, #0x1
+ pop {r4, pc}
+_020527BE:
+ mov r1, #0x1
+ eor r0, r1
+ add r0, r4, r0
+ ldrb r0, [r0, r2]
+ cmp r0, #0x2
+ bne _020527CE
+ mov r0, #0x2
+ pop {r4, pc}
+_020527CE:
+ mov r0, #0x0
+ pop {r4, pc}
+ nop
+_020527D4: .word 0x00000176
+
+ thumb_func_start FUN_020527D8
+FUN_020527D8: ; 0x020527D8
+ push {r3, lr}
+ add r1, sp, #0x0
+ strb r0, [r1, #0x0]
+ mov r0, #0x65
+ add r1, sp, #0x0
+ mov r2, #0x1
+ bl FUN_02030ADC
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_020527EC
+FUN_020527EC: ; 0x020527EC
+ ldr r3, _02052810 ; =0x020F58D4
+ mov r2, #0x0
+_020527F0:
+ ldrh r1, [r3, #0x0]
+ cmp r1, r0
+ bgt _02052800
+ add r1, r1, #0x4
+ cmp r1, r0
+ ble _02052800
+ add r0, r2, #0x0
+ bx lr
+_02052800:
+ add r2, r2, #0x1
+ add r3, r3, #0x2
+ cmp r2, #0xa
+ blt _020527F0
+ mov r0, #0x0
+ mvn r0, r0
+ bx lr
+ nop
+_02052810: .word 0x020F58D4
+
+ thumb_func_start FUN_02052814
+FUN_02052814: ; 0x02052814
+ push {r4-r6, lr}
+ add r4, r1, #0x0
+ add r6, r0, #0x0
+ cmp r4, #0x9
+ ble _02052834
+ add r0, r4, #0x0
+ bl FUN_020527EC
+ add r5, r0, #0x0
+ mov r0, #0x0
+ mvn r0, r0
+ cmp r4, r0
+ bne _02052836
+ bl ErrorHandling
+ b _02052836
+_02052834:
+ add r5, r4, #0x0
+_02052836:
+ add r0, r5, #0x0
+ bl FUN_0202EF84
+ lsl r1, r5, #0x2
+ add r2, r6, r1
+ mov r1, #0x11
+ lsl r1, r1, #0x4
+ ldr r5, [r2, r1]
+ add r5, #0x50
+ add r5, #0x30
+ cmp r0, #0x0
+ bne _02052852
+ mov r0, #0x28
+ pop {r4-r6, pc}
+_02052852:
+ cmp r4, #0x9
+ ble _0205286C
+ sub r4, #0xa
+ lsr r2, r4, #0x1f
+ lsl r1, r4, #0x1e
+ sub r1, r1, r2
+ mov r0, #0x1e
+ ror r1, r0
+ add r0, r2, r1
+ add r0, r5, r0
+ ldrb r0, [r0, #0x18]
+ asr r4, r0, #0x7
+ b _02052872
+_0205286C:
+ bl FUN_020239CC
+ add r4, r0, #0x0
+_02052872:
+ ldrb r0, [r5, #0x1c]
+ cmp r0, #0xb
+ bhi _0205294C
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02052884: ; jump table (using 16-bit offset)
+ .short _0205294C - _02052884 - 2; case 0
+ .short _020528F8 - _02052884 - 2; case 1
+ .short _02052914 - _02052884 - 2; case 2
+ .short _02052930 - _02052884 - 2; case 3
+ .short _0205289C - _02052884 - 2; case 4
+ .short _020528A4 - _02052884 - 2; case 5
+ .short _020528C0 - _02052884 - 2; case 6
+ .short _020528DC - _02052884 - 2; case 7
+ .short _020528F8 - _02052884 - 2; case 8
+ .short _02052914 - _02052884 - 2; case 9
+ .short _02052930 - _02052884 - 2; case 10
+ .short _0205289C - _02052884 - 2; case 11
+_0205289C:
+ ldr r0, _02052950 ; =0x020F5894
+ lsl r1, r4, #0x2
+ ldr r0, [r0, r1]
+ pop {r4-r6, pc}
+_020528A4:
+ 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
+ lsl r2, r0, #0x3
+ ldr r0, _02052954 ; =0x020F58C4
+ lsl r1, r4, #0x2
+ add r0, r0, r2
+ ldr r0, [r1, r0]
+ pop {r4-r6, pc}
+_020528C0:
+ bl FUN_0201B9EC
+ lsr r2, r0, #0x1f
+ lsl r1, r0, #0x1e
+ sub r1, r1, r2
+ mov r0, #0x1e
+ ror r1, r0
+ add r0, r2, r1
+ lsl r2, r0, #0x3
+ ldr r0, _02052958 ; =0x020F5984
+ lsl r1, r4, #0x2
+ add r0, r0, r2
+ ldr r0, [r1, r0]
+ pop {r4-r6, pc}
+_020528DC:
+ 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
+ lsl r2, r0, #0x3
+ ldr r0, _0205295C ; =0x020F58B4
+ lsl r1, r4, #0x2
+ add r0, r0, r2
+ ldr r0, [r1, r0]
+ pop {r4-r6, pc}
+_020528F8:
+ bl FUN_0201B9EC
+ lsr r2, r0, #0x1f
+ lsl r1, r0, #0x1e
+ sub r1, r1, r2
+ mov r0, #0x1e
+ ror r1, r0
+ add r0, r2, r1
+ lsl r2, r0, #0x3
+ ldr r0, _02052960 ; =0x020F5964
+ lsl r1, r4, #0x2
+ add r0, r0, r2
+ ldr r0, [r1, r0]
+ pop {r4-r6, pc}
+_02052914:
+ bl FUN_0201B9EC
+ lsr r2, r0, #0x1f
+ lsl r1, r0, #0x1e
+ sub r1, r1, r2
+ mov r0, #0x1e
+ ror r1, r0
+ add r0, r2, r1
+ lsl r2, r0, #0x3
+ ldr r0, _02052964 ; =0x020F59A4
+ lsl r1, r4, #0x2
+ add r0, r0, r2
+ ldr r0, [r1, r0]
+ pop {r4-r6, pc}
+_02052930:
+ bl FUN_0201B9EC
+ lsr r2, r0, #0x1f
+ lsl r1, r0, #0x1e
+ sub r1, r1, r2
+ mov r0, #0x1e
+ ror r1, r0
+ add r0, r2, r1
+ lsl r2, r0, #0x3
+ ldr r0, _02052968 ; =0x020F59C4
+ lsl r1, r4, #0x2
+ add r0, r0, r2
+ ldr r0, [r1, r0]
+ pop {r4-r6, pc}
+_0205294C:
+ mov r0, #0x28
+ pop {r4-r6, pc}
+ .balign 4
+_02052950: .word 0x020F5894
+_02052954: .word 0x020F58C4
+_02052958: .word 0x020F5984
+_0205295C: .word 0x020F58B4
+_02052960: .word 0x020F5964
+_02052964: .word 0x020F59A4
+_02052968: .word 0x020F59C4
+
+ thumb_func_start FUN_0205296C
+FUN_0205296C: ; 0x0205296C
+ push {r3-r7, lr}
+ str r0, [sp, #0x0]
+ bl FUN_02031190
+ bl FUN_0202E020
+ lsl r0, r0, #0x18
+ lsr r7, r0, #0x18
+ bl FUN_02031190
+ mov r1, #0x1
+ eor r0, r1
+ bl FUN_0202E020
+ lsl r0, r0, #0x18
+ lsr r4, r0, #0x18
+ bl FUN_02031190
+ bl FUN_0202E044
+ lsl r0, r0, #0x18
+ lsr r6, r0, #0x18
+ bl FUN_02031190
+ mov r1, #0x1
+ eor r0, r1
+ bl FUN_0202E044
+ lsl r0, r0, #0x18
+ lsr r5, r0, #0x18
+ cmp r4, #0x0
+ bne _020529B0
+ mov r0, #0xf
+ pop {r3-r7, pc}
+_020529B0:
+ beq _020529CC
+ ldr r0, [sp, #0x0]
+ mov r1, #0x3
+ add r2, r4, #0x0
+ bl FUN_0200B4A0
+ cmp r5, #0x0
+ beq _020529CC
+ ldr r0, [sp, #0x0]
+ mov r1, #0x4
+ add r2, r4, #0x0
+ add r3, r5, #0x0
+ bl FUN_0200B4D8
+_020529CC:
+ cmp r7, r4
+ beq _020529E4
+ cmp r5, #0x0
+ bne _020529D8
+ mov r0, #0xd
+ pop {r3-r7, pc}
+_020529D8:
+ cmp r6, r5
+ bne _020529E0
+ mov r0, #0xd
+ pop {r3-r7, pc}
+_020529E0:
+ mov r0, #0xc
+ pop {r3-r7, pc}
+_020529E4:
+ cmp r6, r5
+ beq _020529EC
+ mov r0, #0xe
+ pop {r3-r7, pc}
+_020529EC:
+ mov r0, #0xf
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_020529F0
+FUN_020529F0: ; 0x020529F0
+ push {r3, lr}
+ cmp r0, #0x0
+ beq _02052A02
+ lsl r2, r0, #0x3
+ ldr r0, _02052A0C ; =0x020F5A14
+ lsl r1, r1, #0x2
+ add r0, r0, r2
+ ldr r0, [r1, r0]
+ pop {r3, pc}
+_02052A02:
+ add r0, r2, #0x0
+ bl FUN_0205296C
+ pop {r3, pc}
+ nop
+_02052A0C: .word 0x020F5A14
+
+ thumb_func_start FUN_02052A10
+FUN_02052A10: ; 0x02052A10
+ push {r4-r6, lr}
+ add r4, r2, #0x0
+ add r5, r0, #0x0
+ add r6, r3, #0x0
+ cmp r4, #0x0
+ bne _02052A24
+ sub r1, r1, #0x1
+ bl FUN_02052814
+ pop {r4-r6, pc}
+_02052A24:
+ sub r0, r1, #0x1
+ bl FUN_0202EF84
+ bl FUN_020239CC
+ add r1, r0, #0x0
+ cmp r4, #0x18
+ bhi _02052AFA
+ add r0, r4, r4
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02052A40: ; jump table (using 16-bit offset)
+ .short _02052AFA - _02052A40 - 2; case 0
+ .short _02052A72 - _02052A40 - 2; case 1
+ .short _02052A7E - _02052A40 - 2; case 2
+ .short _02052AAA - _02052A40 - 2; case 3
+ .short _02052AAA - _02052A40 - 2; case 4
+ .short _02052AAA - _02052A40 - 2; case 5
+ .short _02052AAA - _02052A40 - 2; case 6
+ .short _02052AAA - _02052A40 - 2; case 7
+ .short _02052AAA - _02052A40 - 2; case 8
+ .short _02052A86 - _02052A40 - 2; case 9
+ .short _02052AB8 - _02052A40 - 2; case 10
+ .short _02052AB8 - _02052A40 - 2; case 11
+ .short _02052AB8 - _02052A40 - 2; case 12
+ .short _02052AC6 - _02052A40 - 2; case 13
+ .short _02052AC6 - _02052A40 - 2; case 14
+ .short _02052AC6 - _02052A40 - 2; case 15
+ .short _02052AD4 - _02052A40 - 2; case 16
+ .short _02052AD4 - _02052A40 - 2; case 17
+ .short _02052AD4 - _02052A40 - 2; case 18
+ .short _02052A9C - _02052A40 - 2; case 19
+ .short _02052A9C - _02052A40 - 2; case 20
+ .short _02052A9C - _02052A40 - 2; case 21
+ .short _02052AE2 - _02052A40 - 2; case 22
+ .short _02052AEA - _02052A40 - 2; case 23
+ .short _02052AF2 - _02052A40 - 2; case 24
+_02052A72:
+ ldr r0, [r5, #0x34]
+ add r2, r6, #0x0
+ sub r0, r0, #0x1
+ bl FUN_020529F0
+ pop {r4-r6, pc}
+_02052A7E:
+ ldr r0, _02052B04 ; =0x020F58AC
+ lsl r1, r1, #0x2
+ ldr r0, [r0, r1]
+ pop {r4-r6, pc}
+_02052A86:
+ ldr r0, [r5, #0x34]
+ cmp r0, #0x0
+ bne _02052A90
+ mov r0, #0x0
+ pop {r4-r6, pc}
+_02052A90:
+ lsl r2, r0, #0x3
+ ldr r0, _02052B08 ; =0x020F59DC
+ lsl r1, r1, #0x2
+ add r0, r0, r2
+ ldr r0, [r1, r0]
+ pop {r4-r6, pc}
+_02052A9C:
+ sub r4, #0x13
+ ldr r0, _02052B0C ; =0x020F58E8
+ lsl r2, r4, #0x3
+ lsl r1, r1, #0x2
+ add r0, r0, r2
+ ldr r0, [r1, r0]
+ pop {r4-r6, pc}
+_02052AAA:
+ sub r0, r4, #0x3
+ lsl r2, r0, #0x3
+ ldr r0, _02052B10 ; =0x020F5A44
+ lsl r1, r1, #0x2
+ add r0, r0, r2
+ ldr r0, [r1, r0]
+ pop {r4-r6, pc}
+_02052AB8:
+ sub r4, #0xa
+ ldr r0, _02052B14 ; =0x020F5900
+ lsl r2, r4, #0x3
+ lsl r1, r1, #0x2
+ add r0, r0, r2
+ ldr r0, [r1, r0]
+ pop {r4-r6, pc}
+_02052AC6:
+ sub r4, #0xd
+ ldr r0, _02052B18 ; =0x020F5918
+ lsl r2, r4, #0x3
+ lsl r1, r1, #0x2
+ add r0, r0, r2
+ ldr r0, [r1, r0]
+ pop {r4-r6, pc}
+_02052AD4:
+ sub r4, #0x10
+ ldr r0, _02052B1C ; =0x020F5930
+ lsl r2, r4, #0x3
+ lsl r1, r1, #0x2
+ add r0, r0, r2
+ ldr r0, [r1, r0]
+ pop {r4-r6, pc}
+_02052AE2:
+ ldr r0, _02052B20 ; =0x020F588C
+ lsl r1, r1, #0x2
+ ldr r0, [r0, r1]
+ pop {r4-r6, pc}
+_02052AEA:
+ ldr r0, _02052B24 ; =0x020F58A4
+ lsl r1, r1, #0x2
+ ldr r0, [r0, r1]
+ pop {r4-r6, pc}
+_02052AF2:
+ ldr r0, _02052B28 ; =0x020F589C
+ lsl r1, r1, #0x2
+ ldr r0, [r0, r1]
+ pop {r4-r6, pc}
+_02052AFA:
+ bl ErrorHandling
+ mov r0, #0x28
+ pop {r4-r6, pc}
+ nop
+_02052B04: .word 0x020F58AC
+_02052B08: .word 0x020F59DC
+_02052B0C: .word 0x020F58E8
+_02052B10: .word 0x020F5A44
+_02052B14: .word 0x020F5900
+_02052B18: .word 0x020F5918
+_02052B1C: .word 0x020F5930
+_02052B20: .word 0x020F588C
+_02052B24: .word 0x020F58A4
+_02052B28: .word 0x020F589C
+
+ thumb_func_start FUN_02052B2C
+FUN_02052B2C: ; 0x02052B2C
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ mov r6, #0x1
+_02052B32:
+ add r0, r6, #0x0
+ sub r4, r6, #0x1
+ bl FUN_0202DFA4
+ add r7, r0, #0x0
+ beq _02052B60
+ bl FUN_020239BC
+ lsl r1, r4, #0x2
+ str r0, [r5, r1]
+ add r0, r7, #0x0
+ bl FUN_02023A28
+ str r0, [sp, #0x0]
+ add r0, r7, #0x0
+ bl FUN_020239CC
+ lsl r1, r0, #0x7
+ ldr r0, [sp, #0x0]
+ orr r1, r0
+ add r0, r5, r4
+ strb r1, [r0, #0x18]
+ b _02052B6A
+_02052B60:
+ lsl r1, r4, #0x2
+ mov r0, #0x0
+ str r0, [r5, r1]
+ add r1, r5, r4
+ strb r0, [r1, #0x18]
+_02052B6A:
+ add r6, r6, #0x1
+ cmp r6, #0x5
+ blt _02052B32
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_02052B74
+FUN_02052B74: ; 0x02052B74
+ push {r4, lr}
+ sub sp, #0x20
+ add r4, r0, #0x0
+ add r0, sp, #0x0
+ mov r1, #0x0
+ mov r2, #0x20
+ blx MI_CpuFill8
+ cmp r4, #0xb
+ bhi _02052BFA
+ add r0, r4, r4
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02052B94: ; jump table (using 16-bit offset)
+ .short _02052BFA - _02052B94 - 2; case 0
+ .short _02052BCA - _02052B94 - 2; case 1
+ .short _02052BDE - _02052B94 - 2; case 2
+ .short _02052BF2 - _02052B94 - 2; case 3
+ .short _02052BFA - _02052B94 - 2; case 4
+ .short _02052BB6 - _02052B94 - 2; case 5
+ .short _02052BB6 - _02052B94 - 2; case 6
+ .short _02052BB6 - _02052B94 - 2; case 7
+ .short _02052BC0 - _02052B94 - 2; case 8
+ .short _02052BD4 - _02052B94 - 2; case 9
+ .short _02052BE8 - _02052B94 - 2; case 10
+ .short _02052BAC - _02052B94 - 2; case 11
+_02052BAC:
+ add r0, sp, #0x0
+ mov r1, #0x2
+ bl FUN_02052B2C
+ b _02052BFA
+_02052BB6:
+ add r0, sp, #0x0
+ mov r1, #0x2
+ bl FUN_02052B2C
+ b _02052BFA
+_02052BC0:
+ add r0, sp, #0x0
+ mov r1, #0x5
+ bl FUN_02052B2C
+ b _02052BFA
+_02052BCA:
+ add r0, sp, #0x0
+ mov r1, #0x4
+ bl FUN_02052B2C
+ b _02052BFA
+_02052BD4:
+ add r0, sp, #0x0
+ mov r1, #0x5
+ bl FUN_02052B2C
+ b _02052BFA
+_02052BDE:
+ add r0, sp, #0x0
+ mov r1, #0x4
+ bl FUN_02052B2C
+ b _02052BFA
+_02052BE8:
+ add r0, sp, #0x0
+ mov r1, #0x4
+ bl FUN_02052B2C
+ b _02052BFA
+_02052BF2:
+ add r0, sp, #0x0
+ mov r1, #0x4
+ bl FUN_02052B2C
+_02052BFA:
+ add r0, sp, #0x0
+ strb r4, [r0, #0x1c]
+ add r0, sp, #0x0
+ bl FUN_0202F094
+ bl FUN_0202F0B8
+ add sp, #0x20
+ pop {r4, pc}
+
+ thumb_func_start FUN_02052C0C
+FUN_02052C0C: ; 0x02052C0C
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ mov r3, #0x0
+ mov r0, #0x11
+ add r6, r1, #0x0
+ add r2, r3, #0x0
+ add r4, r5, #0x0
+ lsl r0, r0, #0x4
+_02052C1C:
+ ldr r1, [r4, r0]
+ cmp r1, #0x0
+ beq _02052C24
+ add r3, r3, #0x1
+_02052C24:
+ add r2, r2, #0x1
+ add r4, r4, #0x4
+ cmp r2, #0xa
+ blt _02052C1C
+ cmp r3, #0x0
+ beq _02052C34
+ mov r0, #0xa4
+ pop {r4-r6, pc}
+_02052C34:
+ mov r0, #0x5e
+ lsl r0, r0, #0x2
+ add r0, r5, r0
+ bl FUN_0201385C
+ cmp r0, #0x0
+ bne _02052C46
+ mov r0, #0xa5
+ pop {r4-r6, pc}
+_02052C46:
+ mov r0, #0x5e
+ lsl r0, r0, #0x2
+ add r0, r5, r0
+ bl FUN_02013920
+ cmp r0, #0x4
+ beq _02052C78
+ ldr r0, [r5, #0x8]
+ bl FUN_02023A28
+ add r4, r0, #0x0
+ ldr r0, [r5, #0x8]
+ bl FUN_020239CC
+ add r1, r4, #0x0
+ mov r2, #0x2
+ bl FUN_020536D0
+ add r2, r0, #0x0
+ add r0, r6, #0x0
+ mov r1, #0x0
+ bl FUN_0200B064
+ mov r0, #0xa6
+ pop {r4-r6, pc}
+_02052C78:
+ mov r0, #0x5e
+ lsl r0, r0, #0x2
+ add r0, r5, r0
+ bl FUN_02013924
+ add r4, r0, #0x0
+ cmp r4, #0x14
+ blt _02052C8A
+ mov r4, #0x0
+_02052C8A:
+ mov r0, #0x5e
+ lsl r0, r0, #0x2
+ add r0, r5, r0
+ mov r1, #0x0
+ bl FUN_02013918
+ add r2, r0, #0x0
+ ldr r0, _02052CB0 ; =0x0000FFFF
+ cmp r2, r0
+ beq _02052CA6
+ add r0, r6, #0x0
+ mov r1, #0x0
+ bl FUN_0200B518
+_02052CA6:
+ ldr r0, _02052CB4 ; =0x020F5A74
+ lsl r1, r4, #0x2
+ ldr r0, [r0, r1]
+ pop {r4-r6, pc}
+ nop
+_02052CB0: .word 0x0000FFFF
+_02052CB4: .word 0x020F5A74
+
+ thumb_func_start FUN_02052CB8
+FUN_02052CB8: ; 0x02052CB8
+ push {r3-r4}
+ mov r3, #0x0
+ strb r3, [r0, #0x1c]
+ add r4, r0, #0x0
+ add r2, r3, #0x0
+_02052CC2:
+ stmia r4!, {r2}
+ add r1, r0, r3
+ strb r2, [r1, #0x18]
+ strb r2, [r1, #0x10]
+ add r3, r3, #0x1
+ strb r2, [r1, #0x14]
+ cmp r3, #0x4
+ blt _02052CC2
+ pop {r3-r4}
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02052CD8
+FUN_02052CD8: ; 0x02052CD8
+ push {r4, lr}
+ add r4, r0, #0x0
+ mov r0, #0x5e
+ lsl r0, r0, #0x2
+ add r0, r4, r0
+ bl FUN_02013960
+ mov r0, #0x6
+ mov r1, #0x1
+ lsl r0, r0, #0x6
+ str r1, [r4, r0]
+ pop {r4, pc}
+
+ thumb_func_start FUN_02052CF0
+FUN_02052CF0: ; 0x02052CF0
+ mov r1, #0x6
+ lsl r1, r1, #0x6
+ ldr r2, [r0, r1]
+ cmp r2, #0x0
+ bne _02052CFE
+ mov r0, #0x0
+ bx lr
+_02052CFE:
+ mov r2, #0x0
+ str r2, [r0, r1]
+ sub r1, #0x8
+ add r0, r0, r1
+ bx lr
+
+ thumb_func_start FUN_02052D08
+FUN_02052D08: ; 0x02052D08
+ push {r4-r7, lr}
+ sub sp, #0xc
+ add r6, r2, #0x0
+ mov r2, #0x9
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ str r3, [sp, #0x8]
+ mov r0, #0x1
+ mov r1, #0x1a
+ lsl r2, r2, #0x6
+ mov r3, #0x4
+ bl FUN_0200A86C
+ add r7, r0, #0x0
+ cmp r4, #0x0
+ bne _02052D30
+ sub r0, r6, #0x1
+ bl FUN_0202EF84
+ b _02052D3C
+_02052D30:
+ bl FUN_02031190
+ mov r1, #0x1
+ eor r0, r1
+ bl FUN_0202DFA4
+_02052D3C:
+ add r4, r0, #0x0
+ cmp r4, #0x0
+ beq _02052DE0
+ add r0, r5, #0x0
+ mov r1, #0x0
+ add r2, r4, #0x0
+ bl FUN_0200ABC0
+ ldr r2, [sp, #0x8]
+ add r0, r5, #0x0
+ mov r1, #0x1
+ bl FUN_0200ABC0
+ add r0, r4, #0x0
+ bl FUN_02023A70
+ add r4, r0, #0x0
+ cmp r4, #0x1
+ blt _02052D80
+ cmp r4, #0x7
+ bgt _02052D80
+ sub r0, r4, #0x1
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ cmp r0, #0x7
+ bhs _02052D80
+ lsl r1, r0, #0x2
+ ldr r0, _02052DE4 ; =0x020F5948
+ ldr r1, [r0, r1]
+ cmp r1, #0x0
+ blt _02052D80
+ ldr r0, [sp, #0x20]
+ bl FUN_02013C18
+_02052D80:
+ cmp r4, #0x7
+ bhi _02052DB8
+ add r0, r4, r4
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02052D90: ; jump table (using 16-bit offset)
+ .short _02052DB8 - _02052D90 - 2; case 0
+ .short _02052DA0 - _02052D90 - 2; case 1
+ .short _02052DA4 - _02052D90 - 2; case 2
+ .short _02052DA8 - _02052D90 - 2; case 3
+ .short _02052DAC - _02052D90 - 2; case 4
+ .short _02052DB0 - _02052D90 - 2; case 5
+ .short _02052DB8 - _02052D90 - 2; case 6
+ .short _02052DB4 - _02052D90 - 2; case 7
+_02052DA0:
+ mov r1, #0xd1
+ b _02052DBA
+_02052DA4:
+ mov r1, #0xd2
+ b _02052DBA
+_02052DA8:
+ mov r1, #0xd3
+ b _02052DBA
+_02052DAC:
+ mov r1, #0xd4
+ b _02052DBA
+_02052DB0:
+ mov r1, #0xd5
+ b _02052DBA
+_02052DB4:
+ mov r1, #0xd6
+ b _02052DBA
+_02052DB8:
+ mov r1, #0xd7
+_02052DBA:
+ add r0, r7, #0x0
+ bl FUN_0200A914
+ add r6, r0, #0x0
+ mov r0, #0x1
+ str r0, [sp, #0x0]
+ add r0, r5, #0x0
+ mov r1, #0x2
+ add r2, r6, #0x0
+ mov r3, #0x0
+ str r4, [sp, #0x4]
+ bl FUN_0200ABB4
+ add r0, r6, #0x0
+ bl FUN_02016A18
+ add r0, r7, #0x0
+ bl FUN_0200A8B8
+_02052DE0:
+ add sp, #0xc
+ pop {r4-r7, pc}
+ .balign 4
+_02052DE4: .word 0x020F5948
+
+ thumb_func_start FUN_02052DE8
+FUN_02052DE8: ; 0x02052DE8
+ push {r4, lr}
+ sub sp, #0x20
+ add r4, r0, #0x0
+ add r0, sp, #0x0
+ bl FUN_02052CB8
+ mov r1, #0x0
+ add r0, sp, #0x0
+ strb r1, [r0, #0x1c]
+ add r0, r4, #0x0
+ bl FUN_0202F078
+ add r0, sp, #0x0
+ bl FUN_0202F094
+ bl FUN_0202F0B8
+ add sp, #0x20
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02052E10
+FUN_02052E10: ; 0x02052E10
+ mov r1, #0x0
+ str r1, [r0, #0x30]
+ str r1, [r0, #0x40]
+ str r1, [r0, #0x44]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02052E1C
+FUN_02052E1C: ; 0x02052E1C
+ mov r2, #0x0
+ str r2, [r0, #0x20]
+ str r2, [r0, #0x24]
+ str r2, [r0, #0x2c]
+ str r2, [r0, #0x30]
+ mov r1, #0x5d
+ str r2, [r0, #0x40]
+ lsl r1, r1, #0x2
+ strh r2, [r0, r1]
+ add r1, #0xc
+ str r2, [r0, r1]
+ str r2, [r0, #0x44]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02052E38
+FUN_02052E38: ; 0x02052E38
+ push {r3-r5, lr}
+ sub sp, #0x8
+ add r4, r0, #0x0
+ mov r0, #0x0
+ bl FUN_02065054
+ mov r1, #0x61
+ lsl r1, r1, #0x2
+ str r0, [r4, r1]
+ mov r0, #0x0
+ bl FUN_02065054
+ mov r1, #0x62
+ lsl r1, r1, #0x2
+ str r0, [r4, r1]
+ mov r0, #0x0
+ bl FUN_02065054
+ mov r1, #0x63
+ lsl r1, r1, #0x2
+ str r0, [r4, r1]
+ ldr r0, [r4, #0x8]
+ bl FUN_020239CC
+ add r5, r0, #0x0
+ ldr r0, [r4, #0x8]
+ bl FUN_02023A28
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ mov r2, #0x0
+ bl FUN_020536D0
+ add r3, r0, #0x0
+ ldr r0, [r4, #0x0]
+ lsl r3, r3, #0x18
+ str r0, [sp, #0x0]
+ mov r0, #0x61
+ lsl r0, r0, #0x2
+ ldr r0, [r4, r0]
+ lsr r3, r3, #0x18
+ str r0, [sp, #0x4]
+ mov r0, #0x0
+ add r1, r0, #0x0
+ add r2, r0, #0x0
+ bl FUN_02064E90
+ bl FUN_02031190
+ mov r1, #0x1
+ eor r0, r1
+ lsl r0, r0, #0x2
+ add r1, r4, r0
+ mov r0, #0x62
+ lsl r0, r0, #0x2
+ ldr r0, [r1, r0]
+ add sp, #0x8
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_02052EAC
+FUN_02052EAC: ; 0x02052EAC
+ push {r4, lr}
+ add r4, r0, #0x0
+ mov r0, #0x62
+ lsl r0, r0, #0x2
+ ldr r0, [r4, r0]
+ bl FUN_02016A18
+ mov r0, #0x63
+ lsl r0, r0, #0x2
+ ldr r0, [r4, r0]
+ bl FUN_02016A18
+ mov r0, #0x61
+ lsl r0, r0, #0x2
+ ldr r0, [r4, r0]
+ bl FUN_02016A18
+ pop {r4, pc}
+
+ thumb_func_start FUN_02052ED0
+FUN_02052ED0: ; 0x02052ED0
+ mov r1, #0x61
+ add r2, r0, #0x0
+ lsl r1, r1, #0x2
+ ldr r1, [r2, r1]
+ ldr r3, _02052EE0 ; =FUN_02030A78
+ mov r0, #0x69
+ ldr r2, _02052EE4 ; =0x0000066C
+ bx r3
+ .balign 4
+_02052EE0: .word FUN_02030A78
+_02052EE4: .word 0x0000066C
+
+ thumb_func_start FUN_02052EE8
+FUN_02052EE8: ; 0x02052EE8
+ push {r3-r5, lr}
+ ldr r1, _02052F58 ; =0x000004E8
+ add r5, r0, #0x0
+ mov r0, #0x1f
+ bl FUN_02016998
+ add r4, r0, #0x0
+ ldr r2, _02052F58 ; =0x000004E8
+ mov r0, #0x0
+ add r1, r4, #0x0
+ blx MIi_CpuClearFast
+ mov r0, #0x4e
+ str r5, [r4, #0x0]
+ mov r1, #0x1
+ lsl r0, r0, #0x4
+ str r1, [r4, r0]
+ ldr r0, _02052F5C ; =FUN_02052FC8
+ add r1, r4, #0x0
+ mov r2, #0xb
+ bl FUN_0200CA44
+ str r0, [r4, #0x4]
+ add r0, r5, #0x0
+ bl FUN_020524BC
+ ldr r1, _02052F60 ; =0x000004D4
+ str r0, [r4, r1]
+ ldr r0, [r4, r1]
+ mov r1, #0x9
+ ldr r0, [r0, #0xc]
+ bl FUN_02022610
+ ldr r1, _02052F64 ; =0x000004D8
+ ldr r2, _02052F68 ; =0x00002710
+ str r0, [r4, r1]
+ sub r0, r1, #0x4
+ ldr r0, [r4, r0]
+ mov r1, #0x59
+ ldr r0, [r0, #0x38]
+ str r0, [r4, #0x8]
+ mov r0, #0xb
+ bl FUN_02016828
+ mov r0, #0x59
+ bl FUN_02053618
+ ldr r1, _02052F6C ; =0x000004DC
+ str r0, [r4, r1]
+ add r0, r4, #0x0
+ bl FUN_02052F8C
+ ldr r0, _02052F70 ; =0x021C5ABC
+ str r4, [r0, #0x0]
+ add r0, r4, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+_02052F58: .word 0x000004E8
+_02052F5C: .word FUN_02052FC8
+_02052F60: .word 0x000004D4
+_02052F64: .word 0x000004D8
+_02052F68: .word 0x00002710
+_02052F6C: .word 0x000004DC
+_02052F70: .word 0x021C5ABC
+
+ thumb_func_start FUN_02052F74
+FUN_02052F74: ; 0x02052F74
+ mov r3, #0x0
+ mov r1, #0x3
+_02052F78:
+ ldrb r2, [r0, #0xd]
+ cmp r2, #0x0
+ beq _02052F80
+ strb r1, [r0, #0xc]
+_02052F80:
+ add r3, r3, #0x1
+ add r0, #0x18
+ cmp r3, #0x33
+ blt _02052F78
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02052F8C
+FUN_02052F8C: ; 0x02052F8C
+ mov r2, #0x0
+ add r1, r2, #0x0
+_02052F90:
+ strb r1, [r0, #0xc]
+ strb r1, [r0, #0xd]
+ strb r1, [r0, #0xe]
+ strb r1, [r0, #0xf]
+ add r2, r2, #0x1
+ add r0, #0x18
+ cmp r2, #0x33
+ blt _02052F90
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02052FA4
+FUN_02052FA4: ; 0x02052FA4
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r0, [r4, #0x4]
+ bl FUN_0200CAB4
+ ldr r0, _02052FC4 ; =0x000004DC
+ ldr r0, [r4, r0]
+ bl FUN_0205362C
+ mov r0, #0x59
+ bl FUN_020168D0
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ pop {r4, pc}
+ .balign 4
+_02052FC4: .word 0x000004DC
+
+ thumb_func_start FUN_02052FC8
+FUN_02052FC8: ; 0x02052FC8
+ push {r3-r5, lr}
+ ldr r0, _02052FFC ; =0x000004D4
+ add r5, r1, #0x0
+ ldr r0, [r5, r0]
+ ldr r4, [r5, #0x0]
+ bl FUN_0204646C
+ cmp r0, #0x0
+ bne _02052FF8
+ ldr r3, _02052FFC ; =0x000004D4
+ add r0, r5, #0x0
+ ldr r2, [r5, r3]
+ add r3, r3, #0x4
+ ldr r2, [r2, #0x34]
+ ldr r3, [r5, r3]
+ add r1, r4, #0x0
+ bl FUN_0205312C
+ ldr r1, _02052FFC ; =0x000004D4
+ add r0, r5, #0x0
+ ldr r1, [r5, r1]
+ ldr r1, [r1, #0x34]
+ bl FUN_020531E4
+_02052FF8:
+ pop {r3-r5, pc}
+ nop
+_02052FFC: .word 0x000004D4
+
+ thumb_func_start FUN_02053000
+FUN_02053000: ; 0x02053000
+ push {r4-r7, lr}
+ sub sp, #0x14
+ mov r5, #0x0
+ str r0, [sp, #0x0]
+ str r3, [sp, #0x4]
+ cmp r2, #0x0
+ bne _02053034
+ ldr r0, _02053100 ; =0x020F58D4
+ lsl r1, r1, #0x1
+ ldrh r4, [r0, r1]
+ ldr r0, [sp, #0x0]
+ mov r6, #0x3
+ add r0, #0xc
+ str r0, [sp, #0x0]
+_0205301C:
+ ldr r0, [sp, #0x0]
+ add r1, r4, #0x0
+ add r2, r6, #0x0
+ bl FUN_02053104
+ add r5, r5, #0x1
+ add r4, r4, #0x1
+ cmp r5, #0x4
+ blt _0205301C
+ add sp, #0x14
+ mov r0, #0x0
+ pop {r4-r7, pc}
+_02053034:
+ add r0, r2, #0x0
+ str r0, [sp, #0xc]
+ add r0, #0x50
+ str r0, [sp, #0xc]
+ add r0, #0x30
+ str r0, [sp, #0xc]
+ ldr r0, [r2, #0x50]
+ mov r2, #0x18
+ add r3, r1, #0x0
+ mul r3, r2
+ ldr r2, [sp, #0x0]
+ add r2, r2, r3
+ ldr r2, [r2, #0x18]
+ cmp r0, r2
+ beq _02053078
+ ldr r0, _02053100 ; =0x020F58D4
+ lsl r1, r1, #0x1
+ ldrh r4, [r0, r1]
+ ldr r0, [sp, #0x0]
+ mov r6, #0x3
+ add r0, #0xc
+ str r0, [sp, #0x0]
+_02053060:
+ ldr r0, [sp, #0x0]
+ add r1, r4, #0x0
+ add r2, r6, #0x0
+ bl FUN_02053104
+ add r5, r5, #0x1
+ add r4, r4, #0x1
+ cmp r5, #0x4
+ blt _02053060
+ add sp, #0x14
+ mov r0, #0x0
+ pop {r4-r7, pc}
+_02053078:
+ ldr r0, _02053100 ; =0x020F58D4
+ lsl r1, r1, #0x1
+ ldrh r7, [r0, r1]
+ ldr r0, [sp, #0xc]
+ add r6, r5, #0x0
+ str r0, [sp, #0x8]
+ ldr r0, [sp, #0x0]
+ str r0, [sp, #0x10]
+ add r0, #0xc
+ str r0, [sp, #0x10]
+_0205308C:
+ mov r0, #0x18
+ add r1, r7, #0x0
+ mul r1, r0
+ ldr r0, [sp, #0x0]
+ add r4, r0, r1
+ ldrb r0, [r4, #0xd]
+ cmp r0, #0x0
+ beq _020530A6
+ cmp r0, #0x2
+ beq _020530CC
+ cmp r0, #0x4
+ beq _020530E6
+ b _020530EA
+_020530A6:
+ ldr r0, [sp, #0xc]
+ add r1, r0, r6
+ ldrb r0, [r1, #0x18]
+ cmp r0, #0x0
+ beq _020530EA
+ mov r0, #0x2
+ strb r0, [r4, #0xc]
+ ldrb r1, [r1, #0x18]
+ mov r0, #0x7f
+ and r0, r1
+ strb r0, [r4, #0x14]
+ ldr r1, [sp, #0x8]
+ ldr r0, [sp, #0x4]
+ ldr r1, [r1, #0x0]
+ bl FUN_02025614
+ strb r0, [r4, #0xe]
+ mov r5, #0x1
+ b _020530EA
+_020530CC:
+ ldr r0, [sp, #0xc]
+ add r0, r0, r6
+ ldrb r0, [r0, #0x18]
+ cmp r0, #0x0
+ bne _020530E2
+ ldr r0, [sp, #0x10]
+ add r1, r7, #0x0
+ mov r2, #0x3
+ bl FUN_02053104
+ b _020530EA
+_020530E2:
+ mov r5, #0x1
+ b _020530EA
+_020530E6:
+ mov r0, #0x0
+ strb r0, [r4, #0xc]
+_020530EA:
+ ldr r0, [sp, #0x8]
+ add r6, r6, #0x1
+ add r0, r0, #0x4
+ add r7, r7, #0x1
+ str r0, [sp, #0x8]
+ cmp r6, #0x4
+ blt _0205308C
+ add r0, r5, #0x0
+ add sp, #0x14
+ pop {r4-r7, pc}
+ nop
+_02053100: .word 0x020F58D4
+
+ thumb_func_start FUN_02053104
+FUN_02053104: ; 0x02053104
+ push {r4-r6, lr}
+ ldr r6, _02053124 ; =0x021C5ABC
+ mov r4, #0x18
+ ldr r3, [r6, #0x0]
+ ldr r5, _02053128 ; =0x000004D4
+ mul r4, r1
+ ldr r3, [r3, r5]
+ strb r2, [r0, r4]
+ ldr r0, [r6, #0x0]
+ ldr r0, [r0, r5]
+ cmp r3, r0
+ beq _02053120
+ bl ErrorHandling
+_02053120:
+ pop {r4-r6, pc}
+ nop
+_02053124: .word 0x021C5ABC
+_02053128: .word 0x000004D4
+
+ thumb_func_start FUN_0205312C
+FUN_0205312C: ; 0x0205312C
+ push {r4-r7, lr}
+ sub sp, #0x14
+ str r0, [sp, #0x0]
+ add r5, r0, #0x0
+ str r0, [sp, #0x10]
+ add r0, #0xc
+ str r1, [sp, #0x4]
+ str r3, [sp, #0x8]
+ mov r4, #0x0
+ str r0, [sp, #0x10]
+_02053140:
+ ldr r0, [sp, #0x4]
+ add r1, r4, #0x0
+ bl FUN_020524C0
+ add r6, r0, #0x0
+ add r7, r6, #0x0
+ add r7, #0x50
+ add r0, r7, #0x0
+ str r0, [sp, #0xc]
+ add r0, #0x10
+ str r0, [sp, #0xc]
+ ldrb r0, [r5, #0xd]
+ cmp r0, #0x0
+ beq _02053166
+ cmp r0, #0x2
+ beq _020531A2
+ cmp r0, #0x4
+ beq _020531D4
+ b _020531D8
+_02053166:
+ cmp r6, #0x0
+ beq _020531D8
+ ldr r0, [sp, #0xc]
+ bl FUN_02023A28
+ strb r0, [r5, #0x14]
+ ldr r0, [sp, #0xc]
+ bl FUN_020239BC
+ add r1, r0, #0x0
+ ldr r0, [sp, #0x8]
+ bl FUN_02025614
+ strb r0, [r5, #0xe]
+ ldr r0, [r7, #0x0]
+ ldr r3, [sp, #0x8]
+ str r0, [r5, #0x18]
+ ldr r0, [sp, #0x0]
+ add r1, r4, #0x0
+ add r2, r6, #0x0
+ bl FUN_02053000
+ cmp r0, #0x0
+ beq _0205319C
+ mov r0, #0x2
+ strb r0, [r5, #0xc]
+ b _020531D8
+_0205319C:
+ mov r0, #0x1
+ strb r0, [r5, #0xc]
+ b _020531D8
+_020531A2:
+ cmp r6, #0x0
+ beq _020531AE
+ ldr r1, [r7, #0x0]
+ ldr r0, [r5, #0x18]
+ cmp r1, r0
+ beq _020531B8
+_020531AE:
+ ldr r0, [sp, #0x10]
+ add r1, r4, #0x0
+ mov r2, #0x3
+ bl FUN_02053104
+_020531B8:
+ ldr r0, [sp, #0x0]
+ ldr r3, [sp, #0x8]
+ add r1, r4, #0x0
+ add r2, r6, #0x0
+ bl FUN_02053000
+ cmp r0, #0x0
+ beq _020531D8
+ ldrb r0, [r5, #0x15]
+ cmp r0, #0x1
+ bne _020531D8
+ mov r0, #0x3
+ strb r0, [r5, #0xc]
+ b _020531D8
+_020531D4:
+ mov r0, #0x0
+ strb r0, [r5, #0xc]
+_020531D8:
+ add r4, r4, #0x1
+ add r5, #0x18
+ cmp r4, #0xa
+ blt _02053140
+ add sp, #0x14
+ pop {r4-r7, pc}
+
+ thumb_func_start FUN_020531E4
+FUN_020531E4: ; 0x020531E4
+ push {r3-r7, lr}
+ sub sp, #0x10
+ str r0, [sp, #0x0]
+ ldr r0, [r0, #0x8]
+ str r1, [sp, #0x4]
+ bl FUN_02055320
+ str r0, [sp, #0xc]
+ ldr r0, [sp, #0x0]
+ ldr r0, [r0, #0x8]
+ bl FUN_0205532C
+ ldr r4, [sp, #0x0]
+ str r0, [sp, #0x8]
+ add r6, r4, #0x0
+ mov r7, #0x0
+ add r6, #0xc
+_02053206:
+ ldr r0, [sp, #0x4]
+ add r1, r7, #0x1
+ bl FUN_02058060
+ add r5, r0, #0x0
+ bne _02053216
+ bl ErrorHandling
+_02053216:
+ ldrb r0, [r4, #0xd]
+ cmp r0, #0x4
+ bhi _0205330A
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02053228: ; jump table (using 16-bit offset)
+ .short _02053232 - _02053228 - 2; case 0
+ .short _02053252 - _02053228 - 2; case 1
+ .short _020532B2 - _02053228 - 2; case 2
+ .short _020532DA - _02053228 - 2; case 3
+ .short _02053306 - _02053228 - 2; case 4
+_02053232:
+ add r0, r5, #0x0
+ bl FUN_0205AD98
+ cmp r0, #0x1
+ bne _0205330A
+ ldrb r0, [r4, #0xc]
+ sub r0, r0, #0x1
+ cmp r0, #0x1
+ bhi _0205330A
+ ldr r2, [sp, #0xc]
+ ldr r3, [sp, #0x8]
+ add r0, r6, #0x0
+ add r1, r5, #0x0
+ bl FUN_0205339C
+ b _0205330A
+_02053252:
+ add r0, r5, #0x0
+ bl FUN_0205AD98
+ cmp r0, #0x1
+ bne _0205330A
+ ldrb r0, [r4, #0xc]
+ cmp r0, #0x3
+ bne _02053272
+ mov r0, #0x0
+ strb r0, [r4, #0xd]
+ strb r0, [r4, #0xc]
+ add r0, r6, #0x0
+ mov r1, #0x1
+ bl FUN_0205333C
+ b _0205330A
+_02053272:
+ add r0, r5, #0x0
+ bl FUN_0205AE50
+ add r0, r5, #0x0
+ mov r1, #0x0
+ bl FUN_020588EC
+ ldrb r0, [r4, #0xc]
+ cmp r0, #0x1
+ bne _020532A8
+ ldrb r0, [r4, #0x15]
+ cmp r0, #0x0
+ bne _020532A8
+ add r0, r5, #0x0
+ mov r1, #0x3
+ bl FUN_02058E90
+ add r0, r5, #0x0
+ mov r1, #0x1
+ bl FUN_02058534
+ add r0, r5, #0x0
+ mov r1, #0x1
+ bl FUN_0205853C
+ mov r0, #0x1
+ strb r0, [r4, #0x15]
+_020532A8:
+ mov r0, #0x2
+ strb r0, [r4, #0xd]
+ mov r0, #0x0
+ strb r0, [r4, #0xc]
+ b _0205330A
+_020532B2:
+ add r0, r5, #0x0
+ bl FUN_0205AD98
+ cmp r0, #0x1
+ bne _0205330A
+ add r0, r6, #0x0
+ add r1, r5, #0x0
+ bl FUN_02053478
+ ldrb r0, [r4, #0xc]
+ cmp r0, #0x3
+ bne _020532D2
+ add r0, r6, #0x0
+ add r1, r5, #0x0
+ bl FUN_02053444
+_020532D2:
+ add r0, r6, #0x0
+ bl FUN_02053378
+ b _0205330A
+_020532DA:
+ add r0, r5, #0x0
+ bl FUN_0205AD98
+ cmp r0, #0x1
+ bne _0205330A
+ add r0, r5, #0x0
+ bl FUN_0205AE50
+ mov r0, #0x4
+ strb r0, [r4, #0xd]
+ mov r0, #0x0
+ strb r0, [r4, #0xc]
+ strb r0, [r4, #0x15]
+ add r0, r5, #0x0
+ mov r1, #0x1
+ bl FUN_0205889C
+ add r0, r5, #0x0
+ mov r1, #0x0
+ bl FUN_020588B8
+ b _0205330A
+_02053306:
+ mov r0, #0x0
+ strb r0, [r4, #0xd]
+_0205330A:
+ add r7, r7, #0x1
+ add r4, #0x18
+ add r6, #0x18
+ cmp r7, #0x32
+ bge _02053316
+ b _02053206
+_02053316:
+ ldr r0, [sp, #0x0]
+ ldr r0, [r0, #0x8]
+ bl FUN_020553A0
+ add r1, r0, #0x0
+ ldr r2, _02053338 ; =0x000004BC
+ ldr r0, [sp, #0x0]
+ add r0, r0, r2
+ bl FUN_02053478
+ ldr r1, _02053338 ; =0x000004BC
+ ldr r0, [sp, #0x0]
+ add r0, r0, r1
+ bl FUN_02053378
+ add sp, #0x10
+ pop {r3-r7, pc}
+ .balign 4
+_02053338: .word 0x000004BC
+
+ thumb_func_start FUN_0205333C
+FUN_0205333C: ; 0x0205333C
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ ldr r0, [r5, #0x10]
+ add r4, r1, #0x0
+ cmp r0, #0x0
+ beq _0205335A
+ bl FUN_020646A0
+ cmp r0, #0x0
+ beq _02053356
+ ldr r0, [r5, #0x10]
+ bl FUN_02064520
+_02053356:
+ mov r0, #0x0
+ str r0, [r5, #0x10]
+_0205335A:
+ cmp r4, #0x0
+ beq _02053376
+ ldr r0, [r5, #0x14]
+ cmp r0, #0x0
+ beq _02053376
+ bl FUN_020646A0
+ cmp r0, #0x0
+ beq _02053372
+ ldr r0, [r5, #0x14]
+ bl FUN_02064520
+_02053372:
+ mov r0, #0x0
+ str r0, [r5, #0x14]
+_02053376:
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_02053378
+FUN_02053378: ; 0x02053378
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldrb r1, [r4, #0x4]
+ cmp r1, #0x0
+ beq _02053398
+ ldrh r1, [r4, #0x6]
+ sub r1, r1, #0x1
+ strh r1, [r4, #0x6]
+ ldrh r1, [r4, #0x6]
+ cmp r1, #0x0
+ bne _02053398
+ mov r1, #0x0
+ bl FUN_0205333C
+ mov r0, #0x0
+ strb r0, [r4, #0x4]
+_02053398:
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0205339C
+FUN_0205339C: ; 0x0205339C
+ push {r3-r7, lr}
+ sub sp, #0x10
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ add r0, r4, #0x0
+ str r2, [sp, #0x4]
+ str r3, [sp, #0x8]
+ bl FUN_02058AFC
+ add r7, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_02058B04
+ str r0, [sp, #0xc]
+ add r0, r4, #0x0
+ bl FUN_02058B0C
+ add r6, r0, #0x0
+ ldr r0, [sp, #0x4]
+ cmp r7, r0
+ bne _020533CC
+ ldr r0, [sp, #0x8]
+ cmp r6, r0
+ beq _0205343C
+_020533CC:
+ ldr r0, _02053440 ; =0x0000064F
+ bl FUN_020054C8
+ ldrb r1, [r5, #0x8]
+ add r0, r4, #0x0
+ bl FUN_02057634
+ add r0, r5, #0x0
+ mov r1, #0x0
+ bl FUN_0205333C
+ mov r0, #0x1
+ str r0, [sp, #0x0]
+ ldr r2, [sp, #0xc]
+ add r0, r4, #0x0
+ add r1, r7, #0x0
+ add r3, r6, #0x0
+ bl FUN_02058E28
+ add r0, r4, #0x0
+ mov r1, #0x1
+ bl FUN_020584A4
+ add r0, r4, #0x0
+ mov r1, #0x44
+ bl FUN_0205ADDC
+ add r0, r4, #0x0
+ mov r1, #0x0
+ bl FUN_0205889C
+ add r0, r4, #0x0
+ mov r1, #0x1
+ bl FUN_020588B8
+ mov r1, #0x1
+ strb r1, [r5, #0x1]
+ ldrb r0, [r5, #0x2]
+ cmp r0, #0x0
+ beq _0205343C
+ cmp r0, #0x1
+ bne _0205342A
+ add r0, r4, #0x0
+ bl FUN_02249668
+ str r0, [r5, #0x14]
+ b _02053438
+_0205342A:
+ cmp r0, #0x2
+ blo _02053438
+ add r0, r4, #0x0
+ mov r1, #0x2
+ bl FUN_02249668
+ str r0, [r5, #0x14]
+_02053438:
+ mov r0, #0x0
+ strb r0, [r5, #0x2]
+_0205343C:
+ add sp, #0x10
+ pop {r3-r7, pc}
+ .balign 4
+_02053440: .word 0x0000064F
+
+ thumb_func_start FUN_02053444
+FUN_02053444: ; 0x02053444
+ push {r3-r5, lr}
+ add r5, r1, #0x0
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ mov r1, #0x43
+ bl FUN_0205ADDC
+ add r0, r5, #0x0
+ mov r1, #0x1
+ bl FUN_020588EC
+ add r0, r5, #0x0
+ mov r1, #0x0
+ bl FUN_02058E90
+ add r0, r4, #0x0
+ mov r1, #0x1
+ bl FUN_0205333C
+ mov r0, #0x0
+ strb r0, [r4, #0x4]
+ strh r0, [r4, #0x6]
+ mov r0, #0x3
+ strb r0, [r4, #0x1]
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_02053478
+FUN_02053478: ; 0x02053478
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldrb r0, [r4, #0x3]
+ cmp r0, #0x1
+ bne _0205349C
+ ldrb r0, [r4, #0x4]
+ cmp r0, #0x0
+ bne _0205349C
+ add r0, r1, #0x0
+ bl FUN_021EDA48
+ str r0, [r4, #0x10]
+ mov r0, #0x1e
+ strh r0, [r4, #0x6]
+ mov r0, #0x0
+ strb r0, [r4, #0x3]
+ mov r0, #0x1
+ strb r0, [r4, #0x4]
+_0205349C:
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_020534A0
+FUN_020534A0: ; 0x020534A0
+ push {r3-r7, lr}
+ add r5, r1, #0x0
+ add r6, r2, #0x0
+ add r7, r0, #0x0
+ cmp r5, r6
+ bge _020534DA
+_020534AC:
+ add r0, r7, #0x0
+ add r1, r5, #0x0
+ bl FUN_02058060
+ add r4, r0, #0x0
+ bne _020534BC
+ bl ErrorHandling
+_020534BC:
+ add r0, r4, #0x0
+ mov r1, #0x1
+ bl FUN_0205889C
+ add r0, r4, #0x0
+ mov r1, #0x0
+ bl FUN_020588B8
+ add r0, r4, #0x0
+ mov r1, #0x1
+ bl FUN_020588EC
+ add r5, r5, #0x1
+ cmp r5, r6
+ blt _020534AC
+_020534DA:
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_020534DC
+FUN_020534DC: ; 0x020534DC
+ push {r3-r7, lr}
+ add r5, r1, #0x0
+ mov r1, #0x0
+ add r7, r0, #0x0
+ bl FUN_02058060
+ add r4, r0, #0x0
+ bne _020534F0
+ bl ErrorHandling
+_020534F0:
+ add r0, r4, #0x0
+ bl FUN_0205AD98
+ cmp r0, #0x1
+ bne _02053596
+ bl FUN_02031B2C
+ cmp r0, #0x0
+ bne _0205350A
+ bl FUN_02031AF4
+ cmp r0, #0x0
+ beq _0205358C
+_0205350A:
+ mov r6, #0x0
+ add r5, #0xc
+_0205350E:
+ ldrb r0, [r5, #0x1]
+ cmp r0, #0x1
+ bne _02053578
+ add r0, r7, #0x0
+ add r1, r6, #0x1
+ bl FUN_02058060
+ add r4, r0, #0x0
+ bne _02053524
+ bl ErrorHandling
+_02053524:
+ ldrb r1, [r5, #0x8]
+ add r0, r4, #0x0
+ bl FUN_02057634
+ add r0, r4, #0x0
+ mov r1, #0x1
+ bl FUN_020584A4
+ add r0, r4, #0x0
+ mov r1, #0x44
+ bl FUN_0205ADDC
+ add r0, r4, #0x0
+ mov r1, #0x0
+ bl FUN_0205889C
+ add r0, r4, #0x0
+ mov r1, #0x1
+ bl FUN_020588B8
+ mov r0, #0x1
+ strb r0, [r5, #0x1]
+ ldrb r0, [r5, #0x2]
+ cmp r0, #0x0
+ beq _02053578
+ cmp r0, #0x1
+ bne _02053566
+ add r0, r4, #0x0
+ mov r1, #0x1
+ bl FUN_02249668
+ str r0, [r5, #0x14]
+ b _02053574
+_02053566:
+ cmp r0, #0x2
+ blo _02053574
+ add r0, r4, #0x0
+ mov r1, #0x2
+ bl FUN_02249668
+ str r0, [r5, #0x14]
+_02053574:
+ mov r0, #0x0
+ strb r0, [r5, #0x2]
+_02053578:
+ add r6, r6, #0x1
+ add r5, #0x18
+ cmp r6, #0xa
+ blt _0205350E
+ add r0, r7, #0x0
+ mov r1, #0xb
+ mov r2, #0x33
+ bl FUN_020534A0
+ pop {r3-r7, pc}
+_0205358C:
+ add r0, r7, #0x0
+ mov r1, #0x1
+ mov r2, #0x33
+ bl FUN_020534A0
+_02053596:
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_02053598
+FUN_02053598: ; 0x02053598
+ push {r4, lr}
+ add r4, r0, #0x0
+ mov r0, #0x8
+ mov r1, #0x59
+ bl FUN_020219F4
+ str r0, [r4, #0x0]
+ mov r1, #0x0
+ add r0, r4, #0x0
+ str r1, [r4, #0x4]
+ add r0, #0x14
+ str r1, [r4, #0x8]
+ bl FUN_0201373C
+ mov r0, #0x0
+ str r0, [r4, #0x10]
+ str r0, [r4, #0xc]
+ pop {r4, pc}
+
+ thumb_func_start FUN_020535BC
+FUN_020535BC: ; 0x020535BC
+ push {r4-r6, lr}
+ add r6, r0, #0x0
+ mov r4, #0x0
+ add r5, r6, #0x0
+_020535C4:
+ add r0, r5, #0x0
+ bl FUN_02053598
+ add r4, r4, #0x1
+ add r5, #0x1c
+ cmp r4, #0x1e
+ blt _020535C4
+ mov r0, #0xd2
+ mov r1, #0x0
+ lsl r0, r0, #0x2
+ str r1, [r6, r0]
+ add r0, r0, #0x4
+ str r1, [r6, r0]
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_020535E0
+FUN_020535E0: ; 0x020535E0
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r0, [r4, #0x0]
+ bl FUN_02016A18
+ ldr r0, [r4, #0x4]
+ cmp r0, #0x0
+ beq _020535F4
+ bl FUN_02021A20
+_020535F4:
+ ldr r0, [r4, #0x8]
+ cmp r0, #0x0
+ beq _020535FE
+ bl FUN_02021A20
+_020535FE:
+ pop {r4, pc}
+
+ thumb_func_start FUN_02053600
+FUN_02053600: ; 0x02053600
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ mov r4, #0x0
+_02053606:
+ add r0, r5, #0x0
+ bl FUN_020535E0
+ add r4, r4, #0x1
+ add r5, #0x1c
+ cmp r4, #0x1e
+ blt _02053606
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_02053618
+FUN_02053618: ; 0x02053618
+ push {r4, lr}
+ mov r1, #0x35
+ lsl r1, r1, #0x4
+ bl FUN_02016998
+ add r4, r0, #0x0
+ bl FUN_020535BC
+ add r0, r4, #0x0
+ pop {r4, pc}
+
+ thumb_func_start FUN_0205362C
+FUN_0205362C: ; 0x0205362C
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl FUN_02053600
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ pop {r4, pc}
+
+ thumb_func_start FUN_0205363C
+FUN_0205363C: ; 0x0205363C
+ push {r3-r7, lr}
+ add r7, r2, #0x0
+ lsl r0, r0, #0x1d
+ ldr r2, _02053670 ; =0x020F5AC4
+ lsr r0, r0, #0x19
+ add r5, r2, r0
+ lsl r2, r1, #0x3
+ mov r1, #0xc
+ ldr r0, _02053674 ; =0x020F5B44
+ mul r1, r2
+ mov r4, #0x0
+ add r6, r0, r1
+_02053654:
+ ldr r3, [r5, #0x0]
+ mov r2, #0xc
+ mul r2, r3
+ add r2, r6, r2
+ ldr r2, [r2, #0x4]
+ add r0, r7, #0x0
+ add r1, r4, #0x0
+ bl FUN_0200B064
+ add r4, r4, #0x1
+ add r5, r5, #0x4
+ cmp r4, #0x4
+ blt _02053654
+ pop {r3-r7, pc}
+ .balign 4
+_02053670: .word 0x020F5AC4
+_02053674: .word 0x020F5B44
+
+ thumb_func_start FUN_02053678
+FUN_02053678: ; 0x02053678
+ lsl r0, r0, #0x1d
+ lsr r3, r0, #0x19
+ ldr r0, _02053694 ; =0x020F5AC4
+ lsl r2, r2, #0x2
+ add r0, r0, r3
+ ldr r0, [r2, r0]
+ lsl r1, r1, #0x3
+ add r1, r1, r0
+ mov r0, #0xc
+ add r2, r1, #0x0
+ mul r2, r0
+ ldr r0, _02053698 ; =0x020F5B44
+ ldr r0, [r0, r2]
+ bx lr
+ .balign 4
+_02053694: .word 0x020F5AC4
+_02053698: .word 0x020F5B44
+
+ thumb_func_start FUN_0205369C
+FUN_0205369C: ; 0x0205369C
+ push {r3-r4}
+ lsl r4, r0, #0x3
+ mov r0, #0xc
+ ldr r2, _020536C4 ; =0x020F5B44
+ mul r0, r4
+ mov r3, #0x0
+ add r2, r2, r0
+_020536AA:
+ ldr r0, [r2, #0x0]
+ cmp r1, r0
+ bne _020536B6
+ add r0, r3, r4
+ pop {r3-r4}
+ bx lr
+_020536B6:
+ add r3, r3, #0x1
+ add r2, #0xc
+ cmp r3, #0x8
+ blt _020536AA
+ mov r0, #0x0
+ pop {r3-r4}
+ bx lr
+ .balign 4
+_020536C4: .word 0x020F5B44
+
+ thumb_func_start FUN_020536C8
+FUN_020536C8: ; 0x020536C8
+ ldr r3, _020536CC ; =FUN_0205369C
+ bx r3
+ .balign 4
+_020536CC: .word FUN_0205369C
+
+ thumb_func_start FUN_020536D0
+FUN_020536D0: ; 0x020536D0
+ push {r4, lr}
+ add r4, r2, #0x0
+ bl FUN_0205369C
+ cmp r4, #0x0
+ beq _020536FE
+ cmp r4, #0x1
+ beq _020536EE
+ cmp r4, #0x2
+ bne _020536F8
+ mov r1, #0xc
+ mul r1, r0
+ ldr r0, _02053700 ; =0x020F5B48
+ ldr r0, [r0, r1]
+ pop {r4, pc}
+_020536EE:
+ mov r1, #0xc
+ mul r1, r0
+ ldr r0, _02053704 ; =0x020F5B4C
+ ldr r0, [r0, r1]
+ pop {r4, pc}
+_020536F8:
+ bl ErrorHandling
+ mov r0, #0x0
+_020536FE:
+ pop {r4, pc}
+ .balign 4
+_02053700: .word 0x020F5B48
+_02053704: .word 0x020F5B4C
+
+ thumb_func_start FUN_02053708
+FUN_02053708: ; 0x02053708
+ push {r3-r6, lr}
+ sub sp, #0x4
+ add r5, r0, #0x0
+ mov r0, #0x56
+ mov r1, #0x7
+ add r2, sp, #0x0
+ add r3, r5, #0x0
+ bl FUN_02006C08
+ mov r1, #0x9
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ lsl r1, r1, #0x6
+ bl FUN_02016998
+ add r5, r0, #0x0
+ ldr r0, [sp, #0x0]
+ mov r2, #0x0
+ ldr r3, [r0, #0xc]
+ mov r0, #0x1
+ add r6, r5, #0x0
+ lsl r0, r0, #0x8
+_02053734:
+ ldrh r1, [r3, #0x0]
+ add r2, r2, #0x1
+ add r3, r3, #0x2
+ strh r1, [r6, #0x0]
+ add r6, r6, #0x2
+ cmp r2, r0
+ blt _02053734
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ add r0, r5, #0x0
+ add sp, #0x4
+ pop {r3-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_02053750
+FUN_02053750: ; 0x02053750
+ push {r3-r7, lr}
+ sub sp, #0x18
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ ldr r0, [r4, #0x4]
+ cmp r0, #0x0
+ beq _02053762
+ bl FUN_0201FDEC
+_02053762:
+ mov r1, #0x6
+ lsl r1, r1, #0x6
+ ldr r0, [r4, r1]
+ cmp r0, #0x5
+ bls _0205376E
+ b _020538B2
+_0205376E:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0205377A: ; jump table (using 16-bit offset)
+ .short _02053786 - _0205377A - 2; case 0
+ .short _020537AA - _0205377A - 2; case 1
+ .short _020537DA - _0205377A - 2; case 2
+ .short _0205385C - _0205377A - 2; case 3
+ .short _02053872 - _0205377A - 2; case 4
+ .short _020538A2 - _0205377A - 2; case 5
+_02053786:
+ ldr r0, [r4, #0x0]
+ ldr r0, [r0, #0x38]
+ bl FUN_020553A0
+ bl FUN_02058914
+ ldr r0, [r4, #0x0]
+ mov r1, #0x0
+ ldr r0, [r0, #0x38]
+ bl FUN_0205537C
+ mov r0, #0x6
+ lsl r0, r0, #0x6
+ ldr r1, [r4, r0]
+ add sp, #0x18
+ add r1, r1, #0x1
+ str r1, [r4, r0]
+ pop {r3-r7, pc}
+_020537AA:
+ sub r1, #0x24
+ add r0, r4, #0x0
+ add r1, r4, r1
+ mov r2, #0x0
+ bl FUN_02053F38
+ mov r1, #0x5b
+ lsl r1, r1, #0x2
+ add r0, r4, #0x0
+ add r1, r4, r1
+ mov r2, #0x1
+ bl FUN_02053F38
+ mov r0, #0x5f
+ mov r1, #0x2
+ lsl r0, r0, #0x2
+ str r1, [r4, r0]
+ add r1, r0, #0x4
+ ldr r1, [r4, r1]
+ add r0, r0, #0x4
+ add r1, r1, #0x1
+ add sp, #0x18
+ str r1, [r4, r0]
+ pop {r3-r7, pc}
+_020537DA:
+ mov r0, #0x0
+ str r0, [sp, #0xc]
+ sub r0, r1, #0x4
+ ldr r0, [r4, r0]
+ cmp r0, #0x0
+ ble _02053810
+ sub r1, #0x24
+ add r7, r4, r1
+ add r6, r4, #0x0
+ add r5, sp, #0x10
+_020537EE:
+ mov r1, #0x5a
+ lsl r1, r1, #0x2
+ ldr r1, [r6, r1]
+ add r0, r7, #0x0
+ blx r1
+ stmia r5!, {r0}
+ ldr r0, [sp, #0xc]
+ add r7, #0x10
+ add r0, r0, #0x1
+ str r0, [sp, #0xc]
+ mov r0, #0x5f
+ lsl r0, r0, #0x2
+ ldr r1, [r4, r0]
+ ldr r0, [sp, #0xc]
+ add r6, #0x10
+ cmp r0, r1
+ blt _020537EE
+_02053810:
+ ldr r0, [sp, #0x10]
+ cmp r0, #0x2
+ bne _0205382E
+ mov r0, #0x6
+ str r0, [sp, #0x0]
+ mov r0, #0x1
+ str r0, [sp, #0x4]
+ mov r0, #0x4
+ str r0, [sp, #0x8]
+ mov r0, #0x0
+ add r1, r0, #0x0
+ add r2, r0, #0x0
+ add r3, r0, #0x0
+ bl FUN_0200E1D0
+_0205382E:
+ mov r0, #0x5f
+ lsl r0, r0, #0x2
+ ldr r2, [r4, r0]
+ mov r3, #0x0
+ cmp r2, #0x0
+ ble _0205384A
+ add r1, sp, #0x10
+_0205383C:
+ ldr r0, [r1, #0x0]
+ cmp r0, #0x0
+ bne _0205384A
+ add r3, r3, #0x1
+ add r1, r1, #0x4
+ cmp r3, r2
+ blt _0205383C
+_0205384A:
+ cmp r3, r2
+ bne _020538B2
+ mov r0, #0x6
+ lsl r0, r0, #0x6
+ ldr r1, [r4, r0]
+ add sp, #0x18
+ add r1, r1, #0x1
+ str r1, [r4, r0]
+ pop {r3-r7, pc}
+_0205385C:
+ bl FUN_0200E308
+ cmp r0, #0x0
+ beq _020538B2
+ mov r0, #0x6
+ lsl r0, r0, #0x6
+ ldr r1, [r4, r0]
+ add sp, #0x18
+ add r1, r1, #0x1
+ str r1, [r4, r0]
+ pop {r3-r7, pc}
+_02053872:
+ sub r0, r1, #0x4
+ ldr r0, [r4, r0]
+ mov r6, #0x0
+ cmp r0, #0x0
+ ble _02053894
+ sub r1, #0x24
+ mov r7, #0x5f
+ add r5, r4, r1
+ lsl r7, r7, #0x2
+_02053884:
+ add r0, r5, #0x0
+ bl FUN_02054070
+ ldr r0, [r4, r7]
+ add r6, r6, #0x1
+ add r5, #0x10
+ cmp r6, r0
+ blt _02053884
+_02053894:
+ mov r0, #0x6
+ lsl r0, r0, #0x6
+ ldr r1, [r4, r0]
+ add sp, #0x18
+ add r1, r1, #0x1
+ str r1, [r4, r0]
+ pop {r3-r7, pc}
+_020538A2:
+ add r1, #0x8
+ ldr r0, [r4, r1]
+ mov r2, #0x1
+ str r2, [r0, #0x0]
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_02053D3C
+_020538B2:
+ add sp, #0x18
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_020538B8
+FUN_020538B8: ; 0x020538B8
+ push {r3-r5, lr}
+ sub sp, #0x10
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ mov r1, #0x0
+ add r0, sp, #0xc
+ strh r1, [r0, #0x0]
+ mov r0, #0x6
+ lsl r0, r0, #0x6
+ ldr r0, [r4, r0]
+ cmp r0, #0x5
+ beq _020538D6
+ ldr r0, [r4, #0x4]
+ bl FUN_0201FDEC
+_020538D6:
+ mov r1, #0x6
+ lsl r1, r1, #0x6
+ ldr r0, [r4, r1]
+ cmp r0, #0x5
+ bls _020538E2
+ b _020539EA
+_020538E2:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_020538EE: ; jump table (using 16-bit offset)
+ .short _020538FA - _020538EE - 2; case 0
+ .short _02053912 - _020538EE - 2; case 1
+ .short _0205396E - _020538EE - 2; case 2
+ .short _020539A2 - _020538EE - 2; case 3
+ .short _020539C4 - _020538EE - 2; case 4
+ .short _020539DA - _020538EE - 2; case 5
+_020538FA:
+ ldr r0, [r4, #0x0]
+ mov r1, #0x0
+ ldr r0, [r0, #0x38]
+ bl FUN_0205537C
+ mov r0, #0x6
+ lsl r0, r0, #0x6
+ ldr r1, [r4, r0]
+ add sp, #0x10
+ add r1, r1, #0x1
+ str r1, [r4, r0]
+ pop {r3-r5, pc}
+_02053912:
+ mov r0, #0x4
+ add r1, sp, #0xc
+ mov r2, #0x2
+ mov r3, #0x0
+ bl FUN_02017FB4
+ mov r0, #0x1
+ mov r1, #0x0
+ bl FUN_0201E74C
+ mov r0, #0x2
+ mov r1, #0x0
+ bl FUN_0201E74C
+ mov r1, #0x57
+ lsl r1, r1, #0x2
+ add r0, r4, #0x0
+ add r1, r4, r1
+ mov r2, #0x2
+ bl FUN_02053F38
+ mov r0, #0x6
+ str r0, [sp, #0x0]
+ mov r1, #0x1
+ str r1, [sp, #0x4]
+ mov r0, #0x4
+ str r0, [sp, #0x8]
+ mov r0, #0x0
+ add r2, r1, #0x0
+ add r3, r0, #0x0
+ bl FUN_0200E1D0
+ ldr r0, _020539F0 ; =0x0000062F
+ bl FUN_020054C8
+ mov r0, #0x5f
+ mov r1, #0x1
+ lsl r0, r0, #0x2
+ str r1, [r4, r0]
+ add r1, r0, #0x4
+ ldr r1, [r4, r1]
+ add r0, r0, #0x4
+ add r1, r1, #0x1
+ add sp, #0x10
+ str r1, [r4, r0]
+ pop {r3-r5, pc}
+_0205396E:
+ add r0, r1, #0x0
+ sub r1, #0x18
+ sub r0, #0x24
+ ldr r1, [r4, r1]
+ add r0, r4, r0
+ blx r1
+ cmp r0, #0x0
+ bne _020539EA
+ bl FUN_0200E308
+ cmp r0, #0x0
+ beq _020539EA
+ ldr r0, _020539F4 ; =0x00000631
+ bl FUN_020054C8
+ mov r0, #0x6
+ lsl r0, r0, #0x6
+ ldr r1, [r4, r0]
+ add sp, #0x10
+ add r1, r1, #0x1
+ str r1, [r4, r0]
+ mov r1, #0xfe
+ mvn r1, r1
+ add r0, r0, #0x4
+ str r1, [r4, r0]
+ pop {r3-r5, pc}
+_020539A2:
+ add r0, r1, #0x4
+ ldr r2, [r4, r0]
+ add r2, #0x10
+ str r2, [r4, r0]
+ ldr r0, [r4, r0]
+ cmp r0, #0x0
+ ble _020539EA
+ ldr r0, [r4, r1]
+ add r0, r0, #0x1
+ str r0, [r4, r1]
+ ldr r0, [r4, #0x0]
+ mov r1, #0x1
+ ldr r0, [r0, #0x38]
+ bl FUN_0205537C
+ add sp, #0x10
+ pop {r3-r5, pc}
+_020539C4:
+ sub r1, #0x24
+ add r0, r4, r1
+ bl FUN_02054070
+ mov r0, #0x6
+ lsl r0, r0, #0x6
+ ldr r1, [r4, r0]
+ add sp, #0x10
+ add r1, r1, #0x1
+ str r1, [r4, r0]
+ pop {r3-r5, pc}
+_020539DA:
+ add r1, #0x8
+ ldr r0, [r4, r1]
+ mov r2, #0x1
+ str r2, [r0, #0x0]
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_02053D3C
+_020539EA:
+ add sp, #0x10
+ pop {r3-r5, pc}
+ nop
+_020539F0: .word 0x0000062F
+_020539F4: .word 0x00000631
+
+ thumb_func_start FUN_020539F8
+FUN_020539F8: ; 0x020539F8
+ push {r4-r5, lr}
+ sub sp, #0xc
+ add r5, r0, #0x0
+ mov r0, #0x6
+ add r4, r1, #0x0
+ lsl r0, r0, #0x6
+ ldr r0, [r4, r0]
+ cmp r0, #0x6
+ beq _02053A10
+ ldr r0, [r4, #0x4]
+ bl FUN_0201FDEC
+_02053A10:
+ mov r1, #0x6
+ lsl r1, r1, #0x6
+ ldr r0, [r4, r1]
+ cmp r0, #0x6
+ bls _02053A1C
+ b _02053B30
+_02053A1C:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02053A28: ; jump table (using 16-bit offset)
+ .short _02053A36 - _02053A28 - 2; case 0
+ .short _02053A4E - _02053A28 - 2; case 1
+ .short _02053A78 - _02053A28 - 2; case 2
+ .short _02053AA0 - _02053A28 - 2; case 3
+ .short _02053AE2 - _02053A28 - 2; case 4
+ .short _02053B00 - _02053A28 - 2; case 5
+ .short _02053B16 - _02053A28 - 2; case 6
+_02053A36:
+ ldr r0, [r4, #0x0]
+ mov r1, #0x0
+ ldr r0, [r0, #0x38]
+ bl FUN_0205537C
+ mov r0, #0x6
+ lsl r0, r0, #0x6
+ ldr r1, [r4, r0]
+ add sp, #0xc
+ add r1, r1, #0x1
+ str r1, [r4, r0]
+ pop {r4-r5, pc}
+_02053A4E:
+ sub r1, #0x24
+ add r0, r4, #0x0
+ add r1, r4, r1
+ mov r2, #0x3
+ bl FUN_02053F38
+ mov r0, #0x63
+ lsl r0, r0, #0x4
+ bl FUN_020054C8
+ mov r0, #0x5f
+ mov r1, #0x1
+ lsl r0, r0, #0x2
+ str r1, [r4, r0]
+ add r1, r0, #0x4
+ ldr r1, [r4, r1]
+ add r0, r0, #0x4
+ add r1, r1, #0x1
+ add sp, #0xc
+ str r1, [r4, r0]
+ pop {r4-r5, pc}
+_02053A78:
+ add r0, r1, #0x4
+ ldr r2, [r4, r0]
+ sub r2, #0x20
+ str r2, [r4, r0]
+ ldr r1, [r4, r0]
+ mov r0, #0xfe
+ mvn r0, r0
+ cmp r1, r0
+ bge _02053B30
+ mov r0, #0x1
+ mov r1, #0x0
+ bl FUN_0201E74C
+ mov r0, #0x6
+ lsl r0, r0, #0x6
+ ldr r1, [r4, r0]
+ add sp, #0xc
+ add r1, r1, #0x1
+ str r1, [r4, r0]
+ pop {r4-r5, pc}
+_02053AA0:
+ add r0, r1, #0x0
+ sub r1, #0x18
+ sub r0, #0x24
+ ldr r1, [r4, r1]
+ add r0, r4, r0
+ blx r1
+ add r5, r0, #0x0
+ cmp r5, #0x2
+ bne _02053AD0
+ mov r1, #0x61
+ mov r0, #0x0
+ lsl r1, r1, #0x2
+ str r0, [r4, r1]
+ mov r1, #0x6
+ str r1, [sp, #0x0]
+ mov r1, #0x1
+ str r1, [sp, #0x4]
+ mov r1, #0x4
+ str r1, [sp, #0x8]
+ ldr r3, _02053B34 ; =0x00007FFF
+ add r1, r0, #0x0
+ add r2, r0, #0x0
+ bl FUN_0200E1D0
+_02053AD0:
+ cmp r5, #0x0
+ bne _02053B30
+ mov r0, #0x6
+ lsl r0, r0, #0x6
+ ldr r1, [r4, r0]
+ add sp, #0xc
+ add r1, r1, #0x1
+ str r1, [r4, r0]
+ pop {r4-r5, pc}
+_02053AE2:
+ bl FUN_0200E308
+ cmp r0, #0x0
+ beq _02053B30
+ mov r0, #0x61
+ mov r1, #0x0
+ lsl r0, r0, #0x2
+ str r1, [r4, r0]
+ sub r1, r0, #0x4
+ ldr r1, [r4, r1]
+ sub r0, r0, #0x4
+ add r1, r1, #0x1
+ add sp, #0xc
+ str r1, [r4, r0]
+ pop {r4-r5, pc}
+_02053B00:
+ sub r1, #0x24
+ add r0, r4, r1
+ bl FUN_02054070
+ mov r0, #0x6
+ lsl r0, r0, #0x6
+ ldr r1, [r4, r0]
+ add sp, #0xc
+ add r1, r1, #0x1
+ str r1, [r4, r0]
+ pop {r4-r5, pc}
+_02053B16:
+ mov r0, #0x2
+ mov r1, #0x0
+ bl FUN_0201E74C
+ mov r0, #0x62
+ lsl r0, r0, #0x2
+ ldr r0, [r4, r0]
+ mov r1, #0x1
+ str r1, [r0, #0x0]
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_02053D3C
+_02053B30:
+ add sp, #0xc
+ pop {r4-r5, pc}
+ .balign 4
+_02053B34: .word 0x00007FFF
+
+ thumb_func_start FUN_02053B38
+FUN_02053B38: ; 0x02053B38
+ push {r4-r5, lr}
+ sub sp, #0xc
+ add r5, r0, #0x0
+ mov r0, #0x6
+ add r4, r1, #0x0
+ lsl r0, r0, #0x6
+ ldr r0, [r4, r0]
+ cmp r0, #0x6
+ beq _02053B50
+ ldr r0, [r4, #0x4]
+ bl FUN_0201FDEC
+_02053B50:
+ mov r1, #0x6
+ lsl r1, r1, #0x6
+ ldr r0, [r4, r1]
+ cmp r0, #0x6
+ bls _02053B5C
+ b _02053C8C
+_02053B5C:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02053B68: ; jump table (using 16-bit offset)
+ .short _02053B76 - _02053B68 - 2; case 0
+ .short _02053BB2 - _02053B68 - 2; case 1
+ .short _02053BD6 - _02053B68 - 2; case 2
+ .short _02053BF2 - _02053B68 - 2; case 3
+ .short _02053C22 - _02053B68 - 2; case 4
+ .short _02053C66 - _02053B68 - 2; case 5
+ .short _02053C7C - _02053B68 - 2; case 6
+_02053B76:
+ ldr r0, [r4, #0x0]
+ mov r1, #0x0
+ ldr r0, [r0, #0x38]
+ bl FUN_0205537C
+ mov r1, #0x57
+ lsl r1, r1, #0x2
+ add r0, r4, #0x0
+ add r1, r4, r1
+ mov r2, #0x4
+ bl FUN_02053F38
+ mov r1, #0x5b
+ lsl r1, r1, #0x2
+ add r0, r4, #0x0
+ add r1, r4, r1
+ mov r2, #0x5
+ bl FUN_02053F38
+ mov r0, #0x5f
+ mov r1, #0x2
+ lsl r0, r0, #0x2
+ str r1, [r4, r0]
+ add r1, r0, #0x4
+ ldr r1, [r4, r1]
+ add r0, r0, #0x4
+ add r1, r1, #0x1
+ add sp, #0xc
+ str r1, [r4, r0]
+ pop {r4-r5, pc}
+_02053BB2:
+ mov r0, #0x6
+ str r0, [sp, #0x0]
+ mov r1, #0x1
+ str r1, [sp, #0x4]
+ mov r0, #0x4
+ str r0, [sp, #0x8]
+ ldr r3, _02053C90 ; =0x00007FFF
+ mov r0, #0x0
+ add r2, r1, #0x0
+ bl FUN_0200E1D0
+ mov r0, #0x6
+ lsl r0, r0, #0x6
+ ldr r1, [r4, r0]
+ add sp, #0xc
+ add r1, r1, #0x1
+ str r1, [r4, r0]
+ pop {r4-r5, pc}
+_02053BD6:
+ bl FUN_0200E308
+ cmp r0, #0x0
+ beq _02053C8C
+ ldr r0, _02053C94 ; =0x00000632
+ bl FUN_020054C8
+ mov r0, #0x6
+ lsl r0, r0, #0x6
+ ldr r1, [r4, r0]
+ add sp, #0xc
+ add r1, r1, #0x1
+ str r1, [r4, r0]
+ pop {r4-r5, pc}
+_02053BF2:
+ add r0, r1, #0x0
+ sub r1, #0x18
+ sub r0, #0x24
+ ldr r1, [r4, r1]
+ add r0, r4, r0
+ blx r1
+ cmp r0, #0x0
+ bne _02053C8C
+ ldr r0, [r4, #0x0]
+ mov r1, #0x1
+ ldr r0, [r0, #0x38]
+ bl FUN_0205537C
+ mov r0, #0x61
+ mov r1, #0x6
+ lsl r0, r0, #0x2
+ str r1, [r4, r0]
+ sub r1, r0, #0x4
+ ldr r1, [r4, r1]
+ sub r0, r0, #0x4
+ add r1, r1, #0x1
+ add sp, #0xc
+ str r1, [r4, r0]
+ pop {r4-r5, pc}
+_02053C22:
+ add r0, r1, #0x0
+ sub r1, #0x8
+ sub r0, #0x14
+ ldr r1, [r4, r1]
+ add r0, r4, r0
+ blx r1
+ add r5, r0, #0x0
+ mov r0, #0x61
+ lsl r0, r0, #0x2
+ ldr r1, [r4, r0]
+ cmp r1, #0x0
+ bgt _02053C50
+ bne _02053C54
+ sub r0, #0x28
+ add r0, r4, r0
+ bl FUN_02054070
+ mov r0, #0x61
+ lsl r0, r0, #0x2
+ ldr r1, [r4, r0]
+ sub r1, r1, #0x1
+ str r1, [r4, r0]
+ b _02053C54
+_02053C50:
+ sub r1, r1, #0x1
+ str r1, [r4, r0]
+_02053C54:
+ cmp r5, #0x0
+ bne _02053C8C
+ mov r0, #0x6
+ lsl r0, r0, #0x6
+ ldr r1, [r4, r0]
+ add sp, #0xc
+ add r1, r1, #0x1
+ str r1, [r4, r0]
+ pop {r4-r5, pc}
+_02053C66:
+ sub r1, #0x14
+ add r0, r4, r1
+ bl FUN_02054070
+ mov r0, #0x6
+ lsl r0, r0, #0x6
+ ldr r1, [r4, r0]
+ add sp, #0xc
+ add r1, r1, #0x1
+ str r1, [r4, r0]
+ pop {r4-r5, pc}
+_02053C7C:
+ add r1, #0x8
+ ldr r0, [r4, r1]
+ mov r2, #0x1
+ str r2, [r0, #0x0]
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_02053D3C
+_02053C8C:
+ add sp, #0xc
+ pop {r4-r5, pc}
+ .balign 4
+_02053C90: .word 0x00007FFF
+_02053C94: .word 0x00000632
+
+ thumb_func_start FUN_02053C98
+FUN_02053C98: ; 0x02053C98
+ push {r3-r5, lr}
+ add r3, r1, #0x0
+ add r4, r0, #0x0
+ add r5, r2, #0x0
+ cmp r3, #0x3
+ bhi _02053CEE
+ add r1, r3, r3
+ add r1, pc
+ ldrh r1, [r1, #0x6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_02053CB0: ; jump table (using 16-bit offset)
+ .short _02053CB8 - _02053CB0 - 2; case 0
+ .short _02053CC6 - _02053CB0 - 2; case 1
+ .short _02053CD4 - _02053CB0 - 2; case 2
+ .short _02053CE2 - _02053CB0 - 2; case 3
+_02053CB8:
+ ldr r2, _02053CF8 ; =0x020F5C04
+ ldr r0, _02053CFC ; =FUN_02053750
+ ldrb r2, [r2, r3]
+ add r1, r4, #0x0
+ bl FUN_02053D0C
+ b _02053CEE
+_02053CC6:
+ ldr r2, _02053CF8 ; =0x020F5C04
+ ldr r0, _02053D00 ; =FUN_020538B8
+ ldrb r2, [r2, r3]
+ add r1, r4, #0x0
+ bl FUN_02053D0C
+ b _02053CEE
+_02053CD4:
+ ldr r2, _02053CF8 ; =0x020F5C04
+ ldr r0, _02053D04 ; =FUN_020539F8
+ ldrb r2, [r2, r3]
+ add r1, r4, #0x0
+ bl FUN_02053D0C
+ b _02053CEE
+_02053CE2:
+ ldr r2, _02053CF8 ; =0x020F5C04
+ ldr r0, _02053D08 ; =FUN_02053B38
+ ldrb r2, [r2, r3]
+ add r1, r4, #0x0
+ bl FUN_02053D0C
+_02053CEE:
+ mov r1, #0x62
+ lsl r1, r1, #0x2
+ str r5, [r0, r1]
+ str r4, [r0, #0x0]
+ pop {r3-r5, pc}
+ .balign 4
+_02053CF8: .word 0x020F5C04
+_02053CFC: .word FUN_02053750
+_02053D00: .word FUN_020538B8
+_02053D04: .word FUN_020539F8
+_02053D08: .word FUN_02053B38
+
+ thumb_func_start FUN_02053D0C
+FUN_02053D0C: ; 0x02053D0C
+ push {r4-r6, lr}
+ add r5, r1, #0x0
+ mov r1, #0x63
+ add r6, r2, #0x0
+ lsl r1, r1, #0x2
+ mov r2, #0x5
+ mov r3, #0x4
+ bl FUN_020061E8
+ bl FUN_0201B6C8
+ add r4, r0, #0x0
+ ldr r0, [r5, #0xc]
+ bl FUN_020238F4
+ bl FUN_020239CC
+ add r1, r0, #0x0
+ add r0, r4, #0x4
+ add r2, r6, #0x0
+ bl FUN_02053D50
+ add r0, r4, #0x0
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_02053D3C
+FUN_02053D3C: ; 0x02053D3C
+ push {r4, lr}
+ add r4, r0, #0x0
+ add r0, r1, #0x4
+ bl FUN_02053D68
+ add r0, r4, #0x0
+ bl FUN_0200621C
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02053D50
+FUN_02053D50: ; 0x02053D50
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ add r6, r2, #0x0
+ bl FUN_02053D70
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ add r2, r6, #0x0
+ bl FUN_02053D94
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_02053D68
+FUN_02053D68: ; 0x02053D68
+ ldr r3, _02053D6C ; =FUN_02053EF0
+ bx r3
+ .balign 4
+_02053D6C: .word FUN_02053EF0
+
+ thumb_func_start FUN_02053D70
+FUN_02053D70: ; 0x02053D70
+ push {r4, lr}
+ add r4, r0, #0x0
+ add r1, r4, #0x0
+ mov r0, #0x2
+ add r1, #0x30
+ mov r2, #0x4
+ bl FUN_02008C9C
+ str r0, [r4, #0x0]
+ mov r0, #0x10
+ mov r1, #0x1
+ bl FUN_0201E6E4
+ mov r0, #0x10
+ mov r1, #0x1
+ bl FUN_0201E74C
+ pop {r4, pc}
+
+ thumb_func_start FUN_02053D94
+FUN_02053D94: ; 0x02053D94
+ push {r3-r7, lr}
+ sub sp, #0x18
+ add r5, r0, #0x0
+ str r1, [sp, #0x10]
+ add r7, r2, #0x0
+ mov r6, #0x0
+ add r4, r5, #0x0
+_02053DA2:
+ mov r0, #0x2
+ add r1, r6, #0x0
+ mov r2, #0x4
+ bl FUN_02008DEC
+ str r0, [r4, #0x8]
+ add r6, r6, #0x1
+ add r4, r4, #0x4
+ cmp r6, #0x4
+ blt _02053DA2
+ ldr r0, [sp, #0x10]
+ add r1, r5, #0x0
+ lsl r0, r0, #0x2
+ str r0, [sp, #0x14]
+ ldr r3, _02053E78 ; =0x02105EC8
+ ldr r2, [sp, #0x14]
+ ldr r0, [r5, #0x8]
+ ldr r2, [r3, r2]
+ add r1, #0x18
+ bl FUN_02053E8C
+ str r0, [r5, #0x20]
+ ldr r1, [r5, #0x18]
+ mov r6, #0x0
+ ldr r0, [r1, #0x8]
+ cmp r0, #0x0
+ ble _02053DF0
+ add r4, r6, #0x0
+_02053DDA:
+ ldr r0, [r1, #0x0]
+ add r1, r7, #0x0
+ ldr r0, [r0, r4]
+ bl FUN_02009630
+ ldr r1, [r5, #0x18]
+ add r6, r6, #0x1
+ ldr r0, [r1, #0x8]
+ add r4, r4, #0x4
+ cmp r6, r0
+ blt _02053DDA
+_02053DF0:
+ ldr r3, _02053E7C ; =0x02105ED0
+ ldr r2, [sp, #0x14]
+ add r1, r5, #0x0
+ ldr r0, [r5, #0xc]
+ ldr r2, [r3, r2]
+ add r1, #0x1c
+ bl FUN_02053E8C
+ str r0, [r5, #0x24]
+ ldr r1, [r5, #0x1c]
+ mov r6, #0x0
+ ldr r0, [r1, #0x8]
+ cmp r0, #0x0
+ ble _02053E24
+ add r4, r6, #0x0
+_02053E0E:
+ ldr r0, [r1, #0x0]
+ add r1, r7, #0x0
+ ldr r0, [r0, r4]
+ bl FUN_02009630
+ ldr r1, [r5, #0x1c]
+ add r6, r6, #0x1
+ ldr r0, [r1, #0x8]
+ add r4, r4, #0x4
+ cmp r6, r0
+ blt _02053E0E
+_02053E24:
+ ldr r0, [r5, #0x10]
+ ldr r2, _02053E80 ; =0x02105F48
+ mov r1, #0x0
+ bl FUN_02053E8C
+ str r0, [r5, #0x28]
+ ldr r0, [r5, #0x14]
+ ldr r2, _02053E84 ; =0x02105F64
+ mov r1, #0x0
+ bl FUN_02053E8C
+ str r0, [r5, #0x2c]
+ ldr r0, [r5, #0x18]
+ bl FUN_02009B44
+ ldr r0, [r5, #0x1c]
+ bl FUN_02009DAC
+ ldr r1, _02053E88 ; =0x02105F80
+ mov r0, #0x4
+ bl FUN_020161A4
+ ldr r1, [r5, #0x10]
+ add r4, r0, #0x0
+ str r1, [sp, #0x0]
+ ldr r1, [r5, #0x14]
+ str r1, [sp, #0x4]
+ mov r1, #0x0
+ str r1, [sp, #0x8]
+ str r1, [sp, #0xc]
+ ldr r2, [r5, #0x8]
+ ldr r3, [r5, #0xc]
+ mov r1, #0x4
+ bl FUN_02008BE0
+ str r0, [r5, #0x4]
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ add sp, #0x18
+ pop {r3-r7, pc}
+ nop
+_02053E78: .word 0x02105EC8
+_02053E7C: .word 0x02105ED0
+_02053E80: .word 0x02105F48
+_02053E84: .word 0x02105F64
+_02053E88: .word 0x02105F80
+
+ thumb_func_start FUN_02053E8C
+FUN_02053E8C: ; 0x02053E8C
+ push {r3-r7, lr}
+ add r7, r0, #0x0
+ add r5, r1, #0x0
+ add r6, r2, #0x0
+ bl FUN_0200965C
+ add r1, r0, #0x0
+ mov r0, #0x4
+ bl FUN_020169D8
+ add r4, r0, #0x0
+ mov r0, #0x4
+ add r1, r6, #0x0
+ bl FUN_020161A4
+ add r6, r0, #0x0
+ add r1, r4, #0x0
+ mov r2, #0x4
+ bl FUN_02009668
+ add r0, r6, #0x0
+ bl FUN_02016A18
+ cmp r5, #0x0
+ beq _02053ED0
+ add r0, r4, #0x0
+ bl FUN_020096CC
+ mov r1, #0x4
+ bl FUN_02009424
+ str r0, [r5, #0x0]
+ add r2, r0, #0x0
+ b _02053ED2
+_02053ED0:
+ mov r2, #0x0
+_02053ED2:
+ add r0, r7, #0x0
+ add r1, r4, #0x0
+ mov r3, #0x4
+ bl FUN_020093A8
+ add r5, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_020096B4
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ add r0, r5, #0x0
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_02053EF0
+FUN_02053EF0: ; 0x02053EF0
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ ldr r0, [r5, #0x0]
+ bl FUN_0201FD58
+ mov r0, #0x0
+ str r0, [r5, #0x0]
+ ldr r0, [r5, #0x4]
+ bl FUN_02008C80
+ mov r0, #0x0
+ str r0, [r5, #0x4]
+ ldr r0, [r5, #0x18]
+ bl FUN_02009C30
+ ldr r0, [r5, #0x1c]
+ bl FUN_02009E28
+ mov r6, #0x0
+ add r4, r5, #0x0
+_02053F18:
+ ldr r0, [r4, #0x18]
+ bl FUN_02009448
+ add r6, r6, #0x1
+ add r4, r4, #0x4
+ cmp r6, #0x2
+ blt _02053F18
+ mov r4, #0x0
+_02053F28:
+ ldr r0, [r5, #0x8]
+ bl FUN_02008E2C
+ add r4, r4, #0x1
+ add r5, r5, #0x4
+ cmp r4, #0x4
+ blt _02053F28
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_02053F38
+FUN_02053F38: ; 0x02053F38
+ push {r3-r5, lr}
+ add r5, r1, #0x0
+ mov r4, #0x10
+ mov r3, #0x0
+_02053F40:
+ strb r3, [r5, #0x0]
+ add r5, r5, #0x1
+ sub r4, r4, #0x1
+ bne _02053F40
+ cmp r2, #0x5
+ bhi _02053FB6
+ add r2, r2, r2
+ add r2, pc
+ ldrh r2, [r2, #0x6]
+ lsl r2, r2, #0x10
+ asr r2, r2, #0x10
+ add pc, r2
+_02053F58: ; jump table (using 16-bit offset)
+ .short _02053F64 - _02053F58 - 2; case 0
+ .short _02053F72 - _02053F58 - 2; case 1
+ .short _02053F80 - _02053F58 - 2; case 2
+ .short _02053F8E - _02053F58 - 2; case 3
+ .short _02053F9C - _02053F58 - 2; case 4
+ .short _02053FAA - _02053F58 - 2; case 5
+_02053F64:
+ ldr r2, _02053FC0 ; =FUN_02054088
+ str r2, [r1, #0x4]
+ ldr r2, _02053FC4 ; =FUN_020540C8
+ str r2, [r1, #0x8]
+ ldr r2, _02053FC8 ; =FUN_020540E8
+ str r2, [r1, #0xc]
+ b _02053FB6
+_02053F72:
+ ldr r2, _02053FCC ; =FUN_02054168
+ str r2, [r1, #0x4]
+ ldr r2, _02053FD0 ; =FUN_020541A4
+ str r2, [r1, #0x8]
+ ldr r2, _02053FD4 ; =FUN_020541C4
+ str r2, [r1, #0xc]
+ b _02053FB6
+_02053F80:
+ ldr r2, _02053FD8 ; =FUN_020541E8
+ str r2, [r1, #0x4]
+ ldr r2, _02053FDC ; =FUN_02054228
+ str r2, [r1, #0x8]
+ ldr r2, _02053FE0 ; =FUN_02054248
+ str r2, [r1, #0xc]
+ b _02053FB6
+_02053F8E:
+ ldr r2, _02053FE4 ; =FUN_020542A4
+ str r2, [r1, #0x4]
+ ldr r2, _02053FE8 ; =FUN_020542E8
+ str r2, [r1, #0x8]
+ ldr r2, _02053FEC ; =FUN_02054308
+ str r2, [r1, #0xc]
+ b _02053FB6
+_02053F9C:
+ ldr r2, _02053FF0 ; =FUN_020543D8
+ str r2, [r1, #0x4]
+ ldr r2, _02053FF4 ; =FUN_0205442C
+ str r2, [r1, #0x8]
+ ldr r2, _02053FF8 ; =FUN_0205444C
+ str r2, [r1, #0xc]
+ b _02053FB6
+_02053FAA:
+ ldr r2, _02053FFC ; =FUN_02054508
+ str r2, [r1, #0x4]
+ ldr r2, _02054000 ; =FUN_0205454C
+ str r2, [r1, #0x8]
+ ldr r2, _02054004 ; =FUN_0205456C
+ str r2, [r1, #0xc]
+_02053FB6:
+ ldr r2, [r1, #0x4]
+ add r0, r0, #0x4
+ blx r2
+ pop {r3-r5, pc}
+ nop
+_02053FC0: .word FUN_02054088
+_02053FC4: .word FUN_020540C8
+_02053FC8: .word FUN_020540E8
+_02053FCC: .word FUN_02054168
+_02053FD0: .word FUN_020541A4
+_02053FD4: .word FUN_020541C4
+_02053FD8: .word FUN_020541E8
+_02053FDC: .word FUN_02054228
+_02053FE0: .word FUN_02054248
+_02053FE4: .word FUN_020542A4
+_02053FE8: .word FUN_020542E8
+_02053FEC: .word FUN_02054308
+_02053FF0: .word FUN_020543D8
+_02053FF4: .word FUN_0205442C
+_02053FF8: .word FUN_0205444C
+_02053FFC: .word FUN_02054508
+_02054000: .word FUN_0205454C
+_02054004: .word FUN_0205456C
+
+ thumb_func_start FUN_02054008
+FUN_02054008: ; 0x02054008
+ push {r3-r7, lr}
+ sub sp, #0x30
+ add r5, r0, #0x0
+ add r7, sp, #0x0
+ add r6, r3, #0x0
+ mov r0, #0x0
+ add r4, r1, #0x0
+ add r3, r7, #0x0
+ add r1, r0, #0x0
+ stmia r3!, {r0-r1}
+ stmia r3!, {r0-r1}
+ stmia r3!, {r0-r1}
+ stmia r3!, {r0-r1}
+ stmia r3!, {r0-r1}
+ stmia r3!, {r0-r1}
+ ldr r0, [r5, #0x0]
+ add r3, sp, #0x8
+ str r0, [sp, #0x0]
+ ldr r0, [r5, #0x4]
+ ldr r1, [r0, #0x0]
+ mov r0, #0x24
+ mul r0, r4
+ add r0, r1, r0
+ str r0, [sp, #0x4]
+ ldmia r2!, {r0-r1}
+ stmia r3!, {r0-r1}
+ ldr r0, [r2, #0x0]
+ add r2, sp, #0x14
+ str r0, [r3, #0x0]
+ ldr r3, _0205406C ; =0x020F5C08
+ ldmia r3!, {r0-r1}
+ stmia r2!, {r0-r1}
+ ldr r0, [r3, #0x0]
+ str r0, [r2, #0x0]
+ ldr r0, [sp, #0x48]
+ str r6, [sp, #0x24]
+ str r0, [sp, #0x28]
+ mov r0, #0x4
+ str r0, [sp, #0x2c]
+ add r0, r7, #0x0
+ bl FUN_0201FE94
+ add r4, r0, #0x0
+ bne _02054064
+ bl ErrorHandling
+_02054064:
+ add r0, r4, #0x0
+ add sp, #0x30
+ pop {r3-r7, pc}
+ nop
+_0205406C: .word 0x020F5C08
+
+ thumb_func_start FUN_02054070
+FUN_02054070: ; 0x02054070
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r1, [r4, #0x8]
+ blx r1
+ mov r1, #0x10
+ mov r0, #0x0
+_0205407C:
+ strb r0, [r4, #0x0]
+ add r4, r4, #0x1
+ sub r1, r1, #0x1
+ bne _0205407C
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02054088
+FUN_02054088: ; 0x02054088
+ push {r3-r5, lr}
+ add r4, r0, #0x0
+ add r5, r1, #0x0
+ mov r0, #0x4
+ mov r1, #0x14
+ bl FUN_02016998
+ str r0, [r5, #0x0]
+ mov r2, #0x14
+ mov r1, #0x0
+_0205409C:
+ strb r1, [r0, #0x0]
+ add r0, r0, #0x1
+ sub r2, r2, #0x1
+ bne _0205409C
+ ldr r5, [r5, #0x0]
+ mov r0, #0x7
+ lsl r0, r0, #0x10
+ str r0, [r5, #0x0]
+ mov r0, #0x45
+ lsl r0, r0, #0xc
+ str r0, [r5, #0x4]
+ mov r0, #0x1
+ mov r1, #0x0
+ str r0, [sp, #0x0]
+ add r0, r4, #0x0
+ add r2, r5, #0x0
+ add r3, r1, #0x0
+ bl FUN_02054008
+ str r0, [r5, #0xc]
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_020540C8
+FUN_020540C8: ; 0x020540C8
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r0, [r4, #0x0]
+ cmp r0, #0x0
+ beq _020540E4
+ ldr r0, [r0, #0xc]
+ bl FUN_0201FFC8
+ ldr r1, [r4, #0x0]
+ mov r0, #0x4
+ bl FUN_02016A8C
+ mov r0, #0x0
+ str r0, [r4, #0x0]
+_020540E4:
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_020540E8
+FUN_020540E8: ; 0x020540E8
+ push {r3-r6, lr}
+ sub sp, #0xc
+ ldr r4, [r0, #0x0]
+ mov r2, #0x2
+ ldr r0, [r4, #0x10]
+ lsl r2, r2, #0xe
+ cmp r0, r2
+ bgt _0205415E
+ add r6, r4, #0x0
+ ldmia r6!, {r0-r1}
+ add r5, sp, #0x0
+ add r3, r5, #0x0
+ stmia r5!, {r0-r1}
+ ldr r0, [r6, #0x0]
+ lsr r2, r2, #0x4
+ str r0, [r5, #0x0]
+ ldr r0, [r4, #0x10]
+ ldr r1, [sp, #0x4]
+ asr r0, r0, #0x4
+ lsl r5, r0, #0x2
+ ldr r0, _02054164 ; =0x020FFA38
+ ldrsh r5, [r0, r5]
+ asr r0, r5, #0x1f
+ lsr r6, r5, #0x10
+ lsl r0, r0, #0x10
+ orr r0, r6
+ lsl r6, r5, #0x10
+ mov r5, #0x0
+ add r2, r6, r2
+ adc r0, r5
+ lsl r0, r0, #0x14
+ lsr r2, r2, #0xc
+ orr r2, r0
+ sub r0, r1, r2
+ str r0, [sp, #0x4]
+ ldr r0, [r4, #0xc]
+ add r1, r3, #0x0
+ bl FUN_02020044
+ mov r1, #0x2
+ ldr r0, [r4, #0x10]
+ lsl r1, r1, #0xa
+ add r0, r0, r1
+ str r0, [r4, #0x10]
+ ldr r0, [r4, #0xc]
+ lsl r1, r1, #0x1
+ bl FUN_020201E4
+ mov r0, #0x2
+ ldr r1, [r4, #0x10]
+ lsl r0, r0, #0xe
+ cmp r1, r0
+ bne _02054158
+ add sp, #0xc
+ mov r0, #0x2
+ pop {r3-r6, pc}
+_02054158:
+ add sp, #0xc
+ mov r0, #0x1
+ pop {r3-r6, pc}
+_0205415E:
+ mov r0, #0x0
+ add sp, #0xc
+ pop {r3-r6, pc}
+ .balign 4
+_02054164: .word 0x020FFA38
+
+ thumb_func_start FUN_02054168
+FUN_02054168: ; 0x02054168
+ push {r3-r5, lr}
+ add r4, r0, #0x0
+ add r5, r1, #0x0
+ mov r0, #0x4
+ mov r1, #0x14
+ bl FUN_02016998
+ str r0, [r5, #0x0]
+ mov r2, #0x14
+ mov r1, #0x0
+_0205417C:
+ strb r1, [r0, #0x0]
+ add r0, r0, #0x1
+ sub r2, r2, #0x1
+ bne _0205417C
+ ldr r5, [r5, #0x0]
+ mov r0, #0x7
+ lsl r0, r0, #0x10
+ str r0, [r5, #0x0]
+ mov r0, #0x6
+ lsl r0, r0, #0x10
+ mov r1, #0x1
+ str r0, [r5, #0x4]
+ add r0, r4, #0x0
+ add r2, r5, #0x0
+ add r3, r1, #0x0
+ str r1, [sp, #0x0]
+ bl FUN_02054008
+ str r0, [r5, #0xc]
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_020541A4
+FUN_020541A4: ; 0x020541A4
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r0, [r4, #0x0]
+ cmp r0, #0x0
+ beq _020541C0
+ ldr r0, [r0, #0xc]
+ bl FUN_0201FFC8
+ ldr r1, [r4, #0x0]
+ mov r0, #0x4
+ bl FUN_02016A8C
+ mov r0, #0x0
+ str r0, [r4, #0x0]
+_020541C0:
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_020541C4
+FUN_020541C4: ; 0x020541C4
+ push {r4, lr}
+ ldr r4, [r0, #0x0]
+ ldr r0, [r4, #0x10]
+ cmp r0, #0x7
+ bge _020541E2
+ mov r1, #0x1
+ ldr r0, [r4, #0xc]
+ lsl r1, r1, #0xc
+ bl FUN_020201E4
+ ldr r0, [r4, #0x10]
+ add r0, r0, #0x1
+ str r0, [r4, #0x10]
+ mov r0, #0x1
+ pop {r4, pc}
+_020541E2:
+ mov r0, #0x0
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_020541E8
+FUN_020541E8: ; 0x020541E8
+ push {r3-r5, lr}
+ add r4, r0, #0x0
+ add r5, r1, #0x0
+ mov r0, #0x4
+ mov r1, #0x14
+ bl FUN_02016998
+ str r0, [r5, #0x0]
+ mov r2, #0x14
+ mov r1, #0x0
+_020541FC:
+ strb r1, [r0, #0x0]
+ add r0, r0, #0x1
+ sub r2, r2, #0x1
+ bne _020541FC
+ ldr r5, [r5, #0x0]
+ mov r0, #0x7
+ lsl r0, r0, #0x10
+ str r0, [r5, #0x0]
+ mov r0, #0x3
+ lsl r0, r0, #0x12
+ str r0, [r5, #0x4]
+ mov r0, #0x1
+ mov r1, #0x0
+ str r0, [sp, #0x0]
+ add r0, r4, #0x0
+ add r2, r5, #0x0
+ add r3, r1, #0x0
+ bl FUN_02054008
+ str r0, [r5, #0xc]
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_02054228
+FUN_02054228: ; 0x02054228
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r0, [r4, #0x0]
+ cmp r0, #0x0
+ beq _02054244
+ ldr r0, [r0, #0xc]
+ bl FUN_0201FFC8
+ ldr r1, [r4, #0x0]
+ mov r0, #0x4
+ bl FUN_02016A8C
+ mov r0, #0x0
+ str r0, [r4, #0x0]
+_02054244:
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02054248
+FUN_02054248: ; 0x02054248
+ push {r4, lr}
+ ldr r4, [r0, #0x0]
+ mov r0, #0x2
+ ldr r1, [r4, #0x4]
+ lsl r0, r0, #0xe
+ add r0, r1, r0
+ str r0, [r4, #0x4]
+ ldr r0, [r4, #0xc]
+ add r1, r4, #0x0
+ bl FUN_02020044
+ mov r1, #0x1
+ ldr r0, [r4, #0xc]
+ lsl r1, r1, #0xc
+ bl FUN_020201E4
+ ldr r0, [r4, #0x10]
+ ldr r1, [r4, #0x4]
+ cmp r0, #0x0
+ bne _02054284
+ mov r0, #0x6
+ lsl r0, r0, #0x12
+ cmp r1, r0
+ blt _0205429A
+ ldr r0, _020542A0 ; =0xFFFE0000
+ str r0, [r4, #0x4]
+ ldr r0, [r4, #0x10]
+ add r0, r0, #0x1
+ str r0, [r4, #0x10]
+ b _0205429A
+_02054284:
+ mov r0, #0x45
+ lsl r0, r0, #0xc
+ cmp r1, r0
+ blt _0205429A
+ str r0, [r4, #0x4]
+ ldr r0, [r4, #0xc]
+ add r1, r4, #0x0
+ bl FUN_02020044
+ mov r0, #0x0
+ pop {r4, pc}
+_0205429A:
+ mov r0, #0x1
+ pop {r4, pc}
+ nop
+_020542A0: .word 0xFFFE0000
+
+ thumb_func_start FUN_020542A4
+FUN_020542A4: ; 0x020542A4
+ push {r3-r5, lr}
+ add r4, r0, #0x0
+ add r5, r1, #0x0
+ mov r0, #0x4
+ mov r1, #0x18
+ bl FUN_02016998
+ str r0, [r5, #0x0]
+ mov r2, #0x18
+ mov r1, #0x0
+_020542B8:
+ strb r1, [r0, #0x0]
+ add r0, r0, #0x1
+ sub r2, r2, #0x1
+ bne _020542B8
+ ldr r5, [r5, #0x0]
+ mov r0, #0x7
+ lsl r0, r0, #0x10
+ str r0, [r5, #0x0]
+ mov r0, #0x45
+ lsl r0, r0, #0xc
+ str r0, [r5, #0x4]
+ mov r0, #0x1
+ mov r1, #0x0
+ str r0, [sp, #0x0]
+ add r0, r4, #0x0
+ add r2, r5, #0x0
+ add r3, r1, #0x0
+ bl FUN_02054008
+ mov r1, #0x1
+ str r0, [r5, #0xc]
+ bl FUN_02020130
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_020542E8
+FUN_020542E8: ; 0x020542E8
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r0, [r4, #0x0]
+ cmp r0, #0x0
+ beq _02054304
+ ldr r0, [r0, #0xc]
+ bl FUN_0201FFC8
+ ldr r1, [r4, #0x0]
+ mov r0, #0x4
+ bl FUN_02016A8C
+ mov r0, #0x0
+ str r0, [r4, #0x0]
+_02054304:
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02054308
+FUN_02054308: ; 0x02054308
+ push {r3-r5, lr}
+ ldr r4, [r0, #0x0]
+ mov r5, #0x1
+ ldr r0, [r4, #0x10]
+ cmp r0, #0x4
+ bhi _020543CC
+ add r1, r0, r0
+ add r1, pc
+ ldrh r1, [r1, #0x6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_02054320: ; jump table (using 16-bit offset)
+ .short _0205432A - _02054320 - 2; case 0
+ .short _02054348 - _02054320 - 2; case 1
+ .short _02054376 - _02054320 - 2; case 2
+ .short _020543A2 - _02054320 - 2; case 3
+ .short _020543CA - _02054320 - 2; case 4
+_0205432A:
+ ldr r1, [r4, #0x14]
+ ldr r0, _020543D0 ; =0x00000333
+ add r1, r1, r0
+ str r1, [r4, #0x14]
+ ldr r0, [r4, #0xc]
+ bl FUN_020201E4
+ ldr r1, [r4, #0x14]
+ lsl r0, r5, #0xd
+ cmp r1, r0
+ blt _020543CC
+ ldr r0, [r4, #0x10]
+ add r0, r0, #0x1
+ str r0, [r4, #0x10]
+ b _020543CC
+_02054348:
+ ldr r1, [r4, #0x4]
+ ldr r0, _020543D4 ; =0xFFFE0000
+ cmp r1, r0
+ ble _02054368
+ lsl r0, r5, #0xf
+ sub r0, r1, r0
+ str r0, [r4, #0x4]
+ ldr r0, [r4, #0xc]
+ add r1, r4, #0x0
+ bl FUN_02020044
+ ldr r0, [r4, #0xc]
+ ldr r1, [r4, #0x14]
+ bl FUN_020201E4
+ b _020543CC
+_02054368:
+ mov r0, #0x6
+ lsl r0, r0, #0x12
+ str r0, [r4, #0x4]
+ ldr r0, [r4, #0x10]
+ add r0, r0, #0x1
+ str r0, [r4, #0x10]
+ b _020543CC
+_02054376:
+ ldr r1, [r4, #0x4]
+ lsl r0, r5, #0xf
+ sub r0, r1, r0
+ str r0, [r4, #0x4]
+ ldr r0, [r4, #0xc]
+ add r1, r4, #0x0
+ bl FUN_02020044
+ ldr r0, [r4, #0xc]
+ ldr r1, [r4, #0x14]
+ bl FUN_020201E4
+ mov r0, #0x4b
+ ldr r1, [r4, #0x4]
+ lsl r0, r0, #0xe
+ cmp r1, r0
+ bge _020543CC
+ ldr r0, [r4, #0x10]
+ mov r5, #0x2
+ add r0, r0, #0x1
+ str r0, [r4, #0x10]
+ b _020543CC
+_020543A2:
+ mov r1, #0x3
+ ldr r2, [r4, #0x4]
+ lsl r1, r1, #0x12
+ cmp r2, r1
+ ble _020543C4
+ lsl r0, r5, #0xf
+ sub r0, r2, r0
+ str r0, [r4, #0x4]
+ ldr r0, [r4, #0xc]
+ add r1, r4, #0x0
+ bl FUN_02020044
+ ldr r0, [r4, #0xc]
+ ldr r1, [r4, #0x14]
+ bl FUN_020201E4
+ b _020543CC
+_020543C4:
+ add r0, r0, #0x1
+ str r0, [r4, #0x10]
+ b _020543CC
+_020543CA:
+ mov r5, #0x0
+_020543CC:
+ add r0, r5, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+_020543D0: .word 0x00000333
+_020543D4: .word 0xFFFE0000
+
+ thumb_func_start FUN_020543D8
+FUN_020543D8: ; 0x020543D8
+ push {r3-r5, lr}
+ add r4, r0, #0x0
+ add r5, r1, #0x0
+ mov r0, #0x4
+ mov r1, #0x18
+ bl FUN_02016998
+ str r0, [r5, #0x0]
+ mov r2, #0x18
+ mov r1, #0x0
+_020543EC:
+ strb r1, [r0, #0x0]
+ add r0, r0, #0x1
+ sub r2, r2, #0x1
+ bne _020543EC
+ ldr r5, [r5, #0x0]
+ mov r0, #0x7
+ lsl r0, r0, #0x10
+ str r0, [r5, #0x0]
+ mov r0, #0x45
+ lsl r0, r0, #0xc
+ str r0, [r5, #0x4]
+ mov r0, #0x1
+ mov r1, #0x0
+ str r0, [sp, #0x0]
+ add r0, r4, #0x0
+ add r2, r5, #0x0
+ add r3, r1, #0x0
+ bl FUN_02054008
+ mov r1, #0x1
+ str r0, [r5, #0xc]
+ bl FUN_02020130
+ mov r0, #0x2
+ lsl r0, r0, #0xc
+ str r0, [r5, #0x14]
+ ldr r0, [r5, #0xc]
+ mov r1, #0x0
+ bl FUN_020200A0
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_0205442C
+FUN_0205442C: ; 0x0205442C
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r0, [r4, #0x0]
+ cmp r0, #0x0
+ beq _02054448
+ ldr r0, [r0, #0xc]
+ bl FUN_0201FFC8
+ ldr r1, [r4, #0x0]
+ mov r0, #0x4
+ bl FUN_02016A8C
+ mov r0, #0x0
+ str r0, [r4, #0x0]
+_02054448:
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0205444C
+FUN_0205444C: ; 0x0205444C
+ push {r4-r7, lr}
+ sub sp, #0xc
+ ldr r4, [r0, #0x0]
+ mov r5, #0x1
+ ldr r0, [r4, #0x10]
+ cmp r0, #0x3
+ bhi _020544F8
+ add r1, r0, r0
+ add r1, pc
+ ldrh r1, [r1, #0x6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_02054466: ; jump table (using 16-bit offset)
+ .short _0205446E - _02054466 - 2; case 0
+ .short _0205447E - _02054466 - 2; case 1
+ .short _020544DA - _02054466 - 2; case 2
+ .short _020544F6 - _02054466 - 2; case 3
+_0205446E:
+ ldr r0, [r4, #0xc]
+ add r1, r5, #0x0
+ bl FUN_020200A0
+ ldr r0, [r4, #0x10]
+ add r0, r0, #0x1
+ str r0, [r4, #0x10]
+ b _020544F8
+_0205447E:
+ ldr r2, [r4, #0x14]
+ lsl r1, r5, #0xf
+ cmp r2, r1
+ bgt _020544D4
+ add r6, r4, #0x0
+ ldmia r6!, {r0-r1}
+ add r3, sp, #0x0
+ add r2, r3, #0x0
+ stmia r3!, {r0-r1}
+ ldr r0, [r6, #0x0]
+ mov r7, #0x0
+ str r0, [r3, #0x0]
+ ldr r0, [r4, #0x14]
+ ldr r6, [sp, #0x4]
+ asr r0, r0, #0x4
+ lsl r1, r0, #0x2
+ ldr r0, _02054500 ; =0x020FFA38
+ ldrsh r0, [r0, r1]
+ asr r3, r0, #0x1f
+ lsr r1, r0, #0xf
+ lsl r3, r3, #0x11
+ orr r3, r1
+ lsl r1, r0, #0x11
+ lsl r0, r5, #0xb
+ add r0, r1, r0
+ adc r3, r7
+ lsl r1, r3, #0x14
+ lsr r0, r0, #0xc
+ orr r0, r1
+ sub r0, r6, r0
+ str r0, [sp, #0x4]
+ ldr r0, [r4, #0xc]
+ add r1, r2, #0x0
+ bl FUN_02020044
+ ldr r0, [r4, #0x14]
+ lsl r1, r5, #0xc
+ add r0, r0, r1
+ str r0, [r4, #0x14]
+ ldr r0, [r4, #0xc]
+ bl FUN_020201E4
+ b _020544F8
+_020544D4:
+ add r0, r0, #0x1
+ str r0, [r4, #0x10]
+ b _020544F8
+_020544DA:
+ ldr r1, [r4, #0x14]
+ ldr r0, _02054504 ; =0x00000666
+ sub r1, r1, r0
+ str r1, [r4, #0x14]
+ ldr r0, [r4, #0xc]
+ bl FUN_020201E4
+ ldr r0, [r4, #0x14]
+ cmp r0, #0x0
+ bgt _020544F8
+ ldr r0, [r4, #0x10]
+ add r0, r0, #0x1
+ str r0, [r4, #0x10]
+ b _020544F8
+_020544F6:
+ mov r5, #0x0
+_020544F8:
+ add r0, r5, #0x0
+ add sp, #0xc
+ pop {r4-r7, pc}
+ nop
+_02054500: .word 0x020FFA38
+_02054504: .word 0x00000666
+
+ thumb_func_start FUN_02054508
+FUN_02054508: ; 0x02054508
+ push {r3-r5, lr}
+ add r4, r0, #0x0
+ add r5, r1, #0x0
+ mov r0, #0x4
+ mov r1, #0x14
+ bl FUN_02016998
+ str r0, [r5, #0x0]
+ mov r2, #0x14
+ mov r1, #0x0
+_0205451C:
+ strb r1, [r0, #0x0]
+ add r0, r0, #0x1
+ sub r2, r2, #0x1
+ bne _0205451C
+ ldr r5, [r5, #0x0]
+ mov r0, #0x7
+ lsl r0, r0, #0x10
+ str r0, [r5, #0x0]
+ mov r0, #0x6
+ lsl r0, r0, #0x10
+ mov r1, #0x1
+ str r0, [r5, #0x4]
+ add r0, r4, #0x0
+ add r2, r5, #0x0
+ add r3, r1, #0x0
+ str r1, [sp, #0x0]
+ bl FUN_02054008
+ mov r1, #0x1
+ str r0, [r5, #0xc]
+ bl FUN_02020130
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_0205454C
+FUN_0205454C: ; 0x0205454C
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r0, [r4, #0x0]
+ cmp r0, #0x0
+ beq _02054568
+ ldr r0, [r0, #0xc]
+ bl FUN_0201FFC8
+ ldr r1, [r4, #0x0]
+ mov r0, #0x4
+ bl FUN_02016A8C
+ mov r0, #0x0
+ str r0, [r4, #0x0]
+_02054568:
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0205456C
+FUN_0205456C: ; 0x0205456C
+ push {r4, lr}
+ ldr r4, [r0, #0x0]
+ ldr r0, [r4, #0x10]
+ cmp r0, #0x8
+ bge _0205458A
+ mov r1, #0x1
+ ldr r0, [r4, #0xc]
+ lsl r1, r1, #0xc
+ bl FUN_020201E4
+ ldr r0, [r4, #0x10]
+ add r0, r0, #0x1
+ str r0, [r4, #0x10]
+ mov r0, #0x1
+ pop {r4, pc}
+_0205458A:
+ mov r0, #0x0
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02054590
+FUN_02054590: ; 0x02054590
+ push {r4, lr}
+ add r4, r0, #0x0
+ cmp r1, #0x1
+ bne _0205459C
+ bl FUN_0201BD5C
+_0205459C:
+ mov r1, #0x1a
+ add r0, r4, #0x0
+ lsl r1, r1, #0x4
+ mov r2, #0x4
+ bl FUN_02002ED0
+ mov r1, #0x6
+ add r0, r4, #0x0
+ lsl r1, r1, #0x6
+ mov r2, #0x4
+ bl FUN_02002EEC
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_020545B8
+FUN_020545B8: ; 0x020545B8
+ push {lr}
+ sub sp, #0x14
+ cmp r2, #0x3
+ bne _020545E0
+ mov r2, #0x13
+ str r2, [sp, #0x0]
+ mov r2, #0x1b
+ str r2, [sp, #0x4]
+ mov r2, #0x4
+ str r2, [sp, #0x8]
+ mov r2, #0xc
+ str r2, [sp, #0xc]
+ ldr r2, _02054604 ; =0x0000032D
+ mov r3, #0x2
+ str r2, [sp, #0x10]
+ mov r2, #0x3
+ bl FUN_02019064
+ add sp, #0x14
+ pop {pc}
+_020545E0:
+ mov r2, #0x13
+ str r2, [sp, #0x0]
+ mov r2, #0x1b
+ str r2, [sp, #0x4]
+ mov r2, #0x4
+ str r2, [sp, #0x8]
+ mov r2, #0xc
+ str r2, [sp, #0xc]
+ mov r2, #0x65
+ lsl r2, r2, #0x2
+ str r2, [sp, #0x10]
+ mov r2, #0x7
+ mov r3, #0x2
+ bl FUN_02019064
+ add sp, #0x14
+ pop {pc}
+ nop
+_02054604: .word 0x0000032D
+
+ thumb_func_start FUN_02054608
+FUN_02054608: ; 0x02054608
+ push {r4-r6, lr}
+ sub sp, #0x8
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ bl FUN_0201AB08
+ add r6, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_02025084
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x0]
+ mov r0, #0x4
+ str r0, [sp, #0x4]
+ ldr r0, [r5, #0x0]
+ ldr r2, _02054648 ; =0x000003E2
+ add r1, r6, #0x0
+ mov r3, #0xa
+ bl FUN_0200CD68
+ add r0, r5, #0x0
+ bl FUN_0205464C
+ ldr r2, _02054648 ; =0x000003E2
+ add r0, r5, #0x0
+ mov r1, #0x0
+ mov r3, #0xa
+ bl FUN_0200D0BC
+ add sp, #0x8
+ pop {r4-r6, pc}
+ .balign 4
+_02054648: .word 0x000003E2
+
+ thumb_func_start FUN_0205464C
+FUN_0205464C: ; 0x0205464C
+ ldr r3, _02054654 ; =FUN_02019620
+ mov r1, #0xf
+ bx r3
+ nop
+_02054654: .word FUN_02019620
+
+ thumb_func_start FUN_02054658
+FUN_02054658: ; 0x02054658
+ push {r3-r6, lr}
+ sub sp, #0xc
+ add r5, r0, #0x0
+ add r0, r3, #0x0
+ add r4, r1, #0x0
+ add r6, r2, #0x0
+ bl FUN_02002B60
+ mov r0, #0x0
+ bl FUN_02002B7C
+ mov r0, #0x0
+ bl FUN_02002BB8
+ add r0, r6, #0x0
+ bl FUN_02024FF4
+ mov r3, #0x0
+ str r3, [sp, #0x0]
+ str r0, [sp, #0x4]
+ add r0, r5, #0x0
+ mov r1, #0x1
+ add r2, r4, #0x0
+ str r3, [sp, #0x8]
+ bl FUN_0201BD84
+ add sp, #0xc
+ pop {r3-r6, pc}
+
+ thumb_func_start FUN_02054690
+FUN_02054690: ; 0x02054690
+ push {r4-r7, lr}
+ sub sp, #0xc
+ add r5, r0, #0x0
+ add r0, sp, #0x10
+ ldrb r0, [r0, #0x10]
+ add r6, r1, #0x0
+ add r7, r2, #0x0
+ add r4, r3, #0x0
+ bl FUN_02002B60
+ ldr r0, [sp, #0x24]
+ bl FUN_02002B7C
+ mov r0, #0x0
+ bl FUN_02002BB8
+ mov r3, #0x0
+ str r3, [sp, #0x0]
+ str r4, [sp, #0x4]
+ add r0, r5, #0x0
+ add r1, r7, #0x0
+ add r2, r6, #0x0
+ str r3, [sp, #0x8]
+ bl FUN_0201BD84
+ add sp, #0xc
+ pop {r4-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_020546C8
+FUN_020546C8: ; 0x020546C8
+ push {r3, lr}
+ bl FUN_0201BD70
+ cmp r0, #0x0
+ bne _020546D6
+ mov r0, #0x1
+ b _020546D8
+_020546D6:
+ mov r0, #0x0
+_020546D8:
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_020546E0
+FUN_020546E0: ; 0x020546E0
+ push {r4-r5, lr}
+ sub sp, #0x14
+ cmp r2, #0x1
+ bhi _020546EE
+ mov r4, #0x9
+ mov r5, #0x14
+ b _020546F2
+_020546EE:
+ mov r4, #0x2
+ mov r5, #0x1b
+_020546F2:
+ cmp r3, #0x3
+ bne _0205471A
+ mov r2, #0x13
+ str r2, [sp, #0x0]
+ lsl r2, r5, #0x18
+ lsr r2, r2, #0x18
+ str r2, [sp, #0x4]
+ mov r2, #0x4
+ str r2, [sp, #0x8]
+ mov r2, #0x9
+ str r2, [sp, #0xc]
+ ldr r2, _02054740 ; =0x0000032D
+ lsl r3, r4, #0x18
+ str r2, [sp, #0x10]
+ mov r2, #0x3
+ lsr r3, r3, #0x18
+ bl FUN_02019064
+ add sp, #0x14
+ pop {r4-r5, pc}
+_0205471A:
+ mov r2, #0x13
+ str r2, [sp, #0x0]
+ lsl r2, r5, #0x18
+ lsr r2, r2, #0x18
+ str r2, [sp, #0x4]
+ mov r2, #0x4
+ str r2, [sp, #0x8]
+ mov r2, #0x9
+ str r2, [sp, #0xc]
+ mov r2, #0x65
+ lsl r2, r2, #0x2
+ lsl r3, r4, #0x18
+ str r2, [sp, #0x10]
+ mov r2, #0x7
+ lsr r3, r3, #0x18
+ bl FUN_02019064
+ add sp, #0x14
+ pop {r4-r5, pc}
+ .balign 4
+_02054740: .word 0x0000032D
+
+ thumb_func_start FUN_02054744
+FUN_02054744: ; 0x02054744
+ push {r3-r6, lr}
+ sub sp, #0xc
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ add r6, r2, #0x0
+ bl FUN_0201AB08
+ add r1, r0, #0x0
+ lsl r0, r4, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x0]
+ str r6, [sp, #0x4]
+ mov r0, #0x4
+ str r0, [sp, #0x8]
+ ldr r0, [r5, #0x0]
+ ldr r2, _02054788 ; =0x00000399
+ mov r3, #0x9
+ bl FUN_0200D300
+ add r0, r5, #0x0
+ mov r1, #0xf
+ bl FUN_02019620
+ lsl r0, r4, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x0]
+ ldr r2, _02054788 ; =0x00000399
+ add r0, r5, #0x0
+ mov r1, #0x0
+ mov r3, #0x9
+ bl FUN_0200D6F8
+ add sp, #0xc
+ pop {r3-r6, pc}
+ .balign 4
+_02054788: .word 0x00000399
+
+ thumb_func_start FUN_0205478C
+FUN_0205478C: ; 0x0205478C
+ cmp r0, #0x2
+ bne _02054794
+ mov r0, #0x1
+ bx lr
+_02054794:
+ mov r0, #0x0
+ bx lr
+
+ thumb_func_start FUN_02054798
+FUN_02054798: ; 0x02054798
+ cmp r0, #0x3
+ bne _020547A0
+ mov r0, #0x1
+ bx lr
+_020547A0:
+ mov r0, #0x0
+ bx lr
+
+ thumb_func_start FUN_020547A4
+FUN_020547A4: ; 0x020547A4
+ cmp r0, #0x80
+ bne _020547AC
+ mov r0, #0x1
+ bx lr
+_020547AC:
+ mov r0, #0x0
+ bx lr
+
+ thumb_func_start FUN_020547B0
+FUN_020547B0: ; 0x020547B0
+ cmp r0, #0x69
+ bne _020547B8
+ mov r0, #0x1
+ bx lr
+_020547B8:
+ mov r0, #0x0
+ bx lr
+
+ thumb_func_start FUN_020547BC
+FUN_020547BC: ; 0x020547BC
+ cmp r0, #0x62
+ bne _020547C4
+ mov r0, #0x1
+ bx lr
+_020547C4:
+ mov r0, #0x0
+ bx lr
+
+ thumb_func_start FUN_020547C8
+FUN_020547C8: ; 0x020547C8
+ cmp r0, #0x63
+ bne _020547D0
+ mov r0, #0x1
+ bx lr
+_020547D0:
+ mov r0, #0x0
+ bx lr
+
+ thumb_func_start FUN_020547D4
+FUN_020547D4: ; 0x020547D4
+ cmp r0, #0x64
+ bne _020547DC
+ mov r0, #0x1
+ bx lr
+_020547DC:
+ mov r0, #0x0
+ bx lr
+
+ thumb_func_start FUN_020547E0
+FUN_020547E0: ; 0x020547E0
+ cmp r0, #0x65
+ bne _020547E8
+ mov r0, #0x1
+ bx lr
+_020547E8:
+ mov r0, #0x0
+ bx lr
+
+ thumb_func_start FUN_020547EC
+FUN_020547EC: ; 0x020547EC
+ cmp r0, #0x6c
+ bne _020547F4
+ mov r0, #0x1
+ bx lr
+_020547F4:
+ mov r0, #0x0
+ bx lr
+
+ thumb_func_start FUN_020547F8
+FUN_020547F8: ; 0x020547F8
+ cmp r0, #0x6d
+ bne _02054800
+ mov r0, #0x1
+ bx lr
+_02054800:
+ mov r0, #0x0
+ bx lr
+
+ thumb_func_start FUN_02054804
+FUN_02054804: ; 0x02054804
+ cmp r0, #0x6e
+ bne _0205480C
+ mov r0, #0x1
+ bx lr
+_0205480C:
+ mov r0, #0x0
+ bx lr
+
+ thumb_func_start FUN_02054810
+FUN_02054810: ; 0x02054810
+ cmp r0, #0x6f
+ bne _02054818
+ mov r0, #0x1
+ bx lr
+_02054818:
+ mov r0, #0x0
+ bx lr
+
+ thumb_func_start FUN_0205481C
+FUN_0205481C: ; 0x0205481C
+ ldr r1, _0205482C ; =0x020F5C14
+ ldrb r1, [r1, r0]
+ mov r0, #0x1
+ tst r1, r0
+ bne _02054828
+ mov r0, #0x0
+_02054828:
+ bx lr
+ nop
+_0205482C: .word 0x020F5C14
+
+ thumb_func_start FUN_02054830
+FUN_02054830: ; 0x02054830
+ cmp r0, #0x21
+ bne _02054838
+ mov r0, #0x1
+ bx lr
+_02054838:
+ mov r0, #0x0
+ bx lr
+
+ thumb_func_start FUN_0205483C
+FUN_0205483C: ; 0x0205483C
+ cmp r0, #0x17
+ bne _02054844
+ mov r0, #0x1
+ bx lr
+_02054844:
+ mov r0, #0x0
+ bx lr
+
+ thumb_func_start FUN_02054848
+FUN_02054848: ; 0x02054848
+ cmp r0, #0x3a
+ bne _02054850
+ mov r0, #0x1
+ bx lr
+_02054850:
+ mov r0, #0x0
+ bx lr
+
+ thumb_func_start FUN_02054854
+FUN_02054854: ; 0x02054854
+ cmp r0, #0x3b
+ bne _0205485C
+ mov r0, #0x1
+ bx lr
+_0205485C:
+ mov r0, #0x0
+ bx lr
+
+ thumb_func_start FUN_02054860
+FUN_02054860: ; 0x02054860
+ cmp r0, #0x39
+ bne _02054868
+ mov r0, #0x1
+ bx lr
+_02054868:
+ mov r0, #0x0
+ bx lr
+
+ thumb_func_start FUN_0205486C
+FUN_0205486C: ; 0x0205486C
+ cmp r0, #0x38
+ bne _02054874
+ mov r0, #0x1
+ bx lr
+_02054874:
+ mov r0, #0x0
+ bx lr
+
+ thumb_func_start FUN_02054878
+FUN_02054878: ; 0x02054878
+ cmp r0, #0x83
+ bne _02054880
+ mov r0, #0x1
+ bx lr
+_02054880:
+ mov r0, #0x0
+ bx lr
+
+ thumb_func_start FUN_02054884
+FUN_02054884: ; 0x02054884
+ cmp r0, #0x85
+ bne _0205488C
+ mov r0, #0x1
+ bx lr
+_0205488C:
+ mov r0, #0x0
+ bx lr
+
+ thumb_func_start FUN_02054890
+FUN_02054890: ; 0x02054890
+ cmp r0, #0x56
+ bne _02054898
+ mov r0, #0x1
+ bx lr
+_02054898:
+ mov r0, #0x0
+ bx lr
+
+ thumb_func_start FUN_0205489C
+FUN_0205489C: ; 0x0205489C
+ cmp r0, #0x57
+ bne _020548A4
+ mov r0, #0x1
+ bx lr
+_020548A4:
+ mov r0, #0x0
+ bx lr
+
+ thumb_func_start FUN_020548A8
+FUN_020548A8: ; 0x020548A8
+ cmp r0, #0x58
+ bne _020548B0
+ mov r0, #0x1
+ bx lr
+_020548B0:
+ mov r0, #0x0
+ bx lr
+
+ thumb_func_start FUN_020548B4
+FUN_020548B4: ; 0x020548B4
+ cmp r0, #0x59
+ bne _020548BC
+ mov r0, #0x1
+ bx lr
+_020548BC:
+ mov r0, #0x0
+ bx lr
+
+ thumb_func_start FUN_020548C0
+FUN_020548C0: ; 0x020548C0
+ cmp r0, #0x6a
+ bne _020548C8
+ mov r0, #0x1
+ bx lr
+_020548C8:
+ mov r0, #0x0
+ bx lr
+
+ thumb_func_start FUN_020548CC
+FUN_020548CC: ; 0x020548CC
+ cmp r0, #0x6b
+ bne _020548D4
+ mov r0, #0x1
+ bx lr
+_020548D4:
+ mov r0, #0x0
+ bx lr
+
+ thumb_func_start FUN_020548D8
+FUN_020548D8: ; 0x020548D8
+ cmp r0, #0x5e
+ bne _020548E0
+ mov r0, #0x1
+ bx lr
+_020548E0:
+ mov r0, #0x0
+ bx lr
+
+ thumb_func_start FUN_020548E4
+FUN_020548E4: ; 0x020548E4
+ cmp r0, #0x5f
+ bne _020548EC
+ mov r0, #0x1
+ bx lr
+_020548EC:
+ mov r0, #0x0
+ bx lr
+
+ thumb_func_start FUN_020548F0
+FUN_020548F0: ; 0x020548F0
+ cmp r0, #0x20
+ bne _020548F8
+ mov r0, #0x1
+ bx lr
+_020548F8:
+ mov r0, #0x0
+ bx lr
+
+ thumb_func_start FUN_020548FC
+FUN_020548FC: ; 0x020548FC
+ cmp r0, #0x4b
+ bne _02054904
+ mov r0, #0x1
+ bx lr
+_02054904:
+ mov r0, #0x0
+ bx lr
+
+ thumb_func_start FUN_02054908
+FUN_02054908: ; 0x02054908
+ cmp r0, #0x4c
+ bne _02054910
+ mov r0, #0x1
+ bx lr
+_02054910:
+ mov r0, #0x0
+ bx lr
+
+ thumb_func_start FUN_02054914
+FUN_02054914: ; 0x02054914
+ cmp r0, #0xe0
+ bne _0205491C
+ mov r0, #0x1
+ bx lr
+_0205491C:
+ mov r0, #0x0
+ bx lr
+
+ thumb_func_start FUN_02054920
+FUN_02054920: ; 0x02054920
+ cmp r0, #0xea
+ bne _02054928
+ mov r0, #0x1
+ bx lr
+_02054928:
+ mov r0, #0x0
+ bx lr
+
+ thumb_func_start FUN_0205492C
+FUN_0205492C: ; 0x0205492C
+ cmp r0, #0xe1
+ bne _02054934
+ mov r0, #0x1
+ bx lr
+_02054934:
+ mov r0, #0x0
+ bx lr
+
+ thumb_func_start FUN_02054938
+FUN_02054938: ; 0x02054938
+ cmp r0, #0xe2
+ bne _02054940
+ mov r0, #0x1
+ bx lr
+_02054940:
+ mov r0, #0x0
+ bx lr
+
+ thumb_func_start FUN_02054944
+FUN_02054944: ; 0x02054944
+ cmp r0, #0xe4
+ bne _0205494C
+ mov r0, #0x1
+ bx lr
+_0205494C:
+ mov r0, #0x0
+ bx lr
+
+ thumb_func_start FUN_02054950
+FUN_02054950: ; 0x02054950
+ cmp r0, #0xe5
+ bne _02054958
+ mov r0, #0x1
+ bx lr
+_02054958:
+ mov r0, #0x0
+ bx lr
+
+ thumb_func_start FUN_0205495C
+FUN_0205495C: ; 0x0205495C
+ cmp r0, #0xeb
+ bne _02054964
+ mov r0, #0x1
+ bx lr
+_02054964:
+ mov r0, #0x0
+ bx lr
+
+ thumb_func_start FUN_02054968
+FUN_02054968: ; 0x02054968
+ cmp r0, #0xec
+ bne _02054970
+ mov r0, #0x1
+ bx lr
+_02054970:
+ mov r0, #0x0
+ bx lr
+
+ thumb_func_start FUN_02054974
+FUN_02054974: ; 0x02054974
+ cmp r0, #0xa4
+ beq _0205497C
+ cmp r0, #0xa5
+ bne _02054980
+_0205497C:
+ mov r0, #0x1
+ bx lr
+_02054980:
+ mov r0, #0x0
+ bx lr
+
+ thumb_func_start FUN_02054984
+FUN_02054984: ; 0x02054984
+ cmp r0, #0xa5
+ bne _0205498C
+ mov r0, #0x1
+ bx lr
+_0205498C:
+ mov r0, #0x0
+ bx lr
+
+ thumb_func_start FUN_02054990
+FUN_02054990: ; 0x02054990
+ cmp r0, #0xa6
+ beq _02054998
+ cmp r0, #0xa7
+ bne _0205499C
+_02054998:
+ mov r0, #0x1
+ bx lr
+_0205499C:
+ mov r0, #0x0
+ bx lr
+
+ thumb_func_start FUN_020549A0
+FUN_020549A0: ; 0x020549A0
+ cmp r0, #0xa7
+ bne _020549A8
+ mov r0, #0x1
+ bx lr
+_020549A8:
+ mov r0, #0x0
+ bx lr
+
+ thumb_func_start FUN_020549AC
+FUN_020549AC: ; 0x020549AC
+ add r0, #0x5f
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ mov r3, #0x0
+ cmp r0, #0x7
+ bhi _020549C6
+ mov r1, #0x1
+ add r2, r1, #0x0
+ lsl r2, r0
+ mov r0, #0x87
+ tst r0, r2
+ beq _020549C6
+ add r3, r1, #0x0
+_020549C6:
+ add r0, r3, #0x0
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_020549CC
+FUN_020549CC: ; 0x020549CC
+ cmp r0, #0xa8
+ bne _020549D4
+ mov r0, #0x1
+ bx lr
+_020549D4:
+ mov r0, #0x0
+ bx lr
+
+ thumb_func_start FUN_020549D8
+FUN_020549D8: ; 0x020549D8
+ cmp r0, #0xa1
+ bne _020549E0
+ mov r0, #0x1
+ bx lr
+_020549E0:
+ mov r0, #0x0
+ bx lr
+
+ thumb_func_start FUN_020549E4
+FUN_020549E4: ; 0x020549E4
+ cmp r0, #0xa2
+ bne _020549EC
+ mov r0, #0x1
+ bx lr
+_020549EC:
+ mov r0, #0x0
+ bx lr
+
+ thumb_func_start FUN_020549F0
+FUN_020549F0: ; 0x020549F0
+ cmp r0, #0xa3
+ bne _020549F8
+ mov r0, #0x1
+ bx lr
+_020549F8:
+ mov r0, #0x0
+ bx lr
+
+ thumb_func_start FUN_020549FC
+FUN_020549FC: ; 0x020549FC
+ cmp r0, #0xd9
+ beq _02054A04
+ cmp r0, #0xda
+ bne _02054A08
+_02054A04:
+ mov r0, #0x1
+ bx lr
+_02054A08:
+ mov r0, #0x0
+ bx lr
+
+ thumb_func_start FUN_02054A0C
+FUN_02054A0C: ; 0x02054A0C
+ cmp r0, #0xd9
+ bne _02054A14
+ mov r0, #0x1
+ bx lr
+_02054A14:
+ mov r0, #0x0
+ bx lr
+
+ thumb_func_start FUN_02054A18
+FUN_02054A18: ; 0x02054A18
+ cmp r0, #0xda
+ bne _02054A20
+ mov r0, #0x1
+ bx lr
+_02054A20:
+ mov r0, #0x0
+ bx lr
+
+ thumb_func_start FUN_02054A24
+FUN_02054A24: ; 0x02054A24
+ cmp r0, #0xd7
+ bne _02054A2C
+ mov r0, #0x1
+ bx lr
+_02054A2C:
+ mov r0, #0x0
+ bx lr
+
+ thumb_func_start FUN_02054A30
+FUN_02054A30: ; 0x02054A30
+ cmp r0, #0xd8
+ bne _02054A38
+ mov r0, #0x1
+ bx lr
+_02054A38:
+ mov r0, #0x0
+ bx lr
+
+ thumb_func_start FUN_02054A3C
+FUN_02054A3C: ; 0x02054A3C
+ cmp r0, #0x8
+ bne _02054A44
+ mov r0, #0x1
+ bx lr
+_02054A44:
+ mov r0, #0x0
+ bx lr
+
+ thumb_func_start FUN_02054A48
+FUN_02054A48: ; 0x02054A48
+ cmp r0, #0x13
+ bne _02054A50
+ mov r0, #0x1
+ bx lr
+_02054A50:
+ mov r0, #0x0
+ bx lr
+
+ thumb_func_start FUN_02054A54
+FUN_02054A54: ; 0x02054A54
+ cmp r0, #0xdb
+ bne _02054A5C
+ mov r0, #0x1
+ bx lr
+_02054A5C:
+ mov r0, #0x0
+ bx lr
+
+ thumb_func_start FUN_02054A60
+FUN_02054A60: ; 0x02054A60
+ add r0, #0xce
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ mov r3, #0x0
+ cmp r0, #0x17
+ bhi _02054A7A
+ mov r1, #0x1
+ add r2, r1, #0x0
+ lsl r2, r0
+ ldr r0, _02054A80 ; =0x0080000D
+ tst r0, r2
+ beq _02054A7A
+ add r3, r1, #0x0
+_02054A7A:
+ add r0, r3, #0x0
+ bx lr
+ nop
+_02054A80: .word 0x0080000D
+
+ thumb_func_start FUN_02054A84
+FUN_02054A84: ; 0x02054A84
+ add r0, #0xcd
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ mov r3, #0x0
+ cmp r0, #0x16
+ bhi _02054A9E
+ mov r1, #0x1
+ add r2, r1, #0x0
+ lsl r2, r0
+ ldr r0, _02054AA4 ; =0x00400019
+ tst r0, r2
+ beq _02054A9E
+ add r3, r1, #0x0
+_02054A9E:
+ add r0, r3, #0x0
+ bx lr
+ nop
+_02054AA4: .word 0x00400019
+
+ thumb_func_start FUN_02054AA8
+FUN_02054AA8: ; 0x02054AA8
+ add r0, #0xcf
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ mov r3, #0x0
+ cmp r0, #0x19
+ bhi _02054AC2
+ mov r1, #0x1
+ add r2, r1, #0x0
+ lsl r2, r0
+ ldr r0, _02054AC8 ; =0x02000051
+ tst r0, r2
+ beq _02054AC2
+ add r3, r1, #0x0
+_02054AC2:
+ add r0, r3, #0x0
+ bx lr
+ nop
+_02054AC8: .word 0x02000051
+
+ thumb_func_start FUN_02054ACC
+FUN_02054ACC: ; 0x02054ACC
+ add r0, #0xd0
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ mov r3, #0x0
+ cmp r0, #0x1a
+ bhi _02054AE6
+ mov r1, #0x1
+ add r2, r1, #0x0
+ lsl r2, r0
+ ldr r0, _02054AEC ; =0x04000051
+ tst r0, r2
+ beq _02054AE6
+ add r3, r1, #0x0
+_02054AE6:
+ add r0, r3, #0x0
+ bx lr
+ nop
+_02054AEC: .word 0x04000051
+
+ thumb_func_start FUN_02054AF0
+FUN_02054AF0: ; 0x02054AF0
+ cmp r0, #0x16
+ bne _02054AF8
+ mov r0, #0x1
+ bx lr
+_02054AF8:
+ mov r0, #0x0
+ bx lr
+
+ thumb_func_start FUN_02054AFC
+FUN_02054AFC: ; 0x02054AFC
+ ldr r1, _02054B10 ; =0x020F5C14
+ ldrb r1, [r1, r0]
+ mov r0, #0x2
+ tst r0, r1
+ beq _02054B0A
+ mov r0, #0x1
+ bx lr
+_02054B0A:
+ mov r0, #0x0
+ bx lr
+ nop
+_02054B10: .word 0x020F5C14
+
+ thumb_func_start FUN_02054B14
+FUN_02054B14: ; 0x02054B14
+ cmp r0, #0x86
+ bne _02054B1C
+ mov r0, #0x1
+ bx lr
+_02054B1C:
+ mov r0, #0x0
+ bx lr
+
+ thumb_func_start FUN_02054B20
+FUN_02054B20: ; 0x02054B20
+ cmp r0, #0x16
+ beq _02054B28
+ cmp r0, #0x10
+ bne _02054B2C
+_02054B28:
+ mov r0, #0x1
+ bx lr
+_02054B2C:
+ mov r0, #0x0
+ bx lr
+
+ thumb_func_start FUN_02054B30
+FUN_02054B30: ; 0x02054B30
+ cmp r0, #0x40
+ bne _02054B38
+ mov r0, #0x1
+ bx lr
+_02054B38:
+ mov r0, #0x0
+ bx lr
+
+ thumb_func_start FUN_02054B3C
+FUN_02054B3C: ; 0x02054B3C
+ cmp r0, #0x41
+ bne _02054B44
+ mov r0, #0x1
+ bx lr
+_02054B44:
+ mov r0, #0x0
+ bx lr
+
+ thumb_func_start FUN_02054B48
+FUN_02054B48: ; 0x02054B48
+ cmp r0, #0x42
+ bne _02054B50
+ mov r0, #0x1
+ bx lr
+_02054B50:
+ mov r0, #0x0
+ bx lr
+
+ thumb_func_start FUN_02054B54
+FUN_02054B54: ; 0x02054B54
+ cmp r0, #0x43
+ bne _02054B5C
+ mov r0, #0x1
+ bx lr
+_02054B5C:
+ mov r0, #0x0
+ bx lr
+
+ thumb_func_start FUN_02054B60
+FUN_02054B60: ; 0x02054B60
+ cmp r0, #0x67
+ bne _02054B68
+ mov r0, #0x1
+ bx lr
+_02054B68:
+ mov r0, #0x0
+ bx lr
+
+ thumb_func_start FUN_02054B6C
+FUN_02054B6C: ; 0x02054B6C
+ cmp r0, #0x70
+ bne _02054B74
+ mov r0, #0x1
+ bx lr
+_02054B74:
+ mov r0, #0x0
+ bx lr
+
+ thumb_func_start FUN_02054B78
+FUN_02054B78: ; 0x02054B78
+ add r0, #0x8f
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ cmp r0, #0xc
+ bhi _02054B86
+ mov r0, #0x1
+ bx lr
+_02054B86:
+ mov r0, #0x0
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02054B8C
+FUN_02054B8C: ; 0x02054B8C
+ add r0, #0x8d
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ mov r3, #0x0
+ cmp r0, #0x9
+ bhi _02054BA6
+ mov r1, #0x1
+ add r2, r1, #0x0
+ lsl r2, r0
+ ldr r0, _02054BAC ; =0x00000221
+ tst r0, r2
+ beq _02054BA6
+ add r3, r1, #0x0
+_02054BA6:
+ add r0, r3, #0x0
+ bx lr
+ nop
+_02054BAC: .word 0x00000221
+
+ thumb_func_start FUN_02054BB0
+FUN_02054BB0: ; 0x02054BB0
+ add r0, #0x8c
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ mov r3, #0x0
+ cmp r0, #0x9
+ bhi _02054BCA
+ mov r1, #0x1
+ add r2, r1, #0x0
+ lsl r2, r0
+ ldr r0, _02054BD0 ; =0x00000221
+ tst r0, r2
+ beq _02054BCA
+ add r3, r1, #0x0
+_02054BCA:
+ add r0, r3, #0x0
+ bx lr
+ nop
+_02054BD0: .word 0x00000221
+
+ thumb_func_start FUN_02054BD4
+FUN_02054BD4: ; 0x02054BD4
+ cmp r0, #0x75
+ bne _02054BDC
+ mov r0, #0x1
+ bx lr
+_02054BDC:
+ mov r0, #0x0
+ bx lr
+
+ thumb_func_start FUN_02054BE0
+FUN_02054BE0: ; 0x02054BE0
+ add r0, #0x8a
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ cmp r0, #0x3
+ bhi _02054BEE
+ mov r0, #0x1
+ bx lr
+_02054BEE:
+ mov r0, #0x0
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02054BF4
+FUN_02054BF4: ; 0x02054BF4
+ add r0, #0x86
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ cmp r0, #0x3
+ bhi _02054C02
+ mov r0, #0x1
+ bx lr
+_02054C02:
+ mov r0, #0x0
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02054C08
+FUN_02054C08: ; 0x02054C08
+ cmp r0, #0xff
+ bne _02054C10
+ mov r0, #0x1
+ bx lr
+_02054C10:
+ mov r0, #0x0
+ bx lr
+
+ thumb_func_start FUN_02054C14
+FUN_02054C14: ; 0x02054C14
+ push {r4, lr}
+ mov r1, #0xa
+ add r4, r0, #0x0
+ blx _u32_div_f
+ cmp r0, #0x0
+ bne _02054C26
+ mov r0, #0x1
+ pop {r4, pc}
+_02054C26:
+ add r0, r4, #0x0
+ mov r1, #0x64
+ blx _u32_div_f
+ cmp r0, #0x0
+ bne _02054C36
+ mov r0, #0x2
+ pop {r4, pc}
+_02054C36:
+ mov r1, #0xfa
+ add r0, r4, #0x0
+ lsl r1, r1, #0x2
+ blx _u32_div_f
+ cmp r0, #0x0
+ bne _02054C48
+ mov r0, #0x3
+ pop {r4, pc}
+_02054C48:
+ ldr r1, _02054C9C ; =0x00002710
+ add r0, r4, #0x0
+ blx _u32_div_f
+ cmp r0, #0x0
+ bne _02054C58
+ mov r0, #0x4
+ pop {r4, pc}
+_02054C58:
+ ldr r1, _02054CA0 ; =0x000186A0
+ add r0, r4, #0x0
+ blx _u32_div_f
+ cmp r0, #0x0
+ bne _02054C68
+ mov r0, #0x5
+ pop {r4, pc}
+_02054C68:
+ ldr r1, _02054CA4 ; =0x000F4240
+ add r0, r4, #0x0
+ blx _u32_div_f
+ cmp r0, #0x0
+ bne _02054C78
+ mov r0, #0x6
+ pop {r4, pc}
+_02054C78:
+ ldr r1, _02054CA8 ; =0x00989680
+ add r0, r4, #0x0
+ blx _u32_div_f
+ cmp r0, #0x0
+ bne _02054C88
+ mov r0, #0x7
+ pop {r4, pc}
+_02054C88:
+ ldr r1, _02054CAC ; =0x05F5E100
+ add r0, r4, #0x0
+ blx _u32_div_f
+ cmp r0, #0x0
+ bne _02054C98
+ mov r0, #0x8
+ pop {r4, pc}
+_02054C98:
+ mov r0, #0x1
+ pop {r4, pc}
+ .balign 4
+_02054C9C: .word 0x00002710
+_02054CA0: .word 0x000186A0
+_02054CA4: .word 0x000F4240
+_02054CA8: .word 0x00989680
+_02054CAC: .word 0x05F5E100
+
+ thumb_func_start FUN_02054CB0
+FUN_02054CB0: ; 0x02054CB0
+ mov r1, #0x52
+ lsl r1, r1, #0x2
+ cmp r0, r1
+ blo _02054CC2
+ add r1, #0x63
+ cmp r0, r1
+ bhi _02054CC2
+ mov r0, #0x1
+ bx lr
+_02054CC2:
+ mov r0, #0x0
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02054CC8
+FUN_02054CC8: ; 0x02054CC8
+ cmp r0, #0xe
+ bhi _02054CD0
+ mov r0, #0x6
+ bx lr
+_02054CD0:
+ cmp r0, #0x18
+ bhi _02054CD8
+ mov r0, #0x7
+ bx lr
+_02054CD8:
+ cmp r0, #0x27
+ bhi _02054CE0
+ mov r0, #0x8
+ bx lr
+_02054CE0:
+ cmp r0, #0x3b
+ bhi _02054CE8
+ mov r0, #0x9
+ bx lr
+_02054CE8:
+ cmp r0, #0x59
+ bhi _02054CF0
+ mov r0, #0xa
+ bx lr
+_02054CF0:
+ cmp r0, #0x72
+ bhi _02054CF8
+ mov r0, #0xb
+ bx lr
+_02054CF8:
+ cmp r0, #0x86
+ bhi _02054D00
+ mov r0, #0xc
+ bx lr
+_02054D00:
+ cmp r0, #0x90
+ bhi _02054D08
+ mov r0, #0xd
+ bx lr
+_02054D08:
+ cmp r0, #0x95
+ bhi _02054D10
+ mov r0, #0xe
+ bx lr
+_02054D10:
+ cmp r1, #0x0
+ beq _02054D18
+ mov r0, #0x4
+ bx lr
+_02054D18:
+ mov r0, #0x5
+ bx lr
+
+ thumb_func_start FUN_02054D1C
+FUN_02054D1C: ; 0x02054D1C
+ cmp r0, #0x27
+ bhi _02054D24
+ mov r0, #0x13
+ bx lr
+_02054D24:
+ cmp r0, #0x3b
+ bhi _02054D2C
+ mov r0, #0x14
+ bx lr
+_02054D2C:
+ cmp r0, #0x59
+ bhi _02054D34
+ mov r0, #0x15
+ bx lr
+_02054D34:
+ cmp r0, #0x77
+ bhi _02054D3C
+ mov r0, #0x16
+ bx lr
+_02054D3C:
+ cmp r0, #0x95
+ bhi _02054D44
+ mov r0, #0x17
+ bx lr
+_02054D44:
+ cmp r0, #0xbd
+ bhi _02054D4C
+ mov r0, #0x18
+ bx lr
+_02054D4C:
+ cmp r0, #0xe5
+ bhi _02054D54
+ mov r0, #0x19
+ bx lr
+_02054D54:
+ ldr r2, _02054DE8 ; =0x0000010D
+ cmp r0, r2
+ bhi _02054D5E
+ mov r0, #0x1a
+ bx lr
+_02054D5E:
+ add r3, r2, #0x0
+ add r3, #0x28
+ cmp r0, r3
+ bhi _02054D6A
+ mov r0, #0x1b
+ bx lr
+_02054D6A:
+ add r3, r2, #0x0
+ add r3, #0x50
+ cmp r0, r3
+ bhi _02054D76
+ mov r0, #0x1c
+ bx lr
+_02054D76:
+ add r3, r2, #0x0
+ add r3, #0x6e
+ cmp r0, r3
+ bhi _02054D82
+ mov r0, #0x1d
+ bx lr
+_02054D82:
+ add r3, r2, #0x0
+ add r3, #0x8c
+ cmp r0, r3
+ bhi _02054D8E
+ mov r0, #0x1e
+ bx lr
+_02054D8E:
+ add r3, r2, #0x0
+ add r3, #0xa0
+ cmp r0, r3
+ bhi _02054DA2
+ cmp r1, #0x0
+ beq _02054D9E
+ mov r0, #0x20
+ bx lr
+_02054D9E:
+ mov r0, #0x1f
+ bx lr
+_02054DA2:
+ add r3, r2, #0x0
+ add r3, #0xb4
+ cmp r0, r3
+ bhi _02054DAE
+ mov r0, #0x21
+ bx lr
+_02054DAE:
+ add r3, r2, #0x0
+ add r3, #0xbe
+ cmp r0, r3
+ bhi _02054DBA
+ mov r0, #0x22
+ bx lr
+_02054DBA:
+ add r3, r2, #0x0
+ add r3, #0xc8
+ cmp r0, r3
+ bhi _02054DC6
+ mov r0, #0x23
+ bx lr
+_02054DC6:
+ add r3, r2, #0x0
+ add r3, #0xce
+ cmp r0, r3
+ bhi _02054DD2
+ mov r0, #0x24
+ bx lr
+_02054DD2:
+ add r2, #0xd4
+ cmp r0, r2
+ bhi _02054DDC
+ mov r0, #0x25
+ bx lr
+_02054DDC:
+ cmp r1, #0x0
+ beq _02054DE4
+ mov r0, #0x27
+ bx lr
+_02054DE4:
+ mov r0, #0x26
+ bx lr
+ .balign 4
+_02054DE8: .word 0x0000010D
+
+ thumb_func_start FUN_02054DEC
+FUN_02054DEC: ; 0x02054DEC
+ push {r3-r7, lr}
+ add r6, r0, #0x0
+ bl FUN_0206BB1C
+ bl FUN_0206B9AC
+ lsl r0, r0, #0x10
+ lsr r5, r0, #0x10
+ ldr r4, _02054E2C ; =0x00000000
+ beq _02054E28
+ mov r7, #0x4c
+_02054E02:
+ add r0, r6, #0x0
+ bl FUN_0206BB1C
+ add r1, r4, #0x0
+ bl FUN_0206B9B0
+ add r1, r7, #0x0
+ mov r2, #0x0
+ bl FUN_020671BC
+ cmp r0, #0x0
+ bne _02054E1E
+ add r0, r4, #0x0
+ pop {r3-r7, pc}
+_02054E1E:
+ add r0, r4, #0x1
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+ cmp r4, r5
+ blo _02054E02
+_02054E28:
+ mov r0, #0x0
+ pop {r3-r7, pc}
+ .balign 4
+_02054E2C: .word 0x00000000
+
+ thumb_func_start FUN_02054E30
+FUN_02054E30: ; 0x02054E30
+ push {r3-r7, lr}
+ sub sp, #0x10
+ mov r7, #0x0
+ bl FUN_0206BB1C
+ str r0, [sp, #0x0]
+ bl FUN_0206B9AC
+ add r4, r0, #0x0
+ add r6, r7, #0x0
+ cmp r4, #0x0
+ ble _02054E64
+ add r5, sp, #0x4
+_02054E4A:
+ ldr r0, [sp, #0x0]
+ add r1, r6, #0x0
+ bl FUN_0206B9B0
+ mov r1, #0x5
+ mov r2, #0x0
+ bl FUN_020671BC
+ strh r0, [r5, #0x0]
+ add r6, r6, #0x1
+ add r5, r5, #0x2
+ cmp r6, r4
+ blt _02054E4A
+_02054E64:
+ ldr r2, _02054E9C ; =0x020F5D14
+ mov r6, #0x0
+_02054E68:
+ mov r1, #0x0
+ cmp r4, #0x0
+ ble _02054E84
+ ldrh r5, [r2, #0x0]
+ add r3, sp, #0x4
+_02054E72:
+ ldrh r0, [r3, #0x0]
+ cmp r0, r5
+ bne _02054E7C
+ add r7, r7, #0x1
+ b _02054E84
+_02054E7C:
+ add r1, r1, #0x1
+ add r3, r3, #0x2
+ cmp r1, r4
+ blt _02054E72
+_02054E84:
+ add r6, r6, #0x1
+ add r2, r2, #0x2
+ cmp r6, #0x3
+ blt _02054E68
+ cmp r7, #0x3
+ bne _02054E96
+ add sp, #0x10
+ mov r0, #0x1
+ pop {r3-r7, pc}
+_02054E96:
+ mov r0, #0x0
+ add sp, #0x10
+ pop {r3-r7, pc}
+ .balign 4
+_02054E9C: .word 0x020F5D14
+
+ thumb_func_start FUN_02054EA0
+FUN_02054EA0: ; 0x02054EA0
+ push {r4-r5, lr}
+ sub sp, #0xc
+ add r4, r0, #0x0
+ bl FUN_02046528
+ add r0, r4, #0x0
+ bl FUN_0204652C
+ add r4, r0, #0x0
+ mov r0, #0x2
+ lsl r0, r0, #0xe
+ str r0, [sp, #0x0]
+ str r0, [sp, #0x8]
+ ldrh r0, [r4, #0xe]
+ ldr r5, [r4, #0x4]
+ bl FUN_0201B93C
+ asr r1, r0, #0x1f
+ asr r3, r5, #0x1f
+ add r2, r5, #0x0
+ blx _ll_mul
+ mov r2, #0x2
+ mov r3, #0x0
+ lsl r2, r2, #0xa
+ add r2, r0, r2
+ adc r1, r3
+ lsl r0, r1, #0x14
+ lsr r1, r2, #0xc
+ orr r1, r0
+ str r1, [sp, #0x0]
+ ldrh r0, [r4, #0xe]
+ ldr r5, [r4, #0x8]
+ bl FUN_0201B93C
+ asr r1, r0, #0x1f
+ asr r3, r5, #0x1f
+ add r2, r5, #0x0
+ blx _ll_mul
+ mov r2, #0x2
+ mov r3, #0x0
+ lsl r2, r2, #0xa
+ add r2, r0, r2
+ adc r1, r3
+ lsl r0, r1, #0x14
+ lsr r1, r2, #0xc
+ orr r1, r0
+ str r1, [sp, #0x8]
+ str r3, [sp, #0x4]
+ ldr r0, [r4, #0x0]
+ add r1, sp, #0x0
+ bl FUN_02058BB4
+ ldrh r1, [r4, #0xe]
+ ldrh r0, [r4, #0x10]
+ add r0, r1, r0
+ strh r0, [r4, #0xe]
+ mov r0, #0x5a
+ ldrh r1, [r4, #0xe]
+ lsl r0, r0, #0x2
+ cmp r1, r0
+ blo _02054F28
+ mov r0, #0x0
+ strh r0, [r4, #0xe]
+ ldrh r0, [r4, #0xc]
+ sub r0, r0, #0x1
+ strh r0, [r4, #0xc]
+_02054F28:
+ ldrh r0, [r4, #0xc]
+ cmp r0, #0x0
+ bne _02054F4A
+ mov r0, #0x0
+ str r0, [sp, #0x8]
+ str r0, [sp, #0x4]
+ str r0, [sp, #0x0]
+ ldr r0, [r4, #0x0]
+ add r1, sp, #0x0
+ bl FUN_02058BB4
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ add sp, #0xc
+ mov r0, #0x1
+ pop {r4-r5, pc}
+_02054F4A:
+ mov r0, #0x0
+ add sp, #0xc
+ pop {r4-r5, pc}
+
+ thumb_func_start FUN_02054F50
+FUN_02054F50: ; 0x02054F50
+ push {r3-r7, lr}
+ add r5, r1, #0x0
+ add r6, r2, #0x0
+ add r7, r3, #0x0
+ bl FUN_02046528
+ str r0, [sp, #0x0]
+ mov r0, #0xb
+ mov r1, #0x14
+ bl FUN_020169D8
+ mov r1, #0x0
+ mov r2, #0x14
+ add r4, r0, #0x0
+ blx MI_CpuFill8
+ add r0, sp, #0x8
+ ldrh r0, [r0, #0x10]
+ cmp r0, #0x0
+ beq _02054F8A
+ lsl r0, r0, #0xc
+ blx _fflt
+ add r1, r0, #0x0
+ mov r0, #0x3f
+ lsl r0, r0, #0x18
+ blx _fadd
+ b _02054F98
+_02054F8A:
+ lsl r0, r0, #0xc
+ blx _fflt
+ mov r1, #0x3f
+ lsl r1, r1, #0x18
+ blx _fsub
+_02054F98:
+ blx _ffix
+ str r0, [r4, #0x4]
+ add r0, sp, #0x8
+ ldrh r0, [r0, #0x14]
+ cmp r0, #0x0
+ beq _02054FB8
+ lsl r0, r0, #0xc
+ blx _fflt
+ add r1, r0, #0x0
+ mov r0, #0x3f
+ lsl r0, r0, #0x18
+ blx _fadd
+ b _02054FC6
+_02054FB8:
+ lsl r0, r0, #0xc
+ blx _fflt
+ mov r1, #0x3f
+ lsl r1, r1, #0x18
+ blx _fsub
+_02054FC6:
+ blx _ffix
+ str r0, [r4, #0x8]
+ strh r6, [r4, #0xc]
+ strh r7, [r4, #0x10]
+ ldr r0, [sp, #0x0]
+ str r5, [r4, #0x0]
+ ldr r0, [r0, #0x10]
+ ldr r1, _02054FE0 ; =FUN_02054EA0
+ add r2, r4, #0x0
+ bl FUN_0204640C
+ pop {r3-r7, pc}
+ .balign 4
+_02054FE0: .word FUN_02054EA0
+
+ thumb_func_start FUN_02054FE4
+FUN_02054FE4: ; 0x02054FE4
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl FUN_02046528
+ add r0, r4, #0x0
+ bl FUN_0204652C
+ add r4, r0, #0x0
+ ldrb r1, [r4, #0x9]
+ ldr r0, [r4, #0x0]
+ bl FUN_0205889C
+ ldrb r1, [r4, #0x8]
+ add r0, r1, #0x1
+ strb r0, [r4, #0x8]
+ ldrh r0, [r4, #0x6]
+ cmp r1, r0
+ blt _02055028
+ ldrb r1, [r4, #0x9]
+ mov r0, #0x1
+ eor r0, r1
+ strb r0, [r4, #0x9]
+ mov r0, #0x0
+ strb r0, [r4, #0x8]
+ ldrh r1, [r4, #0x4]
+ sub r0, r1, #0x1
+ strh r0, [r4, #0x4]
+ cmp r1, #0x0
+ bne _02055028
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ mov r0, #0x1
+ pop {r4, pc}
+_02055028:
+ mov r0, #0x0
+ pop {r4, pc}
+
+ thumb_func_start FUN_0205502C
+FUN_0205502C: ; 0x0205502C
+ push {r3-r7, lr}
+ add r5, r1, #0x0
+ add r6, r2, #0x0
+ add r7, r3, #0x0
+ bl FUN_02046528
+ str r0, [sp, #0x0]
+ mov r0, #0xb
+ mov r1, #0xc
+ bl FUN_020169D8
+ add r4, r0, #0x0
+ mov r1, #0x0
+ mov r2, #0xc
+ blx MI_CpuFill8
+ strh r6, [r4, #0x4]
+ strh r7, [r4, #0x6]
+ str r5, [r4, #0x0]
+ mov r0, #0x0
+ strb r0, [r4, #0x9]
+ ldr r0, [sp, #0x0]
+ ldr r1, _02055064 ; =FUN_02054FE4
+ ldr r0, [r0, #0x10]
+ add r2, r4, #0x0
+ bl FUN_0204640C
+ pop {r3-r7, pc}
+ .balign 4
+_02055064: .word FUN_02054FE4
+
+ thumb_func_start FUN_02055068
+FUN_02055068: ; 0x02055068
+ push {r4-r7, lr}
+ sub sp, #0xc
+ add r7, r0, #0x0
+ add r5, r1, #0x0
+ add r4, r2, #0x0
+ str r3, [sp, #0x8]
+ bl FUN_0205517C
+ ldr r1, [sp, #0x20]
+ ldr r2, [sp, #0x24]
+ ldr r3, [sp, #0x28]
+ add r6, r0, #0x0
+ bl FUN_0205519C
+ ldr r0, [sp, #0x20]
+ ldr r1, [sp, #0x24]
+ bl FUN_020555A0
+ add r2, r0, #0x0
+ str r5, [sp, #0x0]
+ ldr r3, [sp, #0x8]
+ add r0, r6, #0x0
+ add r1, r7, #0x0
+ str r4, [sp, #0x4]
+ bl FUN_02055208
+ add r0, r6, #0x0
+ add sp, #0xc
+ pop {r4-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_020550A4
+FUN_020550A4: ; 0x020550A4
+ push {r3-r7, lr}
+ add r4, r1, #0x0
+ add r7, r0, #0x0
+ add r6, r2, #0x0
+ bl FUN_0205517C
+ add r5, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_020554C8
+ str r0, [sp, #0x0]
+ ldr r1, [sp, #0x0]
+ add r0, r5, #0x0
+ add r2, r6, #0x0
+ add r3, r4, #0x0
+ bl FUN_0205519C
+ add r0, r7, #0x0
+ bl FUN_020552E4
+ add r4, r0, #0x0
+ ldr r0, [sp, #0x0]
+ add r1, r6, #0x0
+ bl FUN_020555A0
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_02058454
+ mov r1, #0x9
+ add r0, r4, #0x0
+ lsl r1, r1, #0xa
+ bl FUN_02058410
+ mov r1, #0x6
+ add r0, r4, #0x0
+ lsl r1, r1, #0x6
+ bl FUN_02058418
+ add r0, r4, #0x0
+ mov r1, #0x1
+ bl FUN_02058AC8
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_0205539C
+ add r0, r5, #0x0
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_02055108
+FUN_02055108: ; 0x02055108
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ bl FUN_020553A0
+ add r4, r0, #0x0
+ bne _02055118
+ bl ErrorHandling
+_02055118:
+ add r0, r4, #0x0
+ bl FUN_02058578
+ add r0, r5, #0x0
+ bl FUN_021EDBC8
+ add r0, r5, #0x0
+ bl FUN_020553C4
+ cmp r0, #0x2
+ bne _0205515C
+ add r0, r5, #0x0
+ bl FUN_02055320
+ add r6, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_0205532C
+ add r7, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_020552F8
+ add r3, r0, #0x0
+ mov r0, #0x1
+ str r0, [sp, #0x0]
+ add r0, r4, #0x0
+ add r1, r6, #0x0
+ add r2, r7, #0x0
+ bl FUN_0224ABAC
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_02055450
+_0205515C:
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_02055160
+FUN_02055160: ; 0x02055160
+ ldr r3, _02055164 ; =FUN_02016A18
+ bx r3
+ .balign 4
+_02055164: .word FUN_02016A18
+
+ thumb_func_start FUN_02055168
+FUN_02055168: ; 0x02055168
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl FUN_020553A0
+ bl FUN_02057654
+ add r0, r4, #0x0
+ bl FUN_02055160
+ pop {r4, pc}
+
+ thumb_func_start FUN_0205517C
+FUN_0205517C: ; 0x0205517C
+ push {r4, lr}
+ mov r0, #0xb
+ mov r1, #0x3c
+ bl FUN_02016998
+ add r4, r0, #0x0
+ bne _0205518E
+ bl ErrorHandling
+_0205518E:
+ add r0, r4, #0x0
+ mov r1, #0x0
+ mov r2, #0x3c
+ blx Call_FillMemWithValue
+ add r0, r4, #0x0
+ pop {r4, pc}
+
+ thumb_func_start FUN_0205519C
+FUN_0205519C: ; 0x0205519C
+ push {r4-r6, lr}
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ add r1, r3, #0x0
+ add r6, r2, #0x0
+ bl FUN_02055458
+ add r0, r5, #0x0
+ mov r1, #0x0
+ bl FUN_0205536C
+ add r0, r5, #0x0
+ mov r1, #0x0
+ bl FUN_02055374
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_020553A8
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ bl FUN_020553E4
+ add r0, r5, #0x0
+ mov r1, #0x0
+ bl FUN_020553DC
+ add r0, r5, #0x0
+ bl FUN_02055410
+ mov r1, #0x0
+ add r0, r5, #0x0
+ mvn r1, r1
+ bl FUN_0205542C
+ mov r1, #0x0
+ add r0, r5, #0x0
+ mvn r1, r1
+ bl FUN_02055434
+ add r0, r5, #0x0
+ mov r1, #0xff
+ bl FUN_02055460
+ add r0, r5, #0x0
+ mov r1, #0x1
+ bl FUN_020556C8
+ add r0, r5, #0x0
+ mov r1, #0x1
+ bl FUN_0205574C
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_02055208
+FUN_02055208: ; 0x02055208
+ push {r4-r5, lr}
+ sub sp, #0xc
+ add r4, r0, #0x0
+ str r2, [sp, #0x0]
+ mov r0, #0x1
+ str r0, [sp, #0x4]
+ str r0, [sp, #0x8]
+ add r0, r1, #0x0
+ ldr r1, [sp, #0x18]
+ ldr r2, [sp, #0x1c]
+ bl FUN_0205753C
+ add r5, r0, #0x0
+ bne _02055228
+ bl ErrorHandling
+_02055228:
+ add r0, r5, #0x0
+ mov r1, #0xff
+ bl FUN_02058444
+ add r0, r5, #0x0
+ mov r1, #0x0
+ bl FUN_02058484
+ add r0, r5, #0x0
+ mov r1, #0x0
+ bl FUN_0205848C
+ add r0, r5, #0x0
+ mov r1, #0x0
+ bl FUN_02058494
+ mov r1, #0x0
+ add r0, r5, #0x0
+ add r2, r1, #0x0
+ bl FUN_020584EC
+ add r0, r5, #0x0
+ mov r1, #0x0
+ mov r2, #0x1
+ bl FUN_020584EC
+ add r0, r5, #0x0
+ mov r1, #0x0
+ mov r2, #0x2
+ bl FUN_020584EC
+ mov r1, #0x0
+ add r0, r5, #0x0
+ mvn r1, r1
+ bl FUN_02058534
+ mov r1, #0x0
+ add r0, r5, #0x0
+ mvn r1, r1
+ bl FUN_0205853C
+ mov r1, #0x9
+ add r0, r5, #0x0
+ lsl r1, r1, #0xa
+ bl FUN_02058410
+ mov r1, #0x6
+ add r0, r5, #0x0
+ lsl r1, r1, #0x6
+ bl FUN_02058418
+ add r0, r5, #0x0
+ mov r1, #0x1
+ bl FUN_02058AC8
+ add r0, r4, #0x0
+ add r1, r5, #0x0
+ bl FUN_0205539C
+ add sp, #0xc
+ pop {r4-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_020552A4
+FUN_020552A4: ; 0x020552A4
+ push {r3-r7, lr}
+ sub sp, #0x8
+ mov r1, #0x0
+ str r1, [sp, #0x4]
+ str r1, [sp, #0x0]
+ add r1, sp, #0x0
+ add r2, sp, #0x4
+ mov r3, #0x1
+ add r5, r0, #0x0
+ bl FUN_020580F4
+ cmp r0, #0x0
+ beq _020552DE
+ add r4, sp, #0x0
+ add r6, sp, #0x4
+ mov r7, #0x1
+_020552C4:
+ ldr r0, [sp, #0x0]
+ bl FUN_02058480
+ cmp r0, #0x1
+ beq _020552DE
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ add r2, r6, #0x0
+ add r3, r7, #0x0
+ bl FUN_020580F4
+ cmp r0, #0x0
+ bne _020552C4
+_020552DE:
+ ldr r0, [sp, #0x0]
+ add sp, #0x8
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_020552E4
+FUN_020552E4: ; 0x020552E4
+ push {r4, lr}
+ bl FUN_020552A4
+ add r4, r0, #0x0
+ bne _020552F2
+ bl ErrorHandling
+_020552F2:
+ add r0, r4, #0x0
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_020552F8
+FUN_020552F8: ; 0x020552F8
+ push {r3, lr}
+ bl FUN_020553A0
+ bl FUN_020584C4
+ pop {r3, pc}
+
+ thumb_func_start FUN_02055304
+FUN_02055304: ; 0x02055304
+ push {r4, lr}
+ add r4, r1, #0x0
+ bl FUN_020553A0
+ add r1, r4, #0x0
+ bl FUN_020584AC
+ pop {r4, pc}
+
+ thumb_func_start FUN_02055314
+FUN_02055314: ; 0x02055314
+ push {r3, lr}
+ bl FUN_020553A0
+ bl FUN_020584D4
+ pop {r3, pc}
+
+ thumb_func_start FUN_02055320
+FUN_02055320: ; 0x02055320
+ push {r3, lr}
+ bl FUN_020553A0
+ bl FUN_02058B2C
+ pop {r3, pc}
+
+ thumb_func_start FUN_0205532C
+FUN_0205532C: ; 0x0205532C
+ push {r3, lr}
+ bl FUN_020553A0
+ bl FUN_02058B4C
+ pop {r3, pc}
+
+ thumb_func_start FUN_02055338
+FUN_02055338: ; 0x02055338
+ push {r3, lr}
+ bl FUN_020553A0
+ bl FUN_02058B14
+ pop {r3, pc}
+
+ thumb_func_start FUN_02055344
+FUN_02055344: ; 0x02055344
+ push {r3, lr}
+ bl FUN_020553A0
+ bl FUN_02058B24
+ pop {r3, pc}
+
+ thumb_func_start FUN_02055350
+FUN_02055350: ; 0x02055350
+ push {r4, lr}
+ add r4, r1, #0x0
+ bl FUN_020553A0
+ add r1, r4, #0x0
+ bl FUN_02058B5C
+ pop {r4, pc}
+
+ thumb_func_start FUN_02055360
+FUN_02055360: ; 0x02055360
+ push {r3, lr}
+ bl FUN_020553A4
+ bl FUN_02058B7C
+ pop {r3, pc}
+
+ thumb_func_start FUN_0205536C
+FUN_0205536C: ; 0x0205536C
+ str r1, [r0, #0x10]
+ bx lr
+
+ thumb_func_start FUN_02055370
+FUN_02055370: ; 0x02055370
+ ldr r0, [r0, #0x10]
+ bx lr
+
+ thumb_func_start FUN_02055374
+FUN_02055374: ; 0x02055374
+ str r1, [r0, #0x14]
+ bx lr
+
+ thumb_func_start FUN_02055378
+FUN_02055378: ; 0x02055378
+ ldr r0, [r0, #0x14]
+ bx lr
+
+ thumb_func_start FUN_0205537C
+FUN_0205537C: ; 0x0205537C
+ push {r4, lr}
+ add r4, r1, #0x0
+ bl FUN_020553A0
+ cmp r4, #0x1
+ bne _02055392
+ mov r1, #0x2
+ lsl r1, r1, #0x8
+ bl FUN_02058418
+ pop {r4, pc}
+_02055392:
+ mov r1, #0x2
+ lsl r1, r1, #0x8
+ bl FUN_02058410
+ pop {r4, pc}
+
+ thumb_func_start FUN_0205539C
+FUN_0205539C: ; 0x0205539C
+ str r1, [r0, #0x2c]
+ bx lr
+
+ thumb_func_start FUN_020553A0
+FUN_020553A0: ; 0x020553A0
+ ldr r0, [r0, #0x2c]
+ bx lr
+
+ thumb_func_start FUN_020553A4
+FUN_020553A4: ; 0x020553A4
+ ldr r0, [r0, #0x2c]
+ bx lr
+
+ thumb_func_start FUN_020553A8
+FUN_020553A8: ; 0x020553A8
+ push {r3-r5, lr}
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ cmp r4, #0x3
+ blt _020553B6
+ bl ErrorHandling
+_020553B6:
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ str r4, [r5, #0x18]
+ bl FUN_020554DC
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_020553C4
+FUN_020553C4: ; 0x020553C4
+ push {r4, lr}
+ add r4, r0, #0x0
+ bne _020553CE
+ bl ErrorHandling
+_020553CE:
+ ldr r0, [r4, #0x18]
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_020553D4
+FUN_020553D4: ; 0x020553D4
+ ldr r2, [r0, #0x4]
+ orr r1, r2
+ str r1, [r0, #0x4]
+ bx lr
+
+ thumb_func_start FUN_020553DC
+FUN_020553DC: ; 0x020553DC
+ str r1, [r0, #0x4]
+ bx lr
+
+ thumb_func_start FUN_020553E0
+FUN_020553E0: ; 0x020553E0
+ ldr r0, [r0, #0x4]
+ bx lr
+
+ thumb_func_start FUN_020553E4
+FUN_020553E4: ; 0x020553E4
+ str r1, [r0, #0x1c]
+ bx lr
+
+ thumb_func_start FUN_020553E8
+FUN_020553E8: ; 0x020553E8
+ ldr r0, [r0, #0x1c]
+ bx lr
+
+ thumb_func_start FUN_020553EC
+FUN_020553EC: ; 0x020553EC
+ ldr r2, [r0, #0x0]
+ orr r1, r2
+ str r1, [r0, #0x0]
+ bx lr
+
+ thumb_func_start FUN_020553F4
+FUN_020553F4: ; 0x020553F4
+ ldr r2, [r0, #0x0]
+ mvn r1, r1
+ and r1, r2
+ str r1, [r0, #0x0]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02055400
+FUN_02055400: ; 0x02055400
+ ldr r0, [r0, #0x0]
+ and r0, r1
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02055408
+FUN_02055408: ; 0x02055408
+ ldr r0, [r0, #0x20]
+ bx lr
+
+ thumb_func_start FUN_0205540C
+FUN_0205540C: ; 0x0205540C
+ str r1, [r0, #0x20]
+ bx lr
+
+ thumb_func_start FUN_02055410
+FUN_02055410: ; 0x02055410
+ ldr r3, _02055418 ; =FUN_020556F4
+ mov r1, #0x0
+ str r1, [r0, #0x20]
+ bx r3
+ .balign 4
+_02055418: .word FUN_020556F4
+
+ thumb_func_start FUN_0205541C
+FUN_0205541C: ; 0x0205541C
+ ldr r3, [r0, #0x20]
+ add r1, r3, r1
+ str r1, [r0, #0x20]
+ cmp r1, r2
+ ble _02055428
+ str r2, [r0, #0x20]
+_02055428:
+ ldr r0, [r0, #0x20]
+ bx lr
+
+ thumb_func_start FUN_0205542C
+FUN_0205542C: ; 0x0205542C
+ str r1, [r0, #0x24]
+ bx lr
+
+ thumb_func_start FUN_02055430
+FUN_02055430: ; 0x02055430
+ ldr r0, [r0, #0x24]
+ bx lr
+
+ thumb_func_start FUN_02055434
+FUN_02055434: ; 0x02055434
+ str r1, [r0, #0x28]
+ bx lr
+
+ thumb_func_start FUN_02055438
+FUN_02055438: ; 0x02055438
+ ldr r0, [r0, #0x28]
+ bx lr
+
+ thumb_func_start FUN_0205543C
+FUN_0205543C: ; 0x0205543C
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r2, #0x0
+ bl FUN_0205542C
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_02055434
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_02055450
+FUN_02055450: ; 0x02055450
+ str r1, [r0, #0x30]
+ bx lr
+
+ thumb_func_start FUN_02055454
+FUN_02055454: ; 0x02055454
+ ldr r0, [r0, #0x30]
+ bx lr
+
+ thumb_func_start FUN_02055458
+FUN_02055458: ; 0x02055458
+ str r1, [r0, #0x34]
+ bx lr
+
+ thumb_func_start FUN_0205545C
+FUN_0205545C: ; 0x0205545C
+ ldr r0, [r0, #0x34]
+ bx lr
+
+ thumb_func_start FUN_02055460
+FUN_02055460: ; 0x02055460
+ str r1, [r0, #0x8]
+ bx lr
+
+ thumb_func_start FUN_02055464
+FUN_02055464: ; 0x02055464
+ ldr r0, [r0, #0x8]
+ bx lr
+
+ thumb_func_start FUN_02055468
+FUN_02055468: ; 0x02055468
+ mov r1, #0x0
+ strh r1, [r0, #0x0]
+ strh r1, [r0, #0x2]
+ str r1, [r0, #0x4]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02055474
+FUN_02055474: ; 0x02055474
+ cmp r0, #0x0
+ beq _02055482
+ ldrh r0, [r0, #0x2]
+ cmp r0, #0x1
+ bne _02055482
+ mov r0, #0x1
+ bx lr
+_02055482:
+ mov r0, #0x0
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02055488
+FUN_02055488: ; 0x02055488
+ cmp r1, #0x1
+ bne _02055492
+ mov r1, #0x1
+ strh r1, [r0, #0x2]
+ bx lr
+_02055492:
+ mov r1, #0x0
+ strh r1, [r0, #0x2]
+ bx lr
+
+ thumb_func_start FUN_02055498
+FUN_02055498: ; 0x02055498
+ cmp r0, #0x0
+ bne _020554A0
+ mov r0, #0x0
+ bx lr
+_020554A0:
+ ldrh r0, [r0, #0x0]
+ bx lr
+
+ thumb_func_start FUN_020554A4
+FUN_020554A4: ; 0x020554A4
+ cmp r0, #0x0
+ beq _020554AA
+ strh r1, [r0, #0x0]
+_020554AA:
+ bx lr
+
+ thumb_func_start FUN_020554AC
+FUN_020554AC: ; 0x020554AC
+ push {r4, lr}
+ add r4, r1, #0x0
+ bl FUN_0205545C
+ add r1, r4, #0x0
+ bl FUN_020554A4
+ pop {r4, pc}
+
+ thumb_func_start FUN_020554BC
+FUN_020554BC: ; 0x020554BC
+ push {r3, lr}
+ bl FUN_0205545C
+ bl FUN_02055498
+ pop {r3, pc}
+
+ thumb_func_start FUN_020554C8
+FUN_020554C8: ; 0x020554C8
+ cmp r0, #0x0
+ beq _020554D0
+ ldr r0, [r0, #0x4]
+ bx lr
+_020554D0:
+ mov r0, #0x0
+ bx lr
+
+ thumb_func_start FUN_020554D4
+FUN_020554D4: ; 0x020554D4
+ cmp r0, #0x0
+ beq _020554DA
+ str r1, [r0, #0x4]
+_020554DA:
+ bx lr
+
+ thumb_func_start FUN_020554DC
+FUN_020554DC: ; 0x020554DC
+ push {r4, lr}
+ add r4, r1, #0x0
+ bl FUN_0205545C
+ add r1, r4, #0x0
+ bl FUN_020554D4
+ pop {r4, pc}
+
+ thumb_func_start FUN_020554EC
+FUN_020554EC: ; 0x020554EC
+ push {r4-r6, lr}
+ add r4, r1, #0x0
+ add r6, r2, #0x0
+ add r5, r0, #0x0
+ bl FUN_020553A0
+ add r1, r4, #0x0
+ add r2, r6, #0x0
+ bl FUN_02058DBC
+ add r0, r5, #0x0
+ mov r1, #0x0
+ bl FUN_0205536C
+ add r0, r5, #0x0
+ mov r1, #0x0
+ bl FUN_02055374
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_02055514
+FUN_02055514: ; 0x02055514
+ push {r3-r7, lr}
+ add r6, r1, #0x0
+ add r7, r2, #0x0
+ add r5, r0, #0x0
+ add r4, r3, #0x0
+ bl FUN_020553A0
+ add r1, r6, #0x0
+ mov r2, #0x0
+ add r3, r7, #0x0
+ str r4, [sp, #0x0]
+ bl FUN_02058E28
+ add r0, r5, #0x0
+ mov r1, #0x0
+ bl FUN_0205536C
+ add r0, r5, #0x0
+ mov r1, #0x0
+ bl FUN_02055374
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_02055540
+FUN_02055540: ; 0x02055540
+ push {r4-r5, lr}
+ sub sp, #0xc
+ add r5, r1, #0x0
+ bl FUN_020553A0
+ add r4, r0, #0x0
+ add r1, sp, #0x0
+ bl FUN_02058B5C
+ add r0, r4, #0x0
+ add r1, sp, #0x0
+ str r5, [sp, #0x4]
+ bl FUN_02058B6C
+ add sp, #0xc
+ pop {r4-r5, pc}
+
+ thumb_func_start FUN_02055560
+FUN_02055560: ; 0x02055560
+ push {r4, lr}
+ add r4, r1, #0x0
+ bl FUN_020553A0
+ cmp r4, #0x1
+ bne _02055574
+ mov r1, #0x0
+ bl FUN_02058960
+ pop {r4, pc}
+_02055574:
+ mov r1, #0x1
+ bl FUN_02058960
+ pop {r4, pc}
+
+ thumb_func_start FUN_0205557C
+FUN_0205557C: ; 0x0205557C
+ push {r3-r5, lr}
+ add r5, r1, #0x0
+ bl FUN_020553A0
+ add r4, r0, #0x0
+ cmp r5, #0x1
+ bne _02055598
+ mov r1, #0x0
+ bl FUN_02058960
+ add r0, r4, #0x0
+ bl FUN_02059D1C
+ pop {r3-r5, pc}
+_02055598:
+ mov r1, #0x1
+ bl FUN_02058960
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_020555A0
+FUN_020555A0: ; 0x020555A0
+ push {r3, lr}
+ cmp r1, #0x0
+ bne _020555F2
+ cmp r0, #0x9
+ bhi _0205563E
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_020555B6: ; jump table (using 16-bit offset)
+ .short _020555CA - _020555B6 - 2; case 0
+ .short _020555CE - _020555B6 - 2; case 1
+ .short _020555D2 - _020555B6 - 2; case 2
+ .short _020555D6 - _020555B6 - 2; case 3
+ .short _020555DA - _020555B6 - 2; case 4
+ .short _020555DE - _020555B6 - 2; case 5
+ .short _020555E2 - _020555B6 - 2; case 6
+ .short _020555E6 - _020555B6 - 2; case 7
+ .short _020555EA - _020555B6 - 2; case 8
+ .short _020555EE - _020555B6 - 2; case 9
+_020555CA:
+ mov r0, #0x0
+ pop {r3, pc}
+_020555CE:
+ mov r0, #0x15
+ pop {r3, pc}
+_020555D2:
+ mov r0, #0xb2
+ pop {r3, pc}
+_020555D6:
+ mov r0, #0xb0
+ pop {r3, pc}
+_020555DA:
+ mov r0, #0xb4
+ pop {r3, pc}
+_020555DE:
+ mov r0, #0xba
+ pop {r3, pc}
+_020555E2:
+ mov r0, #0xbc
+ pop {r3, pc}
+_020555E6:
+ mov r0, #0xc4
+ pop {r3, pc}
+_020555EA:
+ mov r0, #0xc6
+ pop {r3, pc}
+_020555EE:
+ mov r0, #0xc8
+ pop {r3, pc}
+_020555F2:
+ cmp r0, #0x9
+ bhi _0205563E
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02055602: ; jump table (using 16-bit offset)
+ .short _02055616 - _02055602 - 2; case 0
+ .short _0205561A - _02055602 - 2; case 1
+ .short _0205561E - _02055602 - 2; case 2
+ .short _02055622 - _02055602 - 2; case 3
+ .short _02055626 - _02055602 - 2; case 4
+ .short _0205562A - _02055602 - 2; case 5
+ .short _0205562E - _02055602 - 2; case 6
+ .short _02055632 - _02055602 - 2; case 7
+ .short _02055636 - _02055602 - 2; case 8
+ .short _0205563A - _02055602 - 2; case 9
+_02055616:
+ mov r0, #0x61
+ pop {r3, pc}
+_0205561A:
+ mov r0, #0x62
+ pop {r3, pc}
+_0205561E:
+ mov r0, #0xb3
+ pop {r3, pc}
+_02055622:
+ mov r0, #0xb1
+ pop {r3, pc}
+_02055626:
+ mov r0, #0xb5
+ pop {r3, pc}
+_0205562A:
+ mov r0, #0xbb
+ pop {r3, pc}
+_0205562E:
+ mov r0, #0xbd
+ pop {r3, pc}
+_02055632:
+ mov r0, #0xc5
+ pop {r3, pc}
+_02055636:
+ mov r0, #0xc7
+ pop {r3, pc}
+_0205563A:
+ mov r0, #0xc9
+ pop {r3, pc}
+_0205563E:
+ bl ErrorHandling
+ mov r0, #0x0
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_02055648
+FUN_02055648: ; 0x02055648
+ push {r3, lr}
+ cmp r0, #0x9
+ bhi _02055690
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0205565A: ; jump table (using 16-bit offset)
+ .short _0205566E - _0205565A - 2; case 0
+ .short _02055672 - _0205565A - 2; case 1
+ .short _02055676 - _0205565A - 2; case 2
+ .short _02055690 - _0205565A - 2; case 3
+ .short _0205567A - _0205565A - 2; case 4
+ .short _02055690 - _0205565A - 2; case 5
+ .short _0205567E - _0205565A - 2; case 6
+ .short _02055682 - _0205565A - 2; case 7
+ .short _02055686 - _0205565A - 2; case 8
+ .short _0205568A - _0205565A - 2; case 9
+_0205566E:
+ mov r0, #0x1
+ pop {r3, pc}
+_02055672:
+ mov r0, #0x2
+ pop {r3, pc}
+_02055676:
+ mov r0, #0x4
+ pop {r3, pc}
+_0205567A:
+ mov r0, #0x10
+ pop {r3, pc}
+_0205567E:
+ mov r0, #0x20
+ pop {r3, pc}
+_02055682:
+ mov r0, #0x40
+ pop {r3, pc}
+_02055686:
+ mov r0, #0x80
+ pop {r3, pc}
+_0205568A:
+ mov r0, #0x1
+ lsl r0, r0, #0x8
+ pop {r3, pc}
+_02055690:
+ bl ErrorHandling
+ mov r0, #0x1
+ pop {r3, pc}
+
+ thumb_func_start FUN_02055698
+FUN_02055698: ; 0x02055698
+ ldr r0, [r0, #0x38]
+ bx lr
+
+ thumb_func_start FUN_0205569C
+FUN_0205569C: ; 0x0205569C
+ push {r3, lr}
+ cmp r1, #0x1
+ bne _020556AA
+ mov r1, #0x1
+ bl FUN_020553EC
+ pop {r3, pc}
+_020556AA:
+ mov r1, #0x1
+ bl FUN_020553F4
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_020556B4
+FUN_020556B4: ; 0x020556B4
+ push {r3, lr}
+ mov r1, #0x1
+ bl FUN_02055400
+ cmp r0, #0x0
+ beq _020556C4
+ mov r0, #0x1
+ pop {r3, pc}
+_020556C4:
+ mov r0, #0x0
+ pop {r3, pc}
+
+ thumb_func_start FUN_020556C8
+FUN_020556C8: ; 0x020556C8
+ push {r3, lr}
+ cmp r1, #0x1
+ bne _020556D6
+ mov r1, #0x2
+ bl FUN_020553EC
+ pop {r3, pc}
+_020556D6:
+ mov r1, #0x2
+ bl FUN_020553F4
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_020556E0
+FUN_020556E0: ; 0x020556E0
+ push {r3, lr}
+ mov r1, #0x2
+ bl FUN_02055400
+ cmp r0, #0x0
+ beq _020556F0
+ mov r0, #0x1
+ pop {r3, pc}
+_020556F0:
+ mov r0, #0x0
+ pop {r3, pc}
+
+ thumb_func_start FUN_020556F4
+FUN_020556F4: ; 0x020556F4
+ push {r3, lr}
+ cmp r1, #0x1
+ bne _02055702
+ mov r1, #0x4
+ bl FUN_020553EC
+ pop {r3, pc}
+_02055702:
+ mov r1, #0x4
+ bl FUN_020553F4
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_0205570C
+FUN_0205570C: ; 0x0205570C
+ push {r3, lr}
+ mov r1, #0x4
+ bl FUN_02055400
+ cmp r0, #0x0
+ beq _0205571C
+ mov r0, #0x1
+ pop {r3, pc}
+_0205571C:
+ mov r0, #0x0
+ pop {r3, pc}
+
+ thumb_func_start FUN_02055720
+FUN_02055720: ; 0x02055720
+ push {r3, lr}
+ cmp r1, #0x1
+ bne _0205572E
+ mov r1, #0x8
+ bl FUN_020553EC
+ pop {r3, pc}
+_0205572E:
+ mov r1, #0x8
+ bl FUN_020553F4
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_02055738
+FUN_02055738: ; 0x02055738
+ push {r3, lr}
+ mov r1, #0x8
+ bl FUN_02055400
+ cmp r0, #0x0
+ beq _02055748
+ mov r0, #0x1
+ pop {r3, pc}
+_02055748:
+ mov r0, #0x0
+ pop {r3, pc}
+
+ thumb_func_start FUN_0205574C
+FUN_0205574C: ; 0x0205574C
+ push {r3, lr}
+ cmp r1, #0x1
+ bne _0205575A
+ mov r1, #0x10
+ bl FUN_020553EC
+ pop {r3, pc}
+_0205575A:
+ mov r1, #0x10
+ bl FUN_020553F4
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_02055764
+FUN_02055764: ; 0x02055764
+ push {r3, lr}
+ mov r1, #0x10
+ bl FUN_02055400
+ cmp r0, #0x0
+ beq _02055774
+ mov r0, #0x1
+ pop {r3, pc}
+_02055774:
+ mov r0, #0x0
+ pop {r3, pc}
+
+ thumb_func_start FUN_02055778
+FUN_02055778: ; 0x02055778
+ push {r3, lr}
+ cmp r1, #0x1
+ bne _02055786
+ mov r1, #0x20
+ bl FUN_020553EC
+ pop {r3, pc}
+_02055786:
+ mov r1, #0x20
+ bl FUN_020553F4
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_02055790
+FUN_02055790: ; 0x02055790
+ push {r3, lr}
+ mov r1, #0x20
+ bl FUN_02055400
+ cmp r0, #0x0
+ beq _020557A0
+ mov r0, #0x1
+ pop {r3, pc}
+_020557A0:
+ mov r0, #0x0
+ pop {r3, pc}
+
+ thumb_func_start FUN_020557A4
+FUN_020557A4: ; 0x020557A4
+ ldr r3, _020557AC ; =FUN_020553EC
+ mov r1, #0x40
+ bx r3
+ nop
+_020557AC: .word FUN_020553EC
+
+ thumb_func_start FUN_020557B0
+FUN_020557B0: ; 0x020557B0
+ ldr r3, _020557B8 ; =FUN_020553F4
+ mov r1, #0x40
+ bx r3
+ nop
+_020557B8: .word FUN_020553F4
+
+ thumb_func_start FUN_020557BC
+FUN_020557BC: ; 0x020557BC
+ push {r3, lr}
+ mov r1, #0x40
+ bl FUN_02055400
+ cmp r0, #0x0
+ beq _020557CC
+ mov r0, #0x1
+ pop {r3, pc}
+_020557CC:
+ mov r0, #0x0
+ pop {r3, pc}
+
+ thumb_func_start FUN_020557D0
+FUN_020557D0: ; 0x020557D0
+ push {r3, lr}
+ cmp r1, #0x1
+ bne _020557DE
+ mov r1, #0x80
+ bl FUN_020553EC
+ pop {r3, pc}
+_020557DE:
+ mov r1, #0x80
+ bl FUN_020553F4
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_020557E8
+FUN_020557E8: ; 0x020557E8
+ ldr r3, _020557F0 ; =FUN_02055400
+ mov r1, #0x80
+ bx r3
+ nop
+_020557F0: .word FUN_02055400
+
+ thumb_func_start FUN_020557F4
+FUN_020557F4: ; 0x020557F4
+ push {r3-r7, lr}
+ add r7, r1, #0x0
+ mov r1, #0x0
+ add r4, r2, #0x0
+ mvn r1, r1
+ add r5, r0, #0x0
+ add r6, r3, #0x0
+ cmp r4, r1
+ bne _02055812
+ add r2, sp, #0x8
+ ldrh r2, [r2, #0x10]
+ add r1, r6, #0x0
+ bl FUN_02057060
+ add r4, r0, #0x0
+_02055812:
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ bl FUN_020563F0
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_020558A0
+ cmp r0, #0x0
+ beq _02055896
+ add r3, sp, #0x8
+ ldrh r3, [r3, #0x10]
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ add r2, r6, #0x0
+ bl FUN_02055900
+ add r0, r5, #0x0
+ bl FUN_021E5FE0
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_02055BD4
+ cmp r0, #0x1
+ bne _0205584E
+ add r0, r5, #0x0
+ bl FUN_021E7138
+ pop {r3-r7, pc}
+_0205584E:
+ add r0, r5, #0x0
+ bl FUN_020553C4
+ cmp r0, #0x0
+ bne _02055878
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_020561D0
+ cmp r0, #0x0
+ beq _0205586C
+ add r0, r5, #0x0
+ bl FUN_021E7138
+ b _02055878
+_0205586C:
+ ldr r0, [sp, #0x1c]
+ cmp r0, #0x1
+ bne _02055878
+ add r0, r5, #0x0
+ bl FUN_021E70F0
+_02055878:
+ add r0, sp, #0x8
+ ldrh r0, [r0, #0x10]
+ add r1, r7, #0x0
+ add r2, r4, #0x0
+ str r0, [sp, #0x0]
+ add r0, r5, #0x0
+ add r3, r6, #0x0
+ bl FUN_02056110
+ add r0, r5, #0x0
+ bl FUN_02055928
+ add r0, r5, #0x0
+ bl FUN_02055968
+_02055896:
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_02055898
+FUN_02055898: ; 0x02055898
+ ldr r3, _0205589C ; =FUN_020558A0
+ bx r3
+ .balign 4
+_0205589C: .word FUN_020558A0
+
+ thumb_func_start FUN_020558A0
+FUN_020558A0: ; 0x020558A0
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ bl FUN_020553A0
+ add r6, r0, #0x0
+ bl FUN_0205AD98
+ cmp r0, #0x1
+ bne _020558B8
+ mov r0, #0x1
+ pop {r4-r6, pc}
+_020558B8:
+ mov r0, #0x0
+ mvn r0, r0
+ cmp r4, r0
+ bne _020558C4
+ mov r0, #0x0
+ pop {r4-r6, pc}
+_020558C4:
+ add r0, r6, #0x0
+ bl FUN_020586F0
+ bl FUN_020570F0
+ cmp r0, #0x1
+ bne _020558FA
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ add r2, r4, #0x0
+ bl FUN_02056B74
+ cmp r0, #0x0
+ bne _020558E4
+ mov r0, #0x1
+ pop {r4-r6, pc}
+_020558E4:
+ cmp r0, #0x20
+ bne _020558F6
+ add r0, r5, #0x0
+ bl FUN_020553C4
+ cmp r0, #0x2
+ bne _020558F6
+ mov r0, #0x1
+ pop {r4-r6, pc}
+_020558F6:
+ mov r0, #0x0
+ pop {r4-r6, pc}
+_020558FA:
+ mov r0, #0x0
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_02055900
+FUN_02055900: ; 0x02055900
+ push {r4-r6, lr}
+ add r6, r3, #0x0
+ add r5, r0, #0x0
+ add r0, r6, #0x0
+ bl FUN_02057028
+ add r4, r0, #0x0
+ add r0, r6, #0x0
+ bl FUN_02057044
+ add r2, r0, #0x0
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_0205543C
+ add r0, r5, #0x0
+ bl FUN_020557B0
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_02055928
+FUN_02055928: ; 0x02055928
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl FUN_020557BC
+ cmp r0, #0x1
+ bne _02055964
+ add r0, r4, #0x0
+ bl FUN_02055370
+ cmp r0, #0x1
+ bne _02055964
+ add r0, r4, #0x0
+ mov r1, #0x0
+ bl FUN_020556C8
+ add r0, r4, #0x0
+ bl FUN_02055764
+ cmp r0, #0x1
+ bne _02055964
+ add r0, r4, #0x0
+ mov r1, #0x0
+ bl FUN_0205574C
+ add r0, r4, #0x0
+ bl FUN_020553A0
+ mov r1, #0x0
+ bl FUN_02058A18
+_02055964:
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02055968
+FUN_02055968: ; 0x02055968
+ push {r4-r6, lr}
+ add r4, r0, #0x0
+ bl FUN_02055370
+ cmp r0, #0x1
+ bne _02055A20
+ add r0, r4, #0x0
+ bl FUN_020553A0
+ add r4, r0, #0x0
+ bl FUN_02058720
+ lsl r0, r0, #0x18
+ lsr r5, r0, #0x18
+ add r0, r4, #0x0
+ bl FUN_020586F0
+ bl FUN_0205B020
+ add r1, r0, #0x0
+ mov r0, #0x0
+ mvn r0, r0
+ cmp r1, r0
+ bne _0205599C
+ add r6, r5, #0x0
+ b _020559A6
+_0205599C:
+ add r0, r4, #0x0
+ bl FUN_02059C90
+ lsl r0, r0, #0x18
+ lsr r6, r0, #0x18
+_020559A6:
+ add r0, r4, #0x0
+ add r1, r5, #0x0
+ bl FUN_02059B2C
+ cmp r0, #0x1
+ bne _020559B8
+ ldr r0, _02055A24 ; =0x0000061F
+ bl FUN_020054C8
+_020559B8:
+ add r0, r5, #0x0
+ bl FUN_02054AF0
+ cmp r0, #0x1
+ bne _020559C8
+ ldr r0, _02055A28 ; =0x00000641
+ bl FUN_020054C8
+_020559C8:
+ add r0, r5, #0x0
+ bl FUN_0205483C
+ cmp r0, #0x1
+ bne _020559D8
+ ldr r0, _02055A2C ; =0x00000642
+ bl FUN_020054C8
+_020559D8:
+ add r0, r5, #0x0
+ bl FUN_02054830
+ add r0, r5, #0x0
+ bl FUN_02054974
+ cmp r0, #0x1
+ bne _020559F8
+ add r0, r5, #0x0
+ bl FUN_02054984
+ cmp r0, #0x1
+ beq _020559F8
+ ldr r0, _02055A30 ; =0x00000655
+ bl FUN_020054C8
+_020559F8:
+ add r0, r4, #0x0
+ bl FUN_020586F0
+ bl FUN_020570F0
+ cmp r0, #0x0
+ bne _02055A20
+ add r0, r5, #0x0
+ bl FUN_02054798
+ cmp r0, #0x1
+ beq _02055A1A
+ add r0, r6, #0x0
+ bl FUN_02054798
+ cmp r0, #0x1
+ bne _02055A20
+_02055A1A:
+ ldr r0, _02055A34 ; =0x00000653
+ bl FUN_020054C8
+_02055A20:
+ pop {r4-r6, pc}
+ nop
+_02055A24: .word 0x0000061F
+_02055A28: .word 0x00000641
+_02055A2C: .word 0x00000642
+_02055A30: .word 0x00000655
+_02055A34: .word 0x00000653
+
+ thumb_func_start FUN_02055A38
+FUN_02055A38: ; 0x02055A38
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ bl FUN_02055370
+ add r6, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_02055378
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_020553A0
+ add r7, r0, #0x0
+ add r0, r5, #0x0
+ mov r1, #0x0
+ bl FUN_02055374
+ mov r1, #0x0
+ add r0, r5, #0x0
+ mvn r1, r1
+ bl FUN_02055BEC
+ cmp r0, #0x0
+ beq _02055A76
+ cmp r0, #0x5
+ beq _02055A76
+ add r0, r5, #0x0
+ mov r1, #0x2
+ bl FUN_02055374
+ pop {r3-r7, pc}
+_02055A76:
+ add r0, r7, #0x0
+ bl FUN_0205AD98
+ cmp r0, #0x0
+ bne _02055AC2
+ cmp r6, #0x0
+ beq _02055B10
+ cmp r6, #0x1
+ beq _02055A8E
+ cmp r6, #0x2
+ beq _02055AB8
+ pop {r3-r7, pc}
+_02055A8E:
+ add r0, r7, #0x0
+ bl FUN_020586F0
+ bl FUN_020570F0
+ cmp r0, #0x1
+ beq _02055B10
+ cmp r4, #0x0
+ beq _02055AA4
+ cmp r4, #0x3
+ bne _02055AAE
+_02055AA4:
+ add r0, r5, #0x0
+ mov r1, #0x1
+ bl FUN_02055374
+ pop {r3-r7, pc}
+_02055AAE:
+ add r0, r5, #0x0
+ mov r1, #0x2
+ bl FUN_02055374
+ pop {r3-r7, pc}
+_02055AB8:
+ add r0, r5, #0x0
+ mov r1, #0x2
+ bl FUN_02055374
+ pop {r3-r7, pc}
+_02055AC2:
+ add r0, r7, #0x0
+ bl FUN_0205AE28
+ cmp r0, #0x1
+ bne _02055B10
+ cmp r6, #0x0
+ beq _02055B10
+ cmp r6, #0x1
+ beq _02055ADA
+ cmp r6, #0x2
+ beq _02055AF6
+ pop {r3-r7, pc}
+_02055ADA:
+ cmp r4, #0x0
+ beq _02055B10
+ cmp r4, #0x3
+ bne _02055AEC
+ add r0, r5, #0x0
+ mov r1, #0x0
+ bl FUN_02055374
+ pop {r3-r7, pc}
+_02055AEC:
+ add r0, r5, #0x0
+ mov r1, #0x3
+ bl FUN_02055374
+ pop {r3-r7, pc}
+_02055AF6:
+ cmp r4, #0x0
+ beq _02055B10
+ cmp r4, #0x3
+ bne _02055B08
+ add r0, r5, #0x0
+ mov r1, #0x0
+ bl FUN_02055374
+ pop {r3-r7, pc}
+_02055B08:
+ add r0, r5, #0x0
+ mov r1, #0x3
+ bl FUN_02055374
+_02055B10:
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_02055B14
+FUN_02055B14: ; 0x02055B14
+ push {r4, lr}
+ add r4, r0, #0x0
+ mov r1, #0x0
+ bl FUN_0205536C
+ add r0, r4, #0x0
+ mov r1, #0x0
+ bl FUN_02055374
+ add r0, r4, #0x0
+ bl FUN_02055410
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02055B30
+FUN_02055B30: ; 0x02055B30
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ bl FUN_02055370
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_02055378
+ cmp r4, #0x0
+ bne _02055B48
+ mov r0, #0x1
+ pop {r3-r5, pc}
+_02055B48:
+ cmp r4, #0x2
+ bne _02055B50
+ mov r0, #0x1
+ pop {r3-r5, pc}
+_02055B50:
+ cmp r4, #0x1
+ bne _02055B86
+ cmp r0, #0x0
+ beq _02055B5C
+ cmp r0, #0x3
+ bne _02055B60
+_02055B5C:
+ mov r0, #0x1
+ pop {r3-r5, pc}
+_02055B60:
+ add r0, r5, #0x0
+ bl FUN_020553A0
+ add r4, r0, #0x0
+ bl FUN_0205AD98
+ cmp r0, #0x1
+ bne _02055B74
+ mov r0, #0x1
+ pop {r3-r5, pc}
+_02055B74:
+ add r0, r4, #0x0
+ bl FUN_020586F0
+ bl FUN_020570F0
+ cmp r0, #0x1
+ bne _02055B86
+ mov r0, #0x1
+ pop {r3-r5, pc}
+_02055B86:
+ mov r0, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_02055B8C
+FUN_02055B8C: ; 0x02055B8C
+ push {r3-r5, lr}
+ add r5, r1, #0x0
+ add r4, r0, #0x0
+ mov r1, #0x0
+ bl FUN_0205536C
+ add r0, r4, #0x0
+ mov r1, #0x0
+ bl FUN_02055374
+ add r0, r4, #0x0
+ bl FUN_020553A0
+ add r4, r0, #0x0
+ add r1, r5, #0x0
+ bl FUN_020584AC
+ add r0, r4, #0x0
+ mov r1, #0x0
+ bl FUN_02058544
+ add r0, r4, #0x0
+ bl FUN_02059C60
+ add r0, r4, #0x0
+ bl FUN_0205AE80
+ add r0, r5, #0x0
+ mov r1, #0x0
+ bl FUN_0205AFDC
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_0205ADDC
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_02055BD4
+FUN_02055BD4: ; 0x02055BD4
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ bl FUN_02055BEC
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r2, r4, #0x0
+ bl FUN_02055C4C
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_02055BEC
+FUN_02055BEC: ; 0x02055BEC
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ add r6, r1, #0x0
+ mov r4, #0x0
+ bl FUN_020553A0
+ bl FUN_02058720
+ add r7, r0, #0x0
+ add r0, r5, #0x0
+ add r1, r7, #0x0
+ add r2, r6, #0x0
+ bl FUN_0205733C
+ cmp r0, #0x1
+ bne _02055C10
+ mov r0, #0x5
+ pop {r3-r7, pc}
+_02055C10:
+ add r0, r5, #0x0
+ bl FUN_020556E0
+ cmp r0, #0x1
+ bne _02055C1E
+ add r0, r4, #0x0
+ pop {r3-r7, pc}
+_02055C1E:
+ lsl r0, r7, #0x18
+ ldr r5, _02055C44 ; =0x020F5D34
+ lsr r6, r0, #0x18
+_02055C24:
+ ldr r1, [r5, #0x0]
+ add r0, r6, #0x0
+ blx r1
+ cmp r0, #0x1
+ bne _02055C36
+ ldr r0, _02055C48 ; =0x020F5D38
+ lsl r1, r4, #0x3
+ ldr r0, [r0, r1]
+ pop {r3-r7, pc}
+_02055C36:
+ add r5, #0x8
+ ldr r0, [r5, #0x0]
+ add r4, r4, #0x1
+ cmp r0, #0x0
+ bne _02055C24
+ mov r0, #0x0
+ pop {r3-r7, pc}
+ .balign 4
+_02055C44: .word 0x020F5D34
+_02055C48: .word 0x020F5D38
+
+ thumb_func_start FUN_02055C4C
+FUN_02055C4C: ; 0x02055C4C
+ push {r3, lr}
+ add r3, r1, #0x0
+ add r1, r2, #0x0
+ ldr r2, _02055C68 ; =0x020F5D1C
+ lsl r3, r3, #0x2
+ ldr r2, [r2, r3]
+ blx r2
+ cmp r0, #0x1
+ bne _02055C62
+ mov r0, #0x1
+ pop {r3, pc}
+_02055C62:
+ mov r0, #0x0
+ pop {r3, pc}
+ nop
+_02055C68: .word 0x020F5D1C
+
+ thumb_func_start FUN_02055C6C
+FUN_02055C6C: ; 0x02055C6C
+ push {r3, lr}
+ bl FUN_02055FFC
+ mov r0, #0x0
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_02055C78
+FUN_02055C78: ; 0x02055C78
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ bl FUN_020553A0
+ add r4, r0, #0x0
+ bl FUN_020584D4
+ add r6, r0, #0x0
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ bl FUN_02056040
+ add r7, r0, #0x0
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ add r2, r6, #0x0
+ bl FUN_02056B74
+ str r0, [sp, #0x0]
+ add r0, r5, #0x0
+ mov r1, #0x1
+ bl FUN_0205569C
+ ldr r0, [sp, #0x0]
+ cmp r0, #0x0
+ beq _02055D28
+ add r0, r5, #0x0
+ bl FUN_02055FFC
+ cmp r7, #0x1
+ beq _02055CCA
+ add r0, r5, #0x0
+ mov r1, #0x1
+ bl FUN_020556C8
+ add r0, r5, #0x0
+ mov r1, #0x0
+ bl FUN_0205536C
+ mov r0, #0x0
+ pop {r3-r7, pc}
+_02055CCA:
+ add r0, r6, #0x0
+ bl FUN_02059E74
+ add r6, r0, #0x0
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ add r2, r6, #0x0
+ bl FUN_02056B74
+ cmp r0, #0x0
+ beq _02055CE4
+ mov r0, #0x0
+ pop {r3-r7, pc}
+_02055CE4:
+ mov r1, #0x6
+ add r0, r4, #0x0
+ lsl r1, r1, #0x6
+ bl FUN_02058410
+ add r0, r6, #0x0
+ mov r1, #0x8
+ bl FUN_0205AFDC
+ add r2, r0, #0x0
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_02056B5C
+ add r0, r5, #0x0
+ mov r1, #0x1
+ bl FUN_020556C8
+ add r0, r5, #0x0
+ mov r1, #0x1
+ bl FUN_0205569C
+ mov r1, #0x0
+ mvn r1, r1
+ add r0, r5, #0x0
+ add r2, r1, #0x0
+ bl FUN_0205543C
+ add r0, r5, #0x0
+ mov r1, #0x1
+ bl FUN_0205536C
+ mov r0, #0x1
+ pop {r3-r7, pc}
+_02055D28:
+ add r0, r5, #0x0
+ add r1, r7, #0x0
+ bl FUN_020560A0
+ cmp r0, #0x0
+ bne _02055D8E
+ add r0, r5, #0x0
+ bl FUN_02055FFC
+ add r0, r6, #0x0
+ bl FUN_02059E74
+ add r6, r0, #0x0
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ add r2, r6, #0x0
+ bl FUN_02056B74
+ cmp r0, #0x0
+ beq _02055D54
+ mov r0, #0x0
+ pop {r3-r7, pc}
+_02055D54:
+ mov r1, #0x6
+ add r0, r4, #0x0
+ lsl r1, r1, #0x6
+ bl FUN_02058410
+ add r0, r6, #0x0
+ mov r1, #0x8
+ bl FUN_0205AFDC
+ add r2, r0, #0x0
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_02056B5C
+ add r0, r5, #0x0
+ mov r1, #0x1
+ bl FUN_020556C8
+ add r0, r5, #0x0
+ mov r1, #0x1
+ bl FUN_0205569C
+ mov r1, #0x0
+ mvn r1, r1
+ add r0, r5, #0x0
+ add r2, r1, #0x0
+ bl FUN_0205543C
+ b _02055DA0
+_02055D8E:
+ mov r1, #0x6
+ add r0, r4, #0x0
+ lsl r1, r1, #0x6
+ bl FUN_02058410
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ bl FUN_020560D0
+_02055DA0:
+ add r0, r5, #0x0
+ mov r1, #0x1
+ bl FUN_0205536C
+ mov r0, #0x1
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_02055DAC
+FUN_02055DAC: ; 0x02055DAC
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ add r7, r1, #0x0
+ bl FUN_020553A0
+ add r6, r0, #0x0
+ bl FUN_020584D4
+ add r4, r0, #0x0
+ ldr r0, _02055EF4 ; =0x00000654
+ bl FUN_020054C8
+ cmp r4, #0x0
+ bne _02055E62
+ add r0, r5, #0x0
+ bl FUN_020553C4
+ cmp r0, #0x1
+ bne _02055DFE
+ add r0, r5, #0x0
+ bl FUN_02055408
+ cmp r0, #0x3
+ blt _02055DFE
+ cmp r7, #0x0
+ bne _02055DFE
+ add r0, r4, #0x0
+ mov r1, #0x15
+ bl FUN_0205AFDC
+ add r2, r0, #0x0
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ bl FUN_02056B5C
+ add r0, r5, #0x0
+ mov r1, #0x1
+ bl FUN_0205536C
+ mov r0, #0x1
+ pop {r3-r7, pc}
+_02055DFE:
+ add r0, r4, #0x0
+ bl FUN_02059E74
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ add r2, r4, #0x0
+ bl FUN_02056B74
+ cmp r0, #0x0
+ beq _02055E18
+ mov r0, #0x0
+ pop {r3-r7, pc}
+_02055E18:
+ mov r1, #0x6
+ add r0, r6, #0x0
+ lsl r1, r1, #0x6
+ bl FUN_02058410
+ add r0, r4, #0x0
+ mov r1, #0x8
+ bl FUN_0205AFDC
+ add r2, r0, #0x0
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ bl FUN_02056B5C
+ add r0, r5, #0x0
+ bl FUN_02055410
+ add r0, r5, #0x0
+ mov r1, #0x1
+ bl FUN_0205569C
+ add r0, r5, #0x0
+ mov r1, #0x1
+ bl FUN_0205536C
+ add r0, r5, #0x0
+ mov r1, #0x1
+ bl FUN_02055778
+ mov r1, #0x0
+ mvn r1, r1
+ add r0, r5, #0x0
+ add r2, r1, #0x0
+ bl FUN_0205543C
+ mov r0, #0x1
+ pop {r3-r7, pc}
+_02055E62:
+ cmp r4, #0x1
+ bne _02055EF0
+ add r0, r5, #0x0
+ bl FUN_02055790
+ cmp r0, #0x0
+ bne _02055EAC
+ add r0, r4, #0x0
+ mov r1, #0x15
+ bl FUN_0205AFDC
+ add r2, r0, #0x0
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ bl FUN_02056B5C
+ add r0, r5, #0x0
+ mov r1, #0x1
+ bl FUN_0205536C
+ add r0, r5, #0x0
+ bl FUN_020554BC
+ cmp r0, #0x1
+ bne _02055E9C
+ add r0, r5, #0x0
+ mov r1, #0x3
+ bl FUN_0205540C
+_02055E9C:
+ mov r1, #0x0
+ mvn r1, r1
+ add r0, r5, #0x0
+ add r2, r1, #0x0
+ bl FUN_0205543C
+ mov r0, #0x1
+ pop {r3-r7, pc}
+_02055EAC:
+ mov r1, #0x6
+ add r0, r6, #0x0
+ lsl r1, r1, #0x6
+ bl FUN_02058410
+ add r0, r4, #0x0
+ mov r1, #0x8
+ bl FUN_0205AFDC
+ add r2, r0, #0x0
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ bl FUN_02056B5C
+ add r0, r5, #0x0
+ mov r1, #0x1
+ bl FUN_0205569C
+ add r0, r5, #0x0
+ mov r1, #0x1
+ bl FUN_0205536C
+ add r0, r5, #0x0
+ mov r1, #0x1
+ bl FUN_02055778
+ mov r1, #0x0
+ mvn r1, r1
+ add r0, r5, #0x0
+ add r2, r1, #0x0
+ bl FUN_0205543C
+ mov r0, #0x1
+ pop {r3-r7, pc}
+_02055EF0:
+ mov r0, #0x0
+ pop {r3-r7, pc}
+ .balign 4
+_02055EF4: .word 0x00000654
+
+ thumb_func_start FUN_02055EF8
+FUN_02055EF8: ; 0x02055EF8
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ bl FUN_020553A0
+ add r4, r0, #0x0
+ bl FUN_020584D4
+ add r0, r5, #0x0
+ bl FUN_020554BC
+ cmp r0, #0x1
+ bne _02055F22
+ ldr r0, _02055F40 ; =0x00000656
+ bl FUN_020054C8
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ mov r2, #0x5f
+ bl FUN_02056B5C
+ b _02055F2C
+_02055F22:
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ mov r2, #0x5d
+ bl FUN_02056B5C
+_02055F2C:
+ add r0, r5, #0x0
+ mov r1, #0x1
+ bl FUN_0205569C
+ add r0, r5, #0x0
+ mov r1, #0x1
+ bl FUN_020557D0
+ mov r0, #0x1
+ pop {r3-r5, pc}
+ .balign 4
+_02055F40: .word 0x00000656
+
+ thumb_func_start FUN_02055F44
+FUN_02055F44: ; 0x02055F44
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ bl FUN_020553A0
+ add r4, r0, #0x0
+ bl FUN_020584D4
+ add r0, r5, #0x0
+ bl FUN_020554BC
+ cmp r0, #0x1
+ bne _02055F6E
+ ldr r0, _02055F8C ; =0x00000656
+ bl FUN_020054C8
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ mov r2, #0x5e
+ bl FUN_02056B5C
+ b _02055F78
+_02055F6E:
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ mov r2, #0x5c
+ bl FUN_02056B5C
+_02055F78:
+ add r0, r5, #0x0
+ mov r1, #0x1
+ bl FUN_0205569C
+ add r0, r5, #0x0
+ mov r1, #0x1
+ bl FUN_020557D0
+ mov r0, #0x1
+ pop {r3-r5, pc}
+ .balign 4
+_02055F8C: .word 0x00000656
+
+ thumb_func_start FUN_02055F90
+FUN_02055F90: ; 0x02055F90
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ bl FUN_020553A0
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ mov r2, #0x1
+ bl FUN_02056B74
+ cmp r0, #0x0
+ bne _02055FCE
+ mov r0, #0x1
+ mov r1, #0x14
+ bl FUN_0205AFDC
+ add r2, r0, #0x0
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_02056B5C
+ add r0, r5, #0x0
+ mov r1, #0x1
+ bl FUN_0205536C
+ add r0, r5, #0x0
+ mov r1, #0x3
+ bl FUN_0205540C
+ mov r0, #0x1
+ pop {r3-r5, pc}
+_02055FCE:
+ mov r0, #0x1
+ add r1, r0, #0x0
+ bl FUN_0205AFDC
+ add r2, r0, #0x0
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_02056B5C
+ add r0, r5, #0x0
+ bl FUN_02055410
+ add r0, r5, #0x0
+ mov r1, #0x0
+ bl FUN_0205536C
+ add r0, r5, #0x0
+ mov r1, #0x0
+ bl FUN_020556F4
+ mov r0, #0x1
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_02055FFC
+FUN_02055FFC: ; 0x02055FFC
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl FUN_020556B4
+ cmp r0, #0x1
+ bne _0205603E
+ add r0, r4, #0x0
+ bl FUN_020553A0
+ mov r1, #0x6
+ lsl r1, r1, #0x6
+ bl FUN_02058418
+ add r0, r4, #0x0
+ bl FUN_020557E8
+ cmp r0, #0x0
+ bne _02056026
+ add r0, r4, #0x0
+ bl FUN_02055410
+_02056026:
+ add r0, r4, #0x0
+ mov r1, #0x0
+ bl FUN_0205569C
+ add r0, r4, #0x0
+ mov r1, #0x0
+ bl FUN_020557D0
+ add r0, r4, #0x0
+ mov r1, #0x0
+ bl FUN_02055778
+_0205603E:
+ pop {r4, pc}
+
+ thumb_func_start FUN_02056040
+FUN_02056040: ; 0x02056040
+ push {r4-r6, lr}
+ sub sp, #0x18
+ add r5, r1, #0x0
+ bl FUN_020553A0
+ add r4, r0, #0x0
+ bl FUN_02058738
+ add r6, r0, #0x0
+ add r0, r4, #0x0
+ add r1, sp, #0xc
+ bl FUN_02058B5C
+ add r4, sp, #0xc
+ add r3, sp, #0x0
+ ldmia r4!, {r0-r1}
+ add r2, r3, #0x0
+ stmia r3!, {r0-r1}
+ ldr r0, [r4, #0x0]
+ add r1, r2, #0x0
+ mov r2, #0x1
+ str r0, [r3, #0x0]
+ add r0, r5, #0x0
+ lsl r2, r2, #0xe
+ bl FUN_02059E28
+ add r0, r6, #0x0
+ add r1, sp, #0x0
+ bl FUN_02059E9C
+ cmp r0, #0x0
+ beq _02056088
+ ldr r1, [sp, #0x4]
+ ldr r0, [sp, #0x10]
+ cmp r0, r1
+ bne _0205608E
+_02056088:
+ add sp, #0x18
+ mov r0, #0x0
+ pop {r4-r6, pc}
+_0205608E:
+ cmp r0, r1
+ ble _02056098
+ add sp, #0x18
+ mov r0, #0x2
+ pop {r4-r6, pc}
+_02056098:
+ mov r0, #0x1
+ add sp, #0x18
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_020560A0
+FUN_020560A0: ; 0x020560A0
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ bl FUN_02055408
+ add r1, r0, #0x0
+ cmp r4, #0x1
+ bne _020560B8
+ sub r1, r1, #0x1
+ bpl _020560C4
+ mov r0, #0x0
+ pop {r3-r5, pc}
+_020560B8:
+ cmp r4, #0x2
+ bne _020560C4
+ add r1, r1, #0x1
+ cmp r1, #0x3
+ ble _020560C4
+ mov r1, #0x3
+_020560C4:
+ add r0, r5, #0x0
+ bl FUN_0205540C
+ mov r0, #0x1
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_020560D0
+FUN_020560D0: ; 0x020560D0
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ add r6, r1, #0x0
+ bl FUN_020553A0
+ add r7, r0, #0x0
+ add r0, r5, #0x0
+ mov r4, #0x10
+ bl FUN_02055408
+ cmp r0, #0x1
+ beq _020560F2
+ cmp r0, #0x2
+ beq _020560F6
+ cmp r0, #0x3
+ beq _020560FA
+ b _020560FC
+_020560F2:
+ mov r4, #0x50
+ b _020560FC
+_020560F6:
+ mov r4, #0x14
+ b _020560FC
+_020560FA:
+ mov r4, #0x14
+_020560FC:
+ add r0, r6, #0x0
+ add r1, r4, #0x0
+ bl FUN_0205AFDC
+ add r2, r0, #0x0
+ add r0, r5, #0x0
+ add r1, r7, #0x0
+ bl FUN_02056B5C
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_02056110
+FUN_02056110: ; 0x02056110
+ push {r4-r7, lr}
+ sub sp, #0xc
+ add r6, r0, #0x0
+ add r7, r1, #0x0
+ str r2, [sp, #0x8]
+ add r5, r3, #0x0
+ bl FUN_020553C4
+ add r4, r0, #0x0
+ add r0, r6, #0x0
+ bl FUN_020553A0
+ add r1, r0, #0x0
+ cmp r4, #0x0
+ beq _02056136
+ cmp r4, #0x1
+ beq _0205614C
+ cmp r4, #0x2
+ bne _02056162
+_02056136:
+ str r5, [sp, #0x0]
+ add r0, sp, #0x10
+ ldrh r0, [r0, #0x10]
+ ldr r3, [sp, #0x8]
+ add r2, r7, #0x0
+ str r0, [sp, #0x4]
+ add r0, r6, #0x0
+ bl FUN_0205616C
+ add sp, #0xc
+ pop {r4-r7, pc}
+_0205614C:
+ str r5, [sp, #0x0]
+ add r0, sp, #0x10
+ ldrh r0, [r0, #0x10]
+ ldr r3, [sp, #0x8]
+ add r2, r7, #0x0
+ str r0, [sp, #0x4]
+ add r0, r6, #0x0
+ bl FUN_020563A8
+ add sp, #0xc
+ pop {r4-r7, pc}
+_02056162:
+ bl ErrorHandling
+ add sp, #0xc
+ pop {r4-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_0205616C
+FUN_0205616C: ; 0x0205616C
+ push {r3-r6, lr}
+ sub sp, #0x4
+ add r6, r3, #0x0
+ add r4, r1, #0x0
+ add r1, r6, #0x0
+ add r5, r0, #0x0
+ bl FUN_020561D0
+ cmp r0, #0x0
+ beq _0205618C
+ cmp r0, #0x1
+ beq _020561A2
+ cmp r0, #0x2
+ beq _020561B8
+ add sp, #0x4
+ pop {r3-r6, pc}
+_0205618C:
+ add r3, sp, #0x8
+ ldrh r0, [r3, #0x14]
+ add r1, r4, #0x0
+ add r2, r6, #0x0
+ str r0, [sp, #0x0]
+ ldrh r3, [r3, #0x10]
+ add r0, r5, #0x0
+ bl FUN_02056288
+ add sp, #0x4
+ pop {r3-r6, pc}
+_020561A2:
+ add r3, sp, #0x8
+ ldrh r0, [r3, #0x14]
+ add r1, r4, #0x0
+ add r2, r6, #0x0
+ str r0, [sp, #0x0]
+ ldrh r3, [r3, #0x10]
+ add r0, r5, #0x0
+ bl FUN_020562A8
+ add sp, #0x4
+ pop {r3-r6, pc}
+_020561B8:
+ add r3, sp, #0x8
+ ldrh r0, [r3, #0x14]
+ add r1, r4, #0x0
+ add r2, r6, #0x0
+ str r0, [sp, #0x0]
+ ldrh r3, [r3, #0x10]
+ add r0, r5, #0x0
+ bl FUN_02056384
+ add sp, #0x4
+ pop {r3-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_020561D0
+FUN_020561D0: ; 0x020561D0
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ bl FUN_02056244
+ add r4, r0, #0x0
+ bl FUN_020561EC
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_0205536C
+ add r0, r4, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_020561EC
+FUN_020561EC: ; 0x020561EC
+ push {r3, lr}
+ cmp r0, #0x0
+ beq _020561FC
+ cmp r0, #0x1
+ beq _02056200
+ cmp r0, #0x2
+ beq _02056204
+ b _02056208
+_020561FC:
+ mov r0, #0x0
+ pop {r3, pc}
+_02056200:
+ mov r0, #0x1
+ pop {r3, pc}
+_02056204:
+ mov r0, #0x2
+ pop {r3, pc}
+_02056208:
+ bl ErrorHandling
+ mov r0, #0x0
+ pop {r3, pc}
+
+ thumb_func_start FUN_02056210
+FUN_02056210: ; 0x02056210
+ push {r3-r5, lr}
+ add r5, r1, #0x0
+ add r0, r5, #0x0
+ add r4, r2, #0x0
+ bl FUN_020549F0
+ cmp r0, #0x1
+ bne _02056224
+ mov r0, #0x4
+ pop {r3-r5, pc}
+_02056224:
+ add r0, r5, #0x0
+ bl FUN_020549E4
+ cmp r0, #0x1
+ bne _02056232
+ mov r0, #0x8
+ pop {r3-r5, pc}
+_02056232:
+ add r0, r5, #0x0
+ bl FUN_020549D8
+ cmp r0, #0x1
+ bne _0205623E
+ mov r4, #0xc
+_0205623E:
+ add r0, r4, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_02056244
+FUN_02056244: ; 0x02056244
+ push {r3-r5, lr}
+ add r4, r1, #0x0
+ mov r1, #0x0
+ mvn r1, r1
+ add r5, r0, #0x0
+ cmp r4, r1
+ bne _0205625C
+ mov r1, #0x0
+ bl FUN_0205536C
+ mov r0, #0x0
+ pop {r3-r5, pc}
+_0205625C:
+ bl FUN_020552F8
+ cmp r0, r4
+ beq _0205627A
+ add r0, r5, #0x0
+ bl FUN_02055370
+ cmp r0, #0x1
+ beq _0205627A
+ add r0, r5, #0x0
+ mov r1, #0x2
+ bl FUN_0205536C
+ mov r0, #0x2
+ pop {r3-r5, pc}
+_0205627A:
+ add r0, r5, #0x0
+ mov r1, #0x1
+ bl FUN_0205536C
+ mov r0, #0x1
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_02056288
+FUN_02056288: ; 0x02056288
+ push {r3-r5, lr}
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_020584C4
+ mov r1, #0x0
+ bl FUN_0205AFDC
+ add r2, r0, #0x0
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_02056B5C
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_020562A8
+FUN_020562A8: ; 0x020562A8
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ add r6, r1, #0x0
+ str r2, [sp, #0x0]
+ bl FUN_02056B74
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_020553C4
+ cmp r0, #0x2
+ beq _0205632A
+ mov r0, #0x4
+ tst r0, r4
+ beq _020562CA
+ mov r7, #0x38
+ b _0205636C
+_020562CA:
+ cmp r4, #0x0
+ beq _020562E6
+ mov r0, #0x8
+ mov r7, #0x1c
+ tst r0, r4
+ bne _020562DC
+ ldr r0, _02056380 ; =0x00000601
+ bl FUN_020054C8
+_020562DC:
+ ldr r1, [sp, #0x0]
+ add r0, r6, #0x0
+ bl FUN_020584CC
+ b _0205636C
+_020562E6:
+ add r0, r5, #0x0
+ mov r4, #0xc
+ bl FUN_0205545C
+ bl FUN_02055474
+ cmp r0, #0x1
+ bne _02056306
+ add r1, sp, #0x8
+ ldrh r1, [r1, #0x10]
+ add r0, r5, #0x0
+ bl FUN_02057114
+ cmp r0, #0x1
+ bne _02056306
+ mov r4, #0x58
+_02056306:
+ add r0, r6, #0x0
+ bl FUN_02058720
+ add r1, r0, #0x0
+ lsl r1, r1, #0x18
+ add r0, r6, #0x0
+ lsr r1, r1, #0x18
+ add r2, r4, #0x0
+ bl FUN_02056210
+ add r7, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_020572D4
+ add r0, r5, #0x0
+ bl FUN_020557A4
+ b _0205636C
+_0205632A:
+ cmp r4, #0x0
+ beq _02056332
+ cmp r4, #0x20
+ bne _02056356
+_02056332:
+ add r0, r6, #0x0
+ bl FUN_02058720
+ add r1, r0, #0x0
+ lsl r1, r1, #0x18
+ add r0, r6, #0x0
+ lsr r1, r1, #0x18
+ mov r2, #0xc
+ bl FUN_02056210
+ add r7, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_020572D4
+ add r0, r5, #0x0
+ bl FUN_020557A4
+ b _0205636C
+_02056356:
+ mov r0, #0x8
+ mov r7, #0x1c
+ tst r0, r4
+ bne _02056364
+ ldr r0, _02056380 ; =0x00000601
+ bl FUN_020054C8
+_02056364:
+ ldr r1, [sp, #0x0]
+ add r0, r6, #0x0
+ bl FUN_020584CC
+_0205636C:
+ ldr r0, [sp, #0x0]
+ add r1, r7, #0x0
+ bl FUN_0205AFDC
+ add r2, r0, #0x0
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ bl FUN_02056B5C
+ pop {r3-r7, pc}
+ .balign 4
+_02056380: .word 0x00000601
+
+ thumb_func_start FUN_02056384
+FUN_02056384: ; 0x02056384
+ push {r4-r6, lr}
+ add r6, r2, #0x0
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ add r0, r6, #0x0
+ mov r1, #0x28
+ bl FUN_0205AFDC
+ add r2, r0, #0x0
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_02056B5C
+ add r0, r4, #0x0
+ add r1, r6, #0x0
+ bl FUN_020584CC
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_020563A8
+FUN_020563A8: ; 0x020563A8
+ push {r3-r7, lr}
+ sub sp, #0x8
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ add r6, r2, #0x0
+ add r7, r3, #0x0
+ bl FUN_020554BC
+ cmp r0, #0x1
+ add r0, sp, #0x10
+ bne _020563D6
+ ldrh r1, [r0, #0x10]
+ add r2, r6, #0x0
+ add r3, r7, #0x0
+ str r1, [sp, #0x0]
+ ldrh r0, [r0, #0x14]
+ add r1, r4, #0x0
+ str r0, [sp, #0x4]
+ add r0, r5, #0x0
+ bl FUN_020567E4
+ add sp, #0x8
+ pop {r3-r7, pc}
+_020563D6:
+ ldrh r1, [r0, #0x10]
+ add r2, r6, #0x0
+ add r3, r7, #0x0
+ str r1, [sp, #0x0]
+ ldrh r0, [r0, #0x14]
+ add r1, r4, #0x0
+ str r0, [sp, #0x4]
+ add r0, r5, #0x0
+ bl FUN_020564C8
+ add sp, #0x8
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_020563F0
+FUN_020563F0: ; 0x020563F0
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ bl FUN_020553C4
+ cmp r0, #0x1
+ bne _0205642C
+ mov r0, #0x2
+ tst r0, r4
+ beq _0205642C
+ add r0, r5, #0x0
+ mov r4, #0x1
+ bl FUN_020554BC
+ cmp r0, #0x1
+ bne _02056412
+ mov r4, #0x0
+_02056412:
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_020554AC
+ cmp r4, #0x0
+ bne _02056426
+ ldr r0, _02056430 ; =0x0000061C
+ bl FUN_020054C8
+ pop {r3-r5, pc}
+_02056426:
+ ldr r0, _02056434 ; =0x00000619
+ bl FUN_020054C8
+_0205642C:
+ pop {r3-r5, pc}
+ nop
+_02056430: .word 0x0000061C
+_02056434: .word 0x00000619
+
+ thumb_func_start FUN_02056438
+FUN_02056438: ; 0x02056438
+ push {r3-r5, lr}
+ add r5, r1, #0x0
+ mov r4, #0x4c
+ bl FUN_02055408
+ cmp r0, #0x1
+ beq _02056450
+ cmp r0, #0x2
+ beq _02056454
+ cmp r0, #0x3
+ beq _02056458
+ b _0205645A
+_02056450:
+ mov r4, #0x10
+ b _0205645A
+_02056454:
+ mov r4, #0x50
+ b _0205645A
+_02056458:
+ mov r4, #0x14
+_0205645A:
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_0205AFDC
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_02056464
+FUN_02056464: ; 0x02056464
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ mov r1, #0x1
+ mov r2, #0x3
+ bl FUN_0205541C
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_0205570C
+ cmp r0, #0x0
+ bne _02056488
+ cmp r4, #0x2
+ blt _02056488
+ add r0, r5, #0x0
+ mov r1, #0x1
+ bl FUN_020556F4
+_02056488:
+ cmp r4, #0x3
+ bne _02056490
+ mov r0, #0x1
+ pop {r3-r5, pc}
+_02056490:
+ mov r0, #0x0
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_02056494
+FUN_02056494: ; 0x02056494
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ mov r6, #0x1
+ bl FUN_02055408
+ sub r4, r0, #0x1
+ bpl _020564A6
+ mov r4, #0x0
+ add r6, r4, #0x0
+_020564A6:
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_0205540C
+ add r0, r5, #0x0
+ bl FUN_0205570C
+ cmp r0, #0x1
+ bne _020564C4
+ cmp r4, #0x0
+ bne _020564C4
+ add r0, r5, #0x0
+ mov r1, #0x0
+ bl FUN_020556F4
+_020564C4:
+ add r0, r6, #0x0
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_020564C8
+FUN_020564C8: ; 0x020564C8
+ push {r3-r7, lr}
+ sub sp, #0x8
+ add r7, r1, #0x0
+ add r1, r3, #0x0
+ add r6, r0, #0x0
+ str r3, [sp, #0x4]
+ ldr r5, [sp, #0x20]
+ ldr r4, [sp, #0x24]
+ bl FUN_0205653C
+ cmp r0, #0x3
+ bhi _02056538
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_020564EC: ; jump table (using 16-bit offset)
+ .short _020564F4 - _020564EC - 2; case 0
+ .short _02056506 - _020564EC - 2; case 1
+ .short _02056518 - _020564EC - 2; case 2
+ .short _0205652A - _020564EC - 2; case 3
+_020564F4:
+ ldr r2, [sp, #0x4]
+ add r0, r6, #0x0
+ add r1, r7, #0x0
+ add r3, r5, #0x0
+ str r4, [sp, #0x0]
+ bl FUN_020565F0
+ add sp, #0x8
+ pop {r3-r7, pc}
+_02056506:
+ ldr r2, [sp, #0x4]
+ add r0, r6, #0x0
+ add r1, r7, #0x0
+ add r3, r5, #0x0
+ str r4, [sp, #0x0]
+ bl FUN_02056614
+ add sp, #0x8
+ pop {r3-r7, pc}
+_02056518:
+ ldr r2, [sp, #0x4]
+ add r0, r6, #0x0
+ add r1, r7, #0x0
+ add r3, r5, #0x0
+ str r4, [sp, #0x0]
+ bl FUN_02056704
+ add sp, #0x8
+ pop {r3-r7, pc}
+_0205652A:
+ ldr r2, [sp, #0x4]
+ add r0, r6, #0x0
+ add r1, r7, #0x0
+ add r3, r5, #0x0
+ str r4, [sp, #0x0]
+ bl FUN_02056740
+_02056538:
+ add sp, #0x8
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_0205653C
+FUN_0205653C: ; 0x0205653C
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ bl FUN_0205658C
+ add r4, r0, #0x0
+ bl FUN_02056558
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_0205536C
+ add r0, r4, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_02056558
+FUN_02056558: ; 0x02056558
+ push {r3, lr}
+ cmp r0, #0x3
+ bhi _02056582
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0205656A: ; jump table (using 16-bit offset)
+ .short _02056572 - _0205656A - 2; case 0
+ .short _02056576 - _0205656A - 2; case 1
+ .short _0205657A - _0205656A - 2; case 2
+ .short _0205657E - _0205656A - 2; case 3
+_02056572:
+ mov r0, #0x0
+ pop {r3, pc}
+_02056576:
+ mov r0, #0x1
+ pop {r3, pc}
+_0205657A:
+ mov r0, #0x2
+ pop {r3, pc}
+_0205657E:
+ mov r0, #0x1
+ pop {r3, pc}
+_02056582:
+ bl ErrorHandling
+ mov r0, #0x0
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_0205658C
+FUN_0205658C: ; 0x0205658C
+ push {r4-r6, lr}
+ add r4, r1, #0x0
+ mov r1, #0x0
+ mvn r1, r1
+ add r5, r0, #0x0
+ cmp r4, r1
+ bne _020565BA
+ bl FUN_0205570C
+ cmp r0, #0x1
+ bne _020565AE
+ add r0, r5, #0x0
+ mov r1, #0x1
+ bl FUN_0205536C
+ mov r0, #0x3
+ pop {r4-r6, pc}
+_020565AE:
+ add r0, r5, #0x0
+ mov r1, #0x0
+ bl FUN_0205536C
+ mov r0, #0x0
+ pop {r4-r6, pc}
+_020565BA:
+ bl FUN_020552F8
+ add r6, r0, #0x0
+ add r0, r5, #0x0
+ mov r1, #0x0
+ bl FUN_020556F4
+ cmp r6, r4
+ beq _020565E2
+ add r0, r5, #0x0
+ bl FUN_02055370
+ cmp r0, #0x1
+ beq _020565E2
+ add r0, r5, #0x0
+ mov r1, #0x2
+ bl FUN_0205536C
+ mov r0, #0x2
+ pop {r4-r6, pc}
+_020565E2:
+ add r0, r5, #0x0
+ mov r1, #0x1
+ bl FUN_0205536C
+ mov r0, #0x1
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_020565F0
+FUN_020565F0: ; 0x020565F0
+ push {r3-r5, lr}
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_020584C4
+ mov r1, #0x0
+ bl FUN_0205AFDC
+ add r2, r0, #0x0
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_02056B5C
+ add r0, r5, #0x0
+ bl FUN_02055410
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_02056614
+FUN_02056614: ; 0x02056614
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ add r6, r1, #0x0
+ str r2, [sp, #0x0]
+ bl FUN_02056B74
+ add r4, r0, #0x0
+ mov r0, #0x4
+ tst r0, r4
+ beq _02056638
+ add r0, r5, #0x0
+ mov r7, #0x38
+ bl FUN_020572D4
+ add r0, r5, #0x0
+ bl FUN_020557A4
+ b _020566EA
+_02056638:
+ mov r0, #0x10
+ tst r0, r4
+ beq _02056656
+ add r0, r5, #0x0
+ mov r7, #0x50
+ bl FUN_020572D4
+ add r0, r5, #0x0
+ bl FUN_020557A4
+ add r0, r5, #0x0
+ mov r1, #0x1
+ bl FUN_0205569C
+ b _020566EA
+_02056656:
+ mov r0, #0x40
+ tst r0, r4
+ beq _02056680
+ add r0, r6, #0x0
+ mov r7, #0x0
+ bl FUN_020584D4
+ str r0, [sp, #0x0]
+ ldr r1, [sp, #0x0]
+ add r0, r6, #0x0
+ bl FUN_020584CC
+ add r0, r5, #0x0
+ bl FUN_02055410
+ sub r1, r7, #0x1
+ add r0, r5, #0x0
+ add r2, r1, #0x0
+ bl FUN_0205543C
+ b _020566EA
+_02056680:
+ cmp r4, #0x0
+ beq _020566D4
+ ldr r2, [sp, #0x0]
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ bl FUN_020572EC
+ cmp r0, #0x0
+ bne _020566B0
+ mov r0, #0x8
+ mov r7, #0x1c
+ tst r0, r4
+ bne _020566A0
+ ldr r0, _02056700 ; =0x00000601
+ bl FUN_020054C8
+_020566A0:
+ ldr r1, [sp, #0x0]
+ add r0, r6, #0x0
+ bl FUN_020584CC
+ add r0, r5, #0x0
+ bl FUN_02055410
+ b _020566EA
+_020566B0:
+ add r0, r6, #0x0
+ mov r7, #0x0
+ bl FUN_020584D4
+ str r0, [sp, #0x0]
+ ldr r1, [sp, #0x0]
+ add r0, r6, #0x0
+ bl FUN_020584CC
+ add r0, r5, #0x0
+ bl FUN_02055410
+ sub r1, r7, #0x1
+ add r0, r5, #0x0
+ add r2, r1, #0x0
+ bl FUN_0205543C
+ b _020566EA
+_020566D4:
+ add r0, r5, #0x0
+ mov r7, #0x50
+ bl FUN_020572D4
+ add r0, r5, #0x0
+ bl FUN_020557A4
+ add r0, r5, #0x0
+ mov r1, #0x2
+ bl FUN_0205540C
+_020566EA:
+ ldr r0, [sp, #0x0]
+ add r1, r7, #0x0
+ bl FUN_0205AFDC
+ add r2, r0, #0x0
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ bl FUN_02056B5C
+ pop {r3-r7, pc}
+ nop
+_02056700: .word 0x00000601
+
+ thumb_func_start FUN_02056704
+FUN_02056704: ; 0x02056704
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ add r6, r2, #0x0
+ bl FUN_02055410
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ add r2, r6, #0x0
+ bl FUN_020572EC
+ cmp r0, #0x1
+ beq _0205673E
+ add r0, r6, #0x0
+ mov r1, #0x28
+ bl FUN_0205AFDC
+ add r2, r0, #0x0
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_02056B5C
+ add r0, r4, #0x0
+ add r1, r6, #0x0
+ bl FUN_020584CC
+ add r0, r5, #0x0
+ bl FUN_02055410
+_0205673E:
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_02056740
+FUN_02056740: ; 0x02056740
+ push {r3-r7, lr}
+ sub sp, #0x8
+ add r5, r0, #0x0
+ add r7, r1, #0x0
+ bl FUN_02056494
+ str r0, [sp, #0x0]
+ add r0, r5, #0x0
+ bl FUN_02055314
+ add r6, r0, #0x0
+ add r0, r5, #0x0
+ add r1, r7, #0x0
+ add r2, r6, #0x0
+ bl FUN_02056B74
+ add r4, r0, #0x0
+ mov r0, #0x4
+ tst r0, r4
+ beq _02056774
+ add r0, r6, #0x0
+ mov r1, #0x38
+ bl FUN_0205AFDC
+ str r0, [sp, #0x4]
+ b _020567C4
+_02056774:
+ mov r0, #0x40
+ tst r0, r4
+ beq _0205678C
+ add r0, r6, #0x0
+ mov r1, #0x0
+ bl FUN_0205AFDC
+ str r0, [sp, #0x4]
+ add r0, r5, #0x0
+ bl FUN_02055410
+ b _020567C4
+_0205678C:
+ cmp r4, #0x0
+ beq _020567BA
+ mov r0, #0x0
+ str r0, [sp, #0x0]
+ add r0, r6, #0x0
+ mov r1, #0x1c
+ bl FUN_0205AFDC
+ str r0, [sp, #0x4]
+ mov r0, #0x8
+ tst r0, r4
+ bne _020567AA
+ ldr r0, _020567E0 ; =0x00000601
+ bl FUN_020054C8
+_020567AA:
+ add r0, r7, #0x0
+ add r1, r6, #0x0
+ bl FUN_020584CC
+ add r0, r5, #0x0
+ bl FUN_02055410
+ b _020567C4
+_020567BA:
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ bl FUN_02056438
+ str r0, [sp, #0x4]
+_020567C4:
+ ldr r0, [sp, #0x0]
+ cmp r0, #0x0
+ bne _020567D2
+ add r0, r5, #0x0
+ mov r1, #0x0
+ bl FUN_020556F4
+_020567D2:
+ ldr r2, [sp, #0x4]
+ add r0, r5, #0x0
+ add r1, r7, #0x0
+ bl FUN_02056B5C
+ add sp, #0x8
+ pop {r3-r7, pc}
+ .balign 4
+_020567E0: .word 0x00000601
+
+ thumb_func_start FUN_020567E4
+FUN_020567E4: ; 0x020567E4
+ push {r3-r7, lr}
+ sub sp, #0x8
+ add r7, r1, #0x0
+ add r1, r3, #0x0
+ add r6, r0, #0x0
+ str r3, [sp, #0x4]
+ ldr r5, [sp, #0x20]
+ ldr r4, [sp, #0x24]
+ bl FUN_02056858
+ cmp r0, #0x3
+ bhi _02056854
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02056808: ; jump table (using 16-bit offset)
+ .short _02056810 - _02056808 - 2; case 0
+ .short _02056822 - _02056808 - 2; case 1
+ .short _02056834 - _02056808 - 2; case 2
+ .short _02056846 - _02056808 - 2; case 3
+_02056810:
+ ldr r2, [sp, #0x4]
+ add r0, r6, #0x0
+ add r1, r7, #0x0
+ add r3, r5, #0x0
+ str r4, [sp, #0x0]
+ bl FUN_02056914
+ add sp, #0x8
+ pop {r3-r7, pc}
+_02056822:
+ ldr r2, [sp, #0x4]
+ add r0, r6, #0x0
+ add r1, r7, #0x0
+ add r3, r5, #0x0
+ str r4, [sp, #0x0]
+ bl FUN_02056938
+ add sp, #0x8
+ pop {r3-r7, pc}
+_02056834:
+ ldr r2, [sp, #0x4]
+ add r0, r6, #0x0
+ add r1, r7, #0x0
+ add r3, r5, #0x0
+ str r4, [sp, #0x0]
+ bl FUN_02056A7C
+ add sp, #0x8
+ pop {r3-r7, pc}
+_02056846:
+ ldr r2, [sp, #0x4]
+ add r0, r6, #0x0
+ add r1, r7, #0x0
+ add r3, r5, #0x0
+ str r4, [sp, #0x0]
+ bl FUN_02056AB8
+_02056854:
+ add sp, #0x8
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_02056858
+FUN_02056858: ; 0x02056858
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ bl FUN_020568A8
+ add r4, r0, #0x0
+ bl FUN_02056874
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_0205536C
+ add r0, r4, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_02056874
+FUN_02056874: ; 0x02056874
+ push {r3, lr}
+ cmp r0, #0x3
+ bhi _0205689E
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02056886: ; jump table (using 16-bit offset)
+ .short _0205688E - _02056886 - 2; case 0
+ .short _02056892 - _02056886 - 2; case 1
+ .short _02056896 - _02056886 - 2; case 2
+ .short _0205689A - _02056886 - 2; case 3
+_0205688E:
+ mov r0, #0x0
+ pop {r3, pc}
+_02056892:
+ mov r0, #0x1
+ pop {r3, pc}
+_02056896:
+ mov r0, #0x2
+ pop {r3, pc}
+_0205689A:
+ mov r0, #0x1
+ pop {r3, pc}
+_0205689E:
+ bl ErrorHandling
+ mov r0, #0x0
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_020568A8
+FUN_020568A8: ; 0x020568A8
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ bl FUN_02055408
+ add r6, r0, #0x0
+ mov r0, #0x0
+ mvn r0, r0
+ cmp r4, r0
+ bne _020568D8
+ cmp r6, #0x2
+ bge _020568CC
+ add r0, r5, #0x0
+ mov r1, #0x0
+ bl FUN_0205536C
+ mov r0, #0x0
+ pop {r4-r6, pc}
+_020568CC:
+ add r0, r5, #0x0
+ mov r1, #0x1
+ bl FUN_0205536C
+ mov r0, #0x3
+ pop {r4-r6, pc}
+_020568D8:
+ add r0, r5, #0x0
+ bl FUN_020552F8
+ cmp r0, r4
+ beq _02056908
+ add r0, r5, #0x0
+ bl FUN_02055370
+ cmp r0, #0x1
+ beq _02056908
+ cmp r6, #0x2
+ bge _020568FC
+ add r0, r5, #0x0
+ mov r1, #0x2
+ bl FUN_0205536C
+ mov r0, #0x2
+ pop {r4-r6, pc}
+_020568FC:
+ add r0, r5, #0x0
+ mov r1, #0x1
+ bl FUN_0205536C
+ mov r0, #0x3
+ pop {r4-r6, pc}
+_02056908:
+ add r0, r5, #0x0
+ mov r1, #0x1
+ bl FUN_0205536C
+ mov r0, #0x1
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_02056914
+FUN_02056914: ; 0x02056914
+ push {r3-r5, lr}
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_020584C4
+ mov r1, #0x0
+ bl FUN_0205AFDC
+ add r2, r0, #0x0
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_02056B5C
+ add r0, r5, #0x0
+ bl FUN_02055410
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_02056938
+FUN_02056938: ; 0x02056938
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ add r6, r1, #0x0
+ add r7, r2, #0x0
+ bl FUN_02056B74
+ add r4, r0, #0x0
+ mov r0, #0x4
+ tst r0, r4
+ beq _0205696A
+ add r0, r7, #0x0
+ mov r1, #0x38
+ bl FUN_0205AFDC
+ str r0, [sp, #0x0]
+ add r0, r5, #0x0
+ bl FUN_02056464
+ add r0, r5, #0x0
+ bl FUN_020572D4
+ add r0, r5, #0x0
+ bl FUN_020557A4
+ b _02056A6C
+_0205696A:
+ mov r0, #0x10
+ tst r0, r4
+ beq _020569BA
+ add r0, r5, #0x0
+ bl FUN_02055408
+ cmp r0, #0x3
+ blt _02056994
+ add r0, r5, #0x0
+ add r1, r7, #0x0
+ bl FUN_02056438
+ str r0, [sp, #0x0]
+ add r0, r5, #0x0
+ bl FUN_020557A4
+ add r0, r5, #0x0
+ mov r1, #0x1
+ bl FUN_0205569C
+ b _02056A6C
+_02056994:
+ add r0, r7, #0x0
+ mov r1, #0x1c
+ bl FUN_0205AFDC
+ str r0, [sp, #0x0]
+ mov r0, #0x8
+ tst r0, r4
+ bne _020569AA
+ ldr r0, _02056A78 ; =0x00000601
+ bl FUN_020054C8
+_020569AA:
+ add r0, r6, #0x0
+ add r1, r7, #0x0
+ bl FUN_020584CC
+ add r0, r5, #0x0
+ bl FUN_02055410
+ b _02056A6C
+_020569BA:
+ mov r0, #0x40
+ tst r0, r4
+ beq _020569EC
+ add r0, r6, #0x0
+ bl FUN_020584D4
+ add r4, r0, #0x0
+ mov r1, #0x0
+ bl FUN_0205AFDC
+ str r0, [sp, #0x0]
+ add r0, r6, #0x0
+ add r1, r4, #0x0
+ bl FUN_020584CC
+ add r0, r5, #0x0
+ bl FUN_02055410
+ mov r1, #0x0
+ mvn r1, r1
+ add r0, r5, #0x0
+ add r2, r1, #0x0
+ bl FUN_0205543C
+ b _02056A6C
+_020569EC:
+ cmp r4, #0x0
+ beq _02056A50
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ add r2, r7, #0x0
+ bl FUN_020572EC
+ cmp r0, #0x0
+ bne _02056A24
+ add r0, r7, #0x0
+ mov r1, #0x1c
+ bl FUN_0205AFDC
+ str r0, [sp, #0x0]
+ mov r0, #0x8
+ tst r0, r4
+ bne _02056A14
+ ldr r0, _02056A78 ; =0x00000601
+ bl FUN_020054C8
+_02056A14:
+ add r0, r6, #0x0
+ add r1, r7, #0x0
+ bl FUN_020584CC
+ add r0, r5, #0x0
+ bl FUN_02055410
+ b _02056A6C
+_02056A24:
+ add r0, r6, #0x0
+ bl FUN_020584D4
+ add r4, r0, #0x0
+ mov r1, #0x0
+ bl FUN_0205AFDC
+ str r0, [sp, #0x0]
+ add r0, r6, #0x0
+ add r1, r4, #0x0
+ bl FUN_020584CC
+ add r0, r5, #0x0
+ bl FUN_02055410
+ mov r1, #0x0
+ mvn r1, r1
+ add r0, r5, #0x0
+ add r2, r1, #0x0
+ bl FUN_0205543C
+ b _02056A6C
+_02056A50:
+ add r0, r5, #0x0
+ add r1, r7, #0x0
+ bl FUN_02056438
+ str r0, [sp, #0x0]
+ add r0, r5, #0x0
+ bl FUN_02056464
+ add r0, r5, #0x0
+ bl FUN_020572D4
+ add r0, r5, #0x0
+ bl FUN_020557A4
+_02056A6C:
+ ldr r2, [sp, #0x0]
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ bl FUN_02056B5C
+ pop {r3-r7, pc}
+ .balign 4
+_02056A78: .word 0x00000601
+
+ thumb_func_start FUN_02056A7C
+FUN_02056A7C: ; 0x02056A7C
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ add r6, r2, #0x0
+ bl FUN_02055410
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ add r2, r6, #0x0
+ bl FUN_020572EC
+ cmp r0, #0x1
+ beq _02056AB6
+ add r0, r6, #0x0
+ mov r1, #0x28
+ bl FUN_0205AFDC
+ add r2, r0, #0x0
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_02056B5C
+ add r0, r4, #0x0
+ add r1, r6, #0x0
+ bl FUN_020584CC
+ add r0, r5, #0x0
+ bl FUN_02055410
+_02056AB6:
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_02056AB8
+FUN_02056AB8: ; 0x02056AB8
+ push {r3-r7, lr}
+ sub sp, #0x8
+ add r5, r0, #0x0
+ add r7, r1, #0x0
+ bl FUN_02056494
+ str r0, [sp, #0x0]
+ add r0, r5, #0x0
+ bl FUN_02055314
+ add r6, r0, #0x0
+ add r0, r5, #0x0
+ add r1, r7, #0x0
+ add r2, r6, #0x0
+ bl FUN_02056B74
+ add r4, r0, #0x0
+ mov r0, #0x4
+ tst r0, r4
+ beq _02056AEC
+ add r0, r6, #0x0
+ mov r1, #0x38
+ bl FUN_0205AFDC
+ str r0, [sp, #0x4]
+ b _02056B3C
+_02056AEC:
+ mov r0, #0x40
+ tst r0, r4
+ beq _02056B04
+ add r0, r6, #0x0
+ mov r1, #0x0
+ bl FUN_0205AFDC
+ str r0, [sp, #0x4]
+ add r0, r5, #0x0
+ bl FUN_02055410
+ b _02056B3C
+_02056B04:
+ cmp r4, #0x0
+ beq _02056B32
+ mov r0, #0x0
+ str r0, [sp, #0x0]
+ add r0, r6, #0x0
+ mov r1, #0x1c
+ bl FUN_0205AFDC
+ str r0, [sp, #0x4]
+ mov r0, #0x8
+ tst r0, r4
+ bne _02056B22
+ ldr r0, _02056B58 ; =0x00000601
+ bl FUN_020054C8
+_02056B22:
+ add r0, r7, #0x0
+ add r1, r6, #0x0
+ bl FUN_020584CC
+ add r0, r5, #0x0
+ bl FUN_02055410
+ b _02056B3C
+_02056B32:
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ bl FUN_02056438
+ str r0, [sp, #0x4]
+_02056B3C:
+ ldr r0, [sp, #0x0]
+ cmp r0, #0x0
+ bne _02056B4A
+ add r0, r5, #0x0
+ mov r1, #0x0
+ bl FUN_020556F4
+_02056B4A:
+ ldr r2, [sp, #0x4]
+ add r0, r5, #0x0
+ add r1, r7, #0x0
+ bl FUN_02056B5C
+ add sp, #0x8
+ pop {r3-r7, pc}
+ .balign 4
+_02056B58: .word 0x00000601
+
+ thumb_func_start FUN_02056B5C
+FUN_02056B5C: ; 0x02056B5C
+ push {r3-r5, lr}
+ add r4, r2, #0x0
+ add r5, r1, #0x0
+ add r1, r4, #0x0
+ bl FUN_02055460
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_0205ADDC
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_02056B74
+FUN_02056B74: ; 0x02056B74
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ add r6, r1, #0x0
+ add r7, r2, #0x0
+ mov r4, #0x0
+ bl FUN_02056C0C
+ mov r1, #0xa
+ str r0, [sp, #0x0]
+ tst r0, r1
+ beq _02056BA0
+ mov r0, #0x1
+ orr r4, r0
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ add r2, r7, #0x0
+ bl FUN_02056D58
+ cmp r0, #0x0
+ beq _02056BA0
+ mov r0, #0x8
+ orr r4, r0
+_02056BA0:
+ ldr r0, [sp, #0x0]
+ mov r1, #0x4
+ tst r0, r1
+ beq _02056BAC
+ mov r0, #0x2
+ orr r4, r0
+_02056BAC:
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ add r2, r7, #0x0
+ bl FUN_02056CCC
+ cmp r0, #0x0
+ beq _02056BBE
+ mov r0, #0x4
+ orr r4, r0
+_02056BBE:
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ add r2, r7, #0x0
+ bl FUN_02056E04
+ cmp r0, #0x1
+ bne _02056BD0
+ mov r0, #0x10
+ orr r4, r0
+_02056BD0:
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ add r2, r7, #0x0
+ bl FUN_02056E6C
+ cmp r0, #0x1
+ bne _02056BE2
+ mov r0, #0x20
+ orr r4, r0
+_02056BE2:
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ add r2, r7, #0x0
+ bl FUN_02056EC8
+ cmp r0, #0x1
+ bne _02056BF4
+ mov r0, #0x41
+ orr r4, r0
+_02056BF4:
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ add r2, r7, #0x0
+ bl FUN_02056F78
+ cmp r0, #0x1
+ bne _02056C06
+ mov r0, #0x1
+ orr r4, r0
+_02056C06:
+ add r0, r4, #0x0
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_02056C0C
+FUN_02056C0C: ; 0x02056C0C
+ push {r3-r7, lr}
+ sub sp, #0x28
+ add r5, r1, #0x0
+ str r2, [sp, #0x4]
+ add r0, r5, #0x0
+ bl FUN_02058B2C
+ add r7, r0, #0x0
+ ldr r0, [sp, #0x4]
+ bl FUN_02059BF4
+ str r0, [sp, #0x14]
+ add r0, r5, #0x0
+ bl FUN_02058B3C
+ str r0, [sp, #0x8]
+ add r0, r5, #0x0
+ bl FUN_02058B4C
+ str r0, [sp, #0xc]
+ ldr r0, [sp, #0x4]
+ bl FUN_02059C00
+ str r0, [sp, #0x10]
+ add r0, r5, #0x0
+ add r1, sp, #0x1c
+ bl FUN_02058B5C
+ ldr r1, [sp, #0x14]
+ ldr r6, [sp, #0xc]
+ ldr r3, [sp, #0x10]
+ ldr r2, [sp, #0x8]
+ add r0, r5, #0x0
+ add r1, r7, r1
+ add r3, r6, r3
+ mov r4, #0x0
+ bl FUN_02059A08
+ cmp r0, #0x1
+ bne _02056C60
+ mov r0, #0x1
+ orr r4, r0
+_02056C60:
+ add r0, r5, #0x0
+ bl FUN_02058738
+ ldr r2, [sp, #0x14]
+ add r1, sp, #0x18
+ str r1, [sp, #0x0]
+ ldr r6, [sp, #0xc]
+ ldr r3, [sp, #0x10]
+ add r1, sp, #0x1c
+ add r2, r7, r2
+ add r3, r6, r3
+ bl FUN_0204A7C8
+ cmp r0, #0x1
+ bne _02056C90
+ mov r0, #0x2
+ orr r4, r0
+ add r1, sp, #0x18
+ mov r0, #0x0
+ ldrsb r0, [r1, r0]
+ cmp r0, #0x0
+ beq _02056C90
+ mov r0, #0x8
+ orr r4, r0
+_02056C90:
+ ldr r3, [sp, #0xc]
+ ldr r2, [sp, #0x10]
+ ldr r1, [sp, #0x14]
+ add r2, r3, r2
+ ldr r3, [sp, #0x4]
+ add r0, r5, #0x0
+ add r1, r7, r1
+ bl FUN_02059A60
+ cmp r0, #0x1
+ bne _02056CAA
+ mov r0, #0x2
+ orr r4, r0
+_02056CAA:
+ add r0, r5, #0x0
+ ldr r1, [sp, #0x14]
+ ldr r5, [sp, #0xc]
+ ldr r3, [sp, #0x10]
+ ldr r2, [sp, #0x8]
+ add r1, r7, r1
+ add r3, r5, r3
+ bl FUN_0205995C
+ cmp r0, #0x1
+ bne _02056CC4
+ mov r0, #0x4
+ orr r4, r0
+_02056CC4:
+ add r0, r4, #0x0
+ add sp, #0x28
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_02056CCC
+FUN_02056CCC: ; 0x02056CCC
+ push {r3-r7, lr}
+ mov r0, #0x0
+ add r4, r2, #0x0
+ mvn r0, r0
+ add r5, r1, #0x0
+ cmp r4, r0
+ beq _02056D54
+ add r0, r5, #0x0
+ bl FUN_02058738
+ str r0, [sp, #0x0]
+ add r0, r5, #0x0
+ bl FUN_02058B2C
+ add r6, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_02059BF4
+ add r7, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_02058B4C
+ add r5, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_02059C00
+ add r2, r0, #0x0
+ ldr r0, [sp, #0x0]
+ add r1, r6, r7
+ add r2, r5, r2
+ bl FUN_0204A6E0
+ cmp r4, #0x3
+ bhi _02056D54
+ add r1, r4, r4
+ add r1, pc
+ ldrh r1, [r1, #0x6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_02056D1C: ; jump table (using 16-bit offset)
+ .short _02056D24 - _02056D1C - 2; case 0
+ .short _02056D30 - _02056D1C - 2; case 1
+ .short _02056D3C - _02056D1C - 2; case 2
+ .short _02056D48 - _02056D1C - 2; case 3
+_02056D24:
+ bl FUN_02054848
+ cmp r0, #0x1
+ bne _02056D54
+ mov r0, #0x1
+ pop {r3-r7, pc}
+_02056D30:
+ bl FUN_02054854
+ cmp r0, #0x1
+ bne _02056D54
+ mov r0, #0x1
+ pop {r3-r7, pc}
+_02056D3C:
+ bl FUN_02054860
+ cmp r0, #0x1
+ bne _02056D54
+ mov r0, #0x1
+ pop {r3-r7, pc}
+_02056D48:
+ bl FUN_0205486C
+ cmp r0, #0x1
+ bne _02056D54
+ mov r0, #0x1
+ pop {r3-r7, pc}
+_02056D54:
+ mov r0, #0x0
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_02056D58
+FUN_02056D58: ; 0x02056D58
+ push {r3-r7, lr}
+ mov r0, #0x0
+ add r4, r2, #0x0
+ mvn r0, r0
+ add r5, r1, #0x0
+ cmp r4, r0
+ beq _02056E00
+ add r0, r5, #0x0
+ bl FUN_02058738
+ add r7, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_02058B2C
+ add r6, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_02058B4C
+ str r0, [sp, #0x0]
+ ldr r2, [sp, #0x0]
+ add r0, r7, #0x0
+ add r1, r6, #0x0
+ bl FUN_0204A6E0
+ add r5, r0, #0x0
+ cmp r4, #0x3
+ bhi _02056DD8
+ add r1, r4, r4
+ add r1, pc
+ ldrh r1, [r1, #0x6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_02056D9A: ; jump table (using 16-bit offset)
+ .short _02056DA2 - _02056D9A - 2; case 0
+ .short _02056DAE - _02056D9A - 2; case 1
+ .short _02056DBC - _02056D9A - 2; case 2
+ .short _02056DCA - _02056D9A - 2; case 3
+_02056DA2:
+ bl FUN_020547D4
+ cmp r0, #0x1
+ bne _02056DAE
+ mov r0, #0x1
+ pop {r3-r7, pc}
+_02056DAE:
+ add r0, r5, #0x0
+ bl FUN_020547E0
+ cmp r0, #0x1
+ bne _02056DBC
+ mov r0, #0x1
+ pop {r3-r7, pc}
+_02056DBC:
+ add r0, r5, #0x0
+ bl FUN_020547C8
+ cmp r0, #0x1
+ bne _02056DCA
+ mov r0, #0x1
+ pop {r3-r7, pc}
+_02056DCA:
+ add r0, r5, #0x0
+ bl FUN_020547BC
+ cmp r0, #0x1
+ bne _02056DD8
+ mov r0, #0x1
+ pop {r3-r7, pc}
+_02056DD8:
+ add r0, r4, #0x0
+ bl FUN_02059BF4
+ add r5, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_02059C00
+ add r3, r0, #0x0
+ ldr r2, [sp, #0x0]
+ add r0, r7, #0x0
+ add r1, r6, r5
+ add r2, r2, r3
+ bl FUN_0204A6E0
+ bl FUN_020547B0
+ cmp r0, #0x1
+ bne _02056E00
+ mov r0, #0x1
+ pop {r3-r7, pc}
+_02056E00:
+ mov r0, #0x0
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_02056E04
+FUN_02056E04: ; 0x02056E04
+ push {r3-r7, lr}
+ mov r0, #0x0
+ add r5, r2, #0x0
+ mvn r0, r0
+ add r4, r1, #0x0
+ cmp r5, r0
+ beq _02056E68
+ add r0, r4, #0x0
+ bl FUN_02058738
+ str r0, [sp, #0x0]
+ add r0, r4, #0x0
+ bl FUN_02058B2C
+ add r6, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_02059BF4
+ add r7, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_02058B4C
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_02059C00
+ add r2, r0, #0x0
+ ldr r0, [sp, #0x0]
+ add r1, r6, r7
+ add r2, r4, r2
+ bl FUN_0204A6E0
+ add r4, r0, #0x0
+ cmp r5, #0x3
+ bne _02056E56
+ bl FUN_02054A24
+ cmp r0, #0x0
+ beq _02056E56
+ mov r0, #0x1
+ pop {r3-r7, pc}
+_02056E56:
+ cmp r5, #0x2
+ bne _02056E68
+ add r0, r4, #0x0
+ bl FUN_02054A30
+ cmp r0, #0x0
+ beq _02056E68
+ mov r0, #0x1
+ pop {r3-r7, pc}
+_02056E68:
+ mov r0, #0x0
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_02056E6C
+FUN_02056E6C: ; 0x02056E6C
+ push {r3-r7, lr}
+ sub sp, #0x8
+ mov r0, #0x0
+ add r4, r2, #0x0
+ mvn r0, r0
+ add r5, r1, #0x0
+ cmp r4, r0
+ beq _02056EC2
+ add r0, r5, #0x0
+ bl FUN_02058738
+ str r0, [sp, #0x0]
+ add r0, r5, #0x0
+ bl FUN_02058B2C
+ add r6, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_02059BF4
+ add r7, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_02058B4C
+ str r0, [sp, #0x4]
+ add r0, r4, #0x0
+ bl FUN_02059C00
+ add r3, r0, #0x0
+ ldr r2, [sp, #0x4]
+ ldr r0, [sp, #0x0]
+ add r1, r6, r7
+ add r2, r2, r3
+ bl FUN_0204A6E0
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_02059AC4
+ cmp r0, #0x0
+ beq _02056EC2
+ add sp, #0x8
+ mov r0, #0x1
+ pop {r3-r7, pc}
+_02056EC2:
+ mov r0, #0x0
+ add sp, #0x8
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_02056EC8
+FUN_02056EC8: ; 0x02056EC8
+ push {r4-r7, lr}
+ sub sp, #0xc
+ str r0, [sp, #0x0]
+ mov r0, #0x0
+ add r4, r2, #0x0
+ mvn r0, r0
+ add r5, r1, #0x0
+ cmp r4, r0
+ beq _02056F72
+ add r0, r5, #0x0
+ bl FUN_02058738
+ str r0, [sp, #0x4]
+ add r0, r5, #0x0
+ bl FUN_02058B2C
+ add r6, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_02059BF4
+ add r7, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_02058B4C
+ str r0, [sp, #0x8]
+ add r0, r4, #0x0
+ bl FUN_02059C00
+ add r2, r0, #0x0
+ ldr r3, [sp, #0x8]
+ ldr r0, [sp, #0x4]
+ add r1, r6, r7
+ add r2, r3, r2
+ bl FUN_0204A6E0
+ add r6, r0, #0x0
+ ldr r0, [sp, #0x0]
+ bl FUN_020553C4
+ cmp r0, #0x1
+ bne _02056F54
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ bl FUN_02059BB4
+ cmp r0, #0x1
+ bne _02056F36
+ cmp r4, #0x1
+ bls _02056F30
+ add sp, #0xc
+ mov r0, #0x1
+ pop {r4-r7, pc}
+_02056F30:
+ add sp, #0xc
+ mov r0, #0x0
+ pop {r4-r7, pc}
+_02056F36:
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ bl FUN_02059BD4
+ cmp r0, #0x1
+ bne _02056F72
+ sub r0, r4, #0x2
+ cmp r0, #0x1
+ bls _02056F4E
+ add sp, #0xc
+ mov r0, #0x1
+ pop {r4-r7, pc}
+_02056F4E:
+ add sp, #0xc
+ mov r0, #0x0
+ pop {r4-r7, pc}
+_02056F54:
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ bl FUN_02059BB4
+ cmp r0, #0x1
+ beq _02056F6C
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ bl FUN_02059BD4
+ cmp r0, #0x1
+ bne _02056F72
+_02056F6C:
+ add sp, #0xc
+ mov r0, #0x1
+ pop {r4-r7, pc}
+_02056F72:
+ mov r0, #0x0
+ add sp, #0xc
+ pop {r4-r7, pc}
+
+ thumb_func_start FUN_02056F78
+FUN_02056F78: ; 0x02056F78
+ push {r3-r7, lr}
+ sub sp, #0x8
+ add r5, r1, #0x0
+ mov r1, #0x0
+ add r4, r2, #0x0
+ mvn r1, r1
+ cmp r4, r1
+ beq _0205701A
+ bl FUN_020553C4
+ cmp r0, #0x1
+ bne _0205701A
+ add r0, r5, #0x0
+ bl FUN_02058738
+ str r0, [sp, #0x0]
+ add r0, r5, #0x0
+ bl FUN_02058B2C
+ add r6, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_02059BF4
+ add r7, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_02058B4C
+ str r0, [sp, #0x4]
+ add r0, r4, #0x0
+ bl FUN_02059C00
+ add r3, r0, #0x0
+ ldr r2, [sp, #0x4]
+ ldr r0, [sp, #0x0]
+ add r1, r6, r7
+ add r2, r2, r3
+ bl FUN_0204A6E0
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_02059AC4
+ cmp r0, #0x0
+ beq _02056FD8
+ add sp, #0x8
+ mov r0, #0x1
+ pop {r3-r7, pc}
+_02056FD8:
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_02059B2C
+ cmp r0, #0x0
+ beq _02056FEA
+ add sp, #0x8
+ mov r0, #0x1
+ pop {r3-r7, pc}
+_02056FEA:
+ add r0, r4, #0x0
+ bl FUN_02054798
+ cmp r0, #0x0
+ beq _02056FFA
+ add sp, #0x8
+ mov r0, #0x1
+ pop {r3-r7, pc}
+_02056FFA:
+ add r0, r4, #0x0
+ bl FUN_02054974
+ cmp r0, #0x0
+ beq _0205700A
+ add sp, #0x8
+ mov r0, #0x1
+ pop {r3-r7, pc}
+_0205700A:
+ add r0, r4, #0x0
+ bl FUN_02054990
+ cmp r0, #0x0
+ beq _0205701A
+ add sp, #0x8
+ mov r0, #0x1
+ pop {r3-r7, pc}
+_0205701A:
+ mov r0, #0x0
+ add sp, #0x8
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_02057020
+FUN_02057020: ; 0x02057020
+ ldr r3, _02057024 ; =FUN_02057060
+ bx r3
+ .balign 4
+_02057024: .word FUN_02057060
+
+ thumb_func_start FUN_02057028
+FUN_02057028: ; 0x02057028
+ mov r1, #0x20
+ tst r1, r0
+ beq _02057032
+ mov r0, #0x2
+ bx lr
+_02057032:
+ mov r1, #0x10
+ tst r0, r1
+ beq _0205703C
+ mov r1, #0x3
+ b _0205703E
+_0205703C:
+ sub r1, #0x11
+_0205703E:
+ add r0, r1, #0x0
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02057044
+FUN_02057044: ; 0x02057044
+ mov r1, #0x40
+ tst r1, r0
+ beq _0205704E
+ mov r0, #0x0
+ bx lr
+_0205704E:
+ mov r1, #0x80
+ tst r0, r1
+ beq _02057058
+ mov r1, #0x1
+ b _0205705A
+_02057058:
+ sub r1, #0x81
+_0205705A:
+ add r0, r1, #0x0
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02057060
+FUN_02057060: ; 0x02057060
+ push {r3-r7, lr}
+ add r5, r2, #0x0
+ add r6, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_02057028
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_02057044
+ mov r1, #0x0
+ mvn r1, r1
+ add r5, r0, #0x0
+ cmp r4, r1
+ beq _020570C0
+ cmp r5, r1
+ bne _02057086
+ add r0, r4, #0x0
+ pop {r3-r7, pc}
+_02057086:
+ add r0, r6, #0x0
+ bl FUN_02055314
+ add r7, r0, #0x0
+ add r0, r6, #0x0
+ bl FUN_02055430
+ str r0, [sp, #0x0]
+ add r0, r6, #0x0
+ bl FUN_02055438
+ mov r1, #0x0
+ mvn r1, r1
+ cmp r7, r1
+ beq _020570BE
+ ldr r1, [sp, #0x0]
+ cmp r4, r1
+ bne _020570B2
+ cmp r5, r0
+ bne _020570B2
+ add r0, r7, #0x0
+ pop {r3-r7, pc}
+_020570B2:
+ cmp r5, r0
+ beq _020570BA
+ add r0, r5, #0x0
+ pop {r3-r7, pc}
+_020570BA:
+ add r0, r4, #0x0
+ pop {r3-r7, pc}
+_020570BE:
+ add r0, r5, #0x0
+_020570C0:
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_020570C4
+FUN_020570C4: ; 0x020570C4
+ push {r4, lr}
+ bl FUN_020553A0
+ add r4, r0, #0x0
+ bl FUN_0205AD98
+ cmp r0, #0x1
+ bne _020570D8
+ mov r0, #0x1
+ pop {r4, pc}
+_020570D8:
+ add r0, r4, #0x0
+ bl FUN_020586F0
+ bl FUN_020570F0
+ cmp r0, #0x1
+ bne _020570EA
+ mov r0, #0x1
+ pop {r4, pc}
+_020570EA:
+ mov r0, #0x0
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_020570F0
+FUN_020570F0: ; 0x020570F0
+ sub r0, #0x1c
+ cmp r0, #0x3
+ bhi _0205710E
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02057102: ; jump table (using 16-bit offset)
+ .short _0205710A - _02057102 - 2; case 0
+ .short _0205710A - _02057102 - 2; case 1
+ .short _0205710A - _02057102 - 2; case 2
+ .short _0205710A - _02057102 - 2; case 3
+_0205710A:
+ mov r0, #0x1
+ bx lr
+_0205710E:
+ mov r0, #0x0
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02057114
+FUN_02057114: ; 0x02057114
+ mov r0, #0x2
+ tst r0, r1
+ beq _0205711E
+ mov r0, #0x1
+ bx lr
+_0205711E:
+ mov r0, #0x0
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02057124
+FUN_02057124: ; 0x02057124
+ push {r3, lr}
+ bl FUN_02055464
+ sub r0, #0x58
+ cmp r0, #0x3
+ bhi _02057148
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0205713C: ; jump table (using 16-bit offset)
+ .short _02057144 - _0205713C - 2; case 0
+ .short _02057144 - _0205713C - 2; case 1
+ .short _02057144 - _0205713C - 2; case 2
+ .short _02057144 - _0205713C - 2; case 3
+_02057144:
+ mov r0, #0x1
+ pop {r3, pc}
+_02057148:
+ mov r0, #0x0
+ pop {r3, pc}
+
+ thumb_func_start FUN_0205714C
+FUN_0205714C: ; 0x0205714C
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ bl FUN_020553C4
+ cmp r0, #0x0
+ beq _02057162
+ cmp r0, #0x1
+ beq _02057172
+ cmp r0, #0x2
+ bne _02057188
+_02057162:
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_02056244
+ bl FUN_020561EC
+ add r4, r0, #0x0
+ b _0205718E
+_02057172:
+ add r0, r5, #0x0
+ bl FUN_020554BC
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_020568A8
+ bl FUN_02056874
+ add r4, r0, #0x0
+ b _0205718E
+_02057188:
+ mov r4, #0x0
+ bl ErrorHandling
+_0205718E:
+ add r0, r4, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_02057194
+FUN_02057194: ; 0x02057194
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ add r7, r2, #0x0
+ add r6, r3, #0x0
+ bl FUN_02057060
+ str r0, [sp, #0x0]
+ ldr r1, [sp, #0x0]
+ add r0, r5, #0x0
+ bl FUN_0205714C
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_0205536C
+ cmp r4, #0x0
+ bne _020571C6
+ add r0, r5, #0x0
+ bl FUN_020552F8
+ mov r1, #0x0
+ bl FUN_0205AFDC
+ pop {r3-r7, pc}
+_020571C6:
+ cmp r4, #0x2
+ bne _020571D4
+ ldr r0, [sp, #0x0]
+ mov r1, #0x28
+ bl FUN_0205AFDC
+ pop {r3-r7, pc}
+_020571D4:
+ add r0, r5, #0x0
+ bl FUN_020553A0
+ ldr r0, [sp, #0x1c]
+ mov r4, #0x4
+ add r1, r0, #0x0
+ tst r1, r4
+ beq _020571E8
+ mov r4, #0x38
+ b _02057244
+_020571E8:
+ cmp r0, #0x0
+ beq _020571FC
+ mov r1, #0x8
+ mov r4, #0x1c
+ tst r0, r1
+ bne _02057244
+ ldr r0, _02057250 ; =0x00000601
+ bl FUN_020054C8
+ b _02057244
+_020571FC:
+ cmp r6, #0x5
+ bhi _0205722E
+ add r0, r6, r6
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0205720C: ; jump table (using 16-bit offset)
+ .short _02057218 - _0205720C - 2; case 0
+ .short _0205721A - _0205720C - 2; case 1
+ .short _0205721E - _0205720C - 2; case 2
+ .short _02057222 - _0205720C - 2; case 3
+ .short _02057226 - _0205720C - 2; case 4
+ .short _0205722A - _0205720C - 2; case 5
+_02057218:
+ b _02057230
+_0205721A:
+ mov r4, #0x8
+ b _02057230
+_0205721E:
+ mov r4, #0xc
+ b _02057230
+_02057222:
+ mov r4, #0x4c
+ b _02057230
+_02057226:
+ mov r4, #0x10
+ b _02057230
+_0205722A:
+ mov r4, #0x14
+ b _02057230
+_0205722E:
+ mov r4, #0x4
+_02057230:
+ ldr r0, [sp, #0x18]
+ cmp r0, #0x1
+ bne _02057244
+ add r0, r5, #0x0
+ add r1, r7, #0x0
+ bl FUN_02057114
+ cmp r0, #0x1
+ bne _02057244
+ mov r4, #0x58
+_02057244:
+ ldr r0, [sp, #0x0]
+ add r1, r4, #0x0
+ bl FUN_0205AFDC
+ pop {r3-r7, pc}
+ nop
+_02057250: .word 0x00000601
+
+ thumb_func_start FUN_02057254
+FUN_02057254: ; 0x02057254
+ push {r3, lr}
+ bl FUN_020553A0
+ bl FUN_0205AD98
+ pop {r3, pc}
+
+ thumb_func_start FUN_02057260
+FUN_02057260: ; 0x02057260
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ bl FUN_020553A0
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r2, r4, #0x0
+ bl FUN_02056B5C
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_02057278
+FUN_02057278: ; 0x02057278
+ push {r4, lr}
+ add r4, r1, #0x0
+ bl FUN_020553A0
+ add r1, r4, #0x0
+ bl FUN_02059C90
+ pop {r4, pc}
+
+ thumb_func_start FUN_02057288
+FUN_02057288: ; 0x02057288
+ push {r3-r7, lr}
+ add r5, r1, #0x0
+ str r0, [sp, #0x0]
+ add r4, r2, #0x0
+ add r7, r3, #0x0
+ bl FUN_02055320
+ add r6, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_02059BF4
+ add r0, r6, r0
+ str r0, [r4, #0x0]
+ ldr r0, [sp, #0x0]
+ bl FUN_0205532C
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_02059C00
+ add r0, r4, r0
+ str r0, [r7, #0x0]
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_020572B8
+FUN_020572B8: ; 0x020572B8
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ add r6, r2, #0x0
+ bl FUN_020552F8
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r2, r4, #0x0
+ add r3, r6, #0x0
+ bl FUN_02057288
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_020572D4
+FUN_020572D4: ; 0x020572D4
+ push {r3, lr}
+ bl FUN_020553A0
+ bl FUN_02058738
+ ldr r0, [r0, #0xc]
+ bl FUN_02029FC8
+ mov r1, #0x5
+ bl FUN_0202A0E8
+ pop {r3, pc}
+
+ thumb_func_start FUN_020572EC
+FUN_020572EC: ; 0x020572EC
+ push {r4-r6, lr}
+ mov r0, #0x0
+ add r4, r2, #0x0
+ mvn r0, r0
+ add r5, r1, #0x0
+ cmp r4, r0
+ beq _02057336
+ add r0, r5, #0x0
+ bl FUN_02058720
+ lsl r0, r0, #0x18
+ lsr r6, r0, #0x18
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ bl FUN_02059BB4
+ cmp r0, #0x1
+ bne _0205731C
+ cmp r4, #0x1
+ bls _02057318
+ mov r0, #0x1
+ pop {r4-r6, pc}
+_02057318:
+ mov r0, #0x0
+ pop {r4-r6, pc}
+_0205731C:
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ bl FUN_02059BD4
+ cmp r0, #0x1
+ bne _02057336
+ sub r0, r4, #0x2
+ cmp r0, #0x1
+ bls _02057332
+ mov r0, #0x1
+ pop {r4-r6, pc}
+_02057332:
+ mov r0, #0x0
+ pop {r4-r6, pc}
+_02057336:
+ mov r0, #0x0
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_0205733C
+FUN_0205733C: ; 0x0205733C
+ push {r3-r5, lr}
+ add r4, r1, #0x0
+ mov r1, #0x0
+ mvn r1, r1
+ add r5, r0, #0x0
+ cmp r2, r1
+ beq _0205734E
+ mov r0, #0x0
+ pop {r3-r5, pc}
+_0205734E:
+ bl FUN_020553C4
+ cmp r0, #0x1
+ beq _0205735A
+ mov r0, #0x0
+ pop {r3-r5, pc}
+_0205735A:
+ add r0, r5, #0x0
+ bl FUN_02055738
+ cmp r0, #0x0
+ bne _02057368
+ mov r0, #0x0
+ pop {r3-r5, pc}
+_02057368:
+ add r0, r5, #0x0
+ bl FUN_020553A0
+ add r1, r4, #0x0
+ bl FUN_02059B94
+ cmp r0, #0x1
+ bne _0205737C
+ mov r0, #0x1
+ pop {r3-r5, pc}
+_0205737C:
+ mov r0, #0x0
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_02057380
+FUN_02057380: ; 0x02057380
+ push {r3-r7, lr}
+ add r5, r1, #0x0
+ add r6, r0, #0x0
+ add r0, r5, #0x0
+ add r7, r2, #0x0
+ bl FUN_02057444
+ add r4, r0, #0x0
+ add r1, r6, #0x0
+ bl FUN_020583E0
+ add r0, r4, #0x0
+ add r1, r5, #0x0
+ bl FUN_02058364
+ add r0, r4, #0x0
+ add r1, r7, #0x0
+ bl FUN_02058398
+ add r0, r4, #0x0
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_020573AC
+FUN_020573AC: ; 0x020573AC
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl FUN_020583CC
+ add r1, r0, #0x0
+ mov r0, #0xb
+ bl FUN_02016A8C
+ mov r0, #0xb
+ add r1, r4, #0x0
+ bl FUN_02016A8C
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_020573C8
+FUN_020573C8: ; 0x020573C8
+ push {r3-r7, lr}
+ sub sp, #0x8
+ str r0, [sp, #0x0]
+ add r5, r2, #0x0
+ str r3, [sp, #0x4]
+ ldr r7, [sp, #0x20]
+ bl FUN_02058368
+ add r6, r0, #0x0
+ ldr r0, [sp, #0x0]
+ bl FUN_020583CC
+ add r4, r0, #0x0
+ cmp r6, #0x0
+ beq _02057430
+_020573E6:
+ add r0, r4, #0x0
+ bl FUN_02058830
+ cmp r0, #0x1
+ bne _02057426
+ ldr r2, [sp, #0x4]
+ add r0, r4, #0x0
+ add r1, r5, #0x0
+ add r3, r7, #0x0
+ bl FUN_02057F90
+ cmp r0, #0x0
+ beq _02057408
+ cmp r0, #0x1
+ beq _02057426
+ cmp r0, #0x2
+ b _02057426
+_02057408:
+ add r0, r4, #0x0
+ bl FUN_02058450
+ cmp r5, r0
+ beq _02057426
+ mov r1, #0x1
+ add r0, r4, #0x0
+ lsl r1, r1, #0xa
+ bl FUN_0205842C
+ cmp r0, #0x0
+ bne _02057426
+ add r0, r4, #0x0
+ bl FUN_02057654
+_02057426:
+ mov r0, #0x4a
+ lsl r0, r0, #0x2
+ add r4, r4, r0
+ sub r6, r6, #0x1
+ bne _020573E6
+_02057430:
+ ldr r0, [sp, #0x0]
+ bl FUN_020583A0
+ add r1, r0, #0x0
+ ldr r0, [sp, #0x0]
+ bl FUN_021F2AF4
+ add sp, #0x8
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_02057444
+FUN_02057444: ; 0x02057444
+ push {r4-r6, lr}
+ mov r1, #0x4b
+ add r4, r0, #0x0
+ mov r0, #0xb
+ lsl r1, r1, #0x2
+ bl FUN_02016998
+ add r5, r0, #0x0
+ bne _0205745A
+ bl ErrorHandling
+_0205745A:
+ mov r2, #0x4b
+ add r0, r5, #0x0
+ mov r1, #0x0
+ lsl r2, r2, #0x2
+ blx Call_FillMemWithValue
+ mov r0, #0x4a
+ lsl r0, r0, #0x2
+ add r6, r4, #0x0
+ mul r6, r0
+ mov r0, #0xb
+ add r1, r6, #0x0
+ bl FUN_02016998
+ add r4, r0, #0x0
+ bne _0205747E
+ bl ErrorHandling
+_0205747E:
+ add r0, r4, #0x0
+ mov r1, #0x0
+ add r2, r6, #0x0
+ blx Call_FillMemWithValue
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_020583B4
+ add r0, r5, #0x0
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_02057494
+FUN_02057494: ; 0x02057494
+ push {r3-r7, lr}
+ add r6, r1, #0x0
+ add r5, r0, #0x0
+ add r0, r6, #0x0
+ add r7, r2, #0x0
+ bl FUN_02058BFC
+ add r4, r0, #0x0
+ add r0, r6, #0x0
+ bl FUN_02058CE0
+ cmp r0, #0x0
+ bne _020574C8
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ add r2, r7, #0x0
+ bl FUN_02057C98
+ add r4, r0, #0x0
+ beq _020574E8
+ add r1, r6, #0x0
+ add r2, r7, #0x0
+ bl FUN_02058214
+ add r0, r4, #0x0
+ pop {r3-r7, pc}
+_020574C8:
+ add r0, r6, #0x0
+ bl FUN_02058CFC
+ add r2, r0, #0x0
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_02058010
+ add r4, r0, #0x0
+ beq _020574E8
+ add r1, r7, #0x0
+ add r2, r6, #0x0
+ bl FUN_02058258
+ add r0, r4, #0x0
+ pop {r3-r7, pc}
+_020574E8:
+ add r0, r5, #0x0
+ bl FUN_02057C64
+ add r4, r0, #0x0
+ beq _0205753A
+ add r0, r5, #0x0
+ bl FUN_020583E8
+ add r2, r0, #0x0
+ add r0, r4, #0x0
+ add r1, r6, #0x0
+ bl FUN_02057D2C
+ add r0, r4, #0x0
+ add r1, r5, #0x0
+ bl FUN_02057E90
+ add r0, r4, #0x0
+ add r1, r7, #0x0
+ bl FUN_0205844C
+ add r0, r4, #0x0
+ bl FUN_020581A4
+ add r0, r4, #0x0
+ bl FUN_020581B4
+ add r0, r4, #0x0
+ mov r1, #0x4
+ bl FUN_02058410
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_02057CF0
+ add r0, r5, #0x0
+ bl FUN_02058360
+ bl FUN_0205836C
+ add r0, r4, #0x0
+_0205753A:
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_0205753C
+FUN_0205753C: ; 0x0205753C
+ push {r3-r7, lr}
+ sub sp, #0x20
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ add r0, sp, #0x0
+ mov r1, #0x0
+ add r6, r2, #0x0
+ add r7, r3, #0x0
+ bl FUN_02058BF8
+ ldr r1, [sp, #0x38]
+ add r0, sp, #0x0
+ bl FUN_02058C00
+ ldr r1, [sp, #0x3c]
+ add r0, sp, #0x0
+ bl FUN_02058C08
+ add r0, sp, #0x0
+ mov r1, #0x0
+ bl FUN_02058C10
+ add r0, sp, #0x0
+ mov r1, #0x0
+ bl FUN_02058C18
+ add r0, sp, #0x0
+ mov r1, #0x0
+ bl FUN_02058C20
+ add r0, sp, #0x0
+ add r1, r7, #0x0
+ bl FUN_02058C28
+ mov r1, #0x0
+ add r0, sp, #0x0
+ add r2, r1, #0x0
+ bl FUN_02058C34
+ add r0, sp, #0x0
+ mov r1, #0x0
+ mov r2, #0x1
+ bl FUN_02058C34
+ add r0, sp, #0x0
+ mov r1, #0x0
+ mov r2, #0x2
+ bl FUN_02058C34
+ add r0, sp, #0x0
+ mov r1, #0x0
+ bl FUN_02058C7C
+ add r0, sp, #0x0
+ mov r1, #0x0
+ bl FUN_02058C88
+ add r0, sp, #0x0
+ add r1, r4, #0x0
+ bl FUN_02058C94
+ add r0, sp, #0x0
+ add r1, r6, #0x0
+ bl FUN_02058CA4
+ add r0, sp, #0x0
+ mov r1, #0x0
+ bl FUN_02058C9C
+ ldr r2, [sp, #0x40]
+ add r0, r5, #0x0
+ add r1, sp, #0x0
+ bl FUN_02057494
+ add sp, #0x20
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_020575D4
+FUN_020575D4: ; 0x020575D4
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ add r0, r1, #0x0
+ add r1, r2, #0x0
+ ldr r2, [sp, #0x18]
+ add r7, r3, #0x0
+ mov r4, #0x0
+ bl FUN_02058CAC
+ str r0, [sp, #0x0]
+ cmp r0, #0x0
+ beq _02057610
+ bl FUN_02058C1C
+ add r6, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_020583E8
+ lsl r1, r6, #0x10
+ lsr r1, r1, #0x10
+ bl FUN_02039528
+ cmp r0, #0x0
+ bne _02057610
+ ldr r1, [sp, #0x0]
+ add r0, r5, #0x0
+ add r2, r7, #0x0
+ bl FUN_02057494
+ add r4, r0, #0x0
+_02057610:
+ add r0, r4, #0x0
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_02057614
+FUN_02057614: ; 0x02057614
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl FUN_02058454
+ add r0, r4, #0x0
+ bl FUN_02058148
+ mov r1, #0x1
+ add r0, r4, #0x0
+ lsl r1, r1, #0xe
+ bl FUN_02058418
+ add r0, r4, #0x0
+ bl FUN_020581B4
+ pop {r4, pc}
+
+ thumb_func_start FUN_02057634
+FUN_02057634: ; 0x02057634
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ bl FUN_02058934
+ cmp r0, #0x1
+ bne _02057648
+ add r0, r5, #0x0
+ bl FUN_020576A8
+_02057648:
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_02057614
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_02057654
+FUN_02057654: ; 0x02057654
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl FUN_02058578
+ bl FUN_020587E0
+ cmp r0, #0x1
+ bne _0205766A
+ add r0, r4, #0x0
+ bl FUN_020586B4
+_0205766A:
+ add r0, r4, #0x0
+ bl FUN_02058660
+ add r0, r4, #0x0
+ bl FUN_02058564
+ add r0, r4, #0x0
+ bl FUN_02058580
+ bl FUN_02058374
+ add r0, r4, #0x0
+ bl FUN_02057F80
+ pop {r4, pc}
+
+ thumb_func_start FUN_02057688
+FUN_02057688: ; 0x02057688
+ push {r3-r5, lr}
+ add r4, r0, #0x0
+ bl FUN_02058490
+ add r5, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_02058738
+ lsl r1, r5, #0x10
+ lsr r1, r1, #0x10
+ bl FUN_0203953C
+ add r0, r4, #0x0
+ bl FUN_02057654
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_020576A8
+FUN_020576A8: ; 0x020576A8
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl FUN_02058578
+ bl FUN_020587E0
+ cmp r0, #0x1
+ bne _020576D6
+ mov r1, #0x1
+ add r0, r4, #0x0
+ lsl r1, r1, #0xe
+ bl FUN_02058424
+ cmp r0, #0x0
+ beq _020576CC
+ add r0, r4, #0x0
+ bl FUN_020586B4
+_020576CC:
+ mov r1, #0x1
+ add r0, r4, #0x0
+ lsl r1, r1, #0xe
+ bl FUN_02058418
+_020576D6:
+ ldr r1, _02057708 ; =0x0000FFFF
+ add r0, r4, #0x0
+ bl FUN_02058454
+ ldr r1, _0205770C ; =FUN_02058ED8
+ add r0, r4, #0x0
+ bl FUN_02058684
+ ldr r1, _02057710 ; =FUN_02058EDC
+ add r0, r4, #0x0
+ bl FUN_02058698
+ ldr r1, _02057710 ; =FUN_02058EDC
+ add r0, r4, #0x0
+ bl FUN_020586AC
+ ldr r1, _02057714 ; =FUN_02058EE0
+ add r0, r4, #0x0
+ bl FUN_020586C0
+ ldr r1, _02057718 ; =FUN_02058EE4
+ add r0, r4, #0x0
+ bl FUN_020586D4
+ pop {r4, pc}
+ .balign 4
+_02057708: .word 0x0000FFFF
+_0205770C: .word FUN_02058ED8
+_02057710: .word FUN_02058EDC
+_02057714: .word FUN_02058EE0
+_02057718: .word FUN_02058EE4
+
+ thumb_func_start FUN_0205771C
+FUN_0205771C: ; 0x0205771C
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ mov r4, #0x0
+ bl FUN_02058368
+ add r6, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_020583CC
+ mov r7, #0x4a
+ add r5, r0, #0x0
+ lsl r7, r7, #0x2
+_02057734:
+ add r0, r5, #0x0
+ mov r1, #0x1
+ bl FUN_02058424
+ cmp r0, #0x0
+ beq _02057746
+ add r0, r5, #0x0
+ bl FUN_02057654
+_02057746:
+ add r4, r4, #0x1
+ add r5, r5, r7
+ cmp r4, r6
+ blt _02057734
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_02057750
+FUN_02057750: ; 0x02057750
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ bl FUN_020587E0
+ cmp r0, #0x1
+ beq _02057760
+ bl ErrorHandling
+_02057760:
+ add r0, r5, #0x0
+ mov r4, #0x0
+ bl FUN_02058368
+ add r6, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_020583CC
+ mov r7, #0x4a
+ add r5, r0, #0x0
+ lsl r7, r7, #0x2
+_02057776:
+ add r0, r5, #0x0
+ mov r1, #0x1
+ bl FUN_02058424
+ cmp r0, #0x0
+ beq _0205779C
+ mov r1, #0x1
+ add r0, r5, #0x0
+ lsl r1, r1, #0xe
+ bl FUN_02058424
+ cmp r0, #0x0
+ beq _0205779C
+ add r0, r5, #0x0
+ bl FUN_020586C8
+ add r0, r5, #0x0
+ bl FUN_0205816C
+_0205779C:
+ add r4, r4, #0x1
+ add r5, r5, r7
+ cmp r4, r6
+ blt _02057776
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_020577A8
+FUN_020577A8: ; 0x020577A8
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ bl FUN_020587E0
+ cmp r0, #0x1
+ beq _020577B8
+ bl ErrorHandling
+_020577B8:
+ add r0, r5, #0x0
+ mov r4, #0x0
+ bl FUN_02058368
+ add r6, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_020583CC
+ mov r7, #0x4a
+ add r5, r0, #0x0
+ lsl r7, r7, #0x2
+_020577CE:
+ add r0, r5, #0x0
+ bl FUN_02058830
+ cmp r0, #0x1
+ bne _020577F6
+ add r0, r5, #0x0
+ bl FUN_02058884
+ cmp r0, #0x1
+ bne _020577EA
+ add r0, r5, #0x0
+ bl FUN_020586DC
+ b _020577F0
+_020577EA:
+ add r0, r5, #0x0
+ bl FUN_020581B4
+_020577F0:
+ add r0, r5, #0x0
+ bl FUN_02058148
+_020577F6:
+ add r4, r4, #0x1
+ add r5, r5, r7
+ cmp r4, r6
+ blt _020577CE
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_02057800
+FUN_02057800: ; 0x02057800
+ push {r3-r7, lr}
+ sub sp, #0x8
+ add r7, r0, #0x0
+ add r6, r1, #0x0
+ mov r0, #0x0
+ add r5, r2, #0x0
+ add r4, r3, #0x0
+ str r0, [sp, #0x4]
+ add r0, r6, #0x0
+ add r1, sp, #0x0
+ add r2, sp, #0x4
+ mov r3, #0x1
+ bl FUN_020580F4
+ cmp r0, #0x0
+ beq _02057846
+_02057820:
+ ldr r1, [sp, #0x0]
+ add r0, r7, #0x0
+ add r2, r5, #0x0
+ bl FUN_02057894
+ sub r4, r4, #0x1
+ add r5, #0x50
+ cmp r4, #0x0
+ bgt _02057836
+ bl ErrorHandling
+_02057836:
+ add r0, r6, #0x0
+ add r1, sp, #0x0
+ add r2, sp, #0x4
+ mov r3, #0x1
+ bl FUN_020580F4
+ cmp r0, #0x0
+ bne _02057820
+_02057846:
+ cmp r4, #0x0
+ beq _02057856
+ mov r2, #0x50
+ add r0, r5, #0x0
+ mov r1, #0x0
+ mul r2, r4
+ blx Call_FillMemWithValue
+_02057856:
+ add sp, #0x8
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_0205785C
+FUN_0205785C: ; 0x0205785C
+ push {r3-r7, lr}
+ add r6, r0, #0x0
+ add r5, r1, #0x0
+ add r7, r2, #0x0
+ beq _02057892
+_02057866:
+ ldr r1, [r5, #0x0]
+ mov r0, #0x1
+ tst r0, r1
+ beq _0205788C
+ add r0, r6, #0x0
+ bl FUN_02057C64
+ add r4, r0, #0x0
+ bne _0205787C
+ bl ErrorHandling
+_0205787C:
+ add r0, r4, #0x0
+ add r1, r5, #0x0
+ bl FUN_020579C4
+ add r0, r6, #0x0
+ add r1, r4, #0x0
+ bl FUN_02057AEC
+_0205788C:
+ add r5, #0x50
+ sub r7, r7, #0x1
+ bne _02057866
+_02057892:
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_02057894
+FUN_02057894: ; 0x02057894
+ push {r3-r6, lr}
+ sub sp, #0xc
+ add r5, r1, #0x0
+ add r6, r0, #0x0
+ add r4, r2, #0x0
+ add r0, r5, #0x0
+ bl FUN_0205840C
+ str r0, [r4, #0x0]
+ add r0, r5, #0x0
+ bl FUN_02058440
+ str r0, [r4, #0x4]
+ add r0, r5, #0x0
+ bl FUN_02058448
+ strb r0, [r4, #0x8]
+ add r0, r5, #0x0
+ bl FUN_02058450
+ strh r0, [r4, #0x10]
+ add r0, r5, #0x0
+ bl FUN_02058458
+ strh r0, [r4, #0x12]
+ add r0, r5, #0x0
+ bl FUN_02058480
+ strb r0, [r4, #0x9]
+ add r0, r5, #0x0
+ bl FUN_02058488
+ strh r0, [r4, #0x14]
+ add r0, r5, #0x0
+ bl FUN_02058490
+ strh r0, [r4, #0x16]
+ add r0, r5, #0x0
+ bl FUN_02058498
+ strh r0, [r4, #0x18]
+ add r0, r5, #0x0
+ bl FUN_020584A0
+ strb r0, [r4, #0xc]
+ add r0, r5, #0x0
+ bl FUN_020584C4
+ strb r0, [r4, #0xd]
+ add r0, r5, #0x0
+ bl FUN_020584D4
+ strb r0, [r4, #0xe]
+ add r0, r5, #0x0
+ mov r1, #0x0
+ bl FUN_02058510
+ strh r0, [r4, #0x1a]
+ add r0, r5, #0x0
+ mov r1, #0x1
+ bl FUN_02058510
+ strh r0, [r4, #0x1c]
+ add r0, r5, #0x0
+ mov r1, #0x2
+ bl FUN_02058510
+ strh r0, [r4, #0x1e]
+ add r0, r5, #0x0
+ bl FUN_02058538
+ strb r0, [r4, #0xa]
+ add r0, r5, #0x0
+ bl FUN_02058540
+ strb r0, [r4, #0xb]
+ add r0, r5, #0x0
+ bl FUN_02058AFC
+ strh r0, [r4, #0x20]
+ add r0, r5, #0x0
+ bl FUN_02058B04
+ strh r0, [r4, #0x22]
+ add r0, r5, #0x0
+ bl FUN_02058B0C
+ strh r0, [r4, #0x24]
+ add r0, r5, #0x0
+ bl FUN_02058B2C
+ strh r0, [r4, #0x26]
+ add r0, r5, #0x0
+ bl FUN_02058B3C
+ strh r0, [r4, #0x28]
+ add r0, r5, #0x0
+ bl FUN_02058B4C
+ strh r0, [r4, #0x2a]
+ mov r0, #0x26
+ mov r1, #0x2a
+ ldrsh r0, [r4, r0]
+ ldrsh r1, [r4, r1]
+ add r2, sp, #0x0
+ bl FUN_02059E60
+ add r0, r5, #0x0
+ bl FUN_02058B80
+ str r0, [sp, #0x4]
+ add r0, r5, #0x0
+ bl FUN_02058AE4
+ add r2, r0, #0x0
+ add r0, r6, #0x0
+ add r1, sp, #0x0
+ bl FUN_02059EC8
+ cmp r0, #0x0
+ bne _0205798E
+ add r0, r5, #0x0
+ bl FUN_02058B80
+ b _02057990
+_0205798E:
+ ldr r0, [sp, #0x4]
+_02057990:
+ str r0, [r4, #0x2c]
+ add r0, r5, #0x0
+ bl FUN_020585B0
+ add r3, r4, #0x0
+ add r3, #0x30
+ mov r2, #0x10
+_0205799E:
+ ldrb r1, [r0, #0x0]
+ add r0, r0, #0x1
+ strb r1, [r3, #0x0]
+ add r3, r3, #0x1
+ sub r2, r2, #0x1
+ bne _0205799E
+ add r0, r5, #0x0
+ bl FUN_020585D8
+ add r4, #0x40
+ mov r2, #0x10
+_020579B4:
+ ldrb r1, [r0, #0x0]
+ add r0, r0, #0x1
+ strb r1, [r4, #0x0]
+ add r4, r4, #0x1
+ sub r2, r2, #0x1
+ bne _020579B4
+ add sp, #0xc
+ pop {r3-r6, pc}
+
+ thumb_func_start FUN_020579C4
+FUN_020579C4: ; 0x020579C4
+ push {r4-r5, lr}
+ sub sp, #0xc
+ add r4, r1, #0x0
+ ldr r1, [r4, #0x0]
+ add r5, r0, #0x0
+ bl FUN_02058408
+ ldr r1, [r4, #0x4]
+ add r0, r5, #0x0
+ bl FUN_0205843C
+ ldrb r1, [r4, #0x8]
+ add r0, r5, #0x0
+ bl FUN_02058444
+ ldrh r1, [r4, #0x10]
+ add r0, r5, #0x0
+ bl FUN_0205844C
+ ldrh r1, [r4, #0x12]
+ add r0, r5, #0x0
+ bl FUN_02058454
+ ldrb r1, [r4, #0x9]
+ add r0, r5, #0x0
+ bl FUN_0205847C
+ ldrh r1, [r4, #0x14]
+ add r0, r5, #0x0
+ bl FUN_02058484
+ ldrh r1, [r4, #0x16]
+ add r0, r5, #0x0
+ bl FUN_0205848C
+ ldrh r1, [r4, #0x18]
+ add r0, r5, #0x0
+ bl FUN_02058494
+ mov r1, #0xc
+ ldrsb r1, [r4, r1]
+ add r0, r5, #0x0
+ bl FUN_0205849C
+ mov r1, #0xd
+ ldrsb r1, [r4, r1]
+ add r0, r5, #0x0
+ bl FUN_020584A4
+ mov r1, #0xe
+ ldrsb r1, [r4, r1]
+ add r0, r5, #0x0
+ bl FUN_020584CC
+ mov r1, #0x1a
+ ldrsh r1, [r4, r1]
+ add r0, r5, #0x0
+ mov r2, #0x0
+ bl FUN_020584EC
+ mov r1, #0x1c
+ ldrsh r1, [r4, r1]
+ add r0, r5, #0x0
+ mov r2, #0x1
+ bl FUN_020584EC
+ mov r1, #0x1e
+ ldrsh r1, [r4, r1]
+ add r0, r5, #0x0
+ mov r2, #0x2
+ bl FUN_020584EC
+ mov r1, #0xa
+ ldrsb r1, [r4, r1]
+ add r0, r5, #0x0
+ bl FUN_02058534
+ mov r1, #0xb
+ ldrsb r1, [r4, r1]
+ add r0, r5, #0x0
+ bl FUN_0205853C
+ mov r1, #0x20
+ ldrsh r1, [r4, r1]
+ add r0, r5, #0x0
+ bl FUN_02058B00
+ mov r1, #0x22
+ ldrsh r1, [r4, r1]
+ add r0, r5, #0x0
+ bl FUN_02058B08
+ mov r1, #0x24
+ ldrsh r1, [r4, r1]
+ add r0, r5, #0x0
+ bl FUN_02058B10
+ mov r1, #0x26
+ ldrsh r1, [r4, r1]
+ add r0, r5, #0x0
+ bl FUN_02058B30
+ mov r1, #0x28
+ ldrsh r1, [r4, r1]
+ add r0, r5, #0x0
+ bl FUN_02058B40
+ mov r1, #0x2a
+ ldrsh r1, [r4, r1]
+ add r0, r5, #0x0
+ bl FUN_02058B50
+ add r1, sp, #0x0
+ mov r0, #0x0
+ str r0, [r1, #0x0]
+ str r0, [r1, #0x4]
+ str r0, [r1, #0x8]
+ ldr r0, [r4, #0x2c]
+ str r0, [sp, #0x4]
+ add r0, r5, #0x0
+ bl FUN_02058B6C
+ add r0, r5, #0x0
+ bl FUN_020585B0
+ add r3, r4, #0x0
+ add r3, #0x30
+ mov r2, #0x10
+_02057AC4:
+ ldrb r1, [r3, #0x0]
+ add r3, r3, #0x1
+ strb r1, [r0, #0x0]
+ add r0, r0, #0x1
+ sub r2, r2, #0x1
+ bne _02057AC4
+ add r0, r5, #0x0
+ bl FUN_020585D8
+ add r4, #0x40
+ mov r2, #0x10
+_02057ADA:
+ ldrb r1, [r4, #0x0]
+ add r4, r4, #0x1
+ strb r1, [r0, #0x0]
+ add r0, r0, #0x1
+ sub r2, r2, #0x1
+ bne _02057ADA
+ add sp, #0xc
+ pop {r4-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_02057AEC
+FUN_02057AEC: ; 0x02057AEC
+ push {r3-r5, lr}
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_02057B34
+ add r0, r4, #0x0
+ bl FUN_02057B54
+ add r0, r4, #0x0
+ add r1, r5, #0x0
+ bl FUN_02058570
+ add r0, r4, #0x0
+ bl FUN_02057EE0
+ add r0, r4, #0x0
+ bl FUN_0205AE80
+ add r0, r4, #0x0
+ bl FUN_020581B4
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_02057CF0
+ add r0, r4, #0x0
+ bl FUN_0205866C
+ add r0, r5, #0x0
+ bl FUN_02058360
+ bl FUN_0205836C
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_02057B34
+FUN_02057B34: ; 0x02057B34
+ push {r4, lr}
+ mov r1, #0x5
+ add r4, r0, #0x0
+ bl FUN_02058410
+ ldr r1, _02057B50 ; =0x00EF4248
+ add r0, r4, #0x0
+ bl FUN_02058418
+ add r0, r4, #0x0
+ bl FUN_0205815C
+ pop {r4, pc}
+ nop
+_02057B50: .word 0x00EF4248
+
+ thumb_func_start FUN_02057B54
+FUN_02057B54: ; 0x02057B54
+ push {r3-r4, lr}
+ sub sp, #0xc
+ add r4, r0, #0x0
+ add r1, sp, #0x0
+ bl FUN_02058B5C
+ add r0, r4, #0x0
+ bl FUN_02058B2C
+ add r1, r0, #0x0
+ mov r0, #0x2
+ lsl r2, r1, #0x10
+ lsl r0, r0, #0xe
+ add r0, r2, r0
+ str r0, [sp, #0x0]
+ add r0, r4, #0x0
+ bl FUN_02058B18
+ add r0, r4, #0x0
+ bl FUN_02058B3C
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_02058B20
+ add r0, r4, #0x0
+ bl FUN_02058B4C
+ add r1, r0, #0x0
+ mov r0, #0x2
+ lsl r2, r1, #0x10
+ lsl r0, r0, #0xe
+ add r0, r2, r0
+ str r0, [sp, #0x8]
+ add r0, r4, #0x0
+ bl FUN_02058B28
+ add r0, r4, #0x0
+ add r1, sp, #0x0
+ bl FUN_02058B6C
+ add sp, #0xc
+ pop {r3-r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02057BAC
+FUN_02057BAC: ; 0x02057BAC
+ push {r3-r7, lr}
+ sub sp, #0x8
+ add r5, r2, #0x0
+ add r7, r0, #0x0
+ add r4, r3, #0x0
+ str r1, [sp, #0x0]
+ cmp r5, #0x0
+ bne _02057BC0
+ bl ErrorHandling
+_02057BC0:
+ lsl r0, r5, #0x5
+ str r0, [sp, #0x4]
+ ldr r1, [sp, #0x4]
+ mov r0, #0xb
+ bl FUN_020169D8
+ add r6, r0, #0x0
+ bne _02057BD4
+ bl ErrorHandling
+_02057BD4:
+ ldr r2, [sp, #0x4]
+ add r0, r6, #0x0
+ add r1, r4, #0x0
+ blx memcpy
+ mov r0, #0xb
+ mov r1, #0x14
+ bl FUN_020169D8
+ add r4, r0, #0x0
+ bne _02057BEE
+ bl ErrorHandling
+_02057BEE:
+ ldr r0, [sp, #0x0]
+ str r0, [r4, #0x0]
+ str r5, [r4, #0x4]
+ mov r0, #0x0
+ str r0, [r4, #0x8]
+ str r7, [r4, #0xc]
+ add r0, r4, #0x0
+ str r6, [r4, #0x10]
+ bl FUN_02057C08
+ add sp, #0x8
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_02057C08
+FUN_02057C08: ; 0x02057C08
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ ldr r0, [r5, #0xc]
+ bl FUN_020583E8
+ add r6, r5, #0x0
+ ldr r4, [r5, #0x10]
+ add r7, r0, #0x0
+ add r6, #0x8
+_02057C1A:
+ add r0, r4, #0x0
+ bl FUN_02058CE0
+ cmp r0, #0x1
+ beq _02057C30
+ ldrh r1, [r4, #0x8]
+ add r0, r7, #0x0
+ bl FUN_02039528
+ cmp r0, #0x0
+ bne _02057C42
+_02057C30:
+ ldr r0, [r5, #0xc]
+ ldr r2, [r5, #0x0]
+ add r1, r4, #0x0
+ bl FUN_02057494
+ cmp r0, #0x0
+ bne _02057C42
+ bl ErrorHandling
+_02057C42:
+ ldr r0, [r6, #0x0]
+ add r4, #0x20
+ add r0, r0, #0x1
+ str r0, [r6, #0x0]
+ ldr r1, [r5, #0x8]
+ ldr r0, [r5, #0x4]
+ cmp r1, r0
+ blt _02057C1A
+ ldr r1, [r5, #0x10]
+ mov r0, #0xb
+ bl FUN_02016A8C
+ mov r0, #0xb
+ add r1, r5, #0x0
+ bl FUN_02016A8C
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_02057C64
+FUN_02057C64: ; 0x02057C64
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ mov r4, #0x0
+ bl FUN_02058368
+ add r6, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_020583CC
+ mov r7, #0x4a
+ add r5, r0, #0x0
+ lsl r7, r7, #0x2
+_02057C7C:
+ add r0, r5, #0x0
+ mov r1, #0x1
+ bl FUN_02058424
+ cmp r0, #0x0
+ bne _02057C8C
+ add r0, r5, #0x0
+ pop {r3-r7, pc}
+_02057C8C:
+ add r4, r4, #0x1
+ add r5, r5, r7
+ cmp r4, r6
+ blt _02057C7C
+ mov r0, #0x0
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_02057C98
+FUN_02057C98: ; 0x02057C98
+ push {r3-r7, lr}
+ sub sp, #0x8
+ add r5, r1, #0x0
+ mov r1, #0x0
+ add r4, r2, #0x0
+ str r1, [sp, #0x4]
+ add r1, sp, #0x0
+ add r2, sp, #0x4
+ mov r3, #0x1
+ add r6, r0, #0x0
+ bl FUN_020580F4
+ cmp r0, #0x1
+ bne _02057CEA
+ add r7, sp, #0x0
+_02057CB6:
+ ldr r0, [sp, #0x0]
+ bl FUN_020589CC
+ cmp r0, #0x1
+ bne _02057CDA
+ ldr r0, [sp, #0x0]
+ bl FUN_02058448
+ cmp r5, r0
+ bne _02057CDA
+ ldr r0, [sp, #0x0]
+ bl FUN_02058750
+ cmp r4, r0
+ bne _02057CDA
+ ldr r0, [sp, #0x0]
+ add sp, #0x8
+ pop {r3-r7, pc}
+_02057CDA:
+ add r0, r6, #0x0
+ add r1, r7, #0x0
+ add r2, sp, #0x4
+ mov r3, #0x1
+ bl FUN_020580F4
+ cmp r0, #0x1
+ beq _02057CB6
+_02057CEA:
+ mov r0, #0x0
+ add sp, #0x8
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_02057CF0
+FUN_02057CF0: ; 0x02057CF0
+ push {r3-r5, lr}
+ add r4, r1, #0x0
+ bl FUN_0205839C
+ add r5, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_02058480
+ cmp r0, #0x30
+ beq _02057D08
+ cmp r0, #0x32
+ bne _02057D0A
+_02057D08:
+ add r5, r5, #0x2
+_02057D0A:
+ ldr r0, _02057D28 ; =FUN_0205832C
+ add r1, r4, #0x0
+ add r2, r5, #0x0
+ bl FUN_0200CA44
+ add r5, r0, #0x0
+ bne _02057D1C
+ bl ErrorHandling
+_02057D1C:
+ add r0, r4, #0x0
+ add r1, r5, #0x0
+ bl FUN_02058554
+ pop {r3-r5, pc}
+ nop
+_02057D28: .word FUN_0205832C
+
+ thumb_func_start FUN_02057D2C
+FUN_02057D2C: ; 0x02057D2C
+ push {r4-r6, lr}
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ add r0, r4, #0x0
+ add r6, r2, #0x0
+ bl FUN_02058BFC
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_02058444
+ add r0, r4, #0x0
+ bl FUN_02058C04
+ add r1, r0, #0x0
+ add r0, r6, #0x0
+ bl FUN_02058170
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_02058454
+ add r0, r4, #0x0
+ bl FUN_02058C0C
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_0205847C
+ add r0, r4, #0x0
+ bl FUN_02058C14
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_02058484
+ add r0, r4, #0x0
+ bl FUN_02058C1C
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_0205848C
+ add r0, r4, #0x0
+ bl FUN_02058C24
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_02058494
+ add r0, r4, #0x0
+ bl FUN_02058C2C
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_0205849C
+ add r0, r4, #0x0
+ mov r1, #0x0
+ bl FUN_02058C58
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ mov r2, #0x0
+ bl FUN_020584EC
+ add r0, r4, #0x0
+ mov r1, #0x1
+ bl FUN_02058C58
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ mov r2, #0x1
+ bl FUN_020584EC
+ add r0, r4, #0x0
+ mov r1, #0x2
+ bl FUN_02058C58
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ mov r2, #0x2
+ bl FUN_020584EC
+ add r0, r4, #0x0
+ bl FUN_02058C80
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_02058534
+ add r0, r4, #0x0
+ bl FUN_02058C8C
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_0205853C
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_02057DFC
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_02057DFC
+FUN_02057DFC: ; 0x02057DFC
+ push {r3-r6, lr}
+ sub sp, #0xc
+ add r6, r1, #0x0
+ add r4, r0, #0x0
+ add r0, r6, #0x0
+ bl FUN_02058C98
+ add r5, r0, #0x0
+ mov r0, #0x2
+ lsl r1, r5, #0x10
+ lsl r0, r0, #0xe
+ add r0, r1, r0
+ str r0, [sp, #0x0]
+ add r0, r4, #0x0
+ add r1, r5, #0x0
+ bl FUN_02058B00
+ add r0, r4, #0x0
+ add r1, r5, #0x0
+ bl FUN_02058B18
+ add r0, r4, #0x0
+ add r1, r5, #0x0
+ bl FUN_02058B30
+ add r0, r6, #0x0
+ bl FUN_02058CA0
+ asr r1, r0, #0x3
+ str r0, [sp, #0x4]
+ asr r0, r1, #0xb
+ lsr r0, r0, #0x14
+ add r0, r1, r0
+ asr r5, r0, #0xc
+ add r0, r4, #0x0
+ add r1, r5, #0x0
+ bl FUN_02058B08
+ add r0, r4, #0x0
+ add r1, r5, #0x0
+ bl FUN_02058B20
+ add r0, r4, #0x0
+ add r1, r5, #0x0
+ bl FUN_02058B40
+ add r0, r6, #0x0
+ bl FUN_02058CA8
+ add r5, r0, #0x0
+ mov r0, #0x2
+ lsl r1, r5, #0x10
+ lsl r0, r0, #0xe
+ add r0, r1, r0
+ str r0, [sp, #0x8]
+ add r0, r4, #0x0
+ add r1, r5, #0x0
+ bl FUN_02058B10
+ add r0, r4, #0x0
+ add r1, r5, #0x0
+ bl FUN_02058B28
+ add r0, r4, #0x0
+ add r1, r5, #0x0
+ bl FUN_02058B50
+ add r0, r4, #0x0
+ add r1, sp, #0x0
+ bl FUN_02058B6C
+ add sp, #0xc
+ pop {r3-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_02057E90
+FUN_02057E90: ; 0x02057E90
+ push {r3-r5, lr}
+ add r4, r1, #0x0
+ ldr r1, _02057EDC ; =0x00001801
+ add r5, r0, #0x0
+ bl FUN_02058410
+ add r0, r5, #0x0
+ bl FUN_020581F8
+ cmp r0, #0x1
+ bne _02057EAE
+ add r0, r5, #0x0
+ mov r1, #0x1
+ bl FUN_020589B0
+_02057EAE:
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_02058570
+ add r0, r5, #0x0
+ bl FUN_020584A0
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_020584A4
+ add r0, r5, #0x0
+ bl FUN_020584A0
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_020584CC
+ add r0, r5, #0x0
+ bl FUN_0205AE80
+ pop {r3-r5, pc}
+ nop
+_02057EDC: .word 0x00001801
+
+ thumb_func_start FUN_02057EE0
+FUN_02057EE0: ; 0x02057EE0
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ bl FUN_02058480
+ bl FUN_02058D14
+ add r4, r0, #0x0
+ bl FUN_02058D2C
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_02058630
+ add r0, r4, #0x0
+ bl FUN_02058D30
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_02058644
+ add r0, r4, #0x0
+ bl FUN_02058D34
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_02058658
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_02057F18
+FUN_02057F18: ; 0x02057F18
+ push {r3-r5, lr}
+ add r4, r0, #0x0
+ bl FUN_02058458
+ mov r1, #0x2
+ lsl r1, r1, #0xc
+ cmp r0, r1
+ bne _02057F2C
+ ldr r5, _02057F7C ; =0x021F9080
+ b _02057F32
+_02057F2C:
+ bl FUN_02058D4C
+ add r5, r0, #0x0
+_02057F32:
+ add r0, r5, #0x0
+ bl FUN_02058D38
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_02058684
+ add r0, r5, #0x0
+ bl FUN_02058D3C
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_02058698
+ add r0, r5, #0x0
+ bl FUN_02058D40
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_020586AC
+ add r0, r5, #0x0
+ bl FUN_02058D44
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_020586C0
+ add r0, r5, #0x0
+ bl FUN_02058D48
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_020586D4
+ pop {r3-r5, pc}
+ nop
+_02057F7C: .word 0x021F9080
+
+ thumb_func_start FUN_02057F80
+FUN_02057F80: ; 0x02057F80
+ ldr r3, _02057F8C ; =Call_FillMemWithValue
+ mov r2, #0x4a
+ mov r1, #0x0
+ lsl r2, r2, #0x2
+ bx r3
+ nop
+_02057F8C: .word Call_FillMemWithValue
+
+ thumb_func_start FUN_02057F90
+FUN_02057F90: ; 0x02057F90
+ push {r3-r7, lr}
+ add r6, r2, #0x0
+ add r5, r0, #0x0
+ add r4, r3, #0x0
+ str r1, [sp, #0x0]
+ cmp r6, #0x0
+ beq _0205800A
+_02057F9E:
+ add r0, r4, #0x0
+ bl FUN_02058BFC
+ add r7, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_02058448
+ cmp r7, r0
+ bne _02058002
+ add r0, r4, #0x0
+ bl FUN_02058CE0
+ cmp r0, #0x1
+ bne _02057FE8
+ add r0, r4, #0x0
+ bl FUN_02058CFC
+ add r7, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_020589CC
+ cmp r0, #0x1
+ bne _02057FDA
+ add r0, r5, #0x0
+ bl FUN_02058750
+ cmp r7, r0
+ bne _02058002
+ mov r0, #0x1
+ pop {r3-r7, pc}
+_02057FDA:
+ add r0, r5, #0x0
+ bl FUN_02058450
+ cmp r7, r0
+ bne _02058002
+ mov r0, #0x2
+ pop {r3-r7, pc}
+_02057FE8:
+ add r0, r5, #0x0
+ bl FUN_020589CC
+ cmp r0, #0x1
+ bne _02058002
+ add r0, r5, #0x0
+ bl FUN_02058750
+ ldr r1, [sp, #0x0]
+ cmp r1, r0
+ bne _02058002
+ mov r0, #0x2
+ pop {r3-r7, pc}
+_02058002:
+ sub r6, r6, #0x1
+ add r4, #0x20
+ cmp r6, #0x0
+ bne _02057F9E
+_0205800A:
+ mov r0, #0x0
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_02058010
+FUN_02058010: ; 0x02058010
+ push {r3-r7, lr}
+ sub sp, #0x8
+ add r5, r1, #0x0
+ mov r1, #0x0
+ add r4, r2, #0x0
+ str r1, [sp, #0x4]
+ add r1, sp, #0x0
+ add r2, sp, #0x4
+ mov r3, #0x1
+ add r6, r0, #0x0
+ bl FUN_020580F4
+ cmp r0, #0x1
+ bne _02058058
+ add r7, sp, #0x0
+_0205802E:
+ ldr r0, [sp, #0x0]
+ bl FUN_02058448
+ cmp r5, r0
+ bne _02058048
+ ldr r0, [sp, #0x0]
+ bl FUN_02058450
+ cmp r4, r0
+ bne _02058048
+ ldr r0, [sp, #0x0]
+ add sp, #0x8
+ pop {r3-r7, pc}
+_02058048:
+ add r0, r6, #0x0
+ add r1, r7, #0x0
+ add r2, sp, #0x4
+ mov r3, #0x1
+ bl FUN_020580F4
+ cmp r0, #0x1
+ beq _0205802E
+_02058058:
+ mov r0, #0x0
+ add sp, #0x8
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_02058060
+FUN_02058060: ; 0x02058060
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ add r6, r1, #0x0
+ cmp r5, #0x0
+ bne _0205806E
+ bl ErrorHandling
+_0205806E:
+ add r0, r5, #0x0
+ bl FUN_02058368
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_020583C4
+ mov r7, #0x4a
+ add r5, r0, #0x0
+ lsl r7, r7, #0x2
+_02058082:
+ add r0, r5, #0x0
+ mov r1, #0x1
+ bl FUN_0205842C
+ cmp r0, #0x1
+ bne _020580A6
+ add r0, r5, #0x0
+ bl FUN_020589CC
+ cmp r0, #0x0
+ bne _020580A6
+ add r0, r5, #0x0
+ bl FUN_02058448
+ cmp r6, r0
+ bne _020580A6
+ add r0, r5, #0x0
+ pop {r3-r7, pc}
+_020580A6:
+ sub r4, r4, #0x1
+ add r5, r5, r7
+ cmp r4, #0x0
+ bgt _02058082
+ mov r0, #0x0
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_020580B4
+FUN_020580B4: ; 0x020580B4
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ add r6, r1, #0x0
+ bl FUN_02058368
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_020583C4
+ mov r7, #0x4a
+ add r5, r0, #0x0
+ lsl r7, r7, #0x2
+_020580CC:
+ add r0, r5, #0x0
+ mov r1, #0x1
+ bl FUN_0205842C
+ cmp r0, #0x1
+ bne _020580E6
+ add r0, r5, #0x0
+ bl FUN_02058480
+ cmp r6, r0
+ bne _020580E6
+ add r0, r5, #0x0
+ pop {r3-r7, pc}
+_020580E6:
+ sub r4, r4, #0x1
+ add r5, r5, r7
+ cmp r4, #0x0
+ bgt _020580CC
+ mov r0, #0x0
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_020580F4
+FUN_020580F4: ; 0x020580F4
+ push {r3-r7, lr}
+ add r5, r2, #0x0
+ add r4, r0, #0x0
+ str r1, [sp, #0x0]
+ add r6, r3, #0x0
+ bl FUN_02058368
+ add r7, r0, #0x0
+ ldr r0, [r5, #0x0]
+ cmp r0, r7
+ blt _0205810E
+ mov r0, #0x0
+ pop {r3-r7, pc}
+_0205810E:
+ add r0, r4, #0x0
+ bl FUN_020583C4
+ mov r1, #0x4a
+ ldr r2, [r5, #0x0]
+ lsl r1, r1, #0x2
+ mul r1, r2
+ add r4, r0, r1
+_0205811E:
+ ldr r0, [r5, #0x0]
+ add r1, r6, #0x0
+ add r0, r0, #0x1
+ str r0, [r5, #0x0]
+ add r0, r4, #0x0
+ bl FUN_02058424
+ cmp r6, r0
+ bne _02058138
+ ldr r0, [sp, #0x0]
+ str r4, [r0, #0x0]
+ mov r0, #0x1
+ pop {r3-r7, pc}
+_02058138:
+ mov r0, #0x4a
+ lsl r0, r0, #0x2
+ add r4, r4, r0
+ ldr r0, [r5, #0x0]
+ cmp r0, r7
+ blt _0205811E
+ mov r0, #0x0
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_02058148
+FUN_02058148: ; 0x02058148
+ push {r4, lr}
+ add r4, r0, #0x0
+ mov r1, #0x4
+ bl FUN_02058410
+ add r0, r4, #0x0
+ bl FUN_0205815C
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0205815C
+FUN_0205815C: ; 0x0205815C
+ ldr r3, _02058164 ; =FUN_02058418
+ ldr r1, _02058168 ; =0x05108000
+ bx r3
+ nop
+_02058164: .word FUN_02058418
+_02058168: .word 0x05108000
+
+ thumb_func_start FUN_0205816C
+FUN_0205816C: ; 0x0205816C
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02058170
+FUN_02058170: ; 0x02058170
+ push {r3, lr}
+ cmp r1, #0x65
+ blt _02058186
+ cmp r1, #0x75
+ bgt _02058186
+ sub r1, #0x65
+ lsl r1, r1, #0x10
+ lsr r1, r1, #0x10
+ bl FUN_02039504
+ add r1, r0, #0x0
+_02058186:
+ add r0, r1, #0x0
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_0205818C
+FUN_0205818C: ; 0x0205818C
+ push {r4, lr}
+ mov r1, #0x1
+ lsl r1, r1, #0xc
+ add r4, r0, #0x0
+ bl FUN_02058424
+ cmp r0, #0x0
+ beq _020581A2
+ add r0, r4, #0x0
+ bl FUN_02059D1C
+_020581A2:
+ pop {r4, pc}
+
+ thumb_func_start FUN_020581A4
+FUN_020581A4: ; 0x020581A4
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl FUN_02057EE0
+ add r0, r4, #0x0
+ bl FUN_02058EE8
+ pop {r4, pc}
+
+ thumb_func_start FUN_020581B4
+FUN_020581B4: ; 0x020581B4
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl FUN_02058578
+ bl FUN_020587E0
+ cmp r0, #0x0
+ beq _020581F6
+ add r0, r4, #0x0
+ bl FUN_0205818C
+ add r0, r4, #0x0
+ mov r1, #0x0
+ bl FUN_02058544
+ add r0, r4, #0x0
+ mov r1, #0x0
+ bl FUN_021F2E0C
+ add r0, r4, #0x0
+ bl FUN_02058884
+ cmp r0, #0x0
+ bne _020581F6
+ add r0, r4, #0x0
+ bl FUN_02057F18
+ add r0, r4, #0x0
+ bl FUN_0205868C
+ add r0, r4, #0x0
+ bl FUN_02058878
+_020581F6:
+ pop {r4, pc}
+
+ thumb_func_start FUN_020581F8
+FUN_020581F8: ; 0x020581F8
+ push {r3, lr}
+ bl FUN_02058498
+ lsl r0, r0, #0x10
+ lsr r1, r0, #0x10
+ ldr r0, _02058210 ; =0x0000FFFF
+ cmp r1, r0
+ bne _0205820C
+ mov r0, #0x1
+ pop {r3, pc}
+_0205820C:
+ mov r0, #0x0
+ pop {r3, pc}
+ .balign 4
+_02058210: .word 0x0000FFFF
+
+ thumb_func_start FUN_02058214
+FUN_02058214: ; 0x02058214
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ add r6, r2, #0x0
+ bl FUN_020589CC
+ cmp r0, #0x1
+ beq _02058228
+ bl ErrorHandling
+_02058228:
+ add r0, r5, #0x0
+ mov r1, #0x0
+ bl FUN_020589B0
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ bl FUN_0205844C
+ add r0, r4, #0x0
+ bl FUN_02058C24
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_02058494
+ add r0, r4, #0x0
+ bl FUN_02058C1C
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_0205848C
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_02058258
+FUN_02058258: ; 0x02058258
+ push {r4-r6, lr}
+ add r6, r2, #0x0
+ add r5, r0, #0x0
+ add r0, r6, #0x0
+ add r4, r1, #0x0
+ bl FUN_02058CE0
+ cmp r0, #0x1
+ beq _0205826E
+ bl ErrorHandling
+_0205826E:
+ add r0, r5, #0x0
+ mov r1, #0x1
+ bl FUN_020589B0
+ add r0, r6, #0x0
+ bl FUN_02058C24
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_02058494
+ add r0, r6, #0x0
+ bl FUN_02058CFC
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_0205848C
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_0205844C
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_0205829C
+FUN_0205829C: ; 0x0205829C
+ push {r4, lr}
+ add r4, r1, #0x0
+ bl FUN_02058744
+ add r0, r0, r4
+ pop {r4, pc}
+
+ thumb_func_start FUN_020582A8
+FUN_020582A8: ; 0x020582A8
+ push {r4-r6, lr}
+ add r6, r1, #0x0
+ mov r1, #0x1
+ add r5, r0, #0x0
+ add r4, r2, #0x0
+ bl FUN_0205842C
+ cmp r0, #0x0
+ bne _020582BE
+ mov r0, #0x0
+ pop {r4-r6, pc}
+_020582BE:
+ add r0, r5, #0x0
+ bl FUN_02058448
+ cmp r6, r0
+ beq _020582CC
+ mov r0, #0x0
+ pop {r4-r6, pc}
+_020582CC:
+ add r0, r5, #0x0
+ bl FUN_02058450
+ cmp r4, r0
+ beq _020582F2
+ add r0, r5, #0x0
+ bl FUN_020589CC
+ cmp r0, #0x0
+ bne _020582E4
+ mov r0, #0x0
+ pop {r4-r6, pc}
+_020582E4:
+ add r0, r5, #0x0
+ bl FUN_02058750
+ cmp r4, r0
+ beq _020582F2
+ mov r0, #0x0
+ pop {r4-r6, pc}
+_020582F2:
+ mov r0, #0x1
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_020582F8
+FUN_020582F8: ; 0x020582F8
+ push {r3-r7, lr}
+ add r4, r1, #0x0
+ mov r1, #0x1
+ add r5, r0, #0x0
+ add r6, r2, #0x0
+ add r7, r3, #0x0
+ bl FUN_0205842C
+ cmp r0, #0x0
+ bne _02058310
+ mov r0, #0x0
+ pop {r3-r7, pc}
+_02058310:
+ add r0, r5, #0x0
+ bl FUN_0205845C
+ cmp r0, r4
+ beq _0205831E
+ mov r0, #0x0
+ pop {r3-r7, pc}
+_0205831E:
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ add r2, r7, #0x0
+ bl FUN_020582A8
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_0205832C
+FUN_0205832C: ; 0x0205832C
+ push {r4, lr}
+ add r4, r1, #0x0
+ add r0, r4, #0x0
+ bl FUN_02058EF8
+ add r0, r4, #0x0
+ bl FUN_02058830
+ cmp r0, #0x0
+ beq _02058346
+ add r0, r4, #0x0
+ bl FUN_02058348
+_02058346:
+ pop {r4, pc}
+
+ thumb_func_start FUN_02058348
+FUN_02058348: ; 0x02058348
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl FUN_02058578
+ bl FUN_020587E0
+ cmp r0, #0x1
+ bne _0205835E
+ add r0, r4, #0x0
+ bl FUN_021F1D8C
+_0205835E:
+ pop {r4, pc}
+
+ thumb_func_start FUN_02058360
+FUN_02058360: ; 0x02058360
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02058364
+FUN_02058364: ; 0x02058364
+ str r1, [r0, #0x4]
+ bx lr
+
+ thumb_func_start FUN_02058368
+FUN_02058368: ; 0x02058368
+ ldr r0, [r0, #0x4]
+ bx lr
+
+ thumb_func_start FUN_0205836C
+FUN_0205836C: ; 0x0205836C
+ ldr r1, [r0, #0x8]
+ add r1, r1, #0x1
+ str r1, [r0, #0x8]
+ bx lr
+
+ thumb_func_start FUN_02058374
+FUN_02058374: ; 0x02058374
+ ldr r1, [r0, #0x8]
+ sub r1, r1, #0x1
+ str r1, [r0, #0x8]
+ bx lr
+
+ thumb_func_start FUN_0205837C
+FUN_0205837C: ; 0x0205837C
+ ldr r2, [r0, #0x0]
+ orr r1, r2
+ str r1, [r0, #0x0]
+ bx lr
+
+ thumb_func_start FUN_02058384
+FUN_02058384: ; 0x02058384
+ ldr r2, [r0, #0x0]
+ mvn r1, r1
+ and r1, r2
+ str r1, [r0, #0x0]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02058390
+FUN_02058390: ; 0x02058390
+ ldr r0, [r0, #0x0]
+ and r0, r1
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02058398
+FUN_02058398: ; 0x02058398
+ str r1, [r0, #0xc]
+ bx lr
+
+ thumb_func_start FUN_0205839C
+FUN_0205839C: ; 0x0205839C
+ ldr r0, [r0, #0xc]
+ bx lr
+
+ thumb_func_start FUN_020583A0
+FUN_020583A0: ; 0x020583A0
+ add r0, #0x18
+ bx lr
+
+ thumb_func_start FUN_020583A4
+FUN_020583A4: ; 0x020583A4
+ mov r2, #0x12
+ lsl r2, r2, #0x4
+ str r1, [r0, r2]
+ bx lr
+
+ thumb_func_start FUN_020583AC
+FUN_020583AC: ; 0x020583AC
+ mov r1, #0x12
+ lsl r1, r1, #0x4
+ ldr r0, [r0, r1]
+ bx lr
+
+ thumb_func_start FUN_020583B4
+FUN_020583B4: ; 0x020583B4
+ mov r2, #0x49
+ lsl r2, r2, #0x2
+ str r1, [r0, r2]
+ bx lr
+
+ thumb_func_start FUN_020583BC
+FUN_020583BC: ; 0x020583BC
+ mov r1, #0x49
+ lsl r1, r1, #0x2
+ ldr r0, [r0, r1]
+ bx lr
+
+ thumb_func_start FUN_020583C4
+FUN_020583C4: ; 0x020583C4
+ mov r1, #0x49
+ lsl r1, r1, #0x2
+ ldr r0, [r0, r1]
+ bx lr
+
+ thumb_func_start FUN_020583CC
+FUN_020583CC: ; 0x020583CC
+ mov r1, #0x49
+ lsl r1, r1, #0x2
+ ldr r0, [r0, r1]
+ bx lr
+
+ thumb_func_start FUN_020583D4
+FUN_020583D4: ; 0x020583D4
+ mov r1, #0x4a
+ ldr r2, [r0, #0x0]
+ lsl r1, r1, #0x2
+ add r1, r2, r1
+ str r1, [r0, #0x0]
+ bx lr
+
+ thumb_func_start FUN_020583E0
+FUN_020583E0: ; 0x020583E0
+ mov r2, #0x4a
+ lsl r2, r2, #0x2
+ str r1, [r0, r2]
+ bx lr
+
+ thumb_func_start FUN_020583E8
+FUN_020583E8: ; 0x020583E8
+ mov r1, #0x4a
+ lsl r1, r1, #0x2
+ ldr r0, [r0, r1]
+ bx lr
+
+ thumb_func_start FUN_020583F0
+FUN_020583F0: ; 0x020583F0
+ str r1, [r0, #0x14]
+ bx lr
+
+ thumb_func_start FUN_020583F4
+FUN_020583F4: ; 0x020583F4
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r0, [r4, #0x14]
+ cmp r0, #0x0
+ bne _02058402
+ bl ErrorHandling
+_02058402:
+ ldr r0, [r4, #0x14]
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02058408
+FUN_02058408: ; 0x02058408
+ str r1, [r0, #0x0]
+ bx lr
+
+ thumb_func_start FUN_0205840C
+FUN_0205840C: ; 0x0205840C
+ ldr r0, [r0, #0x0]
+ bx lr
+
+ thumb_func_start FUN_02058410
+FUN_02058410: ; 0x02058410
+ ldr r2, [r0, #0x0]
+ orr r1, r2
+ str r1, [r0, #0x0]
+ bx lr
+
+ thumb_func_start FUN_02058418
+FUN_02058418: ; 0x02058418
+ ldr r2, [r0, #0x0]
+ mvn r1, r1
+ and r1, r2
+ str r1, [r0, #0x0]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02058424
+FUN_02058424: ; 0x02058424
+ ldr r0, [r0, #0x0]
+ and r0, r1
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_0205842C
+FUN_0205842C: ; 0x0205842C
+ ldr r0, [r0, #0x0]
+ tst r0, r1
+ beq _02058436
+ mov r0, #0x1
+ bx lr
+_02058436:
+ mov r0, #0x0
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_0205843C
+FUN_0205843C: ; 0x0205843C
+ str r1, [r0, #0x4]
+ bx lr
+
+ thumb_func_start FUN_02058440
+FUN_02058440: ; 0x02058440
+ ldr r0, [r0, #0x4]
+ bx lr
+
+ thumb_func_start FUN_02058444
+FUN_02058444: ; 0x02058444
+ str r1, [r0, #0x8]
+ bx lr
+
+ thumb_func_start FUN_02058448
+FUN_02058448: ; 0x02058448
+ ldr r0, [r0, #0x8]
+ bx lr
+
+ thumb_func_start FUN_0205844C
+FUN_0205844C: ; 0x0205844C
+ str r1, [r0, #0xc]
+ bx lr
+
+ thumb_func_start FUN_02058450
+FUN_02058450: ; 0x02058450
+ ldr r0, [r0, #0xc]
+ bx lr
+
+ thumb_func_start FUN_02058454
+FUN_02058454: ; 0x02058454
+ str r1, [r0, #0x10]
+ bx lr
+
+ thumb_func_start FUN_02058458
+FUN_02058458: ; 0x02058458
+ ldr r0, [r0, #0x10]
+ bx lr
+
+ thumb_func_start FUN_0205845C
+FUN_0205845C: ; 0x0205845C
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ bl FUN_02058458
+ add r4, r0, #0x0
+ bl FUN_0205C334
+ cmp r0, #0x1
+ bne _02058476
+ add r0, r5, #0x0
+ bl FUN_0205C340
+ add r4, r0, #0x0
+_02058476:
+ add r0, r4, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_0205847C
+FUN_0205847C: ; 0x0205847C
+ str r1, [r0, #0x14]
+ bx lr
+
+ thumb_func_start FUN_02058480
+FUN_02058480: ; 0x02058480
+ ldr r0, [r0, #0x14]
+ bx lr
+
+ thumb_func_start FUN_02058484
+FUN_02058484: ; 0x02058484
+ str r1, [r0, #0x18]
+ bx lr
+
+ thumb_func_start FUN_02058488
+FUN_02058488: ; 0x02058488
+ ldr r0, [r0, #0x18]
+ bx lr
+
+ thumb_func_start FUN_0205848C
+FUN_0205848C: ; 0x0205848C
+ str r1, [r0, #0x1c]
+ bx lr
+
+ thumb_func_start FUN_02058490
+FUN_02058490: ; 0x02058490
+ ldr r0, [r0, #0x1c]
+ bx lr
+
+ thumb_func_start FUN_02058494
+FUN_02058494: ; 0x02058494
+ str r1, [r0, #0x20]
+ bx lr
+
+ thumb_func_start FUN_02058498
+FUN_02058498: ; 0x02058498
+ ldr r0, [r0, #0x20]
+ bx lr
+
+ thumb_func_start FUN_0205849C
+FUN_0205849C: ; 0x0205849C
+ str r1, [r0, #0x24]
+ bx lr
+
+ thumb_func_start FUN_020584A0
+FUN_020584A0: ; 0x020584A0
+ ldr r0, [r0, #0x24]
+ bx lr
+
+ thumb_func_start FUN_020584A4
+FUN_020584A4: ; 0x020584A4
+ ldr r2, [r0, #0x28]
+ str r2, [r0, #0x30]
+ str r1, [r0, #0x28]
+ bx lr
+
+ thumb_func_start FUN_020584AC
+FUN_020584AC: ; 0x020584AC
+ push {r3-r5, lr}
+ add r4, r1, #0x0
+ mov r1, #0x80
+ add r5, r0, #0x0
+ bl FUN_02058424
+ cmp r0, #0x0
+ bne _020584C2
+ ldr r0, [r5, #0x28]
+ str r0, [r5, #0x30]
+ str r4, [r5, #0x28]
+_020584C2:
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_020584C4
+FUN_020584C4: ; 0x020584C4
+ ldr r0, [r0, #0x28]
+ bx lr
+
+ thumb_func_start FUN_020584C8
+FUN_020584C8: ; 0x020584C8
+ ldr r0, [r0, #0x30]
+ bx lr
+
+ thumb_func_start FUN_020584CC
+FUN_020584CC: ; 0x020584CC
+ ldr r2, [r0, #0x2c]
+ str r2, [r0, #0x34]
+ str r1, [r0, #0x2c]
+ bx lr
+
+ thumb_func_start FUN_020584D4
+FUN_020584D4: ; 0x020584D4
+ ldr r0, [r0, #0x2c]
+ bx lr
+
+ thumb_func_start FUN_020584D8
+FUN_020584D8: ; 0x020584D8
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ bl FUN_020584AC
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_020584CC
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_020584EC
+FUN_020584EC: ; 0x020584EC
+ push {r3, lr}
+ cmp r2, #0x0
+ beq _020584FC
+ cmp r2, #0x1
+ beq _02058500
+ cmp r2, #0x2
+ beq _02058504
+ b _02058508
+_020584FC:
+ str r1, [r0, #0x38]
+ pop {r3, pc}
+_02058500:
+ str r1, [r0, #0x3c]
+ pop {r3, pc}
+_02058504:
+ str r1, [r0, #0x40]
+ pop {r3, pc}
+_02058508:
+ bl ErrorHandling
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_02058510
+FUN_02058510: ; 0x02058510
+ push {r3, lr}
+ cmp r1, #0x0
+ beq _02058520
+ cmp r1, #0x1
+ beq _02058524
+ cmp r1, #0x2
+ beq _02058528
+ b _0205852C
+_02058520:
+ ldr r0, [r0, #0x38]
+ pop {r3, pc}
+_02058524:
+ ldr r0, [r0, #0x3c]
+ pop {r3, pc}
+_02058528:
+ ldr r0, [r0, #0x40]
+ pop {r3, pc}
+_0205852C:
+ bl ErrorHandling
+ mov r0, #0x0
+ pop {r3, pc}
+
+ thumb_func_start FUN_02058534
+FUN_02058534: ; 0x02058534
+ str r1, [r0, #0x44]
+ bx lr
+
+ thumb_func_start FUN_02058538
+FUN_02058538: ; 0x02058538
+ ldr r0, [r0, #0x44]
+ bx lr
+
+ thumb_func_start FUN_0205853C
+FUN_0205853C: ; 0x0205853C
+ str r1, [r0, #0x48]
+ bx lr
+
+ thumb_func_start FUN_02058540
+FUN_02058540: ; 0x02058540
+ ldr r0, [r0, #0x48]
+ bx lr
+
+ thumb_func_start FUN_02058544
+FUN_02058544: ; 0x02058544
+ add r0, #0xa0
+ str r1, [r0, #0x0]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_0205854C
+FUN_0205854C: ; 0x0205854C
+ add r0, #0xa0
+ ldr r0, [r0, #0x0]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02058554
+FUN_02058554: ; 0x02058554
+ add r0, #0xb0
+ str r1, [r0, #0x0]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_0205855C
+FUN_0205855C: ; 0x0205855C
+ add r0, #0xb0
+ ldr r0, [r0, #0x0]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02058564
+FUN_02058564: ; 0x02058564
+ push {r3, lr}
+ bl FUN_0205855C
+ bl FUN_0200CAB4
+ pop {r3, pc}
+
+ thumb_func_start FUN_02058570
+FUN_02058570: ; 0x02058570
+ add r0, #0xb4
+ str r1, [r0, #0x0]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02058578
+FUN_02058578: ; 0x02058578
+ add r0, #0xb4
+ ldr r0, [r0, #0x0]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02058580
+FUN_02058580: ; 0x02058580
+ ldr r3, _02058588 ; =FUN_02058360
+ add r0, #0xb4
+ ldr r0, [r0, #0x0]
+ bx r3
+ .balign 4
+_02058588: .word FUN_02058360
+
+ thumb_func_start FUN_0205858C
+FUN_0205858C: ; 0x0205858C
+ push {r3-r5, lr}
+ add r5, r1, #0x0
+ add r4, r0, #0x0
+ cmp r5, #0x10
+ ble _0205859A
+ bl ErrorHandling
+_0205859A:
+ add r0, r4, #0x0
+ bl FUN_020585B0
+ mov r1, #0x0
+ add r2, r5, #0x0
+ add r4, r0, #0x0
+ blx Call_FillMemWithValue
+ add r0, r4, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_020585B0
+FUN_020585B0: ; 0x020585B0
+ add r0, #0xd8
+ bx lr
+
+ thumb_func_start FUN_020585B4
+FUN_020585B4: ; 0x020585B4
+ push {r3-r5, lr}
+ add r5, r1, #0x0
+ add r4, r0, #0x0
+ cmp r5, #0x10
+ ble _020585C2
+ bl ErrorHandling
+_020585C2:
+ add r0, r4, #0x0
+ bl FUN_020585D8
+ mov r1, #0x0
+ add r2, r5, #0x0
+ add r4, r0, #0x0
+ blx Call_FillMemWithValue
+ add r0, r4, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_020585D8
+FUN_020585D8: ; 0x020585D8
+ add r0, #0xe8
+ bx lr
+
+ thumb_func_start FUN_020585DC
+FUN_020585DC: ; 0x020585DC
+ push {r3-r5, lr}
+ add r5, r1, #0x0
+ add r4, r0, #0x0
+ cmp r5, #0x10
+ ble _020585EA
+ bl ErrorHandling
+_020585EA:
+ add r0, r4, #0x0
+ bl FUN_02058600
+ mov r1, #0x0
+ add r2, r5, #0x0
+ add r4, r0, #0x0
+ blx Call_FillMemWithValue
+ add r0, r4, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_02058600
+FUN_02058600: ; 0x02058600
+ add r0, #0xf8
+ bx lr
+
+ thumb_func_start FUN_02058604
+FUN_02058604: ; 0x02058604
+ push {r3-r5, lr}
+ add r5, r1, #0x0
+ add r4, r0, #0x0
+ cmp r5, #0x20
+ ble _02058612
+ bl ErrorHandling
+_02058612:
+ add r0, r4, #0x0
+ bl FUN_02058628
+ mov r1, #0x0
+ add r2, r5, #0x0
+ add r4, r0, #0x0
+ blx Call_FillMemWithValue
+ add r0, r4, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_02058628
+FUN_02058628: ; 0x02058628
+ mov r1, #0x42
+ lsl r1, r1, #0x2
+ add r0, r0, r1
+ bx lr
+
+ thumb_func_start FUN_02058630
+FUN_02058630: ; 0x02058630
+ add r0, #0xb8
+ str r1, [r0, #0x0]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02058638
+FUN_02058638: ; 0x02058638
+ push {r3, lr}
+ add r1, r0, #0x0
+ add r1, #0xb8
+ ldr r1, [r1, #0x0]
+ blx r1
+ pop {r3, pc}
+
+ thumb_func_start FUN_02058644
+FUN_02058644: ; 0x02058644
+ add r0, #0xbc
+ str r1, [r0, #0x0]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_0205864C
+FUN_0205864C: ; 0x0205864C
+ push {r3, lr}
+ add r1, r0, #0x0
+ add r1, #0xbc
+ ldr r1, [r1, #0x0]
+ blx r1
+ pop {r3, pc}
+
+ thumb_func_start FUN_02058658
+FUN_02058658: ; 0x02058658
+ add r0, #0xc0
+ str r1, [r0, #0x0]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02058660
+FUN_02058660: ; 0x02058660
+ push {r3, lr}
+ add r1, r0, #0x0
+ add r1, #0xc0
+ ldr r1, [r1, #0x0]
+ blx r1
+ pop {r3, pc}
+
+ thumb_func_start FUN_0205866C
+FUN_0205866C: ; 0x0205866C
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl FUN_02058480
+ bl FUN_02058D14
+ add r1, r0, #0x0
+ ldr r1, [r1, #0x10]
+ add r0, r4, #0x0
+ blx r1
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02058684
+FUN_02058684: ; 0x02058684
+ add r0, #0xc4
+ str r1, [r0, #0x0]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_0205868C
+FUN_0205868C: ; 0x0205868C
+ push {r3, lr}
+ add r1, r0, #0x0
+ add r1, #0xc4
+ ldr r1, [r1, #0x0]
+ blx r1
+ pop {r3, pc}
+
+ thumb_func_start FUN_02058698
+FUN_02058698: ; 0x02058698
+ add r0, #0xc8
+ str r1, [r0, #0x0]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_020586A0
+FUN_020586A0: ; 0x020586A0
+ push {r3, lr}
+ add r1, r0, #0x0
+ add r1, #0xc8
+ ldr r1, [r1, #0x0]
+ blx r1
+ pop {r3, pc}
+
+ thumb_func_start FUN_020586AC
+FUN_020586AC: ; 0x020586AC
+ add r0, #0xcc
+ str r1, [r0, #0x0]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_020586B4
+FUN_020586B4: ; 0x020586B4
+ push {r3, lr}
+ add r1, r0, #0x0
+ add r1, #0xcc
+ ldr r1, [r1, #0x0]
+ blx r1
+ pop {r3, pc}
+
+ thumb_func_start FUN_020586C0
+FUN_020586C0: ; 0x020586C0
+ add r0, #0xd0
+ str r1, [r0, #0x0]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_020586C8
+FUN_020586C8: ; 0x020586C8
+ push {r3, lr}
+ add r1, r0, #0x0
+ add r1, #0xd0
+ ldr r1, [r1, #0x0]
+ blx r1
+ pop {r3, pc}
+
+ thumb_func_start FUN_020586D4
+FUN_020586D4: ; 0x020586D4
+ add r0, #0xd4
+ str r1, [r0, #0x0]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_020586DC
+FUN_020586DC: ; 0x020586DC
+ push {r3, lr}
+ add r1, r0, #0x0
+ add r1, #0xd4
+ ldr r1, [r1, #0x0]
+ blx r1
+ pop {r3, pc}
+
+ thumb_func_start FUN_020586E8
+FUN_020586E8: ; 0x020586E8
+ add r0, #0xa4
+ str r1, [r0, #0x0]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_020586F0
+FUN_020586F0: ; 0x020586F0
+ add r0, #0xa4
+ ldr r0, [r0, #0x0]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_020586F8
+FUN_020586F8: ; 0x020586F8
+ add r0, #0xa8
+ str r1, [r0, #0x0]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02058700
+FUN_02058700: ; 0x02058700
+ add r1, r0, #0x0
+ add r1, #0xa8
+ ldr r1, [r1, #0x0]
+ add r0, #0xa8
+ add r1, r1, #0x1
+ str r1, [r0, #0x0]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02058710
+FUN_02058710: ; 0x02058710
+ add r0, #0xa8
+ ldr r0, [r0, #0x0]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02058718
+FUN_02058718: ; 0x02058718
+ add r0, #0xac
+ strh r1, [r0, #0x0]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02058720
+FUN_02058720: ; 0x02058720
+ add r0, #0xac
+ ldrh r0, [r0, #0x0]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02058728
+FUN_02058728: ; 0x02058728
+ add r0, #0xae
+ strh r1, [r0, #0x0]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02058730
+FUN_02058730: ; 0x02058730
+ add r0, #0xae
+ ldrh r0, [r0, #0x0]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02058738
+FUN_02058738: ; 0x02058738
+ push {r3, lr}
+ bl FUN_02058580
+ bl FUN_020583E8
+ pop {r3, pc}
+
+ thumb_func_start FUN_02058744
+FUN_02058744: ; 0x02058744
+ push {r3, lr}
+ bl FUN_02058578
+ bl FUN_0205839C
+ pop {r3, pc}
+
+ thumb_func_start FUN_02058750
+FUN_02058750: ; 0x02058750
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl FUN_020589CC
+ cmp r0, #0x1
+ beq _02058760
+ bl ErrorHandling
+_02058760:
+ add r0, r4, #0x0
+ bl FUN_02058490
+ pop {r4, pc}
+
+ thumb_func_start FUN_02058768
+FUN_02058768: ; 0x02058768
+ ldr r3, _02058770 ; =FUN_0205837C
+ mov r1, #0x6
+ bx r3
+ nop
+_02058770: .word FUN_0205837C
+
+ thumb_func_start FUN_02058774
+FUN_02058774: ; 0x02058774
+ ldr r3, _0205877C ; =FUN_02058384
+ mov r1, #0x6
+ bx r3
+ nop
+_0205877C: .word FUN_02058384
+
+ thumb_func_start FUN_02058780
+FUN_02058780: ; 0x02058780
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ bl FUN_02058368
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_020583CC
+ mov r6, #0x4a
+ add r5, r0, #0x0
+ lsl r6, r6, #0x2
+_02058796:
+ add r0, r5, #0x0
+ bl FUN_02058830
+ cmp r0, #0x0
+ beq _020587A6
+ add r0, r5, #0x0
+ bl FUN_02058908
+_020587A6:
+ add r5, r5, r6
+ sub r4, r4, #0x1
+ bne _02058796
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_020587B0
+FUN_020587B0: ; 0x020587B0
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ bl FUN_02058368
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_020583CC
+ mov r6, #0x4a
+ add r5, r0, #0x0
+ lsl r6, r6, #0x2
+_020587C6:
+ add r0, r5, #0x0
+ bl FUN_02058830
+ cmp r0, #0x0
+ beq _020587D6
+ add r0, r5, #0x0
+ bl FUN_02058914
+_020587D6:
+ add r5, r5, r6
+ sub r4, r4, #0x1
+ bne _020587C6
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_020587E0
+FUN_020587E0: ; 0x020587E0
+ push {r3, lr}
+ mov r1, #0x1
+ bl FUN_02058390
+ cmp r0, #0x0
+ beq _020587F0
+ mov r0, #0x1
+ pop {r3, pc}
+_020587F0:
+ mov r0, #0x0
+ pop {r3, pc}
+
+ thumb_func_start FUN_020587F4
+FUN_020587F4: ; 0x020587F4
+ push {r4, lr}
+ add r4, r1, #0x0
+ bl FUN_02058578
+ add r1, r4, #0x0
+ bl FUN_02058390
+ pop {r4, pc}
+
+ thumb_func_start FUN_02058804
+FUN_02058804: ; 0x02058804
+ push {r3, lr}
+ cmp r1, #0x0
+ bne _02058812
+ mov r1, #0x8
+ bl FUN_0205837C
+ pop {r3, pc}
+_02058812:
+ mov r1, #0x8
+ bl FUN_02058384
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_0205881C
+FUN_0205881C: ; 0x0205881C
+ push {r3, lr}
+ mov r1, #0x8
+ bl FUN_02058390
+ cmp r0, #0x0
+ bne _0205882C
+ mov r0, #0x1
+ pop {r3, pc}
+_0205882C:
+ mov r0, #0x0
+ pop {r3, pc}
+
+ thumb_func_start FUN_02058830
+FUN_02058830: ; 0x02058830
+ ldr r3, _02058838 ; =FUN_0205842C
+ mov r1, #0x1
+ bx r3
+ nop
+_02058838: .word FUN_0205842C
+
+ thumb_func_start FUN_0205883C
+FUN_0205883C: ; 0x0205883C
+ ldr r3, _02058844 ; =FUN_02058410
+ mov r1, #0x2
+ bx r3
+ nop
+_02058844: .word FUN_02058410
+
+ thumb_func_start FUN_02058848
+FUN_02058848: ; 0x02058848
+ ldr r3, _02058850 ; =FUN_02058418
+ mov r1, #0x2
+ bx r3
+ nop
+_02058850: .word FUN_02058418
+
+ thumb_func_start FUN_02058854
+FUN_02058854: ; 0x02058854
+ ldr r3, _0205885C ; =FUN_0205842C
+ mov r1, #0x2
+ bx r3
+ nop
+_0205885C: .word FUN_0205842C
+
+ thumb_func_start FUN_02058860
+FUN_02058860: ; 0x02058860
+ ldr r3, _02058868 ; =FUN_02058410
+ mov r1, #0x4
+ bx r3
+ nop
+_02058868: .word FUN_02058410
+
+ thumb_func_start FUN_0205886C
+FUN_0205886C: ; 0x0205886C
+ ldr r3, _02058874 ; =FUN_02058418
+ mov r1, #0x8
+ bx r3
+ nop
+_02058874: .word FUN_02058418
+
+ thumb_func_start FUN_02058878
+FUN_02058878: ; 0x02058878
+ ldr r3, _02058880 ; =FUN_02058410
+ mov r1, #0x1
+ lsl r1, r1, #0xe
+ bx r3
+ .balign 4
+_02058880: .word FUN_02058410
+
+ thumb_func_start FUN_02058884
+FUN_02058884: ; 0x02058884
+ ldr r3, _0205888C ; =FUN_0205842C
+ mov r1, #0x1
+ lsl r1, r1, #0xe
+ bx r3
+ .balign 4
+_0205888C: .word FUN_0205842C
+
+ thumb_func_start FUN_02058890
+FUN_02058890: ; 0x02058890
+ ldr r3, _02058898 ; =FUN_0205842C
+ mov r1, #0x2
+ lsl r1, r1, #0x8
+ bx r3
+ .balign 4
+_02058898: .word FUN_0205842C
+
+ thumb_func_start FUN_0205889C
+FUN_0205889C: ; 0x0205889C
+ push {r3, lr}
+ cmp r1, #0x1
+ bne _020588AC
+ mov r1, #0x2
+ lsl r1, r1, #0x8
+ bl FUN_02058410
+ pop {r3, pc}
+_020588AC:
+ mov r1, #0x2
+ lsl r1, r1, #0x8
+ bl FUN_02058418
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_020588B8
+FUN_020588B8: ; 0x020588B8
+ push {r3, lr}
+ cmp r1, #0x1
+ bne _020588C8
+ mov r1, #0x1
+ lsl r1, r1, #0x12
+ bl FUN_02058418
+ pop {r3, pc}
+_020588C8:
+ mov r1, #0x1
+ lsl r1, r1, #0x12
+ bl FUN_02058410
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_020588D4
+FUN_020588D4: ; 0x020588D4
+ push {r3, lr}
+ mov r1, #0x2
+ lsl r1, r1, #0x12
+ bl FUN_0205842C
+ cmp r0, #0x1
+ beq _020588E6
+ mov r0, #0x1
+ pop {r3, pc}
+_020588E6:
+ mov r0, #0x0
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_020588EC
+FUN_020588EC: ; 0x020588EC
+ push {r3, lr}
+ cmp r1, #0x1
+ bne _020588FC
+ mov r1, #0x2
+ lsl r1, r1, #0x12
+ bl FUN_02058410
+ pop {r3, pc}
+_020588FC:
+ mov r1, #0x2
+ lsl r1, r1, #0x12
+ bl FUN_02058418
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_02058908
+FUN_02058908: ; 0x02058908
+ ldr r3, _02058910 ; =FUN_02058410
+ mov r1, #0x40
+ bx r3
+ nop
+_02058910: .word FUN_02058410
+
+ thumb_func_start FUN_02058914
+FUN_02058914: ; 0x02058914
+ ldr r3, _0205891C ; =FUN_02058418
+ mov r1, #0x40
+ bx r3
+ nop
+_0205891C: .word FUN_02058418
+
+ thumb_func_start FUN_02058920
+FUN_02058920: ; 0x02058920
+ push {r3, lr}
+ mov r1, #0x40
+ bl FUN_0205842C
+ cmp r0, #0x1
+ bne _02058930
+ mov r0, #0x1
+ pop {r3, pc}
+_02058930:
+ mov r0, #0x0
+ pop {r3, pc}
+
+ thumb_func_start FUN_02058934
+FUN_02058934: ; 0x02058934
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl FUN_02058578
+ bl FUN_020587E0
+ cmp r0, #0x0
+ bne _02058948
+ mov r0, #0x0
+ pop {r4, pc}
+_02058948:
+ mov r1, #0x1
+ add r0, r4, #0x0
+ lsl r1, r1, #0xe
+ bl FUN_02058424
+ cmp r0, #0x0
+ beq _0205895A
+ mov r0, #0x1
+ pop {r4, pc}
+_0205895A:
+ mov r0, #0x0
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02058960
+FUN_02058960: ; 0x02058960
+ push {r3, lr}
+ cmp r1, #0x1
+ bne _02058970
+ mov r1, #0x2
+ lsl r1, r1, #0x16
+ bl FUN_02058410
+ pop {r3, pc}
+_02058970:
+ mov r1, #0x2
+ lsl r1, r1, #0x16
+ bl FUN_02058418
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_0205897C
+FUN_0205897C: ; 0x0205897C
+ push {r3, lr}
+ mov r1, #0x2
+ lsl r1, r1, #0x16
+ bl FUN_02058424
+ cmp r0, #0x0
+ beq _0205898E
+ mov r0, #0x1
+ pop {r3, pc}
+_0205898E:
+ mov r0, #0x0
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_02058994
+FUN_02058994: ; 0x02058994
+ push {r3, lr}
+ cmp r1, #0x1
+ bne _020589A4
+ mov r1, #0x1
+ lsl r1, r1, #0xa
+ bl FUN_02058410
+ pop {r3, pc}
+_020589A4:
+ mov r1, #0x1
+ lsl r1, r1, #0xa
+ bl FUN_02058418
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_020589B0
+FUN_020589B0: ; 0x020589B0
+ push {r3, lr}
+ cmp r1, #0x1
+ bne _020589C0
+ mov r1, #0x2
+ lsl r1, r1, #0x18
+ bl FUN_02058410
+ pop {r3, pc}
+_020589C0:
+ mov r1, #0x2
+ lsl r1, r1, #0x18
+ bl FUN_02058418
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_020589CC
+FUN_020589CC: ; 0x020589CC
+ push {r3, lr}
+ mov r1, #0x2
+ lsl r1, r1, #0x18
+ bl FUN_02058424
+ cmp r0, #0x0
+ beq _020589DE
+ mov r0, #0x1
+ pop {r3, pc}
+_020589DE:
+ mov r0, #0x0
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_020589E4
+FUN_020589E4: ; 0x020589E4
+ push {r3, lr}
+ cmp r1, #0x1
+ bne _020589F4
+ mov r1, #0x1
+ lsl r1, r1, #0x1a
+ bl FUN_02058410
+ pop {r3, pc}
+_020589F4:
+ mov r1, #0x1
+ lsl r1, r1, #0x1a
+ bl FUN_02058418
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_02058A00
+FUN_02058A00: ; 0x02058A00
+ push {r3, lr}
+ mov r1, #0x1
+ lsl r1, r1, #0x1a
+ bl FUN_02058424
+ cmp r0, #0x0
+ beq _02058A12
+ mov r0, #0x1
+ pop {r3, pc}
+_02058A12:
+ mov r0, #0x0
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_02058A18
+FUN_02058A18: ; 0x02058A18
+ push {r3, lr}
+ cmp r1, #0x1
+ bne _02058A28
+ mov r1, #0x2
+ lsl r1, r1, #0x1a
+ bl FUN_02058410
+ pop {r3, pc}
+_02058A28:
+ mov r1, #0x2
+ lsl r1, r1, #0x1a
+ bl FUN_02058418
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_02058A34
+FUN_02058A34: ; 0x02058A34
+ push {r3, lr}
+ mov r1, #0x2
+ lsl r1, r1, #0x1a
+ bl FUN_02058424
+ cmp r0, #0x0
+ beq _02058A46
+ mov r0, #0x1
+ pop {r3, pc}
+_02058A46:
+ mov r0, #0x0
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_02058A4C
+FUN_02058A4C: ; 0x02058A4C
+ push {r3, lr}
+ cmp r1, #0x1
+ bne _02058A5C
+ mov r1, #0x1
+ lsl r1, r1, #0x1c
+ bl FUN_02058410
+ pop {r3, pc}
+_02058A5C:
+ mov r1, #0x1
+ lsl r1, r1, #0x1c
+ bl FUN_02058418
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_02058A68
+FUN_02058A68: ; 0x02058A68
+ push {r3, lr}
+ mov r1, #0x1
+ lsl r1, r1, #0x1c
+ bl FUN_02058424
+ cmp r0, #0x0
+ beq _02058A7A
+ mov r0, #0x1
+ pop {r3, pc}
+_02058A7A:
+ mov r0, #0x0
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_02058A80
+FUN_02058A80: ; 0x02058A80
+ push {r3, lr}
+ cmp r1, #0x1
+ bne _02058A90
+ mov r1, #0x1
+ lsl r1, r1, #0x18
+ bl FUN_02058410
+ pop {r3, pc}
+_02058A90:
+ mov r1, #0x1
+ lsl r1, r1, #0x18
+ bl FUN_02058418
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_02058A9C
+FUN_02058A9C: ; 0x02058A9C
+ push {r3, lr}
+ mov r1, #0x1
+ lsl r1, r1, #0x18
+ bl FUN_02058424
+ cmp r0, #0x0
+ beq _02058AAE
+ mov r0, #0x1
+ pop {r3, pc}
+_02058AAE:
+ mov r0, #0x0
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_02058AB4
+FUN_02058AB4: ; 0x02058AB4
+ push {r3, lr}
+ mov r1, #0x10
+ bl FUN_02058424
+ cmp r0, #0x0
+ beq _02058AC4
+ mov r0, #0x1
+ pop {r3, pc}
+_02058AC4:
+ mov r0, #0x0
+ pop {r3, pc}
+
+ thumb_func_start FUN_02058AC8
+FUN_02058AC8: ; 0x02058AC8
+ push {r3, lr}
+ cmp r1, #0x1
+ bne _02058AD8
+ mov r1, #0x2
+ lsl r1, r1, #0x1c
+ bl FUN_02058410
+ pop {r3, pc}
+_02058AD8:
+ mov r1, #0x2
+ lsl r1, r1, #0x1c
+ bl FUN_02058418
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_02058AE4
+FUN_02058AE4: ; 0x02058AE4
+ push {r3, lr}
+ mov r1, #0x2
+ lsl r1, r1, #0x1c
+ bl FUN_02058424
+ cmp r0, #0x0
+ beq _02058AF6
+ mov r0, #0x1
+ pop {r3, pc}
+_02058AF6:
+ mov r0, #0x0
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_02058AFC
+FUN_02058AFC: ; 0x02058AFC
+ ldr r0, [r0, #0x4c]
+ bx lr
+
+ thumb_func_start FUN_02058B00
+FUN_02058B00: ; 0x02058B00
+ str r1, [r0, #0x4c]
+ bx lr
+
+ thumb_func_start FUN_02058B04
+FUN_02058B04: ; 0x02058B04
+ ldr r0, [r0, #0x50]
+ bx lr
+
+ thumb_func_start FUN_02058B08
+FUN_02058B08: ; 0x02058B08
+ str r1, [r0, #0x50]
+ bx lr
+
+ thumb_func_start FUN_02058B0C
+FUN_02058B0C: ; 0x02058B0C
+ ldr r0, [r0, #0x54]
+ bx lr
+
+ thumb_func_start FUN_02058B10
+FUN_02058B10: ; 0x02058B10
+ str r1, [r0, #0x54]
+ bx lr
+
+ thumb_func_start FUN_02058B14
+FUN_02058B14: ; 0x02058B14
+ ldr r0, [r0, #0x58]
+ bx lr
+
+ thumb_func_start FUN_02058B18
+FUN_02058B18: ; 0x02058B18
+ str r1, [r0, #0x58]
+ bx lr
+
+ thumb_func_start FUN_02058B1C
+FUN_02058B1C: ; 0x02058B1C
+ ldr r0, [r0, #0x5c]
+ bx lr
+
+ thumb_func_start FUN_02058B20
+FUN_02058B20: ; 0x02058B20
+ str r1, [r0, #0x5c]
+ bx lr
+
+ thumb_func_start FUN_02058B24
+FUN_02058B24: ; 0x02058B24
+ ldr r0, [r0, #0x60]
+ bx lr
+
+ thumb_func_start FUN_02058B28
+FUN_02058B28: ; 0x02058B28
+ str r1, [r0, #0x60]
+ bx lr
+
+ thumb_func_start FUN_02058B2C
+FUN_02058B2C: ; 0x02058B2C
+ ldr r0, [r0, #0x64]
+ bx lr
+
+ thumb_func_start FUN_02058B30
+FUN_02058B30: ; 0x02058B30
+ str r1, [r0, #0x64]
+ bx lr
+
+ thumb_func_start FUN_02058B34
+FUN_02058B34: ; 0x02058B34
+ ldr r2, [r0, #0x64]
+ add r1, r2, r1
+ str r1, [r0, #0x64]
+ bx lr
+
+ thumb_func_start FUN_02058B3C
+FUN_02058B3C: ; 0x02058B3C
+ ldr r0, [r0, #0x68]
+ bx lr
+
+ thumb_func_start FUN_02058B40
+FUN_02058B40: ; 0x02058B40
+ str r1, [r0, #0x68]
+ bx lr
+
+ thumb_func_start FUN_02058B44
+FUN_02058B44: ; 0x02058B44
+ ldr r2, [r0, #0x68]
+ add r1, r2, r1
+ str r1, [r0, #0x68]
+ bx lr
+
+ thumb_func_start FUN_02058B4C
+FUN_02058B4C: ; 0x02058B4C
+ ldr r0, [r0, #0x6c]
+ bx lr
+
+ thumb_func_start FUN_02058B50
+FUN_02058B50: ; 0x02058B50
+ str r1, [r0, #0x6c]
+ bx lr
+
+ thumb_func_start FUN_02058B54
+FUN_02058B54: ; 0x02058B54
+ ldr r2, [r0, #0x6c]
+ add r1, r2, r1
+ str r1, [r0, #0x6c]
+ bx lr
+
+ thumb_func_start FUN_02058B5C
+FUN_02058B5C: ; 0x02058B5C
+ add r2, r0, #0x0
+ add r2, #0x70
+ add r3, r1, #0x0
+ ldmia r2!, {r0-r1}
+ stmia r3!, {r0-r1}
+ ldr r0, [r2, #0x0]
+ str r0, [r3, #0x0]
+ bx lr
+
+ thumb_func_start FUN_02058B6C
+FUN_02058B6C: ; 0x02058B6C
+ add r3, r1, #0x0
+ add r2, r0, #0x0
+ ldmia r3!, {r0-r1}
+ add r2, #0x70
+ stmia r2!, {r0-r1}
+ ldr r0, [r3, #0x0]
+ str r0, [r2, #0x0]
+ bx lr
+
+ thumb_func_start FUN_02058B7C
+FUN_02058B7C: ; 0x02058B7C
+ add r0, #0x70
+ bx lr
+
+ thumb_func_start FUN_02058B80
+FUN_02058B80: ; 0x02058B80
+ ldr r0, [r0, #0x74]
+ bx lr
+
+ thumb_func_start FUN_02058B84
+FUN_02058B84: ; 0x02058B84
+ add r2, r0, #0x0
+ add r2, #0x7c
+ add r3, r1, #0x0
+ ldmia r2!, {r0-r1}
+ stmia r3!, {r0-r1}
+ ldr r0, [r2, #0x0]
+ str r0, [r3, #0x0]
+ bx lr
+
+ thumb_func_start FUN_02058B94
+FUN_02058B94: ; 0x02058B94
+ add r3, r1, #0x0
+ add r2, r0, #0x0
+ ldmia r3!, {r0-r1}
+ add r2, #0x7c
+ stmia r2!, {r0-r1}
+ ldr r0, [r3, #0x0]
+ str r0, [r2, #0x0]
+ bx lr
+
+ thumb_func_start FUN_02058BA4
+FUN_02058BA4: ; 0x02058BA4
+ add r2, r0, #0x0
+ add r2, #0x88
+ add r3, r1, #0x0
+ ldmia r2!, {r0-r1}
+ stmia r3!, {r0-r1}
+ ldr r0, [r2, #0x0]
+ str r0, [r3, #0x0]
+ bx lr
+
+ thumb_func_start FUN_02058BB4
+FUN_02058BB4: ; 0x02058BB4
+ add r3, r1, #0x0
+ add r2, r0, #0x0
+ ldmia r3!, {r0-r1}
+ add r2, #0x88
+ stmia r2!, {r0-r1}
+ ldr r0, [r3, #0x0]
+ str r0, [r2, #0x0]
+ bx lr
+
+ thumb_func_start FUN_02058BC4
+FUN_02058BC4: ; 0x02058BC4
+ add r2, r0, #0x0
+ add r2, #0x94
+ add r3, r1, #0x0
+ ldmia r2!, {r0-r1}
+ stmia r3!, {r0-r1}
+ ldr r0, [r2, #0x0]
+ str r0, [r3, #0x0]
+ bx lr
+
+ thumb_func_start FUN_02058BD4
+FUN_02058BD4: ; 0x02058BD4
+ add r3, r1, #0x0
+ add r2, r0, #0x0
+ ldmia r3!, {r0-r1}
+ add r2, #0x94
+ stmia r2!, {r0-r1}
+ ldr r0, [r3, #0x0]
+ str r0, [r2, #0x0]
+ bx lr
+
+ thumb_func_start FUN_02058BE4
+FUN_02058BE4: ; 0x02058BE4
+ push {r3, lr}
+ bl FUN_02058B80
+ asr r1, r0, #0x3
+ asr r0, r1, #0xb
+ lsr r0, r0, #0x14
+ add r0, r1, r0
+ asr r0, r0, #0xc
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_02058BF8
+FUN_02058BF8: ; 0x02058BF8
+ strh r1, [r0, #0x0]
+ bx lr
+
+ thumb_func_start FUN_02058BFC
+FUN_02058BFC: ; 0x02058BFC
+ ldrh r0, [r0, #0x0]
+ bx lr
+
+ thumb_func_start FUN_02058C00
+FUN_02058C00: ; 0x02058C00
+ strh r1, [r0, #0x2]
+ bx lr
+
+ thumb_func_start FUN_02058C04
+FUN_02058C04: ; 0x02058C04
+ ldrh r0, [r0, #0x2]
+ bx lr
+
+ thumb_func_start FUN_02058C08
+FUN_02058C08: ; 0x02058C08
+ strh r1, [r0, #0x4]
+ bx lr
+
+ thumb_func_start FUN_02058C0C
+FUN_02058C0C: ; 0x02058C0C
+ ldrh r0, [r0, #0x4]
+ bx lr
+
+ thumb_func_start FUN_02058C10
+FUN_02058C10: ; 0x02058C10
+ strh r1, [r0, #0x6]
+ bx lr
+
+ thumb_func_start FUN_02058C14
+FUN_02058C14: ; 0x02058C14
+ ldrh r0, [r0, #0x6]
+ bx lr
+
+ thumb_func_start FUN_02058C18
+FUN_02058C18: ; 0x02058C18
+ strh r1, [r0, #0x8]
+ bx lr
+
+ thumb_func_start FUN_02058C1C
+FUN_02058C1C: ; 0x02058C1C
+ ldrh r0, [r0, #0x8]
+ bx lr
+
+ thumb_func_start FUN_02058C20
+FUN_02058C20: ; 0x02058C20
+ strh r1, [r0, #0xa]
+ bx lr
+
+ thumb_func_start FUN_02058C24
+FUN_02058C24: ; 0x02058C24
+ ldrh r0, [r0, #0xa]
+ bx lr
+
+ thumb_func_start FUN_02058C28
+FUN_02058C28: ; 0x02058C28
+ strh r1, [r0, #0xc]
+ bx lr
+
+ thumb_func_start FUN_02058C2C
+FUN_02058C2C: ; 0x02058C2C
+ mov r1, #0xc
+ ldrsh r0, [r0, r1]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02058C34
+FUN_02058C34: ; 0x02058C34
+ push {r3, lr}
+ cmp r2, #0x0
+ beq _02058C44
+ cmp r2, #0x1
+ beq _02058C48
+ cmp r2, #0x2
+ beq _02058C4C
+ b _02058C50
+_02058C44:
+ strh r1, [r0, #0xe]
+ pop {r3, pc}
+_02058C48:
+ strh r1, [r0, #0x10]
+ pop {r3, pc}
+_02058C4C:
+ strh r1, [r0, #0x12]
+ pop {r3, pc}
+_02058C50:
+ bl ErrorHandling
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_02058C58
+FUN_02058C58: ; 0x02058C58
+ push {r3, lr}
+ cmp r1, #0x0
+ beq _02058C68
+ cmp r1, #0x1
+ beq _02058C6C
+ cmp r1, #0x2
+ beq _02058C70
+ b _02058C74
+_02058C68:
+ ldrh r0, [r0, #0xe]
+ pop {r3, pc}
+_02058C6C:
+ ldrh r0, [r0, #0x10]
+ pop {r3, pc}
+_02058C70:
+ ldrh r0, [r0, #0x12]
+ pop {r3, pc}
+_02058C74:
+ bl ErrorHandling
+ mov r0, #0x0
+ pop {r3, pc}
+
+ thumb_func_start FUN_02058C7C
+FUN_02058C7C: ; 0x02058C7C
+ strh r1, [r0, #0x14]
+ bx lr
+
+ thumb_func_start FUN_02058C80
+FUN_02058C80: ; 0x02058C80
+ mov r1, #0x14
+ ldrsh r0, [r0, r1]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02058C88
+FUN_02058C88: ; 0x02058C88
+ strh r1, [r0, #0x16]
+ bx lr
+
+ thumb_func_start FUN_02058C8C
+FUN_02058C8C: ; 0x02058C8C
+ mov r1, #0x16
+ ldrsh r0, [r0, r1]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02058C94
+FUN_02058C94: ; 0x02058C94
+ strh r1, [r0, #0x18]
+ bx lr
+
+ thumb_func_start FUN_02058C98
+FUN_02058C98: ; 0x02058C98
+ ldrh r0, [r0, #0x18]
+ bx lr
+
+ thumb_func_start FUN_02058C9C
+FUN_02058C9C: ; 0x02058C9C
+ str r1, [r0, #0x1c]
+ bx lr
+
+ thumb_func_start FUN_02058CA0
+FUN_02058CA0: ; 0x02058CA0
+ ldr r0, [r0, #0x1c]
+ bx lr
+
+ thumb_func_start FUN_02058CA4
+FUN_02058CA4: ; 0x02058CA4
+ strh r1, [r0, #0x1a]
+ bx lr
+
+ thumb_func_start FUN_02058CA8
+FUN_02058CA8: ; 0x02058CA8
+ ldrh r0, [r0, #0x1a]
+ bx lr
+
+ thumb_func_start FUN_02058CAC
+FUN_02058CAC: ; 0x02058CAC
+ push {r3-r7, lr}
+ add r6, r0, #0x0
+ add r7, r1, #0x0
+ str r2, [sp, #0x0]
+ mov r4, #0x0
+ add r5, r2, #0x0
+_02058CB8:
+ add r0, r5, #0x0
+ bl FUN_02058CE0
+ cmp r0, #0x0
+ bne _02058CD4
+ add r0, r5, #0x0
+ bl FUN_02058BFC
+ cmp r6, r0
+ bne _02058CD4
+ ldr r0, [sp, #0x0]
+ lsl r1, r4, #0x5
+ add r0, r0, r1
+ pop {r3-r7, pc}
+_02058CD4:
+ add r4, r4, #0x1
+ add r5, #0x20
+ cmp r4, r7
+ blt _02058CB8
+ mov r0, #0x0
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_02058CE0
+FUN_02058CE0: ; 0x02058CE0
+ push {r3, lr}
+ bl FUN_02058C24
+ lsl r0, r0, #0x10
+ lsr r1, r0, #0x10
+ ldr r0, _02058CF8 ; =0x0000FFFF
+ cmp r1, r0
+ bne _02058CF4
+ mov r0, #0x1
+ pop {r3, pc}
+_02058CF4:
+ mov r0, #0x0
+ pop {r3, pc}
+ .balign 4
+_02058CF8: .word 0x0000FFFF
+
+ thumb_func_start FUN_02058CFC
+FUN_02058CFC: ; 0x02058CFC
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl FUN_02058CE0
+ cmp r0, #0x1
+ beq _02058D0C
+ bl ErrorHandling
+_02058D0C:
+ add r0, r4, #0x0
+ bl FUN_02058C1C
+ pop {r4, pc}
+
+ thumb_func_start FUN_02058D14
+FUN_02058D14: ; 0x02058D14
+ push {r4, lr}
+ add r4, r0, #0x0
+ cmp r4, #0x37
+ blo _02058D20
+ bl ErrorHandling
+_02058D20:
+ ldr r0, _02058D28 ; =0x020F6364
+ lsl r1, r4, #0x2
+ ldr r0, [r0, r1]
+ pop {r4, pc}
+ .balign 4
+_02058D28: .word 0x020F6364
+
+ thumb_func_start FUN_02058D2C
+FUN_02058D2C: ; 0x02058D2C
+ ldr r0, [r0, #0x4]
+ bx lr
+
+ thumb_func_start FUN_02058D30
+FUN_02058D30: ; 0x02058D30
+ ldr r0, [r0, #0x8]
+ bx lr
+
+ thumb_func_start FUN_02058D34
+FUN_02058D34: ; 0x02058D34
+ ldr r0, [r0, #0xc]
+ bx lr
+
+ thumb_func_start FUN_02058D38
+FUN_02058D38: ; 0x02058D38
+ ldr r0, [r0, #0x0]
+ bx lr
+
+ thumb_func_start FUN_02058D3C
+FUN_02058D3C: ; 0x02058D3C
+ ldr r0, [r0, #0x4]
+ bx lr
+
+ thumb_func_start FUN_02058D40
+FUN_02058D40: ; 0x02058D40
+ ldr r0, [r0, #0x8]
+ bx lr
+
+ thumb_func_start FUN_02058D44
+FUN_02058D44: ; 0x02058D44
+ ldr r0, [r0, #0xc]
+ bx lr
+
+ thumb_func_start FUN_02058D48
+FUN_02058D48: ; 0x02058D48
+ ldr r0, [r0, #0x10]
+ bx lr
+
+ thumb_func_start FUN_02058D4C
+FUN_02058D4C: ; 0x02058D4C
+ push {r3, lr}
+ ldr r3, _02058D6C ; =0x021F9494
+ ldr r1, _02058D70 ; =0x0000FFFF
+_02058D52:
+ ldr r2, [r3, #0x0]
+ cmp r2, r0
+ bne _02058D5C
+ ldr r0, [r3, #0x4]
+ pop {r3, pc}
+_02058D5C:
+ add r3, #0x8
+ ldr r2, [r3, #0x0]
+ cmp r2, r1
+ bne _02058D52
+ bl ErrorHandling
+ mov r0, #0x0
+ pop {r3, pc}
+ .balign 4
+_02058D6C: .word 0x021F9494
+_02058D70: .word 0x0000FFFF
+
+ thumb_func_start FUN_02058D74
+FUN_02058D74: ; 0x02058D74
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ add r6, r1, #0x0
+ add r7, r2, #0x0
+ bl FUN_02058368
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_020583CC
+ add r5, r0, #0x0
+_02058D8A:
+ add r0, r5, #0x0
+ mov r1, #0x1
+ bl FUN_02058424
+ cmp r0, #0x0
+ beq _02058DAE
+ add r0, r5, #0x0
+ bl FUN_02058B2C
+ cmp r6, r0
+ bne _02058DAE
+ add r0, r5, #0x0
+ bl FUN_02058B4C
+ cmp r7, r0
+ bne _02058DAE
+ add r0, r5, #0x0
+ pop {r3-r7, pc}
+_02058DAE:
+ mov r0, #0x4a
+ lsl r0, r0, #0x2
+ add r5, r5, r0
+ sub r4, r4, #0x1
+ bne _02058D8A
+ mov r0, #0x0
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_02058DBC
+FUN_02058DBC: ; 0x02058DBC
+ push {r4-r6, lr}
+ add r4, r1, #0x0
+ ldr r1, [r4, #0x0]
+ add r6, r2, #0x0
+ asr r2, r1, #0x4
+ asr r1, r2, #0xb
+ lsr r1, r1, #0x14
+ add r1, r2, r1
+ asr r1, r1, #0xc
+ add r5, r0, #0x0
+ bl FUN_02058B30
+ ldr r1, [r4, #0x4]
+ add r0, r5, #0x0
+ asr r2, r1, #0x3
+ asr r1, r2, #0xb
+ lsr r1, r1, #0x14
+ add r1, r2, r1
+ asr r1, r1, #0xc
+ bl FUN_02058B40
+ ldr r1, [r4, #0x8]
+ add r0, r5, #0x0
+ asr r2, r1, #0x4
+ asr r1, r2, #0xb
+ lsr r1, r1, #0x14
+ add r1, r2, r1
+ asr r1, r1, #0xc
+ bl FUN_02058B50
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_02058B6C
+ add r0, r5, #0x0
+ bl FUN_02059C60
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ bl FUN_020584A4
+ add r0, r5, #0x0
+ bl FUN_0205AE80
+ add r0, r5, #0x0
+ mov r1, #0x4
+ bl FUN_02058410
+ add r0, r5, #0x0
+ mov r1, #0xa
+ bl FUN_02058418
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_02058E28
+FUN_02058E28: ; 0x02058E28
+ push {r3-r6, lr}
+ sub sp, #0xc
+ add r4, r2, #0x0
+ mov r2, #0x2
+ add r6, r3, #0x0
+ lsl r3, r1, #0x10
+ lsl r2, r2, #0xe
+ add r2, r3, r2
+ add r5, r0, #0x0
+ str r2, [sp, #0x0]
+ bl FUN_02058B30
+ lsl r0, r4, #0xf
+ str r0, [sp, #0x4]
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_02058B40
+ mov r0, #0x2
+ lsl r1, r6, #0x10
+ lsl r0, r0, #0xe
+ add r0, r1, r0
+ str r0, [sp, #0x8]
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ bl FUN_02058B50
+ add r0, r5, #0x0
+ add r1, sp, #0x0
+ bl FUN_02058B6C
+ add r0, r5, #0x0
+ bl FUN_02059C60
+ ldr r1, [sp, #0x20]
+ add r0, r5, #0x0
+ bl FUN_020584A4
+ add r0, r5, #0x0
+ mov r1, #0x4
+ bl FUN_02058410
+ add r0, r5, #0x0
+ mov r1, #0xa
+ bl FUN_02058418
+ add r0, r5, #0x0
+ bl FUN_0205AE80
+ add sp, #0xc
+ pop {r3-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_02058E90
+FUN_02058E90: ; 0x02058E90
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ bl FUN_02058660
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_0205847C
+ add r0, r5, #0x0
+ bl FUN_02057EE0
+ add r0, r5, #0x0
+ bl FUN_02058EE8
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_02058EB0
+FUN_02058EB0: ; 0x02058EB0
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl FUN_02058444
+ add r0, r4, #0x0
+ bl FUN_02058860
+ add r0, r4, #0x0
+ bl FUN_0205815C
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02058EC8
+FUN_02058EC8: ; 0x02058EC8
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02058ECC
+FUN_02058ECC: ; 0x02058ECC
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02058ED0
+FUN_02058ED0: ; 0x02058ED0
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02058ED4
+FUN_02058ED4: ; 0x02058ED4
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02058ED8
+FUN_02058ED8: ; 0x02058ED8
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02058EDC
+FUN_02058EDC: ; 0x02058EDC
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02058EE0
+FUN_02058EE0: ; 0x02058EE0
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02058EE4
+FUN_02058EE4: ; 0x02058EE4
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02058EE8
+FUN_02058EE8: ; 0x02058EE8
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl FUN_02058638
+ add r0, r4, #0x0
+ bl FUN_0205BEF8
+ pop {r4, pc}
+
+ thumb_func_start FUN_02058EF8
+FUN_02058EF8: ; 0x02058EF8
+ push {r4, lr}
+ mov r1, #0x2
+ add r4, r0, #0x0
+ bl FUN_020587F4
+ cmp r0, #0x0
+ bne _02058F5C
+ add r0, r4, #0x0
+ bl FUN_02058F94
+ add r0, r4, #0x0
+ bl FUN_02058FAC
+ add r0, r4, #0x0
+ bl FUN_02058FD0
+ add r0, r4, #0x0
+ mov r1, #0x10
+ bl FUN_02058424
+ cmp r0, #0x0
+ beq _02058F2C
+ add r0, r4, #0x0
+ bl FUN_0205B058
+ b _02058F50
+_02058F2C:
+ add r0, r4, #0x0
+ bl FUN_02058920
+ cmp r0, #0x0
+ bne _02058F50
+ add r0, r4, #0x0
+ bl FUN_02058F60
+ cmp r0, #0x1
+ bne _02058F50
+ add r0, r4, #0x0
+ bl FUN_0205BF00
+ cmp r0, #0x0
+ bne _02058F50
+ add r0, r4, #0x0
+ bl FUN_0205864C
+_02058F50:
+ add r0, r4, #0x0
+ bl FUN_02058FF4
+ add r0, r4, #0x0
+ bl FUN_0205902C
+_02058F5C:
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02058F60
+FUN_02058F60: ; 0x02058F60
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl FUN_02058854
+ cmp r0, #0x1
+ bne _02058F70
+ mov r0, #0x1
+ pop {r4, pc}
+_02058F70:
+ mov r1, #0x6
+ add r0, r4, #0x0
+ lsl r1, r1, #0xa
+ bl FUN_02058424
+ cmp r0, #0x0
+ bne _02058F82
+ mov r0, #0x1
+ pop {r4, pc}
+_02058F82:
+ add r0, r4, #0x0
+ bl FUN_02058480
+ cmp r0, #0x32
+ bne _02058F90
+ mov r0, #0x1
+ pop {r4, pc}
+_02058F90:
+ mov r0, #0x0
+ pop {r4, pc}
+
+ thumb_func_start FUN_02058F94
+FUN_02058F94: ; 0x02058F94
+ push {r4, lr}
+ mov r1, #0x1
+ lsl r1, r1, #0xc
+ add r4, r0, #0x0
+ bl FUN_02058424
+ cmp r0, #0x0
+ beq _02058FAA
+ add r0, r4, #0x0
+ bl FUN_02059D1C
+_02058FAA:
+ pop {r4, pc}
+
+ thumb_func_start FUN_02058FAC
+FUN_02058FAC: ; 0x02058FAC
+ push {r4, lr}
+ mov r1, #0x2
+ lsl r1, r1, #0xa
+ add r4, r0, #0x0
+ bl FUN_02058424
+ cmp r0, #0x0
+ beq _02058FCC
+ add r0, r4, #0x0
+ bl FUN_02059DB4
+ cmp r0, #0x1
+ bne _02058FCC
+ add r0, r4, #0x0
+ bl FUN_02058860
+_02058FCC:
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02058FD0
+FUN_02058FD0: ; 0x02058FD0
+ push {r4, lr}
+ mov r1, #0x4
+ add r4, r0, #0x0
+ bl FUN_02058424
+ cmp r0, #0x0
+ beq _02058FE4
+ add r0, r4, #0x0
+ bl FUN_02059064
+_02058FE4:
+ ldr r1, _02058FF0 ; =0x00010004
+ add r0, r4, #0x0
+ bl FUN_02058418
+ pop {r4, pc}
+ nop
+_02058FF0: .word 0x00010004
+
+ thumb_func_start FUN_02058FF4
+FUN_02058FF4: ; 0x02058FF4
+ push {r4, lr}
+ mov r1, #0x1
+ lsl r1, r1, #0x10
+ add r4, r0, #0x0
+ bl FUN_02058424
+ cmp r0, #0x0
+ beq _0205900C
+ add r0, r4, #0x0
+ bl FUN_020591A8
+ b _0205901E
+_0205900C:
+ add r0, r4, #0x0
+ mov r1, #0x4
+ bl FUN_02058424
+ cmp r0, #0x0
+ beq _0205901E
+ add r0, r4, #0x0
+ bl FUN_020590F4
+_0205901E:
+ ldr r1, _02059028 ; =0x00010004
+ add r0, r4, #0x0
+ bl FUN_02058418
+ pop {r4, pc}
+ .balign 4
+_02059028: .word 0x00010004
+
+ thumb_func_start FUN_0205902C
+FUN_0205902C: ; 0x0205902C
+ push {r4, lr}
+ mov r1, #0x2
+ lsl r1, r1, #0x10
+ add r4, r0, #0x0
+ bl FUN_02058424
+ cmp r0, #0x0
+ beq _02059044
+ add r0, r4, #0x0
+ bl FUN_0205928C
+ b _02059056
+_02059044:
+ add r0, r4, #0x0
+ mov r1, #0x8
+ bl FUN_02058424
+ cmp r0, #0x0
+ beq _02059056
+ add r0, r4, #0x0
+ bl FUN_02059214
+_02059056:
+ ldr r1, _02059060 ; =0x00020008
+ add r0, r4, #0x0
+ bl FUN_02058418
+ pop {r4, pc}
+ .balign 4
+_02059060: .word 0x00020008
+
+ thumb_func_start FUN_02059064
+FUN_02059064: ; 0x02059064
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ bl FUN_02059DB4
+ add r0, r5, #0x0
+ bl FUN_02058934
+ cmp r0, #0x1
+ bne _020590F2
+ add r0, r5, #0x0
+ bl FUN_02058720
+ lsl r0, r0, #0x18
+ lsr r6, r0, #0x18
+ add r0, r5, #0x0
+ bl FUN_02058730
+ lsl r0, r0, #0x18
+ lsr r4, r0, #0x18
+ add r0, r5, #0x0
+ bl FUN_021F1DC8
+ add r7, r0, #0x0
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ add r2, r4, #0x0
+ add r3, r7, #0x0
+ bl FUN_02059838
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ add r2, r4, #0x0
+ add r3, r7, #0x0
+ bl FUN_0205941C
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ add r2, r4, #0x0
+ add r3, r7, #0x0
+ bl FUN_020594C0
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ add r2, r4, #0x0
+ add r3, r7, #0x0
+ bl FUN_02059500
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ add r2, r4, #0x0
+ add r3, r7, #0x0
+ bl FUN_0205931C
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ add r2, r4, #0x0
+ add r3, r7, #0x0
+ bl FUN_02059678
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ add r2, r4, #0x0
+ add r3, r7, #0x0
+ bl FUN_020596A8
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ add r2, r4, #0x0
+ add r3, r7, #0x0
+ bl FUN_020597A8
+_020590F2:
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_020590F4
+FUN_020590F4: ; 0x020590F4
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ bl FUN_02059DB4
+ add r0, r5, #0x0
+ bl FUN_02058934
+ cmp r0, #0x1
+ bne _020591A6
+ add r0, r5, #0x0
+ bl FUN_02058720
+ lsl r0, r0, #0x18
+ lsr r6, r0, #0x18
+ add r0, r5, #0x0
+ bl FUN_02058730
+ lsl r0, r0, #0x18
+ lsr r4, r0, #0x18
+ add r0, r5, #0x0
+ bl FUN_021F1DC8
+ add r7, r0, #0x0
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ add r2, r4, #0x0
+ add r3, r7, #0x0
+ bl FUN_02059838
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ add r2, r4, #0x0
+ add r3, r7, #0x0
+ bl FUN_02059434
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ add r2, r4, #0x0
+ add r3, r7, #0x0
+ bl FUN_0205944C
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ add r2, r4, #0x0
+ add r3, r7, #0x0
+ bl FUN_020594C0
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ add r2, r4, #0x0
+ add r3, r7, #0x0
+ bl FUN_02059508
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ add r2, r4, #0x0
+ add r3, r7, #0x0
+ bl FUN_02059690
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ add r2, r4, #0x0
+ add r3, r7, #0x0
+ bl FUN_020596C0
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ add r2, r4, #0x0
+ add r3, r7, #0x0
+ bl FUN_020596D8
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ add r2, r4, #0x0
+ add r3, r7, #0x0
+ bl FUN_02059740
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ add r2, r4, #0x0
+ add r3, r7, #0x0
+ bl FUN_020597A8
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ add r2, r4, #0x0
+ add r3, r7, #0x0
+ bl FUN_02059870
+_020591A6:
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_020591A8
+FUN_020591A8: ; 0x020591A8
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ bl FUN_02059DB4
+ add r0, r5, #0x0
+ bl FUN_02058934
+ cmp r0, #0x1
+ bne _02059212
+ add r0, r5, #0x0
+ bl FUN_02058720
+ lsl r0, r0, #0x18
+ lsr r6, r0, #0x18
+ add r0, r5, #0x0
+ bl FUN_02058730
+ lsl r0, r0, #0x18
+ lsr r4, r0, #0x18
+ add r0, r5, #0x0
+ bl FUN_021F1DC8
+ add r7, r0, #0x0
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ add r2, r4, #0x0
+ add r3, r7, #0x0
+ bl FUN_02059838
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ add r2, r4, #0x0
+ add r3, r7, #0x0
+ bl FUN_02059508
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ add r2, r4, #0x0
+ add r3, r7, #0x0
+ bl FUN_020597A8
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ add r2, r4, #0x0
+ add r3, r7, #0x0
+ bl FUN_020594F4
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ add r2, r4, #0x0
+ add r3, r7, #0x0
+ bl FUN_02059870
+_02059212:
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_02059214
+FUN_02059214: ; 0x02059214
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ bl FUN_02059DB4
+ add r0, r5, #0x0
+ bl FUN_02058934
+ cmp r0, #0x1
+ bne _0205928A
+ add r0, r5, #0x0
+ bl FUN_02058720
+ lsl r0, r0, #0x18
+ lsr r6, r0, #0x18
+ add r0, r5, #0x0
+ bl FUN_02058730
+ lsl r0, r0, #0x18
+ lsr r4, r0, #0x18
+ add r0, r5, #0x0
+ bl FUN_021F1DC8
+ add r7, r0, #0x0
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ add r2, r4, #0x0
+ add r3, r7, #0x0
+ bl FUN_0205931C
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ add r2, r4, #0x0
+ add r3, r7, #0x0
+ bl FUN_0205970C
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ add r2, r4, #0x0
+ add r3, r7, #0x0
+ bl FUN_02059774
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ add r2, r4, #0x0
+ add r3, r7, #0x0
+ bl FUN_020594C0
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ add r2, r4, #0x0
+ add r3, r7, #0x0
+ bl FUN_02059804
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ add r2, r4, #0x0
+ add r3, r7, #0x0
+ bl FUN_020595A4
+_0205928A:
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_0205928C
+FUN_0205928C: ; 0x0205928C
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ bl FUN_02059DB4
+ add r0, r5, #0x0
+ bl FUN_02058934
+ cmp r0, #0x1
+ bne _0205931A
+ add r0, r5, #0x0
+ bl FUN_02058720
+ lsl r0, r0, #0x18
+ lsr r6, r0, #0x18
+ add r0, r5, #0x0
+ bl FUN_02058730
+ lsl r0, r0, #0x18
+ lsr r4, r0, #0x18
+ add r0, r5, #0x0
+ bl FUN_021F1DC8
+ add r7, r0, #0x0
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ add r2, r4, #0x0
+ add r3, r7, #0x0
+ bl FUN_0205931C
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ add r2, r4, #0x0
+ add r3, r7, #0x0
+ bl FUN_0205970C
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ add r2, r4, #0x0
+ add r3, r7, #0x0
+ bl FUN_02059774
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ add r2, r4, #0x0
+ add r3, r7, #0x0
+ bl FUN_020594C0
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ add r2, r4, #0x0
+ add r3, r7, #0x0
+ bl FUN_02059804
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ add r2, r4, #0x0
+ add r3, r7, #0x0
+ bl FUN_020595A4
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ add r2, r4, #0x0
+ add r3, r7, #0x0
+ bl FUN_02059434
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ add r2, r4, #0x0
+ add r3, r7, #0x0
+ bl FUN_0205962C
+_0205931A:
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_0205931C
+FUN_0205931C: ; 0x0205931C
+ push {r3-r5, lr}
+ sub sp, #0x48
+ add r4, r0, #0x0
+ add r5, r1, #0x0
+ bl FUN_02058A34
+ cmp r0, #0x0
+ bne _020593F4
+ add r0, r5, #0x0
+ bl FUN_02054984
+ cmp r0, #0x1
+ beq _02059340
+ add r0, r5, #0x0
+ bl FUN_020549A0
+ cmp r0, #0x1
+ bne _0205935A
+_02059340:
+ ldr r5, _02059408 ; =0x020F65FC
+ add r3, sp, #0x3c
+ ldmia r5!, {r0-r1}
+ add r2, r3, #0x0
+ stmia r3!, {r0-r1}
+ ldr r0, [r5, #0x0]
+ add r1, r2, #0x0
+ str r0, [r3, #0x0]
+ add r0, r4, #0x0
+ bl FUN_02058BD4
+ add sp, #0x48
+ pop {r3-r5, pc}
+_0205935A:
+ add r0, r5, #0x0
+ bl FUN_02054974
+ cmp r0, #0x1
+ beq _0205936E
+ add r0, r5, #0x0
+ bl FUN_02054990
+ cmp r0, #0x1
+ bne _02059388
+_0205936E:
+ ldr r5, _0205940C ; =0x020F6608
+ add r3, sp, #0x30
+ ldmia r5!, {r0-r1}
+ add r2, r3, #0x0
+ stmia r3!, {r0-r1}
+ ldr r0, [r5, #0x0]
+ add r1, r2, #0x0
+ str r0, [r3, #0x0]
+ add r0, r4, #0x0
+ bl FUN_02058BD4
+ add sp, #0x48
+ pop {r3-r5, pc}
+_02059388:
+ add r0, r5, #0x0
+ bl FUN_020549F0
+ cmp r0, #0x1
+ bne _020593AC
+ ldr r5, _02059410 ; =0x020F65E4
+ add r3, sp, #0x24
+ ldmia r5!, {r0-r1}
+ add r2, r3, #0x0
+ stmia r3!, {r0-r1}
+ ldr r0, [r5, #0x0]
+ add r1, r2, #0x0
+ str r0, [r3, #0x0]
+ add r0, r4, #0x0
+ bl FUN_02058BD4
+ add sp, #0x48
+ pop {r3-r5, pc}
+_020593AC:
+ add r0, r5, #0x0
+ bl FUN_020549E4
+ cmp r0, #0x1
+ bne _020593D0
+ ldr r5, _02059414 ; =0x020F65F0
+ add r3, sp, #0x18
+ ldmia r5!, {r0-r1}
+ add r2, r3, #0x0
+ stmia r3!, {r0-r1}
+ ldr r0, [r5, #0x0]
+ add r1, r2, #0x0
+ str r0, [r3, #0x0]
+ add r0, r4, #0x0
+ bl FUN_02058BD4
+ add sp, #0x48
+ pop {r3-r5, pc}
+_020593D0:
+ add r0, r5, #0x0
+ bl FUN_020549D8
+ cmp r0, #0x1
+ bne _020593F4
+ ldr r5, _02059418 ; =0x020F6614
+ add r3, sp, #0xc
+ ldmia r5!, {r0-r1}
+ add r2, r3, #0x0
+ stmia r3!, {r0-r1}
+ ldr r0, [r5, #0x0]
+ add r1, r2, #0x0
+ str r0, [r3, #0x0]
+ add r0, r4, #0x0
+ bl FUN_02058BD4
+ add sp, #0x48
+ pop {r3-r5, pc}
+_020593F4:
+ add r1, sp, #0x0
+ mov r0, #0x0
+ str r0, [r1, #0x0]
+ str r0, [r1, #0x4]
+ str r0, [r1, #0x8]
+ add r0, r4, #0x0
+ bl FUN_02058BD4
+ add sp, #0x48
+ pop {r3-r5, pc}
+ .balign 4
+_02059408: .word 0x020F65FC
+_0205940C: .word 0x020F6608
+_02059410: .word 0x020F65E4
+_02059414: .word 0x020F65F0
+_02059418: .word 0x020F6614
+
+ thumb_func_start FUN_0205941C
+FUN_0205941C: ; 0x0205941C
+ push {r4, lr}
+ add r4, r0, #0x0
+ add r0, r1, #0x0
+ bl FUN_0205478C
+ cmp r0, #0x1
+ bne _02059432
+ add r0, r4, #0x0
+ mov r1, #0x0
+ bl FUN_0224B568
+_02059432:
+ pop {r4, pc}
+
+ thumb_func_start FUN_02059434
+FUN_02059434: ; 0x02059434
+ push {r4, lr}
+ add r4, r0, #0x0
+ add r0, r1, #0x0
+ bl FUN_0205478C
+ cmp r0, #0x1
+ bne _0205944A
+ add r0, r4, #0x0
+ mov r1, #0x1
+ bl FUN_0224B568
+_0205944A:
+ pop {r4, pc}
+
+ thumb_func_start FUN_0205944C
+FUN_0205944C: ; 0x0205944C
+ push {r4-r6, lr}
+ add r6, r3, #0x0
+ ldr r1, [r6, #0x4]
+ add r5, r0, #0x0
+ lsl r1, r1, #0x16
+ add r4, r2, #0x0
+ lsr r1, r1, #0x1c
+ beq _020594BC
+ add r1, r4, #0x0
+ bl FUN_02059AF8
+ cmp r0, #0x1
+ bne _02059484
+ ldr r0, [r6, #0x4]
+ lsl r0, r0, #0x16
+ lsr r0, r0, #0x1c
+ cmp r0, #0x1
+ bne _02059478
+ add r0, r5, #0x0
+ bl FUN_02249E6C
+ pop {r4-r6, pc}
+_02059478:
+ cmp r0, #0x2
+ bne _020594BC
+ add r0, r5, #0x0
+ bl FUN_02249E78
+ pop {r4-r6, pc}
+_02059484:
+ add r0, r4, #0x0
+ bl FUN_020549E4
+ cmp r0, #0x1
+ beq _020594A2
+ add r0, r4, #0x0
+ bl FUN_020549F0
+ cmp r0, #0x1
+ beq _020594A2
+ add r0, r4, #0x0
+ bl FUN_020549D8
+ cmp r0, #0x0
+ beq _020594AA
+_020594A2:
+ add r0, r5, #0x0
+ bl FUN_02249E90
+ pop {r4-r6, pc}
+_020594AA:
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_02059B60
+ cmp r0, #0x1
+ bne _020594BC
+ add r0, r5, #0x0
+ bl FUN_02249E84
+_020594BC:
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_020594C0
+FUN_020594C0: ; 0x020594C0
+ push {r4, lr}
+ add r4, r0, #0x0
+ add r0, r1, #0x0
+ bl FUN_0205483C
+ cmp r0, #0x1
+ bne _020594EA
+ add r0, r4, #0x0
+ bl FUN_02058A00
+ cmp r0, #0x0
+ bne _020594F2
+ add r0, r4, #0x0
+ mov r1, #0x1
+ bl FUN_0224B9E0
+ add r0, r4, #0x0
+ mov r1, #0x1
+ bl FUN_020589E4
+ pop {r4, pc}
+_020594EA:
+ add r0, r4, #0x0
+ mov r1, #0x0
+ bl FUN_020589E4
+_020594F2:
+ pop {r4, pc}
+
+ thumb_func_start FUN_020594F4
+FUN_020594F4: ; 0x020594F4
+ ldr r3, _020594FC ; =FUN_020589E4
+ mov r1, #0x0
+ bx r3
+ nop
+_020594FC: .word FUN_020589E4
+
+ thumb_func_start FUN_02059500
+FUN_02059500: ; 0x02059500
+ push {r3, lr}
+ bl FUN_02059508
+ pop {r3, pc}
+
+ thumb_func_start FUN_02059508
+FUN_02059508: ; 0x02059508
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ add r6, r3, #0x0
+ bl FUN_02058578
+ bl FUN_0205881C
+ cmp r0, #0x0
+ beq _020595A2
+ ldr r0, [r6, #0x4]
+ lsl r0, r0, #0x1a
+ lsr r0, r0, #0x1e
+ beq _020595A2
+ add r0, r4, #0x0
+ bl FUN_0205478C
+ cmp r0, #0x1
+ beq _02059578
+ add r0, r4, #0x0
+ bl FUN_02054798
+ cmp r0, #0x1
+ beq _02059578
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_02059AC4
+ cmp r0, #0x1
+ beq _02059578
+ add r0, r4, #0x0
+ bl FUN_02054AF0
+ cmp r0, #0x1
+ beq _02059578
+ add r0, r4, #0x0
+ bl FUN_0205483C
+ cmp r0, #0x1
+ beq _02059578
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_02059B2C
+ cmp r0, #0x1
+ beq _02059578
+ add r0, r4, #0x0
+ bl FUN_02054974
+ cmp r0, #0x1
+ beq _02059578
+ add r0, r4, #0x0
+ bl FUN_02054990
+ cmp r0, #0x1
+ bne _02059584
+_02059578:
+ mov r1, #0x1
+ add r0, r5, #0x0
+ lsl r1, r1, #0x14
+ bl FUN_02058410
+ pop {r4-r6, pc}
+_02059584:
+ mov r1, #0x2
+ add r0, r5, #0x0
+ lsl r1, r1, #0xe
+ bl FUN_02058424
+ cmp r0, #0x0
+ bne _020595A2
+ add r0, r5, #0x0
+ bl FUN_02249508
+ mov r1, #0x2
+ add r0, r5, #0x0
+ lsl r1, r1, #0xe
+ bl FUN_02058410
+_020595A2:
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_020595A4
+FUN_020595A4: ; 0x020595A4
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ add r6, r3, #0x0
+ bl FUN_02058578
+ bl FUN_0205881C
+ cmp r0, #0x0
+ beq _0205962A
+ ldr r0, [r6, #0x4]
+ lsl r0, r0, #0x1a
+ lsr r0, r0, #0x1e
+ beq _0205962A
+ add r0, r4, #0x0
+ bl FUN_0205478C
+ cmp r0, #0x1
+ beq _02059614
+ add r0, r4, #0x0
+ bl FUN_02054798
+ cmp r0, #0x1
+ beq _02059614
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_02059AC4
+ cmp r0, #0x1
+ beq _02059614
+ add r0, r4, #0x0
+ bl FUN_02054AF0
+ cmp r0, #0x1
+ beq _02059614
+ add r0, r4, #0x0
+ bl FUN_0205483C
+ cmp r0, #0x1
+ beq _02059614
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_02059B2C
+ cmp r0, #0x1
+ beq _02059614
+ add r0, r4, #0x0
+ bl FUN_02054974
+ cmp r0, #0x1
+ beq _02059614
+ add r0, r4, #0x0
+ bl FUN_02054990
+ cmp r0, #0x1
+ bne _02059620
+_02059614:
+ mov r1, #0x1
+ add r0, r5, #0x0
+ lsl r1, r1, #0x14
+ bl FUN_02058410
+ pop {r4-r6, pc}
+_02059620:
+ mov r1, #0x1
+ add r0, r5, #0x0
+ lsl r1, r1, #0x14
+ bl FUN_02058418
+_0205962A:
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_0205962C
+FUN_0205962C: ; 0x0205962C
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ bl FUN_02059AC4
+ cmp r0, #0x1
+ beq _02059674
+ add r0, r4, #0x0
+ bl FUN_0205483C
+ cmp r0, #0x1
+ beq _02059674
+ add r0, r4, #0x0
+ bl FUN_020548F0
+ cmp r0, #0x1
+ beq _02059674
+ add r0, r4, #0x0
+ bl FUN_02054974
+ cmp r0, #0x1
+ beq _02059674
+ add r0, r4, #0x0
+ bl FUN_02054990
+ cmp r0, #0x1
+ beq _02059674
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_02059B2C
+ cmp r0, #0x1
+ beq _02059674
+ add r0, r5, #0x0
+ bl FUN_0224BBEC
+_02059674:
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_02059678
+FUN_02059678: ; 0x02059678
+ push {r4, lr}
+ add r4, r0, #0x0
+ add r0, r1, #0x0
+ bl FUN_02054798
+ cmp r0, #0x1
+ bne _0205968E
+ add r0, r4, #0x0
+ mov r1, #0x0
+ bl FUN_0224BD90
+_0205968E:
+ pop {r4, pc}
+
+ thumb_func_start FUN_02059690
+FUN_02059690: ; 0x02059690
+ push {r4, lr}
+ add r4, r0, #0x0
+ add r0, r1, #0x0
+ bl FUN_02054798
+ cmp r0, #0x1
+ bne _020596A6
+ add r0, r4, #0x0
+ mov r1, #0x1
+ bl FUN_0224BD90
+_020596A6:
+ pop {r4, pc}
+
+ thumb_func_start FUN_020596A8
+FUN_020596A8: ; 0x020596A8
+ push {r4, lr}
+ add r4, r0, #0x0
+ add r0, r1, #0x0
+ bl FUN_02054990
+ cmp r0, #0x1
+ bne _020596BE
+ add r0, r4, #0x0
+ mov r1, #0x0
+ bl FUN_0224C038
+_020596BE:
+ pop {r4, pc}
+
+ thumb_func_start FUN_020596C0
+FUN_020596C0: ; 0x020596C0
+ push {r4, lr}
+ add r4, r0, #0x0
+ add r0, r1, #0x0
+ bl FUN_02054990
+ cmp r0, #0x1
+ bne _020596D6
+ add r0, r4, #0x0
+ mov r1, #0x1
+ bl FUN_0224C038
+_020596D6:
+ pop {r4, pc}
+
+ thumb_func_start FUN_020596D8
+FUN_020596D8: ; 0x020596D8
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ add r0, r2, #0x0
+ bl FUN_02054AF0
+ cmp r0, #0x1
+ bne _02059708
+ add r0, r5, #0x0
+ bl FUN_02058B14
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_02058B1C
+ add r6, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_02058B24
+ add r3, r0, #0x0
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ add r2, r6, #0x0
+ bl FUN_0224B124
+_02059708:
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_0205970C
+FUN_0205970C: ; 0x0205970C
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ add r0, r1, #0x0
+ bl FUN_02054AF0
+ cmp r0, #0x1
+ bne _0205973C
+ add r0, r5, #0x0
+ bl FUN_02058B2C
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_02058B3C
+ add r6, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_02058B4C
+ add r3, r0, #0x0
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ add r2, r6, #0x0
+ bl FUN_0224B124
+_0205973C:
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_02059740
+FUN_02059740: ; 0x02059740
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ add r0, r2, #0x0
+ bl FUN_02054974
+ cmp r0, #0x1
+ bne _02059770
+ add r0, r5, #0x0
+ bl FUN_02058B14
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_02058B1C
+ add r6, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_02058B24
+ add r3, r0, #0x0
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ add r2, r6, #0x0
+ bl FUN_0224B2C4
+_02059770:
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_02059774
+FUN_02059774: ; 0x02059774
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ add r0, r1, #0x0
+ bl FUN_02054974
+ cmp r0, #0x1
+ bne _020597A4
+ add r0, r5, #0x0
+ bl FUN_02058B2C
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_02058B3C
+ add r6, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_02058B4C
+ add r3, r0, #0x0
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ add r2, r6, #0x0
+ bl FUN_0224B2C4
+_020597A4:
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_020597A8
+FUN_020597A8: ; 0x020597A8
+ push {r4-r6, lr}
+ add r6, r1, #0x0
+ ldr r1, [r3, #0x4]
+ add r5, r0, #0x0
+ lsl r1, r1, #0x14
+ lsr r1, r1, #0x1e
+ beq _02059802
+ mov r1, #0x1
+ bl FUN_02059C90
+ lsl r0, r0, #0x18
+ lsr r4, r0, #0x18
+ add r0, r5, #0x0
+ bl FUN_02058A9C
+ cmp r0, #0x0
+ bne _02059802
+ add r0, r4, #0x0
+ bl FUN_02054B20
+ cmp r0, #0x1
+ beq _020597DE
+ add r0, r6, #0x0
+ bl FUN_02054B20
+ cmp r0, #0x1
+ bne _02059802
+_020597DE:
+ add r0, r5, #0x0
+ mov r1, #0x1
+ bl FUN_02058A80
+ add r0, r4, #0x0
+ bl FUN_02054AF0
+ cmp r0, #0x1
+ bne _020597FA
+ add r0, r5, #0x0
+ mov r1, #0x0
+ bl FUN_022497E8
+ pop {r4-r6, pc}
+_020597FA:
+ add r0, r5, #0x0
+ mov r1, #0x1
+ bl FUN_022497E8
+_02059802:
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_02059804
+FUN_02059804: ; 0x02059804
+ push {r4, lr}
+ ldr r1, [r3, #0x4]
+ add r4, r0, #0x0
+ lsl r1, r1, #0x14
+ lsr r1, r1, #0x1e
+ beq _02059834
+ bl FUN_02058A9C
+ cmp r0, #0x0
+ beq _02059834
+ add r0, r4, #0x0
+ mov r1, #0x1
+ bl FUN_02059C90
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_02054B20
+ cmp r0, #0x0
+ bne _02059834
+ add r0, r4, #0x0
+ mov r1, #0x0
+ bl FUN_02058A80
+_02059834:
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02059838
+FUN_02059838: ; 0x02059838
+ push {r3-r5, lr}
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_02054B6C
+ cmp r0, #0x1
+ bne _02059852
+ add r0, r5, #0x0
+ mov r1, #0x1
+ bl FUN_02058A4C
+ pop {r3-r5, pc}
+_02059852:
+ add r0, r5, #0x0
+ bl FUN_02058A68
+ cmp r0, #0x1
+ bne _0205986E
+ add r0, r4, #0x0
+ bl FUN_02054B78
+ cmp r0, #0x0
+ bne _0205986E
+ add r0, r5, #0x0
+ mov r1, #0x0
+ bl FUN_02058A4C
+_0205986E:
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_02059870
+FUN_02059870: ; 0x02059870
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02059874
+FUN_02059874: ; 0x02059874
+ push {r3-r7, lr}
+ sub sp, #0x10
+ ldr r7, [sp, #0x28]
+ add r5, r2, #0x0
+ str r1, [sp, #0x4]
+ str r3, [sp, #0x8]
+ add r2, r3, #0x0
+ add r1, r5, #0x0
+ add r3, r7, #0x0
+ add r6, r0, #0x0
+ mov r4, #0x0
+ bl FUN_02059A08
+ cmp r0, #0x1
+ bne _02059896
+ mov r0, #0x1
+ orr r4, r0
+_02059896:
+ add r0, r6, #0x0
+ bl FUN_02058738
+ add r1, sp, #0xc
+ str r1, [sp, #0x0]
+ ldr r1, [sp, #0x4]
+ add r2, r5, #0x0
+ add r3, r7, #0x0
+ bl FUN_0204A770
+ cmp r0, #0x1
+ bne _020598C0
+ mov r0, #0x2
+ orr r4, r0
+ add r1, sp, #0xc
+ mov r0, #0x0
+ ldrsb r0, [r1, r0]
+ cmp r0, #0x0
+ beq _020598C0
+ mov r0, #0x8
+ orr r4, r0
+_020598C0:
+ ldr r3, [sp, #0x2c]
+ add r0, r6, #0x0
+ add r1, r5, #0x0
+ add r2, r7, #0x0
+ bl FUN_02059A60
+ cmp r0, #0x1
+ bne _020598D4
+ mov r0, #0x2
+ orr r4, r0
+_020598D4:
+ ldr r2, [sp, #0x8]
+ add r0, r6, #0x0
+ add r1, r5, #0x0
+ add r3, r7, #0x0
+ bl FUN_0205995C
+ cmp r0, #0x1
+ bne _020598E8
+ mov r0, #0x4
+ orr r4, r0
+_020598E8:
+ add r0, r4, #0x0
+ add sp, #0x10
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_020598F0
+FUN_020598F0: ; 0x020598F0
+ push {r4-r7, lr}
+ sub sp, #0x14
+ add r6, r1, #0x0
+ add r1, sp, #0x8
+ add r5, r0, #0x0
+ add r7, r2, #0x0
+ add r4, r3, #0x0
+ bl FUN_02058B5C
+ ldr r0, [sp, #0x28]
+ str r4, [sp, #0x0]
+ str r0, [sp, #0x4]
+ add r0, r5, #0x0
+ add r1, sp, #0x8
+ add r2, r6, #0x0
+ add r3, r7, #0x0
+ bl FUN_02059874
+ add sp, #0x14
+ pop {r4-r7, pc}
+
+ thumb_func_start FUN_02059918
+FUN_02059918: ; 0x02059918
+ push {r4-r7, lr}
+ sub sp, #0xc
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ bl FUN_02058B2C
+ add r6, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_02059BF4
+ add r7, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_02058B3C
+ str r0, [sp, #0x4]
+ add r0, r5, #0x0
+ bl FUN_02058B4C
+ str r0, [sp, #0x8]
+ add r0, r4, #0x0
+ bl FUN_02059C00
+ str r4, [sp, #0x0]
+ add r3, r0, #0x0
+ ldr r4, [sp, #0x8]
+ ldr r2, [sp, #0x4]
+ add r0, r5, #0x0
+ add r1, r6, r7
+ add r3, r4, r3
+ bl FUN_020598F0
+ add sp, #0xc
+ pop {r4-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_0205995C
+FUN_0205995C: ; 0x0205995C
+ push {r4-r7, lr}
+ sub sp, #0xc
+ str r0, [sp, #0x0]
+ add r5, r1, #0x0
+ add r4, r2, #0x0
+ add r6, r3, #0x0
+ bl FUN_02058578
+ add r7, r0, #0x0
+ bl FUN_020583BC
+ str r0, [sp, #0x8]
+ add r0, r7, #0x0
+ bl FUN_02058368
+ str r0, [sp, #0x4]
+_0205997C:
+ ldr r0, [sp, #0x8]
+ ldr r1, [sp, #0x0]
+ cmp r0, r1
+ beq _020599F4
+ mov r1, #0x1
+ bl FUN_02058424
+ cmp r0, #0x0
+ beq _020599F4
+ mov r1, #0x1
+ ldr r0, [sp, #0x8]
+ lsl r1, r1, #0x12
+ bl FUN_02058424
+ cmp r0, #0x0
+ bne _020599F4
+ ldr r0, [sp, #0x8]
+ bl FUN_02058B2C
+ add r7, r0, #0x0
+ ldr r0, [sp, #0x8]
+ bl FUN_02058B4C
+ cmp r7, r5
+ bne _020599C8
+ cmp r0, r6
+ bne _020599C8
+ ldr r0, [sp, #0x8]
+ bl FUN_02058B3C
+ sub r0, r0, r4
+ bpl _020599BE
+ neg r0, r0
+_020599BE:
+ cmp r0, #0x2
+ bge _020599C8
+ add sp, #0xc
+ mov r0, #0x1
+ pop {r4-r7, pc}
+_020599C8:
+ ldr r0, [sp, #0x8]
+ bl FUN_02058B14
+ add r7, r0, #0x0
+ ldr r0, [sp, #0x8]
+ bl FUN_02058B24
+ cmp r7, r5
+ bne _020599F4
+ cmp r0, r6
+ bne _020599F4
+ ldr r0, [sp, #0x8]
+ bl FUN_02058B3C
+ sub r0, r0, r4
+ bpl _020599EA
+ neg r0, r0
+_020599EA:
+ cmp r0, #0x2
+ bge _020599F4
+ add sp, #0xc
+ mov r0, #0x1
+ pop {r4-r7, pc}
+_020599F4:
+ add r0, sp, #0x8
+ bl FUN_020583D4
+ ldr r0, [sp, #0x4]
+ sub r0, r0, #0x1
+ str r0, [sp, #0x4]
+ bne _0205997C
+ mov r0, #0x0
+ add sp, #0xc
+ pop {r4-r7, pc}
+
+ thumb_func_start FUN_02059A08
+FUN_02059A08: ; 0x02059A08
+ push {r3-r7, lr}
+ add r6, r0, #0x0
+ add r5, r1, #0x0
+ add r4, r3, #0x0
+ bl FUN_02058AFC
+ add r7, r0, #0x0
+ add r0, r6, #0x0
+ bl FUN_02058538
+ mov r1, #0x0
+ mvn r1, r1
+ cmp r0, r1
+ beq _02059A34
+ add r1, r7, r0
+ sub r0, r7, r0
+ cmp r0, r5
+ bgt _02059A30
+ cmp r1, r5
+ bge _02059A34
+_02059A30:
+ mov r0, #0x1
+ pop {r3-r7, pc}
+_02059A34:
+ add r0, r6, #0x0
+ bl FUN_02058B0C
+ add r5, r0, #0x0
+ add r0, r6, #0x0
+ bl FUN_02058540
+ mov r1, #0x0
+ mvn r1, r1
+ cmp r0, r1
+ beq _02059A5A
+ add r1, r5, r0
+ sub r0, r5, r0
+ cmp r0, r4
+ bgt _02059A56
+ cmp r1, r4
+ bge _02059A5A
+_02059A56:
+ mov r0, #0x1
+ pop {r3-r7, pc}
+_02059A5A:
+ mov r0, #0x0
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_02059A60
+FUN_02059A60: ; 0x02059A60
+ push {r3-r7, lr}
+ add r4, r0, #0x0
+ add r6, r1, #0x0
+ add r7, r2, #0x0
+ add r5, r3, #0x0
+ bl FUN_02058738
+ str r0, [sp, #0x0]
+ add r0, r4, #0x0
+ bl FUN_02058720
+ lsl r0, r0, #0x18
+ lsr r4, r0, #0x18
+ ldr r0, [sp, #0x0]
+ add r1, r6, #0x0
+ add r2, r7, #0x0
+ bl FUN_0204A6E0
+ add r6, r0, #0x0
+ mov r0, #0x0
+ mvn r0, r0
+ cmp r5, r0
+ bne _02059A92
+ bl ErrorHandling
+_02059A92:
+ cmp r5, #0x4
+ blt _02059A9A
+ bl ErrorHandling
+_02059A9A:
+ ldr r1, _02059ABC ; =0x020F6630
+ lsl r5, r5, #0x2
+ ldr r1, [r1, r5]
+ add r0, r4, #0x0
+ blx r1
+ cmp r0, #0x1
+ beq _02059AB4
+ ldr r1, _02059AC0 ; =0x020F6640
+ add r0, r6, #0x0
+ ldr r1, [r1, r5]
+ blx r1
+ cmp r0, #0x1
+ bne _02059AB8
+_02059AB4:
+ mov r0, #0x1
+ pop {r3-r7, pc}
+_02059AB8:
+ mov r0, #0x0
+ pop {r3-r7, pc}
+ .balign 4
+_02059ABC: .word 0x020F6630
+_02059AC0: .word 0x020F6640
+
+ thumb_func_start FUN_02059AC4
+FUN_02059AC4: ; 0x02059AC4
+ push {r3-r5, lr}
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ lsl r0, r4, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_02054B8C
+ cmp r0, #0x0
+ beq _02059AE4
+ add r0, r5, #0x0
+ bl FUN_02058A68
+ cmp r0, #0x0
+ bne _02059AF4
+ mov r0, #0x1
+ pop {r3-r5, pc}
+_02059AE4:
+ lsl r0, r4, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_0205481C
+ cmp r0, #0x0
+ beq _02059AF4
+ mov r0, #0x1
+ pop {r3-r5, pc}
+_02059AF4:
+ mov r0, #0x0
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_02059AF8
+FUN_02059AF8: ; 0x02059AF8
+ push {r3-r5, lr}
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ lsl r0, r4, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_02054BB0
+ cmp r0, #0x0
+ beq _02059B18
+ add r0, r5, #0x0
+ bl FUN_02058A68
+ cmp r0, #0x0
+ bne _02059B28
+ mov r0, #0x1
+ pop {r3-r5, pc}
+_02059B18:
+ lsl r0, r4, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_02054830
+ cmp r0, #0x0
+ beq _02059B28
+ mov r0, #0x1
+ pop {r3-r5, pc}
+_02059B28:
+ mov r0, #0x0
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_02059B2C
+FUN_02059B2C: ; 0x02059B2C
+ push {r3-r5, lr}
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ lsl r0, r4, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_02054BD4
+ cmp r0, #0x0
+ beq _02059B4C
+ add r0, r5, #0x0
+ bl FUN_02058A68
+ cmp r0, #0x0
+ bne _02059B5C
+ mov r0, #0x1
+ pop {r3-r5, pc}
+_02059B4C:
+ lsl r0, r4, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_020549AC
+ cmp r0, #0x0
+ beq _02059B5C
+ mov r0, #0x1
+ pop {r3-r5, pc}
+_02059B5C:
+ mov r0, #0x0
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_02059B60
+FUN_02059B60: ; 0x02059B60
+ push {r3-r5, lr}
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ lsl r0, r4, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_02054BD4
+ cmp r0, #0x0
+ beq _02059B80
+ add r0, r5, #0x0
+ bl FUN_02058A68
+ cmp r0, #0x0
+ bne _02059B90
+ mov r0, #0x1
+ pop {r3-r5, pc}
+_02059B80:
+ lsl r0, r4, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_020549CC
+ cmp r0, #0x0
+ beq _02059B90
+ mov r0, #0x1
+ pop {r3-r5, pc}
+_02059B90:
+ mov r0, #0x0
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_02059B94
+FUN_02059B94: ; 0x02059B94
+ push {r4, lr}
+ add r4, r1, #0x0
+ bl FUN_02058A68
+ cmp r0, #0x1
+ bne _02059BB0
+ lsl r0, r4, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_02054B78
+ cmp r0, #0x1
+ bne _02059BB0
+ mov r0, #0x1
+ pop {r4, pc}
+_02059BB0:
+ mov r0, #0x0
+ pop {r4, pc}
+
+ thumb_func_start FUN_02059BB4
+FUN_02059BB4: ; 0x02059BB4
+ push {r4, lr}
+ add r4, r1, #0x0
+ bl FUN_02058A68
+ cmp r0, #0x1
+ bne _02059BD0
+ lsl r0, r4, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_02054BE0
+ cmp r0, #0x1
+ bne _02059BD0
+ mov r0, #0x1
+ pop {r4, pc}
+_02059BD0:
+ mov r0, #0x0
+ pop {r4, pc}
+
+ thumb_func_start FUN_02059BD4
+FUN_02059BD4: ; 0x02059BD4
+ push {r4, lr}
+ add r4, r1, #0x0
+ bl FUN_02058A68
+ cmp r0, #0x1
+ bne _02059BF0
+ lsl r0, r4, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_02054BF4
+ cmp r0, #0x1
+ bne _02059BF0
+ mov r0, #0x1
+ pop {r4, pc}
+_02059BF0:
+ mov r0, #0x0
+ pop {r4, pc}
+
+ thumb_func_start FUN_02059BF4
+FUN_02059BF4: ; 0x02059BF4
+ lsl r1, r0, #0x2
+ ldr r0, _02059BFC ; =0x020F6620
+ ldr r0, [r0, r1]
+ bx lr
+ .balign 4
+_02059BFC: .word 0x020F6620
+
+ thumb_func_start FUN_02059C00
+FUN_02059C00: ; 0x02059C00
+ lsl r1, r0, #0x2
+ ldr r0, _02059C08 ; =0x020F6650
+ ldr r0, [r0, r1]
+ bx lr
+ .balign 4
+_02059C08: .word 0x020F6650
+
+ thumb_func_start FUN_02059C0C
+FUN_02059C0C: ; 0x02059C0C
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ bl FUN_02058B2C
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_02058B18
+ add r0, r5, #0x0
+ bl FUN_02058B3C
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_02058B20
+ add r0, r5, #0x0
+ bl FUN_02058B4C
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_02058B28
+ add r0, r4, #0x0
+ bl FUN_02059BF4
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_02058B34
+ add r0, r5, #0x0
+ mov r1, #0x0
+ bl FUN_02058B44
+ add r0, r4, #0x0
+ bl FUN_02059C00
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_02058B54
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_02059C60
+FUN_02059C60: ; 0x02059C60
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl FUN_02058B2C
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_02058B18
+ add r0, r4, #0x0
+ bl FUN_02058B3C
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_02058B20
+ add r0, r4, #0x0
+ bl FUN_02058B4C
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_02058B28
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02059C90
+FUN_02059C90: ; 0x02059C90
+ push {r3-r7, lr}
+ add r5, r1, #0x0
+ add r4, r0, #0x0
+ bl FUN_02058B2C
+ add r6, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_02059BF4
+ add r7, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_02058B4C
+ str r0, [sp, #0x0]
+ add r0, r5, #0x0
+ bl FUN_02059C00
+ add r5, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_02058738
+ ldr r2, [sp, #0x0]
+ add r1, r6, r7
+ add r2, r2, r5
+ bl FUN_0204A6E0
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_02059CC8
+FUN_02059CC8: ; 0x02059CC8
+ push {r3-r6, lr}
+ sub sp, #0xc
+ add r5, r1, #0x0
+ add r1, sp, #0x0
+ add r6, r0, #0x0
+ add r4, r2, #0x0
+ bl FUN_02058B5C
+ cmp r5, #0x3
+ bhi _02059D0E
+ add r0, r5, r5
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02059CE8: ; jump table (using 16-bit offset)
+ .short _02059CF0 - _02059CE8 - 2; case 0
+ .short _02059CF8 - _02059CE8 - 2; case 1
+ .short _02059D00 - _02059CE8 - 2; case 2
+ .short _02059D08 - _02059CE8 - 2; case 3
+_02059CF0:
+ ldr r0, [sp, #0x8]
+ sub r0, r0, r4
+ str r0, [sp, #0x8]
+ b _02059D0E
+_02059CF8:
+ ldr r0, [sp, #0x8]
+ add r0, r0, r4
+ str r0, [sp, #0x8]
+ b _02059D0E
+_02059D00:
+ ldr r0, [sp, #0x0]
+ sub r0, r0, r4
+ str r0, [sp, #0x0]
+ b _02059D0E
+_02059D08:
+ ldr r0, [sp, #0x0]
+ add r0, r0, r4
+ str r0, [sp, #0x0]
+_02059D0E:
+ add r0, r6, #0x0
+ add r1, sp, #0x0
+ bl FUN_02058B6C
+ add sp, #0xc
+ pop {r3-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_02059D1C
+FUN_02059D1C: ; 0x02059D1C
+ push {r3-r5, lr}
+ sub sp, #0x18
+ add r1, sp, #0xc
+ add r5, r0, #0x0
+ bl FUN_02058B5C
+ add r3, sp, #0xc
+ ldmia r3!, {r0-r1}
+ add r2, sp, #0x0
+ stmia r2!, {r0-r1}
+ ldr r0, [r3, #0x0]
+ str r0, [r2, #0x0]
+ add r0, r5, #0x0
+ bl FUN_0205897C
+ cmp r0, #0x1
+ bne _02059D4E
+ mov r1, #0x1
+ add r0, r5, #0x0
+ lsl r1, r1, #0xc
+ bl FUN_02058418
+ add sp, #0x18
+ mov r0, #0x0
+ pop {r3-r5, pc}
+_02059D4E:
+ add r0, r5, #0x0
+ bl FUN_02058AE4
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_02058738
+ add r1, sp, #0x0
+ add r2, r4, #0x0
+ bl FUN_02059EC8
+ add r4, r0, #0x0
+ cmp r4, #0x1
+ bne _02059DA2
+ ldr r0, [sp, #0x4]
+ add r1, sp, #0xc
+ str r0, [sp, #0x10]
+ add r0, r5, #0x0
+ bl FUN_02058B6C
+ add r0, r5, #0x0
+ bl FUN_02058B3C
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_02058B20
+ ldr r1, [sp, #0x10]
+ add r0, r5, #0x0
+ asr r2, r1, #0x3
+ asr r1, r2, #0xb
+ lsr r1, r1, #0x14
+ add r1, r2, r1
+ asr r1, r1, #0xc
+ bl FUN_02058B40
+ mov r1, #0x1
+ add r0, r5, #0x0
+ lsl r1, r1, #0xc
+ bl FUN_02058418
+ b _02059DAC
+_02059DA2:
+ mov r1, #0x1
+ add r0, r5, #0x0
+ lsl r1, r1, #0xc
+ bl FUN_02058410
+_02059DAC:
+ add r0, r4, #0x0
+ add sp, #0x18
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_02059DB4
+FUN_02059DB4: ; 0x02059DB4
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ bl FUN_02058B14
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_02058B24
+ add r6, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_02058738
+ add r1, r4, #0x0
+ add r2, r6, #0x0
+ add r7, r0, #0x0
+ bl FUN_0204A6E0
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_02058728
+ add r0, r5, #0x0
+ bl FUN_02058B2C
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_02058B4C
+ add r2, r0, #0x0
+ add r0, r7, #0x0
+ add r1, r4, #0x0
+ bl FUN_0204A6E0
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_02058718
+ add r0, r4, #0x0
+ bl FUN_02054C08
+ cmp r0, #0x1
+ bne _02059E18
+ mov r1, #0x2
+ add r0, r5, #0x0
+ lsl r1, r1, #0xa
+ bl FUN_02058410
+ mov r0, #0x0
+ pop {r3-r7, pc}
+_02059E18:
+ mov r1, #0x2
+ add r0, r5, #0x0
+ lsl r1, r1, #0xa
+ bl FUN_02058418
+ mov r0, #0x1
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_02059E28
+FUN_02059E28: ; 0x02059E28
+ cmp r0, #0x3
+ bhi _02059E5E
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02059E38: ; jump table (using 16-bit offset)
+ .short _02059E40 - _02059E38 - 2; case 0
+ .short _02059E48 - _02059E38 - 2; case 1
+ .short _02059E50 - _02059E38 - 2; case 2
+ .short _02059E58 - _02059E38 - 2; case 3
+_02059E40:
+ ldr r0, [r1, #0x8]
+ sub r0, r0, r2
+ str r0, [r1, #0x8]
+ bx lr
+_02059E48:
+ ldr r0, [r1, #0x8]
+ add r0, r0, r2
+ str r0, [r1, #0x8]
+ bx lr
+_02059E50:
+ ldr r0, [r1, #0x0]
+ sub r0, r0, r2
+ str r0, [r1, #0x0]
+ bx lr
+_02059E58:
+ ldr r0, [r1, #0x0]
+ add r0, r0, r2
+ str r0, [r1, #0x0]
+_02059E5E:
+ bx lr
+
+ thumb_func_start FUN_02059E60
+FUN_02059E60: ; 0x02059E60
+ lsl r3, r0, #0x10
+ mov r0, #0x2
+ lsl r0, r0, #0xe
+ add r3, r3, r0
+ lsl r1, r1, #0x10
+ str r3, [r2, #0x0]
+ add r0, r1, r0
+ str r0, [r2, #0x8]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02059E74
+FUN_02059E74: ; 0x02059E74
+ lsl r1, r0, #0x2
+ ldr r0, _02059E7C ; =0x020F6660
+ ldr r0, [r0, r1]
+ bx lr
+ .balign 4
+_02059E7C: .word 0x020F6660
+
+ thumb_func_start FUN_02059E80
+FUN_02059E80: ; 0x02059E80
+ cmp r0, r2
+ ble _02059E88
+ mov r0, #0x2
+ bx lr
+_02059E88:
+ cmp r0, r2
+ bge _02059E90
+ mov r0, #0x3
+ bx lr
+_02059E90:
+ cmp r1, r3
+ bgt _02059E98
+ mov r0, #0x1
+ bx lr
+_02059E98:
+ mov r0, #0x0
+ bx lr
+
+ thumb_func_start FUN_02059E9C
+FUN_02059E9C: ; 0x02059E9C
+ push {r4, lr}
+ sub sp, #0x8
+ add r4, r1, #0x0
+ add r1, sp, #0x4
+ str r1, [sp, #0x0]
+ ldr r1, [r4, #0x4]
+ ldr r2, [r4, #0x0]
+ ldr r3, [r4, #0x8]
+ bl FUN_0204A708
+ add r1, sp, #0x4
+ ldrb r1, [r1, #0x0]
+ cmp r1, #0x0
+ bne _02059EBE
+ add sp, #0x8
+ mov r0, #0x0
+ pop {r4, pc}
+_02059EBE:
+ str r0, [r4, #0x4]
+ mov r0, #0x1
+ add sp, #0x8
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02059EC8
+FUN_02059EC8: ; 0x02059EC8
+ push {r3-r5, lr}
+ sub sp, #0x8
+ add r5, r1, #0x0
+ add r1, sp, #0x4
+ str r1, [sp, #0x0]
+ add r4, r2, #0x0
+ ldr r1, [r5, #0x4]
+ ldr r2, [r5, #0x0]
+ ldr r3, [r5, #0x8]
+ bl FUN_0204A708
+ add r1, sp, #0x4
+ ldrb r1, [r1, #0x0]
+ cmp r1, #0x0
+ bne _02059EEC
+ add sp, #0x8
+ mov r0, #0x0
+ pop {r3-r5, pc}
+_02059EEC:
+ cmp r1, #0x2
+ bne _02059EFA
+ cmp r4, #0x0
+ bne _02059EFA
+ add sp, #0x8
+ mov r0, #0x0
+ pop {r3-r5, pc}
+_02059EFA:
+ str r0, [r5, #0x4]
+ mov r0, #0x1
+ add sp, #0x8
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_02059F04
+FUN_02059F04: ; 0x02059F04
+ push {r4-r6, lr}
+ add r6, r1, #0x0
+ mov r1, #0x8
+ add r5, r0, #0x0
+ bl FUN_0205858C
+ add r4, r0, #0x0
+ mov r1, #0x0
+ ldr r0, _02059F30 ; =0x020F693C
+ mvn r1, r1
+ bl FUN_0205AAB0
+ strh r0, [r4, #0x2]
+ add r0, r5, #0x0
+ mov r1, #0x0
+ str r6, [r4, #0x4]
+ bl FUN_02058544
+ add r0, r5, #0x0
+ bl FUN_02058848
+ pop {r4-r6, pc}
+ .balign 4
+_02059F30: .word 0x020F693C
+
+ thumb_func_start FUN_02059F34
+FUN_02059F34: ; 0x02059F34
+ ldr r3, _02059F3C ; =FUN_02059F04
+ mov r1, #0x0
+ bx r3
+ nop
+_02059F3C: .word FUN_02059F04
+
+ thumb_func_start FUN_02059F40
+FUN_02059F40: ; 0x02059F40
+ ldr r3, _02059F48 ; =FUN_02059F04
+ mov r1, #0x1
+ bx r3
+ nop
+_02059F48: .word FUN_02059F04
+
+ thumb_func_start FUN_02059F4C
+FUN_02059F4C: ; 0x02059F4C
+ ldr r3, _02059F54 ; =FUN_02059F04
+ mov r1, #0x2
+ bx r3
+ nop
+_02059F54: .word FUN_02059F04
+
+ thumb_func_start FUN_02059F58
+FUN_02059F58: ; 0x02059F58
+ ldr r3, _02059F60 ; =FUN_02059F04
+ mov r1, #0x3
+ bx r3
+ nop
+_02059F60: .word FUN_02059F04
+
+ thumb_func_start FUN_02059F64
+FUN_02059F64: ; 0x02059F64
+ ldr r3, _02059F6C ; =FUN_02059F04
+ mov r1, #0x4
+ bx r3
+ nop
+_02059F6C: .word FUN_02059F04
+
+ thumb_func_start FUN_02059F70
+FUN_02059F70: ; 0x02059F70
+ ldr r3, _02059F78 ; =FUN_02059F04
+ mov r1, #0x5
+ bx r3
+ nop
+_02059F78: .word FUN_02059F04
+
+ thumb_func_start FUN_02059F7C
+FUN_02059F7C: ; 0x02059F7C
+ ldr r3, _02059F84 ; =FUN_02059F04
+ mov r1, #0x6
+ bx r3
+ nop
+_02059F84: .word FUN_02059F04
+
+ thumb_func_start FUN_02059F88
+FUN_02059F88: ; 0x02059F88
+ ldr r3, _02059F90 ; =FUN_02059F04
+ mov r1, #0x7
+ bx r3
+ nop
+_02059F90: .word FUN_02059F04
+
+ thumb_func_start FUN_02059F94
+FUN_02059F94: ; 0x02059F94
+ ldr r3, _02059F9C ; =FUN_02059F04
+ mov r1, #0x8
+ bx r3
+ nop
+_02059F9C: .word FUN_02059F04
+
+ thumb_func_start FUN_02059FA0
+FUN_02059FA0: ; 0x02059FA0
+ ldr r3, _02059FA8 ; =FUN_02059F04
+ mov r1, #0x9
+ bx r3
+ nop
+_02059FA8: .word FUN_02059F04
+
+ thumb_func_start FUN_02059FAC
+FUN_02059FAC: ; 0x02059FAC
+ ldr r3, _02059FB4 ; =FUN_02059F04
+ mov r1, #0xa
+ bx r3
+ nop
+_02059FB4: .word FUN_02059F04
+
+ thumb_func_start FUN_02059FB8
+FUN_02059FB8: ; 0x02059FB8
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ bl FUN_020585B0
+ add r4, r0, #0x0
+ mov r2, #0x0
+ ldr r1, [r4, #0x4]
+ add r0, r5, #0x0
+ mvn r2, r2
+ bl FUN_0205ABEC
+ mov r2, #0x0
+ add r1, r0, #0x0
+ mvn r2, r2
+ cmp r1, r2
+ beq _02059FE0
+ add r0, r5, #0x0
+ bl FUN_020584AC
+ b _0205A010
+_02059FE0:
+ ldrh r0, [r4, #0x0]
+ cmp r0, #0x0
+ bne _0205A010
+ mov r0, #0x2
+ ldrsh r1, [r4, r0]
+ sub r1, r1, #0x1
+ strh r1, [r4, #0x2]
+ ldrsh r0, [r4, r0]
+ cmp r0, #0x0
+ bgt _0205A010
+ ldr r0, _0205A018 ; =0x020F693C
+ add r1, r2, #0x0
+ bl FUN_0205AAB0
+ strh r0, [r4, #0x2]
+ mov r1, #0x0
+ ldr r0, [r4, #0x4]
+ mvn r1, r1
+ bl FUN_0205AAD4
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_020584AC
+_0205A010:
+ add r0, r5, #0x0
+ bl FUN_02059C60
+ pop {r3-r5, pc}
+ .balign 4
+_0205A018: .word 0x020F693C
+
+ thumb_func_start FUN_0205A01C
+FUN_0205A01C: ; 0x0205A01C
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_0205A020
+FUN_0205A020: ; 0x0205A020
+ push {r3, lr}
+ mov r1, #0xc
+ mov r2, #0xb
+ mov r3, #0x0
+ bl FUN_0205A050
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_0205A030
+FUN_0205A030: ; 0x0205A030
+ push {r3, lr}
+ mov r1, #0xc
+ add r2, r1, #0x0
+ mov r3, #0x0
+ bl FUN_0205A050
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_0205A040
+FUN_0205A040: ; 0x0205A040
+ push {r3, lr}
+ mov r1, #0xc
+ mov r2, #0xd
+ mov r3, #0x0
+ bl FUN_0205A050
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_0205A050
+FUN_0205A050: ; 0x0205A050
+ push {r3-r7, lr}
+ add r4, r1, #0x0
+ add r7, r3, #0x0
+ mov r1, #0x10
+ add r5, r0, #0x0
+ add r6, r2, #0x0
+ bl FUN_0205858C
+ str r7, [r0, #0x4]
+ str r4, [r0, #0x8]
+ str r6, [r0, #0xc]
+ add r0, r5, #0x0
+ mov r1, #0x0
+ bl FUN_02058544
+ add r0, r5, #0x0
+ bl FUN_02058848
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_0205A078
+FUN_0205A078: ; 0x0205A078
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ bl FUN_020585B0
+ add r4, r0, #0x0
+ mov r0, #0x0
+ ldrsh r0, [r4, r0]
+ cmp r0, #0x4
+ bhi _0205A16E
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0205A096: ; jump table (using 16-bit offset)
+ .short _0205A0A0 - _0205A096 - 2; case 0
+ .short _0205A0CA - _0205A096 - 2; case 1
+ .short _0205A0E8 - _0205A096 - 2; case 2
+ .short _0205A0FE - _0205A096 - 2; case 3
+ .short _0205A15A - _0205A096 - 2; case 4
+_0205A0A0:
+ add r0, r5, #0x0
+ bl FUN_02058848
+ add r0, r5, #0x0
+ bl FUN_0205886C
+ add r0, r5, #0x0
+ bl FUN_020584C4
+ mov r1, #0x0
+ bl FUN_0205AFDC
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_0205AE0C
+ mov r0, #0x0
+ ldrsh r0, [r4, r0]
+ add r0, r0, #0x1
+ strh r0, [r4, #0x0]
+ pop {r4-r6, pc}
+_0205A0CA:
+ add r0, r5, #0x0
+ bl FUN_0205B080
+ cmp r0, #0x0
+ beq _0205A16E
+ mov r1, #0x0
+ ldr r0, _0205A170 ; =0x020F693C
+ mvn r1, r1
+ bl FUN_0205AAB0
+ strh r0, [r4, #0x2]
+ mov r0, #0x0
+ ldrsh r0, [r4, r0]
+ add r0, r0, #0x1
+ strh r0, [r4, #0x0]
+_0205A0E8:
+ mov r0, #0x2
+ ldrsh r1, [r4, r0]
+ sub r1, r1, #0x1
+ strh r1, [r4, #0x2]
+ ldrsh r0, [r4, r0]
+ cmp r0, #0x0
+ bne _0205A16E
+ mov r0, #0x0
+ ldrsh r0, [r4, r0]
+ add r0, r0, #0x1
+ strh r0, [r4, #0x0]
+_0205A0FE:
+ mov r1, #0x0
+ ldr r0, [r4, #0xc]
+ mvn r1, r1
+ bl FUN_0205AAD4
+ add r6, r0, #0x0
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ bl FUN_020584D8
+ ldr r0, [r4, #0x4]
+ cmp r0, #0x1
+ bne _0205A12A
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ bl FUN_0205A270
+ cmp r0, #0x0
+ bne _0205A12A
+ mov r0, #0x0
+ strh r0, [r4, #0x0]
+ pop {r4-r6, pc}
+_0205A12A:
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ bl FUN_02059918
+ cmp r0, #0x0
+ beq _0205A13C
+ mov r0, #0x0
+ strh r0, [r4, #0x0]
+ pop {r4-r6, pc}
+_0205A13C:
+ ldr r1, [r4, #0x8]
+ add r0, r6, #0x0
+ bl FUN_0205AFDC
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_0205AE0C
+ add r0, r5, #0x0
+ bl FUN_0205883C
+ mov r0, #0x0
+ ldrsh r0, [r4, r0]
+ add r0, r0, #0x1
+ strh r0, [r4, #0x0]
+_0205A15A:
+ add r0, r5, #0x0
+ bl FUN_0205B080
+ cmp r0, #0x0
+ beq _0205A16E
+ add r0, r5, #0x0
+ bl FUN_02058848
+ mov r0, #0x0
+ strh r0, [r4, #0x0]
+_0205A16E:
+ pop {r4-r6, pc}
+ .balign 4
+_0205A170: .word 0x020F693C
+
+ thumb_func_start FUN_0205A174
+FUN_0205A174: ; 0x0205A174
+ push {r3-r7, lr}
+ sub sp, #0x8
+ str r0, [sp, #0x0]
+ add r4, r1, #0x0
+ bl FUN_02058AFC
+ add r6, r0, #0x0
+ ldr r0, [sp, #0x0]
+ bl FUN_02058B0C
+ add r5, r0, #0x0
+ ldr r0, [sp, #0x0]
+ bl FUN_02058538
+ add r7, r0, #0x0
+ ldr r0, [sp, #0x0]
+ bl FUN_02058540
+ str r0, [sp, #0x4]
+ ldr r0, [sp, #0x0]
+ bl FUN_02058480
+ cmp r0, #0xd
+ bhi _0205A268
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0205A1B0: ; jump table (using 16-bit offset)
+ .short _0205A268 - _0205A1B0 - 2; case 0
+ .short _0205A268 - _0205A1B0 - 2; case 1
+ .short _0205A268 - _0205A1B0 - 2; case 2
+ .short _0205A268 - _0205A1B0 - 2; case 3
+ .short _0205A268 - _0205A1B0 - 2; case 4
+ .short _0205A268 - _0205A1B0 - 2; case 5
+ .short _0205A1CC - _0205A1B0 - 2; case 6
+ .short _0205A1DE - _0205A1B0 - 2; case 7
+ .short _0205A1F0 - _0205A1B0 - 2; case 8
+ .short _0205A202 - _0205A1B0 - 2; case 9
+ .short _0205A214 - _0205A1B0 - 2; case 10
+ .short _0205A22A - _0205A1B0 - 2; case 11
+ .short _0205A240 - _0205A1B0 - 2; case 12
+ .short _0205A254 - _0205A1B0 - 2; case 13
+_0205A1CC:
+ sub r0, r6, r7
+ str r0, [r4, #0x0]
+ ldr r0, [sp, #0x4]
+ str r6, [r4, #0x8]
+ sub r0, r5, r0
+ str r0, [r4, #0x4]
+ add sp, #0x8
+ str r5, [r4, #0xc]
+ pop {r3-r7, pc}
+_0205A1DE:
+ str r6, [r4, #0x0]
+ add r0, r6, r7
+ str r0, [r4, #0x8]
+ ldr r0, [sp, #0x4]
+ add sp, #0x8
+ sub r0, r5, r0
+ str r0, [r4, #0x4]
+ str r5, [r4, #0xc]
+ pop {r3-r7, pc}
+_0205A1F0:
+ sub r0, r6, r7
+ str r0, [r4, #0x0]
+ ldr r0, [sp, #0x4]
+ str r6, [r4, #0x8]
+ str r5, [r4, #0x4]
+ add r0, r5, r0
+ add sp, #0x8
+ str r0, [r4, #0xc]
+ pop {r3-r7, pc}
+_0205A202:
+ str r6, [r4, #0x0]
+ add r0, r6, r7
+ str r0, [r4, #0x8]
+ ldr r0, [sp, #0x4]
+ str r5, [r4, #0x4]
+ add r0, r5, r0
+ add sp, #0x8
+ str r0, [r4, #0xc]
+ pop {r3-r7, pc}
+_0205A214:
+ sub r0, r6, r7
+ str r0, [r4, #0x0]
+ ldr r0, [sp, #0x4]
+ str r6, [r4, #0x8]
+ sub r0, r5, r0
+ str r0, [r4, #0x4]
+ ldr r0, [sp, #0x4]
+ add sp, #0x8
+ add r0, r5, r0
+ str r0, [r4, #0xc]
+ pop {r3-r7, pc}
+_0205A22A:
+ str r6, [r4, #0x0]
+ add r0, r6, r7
+ str r0, [r4, #0x8]
+ ldr r0, [sp, #0x4]
+ sub r0, r5, r0
+ str r0, [r4, #0x4]
+ ldr r0, [sp, #0x4]
+ add sp, #0x8
+ add r0, r5, r0
+ str r0, [r4, #0xc]
+ pop {r3-r7, pc}
+_0205A240:
+ sub r0, r6, r7
+ str r0, [r4, #0x0]
+ add r0, r6, r7
+ str r0, [r4, #0x8]
+ ldr r0, [sp, #0x4]
+ add sp, #0x8
+ sub r0, r5, r0
+ str r0, [r4, #0x4]
+ str r5, [r4, #0xc]
+ pop {r3-r7, pc}
+_0205A254:
+ sub r0, r6, r7
+ str r0, [r4, #0x0]
+ add r0, r6, r7
+ str r0, [r4, #0x8]
+ ldr r0, [sp, #0x4]
+ str r5, [r4, #0x4]
+ add r0, r5, r0
+ add sp, #0x8
+ str r0, [r4, #0xc]
+ pop {r3-r7, pc}
+_0205A268:
+ bl ErrorHandling
+ add sp, #0x8
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_0205A270
+FUN_0205A270: ; 0x0205A270
+ push {r4-r6, lr}
+ sub sp, #0x10
+ add r6, r1, #0x0
+ add r5, r0, #0x0
+ add r1, sp, #0x0
+ bl FUN_0205A174
+ add r0, r5, #0x0
+ bl FUN_02058B2C
+ add r4, r0, #0x0
+ add r0, r6, #0x0
+ bl FUN_02059BF4
+ add r4, r4, r0
+ add r0, r5, #0x0
+ bl FUN_02058B4C
+ add r5, r0, #0x0
+ add r0, r6, #0x0
+ bl FUN_02059C00
+ add r1, r5, r0
+ ldr r0, [sp, #0x0]
+ cmp r0, r4
+ bgt _0205A2AA
+ ldr r0, [sp, #0x8]
+ cmp r0, r4
+ bge _0205A2B0
+_0205A2AA:
+ add sp, #0x10
+ mov r0, #0x0
+ pop {r4-r6, pc}
+_0205A2B0:
+ ldr r0, [sp, #0x4]
+ cmp r0, r1
+ bgt _0205A2BC
+ ldr r0, [sp, #0xc]
+ cmp r0, r1
+ bge _0205A2C2
+_0205A2BC:
+ add sp, #0x10
+ mov r0, #0x0
+ pop {r4-r6, pc}
+_0205A2C2:
+ mov r0, #0x1
+ add sp, #0x10
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_0205A2C8
+FUN_0205A2C8: ; 0x0205A2C8
+ push {r3-r5, lr}
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ mov r1, #0x8
+ bl FUN_0205858C
+ str r4, [r0, #0x0]
+ add r0, r5, #0x0
+ mov r1, #0x0
+ bl FUN_02058544
+ add r0, r5, #0x0
+ bl FUN_02058848
+ add r0, r5, #0x0
+ bl FUN_02059C60
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_0205A2EC
+FUN_0205A2EC: ; 0x0205A2EC
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ bl FUN_020585B0
+ add r4, r0, #0x0
+ ldr r0, [r4, #0x4]
+ cmp r0, #0x0
+ beq _0205A300
+ cmp r0, #0x1
+ pop {r3-r5, pc}
+_0205A300:
+ ldr r1, [r4, #0x0]
+ add r0, r5, #0x0
+ bl FUN_020584AC
+ ldr r0, [r4, #0x4]
+ add r0, r0, #0x1
+ str r0, [r4, #0x4]
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_0205A310
+FUN_0205A310: ; 0x0205A310
+ ldr r3, _0205A318 ; =FUN_0205A2C8
+ mov r1, #0x0
+ bx r3
+ nop
+_0205A318: .word FUN_0205A2C8
+
+ thumb_func_start FUN_0205A31C
+FUN_0205A31C: ; 0x0205A31C
+ ldr r3, _0205A324 ; =FUN_0205A2C8
+ mov r1, #0x1
+ bx r3
+ nop
+_0205A324: .word FUN_0205A2C8
+
+ thumb_func_start FUN_0205A328
+FUN_0205A328: ; 0x0205A328
+ ldr r3, _0205A330 ; =FUN_0205A2C8
+ mov r1, #0x2
+ bx r3
+ nop
+_0205A330: .word FUN_0205A2C8
+
+ thumb_func_start FUN_0205A334
+FUN_0205A334: ; 0x0205A334
+ ldr r3, _0205A33C ; =FUN_0205A2C8
+ mov r1, #0x3
+ bx r3
+ nop
+_0205A33C: .word FUN_0205A2C8
+
+ thumb_func_start FUN_0205A340
+FUN_0205A340: ; 0x0205A340
+ push {r3-r5, lr}
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ mov r1, #0x8
+ bl FUN_0205858C
+ strb r4, [r0, #0x0]
+ add r0, r5, #0x0
+ mov r1, #0x0
+ bl FUN_02058544
+ add r0, r5, #0x0
+ bl FUN_02058848
+ add r0, r5, #0x0
+ bl FUN_02059C60
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_0205A364
+FUN_0205A364: ; 0x0205A364
+ ldr r3, _0205A36C ; =FUN_0205A340
+ mov r1, #0x2
+ bx r3
+ nop
+_0205A36C: .word FUN_0205A340
+
+ thumb_func_start FUN_0205A370
+FUN_0205A370: ; 0x0205A370
+ ldr r3, _0205A378 ; =FUN_0205A340
+ mov r1, #0x3
+ bx r3
+ nop
+_0205A378: .word FUN_0205A340
+
+ thumb_func_start FUN_0205A37C
+FUN_0205A37C: ; 0x0205A37C
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ bl FUN_020585B0
+ ldr r6, _0205A39C ; =0x020F6754
+ add r4, r0, #0x0
+ mov r7, #0x2
+_0205A38A:
+ ldrsb r2, [r4, r7]
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ lsl r2, r2, #0x2
+ ldr r2, [r6, r2]
+ blx r2
+ cmp r0, #0x1
+ beq _0205A38A
+ pop {r3-r7, pc}
+ .balign 4
+_0205A39C: .word 0x020F6754
+
+ thumb_func_start FUN_0205A3A0
+FUN_0205A3A0: ; 0x0205A3A0
+ push {r3-r5, lr}
+ add r4, r1, #0x0
+ mov r1, #0x26
+ add r2, r1, #0x0
+ sub r2, #0x27
+ add r5, r0, #0x0
+ bl FUN_0205ABEC
+ mov r1, #0x0
+ mvn r1, r1
+ cmp r0, r1
+ bne _0205A3BE
+ add r0, r5, #0x0
+ bl FUN_020584C4
+_0205A3BE:
+ mov r1, #0x0
+ bl FUN_0205AFDC
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_0205AE0C
+ mov r0, #0x1
+ strb r0, [r4, #0x2]
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_0205A3D4
+FUN_0205A3D4: ; 0x0205A3D4
+ push {r4, lr}
+ add r4, r1, #0x0
+ bl FUN_0205B080
+ cmp r0, #0x0
+ bne _0205A3E4
+ mov r0, #0x0
+ pop {r4, pc}
+_0205A3E4:
+ mov r0, #0x0
+ str r0, [r4, #0x4]
+ mov r0, #0x2
+ strb r0, [r4, #0x2]
+ mov r0, #0x1
+ pop {r4, pc}
+
+ thumb_func_start FUN_0205A3F0
+FUN_0205A3F0: ; 0x0205A3F0
+ push {r4, lr}
+ add r4, r1, #0x0
+ ldr r1, [r4, #0x4]
+ cmp r1, #0x0
+ beq _0205A414
+ mov r1, #0x26
+ add r2, r1, #0x0
+ sub r2, #0x27
+ bl FUN_0205ABEC
+ mov r1, #0x0
+ mvn r1, r1
+ cmp r0, r1
+ beq _0205A414
+ mov r0, #0x0
+ strb r0, [r4, #0x2]
+ mov r0, #0x1
+ pop {r4, pc}
+_0205A414:
+ ldr r0, [r4, #0x4]
+ add r0, r0, #0x1
+ str r0, [r4, #0x4]
+ cmp r0, #0x18
+ bge _0205A422
+ mov r0, #0x0
+ pop {r4, pc}
+_0205A422:
+ mov r0, #0x3
+ strb r0, [r4, #0x2]
+ mov r0, #0x1
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0205A42C
+FUN_0205A42C: ; 0x0205A42C
+ push {r3-r7, lr}
+ sub sp, #0x28
+ ldr r3, _0205A4BC ; =0x020F68D8
+ add r2, sp, #0x14
+ add r7, r0, #0x0
+ add r6, r1, #0x0
+ ldmia r3!, {r0-r1}
+ add r5, r2, #0x0
+ stmia r2!, {r0-r1}
+ ldmia r3!, {r0-r1}
+ stmia r2!, {r0-r1}
+ ldr r0, [r3, #0x0]
+ ldr r4, _0205A4C0 ; =0x020F68EC
+ str r0, [r2, #0x0]
+ add r3, sp, #0x0
+ ldmia r4!, {r0-r1}
+ add r2, r3, #0x0
+ stmia r3!, {r0-r1}
+ ldmia r4!, {r0-r1}
+ stmia r3!, {r0-r1}
+ ldr r0, [r4, #0x0]
+ str r0, [r3, #0x0]
+ mov r0, #0x0
+ ldrsb r0, [r6, r0]
+ cmp r0, #0x2
+ beq _0205A462
+ add r5, r2, #0x0
+_0205A462:
+ add r0, r7, #0x0
+ bl FUN_020584C4
+ mov r4, #0x0
+ ldr r2, [r5, #0x0]
+ sub r1, r4, #0x1
+ cmp r2, r1
+ beq _0205A486
+ add r1, r5, #0x0
+ sub r2, r4, #0x1
+_0205A476:
+ ldr r3, [r1, #0x0]
+ cmp r0, r3
+ beq _0205A486
+ add r1, r1, #0x4
+ ldr r3, [r1, #0x0]
+ add r4, r4, #0x1
+ cmp r3, r2
+ bne _0205A476
+_0205A486:
+ lsl r0, r4, #0x2
+ ldr r1, [r5, r0]
+ mov r0, #0x0
+ mvn r0, r0
+ cmp r1, r0
+ bne _0205A496
+ bl ErrorHandling
+_0205A496:
+ add r4, r4, #0x1
+ lsl r0, r4, #0x2
+ ldr r1, [r5, r0]
+ mov r0, #0x0
+ mvn r0, r0
+ cmp r1, r0
+ bne _0205A4A6
+ mov r4, #0x0
+_0205A4A6:
+ lsl r1, r4, #0x2
+ ldr r1, [r5, r1]
+ add r0, r7, #0x0
+ bl FUN_020584AC
+ mov r0, #0x0
+ strb r0, [r6, #0x2]
+ mov r0, #0x1
+ add sp, #0x28
+ pop {r3-r7, pc}
+ nop
+_0205A4BC: .word 0x020F68D8
+_0205A4C0: .word 0x020F68EC
+
+ thumb_func_start FUN_0205A4C4
+FUN_0205A4C4: ; 0x0205A4C4
+ ldr r3, _0205A4CC ; =FUN_0205A340
+ mov r1, #0x3
+ bx r3
+ nop
+_0205A4CC: .word FUN_0205A340
+
+ thumb_func_start FUN_0205A4D0
+FUN_0205A4D0: ; 0x0205A4D0
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ bl FUN_020585B0
+ ldr r6, _0205A4F0 ; =0x020F6724
+ add r4, r0, #0x0
+ mov r7, #0x2
+_0205A4DE:
+ ldrsb r2, [r4, r7]
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ lsl r2, r2, #0x2
+ ldr r2, [r6, r2]
+ blx r2
+ cmp r0, #0x1
+ beq _0205A4DE
+ pop {r3-r7, pc}
+ .balign 4
+_0205A4F0: .word 0x020F6724
+
+ thumb_func_start FUN_0205A4F4
+FUN_0205A4F4: ; 0x0205A4F4
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ bl FUN_020584C4
+ mov r1, #0x0
+ bl FUN_0205AFDC
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_0205AE0C
+ mov r0, #0x1
+ strb r0, [r4, #0x2]
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_0205A514
+FUN_0205A514: ; 0x0205A514
+ push {r4, lr}
+ add r4, r1, #0x0
+ bl FUN_0205B080
+ cmp r0, #0x0
+ bne _0205A524
+ mov r0, #0x0
+ pop {r4, pc}
+_0205A524:
+ mov r0, #0x0
+ str r0, [r4, #0x4]
+ mov r0, #0x2
+ strb r0, [r4, #0x2]
+ mov r0, #0x1
+ pop {r4, pc}
+
+ thumb_func_start FUN_0205A530
+FUN_0205A530: ; 0x0205A530
+ ldr r0, [r1, #0x4]
+ add r0, r0, #0x1
+ str r0, [r1, #0x4]
+ cmp r0, #0x18
+ bge _0205A53E
+ mov r0, #0x0
+ bx lr
+_0205A53E:
+ mov r0, #0x3
+ strb r0, [r1, #0x2]
+ mov r0, #0x1
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_0205A548
+FUN_0205A548: ; 0x0205A548
+ push {r3-r7, lr}
+ sub sp, #0x28
+ ldr r3, _0205A5F4 ; =0x020F6900
+ add r2, sp, #0x14
+ add r7, r0, #0x0
+ add r6, r1, #0x0
+ ldmia r3!, {r0-r1}
+ add r5, r2, #0x0
+ stmia r2!, {r0-r1}
+ ldmia r3!, {r0-r1}
+ stmia r2!, {r0-r1}
+ ldr r0, [r3, #0x0]
+ ldr r3, _0205A5F8 ; =0x020F6928
+ str r0, [r2, #0x0]
+ add r2, sp, #0x0
+ ldmia r3!, {r0-r1}
+ add r4, r2, #0x0
+ stmia r2!, {r0-r1}
+ ldmia r3!, {r0-r1}
+ stmia r2!, {r0-r1}
+ ldr r0, [r3, #0x0]
+ str r0, [r2, #0x0]
+ mov r0, #0x0
+ ldrsb r0, [r6, r0]
+ cmp r0, #0x2
+ beq _0205A57E
+ add r5, r4, #0x0
+_0205A57E:
+ add r0, r7, #0x0
+ bl FUN_020584C4
+ mov r4, #0x0
+ ldr r2, [r5, #0x0]
+ sub r1, r4, #0x1
+ cmp r2, r1
+ beq _0205A5A2
+ add r1, r5, #0x0
+ sub r2, r4, #0x1
+_0205A592:
+ ldr r3, [r1, #0x0]
+ cmp r0, r3
+ beq _0205A5A2
+ add r1, r1, #0x4
+ ldr r3, [r1, #0x0]
+ add r4, r4, #0x1
+ cmp r3, r2
+ bne _0205A592
+_0205A5A2:
+ lsl r0, r4, #0x2
+ ldr r1, [r5, r0]
+ mov r0, #0x0
+ mvn r0, r0
+ cmp r1, r0
+ bne _0205A5B2
+ bl ErrorHandling
+_0205A5B2:
+ add r4, r4, #0x1
+ lsl r0, r4, #0x2
+ ldr r1, [r5, r0]
+ mov r0, #0x0
+ mvn r0, r0
+ cmp r1, r0
+ bne _0205A5C2
+ mov r4, #0x0
+_0205A5C2:
+ lsl r1, r4, #0x2
+ ldr r1, [r5, r1]
+ add r0, r7, #0x0
+ bl FUN_020584AC
+ add r0, r7, #0x0
+ bl FUN_020584C4
+ add r4, r0, #0x0
+ add r0, r7, #0x0
+ bl FUN_020584A0
+ cmp r4, r0
+ bne _0205A5E8
+ mov r0, #0x0
+ ldrsb r0, [r6, r0]
+ bl FUN_02059E74
+ strb r0, [r6, #0x0]
+_0205A5E8:
+ mov r0, #0x0
+ strb r0, [r6, #0x2]
+ mov r0, #0x1
+ add sp, #0x28
+ pop {r3-r7, pc}
+ nop
+_0205A5F4: .word 0x020F6900
+_0205A5F8: .word 0x020F6928
+
+ thumb_func_start FUN_0205A5FC
+FUN_0205A5FC: ; 0x0205A5FC
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ mov r1, #0x8
+ bl FUN_0205858C
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_0205ACE0
+ cmp r0, #0x1
+ bne _0205A61A
+ add r0, r5, #0x0
+ add r1, r4, #0x4
+ bl FUN_0205ACF4
+_0205A61A:
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_0205A61C
+FUN_0205A61C: ; 0x0205A61C
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ bl FUN_020585B0
+ ldr r6, _0205A63C ; =0x020F66CC
+ add r4, r0, #0x0
+ mov r7, #0x0
+_0205A62A:
+ ldrsh r2, [r4, r7]
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ lsl r2, r2, #0x2
+ ldr r2, [r6, r2]
+ blx r2
+ cmp r0, #0x1
+ beq _0205A62A
+ pop {r3-r7, pc}
+ .balign 4
+_0205A63C: .word 0x020F66CC
+
+ thumb_func_start FUN_0205A640
+FUN_0205A640: ; 0x0205A640
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ bl FUN_020584A0
+ mov r1, #0x2
+ ldrsh r1, [r4, r1]
+ add r6, r0, #0x0
+ cmp r1, #0x1
+ bne _0205A65A
+ bl FUN_02059E74
+ add r6, r0, #0x0
+_0205A65A:
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ bl FUN_020584CC
+ add r0, r5, #0x0
+ bl FUN_0205ACE0
+ cmp r0, #0x0
+ bne _0205A674
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ bl FUN_020584AC
+_0205A674:
+ mov r0, #0x1
+ strh r0, [r4, #0x0]
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_0205A67C
+FUN_0205A67C: ; 0x0205A67C
+ push {r3-r7, lr}
+ add r4, r1, #0x0
+ mov r1, #0x2
+ ldrsh r1, [r4, r1]
+ add r5, r0, #0x0
+ cmp r1, #0x0
+ beq _0205A6DA
+ bl FUN_02058AFC
+ add r6, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_02058B0C
+ add r7, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_02058B2C
+ str r0, [sp, #0x0]
+ add r0, r5, #0x0
+ bl FUN_02058B4C
+ ldr r1, [sp, #0x0]
+ cmp r6, r1
+ bne _0205A6DA
+ cmp r7, r0
+ bne _0205A6DA
+ add r0, r5, #0x0
+ bl FUN_020584D4
+ bl FUN_02059E74
+ add r6, r0, #0x0
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ bl FUN_020584CC
+ add r0, r5, #0x0
+ bl FUN_0205ACE0
+ cmp r0, #0x0
+ bne _0205A6D6
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ bl FUN_020584AC
+_0205A6D6:
+ mov r0, #0x0
+ strh r0, [r4, #0x2]
+_0205A6DA:
+ add r0, r5, #0x0
+ bl FUN_020584D4
+ add r6, r0, #0x0
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ bl FUN_02059918
+ mov r1, #0x1
+ add r2, r0, #0x0
+ tst r2, r1
+ beq _0205A704
+ add r0, r6, #0x0
+ strh r1, [r4, #0x2]
+ bl FUN_02059E74
+ add r6, r0, #0x0
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ bl FUN_02059918
+_0205A704:
+ mov r1, #0xc
+ cmp r0, #0x0
+ beq _0205A70C
+ mov r1, #0x20
+_0205A70C:
+ add r0, r6, #0x0
+ bl FUN_0205AFDC
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_0205AE0C
+ add r0, r5, #0x0
+ bl FUN_0205ACE0
+ cmp r0, #0x1
+ bne _0205A72C
+ add r0, r5, #0x0
+ add r1, r4, #0x4
+ bl FUN_0205AD0C
+_0205A72C:
+ add r0, r5, #0x0
+ bl FUN_0205883C
+ mov r0, #0x2
+ strh r0, [r4, #0x0]
+ mov r0, #0x1
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_0205A73C
+FUN_0205A73C: ; 0x0205A73C
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ bl FUN_0205B080
+ cmp r0, #0x1
+ bne _0205A766
+ add r0, r5, #0x0
+ bl FUN_02058848
+ add r0, r5, #0x0
+ bl FUN_0205ACE0
+ cmp r0, #0x1
+ bne _0205A762
+ add r0, r5, #0x0
+ add r1, r4, #0x4
+ bl FUN_0205AD88
+_0205A762:
+ mov r0, #0x0
+ strh r0, [r4, #0x0]
+_0205A766:
+ mov r0, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_0205A76C
+FUN_0205A76C: ; 0x0205A76C
+ push {r3-r7, lr}
+ add r6, r1, #0x0
+ mov r1, #0x10
+ add r5, r0, #0x0
+ add r7, r2, #0x0
+ str r3, [sp, #0x0]
+ bl FUN_0205858C
+ add r4, r0, #0x0
+ strh r6, [r4, #0x4]
+ ldr r0, [sp, #0x0]
+ strh r7, [r4, #0x6]
+ str r0, [r4, #0x8]
+ add r0, r5, #0x0
+ bl FUN_0205ACE0
+ cmp r0, #0x1
+ bne _0205A79A
+ add r4, #0xc
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_0205ACF4
+_0205A79A:
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_0205A79C
+FUN_0205A79C: ; 0x0205A79C
+ push {r3, lr}
+ mov r1, #0x2
+ mov r2, #0x0
+ mov r3, #0xe
+ bl FUN_0205A76C
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_0205A7AC
+FUN_0205A7AC: ; 0x0205A7AC
+ push {r3, lr}
+ mov r1, #0x2
+ mov r2, #0x0
+ mov r3, #0xf
+ bl FUN_0205A76C
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_0205A7BC
+FUN_0205A7BC: ; 0x0205A7BC
+ push {r3, lr}
+ mov r1, #0x2
+ mov r2, #0x1
+ mov r3, #0x10
+ bl FUN_0205A76C
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_0205A7CC
+FUN_0205A7CC: ; 0x0205A7CC
+ push {r3, lr}
+ mov r1, #0x2
+ mov r2, #0x1
+ mov r3, #0x11
+ bl FUN_0205A76C
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_0205A7DC
+FUN_0205A7DC: ; 0x0205A7DC
+ push {r3, lr}
+ mov r1, #0x2
+ mov r2, #0x0
+ mov r3, #0x12
+ bl FUN_0205A76C
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_0205A7EC
+FUN_0205A7EC: ; 0x0205A7EC
+ push {r3, lr}
+ mov r1, #0x2
+ mov r2, #0x0
+ mov r3, #0x13
+ bl FUN_0205A76C
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_0205A7FC
+FUN_0205A7FC: ; 0x0205A7FC
+ push {r3, lr}
+ mov r1, #0x2
+ mov r2, #0x1
+ mov r3, #0x14
+ bl FUN_0205A76C
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_0205A80C
+FUN_0205A80C: ; 0x0205A80C
+ push {r3, lr}
+ mov r1, #0x2
+ mov r2, #0x1
+ mov r3, #0x15
+ bl FUN_0205A76C
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_0205A81C
+FUN_0205A81C: ; 0x0205A81C
+ push {r3, lr}
+ mov r1, #0x2
+ mov r2, #0x1
+ mov r3, #0x16
+ bl FUN_0205A76C
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_0205A82C
+FUN_0205A82C: ; 0x0205A82C
+ push {r3, lr}
+ mov r1, #0x2
+ mov r2, #0x1
+ mov r3, #0x17
+ bl FUN_0205A76C
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_0205A83C
+FUN_0205A83C: ; 0x0205A83C
+ push {r3, lr}
+ mov r1, #0x2
+ mov r2, #0x0
+ mov r3, #0x18
+ bl FUN_0205A76C
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_0205A84C
+FUN_0205A84C: ; 0x0205A84C
+ push {r3, lr}
+ mov r1, #0x2
+ mov r2, #0x0
+ mov r3, #0x19
+ bl FUN_0205A76C
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_0205A85C
+FUN_0205A85C: ; 0x0205A85C
+ push {r3, lr}
+ mov r1, #0x2
+ mov r2, #0x1
+ mov r3, #0x1a
+ bl FUN_0205A76C
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_0205A86C
+FUN_0205A86C: ; 0x0205A86C
+ push {r3, lr}
+ mov r1, #0x2
+ mov r2, #0x1
+ mov r3, #0x1b
+ bl FUN_0205A76C
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_0205A87C
+FUN_0205A87C: ; 0x0205A87C
+ push {r3, lr}
+ mov r1, #0x2
+ mov r2, #0x0
+ mov r3, #0x1c
+ bl FUN_0205A76C
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_0205A88C
+FUN_0205A88C: ; 0x0205A88C
+ push {r3, lr}
+ mov r1, #0x2
+ mov r2, #0x0
+ mov r3, #0x1d
+ bl FUN_0205A76C
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_0205A89C
+FUN_0205A89C: ; 0x0205A89C
+ push {r3, lr}
+ mov r1, #0x2
+ mov r2, #0x1
+ mov r3, #0x1e
+ bl FUN_0205A76C
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_0205A8AC
+FUN_0205A8AC: ; 0x0205A8AC
+ push {r3, lr}
+ mov r1, #0x2
+ mov r2, #0x1
+ mov r3, #0x1f
+ bl FUN_0205A76C
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_0205A8BC
+FUN_0205A8BC: ; 0x0205A8BC
+ push {r3, lr}
+ mov r1, #0x2
+ mov r2, #0x0
+ mov r3, #0x20
+ bl FUN_0205A76C
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_0205A8CC
+FUN_0205A8CC: ; 0x0205A8CC
+ push {r3, lr}
+ mov r1, #0x2
+ mov r2, #0x0
+ mov r3, #0x21
+ bl FUN_0205A76C
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_0205A8DC
+FUN_0205A8DC: ; 0x0205A8DC
+ push {r3, lr}
+ mov r1, #0x2
+ mov r2, #0x1
+ mov r3, #0x22
+ bl FUN_0205A76C
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_0205A8EC
+FUN_0205A8EC: ; 0x0205A8EC
+ push {r3, lr}
+ mov r1, #0x2
+ mov r2, #0x1
+ mov r3, #0x23
+ bl FUN_0205A76C
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_0205A8FC
+FUN_0205A8FC: ; 0x0205A8FC
+ push {r3, lr}
+ mov r1, #0x2
+ mov r2, #0x0
+ mov r3, #0x24
+ bl FUN_0205A76C
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_0205A90C
+FUN_0205A90C: ; 0x0205A90C
+ push {r3, lr}
+ mov r1, #0x2
+ mov r2, #0x0
+ mov r3, #0x25
+ bl FUN_0205A76C
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_0205A91C
+FUN_0205A91C: ; 0x0205A91C
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ bl FUN_020585B0
+ ldr r6, _0205A93C ; =0x020F6670
+ add r4, r0, #0x0
+ mov r7, #0x0
+_0205A92A:
+ ldrsh r2, [r4, r7]
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ lsl r2, r2, #0x2
+ ldr r2, [r6, r2]
+ blx r2
+ cmp r0, #0x1
+ beq _0205A92A
+ pop {r3-r7, pc}
+ .balign 4
+_0205A93C: .word 0x020F6670
+
+ thumb_func_start FUN_0205A940
+FUN_0205A940: ; 0x0205A940
+ push {r3-r7, lr}
+ add r4, r1, #0x0
+ mov r1, #0x2
+ ldrsh r2, [r4, r1]
+ mov r1, #0x4
+ ldrsh r1, [r4, r1]
+ add r5, r0, #0x0
+ cmp r2, r1
+ bne _0205A98C
+ mov r1, #0x6
+ ldrsh r1, [r4, r1]
+ cmp r1, #0x0
+ bne _0205A974
+ bl FUN_02058AFC
+ add r6, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_02058B2C
+ cmp r6, r0
+ bne _0205A98C
+ mov r0, #0x2
+ ldrsh r0, [r4, r0]
+ add r0, r0, #0x1
+ strh r0, [r4, #0x2]
+ b _0205A98C
+_0205A974:
+ bl FUN_02058B0C
+ add r6, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_02058B4C
+ cmp r6, r0
+ bne _0205A98C
+ mov r0, #0x2
+ ldrsh r0, [r4, r0]
+ add r0, r0, #0x1
+ strh r0, [r4, #0x2]
+_0205A98C:
+ mov r0, #0x2
+ ldrsh r0, [r4, r0]
+ cmp r0, #0x3
+ bne _0205A9C0
+ add r0, r5, #0x0
+ bl FUN_02058AFC
+ add r6, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_02058B0C
+ add r7, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_02058B2C
+ str r0, [sp, #0x0]
+ add r0, r5, #0x0
+ bl FUN_02058B4C
+ ldr r1, [sp, #0x0]
+ cmp r6, r1
+ bne _0205A9C0
+ cmp r7, r0
+ bne _0205A9C0
+ mov r0, #0x0
+ strh r0, [r4, #0x2]
+_0205A9C0:
+ ldr r0, [r4, #0x8]
+ bl FUN_0205AAFC
+ add r7, r0, #0x0
+ mov r0, #0x2
+ ldrsh r0, [r4, r0]
+ lsl r0, r0, #0x2
+ ldr r6, [r7, r0]
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ bl FUN_020584CC
+ add r0, r5, #0x0
+ bl FUN_0205ACE0
+ cmp r0, #0x0
+ bne _0205A9EA
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ bl FUN_020584AC
+_0205A9EA:
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ bl FUN_02059918
+ mov r1, #0x1
+ tst r1, r0
+ beq _0205AA28
+ mov r0, #0x2
+ ldrsh r1, [r4, r0]
+ add r1, r1, #0x1
+ strh r1, [r4, #0x2]
+ ldrsh r0, [r4, r0]
+ lsl r0, r0, #0x2
+ ldr r6, [r7, r0]
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ bl FUN_020584CC
+ add r0, r5, #0x0
+ bl FUN_0205ACE0
+ cmp r0, #0x0
+ bne _0205AA20
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ bl FUN_020584AC
+_0205AA20:
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ bl FUN_02059918
+_0205AA28:
+ mov r1, #0xc
+ cmp r0, #0x0
+ beq _0205AA30
+ mov r1, #0x20
+_0205AA30:
+ add r0, r6, #0x0
+ bl FUN_0205AFDC
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_0205AE0C
+ add r0, r5, #0x0
+ bl FUN_0205ACE0
+ cmp r0, #0x1
+ bne _0205AA52
+ add r1, r4, #0x0
+ add r0, r5, #0x0
+ add r1, #0xc
+ bl FUN_0205AD0C
+_0205AA52:
+ add r0, r5, #0x0
+ bl FUN_0205883C
+ mov r0, #0x1
+ strh r0, [r4, #0x0]
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_0205AA60
+FUN_0205AA60: ; 0x0205AA60
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ bl FUN_0205B080
+ cmp r0, #0x1
+ bne _0205AA8C
+ add r0, r5, #0x0
+ bl FUN_02058848
+ add r0, r5, #0x0
+ bl FUN_0205ACE0
+ cmp r0, #0x1
+ bne _0205AA88
+ add r1, r4, #0x0
+ add r0, r5, #0x0
+ add r1, #0xc
+ bl FUN_0205AD88
+_0205AA88:
+ mov r0, #0x0
+ strh r0, [r4, #0x0]
+_0205AA8C:
+ mov r0, #0x0
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_0205AA90
+FUN_0205AA90: ; 0x0205AA90
+ push {r4, lr}
+ ldr r2, [r0, #0x0]
+ mov r4, #0x0
+ cmp r1, r2
+ beq _0205AAA4
+_0205AA9A:
+ add r0, r0, #0x4
+ ldr r2, [r0, #0x0]
+ add r4, r4, #0x1
+ cmp r1, r2
+ bne _0205AA9A
+_0205AAA4:
+ cmp r4, #0x0
+ bne _0205AAAC
+ bl ErrorHandling
+_0205AAAC:
+ add r0, r4, #0x0
+ pop {r4, pc}
+
+ thumb_func_start FUN_0205AAB0
+FUN_0205AAB0: ; 0x0205AAB0
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ bl FUN_0201B9EC
+ add r6, r0, #0x0
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_0205AA90
+ add r1, r0, #0x0
+ add r0, r6, #0x0
+ blx _s32_div_f
+ lsl r0, r1, #0x2
+ ldr r0, [r5, r0]
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_0205AAD4
+FUN_0205AAD4: ; 0x0205AAD4
+ push {r4-r6, lr}
+ add r5, r1, #0x0
+ bl FUN_0205AAFC
+ add r4, r0, #0x0
+ bl FUN_0201B9EC
+ add r6, r0, #0x0
+ add r0, r4, #0x0
+ add r1, r5, #0x0
+ bl FUN_0205AA90
+ add r1, r0, #0x0
+ add r0, r6, #0x0
+ blx _s32_div_f
+ lsl r0, r1, #0x2
+ ldr r0, [r4, r0]
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_0205AAFC
+FUN_0205AAFC: ; 0x0205AAFC
+ push {r3, lr}
+ ldr r1, _0205AB1C ; =0x020F69BC
+ mov r2, #0x0
+_0205AB02:
+ cmp r2, r0
+ bne _0205AB0A
+ ldr r0, [r1, #0x4]
+ pop {r3, pc}
+_0205AB0A:
+ add r1, #0x8
+ ldr r2, [r1, #0x0]
+ cmp r2, #0x27
+ bne _0205AB02
+ bl ErrorHandling
+ mov r0, #0x0
+ pop {r3, pc}
+ nop
+_0205AB1C: .word 0x020F69BC
+
+ thumb_func_start FUN_0205AB20
+FUN_0205AB20: ; 0x0205AB20
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ bl FUN_02058488
+ cmp r0, #0x1
+ beq _0205AB36
+ cmp r0, #0x2
+ beq _0205AB36
+ mov r0, #0x0
+ mvn r0, r0
+ pop {r3-r7, pc}
+_0205AB36:
+ add r0, r5, #0x0
+ bl FUN_02058738
+ bl FUN_02055698
+ add r6, r0, #0x0
+ bl FUN_02057124
+ cmp r0, #0x0
+ bne _0205AB50
+ mov r0, #0x0
+ mvn r0, r0
+ pop {r3-r7, pc}
+_0205AB50:
+ add r0, r5, #0x0
+ mov r4, #0x0
+ bl FUN_02058480
+ ldr r1, _0205ABE8 ; =0x020F6984
+_0205AB5A:
+ lsl r2, r4, #0x2
+ ldr r2, [r1, r2]
+ add r4, r4, #0x1
+ cmp r2, r0
+ beq _0205AB68
+ cmp r2, #0xff
+ bne _0205AB5A
+_0205AB68:
+ cmp r0, r2
+ beq _0205AB72
+ mov r0, #0x0
+ mvn r0, r0
+ pop {r3-r7, pc}
+_0205AB72:
+ add r0, r6, #0x0
+ bl FUN_020553A0
+ bl FUN_02058BE4
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_02058BE4
+ cmp r4, r0
+ beq _0205AB8E
+ mov r0, #0x0
+ mvn r0, r0
+ pop {r3-r7, pc}
+_0205AB8E:
+ add r0, r6, #0x0
+ bl FUN_02055320
+ add r7, r0, #0x0
+ add r0, r6, #0x0
+ bl FUN_0205532C
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ mov r1, #0x0
+ bl FUN_02058510
+ str r0, [sp, #0x0]
+ add r0, r5, #0x0
+ bl FUN_02058B2C
+ add r6, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_02058B4C
+ add r3, r0, #0x0
+ ldr r0, [sp, #0x0]
+ ldr r5, [sp, #0x0]
+ sub r2, r6, r0
+ add r1, r6, r0
+ sub r5, r3, r5
+ add r0, r3, r0
+ cmp r5, r4
+ bgt _0205ABE2
+ cmp r0, r4
+ blt _0205ABE2
+ cmp r2, r7
+ bgt _0205ABE2
+ cmp r1, r7
+ blt _0205ABE2
+ add r1, r3, #0x0
+ add r0, r6, #0x0
+ add r2, r7, #0x0
+ add r3, r4, #0x0
+ bl FUN_02059E80
+ pop {r3-r7, pc}
+_0205ABE2:
+ mov r0, #0x0
+ mvn r0, r0
+ pop {r3-r7, pc}
+ .balign 4
+_0205ABE8: .word 0x020F6984
+
+ thumb_func_start FUN_0205ABEC
+FUN_0205ABEC: ; 0x0205ABEC
+ push {r4-r7, lr}
+ sub sp, #0x14
+ str r0, [sp, #0x0]
+ add r4, r2, #0x0
+ add r0, r1, #0x0
+ bl FUN_0205AAFC
+ add r1, r4, #0x0
+ add r5, r0, #0x0
+ bl FUN_0205AA90
+ add r4, r0, #0x0
+ cmp r4, #0x1
+ bne _0205AC10
+ mov r0, #0x0
+ add sp, #0x14
+ mvn r0, r0
+ pop {r4-r7, pc}
+_0205AC10:
+ ldr r0, [sp, #0x0]
+ bl FUN_0205AB20
+ mov r1, #0x0
+ mvn r1, r1
+ cmp r0, r1
+ beq _0205ACDA
+ mov r2, #0x0
+ add r3, r5, #0x0
+_0205AC22:
+ ldr r1, [r3, #0x0]
+ cmp r0, r1
+ beq _0205ACDA
+ add r2, r2, #0x1
+ add r3, r3, #0x4
+ cmp r2, r4
+ blt _0205AC22
+ mov r7, #0x0
+ mvn r7, r7
+ ldr r0, [sp, #0x0]
+ add r6, r7, #0x0
+ bl FUN_02058B2C
+ str r0, [sp, #0x8]
+ ldr r0, [sp, #0x0]
+ bl FUN_02058B4C
+ str r0, [sp, #0x4]
+ ldr r0, [sp, #0x0]
+ bl FUN_02058738
+ bl FUN_02055698
+ str r0, [sp, #0xc]
+ bl FUN_02055320
+ str r0, [sp, #0x10]
+ ldr r0, [sp, #0xc]
+ bl FUN_0205532C
+ ldr r2, [sp, #0x8]
+ ldr r1, [sp, #0x10]
+ cmp r2, r1
+ ble _0205AC6A
+ mov r7, #0x2
+ b _0205AC70
+_0205AC6A:
+ cmp r2, r1
+ bge _0205AC70
+ mov r7, #0x3
+_0205AC70:
+ ldr r1, [sp, #0x4]
+ cmp r1, r0
+ ble _0205AC7A
+ mov r6, #0x0
+ b _0205AC80
+_0205AC7A:
+ cmp r1, r0
+ bge _0205AC80
+ mov r6, #0x1
+_0205AC80:
+ mov r0, #0x0
+ sub r1, r0, #0x1
+ cmp r7, r1
+ bne _0205AC9E
+_0205AC88:
+ ldr r1, [r5, #0x0]
+ cmp r6, r1
+ bne _0205AC94
+ add sp, #0x14
+ add r0, r6, #0x0
+ pop {r4-r7, pc}
+_0205AC94:
+ add r0, r0, #0x1
+ add r5, r5, #0x4
+ cmp r0, r4
+ blt _0205AC88
+ b _0205ACD6
+_0205AC9E:
+ cmp r6, r1
+ bne _0205ACB8
+_0205ACA2:
+ ldr r1, [r5, #0x0]
+ cmp r7, r1
+ bne _0205ACAE
+ add sp, #0x14
+ add r0, r7, #0x0
+ pop {r4-r7, pc}
+_0205ACAE:
+ add r0, r0, #0x1
+ add r5, r5, #0x4
+ cmp r0, r4
+ blt _0205ACA2
+ b _0205ACD6
+_0205ACB8:
+ ldr r1, [r5, #0x0]
+ cmp r7, r1
+ bne _0205ACC4
+ add sp, #0x14
+ add r0, r7, #0x0
+ pop {r4-r7, pc}
+_0205ACC4:
+ cmp r6, r1
+ bne _0205ACCE
+ add sp, #0x14
+ add r0, r6, #0x0
+ pop {r4-r7, pc}
+_0205ACCE:
+ add r0, r0, #0x1
+ add r5, r5, #0x4
+ cmp r0, r4
+ blt _0205ACB8
+_0205ACD6:
+ mov r0, #0x0
+ mvn r0, r0
+_0205ACDA:
+ add sp, #0x14
+ pop {r4-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_0205ACE0
+FUN_0205ACE0: ; 0x0205ACE0
+ push {r3, lr}
+ bl FUN_02058488
+ sub r0, r0, #0x7
+ cmp r0, #0x1
+ bhi _0205ACF0
+ mov r0, #0x1
+ pop {r3, pc}
+_0205ACF0:
+ mov r0, #0x0
+ pop {r3, pc}
+
+ thumb_func_start FUN_0205ACF4
+FUN_0205ACF4: ; 0x0205ACF4
+ push {r4, lr}
+ add r4, r1, #0x0
+ bl FUN_02058488
+ cmp r0, #0x7
+ bne _0205AD06
+ mov r0, #0x0
+ strb r0, [r4, #0x1]
+ pop {r4, pc}
+_0205AD06:
+ mov r0, #0x1
+ strb r0, [r4, #0x1]
+ pop {r4, pc}
+
+ thumb_func_start FUN_0205AD0C
+FUN_0205AD0C: ; 0x0205AD0C
+ push {r3-r7, lr}
+ add r7, r0, #0x0
+ add r5, r1, #0x0
+ bl FUN_020584C4
+ mov r4, #0x0
+ add r6, r0, #0x0
+ add r1, r4, #0x0
+ ldr r0, _0205AD84 ; =0x020F6964
+ mov r2, #0x1
+ b _0205AD26
+_0205AD22:
+ add r1, r1, #0x4
+ add r4, r4, #0x1
+_0205AD26:
+ cmp r4, #0x4
+ bge _0205AD36
+ ldrsb r3, [r5, r2]
+ lsl r3, r3, #0x4
+ add r3, r0, r3
+ ldr r3, [r1, r3]
+ cmp r6, r3
+ bne _0205AD22
+_0205AD36:
+ cmp r4, #0x4
+ blt _0205AD3E
+ bl ErrorHandling
+_0205AD3E:
+ add r0, r4, #0x1
+ lsr r2, r0, #0x1f
+ lsl r1, r0, #0x1e
+ sub r1, r1, r2
+ mov r0, #0x1e
+ ror r1, r0
+ strb r6, [r5, #0x0]
+ mov r0, #0x1
+ add r1, r2, r1
+ ldrsb r0, [r5, r0]
+ lsl r1, r1, #0x2
+ lsl r2, r0, #0x4
+ ldr r0, _0205AD84 ; =0x020F6964
+ add r0, r0, r2
+ ldr r4, [r1, r0]
+ add r0, r7, #0x0
+ mov r1, #0x80
+ bl FUN_02058424
+ cmp r0, #0x0
+ beq _0205AD6C
+ mov r0, #0x1
+ b _0205AD6E
+_0205AD6C:
+ mov r0, #0x0
+_0205AD6E:
+ strb r0, [r5, #0x2]
+ add r0, r7, #0x0
+ add r1, r4, #0x0
+ bl FUN_020584AC
+ add r0, r7, #0x0
+ mov r1, #0x80
+ bl FUN_02058410
+ pop {r3-r7, pc}
+ nop
+_0205AD84: .word 0x020F6964
+
+ thumb_func_start FUN_0205AD88
+FUN_0205AD88: ; 0x0205AD88
+ push {r3, lr}
+ ldrb r1, [r1, #0x2]
+ cmp r1, #0x0
+ bne _0205AD96
+ mov r1, #0x80
+ bl FUN_02058418
+_0205AD96:
+ pop {r3, pc}
+
+ thumb_func_start FUN_0205AD98
+FUN_0205AD98: ; 0x0205AD98
+ push {r4, lr}
+ mov r1, #0x1
+ add r4, r0, #0x0
+ bl FUN_0205842C
+ cmp r0, #0x0
+ bne _0205ADAA
+ mov r0, #0x0
+ pop {r4, pc}
+_0205ADAA:
+ add r0, r4, #0x0
+ mov r1, #0x2
+ bl FUN_0205842C
+ cmp r0, #0x1
+ bne _0205ADBA
+ mov r0, #0x0
+ pop {r4, pc}
+_0205ADBA:
+ add r0, r4, #0x0
+ mov r1, #0x10
+ bl FUN_0205842C
+ cmp r0, #0x1
+ bne _0205ADD6
+ add r0, r4, #0x0
+ mov r1, #0x20
+ bl FUN_0205842C
+ cmp r0, #0x0
+ bne _0205ADD6
+ mov r0, #0x0
+ pop {r4, pc}
+_0205ADD6:
+ mov r0, #0x1
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0205ADDC
+FUN_0205ADDC: ; 0x0205ADDC
+ push {r3-r5, lr}
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ cmp r4, #0x69
+ blt _0205ADEA
+ bl ErrorHandling
+_0205ADEA:
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_020586E8
+ add r0, r5, #0x0
+ mov r1, #0x0
+ bl FUN_020586F8
+ add r0, r5, #0x0
+ mov r1, #0x10
+ bl FUN_02058410
+ add r0, r5, #0x0
+ mov r1, #0x20
+ bl FUN_02058418
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_0205AE0C
+FUN_0205AE0C: ; 0x0205AE0C
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl FUN_020586E8
+ add r0, r4, #0x0
+ mov r1, #0x0
+ bl FUN_020586F8
+ add r0, r4, #0x0
+ mov r1, #0x20
+ bl FUN_02058418
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0205AE28
+FUN_0205AE28: ; 0x0205AE28
+ push {r4, lr}
+ mov r1, #0x10
+ add r4, r0, #0x0
+ bl FUN_0205842C
+ cmp r0, #0x0
+ bne _0205AE3A
+ mov r0, #0x1
+ pop {r4, pc}
+_0205AE3A:
+ add r0, r4, #0x0
+ mov r1, #0x20
+ bl FUN_0205842C
+ cmp r0, #0x0
+ beq _0205AE4A
+ mov r0, #0x1
+ pop {r4, pc}
+_0205AE4A:
+ mov r0, #0x0
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0205AE50
+FUN_0205AE50: ; 0x0205AE50
+ push {r4, lr}
+ mov r1, #0x10
+ add r4, r0, #0x0
+ bl FUN_0205842C
+ cmp r0, #0x0
+ bne _0205AE62
+ mov r0, #0x1
+ pop {r4, pc}
+_0205AE62:
+ add r0, r4, #0x0
+ mov r1, #0x20
+ bl FUN_0205842C
+ cmp r0, #0x0
+ bne _0205AE72
+ mov r0, #0x0
+ pop {r4, pc}
+_0205AE72:
+ add r0, r4, #0x0
+ mov r1, #0x30
+ bl FUN_02058418
+ mov r0, #0x1
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0205AE80
+FUN_0205AE80: ; 0x0205AE80
+ push {r4, lr}
+ add r4, r0, #0x0
+ mov r1, #0x10
+ bl FUN_02058418
+ add r0, r4, #0x0
+ mov r1, #0x20
+ bl FUN_02058410
+ add r0, r4, #0x0
+ mov r1, #0xff
+ bl FUN_020586E8
+ add r0, r4, #0x0
+ mov r1, #0x0
+ bl FUN_020586F8
+ pop {r4, pc}
+
+ thumb_func_start FUN_0205AEA4
+FUN_0205AEA4: ; 0x0205AEA4
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ add r6, r1, #0x0
+ mov r0, #0x4
+ mov r1, #0x14
+ bl FUN_020169D8
+ add r4, r0, #0x0
+ bne _0205AEBA
+ bl ErrorHandling
+_0205AEBA:
+ add r2, r4, #0x0
+ mov r1, #0x14
+ mov r0, #0x0
+_0205AEC0:
+ strb r0, [r2, #0x0]
+ add r2, r2, #0x1
+ sub r1, r1, #0x1
+ bne _0205AEC0
+ add r0, r5, #0x0
+ bl FUN_02058578
+ bl FUN_0205839C
+ sub r2, r0, #0x1
+ ldr r0, _0205AEEC ; =FUN_0205AF2C
+ add r1, r4, #0x0
+ bl FUN_0200CA44
+ add r7, r0, #0x0
+ bne _0205AEE4
+ bl ErrorHandling
+_0205AEE4:
+ str r5, [r4, #0xc]
+ str r6, [r4, #0x10]
+ add r0, r7, #0x0
+ pop {r3-r7, pc}
+ .balign 4
+_0205AEEC: .word FUN_0205AF2C
+
+ thumb_func_start FUN_0205AEF0
+FUN_0205AEF0: ; 0x0205AEF0
+ push {r3, lr}
+ bl FUN_0201B6C8
+ ldr r0, [r0, #0x4]
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_0205AEFC
+FUN_0205AEFC: ; 0x0205AEFC
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ bl FUN_0201B6C8
+ add r4, r0, #0x0
+ ldr r0, [r4, #0xc]
+ bl FUN_0205AE28
+ cmp r0, #0x1
+ beq _0205AF14
+ bl ErrorHandling
+_0205AF14:
+ ldr r0, [r4, #0xc]
+ bl FUN_0205AE50
+ mov r0, #0x4
+ add r1, r4, #0x0
+ bl FUN_02016A8C
+ add r0, r5, #0x0
+ bl FUN_0200CAB4
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_0205AF2C
+FUN_0205AF2C: ; 0x0205AF2C
+ push {r3-r5, lr}
+ ldr r4, _0205AF44 ; =0x020F6C54
+ add r5, r1, #0x0
+_0205AF32:
+ ldr r1, [r5, #0x0]
+ add r0, r5, #0x0
+ lsl r1, r1, #0x2
+ ldr r1, [r4, r1]
+ blx r1
+ cmp r0, #0x1
+ beq _0205AF32
+ pop {r3-r5, pc}
+ nop
+_0205AF44: .word 0x020F6C54
+
+ thumb_func_start FUN_0205AF48
+FUN_0205AF48: ; 0x0205AF48
+ mov r1, #0x0
+ str r1, [r0, #0x8]
+ mov r1, #0x1
+ str r1, [r0, #0x0]
+ add r0, r1, #0x0
+ bx lr
+
+ thumb_func_start FUN_0205AF54
+FUN_0205AF54: ; 0x0205AF54
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r0, [r4, #0xc]
+ bl FUN_0205AD98
+ cmp r0, #0x0
+ bne _0205AF66
+ mov r0, #0x0
+ pop {r4, pc}
+_0205AF66:
+ mov r0, #0x2
+ str r0, [r4, #0x0]
+ mov r0, #0x1
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0205AF70
+FUN_0205AF70: ; 0x0205AF70
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r1, [r4, #0x10]
+ ldr r0, [r4, #0xc]
+ ldrh r1, [r1, #0x0]
+ bl FUN_0205ADDC
+ mov r0, #0x3
+ str r0, [r4, #0x0]
+ mov r0, #0x0
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0205AF88
+FUN_0205AF88: ; 0x0205AF88
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r0, [r4, #0xc]
+ bl FUN_0205AE28
+ cmp r0, #0x0
+ bne _0205AF9A
+ mov r0, #0x0
+ pop {r4, pc}
+_0205AF9A:
+ mov r0, #0x4
+ str r0, [r4, #0x0]
+ mov r0, #0x1
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0205AFA4
+FUN_0205AFA4: ; 0x0205AFA4
+ ldr r1, [r0, #0x8]
+ ldr r3, [r0, #0x10]
+ add r2, r1, #0x1
+ str r2, [r0, #0x8]
+ ldrh r1, [r3, #0x2]
+ cmp r2, r1
+ bge _0205AFBA
+ mov r1, #0x1
+ str r1, [r0, #0x0]
+ add r0, r1, #0x0
+ bx lr
+_0205AFBA:
+ add r1, r3, #0x4
+ str r1, [r0, #0x10]
+ ldrh r1, [r3, #0x4]
+ cmp r1, #0xfe
+ beq _0205AFCC
+ mov r1, #0x0
+ str r1, [r0, #0x0]
+ mov r0, #0x1
+ bx lr
+_0205AFCC:
+ mov r1, #0x1
+ str r1, [r0, #0x4]
+ mov r1, #0x5
+ str r1, [r0, #0x0]
+ mov r0, #0x0
+ bx lr
+
+ thumb_func_start FUN_0205AFD8
+FUN_0205AFD8: ; 0x0205AFD8
+ mov r0, #0x0
+ bx lr
+
+ thumb_func_start FUN_0205AFDC
+FUN_0205AFDC: ; 0x0205AFDC
+ push {r3-r7, lr}
+ add r7, r0, #0x0
+ add r4, r1, #0x0
+ cmp r7, #0x4
+ blt _0205AFEA
+ bl ErrorHandling
+_0205AFEA:
+ ldr r3, _0205B01C ; =0x020F6308
+ ldr r6, [r3, #0x0]
+ cmp r6, #0x0
+ beq _0205B014
+ mov r1, #0x0
+_0205AFF4:
+ add r2, r1, #0x0
+ add r5, r6, #0x0
+_0205AFF8:
+ ldr r0, [r5, #0x0]
+ cmp r4, r0
+ bne _0205B004
+ lsl r0, r7, #0x2
+ ldr r0, [r6, r0]
+ pop {r3-r7, pc}
+_0205B004:
+ add r2, r2, #0x1
+ add r5, r5, #0x4
+ cmp r2, #0x4
+ blt _0205AFF8
+ add r3, r3, #0x4
+ ldr r6, [r3, #0x0]
+ cmp r6, #0x0
+ bne _0205AFF4
+_0205B014:
+ bl ErrorHandling
+ add r0, r4, #0x0
+ pop {r3-r7, pc}
+ .balign 4
+_0205B01C: .word 0x020F6308
+
+ thumb_func_start FUN_0205B020
+FUN_0205B020: ; 0x0205B020
+ push {r4-r5}
+ ldr r4, _0205B054 ; =0x020F6308
+ ldr r5, [r4, #0x0]
+ cmp r5, #0x0
+ beq _0205B04A
+ mov r2, #0x0
+_0205B02C:
+ add r3, r2, #0x0
+_0205B02E:
+ ldr r1, [r5, #0x0]
+ cmp r0, r1
+ bne _0205B03A
+ add r0, r3, #0x0
+ pop {r4-r5}
+ bx lr
+_0205B03A:
+ add r3, r3, #0x1
+ add r5, r5, #0x4
+ cmp r3, #0x4
+ blt _0205B02E
+ add r4, r4, #0x4
+ ldr r5, [r4, #0x0]
+ cmp r5, #0x0
+ bne _0205B02C
+_0205B04A:
+ mov r0, #0x0
+ mvn r0, r0
+ pop {r4-r5}
+ bx lr
+ nop
+_0205B054: .word 0x020F6308
+
+ thumb_func_start FUN_0205B058
+FUN_0205B058: ; 0x0205B058
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+_0205B05C:
+ add r0, r5, #0x0
+ bl FUN_020586F0
+ add r4, r0, #0x0
+ cmp r4, #0xff
+ beq _0205B07C
+ add r0, r5, #0x0
+ bl FUN_02058710
+ add r2, r0, #0x0
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_0205B0B4
+ cmp r0, #0x0
+ bne _0205B05C
+_0205B07C:
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_0205B080
+FUN_0205B080: ; 0x0205B080
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl FUN_0205B058
+ add r0, r4, #0x0
+ mov r1, #0x20
+ bl FUN_0205842C
+ cmp r0, #0x0
+ bne _0205B098
+ mov r0, #0x0
+ pop {r4, pc}
+_0205B098:
+ add r0, r4, #0x0
+ mov r1, #0x20
+ bl FUN_02058418
+ add r0, r4, #0x0
+ mov r1, #0xff
+ bl FUN_020586E8
+ add r0, r4, #0x0
+ mov r1, #0x0
+ bl FUN_020586F8
+ mov r0, #0x1
+ pop {r4, pc}
+
+ thumb_func_start FUN_0205B0B4
+FUN_0205B0B4: ; 0x0205B0B4
+ push {r3, lr}
+ lsl r3, r1, #0x2
+ ldr r1, _0205B0C4 ; =0x020F6440
+ ldr r3, [r1, r3]
+ lsl r1, r2, #0x2
+ ldr r1, [r3, r1]
+ blx r1
+ pop {r3, pc}
+ .balign 4
+_0205B0C4: .word 0x020F6440
+
+ thumb_func_start FUN_0205B0C8
+FUN_0205B0C8: ; 0x0205B0C8
+ push {r3, lr}
+ mov r1, #0x20
+ bl FUN_02058410
+ mov r0, #0x0
+ pop {r3, pc}
+
+ thumb_func_start FUN_0205B0D4
+FUN_0205B0D4: ; 0x0205B0D4
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl FUN_020584AC
+ add r0, r4, #0x0
+ mov r1, #0x0
+ bl FUN_02058544
+ add r0, r4, #0x0
+ bl FUN_02059C60
+ add r0, r4, #0x0
+ bl FUN_02058700
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0205B0F4
+FUN_0205B0F4: ; 0x0205B0F4
+ push {r3, lr}
+ mov r1, #0x0
+ bl FUN_0205B0D4
+ mov r0, #0x1
+ pop {r3, pc}
+
+ thumb_func_start FUN_0205B100
+FUN_0205B100: ; 0x0205B100
+ push {r3, lr}
+ mov r1, #0x1
+ bl FUN_0205B0D4
+ mov r0, #0x1
+ pop {r3, pc}
+
+ thumb_func_start FUN_0205B10C
+FUN_0205B10C: ; 0x0205B10C
+ push {r3, lr}
+ mov r1, #0x2
+ bl FUN_0205B0D4
+ mov r0, #0x1
+ pop {r3, pc}
+
+ thumb_func_start FUN_0205B118
+FUN_0205B118: ; 0x0205B118
+ push {r3, lr}
+ mov r1, #0x3
+ bl FUN_0205B0D4
+ mov r0, #0x1
+ pop {r3, pc}
+
+ thumb_func_start FUN_0205B124
+FUN_0205B124: ; 0x0205B124
+ push {r3-r7, lr}
+ add r4, r1, #0x0
+ mov r1, #0xc
+ add r5, r0, #0x0
+ add r6, r2, #0x0
+ add r7, r3, #0x0
+ bl FUN_020585DC
+ add r1, sp, #0x8
+ ldrh r1, [r1, #0x10]
+ strh r1, [r0, #0x0]
+ strh r7, [r0, #0x2]
+ str r4, [r0, #0x4]
+ str r6, [r0, #0x8]
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_02059C0C
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_020584D8
+ add r1, sp, #0x8
+ ldrh r1, [r1, #0x10]
+ add r0, r5, #0x0
+ bl FUN_02058544
+ add r0, r5, #0x0
+ mov r1, #0x4
+ bl FUN_02058410
+ add r0, r5, #0x0
+ bl FUN_02058700
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_0205B16C
+FUN_0205B16C: ; 0x0205B16C
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ bl FUN_02058600
+ add r4, r0, #0x0
+ ldr r1, [r4, #0x4]
+ ldr r2, [r4, #0x8]
+ add r0, r5, #0x0
+ bl FUN_02059CC8
+ add r0, r5, #0x0
+ bl FUN_02059D1C
+ mov r0, #0x2
+ ldrsh r1, [r4, r0]
+ sub r1, r1, #0x1
+ strh r1, [r4, #0x2]
+ ldrsh r0, [r4, r0]
+ cmp r0, #0x0
+ ble _0205B198
+ mov r0, #0x0
+ pop {r3-r5, pc}
+_0205B198:
+ add r0, r5, #0x0
+ mov r1, #0x28
+ bl FUN_02058410
+ add r0, r5, #0x0
+ bl FUN_02059C60
+ add r0, r5, #0x0
+ bl FUN_020586A0
+ add r0, r5, #0x0
+ mov r1, #0x0
+ bl FUN_02058544
+ add r0, r5, #0x0
+ bl FUN_02058700
+ mov r0, #0x1
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_0205B1C0
+FUN_0205B1C0: ; 0x0205B1C0
+ push {r3, lr}
+ mov r2, #0x1
+ str r2, [sp, #0x0]
+ mov r1, #0x0
+ lsl r2, r2, #0xb
+ mov r3, #0x20
+ bl FUN_0205B124
+ mov r0, #0x1
+ pop {r3, pc}
+
+ thumb_func_start FUN_0205B1D4
+FUN_0205B1D4: ; 0x0205B1D4
+ push {r3, lr}
+ mov r1, #0x1
+ lsl r2, r1, #0xb
+ mov r3, #0x20
+ str r1, [sp, #0x0]
+ bl FUN_0205B124
+ mov r0, #0x1
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_0205B1E8
+FUN_0205B1E8: ; 0x0205B1E8
+ push {r3, lr}
+ mov r1, #0x1
+ str r1, [sp, #0x0]
+ mov r1, #0x2
+ lsl r2, r1, #0xa
+ mov r3, #0x20
+ bl FUN_0205B124
+ mov r0, #0x1
+ pop {r3, pc}
+
+ thumb_func_start FUN_0205B1FC
+FUN_0205B1FC: ; 0x0205B1FC
+ push {r3, lr}
+ mov r2, #0x1
+ str r2, [sp, #0x0]
+ mov r1, #0x3
+ lsl r2, r2, #0xb
+ mov r3, #0x20
+ bl FUN_0205B124
+ mov r0, #0x1
+ pop {r3, pc}
+
+ thumb_func_start FUN_0205B210
+FUN_0205B210: ; 0x0205B210
+ push {r3, lr}
+ mov r2, #0x2
+ str r2, [sp, #0x0]
+ mov r1, #0x0
+ lsl r2, r2, #0xb
+ mov r3, #0x10
+ bl FUN_0205B124
+ mov r0, #0x1
+ pop {r3, pc}
+
+ thumb_func_start FUN_0205B224
+FUN_0205B224: ; 0x0205B224
+ push {r3, lr}
+ mov r1, #0x2
+ str r1, [sp, #0x0]
+ mov r1, #0x1
+ lsl r2, r1, #0xc
+ mov r3, #0x10
+ bl FUN_0205B124
+ mov r0, #0x1
+ pop {r3, pc}
+
+ thumb_func_start FUN_0205B238
+FUN_0205B238: ; 0x0205B238
+ push {r3, lr}
+ mov r1, #0x2
+ lsl r2, r1, #0xb
+ mov r3, #0x10
+ str r1, [sp, #0x0]
+ bl FUN_0205B124
+ mov r0, #0x1
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_0205B24C
+FUN_0205B24C: ; 0x0205B24C
+ push {r3, lr}
+ mov r2, #0x2
+ str r2, [sp, #0x0]
+ mov r1, #0x3
+ lsl r2, r2, #0xb
+ mov r3, #0x10
+ bl FUN_0205B124
+ mov r0, #0x1
+ pop {r3, pc}
+
+ thumb_func_start FUN_0205B260
+FUN_0205B260: ; 0x0205B260
+ push {r3, lr}
+ mov r1, #0x3
+ mov r2, #0x2
+ str r1, [sp, #0x0]
+ mov r1, #0x0
+ lsl r2, r2, #0xc
+ mov r3, #0x8
+ bl FUN_0205B124
+ mov r0, #0x1
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_0205B278
+FUN_0205B278: ; 0x0205B278
+ push {r3, lr}
+ mov r1, #0x3
+ str r1, [sp, #0x0]
+ mov r1, #0x1
+ lsl r2, r1, #0xd
+ mov r3, #0x8
+ bl FUN_0205B124
+ mov r0, #0x1
+ pop {r3, pc}
+
+ thumb_func_start FUN_0205B28C
+FUN_0205B28C: ; 0x0205B28C
+ push {r3, lr}
+ mov r1, #0x3
+ str r1, [sp, #0x0]
+ mov r1, #0x2
+ lsl r2, r1, #0xc
+ mov r3, #0x8
+ bl FUN_0205B124
+ mov r0, #0x1
+ pop {r3, pc}
+
+ thumb_func_start FUN_0205B2A0
+FUN_0205B2A0: ; 0x0205B2A0
+ push {r3, lr}
+ mov r2, #0x2
+ mov r1, #0x3
+ lsl r2, r2, #0xc
+ mov r3, #0x8
+ str r1, [sp, #0x0]
+ bl FUN_0205B124
+ mov r0, #0x1
+ pop {r3, pc}
+
+ thumb_func_start FUN_0205B2B4
+FUN_0205B2B4: ; 0x0205B2B4
+ push {r3, lr}
+ mov r3, #0x4
+ mov r1, #0x0
+ lsl r2, r3, #0xc
+ str r3, [sp, #0x0]
+ bl FUN_0205B124
+ mov r0, #0x1
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_0205B2C8
+FUN_0205B2C8: ; 0x0205B2C8
+ push {r3, lr}
+ mov r1, #0x1
+ mov r3, #0x4
+ lsl r2, r1, #0xe
+ str r3, [sp, #0x0]
+ bl FUN_0205B124
+ mov r0, #0x1
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_0205B2DC
+FUN_0205B2DC: ; 0x0205B2DC
+ push {r3, lr}
+ mov r1, #0x2
+ mov r3, #0x4
+ lsl r2, r1, #0xd
+ str r3, [sp, #0x0]
+ bl FUN_0205B124
+ mov r0, #0x1
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_0205B2F0
+FUN_0205B2F0: ; 0x0205B2F0
+ push {r3, lr}
+ mov r3, #0x4
+ mov r1, #0x3
+ lsl r2, r3, #0xc
+ str r3, [sp, #0x0]
+ bl FUN_0205B124
+ mov r0, #0x1
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_0205B304
+FUN_0205B304: ; 0x0205B304
+ push {r3, lr}
+ mov r1, #0x5
+ mov r2, #0x2
+ str r1, [sp, #0x0]
+ mov r1, #0x0
+ lsl r2, r2, #0xe
+ mov r3, #0x2
+ bl FUN_0205B124
+ mov r0, #0x1
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_0205B31C
+FUN_0205B31C: ; 0x0205B31C
+ push {r3, lr}
+ mov r1, #0x5
+ str r1, [sp, #0x0]
+ mov r1, #0x1
+ lsl r2, r1, #0xf
+ mov r3, #0x2
+ bl FUN_0205B124
+ mov r0, #0x1
+ pop {r3, pc}
+
+ thumb_func_start FUN_0205B330
+FUN_0205B330: ; 0x0205B330
+ push {r3, lr}
+ mov r1, #0x5
+ str r1, [sp, #0x0]
+ mov r1, #0x2
+ lsl r2, r1, #0xe
+ add r3, r1, #0x0
+ bl FUN_0205B124
+ mov r0, #0x1
+ pop {r3, pc}
+
+ thumb_func_start FUN_0205B344
+FUN_0205B344: ; 0x0205B344
+ push {r3, lr}
+ mov r1, #0x5
+ mov r2, #0x2
+ str r1, [sp, #0x0]
+ mov r1, #0x3
+ lsl r2, r2, #0xe
+ mov r3, #0x2
+ bl FUN_0205B124
+ mov r0, #0x1
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_0205B35C
+FUN_0205B35C: ; 0x0205B35C
+ push {r3, lr}
+ mov r2, #0x1
+ mov r1, #0x0
+ lsl r2, r2, #0x10
+ mov r3, #0x1
+ str r1, [sp, #0x0]
+ bl FUN_0205B124
+ mov r0, #0x1
+ pop {r3, pc}
+
+ thumb_func_start FUN_0205B370
+FUN_0205B370: ; 0x0205B370
+ push {r3, lr}
+ mov r1, #0x0
+ str r1, [sp, #0x0]
+ mov r1, #0x1
+ lsl r2, r1, #0x10
+ add r3, r1, #0x0
+ bl FUN_0205B124
+ mov r0, #0x1
+ pop {r3, pc}
+
+ thumb_func_start FUN_0205B384
+FUN_0205B384: ; 0x0205B384
+ push {r3, lr}
+ mov r1, #0x0
+ str r1, [sp, #0x0]
+ mov r1, #0x2
+ lsl r2, r1, #0xf
+ mov r3, #0x1
+ bl FUN_0205B124
+ mov r0, #0x1
+ pop {r3, pc}
+
+ thumb_func_start FUN_0205B398
+FUN_0205B398: ; 0x0205B398
+ push {r3, lr}
+ mov r1, #0x0
+ mov r2, #0x1
+ str r1, [sp, #0x0]
+ mov r1, #0x3
+ lsl r2, r2, #0x10
+ mov r3, #0x1
+ bl FUN_0205B124
+ mov r0, #0x1
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_0205B3B0
+FUN_0205B3B0: ; 0x0205B3B0
+ push {r3, lr}
+ mov r1, #0x9
+ mov r2, #0x1
+ str r1, [sp, #0x0]
+ mov r1, #0x0
+ lsl r2, r2, #0xe
+ mov r3, #0x4
+ bl FUN_0205B124
+ mov r0, #0x1
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_0205B3C8
+FUN_0205B3C8: ; 0x0205B3C8
+ push {r3, lr}
+ mov r1, #0x9
+ str r1, [sp, #0x0]
+ mov r1, #0x1
+ lsl r2, r1, #0xe
+ mov r3, #0x4
+ bl FUN_0205B124
+ mov r0, #0x1
+ pop {r3, pc}
+
+ thumb_func_start FUN_0205B3DC
+FUN_0205B3DC: ; 0x0205B3DC
+ push {r3, lr}
+ mov r1, #0x9
+ str r1, [sp, #0x0]
+ mov r1, #0x2
+ lsl r2, r1, #0xd
+ mov r3, #0x4
+ bl FUN_0205B124
+ mov r0, #0x1
+ pop {r3, pc}
+
+ thumb_func_start FUN_0205B3F0
+FUN_0205B3F0: ; 0x0205B3F0
+ push {r3, lr}
+ mov r1, #0x9
+ mov r2, #0x1
+ str r1, [sp, #0x0]
+ mov r1, #0x3
+ lsl r2, r2, #0xe
+ mov r3, #0x4
+ bl FUN_0205B124
+ mov r0, #0x1
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_0205B408
+FUN_0205B408: ; 0x0205B408
+ push {r3-r7, lr}
+ add r7, r1, #0x0
+ add r6, r2, #0x0
+ add r4, r3, #0x0
+ mov r1, #0xc
+ add r5, r0, #0x0
+ bl FUN_020585DC
+ strh r4, [r0, #0x0]
+ add r1, r6, #0x1
+ strh r1, [r0, #0x2]
+ add r0, r5, #0x0
+ add r1, r7, #0x0
+ bl FUN_020584AC
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_02058544
+ add r0, r5, #0x0
+ bl FUN_02059C60
+ add r0, r5, #0x0
+ bl FUN_02058700
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_0205B43C
+FUN_0205B43C: ; 0x0205B43C
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl FUN_02058600
+ mov r1, #0x2
+ ldrsh r2, [r0, r1]
+ sub r2, r2, #0x1
+ strh r2, [r0, #0x2]
+ ldrsh r0, [r0, r1]
+ cmp r0, #0x0
+ ble _0205B456
+ mov r0, #0x0
+ pop {r4, pc}
+_0205B456:
+ add r0, r4, #0x0
+ mov r1, #0x20
+ bl FUN_02058410
+ add r0, r4, #0x0
+ mov r1, #0x0
+ bl FUN_02058544
+ add r0, r4, #0x0
+ bl FUN_02058700
+ mov r0, #0x1
+ pop {r4, pc}
+
+ thumb_func_start FUN_0205B470
+FUN_0205B470: ; 0x0205B470
+ push {r3, lr}
+ mov r1, #0x0
+ mov r2, #0x20
+ mov r3, #0x1
+ bl FUN_0205B408
+ mov r0, #0x1
+ pop {r3, pc}
+
+ thumb_func_start FUN_0205B480
+FUN_0205B480: ; 0x0205B480
+ push {r3, lr}
+ mov r1, #0x1
+ mov r2, #0x20
+ add r3, r1, #0x0
+ bl FUN_0205B408
+ mov r0, #0x1
+ pop {r3, pc}
+
+ thumb_func_start FUN_0205B490
+FUN_0205B490: ; 0x0205B490
+ push {r3, lr}
+ mov r1, #0x2
+ mov r2, #0x20
+ mov r3, #0x1
+ bl FUN_0205B408
+ mov r0, #0x1
+ pop {r3, pc}
+
+ thumb_func_start FUN_0205B4A0
+FUN_0205B4A0: ; 0x0205B4A0
+ push {r3, lr}
+ mov r1, #0x3
+ mov r2, #0x20
+ mov r3, #0x1
+ bl FUN_0205B408
+ mov r0, #0x1
+ pop {r3, pc}
+
+ thumb_func_start FUN_0205B4B0
+FUN_0205B4B0: ; 0x0205B4B0
+ push {r3, lr}
+ mov r1, #0x0
+ mov r2, #0x10
+ mov r3, #0x2
+ bl FUN_0205B408
+ mov r0, #0x1
+ pop {r3, pc}
+
+ thumb_func_start FUN_0205B4C0
+FUN_0205B4C0: ; 0x0205B4C0
+ push {r3, lr}
+ mov r1, #0x1
+ mov r2, #0x10
+ mov r3, #0x2
+ bl FUN_0205B408
+ mov r0, #0x1
+ pop {r3, pc}
+
+ thumb_func_start FUN_0205B4D0
+FUN_0205B4D0: ; 0x0205B4D0
+ push {r3, lr}
+ mov r1, #0x2
+ mov r2, #0x10
+ add r3, r1, #0x0
+ bl FUN_0205B408
+ mov r0, #0x1
+ pop {r3, pc}
+
+ thumb_func_start FUN_0205B4E0
+FUN_0205B4E0: ; 0x0205B4E0
+ push {r3, lr}
+ mov r1, #0x3
+ mov r2, #0x10
+ mov r3, #0x2
+ bl FUN_0205B408
+ mov r0, #0x1
+ pop {r3, pc}
+
+ thumb_func_start FUN_0205B4F0
+FUN_0205B4F0: ; 0x0205B4F0
+ push {r3, lr}
+ mov r1, #0x0
+ mov r2, #0x8
+ mov r3, #0x3
+ bl FUN_0205B408
+ mov r0, #0x1
+ pop {r3, pc}
+
+ thumb_func_start FUN_0205B500
+FUN_0205B500: ; 0x0205B500
+ push {r3, lr}
+ mov r1, #0x1
+ mov r2, #0x8
+ mov r3, #0x3
+ bl FUN_0205B408
+ mov r0, #0x1
+ pop {r3, pc}
+
+ thumb_func_start FUN_0205B510
+FUN_0205B510: ; 0x0205B510
+ push {r3, lr}
+ mov r1, #0x2
+ mov r2, #0x8
+ mov r3, #0x3
+ bl FUN_0205B408
+ mov r0, #0x1
+ pop {r3, pc}
+
+ thumb_func_start FUN_0205B520
+FUN_0205B520: ; 0x0205B520
+ push {r3, lr}
+ mov r1, #0x3
+ mov r2, #0x8
+ add r3, r1, #0x0
+ bl FUN_0205B408
+ mov r0, #0x1
+ pop {r3, pc}
+
+ thumb_func_start FUN_0205B530
+FUN_0205B530: ; 0x0205B530
+ push {r3, lr}
+ mov r2, #0x4
+ mov r1, #0x0
+ add r3, r2, #0x0
+ bl FUN_0205B408
+ mov r0, #0x1
+ pop {r3, pc}
+
+ thumb_func_start FUN_0205B540
+FUN_0205B540: ; 0x0205B540
+ push {r3, lr}
+ mov r2, #0x4
+ mov r1, #0x1
+ add r3, r2, #0x0
+ bl FUN_0205B408
+ mov r0, #0x1
+ pop {r3, pc}
+
+ thumb_func_start FUN_0205B550
+FUN_0205B550: ; 0x0205B550
+ push {r3, lr}
+ mov r2, #0x4
+ mov r1, #0x2
+ add r3, r2, #0x0
+ bl FUN_0205B408
+ mov r0, #0x1
+ pop {r3, pc}
+
+ thumb_func_start FUN_0205B560
+FUN_0205B560: ; 0x0205B560
+ push {r3, lr}
+ mov r2, #0x4
+ mov r1, #0x3
+ add r3, r2, #0x0
+ bl FUN_0205B408
+ mov r0, #0x1
+ pop {r3, pc}
+
+ thumb_func_start FUN_0205B570
+FUN_0205B570: ; 0x0205B570
+ push {r3, lr}
+ mov r1, #0x0
+ mov r2, #0x2
+ mov r3, #0x5
+ bl FUN_0205B408
+ mov r0, #0x1
+ pop {r3, pc}
+
+ thumb_func_start FUN_0205B580
+FUN_0205B580: ; 0x0205B580
+ push {r3, lr}
+ mov r1, #0x1
+ mov r2, #0x2
+ mov r3, #0x5
+ bl FUN_0205B408
+ mov r0, #0x1
+ pop {r3, pc}
+
+ thumb_func_start FUN_0205B590
+FUN_0205B590: ; 0x0205B590
+ push {r3, lr}
+ mov r1, #0x2
+ add r2, r1, #0x0
+ mov r3, #0x5
+ bl FUN_0205B408
+ mov r0, #0x1
+ pop {r3, pc}
+
+ thumb_func_start FUN_0205B5A0
+FUN_0205B5A0: ; 0x0205B5A0
+ push {r3, lr}
+ mov r1, #0x3
+ mov r2, #0x2
+ mov r3, #0x5
+ bl FUN_0205B408
+ mov r0, #0x1
+ pop {r3, pc}
+
+ thumb_func_start FUN_0205B5B0
+FUN_0205B5B0: ; 0x0205B5B0
+ push {r3-r7, lr}
+ add r4, r1, #0x0
+ mov r1, #0x10
+ add r5, r0, #0x0
+ add r6, r2, #0x0
+ add r7, r3, #0x0
+ bl FUN_020585DC
+ strb r4, [r0, #0xc]
+ str r6, [r0, #0x0]
+ strb r7, [r0, #0xd]
+ add r2, sp, #0x8
+ ldrh r1, [r2, #0x10]
+ strb r1, [r0, #0xe]
+ mov r1, #0x14
+ ldrsh r1, [r2, r1]
+ cmp r6, #0x0
+ strb r1, [r0, #0xf]
+ ldrh r1, [r2, #0x18]
+ strh r1, [r0, #0x8]
+ bne _0205B5E2
+ add r0, r5, #0x0
+ bl FUN_02059C60
+ b _0205B5EA
+_0205B5E2:
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_02059C0C
+_0205B5EA:
+ ldr r1, _0205B614 ; =0x00010004
+ add r0, r5, #0x0
+ bl FUN_02058410
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_020584D8
+ add r1, sp, #0x8
+ ldrh r1, [r1, #0x10]
+ add r0, r5, #0x0
+ bl FUN_02058544
+ add r0, r5, #0x0
+ bl FUN_02058700
+ ldr r0, _0205B618 ; =0x0000060B
+ bl FUN_020054C8
+ pop {r3-r7, pc}
+ nop
+_0205B614: .word 0x00010004
+_0205B618: .word 0x0000060B
+
+ thumb_func_start FUN_0205B61C
+FUN_0205B61C: ; 0x0205B61C
+ push {r3-r5, lr}
+ sub sp, #0x18
+ add r5, r0, #0x0
+ bl FUN_02058600
+ add r4, r0, #0x0
+ ldr r2, [r4, #0x0]
+ cmp r2, #0x0
+ beq _0205B66C
+ mov r1, #0xc
+ ldrsb r1, [r4, r1]
+ add r0, r5, #0x0
+ bl FUN_02059CC8
+ add r0, r5, #0x0
+ bl FUN_02059D1C
+ mov r0, #0x1
+ ldr r1, [r4, #0x4]
+ lsl r0, r0, #0x10
+ cmp r1, r0
+ blt _0205B65E
+ mov r0, #0x0
+ str r0, [r4, #0x4]
+ mov r1, #0xc
+ ldrsb r1, [r4, r1]
+ add r0, r5, #0x0
+ bl FUN_02059C0C
+ add r0, r5, #0x0
+ mov r1, #0x4
+ bl FUN_02058410
+_0205B65E:
+ ldr r1, [r4, #0x0]
+ cmp r1, #0x0
+ bge _0205B666
+ neg r1, r1
+_0205B666:
+ ldr r0, [r4, #0x4]
+ add r0, r0, r1
+ str r0, [r4, #0x4]
+_0205B66C:
+ ldrh r1, [r4, #0xa]
+ ldrh r0, [r4, #0x8]
+ add r0, r1, r0
+ strh r0, [r4, #0xa]
+ mov r0, #0xf
+ ldrh r1, [r4, #0xa]
+ lsl r0, r0, #0x8
+ cmp r1, r0
+ bls _0205B680
+ strh r0, [r4, #0xa]
+_0205B680:
+ mov r1, #0xf
+ ldrsb r1, [r4, r1]
+ ldrh r0, [r4, #0xa]
+ lsl r2, r1, #0x2
+ ldr r1, _0205B6F8 ; =0x02105F9C
+ lsr r0, r0, #0x8
+ lsl r0, r0, #0x10
+ ldr r2, [r1, r2]
+ mov r1, #0x0
+ str r1, [sp, #0xc]
+ lsr r0, r0, #0xe
+ ldr r0, [r2, r0]
+ str r0, [sp, #0x10]
+ str r1, [sp, #0x14]
+ add r0, r5, #0x0
+ add r1, sp, #0xc
+ bl FUN_02058B94
+ mov r0, #0xd
+ ldrsb r1, [r4, r0]
+ sub r1, r1, #0x1
+ strb r1, [r4, #0xd]
+ ldrsb r0, [r4, r0]
+ cmp r0, #0x0
+ ble _0205B6B8
+ add sp, #0x18
+ mov r0, #0x0
+ pop {r3-r5, pc}
+_0205B6B8:
+ add r1, sp, #0x0
+ mov r0, #0x0
+ str r0, [r1, #0x0]
+ str r0, [r1, #0x4]
+ str r0, [r1, #0x8]
+ add r0, r5, #0x0
+ bl FUN_02058B94
+ ldr r1, _0205B6FC ; =0x00020028
+ add r0, r5, #0x0
+ bl FUN_02058410
+ add r0, r5, #0x0
+ bl FUN_02059C60
+ add r0, r5, #0x0
+ bl FUN_020586A0
+ add r0, r5, #0x0
+ mov r1, #0x0
+ bl FUN_02058544
+ add r0, r5, #0x0
+ bl FUN_02058700
+ ldr r0, _0205B700 ; =0x00000647
+ bl FUN_020054C8
+ mov r0, #0x1
+ add sp, #0x18
+ pop {r3-r5, pc}
+ nop
+_0205B6F8: .word 0x02105F9C
+_0205B6FC: .word 0x00020028
+_0205B700: .word 0x00000647
+
+ thumb_func_start FUN_0205B704
+FUN_0205B704: ; 0x0205B704
+ push {lr}
+ sub sp, #0xc
+ mov r2, #0x2
+ str r2, [sp, #0x0]
+ mov r1, #0x0
+ str r1, [sp, #0x4]
+ add r2, #0xfe
+ str r2, [sp, #0x8]
+ add r2, r1, #0x0
+ mov r3, #0x10
+ bl FUN_0205B5B0
+ mov r0, #0x1
+ add sp, #0xc
+ pop {pc}
+ .balign 4
+
+ thumb_func_start FUN_0205B724
+FUN_0205B724: ; 0x0205B724
+ push {lr}
+ sub sp, #0xc
+ mov r1, #0x2
+ str r1, [sp, #0x0]
+ mov r2, #0x0
+ str r2, [sp, #0x4]
+ add r1, #0xfe
+ str r1, [sp, #0x8]
+ mov r1, #0x1
+ mov r3, #0x10
+ bl FUN_0205B5B0
+ mov r0, #0x1
+ add sp, #0xc
+ pop {pc}
+ .balign 4
+
+ thumb_func_start FUN_0205B744
+FUN_0205B744: ; 0x0205B744
+ push {lr}
+ sub sp, #0xc
+ mov r1, #0x2
+ add r3, r1, #0x0
+ str r1, [sp, #0x0]
+ mov r2, #0x0
+ str r2, [sp, #0x4]
+ add r3, #0xfe
+ str r3, [sp, #0x8]
+ mov r3, #0x10
+ bl FUN_0205B5B0
+ mov r0, #0x1
+ add sp, #0xc
+ pop {pc}
+ .balign 4
+
+ thumb_func_start FUN_0205B764
+FUN_0205B764: ; 0x0205B764
+ push {lr}
+ sub sp, #0xc
+ mov r1, #0x2
+ str r1, [sp, #0x0]
+ mov r2, #0x0
+ str r2, [sp, #0x4]
+ add r1, #0xfe
+ str r1, [sp, #0x8]
+ mov r1, #0x3
+ mov r3, #0x10
+ bl FUN_0205B5B0
+ mov r0, #0x1
+ add sp, #0xc
+ pop {pc}
+ .balign 4
+
+ thumb_func_start FUN_0205B784
+FUN_0205B784: ; 0x0205B784
+ push {lr}
+ sub sp, #0xc
+ mov r1, #0x3
+ str r1, [sp, #0x0]
+ mov r1, #0x0
+ mov r2, #0x2
+ str r1, [sp, #0x4]
+ lsl r2, r2, #0x8
+ str r2, [sp, #0x8]
+ add r2, r1, #0x0
+ mov r3, #0x8
+ bl FUN_0205B5B0
+ mov r0, #0x1
+ add sp, #0xc
+ pop {pc}
+
+ thumb_func_start FUN_0205B7A4
+FUN_0205B7A4: ; 0x0205B7A4
+ push {lr}
+ sub sp, #0xc
+ mov r1, #0x3
+ str r1, [sp, #0x0]
+ mov r2, #0x0
+ mov r1, #0x2
+ str r2, [sp, #0x4]
+ lsl r1, r1, #0x8
+ str r1, [sp, #0x8]
+ mov r1, #0x1
+ mov r3, #0x8
+ bl FUN_0205B5B0
+ mov r0, #0x1
+ add sp, #0xc
+ pop {pc}
+
+ thumb_func_start FUN_0205B7C4
+FUN_0205B7C4: ; 0x0205B7C4
+ push {lr}
+ sub sp, #0xc
+ mov r1, #0x3
+ str r1, [sp, #0x0]
+ mov r2, #0x0
+ mov r1, #0x2
+ str r2, [sp, #0x4]
+ lsl r1, r1, #0x8
+ str r1, [sp, #0x8]
+ mov r1, #0x2
+ mov r3, #0x8
+ bl FUN_0205B5B0
+ mov r0, #0x1
+ add sp, #0xc
+ pop {pc}
+
+ thumb_func_start FUN_0205B7E4
+FUN_0205B7E4: ; 0x0205B7E4
+ push {lr}
+ sub sp, #0xc
+ mov r1, #0x3
+ mov r3, #0x2
+ str r1, [sp, #0x0]
+ mov r2, #0x0
+ str r2, [sp, #0x4]
+ lsl r3, r3, #0x8
+ str r3, [sp, #0x8]
+ mov r3, #0x8
+ bl FUN_0205B5B0
+ mov r0, #0x1
+ add sp, #0xc
+ pop {pc}
+ .balign 4
+
+ thumb_func_start FUN_0205B804
+FUN_0205B804: ; 0x0205B804
+ push {lr}
+ sub sp, #0xc
+ mov r1, #0x3
+ str r1, [sp, #0x0]
+ mov r1, #0x0
+ mov r2, #0x2
+ str r1, [sp, #0x4]
+ lsl r2, r2, #0x8
+ str r2, [sp, #0x8]
+ lsl r2, r2, #0x4
+ mov r3, #0x8
+ bl FUN_0205B5B0
+ mov r0, #0x1
+ add sp, #0xc
+ pop {pc}
+
+ thumb_func_start FUN_0205B824
+FUN_0205B824: ; 0x0205B824
+ push {lr}
+ sub sp, #0xc
+ mov r1, #0x3
+ str r1, [sp, #0x0]
+ mov r1, #0x0
+ str r1, [sp, #0x4]
+ mov r1, #0x2
+ lsl r1, r1, #0x8
+ str r1, [sp, #0x8]
+ mov r1, #0x1
+ lsl r2, r1, #0xd
+ mov r3, #0x8
+ bl FUN_0205B5B0
+ mov r0, #0x1
+ add sp, #0xc
+ pop {pc}
+ .balign 4
+
+ thumb_func_start FUN_0205B848
+FUN_0205B848: ; 0x0205B848
+ push {lr}
+ sub sp, #0xc
+ mov r1, #0x3
+ str r1, [sp, #0x0]
+ mov r1, #0x0
+ str r1, [sp, #0x4]
+ mov r1, #0x2
+ lsl r1, r1, #0x8
+ str r1, [sp, #0x8]
+ mov r1, #0x2
+ lsl r2, r1, #0xc
+ mov r3, #0x8
+ bl FUN_0205B5B0
+ mov r0, #0x1
+ add sp, #0xc
+ pop {pc}
+ .balign 4
+
+ thumb_func_start FUN_0205B86C
+FUN_0205B86C: ; 0x0205B86C
+ push {lr}
+ sub sp, #0xc
+ mov r1, #0x3
+ str r1, [sp, #0x0]
+ mov r2, #0x0
+ str r2, [sp, #0x4]
+ mov r2, #0x2
+ lsl r2, r2, #0x8
+ str r2, [sp, #0x8]
+ lsl r2, r2, #0x4
+ mov r3, #0x8
+ bl FUN_0205B5B0
+ mov r0, #0x1
+ add sp, #0xc
+ pop {pc}
+
+ thumb_func_start FUN_0205B88C
+FUN_0205B88C: ; 0x0205B88C
+ push {lr}
+ sub sp, #0xc
+ mov r2, #0x3
+ str r2, [sp, #0x0]
+ mov r1, #0x0
+ str r1, [sp, #0x4]
+ add r2, #0xfd
+ str r2, [sp, #0x8]
+ mov r2, #0x2
+ lsl r2, r2, #0xc
+ mov r3, #0x10
+ bl FUN_0205B5B0
+ mov r0, #0x1
+ add sp, #0xc
+ pop {pc}
+
+ thumb_func_start FUN_0205B8AC
+FUN_0205B8AC: ; 0x0205B8AC
+ push {lr}
+ sub sp, #0xc
+ mov r2, #0x3
+ str r2, [sp, #0x0]
+ mov r1, #0x0
+ str r1, [sp, #0x4]
+ add r2, #0xfd
+ mov r1, #0x1
+ str r2, [sp, #0x8]
+ lsl r2, r1, #0xd
+ mov r3, #0x10
+ bl FUN_0205B5B0
+ mov r0, #0x1
+ add sp, #0xc
+ pop {pc}
+
+ thumb_func_start FUN_0205B8CC
+FUN_0205B8CC: ; 0x0205B8CC
+ push {lr}
+ sub sp, #0xc
+ mov r2, #0x3
+ str r2, [sp, #0x0]
+ mov r1, #0x0
+ str r1, [sp, #0x4]
+ add r2, #0xfd
+ mov r1, #0x2
+ str r2, [sp, #0x8]
+ lsl r2, r1, #0xc
+ mov r3, #0x10
+ bl FUN_0205B5B0
+ mov r0, #0x1
+ add sp, #0xc
+ pop {pc}
+
+ thumb_func_start FUN_0205B8EC
+FUN_0205B8EC: ; 0x0205B8EC
+ push {lr}
+ sub sp, #0xc
+ mov r1, #0x3
+ str r1, [sp, #0x0]
+ mov r2, #0x0
+ str r2, [sp, #0x4]
+ add r2, r1, #0x0
+ add r2, #0xfd
+ str r2, [sp, #0x8]
+ mov r2, #0x2
+ lsl r2, r2, #0xc
+ mov r3, #0x10
+ bl FUN_0205B5B0
+ mov r0, #0x1
+ add sp, #0xc
+ pop {pc}
+ .balign 4
+
+ thumb_func_start FUN_0205B910
+FUN_0205B910: ; 0x0205B910
+ push {lr}
+ sub sp, #0xc
+ mov r1, #0xa
+ str r1, [sp, #0x0]
+ mov r1, #0x0
+ str r1, [sp, #0x4]
+ mov r1, #0xf0
+ str r1, [sp, #0x8]
+ mov r1, #0x2
+ lsl r2, r1, #0xb
+ mov r3, #0x10
+ bl FUN_0205B5B0
+ mov r0, #0x1
+ add sp, #0xc
+ pop {pc}
+
+ thumb_func_start FUN_0205B930
+FUN_0205B930: ; 0x0205B930
+ push {lr}
+ sub sp, #0xc
+ mov r1, #0xa
+ str r1, [sp, #0x0]
+ mov r1, #0x0
+ str r1, [sp, #0x4]
+ mov r1, #0xf0
+ mov r2, #0x1
+ str r1, [sp, #0x8]
+ mov r1, #0x3
+ lsl r2, r2, #0xc
+ mov r3, #0x10
+ bl FUN_0205B5B0
+ mov r0, #0x1
+ add sp, #0xc
+ pop {pc}
+ .balign 4
+
+ thumb_func_start FUN_0205B954
+FUN_0205B954: ; 0x0205B954
+ push {lr}
+ sub sp, #0xc
+ mov r1, #0xb
+ str r1, [sp, #0x0]
+ mov r1, #0x0
+ str r1, [sp, #0x4]
+ mov r1, #0x5
+ lsl r1, r1, #0x6
+ str r1, [sp, #0x8]
+ mov r1, #0x2
+ lsl r2, r1, #0xd
+ mov r3, #0xc
+ bl FUN_0205B5B0
+ mov r0, #0x1
+ add sp, #0xc
+ pop {pc}
+ .balign 4
+
+ thumb_func_start FUN_0205B978
+FUN_0205B978: ; 0x0205B978
+ push {lr}
+ sub sp, #0xc
+ mov r1, #0xb
+ str r1, [sp, #0x0]
+ mov r1, #0x0
+ str r1, [sp, #0x4]
+ mov r1, #0x5
+ lsl r1, r1, #0x6
+ mov r2, #0x1
+ str r1, [sp, #0x8]
+ mov r1, #0x3
+ lsl r2, r2, #0xe
+ mov r3, #0xc
+ bl FUN_0205B5B0
+ mov r0, #0x1
+ add sp, #0xc
+ pop {pc}
+
+ thumb_func_start FUN_0205B99C
+FUN_0205B99C: ; 0x0205B99C
+ push {r3-r5, lr}
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ mov r1, #0x4
+ bl FUN_020585DC
+ str r4, [r0, #0x0]
+ add r0, r5, #0x0
+ bl FUN_02058700
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_0205B9B4
+FUN_0205B9B4: ; 0x0205B9B4
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl FUN_02058600
+ ldr r1, [r0, #0x0]
+ cmp r1, #0x0
+ beq _0205B9CA
+ sub r1, r1, #0x1
+ str r1, [r0, #0x0]
+ mov r0, #0x0
+ pop {r4, pc}
+_0205B9CA:
+ add r0, r4, #0x0
+ bl FUN_02058700
+ mov r0, #0x1
+ pop {r4, pc}
+
+ thumb_func_start FUN_0205B9D4
+FUN_0205B9D4: ; 0x0205B9D4
+ push {r3, lr}
+ mov r1, #0x1
+ bl FUN_0205B99C
+ mov r0, #0x1
+ pop {r3, pc}
+
+ thumb_func_start FUN_0205B9E0
+FUN_0205B9E0: ; 0x0205B9E0
+ push {r3, lr}
+ mov r1, #0x2
+ bl FUN_0205B99C
+ mov r0, #0x1
+ pop {r3, pc}
+
+ thumb_func_start FUN_0205B9EC
+FUN_0205B9EC: ; 0x0205B9EC
+ push {r3, lr}
+ mov r1, #0x4
+ bl FUN_0205B99C
+ mov r0, #0x1
+ pop {r3, pc}
+
+ thumb_func_start FUN_0205B9F8
+FUN_0205B9F8: ; 0x0205B9F8
+ push {r3, lr}
+ mov r1, #0x8
+ bl FUN_0205B99C
+ mov r0, #0x1
+ pop {r3, pc}
+
+ thumb_func_start FUN_0205BA04
+FUN_0205BA04: ; 0x0205BA04
+ push {r3, lr}
+ mov r1, #0xf
+ bl FUN_0205B99C
+ mov r0, #0x1
+ pop {r3, pc}
+
+ thumb_func_start FUN_0205BA10
+FUN_0205BA10: ; 0x0205BA10
+ push {r3, lr}
+ mov r1, #0x10
+ bl FUN_0205B99C
+ mov r0, #0x1
+ pop {r3, pc}
+
+ thumb_func_start FUN_0205BA1C
+FUN_0205BA1C: ; 0x0205BA1C
+ push {r3, lr}
+ mov r1, #0x20
+ bl FUN_0205B99C
+ mov r0, #0x1
+ pop {r3, pc}
+
+ thumb_func_start FUN_0205BA28
+FUN_0205BA28: ; 0x0205BA28
+ push {r4, lr}
+ mov r1, #0x8
+ add r4, r0, #0x0
+ bl FUN_020585DC
+ mov r1, #0x1
+ lsl r1, r1, #0x10
+ str r1, [r0, #0x4]
+ add r0, r4, #0x0
+ mov r1, #0x0
+ bl FUN_02058544
+ add r0, r4, #0x0
+ bl FUN_02058700
+ mov r0, #0x1
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0205BA4C
+FUN_0205BA4C: ; 0x0205BA4C
+ push {r4-r5, lr}
+ sub sp, #0xc
+ add r5, r0, #0x0
+ bl FUN_02058600
+ add r4, r0, #0x0
+ ldr r1, [r4, #0x0]
+ ldr r0, [r4, #0x4]
+ add r0, r1, r0
+ str r0, [r4, #0x0]
+ add r1, sp, #0x0
+ mov r0, #0x0
+ str r0, [r1, #0x0]
+ str r0, [r1, #0x4]
+ str r0, [r1, #0x8]
+ ldr r0, [r4, #0x0]
+ str r0, [sp, #0x4]
+ add r0, r5, #0x0
+ bl FUN_02058B94
+ ldr r1, [r4, #0x0]
+ asr r0, r1, #0xe
+ lsr r0, r0, #0x11
+ add r0, r1, r0
+ asr r0, r0, #0xf
+ cmp r0, #0x28
+ bge _0205BA88
+ add sp, #0xc
+ mov r0, #0x0
+ pop {r4-r5, pc}
+_0205BA88:
+ add r0, r5, #0x0
+ bl FUN_02058700
+ mov r0, #0x1
+ add sp, #0xc
+ pop {r4-r5, pc}
+
+ thumb_func_start FUN_0205BA94
+FUN_0205BA94: ; 0x0205BA94
+ push {r4, lr}
+ mov r1, #0x8
+ add r4, r0, #0x0
+ bl FUN_020585DC
+ mov r1, #0x5
+ lsl r1, r1, #0x12
+ str r1, [r0, #0x0]
+ ldr r1, _0205BABC ; =0xFFFF0000
+ str r1, [r0, #0x4]
+ add r0, r4, #0x0
+ mov r1, #0x0
+ bl FUN_02058544
+ add r0, r4, #0x0
+ bl FUN_02058700
+ mov r0, #0x1
+ pop {r4, pc}
+ nop
+_0205BABC: .word 0xFFFF0000
+
+ thumb_func_start FUN_0205BAC0
+FUN_0205BAC0: ; 0x0205BAC0
+ push {r4-r5, lr}
+ sub sp, #0xc
+ add r5, r0, #0x0
+ bl FUN_02058600
+ add r4, r0, #0x0
+ ldr r1, [r4, #0x0]
+ ldr r0, [r4, #0x4]
+ add r0, r1, r0
+ str r0, [r4, #0x0]
+ bpl _0205BADA
+ mov r0, #0x0
+ str r0, [r4, #0x0]
+_0205BADA:
+ add r1, sp, #0x0
+ mov r0, #0x0
+ str r0, [r1, #0x0]
+ str r0, [r1, #0x4]
+ str r0, [r1, #0x8]
+ ldr r0, [r4, #0x0]
+ str r0, [sp, #0x4]
+ add r0, r5, #0x0
+ bl FUN_02058B94
+ ldr r0, [r4, #0x0]
+ cmp r0, #0x0
+ ble _0205BAFA
+ add sp, #0xc
+ mov r0, #0x0
+ pop {r4-r5, pc}
+_0205BAFA:
+ add r0, r5, #0x0
+ bl FUN_02058700
+ mov r0, #0x1
+ add sp, #0xc
+ pop {r4-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_0205BB08
+FUN_0205BB08: ; 0x0205BB08
+ push {r4, lr}
+ mov r1, #0x2
+ add r4, r0, #0x0
+ lsl r1, r1, #0x8
+ bl FUN_02058410
+ add r0, r4, #0x0
+ bl FUN_02058700
+ mov r0, #0x1
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0205BB20
+FUN_0205BB20: ; 0x0205BB20
+ push {r4, lr}
+ mov r1, #0x2
+ add r4, r0, #0x0
+ lsl r1, r1, #0x8
+ bl FUN_02058418
+ add r0, r4, #0x0
+ bl FUN_02058700
+ mov r0, #0x1
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0205BB38
+FUN_0205BB38: ; 0x0205BB38
+ push {r4, lr}
+ add r4, r0, #0x0
+ mov r1, #0x80
+ bl FUN_02058410
+ add r0, r4, #0x0
+ bl FUN_02058700
+ mov r0, #0x1
+ pop {r4, pc}
+
+ thumb_func_start FUN_0205BB4C
+FUN_0205BB4C: ; 0x0205BB4C
+ push {r4, lr}
+ add r4, r0, #0x0
+ mov r1, #0x80
+ bl FUN_02058418
+ add r0, r4, #0x0
+ bl FUN_02058700
+ mov r0, #0x1
+ pop {r4, pc}
+
+ thumb_func_start FUN_0205BB60
+FUN_0205BB60: ; 0x0205BB60
+ push {r4, lr}
+ mov r1, #0x1
+ add r4, r0, #0x0
+ lsl r1, r1, #0x8
+ bl FUN_02058410
+ add r0, r4, #0x0
+ bl FUN_02058700
+ mov r0, #0x1
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0205BB78
+FUN_0205BB78: ; 0x0205BB78
+ push {r4, lr}
+ mov r1, #0x1
+ add r4, r0, #0x0
+ lsl r1, r1, #0x8
+ bl FUN_02058418
+ add r0, r4, #0x0
+ bl FUN_02058700
+ mov r0, #0x1
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0205BB90
+FUN_0205BB90: ; 0x0205BB90
+ push {r4-r6, lr}
+ add r6, r1, #0x0
+ mov r1, #0x8
+ add r5, r0, #0x0
+ bl FUN_020585DC
+ add r4, r0, #0x0
+ str r6, [r4, #0x0]
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ mov r2, #0x1
+ bl FUN_021E7AC0
+ str r0, [r4, #0x4]
+ add r0, r5, #0x0
+ bl FUN_02058700
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_0205BBB4
+FUN_0205BBB4: ; 0x0205BBB4
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ bl FUN_02058600
+ add r4, r0, #0x0
+ ldr r0, [r4, #0x4]
+ bl FUN_021E799C
+ cmp r0, #0x1
+ bne _0205BBD8
+ ldr r0, [r4, #0x4]
+ bl FUN_02064520
+ add r0, r5, #0x0
+ bl FUN_02058700
+ mov r0, #0x1
+ pop {r3-r5, pc}
+_0205BBD8:
+ mov r0, #0x0
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_0205BBDC
+FUN_0205BBDC: ; 0x0205BBDC
+ push {r3, lr}
+ mov r1, #0x0
+ bl FUN_0205BB90
+ mov r0, #0x0
+ pop {r3, pc}
+
+ thumb_func_start FUN_0205BBE8
+FUN_0205BBE8: ; 0x0205BBE8
+ push {r3, lr}
+ mov r1, #0x1
+ bl FUN_0205BB90
+ mov r0, #0x0
+ pop {r3, pc}
+
+ thumb_func_start FUN_0205BBF4
+FUN_0205BBF4: ; 0x0205BBF4
+ push {r3-r7, lr}
+ add r4, r1, #0x0
+ mov r1, #0x8
+ add r5, r0, #0x0
+ add r7, r2, #0x0
+ add r6, r3, #0x0
+ bl FUN_020585DC
+ strh r4, [r0, #0x0]
+ strh r6, [r0, #0x2]
+ strh r7, [r0, #0x4]
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_02059C0C
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_020584D8
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ bl FUN_02058544
+ add r0, r5, #0x0
+ mov r1, #0x4
+ bl FUN_02058410
+ add r0, r5, #0x0
+ bl FUN_02058700
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_0205BC34
+FUN_0205BC34: ; 0x0205BC34
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ add r6, r1, #0x0
+ bl FUN_02058600
+ add r4, r0, #0x0
+ mov r2, #0x6
+ ldrsh r2, [r4, r2]
+ mov r1, #0x0
+ ldrsh r1, [r4, r1]
+ lsl r2, r2, #0x2
+ ldr r2, [r6, r2]
+ add r0, r5, #0x0
+ bl FUN_02059CC8
+ add r0, r5, #0x0
+ bl FUN_02059D1C
+ mov r0, #0x6
+ ldrsh r1, [r4, r0]
+ add r1, r1, #0x1
+ strh r1, [r4, #0x6]
+ ldrsh r1, [r4, r0]
+ mov r0, #0x4
+ ldrsh r0, [r4, r0]
+ cmp r1, r0
+ bge _0205BC6E
+ mov r0, #0x0
+ pop {r4-r6, pc}
+_0205BC6E:
+ add r0, r5, #0x0
+ mov r1, #0x28
+ bl FUN_02058410
+ add r0, r5, #0x0
+ bl FUN_02059C60
+ add r0, r5, #0x0
+ bl FUN_020586A0
+ add r0, r5, #0x0
+ mov r1, #0x0
+ bl FUN_02058544
+ add r0, r5, #0x0
+ bl FUN_02058700
+ mov r0, #0x1
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_0205BC94
+FUN_0205BC94: ; 0x0205BC94
+ push {r3, lr}
+ mov r2, #0x6
+ mov r1, #0x0
+ add r3, r2, #0x0
+ bl FUN_0205BBF4
+ mov r0, #0x1
+ pop {r3, pc}
+
+ thumb_func_start FUN_0205BCA4
+FUN_0205BCA4: ; 0x0205BCA4
+ push {r3, lr}
+ mov r2, #0x6
+ mov r1, #0x1
+ add r3, r2, #0x0
+ bl FUN_0205BBF4
+ mov r0, #0x1
+ pop {r3, pc}
+
+ thumb_func_start FUN_0205BCB4
+FUN_0205BCB4: ; 0x0205BCB4
+ push {r3, lr}
+ mov r2, #0x6
+ mov r1, #0x2
+ add r3, r2, #0x0
+ bl FUN_0205BBF4
+ mov r0, #0x1
+ pop {r3, pc}
+
+ thumb_func_start FUN_0205BCC4
+FUN_0205BCC4: ; 0x0205BCC4
+ push {r3, lr}
+ mov r2, #0x6
+ mov r1, #0x3
+ add r3, r2, #0x0
+ bl FUN_0205BBF4
+ mov r0, #0x1
+ pop {r3, pc}
+
+ thumb_func_start FUN_0205BCD4
+FUN_0205BCD4: ; 0x0205BCD4
+ push {r3, lr}
+ ldr r1, _0205BCE8 ; =0x020F6C6C
+ bl FUN_0205BC34
+ cmp r0, #0x1
+ bne _0205BCE4
+ mov r0, #0x1
+ pop {r3, pc}
+_0205BCE4:
+ mov r0, #0x0
+ pop {r3, pc}
+ .balign 4
+_0205BCE8: .word 0x020F6C6C
+
+ thumb_func_start FUN_0205BCEC
+FUN_0205BCEC: ; 0x0205BCEC
+ push {r3, lr}
+ mov r1, #0x0
+ mov r2, #0x3
+ mov r3, #0x7
+ bl FUN_0205BBF4
+ mov r0, #0x1
+ pop {r3, pc}
+
+ thumb_func_start FUN_0205BCFC
+FUN_0205BCFC: ; 0x0205BCFC
+ push {r3, lr}
+ mov r1, #0x1
+ mov r2, #0x3
+ mov r3, #0x7
+ bl FUN_0205BBF4
+ mov r0, #0x1
+ pop {r3, pc}
+
+ thumb_func_start FUN_0205BD0C
+FUN_0205BD0C: ; 0x0205BD0C
+ push {r3, lr}
+ mov r1, #0x2
+ mov r2, #0x3
+ mov r3, #0x7
+ bl FUN_0205BBF4
+ mov r0, #0x1
+ pop {r3, pc}
+
+ thumb_func_start FUN_0205BD1C
+FUN_0205BD1C: ; 0x0205BD1C
+ push {r3, lr}
+ mov r1, #0x3
+ add r2, r1, #0x0
+ mov r3, #0x7
+ bl FUN_0205BBF4
+ mov r0, #0x1
+ pop {r3, pc}
+
+ thumb_func_start FUN_0205BD2C
+FUN_0205BD2C: ; 0x0205BD2C
+ push {r3, lr}
+ ldr r1, _0205BD40 ; =0x020F6C48
+ bl FUN_0205BC34
+ cmp r0, #0x1
+ bne _0205BD3C
+ mov r0, #0x1
+ pop {r3, pc}
+_0205BD3C:
+ mov r0, #0x0
+ pop {r3, pc}
+ .balign 4
+_0205BD40: .word 0x020F6C48
+
+ thumb_func_start FUN_0205BD44
+FUN_0205BD44: ; 0x0205BD44
+ push {r3, lr}
+ mov r1, #0x0
+ mov r2, #0x7
+ mov r3, #0x8
+ bl FUN_0205BBF4
+ mov r0, #0x1
+ pop {r3, pc}
+
+ thumb_func_start FUN_0205BD54
+FUN_0205BD54: ; 0x0205BD54
+ push {r3, lr}
+ mov r1, #0x1
+ mov r2, #0x7
+ mov r3, #0x8
+ bl FUN_0205BBF4
+ mov r0, #0x1
+ pop {r3, pc}
+
+ thumb_func_start FUN_0205BD64
+FUN_0205BD64: ; 0x0205BD64
+ push {r3, lr}
+ mov r1, #0x2
+ mov r2, #0x7
+ mov r3, #0x8
+ bl FUN_0205BBF4
+ mov r0, #0x1
+ pop {r3, pc}
+
+ thumb_func_start FUN_0205BD74
+FUN_0205BD74: ; 0x0205BD74
+ push {r3, lr}
+ mov r1, #0x3
+ mov r2, #0x7
+ mov r3, #0x8
+ bl FUN_0205BBF4
+ mov r0, #0x1
+ pop {r3, pc}
+
+ thumb_func_start FUN_0205BD84
+FUN_0205BD84: ; 0x0205BD84
+ push {r3, lr}
+ ldr r1, _0205BD98 ; =0x020F6C84
+ bl FUN_0205BC34
+ cmp r0, #0x1
+ bne _0205BD94
+ mov r0, #0x1
+ pop {r3, pc}
+_0205BD94:
+ mov r0, #0x0
+ pop {r3, pc}
+ .balign 4
+_0205BD98: .word 0x020F6C84
+
+ thumb_func_start FUN_0205BD9C
+FUN_0205BD9C: ; 0x0205BD9C
+ push {r4, lr}
+ add r4, r0, #0x0
+ mov r1, #0x4
+ bl FUN_020585DC
+ add r0, r4, #0x0
+ mov r1, #0x9
+ bl FUN_02058544
+ add r0, r4, #0x0
+ bl FUN_02058700
+ mov r0, #0x0
+ pop {r4, pc}
+
+ thumb_func_start FUN_0205BDB8
+FUN_0205BDB8: ; 0x0205BDB8
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl FUN_02058600
+ ldr r1, [r0, #0x0]
+ add r1, r1, #0x1
+ str r1, [r0, #0x0]
+ cmp r1, #0x8
+ blt _0205BDE0
+ add r0, r4, #0x0
+ mov r1, #0x1
+ bl FUN_020584AC
+ add r0, r4, #0x0
+ mov r1, #0x0
+ bl FUN_02058544
+ add r0, r4, #0x0
+ bl FUN_02058700
+_0205BDE0:
+ mov r0, #0x0
+ pop {r4, pc}
+
+ thumb_func_start FUN_0205BDE4
+FUN_0205BDE4: ; 0x0205BDE4
+ push {r3-r4, lr}
+ sub sp, #0xc
+ add r4, r0, #0x0
+ mov r1, #0x4
+ bl FUN_020585DC
+ add r0, r4, #0x0
+ bl FUN_0205EB20
+ cmp r0, #0x0
+ beq _0205BDFE
+ bl FUN_02064520
+_0205BDFE:
+ add r1, sp, #0x0
+ mov r0, #0x0
+ str r0, [r1, #0x0]
+ str r0, [r1, #0x4]
+ str r0, [r1, #0x8]
+ add r0, r4, #0x0
+ bl FUN_02058B94
+ add r0, r4, #0x0
+ bl FUN_0224D2E0
+ ldr r1, _0205BE34 ; =0x00010004
+ add r0, r4, #0x0
+ bl FUN_02058410
+ mov r1, #0x1
+ add r0, r4, #0x0
+ lsl r1, r1, #0x14
+ bl FUN_02058418
+ add r0, r4, #0x0
+ bl FUN_02058700
+ mov r0, #0x0
+ add sp, #0xc
+ pop {r3-r4, pc}
+ nop
+_0205BE34: .word 0x00010004
+
+ thumb_func_start FUN_0205BE38
+FUN_0205BE38: ; 0x0205BE38
+ push {r4-r5, lr}
+ sub sp, #0xc
+ add r5, r0, #0x0
+ bl FUN_02058600
+ add r4, r0, #0x0
+ ldr r0, _0205BE98 ; =0x02105F9C
+ add r1, sp, #0x0
+ ldr r2, [r0, #0x0]
+ mov r0, #0x0
+ str r0, [r1, #0x0]
+ str r0, [r1, #0x4]
+ str r0, [r1, #0x8]
+ ldr r0, [r4, #0x0]
+ lsl r0, r0, #0x2
+ ldr r0, [r2, r0]
+ str r0, [sp, #0x4]
+ add r0, r5, #0x0
+ bl FUN_02058B94
+ ldr r0, [r4, #0x0]
+ add r0, r0, #0x2
+ str r0, [r4, #0x0]
+ cmp r0, #0x10
+ bhs _0205BE70
+ add sp, #0xc
+ mov r0, #0x0
+ pop {r4-r5, pc}
+_0205BE70:
+ mov r0, #0x0
+ str r0, [sp, #0x4]
+ add r0, r5, #0x0
+ add r1, sp, #0x0
+ bl FUN_02058B94
+ ldr r1, _0205BE9C ; =0x00020028
+ add r0, r5, #0x0
+ bl FUN_02058410
+ add r0, r5, #0x0
+ bl FUN_0205EB2C
+ add r0, r5, #0x0
+ bl FUN_02058700
+ mov r0, #0x1
+ add sp, #0xc
+ pop {r4-r5, pc}
+ nop
+_0205BE98: .word 0x02105F9C
+_0205BE9C: .word 0x00020028
+
+ thumb_func_start FUN_0205BEA0
+FUN_0205BEA0: ; 0x0205BEA0
+ push {r4, lr}
+ add r4, r0, #0x0
+ mov r1, #0x4
+ bl FUN_020585DC
+ add r0, r4, #0x0
+ mov r1, #0x0
+ bl FUN_02058544
+ add r0, r4, #0x0
+ bl FUN_02058700
+ mov r0, #0x0
+ pop {r4, pc}
+
+ thumb_func_start FUN_0205BEBC
+FUN_0205BEBC: ; 0x0205BEBC
+ push {r4, lr}
+ add r4, r0, #0x0
+ mov r1, #0x4
+ bl FUN_020585DC
+ add r0, r4, #0x0
+ mov r1, #0x1
+ bl FUN_02058544
+ add r0, r4, #0x0
+ bl FUN_02058700
+ mov r0, #0x0
+ pop {r4, pc}
+
+ thumb_func_start FUN_0205BED8
+FUN_0205BED8: ; 0x0205BED8
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl FUN_02058600
+ ldr r1, [r0, #0x0]
+ add r1, r1, #0x1
+ str r1, [r0, #0x0]
+ cmp r1, #0x15
+ bhs _0205BEEE
+ mov r0, #0x0
+ pop {r4, pc}
+_0205BEEE:
+ add r0, r4, #0x0
+ bl FUN_02058700
+ mov r0, #0x1
+ pop {r4, pc}
+
+ thumb_func_start FUN_0205BEF8
+FUN_0205BEF8: ; 0x0205BEF8
+ ldr r3, _0205BEFC ; =FUN_0205BF24
+ bx r3
+ .balign 4
+_0205BEFC: .word FUN_0205BF24
+
+ thumb_func_start FUN_0205BF00
+FUN_0205BF00: ; 0x0205BF00
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl FUN_0205BF40
+ cmp r0, #0x0
+ bne _0205BF10
+ mov r0, #0x0
+ pop {r4, pc}
+_0205BF10:
+ add r0, r4, #0x0
+ bl FUN_0205BF5C
+ cmp r0, #0x0
+ beq _0205BF1E
+ mov r0, #0x1
+ pop {r4, pc}
+_0205BF1E:
+ mov r0, #0x0
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0205BF24
+FUN_0205BF24: ; 0x0205BF24
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl FUN_02058488
+ add r1, r0, #0x0
+ lsl r2, r1, #0x2
+ ldr r1, _0205BF3C ; =0x020F7118
+ add r0, r4, #0x0
+ ldr r1, [r1, r2]
+ blx r1
+ pop {r4, pc}
+ nop
+_0205BF3C: .word 0x020F7118
+
+ thumb_func_start FUN_0205BF40
+FUN_0205BF40: ; 0x0205BF40
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl FUN_02058488
+ add r1, r0, #0x0
+ lsl r2, r1, #0x2
+ ldr r1, _0205BF58 ; =0x020F7148
+ add r0, r4, #0x0
+ ldr r1, [r1, r2]
+ blx r1
+ pop {r4, pc}
+ nop
+_0205BF58: .word 0x020F7148
+
+ thumb_func_start FUN_0205BF5C
+FUN_0205BF5C: ; 0x0205BF5C
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl FUN_02058488
+ add r1, r0, #0x0
+ lsl r2, r1, #0x2
+ ldr r1, _0205BF74 ; =0x020F7178
+ add r0, r4, #0x0
+ ldr r1, [r1, r2]
+ blx r1
+ pop {r4, pc}
+ nop
+_0205BF74: .word 0x020F7178
+
+ thumb_func_start FUN_0205BF78
+FUN_0205BF78: ; 0x0205BF78
+ push {r3-r5, lr}
+ add r4, r0, #0x0
+ bl FUN_02058B2C
+ add r5, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_02058B14
+ cmp r5, r0
+ beq _0205BF90
+ mov r0, #0x1
+ pop {r3-r5, pc}
+_0205BF90:
+ add r0, r4, #0x0
+ bl FUN_02058B4C
+ add r5, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_02058B24
+ cmp r5, r0
+ beq _0205BFA6
+ mov r0, #0x1
+ pop {r3-r5, pc}
+_0205BFA6:
+ mov r0, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_0205BFAC
+FUN_0205BFAC: ; 0x0205BFAC
+ push {r3-r5, lr}
+ add r4, r0, #0x0
+ bl FUN_02058B2C
+ add r5, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_02058B14
+ cmp r5, r0
+ beq _0205BFC4
+ mov r0, #0x0
+ pop {r3-r5, pc}
+_0205BFC4:
+ add r0, r4, #0x0
+ bl FUN_02058B4C
+ add r5, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_02058B24
+ cmp r5, r0
+ bne _0205BFDA
+ mov r0, #0x1
+ pop {r3-r5, pc}
+_0205BFDA:
+ mov r0, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_0205BFE0
+FUN_0205BFE0: ; 0x0205BFE0
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_0205BFE4
+FUN_0205BFE4: ; 0x0205BFE4
+ mov r0, #0x0
+ bx lr
+
+ thumb_func_start FUN_0205BFE8
+FUN_0205BFE8: ; 0x0205BFE8
+ mov r0, #0x0
+ bx lr
+
+ thumb_func_start FUN_0205BFEC
+FUN_0205BFEC: ; 0x0205BFEC
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ mov r1, #0x9
+ bl FUN_020585B4
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ mov r1, #0x1
+ bl FUN_02058510
+ strb r0, [r4, #0x3]
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_0205C004
+FUN_0205C004: ; 0x0205C004
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ bl FUN_020585D8
+ add r4, r0, #0x0
+ ldrb r0, [r4, #0x0]
+ cmp r0, #0x3
+ bhi _0205C07C
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0205C020: ; jump table (using 16-bit offset)
+ .short _0205C028 - _0205C020 - 2; case 0
+ .short _0205C03A - _0205C020 - 2; case 1
+ .short _0205C062 - _0205C020 - 2; case 2
+ .short _0205C078 - _0205C020 - 2; case 3
+_0205C028:
+ add r0, r5, #0x0
+ bl FUN_0205BF78
+ cmp r0, #0x1
+ bne _0205C07C
+ ldrb r0, [r4, #0x0]
+ add r0, r0, #0x1
+ strb r0, [r4, #0x0]
+ b _0205C07C
+_0205C03A:
+ add r0, r5, #0x0
+ bl FUN_0205BFAC
+ cmp r0, #0x0
+ beq _0205C07C
+ mov r0, #0x2
+ ldrsb r1, [r4, r0]
+ add r1, r1, #0x1
+ strb r1, [r4, #0x2]
+ ldrsb r1, [r4, r0]
+ mov r0, #0x3
+ ldrsb r0, [r4, r0]
+ cmp r1, r0
+ bge _0205C05C
+ mov r0, #0x0
+ strb r0, [r4, #0x0]
+ b _0205C07C
+_0205C05C:
+ ldrb r0, [r4, #0x0]
+ add r0, r0, #0x1
+ strb r0, [r4, #0x0]
+_0205C062:
+ add r0, r5, #0x0
+ bl FUN_02058854
+ cmp r0, #0x1
+ beq _0205C07C
+ ldrb r0, [r4, #0x0]
+ add r0, r0, #0x1
+ strb r0, [r4, #0x0]
+ mov r0, #0x0
+ strb r0, [r4, #0x2]
+ strb r0, [r4, #0x1]
+_0205C078:
+ mov r0, #0x1
+ pop {r3-r5, pc}
+_0205C07C:
+ mov r0, #0x0
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_0205C080
+FUN_0205C080: ; 0x0205C080
+ push {r4-r6, lr}
+ sub sp, #0x20
+ add r5, r0, #0x0
+ bl FUN_020585D8
+ add r4, r0, #0x0
+ ldrb r0, [r4, #0x1]
+ cmp r0, #0x3
+ bhi _0205C15E
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0205C09E: ; jump table (using 16-bit offset)
+ .short _0205C0A6 - _0205C09E - 2; case 0
+ .short _0205C0C8 - _0205C09E - 2; case 1
+ .short _0205C0FA - _0205C09E - 2; case 2
+ .short _0205C110 - _0205C09E - 2; case 3
+_0205C0A6:
+ ldr r3, _0205C164 ; =0x020F70D8
+ add r2, sp, #0x10
+ ldmia r3!, {r0-r1}
+ stmia r2!, {r0-r1}
+ ldmia r3!, {r0-r1}
+ stmia r2!, {r0-r1}
+ add r0, r5, #0x0
+ bl FUN_020584C4
+ strb r0, [r4, #0x4]
+ lsl r1, r0, #0x2
+ add r0, sp, #0x10
+ ldr r0, [r0, r1]
+ strb r0, [r4, #0x5]
+ ldrb r0, [r4, #0x1]
+ add r0, r0, #0x1
+ strb r0, [r4, #0x1]
+_0205C0C8:
+ ldr r6, _0205C168 ; =0x020F70E8
+ add r3, sp, #0x0
+ add r2, r3, #0x0
+ ldmia r6!, {r0-r1}
+ stmia r3!, {r0-r1}
+ ldmia r6!, {r0-r1}
+ stmia r3!, {r0-r1}
+ mov r0, #0x5
+ ldrsb r0, [r4, r0]
+ lsl r3, r0, #0x3
+ mov r0, #0x6
+ ldrsb r0, [r4, r0]
+ lsl r1, r0, #0x2
+ add r0, r2, r3
+ ldr r0, [r1, r0]
+ mov r1, #0x0
+ bl FUN_0205AFDC
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_0205AE0C
+ ldrb r0, [r4, #0x1]
+ add r0, r0, #0x1
+ strb r0, [r4, #0x1]
+_0205C0FA:
+ add r0, r5, #0x0
+ bl FUN_0205B080
+ cmp r0, #0x0
+ bne _0205C10A
+ add sp, #0x20
+ mov r0, #0x1
+ pop {r4-r6, pc}
+_0205C10A:
+ ldrb r0, [r4, #0x1]
+ add r0, r0, #0x1
+ strb r0, [r4, #0x1]
+_0205C110:
+ mov r0, #0x8
+ ldrsb r1, [r4, r0]
+ add r1, r1, #0x1
+ strb r1, [r4, #0x8]
+ ldrsb r0, [r4, r0]
+ cmp r0, #0x8
+ bge _0205C124
+ add sp, #0x20
+ mov r0, #0x1
+ pop {r4-r6, pc}
+_0205C124:
+ mov r0, #0x0
+ strb r0, [r4, #0x8]
+ mov r0, #0x7
+ ldrsb r1, [r4, r0]
+ add r1, r1, #0x1
+ strb r1, [r4, #0x7]
+ ldrsb r0, [r4, r0]
+ cmp r0, #0x4
+ bge _0205C148
+ mov r0, #0x6
+ ldrsb r0, [r4, r0]
+ add sp, #0x20
+ add r1, r0, #0x1
+ mov r0, #0x1
+ and r1, r0
+ strb r1, [r4, #0x6]
+ strb r0, [r4, #0x1]
+ pop {r4-r6, pc}
+_0205C148:
+ mov r1, #0x4
+ ldrsb r1, [r4, r1]
+ add r0, r5, #0x0
+ bl FUN_020584AC
+ ldrb r0, [r4, #0x1]
+ add r0, r0, #0x1
+ strb r0, [r4, #0x1]
+ mov r0, #0x0
+ strb r0, [r4, #0x7]
+ strb r0, [r4, #0x0]
+_0205C15E:
+ mov r0, #0x0
+ add sp, #0x20
+ pop {r4-r6, pc}
+ .balign 4
+_0205C164: .word 0x020F70D8
+_0205C168: .word 0x020F70E8
+
+ thumb_func_start FUN_0205C16C
+FUN_0205C16C: ; 0x0205C16C
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ mov r1, #0x9
+ bl FUN_020585B4
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ mov r1, #0x1
+ bl FUN_02058510
+ strb r0, [r4, #0x3]
+ add r0, r5, #0x0
+ bl FUN_02058488
+ cmp r0, #0x5
+ beq _0205C190
+ mov r0, #0x1
+ b _0205C192
+_0205C190:
+ mov r0, #0x0
+_0205C192:
+ strb r0, [r4, #0x5]
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_0205C198
+FUN_0205C198: ; 0x0205C198
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ bl FUN_020585D8
+ add r4, r0, #0x0
+ ldrb r0, [r4, #0x0]
+ cmp r0, #0x3
+ bhi _0205C210
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0205C1B4: ; jump table (using 16-bit offset)
+ .short _0205C1BC - _0205C1B4 - 2; case 0
+ .short _0205C1CE - _0205C1B4 - 2; case 1
+ .short _0205C1F6 - _0205C1B4 - 2; case 2
+ .short _0205C20C - _0205C1B4 - 2; case 3
+_0205C1BC:
+ add r0, r5, #0x0
+ bl FUN_0205BF78
+ cmp r0, #0x1
+ bne _0205C210
+ ldrb r0, [r4, #0x0]
+ add r0, r0, #0x1
+ strb r0, [r4, #0x0]
+ b _0205C210
+_0205C1CE:
+ add r0, r5, #0x0
+ bl FUN_0205BFAC
+ cmp r0, #0x0
+ beq _0205C210
+ mov r0, #0x2
+ ldrsb r1, [r4, r0]
+ add r1, r1, #0x1
+ strb r1, [r4, #0x2]
+ ldrsb r1, [r4, r0]
+ mov r0, #0x3
+ ldrsb r0, [r4, r0]
+ cmp r1, r0
+ bge _0205C1F0
+ mov r0, #0x0
+ strb r0, [r4, #0x0]
+ b _0205C210
+_0205C1F0:
+ ldrb r0, [r4, #0x0]
+ add r0, r0, #0x1
+ strb r0, [r4, #0x0]
+_0205C1F6:
+ add r0, r5, #0x0
+ bl FUN_02058854
+ cmp r0, #0x1
+ beq _0205C210
+ ldrb r0, [r4, #0x0]
+ add r0, r0, #0x1
+ strb r0, [r4, #0x0]
+ mov r0, #0x0
+ strb r0, [r4, #0x2]
+ strb r0, [r4, #0x1]
+_0205C20C:
+ mov r0, #0x1
+ pop {r3-r5, pc}
+_0205C210:
+ mov r0, #0x0
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_0205C214
+FUN_0205C214: ; 0x0205C214
+ push {r3-r7, lr}
+ sub sp, #0x20
+ ldr r3, _0205C330 ; =0x020F70F8
+ add r2, sp, #0x0
+ add r7, r0, #0x0
+ 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, #0x0
+ bl FUN_020585D8
+ add r4, r0, #0x0
+ ldrb r0, [r4, #0x1]
+ cmp r0, #0x3
+ bhi _0205C32A
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0205C248: ; jump table (using 16-bit offset)
+ .short _0205C250 - _0205C248 - 2; case 0
+ .short _0205C296 - _0205C248 - 2; case 1
+ .short _0205C2BC - _0205C248 - 2; case 2
+ .short _0205C2D2 - _0205C248 - 2; case 3
+_0205C250:
+ add r0, r7, #0x0
+ bl FUN_020584C4
+ mov r5, #0x0
+ add r6, r0, #0x0
+ add r1, r5, #0x0
+ add r0, sp, #0x0
+ mov r2, #0x5
+ b _0205C266
+_0205C262:
+ add r1, r1, #0x4
+ add r5, r5, #0x1
+_0205C266:
+ cmp r5, #0x4
+ bge _0205C276
+ ldrsb r3, [r4, r2]
+ lsl r3, r3, #0x4
+ add r3, r0, r3
+ ldr r3, [r1, r3]
+ cmp r6, r3
+ bne _0205C262
+_0205C276:
+ cmp r5, #0x4
+ blt _0205C27E
+ bl ErrorHandling
+_0205C27E:
+ add r0, r5, #0x1
+ lsr r2, r0, #0x1f
+ lsl r1, r0, #0x1e
+ sub r1, r1, r2
+ mov r0, #0x1e
+ ror r1, r0
+ strb r6, [r4, #0x4]
+ add r0, r2, r1
+ strb r0, [r4, #0x6]
+ ldrb r0, [r4, #0x1]
+ add r0, r0, #0x1
+ strb r0, [r4, #0x1]
+_0205C296:
+ mov r0, #0x5
+ ldrsb r0, [r4, r0]
+ add r2, sp, #0x0
+ lsl r3, r0, #0x4
+ mov r0, #0x6
+ ldrsb r0, [r4, r0]
+ lsl r1, r0, #0x2
+ add r0, r2, r3
+ ldr r0, [r1, r0]
+ mov r1, #0x0
+ bl FUN_0205AFDC
+ add r1, r0, #0x0
+ add r0, r7, #0x0
+ bl FUN_0205AE0C
+ ldrb r0, [r4, #0x1]
+ add r0, r0, #0x1
+ strb r0, [r4, #0x1]
+_0205C2BC:
+ add r0, r7, #0x0
+ bl FUN_0205B080
+ cmp r0, #0x0
+ bne _0205C2CC
+ add sp, #0x20
+ mov r0, #0x1
+ pop {r3-r7, pc}
+_0205C2CC:
+ ldrb r0, [r4, #0x1]
+ add r0, r0, #0x1
+ strb r0, [r4, #0x1]
+_0205C2D2:
+ mov r0, #0x8
+ ldrsb r1, [r4, r0]
+ add r1, r1, #0x1
+ strb r1, [r4, #0x8]
+ ldrsb r0, [r4, r0]
+ cmp r0, #0x8
+ bge _0205C2E6
+ add sp, #0x20
+ mov r0, #0x1
+ pop {r3-r7, pc}
+_0205C2E6:
+ mov r0, #0x0
+ strb r0, [r4, #0x8]
+ mov r0, #0x7
+ ldrsb r1, [r4, r0]
+ add r1, r1, #0x1
+ strb r1, [r4, #0x7]
+ ldrsb r0, [r4, r0]
+ cmp r0, #0x4
+ bge _0205C314
+ mov r0, #0x6
+ ldrsb r0, [r4, r0]
+ add sp, #0x20
+ add r0, r0, #0x1
+ lsr r2, r0, #0x1f
+ lsl r1, r0, #0x1e
+ sub r1, r1, r2
+ mov r0, #0x1e
+ ror r1, r0
+ add r0, r2, r1
+ strb r0, [r4, #0x6]
+ mov r0, #0x1
+ strb r0, [r4, #0x1]
+ pop {r3-r7, pc}
+_0205C314:
+ mov r1, #0x4
+ ldrsb r1, [r4, r1]
+ add r0, r7, #0x0
+ bl FUN_020584AC
+ ldrb r0, [r4, #0x1]
+ add r0, r0, #0x1
+ strb r0, [r4, #0x1]
+ mov r0, #0x0
+ strb r0, [r4, #0x7]
+ strb r0, [r4, #0x0]
+_0205C32A:
+ mov r0, #0x0
+ add sp, #0x20
+ pop {r3-r7, pc}
+ .balign 4
+_0205C330: .word 0x020F70F8
+
+ thumb_func_start FUN_0205C334
+FUN_0205C334: ; 0x0205C334
+ cmp r0, #0x64
+ bne _0205C33C
+ mov r0, #0x1
+ bx lr
+_0205C33C:
+ mov r0, #0x0
+ bx lr
+
+ thumb_func_start FUN_0205C340
+FUN_0205C340: ; 0x0205C340
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl FUN_020585B0
+ ldrh r0, [r0, #0x0]
+ cmp r0, #0x0
+ bne _0205C352
+ ldr r0, _0205C370 ; =0x0000FFFF
+ pop {r4, pc}
+_0205C352:
+ add r0, r4, #0x0
+ bl FUN_02058934
+ cmp r0, #0x1
+ bne _0205C36C
+ add r0, r4, #0x0
+ bl FUN_02058628
+ ldr r1, [r0, #0x4]
+ cmp r1, #0x0
+ beq _0205C36C
+ ldr r0, [r0, #0x0]
+ pop {r4, pc}
+_0205C36C:
+ ldr r0, _0205C370 ; =0x0000FFFF
+ pop {r4, pc}
+ .balign 4
+_0205C370: .word 0x0000FFFF
+
+ thumb_func_start FUN_0205C374
+FUN_0205C374: ; 0x0205C374
+ push {r3, lr}
+ bl FUN_020585B0
+ mov r1, #0x1
+ strh r1, [r0, #0x2]
+ pop {r3, pc}
+
+ thumb_func_start FUN_0205C380
+FUN_0205C380: ; 0x0205C380
+ push {r3, lr}
+ mov r1, #0x4
+ bl FUN_0205858C
+ mov r1, #0x0
+ strh r1, [r0, #0x0]
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_0205C390
+FUN_0205C390: ; 0x0205C390
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ bl FUN_020585B0
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_02058738
+ add r1, r5, #0x0
+ bl FUN_0204B5FC
+ strh r0, [r4, #0x0]
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_0205C3AC
+FUN_0205C3AC: ; 0x0205C3AC
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_0205C3B0
+FUN_0205C3B0: ; 0x0205C3B0
+ push {r4, lr}
+ mov r1, #0x18
+ add r4, r0, #0x0
+ bl FUN_02058604
+ ldr r1, _0205C3CC ; =0x0000FFFF
+ str r1, [r0, #0x0]
+ mov r1, #0x0
+ str r1, [r0, #0x4]
+ add r0, r4, #0x0
+ bl FUN_0224A310
+ pop {r4, pc}
+ nop
+_0205C3CC: .word 0x0000FFFF
+
+ thumb_func_start FUN_0205C3D0
+FUN_0205C3D0: ; 0x0205C3D0
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ bl FUN_020585B0
+ add r7, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_02058628
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_02058738
+ add r1, r5, #0x0
+ bl FUN_0204B5FC
+ add r6, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_021F2E28
+ cmp r0, #0x1
+ beq _0205C488
+ ldr r0, [r4, #0x4]
+ cmp r6, r0
+ beq _0205C454
+ add r1, r4, #0x0
+ ldr r2, [r4, #0x0]
+ add r0, r5, #0x0
+ add r1, #0x8
+ bl FUN_021F2094
+ add r0, r5, #0x0
+ bl FUN_02058738
+ add r1, r5, #0x0
+ bl FUN_0204B61C
+ add r1, r6, #0x0
+ bl FUN_0205C53C
+ ldr r1, _0205C48C ; =0x0000FFFF
+ str r0, [r4, #0x0]
+ cmp r0, r1
+ ldr r0, [r4, #0x4]
+ beq _0205C440
+ cmp r0, #0x0
+ beq _0205C432
+ add r0, r5, #0x0
+ bl FUN_0224A528
+_0205C432:
+ add r1, r4, #0x0
+ ldr r2, [r4, #0x0]
+ add r0, r5, #0x0
+ add r1, #0x8
+ bl FUN_021F1F78
+ b _0205C450
+_0205C440:
+ cmp r0, #0x0
+ beq _0205C450
+ ldrh r0, [r7, #0x2]
+ cmp r0, #0x0
+ bne _0205C450
+ add r0, r5, #0x0
+ bl FUN_0224A528
+_0205C450:
+ mov r0, #0x0
+ strh r0, [r7, #0x2]
+_0205C454:
+ add r0, r5, #0x0
+ str r6, [r4, #0x4]
+ bl FUN_021F2E28
+ cmp r0, #0x1
+ beq _0205C488
+ ldr r1, [r4, #0x8]
+ cmp r1, #0x0
+ beq _0205C488
+ add r0, r5, #0x0
+ bl FUN_021F2F48
+ add r0, r5, #0x0
+ bl FUN_021F1DFC
+ cmp r0, #0x0
+ bne _0205C480
+ mov r1, #0x1
+ ldr r0, [r4, #0x8]
+ lsl r1, r1, #0xc
+ bl FUN_0201F854
+_0205C480:
+ ldr r1, [r4, #0x8]
+ add r0, r5, #0x0
+ bl FUN_021F2F6C
+_0205C488:
+ pop {r3-r7, pc}
+ nop
+_0205C48C: .word 0x0000FFFF
+
+ thumb_func_start FUN_0205C490
+FUN_0205C490: ; 0x0205C490
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl FUN_02058628
+ add r2, r0, #0x0
+ add r1, r2, #0x0
+ ldr r2, [r2, #0x0]
+ add r0, r4, #0x0
+ add r1, #0x8
+ bl FUN_021F2094
+ pop {r4, pc}
+
+ thumb_func_start FUN_0205C4A8
+FUN_0205C4A8: ; 0x0205C4A8
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ bl FUN_02058628
+ add r4, r0, #0x0
+ ldr r0, [r4, #0x8]
+ cmp r0, #0x0
+ beq _0205C4C0
+ add r1, r4, #0x0
+ add r1, #0xc
+ bl FUN_021F20D8
+_0205C4C0:
+ add r1, r4, #0x0
+ ldr r2, [r4, #0x0]
+ add r0, r5, #0x0
+ add r1, #0x8
+ bl FUN_021F2094
+ mov r1, #0x2
+ add r0, r5, #0x0
+ lsl r1, r1, #0x14
+ bl FUN_02058410
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_0205C4D8
+FUN_0205C4D8: ; 0x0205C4D8
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ bl FUN_02058628
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_021F2E28
+ cmp r0, #0x1
+ beq _0205C536
+ ldr r0, [r4, #0x8]
+ cmp r0, #0x0
+ bne _0205C516
+ ldr r2, [r4, #0x0]
+ ldr r0, _0205C538 ; =0x0000FFFF
+ cmp r2, r0
+ beq _0205C506
+ add r1, r4, #0x0
+ add r0, r5, #0x0
+ add r1, #0x8
+ bl FUN_021F1F78
+ b _0205C510
+_0205C506:
+ mov r1, #0x2
+ add r0, r5, #0x0
+ lsl r1, r1, #0x14
+ bl FUN_02058418
+_0205C510:
+ add r0, r5, #0x0
+ bl FUN_0224A310
+_0205C516:
+ ldr r0, [r4, #0x8]
+ cmp r0, #0x0
+ beq _0205C536
+ add r1, r4, #0x0
+ add r1, #0xc
+ bl FUN_021F20F8
+ ldr r1, [r4, #0x8]
+ add r0, r5, #0x0
+ bl FUN_021F2F48
+ mov r1, #0x2
+ add r0, r5, #0x0
+ lsl r1, r1, #0x14
+ bl FUN_02058418
+_0205C536:
+ pop {r3-r5, pc}
+ .balign 4
+_0205C538: .word 0x0000FFFF
+
+ thumb_func_start FUN_0205C53C
+FUN_0205C53C: ; 0x0205C53C
+ push {r3, lr}
+ cmp r1, #0x0
+ beq _0205C548
+ cmp r1, #0x1
+ beq _0205C54C
+ b _0205C550
+_0205C548:
+ ldr r0, _0205C590 ; =0x0000FFFF
+ pop {r3, pc}
+_0205C54C:
+ ldr r0, _0205C590 ; =0x0000FFFF
+ pop {r3, pc}
+_0205C550:
+ sub r2, r0, #0x1
+ mov r0, #0xc
+ ldr r3, _0205C594 ; =0x021F9194
+ mul r0, r2
+ add r2, r3, r0
+ cmp r1, #0x5
+ bhi _0205C588
+ add r0, r1, r1
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0205C56A: ; jump table (using 16-bit offset)
+ .short _0205C588 - _0205C56A - 2; case 0
+ .short _0205C588 - _0205C56A - 2; case 1
+ .short _0205C576 - _0205C56A - 2; case 2
+ .short _0205C57C - _0205C56A - 2; case 3
+ .short _0205C580 - _0205C56A - 2; case 4
+ .short _0205C584 - _0205C56A - 2; case 5
+_0205C576:
+ mov r0, #0x1
+ lsl r0, r0, #0xc
+ pop {r3, pc}
+_0205C57C:
+ ldr r0, [r2, #0x0]
+ pop {r3, pc}
+_0205C580:
+ ldr r0, [r2, #0x4]
+ pop {r3, pc}
+_0205C584:
+ ldr r0, [r2, #0x8]
+ pop {r3, pc}
+_0205C588:
+ bl ErrorHandling
+ ldr r0, _0205C590 ; =0x0000FFFF
+ pop {r3, pc}
+ .balign 4
+_0205C590: .word 0x0000FFFF
+_0205C594: .word 0x021F9194
+
+ thumb_func_start FUN_0205C598
+FUN_0205C598: ; 0x0205C598
+ push {r3-r7, lr}
+ sub sp, #0x58
+ add r5, r0, #0x0
+ ldr r7, [r5, #0x38]
+ add r4, r1, #0x0
+ ldr r6, [r5, #0x34]
+ add r1, sp, #0x40
+ str r1, [sp, #0x0]
+ add r1, r6, #0x0
+ add r2, r7, #0x0
+ mov r3, #0x0
+ bl FUN_0205C6BC
+ cmp r0, #0x0
+ bne _0205C5BC
+ add sp, #0x58
+ mov r0, #0x0
+ pop {r3-r7, pc}
+_0205C5BC:
+ ldr r0, [sp, #0x50]
+ cmp r0, #0x0
+ bne _0205C642
+ ldr r1, _0205C6B8 ; =0x00000F0A
+ ldr r2, [sp, #0x54]
+ add r0, r5, #0x0
+ bl FUN_02038C78
+ cmp r4, #0x0
+ beq _0205C5E4
+ add r0, sp, #0x28
+ str r0, [sp, #0x0]
+ ldr r3, [sp, #0x54]
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ add r2, r7, #0x0
+ bl FUN_0205C6BC
+ cmp r0, #0x0
+ bne _0205C604
+_0205C5E4:
+ ldr r0, [sp, #0x48]
+ str r0, [sp, #0x0]
+ ldr r0, [sp, #0x4c]
+ str r0, [sp, #0x4]
+ mov r0, #0x0
+ str r0, [sp, #0x8]
+ str r0, [sp, #0xc]
+ ldr r1, [sp, #0x54]
+ ldr r2, [sp, #0x40]
+ ldr r3, [sp, #0x44]
+ add r0, r5, #0x0
+ bl FUN_02038CA8
+ add sp, #0x58
+ mov r0, #0x1
+ pop {r3-r7, pc}
+_0205C604:
+ ldr r0, [sp, #0x48]
+ str r0, [sp, #0x0]
+ ldr r0, [sp, #0x4c]
+ str r0, [sp, #0x4]
+ mov r0, #0x2
+ str r0, [sp, #0x8]
+ mov r0, #0x0
+ str r0, [sp, #0xc]
+ ldr r1, [sp, #0x54]
+ ldr r2, [sp, #0x40]
+ ldr r3, [sp, #0x44]
+ add r0, r5, #0x0
+ bl FUN_02038CA8
+ ldr r0, [sp, #0x30]
+ str r0, [sp, #0x0]
+ ldr r0, [sp, #0x34]
+ str r0, [sp, #0x4]
+ mov r0, #0x2
+ str r0, [sp, #0x8]
+ mov r0, #0x1
+ str r0, [sp, #0xc]
+ ldr r1, [sp, #0x3c]
+ ldr r2, [sp, #0x28]
+ ldr r3, [sp, #0x2c]
+ add r0, r5, #0x0
+ bl FUN_02038CA8
+ add sp, #0x58
+ mov r0, #0x1
+ pop {r3-r7, pc}
+_0205C642:
+ cmp r0, #0x1
+ bne _0205C6AE
+ cmp r4, #0x0
+ bne _0205C650
+ add sp, #0x58
+ mov r0, #0x0
+ pop {r3-r7, pc}
+_0205C650:
+ ldr r2, [sp, #0x54]
+ ldr r3, [sp, #0x4c]
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ bl FUN_0205C9F0
+ add r1, r0, #0x0
+ ldr r2, [sp, #0x40]
+ ldr r3, [sp, #0x44]
+ add r0, sp, #0x10
+ bl FUN_0205C73C
+ ldr r1, _0205C6B8 ; =0x00000F0A
+ ldr r2, [sp, #0x54]
+ add r0, r5, #0x0
+ bl FUN_02038C78
+ ldr r0, [sp, #0x48]
+ str r0, [sp, #0x0]
+ ldr r0, [sp, #0x4c]
+ str r0, [sp, #0x4]
+ mov r0, #0x1
+ str r0, [sp, #0x8]
+ mov r0, #0x0
+ str r0, [sp, #0xc]
+ ldr r1, [sp, #0x54]
+ ldr r2, [sp, #0x40]
+ ldr r3, [sp, #0x44]
+ add r0, r5, #0x0
+ bl FUN_02038CA8
+ ldr r0, [sp, #0x18]
+ str r0, [sp, #0x0]
+ ldr r0, [sp, #0x1c]
+ str r0, [sp, #0x4]
+ mov r0, #0x1
+ str r0, [sp, #0x8]
+ str r0, [sp, #0xc]
+ ldr r1, [sp, #0x24]
+ ldr r2, [sp, #0x10]
+ ldr r3, [sp, #0x14]
+ add r0, r5, #0x0
+ bl FUN_02038CA8
+ add sp, #0x58
+ mov r0, #0x1
+ pop {r3-r7, pc}
+_0205C6AE:
+ bl ErrorHandling
+ mov r0, #0x0
+ add sp, #0x58
+ pop {r3-r7, pc}
+ .balign 4
+_0205C6B8: .word 0x00000F0A
+
+ thumb_func_start FUN_0205C6BC
+FUN_0205C6BC: ; 0x0205C6BC
+ push {r3-r7, lr}
+ sub sp, #0x10
+ add r6, r0, #0x0
+ mov r0, #0x0
+ add r5, r1, #0x0
+ add r7, r2, #0x0
+ add r4, r3, #0x0
+ str r0, [sp, #0xc]
+ str r0, [sp, #0x4]
+ add r0, r5, #0x0
+ add r1, sp, #0x4
+ add r2, sp, #0xc
+ mov r3, #0x1
+ bl FUN_020580F4
+ cmp r0, #0x0
+ beq _0205C734
+_0205C6DE:
+ cmp r4, #0x0
+ beq _0205C6E8
+ ldr r0, [sp, #0x4]
+ cmp r4, r0
+ beq _0205C724
+_0205C6E8:
+ ldr r0, [sp, #0x4]
+ add r1, r7, #0x0
+ add r2, sp, #0x8
+ bl FUN_0205C794
+ mov r1, #0x0
+ mvn r1, r1
+ str r0, [sp, #0x0]
+ cmp r0, r1
+ beq _0205C724
+ ldr r0, [sp, #0x4]
+ bl FUN_0205C9D8
+ add r1, r0, #0x0
+ lsl r1, r1, #0x10
+ add r0, r6, #0x0
+ lsr r1, r1, #0x10
+ bl FUN_02039640
+ cmp r0, #0x0
+ bne _0205C724
+ ldr r0, [sp, #0x28]
+ ldr r1, [sp, #0x4]
+ ldr r2, [sp, #0x0]
+ ldr r3, [sp, #0x8]
+ bl FUN_0205C73C
+ add sp, #0x10
+ mov r0, #0x1
+ pop {r3-r7, pc}
+_0205C724:
+ add r0, r5, #0x0
+ add r1, sp, #0x4
+ add r2, sp, #0xc
+ mov r3, #0x1
+ bl FUN_020580F4
+ cmp r0, #0x0
+ bne _0205C6DE
+_0205C734:
+ mov r0, #0x0
+ add sp, #0x10
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_0205C73C
+FUN_0205C73C: ; 0x0205C73C
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ str r2, [r5, #0x0]
+ str r3, [r5, #0x4]
+ add r0, r4, #0x0
+ bl FUN_02058498
+ str r0, [r5, #0x8]
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ bl FUN_020395F4
+ str r0, [r5, #0xc]
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ bl FUN_0203962C
+ str r0, [r5, #0x10]
+ str r4, [r5, #0x14]
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_0205C768
+FUN_0205C768: ; 0x0205C768
+ push {r3, lr}
+ bl FUN_02058488
+ cmp r0, #0x8
+ bhi _0205C792
+ add r1, r0, r0
+ add r1, pc
+ ldrh r1, [r1, #0x6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_0205C77E: ; jump table (using 16-bit offset)
+ .short _0205C792 - _0205C77E - 2; case 0
+ .short _0205C792 - _0205C77E - 2; case 1
+ .short _0205C792 - _0205C77E - 2; case 2
+ .short _0205C792 - _0205C77E - 2; case 3
+ .short _0205C790 - _0205C77E - 2; case 4
+ .short _0205C790 - _0205C77E - 2; case 5
+ .short _0205C790 - _0205C77E - 2; case 6
+ .short _0205C790 - _0205C77E - 2; case 7
+ .short _0205C790 - _0205C77E - 2; case 8
+_0205C790:
+ mov r0, #0x1
+_0205C792:
+ pop {r3, pc}
+
+ thumb_func_start FUN_0205C794
+FUN_0205C794: ; 0x0205C794
+ push {r4-r7, lr}
+ sub sp, #0x14
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ str r2, [sp, #0x8]
+ bl FUN_0205C768
+ cmp r0, #0x1
+ bne _0205C802
+ add r0, r4, #0x0
+ bl FUN_02055320
+ add r7, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_0205532C
+ add r6, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_020584C4
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ mov r1, #0x0
+ bl FUN_02058510
+ add r2, r0, #0x0
+ str r6, [sp, #0x0]
+ mov r0, #0x0
+ str r0, [sp, #0x4]
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ add r3, r7, #0x0
+ bl FUN_0205C86C
+ add r6, r0, #0x0
+ mov r0, #0x0
+ mvn r0, r0
+ cmp r6, r0
+ beq _0205C7FA
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ add r2, r6, #0x0
+ bl FUN_0205C938
+ cmp r0, #0x0
+ bne _0205C7FA
+ ldr r0, [sp, #0x8]
+ add sp, #0x14
+ str r4, [r0, #0x0]
+ add r0, r6, #0x0
+ pop {r4-r7, pc}
+_0205C7FA:
+ mov r0, #0x0
+ add sp, #0x14
+ mvn r0, r0
+ pop {r4-r7, pc}
+_0205C802:
+ cmp r0, #0x2
+ bne _0205C864
+ add r0, r4, #0x0
+ bl FUN_02055320
+ str r0, [sp, #0x10]
+ add r0, r4, #0x0
+ bl FUN_0205532C
+ add r7, r0, #0x0
+ add r0, r5, #0x0
+ mov r1, #0x0
+ bl FUN_02058510
+ str r0, [sp, #0xc]
+ mov r4, #0x0
+_0205C822:
+ str r7, [sp, #0x0]
+ mov r0, #0x0
+ str r0, [sp, #0x4]
+ ldr r2, [sp, #0xc]
+ ldr r3, [sp, #0x10]
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_0205C86C
+ add r6, r0, #0x0
+ mov r0, #0x0
+ mvn r0, r0
+ cmp r6, r0
+ beq _0205C856
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ add r2, r6, #0x0
+ bl FUN_0205C938
+ cmp r0, #0x0
+ bne _0205C856
+ ldr r0, [sp, #0x8]
+ add sp, #0x14
+ str r4, [r0, #0x0]
+ add r0, r6, #0x0
+ pop {r4-r7, pc}
+_0205C856:
+ add r4, r4, #0x1
+ cmp r4, #0x4
+ blt _0205C822
+ mov r0, #0x0
+ add sp, #0x14
+ mvn r0, r0
+ pop {r4-r7, pc}
+_0205C864:
+ mov r0, #0x0
+ mvn r0, r0
+ add sp, #0x14
+ pop {r4-r7, pc}
+
+ thumb_func_start FUN_0205C86C
+FUN_0205C86C: ; 0x0205C86C
+ push {r3-r5, lr}
+ add r4, r1, #0x0
+ ldr r1, [sp, #0x14]
+ lsl r5, r4, #0x2
+ ldr r4, _0205C884 ; =0x020F71A8
+ str r1, [sp, #0x0]
+ add r1, r2, #0x0
+ add r2, r3, #0x0
+ ldr r3, [sp, #0x10]
+ ldr r4, [r4, r5]
+ blx r4
+ pop {r3-r5, pc}
+ .balign 4
+_0205C884: .word 0x020F71A8
+
+ thumb_func_start FUN_0205C888
+FUN_0205C888: ; 0x0205C888
+ push {r3-r7, lr}
+ add r7, r0, #0x0
+ add r5, r1, #0x0
+ add r6, r2, #0x0
+ add r4, r3, #0x0
+ bl FUN_02058B2C
+ cmp r0, r6
+ bne _0205C8AE
+ add r0, r7, #0x0
+ bl FUN_02058B4C
+ cmp r4, r0
+ bge _0205C8AE
+ sub r1, r0, r5
+ cmp r4, r1
+ blt _0205C8AE
+ sub r0, r0, r4
+ pop {r3-r7, pc}
+_0205C8AE:
+ mov r0, #0x0
+ mvn r0, r0
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_0205C8B4
+FUN_0205C8B4: ; 0x0205C8B4
+ push {r3-r7, lr}
+ add r7, r0, #0x0
+ add r5, r1, #0x0
+ add r6, r2, #0x0
+ add r4, r3, #0x0
+ bl FUN_02058B2C
+ cmp r0, r6
+ bne _0205C8DA
+ add r0, r7, #0x0
+ bl FUN_02058B4C
+ cmp r4, r0
+ ble _0205C8DA
+ add r1, r0, r5
+ cmp r4, r1
+ bgt _0205C8DA
+ sub r0, r4, r0
+ pop {r3-r7, pc}
+_0205C8DA:
+ mov r0, #0x0
+ mvn r0, r0
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_0205C8E0
+FUN_0205C8E0: ; 0x0205C8E0
+ push {r3-r7, lr}
+ add r7, r0, #0x0
+ add r5, r1, #0x0
+ add r4, r2, #0x0
+ add r6, r3, #0x0
+ bl FUN_02058B4C
+ cmp r0, r6
+ bne _0205C906
+ add r0, r7, #0x0
+ bl FUN_02058B2C
+ cmp r4, r0
+ bge _0205C906
+ sub r1, r0, r5
+ cmp r4, r1
+ blt _0205C906
+ sub r0, r0, r4
+ pop {r3-r7, pc}
+_0205C906:
+ mov r0, #0x0
+ mvn r0, r0
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_0205C90C
+FUN_0205C90C: ; 0x0205C90C
+ push {r3-r7, lr}
+ add r7, r0, #0x0
+ add r5, r1, #0x0
+ add r4, r2, #0x0
+ add r6, r3, #0x0
+ bl FUN_02058B4C
+ cmp r0, r6
+ bne _0205C932
+ add r0, r7, #0x0
+ bl FUN_02058B2C
+ cmp r4, r0
+ ble _0205C932
+ add r1, r0, r5
+ cmp r4, r1
+ bgt _0205C932
+ sub r0, r4, r0
+ pop {r3-r7, pc}
+_0205C932:
+ mov r0, #0x0
+ mvn r0, r0
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_0205C938
+FUN_0205C938: ; 0x0205C938
+ push {r3-r7, lr}
+ sub sp, #0x18
+ add r5, r1, #0x0
+ str r0, [sp, #0x4]
+ str r2, [sp, #0x8]
+ cmp r2, #0x0
+ bne _0205C94C
+ add sp, #0x18
+ mov r0, #0x1
+ pop {r3-r7, pc}
+_0205C94C:
+ bl FUN_02058B2C
+ add r4, r0, #0x0
+ ldr r0, [sp, #0x4]
+ bl FUN_02058B4C
+ add r7, r0, #0x0
+ ldr r0, [sp, #0x4]
+ bl FUN_02058B3C
+ str r0, [sp, #0xc]
+ add r0, r5, #0x0
+ bl FUN_02059BF4
+ add r6, r4, r0
+ add r0, r5, #0x0
+ bl FUN_02059C00
+ add r4, r7, r0
+ ldr r0, [sp, #0x8]
+ mov r7, #0x0
+ sub r0, r0, #0x1
+ str r0, [sp, #0x10]
+ cmp r0, #0x0
+ ble _0205C9B4
+ mov r0, #0x1
+ str r0, [sp, #0x14]
+_0205C982:
+ ldr r0, [sp, #0x4]
+ ldr r2, [sp, #0xc]
+ add r1, r6, #0x0
+ add r3, r4, #0x0
+ str r5, [sp, #0x0]
+ bl FUN_020598F0
+ ldr r1, [sp, #0x14]
+ bic r0, r1
+ beq _0205C99C
+ add sp, #0x18
+ mov r0, #0x1
+ pop {r3-r7, pc}
+_0205C99C:
+ add r0, r5, #0x0
+ bl FUN_02059BF4
+ add r6, r6, r0
+ add r0, r5, #0x0
+ bl FUN_02059C00
+ add r4, r4, r0
+ ldr r0, [sp, #0x10]
+ add r7, r7, #0x1
+ cmp r7, r0
+ blt _0205C982
+_0205C9B4:
+ ldr r0, [sp, #0x4]
+ ldr r2, [sp, #0xc]
+ add r1, r6, #0x0
+ add r3, r4, #0x0
+ str r5, [sp, #0x0]
+ bl FUN_020598F0
+ mov r1, #0x1
+ bic r0, r1
+ cmp r0, #0x4
+ bne _0205C9D0
+ add sp, #0x18
+ mov r0, #0x0
+ pop {r3-r7, pc}
+_0205C9D0:
+ mov r0, #0x1
+ add sp, #0x18
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_0205C9D8
+FUN_0205C9D8: ; 0x0205C9D8
+ push {r3, lr}
+ bl FUN_02058498
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ bl FUN_020395F4
+ pop {r3, pc}
+
+ thumb_func_start FUN_0205C9E8
+FUN_0205C9E8: ; 0x0205C9E8
+ ldr r3, _0205C9EC ; =FUN_0205C9D8
+ bx r3
+ .balign 4
+_0205C9EC: .word FUN_0205C9D8
+
+ thumb_func_start FUN_0205C9F0
+FUN_0205C9F0: ; 0x0205C9F0
+ push {r3-r7, lr}
+ sub sp, #0x8
+ add r5, r1, #0x0
+ mov r0, #0x0
+ add r4, r2, #0x0
+ add r6, r3, #0x0
+ str r0, [sp, #0x4]
+ add r0, r5, #0x0
+ add r1, sp, #0x0
+ add r2, sp, #0x4
+ mov r3, #0x1
+ bl FUN_020580F4
+ cmp r0, #0x0
+ beq _0205CA40
+ add r7, sp, #0x0
+_0205CA10:
+ ldr r0, [sp, #0x0]
+ cmp r0, r4
+ beq _0205CA30
+ bl FUN_0205C768
+ sub r0, r0, #0x1
+ cmp r0, #0x1
+ bhi _0205CA30
+ ldr r0, [sp, #0x0]
+ bl FUN_0205C9D8
+ cmp r6, r0
+ bne _0205CA30
+ ldr r0, [sp, #0x0]
+ add sp, #0x8
+ pop {r3-r7, pc}
+_0205CA30:
+ add r0, r5, #0x0
+ add r1, r7, #0x0
+ add r2, sp, #0x4
+ mov r3, #0x1
+ bl FUN_020580F4
+ cmp r0, #0x0
+ bne _0205CA10
+_0205CA40:
+ bl ErrorHandling
+ mov r0, #0x0
+ add sp, #0x8
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_0205CA4C
+FUN_0205CA4C: ; 0x0205CA4C
+ push {r3-r4, lr}
+ sub sp, #0xc
+ ldr r4, [sp, #0x18]
+ str r4, [sp, #0x0]
+ ldr r4, [sp, #0x1c]
+ str r4, [sp, #0x4]
+ ldr r4, [sp, #0x20]
+ str r4, [sp, #0x8]
+ bl FUN_0205CA80
+ add sp, #0xc
+ pop {r3-r4, pc}
+
+ thumb_func_start FUN_0205CA64
+FUN_0205CA64: ; 0x0205CA64
+ push {r4, lr}
+ add r4, r0, #0x0
+ bne _0205CA6E
+ bl ErrorHandling
+_0205CA6E:
+ add r0, r4, #0x0
+ bl FUN_0205CAD4
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0205CA78
+FUN_0205CA78: ; 0x0205CA78
+ ldr r3, _0205CA7C ; =FUN_0205CAE0
+ bx r3
+ .balign 4
+_0205CA7C: .word FUN_0205CAE0
+
+ thumb_func_start FUN_0205CA80
+FUN_0205CA80: ; 0x0205CA80
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ add r6, r1, #0x0
+ mov r0, #0x4
+ mov r1, #0x2c
+ add r7, r2, #0x0
+ str r3, [sp, #0x0]
+ bl FUN_020169D8
+ add r4, r0, #0x0
+ bne _0205CA9A
+ bl ErrorHandling
+_0205CA9A:
+ add r0, r4, #0x0
+ mov r1, #0x0
+ mov r2, #0x2c
+ blx Call_FillMemWithValue
+ ldr r0, [sp, #0x0]
+ str r7, [r4, #0x8]
+ str r0, [r4, #0xc]
+ ldr r0, [sp, #0x18]
+ add r1, r4, #0x0
+ str r0, [r4, #0x10]
+ ldr r0, [sp, #0x1c]
+ mov r2, #0xff
+ str r0, [r4, #0x14]
+ ldr r0, [sp, #0x20]
+ str r0, [r4, #0x18]
+ str r5, [r4, #0x24]
+ ldr r0, _0205CAD0 ; =FUN_0205CAF8
+ str r6, [r4, #0x28]
+ bl FUN_0200CA44
+ add r4, r0, #0x0
+ bne _0205CACC
+ bl ErrorHandling
+_0205CACC:
+ add r0, r4, #0x0
+ pop {r3-r7, pc}
+ .balign 4
+_0205CAD0: .word FUN_0205CAF8
+
+ thumb_func_start FUN_0205CAD4
+FUN_0205CAD4: ; 0x0205CAD4
+ push {r3, lr}
+ bl FUN_0201B6C8
+ ldr r0, [r0, #0x4]
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_0205CAE0
+FUN_0205CAE0: ; 0x0205CAE0
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl FUN_0201B6C8
+ add r1, r0, #0x0
+ mov r0, #0x4
+ bl FUN_02016A8C
+ add r0, r4, #0x0
+ bl FUN_0200CAB4
+ pop {r4, pc}
+
+ thumb_func_start FUN_0205CAF8
+FUN_0205CAF8: ; 0x0205CAF8
+ push {r3-r5, lr}
+ ldr r4, _0205CB10 ; =0x020F71B8
+ add r5, r1, #0x0
+_0205CAFE:
+ ldr r1, [r5, #0x0]
+ add r0, r5, #0x0
+ lsl r1, r1, #0x2
+ ldr r1, [r4, r1]
+ blx r1
+ cmp r0, #0x1
+ beq _0205CAFE
+ pop {r3-r5, pc}
+ nop
+_0205CB10: .word 0x020F71B8
+
+ thumb_func_start FUN_0205CB14
+FUN_0205CB14: ; 0x0205CB14
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ ldr r4, [r5, #0x24]
+ add r0, r4, #0x0
+ bl FUN_02058854
+ cmp r0, #0x1
+ bne _0205CB2A
+ add r0, r4, #0x0
+ bl FUN_02058914
+_0205CB2A:
+ mov r0, #0x1
+ str r0, [r5, #0x0]
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_0205CB30
+FUN_0205CB30: ; 0x0205CB30
+ push {r3-r5, lr}
+ add r4, r0, #0x0
+ ldr r5, [r4, #0x24]
+ add r0, r5, #0x0
+ bl FUN_02058854
+ cmp r0, #0x1
+ bne _0205CB44
+ mov r0, #0x0
+ pop {r3-r5, pc}
+_0205CB44:
+ ldr r0, [r4, #0x24]
+ ldr r1, [r4, #0x8]
+ bl FUN_021F1EC0
+ add r0, r5, #0x0
+ mov r1, #0x40
+ bl FUN_02058410
+ mov r0, #0x2
+ str r0, [r4, #0x0]
+ mov r0, #0x1
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_0205CB5C
+FUN_0205CB5C: ; 0x0205CB5C
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r0, [r4, #0x28]
+ bl FUN_020553A0
+ bl FUN_0205AE28
+ cmp r0, #0x0
+ bne _0205CB72
+ mov r0, #0x0
+ pop {r4, pc}
+_0205CB72:
+ ldr r0, [r4, #0x24]
+ bl FUN_02058480
+ sub r0, #0x33
+ cmp r0, #0x3
+ bhi _0205CB9A
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0205CB8A: ; jump table (using 16-bit offset)
+ .short _0205CB92 - _0205CB8A - 2; case 0
+ .short _0205CB92 - _0205CB8A - 2; case 1
+ .short _0205CB92 - _0205CB8A - 2; case 2
+ .short _0205CB92 - _0205CB8A - 2; case 3
+_0205CB92:
+ mov r0, #0x7
+ str r0, [r4, #0x0]
+ mov r0, #0x1
+ pop {r4, pc}
+_0205CB9A:
+ mov r0, #0x3
+ str r0, [r4, #0x0]
+ mov r0, #0x1
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0205CBA4
+FUN_0205CBA4: ; 0x0205CBA4
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r0, [r4, #0x24]
+ bl FUN_0205AD98
+ cmp r0, #0x0
+ bne _0205CBB6
+ mov r0, #0x0
+ pop {r4, pc}
+_0205CBB6:
+ mov r0, #0x0
+ ldr r1, [r4, #0x8]
+ mvn r0, r0
+ cmp r1, r0
+ bne _0205CBC4
+ bl ErrorHandling
+_0205CBC4:
+ ldr r0, [r4, #0x8]
+ mov r1, #0x0
+ bl FUN_0205AFDC
+ add r1, r0, #0x0
+ ldr r0, [r4, #0x24]
+ bl FUN_0205ADDC
+ mov r0, #0x4
+ str r0, [r4, #0x0]
+ mov r0, #0x0
+ pop {r4, pc}
+
+ thumb_func_start FUN_0205CBDC
+FUN_0205CBDC: ; 0x0205CBDC
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r0, [r4, #0x24]
+ bl FUN_0205AE28
+ cmp r0, #0x0
+ bne _0205CBEE
+ mov r0, #0x0
+ pop {r4, pc}
+_0205CBEE:
+ mov r0, #0x5
+ str r0, [r4, #0x0]
+ mov r0, #0x1
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0205CBF8
+FUN_0205CBF8: ; 0x0205CBF8
+ push {r4, lr}
+ add r4, r0, #0x0
+ mov r1, #0x0
+ ldr r0, [r4, #0x24]
+ add r2, r1, #0x0
+ bl FUN_021E7AC0
+ str r0, [r4, #0x20]
+ mov r0, #0x6
+ str r0, [r4, #0x0]
+ mov r0, #0x0
+ pop {r4, pc}
+
+ thumb_func_start FUN_0205CC10
+FUN_0205CC10: ; 0x0205CC10
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r0, [r4, #0x20]
+ bl FUN_021E799C
+ cmp r0, #0x1
+ bne _0205CC28
+ ldr r0, [r4, #0x20]
+ bl FUN_02064520
+ mov r0, #0x9
+ str r0, [r4, #0x0]
+_0205CC28:
+ mov r0, #0x0
+ pop {r4, pc}
+
+ thumb_func_start FUN_0205CC2C
+FUN_0205CC2C: ; 0x0205CC2C
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r0, [r4, #0x24]
+ mov r1, #0x65
+ bl FUN_0205ADDC
+ mov r0, #0x8
+ str r0, [r4, #0x0]
+ mov r0, #0x0
+ pop {r4, pc}
+
+ thumb_func_start FUN_0205CC40
+FUN_0205CC40: ; 0x0205CC40
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r0, [r4, #0x24]
+ bl FUN_0205AE28
+ cmp r0, #0x1
+ bne _0205CC52
+ mov r0, #0x9
+ str r0, [r4, #0x0]
+_0205CC52:
+ mov r0, #0x0
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0205CC58
+FUN_0205CC58: ; 0x0205CC58
+ ldr r1, [r0, #0x1c]
+ add r1, r1, #0x1
+ str r1, [r0, #0x1c]
+ cmp r1, #0x1e
+ blt _0205CC6A
+ mov r1, #0x0
+ str r1, [r0, #0x1c]
+ mov r1, #0xa
+ str r1, [r0, #0x0]
+_0205CC6A:
+ mov r0, #0x0
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_0205CC70
+FUN_0205CC70: ; 0x0205CC70
+ ldr r1, [r0, #0xc]
+ cmp r1, #0x1
+ bgt _0205CC7E
+ mov r1, #0xd
+ str r1, [r0, #0x0]
+ mov r0, #0x1
+ bx lr
+_0205CC7E:
+ mov r1, #0xb
+ str r1, [r0, #0x0]
+ mov r0, #0x1
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_0205CC88
+FUN_0205CC88: ; 0x0205CC88
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r0, [r4, #0x24]
+ bl FUN_0205AD98
+ cmp r0, #0x1
+ bne _0205CCAA
+ ldr r0, [r4, #0x8]
+ mov r1, #0xc
+ bl FUN_0205AFDC
+ add r1, r0, #0x0
+ ldr r0, [r4, #0x24]
+ bl FUN_0205ADDC
+ mov r0, #0xc
+ str r0, [r4, #0x0]
+_0205CCAA:
+ mov r0, #0x0
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0205CCB0
+FUN_0205CCB0: ; 0x0205CCB0
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r0, [r4, #0x24]
+ bl FUN_0205AE28
+ cmp r0, #0x0
+ bne _0205CCC2
+ mov r0, #0x0
+ pop {r4, pc}
+_0205CCC2:
+ ldr r0, [r4, #0xc]
+ sub r0, r0, #0x1
+ str r0, [r4, #0xc]
+ mov r0, #0xa
+ str r0, [r4, #0x0]
+ mov r0, #0x1
+ pop {r4, pc}
+
+ thumb_func_start FUN_0205CCD0
+FUN_0205CCD0: ; 0x0205CCD0
+ ldr r1, [r0, #0x1c]
+ add r1, r1, #0x1
+ str r1, [r0, #0x1c]
+ cmp r1, #0x8
+ bge _0205CCDE
+ mov r0, #0x0
+ bx lr
+_0205CCDE:
+ mov r1, #0x0
+ str r1, [r0, #0x1c]
+ mov r1, #0xe
+ str r1, [r0, #0x0]
+ mov r0, #0x1
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_0205CCEC
+FUN_0205CCEC: ; 0x0205CCEC
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ ldr r0, [r5, #0x28]
+ bl FUN_020553A0
+ add r4, r0, #0x0
+ bl FUN_02058B2C
+ add r6, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_02058B4C
+ add r7, r0, #0x0
+ ldr r0, [r5, #0x24]
+ bl FUN_02058B2C
+ str r0, [sp, #0x0]
+ ldr r0, [r5, #0x24]
+ bl FUN_02058B4C
+ add r3, r0, #0x0
+ ldr r2, [sp, #0x0]
+ add r0, r6, #0x0
+ add r1, r7, #0x0
+ bl FUN_02059E80
+ add r6, r0, #0x0
+ ldr r0, [r5, #0x28]
+ bl FUN_020552F8
+ cmp r6, r0
+ beq _0205CD60
+ ldr r0, [r5, #0x18]
+ cmp r0, #0x0
+ beq _0205CD38
+ ldr r0, [r5, #0x14]
+ cmp r0, #0x2
+ bne _0205CD60
+_0205CD38:
+ add r0, r4, #0x0
+ bl FUN_0205AD98
+ cmp r0, #0x1
+ bne _0205CD64
+ add r0, r4, #0x0
+ mov r1, #0x80
+ bl FUN_02058418
+ add r0, r6, #0x0
+ mov r1, #0x0
+ bl FUN_0205AFDC
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_0205ADDC
+ mov r0, #0xf
+ str r0, [r5, #0x0]
+ b _0205CD64
+_0205CD60:
+ mov r0, #0x10
+ str r0, [r5, #0x0]
+_0205CD64:
+ mov r0, #0x0
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_0205CD68
+FUN_0205CD68: ; 0x0205CD68
+ push {r3-r5, lr}
+ add r4, r0, #0x0
+ ldr r0, [r4, #0x28]
+ bl FUN_020553A0
+ add r5, r0, #0x0
+ bl FUN_0205AE28
+ cmp r0, #0x0
+ bne _0205CD80
+ mov r0, #0x0
+ pop {r3-r5, pc}
+_0205CD80:
+ add r0, r5, #0x0
+ bl FUN_0205AE50
+ mov r0, #0x10
+ str r0, [r4, #0x0]
+ mov r0, #0x1
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_0205CD90
+FUN_0205CD90: ; 0x0205CD90
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r0, [r4, #0x24]
+ bl FUN_0205AE50
+ ldr r0, [r4, #0x24]
+ mov r1, #0x0
+ bl FUN_02058E90
+ mov r0, #0x11
+ str r0, [r4, #0x0]
+ mov r0, #0x1
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0205CDAC
+FUN_0205CDAC: ; 0x0205CDAC
+ mov r1, #0x1
+ str r1, [r0, #0x4]
+ mov r0, #0x0
+ bx lr
+
+ thumb_func_start FUN_0205CDB4
+FUN_0205CDB4: ; 0x0205CDB4
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl FUN_020377AC
+ bl FUN_02024ED8
+ bl FUN_020254B4
+ add r1, r0, #0x0
+ beq _0205CDD2
+ lsl r2, r1, #0x2
+ ldr r1, _0205CDD4 ; =0x020F7220
+ add r0, r4, #0x0
+ ldr r1, [r1, r2]
+ blx r1
+_0205CDD2:
+ pop {r4, pc}
+ .balign 4
+_0205CDD4: .word 0x020F7220
+
+ thumb_func_start FUN_0205CDD8
+FUN_0205CDD8: ; 0x0205CDD8
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl FUN_020377AC
+ bl FUN_02024ED8
+ bl FUN_020254B4
+ cmp r0, #0x0
+ beq _0205CDFA
+ lsl r1, r0, #0x2
+ ldr r0, _0205CDFC ; =0x020F7200
+ ldr r1, [r0, r1]
+ cmp r1, #0x0
+ beq _0205CDFA
+ add r0, r4, #0x0
+ blx r1
+_0205CDFA:
+ pop {r4, pc}
+ .balign 4
+_0205CDFC: .word 0x020F7200
+
+ thumb_func_start FUN_0205CE00
+FUN_0205CE00: ; 0x0205CE00
+ push {r3-r7, lr}
+ sub sp, #0x8
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ add r7, r2, #0x0
+ str r3, [sp, #0x4]
+ bl FUN_020377AC
+ bl FUN_02024ED8
+ bl FUN_020254B4
+ cmp r0, #0x0
+ bne _0205CE22
+ add sp, #0x8
+ mov r0, #0x0
+ pop {r3-r7, pc}
+_0205CE22:
+ lsl r1, r0, #0x2
+ ldr r0, _0205CE44 ; =0x020F7240
+ ldr r6, [r0, r1]
+ cmp r6, #0x0
+ beq _0205CE3E
+ ldr r0, [sp, #0x20]
+ ldr r3, [sp, #0x4]
+ str r0, [sp, #0x0]
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ add r2, r7, #0x0
+ blx r6
+ add sp, #0x8
+ pop {r3-r7, pc}
+_0205CE3E:
+ mov r0, #0x0
+ add sp, #0x8
+ pop {r3-r7, pc}
+ .balign 4
+_0205CE44: .word 0x020F7240
+
+ thumb_func_start FUN_0205CE48
+FUN_0205CE48: ; 0x0205CE48
+ cmp r0, #0x0
+ bne _0205CE58
+ mov r0, #0xc
+ add r2, r1, #0x0
+ mul r2, r0
+ ldr r0, _0205CE74 ; =0x020F7260
+ ldr r0, [r0, r2]
+ bx lr
+_0205CE58:
+ cmp r0, #0x1
+ bne _0205CE68
+ mov r0, #0xc
+ add r2, r1, #0x0
+ mul r2, r0
+ ldr r0, _0205CE78 ; =0x020F7264
+ ldr r0, [r0, r2]
+ bx lr
+_0205CE68:
+ mov r0, #0xc
+ add r2, r1, #0x0
+ mul r2, r0
+ ldr r0, _0205CE7C ; =0x020F7268
+ ldr r0, [r0, r2]
+ bx lr
+ .balign 4
+_0205CE74: .word 0x020F7260
+_0205CE78: .word 0x020F7264
+_0205CE7C: .word 0x020F7268
+
+ thumb_func_start FUN_0205CE80
+FUN_0205CE80: ; 0x0205CE80
+ push {r3-r7, lr}
+ add r4, r0, #0x0
+ add r5, r1, #0x0
+ str r4, [r5, #0x18]
+ ldr r0, [r4, #0x1c]
+ ldr r0, [r0, #0x0]
+ str r0, [r5, #0x0]
+ ldr r0, [r4, #0xc]
+ bl FUN_020462AC
+ bl FUN_0205ED3C
+ str r0, [r5, #0x4]
+ ldr r0, [r4, #0x38]
+ bl FUN_020553C4
+ str r0, [r5, #0x8]
+ ldr r0, [r4, #0x38]
+ bl FUN_02055320
+ add r6, r0, #0x0
+ ldr r0, [r4, #0x38]
+ bl FUN_0205532C
+ add r7, r0, #0x0
+ add r0, r4, #0x0
+ add r1, r6, #0x0
+ add r2, r7, #0x0
+ bl FUN_0204A6E0
+ strh r0, [r5, #0xe]
+ ldr r0, [r4, #0x38]
+ bl FUN_020552F8
+ cmp r0, #0x3
+ bhi _0205CEEA
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0205CED4: ; jump table (using 16-bit offset)
+ .short _0205CEDC - _0205CED4 - 2; case 0
+ .short _0205CEE0 - _0205CED4 - 2; case 1
+ .short _0205CEE8 - _0205CED4 - 2; case 2
+ .short _0205CEE4 - _0205CED4 - 2; case 3
+_0205CEDC:
+ sub r7, r7, #0x1
+ b _0205CEEA
+_0205CEE0:
+ add r7, r7, #0x1
+ b _0205CEEA
+_0205CEE4:
+ add r6, r6, #0x1
+ b _0205CEEA
+_0205CEE8:
+ sub r6, r6, #0x1
+_0205CEEA:
+ add r0, r4, #0x0
+ add r1, r6, #0x0
+ add r2, r7, #0x0
+ bl FUN_0204A6E0
+ strh r0, [r5, #0xc]
+ add r0, r4, #0x0
+ add r1, sp, #0x0
+ bl FUN_02037024
+ ldr r1, [sp, #0x0]
+ add r0, r4, #0x0
+ bl FUN_0204B6C4
+ strh r0, [r5, #0x10]
+ ldr r0, [r4, #0x38]
+ str r0, [r5, #0x14]
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_0205CF10
+FUN_0205CF10: ; 0x0205CF10
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ mov r0, #0x20
+ mov r1, #0xc
+ add r6, r2, #0x0
+ add r7, r3, #0x0
+ bl FUN_02016998
+ str r5, [r0, #0x0]
+ strh r4, [r0, #0x4]
+ strh r6, [r0, #0x6]
+ strh r7, [r0, #0x8]
+ add r1, sp, #0x8
+ ldrh r1, [r1, #0x10]
+ strh r1, [r0, #0xa]
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_0205CF34
+FUN_0205CF34: ; 0x0205CF34
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ ldr r0, [r5, #0x0]
+ add r6, r2, #0x0
+ bl FUN_02046528
+ add r7, r0, #0x0
+ ldr r0, [r5, #0x0]
+ bl FUN_0204652C
+ add r4, r0, #0x0
+ add r0, r7, #0x0
+ bl FUN_0204649C
+ mov r0, #0x72
+ mov r2, #0x0
+ ldr r1, _0205CF74 ; =FUN_0205CFA0
+ lsl r0, r0, #0x2
+ str r1, [r4, r0]
+ str r2, [sp, #0x0]
+ ldrh r1, [r5, #0x4]
+ add r0, r6, #0x0
+ add r3, r2, #0x0
+ bl FUN_0205CF10
+ mov r1, #0x7e
+ lsl r1, r1, #0x2
+ str r0, [r4, r1]
+ mov r0, #0xa
+ strh r0, [r4, #0x2a]
+ pop {r3-r7, pc}
+ nop
+_0205CF74: .word FUN_0205CFA0
+
+ thumb_func_start FUN_0205CF78
+FUN_0205CF78: ; 0x0205CF78
+ push {r3-r4, lr}
+ sub sp, #0x4
+ mov r2, #0x0
+ add r4, r0, #0x0
+ str r2, [sp, #0x0]
+ add r0, r1, #0x0
+ ldrh r1, [r4, #0x28]
+ add r3, r2, #0x0
+ bl FUN_0205CF10
+ add r2, r0, #0x0
+ ldr r0, [r4, #0x0]
+ ldr r1, _0205CF9C ; =FUN_0205CFA0
+ bl FUN_020463CC
+ add sp, #0x4
+ pop {r3-r4, pc}
+ nop
+_0205CF9C: .word FUN_0205CFA0
+
+ thumb_func_start FUN_0205CFA0
+FUN_0205CFA0: ; 0x0205CFA0
+ push {r3-r7, lr}
+ add r7, r0, #0x0
+ bl FUN_02046528
+ add r5, r0, #0x0
+ add r0, r7, #0x0
+ bl FUN_0204652C
+ add r4, r0, #0x0
+ add r0, r7, #0x0
+ bl FUN_02046530
+ add r6, r0, #0x0
+ ldr r0, [r6, #0x0]
+ cmp r0, #0x0
+ beq _0205CFC6
+ cmp r0, #0x1
+ beq _0205D016
+ b _0205D020
+_0205CFC6:
+ add r0, r5, #0x0
+ add r1, sp, #0x0
+ bl FUN_02037024
+ ldr r1, [r4, #0x0]
+ ldr r2, [sp, #0x0]
+ lsl r1, r1, #0x10
+ add r0, r7, #0x0
+ lsr r1, r1, #0x10
+ mov r3, #0x0
+ bl FUN_02038CD8
+ add r0, r5, #0x0
+ mov r1, #0x29
+ bl FUN_02039438
+ ldrh r1, [r4, #0x4]
+ strh r1, [r0, #0x0]
+ add r0, r5, #0x0
+ mov r1, #0x2a
+ bl FUN_02039438
+ ldrh r1, [r4, #0x6]
+ strh r1, [r0, #0x0]
+ add r0, r5, #0x0
+ mov r1, #0x2b
+ bl FUN_02039438
+ ldrh r1, [r4, #0x8]
+ strh r1, [r0, #0x0]
+ add r0, r5, #0x0
+ mov r1, #0x2c
+ bl FUN_02039438
+ ldrh r1, [r4, #0xa]
+ strh r1, [r0, #0x0]
+ ldr r0, [r6, #0x0]
+ add r0, r0, #0x1
+ str r0, [r6, #0x0]
+ b _0205D020
+_0205D016:
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ mov r0, #0x1
+ pop {r3-r7, pc}
+_0205D020:
+ mov r0, #0x0
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_0205D024
+FUN_0205D024: ; 0x0205D024
+ push {r3-r7, lr}
+ add r6, r0, #0x0
+ ldr r0, [r6, #0x0]
+ bl FUN_02046528
+ add r5, r0, #0x0
+ ldr r0, [r6, #0x0]
+ bl FUN_0204652C
+ add r7, r0, #0x0
+ mov r0, #0xb
+ mov r1, #0x40
+ bl FUN_02016998
+ mov r1, #0x0
+ mov r2, #0x40
+ add r4, r0, #0x0
+ blx Call_FillMemWithValue
+ ldr r0, [r5, #0xc]
+ bl FUN_0206BB1C
+ str r0, [r4, #0x0]
+ ldr r0, [r5, #0xc]
+ bl FUN_0206F158
+ str r0, [r4, #0x4]
+ ldr r0, [r5, #0xc]
+ bl FUN_02025838
+ str r0, [r4, #0x8]
+ ldr r0, [r5, #0xc]
+ bl LoadPlayerDataAddress
+ str r0, [r4, #0xc]
+ ldr r0, [r5, #0xc]
+ bl FUN_02022504
+ str r0, [r4, #0x10]
+ mov r0, #0x7a
+ lsl r0, r0, #0x2
+ add r0, r7, r0
+ str r0, [r4, #0x18]
+ add r0, r4, #0x0
+ mov r1, #0x0
+ add r0, #0x21
+ strb r1, [r0, #0x0]
+ add r0, r4, #0x0
+ mov r1, #0x5
+ add r0, #0x20
+ strb r1, [r0, #0x0]
+ str r5, [r4, #0x1c]
+ ldrh r0, [r6, #0x4]
+ add r2, r4, #0x0
+ strh r0, [r4, #0x24]
+ add r0, r4, #0x0
+ ldrb r1, [r6, #0x6]
+ add r0, #0x22
+ strb r1, [r0, #0x0]
+ ldr r1, _0205D0B4 ; =0x020F96DC
+ add r0, r5, #0x0
+ bl FUN_020373D4
+ mov r0, #0x7e
+ lsl r0, r0, #0x2
+ str r4, [r7, r0]
+ ldr r1, _0205D0B8 ; =FUN_02035E50
+ add r0, r7, #0x0
+ bl FUN_02035D04
+ pop {r3-r7, pc}
+ nop
+_0205D0B4: .word 0x020F96DC
+_0205D0B8: .word FUN_02035E50
+
+ thumb_func_start FUN_0205D0BC
+FUN_0205D0BC: ; 0x0205D0BC
+ push {r3-r5, lr}
+ add r4, r0, #0x0
+ ldr r0, [r4, #0x0]
+ bl FUN_02046528
+ add r5, r0, #0x0
+ ldr r0, [r4, #0x0]
+ bl FUN_0204652C
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_02037EB8
+ mov r1, #0x7e
+ lsl r1, r1, #0x2
+ str r0, [r4, r1]
+ ldr r1, _0205D0E8 ; =FUN_02036A78
+ add r0, r4, #0x0
+ bl FUN_02035D04
+ pop {r3-r5, pc}
+ nop
+_0205D0E8: .word FUN_02036A78
+
+ thumb_func_start FUN_0205D0EC
+FUN_0205D0EC: ; 0x0205D0EC
+ push {r3, lr}
+ ldr r1, _0205D0F8 ; =FUN_0205D0FC
+ bl FUN_0205DD04
+ mov r0, #0x1
+ pop {r3, pc}
+ .balign 4
+_0205D0F8: .word FUN_0205D0FC
+
+ thumb_func_start FUN_0205D0FC
+FUN_0205D0FC: ; 0x0205D0FC
+ ldr r3, _0205D100 ; =FUN_02037EB8
+ bx r3
+ .balign 4
+_0205D100: .word FUN_02037EB8
+
+ thumb_func_start FUN_0205D104
+FUN_0205D104: ; 0x0205D104
+ push {r3-r5, lr}
+ add r4, r0, #0x0
+ ldr r0, [r4, #0x0]
+ bl FUN_02046528
+ add r5, r0, #0x0
+ ldr r0, [r4, #0x0]
+ bl FUN_0204652C
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_0204649C
+ mov r0, #0x72
+ ldr r1, _0205D140 ; =FUN_02049844
+ lsl r0, r0, #0x2
+ str r1, [r4, r0]
+ add r0, r5, #0x0
+ bl FUN_0204976C
+ mov r1, #0x7e
+ lsl r1, r1, #0x2
+ str r0, [r4, r1]
+ mov r0, #0xa
+ strh r0, [r4, #0x2a]
+ mov r0, #0x0
+ add r5, #0x8c
+ str r0, [r5, #0x0]
+ pop {r3-r5, pc}
+ nop
+_0205D140: .word FUN_02049844
+
+ thumb_func_start FUN_0205D144
+FUN_0205D144: ; 0x0205D144
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ ldr r0, [r5, #0x0]
+ bl FUN_0204976C
+ add r4, r0, #0x0
+ ldr r0, [r5, #0x0]
+ ldr r0, [r0, #0x34]
+ bl FUN_02058780
+ ldr r0, [r5, #0x0]
+ ldr r1, _0205D16C ; =FUN_02049844
+ add r2, r4, #0x0
+ bl FUN_020463CC
+ ldr r1, [r5, #0x0]
+ mov r0, #0x0
+ add r1, #0x8c
+ str r0, [r1, #0x0]
+ pop {r3-r5, pc}
+ .balign 4
+_0205D16C: .word FUN_02049844
+
+ thumb_func_start FUN_0205D170
+FUN_0205D170: ; 0x0205D170
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ ldr r0, [r5, #0x0]
+ bl FUN_02034824
+ cmp r0, #0x0
+ bne _0205D184
+ mov r0, #0x0
+ mvn r0, r0
+ pop {r3-r5, pc}
+_0205D184:
+ ldr r0, [r5, #0x0]
+ bl FUN_02034908
+ cmp r0, #0x0
+ bne _0205D194
+ mov r0, #0x0
+ mvn r0, r0
+ pop {r3-r5, pc}
+_0205D194:
+ ldr r0, [r5, #0x14]
+ bl FUN_02055738
+ cmp r0, #0x1
+ bne _0205D1A4
+ mov r0, #0x0
+ mvn r0, r0
+ pop {r3-r5, pc}
+_0205D1A4:
+ ldr r0, [r5, #0x18]
+ ldr r0, [r0, #0xc]
+ bl FUN_020462AC
+ bl FUN_0205F214
+ cmp r0, #0x1
+ beq _0205D1C4
+ ldr r0, [r5, #0x18]
+ ldr r0, [r0, #0xc]
+ bl FUN_020462AC
+ bl FUN_0205F244
+ cmp r0, #0x1
+ bne _0205D1CA
+_0205D1C4:
+ mov r0, #0x0
+ mvn r0, r0
+ pop {r3-r5, pc}
+_0205D1CA:
+ ldr r0, [r5, #0x14]
+ bl FUN_020553C4
+ cmp r0, #0x2
+ bne _0205D1DA
+ mov r0, #0x0
+ mvn r0, r0
+ pop {r3-r5, pc}
+_0205D1DA:
+ ldrh r0, [r5, #0xe]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_02054B78
+ cmp r0, #0x1
+ bne _0205D1EE
+ mov r0, #0x0
+ mvn r0, r0
+ pop {r3-r5, pc}
+_0205D1EE:
+ ldr r0, [r5, #0x18]
+ ldr r0, [r0, #0x38]
+ bl FUN_02055320
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+ ldr r0, [r5, #0x18]
+ ldr r0, [r0, #0x38]
+ bl FUN_0205532C
+ lsl r0, r0, #0x10
+ lsr r2, r0, #0x10
+ ldr r0, [r5, #0x18]
+ add r1, r4, #0x0
+ bl FUN_02034D44
+ cmp r0, #0x0
+ bne _0205D218
+ mov r0, #0x0
+ mvn r0, r0
+ pop {r3-r5, pc}
+_0205D218:
+ mov r0, #0x0
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_0205D21C
+FUN_0205D21C: ; 0x0205D21C
+ push {r3-r5, lr}
+ add r4, r0, #0x0
+ ldr r0, [r4, #0x0]
+ bl FUN_02046528
+ add r5, r0, #0x0
+ ldr r0, [r4, #0x0]
+ bl FUN_0204652C
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_0204649C
+ mov r0, #0x72
+ ldr r1, _0205D24C ; =FUN_0205D264
+ lsl r0, r0, #0x2
+ str r1, [r4, r0]
+ mov r1, #0x0
+ add r0, #0x30
+ str r1, [r4, r0]
+ mov r0, #0xa
+ strh r0, [r4, #0x2a]
+ pop {r3-r5, pc}
+ nop
+_0205D24C: .word FUN_0205D264
+
+ thumb_func_start FUN_0205D250
+FUN_0205D250: ; 0x0205D250
+ push {r3, lr}
+ ldr r0, [r0, #0x0]
+ ldr r1, _0205D260 ; =FUN_0205D264
+ mov r2, #0x0
+ bl FUN_020463CC
+ mov r0, #0x0
+ pop {r3, pc}
+ .balign 4
+_0205D260: .word FUN_0205D264
+
+ thumb_func_start FUN_0205D264
+FUN_0205D264: ; 0x0205D264
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ bl FUN_02046528
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_02046530
+ add r5, r0, #0x0
+ ldr r0, [r5, #0x0]
+ cmp r0, #0x3
+ bhi _0205D324
+ add r1, r0, r0
+ add r1, pc
+ ldrh r1, [r1, #0x6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_0205D288: ; jump table (using 16-bit offset)
+ .short _0205D290 - _0205D288 - 2; case 0
+ .short _0205D296 - _0205D288 - 2; case 1
+ .short _0205D314 - _0205D288 - 2; case 2
+ .short _0205D31A - _0205D288 - 2; case 3
+_0205D290:
+ add r0, r0, #0x1
+ str r0, [r5, #0x0]
+ b _0205D324
+_0205D296:
+ ldr r0, [r4, #0x38]
+ bl FUN_020553C4
+ cmp r0, #0x1
+ bne _0205D2D6
+ ldr r0, [r4, #0x38]
+ bl FUN_020553A0
+ bl FUN_02058914
+ ldr r0, [r4, #0x38]
+ mov r1, #0x1
+ bl FUN_021E5FD8
+ ldr r0, [r4, #0x38]
+ bl FUN_021E5FE0
+ add r0, r4, #0x0
+ mov r1, #0x0
+ bl FUN_0204AB20
+ ldr r1, [r4, #0x1c]
+ add r0, r4, #0x0
+ ldr r1, [r1, #0x0]
+ bl FUN_0204AB58
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ mov r2, #0x1
+ bl FUN_0204ABDC
+ b _0205D30C
+_0205D2D6:
+ mov r1, #0x12
+ add r0, r4, #0x0
+ lsl r1, r1, #0x6
+ bl FUN_0204AB20
+ mov r1, #0x12
+ add r0, r4, #0x0
+ lsl r1, r1, #0x6
+ mov r2, #0x1
+ bl FUN_0204ABDC
+ ldr r0, [r4, #0x38]
+ bl FUN_020553A0
+ bl FUN_02058914
+ ldr r0, [r4, #0x38]
+ mov r1, #0x2
+ bl FUN_021E5FD8
+ ldr r0, [r4, #0x38]
+ bl FUN_021E5FE0
+ add r4, #0x90
+ ldr r0, [r4, #0x0]
+ bl FUN_0205DD40
+_0205D30C:
+ ldr r0, [r5, #0x0]
+ add r0, r0, #0x1
+ str r0, [r5, #0x0]
+ b _0205D324
+_0205D314:
+ add r0, r0, #0x1
+ str r0, [r5, #0x0]
+ b _0205D324
+_0205D31A:
+ ldr r0, [r4, #0x34]
+ bl FUN_020587B0
+ mov r0, #0x1
+ pop {r3-r5, pc}
+_0205D324:
+ mov r0, #0x0
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_0205D328
+FUN_0205D328: ; 0x0205D328
+ push {r3-r5, lr}
+ add r4, r0, #0x0
+ ldr r0, [r4, #0x4]
+ cmp r0, #0x1
+ bne _0205D336
+ mov r0, #0x2
+ pop {r3-r5, pc}
+_0205D336:
+ ldr r0, [r4, #0x14]
+ bl FUN_02055738
+ cmp r0, #0x1
+ bne _0205D344
+ mov r0, #0x1
+ pop {r3-r5, pc}
+_0205D344:
+ ldr r0, [r4, #0x14]
+ bl FUN_020553A0
+ ldrh r1, [r4, #0xe]
+ add r5, r0, #0x0
+ bl FUN_02059BB4
+ cmp r0, #0x1
+ beq _0205D362
+ ldrh r1, [r4, #0xe]
+ add r0, r5, #0x0
+ bl FUN_02059BD4
+ cmp r0, #0x1
+ bne _0205D366
+_0205D362:
+ mov r0, #0x1
+ pop {r3-r5, pc}
+_0205D366:
+ ldrh r0, [r4, #0xe]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_02054798
+ cmp r0, #0x1
+ beq _0205D390
+ ldrh r0, [r4, #0xe]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_02054974
+ cmp r0, #0x1
+ beq _0205D390
+ ldrh r0, [r4, #0xe]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_02054990
+ cmp r0, #0x1
+ bne _0205D396
+_0205D390:
+ mov r0, #0x0
+ mvn r0, r0
+ pop {r3-r5, pc}
+_0205D396:
+ ldr r0, [r4, #0x0]
+ bl FUN_020348B4
+ cmp r0, #0x0
+ bne _0205D3A6
+ mov r0, #0x0
+ mvn r0, r0
+ pop {r3-r5, pc}
+_0205D3A6:
+ ldr r0, [r4, #0x8]
+ cmp r0, #0x2
+ bne _0205D3B2
+ mov r0, #0x0
+ mvn r0, r0
+ pop {r3-r5, pc}
+_0205D3B2:
+ mov r0, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_0205D3B8
+FUN_0205D3B8: ; 0x0205D3B8
+ push {r3-r5, lr}
+ add r4, r0, #0x0
+ ldr r0, [r4, #0x0]
+ bl FUN_02046528
+ add r5, r0, #0x0
+ ldr r0, [r4, #0x0]
+ bl FUN_0204652C
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ mov r1, #0x0
+ bl FUN_02037944
+ ldr r1, _0205D3E0 ; =FUN_02036B90
+ add r0, r4, #0x0
+ bl FUN_02035D04
+ pop {r3-r5, pc}
+ nop
+_0205D3E0: .word FUN_02036B90
+
+ thumb_func_start FUN_0205D3E4
+FUN_0205D3E4: ; 0x0205D3E4
+ push {r3, lr}
+ ldr r1, _0205D3F0 ; =FUN_0205D3F4
+ bl FUN_0205DD04
+ mov r0, #0x1
+ pop {r3, pc}
+ .balign 4
+_0205D3F0: .word FUN_0205D3F4
+
+ thumb_func_start FUN_0205D3F4
+FUN_0205D3F4: ; 0x0205D3F4
+ push {r3, lr}
+ mov r1, #0x0
+ bl FUN_02037944
+ mov r0, #0x0
+ pop {r3, pc}
+
+ thumb_func_start FUN_0205D400
+FUN_0205D400: ; 0x0205D400
+ push {r3-r7, lr}
+ add r6, r0, #0x0
+ ldr r0, [r6, #0x0]
+ bl FUN_02046528
+ add r5, r0, #0x0
+ ldr r0, [r6, #0x0]
+ bl FUN_0204652C
+ add r7, r0, #0x0
+ mov r0, #0xb
+ mov r1, #0x40
+ bl FUN_02016998
+ mov r1, #0x0
+ mov r2, #0x40
+ add r4, r0, #0x0
+ blx Call_FillMemWithValue
+ ldr r0, [r5, #0xc]
+ bl FUN_0206BB1C
+ str r0, [r4, #0x0]
+ ldr r0, [r5, #0xc]
+ bl FUN_0206F158
+ str r0, [r4, #0x4]
+ ldr r0, [r5, #0xc]
+ bl FUN_02025838
+ str r0, [r4, #0x8]
+ ldr r0, [r5, #0xc]
+ bl LoadPlayerDataAddress
+ str r0, [r4, #0xc]
+ mov r0, #0x7a
+ lsl r0, r0, #0x2
+ add r0, r7, r0
+ str r0, [r4, #0x18]
+ add r0, r4, #0x0
+ mov r1, #0x0
+ add r0, #0x21
+ strb r1, [r0, #0x0]
+ add r0, r4, #0x0
+ mov r1, #0x6
+ add r0, #0x20
+ strb r1, [r0, #0x0]
+ str r5, [r4, #0x1c]
+ ldrh r0, [r6, #0x4]
+ strh r0, [r4, #0x24]
+ add r0, r4, #0x0
+ ldrb r1, [r6, #0x6]
+ add r0, #0x22
+ strb r1, [r0, #0x0]
+ ldrh r0, [r6, #0x4]
+ bl FUN_0206EA30
+ strh r0, [r4, #0x26]
+ ldr r1, _0205D490 ; =0x020F96DC
+ add r0, r5, #0x0
+ add r2, r4, #0x0
+ bl FUN_020373D4
+ mov r0, #0x7e
+ lsl r0, r0, #0x2
+ str r4, [r7, r0]
+ ldr r1, _0205D494 ; =FUN_02035E50
+ add r0, r7, #0x0
+ bl FUN_02035D04
+ pop {r3-r7, pc}
+ nop
+_0205D490: .word 0x020F96DC
+_0205D494: .word FUN_02035E50
+
+ thumb_func_start FUN_0205D498
+FUN_0205D498: ; 0x0205D498
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ ldr r0, [r5, #0x0]
+ bl FUN_02046528
+ add r6, r0, #0x0
+ ldr r0, [r5, #0x0]
+ bl FUN_0204652C
+ add r4, r0, #0x0
+ ldrh r0, [r5, #0x4]
+ bl FUN_0206EAB8
+ add r2, r0, #0x0
+ add r0, r6, #0x0
+ mov r1, #0x3
+ mov r3, #0xb
+ bl FUN_02037F58
+ add r6, r0, #0x0
+ ldrh r0, [r5, #0x4]
+ mov r1, #0x3
+ mov r2, #0x0
+ bl FUN_02036BC4
+ mov r1, #0x7f
+ lsl r1, r1, #0x2
+ str r0, [r4, r1]
+ sub r0, r1, #0x4
+ str r6, [r4, r0]
+ ldr r1, _0205D4E0 ; =FUN_02036BDC
+ add r0, r4, #0x0
+ bl FUN_02035D04
+ pop {r4-r6, pc}
+ nop
+_0205D4E0: .word FUN_02036BDC
+
+ thumb_func_start FUN_0205D4E4
+FUN_0205D4E4: ; 0x0205D4E4
+ mov r0, #0x0
+ bx lr
+
+ thumb_func_start FUN_0205D4E8
+FUN_0205D4E8: ; 0x0205D4E8
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ ldr r0, [r5, #0x0]
+ add r4, r1, #0x0
+ bl FUN_02046528
+ ldr r0, [r5, #0x0]
+ bl FUN_0204652C
+ ldrh r1, [r4, #0x10]
+ mov r0, #0x1
+ tst r0, r1
+ beq _0205D50E
+ ldr r2, _0205D518 ; =0x00000AF1
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_0205CF34
+ pop {r3-r5, pc}
+_0205D50E:
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_0205D024
+ pop {r3-r5, pc}
+ .balign 4
+_0205D518: .word 0x00000AF1
+
+ thumb_func_start FUN_0205D51C
+FUN_0205D51C: ; 0x0205D51C
+ ldrh r1, [r0, #0x10]
+ mov r0, #0x1
+ tst r1, r0
+ bne _0205D526
+ mov r0, #0x0
+_0205D526:
+ bx lr
+
+ thumb_func_start FUN_0205D528
+FUN_0205D528: ; 0x0205D528
+ push {r3-r5, lr}
+ add r4, r0, #0x0
+ ldr r0, [r4, #0x0]
+ bl FUN_02046528
+ add r5, r0, #0x0
+ ldr r0, [r4, #0x0]
+ bl FUN_0204652C
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ mov r1, #0xb
+ bl FUN_02037FC4
+ mov r1, #0x7e
+ lsl r1, r1, #0x2
+ str r0, [r4, r1]
+ ldr r1, _0205D554 ; =FUN_02036D94
+ add r0, r4, #0x0
+ bl FUN_02035D04
+ pop {r3-r5, pc}
+ .balign 4
+_0205D554: .word FUN_02036D94
+
+ thumb_func_start FUN_0205D558
+FUN_0205D558: ; 0x0205D558
+ push {r3, lr}
+ ldr r1, _0205D564 ; =FUN_0205D568
+ bl FUN_0205DD04
+ mov r0, #0x1
+ pop {r3, pc}
+ .balign 4
+_0205D564: .word FUN_0205D568
+
+ thumb_func_start FUN_0205D568
+FUN_0205D568: ; 0x0205D568
+ ldr r3, _0205D570 ; =FUN_02037FC4
+ mov r1, #0xb
+ bx r3
+ nop
+_0205D570: .word FUN_02037FC4
+
+ thumb_func_start FUN_0205D574
+FUN_0205D574: ; 0x0205D574
+ push {r3-r5, lr}
+ add r4, r0, #0x0
+ ldr r0, [r4, #0x0]
+ bl FUN_02046528
+ add r5, r0, #0x0
+ ldr r0, [r4, #0x0]
+ bl FUN_0204652C
+ add r4, r0, #0x0
+ ldr r1, [r5, #0xc]
+ add r0, r5, #0x0
+ bl FUN_0203846C
+ mov r0, #0x7e
+ mov r1, #0x0
+ lsl r0, r0, #0x2
+ str r1, [r4, r0]
+ ldr r1, _0205D5A4 ; =FUN_02036DD4
+ add r0, r4, #0x0
+ bl FUN_02035D04
+ pop {r3-r5, pc}
+ nop
+_0205D5A4: .word FUN_02036DD4
+
+ thumb_func_start FUN_0205D5A8
+FUN_0205D5A8: ; 0x0205D5A8
+ push {r3, lr}
+ ldr r1, _0205D5B4 ; =FUN_0205D5B8
+ bl FUN_0205DD04
+ mov r0, #0x1
+ pop {r3, pc}
+ .balign 4
+_0205D5B4: .word FUN_0205D5B8
+
+ thumb_func_start FUN_0205D5B8
+FUN_0205D5B8: ; 0x0205D5B8
+ push {r3, lr}
+ ldr r1, [r0, #0xc]
+ bl FUN_0203846C
+ mov r0, #0x0
+ pop {r3, pc}
+
+ thumb_func_start FUN_0205D5C4
+FUN_0205D5C4: ; 0x0205D5C4
+ push {r4-r6, lr}
+ add r4, r0, #0x0
+ ldr r0, [r4, #0x0]
+ bl FUN_02046528
+ add r6, r0, #0x0
+ ldr r0, [r4, #0x0]
+ bl FUN_0204652C
+ add r5, r0, #0x0
+ mov r0, #0xb
+ mov r1, #0x4
+ bl FUN_020169D8
+ add r4, r0, #0x0
+ mov r0, #0x0
+ str r0, [r4, #0x0]
+ add r0, r6, #0x0
+ bl FUN_0204649C
+ mov r0, #0x72
+ ldr r1, _0205D600 ; =FUN_0205E30C
+ lsl r0, r0, #0x2
+ str r1, [r5, r0]
+ add r0, #0x30
+ str r4, [r5, r0]
+ mov r0, #0xa
+ strh r0, [r5, #0x2a]
+ pop {r4-r6, pc}
+ nop
+_0205D600: .word FUN_0205E30C
+
+ thumb_func_start FUN_0205D604
+FUN_0205D604: ; 0x0205D604
+ push {r4, lr}
+ add r4, r0, #0x0
+ mov r0, #0xb
+ mov r1, #0x4
+ bl FUN_020169D8
+ add r2, r0, #0x0
+ mov r0, #0x0
+ str r0, [r2, #0x0]
+ ldr r0, [r4, #0x0]
+ ldr r1, _0205D624 ; =FUN_0205E30C
+ bl FUN_020463CC
+ mov r0, #0x0
+ pop {r4, pc}
+ nop
+_0205D624: .word FUN_0205E30C
+
+ thumb_func_start FUN_0205D628
+FUN_0205D628: ; 0x0205D628
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r0, [r4, #0x4]
+ cmp r0, #0x1
+ bne _0205D636
+ mov r0, #0x2
+ pop {r4, pc}
+_0205D636:
+ ldr r0, [r4, #0x18]
+ ldr r0, [r0, #0x38]
+ bl FUN_020553C4
+ cmp r0, #0x1
+ bne _0205D648
+ mov r0, #0x0
+ mvn r0, r0
+ pop {r4, pc}
+_0205D648:
+ ldrh r0, [r4, #0xe]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_0205478C
+ cmp r0, #0x0
+ beq _0205D65A
+ mov r0, #0x0
+ pop {r4, pc}
+_0205D65A:
+ mov r0, #0x0
+ mvn r0, r0
+ pop {r4, pc}
+
+ thumb_func_start FUN_0205D660
+FUN_0205D660: ; 0x0205D660
+ ldr r3, _0205D668 ; =FUN_0205CF34
+ ldr r2, _0205D66C ; =0x00000AF2
+ bx r3
+ nop
+_0205D668: .word FUN_0205CF34
+_0205D66C: .word 0x00000AF2
+
+ thumb_func_start FUN_0205D670
+FUN_0205D670: ; 0x0205D670
+ push {r3, lr}
+ ldr r1, _0205D67C ; =0x00000AF2
+ bl FUN_0205CF78
+ mov r0, #0x0
+ pop {r3, pc}
+ .balign 4
+_0205D67C: .word 0x00000AF2
+
+ thumb_func_start FUN_0205D680
+FUN_0205D680: ; 0x0205D680
+ ldr r1, [r0, #0x4]
+ cmp r1, #0x1
+ bne _0205D68A
+ mov r0, #0x2
+ bx lr
+_0205D68A:
+ ldrh r1, [r0, #0x10]
+ mov r0, #0x4
+ tst r1, r0
+ beq _0205D696
+ mov r0, #0x0
+ bx lr
+_0205D696:
+ sub r0, r0, #0x5
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_0205D69C
+FUN_0205D69C: ; 0x0205D69C
+ ldr r3, _0205D6A4 ; =FUN_0205CF34
+ ldr r2, _0205D6A8 ; =0x00000AF3
+ bx r3
+ nop
+_0205D6A4: .word FUN_0205CF34
+_0205D6A8: .word 0x00000AF3
+
+ thumb_func_start FUN_0205D6AC
+FUN_0205D6AC: ; 0x0205D6AC
+ ldrh r1, [r0, #0x10]
+ mov r0, #0x2
+ tst r1, r0
+ beq _0205D6B8
+ mov r0, #0x0
+ bx lr
+_0205D6B8:
+ sub r0, r0, #0x3
+ bx lr
+
+ thumb_func_start FUN_0205D6BC
+FUN_0205D6BC: ; 0x0205D6BC
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ ldr r0, [r5, #0x0]
+ bl FUN_02046528
+ add r6, r0, #0x0
+ ldr r0, [r5, #0x0]
+ bl FUN_0204652C
+ add r4, r0, #0x0
+ add r0, r6, #0x0
+ bl FUN_0204649C
+ bl FUN_021F57EC
+ str r0, [sp, #0x0]
+ ldr r1, [sp, #0x0]
+ mov r0, #0xb
+ bl FUN_020169D8
+ ldr r2, [sp, #0x0]
+ mov r1, #0x0
+ add r7, r0, #0x0
+ blx Call_FillMemWithValue
+ mov r0, #0x72
+ ldr r1, _0205D710 ; =0x021F57F1
+ lsl r0, r0, #0x2
+ str r1, [r4, r0]
+ add r0, #0x30
+ str r7, [r4, r0]
+ mov r0, #0xa
+ strh r0, [r4, #0x2a]
+ ldr r0, [r6, #0xc]
+ bl FUN_0206F158
+ ldrh r1, [r5, #0x4]
+ mov r2, #0x1
+ mov r3, #0xb
+ bl FUN_0206EDD4
+ pop {r3-r7, pc}
+ .balign 4
+_0205D710: .word 0x021F57F1
+
+ thumb_func_start FUN_0205D714
+FUN_0205D714: ; 0x0205D714
+ ldr r3, _0205D71C ; =FUN_0205CF34
+ ldr r2, _0205D720 ; =0x000022F6
+ bx r3
+ nop
+_0205D71C: .word FUN_0205CF34
+_0205D720: .word 0x000022F6
+
+ thumb_func_start FUN_0205D724
+FUN_0205D724: ; 0x0205D724
+ push {r3, lr}
+ ldr r1, _0205D730 ; =0x000022F6
+ bl FUN_0205CF78
+ mov r0, #0x0
+ pop {r3, pc}
+ .balign 4
+_0205D730: .word 0x000022F6
+
+ thumb_func_start FUN_0205D734
+FUN_0205D734: ; 0x0205D734
+ push {r3, lr}
+ ldr r0, [r0, #0x0]
+ bl FUN_02034908
+ cmp r0, #0x0
+ beq _0205D744
+ mov r0, #0x0
+ pop {r3, pc}
+_0205D744:
+ mov r0, #0x0
+ mvn r0, r0
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_0205D74C
+FUN_0205D74C: ; 0x0205D74C
+ push {r3-r5, lr}
+ add r4, r0, #0x0
+ ldr r0, [r4, #0x0]
+ bl FUN_02046528
+ add r5, r0, #0x0
+ ldr r0, [r4, #0x0]
+ bl FUN_0204652C
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_0204649C
+ mov r0, #0x72
+ ldr r1, _0205D784 ; =0x021F5C71
+ lsl r0, r0, #0x2
+ str r1, [r4, r0]
+ add r0, r5, #0x0
+ mov r1, #0xb
+ mov r2, #0x0
+ bl FUN_021F5C44
+ mov r1, #0x7e
+ lsl r1, r1, #0x2
+ str r0, [r4, r1]
+ mov r0, #0xa
+ strh r0, [r4, #0x2a]
+ pop {r3-r5, pc}
+ .balign 4
+_0205D784: .word 0x021F5C71
+
+ thumb_func_start FUN_0205D788
+FUN_0205D788: ; 0x0205D788
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r0, [r4, #0x0]
+ mov r1, #0x4
+ mov r2, #0x0
+ bl FUN_021F5C44
+ add r2, r0, #0x0
+ ldr r0, [r4, #0x0]
+ ldr r1, _0205D7A4 ; =0x021F5C71
+ bl FUN_020463CC
+ mov r0, #0x0
+ pop {r4, pc}
+ .balign 4
+_0205D7A4: .word 0x021F5C71
+
+ thumb_func_start FUN_0205D7A8
+FUN_0205D7A8: ; 0x0205D7A8
+ push {r3-r5, lr}
+ add r4, r0, #0x0
+ ldr r0, [r4, #0x0]
+ bl FUN_02046528
+ add r5, r0, #0x0
+ ldr r0, [r4, #0x0]
+ bl FUN_0204652C
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_0204649C
+ mov r0, #0x72
+ ldr r1, _0205D7E0 ; =0x021F5C71
+ lsl r0, r0, #0x2
+ str r1, [r4, r0]
+ add r0, r5, #0x0
+ mov r1, #0xb
+ mov r2, #0x1
+ bl FUN_021F5C44
+ mov r1, #0x7e
+ lsl r1, r1, #0x2
+ str r0, [r4, r1]
+ mov r0, #0xa
+ strh r0, [r4, #0x2a]
+ pop {r3-r5, pc}
+ .balign 4
+_0205D7E0: .word 0x021F5C71
+
+ thumb_func_start FUN_0205D7E4
+FUN_0205D7E4: ; 0x0205D7E4
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r0, [r4, #0x0]
+ mov r1, #0x4
+ mov r2, #0x1
+ bl FUN_021F5C44
+ add r2, r0, #0x0
+ ldr r0, [r4, #0x0]
+ ldr r1, _0205D800 ; =0x021F5C71
+ bl FUN_020463CC
+ mov r0, #0x0
+ pop {r4, pc}
+ .balign 4
+_0205D800: .word 0x021F5C71
+
+ thumb_func_start FUN_0205D804
+FUN_0205D804: ; 0x0205D804
+ push {r3-r5, lr}
+ add r4, r0, #0x0
+ ldr r0, [r4, #0x0]
+ bl FUN_02046528
+ add r5, r0, #0x0
+ ldr r0, [r4, #0x0]
+ bl FUN_0204652C
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_0204649C
+ mov r0, #0x72
+ ldr r1, _0205D83C ; =0x021F5C71
+ lsl r0, r0, #0x2
+ str r1, [r4, r0]
+ add r0, r5, #0x0
+ mov r1, #0xb
+ mov r2, #0x2
+ bl FUN_021F5C44
+ mov r1, #0x7e
+ lsl r1, r1, #0x2
+ str r0, [r4, r1]
+ mov r0, #0xa
+ strh r0, [r4, #0x2a]
+ pop {r3-r5, pc}
+ .balign 4
+_0205D83C: .word 0x021F5C71
+
+ thumb_func_start FUN_0205D840
+FUN_0205D840: ; 0x0205D840
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r0, [r4, #0x0]
+ mov r1, #0x4
+ mov r2, #0x2
+ bl FUN_021F5C44
+ add r2, r0, #0x0
+ ldr r0, [r4, #0x0]
+ ldr r1, _0205D85C ; =0x021F5C71
+ bl FUN_020463CC
+ mov r0, #0x0
+ pop {r4, pc}
+ .balign 4
+_0205D85C: .word 0x021F5C71
+
+ thumb_func_start FUN_0205D860
+FUN_0205D860: ; 0x0205D860
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r0, [r4, #0x4]
+ cmp r0, #0x1
+ bne _0205D86E
+ mov r0, #0x2
+ pop {r4, pc}
+_0205D86E:
+ ldrh r0, [r4, #0xc]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_0205481C
+ cmp r0, #0x1
+ bne _0205D8B0
+ ldrh r0, [r4, #0xe]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_02054B78
+ cmp r0, #0x1
+ beq _0205D898
+ ldrh r0, [r4, #0xe]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_02054B6C
+ cmp r0, #0x1
+ bne _0205D8AC
+_0205D898:
+ ldr r0, [r4, #0x14]
+ bl FUN_020553A0
+ bl FUN_02058A68
+ cmp r0, #0x1
+ bne _0205D8AC
+ mov r0, #0x0
+ mvn r0, r0
+ pop {r4, pc}
+_0205D8AC:
+ mov r0, #0x0
+ pop {r4, pc}
+_0205D8B0:
+ mov r0, #0x0
+ mvn r0, r0
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0205D8B8
+FUN_0205D8B8: ; 0x0205D8B8
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ mov r0, #0xb
+ mov r1, #0x18
+ bl FUN_02016998
+ add r4, r0, #0x0
+ mov r0, #0x0
+ strh r0, [r4, #0x16]
+ mov r0, #0x80
+ mov r1, #0xb
+ bl FUN_020219F4
+ str r0, [r4, #0x10]
+ ldr r0, [r5, #0x0]
+ ldr r0, [r0, #0xc]
+ bl FUN_0206F158
+ bl FUN_0206EBC4
+ add r2, r0, #0x0
+ ldr r0, [r5, #0x0]
+ lsl r2, r2, #0x10
+ ldr r0, [r0, #0xc]
+ ldr r1, [r4, #0x10]
+ lsr r2, r2, #0x10
+ mov r3, #0xb
+ bl FUN_0206E3F8
+ ldr r0, [r5, #0x0]
+ ldr r1, _0205D900 ; =FUN_0205D904
+ add r2, r4, #0x0
+ bl FUN_020463CC
+ mov r0, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+_0205D900: .word FUN_0205D904
+
+ thumb_func_start FUN_0205D904
+FUN_0205D904: ; 0x0205D904
+ push {r3-r5, lr}
+ add r4, r0, #0x0
+ bl FUN_02046528
+ add r5, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_0204652C
+ add r4, r0, #0x0
+ ldrh r0, [r4, #0x16]
+ cmp r0, #0x0
+ beq _0205D926
+ cmp r0, #0x1
+ beq _0205D95C
+ cmp r0, #0x2
+ beq _0205D984
+ b _0205D9A0
+_0205D926:
+ ldr r0, [r5, #0x34]
+ bl FUN_02058780
+ ldr r0, [r5, #0x8]
+ add r1, r4, #0x0
+ mov r2, #0x3
+ bl FUN_020545B8
+ ldr r0, [r5, #0xc]
+ bl LoadPlayerDataAddress
+ add r5, r0, #0x0
+ add r0, r4, #0x0
+ add r1, r5, #0x0
+ bl FUN_02054608
+ ldr r1, [r4, #0x10]
+ add r0, r4, #0x0
+ add r2, r5, #0x0
+ mov r3, #0x1
+ bl FUN_02054658
+ strh r0, [r4, #0x14]
+ ldrh r0, [r4, #0x16]
+ add r0, r0, #0x1
+ strh r0, [r4, #0x16]
+ b _0205D9A0
+_0205D95C:
+ ldrh r0, [r4, #0x14]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_020546C8
+ cmp r0, #0x1
+ bne _0205D9A0
+ ldr r0, _0205D9A4 ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #0xf3
+ tst r0, r1
+ beq _0205D9A0
+ add r0, r4, #0x0
+ mov r1, #0x0
+ bl FUN_0200D0E0
+ ldrh r0, [r4, #0x16]
+ add r0, r0, #0x1
+ strh r0, [r4, #0x16]
+ b _0205D9A0
+_0205D984:
+ ldr r0, [r5, #0x34]
+ bl FUN_020587B0
+ add r0, r4, #0x0
+ bl FUN_02019178
+ ldr r0, [r4, #0x10]
+ bl FUN_02021A20
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ mov r0, #0x1
+ pop {r3-r5, pc}
+_0205D9A0:
+ mov r0, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+_0205D9A4: .word 0x021C48B8
+
+ thumb_func_start FUN_0205D9A8
+FUN_0205D9A8: ; 0x0205D9A8
+ push {r3-r7, lr}
+ add r6, r0, #0x0
+ ldr r0, [r6, #0x0]
+ bl FUN_02046528
+ add r5, r0, #0x0
+ ldr r0, [r6, #0x0]
+ bl FUN_0204652C
+ add r7, r0, #0x0
+ mov r0, #0xb
+ mov r1, #0x40
+ bl FUN_02016998
+ mov r1, #0x0
+ mov r2, #0x40
+ add r4, r0, #0x0
+ blx Call_FillMemWithValue
+ ldr r0, [r5, #0xc]
+ bl FUN_0206BB1C
+ str r0, [r4, #0x0]
+ ldr r0, [r5, #0xc]
+ bl FUN_0206F158
+ str r0, [r4, #0x4]
+ ldr r0, [r5, #0xc]
+ bl FUN_02025838
+ str r0, [r4, #0x8]
+ ldr r0, [r5, #0xc]
+ bl LoadPlayerDataAddress
+ str r0, [r4, #0xc]
+ ldr r0, [r5, #0xc]
+ bl FUN_02022504
+ str r0, [r4, #0x10]
+ mov r0, #0x7a
+ lsl r0, r0, #0x2
+ add r0, r7, r0
+ str r0, [r4, #0x18]
+ add r0, r4, #0x0
+ mov r1, #0x0
+ add r0, #0x21
+ strb r1, [r0, #0x0]
+ add r0, r4, #0x0
+ mov r1, #0x10
+ add r0, #0x20
+ strb r1, [r0, #0x0]
+ ldrh r0, [r6, #0x4]
+ add r2, r4, #0x0
+ strh r0, [r4, #0x24]
+ add r0, r4, #0x0
+ ldrb r1, [r6, #0x6]
+ add r0, #0x22
+ strb r1, [r0, #0x0]
+ ldr r1, _0205DA34 ; =0x020F96DC
+ add r0, r5, #0x0
+ bl FUN_020373D4
+ mov r0, #0x7e
+ lsl r0, r0, #0x2
+ str r4, [r7, r0]
+ ldr r1, _0205DA38 ; =FUN_02035E50
+ add r0, r7, #0x0
+ bl FUN_02035D04
+ pop {r3-r7, pc}
+ .balign 4
+_0205DA34: .word 0x020F96DC
+_0205DA38: .word FUN_02035E50
+
+ thumb_func_start FUN_0205DA3C
+FUN_0205DA3C: ; 0x0205DA3C
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ ldr r0, [r5, #0x0]
+ bl FUN_02046528
+ add r6, r0, #0x0
+ ldr r0, [r5, #0x0]
+ bl FUN_0204652C
+ add r4, r0, #0x0
+ add r0, r6, #0x0
+ bl FUN_0204649C
+ mov r0, #0x72
+ ldr r1, _0205DA7C ; =FUN_0205DAAC
+ lsl r0, r0, #0x2
+ str r1, [r4, r0]
+ mov r1, #0x0
+ add r0, #0x30
+ str r1, [r4, r0]
+ mov r0, #0xa
+ strh r0, [r4, #0x2a]
+ ldr r0, [r6, #0xc]
+ bl FUN_0206F158
+ ldrh r1, [r5, #0x4]
+ mov r2, #0x1
+ mov r3, #0xb
+ bl FUN_0206EDD4
+ pop {r4-r6, pc}
+ nop
+_0205DA7C: .word FUN_0205DAAC
+
+ thumb_func_start FUN_0205DA80
+FUN_0205DA80: ; 0x0205DA80
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r0, [r4, #0x4]
+ cmp r0, #0x1
+ bne _0205DA8E
+ mov r0, #0x2
+ pop {r4, pc}
+_0205DA8E:
+ ldr r0, [r4, #0x0]
+ bl FUN_02034930
+ cmp r0, #0x1
+ bne _0205DAA6
+ ldr r0, [r4, #0x0]
+ bl FUN_0203487C
+ cmp r0, #0x1
+ bne _0205DAA6
+ mov r0, #0x0
+ pop {r4, pc}
+_0205DAA6:
+ mov r0, #0x0
+ mvn r0, r0
+ pop {r4, pc}
+
+ thumb_func_start FUN_0205DAAC
+FUN_0205DAAC: ; 0x0205DAAC
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl FUN_02046528
+ mov r1, #0xb
+ bl FUN_0224C700
+ add r2, r0, #0x0
+ ldr r1, _0205DAC8 ; =0x0224C721
+ add r0, r4, #0x0
+ bl FUN_020463EC
+ mov r0, #0x0
+ pop {r4, pc}
+ .balign 4
+_0205DAC8: .word 0x0224C721
+
+ thumb_func_start FUN_0205DACC
+FUN_0205DACC: ; 0x0205DACC
+ ldr r3, _0205DAD4 ; =FUN_0205CF34
+ ldr r2, _0205DAD8 ; =0x000007F7
+ bx r3
+ nop
+_0205DAD4: .word FUN_0205CF34
+_0205DAD8: .word 0x000007F7
+
+ thumb_func_start FUN_0205DADC
+FUN_0205DADC: ; 0x0205DADC
+ push {r3, lr}
+ ldr r1, _0205DAE8 ; =0x000007F7
+ bl FUN_0205CF78
+ mov r0, #0x0
+ pop {r3, pc}
+ .balign 4
+_0205DAE8: .word 0x000007F7
+
+ thumb_func_start FUN_0205DAEC
+FUN_0205DAEC: ; 0x0205DAEC
+ push {r3-r5, lr}
+ add r4, r0, #0x0
+ ldr r0, [r4, #0x18]
+ ldr r0, [r0, #0xc]
+ bl FUN_020462AC
+ add r5, r0, #0x0
+ bl FUN_0205ED0C
+ cmp r0, #0x0
+ bne _0205DB08
+ mov r0, #0x0
+ mvn r0, r0
+ pop {r3-r5, pc}
+_0205DB08:
+ add r0, r5, #0x0
+ mov r1, #0x2
+ bl FUN_0205F4A0
+ cmp r0, #0x0
+ bne _0205DB1A
+ mov r0, #0x0
+ mvn r0, r0
+ pop {r3-r5, pc}
+_0205DB1A:
+ ldr r0, [r4, #0x18]
+ ldr r0, [r0, #0xc]
+ bl FUN_02024DA0
+ bl FUN_02024CA4
+ cmp r0, #0x0
+ bne _0205DB30
+ mov r0, #0x0
+ mvn r0, r0
+ pop {r3-r5, pc}
+_0205DB30:
+ ldr r0, [r4, #0x0]
+ bl FUN_020349D8
+ cmp r0, #0x0
+ beq _0205DB3E
+ mov r0, #0x0
+ pop {r3-r5, pc}
+_0205DB3E:
+ mov r0, #0x0
+ mvn r0, r0
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_0205DB44
+FUN_0205DB44: ; 0x0205DB44
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ bl FUN_02060144
+ cmp r0, #0x1
+ bne _0205DB54
+ mov r0, #0x0
+ pop {r3-r7, pc}
+_0205DB54:
+ ldr r0, [r5, #0xc]
+ bl FUN_020462AC
+ bl FUN_0205F244
+ cmp r0, #0x1
+ bne _0205DB66
+ mov r0, #0x0
+ pop {r3-r7, pc}
+_0205DB66:
+ ldr r0, [r5, #0xc]
+ bl FUN_0206F158
+ bl FUN_0206EBC4
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ mov r1, #0x6
+ mov r2, #0xb
+ str r0, [sp, #0x0]
+ bl FUN_0206E7B8
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+ mov r0, #0x2
+ add r1, r4, #0x0
+ bl FUN_0205CE48
+ add r6, r0, #0x0
+ mov r0, #0x1
+ add r1, r4, #0x0
+ bl FUN_0205CE48
+ add r7, r0, #0x0
+ bne _0205DB9C
+ mov r0, #0x0
+ pop {r3-r7, pc}
+_0205DB9C:
+ mov r0, #0xb
+ mov r1, #0x2c
+ bl FUN_02016998
+ add r4, r0, #0x0
+ mov r1, #0x0
+ mov r2, #0x2c
+ blx Call_FillMemWithValue
+ str r5, [r4, #0x0]
+ ldr r0, [sp, #0x0]
+ add r1, r4, #0x4
+ strh r0, [r4, #0x28]
+ add r0, r5, #0x0
+ bl FUN_0205CE80
+ mov r5, #0x0
+ cmp r6, #0x0
+ bne _0205DBCA
+ add r0, r4, #0x0
+ blx r7
+ add r5, r0, #0x0
+ b _0205DBE0
+_0205DBCA:
+ add r0, r4, #0x4
+ blx r6
+ add r1, r0, #0x0
+ bne _0205DBDA
+ add r0, r4, #0x0
+ blx r7
+ add r5, r0, #0x0
+ b _0205DBE0
+_0205DBDA:
+ add r0, r4, #0x0
+ bl FUN_0205DBF0
+_0205DBE0:
+ cmp r5, #0x0
+ bne _0205DBEA
+ add r0, r4, #0x0
+ bl FUN_02016A18
+_0205DBEA:
+ mov r0, #0x1
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_0205DBF0
+FUN_0205DBF0: ; 0x0205DBF0
+ push {r3-r6, lr}
+ sub sp, #0x4
+ add r5, r0, #0x0
+ add r6, r1, #0x0
+ mov r0, #0xb
+ mov r1, #0x18
+ bl FUN_02016998
+ add r4, r0, #0x0
+ mov r0, #0x0
+ strh r0, [r4, #0x16]
+ mov r0, #0x80
+ mov r1, #0xb
+ bl FUN_020219F4
+ str r0, [r4, #0x10]
+ ldr r0, [r5, #0x0]
+ ldr r0, [r0, #0xc]
+ bl FUN_020238F4
+ mov r1, #0xb
+ str r1, [sp, #0x0]
+ ldrh r2, [r5, #0x28]
+ ldr r1, [r4, #0x10]
+ add r3, r6, #0x0
+ bl FUN_0206E51C
+ ldr r0, [r5, #0x0]
+ ldr r1, _0205DC34 ; =FUN_0205D904
+ add r2, r4, #0x0
+ bl FUN_020463CC
+ add sp, #0x4
+ pop {r3-r6, pc}
+ .balign 4
+_0205DC34: .word FUN_0205D904
+
+ thumb_func_start FUN_0205DC38
+FUN_0205DC38: ; 0x0205DC38
+ push {r3-r5, lr}
+ add r4, r0, #0x0
+ bl FUN_02046528
+ add r5, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_0204652C
+ add r4, r0, #0x0
+ add r0, #0x2a
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x4
+ bhi _0205DCFA
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0205DC5E: ; jump table (using 16-bit offset)
+ .short _0205DC68 - _0205DC5E - 2; case 0
+ .short _0205DC7C - _0205DC5E - 2; case 1
+ .short _0205DC94 - _0205DC5E - 2; case 2
+ .short _0205DCC4 - _0205DC5E - 2; case 3
+ .short _0205DCE2 - _0205DC5E - 2; case 4
+_0205DC68:
+ ldr r0, [r5, #0x34]
+ bl FUN_02058780
+ mov r0, #0x0
+ bl FUN_021D7CA4
+ mov r0, #0x1
+ add r4, #0x2a
+ strb r0, [r4, #0x0]
+ b _0205DCFA
+_0205DC7C:
+ bl FUN_0200E308
+ cmp r0, #0x0
+ beq _0205DCFA
+ ldr r1, [r4, #0x20]
+ add r0, r5, #0x0
+ blx r1
+ str r0, [r4, #0x24]
+ mov r0, #0x2
+ add r4, #0x2a
+ strb r0, [r4, #0x0]
+ b _0205DCFA
+_0205DC94:
+ add r0, r5, #0x0
+ bl FUN_0204647C
+ cmp r0, #0x0
+ bne _0205DCFA
+ ldr r0, [r4, #0x24]
+ cmp r0, #0x0
+ beq _0205DCB6
+ ldr r2, [r4, #0x20]
+ ldr r1, _0205DD00 ; =FUN_0205D568
+ cmp r2, r1
+ bne _0205DCB2
+ bl FUN_02087E14
+ b _0205DCB6
+_0205DCB2:
+ bl FUN_02016A18
+_0205DCB6:
+ add r0, r5, #0x0
+ bl FUN_0204649C
+ mov r0, #0x3
+ add r4, #0x2a
+ strb r0, [r4, #0x0]
+ b _0205DCFA
+_0205DCC4:
+ add r0, r5, #0x0
+ bl FUN_020464A4
+ cmp r0, #0x0
+ beq _0205DCFA
+ ldr r0, [r5, #0x34]
+ bl FUN_02058780
+ mov r0, #0x1
+ bl FUN_021D7CA4
+ mov r0, #0x4
+ add r4, #0x2a
+ strb r0, [r4, #0x0]
+ b _0205DCFA
+_0205DCE2:
+ bl FUN_0200E308
+ cmp r0, #0x0
+ beq _0205DCFA
+ ldr r0, [r5, #0x34]
+ bl FUN_020587B0
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ mov r0, #0x1
+ pop {r3-r5, pc}
+_0205DCFA:
+ mov r0, #0x0
+ pop {r3-r5, pc}
+ nop
+_0205DD00: .word FUN_0205D568
+
+ thumb_func_start FUN_0205DD04
+FUN_0205DD04: ; 0x0205DD04
+ add r2, r0, #0x0
+ str r1, [r2, #0x20]
+ ldr r3, _0205DD10 ; =FUN_020463CC
+ ldr r0, [r2, #0x0]
+ ldr r1, _0205DD14 ; =FUN_0205DC38
+ bx r3
+ .balign 4
+_0205DD10: .word FUN_020463CC
+_0205DD14: .word FUN_0205DC38
+
+ thumb_func_start FUN_0205DD18
+FUN_0205DD18: ; 0x0205DD18
+ push {r4, lr}
+ mov r1, #0xd4
+ bl FUN_02016998
+ add r4, r0, #0x0
+ mov r0, #0x1
+ lsl r0, r0, #0x10
+ add r3, r4, #0x0
+ lsr r1, r0, #0x1
+ add r2, r0, #0x0
+ add r3, #0xbc
+ bl FUN_0201B7DC
+ add r0, r4, #0x0
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0205DD38
+FUN_0205DD38: ; 0x0205DD38
+ ldr r3, _0205DD3C ; =FUN_02016A18
+ bx r3
+ .balign 4
+_0205DD3C: .word FUN_02016A18
+
+ thumb_func_start FUN_0205DD40
+FUN_0205DD40: ; 0x0205DD40
+ push {r4, lr}
+ add r4, r0, #0x0
+ mov r1, #0x0
+ str r1, [r4, #0x4]
+ str r1, [r4, #0x0]
+ str r1, [r4, #0x8]
+ str r1, [r4, #0xc]
+ str r1, [r4, #0x10]
+ add r0, #0xd0
+ strb r1, [r0, #0x0]
+ mov r0, #0x1
+ str r0, [r4, #0x14]
+ add r0, r4, #0x0
+ add r0, #0x1c
+ mov r2, #0xa0
+ str r1, [r4, #0x18]
+ blx MI_CpuFill8
+ mov r3, #0x0
+ add r2, r3, #0x0
+ mov r0, #0x28
+_0205DD6A:
+ add r1, r3, #0x0
+ mul r1, r0
+ add r1, r4, r1
+ str r2, [r1, #0x28]
+ add r1, r3, #0x1
+ lsl r1, r1, #0x18
+ lsr r3, r1, #0x18
+ cmp r3, #0x4
+ blo _0205DD6A
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0205DD80
+FUN_0205DD80: ; 0x0205DD80
+ push {r4-r7, lr}
+ sub sp, #0x2c
+ str r1, [sp, #0x10]
+ ldr r1, _0205DECC ; =0x020F7374
+ str r2, [sp, #0x14]
+ ldrb r2, [r1, #0x4]
+ str r0, [sp, #0xc]
+ add r0, sp, #0x28
+ strb r2, [r0, #0x0]
+ ldrb r2, [r1, #0x5]
+ str r3, [sp, #0x18]
+ strb r2, [r0, #0x1]
+ ldrb r2, [r1, #0x6]
+ ldrb r1, [r1, #0x7]
+ strb r2, [r0, #0x2]
+ strb r1, [r0, #0x3]
+ ldr r0, [sp, #0xc]
+ ldr r0, [r0, #0x38]
+ bl FUN_02055360
+ str r0, [sp, #0x1c]
+ ldr r0, [sp, #0x18]
+ mov r5, #0x0
+ str r0, [sp, #0x24]
+ add r0, #0x1c
+ str r5, [sp, #0x20]
+ str r0, [sp, #0x24]
+_0205DDB6:
+ add r0, sp, #0x28
+ ldrb r4, [r0, r5]
+ cmp r4, #0x0
+ bne _0205DDC2
+ bl ErrorHandling
+_0205DDC2:
+ cmp r4, #0x1
+ bhi _0205DDCA
+ mov r6, #0x0
+ b _0205DDF2
+_0205DDCA:
+ bl FUN_0201B9EC
+ add r6, r0, #0x0
+ ldr r0, _0205DED0 ; =0x0000FFFF
+ add r1, r4, #0x0
+ blx _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
+ lsl r0, r0, #0x10
+ lsr r6, r0, #0x10
+ cmp r6, r4
+ blo _0205DDF2
+ bl ErrorHandling
+_0205DDF2:
+ lsl r1, r5, #0x1
+ mov r0, #0x9
+ sub r0, r0, r1
+ lsl r0, r0, #0x18
+ lsr r4, r0, #0x18
+ lsl r0, r6, #0x18
+ lsr r6, r0, #0x18
+ add r0, r6, #0x0
+ add r1, r4, #0x0
+ blx _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
+ add r1, r5, r1
+ add r0, r5, #0x0
+ b _0205DE5C
+_0205DE1C:
+ cmp r0, #0x1
+ bne _0205DE30
+ add r0, r6, #0x0
+ add r1, r4, #0x0
+ blx _s32_div_f
+ add r0, r5, r4
+ add r1, r5, r1
+ sub r0, r0, #0x1
+ b _0205DE5C
+_0205DE30:
+ lsl r7, r4, #0x1
+ cmp r6, r7
+ bge _0205DE3A
+ bl ErrorHandling
+_0205DE3A:
+ sub r0, r6, r7
+ lsl r0, r0, #0x18
+ lsr r1, r0, #0x18
+ lsr r3, r1, #0x1f
+ lsl r2, r1, #0x1f
+ lsr r0, r1, #0x1
+ add r0, r5, r0
+ sub r2, r2, r3
+ mov r1, #0x1f
+ ror r2, r1
+ add r0, r0, #0x1
+ add r1, r3, r2
+ bne _0205DE58
+ add r1, r5, #0x0
+ b _0205DE5C
+_0205DE58:
+ add r1, r5, r4
+ sub r1, r1, #0x1
+_0205DE5C:
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ lsl r0, r0, #0x18
+ str r1, [sp, #0x0]
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x4]
+ mov r0, #0x28
+ add r1, r5, #0x0
+ mul r1, r0
+ ldr r0, [sp, #0x24]
+ ldr r2, [sp, #0x10]
+ add r0, r0, r1
+ str r0, [sp, #0x8]
+ ldr r1, [sp, #0x1c]
+ ldr r0, [sp, #0xc]
+ ldr r1, [r1, #0x4]
+ ldr r3, [sp, #0x14]
+ bl FUN_0205E12C
+ cmp r0, #0x0
+ beq _0205DE90
+ ldr r0, [sp, #0x20]
+ add r0, r0, #0x1
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x20]
+_0205DE90:
+ add r0, r5, #0x1
+ lsl r0, r0, #0x18
+ lsr r5, r0, #0x18
+ cmp r5, #0x4
+ blo _0205DDB6
+ ldr r0, [sp, #0x20]
+ cmp r0, #0x0
+ bne _0205DEBE
+ ldr r0, [sp, #0x18]
+ bl FUN_0205DD40
+ ldr r0, [sp, #0xc]
+ add r1, r0, #0x0
+ ldr r1, [r1, #0x1c]
+ ldr r1, [r1, #0x0]
+ bl FUN_0204AB58
+ add r1, r0, #0x0
+ ldr r0, [sp, #0xc]
+ mov r2, #0x1
+ bl FUN_0204ABDC
+ b _0205DEC4
+_0205DEBE:
+ ldr r0, [sp, #0x18]
+ mov r1, #0x1
+ str r1, [r0, #0x10]
+_0205DEC4:
+ ldr r0, [sp, #0x18]
+ ldr r0, [r0, #0x10]
+ add sp, #0x2c
+ pop {r4-r7, pc}
+ .balign 4
+_0205DECC: .word 0x020F7374
+_0205DED0: .word 0x0000FFFF
+
+ thumb_func_start FUN_0205DED4
+FUN_0205DED4: ; 0x0205DED4
+ push {r3-r7, lr}
+ sub sp, #0x8
+ str r0, [sp, #0x0]
+ str r1, [sp, #0x4]
+ add r6, r2, #0x0
+ mov r4, #0x0
+_0205DEE0:
+ mov r0, #0x28
+ mul r0, r4
+ add r5, r6, r0
+ ldr r0, [r5, #0x28]
+ cmp r0, #0x0
+ beq _0205DF36
+ ldr r1, [sp, #0x4]
+ add r0, r4, #0x0
+ bl FUN_0205E2A0
+ str r0, [r5, #0x2c]
+ cmp r0, #0x0
+ bne _0205DF24
+ bl FUN_0201B9EC
+ mov r1, #0x29
+ lsl r1, r1, #0x4
+ blx _s32_div_f
+ lsl r0, r0, #0x10
+ lsr r7, r0, #0x10
+ cmp r7, #0x64
+ blo _0205DF12
+ bl ErrorHandling
+_0205DF12:
+ cmp r7, #0x32
+ bhs _0205DF1A
+ mov r0, #0x0
+ b _0205DF1C
+_0205DF1A:
+ mov r0, #0x1
+_0205DF1C:
+ str r0, [r5, #0x24]
+ mov r0, #0x0
+ str r0, [r5, #0x30]
+ b _0205DF36
+_0205DF24:
+ ldr r0, [r6, #0x0]
+ str r0, [r5, #0x24]
+ ldr r0, [sp, #0x0]
+ add r0, #0x90
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0x4]
+ bl FUN_0205E40C
+ str r0, [r5, #0x30]
+_0205DF36:
+ add r0, r4, #0x1
+ lsl r0, r0, #0x18
+ lsr r4, r0, #0x18
+ cmp r4, #0x4
+ blo _0205DEE0
+ add sp, #0x8
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_0205DF44
+FUN_0205DF44: ; 0x0205DF44
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ add r7, r1, #0x0
+ mov r6, #0x0
+_0205DF4C:
+ mov r0, #0x28
+ mul r0, r6
+ add r4, r7, r0
+ ldr r0, [r4, #0x28]
+ cmp r0, #0x0
+ beq _0205DF8C
+ ldr r0, [r4, #0x30]
+ ldr r1, [r4, #0x1c]
+ ldr r2, [r4, #0x20]
+ cmp r0, #0x0
+ beq _0205DF6E
+ add r0, r5, #0x0
+ mov r3, #0x2
+ bl FUN_0224B818
+ str r0, [r4, #0x34]
+ b _0205DF90
+_0205DF6E:
+ ldr r0, [r4, #0x24]
+ cmp r0, #0x0
+ bne _0205DF80
+ add r0, r5, #0x0
+ mov r3, #0x0
+ bl FUN_0224B818
+ str r0, [r4, #0x34]
+ b _0205DF90
+_0205DF80:
+ add r0, r5, #0x0
+ mov r3, #0x1
+ bl FUN_0224B818
+ str r0, [r4, #0x34]
+ b _0205DF90
+_0205DF8C:
+ mov r0, #0x0
+ str r0, [r4, #0x34]
+_0205DF90:
+ add r0, r6, #0x1
+ lsl r0, r0, #0x18
+ lsr r6, r0, #0x18
+ cmp r6, #0x4
+ blo _0205DF4C
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_0205DF9C
+FUN_0205DF9C: ; 0x0205DF9C
+ push {r3-r7, lr}
+ mov r4, #0x0
+ add r7, r0, #0x0
+ add r6, r4, #0x0
+_0205DFA4:
+ mov r0, #0x28
+ mul r0, r6
+ add r5, r7, r0
+ ldr r0, [r5, #0x34]
+ cmp r0, #0x0
+ beq _0205DFCA
+ bl FUN_0224B86C
+ cmp r0, #0x0
+ beq _0205DFD0
+ ldr r0, [r5, #0x34]
+ bl FUN_02064520
+ mov r0, #0x0
+ str r0, [r5, #0x34]
+ add r0, r4, #0x1
+ lsl r0, r0, #0x18
+ lsr r4, r0, #0x18
+ b _0205DFD0
+_0205DFCA:
+ add r0, r4, #0x1
+ lsl r0, r0, #0x18
+ lsr r4, r0, #0x18
+_0205DFD0:
+ add r0, r6, #0x1
+ lsl r0, r0, #0x18
+ lsr r6, r0, #0x18
+ cmp r6, #0x4
+ blo _0205DFA4
+ cmp r4, #0x4
+ blo _0205DFE2
+ mov r0, #0x1
+ pop {r3-r7, pc}
+_0205DFE2:
+ mov r0, #0x0
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_0205DFE8
+FUN_0205DFE8: ; 0x0205DFE8
+ push {r3-r7, lr}
+ sub sp, #0x8
+ ldr r7, [sp, #0x24]
+ add r6, r0, #0x0
+ mov r12, r1
+ ldr r0, [sp, #0x28]
+ mov r1, #0x0
+ add r4, r3, #0x0
+ str r1, [r7, #0x0]
+ str r2, [sp, #0x0]
+ str r1, [r0, #0x0]
+ str r0, [sp, #0x28]
+ add r0, r4, #0x0
+ add r1, r6, #0x0
+ mov r2, r12
+ add r3, sp, #0x4
+ ldr r5, [sp, #0x20]
+ bl FUN_0205E1B8
+ cmp r0, #0x0
+ bne _0205E018
+ add sp, #0x8
+ mov r0, #0x0
+ pop {r3-r7, pc}
+_0205E018:
+ mov r0, #0x1
+ str r0, [r4, #0x18]
+ add r0, sp, #0x4
+ ldrb r1, [r0, #0x0]
+ mov r0, #0x28
+ mul r0, r1
+ add r0, r4, r0
+ ldr r1, [r0, #0x2c]
+ ldr r6, [r0, #0x24]
+ ldr r0, [r4, #0x14]
+ cmp r0, #0x0
+ bne _0205E062
+ cmp r1, #0x0
+ beq _0205E05E
+ add r0, r4, #0x4
+ bl FUN_0205E4D8
+ str r6, [r5, #0x0]
+ mov r0, #0x1
+ str r0, [r7, #0x0]
+ ldr r0, [sp, #0x0]
+ add r1, r4, #0x0
+ bl FUN_0205E1F0
+ add r0, sp, #0x4
+ ldrb r1, [r0, #0x0]
+ mov r0, #0x28
+ mul r0, r1
+ add r0, r4, r0
+ ldr r1, [r0, #0x30]
+ ldr r0, [sp, #0x28]
+ add sp, #0x8
+ str r1, [r0, #0x0]
+ mov r0, #0x1
+ pop {r3-r7, pc}
+_0205E05E:
+ str r6, [r5, #0x0]
+ b _0205E074
+_0205E062:
+ str r6, [r5, #0x0]
+ mov r0, #0x0
+ str r0, [r4, #0x14]
+ ldr r0, [sp, #0x0]
+ bl FUN_0205E258
+ add r1, r4, #0x0
+ add r1, #0xd0
+ strb r0, [r1, #0x0]
+_0205E074:
+ ldr r0, [r5, #0x0]
+ str r0, [r4, #0x0]
+ mov r0, #0x1
+ add sp, #0x8
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_0205E080
+FUN_0205E080: ; 0x0205E080
+ push {r4-r6, lr}
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ add r6, r2, #0x0
+ cmp r4, #0x0
+ bne _0205E090
+ bl ErrorHandling
+_0205E090:
+ str r4, [r5, #0x8]
+ str r6, [r5, #0xc]
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_0205E098
+FUN_0205E098: ; 0x0205E098
+ ldr r3, [r0, #0x8]
+ str r3, [r1, #0x0]
+ ldr r0, [r0, #0xc]
+ str r0, [r2, #0x0]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_0205E0A4
+FUN_0205E0A4: ; 0x0205E0A4
+ ldr r0, [r0, #0x18]
+ bx lr
+
+ thumb_func_start FUN_0205E0A8
+FUN_0205E0A8: ; 0x0205E0A8
+ push {r3-r7, lr}
+ add r7, r0, #0x0
+ add r0, #0x90
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0x10]
+ cmp r0, #0x0
+ beq _0205E126
+ ldr r0, [r7, #0x10]
+ cmp r0, #0x0
+ bne _0205E126
+ mov r6, #0x0
+ add r5, r6, #0x0
+_0205E0C0:
+ add r0, r7, #0x0
+ add r0, #0x90
+ ldr r1, [r0, #0x0]
+ add r0, r1, #0x0
+ add r0, #0x1c
+ add r4, r0, r5
+ add r0, r4, #0x0
+ add r0, #0x1c
+ add r1, #0xbc
+ bl FUN_0201B76C
+ ldr r1, [r4, #0xc]
+ cmp r1, #0x0
+ beq _0205E0E4
+ cmp r0, #0x0
+ bne _0205E0E4
+ mov r0, #0x0
+ str r0, [r4, #0xc]
+_0205E0E4:
+ add r6, r6, #0x1
+ add r5, #0x28
+ cmp r6, #0x4
+ blt _0205E0C0
+ add r0, r7, #0x0
+ add r0, #0x90
+ ldr r0, [r0, #0x0]
+ mov r2, #0x0
+ add r3, r0, #0x0
+ add r4, r2, #0x0
+ add r3, #0x1c
+_0205E0FA:
+ ldr r1, [r3, #0xc]
+ cmp r1, #0x0
+ bne _0205E102
+ add r2, r2, #0x1
+_0205E102:
+ add r4, r4, #0x1
+ add r3, #0x28
+ cmp r4, #0x4
+ blt _0205E0FA
+ cmp r2, #0x4
+ bne _0205E126
+ bl FUN_0205DD40
+ ldr r1, [r7, #0x1c]
+ add r0, r7, #0x0
+ ldr r1, [r1, #0x0]
+ bl FUN_0204AB58
+ add r1, r0, #0x0
+ add r0, r7, #0x0
+ mov r2, #0x1
+ bl FUN_0204ABDC
+_0205E126:
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_0205E128
+FUN_0205E128: ; 0x0205E128
+ ldr r0, [r0, #0x10]
+ bx lr
+
+ thumb_func_start FUN_0205E12C
+FUN_0205E12C: ; 0x0205E12C
+ push {r4-r7, lr}
+ sub sp, #0xc
+ str r1, [sp, #0x4]
+ add r1, sp, #0x10
+ sub r4, r2, #0x4
+ ldrb r2, [r1, #0x10]
+ ldrb r1, [r1, #0x14]
+ ldr r5, [sp, #0x28]
+ add r4, r4, r2
+ sub r2, r3, #0x4
+ add r6, r2, r1
+ str r4, [r5, #0x0]
+ add r1, r4, #0x0
+ add r2, r6, #0x0
+ add r7, r0, #0x0
+ str r6, [r5, #0x4]
+ bl FUN_0204A6E0
+ bl FUN_0205478C
+ cmp r0, #0x0
+ beq _0205E1AE
+ lsl r0, r4, #0x10
+ str r0, [r5, #0x1c]
+ lsl r0, r6, #0x10
+ str r0, [r5, #0x24]
+ add r0, sp, #0x8
+ str r0, [sp, #0x0]
+ ldr r2, [r5, #0x1c]
+ ldr r3, [r5, #0x24]
+ add r0, r7, #0x0
+ mov r1, #0x0
+ bl FUN_0204A708
+ ldr r1, [sp, #0x4]
+ str r0, [r5, #0x20]
+ cmp r1, r0
+ beq _0205E180
+ mov r0, #0x0
+ add sp, #0xc
+ str r0, [r5, #0xc]
+ pop {r4-r7, pc}
+_0205E180:
+ asr r1, r4, #0x4
+ asr r2, r6, #0x4
+ lsr r1, r1, #0x1b
+ lsr r2, r2, #0x1b
+ add r1, r4, r1
+ add r2, r6, r2
+ ldr r0, [r7, #0x28]
+ asr r1, r1, #0x5
+ asr r2, r2, #0x5
+ bl FUN_0203451C
+ ldr r1, [r7, #0x1c]
+ ldr r1, [r1, #0x0]
+ cmp r1, r0
+ beq _0205E1A6
+ mov r0, #0x0
+ add sp, #0xc
+ str r0, [r5, #0xc]
+ pop {r4-r7, pc}
+_0205E1A6:
+ mov r0, #0x1
+ add sp, #0xc
+ str r0, [r5, #0xc]
+ pop {r4-r7, pc}
+_0205E1AE:
+ mov r0, #0x0
+ str r0, [r5, #0xc]
+ add sp, #0xc
+ pop {r4-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_0205E1B8
+FUN_0205E1B8: ; 0x0205E1B8
+ push {r4-r7}
+ mov r5, #0x0
+ mov r6, #0x28
+_0205E1BE:
+ add r4, r5, #0x0
+ mul r4, r6
+ add r4, r0, r4
+ ldr r7, [r4, #0x28]
+ cmp r7, #0x0
+ beq _0205E1DE
+ ldr r7, [r4, #0x1c]
+ cmp r1, r7
+ bne _0205E1DE
+ ldr r4, [r4, #0x20]
+ cmp r2, r4
+ bne _0205E1DE
+ strb r5, [r3, #0x0]
+ mov r0, #0x1
+ pop {r4-r7}
+ bx lr
+_0205E1DE:
+ add r4, r5, #0x1
+ lsl r4, r4, #0x18
+ lsr r5, r4, #0x18
+ cmp r5, #0x4
+ blo _0205E1BE
+ mov r0, #0x0
+ pop {r4-r7}
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_0205E1F0
+FUN_0205E1F0: ; 0x0205E1F0
+ push {r4-r6, lr}
+ ldr r0, [r0, #0xc]
+ add r5, r1, #0x0
+ bl FUN_0202A9B0
+ bl FUN_0202A9AC
+ add r3, r5, #0x0
+ add r3, #0xd0
+ ldrb r3, [r3, #0x0]
+ add r4, r0, #0x0
+ add r1, r4, #0x2
+ lsl r6, r3, #0x2
+ ldrh r3, [r1, r6]
+ ldr r2, [r5, #0x4]
+ cmp r3, r2
+ bge _0205E256
+ strh r2, [r1, r6]
+ add r1, r5, #0x0
+ add r1, #0xd0
+ ldrb r1, [r1, #0x0]
+ ldr r2, [r5, #0x8]
+ lsl r1, r1, #0x2
+ strh r2, [r4, r1]
+ bl FUN_02245844
+ add r0, r5, #0x0
+ add r0, #0xd0
+ ldrb r0, [r0, #0x0]
+ ldr r2, [r5, #0x4]
+ lsl r0, r0, #0x2
+ add r0, r4, r0
+ ldrh r0, [r0, #0x2]
+ cmp r0, r2
+ bgt _0205E256
+ mov r1, #0x0
+ mov r3, #0x2
+_0205E23A:
+ sub r0, r3, r1
+ lsl r6, r0, #0x2
+ add r6, r4, r6
+ ldrh r6, [r6, #0x2]
+ cmp r2, r6
+ bne _0205E24C
+ add r5, #0xd0
+ strb r0, [r5, #0x0]
+ pop {r4-r6, pc}
+_0205E24C:
+ add r1, r1, #0x1
+ cmp r1, #0x3
+ blt _0205E23A
+ bl ErrorHandling
+_0205E256:
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_0205E258
+FUN_0205E258: ; 0x0205E258
+ push {r3, lr}
+ ldr r0, [r0, #0xc]
+ bl FUN_0202A9B0
+ bl FUN_0202A9AC
+ mov r2, #0x0
+_0205E266:
+ lsl r1, r2, #0x2
+ ldrh r1, [r0, r1]
+ cmp r1, #0x0
+ bne _0205E272
+ add r0, r2, #0x0
+ pop {r3, pc}
+_0205E272:
+ add r1, r2, #0x1
+ lsl r1, r1, #0x18
+ lsr r2, r1, #0x18
+ cmp r2, #0x3
+ blo _0205E266
+ ldrh r2, [r0, #0x2]
+ ldrh r1, [r0, #0x6]
+ cmp r2, r1
+ blo _0205E288
+ mov r1, #0x1
+ b _0205E28A
+_0205E288:
+ mov r1, #0x0
+_0205E28A:
+ lsl r1, r1, #0x18
+ lsr r2, r1, #0x18
+ lsl r1, r2, #0x2
+ add r1, r0, r1
+ ldrh r1, [r1, #0x2]
+ ldrh r0, [r0, #0xa]
+ cmp r1, r0
+ blo _0205E29C
+ mov r2, #0x2
+_0205E29C:
+ add r0, r2, #0x0
+ pop {r3, pc}
+
+ thumb_func_start FUN_0205E2A0
+FUN_0205E2A0: ; 0x0205E2A0
+ push {r3-r7, lr}
+ sub sp, #0x8
+ ldr r3, _0205E308 ; =0x020F7374
+ add r5, r0, #0x0
+ ldrb r4, [r3, #0x0]
+ add r2, sp, #0x0
+ add r0, sp, #0x4
+ strb r4, [r2, #0x4]
+ ldrb r4, [r3, #0x1]
+ add r7, sp, #0x0
+ cmp r1, #0x1
+ strb r4, [r2, #0x5]
+ ldrb r4, [r3, #0x2]
+ strb r4, [r2, #0x6]
+ ldrb r4, [r3, #0x3]
+ strb r4, [r2, #0x7]
+ ldrb r4, [r3, #0x8]
+ strb r4, [r2, #0x0]
+ ldrb r4, [r3, #0x9]
+ strb r4, [r2, #0x1]
+ ldrb r4, [r3, #0xa]
+ strb r4, [r2, #0x2]
+ ldrb r3, [r3, #0xb]
+ strb r3, [r2, #0x3]
+ bne _0205E2D6
+ add r6, r0, #0x0
+ b _0205E2DC
+_0205E2D6:
+ cmp r1, #0x4
+ bne _0205E2DC
+ add r6, r7, #0x0
+_0205E2DC:
+ bl FUN_0201B9EC
+ mov r1, #0x29
+ lsl r1, r1, #0x4
+ blx _s32_div_f
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+ cmp r4, #0x64
+ blo _0205E2F4
+ bl ErrorHandling
+_0205E2F4:
+ ldrb r0, [r6, r5]
+ cmp r4, r0
+ bge _0205E300
+ add sp, #0x8
+ mov r0, #0x1
+ pop {r3-r7, pc}
+_0205E300:
+ mov r0, #0x0
+ add sp, #0x8
+ pop {r3-r7, pc}
+ nop
+_0205E308: .word 0x020F7374
+
+ thumb_func_start FUN_0205E30C
+FUN_0205E30C: ; 0x0205E30C
+ push {r3-r7, lr}
+ add r7, r0, #0x0
+ bl FUN_02046528
+ add r4, r0, #0x0
+ add r0, r7, #0x0
+ bl FUN_0204652C
+ add r5, r0, #0x0
+ ldr r1, [r5, #0x0]
+ cmp r1, #0x4
+ bhi _0205E3FC
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #0x6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_0205E330: ; jump table (using 16-bit offset)
+ .short _0205E33A - _0205E330 - 2; case 0
+ .short _0205E3C0 - _0205E330 - 2; case 1
+ .short _0205E3CC - _0205E330 - 2; case 2
+ .short _0205E3EC - _0205E330 - 2; case 3
+ .short _0205E3DE - _0205E330 - 2; case 4
+_0205E33A:
+ ldr r0, [r4, #0x34]
+ bl FUN_02058780
+ ldr r0, [r4, #0xc]
+ bl FUN_0202A9B0
+ bl FUN_0202AB40
+ add r6, r0, #0x0
+ ldrb r0, [r6, #0x0]
+ cmp r0, #0x32
+ bhs _0205E374
+ mov r2, #0x0
+ ldr r1, _0205E400 ; =0x0000230A
+ add r0, r7, #0x0
+ add r3, r2, #0x0
+ bl FUN_02038CD8
+ add r0, r4, #0x0
+ mov r1, #0x29
+ bl FUN_02039438
+ ldrb r2, [r6, #0x0]
+ mov r1, #0x32
+ sub r1, r1, r2
+ strh r1, [r0, #0x0]
+ mov r0, #0x4
+ str r0, [r5, #0x0]
+ b _0205E3FC
+_0205E374:
+ mov r0, #0x0
+ strb r0, [r6, #0x0]
+ ldr r0, [r4, #0x38]
+ bl FUN_02055320
+ add r6, r0, #0x0
+ ldr r0, [r4, #0x38]
+ bl FUN_0205532C
+ add r3, r4, #0x0
+ add r3, #0x90
+ add r2, r0, #0x0
+ ldr r3, [r3, #0x0]
+ add r0, r4, #0x0
+ add r1, r6, #0x0
+ bl FUN_0205DD80
+ add r0, r4, #0x0
+ add r0, #0x90
+ ldr r2, [r0, #0x0]
+ ldr r0, [r2, #0x10]
+ cmp r0, #0x0
+ beq _0205E3BA
+ add r0, r4, #0x0
+ mov r1, #0x1
+ bl FUN_0205DED4
+ add r0, r4, #0x0
+ add r4, #0x90
+ ldr r1, [r4, #0x0]
+ bl FUN_0205DF44
+ mov r0, #0x1
+ str r0, [r5, #0x0]
+ b _0205E3FC
+_0205E3BA:
+ mov r0, #0x3
+ str r0, [r5, #0x0]
+ b _0205E3FC
+_0205E3C0:
+ ldr r0, _0205E404 ; =0x0000047E
+ bl FUN_0200521C
+ mov r0, #0x2
+ str r0, [r5, #0x0]
+ b _0205E3FC
+_0205E3CC:
+ add r4, #0x90
+ ldr r0, [r4, #0x0]
+ bl FUN_0205DF9C
+ cmp r0, #0x0
+ beq _0205E3FC
+ mov r0, #0x4
+ str r0, [r5, #0x0]
+ b _0205E3FC
+_0205E3DE:
+ bl FUN_02016A18
+ ldr r0, [r4, #0x34]
+ bl FUN_020587B0
+ mov r0, #0x1
+ pop {r3-r7, pc}
+_0205E3EC:
+ mov r2, #0x0
+ ldr r1, _0205E408 ; =0x0000230B
+ add r0, r7, #0x0
+ add r3, r2, #0x0
+ bl FUN_02038CD8
+ mov r0, #0x4
+ str r0, [r5, #0x0]
+_0205E3FC:
+ mov r0, #0x0
+ pop {r3-r7, pc}
+ .balign 4
+_0205E400: .word 0x0000230A
+_0205E404: .word 0x0000047E
+_0205E408: .word 0x0000230B
+
+ thumb_func_start FUN_0205E40C
+FUN_0205E40C: ; 0x0205E40C
+ push {r3-r5, lr}
+ cmp r0, #0x0
+ bne _0205E416
+ mov r0, #0x0
+ pop {r3-r5, pc}
+_0205E416:
+ add r2, r0, #0x0
+ mov r1, #0xc8
+ ldr r0, _0205E478 ; =0x00002008
+ mul r2, r1
+ sub r5, r0, r2
+ cmp r5, #0xc8
+ bge _0205E426
+ add r5, r1, #0x0
+_0205E426:
+ lsl r0, r5, #0x10
+ lsr r0, r0, #0x10
+ bne _0205E430
+ bl ErrorHandling
+_0205E430:
+ lsl r0, r5, #0x10
+ lsr r0, r0, #0x10
+ cmp r0, #0x1
+ bhi _0205E43C
+ mov r4, #0x0
+ b _0205E46A
+_0205E43C:
+ bl FUN_0201B9EC
+ add r4, r0, #0x0
+ lsl r1, r5, #0x10
+ ldr r0, _0205E47C ; =0x0000FFFF
+ lsr r1, r1, #0x10
+ blx _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
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+ lsl r0, r5, #0x10
+ lsr r0, r0, #0x10
+ cmp r4, r0
+ blo _0205E46A
+ bl ErrorHandling
+_0205E46A:
+ cmp r4, #0x0
+ bne _0205E472
+ mov r0, #0x1
+ pop {r3-r5, pc}
+_0205E472:
+ mov r0, #0x0
+ pop {r3-r5, pc}
+ nop
+_0205E478: .word 0x00002008
+_0205E47C: .word 0x0000FFFF
+
+ thumb_func_start FUN_0205E480
+FUN_0205E480: ; 0x0205E480
+ push {r4, lr}
+ add r4, r0, #0x0
+ add r0, #0x90
+ ldr r0, [r0, #0x0]
+ add r0, r0, #0x4
+ bl FUN_0205E4D8
+ add r0, r4, #0x0
+ add r4, #0x90
+ ldr r1, [r4, #0x0]
+ bl FUN_0205E1F0
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0205E49C
+FUN_0205E49C: ; 0x0205E49C
+ add r0, #0x90
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0x4]
+ bx lr
+
+ thumb_func_start FUN_0205E4A4
+FUN_0205E4A4: ; 0x0205E4A4
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r0, [r4, #0xc]
+ bl FUN_0206F158
+ ldr r1, _0205E4D4 ; =0x000001AF
+ mov r2, #0x1
+ mov r3, #0x4
+ bl FUN_0206EE50
+ cmp r0, #0x1
+ bne _0205E4D0
+ ldr r0, [r4, #0xc]
+ bl FUN_0202A9B0
+ bl FUN_0202AB40
+ ldrb r1, [r0, #0x0]
+ cmp r1, #0x32
+ bhs _0205E4D0
+ add r1, r1, #0x1
+ strb r1, [r0, #0x0]
+_0205E4D0:
+ pop {r4, pc}
+ nop
+_0205E4D4: .word 0x000001AF
+
+ thumb_func_start FUN_0205E4D8
+FUN_0205E4D8: ; 0x0205E4D8
+ ldr r1, [r0, #0x0]
+ add r2, r1, #0x1
+ ldr r1, _0205E4E8 ; =0x000003E7
+ str r2, [r0, #0x0]
+ cmp r2, r1
+ ble _0205E4E6
+ str r1, [r0, #0x0]
+_0205E4E6:
+ bx lr
+ .balign 4
+_0205E4E8: .word 0x000003E7
+
+ thumb_func_start FUN_0205E4EC
+FUN_0205E4EC: ; 0x0205E4EC
+ push {r4, lr}
+ add r4, r0, #0x0
+ mov r1, #0x8
+ bl FUN_0205858C
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_0205E5B4
+ add r0, r4, #0x0
+ mov r1, #0x0
+ bl FUN_02058544
+ add r0, r4, #0x0
+ bl FUN_02058848
+ add r0, r4, #0x0
+ mov r1, #0x0
+ bl FUN_020588B8
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0205E518
+FUN_0205E518: ; 0x0205E518
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ bl FUN_020585B0
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_0205E5B4
+ cmp r0, #0x0
+ beq _0205E548
+ add r0, r5, #0x0
+ mov r1, #0x0
+ bl FUN_020588B8
+ ldr r6, _0205E54C ; =0x020F7388
+_0205E538:
+ ldrb r2, [r4, #0x0]
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ lsl r2, r2, #0x2
+ ldr r2, [r6, r2]
+ blx r2
+ cmp r0, #0x1
+ beq _0205E538
+_0205E548:
+ pop {r4-r6, pc}
+ nop
+_0205E54C: .word 0x020F7388
+
+ thumb_func_start FUN_0205E550
+FUN_0205E550: ; 0x0205E550
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_0205E554
+FUN_0205E554: ; 0x0205E554
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ bl FUN_02058848
+ add r0, r5, #0x0
+ bl FUN_0205886C
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_0205E608
+ cmp r0, #0x1
+ bne _0205E592
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_0205E63C
+ add r0, r5, #0x0
+ bl FUN_0205E698
+ cmp r0, #0x1
+ bne _0205E592
+ add r0, r5, #0x0
+ bl FUN_0205883C
+ ldrb r0, [r4, #0x0]
+ add r0, r0, #0x1
+ strb r0, [r4, #0x0]
+ mov r0, #0x1
+ pop {r3-r5, pc}
+_0205E592:
+ mov r0, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_0205E598
+FUN_0205E598: ; 0x0205E598
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ bl FUN_0205B080
+ cmp r0, #0x1
+ bne _0205E5B0
+ add r0, r5, #0x0
+ bl FUN_02058848
+ mov r0, #0x0
+ strb r0, [r4, #0x0]
+_0205E5B0:
+ mov r0, #0x0
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_0205E5B4
+FUN_0205E5B4: ; 0x0205E5B4
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ bl FUN_02058578
+ bl FUN_020552A4
+ cmp r0, #0x0
+ bne _0205E5CC
+ mov r0, #0x0
+ strb r0, [r4, #0x1]
+ pop {r3-r5, pc}
+_0205E5CC:
+ ldrb r0, [r4, #0x1]
+ cmp r0, #0x0
+ bne _0205E5DA
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_0205E5E0
+_0205E5DA:
+ mov r0, #0x1
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_0205E5E0
+FUN_0205E5E0: ; 0x0205E5E0
+ push {r3-r5, lr}
+ add r5, r1, #0x0
+ bl FUN_02058738
+ bl FUN_02055698
+ mov r1, #0x1
+ add r4, r0, #0x0
+ strb r1, [r5, #0x1]
+ bl FUN_02055320
+ strh r0, [r5, #0x2]
+ add r0, r4, #0x0
+ bl FUN_0205532C
+ strh r0, [r5, #0x4]
+ mov r0, #0xff
+ strh r0, [r5, #0x6]
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_0205E608
+FUN_0205E608: ; 0x0205E608
+ push {r4-r6, lr}
+ add r5, r1, #0x0
+ bl FUN_02058738
+ bl FUN_02055698
+ add r6, r0, #0x0
+ beq _0205E638
+ bl FUN_02055320
+ add r4, r0, #0x0
+ add r0, r6, #0x0
+ bl FUN_0205532C
+ mov r1, #0x2
+ ldrsh r1, [r5, r1]
+ cmp r4, r1
+ bne _0205E634
+ mov r1, #0x4
+ ldrsh r1, [r5, r1]
+ cmp r0, r1
+ beq _0205E638
+_0205E634:
+ mov r0, #0x1
+ pop {r4-r6, pc}
+_0205E638:
+ mov r0, #0x0
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_0205E63C
+FUN_0205E63C: ; 0x0205E63C
+ push {r3-r5, lr}
+ add r5, r1, #0x0
+ bl FUN_02058738
+ bl FUN_02055698
+ add r4, r0, #0x0
+ bl FUN_02055320
+ strh r0, [r5, #0x2]
+ add r0, r4, #0x0
+ bl FUN_0205532C
+ strh r0, [r5, #0x4]
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_0205E65C
+FUN_0205E65C: ; 0x0205E65C
+ push {r3, lr}
+ bl FUN_02058738
+ bl FUN_02055698
+ bl FUN_02055464
+ add r1, r0, #0x0
+ sub r1, #0x58
+ cmp r1, #0x3
+ bhi _0205E694
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #0x6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_0205E67E: ; jump table (using 16-bit offset)
+ .short _0205E686 - _0205E67E - 2; case 0
+ .short _0205E68A - _0205E67E - 2; case 1
+ .short _0205E68E - _0205E67E - 2; case 2
+ .short _0205E692 - _0205E67E - 2; case 3
+_0205E686:
+ mov r0, #0x10
+ pop {r3, pc}
+_0205E68A:
+ mov r0, #0x11
+ pop {r3, pc}
+_0205E68E:
+ mov r0, #0x12
+ pop {r3, pc}
+_0205E692:
+ mov r0, #0x13
+_0205E694:
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_0205E698
+FUN_0205E698: ; 0x0205E698
+ push {r3-r7, lr}
+ sub sp, #0x8
+ add r5, r0, #0x0
+ bl FUN_02058738
+ bl FUN_02055698
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_02058B2C
+ str r0, [sp, #0x0]
+ add r0, r5, #0x0
+ bl FUN_02058B4C
+ add r7, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_02055338
+ add r6, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_02055344
+ add r4, r0, #0x0
+ ldr r0, [sp, #0x0]
+ cmp r0, r6
+ bne _0205E6D2
+ cmp r7, r4
+ beq _0205E6FA
+_0205E6D2:
+ add r0, r5, #0x0
+ bl FUN_0205E65C
+ str r0, [sp, #0x4]
+ ldr r0, [sp, #0x0]
+ add r1, r7, #0x0
+ add r2, r6, #0x0
+ add r3, r4, #0x0
+ bl FUN_02059E80
+ ldr r1, [sp, #0x4]
+ bl FUN_0205AFDC
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_0205AE0C
+ add sp, #0x8
+ mov r0, #0x1
+ pop {r3-r7, pc}
+_0205E6FA:
+ mov r0, #0x0
+ add sp, #0x8
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_0205E700
+FUN_0205E700: ; 0x0205E700
+ push {r3-r5, lr}
+ mov r1, #0xc
+ add r5, r0, #0x0
+ bl FUN_0205858C
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_0205E854
+ add r0, r5, #0x0
+ mov r1, #0x0
+ bl FUN_02058544
+ add r0, r5, #0x0
+ bl FUN_02058848
+ mov r0, #0x0
+ strb r0, [r4, #0x1]
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_0205E728
+FUN_0205E728: ; 0x0205E728
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ bl FUN_020585B0
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_0205E854
+ cmp r0, #0x0
+ beq _0205E750
+ ldr r6, _0205E754 ; =0x020F7390
+_0205E740:
+ ldrb r2, [r4, #0x0]
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ lsl r2, r2, #0x2
+ ldr r2, [r6, r2]
+ blx r2
+ cmp r0, #0x1
+ beq _0205E740
+_0205E750:
+ pop {r4-r6, pc}
+ nop
+_0205E754: .word 0x020F7390
+
+ thumb_func_start FUN_0205E758
+FUN_0205E758: ; 0x0205E758
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_0205E75C
+FUN_0205E75C: ; 0x0205E75C
+ push {r3, lr}
+ bl FUN_020585B0
+ mov r1, #0x0
+ strb r1, [r0, #0x1]
+ pop {r3, pc}
+
+ thumb_func_start FUN_0205E768
+FUN_0205E768: ; 0x0205E768
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ bl FUN_02058848
+ add r0, r5, #0x0
+ bl FUN_0205886C
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_0205E8F4
+ cmp r0, #0x1
+ bne _0205E7A0
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_0205E940
+ cmp r0, #0x1
+ bne _0205E7A0
+ add r0, r5, #0x0
+ bl FUN_0205883C
+ ldrb r0, [r4, #0x0]
+ add r0, r0, #0x1
+ strb r0, [r4, #0x0]
+ mov r0, #0x1
+ pop {r3-r5, pc}
+_0205E7A0:
+ mov r0, #0x0
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_0205E7A4
+FUN_0205E7A4: ; 0x0205E7A4
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ bl FUN_0205B080
+ cmp r0, #0x0
+ bne _0205E7B6
+ mov r0, #0x0
+ pop {r3-r5, pc}
+_0205E7B6:
+ add r0, r5, #0x0
+ bl FUN_02058848
+ mov r0, #0x0
+ strb r0, [r4, #0x0]
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_0205E7C4
+FUN_0205E7C4: ; 0x0205E7C4
+ push {r4-r7, lr}
+ sub sp, #0xc
+ mov r1, #0x0
+ add r4, r0, #0x0
+ str r1, [sp, #0x8]
+ bl FUN_02058488
+ str r0, [sp, #0x0]
+ add r0, r4, #0x0
+ bl FUN_02058450
+ add r6, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_0205C9E8
+ add r5, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_02058578
+ ldr r1, [sp, #0x0]
+ add r7, r0, #0x0
+ cmp r1, #0x8
+ bhi _0205E84C
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #0x6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_0205E7FE: ; jump table (using 16-bit offset)
+ .short _0205E84C - _0205E7FE - 2; case 0
+ .short _0205E810 - _0205E7FE - 2; case 1
+ .short _0205E810 - _0205E7FE - 2; case 2
+ .short _0205E810 - _0205E7FE - 2; case 3
+ .short _0205E810 - _0205E7FE - 2; case 4
+ .short _0205E810 - _0205E7FE - 2; case 5
+ .short _0205E810 - _0205E7FE - 2; case 6
+ .short _0205E810 - _0205E7FE - 2; case 7
+ .short _0205E810 - _0205E7FE - 2; case 8
+_0205E810:
+ add r1, sp, #0x4
+ add r2, sp, #0x8
+ mov r3, #0x1
+ bl FUN_020580F4
+ cmp r0, #0x1
+ bne _0205E84C
+_0205E81E:
+ ldr r0, [sp, #0x4]
+ cmp r4, r0
+ beq _0205E83C
+ bl FUN_02058450
+ cmp r6, r0
+ bne _0205E83C
+ ldr r0, [sp, #0x4]
+ bl FUN_0205C9E8
+ cmp r5, r0
+ bne _0205E83C
+ ldr r0, [sp, #0x4]
+ add sp, #0xc
+ pop {r4-r7, pc}
+_0205E83C:
+ add r0, r7, #0x0
+ add r1, sp, #0x4
+ add r2, sp, #0x8
+ mov r3, #0x1
+ bl FUN_020580F4
+ cmp r0, #0x1
+ beq _0205E81E
+_0205E84C:
+ mov r0, #0x0
+ add sp, #0xc
+ pop {r4-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_0205E854
+FUN_0205E854: ; 0x0205E854
+ push {r4-r7, lr}
+ sub sp, #0xc
+ add r5, r0, #0x0
+ str r1, [sp, #0x0]
+ bl FUN_02058578
+ add r4, r0, #0x0
+ mov r0, #0x0
+ str r0, [sp, #0x8]
+ add r0, r5, #0x0
+ bl FUN_02058450
+ add r7, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_0205C9E8
+ add r6, r0, #0x0
+ add r0, r4, #0x0
+ add r1, sp, #0x4
+ add r2, sp, #0x8
+ mov r3, #0x1
+ bl FUN_020580F4
+ cmp r0, #0x1
+ bne _0205E8C6
+_0205E886:
+ ldr r0, [sp, #0x4]
+ cmp r5, r0
+ beq _0205E8B6
+ bl FUN_02058450
+ cmp r7, r0
+ bne _0205E8B6
+ ldr r0, [sp, #0x4]
+ bl FUN_0205C9E8
+ cmp r6, r0
+ bne _0205E8B6
+ ldr r0, [sp, #0x0]
+ ldrb r0, [r0, #0x1]
+ cmp r0, #0x0
+ bne _0205E8B0
+ ldr r1, [sp, #0x0]
+ ldr r2, [sp, #0x4]
+ add r0, r5, #0x0
+ bl FUN_0205E8D0
+_0205E8B0:
+ add sp, #0xc
+ mov r0, #0x1
+ pop {r4-r7, pc}
+_0205E8B6:
+ add r0, r4, #0x0
+ add r1, sp, #0x4
+ add r2, sp, #0x8
+ mov r3, #0x1
+ bl FUN_020580F4
+ cmp r0, #0x1
+ beq _0205E886
+_0205E8C6:
+ ldr r1, [sp, #0x0]
+ mov r0, #0x0
+ strb r0, [r1, #0x1]
+ add sp, #0xc
+ pop {r4-r7, pc}
+
+ thumb_func_start FUN_0205E8D0
+FUN_0205E8D0: ; 0x0205E8D0
+ push {r3-r5, lr}
+ add r5, r1, #0x0
+ mov r0, #0x1
+ add r4, r2, #0x0
+ strb r0, [r5, #0x1]
+ add r0, r4, #0x0
+ bl FUN_02058B2C
+ strh r0, [r5, #0x2]
+ add r0, r4, #0x0
+ bl FUN_02058B4C
+ strh r0, [r5, #0x4]
+ mov r0, #0xff
+ strh r0, [r5, #0x6]
+ str r4, [r5, #0x8]
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_0205E8F4
+FUN_0205E8F4: ; 0x0205E8F4
+ push {r3-r7, lr}
+ add r6, r0, #0x0
+ ldr r5, [r1, #0x8]
+ bl FUN_02058B2C
+ add r4, r0, #0x0
+ add r0, r6, #0x0
+ bl FUN_02058B4C
+ add r6, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_02058B14
+ add r7, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_02058B24
+ cmp r4, r7
+ bne _0205E91E
+ cmp r6, r0
+ beq _0205E93A
+_0205E91E:
+ add r0, r5, #0x0
+ bl FUN_02058854
+ cmp r0, #0x1
+ beq _0205E936
+ mov r1, #0x61
+ add r0, r5, #0x0
+ lsl r1, r1, #0x6
+ bl FUN_02058424
+ cmp r0, #0x0
+ bne _0205E93A
+_0205E936:
+ mov r0, #0x1
+ pop {r3-r7, pc}
+_0205E93A:
+ mov r0, #0x0
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_0205E940
+FUN_0205E940: ; 0x0205E940
+ push {r4-r7, lr}
+ sub sp, #0xc
+ str r0, [sp, #0x0]
+ add r5, r1, #0x0
+ bl FUN_02058B2C
+ add r4, r0, #0x0
+ ldr r0, [sp, #0x0]
+ bl FUN_02058B4C
+ add r6, r0, #0x0
+ ldr r0, [r5, #0x8]
+ bl FUN_02058B2C
+ str r0, [sp, #0x8]
+ ldr r0, [r5, #0x8]
+ bl FUN_02058B4C
+ add r7, r0, #0x0
+ ldr r0, [r5, #0x8]
+ bl FUN_02058B14
+ str r0, [sp, #0x4]
+ ldr r0, [r5, #0x8]
+ bl FUN_02058B24
+ add r3, r0, #0x0
+ ldr r0, [sp, #0x8]
+ cmp r4, r0
+ bne _0205E986
+ cmp r6, r7
+ bne _0205E986
+ add sp, #0xc
+ mov r0, #0x0
+ pop {r4-r7, pc}
+_0205E986:
+ ldr r2, [sp, #0x4]
+ add r0, r4, #0x0
+ add r1, r6, #0x0
+ bl FUN_02059E80
+ add r5, r0, #0x0
+ bl FUN_02059BF4
+ add r4, r4, r0
+ add r0, r5, #0x0
+ bl FUN_02059C00
+ add r1, r6, r0
+ ldr r0, [sp, #0x8]
+ cmp r4, r0
+ bne _0205E9AA
+ cmp r1, r7
+ beq _0205E9C0
+_0205E9AA:
+ add r0, r5, #0x0
+ mov r1, #0xc
+ bl FUN_0205AFDC
+ add r1, r0, #0x0
+ ldr r0, [sp, #0x0]
+ bl FUN_0205AE0C
+ add sp, #0xc
+ mov r0, #0x1
+ pop {r4-r7, pc}
+_0205E9C0:
+ mov r0, #0x0
+ add sp, #0xc
+ pop {r4-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_0205E9C8
+FUN_0205E9C8: ; 0x0205E9C8
+ push {r4-r5, lr}
+ sub sp, #0xc
+ add r5, r1, #0x0
+ add r4, r0, #0x0
+ mov r1, #0x8
+ bl FUN_0205858C
+ strb r5, [r0, #0x1]
+ add r0, r4, #0x0
+ mov r1, #0x0
+ bl FUN_02058544
+ add r0, r4, #0x0
+ bl FUN_02058848
+ mov r1, #0x1
+ add r0, r4, #0x0
+ lsl r1, r1, #0x14
+ bl FUN_02058410
+ ldr r5, _0205EA0C ; =0x020F7398
+ add r3, sp, #0x0
+ ldmia r5!, {r0-r1}
+ add r2, r3, #0x0
+ stmia r3!, {r0-r1}
+ ldr r0, [r5, #0x0]
+ add r1, r2, #0x0
+ str r0, [r3, #0x0]
+ add r0, r4, #0x0
+ bl FUN_02058B94
+ add sp, #0xc
+ pop {r4-r5, pc}
+ nop
+_0205EA0C: .word 0x020F7398
+
+ thumb_func_start FUN_0205EA10
+FUN_0205EA10: ; 0x0205EA10
+ ldr r3, _0205EA18 ; =FUN_0205E9C8
+ mov r1, #0x0
+ bx r3
+ nop
+_0205EA18: .word FUN_0205E9C8
+
+ thumb_func_start FUN_0205EA1C
+FUN_0205EA1C: ; 0x0205EA1C
+ ldr r3, _0205EA24 ; =FUN_0205E9C8
+ mov r1, #0x1
+ bx r3
+ nop
+_0205EA24: .word FUN_0205E9C8
+
+ thumb_func_start FUN_0205EA28
+FUN_0205EA28: ; 0x0205EA28
+ ldr r3, _0205EA30 ; =FUN_0205E9C8
+ mov r1, #0x2
+ bx r3
+ nop
+_0205EA30: .word FUN_0205E9C8
+
+ thumb_func_start FUN_0205EA34
+FUN_0205EA34: ; 0x0205EA34
+ ldr r3, _0205EA3C ; =FUN_0205E9C8
+ mov r1, #0x3
+ bx r3
+ nop
+_0205EA3C: .word FUN_0205E9C8
+
+ thumb_func_start FUN_0205EA40
+FUN_0205EA40: ; 0x0205EA40
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ bl FUN_020585B0
+ ldr r6, _0205EA60 ; =0x020F7380
+ add r4, r0, #0x0
+_0205EA4C:
+ ldrb r2, [r4, #0x0]
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ lsl r2, r2, #0x2
+ ldr r2, [r6, r2]
+ blx r2
+ cmp r0, #0x1
+ beq _0205EA4C
+ pop {r4-r6, pc}
+ nop
+_0205EA60: .word 0x020F7380
+
+ thumb_func_start FUN_0205EA64
+FUN_0205EA64: ; 0x0205EA64
+ push {r3, lr}
+ bl FUN_0205EB20
+ cmp r0, #0x0
+ beq _0205EA72
+ bl FUN_021E4DE4
+_0205EA72:
+ pop {r3, pc}
+
+ thumb_func_start FUN_0205EA74
+FUN_0205EA74: ; 0x0205EA74
+ push {r4-r5, lr}
+ sub sp, #0xc
+ add r4, r0, #0x0
+ bl FUN_020585B0
+ add r5, r0, #0x0
+ mov r1, #0x0
+ strb r1, [r5, #0x0]
+ add r0, r4, #0x0
+ bl FUN_0205EB14
+ ldrb r0, [r5, #0x2]
+ cmp r0, #0x0
+ bne _0205EAA6
+ ldr r5, _0205EAAC ; =0x020F73A4
+ add r3, sp, #0x0
+ ldmia r5!, {r0-r1}
+ add r2, r3, #0x0
+ stmia r3!, {r0-r1}
+ ldr r0, [r5, #0x0]
+ add r1, r2, #0x0
+ str r0, [r3, #0x0]
+ add r0, r4, #0x0
+ bl FUN_02058B94
+_0205EAA6:
+ add sp, #0xc
+ pop {r4-r5, pc}
+ nop
+_0205EAAC: .word 0x020F73A4
+
+ thumb_func_start FUN_0205EAB0
+FUN_0205EAB0: ; 0x0205EAB0
+ push {r3-r5, lr}
+ add r4, r1, #0x0
+ ldrb r1, [r4, #0x2]
+ add r5, r0, #0x0
+ cmp r1, #0x0
+ bne _0205EACA
+ ldrb r1, [r4, #0x1]
+ bl FUN_0224CECC
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_0205EB14
+_0205EACA:
+ add r0, r5, #0x0
+ bl FUN_02058848
+ add r0, r5, #0x0
+ bl FUN_0205886C
+ ldrb r0, [r4, #0x0]
+ add r0, r0, #0x1
+ strb r0, [r4, #0x0]
+ mov r0, #0x0
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_0205EAE0
+FUN_0205EAE0: ; 0x0205EAE0
+ push {r3-r5, lr}
+ add r4, r1, #0x0
+ ldrb r1, [r4, #0x2]
+ add r5, r0, #0x0
+ cmp r1, #0x0
+ bne _0205EB0E
+ bl FUN_0205EB20
+ cmp r0, #0x0
+ bne _0205EB0E
+ add r0, r5, #0x0
+ bl FUN_02058934
+ cmp r0, #0x1
+ bne _0205EB0E
+ ldrb r1, [r4, #0x1]
+ add r0, r5, #0x0
+ bl FUN_0224CECC
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_0205EB14
+_0205EB0E:
+ mov r0, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_0205EB14
+FUN_0205EB14: ; 0x0205EB14
+ push {r4, lr}
+ add r4, r1, #0x0
+ bl FUN_020585B0
+ str r4, [r0, #0x4]
+ pop {r4, pc}
+
+ thumb_func_start FUN_0205EB20
+FUN_0205EB20: ; 0x0205EB20
+ push {r3, lr}
+ bl FUN_020585B0
+ ldr r0, [r0, #0x4]
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_0205EB2C
+FUN_0205EB2C: ; 0x0205EB2C
+ push {r3, lr}
+ bl FUN_020585B0
+ mov r1, #0x1
+ strb r1, [r0, #0x2]
+ pop {r3, pc}
+
+ thumb_func_start FUN_0205EB38
+FUN_0205EB38: ; 0x0205EB38
+ push {r4-r7, lr}
+ sub sp, #0x24
+ ldr r3, _0205EBE0 ; =0x020F73B0
+ add r2, sp, #0xc
+ add r4, r0, #0x0
+ 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, #0x5b
+ add r0, r4, #0x0
+ lsl r1, r1, #0x2
+ bl FUN_02016998
+ mov r2, #0x5b
+ add r7, r0, #0x0
+ mov r1, #0x0
+ lsl r2, r2, #0x2
+ blx MI_CpuFill8
+ add r0, r7, #0x0
+ add r1, sp, #0xc
+ mov r2, #0x2
+ mov r3, #0xb
+ bl FUN_021D959C
+ mov r0, #0x2
+ str r0, [sp, #0x0]
+ mov r0, #0x1
+ str r0, [sp, #0x4]
+ ldr r0, _0205EBE4 ; =0x000034D8
+ mov r2, #0x0
+ str r0, [sp, #0x8]
+ add r0, r7, #0x0
+ mov r1, #0x55
+ add r3, r2, #0x0
+ bl FUN_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
+ ldr r0, _0205EBE4 ; =0x000034D8
+ mov r1, #0x55
+ str r0, [sp, #0x0]
+ add r0, r7, #0x0
+ mov r2, #0x3
+ mov r3, #0x0
+ bl FUN_021D9708
+ mov r2, #0x1
+ ldr r0, _0205EBE4 ; =0x000034D8
+ str r2, [sp, #0x0]
+ str r0, [sp, #0x4]
+ add r0, r7, #0x0
+ mov r1, #0x55
+ mov r3, #0x0
+ bl FUN_021D971C
+ ldr r4, _0205EBE8 ; =0x020F73C8
+ mov r6, #0x0
+ add r5, r7, #0x0
+_0205EBC0:
+ add r0, r7, #0x0
+ add r1, r4, #0x0
+ bl FUN_021D9820
+ mov r1, #0x59
+ lsl r1, r1, #0x2
+ str r0, [r5, r1]
+ add r6, r6, #0x1
+ add r4, #0x34
+ add r5, r5, #0x4
+ cmp r6, #0x2
+ blo _0205EBC0
+ add r0, r7, #0x0
+ add sp, #0x24
+ pop {r4-r7, pc}
+ nop
+_0205EBE0: .word 0x020F73B0
+_0205EBE4: .word 0x000034D8
+_0205EBE8: .word 0x020F73C8
+
+ thumb_func_start FUN_0205EBEC
+FUN_0205EBEC: ; 0x0205EBEC
+ push {r3-r7, lr}
+ add r7, r0, #0x0
+ mov r6, #0x59
+ mov r4, #0x0
+ add r5, r7, #0x0
+ lsl r6, r6, #0x2
+_0205EBF8:
+ ldr r0, [r5, r6]
+ cmp r0, #0x0
+ beq _0205EC02
+ bl FUN_0200C3DC
+_0205EC02:
+ add r4, r4, #0x1
+ add r5, r5, #0x4
+ cmp r4, #0x2
+ blt _0205EBF8
+ add r0, r7, #0x0
+ bl FUN_021D99F8
+ add r0, r7, #0x0
+ bl FUN_02016A18
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_0205EC18
+FUN_0205EC18: ; 0x0205EC18
+ push {r3-r7, lr}
+ mov r7, #0x1
+ mov r6, #0x59
+ str r0, [sp, #0x0]
+ mov r4, #0x0
+ add r5, r0, #0x0
+ lsl r7, r7, #0xc
+ lsl r6, r6, #0x2
+_0205EC28:
+ ldr r0, [r5, r6]
+ cmp r0, #0x0
+ beq _0205EC36
+ ldr r0, [r0, #0x0]
+ add r1, r7, #0x0
+ bl FUN_020201E4
+_0205EC36:
+ add r4, r4, #0x1
+ add r5, r5, #0x4
+ cmp r4, #0x2
+ blt _0205EC28
+ ldr r0, [sp, #0x0]
+ ldr r0, [r0, #0x0]
+ bl FUN_0201FDEC
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_0205EC48
+FUN_0205EC48: ; 0x0205EC48
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ mov r0, #0x59
+ lsl r0, r0, #0x2
+ ldr r0, [r5, r0]
+ add r4, r1, #0x0
+ add r6, r3, #0x0
+ bl FUN_0200C714
+ mov r0, #0x5a
+ lsl r0, r0, #0x2
+ ldr r0, [r5, r0]
+ add r1, r4, #0x0
+ add r2, r6, #0x0
+ bl FUN_0200C714
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_0205EC6C
+FUN_0205EC6C: ; 0x0205EC6C
+ push {r3, lr}
+ cmp r1, #0x2
+ bhs _0205EC82
+ lsl r1, r1, #0x2
+ add r1, r0, r1
+ mov r0, #0x59
+ lsl r0, r0, #0x2
+ ldr r0, [r1, r0]
+ add r1, r2, #0x0
+ bl FUN_0200C644
+_0205EC82:
+ pop {r3, pc}
+
+ thumb_func_start FUN_0205EC84
+FUN_0205EC84: ; 0x0205EC84
+ ldr r3, _0205EC88 ; =FUN_020462E4
+ bx r3
+ .balign 4
+_0205EC88: .word FUN_020462E4
+
+ thumb_func_start FUN_0205EC8C
+FUN_0205EC8C: ; 0x0205EC8C
+ ldr r3, _0205EC90 ; =FUN_0204630C
+ bx r3
+ .balign 4
+_0205EC90: .word FUN_0204630C
+
+ thumb_func_start FUN_0205EC94
+FUN_0205EC94: ; 0x0205EC94
+ ldr r3, _0205EC98 ; =FUN_020462B8
+ bx r3
+ .balign 4
+_0205EC98: .word FUN_020462B8
+
+ thumb_func_start FUN_0205EC9C
+FUN_0205EC9C: ; 0x0205EC9C
+ push {r3, lr}
+ cmp r1, #0x0
+ beq _0205ECB6
+ cmp r1, #0x1
+ beq _0205ECAC
+ cmp r1, #0x2
+ beq _0205ECC0
+ b _0205ECCA
+_0205ECAC:
+ lsl r1, r2, #0x10
+ lsr r1, r1, #0x10
+ bl FUN_0205EC84
+ b _0205ECCE
+_0205ECB6:
+ lsl r1, r2, #0x10
+ lsr r1, r1, #0x10
+ bl FUN_0205EC8C
+ b _0205ECCE
+_0205ECC0:
+ lsl r1, r2, #0x10
+ lsr r1, r1, #0x10
+ bl FUN_0205EC94
+ pop {r3, pc}
+_0205ECCA:
+ bl ErrorHandling
+_0205ECCE:
+ mov r0, #0x0
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_0205ECD4
+FUN_0205ECD4: ; 0x0205ECD4
+ ldr r3, _0205ECDC ; =FUN_0205EC84
+ mov r1, #0x96
+ lsl r1, r1, #0x4
+ bx r3
+ .balign 4
+_0205ECDC: .word FUN_0205EC84
+
+ thumb_func_start FUN_0205ECE0
+FUN_0205ECE0: ; 0x0205ECE0
+ ldr r3, _0205ECE8 ; =FUN_0205EC94
+ mov r1, #0x96
+ lsl r1, r1, #0x4
+ bx r3
+ .balign 4
+_0205ECE8: .word FUN_0205EC94
+
+ thumb_func_start FUN_0205ECEC
+FUN_0205ECEC: ; 0x0205ECEC
+ ldr r3, _0205ECF4 ; =FUN_0205EC94
+ ldr r1, _0205ECF8 ; =0x0000098D
+ bx r3
+ nop
+_0205ECF4: .word FUN_0205EC94
+_0205ECF8: .word 0x0000098D
+
+ thumb_func_start FUN_0205ECFC
+FUN_0205ECFC: ; 0x0205ECFC
+ ldr r3, _0205ED04 ; =FUN_0205EC84
+ ldr r1, _0205ED08 ; =0x00000964
+ bx r3
+ nop
+_0205ED04: .word FUN_0205EC84
+_0205ED08: .word 0x00000964
+
+ thumb_func_start FUN_0205ED0C
+FUN_0205ED0C: ; 0x0205ED0C
+ ldr r3, _0205ED14 ; =FUN_0205EC94
+ ldr r1, _0205ED18 ; =0x00000964
+ bx r3
+ nop
+_0205ED14: .word FUN_0205EC94
+_0205ED18: .word 0x00000964
+
+ thumb_func_start FUN_0205ED1C
+FUN_0205ED1C: ; 0x0205ED1C
+ ldr r3, _0205ED24 ; =FUN_0205EC84
+ ldr r1, _0205ED28 ; =0x00000961
+ bx r3
+ nop
+_0205ED24: .word FUN_0205EC84
+_0205ED28: .word 0x00000961
+
+ thumb_func_start FUN_0205ED2C
+FUN_0205ED2C: ; 0x0205ED2C
+ ldr r3, _0205ED34 ; =FUN_0205EC8C
+ ldr r1, _0205ED38 ; =0x00000961
+ bx r3
+ nop
+_0205ED34: .word FUN_0205EC8C
+_0205ED38: .word 0x00000961
+
+ thumb_func_start FUN_0205ED3C
+FUN_0205ED3C: ; 0x0205ED3C
+ ldr r3, _0205ED44 ; =FUN_0205EC94
+ ldr r1, _0205ED48 ; =0x00000961
+ bx r3
+ nop
+_0205ED44: .word FUN_0205EC94
+_0205ED48: .word 0x00000961
+
+ thumb_func_start FUN_0205ED4C
+FUN_0205ED4C: ; 0x0205ED4C
+ ldr r3, _0205ED54 ; =FUN_0205EC84
+ ldr r1, _0205ED58 ; =0x00000965
+ bx r3
+ nop
+_0205ED54: .word FUN_0205EC84
+_0205ED58: .word 0x00000965
+
+ thumb_func_start FUN_0205ED5C
+FUN_0205ED5C: ; 0x0205ED5C
+ ldr r3, _0205ED64 ; =FUN_0205EC8C
+ ldr r1, _0205ED68 ; =0x00000965
+ bx r3
+ nop
+_0205ED64: .word FUN_0205EC8C
+_0205ED68: .word 0x00000965
+
+ thumb_func_start FUN_0205ED6C
+FUN_0205ED6C: ; 0x0205ED6C
+ ldr r3, _0205ED74 ; =FUN_0205EC94
+ ldr r1, _0205ED78 ; =0x00000965
+ bx r3
+ nop
+_0205ED74: .word FUN_0205EC94
+_0205ED78: .word 0x00000965
+
+ thumb_func_start FUN_0205ED7C
+FUN_0205ED7C: ; 0x0205ED7C
+ ldr r3, _0205ED84 ; =FUN_0205EC84
+ ldr r1, _0205ED88 ; =0x0000096D
+ bx r3
+ nop
+_0205ED84: .word FUN_0205EC84
+_0205ED88: .word 0x0000096D
+
+ thumb_func_start FUN_0205ED8C
+FUN_0205ED8C: ; 0x0205ED8C
+ ldr r3, _0205ED94 ; =FUN_0205EC8C
+ ldr r1, _0205ED98 ; =0x0000096D
+ bx r3
+ nop
+_0205ED94: .word FUN_0205EC8C
+_0205ED98: .word 0x0000096D
+
+ thumb_func_start FUN_0205ED9C
+FUN_0205ED9C: ; 0x0205ED9C
+ ldr r3, _0205EDA4 ; =FUN_0205EC94
+ ldr r1, _0205EDA8 ; =0x0000096D
+ bx r3
+ nop
+_0205EDA4: .word FUN_0205EC94
+_0205EDA8: .word 0x0000096D
+
+ thumb_func_start FUN_0205EDAC
+FUN_0205EDAC: ; 0x0205EDAC
+ ldr r3, _0205EDB4 ; =FUN_0205EC84
+ ldr r1, _0205EDB8 ; =0x0000096E
+ bx r3
+ nop
+_0205EDB4: .word FUN_0205EC84
+_0205EDB8: .word 0x0000096E
+
+ thumb_func_start FUN_0205EDBC
+FUN_0205EDBC: ; 0x0205EDBC
+ ldr r3, _0205EDC4 ; =FUN_0205EC84
+ ldr r1, _0205EDC8 ; =0x0000096F
+ bx r3
+ nop
+_0205EDC4: .word FUN_0205EC84
+_0205EDC8: .word 0x0000096F
+
+ thumb_func_start FUN_0205EDCC
+FUN_0205EDCC: ; 0x0205EDCC
+ ldr r3, _0205EDD4 ; =FUN_0205EC84
+ mov r1, #0x97
+ lsl r1, r1, #0x4
+ bx r3
+ .balign 4
+_0205EDD4: .word FUN_0205EC84
+
+ thumb_func_start FUN_0205EDD8
+FUN_0205EDD8: ; 0x0205EDD8
+ ldr r3, _0205EDE0 ; =FUN_0205EC84
+ ldr r1, _0205EDE4 ; =0x00000971
+ bx r3
+ nop
+_0205EDE0: .word FUN_0205EC84
+_0205EDE4: .word 0x00000971
+
+ thumb_func_start FUN_0205EDE8
+FUN_0205EDE8: ; 0x0205EDE8
+ ldr r3, _0205EDF0 ; =FUN_0205EC84
+ ldr r1, _0205EDF4 ; =0x00000972
+ bx r3
+ nop
+_0205EDF0: .word FUN_0205EC84
+_0205EDF4: .word 0x00000972
+
+ thumb_func_start FUN_0205EDF8
+FUN_0205EDF8: ; 0x0205EDF8
+ ldr r3, _0205EE00 ; =FUN_0205EC84
+ ldr r1, _0205EE04 ; =0x00000973
+ bx r3
+ nop
+_0205EE00: .word FUN_0205EC84
+_0205EE04: .word 0x00000973
+
+ thumb_func_start FUN_0205EE08
+FUN_0205EE08: ; 0x0205EE08
+ push {r3, lr}
+ cmp r1, #0x4
+ bhi _0205EE4A
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #0x6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_0205EE1A: ; jump table (using 16-bit offset)
+ .short _0205EE24 - _0205EE1A - 2; case 0
+ .short _0205EE2C - _0205EE1A - 2; case 1
+ .short _0205EE34 - _0205EE1A - 2; case 2
+ .short _0205EE3C - _0205EE1A - 2; case 3
+ .short _0205EE44 - _0205EE1A - 2; case 4
+_0205EE24:
+ ldr r1, _0205EE4C ; =0x00000968
+ bl FUN_0205EC84
+ pop {r3, pc}
+_0205EE2C:
+ ldr r1, _0205EE50 ; =0x00000969
+ bl FUN_0205EC84
+ pop {r3, pc}
+_0205EE34:
+ ldr r1, _0205EE54 ; =0x0000096A
+ bl FUN_0205EC84
+ pop {r3, pc}
+_0205EE3C:
+ ldr r1, _0205EE58 ; =0x0000096B
+ bl FUN_0205EC84
+ pop {r3, pc}
+_0205EE44:
+ ldr r1, _0205EE5C ; =0x0000096C
+ bl FUN_0205EC84
+_0205EE4A:
+ pop {r3, pc}
+ .balign 4
+_0205EE4C: .word 0x00000968
+_0205EE50: .word 0x00000969
+_0205EE54: .word 0x0000096A
+_0205EE58: .word 0x0000096B
+_0205EE5C: .word 0x0000096C
+
+ thumb_func_start FUN_0205EE60
+FUN_0205EE60: ; 0x0205EE60
+ push {r3, lr}
+ cmp r1, #0x4
+ bhi _0205EEA2
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #0x6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_0205EE72: ; jump table (using 16-bit offset)
+ .short _0205EE7C - _0205EE72 - 2; case 0
+ .short _0205EE84 - _0205EE72 - 2; case 1
+ .short _0205EE8C - _0205EE72 - 2; case 2
+ .short _0205EE94 - _0205EE72 - 2; case 3
+ .short _0205EE9C - _0205EE72 - 2; case 4
+_0205EE7C:
+ ldr r1, _0205EEA4 ; =0x00000968
+ bl FUN_0205EC94
+ pop {r3, pc}
+_0205EE84:
+ ldr r1, _0205EEA8 ; =0x00000969
+ bl FUN_0205EC94
+ pop {r3, pc}
+_0205EE8C:
+ ldr r1, _0205EEAC ; =0x0000096A
+ bl FUN_0205EC94
+ pop {r3, pc}
+_0205EE94:
+ ldr r1, _0205EEB0 ; =0x0000096B
+ bl FUN_0205EC94
+ pop {r3, pc}
+_0205EE9C:
+ ldr r1, _0205EEB4 ; =0x0000096C
+ bl FUN_0205EC94
+_0205EEA2:
+ pop {r3, pc}
+ .balign 4
+_0205EEA4: .word 0x00000968
+_0205EEA8: .word 0x00000969
+_0205EEAC: .word 0x0000096A
+_0205EEB0: .word 0x0000096B
+_0205EEB4: .word 0x0000096C
+
+ thumb_func_start FUN_0205EEB8
+FUN_0205EEB8: ; 0x0205EEB8
+ push {r3, lr}
+ mov r2, #0x0
+ cmp r1, #0x5
+ bhi _0205EF0A
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #0x6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_0205EECC: ; jump table (using 16-bit offset)
+ .short _0205EF0A - _0205EECC - 2; case 0
+ .short _0205EED8 - _0205EECC - 2; case 1
+ .short _0205EEE2 - _0205EECC - 2; case 2
+ .short _0205EEEE - _0205EECC - 2; case 3
+ .short _0205EEF8 - _0205EECC - 2; case 4
+ .short _0205EF02 - _0205EECC - 2; case 5
+_0205EED8:
+ ldr r1, _0205EF10 ; =0x0000097F
+ bl FUN_0205EC94
+ add r2, r0, #0x0
+ b _0205EF0A
+_0205EEE2:
+ mov r1, #0x26
+ lsl r1, r1, #0x6
+ bl FUN_0205EC94
+ add r2, r0, #0x0
+ b _0205EF0A
+_0205EEEE:
+ ldr r1, _0205EF14 ; =0x00000981
+ bl FUN_0205EC94
+ add r2, r0, #0x0
+ b _0205EF0A
+_0205EEF8:
+ ldr r1, _0205EF18 ; =0x00000982
+ bl FUN_0205EC94
+ add r2, r0, #0x0
+ b _0205EF0A
+_0205EF02:
+ ldr r1, _0205EF1C ; =0x00000983
+ bl FUN_0205EC94
+ add r2, r0, #0x0
+_0205EF0A:
+ add r0, r2, #0x0
+ pop {r3, pc}
+ nop
+_0205EF10: .word 0x0000097F
+_0205EF14: .word 0x00000981
+_0205EF18: .word 0x00000982
+_0205EF1C: .word 0x00000983
+
+ thumb_func_start FUN_0205EF20
+FUN_0205EF20: ; 0x0205EF20
+ push {r4-r6, lr}
+ add r4, r1, #0x0
+ ldr r1, _0205F0E4 ; =0x00000132
+ add r6, r0, #0x0
+ mov r5, #0x0
+ cmp r4, r1
+ bgt _0205EF7E
+ blt _0205EF32
+ b _0205F036
+_0205EF32:
+ cmp r4, #0xc9
+ bgt _0205EF60
+ blt _0205EF3A
+ b _0205F084
+_0205EF3A:
+ cmp r4, #0x4b
+ bgt _0205EF58
+ add r1, r4, #0x0
+ sub r1, #0x48
+ bmi _0205EF5E
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #0x6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_0205EF50: ; jump table (using 16-bit offset)
+ .short _0205F06A - _0205EF50 - 2; case 0
+ .short _0205F06A - _0205EF50 - 2; case 1
+ .short _0205F06A - _0205EF50 - 2; case 2
+ .short _0205F06A - _0205EF50 - 2; case 3
+_0205EF58:
+ cmp r4, #0xb9
+ bne _0205EF5E
+ b _0205F0D2
+_0205EF5E:
+ b _0205F0E0
+_0205EF60:
+ add r2, r1, #0x0
+ sub r2, #0x32
+ cmp r4, r2
+ bgt _0205EF76
+ sub r1, #0x32
+ cmp r4, r1
+ blt _0205EF70
+ b _0205F09E
+_0205EF70:
+ cmp r4, #0xfb
+ beq _0205F018
+ b _0205F0E0
+_0205EF76:
+ sub r0, r1, #0x1
+ cmp r4, r0
+ beq _0205F036
+ b _0205F0E0
+_0205EF7E:
+ add r2, r1, #0x0
+ add r2, #0x5d
+ cmp r4, r2
+ bgt _0205EFC8
+ add r2, r1, #0x0
+ add r2, #0x5d
+ cmp r4, r2
+ blt _0205EF90
+ b _0205F0B8
+_0205EF90:
+ add r2, r1, #0x1
+ cmp r4, r2
+ bgt _0205EF9E
+ add r0, r2, #0x0
+ cmp r4, r0
+ beq _0205F036
+ b _0205F0E0
+_0205EF9E:
+ add r1, r1, #0x2
+ sub r1, r4, r1
+ cmp r1, #0xa
+ bhi _0205EFD6
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #0x6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_0205EFB2: ; jump table (using 16-bit offset)
+ .short _0205F036 - _0205EFB2 - 2; case 0
+ .short _0205F036 - _0205EFB2 - 2; case 1
+ .short _0205F036 - _0205EFB2 - 2; case 2
+ .short _0205F0E0 - _0205EFB2 - 2; case 3
+ .short _0205EFFC - _0205EFB2 - 2; case 4
+ .short _0205F0E0 - _0205EFB2 - 2; case 5
+ .short _0205EFE0 - _0205EFB2 - 2; case 6
+ .short _0205F0E0 - _0205EFB2 - 2; case 7
+ .short _0205EFEE - _0205EFB2 - 2; case 8
+ .short _0205F0E0 - _0205EFB2 - 2; case 9
+ .short _0205F00A - _0205EFB2 - 2; case 10
+_0205EFC8:
+ ldr r0, _0205F0E8 ; =0x000001EE
+ cmp r4, r0
+ bgt _0205EFD8
+ bge _0205F036
+ sub r0, #0x48
+ cmp r4, r0
+ beq _0205F026
+_0205EFD6:
+ b _0205F0E0
+_0205EFD8:
+ add r0, r0, #0x3
+ cmp r4, r0
+ beq _0205F036
+ b _0205F0E0
+_0205EFE0:
+ ldr r1, _0205F0EC ; =0x00000984
+ bl FUN_0205EC94
+ cmp r0, #0x1
+ bne _0205F0E0
+ ldr r5, _0205F0F0 ; =0x0000042E
+ b _0205F0E0
+_0205EFEE:
+ ldr r1, _0205F0EC ; =0x00000984
+ bl FUN_0205EC94
+ cmp r0, #0x1
+ bne _0205F0E0
+ ldr r5, _0205F0F4 ; =0x00000429
+ b _0205F0E0
+_0205EFFC:
+ ldr r1, _0205F0F8 ; =0x0000098E
+ bl FUN_0205EC94
+ cmp r0, #0x1
+ bne _0205F0E0
+ ldr r5, _0205F0F0 ; =0x0000042E
+ b _0205F0E0
+_0205F00A:
+ ldr r1, _0205F0FC ; =0x0000098F
+ bl FUN_0205EC94
+ cmp r0, #0x1
+ bne _0205F0E0
+ ldr r5, _0205F0F0 ; =0x0000042E
+ b _0205F0E0
+_0205F018:
+ ldr r1, _0205F100 ; =0x00000995
+ bl FUN_0205EC94
+ cmp r0, #0x1
+ bne _0205F0E0
+ ldr r5, _0205F104 ; =0x0000042D
+ b _0205F0E0
+_0205F026:
+ ldr r1, _0205F108 ; =0x00000993
+ add r0, r6, #0x0
+ bl FUN_0205EC94
+ cmp r0, #0x1
+ bne _0205F0E0
+ ldr r5, _0205F10C ; =0x0000044A
+ b _0205F0E0
+_0205F036:
+ ldr r1, _0205F110 ; =0x00000985
+ add r0, r6, #0x0
+ bl FUN_0205EC94
+ cmp r0, #0x1
+ bne _0205F054
+ bl FUN_0201277C
+ cmp r0, #0x0
+ bne _0205F050
+ mov r5, #0xfe
+ lsl r5, r5, #0x2
+ b _0205F0E0
+_0205F050:
+ ldr r5, _0205F114 ; =0x00000415
+ b _0205F0E0
+_0205F054:
+ ldr r0, _0205F118 ; =0x00000131
+ cmp r4, r0
+ bne _0205F0E0
+ ldr r1, _0205F11C ; =0x00000986
+ add r0, r6, #0x0
+ bl FUN_0205EC94
+ cmp r0, #0x1
+ bne _0205F0E0
+ ldr r5, _0205F120 ; =0x0000042B
+ b _0205F0E0
+_0205F06A:
+ ldr r1, _0205F124 ; =0x00000987
+ bl FUN_0205EC94
+ cmp r0, #0x1
+ bne _0205F0E0
+ bl FUN_0201277C
+ cmp r0, #0x0
+ bne _0205F080
+ ldr r5, _0205F128 ; =0x000003F5
+ b _0205F0E0
+_0205F080:
+ ldr r5, _0205F12C ; =0x00000412
+ b _0205F0E0
+_0205F084:
+ ldr r1, _0205F130 ; =0x00000988
+ bl FUN_0205EC94
+ cmp r0, #0x1
+ bne _0205F0E0
+ bl FUN_0201277C
+ cmp r0, #0x0
+ bne _0205F09A
+ ldr r5, _0205F134 ; =0x000003FF
+ b _0205F0E0
+_0205F09A:
+ ldr r5, _0205F138 ; =0x0000041C
+ b _0205F0E0
+_0205F09E:
+ ldr r1, _0205F13C ; =0x00000989
+ bl FUN_0205EC94
+ cmp r0, #0x1
+ bne _0205F0E0
+ bl FUN_0201277C
+ cmp r0, #0x0
+ bne _0205F0B4
+ ldr r5, _0205F140 ; =0x000003EE
+ b _0205F0E0
+_0205F0B4:
+ ldr r5, _0205F144 ; =0x0000040B
+ b _0205F0E0
+_0205F0B8:
+ ldr r1, _0205F148 ; =0x0000098A
+ bl FUN_0205EC94
+ cmp r0, #0x1
+ bne _0205F0E0
+ bl FUN_0201277C
+ cmp r0, #0x0
+ bne _0205F0CE
+ ldr r5, _0205F140 ; =0x000003EE
+ b _0205F0E0
+_0205F0CE:
+ ldr r5, _0205F144 ; =0x0000040B
+ b _0205F0E0
+_0205F0D2:
+ ldr r1, _0205F14C ; =0x0000098B
+ add r0, r6, #0x0
+ bl FUN_0205EC94
+ cmp r0, #0x1
+ bne _0205F0E0
+ ldr r5, _0205F150 ; =0x000003E9
+_0205F0E0:
+ add r0, r5, #0x0
+ pop {r4-r6, pc}
+ .balign 4
+_0205F0E4: .word 0x00000132
+_0205F0E8: .word 0x000001EE
+_0205F0EC: .word 0x00000984
+_0205F0F0: .word 0x0000042E
+_0205F0F4: .word 0x00000429
+_0205F0F8: .word 0x0000098E
+_0205F0FC: .word 0x0000098F
+_0205F100: .word 0x00000995
+_0205F104: .word 0x0000042D
+_0205F108: .word 0x00000993
+_0205F10C: .word 0x0000044A
+_0205F110: .word 0x00000985
+_0205F114: .word 0x00000415
+_0205F118: .word 0x00000131
+_0205F11C: .word 0x00000986
+_0205F120: .word 0x0000042B
+_0205F124: .word 0x00000987
+_0205F128: .word 0x000003F5
+_0205F12C: .word 0x00000412
+_0205F130: .word 0x00000988
+_0205F134: .word 0x000003FF
+_0205F138: .word 0x0000041C
+_0205F13C: .word 0x00000989
+_0205F140: .word 0x000003EE
+_0205F144: .word 0x0000040B
+_0205F148: .word 0x0000098A
+_0205F14C: .word 0x0000098B
+_0205F150: .word 0x000003E9
+
+ thumb_func_start FUN_0205F154
+FUN_0205F154: ; 0x0205F154
+ ldr r3, _0205F15C ; =FUN_0205EC84
+ ldr r1, _0205F160 ; =0x00000966
+ bx r3
+ nop
+_0205F15C: .word FUN_0205EC84
+_0205F160: .word 0x00000966
+
+ thumb_func_start FUN_0205F164
+FUN_0205F164: ; 0x0205F164
+ ldr r3, _0205F16C ; =FUN_0205EC8C
+ ldr r1, _0205F170 ; =0x00000966
+ bx r3
+ nop
+_0205F16C: .word FUN_0205EC8C
+_0205F170: .word 0x00000966
+
+ thumb_func_start FUN_0205F174
+FUN_0205F174: ; 0x0205F174
+ ldr r3, _0205F17C ; =FUN_0205EC94
+ ldr r1, _0205F180 ; =0x00000966
+ bx r3
+ nop
+_0205F17C: .word FUN_0205EC94
+_0205F180: .word 0x00000966
+
+ thumb_func_start FUN_0205F184
+FUN_0205F184: ; 0x0205F184
+ ldr r3, _0205F18C ; =FUN_0205EC94
+ ldr r1, _0205F190 ; =0x00000978
+ bx r3
+ nop
+_0205F18C: .word FUN_0205EC94
+_0205F190: .word 0x00000978
+
+ thumb_func_start FUN_0205F194
+FUN_0205F194: ; 0x0205F194
+ ldr r3, _0205F19C ; =FUN_0205EC94
+ ldr r1, _0205F1A0 ; =0x00000992
+ bx r3
+ nop
+_0205F19C: .word FUN_0205EC94
+_0205F1A0: .word 0x00000992
+
+ thumb_func_start FUN_0205F1A4
+FUN_0205F1A4: ; 0x0205F1A4
+ ldr r3, _0205F1AC ; =FUN_0205EC94
+ ldr r1, _0205F1B0 ; =0x0000097D
+ bx r3
+ nop
+_0205F1AC: .word FUN_0205EC94
+_0205F1B0: .word 0x0000097D
+
+ thumb_func_start FUN_0205F1B4
+FUN_0205F1B4: ; 0x0205F1B4
+ ldr r3, _0205F1BC ; =FUN_0205EC94
+ ldr r1, _0205F1C0 ; =0x0000097E
+ bx r3
+ nop
+_0205F1BC: .word FUN_0205EC94
+_0205F1C0: .word 0x0000097E
+
+ thumb_func_start FUN_0205F1C4
+FUN_0205F1C4: ; 0x0205F1C4
+ ldr r3, _0205F1CC ; =FUN_0205EC84
+ ldr r1, _0205F1D0 ; =0x0000097C
+ bx r3
+ nop
+_0205F1CC: .word FUN_0205EC84
+_0205F1D0: .word 0x0000097C
+
+ thumb_func_start FUN_0205F1D4
+FUN_0205F1D4: ; 0x0205F1D4
+ ldr r3, _0205F1DC ; =FUN_0205EC8C
+ ldr r1, _0205F1E0 ; =0x0000097C
+ bx r3
+ nop
+_0205F1DC: .word FUN_0205EC8C
+_0205F1E0: .word 0x0000097C
+
+ thumb_func_start FUN_0205F1E4
+FUN_0205F1E4: ; 0x0205F1E4
+ ldr r3, _0205F1EC ; =FUN_0205EC94
+ ldr r1, _0205F1F0 ; =0x0000097C
+ bx r3
+ nop
+_0205F1EC: .word FUN_0205EC94
+_0205F1F0: .word 0x0000097C
+
+ thumb_func_start FUN_0205F1F4
+FUN_0205F1F4: ; 0x0205F1F4
+ ldr r3, _0205F1FC ; =FUN_0205EC84
+ ldr r1, _0205F200 ; =0x00000967
+ bx r3
+ nop
+_0205F1FC: .word FUN_0205EC84
+_0205F200: .word 0x00000967
+
+ thumb_func_start FUN_0205F204
+FUN_0205F204: ; 0x0205F204
+ ldr r3, _0205F20C ; =FUN_0205EC8C
+ ldr r1, _0205F210 ; =0x00000967
+ bx r3
+ nop
+_0205F20C: .word FUN_0205EC8C
+_0205F210: .word 0x00000967
+
+ thumb_func_start FUN_0205F214
+FUN_0205F214: ; 0x0205F214
+ ldr r3, _0205F21C ; =FUN_0205EC94
+ ldr r1, _0205F220 ; =0x00000967
+ bx r3
+ nop
+_0205F21C: .word FUN_0205EC94
+_0205F220: .word 0x00000967
+
+ thumb_func_start FUN_0205F224
+FUN_0205F224: ; 0x0205F224
+ ldr r3, _0205F22C ; =FUN_0205EC84
+ ldr r1, _0205F230 ; =0x00000979
+ bx r3
+ nop
+_0205F22C: .word FUN_0205EC84
+_0205F230: .word 0x00000979
+
+ thumb_func_start FUN_0205F234
+FUN_0205F234: ; 0x0205F234
+ ldr r3, _0205F23C ; =FUN_0205EC8C
+ ldr r1, _0205F240 ; =0x00000979
+ bx r3
+ nop
+_0205F23C: .word FUN_0205EC8C
+_0205F240: .word 0x00000979
+
+ thumb_func_start FUN_0205F244
+FUN_0205F244: ; 0x0205F244
+ ldr r3, _0205F24C ; =FUN_0205EC94
+ ldr r1, _0205F250 ; =0x00000979
+ bx r3
+ nop
+_0205F24C: .word FUN_0205EC94
+_0205F250: .word 0x00000979
+
+ thumb_func_start FUN_0205F254
+FUN_0205F254: ; 0x0205F254
+ ldr r3, _0205F25C ; =FUN_0205EC8C
+ ldr r1, _0205F260 ; =0x00000994
+ bx r3
+ nop
+_0205F25C: .word FUN_0205EC8C
+_0205F260: .word 0x00000994
+
+ thumb_func_start FUN_0205F264
+FUN_0205F264: ; 0x0205F264
+ ldr r3, _0205F26C ; =FUN_0205EC9C
+ ldr r2, _0205F270 ; =0x00000962
+ bx r3
+ nop
+_0205F26C: .word FUN_0205EC9C
+_0205F270: .word 0x00000962
+
+ thumb_func_start FUN_0205F274
+FUN_0205F274: ; 0x0205F274
+ ldr r3, _0205F27C ; =FUN_0205EC84
+ ldr r1, _0205F280 ; =0x0000097A
+ bx r3
+ nop
+_0205F27C: .word FUN_0205EC84
+_0205F280: .word 0x0000097A
+
+ thumb_func_start FUN_0205F284
+FUN_0205F284: ; 0x0205F284
+ ldr r3, _0205F28C ; =FUN_0205EC8C
+ ldr r1, _0205F290 ; =0x0000097A
+ bx r3
+ nop
+_0205F28C: .word FUN_0205EC8C
+_0205F290: .word 0x0000097A
+
+ thumb_func_start FUN_0205F294
+FUN_0205F294: ; 0x0205F294
+ ldr r3, _0205F29C ; =FUN_0205EC94
+ ldr r1, _0205F2A0 ; =0x0000097A
+ bx r3
+ nop
+_0205F29C: .word FUN_0205EC94
+_0205F2A0: .word 0x0000097A
+
+ thumb_func_start FUN_0205F2A4
+FUN_0205F2A4: ; 0x0205F2A4
+ ldr r3, _0205F2AC ; =FUN_0205EC84
+ ldr r1, _0205F2B0 ; =0x0000097B
+ bx r3
+ nop
+_0205F2AC: .word FUN_0205EC84
+_0205F2B0: .word 0x0000097B
+
+ thumb_func_start FUN_0205F2B4
+FUN_0205F2B4: ; 0x0205F2B4
+ ldr r3, _0205F2BC ; =FUN_0205EC8C
+ ldr r1, _0205F2C0 ; =0x0000097B
+ bx r3
+ nop
+_0205F2BC: .word FUN_0205EC8C
+_0205F2C0: .word 0x0000097B
+
+ thumb_func_start FUN_0205F2C4
+FUN_0205F2C4: ; 0x0205F2C4
+ ldr r3, _0205F2CC ; =FUN_0205EC94
+ ldr r1, _0205F2D0 ; =0x0000097B
+ bx r3
+ nop
+_0205F2CC: .word FUN_0205EC94
+_0205F2D0: .word 0x0000097B
+
+ thumb_func_start FUN_0205F2D4
+FUN_0205F2D4: ; 0x0205F2D4
+ ldr r3, _0205F2DC ; =FUN_0205EC9C
+ ldr r2, _0205F2E0 ; =0x00000963
+ bx r3
+ nop
+_0205F2DC: .word FUN_0205EC9C
+_0205F2E0: .word 0x00000963
+
+ thumb_func_start FUN_0205F2E4
+FUN_0205F2E4: ; 0x0205F2E4
+ push {r4-r6, lr}
+ add r4, r2, #0x0
+ add r5, r0, #0x0
+ add r6, r1, #0x0
+ cmp r4, #0x45
+ blo _0205F2F4
+ bl ErrorHandling
+_0205F2F4:
+ mov r2, #0x9b
+ lsl r2, r2, #0x4
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ add r2, r4, r2
+ bl FUN_0205EC9C
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_0205F304
+FUN_0205F304: ; 0x0205F304
+ ldr r3, _0205F30C ; =FUN_0205EC84
+ ldr r1, _0205F310 ; =0x0000098C
+ bx r3
+ nop
+_0205F30C: .word FUN_0205EC84
+_0205F310: .word 0x0000098C
+
+ thumb_func_start FUN_0205F314
+FUN_0205F314: ; 0x0205F314
+ push {r3-r5, lr}
+ add r5, r1, #0x0
+ add r4, r2, #0x0
+ bl FUN_02046380
+ mov r1, #0x1
+ lsl r1, r1, #0xe
+ cmp r5, r1
+ blo _0205F32C
+ lsl r1, r1, #0x1
+ cmp r5, r1
+ bls _0205F334
+_0205F32C:
+ bl ErrorHandling
+ mov r0, #0x0
+ pop {r3-r5, pc}
+_0205F334:
+ cmp r0, #0x0
+ bne _0205F33C
+ mov r0, #0x0
+ pop {r3-r5, pc}
+_0205F33C:
+ strh r4, [r0, #0x0]
+ mov r0, #0x1
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_0205F344
+FUN_0205F344: ; 0x0205F344
+ push {r3, lr}
+ bl FUN_02046380
+ cmp r0, #0x0
+ bne _0205F352
+ mov r0, #0x0
+ pop {r3, pc}
+_0205F352:
+ ldrh r0, [r0, #0x0]
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_0205F358
+FUN_0205F358: ; 0x0205F358
+ ldr r3, _0205F360 ; =FUN_0205F314
+ add r2, r1, #0x0
+ ldr r1, _0205F364 ; =0x0000403F
+ bx r3
+ .balign 4
+_0205F360: .word FUN_0205F314
+_0205F364: .word 0x0000403F
+
+ thumb_func_start FUN_0205F368
+FUN_0205F368: ; 0x0205F368
+ ldr r3, _0205F370 ; =FUN_0205F344
+ ldr r1, _0205F374 ; =0x0000403F
+ bx r3
+ nop
+_0205F370: .word FUN_0205F344
+_0205F374: .word 0x0000403F
+
+ thumb_func_start FUN_0205F378
+FUN_0205F378: ; 0x0205F378
+ ldr r3, _0205F380 ; =FUN_0205F314
+ add r2, r1, #0x0
+ ldr r1, _0205F384 ; =0x00004030
+ bx r3
+ .balign 4
+_0205F380: .word FUN_0205F314
+_0205F384: .word 0x00004030
+
+ thumb_func_start FUN_0205F388
+FUN_0205F388: ; 0x0205F388
+ ldr r3, _0205F390 ; =FUN_0205F344
+ ldr r1, _0205F394 ; =0x00004030
+ bx r3
+ nop
+_0205F390: .word FUN_0205F344
+_0205F394: .word 0x00004030
+
+ thumb_func_start FUN_0205F398
+FUN_0205F398: ; 0x0205F398
+ push {r3, lr}
+ ldr r1, _0205F3B8 ; =0x00004030
+ bl FUN_0205F344
+ ldr r2, _0205F3BC ; =0x00000183
+ cmp r0, r2
+ bne _0205F3AA
+ add r2, r2, #0x3
+ b _0205F3B2
+_0205F3AA:
+ add r1, r2, #0x3
+ cmp r0, r1
+ bne _0205F3B2
+ add r2, r2, #0x6
+_0205F3B2:
+ add r0, r2, #0x0
+ pop {r3, pc}
+ nop
+_0205F3B8: .word 0x00004030
+_0205F3BC: .word 0x00000183
+
+ thumb_func_start FUN_0205F3C0
+FUN_0205F3C0: ; 0x0205F3C0
+ push {r3, lr}
+ ldr r1, _0205F3E0 ; =0x00004030
+ bl FUN_0205F344
+ ldr r2, _0205F3E4 ; =0x00000183
+ cmp r0, r2
+ bne _0205F3D2
+ add r2, r2, #0x6
+ b _0205F3DA
+_0205F3D2:
+ add r1, r2, #0x3
+ cmp r0, r1
+ beq _0205F3DA
+ add r2, r2, #0x3
+_0205F3DA:
+ add r0, r2, #0x0
+ pop {r3, pc}
+ nop
+_0205F3E0: .word 0x00004030
+_0205F3E4: .word 0x00000183
+
+ thumb_func_start FUN_0205F3E8
+FUN_0205F3E8: ; 0x0205F3E8
+ ldr r3, _0205F3F0 ; =FUN_0205F344
+ ldr r1, _0205F3F4 ; =0x00004035
+ bx r3
+ nop
+_0205F3F0: .word FUN_0205F344
+_0205F3F4: .word 0x00004035
+
+ thumb_func_start FUN_0205F3F8
+FUN_0205F3F8: ; 0x0205F3F8
+ ldr r3, _0205F400 ; =FUN_0205F314
+ add r2, r1, #0x0
+ ldr r1, _0205F404 ; =0x00004035
+ bx r3
+ .balign 4
+_0205F400: .word FUN_0205F314
+_0205F404: .word 0x00004035
+
+ thumb_func_start FUN_0205F408
+FUN_0205F408: ; 0x0205F408
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl FUN_0205ED8C
+ add r0, r4, #0x0
+ mov r1, #0x0
+ bl FUN_0205F44C
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0205F41C
+FUN_0205F41C: ; 0x0205F41C
+ ldr r3, _0205F424 ; =FUN_0205F344
+ ldr r1, _0205F428 ; =0x00004033
+ bx r3
+ nop
+_0205F424: .word FUN_0205F344
+_0205F428: .word 0x00004033
+
+ thumb_func_start FUN_0205F42C
+FUN_0205F42C: ; 0x0205F42C
+ ldr r3, _0205F434 ; =FUN_0205F314
+ add r2, r1, #0x0
+ ldr r1, _0205F438 ; =0x00004033
+ bx r3
+ .balign 4
+_0205F434: .word FUN_0205F314
+_0205F438: .word 0x00004033
+
+ thumb_func_start FUN_0205F43C
+FUN_0205F43C: ; 0x0205F43C
+ ldr r3, _0205F444 ; =FUN_0205F344
+ ldr r1, _0205F448 ; =0x00004034
+ bx r3
+ nop
+_0205F444: .word FUN_0205F344
+_0205F448: .word 0x00004034
+
+ thumb_func_start FUN_0205F44C
+FUN_0205F44C: ; 0x0205F44C
+ ldr r3, _0205F454 ; =FUN_0205F314
+ add r2, r1, #0x0
+ ldr r1, _0205F458 ; =0x00004034
+ bx r3
+ .balign 4
+_0205F454: .word FUN_0205F314
+_0205F458: .word 0x00004034
+
+ thumb_func_start FUN_0205F45C
+FUN_0205F45C: ; 0x0205F45C
+ push {r4, lr}
+ add r4, r0, #0x0
+ bmi _0205F466
+ cmp r4, #0x3
+ blo _0205F46A
+_0205F466:
+ bl ErrorHandling
+_0205F46A:
+ ldr r0, _0205F474 ; =0x020F7430
+ lsl r1, r4, #0x1
+ ldrh r0, [r0, r1]
+ pop {r4, pc}
+ nop
+_0205F474: .word 0x020F7430
+
+ thumb_func_start FUN_0205F478
+FUN_0205F478: ; 0x0205F478
+ push {r3-r5, lr}
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_0205F45C
+ add r2, r0, #0x0
+ ldr r1, _0205F49C ; =0x00004043
+ lsl r2, r2, #0x10
+ add r1, r4, r1
+ lsl r1, r1, #0x10
+ add r0, r5, #0x0
+ lsr r1, r1, #0x10
+ lsr r2, r2, #0x10
+ bl FUN_0205F314
+ pop {r3-r5, pc}
+ nop
+_0205F49C: .word 0x00004043
+
+ thumb_func_start FUN_0205F4A0
+FUN_0205F4A0: ; 0x0205F4A0
+ push {r3-r5, lr}
+ add r4, r1, #0x0
+ ldr r1, _0205F4C4 ; =0x00004043
+ add r1, r4, r1
+ lsl r1, r1, #0x10
+ lsr r1, r1, #0x10
+ bl FUN_0205F344
+ add r5, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_0205F45C
+ cmp r5, r0
+ bne _0205F4C0
+ mov r0, #0x1
+ pop {r3-r5, pc}
+_0205F4C0:
+ mov r0, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+_0205F4C4: .word 0x00004043
+
+ thumb_func_start FUN_0205F4C8
+FUN_0205F4C8: ; 0x0205F4C8
+ push {r4, lr}
+ add r4, r0, #0x0
+ bmi _0205F4D2
+ cmp r4, #0x4
+ blt _0205F4D6
+_0205F4D2:
+ bl ErrorHandling
+_0205F4D6:
+ ldr r0, _0205F4E0 ; =0x020F7436
+ lsl r1, r4, #0x1
+ ldrh r0, [r0, r1]
+ pop {r4, pc}
+ nop
+_0205F4E0: .word 0x020F7436
+
+ thumb_func_start FUN_0205F4E4
+FUN_0205F4E4: ; 0x0205F4E4
+ push {r3-r5, lr}
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_0205F4C8
+ add r2, r0, #0x0
+ ldr r1, _0205F508 ; =0x00004036
+ lsl r2, r2, #0x10
+ add r1, r4, r1
+ lsl r1, r1, #0x10
+ add r0, r5, #0x0
+ lsr r1, r1, #0x10
+ lsr r2, r2, #0x10
+ bl FUN_0205F314
+ pop {r3-r5, pc}
+ nop
+_0205F508: .word 0x00004036
+
+ thumb_func_start FUN_0205F50C
+FUN_0205F50C: ; 0x0205F50C
+ ldr r2, _0205F51C ; =0x00004036
+ ldr r3, _0205F520 ; =FUN_0205F314
+ add r1, r1, r2
+ lsl r1, r1, #0x10
+ lsr r1, r1, #0x10
+ mov r2, #0x0
+ bx r3
+ nop
+_0205F51C: .word 0x00004036
+_0205F520: .word FUN_0205F314
+
+ thumb_func_start FUN_0205F524
+FUN_0205F524: ; 0x0205F524
+ push {r3-r5, lr}
+ add r4, r1, #0x0
+ ldr r1, _0205F548 ; =0x00004036
+ add r1, r4, r1
+ lsl r1, r1, #0x10
+ lsr r1, r1, #0x10
+ bl FUN_0205F344
+ add r5, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_0205F4C8
+ cmp r5, r0
+ bne _0205F544
+ mov r0, #0x1
+ pop {r3-r5, pc}
+_0205F544:
+ mov r0, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+_0205F548: .word 0x00004036
+
+ thumb_func_start FUN_0205F54C
+FUN_0205F54C: ; 0x0205F54C
+ ldr r3, _0205F554 ; =FUN_0205F314
+ ldr r1, _0205F558 ; =0x0000403A
+ mov r2, #0x0
+ bx r3
+ .balign 4
+_0205F554: .word FUN_0205F314
+_0205F558: .word 0x0000403A
+
+ thumb_func_start FUN_0205F55C
+FUN_0205F55C: ; 0x0205F55C
+ ldr r3, _0205F564 ; =FUN_0205F344
+ ldr r1, _0205F568 ; =0x0000403A
+ bx r3
+ nop
+_0205F564: .word FUN_0205F344
+_0205F568: .word 0x0000403A
+
+ thumb_func_start FUN_0205F56C
+FUN_0205F56C: ; 0x0205F56C
+ push {r4, lr}
+ ldr r1, _0205F58C ; =0x0000403A
+ add r4, r0, #0x0
+ bl FUN_0205F344
+ ldr r2, _0205F590 ; =0x00002710
+ cmp r0, r2
+ bhs _0205F582
+ add r0, r0, #0x1
+ lsl r0, r0, #0x10
+ lsr r2, r0, #0x10
+_0205F582:
+ ldr r1, _0205F58C ; =0x0000403A
+ add r0, r4, #0x0
+ bl FUN_0205F314
+ pop {r4, pc}
+ .balign 4
+_0205F58C: .word 0x0000403A
+_0205F590: .word 0x00002710
+
+ thumb_func_start FUN_0205F594
+FUN_0205F594: ; 0x0205F594
+ ldr r3, _0205F59C ; =FUN_0205F344
+ ldr r1, _0205F5A0 ; =0x0000403B
+ bx r3
+ nop
+_0205F59C: .word FUN_0205F344
+_0205F5A0: .word 0x0000403B
+
+ thumb_func_start FUN_0205F5A4
+FUN_0205F5A4: ; 0x0205F5A4
+ ldr r3, _0205F5AC ; =FUN_0205F314
+ add r2, r1, #0x0
+ ldr r1, _0205F5B0 ; =0x0000403B
+ bx r3
+ .balign 4
+_0205F5AC: .word FUN_0205F314
+_0205F5B0: .word 0x0000403B
+
+ thumb_func_start FUN_0205F5B4
+FUN_0205F5B4: ; 0x0205F5B4
+ push {r3-r5, lr}
+ add r4, r1, #0x0
+ lsl r2, r4, #0x10
+ ldr r1, _0205F5D4 ; =0x0000403C
+ lsr r2, r2, #0x10
+ add r5, r0, #0x0
+ bl FUN_0205F314
+ lsr r2, r4, #0x10
+ lsl r2, r2, #0x10
+ ldr r1, _0205F5D4 ; =0x0000403C
+ add r0, r5, #0x0
+ lsr r2, r2, #0x10
+ bl FUN_0205F314
+ pop {r3-r5, pc}
+ .balign 4
+_0205F5D4: .word 0x0000403C
+
+ thumb_func_start FUN_0205F5D8
+FUN_0205F5D8: ; 0x0205F5D8
+ push {r3-r5, lr}
+ ldr r1, _0205F5F4 ; =0x0000403C
+ add r5, r0, #0x0
+ bl FUN_0205F344
+ add r4, r0, #0x0
+ ldr r1, _0205F5F8 ; =0x0000403D
+ add r0, r5, #0x0
+ bl FUN_0205F344
+ lsl r0, r0, #0x10
+ orr r0, r4
+ pop {r3-r5, pc}
+ nop
+_0205F5F4: .word 0x0000403C
+_0205F5F8: .word 0x0000403D
+
+ thumb_func_start FUN_0205F5FC
+FUN_0205F5FC: ; 0x0205F5FC
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ bl FUN_0201B9EC
+ add r4, r0, #0x0
+ bl FUN_0201B9EC
+ add r1, r0, #0x0
+ lsl r1, r1, #0x10
+ add r0, r5, #0x0
+ orr r1, r4
+ bl FUN_0205F5B4
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_0205F618
+FUN_0205F618: ; 0x0205F618
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ bl FUN_020462AC
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_0202881C
+ bl FUN_020287A4
+ add r2, r0, #0x0
+ ldr r1, _0205F640 ; =0x41C64E6D
+ add r0, r4, #0x0
+ mul r2, r1
+ ldr r1, _0205F644 ; =0x00003039
+ add r1, r2, r1
+ bl FUN_0205F5B4
+ pop {r3-r5, pc}
+ nop
+_0205F640: .word 0x41C64E6D
+_0205F644: .word 0x00003039
+
+ thumb_func_start FUN_0205F648
+FUN_0205F648: ; 0x0205F648
+ ldr r3, _0205F650 ; =FUN_0205F344
+ ldr r1, _0205F654 ; =0x00004041
+ bx r3
+ nop
+_0205F650: .word FUN_0205F344
+_0205F654: .word 0x00004041
+
+ thumb_func_start FUN_0205F658
+FUN_0205F658: ; 0x0205F658
+ ldr r3, _0205F660 ; =FUN_0205F314
+ add r2, r1, #0x0
+ ldr r1, _0205F664 ; =0x00004041
+ bx r3
+ .balign 4
+_0205F660: .word FUN_0205F314
+_0205F664: .word 0x00004041
+
+ thumb_func_start FUN_0205F668
+FUN_0205F668: ; 0x0205F668
+ push {r4, lr}
+ bl FUN_020462AC
+ add r4, r0, #0x0
+ bl FUN_0201B9EC
+ mov r1, #0x62
+ blx _s32_div_f
+ add r1, r1, #0x2
+ lsl r1, r1, #0x10
+ add r0, r4, #0x0
+ lsr r1, r1, #0x10
+ bl FUN_0205F658
+ pop {r4, pc}
+
+ thumb_func_start FUN_0205F688
+FUN_0205F688: ; 0x0205F688
+ ldr r3, _0205F690 ; =FUN_0205F344
+ ldr r1, _0205F694 ; =0x0000403E
+ bx r3
+ nop
+_0205F690: .word FUN_0205F344
+_0205F694: .word 0x0000403E
+
+ thumb_func_start FUN_0205F698
+FUN_0205F698: ; 0x0205F698
+ ldr r3, _0205F6A0 ; =FUN_0205F314
+ add r2, r1, #0x0
+ ldr r1, _0205F6A4 ; =0x0000403E
+ bx r3
+ .balign 4
+_0205F6A0: .word FUN_0205F314
+_0205F6A4: .word 0x0000403E
+
+ thumb_func_start FUN_0205F6A8
+FUN_0205F6A8: ; 0x0205F6A8
+ ldr r3, _0205F6B0 ; =FUN_0205F344
+ ldr r1, _0205F6B4 ; =0x00004049
+ bx r3
+ nop
+_0205F6B0: .word FUN_0205F344
+_0205F6B4: .word 0x00004049
+
+ thumb_func_start FUN_0205F6B8
+FUN_0205F6B8: ; 0x0205F6B8
+ ldr r3, _0205F6C0 ; =FUN_0205F314
+ add r2, r1, #0x0
+ ldr r1, _0205F6C4 ; =0x00004049
+ bx r3
+ .balign 4
+_0205F6C0: .word FUN_0205F314
+_0205F6C4: .word 0x00004049
+
+ thumb_func_start FUN_0205F6C8
+FUN_0205F6C8: ; 0x0205F6C8
+ ldr r3, _0205F6D0 ; =FUN_0205F344
+ ldr r1, _0205F6D4 ; =0x00004040
+ bx r3
+ nop
+_0205F6D0: .word FUN_0205F344
+_0205F6D4: .word 0x00004040
+
+ thumb_func_start FUN_0205F6D8
+FUN_0205F6D8: ; 0x0205F6D8
+ ldr r3, _0205F6E0 ; =FUN_0205F314
+ add r2, r1, #0x0
+ ldr r1, _0205F6E4 ; =0x00004040
+ bx r3
+ .balign 4
+_0205F6E0: .word FUN_0205F314
+_0205F6E4: .word 0x00004040
+
+ thumb_func_start FUN_0205F6E8
+FUN_0205F6E8: ; 0x0205F6E8
+ push {r4, lr}
+ ldr r1, _0205F708 ; =0x00004042
+ add r4, r0, #0x0
+ bl FUN_0205F344
+ ldr r2, _0205F70C ; =0x00002710
+ cmp r0, r2
+ bhs _0205F6FE
+ add r0, r0, #0x1
+ lsl r0, r0, #0x10
+ lsr r2, r0, #0x10
+_0205F6FE:
+ ldr r1, _0205F708 ; =0x00004042
+ add r0, r4, #0x0
+ bl FUN_0205F314
+ pop {r4, pc}
+ .balign 4
+_0205F708: .word 0x00004042
+_0205F70C: .word 0x00002710
+
+ thumb_func_start FUN_0205F710
+FUN_0205F710: ; 0x0205F710
+ ldr r3, _0205F718 ; =FUN_0205F344
+ ldr r1, _0205F71C ; =0x00004042
+ bx r3
+ nop
+_0205F718: .word FUN_0205F344
+_0205F71C: .word 0x00004042
+
+ thumb_func_start FUN_0205F720
+FUN_0205F720: ; 0x0205F720
+ ldr r3, _0205F728 ; =FUN_0205F344
+ ldr r1, _0205F72C ; =0x00004046
+ bx r3
+ nop
+_0205F728: .word FUN_0205F344
+_0205F72C: .word 0x00004046
+
+ thumb_func_start FUN_0205F730
+FUN_0205F730: ; 0x0205F730
+ ldr r3, _0205F738 ; =FUN_0205F314
+ add r2, r1, #0x0
+ ldr r1, _0205F73C ; =0x00004046
+ bx r3
+ .balign 4
+_0205F738: .word FUN_0205F314
+_0205F73C: .word 0x00004046
+
+ thumb_func_start FUN_0205F740
+FUN_0205F740: ; 0x0205F740
+ ldr r3, _0205F748 ; =FUN_0205F344
+ ldr r1, _0205F74C ; =0x00004047
+ bx r3
+ nop
+_0205F748: .word FUN_0205F344
+_0205F74C: .word 0x00004047
+
+ thumb_func_start FUN_0205F750
+FUN_0205F750: ; 0x0205F750
+ ldr r3, _0205F758 ; =FUN_0205F314
+ add r2, r1, #0x0
+ ldr r1, _0205F75C ; =0x00004047
+ bx r3
+ .balign 4
+_0205F758: .word FUN_0205F314
+_0205F75C: .word 0x00004047
+
+ thumb_func_start FUN_0205F760
+FUN_0205F760: ; 0x0205F760
+ ldr r3, _0205F768 ; =FUN_0205F344
+ ldr r1, _0205F76C ; =0x00004048
+ bx r3
+ nop
+_0205F768: .word FUN_0205F344
+_0205F76C: .word 0x00004048
+
+ thumb_func_start FUN_0205F770
+FUN_0205F770: ; 0x0205F770
+ ldr r3, _0205F778 ; =FUN_0205F314
+ add r2, r1, #0x0
+ ldr r1, _0205F77C ; =0x00004048
+ bx r3
+ .balign 4
+_0205F778: .word FUN_0205F314
+_0205F77C: .word 0x00004048
+
+ thumb_func_start FUN_0205F780
+FUN_0205F780: ; 0x0205F780
+ ldr r3, _0205F788 ; =FUN_0205F344
+ ldr r1, _0205F78C ; =0x0000404A
+ bx r3
+ nop
+_0205F788: .word FUN_0205F344
+_0205F78C: .word 0x0000404A
+
+ thumb_func_start FUN_0205F790
+FUN_0205F790: ; 0x0205F790
+ ldr r3, _0205F798 ; =FUN_0205F314
+ add r2, r1, #0x0
+ ldr r1, _0205F79C ; =0x0000404A
+ bx r3
+ .balign 4
+_0205F798: .word FUN_0205F314
+_0205F79C: .word 0x0000404A
+
+ thumb_func_start FUN_0205F7A0
+FUN_0205F7A0: ; 0x0205F7A0
+ push {r3-r7, lr}
+ sub sp, #0x10
+ str r0, [sp, #0x0]
+ ldr r0, [r0, #0xc]
+ add r5, r1, #0x0
+ str r2, [sp, #0x4]
+ bl FUN_020462AC
+ add r7, r0, #0x0
+ ldr r0, [sp, #0x0]
+ ldr r0, [r0, #0xc]
+ bl FUN_02034E30
+ bl FUN_02034DCC
+ mov r2, #0x5
+ str r0, [sp, #0xc]
+ add r0, r5, #0x0
+ mov r1, #0x0
+ lsl r2, r2, #0x6
+ blx Call_FillMemWithValue
+ ldr r0, [sp, #0x0]
+ ldr r0, [r0, #0x38]
+ bl FUN_02055320
+ add r4, r0, #0x0
+ ldr r0, [sp, #0x0]
+ ldr r0, [r0, #0x38]
+ bl FUN_0205532C
+ add r6, r0, #0x0
+ ldr r0, [sp, #0x0]
+ asr r1, r4, #0x4
+ asr r2, r6, #0x4
+ lsr r1, r1, #0x1b
+ lsr r2, r2, #0x1b
+ add r1, r4, r1
+ add r2, r6, r2
+ ldr r0, [r0, #0x28]
+ asr r1, r1, #0x5
+ asr r2, r2, #0x5
+ bl FUN_0203451C
+ bl FUN_02034908
+ cmp r0, #0x0
+ beq _0205F806
+ str r4, [r5, #0x0]
+ str r6, [r5, #0x4]
+ b _0205F812
+_0205F806:
+ ldr r0, [sp, #0xc]
+ ldr r0, [r0, #0x8]
+ str r0, [r5, #0x0]
+ ldr r0, [sp, #0xc]
+ ldr r0, [r0, #0xc]
+ str r0, [r5, #0x4]
+_0205F812:
+ ldr r0, [sp, #0x0]
+ bl FUN_020377AC
+ bl FUN_020238F4
+ bl FUN_020239CC
+ str r0, [r5, #0xc]
+ ldr r0, [sp, #0x0]
+ ldr r0, [r0, #0xc]
+ bl FUN_02034E30
+ bl FUN_02034E0C
+ str r0, [sp, #0x8]
+ ldr r0, [r0, #0x0]
+ mov r1, #0x6
+ add r0, r0, #0x4
+ blx _s32_div_f
+ mov r6, #0x0
+ add r4, r5, #0x0
+_0205F83E:
+ ldr r0, [sp, #0x8]
+ lsl r2, r1, #0x2
+ add r0, r0, r2
+ ldrb r2, [r0, #0x6]
+ str r2, [r4, #0x20]
+ ldrb r2, [r0, #0x7]
+ str r2, [r4, #0x24]
+ ldrb r2, [r0, #0x9]
+ strh r2, [r4, #0x2a]
+ ldrb r0, [r0, #0x8]
+ cmp r0, #0x3
+ bls _0205F85A
+ mov r0, #0x4
+ b _0205F85A
+_0205F85A:
+ strh r0, [r4, #0x28]
+ add r0, r1, #0x5
+ mov r1, #0x6
+ blx _s32_div_f
+ add r6, r6, #0x1
+ add r4, #0xc
+ cmp r6, #0x5
+ blt _0205F83E
+ mov r6, #0x4f
+ mov r4, #0x0
+ lsl r6, r6, #0x2
+_0205F872:
+ add r0, r7, #0x0
+ add r1, r4, #0x0
+ bl FUN_0205F524
+ cmp r0, #0x0
+ beq _0205F888
+ mov r0, #0x1
+ ldrh r1, [r5, r6]
+ lsl r0, r4
+ orr r0, r1
+ strh r0, [r5, r6]
+_0205F888:
+ add r4, r4, #0x1
+ cmp r4, #0x4
+ blt _0205F872
+ ldr r6, _0205F8C0 ; =0x020F7440
+ mov r4, #0x0
+_0205F892:
+ ldrb r2, [r6, #0x0]
+ add r0, r7, #0x0
+ mov r1, #0x2
+ bl FUN_0205F2E4
+ mov r1, #0x49
+ add r2, r5, r4
+ lsl r1, r1, #0x2
+ add r4, r4, #0x1
+ add r6, r6, #0x1
+ strb r0, [r2, r1]
+ cmp r4, #0x14
+ blt _0205F892
+ ldr r0, [sp, #0x0]
+ ldr r2, _0205F8C4 ; =0x02105FA8
+ add r1, r5, #0x0
+ bl FUN_0205F8CC
+ ldr r1, _0205F8C8 ; =0x00000139
+ ldr r0, [sp, #0x4]
+ strb r0, [r5, r1]
+ add sp, #0x10
+ pop {r3-r7, pc}
+ .balign 4
+_0205F8C0: .word 0x020F7440
+_0205F8C4: .word 0x02105FA8
+_0205F8C8: .word 0x00000139
+
+ thumb_func_start FUN_0205F8CC
+FUN_0205F8CC: ; 0x0205F8CC
+ push {r3-r7, lr}
+ sub sp, #0x70
+ add r7, r0, #0x0
+ ldr r0, [r7, #0xc]
+ add r5, r1, #0x0
+ add r4, r2, #0x0
+ bl FUN_020462AC
+ str r0, [sp, #0x0]
+ add r0, sp, #0x28
+ blx FS_InitFile
+ add r0, sp, #0x28
+ add r1, r4, #0x0
+ blx FS_OpenFile
+ cmp r0, #0x0
+ bne _0205F8F8
+ bl ErrorHandling
+ add sp, #0x70
+ pop {r3-r7, pc}
+_0205F8F8:
+ add r0, sp, #0x28
+ add r1, sp, #0x24
+ mov r2, #0x4
+ blx FS_ReadFile
+ cmp r0, #0x0
+ bge _0205F90A
+ bl ErrorHandling
+_0205F90A:
+ mov r0, #0xb
+ mov r1, #0x4
+ bl FUN_020169D8
+ mov r1, #0x0
+ mov r2, #0x4
+ add r6, r0, #0x0
+ blx MI_CpuFill8
+ ldr r1, [sp, #0x24]
+ ldr r0, _0205FA28 ; =0x0000013A
+ mov r4, #0x0
+ strb r1, [r5, r0]
+ ldr r0, [sp, #0x24]
+ cmp r0, #0x0
+ ble _0205FA16
+ mov r0, #0xc
+ str r0, [sp, #0x10]
+ mov r0, #0x3
+ str r0, [sp, #0xc]
+ mov r0, #0xc
+ str r0, [sp, #0x8]
+ mov r0, #0x3
+ str r0, [sp, #0x4]
+ mov r0, #0xc0
+ str r0, [sp, #0x20]
+ mov r0, #0x30
+ str r0, [sp, #0x1c]
+ mov r0, #0xc0
+ str r0, [sp, #0x18]
+ mov r0, #0x30
+ add r5, #0x5c
+ str r0, [sp, #0x14]
+_0205F94C:
+ add r0, sp, #0x28
+ add r1, r6, #0x0
+ mov r2, #0x4
+ blx FS_ReadFile
+ ldrb r0, [r6, #0x0]
+ cmp r0, #0x1
+ beq _0205F962
+ cmp r0, #0x2
+ beq _0205F98C
+ b _0205F9B2
+_0205F962:
+ ldrb r2, [r6, #0x1]
+ ldr r0, [sp, #0x0]
+ mov r1, #0x2
+ bl FUN_0205F2E4
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ lsl r0, r0, #0x1e
+ ldrb r1, [r5, r4]
+ ldr r2, [sp, #0x8]
+ lsr r0, r0, #0x1c
+ bic r1, r2
+ orr r0, r1
+ strb r0, [r5, r4]
+ ldrb r1, [r5, r4]
+ ldr r0, [sp, #0x4]
+ bic r1, r0
+ mov r0, #0x1
+ orr r0, r1
+ strb r0, [r5, r4]
+ b _0205F9B2
+_0205F98C:
+ ldrb r1, [r6, #0x1]
+ add r0, r7, #0x0
+ bl FUN_02039528
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ lsl r0, r0, #0x1e
+ ldrb r1, [r5, r4]
+ ldr r2, [sp, #0x10]
+ lsr r0, r0, #0x1c
+ bic r1, r2
+ orr r0, r1
+ strb r0, [r5, r4]
+ ldrb r1, [r5, r4]
+ ldr r0, [sp, #0xc]
+ bic r1, r0
+ mov r0, #0x1
+ orr r0, r1
+ strb r0, [r5, r4]
+_0205F9B2:
+ ldrb r0, [r6, #0x2]
+ cmp r0, #0x1
+ beq _0205F9BE
+ cmp r0, #0x2
+ beq _0205F9E8
+ b _0205FA0E
+_0205F9BE:
+ ldrb r2, [r6, #0x3]
+ ldr r0, [sp, #0x0]
+ mov r1, #0x2
+ bl FUN_0205F2E4
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ lsl r0, r0, #0x1e
+ ldrb r1, [r5, r4]
+ ldr r2, [sp, #0x18]
+ lsr r0, r0, #0x18
+ bic r1, r2
+ orr r0, r1
+ strb r0, [r5, r4]
+ ldrb r1, [r5, r4]
+ ldr r0, [sp, #0x14]
+ bic r1, r0
+ mov r0, #0x10
+ orr r0, r1
+ strb r0, [r5, r4]
+ b _0205FA0E
+_0205F9E8:
+ ldrb r1, [r6, #0x3]
+ add r0, r7, #0x0
+ bl FUN_02039528
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ lsl r0, r0, #0x1e
+ ldrb r1, [r5, r4]
+ ldr r2, [sp, #0x20]
+ lsr r0, r0, #0x18
+ bic r1, r2
+ orr r0, r1
+ strb r0, [r5, r4]
+ ldrb r1, [r5, r4]
+ ldr r0, [sp, #0x1c]
+ bic r1, r0
+ mov r0, #0x10
+ orr r0, r1
+ strb r0, [r5, r4]
+_0205FA0E:
+ ldr r0, [sp, #0x24]
+ add r4, r4, #0x1
+ cmp r4, r0
+ blt _0205F94C
+_0205FA16:
+ add r0, sp, #0x28
+ blx FS_CloseFile
+ add r0, r6, #0x0
+ bl FUN_02016A18
+ add sp, #0x70
+ pop {r3-r7, pc}
+ nop
+_0205FA28: .word 0x0000013A
+
+ thumb_func_start FUN_0205FA2C
+FUN_0205FA2C: ; 0x0205FA2C
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ add r7, r1, #0x0
+ add r0, r2, #0x0
+ mov r1, #0x40
+ bl FUN_020169D8
+ ldr r6, [r7, #0xc]
+ mov r1, #0x0
+ mov r2, #0x40
+ add r4, r0, #0x0
+ blx MI_CpuFill8
+ add r0, r6, #0x0
+ bl LoadPlayerDataAddress
+ str r0, [r4, #0xc]
+ add r0, r6, #0x0
+ bl FUN_0206BB1C
+ str r0, [r4, #0x0]
+ add r0, r6, #0x0
+ bl FUN_0206F158
+ str r0, [r4, #0x4]
+ add r0, r4, #0x0
+ mov r1, #0x0
+ add r0, #0x21
+ strb r1, [r0, #0x0]
+ add r0, r4, #0x0
+ ldrb r2, [r5, #0x8]
+ add r0, #0x20
+ strb r2, [r0, #0x0]
+ add r0, r4, #0x0
+ add r0, #0x32
+ ldrb r0, [r0, #0x0]
+ mov r2, #0xf
+ ldrb r3, [r5, #0xa]
+ bic r0, r2
+ mov r2, #0xf
+ and r2, r3
+ orr r2, r0
+ add r0, r4, #0x0
+ add r0, #0x32
+ strb r2, [r0, #0x0]
+ add r0, r4, #0x0
+ add r0, #0x32
+ ldrb r0, [r0, #0x0]
+ mov r2, #0xf0
+ bic r0, r2
+ ldrb r2, [r5, #0xb]
+ lsl r2, r2, #0x1c
+ lsr r2, r2, #0x18
+ orr r2, r0
+ add r0, r4, #0x0
+ add r0, #0x32
+ strb r2, [r0, #0x0]
+ add r0, r4, #0x0
+ ldrb r2, [r5, #0xc]
+ add r0, #0x33
+ strb r2, [r0, #0x0]
+ add r0, r4, #0x0
+ ldrb r2, [r5, #0xd]
+ add r0, #0x22
+ strb r2, [r0, #0x0]
+_0205FAAE:
+ add r0, r5, r1
+ ldrb r2, [r0, #0xe]
+ add r0, r4, r1
+ add r0, #0x2c
+ strb r2, [r0, #0x0]
+ add r0, r1, #0x1
+ lsl r0, r0, #0x18
+ lsr r1, r0, #0x18
+ cmp r1, #0x6
+ blo _0205FAAE
+ ldr r1, _0205FAD4 ; =0x020F96DC
+ add r0, r7, #0x0
+ add r2, r4, #0x0
+ bl FUN_020373D4
+ ldr r0, [r5, #0x14]
+ str r4, [r0, #0x0]
+ mov r0, #0x1
+ pop {r3-r7, pc}
+ .balign 4
+_0205FAD4: .word 0x020F96DC
+
+ thumb_func_start FUN_0205FAD8
+FUN_0205FAD8: ; 0x0205FAD8
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r0, r1, #0x0
+ bl FUN_0204647C
+ cmp r0, #0x0
+ beq _0205FAEA
+ mov r0, #0x1
+ pop {r3-r5, pc}
+_0205FAEA:
+ ldr r0, [r5, #0x14]
+ ldr r4, [r0, #0x0]
+ add r0, r4, #0x0
+ add r0, #0x22
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x6
+ beq _0205FB04
+ cmp r0, #0x7
+ bne _0205FB0C
+ mov r0, #0x0
+ str r0, [r5, #0x0]
+ mov r0, #0x4
+ pop {r3-r5, pc}
+_0205FB04:
+ mov r0, #0x1
+ str r0, [r5, #0x0]
+ mov r0, #0x4
+ pop {r3-r5, pc}
+_0205FB0C:
+ add r0, r4, #0x0
+ add r1, r5, #0x0
+ add r0, #0x2c
+ add r1, #0xe
+ mov r2, #0x6
+ blx MI_CpuCopy8
+ add r0, r4, #0x0
+ add r0, #0x22
+ ldrb r0, [r0, #0x0]
+ strb r0, [r5, #0xd]
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ ldr r0, [r5, #0x14]
+ mov r1, #0x0
+ str r1, [r0, #0x0]
+ mov r0, #0x2
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_0205FB34
+FUN_0205FB34: ; 0x0205FB34
+ push {r3-r7, lr}
+ add r7, r1, #0x0
+ add r6, r0, #0x0
+ ldr r5, [r7, #0xc]
+ add r0, r2, #0x0
+ mov r1, #0x30
+ bl FUN_020169D8
+ mov r1, #0x0
+ mov r2, #0x30
+ add r4, r0, #0x0
+ blx MI_CpuFill8
+ add r0, r5, #0x0
+ bl LoadPlayerDataAddress
+ str r0, [r4, #0x4]
+ add r0, r5, #0x0
+ bl FUN_0206BB1C
+ str r0, [r4, #0x0]
+ add r0, r5, #0x0
+ bl FUN_0206BB28
+ str r0, [r4, #0x1c]
+ add r0, r5, #0x0
+ bl FUN_02079C70
+ str r0, [r4, #0x2c]
+ mov r0, #0x1
+ strb r0, [r4, #0x11]
+ ldrb r0, [r6, #0xd]
+ strb r0, [r4, #0x14]
+ ldr r0, [r4, #0x0]
+ bl FUN_0206B9AC
+ strb r0, [r4, #0x13]
+ mov r0, #0x0
+ strh r0, [r4, #0x18]
+ ldrb r0, [r6, #0x9]
+ strb r0, [r4, #0x12]
+ add r0, r5, #0x0
+ bl FUN_0202A918
+ str r0, [r4, #0x20]
+ ldr r1, _0205FBB8 ; =0x020F7454
+ add r0, r4, #0x0
+ bl FUN_0207B000
+ add r0, r5, #0x0
+ bl FUN_020238F4
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_0207C2A4
+ ldr r1, _0205FBBC ; =0x020FA6E8
+ add r0, r7, #0x0
+ add r2, r4, #0x0
+ bl FUN_020373D4
+ ldr r0, [r6, #0x14]
+ str r4, [r0, #0x0]
+ mov r0, #0x3
+ pop {r3-r7, pc}
+ nop
+_0205FBB8: .word 0x020F7454
+_0205FBBC: .word 0x020FA6E8
+
+ thumb_func_start FUN_0205FBC0
+FUN_0205FBC0: ; 0x0205FBC0
+ push {r4, lr}
+ add r4, r0, #0x0
+ add r0, r1, #0x0
+ bl FUN_0204647C
+ cmp r0, #0x0
+ beq _0205FBD2
+ mov r0, #0x3
+ pop {r4, pc}
+_0205FBD2:
+ ldr r0, [r4, #0x14]
+ ldr r0, [r0, #0x0]
+ ldrb r1, [r0, #0x14]
+ strb r1, [r4, #0xd]
+ bl FUN_02016A18
+ ldr r1, [r4, #0x14]
+ mov r0, #0x0
+ str r0, [r1, #0x0]
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0205FBE8
+FUN_0205FBE8: ; 0x0205FBE8
+ push {r3-r5, lr}
+ add r4, r0, #0x0
+ bl FUN_02046528
+ add r5, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_0204652C
+ add r4, r0, #0x0
+ ldr r1, [r4, #0x4]
+ cmp r1, #0x4
+ bhi _0205FC4A
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #0x6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_0205FC0C: ; jump table (using 16-bit offset)
+ .short _0205FC16 - _0205FC0C - 2; case 0
+ .short _0205FC22 - _0205FC0C - 2; case 1
+ .short _0205FC2C - _0205FC0C - 2; case 2
+ .short _0205FC38 - _0205FC0C - 2; case 3
+ .short _0205FC42 - _0205FC0C - 2; case 4
+_0205FC16:
+ add r1, r5, #0x0
+ mov r2, #0xb
+ bl FUN_0205FA2C
+ str r0, [r4, #0x4]
+ b _0205FC4A
+_0205FC22:
+ add r1, r5, #0x0
+ bl FUN_0205FAD8
+ str r0, [r4, #0x4]
+ b _0205FC4A
+_0205FC2C:
+ add r1, r5, #0x0
+ mov r2, #0xb
+ bl FUN_0205FB34
+ str r0, [r4, #0x4]
+ b _0205FC4A
+_0205FC38:
+ add r1, r5, #0x0
+ bl FUN_0205FBC0
+ str r0, [r4, #0x4]
+ b _0205FC4A
+_0205FC42:
+ bl FUN_02016A18
+ mov r0, #0x1
+ pop {r3-r5, pc}
+_0205FC4A:
+ mov r0, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_0205FC50
+FUN_0205FC50: ; 0x0205FC50
+ push {r3-r7, lr}
+ add r5, r1, #0x0
+ add r6, r2, #0x0
+ add r7, r3, #0x0
+ bl FUN_02046528
+ str r0, [sp, #0x0]
+ mov r0, #0xb
+ mov r1, #0x18
+ bl FUN_02016998
+ add r4, r0, #0x0
+ mov r1, #0x0
+ mov r2, #0x18
+ blx MI_CpuFill8
+ strb r6, [r4, #0x8]
+ strb r7, [r4, #0x9]
+ add r0, sp, #0x8
+ ldrb r1, [r0, #0x10]
+ add r2, r4, #0x0
+ strb r1, [r4, #0xa]
+ ldrb r1, [r0, #0x14]
+ strb r1, [r4, #0xb]
+ ldrb r1, [r0, #0x18]
+ strb r1, [r4, #0xc]
+ ldrb r0, [r0, #0x1c]
+ ldr r1, _0205FC98 ; =FUN_0205FBE8
+ strb r0, [r4, #0xd]
+ ldr r0, [sp, #0x0]
+ str r5, [r4, #0x14]
+ ldr r0, [r0, #0x10]
+ bl FUN_0204640C
+ pop {r3-r7, pc}
+ nop
+_0205FC98: .word FUN_0205FBE8
+
+ thumb_func_start FUN_0205FC9C
+FUN_0205FC9C: ; 0x0205FC9C
+ push {r3-r5, lr}
+ add r5, r1, #0x0
+ add r4, r0, #0x0
+ ldr r0, [r5, #0xc]
+ bl FUN_0203384C
+ cmp r0, #0x0
+ beq _0205FCBC
+ ldrh r1, [r4, #0x12]
+ ldrh r2, [r4, #0x14]
+ add r0, r5, #0x0
+ bl FUN_02038790
+ str r0, [r4, #0x8]
+ mov r0, #0x1
+ pop {r3-r5, pc}
+_0205FCBC:
+ mov r0, #0x1
+ str r0, [r4, #0x0]
+ mov r0, #0x2
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_0205FCC4
+FUN_0205FCC4: ; 0x0205FCC4
+ push {r4, lr}
+ add r4, r0, #0x0
+ add r0, r1, #0x0
+ bl FUN_0204647C
+ cmp r0, #0x0
+ beq _0205FCD6
+ mov r0, #0x1
+ pop {r4, pc}
+_0205FCD6:
+ ldr r0, [r4, #0x8]
+ ldr r0, [r0, #0x20]
+ str r0, [r4, #0x0]
+ ldr r0, [r4, #0x8]
+ bl FUN_02016A18
+ mov r0, #0x2
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0205FCE8
+FUN_0205FCE8: ; 0x0205FCE8
+ push {r3-r5, lr}
+ add r4, r0, #0x0
+ bl FUN_02046528
+ add r5, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_0204652C
+ add r4, r0, #0x0
+ ldr r1, [r4, #0x4]
+ cmp r1, #0x0
+ beq _0205FD0A
+ cmp r1, #0x1
+ beq _0205FD14
+ cmp r1, #0x2
+ beq _0205FD1E
+ b _0205FD34
+_0205FD0A:
+ add r1, r5, #0x0
+ bl FUN_0205FC9C
+ str r0, [r4, #0x4]
+ b _0205FD34
+_0205FD14:
+ add r1, r5, #0x0
+ bl FUN_0205FCC4
+ str r0, [r4, #0x4]
+ b _0205FD34
+_0205FD1E:
+ ldrh r1, [r4, #0x10]
+ add r0, r5, #0x0
+ bl FUN_020394B8
+ ldr r1, [r4, #0x0]
+ strh r1, [r0, #0x0]
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ mov r0, #0x1
+ pop {r3-r5, pc}
+_0205FD34:
+ mov r0, #0x0
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_0205FD38
+FUN_0205FD38: ; 0x0205FD38
+ push {r3-r7, lr}
+ add r5, r1, #0x0
+ add r6, r2, #0x0
+ add r7, r3, #0x0
+ bl FUN_02046528
+ str r0, [sp, #0x0]
+ mov r0, #0xb
+ mov r1, #0x18
+ bl FUN_02016998
+ add r4, r0, #0x0
+ mov r1, #0x0
+ mov r2, #0x18
+ blx MI_CpuFill8
+ strh r5, [r4, #0x12]
+ strh r7, [r4, #0x14]
+ ldr r0, [sp, #0x0]
+ strh r6, [r4, #0x10]
+ ldr r0, [r0, #0x10]
+ ldr r1, _0205FD6C ; =FUN_0205FCE8
+ add r2, r4, #0x0
+ bl FUN_0204640C
+ pop {r3-r7, pc}
+ .balign 4
+_0205FD6C: .word FUN_0205FCE8
+
+ thumb_func_start FUN_0205FD70
+FUN_0205FD70: ; 0x0205FD70
+ push {r3-r7, lr}
+ add r4, r0, #0x0
+ bl FUN_02046528
+ add r6, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_0204652C
+ add r5, r0, #0x0
+ bl FUN_02031190
+ mov r1, #0x1
+ sub r0, r1, r0
+ bl FUN_020316E0
+ add r7, r0, #0x0
+ bne _0205FD96
+ mov r0, #0x0
+ pop {r3-r7, pc}
+_0205FD96:
+ ldrh r1, [r5, #0x2]
+ add r0, r6, #0x0
+ bl FUN_020394B8
+ add r4, r0, #0x0
+ ldrh r0, [r5, #0x0]
+ cmp r0, #0x0
+ beq _0205FDB0
+ cmp r0, #0x1
+ beq _0205FDBC
+ cmp r0, #0x2
+ beq _0205FDC8
+ b _0205FDD2
+_0205FDB0:
+ add r0, r6, #0x0
+ add r1, r7, #0x0
+ bl FUN_02244660
+ strh r0, [r4, #0x0]
+ b _0205FDD2
+_0205FDBC:
+ add r0, r6, #0x0
+ add r1, r7, #0x0
+ bl FUN_022446BC
+ strh r0, [r4, #0x0]
+ b _0205FDD2
+_0205FDC8:
+ add r0, r6, #0x0
+ add r1, r7, #0x0
+ bl FUN_022446E0
+ strh r0, [r4, #0x0]
+_0205FDD2:
+ add r0, r5, #0x0
+ bl FUN_02016A18
+ mov r0, #0x1
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_0205FDDC
+FUN_0205FDDC: ; 0x0205FDDC
+ push {r3-r7, lr}
+ add r5, r1, #0x0
+ add r6, r2, #0x0
+ bl FUN_02046528
+ add r7, r0, #0x0
+ mov r0, #0xb
+ mov r1, #0x4
+ bl FUN_02016998
+ add r4, r0, #0x0
+ mov r1, #0x0
+ mov r2, #0x4
+ blx MI_CpuFill8
+ strh r5, [r4, #0x0]
+ strh r6, [r4, #0x2]
+ ldr r0, [r7, #0x10]
+ ldr r1, _0205FE0C ; =FUN_0205FD70
+ add r2, r4, #0x0
+ bl FUN_0204640C
+ pop {r3-r7, pc}
+ nop
+_0205FE0C: .word FUN_0205FD70
+
+ thumb_func_start FUN_0205FE10
+FUN_0205FE10: ; 0x0205FE10
+ push {r4-r7, lr}
+ sub sp, #0x14
+ str r0, [sp, #0x0]
+ bl FUN_02029FC8
+ mov r1, #0x35
+ bl FUN_0202A150
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #0x10]
+ cmp r0, #0x14
+ bhs _0205FE30
+ add sp, #0x14
+ mov r0, #0x0
+ pop {r4-r7, pc}
+_0205FE30:
+ ldr r0, [sp, #0x0]
+ bl FUN_0202A8D8
+ mov r1, #0xd
+ mov r2, #0x0
+ add r4, r0, #0x0
+ bl FUN_0202A578
+ lsl r0, r0, #0x18
+ mov r1, #0x0
+ lsr r7, r0, #0x18
+ add r0, r4, #0x0
+ add r2, r1, #0x0
+ bl FUN_0202A578
+ lsl r0, r0, #0x18
+ lsr r6, r0, #0x18
+ add r0, r4, #0x0
+ mov r1, #0x1
+ mov r2, #0x0
+ bl FUN_0202A578
+ lsl r0, r0, #0x18
+ lsr r5, r0, #0x18
+ add r0, r4, #0x0
+ mov r1, #0xe
+ mov r2, #0x0
+ bl FUN_0202A578
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0xc]
+ add r0, r4, #0x0
+ mov r1, #0x2
+ mov r2, #0x0
+ bl FUN_0202A578
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x8]
+ add r0, r4, #0x0
+ mov r1, #0x3
+ mov r2, #0x0
+ bl FUN_0202A578
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x4]
+ cmp r7, #0x0
+ beq _0205FEA2
+ cmp r6, #0x0
+ beq _0205FEA2
+ cmp r5, #0x0
+ beq _0205FEA2
+ add sp, #0x14
+ mov r0, #0x0
+ pop {r4-r7, pc}
+_0205FEA2:
+ ldr r0, [sp, #0x0]
+ bl FUN_02026CC4
+ cmp r7, #0x0
+ bne _0205FEDC
+ mov r1, #0x55
+ bl FUN_02025D94
+ cmp r0, #0x0
+ beq _0205FEC6
+ add r0, r4, #0x0
+ mov r1, #0xd
+ mov r2, #0x1
+ bl FUN_0202A578
+ add sp, #0x14
+ mov r0, #0x1
+ pop {r4-r7, pc}
+_0205FEC6:
+ ldr r0, [sp, #0xc]
+ cmp r0, #0x0
+ bne _0205FED6
+ add r0, r4, #0x0
+ mov r1, #0xe
+ mov r2, #0x1
+ bl FUN_0202A578
+_0205FED6:
+ add sp, #0x14
+ mov r0, #0x4
+ pop {r4-r7, pc}
+_0205FEDC:
+ ldr r1, [sp, #0x10]
+ cmp r1, #0x32
+ bhs _0205FEE8
+ add sp, #0x14
+ mov r0, #0x0
+ pop {r4-r7, pc}
+_0205FEE8:
+ cmp r6, #0x0
+ bne _0205FF1C
+ mov r1, #0x56
+ bl FUN_02025D94
+ cmp r0, #0x0
+ beq _0205FF06
+ add r0, r4, #0x0
+ mov r1, #0x0
+ mov r2, #0x1
+ bl FUN_0202A578
+ add sp, #0x14
+ mov r0, #0x2
+ pop {r4-r7, pc}
+_0205FF06:
+ ldr r0, [sp, #0x8]
+ cmp r0, #0x0
+ bne _0205FF16
+ add r0, r4, #0x0
+ mov r1, #0x2
+ mov r2, #0x1
+ bl FUN_0202A578
+_0205FF16:
+ add sp, #0x14
+ mov r0, #0x4
+ pop {r4-r7, pc}
+_0205FF1C:
+ cmp r1, #0x64
+ blo _0205FF24
+ cmp r5, #0x0
+ beq _0205FF2A
+_0205FF24:
+ add sp, #0x14
+ mov r0, #0x0
+ pop {r4-r7, pc}
+_0205FF2A:
+ mov r1, #0x57
+ bl FUN_02025D94
+ cmp r0, #0x0
+ beq _0205FF44
+ mov r1, #0x1
+ add r0, r4, #0x0
+ add r2, r1, #0x0
+ bl FUN_0202A578
+ add sp, #0x14
+ mov r0, #0x3
+ pop {r4-r7, pc}
+_0205FF44:
+ ldr r0, [sp, #0x4]
+ cmp r0, #0x0
+ bne _0205FF54
+ add r0, r4, #0x0
+ mov r1, #0x3
+ mov r2, #0x1
+ bl FUN_0202A578
+_0205FF54:
+ mov r0, #0x4
+ add sp, #0x14
+ pop {r4-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_0205FF5C
+FUN_0205FF5C: ; 0x0205FF5C
+ push {r4-r7, lr}
+ sub sp, #0xc
+ add r4, r0, #0x0
+ bl FUN_02029FC8
+ mov r1, #0x35
+ bl FUN_0202A150
+ lsl r0, r0, #0x10
+ lsr r7, r0, #0x10
+ cmp r7, #0x14
+ bhs _0205FF7A
+ add sp, #0xc
+ mov r0, #0x0
+ pop {r4-r7, pc}
+_0205FF7A:
+ add r0, r4, #0x0
+ bl FUN_0202A8D8
+ mov r1, #0xd
+ mov r2, #0x0
+ str r0, [sp, #0x8]
+ bl FUN_0202A578
+ lsl r0, r0, #0x18
+ lsr r6, r0, #0x18
+ mov r1, #0x0
+ ldr r0, [sp, #0x8]
+ add r2, r1, #0x0
+ bl FUN_0202A578
+ lsl r0, r0, #0x18
+ lsr r4, r0, #0x18
+ ldr r0, [sp, #0x8]
+ mov r1, #0x1
+ mov r2, #0x0
+ bl FUN_0202A578
+ lsl r0, r0, #0x18
+ lsr r5, r0, #0x18
+ ldr r0, [sp, #0x8]
+ mov r1, #0xe
+ mov r2, #0x0
+ bl FUN_0202A578
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x4]
+ ldr r0, [sp, #0x8]
+ mov r1, #0x2
+ mov r2, #0x0
+ bl FUN_0202A578
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x0]
+ ldr r0, [sp, #0x8]
+ mov r1, #0x3
+ mov r2, #0x0
+ bl FUN_0202A578
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ cmp r6, #0x0
+ beq _0205FFEA
+ cmp r4, #0x0
+ beq _0205FFEA
+ cmp r5, #0x0
+ beq _0205FFEA
+ add sp, #0xc
+ mov r0, #0x0
+ pop {r4-r7, pc}
+_0205FFEA:
+ cmp r6, #0x0
+ bne _02060000
+ ldr r0, [sp, #0x4]
+ cmp r0, #0x0
+ beq _0205FFFA
+ add sp, #0xc
+ mov r0, #0x4
+ pop {r4-r7, pc}
+_0205FFFA:
+ add sp, #0xc
+ mov r0, #0x1
+ pop {r4-r7, pc}
+_02060000:
+ cmp r7, #0x32
+ bhs _0206000A
+ add sp, #0xc
+ mov r0, #0x0
+ pop {r4-r7, pc}
+_0206000A:
+ cmp r4, #0x0
+ bne _02060020
+ ldr r0, [sp, #0x0]
+ cmp r0, #0x0
+ beq _0206001A
+ add sp, #0xc
+ mov r0, #0x5
+ pop {r4-r7, pc}
+_0206001A:
+ add sp, #0xc
+ mov r0, #0x2
+ pop {r4-r7, pc}
+_02060020:
+ cmp r7, #0x64
+ bhs _0206002A
+ add sp, #0xc
+ mov r0, #0x0
+ pop {r4-r7, pc}
+_0206002A:
+ cmp r5, #0x0
+ beq _02060034
+ add sp, #0xc
+ mov r0, #0x0
+ pop {r4-r7, pc}
+_02060034:
+ cmp r0, #0x0
+ beq _0206003E
+ add sp, #0xc
+ mov r0, #0x6
+ pop {r4-r7, pc}
+_0206003E:
+ mov r0, #0x3
+ add sp, #0xc
+ pop {r4-r7, pc}
+
+ thumb_func_start FUN_02060044
+FUN_02060044: ; 0x02060044
+ add r0, #0xa8
+ ldr r0, [r0, #0x0]
+ ldr r2, [r1, #0x0]
+ ldrh r3, [r0, #0x24]
+ add r2, r3, r2
+ strh r2, [r0, #0x24]
+ ldrh r3, [r0, #0x28]
+ ldr r2, [r1, #0x4]
+ add r2, r3, r2
+ strh r2, [r0, #0x28]
+ ldrh r2, [r0, #0x26]
+ ldr r1, [r1, #0x8]
+ add r1, r2, r1
+ strh r1, [r0, #0x26]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02060064
+FUN_02060064: ; 0x02060064
+ ldr r1, _0206006C ; =0x02E90EDD
+ mul r1, r0
+ add r0, r1, #0x1
+ bx lr
+ .balign 4
+_0206006C: .word 0x02E90EDD
+
+ thumb_func_start FUN_02060070
+FUN_02060070: ; 0x02060070
+ ldr r1, _02060078 ; =0x5D588B65
+ mul r1, r0
+ add r0, r1, #0x1
+ bx lr
+ .balign 4
+_02060078: .word 0x5D588B65
+
+ thumb_func_start FUN_0206007C
+FUN_0206007C: ; 0x0206007C
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ bl FUN_0202881C
+ bl FUN_020287A4
+ bl FUN_02060070
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_0202A8D8
+ add r1, r4, #0x0
+ bl FUN_0202A5CC
+ add r0, r4, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_020600A0
+FUN_020600A0: ; 0x020600A0
+ push {r3-r6, lr}
+ sub sp, #0x4
+ add r5, r0, #0x0
+ bl FUN_0202A8D8
+ add r6, r0, #0x0
+ bl FUN_0202A5D0
+ bl FUN_02060070
+ add r4, r0, #0x0
+ add r0, r6, #0x0
+ add r1, r4, #0x0
+ bl FUN_0202A5CC
+ add r0, r4, #0x0
+ bl FUN_02060064
+ str r0, [sp, #0x0]
+ add r0, r5, #0x0
+ bl FUN_0202A8CC
+ mov r1, #0xa
+ add r2, sp, #0x0
+ bl FUN_0202A2C4
+ ldr r0, [sp, #0x0]
+ add sp, #0x4
+ pop {r3-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_020600DC
+FUN_020600DC: ; 0x020600DC
+ push {r3-r6, lr}
+ sub sp, #0x4
+ add r6, r0, #0x0
+ bl FUN_0202A8D8
+ add r4, r0, #0x0
+ add r0, r6, #0x0
+ bl FUN_0202A8CC
+ add r5, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_0202A5D0
+ bl FUN_02060064
+ mov r1, #0x0
+ str r0, [sp, #0x0]
+ add r0, r5, #0x0
+ add r2, r1, #0x0
+ bl FUN_0202A240
+ add r1, r0, #0x0
+ lsl r1, r1, #0x10
+ add r0, r4, #0x0
+ lsr r1, r1, #0x10
+ mov r2, #0x0
+ bl FUN_0202A538
+ mov r1, #0x18
+ add r5, r0, #0x0
+ mul r5, r1
+ mov r4, #0x0
+ cmp r5, #0x0
+ ble _0206012E
+ ldr r0, [sp, #0x0]
+_02060122:
+ bl FUN_02060064
+ add r4, r4, #0x1
+ str r0, [sp, #0x0]
+ cmp r4, r5
+ blt _02060122
+_0206012E:
+ add r0, r6, #0x0
+ bl FUN_0202A8CC
+ mov r1, #0xa
+ add r2, sp, #0x0
+ bl FUN_0202A2C4
+ ldr r0, [sp, #0x0]
+ add sp, #0x4
+ pop {r3-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_02060144
+FUN_02060144: ; 0x02060144
+ ldr r0, [r0, #0x1c]
+ ldr r1, [r0, #0x0]
+ ldr r0, _02060158 ; =0x000001ED
+ cmp r1, r0
+ bne _02060152
+ mov r0, #0x1
+ bx lr
+_02060152:
+ mov r0, #0x0
+ bx lr
+ nop
+_02060158: .word 0x000001ED
+
+ thumb_func_start FUN_0206015C
+FUN_0206015C: ; 0x0206015C
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ mov r0, #0xb
+ mov r1, #0x10
+ bl FUN_020169D8
+ add r4, r0, #0x0
+ mov r0, #0xb
+ bl FUN_02244DB0
+ str r0, [r4, #0x0]
+ mov r0, #0xb
+ add r1, r5, #0x0
+ bl FUN_02245114
+ str r0, [r4, #0x4]
+ mov r0, #0x0
+ strb r0, [r4, #0xc]
+ strb r0, [r4, #0xd]
+ ldr r0, [r5, #0x10]
+ ldr r1, _02060190 ; =FUN_02060194
+ add r2, r4, #0x0
+ bl FUN_0204640C
+ pop {r3-r5, pc}
+ nop
+_02060190: .word FUN_02060194
+
+ thumb_func_start FUN_02060194
+FUN_02060194: ; 0x02060194
+ push {r3-r7, lr}
+ sub sp, #0x10
+ add r5, r0, #0x0
+ bl FUN_02046528
+ add r6, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_0204652C
+ add r4, r0, #0x0
+ ldrb r0, [r4, #0xc]
+ cmp r0, #0x8
+ bls _020601B0
+ b _02060332
+_020601B0:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_020601BC: ; jump table (using 16-bit offset)
+ .short _020601CE - _020601BC - 2; case 0
+ .short _020601F2 - _020601BC - 2; case 1
+ .short _020601FE - _020601BC - 2; case 2
+ .short _02060226 - _020601BC - 2; case 3
+ .short _02060232 - _020601BC - 2; case 4
+ .short _020602A2 - _020601BC - 2; case 5
+ .short _020602F0 - _020601BC - 2; case 6
+ .short _020602FC - _020601BC - 2; case 7
+ .short _02060312 - _020601BC - 2; case 8
+_020601CE:
+ add r0, r6, #0x0
+ mov r1, #0x1
+ bl FUN_0206367C
+ ldrb r0, [r4, #0xd]
+ ldr r1, [r4, #0x4]
+ bl FUN_02245198
+ ldr r0, [r4, #0x4]
+ bl FUN_022451F0
+ str r0, [r4, #0x8]
+ add r0, r5, #0x0
+ bl FUN_0204AFC8
+ mov r0, #0x1
+ strb r0, [r4, #0xc]
+ b _02060332
+_020601F2:
+ add r0, r5, #0x0
+ bl FUN_0204AF3C
+ mov r0, #0x2
+ strb r0, [r4, #0xc]
+ b _02060332
+_020601FE:
+ ldr r0, [r6, #0xc]
+ bl FUN_020462AC
+ ldrb r1, [r4, #0xd]
+ cmp r1, #0x0
+ bne _02060210
+ bl FUN_0205F1C4
+ b _02060218
+_02060210:
+ cmp r1, #0x5
+ bne _02060218
+ bl FUN_0205F1D4
+_02060218:
+ ldr r1, [r4, #0x8]
+ add r0, r5, #0x0
+ bl FUN_02049160
+ mov r0, #0x3
+ strb r0, [r4, #0xc]
+ b _02060332
+_02060226:
+ add r0, r5, #0x0
+ bl FUN_0204AF84
+ mov r0, #0x4
+ strb r0, [r4, #0xc]
+ b _02060332
+_02060232:
+ ldr r0, [r6, #0x38]
+ bl FUN_020553A0
+ ldrb r1, [r4, #0xd]
+ add r7, r0, #0x0
+ add r1, r1, #0x1
+ strb r1, [r4, #0xd]
+ ldrb r1, [r4, #0xd]
+ cmp r1, #0x5
+ bhi _02060290
+ add r0, r6, #0x0
+ bl FUN_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
+ ldr r0, [r4, #0x0]
+ bl FUN_02244EF8
+ mov r0, #0x0
+ strb r0, [r4, #0xe]
+ ldr r0, _02060338 ; =0x00000679
+ bl FUN_020054C8
+ mov r0, #0x0
+ str r0, [sp, #0x0]
+ mov r0, #0x6
+ str r0, [sp, #0x4]
+ mov r0, #0x1
+ str r0, [sp, #0x8]
+ mov r0, #0xb
+ str r0, [sp, #0xc]
+ ldr r3, _0206033C ; =0x0000FFFF
+ add r0, r5, #0x0
+ mov r1, #0x3
+ mov r2, #0x11
+ bl FUN_0204C1B4
+ mov r0, #0x5
+ strb r0, [r4, #0xc]
+ b _02060332
+_02060290:
+ mov r1, #0x0
+ bl FUN_0205889C
+ add r0, r5, #0x0
+ bl FUN_0204B00C
+ mov r0, #0x8
+ strb r0, [r4, #0xc]
+ b _02060332
+_020602A2:
+ ldrb r0, [r4, #0xe]
+ add r0, r0, #0x1
+ strb r0, [r4, #0xe]
+ ldrb r0, [r4, #0xe]
+ cmp r0, #0x3c
+ bhs _020602B8
+ ldr r0, _02060340 ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #0x1
+ tst r0, r1
+ beq _02060332
+_020602B8:
+ ldrb r0, [r4, #0xd]
+ ldr r1, [r4, #0x4]
+ bl FUN_02245198
+ ldr r0, [r4, #0x4]
+ bl FUN_022451F0
+ str r0, [r4, #0x8]
+ ldr r0, _02060338 ; =0x00000679
+ bl FUN_020054C8
+ mov r0, #0x0
+ str r0, [sp, #0x0]
+ mov r0, #0x6
+ str r0, [sp, #0x4]
+ mov r0, #0x1
+ str r0, [sp, #0x8]
+ mov r0, #0xb
+ str r0, [sp, #0xc]
+ ldr r3, _0206033C ; =0x0000FFFF
+ add r0, r5, #0x0
+ mov r1, #0x3
+ mov r2, #0x10
+ bl FUN_0204C1B4
+ mov r0, #0x6
+ strb r0, [r4, #0xc]
+ b _02060332
+_020602F0:
+ ldr r0, [r4, #0x0]
+ bl FUN_02244F18
+ mov r0, #0x7
+ strb r0, [r4, #0xc]
+ b _02060332
+_020602FC:
+ ldr r0, [r4, #0x0]
+ bl FUN_02244F24
+ cmp r0, #0x0
+ beq _02060332
+ ldr r0, [r4, #0x0]
+ bl FUN_02244F2C
+ mov r0, #0x1
+ strb r0, [r4, #0xc]
+ b _02060332
+_02060312:
+ add r0, r6, #0x0
+ mov r1, #0x0
+ bl FUN_0206367C
+ ldr r0, [r4, #0x4]
+ bl FUN_02245190
+ ldr r0, [r4, #0x0]
+ bl FUN_02244DBC
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ add sp, #0x10
+ mov r0, #0x1
+ pop {r3-r7, pc}
+_02060332:
+ mov r0, #0x0
+ add sp, #0x10
+ pop {r3-r7, pc}
+ .balign 4
+_02060338: .word 0x00000679
+_0206033C: .word 0x0000FFFF
+_02060340: .word 0x021C48B8
+
+ thumb_func_start FUN_02060344
+FUN_02060344: ; 0x02060344
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ str r1, [sp, #0x0]
+ cmp r1, #0x0
+ ble _020603AE
+ bl FUN_02029ABC
+ bl FUN_02029ACC
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_020238F4
+ add r7, r0, #0x0
+ ldr r0, [sp, #0x0]
+ mov r1, #0xa
+ add r6, r0, #0x0
+ mov r5, #0x0
+ mul r6, r1
+_0206036A:
+ add r0, r7, #0x0
+ add r1, r5, #0x0
+ bl FUN_020239D0
+ cmp r0, #0x0
+ beq _020603A4
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_02029AD0
+ add r1, r0, #0x0
+ cmp r1, #0x0
+ ble _0206038C
+ cmp r1, #0xc8
+ bge _0206038C
+ sub r1, r1, r6
+ b _02060396
+_0206038C:
+ cmp r1, #0xc8
+ blt _02060394
+ bl ErrorHandling
+_02060394:
+ mov r1, #0x0
+_02060396:
+ cmp r1, #0x0
+ bge _0206039C
+ mov r1, #0x0
+_0206039C:
+ add r0, r5, #0x0
+ add r2, r4, #0x0
+ bl FUN_02029AD8
+_020603A4:
+ add r0, r5, #0x1
+ lsl r0, r0, #0x18
+ lsr r5, r0, #0x18
+ cmp r5, #0x8
+ blo _0206036A
+_020603AE:
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_020603B0
+FUN_020603B0: ; 0x020603B0
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ bl FUN_0202AA38
+ add r2, r0, #0x0
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_02060588
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_020603C8
+FUN_020603C8: ; 0x020603C8
+ push {r3-r5, lr}
+ add r4, r0, #0x0
+ mov r5, #0x0
+_020603CE:
+ add r0, r4, #0x0
+ add r1, r5, #0x0
+ bl FUN_0202AA74
+ cmp r0, #0x0
+ beq _020603E2
+ add r0, r4, #0x0
+ add r1, r5, #0x0
+ bl FUN_020603B0
+_020603E2:
+ add r0, r5, #0x1
+ lsl r0, r0, #0x18
+ lsr r5, r0, #0x18
+ cmp r5, #0x3
+ blo _020603CE
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_020603F0
+FUN_020603F0: ; 0x020603F0
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ mov r4, #0x0
+_020603F6:
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_0202AA74
+ cmp r0, #0x0
+ beq _02060430
+ bl FUN_0201B9EC
+ lsl r0, r0, #0x4
+ lsr r6, r0, #0x10
+ cmp r6, #0x10
+ blo _02060412
+ bl ErrorHandling
+_02060412:
+ cmp r6, #0x0
+ bne _02060420
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_020603B0
+ b _02060430
+_02060420:
+ add r0, r5, #0x0
+ bl FUN_0202AA38
+ add r2, r0, #0x0
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_020605D8
+_02060430:
+ add r0, r4, #0x1
+ lsl r0, r0, #0x18
+ lsr r4, r0, #0x18
+ cmp r4, #0x3
+ blo _020603F6
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_0206043C
+FUN_0206043C: ; 0x0206043C
+ push {r4, lr}
+ add r4, r0, #0x0
+ cmp r4, #0x1d
+ blo _02060448
+ bl ErrorHandling
+_02060448:
+ ldr r0, _02060450 ; =0x020F7460
+ lsl r1, r4, #0x2
+ ldr r0, [r0, r1]
+ pop {r4, pc}
+ .balign 4
+_02060450: .word 0x020F7460
+
+ thumb_func_start FUN_02060454
+FUN_02060454: ; 0x02060454
+ push {r3-r5, lr}
+ add r4, r0, #0x0
+ mov r5, #0x0
+_0206045A:
+ add r0, r4, #0x0
+ add r1, r5, #0x0
+ bl FUN_0202AA74
+ cmp r0, #0x0
+ beq _0206046A
+ mov r0, #0x1
+ pop {r3-r5, pc}
+_0206046A:
+ add r0, r5, #0x1
+ lsl r0, r0, #0x18
+ lsr r5, r0, #0x18
+ cmp r5, #0x3
+ blo _0206045A
+ mov r0, #0x0
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_02060478
+FUN_02060478: ; 0x02060478
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ bl FUN_02060454
+ cmp r0, #0x0
+ beq _0206048E
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_0202AA20
+_0206048E:
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_02060490
+FUN_02060490: ; 0x02060490
+ push {r3-r7, lr}
+ sub sp, #0x20
+ add r5, r1, #0x0
+ str r0, [sp, #0x10]
+ bl FUN_0202A9B0
+ add r1, r5, #0x0
+ str r0, [sp, #0x14]
+ bl FUN_0202AAA0
+ add r4, r0, #0x0
+ cmp r5, #0x0
+ beq _020604B4
+ cmp r5, #0x1
+ beq _020604BA
+ cmp r5, #0x2
+ beq _020604C2
+ b _020604C8
+_020604B4:
+ ldr r7, _02060580 ; =0x000001E1
+ mov r6, #0x32
+ b _020604D0
+_020604BA:
+ mov r7, #0x7a
+ lsl r7, r7, #0x2
+ mov r6, #0x32
+ b _020604D0
+_020604C2:
+ ldr r7, _02060584 ; =0x000001EB
+ mov r6, #0x28
+ b _020604D0
+_020604C8:
+ bl ErrorHandling
+ add sp, #0x20
+ pop {r3-r7, pc}
+_020604D0:
+ add r0, r4, #0x0
+ mov r1, #0x4
+ add r2, r7, #0x0
+ bl FUN_0202AAFC
+ add r0, r4, #0x0
+ mov r1, #0x6
+ add r2, r6, #0x0
+ bl FUN_0202AAFC
+ ldr r0, [sp, #0x10]
+ bl FUN_020238F4
+ str r0, [sp, #0x18]
+ mov r0, #0x4
+ bl FUN_020669C0
+ str r0, [sp, #0x1c]
+ bl FUN_02066978
+ ldr r0, [sp, #0x18]
+ bl FUN_020239C0
+ mov r1, #0x0
+ str r1, [sp, #0x0]
+ str r1, [sp, #0x4]
+ mov r1, #0x1
+ str r1, [sp, #0x8]
+ str r0, [sp, #0xc]
+ ldr r0, [sp, #0x1c]
+ add r1, r7, #0x0
+ add r2, r6, #0x0
+ mov r3, #0x20
+ bl FUN_02066ACC
+ add r0, r4, #0x0
+ mov r1, #0x7
+ mov r2, #0x0
+ bl FUN_0202AAFC
+ add r0, r4, #0x0
+ mov r1, #0x8
+ mov r2, #0x1
+ bl FUN_0202AAFC
+ ldr r0, [sp, #0x1c]
+ mov r1, #0xae
+ mov r2, #0x0
+ bl FUN_020671BC
+ add r2, r0, #0x0
+ add r0, r4, #0x0
+ mov r1, #0x2
+ bl FUN_0202AAFC
+ mov r1, #0x0
+ ldr r0, [sp, #0x1c]
+ add r2, r1, #0x0
+ bl FUN_020671BC
+ add r2, r0, #0x0
+ add r0, r4, #0x0
+ mov r1, #0x3
+ bl FUN_0202AAFC
+ ldr r0, [sp, #0x1c]
+ mov r1, #0xa3
+ mov r2, #0x0
+ bl FUN_020671BC
+ add r2, r0, #0x0
+ add r0, r4, #0x0
+ mov r1, #0x5
+ bl FUN_0202AAFC
+ ldr r0, [sp, #0x1c]
+ bl FUN_02016A18
+ ldr r0, [sp, #0x14]
+ bl FUN_0202AA38
+ add r2, r0, #0x0
+ ldr r0, [sp, #0x14]
+ add r1, r5, #0x0
+ bl FUN_02060588
+ add sp, #0x20
+ pop {r3-r7, pc}
+ .balign 4
+_02060580: .word 0x000001E1
+_02060584: .word 0x000001EB
+
+ thumb_func_start FUN_02060588
+FUN_02060588: ; 0x02060588
+ push {r3-r7, lr}
+ sub sp, #0x8
+ str r0, [sp, #0x0]
+ str r1, [sp, #0x4]
+ add r6, r2, #0x0
+ bl FUN_0202AA40
+ ldr r7, _020605D0 ; =0x020F7460
+ lsl r0, r0, #0x2
+ ldr r4, [r7, r0]
+_0206059C:
+ bl FUN_0201B9EC
+ ldr r1, _020605D4 ; =0x000008D4
+ blx _s32_div_f
+ lsl r0, r0, #0x10
+ lsr r5, r0, #0x10
+ cmp r5, #0x1d
+ blo _020605B2
+ bl ErrorHandling
+_020605B2:
+ lsl r0, r5, #0x18
+ lsr r2, r0, #0x18
+ lsl r0, r2, #0x2
+ ldr r3, [r7, r0]
+ cmp r3, r6
+ beq _0206059C
+ cmp r3, r4
+ beq _0206059C
+ ldr r0, [sp, #0x0]
+ ldr r1, [sp, #0x4]
+ bl FUN_02060688
+ add sp, #0x8
+ pop {r3-r7, pc}
+ nop
+_020605D0: .word 0x020F7460
+_020605D4: .word 0x000008D4
+
+ thumb_func_start FUN_020605D8
+FUN_020605D8: ; 0x020605D8
+ push {r3-r7, lr}
+ sub sp, #0x8
+ str r0, [sp, #0x0]
+ str r1, [sp, #0x4]
+ add r7, r2, #0x0
+ bl FUN_0202AA40
+ mov r1, #0xc
+ ldr r2, _0206067C ; =0x020F74D4
+ mul r1, r0
+ ldrh r0, [r2, r1]
+ add r4, r2, r1
+ cmp r0, #0x1
+ bne _0206061E
+ ldrh r0, [r4, #0x2]
+ lsl r0, r0, #0x18
+ lsr r2, r0, #0x18
+ ldr r0, _02060680 ; =0x020F7460
+ lsl r1, r2, #0x2
+ ldr r3, [r0, r1]
+ cmp r3, r7
+ bne _02060612
+ ldr r0, [sp, #0x0]
+ ldr r1, [sp, #0x4]
+ add r2, r7, #0x0
+ bl FUN_02060588
+ add sp, #0x8
+ pop {r3-r7, pc}
+_02060612:
+ ldr r0, [sp, #0x0]
+ ldr r1, [sp, #0x4]
+ bl FUN_02060688
+ add sp, #0x8
+ pop {r3-r7, pc}
+_0206061E:
+ ldrh r5, [r4, #0x0]
+ cmp r5, #0x0
+ bne _02060628
+ bl ErrorHandling
+_02060628:
+ cmp r5, #0x1
+ bhi _02060630
+ mov r6, #0x0
+ b _02060658
+_02060630:
+ bl FUN_0201B9EC
+ add r6, r0, #0x0
+ ldr r0, _02060684 ; =0x0000FFFF
+ add r1, r5, #0x0
+ blx _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
+ lsl r0, r0, #0x10
+ lsr r6, r0, #0x10
+ cmp r6, r5
+ blo _02060658
+ bl ErrorHandling
+_02060658:
+ lsl r0, r6, #0x18
+ lsr r0, r0, #0x17
+ add r0, r4, r0
+ ldrh r0, [r0, #0x2]
+ lsl r0, r0, #0x18
+ lsr r2, r0, #0x18
+ ldr r0, _02060680 ; =0x020F7460
+ lsl r1, r2, #0x2
+ ldr r3, [r0, r1]
+ cmp r3, r7
+ beq _0206061E
+ ldr r0, [sp, #0x0]
+ ldr r1, [sp, #0x4]
+ bl FUN_02060688
+ add sp, #0x8
+ pop {r3-r7, pc}
+ nop
+_0206067C: .word 0x020F74D4
+_02060680: .word 0x020F7460
+_02060684: .word 0x0000FFFF
+
+ thumb_func_start FUN_02060688
+FUN_02060688: ; 0x02060688
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ add r6, r2, #0x0
+ add r7, r3, #0x0
+ bl FUN_0202AAA0
+ str r0, [sp, #0x0]
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ add r2, r6, #0x0
+ bl FUN_0202AA58
+ ldr r0, [sp, #0x0]
+ mov r1, #0x1
+ add r2, r7, #0x0
+ bl FUN_0202AAFC
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_020606B0
+FUN_020606B0: ; 0x020606B0
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl FUN_02046528
+ add r0, r4, #0x0
+ bl FUN_0204652C
+ add r2, r0, #0x0
+ ldr r1, _020606CC ; =0x020F7630
+ add r0, r4, #0x0
+ add r2, #0xc
+ bl FUN_02046500
+ pop {r4, pc}
+ .balign 4
+_020606CC: .word 0x020F7630
+
+ thumb_func_start FUN_020606D0
+FUN_020606D0: ; 0x020606D0
+ push {r4-r6, lr}
+ sub sp, #0x8
+ add r5, r0, #0x0
+ bl FUN_02046528
+ add r6, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_0204652C
+ add r4, r0, #0x0
+ ldr r0, [r4, #0x4]
+ cmp r0, #0x6
+ bhi _0206078A
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_020606F6: ; jump table (using 16-bit offset)
+ .short _02060704 - _020606F6 - 2; case 0
+ .short _0206072C - _020606F6 - 2; case 1
+ .short _0206073A - _020606F6 - 2; case 2
+ .short _02060748 - _020606F6 - 2; case 3
+ .short _02060756 - _020606F6 - 2; case 4
+ .short _02060764 - _020606F6 - 2; case 5
+ .short _02060772 - _020606F6 - 2; case 6
+_02060704:
+ ldr r0, [r4, #0x24]
+ add r3, r4, #0x0
+ str r0, [sp, #0x0]
+ ldr r0, [r4, #0x28]
+ add r3, #0xc
+ str r0, [sp, #0x4]
+ ldr r1, [r4, #0x0]
+ ldr r2, [r4, #0x8]
+ add r0, r6, #0x0
+ bl FUN_0224891C
+ ldr r1, [r4, #0x0]
+ ldr r2, [r4, #0x8]
+ add r0, r6, #0x0
+ bl FUN_022488FC
+ ldr r0, [r4, #0x4]
+ add r0, r0, #0x1
+ str r0, [r4, #0x4]
+ b _0206078A
+_0206072C:
+ add r0, r5, #0x0
+ bl FUN_0204AFC8
+ ldr r0, [r4, #0x4]
+ add r0, r0, #0x1
+ str r0, [r4, #0x4]
+ b _0206078A
+_0206073A:
+ add r0, r5, #0x0
+ bl FUN_0204AF3C
+ ldr r0, [r4, #0x4]
+ add r0, r0, #0x1
+ str r0, [r4, #0x4]
+ b _0206078A
+_02060748:
+ add r0, r5, #0x0
+ bl FUN_020606B0
+ ldr r0, [r4, #0x4]
+ add r0, r0, #0x1
+ str r0, [r4, #0x4]
+ b _0206078A
+_02060756:
+ add r0, r5, #0x0
+ bl FUN_0204AF84
+ ldr r0, [r4, #0x4]
+ add r0, r0, #0x1
+ str r0, [r4, #0x4]
+ b _0206078A
+_02060764:
+ add r0, r5, #0x0
+ bl FUN_0204B00C
+ ldr r0, [r4, #0x4]
+ add r0, r0, #0x1
+ str r0, [r4, #0x4]
+ b _0206078A
+_02060772:
+ ldr r0, [r4, #0x24]
+ bl FUN_02016A18
+ ldr r0, [r4, #0x28]
+ bl FUN_02016A18
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ add sp, #0x8
+ mov r0, #0x1
+ pop {r4-r6, pc}
+_0206078A:
+ mov r0, #0x0
+ add sp, #0x8
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_02060790
+FUN_02060790: ; 0x02060790
+ push {r3-r7, lr}
+ add r7, r0, #0x0
+ add r5, r1, #0x0
+ add r0, r3, #0x0
+ mov r1, #0x2c
+ add r6, r2, #0x0
+ str r3, [sp, #0x0]
+ bl FUN_02016998
+ mov r1, #0x0
+ mov r2, #0x2c
+ add r4, r0, #0x0
+ blx Call_FillMemWithValue
+ mov r0, #0x0
+ str r0, [r4, #0x4]
+ str r5, [r4, #0x0]
+ ldr r0, [sp, #0x0]
+ str r6, [r4, #0x8]
+ bl FUN_020669C0
+ str r0, [r4, #0x24]
+ ldr r0, [sp, #0x0]
+ bl FUN_020669C0
+ str r0, [r4, #0x28]
+ ldr r1, _020607D0 ; =FUN_020606D0
+ add r0, r7, #0x0
+ add r2, r4, #0x0
+ bl FUN_0204640C
+ pop {r3-r7, pc}
+ .balign 4
+_020607D0: .word FUN_020606D0
+
+ thumb_func_start FUN_020607D4
+FUN_020607D4: ; 0x020607D4
+ push {r3-r7, lr}
+ sub sp, #0x28
+ add r5, r0, #0x0
+ add r6, r1, #0x0
+ mov r0, #0xb
+ mov r1, #0x80
+ add r7, r2, #0x0
+ str r3, [sp, #0xc]
+ bl FUN_020169D8
+ add r4, r0, #0x0
+ strb r6, [r4, #0x1]
+ strb r7, [r4, #0x4]
+ ldr r0, [sp, #0xc]
+ add r2, r4, #0x0
+ str r0, [r4, #0x18]
+ ldr r0, [sp, #0x40]
+ add r2, #0x34
+ str r0, [r4, #0x1c]
+ ldr r0, [sp, #0x44]
+ mov r7, #0x9
+ str r0, [r4, #0x20]
+ ldr r3, [r5, #0x40]
+_02060802:
+ ldmia r3!, {r0-r1}
+ stmia r2!, {r0-r1}
+ sub r7, r7, #0x1
+ bne _02060802
+ mov r7, #0x0
+ sub r0, r7, #0x1
+ str r0, [r4, #0x10]
+ strb r7, [r4, #0x5]
+ mov r0, #0x40
+ add r1, r7, #0x0
+ add r2, r7, #0x0
+ str r7, [r4, #0x8]
+ bl FUN_0200433C
+ cmp r6, #0x3
+ bne _0206085C
+ mov r0, #0x22
+ str r0, [sp, #0x14]
+ ldr r0, [r5, #0x38]
+ bl FUN_02055320
+ add r6, r0, #0x0
+ ldr r0, [r5, #0x38]
+ bl FUN_0205532C
+ add r1, r0, #0x0
+ mov r0, #0x3
+ str r0, [sp, #0x0]
+ mov r0, #0x6
+ str r0, [sp, #0x4]
+ add r0, sp, #0x18
+ mov r2, #0x1
+ str r0, [sp, #0x8]
+ add r0, r6, #0x0
+ sub r3, r2, #0x4
+ bl FUN_0204A840
+ mov r0, #0x19
+ lsl r0, r0, #0x10
+ str r0, [sp, #0x10]
+ mov r0, #0xe
+ lsl r0, r0, #0x10
+ mov r7, #0x1
+ str r0, [r4, #0x10]
+ b _02060892
+_0206085C:
+ cmp r6, #0x2
+ bne _02060892
+ ldr r0, _02060918 ; =0x000001C1
+ str r0, [sp, #0x14]
+ ldr r0, [r5, #0x38]
+ bl FUN_02055320
+ add r6, r0, #0x0
+ ldr r0, [r5, #0x38]
+ bl FUN_0205532C
+ add r1, r0, #0x0
+ mov r0, #0x6
+ str r0, [sp, #0x0]
+ mov r2, #0x3
+ str r2, [sp, #0x4]
+ add r0, sp, #0x18
+ str r0, [sp, #0x8]
+ add r0, r6, #0x0
+ sub r2, r2, #0x5
+ mov r3, #0x2
+ bl FUN_0204A840
+ mov r0, #0x3
+ lsl r0, r0, #0x12
+ mov r7, #0x1
+ str r0, [sp, #0x10]
+_02060892:
+ cmp r7, #0x0
+ beq _02060906
+ add r3, r4, #0x0
+ ldr r1, [sp, #0x14]
+ add r0, r5, #0x0
+ add r2, sp, #0x18
+ add r3, #0x30
+ bl FUN_0204A8C4
+ cmp r0, #0x0
+ beq _020608F8
+ ldr r0, [sp, #0x10]
+ add r1, r4, #0x0
+ str r0, [r4, #0xc]
+ mov r0, #0x0
+ str r0, [r4, #0x14]
+ strb r0, [r4, #0x3]
+ mov r0, #0x1
+ lsl r0, r0, #0xa
+ str r0, [r4, #0x7c]
+ ldr r0, [r5, #0x38]
+ add r1, #0x24
+ bl FUN_02055350
+ ldr r0, [r5, #0x20]
+ bl FUN_0201EC88
+ add r0, r4, #0x0
+ ldr r1, [r5, #0x20]
+ add r0, #0x24
+ bl FUN_0201EC68
+ mov r0, #0x0
+ ldr r1, [r4, #0x10]
+ mvn r0, r0
+ cmp r1, r0
+ beq _020608EC
+ mov r0, #0x0
+ strb r0, [r4, #0x2]
+ mov r0, #0x1
+ strb r0, [r4, #0x0]
+ add r0, r5, #0x0
+ bl FUN_02060BDC
+ b _020608F0
+_020608EC:
+ mov r0, #0x0
+ strb r0, [r4, #0x0]
+_020608F0:
+ ldr r0, _0206091C ; =0x000006DD
+ bl FUN_020054C8
+ b _0206090A
+_020608F8:
+ bl ErrorHandling
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ add sp, #0x28
+ pop {r3-r7, pc}
+_02060906:
+ mov r0, #0x2
+ strb r0, [r4, #0x0]
+_0206090A:
+ ldr r0, [r5, #0x10]
+ ldr r1, _02060920 ; =FUN_020609A0
+ add r2, r4, #0x0
+ bl FUN_0204640C
+ add sp, #0x28
+ pop {r3-r7, pc}
+ .balign 4
+_02060918: .word 0x000001C1
+_0206091C: .word 0x000006DD
+_02060920: .word FUN_020609A0
+
+ thumb_func_start FUN_02060924
+FUN_02060924: ; 0x02060924
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ mov r0, #0xb
+ mov r1, #0x8
+ add r6, r2, #0x0
+ bl FUN_020169D8
+ add r2, r0, #0x0
+ str r6, [r2, #0x4]
+ strb r4, [r2, #0x0]
+ ldr r0, [r5, #0x10]
+ ldr r1, _02060944 ; =FUN_02060948
+ bl FUN_0204640C
+ pop {r4-r6, pc}
+ .balign 4
+_02060944: .word FUN_02060948
+
+ thumb_func_start FUN_02060948
+FUN_02060948: ; 0x02060948
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ bl FUN_02046528
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_0204652C
+ add r6, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_02046530
+ add r5, r0, #0x0
+ ldr r0, [r5, #0x0]
+ cmp r0, #0x0
+ beq _02060972
+ cmp r0, #0x1
+ beq _0206097C
+ cmp r0, #0x2
+ beq _0206098A
+ b _02060994
+_02060972:
+ add r0, r4, #0x0
+ add r1, r6, #0x0
+ bl FUN_0203888C
+ b _02060994
+_0206097C:
+ add r0, r4, #0x0
+ bl FUN_0204647C
+ cmp r0, #0x0
+ beq _02060994
+ mov r0, #0x0
+ pop {r4-r6, pc}
+_0206098A:
+ add r0, r6, #0x0
+ bl FUN_02016A18
+ mov r0, #0x1
+ pop {r4-r6, pc}
+_02060994:
+ ldr r0, [r5, #0x0]
+ add r0, r0, #0x1
+ str r0, [r5, #0x0]
+ mov r0, #0x0
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_020609A0
+FUN_020609A0: ; 0x020609A0
+ push {r3-r6, lr}
+ sub sp, #0xc
+ add r6, r0, #0x0
+ bl FUN_02046528
+ add r5, r0, #0x0
+ add r0, r6, #0x0
+ bl FUN_0204652C
+ add r4, r0, #0x0
+ ldrb r1, [r4, #0x0]
+ cmp r1, #0x7
+ bhi _020609E4
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #0x6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_020609C6: ; jump table (using 16-bit offset)
+ .short _020609D6 - _020609C6 - 2; case 0
+ .short _020609EC - _020609C6 - 2; case 1
+ .short _02060A4E - _020609C6 - 2; case 2
+ .short _02060A74 - _020609C6 - 2; case 3
+ .short _02060AB4 - _020609C6 - 2; case 4
+ .short _02060AC6 - _020609C6 - 2; case 5
+ .short _02060AE2 - _020609C6 - 2; case 6
+ .short _02060AF6 - _020609C6 - 2; case 7
+_020609D6:
+ bl FUN_02060C80
+ add r0, r4, #0x0
+ bl FUN_02060B0C
+ cmp r0, #0x0
+ bne _020609E6
+_020609E4:
+ b _02060B00
+_020609E6:
+ mov r0, #0x2
+ strb r0, [r4, #0x0]
+ b _02060B00
+_020609EC:
+ bl FUN_02060C80
+ add r0, r4, #0x0
+ bl FUN_02060B0C
+ add r6, r0, #0x0
+ ldrb r0, [r4, #0x2]
+ cmp r0, #0x0
+ bne _02060A2C
+ add r0, r4, #0x0
+ add r1, r4, #0x0
+ add r0, #0x10
+ add r1, #0x14
+ add r2, r4, #0x2
+ bl FUN_02060BC8
+ cmp r0, #0x0
+ beq _02060B00
+ ldr r0, [r5, #0x50]
+ mov r1, #0x1
+ mov r2, #0x0
+ bl FUN_021DA4EC
+ ldr r0, [r5, #0x50]
+ mov r1, #0x2
+ mov r2, #0x0
+ bl FUN_021DA4EC
+ ldr r0, _02060B08 ; =0x000006DE
+ bl FUN_020054C8
+ b _02060B00
+_02060A2C:
+ ldr r0, [r5, #0x50]
+ mov r1, #0x1
+ bl FUN_021DA58C
+ cmp r0, #0x0
+ beq _02060B00
+ ldr r0, [r5, #0x50]
+ mov r1, #0x2
+ bl FUN_021DA58C
+ cmp r0, #0x0
+ beq _02060B00
+ cmp r6, #0x0
+ beq _02060B00
+ mov r0, #0x2
+ strb r0, [r4, #0x0]
+ b _02060B00
+_02060A4E:
+ mov r0, #0x6
+ str r0, [sp, #0x0]
+ mov r0, #0x1
+ str r0, [sp, #0x4]
+ mov r0, #0xb
+ str r0, [sp, #0x8]
+ mov r0, #0x0
+ add r1, r0, #0x0
+ add r2, r0, #0x0
+ add r3, r0, #0x0
+ bl FUN_0200E1D0
+ mov r0, #0x0
+ mov r1, #0x6
+ bl FUN_020053CC
+ mov r0, #0x3
+ strb r0, [r4, #0x0]
+ b _02060B00
+_02060A74:
+ bl FUN_0200E308
+ cmp r0, #0x0
+ beq _02060A84
+ bl FUN_02005404
+ cmp r0, #0x0
+ beq _02060A8A
+_02060A84:
+ add sp, #0xc
+ mov r0, #0x0
+ pop {r3-r6, pc}
+_02060A8A:
+ mov r0, #0x0
+ ldr r1, [r4, #0x10]
+ mvn r0, r0
+ cmp r1, r0
+ beq _02060AA8
+ ldr r0, [r5, #0x4c]
+ ldr r1, [r5, #0x50]
+ mov r2, #0x1
+ bl FUN_021DA54C
+ ldr r0, [r5, #0x4c]
+ ldr r1, [r5, #0x50]
+ mov r2, #0x2
+ bl FUN_021DA54C
+_02060AA8:
+ add r0, r6, #0x0
+ bl FUN_0204AF3C
+ mov r0, #0x4
+ strb r0, [r4, #0x0]
+ b _02060B00
+_02060AB4:
+ ldrb r1, [r4, #0x1]
+ add r2, r4, #0x0
+ add r0, r5, #0x0
+ add r2, #0x34
+ bl FUN_02060924
+ mov r0, #0x5
+ strb r0, [r4, #0x0]
+ b _02060B00
+_02060AC6:
+ ldr r0, [r4, #0x20]
+ mov r2, #0x0
+ str r0, [sp, #0x0]
+ ldrb r0, [r4, #0x4]
+ mvn r2, r2
+ str r0, [sp, #0x4]
+ ldr r1, [r4, #0x18]
+ ldr r3, [r4, #0x1c]
+ add r0, r6, #0x0
+ bl FUN_020491A8
+ mov r0, #0x6
+ strb r0, [r4, #0x0]
+ b _02060B00
+_02060AE2:
+ ldr r1, [r4, #0x18]
+ add r0, r5, #0x0
+ bl FUN_0204AD8C
+ add r0, r6, #0x0
+ bl FUN_0204B0E8
+ mov r0, #0x7
+ strb r0, [r4, #0x0]
+ b _02060B00
+_02060AF6:
+ bl FUN_02016A18
+ add sp, #0xc
+ mov r0, #0x1
+ pop {r3-r6, pc}
+_02060B00:
+ mov r0, #0x0
+ add sp, #0xc
+ pop {r3-r6, pc}
+ nop
+_02060B08: .word 0x000006DE
+
+ thumb_func_start FUN_02060B0C
+FUN_02060B0C: ; 0x02060B0C
+ push {r3-r4, lr}
+ sub sp, #0xc
+ add r4, r0, #0x0
+ ldr r1, [r4, #0x30]
+ add r0, sp, #0x0
+ bl FUN_021E7EA0
+ ldrb r0, [r4, #0x1]
+ cmp r0, #0x3
+ bhi _02060B7C
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02060B2C: ; jump table (using 16-bit offset)
+ .short _02060B34 - _02060B2C - 2; case 0
+ .short _02060B6A - _02060B2C - 2; case 1
+ .short _02060B58 - _02060B2C - 2; case 2
+ .short _02060B46 - _02060B2C - 2; case 3
+_02060B34:
+ ldr r1, [sp, #0x8]
+ ldr r0, [r4, #0x7c]
+ add r0, r1, r0
+ str r0, [sp, #0x8]
+ ldr r1, [r4, #0x2c]
+ ldr r0, [r4, #0x7c]
+ add r0, r1, r0
+ str r0, [r4, #0x2c]
+ b _02060B86
+_02060B46:
+ ldr r1, [sp, #0x8]
+ ldr r0, [r4, #0x7c]
+ sub r0, r1, r0
+ str r0, [sp, #0x8]
+ ldr r1, [r4, #0x2c]
+ ldr r0, [r4, #0x7c]
+ sub r0, r1, r0
+ str r0, [r4, #0x2c]
+ b _02060B86
+_02060B58:
+ ldr r1, [sp, #0x0]
+ ldr r0, [r4, #0x7c]
+ add r0, r1, r0
+ str r0, [sp, #0x0]
+ ldr r1, [r4, #0x24]
+ ldr r0, [r4, #0x7c]
+ add r0, r1, r0
+ str r0, [r4, #0x24]
+ b _02060B86
+_02060B6A:
+ ldr r1, [sp, #0x0]
+ ldr r0, [r4, #0x7c]
+ sub r0, r1, r0
+ str r0, [sp, #0x0]
+ ldr r1, [r4, #0x24]
+ ldr r0, [r4, #0x7c]
+ sub r0, r1, r0
+ str r0, [r4, #0x24]
+ b _02060B86
+_02060B7C:
+ bl ErrorHandling
+ add sp, #0xc
+ mov r0, #0x1
+ pop {r3-r4, pc}
+_02060B86:
+ mov r0, #0x1
+ ldr r1, [r4, #0x7c]
+ lsl r0, r0, #0xc
+ cmp r1, r0
+ bge _02060BA6
+ ldrb r1, [r4, #0x3]
+ add r1, r1, #0x1
+ strb r1, [r4, #0x3]
+ ldrb r1, [r4, #0x3]
+ cmp r1, #0x18
+ blo _02060BA6
+ ldr r1, [r4, #0x7c]
+ add r0, r1, r0
+ str r0, [r4, #0x7c]
+ mov r0, #0x0
+ strb r0, [r4, #0x3]
+_02060BA6:
+ ldr r0, [r4, #0x30]
+ add r1, sp, #0x0
+ bl FUN_021E7EB0
+ ldr r1, [r4, #0x14]
+ ldr r0, [r4, #0x7c]
+ add r1, r1, r0
+ str r1, [r4, #0x14]
+ ldr r0, [r4, #0xc]
+ cmp r0, r1
+ bgt _02060BC2
+ add sp, #0xc
+ mov r0, #0x1
+ pop {r3-r4, pc}
+_02060BC2:
+ mov r0, #0x0
+ add sp, #0xc
+ pop {r3-r4, pc}
+
+ thumb_func_start FUN_02060BC8
+FUN_02060BC8: ; 0x02060BC8
+ ldr r3, [r0, #0x0]
+ ldr r0, [r1, #0x0]
+ cmp r3, r0
+ bgt _02060BD6
+ mov r0, #0x1
+ strb r0, [r2, #0x0]
+ bx lr
+_02060BD6:
+ mov r0, #0x0
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02060BDC
+FUN_02060BDC: ; 0x02060BDC
+ push {r4-r7, lr}
+ sub sp, #0x34
+ add r5, r0, #0x0
+ ldr r0, _02060C7C ; =0x020F7640
+ mov r6, #0x0
+ ldr r2, [r0, #0x0]
+ ldr r1, [r0, #0x4]
+ str r2, [sp, #0x2c]
+ str r1, [sp, #0x30]
+ ldr r1, [r0, #0x8]
+ ldr r0, [r0, #0xc]
+ str r1, [sp, #0x24]
+ str r0, [sp, #0x28]
+_02060BF6:
+ lsl r7, r6, #0x2
+ add r0, sp, #0x2c
+ ldr r4, [r0, r7]
+ mov r2, #0x0
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ add r3, r2, #0x0
+ bl FUN_0204A9F0
+ cmp r0, #0x0
+ beq _02060C6A
+ ldr r1, [r5, #0x2c]
+ add r0, r4, #0x0
+ bl FUN_021F4BD0
+ ldr r0, [r0, #0x0]
+ blx FUN_020BC13C
+ ldrh r1, [r0, #0xe]
+ add r2, sp, #0x20
+ mov r3, #0x0
+ add r1, r0, r1
+ ldr r1, [r1, #0xc]
+ add r0, r0, r1
+ str r0, [sp, #0x18]
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_0204A9F0
+ cmp r0, #0x0
+ bne _02060C38
+ bl ErrorHandling
+_02060C38:
+ ldr r0, [sp, #0x20]
+ bl FUN_021E7EC8
+ str r0, [sp, #0x1c]
+ ldr r0, [r5, #0x2c]
+ bl FUN_021F4C88
+ ldr r1, [sp, #0x1c]
+ add r2, sp, #0x24
+ str r1, [sp, #0x0]
+ ldr r1, [sp, #0x18]
+ ldr r2, [r2, r7]
+ str r1, [sp, #0x4]
+ str r0, [sp, #0x8]
+ mov r0, #0x1
+ str r0, [sp, #0xc]
+ str r0, [sp, #0x10]
+ mov r0, #0x0
+ str r0, [sp, #0x14]
+ ldr r0, [r5, #0x4c]
+ ldr r1, [r5, #0x50]
+ add r3, r4, #0x0
+ bl FUN_021DA464
+ b _02060C6E
+_02060C6A:
+ bl ErrorHandling
+_02060C6E:
+ add r0, r6, #0x1
+ lsl r0, r0, #0x18
+ lsr r6, r0, #0x18
+ cmp r6, #0x2
+ blo _02060BF6
+ add sp, #0x34
+ pop {r4-r7, pc}
+ .balign 4
+_02060C7C: .word 0x020F7640
+
+ thumb_func_start FUN_02060C80
+FUN_02060C80: ; 0x02060C80
+ push {r3, lr}
+ ldrb r1, [r0, #0x1]
+ cmp r1, #0x2
+ beq _02060CA8
+ cmp r1, #0x3
+ bne _02060CC4
+ mov r2, #0x2
+ ldr r1, [r0, #0x8]
+ lsl r2, r2, #0x10
+ cmp r1, r2
+ bge _02060CC8
+ ldr r3, [r0, #0x24]
+ lsr r1, r2, #0x5
+ add r1, r3, r1
+ str r1, [r0, #0x24]
+ ldr r3, [r0, #0x8]
+ lsr r1, r2, #0x5
+ add r1, r3, r1
+ str r1, [r0, #0x8]
+ pop {r3, pc}
+_02060CA8:
+ mov r1, #0x3
+ ldr r2, [r0, #0x8]
+ lsl r1, r1, #0x10
+ cmp r2, r1
+ bge _02060CC8
+ mov r1, #0x2
+ ldr r2, [r0, #0x2c]
+ lsl r1, r1, #0xa
+ add r2, r2, r1
+ str r2, [r0, #0x2c]
+ ldr r2, [r0, #0x8]
+ add r1, r2, r1
+ str r1, [r0, #0x8]
+ pop {r3, pc}
+_02060CC4:
+ bl ErrorHandling
+_02060CC8:
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_02060CCC
+FUN_02060CCC: ; 0x02060CCC
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ cmp r5, #0x0
+ ble _02060CD8
+ cmp r5, #0x5
+ blt _02060CDC
+_02060CD8:
+ bl ErrorHandling
+_02060CDC:
+ sub r1, r5, #0x1
+ ldr r6, _02060CF4 ; =0x020F767C
+ mov r0, #0xc
+ add r4, r1, #0x0
+ mul r4, r0
+ ldr r0, [r6, r4]
+ cmp r0, r5
+ beq _02060CF0
+ bl ErrorHandling
+_02060CF0:
+ add r0, r6, r4
+ pop {r4-r6, pc}
+ .balign 4
+_02060CF4: .word 0x020F767C
+
+ thumb_func_start FUN_02060CF8
+FUN_02060CF8: ; 0x02060CF8
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r0, r1, #0x0
+ bl FUN_02248B6C
+ add r4, r0, #0x0
+ cmp r4, #0x0
+ ble _02060D0E
+ ldrh r0, [r5, #0x6]
+ cmp r4, r0
+ blt _02060D12
+_02060D0E:
+ bl ErrorHandling
+_02060D12:
+ sub r0, r4, #0x1
+ ldr r1, [r5, #0x8]
+ lsl r0, r0, #0x3
+ add r0, r1, r0
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_02060D1C
+FUN_02060D1C: ; 0x02060D1C
+ push {r3-r7, lr}
+ add r6, r1, #0x0
+ add r7, r2, #0x0
+ add r5, r3, #0x0
+ bl FUN_02060CCC
+ ldrh r2, [r0, #0x4]
+ ldr r1, [sp, #0x18]
+ strh r2, [r1, #0x0]
+ add r1, r5, #0x0
+ bl FUN_02060CF8
+ ldr r4, [r0, #0x0]
+ cmp r4, #0x0
+ bne _02060D3E
+ bl ErrorHandling
+_02060D3E:
+ add r0, r6, #0x0
+ add r1, r7, #0x0
+ add r2, r5, #0x0
+ blx r4
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_02060D48
+FUN_02060D48: ; 0x02060D48
+ push {r3-r5, lr}
+ add r4, r2, #0x0
+ add r5, r1, #0x0
+ bl FUN_02060CCC
+ add r1, r4, #0x0
+ bl FUN_02060CF8
+ ldr r1, [r0, #0x0]
+ cmp r1, #0x0
+ bne _02060D62
+ mov r0, #0x0
+ pop {r3-r5, pc}
+_02060D62:
+ ldr r2, [r0, #0x4]
+ cmp r2, #0x0
+ bne _02060D6C
+ mov r0, #0x1
+ pop {r3-r5, pc}
+_02060D6C:
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ blx r2
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_02060D74
+FUN_02060D74: ; 0x02060D74
+ push {r4-r6, lr}
+ ldr r0, [r0, #0xc]
+ add r5, r1, #0x0
+ add r4, r2, #0x0
+ add r6, r3, #0x0
+ bl FUN_02022504
+ add r1, r5, #0x0
+ add r2, r4, #0x0
+ add r3, r6, #0x0
+ bl FUN_0202B4B0
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_02060D90
+FUN_02060D90: ; 0x02060D90
+ push {r4-r7, lr}
+ sub sp, #0xc
+ add r5, r0, #0x0
+ add r6, r1, #0x0
+ add r7, r2, #0x0
+ mov r0, #0x40
+ mov r1, #0x4
+ str r3, [sp, #0x8]
+ bl FUN_020219F4
+ add r1, r7, #0x0
+ add r4, r0, #0x0
+ bl FUN_02021E28
+ ldr r0, [sp, #0x24]
+ ldr r3, [sp, #0x8]
+ str r0, [sp, #0x0]
+ ldr r0, [sp, #0x20]
+ add r1, r6, #0x0
+ str r0, [sp, #0x4]
+ add r0, r5, #0x0
+ add r2, r4, #0x0
+ bl FUN_0200ABB4
+ add r0, r4, #0x0
+ bl FUN_02021A20
+ add sp, #0xc
+ pop {r4-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_02060DCC
+FUN_02060DCC: ; 0x02060DCC
+ push {r4-r7, lr}
+ sub sp, #0xc
+ add r6, r2, #0x0
+ add r5, r0, #0x0
+ add r0, r6, #0x0
+ add r4, r1, #0x0
+ bl FUN_02248B5C
+ add r7, r0, #0x0
+ add r0, r6, #0x0
+ bl FUN_02248B54
+ str r0, [sp, #0x8]
+ add r0, r6, #0x0
+ bl FUN_02248B58
+ str r0, [sp, #0x0]
+ mov r0, #0x1
+ str r0, [sp, #0x4]
+ ldr r3, [sp, #0x8]
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ add r2, r7, #0x0
+ bl FUN_02060D90
+ add sp, #0xc
+ pop {r4-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_02060E04
+FUN_02060E04: ; 0x02060E04
+ push {r4-r6, lr}
+ add r3, r0, #0x0
+ add r5, r1, #0x0
+ mov r0, #0x40
+ add r1, r3, #0x0
+ add r6, r2, #0x0
+ bl FUN_020219F4
+ add r4, r0, #0x0
+ add r0, r6, #0x0
+ mov r1, #0x76
+ add r2, r4, #0x0
+ bl FUN_020671BC
+ add r0, r4, #0x0
+ add r1, r5, #0x0
+ mov r2, #0xb
+ bl FUN_02021EF0
+ add r0, r4, #0x0
+ bl FUN_02021A20
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_02060E34
+FUN_02060E34: ; 0x02060E34
+ push {r3-r7, lr}
+ add r4, r1, #0x0
+ add r6, r2, #0x0
+ add r5, r0, #0x0
+ mov r1, #0x5
+ mov r2, #0x0
+ add r7, r3, #0x0
+ bl FUN_020671BC
+ strh r0, [r4, #0x0]
+ add r0, r5, #0x0
+ mov r1, #0x6f
+ mov r2, #0x0
+ bl FUN_020671BC
+ strb r0, [r6, #0x0]
+ add r0, r5, #0x0
+ mov r1, #0xc
+ mov r2, #0x0
+ bl FUN_020671BC
+ strb r0, [r7, #0x0]
+ add r0, r5, #0x0
+ mov r1, #0x79
+ mov r2, #0x0
+ bl FUN_020671BC
+ ldr r1, [sp, #0x18]
+ strb r0, [r1, #0x0]
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_02060E70
+FUN_02060E70: ; 0x02060E70
+ push {r4-r6, lr}
+ sub sp, #0x20
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ add r0, r2, #0x0
+ mov r1, #0x4
+ add r2, sp, #0x8
+ add r6, r3, #0x0
+ bl FUN_0200A99C
+ add r0, sp, #0x20
+ ldrb r0, [r0, #0x10]
+ add r1, r4, #0x0
+ add r2, sp, #0x8
+ str r0, [sp, #0x0]
+ mov r0, #0x1
+ str r0, [sp, #0x4]
+ add r0, r5, #0x0
+ add r3, r6, #0x0
+ bl FUN_02060D90
+ add sp, #0x20
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_02060EA0
+FUN_02060EA0: ; 0x02060EA0
+ push {r3-r5, lr}
+ sub sp, #0x20
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ add r0, r2, #0x0
+ mov r1, #0x4
+ add r2, sp, #0x8
+ bl FUN_0200A99C
+ mov r0, #0x2
+ str r0, [sp, #0x0]
+ mov r0, #0x1
+ str r0, [sp, #0x4]
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ add r2, sp, #0x8
+ mov r3, #0x0
+ bl FUN_02060D90
+ add sp, #0x20
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_02060ECC
+FUN_02060ECC: ; 0x02060ECC
+ push {r3-r7, lr}
+ add r5, r1, #0x0
+ add r6, r0, #0x0
+ add r4, r2, #0x0
+ add r0, r5, #0x0
+ mov r1, #0x4d
+ mov r2, #0x0
+ add r7, r3, #0x0
+ bl FUN_020671BC
+ strb r0, [r4, #0x0]
+ ldrb r0, [r4, #0x0]
+ cmp r0, #0x0
+ beq _02060F0C
+ mov r0, #0x40
+ add r1, r6, #0x0
+ bl FUN_020219F4
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ mov r1, #0x76
+ add r2, r4, #0x0
+ bl FUN_020671BC
+ add r0, r4, #0x0
+ add r1, r7, #0x0
+ mov r2, #0xb
+ bl FUN_02021EF0
+ add r0, r4, #0x0
+ bl FUN_02021A20
+_02060F0C:
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_02060F10
+FUN_02060F10: ; 0x02060F10
+ push {r3-r7, lr}
+ add r7, r1, #0x0
+ add r5, r2, #0x0
+ add r6, r3, #0x0
+ bl FUN_0202B838
+ add r4, r0, #0x0
+ mov r0, #0x1
+ strb r0, [r4, #0x0]
+ add r0, r4, #0x6
+ str r0, [sp, #0x0]
+ add r0, r7, #0x0
+ add r1, r4, #0x2
+ add r2, r4, #0x4
+ add r3, r4, #0x5
+ bl FUN_02060E34
+ strb r5, [r4, #0x8]
+ ldr r0, [sp, #0x18]
+ strb r6, [r4, #0x7]
+ strb r0, [r4, #0x9]
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_02060F3C
+FUN_02060F3C: ; 0x02060F3C
+ push {r3-r6, lr}
+ sub sp, #0x4
+ add r5, r1, #0x0
+ add r6, r2, #0x0
+ bl FUN_0202B844
+ add r4, r0, #0x0
+ mov r0, #0x1
+ strb r0, [r4, #0x0]
+ mov r0, #0x0
+ strb r0, [r4, #0x1f]
+ add r0, r5, #0x0
+ bl FUN_02068854
+ strb r0, [r4, #0x1e]
+ add r0, r4, #0x6
+ str r0, [sp, #0x0]
+ add r0, r5, #0x0
+ add r1, r4, #0x2
+ add r2, r4, #0x4
+ add r3, r4, #0x5
+ bl FUN_02060E34
+ add r0, r5, #0x0
+ mov r1, #0x4d
+ mov r2, #0x0
+ bl FUN_020671BC
+ strb r0, [r4, #0x7]
+ add r2, r4, #0x7
+ add r4, #0x8
+ add r0, r6, #0x0
+ add r1, r5, #0x0
+ add r3, r4, #0x0
+ bl FUN_02060ECC
+ add sp, #0x4
+ pop {r3-r6, pc}
+
+ thumb_func_start FUN_02060F88
+FUN_02060F88: ; 0x02060F88
+ push {r4, lr}
+ add r4, r1, #0x0
+ bl FUN_0202B844
+ mov r1, #0x2
+ strb r1, [r0, #0x1f]
+ add r0, #0x20
+ strb r4, [r0, #0x0]
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02060F9C
+FUN_02060F9C: ; 0x02060F9C
+ push {r4, lr}
+ add r4, r1, #0x0
+ bl FUN_0202B844
+ mov r1, #0x1
+ strb r1, [r0, #0x1f]
+ strh r4, [r0, #0x22]
+ pop {r4, pc}
+
+ thumb_func_start FUN_02060FAC
+FUN_02060FAC: ; 0x02060FAC
+ push {r4, lr}
+ add r4, r1, #0x0
+ bl FUN_0202B850
+ mov r1, #0x1
+ strb r1, [r0, #0x0]
+ strb r4, [r0, #0x1]
+ pop {r4, pc}
+
+ thumb_func_start FUN_02060FBC
+FUN_02060FBC: ; 0x02060FBC
+ push {r3-r5, lr}
+ add r5, r1, #0x0
+ add r4, r2, #0x0
+ bl FUN_0202B85C
+ mov r1, #0x1
+ strb r1, [r0, #0x0]
+ strb r5, [r0, #0x1]
+ strh r4, [r0, #0x2]
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_02060FD0
+FUN_02060FD0: ; 0x02060FD0
+ push {r3, lr}
+ bl FUN_0202B868
+ mov r1, #0x1
+ strb r1, [r0, #0x0]
+ mov r1, #0x0
+ strb r1, [r0, #0x7]
+ pop {r3, pc}
+
+ thumb_func_start FUN_02060FE0
+FUN_02060FE0: ; 0x02060FE0
+ push {r3-r5, lr}
+ add r5, r1, #0x0
+ bl FUN_0202B868
+ add r4, r0, #0x0
+ ldrb r0, [r4, #0x7]
+ cmp r0, #0x0
+ bne _02061000
+ add r0, r4, #0x6
+ str r0, [sp, #0x0]
+ add r0, r5, #0x0
+ add r1, r4, #0x2
+ add r2, r4, #0x4
+ add r3, r4, #0x5
+ bl FUN_02060E34
+_02061000:
+ ldrb r0, [r4, #0x7]
+ add r0, r0, #0x1
+ strb r0, [r4, #0x7]
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_02061008
+FUN_02061008: ; 0x02061008
+ push {r4, lr}
+ mov r1, #0x24
+ bl FUN_02016998
+ add r4, r0, #0x0
+ mov r0, #0x0
+ add r1, r4, #0x0
+ mov r2, #0x24
+ blx MIi_CpuClearFast
+ add r0, r4, #0x0
+ pop {r4, pc}
+
+ thumb_func_start FUN_02061020
+FUN_02061020: ; 0x02061020
+ ldr r3, _02061024 ; =FUN_02016A18
+ bx r3
+ .balign 4
+_02061024: .word FUN_02016A18
+
+ thumb_func_start FUN_02061028
+FUN_02061028: ; 0x02061028
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ add r6, r2, #0x0
+ mov r0, #0x0
+ add r1, r5, #0x0
+ mov r2, #0x24
+ add r7, r3, #0x0
+ blx MIi_CpuClear32
+ str r6, [r5, #0x0]
+ add r0, r5, #0x0
+ add r2, r5, #0x0
+ add r3, r5, #0x0
+ strh r7, [r5, #0x4]
+ add r0, #0xa
+ str r0, [sp, #0x0]
+ add r0, r4, #0x0
+ add r1, r5, #0x6
+ add r2, #0x8
+ add r3, #0x9
+ bl FUN_02060E34
+ add r0, r4, #0x0
+ mov r1, #0x9a
+ mov r2, #0x0
+ bl FUN_020671BC
+ strh r0, [r5, #0x22]
+ ldrh r0, [r5, #0x22]
+ cmp r0, #0x0
+ bne _0206106C
+ bl ErrorHandling
+_0206106C:
+ add r2, r5, #0x0
+ add r5, #0xc
+ ldr r0, [sp, #0x18]
+ add r1, r4, #0x0
+ add r2, #0xb
+ add r3, r5, #0x0
+ bl FUN_02060ECC
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_02061080
+FUN_02061080: ; 0x02061080
+ push {r3-r7, lr}
+ sub sp, #0x28
+ add r7, sp, #0x0
+ add r5, r2, #0x0
+ add r6, r0, #0x0
+ add r3, r1, #0x0
+ add r4, r7, #0x0
+ mov r2, #0x4
+_02061090:
+ ldmia r3!, {r0-r1}
+ stmia r4!, {r0-r1}
+ sub r2, r2, #0x1
+ bne _02061090
+ ldr r0, [r3, #0x0]
+ str r0, [r4, #0x0]
+ str r5, [sp, #0x0]
+ add r0, sp, #0x0
+ ldrh r0, [r0, #0x4]
+ cmp r0, #0x0
+ beq _020610F0
+ ldrh r1, [r7, #0x4]
+ ldr r0, _020610F4 ; =0x000003E7
+ cmp r1, r0
+ bls _020610B0
+ strh r0, [r7, #0x4]
+_020610B0:
+ cmp r5, #0x6
+ bhi _020610F0
+ add r0, r5, r5
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_020610C0: ; jump table (using 16-bit offset)
+ .short _020610F0 - _020610C0 - 2; case 0
+ .short _020610DE - _020610C0 - 2; case 1
+ .short _020610F0 - _020610C0 - 2; case 2
+ .short _020610F0 - _020610C0 - 2; case 3
+ .short _020610CE - _020610C0 - 2; case 4
+ .short _020610DE - _020610C0 - 2; case 5
+ .short _020610DE - _020610C0 - 2; case 6
+_020610CE:
+ add r0, r6, #0x0
+ mov r1, #0x2
+ mov r2, #0x1
+ add r3, r7, #0x0
+ bl FUN_02060D74
+ add sp, #0x28
+ pop {r3-r7, pc}
+_020610DE:
+ ldrh r0, [r7, #0x4]
+ cmp r0, #0x2
+ bls _020610F0
+ mov r1, #0x2
+ add r0, r6, #0x0
+ add r2, r1, #0x0
+ add r3, r7, #0x0
+ bl FUN_02060D74
+_020610F0:
+ add sp, #0x28
+ pop {r3-r7, pc}
+ .balign 4
+_020610F4: .word 0x000003E7
+
+ thumb_func_start FUN_020610F8
+FUN_020610F8: ; 0x020610F8
+ push {r4-r6, lr}
+ sub sp, #0x8
+ add r6, r2, #0x0
+ add r0, r6, #0x0
+ add r5, r1, #0x0
+ bl FUN_02248B60
+ add r4, r0, #0x0
+ ldrb r0, [r4, #0xb]
+ cmp r0, #0x0
+ beq _02061166
+ add r0, r5, #0x0
+ mov r1, #0x0
+ add r2, r6, #0x0
+ bl FUN_02060DCC
+ ldrb r0, [r4, #0x9]
+ mov r1, #0x1
+ str r0, [sp, #0x0]
+ ldrb r0, [r4, #0xa]
+ str r0, [sp, #0x4]
+ ldrh r2, [r4, #0x6]
+ ldrb r3, [r4, #0x8]
+ add r0, r5, #0x0
+ bl FUN_02060E70
+ ldrh r2, [r4, #0x22]
+ add r0, r5, #0x0
+ mov r1, #0x2
+ bl FUN_0200AE38
+ mov r0, #0x0
+ str r0, [sp, #0x0]
+ mov r0, #0x1
+ str r0, [sp, #0x4]
+ mov r1, #0x3
+ ldrh r2, [r4, #0x4]
+ add r0, r5, #0x0
+ add r3, r1, #0x0
+ bl FUN_0200AD38
+ ldrb r0, [r4, #0x9]
+ add r2, r4, #0x0
+ mov r1, #0x4
+ str r0, [sp, #0x0]
+ mov r0, #0x1
+ str r0, [sp, #0x4]
+ ldrb r3, [r4, #0x8]
+ add r0, r5, #0x0
+ add r2, #0xc
+ bl FUN_02060D90
+ add sp, #0x8
+ mov r0, #0x0
+ pop {r4-r6, pc}
+_02061166:
+ add r0, r5, #0x0
+ mov r1, #0x0
+ add r2, r6, #0x0
+ bl FUN_02060DCC
+ ldrb r0, [r4, #0x9]
+ mov r1, #0x1
+ str r0, [sp, #0x0]
+ ldrb r0, [r4, #0xa]
+ str r0, [sp, #0x4]
+ ldrh r2, [r4, #0x6]
+ ldrb r3, [r4, #0x8]
+ add r0, r5, #0x0
+ bl FUN_02060E70
+ ldrh r2, [r4, #0x22]
+ add r0, r5, #0x0
+ mov r1, #0x2
+ bl FUN_0200AE38
+ mov r0, #0x0
+ str r0, [sp, #0x0]
+ mov r0, #0x1
+ str r0, [sp, #0x4]
+ mov r1, #0x3
+ ldrh r2, [r4, #0x4]
+ add r0, r5, #0x0
+ add r3, r1, #0x0
+ bl FUN_0200AD38
+ mov r0, #0x1
+ add sp, #0x8
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_020611A8
+FUN_020611A8: ; 0x020611A8
+ push {r4-r6, lr}
+ sub sp, #0x8
+ add r6, r2, #0x0
+ add r5, r1, #0x0
+ add r0, r6, #0x0
+ bl FUN_02248B60
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ mov r1, #0x0
+ add r2, r6, #0x0
+ bl FUN_02060DCC
+ mov r0, #0x0
+ str r0, [sp, #0x0]
+ mov r1, #0x1
+ str r1, [sp, #0x4]
+ ldrh r2, [r4, #0x4]
+ add r0, r5, #0x0
+ mov r3, #0x3
+ bl FUN_0200AD38
+ ldr r0, [r4, #0x0]
+ cmp r0, #0x1
+ bne _020611E0
+ add sp, #0x8
+ mov r0, #0x2
+ pop {r4-r6, pc}
+_020611E0:
+ mov r0, #0x3
+ add sp, #0x8
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_020611E8
+FUN_020611E8: ; 0x020611E8
+ push {r3-r5, lr}
+ ldr r0, [r0, #0xc]
+ add r5, r1, #0x0
+ bl FUN_02024DA0
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_02248B60
+ add r1, r0, #0x0
+ ldrh r1, [r1, #0x6]
+ add r0, r4, #0x0
+ bl FUN_020245F0
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_02061208
+FUN_02061208: ; 0x02061208
+ push {r4-r7, lr}
+ sub sp, #0x2c
+ add r5, r1, #0x0
+ add r7, r0, #0x0
+ add r4, r2, #0x0
+ add r6, sp, #0x4
+ cmp r5, #0x0
+ beq _02061228
+ add r0, r6, #0x4
+ str r0, [sp, #0x0]
+ add r0, r3, #0x0
+ add r1, r6, #0x0
+ add r2, r6, #0x2
+ add r3, r6, #0x3
+ bl FUN_02060E34
+_02061228:
+ strh r4, [r6, #0x6]
+ add r0, r7, #0x0
+ mov r1, #0x2
+ mov r2, #0x3
+ add r3, r6, #0x0
+ str r5, [r6, #0x8]
+ bl FUN_02060D74
+ add sp, #0x2c
+ pop {r4-r7, pc}
+
+ thumb_func_start FUN_0206123C
+FUN_0206123C: ; 0x0206123C
+ push {r4-r6, lr}
+ sub sp, #0x8
+ add r6, r2, #0x0
+ add r5, r1, #0x0
+ add r0, r6, #0x0
+ bl FUN_02248B60
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ mov r1, #0x0
+ add r2, r6, #0x0
+ bl FUN_02060DCC
+ ldr r0, [r4, #0x8]
+ cmp r0, #0x0
+ beq _02061280
+ ldrh r2, [r4, #0x6]
+ add r0, r5, #0x0
+ mov r1, #0x1
+ bl FUN_0200AE38
+ ldrb r0, [r4, #0x3]
+ mov r1, #0x2
+ str r0, [sp, #0x0]
+ ldrb r0, [r4, #0x4]
+ str r0, [sp, #0x4]
+ ldrh r2, [r4, #0x0]
+ ldrb r3, [r4, #0x2]
+ add r0, r5, #0x0
+ bl FUN_02060E70
+ add sp, #0x8
+ mov r0, #0x4
+ pop {r4-r6, pc}
+_02061280:
+ mov r0, #0x5
+ add sp, #0x8
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_02061288
+FUN_02061288: ; 0x02061288
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r0, r1, #0x0
+ bl FUN_02248B60
+ add r4, r0, #0x0
+ ldr r0, [r4, #0x8]
+ cmp r0, #0x0
+ bne _0206129E
+ mov r0, #0x1
+ pop {r3-r5, pc}
+_0206129E:
+ ldr r0, [r5, #0xc]
+ bl FUN_02024DA0
+ ldrh r1, [r4, #0x0]
+ bl FUN_020245F0
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_020612AC
+FUN_020612AC: ; 0x020612AC
+ push {r4-r6, lr}
+ sub sp, #0x28
+ add r5, r0, #0x0
+ ldr r0, [r5, #0xc]
+ add r4, r1, #0x0
+ bl FUN_0202881C
+ add r6, r0, #0x0
+ mov r0, #0x0
+ add r1, sp, #0x0
+ mov r2, #0x28
+ blx MIi_CpuClearFast
+ add r0, r6, #0x0
+ mov r1, #0x1
+ mov r2, #0x0
+ bl FUN_020287A8
+ add r1, r0, #0x0
+ add r0, sp, #0x0
+ mov r2, #0xb
+ bl StringCopyN
+ add r0, r5, #0x0
+ mov r1, #0x2
+ add r2, r4, #0x0
+ add r3, sp, #0x0
+ bl FUN_02060D74
+ add sp, #0x28
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_020612EC
+FUN_020612EC: ; 0x020612EC
+ ldr r3, _020612F4 ; =FUN_020612AC
+ mov r1, #0x14
+ bx r3
+ nop
+_020612F4: .word FUN_020612AC
+
+ thumb_func_start FUN_020612F8
+FUN_020612F8: ; 0x020612F8
+ ldr r3, _02061300 ; =FUN_020612AC
+ mov r1, #0x4
+ bx r3
+ nop
+_02061300: .word FUN_020612AC
+
+ thumb_func_start FUN_02061304
+FUN_02061304: ; 0x02061304
+ push {r4-r6, lr}
+ sub sp, #0x8
+ add r4, r2, #0x0
+ add r0, r4, #0x0
+ add r5, r1, #0x0
+ bl FUN_02248B60
+ add r6, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_02248B58
+ str r0, [sp, #0x0]
+ mov r1, #0x1
+ add r0, r5, #0x0
+ add r2, r6, #0x0
+ mov r3, #0x0
+ str r1, [sp, #0x4]
+ bl FUN_02060D90
+ add r0, r5, #0x0
+ mov r1, #0x0
+ add r2, r4, #0x0
+ bl FUN_02060DCC
+ mov r0, #0x6
+ add sp, #0x8
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_0206133C
+FUN_0206133C: ; 0x0206133C
+ push {r4-r6, lr}
+ sub sp, #0x8
+ add r4, r2, #0x0
+ add r0, r4, #0x0
+ add r5, r1, #0x0
+ bl FUN_02248B60
+ add r6, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_02248B58
+ str r0, [sp, #0x0]
+ mov r1, #0x1
+ add r0, r5, #0x0
+ add r2, r6, #0x0
+ mov r3, #0x0
+ str r1, [sp, #0x4]
+ bl FUN_02060D90
+ add r0, r5, #0x0
+ mov r1, #0x0
+ add r2, r4, #0x0
+ bl FUN_02060DCC
+ mov r0, #0x20
+ add sp, #0x8
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_02061374
+FUN_02061374: ; 0x02061374
+ push {r4, lr}
+ sub sp, #0x28
+ add r4, r0, #0x0
+ add r0, sp, #0x0
+ strh r1, [r0, #0x0]
+ ldr r0, [r4, #0x1c]
+ ldr r0, [r0, #0x0]
+ bl FUN_02034824
+ add r1, sp, #0x0
+ strh r0, [r1, #0x2]
+ add r0, r4, #0x0
+ mov r1, #0x2
+ mov r2, #0x6
+ add r3, sp, #0x0
+ bl FUN_02060D74
+ add sp, #0x28
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0206139C
+FUN_0206139C: ; 0x0206139C
+ push {r4-r6, lr}
+ add r6, r2, #0x0
+ add r0, r6, #0x0
+ add r5, r1, #0x0
+ bl FUN_02248B60
+ add r4, r0, #0x0
+ ldrh r2, [r4, #0x2]
+ add r0, r5, #0x0
+ mov r1, #0x0
+ bl FUN_0200AFF4
+ add r0, r5, #0x0
+ mov r1, #0x1
+ add r2, r6, #0x0
+ bl FUN_02060DCC
+ ldrh r2, [r4, #0x0]
+ add r0, r5, #0x0
+ mov r1, #0x2
+ bl FUN_0200AE38
+ mov r0, #0xa
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_020613CC
+FUN_020613CC: ; 0x020613CC
+ push {r3-r4, lr}
+ sub sp, #0x2c
+ add r4, r0, #0x0
+ add r0, sp, #0x8
+ add r2, sp, #0x4
+ add r3, sp, #0x4
+ str r0, [sp, #0x0]
+ add r0, r1, #0x0
+ add r1, sp, #0x4
+ add r2, #0x2
+ add r3, #0x3
+ bl FUN_02060E34
+ ldr r0, [r4, #0x1c]
+ ldr r0, [r0, #0x0]
+ bl FUN_02034824
+ add r1, sp, #0x4
+ strh r0, [r1, #0x6]
+ add r0, r4, #0x0
+ mov r1, #0x2
+ mov r2, #0x8
+ add r3, sp, #0x4
+ bl FUN_02060D74
+ add sp, #0x2c
+ pop {r3-r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02061404
+FUN_02061404: ; 0x02061404
+ push {r4-r6, lr}
+ sub sp, #0x8
+ add r6, r2, #0x0
+ add r0, r6, #0x0
+ add r5, r1, #0x0
+ bl FUN_02248B60
+ add r4, r0, #0x0
+ ldrh r2, [r4, #0x6]
+ add r0, r5, #0x0
+ mov r1, #0x1
+ bl FUN_0200AFF4
+ add r0, r5, #0x0
+ mov r1, #0x0
+ add r2, r6, #0x0
+ bl FUN_02060DCC
+ ldrb r0, [r4, #0x3]
+ mov r1, #0x2
+ str r0, [sp, #0x0]
+ ldrb r0, [r4, #0x4]
+ str r0, [sp, #0x4]
+ ldrh r2, [r4, #0x0]
+ ldrb r3, [r4, #0x2]
+ add r0, r5, #0x0
+ bl FUN_02060E70
+ mov r0, #0xc
+ add sp, #0x8
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_02061444
+FUN_02061444: ; 0x02061444
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r0, r1, #0x0
+ bl FUN_02248B60
+ add r4, r0, #0x0
+ ldr r0, [r5, #0xc]
+ bl FUN_02024DA0
+ ldrh r1, [r4, #0x0]
+ bl FUN_020245F0
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_02061460
+FUN_02061460: ; 0x02061460
+ push {r4-r5, lr}
+ sub sp, #0x2c
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ add r0, sp, #0x8
+ add r2, sp, #0x4
+ add r3, sp, #0x4
+ str r0, [sp, #0x0]
+ add r0, r4, #0x0
+ add r1, sp, #0x4
+ add r2, #0x2
+ add r3, #0x3
+ bl FUN_02060E34
+ add r1, sp, #0x8
+ mov r0, #0x4
+ add r1, #0x2
+ add r2, r4, #0x0
+ bl FUN_02060E04
+ add r0, r5, #0x0
+ mov r1, #0x2
+ mov r2, #0xa
+ add r3, sp, #0x4
+ bl FUN_02060D74
+ add sp, #0x2c
+ pop {r4-r5, pc}
+
+ thumb_func_start FUN_02061498
+FUN_02061498: ; 0x02061498
+ push {r4-r6, lr}
+ sub sp, #0x8
+ add r6, r2, #0x0
+ add r5, r1, #0x0
+ add r0, r6, #0x0
+ bl FUN_02248B60
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ mov r1, #0x0
+ add r2, r6, #0x0
+ bl FUN_02060DCC
+ ldrb r0, [r4, #0x3]
+ mov r1, #0x1
+ str r0, [sp, #0x0]
+ ldrb r0, [r4, #0x4]
+ str r0, [sp, #0x4]
+ ldrh r2, [r4, #0x0]
+ ldrb r3, [r4, #0x2]
+ add r0, r5, #0x0
+ bl FUN_02060E70
+ ldrb r0, [r4, #0x3]
+ mov r1, #0x2
+ add r2, r4, #0x6
+ str r0, [sp, #0x0]
+ mov r0, #0x1
+ str r0, [sp, #0x4]
+ ldrb r3, [r4, #0x2]
+ add r0, r5, #0x0
+ bl FUN_02060D90
+ bl FUN_0201B9EC
+ ldr r1, _020614F8 ; =0x00003334
+ blx _s32_div_f
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+ cmp r4, #0x5
+ blo _020614F0
+ bl ErrorHandling
+_020614F0:
+ add r4, #0x11
+ add r0, r4, #0x0
+ add sp, #0x8
+ pop {r4-r6, pc}
+ .balign 4
+_020614F8: .word 0x00003334
+
+ thumb_func_start FUN_020614FC
+FUN_020614FC: ; 0x020614FC
+ push {r3-r5, lr}
+ ldr r0, [r0, #0xc]
+ add r5, r1, #0x0
+ bl FUN_02024DA0
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_02248B60
+ add r1, r0, #0x0
+ ldrh r1, [r1, #0x0]
+ add r0, r4, #0x0
+ bl FUN_020245F0
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_0206151C
+FUN_0206151C: ; 0x0206151C
+ push {r3, lr}
+ sub sp, #0x28
+ add r3, sp, #0x0
+ strh r1, [r3, #0x0]
+ strh r2, [r3, #0x2]
+ mov r1, #0x2
+ mov r2, #0xd
+ add r3, sp, #0x0
+ bl FUN_02060D74
+ add sp, #0x28
+ pop {r3, pc}
+
+ thumb_func_start FUN_02061534
+FUN_02061534: ; 0x02061534
+ push {r4-r6, lr}
+ sub sp, #0x8
+ add r6, r2, #0x0
+ add r5, r1, #0x0
+ add r0, r6, #0x0
+ bl FUN_02248B60
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ mov r1, #0x0
+ add r2, r6, #0x0
+ bl FUN_02060DCC
+ ldrh r2, [r4, #0x0]
+ add r0, r5, #0x0
+ mov r1, #0x1
+ bl FUN_0200B164
+ mov r0, #0x0
+ str r0, [sp, #0x0]
+ mov r0, #0x1
+ str r0, [sp, #0x4]
+ ldrh r2, [r4, #0x2]
+ add r0, r5, #0x0
+ mov r1, #0x2
+ mov r3, #0x3
+ bl FUN_0200AD38
+ mov r0, #0x18
+ add sp, #0x8
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_02061574
+FUN_02061574: ; 0x02061574
+ push {r3-r5, lr}
+ sub sp, #0x28
+ add r5, r0, #0x0
+ ldr r0, [r5, #0xc]
+ add r4, sp, #0x0
+ bl FUN_02022504
+ bl FUN_0202B868
+ ldrb r1, [r0, #0x7]
+ cmp r1, #0x0
+ beq _020615AC
+ ldrh r1, [r0, #0x2]
+ mov r2, #0xf
+ add r3, r4, #0x0
+ strh r1, [r4, #0x0]
+ ldrb r1, [r0, #0x4]
+ strb r1, [r4, #0x2]
+ ldrb r1, [r0, #0x5]
+ strb r1, [r4, #0x3]
+ ldrb r1, [r0, #0x6]
+ strb r1, [r4, #0x4]
+ ldrb r0, [r0, #0x7]
+ mov r1, #0x2
+ strb r0, [r4, #0x5]
+ add r0, r5, #0x0
+ bl FUN_02060D74
+_020615AC:
+ add sp, #0x28
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_020615B0
+FUN_020615B0: ; 0x020615B0
+ push {r4-r6, lr}
+ sub sp, #0x8
+ add r6, r2, #0x0
+ add r5, r1, #0x0
+ add r0, r6, #0x0
+ bl FUN_02248B60
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ mov r1, #0x0
+ add r2, r6, #0x0
+ bl FUN_02060DCC
+ ldrb r0, [r4, #0x3]
+ mov r1, #0x1
+ str r0, [sp, #0x0]
+ ldrb r0, [r4, #0x4]
+ str r0, [sp, #0x4]
+ ldrh r2, [r4, #0x0]
+ ldrb r3, [r4, #0x2]
+ add r0, r5, #0x0
+ bl FUN_02060E70
+ mov r0, #0x0
+ str r0, [sp, #0x0]
+ mov r0, #0x1
+ str r0, [sp, #0x4]
+ mov r1, #0x2
+ ldrb r2, [r4, #0x5]
+ add r0, r5, #0x0
+ add r3, r1, #0x0
+ bl FUN_0200AD38
+ mov r0, #0x1a
+ add sp, #0x8
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_020615F8
+FUN_020615F8: ; 0x020615F8
+ push {r3-r5, lr}
+ ldr r0, [r0, #0xc]
+ add r5, r1, #0x0
+ bl FUN_02024DA0
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_02248B60
+ add r1, r0, #0x0
+ ldrh r1, [r1, #0x0]
+ add r0, r4, #0x0
+ bl FUN_020245F0
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_02061618
+FUN_02061618: ; 0x02061618
+ push {r4-r5, lr}
+ sub sp, #0x2c
+ add r5, r0, #0x0
+ add r4, r2, #0x0
+ add r0, sp, #0x8
+ add r2, sp, #0x4
+ add r3, sp, #0x4
+ str r0, [sp, #0x0]
+ add r0, r1, #0x0
+ add r1, sp, #0x4
+ add r2, #0x2
+ add r3, #0x3
+ bl FUN_02060E34
+ add r0, sp, #0x4
+ strh r4, [r0, #0x6]
+ add r0, r5, #0x0
+ mov r1, #0x2
+ mov r2, #0x11
+ add r3, sp, #0x4
+ bl FUN_0202B4B0
+ add sp, #0x2c
+ pop {r4-r5, pc}
+
+ thumb_func_start FUN_02061648
+FUN_02061648: ; 0x02061648
+ push {r4-r6, lr}
+ sub sp, #0x8
+ add r6, r2, #0x0
+ add r5, r1, #0x0
+ add r0, r6, #0x0
+ bl FUN_02248B60
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ mov r1, #0x0
+ add r2, r6, #0x0
+ bl FUN_02060DCC
+ ldrb r0, [r4, #0x3]
+ mov r1, #0x1
+ str r0, [sp, #0x0]
+ ldrb r0, [r4, #0x4]
+ str r0, [sp, #0x4]
+ ldrh r2, [r4, #0x0]
+ ldrb r3, [r4, #0x2]
+ add r0, r5, #0x0
+ bl FUN_02060E70
+ ldrh r2, [r4, #0x6]
+ add r0, r5, #0x0
+ mov r1, #0x2
+ bl FUN_0200AE38
+ mov r0, #0x1d
+ add sp, #0x8
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_02061688
+FUN_02061688: ; 0x02061688
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r0, r1, #0x0
+ bl FUN_02248B60
+ add r4, r0, #0x0
+ ldr r0, [r5, #0xc]
+ bl FUN_02024DA0
+ ldrh r1, [r4, #0x0]
+ bl FUN_020245F0
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_020616A4
+FUN_020616A4: ; 0x020616A4
+ push {r3-r5, lr}
+ sub sp, #0x28
+ add r4, sp, #0x0
+ strh r1, [r4, #0x0]
+ strb r2, [r4, #0x2]
+ add r5, sp, #0x0
+ strh r3, [r4, #0x4]
+ cmp r2, #0x5
+ bne _020616C4
+ mov r1, #0x3
+ mov r2, #0x6
+ add r3, r5, #0x0
+ bl FUN_02060D74
+ add sp, #0x28
+ pop {r3-r5, pc}
+_020616C4:
+ cmp r2, #0x4
+ bne _020616D6
+ mov r1, #0x2
+ mov r2, #0x12
+ add r3, r5, #0x0
+ bl FUN_02060D74
+ add sp, #0x28
+ pop {r3-r5, pc}
+_020616D6:
+ cmp r2, #0x0
+ bne _020616E4
+ mov r1, #0x2
+ mov r2, #0x13
+ add r3, r5, #0x0
+ bl FUN_02060D74
+_020616E4:
+ add sp, #0x28
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_020616E8
+FUN_020616E8: ; 0x020616E8
+ push {r4-r6, lr}
+ sub sp, #0x8
+ add r6, r2, #0x0
+ add r5, r1, #0x0
+ add r0, r6, #0x0
+ bl FUN_02248B60
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ mov r1, #0x0
+ add r2, r6, #0x0
+ bl FUN_02060DCC
+ ldrh r2, [r4, #0x0]
+ add r0, r5, #0x0
+ mov r1, #0x1
+ bl FUN_0200AE38
+ mov r0, #0x0
+ str r0, [sp, #0x0]
+ mov r0, #0x1
+ str r0, [sp, #0x4]
+ mov r1, #0x2
+ ldrh r2, [r4, #0x4]
+ add r0, r5, #0x0
+ add r3, r1, #0x0
+ bl FUN_0200AD38
+ mov r0, #0x1e
+ add sp, #0x8
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_02061728
+FUN_02061728: ; 0x02061728
+ push {r4-r6, lr}
+ add r6, r2, #0x0
+ add r5, r1, #0x0
+ add r0, r6, #0x0
+ bl FUN_02248B60
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ mov r1, #0x0
+ add r2, r6, #0x0
+ bl FUN_02060DCC
+ ldrh r2, [r4, #0x0]
+ add r0, r5, #0x0
+ mov r1, #0x1
+ bl FUN_0200AE38
+ mov r0, #0x1f
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_02061750
+FUN_02061750: ; 0x02061750
+ push {r4-r6, lr}
+ sub sp, #0x8
+ add r6, r2, #0x0
+ add r5, r1, #0x0
+ add r0, r6, #0x0
+ bl FUN_02248B60
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ mov r1, #0x0
+ add r2, r6, #0x0
+ bl FUN_02060DCC
+ ldrh r0, [r4, #0x0]
+ mov r1, #0x4
+ sub r0, #0x95
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ bl FUN_020852E8
+ add r4, r0, #0x0
+ mov r1, #0x1
+ str r1, [sp, #0x0]
+ mov r0, #0x2
+ str r0, [sp, #0x4]
+ add r0, r5, #0x0
+ add r2, r4, #0x0
+ mov r3, #0x0
+ bl FUN_0200ABB4
+ add r0, r4, #0x0
+ bl FUN_02021A20
+ mov r0, #0x5
+ add sp, #0x8
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_02061798
+FUN_02061798: ; 0x02061798
+ push {r4-r5, lr}
+ sub sp, #0x2c
+ add r5, r0, #0x0
+ add r0, sp, #0x4
+ add r4, r1, #0x0
+ strb r2, [r0, #0x6]
+ bl FUN_0201BA60
+ mov r1, #0x3
+ blx _u32_div_f
+ add r0, sp, #0x4
+ strb r1, [r0, #0x5]
+ add r0, sp, #0x8
+ add r2, sp, #0x4
+ add r3, sp, #0x4
+ str r0, [sp, #0x0]
+ add r0, r4, #0x0
+ add r1, sp, #0x4
+ add r2, #0x2
+ add r3, #0x3
+ bl FUN_02060E34
+ add r0, r5, #0x0
+ mov r1, #0x2
+ mov r2, #0x15
+ add r3, sp, #0x4
+ bl FUN_0202B4B0
+ add sp, #0x2c
+ pop {r4-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_020617D8
+FUN_020617D8: ; 0x020617D8
+ push {r4-r6, lr}
+ sub sp, #0x8
+ add r6, r2, #0x0
+ add r5, r1, #0x0
+ add r0, r6, #0x0
+ bl FUN_02248B60
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ mov r1, #0x0
+ add r2, r6, #0x0
+ bl FUN_02060DCC
+ ldrb r2, [r4, #0x6]
+ add r0, r5, #0x0
+ mov r1, #0x1
+ bl FUN_0200B534
+ ldrb r0, [r4, #0x3]
+ mov r1, #0x2
+ str r0, [sp, #0x0]
+ ldrb r0, [r4, #0x4]
+ str r0, [sp, #0x4]
+ ldrh r2, [r4, #0x0]
+ ldrb r3, [r4, #0x2]
+ add r0, r5, #0x0
+ bl FUN_02060E70
+ bl FUN_0201B9EC
+ ldr r1, _02061830 ; =0x00005556
+ blx _s32_div_f
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+ cmp r4, #0x3
+ blo _02061826
+ bl ErrorHandling
+_02061826:
+ add r4, #0x21
+ add r0, r4, #0x0
+ add sp, #0x8
+ pop {r4-r6, pc}
+ nop
+_02061830: .word 0x00005556
+
+ thumb_func_start FUN_02061834
+FUN_02061834: ; 0x02061834
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r0, r1, #0x0
+ bl FUN_02248B60
+ add r4, r0, #0x0
+ ldr r0, [r5, #0xc]
+ bl FUN_02024DA0
+ ldrh r1, [r4, #0x0]
+ bl FUN_020245F0
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_02061850
+FUN_02061850: ; 0x02061850
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ bl FUN_02023924
+ str r0, [r5, #0x0]
+ add r0, r4, #0x0
+ add r1, r5, #0x4
+ bl FUN_0202393C
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_02061868
+FUN_02061868: ; 0x02061868
+ push {r4-r6, lr}
+ add r6, r2, #0x0
+ add r0, r6, #0x0
+ add r5, r1, #0x0
+ bl FUN_02248B60
+ add r4, r0, #0x0
+ bl FUN_02023924
+ ldr r1, [r4, #0x0]
+ cmp r1, r0
+ beq _02061884
+ bl ErrorHandling
+_02061884:
+ add r0, r5, #0x0
+ mov r1, #0x0
+ add r2, r6, #0x0
+ bl FUN_02060DCC
+ add r0, r5, #0x0
+ mov r1, #0x1
+ add r2, r4, #0x4
+ bl FUN_0200ABC0
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_0206189C
+FUN_0206189C: ; 0x0206189C
+ push {r4, lr}
+ sub sp, #0x28
+ add r4, r0, #0x0
+ add r0, sp, #0x0
+ bl FUN_02061850
+ add r0, r4, #0x0
+ mov r1, #0x2
+ mov r2, #0x16
+ add r3, sp, #0x0
+ bl FUN_02060D74
+ add sp, #0x28
+ pop {r4, pc}
+
+ thumb_func_start FUN_020618B8
+FUN_020618B8: ; 0x020618B8
+ push {r4, lr}
+ sub sp, #0x28
+ add r4, r0, #0x0
+ add r0, sp, #0x0
+ bl FUN_02061850
+ add r0, r4, #0x0
+ mov r1, #0x2
+ mov r2, #0x17
+ add r3, sp, #0x0
+ bl FUN_02060D74
+ add sp, #0x28
+ pop {r4, pc}
+
+ thumb_func_start FUN_020618D4
+FUN_020618D4: ; 0x020618D4
+ push {r3, lr}
+ bl FUN_02061868
+ mov r0, #0x24
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_020618E0
+FUN_020618E0: ; 0x020618E0
+ push {r3, lr}
+ bl FUN_02061868
+ mov r0, #0x25
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_020618EC
+FUN_020618EC: ; 0x020618EC
+ push {r3, lr}
+ ldr r0, [r0, #0xc]
+ bl FUN_0206F158
+ mov r1, #0x6b
+ lsl r1, r1, #0x2
+ mov r2, #0x1
+ mov r3, #0x20
+ bl FUN_0206EE50
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_02061904
+FUN_02061904: ; 0x02061904
+ push {r3-r6, lr}
+ sub sp, #0x2c
+ add r6, r0, #0x0
+ add r0, sp, #0x8
+ add r5, r1, #0x0
+ add r4, r3, #0x0
+ add r0, #0x2
+ add r1, sp, #0x4
+ add r3, sp, #0x8
+ str r0, [sp, #0x0]
+ add r0, r2, #0x0
+ add r1, #0x2
+ add r2, sp, #0x8
+ add r3, #0x1
+ bl FUN_02060E34
+ add r0, sp, #0x4
+ strh r5, [r0, #0x0]
+ strb r4, [r0, #0x7]
+ add r0, r6, #0x0
+ mov r1, #0x3
+ mov r2, #0x1
+ add r3, sp, #0x4
+ bl FUN_02060D74
+ add sp, #0x2c
+ pop {r3-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_0206193C
+FUN_0206193C: ; 0x0206193C
+ push {r4-r6, lr}
+ sub sp, #0x8
+ add r6, r2, #0x0
+ add r5, r1, #0x0
+ add r0, r6, #0x0
+ bl FUN_02248B60
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ mov r1, #0x0
+ add r2, r6, #0x0
+ bl FUN_02060DCC
+ ldrb r0, [r4, #0x5]
+ mov r1, #0x1
+ str r0, [sp, #0x0]
+ ldrb r0, [r4, #0x6]
+ str r0, [sp, #0x4]
+ ldrh r2, [r4, #0x2]
+ ldrb r3, [r4, #0x4]
+ add r0, r5, #0x0
+ bl FUN_02060E70
+ mov r0, #0x0
+ str r0, [sp, #0x0]
+ mov r0, #0x1
+ str r0, [sp, #0x4]
+ ldrh r2, [r4, #0x0]
+ add r0, r5, #0x0
+ mov r1, #0x2
+ mov r3, #0x4
+ bl FUN_0200AD38
+ ldrb r0, [r4, #0x7]
+ cmp r0, #0x0
+ bne _0206198A
+ add sp, #0x8
+ mov r0, #0x1
+ pop {r4-r6, pc}
+_0206198A:
+ mov r0, #0x0
+ add sp, #0x8
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_02061990
+FUN_02061990: ; 0x02061990
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r0, r1, #0x0
+ bl FUN_02248B60
+ add r4, r0, #0x0
+ ldr r0, [r5, #0xc]
+ bl FUN_02024DA0
+ ldrh r1, [r4, #0x2]
+ bl FUN_020245F0
+ cmp r0, #0x0
+ bne _020619B0
+ mov r0, #0x0
+ pop {r3-r5, pc}
+_020619B0:
+ ldr r0, [r5, #0xc]
+ bl FUN_020462AC
+ mov r1, #0x2
+ mov r2, #0x11
+ bl FUN_0205F2E4
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_020619C0
+FUN_020619C0: ; 0x020619C0
+ push {r4-r5, lr}
+ sub sp, #0x2c
+ add r5, r0, #0x0
+ add r0, sp, #0x8
+ str r0, [sp, #0x0]
+ add r0, r2, #0x0
+ add r2, sp, #0x4
+ add r3, sp, #0x4
+ add r4, r1, #0x0
+ add r1, sp, #0x4
+ add r2, #0x2
+ add r3, #0x3
+ bl FUN_02060E34
+ mov r1, #0x3
+ add r0, r5, #0x0
+ add r2, r1, #0x0
+ add r3, sp, #0x4
+ str r4, [sp, #0xc]
+ bl FUN_02060D74
+ add sp, #0x2c
+ pop {r4-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_020619F0
+FUN_020619F0: ; 0x020619F0
+ push {r4-r6, lr}
+ sub sp, #0x8
+ add r6, r2, #0x0
+ add r5, r1, #0x0
+ add r0, r6, #0x0
+ bl FUN_02248B60
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ mov r1, #0x0
+ add r2, r6, #0x0
+ bl FUN_02060DCC
+ ldrb r0, [r4, #0x3]
+ mov r1, #0x1
+ str r0, [sp, #0x0]
+ ldrb r0, [r4, #0x4]
+ str r0, [sp, #0x4]
+ ldrh r2, [r4, #0x0]
+ ldrb r3, [r4, #0x2]
+ add r0, r5, #0x0
+ bl FUN_02060E70
+ mov r0, #0xfa
+ ldr r1, [r4, #0x8]
+ lsl r0, r0, #0x2
+ mul r0, r1
+ mov r1, #0xfe
+ blx _u32_div_f
+ add r0, r0, #0x5
+ mov r1, #0xa
+ blx _u32_div_f
+ mov r1, #0xa
+ add r4, r0, #0x0
+ blx _u32_div_f
+ add r2, r0, #0x0
+ mov r0, #0x0
+ str r0, [sp, #0x0]
+ mov r0, #0x1
+ str r0, [sp, #0x4]
+ add r0, r5, #0x0
+ mov r1, #0x2
+ mov r3, #0x3
+ bl FUN_0200AD38
+ add r0, r4, #0x0
+ mov r1, #0xa
+ blx _u32_div_f
+ mov r0, #0x0
+ add r2, r1, #0x0
+ str r0, [sp, #0x0]
+ mov r3, #0x1
+ add r0, r5, #0x0
+ mov r1, #0x3
+ str r3, [sp, #0x4]
+ bl FUN_0200AD38
+ mov r0, #0x2
+ add sp, #0x8
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_02061A70
+FUN_02061A70: ; 0x02061A70
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r0, r1, #0x0
+ bl FUN_02248B60
+ add r4, r0, #0x0
+ ldr r0, [r5, #0xc]
+ bl FUN_02024DA0
+ ldrh r1, [r4, #0x0]
+ bl FUN_020245F0
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_02061A8C
+FUN_02061A8C: ; 0x02061A8C
+ push {r3-r5, lr}
+ sub sp, #0x28
+ mov r4, #0xfa
+ lsl r4, r4, #0x2
+ add r4, r1, r4
+ add r5, sp, #0x0
+ cmp r2, r4
+ blo _02061AAC
+ str r1, [r5, #0x0]
+ str r2, [r5, #0x4]
+ str r3, [r5, #0x8]
+ mov r1, #0x3
+ mov r2, #0x4
+ add r3, r5, #0x0
+ bl FUN_02060D74
+_02061AAC:
+ add sp, #0x28
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_02061AB0
+FUN_02061AB0: ; 0x02061AB0
+ push {r4-r6, lr}
+ sub sp, #0x8
+ add r6, r2, #0x0
+ add r5, r1, #0x0
+ add r0, r6, #0x0
+ bl FUN_02248B60
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ mov r1, #0x0
+ add r2, r6, #0x0
+ bl FUN_02060DCC
+ mov r0, #0x0
+ str r0, [sp, #0x0]
+ mov r1, #0x1
+ str r1, [sp, #0x4]
+ ldr r2, [r4, #0x8]
+ add r0, r5, #0x0
+ mov r3, #0xa
+ bl FUN_0200AD38
+ mov r0, #0x0
+ str r0, [sp, #0x0]
+ mov r0, #0x1
+ str r0, [sp, #0x4]
+ ldr r2, [r4, #0x0]
+ add r0, r5, #0x0
+ mov r1, #0x2
+ mov r3, #0x6
+ bl FUN_0200AD38
+ mov r0, #0x0
+ str r0, [sp, #0x0]
+ mov r0, #0x1
+ str r0, [sp, #0x4]
+ ldr r2, [r4, #0x4]
+ add r0, r5, #0x0
+ mov r1, #0x3
+ mov r3, #0x6
+ bl FUN_0200AD38
+ mov r0, #0x3
+ add sp, #0x8
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_02061B0C
+FUN_02061B0C: ; 0x02061B0C
+ push {r3, lr}
+ sub sp, #0x28
+ add r3, sp, #0x0
+ strh r1, [r3, #0x0]
+ strh r2, [r3, #0x2]
+ mov r1, #0x3
+ mov r2, #0x8
+ add r3, sp, #0x0
+ bl FUN_02060D74
+ add sp, #0x28
+ pop {r3, pc}
+
+ thumb_func_start FUN_02061B24
+FUN_02061B24: ; 0x02061B24
+ push {r4-r6, lr}
+ sub sp, #0x8
+ add r6, r2, #0x0
+ add r5, r1, #0x0
+ add r0, r6, #0x0
+ bl FUN_02248B60
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ mov r1, #0x0
+ add r2, r6, #0x0
+ bl FUN_02060DCC
+ ldrh r2, [r4, #0x0]
+ add r0, r5, #0x0
+ mov r1, #0x1
+ bl FUN_0200B1D4
+ mov r0, #0x0
+ str r0, [sp, #0x0]
+ mov r0, #0x1
+ str r0, [sp, #0x4]
+ ldrh r2, [r4, #0x2]
+ add r0, r5, #0x0
+ mov r1, #0x2
+ mov r3, #0x3
+ bl FUN_0200AD38
+ mov r0, #0x7
+ add sp, #0x8
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_02061B64
+FUN_02061B64: ; 0x02061B64
+ push {r3, lr}
+ sub sp, #0x28
+ add r2, sp, #0x0
+ add r3, sp, #0x0
+ strh r1, [r2, #0x0]
+ cmp r1, #0x1
+ bls _02061B7A
+ mov r1, #0x3
+ mov r2, #0x9
+ bl FUN_02060D74
+_02061B7A:
+ add sp, #0x28
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_02061B80
+FUN_02061B80: ; 0x02061B80
+ push {r4-r6, lr}
+ sub sp, #0x8
+ add r6, r2, #0x0
+ add r5, r1, #0x0
+ add r0, r6, #0x0
+ bl FUN_02248B60
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ mov r1, #0x0
+ add r2, r6, #0x0
+ bl FUN_02060DCC
+ mov r0, #0x0
+ str r0, [sp, #0x0]
+ mov r1, #0x1
+ str r1, [sp, #0x4]
+ ldrh r2, [r4, #0x0]
+ add r0, r5, #0x0
+ mov r3, #0x3
+ bl FUN_0200AD38
+ mov r0, #0x8
+ add sp, #0x8
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_02061BB4
+FUN_02061BB4: ; 0x02061BB4
+ push {r3, lr}
+ ldr r0, [r0, #0xc]
+ bl FUN_0206F158
+ mov r1, #0x6b
+ lsl r1, r1, #0x2
+ mov r2, #0x1
+ mov r3, #0x20
+ bl FUN_0206EE50
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_02061BCC
+FUN_02061BCC: ; 0x02061BCC
+ push {r3-r5, lr}
+ sub sp, #0x28
+ add r5, r0, #0x0
+ ldr r0, [r5, #0xc]
+ add r4, r1, #0x0
+ bl FUN_02022504
+ bl FUN_0202B85C
+ ldrh r2, [r0, #0x0]
+ add r1, sp, #0x0
+ add r3, sp, #0x0
+ strh r2, [r1, #0x0]
+ ldrh r2, [r0, #0x2]
+ strh r2, [r1, #0x2]
+ mov r2, #0x0
+ strb r2, [r0, #0x0]
+ strh r4, [r1, #0x4]
+ add r0, r5, #0x0
+ mov r1, #0x1
+ mov r2, #0x2
+ bl FUN_02060D74
+ add sp, #0x28
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_02061C00
+FUN_02061C00: ; 0x02061C00
+ push {r4-r6, lr}
+ sub sp, #0x8
+ add r6, r2, #0x0
+ add r0, r6, #0x0
+ add r5, r1, #0x0
+ bl FUN_02248B60
+ mov r1, #0x0
+ add r4, r0, #0x0
+ str r1, [sp, #0x0]
+ mov r0, #0x1
+ str r0, [sp, #0x4]
+ ldrh r2, [r4, #0x2]
+ add r0, r5, #0x0
+ mov r3, #0x4
+ bl FUN_0200AD38
+ add r0, r5, #0x0
+ mov r1, #0x1
+ add r2, r6, #0x0
+ bl FUN_02060DCC
+ ldrh r2, [r4, #0x4]
+ add r0, r5, #0x0
+ mov r1, #0x2
+ bl FUN_0200B518
+ ldrb r0, [r4, #0x1]
+ cmp r0, #0x1
+ bne _02061C42
+ add sp, #0x8
+ mov r0, #0x8
+ pop {r4-r6, pc}
+_02061C42:
+ mov r0, #0x9
+ add sp, #0x8
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_02061C48
+FUN_02061C48: ; 0x02061C48
+ push {r3, lr}
+ ldr r0, [r0, #0xc]
+ bl FUN_020462AC
+ mov r1, #0x2
+ mov r2, #0x11
+ bl FUN_0205F2E4
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_02061C5C
+FUN_02061C5C: ; 0x02061C5C
+ push {r3-r6, lr}
+ sub sp, #0x2c
+ add r5, r0, #0x0
+ ldr r0, [r5, #0xc]
+ add r4, r1, #0x0
+ bl FUN_0206BB1C
+ bl FUN_0204A20C
+ add r1, sp, #0x8
+ add r2, sp, #0x4
+ add r3, sp, #0x4
+ str r1, [sp, #0x0]
+ add r1, sp, #0x4
+ add r2, #0x2
+ add r3, #0x3
+ add r6, r0, #0x0
+ bl FUN_02060E34
+ add r2, sp, #0x8
+ add r3, sp, #0x8
+ mov r0, #0x20
+ add r1, r6, #0x0
+ add r2, #0x1
+ add r3, #0x2
+ bl FUN_02060ECC
+ add r0, sp, #0x4
+ strh r4, [r0, #0x1c]
+ add r0, r5, #0x0
+ mov r1, #0x1
+ mov r2, #0x4
+ add r3, sp, #0x4
+ bl FUN_02060D74
+ add sp, #0x2c
+ pop {r3-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_02061CA8
+FUN_02061CA8: ; 0x02061CA8
+ push {r4-r6, lr}
+ sub sp, #0x8
+ add r6, r2, #0x0
+ add r0, r6, #0x0
+ add r5, r1, #0x0
+ bl FUN_02248B60
+ add r4, r0, #0x0
+ ldrb r0, [r4, #0x5]
+ cmp r0, #0x0
+ beq _02061D00
+ add r0, r5, #0x0
+ mov r1, #0x0
+ add r2, r6, #0x0
+ bl FUN_02060DCC
+ ldrb r0, [r4, #0x3]
+ mov r1, #0x1
+ str r0, [sp, #0x0]
+ ldrb r0, [r4, #0x4]
+ str r0, [sp, #0x4]
+ ldrh r2, [r4, #0x0]
+ ldrb r3, [r4, #0x2]
+ add r0, r5, #0x0
+ bl FUN_02060E70
+ ldrb r0, [r4, #0x3]
+ mov r1, #0x2
+ add r2, r4, #0x6
+ str r0, [sp, #0x0]
+ mov r0, #0x1
+ str r0, [sp, #0x4]
+ ldrb r3, [r4, #0x2]
+ add r0, r5, #0x0
+ bl FUN_02060D90
+ ldrh r2, [r4, #0x1c]
+ add r0, r5, #0x0
+ mov r1, #0x3
+ bl FUN_0200B518
+ add sp, #0x8
+ mov r0, #0xa
+ pop {r4-r6, pc}
+_02061D00:
+ add r0, r5, #0x0
+ mov r1, #0x0
+ add r2, r6, #0x0
+ bl FUN_02060DCC
+ ldrb r0, [r4, #0x3]
+ mov r1, #0x1
+ str r0, [sp, #0x0]
+ ldrb r0, [r4, #0x4]
+ str r0, [sp, #0x4]
+ ldrh r2, [r4, #0x0]
+ ldrb r3, [r4, #0x2]
+ add r0, r5, #0x0
+ bl FUN_02060E70
+ ldrh r2, [r4, #0x1c]
+ add r0, r5, #0x0
+ mov r1, #0x3
+ bl FUN_0200B518
+ mov r0, #0xb
+ add sp, #0x8
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_02061D30
+FUN_02061D30: ; 0x02061D30
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r0, r1, #0x0
+ bl FUN_02248B60
+ add r4, r0, #0x0
+ ldr r0, [r5, #0xc]
+ bl FUN_02024DA0
+ ldrh r1, [r4, #0x0]
+ bl FUN_020245F0
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_02061D4C
+FUN_02061D4C: ; 0x02061D4C
+ push {r3-r5, lr}
+ sub sp, #0x28
+ add r5, r0, #0x0
+ ldr r0, [r5, #0x4]
+ add r4, r1, #0x0
+ ldr r0, [r0, #0x14]
+ bl FUN_02252538
+ str r0, [sp, #0x0]
+ add r0, sp, #0x0
+ strh r4, [r0, #0x4]
+ add r0, r5, #0x0
+ mov r1, #0x1
+ mov r2, #0x6
+ add r3, sp, #0x0
+ bl FUN_02060D74
+ add sp, #0x28
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_02061D74
+FUN_02061D74: ; 0x02061D74
+ push {r4-r6, lr}
+ add r6, r2, #0x0
+ add r5, r1, #0x0
+ add r0, r6, #0x0
+ bl FUN_02248B60
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ mov r1, #0x0
+ add r2, r6, #0x0
+ bl FUN_02060DCC
+ ldr r2, [r4, #0x0]
+ add r0, r5, #0x0
+ mov r1, #0x1
+ bl FUN_0200B02C
+ ldrh r2, [r4, #0x4]
+ add r0, r5, #0x0
+ mov r1, #0x2
+ bl FUN_0200B518
+ mov r0, #0x10
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_02061DA4
+FUN_02061DA4: ; 0x02061DA4
+ push {r3-r5, lr}
+ sub sp, #0x28
+ add r5, r0, #0x0
+ ldr r0, [r5, #0xc]
+ add r4, r1, #0x0
+ bl FUN_02022504
+ bl FUN_0202B838
+ ldrh r2, [r0, #0x0]
+ add r1, sp, #0x0
+ add r3, sp, #0x0
+ strh r2, [r1, #0x0]
+ ldrh r2, [r0, #0x2]
+ strh r2, [r1, #0x2]
+ ldrh r2, [r0, #0x4]
+ strh r2, [r1, #0x4]
+ ldrh r2, [r0, #0x6]
+ strh r2, [r1, #0x6]
+ ldrh r2, [r0, #0x8]
+ strh r2, [r1, #0x8]
+ mov r2, #0x0
+ strb r2, [r0, #0x0]
+ strh r4, [r1, #0xa]
+ add r0, r5, #0x0
+ mov r1, #0x1
+ mov r2, #0x7
+ bl FUN_02060D74
+ add sp, #0x28
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_02061DE4
+FUN_02061DE4: ; 0x02061DE4
+ push {r4-r6, lr}
+ sub sp, #0x8
+ add r6, r2, #0x0
+ add r0, r6, #0x0
+ add r5, r1, #0x0
+ bl FUN_02248B60
+ add r4, r0, #0x0
+ ldrb r0, [r4, #0x5]
+ mov r1, #0x0
+ str r0, [sp, #0x0]
+ ldrb r0, [r4, #0x6]
+ str r0, [sp, #0x4]
+ ldrh r2, [r4, #0x2]
+ ldrb r3, [r4, #0x4]
+ add r0, r5, #0x0
+ bl FUN_02060E70
+ ldrb r0, [r4, #0x8]
+ bl FUN_02083298
+ add r2, r0, #0x0
+ add r0, r5, #0x0
+ mov r1, #0x1
+ bl FUN_0200B2AC
+ ldrb r0, [r4, #0x7]
+ bl FUN_02083268
+ add r2, r0, #0x0
+ add r0, r5, #0x0
+ mov r1, #0x2
+ bl FUN_0200B278
+ mov r0, #0x0
+ str r0, [sp, #0x0]
+ mov r3, #0x1
+ str r3, [sp, #0x4]
+ ldrb r2, [r4, #0x9]
+ add r0, r5, #0x0
+ mov r1, #0x3
+ bl FUN_0200AD38
+ add r0, r5, #0x0
+ mov r1, #0x4
+ add r2, r6, #0x0
+ bl FUN_02060DCC
+ ldrh r2, [r4, #0xa]
+ add r0, r5, #0x0
+ mov r1, #0x5
+ bl FUN_0200B518
+ ldrb r0, [r4, #0x9]
+ cmp r0, #0x1
+ bne _02061E5A
+ add sp, #0x8
+ mov r0, #0x12
+ pop {r4-r6, pc}
+_02061E5A:
+ mov r0, #0x11
+ add sp, #0x8
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_02061E60
+FUN_02061E60: ; 0x02061E60
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r0, r1, #0x0
+ bl FUN_02248B60
+ add r4, r0, #0x0
+ ldr r0, [r5, #0xc]
+ bl FUN_02024DA0
+ ldrh r1, [r4, #0x2]
+ bl FUN_020245F0
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_02061E7C
+FUN_02061E7C: ; 0x02061E7C
+ push {r4, lr}
+ sub sp, #0x28
+ add r4, r0, #0x0
+ add r0, sp, #0x0
+ strh r1, [r0, #0x2]
+ ldr r0, [r4, #0xc]
+ bl FUN_02027E24
+ mov r1, #0x0
+ bl FUN_02027008
+ bl FUN_020275D8
+ add r1, sp, #0x0
+ strh r0, [r1, #0x0]
+ add r0, r4, #0x0
+ mov r1, #0x1
+ mov r2, #0x9
+ add r3, sp, #0x0
+ bl FUN_02060D74
+ add sp, #0x28
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02061EAC
+FUN_02061EAC: ; 0x02061EAC
+ push {r4-r6, lr}
+ add r6, r2, #0x0
+ add r5, r1, #0x0
+ add r0, r6, #0x0
+ bl FUN_02248B60
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ mov r1, #0x0
+ add r2, r6, #0x0
+ bl FUN_02060DCC
+ ldrh r2, [r4, #0x0]
+ add r0, r5, #0x0
+ mov r1, #0x1
+ bl FUN_02060EA0
+ ldrh r2, [r4, #0x2]
+ add r0, r5, #0x0
+ mov r1, #0x2
+ bl FUN_0200B518
+ mov r0, #0x14
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_02061EDC
+FUN_02061EDC: ; 0x02061EDC
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r0, r1, #0x0
+ bl FUN_02248B60
+ add r4, r0, #0x0
+ ldr r0, [r5, #0xc]
+ bl FUN_02024DA0
+ ldrh r1, [r4, #0x0]
+ bl FUN_020245F0
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_02061EF8
+FUN_02061EF8: ; 0x02061EF8
+ push {r3, lr}
+ sub sp, #0x28
+ str r1, [sp, #0x0]
+ mov r1, #0x1
+ mov r2, #0xa
+ add r3, sp, #0x0
+ bl FUN_02060D74
+ add sp, #0x28
+ pop {r3, pc}
+
+ thumb_func_start FUN_02061F0C
+FUN_02061F0C: ; 0x02061F0C
+ push {r4-r6, lr}
+ add r6, r2, #0x0
+ add r5, r1, #0x0
+ add r0, r6, #0x0
+ bl FUN_02248B60
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ mov r1, #0x0
+ add r2, r6, #0x0
+ bl FUN_02060DCC
+ ldr r0, [r4, #0x0]
+ add r0, #0x14
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_02061F2C
+FUN_02061F2C: ; 0x02061F2C
+ push {r3-r5, lr}
+ sub sp, #0x28
+ add r5, r0, #0x0
+ ldr r0, [r5, #0xc]
+ add r4, r1, #0x0
+ bl FUN_02022504
+ bl FUN_0202B850
+ ldrb r2, [r0, #0x0]
+ add r1, sp, #0x0
+ add r3, sp, #0x0
+ strb r2, [r1, #0x0]
+ ldrb r2, [r0, #0x1]
+ strb r2, [r1, #0x1]
+ strh r4, [r1, #0x2]
+ mov r1, #0x0
+ strb r1, [r0, #0x0]
+ add r0, r5, #0x0
+ mov r1, #0x1
+ mov r2, #0xb
+ bl FUN_02060D74
+ add sp, #0x28
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_02061F60
+FUN_02061F60: ; 0x02061F60
+ push {r3-r7, lr}
+ add r7, r2, #0x0
+ add r0, r7, #0x0
+ add r5, r1, #0x0
+ bl FUN_02248B60
+ add r6, r0, #0x0
+ ldrb r4, [r6, #0x1]
+ add r0, r5, #0x0
+ mov r1, #0x0
+ add r2, r7, #0x0
+ bl FUN_02060DCC
+ add r0, r5, #0x0
+ mov r1, #0x1
+ add r2, r4, #0x0
+ bl FUN_0200B628
+ ldrh r2, [r6, #0x2]
+ add r0, r5, #0x0
+ mov r1, #0x2
+ bl FUN_0200B518
+ sub r4, #0x19
+ cmp r4, #0x3
+ bhi _02061FB8
+ add r0, r4, r4
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02061FA0: ; jump table (using 16-bit offset)
+ .short _02061FA8 - _02061FA0 - 2; case 0
+ .short _02061FAC - _02061FA0 - 2; case 1
+ .short _02061FB0 - _02061FA0 - 2; case 2
+ .short _02061FB4 - _02061FA0 - 2; case 3
+_02061FA8:
+ mov r0, #0x27
+ pop {r3-r7, pc}
+_02061FAC:
+ mov r0, #0x28
+ pop {r3-r7, pc}
+_02061FB0:
+ mov r0, #0x29
+ pop {r3-r7, pc}
+_02061FB4:
+ mov r0, #0x2a
+ pop {r3-r7, pc}
+_02061FB8:
+ mov r0, #0x26
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_02061FBC
+FUN_02061FBC: ; 0x02061FBC
+ push {r4-r6, lr}
+ sub sp, #0x28
+ add r5, r0, #0x0
+ ldr r0, [r5, #0xc]
+ add r4, r1, #0x0
+ bl FUN_02022504
+ bl FUN_0202B844
+ add r6, r0, #0x0
+ add r3, sp, #0x0
+ mov r2, #0x12
+_02061FD4:
+ ldrh r1, [r6, #0x0]
+ add r6, r6, #0x2
+ strh r1, [r3, #0x0]
+ add r3, r3, #0x2
+ sub r2, r2, #0x1
+ bne _02061FD4
+ add r1, sp, #0x0
+ strh r4, [r1, #0x24]
+ mov r1, #0x0
+ strb r1, [r0, #0x0]
+ add r0, r5, #0x0
+ mov r1, #0x1
+ mov r2, #0xd
+ add r3, sp, #0x0
+ bl FUN_02060D74
+ add sp, #0x28
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_02061FF8
+FUN_02061FF8: ; 0x02061FF8
+ push {r4-r6, lr}
+ sub sp, #0x8
+ add r6, r2, #0x0
+ add r5, r1, #0x0
+ add r0, r6, #0x0
+ bl FUN_02248B60
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ mov r1, #0x0
+ add r2, r6, #0x0
+ bl FUN_02060DCC
+ ldrb r0, [r4, #0x5]
+ mov r1, #0x1
+ str r0, [sp, #0x0]
+ ldrb r0, [r4, #0x6]
+ str r0, [sp, #0x4]
+ ldrh r2, [r4, #0x2]
+ ldrb r3, [r4, #0x4]
+ add r0, r5, #0x0
+ bl FUN_02060E70
+ ldrb r2, [r4, #0x1e]
+ add r0, r5, #0x0
+ mov r1, #0x2
+ bl FUN_0200AE04
+ ldrh r2, [r4, #0x24]
+ add r0, r5, #0x0
+ mov r1, #0x5
+ bl FUN_0200B518
+ ldrb r0, [r4, #0x1f]
+ cmp r0, #0x0
+ beq _0206204A
+ cmp r0, #0x1
+ beq _02062062
+ cmp r0, #0x2
+ beq _02062050
+ b _02062072
+_0206204A:
+ add sp, #0x8
+ mov r0, #0x2d
+ pop {r4-r6, pc}
+_02062050:
+ add r4, #0x20
+ ldrb r2, [r4, #0x0]
+ add r0, r5, #0x0
+ mov r1, #0x3
+ bl FUN_0200B660
+ add sp, #0x8
+ mov r0, #0x2c
+ pop {r4-r6, pc}
+_02062062:
+ ldrh r2, [r4, #0x22]
+ add r0, r5, #0x0
+ mov r1, #0x3
+ bl FUN_0200AE38
+ add sp, #0x8
+ mov r0, #0x2e
+ pop {r4-r6, pc}
+_02062072:
+ mov r0, #0x2d
+ add sp, #0x8
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_02062078
+FUN_02062078: ; 0x02062078
+ push {r3-r7, lr}
+ mov r6, #0x0
+ ldr r5, _0206209C ; =0x020F7650
+ add r7, r0, #0x0
+ add r4, r6, #0x0
+_02062082:
+ ldrb r1, [r5, #0x0]
+ add r0, r7, #0x0
+ bl FUN_02028828
+ cmp r0, #0x0
+ beq _02062090
+ add r4, r4, #0x1
+_02062090:
+ add r6, r6, #0x1
+ add r5, r5, #0x1
+ cmp r6, #0x5
+ blo _02062082
+ add r0, r4, #0x0
+ pop {r3-r7, pc}
+ .balign 4
+_0206209C: .word 0x020F7650
+
+ thumb_func_start FUN_020620A0
+FUN_020620A0: ; 0x020620A0
+ push {r3-r7, lr}
+ sub sp, #0x10
+ str r0, [sp, #0x4]
+ ldr r0, [r0, #0xc]
+ str r1, [sp, #0x8]
+ bl FUN_0202881C
+ add r7, r0, #0x0
+ bl FUN_02062078
+ add r4, r0, #0x0
+ cmp r4, #0x0
+ bgt _020620BE
+ bl ErrorHandling
+_020620BE:
+ cmp r4, #0x1
+ ble _020620D0
+ bl FUN_0201BA60
+ add r1, r4, #0x0
+ blx _u32_div_f
+ add r5, r1, #0x0
+ b _020620D2
+_020620D0:
+ mov r5, #0x0
+_020620D2:
+ ldr r4, _02062154 ; =0x020F7650
+ mov r6, #0x0
+_020620D6:
+ ldrb r1, [r4, #0x0]
+ add r0, r7, #0x0
+ bl FUN_02028828
+ cmp r0, #0x0
+ beq _020620F0
+ cmp r5, #0x0
+ bne _020620EE
+ ldr r0, _02062154 ; =0x020F7650
+ ldrb r0, [r0, r6]
+ str r0, [sp, #0xc]
+ b _020620F8
+_020620EE:
+ sub r5, r5, #0x1
+_020620F0:
+ add r6, r6, #0x1
+ add r4, r4, #0x1
+ cmp r6, #0x5
+ blo _020620D6
+_020620F8:
+ cmp r5, #0x0
+ beq _02062100
+ bl ErrorHandling
+_02062100:
+ bl FUN_0201B9EC
+ mov r1, #0xf1
+ lsl r1, r1, #0x4
+ blx _s32_div_f
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+ cmp r4, #0x11
+ blo _02062118
+ bl ErrorHandling
+_02062118:
+ cmp r4, #0x9
+ blt _0206211E
+ add r4, r4, #0x1
+_0206211E:
+ mov r0, #0x1
+ str r0, [sp, #0x0]
+ ldr r1, [sp, #0x4]
+ ldr r0, [sp, #0x8]
+ ldr r1, [r1, #0xc]
+ ldr r2, [sp, #0xc]
+ mov r3, #0x0
+ bl FUN_0200B708
+ mov r0, #0x0
+ str r0, [sp, #0x0]
+ ldr r1, [sp, #0x4]
+ ldr r0, [sp, #0x8]
+ ldr r1, [r1, #0xc]
+ ldr r2, [sp, #0xc]
+ mov r3, #0x1
+ bl FUN_0200B708
+ ldr r0, [sp, #0x8]
+ mov r1, #0x2
+ add r2, r4, #0x0
+ bl FUN_0200AF18
+ mov r0, #0x0
+ add sp, #0x10
+ pop {r3-r7, pc}
+ nop
+_02062154: .word 0x020F7650
+
+ thumb_func_start FUN_02062158
+FUN_02062158: ; 0x02062158
+ push {r3, lr}
+ ldr r0, [r0, #0xc]
+ bl FUN_0202881C
+ bl FUN_02062078
+ cmp r0, #0x0
+ beq _0206216C
+ mov r0, #0x1
+ pop {r3, pc}
+_0206216C:
+ mov r0, #0x0
+ pop {r3, pc}
+
+ thumb_func_start FUN_02062170
+FUN_02062170: ; 0x02062170
+ push {r3-r7, lr}
+ add r6, r0, #0x0
+ add r7, r1, #0x0
+ bl FUN_0201B9EC
+ ldr r1, _02062234 ; =0x00003334
+ blx _s32_div_f
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+ cmp r4, #0x5
+ blo _0206218C
+ bl ErrorHandling
+_0206218C:
+ ldr r0, _02062238 ; =0x02105FBC
+ lsl r1, r4, #0x1
+ ldrh r5, [r0, r1]
+ add r0, r6, #0x0
+ add r1, r5, #0x0
+ bl FUN_02034FE4
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_02034824
+ add r2, r0, #0x0
+ add r0, r7, #0x0
+ mov r1, #0x0
+ bl FUN_0200AFF4
+ cmp r4, #0xb
+ bhi _0206222C
+ add r0, r4, r4
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_020621BC: ; jump table (using 16-bit offset)
+ .short _020621D4 - _020621BC - 2; case 0
+ .short _0206220C - _020621BC - 2; case 1
+ .short _02062210 - _020621BC - 2; case 2
+ .short _02062214 - _020621BC - 2; case 3
+ .short _02062224 - _020621BC - 2; case 4
+ .short _02062218 - _020621BC - 2; case 5
+ .short _0206221C - _020621BC - 2; case 6
+ .short _02062220 - _020621BC - 2; case 7
+ .short _0206222C - _020621BC - 2; case 8
+ .short _0206222C - _020621BC - 2; case 9
+ .short _0206222C - _020621BC - 2; case 10
+ .short _02062228 - _020621BC - 2; case 11
+_020621D4:
+ bl FUN_0201B9EC
+ lsl r0, r0, #0x2
+ lsr r4, r0, #0x10
+ cmp r4, #0x4
+ blo _020621E4
+ bl ErrorHandling
+_020621E4:
+ cmp r4, #0x3
+ bhi _0206220C
+ add r0, r4, r4
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_020621F4: ; jump table (using 16-bit offset)
+ .short _020621FC - _020621F4 - 2; case 0
+ .short _02062200 - _020621F4 - 2; case 1
+ .short _02062204 - _020621F4 - 2; case 2
+ .short _02062208 - _020621F4 - 2; case 3
+_020621FC:
+ mov r0, #0x1
+ pop {r3-r7, pc}
+_02062200:
+ mov r0, #0x2
+ pop {r3-r7, pc}
+_02062204:
+ mov r0, #0x3
+ pop {r3-r7, pc}
+_02062208:
+ mov r0, #0x4
+ pop {r3-r7, pc}
+_0206220C:
+ mov r0, #0x5
+ pop {r3-r7, pc}
+_02062210:
+ mov r0, #0x6
+ pop {r3-r7, pc}
+_02062214:
+ mov r0, #0x7
+ pop {r3-r7, pc}
+_02062218:
+ mov r0, #0x8
+ pop {r3-r7, pc}
+_0206221C:
+ mov r0, #0x9
+ pop {r3-r7, pc}
+_02062220:
+ mov r0, #0xa
+ pop {r3-r7, pc}
+_02062224:
+ mov r0, #0xb
+ pop {r3-r7, pc}
+_02062228:
+ mov r0, #0xc
+ pop {r3-r7, pc}
+_0206222C:
+ bl ErrorHandling
+ mov r0, #0x1
+ pop {r3-r7, pc}
+ .balign 4
+_02062234: .word 0x00003334
+_02062238: .word 0x02105FBC
+
+ thumb_func_start FUN_0206223C
+FUN_0206223C: ; 0x0206223C
+ mov r0, #0x1
+ bx lr
+
+ thumb_func_start FUN_02062240
+FUN_02062240: ; 0x02062240
+ push {r3-r4, lr}
+ sub sp, #0x4
+ ldr r0, [r0, #0xc]
+ add r4, r1, #0x0
+ bl FUN_0202A9B0
+ mov r1, #0x2
+ bl FUN_0202A990
+ add r1, sp, #0x0
+ add r1, #0x2
+ add r2, sp, #0x0
+ bl FUN_02245910
+ add r0, sp, #0x0
+ ldrh r0, [r0, #0x2]
+ bl FUN_02034824
+ add r2, r0, #0x0
+ add r0, r4, #0x0
+ mov r1, #0x0
+ bl FUN_0200AFF4
+ add r2, sp, #0x0
+ ldrh r2, [r2, #0x0]
+ add r0, r4, #0x0
+ mov r1, #0x1
+ bl FUN_02060EA0
+ mov r0, #0x1c
+ add sp, #0x4
+ pop {r3-r4, pc}
+
+ thumb_func_start FUN_02062280
+FUN_02062280: ; 0x02062280
+ push {r3, lr}
+ ldr r0, [r0, #0xc]
+ bl FUN_0202A9B0
+ bl FUN_0202AA14
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_02062290
+FUN_02062290: ; 0x02062290
+ push {r3-r4}
+ ldr r4, _020622BC ; =0x020F78A4
+ mov r3, #0x0
+_02062296:
+ ldrb r2, [r4, #0x0]
+ cmp r0, r2
+ bne _020622AE
+ ldrb r2, [r4, #0x1]
+ cmp r1, r2
+ bne _020622AE
+ lsl r0, r3, #0x1
+ add r1, r3, r0
+ ldr r0, _020622C0 ; =0x020F78A6
+ ldrb r0, [r0, r1]
+ pop {r3-r4}
+ bx lr
+_020622AE:
+ add r3, r3, #0x1
+ add r4, r4, #0x3
+ cmp r3, #0x6e
+ blo _02062296
+ mov r0, #0x3
+ pop {r3-r4}
+ bx lr
+ .balign 4
+_020622BC: .word 0x020F78A4
+_020622C0: .word 0x020F78A6
+
+ thumb_func_start FUN_020622C4
+FUN_020622C4: ; 0x020622C4
+ push {r4-r6, lr}
+ add r6, r1, #0x0
+ bl FUN_0201B9EC
+ mov r1, #0xf1
+ lsl r1, r1, #0x4
+ blx _s32_div_f
+ lsl r0, r0, #0x10
+ lsr r5, r0, #0x10
+ cmp r5, #0x11
+ blo _020622E0
+ bl ErrorHandling
+_020622E0:
+ cmp r5, #0x9
+ blt _020622E6
+ add r5, r5, #0x1
+_020622E6:
+ bl FUN_0201B9EC
+ mov r1, #0xf1
+ lsl r1, r1, #0x4
+ blx _s32_div_f
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+ cmp r4, #0x11
+ blo _020622FE
+ bl ErrorHandling
+_020622FE:
+ cmp r4, #0x9
+ blt _02062304
+ add r4, r4, #0x1
+_02062304:
+ add r0, r6, #0x0
+ mov r1, #0x0
+ add r2, r5, #0x0
+ bl FUN_0200AF18
+ add r0, r6, #0x0
+ mov r1, #0x1
+ add r2, r4, #0x0
+ bl FUN_0200AF18
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_02062290
+ cmp r0, #0x3
+ bhi _0206233C
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02062330: ; jump table (using 16-bit offset)
+ .short _02062344 - _02062330 - 2; case 0
+ .short _02062340 - _02062330 - 2; case 1
+ .short _02062338 - _02062330 - 2; case 2
+ .short _0206233C - _02062330 - 2; case 3
+_02062338:
+ mov r0, #0x1e
+ pop {r4-r6, pc}
+_0206233C:
+ mov r0, #0x1f
+ pop {r4-r6, pc}
+_02062340:
+ mov r0, #0x20
+ pop {r4-r6, pc}
+_02062344:
+ mov r0, #0x21
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_02062348
+FUN_02062348: ; 0x02062348
+ mov r0, #0x1
+ bx lr
+
+ thumb_func_start FUN_0206234C
+FUN_0206234C: ; 0x0206234C
+ push {r3-r7, lr}
+ sub sp, #0x88
+ ldr r0, [r0, #0xc]
+ bl FUN_020462AC
+ ldr r4, _020623E8 ; =0x020F7658
+ add r7, r0, #0x0
+ mov r6, #0x0
+ add r5, sp, #0x0
+_0206235E:
+ ldrh r2, [r4, #0x0]
+ add r0, r7, #0x0
+ mov r1, #0x2
+ bl FUN_0205F2E4
+ strb r0, [r5, #0x0]
+ add r6, r6, #0x1
+ add r4, r4, #0x2
+ add r5, r5, #0x1
+ cmp r6, #0x12
+ blo _0206235E
+ mov r3, #0x0
+ add r2, sp, #0x10
+ ldr r0, _020623EC ; =0x020F79EE
+ add r4, r3, #0x0
+ add r1, r3, #0x0
+ add r2, #0x2
+ add r6, sp, #0x0
+_02062382:
+ lsl r5, r1, #0x1
+ ldrh r5, [r0, r5]
+ ldrb r5, [r6, r5]
+ cmp r5, #0x0
+ beq _02062392
+ strb r3, [r2, #0x0]
+ add r2, r2, #0x1
+ add r4, r4, #0x1
+_02062392:
+ add r3, r3, #0x1
+ add r1, r1, #0x2
+ cmp r3, #0x76
+ blo _02062382
+ lsl r0, r4, #0x10
+ lsr r0, r0, #0x10
+ bne _020623A4
+ bl ErrorHandling
+_020623A4:
+ lsl r0, r4, #0x10
+ lsr r0, r0, #0x10
+ cmp r0, #0x1
+ bhi _020623B0
+ mov r5, #0x0
+ b _020623DE
+_020623B0:
+ bl FUN_0201B9EC
+ add r5, r0, #0x0
+ lsl r1, r4, #0x10
+ ldr r0, _020623F0 ; =0x0000FFFF
+ lsr r1, r1, #0x10
+ blx _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
+ lsl r0, r0, #0x10
+ lsr r5, r0, #0x10
+ lsl r0, r4, #0x10
+ lsr r0, r0, #0x10
+ cmp r5, r0
+ blo _020623DE
+ bl ErrorHandling
+_020623DE:
+ add r0, sp, #0x10
+ add r0, #0x2
+ ldrb r0, [r0, r5]
+ add sp, #0x88
+ pop {r3-r7, pc}
+ .balign 4
+_020623E8: .word 0x020F7658
+_020623EC: .word 0x020F79EE
+_020623F0: .word 0x0000FFFF
+
+ thumb_func_start FUN_020623F4
+FUN_020623F4: ; 0x020623F4
+ push {r4-r6, lr}
+ add r4, r0, #0x0
+ ldr r0, [r4, #0xc]
+ add r5, r1, #0x0
+ bl FUN_02024ECC
+ add r6, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_0206234C
+ add r4, r0, #0x0
+ lsl r0, r4, #0x1
+ add r0, r0, #0x1
+ lsl r1, r0, #0x1
+ ldr r0, _0206245C ; =0x020F79EE
+ ldrh r0, [r0, r1]
+ bl FUN_02034824
+ add r2, r0, #0x0
+ add r0, r5, #0x0
+ mov r1, #0x0
+ bl FUN_0200AFF4
+ add r0, r6, #0x0
+ add r1, r4, #0x0
+ bl FUN_02025238
+ cmp r0, #0x5
+ bhi _02062456
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0206243A: ; jump table (using 16-bit offset)
+ .short _02062456 - _0206243A - 2; case 0
+ .short _02062456 - _0206243A - 2; case 1
+ .short _02062452 - _0206243A - 2; case 2
+ .short _0206244E - _0206243A - 2; case 3
+ .short _0206244A - _0206243A - 2; case 4
+ .short _02062446 - _0206243A - 2; case 5
+_02062446:
+ mov r0, #0x23
+ pop {r4-r6, pc}
+_0206244A:
+ mov r0, #0x24
+ pop {r4-r6, pc}
+_0206244E:
+ mov r0, #0x25
+ pop {r4-r6, pc}
+_02062452:
+ mov r0, #0x26
+ pop {r4-r6, pc}
+_02062456:
+ mov r0, #0x27
+ pop {r4-r6, pc}
+ nop
+_0206245C: .word 0x020F79EE
+
+ thumb_func_start FUN_02062460
+FUN_02062460: ; 0x02062460
+ push {r3, lr}
+ ldr r0, [r0, #0xc]
+ bl FUN_020462AC
+ mov r1, #0x2
+ mov r2, #0x9
+ bl FUN_0205F2E4
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_02062474
+FUN_02062474: ; 0x02062474
+ push {r3-r6, lr}
+ sub sp, #0xc
+ mov r0, #0x4
+ add r6, r1, #0x0
+ str r0, [sp, #0x0]
+ add r0, sp, #0x8
+ mov r1, #0x7e
+ mov r2, #0x2
+ mov r3, #0x0
+ bl FUN_02006548
+ ldr r0, [sp, #0x8]
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+ bne _02062496
+ bl ErrorHandling
+_02062496:
+ cmp r4, #0x1
+ bhi _0206249E
+ mov r5, #0x0
+ b _020624C6
+_0206249E:
+ bl FUN_0201B9EC
+ add r5, r0, #0x0
+ ldr r0, _02062504 ; =0x0000FFFF
+ add r1, r4, #0x0
+ blx _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
+ lsl r0, r0, #0x10
+ lsr r5, r0, #0x10
+ cmp r5, r4
+ blo _020624C6
+ bl ErrorHandling
+_020624C6:
+ lsl r4, r5, #0x2
+ add r0, sp, #0x4
+ mov r2, #0x2
+ add r0, #0x2
+ mov r1, #0x7e
+ add r3, r4, #0x4
+ str r2, [sp, #0x0]
+ bl FUN_02006548
+ mov r2, #0x2
+ add r0, sp, #0x4
+ mov r1, #0x7e
+ add r3, r4, #0x6
+ str r2, [sp, #0x0]
+ bl FUN_02006548
+ add r2, sp, #0x4
+ ldrh r2, [r2, #0x2]
+ add r0, r6, #0x0
+ mov r1, #0x0
+ bl FUN_02060EA0
+ add r2, sp, #0x4
+ ldrh r2, [r2, #0x0]
+ add r0, r6, #0x0
+ mov r1, #0x1
+ bl FUN_0200AE38
+ mov r0, #0x2a
+ add sp, #0xc
+ pop {r3-r6, pc}
+ .balign 4
+_02062504: .word 0x0000FFFF
+
+ thumb_func_start FUN_02062508
+FUN_02062508: ; 0x02062508
+ mov r0, #0x1
+ bx lr
+
+ thumb_func_start FUN_0206250C
+FUN_0206250C: ; 0x0206250C
+ push {r4-r6, lr}
+ mov r4, #0x0
+ add r6, r0, #0x0
+ add r5, r4, #0x0
+_02062514:
+ add r0, r6, #0x0
+ add r1, r4, #0x0
+ bl FUN_02027098
+ cmp r0, #0x1
+ bne _02062522
+ add r5, r5, #0x1
+_02062522:
+ add r4, r4, #0x1
+ cmp r4, #0xb
+ blt _02062514
+ add r0, r5, #0x0
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_0206252C
+FUN_0206252C: ; 0x0206252C
+ push {r4-r7, lr}
+ sub sp, #0xc
+ ldr r0, [r0, #0xc]
+ add r7, r1, #0x0
+ bl FUN_02027E24
+ add r6, r0, #0x0
+ bl FUN_0206250C
+ add r4, r0, #0x0
+ cmp r4, #0x1
+ ble _02062552
+ bl FUN_0201BA60
+ add r1, r4, #0x0
+ blx _u32_div_f
+ add r5, r1, #0x0
+ b _02062554
+_02062552:
+ mov r5, #0x0
+_02062554:
+ mov r4, #0x0
+_02062556:
+ add r0, r6, #0x0
+ add r1, r4, #0x0
+ bl FUN_02027098
+ cmp r0, #0x1
+ bne _0206256C
+ cmp r5, #0x0
+ bne _0206256A
+ str r4, [sp, #0x8]
+ b _02062572
+_0206256A:
+ sub r5, r5, #0x1
+_0206256C:
+ add r4, r4, #0x1
+ cmp r4, #0xb
+ blt _02062556
+_02062572:
+ cmp r4, #0xb
+ blt _0206257A
+ bl ErrorHandling
+_0206257A:
+ ldr r1, [sp, #0x8]
+ add r0, r6, #0x0
+ bl FUN_02027008
+ add r5, r0, #0x0
+ mov r0, #0x8
+ mov r1, #0x4
+ bl FUN_020219F4
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_0202763C
+ add r6, r0, #0x0
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_02027608
+ add r0, r5, #0x0
+ bl FUN_020276A8
+ mov r1, #0x1
+ str r1, [sp, #0x0]
+ str r0, [sp, #0x4]
+ add r0, r7, #0x0
+ mov r1, #0x0
+ add r2, r4, #0x0
+ add r3, r6, #0x0
+ bl FUN_0200ABB4
+ add r0, r4, #0x0
+ bl FUN_02021A20
+ add r0, r5, #0x0
+ bl FUN_0202769C
+ add r2, r0, #0x0
+ add r0, r7, #0x0
+ mov r1, #0x1
+ bl FUN_0200B518
+ mov r0, #0x32
+ add sp, #0xc
+ pop {r4-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_020625D4
+FUN_020625D4: ; 0x020625D4
+ push {r3, lr}
+ ldr r0, [r0, #0xc]
+ bl FUN_02027E24
+ bl FUN_0206250C
+ cmp r0, #0x0
+ beq _020625E8
+ mov r0, #0x1
+ pop {r3, pc}
+_020625E8:
+ mov r0, #0x0
+ pop {r3, pc}
+
+ thumb_func_start FUN_020625EC
+FUN_020625EC: ; 0x020625EC
+ push {r3-r7, lr}
+ add r7, r0, #0x0
+ add r5, r1, #0x0
+ str r2, [sp, #0x0]
+ mov r0, #0x3
+ mov r1, #0x50
+ lsl r2, r0, #0xd
+ ldr r6, [r5, #0xc]
+ bl FUN_0201681C
+ mov r1, #0x2d
+ mov r0, #0x50
+ lsl r1, r1, #0x4
+ bl FUN_02016998
+ mov r2, #0x2d
+ mov r1, #0x0
+ lsl r2, r2, #0x4
+ add r4, r0, #0x0
+ blx MI_CpuFill8
+ mov r0, #0x50
+ str r0, [r4, #0x0]
+ ldr r0, [sp, #0x0]
+ mov r1, #0x3
+ blx _s32_div_f
+ strb r1, [r4, #0x16]
+ ldr r0, [sp, #0x0]
+ mov r1, #0x3
+ blx _s32_div_f
+ strb r0, [r4, #0x17]
+ ldrb r0, [r4, #0x16]
+ bl FUN_0202B870
+ strb r0, [r4, #0x18]
+ ldrb r0, [r4, #0x16]
+ bl FUN_0202B87C
+ strb r0, [r4, #0x19]
+ add r0, r4, #0x0
+ add r0, #0xcc
+ str r5, [r0, #0x0]
+ add r0, r4, #0x0
+ ldr r1, [r5, #0x8]
+ add r0, #0xd0
+ str r1, [r0, #0x0]
+ add r0, r6, #0x0
+ bl FUN_0202B8E4
+ mov r1, #0x2a
+ lsl r1, r1, #0x4
+ str r0, [r4, r1]
+ add r0, r6, #0x0
+ bl LoadPlayerDataAddress
+ bl FUN_02024FF4
+ strh r0, [r4, #0x1a]
+ add r0, r6, #0x0
+ bl LoadPlayerDataAddress
+ bl FUN_02025084
+ strh r0, [r4, #0x1c]
+ str r4, [r7, #0x8]
+ mov r0, #0x1
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_02062678
+FUN_02062678: ; 0x02062678
+ push {r3-r7, lr}
+ sub sp, #0x8
+ ldr r4, [r0, #0x8]
+ mov r0, #0x0
+ str r0, [sp, #0x4]
+ ldrb r0, [r4, #0x18]
+ cmp r0, #0x0
+ ble _020626FE
+ ldr r0, [sp, #0x4]
+ str r0, [sp, #0x0]
+_0206268C:
+ mov r0, #0xb
+ lsl r0, r0, #0x6
+ ldr r2, [r4, r0]
+ ldr r0, [sp, #0x0]
+ mov r6, #0x0
+ add r1, r2, r0
+ ldr r0, [r2, r0]
+ add r7, r6, #0x0
+ cmp r0, #0x0
+ ble _020626EC
+ add r5, r6, #0x0
+_020626A2:
+ add r0, r1, #0x4
+ add r1, r0, r5
+ ldrb r0, [r1, #0x6]
+ mov r12, r0
+ cmp r0, #0xff
+ beq _020626D6
+ ldrh r0, [r1, #0x4]
+ cmp r0, #0x0
+ bne _020626D6
+ ldrb r2, [r4, #0x17]
+ ldrb r3, [r4, #0x19]
+ mov r1, #0xd
+ mul r1, r2
+ add r2, r3, r1
+ ldr r1, [sp, #0x4]
+ mov r0, #0x2a
+ add r1, r1, r2
+ mov r2, r12
+ lsl r0, r0, #0x4
+ sub r2, r2, r6
+ lsl r2, r2, #0x18
+ ldr r0, [r4, r0]
+ lsr r2, r2, #0x18
+ bl FUN_0202B8F0
+ add r6, r6, #0x1
+_020626D6:
+ mov r0, #0xb
+ lsl r0, r0, #0x6
+ ldr r0, [r4, r0]
+ ldr r1, [sp, #0x0]
+ ldr r2, [sp, #0x0]
+ add r1, r1, r0
+ ldr r0, [r2, r0]
+ add r7, r7, #0x1
+ add r5, #0x8
+ cmp r7, r0
+ blt _020626A2
+_020626EC:
+ ldr r0, [sp, #0x0]
+ ldrb r1, [r4, #0x18]
+ add r0, #0x3c
+ str r0, [sp, #0x0]
+ ldr r0, [sp, #0x4]
+ add r0, r0, #0x1
+ str r0, [sp, #0x4]
+ cmp r0, r1
+ blt _0206268C
+_020626FE:
+ add r0, r4, #0x0
+ ldr r5, [r4, #0x0]
+ bl FUN_02016A18
+ mov r2, #0x2d
+ add r0, r4, #0x0
+ mov r1, #0x0
+ lsl r2, r2, #0x4
+ blx MI_CpuFill8
+ add r0, r5, #0x0
+ bl FUN_020168D0
+ mov r0, #0xc
+ add sp, #0x8
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_02062720
+FUN_02062720: ; 0x02062720
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl FUN_02062A70
+ add r0, r4, #0x0
+ bl FUN_02062C80
+ add r0, r4, #0x0
+ bl FUN_02062DB0
+ add r0, r4, #0x0
+ bl FUN_02062F3C
+ mov r0, #0x2
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02062740
+FUN_02062740: ; 0x02062740
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl FUN_02062FFC
+ add r0, r4, #0x0
+ bl FUN_02062EC4
+ add r0, r4, #0x0
+ bl FUN_02062D38
+ add r0, r4, #0x0
+ bl FUN_02062C4C
+ mov r0, #0xb
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02062760
+FUN_02062760: ; 0x02062760
+ push {r3, lr}
+ ldrh r1, [r0, #0x22]
+ ldrh r2, [r0, #0x24]
+ bl FUN_02063028
+ mov r0, #0x3
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_02062770
+FUN_02062770: ; 0x02062770
+ push {r4, lr}
+ add r4, r0, #0x0
+ add r0, #0xc0
+ ldr r0, [r0, #0x0]
+ bl FUN_02001204
+ ldr r1, _020627C8 ; =0x021C48B8
+ ldr r3, [r1, #0x48]
+ mov r1, #0x2
+ tst r1, r3
+ beq _02062790
+ add r0, r4, #0x0
+ bl FUN_02063178
+ mov r0, #0xa
+ pop {r4, pc}
+_02062790:
+ mov r2, #0x1
+ add r1, r3, #0x0
+ tst r1, r2
+ bne _0206279C
+ mov r0, #0x3
+ pop {r4, pc}
+_0206279C:
+ sub r1, r2, #0x3
+ cmp r0, r1
+ beq _020627AE
+ sub r1, r2, #0x2
+ cmp r0, r1
+ beq _020627AE
+ ldr r1, _020627CC ; =0x0000FFFF
+ cmp r0, r1
+ bne _020627B8
+_020627AE:
+ add r0, r4, #0x0
+ bl FUN_02063178
+ mov r0, #0xa
+ pop {r4, pc}
+_020627B8:
+ strb r0, [r4, #0x1f]
+ mov r0, #0x0
+ strh r0, [r4, #0x28]
+ add r0, r4, #0x0
+ bl FUN_02063178
+ mov r0, #0x4
+ pop {r4, pc}
+ .balign 4
+_020627C8: .word 0x021C48B8
+_020627CC: .word 0x0000FFFF
+
+ thumb_func_start FUN_020627D0
+FUN_020627D0: ; 0x020627D0
+ push {r3, lr}
+ ldrh r1, [r0, #0x28]
+ bl FUN_02063430
+ mov r0, #0x5
+ pop {r3, pc}
+
+ thumb_func_start FUN_020627DC
+FUN_020627DC: ; 0x020627DC
+ push {r3, lr}
+ ldr r1, _02062804 ; =0x021C48B8
+ ldr r2, [r1, #0x48]
+ mov r1, #0x3
+ tst r1, r2
+ beq _020627F0
+ bl FUN_020634DC
+ mov r0, #0x2
+ pop {r3, pc}
+_020627F0:
+ mov r1, #0x4
+ tst r1, r2
+ beq _020627FE
+ bl FUN_02063238
+ mov r0, #0x6
+ pop {r3, pc}
+_020627FE:
+ mov r0, #0x5
+ pop {r3, pc}
+ nop
+_02062804: .word 0x021C48B8
+
+ thumb_func_start FUN_02062808
+FUN_02062808: ; 0x02062808
+ push {r4, lr}
+ ldr r1, _020628B8 ; =0x021C48B8
+ mov r2, #0x2
+ ldr r1, [r1, #0x48]
+ add r4, r0, #0x0
+ tst r2, r1
+ beq _0206281E
+ bl FUN_02063264
+ mov r0, #0x5
+ pop {r4, pc}
+_0206281E:
+ mov r0, #0x1
+ tst r0, r1
+ beq _0206285C
+ mov r0, #0x0
+ str r0, [r4, #0xc]
+ mov r0, #0xb
+ lsl r0, r0, #0x6
+ ldrb r2, [r4, #0x1f]
+ mov r1, #0x3c
+ ldr r3, [r4, r0]
+ mul r1, r2
+ add r1, r3, r1
+ add r3, r1, #0x4
+ ldrh r1, [r4, #0x28]
+ add r2, r4, r1
+ add r1, r0, #0x0
+ add r1, #0x8
+ ldrb r1, [r2, r1]
+ lsl r1, r1, #0x3
+ add r2, r3, r1
+ add r1, r0, #0x4
+ str r2, [r4, r1]
+ add r0, r0, #0x4
+ ldr r0, [r4, r0]
+ ldrb r0, [r0, #0x6]
+ cmp r0, #0xff
+ bne _02062858
+ mov r0, #0x8
+ pop {r4, pc}
+_02062858:
+ mov r0, #0x7
+ pop {r4, pc}
+_0206285C:
+ mov r0, #0x40
+ tst r0, r1
+ beq _02062882
+ ldrh r0, [r4, #0x28]
+ cmp r0, #0x0
+ beq _02062882
+ sub r0, r0, #0x1
+ strh r0, [r4, #0x28]
+ ldrh r2, [r4, #0x28]
+ mov r0, #0xa6
+ lsl r0, r0, #0x2
+ lsl r2, r2, #0x4
+ add r2, #0x10
+ lsl r2, r2, #0x10
+ ldr r0, [r4, r0]
+ mov r1, #0x7e
+ asr r2, r2, #0x10
+ bl FUN_0200C714
+_02062882:
+ ldr r0, _020628B8 ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #0x80
+ tst r0, r1
+ beq _020628B4
+ add r0, r4, #0x0
+ add r0, #0x21
+ ldrb r0, [r0, #0x0]
+ ldrh r1, [r4, #0x28]
+ sub r0, r0, #0x1
+ cmp r1, r0
+ bge _020628B4
+ add r0, r1, #0x1
+ strh r0, [r4, #0x28]
+ ldrh r2, [r4, #0x28]
+ mov r0, #0xa6
+ lsl r0, r0, #0x2
+ lsl r2, r2, #0x4
+ add r2, #0x10
+ lsl r2, r2, #0x10
+ ldr r0, [r4, r0]
+ mov r1, #0x7e
+ asr r2, r2, #0x10
+ bl FUN_0200C714
+_020628B4:
+ mov r0, #0x6
+ pop {r4, pc}
+ .balign 4
+_020628B8: .word 0x021C48B8
+
+ thumb_func_start FUN_020628BC
+FUN_020628BC: ; 0x020628BC
+ push {r3-r4, lr}
+ sub sp, #0x4
+ add r4, r0, #0x0
+ ldr r0, [r4, #0x0]
+ ldr r1, _020628E0 ; =0x020F7BC8
+ str r0, [sp, #0x0]
+ add r0, r4, #0x0
+ add r0, #0xd0
+ ldr r0, [r0, #0x0]
+ ldr r2, _020628E4 ; =0x000003D9
+ mov r3, #0xb
+ bl FUN_02002198
+ add r4, #0xc8
+ str r0, [r4, #0x0]
+ add sp, #0x4
+ pop {r3-r4, pc}
+ nop
+_020628E0: .word 0x020F7BC8
+_020628E4: .word 0x000003D9
+
+ thumb_func_start FUN_020628E8
+FUN_020628E8: ; 0x020628E8
+ push {r4, lr}
+ sub sp, #0x10
+ add r4, r0, #0x0
+ ldr r1, [r4, #0xc]
+ cmp r1, #0x3
+ bgt _0206290C
+ cmp r1, #0x0
+ blt _020629CE
+ add r2, r1, r1
+ add r2, pc
+ ldrh r2, [r2, #0x6]
+ lsl r2, r2, #0x10
+ asr r2, r2, #0x10
+ add pc, r2
+_02062904: ; jump table (using 16-bit offset)
+ .short _02062912 - _02062904 - 2; case 0
+ .short _0206294E - _02062904 - 2; case 1
+ .short _02062966 - _02062904 - 2; case 2
+ .short _0206298C - _02062904 - 2; case 3
+_0206290C:
+ cmp r1, #0xff
+ beq _020629B2
+ b _020629CE
+_02062912:
+ add r0, #0xe4
+ mov r1, #0xff
+ bl FUN_02019620
+ mov r3, #0x0
+ str r3, [sp, #0x0]
+ ldrh r0, [r4, #0x1a]
+ add r2, r4, #0x0
+ add r2, #0x98
+ str r0, [sp, #0x4]
+ ldr r0, _020629D4 ; =0x0001020F
+ mov r1, #0x1
+ str r0, [sp, #0x8]
+ str r3, [sp, #0xc]
+ add r0, r4, #0x0
+ ldr r2, [r2, #0x0]
+ add r0, #0xe4
+ bl FUN_0201BDE0
+ strb r0, [r4, #0x1e]
+ mov r0, #0xa6
+ lsl r0, r0, #0x2
+ ldr r0, [r4, r0]
+ mov r1, #0x2
+ bl FUN_0200C66C
+ ldr r0, [r4, #0xc]
+ add r0, r0, #0x1
+ str r0, [r4, #0xc]
+ b _020629CE
+_0206294E:
+ ldrb r0, [r4, #0x1e]
+ bl FUN_0201BD70
+ cmp r0, #0x0
+ bne _020629CE
+ add r0, r4, #0x0
+ bl FUN_020628BC
+ ldr r0, [r4, #0xc]
+ add r0, r0, #0x1
+ str r0, [r4, #0xc]
+ b _020629CE
+_02062966:
+ add r0, #0xc8
+ ldr r0, [r0, #0x0]
+ ldr r1, [r4, #0x0]
+ bl FUN_020021AC
+ cmp r0, #0x0
+ beq _0206297E
+ mov r1, #0x1
+ mvn r1, r1
+ cmp r0, r1
+ beq _02062986
+ b _020629CE
+_0206297E:
+ ldr r0, [r4, #0xc]
+ add r0, r0, #0x1
+ str r0, [r4, #0xc]
+ b _020629CE
+_02062986:
+ mov r0, #0xff
+ str r0, [r4, #0xc]
+ b _020629CE
+_0206298C:
+ mov r1, #0xb1
+ lsl r1, r1, #0x2
+ ldr r1, [r4, r1]
+ mov r2, #0x0
+ strh r2, [r1, #0x4]
+ mov r1, #0x1
+ bl FUN_020632A4
+ mov r0, #0xa6
+ lsl r0, r0, #0x2
+ ldr r0, [r4, r0]
+ mov r1, #0x1
+ bl FUN_0200C66C
+ mov r0, #0x0
+ str r0, [r4, #0xc]
+ add sp, #0x10
+ mov r0, #0x6
+ pop {r4, pc}
+_020629B2:
+ add r0, r4, #0x0
+ bl FUN_02063208
+ mov r0, #0xa6
+ lsl r0, r0, #0x2
+ ldr r0, [r4, r0]
+ mov r1, #0x1
+ bl FUN_0200C66C
+ mov r0, #0x0
+ str r0, [r4, #0xc]
+ add sp, #0x10
+ mov r0, #0x6
+ pop {r4, pc}
+_020629CE:
+ mov r0, #0x7
+ add sp, #0x10
+ pop {r4, pc}
+ .balign 4
+_020629D4: .word 0x0001020F
+
+ thumb_func_start FUN_020629D8
+FUN_020629D8: ; 0x020629D8
+ push {r4, lr}
+ sub sp, #0x10
+ add r4, r0, #0x0
+ ldr r1, [r4, #0xc]
+ cmp r1, #0x0
+ beq _020629EE
+ cmp r1, #0x1
+ beq _02062A2A
+ cmp r1, #0x2
+ beq _02062A3C
+ b _02062A60
+_020629EE:
+ add r0, #0xe4
+ mov r1, #0xff
+ bl FUN_02019620
+ mov r3, #0x0
+ str r3, [sp, #0x0]
+ ldrh r0, [r4, #0x1a]
+ add r2, r4, #0x0
+ add r2, #0x9c
+ str r0, [sp, #0x4]
+ ldr r0, _02062A68 ; =0x0001020F
+ mov r1, #0x1
+ str r0, [sp, #0x8]
+ str r3, [sp, #0xc]
+ add r0, r4, #0x0
+ ldr r2, [r2, #0x0]
+ add r0, #0xe4
+ bl FUN_0201BDE0
+ strb r0, [r4, #0x1e]
+ mov r0, #0xa6
+ lsl r0, r0, #0x2
+ ldr r0, [r4, r0]
+ mov r1, #0x2
+ bl FUN_0200C66C
+ ldr r0, [r4, #0xc]
+ add r0, r0, #0x1
+ str r0, [r4, #0xc]
+ b _02062A60
+_02062A2A:
+ ldrb r0, [r4, #0x1e]
+ bl FUN_0201BD70
+ cmp r0, #0x0
+ bne _02062A60
+ ldr r0, [r4, #0xc]
+ add r0, r0, #0x1
+ str r0, [r4, #0xc]
+ b _02062A60
+_02062A3C:
+ ldr r1, _02062A6C ; =0x021C48B8
+ ldr r2, [r1, #0x48]
+ mov r1, #0x3
+ tst r1, r2
+ beq _02062A60
+ bl FUN_02063208
+ mov r0, #0xa6
+ lsl r0, r0, #0x2
+ ldr r0, [r4, r0]
+ mov r1, #0x1
+ bl FUN_0200C66C
+ mov r0, #0x0
+ str r0, [r4, #0xc]
+ add sp, #0x10
+ mov r0, #0x6
+ pop {r4, pc}
+_02062A60:
+ mov r0, #0x8
+ add sp, #0x10
+ pop {r4, pc}
+ nop
+_02062A68: .word 0x0001020F
+_02062A6C: .word 0x021C48B8
+
+ thumb_func_start FUN_02062A70
+FUN_02062A70: ; 0x02062A70
+ push {r4-r7, lr}
+ sub sp, #0x14
+ add r4, r0, #0x0
+ ldrb r2, [r4, #0x18]
+ add r5, r1, #0x0
+ mov r1, #0x3c
+ ldr r0, [r4, #0x0]
+ mul r1, r2
+ bl FUN_02016998
+ mov r1, #0xb
+ lsl r1, r1, #0x6
+ str r0, [r4, r1]
+ ldr r0, [r4, r1]
+ ldrb r3, [r4, #0x18]
+ mov r2, #0x3c
+ mov r1, #0x0
+ mul r2, r3
+ blx MI_CpuFill8
+ ldrb r1, [r4, #0x16]
+ ldr r2, [r4, #0x0]
+ add r0, r5, #0x0
+ bl FUN_0202BD6C
+ mov r1, #0xa9
+ lsl r1, r1, #0x2
+ str r0, [r4, r1]
+ mov r0, #0x0
+ str r0, [sp, #0x10]
+ ldrb r0, [r4, #0x18]
+ cmp r0, #0x0
+ bgt _02062AB4
+ b _02062C48
+_02062AB4:
+ ldr r0, [sp, #0x10]
+ str r4, [sp, #0x8]
+ str r0, [sp, #0x4]
+ add r5, r0, #0x0
+_02062ABC:
+ ldrb r2, [r4, #0x17]
+ ldrb r3, [r4, #0x19]
+ mov r1, #0xd
+ mul r1, r2
+ mov r0, #0x2a
+ add r2, r3, r1
+ ldr r1, [sp, #0x10]
+ lsl r0, r0, #0x4
+ add r1, r1, r2
+ ldr r0, [r4, r0]
+ ldr r2, [r4, #0x0]
+ bl FUN_0202BDF0
+ mov r1, #0xaa
+ mov r3, #0x0
+ ldr r2, [sp, #0x8]
+ lsl r1, r1, #0x2
+ str r0, [r2, r1]
+ add r0, r2, #0x0
+ ldr r0, [r0, r1]
+ mov r12, r3
+ str r0, [sp, #0xc]
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ bne _02062B22
+ sub r0, r1, #0x4
+ ldr r0, [r4, r0]
+ add r3, r1, #0x0
+ add r2, r0, #0x4
+ ldr r0, [sp, #0x4]
+ add r3, #0x18
+ add r2, r2, r0
+ add r0, r1, #0x0
+ add r0, #0x18
+ ldr r0, [r4, r0]
+ add r0, r0, r5
+ str r2, [r0, #0x4]
+ add r0, r1, #0x0
+ add r0, #0x18
+ ldr r0, [r4, r0]
+ mov r2, #0x1
+ add r0, r0, r5
+ strh r2, [r0, #0x8]
+ ldr r3, [r4, r3]
+ mov r0, #0xff
+ add r3, r3, r5
+ add r1, #0x18
+ strb r0, [r3, #0xa]
+ ldr r0, [r4, r1]
+ str r2, [r0, r5]
+ b _02062C2C
+_02062B22:
+ add r2, r3, #0x0
+ cmp r0, #0x0
+ ble _02062BE4
+ ldr r0, [sp, #0xc]
+ str r0, [sp, #0x0]
+ add r7, r0, #0x4
+_02062B2E:
+ mov r0, r12
+ cmp r0, #0x0
+ bne _02062BA8
+ mov r0, #0xa9
+ lsl r0, r0, #0x2
+ ldr r0, [r4, r0]
+ ldr r1, [sp, #0x4]
+ add r1, r1, r0
+ ldr r6, [r1, #0x8]
+ ldr r1, [sp, #0x0]
+ ldr r1, [r1, #0x8]
+ cmp r6, r1
+ blo _02062BA8
+ add r6, r0, #0x4
+ ldr r0, [sp, #0x4]
+ lsl r1, r3, #0x3
+ add r0, r6, r0
+ mov r6, #0xb
+ lsl r6, r6, #0x6
+ ldr r6, [r4, r6]
+ add r3, r3, #0x1
+ add r6, r5, r6
+ add r6, r1, r6
+ str r0, [r6, #0x4]
+ mov r0, #0xb
+ lsl r0, r0, #0x6
+ ldr r0, [r4, r0]
+ add r0, r5, r0
+ add r6, r1, r0
+ mov r0, #0x1
+ strh r0, [r6, #0x8]
+ mov r0, #0xb
+ lsl r0, r0, #0x6
+ ldr r0, [r4, r0]
+ lsl r6, r3, #0x3
+ add r0, r5, r0
+ add r1, r1, r0
+ mov r0, #0xff
+ strb r0, [r1, #0xa]
+ mov r0, #0xb
+ lsl r0, r0, #0x6
+ ldr r0, [r4, r0]
+ add r0, r5, r0
+ add r0, r6, r0
+ str r7, [r0, #0x4]
+ mov r0, #0xb
+ lsl r0, r0, #0x6
+ ldr r0, [r4, r0]
+ add r0, r5, r0
+ add r1, r6, r0
+ mov r0, #0x1
+ strh r0, [r1, #0x8]
+ mov r0, #0xb
+ lsl r0, r0, #0x6
+ ldr r0, [r4, r0]
+ add r0, r5, r0
+ add r0, r6, r0
+ strb r2, [r0, #0xa]
+ mov r0, #0x1
+ mov r12, r0
+ b _02062BD0
+_02062BA8:
+ mov r0, #0xb
+ lsl r0, r0, #0x6
+ ldr r0, [r4, r0]
+ lsl r6, r3, #0x3
+ add r0, r5, r0
+ add r0, r6, r0
+ str r7, [r0, #0x4]
+ mov r0, #0xb
+ lsl r0, r0, #0x6
+ ldr r0, [r4, r0]
+ add r0, r5, r0
+ add r1, r6, r0
+ mov r0, #0x1
+ strh r0, [r1, #0x8]
+ mov r0, #0xb
+ lsl r0, r0, #0x6
+ ldr r0, [r4, r0]
+ add r0, r5, r0
+ add r0, r6, r0
+ strb r2, [r0, #0xa]
+_02062BD0:
+ ldr r0, [sp, #0x0]
+ add r2, r2, #0x1
+ add r0, #0xc
+ str r0, [sp, #0x0]
+ ldr r0, [sp, #0xc]
+ add r3, r3, #0x1
+ ldr r0, [r0, #0x0]
+ add r7, #0xc
+ cmp r2, r0
+ blt _02062B2E
+_02062BE4:
+ mov r0, r12
+ cmp r0, #0x0
+ bne _02062C1E
+ mov r0, #0xa9
+ lsl r0, r0, #0x2
+ ldr r1, [r4, r0]
+ lsl r2, r3, #0x3
+ add r3, r1, #0x4
+ ldr r1, [sp, #0x4]
+ add r1, r3, r1
+ add r3, r0, #0x0
+ add r3, #0x1c
+ ldr r3, [r4, r3]
+ add r3, r3, r5
+ add r3, r2, r3
+ str r1, [r3, #0x4]
+ add r3, r0, #0x0
+ add r3, #0x1c
+ ldr r3, [r4, r3]
+ mov r1, #0x1
+ add r3, r3, r5
+ add r3, r2, r3
+ strh r1, [r3, #0x8]
+ add r0, #0x1c
+ ldr r0, [r4, r0]
+ mov r1, #0xff
+ add r0, r0, r5
+ add r0, r2, r0
+ strb r1, [r0, #0xa]
+_02062C1E:
+ ldr r0, [sp, #0xc]
+ ldr r0, [r0, #0x0]
+ add r1, r0, #0x1
+ mov r0, #0xb
+ lsl r0, r0, #0x6
+ ldr r0, [r4, r0]
+ str r1, [r0, r5]
+_02062C2C:
+ ldr r0, [sp, #0x8]
+ ldrb r1, [r4, #0x18]
+ add r0, r0, #0x4
+ str r0, [sp, #0x8]
+ ldr r0, [sp, #0x4]
+ add r5, #0x3c
+ add r0, #0xc
+ str r0, [sp, #0x4]
+ ldr r0, [sp, #0x10]
+ add r0, r0, #0x1
+ str r0, [sp, #0x10]
+ cmp r0, r1
+ bge _02062C48
+ b _02062ABC
+_02062C48:
+ add sp, #0x14
+ pop {r4-r7, pc}
+
+ thumb_func_start FUN_02062C4C
+FUN_02062C4C: ; 0x02062C4C
+ push {r3-r7, lr}
+ add r6, r0, #0x0
+ ldrb r0, [r6, #0x18]
+ mov r4, #0x0
+ add r0, r0, #0x1
+ cmp r0, #0x0
+ ble _02062C72
+ mov r7, #0xa9
+ add r5, r6, #0x0
+ lsl r7, r7, #0x2
+_02062C60:
+ ldr r0, [r5, r7]
+ bl FUN_0202BE6C
+ ldrb r0, [r6, #0x18]
+ add r4, r4, #0x1
+ add r5, r5, #0x4
+ add r0, r0, #0x1
+ cmp r4, r0
+ blt _02062C60
+_02062C72:
+ mov r0, #0xb
+ lsl r0, r0, #0x6
+ ldr r0, [r6, r0]
+ bl FUN_02016A18
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_02062C80
+FUN_02062C80: ; 0x02062C80
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ ldr r2, _02062D34 ; =0x000001E1
+ ldr r3, [r5, #0x0]
+ mov r0, #0x0
+ mov r1, #0x1a
+ bl FUN_0200A86C
+ str r0, [r5, #0x2c]
+ ldr r2, [r5, #0x0]
+ mov r0, #0x2
+ mov r1, #0x4c
+ bl FUN_0200AA90
+ str r0, [r5, #0x30]
+ ldr r1, [r5, #0x0]
+ mov r0, #0x4c
+ bl FUN_020219F4
+ str r0, [r5, #0x34]
+ ldr r0, [r5, #0x2c]
+ mov r1, #0xd
+ 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, #0x24
+ bl FUN_0200A914
+ str r0, [r5, #0x40]
+ ldr r0, [r5, #0x2c]
+ mov r1, #0xe
+ bl FUN_0200A914
+ str r0, [r5, #0x44]
+ ldrb r0, [r5, #0x18]
+ mov r4, #0x0
+ cmp r0, #0x0
+ ble _02062CFE
+ add r6, r5, #0x0
+_02062CDA:
+ ldrb r1, [r5, #0x19]
+ ldr r0, [r5, #0x2c]
+ add r1, r1, r4
+ bl FUN_0200A914
+ str r0, [r6, #0x64]
+ ldrb r1, [r5, #0x19]
+ ldr r0, [r5, #0x2c]
+ add r1, #0x17
+ add r1, r1, r4
+ bl FUN_0200A914
+ str r0, [r6, #0x7c]
+ ldrb r0, [r5, #0x18]
+ add r4, r4, #0x1
+ add r6, r6, #0x4
+ cmp r4, r0
+ blt _02062CDA
+_02062CFE:
+ mov r4, #0x0
+ add r6, r5, #0x0
+_02062D02:
+ add r1, r4, #0x0
+ ldr r0, [r5, #0x2c]
+ add r1, #0xf
+ bl FUN_0200A914
+ str r0, [r6, #0x48]
+ add r4, r4, #0x1
+ add r6, r6, #0x4
+ cmp r4, #0x7
+ blt _02062D02
+ mov r4, #0x0
+ add r6, r5, #0x0
+_02062D1A:
+ add r1, r4, #0x0
+ ldr r0, [r5, #0x2c]
+ add r1, #0x25
+ bl FUN_0200A914
+ add r1, r6, #0x0
+ add r1, #0x94
+ add r4, r4, #0x1
+ add r6, r6, #0x4
+ str r0, [r1, #0x0]
+ cmp r4, #0x3
+ blt _02062D1A
+ pop {r4-r6, pc}
+ .balign 4
+_02062D34: .word 0x000001E1
+
+ thumb_func_start FUN_02062D38
+FUN_02062D38: ; 0x02062D38
+ push {r4-r6, lr}
+ add r6, r0, #0x0
+ mov r4, #0x0
+ add r5, r6, #0x0
+_02062D40:
+ add r0, r5, #0x0
+ add r0, #0x94
+ ldr r0, [r0, #0x0]
+ bl FUN_02021A20
+ add r4, r4, #0x1
+ add r5, r5, #0x4
+ cmp r4, #0x3
+ blt _02062D40
+ mov r5, #0x0
+ add r4, r6, #0x0
+_02062D56:
+ ldr r0, [r4, #0x48]
+ bl FUN_02021A20
+ add r5, r5, #0x1
+ add r4, r4, #0x4
+ cmp r5, #0x7
+ blt _02062D56
+ ldrb r0, [r6, #0x18]
+ mov r5, #0x0
+ cmp r0, #0x0
+ ble _02062D84
+ add r4, r6, #0x0
+_02062D6E:
+ ldr r0, [r4, #0x64]
+ bl FUN_02021A20
+ ldr r0, [r4, #0x7c]
+ bl FUN_02021A20
+ ldrb r0, [r6, #0x18]
+ add r5, r5, #0x1
+ add r4, r4, #0x4
+ cmp r5, r0
+ blt _02062D6E
+_02062D84:
+ 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, #0x2c]
+ bl FUN_0200A8B8
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_02062DB0
+FUN_02062DB0: ; 0x02062DB0
+ push {r3-r4, lr}
+ sub sp, #0x14
+ add r4, r0, #0x0
+ mov r1, #0xad
+ ldr r3, [r4, #0x0]
+ mov r0, #0x1
+ lsl r1, r1, #0x6
+ mov r2, #0x0
+ bl FUN_02017F18
+ mov r2, #0x0
+ str r2, [sp, #0x0]
+ mov r0, #0x20
+ str r0, [sp, #0x4]
+ str r0, [sp, #0x8]
+ mov r0, #0x11
+ str r0, [sp, #0xc]
+ add r0, r4, #0x0
+ add r0, #0xd0
+ ldr r0, [r0, #0x0]
+ mov r1, #0x1
+ add r3, r2, #0x0
+ bl FUN_02018540
+ add r0, r4, #0x0
+ add r0, #0xd0
+ ldr r0, [r0, #0x0]
+ mov r1, #0x1
+ bl FUN_0201AC68
+ mov r0, #0x1
+ add r1, r0, #0x0
+ bl FUN_0201797C
+ add r0, r4, #0x0
+ add r0, #0xd0
+ ldr r0, [r0, #0x0]
+ mov r1, #0x0
+ bl FUN_02018884
+ strh r0, [r4, #0x10]
+ add r0, r4, #0x0
+ add r0, #0xd0
+ ldr r0, [r0, #0x0]
+ mov r1, #0x1
+ bl FUN_02018884
+ strh r0, [r4, #0x12]
+ mov r0, #0x0
+ mov r1, #0x2
+ bl FUN_020178BC
+ mov r0, #0x1
+ add r1, r0, #0x0
+ bl FUN_020178BC
+ ldrh r0, [r4, #0x1c]
+ ldr r2, _02062EB8 ; =0x000003E2
+ mov r1, #0x3
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x0]
+ ldr r0, [r4, #0x0]
+ mov r3, #0xa
+ str r0, [sp, #0x4]
+ add r0, r4, #0x0
+ add r0, #0xd0
+ ldr r0, [r0, #0x0]
+ bl FUN_0200CD68
+ mov r0, #0x0
+ str r0, [sp, #0x0]
+ ldr r0, [r4, #0x0]
+ ldr r2, _02062EBC ; =0x000003D9
+ str r0, [sp, #0x4]
+ add r0, r4, #0x0
+ add r0, #0xd0
+ ldr r0, [r0, #0x0]
+ mov r1, #0x3
+ mov r3, #0xb
+ bl FUN_0200CB00
+ mov r0, #0x0
+ str r0, [sp, #0x0]
+ ldr r0, [r4, #0x0]
+ ldr r2, _02062EBC ; =0x000003D9
+ str r0, [sp, #0x4]
+ add r0, r4, #0x0
+ add r0, #0xd0
+ ldr r0, [r0, #0x0]
+ mov r1, #0x1
+ mov r3, #0xb
+ bl FUN_0200CB00
+ mov r1, #0x1a
+ ldr r2, [r4, #0x0]
+ mov r0, #0x0
+ lsl r1, r1, #0x4
+ bl FUN_02002ED0
+ mov r1, #0x6
+ ldr r2, [r4, #0x0]
+ mov r0, #0x0
+ lsl r1, r1, #0x6
+ bl FUN_02002EEC
+ mov r0, #0x13
+ str r0, [sp, #0x0]
+ mov r0, #0x1b
+ str r0, [sp, #0x4]
+ mov r0, #0x4
+ str r0, [sp, #0x8]
+ mov r0, #0xc
+ str r0, [sp, #0xc]
+ ldr r0, _02062EC0 ; =0x0000036D
+ add r1, r4, #0x0
+ str r0, [sp, #0x10]
+ add r0, r4, #0x0
+ add r0, #0xd0
+ ldr r0, [r0, #0x0]
+ add r1, #0xe4
+ mov r2, #0x3
+ mov r3, #0x2
+ bl FUN_02019064
+ add r4, #0xe4
+ add r0, r4, #0x0
+ mov r1, #0xff
+ bl FUN_02019620
+ add sp, #0x14
+ pop {r3-r4, pc}
+ .balign 4
+_02062EB8: .word 0x000003E2
+_02062EBC: .word 0x000003D9
+_02062EC0: .word 0x0000036D
+
+ thumb_func_start FUN_02062EC4
+FUN_02062EC4: ; 0x02062EC4
+ push {r4, lr}
+ sub sp, #0x10
+ add r4, r0, #0x0
+ add r0, #0xe4
+ mov r1, #0x1
+ bl FUN_0200D0E0
+ add r0, r4, #0x0
+ add r0, #0xe4
+ bl FUN_02019570
+ add r0, r4, #0x0
+ add r0, #0xe4
+ bl FUN_02019178
+ mov r1, #0xad
+ ldr r3, [r4, #0x0]
+ mov r0, #0x1
+ lsl r1, r1, #0x6
+ mov r2, #0x0
+ bl FUN_02017F18
+ mov r2, #0x0
+ str r2, [sp, #0x0]
+ mov r0, #0x20
+ str r0, [sp, #0x4]
+ str r0, [sp, #0x8]
+ mov r0, #0x11
+ str r0, [sp, #0xc]
+ add r0, r4, #0x0
+ add r0, #0xd0
+ ldr r0, [r0, #0x0]
+ mov r1, #0x1
+ add r3, r2, #0x0
+ bl FUN_02018540
+ add r0, r4, #0x0
+ add r0, #0xd0
+ ldr r0, [r0, #0x0]
+ mov r1, #0x1
+ bl FUN_0201AC68
+ mov r0, #0x1
+ mov r1, #0x0
+ bl FUN_0201797C
+ ldrh r1, [r4, #0x10]
+ mov r0, #0x0
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ bl FUN_020178BC
+ ldrh r1, [r4, #0x12]
+ mov r0, #0x1
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ bl FUN_020178BC
+ add sp, #0x10
+ pop {r4, pc}
+
+ thumb_func_start FUN_02062F3C
+FUN_02062F3C: ; 0x02062F3C
+ push {r4-r7, lr}
+ sub sp, #0x24
+ ldr r4, _02062FF0 ; =0x020F7BDC
+ add r3, sp, #0xc
+ add r6, r0, #0x0
+ add r2, r3, #0x0
+ 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, #0x4d
+ lsl r0, r0, #0x2
+ add r1, r2, #0x0
+ ldr r3, [r6, #0x0]
+ add r0, r6, r0
+ mov r2, #0x2
+ bl FUN_021D959C
+ mov r0, #0x3
+ str r0, [sp, #0x0]
+ mov r0, #0x1
+ str r0, [sp, #0x4]
+ ldr r0, _02062FF4 ; =0x000034D8
+ mov r2, #0x0
+ str r0, [sp, #0x8]
+ mov r0, #0x4d
+ lsl r0, r0, #0x2
+ add r0, r6, r0
+ mov r1, #0x82
+ add r3, r2, #0x0
+ bl FUN_021D967C
+ ldr r0, _02062FF4 ; =0x000034D8
+ mov r1, #0x82
+ str r0, [sp, #0x0]
+ mov r0, #0x4d
+ lsl r0, r0, #0x2
+ add r0, r6, r0
+ mov r2, #0x2
+ mov r3, #0x0
+ bl FUN_021D96F4
+ ldr r0, _02062FF4 ; =0x000034D8
+ mov r1, #0x82
+ str r0, [sp, #0x0]
+ mov r0, #0x4d
+ lsl r0, r0, #0x2
+ add r0, r6, r0
+ mov r2, #0x3
+ mov r3, #0x0
+ bl FUN_021D9708
+ mov r2, #0x1
+ ldr r0, _02062FF4 ; =0x000034D8
+ str r2, [sp, #0x0]
+ str r0, [sp, #0x4]
+ mov r0, #0x4d
+ lsl r0, r0, #0x2
+ add r0, r6, r0
+ mov r1, #0x82
+ mov r3, #0x0
+ bl FUN_021D971C
+ ldr r4, _02062FF8 ; =0x020F7C7C
+ mov r7, #0x0
+ add r5, r6, #0x0
+_02062FC4:
+ mov r0, #0x4d
+ lsl r0, r0, #0x2
+ add r0, r6, r0
+ add r1, r4, #0x0
+ bl FUN_021D9820
+ mov r1, #0xa6
+ lsl r1, r1, #0x2
+ str r0, [r5, r1]
+ add r7, r7, #0x1
+ add r4, #0x34
+ add r5, r5, #0x4
+ cmp r7, #0x2
+ blt _02062FC4
+ add r0, r1, #0x4
+ ldr r0, [r6, r0]
+ mov r1, #0x0
+ bl FUN_0200C644
+ add sp, #0x24
+ pop {r4-r7, pc}
+ nop
+_02062FF0: .word 0x020F7BDC
+_02062FF4: .word 0x000034D8
+_02062FF8: .word 0x020F7C7C
+
+ thumb_func_start FUN_02062FFC
+FUN_02062FFC: ; 0x02062FFC
+ push {r3-r7, lr}
+ add r7, r0, #0x0
+ mov r6, #0xa6
+ mov r4, #0x0
+ add r5, r7, #0x0
+ lsl r6, r6, #0x2
+_02063008:
+ ldr r0, [r5, r6]
+ cmp r0, #0x0
+ beq _02063012
+ bl FUN_0200C3DC
+_02063012:
+ add r4, r4, #0x1
+ add r5, r5, #0x4
+ cmp r4, #0x2
+ blt _02063008
+ mov r0, #0x4d
+ lsl r0, r0, #0x2
+ add r0, r7, r0
+ bl FUN_021D99F8
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_02063028
+FUN_02063028: ; 0x02063028
+ push {r4-r7, lr}
+ sub sp, #0x1c
+ str r1, [sp, #0x14]
+ add r5, r0, #0x0
+ str r2, [sp, #0x18]
+ ldrb r0, [r5, #0x18]
+ ldr r1, [r5, #0x0]
+ add r7, r0, #0x1
+ add r0, r7, #0x0
+ bl FUN_02012838
+ add r1, r5, #0x0
+ add r1, #0xc4
+ str r0, [r1, #0x0]
+ mov r2, #0x1
+ add r1, r5, #0x0
+ str r2, [sp, #0x0]
+ mov r0, #0x18
+ str r0, [sp, #0x4]
+ lsl r0, r7, #0x19
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x8]
+ mov r0, #0xd
+ str r0, [sp, #0xc]
+ add r0, r5, #0x0
+ str r2, [sp, #0x10]
+ add r0, #0xd0
+ ldr r0, [r0, #0x0]
+ add r1, #0xd4
+ mov r3, #0x4
+ bl FUN_02019064
+ add r0, r5, #0x0
+ add r0, #0xd4
+ mov r1, #0xff
+ bl FUN_02019620
+ ldrb r0, [r5, #0x18]
+ mov r6, #0x0
+ cmp r0, #0x0
+ ble _02063094
+ add r4, r5, #0x0
+_0206307C:
+ add r0, r5, #0x0
+ add r0, #0xc4
+ ldr r0, [r0, #0x0]
+ ldr r1, [r4, #0x64]
+ add r2, r6, #0x0
+ bl FUN_020128A0
+ ldrb r0, [r5, #0x18]
+ add r6, r6, #0x1
+ add r4, r4, #0x4
+ cmp r6, r0
+ blt _0206307C
+_02063094:
+ add r0, r5, #0x0
+ add r0, #0xc4
+ ldr r0, [r0, #0x0]
+ ldr r1, [r5, #0x38]
+ ldr r2, _02063160 ; =0x0000FFFF
+ bl FUN_020128A0
+ add r1, r5, #0x0
+ ldr r0, _02063164 ; =0x020F7C2C
+ add r1, #0xa0
+ mov r2, #0x20
+ blx MI_CpuCopy8
+ add r1, r5, #0x0
+ add r0, r5, #0x0
+ add r1, #0xd4
+ add r0, #0xac
+ str r1, [r0, #0x0]
+ add r0, r5, #0x0
+ add r0, #0xc4
+ ldr r1, [r0, #0x0]
+ add r0, r5, #0x0
+ add r0, #0xa0
+ str r1, [r0, #0x0]
+ add r0, r5, #0x0
+ add r0, #0xbc
+ str r5, [r0, #0x0]
+ add r0, r5, #0x0
+ add r0, #0xb0
+ strh r7, [r0, #0x0]
+ add r0, r5, #0x0
+ add r0, #0xb7
+ ldrb r1, [r0, #0x0]
+ mov r0, #0xf
+ bic r1, r0
+ add r0, r5, #0x0
+ add r0, #0xb7
+ strb r1, [r0, #0x0]
+ add r0, r5, #0x0
+ ldr r1, _02063168 ; =FUN_020631C8
+ add r0, #0xa4
+ str r1, [r0, #0x0]
+ add r0, r5, #0x0
+ mov r1, #0x0
+ add r0, #0xa8
+ str r1, [r0, #0x0]
+ ldr r3, [r5, #0x0]
+ add r0, r5, #0x0
+ lsl r3, r3, #0x18
+ ldr r1, [sp, #0x14]
+ ldr r2, [sp, #0x18]
+ add r0, #0xa0
+ lsr r3, r3, #0x18
+ bl FUN_020010A8
+ add r1, r5, #0x0
+ add r1, #0xc0
+ str r0, [r1, #0x0]
+ add r0, r5, #0x0
+ ldr r2, _0206316C ; =0x000003D9
+ add r0, #0xd4
+ mov r1, #0x0
+ mov r3, #0xb
+ bl FUN_0200CCA4
+ add r0, r5, #0x0
+ ldr r2, _02063170 ; =0x000003E2
+ add r0, #0xe4
+ mov r1, #0x1
+ mov r3, #0xa
+ bl FUN_0200D0BC
+ add r0, r5, #0x0
+ add r0, #0xe4
+ mov r1, #0xff
+ bl FUN_02019620
+ mov r3, #0x0
+ str r3, [sp, #0x0]
+ ldr r0, _02063174 ; =0x0001020F
+ str r3, [sp, #0x4]
+ str r0, [sp, #0x8]
+ str r3, [sp, #0xc]
+ add r0, r5, #0x0
+ ldr r2, [r5, #0x3c]
+ add r0, #0xe4
+ mov r1, #0x1
+ bl FUN_0201BDE0
+ mov r0, #0xa6
+ lsl r0, r0, #0x2
+ ldr r0, [r5, r0]
+ mov r1, #0x1
+ bl FUN_0200C644
+ add r5, #0xd0
+ ldr r0, [r5, #0x0]
+ mov r1, #0x3
+ bl FUN_0201AC68
+ add sp, #0x1c
+ pop {r4-r7, pc}
+ .balign 4
+_02063160: .word 0x0000FFFF
+_02063164: .word 0x020F7C2C
+_02063168: .word FUN_020631C8
+_0206316C: .word 0x000003D9
+_02063170: .word 0x000003E2
+_02063174: .word 0x0001020F
+
+ thumb_func_start FUN_02063178
+FUN_02063178: ; 0x02063178
+ push {r4, lr}
+ add r4, r0, #0x0
+ add r0, #0xc0
+ add r1, r4, #0x0
+ add r2, r4, #0x0
+ ldr r0, [r0, #0x0]
+ add r1, #0x22
+ add r2, #0x24
+ bl FUN_02001300
+ add r0, r4, #0x0
+ add r0, #0xc4
+ ldr r0, [r0, #0x0]
+ bl FUN_02012870
+ add r0, r4, #0x0
+ add r0, #0xd4
+ bl FUN_02019570
+ add r0, r4, #0x0
+ add r0, #0xd4
+ mov r1, #0x0
+ bl FUN_0200CCF8
+ add r0, r4, #0x0
+ add r0, #0xd4
+ bl FUN_02019178
+ mov r0, #0xa6
+ lsl r0, r0, #0x2
+ ldr r0, [r4, r0]
+ mov r1, #0x0
+ bl FUN_0200C644
+ add r4, #0xd0
+ ldr r0, [r4, #0x0]
+ mov r1, #0x3
+ bl FUN_0201AC68
+ pop {r4, pc}
+
+ thumb_func_start FUN_020631C8
+FUN_020631C8: ; 0x020631C8
+ push {r3-r5, lr}
+ mov r1, #0x13
+ add r5, r0, #0x0
+ bl FUN_02001470
+ add r1, sp, #0x0
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ add r1, #0x2
+ add r2, sp, #0x0
+ bl FUN_02001448
+ add r0, r5, #0x0
+ mov r1, #0x2
+ bl FUN_02001470
+ add r2, sp, #0x0
+ ldrh r3, [r2, #0x0]
+ ldrh r2, [r2, #0x2]
+ mov r0, #0xa6
+ lsl r0, r0, #0x2
+ add r2, r3, r2
+ lsl r2, r2, #0x4
+ add r2, #0x10
+ lsl r2, r2, #0x10
+ ldr r0, [r4, r0]
+ mov r1, #0x7e
+ asr r2, r2, #0x10
+ bl FUN_0200C714
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_02063208
+FUN_02063208: ; 0x02063208
+ push {r4, lr}
+ sub sp, #0x10
+ add r4, r0, #0x0
+ add r0, #0xe4
+ mov r1, #0xff
+ bl FUN_02019620
+ mov r3, #0x0
+ str r3, [sp, #0x0]
+ ldr r0, _02063234 ; =0x0001020F
+ str r3, [sp, #0x4]
+ str r0, [sp, #0x8]
+ add r0, r4, #0x0
+ str r3, [sp, #0xc]
+ add r4, #0x94
+ ldr r2, [r4, #0x0]
+ add r0, #0xe4
+ mov r1, #0x1
+ bl FUN_0201BDE0
+ add sp, #0x10
+ pop {r4, pc}
+ .balign 4
+_02063234: .word 0x0001020F
+
+ thumb_func_start FUN_02063238
+FUN_02063238: ; 0x02063238
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl FUN_02063208
+ ldrh r2, [r4, #0x28]
+ mov r0, #0xa6
+ lsl r0, r0, #0x2
+ lsl r2, r2, #0x4
+ add r2, #0x10
+ lsl r2, r2, #0x10
+ ldr r0, [r4, r0]
+ mov r1, #0x7e
+ asr r2, r2, #0x10
+ bl FUN_0200C714
+ mov r0, #0xa6
+ lsl r0, r0, #0x2
+ ldr r0, [r4, r0]
+ mov r1, #0x1
+ bl FUN_0200C644
+ pop {r4, pc}
+
+ thumb_func_start FUN_02063264
+FUN_02063264: ; 0x02063264
+ push {r4, lr}
+ sub sp, #0x10
+ add r4, r0, #0x0
+ add r0, #0xe4
+ mov r1, #0xff
+ bl FUN_02019620
+ mov r3, #0x0
+ str r3, [sp, #0x0]
+ ldr r0, _020632A0 ; =0x0001020F
+ str r3, [sp, #0x4]
+ str r0, [sp, #0x8]
+ str r3, [sp, #0xc]
+ ldrb r2, [r4, #0x1f]
+ add r0, r4, #0x0
+ add r0, #0xe4
+ lsl r2, r2, #0x2
+ add r2, r4, r2
+ ldr r2, [r2, #0x7c]
+ mov r1, #0x1
+ bl FUN_0201BDE0
+ mov r0, #0xa6
+ lsl r0, r0, #0x2
+ ldr r0, [r4, r0]
+ mov r1, #0x0
+ bl FUN_0200C644
+ add sp, #0x10
+ pop {r4, pc}
+ .balign 4
+_020632A0: .word 0x0001020F
+
+ thumb_func_start FUN_020632A4
+FUN_020632A4: ; 0x020632A4
+ push {r4-r7, lr}
+ sub sp, #0x34
+ str r1, [sp, #0x10]
+ mov r1, #0xb
+ add r4, r0, #0x0
+ lsl r1, r1, #0x6
+ ldr r1, [r4, r1]
+ ldrb r0, [r4, #0x1f]
+ str r1, [sp, #0x24]
+ mov r1, #0x3c
+ mul r1, r0
+ str r1, [sp, #0x28]
+ ldrb r1, [r4, #0x16]
+ lsl r0, r0, #0x3
+ lsl r2, r1, #0x2
+ ldr r1, _02063428 ; =0x020F7BD0
+ ldr r1, [r1, r2]
+ add r0, r1, r0
+ str r0, [sp, #0x14]
+ add r0, r4, #0x0
+ add r0, #0xd4
+ mov r1, #0xff
+ bl FUN_02019620
+ mov r0, #0x1
+ str r0, [sp, #0x1c]
+ mov r0, #0x0
+ add r1, r0, #0x0
+ str r1, [sp, #0x20]
+ ldr r2, [sp, #0x24]
+ ldr r1, [sp, #0x28]
+ str r0, [sp, #0x18]
+ ldr r1, [r2, r1]
+ cmp r1, #0x0
+ ble _020633EA
+ ldr r1, [sp, #0x28]
+ add r7, r2, r1
+ add r1, r0, #0x0
+ str r1, [sp, #0x30]
+ add r1, r4, #0x0
+ str r1, [sp, #0x2c]
+ add r1, #0xd4
+ str r1, [sp, #0x2c]
+_020632FA:
+ ldrh r1, [r7, #0x8]
+ cmp r1, #0x0
+ beq _020633D6
+ ldr r1, [r7, #0x4]
+ ldr r5, [r1, #0x4]
+ ldr r1, [sp, #0x14]
+ ldr r1, [r1, #0x0]
+ cmp r5, r1
+ bls _0206330E
+ add r5, r1, #0x0
+_0206330E:
+ cmp r5, r0
+ bge _02063318
+ ldr r0, [sp, #0x1c]
+ add r0, r0, #0x1
+ str r0, [sp, #0x1c]
+_02063318:
+ mov r0, #0x1
+ str r0, [sp, #0x0]
+ str r0, [sp, #0x4]
+ ldr r0, [r4, #0x30]
+ ldr r2, [sp, #0x1c]
+ mov r1, #0x0
+ mov r3, #0x1
+ bl FUN_0200AD38
+ mov r0, #0x1
+ str r0, [sp, #0x0]
+ mov r0, #0x2
+ str r0, [sp, #0x4]
+ ldr r2, [r7, #0x4]
+ ldr r0, [r4, #0x30]
+ ldr r2, [r2, #0x8]
+ mov r1, #0x1
+ mov r3, #0x2
+ bl FUN_0200ABB4
+ ldr r0, [r4, #0x30]
+ ldr r1, [r4, #0x34]
+ ldr r2, [r4, #0x44]
+ bl FUN_0200B7B8
+ ldr r0, [sp, #0x30]
+ mov r1, #0x0
+ str r0, [sp, #0x0]
+ mov r0, #0xff
+ str r0, [sp, #0x4]
+ ldr r0, _0206342C ; =0x0001020F
+ mov r3, #0x8
+ str r0, [sp, #0x8]
+ mov r0, #0x0
+ str r0, [sp, #0xc]
+ ldr r0, [sp, #0x2c]
+ ldr r2, [r4, #0x34]
+ bl FUN_0201BDE0
+ mov r0, #0x1
+ str r0, [sp, #0x0]
+ str r0, [sp, #0x4]
+ ldr r3, [sp, #0x14]
+ ldr r0, [r4, #0x30]
+ ldrh r3, [r3, #0x4]
+ mov r1, #0x0
+ add r2, r5, #0x0
+ bl FUN_0200AD38
+ ldr r2, [sp, #0x14]
+ ldr r0, [r4, #0x30]
+ ldrh r2, [r2, #0x6]
+ ldr r1, [r4, #0x34]
+ lsl r2, r2, #0x2
+ add r2, r4, r2
+ ldr r2, [r2, #0xc]
+ bl FUN_0200B7B8
+ mov r0, #0x0
+ ldr r1, [r4, #0x34]
+ add r2, r0, #0x0
+ bl FUN_02002E14
+ mov r12, r0
+ ldr r0, [sp, #0x30]
+ mov r3, #0xb8
+ str r0, [sp, #0x0]
+ mov r0, #0xff
+ str r0, [sp, #0x4]
+ ldr r0, _0206342C ; =0x0001020F
+ mov r6, r12
+ str r0, [sp, #0x8]
+ mov r0, #0x0
+ str r0, [sp, #0xc]
+ ldr r0, [sp, #0x2c]
+ ldr r2, [r4, #0x34]
+ mov r1, #0x0
+ sub r3, r3, r6
+ bl FUN_0201BDE0
+ ldr r0, [sp, #0x18]
+ ldr r1, [sp, #0x20]
+ add r2, r4, r0
+ mov r0, #0xb2
+ lsl r0, r0, #0x2
+ strb r1, [r2, r0]
+ ldr r1, [sp, #0x30]
+ add r0, r5, #0x0
+ add r1, #0x10
+ str r1, [sp, #0x30]
+ ldr r1, [sp, #0x18]
+ add r1, r1, #0x1
+ str r1, [sp, #0x18]
+ cmp r1, #0x6
+ bge _020633EA
+_020633D6:
+ ldr r1, [sp, #0x20]
+ ldr r2, [sp, #0x24]
+ add r1, r1, #0x1
+ str r1, [sp, #0x20]
+ ldr r1, [sp, #0x28]
+ add r7, #0x8
+ ldr r2, [r2, r1]
+ ldr r1, [sp, #0x20]
+ cmp r1, r2
+ blt _020632FA
+_020633EA:
+ add r0, r4, #0x0
+ add r0, #0xd4
+ bl FUN_020191D0
+ add r1, r4, #0x0
+ ldr r0, [sp, #0x18]
+ add r1, #0x21
+ strb r0, [r1, #0x0]
+ ldrh r1, [r4, #0x28]
+ cmp r1, #0x0
+ beq _0206340E
+ add r0, r4, #0x0
+ add r0, #0x21
+ ldrb r0, [r0, #0x0]
+ cmp r1, r0
+ blt _0206340E
+ sub r0, r1, #0x1
+ strh r0, [r4, #0x28]
+_0206340E:
+ ldr r0, [sp, #0x10]
+ cmp r0, #0x0
+ beq _0206341E
+ add r0, r4, #0x0
+ bl FUN_02063238
+ add sp, #0x34
+ pop {r4-r7, pc}
+_0206341E:
+ add r0, r4, #0x0
+ bl FUN_02063264
+ add sp, #0x34
+ pop {r4-r7, pc}
+ .balign 4
+_02063428: .word 0x020F7BD0
+_0206342C: .word 0x0001020F
+
+ thumb_func_start FUN_02063430
+FUN_02063430: ; 0x02063430
+ push {r3-r4, lr}
+ sub sp, #0x14
+ mov r2, #0x1
+ add r4, r0, #0x0
+ str r2, [sp, #0x0]
+ mov r0, #0x18
+ str r0, [sp, #0x4]
+ mov r0, #0xc
+ str r0, [sp, #0x8]
+ mov r0, #0xd
+ str r0, [sp, #0xc]
+ add r0, r4, #0x0
+ add r1, r4, #0x0
+ str r2, [sp, #0x10]
+ add r0, #0xd0
+ ldr r0, [r0, #0x0]
+ add r1, #0xd4
+ mov r3, #0x4
+ bl FUN_02019064
+ add r0, r4, #0x0
+ ldr r2, _020634D0 ; =0x000003D9
+ add r0, #0xd4
+ mov r1, #0x1
+ mov r3, #0xb
+ bl FUN_0200CCA4
+ add r0, r4, #0x0
+ mov r1, #0x0
+ bl FUN_020632A4
+ mov r0, #0xa7
+ lsl r0, r0, #0x2
+ ldr r0, [r4, r0]
+ mov r1, #0x1
+ bl FUN_0200C644
+ mov r0, #0xe
+ str r0, [sp, #0x0]
+ mov r3, #0x8
+ add r1, r4, #0x0
+ str r3, [sp, #0x4]
+ mov r0, #0x2
+ str r0, [sp, #0x8]
+ mov r0, #0xd
+ str r0, [sp, #0xc]
+ ldr r0, _020634D4 ; =0x00000345
+ add r1, #0xf4
+ str r0, [sp, #0x10]
+ add r0, r4, #0x0
+ add r0, #0xd0
+ ldr r0, [r0, #0x0]
+ mov r2, #0x3
+ bl FUN_02019064
+ add r0, r4, #0x0
+ add r0, #0xf4
+ mov r1, #0x0
+ bl FUN_02019620
+ mov r1, #0x0
+ str r1, [sp, #0x0]
+ ldr r0, _020634D8 ; =0x00010200
+ str r1, [sp, #0x4]
+ str r0, [sp, #0x8]
+ str r1, [sp, #0xc]
+ add r0, r4, #0x0
+ ldr r2, [r4, #0x40]
+ add r0, #0xf4
+ add r3, r1, #0x0
+ bl FUN_0201BDE0
+ add r4, #0xd0
+ ldr r0, [r4, #0x0]
+ mov r1, #0x3
+ bl FUN_0201AC68
+ add sp, #0x14
+ pop {r3-r4, pc}
+ nop
+_020634D0: .word 0x000003D9
+_020634D4: .word 0x00000345
+_020634D8: .word 0x00010200
+
+ thumb_func_start FUN_020634DC
+FUN_020634DC: ; 0x020634DC
+ push {r4, lr}
+ add r4, r0, #0x0
+ add r0, #0xd4
+ bl FUN_02019570
+ add r0, r4, #0x0
+ add r0, #0xd4
+ mov r1, #0x0
+ bl FUN_0200CCF8
+ add r0, r4, #0x0
+ add r0, #0xd4
+ bl FUN_02019178
+ add r0, r4, #0x0
+ add r0, #0xf4
+ bl FUN_02019570
+ add r0, r4, #0x0
+ add r0, #0xf4
+ bl FUN_02019178
+ mov r0, #0xa6
+ lsl r0, r0, #0x2
+ ldr r0, [r4, r0]
+ mov r1, #0x0
+ bl FUN_0200C644
+ mov r0, #0xa7
+ lsl r0, r0, #0x2
+ ldr r0, [r4, r0]
+ mov r1, #0x0
+ bl FUN_0200C644
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02063524
+FUN_02063524: ; 0x02063524
+ push {r3-r5, lr}
+ add r4, r0, #0x0
+ bl FUN_02046528
+ add r5, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_0204652C
+ add r4, r0, #0x0
+ ldr r2, [r4, #0x0]
+ ldr r1, [r4, #0x8]
+ cmp r2, #0xc
+ bls _02063540
+ b _02063646
+_02063540:
+ add r2, r2, r2
+ add r2, pc
+ ldrh r2, [r2, #0x6]
+ lsl r2, r2, #0x10
+ asr r2, r2, #0x10
+ add pc, r2
+_0206354C: ; jump table (using 16-bit offset)
+ .short _02063566 - _0206354C - 2; case 0
+ .short _02063572 - _0206354C - 2; case 1
+ .short _0206357E - _0206354C - 2; case 2
+ .short _02063594 - _0206354C - 2; case 3
+ .short _020635AA - _0206354C - 2; case 4
+ .short _020635C0 - _0206354C - 2; case 5
+ .short _020635D6 - _0206354C - 2; case 6
+ .short _020635EC - _0206354C - 2; case 7
+ .short _02063602 - _0206354C - 2; case 8
+ .short _02063618 - _0206354C - 2; case 9
+ .short _0206362C - _0206354C - 2; case 10
+ .short _02063636 - _0206354C - 2; case 11
+ .short _0206363E - _0206354C - 2; case 12
+_02063566:
+ ldrh r2, [r4, #0x4]
+ add r1, r5, #0x0
+ bl FUN_020625EC
+ str r0, [r4, #0x0]
+ b _02063646
+_02063572:
+ add r0, r1, #0x0
+ ldr r1, [r5, #0xc]
+ bl FUN_02062720
+ str r0, [r4, #0x0]
+ b _02063646
+_0206357E:
+ add r0, r1, #0x0
+ bl FUN_02062760
+ str r0, [r4, #0x0]
+ mov r0, #0x4d
+ ldr r1, [r4, #0x8]
+ lsl r0, r0, #0x2
+ ldr r0, [r1, r0]
+ bl FUN_0201FDEC
+ b _02063646
+_02063594:
+ add r0, r1, #0x0
+ bl FUN_02062770
+ str r0, [r4, #0x0]
+ mov r0, #0x4d
+ ldr r1, [r4, #0x8]
+ lsl r0, r0, #0x2
+ ldr r0, [r1, r0]
+ bl FUN_0201FDEC
+ b _02063646
+_020635AA:
+ add r0, r1, #0x0
+ bl FUN_020627D0
+ str r0, [r4, #0x0]
+ mov r0, #0x4d
+ ldr r1, [r4, #0x8]
+ lsl r0, r0, #0x2
+ ldr r0, [r1, r0]
+ bl FUN_0201FDEC
+ b _02063646
+_020635C0:
+ add r0, r1, #0x0
+ bl FUN_020627DC
+ str r0, [r4, #0x0]
+ mov r0, #0x4d
+ ldr r1, [r4, #0x8]
+ lsl r0, r0, #0x2
+ ldr r0, [r1, r0]
+ bl FUN_0201FDEC
+ b _02063646
+_020635D6:
+ add r0, r1, #0x0
+ bl FUN_02062808
+ str r0, [r4, #0x0]
+ mov r0, #0x4d
+ ldr r1, [r4, #0x8]
+ lsl r0, r0, #0x2
+ ldr r0, [r1, r0]
+ bl FUN_0201FDEC
+ b _02063646
+_020635EC:
+ add r0, r1, #0x0
+ bl FUN_020628E8
+ str r0, [r4, #0x0]
+ mov r0, #0x4d
+ ldr r1, [r4, #0x8]
+ lsl r0, r0, #0x2
+ ldr r0, [r1, r0]
+ bl FUN_0201FDEC
+ b _02063646
+_02063602:
+ add r0, r1, #0x0
+ bl FUN_020629D8
+ str r0, [r4, #0x0]
+ mov r0, #0x4d
+ ldr r1, [r4, #0x8]
+ lsl r0, r0, #0x2
+ ldr r0, [r1, r0]
+ bl FUN_0201FDEC
+ b _02063646
+_02063618:
+ ldr r0, _0206364C ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #0x1
+ tst r0, r1
+ bne _02063626
+ mov r0, #0x0
+ pop {r3-r5, pc}
+_02063626:
+ mov r0, #0xa
+ str r0, [r4, #0x0]
+ b _02063646
+_0206362C:
+ add r0, r1, #0x0
+ bl FUN_02062740
+ str r0, [r4, #0x0]
+ b _02063646
+_02063636:
+ bl FUN_02062678
+ str r0, [r4, #0x0]
+ b _02063646
+_0206363E:
+ bl FUN_02016A18
+ mov r0, #0x1
+ pop {r3-r5, pc}
+_02063646:
+ mov r0, #0x0
+ pop {r3-r5, pc}
+ nop
+_0206364C: .word 0x021C48B8
+
+ thumb_func_start FUN_02063650
+FUN_02063650: ; 0x02063650
+ push {r3-r5, lr}
+ add r5, r1, #0x0
+ bl FUN_02046528
+ add r4, r0, #0x0
+ mov r0, #0xb
+ mov r1, #0xc
+ bl FUN_02016998
+ add r2, r0, #0x0
+ mov r0, #0x0
+ str r0, [r2, #0x0]
+ strh r5, [r2, #0x4]
+ str r0, [r2, #0x8]
+ ldr r0, [r4, #0x10]
+ ldr r1, _02063678 ; =FUN_02063524
+ bl FUN_0204640C
+ pop {r3-r5, pc}
+ nop
+_02063678: .word FUN_02063524
+
+ thumb_func_start FUN_0206367C
+FUN_0206367C: ; 0x0206367C
+ add r0, #0xb4
+ str r1, [r0, #0x0]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02063684
+FUN_02063684: ; 0x02063684
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ bl FUN_02063818
+ ldr r0, [r5, #0xc]
+ bl FUN_020462AC
+ mov r1, #0x0
+ bl FUN_0205F264
+ ldr r1, [r5, #0x1c]
+ add r0, r5, #0x0
+ ldr r1, [r1, #0x0]
+ bl FUN_02034F88
+ ldr r0, [r5, #0xc]
+ bl FUN_0202A9B0
+ mov r1, #0x0
+ bl FUN_0202AB68
+ add r0, r5, #0x0
+ mov r1, #0x0
+ add r0, #0x74
+ strh r1, [r0, #0x0]
+ ldr r0, [r5, #0xc]
+ bl FUN_020462AC
+ bl FUN_0205F214
+ cmp r0, #0x0
+ bne _020636DA
+ ldr r0, [r5, #0xc]
+ bl FUN_0202A9B0
+ ldr r1, [r5, #0x1c]
+ add r4, r0, #0x0
+ ldr r1, [r1, #0x0]
+ bl FUN_02060478
+ add r0, r4, #0x0
+ bl FUN_020603F0
+_020636DA:
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_020636DC
+FUN_020636DC: ; 0x020636DC
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r1, r5, #0x0
+ add r1, #0xb4
+ ldr r1, [r1, #0x0]
+ cmp r1, #0x1
+ beq _020637A6
+ bl FUN_02063818
+ cmp r0, #0x0
+ bne _020636F8
+ add r0, r5, #0x0
+ bl FUN_0206384C
+_020636F8:
+ ldr r0, [r5, #0xc]
+ bl FUN_020462AC
+ bl FUN_0205F254
+ ldr r0, [r5, #0xc]
+ bl FUN_020462AC
+ mov r1, #0x0
+ bl FUN_0205F264
+ ldr r1, [r5, #0x1c]
+ add r0, r5, #0x0
+ ldr r1, [r1, #0x0]
+ bl FUN_02034F88
+ ldr r0, [r5, #0xc]
+ bl FUN_0202A9B0
+ mov r1, #0x0
+ bl FUN_0202AB68
+ add r0, r5, #0x0
+ mov r1, #0x0
+ add r0, #0x74
+ strh r1, [r0, #0x0]
+ ldr r0, [r5, #0xc]
+ bl FUN_0202A9B0
+ ldr r1, [r5, #0x1c]
+ ldr r1, [r1, #0x0]
+ bl FUN_02060478
+ ldr r0, [r5, #0x1c]
+ ldr r0, [r0, #0x0]
+ bl FUN_02034930
+ cmp r0, #0x0
+ bne _02063758
+ ldr r0, [r5, #0xc]
+ bl FUN_020462AC
+ add r4, r0, #0x0
+ bl FUN_0205F284
+ add r0, r4, #0x0
+ bl FUN_0205F2B4
+_02063758:
+ ldr r0, [r5, #0xc]
+ bl FUN_02034E30
+ bl FUN_02034E20
+ add r4, r0, #0x0
+ ldr r0, [r4, #0x4]
+ cmp r0, #0x1
+ bne _0206377C
+ ldr r0, [r5, #0x1c]
+ ldr r0, [r0, #0x0]
+ bl FUN_020348B4
+ cmp r0, #0x0
+ bne _0206377C
+ mov r0, #0x0
+ str r0, [r4, #0x4]
+ b _02063786
+_0206377C:
+ ldr r0, [r4, #0x4]
+ cmp r0, #0x2
+ bne _02063786
+ mov r0, #0x0
+ str r0, [r4, #0x4]
+_02063786:
+ ldr r0, [r5, #0x1c]
+ ldr r0, [r0, #0x0]
+ bl FUN_02034908
+ cmp r0, #0x0
+ beq _020637A6
+ ldr r0, [r5, #0xc]
+ bl FUN_02034E30
+ bl FUN_02034E0C
+ ldr r2, [r5, #0x1c]
+ ldr r1, [r2, #0x8]
+ ldr r2, [r2, #0xc]
+ bl FUN_0204AE04
+_020637A6:
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_020637A8
+FUN_020637A8: ; 0x020637A8
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r0, [r4, #0xc]
+ bl FUN_020462AC
+ bl FUN_0205F204
+ ldr r0, [r4, #0xc]
+ bl FUN_0202A9B0
+ bl FUN_020603C8
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_020637C4
+FUN_020637C4: ; 0x020637C4
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r0, [r4, #0xc]
+ bl FUN_020462AC
+ bl FUN_0205F204
+ ldr r0, [r4, #0xc]
+ bl FUN_0202A9B0
+ bl FUN_020603C8
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_020637E0
+FUN_020637E0: ; 0x020637E0
+ push {r3, lr}
+ ldr r0, [r0, #0xc]
+ bl FUN_020462AC
+ bl FUN_0205F204
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_020637F0
+FUN_020637F0: ; 0x020637F0
+ push {r4, lr}
+ ldr r0, [r0, #0xc]
+ bl FUN_020462AC
+ add r4, r0, #0x0
+ bl FUN_0205ED2C
+ add r0, r4, #0x0
+ mov r1, #0x0
+ bl FUN_0205F358
+ pop {r4, pc}
+
+ thumb_func_start FUN_02063808
+FUN_02063808: ; 0x02063808
+ push {r3, lr}
+ ldr r0, [r0, #0xc]
+ bl FUN_0202A9B0
+ bl FUN_020603C8
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_02063818
+FUN_02063818: ; 0x02063818
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r0, [r4, #0x1c]
+ ldr r0, [r0, #0x0]
+ bl FUN_02034F1C
+ add r1, r0, #0x0
+ beq _02063846
+ add r0, r4, #0x0
+ bl FUN_02034FC0
+ cmp r0, #0x0
+ bne _02063846
+ add r0, r4, #0x0
+ ldr r1, [r4, #0x1c]
+ add r0, #0x98
+ ldr r0, [r0, #0x0]
+ ldr r1, [r1, #0x0]
+ mov r2, #0x20
+ bl FUN_020299C0
+ mov r0, #0x1
+ pop {r4, pc}
+_02063846:
+ mov r0, #0x0
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0206384C
+FUN_0206384C: ; 0x0206384C
+ push {r3-r6, lr}
+ sub sp, #0x4
+ add r5, r0, #0x0
+ ldr r0, [r5, #0xc]
+ bl FUN_02034E30
+ bl FUN_02034DC8
+ ldr r1, [r5, #0x1c]
+ ldr r6, [r0, #0x0]
+ ldr r4, [r1, #0x0]
+ cmp r6, r4
+ beq _02063882
+ ldr r0, [r5, #0xc]
+ bl FUN_020238F4
+ mov r1, #0x20
+ add r5, #0x98
+ str r1, [sp, #0x0]
+ ldr r1, [r5, #0x0]
+ add r2, r4, #0x0
+ add r3, r6, #0x0
+ bl FUN_02029880
+ add sp, #0x4
+ mov r0, #0x1
+ pop {r3-r6, pc}
+_02063882:
+ mov r0, #0x0
+ add sp, #0x4
+ pop {r3-r6, pc}
+
+ thumb_func_start FUN_02063888
+FUN_02063888: ; 0x02063888
+ push {r4-r6, lr}
+ add r5, r1, #0x0
+ mov r1, #0x18
+ add r4, r2, #0x0
+ add r6, r3, #0x0
+ bl FUN_020169D8
+ add r3, r0, #0x0
+ mov r2, #0x18
+ mov r1, #0x0
+_0206389C:
+ strb r1, [r3, #0x0]
+ add r3, r3, #0x1
+ sub r2, r2, #0x1
+ bne _0206389C
+ str r5, [r0, #0x0]
+ str r4, [r0, #0x10]
+ strh r6, [r0, #0x8]
+ add r2, sp, #0x0
+ mov r1, #0x10
+ ldrsh r1, [r2, r1]
+ strh r1, [r0, #0xa]
+ mov r1, #0x14
+ ldrsh r1, [r2, r1]
+ strh r1, [r0, #0xc]
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_020638BC
+FUN_020638BC: ; 0x020638BC
+ push {r3-r6, lr}
+ sub sp, #0x1c
+ add r5, r0, #0x0
+ bl FUN_02046528
+ add r0, r5, #0x0
+ bl FUN_0204652C
+ add r4, r0, #0x0
+ ldr r0, [r4, #0x4]
+ cmp r0, #0x0
+ beq _020638DA
+ cmp r0, #0x1
+ beq _020638F8
+ b _02063942
+_020638DA:
+ ldr r0, [r4, #0x0]
+ ldr r0, [r0, #0x38]
+ bl FUN_020553E8
+ add r3, r0, #0x0
+ ldr r0, [r4, #0x0]
+ ldr r2, [r4, #0x10]
+ mov r1, #0x1
+ bl FUN_0224666C
+ str r0, [r4, #0x14]
+ ldr r0, [r4, #0x4]
+ add r0, r0, #0x1
+ str r0, [r4, #0x4]
+ b _02063942
+_020638F8:
+ ldr r0, [r4, #0x14]
+ bl FUN_022466A0
+ cmp r0, #0x0
+ beq _02063942
+ ldr r0, [r4, #0x14]
+ bl FUN_022466AC
+ mov r1, #0xa
+ mov r2, #0xc
+ ldrh r0, [r4, #0x8]
+ ldrsh r1, [r4, r1]
+ ldrsh r2, [r4, r2]
+ bl FUN_02034F40
+ lsl r0, r0, #0x10
+ lsr r6, r0, #0x10
+ bne _02063920
+ bl ErrorHandling
+_02063920:
+ add r0, r6, #0x0
+ add r1, sp, #0x8
+ bl FUN_02034E90
+ ldr r0, [sp, #0x14]
+ mov r2, #0x1
+ str r0, [sp, #0x0]
+ str r2, [sp, #0x4]
+ ldr r1, [sp, #0x8]
+ ldr r3, [sp, #0x10]
+ add r0, r5, #0x0
+ sub r2, r2, #0x2
+ bl FUN_020492BC
+ add r0, r4, #0x0
+ bl FUN_02016A18
+_02063942:
+ mov r0, #0x0
+ add sp, #0x1c
+ pop {r3-r6, pc}
+
+ thumb_func_start FUN_02063948
+FUN_02063948: ; 0x02063948
+ cmp r0, #0x0
+ bne _02063954
+ ldr r0, _0206395C ; =0x020F7CE4
+ lsl r1, r1, #0x3
+ ldr r0, [r0, r1]
+ bx lr
+_02063954:
+ ldr r0, _02063960 ; =0x020F7CE8
+ lsl r1, r1, #0x3
+ ldr r0, [r0, r1]
+ bx lr
+ .balign 4
+_0206395C: .word 0x020F7CE4
+_02063960: .word 0x020F7CE8
+
+ thumb_func_start FUN_02063964
+FUN_02063964: ; 0x02063964
+ push {r4-r7, lr}
+ sub sp, #0xc
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ str r5, [r4, #0x4]
+ ldr r1, [r5, #0x1c]
+ ldr r1, [r1, #0x0]
+ str r1, [r4, #0x0]
+ mov r1, #0x0
+ strh r1, [r4, #0xc]
+ add r1, sp, #0x8
+ bl FUN_02037024
+ ldr r0, [sp, #0x8]
+ str r0, [r4, #0x8]
+ ldr r0, [sp, #0x8]
+ cmp r0, #0x0
+ beq _020639B6
+ bl FUN_02058458
+ cmp r0, #0x54
+ beq _0206399A
+ cmp r0, #0x55
+ beq _020639A4
+ cmp r0, #0x56
+ beq _020639AE
+ b _020639B6
+_0206399A:
+ ldrh r1, [r4, #0xc]
+ mov r0, #0x8
+ orr r0, r1
+ strh r0, [r4, #0xc]
+ b _020639B6
+_020639A4:
+ ldrh r1, [r4, #0xc]
+ mov r0, #0x20
+ orr r0, r1
+ strh r0, [r4, #0xc]
+ b _020639B6
+_020639AE:
+ ldrh r1, [r4, #0xc]
+ mov r0, #0x1
+ orr r0, r1
+ strh r0, [r4, #0xc]
+_020639B6:
+ ldr r0, [r5, #0x38]
+ bl FUN_02055320
+ str r0, [sp, #0x4]
+ ldr r0, [r5, #0x38]
+ bl FUN_0205532C
+ add r2, r0, #0x0
+ ldr r1, [sp, #0x4]
+ str r2, [sp, #0x0]
+ add r0, r5, #0x0
+ bl FUN_0204A6E0
+ add r7, r0, #0x0
+ ldr r0, [r5, #0x38]
+ add r1, sp, #0x4
+ add r2, sp, #0x0
+ bl FUN_020572B8
+ ldr r1, [sp, #0x4]
+ ldr r2, [sp, #0x0]
+ add r0, r5, #0x0
+ bl FUN_0204A6E0
+ add r6, r0, #0x0
+ ldr r0, [r5, #0x38]
+ add r1, r7, #0x0
+ add r2, r6, #0x0
+ bl FUN_021E643C
+ cmp r0, #0x0
+ beq _020639FE
+ ldrh r1, [r4, #0xc]
+ mov r0, #0x4
+ orr r0, r1
+ strh r0, [r4, #0xc]
+_020639FE:
+ ldr r0, [r5, #0x38]
+ bl FUN_020552F8
+ add r1, r0, #0x0
+ add r0, r6, #0x0
+ bl FUN_021E69BC
+ cmp r0, #0x0
+ beq _02063A18
+ ldrh r1, [r4, #0xc]
+ mov r0, #0x80
+ orr r0, r1
+ strh r0, [r4, #0xc]
+_02063A18:
+ lsl r0, r6, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_02054A48
+ cmp r0, #0x0
+ beq _02063A2C
+ ldrh r1, [r4, #0xc]
+ mov r0, #0x40
+ orr r0, r1
+ strh r0, [r4, #0xc]
+_02063A2C:
+ ldr r0, [r5, #0xc]
+ bl FUN_02034E30
+ bl FUN_02034DEC
+ cmp r0, #0xe
+ beq _02063A42
+ cmp r0, #0x10
+ beq _02063A4E
+ add sp, #0xc
+ pop {r4-r7, pc}
+_02063A42:
+ ldrh r1, [r4, #0xc]
+ mov r0, #0x10
+ add sp, #0xc
+ orr r0, r1
+ strh r0, [r4, #0xc]
+ pop {r4-r7, pc}
+_02063A4E:
+ ldrh r1, [r4, #0xc]
+ mov r0, #0x1
+ lsl r0, r0, #0x8
+ orr r0, r1
+ strh r0, [r4, #0xc]
+ add sp, #0xc
+ pop {r4-r7, pc}
+
+ thumb_func_start FUN_02063A5C
+FUN_02063A5C: ; 0x02063A5C
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ mov r0, #0x20
+ mov r1, #0x10
+ bl FUN_02016998
+ ldr r1, _02063A7C ; =0x19740205
+ str r1, [r0, #0x0]
+ ldr r1, [r4, #0x8]
+ str r1, [r0, #0x4]
+ ldr r2, [r5, #0x0]
+ ldr r1, [r5, #0x4]
+ str r2, [r0, #0x8]
+ str r1, [r0, #0xc]
+ pop {r3-r5, pc}
+ .balign 4
+_02063A7C: .word 0x19740205
+
+ thumb_func_start FUN_02063A80
+FUN_02063A80: ; 0x02063A80
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r1, [r4, #0x0]
+ ldr r0, _02063A98 ; =0x19740205
+ cmp r1, r0
+ beq _02063A90
+ bl ErrorHandling
+_02063A90:
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ pop {r4, pc}
+ .balign 4
+_02063A98: .word 0x19740205
+
+ thumb_func_start FUN_02063A9C
+FUN_02063A9C: ; 0x02063A9C
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r1, [r4, #0x4]
+ ldr r0, [r1, #0x6c]
+ sub r0, r0, #0x2
+ cmp r0, #0x1
+ bhi _02063AAE
+ mov r0, #0x1
+ pop {r4, pc}
+_02063AAE:
+ ldr r0, [r1, #0xc]
+ bl FUN_020238F4
+ mov r1, #0x1
+ bl FUN_020239D0
+ cmp r0, #0x0
+ bne _02063AC2
+ mov r0, #0x2
+ pop {r4, pc}
+_02063AC2:
+ ldrh r1, [r4, #0xc]
+ mov r0, #0x1
+ tst r1, r0
+ beq _02063ACC
+ mov r0, #0x0
+_02063ACC:
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02063AD0
+FUN_02063AD0: ; 0x02063AD0
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ ldr r0, [r5, #0x0]
+ add r6, r1, #0x0
+ bl FUN_0204652C
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ bl FUN_02063A5C
+ add r5, r0, #0x0
+ ldr r0, [r6, #0x4]
+ bl FUN_0204649C
+ mov r0, #0x72
+ ldr r1, _02063B00 ; =FUN_02063B04
+ lsl r0, r0, #0x2
+ str r1, [r4, r0]
+ add r0, #0x30
+ str r5, [r4, r0]
+ mov r0, #0xa
+ strh r0, [r4, #0x2a]
+ pop {r4-r6, pc}
+ .balign 4
+_02063B00: .word FUN_02063B04
+
+ thumb_func_start FUN_02063B04
+FUN_02063B04: ; 0x02063B04
+ push {r3-r6, lr}
+ sub sp, #0x4
+ add r5, r0, #0x0
+ bl FUN_0204652C
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_02046528
+ add r6, r0, #0x0
+ ldr r1, _02063B3C ; =0x00002718
+ ldr r2, [r4, #0x4]
+ add r0, r5, #0x0
+ bl FUN_02038D10
+ mov r2, #0x0
+ str r2, [sp, #0x0]
+ ldrh r1, [r4, #0xc]
+ add r0, r6, #0x0
+ add r3, r2, #0x0
+ bl FUN_020395BC
+ add r0, r4, #0x0
+ bl FUN_02063A80
+ mov r0, #0x0
+ add sp, #0x4
+ pop {r3-r6, pc}
+ .balign 4
+_02063B3C: .word 0x00002718
+
+ thumb_func_start FUN_02063B40
+FUN_02063B40: ; 0x02063B40
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r1, [r4, #0x4]
+ ldr r0, [r1, #0x6c]
+ sub r0, r0, #0x2
+ cmp r0, #0x1
+ bhi _02063B52
+ mov r0, #0x1
+ pop {r4, pc}
+_02063B52:
+ ldr r0, [r1, #0xc]
+ bl FUN_020238F4
+ mov r1, #0x2
+ bl FUN_020239D0
+ cmp r0, #0x0
+ bne _02063B66
+ mov r0, #0x2
+ pop {r4, pc}
+_02063B66:
+ ldr r0, [r4, #0x0]
+ bl FUN_02034898
+ cmp r0, #0x0
+ bne _02063B74
+ mov r0, #0x1
+ pop {r4, pc}
+_02063B74:
+ ldr r0, [r4, #0x4]
+ ldr r0, [r0, #0xc]
+ bl FUN_020462AC
+ bl FUN_0205ED3C
+ cmp r0, #0x1
+ bne _02063B88
+ mov r0, #0x3
+ pop {r4, pc}
+_02063B88:
+ ldr r0, [r4, #0x4]
+ ldr r0, [r0, #0xc]
+ bl FUN_020462AC
+ bl FUN_0205F214
+ cmp r0, #0x1
+ beq _02063BA8
+ ldr r0, [r4, #0x4]
+ ldr r0, [r0, #0xc]
+ bl FUN_020462AC
+ bl FUN_0205F244
+ cmp r0, #0x1
+ bne _02063BAC
+_02063BA8:
+ mov r0, #0x1
+ b _02063BAE
+_02063BAC:
+ mov r0, #0x0
+_02063BAE:
+ cmp r0, #0x1
+ bne _02063BB6
+ mov r0, #0x1
+ pop {r4, pc}
+_02063BB6:
+ mov r0, #0x0
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02063BBC
+FUN_02063BBC: ; 0x02063BBC
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ ldr r0, [r5, #0x0]
+ bl FUN_02046528
+ add r6, r0, #0x0
+ ldr r0, [r5, #0x0]
+ bl FUN_0204652C
+ add r4, r0, #0x0
+ mov r0, #0xb
+ mov r1, #0x4
+ bl FUN_02016998
+ ldrh r1, [r5, #0x4]
+ str r1, [r0, #0x0]
+ mov r1, #0x7f
+ lsl r1, r1, #0x2
+ str r0, [r4, r1]
+ mov r0, #0xb
+ sub r1, #0xbc
+ bl FUN_02016998
+ mov r1, #0x7e
+ lsl r1, r1, #0x2
+ str r0, [r4, r1]
+ ldr r1, [r4, r1]
+ add r0, r6, #0x0
+ mov r2, #0x1
+ bl FUN_0205F7A0
+ mov r1, #0x7e
+ lsl r1, r1, #0x2
+ ldr r1, [r4, r1]
+ add r0, r6, #0x0
+ bl FUN_02037E90
+ ldr r1, _02063C10 ; =FUN_02036AB8
+ add r0, r4, #0x0
+ bl FUN_02035D04
+ pop {r4-r6, pc}
+ .balign 4
+_02063C10: .word FUN_02036AB8
+
+ thumb_func_start FUN_02063C14
+FUN_02063C14: ; 0x02063C14
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r1, [r4, #0x4]
+ ldr r0, [r1, #0x6c]
+ sub r0, r0, #0x2
+ cmp r0, #0x1
+ bhi _02063C26
+ mov r0, #0x1
+ pop {r4, pc}
+_02063C26:
+ ldr r0, [r1, #0xc]
+ bl FUN_020238F4
+ mov r1, #0x4
+ bl FUN_020239D0
+ cmp r0, #0x0
+ bne _02063C3A
+ mov r0, #0x2
+ pop {r4, pc}
+_02063C3A:
+ ldr r0, [r4, #0x4]
+ ldr r0, [r0, #0x38]
+ bl FUN_020553C4
+ cmp r0, #0x2
+ bne _02063C4A
+ mov r0, #0x4
+ pop {r4, pc}
+_02063C4A:
+ ldrh r1, [r4, #0xc]
+ mov r0, #0x4
+ tst r0, r1
+ bne _02063C56
+ mov r0, #0x1
+ pop {r4, pc}
+_02063C56:
+ ldr r0, [r4, #0x4]
+ ldr r0, [r0, #0xc]
+ bl FUN_020462AC
+ bl FUN_0205ED3C
+ cmp r0, #0x1
+ bne _02063C6A
+ mov r0, #0x3
+ pop {r4, pc}
+_02063C6A:
+ mov r0, #0x0
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02063C70
+FUN_02063C70: ; 0x02063C70
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ ldr r0, [r5, #0x0]
+ add r6, r1, #0x0
+ bl FUN_0204652C
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ bl FUN_02063A5C
+ add r5, r0, #0x0
+ ldr r0, [r6, #0x4]
+ bl FUN_0204649C
+ mov r0, #0x72
+ ldr r1, _02063CA0 ; =FUN_02063CA4
+ lsl r0, r0, #0x2
+ str r1, [r4, r0]
+ add r0, #0x30
+ str r5, [r4, r0]
+ mov r0, #0xa
+ strh r0, [r4, #0x2a]
+ pop {r4-r6, pc}
+ .balign 4
+_02063CA0: .word FUN_02063CA4
+
+ thumb_func_start FUN_02063CA4
+FUN_02063CA4: ; 0x02063CA4
+ push {r3-r6, lr}
+ sub sp, #0x4
+ add r5, r0, #0x0
+ bl FUN_0204652C
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_02046528
+ add r6, r0, #0x0
+ ldr r1, _02063CDC ; =0x0000271C
+ add r0, r5, #0x0
+ mov r2, #0x0
+ bl FUN_02038D10
+ mov r2, #0x0
+ str r2, [sp, #0x0]
+ ldrh r1, [r4, #0xc]
+ add r0, r6, #0x0
+ add r3, r2, #0x0
+ bl FUN_020395BC
+ add r0, r4, #0x0
+ bl FUN_02063A80
+ mov r0, #0x0
+ add sp, #0x4
+ pop {r3-r6, pc}
+ .balign 4
+_02063CDC: .word 0x0000271C
+
+ thumb_func_start FUN_02063CE0
+FUN_02063CE0: ; 0x02063CE0
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r1, [r4, #0x4]
+ ldr r0, [r1, #0x6c]
+ sub r0, r0, #0x2
+ cmp r0, #0x1
+ bhi _02063CF2
+ mov r0, #0x1
+ pop {r4, pc}
+_02063CF2:
+ ldr r0, [r1, #0xc]
+ bl FUN_020238F4
+ mov r1, #0x5
+ bl FUN_020239D0
+ cmp r0, #0x0
+ bne _02063D06
+ mov r0, #0x2
+ pop {r4, pc}
+_02063D06:
+ ldrh r1, [r4, #0xc]
+ mov r0, #0x8
+ tst r0, r1
+ beq _02063D12
+ mov r0, #0x0
+ pop {r4, pc}
+_02063D12:
+ mov r0, #0x1
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02063D18
+FUN_02063D18: ; 0x02063D18
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ ldr r0, [r5, #0x0]
+ add r6, r1, #0x0
+ bl FUN_0204652C
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ bl FUN_02063A5C
+ add r5, r0, #0x0
+ ldr r0, [r6, #0x4]
+ bl FUN_0204649C
+ mov r0, #0x72
+ ldr r1, _02063D48 ; =FUN_02063D4C
+ lsl r0, r0, #0x2
+ str r1, [r4, r0]
+ add r0, #0x30
+ str r5, [r4, r0]
+ mov r0, #0xa
+ strh r0, [r4, #0x2a]
+ pop {r4-r6, pc}
+ .balign 4
+_02063D48: .word FUN_02063D4C
+
+ thumb_func_start FUN_02063D4C
+FUN_02063D4C: ; 0x02063D4C
+ push {r3-r6, lr}
+ sub sp, #0x4
+ add r5, r0, #0x0
+ bl FUN_0204652C
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_02046528
+ add r6, r0, #0x0
+ ldr r1, _02063D84 ; =0x0000271A
+ ldr r2, [r4, #0x4]
+ add r0, r5, #0x0
+ bl FUN_02038D10
+ mov r2, #0x0
+ str r2, [sp, #0x0]
+ ldrh r1, [r4, #0xc]
+ add r0, r6, #0x0
+ add r3, r2, #0x0
+ bl FUN_020395BC
+ add r0, r4, #0x0
+ bl FUN_02063A80
+ mov r0, #0x0
+ add sp, #0x4
+ pop {r3-r6, pc}
+ .balign 4
+_02063D84: .word 0x0000271A
+
+ thumb_func_start FUN_02063D88
+FUN_02063D88: ; 0x02063D88
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r1, [r4, #0x4]
+ ldr r0, [r1, #0x6c]
+ sub r0, r0, #0x2
+ cmp r0, #0x1
+ bhi _02063D9A
+ mov r0, #0x1
+ pop {r4, pc}
+_02063D9A:
+ ldr r0, [r1, #0xc]
+ bl FUN_020238F4
+ mov r1, #0x3
+ bl FUN_020239D0
+ cmp r0, #0x0
+ bne _02063DAE
+ mov r0, #0x2
+ pop {r4, pc}
+_02063DAE:
+ ldrh r1, [r4, #0xc]
+ mov r0, #0x10
+ tst r0, r1
+ beq _02063DBA
+ mov r0, #0x0
+ pop {r4, pc}
+_02063DBA:
+ mov r0, #0x1
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02063DC0
+FUN_02063DC0: ; 0x02063DC0
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ ldr r0, [r5, #0x0]
+ add r6, r1, #0x0
+ bl FUN_0204652C
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ bl FUN_02063A5C
+ add r5, r0, #0x0
+ ldr r0, [r6, #0x4]
+ bl FUN_0204649C
+ mov r0, #0x72
+ ldr r1, _02063DF0 ; =FUN_02063DF4
+ lsl r0, r0, #0x2
+ str r1, [r4, r0]
+ add r0, #0x30
+ str r5, [r4, r0]
+ mov r0, #0xa
+ strh r0, [r4, #0x2a]
+ pop {r4-r6, pc}
+ .balign 4
+_02063DF0: .word FUN_02063DF4
+
+ thumb_func_start FUN_02063DF4
+FUN_02063DF4: ; 0x02063DF4
+ push {r3-r6, lr}
+ sub sp, #0x4
+ add r5, r0, #0x0
+ bl FUN_0204652C
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_02046528
+ add r6, r0, #0x0
+ ldr r1, _02063E2C ; =0x0000271E
+ add r0, r5, #0x0
+ mov r2, #0x0
+ bl FUN_02038D10
+ mov r2, #0x0
+ str r2, [sp, #0x0]
+ ldrh r1, [r4, #0xc]
+ add r0, r6, #0x0
+ add r3, r2, #0x0
+ bl FUN_020395BC
+ add r0, r4, #0x0
+ bl FUN_02063A80
+ mov r0, #0x0
+ add sp, #0x4
+ pop {r3-r6, pc}
+ .balign 4
+_02063E2C: .word 0x0000271E
+
+ thumb_func_start FUN_02063E30
+FUN_02063E30: ; 0x02063E30
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r1, [r4, #0x4]
+ ldr r0, [r1, #0x6c]
+ sub r0, r0, #0x2
+ cmp r0, #0x1
+ bhi _02063E42
+ mov r0, #0x1
+ pop {r4, pc}
+_02063E42:
+ ldr r0, [r1, #0xc]
+ bl FUN_020238F4
+ mov r1, #0x0
+ bl FUN_020239D0
+ cmp r0, #0x0
+ bne _02063E56
+ mov r0, #0x2
+ pop {r4, pc}
+_02063E56:
+ ldrh r1, [r4, #0xc]
+ mov r0, #0x20
+ tst r0, r1
+ beq _02063E62
+ mov r0, #0x0
+ pop {r4, pc}
+_02063E62:
+ mov r0, #0x1
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02063E68
+FUN_02063E68: ; 0x02063E68
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ ldr r0, [r5, #0x0]
+ add r6, r1, #0x0
+ bl FUN_0204652C
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ bl FUN_02063A5C
+ add r5, r0, #0x0
+ ldr r0, [r6, #0x4]
+ bl FUN_0204649C
+ mov r0, #0x72
+ ldr r1, _02063E98 ; =FUN_02063E9C
+ lsl r0, r0, #0x2
+ str r1, [r4, r0]
+ add r0, #0x30
+ str r5, [r4, r0]
+ mov r0, #0xa
+ strh r0, [r4, #0x2a]
+ pop {r4-r6, pc}
+ .balign 4
+_02063E98: .word FUN_02063E9C
+
+ thumb_func_start FUN_02063E9C
+FUN_02063E9C: ; 0x02063E9C
+ push {r3-r6, lr}
+ sub sp, #0x4
+ add r5, r0, #0x0
+ bl FUN_0204652C
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_02046528
+ add r6, r0, #0x0
+ ldr r1, _02063ED4 ; =0x00002719
+ ldr r2, [r4, #0x4]
+ add r0, r5, #0x0
+ bl FUN_02038D10
+ mov r2, #0x0
+ str r2, [sp, #0x0]
+ ldrh r1, [r4, #0xc]
+ add r0, r6, #0x0
+ add r3, r2, #0x0
+ bl FUN_020395BC
+ add r0, r4, #0x0
+ bl FUN_02063A80
+ mov r0, #0x0
+ add sp, #0x4
+ pop {r3-r6, pc}
+ .balign 4
+_02063ED4: .word 0x00002719
+
+ thumb_func_start FUN_02063ED8
+FUN_02063ED8: ; 0x02063ED8
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r1, [r4, #0x4]
+ ldr r0, [r1, #0x6c]
+ sub r0, r0, #0x2
+ cmp r0, #0x1
+ bhi _02063EEA
+ mov r0, #0x1
+ pop {r4, pc}
+_02063EEA:
+ ldr r0, [r1, #0xc]
+ bl FUN_020238F4
+ mov r1, #0x7
+ bl FUN_020239D0
+ cmp r0, #0x0
+ bne _02063EFE
+ mov r0, #0x2
+ pop {r4, pc}
+_02063EFE:
+ ldrh r1, [r4, #0xc]
+ mov r0, #0x40
+ tst r0, r1
+ beq _02063F0A
+ mov r0, #0x0
+ pop {r4, pc}
+_02063F0A:
+ mov r0, #0x1
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02063F10
+FUN_02063F10: ; 0x02063F10
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ ldr r0, [r5, #0x0]
+ add r6, r1, #0x0
+ bl FUN_0204652C
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ bl FUN_02063A5C
+ add r5, r0, #0x0
+ ldr r0, [r6, #0x4]
+ bl FUN_0204649C
+ mov r0, #0x72
+ ldr r1, _02063F40 ; =FUN_02063F44
+ lsl r0, r0, #0x2
+ str r1, [r4, r0]
+ add r0, #0x30
+ str r5, [r4, r0]
+ mov r0, #0xa
+ strh r0, [r4, #0x2a]
+ pop {r4-r6, pc}
+ .balign 4
+_02063F40: .word FUN_02063F44
+
+ thumb_func_start FUN_02063F44
+FUN_02063F44: ; 0x02063F44
+ push {r3-r6, lr}
+ sub sp, #0x4
+ add r5, r0, #0x0
+ bl FUN_0204652C
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_02046528
+ add r6, r0, #0x0
+ ldr r1, _02063F7C ; =0x0000271D
+ add r0, r5, #0x0
+ mov r2, #0x0
+ bl FUN_02038D10
+ mov r2, #0x0
+ str r2, [sp, #0x0]
+ ldrh r1, [r4, #0xc]
+ add r0, r6, #0x0
+ add r3, r2, #0x0
+ bl FUN_020395BC
+ add r0, r4, #0x0
+ bl FUN_02063A80
+ mov r0, #0x0
+ add sp, #0x4
+ pop {r3-r6, pc}
+ .balign 4
+_02063F7C: .word 0x0000271D
+
+ thumb_func_start FUN_02063F80
+FUN_02063F80: ; 0x02063F80
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r1, [r4, #0x4]
+ ldr r0, [r1, #0x6c]
+ sub r0, r0, #0x2
+ cmp r0, #0x1
+ bhi _02063F92
+ mov r0, #0x1
+ pop {r4, pc}
+_02063F92:
+ ldr r0, [r1, #0xc]
+ bl FUN_020238F4
+ mov r1, #0x6
+ bl FUN_020239D0
+ cmp r0, #0x0
+ bne _02063FA6
+ mov r0, #0x2
+ pop {r4, pc}
+_02063FA6:
+ ldrh r1, [r4, #0xc]
+ mov r0, #0x80
+ tst r0, r1
+ bne _02063FB2
+ mov r0, #0x1
+ pop {r4, pc}
+_02063FB2:
+ ldr r0, [r4, #0x4]
+ ldr r0, [r0, #0xc]
+ bl FUN_020462AC
+ bl FUN_0205ED3C
+ cmp r0, #0x1
+ bne _02063FC6
+ mov r0, #0x3
+ pop {r4, pc}
+_02063FC6:
+ mov r0, #0x0
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02063FCC
+FUN_02063FCC: ; 0x02063FCC
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ ldr r0, [r5, #0x0]
+ add r6, r1, #0x0
+ bl FUN_0204652C
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ bl FUN_02063A5C
+ add r5, r0, #0x0
+ ldr r0, [r6, #0x4]
+ bl FUN_0204649C
+ mov r0, #0x72
+ ldr r1, _02063FFC ; =FUN_02064000
+ lsl r0, r0, #0x2
+ str r1, [r4, r0]
+ add r0, #0x30
+ str r5, [r4, r0]
+ mov r0, #0xa
+ strh r0, [r4, #0x2a]
+ pop {r4-r6, pc}
+ .balign 4
+_02063FFC: .word FUN_02064000
+
+ thumb_func_start FUN_02064000
+FUN_02064000: ; 0x02064000
+ push {r3-r6, lr}
+ sub sp, #0x4
+ add r5, r0, #0x0
+ bl FUN_0204652C
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_02046528
+ add r6, r0, #0x0
+ ldr r1, _02064038 ; =0x0000271B
+ add r0, r5, #0x0
+ mov r2, #0x0
+ bl FUN_02038D10
+ mov r2, #0x0
+ str r2, [sp, #0x0]
+ ldrh r1, [r4, #0xc]
+ add r0, r6, #0x0
+ add r3, r2, #0x0
+ bl FUN_020395BC
+ add r0, r4, #0x0
+ bl FUN_02063A80
+ mov r0, #0x0
+ add sp, #0x4
+ pop {r3-r6, pc}
+ .balign 4
+_02064038: .word 0x0000271B
+
+ thumb_func_start FUN_0206403C
+FUN_0206403C: ; 0x0206403C
+ ldr r1, [r0, #0x4]
+ ldr r1, [r1, #0x6c]
+ sub r1, r1, #0x2
+ cmp r1, #0x1
+ bhi _0206404A
+ mov r0, #0x1
+ bx lr
+_0206404A:
+ ldrh r1, [r0, #0xc]
+ mov r0, #0x1
+ lsl r0, r0, #0x8
+ tst r0, r1
+ beq _02064058
+ mov r0, #0x0
+ bx lr
+_02064058:
+ mov r0, #0x1
+ bx lr
+
+ thumb_func_start FUN_0206405C
+FUN_0206405C: ; 0x0206405C
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ ldr r0, [r5, #0x0]
+ add r6, r1, #0x0
+ bl FUN_0204652C
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ bl FUN_02063A5C
+ add r5, r0, #0x0
+ ldr r0, [r6, #0x4]
+ bl FUN_0204649C
+ mov r0, #0x72
+ ldr r1, _0206408C ; =FUN_02064090
+ lsl r0, r0, #0x2
+ str r1, [r4, r0]
+ add r0, #0x30
+ str r5, [r4, r0]
+ mov r0, #0xa
+ strh r0, [r4, #0x2a]
+ pop {r4-r6, pc}
+ .balign 4
+_0206408C: .word FUN_02064090
+
+ thumb_func_start FUN_02064090
+FUN_02064090: ; 0x02064090
+ push {r3-r6, lr}
+ sub sp, #0x4
+ add r5, r0, #0x0
+ bl FUN_0204652C
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_02046528
+ add r6, r0, #0x0
+ ldr r1, _020640C8 ; =0x0000271F
+ add r0, r5, #0x0
+ mov r2, #0x0
+ bl FUN_02038D10
+ mov r2, #0x0
+ str r2, [sp, #0x0]
+ ldrh r1, [r4, #0xc]
+ add r0, r6, #0x0
+ add r3, r2, #0x0
+ bl FUN_020395BC
+ add r0, r4, #0x0
+ bl FUN_02063A80
+ mov r0, #0x0
+ add sp, #0x4
+ pop {r3-r6, pc}
+ .balign 4
+_020640C8: .word 0x0000271F
+
+ thumb_func_start FUN_020640CC
+FUN_020640CC: ; 0x020640CC
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r0, [r4, #0x4]
+ ldr r0, [r0, #0x6c]
+ sub r0, r0, #0x2
+ cmp r0, #0x1
+ bhi _020640DE
+ mov r0, #0x1
+ pop {r4, pc}
+_020640DE:
+ ldr r0, [r4, #0x0]
+ bl FUN_020348E4
+ cmp r0, #0x0
+ bne _020640EC
+ mov r0, #0x1
+ pop {r4, pc}
+_020640EC:
+ ldr r0, [r4, #0x4]
+ ldr r0, [r0, #0xc]
+ bl FUN_020462AC
+ bl FUN_0205ED3C
+ cmp r0, #0x1
+ bne _02064100
+ mov r0, #0x3
+ pop {r4, pc}
+_02064100:
+ ldr r0, [r4, #0x4]
+ ldr r0, [r0, #0xc]
+ bl FUN_020462AC
+ bl FUN_0205F214
+ cmp r0, #0x1
+ beq _02064120
+ ldr r0, [r4, #0x4]
+ ldr r0, [r0, #0xc]
+ bl FUN_020462AC
+ bl FUN_0205F244
+ cmp r0, #0x1
+ bne _02064124
+_02064120:
+ mov r0, #0x1
+ b _02064126
+_02064124:
+ mov r0, #0x0
+_02064126:
+ cmp r0, #0x1
+ bne _0206412E
+ mov r0, #0x1
+ pop {r4, pc}
+_0206412E:
+ mov r0, #0x0
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02064134
+FUN_02064134: ; 0x02064134
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ ldr r0, [r5, #0x0]
+ bl FUN_02046528
+ add r6, r0, #0x0
+ ldr r0, [r5, #0x0]
+ bl FUN_0204652C
+ add r4, r0, #0x0
+ add r0, r6, #0x0
+ bl FUN_0204649C
+ ldrh r1, [r5, #0x4]
+ ldr r2, [r6, #0xc]
+ mov r0, #0xb
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ bl FUN_0206439C
+ mov r1, #0x72
+ ldr r2, _02064170 ; =FUN_02064174
+ lsl r1, r1, #0x2
+ str r2, [r4, r1]
+ add r1, #0x30
+ str r0, [r4, r1]
+ mov r0, #0xa
+ strh r0, [r4, #0x2a]
+ pop {r4-r6, pc}
+ nop
+_02064170: .word FUN_02064174
+
+ thumb_func_start FUN_02064174
+FUN_02064174: ; 0x02064174
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ bl FUN_02046528
+ add r6, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_0204652C
+ add r4, r0, #0x0
+ ldr r1, [r4, #0x0]
+ add r0, r6, #0x0
+ mov r2, #0x4
+ bl FUN_0224CB30
+ add r6, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ ldr r1, _020641A8 ; =0x0224CB55
+ add r0, r5, #0x0
+ add r2, r6, #0x0
+ bl FUN_020463EC
+ mov r0, #0x0
+ pop {r4-r6, pc}
+ nop
+_020641A8: .word 0x0224CB55
+
+ thumb_func_start FUN_020641AC
+FUN_020641AC: ; 0x020641AC
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r0, [r4, #0x4]
+ ldr r0, [r0, #0x6c]
+ sub r0, r0, #0x2
+ cmp r0, #0x1
+ bhi _020641BE
+ mov r0, #0x1
+ pop {r4, pc}
+_020641BE:
+ ldr r0, [r4, #0x0]
+ bl FUN_02034930
+ cmp r0, #0x1
+ bne _020641D2
+ ldr r0, [r4, #0x0]
+ bl FUN_0203487C
+ cmp r0, #0x1
+ beq _020641D6
+_020641D2:
+ mov r0, #0x1
+ pop {r4, pc}
+_020641D6:
+ ldr r0, [r4, #0x4]
+ ldr r0, [r0, #0xc]
+ bl FUN_020462AC
+ bl FUN_0205ED3C
+ cmp r0, #0x1
+ bne _020641EA
+ mov r0, #0x3
+ pop {r4, pc}
+_020641EA:
+ mov r0, #0x0
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_020641F0
+FUN_020641F0: ; 0x020641F0
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ ldr r0, [r5, #0x0]
+ bl FUN_02046528
+ add r6, r0, #0x0
+ ldr r0, [r5, #0x0]
+ bl FUN_0204652C
+ add r4, r0, #0x0
+ add r0, r6, #0x0
+ bl FUN_0204649C
+ ldrh r1, [r5, #0x4]
+ ldr r2, [r6, #0xc]
+ mov r0, #0xb
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ bl FUN_0206439C
+ mov r1, #0x72
+ ldr r2, _0206422C ; =FUN_02064230
+ lsl r1, r1, #0x2
+ str r2, [r4, r1]
+ add r1, #0x30
+ str r0, [r4, r1]
+ mov r0, #0xa
+ strh r0, [r4, #0x2a]
+ pop {r4-r6, pc}
+ nop
+_0206422C: .word FUN_02064230
+
+ thumb_func_start FUN_02064230
+FUN_02064230: ; 0x02064230
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ bl FUN_02046528
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_0204652C
+ add r6, r0, #0x0
+ ldr r1, [r6, #0x0]
+ add r0, r4, #0x0
+ mov r2, #0xb
+ bl FUN_0224CA88
+ ldr r1, [r4, #0x1c]
+ add r7, r0, #0x0
+ ldr r1, [r1, #0x0]
+ mov r0, #0xa
+ lsl r1, r1, #0x10
+ lsr r1, r1, #0x10
+ mov r2, #0x4
+ bl FUN_0202914C
+ add r4, #0x98
+ add r1, r0, #0x0
+ ldr r0, [r4, #0x0]
+ mov r2, #0x1
+ bl FUN_02028AD4
+ add r0, r6, #0x0
+ bl FUN_02016A18
+ ldr r1, _02064280 ; =0x0224CAAD
+ add r0, r5, #0x0
+ add r2, r7, #0x0
+ bl FUN_020463EC
+ mov r0, #0x0
+ pop {r3-r7, pc}
+ nop
+_02064280: .word 0x0224CAAD
+
+ thumb_func_start FUN_02064284
+FUN_02064284: ; 0x02064284
+ push {r3, lr}
+ ldr r1, [r0, #0x4]
+ ldr r0, [r1, #0x6c]
+ sub r0, r0, #0x2
+ cmp r0, #0x1
+ bhi _02064294
+ mov r0, #0x1
+ pop {r3, pc}
+_02064294:
+ ldr r0, [r1, #0xc]
+ bl FUN_020462AC
+ bl FUN_0205F244
+ cmp r0, #0x1
+ bne _020642A6
+ mov r0, #0x1
+ b _020642A8
+_020642A6:
+ mov r0, #0x0
+_020642A8:
+ cmp r0, #0x1
+ bne _020642B0
+ mov r0, #0x1
+ pop {r3, pc}
+_020642B0:
+ mov r0, #0x0
+ pop {r3, pc}
+
+ thumb_func_start FUN_020642B4
+FUN_020642B4: ; 0x020642B4
+ push {r4-r6, lr}
+ add r6, r0, #0x0
+ ldr r0, [r6, #0x0]
+ bl FUN_02046528
+ add r5, r0, #0x0
+ ldr r0, [r6, #0x0]
+ bl FUN_0204652C
+ ldrh r1, [r6, #0x4]
+ add r4, r0, #0x0
+ ldr r2, [r5, #0xc]
+ lsl r1, r1, #0x18
+ mov r0, #0xb
+ lsr r1, r1, #0x18
+ bl FUN_0206439C
+ add r6, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_0204649C
+ mov r0, #0x72
+ ldr r1, _0206430C ; =0x021F6361
+ lsl r0, r0, #0x2
+ str r1, [r4, r0]
+ add r0, #0x30
+ str r6, [r4, r0]
+ mov r0, #0xa
+ strh r0, [r4, #0x2a]
+ ldr r1, [r5, #0x1c]
+ mov r0, #0xb
+ ldr r1, [r1, #0x0]
+ add r2, r0, #0x0
+ lsl r1, r1, #0x10
+ lsr r1, r1, #0x10
+ bl FUN_0202914C
+ add r5, #0x98
+ add r1, r0, #0x0
+ ldr r0, [r5, #0x0]
+ mov r2, #0x1
+ bl FUN_02028AD4
+ pop {r4-r6, pc}
+ .balign 4
+_0206430C: .word 0x021F6361
+
+ thumb_func_start FUN_02064310
+FUN_02064310: ; 0x02064310
+ ldr r0, [r0, #0x4]
+ ldr r0, [r0, #0x6c]
+ sub r0, r0, #0x2
+ cmp r0, #0x1
+ bhi _0206431E
+ mov r0, #0x1
+ bx lr
+_0206431E:
+ mov r0, #0x0
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02064324
+FUN_02064324: ; 0x02064324
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ ldr r0, [r5, #0x0]
+ add r6, r1, #0x0
+ bl FUN_02046528
+ add r7, r0, #0x0
+ ldr r0, [r5, #0x0]
+ bl FUN_0204652C
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ bl FUN_02063A5C
+ add r5, r0, #0x0
+ add r0, r7, #0x0
+ bl FUN_0204649C
+ mov r0, #0x72
+ ldr r1, _0206435C ; =FUN_02064360
+ lsl r0, r0, #0x2
+ str r1, [r4, r0]
+ add r0, #0x30
+ str r5, [r4, r0]
+ mov r0, #0xa
+ strh r0, [r4, #0x2a]
+ pop {r3-r7, pc}
+ .balign 4
+_0206435C: .word FUN_02064360
+
+ thumb_func_start FUN_02064360
+FUN_02064360: ; 0x02064360
+ push {r3-r6, lr}
+ sub sp, #0x4
+ add r5, r0, #0x0
+ bl FUN_0204652C
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_02046528
+ add r6, r0, #0x0
+ ldr r1, _02064398 ; =0x000022C4
+ add r0, r5, #0x0
+ mov r2, #0x0
+ bl FUN_02038D10
+ mov r2, #0x0
+ str r2, [sp, #0x0]
+ ldrh r1, [r4, #0xc]
+ add r0, r6, #0x0
+ add r3, r2, #0x0
+ bl FUN_020395BC
+ add r0, r4, #0x0
+ bl FUN_02063A80
+ mov r0, #0x0
+ add sp, #0x4
+ pop {r3-r6, pc}
+ .balign 4
+_02064398: .word 0x000022C4
+
+ thumb_func_start FUN_0206439C
+FUN_0206439C: ; 0x0206439C
+ push {r4-r6, lr}
+ add r5, r1, #0x0
+ add r6, r2, #0x0
+ mov r1, #0x8
+ bl FUN_020169D8
+ add r4, r0, #0x0
+ add r0, r6, #0x0
+ bl FUN_0206BB1C
+ add r1, r5, #0x0
+ bl FUN_0206B9B0
+ str r0, [r4, #0x0]
+ mov r0, #0x0
+ str r0, [r4, #0x4]
+ add r0, r4, #0x0
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_020643C0
+FUN_020643C0: ; 0x020643C0
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ add r6, r1, #0x0
+ bl FUN_020645DC
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ bl FUN_0206460C
+ str r0, [r4, #0xc]
+ str r6, [r4, #0x0]
+ str r5, [r4, #0x8]
+ add r0, r4, #0x0
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_020643E0
+FUN_020643E0: ; 0x020643E0
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl FUN_02064630
+ add r0, r4, #0x0
+ bl FUN_02064600
+ pop {r4, pc}
+
+ thumb_func_start FUN_020643F0
+FUN_020643F0: ; 0x020643F0
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl FUN_02064558
+ add r0, r4, #0x0
+ bl FUN_020643E0
+ pop {r4, pc}
+
+ thumb_func_start FUN_02064400
+FUN_02064400: ; 0x02064400
+ push {r4-r7, lr}
+ sub sp, #0xc
+ str r0, [sp, #0x0]
+ add r7, r1, #0x0
+ str r2, [sp, #0x4]
+ str r3, [sp, #0x8]
+ mov r4, #0x0
+ bl FUN_02064698
+ add r6, r0, #0x0
+ ldr r0, [sp, #0x0]
+ bl FUN_0206469C
+ add r5, r0, #0x0
+_0206441C:
+ add r0, r5, #0x0
+ bl FUN_020646A0
+ cmp r0, #0x0
+ beq _0206442E
+ add r4, r4, #0x1
+ add r5, #0xc8
+ cmp r4, r6
+ blt _0206441C
+_0206442E:
+ cmp r4, r6
+ blt _02064438
+ add sp, #0xc
+ mov r0, #0x0
+ pop {r4-r7, pc}
+_02064438:
+ add r0, r5, #0x0
+ bl FUN_020646AC
+ ldr r1, [sp, #0x8]
+ add r0, r5, #0x0
+ bl FUN_02064750
+ ldr r1, [sp, #0x20]
+ add r0, r5, #0x0
+ bl FUN_02064758
+ ldr r1, [sp, #0x0]
+ add r0, r5, #0x0
+ bl FUN_02064768
+ ldr r1, [sp, #0x4]
+ add r0, r5, #0x0
+ bl FUN_0206476C
+ ldr r1, [r7, #0x0]
+ add r0, r5, #0x0
+ bl FUN_0206473C
+ ldr r1, [r7, #0x4]
+ add r0, r5, #0x0
+ bl FUN_020646B8
+ ldr r1, [r7, #0x8]
+ add r0, r5, #0x0
+ bl FUN_0206470C
+ ldr r1, [r7, #0xc]
+ add r0, r5, #0x0
+ bl FUN_020646D4
+ ldr r1, [r7, #0x10]
+ add r0, r5, #0x0
+ bl FUN_020646F0
+ ldr r1, [r7, #0x14]
+ add r0, r5, #0x0
+ bl FUN_02064728
+ ldr r1, [r7, #0x18]
+ add r0, r5, #0x0
+ bl FUN_02064730
+ ldr r1, [sp, #0x24]
+ add r0, r5, #0x0
+ bl FUN_020645B0
+ add r4, r0, #0x0
+ bne _020644AE
+ add r0, r5, #0x0
+ bl FUN_02064640
+ add sp, #0xc
+ mov r0, #0x0
+ pop {r4-r7, pc}
+_020644AE:
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_02064760
+ add r0, r5, #0x0
+ bl FUN_020646C0
+ cmp r0, #0x0
+ bne _020644D2
+ add r0, r4, #0x0
+ bl FUN_0200CAB4
+ add r0, r5, #0x0
+ bl FUN_02064640
+ add sp, #0xc
+ mov r0, #0x0
+ pop {r4-r7, pc}
+_020644D2:
+ ldr r0, [sp, #0x0]
+ ldr r0, [r0, #0x4]
+ add r1, r0, #0x1
+ ldr r0, [sp, #0x0]
+ str r1, [r0, #0x4]
+ add r0, r5, #0x0
+ add sp, #0xc
+ pop {r4-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_020644E4
+FUN_020644E4: ; 0x020644E4
+ push {r4-r7, lr}
+ sub sp, #0x24
+ add r5, r1, #0x0
+ add r6, r0, #0x0
+ add r4, sp, #0x8
+ ldmia r5!, {r0-r1}
+ add r7, r4, #0x0
+ stmia r4!, {r0-r1}
+ ldmia r5!, {r0-r1}
+ stmia r4!, {r0-r1}
+ ldr r0, [r5, #0x0]
+ add r1, r7, #0x0
+ str r0, [r4, #0x0]
+ ldr r0, _02064518 ; =FUN_0206479C
+ str r0, [sp, #0x1c]
+ ldr r0, _0206451C ; =FUN_020647A0
+ str r0, [sp, #0x20]
+ ldr r0, [sp, #0x38]
+ str r0, [sp, #0x0]
+ ldr r0, [sp, #0x3c]
+ str r0, [sp, #0x4]
+ add r0, r6, #0x0
+ bl FUN_02064400
+ add sp, #0x24
+ pop {r4-r7, pc}
+ .balign 4
+_02064518: .word FUN_0206479C
+_0206451C: .word FUN_020647A0
+
+ thumb_func_start FUN_02064520
+FUN_02064520: ; 0x02064520
+ push {r4, lr}
+ add r4, r0, #0x0
+ bne _0206452A
+ bl ErrorHandling
+_0206452A:
+ add r0, r4, #0x0
+ bl FUN_020646A0
+ cmp r0, #0x0
+ beq _02064556
+ add r0, r4, #0x0
+ bl FUN_02064714
+ ldr r1, [r4, #0x14]
+ ldr r0, [r1, #0x4]
+ sub r0, r0, #0x1
+ str r0, [r1, #0x4]
+ add r0, r4, #0x0
+ bl FUN_02064764
+ cmp r0, #0x0
+ beq _02064550
+ bl FUN_0200CAB4
+_02064550:
+ add r0, r4, #0x0
+ bl FUN_02064640
+_02064556:
+ pop {r4, pc}
+
+ thumb_func_start FUN_02064558
+FUN_02064558: ; 0x02064558
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ bl FUN_02064698
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_0206469C
+ add r5, r0, #0x0
+_0206456A:
+ add r0, r5, #0x0
+ bl FUN_020646A0
+ cmp r0, #0x1
+ bne _0206457A
+ add r0, r5, #0x0
+ bl FUN_02064520
+_0206457A:
+ add r5, #0xc8
+ sub r4, r4, #0x1
+ bne _0206456A
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_02064584
+FUN_02064584: ; 0x02064584
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ bl FUN_02064698
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_0206469C
+ add r5, r0, #0x0
+_02064596:
+ add r0, r5, #0x0
+ bl FUN_020646A0
+ cmp r0, #0x1
+ bne _020645A6
+ add r0, r5, #0x0
+ bl FUN_020646F8
+_020645A6:
+ add r5, #0xc8
+ sub r4, r4, #0x1
+ bne _02064596
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_020645B0
+FUN_020645B0: ; 0x020645B0
+ push {r4, lr}
+ add r3, r0, #0x0
+ add r2, r1, #0x0
+ ldr r0, _020645CC ; =FUN_020645D0
+ add r1, r3, #0x0
+ bl FUN_0200CA44
+ add r4, r0, #0x0
+ bne _020645C6
+ bl ErrorHandling
+_020645C6:
+ add r0, r4, #0x0
+ pop {r4, pc}
+ nop
+_020645CC: .word FUN_020645D0
+
+ thumb_func_start FUN_020645D0
+FUN_020645D0: ; 0x020645D0
+ ldr r3, _020645D8 ; =FUN_020646DC
+ add r0, r1, #0x0
+ bx r3
+ nop
+_020645D8: .word FUN_020646DC
+
+ thumb_func_start FUN_020645DC
+FUN_020645DC: ; 0x020645DC
+ push {r4, lr}
+ mov r1, #0x10
+ bl FUN_02016998
+ add r4, r0, #0x0
+ bne _020645EC
+ bl ErrorHandling
+_020645EC:
+ add r2, r4, #0x0
+ mov r1, #0x10
+ mov r0, #0x0
+_020645F2:
+ strb r0, [r2, #0x0]
+ add r2, r2, #0x1
+ sub r1, r1, #0x1
+ bne _020645F2
+ add r0, r4, #0x0
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02064600
+FUN_02064600: ; 0x02064600
+ ldr r3, _02064608 ; =FUN_02016A8C
+ add r1, r0, #0x0
+ ldr r0, [r1, #0x8]
+ bx r3
+ .balign 4
+_02064608: .word FUN_02016A8C
+
+ thumb_func_start FUN_0206460C
+FUN_0206460C: ; 0x0206460C
+ push {r3-r5, lr}
+ mov r2, #0xc8
+ add r5, r1, #0x0
+ mul r5, r2
+ add r1, r5, #0x0
+ bl FUN_02016998
+ add r4, r0, #0x0
+ bne _02064622
+ bl ErrorHandling
+_02064622:
+ add r0, r4, #0x0
+ mov r1, #0x0
+ add r2, r5, #0x0
+ blx Call_FillMemWithValue
+ add r0, r4, #0x0
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_02064630
+FUN_02064630: ; 0x02064630
+ ldr r3, _0206463C ; =FUN_02016A8C
+ add r1, r0, #0x0
+ ldr r0, [r1, #0x8]
+ ldr r1, [r1, #0xc]
+ bx r3
+ nop
+_0206463C: .word FUN_02016A8C
+
+ thumb_func_start FUN_02064640
+FUN_02064640: ; 0x02064640
+ push {r4, lr}
+ mov r1, #0x0
+ mov r2, #0xc8
+ add r4, r0, #0x0
+ blx Call_FillMemWithValue
+ ldr r1, _02064680 ; =FUN_0206478C
+ add r0, r4, #0x0
+ bl FUN_020646B8
+ ldr r1, _02064684 ; =FUN_02064798
+ add r0, r4, #0x0
+ bl FUN_0206470C
+ ldr r1, _02064688 ; =FUN_02064790
+ add r0, r4, #0x0
+ bl FUN_020646D4
+ ldr r1, _0206468C ; =FUN_02064794
+ add r0, r4, #0x0
+ bl FUN_020646F0
+ ldr r1, _02064690 ; =FUN_0206479C
+ add r0, r4, #0x0
+ bl FUN_02064728
+ ldr r1, _02064694 ; =FUN_020647A0
+ add r0, r4, #0x0
+ bl FUN_02064730
+ pop {r4, pc}
+ nop
+_02064680: .word FUN_0206478C
+_02064684: .word FUN_02064798
+_02064688: .word FUN_02064790
+_0206468C: .word FUN_02064794
+_02064690: .word FUN_0206479C
+_02064694: .word FUN_020647A0
+
+ thumb_func_start FUN_02064698
+FUN_02064698: ; 0x02064698
+ ldr r0, [r0, #0x0]
+ bx lr
+
+ thumb_func_start FUN_0206469C
+FUN_0206469C: ; 0x0206469C
+ ldr r0, [r0, #0xc]
+ bx lr
+
+ thumb_func_start FUN_020646A0
+FUN_020646A0: ; 0x020646A0
+ ldr r1, [r0, #0x0]
+ mov r0, #0x1
+ tst r1, r0
+ bne _020646AA
+ mov r0, #0x0
+_020646AA:
+ bx lr
+
+ thumb_func_start FUN_020646AC
+FUN_020646AC: ; 0x020646AC
+ ldr r2, [r0, #0x0]
+ mov r1, #0x1
+ orr r1, r2
+ str r1, [r0, #0x0]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_020646B8
+FUN_020646B8: ; 0x020646B8
+ add r0, #0xb0
+ str r1, [r0, #0x0]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_020646C0
+FUN_020646C0: ; 0x020646C0
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl FUN_02064738
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ add r4, #0xb0
+ ldr r2, [r4, #0x0]
+ blx r2
+ pop {r4, pc}
+
+ thumb_func_start FUN_020646D4
+FUN_020646D4: ; 0x020646D4
+ add r0, #0xb4
+ str r1, [r0, #0x0]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_020646DC
+FUN_020646DC: ; 0x020646DC
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl FUN_02064738
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ add r4, #0xb4
+ ldr r2, [r4, #0x0]
+ blx r2
+ pop {r4, pc}
+
+ thumb_func_start FUN_020646F0
+FUN_020646F0: ; 0x020646F0
+ add r0, #0xb8
+ str r1, [r0, #0x0]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_020646F8
+FUN_020646F8: ; 0x020646F8
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl FUN_02064738
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ add r4, #0xb8
+ ldr r2, [r4, #0x0]
+ blx r2
+ pop {r4, pc}
+
+ thumb_func_start FUN_0206470C
+FUN_0206470C: ; 0x0206470C
+ add r0, #0xbc
+ str r1, [r0, #0x0]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02064714
+FUN_02064714: ; 0x02064714
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl FUN_02064738
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ add r4, #0xbc
+ ldr r2, [r4, #0x0]
+ blx r2
+ pop {r4, pc}
+
+ thumb_func_start FUN_02064728
+FUN_02064728: ; 0x02064728
+ add r0, #0xc0
+ str r1, [r0, #0x0]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02064730
+FUN_02064730: ; 0x02064730
+ add r0, #0xc4
+ str r1, [r0, #0x0]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02064738
+FUN_02064738: ; 0x02064738
+ add r0, #0x30
+ bx lr
+
+ thumb_func_start FUN_0206473C
+FUN_0206473C: ; 0x0206473C
+ push {r4, lr}
+ add r4, r1, #0x0
+ bl FUN_02064738
+ mov r1, #0x0
+ add r2, r4, #0x0
+ blx Call_FillMemWithValue
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02064750
+FUN_02064750: ; 0x02064750
+ str r1, [r0, #0x4]
+ bx lr
+
+ thumb_func_start FUN_02064754
+FUN_02064754: ; 0x02064754
+ ldr r0, [r0, #0x4]
+ bx lr
+
+ thumb_func_start FUN_02064758
+FUN_02064758: ; 0x02064758
+ str r1, [r0, #0xc]
+ bx lr
+
+ thumb_func_start FUN_0206475C
+FUN_0206475C: ; 0x0206475C
+ ldr r0, [r0, #0xc]
+ bx lr
+
+ thumb_func_start FUN_02064760
+FUN_02064760: ; 0x02064760
+ str r1, [r0, #0x10]
+ bx lr
+
+ thumb_func_start FUN_02064764
+FUN_02064764: ; 0x02064764
+ ldr r0, [r0, #0x10]
+ bx lr
+
+ thumb_func_start FUN_02064768
+FUN_02064768: ; 0x02064768
+ str r1, [r0, #0x14]
+ bx lr
+
+ thumb_func_start FUN_0206476C
+FUN_0206476C: ; 0x0206476C
+ add r3, r1, #0x0
+ add r2, r0, #0x0
+ ldmia r3!, {r0-r1}
+ add r2, #0x24
+ stmia r2!, {r0-r1}
+ ldr r0, [r3, #0x0]
+ str r0, [r2, #0x0]
+ bx lr
+
+ thumb_func_start FUN_0206477C
+FUN_0206477C: ; 0x0206477C
+ add r2, r0, #0x0
+ add r2, #0x24
+ add r3, r1, #0x0
+ ldmia r2!, {r0-r1}
+ stmia r3!, {r0-r1}
+ ldr r0, [r2, #0x0]
+ str r0, [r3, #0x0]
+ bx lr
+
+ thumb_func_start FUN_0206478C
+FUN_0206478C: ; 0x0206478C
+ mov r0, #0x1
+ bx lr
+
+ thumb_func_start FUN_02064790
+FUN_02064790: ; 0x02064790
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02064794
+FUN_02064794: ; 0x02064794
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02064798
+FUN_02064798: ; 0x02064798
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_0206479C
+FUN_0206479C: ; 0x0206479C
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_020647A0
+FUN_020647A0: ; 0x020647A0
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_020647A4
+FUN_020647A4: ; 0x020647A4
+ push {r3-r7, lr}
+ sub sp, #0x30
+ add r4, r0, #0x0
+ bl FUN_020377AC
+ bl FUN_02024ED8
+ mov r1, #0x7
+ bl FUN_020254A0
+ ldrh r1, [r0, #0x2]
+ ldrh r0, [r0, #0x0]
+ ldr r3, _0206485C ; =0x020F7D70
+ mov r7, #0x18
+ add r2, r1, #0x0
+ mul r2, r7
+ add r6, r3, r2
+ lsl r0, r0, #0x2
+ ldr r5, [r6, r0]
+ ldr r0, [r6, #0x14]
+ cmp r0, #0x0
+ beq _0206480A
+ ldr r3, _02064860 ; =0x020F7D64
+ add r2, sp, #0x24
+ ldmia r3!, {r0-r1}
+ mov r12, r2
+ stmia r2!, {r0-r1}
+ ldr r0, [r3, #0x0]
+ add r7, #0xea
+ str r0, [r2, #0x0]
+ str r5, [sp, #0x28]
+ mov r0, #0x0
+ str r0, [sp, #0x0]
+ ldr r0, [r4, #0x4c]
+ add r2, r7, #0x0
+ str r0, [sp, #0x4]
+ add r0, r4, #0x0
+ add r0, #0xa0
+ ldr r0, [r0, #0x0]
+ ldr r1, [r4, #0x2c]
+ mov r3, r12
+ bl FUN_021E7FBC
+ add r0, r4, #0x0
+ add r0, #0xa0
+ ldr r0, [r0, #0x0]
+ ldr r1, _02064864 ; =0x00000102
+ bl FUN_021E7ED8
+ str r0, [sp, #0x14]
+ b _0206482C
+_0206480A:
+ ldr r0, _02064868 ; =0x020F7D4C
+ add r1, sp, #0xc
+ ldr r2, [r0, #0x8]
+ ldr r0, [r0, #0xc]
+ str r2, [sp, #0xc]
+ str r0, [sp, #0x10]
+ mov r0, #0x0
+ str r0, [sp, #0x0]
+ add r0, r4, #0x0
+ mov r2, #0x2
+ add r3, sp, #0x14
+ bl FUN_0204AA5C
+ cmp r0, #0x0
+ bne _0206482C
+ bl ErrorHandling
+_0206482C:
+ ldr r1, [sp, #0x14]
+ add r0, sp, #0x18
+ bl FUN_021E7EA0
+ ldr r0, [sp, #0x14]
+ add r1, sp, #0x18
+ str r5, [sp, #0x1c]
+ bl FUN_021E7EB0
+ mov r0, #0x2
+ str r0, [sp, #0x0]
+ str r5, [sp, #0x4]
+ add r4, #0x9c
+ ldr r0, [r4, #0x0]
+ mov r3, #0x3
+ str r0, [sp, #0x8]
+ ldr r1, [r6, #0x8]
+ ldr r2, [r6, #0xc]
+ mov r0, #0x0
+ bl FUN_021F44D8
+ add sp, #0x30
+ pop {r3-r7, pc}
+ nop
+_0206485C: .word 0x020F7D70
+_02064860: .word 0x020F7D64
+_02064864: .word 0x00000102
+_02064868: .word 0x020F7D4C
+
+ thumb_func_start FUN_0206486C
+FUN_0206486C: ; 0x0206486C
+ push {r3-r5, lr}
+ add r4, r0, #0x0
+ bl FUN_020377AC
+ bl FUN_02024ED8
+ add r5, r0, #0x0
+ mov r1, #0x7
+ bl FUN_02025490
+ add r0, r5, #0x0
+ mov r1, #0x7
+ bl FUN_020254A0
+ mov r3, #0x1
+ str r3, [r0, #0x4]
+ mov r2, #0x0
+ str r2, [r0, #0x8]
+ ldr r4, [r4, #0x1c]
+ ldr r5, _020649A8 ; =0x00000123
+ ldr r1, [r4, #0x0]
+ cmp r1, r5
+ bgt _020648C4
+ bge _020648D6
+ add r5, r1, #0x0
+ sub r5, #0xb0
+ cmp r5, #0x9
+ bhi _020649A0
+ add r5, r5, r5
+ add r5, pc
+ ldrh r5, [r5, #0x6]
+ lsl r5, r5, #0x10
+ asr r5, r5, #0x10
+ add pc, r5
+_020648B0: ; jump table (using 16-bit offset)
+ .short _02064910 - _020648B0 - 2; case 0
+ .short _020649A0 - _020648B0 - 2; case 1
+ .short _02064928 - _020648B0 - 2; case 2
+ .short _020649A0 - _020648B0 - 2; case 3
+ .short _02064940 - _020648B0 - 2; case 4
+ .short _020649A0 - _020648B0 - 2; case 5
+ .short _02064958 - _020648B0 - 2; case 6
+ .short _020649A0 - _020648B0 - 2; case 7
+ .short _02064970 - _020648B0 - 2; case 8
+ .short _02064988 - _020648B0 - 2; case 9
+_020648C4:
+ ldr r2, _020649AC ; =0x00000125
+ cmp r1, r2
+ bgt _020648CE
+ beq _020648E8
+ b _020649A0
+_020648CE:
+ add r2, r2, #0x1
+ cmp r1, r2
+ beq _020648FC
+ b _020649A0
+_020648D6:
+ ldr r1, [r4, #0xc]
+ cmp r1, #0x1a
+ bne _020648E0
+ strh r2, [r0, #0x0]
+ b _020648E2
+_020648E0:
+ strh r3, [r0, #0x0]
+_020648E2:
+ mov r1, #0x0
+ strh r1, [r0, #0x2]
+ pop {r3-r5, pc}
+_020648E8:
+ ldr r1, [r4, #0xc]
+ cmp r1, #0x30
+ bne _020648F2
+ mov r1, #0x0
+ b _020648F4
+_020648F2:
+ mov r1, #0x1
+_020648F4:
+ strh r1, [r0, #0x0]
+ mov r1, #0x1
+ strh r1, [r0, #0x2]
+ pop {r3-r5, pc}
+_020648FC:
+ ldr r1, [r4, #0xc]
+ cmp r1, #0xf
+ bne _02064906
+ mov r1, #0x0
+ b _02064908
+_02064906:
+ mov r1, #0x1
+_02064908:
+ strh r1, [r0, #0x0]
+ mov r1, #0x2
+ strh r1, [r0, #0x2]
+ pop {r3-r5, pc}
+_02064910:
+ ldr r1, [r4, #0xc]
+ cmp r1, #0xf
+ bne _0206491A
+ strh r2, [r0, #0x0]
+ b _0206491E
+_0206491A:
+ strh r3, [r0, #0x0]
+ str r2, [r0, #0x4]
+_0206491E:
+ mov r1, #0x3
+ strh r1, [r0, #0x2]
+ mov r1, #0x1
+ str r1, [r0, #0x8]
+ pop {r3-r5, pc}
+_02064928:
+ ldr r1, [r4, #0xc]
+ cmp r1, #0xf
+ bne _02064932
+ strh r2, [r0, #0x0]
+ b _02064936
+_02064932:
+ strh r3, [r0, #0x0]
+ str r2, [r0, #0x4]
+_02064936:
+ mov r1, #0x4
+ strh r1, [r0, #0x2]
+ mov r1, #0x1
+ str r1, [r0, #0x8]
+ pop {r3-r5, pc}
+_02064940:
+ ldr r1, [r4, #0xc]
+ cmp r1, #0xf
+ bne _0206494A
+ strh r2, [r0, #0x0]
+ b _0206494E
+_0206494A:
+ strh r3, [r0, #0x0]
+ str r2, [r0, #0x4]
+_0206494E:
+ mov r1, #0x5
+ strh r1, [r0, #0x2]
+ mov r1, #0x1
+ str r1, [r0, #0x8]
+ pop {r3-r5, pc}
+_02064958:
+ ldr r1, [r4, #0xc]
+ cmp r1, #0xf
+ bne _02064962
+ strh r2, [r0, #0x0]
+ b _02064966
+_02064962:
+ strh r3, [r0, #0x0]
+ str r2, [r0, #0x4]
+_02064966:
+ mov r1, #0x6
+ strh r1, [r0, #0x2]
+ mov r1, #0x1
+ str r1, [r0, #0x8]
+ pop {r3-r5, pc}
+_02064970:
+ ldr r1, [r4, #0xc]
+ cmp r1, #0x17
+ bne _0206497A
+ strh r2, [r0, #0x0]
+ b _0206497E
+_0206497A:
+ strh r3, [r0, #0x0]
+ str r2, [r0, #0x4]
+_0206497E:
+ mov r1, #0x7
+ strh r1, [r0, #0x2]
+ mov r1, #0x1
+ str r1, [r0, #0x8]
+ pop {r3-r5, pc}
+_02064988:
+ ldr r1, [r4, #0xc]
+ cmp r1, #0x12
+ bne _02064992
+ strh r2, [r0, #0x0]
+ b _02064996
+_02064992:
+ strh r3, [r0, #0x0]
+ str r2, [r0, #0x4]
+_02064996:
+ mov r1, #0x8
+ strh r1, [r0, #0x2]
+ mov r1, #0x1
+ str r1, [r0, #0x8]
+ pop {r3-r5, pc}
+_020649A0:
+ bl ErrorHandling
+ pop {r3-r5, pc}
+ nop
+_020649A8: .word 0x00000123
+_020649AC: .word 0x00000125
+
+ thumb_func_start FUN_020649B0
+FUN_020649B0: ; 0x020649B0
+ push {r3, lr}
+ bl FUN_020377AC
+ bl FUN_02024ED8
+ mov r1, #0x7
+ bl FUN_020254A0
+ ldr r0, [r0, #0x4]
+ cmp r0, #0x0
+ beq _020649CA
+ mov r0, #0x1
+ b _020649CC
+_020649CA:
+ mov r0, #0x0
+_020649CC:
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_020649D4
+FUN_020649D4: ; 0x020649D4
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ bl FUN_020377AC
+ bl FUN_02024ED8
+ mov r1, #0x7
+ bl FUN_020254A0
+ add r4, r0, #0x0
+ ldrh r1, [r4, #0x2]
+ mov r0, #0x18
+ add r2, r1, #0x0
+ mul r2, r0
+ ldr r0, _02064A58 ; =0x020F7D80
+ ldr r0, [r0, r2]
+ cmp r0, #0x0
+ beq _020649FE
+ ldrh r0, [r4, #0x0]
+ cmp r0, #0x1
+ beq _02064A54
+_020649FE:
+ mov r0, #0xb
+ mov r1, #0x10
+ bl FUN_020169D8
+ add r2, r0, #0x0
+ mov r0, #0x0
+ str r0, [r2, #0x0]
+ ldrh r1, [r4, #0x2]
+ mov r0, #0x18
+ add r3, r1, #0x0
+ ldr r1, _02064A5C ; =0x020F7D84
+ mul r3, r0
+ ldr r1, [r1, r3]
+ str r1, [r2, #0x8]
+ ldr r1, [r4, #0x8]
+ str r1, [r2, #0xc]
+ ldrh r1, [r4, #0x0]
+ cmp r1, #0x0
+ ldrh r1, [r4, #0x2]
+ bne _02064A3E
+ add r3, r1, #0x0
+ mul r3, r0
+ ldr r0, _02064A60 ; =0x020F7D74
+ ldr r1, _02064A64 ; =FUN_02064A70
+ ldr r0, [r0, r3]
+ str r0, [r2, #0x4]
+ ldr r0, [r5, #0x10]
+ bl FUN_0204640C
+ mov r0, #0x1
+ strh r0, [r4, #0x0]
+ pop {r3-r5, pc}
+_02064A3E:
+ add r3, r1, #0x0
+ mul r3, r0
+ ldr r0, _02064A68 ; =0x020F7D70
+ ldr r1, _02064A6C ; =FUN_02064B70
+ ldr r0, [r0, r3]
+ str r0, [r2, #0x4]
+ ldr r0, [r5, #0x10]
+ bl FUN_0204640C
+ mov r0, #0x0
+ strh r0, [r4, #0x0]
+_02064A54:
+ pop {r3-r5, pc}
+ nop
+_02064A58: .word 0x020F7D80
+_02064A5C: .word 0x020F7D84
+_02064A60: .word 0x020F7D74
+_02064A64: .word FUN_02064A70
+_02064A68: .word 0x020F7D70
+_02064A6C: .word FUN_02064B70
+
+ thumb_func_start FUN_02064A70
+FUN_02064A70: ; 0x02064A70
+ push {r4-r5, lr}
+ sub sp, #0x1c
+ add r4, r0, #0x0
+ bl FUN_02046528
+ add r5, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_0204652C
+ add r4, r0, #0x0
+ ldr r1, [r4, #0x0]
+ cmp r1, #0x3
+ bhi _02064B5C
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #0x6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_02064A96: ; jump table (using 16-bit offset)
+ .short _02064A9E - _02064A96 - 2; case 0
+ .short _02064AB4 - _02064A96 - 2; case 1
+ .short _02064B2E - _02064A96 - 2; case 2
+ .short _02064B52 - _02064A96 - 2; case 3
+_02064A9E:
+ ldr r0, [r5, #0x38]
+ mov r1, #0x0
+ bl FUN_02055560
+ ldr r0, [r4, #0xc]
+ bl FUN_02064C64
+ ldr r0, [r4, #0x0]
+ add r0, r0, #0x1
+ str r0, [r4, #0x0]
+ b _02064B5C
+_02064AB4:
+ ldr r0, [r4, #0x8]
+ cmp r0, #0x0
+ beq _02064ACA
+ add r0, r5, #0x0
+ add r0, #0xa0
+ ldr r0, [r0, #0x0]
+ ldr r1, _02064B64 ; =0x00000102
+ bl FUN_021E7ED8
+ str r0, [sp, #0xc]
+ b _02064AEC
+_02064ACA:
+ ldr r0, _02064B68 ; =0x020F7D4C
+ add r1, sp, #0x4
+ ldr r2, [r0, #0x0]
+ ldr r0, [r0, #0x4]
+ str r2, [sp, #0x4]
+ str r0, [sp, #0x8]
+ mov r0, #0x0
+ str r0, [sp, #0x0]
+ add r0, r5, #0x0
+ mov r2, #0x2
+ add r3, sp, #0xc
+ bl FUN_0204AA5C
+ cmp r0, #0x0
+ bne _02064AEC
+ bl ErrorHandling
+_02064AEC:
+ ldr r1, [sp, #0xc]
+ add r0, sp, #0x10
+ bl FUN_021E7EA0
+ ldr r0, [r4, #0xc]
+ cmp r0, #0x0
+ bne _02064AFE
+ mov r1, #0x1
+ b _02064B00
+_02064AFE:
+ mov r1, #0x2
+_02064B00:
+ ldr r0, [sp, #0x14]
+ lsl r1, r1, #0xc
+ add r1, r0, r1
+ str r1, [sp, #0x14]
+ ldr r0, [r4, #0x4]
+ cmp r1, r0
+ blt _02064B1C
+ str r0, [sp, #0x14]
+ ldr r0, [r4, #0xc]
+ bl FUN_02064C84
+ ldr r0, [r4, #0x0]
+ add r0, r0, #0x1
+ str r0, [r4, #0x0]
+_02064B1C:
+ ldr r0, [r5, #0x38]
+ ldr r1, [sp, #0x14]
+ bl FUN_02055540
+ ldr r0, [sp, #0xc]
+ add r1, sp, #0x10
+ bl FUN_021E7EB0
+ b _02064B5C
+_02064B2E:
+ add r2, r5, #0x0
+ add r2, #0x9c
+ ldr r1, [r4, #0x4]
+ ldr r2, [r2, #0x0]
+ mov r0, #0x0
+ bl FUN_021F4594
+ ldr r0, [r5, #0x38]
+ mov r1, #0x1
+ bl FUN_0205557C
+ ldr r0, _02064B6C ; =0x0000061A
+ bl FUN_020054C8
+ ldr r0, [r4, #0x0]
+ add r0, r0, #0x1
+ str r0, [r4, #0x0]
+ b _02064B5C
+_02064B52:
+ bl FUN_02016A18
+ add sp, #0x1c
+ mov r0, #0x1
+ pop {r4-r5, pc}
+_02064B5C:
+ mov r0, #0x0
+ add sp, #0x1c
+ pop {r4-r5, pc}
+ nop
+_02064B64: .word 0x00000102
+_02064B68: .word 0x020F7D4C
+_02064B6C: .word 0x0000061A
+
+ thumb_func_start FUN_02064B70
+FUN_02064B70: ; 0x02064B70
+ push {r4-r5, lr}
+ sub sp, #0x1c
+ add r4, r0, #0x0
+ bl FUN_02046528
+ add r5, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_0204652C
+ add r4, r0, #0x0
+ ldr r1, [r4, #0x0]
+ cmp r1, #0x3
+ bhi _02064C52
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #0x6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_02064B96: ; jump table (using 16-bit offset)
+ .short _02064B9E - _02064B96 - 2; case 0
+ .short _02064BB4 - _02064B96 - 2; case 1
+ .short _02064C24 - _02064B96 - 2; case 2
+ .short _02064C48 - _02064B96 - 2; case 3
+_02064B9E:
+ ldr r0, [r5, #0x38]
+ mov r1, #0x0
+ bl FUN_02055560
+ ldr r0, [r4, #0xc]
+ bl FUN_02064C64
+ ldr r0, [r4, #0x0]
+ add r0, r0, #0x1
+ str r0, [r4, #0x0]
+ b _02064C52
+_02064BB4:
+ ldr r0, [r4, #0x8]
+ cmp r0, #0x0
+ beq _02064BCA
+ add r0, r5, #0x0
+ add r0, #0xa0
+ ldr r0, [r0, #0x0]
+ ldr r1, _02064C58 ; =0x00000102
+ bl FUN_021E7ED8
+ str r0, [sp, #0xc]
+ b _02064BEC
+_02064BCA:
+ ldr r0, _02064C5C ; =0x020F7D4C
+ add r1, sp, #0x4
+ ldr r2, [r0, #0x10]
+ ldr r0, [r0, #0x14]
+ str r2, [sp, #0x4]
+ str r0, [sp, #0x8]
+ mov r0, #0x0
+ str r0, [sp, #0x0]
+ add r0, r5, #0x0
+ mov r2, #0x2
+ add r3, sp, #0xc
+ bl FUN_0204AA5C
+ cmp r0, #0x0
+ bne _02064BEC
+ bl ErrorHandling
+_02064BEC:
+ ldr r1, [sp, #0xc]
+ add r0, sp, #0x10
+ bl FUN_021E7EA0
+ mov r0, #0x1
+ ldr r1, [sp, #0x14]
+ lsl r0, r0, #0xc
+ sub r1, r1, r0
+ str r1, [sp, #0x14]
+ ldr r0, [r4, #0x4]
+ cmp r1, r0
+ bgt _02064C12
+ str r0, [sp, #0x14]
+ ldr r0, [r4, #0xc]
+ bl FUN_02064C84
+ ldr r0, [r4, #0x0]
+ add r0, r0, #0x1
+ str r0, [r4, #0x0]
+_02064C12:
+ ldr r0, [r5, #0x38]
+ ldr r1, [sp, #0x14]
+ bl FUN_02055540
+ ldr r0, [sp, #0xc]
+ add r1, sp, #0x10
+ bl FUN_021E7EB0
+ b _02064C52
+_02064C24:
+ add r2, r5, #0x0
+ add r2, #0x9c
+ ldr r1, [r4, #0x4]
+ ldr r2, [r2, #0x0]
+ mov r0, #0x0
+ bl FUN_021F4594
+ ldr r0, [r5, #0x38]
+ mov r1, #0x1
+ bl FUN_0205557C
+ ldr r0, _02064C60 ; =0x0000061A
+ bl FUN_020054C8
+ ldr r0, [r4, #0x0]
+ add r0, r0, #0x1
+ str r0, [r4, #0x0]
+ b _02064C52
+_02064C48:
+ bl FUN_02016A18
+ add sp, #0x1c
+ mov r0, #0x1
+ pop {r4-r5, pc}
+_02064C52:
+ mov r0, #0x0
+ add sp, #0x1c
+ pop {r4-r5, pc}
+ .balign 4
+_02064C58: .word 0x00000102
+_02064C5C: .word 0x020F7D4C
+_02064C60: .word 0x0000061A
+
+ thumb_func_start FUN_02064C64
+FUN_02064C64: ; 0x02064C64
+ push {r3, lr}
+ cmp r0, #0x0
+ bne _02064C72
+ ldr r0, _02064C7C ; =0x00000611
+ bl FUN_020054C8
+ pop {r3, pc}
+_02064C72:
+ ldr r0, _02064C80 ; =0x00000614
+ bl FUN_020054C8
+ pop {r3, pc}
+ nop
+_02064C7C: .word 0x00000611
+_02064C80: .word 0x00000614
+
+ thumb_func_start FUN_02064C84
+FUN_02064C84: ; 0x02064C84
+ push {r3, lr}
+ cmp r0, #0x0
+ bne _02064C94
+ ldr r0, _02064CA0 ; =0x00000611
+ mov r1, #0x0
+ bl FUN_020054F0
+ pop {r3, pc}
+_02064C94:
+ ldr r0, _02064CA4 ; =0x00000614
+ mov r1, #0x0
+ bl FUN_020054F0
+ pop {r3, pc}
+ nop
+_02064CA0: .word 0x00000611
+_02064CA4: .word 0x00000614
+
+ thumb_func_start FUN_02064CA8
+FUN_02064CA8: ; 0x02064CA8
+ push {r4, lr}
+ bl FUN_020377AC
+ bl FUN_02024ED8
+ add r4, r0, #0x0
+ mov r1, #0x1
+ bl FUN_02025490
+ add r0, r4, #0x0
+ mov r1, #0x1
+ bl FUN_020254A0
+ mov r1, #0x1
+ strb r1, [r0, #0x0]
+ pop {r4, pc}
+
+ thumb_func_start FUN_02064CC8
+FUN_02064CC8: ; 0x02064CC8
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ bl FUN_020377AC
+ bl FUN_02024ED8
+ add r4, r0, #0x0
+ mov r1, #0x2
+ bl FUN_02025490
+ add r0, r4, #0x0
+ mov r1, #0x2
+ bl FUN_020254A0
+ add r4, r0, #0x0
+ ldr r0, [r5, #0x1c]
+ ldr r0, [r0, #0xc]
+ cmp r0, #0x16
+ bne _02064D08
+ ldr r0, [r5, #0xc]
+ bl FUN_020462AC
+ bl FUN_0205ECEC
+ cmp r0, #0x0
+ beq _02064D02
+ mov r0, #0x0
+ strb r0, [r4, #0x0]
+ pop {r3-r5, pc}
+_02064D02:
+ mov r0, #0x1
+ strb r0, [r4, #0x0]
+ pop {r3-r5, pc}
+_02064D08:
+ mov r0, #0x1
+ strb r0, [r4, #0x0]
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_02064D10
+FUN_02064D10: ; 0x02064D10
+ push {r4-r6, lr}
+ bl FUN_020377AC
+ bl FUN_02024ED8
+ add r4, r0, #0x0
+ mov r1, #0x3
+ bl FUN_02025490
+ add r0, r4, #0x0
+ mov r1, #0x3
+ bl FUN_020254A0
+ ldr r5, _02064D48 ; =0x020F7E54
+ add r6, r0, #0x0
+ mov r4, #0x0
+_02064D30:
+ ldrb r1, [r5, #0x0]
+ lsl r0, r4, #0x18
+ lsr r0, r0, #0x18
+ add r2, r6, #0x0
+ bl FUN_02064DEC
+ add r4, r4, #0x1
+ add r5, r5, #0x1
+ cmp r4, #0x18
+ blt _02064D30
+ pop {r4-r6, pc}
+ nop
+_02064D48: .word 0x020F7E54
+
+ thumb_func_start FUN_02064D4C
+FUN_02064D4C: ; 0x02064D4C
+ push {r4-r6, lr}
+ bl FUN_020377AC
+ bl FUN_02024ED8
+ add r4, r0, #0x0
+ mov r1, #0x4
+ bl FUN_02025490
+ add r0, r4, #0x0
+ mov r1, #0x4
+ bl FUN_020254A0
+ ldr r5, _02064D84 ; =0x020F7E48
+ add r6, r0, #0x0
+ mov r4, #0x0
+_02064D6C:
+ ldrb r1, [r5, #0x0]
+ lsl r0, r4, #0x18
+ lsr r0, r0, #0x18
+ add r2, r6, #0x0
+ bl FUN_02064DEC
+ add r4, r4, #0x1
+ add r5, r5, #0x1
+ cmp r4, #0xc
+ blt _02064D6C
+ pop {r4-r6, pc}
+ nop
+_02064D84: .word 0x020F7E48
+
+ thumb_func_start FUN_02064D88
+FUN_02064D88: ; 0x02064D88
+ push {r3-r7, lr}
+ add r5, r1, #0x0
+ add r7, r0, #0x0
+ cmp r5, #0x3
+ blo _02064D96
+ bl ErrorHandling
+_02064D96:
+ add r0, r7, #0x0
+ bl FUN_020377AC
+ bl FUN_02024ED8
+ add r4, r0, #0x0
+ mov r1, #0x5
+ bl FUN_02025490
+ add r0, r4, #0x0
+ mov r1, #0x5
+ bl FUN_020254A0
+ add r4, r0, #0x0
+ str r5, [r4, #0x4]
+ cmp r5, #0x0
+ beq _02064DC2
+ cmp r5, #0x1
+ beq _02064DCA
+ cmp r5, #0x2
+ beq _02064DD2
+ b _02064DDA
+_02064DC2:
+ mov r0, #0x2
+ str r0, [r4, #0x0]
+ mov r6, #0xe
+ b _02064DDE
+_02064DCA:
+ mov r0, #0x1
+ str r0, [r4, #0x0]
+ mov r6, #0x15
+ b _02064DDE
+_02064DD2:
+ mov r0, #0x0
+ str r0, [r4, #0x0]
+ mov r6, #0x19
+ b _02064DDE
+_02064DDA:
+ bl ErrorHandling
+_02064DDE:
+ ldr r0, [r7, #0x1c]
+ ldr r0, [r0, #0xc]
+ cmp r0, r6
+ bne _02064DEA
+ mov r0, #0x0
+ str r0, [r4, #0x0]
+_02064DEA:
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_02064DEC
+FUN_02064DEC: ; 0x02064DEC
+ push {r4-r6, lr}
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ add r6, r2, #0x0
+ cmp r4, #0x1
+ bls _02064DFC
+ bl ErrorHandling
+_02064DFC:
+ mov r0, #0x0
+ mvn r0, r0
+ mov r1, #0x20
+ ldr r2, [r6, #0x0]
+ sub r1, r1, r5
+ add r3, r0, #0x0
+ lsr r3, r1
+ add r1, r2, #0x0
+ and r1, r3
+ add r3, r5, #0x1
+ lsl r0, r3
+ and r2, r0
+ add r0, r4, #0x0
+ lsl r0, r5
+ orr r0, r2
+ orr r0, r1
+ str r0, [r6, #0x0]
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_02064E20
+FUN_02064E20: ; 0x02064E20
+ push {r4, lr}
+ bl FUN_020377AC
+ bl FUN_02024ED8
+ add r4, r0, #0x0
+ bl FUN_020254B4
+ cmp r0, #0x6
+ beq _02064E48
+ add r0, r4, #0x0
+ mov r1, #0x6
+ bl FUN_02025490
+ add r0, r4, #0x0
+ mov r1, #0x6
+ bl FUN_020254A0
+ mov r1, #0x2
+ strh r1, [r0, #0x0]
+_02064E48:
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02064E4C
+FUN_02064E4C: ; 0x02064E4C
+ push {r4, lr}
+ add r4, r2, #0x0
+ bl FUN_0200A8E0
+ mov r0, #0x0
+ add r1, r4, #0x0
+ add r2, r0, #0x0
+ bl FUN_02002E14
+ pop {r4, pc}
+
+ thumb_func_start FUN_02064E60
+FUN_02064E60: ; 0x02064E60
+ push {r4-r6, lr}
+ add r6, r2, #0x0
+ add r5, r0, #0x0
+ add r3, r1, #0x0
+ ldr r2, _02064E8C ; =0x0000017E
+ mov r0, #0x1
+ mov r1, #0x1a
+ bl FUN_0200A86C
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_02034824
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ add r2, r6, #0x0
+ bl FUN_02064E4C
+ add r0, r4, #0x0
+ bl FUN_0200A8B8
+ pop {r4-r6, pc}
+ .balign 4
+_02064E8C: .word 0x0000017E
+
+ thumb_func_start FUN_02064E90
+FUN_02064E90: ; 0x02064E90
+ push {r3-r7, lr}
+ sub sp, #0xa0
+ str r0, [sp, #0x10]
+ ldr r6, [sp, #0xb8]
+ str r1, [sp, #0x14]
+ str r2, [sp, #0x18]
+ add r0, r6, #0x0
+ str r3, [sp, #0x1c]
+ ldr r5, [sp, #0xbc]
+ bl FUN_020377AC
+ str r0, [sp, #0x20]
+ bl FUN_020238F4
+ add r7, r0, #0x0
+ ldr r0, [sp, #0x20]
+ bl FUN_02029FC8
+ add r4, r0, #0x0
+ ldr r0, [sp, #0x1c]
+ strb r0, [r5, #0x5]
+ add r0, r6, #0x0
+ bl FUN_02065078
+ str r0, [sp, #0x24]
+ add r0, r7, #0x0
+ bl FUN_02023A70
+ str r0, [sp, #0x0]
+ str r5, [sp, #0x4]
+ ldr r0, [sp, #0x10]
+ ldr r2, [sp, #0x24]
+ ldr r3, [sp, #0x18]
+ mov r1, #0xa
+ bl FUN_02065154
+ add r0, r7, #0x0
+ bl FUN_020239C0
+ str r0, [sp, #0x28]
+ add r0, r7, #0x0
+ bl FUN_020239CC
+ str r0, [sp, #0x2c]
+ add r0, r7, #0x0
+ bl FUN_0202398C
+ str r0, [sp, #0x30]
+ add r0, r7, #0x0
+ bl FUN_02023A10
+ str r0, [sp, #0x34]
+ ldr r0, [r6, #0xc]
+ bl FUN_02024DA0
+ bl FUN_02024440
+ str r0, [sp, #0x38]
+ ldr r0, [r6, #0xc]
+ bl FUN_02024DA0
+ bl FUN_02024D64
+ str r0, [sp, #0x3c]
+ add r0, r4, #0x0
+ bl FUN_0202A1B8
+ ldr r1, [sp, #0x38]
+ ldr r2, [sp, #0x30]
+ str r1, [sp, #0x0]
+ ldr r1, [sp, #0x3c]
+ ldr r3, [sp, #0x34]
+ str r1, [sp, #0x4]
+ str r0, [sp, #0x8]
+ ldr r1, [sp, #0x2c]
+ ldr r0, [sp, #0x28]
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ str r5, [sp, #0xc]
+ bl FUN_02065178
+ ldr r0, [sp, #0x20]
+ bl FUN_02023918
+ str r0, [sp, #0x40]
+ add r0, r6, #0x0
+ add r1, sp, #0x90
+ add r2, sp, #0x74
+ bl FUN_0204B2F0
+ add r0, r6, #0x0
+ add r1, sp, #0x80
+ add r2, sp, #0x74
+ bl FUN_0204B30C
+ ldr r0, [r6, #0xc]
+ bl FUN_020462AC
+ bl FUN_0205ED0C
+ add r1, sp, #0x74
+ str r1, [sp, #0x0]
+ ldr r1, [sp, #0x14]
+ lsl r0, r0, #0x18
+ str r1, [sp, #0x4]
+ ldr r1, [sp, #0x40]
+ str r5, [sp, #0x8]
+ lsr r0, r0, #0x18
+ add r2, sp, #0x90
+ add r3, sp, #0x80
+ bl FUN_020651BC
+ ldr r0, [r6, #0xc]
+ bl FUN_02029ABC
+ str r0, [sp, #0x44]
+ add r0, r4, #0x0
+ mov r1, #0x20
+ bl FUN_0202A150
+ str r0, [sp, #0x48]
+ add r0, r4, #0x0
+ mov r1, #0x19
+ bl FUN_0202A150
+ str r0, [sp, #0x4c]
+ add r0, r4, #0x0
+ mov r1, #0x14
+ bl FUN_0202A150
+ str r0, [sp, #0x50]
+ add r0, r4, #0x0
+ mov r1, #0x18
+ bl FUN_0202A150
+ str r0, [sp, #0x54]
+ add r0, r4, #0x0
+ mov r1, #0x40
+ bl FUN_0202A150
+ str r0, [sp, #0x58]
+ add r0, r4, #0x0
+ mov r1, #0x13
+ bl FUN_0202A150
+ ldr r1, [sp, #0x58]
+ add r1, r1, r0
+ ldr r0, [sp, #0x54]
+ add r1, r0, r1
+ ldr r0, [sp, #0x50]
+ add r1, r0, r1
+ ldr r0, [sp, #0x4c]
+ add r0, r0, r1
+ str r0, [sp, #0x5c]
+ add r0, r4, #0x0
+ mov r1, #0x15
+ bl FUN_0202A150
+ str r0, [sp, #0x60]
+ add r0, r4, #0x0
+ mov r1, #0x1a
+ bl FUN_0202A150
+ str r0, [sp, #0x64]
+ add r0, r4, #0x0
+ mov r1, #0x16
+ bl FUN_0202A150
+ str r0, [sp, #0x68]
+ add r0, r4, #0x0
+ mov r1, #0x1b
+ bl FUN_0202A150
+ str r0, [sp, #0x6c]
+ add r0, r4, #0x0
+ mov r1, #0x13
+ bl FUN_0202A150
+ str r0, [sp, #0x70]
+ add r0, r4, #0x0
+ mov r1, #0x18
+ bl FUN_0202A150
+ add r4, r0, #0x0
+ ldr r0, [sp, #0x44]
+ bl FUN_02029AC8
+ str r0, [sp, #0x0]
+ ldr r1, [sp, #0x48]
+ ldr r0, [sp, #0x5c]
+ ldr r2, [sp, #0x60]
+ add r0, r1, r0
+ ldr r1, [sp, #0x64]
+ ldr r3, [sp, #0x68]
+ add r1, r2, r1
+ ldr r2, [sp, #0x6c]
+ str r5, [sp, #0x4]
+ add r2, r3, r2
+ ldr r3, [sp, #0x70]
+ add r3, r3, r4
+ bl FUN_02065260
+ add r0, r7, #0x0
+ add r1, r6, #0x0
+ add r2, r5, #0x0
+ bl FUN_020652AC
+ mov r3, #0x0
+ ldr r0, _0206504C ; =0x0000066C
+ add r2, r3, #0x0
+_02065034:
+ ldrb r1, [r5, r2]
+ add r2, r2, #0x1
+ eor r3, r1
+ cmp r2, r0
+ blo _02065034
+ ldr r0, _02065050 ; =0x00000668
+ mov r1, #0x0
+ strh r3, [r5, r0]
+ add r0, r0, #0x2
+ strh r1, [r5, r0]
+ add sp, #0xa0
+ pop {r3-r7, pc}
+ .balign 4
+_0206504C: .word 0x0000066C
+_02065050: .word 0x00000668
+
+ thumb_func_start FUN_02065054
+FUN_02065054: ; 0x02065054
+ push {r4, lr}
+ ldr r1, _0206506C ; =0x0000066C
+ bl FUN_02016998
+ ldr r2, _0206506C ; =0x0000066C
+ mov r1, #0x0
+ add r4, r0, #0x0
+ blx Call_FillMemWithValue
+ add r0, r4, #0x0
+ pop {r4, pc}
+ nop
+_0206506C: .word 0x0000066C
+
+ thumb_func_start FUN_02065070
+FUN_02065070: ; 0x02065070
+ ldr r3, _02065074 ; =FUN_02016A18
+ bx r3
+ .balign 4
+_02065074: .word FUN_02016A18
+
+ thumb_func_start FUN_02065078
+FUN_02065078: ; 0x02065078
+ push {r3-r7, lr}
+ bl FUN_020377AC
+ add r7, r0, #0x0
+ bl FUN_02029FC8
+ add r6, r0, #0x0
+ add r0, r7, #0x0
+ bl FUN_020462AC
+ add r5, r0, #0x0
+ add r0, r7, #0x0
+ bl FUN_02026CB4
+ str r0, [sp, #0x0]
+ add r0, r5, #0x0
+ mov r4, #0x0
+ bl FUN_0205ED0C
+ cmp r0, #0x0
+ beq _020650A8
+ add r0, r4, #0x1
+ lsl r0, r0, #0x18
+ lsr r4, r0, #0x18
+_020650A8:
+ add r0, r7, #0x0
+ bl FUN_02024DA0
+ bl FUN_020244EC
+ cmp r0, #0x0
+ beq _020650BC
+ add r0, r4, #0x1
+ lsl r0, r0, #0x18
+ lsr r4, r0, #0x18
+_020650BC:
+ add r0, r6, #0x0
+ mov r1, #0x35
+ bl FUN_0202A150
+ cmp r0, #0x64
+ bhs _020650F8
+ add r0, r6, #0x0
+ mov r1, #0x37
+ bl FUN_0202A150
+ cmp r0, #0x64
+ bhs _020650F8
+ add r0, r6, #0x0
+ mov r1, #0x39
+ bl FUN_0202A150
+ cmp r0, #0x64
+ bhs _020650F8
+ add r0, r6, #0x0
+ mov r1, #0x3b
+ bl FUN_0202A150
+ cmp r0, #0x64
+ bhs _020650F8
+ add r0, r6, #0x0
+ mov r1, #0x3d
+ bl FUN_0202A150
+ cmp r0, #0x64
+ blo _020650FE
+_020650F8:
+ add r0, r4, #0x1
+ lsl r0, r0, #0x18
+ lsr r4, r0, #0x18
+_020650FE:
+ add r0, r5, #0x0
+ mov r1, #0x0
+ bl FUN_0205EE60
+ cmp r0, #0x0
+ bne _0206513A
+ add r0, r5, #0x0
+ mov r1, #0x1
+ bl FUN_0205EE60
+ cmp r0, #0x0
+ bne _0206513A
+ add r0, r5, #0x0
+ mov r1, #0x3
+ bl FUN_0205EE60
+ cmp r0, #0x0
+ bne _0206513A
+ add r0, r5, #0x0
+ mov r1, #0x4
+ bl FUN_0205EE60
+ cmp r0, #0x0
+ bne _0206513A
+ add r0, r5, #0x0
+ mov r1, #0x2
+ bl FUN_0205EE60
+ cmp r0, #0x0
+ beq _02065140
+_0206513A:
+ add r0, r4, #0x1
+ lsl r0, r0, #0x18
+ lsr r4, r0, #0x18
+_02065140:
+ ldr r0, [sp, #0x0]
+ bl FUN_020268D4
+ cmp r0, #0x1
+ bne _02065150
+ add r0, r4, #0x1
+ lsl r0, r0, #0x18
+ lsr r4, r0, #0x18
+_02065150:
+ add r0, r4, #0x0
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_02065154
+FUN_02065154: ; 0x02065154
+ push {r3-r6}
+ ldr r5, [sp, #0x14]
+ mov r6, #0x1
+ ldrb r4, [r5, #0x4]
+ bic r4, r6
+ mov r6, #0x1
+ and r0, r6
+ orr r0, r4
+ strb r0, [r5, #0x4]
+ strb r1, [r5, #0x0]
+ strb r2, [r5, #0x3]
+ add r0, sp, #0x0
+ ldrb r0, [r0, #0x10]
+ strb r0, [r5, #0x1]
+ strb r3, [r5, #0x2]
+ pop {r3-r6}
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02065178
+FUN_02065178: ; 0x02065178
+ push {r4-r6, lr}
+ ldr r4, [sp, #0x1c]
+ add r6, r1, #0x0
+ strh r0, [r4, #0x28]
+ ldrb r0, [r4, #0x4]
+ add r1, r2, #0x0
+ mov r2, #0x4
+ bic r0, r2
+ lsl r2, r6, #0x1f
+ lsr r2, r2, #0x1d
+ orr r0, r2
+ strb r0, [r4, #0x4]
+ add r0, r4, #0x0
+ add r0, #0x8
+ mov r2, #0x8
+ add r5, r3, #0x0
+ bl StringCopyN
+ ldr r0, [sp, #0x10]
+ str r5, [r4, #0x1c]
+ str r0, [r4, #0x20]
+ ldrb r0, [r4, #0x4]
+ mov r1, #0x8
+ bic r0, r1
+ ldr r1, [sp, #0x14]
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ lsl r1, r1, #0x1f
+ lsr r1, r1, #0x1c
+ orr r0, r1
+ strb r0, [r4, #0x4]
+ ldr r0, [sp, #0x18]
+ str r0, [r4, #0x24]
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_020651BC
+FUN_020651BC: ; 0x020651BC
+ push {r3-r7, lr}
+ sub sp, #0x8
+ ldr r4, [sp, #0x28]
+ str r0, [sp, #0x0]
+ str r1, [sp, #0x4]
+ add r0, r1, #0x0
+ add r5, r2, #0x0
+ add r6, r3, #0x0
+ ldr r7, [sp, #0x20]
+ bl FUN_02029EBC
+ strh r0, [r4, #0x2a]
+ ldr r0, [sp, #0x4]
+ bl FUN_02029EC0
+ add r1, r4, #0x0
+ add r1, #0x2e
+ strb r0, [r1, #0x0]
+ add r0, r4, #0x0
+ ldr r1, [r5, #0x0]
+ add r0, #0x2f
+ strb r1, [r0, #0x0]
+ add r0, r4, #0x0
+ ldr r1, [r5, #0x4]
+ add r0, #0x30
+ strb r1, [r0, #0x0]
+ add r0, r4, #0x0
+ ldr r1, [r5, #0x8]
+ add r0, #0x31
+ strb r1, [r0, #0x0]
+ ldr r0, [sp, #0x0]
+ cmp r0, #0x0
+ beq _0206521E
+ add r0, r4, #0x0
+ ldr r1, [r6, #0x0]
+ add r0, #0x32
+ strb r1, [r0, #0x0]
+ add r0, r4, #0x0
+ ldr r1, [r6, #0x4]
+ add r0, #0x33
+ strb r1, [r0, #0x0]
+ add r0, r4, #0x0
+ ldr r1, [r6, #0x8]
+ add r0, #0x34
+ strb r1, [r0, #0x0]
+ ldr r0, [r7, #0x0]
+ strh r0, [r4, #0x2c]
+ ldr r1, [r7, #0x4]
+ b _02065234
+_0206521E:
+ add r0, r4, #0x0
+ mov r1, #0x0
+ add r0, #0x32
+ strb r1, [r0, #0x0]
+ add r0, r4, #0x0
+ add r0, #0x33
+ strb r1, [r0, #0x0]
+ add r0, r4, #0x0
+ add r0, #0x34
+ strb r1, [r0, #0x0]
+ strh r1, [r4, #0x2c]
+_02065234:
+ add r0, r4, #0x0
+ add r0, #0x35
+ strb r1, [r0, #0x0]
+ ldrb r2, [r4, #0x4]
+ mov r0, #0x2
+ bic r2, r0
+ add r0, sp, #0x10
+ ldrb r0, [r0, #0x14]
+ lsl r1, r0, #0x1f
+ lsr r1, r1, #0x1e
+ orr r1, r2
+ strb r1, [r4, #0x4]
+ cmp r0, #0x0
+ beq _02065258
+ ldr r0, [sp, #0x4]
+ add sp, #0x8
+ str r0, [r4, #0x18]
+ pop {r3-r7, pc}
+_02065258:
+ mov r0, #0x0
+ str r0, [r4, #0x18]
+ add sp, #0x8
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_02065260
+FUN_02065260: ; 0x02065260
+ push {r3-r5, lr}
+ ldr r4, [sp, #0x14]
+ ldr r5, _020652A0 ; =0x000F423F
+ str r0, [r4, #0x38]
+ cmp r0, r5
+ bls _0206526E
+ str r5, [r4, #0x38]
+_0206526E:
+ str r1, [r4, #0x3c]
+ str r2, [r4, #0x40]
+ ldr r1, [r4, #0x3c]
+ ldr r0, _020652A4 ; =0x0000270F
+ cmp r1, r0
+ bls _0206527C
+ str r0, [r4, #0x3c]
+_0206527C:
+ ldr r1, [r4, #0x40]
+ ldr r0, _020652A4 ; =0x0000270F
+ cmp r1, r0
+ bls _02065286
+ str r0, [r4, #0x40]
+_02065286:
+ ldr r0, _020652A8 ; =0x0001869F
+ str r3, [r4, #0x44]
+ cmp r3, r0
+ bls _02065290
+ str r0, [r4, #0x44]
+_02065290:
+ add r4, #0x68
+ mov r2, #0x6
+ ldr r0, [sp, #0x10]
+ add r1, r4, #0x0
+ lsl r2, r2, #0x8
+ blx MI_CpuCopy8
+ pop {r3-r5, pc}
+ .balign 4
+_020652A0: .word 0x000F423F
+_020652A4: .word 0x0000270F
+_020652A8: .word 0x0001869F
+
+ thumb_func_start FUN_020652AC
+FUN_020652AC: ; 0x020652AC
+ push {r4-r7, lr}
+ sub sp, #0xc
+ str r0, [sp, #0x0]
+ ldr r0, [r1, #0xc]
+ add r5, r2, #0x0
+ bl FUN_02029ABC
+ bl FUN_02029ACC
+ str r0, [sp, #0x4]
+ mov r0, #0x1
+ mov r4, #0x0
+ add r5, #0x48
+ str r0, [sp, #0x8]
+ add r7, r0, #0x0
+_020652CA:
+ ldr r0, [sp, #0x0]
+ add r1, r4, #0x0
+ bl FUN_020239D0
+ cmp r0, #0x0
+ beq _020652E6
+ lsl r0, r4, #0x2
+ ldr r2, [r5, r0]
+ mov r1, #0x1
+ bic r2, r7
+ orr r1, r2
+ add r6, r5, r0
+ str r1, [r5, r0]
+ b _020652F2
+_020652E6:
+ lsl r2, r4, #0x2
+ ldr r1, [r5, r2]
+ ldr r0, [sp, #0x8]
+ add r6, r5, r2
+ bic r1, r0
+ str r1, [r5, r2]
+_020652F2:
+ ldr r1, [sp, #0x4]
+ add r0, r4, #0x0
+ bl FUN_02029AD0
+ ldr r2, [r6, #0x0]
+ mov r1, #0x1
+ and r1, r2
+ lsl r0, r0, #0x1
+ orr r0, r1
+ str r0, [r6, #0x0]
+ add r0, r4, #0x1
+ lsl r0, r0, #0x18
+ lsr r4, r0, #0x18
+ cmp r4, #0x8
+ blo _020652CA
+ add sp, #0xc
+ pop {r4-r7, pc}
+
+ thumb_func_start FUN_02065314
+FUN_02065314: ; 0x02065314
+ push {r4-r6, lr}
+ ldr r0, [r0, #0xc]
+ add r5, r1, #0x0
+ bl FUN_02029ABC
+ bl FUN_02029ACC
+ add r6, r0, #0x0
+ mov r4, #0x0
+_02065326:
+ lsl r1, r4, #0x2
+ add r1, r5, r1
+ ldr r1, [r1, #0x48]
+ add r0, r4, #0x0
+ asr r1, r1, #0x1
+ add r2, r6, #0x0
+ bl FUN_02029AD8
+ add r0, r4, #0x1
+ lsl r0, r0, #0x18
+ lsr r4, r0, #0x18
+ cmp r4, #0x8
+ blo _02065326
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_02065344
+FUN_02065344: ; 0x02065344
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ mov r0, #0xb
+ mov r1, #0x8
+ bl FUN_020169D8
+ add r4, r0, #0x0
+ mov r0, #0x0
+ str r0, [r4, #0x0]
+ ldr r0, [r5, #0x78]
+ bl FUN_02052E38
+ str r0, [r4, #0x4]
+ ldr r0, [r5, #0x10]
+ ldr r1, _0206536C ; =FUN_02065370
+ add r2, r4, #0x0
+ bl FUN_0204640C
+ pop {r3-r5, pc}
+ nop
+_0206536C: .word FUN_02065370
+
+ thumb_func_start FUN_02065370
+FUN_02065370: ; 0x02065370
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ bl FUN_02046528
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_0204652C
+ add r5, r0, #0x0
+ ldr r0, [r5, #0x0]
+ cmp r0, #0xa
+ bgt _0206539A
+ bge _020653BA
+ cmp r0, #0x1
+ bgt _020653E2
+ cmp r0, #0x0
+ blt _020653E2
+ beq _020653A0
+ cmp r0, #0x1
+ beq _020653AA
+ b _020653E2
+_0206539A:
+ cmp r0, #0xb
+ beq _020653C8
+ b _020653E2
+_020653A0:
+ ldr r0, [r4, #0x78]
+ bl FUN_02052ED0
+ mov r0, #0x1
+ str r0, [r5, #0x0]
+_020653AA:
+ ldr r1, [r5, #0x4]
+ ldr r0, _020653E8 ; =0x0000066A
+ ldrh r0, [r1, r0]
+ cmp r0, #0x0
+ beq _020653E2
+ mov r0, #0xa
+ str r0, [r5, #0x0]
+ b _020653E2
+_020653BA:
+ ldr r1, [r5, #0x4]
+ add r0, r4, #0x0
+ bl FUN_02038680
+ mov r0, #0xb
+ str r0, [r5, #0x0]
+ b _020653E2
+_020653C8:
+ add r0, r4, #0x0
+ bl FUN_0204647C
+ cmp r0, #0x0
+ bne _020653E2
+ ldr r0, [r4, #0x78]
+ bl FUN_02052EAC
+ add r0, r5, #0x0
+ bl FUN_02016A18
+ mov r0, #0x1
+ pop {r3-r5, pc}
+_020653E2:
+ mov r0, #0x0
+ pop {r3-r5, pc}
+ nop
+_020653E8: .word 0x0000066A
+
+ thumb_func_start FUN_020653EC
+FUN_020653EC: ; 0x020653EC
+ push {r4-r6, lr}
+ mov r2, #0x5
+ add r5, r0, #0x0
+ add r6, r1, #0x0
+ mov r0, #0x3
+ mov r1, #0x2b
+ lsl r2, r2, #0xc
+ bl FUN_0201681C
+ mov r1, #0x6e
+ mov r0, #0x2b
+ lsl r1, r1, #0x2
+ bl FUN_02016998
+ mov r2, #0x6e
+ mov r1, #0x0
+ lsl r2, r2, #0x2
+ add r4, r0, #0x0
+ blx MI_CpuFill8
+ add r0, r5, #0x0
+ str r6, [r4, #0x4]
+ bl FUN_020377AC
+ mov r1, #0x5b
+ lsl r1, r1, #0x2
+ str r5, [r4, r1]
+ mov r1, #0x2b
+ str r1, [r4, #0x0]
+ mov r1, #0x0
+ strb r1, [r4, #0x19]
+ mov r1, #0xff
+ add r6, r0, #0x0
+ strb r1, [r4, #0x1a]
+ bl LoadPlayerDataAddress
+ bl FUN_02024FF4
+ strb r0, [r4, #0x16]
+ add r0, r6, #0x0
+ bl LoadPlayerDataAddress
+ bl FUN_02025084
+ strh r0, [r4, #0x14]
+ add r0, r4, #0x0
+ ldr r2, [r4, #0x0]
+ add r0, #0x1c
+ mov r1, #0x14
+ bl FUN_02066010
+ ldr r2, [r4, #0x0]
+ add r0, r4, #0x0
+ add r1, r6, #0x0
+ bl FUN_02066070
+ add r0, r4, #0x0
+ bl FUN_02066270
+ ldr r0, _02065470 ; =FUN_020654B0
+ add r1, r4, #0x0
+ mov r2, #0x0
+ bl FUN_0200CA44
+ str r0, [r4, #0x8]
+ pop {r4-r6, pc}
+ .balign 4
+_02065470: .word FUN_020654B0
+
+ thumb_func_start FUN_02065474
+FUN_02065474: ; 0x02065474
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r0, [r4, #0x8]
+ bl FUN_0200CAB4
+ ldr r0, [r4, #0x4]
+ mov r1, #0x1
+ str r1, [r0, #0x0]
+ add r0, r4, #0x0
+ bl FUN_020662E4
+ add r0, r4, #0x0
+ add r0, #0x1c
+ mov r1, #0x14
+ bl FUN_02066044
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ ldr r0, [r4, #0x0]
+ bl FUN_020168D0
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_020654A4
+FUN_020654A4: ; 0x020654A4
+ ldr r3, _020654AC ; =FUN_02065474
+ add r0, r1, #0x0
+ bx r3
+ nop
+_020654AC: .word FUN_02065474
+
+ thumb_func_start FUN_020654B0
+FUN_020654B0: ; 0x020654B0
+ push {r3-r5, lr}
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_02066334
+ add r0, r4, #0x0
+ bl FUN_02065AF4
+ ldr r1, _020654CC ; =FUN_020654D0
+ add r0, r5, #0x0
+ bl FUN_0201B6C4
+ pop {r3-r5, pc}
+ .balign 4
+_020654CC: .word FUN_020654D0
+
+ thumb_func_start FUN_020654D0
+FUN_020654D0: ; 0x020654D0
+ push {r3-r5, lr}
+ mov r0, #0x16
+ add r5, r1, #0x0
+ lsl r0, r0, #0x4
+ ldr r0, [r5, r0]
+ bl FUN_02001204
+ add r4, r0, #0x0
+ mov r0, #0x69
+ lsl r0, r0, #0x2
+ ldr r0, [r5, r0]
+ cmp r0, #0x0
+ beq _020654EE
+ bl FUN_0205EC18
+_020654EE:
+ ldr r0, _02065544 ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #0x2
+ tst r0, r1
+ beq _0206550A
+ ldr r1, _02065548 ; =FUN_02065658
+ ldr r2, _0206554C ; =FUN_020654A4
+ add r0, r5, #0x0
+ bl FUN_02065FE4
+ ldr r0, _02065550 ; =0x000005DC
+ bl FUN_020054C8
+ pop {r3-r5, pc}
+_0206550A:
+ mov r0, #0x1
+ tst r0, r1
+ beq _02065542
+ ldr r0, _02065550 ; =0x000005DC
+ bl FUN_020054C8
+ mov r1, #0x1
+ mvn r1, r1
+ cmp r4, r1
+ beq _0206552A
+ add r0, r1, #0x1
+ cmp r4, r0
+ beq _0206552A
+ lsr r0, r1, #0x10
+ cmp r4, r0
+ bne _02065536
+_0206552A:
+ ldr r1, _02065548 ; =FUN_02065658
+ ldr r2, _0206554C ; =FUN_020654A4
+ add r0, r5, #0x0
+ bl FUN_02065FE4
+ pop {r3-r5, pc}
+_02065536:
+ ldr r1, _02065548 ; =FUN_02065658
+ ldr r2, _02065554 ; =FUN_02065558
+ add r0, r5, #0x0
+ strb r4, [r5, #0x18]
+ bl FUN_02065FE4
+_02065542:
+ pop {r3-r5, pc}
+ .balign 4
+_02065544: .word 0x021C48B8
+_02065548: .word FUN_02065658
+_0206554C: .word FUN_020654A4
+_02065550: .word 0x000005DC
+_02065554: .word FUN_02065558
+
+ thumb_func_start FUN_02065558
+FUN_02065558: ; 0x02065558
+ push {r3-r5, lr}
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ ldrh r0, [r4, #0x10]
+ cmp r0, #0x0
+ beq _0206556A
+ cmp r0, #0x1
+ beq _02065592
+ pop {r3-r5, pc}
+_0206556A:
+ add r0, r4, #0x0
+ bl FUN_02066334
+ mov r1, #0x0
+ add r0, r4, #0x0
+ add r2, r1, #0x0
+ bl FUN_02065DD8
+ mov r0, #0x1
+ str r0, [sp, #0x0]
+ mov r1, #0x0
+ ldrb r2, [r4, #0x16]
+ add r0, r4, #0x0
+ add r3, r1, #0x0
+ bl FUN_02066404
+ ldrh r0, [r4, #0x10]
+ add r0, r0, #0x1
+ strh r0, [r4, #0x10]
+ pop {r3-r5, pc}
+_02065592:
+ add r0, r4, #0x0
+ bl FUN_020664F4
+ cmp r0, #0x0
+ beq _020655A8
+ ldr r1, _020655AC ; =FUN_020655B0
+ add r0, r5, #0x0
+ bl FUN_0201B6C4
+ mov r0, #0x0
+ strh r0, [r4, #0x10]
+_020655A8:
+ pop {r3-r5, pc}
+ nop
+_020655AC: .word FUN_020655B0
+
+ thumb_func_start FUN_020655B0
+FUN_020655B0: ; 0x020655B0
+ push {r4-r6, lr}
+ add r6, r0, #0x0
+ mov r0, #0x16
+ add r4, r1, #0x0
+ lsl r0, r0, #0x4
+ ldr r0, [r4, r0]
+ bl FUN_02001204
+ add r5, r0, #0x0
+ ldr r0, _02065638 ; =0x021C48B8
+ mov r1, #0x2
+ ldr r0, [r0, #0x48]
+ tst r1, r0
+ beq _020655DE
+ ldr r1, _0206563C ; =FUN_02065674
+ ldr r2, _02065640 ; =FUN_020654B0
+ add r0, r4, #0x0
+ bl FUN_02065FE4
+ ldr r0, _02065644 ; =0x000005DC
+ bl FUN_020054C8
+ pop {r4-r6, pc}
+_020655DE:
+ mov r1, #0x1
+ tst r0, r1
+ beq _02065634
+ ldr r0, _02065644 ; =0x000005DC
+ bl FUN_020054C8
+ add r0, r5, #0x2
+ cmp r0, #0x5
+ bhi _0206562C
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_020655FC: ; jump table (using 16-bit offset)
+ .short _02065608 - _020655FC - 2; case 0
+ .short _02065608 - _020655FC - 2; case 1
+ .short _0206562C - _020655FC - 2; case 2
+ .short _02065614 - _020655FC - 2; case 3
+ .short _02065620 - _020655FC - 2; case 4
+ .short _02065608 - _020655FC - 2; case 5
+_02065608:
+ ldr r1, _0206563C ; =FUN_02065674
+ ldr r2, _02065640 ; =FUN_020654B0
+ add r0, r4, #0x0
+ bl FUN_02065FE4
+ pop {r4-r6, pc}
+_02065614:
+ ldr r1, _02065648 ; =FUN_02065710
+ add r0, r4, #0x0
+ mov r2, #0x0
+ bl FUN_02065FE4
+ pop {r4-r6, pc}
+_02065620:
+ ldr r1, _0206564C ; =FUN_02065894
+ ldr r2, _02065650 ; =FUN_02065938
+ add r0, r4, #0x0
+ bl FUN_02065FE4
+ pop {r4-r6, pc}
+_0206562C:
+ ldr r1, _02065654 ; =FUN_02065690
+ add r0, r6, #0x0
+ bl FUN_0201B6C4
+_02065634:
+ pop {r4-r6, pc}
+ nop
+_02065638: .word 0x021C48B8
+_0206563C: .word FUN_02065674
+_02065640: .word FUN_020654B0
+_02065644: .word 0x000005DC
+_02065648: .word FUN_02065710
+_0206564C: .word FUN_02065894
+_02065650: .word FUN_02065938
+_02065654: .word FUN_02065690
+
+ thumb_func_start FUN_02065658
+FUN_02065658: ; 0x02065658
+ push {r3-r5, lr}
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_02065EF8
+ add r0, r4, #0x0
+ bl FUN_020663D4
+ ldr r1, [r4, #0xc]
+ add r0, r5, #0x0
+ bl FUN_0201B6C4
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_02065674
+FUN_02065674: ; 0x02065674
+ push {r3-r5, lr}
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_02065F8C
+ add r0, r4, #0x0
+ bl FUN_020663D4
+ ldr r1, [r4, #0xc]
+ add r0, r5, #0x0
+ bl FUN_0201B6C4
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_02065690
+FUN_02065690: ; 0x02065690
+ push {r3-r5, lr}
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ ldrh r0, [r4, #0x10]
+ cmp r0, #0x3
+ bhi _02065704
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_020656A8: ; jump table (using 16-bit offset)
+ .short _020656B0 - _020656A8 - 2; case 0
+ .short _020656C6 - _020656A8 - 2; case 1
+ .short _020656D2 - _020656A8 - 2; case 2
+ .short _020656DE - _020656A8 - 2; case 3
+_020656B0:
+ add r0, r4, #0x0
+ mov r1, #0x0
+ bl FUN_02066578
+ cmp r0, #0x0
+ beq _0206570A
+ add r0, r4, #0x0
+ mov r1, #0x1
+ bl FUN_02066634
+ b _02065704
+_020656C6:
+ add r0, r4, #0x0
+ bl FUN_02066728
+ cmp r0, #0x0
+ bne _02065704
+ pop {r3-r5, pc}
+_020656D2:
+ add r0, r4, #0x0
+ bl FUN_020665C0
+ cmp r0, #0x0
+ bne _02065704
+ pop {r3-r5, pc}
+_020656DE:
+ add r0, r4, #0x0
+ mov r1, #0x1
+ bl FUN_02066578
+ cmp r0, #0x0
+ beq _0206570A
+ add r0, r4, #0x0
+ bl FUN_02066334
+ add r0, r4, #0x0
+ bl FUN_02065AF4
+ mov r0, #0x0
+ strh r0, [r4, #0x10]
+ ldr r1, _0206570C ; =FUN_020654D0
+ add r0, r5, #0x0
+ bl FUN_0201B6C4
+ pop {r3-r5, pc}
+_02065704:
+ ldrh r0, [r4, #0x10]
+ add r0, r0, #0x1
+ strh r0, [r4, #0x10]
+_0206570A:
+ pop {r3-r5, pc}
+ .balign 4
+_0206570C: .word FUN_020654D0
+
+ thumb_func_start FUN_02065710
+FUN_02065710: ; 0x02065710
+ push {r3-r4, lr}
+ sub sp, #0x4
+ add r4, r1, #0x0
+ ldrh r0, [r4, #0x10]
+ cmp r0, #0x5
+ bhi _020657DA
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02065728: ; jump table (using 16-bit offset)
+ .short _02065734 - _02065728 - 2; case 0
+ .short _02065744 - _02065728 - 2; case 1
+ .short _02065756 - _02065728 - 2; case 2
+ .short _02065780 - _02065728 - 2; case 3
+ .short _02065798 - _02065728 - 2; case 4
+ .short _020657AA - _02065728 - 2; case 5
+_02065734:
+ mov r1, #0x1
+ str r1, [sp, #0x0]
+ ldrb r2, [r4, #0x16]
+ add r0, r4, #0x0
+ mov r3, #0x0
+ bl FUN_02066404
+ b _020657DA
+_02065744:
+ add r0, r4, #0x0
+ bl FUN_020664F4
+ cmp r0, #0x0
+ beq _020657E0
+ add r0, r4, #0x0
+ bl FUN_02066520
+ b _020657DA
+_02065756:
+ add r0, r4, #0x0
+ bl FUN_0206654C
+ cmp r0, #0x0
+ blt _020657E0
+ beq _02065778
+ mov r3, #0x0
+ str r3, [sp, #0x0]
+ ldrb r2, [r4, #0x16]
+ add r0, r4, #0x0
+ mov r1, #0x2
+ bl FUN_02066404
+ mov r0, #0x4
+ add sp, #0x4
+ strh r0, [r4, #0x10]
+ pop {r3-r4, pc}
+_02065778:
+ mov r0, #0x3
+ add sp, #0x4
+ strh r0, [r4, #0x10]
+ pop {r3-r4, pc}
+_02065780:
+ add r0, r4, #0x0
+ bl FUN_020664D8
+ ldr r1, _020657E4 ; =FUN_02065674
+ ldr r2, _020657E8 ; =FUN_020654B0
+ add r0, r4, #0x0
+ bl FUN_02065FE4
+ mov r0, #0x0
+ add sp, #0x4
+ strh r0, [r4, #0x10]
+ pop {r3-r4, pc}
+_02065798:
+ add r0, r4, #0x0
+ bl FUN_020664F4
+ cmp r0, #0x0
+ beq _020657E0
+ add r0, r4, #0x0
+ bl FUN_02066520
+ b _020657DA
+_020657AA:
+ add r0, r4, #0x0
+ bl FUN_0206654C
+ cmp r0, #0x0
+ blt _020657E0
+ beq _020657C2
+ ldr r1, _020657EC ; =FUN_020659B8
+ add r0, r4, #0x0
+ mov r2, #0x0
+ bl FUN_02065FE4
+ b _020657CC
+_020657C2:
+ ldr r1, _020657F0 ; =FUN_020657F4
+ ldr r2, _020657E4 ; =FUN_02065674
+ add r0, r4, #0x0
+ bl FUN_02065FE4
+_020657CC:
+ add r0, r4, #0x0
+ bl FUN_020664D8
+ mov r0, #0x0
+ add sp, #0x4
+ strh r0, [r4, #0x10]
+ pop {r3-r4, pc}
+_020657DA:
+ ldrh r0, [r4, #0x10]
+ add r0, r0, #0x1
+ strh r0, [r4, #0x10]
+_020657E0:
+ add sp, #0x4
+ pop {r3-r4, pc}
+ .balign 4
+_020657E4: .word FUN_02065674
+_020657E8: .word FUN_020654B0
+_020657EC: .word FUN_020659B8
+_020657F0: .word FUN_020657F4
+
+ thumb_func_start FUN_020657F4
+FUN_020657F4: ; 0x020657F4
+ push {r3-r4, lr}
+ sub sp, #0x4
+ add r4, r1, #0x0
+ ldrh r0, [r4, #0x10]
+ cmp r0, #0x0
+ beq _0206580A
+ cmp r0, #0x1
+ beq _0206584E
+ cmp r0, #0x2
+ beq _0206585C
+ b _0206587E
+_0206580A:
+ ldr r0, [r4, #0xc]
+ cmp r0, #0x0
+ bne _02065820
+ add r0, r4, #0x0
+ bl FUN_02066334
+ add r0, r4, #0x0
+ mov r1, #0x0
+ mov r2, #0x1
+ bl FUN_02065DD8
+_02065820:
+ add r0, r4, #0x0
+ bl FUN_020661A0
+ cmp r0, #0x0
+ beq _0206583C
+ mov r0, #0x1
+ str r0, [sp, #0x0]
+ ldrb r2, [r4, #0x16]
+ add r0, r4, #0x0
+ mov r1, #0x3
+ mov r3, #0x0
+ bl FUN_02066404
+ b _0206587E
+_0206583C:
+ mov r0, #0x1
+ str r0, [sp, #0x0]
+ ldrb r2, [r4, #0x16]
+ add r0, r4, #0x0
+ mov r1, #0x4
+ mov r3, #0x0
+ bl FUN_02066404
+ b _0206587E
+_0206584E:
+ add r0, r4, #0x0
+ bl FUN_020664F4
+ cmp r0, #0x0
+ bne _0206587E
+ add sp, #0x4
+ pop {r3-r4, pc}
+_0206585C:
+ ldr r0, _02065888 ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #0x3
+ tst r0, r1
+ beq _02065884
+ add r0, r4, #0x0
+ bl FUN_020664D8
+ ldr r1, _0206588C ; =FUN_02065674
+ ldr r2, _02065890 ; =FUN_020654B0
+ add r0, r4, #0x0
+ bl FUN_02065FE4
+ mov r0, #0x0
+ add sp, #0x4
+ strh r0, [r4, #0x10]
+ pop {r3-r4, pc}
+_0206587E:
+ ldrh r0, [r4, #0x10]
+ add r0, r0, #0x1
+ strh r0, [r4, #0x10]
+_02065884:
+ add sp, #0x4
+ pop {r3-r4, pc}
+ .balign 4
+_02065888: .word 0x021C48B8
+_0206588C: .word FUN_02065674
+_02065890: .word FUN_020654B0
+
+ thumb_func_start FUN_02065894
+FUN_02065894: ; 0x02065894
+ push {r3-r5, lr}
+ add r4, r1, #0x0
+ ldrh r0, [r4, #0x10]
+ cmp r0, #0x3
+ bhi _0206592C
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_020658AA: ; jump table (using 16-bit offset)
+ .short _020658B2 - _020658AA - 2; case 0
+ .short _020658C8 - _020658AA - 2; case 1
+ .short _020658D6 - _020658AA - 2; case 2
+ .short _020658E2 - _020658AA - 2; case 3
+_020658B2:
+ add r0, r4, #0x0
+ mov r1, #0x0
+ bl FUN_02066578
+ cmp r0, #0x0
+ beq _02065932
+ add r0, r4, #0x0
+ mov r1, #0x1
+ bl FUN_02066634
+ b _0206592C
+_020658C8:
+ add r0, r4, #0x0
+ mov r1, #0xe
+ bl FUN_02066664
+ cmp r0, #0x0
+ bne _0206592C
+ pop {r3-r5, pc}
+_020658D6:
+ add r0, r4, #0x0
+ bl FUN_020665C0
+ cmp r0, #0x0
+ bne _0206592C
+ pop {r3-r5, pc}
+_020658E2:
+ add r0, r4, #0x0
+ mov r1, #0x1
+ bl FUN_02066578
+ cmp r0, #0x0
+ beq _02065932
+ mov r0, #0x6d
+ lsl r0, r0, #0x2
+ ldr r0, [r4, r0]
+ add r1, r0, #0x0
+ add r1, #0x22
+ ldrb r5, [r1, #0x0]
+ bl FUN_02016A18
+ cmp r5, #0x7
+ bne _02065912
+ ldr r1, [r4, #0xc]
+ add r0, r4, #0x0
+ mov r2, #0x0
+ bl FUN_02065FE4
+ mov r0, #0x0
+ strh r0, [r4, #0x10]
+ pop {r3-r5, pc}
+_02065912:
+ add r0, r4, #0x0
+ add r1, r5, #0x0
+ mov r2, #0x0
+ bl FUN_020661F8
+ ldr r1, _02065934 ; =FUN_020654B0
+ add r0, r4, #0x0
+ mov r2, #0x0
+ bl FUN_02065FE4
+ mov r0, #0x0
+ strh r0, [r4, #0x10]
+ pop {r3-r5, pc}
+_0206592C:
+ ldrh r0, [r4, #0x10]
+ add r0, r0, #0x1
+ strh r0, [r4, #0x10]
+_02065932:
+ pop {r3-r5, pc}
+ .balign 4
+_02065934: .word FUN_020654B0
+
+ thumb_func_start FUN_02065938
+FUN_02065938: ; 0x02065938
+ push {r3-r4, lr}
+ sub sp, #0x4
+ add r4, r1, #0x0
+ ldrh r0, [r4, #0x10]
+ cmp r0, #0x0
+ beq _0206594E
+ cmp r0, #0x1
+ beq _02065970
+ cmp r0, #0x2
+ beq _0206597E
+ b _020659A0
+_0206594E:
+ add r0, r4, #0x0
+ bl FUN_02066334
+ add r0, r4, #0x0
+ mov r1, #0x0
+ mov r2, #0x2
+ bl FUN_02065DD8
+ mov r0, #0x1
+ str r0, [sp, #0x0]
+ ldrb r2, [r4, #0x16]
+ add r0, r4, #0x0
+ mov r1, #0x5
+ mov r3, #0x0
+ bl FUN_02066404
+ b _020659A0
+_02065970:
+ add r0, r4, #0x0
+ bl FUN_020664F4
+ cmp r0, #0x0
+ bne _020659A0
+ add sp, #0x4
+ pop {r3-r4, pc}
+_0206597E:
+ ldr r0, _020659AC ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #0x3
+ tst r0, r1
+ beq _020659A6
+ add r0, r4, #0x0
+ bl FUN_020664D8
+ ldr r1, _020659B0 ; =FUN_02065674
+ ldr r2, _020659B4 ; =FUN_020654B0
+ add r0, r4, #0x0
+ bl FUN_02065FE4
+ mov r0, #0x0
+ add sp, #0x4
+ strh r0, [r4, #0x10]
+ pop {r3-r4, pc}
+_020659A0:
+ ldrh r0, [r4, #0x10]
+ add r0, r0, #0x1
+ strh r0, [r4, #0x10]
+_020659A6:
+ add sp, #0x4
+ pop {r3-r4, pc}
+ nop
+_020659AC: .word 0x021C48B8
+_020659B0: .word FUN_02065674
+_020659B4: .word FUN_020654B0
+
+ thumb_func_start FUN_020659B8
+FUN_020659B8: ; 0x020659B8
+ push {r4-r6, lr}
+ add r4, r1, #0x0
+ ldrh r0, [r4, #0x10]
+ cmp r0, #0x5
+ bls _020659C4
+ b _02065AE0
+_020659C4:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_020659D0: ; jump table (using 16-bit offset)
+ .short _020659DC - _020659D0 - 2; case 0
+ .short _02065A24 - _020659D0 - 2; case 1
+ .short _02065A68 - _020659D0 - 2; case 2
+ .short _02065A86 - _020659D0 - 2; case 3
+ .short _02065AB8 - _020659D0 - 2; case 4
+ .short _02065AC4 - _020659D0 - 2; case 5
+_020659DC:
+ add r0, r4, #0x0
+ mov r1, #0x0
+ bl FUN_02066578
+ cmp r0, #0x0
+ beq _02065AE6
+ add r0, r4, #0x0
+ mov r1, #0x1
+ bl FUN_02066634
+ mov r0, #0x1b
+ lsl r0, r0, #0x4
+ ldrb r2, [r4, #0x18]
+ mov r1, #0xc
+ ldr r0, [r4, r0]
+ mul r1, r2
+ add r1, r4, r1
+ ldrh r1, [r1, #0x22]
+ ldr r2, [r4, #0x0]
+ bl FUN_0206EEF8
+ cmp r0, #0x0
+ ldr r1, _02065AE8 ; =0x0000013B
+ beq _02065A1A
+ ldrb r2, [r4, r1]
+ mov r0, #0xc0
+ bic r2, r0
+ mov r0, #0x40
+ orr r0, r2
+ strb r0, [r4, r1]
+ b _02065AE0
+_02065A1A:
+ ldrb r2, [r4, r1]
+ mov r0, #0xc0
+ bic r2, r0
+ strb r2, [r4, r1]
+ b _02065AE0
+_02065A24:
+ add r0, r4, #0x0
+ mov r1, #0x9
+ bl FUN_02066664
+ cmp r0, #0x0
+ beq _02065AE6
+ mov r0, #0x6d
+ lsl r0, r0, #0x2
+ ldr r0, [r4, r0]
+ add r1, r0, #0x0
+ add r1, #0x22
+ ldrb r5, [r1, #0x0]
+ add r1, r0, #0x0
+ add r1, #0x23
+ ldrb r6, [r1, #0x0]
+ bl FUN_02016A18
+ cmp r6, #0x6
+ bne _02065A4E
+ cmp r5, #0x7
+ bne _02065A58
+_02065A4E:
+ ldr r0, _02065AEC ; =FUN_020657F4
+ str r0, [r4, #0xc]
+ mov r0, #0x4
+ strh r0, [r4, #0x10]
+ pop {r4-r6, pc}
+_02065A58:
+ strb r5, [r4, #0x17]
+ ldrb r1, [r4, #0x18]
+ mov r0, #0xc
+ mov r2, #0x0
+ mul r0, r1
+ add r0, r4, r0
+ strb r2, [r0, #0x1d]
+ b _02065AE0
+_02065A68:
+ add r0, r4, #0x0
+ bl FUN_02066728
+ cmp r0, #0x0
+ beq _02065AE6
+ cmp r0, #0x1
+ bne _02065A80
+ ldr r0, _02065AEC ; =FUN_020657F4
+ str r0, [r4, #0xc]
+ mov r0, #0x4
+ strh r0, [r4, #0x10]
+ pop {r4-r6, pc}
+_02065A80:
+ ldr r0, _02065AF0 ; =FUN_020654B0
+ str r0, [r4, #0xc]
+ b _02065AE0
+_02065A86:
+ add r0, r4, #0x0
+ mov r1, #0xb
+ bl FUN_02066664
+ cmp r0, #0x0
+ beq _02065AE6
+ mov r0, #0x6d
+ lsl r0, r0, #0x2
+ ldr r0, [r4, r0]
+ bl FUN_02016A18
+ ldr r2, _02065AE8 ; =0x0000013B
+ ldrb r1, [r4, #0x17]
+ ldrb r2, [r4, r2]
+ add r0, r4, #0x0
+ lsl r2, r2, #0x18
+ lsr r2, r2, #0x1e
+ bl FUN_020661F8
+ ldr r1, _02065AE8 ; =0x0000013B
+ mov r0, #0xc0
+ ldrb r2, [r4, r1]
+ bic r2, r0
+ strb r2, [r4, r1]
+ b _02065AE0
+_02065AB8:
+ add r0, r4, #0x0
+ bl FUN_020665C0
+ cmp r0, #0x0
+ bne _02065AE0
+ pop {r4-r6, pc}
+_02065AC4:
+ add r0, r4, #0x0
+ mov r1, #0x1
+ bl FUN_02066578
+ cmp r0, #0x0
+ beq _02065AE6
+ ldr r1, [r4, #0xc]
+ add r0, r4, #0x0
+ mov r2, #0x0
+ bl FUN_02065FE4
+ mov r0, #0x0
+ strh r0, [r4, #0x10]
+ pop {r4-r6, pc}
+_02065AE0:
+ ldrh r0, [r4, #0x10]
+ add r0, r0, #0x1
+ strh r0, [r4, #0x10]
+_02065AE6:
+ pop {r4-r6, pc}
+ .balign 4
+_02065AE8: .word 0x0000013B
+_02065AEC: .word FUN_020657F4
+_02065AF0: .word FUN_020654B0
+
+ thumb_func_start FUN_02065AF4
+FUN_02065AF4: ; 0x02065AF4
+ push {r3-r7, lr}
+ sub sp, #0x10
+ add r5, r0, #0x0
+ ldr r0, [r5, #0x0]
+ mov r6, #0x0
+ bl FUN_0205EB38
+ mov r1, #0x69
+ lsl r1, r1, #0x2
+ str r0, [r5, r1]
+ ldr r0, [r5, r1]
+ mov r1, #0xc8
+ mov r2, #0xa
+ mov r3, #0x8a
+ bl FUN_0205EC48
+ mov r0, #0x69
+ lsl r0, r0, #0x2
+ ldr r0, [r5, r0]
+ add r1, r6, #0x0
+ mov r2, #0x1
+ bl FUN_0205EC6C
+ mov r0, #0x69
+ lsl r0, r0, #0x2
+ mov r1, #0x1
+ ldr r0, [r5, r0]
+ add r2, r1, #0x0
+ bl FUN_0205EC6C
+ mov r1, #0x17
+ lsl r1, r1, #0x4
+ ldr r0, [r5, r1]
+ add r1, r1, #0x4
+ ldr r2, _02065CD8 ; =0x020F7E7C
+ add r1, r5, r1
+ bl FUN_02019150
+ mov r1, #0x17
+ lsl r1, r1, #0x4
+ ldr r0, [r5, r1]
+ add r1, #0x24
+ ldr r2, _02065CDC ; =0x020F7E84
+ add r1, r5, r1
+ bl FUN_02019150
+ mov r0, #0x5d
+ lsl r0, r0, #0x2
+ add r0, r5, r0
+ mov r1, #0xff
+ bl FUN_02019620
+ mov r0, #0x65
+ lsl r0, r0, #0x2
+ add r0, r5, r0
+ mov r1, #0xff
+ bl FUN_02019620
+ ldrb r0, [r5, #0x1b]
+ ldr r1, [r5, #0x0]
+ add r0, r0, #0x1
+ bl FUN_02012838
+ mov r1, #0x59
+ lsl r1, r1, #0x2
+ add r7, r5, #0x0
+ str r0, [r5, r1]
+ add r4, r6, #0x0
+ add r7, #0x1c
+_02065B7E:
+ mov r0, #0xc
+ mul r0, r4
+ add r2, r7, r0
+ ldrb r0, [r2, #0x1]
+ cmp r0, #0x0
+ beq _02065B9E
+ mov r0, #0x59
+ lsl r0, r0, #0x2
+ ldr r1, [r2, #0x8]
+ ldrb r2, [r2, #0x0]
+ ldr r0, [r5, r0]
+ bl FUN_020128A0
+ add r0, r6, #0x1
+ lsl r0, r0, #0x18
+ lsr r6, r0, #0x18
+_02065B9E:
+ add r0, r4, #0x1
+ lsl r0, r0, #0x18
+ lsr r4, r0, #0x18
+ cmp r4, #0x14
+ blo _02065B7E
+ mov r1, #0x59
+ lsl r1, r1, #0x2
+ ldr r0, [r5, r1]
+ sub r1, #0x4c
+ ldr r1, [r5, r1]
+ ldr r2, _02065CE0 ; =0x0000FFFF
+ bl FUN_020128A0
+ add r0, r6, #0x1
+ lsl r0, r0, #0x18
+ mov r1, #0x5
+ lsr r6, r0, #0x18
+ lsl r1, r1, #0x6
+ ldr r0, _02065CE4 ; =0x020F7E8C
+ add r1, r5, r1
+ mov r2, #0x20
+ blx MI_CpuCopy8
+ mov r1, #0x5d
+ lsl r1, r1, #0x2
+ add r0, r1, #0x0
+ add r2, r5, r1
+ sub r0, #0x28
+ str r2, [r5, r0]
+ add r0, r1, #0x0
+ sub r0, #0x10
+ ldr r2, [r5, r0]
+ add r0, r1, #0x0
+ sub r0, #0x34
+ str r2, [r5, r0]
+ add r0, r1, #0x0
+ sub r0, #0x18
+ str r5, [r5, r0]
+ add r0, r1, #0x0
+ sub r0, #0x24
+ strh r6, [r5, r0]
+ add r0, r1, #0x0
+ sub r0, #0x1d
+ ldrb r2, [r5, r0]
+ mov r0, #0xf
+ bic r2, r0
+ mov r0, #0x6
+ orr r2, r0
+ add r0, r1, #0x0
+ sub r0, #0x1d
+ strb r2, [r5, r0]
+ add r0, r1, #0x0
+ ldr r2, _02065CE8 ; =FUN_02065D4C
+ sub r0, #0x30
+ str r2, [r5, r0]
+ add r0, r1, #0x0
+ ldr r2, _02065CEC ; =FUN_02065CFC
+ sub r0, #0x2c
+ str r2, [r5, r0]
+ add r0, r1, #0x0
+ sub r0, #0x39
+ ldrb r0, [r5, r0]
+ lsl r0, r0, #0x1a
+ lsr r0, r0, #0x1e
+ beq _02065C64
+ add r0, r1, #0x0
+ sub r0, #0x38
+ ldrh r0, [r5, r0]
+ cmp r0, #0x0
+ bne _02065C48
+ add r0, r1, #0x0
+ sub r0, #0x36
+ ldrh r2, [r5, r0]
+ cmp r2, #0x0
+ beq _02065C5A
+ sub r0, r6, #0x1
+ cmp r2, r0
+ blt _02065C5A
+ add r0, r1, #0x0
+ sub r0, #0x36
+ ldrh r0, [r5, r0]
+ sub r1, #0x36
+ sub r0, r0, #0x1
+ strh r0, [r5, r1]
+ b _02065C5A
+_02065C48:
+ add r0, r0, #0x7
+ cmp r0, r6
+ blt _02065C5A
+ add r0, r1, #0x0
+ sub r0, #0x38
+ ldrh r0, [r5, r0]
+ sub r1, #0x38
+ sub r0, r0, #0x1
+ strh r0, [r5, r1]
+_02065C5A:
+ ldr r1, _02065CF0 ; =0x0000013B
+ mov r0, #0x30
+ ldrb r2, [r5, r1]
+ bic r2, r0
+ strb r2, [r5, r1]
+_02065C64:
+ mov r2, #0x5
+ lsl r2, r2, #0x6
+ sub r1, r2, #0x4
+ add r0, r5, r2
+ sub r2, r2, #0x2
+ ldr r3, [r5, #0x0]
+ ldrh r1, [r5, r1]
+ lsl r3, r3, #0x18
+ ldrh r2, [r5, r2]
+ lsr r3, r3, #0x18
+ bl FUN_020010A8
+ mov r1, #0x16
+ lsl r1, r1, #0x4
+ str r0, [r5, r1]
+ add r1, #0x14
+ add r0, r5, r1
+ ldr r2, _02065CF4 ; =0x000003D9
+ mov r1, #0x0
+ mov r3, #0xb
+ bl FUN_0200CCA4
+ mov r1, #0x0
+ str r1, [sp, #0x0]
+ mov r2, #0x65
+ ldr r0, _02065CF8 ; =0x0001020F
+ str r1, [sp, #0x4]
+ str r0, [sp, #0x8]
+ lsl r2, r2, #0x2
+ add r0, r5, r2
+ str r1, [sp, #0xc]
+ sub r2, #0x78
+ ldr r2, [r5, r2]
+ mov r3, #0x2
+ bl FUN_0201BDE0
+ mov r0, #0x65
+ lsl r0, r0, #0x2
+ ldr r2, _02065CF4 ; =0x000003D9
+ add r0, r5, r0
+ mov r1, #0x0
+ mov r3, #0xb
+ bl FUN_0200CCA4
+ mov r0, #0x17
+ lsl r0, r0, #0x4
+ ldr r0, [r5, r0]
+ mov r1, #0x3
+ bl FUN_0201AC68
+ ldr r1, _02065CF0 ; =0x0000013B
+ mov r0, #0xf
+ ldrb r2, [r5, r1]
+ bic r2, r0
+ strb r2, [r5, r1]
+ add sp, #0x10
+ pop {r3-r7, pc}
+ nop
+_02065CD8: .word 0x020F7E7C
+_02065CDC: .word 0x020F7E84
+_02065CE0: .word 0x0000FFFF
+_02065CE4: .word 0x020F7E8C
+_02065CE8: .word FUN_02065D4C
+_02065CEC: .word FUN_02065CFC
+_02065CF0: .word 0x0000013B
+_02065CF4: .word 0x000003D9
+_02065CF8: .word 0x0001020F
+
+ thumb_func_start FUN_02065CFC
+FUN_02065CFC: ; 0x02065CFC
+ push {r3-r5, lr}
+ add r4, r1, #0x0
+ mov r1, #0x13
+ add r5, r0, #0x0
+ bl FUN_02001470
+ ldr r1, _02065D48 ; =0x0000FFFF
+ cmp r4, r1
+ bne _02065D1C
+ add r0, r5, #0x0
+ mov r1, #0x1
+ mov r2, #0xf
+ mov r3, #0x2
+ bl FUN_020013E8
+ pop {r3-r5, pc}
+_02065D1C:
+ mov r1, #0xc
+ mul r1, r4
+ add r0, r0, r1
+ add r0, #0x20
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x0
+ beq _02065D38
+ add r0, r5, #0x0
+ mov r1, #0x3
+ mov r2, #0xf
+ mov r3, #0x4
+ bl FUN_020013E8
+ pop {r3-r5, pc}
+_02065D38:
+ add r0, r5, #0x0
+ mov r1, #0x7
+ mov r2, #0xf
+ mov r3, #0x8
+ bl FUN_020013E8
+ pop {r3-r5, pc}
+ nop
+_02065D48: .word 0x0000FFFF
+
+ thumb_func_start FUN_02065D4C
+FUN_02065D4C: ; 0x02065D4C
+ push {r3-r6, lr}
+ sub sp, #0x4
+ mov r1, #0x13
+ add r4, r0, #0x0
+ add r6, r2, #0x0
+ bl FUN_02001470
+ add r1, sp, #0x0
+ add r5, r0, #0x0
+ add r0, r4, #0x0
+ add r1, #0x2
+ add r2, sp, #0x0
+ bl FUN_02001448
+ add r0, r4, #0x0
+ mov r1, #0x2
+ bl FUN_02001470
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+ cmp r6, #0x0
+ bne _02065D7E
+ ldr r0, _02065DD4 ; =0x000005DC
+ bl FUN_020054C8
+_02065D7E:
+ add r0, sp, #0x0
+ ldrh r0, [r0, #0x2]
+ cmp r0, #0x0
+ bne _02065D96
+ mov r0, #0x69
+ lsl r0, r0, #0x2
+ mov r1, #0x0
+ ldr r0, [r5, r0]
+ add r2, r1, #0x0
+ bl FUN_0205EC6C
+ b _02065DA4
+_02065D96:
+ mov r0, #0x69
+ lsl r0, r0, #0x2
+ ldr r0, [r5, r0]
+ mov r1, #0x0
+ mov r2, #0x1
+ bl FUN_0205EC6C
+_02065DA4:
+ add r0, sp, #0x0
+ ldrh r1, [r0, #0x2]
+ sub r0, r4, #0x7
+ cmp r1, r0
+ bge _02065DC0
+ mov r0, #0x69
+ lsl r0, r0, #0x2
+ mov r1, #0x1
+ ldr r0, [r5, r0]
+ add r2, r1, #0x0
+ bl FUN_0205EC6C
+ add sp, #0x4
+ pop {r3-r6, pc}
+_02065DC0:
+ mov r0, #0x69
+ lsl r0, r0, #0x2
+ ldr r0, [r5, r0]
+ mov r1, #0x1
+ mov r2, #0x0
+ bl FUN_0205EC6C
+ add sp, #0x4
+ pop {r3-r6, pc}
+ nop
+_02065DD4: .word 0x000005DC
+
+ thumb_func_start FUN_02065DD8
+FUN_02065DD8: ; 0x02065DD8
+ push {r3-r7, lr}
+ sub sp, #0x8
+ str r1, [sp, #0x0]
+ add r5, r0, #0x0
+ str r2, [sp, #0x4]
+ ldr r1, [r5, #0x0]
+ mov r0, #0x4
+ bl FUN_02012838
+ mov r1, #0x59
+ lsl r1, r1, #0x2
+ str r0, [r5, r1]
+ add r0, r1, #0x0
+ add r0, #0xc
+ add r1, #0x10
+ ldr r0, [r5, r0]
+ ldr r2, _02065EC8 ; =0x020F7E74
+ add r1, r5, r1
+ bl FUN_02019150
+ mov r0, #0x5d
+ lsl r0, r0, #0x2
+ add r0, r5, r0
+ mov r1, #0xff
+ bl FUN_02019620
+ mov r7, #0x43
+ ldr r6, _02065ECC ; =0x020F7EAC
+ mov r4, #0x0
+ lsl r7, r7, #0x2
+_02065E14:
+ lsl r2, r4, #0x3
+ add r3, r6, r2
+ mov r0, #0x59
+ lsl r0, r0, #0x2
+ ldr r0, [r5, r0]
+ ldr r1, [r5, r7]
+ ldr r2, [r6, r2]
+ ldr r3, [r3, #0x4]
+ bl FUN_02012880
+ add r0, r4, #0x1
+ lsl r0, r0, #0x18
+ lsr r4, r0, #0x18
+ cmp r4, #0x4
+ blo _02065E14
+ mov r1, #0x5
+ lsl r1, r1, #0x6
+ ldr r0, _02065ED0 ; =0x020F7E8C
+ add r1, r5, r1
+ mov r2, #0x20
+ blx MI_CpuCopy8
+ mov r0, #0x5d
+ lsl r0, r0, #0x2
+ add r1, r0, #0x0
+ add r2, r5, r0
+ sub r1, #0x28
+ str r2, [r5, r1]
+ add r1, r0, #0x0
+ sub r1, #0x10
+ ldr r2, [r5, r1]
+ add r1, r0, #0x0
+ sub r1, #0x34
+ str r2, [r5, r1]
+ add r1, r0, #0x0
+ sub r1, #0x18
+ str r5, [r5, r1]
+ add r1, r0, #0x0
+ mov r2, #0x4
+ sub r1, #0x24
+ strh r2, [r5, r1]
+ add r1, r0, #0x0
+ sub r1, #0x22
+ strh r2, [r5, r1]
+ add r1, r0, #0x0
+ sub r1, #0x1a
+ ldrh r2, [r5, r1]
+ ldr r1, _02065ED4 ; =0xFFFFFE7F
+ and r2, r1
+ add r1, r0, #0x0
+ sub r1, #0x1a
+ strh r2, [r5, r1]
+ add r1, r0, #0x0
+ sub r0, #0x34
+ ldr r2, _02065ED8 ; =FUN_02065EE4
+ sub r1, #0x30
+ str r2, [r5, r1]
+ ldr r3, [r5, #0x0]
+ ldr r1, [sp, #0x0]
+ lsl r3, r3, #0x18
+ ldr r2, [sp, #0x4]
+ add r0, r5, r0
+ lsr r3, r3, #0x18
+ bl FUN_020010A8
+ mov r1, #0x16
+ lsl r1, r1, #0x4
+ str r0, [r5, r1]
+ add r1, #0x14
+ add r0, r5, r1
+ ldr r2, _02065EDC ; =0x000003D9
+ mov r1, #0x0
+ mov r3, #0xb
+ bl FUN_0200CCA4
+ mov r0, #0x17
+ lsl r0, r0, #0x4
+ ldr r0, [r5, r0]
+ mov r1, #0x3
+ bl FUN_0201AC68
+ ldr r1, _02065EE0 ; =0x0000013B
+ mov r0, #0xf
+ ldrb r2, [r5, r1]
+ bic r2, r0
+ mov r0, #0x1
+ orr r0, r2
+ strb r0, [r5, r1]
+ add sp, #0x8
+ pop {r3-r7, pc}
+ .balign 4
+_02065EC8: .word 0x020F7E74
+_02065ECC: .word 0x020F7EAC
+_02065ED0: .word 0x020F7E8C
+_02065ED4: .word 0xFFFFFE7F
+_02065ED8: .word FUN_02065EE4
+_02065EDC: .word 0x000003D9
+_02065EE0: .word 0x0000013B
+
+ thumb_func_start FUN_02065EE4
+FUN_02065EE4: ; 0x02065EE4
+ push {r3, lr}
+ cmp r2, #0x0
+ bne _02065EF0
+ ldr r0, _02065EF4 ; =0x000005DC
+ bl FUN_020054C8
+_02065EF0:
+ pop {r3, pc}
+ nop
+_02065EF4: .word 0x000005DC
+
+ thumb_func_start FUN_02065EF8
+FUN_02065EF8: ; 0x02065EF8
+ push {r3-r4, lr}
+ sub sp, #0x4
+ add r4, r0, #0x0
+ mov r0, #0x16
+ lsl r0, r0, #0x4
+ add r1, sp, #0x0
+ ldr r0, [r4, r0]
+ add r1, #0x2
+ add r2, sp, #0x0
+ bl FUN_02001300
+ mov r0, #0x59
+ lsl r0, r0, #0x2
+ ldr r0, [r4, r0]
+ bl FUN_02012870
+ mov r0, #0x65
+ lsl r0, r0, #0x2
+ add r0, r4, r0
+ bl FUN_02019570
+ mov r0, #0x65
+ lsl r0, r0, #0x2
+ add r0, r4, r0
+ mov r1, #0x0
+ bl FUN_0200CCF8
+ mov r0, #0x65
+ lsl r0, r0, #0x2
+ add r0, r4, r0
+ bl FUN_02019178
+ mov r0, #0x5d
+ lsl r0, r0, #0x2
+ add r0, r4, r0
+ bl FUN_02019570
+ mov r0, #0x5d
+ lsl r0, r0, #0x2
+ add r0, r4, r0
+ mov r1, #0x0
+ bl FUN_0200CCF8
+ mov r0, #0x5d
+ lsl r0, r0, #0x2
+ add r0, r4, r0
+ bl FUN_02019178
+ add r0, sp, #0x0
+ mov r1, #0x4f
+ ldrh r2, [r0, #0x2]
+ lsl r1, r1, #0x2
+ strh r2, [r4, r1]
+ ldrh r2, [r0, #0x0]
+ add r0, r1, #0x2
+ add r1, #0x68
+ strh r2, [r4, r0]
+ ldr r0, [r4, r1]
+ cmp r0, #0x0
+ beq _02065F7C
+ bl FUN_0205EBEC
+ mov r0, #0x69
+ mov r1, #0x0
+ lsl r0, r0, #0x2
+ str r1, [r4, r0]
+_02065F7C:
+ mov r0, #0x17
+ lsl r0, r0, #0x4
+ ldr r0, [r4, r0]
+ mov r1, #0x3
+ bl FUN_0201AC68
+ add sp, #0x4
+ pop {r3-r4, pc}
+
+ thumb_func_start FUN_02065F8C
+FUN_02065F8C: ; 0x02065F8C
+ push {r3-r4, lr}
+ sub sp, #0x4
+ add r4, r0, #0x0
+ mov r0, #0x5d
+ lsl r0, r0, #0x2
+ add r0, r4, r0
+ bl FUN_02019570
+ mov r0, #0x5d
+ lsl r0, r0, #0x2
+ add r0, r4, r0
+ mov r1, #0x0
+ bl FUN_0200CCF8
+ mov r0, #0x16
+ lsl r0, r0, #0x4
+ add r1, sp, #0x0
+ ldr r0, [r4, r0]
+ add r1, #0x2
+ add r2, sp, #0x0
+ bl FUN_02001300
+ mov r0, #0x59
+ lsl r0, r0, #0x2
+ ldr r0, [r4, r0]
+ bl FUN_02012870
+ mov r0, #0x5d
+ lsl r0, r0, #0x2
+ add r0, r4, r0
+ bl FUN_02019178
+ add r0, r4, #0x0
+ bl FUN_020664D8
+ mov r0, #0x17
+ lsl r0, r0, #0x4
+ ldr r0, [r4, r0]
+ mov r1, #0x3
+ bl FUN_0201AC68
+ add sp, #0x4
+ pop {r3-r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02065FE4
+FUN_02065FE4: ; 0x02065FE4
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ ldr r0, [r5, #0x8]
+ add r4, r2, #0x0
+ bl FUN_0201B6C4
+ mov r0, #0x0
+ strh r0, [r5, #0x10]
+ str r4, [r5, #0xc]
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_02065FF8
+FUN_02065FF8: ; 0x02065FF8
+ push {r3, lr}
+ strb r1, [r0, #0x0]
+ mov r1, #0x0
+ strb r1, [r0, #0x1]
+ strb r1, [r0, #0x2]
+ strb r1, [r0, #0x3]
+ ldr r0, [r0, #0x8]
+ cmp r0, #0x0
+ beq _0206600E
+ bl FUN_02021A4C
+_0206600E:
+ pop {r3, pc}
+
+ thumb_func_start FUN_02066010
+FUN_02066010: ; 0x02066010
+ push {r3-r7, lr}
+ add r6, r1, #0x0
+ add r5, r0, #0x0
+ add r7, r2, #0x0
+ mov r4, #0x0
+ cmp r6, #0x0
+ bls _02066040
+_0206601E:
+ mov r0, #0x8
+ add r1, r7, #0x0
+ bl FUN_020219F4
+ mov r1, #0xc
+ mul r1, r4
+ add r1, r5, r1
+ str r0, [r1, #0x8]
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_02065FF8
+ add r0, r4, #0x1
+ lsl r0, r0, #0x18
+ lsr r4, r0, #0x18
+ cmp r4, r6
+ blo _0206601E
+_02066040:
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_02066044
+FUN_02066044: ; 0x02066044
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ add r6, r1, #0x0
+ ldr r4, _0206606C ; =0x00000000
+ beq _0206606A
+ mov r7, #0xc
+_02066050:
+ add r0, r4, #0x0
+ mul r0, r7
+ add r0, r5, r0
+ ldr r0, [r0, #0x8]
+ cmp r0, #0x0
+ beq _02066060
+ bl FUN_02021A20
+_02066060:
+ add r0, r4, #0x1
+ lsl r0, r0, #0x18
+ lsr r4, r0, #0x18
+ cmp r4, r6
+ blo _02066050
+_0206606A:
+ pop {r3-r7, pc}
+ .balign 4
+_0206606C: .word 0x00000000
+
+ thumb_func_start FUN_02066070
+FUN_02066070: ; 0x02066070
+ push {r4-r7, lr}
+ sub sp, #0x14
+ add r4, r1, #0x0
+ add r6, r0, #0x0
+ add r0, r4, #0x0
+ add r5, r2, #0x0
+ bl FUN_02025838
+ mov r1, #0x6b
+ lsl r1, r1, #0x2
+ str r0, [sp, #0x4]
+ str r0, [r6, r1]
+ add r0, r4, #0x0
+ bl FUN_0206F158
+ mov r1, #0x1b
+ lsl r1, r1, #0x4
+ str r0, [r6, r1]
+ add r0, r5, #0x0
+ bl FUN_020256BC
+ add r7, r0, #0x0
+ add r0, r6, #0x0
+ str r0, [sp, #0x10]
+ add r0, #0x1b
+ str r0, [sp, #0x10]
+ add r0, r6, #0x0
+ str r0, [sp, #0x8]
+ add r0, #0x1c
+ mov r4, #0x0
+ str r0, [sp, #0x8]
+_020660AE:
+ ldr r0, [sp, #0x4]
+ mov r1, #0x0
+ add r2, r4, #0x0
+ add r3, r7, #0x0
+ bl FUN_020258D4
+ mov r0, #0xc
+ mul r0, r4
+ ldr r1, [sp, #0x8]
+ str r0, [sp, #0xc]
+ add r5, r1, r0
+ ldrb r1, [r6, #0x19]
+ mov r0, #0xc
+ add r2, r1, #0x0
+ mul r2, r0
+ ldr r0, [sp, #0x8]
+ add r1, r4, #0x0
+ add r0, r0, r2
+ str r0, [sp, #0x0]
+ add r0, r5, #0x0
+ bl FUN_02065FF8
+ ldr r1, [sp, #0x8]
+ ldr r0, [sp, #0xc]
+ strb r4, [r1, r0]
+ add r0, r7, #0x0
+ bl FUN_020256AC
+ cmp r0, #0x0
+ beq _02066134
+ mov r0, #0x1
+ strb r0, [r5, #0x1]
+ add r0, r7, #0x0
+ bl FUN_020257C8
+ strb r0, [r5, #0x4]
+ add r0, r7, #0x0
+ bl FUN_020257CC
+ strb r0, [r5, #0x5]
+ ldrb r0, [r5, #0x5]
+ bl FUN_0206EAD8
+ strh r0, [r5, #0x6]
+ add r0, r7, #0x0
+ bl FUN_020257C4
+ add r1, r0, #0x0
+ ldr r0, [r5, #0x8]
+ bl FUN_02021E28
+ ldrb r0, [r6, #0x19]
+ strb r0, [r5, #0x2]
+ ldrb r1, [r5, #0x0]
+ ldr r0, [sp, #0x0]
+ strb r1, [r0, #0x3]
+ ldrb r0, [r5, #0x0]
+ strb r0, [r6, #0x19]
+ ldr r0, [sp, #0x10]
+ ldrb r0, [r0, #0x0]
+ add r1, r0, #0x1
+ ldr r0, [sp, #0x10]
+ strb r1, [r0, #0x0]
+ ldrb r0, [r6, #0x1a]
+ cmp r0, #0xff
+ bne _02066134
+ strb r4, [r6, #0x1a]
+_02066134:
+ add r0, r4, #0x1
+ lsl r0, r0, #0x18
+ lsr r4, r0, #0x18
+ cmp r4, #0x14
+ blo _020660AE
+ ldrb r1, [r6, #0x19]
+ ldrb r3, [r6, #0x1a]
+ mov r0, #0xc
+ add r2, r1, #0x0
+ mul r2, r0
+ add r1, r6, r2
+ strb r3, [r1, #0x1f]
+ ldrb r1, [r6, #0x1a]
+ ldrb r2, [r6, #0x19]
+ mul r0, r1
+ add r0, r6, r0
+ strb r2, [r0, #0x1e]
+ add r0, r7, #0x0
+ bl FUN_02016A18
+ add sp, #0x14
+ pop {r4-r7, pc}
+
+ thumb_func_start FUN_02066160
+FUN_02066160: ; 0x02066160
+ push {r3-r6}
+ add r2, r1, #0x0
+ mov r3, #0xc
+ add r1, r0, #0x0
+ mul r2, r3
+ add r1, #0x1c
+ add r1, r1, r2
+ ldrb r4, [r1, #0x2]
+ ldrb r6, [r1, #0x3]
+ add r5, r4, #0x0
+ mul r5, r3
+ add r4, r0, r5
+ strb r6, [r4, #0x1f]
+ ldrb r4, [r1, #0x2]
+ ldrb r1, [r1, #0x3]
+ mul r3, r1
+ add r1, r0, r3
+ strb r4, [r1, #0x1e]
+ add r1, r0, r2
+ mov r3, #0x0
+ strb r3, [r1, #0x1d]
+ ldr r2, _0206619C ; =0x0000013B
+ mov r1, #0x30
+ ldrb r3, [r0, r2]
+ bic r3, r1
+ mov r1, #0x10
+ orr r1, r3
+ strb r1, [r0, r2]
+ pop {r3-r6}
+ bx lr
+ .balign 4
+_0206619C: .word 0x0000013B
+
+ thumb_func_start FUN_020661A0
+FUN_020661A0: ; 0x020661A0
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ ldrb r1, [r5, #0x18]
+ add r2, r5, #0x0
+ mov r0, #0xc
+ add r2, #0x1c
+ mul r0, r1
+ add r4, r2, r0
+ mov r0, #0x1b
+ lsl r0, r0, #0x4
+ ldrh r1, [r4, #0x6]
+ ldr r0, [r5, r0]
+ ldr r3, [r5, #0x0]
+ mov r2, #0x1
+ bl FUN_0206ED24
+ add r6, r0, #0x0
+ beq _020661D4
+ mov r0, #0x1b
+ lsl r0, r0, #0x4
+ ldrh r1, [r4, #0x6]
+ ldr r0, [r5, r0]
+ ldr r3, [r5, #0x0]
+ mov r2, #0x1
+ bl FUN_0206ED38
+_020661D4:
+ mov r0, #0x6b
+ lsl r0, r0, #0x2
+ ldrb r2, [r5, #0x18]
+ ldr r0, [r5, r0]
+ mov r1, #0x0
+ bl FUN_02025878
+ ldrb r1, [r5, #0x18]
+ add r0, r5, #0x0
+ bl FUN_02066160
+ ldrb r1, [r5, #0x18]
+ add r0, r4, #0x0
+ bl FUN_02065FF8
+ add r0, r6, #0x0
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_020661F8
+FUN_020661F8: ; 0x020661F8
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ add r7, r1, #0x0
+ ldrb r1, [r5, #0x18]
+ add r6, r2, #0x0
+ add r2, r5, #0x0
+ mov r0, #0xc
+ add r2, #0x1c
+ mul r0, r1
+ add r4, r2, r0
+ ldrb r0, [r4, #0x1]
+ cmp r0, #0x0
+ beq _0206626E
+ mov r0, #0x5b
+ lsl r0, r0, #0x2
+ ldr r0, [r5, r0]
+ bl FUN_020377AC
+ bl FUN_0206BB1C
+ add r1, r7, #0x0
+ bl FUN_0206B9B0
+ add r2, r0, #0x0
+ mov r0, #0x6b
+ lsl r0, r0, #0x2
+ ldrb r1, [r5, #0x18]
+ ldr r0, [r5, r0]
+ ldr r3, [r5, #0x0]
+ bl FUN_020856A0
+ cmp r6, #0x0
+ beq _0206625E
+ mov r0, #0x1b
+ lsl r0, r0, #0x4
+ ldrh r1, [r4, #0x6]
+ ldr r0, [r5, r0]
+ ldr r3, [r5, #0x0]
+ mov r2, #0x1
+ bl FUN_0206ED24
+ cmp r0, #0x0
+ beq _0206625E
+ mov r0, #0x1b
+ lsl r0, r0, #0x4
+ ldrh r1, [r4, #0x6]
+ ldr r0, [r5, r0]
+ ldr r3, [r5, #0x0]
+ mov r2, #0x1
+ bl FUN_0206ED38
+_0206625E:
+ ldrb r1, [r5, #0x18]
+ add r0, r5, #0x0
+ bl FUN_02066160
+ ldrb r1, [r5, #0x18]
+ add r0, r4, #0x0
+ bl FUN_02065FF8
+_0206626E:
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_02066270
+FUN_02066270: ; 0x02066270
+ push {r3-r7, lr}
+ add r6, r0, #0x0
+ mov r2, #0x5a
+ ldr r3, [r6, #0x0]
+ mov r0, #0x1
+ mov r1, #0x1a
+ lsl r2, r2, #0x2
+ bl FUN_0200A86C
+ mov r1, #0x43
+ lsl r1, r1, #0x2
+ str r0, [r6, r1]
+ ldr r2, [r6, #0x0]
+ mov r0, #0x1
+ mov r1, #0x80
+ bl FUN_0200AA90
+ mov r1, #0x11
+ lsl r1, r1, #0x4
+ str r0, [r6, r1]
+ ldr r1, [r6, #0x0]
+ mov r0, #0x80
+ bl FUN_020219F4
+ mov r1, #0x45
+ lsl r1, r1, #0x2
+ str r0, [r6, r1]
+ sub r1, #0x8
+ ldr r0, [r6, r1]
+ mov r1, #0x4
+ bl FUN_0200A914
+ mov r1, #0x46
+ lsl r1, r1, #0x2
+ str r0, [r6, r1]
+ sub r1, #0xc
+ ldr r0, [r6, r1]
+ mov r1, #0x0
+ bl FUN_0200A914
+ mov r1, #0x47
+ lsl r1, r1, #0x2
+ str r0, [r6, r1]
+ mov r4, #0x0
+ add r5, r6, #0x0
+ add r7, r1, #0x4
+_020662CC:
+ mov r0, #0x43
+ lsl r0, r0, #0x2
+ ldr r0, [r6, r0]
+ add r1, r4, #0x6
+ bl FUN_0200A914
+ str r0, [r5, r7]
+ add r4, r4, #0x1
+ add r5, r5, #0x4
+ cmp r4, #0x6
+ blt _020662CC
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_020662E4
+FUN_020662E4: ; 0x020662E4
+ push {r3-r7, lr}
+ add r6, r0, #0x0
+ mov r7, #0x12
+ mov r4, #0x0
+ add r5, r6, #0x0
+ lsl r7, r7, #0x4
+_020662F0:
+ ldr r0, [r5, r7]
+ bl FUN_02021A20
+ add r4, r4, #0x1
+ add r5, r5, #0x4
+ cmp r4, #0x6
+ blt _020662F0
+ mov r0, #0x47
+ lsl r0, r0, #0x2
+ ldr r0, [r6, r0]
+ bl FUN_02021A20
+ mov r0, #0x46
+ lsl r0, r0, #0x2
+ ldr r0, [r6, r0]
+ bl FUN_02021A20
+ mov r0, #0x45
+ lsl r0, r0, #0x2
+ ldr r0, [r6, r0]
+ bl FUN_02021A20
+ mov r0, #0x11
+ lsl r0, r0, #0x4
+ ldr r0, [r6, r0]
+ bl FUN_0200AB18
+ mov r0, #0x43
+ lsl r0, r0, #0x2
+ ldr r0, [r6, r0]
+ bl FUN_0200A8B8
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_02066334
+FUN_02066334: ; 0x02066334
+ push {r3-r4, lr}
+ sub sp, #0x14
+ add r4, r0, #0x0
+ mov r0, #0x5b
+ lsl r0, r0, #0x2
+ ldr r0, [r4, r0]
+ bl FUN_020377A8
+ mov r1, #0x17
+ lsl r1, r1, #0x4
+ str r0, [r4, r1]
+ ldrh r0, [r4, #0x14]
+ ldr r2, _020663C8 ; =0x000003E2
+ mov r3, #0xa
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x0]
+ ldr r0, [r4, #0x0]
+ str r0, [sp, #0x4]
+ ldr r0, [r4, r1]
+ mov r1, #0x3
+ bl FUN_0200CD68
+ mov r0, #0x0
+ str r0, [sp, #0x0]
+ ldr r0, [r4, #0x0]
+ ldr r2, _020663CC ; =0x000003D9
+ str r0, [sp, #0x4]
+ mov r0, #0x17
+ lsl r0, r0, #0x4
+ ldr r0, [r4, r0]
+ mov r1, #0x3
+ mov r3, #0xb
+ bl FUN_0200CB00
+ mov r1, #0x1a
+ ldr r2, [r4, #0x0]
+ mov r0, #0x0
+ lsl r1, r1, #0x4
+ bl FUN_02002ED0
+ mov r1, #0x6
+ ldr r2, [r4, #0x0]
+ mov r0, #0x0
+ lsl r1, r1, #0x6
+ bl FUN_02002EEC
+ mov r0, #0x13
+ str r0, [sp, #0x0]
+ mov r0, #0x1b
+ str r0, [sp, #0x4]
+ mov r0, #0x4
+ str r0, [sp, #0x8]
+ mov r0, #0xc
+ str r0, [sp, #0xc]
+ ldr r0, _020663D0 ; =0x0000036D
+ mov r1, #0x17
+ lsl r1, r1, #0x4
+ str r0, [sp, #0x10]
+ ldr r0, [r4, r1]
+ add r1, #0x14
+ add r1, r4, r1
+ mov r2, #0x3
+ mov r3, #0x2
+ bl FUN_02019064
+ mov r0, #0x61
+ lsl r0, r0, #0x2
+ add r0, r4, r0
+ mov r1, #0x0
+ bl FUN_02019620
+ add sp, #0x14
+ pop {r3-r4, pc}
+ .balign 4
+_020663C8: .word 0x000003E2
+_020663CC: .word 0x000003D9
+_020663D0: .word 0x0000036D
+
+ thumb_func_start FUN_020663D4
+FUN_020663D4: ; 0x020663D4
+ push {r4, lr}
+ add r4, r0, #0x0
+ mov r0, #0x61
+ lsl r0, r0, #0x2
+ add r0, r4, r0
+ bl FUN_02019570
+ mov r0, #0x61
+ lsl r0, r0, #0x2
+ add r0, r4, r0
+ bl FUN_02019178
+ mov r0, #0x61
+ lsl r0, r0, #0x2
+ add r0, r4, r0
+ mov r1, #0x0
+ mov r2, #0x10
+ blx MI_CpuFill8
+ mov r0, #0x17
+ mov r1, #0x0
+ lsl r0, r0, #0x4
+ str r1, [r4, r0]
+ pop {r4, pc}
+
+ thumb_func_start FUN_02066404
+FUN_02066404: ; 0x02066404
+ push {r3-r7, lr}
+ sub sp, #0x10
+ add r5, r0, #0x0
+ ldr r0, [sp, #0x28]
+ add r4, r1, #0x0
+ add r6, r2, #0x0
+ add r7, r3, #0x0
+ cmp r0, #0x0
+ beq _02066426
+ mov r0, #0x61
+ lsl r0, r0, #0x2
+ ldr r2, _020664CC ; =0x000003E2
+ add r0, r5, r0
+ mov r1, #0x1
+ mov r3, #0xa
+ bl FUN_0200D0BC
+_02066426:
+ mov r1, #0xd8
+ str r1, [sp, #0x0]
+ mov r0, #0x20
+ mov r2, #0x0
+ add r1, #0xac
+ str r0, [sp, #0x4]
+ add r0, r5, r1
+ mov r1, #0xff
+ add r3, r2, #0x0
+ bl FUN_020196F4
+ mov r0, #0x1
+ bl FUN_02002B60
+ mov r0, #0x0
+ bl FUN_02002B7C
+ cmp r4, #0x0
+ bne _02066494
+ mov r0, #0x45
+ lsl r0, r0, #0x2
+ ldr r0, [r5, r0]
+ bl FUN_02021A4C
+ mov r0, #0x1
+ str r0, [sp, #0x0]
+ mov r0, #0x2
+ str r0, [sp, #0x4]
+ mov r0, #0x11
+ lsl r0, r0, #0x4
+ ldrb r3, [r5, #0x18]
+ mov r2, #0xc
+ ldr r0, [r5, r0]
+ mul r2, r3
+ add r2, r5, r2
+ ldr r2, [r2, #0x24]
+ mov r1, #0x0
+ mov r3, #0x2
+ bl FUN_0200ABB4
+ mov r2, #0x11
+ lsl r2, r2, #0x4
+ lsl r3, r4, #0x2
+ add r1, r2, #0x4
+ ldr r0, [r5, r2]
+ add r3, r5, r3
+ add r2, #0x10
+ ldr r1, [r5, r1]
+ ldr r2, [r3, r2]
+ bl FUN_0200B7B8
+ mov r0, #0x45
+ lsl r0, r0, #0x2
+ ldr r2, [r5, r0]
+ b _0206649E
+_02066494:
+ lsl r0, r4, #0x2
+ add r1, r5, r0
+ mov r0, #0x12
+ lsl r0, r0, #0x4
+ ldr r2, [r1, r0]
+_0206649E:
+ mov r3, #0x0
+ str r3, [sp, #0x0]
+ ldr r0, _020664D0 ; =0x0001020F
+ str r6, [sp, #0x4]
+ str r0, [sp, #0x8]
+ mov r0, #0x61
+ lsl r0, r0, #0x2
+ add r0, r5, r0
+ mov r1, #0x1
+ str r3, [sp, #0xc]
+ bl FUN_0201BDE0
+ mov r1, #0x4e
+ lsl r1, r1, #0x2
+ strb r0, [r5, r1]
+ add r1, #0x4c
+ add r0, r5, r1
+ bl FUN_020191D0
+ ldr r0, _020664D4 ; =0x00000139
+ strb r7, [r5, r0]
+ add sp, #0x10
+ pop {r3-r7, pc}
+ .balign 4
+_020664CC: .word 0x000003E2
+_020664D0: .word 0x0001020F
+_020664D4: .word 0x00000139
+
+ thumb_func_start FUN_020664D8
+FUN_020664D8: ; 0x020664D8
+ push {r4, lr}
+ add r4, r0, #0x0
+ mov r0, #0x61
+ lsl r0, r0, #0x2
+ add r0, r4, r0
+ mov r1, #0x1
+ bl FUN_0200D0E0
+ mov r0, #0x61
+ lsl r0, r0, #0x2
+ add r0, r4, r0
+ bl FUN_02019570
+ pop {r4, pc}
+
+ thumb_func_start FUN_020664F4
+FUN_020664F4: ; 0x020664F4
+ push {r4, lr}
+ add r4, r0, #0x0
+ mov r0, #0x4e
+ lsl r0, r0, #0x2
+ ldrb r0, [r4, r0]
+ bl FUN_0201BD70
+ cmp r0, #0x0
+ beq _0206650A
+ mov r0, #0x0
+ pop {r4, pc}
+_0206650A:
+ ldr r0, _0206651C ; =0x00000139
+ ldrb r0, [r4, r0]
+ cmp r0, #0x0
+ beq _02066518
+ add r0, r4, #0x0
+ bl FUN_020664D8
+_02066518:
+ mov r0, #0x1
+ pop {r4, pc}
+ .balign 4
+_0206651C: .word 0x00000139
+
+ thumb_func_start FUN_02066520
+FUN_02066520: ; 0x02066520
+ push {r3-r4, lr}
+ sub sp, #0x4
+ add r4, r0, #0x0
+ ldr r0, [r4, #0x0]
+ ldr r1, _02066544 ; =0x020F7E6C
+ str r0, [sp, #0x0]
+ mov r0, #0x17
+ lsl r0, r0, #0x4
+ ldr r0, [r4, r0]
+ ldr r2, _02066548 ; =0x000003D9
+ mov r3, #0xb
+ bl FUN_02002198
+ mov r1, #0x5a
+ lsl r1, r1, #0x2
+ str r0, [r4, r1]
+ add sp, #0x4
+ pop {r3-r4, pc}
+ .balign 4
+_02066544: .word 0x020F7E6C
+_02066548: .word 0x000003D9
+
+ thumb_func_start FUN_0206654C
+FUN_0206654C: ; 0x0206654C
+ push {r3, lr}
+ add r1, r0, #0x0
+ mov r0, #0x5a
+ lsl r0, r0, #0x2
+ ldr r0, [r1, r0]
+ ldr r1, [r1, #0x0]
+ bl FUN_020021AC
+ cmp r0, #0x0
+ beq _0206656A
+ mov r1, #0x1
+ mvn r1, r1
+ cmp r0, r1
+ beq _0206656E
+ b _02066572
+_0206656A:
+ mov r0, #0x1
+ pop {r3, pc}
+_0206656E:
+ mov r0, #0x0
+ pop {r3, pc}
+_02066572:
+ add r0, r1, #0x1
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_02066578
+FUN_02066578: ; 0x02066578
+ push {r3-r4, lr}
+ sub sp, #0xc
+ add r4, r0, #0x0
+ ldrh r0, [r4, #0x12]
+ cmp r0, #0x0
+ beq _0206658A
+ cmp r0, #0x1
+ beq _020665A8
+ b _020665BA
+_0206658A:
+ mov r0, #0x6
+ str r0, [sp, #0x0]
+ mov r0, #0x1
+ str r0, [sp, #0x4]
+ ldr r0, [r4, #0x0]
+ add r2, r1, #0x0
+ str r0, [sp, #0x8]
+ mov r0, #0x0
+ add r3, r0, #0x0
+ bl FUN_0200E1D0
+ ldrh r0, [r4, #0x12]
+ add r0, r0, #0x1
+ strh r0, [r4, #0x12]
+ b _020665BA
+_020665A8:
+ bl FUN_0200E308
+ cmp r0, #0x0
+ beq _020665BA
+ mov r0, #0x0
+ strh r0, [r4, #0x12]
+ add sp, #0xc
+ mov r0, #0x1
+ pop {r3-r4, pc}
+_020665BA:
+ mov r0, #0x0
+ add sp, #0xc
+ pop {r3-r4, pc}
+
+ thumb_func_start FUN_020665C0
+FUN_020665C0: ; 0x020665C0
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldrh r0, [r4, #0x12]
+ cmp r0, #0x0
+ beq _020665D4
+ cmp r0, #0x1
+ beq _020665E6
+ cmp r0, #0x2
+ beq _02066614
+ b _0206662E
+_020665D4:
+ mov r0, #0x5b
+ lsl r0, r0, #0x2
+ ldr r0, [r4, r0]
+ bl FUN_0204649C
+ ldrh r0, [r4, #0x12]
+ add r0, r0, #0x1
+ strh r0, [r4, #0x12]
+ b _0206662E
+_020665E6:
+ mov r0, #0x5b
+ lsl r0, r0, #0x2
+ ldr r0, [r4, r0]
+ bl FUN_020464A4
+ cmp r0, #0x0
+ beq _0206662E
+ mov r0, #0x5b
+ lsl r0, r0, #0x2
+ ldr r0, [r4, r0]
+ mov r1, #0x5a
+ bl FUN_0224C678
+ mov r0, #0x5b
+ lsl r0, r0, #0x2
+ ldr r0, [r4, r0]
+ mov r1, #0x5a
+ bl FUN_0224C6E8
+ ldrh r0, [r4, #0x12]
+ add r0, r0, #0x1
+ strh r0, [r4, #0x12]
+ b _0206662E
+_02066614:
+ mov r0, #0x5b
+ lsl r0, r0, #0x2
+ ldr r0, [r4, r0]
+ mov r1, #0x5a
+ ldr r0, [r0, #0x50]
+ bl FUN_021DA58C
+ cmp r0, #0x0
+ beq _0206662E
+ mov r0, #0x0
+ strh r0, [r4, #0x12]
+ mov r0, #0x1
+ pop {r4, pc}
+_0206662E:
+ mov r0, #0x0
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02066634
+FUN_02066634: ; 0x02066634
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ mov r0, #0x5b
+ lsl r0, r0, #0x2
+ add r4, r1, #0x0
+ ldr r0, [r5, r0]
+ mov r1, #0x5a
+ bl FUN_021DAF98
+ cmp r4, #0x0
+ bne _02066652
+ add r0, r5, #0x0
+ bl FUN_02065EF8
+ b _02066658
+_02066652:
+ add r0, r5, #0x0
+ bl FUN_02065F8C
+_02066658:
+ add r0, r5, #0x0
+ bl FUN_020663D4
+ mov r0, #0x1
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_02066664
+FUN_02066664: ; 0x02066664
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ ldrh r0, [r5, #0x12]
+ add r6, r1, #0x0
+ cmp r0, #0x0
+ beq _02066676
+ cmp r0, #0x1
+ beq _02066708
+ b _0206671E
+_02066676:
+ ldr r0, [r5, #0x0]
+ mov r1, #0x40
+ bl FUN_02016998
+ mov r1, #0x0
+ mov r2, #0x40
+ add r4, r0, #0x0
+ blx MI_CpuFill8
+ mov r0, #0x5b
+ lsl r0, r0, #0x2
+ ldr r0, [r5, r0]
+ bl FUN_020377AC
+ bl FUN_0206BB1C
+ str r0, [r4, #0x0]
+ mov r0, #0x5b
+ lsl r0, r0, #0x2
+ ldr r0, [r5, r0]
+ bl FUN_020377AC
+ bl FUN_0206F158
+ str r0, [r4, #0x4]
+ mov r0, #0x5b
+ lsl r0, r0, #0x2
+ ldr r0, [r5, r0]
+ bl FUN_020377AC
+ bl LoadPlayerDataAddress
+ str r0, [r4, #0xc]
+ mov r0, #0x5b
+ lsl r0, r0, #0x2
+ ldr r0, [r5, r0]
+ ldr r0, [r0, #0xc]
+ bl FUN_02025838
+ str r0, [r4, #0x8]
+ add r0, r4, #0x0
+ mov r1, #0x0
+ add r0, #0x21
+ strb r1, [r0, #0x0]
+ add r0, r4, #0x0
+ add r0, #0x20
+ strb r6, [r0, #0x0]
+ ldrb r1, [r5, #0x18]
+ mov r0, #0xc
+ mul r0, r1
+ add r0, r5, r0
+ ldrh r0, [r0, #0x22]
+ cmp r6, #0xb
+ strh r0, [r4, #0x24]
+ bne _020666EC
+ ldrb r1, [r5, #0x17]
+ add r0, r4, #0x0
+ add r0, #0x22
+ strb r1, [r0, #0x0]
+_020666EC:
+ mov r0, #0x5b
+ lsl r0, r0, #0x2
+ ldr r0, [r5, r0]
+ ldr r1, _02066724 ; =0x020F96DC
+ add r2, r4, #0x0
+ bl FUN_020373D4
+ mov r0, #0x6d
+ lsl r0, r0, #0x2
+ str r4, [r5, r0]
+ ldrh r0, [r5, #0x12]
+ add r0, r0, #0x1
+ strh r0, [r5, #0x12]
+ b _0206671E
+_02066708:
+ mov r0, #0x5b
+ lsl r0, r0, #0x2
+ ldr r0, [r5, r0]
+ bl FUN_0204647C
+ cmp r0, #0x0
+ bne _0206671E
+ mov r0, #0x0
+ strh r0, [r5, #0x12]
+ mov r0, #0x1
+ pop {r4-r6, pc}
+_0206671E:
+ mov r0, #0x0
+ pop {r4-r6, pc}
+ nop
+_02066724: .word 0x020F96DC
+
+ thumb_func_start FUN_02066728
+FUN_02066728: ; 0x02066728
+ push {r3-r5, lr}
+ add r4, r0, #0x0
+ ldrh r0, [r4, #0x12]
+ cmp r0, #0x0
+ beq _02066738
+ cmp r0, #0x1
+ beq _0206677A
+ b _020667D0
+_02066738:
+ ldrb r2, [r4, #0x18]
+ mov r0, #0xc
+ mul r0, r2
+ add r3, r4, r0
+ ldrb r0, [r3, #0x1d]
+ cmp r0, #0x0
+ beq _02066756
+ mov r0, #0x5b
+ lsl r0, r0, #0x2
+ ldr r0, [r4, r0]
+ ldr r3, [r4, #0x0]
+ mov r1, #0x0
+ bl FUN_02037F58
+ b _0206676C
+_02066756:
+ ldr r0, [r4, #0x0]
+ add r3, #0x21
+ str r0, [sp, #0x0]
+ mov r0, #0x5b
+ lsl r0, r0, #0x2
+ ldrb r2, [r4, #0x17]
+ ldrb r3, [r3, #0x0]
+ ldr r0, [r4, r0]
+ mov r1, #0x0
+ bl FUN_02037F2C
+_0206676C:
+ mov r1, #0x6a
+ lsl r1, r1, #0x2
+ str r0, [r4, r1]
+ ldrh r0, [r4, #0x12]
+ add r0, r0, #0x1
+ strh r0, [r4, #0x12]
+ b _020667D0
+_0206677A:
+ mov r0, #0x5b
+ lsl r0, r0, #0x2
+ ldr r0, [r4, r0]
+ bl FUN_0204647C
+ cmp r0, #0x0
+ bne _020667D0
+ mov r0, #0x6a
+ lsl r0, r0, #0x2
+ ldr r0, [r4, r0]
+ bl FUN_020855E4
+ cmp r0, #0x0
+ beq _020667BC
+ ldrb r0, [r4, #0x18]
+ mov r2, #0xc
+ mov r3, #0x1
+ add r1, r0, #0x0
+ mul r1, r2
+ add r0, r4, r1
+ strb r3, [r0, #0x1d]
+ ldrb r3, [r4, #0x18]
+ mov r0, #0x6a
+ lsl r0, r0, #0x2
+ mul r2, r3
+ add r2, r4, r2
+ ldrb r2, [r2, #0x1c]
+ ldr r0, [r4, r0]
+ mov r1, #0x0
+ bl FUN_020855E8
+ mov r5, #0x2
+ b _020667BE
+_020667BC:
+ mov r5, #0x1
+_020667BE:
+ mov r0, #0x6a
+ lsl r0, r0, #0x2
+ ldr r0, [r4, r0]
+ bl FUN_0208562C
+ mov r0, #0x0
+ strh r0, [r4, #0x12]
+ add r0, r5, #0x0
+ pop {r3-r5, pc}
+_020667D0:
+ mov r0, #0x0
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_020667D4
+FUN_020667D4: ; 0x020667D4
+ push {r3-r5, lr}
+ add r4, r0, #0x0
+ bl FUN_02046528
+ add r5, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_0204652C
+ add r4, r0, #0x0
+ ldr r1, [r4, #0x4]
+ cmp r1, #0x0
+ beq _020667F2
+ cmp r1, #0x1
+ beq _02066802
+ b _02066814
+_020667F2:
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_020653EC
+ ldr r0, [r4, #0x4]
+ add r0, r0, #0x1
+ str r0, [r4, #0x4]
+ b _02066814
+_02066802:
+ ldr r1, [r4, #0x0]
+ cmp r1, #0x0
+ bne _0206680C
+ mov r0, #0x0
+ pop {r3-r5, pc}
+_0206680C:
+ bl FUN_02016A18
+ mov r0, #0x1
+ pop {r3-r5, pc}
+_02066814:
+ mov r0, #0x0
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_02066818
+FUN_02066818: ; 0x02066818
+ push {r4, lr}
+ bl FUN_02046528
+ add r4, r0, #0x0
+ mov r0, #0xb
+ mov r1, #0x8
+ bl FUN_020169D8
+ add r2, r0, #0x0
+ mov r0, #0x0
+ str r0, [r2, #0x0]
+ str r0, [r2, #0x4]
+ ldr r0, [r4, #0x10]
+ ldr r1, _0206683C ; =FUN_020667D4
+ bl FUN_0204640C
+ pop {r4, pc}
+ nop
+_0206683C: .word FUN_020667D4
+
+ thumb_func_start FUN_02066840
+FUN_02066840: ; 0x02066840
+ push {r4-r7, lr}
+ sub sp, #0xc
+ add r6, r0, #0x0
+ str r1, [sp, #0x0]
+ add r7, r2, #0x0
+ bl FUN_020238F4
+ add r4, r0, #0x0
+ add r0, r6, #0x0
+ bl FUN_02029AFC
+ add r5, r0, #0x0
+ add r0, r6, #0x0
+ bl FUN_0202A8D8
+ str r0, [sp, #0x4]
+ add r0, r7, #0x0
+ mov r1, #0x0
+ mov r2, #0xe4
+ blx MI_CpuFill8
+ add r0, r4, #0x0
+ bl FUN_0202398C
+ add r1, r7, #0x0
+ add r1, #0xa8
+ mov r2, #0x10
+ blx MI_CpuCopy8
+ add r0, r4, #0x0
+ bl FUN_020239BC
+ add r1, r7, #0x0
+ add r1, #0xbc
+ str r0, [r1, #0x0]
+ ldr r0, _02066970 ; =0x020ECAC0
+ ldrb r1, [r0, #0x0]
+ add r0, r7, #0x0
+ add r0, #0xb8
+ strb r1, [r0, #0x0]
+ ldr r0, _02066974 ; =0x020ECAC4
+ ldrb r1, [r0, #0x0]
+ add r0, r7, #0x0
+ add r0, #0xb9
+ strb r1, [r0, #0x0]
+ add r0, r5, #0x0
+ bl FUN_02029B38
+ add r1, r7, #0x0
+ add r1, #0xba
+ strb r0, [r1, #0x0]
+ add r0, r5, #0x0
+ bl FUN_02029B3C
+ add r1, r7, #0x0
+ add r1, #0xbb
+ strb r0, [r1, #0x0]
+ add r0, r4, #0x0
+ bl FUN_020239CC
+ add r1, r7, #0x0
+ add r1, #0xc8
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ lsl r0, r0, #0x1f
+ ldrb r1, [r1, #0x0]
+ mov r2, #0x2
+ lsr r0, r0, #0x1e
+ bic r1, r2
+ orr r1, r0
+ add r0, r7, #0x0
+ add r0, #0xc8
+ strb r1, [r0, #0x0]
+ add r0, r4, #0x0
+ bl FUN_02023A28
+ add r1, r0, #0x0
+ add r0, r7, #0x0
+ add r0, #0xc8
+ ldrb r0, [r0, #0x0]
+ mov r2, #0x1
+ lsl r0, r0, #0x1e
+ lsr r0, r0, #0x1f
+ bl FUN_020536D0
+ add r1, r7, #0x0
+ add r1, #0xc9
+ strb r0, [r1, #0x0]
+ add r0, r7, #0x0
+ mov r4, #0x0
+ str r0, [sp, #0x8]
+ add r0, #0xca
+ add r5, r4, #0x0
+ str r0, [sp, #0x8]
+_020668FC:
+ add r0, r6, #0x0
+ add r1, r4, #0x0
+ bl FUN_0202A5F4
+ ldr r1, [sp, #0x8]
+ mov r2, #0x8
+ add r1, r1, r5
+ blx MI_CpuCopy8
+ add r4, r4, #0x1
+ add r5, #0x8
+ cmp r4, #0x3
+ blt _020668FC
+ add r0, r6, #0x0
+ mov r1, #0x3
+ bl FUN_0202A5F4
+ add r1, r7, #0x0
+ add r1, #0xc0
+ mov r2, #0x8
+ blx MI_CpuCopy8
+ ldr r0, [sp, #0x0]
+ cmp r0, #0x0
+ bne _02066956
+ ldr r0, [sp, #0x4]
+ mov r1, #0x7
+ mov r2, #0x0
+ bl FUN_0202A578
+ add r1, r7, #0x0
+ add r1, #0xe2
+ strh r0, [r1, #0x0]
+ add r0, r7, #0x0
+ add r0, #0xe2
+ ldrh r0, [r0, #0x0]
+ cmp r0, #0x0
+ beq _0206696C
+ ldr r0, [sp, #0x4]
+ ldr r1, [sp, #0x0]
+ add r2, r7, #0x0
+ bl FUN_0202A498
+ add sp, #0xc
+ pop {r4-r7, pc}
+_02066956:
+ ldr r0, [sp, #0x4]
+ bl FUN_0202A520
+ add r1, r7, #0x0
+ add r1, #0xe2
+ strh r0, [r1, #0x0]
+ ldr r0, [sp, #0x4]
+ ldr r1, [sp, #0x0]
+ add r2, r7, #0x0
+ bl FUN_0202A498
+_0206696C:
+ add sp, #0xc
+ pop {r4-r7, pc}
+ .balign 4
+_02066970: .word 0x020ECAC0
+_02066974: .word 0x020ECAC4
+
+ thumb_func_start FUN_02066978
+FUN_02066978: ; 0x02066978
+ push {r4, lr}
+ add r4, r0, #0x0
+ mov r0, #0x0
+ add r1, r4, #0x0
+ mov r2, #0xec
+ blx MIi_CpuClearFast
+ add r0, r4, #0x0
+ ldrh r2, [r4, #0x6]
+ add r0, #0x8
+ mov r1, #0x80
+ bl FUN_0206A3A4
+ add r0, r4, #0x0
+ ldr r2, [r4, #0x0]
+ add r0, #0x88
+ mov r1, #0x64
+ bl FUN_0206A3A4
+ pop {r4, pc}
+
+ thumb_func_start FUN_020669A0
+FUN_020669A0: ; 0x020669A0
+ push {r4, lr}
+ add r4, r0, #0x0
+ mov r0, #0x0
+ add r1, r4, #0x0
+ mov r2, #0x88
+ blx MIi_CpuClearFast
+ add r0, r4, #0x0
+ ldrh r2, [r4, #0x6]
+ add r0, #0x8
+ mov r1, #0x80
+ bl FUN_0206A3A4
+ pop {r4, pc}
+
+ thumb_func_start FUN_020669BC
+FUN_020669BC: ; 0x020669BC
+ mov r0, #0xec
+ bx lr
+
+ thumb_func_start FUN_020669C0
+FUN_020669C0: ; 0x020669C0
+ push {r4, lr}
+ mov r1, #0xec
+ bl FUN_02016998
+ add r4, r0, #0x0
+ bl FUN_02066978
+ add r0, r4, #0x0
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_020669D4
+FUN_020669D4: ; 0x020669D4
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ ldrh r0, [r5, #0x4]
+ mov r4, #0x0
+ lsl r1, r0, #0x1f
+ lsr r1, r1, #0x1f
+ bne _02066A1A
+ lsl r0, r0, #0x1e
+ mov r4, #0x1
+ lsr r0, r0, #0x1f
+ beq _020669EE
+ bl ErrorHandling
+_020669EE:
+ ldrh r1, [r5, #0x4]
+ mov r0, #0x1
+ bic r1, r0
+ mov r0, #0x1
+ orr r0, r1
+ strh r0, [r5, #0x4]
+ ldrh r1, [r5, #0x4]
+ mov r0, #0x2
+ orr r0, r1
+ strh r0, [r5, #0x4]
+ add r0, r5, #0x0
+ ldr r2, [r5, #0x0]
+ add r0, #0x88
+ mov r1, #0x64
+ bl FUN_0206A3D0
+ add r0, r5, #0x0
+ ldrh r2, [r5, #0x6]
+ add r0, #0x8
+ mov r1, #0x80
+ bl FUN_0206A3D0
+_02066A1A:
+ add r0, r4, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_02066A20
+FUN_02066A20: ; 0x02066A20
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ ldrh r2, [r5, #0x4]
+ mov r4, #0x0
+ lsl r0, r2, #0x1f
+ lsr r0, r0, #0x1f
+ cmp r0, #0x1
+ bne _02066A68
+ cmp r1, #0x1
+ bne _02066A68
+ mov r0, #0x1
+ bic r2, r0
+ strh r2, [r5, #0x4]
+ ldrh r1, [r5, #0x4]
+ mov r0, #0x2
+ mov r4, #0x1
+ bic r1, r0
+ strh r1, [r5, #0x4]
+ add r0, r5, #0x0
+ ldr r2, [r5, #0x0]
+ add r0, #0x88
+ mov r1, #0x64
+ bl FUN_0206A3A4
+ add r0, r5, #0x0
+ add r0, #0x8
+ mov r1, #0x80
+ bl FUN_0206A3F8
+ strh r0, [r5, #0x6]
+ add r0, r5, #0x0
+ ldrh r2, [r5, #0x6]
+ add r0, #0x8
+ mov r1, #0x80
+ bl FUN_0206A3A4
+_02066A68:
+ add r0, r4, #0x0
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_02066A6C
+FUN_02066A6C: ; 0x02066A6C
+ push {r4, lr}
+ add r2, r0, #0x0
+ ldrh r1, [r2, #0x4]
+ mov r4, #0x0
+ lsl r0, r1, #0x1e
+ lsr r0, r0, #0x1f
+ bne _02066A8E
+ mov r0, #0x2
+ orr r0, r1
+ strh r0, [r2, #0x4]
+ add r0, r2, #0x0
+ ldrh r2, [r2, #0x6]
+ add r0, #0x8
+ mov r1, #0x80
+ mov r4, #0x1
+ bl FUN_0206A3D0
+_02066A8E:
+ add r0, r4, #0x0
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02066A94
+FUN_02066A94: ; 0x02066A94
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ ldrh r2, [r5, #0x4]
+ mov r4, #0x0
+ lsl r0, r2, #0x1e
+ lsr r0, r0, #0x1f
+ cmp r0, #0x1
+ bne _02066AC8
+ cmp r1, #0x1
+ bne _02066AC8
+ mov r0, #0x2
+ bic r2, r0
+ add r0, r5, #0x0
+ strh r2, [r5, #0x4]
+ add r0, #0x8
+ mov r1, #0x80
+ mov r4, #0x1
+ bl FUN_0206A3F8
+ strh r0, [r5, #0x6]
+ add r0, r5, #0x0
+ ldrh r2, [r5, #0x6]
+ add r0, #0x8
+ mov r1, #0x80
+ bl FUN_0206A3A4
+_02066AC8:
+ add r0, r4, #0x0
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_02066ACC
+FUN_02066ACC: ; 0x02066ACC
+ push {r0-r3}
+ push {r3-r6, lr}
+ sub sp, #0x2c
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ add r6, r3, #0x0
+ bl FUN_02066978
+ ldr r0, [sp, #0x50]
+ add r1, r4, #0x0
+ str r0, [sp, #0x0]
+ ldr r0, [sp, #0x54]
+ add r3, r6, #0x0
+ str r0, [sp, #0x4]
+ ldr r0, [sp, #0x58]
+ str r0, [sp, #0x8]
+ ldr r0, [sp, #0x5c]
+ str r0, [sp, #0xc]
+ ldr r2, [sp, #0x48]
+ add r0, r5, #0x0
+ bl FUN_02066B64
+ add r0, r5, #0x0
+ add r0, #0x88
+ mov r1, #0x64
+ mov r2, #0x0
+ bl FUN_0206A3A4
+ add r0, r5, #0x0
+ ldr r2, [r5, #0x0]
+ add r0, #0x88
+ mov r1, #0x64
+ bl FUN_0206A3A4
+ add r0, r5, #0x0
+ mov r1, #0xa0
+ add r2, sp, #0x48
+ bl FUN_02067830
+ mov r0, #0x0
+ bl FUN_020256BC
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ mov r1, #0xa9
+ add r2, r4, #0x0
+ bl FUN_02067830
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ mov r0, #0x0
+ str r0, [sp, #0x10]
+ add r0, r5, #0x0
+ mov r1, #0xa1
+ add r2, sp, #0x10
+ bl FUN_02067830
+ mov r0, #0x0
+ add r1, sp, #0x14
+ mov r2, #0x18
+ blx MIi_CpuClearFast
+ add r0, r5, #0x0
+ mov r1, #0xaa
+ add r2, sp, #0x14
+ bl FUN_02067830
+ add r0, r5, #0x0
+ bl FUN_02066ED8
+ add sp, #0x2c
+ pop {r3-r6}
+ pop {r3}
+ add sp, #0x10
+ bx r3
+
+ thumb_func_start FUN_02066B64
+FUN_02066B64: ; 0x02066B64
+ push {r0-r3}
+ push {r4-r7, lr}
+ sub sp, #0xc
+ add r5, r0, #0x0
+ bl FUN_020669A0
+ add r0, r5, #0x0
+ bl FUN_02066A6C
+ str r0, [sp, #0x0]
+ ldr r0, [sp, #0x30]
+ cmp r0, #0x0
+ bne _02066B8E
+ bl FUN_0201B9EC
+ add r4, r0, #0x0
+ bl FUN_0201B9EC
+ lsl r0, r0, #0x10
+ orr r0, r4
+ str r0, [sp, #0x34]
+_02066B8E:
+ add r0, r5, #0x0
+ mov r1, #0x0
+ add r2, sp, #0x34
+ bl FUN_02067960
+ ldr r0, [sp, #0x38]
+ cmp r0, #0x2
+ bne _02066BD6
+ ldr r7, _02066D84 ; =0xFFFF0000
+ add r6, r7, #0x0
+_02066BA2:
+ bl FUN_0201B9EC
+ add r4, r0, #0x0
+ bl FUN_0201B9EC
+ ldr r1, [sp, #0x34]
+ lsl r0, r0, #0x10
+ add r3, r4, #0x0
+ orr r3, r0
+ lsl r0, r1, #0x10
+ lsr r2, r0, #0x10
+ add r0, r1, #0x0
+ and r0, r7
+ lsr r1, r0, #0x10
+ add r0, r3, #0x0
+ str r3, [sp, #0x3c]
+ and r0, r6
+ lsl r3, r3, #0x10
+ lsr r0, r0, #0x10
+ lsr r3, r3, #0x10
+ eor r0, r3
+ eor r0, r1
+ eor r0, r2
+ cmp r0, #0x8
+ blo _02066BA2
+ b _02066BDE
+_02066BD6:
+ cmp r0, #0x1
+ beq _02066BDE
+ mov r0, #0x0
+ str r0, [sp, #0x3c]
+_02066BDE:
+ add r0, r5, #0x0
+ mov r1, #0x7
+ add r2, sp, #0x3c
+ bl FUN_02067960
+ ldr r2, _02066D88 ; =0x020ECAC4
+ add r0, r5, #0x0
+ mov r1, #0xc
+ bl FUN_02067960
+ add r0, r5, #0x0
+ mov r1, #0x5
+ add r2, sp, #0x24
+ bl FUN_02067960
+ add r0, r5, #0x0
+ mov r1, #0xb2
+ mov r2, #0x0
+ bl FUN_02067960
+ ldr r0, [sp, #0x24]
+ ldr r1, [sp, #0x28]
+ bl FUN_02068758
+ str r0, [sp, #0x8]
+ add r0, r5, #0x0
+ mov r1, #0x8
+ add r2, sp, #0x8
+ bl FUN_02067960
+ ldr r0, [sp, #0x24]
+ mov r1, #0x14
+ bl FUN_02068678
+ str r0, [sp, #0x8]
+ add r0, r5, #0x0
+ mov r1, #0x9
+ add r2, sp, #0x8
+ bl FUN_02067960
+ add r0, r5, #0x0
+ mov r1, #0x9b
+ add r2, sp, #0x28
+ bl FUN_02067960
+ ldr r2, _02066D8C ; =0x020ECAC0
+ add r0, r5, #0x0
+ mov r1, #0x79
+ bl FUN_02067960
+ mov r0, #0x4
+ str r0, [sp, #0x8]
+ add r0, r5, #0x0
+ mov r1, #0x9a
+ add r2, sp, #0x8
+ bl FUN_02067960
+ ldr r0, [sp, #0x2c]
+ cmp r0, #0x20
+ bge _02066C94
+ add r0, r5, #0x0
+ mov r1, #0x46
+ add r2, sp, #0x2c
+ bl FUN_02067960
+ add r0, r5, #0x0
+ mov r1, #0x47
+ add r2, sp, #0x2c
+ bl FUN_02067960
+ add r0, r5, #0x0
+ mov r1, #0x48
+ add r2, sp, #0x2c
+ bl FUN_02067960
+ add r0, r5, #0x0
+ mov r1, #0x49
+ add r2, sp, #0x2c
+ bl FUN_02067960
+ add r0, r5, #0x0
+ mov r1, #0x4a
+ add r2, sp, #0x2c
+ bl FUN_02067960
+ add r0, r5, #0x0
+ mov r1, #0x4b
+ add r2, sp, #0x2c
+ bl FUN_02067960
+ b _02066D18
+_02066C94:
+ bl FUN_0201B9EC
+ mov r1, #0x1f
+ str r0, [sp, #0x8]
+ and r0, r1
+ str r0, [sp, #0x4]
+ add r0, r5, #0x0
+ mov r1, #0x46
+ add r2, sp, #0x4
+ bl FUN_02067960
+ mov r0, #0x3e
+ ldr r1, [sp, #0x8]
+ lsl r0, r0, #0x4
+ and r0, r1
+ lsr r0, r0, #0x5
+ str r0, [sp, #0x4]
+ add r0, r5, #0x0
+ mov r1, #0x47
+ add r2, sp, #0x4
+ bl FUN_02067960
+ mov r0, #0x1f
+ ldr r1, [sp, #0x8]
+ lsl r0, r0, #0xa
+ and r0, r1
+ lsr r0, r0, #0xa
+ str r0, [sp, #0x4]
+ add r0, r5, #0x0
+ mov r1, #0x48
+ add r2, sp, #0x4
+ bl FUN_02067960
+ bl FUN_0201B9EC
+ mov r1, #0x1f
+ str r0, [sp, #0x8]
+ and r0, r1
+ str r0, [sp, #0x4]
+ add r0, r5, #0x0
+ mov r1, #0x49
+ add r2, sp, #0x4
+ bl FUN_02067960
+ mov r0, #0x3e
+ ldr r1, [sp, #0x8]
+ lsl r0, r0, #0x4
+ and r0, r1
+ lsr r0, r0, #0x5
+ str r0, [sp, #0x4]
+ add r0, r5, #0x0
+ mov r1, #0x4a
+ add r2, sp, #0x4
+ bl FUN_02067960
+ mov r0, #0x1f
+ ldr r1, [sp, #0x8]
+ lsl r0, r0, #0xa
+ and r0, r1
+ lsr r0, r0, #0xa
+ str r0, [sp, #0x4]
+ add r0, r5, #0x0
+ mov r1, #0x4b
+ add r2, sp, #0x4
+ bl FUN_02067960
+_02066D18:
+ ldr r0, [sp, #0x24]
+ mov r1, #0x18
+ bl FUN_02068678
+ str r0, [sp, #0x8]
+ ldr r0, [sp, #0x24]
+ mov r1, #0x19
+ bl FUN_02068678
+ str r0, [sp, #0x4]
+ cmp r0, #0x0
+ beq _02066D50
+ ldr r1, [sp, #0x34]
+ mov r0, #0x1
+ tst r0, r1
+ beq _02066D44
+ add r0, r5, #0x0
+ mov r1, #0xa
+ add r2, sp, #0x4
+ bl FUN_02067960
+ b _02066D5A
+_02066D44:
+ add r0, r5, #0x0
+ mov r1, #0xa
+ add r2, sp, #0x8
+ bl FUN_02067960
+ b _02066D5A
+_02066D50:
+ add r0, r5, #0x0
+ mov r1, #0xa
+ add r2, sp, #0x8
+ bl FUN_02067960
+_02066D5A:
+ add r0, r5, #0x0
+ bl FUN_020689E8
+ str r0, [sp, #0x8]
+ add r0, r5, #0x0
+ mov r1, #0x6f
+ add r2, sp, #0x8
+ bl FUN_02067960
+ add r0, r5, #0x0
+ bl FUN_020695F4
+ ldr r1, [sp, #0x0]
+ add r0, r5, #0x0
+ bl FUN_02066A94
+ add sp, #0xc
+ pop {r4-r7}
+ pop {r3}
+ add sp, #0x10
+ bx r3
+ .balign 4
+_02066D84: .word 0xFFFF0000
+_02066D88: .word 0x020ECAC4
+_02066D8C: .word 0x020ECAC0
+
+ thumb_func_start FUN_02066D90
+FUN_02066D90: ; 0x02066D90
+ push {r3-r7, lr}
+ sub sp, #0x18
+ str r2, [sp, #0x10]
+ str r3, [sp, #0x14]
+ ldr r4, [sp, #0x30]
+ add r6, r0, #0x0
+ add r7, r1, #0x0
+_02066D9E:
+ bl FUN_0201B9EC
+ add r5, r0, #0x0
+ bl FUN_0201B9EC
+ lsl r0, r0, #0x10
+ orr r5, r0
+ add r0, r5, #0x0
+ bl FUN_02068884
+ cmp r4, r0
+ bne _02066D9E
+ mov r0, #0x1
+ str r0, [sp, #0x0]
+ str r5, [sp, #0x4]
+ mov r0, #0x0
+ str r0, [sp, #0x8]
+ str r0, [sp, #0xc]
+ ldr r2, [sp, #0x10]
+ ldr r3, [sp, #0x14]
+ add r0, r6, #0x0
+ add r1, r7, #0x0
+ bl FUN_02066ACC
+ add sp, #0x18
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_02066DD4
+FUN_02066DD4: ; 0x02066DD4
+ push {r4-r7, lr}
+ sub sp, #0x24
+ str r1, [sp, #0x14]
+ str r2, [sp, #0x18]
+ str r3, [sp, #0x1c]
+ str r0, [sp, #0x10]
+ add r0, sp, #0x28
+ ldrb r0, [r0, #0x18]
+ ldr r6, [sp, #0x38]
+ ldr r7, [sp, #0x3c]
+ cmp r0, #0x0
+ beq _02066E4C
+ cmp r0, #0x1d
+ bhs _02066E4C
+ sub r0, r0, #0x1
+ str r0, [sp, #0x20]
+_02066DF4:
+ bl FUN_0201B9EC
+ add r4, r0, #0x0
+ bl FUN_0201B9EC
+ lsl r0, r0, #0x10
+ orr r4, r0
+ mov r3, #0x3
+ lsl r3, r3, #0x10
+ and r3, r4
+ mov r0, #0x3
+ add r2, r4, #0x0
+ and r2, r0
+ lsl r0, r0, #0x8
+ and r0, r4
+ lsr r1, r0, #0x6
+ mov r0, #0x3
+ lsl r0, r0, #0x18
+ and r0, r4
+ lsr r0, r0, #0x12
+ lsr r3, r3, #0xc
+ orr r0, r3
+ orr r0, r1
+ orr r0, r2
+ mov r1, #0x1c
+ blx _u32_div_f
+ lsl r0, r1, #0x10
+ lsr r5, r0, #0x10
+ add r0, r4, #0x0
+ bl FUN_02068884
+ cmp r7, r0
+ bne _02066DF4
+ ldr r0, [sp, #0x14]
+ add r1, r4, #0x0
+ bl FUN_02068A20
+ cmp r6, r0
+ bne _02066DF4
+ ldr r0, [sp, #0x20]
+ cmp r5, r0
+ bne _02066DF4
+ b _02066E58
+_02066E4C:
+ ldr r0, [sp, #0x14]
+ add r1, r6, #0x0
+ add r2, r7, #0x0
+ bl FUN_02066E74
+ add r4, r0, #0x0
+_02066E58:
+ mov r0, #0x1
+ str r0, [sp, #0x0]
+ str r4, [sp, #0x4]
+ mov r0, #0x0
+ str r0, [sp, #0x8]
+ str r0, [sp, #0xc]
+ ldr r0, [sp, #0x10]
+ ldr r1, [sp, #0x14]
+ ldr r2, [sp, #0x18]
+ ldr r3, [sp, #0x1c]
+ bl FUN_02066ACC
+ add sp, #0x24
+ pop {r4-r7, pc}
+
+ thumb_func_start FUN_02066E74
+FUN_02066E74: ; 0x02066E74
+ push {r3-r5, lr}
+ add r5, r1, #0x0
+ mov r1, #0x12
+ add r4, r2, #0x0
+ bl FUN_02068678
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ beq _02066EA0
+ cmp r0, #0xfe
+ beq _02066EA0
+ cmp r0, #0xff
+ beq _02066EA0
+ cmp r5, #0x0
+ bne _02066EA0
+ mov r1, #0x19
+ blx _s32_div_f
+ add r1, r0, #0x1
+ mov r0, #0x19
+ mul r0, r1
+ add r4, r0, r4
+_02066EA0:
+ add r0, r4, #0x0
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_02066EA4
+FUN_02066EA4: ; 0x02066EA4
+ push {r0-r3}
+ push {r4, lr}
+ sub sp, #0x10
+ mov r3, #0x1
+ str r3, [sp, #0x0]
+ ldr r3, [sp, #0x28]
+ add r4, r0, #0x0
+ str r3, [sp, #0x4]
+ mov r3, #0x0
+ str r3, [sp, #0x8]
+ str r3, [sp, #0xc]
+ bl FUN_02066ACC
+ add r0, r4, #0x0
+ mov r1, #0xae
+ add r2, sp, #0x24
+ bl FUN_02067830
+ add r0, r4, #0x0
+ bl FUN_02066ED8
+ add sp, #0x10
+ pop {r4}
+ pop {r3}
+ add sp, #0x10
+ bx r3
+
+ thumb_func_start FUN_02066ED8
+FUN_02066ED8: ; 0x02066ED8
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ bl FUN_020669D4
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_020687C0
+ str r0, [sp, #0x0]
+ add r0, r5, #0x0
+ mov r1, #0xa0
+ add r2, sp, #0x0
+ bl FUN_02067830
+ add r0, r5, #0x0
+ bl FUN_02066F04
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_02066A20
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_02066F04
+FUN_02066F04: ; 0x02066F04
+ push {r3-r7, lr}
+ sub sp, #0x58
+ add r5, r0, #0x0
+ bl FUN_020669D4
+ str r0, [sp, #0x0]
+ add r0, r5, #0x0
+ mov r1, #0xa0
+ mov r2, #0x0
+ bl FUN_020671BC
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ mov r1, #0xa3
+ mov r2, #0x0
+ bl FUN_020671BC
+ str r0, [sp, #0x2c]
+ add r0, r5, #0x0
+ mov r1, #0xa2
+ mov r2, #0x0
+ bl FUN_020671BC
+ str r0, [sp, #0x54]
+ add r0, r5, #0x0
+ mov r1, #0x46
+ mov r2, #0x0
+ bl FUN_020671BC
+ str r0, [sp, #0x30]
+ add r0, r5, #0x0
+ mov r1, #0xd
+ mov r2, #0x0
+ bl FUN_020671BC
+ str r0, [sp, #0x34]
+ add r0, r5, #0x0
+ mov r1, #0x47
+ mov r2, #0x0
+ bl FUN_020671BC
+ str r0, [sp, #0x28]
+ add r0, r5, #0x0
+ mov r1, #0xe
+ mov r2, #0x0
+ bl FUN_020671BC
+ str r0, [sp, #0x14]
+ add r0, r5, #0x0
+ mov r1, #0x48
+ mov r2, #0x0
+ bl FUN_020671BC
+ str r0, [sp, #0x24]
+ add r0, r5, #0x0
+ mov r1, #0xf
+ mov r2, #0x0
+ bl FUN_020671BC
+ str r0, [sp, #0x10]
+ add r0, r5, #0x0
+ mov r1, #0x49
+ mov r2, #0x0
+ bl FUN_020671BC
+ str r0, [sp, #0x20]
+ add r0, r5, #0x0
+ mov r1, #0x10
+ mov r2, #0x0
+ bl FUN_020671BC
+ str r0, [sp, #0xc]
+ add r0, r5, #0x0
+ mov r1, #0x4a
+ mov r2, #0x0
+ bl FUN_020671BC
+ str r0, [sp, #0x1c]
+ add r0, r5, #0x0
+ mov r1, #0x11
+ mov r2, #0x0
+ bl FUN_020671BC
+ str r0, [sp, #0x8]
+ add r0, r5, #0x0
+ mov r1, #0x4b
+ mov r2, #0x0
+ bl FUN_020671BC
+ str r0, [sp, #0x18]
+ add r0, r5, #0x0
+ mov r1, #0x12
+ mov r2, #0x0
+ bl FUN_020671BC
+ str r0, [sp, #0x4]
+ add r0, r5, #0x0
+ mov r1, #0x70
+ mov r2, #0x0
+ bl FUN_020671BC
+ str r0, [sp, #0x38]
+ add r0, r5, #0x0
+ mov r1, #0x5
+ mov r2, #0x0
+ bl FUN_020671BC
+ add r7, r0, #0x0
+ mov r0, #0x0
+ mov r1, #0x2c
+ bl FUN_02016998
+ add r6, r0, #0x0
+ ldr r1, [sp, #0x38]
+ add r0, r7, #0x0
+ add r2, r6, #0x0
+ bl FUN_0206A380
+ mov r0, #0x49
+ lsl r0, r0, #0x2
+ cmp r7, r0
+ bne _02066FFC
+ mov r0, #0x1
+ b _0206701E
+_02066FFC:
+ ldr r0, [sp, #0x34]
+ asr r0, r0, #0x1
+ lsr r1, r0, #0x1e
+ ldr r0, [sp, #0x34]
+ add r1, r0, r1
+ asr r0, r1, #0x2
+ ldrb r1, [r6, #0x0]
+ lsl r2, r1, #0x1
+ ldr r1, [sp, #0x30]
+ add r1, r1, r2
+ add r0, r0, r1
+ mul r0, r4
+ mov r1, #0x64
+ blx _s32_div_f
+ add r0, r4, r0
+ add r0, #0xa
+_0206701E:
+ str r0, [sp, #0x50]
+ add r0, r5, #0x0
+ mov r1, #0xa3
+ add r2, sp, #0x50
+ bl FUN_02067830
+ ldr r0, [sp, #0x14]
+ asr r0, r0, #0x1
+ lsr r1, r0, #0x1e
+ ldr r0, [sp, #0x14]
+ add r1, r0, r1
+ asr r0, r1, #0x2
+ ldrb r1, [r6, #0x1]
+ lsl r2, r1, #0x1
+ ldr r1, [sp, #0x28]
+ add r1, r1, r2
+ add r0, r0, r1
+ mul r0, r4
+ mov r1, #0x64
+ blx _s32_div_f
+ add r0, r0, #0x5
+ str r0, [sp, #0x4c]
+ add r0, r5, #0x0
+ bl FUN_02068854
+ ldr r1, [sp, #0x4c]
+ mov r2, #0x1
+ lsl r1, r1, #0x10
+ lsr r1, r1, #0x10
+ bl FUN_02068894
+ str r0, [sp, #0x4c]
+ add r0, r5, #0x0
+ mov r1, #0xa4
+ add r2, sp, #0x4c
+ bl FUN_02067830
+ ldr r0, [sp, #0x10]
+ asr r0, r0, #0x1
+ lsr r1, r0, #0x1e
+ ldr r0, [sp, #0x10]
+ add r1, r0, r1
+ asr r0, r1, #0x2
+ ldrb r1, [r6, #0x2]
+ lsl r2, r1, #0x1
+ ldr r1, [sp, #0x24]
+ add r1, r1, r2
+ add r0, r0, r1
+ mul r0, r4
+ mov r1, #0x64
+ blx _s32_div_f
+ add r0, r0, #0x5
+ str r0, [sp, #0x48]
+ add r0, r5, #0x0
+ bl FUN_02068854
+ ldr r1, [sp, #0x48]
+ mov r2, #0x2
+ lsl r1, r1, #0x10
+ lsr r1, r1, #0x10
+ bl FUN_02068894
+ str r0, [sp, #0x48]
+ add r0, r5, #0x0
+ mov r1, #0xa5
+ add r2, sp, #0x48
+ bl FUN_02067830
+ ldr r0, [sp, #0xc]
+ asr r0, r0, #0x1
+ lsr r1, r0, #0x1e
+ ldr r0, [sp, #0xc]
+ add r1, r0, r1
+ asr r0, r1, #0x2
+ ldrb r1, [r6, #0x3]
+ lsl r2, r1, #0x1
+ ldr r1, [sp, #0x20]
+ add r1, r1, r2
+ add r0, r0, r1
+ mul r0, r4
+ mov r1, #0x64
+ blx _s32_div_f
+ add r0, r0, #0x5
+ str r0, [sp, #0x44]
+ add r0, r5, #0x0
+ bl FUN_02068854
+ ldr r1, [sp, #0x44]
+ mov r2, #0x3
+ lsl r1, r1, #0x10
+ lsr r1, r1, #0x10
+ bl FUN_02068894
+ str r0, [sp, #0x44]
+ add r0, r5, #0x0
+ mov r1, #0xa6
+ add r2, sp, #0x44
+ bl FUN_02067830
+ ldr r0, [sp, #0x8]
+ asr r0, r0, #0x1
+ lsr r1, r0, #0x1e
+ ldr r0, [sp, #0x8]
+ add r1, r0, r1
+ asr r0, r1, #0x2
+ ldrb r1, [r6, #0x4]
+ lsl r2, r1, #0x1
+ ldr r1, [sp, #0x1c]
+ add r1, r1, r2
+ add r0, r0, r1
+ mul r0, r4
+ mov r1, #0x64
+ blx _s32_div_f
+ add r0, r0, #0x5
+ str r0, [sp, #0x40]
+ add r0, r5, #0x0
+ bl FUN_02068854
+ ldr r1, [sp, #0x40]
+ mov r2, #0x4
+ lsl r1, r1, #0x10
+ lsr r1, r1, #0x10
+ bl FUN_02068894
+ str r0, [sp, #0x40]
+ add r0, r5, #0x0
+ mov r1, #0xa7
+ add r2, sp, #0x40
+ bl FUN_02067830
+ ldr r0, [sp, #0x4]
+ asr r0, r0, #0x1
+ lsr r1, r0, #0x1e
+ ldr r0, [sp, #0x4]
+ add r1, r0, r1
+ asr r0, r1, #0x2
+ ldrb r1, [r6, #0x5]
+ lsl r2, r1, #0x1
+ ldr r1, [sp, #0x18]
+ add r1, r1, r2
+ add r0, r0, r1
+ mul r0, r4
+ mov r1, #0x64
+ blx _s32_div_f
+ add r0, r0, #0x5
+ str r0, [sp, #0x3c]
+ add r0, r5, #0x0
+ bl FUN_02068854
+ ldr r1, [sp, #0x3c]
+ mov r2, #0x5
+ lsl r1, r1, #0x10
+ lsr r1, r1, #0x10
+ bl FUN_02068894
+ str r0, [sp, #0x3c]
+ add r0, r5, #0x0
+ mov r1, #0xa8
+ add r2, sp, #0x3c
+ bl FUN_02067830
+ add r0, r6, #0x0
+ bl FUN_02016A18
+ ldr r1, [sp, #0x54]
+ cmp r1, #0x0
+ bne _0206717C
+ ldr r0, [sp, #0x2c]
+ cmp r0, #0x0
+ bne _020671A0
+_0206717C:
+ mov r0, #0x49
+ lsl r0, r0, #0x2
+ cmp r7, r0
+ bne _0206718A
+ mov r0, #0x1
+ str r0, [sp, #0x54]
+ b _020671A0
+_0206718A:
+ cmp r1, #0x0
+ bne _02067194
+ ldr r0, [sp, #0x50]
+ str r0, [sp, #0x54]
+ b _020671A0
+_02067194:
+ ldr r1, [sp, #0x50]
+ ldr r0, [sp, #0x2c]
+ ldr r2, [sp, #0x54]
+ sub r0, r1, r0
+ add r0, r2, r0
+ str r0, [sp, #0x54]
+_020671A0:
+ ldr r0, [sp, #0x54]
+ cmp r0, #0x0
+ beq _020671B0
+ add r0, r5, #0x0
+ mov r1, #0xa2
+ add r2, sp, #0x54
+ bl FUN_02067830
+_020671B0:
+ ldr r1, [sp, #0x0]
+ add r0, r5, #0x0
+ bl FUN_02066A20
+ add sp, #0x58
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_020671BC
+FUN_020671BC: ; 0x020671BC
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ ldrh r0, [r5, #0x4]
+ add r4, r1, #0x0
+ add r6, r2, #0x0
+ lsl r0, r0, #0x1f
+ lsr r0, r0, #0x1f
+ bne _02067204
+ add r0, r5, #0x0
+ ldr r2, [r5, #0x0]
+ add r0, #0x88
+ mov r1, #0x64
+ bl FUN_0206A3D0
+ add r0, r5, #0x0
+ ldrh r2, [r5, #0x6]
+ add r0, #0x8
+ mov r1, #0x80
+ bl FUN_0206A3D0
+ add r0, r5, #0x0
+ add r0, #0x8
+ mov r1, #0x80
+ bl FUN_0206A3F8
+ ldrh r1, [r5, #0x6]
+ cmp r0, r1
+ beq _02067204
+ cmp r0, r1
+ beq _020671FC
+ bl ErrorHandling
+_020671FC:
+ ldrh r1, [r5, #0x4]
+ mov r0, #0x4
+ orr r0, r1
+ strh r0, [r5, #0x4]
+_02067204:
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ add r2, r6, #0x0
+ bl FUN_02067234
+ add r4, r0, #0x0
+ ldrh r0, [r5, #0x4]
+ lsl r0, r0, #0x1f
+ lsr r0, r0, #0x1f
+ bne _02067230
+ add r0, r5, #0x0
+ ldr r2, [r5, #0x0]
+ add r0, #0x88
+ mov r1, #0x64
+ bl FUN_0206A3A4
+ add r0, r5, #0x0
+ ldrh r2, [r5, #0x6]
+ add r0, #0x8
+ mov r1, #0x80
+ bl FUN_0206A3A4
+_02067230:
+ add r0, r4, #0x0
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_02067234
+FUN_02067234: ; 0x02067234
+ push {r3, lr}
+ add r3, r1, #0x0
+ sub r3, #0x9f
+ cmp r3, #0xb
+ bhi _020672B6
+ add r3, r3, r3
+ add r3, pc
+ ldrh r3, [r3, #0x6]
+ lsl r3, r3, #0x10
+ asr r3, r3, #0x10
+ add pc, r3
+_0206724A: ; jump table (using 16-bit offset)
+ .short _02067262 - _0206724A - 2; case 0
+ .short _02067268 - _0206724A - 2; case 1
+ .short _0206726E - _0206724A - 2; case 2
+ .short _02067274 - _0206724A - 2; case 3
+ .short _0206727A - _0206724A - 2; case 4
+ .short _02067280 - _0206724A - 2; case 5
+ .short _02067286 - _0206724A - 2; case 6
+ .short _0206728C - _0206724A - 2; case 7
+ .short _02067292 - _0206724A - 2; case 8
+ .short _02067298 - _0206724A - 2; case 9
+ .short _0206729E - _0206724A - 2; case 10
+ .short _020672AA - _0206724A - 2; case 11
+_02067262:
+ add r0, #0x88
+ ldr r0, [r0, #0x0]
+ pop {r3, pc}
+_02067268:
+ add r0, #0x8c
+ ldrb r0, [r0, #0x0]
+ pop {r3, pc}
+_0206726E:
+ add r0, #0x8d
+ ldrb r0, [r0, #0x0]
+ pop {r3, pc}
+_02067274:
+ add r0, #0x8e
+ ldrh r0, [r0, #0x0]
+ pop {r3, pc}
+_0206727A:
+ add r0, #0x90
+ ldrh r0, [r0, #0x0]
+ pop {r3, pc}
+_02067280:
+ add r0, #0x92
+ ldrh r0, [r0, #0x0]
+ pop {r3, pc}
+_02067286:
+ add r0, #0x94
+ ldrh r0, [r0, #0x0]
+ pop {r3, pc}
+_0206728C:
+ add r0, #0x96
+ ldrh r0, [r0, #0x0]
+ pop {r3, pc}
+_02067292:
+ add r0, #0x98
+ ldrh r0, [r0, #0x0]
+ pop {r3, pc}
+_02067298:
+ add r0, #0x9a
+ ldrh r0, [r0, #0x0]
+ pop {r3, pc}
+_0206729E:
+ add r0, #0x9c
+ add r1, r2, #0x0
+ bl FUN_020256D0
+ mov r0, #0x1
+ pop {r3, pc}
+_020672AA:
+ add r0, #0xd4
+ add r1, r2, #0x0
+ bl FUN_02029C74
+ mov r0, #0x1
+ pop {r3, pc}
+_020672B6:
+ bl FUN_0206731C
+ pop {r3, pc}
+
+ thumb_func_start FUN_020672BC
+FUN_020672BC: ; 0x020672BC
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ ldrh r0, [r5, #0x4]
+ add r4, r1, #0x0
+ add r6, r2, #0x0
+ lsl r0, r0, #0x1e
+ lsr r0, r0, #0x1f
+ bne _020672F8
+ ldrh r2, [r5, #0x6]
+ add r0, r5, #0x0
+ add r0, #0x8
+ mov r1, #0x80
+ bl FUN_0206A3D0
+ add r0, r5, #0x0
+ add r0, #0x8
+ mov r1, #0x80
+ bl FUN_0206A3F8
+ ldrh r1, [r5, #0x6]
+ cmp r0, r1
+ beq _020672F8
+ cmp r0, r1
+ beq _020672F0
+ bl ErrorHandling
+_020672F0:
+ ldrh r1, [r5, #0x4]
+ mov r0, #0x4
+ orr r0, r1
+ strh r0, [r5, #0x4]
+_020672F8:
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ add r2, r6, #0x0
+ bl FUN_0206731C
+ add r4, r0, #0x0
+ ldrh r0, [r5, #0x4]
+ lsl r0, r0, #0x1e
+ lsr r0, r0, #0x1f
+ bne _02067318
+ ldrh r2, [r5, #0x6]
+ add r0, r5, #0x0
+ add r0, #0x8
+ mov r1, #0x80
+ bl FUN_0206A3A4
+_02067318:
+ add r0, r4, #0x0
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_0206731C
+FUN_0206731C: ; 0x0206731C
+ push {r4-r7, lr}
+ sub sp, #0xc
+ str r1, [sp, #0x4]
+ add r1, r0, #0x0
+ mov r4, #0x0
+ str r2, [sp, #0x8]
+ ldr r1, [r1, #0x0]
+ str r0, [sp, #0x0]
+ add r2, r4, #0x0
+ bl FUN_0206A418
+ add r5, r0, #0x0
+ ldr r0, [sp, #0x0]
+ mov r2, #0x1
+ add r1, r0, #0x0
+ ldr r1, [r1, #0x0]
+ bl FUN_0206A418
+ add r6, r0, #0x0
+ ldr r0, [sp, #0x0]
+ mov r2, #0x2
+ add r1, r0, #0x0
+ ldr r1, [r1, #0x0]
+ bl FUN_0206A418
+ add r7, r0, #0x0
+ ldr r0, [sp, #0x0]
+ mov r2, #0x3
+ add r1, r0, #0x0
+ ldr r1, [r1, #0x0]
+ bl FUN_0206A418
+ add r1, r0, #0x0
+ ldr r0, [sp, #0x4]
+ cmp r0, #0xb2
+ bls _02067366
+ b _020674D8
+_02067366:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02067372: ; jump table (using 16-bit offset)
+ .short _020674DC - _02067372 - 2; case 0
+ .short _020674E2 - _02067372 - 2; case 1
+ .short _020674EC - _02067372 - 2; case 2
+ .short _020674F6 - _02067372 - 2; case 3
+ .short _02067500 - _02067372 - 2; case 4
+ .short _0206754C - _02067372 - 2; case 5
+ .short _0206755E - _02067372 - 2; case 6
+ .short _02067562 - _02067372 - 2; case 7
+ .short _02067566 - _02067372 - 2; case 8
+ .short _0206756A - _02067372 - 2; case 9
+ .short _0206756E - _02067372 - 2; case 10
+ .short _02067572 - _02067372 - 2; case 11
+ .short _02067576 - _02067372 - 2; case 12
+ .short _0206757A - _02067372 - 2; case 13
+ .short _0206757E - _02067372 - 2; case 14
+ .short _02067582 - _02067372 - 2; case 15
+ .short _02067586 - _02067372 - 2; case 16
+ .short _0206758A - _02067372 - 2; case 17
+ .short _0206758E - _02067372 - 2; case 18
+ .short _02067592 - _02067372 - 2; case 19
+ .short _02067596 - _02067372 - 2; case 20
+ .short _0206759A - _02067372 - 2; case 21
+ .short _0206759E - _02067372 - 2; case 22
+ .short _020675A2 - _02067372 - 2; case 23
+ .short _020675A6 - _02067372 - 2; case 24
+ .short _020675AA - _02067372 - 2; case 25
+ .short _020675AA - _02067372 - 2; case 26
+ .short _020675AA - _02067372 - 2; case 27
+ .short _020675AA - _02067372 - 2; case 28
+ .short _020675AA - _02067372 - 2; case 29
+ .short _020675AA - _02067372 - 2; case 30
+ .short _020675AA - _02067372 - 2; case 31
+ .short _020675AA - _02067372 - 2; case 32
+ .short _020675AA - _02067372 - 2; case 33
+ .short _020675AA - _02067372 - 2; case 34
+ .short _020675AA - _02067372 - 2; case 35
+ .short _020675AA - _02067372 - 2; case 36
+ .short _020675AA - _02067372 - 2; case 37
+ .short _020675AA - _02067372 - 2; case 38
+ .short _020675AA - _02067372 - 2; case 39
+ .short _020675AA - _02067372 - 2; case 40
+ .short _020675AA - _02067372 - 2; case 41
+ .short _020675AA - _02067372 - 2; case 42
+ .short _020675AA - _02067372 - 2; case 43
+ .short _020675AA - _02067372 - 2; case 44
+ .short _020675AA - _02067372 - 2; case 45
+ .short _020675AA - _02067372 - 2; case 46
+ .short _020675AA - _02067372 - 2; case 47
+ .short _020675AA - _02067372 - 2; case 48
+ .short _020675AA - _02067372 - 2; case 49
+ .short _020675AA - _02067372 - 2; case 50
+ .short _020675AA - _02067372 - 2; case 51
+ .short _020675AA - _02067372 - 2; case 52
+ .short _020675AA - _02067372 - 2; case 53
+ .short _020675D0 - _02067372 - 2; case 54
+ .short _020675D0 - _02067372 - 2; case 55
+ .short _020675D0 - _02067372 - 2; case 56
+ .short _020675D0 - _02067372 - 2; case 57
+ .short _020675DC - _02067372 - 2; case 58
+ .short _020675DC - _02067372 - 2; case 59
+ .short _020675DC - _02067372 - 2; case 60
+ .short _020675DC - _02067372 - 2; case 61
+ .short _020675E8 - _02067372 - 2; case 62
+ .short _020675E8 - _02067372 - 2; case 63
+ .short _020675E8 - _02067372 - 2; case 64
+ .short _020675E8 - _02067372 - 2; case 65
+ .short _020675F4 - _02067372 - 2; case 66
+ .short _020675F4 - _02067372 - 2; case 67
+ .short _020675F4 - _02067372 - 2; case 68
+ .short _020675F4 - _02067372 - 2; case 69
+ .short _0206760C - _02067372 - 2; case 70
+ .short _02067614 - _02067372 - 2; case 71
+ .short _0206761C - _02067372 - 2; case 72
+ .short _02067624 - _02067372 - 2; case 73
+ .short _0206762C - _02067372 - 2; case 74
+ .short _02067634 - _02067372 - 2; case 75
+ .short _0206763C - _02067372 - 2; case 76
+ .short _0206764E - _02067372 - 2; case 77
+ .short _02067654 - _02067372 - 2; case 78
+ .short _02067654 - _02067372 - 2; case 79
+ .short _02067654 - _02067372 - 2; case 80
+ .short _02067654 - _02067372 - 2; case 81
+ .short _02067654 - _02067372 - 2; case 82
+ .short _02067654 - _02067372 - 2; case 83
+ .short _02067654 - _02067372 - 2; case 84
+ .short _02067654 - _02067372 - 2; case 85
+ .short _02067654 - _02067372 - 2; case 86
+ .short _02067654 - _02067372 - 2; case 87
+ .short _02067654 - _02067372 - 2; case 88
+ .short _02067654 - _02067372 - 2; case 89
+ .short _02067654 - _02067372 - 2; case 90
+ .short _02067654 - _02067372 - 2; case 91
+ .short _02067654 - _02067372 - 2; case 92
+ .short _02067654 - _02067372 - 2; case 93
+ .short _02067654 - _02067372 - 2; case 94
+ .short _02067654 - _02067372 - 2; case 95
+ .short _02067654 - _02067372 - 2; case 96
+ .short _02067654 - _02067372 - 2; case 97
+ .short _02067654 - _02067372 - 2; case 98
+ .short _02067654 - _02067372 - 2; case 99
+ .short _02067654 - _02067372 - 2; case 100
+ .short _02067654 - _02067372 - 2; case 101
+ .short _02067654 - _02067372 - 2; case 102
+ .short _02067654 - _02067372 - 2; case 103
+ .short _02067654 - _02067372 - 2; case 104
+ .short _02067654 - _02067372 - 2; case 105
+ .short _02067654 - _02067372 - 2; case 106
+ .short _02067654 - _02067372 - 2; case 107
+ .short _02067654 - _02067372 - 2; case 108
+ .short _02067654 - _02067372 - 2; case 109
+ .short _0206767C - _02067372 - 2; case 110
+ .short _02067684 - _02067372 - 2; case 111
+ .short _0206768C - _02067372 - 2; case 112
+ .short _02067694 - _02067372 - 2; case 113
+ .short _02067698 - _02067372 - 2; case 114
+ .short _020674D8 - _02067372 - 2; case 115
+ .short _0206769C - _02067372 - 2; case 116
+ .short _020674D8 - _02067372 - 2; case 117
+ .short _020676D0 - _02067372 - 2; case 118
+ .short _020676CC - _02067372 - 2; case 119
+ .short _020676FE - _02067372 - 2; case 120
+ .short _02067702 - _02067372 - 2; case 121
+ .short _02067706 - _02067372 - 2; case 122
+ .short _02067706 - _02067372 - 2; case 123
+ .short _02067706 - _02067372 - 2; case 124
+ .short _02067706 - _02067372 - 2; case 125
+ .short _02067706 - _02067372 - 2; case 126
+ .short _02067706 - _02067372 - 2; case 127
+ .short _02067706 - _02067372 - 2; case 128
+ .short _02067706 - _02067372 - 2; case 129
+ .short _02067706 - _02067372 - 2; case 130
+ .short _02067706 - _02067372 - 2; case 131
+ .short _02067706 - _02067372 - 2; case 132
+ .short _02067706 - _02067372 - 2; case 133
+ .short _02067706 - _02067372 - 2; case 134
+ .short _02067706 - _02067372 - 2; case 135
+ .short _02067706 - _02067372 - 2; case 136
+ .short _02067706 - _02067372 - 2; case 137
+ .short _02067706 - _02067372 - 2; case 138
+ .short _02067706 - _02067372 - 2; case 139
+ .short _02067706 - _02067372 - 2; case 140
+ .short _02067706 - _02067372 - 2; case 141
+ .short _02067706 - _02067372 - 2; case 142
+ .short _0206772C - _02067372 - 2; case 143
+ .short _02067746 - _02067372 - 2; case 144
+ .short _0206774E - _02067372 - 2; case 145
+ .short _02067752 - _02067372 - 2; case 146
+ .short _02067756 - _02067372 - 2; case 147
+ .short _0206775A - _02067372 - 2; case 148
+ .short _0206775E - _02067372 - 2; case 149
+ .short _02067762 - _02067372 - 2; case 150
+ .short _02067766 - _02067372 - 2; case 151
+ .short _0206776A - _02067372 - 2; case 152
+ .short _0206776E - _02067372 - 2; case 153
+ .short _02067772 - _02067372 - 2; case 154
+ .short _02067776 - _02067372 - 2; case 155
+ .short _0206777E - _02067372 - 2; case 156
+ .short _02067786 - _02067372 - 2; case 157
+ .short _0206778A - _02067372 - 2; case 158
+ .short _020674D8 - _02067372 - 2; case 159
+ .short _02067540 - _02067372 - 2; case 160
+ .short _020674D8 - _02067372 - 2; case 161
+ .short _020674D8 - _02067372 - 2; case 162
+ .short _020674D8 - _02067372 - 2; case 163
+ .short _020674D8 - _02067372 - 2; case 164
+ .short _020674D8 - _02067372 - 2; case 165
+ .short _020674D8 - _02067372 - 2; case 166
+ .short _020674D8 - _02067372 - 2; case 167
+ .short _020674D8 - _02067372 - 2; case 168
+ .short _020674D8 - _02067372 - 2; case 169
+ .short _020674D8 - _02067372 - 2; case 170
+ .short _02067506 - _02067372 - 2; case 171
+ .short _02067510 - _02067372 - 2; case 172
+ .short _02067522 - _02067372 - 2; case 173
+ .short _0206778E - _02067372 - 2; case 174
+ .short _020677C0 - _02067372 - 2; case 175
+ .short _020677D8 - _02067372 - 2; case 176
+ .short _020677D8 - _02067372 - 2; case 177
+ .short _02067810 - _02067372 - 2; case 178
+_020674D8:
+ mov r4, #0x0
+ b _0206781A
+_020674DC:
+ ldr r0, [sp, #0x0]
+ ldr r4, [r0, #0x0]
+ b _0206781A
+_020674E2:
+ ldr r0, [sp, #0x0]
+ ldrh r0, [r0, #0x4]
+ lsl r0, r0, #0x1f
+ lsr r4, r0, #0x1f
+ b _0206781A
+_020674EC:
+ ldr r0, [sp, #0x0]
+ ldrh r0, [r0, #0x4]
+ lsl r0, r0, #0x1e
+ lsr r4, r0, #0x1f
+ b _0206781A
+_020674F6:
+ ldr r0, [sp, #0x0]
+ ldrh r0, [r0, #0x4]
+ lsl r0, r0, #0x1d
+ lsr r4, r0, #0x1f
+ b _0206781A
+_02067500:
+ ldr r0, [sp, #0x0]
+ ldrh r4, [r0, #0x6]
+ b _0206781A
+_02067506:
+ ldrh r0, [r5, #0x0]
+ cmp r0, #0x0
+ beq _0206753A
+ mov r4, #0x1
+ b _0206781A
+_02067510:
+ ldr r0, [sp, #0x0]
+ ldrh r0, [r0, #0x4]
+ lsl r0, r0, #0x1d
+ lsr r4, r0, #0x1f
+ bne _0206753A
+ ldr r0, [r6, #0x10]
+ lsl r0, r0, #0x1
+ lsr r4, r0, #0x1f
+ b _0206781A
+_02067522:
+ ldrh r4, [r5, #0x0]
+ cmp r4, #0x0
+ beq _0206753A
+ ldr r0, [r6, #0x10]
+ lsl r0, r0, #0x1
+ lsr r0, r0, #0x1f
+ bne _0206753C
+ ldr r0, [sp, #0x0]
+ ldrh r0, [r0, #0x4]
+ lsl r0, r0, #0x1d
+ lsr r0, r0, #0x1f
+ bne _0206753C
+_0206753A:
+ b _0206781A
+_0206753C:
+ ldr r4, _02067820 ; =0x000001EE
+ b _0206781A
+_02067540:
+ ldrh r0, [r5, #0x0]
+ ldr r1, [r5, #0x8]
+ bl FUN_02068800
+ add r4, r0, #0x0
+ b _0206781A
+_0206754C:
+ ldr r0, [sp, #0x0]
+ ldrh r0, [r0, #0x4]
+ lsl r0, r0, #0x1d
+ lsr r0, r0, #0x1f
+ beq _0206755A
+ ldr r4, _02067820 ; =0x000001EE
+ b _0206781A
+_0206755A:
+ ldrh r4, [r5, #0x0]
+ b _0206781A
+_0206755E:
+ ldrh r4, [r5, #0x2]
+ b _0206781A
+_02067562:
+ ldr r4, [r5, #0x4]
+ b _0206781A
+_02067566:
+ ldr r4, [r5, #0x8]
+ b _0206781A
+_0206756A:
+ ldrb r4, [r5, #0xc]
+ b _0206781A
+_0206756E:
+ ldrb r4, [r5, #0xd]
+ b _0206781A
+_02067572:
+ ldrb r4, [r5, #0xe]
+ b _0206781A
+_02067576:
+ ldrb r4, [r5, #0xf]
+ b _0206781A
+_0206757A:
+ ldrb r4, [r5, #0x10]
+ b _0206781A
+_0206757E:
+ ldrb r4, [r5, #0x11]
+ b _0206781A
+_02067582:
+ ldrb r4, [r5, #0x12]
+ b _0206781A
+_02067586:
+ ldrb r4, [r5, #0x13]
+ b _0206781A
+_0206758A:
+ ldrb r4, [r5, #0x14]
+ b _0206781A
+_0206758E:
+ ldrb r4, [r5, #0x15]
+ b _0206781A
+_02067592:
+ ldrb r4, [r5, #0x16]
+ b _0206781A
+_02067596:
+ ldrb r4, [r5, #0x17]
+ b _0206781A
+_0206759A:
+ ldrb r4, [r5, #0x18]
+ b _0206781A
+_0206759E:
+ ldrb r4, [r5, #0x19]
+ b _0206781A
+_020675A2:
+ ldrb r4, [r5, #0x1a]
+ b _0206781A
+_020675A6:
+ ldrb r4, [r5, #0x1b]
+ b _0206781A
+_020675AA:
+ ldr r2, [sp, #0x4]
+ mov r0, #0x1
+ sub r2, #0x19
+ add r1, r4, #0x0
+ str r2, [sp, #0x4]
+ blx _ll_shl
+ ldr r2, [r5, #0x1c]
+ add r3, r4, #0x0
+ and r3, r1
+ and r2, r0
+ mov r1, #0x0
+ mov r0, #0x0
+ eor r1, r3
+ eor r0, r2
+ orr r0, r1
+ beq _02067676
+ mov r4, #0x1
+ b _0206781A
+_020675D0:
+ ldr r0, [sp, #0x4]
+ sub r0, #0x36
+ str r0, [sp, #0x4]
+ lsl r0, r0, #0x1
+ ldrh r4, [r6, r0]
+ b _0206781A
+_020675DC:
+ ldr r0, [sp, #0x4]
+ sub r0, #0x3a
+ str r0, [sp, #0x4]
+ add r0, r6, r0
+ ldrb r4, [r0, #0x8]
+ b _0206781A
+_020675E8:
+ ldr r0, [sp, #0x4]
+ sub r0, #0x3e
+ str r0, [sp, #0x4]
+ add r0, r6, r0
+ ldrb r4, [r0, #0xc]
+ b _0206781A
+_020675F4:
+ ldr r0, [sp, #0x4]
+ sub r0, #0x42
+ str r0, [sp, #0x4]
+ ldr r1, [sp, #0x4]
+ lsl r0, r0, #0x1
+ add r1, r6, r1
+ ldrh r0, [r6, r0]
+ ldrb r1, [r1, #0xc]
+ bl FUN_0206AB30
+ add r4, r0, #0x0
+ b _0206781A
+_0206760C:
+ ldr r0, [r6, #0x10]
+ lsl r0, r0, #0x1b
+ lsr r4, r0, #0x1b
+ b _0206781A
+_02067614:
+ ldr r0, [r6, #0x10]
+ lsl r0, r0, #0x16
+ lsr r4, r0, #0x1b
+ b _0206781A
+_0206761C:
+ ldr r0, [r6, #0x10]
+ lsl r0, r0, #0x11
+ lsr r4, r0, #0x1b
+ b _0206781A
+_02067624:
+ ldr r0, [r6, #0x10]
+ lsl r0, r0, #0xc
+ lsr r4, r0, #0x1b
+ b _0206781A
+_0206762C:
+ ldr r0, [r6, #0x10]
+ lsl r0, r0, #0x7
+ lsr r4, r0, #0x1b
+ b _0206781A
+_02067634:
+ ldr r0, [r6, #0x10]
+ lsl r0, r0, #0x2
+ lsr r4, r0, #0x1b
+ b _0206781A
+_0206763C:
+ ldr r0, [sp, #0x0]
+ ldrh r0, [r0, #0x4]
+ lsl r0, r0, #0x1d
+ lsr r4, r0, #0x1f
+ bne _02067676
+ ldr r0, [r6, #0x10]
+ lsl r0, r0, #0x1
+ lsr r4, r0, #0x1f
+ b _0206781A
+_0206764E:
+ ldr r0, [r6, #0x10]
+ lsr r4, r0, #0x1f
+ b _0206781A
+_02067654:
+ ldr r2, [sp, #0x4]
+ mov r0, #0x1
+ sub r2, #0x4e
+ add r1, r4, #0x0
+ str r2, [sp, #0x4]
+ blx _ll_shl
+ ldr r2, [r6, #0x14]
+ add r3, r4, #0x0
+ and r3, r1
+ and r2, r0
+ mov r1, #0x0
+ mov r0, #0x0
+ eor r1, r3
+ eor r0, r2
+ orr r0, r1
+ bne _02067678
+_02067676:
+ b _0206781A
+_02067678:
+ mov r4, #0x1
+ b _0206781A
+_0206767C:
+ ldrb r0, [r6, #0x18]
+ lsl r0, r0, #0x1f
+ lsr r4, r0, #0x1f
+ b _0206781A
+_02067684:
+ ldrb r0, [r6, #0x18]
+ lsl r0, r0, #0x1d
+ lsr r4, r0, #0x1e
+ b _0206781A
+_0206768C:
+ ldrb r0, [r6, #0x18]
+ lsl r0, r0, #0x18
+ lsr r4, r0, #0x1b
+ b _0206781A
+_02067694:
+ ldrb r4, [r6, #0x19]
+ b _0206781A
+_02067698:
+ ldrh r4, [r6, #0x1a]
+ b _0206781A
+_0206769C:
+ ldr r0, [sp, #0x0]
+ ldrh r0, [r0, #0x4]
+ lsl r0, r0, #0x1d
+ lsr r0, r0, #0x1f
+ beq _020676B2
+ ldr r0, _02067824 ; =0x000001EF
+ ldr r2, [sp, #0x8]
+ add r1, r4, #0x0
+ bl FUN_0200A99C
+ b _0206781A
+_020676B2:
+ ldr r1, [sp, #0x8]
+_020676B4:
+ ldrh r0, [r7, #0x0]
+ add r4, r4, #0x1
+ add r7, r7, #0x2
+ strh r0, [r1, #0x0]
+ add r1, r1, #0x2
+ cmp r4, #0xa
+ blo _020676B4
+ ldr r2, _02067828 ; =0x0000FFFF
+ ldr r0, [sp, #0x8]
+ lsl r1, r4, #0x1
+ strh r2, [r0, r1]
+ b _0206781A
+_020676CC:
+ ldr r0, [r6, #0x10]
+ lsr r4, r0, #0x1f
+_020676D0:
+ ldr r0, [sp, #0x0]
+ ldrh r0, [r0, #0x4]
+ lsl r0, r0, #0x1d
+ lsr r0, r0, #0x1f
+ beq _020676F4
+ ldr r0, _02067824 ; =0x000001EF
+ mov r1, #0x0
+ bl FUN_0200AA50
+ add r5, r0, #0x0
+ ldr r0, [sp, #0x8]
+ add r1, r5, #0x0
+ bl FUN_02021A74
+ add r0, r5, #0x0
+ bl FUN_02021A20
+ b _0206781A
+_020676F4:
+ ldr r0, [sp, #0x8]
+ add r1, r7, #0x0
+ bl FUN_02021E28
+ b _0206781A
+_020676FE:
+ ldrb r4, [r7, #0x16]
+ b _0206781A
+_02067702:
+ ldrb r4, [r7, #0x17]
+ b _0206781A
+_02067706:
+ ldr r2, [sp, #0x4]
+ mov r0, #0x1
+ sub r2, #0x7a
+ add r1, r4, #0x0
+ str r2, [sp, #0x4]
+ blx _ll_shl
+ ldr r3, [r7, #0x18]
+ ldr r2, [r7, #0x1c]
+ and r3, r0
+ and r2, r1
+ mov r1, #0x0
+ mov r0, #0x0
+ eor r1, r2
+ eor r0, r3
+ orr r0, r1
+ beq _0206781A
+ mov r4, #0x1
+ b _0206781A
+_0206772C:
+ ldr r2, [sp, #0x8]
+_0206772E:
+ ldrh r0, [r1, #0x0]
+ add r4, r4, #0x1
+ add r1, r1, #0x2
+ strh r0, [r2, #0x0]
+ add r2, r2, #0x2
+ cmp r4, #0x7
+ blo _0206772E
+ ldr r2, _02067828 ; =0x0000FFFF
+ ldr r0, [sp, #0x8]
+ lsl r1, r4, #0x1
+ strh r2, [r0, r1]
+ b _0206781A
+_02067746:
+ ldr r0, [sp, #0x8]
+ bl FUN_02021E28
+ b _0206781A
+_0206774E:
+ ldrb r4, [r1, #0x10]
+ b _0206781A
+_02067752:
+ ldrb r4, [r1, #0x11]
+ b _0206781A
+_02067756:
+ ldrb r4, [r1, #0x12]
+ b _0206781A
+_0206775A:
+ ldrb r4, [r1, #0x13]
+ b _0206781A
+_0206775E:
+ ldrb r4, [r1, #0x14]
+ b _0206781A
+_02067762:
+ ldrb r4, [r1, #0x15]
+ b _0206781A
+_02067766:
+ ldrh r4, [r1, #0x16]
+ b _0206781A
+_0206776A:
+ ldrh r4, [r1, #0x18]
+ b _0206781A
+_0206776E:
+ ldrb r4, [r1, #0x1a]
+ b _0206781A
+_02067772:
+ ldrb r4, [r1, #0x1b]
+ b _0206781A
+_02067776:
+ ldrb r0, [r1, #0x1c]
+ lsl r0, r0, #0x19
+ lsr r4, r0, #0x19
+ b _0206781A
+_0206777E:
+ ldrb r0, [r1, #0x1c]
+ lsl r0, r0, #0x18
+ lsr r4, r0, #0x1f
+ b _0206781A
+_02067786:
+ ldrb r4, [r1, #0x1d]
+ b _0206781A
+_0206778A:
+ ldrh r4, [r1, #0x1e]
+ b _0206781A
+_0206778E:
+ ldr r4, [r6, #0x10]
+ lsl r0, r4, #0x2
+ lsr r0, r0, #0x1b
+ lsl r5, r0, #0x19
+ lsl r0, r4, #0x7
+ 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, #0x5
+ orr r0, r4
+ orr r0, r1
+ orr r0, r2
+ orr r0, r3
+ add r4, r5, #0x0
+ orr r4, r0
+ b _0206781A
+_020677C0:
+ ldrh r0, [r5, #0x0]
+ cmp r0, #0x1d
+ beq _020677CA
+ cmp r0, #0x20
+ bne _020677D4
+_020677CA:
+ ldr r0, [r6, #0x10]
+ lsr r0, r0, #0x1f
+ bne _020677D4
+ mov r4, #0x0
+ b _0206781A
+_020677D4:
+ mov r4, #0x1
+ b _0206781A
+_020677D8:
+ ldrh r0, [r5, #0x0]
+ ldr r1, _0206782C ; =0x000001ED
+ cmp r0, r1
+ bne _020677FC
+ ldrb r1, [r5, #0xd]
+ cmp r1, #0x79
+ bne _020677FC
+ ldrh r0, [r5, #0x2]
+ mov r1, #0x1
+ add r2, r4, #0x0
+ bl FUN_0206E7B8
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ bl FUN_02069F24
+ add r4, r0, #0x0
+ b _0206781A
+_020677FC:
+ ldrb r1, [r6, #0x18]
+ ldr r2, [sp, #0x4]
+ lsl r1, r1, #0x18
+ sub r2, #0xaa
+ lsr r1, r1, #0x1b
+ str r2, [sp, #0x4]
+ bl FUN_02068654
+ add r4, r0, #0x0
+ b _0206781A
+_02067810:
+ ldrh r0, [r5, #0x0]
+ ldr r2, [sp, #0x8]
+ add r1, r4, #0x0
+ bl FUN_0200A99C
+_0206781A:
+ add r0, r4, #0x0
+ add sp, #0xc
+ pop {r4-r7, pc}
+ .balign 4
+_02067820: .word 0x000001EE
+_02067824: .word 0x000001EF
+_02067828: .word 0x0000FFFF
+_0206782C: .word 0x000001ED
+
+ thumb_func_start FUN_02067830
+FUN_02067830: ; 0x02067830
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ ldrh r0, [r5, #0x4]
+ add r4, r1, #0x0
+ add r6, r2, #0x0
+ lsl r0, r0, #0x1f
+ lsr r0, r0, #0x1f
+ bne _02067886
+ add r0, r5, #0x0
+ ldr r2, [r5, #0x0]
+ add r0, #0x88
+ mov r1, #0x64
+ bl FUN_0206A3D0
+ add r0, r5, #0x0
+ ldrh r2, [r5, #0x6]
+ add r0, #0x8
+ mov r1, #0x80
+ bl FUN_0206A3D0
+ add r0, r5, #0x0
+ add r0, #0x8
+ mov r1, #0x80
+ bl FUN_0206A3F8
+ ldrh r1, [r5, #0x6]
+ cmp r0, r1
+ beq _02067886
+ cmp r0, r1
+ beq _02067870
+ bl ErrorHandling
+_02067870:
+ ldrh r1, [r5, #0x4]
+ mov r0, #0x4
+ orr r0, r1
+ strh r0, [r5, #0x4]
+ ldrh r2, [r5, #0x6]
+ add r0, r5, #0x0
+ add r0, #0x8
+ mov r1, #0x80
+ bl FUN_0206A3A4
+ pop {r4-r6, pc}
+_02067886:
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ add r2, r6, #0x0
+ bl FUN_020678C0
+ ldrh r0, [r5, #0x4]
+ lsl r0, r0, #0x1f
+ lsr r0, r0, #0x1f
+ bne _020678BC
+ add r0, r5, #0x0
+ ldr r2, [r5, #0x0]
+ add r0, #0x88
+ mov r1, #0x64
+ bl FUN_0206A3A4
+ add r0, r5, #0x0
+ add r0, #0x8
+ mov r1, #0x80
+ bl FUN_0206A3F8
+ strh r0, [r5, #0x6]
+ add r0, r5, #0x0
+ ldrh r2, [r5, #0x6]
+ add r0, #0x8
+ mov r1, #0x80
+ bl FUN_0206A3A4
+_020678BC:
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_020678C0
+FUN_020678C0: ; 0x020678C0
+ push {r3, lr}
+ add r3, r0, #0x0
+ add r0, r1, #0x0
+ sub r0, #0x9f
+ cmp r0, #0xb
+ bhi _02067958
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_020678D8: ; jump table (using 16-bit offset)
+ .short _020678F0 - _020678D8 - 2; case 0
+ .short _020678F8 - _020678D8 - 2; case 1
+ .short _02067900 - _020678D8 - 2; case 2
+ .short _02067908 - _020678D8 - 2; case 3
+ .short _02067910 - _020678D8 - 2; case 4
+ .short _02067918 - _020678D8 - 2; case 5
+ .short _02067920 - _020678D8 - 2; case 6
+ .short _02067928 - _020678D8 - 2; case 7
+ .short _02067930 - _020678D8 - 2; case 8
+ .short _02067938 - _020678D8 - 2; case 9
+ .short _02067940 - _020678D8 - 2; case 10
+ .short _0206794C - _020678D8 - 2; case 11
+_020678F0:
+ ldr r0, [r2, #0x0]
+ add r3, #0x88
+ str r0, [r3, #0x0]
+ pop {r3, pc}
+_020678F8:
+ ldrb r0, [r2, #0x0]
+ add r3, #0x8c
+ strb r0, [r3, #0x0]
+ pop {r3, pc}
+_02067900:
+ ldrb r0, [r2, #0x0]
+ add r3, #0x8d
+ strb r0, [r3, #0x0]
+ pop {r3, pc}
+_02067908:
+ ldrh r0, [r2, #0x0]
+ add r3, #0x8e
+ strh r0, [r3, #0x0]
+ pop {r3, pc}
+_02067910:
+ ldrh r0, [r2, #0x0]
+ add r3, #0x90
+ strh r0, [r3, #0x0]
+ pop {r3, pc}
+_02067918:
+ ldrh r0, [r2, #0x0]
+ add r3, #0x92
+ strh r0, [r3, #0x0]
+ pop {r3, pc}
+_02067920:
+ ldrh r0, [r2, #0x0]
+ add r3, #0x94
+ strh r0, [r3, #0x0]
+ pop {r3, pc}
+_02067928:
+ ldrh r0, [r2, #0x0]
+ add r3, #0x96
+ strh r0, [r3, #0x0]
+ pop {r3, pc}
+_02067930:
+ ldrh r0, [r2, #0x0]
+ add r3, #0x98
+ strh r0, [r3, #0x0]
+ pop {r3, pc}
+_02067938:
+ ldrh r0, [r2, #0x0]
+ add r3, #0x9a
+ strh r0, [r3, #0x0]
+ pop {r3, pc}
+_02067940:
+ add r3, #0x9c
+ add r0, r2, #0x0
+ add r1, r3, #0x0
+ bl FUN_020256D0
+ pop {r3, pc}
+_0206794C:
+ add r3, #0xd4
+ add r0, r2, #0x0
+ add r1, r3, #0x0
+ bl FUN_02029C74
+ pop {r3, pc}
+_02067958:
+ add r0, r3, #0x0
+ bl FUN_020679D8
+ pop {r3, pc}
+
+ thumb_func_start FUN_02067960
+FUN_02067960: ; 0x02067960
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ ldrh r0, [r5, #0x4]
+ add r4, r1, #0x0
+ add r6, r2, #0x0
+ lsl r0, r0, #0x1e
+ lsr r0, r0, #0x1f
+ bne _020679AA
+ ldrh r2, [r5, #0x6]
+ add r0, r5, #0x0
+ add r0, #0x8
+ mov r1, #0x80
+ bl FUN_0206A3D0
+ add r0, r5, #0x0
+ add r0, #0x8
+ mov r1, #0x80
+ bl FUN_0206A3F8
+ ldrh r1, [r5, #0x6]
+ cmp r0, r1
+ beq _020679AA
+ cmp r0, r1
+ beq _02067994
+ bl ErrorHandling
+_02067994:
+ ldrh r1, [r5, #0x4]
+ mov r0, #0x4
+ orr r0, r1
+ strh r0, [r5, #0x4]
+ ldrh r2, [r5, #0x6]
+ add r0, r5, #0x0
+ add r0, #0x8
+ mov r1, #0x80
+ bl FUN_0206A3A4
+ pop {r4-r6, pc}
+_020679AA:
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ add r2, r6, #0x0
+ bl FUN_020679D8
+ ldrh r0, [r5, #0x4]
+ lsl r0, r0, #0x1e
+ lsr r0, r0, #0x1f
+ bne _020679D4
+ add r0, r5, #0x0
+ add r0, #0x8
+ mov r1, #0x80
+ bl FUN_0206A3F8
+ strh r0, [r5, #0x6]
+ add r0, r5, #0x0
+ ldrh r2, [r5, #0x6]
+ add r0, #0x8
+ mov r1, #0x80
+ bl FUN_0206A3A4
+_020679D4:
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_020679D8
+FUN_020679D8: ; 0x020679D8
+ push {r4-r7, lr}
+ sub sp, #0x4c
+ str r1, [sp, #0x4]
+ add r1, r0, #0x0
+ add r4, r2, #0x0
+ ldr r1, [r1, #0x0]
+ str r0, [sp, #0x0]
+ mov r2, #0x0
+ bl FUN_0206A418
+ add r7, r0, #0x0
+ ldr r0, [sp, #0x0]
+ mov r2, #0x1
+ add r1, r0, #0x0
+ ldr r1, [r1, #0x0]
+ bl FUN_0206A418
+ add r5, r0, #0x0
+ ldr r0, [sp, #0x0]
+ mov r2, #0x2
+ add r1, r0, #0x0
+ ldr r1, [r1, #0x0]
+ bl FUN_0206A418
+ add r6, r0, #0x0
+ ldr r0, [sp, #0x0]
+ mov r2, #0x3
+ add r1, r0, #0x0
+ ldr r1, [r1, #0x0]
+ bl FUN_0206A418
+ add r1, r0, #0x0
+ ldr r0, [sp, #0x4]
+ cmp r0, #0xb2
+ bls _02067A20
+ b _02067FF6
+_02067A20:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02067A2C: ; jump table (using 16-bit offset)
+ .short _02067B92 - _02067A2C - 2; case 0
+ .short _02067B9C - _02067A2C - 2; case 1
+ .short _02067BBA - _02067A2C - 2; case 2
+ .short _02067BD6 - _02067A2C - 2; case 3
+ .short _02067BEE - _02067A2C - 2; case 4
+ .short _02067BF8 - _02067A2C - 2; case 5
+ .short _02067C00 - _02067A2C - 2; case 6
+ .short _02067C08 - _02067A2C - 2; case 7
+ .short _02067C10 - _02067A2C - 2; case 8
+ .short _02067C18 - _02067A2C - 2; case 9
+ .short _02067C20 - _02067A2C - 2; case 10
+ .short _02067C28 - _02067A2C - 2; case 11
+ .short _02067C30 - _02067A2C - 2; case 12
+ .short _02067C38 - _02067A2C - 2; case 13
+ .short _02067C40 - _02067A2C - 2; case 14
+ .short _02067C48 - _02067A2C - 2; case 15
+ .short _02067C50 - _02067A2C - 2; case 16
+ .short _02067C58 - _02067A2C - 2; case 17
+ .short _02067C60 - _02067A2C - 2; case 18
+ .short _02067C68 - _02067A2C - 2; case 19
+ .short _02067C70 - _02067A2C - 2; case 20
+ .short _02067C78 - _02067A2C - 2; case 21
+ .short _02067C80 - _02067A2C - 2; case 22
+ .short _02067C88 - _02067A2C - 2; case 23
+ .short _02067C90 - _02067A2C - 2; case 24
+ .short _02067C98 - _02067A2C - 2; case 25
+ .short _02067C98 - _02067A2C - 2; case 26
+ .short _02067C98 - _02067A2C - 2; case 27
+ .short _02067C98 - _02067A2C - 2; case 28
+ .short _02067C98 - _02067A2C - 2; case 29
+ .short _02067C98 - _02067A2C - 2; case 30
+ .short _02067C98 - _02067A2C - 2; case 31
+ .short _02067C98 - _02067A2C - 2; case 32
+ .short _02067C98 - _02067A2C - 2; case 33
+ .short _02067C98 - _02067A2C - 2; case 34
+ .short _02067C98 - _02067A2C - 2; case 35
+ .short _02067C98 - _02067A2C - 2; case 36
+ .short _02067C98 - _02067A2C - 2; case 37
+ .short _02067C98 - _02067A2C - 2; case 38
+ .short _02067C98 - _02067A2C - 2; case 39
+ .short _02067C98 - _02067A2C - 2; case 40
+ .short _02067C98 - _02067A2C - 2; case 41
+ .short _02067C98 - _02067A2C - 2; case 42
+ .short _02067C98 - _02067A2C - 2; case 43
+ .short _02067C98 - _02067A2C - 2; case 44
+ .short _02067C98 - _02067A2C - 2; case 45
+ .short _02067C98 - _02067A2C - 2; case 46
+ .short _02067C98 - _02067A2C - 2; case 47
+ .short _02067C98 - _02067A2C - 2; case 48
+ .short _02067C98 - _02067A2C - 2; case 49
+ .short _02067C98 - _02067A2C - 2; case 50
+ .short _02067C98 - _02067A2C - 2; case 51
+ .short _02067C98 - _02067A2C - 2; case 52
+ .short _02067C98 - _02067A2C - 2; case 53
+ .short _02067CC6 - _02067A2C - 2; case 54
+ .short _02067CC6 - _02067A2C - 2; case 55
+ .short _02067CC6 - _02067A2C - 2; case 56
+ .short _02067CC6 - _02067A2C - 2; case 57
+ .short _02067CD6 - _02067A2C - 2; case 58
+ .short _02067CD6 - _02067A2C - 2; case 59
+ .short _02067CD6 - _02067A2C - 2; case 60
+ .short _02067CD6 - _02067A2C - 2; case 61
+ .short _02067CE6 - _02067A2C - 2; case 62
+ .short _02067CE6 - _02067A2C - 2; case 63
+ .short _02067CE6 - _02067A2C - 2; case 64
+ .short _02067CE6 - _02067A2C - 2; case 65
+ .short _02067FF6 - _02067A2C - 2; case 66
+ .short _02067FF6 - _02067A2C - 2; case 67
+ .short _02067FF6 - _02067A2C - 2; case 68
+ .short _02067FF6 - _02067A2C - 2; case 69
+ .short _02067CF6 - _02067A2C - 2; case 70
+ .short _02067D0A - _02067A2C - 2; case 71
+ .short _02067D1E - _02067A2C - 2; case 72
+ .short _02067D32 - _02067A2C - 2; case 73
+ .short _02067D46 - _02067A2C - 2; case 74
+ .short _02067D5A - _02067A2C - 2; case 75
+ .short _02067D6E - _02067A2C - 2; case 76
+ .short _02067D82 - _02067A2C - 2; case 77
+ .short _02067D94 - _02067A2C - 2; case 78
+ .short _02067D94 - _02067A2C - 2; case 79
+ .short _02067D94 - _02067A2C - 2; case 80
+ .short _02067D94 - _02067A2C - 2; case 81
+ .short _02067D94 - _02067A2C - 2; case 82
+ .short _02067D94 - _02067A2C - 2; case 83
+ .short _02067D94 - _02067A2C - 2; case 84
+ .short _02067D94 - _02067A2C - 2; case 85
+ .short _02067D94 - _02067A2C - 2; case 86
+ .short _02067D94 - _02067A2C - 2; case 87
+ .short _02067D94 - _02067A2C - 2; case 88
+ .short _02067D94 - _02067A2C - 2; case 89
+ .short _02067D94 - _02067A2C - 2; case 90
+ .short _02067D94 - _02067A2C - 2; case 91
+ .short _02067D94 - _02067A2C - 2; case 92
+ .short _02067D94 - _02067A2C - 2; case 93
+ .short _02067D94 - _02067A2C - 2; case 94
+ .short _02067D94 - _02067A2C - 2; case 95
+ .short _02067D94 - _02067A2C - 2; case 96
+ .short _02067D94 - _02067A2C - 2; case 97
+ .short _02067D94 - _02067A2C - 2; case 98
+ .short _02067D94 - _02067A2C - 2; case 99
+ .short _02067D94 - _02067A2C - 2; case 100
+ .short _02067D94 - _02067A2C - 2; case 101
+ .short _02067D94 - _02067A2C - 2; case 102
+ .short _02067D94 - _02067A2C - 2; case 103
+ .short _02067D94 - _02067A2C - 2; case 104
+ .short _02067D94 - _02067A2C - 2; case 105
+ .short _02067D94 - _02067A2C - 2; case 106
+ .short _02067D94 - _02067A2C - 2; case 107
+ .short _02067D94 - _02067A2C - 2; case 108
+ .short _02067D94 - _02067A2C - 2; case 109
+ .short _02067DC2 - _02067A2C - 2; case 110
+ .short _02067DD6 - _02067A2C - 2; case 111
+ .short _02067DEA - _02067A2C - 2; case 112
+ .short _02067DFE - _02067A2C - 2; case 113
+ .short _02067E06 - _02067A2C - 2; case 114
+ .short _02067FF6 - _02067A2C - 2; case 115
+ .short _02067E2C - _02067A2C - 2; case 116
+ .short _02067E0E - _02067A2C - 2; case 117
+ .short _02067E6C - _02067A2C - 2; case 118
+ .short _02067E40 - _02067A2C - 2; case 119
+ .short _02067E7A - _02067A2C - 2; case 120
+ .short _02067E82 - _02067A2C - 2; case 121
+ .short _02067E8A - _02067A2C - 2; case 122
+ .short _02067E8A - _02067A2C - 2; case 123
+ .short _02067E8A - _02067A2C - 2; case 124
+ .short _02067E8A - _02067A2C - 2; case 125
+ .short _02067E8A - _02067A2C - 2; case 126
+ .short _02067E8A - _02067A2C - 2; case 127
+ .short _02067E8A - _02067A2C - 2; case 128
+ .short _02067E8A - _02067A2C - 2; case 129
+ .short _02067E8A - _02067A2C - 2; case 130
+ .short _02067E8A - _02067A2C - 2; case 131
+ .short _02067E8A - _02067A2C - 2; case 132
+ .short _02067E8A - _02067A2C - 2; case 133
+ .short _02067E8A - _02067A2C - 2; case 134
+ .short _02067E8A - _02067A2C - 2; case 135
+ .short _02067E8A - _02067A2C - 2; case 136
+ .short _02067E8A - _02067A2C - 2; case 137
+ .short _02067E8A - _02067A2C - 2; case 138
+ .short _02067E8A - _02067A2C - 2; case 139
+ .short _02067E8A - _02067A2C - 2; case 140
+ .short _02067E8A - _02067A2C - 2; case 141
+ .short _02067E8A - _02067A2C - 2; case 142
+ .short _02067ECE - _02067A2C - 2; case 143
+ .short _02067EE2 - _02067A2C - 2; case 144
+ .short _02067EEE - _02067A2C - 2; case 145
+ .short _02067EF6 - _02067A2C - 2; case 146
+ .short _02067EFE - _02067A2C - 2; case 147
+ .short _02067F06 - _02067A2C - 2; case 148
+ .short _02067F0E - _02067A2C - 2; case 149
+ .short _02067F16 - _02067A2C - 2; case 150
+ .short _02067F1E - _02067A2C - 2; case 151
+ .short _02067F26 - _02067A2C - 2; case 152
+ .short _02067F2E - _02067A2C - 2; case 153
+ .short _02067F36 - _02067A2C - 2; case 154
+ .short _02067F3E - _02067A2C - 2; case 155
+ .short _02067F52 - _02067A2C - 2; case 156
+ .short _02067F66 - _02067A2C - 2; case 157
+ .short _02067F6E - _02067A2C - 2; case 158
+ .short _02067FF6 - _02067A2C - 2; case 159
+ .short _02067FF6 - _02067A2C - 2; case 160
+ .short _02067FF6 - _02067A2C - 2; case 161
+ .short _02067FF6 - _02067A2C - 2; case 162
+ .short _02067FF6 - _02067A2C - 2; case 163
+ .short _02067FF6 - _02067A2C - 2; case 164
+ .short _02067FF6 - _02067A2C - 2; case 165
+ .short _02067FF6 - _02067A2C - 2; case 166
+ .short _02067FF6 - _02067A2C - 2; case 167
+ .short _02067FF6 - _02067A2C - 2; case 168
+ .short _02067FF6 - _02067A2C - 2; case 169
+ .short _02067FF6 - _02067A2C - 2; case 170
+ .short _02067FF6 - _02067A2C - 2; case 171
+ .short _02067FF6 - _02067A2C - 2; case 172
+ .short _02067FF6 - _02067A2C - 2; case 173
+ .short _02067F76 - _02067A2C - 2; case 174
+ .short _02067FF6 - _02067A2C - 2; case 175
+ .short _02067FF6 - _02067A2C - 2; case 176
+ .short _02067FF6 - _02067A2C - 2; case 177
+ .short _02067FDE - _02067A2C - 2; case 178
+_02067B92:
+ ldr r0, [sp, #0x0]
+ ldr r1, [r4, #0x0]
+ add sp, #0x4c
+ str r1, [r0, #0x0]
+ pop {r4-r7, pc}
+_02067B9C:
+ bl ErrorHandling
+ ldr r0, [sp, #0x0]
+ ldrb r1, [r4, #0x0]
+ ldrh r2, [r0, #0x4]
+ mov r0, #0x1
+ bic r2, r0
+ mov r0, #0x1
+ and r0, r1
+ add r1, r2, #0x0
+ orr r1, r0
+ ldr r0, [sp, #0x0]
+ add sp, #0x4c
+ strh r1, [r0, #0x4]
+ pop {r4-r7, pc}
+_02067BBA:
+ bl ErrorHandling
+ ldr r0, [sp, #0x0]
+ ldrh r1, [r0, #0x4]
+ mov r0, #0x2
+ bic r1, r0
+ ldrb r0, [r4, #0x0]
+ lsl r0, r0, #0x1f
+ lsr r0, r0, #0x1e
+ orr r1, r0
+ ldr r0, [sp, #0x0]
+ add sp, #0x4c
+ strh r1, [r0, #0x4]
+ pop {r4-r7, pc}
+_02067BD6:
+ ldr r0, [sp, #0x0]
+ ldrh r1, [r0, #0x4]
+ mov r0, #0x4
+ bic r1, r0
+ ldrb r0, [r4, #0x0]
+ lsl r0, r0, #0x1f
+ lsr r0, r0, #0x1d
+ orr r1, r0
+ ldr r0, [sp, #0x0]
+ add sp, #0x4c
+ strh r1, [r0, #0x4]
+ pop {r4-r7, pc}
+_02067BEE:
+ ldrh r1, [r4, #0x0]
+ ldr r0, [sp, #0x0]
+ add sp, #0x4c
+ strh r1, [r0, #0x6]
+ pop {r4-r7, pc}
+_02067BF8:
+ ldrh r0, [r4, #0x0]
+ add sp, #0x4c
+ strh r0, [r7, #0x0]
+ pop {r4-r7, pc}
+_02067C00:
+ ldrh r0, [r4, #0x0]
+ add sp, #0x4c
+ strh r0, [r7, #0x2]
+ pop {r4-r7, pc}
+_02067C08:
+ ldr r0, [r4, #0x0]
+ add sp, #0x4c
+ str r0, [r7, #0x4]
+ pop {r4-r7, pc}
+_02067C10:
+ ldr r0, [r4, #0x0]
+ add sp, #0x4c
+ str r0, [r7, #0x8]
+ pop {r4-r7, pc}
+_02067C18:
+ ldrb r0, [r4, #0x0]
+ add sp, #0x4c
+ strb r0, [r7, #0xc]
+ pop {r4-r7, pc}
+_02067C20:
+ ldrb r0, [r4, #0x0]
+ add sp, #0x4c
+ strb r0, [r7, #0xd]
+ pop {r4-r7, pc}
+_02067C28:
+ ldrb r0, [r4, #0x0]
+ add sp, #0x4c
+ strb r0, [r7, #0xe]
+ pop {r4-r7, pc}
+_02067C30:
+ ldrb r0, [r4, #0x0]
+ add sp, #0x4c
+ strb r0, [r7, #0xf]
+ pop {r4-r7, pc}
+_02067C38:
+ ldrb r0, [r4, #0x0]
+ add sp, #0x4c
+ strb r0, [r7, #0x10]
+ pop {r4-r7, pc}
+_02067C40:
+ ldrb r0, [r4, #0x0]
+ add sp, #0x4c
+ strb r0, [r7, #0x11]
+ pop {r4-r7, pc}
+_02067C48:
+ ldrb r0, [r4, #0x0]
+ add sp, #0x4c
+ strb r0, [r7, #0x12]
+ pop {r4-r7, pc}
+_02067C50:
+ ldrb r0, [r4, #0x0]
+ add sp, #0x4c
+ strb r0, [r7, #0x13]
+ pop {r4-r7, pc}
+_02067C58:
+ ldrb r0, [r4, #0x0]
+ add sp, #0x4c
+ strb r0, [r7, #0x14]
+ pop {r4-r7, pc}
+_02067C60:
+ ldrb r0, [r4, #0x0]
+ add sp, #0x4c
+ strb r0, [r7, #0x15]
+ pop {r4-r7, pc}
+_02067C68:
+ ldrb r0, [r4, #0x0]
+ add sp, #0x4c
+ strb r0, [r7, #0x16]
+ pop {r4-r7, pc}
+_02067C70:
+ ldrb r0, [r4, #0x0]
+ add sp, #0x4c
+ strb r0, [r7, #0x17]
+ pop {r4-r7, pc}
+_02067C78:
+ ldrb r0, [r4, #0x0]
+ add sp, #0x4c
+ strb r0, [r7, #0x18]
+ pop {r4-r7, pc}
+_02067C80:
+ ldrb r0, [r4, #0x0]
+ add sp, #0x4c
+ strb r0, [r7, #0x19]
+ pop {r4-r7, pc}
+_02067C88:
+ ldrb r0, [r4, #0x0]
+ add sp, #0x4c
+ strb r0, [r7, #0x1a]
+ pop {r4-r7, pc}
+_02067C90:
+ ldrb r0, [r4, #0x0]
+ add sp, #0x4c
+ strb r0, [r7, #0x1b]
+ pop {r4-r7, pc}
+_02067C98:
+ ldrb r4, [r4, #0x0]
+ ldr r2, [sp, #0x4]
+ mov r1, #0x0
+ sub r2, #0x19
+ add r0, r4, #0x0
+ str r2, [sp, #0x4]
+ blx _ll_shl
+ cmp r4, #0x0
+ beq _02067CB6
+ ldr r1, [r7, #0x1c]
+ add sp, #0x4c
+ orr r0, r1
+ str r0, [r7, #0x1c]
+ pop {r4-r7, pc}
+_02067CB6:
+ mov r1, #0x0
+ sub r1, r1, #0x1
+ ldr r2, [r7, #0x1c]
+ eor r0, r1
+ and r0, r2
+ add sp, #0x4c
+ str r0, [r7, #0x1c]
+ pop {r4-r7, pc}
+_02067CC6:
+ ldr r0, [sp, #0x4]
+ ldrh r1, [r4, #0x0]
+ sub r0, #0x36
+ str r0, [sp, #0x4]
+ lsl r0, r0, #0x1
+ add sp, #0x4c
+ strh r1, [r5, r0]
+ pop {r4-r7, pc}
+_02067CD6:
+ ldr r0, [sp, #0x4]
+ ldrb r1, [r4, #0x0]
+ sub r0, #0x3a
+ str r0, [sp, #0x4]
+ add r0, r5, r0
+ strb r1, [r0, #0x8]
+ add sp, #0x4c
+ pop {r4-r7, pc}
+_02067CE6:
+ ldr r0, [sp, #0x4]
+ ldrb r1, [r4, #0x0]
+ sub r0, #0x3e
+ str r0, [sp, #0x4]
+ add r0, r5, r0
+ strb r1, [r0, #0xc]
+ add sp, #0x4c
+ pop {r4-r7, pc}
+_02067CF6:
+ ldr r2, [r5, #0x10]
+ mov r0, #0x1f
+ bic r2, r0
+ ldrb r1, [r4, #0x0]
+ mov r0, #0x1f
+ add sp, #0x4c
+ and r0, r1
+ orr r0, r2
+ str r0, [r5, #0x10]
+ pop {r4-r7, pc}
+_02067D0A:
+ ldr r1, [r5, #0x10]
+ ldr r0, _02067FFC ; =0xFFFFFC1F
+ add sp, #0x4c
+ and r1, r0
+ ldrb r0, [r4, #0x0]
+ lsl r0, r0, #0x1b
+ lsr r0, r0, #0x16
+ orr r0, r1
+ str r0, [r5, #0x10]
+ pop {r4-r7, pc}
+_02067D1E:
+ ldr r1, [r5, #0x10]
+ ldr r0, _02068000 ; =0xFFFF83FF
+ add sp, #0x4c
+ and r1, r0
+ ldrb r0, [r4, #0x0]
+ lsl r0, r0, #0x1b
+ lsr r0, r0, #0x11
+ orr r0, r1
+ str r0, [r5, #0x10]
+ pop {r4-r7, pc}
+_02067D32:
+ ldr r1, [r5, #0x10]
+ ldr r0, _02068004 ; =0xFFF07FFF
+ add sp, #0x4c
+ and r1, r0
+ ldrb r0, [r4, #0x0]
+ lsl r0, r0, #0x1b
+ lsr r0, r0, #0xc
+ orr r0, r1
+ str r0, [r5, #0x10]
+ pop {r4-r7, pc}
+_02067D46:
+ ldr r1, [r5, #0x10]
+ ldr r0, _02068008 ; =0xFE0FFFFF
+ add sp, #0x4c
+ and r1, r0
+ ldrb r0, [r4, #0x0]
+ lsl r0, r0, #0x1b
+ lsr r0, r0, #0x7
+ orr r0, r1
+ str r0, [r5, #0x10]
+ pop {r4-r7, pc}
+_02067D5A:
+ ldr r1, [r5, #0x10]
+ ldr r0, _0206800C ; =0xC1FFFFFF
+ add sp, #0x4c
+ and r1, r0
+ ldrb r0, [r4, #0x0]
+ lsl r0, r0, #0x1b
+ lsr r0, r0, #0x2
+ orr r0, r1
+ str r0, [r5, #0x10]
+ pop {r4-r7, pc}
+_02067D6E:
+ ldr r1, [r5, #0x10]
+ ldr r0, _02068010 ; =0xBFFFFFFF
+ add sp, #0x4c
+ and r1, r0
+ ldrb r0, [r4, #0x0]
+ lsl r0, r0, #0x1f
+ lsr r0, r0, #0x1
+ orr r0, r1
+ str r0, [r5, #0x10]
+ pop {r4-r7, pc}
+_02067D82:
+ ldr r1, [r5, #0x10]
+ ldr r0, _02068014 ; =0x7FFFFFFF
+ add sp, #0x4c
+ and r1, r0
+ ldrb r0, [r4, #0x0]
+ lsl r0, r0, #0x1f
+ orr r0, r1
+ str r0, [r5, #0x10]
+ pop {r4-r7, pc}
+_02067D94:
+ ldrb r4, [r4, #0x0]
+ ldr r2, [sp, #0x4]
+ mov r1, #0x0
+ sub r2, #0x4e
+ add r0, r4, #0x0
+ str r2, [sp, #0x4]
+ blx _ll_shl
+ cmp r4, #0x0
+ beq _02067DB2
+ ldr r1, [r5, #0x14]
+ add sp, #0x4c
+ orr r0, r1
+ str r0, [r5, #0x14]
+ pop {r4-r7, pc}
+_02067DB2:
+ mov r1, #0x0
+ sub r1, r1, #0x1
+ ldr r2, [r5, #0x14]
+ eor r0, r1
+ and r0, r2
+ add sp, #0x4c
+ str r0, [r5, #0x14]
+ pop {r4-r7, pc}
+_02067DC2:
+ ldrb r2, [r5, #0x18]
+ ldrb r1, [r4, #0x0]
+ mov r0, #0x1
+ bic r2, r0
+ mov r0, #0x1
+ and r0, r1
+ orr r0, r2
+ add sp, #0x4c
+ strb r0, [r5, #0x18]
+ pop {r4-r7, pc}
+_02067DD6:
+ ldrb r1, [r5, #0x18]
+ mov r0, #0x6
+ add sp, #0x4c
+ bic r1, r0
+ ldrb r0, [r4, #0x0]
+ lsl r0, r0, #0x1e
+ lsr r0, r0, #0x1d
+ orr r0, r1
+ strb r0, [r5, #0x18]
+ pop {r4-r7, pc}
+_02067DEA:
+ ldrb r1, [r5, #0x18]
+ mov r0, #0xf8
+ add sp, #0x4c
+ bic r1, r0
+ ldrb r0, [r4, #0x0]
+ lsl r0, r0, #0x1b
+ lsr r0, r0, #0x18
+ orr r0, r1
+ strb r0, [r5, #0x18]
+ pop {r4-r7, pc}
+_02067DFE:
+ ldrb r0, [r4, #0x0]
+ add sp, #0x4c
+ strb r0, [r5, #0x19]
+ pop {r4-r7, pc}
+_02067E06:
+ ldrh r0, [r4, #0x0]
+ add sp, #0x4c
+ strh r0, [r5, #0x1a]
+ pop {r4-r7, pc}
+_02067E0E:
+ ldrh r0, [r7, #0x0]
+ mov r1, #0x0
+ add r2, sp, #0x34
+ bl FUN_0200A99C
+ add r0, sp, #0x34
+ add r1, r4, #0x0
+ bl StringNotEqual
+ ldr r2, [r5, #0x10]
+ ldr r1, _02068014 ; =0x7FFFFFFF
+ lsl r0, r0, #0x1f
+ and r1, r2
+ orr r0, r1
+ str r0, [r5, #0x10]
+_02067E2C:
+ mov r1, #0x0
+_02067E2E:
+ ldrh r0, [r4, #0x0]
+ add r1, r1, #0x1
+ add r4, r4, #0x2
+ strh r0, [r6, #0x0]
+ add r6, r6, #0x2
+ cmp r1, #0xb
+ blo _02067E2E
+ add sp, #0x4c
+ pop {r4-r7, pc}
+_02067E40:
+ ldrh r0, [r7, #0x0]
+ add r2, sp, #0x1c
+ mov r1, #0x0
+ add r2, #0x2
+ bl FUN_0200A99C
+ add r0, r4, #0x0
+ add r1, sp, #0x8
+ mov r2, #0xb
+ bl FUN_02021EF0
+ add r0, sp, #0x1c
+ add r0, #0x2
+ add r1, sp, #0x8
+ bl StringNotEqual
+ ldr r2, [r5, #0x10]
+ ldr r1, _02068014 ; =0x7FFFFFFF
+ lsl r0, r0, #0x1f
+ and r1, r2
+ orr r0, r1
+ str r0, [r5, #0x10]
+_02067E6C:
+ add r0, r4, #0x0
+ add r1, r6, #0x0
+ mov r2, #0xb
+ bl FUN_02021EF0
+ add sp, #0x4c
+ pop {r4-r7, pc}
+_02067E7A:
+ ldrb r0, [r4, #0x0]
+ add sp, #0x4c
+ strb r0, [r6, #0x16]
+ pop {r4-r7, pc}
+_02067E82:
+ ldrb r0, [r4, #0x0]
+ add sp, #0x4c
+ strb r0, [r6, #0x17]
+ pop {r4-r7, pc}
+_02067E8A:
+ ldrb r4, [r4, #0x0]
+ ldr r2, [sp, #0x4]
+ mov r1, #0x0
+ sub r2, #0x7a
+ add r0, r4, #0x0
+ str r2, [sp, #0x4]
+ blx _ll_shl
+ cmp r4, #0x0
+ beq _02067EB2
+ add r4, r6, #0x0
+ add r4, #0x18
+ ldr r3, [r6, #0x18]
+ ldr r2, [r4, #0x4]
+ orr r0, r3
+ orr r1, r2
+ str r0, [r6, #0x18]
+ add sp, #0x4c
+ str r1, [r4, #0x4]
+ pop {r4-r7, pc}
+_02067EB2:
+ add r4, r6, #0x0
+ mov r5, #0x0
+ mvn r5, r5
+ add r4, #0x18
+ ldr r3, [r6, #0x18]
+ eor r0, r5
+ ldr r2, [r4, #0x4]
+ eor r1, r5
+ and r0, r3
+ and r1, r2
+ str r0, [r6, #0x18]
+ add sp, #0x4c
+ str r1, [r4, #0x4]
+ pop {r4-r7, pc}
+_02067ECE:
+ mov r2, #0x0
+_02067ED0:
+ ldrh r0, [r4, #0x0]
+ add r2, r2, #0x1
+ add r4, r4, #0x2
+ strh r0, [r1, #0x0]
+ add r1, r1, #0x2
+ cmp r2, #0x8
+ blo _02067ED0
+ add sp, #0x4c
+ pop {r4-r7, pc}
+_02067EE2:
+ add r0, r4, #0x0
+ mov r2, #0x8
+ bl FUN_02021EF0
+ add sp, #0x4c
+ pop {r4-r7, pc}
+_02067EEE:
+ ldrb r0, [r4, #0x0]
+ add sp, #0x4c
+ strb r0, [r1, #0x10]
+ pop {r4-r7, pc}
+_02067EF6:
+ ldrb r0, [r4, #0x0]
+ add sp, #0x4c
+ strb r0, [r1, #0x11]
+ pop {r4-r7, pc}
+_02067EFE:
+ ldrb r0, [r4, #0x0]
+ add sp, #0x4c
+ strb r0, [r1, #0x12]
+ pop {r4-r7, pc}
+_02067F06:
+ ldrb r0, [r4, #0x0]
+ add sp, #0x4c
+ strb r0, [r1, #0x13]
+ pop {r4-r7, pc}
+_02067F0E:
+ ldrb r0, [r4, #0x0]
+ add sp, #0x4c
+ strb r0, [r1, #0x14]
+ pop {r4-r7, pc}
+_02067F16:
+ ldrb r0, [r4, #0x0]
+ add sp, #0x4c
+ strb r0, [r1, #0x15]
+ pop {r4-r7, pc}
+_02067F1E:
+ ldrh r0, [r4, #0x0]
+ add sp, #0x4c
+ strh r0, [r1, #0x16]
+ pop {r4-r7, pc}
+_02067F26:
+ ldrh r0, [r4, #0x0]
+ add sp, #0x4c
+ strh r0, [r1, #0x18]
+ pop {r4-r7, pc}
+_02067F2E:
+ ldrb r0, [r4, #0x0]
+ add sp, #0x4c
+ strb r0, [r1, #0x1a]
+ pop {r4-r7, pc}
+_02067F36:
+ ldrb r0, [r4, #0x0]
+ add sp, #0x4c
+ strb r0, [r1, #0x1b]
+ pop {r4-r7, pc}
+_02067F3E:
+ ldrb r3, [r1, #0x1c]
+ ldrb r2, [r4, #0x0]
+ mov r0, #0x7f
+ bic r3, r0
+ mov r0, #0x7f
+ and r0, r2
+ orr r0, r3
+ strb r0, [r1, #0x1c]
+ add sp, #0x4c
+ pop {r4-r7, pc}
+_02067F52:
+ ldrb r2, [r1, #0x1c]
+ mov r0, #0x80
+ add sp, #0x4c
+ bic r2, r0
+ ldrb r0, [r4, #0x0]
+ lsl r0, r0, #0x1f
+ lsr r0, r0, #0x18
+ orr r0, r2
+ strb r0, [r1, #0x1c]
+ pop {r4-r7, pc}
+_02067F66:
+ ldrb r0, [r4, #0x0]
+ add sp, #0x4c
+ strb r0, [r1, #0x1d]
+ pop {r4-r7, pc}
+_02067F6E:
+ ldrh r0, [r4, #0x0]
+ add sp, #0x4c
+ strh r0, [r1, #0x1e]
+ pop {r4-r7, pc}
+_02067F76:
+ ldr r2, [r5, #0x10]
+ mov r0, #0x1f
+ bic r2, r0
+ ldr r1, [r4, #0x0]
+ mov r0, #0x1f
+ and r1, r0
+ and r0, r1
+ add r1, r2, #0x0
+ orr r1, r0
+ ldr r0, _02067FFC ; =0xFFFFFC1F
+ str r1, [r5, #0x10]
+ and r1, r0
+ ldr r0, [r4, #0x0]
+ add sp, #0x4c
+ lsr r0, r0, #0x5
+ lsl r0, r0, #0x1b
+ lsr r0, r0, #0x16
+ orr r1, r0
+ ldr r0, _02068000 ; =0xFFFF83FF
+ str r1, [r5, #0x10]
+ and r1, r0
+ ldr r0, [r4, #0x0]
+ lsr r0, r0, #0xa
+ lsl r0, r0, #0x1b
+ lsr r0, r0, #0x11
+ orr r1, r0
+ ldr r0, _02068004 ; =0xFFF07FFF
+ str r1, [r5, #0x10]
+ and r1, r0
+ ldr r0, [r4, #0x0]
+ lsr r0, r0, #0xf
+ lsl r0, r0, #0x1b
+ lsr r0, r0, #0xc
+ orr r1, r0
+ ldr r0, _02068008 ; =0xFE0FFFFF
+ str r1, [r5, #0x10]
+ and r1, r0
+ ldr r0, [r4, #0x0]
+ lsr r0, r0, #0x14
+ lsl r0, r0, #0x1b
+ lsr r0, r0, #0x7
+ orr r1, r0
+ ldr r0, _0206800C ; =0xC1FFFFFF
+ str r1, [r5, #0x10]
+ and r1, r0
+ ldr r0, [r4, #0x0]
+ lsr r0, r0, #0x19
+ lsl r0, r0, #0x1b
+ lsr r0, r0, #0x2
+ orr r0, r1
+ str r0, [r5, #0x10]
+ pop {r4-r7, pc}
+_02067FDE:
+ ldrh r0, [r7, #0x0]
+ mov r1, #0x0
+ bl FUN_0200AA50
+ add r4, r0, #0x0
+ add r1, r6, #0x0
+ mov r2, #0xb
+ bl FUN_02021EF0
+ add r0, r4, #0x0
+ bl FUN_02021A20
+_02067FF6:
+ add sp, #0x4c
+ pop {r4-r7, pc}
+ nop
+_02067FFC: .word 0xFFFFFC1F
+_02068000: .word 0xFFFF83FF
+_02068004: .word 0xFFF07FFF
+_02068008: .word 0xFE0FFFFF
+_0206800C: .word 0xC1FFFFFF
+_02068010: .word 0xBFFFFFFF
+_02068014: .word 0x7FFFFFFF
+
+ thumb_func_start FUN_02068018
+FUN_02068018: ; 0x02068018
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ ldrh r0, [r5, #0x4]
+ add r4, r1, #0x0
+ add r6, r2, #0x0
+ lsl r0, r0, #0x1f
+ lsr r0, r0, #0x1f
+ bne _02068066
+ add r0, r5, #0x0
+ ldr r2, [r5, #0x0]
+ add r0, #0x88
+ mov r1, #0x64
+ bl FUN_0206A3D0
+ add r0, r5, #0x0
+ ldrh r2, [r5, #0x6]
+ add r0, #0x8
+ mov r1, #0x80
+ bl FUN_0206A3D0
+ add r0, r5, #0x0
+ add r0, #0x8
+ mov r1, #0x80
+ bl FUN_0206A3F8
+ ldrh r1, [r5, #0x6]
+ cmp r0, r1
+ beq _02068066
+ cmp r0, r1
+ beq _02068058
+ bl ErrorHandling
+_02068058:
+ ldrh r2, [r5, #0x6]
+ add r0, r5, #0x0
+ add r0, #0x8
+ mov r1, #0x80
+ bl FUN_0206A3A4
+ pop {r4-r6, pc}
+_02068066:
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ add r2, r6, #0x0
+ bl FUN_020680A0
+ ldrh r0, [r5, #0x4]
+ lsl r0, r0, #0x1f
+ lsr r0, r0, #0x1f
+ bne _0206809C
+ add r0, r5, #0x0
+ ldr r2, [r5, #0x0]
+ add r0, #0x88
+ mov r1, #0x64
+ bl FUN_0206A3A4
+ add r0, r5, #0x0
+ add r0, #0x8
+ mov r1, #0x80
+ bl FUN_0206A3F8
+ strh r0, [r5, #0x6]
+ add r0, r5, #0x0
+ ldrh r2, [r5, #0x6]
+ add r0, #0x8
+ mov r1, #0x80
+ bl FUN_0206A3A4
+_0206809C:
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_020680A0
+FUN_020680A0: ; 0x020680A0
+ push {r3, lr}
+ add r3, r1, #0x0
+ sub r3, #0x9f
+ cmp r3, #0xa
+ bhi _020680F8
+ add r3, r3, r3
+ add r3, pc
+ ldrh r3, [r3, #0x6]
+ lsl r3, r3, #0x10
+ asr r3, r3, #0x10
+ add pc, r3
+_020680B6: ; jump table (using 16-bit offset)
+ .short _020680F2 - _020680B6 - 2; case 0
+ .short _020680F2 - _020680B6 - 2; case 1
+ .short _020680F2 - _020680B6 - 2; case 2
+ .short _020680CC - _020680B6 - 2; case 3
+ .short _020680F2 - _020680B6 - 2; case 4
+ .short _020680F2 - _020680B6 - 2; case 5
+ .short _020680F2 - _020680B6 - 2; case 6
+ .short _020680F2 - _020680B6 - 2; case 7
+ .short _020680F2 - _020680B6 - 2; case 8
+ .short _020680F2 - _020680B6 - 2; case 9
+ .short _020680F2 - _020680B6 - 2; case 10
+_020680CC:
+ add r1, r0, #0x0
+ add r1, #0x90
+ ldrh r3, [r1, #0x0]
+ add r1, r0, #0x0
+ add r1, #0x8e
+ ldrh r1, [r1, #0x0]
+ add r1, r1, r2
+ cmp r1, r3
+ ble _020680E4
+ add r0, #0x8e
+ strh r3, [r0, #0x0]
+ pop {r3, pc}
+_020680E4:
+ add r1, r0, #0x0
+ add r1, #0x8e
+ ldrh r1, [r1, #0x0]
+ add r0, #0x8e
+ add r1, r1, r2
+ strh r1, [r0, #0x0]
+ pop {r3, pc}
+_020680F2:
+ bl ErrorHandling
+ pop {r3, pc}
+_020680F8:
+ bl FUN_02068100
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_02068100
+FUN_02068100: ; 0x02068100
+ push {r4-r7, lr}
+ sub sp, #0xc
+ add r7, r1, #0x0
+ add r1, r0, #0x0
+ add r6, r2, #0x0
+ ldr r1, [r1, #0x0]
+ str r0, [sp, #0x0]
+ mov r2, #0x0
+ bl FUN_0206A418
+ add r4, r0, #0x0
+ ldr r0, [sp, #0x0]
+ mov r2, #0x1
+ add r1, r0, #0x0
+ ldr r1, [r1, #0x0]
+ bl FUN_0206A418
+ add r5, r0, #0x0
+ ldr r0, [sp, #0x0]
+ mov r2, #0x2
+ add r1, r0, #0x0
+ ldr r1, [r1, #0x0]
+ bl FUN_0206A418
+ ldr r0, [sp, #0x0]
+ mov r2, #0x3
+ add r1, r0, #0x0
+ ldr r1, [r1, #0x0]
+ bl FUN_0206A418
+ cmp r7, #0xb2
+ bls _02068142
+ b _02068500
+_02068142:
+ add r0, r7, r7
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0206814E: ; jump table (using 16-bit offset)
+ .short _02068500 - _0206814E - 2; case 0
+ .short _02068500 - _0206814E - 2; case 1
+ .short _02068500 - _0206814E - 2; case 2
+ .short _02068500 - _0206814E - 2; case 3
+ .short _02068500 - _0206814E - 2; case 4
+ .short _02068500 - _0206814E - 2; case 5
+ .short _02068500 - _0206814E - 2; case 6
+ .short _02068500 - _0206814E - 2; case 7
+ .short _020682B4 - _0206814E - 2; case 8
+ .short _020682D8 - _0206814E - 2; case 9
+ .short _02068500 - _0206814E - 2; case 10
+ .short _02068500 - _0206814E - 2; case 11
+ .short _02068500 - _0206814E - 2; case 12
+ .short _020682EE - _0206814E - 2; case 13
+ .short _020682F8 - _0206814E - 2; case 14
+ .short _02068302 - _0206814E - 2; case 15
+ .short _0206830C - _0206814E - 2; case 16
+ .short _02068316 - _0206814E - 2; case 17
+ .short _02068320 - _0206814E - 2; case 18
+ .short _0206832A - _0206814E - 2; case 19
+ .short _02068340 - _0206814E - 2; case 20
+ .short _02068356 - _0206814E - 2; case 21
+ .short _0206836C - _0206814E - 2; case 22
+ .short _02068382 - _0206814E - 2; case 23
+ .short _02068398 - _0206814E - 2; case 24
+ .short _02068500 - _0206814E - 2; case 25
+ .short _02068500 - _0206814E - 2; case 26
+ .short _02068500 - _0206814E - 2; case 27
+ .short _02068500 - _0206814E - 2; case 28
+ .short _02068500 - _0206814E - 2; case 29
+ .short _02068500 - _0206814E - 2; case 30
+ .short _02068500 - _0206814E - 2; case 31
+ .short _02068500 - _0206814E - 2; case 32
+ .short _02068500 - _0206814E - 2; case 33
+ .short _02068500 - _0206814E - 2; case 34
+ .short _02068500 - _0206814E - 2; case 35
+ .short _02068500 - _0206814E - 2; case 36
+ .short _02068500 - _0206814E - 2; case 37
+ .short _02068500 - _0206814E - 2; case 38
+ .short _02068500 - _0206814E - 2; case 39
+ .short _02068500 - _0206814E - 2; case 40
+ .short _02068500 - _0206814E - 2; case 41
+ .short _02068500 - _0206814E - 2; case 42
+ .short _02068500 - _0206814E - 2; case 43
+ .short _02068500 - _0206814E - 2; case 44
+ .short _02068500 - _0206814E - 2; case 45
+ .short _02068500 - _0206814E - 2; case 46
+ .short _02068500 - _0206814E - 2; case 47
+ .short _02068500 - _0206814E - 2; case 48
+ .short _02068500 - _0206814E - 2; case 49
+ .short _02068500 - _0206814E - 2; case 50
+ .short _02068500 - _0206814E - 2; case 51
+ .short _02068500 - _0206814E - 2; case 52
+ .short _02068500 - _0206814E - 2; case 53
+ .short _02068500 - _0206814E - 2; case 54
+ .short _02068500 - _0206814E - 2; case 55
+ .short _02068500 - _0206814E - 2; case 56
+ .short _02068500 - _0206814E - 2; case 57
+ .short _020683AE - _0206814E - 2; case 58
+ .short _020683AE - _0206814E - 2; case 59
+ .short _020683AE - _0206814E - 2; case 60
+ .short _020683AE - _0206814E - 2; case 61
+ .short _020683EA - _0206814E - 2; case 62
+ .short _020683EA - _0206814E - 2; case 63
+ .short _020683EA - _0206814E - 2; case 64
+ .short _020683EA - _0206814E - 2; case 65
+ .short _02068504 - _0206814E - 2; case 66
+ .short _02068504 - _0206814E - 2; case 67
+ .short _02068504 - _0206814E - 2; case 68
+ .short _02068504 - _0206814E - 2; case 69
+ .short _02068404 - _0206814E - 2; case 70
+ .short _0206842E - _0206814E - 2; case 71
+ .short _02068458 - _0206814E - 2; case 72
+ .short _02068482 - _0206814E - 2; case 73
+ .short _020684AC - _0206814E - 2; case 74
+ .short _020684D6 - _0206814E - 2; case 75
+ .short _02068500 - _0206814E - 2; case 76
+ .short _02068500 - _0206814E - 2; case 77
+ .short _02068500 - _0206814E - 2; case 78
+ .short _02068500 - _0206814E - 2; case 79
+ .short _02068500 - _0206814E - 2; case 80
+ .short _02068500 - _0206814E - 2; case 81
+ .short _02068500 - _0206814E - 2; case 82
+ .short _02068500 - _0206814E - 2; case 83
+ .short _02068500 - _0206814E - 2; case 84
+ .short _02068500 - _0206814E - 2; case 85
+ .short _02068500 - _0206814E - 2; case 86
+ .short _02068500 - _0206814E - 2; case 87
+ .short _02068500 - _0206814E - 2; case 88
+ .short _02068500 - _0206814E - 2; case 89
+ .short _02068500 - _0206814E - 2; case 90
+ .short _02068500 - _0206814E - 2; case 91
+ .short _02068500 - _0206814E - 2; case 92
+ .short _02068500 - _0206814E - 2; case 93
+ .short _02068500 - _0206814E - 2; case 94
+ .short _02068500 - _0206814E - 2; case 95
+ .short _02068500 - _0206814E - 2; case 96
+ .short _02068500 - _0206814E - 2; case 97
+ .short _02068500 - _0206814E - 2; case 98
+ .short _02068500 - _0206814E - 2; case 99
+ .short _02068500 - _0206814E - 2; case 100
+ .short _02068500 - _0206814E - 2; case 101
+ .short _02068500 - _0206814E - 2; case 102
+ .short _02068500 - _0206814E - 2; case 103
+ .short _02068500 - _0206814E - 2; case 104
+ .short _02068500 - _0206814E - 2; case 105
+ .short _02068500 - _0206814E - 2; case 106
+ .short _02068500 - _0206814E - 2; case 107
+ .short _02068500 - _0206814E - 2; case 108
+ .short _02068500 - _0206814E - 2; case 109
+ .short _02068500 - _0206814E - 2; case 110
+ .short _02068500 - _0206814E - 2; case 111
+ .short _02068500 - _0206814E - 2; case 112
+ .short _02068500 - _0206814E - 2; case 113
+ .short _02068500 - _0206814E - 2; case 114
+ .short _02068500 - _0206814E - 2; case 115
+ .short _02068500 - _0206814E - 2; case 116
+ .short _02068500 - _0206814E - 2; case 117
+ .short _02068500 - _0206814E - 2; case 118
+ .short _02068500 - _0206814E - 2; case 119
+ .short _02068500 - _0206814E - 2; case 120
+ .short _02068500 - _0206814E - 2; case 121
+ .short _02068500 - _0206814E - 2; case 122
+ .short _02068500 - _0206814E - 2; case 123
+ .short _02068500 - _0206814E - 2; case 124
+ .short _02068500 - _0206814E - 2; case 125
+ .short _02068500 - _0206814E - 2; case 126
+ .short _02068500 - _0206814E - 2; case 127
+ .short _02068500 - _0206814E - 2; case 128
+ .short _02068500 - _0206814E - 2; case 129
+ .short _02068500 - _0206814E - 2; case 130
+ .short _02068500 - _0206814E - 2; case 131
+ .short _02068500 - _0206814E - 2; case 132
+ .short _02068500 - _0206814E - 2; case 133
+ .short _02068500 - _0206814E - 2; case 134
+ .short _02068500 - _0206814E - 2; case 135
+ .short _02068500 - _0206814E - 2; case 136
+ .short _02068500 - _0206814E - 2; case 137
+ .short _02068500 - _0206814E - 2; case 138
+ .short _02068500 - _0206814E - 2; case 139
+ .short _02068500 - _0206814E - 2; case 140
+ .short _02068500 - _0206814E - 2; case 141
+ .short _02068500 - _0206814E - 2; case 142
+ .short _02068500 - _0206814E - 2; case 143
+ .short _02068500 - _0206814E - 2; case 144
+ .short _02068500 - _0206814E - 2; case 145
+ .short _02068500 - _0206814E - 2; case 146
+ .short _02068500 - _0206814E - 2; case 147
+ .short _02068500 - _0206814E - 2; case 148
+ .short _02068500 - _0206814E - 2; case 149
+ .short _02068500 - _0206814E - 2; case 150
+ .short _02068500 - _0206814E - 2; case 151
+ .short _02068500 - _0206814E - 2; case 152
+ .short _02068500 - _0206814E - 2; case 153
+ .short _02068500 - _0206814E - 2; case 154
+ .short _02068500 - _0206814E - 2; case 155
+ .short _02068500 - _0206814E - 2; case 156
+ .short _02068500 - _0206814E - 2; case 157
+ .short _02068500 - _0206814E - 2; case 158
+ .short _02068500 - _0206814E - 2; case 159
+ .short _02068500 - _0206814E - 2; case 160
+ .short _02068500 - _0206814E - 2; case 161
+ .short _02068500 - _0206814E - 2; case 162
+ .short _02068500 - _0206814E - 2; case 163
+ .short _02068500 - _0206814E - 2; case 164
+ .short _02068500 - _0206814E - 2; case 165
+ .short _02068500 - _0206814E - 2; case 166
+ .short _02068500 - _0206814E - 2; case 167
+ .short _02068500 - _0206814E - 2; case 168
+ .short _02068500 - _0206814E - 2; case 169
+ .short _02068500 - _0206814E - 2; case 170
+ .short _02068500 - _0206814E - 2; case 171
+ .short _02068500 - _0206814E - 2; case 172
+ .short _02068500 - _0206814E - 2; case 173
+ .short _02068500 - _0206814E - 2; case 174
+ .short _02068500 - _0206814E - 2; case 175
+ .short _02068500 - _0206814E - 2; case 176
+ .short _02068500 - _0206814E - 2; case 177
+ .short _02068500 - _0206814E - 2; case 178
+_020682B4:
+ ldrh r0, [r4, #0x0]
+ mov r1, #0x64
+ bl FUN_02068758
+ ldr r1, [r4, #0x8]
+ add r1, r1, r6
+ cmp r1, r0
+ bls _020682D2
+ ldrh r0, [r4, #0x0]
+ mov r1, #0x64
+ bl FUN_02068758
+ add sp, #0xc
+ str r0, [r4, #0x8]
+ pop {r4-r7, pc}
+_020682D2:
+ add sp, #0xc
+ str r1, [r4, #0x8]
+ pop {r4-r7, pc}
+_020682D8:
+ ldrb r0, [r4, #0xc]
+ add r0, r0, r6
+ cmp r0, #0xff
+ ble _020682E8
+ mov r0, #0xff
+ add sp, #0xc
+ strb r0, [r4, #0xc]
+ pop {r4-r7, pc}
+_020682E8:
+ add sp, #0xc
+ strb r0, [r4, #0xc]
+ pop {r4-r7, pc}
+_020682EE:
+ ldrb r0, [r4, #0x10]
+ add sp, #0xc
+ add r0, r0, r6
+ strb r0, [r4, #0x10]
+ pop {r4-r7, pc}
+_020682F8:
+ ldrb r0, [r4, #0x11]
+ add sp, #0xc
+ add r0, r0, r6
+ strb r0, [r4, #0x11]
+ pop {r4-r7, pc}
+_02068302:
+ ldrb r0, [r4, #0x12]
+ add sp, #0xc
+ add r0, r0, r6
+ strb r0, [r4, #0x12]
+ pop {r4-r7, pc}
+_0206830C:
+ ldrb r0, [r4, #0x13]
+ add sp, #0xc
+ add r0, r0, r6
+ strb r0, [r4, #0x13]
+ pop {r4-r7, pc}
+_02068316:
+ ldrb r0, [r4, #0x14]
+ add sp, #0xc
+ add r0, r0, r6
+ strb r0, [r4, #0x14]
+ pop {r4-r7, pc}
+_02068320:
+ ldrb r0, [r4, #0x15]
+ add sp, #0xc
+ add r0, r0, r6
+ strb r0, [r4, #0x15]
+ pop {r4-r7, pc}
+_0206832A:
+ ldrb r0, [r4, #0x16]
+ add r0, r0, r6
+ cmp r0, #0xff
+ ble _0206833A
+ mov r0, #0xff
+ add sp, #0xc
+ strb r0, [r4, #0x16]
+ pop {r4-r7, pc}
+_0206833A:
+ add sp, #0xc
+ strb r0, [r4, #0x16]
+ pop {r4-r7, pc}
+_02068340:
+ ldrb r0, [r4, #0x17]
+ add r0, r0, r6
+ cmp r0, #0xff
+ ble _02068350
+ mov r0, #0xff
+ add sp, #0xc
+ strb r0, [r4, #0x17]
+ pop {r4-r7, pc}
+_02068350:
+ add sp, #0xc
+ strb r0, [r4, #0x17]
+ pop {r4-r7, pc}
+_02068356:
+ ldrb r0, [r4, #0x18]
+ add r0, r0, r6
+ cmp r0, #0xff
+ ble _02068366
+ mov r0, #0xff
+ add sp, #0xc
+ strb r0, [r4, #0x18]
+ pop {r4-r7, pc}
+_02068366:
+ add sp, #0xc
+ strb r0, [r4, #0x18]
+ pop {r4-r7, pc}
+_0206836C:
+ ldrb r0, [r4, #0x19]
+ add r0, r0, r6
+ cmp r0, #0xff
+ ble _0206837C
+ mov r0, #0xff
+ add sp, #0xc
+ strb r0, [r4, #0x19]
+ pop {r4-r7, pc}
+_0206837C:
+ add sp, #0xc
+ strb r0, [r4, #0x19]
+ pop {r4-r7, pc}
+_02068382:
+ ldrb r0, [r4, #0x1a]
+ add r0, r0, r6
+ cmp r0, #0xff
+ ble _02068392
+ mov r0, #0xff
+ add sp, #0xc
+ strb r0, [r4, #0x1a]
+ pop {r4-r7, pc}
+_02068392:
+ add sp, #0xc
+ strb r0, [r4, #0x1a]
+ pop {r4-r7, pc}
+_02068398:
+ ldrb r0, [r4, #0x1b]
+ add r0, r0, r6
+ cmp r0, #0xff
+ ble _020683A8
+ mov r0, #0xff
+ add sp, #0xc
+ strb r0, [r4, #0x1b]
+ pop {r4-r7, pc}
+_020683A8:
+ add sp, #0xc
+ strb r0, [r4, #0x1b]
+ pop {r4-r7, pc}
+_020683AE:
+ add r0, r5, #0x0
+ str r0, [sp, #0x4]
+ add r0, #0xc
+ str r0, [sp, #0x4]
+ sub r7, #0x3a
+ ldr r1, [sp, #0x4]
+ lsl r0, r7, #0x1
+ str r0, [sp, #0x8]
+ add r4, r5, #0x0
+ ldrh r0, [r5, r0]
+ ldrb r1, [r1, r7]
+ add r4, #0x8
+ bl FUN_0206AB30
+ ldrb r1, [r4, r7]
+ add r1, r6, r1
+ cmp r1, r0
+ ble _020683E4
+ ldr r0, [sp, #0x8]
+ ldr r1, [sp, #0x4]
+ ldrh r0, [r5, r0]
+ ldrb r1, [r1, r7]
+ bl FUN_0206AB30
+ add sp, #0xc
+ strb r0, [r4, r7]
+ pop {r4-r7, pc}
+_020683E4:
+ add sp, #0xc
+ strb r1, [r4, r7]
+ pop {r4-r7, pc}
+_020683EA:
+ add r5, #0xc
+ sub r7, #0x3e
+ ldrb r0, [r5, r7]
+ add r0, r6, r0
+ cmp r0, #0x3
+ ble _020683FE
+ mov r0, #0x3
+ add sp, #0xc
+ strb r0, [r5, r7]
+ pop {r4-r7, pc}
+_020683FE:
+ add sp, #0xc
+ strb r0, [r5, r7]
+ pop {r4-r7, pc}
+_02068404:
+ ldr r1, [r5, #0x10]
+ lsl r0, r1, #0x1b
+ lsr r0, r0, #0x1b
+ add r2, r0, r6
+ cmp r2, #0x1f
+ bls _0206841E
+ mov r0, #0x1f
+ bic r1, r0
+ mov r0, #0x1f
+ orr r0, r1
+ add sp, #0xc
+ str r0, [r5, #0x10]
+ pop {r4-r7, pc}
+_0206841E:
+ mov r0, #0x1f
+ bic r1, r0
+ mov r0, #0x1f
+ and r0, r2
+ orr r0, r1
+ add sp, #0xc
+ str r0, [r5, #0x10]
+ pop {r4-r7, pc}
+_0206842E:
+ ldr r1, [r5, #0x10]
+ lsl r0, r1, #0x16
+ lsr r0, r0, #0x1b
+ add r2, r0, r6
+ cmp r2, #0x1f
+ ldr r0, _02068508 ; =0xFFFFFC1F
+ bls _0206844A
+ and r1, r0
+ mov r0, #0x3e
+ lsl r0, r0, #0x4
+ orr r0, r1
+ add sp, #0xc
+ str r0, [r5, #0x10]
+ pop {r4-r7, pc}
+_0206844A:
+ and r1, r0
+ lsl r0, r2, #0x1b
+ lsr r0, r0, #0x16
+ orr r0, r1
+ add sp, #0xc
+ str r0, [r5, #0x10]
+ pop {r4-r7, pc}
+_02068458:
+ ldr r1, [r5, #0x10]
+ lsl r0, r1, #0x11
+ lsr r0, r0, #0x1b
+ add r2, r0, r6
+ cmp r2, #0x1f
+ ldr r0, _0206850C ; =0xFFFF83FF
+ bls _02068474
+ and r1, r0
+ mov r0, #0x1f
+ lsl r0, r0, #0xa
+ orr r0, r1
+ add sp, #0xc
+ str r0, [r5, #0x10]
+ pop {r4-r7, pc}
+_02068474:
+ and r1, r0
+ lsl r0, r2, #0x1b
+ lsr r0, r0, #0x11
+ orr r0, r1
+ add sp, #0xc
+ str r0, [r5, #0x10]
+ pop {r4-r7, pc}
+_02068482:
+ ldr r1, [r5, #0x10]
+ lsl r0, r1, #0xc
+ lsr r0, r0, #0x1b
+ add r2, r0, r6
+ cmp r2, #0x1f
+ ldr r0, _02068510 ; =0xFFF07FFF
+ bls _0206849E
+ and r1, r0
+ mov r0, #0x3e
+ lsl r0, r0, #0xe
+ orr r0, r1
+ add sp, #0xc
+ str r0, [r5, #0x10]
+ pop {r4-r7, pc}
+_0206849E:
+ and r1, r0
+ lsl r0, r2, #0x1b
+ lsr r0, r0, #0xc
+ orr r0, r1
+ add sp, #0xc
+ str r0, [r5, #0x10]
+ pop {r4-r7, pc}
+_020684AC:
+ ldr r1, [r5, #0x10]
+ lsl r0, r1, #0x7
+ lsr r0, r0, #0x1b
+ add r2, r0, r6
+ cmp r2, #0x1f
+ ldr r0, _02068514 ; =0xFE0FFFFF
+ bls _020684C8
+ and r1, r0
+ mov r0, #0x1f
+ lsl r0, r0, #0x14
+ orr r0, r1
+ add sp, #0xc
+ str r0, [r5, #0x10]
+ pop {r4-r7, pc}
+_020684C8:
+ and r1, r0
+ lsl r0, r2, #0x1b
+ lsr r0, r0, #0x7
+ orr r0, r1
+ add sp, #0xc
+ str r0, [r5, #0x10]
+ pop {r4-r7, pc}
+_020684D6:
+ ldr r1, [r5, #0x10]
+ lsl r0, r1, #0x2
+ lsr r0, r0, #0x1b
+ add r2, r0, r6
+ cmp r2, #0x1f
+ ldr r0, _02068518 ; =0xC1FFFFFF
+ bls _020684F2
+ and r1, r0
+ mov r0, #0x3e
+ lsl r0, r0, #0x18
+ orr r0, r1
+ add sp, #0xc
+ str r0, [r5, #0x10]
+ pop {r4-r7, pc}
+_020684F2:
+ and r1, r0
+ lsl r0, r2, #0x1b
+ lsr r0, r0, #0x2
+ orr r0, r1
+ add sp, #0xc
+ str r0, [r5, #0x10]
+ pop {r4-r7, pc}
+_02068500:
+ bl ErrorHandling
+_02068504:
+ add sp, #0xc
+ pop {r4-r7, pc}
+ .balign 4
+_02068508: .word 0xFFFFFC1F
+_0206850C: .word 0xFFFF83FF
+_02068510: .word 0xFFF07FFF
+_02068514: .word 0xFE0FFFFF
+_02068518: .word 0xC1FFFFFF
+
+ thumb_func_start FUN_0206851C
+FUN_0206851C: ; 0x0206851C
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r0, r1, #0x0
+ mov r1, #0x2c
+ bl FUN_02016998
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_0206A370
+ add r0, r4, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_02068538
+FUN_02068538: ; 0x02068538
+ push {r4-r6, lr}
+ add r4, r0, #0x0
+ add r6, r1, #0x0
+ cmp r4, #0x0
+ bne _02068546
+ bl ErrorHandling
+_02068546:
+ cmp r6, #0x20
+ bhi _0206863A
+ add r0, r6, r6
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02068556: ; jump table (using 16-bit offset)
+ .short _02068598 - _02068556 - 2; case 0
+ .short _0206859C - _02068556 - 2; case 1
+ .short _020685A0 - _02068556 - 2; case 2
+ .short _020685A4 - _02068556 - 2; case 3
+ .short _020685A8 - _02068556 - 2; case 4
+ .short _020685AC - _02068556 - 2; case 5
+ .short _020685B0 - _02068556 - 2; case 6
+ .short _020685B4 - _02068556 - 2; case 7
+ .short _020685B8 - _02068556 - 2; case 8
+ .short _020685BC - _02068556 - 2; case 9
+ .short _020685C0 - _02068556 - 2; case 10
+ .short _020685C8 - _02068556 - 2; case 11
+ .short _020685D0 - _02068556 - 2; case 12
+ .short _020685D8 - _02068556 - 2; case 13
+ .short _020685E0 - _02068556 - 2; case 14
+ .short _020685E8 - _02068556 - 2; case 15
+ .short _020685F0 - _02068556 - 2; case 16
+ .short _020685F4 - _02068556 - 2; case 17
+ .short _020685F8 - _02068556 - 2; case 18
+ .short _020685FC - _02068556 - 2; case 19
+ .short _02068600 - _02068556 - 2; case 20
+ .short _02068604 - _02068556 - 2; case 21
+ .short _02068608 - _02068556 - 2; case 22
+ .short _0206860C - _02068556 - 2; case 23
+ .short _02068610 - _02068556 - 2; case 24
+ .short _02068614 - _02068556 - 2; case 25
+ .short _02068618 - _02068556 - 2; case 26
+ .short _0206861C - _02068556 - 2; case 27
+ .short _02068624 - _02068556 - 2; case 28
+ .short _0206862C - _02068556 - 2; case 29
+ .short _02068630 - _02068556 - 2; case 30
+ .short _02068634 - _02068556 - 2; case 31
+ .short _02068638 - _02068556 - 2; case 32
+_02068598:
+ ldrb r5, [r4, #0x0]
+ b _0206863A
+_0206859C:
+ ldrb r5, [r4, #0x1]
+ b _0206863A
+_020685A0:
+ ldrb r5, [r4, #0x2]
+ b _0206863A
+_020685A4:
+ ldrb r5, [r4, #0x3]
+ b _0206863A
+_020685A8:
+ ldrb r5, [r4, #0x4]
+ b _0206863A
+_020685AC:
+ ldrb r5, [r4, #0x5]
+ b _0206863A
+_020685B0:
+ ldrb r5, [r4, #0x6]
+ b _0206863A
+_020685B4:
+ ldrb r5, [r4, #0x7]
+ b _0206863A
+_020685B8:
+ ldrb r5, [r4, #0x8]
+ b _0206863A
+_020685BC:
+ ldrb r5, [r4, #0x9]
+ b _0206863A
+_020685C0:
+ ldrh r0, [r4, #0xa]
+ lsl r0, r0, #0x1e
+ lsr r5, r0, #0x1e
+ b _0206863A
+_020685C8:
+ ldrh r0, [r4, #0xa]
+ lsl r0, r0, #0x1c
+ lsr r5, r0, #0x1e
+ b _0206863A
+_020685D0:
+ ldrh r0, [r4, #0xa]
+ lsl r0, r0, #0x1a
+ lsr r5, r0, #0x1e
+ b _0206863A
+_020685D8:
+ ldrh r0, [r4, #0xa]
+ lsl r0, r0, #0x18
+ lsr r5, r0, #0x1e
+ b _0206863A
+_020685E0:
+ ldrh r0, [r4, #0xa]
+ lsl r0, r0, #0x16
+ lsr r5, r0, #0x1e
+ b _0206863A
+_020685E8:
+ ldrh r0, [r4, #0xa]
+ lsl r0, r0, #0x14
+ lsr r5, r0, #0x1e
+ b _0206863A
+_020685F0:
+ ldrh r5, [r4, #0xc]
+ b _0206863A
+_020685F4:
+ ldrh r5, [r4, #0xe]
+ b _0206863A
+_020685F8:
+ ldrb r5, [r4, #0x10]
+ b _0206863A
+_020685FC:
+ ldrb r5, [r4, #0x11]
+ b _0206863A
+_02068600:
+ ldrb r5, [r4, #0x12]
+ b _0206863A
+_02068604:
+ ldrb r5, [r4, #0x13]
+ b _0206863A
+_02068608:
+ ldrb r5, [r4, #0x14]
+ b _0206863A
+_0206860C:
+ ldrb r5, [r4, #0x15]
+ b _0206863A
+_02068610:
+ ldrb r5, [r4, #0x16]
+ b _0206863A
+_02068614:
+ ldrb r5, [r4, #0x17]
+ b _0206863A
+_02068618:
+ ldrb r5, [r4, #0x18]
+ b _0206863A
+_0206861C:
+ ldrb r0, [r4, #0x19]
+ lsl r0, r0, #0x19
+ lsr r5, r0, #0x19
+ b _0206863A
+_02068624:
+ ldrb r0, [r4, #0x19]
+ lsl r0, r0, #0x18
+ lsr r5, r0, #0x1f
+ b _0206863A
+_0206862C:
+ ldr r5, [r4, #0x1c]
+ b _0206863A
+_02068630:
+ ldr r5, [r4, #0x20]
+ b _0206863A
+_02068634:
+ ldr r5, [r4, #0x24]
+ b _0206863A
+_02068638:
+ ldr r5, [r4, #0x28]
+_0206863A:
+ add r0, r5, #0x0
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_02068640
+FUN_02068640: ; 0x02068640
+ push {r4, lr}
+ add r4, r0, #0x0
+ bne _0206864A
+ bl ErrorHandling
+_0206864A:
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02068654
+FUN_02068654: ; 0x02068654
+ push {r3-r5, lr}
+ add r4, r2, #0x0
+ bl FUN_0206A8FC
+ mov r1, #0x0
+ bl FUN_0206851C
+ add r5, r0, #0x0
+ add r1, r4, #0x0
+ bl FUN_02068538
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_02068640
+ add r0, r4, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_02068678
+FUN_02068678: ; 0x02068678
+ push {r3-r5, lr}
+ add r4, r1, #0x0
+ mov r1, #0x0
+ bl FUN_0206851C
+ add r5, r0, #0x0
+ add r1, r4, #0x0
+ bl FUN_02068538
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_02068640
+ add r0, r4, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_02068698
+FUN_02068698: ; 0x02068698
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ bl FUN_020669D4
+ str r0, [sp, #0x0]
+ add r0, r5, #0x0
+ mov r1, #0x5
+ mov r2, #0x0
+ bl FUN_020671BC
+ lsl r0, r0, #0x10
+ lsr r6, r0, #0x10
+ add r0, r5, #0x0
+ mov r1, #0xa0
+ mov r2, #0x0
+ bl FUN_020671BC
+ lsl r0, r0, #0x18
+ lsr r7, r0, #0x18
+ add r0, r6, #0x0
+ add r1, r7, #0x0
+ bl FUN_02068758
+ add r4, r0, #0x0
+ add r0, r6, #0x0
+ add r1, r7, #0x1
+ bl FUN_02068758
+ add r6, r0, #0x0
+ add r0, r5, #0x0
+ mov r1, #0x8
+ mov r2, #0x0
+ bl FUN_020671BC
+ add r7, r0, #0x0
+ ldr r1, [sp, #0x0]
+ add r0, r5, #0x0
+ bl FUN_02066A20
+ sub r1, r7, r4
+ mov r0, #0x64
+ mul r0, r1
+ sub r1, r6, r4
+ blx _u32_div_f
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_020686F8
+FUN_020686F8: ; 0x020686F8
+ ldr r3, _020686FC ; =FUN_02068700
+ bx r3
+ .balign 4
+_020686FC: .word FUN_02068700
+
+ thumb_func_start FUN_02068700
+FUN_02068700: ; 0x02068700
+ push {r4-r6, lr}
+ mov r1, #0x5
+ mov r2, #0x0
+ add r4, r0, #0x0
+ bl FUN_020672BC
+ lsl r0, r0, #0x10
+ lsr r6, r0, #0x10
+ add r0, r4, #0x0
+ bl FUN_020687C8
+ add r0, r0, #0x1
+ lsl r0, r0, #0x10
+ lsr r5, r0, #0x10
+ add r0, r4, #0x0
+ mov r1, #0x8
+ mov r2, #0x0
+ bl FUN_020672BC
+ add r4, r0, #0x0
+ add r0, r6, #0x0
+ add r1, r5, #0x0
+ bl FUN_02068758
+ sub r0, r0, r4
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_02068734
+FUN_02068734: ; 0x02068734
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ mov r1, #0x5
+ mov r2, #0x0
+ bl FUN_020671BC
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ mov r1, #0xa0
+ mov r2, #0x0
+ bl FUN_020671BC
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_02068758
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_02068758
+FUN_02068758: ; 0x02068758
+ push {r4, lr}
+ add r4, r1, #0x0
+ mov r1, #0x15
+ bl FUN_02068678
+ add r1, r4, #0x0
+ bl FUN_02068788
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0206876C
+FUN_0206876C: ; 0x0206876C
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ cmp r5, #0x8
+ blt _0206877A
+ bl ErrorHandling
+_0206877A:
+ add r0, r4, #0x0
+ mov r1, #0x3
+ add r2, r5, #0x0
+ bl LoadFromNARC
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_02068788
+FUN_02068788: ; 0x02068788
+ push {r4-r6, lr}
+ add r6, r0, #0x0
+ add r5, r1, #0x0
+ cmp r6, #0x8
+ blt _02068796
+ bl ErrorHandling
+_02068796:
+ cmp r5, #0x65
+ ble _0206879E
+ bl ErrorHandling
+_0206879E:
+ mov r1, #0x65
+ mov r0, #0x0
+ lsl r1, r1, #0x2
+ bl FUN_02016998
+ add r4, r0, #0x0
+ add r0, r6, #0x0
+ add r1, r4, #0x0
+ bl FUN_0206876C
+ lsl r0, r5, #0x2
+ ldr r5, [r4, r0]
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ add r0, r5, #0x0
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_020687C0
+FUN_020687C0: ; 0x020687C0
+ ldr r3, _020687C4 ; =FUN_020687C8
+ bx r3
+ .balign 4
+_020687C4: .word FUN_020687C8
+
+ thumb_func_start FUN_020687C8
+FUN_020687C8: ; 0x020687C8
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ bl FUN_02066A6C
+ add r6, r0, #0x0
+ add r0, r5, #0x0
+ mov r1, #0x5
+ mov r2, #0x0
+ bl FUN_020672BC
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ mov r1, #0x8
+ mov r2, #0x0
+ bl FUN_020672BC
+ add r7, r0, #0x0
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ bl FUN_02066A94
+ lsl r0, r4, #0x10
+ lsr r0, r0, #0x10
+ add r1, r7, #0x0
+ bl FUN_02068800
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_02068800
+FUN_02068800: ; 0x02068800
+ push {r4-r6, lr}
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ mov r1, #0x0
+ bl FUN_0206851C
+ add r6, r0, #0x0
+ add r1, r5, #0x0
+ add r2, r4, #0x0
+ bl FUN_02068824
+ add r4, r0, #0x0
+ add r0, r6, #0x0
+ bl FUN_02068640
+ add r0, r4, #0x0
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_02068824
+FUN_02068824: ; 0x02068824
+ push {r4, lr}
+ mov r1, #0x15
+ add r4, r2, #0x0
+ bl FUN_02068538
+ ldr r1, _0206884C ; =0x021C5AC0
+ bl FUN_0206876C
+ ldr r2, _02068850 ; =0x021C5AC4
+ mov r1, #0x1
+_02068838:
+ ldr r0, [r2, #0x0]
+ cmp r0, r4
+ bhi _02068846
+ add r1, r1, #0x1
+ add r2, r2, #0x4
+ cmp r1, #0x65
+ blt _02068838
+_02068846:
+ sub r0, r1, #0x1
+ pop {r4, pc}
+ nop
+_0206884C: .word 0x021C5AC0
+_02068850: .word 0x021C5AC4
+
+ thumb_func_start FUN_02068854
+FUN_02068854: ; 0x02068854
+ ldr r3, _02068858 ; =FUN_0206885C
+ bx r3
+ .balign 4
+_02068858: .word FUN_0206885C
+
+ thumb_func_start FUN_0206885C
+FUN_0206885C: ; 0x0206885C
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ bl FUN_02066A6C
+ mov r1, #0x0
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ add r2, r1, #0x0
+ bl FUN_020672BC
+ add r6, r0, #0x0
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_02066A94
+ add r0, r6, #0x0
+ bl FUN_02068884
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_02068884
+FUN_02068884: ; 0x02068884
+ push {r3, lr}
+ mov r1, #0x19
+ blx _u32_div_f
+ lsl r0, r1, #0x18
+ lsr r0, r0, #0x18
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_02068894
+FUN_02068894: ; 0x02068894
+ push {r3, lr}
+ cmp r2, #0x1
+ blo _0206889E
+ cmp r2, #0x5
+ bls _020688A2
+_0206889E:
+ add r0, r1, #0x0
+ pop {r3, pc}
+_020688A2:
+ lsl r3, r0, #0x2
+ add r3, r0, r3
+ ldr r0, _020688E4 ; =0x020F7F93
+ sub r2, r2, #0x1
+ add r0, r0, r3
+ ldrsb r2, [r2, r0]
+ mov r0, #0x0
+ mvn r0, r0
+ cmp r2, r0
+ beq _020688CE
+ cmp r2, #0x1
+ bne _020688E0
+ mov r0, #0x6e
+ mul r0, r1
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ mov r1, #0x64
+ blx _s32_div_f
+ lsl r0, r0, #0x10
+ lsr r1, r0, #0x10
+ b _020688E0
+_020688CE:
+ mov r0, #0x5a
+ mul r0, r1
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ mov r1, #0x64
+ blx _s32_div_f
+ lsl r0, r0, #0x10
+ lsr r1, r0, #0x10
+_020688E0:
+ add r0, r1, #0x0
+ pop {r3, pc}
+ .balign 4
+_020688E4: .word 0x020F7F93
+
+ thumb_func_start FUN_020688E8
+FUN_020688E8: ; 0x020688E8
+ push {r3-r7, lr}
+ sub sp, #0x8
+ add r6, r1, #0x0
+ add r5, r0, #0x0
+ str r2, [sp, #0x0]
+ cmp r6, #0x5
+ bne _02068900
+ bl FUN_0201B9EC
+ mov r1, #0x1
+ tst r0, r1
+ bne _020689D4
+_02068900:
+ add r0, r5, #0x0
+ mov r1, #0xad
+ mov r2, #0x0
+ bl FUN_020671BC
+ lsl r0, r0, #0x10
+ lsr r1, r0, #0x10
+ beq _020689D4
+ ldr r0, _020689D8 ; =0x000001EE
+ cmp r1, r0
+ beq _020689D4
+ add r0, r5, #0x0
+ mov r1, #0x6
+ mov r2, #0x0
+ bl FUN_020671BC
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ mov r1, #0x1
+ mov r2, #0x0
+ bl FUN_0206E7B8
+ lsl r0, r0, #0x18
+ mov r4, #0x0
+ lsr r7, r0, #0x18
+ add r0, r5, #0x0
+ mov r1, #0x9
+ add r2, r4, #0x0
+ bl FUN_020671BC
+ add r1, sp, #0x4
+ strh r0, [r1, #0x0]
+ add r0, r4, #0x0
+ ldrsh r1, [r1, r0]
+ cmp r1, #0x64
+ blt _0206894E
+ add r0, r4, #0x1
+ lsl r0, r0, #0x18
+ lsr r4, r0, #0x18
+_0206894E:
+ cmp r1, #0xc8
+ blt _02068958
+ add r0, r4, #0x1
+ lsl r0, r0, #0x18
+ lsr r4, r0, #0x18
+_02068958:
+ lsl r0, r6, #0x1
+ add r1, r6, r0
+ ldr r0, _020689DC ; =0x020F7ED4
+ add r0, r0, r1
+ ldrsb r4, [r4, r0]
+ cmp r4, #0x0
+ ble _0206897A
+ add r0, r5, #0x0
+ mov r1, #0x9a
+ mov r2, #0x0
+ bl FUN_020671BC
+ cmp r0, #0xb
+ bne _0206897A
+ add r0, r4, #0x1
+ lsl r0, r0, #0x18
+ asr r4, r0, #0x18
+_0206897A:
+ cmp r4, #0x0
+ ble _02068994
+ add r0, r5, #0x0
+ mov r1, #0x97
+ mov r2, #0x0
+ bl FUN_020671BC
+ ldr r1, [sp, #0x0]
+ cmp r1, r0
+ bne _02068994
+ add r0, r4, #0x1
+ lsl r0, r0, #0x18
+ asr r4, r0, #0x18
+_02068994:
+ cmp r4, #0x0
+ ble _020689AA
+ cmp r7, #0x34
+ bne _020689AA
+ mov r0, #0x96
+ mul r0, r4
+ mov r1, #0x64
+ blx _s32_div_f
+ lsl r0, r0, #0x18
+ asr r4, r0, #0x18
+_020689AA:
+ add r0, sp, #0x4
+ mov r1, #0x0
+ ldrsh r2, [r0, r1]
+ add r2, r2, r4
+ strh r2, [r0, #0x0]
+ ldrsh r2, [r0, r1]
+ cmp r2, #0x0
+ bge _020689BC
+ strh r1, [r0, #0x0]
+_020689BC:
+ add r1, sp, #0x4
+ mov r0, #0x0
+ ldrsh r0, [r1, r0]
+ cmp r0, #0xff
+ ble _020689CA
+ mov r0, #0xff
+ strh r0, [r1, #0x0]
+_020689CA:
+ add r0, r5, #0x0
+ mov r1, #0x9
+ add r2, sp, #0x4
+ bl FUN_02067830
+_020689D4:
+ add sp, #0x8
+ pop {r3-r7, pc}
+ .balign 4
+_020689D8: .word 0x000001EE
+_020689DC: .word 0x020F7ED4
+
+ thumb_func_start FUN_020689E0
+FUN_020689E0: ; 0x020689E0
+ ldr r3, _020689E4 ; =FUN_020689E8
+ bx r3
+ .balign 4
+_020689E4: .word FUN_020689E8
+
+ thumb_func_start FUN_020689E8
+FUN_020689E8: ; 0x020689E8
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ bl FUN_02066A6C
+ add r6, r0, #0x0
+ add r0, r5, #0x0
+ mov r1, #0x5
+ mov r2, #0x0
+ bl FUN_020672BC
+ lsl r0, r0, #0x10
+ mov r1, #0x0
+ lsr r4, r0, #0x10
+ add r0, r5, #0x0
+ add r2, r1, #0x0
+ bl FUN_020672BC
+ add r7, r0, #0x0
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ bl FUN_02066A94
+ add r0, r4, #0x0
+ add r1, r7, #0x0
+ bl FUN_02068A20
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_02068A20
+FUN_02068A20: ; 0x02068A20
+ push {r4-r6, lr}
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ mov r1, #0x0
+ bl FUN_0206851C
+ add r6, r0, #0x0
+ add r1, r5, #0x0
+ add r2, r4, #0x0
+ bl FUN_02068A44
+ add r4, r0, #0x0
+ add r0, r6, #0x0
+ bl FUN_02068640
+ add r0, r4, #0x0
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_02068A44
+FUN_02068A44: ; 0x02068A44
+ push {r4, lr}
+ mov r1, #0x12
+ add r4, r2, #0x0
+ bl FUN_02068538
+ lsl r0, r0, #0x18
+ lsr r1, r0, #0x18
+ beq _02068A5E
+ cmp r1, #0xfe
+ beq _02068A62
+ cmp r1, #0xff
+ beq _02068A66
+ b _02068A6A
+_02068A5E:
+ mov r0, #0x0
+ pop {r4, pc}
+_02068A62:
+ mov r0, #0x1
+ pop {r4, pc}
+_02068A66:
+ mov r0, #0x2
+ pop {r4, pc}
+_02068A6A:
+ lsl r0, r4, #0x18
+ lsr r0, r0, #0x18
+ cmp r1, r0
+ bls _02068A76
+ mov r0, #0x1
+ b _02068A78
+_02068A76:
+ mov r0, #0x0
+_02068A78:
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02068A80
+FUN_02068A80: ; 0x02068A80
+ ldr r3, _02068A84 ; =FUN_02068A88
+ bx r3
+ .balign 4
+_02068A84: .word FUN_02068A88
+
+ thumb_func_start FUN_02068A88
+FUN_02068A88: ; 0x02068A88
+ push {r3-r5, lr}
+ mov r1, #0x7
+ mov r2, #0x0
+ add r5, r0, #0x0
+ bl FUN_020672BC
+ mov r1, #0x0
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ add r2, r1, #0x0
+ bl FUN_020672BC
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_02068AAC
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_02068AAC
+FUN_02068AAC: ; 0x02068AAC
+ ldr r3, _02068AD4 ; =0xFFFF0000
+ lsl r2, r1, #0x10
+ and r1, r3
+ and r3, r0
+ lsl r0, r0, #0x10
+ lsr r3, r3, #0x10
+ lsr r0, r0, #0x10
+ lsr r1, r1, #0x10
+ eor r0, r3
+ lsr r2, r2, #0x10
+ eor r0, r1
+ eor r0, r2
+ cmp r0, #0x8
+ bhs _02068ACC
+ mov r0, #0x1
+ b _02068ACE
+_02068ACC:
+ mov r0, #0x0
+_02068ACE:
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bx lr
+ .balign 4
+_02068AD4: .word 0xFFFF0000
+
+ thumb_func_start FUN_02068AD8
+FUN_02068AD8: ; 0x02068AD8
+ push {r3-r7, lr}
+ add r7, r0, #0x0
+ ldr r0, _02068B64 ; =0xFFFF0000
+ and r0, r7
+ lsr r1, r0, #0x10
+ lsl r0, r7, #0x10
+ lsr r0, r0, #0x10
+ eor r0, r1
+ lsr r7, r0, #0x3
+ bl FUN_0201B9EC
+ mov r1, #0x7
+ and r0, r1
+ lsl r0, r0, #0x10
+ lsr r6, r0, #0x10
+ bl FUN_0201B9EC
+ mov r1, #0x7
+ and r0, r1
+ lsl r0, r0, #0x10
+ lsr r5, r0, #0x10
+ mov r4, #0x0
+_02068B04:
+ add r0, r4, #0x0
+ bl FUN_0206A92C
+ tst r0, r7
+ beq _02068B34
+ bl FUN_0201B9EC
+ mov r1, #0x1
+ tst r0, r1
+ beq _02068B26
+ add r0, r4, #0x3
+ bl FUN_0206A92C
+ orr r0, r6
+ lsl r0, r0, #0x10
+ lsr r6, r0, #0x10
+ b _02068B56
+_02068B26:
+ add r0, r4, #0x3
+ bl FUN_0206A92C
+ orr r0, r5
+ lsl r0, r0, #0x10
+ lsr r5, r0, #0x10
+ b _02068B56
+_02068B34:
+ bl FUN_0201B9EC
+ mov r1, #0x1
+ tst r0, r1
+ beq _02068B56
+ add r0, r4, #0x3
+ bl FUN_0206A92C
+ orr r0, r6
+ lsl r0, r0, #0x10
+ lsr r6, r0, #0x10
+ add r0, r4, #0x3
+ bl FUN_0206A92C
+ orr r0, r5
+ lsl r0, r0, #0x10
+ lsr r5, r0, #0x10
+_02068B56:
+ add r4, r4, #0x1
+ cmp r4, #0xd
+ blt _02068B04
+ lsl r0, r5, #0x10
+ orr r0, r6
+ pop {r3-r7, pc}
+ nop
+_02068B64: .word 0xFFFF0000
+
+ thumb_func_start FUN_02068B68
+FUN_02068B68: ; 0x02068B68
+ ldr r3, _02068B6C ; =FUN_02068B70
+ bx r3
+ .balign 4
+_02068B6C: .word FUN_02068B70
+
+ thumb_func_start FUN_02068B70
+FUN_02068B70: ; 0x02068B70
+ push {r4-r7, lr}
+ sub sp, #0x1c
+ add r5, r1, #0x0
+ str r0, [sp, #0xc]
+ add r0, r5, #0x0
+ str r2, [sp, #0x10]
+ bl FUN_02066A6C
+ str r0, [sp, #0x18]
+ add r0, r5, #0x0
+ mov r1, #0xad
+ mov r2, #0x0
+ bl FUN_020672BC
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+ add r0, r5, #0x0
+ bl FUN_020689E8
+ str r0, [sp, #0x14]
+ add r0, r5, #0x0
+ bl FUN_02068A88
+ mov r1, #0x0
+ add r7, r0, #0x0
+ add r0, r5, #0x0
+ add r2, r1, #0x0
+ bl FUN_020672BC
+ add r6, r0, #0x0
+ ldr r0, _02068BF8 ; =0x000001EE
+ cmp r4, r0
+ bne _02068BCA
+ add r0, r5, #0x0
+ mov r1, #0x5
+ mov r2, #0x0
+ bl FUN_020672BC
+ ldr r1, _02068BFC ; =0x000001EA
+ cmp r0, r1
+ bne _02068BC6
+ mov r0, #0x1
+ b _02068BD8
+_02068BC6:
+ mov r0, #0x0
+ b _02068BD8
+_02068BCA:
+ add r0, r5, #0x0
+ mov r1, #0x70
+ mov r2, #0x0
+ bl FUN_020672BC
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+_02068BD8:
+ str r7, [sp, #0x0]
+ str r0, [sp, #0x4]
+ str r6, [sp, #0x8]
+ ldr r0, [sp, #0xc]
+ ldr r2, [sp, #0x14]
+ ldr r3, [sp, #0x10]
+ add r1, r4, #0x0
+ bl FUN_02068C00
+ ldr r1, [sp, #0x18]
+ add r0, r5, #0x0
+ bl FUN_02066A94
+ add sp, #0x1c
+ pop {r4-r7, pc}
+ nop
+_02068BF8: .word 0x000001EE
+_02068BFC: .word 0x000001EA
+
+ thumb_func_start FUN_02068C00
+FUN_02068C00: ; 0x02068C00
+ push {r4-r7}
+ add r7, r2, #0x0
+ add r5, r3, #0x0
+ add r4, r0, #0x0
+ add r0, r1, #0x0
+ ldr r3, [sp, #0x10]
+ ldr r2, [sp, #0x14]
+ mov r1, #0x0
+ strh r1, [r4, #0x6]
+ strb r1, [r4, #0x8]
+ str r1, [r4, #0xc]
+ ldr r1, _02068E0C ; =0x000001A5
+ cmp r0, r1
+ bgt _02068C68
+ bge _02068D1E
+ add r6, r1, #0x0
+ sub r6, #0x46
+ cmp r0, r6
+ bgt _02068C36
+ sub r1, #0x46
+ cmp r0, r1
+ blt _02068C2E
+ b _02068D58
+_02068C2E:
+ cmp r0, #0xc9
+ bne _02068C34
+ b _02068D90
+_02068C34:
+ b _02068DD4
+_02068C36:
+ add r6, r1, #0x0
+ sub r6, #0x23
+ cmp r0, r6
+ bgt _02068C48
+ sub r1, #0x23
+ cmp r0, r1
+ bne _02068C46
+ b _02068D76
+_02068C46:
+ b _02068DD4
+_02068C48:
+ add r6, r1, #0x0
+ sub r6, #0x8
+ cmp r0, r6
+ bgt _02068C66
+ add r6, r1, #0x0
+ sub r6, #0x9
+ cmp r0, r6
+ blt _02068C66
+ add r6, r1, #0x0
+ sub r6, #0x9
+ cmp r0, r6
+ beq _02068CAA
+ sub r1, #0x8
+ cmp r0, r1
+ beq _02068CC8
+_02068C66:
+ b _02068DD4
+_02068C68:
+ add r6, r1, #0x0
+ add r6, #0x48
+ cmp r0, r6
+ bgt _02068C8E
+ add r6, r1, #0x0
+ add r6, #0x48
+ cmp r0, r6
+ bge _02068D3A
+ add r6, r1, #0x2
+ cmp r0, r6
+ bgt _02068C8C
+ add r6, r1, #0x1
+ cmp r0, r6
+ blt _02068C8C
+ beq _02068CE6
+ add r1, r1, #0x2
+ cmp r0, r1
+ beq _02068D02
+_02068C8C:
+ b _02068DD4
+_02068C8E:
+ add r6, r1, #0x0
+ add r6, #0x49
+ cmp r0, r6
+ bgt _02068CA0
+ add r1, #0x49
+ cmp r0, r1
+ bne _02068C9E
+ b _02068DAC
+_02068C9E:
+ b _02068DD4
+_02068CA0:
+ add r1, #0x4a
+ cmp r0, r1
+ bne _02068CA8
+ b _02068DC4
+_02068CA8:
+ b _02068DD4
+_02068CAA:
+ cmp r2, #0x2
+ bls _02068CB0
+ mov r2, #0x0
+_02068CB0:
+ mov r0, #0x75
+ strh r0, [r4, #0x0]
+ lsr r0, r5, #0x1
+ lsl r1, r2, #0x1
+ add r0, #0x48
+ add r0, r0, r1
+ add r3, #0x92
+ strh r0, [r4, #0x2]
+ add r0, r3, r1
+ strh r0, [r4, #0x4]
+ pop {r4-r7}
+ bx lr
+_02068CC8:
+ cmp r2, #0x2
+ bls _02068CCE
+ mov r2, #0x0
+_02068CCE:
+ mov r0, #0x75
+ strh r0, [r4, #0x0]
+ lsr r0, r5, #0x1
+ lsl r1, r2, #0x1
+ add r0, #0x4e
+ add r0, r0, r1
+ add r3, #0x98
+ strh r0, [r4, #0x2]
+ add r0, r3, r1
+ strh r0, [r4, #0x4]
+ pop {r4-r7}
+ bx lr
+_02068CE6:
+ cmp r2, #0x1
+ bls _02068CEC
+ mov r2, #0x0
+_02068CEC:
+ mov r0, #0x75
+ add r5, #0x54
+ strh r0, [r4, #0x0]
+ add r0, r5, r2
+ strh r0, [r4, #0x2]
+ add r3, #0x9e
+ lsl r0, r2, #0x1
+ add r0, r3, r0
+ strh r0, [r4, #0x4]
+ pop {r4-r7}
+ bx lr
+_02068D02:
+ cmp r2, #0x1
+ bls _02068D08
+ mov r2, #0x0
+_02068D08:
+ mov r0, #0x75
+ add r5, #0x58
+ strh r0, [r4, #0x0]
+ add r0, r5, r2
+ strh r0, [r4, #0x2]
+ add r3, #0xa2
+ lsl r0, r2, #0x1
+ add r0, r3, r0
+ strh r0, [r4, #0x4]
+ pop {r4-r7}
+ bx lr
+_02068D1E:
+ cmp r2, #0x1
+ bls _02068D24
+ mov r2, #0x0
+_02068D24:
+ mov r0, #0x75
+ add r5, #0x5c
+ strh r0, [r4, #0x0]
+ add r0, r5, r2
+ strh r0, [r4, #0x2]
+ lsl r0, r3, #0x1
+ add r0, #0xa6
+ add r0, r2, r0
+ strh r0, [r4, #0x4]
+ pop {r4-r7}
+ bx lr
+_02068D3A:
+ cmp r2, #0x11
+ bls _02068D40
+ mov r2, #0x0
+_02068D40:
+ mov r0, #0x75
+ strh r0, [r4, #0x0]
+ lsr r0, r5, #0x1
+ lsl r1, r2, #0x1
+ add r0, #0x60
+ add r0, r0, r1
+ add r3, #0xaa
+ strh r0, [r4, #0x2]
+ add r0, r3, r1
+ strh r0, [r4, #0x4]
+ pop {r4-r7}
+ bx lr
+_02068D58:
+ cmp r2, #0x3
+ bls _02068D5E
+ mov r2, #0x0
+_02068D5E:
+ mov r0, #0x75
+ strh r0, [r4, #0x0]
+ lsl r0, r5, #0x1
+ add r0, #0x40
+ add r0, r2, r0
+ strh r0, [r4, #0x2]
+ lsl r0, r3, #0x2
+ add r0, #0x8a
+ add r0, r2, r0
+ strh r0, [r4, #0x4]
+ pop {r4-r7}
+ bx lr
+_02068D76:
+ cmp r2, #0x3
+ bls _02068D7C
+ mov r2, #0x0
+_02068D7C:
+ mov r0, #0x75
+ strh r0, [r4, #0x0]
+ lsr r1, r5, #0x1
+ lsl r0, r2, #0x1
+ add r0, r1, r0
+ strh r0, [r4, #0x2]
+ add r3, #0x86
+ strh r3, [r4, #0x4]
+ pop {r4-r7}
+ bx lr
+_02068D90:
+ cmp r2, #0x1c
+ blo _02068D96
+ mov r2, #0x0
+_02068D96:
+ mov r0, #0x75
+ lsr r1, r5, #0x1
+ strh r0, [r4, #0x0]
+ add r1, #0x8
+ lsl r0, r2, #0x1
+ add r0, r1, r0
+ strh r0, [r4, #0x2]
+ add r3, #0x88
+ strh r3, [r4, #0x4]
+ pop {r4-r7}
+ bx lr
+_02068DAC:
+ cmp r2, #0x1
+ bls _02068DB2
+ mov r2, #0x0
+_02068DB2:
+ mov r0, #0x75
+ strh r0, [r4, #0x0]
+ add r0, r2, #0x0
+ add r0, #0x84
+ strh r0, [r4, #0x2]
+ add r2, #0xce
+ strh r2, [r4, #0x4]
+ pop {r4-r7}
+ bx lr
+_02068DC4:
+ mov r0, #0x75
+ strh r0, [r4, #0x0]
+ mov r0, #0x84
+ strh r0, [r4, #0x2]
+ mov r0, #0xce
+ strh r0, [r4, #0x4]
+ pop {r4-r7}
+ bx lr
+_02068DD4:
+ mov r1, #0x4
+ strh r1, [r4, #0x0]
+ cmp r7, #0x1
+ beq _02068DE0
+ mov r2, #0x1
+ b _02068DE2
+_02068DE0:
+ mov r2, #0x0
+_02068DE2:
+ mov r1, #0x6
+ mul r1, r0
+ add r6, r5, r1
+ add r2, r6, r2
+ add r1, r1, #0x4
+ strh r2, [r4, #0x2]
+ add r1, r3, r1
+ strh r1, [r4, #0x4]
+ ldr r1, _02068E10 ; =0x00000147
+ cmp r0, r1
+ bne _02068E06
+ cmp r5, #0x2
+ bne _02068E06
+ strh r1, [r4, #0x6]
+ mov r0, #0x0
+ strb r0, [r4, #0x8]
+ ldr r0, [sp, #0x18]
+ str r0, [r4, #0xc]
+_02068E06:
+ pop {r4-r7}
+ bx lr
+ nop
+_02068E0C: .word 0x000001A5
+_02068E10: .word 0x00000147
+
+ thumb_func_start FUN_02068E14
+FUN_02068E14: ; 0x02068E14
+ ldr r3, _02068E18 ; =FUN_02068E1C
+ bx r3
+ .balign 4
+_02068E18: .word FUN_02068E1C
+
+ thumb_func_start FUN_02068E1C
+FUN_02068E1C: ; 0x02068E1C
+ push {r3-r7, lr}
+ sub sp, #0x8
+ add r7, r1, #0x0
+ mov r1, #0xad
+ mov r2, #0x0
+ add r5, r0, #0x0
+ bl FUN_020672BC
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+ add r0, r5, #0x0
+ bl FUN_020689E8
+ mov r1, #0x0
+ str r0, [sp, #0x4]
+ add r0, r5, #0x0
+ add r2, r1, #0x0
+ bl FUN_020672BC
+ add r6, r0, #0x0
+ ldr r0, _02068E80 ; =0x000001EE
+ cmp r4, r0
+ bne _02068E62
+ add r0, r5, #0x0
+ mov r1, #0x5
+ mov r2, #0x0
+ bl FUN_020672BC
+ ldr r1, _02068E84 ; =0x000001EA
+ cmp r0, r1
+ bne _02068E5E
+ mov r3, #0x1
+ b _02068E70
+_02068E5E:
+ mov r3, #0x0
+ b _02068E70
+_02068E62:
+ add r0, r5, #0x0
+ mov r1, #0x70
+ mov r2, #0x0
+ bl FUN_020672BC
+ lsl r0, r0, #0x18
+ lsr r3, r0, #0x18
+_02068E70:
+ str r6, [sp, #0x0]
+ ldr r1, [sp, #0x4]
+ add r0, r4, #0x0
+ add r2, r7, #0x0
+ bl FUN_02068E88
+ add sp, #0x8
+ pop {r3-r7, pc}
+ .balign 4
+_02068E80: .word 0x000001EE
+_02068E84: .word 0x000001EA
+
+ thumb_func_start FUN_02068E88
+FUN_02068E88: ; 0x02068E88
+ push {r3-r5, lr}
+ ldr r4, _02068FDC ; =0x000001A5
+ cmp r0, r4
+ bgt _02068ED6
+ bge _02068F54
+ add r5, r4, #0x0
+ sub r5, #0x46
+ cmp r0, r5
+ bgt _02068EA6
+ sub r4, #0x46
+ cmp r0, r4
+ bge _02068F74
+ cmp r0, #0xc9
+ beq _02068F94
+ b _02068FB8
+_02068EA6:
+ add r5, r4, #0x0
+ sub r5, #0x23
+ cmp r0, r5
+ bgt _02068EB6
+ sub r4, #0x23
+ cmp r0, r4
+ beq _02068F84
+ b _02068FB8
+_02068EB6:
+ add r5, r4, #0x0
+ sub r5, #0x8
+ cmp r0, r5
+ bgt _02068FB8
+ add r5, r4, #0x0
+ sub r5, #0x9
+ cmp r0, r5
+ blt _02068FB8
+ add r5, r4, #0x0
+ sub r5, #0x9
+ cmp r0, r5
+ beq _02068F14
+ sub r4, #0x8
+ cmp r0, r4
+ beq _02068F26
+ b _02068FB8
+_02068ED6:
+ add r5, r4, #0x0
+ add r5, #0x48
+ cmp r0, r5
+ bgt _02068EFC
+ add r5, r4, #0x0
+ add r5, #0x48
+ cmp r0, r5
+ bge _02068F62
+ add r5, r4, #0x2
+ cmp r0, r5
+ bgt _02068FB8
+ add r5, r4, #0x1
+ cmp r0, r5
+ blt _02068FB8
+ beq _02068F38
+ add r4, r4, #0x2
+ cmp r0, r4
+ beq _02068F46
+ b _02068FB8
+_02068EFC:
+ add r5, r4, #0x0
+ add r5, #0x49
+ cmp r0, r5
+ bgt _02068F0C
+ add r4, #0x49
+ cmp r0, r4
+ beq _02068FA6
+ b _02068FB8
+_02068F0C:
+ add r4, #0x4a
+ cmp r0, r4
+ beq _02068FB2
+ b _02068FB8
+_02068F14:
+ cmp r3, #0x2
+ bls _02068F1A
+ mov r3, #0x0
+_02068F1A:
+ lsr r1, r2, #0x1
+ add r1, #0x48
+ lsl r0, r3, #0x1
+ mov r4, #0x79
+ add r3, r1, r0
+ b _02068FCA
+_02068F26:
+ cmp r3, #0x2
+ bls _02068F2C
+ mov r3, #0x0
+_02068F2C:
+ lsr r1, r2, #0x1
+ add r1, #0x4e
+ lsl r0, r3, #0x1
+ mov r4, #0x79
+ add r3, r1, r0
+ b _02068FCA
+_02068F38:
+ cmp r3, #0x1
+ bls _02068F3E
+ mov r3, #0x0
+_02068F3E:
+ add r2, #0x54
+ mov r4, #0x79
+ add r3, r2, r3
+ b _02068FCA
+_02068F46:
+ cmp r3, #0x1
+ bls _02068F4C
+ mov r3, #0x0
+_02068F4C:
+ add r2, #0x58
+ mov r4, #0x79
+ add r3, r2, r3
+ b _02068FCA
+_02068F54:
+ cmp r3, #0x1
+ bls _02068F5A
+ mov r3, #0x0
+_02068F5A:
+ add r2, #0x5c
+ mov r4, #0x79
+ add r3, r2, r3
+ b _02068FCA
+_02068F62:
+ cmp r3, #0x11
+ bls _02068F68
+ mov r3, #0x0
+_02068F68:
+ lsr r1, r2, #0x1
+ add r1, #0x60
+ lsl r0, r3, #0x1
+ mov r4, #0x79
+ add r3, r1, r0
+ b _02068FCA
+_02068F74:
+ cmp r3, #0x3
+ bls _02068F7A
+ mov r3, #0x0
+_02068F7A:
+ lsl r0, r2, #0x1
+ add r0, #0x40
+ mov r4, #0x79
+ add r3, r3, r0
+ b _02068FCA
+_02068F84:
+ cmp r3, #0x3
+ bls _02068F8A
+ mov r3, #0x0
+_02068F8A:
+ lsr r1, r2, #0x1
+ lsl r0, r3, #0x1
+ mov r4, #0x79
+ add r3, r1, r0
+ b _02068FCA
+_02068F94:
+ cmp r3, #0x1c
+ blo _02068F9A
+ mov r3, #0x0
+_02068F9A:
+ lsr r1, r2, #0x1
+ add r1, #0x8
+ lsl r0, r3, #0x1
+ mov r4, #0x79
+ add r3, r1, r0
+ b _02068FCA
+_02068FA6:
+ cmp r3, #0x1
+ bls _02068FAC
+ mov r3, #0x0
+_02068FAC:
+ mov r4, #0x79
+ add r3, #0x84
+ b _02068FCA
+_02068FB2:
+ mov r4, #0x79
+ mov r3, #0x84
+ b _02068FCA
+_02068FB8:
+ mov r4, #0x5
+ cmp r1, #0x1
+ beq _02068FC2
+ mov r1, #0x1
+ b _02068FC4
+_02068FC2:
+ mov r1, #0x0
+_02068FC4:
+ lsl r0, r0, #0x2
+ add r0, r2, r0
+ add r3, r0, r1
+_02068FCA:
+ add r0, sp, #0x0
+ add r1, r4, #0x0
+ add r2, r3, #0x0
+ bl LoadFromNARC
+ add r0, sp, #0x0
+ ldrb r0, [r0, #0x0]
+ pop {r3-r5, pc}
+ nop
+_02068FDC: .word 0x000001A5
+
+ thumb_func_start FUN_02068FE0
+FUN_02068FE0: ; 0x02068FE0
+ push {r4, lr}
+ add r4, r0, #0x0
+ cmp r2, #0x2
+ bne _02068FEE
+ mov r0, #0x3c
+ strh r0, [r4, #0x0]
+ b _02068FFC
+_02068FEE:
+ mov r0, #0x6
+ strh r0, [r4, #0x0]
+ add r0, r1, #0x0
+ bl FUN_0206AA30
+ lsl r0, r0, #0x10
+ lsr r1, r0, #0x10
+_02068FFC:
+ lsl r0, r1, #0x1
+ strh r0, [r4, #0x2]
+ add r0, r0, #0x1
+ strh r0, [r4, #0x4]
+ mov r0, #0x0
+ strh r0, [r4, #0x6]
+ strb r0, [r4, #0x8]
+ str r0, [r4, #0xc]
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02069010
+FUN_02069010: ; 0x02069010
+ push {r3-r5, lr}
+ sub sp, #0x20
+ add r5, r1, #0x0
+ mov r3, #0x1c
+ add r4, r0, #0x0
+ str r3, [sp, #0x0]
+ add r0, sp, #0x4
+ mov r1, #0x72
+ mov r2, #0x0
+ mul r3, r5
+ bl FUN_02006548
+ add r0, sp, #0xc
+ add r1, r4, #0x0
+ mov r2, #0x14
+ blx MI_CpuCopy8
+ add sp, #0x20
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_02069038
+FUN_02069038: ; 0x02069038
+ push {r3-r7, lr}
+ sub sp, #0x28
+ add r4, r0, #0x0
+ add r6, r2, #0x0
+ add r5, r3, #0x0
+ mov r3, #0x1c
+ add r0, sp, #0x8
+ add r7, r1, #0x0
+ str r3, [sp, #0x0]
+ add r0, #0x2
+ mov r1, #0x72
+ mov r2, #0x0
+ mul r3, r6
+ bl FUN_02006548
+ cmp r5, #0x2
+ bne _0206906C
+ add r1, sp, #0x4
+ mov r0, #0x6
+ ldrsb r0, [r1, r0]
+ strh r0, [r1, #0x0]
+ ldrb r0, [r1, #0x7]
+ strh r0, [r1, #0x2]
+ ldr r0, [sp, #0x44]
+ strb r0, [r1, #0x4]
+ b _02069096
+_0206906C:
+ ldr r0, [sp, #0x40]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_02014C3C
+ add r5, r0, #0x0
+ cmp r5, #0x3
+ blt _02069080
+ bl ErrorHandling
+_02069080:
+ lsl r2, r5, #0x1
+ add r0, sp, #0xc
+ ldrsb r1, [r0, r2]
+ add r0, sp, #0x4
+ strh r1, [r0, #0x0]
+ add r1, sp, #0xc
+ add r1, #0x1
+ ldrb r1, [r1, r2]
+ strh r1, [r0, #0x2]
+ ldr r1, [sp, #0x44]
+ strb r1, [r0, #0x4]
+_02069096:
+ ldr r3, [sp, #0x48]
+ add r0, r4, #0x0
+ lsl r3, r3, #0x18
+ add r1, r7, #0x0
+ add r2, sp, #0x4
+ lsr r3, r3, #0x18
+ bl FUN_02014C54
+ add sp, #0x28
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_020690AC
+FUN_020690AC: ; 0x020690AC
+ mov r2, #0x3c
+ strh r2, [r0, #0x0]
+ lsl r1, r1, #0x1
+ strh r1, [r0, #0x2]
+ add r1, r1, #0x1
+ strh r1, [r0, #0x4]
+ mov r1, #0x0
+ strh r1, [r0, #0x6]
+ strb r1, [r0, #0x8]
+ str r1, [r0, #0xc]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_020690C4
+FUN_020690C4: ; 0x020690C4
+ mov r0, #0xec
+ bx lr
+
+ thumb_func_start FUN_020690C8
+FUN_020690C8: ; 0x020690C8
+ mov r0, #0x88
+ bx lr
+
+ thumb_func_start FUN_020690CC
+FUN_020690CC: ; 0x020690CC
+ ldr r3, _020690D0 ; =FUN_020690D4
+ bx r3
+ .balign 4
+_020690D0: .word FUN_020690D4
+
+ thumb_func_start FUN_020690D4
+FUN_020690D4: ; 0x020690D4
+ push {r3, lr}
+ mov r1, #0x70
+ mov r2, #0x0
+ bl FUN_020672BC
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ pop {r3, pc}
+
+ thumb_func_start FUN_020690E4
+FUN_020690E4: ; 0x020690E4
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_020690E8
+FUN_020690E8: ; 0x020690E8
+ push {r3-r5, lr}
+ sub sp, #0x8
+ mov r1, #0x5
+ mov r2, #0x0
+ add r4, r0, #0x0
+ bl FUN_020671BC
+ lsl r0, r0, #0x10
+ lsr r5, r0, #0x10
+ add r0, r4, #0x0
+ mov r1, #0xa0
+ mov r2, #0x0
+ bl FUN_020671BC
+ add r1, r0, #0x1
+ add r0, sp, #0x0
+ strb r1, [r0, #0x0]
+ add r0, r4, #0x0
+ mov r1, #0x8
+ mov r2, #0x0
+ bl FUN_020671BC
+ str r0, [sp, #0x4]
+ add r0, r5, #0x0
+ mov r1, #0x15
+ bl FUN_02068678
+ mov r1, #0x64
+ add r5, r0, #0x0
+ bl FUN_02068788
+ ldr r1, [sp, #0x4]
+ cmp r1, r0
+ bls _02069138
+ str r0, [sp, #0x4]
+ add r0, r4, #0x0
+ mov r1, #0x8
+ add r2, sp, #0x4
+ bl FUN_02067830
+_02069138:
+ add r0, sp, #0x0
+ ldrb r1, [r0, #0x0]
+ cmp r1, #0x64
+ bls _02069146
+ add sp, #0x8
+ mov r0, #0x0
+ pop {r3-r5, pc}
+_02069146:
+ add r0, r5, #0x0
+ bl FUN_02068788
+ ldr r1, [sp, #0x4]
+ cmp r1, r0
+ blo _02069162
+ add r0, r4, #0x0
+ mov r1, #0xa0
+ add r2, sp, #0x0
+ bl FUN_02067830
+ add sp, #0x8
+ mov r0, #0x1
+ pop {r3-r5, pc}
+_02069162:
+ mov r0, #0x0
+ add sp, #0x8
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_02069168
+FUN_02069168: ; 0x02069168
+ push {r4-r7, lr}
+ sub sp, #0x44
+ add r7, r1, #0x0
+ str r0, [sp, #0x0]
+ mov r6, #0x0
+ add r4, r2, #0x0
+ add r0, r7, #0x0
+ mov r1, #0x5
+ add r2, r6, #0x0
+ str r3, [sp, #0x4]
+ ldr r5, [sp, #0x58]
+ bl FUN_020671BC
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #0x2c]
+ add r0, r7, #0x0
+ mov r1, #0x6
+ add r2, r6, #0x0
+ bl FUN_020671BC
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ add r1, r6, #0x0
+ str r0, [sp, #0x28]
+ add r0, r7, #0x0
+ add r2, r1, #0x0
+ bl FUN_020671BC
+ str r0, [sp, #0x30]
+ add r0, r7, #0x0
+ mov r1, #0x14
+ add r2, r6, #0x0
+ bl FUN_020671BC
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x10]
+ ldr r1, _020694A0 ; =0xFFFF0000
+ ldr r0, [sp, #0x30]
+ add r2, r6, #0x0
+ and r0, r1
+ lsr r0, r0, #0x10
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #0x1c]
+ ldr r0, [sp, #0x28]
+ mov r1, #0x1
+ bl FUN_0206E7B8
+ lsl r0, r0, #0x18
+ lsr r1, r0, #0x18
+ ldr r0, [sp, #0x2c]
+ cmp r0, #0x40
+ beq _020691E4
+ cmp r1, #0x3f
+ bne _020691E4
+ cmp r4, #0x3
+ beq _020691E4
+ add sp, #0x44
+ add r0, r6, #0x0
+ pop {r4-r7, pc}
+_020691E4:
+ cmp r5, #0x0
+ bne _020691EA
+ add r5, sp, #0x40
+_020691EA:
+ mov r0, #0x0
+ mov r1, #0x2a
+ bl FUN_02016998
+ str r0, [sp, #0x18]
+ ldr r0, [sp, #0x2c]
+ ldr r1, [sp, #0x18]
+ bl FUN_0206A394
+ cmp r4, #0x3
+ bls _02069202
+ b _0206954A
+_02069202:
+ add r0, r4, r4
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0206920E: ; jump table (using 16-bit offset)
+ .short _02069216 - _0206920E - 2; case 0
+ .short _02069486 - _0206920E - 2; case 1
+ .short _020694BE - _0206920E - 2; case 2
+ .short _020694BE - _0206920E - 2; case 3
+_02069216:
+ add r0, r7, #0x0
+ mov r1, #0xa0
+ mov r2, #0x0
+ bl FUN_020671BC
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x14]
+ add r0, r7, #0x0
+ mov r1, #0x9
+ mov r2, #0x0
+ bl FUN_020671BC
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #0x20]
+ mov r0, #0x0
+ str r0, [sp, #0x24]
+ ldr r0, [sp, #0x1c]
+ mov r1, #0xa
+ ldr r4, [sp, #0x18]
+ blx _s32_div_f
+ str r1, [sp, #0x8]
+_02069246:
+ ldrh r0, [r4, #0x0]
+ cmp r0, #0x1a
+ bls _0206924E
+ b _02069472
+_0206924E:
+ add r1, r0, r0
+ add r1, pc
+ ldrh r1, [r1, #0x6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_0206925A: ; jump table (using 16-bit offset)
+ .short _02069472 - _0206925A - 2; case 0
+ .short _02069290 - _0206925A - 2; case 1
+ .short _0206929E - _0206925A - 2; case 2
+ .short _020692B4 - _0206925A - 2; case 3
+ .short _020692CA - _0206925A - 2; case 4
+ .short _02069472 - _0206925A - 2; case 5
+ .short _02069472 - _0206925A - 2; case 6
+ .short _02069472 - _0206925A - 2; case 7
+ .short _020692DA - _0206925A - 2; case 8
+ .short _02069306 - _0206925A - 2; case 9
+ .short _02069332 - _0206925A - 2; case 10
+ .short _0206935E - _0206925A - 2; case 11
+ .short _02069376 - _0206925A - 2; case 12
+ .short _0206938C - _0206925A - 2; case 13
+ .short _0206939C - _0206925A - 2; case 14
+ .short _020693A2 - _0206925A - 2; case 15
+ .short _02069472 - _0206925A - 2; case 16
+ .short _02069472 - _0206925A - 2; case 17
+ .short _020693B2 - _0206925A - 2; case 18
+ .short _020693CA - _0206925A - 2; case 19
+ .short _020693E2 - _0206925A - 2; case 20
+ .short _020693F6 - _0206925A - 2; case 21
+ .short _0206940E - _0206925A - 2; case 22
+ .short _0206942C - _0206925A - 2; case 23
+ .short _0206944A - _0206925A - 2; case 24
+ .short _02069458 - _0206925A - 2; case 25
+ .short _02069466 - _0206925A - 2; case 26
+_02069290:
+ ldr r0, [sp, #0x20]
+ cmp r0, #0xdc
+ blo _0206936C
+ ldrh r6, [r4, #0x4]
+ mov r0, #0x1
+ str r0, [r5, #0x0]
+ b _02069472
+_0206929E:
+ bl FUN_0201277C
+ cmp r0, #0x0
+ bne _0206936C
+ ldr r0, [sp, #0x20]
+ cmp r0, #0xdc
+ blo _0206936C
+ ldrh r6, [r4, #0x4]
+ mov r0, #0x2
+ str r0, [r5, #0x0]
+ b _02069472
+_020692B4:
+ bl FUN_0201277C
+ cmp r0, #0x1
+ bne _0206936C
+ ldr r0, [sp, #0x20]
+ cmp r0, #0xdc
+ blo _0206936C
+ ldrh r6, [r4, #0x4]
+ mov r0, #0x3
+ str r0, [r5, #0x0]
+ b _02069472
+_020692CA:
+ ldrh r1, [r4, #0x2]
+ ldr r0, [sp, #0x14]
+ cmp r1, r0
+ bgt _0206936C
+ ldrh r6, [r4, #0x4]
+ mov r0, #0x4
+ str r0, [r5, #0x0]
+ b _02069472
+_020692DA:
+ ldrh r1, [r4, #0x2]
+ ldr r0, [sp, #0x14]
+ cmp r1, r0
+ bgt _0206936C
+ add r0, r7, #0x0
+ mov r1, #0xa4
+ mov r2, #0x0
+ bl FUN_020671BC
+ str r0, [sp, #0x34]
+ add r0, r7, #0x0
+ mov r1, #0xa5
+ mov r2, #0x0
+ bl FUN_020671BC
+ ldr r1, [sp, #0x34]
+ cmp r1, r0
+ bls _0206936C
+ ldrh r6, [r4, #0x4]
+ mov r0, #0x8
+ str r0, [r5, #0x0]
+ b _02069472
+_02069306:
+ ldrh r1, [r4, #0x2]
+ ldr r0, [sp, #0x14]
+ cmp r1, r0
+ bgt _0206936C
+ add r0, r7, #0x0
+ mov r1, #0xa4
+ mov r2, #0x0
+ bl FUN_020671BC
+ str r0, [sp, #0x38]
+ add r0, r7, #0x0
+ mov r1, #0xa5
+ mov r2, #0x0
+ bl FUN_020671BC
+ ldr r1, [sp, #0x38]
+ cmp r1, r0
+ bne _0206936C
+ ldrh r6, [r4, #0x4]
+ mov r0, #0x9
+ str r0, [r5, #0x0]
+ b _02069472
+_02069332:
+ ldrh r1, [r4, #0x2]
+ ldr r0, [sp, #0x14]
+ cmp r1, r0
+ bgt _0206936C
+ add r0, r7, #0x0
+ mov r1, #0xa4
+ mov r2, #0x0
+ bl FUN_020671BC
+ str r0, [sp, #0x3c]
+ add r0, r7, #0x0
+ mov r1, #0xa5
+ mov r2, #0x0
+ bl FUN_020671BC
+ ldr r1, [sp, #0x3c]
+ cmp r1, r0
+ bhs _0206936C
+ ldrh r6, [r4, #0x4]
+ mov r0, #0xa
+ str r0, [r5, #0x0]
+ b _02069472
+_0206935E:
+ ldrh r1, [r4, #0x2]
+ ldr r0, [sp, #0x14]
+ cmp r1, r0
+ bgt _0206936C
+ ldr r0, [sp, #0x8]
+ cmp r0, #0x5
+ blt _0206936E
+_0206936C:
+ b _02069472
+_0206936E:
+ ldrh r6, [r4, #0x4]
+ mov r0, #0xb
+ str r0, [r5, #0x0]
+ b _02069472
+_02069376:
+ ldrh r1, [r4, #0x2]
+ ldr r0, [sp, #0x14]
+ cmp r1, r0
+ bgt _02069472
+ ldr r0, [sp, #0x8]
+ cmp r0, #0x5
+ blt _02069472
+ ldrh r6, [r4, #0x4]
+ mov r0, #0xc
+ str r0, [r5, #0x0]
+ b _02069472
+_0206938C:
+ ldrh r1, [r4, #0x2]
+ ldr r0, [sp, #0x14]
+ cmp r1, r0
+ bgt _02069472
+ ldrh r6, [r4, #0x4]
+ mov r0, #0xd
+ str r0, [r5, #0x0]
+ b _02069472
+_0206939C:
+ mov r0, #0xe
+ str r0, [r5, #0x0]
+ b _02069472
+_020693A2:
+ ldrh r1, [r4, #0x2]
+ ldr r0, [sp, #0x10]
+ cmp r1, r0
+ bgt _02069472
+ ldrh r6, [r4, #0x4]
+ mov r0, #0xf
+ str r0, [r5, #0x0]
+ b _02069472
+_020693B2:
+ bl FUN_0201277C
+ cmp r0, #0x0
+ bne _02069472
+ ldrh r1, [r4, #0x2]
+ ldr r0, [sp, #0x28]
+ cmp r0, r1
+ bne _02069472
+ ldrh r6, [r4, #0x4]
+ mov r0, #0x12
+ str r0, [r5, #0x0]
+ b _02069472
+_020693CA:
+ bl FUN_0201277C
+ cmp r0, #0x1
+ bne _02069472
+ ldrh r1, [r4, #0x2]
+ ldr r0, [sp, #0x28]
+ cmp r0, r1
+ bne _02069472
+ ldrh r6, [r4, #0x4]
+ mov r0, #0x13
+ str r0, [r5, #0x0]
+ b _02069472
+_020693E2:
+ ldrh r1, [r4, #0x2]
+ add r0, r7, #0x0
+ bl FUN_02069A38
+ cmp r0, #0x1
+ bne _02069472
+ ldrh r6, [r4, #0x4]
+ mov r0, #0x14
+ str r0, [r5, #0x0]
+ b _02069472
+_020693F6:
+ ldr r0, [sp, #0x0]
+ cmp r0, #0x0
+ beq _02069472
+ ldrh r1, [r4, #0x2]
+ bl FUN_0206BAE4
+ cmp r0, #0x1
+ bne _02069472
+ ldrh r6, [r4, #0x4]
+ mov r0, #0x15
+ str r0, [r5, #0x0]
+ b _02069472
+_0206940E:
+ add r0, r7, #0x0
+ mov r1, #0x6f
+ mov r2, #0x0
+ bl FUN_020671BC
+ cmp r0, #0x0
+ bne _02069472
+ ldrh r1, [r4, #0x2]
+ ldr r0, [sp, #0x14]
+ cmp r1, r0
+ bgt _02069472
+ ldrh r6, [r4, #0x4]
+ mov r0, #0x16
+ str r0, [r5, #0x0]
+ b _02069472
+_0206942C:
+ add r0, r7, #0x0
+ mov r1, #0x6f
+ mov r2, #0x0
+ bl FUN_020671BC
+ cmp r0, #0x1
+ bne _02069472
+ ldrh r1, [r4, #0x2]
+ ldr r0, [sp, #0x14]
+ cmp r1, r0
+ bgt _02069472
+ ldrh r6, [r4, #0x4]
+ mov r0, #0x17
+ str r0, [r5, #0x0]
+ b _02069472
+_0206944A:
+ ldr r1, [sp, #0x4]
+ cmp r1, r0
+ bne _02069472
+ ldrh r6, [r4, #0x4]
+ mov r0, #0x18
+ str r0, [r5, #0x0]
+ b _02069472
+_02069458:
+ ldr r1, [sp, #0x4]
+ cmp r1, r0
+ bne _02069472
+ ldrh r6, [r4, #0x4]
+ mov r0, #0x19
+ str r0, [r5, #0x0]
+ b _02069472
+_02069466:
+ ldr r1, [sp, #0x4]
+ cmp r1, r0
+ bne _02069472
+ ldrh r6, [r4, #0x4]
+ mov r0, #0x1a
+ str r0, [r5, #0x0]
+_02069472:
+ cmp r6, #0x0
+ bne _0206954A
+ ldr r0, [sp, #0x24]
+ add r4, r4, #0x6
+ add r0, r0, #0x1
+ str r0, [sp, #0x24]
+ cmp r0, #0x7
+ bge _02069484
+ b _02069246
+_02069484:
+ b _0206954A
+_02069486:
+ ldr r3, [sp, #0x18]
+ mov r4, #0x0
+ mov r7, #0x6
+ mov r2, #0x5
+_0206948E:
+ ldrh r0, [r3, #0x0]
+ cmp r0, #0x5
+ beq _0206949A
+ cmp r0, #0x6
+ beq _020694A4
+ b _020694B0
+_0206949A:
+ ldrh r6, [r3, #0x4]
+ str r2, [r5, #0x0]
+ b _020694B0
+ .balign 4
+_020694A0: .word 0xFFFF0000
+_020694A4:
+ ldrh r1, [r3, #0x2]
+ ldr r0, [sp, #0x28]
+ cmp r0, r1
+ bne _020694B0
+ ldrh r6, [r3, #0x4]
+ str r7, [r5, #0x0]
+_020694B0:
+ cmp r6, #0x0
+ bne _0206954A
+ add r4, r4, #0x1
+ add r3, r3, #0x6
+ cmp r4, #0x7
+ blt _0206948E
+ b _0206954A
+_020694BE:
+ mov r0, #0x0
+ ldr r4, [sp, #0x18]
+ str r0, [sp, #0xc]
+_020694C4:
+ ldrh r2, [r4, #0x0]
+ cmp r2, #0x7
+ bne _020694E4
+ ldrh r1, [r4, #0x2]
+ ldr r0, [sp, #0x4]
+ cmp r0, r1
+ bne _020694E4
+ ldr r0, [sp, #0xc]
+ mov r1, #0x6
+ mul r1, r0
+ ldr r0, [sp, #0x18]
+ add r0, r0, r1
+ ldrh r6, [r0, #0x4]
+ mov r0, #0x0
+ str r0, [r5, #0x0]
+ b _0206954A
+_020694E4:
+ cmp r2, #0x10
+ bne _02069510
+ add r0, r7, #0x0
+ mov r1, #0x6f
+ mov r2, #0x0
+ bl FUN_020671BC
+ cmp r0, #0x0
+ bne _02069510
+ ldrh r1, [r4, #0x2]
+ ldr r0, [sp, #0x4]
+ cmp r0, r1
+ bne _02069510
+ ldr r0, [sp, #0xc]
+ mov r1, #0x6
+ mul r1, r0
+ ldr r0, [sp, #0x18]
+ add r0, r0, r1
+ ldrh r6, [r0, #0x4]
+ mov r0, #0x0
+ str r0, [r5, #0x0]
+ b _0206954A
+_02069510:
+ ldrh r0, [r4, #0x0]
+ cmp r0, #0x11
+ bne _0206953E
+ add r0, r7, #0x0
+ mov r1, #0x6f
+ mov r2, #0x0
+ bl FUN_020671BC
+ cmp r0, #0x1
+ bne _0206953E
+ ldrh r1, [r4, #0x2]
+ ldr r0, [sp, #0x4]
+ cmp r0, r1
+ bne _0206953E
+ ldr r0, [sp, #0xc]
+ mov r1, #0x6
+ mul r1, r0
+ ldr r0, [sp, #0x18]
+ add r0, r0, r1
+ ldrh r6, [r0, #0x4]
+ mov r0, #0x0
+ str r0, [r5, #0x0]
+ b _0206954A
+_0206953E:
+ ldr r0, [sp, #0xc]
+ add r4, r4, #0x6
+ add r0, r0, #0x1
+ str r0, [sp, #0xc]
+ cmp r0, #0x7
+ blt _020694C4
+_0206954A:
+ ldr r0, [sp, #0x18]
+ bl FUN_02016A18
+ add r0, r6, #0x0
+ add sp, #0x44
+ pop {r4-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_02069558
+FUN_02069558: ; 0x02069558
+ push {r3-r4, lr}
+ sub sp, #0x4c
+ add r4, r0, #0x0
+ mov r1, #0x0
+ add r0, sp, #0x0
+ strh r1, [r0, #0x0]
+ ldr r0, _020695A0 ; =0x000001EE
+ cmp r4, r0
+ blo _0206956E
+ bl ErrorHandling
+_0206956E:
+ add r0, sp, #0x4
+ blx FS_InitFile
+ ldr r1, _020695A4 ; =0x02105FC8
+ add r0, sp, #0x4
+ blx FS_OpenFile
+ add r0, sp, #0x4
+ lsl r1, r4, #0x1
+ mov r2, #0x0
+ blx FS_SeekFile
+ add r0, sp, #0x4
+ add r1, sp, #0x0
+ mov r2, #0x2
+ blx FS_ReadFile
+ add r0, sp, #0x4
+ blx FS_CloseFile
+ add r0, sp, #0x0
+ ldrh r0, [r0, #0x0]
+ add sp, #0x4c
+ pop {r3-r4, pc}
+ nop
+_020695A0: .word 0x000001EE
+_020695A4: .word 0x02105FC8
+
+ thumb_func_start FUN_020695A8
+FUN_020695A8: ; 0x020695A8
+ push {r3, lr}
+ cmp r0, #0xb9
+ bgt _020695CC
+ cmp r0, #0xb7
+ blt _020695BA
+ beq _020695EC
+ cmp r0, #0xb9
+ beq _020695EC
+ b _020695E8
+_020695BA:
+ cmp r0, #0x7a
+ bgt _020695C6
+ bge _020695EC
+ cmp r0, #0x71
+ beq _020695EC
+ b _020695E8
+_020695C6:
+ cmp r0, #0x8f
+ beq _020695EC
+ b _020695E8
+_020695CC:
+ cmp r0, #0xe2
+ bgt _020695D8
+ bge _020695EC
+ cmp r0, #0xca
+ beq _020695EC
+ b _020695E8
+_020695D8:
+ ldr r1, _020695F0 ; =0x0000013B
+ cmp r0, r1
+ bgt _020695E2
+ beq _020695EC
+ b _020695E8
+_020695E2:
+ add r1, #0x2b
+ cmp r0, r1
+ beq _020695EC
+_020695E8:
+ bl FUN_02069558
+_020695EC:
+ pop {r3, pc}
+ nop
+_020695F0: .word 0x0000013B
+
+ thumb_func_start FUN_020695F4
+FUN_020695F4: ; 0x020695F4
+ push {r3-r7, lr}
+ sub sp, #0x8
+ add r5, r0, #0x0
+ mov r0, #0x0
+ mov r1, #0x2c
+ bl FUN_02016998
+ str r0, [sp, #0x0]
+ add r0, r5, #0x0
+ bl FUN_02066A6C
+ str r0, [sp, #0x4]
+ add r0, r5, #0x0
+ mov r1, #0x5
+ mov r2, #0x0
+ bl FUN_020672BC
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+ add r0, r5, #0x0
+ mov r1, #0x70
+ mov r2, #0x0
+ bl FUN_020672BC
+ add r7, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_020687C8
+ lsl r0, r0, #0x18
+ lsr r6, r0, #0x18
+ ldr r2, [sp, #0x0]
+ add r0, r4, #0x0
+ add r1, r7, #0x0
+ bl FUN_02069F9C
+ ldr r0, [sp, #0x0]
+ ldrh r1, [r0, #0x0]
+ ldr r0, _02069690 ; =0x0000FFFF
+ cmp r1, r0
+ beq _0206967C
+ ldr r4, [sp, #0x0]
+ lsl r7, r6, #0x9
+_02069648:
+ ldrh r1, [r4, #0x0]
+ mov r0, #0xfe
+ lsl r0, r0, #0x8
+ and r0, r1
+ cmp r0, r7
+ bgt _0206967C
+ ldr r0, _02069694 ; =0x000001FF
+ and r0, r1
+ lsl r0, r0, #0x10
+ lsr r6, r0, #0x10
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ bl FUN_020696A8
+ ldr r1, _02069690 ; =0x0000FFFF
+ cmp r0, r1
+ bne _02069672
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ bl FUN_02069718
+_02069672:
+ add r4, r4, #0x2
+ ldrh r1, [r4, #0x0]
+ ldr r0, _02069690 ; =0x0000FFFF
+ cmp r1, r0
+ bne _02069648
+_0206967C:
+ ldr r0, [sp, #0x0]
+ bl FUN_02016A18
+ ldr r1, [sp, #0x4]
+ add r0, r5, #0x0
+ bl FUN_02066A94
+ add sp, #0x8
+ pop {r3-r7, pc}
+ nop
+_02069690: .word 0x0000FFFF
+_02069694: .word 0x000001FF
+
+ thumb_func_start FUN_02069698
+FUN_02069698: ; 0x02069698
+ push {r4, lr}
+ add r4, r1, #0x0
+ bl FUN_020690E4
+ add r1, r4, #0x0
+ bl FUN_020696A8
+ pop {r4, pc}
+
+ thumb_func_start FUN_020696A8
+FUN_020696A8: ; 0x020696A8
+ push {r3-r7, lr}
+ sub sp, #0x8
+ add r5, r1, #0x0
+ ldr r1, _02069700 ; =0x0000FFFF
+ add r6, r0, #0x0
+ str r1, [sp, #0x4]
+ bl FUN_02066A6C
+ mov r4, #0x0
+ str r0, [sp, #0x0]
+ add r7, r4, #0x0
+_020696BE:
+ add r1, r4, #0x0
+ add r0, r6, #0x0
+ add r1, #0x36
+ add r2, r7, #0x0
+ bl FUN_020672BC
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ bne _020696E0
+ lsl r2, r4, #0x18
+ add r0, r6, #0x0
+ add r1, r5, #0x0
+ lsr r2, r2, #0x18
+ bl FUN_020697D4
+ str r5, [sp, #0x4]
+ b _020696F0
+_020696E0:
+ cmp r0, r5
+ bne _020696EA
+ ldr r0, _02069704 ; =0x0000FFFE
+ str r0, [sp, #0x4]
+ b _020696F0
+_020696EA:
+ add r4, r4, #0x1
+ cmp r4, #0x4
+ blt _020696BE
+_020696F0:
+ ldr r1, [sp, #0x0]
+ add r0, r6, #0x0
+ bl FUN_02066A94
+ ldr r0, [sp, #0x4]
+ add sp, #0x8
+ pop {r3-r7, pc}
+ nop
+_02069700: .word 0x0000FFFF
+_02069704: .word 0x0000FFFE
+
+ thumb_func_start FUN_02069708
+FUN_02069708: ; 0x02069708
+ push {r4, lr}
+ add r4, r1, #0x0
+ bl FUN_020690E4
+ add r1, r4, #0x0
+ bl FUN_02069718
+ pop {r4, pc}
+
+ thumb_func_start FUN_02069718
+FUN_02069718: ; 0x02069718
+ push {r3-r7, lr}
+ sub sp, #0x20
+ add r5, r0, #0x0
+ str r1, [sp, #0x0]
+ bl FUN_02066A6C
+ str r0, [sp, #0xc]
+ add r0, sp, #0x18
+ mov r4, #0x0
+ str r0, [sp, #0x4]
+ add r7, sp, #0x14
+ add r6, sp, #0x10
+_02069730:
+ add r1, r4, #0x0
+ add r0, r5, #0x0
+ add r1, #0x37
+ mov r2, #0x0
+ bl FUN_020672BC
+ ldr r1, [sp, #0x4]
+ mov r2, #0x0
+ strh r0, [r1, #0x0]
+ add r1, r4, #0x0
+ add r0, r5, #0x0
+ add r1, #0x3b
+ bl FUN_020672BC
+ add r1, r4, #0x0
+ strb r0, [r7, #0x0]
+ add r0, r5, #0x0
+ add r1, #0x3f
+ mov r2, #0x0
+ bl FUN_020672BC
+ strb r0, [r6, #0x0]
+ ldr r0, [sp, #0x4]
+ add r4, r4, #0x1
+ add r0, r0, #0x2
+ str r0, [sp, #0x4]
+ add r7, r7, #0x1
+ add r6, r6, #0x1
+ cmp r4, #0x3
+ blt _02069730
+ ldr r0, [sp, #0x0]
+ add r1, sp, #0x10
+ strh r0, [r1, #0xe]
+ ldr r0, [sp, #0x0]
+ mov r1, #0x5
+ bl FUN_0206AB18
+ add r1, sp, #0x10
+ strb r0, [r1, #0x7]
+ mov r4, #0x0
+ add r0, sp, #0x18
+ strb r4, [r1, #0x3]
+ str r0, [sp, #0x8]
+ add r7, sp, #0x14
+ add r6, sp, #0x10
+_0206978A:
+ add r1, r4, #0x0
+ ldr r2, [sp, #0x8]
+ add r0, r5, #0x0
+ add r1, #0x36
+ bl FUN_02067960
+ add r1, r4, #0x0
+ add r0, r5, #0x0
+ add r1, #0x3a
+ add r2, r7, #0x0
+ bl FUN_02067960
+ add r1, r4, #0x0
+ add r0, r5, #0x0
+ add r1, #0x3e
+ add r2, r6, #0x0
+ bl FUN_02067960
+ ldr r0, [sp, #0x8]
+ add r4, r4, #0x1
+ add r0, r0, #0x2
+ str r0, [sp, #0x8]
+ add r7, r7, #0x1
+ add r6, r6, #0x1
+ cmp r4, #0x4
+ blt _0206978A
+ ldr r1, [sp, #0xc]
+ add r0, r5, #0x0
+ bl FUN_02066A94
+ add sp, #0x20
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_020697CC
+FUN_020697CC: ; 0x020697CC
+ ldr r3, _020697D0 ; =FUN_020697D4
+ bx r3
+ .balign 4
+_020697D0: .word FUN_020697D4
+
+ thumb_func_start FUN_020697D4
+FUN_020697D4: ; 0x020697D4
+ push {r0-r3}
+ push {r3-r5, lr}
+ add r4, r2, #0x0
+ add r1, r4, #0x0
+ add r1, #0x36
+ add r2, sp, #0x14
+ add r5, r0, #0x0
+ bl FUN_02067960
+ add r1, r4, #0x0
+ add r0, r5, #0x0
+ add r1, #0x3e
+ mov r2, #0x0
+ bl FUN_020672BC
+ lsl r0, r0, #0x18
+ lsr r1, r0, #0x18
+ add r0, sp, #0x10
+ ldrh r0, [r0, #0x4]
+ bl FUN_0206AB30
+ add r1, sp, #0x0
+ strb r0, [r1, #0x0]
+ add r4, #0x3a
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ add r2, sp, #0x0
+ bl FUN_02067960
+ pop {r3-r5}
+ pop {r3}
+ add sp, #0x10
+ bx r3
+ .balign 4
+
+ thumb_func_start FUN_02069818
+FUN_02069818: ; 0x02069818
+ push {r3-r7, lr}
+ sub sp, #0x10
+ add r7, r0, #0x0
+ add r5, r1, #0x0
+ mov r0, #0x0
+ mov r1, #0x2c
+ str r2, [sp, #0x0]
+ str r0, [sp, #0x8]
+ bl FUN_02016998
+ add r4, r0, #0x0
+ add r0, r7, #0x0
+ mov r1, #0x5
+ mov r2, #0x0
+ bl FUN_020671BC
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #0x4]
+ add r0, r7, #0x0
+ mov r1, #0x70
+ mov r2, #0x0
+ bl FUN_020671BC
+ str r0, [sp, #0xc]
+ add r0, r7, #0x0
+ mov r1, #0xa0
+ mov r2, #0x0
+ bl FUN_020671BC
+ lsl r0, r0, #0x18
+ lsr r6, r0, #0x18
+ ldr r0, [sp, #0x4]
+ ldr r1, [sp, #0xc]
+ add r2, r4, #0x0
+ bl FUN_02069F9C
+ ldr r0, [r5, #0x0]
+ lsl r0, r0, #0x1
+ ldrh r2, [r4, r0]
+ ldr r0, _020698D8 ; =0x0000FFFF
+ cmp r2, r0
+ bne _0206987A
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ add sp, #0x10
+ mov r0, #0x0
+ pop {r3-r7, pc}
+_0206987A:
+ mov r0, #0xfe
+ lsl r0, r0, #0x8
+ add r3, r2, #0x0
+ and r3, r0
+ lsl r6, r6, #0x9
+ cmp r6, r3
+ beq _020698AC
+ ldr r1, _020698D8 ; =0x0000FFFF
+_0206988A:
+ ldr r2, [r5, #0x0]
+ add r2, r2, #0x1
+ str r2, [r5, #0x0]
+ lsl r2, r2, #0x1
+ ldrh r2, [r4, r2]
+ cmp r2, r1
+ bne _020698A4
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ add sp, #0x10
+ mov r0, #0x0
+ pop {r3-r7, pc}
+_020698A4:
+ add r3, r2, #0x0
+ and r3, r0
+ cmp r6, r3
+ bne _0206988A
+_020698AC:
+ cmp r6, r3
+ bne _020698CC
+ ldr r0, _020698DC ; =0x000001FF
+ add r1, r2, #0x0
+ and r1, r0
+ ldr r0, [sp, #0x0]
+ strh r1, [r0, #0x0]
+ ldr r0, [r5, #0x0]
+ ldr r1, [sp, #0x0]
+ add r0, r0, #0x1
+ str r0, [r5, #0x0]
+ ldrh r1, [r1, #0x0]
+ add r0, r7, #0x0
+ bl FUN_02069698
+ str r0, [sp, #0x8]
+_020698CC:
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ ldr r0, [sp, #0x8]
+ add sp, #0x10
+ pop {r3-r7, pc}
+ .balign 4
+_020698D8: .word 0x0000FFFF
+_020698DC: .word 0x000001FF
+
+ thumb_func_start FUN_020698E0
+FUN_020698E0: ; 0x020698E0
+ ldr r3, _020698E4 ; =FUN_020698E8
+ bx r3
+ .balign 4
+_020698E4: .word FUN_020698E8
+
+ thumb_func_start FUN_020698E8
+FUN_020698E8: ; 0x020698E8
+ push {r4-r6, lr}
+ sub sp, #0x8
+ add r4, r1, #0x0
+ add r6, r2, #0x0
+ add r1, #0x36
+ mov r2, #0x0
+ add r5, r0, #0x0
+ bl FUN_020672BC
+ add r1, sp, #0x0
+ strh r0, [r1, #0x4]
+ add r1, r4, #0x0
+ add r0, r5, #0x0
+ add r1, #0x3a
+ mov r2, #0x0
+ bl FUN_020672BC
+ add r1, sp, #0x0
+ strb r0, [r1, #0x2]
+ add r1, r4, #0x0
+ add r0, r5, #0x0
+ add r1, #0x3e
+ mov r2, #0x0
+ bl FUN_020672BC
+ add r1, sp, #0x0
+ strb r0, [r1, #0x0]
+ add r1, r6, #0x0
+ add r0, r5, #0x0
+ add r1, #0x36
+ mov r2, #0x0
+ bl FUN_020672BC
+ add r1, sp, #0x0
+ strh r0, [r1, #0x6]
+ add r1, r6, #0x0
+ add r0, r5, #0x0
+ add r1, #0x3a
+ mov r2, #0x0
+ bl FUN_020672BC
+ add r1, sp, #0x0
+ strb r0, [r1, #0x3]
+ add r1, r6, #0x0
+ add r0, r5, #0x0
+ add r1, #0x3e
+ mov r2, #0x0
+ bl FUN_020672BC
+ add r1, sp, #0x0
+ strb r0, [r1, #0x1]
+ add r1, r4, #0x0
+ add r2, sp, #0x4
+ add r0, r5, #0x0
+ add r1, #0x36
+ add r2, #0x2
+ bl FUN_02067960
+ add r1, r4, #0x0
+ add r2, sp, #0x0
+ add r0, r5, #0x0
+ add r1, #0x3a
+ add r2, #0x3
+ bl FUN_02067960
+ add r4, #0x3e
+ add r2, sp, #0x0
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ add r2, #0x1
+ bl FUN_02067960
+ add r1, r6, #0x0
+ add r0, r5, #0x0
+ add r1, #0x36
+ add r2, sp, #0x4
+ bl FUN_02067960
+ add r1, r6, #0x0
+ add r2, sp, #0x0
+ add r0, r5, #0x0
+ add r1, #0x3a
+ add r2, #0x2
+ bl FUN_02067960
+ add r6, #0x3e
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ add r2, sp, #0x0
+ bl FUN_02067960
+ add sp, #0x8
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_020699A4
+FUN_020699A4: ; 0x020699A4
+ push {r3-r7, lr}
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ cmp r4, #0x3
+ bhs _02069A0A
+ mov r7, #0x0
+ add r6, sp, #0x0
+_020699B2:
+ add r1, r4, #0x0
+ add r0, r5, #0x0
+ add r1, #0x37
+ add r2, r7, #0x0
+ bl FUN_020671BC
+ add r1, r4, #0x0
+ strh r0, [r6, #0x2]
+ add r0, r5, #0x0
+ add r1, #0x3b
+ mov r2, #0x0
+ bl FUN_020671BC
+ add r1, r4, #0x0
+ strb r0, [r6, #0x1]
+ add r0, r5, #0x0
+ add r1, #0x3f
+ mov r2, #0x0
+ bl FUN_020671BC
+ add r1, r4, #0x0
+ add r2, sp, #0x0
+ strb r0, [r6, #0x0]
+ add r0, r5, #0x0
+ add r1, #0x36
+ add r2, #0x2
+ bl FUN_02067830
+ add r1, r4, #0x0
+ add r2, sp, #0x0
+ add r0, r5, #0x0
+ add r1, #0x3a
+ add r2, #0x1
+ bl FUN_02067830
+ add r1, r4, #0x0
+ add r0, r5, #0x0
+ add r1, #0x3e
+ add r2, sp, #0x0
+ bl FUN_02067830
+ add r4, r4, #0x1
+ cmp r4, #0x3
+ blo _020699B2
+_02069A0A:
+ mov r1, #0x0
+ add r0, sp, #0x0
+ strh r1, [r0, #0x2]
+ strb r1, [r0, #0x1]
+ strb r1, [r0, #0x0]
+ add r2, sp, #0x0
+ add r0, r5, #0x0
+ mov r1, #0x39
+ add r2, #0x2
+ bl FUN_02067830
+ add r2, sp, #0x0
+ add r0, r5, #0x0
+ mov r1, #0x3d
+ add r2, #0x1
+ bl FUN_02067830
+ add r0, r5, #0x0
+ mov r1, #0x41
+ add r2, sp, #0x0
+ bl FUN_02067830
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_02069A38
+FUN_02069A38: ; 0x02069A38
+ push {r3-r7, lr}
+ mov r4, #0x0
+ add r6, r0, #0x0
+ add r5, r1, #0x0
+ add r7, r4, #0x0
+_02069A42:
+ add r1, r4, #0x0
+ add r0, r6, #0x0
+ add r1, #0x36
+ add r2, r7, #0x0
+ bl FUN_020671BC
+ cmp r5, r0
+ beq _02069A58
+ add r4, r4, #0x1
+ cmp r4, #0x4
+ blt _02069A42
+_02069A58:
+ cmp r4, #0x4
+ beq _02069A60
+ mov r0, #0x1
+ pop {r3-r7, pc}
+_02069A60:
+ mov r0, #0x0
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_02069A64
+FUN_02069A64: ; 0x02069A64
+ push {r4-r5, lr}
+ sub sp, #0x1c
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ mov r0, #0x0
+ str r0, [sp, #0x0]
+ add r3, r4, #0x0
+ mov r2, #0x11
+_02069A74:
+ ldmia r5!, {r0-r1}
+ stmia r3!, {r0-r1}
+ sub r2, r2, #0x1
+ bne _02069A74
+ ldrh r1, [r4, #0x4]
+ lsl r0, r1, #0x1e
+ lsr r0, r0, #0x1f
+ beq _02069A8E
+ mov r0, #0x1
+ bic r1, r0
+ mov r0, #0x1
+ orr r0, r1
+ strh r0, [r4, #0x4]
+_02069A8E:
+ add r0, r4, #0x0
+ mov r1, #0x9f
+ add r2, sp, #0x0
+ bl FUN_02067830
+ add r0, r4, #0x0
+ mov r1, #0xa2
+ add r2, sp, #0x0
+ bl FUN_02067830
+ add r0, r4, #0x0
+ mov r1, #0xa3
+ add r2, sp, #0x0
+ bl FUN_02067830
+ mov r0, #0x0
+ bl FUN_020256BC
+ add r5, r0, #0x0
+ add r0, r4, #0x0
+ mov r1, #0xa9
+ add r2, r5, #0x0
+ bl FUN_02067830
+ add r0, r5, #0x0
+ bl FUN_02016A18
+ add r0, r4, #0x0
+ mov r1, #0xa1
+ add r2, sp, #0x0
+ bl FUN_02067830
+ mov r0, #0x0
+ add r1, sp, #0x4
+ mov r2, #0x18
+ blx MIi_CpuClearFast
+ add r0, r4, #0x0
+ mov r1, #0xaa
+ add r2, sp, #0x4
+ bl FUN_02067830
+ add r0, r4, #0x0
+ bl FUN_02066ED8
+ add sp, #0x1c
+ pop {r4-r5, pc}
+
+ thumb_func_start FUN_02069AEC
+FUN_02069AEC: ; 0x02069AEC
+ push {r3-r7, lr}
+ str r0, [sp, #0x0]
+ bl FUN_0206B9AC
+ add r7, r0, #0x0
+ mov r6, #0x1
+ mov r5, #0x0
+ cmp r7, #0x0
+ ble _02069B3C
+_02069AFE:
+ ldr r0, [sp, #0x0]
+ add r1, r5, #0x0
+ bl FUN_0206B9B0
+ mov r1, #0x5
+ mov r2, #0x0
+ add r4, r0, #0x0
+ bl FUN_020671BC
+ cmp r0, #0x0
+ beq _02069B36
+ add r0, r4, #0x0
+ mov r1, #0x4c
+ mov r2, #0x0
+ bl FUN_020671BC
+ cmp r0, #0x0
+ bne _02069B36
+ add r0, r4, #0x0
+ mov r1, #0xa0
+ mov r2, #0x0
+ bl FUN_020671BC
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ cmp r0, r6
+ bls _02069B36
+ add r6, r0, #0x0
+_02069B36:
+ add r5, r5, #0x1
+ cmp r5, r7
+ blt _02069AFE
+_02069B3C:
+ add r0, r6, #0x0
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_02069B40
+FUN_02069B40: ; 0x02069B40
+ push {r3, lr}
+ sub sp, #0x8
+ add r3, r0, #0x0
+ mov r0, #0x2
+ str r0, [sp, #0x0]
+ add r0, sp, #0x4
+ mov r1, #0x6d
+ mov r2, #0x0
+ lsl r3, r3, #0x1
+ bl FUN_02006548
+ add r0, sp, #0x4
+ ldrh r0, [r0, #0x0]
+ add sp, #0x8
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_02069B60
+FUN_02069B60: ; 0x02069B60
+ push {r3, lr}
+ sub sp, #0x8
+ add r3, r0, #0x0
+ mov r2, #0x0
+ add r0, sp, #0x4
+ strh r2, [r0, #0x0]
+ cmp r3, #0x97
+ bhi _02069B7E
+ mov r0, #0x2
+ str r0, [sp, #0x0]
+ add r0, sp, #0x4
+ mov r1, #0x91
+ lsl r3, r3, #0x1
+ bl FUN_02006548
+_02069B7E:
+ add r0, sp, #0x4
+ ldrh r0, [r0, #0x0]
+ add sp, #0x8
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_02069B88
+FUN_02069B88: ; 0x02069B88
+ push {r3-r4}
+ add r4, r0, #0x0
+ add r3, r1, #0x0
+ mov r2, #0x1d
+_02069B90:
+ ldmia r4!, {r0-r1}
+ stmia r3!, {r0-r1}
+ sub r2, r2, #0x1
+ bne _02069B90
+ ldr r0, [r4, #0x0]
+ str r0, [r3, #0x0]
+ pop {r3-r4}
+ bx lr
+
+ thumb_func_start FUN_02069BA0
+FUN_02069BA0: ; 0x02069BA0
+ push {r3-r4}
+ add r4, r0, #0x0
+ add r3, r1, #0x0
+ mov r2, #0x11
+_02069BA8:
+ ldmia r4!, {r0-r1}
+ stmia r3!, {r0-r1}
+ sub r2, r2, #0x1
+ bne _02069BA8
+ pop {r3-r4}
+ bx lr
+
+ thumb_func_start FUN_02069BB4
+FUN_02069BB4: ; 0x02069BB4
+ push {r3-r4}
+ add r4, r0, #0x0
+ add r3, r1, #0x0
+ mov r2, #0x11
+_02069BBC:
+ ldmia r4!, {r0-r1}
+ stmia r3!, {r0-r1}
+ sub r2, r2, #0x1
+ bne _02069BBC
+ pop {r3-r4}
+ bx lr
+
+ thumb_func_start FUN_02069BC8
+FUN_02069BC8: ; 0x02069BC8
+ ldr r3, _02069BCC ; =FUN_02069BD0
+ bx r3
+ .balign 4
+_02069BCC: .word FUN_02069BD0
+
+ thumb_func_start FUN_02069BD0
+FUN_02069BD0: ; 0x02069BD0
+ push {r4, lr}
+ add r4, r1, #0x0
+ mov r1, #0x0
+ add r2, r1, #0x0
+ bl FUN_020672BC
+ add r1, r4, #0x0
+ bl FUN_02069BE4
+ pop {r4, pc}
+
+ thumb_func_start FUN_02069BE4
+FUN_02069BE4: ; 0x02069BE4
+ push {r4, lr}
+ add r4, r1, #0x0
+ bl FUN_02068884
+ lsl r1, r0, #0x2
+ add r1, r0, r1
+ ldr r0, _02069BF8 ; =0x020F7F16
+ add r0, r0, r1
+ ldrsb r0, [r4, r0]
+ pop {r4, pc}
+ .balign 4
+_02069BF8: .word 0x020F7F16
+
+ thumb_func_start FUN_02069BFC
+FUN_02069BFC: ; 0x02069BFC
+ push {r3-r7, lr}
+ add r4, r0, #0x0
+ add r7, r1, #0x0
+ mov r0, #0x0
+ mov r1, #0x2c
+ add r5, r2, #0x0
+ bl FUN_02016998
+ add r6, r0, #0x0
+ add r0, r4, #0x0
+ add r1, r7, #0x0
+ add r2, r6, #0x0
+ bl FUN_02069F9C
+ ldrh r1, [r6, #0x0]
+ ldr r0, _02069C44 ; =0x0000FFFF
+ mov r4, #0x0
+ cmp r1, r0
+ beq _02069C3A
+ ldr r1, _02069C48 ; =0x000001FF
+ ldr r2, _02069C44 ; =0x0000FFFF
+ add r0, r6, #0x0
+_02069C28:
+ ldrh r3, [r0, #0x0]
+ add r0, r0, #0x2
+ add r4, r4, #0x1
+ and r3, r1
+ strh r3, [r5, #0x0]
+ ldrh r3, [r0, #0x0]
+ add r5, r5, #0x2
+ cmp r3, r2
+ bne _02069C28
+_02069C3A:
+ add r0, r6, #0x0
+ bl FUN_02016A18
+ add r0, r4, #0x0
+ pop {r3-r7, pc}
+ .balign 4
+_02069C44: .word 0x0000FFFF
+_02069C48: .word 0x000001FF
+
+ thumb_func_start FUN_02069C4C
+FUN_02069C4C: ; 0x02069C4C
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ bl FUN_0206B9AC
+ add r6, r0, #0x0
+ bl FUN_0201B9EC
+ mov r1, #0x1
+ lsl r1, r1, #0xe
+ cmp r0, r1
+ beq _02069C70
+ lsl r1, r1, #0x1
+ cmp r0, r1
+ beq _02069C70
+ mov r1, #0x3
+ lsl r1, r1, #0xe
+ cmp r0, r1
+ bne _02069CF2
+_02069C70:
+ bl FUN_0201B9EC
+ add r1, r6, #0x0
+ blx _s32_div_f
+ add r0, r5, #0x0
+ add r7, r1, #0x0
+ bl FUN_0206B9B0
+ mov r1, #0x5
+ mov r2, #0x0
+ add r4, r0, #0x0
+ bl FUN_020671BC
+ cmp r0, #0x0
+ beq _02069C70
+ add r0, r4, #0x0
+ mov r1, #0x4c
+ mov r2, #0x0
+ bl FUN_020671BC
+ cmp r0, #0x0
+ bne _02069C70
+ add r0, r7, #0x0
+ bl FUN_0206A92C
+ add r1, r0, #0x0
+ lsl r1, r1, #0x18
+ add r0, r5, #0x0
+ lsr r1, r1, #0x18
+ bl FUN_02069CF4
+ cmp r0, #0x0
+ bne _02069CF2
+ add r5, sp, #0x0
+ mov r6, #0x7
+_02069CB8:
+ bl FUN_0201B9EC
+ strb r0, [r5, #0x0]
+ ldrb r2, [r5, #0x0]
+ add r1, r2, #0x0
+ and r1, r6
+ beq _02069CB8
+ mov r0, #0xf0
+ tst r0, r2
+ beq _02069CD0
+ add r0, sp, #0x0
+ strb r1, [r0, #0x0]
+_02069CD0:
+ add r1, sp, #0x0
+ ldrb r2, [r1, #0x0]
+ lsl r0, r2, #0x4
+ orr r0, r2
+ strb r0, [r1, #0x0]
+ ldrb r2, [r1, #0x0]
+ mov r0, #0xf3
+ and r0, r2
+ strb r0, [r1, #0x0]
+ ldrb r0, [r1, #0x0]
+ add r2, sp, #0x0
+ add r0, r0, #0x1
+ strb r0, [r1, #0x0]
+ add r0, r4, #0x0
+ mov r1, #0x99
+ bl FUN_02067830
+_02069CF2:
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_02069CF4
+FUN_02069CF4: ; 0x02069CF4
+ push {r3-r7, lr}
+ mov r6, #0x0
+ add r5, r1, #0x0
+ str r0, [sp, #0x0]
+ mov r4, #0x1
+ add r7, r6, #0x0
+ cmp r5, #0x0
+ beq _02069D32
+_02069D04:
+ mov r0, #0x1
+ tst r0, r5
+ beq _02069D26
+ ldr r0, [sp, #0x0]
+ add r1, r6, #0x0
+ bl FUN_0206B9B0
+ mov r1, #0x99
+ mov r2, #0x0
+ bl FUN_020671BC
+ cmp r0, #0x0
+ beq _02069D26
+ add r0, r7, #0x0
+ orr r0, r4
+ lsl r0, r0, #0x18
+ lsr r7, r0, #0x18
+_02069D26:
+ lsl r0, r5, #0x17
+ add r6, r6, #0x1
+ lsl r4, r4, #0x1
+ lsr r5, r0, #0x18
+ bne _02069D04
+ b _02069D4A
+_02069D32:
+ add r1, r6, #0x0
+ bl FUN_0206B9B0
+ mov r1, #0x99
+ add r2, r6, #0x0
+ bl FUN_020671BC
+ cmp r0, #0x0
+ beq _02069D4A
+ add r0, r7, #0x1
+ lsl r0, r0, #0x18
+ lsr r7, r0, #0x18
+_02069D4A:
+ add r0, r7, #0x0
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_02069D50
+FUN_02069D50: ; 0x02069D50
+ push {r4-r7, lr}
+ sub sp, #0xc
+ str r0, [sp, #0x0]
+ add r5, r1, #0x0
+ bl FUN_0206B9AC
+ mov r6, #0x0
+ str r0, [sp, #0x4]
+ cmp r0, #0x0
+ ble _02069DC2
+ add r4, sp, #0x8
+_02069D66:
+ ldr r0, [sp, #0x0]
+ add r1, r6, #0x0
+ bl FUN_0206B9B0
+ mov r1, #0x5
+ mov r2, #0x0
+ add r7, r0, #0x0
+ bl FUN_020671BC
+ cmp r0, #0x0
+ beq _02069DBA
+ add r0, r7, #0x0
+ mov r1, #0x99
+ mov r2, #0x0
+ bl FUN_020671BC
+ strb r0, [r4, #0x0]
+ ldrb r1, [r4, #0x0]
+ mov r0, #0xf
+ and r0, r1
+ beq _02069DBA
+ cmp r0, r5
+ blt _02069D98
+ cmp r5, #0x4
+ ble _02069DA2
+_02069D98:
+ ldrb r1, [r4, #0x0]
+ mov r0, #0xf0
+ and r0, r1
+ strb r0, [r4, #0x0]
+ b _02069DA6
+_02069DA2:
+ sub r0, r1, r5
+ strb r0, [r4, #0x0]
+_02069DA6:
+ ldrb r0, [r4, #0x0]
+ cmp r0, #0x0
+ bne _02069DB0
+ mov r0, #0x10
+ strb r0, [r4, #0x0]
+_02069DB0:
+ add r0, r7, #0x0
+ mov r1, #0x99
+ add r2, sp, #0x8
+ bl FUN_02067830
+_02069DBA:
+ ldr r0, [sp, #0x4]
+ add r6, r6, #0x1
+ cmp r6, r0
+ blt _02069D66
+_02069DC2:
+ add sp, #0xc
+ pop {r4-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_02069DC8
+FUN_02069DC8: ; 0x02069DC8
+ push {r3-r7, lr}
+ sub sp, #0x8
+ add r5, r0, #0x0
+ bl FUN_0206B9AC
+ add r7, r0, #0x0
+ bl FUN_0201B9EC
+ mov r1, #0x3
+ blx _s32_div_f
+ cmp r1, #0x0
+ bne _02069E70
+ mov r4, #0x0
+ cmp r7, #0x0
+ ble _02069E70
+ sub r0, r7, #0x1
+ str r0, [sp, #0x0]
+_02069DEC:
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_0206B9B0
+ mov r1, #0x5
+ mov r2, #0x0
+ add r6, r0, #0x0
+ bl FUN_020671BC
+ cmp r0, #0x0
+ beq _02069E6A
+ add r0, r6, #0x0
+ mov r1, #0x99
+ mov r2, #0x0
+ bl FUN_020671BC
+ add r1, sp, #0x4
+ strb r0, [r1, #0x0]
+ add r0, r1, #0x0
+ ldrb r1, [r0, #0x0]
+ mov r0, #0xf
+ tst r0, r1
+ beq _02069E6A
+ cmp r4, #0x0
+ beq _02069E40
+ add r0, r5, #0x0
+ sub r1, r4, #0x1
+ bl FUN_0206B9B0
+ mov r1, #0x99
+ mov r2, #0x0
+ add r6, r0, #0x0
+ bl FUN_020671BC
+ mov r1, #0xf0
+ tst r0, r1
+ bne _02069E40
+ add r0, r6, #0x0
+ mov r1, #0x99
+ add r2, sp, #0x4
+ bl FUN_02067830
+_02069E40:
+ ldr r0, [sp, #0x0]
+ cmp r4, r0
+ bge _02069E6A
+ add r0, r5, #0x0
+ add r1, r4, #0x1
+ bl FUN_0206B9B0
+ mov r1, #0x99
+ mov r2, #0x0
+ add r6, r0, #0x0
+ bl FUN_020671BC
+ mov r1, #0xf0
+ tst r0, r1
+ bne _02069E6A
+ add r0, r6, #0x0
+ mov r1, #0x99
+ add r2, sp, #0x4
+ bl FUN_02067830
+ add r4, r4, #0x1
+_02069E6A:
+ add r4, r4, #0x1
+ cmp r4, r7
+ blt _02069DEC
+_02069E70:
+ add sp, #0x8
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_02069E74
+FUN_02069E74: ; 0x02069E74
+ ldr r3, _02069E78 ; =FUN_02069E7C
+ bx r3
+ .balign 4
+_02069E78: .word FUN_02069E7C
+
+ thumb_func_start FUN_02069E7C
+FUN_02069E7C: ; 0x02069E7C
+ push {r3, lr}
+ mov r1, #0x99
+ mov r2, #0x0
+ bl FUN_020672BC
+ mov r1, #0xf
+ tst r0, r1
+ beq _02069E90
+ mov r0, #0x1
+ pop {r3, pc}
+_02069E90:
+ mov r0, #0x0
+ pop {r3, pc}
+
+ thumb_func_start FUN_02069E94
+FUN_02069E94: ; 0x02069E94
+ ldr r3, _02069E98 ; =FUN_02069E9C
+ bx r3
+ .balign 4
+_02069E98: .word FUN_02069E9C
+
+ thumb_func_start FUN_02069E9C
+FUN_02069E9C: ; 0x02069E9C
+ push {r3, lr}
+ mov r1, #0x99
+ mov r2, #0x0
+ bl FUN_020672BC
+ lsl r0, r0, #0x18
+ lsr r1, r0, #0x18
+ mov r0, #0xf
+ tst r0, r1
+ beq _02069EB4
+ mov r0, #0x0
+ pop {r3, pc}
+_02069EB4:
+ mov r0, #0xf0
+ tst r0, r1
+ beq _02069EBE
+ mov r0, #0x1
+ pop {r3, pc}
+_02069EBE:
+ mov r0, #0x0
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_02069EC4
+FUN_02069EC4: ; 0x02069EC4
+ ldr r3, _02069EC8 ; =FUN_02069ECC
+ bx r3
+ .balign 4
+_02069EC8: .word FUN_02069ECC
+
+ thumb_func_start FUN_02069ECC
+FUN_02069ECC: ; 0x02069ECC
+ push {r3-r6, lr}
+ sub sp, #0x4
+ add r5, r0, #0x0
+ mov r1, #0x5
+ mov r2, #0x0
+ bl FUN_020672BC
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ mov r1, #0xa
+ mov r2, #0x0
+ bl FUN_020672BC
+ add r6, r0, #0x0
+ add r0, r5, #0x0
+ mov r1, #0x6
+ mov r2, #0x0
+ bl FUN_020672BC
+ ldr r1, _02069F20 ; =0x000001ED
+ cmp r4, r1
+ bne _02069F1C
+ cmp r6, #0x79
+ bne _02069F1C
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ mov r1, #0x1
+ mov r2, #0x0
+ bl FUN_0206E7B8
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ bl FUN_02069F24
+ str r0, [sp, #0x0]
+ add r0, r5, #0x0
+ mov r1, #0x70
+ add r2, sp, #0x0
+ bl FUN_02067960
+_02069F1C:
+ add sp, #0x4
+ pop {r3-r6, pc}
+ .balign 4
+_02069F20: .word 0x000001ED
+
+ thumb_func_start FUN_02069F24
+FUN_02069F24: ; 0x02069F24
+ sub r0, #0x7d
+ cmp r0, #0xf
+ bhi _02069F96
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02069F36: ; jump table (using 16-bit offset)
+ .short _02069F56 - _02069F36 - 2; case 0
+ .short _02069F5A - _02069F36 - 2; case 1
+ .short _02069F5E - _02069F36 - 2; case 2
+ .short _02069F62 - _02069F36 - 2; case 3
+ .short _02069F66 - _02069F36 - 2; case 4
+ .short _02069F6A - _02069F36 - 2; case 5
+ .short _02069F6E - _02069F36 - 2; case 6
+ .short _02069F72 - _02069F36 - 2; case 7
+ .short _02069F76 - _02069F36 - 2; case 8
+ .short _02069F7A - _02069F36 - 2; case 9
+ .short _02069F7E - _02069F36 - 2; case 10
+ .short _02069F82 - _02069F36 - 2; case 11
+ .short _02069F86 - _02069F36 - 2; case 12
+ .short _02069F8A - _02069F36 - 2; case 13
+ .short _02069F8E - _02069F36 - 2; case 14
+ .short _02069F92 - _02069F36 - 2; case 15
+_02069F56:
+ mov r0, #0xa
+ bx lr
+_02069F5A:
+ mov r0, #0xb
+ bx lr
+_02069F5E:
+ mov r0, #0xd
+ bx lr
+_02069F62:
+ mov r0, #0xc
+ bx lr
+_02069F66:
+ mov r0, #0xf
+ bx lr
+_02069F6A:
+ mov r0, #0x1
+ bx lr
+_02069F6E:
+ mov r0, #0x3
+ bx lr
+_02069F72:
+ mov r0, #0x4
+ bx lr
+_02069F76:
+ mov r0, #0x2
+ bx lr
+_02069F7A:
+ mov r0, #0xe
+ bx lr
+_02069F7E:
+ mov r0, #0x6
+ bx lr
+_02069F82:
+ mov r0, #0x5
+ bx lr
+_02069F86:
+ mov r0, #0x7
+ bx lr
+_02069F8A:
+ mov r0, #0x10
+ bx lr
+_02069F8E:
+ mov r0, #0x11
+ bx lr
+_02069F92:
+ mov r0, #0x8
+ bx lr
+_02069F96:
+ mov r0, #0x0
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02069F9C
+FUN_02069F9C: ; 0x02069F9C
+ push {r4, lr}
+ add r4, r2, #0x0
+ bl FUN_0206A8FC
+ add r2, r0, #0x0
+ add r0, r4, #0x0
+ mov r1, #0x21
+ bl LoadFromNARC
+ pop {r4, pc}
+
+ thumb_func_start FUN_02069FB0
+FUN_02069FB0: ; 0x02069FB0
+ push {r3-r7, lr}
+ add r7, r0, #0x0
+ ldr r0, _0206A010 ; =0x000001B9
+ add r4, r2, #0x0
+ add r5, r1, #0x0
+ add r6, r3, #0x0
+ cmp r4, r0
+ bne _02069FFC
+ add r0, r5, #0x0
+ bl FUN_02005F14
+ cmp r0, #0x0
+ bne _02069FE2
+ mov r0, #0x1
+ bl FUN_02005E80
+ ldr r0, [sp, #0x20]
+ ldr r3, [sp, #0x18]
+ str r0, [sp, #0x0]
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ add r2, r6, #0x0
+ bl FUN_020056AC
+ pop {r3-r7, pc}
+_02069FE2:
+ ldr r0, [sp, #0x1c]
+ cmp r0, #0x0
+ beq _02069FEE
+ mov r0, #0x1
+ bl FUN_02005E80
+_02069FEE:
+ ldr r2, [sp, #0x18]
+ add r0, r7, #0x0
+ mov r1, #0x0
+ add r3, r6, #0x0
+ bl FUN_02005E90
+ pop {r3-r7, pc}
+_02069FFC:
+ ldr r0, [sp, #0x20]
+ ldr r3, [sp, #0x18]
+ str r0, [sp, #0x0]
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ add r2, r6, #0x0
+ bl FUN_020056AC
+ pop {r3-r7, pc}
+ nop
+_0206A010: .word 0x000001B9
+
+ thumb_func_start FUN_0206A014
+FUN_0206A014: ; 0x0206A014
+ push {r3-r6, lr}
+ sub sp, #0xc
+ ldr r6, [sp, #0x20]
+ add r5, r0, #0x0
+ str r6, [sp, #0x0]
+ ldr r6, [sp, #0x24]
+ add r4, r2, #0x0
+ str r6, [sp, #0x4]
+ bl FUN_0206A054
+ cmp r4, #0xe
+ bne _0206A050
+ add r0, r5, #0x0
+ mov r1, #0xa3
+ mov r2, #0x0
+ bl FUN_020671BC
+ str r0, [sp, #0x8]
+ add r0, r5, #0x0
+ mov r1, #0xa2
+ add r2, sp, #0x8
+ bl FUN_02067830
+ mov r0, #0x0
+ str r0, [sp, #0x8]
+ add r0, r5, #0x0
+ mov r1, #0x9f
+ add r2, sp, #0x8
+ bl FUN_02067830
+_0206A050:
+ add sp, #0xc
+ pop {r3-r6, pc}
+
+ thumb_func_start FUN_0206A054
+FUN_0206A054: ; 0x0206A054
+ push {r0-r3}
+ push {r3-r4, lr}
+ sub sp, #0x4
+ ldr r2, [sp, #0x24]
+ add r4, r0, #0x0
+ str r2, [sp, #0x0]
+ mov r2, #0x0
+ bl FUN_020808AC
+ ldr r2, _0206A090 ; =0x020ECAC0
+ add r0, r4, #0x0
+ mov r1, #0x79
+ bl FUN_02067960
+ add r0, r4, #0x0
+ mov r1, #0x9a
+ add r2, sp, #0x18
+ bl FUN_02067960
+ add r0, r4, #0x0
+ mov r1, #0x9d
+ add r2, sp, #0x20
+ bl FUN_02067960
+ add sp, #0x4
+ pop {r3-r4}
+ pop {r3}
+ add sp, #0x10
+ bx r3
+ nop
+_0206A090: .word 0x020ECAC0
+
+ thumb_func_start FUN_0206A094
+FUN_0206A094: ; 0x0206A094
+ push {r3-r7, lr}
+ sub sp, #0x8
+ add r5, r0, #0x0
+ mov r0, #0x81
+ add r7, r2, #0x0
+ tst r0, r1
+ bne _0206A12E
+ bl FUN_0201B9EC
+ mov r1, #0x64
+ blx _s32_div_f
+ add r4, r1, #0x0
+ add r0, r5, #0x0
+ mov r1, #0x5
+ mov r2, #0x0
+ bl FUN_020671BC
+ lsl r0, r0, #0x10
+ lsr r6, r0, #0x10
+ add r0, r5, #0x0
+ mov r1, #0x70
+ mov r2, #0x0
+ bl FUN_020671BC
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #0x0]
+ ldr r1, [sp, #0x0]
+ add r0, r6, #0x0
+ mov r2, #0x10
+ bl FUN_02068654
+ add r1, sp, #0x4
+ strh r0, [r1, #0x2]
+ ldr r1, [sp, #0x0]
+ add r0, r6, #0x0
+ mov r2, #0x11
+ bl FUN_02068654
+ add r1, sp, #0x4
+ strh r0, [r1, #0x0]
+ ldrh r2, [r1, #0x2]
+ ldrh r0, [r1, #0x0]
+ cmp r2, r0
+ bne _0206A104
+ cmp r2, #0x0
+ beq _0206A104
+ add r2, sp, #0x4
+ add r0, r5, #0x0
+ mov r1, #0x6
+ add r2, #0x2
+ bl FUN_02067830
+ add sp, #0x8
+ pop {r3-r7, pc}
+_0206A104:
+ ldr r0, _0206A134 ; =0x020F7ECC
+ lsl r1, r7, #0x2
+ ldrh r0, [r0, r1]
+ cmp r4, r0
+ blo _0206A12E
+ ldr r0, _0206A138 ; =0x020F7ECE
+ ldrh r0, [r0, r1]
+ cmp r4, r0
+ add r2, sp, #0x4
+ bhs _0206A126
+ add r0, r5, #0x0
+ mov r1, #0x6
+ add r2, #0x2
+ bl FUN_02067830
+ add sp, #0x8
+ pop {r3-r7, pc}
+_0206A126:
+ add r0, r5, #0x0
+ mov r1, #0x6
+ bl FUN_02067830
+_0206A12E:
+ add sp, #0x8
+ pop {r3-r7, pc}
+ nop
+_0206A134: .word 0x020F7ECC
+_0206A138: .word 0x020F7ECE
+
+ thumb_func_start FUN_0206A13C
+FUN_0206A13C: ; 0x0206A13C
+ ldr r3, _0206A140 ; =FUN_0206A144
+ bx r3
+ .balign 4
+_0206A140: .word FUN_0206A144
+
+ thumb_func_start FUN_0206A144
+FUN_0206A144: ; 0x0206A144
+ push {r4-r6, lr}
+ add r6, r1, #0x0
+ mov r1, #0xad
+ mov r2, #0x0
+ add r5, r0, #0x0
+ bl FUN_020672BC
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+ add r0, r5, #0x0
+ mov r1, #0x70
+ mov r2, #0x0
+ bl FUN_020672BC
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ add r2, r6, #0x0
+ bl FUN_0206A16C
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_0206A16C
+FUN_0206A16C: ; 0x0206A16C
+ push {r4, lr}
+ ldr r3, _0206A1C0 ; =0x000001EE
+ cmp r0, r3
+ bne _0206A178
+ mov r0, #0x0
+ pop {r4, pc}
+_0206A178:
+ cmp r2, #0x20
+ bhs _0206A186
+ mov r3, #0x1
+ add r4, r3, #0x0
+ lsl r4, r2
+ mov r2, #0x1d
+ b _0206A1B0
+_0206A186:
+ cmp r2, #0x40
+ bhs _0206A196
+ mov r3, #0x1
+ sub r2, #0x20
+ add r4, r3, #0x0
+ lsl r4, r2
+ mov r2, #0x1e
+ b _0206A1B0
+_0206A196:
+ cmp r2, #0x60
+ bhs _0206A1A6
+ mov r3, #0x1
+ sub r2, #0x40
+ add r4, r3, #0x0
+ lsl r4, r2
+ mov r2, #0x1f
+ b _0206A1B0
+_0206A1A6:
+ mov r3, #0x1
+ sub r2, #0x60
+ add r4, r3, #0x0
+ lsl r4, r2
+ mov r2, #0x20
+_0206A1B0:
+ bl FUN_02068654
+ tst r0, r4
+ beq _0206A1BC
+ mov r0, #0x1
+ pop {r4, pc}
+_0206A1BC:
+ mov r0, #0x0
+ pop {r4, pc}
+ .balign 4
+_0206A1C0: .word 0x000001EE
+
+ thumb_func_start FUN_0206A1C4
+FUN_0206A1C4: ; 0x0206A1C4
+ ldr r3, _0206A1C8 ; =FUN_0206A1CC
+ bx r3
+ .balign 4
+_0206A1C8: .word FUN_0206A1CC
+
+ thumb_func_start FUN_0206A1CC
+FUN_0206A1CC: ; 0x0206A1CC
+ push {r3-r7, lr}
+ sub sp, #0x8
+ add r5, r0, #0x0
+ bl FUN_02066A6C
+ add r7, r0, #0x0
+ add r0, r5, #0x0
+ mov r1, #0x5
+ mov r2, #0x0
+ bl FUN_020672BC
+ mov r1, #0x0
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ add r2, r1, #0x0
+ bl FUN_020672BC
+ add r6, r0, #0x0
+ add r0, r4, #0x0
+ mov r1, #0x18
+ bl FUN_02068678
+ str r0, [sp, #0x4]
+ add r0, r4, #0x0
+ mov r1, #0x19
+ bl FUN_02068678
+ str r0, [sp, #0x0]
+ cmp r0, #0x0
+ beq _0206A226
+ mov r0, #0x1
+ tst r0, r6
+ beq _0206A21A
+ add r0, r5, #0x0
+ mov r1, #0xa
+ add r2, sp, #0x0
+ bl FUN_02067960
+ b _0206A230
+_0206A21A:
+ add r0, r5, #0x0
+ mov r1, #0xa
+ add r2, sp, #0x4
+ bl FUN_02067960
+ b _0206A230
+_0206A226:
+ add r0, r5, #0x0
+ mov r1, #0xa
+ add r2, sp, #0x4
+ bl FUN_02067960
+_0206A230:
+ add r0, r5, #0x0
+ add r1, r7, #0x0
+ bl FUN_02066A94
+ add sp, #0x8
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_0206A23C
+FUN_0206A23C: ; 0x0206A23C
+ push {r4-r7, lr}
+ sub sp, #0x1c
+ add r5, r0, #0x0
+ mov r0, #0x0
+ str r1, [sp, #0x0]
+ bl FUN_020669C0
+ str r0, [sp, #0x4]
+ ldr r1, [sp, #0x4]
+ add r0, r5, #0x0
+ bl FUN_02069B88
+ ldr r0, [sp, #0x4]
+ ldr r1, [r5, #0x0]
+ mov r2, #0x0
+ bl FUN_0206A418
+ add r4, r0, #0x0
+ ldr r0, [sp, #0x4]
+ ldr r1, [r5, #0x0]
+ mov r2, #0x1
+ bl FUN_0206A418
+ add r6, r0, #0x0
+ ldr r0, [sp, #0x4]
+ ldr r1, [r5, #0x0]
+ mov r2, #0x2
+ bl FUN_0206A418
+ add r7, r0, #0x0
+ ldr r0, [sp, #0x4]
+ ldr r1, [r5, #0x0]
+ mov r2, #0x3
+ bl FUN_0206A418
+ str r0, [sp, #0x8]
+ ldr r1, [sp, #0x0]
+ add r0, r5, #0x0
+ mov r2, #0x0
+ bl FUN_0206A418
+ str r0, [sp, #0xc]
+ ldr r1, [sp, #0x0]
+ add r0, r5, #0x0
+ mov r2, #0x1
+ bl FUN_0206A418
+ str r0, [sp, #0x10]
+ ldr r1, [sp, #0x0]
+ add r0, r5, #0x0
+ mov r2, #0x2
+ bl FUN_0206A418
+ str r0, [sp, #0x14]
+ ldr r1, [sp, #0x0]
+ add r0, r5, #0x0
+ mov r2, #0x3
+ bl FUN_0206A418
+ ldr r2, [sp, #0x4]
+ str r0, [sp, #0x18]
+ ldr r0, [sp, #0x4]
+ ldrh r2, [r2, #0x6]
+ add r0, #0x8
+ mov r1, #0x80
+ bl FUN_0206A3D0
+ add r0, r5, #0x0
+ ldr r2, [r5, #0x0]
+ add r0, #0x88
+ mov r1, #0x64
+ bl FUN_0206A3D0
+ add r0, r5, #0x0
+ ldrh r2, [r5, #0x6]
+ add r0, #0x8
+ mov r1, #0x80
+ bl FUN_0206A3D0
+ ldr r0, [sp, #0x0]
+ str r0, [r5, #0x0]
+ ldr r2, [sp, #0xc]
+ ldmia r4!, {r0-r1}
+ stmia r2!, {r0-r1}
+ str r2, [sp, #0xc]
+ ldmia r4!, {r0-r1}
+ stmia r2!, {r0-r1}
+ str r2, [sp, #0xc]
+ ldmia r4!, {r0-r1}
+ stmia r2!, {r0-r1}
+ str r2, [sp, #0xc]
+ ldmia r4!, {r0-r1}
+ stmia r2!, {r0-r1}
+ str r2, [sp, #0xc]
+ ldr r2, [sp, #0x10]
+ ldmia r6!, {r0-r1}
+ stmia r2!, {r0-r1}
+ str r2, [sp, #0x10]
+ ldmia r6!, {r0-r1}
+ stmia r2!, {r0-r1}
+ str r2, [sp, #0x10]
+ ldmia r6!, {r0-r1}
+ stmia r2!, {r0-r1}
+ str r2, [sp, #0x10]
+ ldmia r6!, {r0-r1}
+ stmia r2!, {r0-r1}
+ str r2, [sp, #0x10]
+ ldr r2, [sp, #0x14]
+ ldmia r7!, {r0-r1}
+ stmia r2!, {r0-r1}
+ str r2, [sp, #0x14]
+ ldmia r7!, {r0-r1}
+ stmia r2!, {r0-r1}
+ str r2, [sp, #0x14]
+ ldmia r7!, {r0-r1}
+ stmia r2!, {r0-r1}
+ str r2, [sp, #0x14]
+ ldmia r7!, {r0-r1}
+ stmia r2!, {r0-r1}
+ str r2, [sp, #0x14]
+ mov r0, #0x10
+_0206A32E:
+ ldr r1, [sp, #0x8]
+ ldrh r2, [r1, #0x0]
+ add r1, r1, #0x2
+ str r1, [sp, #0x8]
+ ldr r1, [sp, #0x18]
+ strh r2, [r1, #0x0]
+ add r1, r1, #0x2
+ str r1, [sp, #0x18]
+ sub r0, r0, #0x1
+ bne _0206A32E
+ add r0, r5, #0x0
+ add r0, #0x8
+ mov r1, #0x80
+ bl FUN_0206A3F8
+ strh r0, [r5, #0x6]
+ add r0, r5, #0x0
+ ldrh r2, [r5, #0x6]
+ add r0, #0x8
+ mov r1, #0x80
+ bl FUN_0206A3A4
+ add r0, r5, #0x0
+ ldr r2, [r5, #0x0]
+ add r0, #0x88
+ mov r1, #0x64
+ bl FUN_0206A3A4
+ ldr r0, [sp, #0x4]
+ bl FUN_02016A18
+ add sp, #0x1c
+ pop {r4-r7, pc}
+
+ thumb_func_start FUN_0206A370
+FUN_0206A370: ; 0x0206A370
+ ldr r3, _0206A37C ; =LoadFromNARC
+ add r2, r0, #0x0
+ add r0, r1, #0x0
+ mov r1, #0x2
+ bx r3
+ nop
+_0206A37C: .word LoadFromNARC
+
+ thumb_func_start FUN_0206A380
+FUN_0206A380: ; 0x0206A380
+ push {r4, lr}
+ add r4, r2, #0x0
+ bl FUN_0206A8FC
+ add r2, r0, #0x0
+ add r0, r4, #0x0
+ mov r1, #0x2
+ bl LoadFromNARC
+ pop {r4, pc}
+
+ thumb_func_start FUN_0206A394
+FUN_0206A394: ; 0x0206A394
+ ldr r3, _0206A3A0 ; =LoadFromNARC
+ add r2, r0, #0x0
+ add r0, r1, #0x0
+ mov r1, #0x22
+ bx r3
+ nop
+_0206A3A0: .word LoadFromNARC
+
+ thumb_func_start FUN_0206A3A4
+FUN_0206A3A4: ; 0x0206A3A4
+ push {r0-r3}
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ mov r4, #0x0
+ lsr r6, r1, #0x1
+ beq _0206A3C6
+ add r7, sp, #0x20
+_0206A3B2:
+ add r0, r7, #0x0
+ bl FUN_0206A3D8
+ ldrh r1, [r5, #0x0]
+ add r4, r4, #0x1
+ eor r0, r1
+ strh r0, [r5, #0x0]
+ add r5, r5, #0x2
+ cmp r4, r6
+ blo _0206A3B2
+_0206A3C6:
+ pop {r3-r7}
+ pop {r3}
+ add sp, #0x10
+ bx r3
+ .balign 4
+
+ thumb_func_start FUN_0206A3D0
+FUN_0206A3D0: ; 0x0206A3D0
+ ldr r3, _0206A3D4 ; =FUN_0206A3A4
+ bx r3
+ .balign 4
+_0206A3D4: .word FUN_0206A3A4
+
+ thumb_func_start FUN_0206A3D8
+FUN_0206A3D8: ; 0x0206A3D8
+ ldr r2, [r0, #0x0]
+ ldr r1, _0206A3F0 ; =0x41C64E6D
+ add r3, r2, #0x0
+ mul r3, r1
+ ldr r1, _0206A3F4 ; =0x00006073
+ add r1, r3, r1
+ str r1, [r0, #0x0]
+ lsr r0, r1, #0x10
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ bx lr
+ nop
+_0206A3F0: .word 0x41C64E6D
+_0206A3F4: .word 0x00006073
+
+ thumb_func_start FUN_0206A3F8
+FUN_0206A3F8: ; 0x0206A3F8
+ push {r3-r4}
+ mov r3, #0x0
+ add r2, r3, #0x0
+ lsr r4, r1, #0x1
+ beq _0206A412
+_0206A402:
+ ldrh r1, [r0, #0x0]
+ add r2, r2, #0x1
+ add r0, r0, #0x2
+ add r1, r3, r1
+ lsl r1, r1, #0x10
+ lsr r3, r1, #0x10
+ cmp r2, r4
+ blo _0206A402
+_0206A412:
+ add r0, r3, #0x0
+ pop {r3-r4}
+ bx lr
+
+ thumb_func_start FUN_0206A418
+FUN_0206A418: ; 0x0206A418
+ push {r3, lr}
+ mov r3, #0x3e
+ lsl r3, r3, #0xc
+ and r3, r1
+ lsr r3, r3, #0xd
+ cmp r3, #0x1f
+ bhi _0206A478
+ add r3, r3, r3
+ add r3, pc
+ ldrh r3, [r3, #0x6]
+ lsl r3, r3, #0x10
+ asr r3, r3, #0x10
+ add pc, r3
+_0206A432: ; jump table (using 16-bit offset)
+ .short _0206A472 - _0206A432 - 2; case 0
+ .short _0206A4A4 - _0206A432 - 2; case 1
+ .short _0206A4D4 - _0206A432 - 2; case 2
+ .short _0206A504 - _0206A432 - 2; case 3
+ .short _0206A534 - _0206A432 - 2; case 4
+ .short _0206A564 - _0206A432 - 2; case 5
+ .short _0206A594 - _0206A432 - 2; case 6
+ .short _0206A5C6 - _0206A432 - 2; case 7
+ .short _0206A5F6 - _0206A432 - 2; case 8
+ .short _0206A626 - _0206A432 - 2; case 9
+ .short _0206A656 - _0206A432 - 2; case 10
+ .short _0206A686 - _0206A432 - 2; case 11
+ .short _0206A6B6 - _0206A432 - 2; case 12
+ .short _0206A6E8 - _0206A432 - 2; case 13
+ .short _0206A718 - _0206A432 - 2; case 14
+ .short _0206A748 - _0206A432 - 2; case 15
+ .short _0206A778 - _0206A432 - 2; case 16
+ .short _0206A7A8 - _0206A432 - 2; case 17
+ .short _0206A7D8 - _0206A432 - 2; case 18
+ .short _0206A80A - _0206A432 - 2; case 19
+ .short _0206A83A - _0206A432 - 2; case 20
+ .short _0206A86A - _0206A432 - 2; case 21
+ .short _0206A89A - _0206A432 - 2; case 22
+ .short _0206A8CA - _0206A432 - 2; case 23
+ .short _0206A472 - _0206A432 - 2; case 24
+ .short _0206A4A4 - _0206A432 - 2; case 25
+ .short _0206A4D4 - _0206A432 - 2; case 26
+ .short _0206A504 - _0206A432 - 2; case 27
+ .short _0206A534 - _0206A432 - 2; case 28
+ .short _0206A564 - _0206A432 - 2; case 29
+ .short _0206A594 - _0206A432 - 2; case 30
+ .short _0206A5C6 - _0206A432 - 2; case 31
+_0206A472:
+ add r0, #0x8
+ cmp r2, #0x3
+ bls _0206A47A
+_0206A478:
+ b _0206A8F8
+_0206A47A:
+ add r2, r2, r2
+ add r2, pc
+ ldrh r2, [r2, #0x6]
+ lsl r2, r2, #0x10
+ asr r2, r2, #0x10
+ add pc, r2
+_0206A486: ; jump table (using 16-bit offset)
+ .short _0206A48E - _0206A486 - 2; case 0
+ .short _0206A492 - _0206A486 - 2; case 1
+ .short _0206A498 - _0206A486 - 2; case 2
+ .short _0206A49E - _0206A486 - 2; case 3
+_0206A48E:
+ add r1, r0, #0x0
+ b _0206A8F8
+_0206A492:
+ add r1, r0, #0x0
+ add r1, #0x20
+ b _0206A8F8
+_0206A498:
+ add r1, r0, #0x0
+ add r1, #0x40
+ b _0206A8F8
+_0206A49E:
+ add r1, r0, #0x0
+ add r1, #0x60
+ b _0206A8F8
+_0206A4A4:
+ add r0, #0x8
+ cmp r2, #0x3
+ bhi _0206A59A
+ add r2, r2, r2
+ add r2, pc
+ ldrh r2, [r2, #0x6]
+ lsl r2, r2, #0x10
+ asr r2, r2, #0x10
+ add pc, r2
+_0206A4B6: ; jump table (using 16-bit offset)
+ .short _0206A4BE - _0206A4B6 - 2; case 0
+ .short _0206A4C2 - _0206A4B6 - 2; case 1
+ .short _0206A4C8 - _0206A4B6 - 2; case 2
+ .short _0206A4CE - _0206A4B6 - 2; case 3
+_0206A4BE:
+ add r1, r0, #0x0
+ b _0206A8F8
+_0206A4C2:
+ add r1, r0, #0x0
+ add r1, #0x20
+ b _0206A8F8
+_0206A4C8:
+ add r1, r0, #0x0
+ add r1, #0x60
+ b _0206A8F8
+_0206A4CE:
+ add r1, r0, #0x0
+ add r1, #0x40
+ b _0206A8F8
+_0206A4D4:
+ add r0, #0x8
+ cmp r2, #0x3
+ bhi _0206A59A
+ add r2, r2, r2
+ add r2, pc
+ ldrh r2, [r2, #0x6]
+ lsl r2, r2, #0x10
+ asr r2, r2, #0x10
+ add pc, r2
+_0206A4E6: ; jump table (using 16-bit offset)
+ .short _0206A4EE - _0206A4E6 - 2; case 0
+ .short _0206A4F2 - _0206A4E6 - 2; case 1
+ .short _0206A4F8 - _0206A4E6 - 2; case 2
+ .short _0206A4FE - _0206A4E6 - 2; case 3
+_0206A4EE:
+ add r1, r0, #0x0
+ b _0206A8F8
+_0206A4F2:
+ add r1, r0, #0x0
+ add r1, #0x40
+ b _0206A8F8
+_0206A4F8:
+ add r1, r0, #0x0
+ add r1, #0x20
+ b _0206A8F8
+_0206A4FE:
+ add r1, r0, #0x0
+ add r1, #0x60
+ b _0206A8F8
+_0206A504:
+ add r0, #0x8
+ cmp r2, #0x3
+ bhi _0206A59A
+ add r2, r2, r2
+ add r2, pc
+ ldrh r2, [r2, #0x6]
+ lsl r2, r2, #0x10
+ asr r2, r2, #0x10
+ add pc, r2
+_0206A516: ; jump table (using 16-bit offset)
+ .short _0206A51E - _0206A516 - 2; case 0
+ .short _0206A522 - _0206A516 - 2; case 1
+ .short _0206A528 - _0206A516 - 2; case 2
+ .short _0206A52E - _0206A516 - 2; case 3
+_0206A51E:
+ add r1, r0, #0x0
+ b _0206A8F8
+_0206A522:
+ add r1, r0, #0x0
+ add r1, #0x60
+ b _0206A8F8
+_0206A528:
+ add r1, r0, #0x0
+ add r1, #0x20
+ b _0206A8F8
+_0206A52E:
+ add r1, r0, #0x0
+ add r1, #0x40
+ b _0206A8F8
+_0206A534:
+ add r0, #0x8
+ cmp r2, #0x3
+ bhi _0206A59A
+ add r2, r2, r2
+ add r2, pc
+ ldrh r2, [r2, #0x6]
+ lsl r2, r2, #0x10
+ asr r2, r2, #0x10
+ add pc, r2
+_0206A546: ; jump table (using 16-bit offset)
+ .short _0206A54E - _0206A546 - 2; case 0
+ .short _0206A552 - _0206A546 - 2; case 1
+ .short _0206A558 - _0206A546 - 2; case 2
+ .short _0206A55E - _0206A546 - 2; case 3
+_0206A54E:
+ add r1, r0, #0x0
+ b _0206A8F8
+_0206A552:
+ add r1, r0, #0x0
+ add r1, #0x40
+ b _0206A8F8
+_0206A558:
+ add r1, r0, #0x0
+ add r1, #0x60
+ b _0206A8F8
+_0206A55E:
+ add r1, r0, #0x0
+ add r1, #0x20
+ b _0206A8F8
+_0206A564:
+ add r0, #0x8
+ cmp r2, #0x3
+ bhi _0206A59A
+ add r2, r2, r2
+ add r2, pc
+ ldrh r2, [r2, #0x6]
+ lsl r2, r2, #0x10
+ asr r2, r2, #0x10
+ add pc, r2
+_0206A576: ; jump table (using 16-bit offset)
+ .short _0206A57E - _0206A576 - 2; case 0
+ .short _0206A582 - _0206A576 - 2; case 1
+ .short _0206A588 - _0206A576 - 2; case 2
+ .short _0206A58E - _0206A576 - 2; case 3
+_0206A57E:
+ add r1, r0, #0x0
+ b _0206A8F8
+_0206A582:
+ add r1, r0, #0x0
+ add r1, #0x60
+ b _0206A8F8
+_0206A588:
+ add r1, r0, #0x0
+ add r1, #0x40
+ b _0206A8F8
+_0206A58E:
+ add r1, r0, #0x0
+ add r1, #0x20
+ b _0206A8F8
+_0206A594:
+ add r0, #0x8
+ cmp r2, #0x3
+ bls _0206A59C
+_0206A59A:
+ b _0206A8F8
+_0206A59C:
+ add r2, r2, r2
+ add r2, pc
+ ldrh r2, [r2, #0x6]
+ lsl r2, r2, #0x10
+ asr r2, r2, #0x10
+ add pc, r2
+_0206A5A8: ; jump table (using 16-bit offset)
+ .short _0206A5B0 - _0206A5A8 - 2; case 0
+ .short _0206A5B6 - _0206A5A8 - 2; case 1
+ .short _0206A5BA - _0206A5A8 - 2; case 2
+ .short _0206A5C0 - _0206A5A8 - 2; case 3
+_0206A5B0:
+ add r1, r0, #0x0
+ add r1, #0x20
+ b _0206A8F8
+_0206A5B6:
+ add r1, r0, #0x0
+ b _0206A8F8
+_0206A5BA:
+ add r1, r0, #0x0
+ add r1, #0x40
+ b _0206A8F8
+_0206A5C0:
+ add r1, r0, #0x0
+ add r1, #0x60
+ b _0206A8F8
+_0206A5C6:
+ add r0, #0x8
+ cmp r2, #0x3
+ bhi _0206A6BC
+ add r2, r2, r2
+ add r2, pc
+ ldrh r2, [r2, #0x6]
+ lsl r2, r2, #0x10
+ asr r2, r2, #0x10
+ add pc, r2
+_0206A5D8: ; jump table (using 16-bit offset)
+ .short _0206A5E0 - _0206A5D8 - 2; case 0
+ .short _0206A5E6 - _0206A5D8 - 2; case 1
+ .short _0206A5EA - _0206A5D8 - 2; case 2
+ .short _0206A5F0 - _0206A5D8 - 2; case 3
+_0206A5E0:
+ add r1, r0, #0x0
+ add r1, #0x20
+ b _0206A8F8
+_0206A5E6:
+ add r1, r0, #0x0
+ b _0206A8F8
+_0206A5EA:
+ add r1, r0, #0x0
+ add r1, #0x60
+ b _0206A8F8
+_0206A5F0:
+ add r1, r0, #0x0
+ add r1, #0x40
+ b _0206A8F8
+_0206A5F6:
+ add r0, #0x8
+ cmp r2, #0x3
+ bhi _0206A6BC
+ add r2, r2, r2
+ add r2, pc
+ ldrh r2, [r2, #0x6]
+ lsl r2, r2, #0x10
+ asr r2, r2, #0x10
+ add pc, r2
+_0206A608: ; jump table (using 16-bit offset)
+ .short _0206A610 - _0206A608 - 2; case 0
+ .short _0206A616 - _0206A608 - 2; case 1
+ .short _0206A61A - _0206A608 - 2; case 2
+ .short _0206A620 - _0206A608 - 2; case 3
+_0206A610:
+ add r1, r0, #0x0
+ add r1, #0x40
+ b _0206A8F8
+_0206A616:
+ add r1, r0, #0x0
+ b _0206A8F8
+_0206A61A:
+ add r1, r0, #0x0
+ add r1, #0x20
+ b _0206A8F8
+_0206A620:
+ add r1, r0, #0x0
+ add r1, #0x60
+ b _0206A8F8
+_0206A626:
+ add r0, #0x8
+ cmp r2, #0x3
+ bhi _0206A6BC
+ add r2, r2, r2
+ add r2, pc
+ ldrh r2, [r2, #0x6]
+ lsl r2, r2, #0x10
+ asr r2, r2, #0x10
+ add pc, r2
+_0206A638: ; jump table (using 16-bit offset)
+ .short _0206A640 - _0206A638 - 2; case 0
+ .short _0206A646 - _0206A638 - 2; case 1
+ .short _0206A64A - _0206A638 - 2; case 2
+ .short _0206A650 - _0206A638 - 2; case 3
+_0206A640:
+ add r1, r0, #0x0
+ add r1, #0x60
+ b _0206A8F8
+_0206A646:
+ add r1, r0, #0x0
+ b _0206A8F8
+_0206A64A:
+ add r1, r0, #0x0
+ add r1, #0x20
+ b _0206A8F8
+_0206A650:
+ add r1, r0, #0x0
+ add r1, #0x40
+ b _0206A8F8
+_0206A656:
+ add r0, #0x8
+ cmp r2, #0x3
+ bhi _0206A6BC
+ add r2, r2, r2
+ add r2, pc
+ ldrh r2, [r2, #0x6]
+ lsl r2, r2, #0x10
+ asr r2, r2, #0x10
+ add pc, r2
+_0206A668: ; jump table (using 16-bit offset)
+ .short _0206A670 - _0206A668 - 2; case 0
+ .short _0206A676 - _0206A668 - 2; case 1
+ .short _0206A67A - _0206A668 - 2; case 2
+ .short _0206A680 - _0206A668 - 2; case 3
+_0206A670:
+ add r1, r0, #0x0
+ add r1, #0x40
+ b _0206A8F8
+_0206A676:
+ add r1, r0, #0x0
+ b _0206A8F8
+_0206A67A:
+ add r1, r0, #0x0
+ add r1, #0x60
+ b _0206A8F8
+_0206A680:
+ add r1, r0, #0x0
+ add r1, #0x20
+ b _0206A8F8
+_0206A686:
+ add r0, #0x8
+ cmp r2, #0x3
+ bhi _0206A6BC
+ add r2, r2, r2
+ add r2, pc
+ ldrh r2, [r2, #0x6]
+ lsl r2, r2, #0x10
+ asr r2, r2, #0x10
+ add pc, r2
+_0206A698: ; jump table (using 16-bit offset)
+ .short _0206A6A0 - _0206A698 - 2; case 0
+ .short _0206A6A6 - _0206A698 - 2; case 1
+ .short _0206A6AA - _0206A698 - 2; case 2
+ .short _0206A6B0 - _0206A698 - 2; case 3
+_0206A6A0:
+ add r1, r0, #0x0
+ add r1, #0x60
+ b _0206A8F8
+_0206A6A6:
+ add r1, r0, #0x0
+ b _0206A8F8
+_0206A6AA:
+ add r1, r0, #0x0
+ add r1, #0x40
+ b _0206A8F8
+_0206A6B0:
+ add r1, r0, #0x0
+ add r1, #0x20
+ b _0206A8F8
+_0206A6B6:
+ add r0, #0x8
+ cmp r2, #0x3
+ bls _0206A6BE
+_0206A6BC:
+ b _0206A8F8
+_0206A6BE:
+ add r2, r2, r2
+ add r2, pc
+ ldrh r2, [r2, #0x6]
+ lsl r2, r2, #0x10
+ asr r2, r2, #0x10
+ add pc, r2
+_0206A6CA: ; jump table (using 16-bit offset)
+ .short _0206A6D2 - _0206A6CA - 2; case 0
+ .short _0206A6D8 - _0206A6CA - 2; case 1
+ .short _0206A6DE - _0206A6CA - 2; case 2
+ .short _0206A6E2 - _0206A6CA - 2; case 3
+_0206A6D2:
+ add r1, r0, #0x0
+ add r1, #0x20
+ b _0206A8F8
+_0206A6D8:
+ add r1, r0, #0x0
+ add r1, #0x40
+ b _0206A8F8
+_0206A6DE:
+ add r1, r0, #0x0
+ b _0206A8F8
+_0206A6E2:
+ add r1, r0, #0x0
+ add r1, #0x60
+ b _0206A8F8
+_0206A6E8:
+ add r0, #0x8
+ cmp r2, #0x3
+ bhi _0206A7DE
+ add r2, r2, r2
+ add r2, pc
+ ldrh r2, [r2, #0x6]
+ lsl r2, r2, #0x10
+ asr r2, r2, #0x10
+ add pc, r2
+_0206A6FA: ; jump table (using 16-bit offset)
+ .short _0206A702 - _0206A6FA - 2; case 0
+ .short _0206A708 - _0206A6FA - 2; case 1
+ .short _0206A70E - _0206A6FA - 2; case 2
+ .short _0206A712 - _0206A6FA - 2; case 3
+_0206A702:
+ add r1, r0, #0x0
+ add r1, #0x20
+ b _0206A8F8
+_0206A708:
+ add r1, r0, #0x0
+ add r1, #0x60
+ b _0206A8F8
+_0206A70E:
+ add r1, r0, #0x0
+ b _0206A8F8
+_0206A712:
+ add r1, r0, #0x0
+ add r1, #0x40
+ b _0206A8F8
+_0206A718:
+ add r0, #0x8
+ cmp r2, #0x3
+ bhi _0206A7DE
+ add r2, r2, r2
+ add r2, pc
+ ldrh r2, [r2, #0x6]
+ lsl r2, r2, #0x10
+ asr r2, r2, #0x10
+ add pc, r2
+_0206A72A: ; jump table (using 16-bit offset)
+ .short _0206A732 - _0206A72A - 2; case 0
+ .short _0206A738 - _0206A72A - 2; case 1
+ .short _0206A73E - _0206A72A - 2; case 2
+ .short _0206A742 - _0206A72A - 2; case 3
+_0206A732:
+ add r1, r0, #0x0
+ add r1, #0x40
+ b _0206A8F8
+_0206A738:
+ add r1, r0, #0x0
+ add r1, #0x20
+ b _0206A8F8
+_0206A73E:
+ add r1, r0, #0x0
+ b _0206A8F8
+_0206A742:
+ add r1, r0, #0x0
+ add r1, #0x60
+ b _0206A8F8
+_0206A748:
+ add r0, #0x8
+ cmp r2, #0x3
+ bhi _0206A7DE
+ add r2, r2, r2
+ add r2, pc
+ ldrh r2, [r2, #0x6]
+ lsl r2, r2, #0x10
+ asr r2, r2, #0x10
+ add pc, r2
+_0206A75A: ; jump table (using 16-bit offset)
+ .short _0206A762 - _0206A75A - 2; case 0
+ .short _0206A768 - _0206A75A - 2; case 1
+ .short _0206A76E - _0206A75A - 2; case 2
+ .short _0206A772 - _0206A75A - 2; case 3
+_0206A762:
+ add r1, r0, #0x0
+ add r1, #0x60
+ b _0206A8F8
+_0206A768:
+ add r1, r0, #0x0
+ add r1, #0x20
+ b _0206A8F8
+_0206A76E:
+ add r1, r0, #0x0
+ b _0206A8F8
+_0206A772:
+ add r1, r0, #0x0
+ add r1, #0x40
+ b _0206A8F8
+_0206A778:
+ add r0, #0x8
+ cmp r2, #0x3
+ bhi _0206A7DE
+ add r2, r2, r2
+ add r2, pc
+ ldrh r2, [r2, #0x6]
+ lsl r2, r2, #0x10
+ asr r2, r2, #0x10
+ add pc, r2
+_0206A78A: ; jump table (using 16-bit offset)
+ .short _0206A792 - _0206A78A - 2; case 0
+ .short _0206A798 - _0206A78A - 2; case 1
+ .short _0206A79E - _0206A78A - 2; case 2
+ .short _0206A7A2 - _0206A78A - 2; case 3
+_0206A792:
+ add r1, r0, #0x0
+ add r1, #0x40
+ b _0206A8F8
+_0206A798:
+ add r1, r0, #0x0
+ add r1, #0x60
+ b _0206A8F8
+_0206A79E:
+ add r1, r0, #0x0
+ b _0206A8F8
+_0206A7A2:
+ add r1, r0, #0x0
+ add r1, #0x20
+ b _0206A8F8
+_0206A7A8:
+ add r0, #0x8
+ cmp r2, #0x3
+ bhi _0206A7DE
+ add r2, r2, r2
+ add r2, pc
+ ldrh r2, [r2, #0x6]
+ lsl r2, r2, #0x10
+ asr r2, r2, #0x10
+ add pc, r2
+_0206A7BA: ; jump table (using 16-bit offset)
+ .short _0206A7C2 - _0206A7BA - 2; case 0
+ .short _0206A7C8 - _0206A7BA - 2; case 1
+ .short _0206A7CE - _0206A7BA - 2; case 2
+ .short _0206A7D2 - _0206A7BA - 2; case 3
+_0206A7C2:
+ add r1, r0, #0x0
+ add r1, #0x60
+ b _0206A8F8
+_0206A7C8:
+ add r1, r0, #0x0
+ add r1, #0x40
+ b _0206A8F8
+_0206A7CE:
+ add r1, r0, #0x0
+ b _0206A8F8
+_0206A7D2:
+ add r1, r0, #0x0
+ add r1, #0x20
+ b _0206A8F8
+_0206A7D8:
+ add r0, #0x8
+ cmp r2, #0x3
+ bls _0206A7E0
+_0206A7DE:
+ b _0206A8F8
+_0206A7E0:
+ add r2, r2, r2
+ add r2, pc
+ ldrh r2, [r2, #0x6]
+ lsl r2, r2, #0x10
+ asr r2, r2, #0x10
+ add pc, r2
+_0206A7EC: ; jump table (using 16-bit offset)
+ .short _0206A7F4 - _0206A7EC - 2; case 0
+ .short _0206A7FA - _0206A7EC - 2; case 1
+ .short _0206A800 - _0206A7EC - 2; case 2
+ .short _0206A806 - _0206A7EC - 2; case 3
+_0206A7F4:
+ add r1, r0, #0x0
+ add r1, #0x20
+ b _0206A8F8
+_0206A7FA:
+ add r1, r0, #0x0
+ add r1, #0x40
+ b _0206A8F8
+_0206A800:
+ add r1, r0, #0x0
+ add r1, #0x60
+ b _0206A8F8
+_0206A806:
+ add r1, r0, #0x0
+ b _0206A8F8
+_0206A80A:
+ add r0, #0x8
+ cmp r2, #0x3
+ bhi _0206A8F8
+ add r2, r2, r2
+ add r2, pc
+ ldrh r2, [r2, #0x6]
+ lsl r2, r2, #0x10
+ asr r2, r2, #0x10
+ add pc, r2
+_0206A81C: ; jump table (using 16-bit offset)
+ .short _0206A824 - _0206A81C - 2; case 0
+ .short _0206A82A - _0206A81C - 2; case 1
+ .short _0206A830 - _0206A81C - 2; case 2
+ .short _0206A836 - _0206A81C - 2; case 3
+_0206A824:
+ add r1, r0, #0x0
+ add r1, #0x20
+ b _0206A8F8
+_0206A82A:
+ add r1, r0, #0x0
+ add r1, #0x60
+ b _0206A8F8
+_0206A830:
+ add r1, r0, #0x0
+ add r1, #0x40
+ b _0206A8F8
+_0206A836:
+ add r1, r0, #0x0
+ b _0206A8F8
+_0206A83A:
+ add r0, #0x8
+ cmp r2, #0x3
+ bhi _0206A8F8
+ add r2, r2, r2
+ add r2, pc
+ ldrh r2, [r2, #0x6]
+ lsl r2, r2, #0x10
+ asr r2, r2, #0x10
+ add pc, r2
+_0206A84C: ; jump table (using 16-bit offset)
+ .short _0206A854 - _0206A84C - 2; case 0
+ .short _0206A85A - _0206A84C - 2; case 1
+ .short _0206A860 - _0206A84C - 2; case 2
+ .short _0206A866 - _0206A84C - 2; case 3
+_0206A854:
+ add r1, r0, #0x0
+ add r1, #0x40
+ b _0206A8F8
+_0206A85A:
+ add r1, r0, #0x0
+ add r1, #0x20
+ b _0206A8F8
+_0206A860:
+ add r1, r0, #0x0
+ add r1, #0x60
+ b _0206A8F8
+_0206A866:
+ add r1, r0, #0x0
+ b _0206A8F8
+_0206A86A:
+ add r0, #0x8
+ cmp r2, #0x3
+ bhi _0206A8F8
+ add r2, r2, r2
+ add r2, pc
+ ldrh r2, [r2, #0x6]
+ lsl r2, r2, #0x10
+ asr r2, r2, #0x10
+ add pc, r2
+_0206A87C: ; jump table (using 16-bit offset)
+ .short _0206A884 - _0206A87C - 2; case 0
+ .short _0206A88A - _0206A87C - 2; case 1
+ .short _0206A890 - _0206A87C - 2; case 2
+ .short _0206A896 - _0206A87C - 2; case 3
+_0206A884:
+ add r1, r0, #0x0
+ add r1, #0x60
+ b _0206A8F8
+_0206A88A:
+ add r1, r0, #0x0
+ add r1, #0x20
+ b _0206A8F8
+_0206A890:
+ add r1, r0, #0x0
+ add r1, #0x40
+ b _0206A8F8
+_0206A896:
+ add r1, r0, #0x0
+ b _0206A8F8
+_0206A89A:
+ add r0, #0x8
+ cmp r2, #0x3
+ bhi _0206A8F8
+ add r2, r2, r2
+ add r2, pc
+ ldrh r2, [r2, #0x6]
+ lsl r2, r2, #0x10
+ asr r2, r2, #0x10
+ add pc, r2
+_0206A8AC: ; jump table (using 16-bit offset)
+ .short _0206A8B4 - _0206A8AC - 2; case 0
+ .short _0206A8BA - _0206A8AC - 2; case 1
+ .short _0206A8C0 - _0206A8AC - 2; case 2
+ .short _0206A8C6 - _0206A8AC - 2; case 3
+_0206A8B4:
+ add r1, r0, #0x0
+ add r1, #0x40
+ b _0206A8F8
+_0206A8BA:
+ add r1, r0, #0x0
+ add r1, #0x60
+ b _0206A8F8
+_0206A8C0:
+ add r1, r0, #0x0
+ add r1, #0x20
+ b _0206A8F8
+_0206A8C6:
+ add r1, r0, #0x0
+ b _0206A8F8
+_0206A8CA:
+ add r0, #0x8
+ cmp r2, #0x3
+ bhi _0206A8F8
+ add r2, r2, r2
+ add r2, pc
+ ldrh r2, [r2, #0x6]
+ lsl r2, r2, #0x10
+ asr r2, r2, #0x10
+ add pc, r2
+_0206A8DC: ; jump table (using 16-bit offset)
+ .short _0206A8E4 - _0206A8DC - 2; case 0
+ .short _0206A8EA - _0206A8DC - 2; case 1
+ .short _0206A8F0 - _0206A8DC - 2; case 2
+ .short _0206A8F6 - _0206A8DC - 2; case 3
+_0206A8E4:
+ add r1, r0, #0x0
+ add r1, #0x60
+ b _0206A8F8
+_0206A8EA:
+ add r1, r0, #0x0
+ add r1, #0x40
+ b _0206A8F8
+_0206A8F0:
+ add r1, r0, #0x0
+ add r1, #0x20
+ b _0206A8F8
+_0206A8F6:
+ add r1, r0, #0x0
+_0206A8F8:
+ add r0, r1, #0x0
+ pop {r3, pc}
+
+ thumb_func_start FUN_0206A8FC
+FUN_0206A8FC: ; 0x0206A8FC
+ ldr r3, _0206A928 ; =0x00000182
+ cmp r0, r3
+ beq _0206A90C
+ add r2, r3, #0x0
+ add r2, #0x1b
+ cmp r0, r2
+ beq _0206A91A
+ bx lr
+_0206A90C:
+ cmp r1, #0x0
+ beq _0206A926
+ cmp r1, #0x3
+ bgt _0206A926
+ add r3, #0x6d
+ add r0, r1, r3
+ bx lr
+_0206A91A:
+ cmp r1, #0x0
+ beq _0206A926
+ cmp r1, #0x2
+ bgt _0206A926
+ add r3, #0x70
+ add r0, r1, r3
+_0206A926:
+ bx lr
+ .balign 4
+_0206A928: .word 0x00000182
+
+ thumb_func_start FUN_0206A92C
+FUN_0206A92C: ; 0x0206A92C
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ mov r4, #0x1
+ cmp r5, #0x20
+ blt _0206A93A
+ bl ErrorHandling
+_0206A93A:
+ mov r0, #0x0
+ cmp r5, #0x0
+ ble _0206A948
+_0206A940:
+ add r0, r0, #0x1
+ lsl r4, r4, #0x1
+ cmp r0, r5
+ blt _0206A940
+_0206A948:
+ add r0, r4, #0x0
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_0206A94C
+FUN_0206A94C: ; 0x0206A94C
+ mov r3, #0x1
+ mov r2, #0x0
+_0206A950:
+ add r1, r0, #0x0
+ tst r1, r3
+ bne _0206A95E
+ add r2, r2, #0x1
+ lsl r3, r3, #0x1
+ cmp r2, #0x20
+ blt _0206A950
+_0206A95E:
+ add r0, r2, #0x0
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_0206A964
+FUN_0206A964: ; 0x0206A964
+ ldr r3, _0206A980 ; =0x020F7EF2
+ mov r2, #0x0
+_0206A968:
+ ldrh r1, [r3, #0x0]
+ cmp r0, r1
+ bne _0206A972
+ mov r0, #0x1
+ bx lr
+_0206A972:
+ add r2, r2, #0x1
+ add r3, r3, #0x2
+ cmp r2, #0x12
+ blo _0206A968
+ mov r0, #0x0
+ bx lr
+ nop
+_0206A980: .word 0x020F7EF2
+
+ thumb_func_start FUN_0206A984
+FUN_0206A984: ; 0x0206A984
+ cmp r0, #0x12
+ blo _0206A98A
+ mov r0, #0x0
+_0206A98A:
+ lsl r1, r0, #0x1
+ ldr r0, _0206A994 ; =0x020F7EF2
+ ldrh r0, [r0, r1]
+ bx lr
+ nop
+_0206A994: .word 0x020F7EF2
+
+ thumb_func_start FUN_0206A998
+FUN_0206A998: ; 0x0206A998
+ push {r3, lr}
+ mov r1, #0x5
+ mov r2, #0x0
+ bl FUN_020671BC
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ bl FUN_0206A964
+ pop {r3, pc}
+
+ thumb_func_start FUN_0206A9AC
+FUN_0206A9AC: ; 0x0206A9AC
+ push {r3-r7, lr}
+ sub sp, #0x10
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ add r0, r4, #0x0
+ add r6, r2, #0x0
+ bl FUN_020239BC
+ str r0, [sp, #0x0]
+ add r0, r5, #0x0
+ mov r1, #0x7
+ mov r2, #0x0
+ bl FUN_020672BC
+ str r0, [sp, #0x4]
+ add r0, r4, #0x0
+ bl FUN_020239CC
+ str r0, [sp, #0x8]
+ add r0, r5, #0x0
+ mov r1, #0x9c
+ mov r2, #0x0
+ bl FUN_020672BC
+ str r0, [sp, #0xc]
+ add r0, r4, #0x0
+ add r1, r6, #0x0
+ bl FUN_020239A0
+ add r7, r0, #0x0
+ mov r0, #0x8
+ add r1, r6, #0x0
+ bl FUN_020219F4
+ add r6, r0, #0x0
+ add r0, r5, #0x0
+ mov r1, #0x90
+ add r2, r6, #0x0
+ mov r4, #0x0
+ bl FUN_020672BC
+ ldr r1, [sp, #0x0]
+ ldr r0, [sp, #0x4]
+ cmp r1, r0
+ bne _0206AA1C
+ ldr r1, [sp, #0x8]
+ ldr r0, [sp, #0xc]
+ cmp r1, r0
+ bne _0206AA1C
+ add r0, r7, #0x0
+ add r1, r6, #0x0
+ bl FUN_02021CE0
+ cmp r0, #0x0
+ bne _0206AA1C
+ mov r4, #0x1
+_0206AA1C:
+ add r0, r6, #0x0
+ bl FUN_02021A20
+ add r0, r7, #0x0
+ bl FUN_02021A20
+ add r0, r4, #0x0
+ add sp, #0x10
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_0206AA30
+FUN_0206AA30: ; 0x0206AA30
+ push {r3, lr}
+ cmp r0, #0x3f
+ bgt _0206AA48
+ bge _0206AA6C
+ cmp r0, #0x1
+ bgt _0206AA74
+ cmp r0, #0x0
+ blt _0206AA74
+ beq _0206AA82
+ cmp r0, #0x1
+ beq _0206AA82
+ b _0206AA74
+_0206AA48:
+ cmp r0, #0x5a
+ bgt _0206AA50
+ beq _0206AA70
+ b _0206AA74
+_0206AA50:
+ add r1, r0, #0x0
+ sub r1, #0x5b
+ cmp r1, #0x3
+ bhi _0206AA74
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #0x6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_0206AA64: ; jump table (using 16-bit offset)
+ .short _0206AA70 - _0206AA64 - 2; case 0
+ .short _0206AA70 - _0206AA64 - 2; case 1
+ .short _0206AA70 - _0206AA64 - 2; case 2
+ .short _0206AA70 - _0206AA64 - 2; case 3
+_0206AA6C:
+ mov r0, #0x2
+ pop {r3, pc}
+_0206AA70:
+ sub r0, #0x57
+ pop {r3, pc}
+_0206AA74:
+ bl FUN_0206AE00
+ cmp r0, #0x1
+ bne _0206AA80
+ mov r0, #0x1
+ pop {r3, pc}
+_0206AA80:
+ mov r0, #0x0
+_0206AA82:
+ pop {r3, pc}
+
+ thumb_func_start FUN_0206AA84
+FUN_0206AA84: ; 0x0206AA84
+ push {r3-r4, lr}
+ sub sp, #0x1c
+ add r4, r0, #0x0
+ mov r0, #0x0
+ add r1, sp, #0x0
+ strb r0, [r1, #0x0]
+ add r1, sp, #0x0
+ add r1, #0x1
+ mov r2, #0x18
+ blx MIi_CpuClearFast
+ add r0, r4, #0x0
+ mov r1, #0xa1
+ add r2, sp, #0x0
+ bl FUN_02067830
+ add r2, sp, #0x0
+ add r0, r4, #0x0
+ mov r1, #0xaa
+ add r2, #0x1
+ bl FUN_02067830
+ add sp, #0x1c
+ pop {r3-r4, pc}
+
+ thumb_func_start FUN_0206AAB4
+FUN_0206AAB4: ; 0x0206AAB4
+ push {r3-r7, lr}
+ sub sp, #0x8
+ add r5, r0, #0x0
+ bl FUN_02066A6C
+ mov r4, #0x0
+ str r0, [sp, #0x0]
+ add r7, r4, #0x0
+ add r6, sp, #0x4
+_0206AAC6:
+ add r1, r4, #0x0
+ add r0, r5, #0x0
+ add r1, #0x36
+ add r2, r7, #0x0
+ bl FUN_020672BC
+ cmp r0, #0x0
+ beq _0206AAF0
+ add r1, r4, #0x0
+ add r0, r5, #0x0
+ add r1, #0x42
+ mov r2, #0x0
+ bl FUN_020672BC
+ add r1, r4, #0x0
+ strb r0, [r6, #0x0]
+ add r0, r5, #0x0
+ add r1, #0x3a
+ add r2, sp, #0x4
+ bl FUN_02067960
+_0206AAF0:
+ add r4, r4, #0x1
+ cmp r4, #0x4
+ blt _0206AAC6
+ ldr r1, [sp, #0x0]
+ add r0, r5, #0x0
+ bl FUN_02066A94
+ add sp, #0x8
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_0206AB04
+FUN_0206AB04: ; 0x0206AB04
+ push {r3, lr}
+ mov r1, #0x75
+ lsl r1, r1, #0x6
+ mov r2, #0x0
+ str r1, [sp, #0x0]
+ mov r1, #0x9
+ add r3, r2, #0x0
+ bl FUN_02006548
+ pop {r3, pc}
+
+ thumb_func_start FUN_0206AB18
+FUN_0206AB18: ; 0x0206AB18
+ push {r4, lr}
+ sub sp, #0x10
+ add r4, r1, #0x0
+ add r1, sp, #0x0
+ bl FUN_0206ABB4
+ add r0, sp, #0x0
+ add r1, r4, #0x0
+ bl FUN_0206AB58
+ add sp, #0x10
+ pop {r4, pc}
+
+ thumb_func_start FUN_0206AB30
+FUN_0206AB30: ; 0x0206AB30
+ push {r3-r5, lr}
+ add r5, r1, #0x0
+ cmp r5, #0x3
+ bls _0206AB3A
+ mov r5, #0x3
+_0206AB3A:
+ mov r1, #0x5
+ bl FUN_0206AB18
+ lsl r0, r0, #0x18
+ lsr r4, r0, #0x18
+ mov r0, #0x14
+ mul r0, r4
+ mul r0, r5
+ mov r1, #0x64
+ blx _s32_div_f
+ add r0, r4, r0
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_0206AB58
+FUN_0206AB58: ; 0x0206AB58
+ cmp r1, #0xb
+ bhi _0206ABB0
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #0x6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_0206AB68: ; jump table (using 16-bit offset)
+ .short _0206AB80 - _0206AB68 - 2; case 0
+ .short _0206AB84 - _0206AB68 - 2; case 1
+ .short _0206AB88 - _0206AB68 - 2; case 2
+ .short _0206AB8C - _0206AB68 - 2; case 3
+ .short _0206AB90 - _0206AB68 - 2; case 4
+ .short _0206AB94 - _0206AB68 - 2; case 5
+ .short _0206AB98 - _0206AB68 - 2; case 6
+ .short _0206AB9C - _0206AB68 - 2; case 7
+ .short _0206ABA0 - _0206AB68 - 2; case 8
+ .short _0206ABA6 - _0206AB68 - 2; case 9
+ .short _0206ABAA - _0206AB68 - 2; case 10
+ .short _0206ABAE - _0206AB68 - 2; case 11
+_0206AB80:
+ ldrh r0, [r0, #0x0]
+ bx lr
+_0206AB84:
+ ldrb r0, [r0, #0x2]
+ bx lr
+_0206AB88:
+ ldrb r0, [r0, #0x3]
+ bx lr
+_0206AB8C:
+ ldrb r0, [r0, #0x4]
+ bx lr
+_0206AB90:
+ ldrb r0, [r0, #0x5]
+ bx lr
+_0206AB94:
+ ldrb r0, [r0, #0x6]
+ bx lr
+_0206AB98:
+ ldrb r0, [r0, #0x7]
+ bx lr
+_0206AB9C:
+ ldrh r0, [r0, #0x8]
+ bx lr
+_0206ABA0:
+ mov r1, #0xa
+ ldrsb r0, [r0, r1]
+ bx lr
+_0206ABA6:
+ ldrb r0, [r0, #0xb]
+ bx lr
+_0206ABAA:
+ ldrb r0, [r0, #0xc]
+ bx lr
+_0206ABAE:
+ ldrb r0, [r0, #0xd]
+_0206ABB0:
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_0206ABB4
+FUN_0206ABB4: ; 0x0206ABB4
+ ldr r3, _0206ABC0 ; =LoadFromNARC
+ add r2, r0, #0x0
+ add r0, r1, #0x0
+ mov r1, #0x9
+ bx r3
+ nop
+_0206ABC0: .word LoadFromNARC
+
+ thumb_func_start FUN_0206ABC4
+FUN_0206ABC4: ; 0x0206ABC4
+ push {r3-r7, lr}
+ sub sp, #0x48
+ str r2, [sp, #0x4]
+ ldr r2, _0206AC70 ; =0x0000022F
+ str r0, [sp, #0x0]
+ add r4, r1, #0x0
+ ldr r3, [sp, #0x4]
+ mov r0, #0x1
+ mov r1, #0x1a
+ bl FUN_0200A86C
+ str r0, [sp, #0x10]
+ add r0, r4, #0x0
+ bl FUN_02024EC0
+ bl FUN_02024EE8
+ ldr r4, [sp, #0x0]
+ str r0, [sp, #0xc]
+ add r0, r4, #0x0
+ add r5, r4, #0x0
+ mov r7, #0x0
+ str r0, [sp, #0x8]
+ add r5, #0x3c
+_0206ABF4:
+ ldr r0, [r4, #0x18]
+ cmp r0, #0x0
+ beq _0206AC48
+ add r1, sp, #0x14
+ bl FUN_0206ADE0
+ ldr r3, [sp, #0x8]
+ add r6, sp, #0x14
+ add r3, #0x28
+ mov r2, #0x6
+_0206AC08:
+ ldmia r6!, {r0-r1}
+ stmia r3!, {r0-r1}
+ sub r2, r2, #0x1
+ bne _0206AC08
+ ldr r0, [r6, #0x0]
+ str r0, [r3, #0x0]
+ add r0, sp, #0x14
+ ldrb r0, [r0, #0x1]
+ cmp r0, #0x3f
+ bne _0206AC26
+ ldr r1, [sp, #0xc]
+ add r0, r5, #0x0
+ bl StringCopy
+ b _0206AC3E
+_0206AC26:
+ ldr r0, [sp, #0x10]
+ ldr r1, [r4, #0x18]
+ bl FUN_0200A914
+ add r6, r0, #0x0
+ add r1, r5, #0x0
+ mov r2, #0x8
+ bl FUN_02021EF0
+ add r0, r6, #0x0
+ bl FUN_02021A20
+_0206AC3E:
+ ldr r0, [sp, #0x0]
+ ldr r2, [sp, #0x4]
+ add r1, r7, #0x0
+ bl FUN_0206AE0C
+_0206AC48:
+ ldr r0, [sp, #0x8]
+ add r7, r7, #0x1
+ add r0, #0x34
+ add r4, r4, #0x4
+ add r5, #0x34
+ str r0, [sp, #0x8]
+ cmp r7, #0x4
+ blt _0206ABF4
+ ldr r0, [sp, #0x0]
+ ldr r1, [r0, #0x0]
+ ldr r0, [sp, #0x24]
+ orr r1, r0
+ ldr r0, [sp, #0x0]
+ str r1, [r0, #0x0]
+ ldr r0, [sp, #0x10]
+ bl FUN_0200A8B8
+ add sp, #0x48
+ pop {r3-r7, pc}
+ nop
+_0206AC70: .word 0x0000022F
+
+ thumb_func_start FUN_0206AC74
+FUN_0206AC74: ; 0x0206AC74
+ push {r4-r5, lr}
+ sub sp, #0x34
+ add r5, r1, #0x0
+ add r1, sp, #0x0
+ bl FUN_0206ADE0
+ cmp r5, #0x9
+ bhi _0206ACCC
+ add r0, r5, r5
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0206AC90: ; jump table (using 16-bit offset)
+ .short _0206ACA4 - _0206AC90 - 2; case 0
+ .short _0206ACAA - _0206AC90 - 2; case 1
+ .short _0206ACB0 - _0206AC90 - 2; case 2
+ .short _0206ACB6 - _0206AC90 - 2; case 3
+ .short _0206ACBC - _0206AC90 - 2; case 4
+ .short _0206ACBC - _0206AC90 - 2; case 5
+ .short _0206ACBC - _0206AC90 - 2; case 6
+ .short _0206ACBC - _0206AC90 - 2; case 7
+ .short _0206ACC6 - _0206AC90 - 2; case 8
+ .short _0206ACCA - _0206AC90 - 2; case 9
+_0206ACA4:
+ add r0, sp, #0x0
+ ldrb r4, [r0, #0x0]
+ b _0206ACCC
+_0206ACAA:
+ add r0, sp, #0x0
+ ldrb r4, [r0, #0x1]
+ b _0206ACCC
+_0206ACB0:
+ add r0, sp, #0x0
+ ldrb r4, [r0, #0x2]
+ b _0206ACCC
+_0206ACB6:
+ add r0, sp, #0x0
+ ldrb r4, [r0, #0x3]
+ b _0206ACCC
+_0206ACBC:
+ sub r0, r5, #0x4
+ lsl r1, r0, #0x1
+ add r0, sp, #0x4
+ ldrh r4, [r0, r1]
+ b _0206ACCC
+_0206ACC6:
+ ldr r4, [sp, #0xc]
+ b _0206ACCC
+_0206ACCA:
+ ldr r4, [sp, #0x10]
+_0206ACCC:
+ add r0, r4, #0x0
+ add sp, #0x34
+ pop {r4-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_0206ACD4
+FUN_0206ACD4: ; 0x0206ACD4
+ push {r4-r7, lr}
+ sub sp, #0x14
+ add r5, r0, #0x0
+ mov r0, #0x0
+ str r0, [sp, #0x4]
+ add r7, r1, #0x0
+ ldr r1, [sp, #0x4]
+ mov r0, #0x3b
+ add r4, r2, #0x0
+ bl LoadFromNARC_7
+ add r6, r0, #0x0
+ mov r0, #0x2
+ str r0, [sp, #0x0]
+ add r0, sp, #0xc
+ mov r1, #0x89
+ mov r2, #0x0
+ lsl r3, r5, #0x1
+ bl FUN_02006548
+ mov r0, #0x3b
+ add r1, r4, #0x0
+ bl FUN_02006670
+ add r4, sp, #0xc
+ ldrh r2, [r4, #0x0]
+ str r0, [sp, #0x8]
+ cmp r2, r6
+ beq _0206AD40
+_0206AD0E:
+ add r0, sp, #0xc
+ add r0, #0x2
+ str r0, [sp, #0x0]
+ ldr r0, [sp, #0x8]
+ mov r1, #0x0
+ mov r3, #0x4
+ bl FUN_02006814
+ ldrh r1, [r4, #0x2]
+ cmp r1, r5
+ bne _0206AD30
+ ldrh r0, [r4, #0x4]
+ cmp r0, r7
+ bne _0206AD30
+ mov r0, #0x1
+ str r0, [sp, #0x4]
+ b _0206AD40
+_0206AD30:
+ cmp r1, r5
+ bne _0206AD40
+ ldrh r0, [r4, #0x0]
+ add r0, r0, #0x4
+ strh r0, [r4, #0x0]
+ ldrh r2, [r4, #0x0]
+ cmp r2, r6
+ bne _0206AD0E
+_0206AD40:
+ ldr r0, [sp, #0x8]
+ bl FUN_020066F4
+ ldr r0, [sp, #0x4]
+ add sp, #0x14
+ pop {r4-r7, pc}
+
+ thumb_func_start FUN_0206AD4C
+FUN_0206AD4C: ; 0x0206AD4C
+ push {r3-r7, lr}
+ sub sp, #0x18
+ add r6, r0, #0x0
+ add r7, r1, #0x0
+ mov r0, #0x3b
+ mov r1, #0x0
+ str r2, [sp, #0x4]
+ str r3, [sp, #0x8]
+ bl LoadFromNARC_7
+ add r5, r0, #0x0
+ mov r0, #0x2
+ str r0, [sp, #0x0]
+ add r0, sp, #0x10
+ mov r1, #0x89
+ mov r2, #0x0
+ lsl r3, r6, #0x1
+ bl FUN_02006548
+ ldr r1, [sp, #0x8]
+ mov r0, #0x3b
+ bl FUN_02006670
+ add r4, sp, #0x10
+ ldrh r2, [r4, #0x0]
+ str r0, [sp, #0xc]
+ cmp r2, r5
+ beq _0206ADC2
+_0206AD84:
+ add r0, sp, #0x10
+ add r0, #0x2
+ str r0, [sp, #0x0]
+ ldr r0, [sp, #0xc]
+ mov r1, #0x0
+ mov r3, #0x4
+ bl FUN_02006814
+ ldrh r0, [r4, #0x2]
+ cmp r0, r6
+ bne _0206ADB6
+ ldrh r0, [r4, #0x4]
+ cmp r0, r7
+ bne _0206ADB6
+ ldr r0, [sp, #0x4]
+ add r2, sp, #0x10
+ str r0, [sp, #0x0]
+ ldrh r2, [r2, #0x0]
+ ldr r1, _0206ADDC ; =0x0000022E
+ ldr r3, [sp, #0x8]
+ mov r0, #0x1a
+ lsr r2, r2, #0x2
+ bl FUN_0200A648
+ b _0206ADC2
+_0206ADB6:
+ ldrh r0, [r4, #0x0]
+ add r0, r0, #0x4
+ strh r0, [r4, #0x0]
+ ldrh r2, [r4, #0x0]
+ cmp r2, r5
+ bne _0206AD84
+_0206ADC2:
+ ldr r0, [sp, #0xc]
+ bl FUN_020066F4
+ add r0, sp, #0x10
+ ldrh r0, [r0, #0x0]
+ cmp r0, r5
+ bne _0206ADD6
+ ldr r0, [sp, #0x4]
+ bl FUN_02021A4C
+_0206ADD6:
+ add sp, #0x18
+ pop {r3-r7, pc}
+ nop
+_0206ADDC: .word 0x0000022E
+
+ thumb_func_start FUN_0206ADE0
+FUN_0206ADE0: ; 0x0206ADE0
+ ldr r3, _0206ADEC ; =LoadFromNARC
+ add r2, r0, #0x0
+ add r0, r1, #0x0
+ mov r1, #0x39
+ bx r3
+ nop
+_0206ADEC: .word LoadFromNARC
+
+ thumb_func_start FUN_0206ADF0
+FUN_0206ADF0: ; 0x0206ADF0
+ ldr r3, _0206ADFC ; =LoadFromNARC
+ add r2, r0, #0x0
+ add r0, r1, #0x0
+ mov r1, #0x3a
+ bx r3
+ nop
+_0206ADFC: .word LoadFromNARC
+
+ thumb_func_start FUN_0206AE00
+FUN_0206AE00: ; 0x0206AE00
+ ldr r1, _0206AE08 ; =0x020F8010
+ ldrb r0, [r1, r0]
+ bx lr
+ nop
+_0206AE08: .word 0x020F8010
+
+ thumb_func_start FUN_0206AE0C
+FUN_0206AE0C: ; 0x0206AE0C
+ push {r3-r7, lr}
+ sub sp, #0x50
+ add r7, r1, #0x0
+ add r4, r0, #0x0
+ add r5, r2, #0x0
+ bl FUN_0201B9D4
+ lsl r6, r7, #0x2
+ str r0, [sp, #0x44]
+ add r0, r4, r6
+ ldr r0, [r0, #0x4]
+ mov r1, #0x6
+ bl FUN_0206B8CC
+ add r0, r5, #0x0
+ mov r1, #0x60
+ bl FUN_02016998
+ str r0, [sp, #0x4c]
+ add r0, r5, #0x0
+ bl FUN_020669C0
+ str r0, [sp, #0x40]
+ add r0, r4, r6
+ ldr r0, [r0, #0x18]
+ ldr r1, [sp, #0x4c]
+ bl FUN_0206ADF0
+ mov r0, #0x34
+ add r5, r7, #0x0
+ mul r5, r0
+ add r0, r4, r5
+ add r0, #0x29
+ ldrb r0, [r0, #0x0]
+ bl FUN_0206AE00
+ cmp r0, #0x1
+ bne _0206AE5E
+ mov r0, #0x78
+ str r0, [sp, #0x10]
+ b _0206AE62
+_0206AE5E:
+ mov r0, #0x88
+ str r0, [sp, #0x10]
+_0206AE62:
+ add r0, r4, r5
+ add r0, #0x28
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x3
+ bhi _0206AF26
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0206AE78: ; jump table (using 16-bit offset)
+ .short _0206AE80 - _0206AE78 - 2; case 0
+ .short _0206AF28 - _0206AE78 - 2; case 1
+ .short _0206AFE8 - _0206AE78 - 2; case 2
+ .short _0206B08C - _0206AE78 - 2; case 3
+_0206AE80:
+ mov r0, #0x0
+ str r0, [sp, #0x48]
+ add r0, r4, r5
+ add r0, #0x2b
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x0
+ ble _0206AF26
+ ldr r0, [sp, #0x4c]
+ str r0, [sp, #0x28]
+ add r0, r4, r6
+ str r0, [sp, #0x24]
+_0206AE96:
+ ldr r0, [sp, #0x24]
+ ldr r2, [sp, #0x28]
+ ldr r1, [r0, #0x18]
+ ldr r0, [sp, #0x28]
+ ldrh r3, [r2, #0x0]
+ ldrh r2, [r2, #0x2]
+ ldrh r0, [r0, #0x4]
+ add r2, r3, r2
+ add r0, r0, r2
+ add r7, r1, r0
+ add r0, r7, #0x0
+ bl FUN_0201B9E0
+ add r0, r4, r5
+ add r0, #0x29
+ ldrb r0, [r0, #0x0]
+ mov r6, #0x0
+ cmp r0, #0x0
+ ble _0206AECE
+_0206AEBC:
+ bl FUN_0201B9EC
+ add r7, r0, #0x0
+ add r0, r4, r5
+ add r0, #0x29
+ ldrb r0, [r0, #0x0]
+ add r6, r6, #0x1
+ cmp r6, r0
+ blt _0206AEBC
+_0206AECE:
+ ldr r0, [sp, #0x10]
+ lsl r1, r7, #0x8
+ add r6, r1, r0
+ ldr r0, [sp, #0x28]
+ ldrh r1, [r0, #0x0]
+ mov r0, #0x1f
+ mul r0, r1
+ mov r1, #0xff
+ blx _s32_div_f
+ add r3, r0, #0x0
+ mov r0, #0x1
+ str r0, [sp, #0x0]
+ lsl r3, r3, #0x18
+ str r6, [sp, #0x4]
+ mov r0, #0x2
+ str r0, [sp, #0x8]
+ mov r0, #0x0
+ str r0, [sp, #0xc]
+ ldr r1, [sp, #0x28]
+ ldr r2, [sp, #0x28]
+ ldrh r1, [r1, #0x4]
+ ldrh r2, [r2, #0x2]
+ ldr r0, [sp, #0x40]
+ lsr r3, r3, #0x18
+ bl FUN_02066ACC
+ ldr r0, [sp, #0x24]
+ ldr r1, [sp, #0x40]
+ ldr r0, [r0, #0x4]
+ bl FUN_0206B900
+ ldr r0, [sp, #0x28]
+ add r0, r0, #0x6
+ str r0, [sp, #0x28]
+ ldr r0, [sp, #0x48]
+ add r0, r0, #0x1
+ str r0, [sp, #0x48]
+ add r0, r4, r5
+ add r0, #0x2b
+ ldrb r1, [r0, #0x0]
+ ldr r0, [sp, #0x48]
+ cmp r0, r1
+ blt _0206AE96
+_0206AF26:
+ b _0206B156
+_0206AF28:
+ mov r0, #0x0
+ str r0, [sp, #0x18]
+ add r0, r4, r5
+ add r0, #0x2b
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x0
+ ble _0206AFE6
+ ldr r0, [sp, #0x4c]
+ str r0, [sp, #0x30]
+ add r0, r4, r6
+ str r0, [sp, #0x2c]
+_0206AF3E:
+ ldr r0, [sp, #0x2c]
+ ldr r2, [sp, #0x30]
+ ldr r1, [r0, #0x18]
+ ldr r0, [sp, #0x30]
+ ldrh r3, [r2, #0x0]
+ ldrh r2, [r2, #0x2]
+ ldrh r0, [r0, #0x4]
+ add r2, r3, r2
+ add r0, r0, r2
+ add r7, r1, r0
+ add r0, r7, #0x0
+ bl FUN_0201B9E0
+ add r0, r4, r5
+ add r0, #0x29
+ ldrb r0, [r0, #0x0]
+ mov r6, #0x0
+ cmp r0, #0x0
+ ble _0206AF76
+_0206AF64:
+ bl FUN_0201B9EC
+ add r7, r0, #0x0
+ add r0, r4, r5
+ add r0, #0x29
+ ldrb r0, [r0, #0x0]
+ add r6, r6, #0x1
+ cmp r6, r0
+ blt _0206AF64
+_0206AF76:
+ ldr r0, [sp, #0x10]
+ lsl r1, r7, #0x8
+ add r6, r1, r0
+ ldr r0, [sp, #0x30]
+ ldrh r1, [r0, #0x0]
+ mov r0, #0x1f
+ mul r0, r1
+ mov r1, #0xff
+ blx _s32_div_f
+ add r3, r0, #0x0
+ mov r0, #0x1
+ str r0, [sp, #0x0]
+ lsl r3, r3, #0x18
+ str r6, [sp, #0x4]
+ mov r0, #0x2
+ str r0, [sp, #0x8]
+ mov r0, #0x0
+ str r0, [sp, #0xc]
+ ldr r1, [sp, #0x30]
+ ldr r2, [sp, #0x30]
+ ldrh r1, [r1, #0x4]
+ ldrh r2, [r2, #0x2]
+ ldr r0, [sp, #0x40]
+ lsr r3, r3, #0x18
+ bl FUN_02066ACC
+ ldr r7, [sp, #0x30]
+ mov r6, #0x0
+_0206AFB0:
+ ldrh r1, [r7, #0x6]
+ lsl r2, r6, #0x18
+ ldr r0, [sp, #0x40]
+ lsr r2, r2, #0x18
+ bl FUN_020697CC
+ add r6, r6, #0x1
+ add r7, r7, #0x2
+ cmp r6, #0x4
+ blt _0206AFB0
+ ldr r0, [sp, #0x2c]
+ ldr r1, [sp, #0x40]
+ ldr r0, [r0, #0x4]
+ bl FUN_0206B900
+ ldr r0, [sp, #0x30]
+ add r0, #0xe
+ str r0, [sp, #0x30]
+ ldr r0, [sp, #0x18]
+ add r0, r0, #0x1
+ str r0, [sp, #0x18]
+ add r0, r4, r5
+ add r0, #0x2b
+ ldrb r1, [r0, #0x0]
+ ldr r0, [sp, #0x18]
+ cmp r0, r1
+ blt _0206AF3E
+_0206AFE6:
+ b _0206B156
+_0206AFE8:
+ mov r0, #0x0
+ str r0, [sp, #0x1c]
+ add r0, r4, r5
+ add r0, #0x2b
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x0
+ ble _0206B08A
+ add r0, r4, r6
+ ldr r7, [sp, #0x4c]
+ str r0, [sp, #0x34]
+_0206AFFC:
+ ldr r0, [sp, #0x34]
+ ldrh r3, [r7, #0x0]
+ ldrh r2, [r7, #0x2]
+ ldr r1, [r0, #0x18]
+ ldrh r0, [r7, #0x4]
+ add r2, r3, r2
+ add r0, r0, r2
+ add r0, r1, r0
+ str r0, [sp, #0x14]
+ bl FUN_0201B9E0
+ add r0, r4, r5
+ add r0, #0x29
+ ldrb r0, [r0, #0x0]
+ mov r6, #0x0
+ cmp r0, #0x0
+ ble _0206B030
+_0206B01E:
+ bl FUN_0201B9EC
+ str r0, [sp, #0x14]
+ add r0, r4, r5
+ add r0, #0x29
+ ldrb r0, [r0, #0x0]
+ add r6, r6, #0x1
+ cmp r6, r0
+ blt _0206B01E
+_0206B030:
+ ldr r0, [sp, #0x14]
+ lsl r1, r0, #0x8
+ ldr r0, [sp, #0x10]
+ add r6, r1, r0
+ ldrh r1, [r7, #0x0]
+ mov r0, #0x1f
+ mul r0, r1
+ mov r1, #0xff
+ blx _s32_div_f
+ add r3, r0, #0x0
+ mov r0, #0x1
+ str r0, [sp, #0x0]
+ lsl r3, r3, #0x18
+ str r6, [sp, #0x4]
+ mov r0, #0x2
+ str r0, [sp, #0x8]
+ mov r0, #0x0
+ str r0, [sp, #0xc]
+ ldrh r1, [r7, #0x4]
+ ldrh r2, [r7, #0x2]
+ ldr r0, [sp, #0x40]
+ lsr r3, r3, #0x18
+ bl FUN_02066ACC
+ ldr r0, [sp, #0x40]
+ mov r1, #0x6
+ add r2, r7, #0x6
+ bl FUN_02067830
+ ldr r0, [sp, #0x34]
+ ldr r1, [sp, #0x40]
+ ldr r0, [r0, #0x4]
+ bl FUN_0206B900
+ ldr r0, [sp, #0x1c]
+ add r7, #0x8
+ add r0, r0, #0x1
+ str r0, [sp, #0x1c]
+ add r0, r4, r5
+ add r0, #0x2b
+ ldrb r1, [r0, #0x0]
+ ldr r0, [sp, #0x1c]
+ cmp r0, r1
+ blt _0206AFFC
+_0206B08A:
+ b _0206B156
+_0206B08C:
+ mov r0, #0x0
+ str r0, [sp, #0x20]
+ add r0, r4, r5
+ add r0, #0x2b
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x0
+ ble _0206B156
+ ldr r0, [sp, #0x4c]
+ str r0, [sp, #0x3c]
+ add r0, r4, r6
+ str r0, [sp, #0x38]
+_0206B0A2:
+ ldr r0, [sp, #0x38]
+ ldr r2, [sp, #0x3c]
+ ldr r1, [r0, #0x18]
+ ldr r0, [sp, #0x3c]
+ ldrh r3, [r2, #0x0]
+ ldrh r2, [r2, #0x2]
+ ldrh r0, [r0, #0x4]
+ add r2, r3, r2
+ add r0, r0, r2
+ add r7, r1, r0
+ add r0, r7, #0x0
+ bl FUN_0201B9E0
+ add r0, r4, r5
+ add r0, #0x29
+ ldrb r0, [r0, #0x0]
+ mov r6, #0x0
+ cmp r0, #0x0
+ ble _0206B0DA
+_0206B0C8:
+ bl FUN_0201B9EC
+ add r7, r0, #0x0
+ add r0, r4, r5
+ add r0, #0x29
+ ldrb r0, [r0, #0x0]
+ add r6, r6, #0x1
+ cmp r6, r0
+ blt _0206B0C8
+_0206B0DA:
+ ldr r0, [sp, #0x10]
+ lsl r1, r7, #0x8
+ add r6, r1, r0
+ ldr r0, [sp, #0x3c]
+ ldrh r1, [r0, #0x0]
+ mov r0, #0x1f
+ mul r0, r1
+ mov r1, #0xff
+ blx _s32_div_f
+ add r3, r0, #0x0
+ mov r0, #0x1
+ str r0, [sp, #0x0]
+ lsl r3, r3, #0x18
+ str r6, [sp, #0x4]
+ mov r0, #0x2
+ str r0, [sp, #0x8]
+ mov r0, #0x0
+ str r0, [sp, #0xc]
+ ldr r1, [sp, #0x3c]
+ ldr r2, [sp, #0x3c]
+ ldrh r1, [r1, #0x4]
+ ldrh r2, [r2, #0x2]
+ ldr r0, [sp, #0x40]
+ lsr r3, r3, #0x18
+ bl FUN_02066ACC
+ ldr r2, [sp, #0x3c]
+ ldr r0, [sp, #0x40]
+ mov r1, #0x6
+ add r2, r2, #0x6
+ bl FUN_02067830
+ ldr r7, [sp, #0x3c]
+ mov r6, #0x0
+_0206B120:
+ ldrh r1, [r7, #0x8]
+ lsl r2, r6, #0x18
+ ldr r0, [sp, #0x40]
+ lsr r2, r2, #0x18
+ bl FUN_020697CC
+ add r6, r6, #0x1
+ add r7, r7, #0x2
+ cmp r6, #0x4
+ blt _0206B120
+ ldr r0, [sp, #0x38]
+ ldr r1, [sp, #0x40]
+ ldr r0, [r0, #0x4]
+ bl FUN_0206B900
+ ldr r0, [sp, #0x3c]
+ add r0, #0x10
+ str r0, [sp, #0x3c]
+ ldr r0, [sp, #0x20]
+ add r0, r0, #0x1
+ str r0, [sp, #0x20]
+ add r0, r4, r5
+ add r0, #0x2b
+ ldrb r1, [r0, #0x0]
+ ldr r0, [sp, #0x20]
+ cmp r0, r1
+ blt _0206B0A2
+_0206B156:
+ ldr r0, [sp, #0x4c]
+ bl FUN_02016A18
+ ldr r0, [sp, #0x40]
+ bl FUN_02016A18
+ ldr r0, [sp, #0x44]
+ bl FUN_0201B9E0
+ add sp, #0x50
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_0206B16C
+FUN_0206B16C: ; 0x0206B16C
+ push {r3, lr}
+ bl FUN_0206B180
+ bl FUN_02022830
+ pop {r3, pc}
+
+ thumb_func_start FUN_0206B178
+FUN_0206B178: ; 0x0206B178
+ ldr r0, _0206B17C ; =0x000121C8
+ bx lr
+ .balign 4
+_0206B17C: .word 0x000121C8
+
+ thumb_func_start FUN_0206B180
+FUN_0206B180: ; 0x0206B180
+ push {r3-r7, lr}
+ str r0, [sp, #0x0]
+ mov r7, #0x0
+ add r6, r0, #0x4
+_0206B188:
+ mov r4, #0x0
+ add r5, r6, #0x0
+_0206B18C:
+ add r0, r5, #0x0
+ bl FUN_020669A0
+ add r4, r4, #0x1
+ add r5, #0x88
+ cmp r4, #0x1e
+ blo _0206B18C
+ mov r0, #0xff
+ lsl r0, r0, #0x4
+ add r7, r7, #0x1
+ add r6, r6, r0
+ cmp r7, #0x12
+ blo _0206B188
+ mov r3, #0x0
+ ldr r1, _0206B200 ; =0x000121B4
+ add r4, r3, #0x0
+ add r2, r3, #0x0
+_0206B1AE:
+ ldr r0, [sp, #0x0]
+ add r0, r0, r3
+ strb r4, [r0, r1]
+ add r4, r4, #0x1
+ cmp r4, #0x10
+ blo _0206B1BC
+ add r4, r2, #0x0
+_0206B1BC:
+ add r3, r3, #0x1
+ cmp r3, #0x12
+ blo _0206B1AE
+ ldr r1, _0206B204 ; =0x000121C6
+ ldr r0, [sp, #0x0]
+ mov r3, #0x0
+ strb r3, [r0, r1]
+ mov r0, #0x1
+ mov r1, #0x1a
+ mov r2, #0xe
+ bl FUN_0200A86C
+ add r6, r0, #0x0
+ beq _0206B1F8
+ ldr r1, _0206B208 ; =0x00011EE4
+ ldr r0, [sp, #0x0]
+ mov r5, #0x0
+ add r4, r0, r1
+_0206B1E0:
+ add r0, r6, #0x0
+ add r1, r5, #0x6
+ add r2, r4, #0x0
+ bl FUN_0200A968
+ add r5, r5, #0x1
+ add r4, #0x28
+ cmp r5, #0x12
+ blo _0206B1E0
+ add r0, r6, #0x0
+ bl FUN_0200A8B8
+_0206B1F8:
+ ldr r0, [sp, #0x0]
+ mov r1, #0x0
+ str r1, [r0, #0x0]
+ pop {r3-r7, pc}
+ .balign 4
+_0206B200: .word 0x000121B4
+_0206B204: .word 0x000121C6
+_0206B208: .word 0x00011EE4
+
+ thumb_func_start FUN_0206B20C
+FUN_0206B20C: ; 0x0206B20C
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ ldr r4, [r5, #0x0]
+ add r6, r1, #0x0
+ mov r7, #0x0
+_0206B216:
+ add r0, r6, #0x0
+ bl FUN_0206AAB4
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ add r2, r6, #0x0
+ bl FUN_0206B244
+ cmp r0, #0x0
+ beq _0206B232
+ bl FUN_02022830
+ mov r0, #0x1
+ pop {r3-r7, pc}
+_0206B232:
+ add r4, r4, #0x1
+ cmp r4, #0x12
+ blo _0206B23A
+ add r4, r7, #0x0
+_0206B23A:
+ ldr r0, [r5, #0x0]
+ cmp r4, r0
+ bne _0206B216
+ mov r0, #0x0
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_0206B244
+FUN_0206B244: ; 0x0206B244
+ push {r3-r7, lr}
+ sub sp, #0x8
+ add r6, r0, #0x0
+ add r0, r2, #0x0
+ add r5, r1, #0x0
+ str r2, [sp, #0x0]
+ bl FUN_0206AAB4
+ mov r0, #0x0
+ mvn r0, r0
+ cmp r5, r0
+ bne _0206B25E
+ ldr r5, [r6, #0x0]
+_0206B25E:
+ mov r0, #0xff
+ lsl r0, r0, #0x4
+ add r1, r6, #0x4
+ mul r0, r5
+ mov r4, #0x0
+ add r5, r1, r0
+ str r5, [sp, #0x4]
+ mov r6, #0x5
+ add r7, r4, #0x0
+_0206B270:
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ add r2, r7, #0x0
+ bl FUN_020672BC
+ cmp r0, #0x0
+ bne _0206B2A0
+ mov r0, #0x88
+ add r1, r4, #0x0
+ mul r1, r0
+ ldr r0, [sp, #0x4]
+ mov r3, #0x11
+ add r4, r0, r1
+_0206B28A:
+ ldr r2, [sp, #0x0]
+ sub r3, r3, #0x1
+ ldmia r2!, {r0-r1}
+ str r2, [sp, #0x0]
+ stmia r4!, {r0-r1}
+ bne _0206B28A
+ bl FUN_02022830
+ add sp, #0x8
+ mov r0, #0x1
+ pop {r3-r7, pc}
+_0206B2A0:
+ add r4, r4, #0x1
+ add r5, #0x88
+ cmp r4, #0x1e
+ blo _0206B270
+ mov r0, #0x0
+ add sp, #0x8
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_0206B2B0
+FUN_0206B2B0: ; 0x0206B2B0
+ push {r3-r7, lr}
+ add r7, r3, #0x0
+ add r5, r0, #0x0
+ add r0, r7, #0x0
+ add r4, r1, #0x0
+ add r6, r2, #0x0
+ bl FUN_0206AAB4
+ mov r0, #0x0
+ mvn r0, r0
+ cmp r4, r0
+ bne _0206B2CA
+ ldr r4, [r5, #0x0]
+_0206B2CA:
+ cmp r4, #0x12
+ bhs _0206B2F4
+ cmp r6, #0x1e
+ bhs _0206B2F4
+ mov r0, #0xff
+ lsl r0, r0, #0x4
+ mul r0, r4
+ add r1, r5, r0
+ mov r0, #0x88
+ mul r0, r6
+ add r0, r1, r0
+ add r3, r0, #0x4
+ mov r2, #0x11
+_0206B2E4:
+ ldmia r7!, {r0-r1}
+ stmia r3!, {r0-r1}
+ sub r2, r2, #0x1
+ bne _0206B2E4
+ bl FUN_02022830
+ mov r0, #0x1
+ pop {r3-r7, pc}
+_0206B2F4:
+ bl ErrorHandling
+ mov r0, #0x0
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_0206B2FC
+FUN_0206B2FC: ; 0x0206B2FC
+ push {r3, lr}
+ mov r3, #0x0
+ mvn r3, r3
+ cmp r1, r3
+ bne _0206B308
+ ldr r1, [r0, #0x0]
+_0206B308:
+ cmp r2, #0x1e
+ bhs _0206B32A
+ cmp r1, #0x12
+ bhs _0206B32A
+ add r3, r0, #0x4
+ mov r0, #0xff
+ lsl r0, r0, #0x4
+ mul r0, r1
+ add r1, r3, r0
+ mov r0, #0x88
+ mul r0, r2
+ add r0, r1, r0
+ bl FUN_020669A0
+ bl FUN_02022830
+ pop {r3, pc}
+_0206B32A:
+ bl ErrorHandling
+ pop {r3, pc}
+
+ thumb_func_start FUN_0206B330
+FUN_0206B330: ; 0x0206B330
+ ldr r0, [r0, #0x0]
+ bx lr
+
+ thumb_func_start FUN_0206B334
+FUN_0206B334: ; 0x0206B334
+ push {r3-r7, lr}
+ sub sp, #0x8
+ str r0, [sp, #0x0]
+ ldr r6, [r0, #0x0]
+ add r0, r0, #0x4
+ mov r7, #0xab
+ str r0, [sp, #0x4]
+_0206B342:
+ mov r0, #0xff
+ lsl r0, r0, #0x4
+ add r1, r6, #0x0
+ mul r1, r0
+ ldr r0, [sp, #0x4]
+ mov r4, #0x0
+ add r5, r0, r1
+_0206B350:
+ add r0, r5, #0x0
+ add r1, r7, #0x0
+ mov r2, #0x0
+ bl FUN_020672BC
+ cmp r0, #0x0
+ bne _0206B364
+ add sp, #0x8
+ add r0, r6, #0x0
+ pop {r3-r7, pc}
+_0206B364:
+ add r4, r4, #0x1
+ add r5, #0x88
+ cmp r4, #0x1e
+ blt _0206B350
+ add r6, r6, #0x1
+ cmp r6, #0x12
+ blt _0206B374
+ mov r6, #0x0
+_0206B374:
+ ldr r0, [sp, #0x0]
+ ldr r0, [r0, #0x0]
+ cmp r6, r0
+ bne _0206B342
+ mov r0, #0x12
+ add sp, #0x8
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_0206B384
+FUN_0206B384: ; 0x0206B384
+ push {r3-r7, lr}
+ add r6, r1, #0x0
+ str r2, [sp, #0x0]
+ mov r1, #0x0
+ ldr r2, [r6, #0x0]
+ mvn r1, r1
+ cmp r2, r1
+ bne _0206B398
+ ldr r1, [r0, #0x0]
+ str r1, [r6, #0x0]
+_0206B398:
+ ldr r1, [sp, #0x0]
+ ldr r4, [r6, #0x0]
+ ldr r5, [r1, #0x0]
+ add r7, r0, #0x4
+ b _0206B3C8
+_0206B3A2:
+ mov r0, #0xff
+ lsl r0, r0, #0x4
+ mul r0, r4
+ add r1, r7, r0
+ mov r0, #0x88
+ mul r0, r5
+ add r0, r1, r0
+ mov r1, #0xab
+ mov r2, #0x0
+ bl FUN_020672BC
+ cmp r0, #0x0
+ bne _0206B3C6
+ ldr r0, [sp, #0x0]
+ str r4, [r6, #0x0]
+ str r5, [r0, #0x0]
+ mov r0, #0x1
+ pop {r3-r7, pc}
+_0206B3C6:
+ add r5, r5, #0x1
+_0206B3C8:
+ cmp r5, #0x1e
+ blt _0206B3A2
+ add r4, r4, #0x1
+ cmp r4, #0x12
+ blt _0206B3D4
+ mov r4, #0x0
+_0206B3D4:
+ ldr r0, [r6, #0x0]
+ cmp r4, r0
+ beq _0206B3DE
+ mov r5, #0x0
+ b _0206B3C8
+_0206B3DE:
+ mov r0, #0x12
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_0206B3E4
+FUN_0206B3E4: ; 0x0206B3E4
+ push {r3-r7, lr}
+ sub sp, #0x8
+ mov r6, #0x0
+ add r0, r0, #0x4
+ str r6, [sp, #0x4]
+ str r0, [sp, #0x0]
+ mov r7, #0xab
+_0206B3F2:
+ ldr r5, [sp, #0x0]
+ mov r4, #0x0
+_0206B3F6:
+ add r0, r5, #0x0
+ add r1, r7, #0x0
+ mov r2, #0x0
+ bl FUN_020672BC
+ cmp r0, #0x0
+ beq _0206B406
+ add r6, r6, #0x1
+_0206B406:
+ add r4, r4, #0x1
+ add r5, #0x88
+ cmp r4, #0x1e
+ blt _0206B3F6
+ mov r0, #0xff
+ ldr r1, [sp, #0x0]
+ lsl r0, r0, #0x4
+ add r0, r1, r0
+ str r0, [sp, #0x0]
+ ldr r0, [sp, #0x4]
+ add r0, r0, #0x1
+ str r0, [sp, #0x4]
+ cmp r0, #0x12
+ blt _0206B3F2
+ add r0, r6, #0x0
+ add sp, #0x8
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_0206B428
+FUN_0206B428: ; 0x0206B428
+ push {r3, lr}
+ cmp r1, #0x12
+ bhs _0206B436
+ str r1, [r0, #0x0]
+ bl FUN_02022830
+ pop {r3, pc}
+_0206B436:
+ bl ErrorHandling
+ pop {r3, pc}
+
+ thumb_func_start FUN_0206B43C
+FUN_0206B43C: ; 0x0206B43C
+ push {r3, lr}
+ cmp r1, #0x12
+ bhs _0206B44A
+ add r1, r0, r1
+ ldr r0, _0206B454 ; =0x000121B4
+ ldrb r0, [r1, r0]
+ pop {r3, pc}
+_0206B44A:
+ bl ErrorHandling
+ mov r0, #0x0
+ pop {r3, pc}
+ nop
+_0206B454: .word 0x000121B4
+
+ thumb_func_start FUN_0206B458
+FUN_0206B458: ; 0x0206B458
+ push {r3, lr}
+ mov r3, #0x0
+ mvn r3, r3
+ cmp r1, r3
+ bne _0206B464
+ ldr r1, [r0, #0x0]
+_0206B464:
+ cmp r1, #0x12
+ bhs _0206B478
+ cmp r2, #0x18
+ bhs _0206B478
+ add r1, r0, r1
+ ldr r0, _0206B480 ; =0x000121B4
+ strb r2, [r1, r0]
+ bl FUN_02022830
+ pop {r3, pc}
+_0206B478:
+ bl ErrorHandling
+ pop {r3, pc}
+ nop
+_0206B480: .word 0x000121B4
+
+ thumb_func_start FUN_0206B484
+FUN_0206B484: ; 0x0206B484
+ push {r3, lr}
+ add r3, r0, #0x0
+ mov r0, #0x0
+ mvn r0, r0
+ cmp r1, r0
+ bne _0206B492
+ ldr r1, [r3, #0x0]
+_0206B492:
+ cmp r1, #0x12
+ bhs _0206B4A8
+ add r0, r2, #0x0
+ ldr r2, _0206B4B0 ; =0x00011EE4
+ add r3, r3, r2
+ mov r2, #0x28
+ mul r2, r1
+ add r1, r3, r2
+ bl FUN_02021E28
+ pop {r3, pc}
+_0206B4A8:
+ bl ErrorHandling
+ pop {r3, pc}
+ nop
+_0206B4B0: .word 0x00011EE4
+
+ thumb_func_start FUN_0206B4B4
+FUN_0206B4B4: ; 0x0206B4B4
+ push {r3, lr}
+ add r3, r0, #0x0
+ mov r0, #0x0
+ mvn r0, r0
+ cmp r1, r0
+ bne _0206B4C2
+ ldr r1, [r3, #0x0]
+_0206B4C2:
+ cmp r1, #0x12
+ bhs _0206B4DC
+ add r0, r2, #0x0
+ ldr r2, _0206B4E0 ; =0x00011EE4
+ add r3, r3, r2
+ mov r2, #0x28
+ mul r2, r1
+ add r1, r3, r2
+ mov r2, #0x14
+ bl FUN_02021EF0
+ bl FUN_02022830
+_0206B4DC:
+ pop {r3, pc}
+ nop
+_0206B4E0: .word 0x00011EE4
+
+ thumb_func_start FUN_0206B4E4
+FUN_0206B4E4: ; 0x0206B4E4
+ push {r3-r7, lr}
+ mov r2, #0x0
+ mvn r2, r2
+ cmp r1, r2
+ bne _0206B4F0
+ ldr r1, [r0, #0x0]
+_0206B4F0:
+ cmp r1, #0x12
+ bhs _0206B520
+ add r2, r0, #0x4
+ mov r0, #0xff
+ lsl r0, r0, #0x4
+ mov r4, #0x0
+ mul r0, r1
+ add r6, r4, #0x0
+ add r5, r2, r0
+ mov r7, #0xab
+_0206B504:
+ add r0, r5, #0x0
+ add r1, r7, #0x0
+ mov r2, #0x0
+ bl FUN_020672BC
+ cmp r0, #0x0
+ beq _0206B514
+ add r4, r4, #0x1
+_0206B514:
+ add r6, r6, #0x1
+ add r5, #0x88
+ cmp r6, #0x1e
+ blt _0206B504
+ add r0, r4, #0x0
+ pop {r3-r7, pc}
+_0206B520:
+ bl ErrorHandling
+ mov r0, #0x0
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_0206B528
+FUN_0206B528: ; 0x0206B528
+ push {r3-r7, lr}
+ mov r2, #0x0
+ mvn r2, r2
+ cmp r1, r2
+ bne _0206B534
+ ldr r1, [r0, #0x0]
+_0206B534:
+ cmp r1, #0x12
+ bhs _0206B572
+ add r2, r0, #0x4
+ mov r0, #0xff
+ lsl r0, r0, #0x4
+ mov r4, #0x0
+ mul r0, r1
+ add r6, r4, #0x0
+ add r5, r2, r0
+ mov r7, #0xab
+_0206B548:
+ add r0, r5, #0x0
+ add r1, r7, #0x0
+ mov r2, #0x0
+ bl FUN_020672BC
+ cmp r0, #0x0
+ beq _0206B566
+ add r0, r5, #0x0
+ mov r1, #0x4c
+ mov r2, #0x0
+ bl FUN_020672BC
+ cmp r0, #0x0
+ bne _0206B566
+ add r4, r4, #0x1
+_0206B566:
+ add r6, r6, #0x1
+ add r5, #0x88
+ cmp r6, #0x1e
+ blt _0206B548
+ add r0, r4, #0x0
+ pop {r3-r7, pc}
+_0206B572:
+ bl ErrorHandling
+ mov r0, #0x0
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_0206B57C
+FUN_0206B57C: ; 0x0206B57C
+ push {r4-r6, lr}
+ mov r5, #0x0
+ add r6, r0, #0x0
+ add r4, r5, #0x0
+_0206B584:
+ add r0, r6, #0x0
+ add r1, r5, #0x0
+ bl FUN_0206B528
+ add r5, r5, #0x1
+ add r4, r4, r0
+ cmp r5, #0x12
+ blo _0206B584
+ add r0, r4, #0x0
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_0206B598
+FUN_0206B598: ; 0x0206B598
+ push {r3-r7, lr}
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ add r6, r2, #0x0
+ add r7, r3, #0x0
+ cmp r4, #0x12
+ blo _0206B5B2
+ mov r0, #0x0
+ mvn r0, r0
+ cmp r4, r0
+ beq _0206B5B2
+ bl ErrorHandling
+_0206B5B2:
+ cmp r6, #0x1e
+ blo _0206B5BA
+ bl ErrorHandling
+_0206B5BA:
+ mov r0, #0x0
+ mvn r0, r0
+ cmp r4, r0
+ bne _0206B5C4
+ ldr r4, [r5, #0x0]
+_0206B5C4:
+ mov r0, #0xff
+ lsl r0, r0, #0x4
+ add r1, r5, #0x4
+ mul r0, r4
+ add r1, r1, r0
+ mov r0, #0x88
+ mul r0, r6
+ add r0, r1, r0
+ ldr r2, [sp, #0x18]
+ add r1, r7, #0x0
+ bl FUN_02067960
+ bl FUN_02022830
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_0206B5E4
+FUN_0206B5E4: ; 0x0206B5E4
+ push {r4-r6, lr}
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ add r6, r2, #0x0
+ cmp r4, #0x12
+ blo _0206B5FC
+ mov r0, #0x0
+ mvn r0, r0
+ cmp r4, r0
+ beq _0206B5FC
+ bl ErrorHandling
+_0206B5FC:
+ cmp r6, #0x1e
+ blo _0206B604
+ bl ErrorHandling
+_0206B604:
+ mov r0, #0x0
+ mvn r0, r0
+ cmp r4, r0
+ bne _0206B60E
+ ldr r4, [r5, #0x0]
+_0206B60E:
+ mov r0, #0xff
+ lsl r0, r0, #0x4
+ add r1, r5, #0x4
+ mul r0, r4
+ add r1, r1, r0
+ mov r0, #0x88
+ mul r0, r6
+ add r0, r1, r0
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_0206B620
+FUN_0206B620: ; 0x0206B620
+ push {r3-r5, lr}
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ cmp r4, #0x8
+ blo _0206B62E
+ bl ErrorHandling
+_0206B62E:
+ ldr r0, _0206B640 ; =0x000121C6
+ mov r1, #0x1
+ ldrb r2, [r5, r0]
+ lsl r1, r4
+ orr r1, r2
+ strb r1, [r5, r0]
+ bl FUN_02022830
+ pop {r3-r5, pc}
+ .balign 4
+_0206B640: .word 0x000121C6
+
+ thumb_func_start FUN_0206B644
+FUN_0206B644: ; 0x0206B644
+ push {r3-r5, lr}
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ cmp r4, #0x8
+ blo _0206B652
+ bl ErrorHandling
+_0206B652:
+ ldr r0, _0206B664 ; =0x000121C6
+ ldrb r2, [r5, r0]
+ mov r0, #0x1
+ add r1, r0, #0x0
+ lsl r1, r4
+ tst r1, r2
+ bne _0206B662
+ mov r0, #0x0
+_0206B662:
+ pop {r3-r5, pc}
+ .balign 4
+_0206B664: .word 0x000121C6
+
+ thumb_func_start FUN_0206B668
+FUN_0206B668: ; 0x0206B668
+ push {r4-r6, lr}
+ mov r4, #0x0
+ add r6, r0, #0x0
+ add r5, r4, #0x0
+_0206B670:
+ add r0, r6, #0x0
+ add r1, r4, #0x0
+ bl FUN_0206B644
+ cmp r0, #0x0
+ beq _0206B67E
+ add r5, r5, #0x1
+_0206B67E:
+ add r4, r4, #0x1
+ cmp r4, #0x8
+ blo _0206B670
+ add r0, r5, #0x0
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_0206B688
+FUN_0206B688: ; 0x0206B688
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ bl FUN_02066A6C
+ add r7, r0, #0x0
+ add r0, r5, #0x0
+ mov r1, #0x5
+ mov r2, #0x0
+ bl FUN_020672BC
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ mov r1, #0x4c
+ mov r2, #0x0
+ bl FUN_020672BC
+ add r6, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_0206B754
+ add r2, r0, #0x0
+ add r0, r4, #0x0
+ add r1, r6, #0x0
+ bl FUN_0206B6D4
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ add r1, r7, #0x0
+ bl FUN_02066A94
+ add r0, r4, #0x0
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_0206B6C8
+FUN_0206B6C8: ; 0x0206B6C8
+ push {r3, lr}
+ bl FUN_020690E4
+ bl FUN_0206B688
+ pop {r3, pc}
+
+ thumb_func_start FUN_0206B6D4
+FUN_0206B6D4: ; 0x0206B6D4
+ cmp r1, #0x1
+ bne _0206B6E8
+ ldr r1, _0206B748 ; =0x000001EA
+ cmp r0, r1
+ bne _0206B6E2
+ add r1, #0xc
+ b _0206B6E4
+_0206B6E2:
+ add r1, #0xb
+_0206B6E4:
+ add r0, r1, #0x0
+ bx lr
+_0206B6E8:
+ cmp r2, #0x0
+ beq _0206B73A
+ ldr r3, _0206B74C ; =0x00000182
+ cmp r0, r3
+ bne _0206B6F8
+ add r3, #0x74
+ add r0, r2, r3
+ bx lr
+_0206B6F8:
+ cmp r0, #0xc9
+ bne _0206B702
+ add r3, #0x78
+ add r0, r2, r3
+ bx lr
+_0206B702:
+ add r1, r3, #0x0
+ add r1, #0x1a
+ cmp r0, r1
+ bne _0206B710
+ add r3, #0x93
+ add r0, r2, r3
+ bx lr
+_0206B710:
+ add r1, r3, #0x0
+ add r1, #0x1b
+ cmp r0, r1
+ bne _0206B71E
+ add r3, #0x95
+ add r0, r2, r3
+ bx lr
+_0206B71E:
+ add r1, r3, #0x0
+ add r1, #0x24
+ cmp r0, r1
+ bne _0206B72C
+ add r3, #0x97
+ add r0, r2, r3
+ bx lr
+_0206B72C:
+ add r1, r3, #0x0
+ add r1, #0x25
+ cmp r0, r1
+ bne _0206B73A
+ add r3, #0x98
+ add r0, r2, r3
+ bx lr
+_0206B73A:
+ ldr r1, _0206B750 ; =0x000001ED
+ cmp r0, r1
+ bls _0206B742
+ mov r0, #0x0
+_0206B742:
+ add r0, r0, #0x7
+ bx lr
+ nop
+_0206B748: .word 0x000001EA
+_0206B74C: .word 0x00000182
+_0206B750: .word 0x000001ED
+
+ thumb_func_start FUN_0206B754
+FUN_0206B754: ; 0x0206B754
+ push {r4, lr}
+ mov r1, #0xad
+ mov r2, #0x0
+ add r4, r0, #0x0
+ bl FUN_020672BC
+ ldr r2, _0206B7B8 ; =0x0000019D
+ cmp r0, r2
+ bhi _0206B784
+ sub r1, r2, #0x1
+ cmp r0, r1
+ blo _0206B774
+ beq _0206B7A4
+ cmp r0, r2
+ beq _0206B7A4
+ b _0206B7B4
+_0206B774:
+ cmp r0, #0xc9
+ bhi _0206B77C
+ beq _0206B79C
+ b _0206B7B4
+_0206B77C:
+ sub r2, #0x1b
+ cmp r0, r2
+ beq _0206B7A4
+ b _0206B7B4
+_0206B784:
+ add r1, r2, #0x0
+ add r1, #0x9
+ cmp r0, r1
+ bhi _0206B794
+ add r2, #0x9
+ cmp r0, r2
+ beq _0206B7A4
+ b _0206B7B4
+_0206B794:
+ add r2, #0xa
+ cmp r0, r2
+ beq _0206B7A4
+ b _0206B7B4
+_0206B79C:
+ add r0, r4, #0x0
+ bl FUN_020690D4
+ pop {r4, pc}
+_0206B7A4:
+ add r0, r4, #0x0
+ mov r1, #0x70
+ mov r2, #0x0
+ bl FUN_020672BC
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ pop {r4, pc}
+_0206B7B4:
+ mov r0, #0x0
+ pop {r4, pc}
+ .balign 4
+_0206B7B8: .word 0x0000019D
+
+ thumb_func_start FUN_0206B7BC
+FUN_0206B7BC: ; 0x0206B7BC
+ cmp r2, #0x1
+ bne _0206B7CE
+ ldr r1, _0206B830 ; =0x000001EA
+ cmp r0, r1
+ bne _0206B7CA
+ add r0, r1, #0x5
+ b _0206B82A
+_0206B7CA:
+ add r0, r1, #0x4
+ b _0206B82A
+_0206B7CE:
+ ldr r3, _0206B834 ; =0x000001ED
+ cmp r0, r3
+ bls _0206B7D8
+ mov r0, #0x0
+ b _0206B82A
+_0206B7D8:
+ cmp r1, #0x0
+ beq _0206B82A
+ add r2, r3, #0x0
+ sub r2, #0x6b
+ cmp r0, r2
+ bne _0206B7EA
+ add r0, r3, #0x2
+ add r0, r1, r0
+ b _0206B82A
+_0206B7EA:
+ cmp r0, #0xc9
+ bne _0206B7F4
+ add r0, r3, #0x5
+ add r0, r1, r0
+ b _0206B82A
+_0206B7F4:
+ add r2, r3, #0x0
+ sub r2, #0x51
+ cmp r0, r2
+ bne _0206B802
+ add r3, #0x21
+ add r0, r1, r3
+ b _0206B82A
+_0206B802:
+ add r2, r3, #0x0
+ sub r2, #0x50
+ cmp r0, r2
+ bne _0206B810
+ add r3, #0x23
+ add r0, r1, r3
+ b _0206B82A
+_0206B810:
+ add r2, r3, #0x0
+ sub r2, #0x47
+ cmp r0, r2
+ bne _0206B81E
+ add r3, #0x25
+ add r0, r1, r3
+ b _0206B82A
+_0206B81E:
+ add r2, r3, #0x0
+ sub r2, #0x46
+ cmp r0, r2
+ bne _0206B82A
+ add r3, #0x26
+ add r0, r1, r3
+_0206B82A:
+ ldr r1, _0206B838 ; =0x020F8074
+ ldrb r0, [r1, r0]
+ bx lr
+ .balign 4
+_0206B830: .word 0x000001EA
+_0206B834: .word 0x000001ED
+_0206B838: .word 0x020F8074
+
+ thumb_func_start FUN_0206B83C
+FUN_0206B83C: ; 0x0206B83C
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ bl FUN_02066A6C
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_0206B754
+ add r6, r0, #0x0
+ add r0, r5, #0x0
+ mov r1, #0x5
+ mov r2, #0x0
+ bl FUN_020672BC
+ add r7, r0, #0x0
+ add r0, r5, #0x0
+ mov r1, #0x4c
+ mov r2, #0x0
+ bl FUN_020672BC
+ str r0, [sp, #0x0]
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_02066A94
+ ldr r2, [sp, #0x0]
+ add r0, r7, #0x0
+ add r1, r6, #0x0
+ bl FUN_0206B7BC
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_0206B87C
+FUN_0206B87C: ; 0x0206B87C
+ push {r3, lr}
+ bl FUN_020690E4
+ bl FUN_0206B83C
+ pop {r3, pc}
+
+ thumb_func_start FUN_0206B888
+FUN_0206B888: ; 0x0206B888
+ mov r0, #0x0
+ bx lr
+
+ thumb_func_start FUN_0206B88C
+FUN_0206B88C: ; 0x0206B88C
+ mov r0, #0x2
+ bx lr
+
+ thumb_func_start FUN_0206B890
+FUN_0206B890: ; 0x0206B890
+ mov r0, #0x4
+ bx lr
+
+ thumb_func_start FUN_0206B894
+FUN_0206B894: ; 0x0206B894
+ mov r0, #0x6
+ bx lr
+
+ thumb_func_start FUN_0206B898
+FUN_0206B898: ; 0x0206B898
+ mov r0, #0x1
+ bx lr
+
+ thumb_func_start FUN_0206B89C
+FUN_0206B89C: ; 0x0206B89C
+ mov r0, #0x3
+ bx lr
+
+ thumb_func_start FUN_0206B8A0
+FUN_0206B8A0: ; 0x0206B8A0
+ mov r0, #0x5
+ bx lr
+
+ thumb_func_start FUN_0206B8A4
+FUN_0206B8A4: ; 0x0206B8A4
+ mov r0, #0x59
+ lsl r0, r0, #0x4
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_0206B8AC
+FUN_0206B8AC: ; 0x0206B8AC
+ push {r4, lr}
+ mov r1, #0x59
+ lsl r1, r1, #0x4
+ bl FUN_02016998
+ add r4, r0, #0x0
+ bl FUN_0206B8C0
+ add r0, r4, #0x0
+ pop {r4, pc}
+
+ thumb_func_start FUN_0206B8C0
+FUN_0206B8C0: ; 0x0206B8C0
+ ldr r3, _0206B8C8 ; =FUN_0206B8CC
+ mov r1, #0x6
+ bx r3
+ nop
+_0206B8C8: .word FUN_0206B8CC
+
+ thumb_func_start FUN_0206B8CC
+FUN_0206B8CC: ; 0x0206B8CC
+ push {r4-r6, lr}
+ add r6, r1, #0x0
+ add r5, r0, #0x0
+ cmp r6, #0x6
+ ble _0206B8DA
+ bl ErrorHandling
+_0206B8DA:
+ mov r2, #0x59
+ add r0, r5, #0x0
+ mov r1, #0x0
+ lsl r2, r2, #0x4
+ blx Call_FillMemWithValue
+ mov r4, #0x0
+ str r4, [r5, #0x4]
+ str r6, [r5, #0x0]
+ add r5, #0x8
+_0206B8EE:
+ add r0, r5, #0x0
+ bl FUN_02066978
+ add r4, r4, #0x1
+ add r5, #0xec
+ cmp r4, #0x6
+ blt _0206B8EE
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_0206B900
+FUN_0206B900: ; 0x0206B900
+ push {r4-r5}
+ add r3, r0, #0x0
+ add r2, r1, #0x0
+ ldr r1, [r3, #0x4]
+ ldr r0, [r3, #0x0]
+ cmp r1, r0
+ blt _0206B914
+ mov r0, #0x0
+ pop {r4-r5}
+ bx lr
+_0206B914:
+ mov r0, #0xec
+ mul r0, r1
+ add r5, r3, r0
+ add r5, #0x8
+ mov r4, #0x1d
+_0206B91E:
+ ldmia r2!, {r0-r1}
+ stmia r5!, {r0-r1}
+ sub r4, r4, #0x1
+ bne _0206B91E
+ ldr r0, [r2, #0x0]
+ str r0, [r5, #0x0]
+ ldr r0, [r3, #0x4]
+ add r0, r0, #0x1
+ str r0, [r3, #0x4]
+ mov r0, #0x1
+ pop {r4-r5}
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_0206B938
+FUN_0206B938: ; 0x0206B938
+ push {r3-r7, lr}
+ add r7, r0, #0x0
+ add r4, r1, #0x0
+ bpl _0206B944
+ bl ErrorHandling
+_0206B944:
+ ldr r0, [r7, #0x4]
+ cmp r4, r0
+ blt _0206B94E
+ bl ErrorHandling
+_0206B94E:
+ ldr r0, [r7, #0x0]
+ cmp r4, r0
+ blt _0206B958
+ bl ErrorHandling
+_0206B958:
+ ldr r0, [r7, #0x4]
+ cmp r0, #0x0
+ bgt _0206B962
+ bl ErrorHandling
+_0206B962:
+ ldr r0, [r7, #0x4]
+ sub r0, r0, #0x1
+ cmp r4, r0
+ bge _0206B992
+ mov r0, #0xec
+ mul r0, r4
+ add r6, r7, r0
+_0206B970:
+ add r5, r6, #0x0
+ add r3, r6, #0x0
+ add r5, #0xf4
+ add r3, #0x8
+ mov r2, #0x1d
+_0206B97A:
+ ldmia r5!, {r0-r1}
+ stmia r3!, {r0-r1}
+ sub r2, r2, #0x1
+ bne _0206B97A
+ ldr r0, [r5, #0x0]
+ add r4, r4, #0x1
+ str r0, [r3, #0x0]
+ ldr r0, [r7, #0x4]
+ add r6, #0xec
+ sub r0, r0, #0x1
+ cmp r4, r0
+ blt _0206B970
+_0206B992:
+ add r1, r7, #0x0
+ mov r0, #0xec
+ add r1, #0x8
+ mul r0, r4
+ add r0, r1, r0
+ bl FUN_02066978
+ ldr r0, [r7, #0x4]
+ sub r0, r0, #0x1
+ str r0, [r7, #0x4]
+ mov r0, #0x1
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_0206B9AC
+FUN_0206B9AC: ; 0x0206B9AC
+ ldr r0, [r0, #0x4]
+ bx lr
+
+ thumb_func_start FUN_0206B9B0
+FUN_0206B9B0: ; 0x0206B9B0
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ bpl _0206B9BC
+ bl ErrorHandling
+_0206B9BC:
+ ldr r0, [r5, #0x4]
+ cmp r4, r0
+ blt _0206B9C6
+ bl ErrorHandling
+_0206B9C6:
+ ldr r0, [r5, #0x0]
+ cmp r4, r0
+ blt _0206B9D0
+ bl ErrorHandling
+_0206B9D0:
+ mov r0, #0xec
+ add r5, #0x8
+ mul r0, r4
+ add r0, r5, r0
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_0206B9DC
+FUN_0206B9DC: ; 0x0206B9DC
+ push {r3-r7, lr}
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ add r6, r2, #0x0
+ cmp r4, #0x0
+ bge _0206B9EC
+ bl ErrorHandling
+_0206B9EC:
+ ldr r0, [r5, #0x4]
+ cmp r4, r0
+ blt _0206B9F6
+ bl ErrorHandling
+_0206B9F6:
+ ldr r0, [r5, #0x0]
+ cmp r4, r0
+ blt _0206BA00
+ bl ErrorHandling
+_0206BA00:
+ add r1, r5, #0x0
+ mov r0, #0xec
+ add r1, #0x8
+ mul r0, r4
+ add r4, r1, r0
+ add r0, r4, #0x0
+ mov r1, #0xab
+ mov r2, #0x0
+ bl FUN_020671BC
+ add r7, r0, #0x0
+ add r0, r6, #0x0
+ mov r1, #0xab
+ mov r2, #0x0
+ bl FUN_020671BC
+ sub r2, r7, r0
+ mov r3, #0x1d
+_0206BA24:
+ ldmia r6!, {r0-r1}
+ stmia r4!, {r0-r1}
+ sub r3, r3, #0x1
+ bne _0206BA24
+ ldr r0, [r6, #0x0]
+ str r0, [r4, #0x0]
+ ldr r0, [r5, #0x4]
+ add r0, r0, r2
+ str r0, [r5, #0x4]
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_0206BA38
+FUN_0206BA38: ; 0x0206BA38
+ push {r3-r7, lr}
+ add r5, r1, #0x0
+ add r4, r0, #0x0
+ add r6, r2, #0x0
+ cmp r5, #0x0
+ bge _0206BA48
+ bl ErrorHandling
+_0206BA48:
+ ldr r0, [r4, #0x4]
+ cmp r5, r0
+ blt _0206BA52
+ bl ErrorHandling
+_0206BA52:
+ ldr r0, [r4, #0x0]
+ cmp r5, r0
+ blt _0206BA5C
+ bl ErrorHandling
+_0206BA5C:
+ cmp r6, #0x0
+ bge _0206BA64
+ bl ErrorHandling
+_0206BA64:
+ ldr r0, [r4, #0x4]
+ cmp r6, r0
+ blt _0206BA6E
+ bl ErrorHandling
+_0206BA6E:
+ ldr r0, [r4, #0x0]
+ cmp r6, r0
+ blt _0206BA78
+ bl ErrorHandling
+_0206BA78:
+ mov r0, #0x0
+ mov r1, #0xec
+ bl FUN_02016998
+ mov r12, r0
+ add r1, r4, #0x0
+ mov r0, #0xec
+ add r1, #0x8
+ mul r0, r5
+ add r3, r1, r0
+ add r5, r3, #0x0
+ mov r2, r12
+ mov r7, #0x1d
+_0206BA92:
+ ldmia r5!, {r0-r1}
+ stmia r2!, {r0-r1}
+ sub r7, r7, #0x1
+ bne _0206BA92
+ ldr r0, [r5, #0x0]
+ add r4, #0x8
+ str r0, [r2, #0x0]
+ mov r0, #0xec
+ mul r0, r6
+ add r2, r4, r0
+ add r5, r2, #0x0
+ mov r4, #0x1d
+_0206BAAA:
+ ldmia r5!, {r0-r1}
+ stmia r3!, {r0-r1}
+ sub r4, r4, #0x1
+ bne _0206BAAA
+ ldr r0, [r5, #0x0]
+ mov r4, r12
+ str r0, [r3, #0x0]
+ mov r3, #0x1d
+_0206BABA:
+ ldmia r4!, {r0-r1}
+ stmia r2!, {r0-r1}
+ sub r3, r3, #0x1
+ bne _0206BABA
+ ldr r0, [r4, #0x0]
+ str r0, [r2, #0x0]
+ mov r0, r12
+ bl FUN_02016A18
+ mov r0, #0x0
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_0206BAD0
+FUN_0206BAD0: ; 0x0206BAD0
+ push {r3-r4}
+ add r4, r0, #0x0
+ add r3, r1, #0x0
+ mov r2, #0xb2
+_0206BAD8:
+ ldmia r4!, {r0-r1}
+ stmia r3!, {r0-r1}
+ sub r2, r2, #0x1
+ bne _0206BAD8
+ pop {r3-r4}
+ bx lr
+
+ thumb_func_start FUN_0206BAE4
+FUN_0206BAE4: ; 0x0206BAE4
+ push {r3-r7, lr}
+ add r6, r0, #0x0
+ ldr r0, [r6, #0x4]
+ add r7, r1, #0x0
+ mov r4, #0x0
+ cmp r0, #0x0
+ ble _0206BB0E
+ add r5, r6, #0x0
+ add r5, #0x8
+_0206BAF6:
+ add r0, r5, #0x0
+ mov r1, #0x5
+ mov r2, #0x0
+ bl FUN_020671BC
+ cmp r7, r0
+ beq _0206BB0E
+ ldr r0, [r6, #0x4]
+ add r4, r4, #0x1
+ add r5, #0xec
+ cmp r4, r0
+ blt _0206BAF6
+_0206BB0E:
+ ldr r0, [r6, #0x4]
+ cmp r4, r0
+ beq _0206BB18
+ mov r0, #0x1
+ pop {r3-r7, pc}
+_0206BB18:
+ mov r0, #0x0
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_0206BB1C
+FUN_0206BB1C: ; 0x0206BB1C
+ ldr r3, _0206BB24 ; =FUN_02022610
+ mov r1, #0x2
+ bx r3
+ nop
+_0206BB24: .word FUN_02022610
+
+ thumb_func_start FUN_0206BB28
+FUN_0206BB28: ; 0x0206BB28
+ push {r3, lr}
+ bl FUN_02024DA0
+ bl FUN_0206BB34
+ pop {r3, pc}
+
+ thumb_func_start FUN_0206BB34
+FUN_0206BB34: ; 0x0206BB34
+ push {r3, lr}
+ bl FUN_02024CA4
+ cmp r0, #0x1
+ bne _0206BB42
+ mov r0, #0x1
+ pop {r3, pc}
+_0206BB42:
+ mov r0, #0x0
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_0206BB48
+FUN_0206BB48: ; 0x0206BB48
+ push {r3, lr}
+ cmp r0, #0x0
+ bne _0206BB58
+ lsl r0, r1, #0x10
+ lsr r0, r0, #0x10
+ bl FUN_02069B40
+ add r1, r0, #0x0
+_0206BB58:
+ add r0, r1, #0x0
+ pop {r3, pc}
+
+ thumb_func_start FUN_0206BB5C
+FUN_0206BB5C: ; 0x0206BB5C
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ bl FUN_02087A6C
+ mov r1, #0x0
+ add r2, r5, #0x0
+ add r4, r0, #0x0
+ bl FUN_02087A98
+ add r0, r4, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_0206BB74
+FUN_0206BB74: ; 0x0206BB74
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl FUN_02087B0C
+ add r0, r4, #0x0
+ bl FUN_02087A84
+ pop {r4, pc}
+
+ thumb_func_start FUN_0206BB84
+FUN_0206BB84: ; 0x0206BB84
+ push {r3-r7, lr}
+ add r7, r1, #0x0
+ add r4, r0, #0x0
+ str r2, [sp, #0x0]
+ add r0, r7, #0x0
+ mov r1, #0x5
+ mov r2, #0x0
+ bl FUN_020671BC
+ lsl r0, r0, #0x10
+ lsr r6, r0, #0x10
+ cmp r4, #0x0
+ bne _0206BBA2
+ mov r0, #0x1
+ pop {r3-r7, pc}
+_0206BBA2:
+ add r0, r4, #0x0
+ mov r1, #0x2
+ bl FUN_02023B0C
+ add r5, r0, #0x0
+ add r0, r7, #0x0
+ mov r1, #0xa0
+ mov r2, #0x0
+ bl FUN_020671BC
+ cmp r0, r5
+ bls _0206BBBE
+ mov r0, #0x0
+ pop {r3-r7, pc}
+_0206BBBE:
+ add r0, r7, #0x0
+ mov r1, #0x4c
+ mov r2, #0x0
+ bl FUN_020671BC
+ cmp r0, #0x0
+ beq _0206BBD0
+ mov r0, #0x0
+ pop {r3-r7, pc}
+_0206BBD0:
+ add r0, r4, #0x0
+ mov r1, #0x4
+ bl FUN_02023B0C
+ cmp r0, #0x0
+ bne _0206BBEA
+ add r0, r6, #0x0
+ bl FUN_020695A8
+ cmp r6, r0
+ beq _0206BBEA
+ mov r0, #0x0
+ pop {r3-r7, pc}
+_0206BBEA:
+ add r0, r4, #0x0
+ mov r1, #0x5
+ bl FUN_02023B0C
+ add r5, r0, #0x0
+ beq _0206BC14
+ ldr r0, [sp, #0x0]
+ add r1, r6, #0x0
+ bl FUN_02087B58
+ cmp r5, #0x0
+ ble _0206BC0A
+ cmp r0, r5
+ bge _0206BC14
+ mov r0, #0x0
+ pop {r3-r7, pc}
+_0206BC0A:
+ neg r1, r5
+ cmp r0, r1
+ ble _0206BC14
+ mov r0, #0x0
+ pop {r3-r7, pc}
+_0206BC14:
+ add r0, r4, #0x0
+ mov r1, #0x7
+ bl FUN_02023B0C
+ mov r1, #0xa
+ add r5, r0, #0x0
+ mul r5, r1
+ beq _0206BC42
+ ldr r0, [sp, #0x0]
+ add r1, r6, #0x0
+ bl FUN_02087B78
+ cmp r5, #0x0
+ ble _0206BC38
+ cmp r0, r5
+ bge _0206BC42
+ mov r0, #0x0
+ pop {r3-r7, pc}
+_0206BC38:
+ neg r1, r5
+ cmp r0, r1
+ ble _0206BC42
+ mov r0, #0x0
+ pop {r3-r7, pc}
+_0206BC42:
+ add r0, r4, #0x0
+ mov r1, #0xb
+ bl FUN_02023B0C
+ cmp r0, #0x0
+ bne _0206BC5C
+ add r0, r7, #0x0
+ bl FUN_0206A998
+ cmp r0, #0x0
+ beq _0206BC5C
+ mov r0, #0x0
+ pop {r3-r7, pc}
+_0206BC5C:
+ mov r0, #0x1
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_0206BC60
+FUN_0206BC60: ; 0x0206BC60
+ push {r3-r7, lr}
+ sub sp, #0x30
+ str r0, [sp, #0x0]
+ mov r0, #0x0
+ str r0, [sp, #0x14]
+ str r0, [sp, #0x10]
+ ldr r0, [sp, #0x0]
+ str r1, [sp, #0x4]
+ str r2, [sp, #0x8]
+ str r3, [sp, #0xc]
+ cmp r0, #0x0
+ bne _0206BC7E
+ ldr r0, [sp, #0x14]
+ add sp, #0x30
+ pop {r3-r7, pc}
+_0206BC7E:
+ ldr r1, [sp, #0x14]
+ add r2, sp, #0x24
+ add r3, sp, #0x18
+ mov r0, #0x0
+_0206BC86:
+ ldr r4, [sp, #0xc]
+ strh r0, [r2, #0x0]
+ strh r0, [r3, #0x0]
+ ldrb r4, [r4, r1]
+ cmp r4, #0x0
+ beq _0206BC98
+ ldr r4, [sp, #0x14]
+ add r4, r4, #0x1
+ str r4, [sp, #0x14]
+_0206BC98:
+ add r1, r1, #0x1
+ add r2, r2, #0x2
+ add r3, r3, #0x2
+ cmp r1, #0x6
+ blt _0206BC86
+ ldr r0, [sp, #0x0]
+ mov r1, #0x1
+ bl FUN_02023B0C
+ ldr r1, [sp, #0x14]
+ cmp r1, r0
+ beq _0206BCB6
+ add sp, #0x30
+ mov r0, #0x4
+ pop {r3-r7, pc}
+_0206BCB6:
+ mov r5, #0x0
+ add r7, sp, #0x24
+ add r6, sp, #0x18
+_0206BCBC:
+ ldr r0, [sp, #0xc]
+ ldrb r1, [r0, r5]
+ cmp r1, #0x0
+ beq _0206BD0A
+ ldr r0, [sp, #0x4]
+ sub r1, r1, #0x1
+ bl FUN_0206B9B0
+ add r4, r0, #0x0
+ ldr r0, [sp, #0x0]
+ ldr r2, [sp, #0x8]
+ add r1, r4, #0x0
+ bl FUN_0206BB84
+ cmp r0, #0x0
+ bne _0206BCE2
+ add sp, #0x30
+ mov r0, #0x5
+ pop {r3-r7, pc}
+_0206BCE2:
+ add r0, r4, #0x0
+ mov r1, #0x5
+ mov r2, #0x0
+ bl FUN_020671BC
+ strh r0, [r7, #0x0]
+ add r0, r4, #0x0
+ mov r1, #0x6
+ mov r2, #0x0
+ bl FUN_020671BC
+ strh r0, [r6, #0x0]
+ add r0, r4, #0x0
+ mov r1, #0xa0
+ mov r2, #0x0
+ bl FUN_020671BC
+ ldr r1, [sp, #0x10]
+ add r0, r1, r0
+ str r0, [sp, #0x10]
+_0206BD0A:
+ add r5, r5, #0x1
+ add r7, r7, #0x2
+ add r6, r6, #0x2
+ cmp r5, #0x6
+ blt _0206BCBC
+ ldr r0, [sp, #0x0]
+ mov r1, #0x3
+ bl FUN_02023B0C
+ ldr r1, [sp, #0x10]
+ cmp r1, r0
+ ble _0206BD2C
+ cmp r0, #0x0
+ beq _0206BD2C
+ add sp, #0x30
+ mov r0, #0x1
+ pop {r3-r7, pc}
+_0206BD2C:
+ ldr r0, [sp, #0x0]
+ mov r1, #0xa
+ bl FUN_02023B0C
+ cmp r0, #0x0
+ bne _0206BD70
+ ldr r0, [sp, #0x14]
+ cmp r0, #0x1
+ ble _0206BD70
+ add r4, sp, #0x24
+ mov r0, #0x0
+ add r2, r4, #0x0
+_0206BD44:
+ add r3, r0, #0x1
+ cmp r3, #0x6
+ bge _0206BD68
+ ldrh r6, [r4, #0x0]
+ lsl r1, r3, #0x1
+ add r5, r2, r1
+_0206BD50:
+ ldrh r1, [r5, #0x0]
+ cmp r6, r1
+ bne _0206BD60
+ cmp r6, #0x0
+ beq _0206BD60
+ add sp, #0x30
+ mov r0, #0x2
+ pop {r3-r7, pc}
+_0206BD60:
+ add r3, r3, #0x1
+ add r5, r5, #0x2
+ cmp r3, #0x6
+ blt _0206BD50
+_0206BD68:
+ add r0, r0, #0x1
+ add r4, r4, #0x2
+ cmp r0, #0x5
+ blt _0206BD44
+_0206BD70:
+ ldr r0, [sp, #0x0]
+ mov r1, #0x9
+ bl FUN_02023B0C
+ cmp r0, #0x0
+ bne _0206BDC0
+ ldr r0, [sp, #0x14]
+ cmp r0, #0x1
+ ble _0206BDC0
+ add r2, sp, #0x18
+ mov r5, #0x0
+ add r7, sp, #0x24
+ mov r12, r2
+_0206BD8A:
+ add r6, r5, #0x1
+ cmp r6, #0x6
+ bge _0206BDB6
+ lsl r1, r6, #0x1
+ mov r0, r12
+ add r3, r0, r1
+ ldrh r4, [r2, #0x0]
+ ldrh r0, [r7, #0x0]
+_0206BD9A:
+ ldrh r1, [r3, #0x0]
+ cmp r4, r1
+ bne _0206BDAE
+ cmp r0, #0x0
+ beq _0206BDAE
+ cmp r4, #0x0
+ beq _0206BDAE
+ add sp, #0x30
+ mov r0, #0x3
+ pop {r3-r7, pc}
+_0206BDAE:
+ add r6, r6, #0x1
+ add r3, r3, #0x2
+ cmp r6, #0x6
+ blt _0206BD9A
+_0206BDB6:
+ add r5, r5, #0x1
+ add r2, r2, #0x2
+ add r7, r7, #0x2
+ cmp r5, #0x5
+ blt _0206BD8A
+_0206BDC0:
+ mov r0, #0x0
+ add sp, #0x30
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_0206BDC8
+FUN_0206BDC8: ; 0x0206BDC8
+ push {r4-r7, lr}
+ sub sp, #0x1c
+ str r0, [sp, #0xc]
+ ldr r0, [sp, #0x30]
+ str r1, [sp, #0x10]
+ lsl r0, r0, #0x1
+ ldr r1, [sp, #0xc]
+ str r0, [sp, #0x18]
+ ldrh r0, [r1, r0]
+ add r6, r2, #0x0
+ str r3, [sp, #0x14]
+ ldr r5, [sp, #0x38]
+ ldr r7, [sp, #0x34]
+ cmp r0, #0x0
+ beq _0206BE12
+ ldr r0, [sp, #0x18]
+ ldrh r0, [r6, r0]
+ cmp r0, #0x0
+ bne _0206BE12
+ ldr r1, [sp, #0x10]
+ ldr r0, [sp, #0x18]
+ ldrh r1, [r1, r0]
+ add r0, r3, #0x0
+ sub r0, r0, r1
+ str r0, [sp, #0x14]
+ bpl _0206BE02
+ add sp, #0x1c
+ mov r0, #0x0
+ pop {r4-r7, pc}
+_0206BE02:
+ sub r7, r7, #0x1
+ bne _0206BE0C
+ add sp, #0x1c
+ mov r0, #0x1
+ pop {r4-r7, pc}
+_0206BE0C:
+ ldr r0, [sp, #0x18]
+ mov r1, #0x1
+ strh r1, [r6, r0]
+_0206BE12:
+ ldr r0, [sp, #0x30]
+ add r4, r0, #0x1
+ cmp r4, r5
+ bge _0206BE3C
+_0206BE1A:
+ str r4, [sp, #0x0]
+ str r7, [sp, #0x4]
+ ldr r0, [sp, #0xc]
+ ldr r1, [sp, #0x10]
+ ldr r3, [sp, #0x14]
+ add r2, r6, #0x0
+ str r5, [sp, #0x8]
+ bl FUN_0206BDC8
+ cmp r0, #0x0
+ beq _0206BE36
+ add sp, #0x1c
+ mov r0, #0x1
+ pop {r4-r7, pc}
+_0206BE36:
+ add r4, r4, #0x1
+ cmp r4, r5
+ blt _0206BE1A
+_0206BE3C:
+ ldr r1, [sp, #0x18]
+ mov r0, #0x0
+ strh r0, [r6, r1]
+ add sp, #0x1c
+ pop {r4-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_0206BE48
+FUN_0206BE48: ; 0x0206BE48
+ push {r4-r7, lr}
+ sub sp, #0x54
+ str r0, [sp, #0xc]
+ add r0, r1, #0x0
+ str r1, [sp, #0x10]
+ str r2, [sp, #0x14]
+ bl FUN_0206B9AC
+ str r0, [sp, #0x20]
+ add r6, r0, #0x0
+ add r0, sp, #0x30
+ mov r1, #0x0
+ mov r2, #0xc
+ blx MI_CpuFill8
+ ldr r0, [sp, #0x20]
+ mov r7, #0x0
+ cmp r0, #0x0
+ ble _0206BEB2
+ add r4, sp, #0x48
+ add r5, sp, #0x3c
+_0206BE72:
+ ldr r0, [sp, #0x10]
+ add r1, r7, #0x0
+ bl FUN_0206B9B0
+ str r0, [sp, #0x24]
+ mov r1, #0x5
+ mov r2, #0x0
+ bl FUN_020671BC
+ strh r0, [r4, #0x0]
+ ldr r0, [sp, #0x24]
+ mov r1, #0xa0
+ mov r2, #0x0
+ bl FUN_020671BC
+ strh r0, [r5, #0x0]
+ ldr r0, [sp, #0xc]
+ ldr r1, [sp, #0x24]
+ ldr r2, [sp, #0x14]
+ bl FUN_0206BB84
+ cmp r0, #0x0
+ bne _0206BEA6
+ mov r0, #0x0
+ strh r0, [r4, #0x0]
+ sub r6, r6, #0x1
+_0206BEA6:
+ ldr r0, [sp, #0x20]
+ add r7, r7, #0x1
+ add r4, r4, #0x2
+ add r5, r5, #0x2
+ cmp r7, r0
+ blt _0206BE72
+_0206BEB2:
+ ldr r0, [sp, #0xc]
+ mov r1, #0xa
+ bl FUN_02023B0C
+ cmp r0, #0x0
+ bne _0206BF32
+ ldr r0, [sp, #0x20]
+ cmp r0, #0x1
+ ble _0206BF32
+ mov r0, #0x0
+ str r0, [sp, #0x18]
+ ldr r0, [sp, #0x20]
+ sub r0, r0, #0x1
+ str r0, [sp, #0x28]
+ cmp r0, #0x0
+ ble _0206BF32
+ add r0, sp, #0x3c
+ add r3, sp, #0x48
+ str r0, [sp, #0x1c]
+ str r3, [sp, #0x2c]
+ mov r12, r0
+_0206BEDC:
+ ldr r0, [sp, #0x18]
+ add r2, r0, #0x1
+ ldr r0, [sp, #0x20]
+ cmp r2, r0
+ bge _0206BF1E
+ ldr r1, [sp, #0x2c]
+ lsl r0, r2, #0x1
+ add r4, r1, r0
+ mov r1, r12
+ add r5, r1, r0
+ ldr r0, [sp, #0x1c]
+ ldrh r7, [r0, #0x0]
+_0206BEF4:
+ ldrh r1, [r3, #0x0]
+ ldrh r0, [r4, #0x0]
+ cmp r1, r0
+ bne _0206BF12
+ cmp r1, #0x0
+ beq _0206BF12
+ ldrh r0, [r5, #0x0]
+ cmp r7, r0
+ bls _0206BF0C
+ mov r0, #0x0
+ strh r0, [r3, #0x0]
+ b _0206BF10
+_0206BF0C:
+ mov r0, #0x0
+ strh r0, [r4, #0x0]
+_0206BF10:
+ sub r6, r6, #0x1
+_0206BF12:
+ ldr r0, [sp, #0x20]
+ add r2, r2, #0x1
+ add r4, r4, #0x2
+ add r5, r5, #0x2
+ cmp r2, r0
+ blt _0206BEF4
+_0206BF1E:
+ ldr r0, [sp, #0x1c]
+ add r3, r3, #0x2
+ add r0, r0, #0x2
+ str r0, [sp, #0x1c]
+ ldr r0, [sp, #0x18]
+ add r1, r0, #0x1
+ ldr r0, [sp, #0x28]
+ str r1, [sp, #0x18]
+ cmp r1, r0
+ blt _0206BEDC
+_0206BF32:
+ ldr r0, [sp, #0xc]
+ mov r1, #0x1
+ bl FUN_02023B0C
+ add r7, r0, #0x0
+ cmp r6, r7
+ bge _0206BF46
+ add sp, #0x54
+ mov r0, #0x4
+ pop {r4-r7, pc}
+_0206BF46:
+ ldr r0, [sp, #0xc]
+ mov r1, #0x3
+ bl FUN_02023B0C
+ add r5, r0, #0x0
+ bne _0206BF58
+ add sp, #0x54
+ mov r0, #0x0
+ pop {r4-r7, pc}
+_0206BF58:
+ ldr r0, [sp, #0x20]
+ mov r4, #0x0
+ cmp r0, #0x0
+ ble _0206BF88
+ add r6, sp, #0x48
+_0206BF62:
+ str r4, [sp, #0x0]
+ ldr r0, [sp, #0x20]
+ str r7, [sp, #0x4]
+ str r0, [sp, #0x8]
+ add r0, r6, #0x0
+ add r1, sp, #0x3c
+ add r2, sp, #0x30
+ add r3, r5, #0x0
+ bl FUN_0206BDC8
+ cmp r0, #0x0
+ beq _0206BF80
+ add sp, #0x54
+ mov r0, #0x0
+ pop {r4-r7, pc}
+_0206BF80:
+ ldr r0, [sp, #0x20]
+ add r4, r4, #0x1
+ cmp r4, r0
+ blt _0206BF62
+_0206BF88:
+ mov r0, #0x1
+ add sp, #0x54
+ pop {r4-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_0206BF90
+FUN_0206BF90: ; 0x0206BF90
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ mov r0, #0x5
+ mov r1, #0x8
+ bl FUN_02016998
+ add r4, r0, #0x0
+ mov r0, #0x5
+ mov r1, #0x8
+ bl FUN_02016998
+ add r6, r0, #0x0
+ ldr r0, _0206BFE4 ; =0x020F828C
+ mov r1, #0xc
+ add r2, r5, #0x0
+ bl FUN_0202D8D0
+ str r5, [r4, #0x0]
+ mov r0, #0x0
+ strb r0, [r4, #0x4]
+ str r5, [r6, #0x0]
+ strb r0, [r6, #0x4]
+ add r0, r5, #0x0
+ add r1, r4, #0x4
+ bl FUN_02231344
+ add r0, r5, #0x0
+ add r1, r6, #0x4
+ bl FUN_02231350
+ ldr r0, _0206BFE8 ; =FUN_0206C550
+ add r1, r4, #0x0
+ mov r2, #0x0
+ bl FUN_0200CA44
+ ldr r0, _0206BFEC ; =FUN_0206C5DC
+ add r1, r6, #0x0
+ mov r2, #0x0
+ bl FUN_0200CA44
+ pop {r4-r6, pc}
+ nop
+_0206BFE4: .word 0x020F828C
+_0206BFE8: .word FUN_0206C550
+_0206BFEC: .word FUN_0206C5DC
+
+ thumb_func_start FUN_0206BFF0
+FUN_0206BFF0: ; 0x0206BFF0
+ ldr r3, _0206BFFC ; =FUN_0202D8D0
+ add r2, r0, #0x0
+ ldr r0, _0206C000 ; =0x020F828C
+ mov r1, #0xc
+ bx r3
+ nop
+_0206BFFC: .word FUN_0202D8D0
+_0206C000: .word 0x020F828C
+
+ thumb_func_start FUN_0206C004
+FUN_0206C004: ; 0x0206C004
+ mov r0, #0x4
+ bx lr
+
+ thumb_func_start FUN_0206C008
+FUN_0206C008: ; 0x0206C008
+ ldr r3, _0206C00C ; =FUN_02023924
+ bx r3
+ .balign 4
+_0206C00C: .word FUN_02023924
+
+ thumb_func_start FUN_0206C010
+FUN_0206C010: ; 0x0206C010
+ ldr r3, _0206C014 ; =FUN_0206B8A4
+ bx r3
+ .balign 4
+_0206C014: .word FUN_0206B8A4
+
+ thumb_func_start FUN_0206C018
+FUN_0206C018: ; 0x0206C018
+ mov r0, #0xfa
+ lsl r0, r0, #0x2
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_0206C020
+FUN_0206C020: ; 0x0206C020
+ mov r0, #0x34
+ bx lr
+
+ thumb_func_start FUN_0206C024
+FUN_0206C024: ; 0x0206C024
+ ldr r3, [r1, #0x0]
+ mov r1, #0x80
+ ldr r2, [r3, #0x0]
+ tst r1, r2
+ beq _0206C038
+ lsl r0, r0, #0x3
+ add r0, r3, r0
+ add r0, #0xf8
+ ldr r0, [r0, #0x0]
+ bx lr
+_0206C038:
+ lsl r0, r0, #0x2
+ add r0, r3, r0
+ add r0, #0xf8
+ ldr r0, [r0, #0x0]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_0206C044
+FUN_0206C044: ; 0x0206C044
+ ldr r1, [r1, #0x0]
+ mov r2, #0x80
+ ldr r3, [r1, #0x0]
+ tst r2, r3
+ beq _0206C05A
+ lsl r2, r0, #0x1
+ mov r0, #0x34
+ add r1, #0x28
+ mul r0, r2
+ add r0, r1, r0
+ bx lr
+_0206C05A:
+ mov r2, #0x34
+ add r1, #0x28
+ mul r2, r0
+ add r0, r1, r2
+ bx lr
+
+ thumb_func_start FUN_0206C064
+FUN_0206C064: ; 0x0206C064
+ ldr r3, [r1, #0x0]
+ mov r1, #0x80
+ ldr r2, [r3, #0x0]
+ tst r1, r2
+ beq _0206C076
+ lsl r0, r0, #0x3
+ add r0, r3, r0
+ ldr r0, [r0, #0x4]
+ bx lr
+_0206C076:
+ lsl r0, r0, #0x2
+ add r0, r3, r0
+ ldr r0, [r0, #0x4]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_0206C080
+FUN_0206C080: ; 0x0206C080
+ ldr r3, [r1, #0x0]
+ mov r1, #0x80
+ ldr r2, [r3, #0x0]
+ tst r2, r1
+ beq _0206C094
+ lsl r0, r0, #0x3
+ add r0, r3, r0
+ add r1, #0x98
+ ldr r0, [r0, r1]
+ bx lr
+_0206C094:
+ lsl r0, r0, #0x2
+ add r0, r3, r0
+ add r1, #0x98
+ ldr r0, [r0, r1]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_0206C0A0
+FUN_0206C0A0: ; 0x0206C0A0
+ ldr r0, [r1, #0x0]
+ add r0, #0x5c
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_0206C0A8
+FUN_0206C0A8: ; 0x0206C0A8
+ ldr r0, [r1, #0x0]
+ add r0, #0xc4
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_0206C0B0
+FUN_0206C0B0: ; 0x0206C0B0
+ ldr r0, [r1, #0x0]
+ ldr r0, [r0, #0x8]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_0206C0B8
+FUN_0206C0B8: ; 0x0206C0B8
+ ldr r0, [r1, #0x0]
+ ldr r0, [r0, #0x10]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_0206C0C0
+FUN_0206C0C0: ; 0x0206C0C0
+ lsl r0, r0, #0x2
+ add r0, r1, r0
+ ldr r0, [r0, #0x10]
+ bx lr
+
+ thumb_func_start FUN_0206C0C8
+FUN_0206C0C8: ; 0x0206C0C8
+ push {r4-r7, lr}
+ sub sp, #0xc
+ str r0, [sp, #0x0]
+ str r1, [sp, #0x4]
+ mov r0, #0x5
+ mov r1, #0x4
+ str r2, [sp, #0x8]
+ add r7, r3, #0x0
+ bl FUN_02016998
+ add r6, r0, #0x0
+ ldr r0, [sp, #0x0]
+ bl FUN_022300D4
+ add r5, r0, #0x0
+ ldr r0, [sp, #0x0]
+ bl FUN_022300F4
+ add r4, r0, #0x0
+ ldr r0, [sp, #0x0]
+ bl FUN_02230100
+ mov r12, r0
+ add r0, sp, #0x10
+ ldrh r3, [r4, #0x0]
+ ldrb r0, [r0, #0x10]
+ add r1, r3, #0x5
+ add r2, r1, r0
+ mov r1, #0x1
+ lsl r1, r1, #0xc
+ cmp r2, r1
+ bls _0206C110
+ mov r1, r12
+ strh r3, [r1, #0x0]
+ mov r1, #0x0
+ strh r1, [r4, #0x0]
+_0206C110:
+ ldr r1, [sp, #0x4]
+ mov r3, #0x0
+ strb r1, [r6, #0x0]
+ ldr r1, [sp, #0x8]
+ strb r1, [r6, #0x1]
+ add r1, sp, #0x10
+ ldrb r1, [r1, #0x10]
+ strh r1, [r6, #0x2]
+_0206C120:
+ ldrb r2, [r6, r3]
+ ldrh r1, [r4, #0x0]
+ add r3, r3, #0x1
+ strb r2, [r5, r1]
+ ldrh r1, [r4, #0x0]
+ add r1, r1, #0x1
+ strh r1, [r4, #0x0]
+ cmp r3, #0x4
+ blo _0206C120
+ mov r3, #0x0
+ cmp r0, #0x0
+ ble _0206C14A
+_0206C138:
+ ldrb r2, [r7, r3]
+ ldrh r1, [r4, #0x0]
+ add r3, r3, #0x1
+ strb r2, [r5, r1]
+ ldrh r1, [r4, #0x0]
+ add r1, r1, #0x1
+ strh r1, [r4, #0x0]
+ cmp r3, r0
+ blt _0206C138
+_0206C14A:
+ add r0, r6, #0x0
+ bl FUN_02016A18
+ add sp, #0xc
+ pop {r4-r7, pc}
+
+ thumb_func_start FUN_0206C154
+FUN_0206C154: ; 0x0206C154
+ push {r3-r7, lr}
+ str r3, [sp, #0x0]
+ add r0, r3, #0x0
+ add r5, r1, #0x0
+ add r6, r2, #0x0
+ bl FUN_022300DC
+ add r7, r0, #0x0
+ ldr r0, [sp, #0x0]
+ bl FUN_02230118
+ add r4, r0, #0x0
+ ldr r0, [sp, #0x0]
+ bl FUN_02230124
+ ldrh r1, [r4, #0x0]
+ add r2, r1, r5
+ add r3, r2, #0x1
+ mov r2, #0x1
+ lsl r2, r2, #0xc
+ cmp r3, r2
+ ble _0206C186
+ strh r1, [r0, #0x0]
+ mov r0, #0x0
+ strh r0, [r4, #0x0]
+_0206C186:
+ mov r0, #0x0
+ cmp r5, #0x0
+ ble _0206C19E
+_0206C18C:
+ ldrb r2, [r6, r0]
+ ldrh r1, [r4, #0x0]
+ add r0, r0, #0x1
+ strb r2, [r7, r1]
+ ldrh r1, [r4, #0x0]
+ add r1, r1, #0x1
+ strh r1, [r4, #0x0]
+ cmp r0, r5
+ blt _0206C18C
+_0206C19E:
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_0206C1A0
+FUN_0206C1A0: ; 0x0206C1A0
+ push {r0-r3}
+ push {r3, lr}
+ bl FUN_02030C58
+ mov r1, #0x42
+ lsl r1, r1, #0x2
+ cmp r0, r1
+ beq _0206C1BA
+ mov r0, #0x0
+ pop {r3}
+ pop {r3}
+ add sp, #0x10
+ bx r3
+_0206C1BA:
+ mov r0, #0x33
+ bl FUN_020315D8
+ cmp r0, #0x0
+ bne _0206C1CE
+ mov r0, #0x0
+ pop {r3}
+ pop {r3}
+ add sp, #0x10
+ bx r3
+_0206C1CE:
+ mov r0, #0x18
+ add r1, sp, #0xc
+ mov r2, #0x4
+ bl FUN_02030ADC
+ pop {r3}
+ pop {r3}
+ add sp, #0x10
+ bx r3
+
+ thumb_func_start FUN_0206C1E0
+FUN_0206C1E0: ; 0x0206C1E0
+ ldr r1, [r3, #0x0]
+ lsl r0, r0, #0x2
+ add r1, r1, r0
+ mov r0, #0x5f
+ ldr r2, [r2, #0x0]
+ lsl r0, r0, #0x2
+ str r2, [r1, r0]
+ ldr r0, _0206C1F8 ; =0x00001020
+ ldrb r1, [r3, r0]
+ add r1, r1, #0x1
+ strb r1, [r3, r0]
+ bx lr
+ .balign 4
+_0206C1F8: .word 0x00001020
+
+ thumb_func_start FUN_0206C1FC
+FUN_0206C1FC: ; 0x0206C1FC
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl FUN_02030C58
+ mov r1, #0x42
+ lsl r1, r1, #0x2
+ cmp r0, r1
+ beq _0206C210
+ mov r0, #0x0
+ pop {r4, pc}
+_0206C210:
+ ldr r0, [r4, #0x0]
+ add r4, #0x20
+ add r0, #0xf8
+ ldr r0, [r0, #0x0]
+ add r1, r4, #0x0
+ bl FUN_0202393C
+ mov r0, #0x1
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0206C224
+FUN_0206C224: ; 0x0206C224
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl FUN_02030C58
+ mov r1, #0x42
+ lsl r1, r1, #0x2
+ cmp r0, r1
+ beq _0206C238
+ mov r0, #0x0
+ pop {r4, pc}
+_0206C238:
+ mov r0, #0x34
+ bl FUN_020315D8
+ cmp r0, #0x0
+ bne _0206C246
+ mov r0, #0x0
+ pop {r4, pc}
+_0206C246:
+ bl FUN_02023924
+ add r4, #0x20
+ add r2, r0, #0x0
+ mov r0, #0x19
+ add r1, r4, #0x0
+ bl FUN_02030A78
+ pop {r4, pc}
+
+ thumb_func_start FUN_0206C258
+FUN_0206C258: ; 0x0206C258
+ ldr r0, _0206C264 ; =0x00001020
+ ldrb r1, [r3, r0]
+ add r1, r1, #0x1
+ strb r1, [r3, r0]
+ bx lr
+ nop
+_0206C264: .word 0x00001020
+
+ thumb_func_start FUN_0206C268
+FUN_0206C268: ; 0x0206C268
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl FUN_02030C58
+ mov r1, #0x42
+ lsl r1, r1, #0x2
+ cmp r0, r1
+ beq _0206C27C
+ mov r0, #0x0
+ pop {r4, pc}
+_0206C27C:
+ ldr r3, [r4, #0x0]
+ add r4, #0x20
+ add r3, #0x28
+ mov r2, #0x6
+_0206C284:
+ ldmia r3!, {r0-r1}
+ stmia r4!, {r0-r1}
+ sub r2, r2, #0x1
+ bne _0206C284
+ ldr r0, [r3, #0x0]
+ str r0, [r4, #0x0]
+ mov r0, #0x1
+ pop {r4, pc}
+
+ thumb_func_start FUN_0206C294
+FUN_0206C294: ; 0x0206C294
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl FUN_02030C58
+ mov r1, #0x42
+ lsl r1, r1, #0x2
+ cmp r0, r1
+ beq _0206C2A8
+ mov r0, #0x0
+ pop {r4, pc}
+_0206C2A8:
+ mov r0, #0x35
+ bl FUN_020315D8
+ cmp r0, #0x0
+ bne _0206C2B6
+ mov r0, #0x0
+ pop {r4, pc}
+_0206C2B6:
+ add r4, #0x20
+ mov r0, #0x1a
+ add r1, r4, #0x0
+ mov r2, #0x34
+ bl FUN_02030A78
+ pop {r4, pc}
+
+ thumb_func_start FUN_0206C2C4
+FUN_0206C2C4: ; 0x0206C2C4
+ ldr r0, _0206C2D0 ; =0x00001020
+ ldrb r1, [r3, r0]
+ add r1, r1, #0x1
+ strb r1, [r3, r0]
+ bx lr
+ nop
+_0206C2D0: .word 0x00001020
+
+ thumb_func_start FUN_0206C2D4
+FUN_0206C2D4: ; 0x0206C2D4
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl FUN_02030C58
+ mov r1, #0x42
+ lsl r1, r1, #0x2
+ cmp r0, r1
+ beq _0206C2E8
+ mov r0, #0x0
+ pop {r4, pc}
+_0206C2E8:
+ ldr r0, [r4, #0x0]
+ add r4, #0x20
+ ldr r0, [r0, #0x4]
+ add r1, r4, #0x0
+ bl FUN_0206BAD0
+ mov r0, #0x1
+ pop {r4, pc}
+
+ thumb_func_start FUN_0206C2F8
+FUN_0206C2F8: ; 0x0206C2F8
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl FUN_02030C58
+ mov r1, #0x42
+ lsl r1, r1, #0x2
+ cmp r0, r1
+ beq _0206C30C
+ mov r0, #0x0
+ pop {r4, pc}
+_0206C30C:
+ mov r0, #0x36
+ bl FUN_020315D8
+ cmp r0, #0x0
+ bne _0206C31A
+ mov r0, #0x0
+ pop {r4, pc}
+_0206C31A:
+ bl FUN_0206B8A4
+ add r4, #0x20
+ add r2, r0, #0x0
+ mov r0, #0x1b
+ add r1, r4, #0x0
+ bl FUN_02030A78
+ pop {r4, pc}
+
+ thumb_func_start FUN_0206C32C
+FUN_0206C32C: ; 0x0206C32C
+ ldr r0, _0206C338 ; =0x00001020
+ ldrb r1, [r3, r0]
+ add r1, r1, #0x1
+ strb r1, [r3, r0]
+ bx lr
+ nop
+_0206C338: .word 0x00001020
+
+ thumb_func_start FUN_0206C33C
+FUN_0206C33C: ; 0x0206C33C
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl FUN_02030C58
+ mov r1, #0x42
+ lsl r1, r1, #0x2
+ cmp r0, r1
+ beq _0206C350
+ mov r0, #0x0
+ pop {r4, pc}
+_0206C350:
+ ldr r2, [r4, #0x0]
+ add r1, #0x10
+ add r0, r4, #0x0
+ ldr r1, [r2, r1]
+ add r0, #0x20
+ bl FUN_02029F9C
+ mov r0, #0x1
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0206C364
+FUN_0206C364: ; 0x0206C364
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl FUN_02030C58
+ mov r1, #0x42
+ lsl r1, r1, #0x2
+ cmp r0, r1
+ beq _0206C378
+ mov r0, #0x0
+ pop {r4, pc}
+_0206C378:
+ mov r0, #0x37
+ bl FUN_020315D8
+ cmp r0, #0x0
+ bne _0206C386
+ mov r0, #0x0
+ pop {r4, pc}
+_0206C386:
+ add r4, #0x20
+ mov r2, #0xfa
+ mov r0, #0x1c
+ add r1, r4, #0x0
+ lsl r2, r2, #0x2
+ bl FUN_02030A78
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0206C398
+FUN_0206C398: ; 0x0206C398
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ bl FUN_02030C58
+ mov r1, #0x42
+ lsl r1, r1, #0x2
+ cmp r0, r1
+ beq _0206C3AC
+ mov r0, #0x0
+ pop {r3-r7, pc}
+_0206C3AC:
+ ldr r4, [r5, #0x0]
+ mov r0, #0x80
+ ldr r1, [r4, #0x0]
+ tst r0, r1
+ beq _0206C3BE
+ bl FUN_02031190
+ lsl r0, r0, #0x3
+ b _0206C3C4
+_0206C3BE:
+ bl FUN_02031190
+ lsl r0, r0, #0x2
+_0206C3C4:
+ add r0, r4, r0
+ mov r1, #0x53
+ add r0, #0xf8
+ lsl r1, r1, #0x2
+ add r2, r5, #0x0
+ ldr r0, [r0, #0x0]
+ ldr r1, [r4, r1]
+ add r2, #0x20
+ bl FUN_0206C66C
+ mov r4, #0x0
+ mov r6, #0x5
+ mov r7, #0x88
+_0206C3DE:
+ add r0, r6, #0x0
+ add r1, r7, #0x0
+ bl FUN_02016998
+ str r0, [r5, #0x10]
+ add r4, r4, #0x1
+ add r5, r5, #0x4
+ cmp r4, #0x4
+ blt _0206C3DE
+ mov r0, #0x1
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_0206C3F4
+FUN_0206C3F4: ; 0x0206C3F4
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl FUN_02030C58
+ mov r1, #0x42
+ lsl r1, r1, #0x2
+ cmp r0, r1
+ beq _0206C408
+ mov r0, #0x0
+ pop {r4, pc}
+_0206C408:
+ mov r0, #0x38
+ bl FUN_020315D8
+ cmp r0, #0x0
+ bne _0206C416
+ mov r0, #0x0
+ pop {r4, pc}
+_0206C416:
+ add r4, #0x20
+ mov r2, #0xfa
+ mov r0, #0x21
+ add r1, r4, #0x0
+ lsl r2, r2, #0x2
+ bl FUN_02030A78
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0206C428
+FUN_0206C428: ; 0x0206C428
+ ldr r0, _0206C434 ; =0x00001020
+ ldrb r1, [r3, r0]
+ add r1, r1, #0x1
+ strb r1, [r3, r0]
+ bx lr
+ nop
+_0206C434: .word 0x00001020
+
+ thumb_func_start FUN_0206C438
+FUN_0206C438: ; 0x0206C438
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ bl FUN_02030C58
+ mov r1, #0x42
+ lsl r1, r1, #0x2
+ cmp r0, r1
+ beq _0206C44E
+ mov r0, #0x0
+ pop {r3-r5, pc}
+_0206C44E:
+ ldr r1, [r5, #0x0]
+ mov r0, #0x34
+ mul r0, r4
+ add r3, r1, r0
+ add r3, #0x28
+ add r5, #0x20
+ mov r2, #0x6
+_0206C45C:
+ ldmia r3!, {r0-r1}
+ stmia r5!, {r0-r1}
+ sub r2, r2, #0x1
+ bne _0206C45C
+ ldr r0, [r3, #0x0]
+ str r0, [r5, #0x0]
+ mov r0, #0x1
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_0206C46C
+FUN_0206C46C: ; 0x0206C46C
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ add r6, r2, #0x0
+ bl FUN_02030C58
+ mov r1, #0x42
+ lsl r1, r1, #0x2
+ cmp r0, r1
+ beq _0206C484
+ mov r0, #0x0
+ pop {r4-r6, pc}
+_0206C484:
+ lsl r0, r6, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_020315D8
+ cmp r0, #0x0
+ bne _0206C494
+ mov r0, #0x0
+ pop {r4-r6, pc}
+_0206C494:
+ cmp r4, #0x1
+ bne _0206C4A6
+ add r5, #0x20
+ mov r0, #0x1d
+ add r1, r5, #0x0
+ mov r2, #0x34
+ bl FUN_02030A78
+ pop {r4-r6, pc}
+_0206C4A6:
+ add r5, #0x20
+ mov r0, #0x1e
+ add r1, r5, #0x0
+ mov r2, #0x34
+ bl FUN_02030A78
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_0206C4B4
+FUN_0206C4B4: ; 0x0206C4B4
+ ldr r0, _0206C4C0 ; =0x00001020
+ ldrb r1, [r3, r0]
+ add r1, r1, #0x1
+ strb r1, [r3, r0]
+ bx lr
+ nop
+_0206C4C0: .word 0x00001020
+
+ thumb_func_start FUN_0206C4C4
+FUN_0206C4C4: ; 0x0206C4C4
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ bl FUN_02030C58
+ mov r1, #0x42
+ lsl r1, r1, #0x2
+ cmp r0, r1
+ beq _0206C4DA
+ mov r0, #0x0
+ pop {r3-r5, pc}
+_0206C4DA:
+ ldr r1, [r5, #0x0]
+ lsl r0, r4, #0x2
+ add r0, r1, r0
+ add r5, #0x20
+ ldr r0, [r0, #0x4]
+ add r1, r5, #0x0
+ bl FUN_0206BAD0
+ mov r0, #0x1
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_0206C4F0
+FUN_0206C4F0: ; 0x0206C4F0
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ add r6, r2, #0x0
+ bl FUN_02030C58
+ mov r1, #0x42
+ lsl r1, r1, #0x2
+ cmp r0, r1
+ beq _0206C508
+ mov r0, #0x0
+ pop {r4-r6, pc}
+_0206C508:
+ lsl r0, r6, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_020315D8
+ cmp r0, #0x0
+ bne _0206C518
+ mov r0, #0x0
+ pop {r4-r6, pc}
+_0206C518:
+ cmp r4, #0x1
+ bne _0206C52E
+ bl FUN_0206B8A4
+ add r5, #0x20
+ add r2, r0, #0x0
+ mov r0, #0x1f
+ add r1, r5, #0x0
+ bl FUN_02030A78
+ pop {r4-r6, pc}
+_0206C52E:
+ bl FUN_0206B8A4
+ add r5, #0x20
+ add r2, r0, #0x0
+ mov r0, #0x20
+ add r1, r5, #0x0
+ bl FUN_02030A78
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_0206C540
+FUN_0206C540: ; 0x0206C540
+ ldr r0, _0206C54C ; =0x00001020
+ ldrb r1, [r3, r0]
+ add r1, r1, #0x1
+ strb r1, [r3, r0]
+ bx lr
+ nop
+_0206C54C: .word 0x00001020
+
+ thumb_func_start FUN_0206C550
+FUN_0206C550: ; 0x0206C550
+ push {r3-r7, lr}
+ sub sp, #0x8
+ add r5, r1, #0x0
+ str r0, [sp, #0x0]
+ ldr r0, [r5, #0x0]
+ bl FUN_022300D4
+ add r6, r0, #0x0
+ ldr r0, [r5, #0x0]
+ bl FUN_022300E8
+ add r4, r0, #0x0
+ ldr r0, [r5, #0x0]
+ bl FUN_022300F4
+ str r0, [sp, #0x4]
+ ldr r0, [r5, #0x0]
+ bl FUN_02230100
+ add r7, r0, #0x0
+ ldrb r0, [r5, #0x4]
+ cmp r0, #0x0
+ beq _0206C582
+ cmp r0, #0xff
+ b _0206C5CC
+_0206C582:
+ bl FUN_02030C58
+ mov r1, #0x42
+ lsl r1, r1, #0x2
+ cmp r0, r1
+ bne _0206C5D8
+ ldr r0, [sp, #0x4]
+ ldrh r1, [r4, #0x0]
+ ldrh r0, [r0, #0x0]
+ cmp r1, r0
+ beq _0206C5D8
+ ldrh r0, [r7, #0x0]
+ cmp r1, r0
+ bne _0206C5A4
+ mov r0, #0x0
+ strh r0, [r4, #0x0]
+ strh r0, [r7, #0x0]
+_0206C5A4:
+ ldrh r1, [r4, #0x0]
+ add r0, r1, #0x2
+ ldrb r2, [r6, r0]
+ add r0, r1, #0x3
+ ldrb r0, [r6, r0]
+ add r1, r6, r1
+ lsl r0, r0, #0x8
+ orr r0, r2
+ add r5, r0, #0x4
+ mov r0, #0x17
+ add r2, r5, #0x0
+ bl FUN_02030ADC
+ cmp r0, #0x1
+ bne _0206C5D8
+ ldrh r0, [r4, #0x0]
+ add sp, #0x8
+ add r0, r0, r5
+ strh r0, [r4, #0x0]
+ pop {r3-r7, pc}
+_0206C5CC:
+ add r0, r5, #0x0
+ bl FUN_02016A18
+ ldr r0, [sp, #0x0]
+ bl FUN_0200CAB4
+_0206C5D8:
+ add sp, #0x8
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_0206C5DC
+FUN_0206C5DC: ; 0x0206C5DC
+ push {r3-r7, lr}
+ add r5, r1, #0x0
+ str r0, [sp, #0x0]
+ ldr r0, [r5, #0x0]
+ bl FUN_022300DC
+ add r6, r0, #0x0
+ ldr r0, [r5, #0x0]
+ bl FUN_0223010C
+ add r4, r0, #0x0
+ ldr r0, [r5, #0x0]
+ bl FUN_02230118
+ add r7, r0, #0x0
+ ldr r0, [r5, #0x0]
+ bl FUN_02230124
+ ldrb r1, [r5, #0x4]
+ cmp r1, #0x0
+ beq _0206C60A
+ cmp r1, #0xff
+ b _0206C63E
+_0206C60A:
+ ldrh r1, [r4, #0x0]
+ ldrh r2, [r7, #0x0]
+ cmp r1, r2
+ beq _0206C64A
+ ldrh r2, [r0, #0x0]
+ cmp r1, r2
+ bne _0206C61E
+ mov r1, #0x0
+ strh r1, [r4, #0x0]
+ strh r1, [r0, #0x0]
+_0206C61E:
+ ldrh r1, [r4, #0x0]
+ ldr r0, [r5, #0x0]
+ add r1, r6, r1
+ bl FUN_022567E0
+ ldrh r0, [r4, #0x0]
+ add r1, r0, #0x2
+ ldrb r2, [r6, r1]
+ add r1, r0, #0x3
+ ldrb r1, [r6, r1]
+ lsl r1, r1, #0x8
+ orr r1, r2
+ add r1, r1, #0x4
+ add r0, r0, r1
+ strh r0, [r4, #0x0]
+ pop {r3-r7, pc}
+_0206C63E:
+ add r0, r5, #0x0
+ bl FUN_02016A18
+ ldr r0, [sp, #0x0]
+ bl FUN_0200CAB4
+_0206C64A:
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_0206C64C
+FUN_0206C64C: ; 0x0206C64C
+ push {r4, lr}
+ add r4, r3, #0x0
+ add r0, r4, #0x0
+ mov r1, #0xff
+ bl FUN_0223135C
+ add r0, r4, #0x0
+ mov r1, #0xff
+ bl FUN_02231368
+ add r0, r4, #0x0
+ mov r1, #0x1
+ bl FUN_02231374
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0206C66C
+FUN_0206C66C: ; 0x0206C66C
+ push {r4-r6, lr}
+ add r4, r2, #0x0
+ add r6, r0, #0x0
+ add r5, r1, #0x0
+ bl FUN_0202398C
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ bl StringCopy
+ add r0, r6, #0x0
+ bl FUN_020239BC
+ str r0, [r4, #0x10]
+ add r0, r6, #0x0
+ bl FUN_02023A70
+ strb r0, [r4, #0x14]
+ add r0, r6, #0x0
+ bl FUN_02023A68
+ strb r0, [r4, #0x15]
+ add r0, r6, #0x0
+ bl FUN_020239CC
+ strb r0, [r4, #0x16]
+ mov r0, #0x0
+ add r1, r4, #0x0
+_0206C6A4:
+ ldr r2, [r5, #0x10]
+ str r2, [r1, #0x18]
+ ldrb r3, [r5, #0x15]
+ add r2, r4, r0
+ add r2, #0x58
+ strb r3, [r2, #0x0]
+ add r2, r4, r0
+ ldrb r3, [r5, #0x14]
+ add r2, #0x68
+ add r1, r1, #0x4
+ strb r3, [r2, #0x0]
+ add r2, r4, r0
+ ldrb r3, [r5, #0x16]
+ add r2, #0x78
+ add r0, r0, #0x1
+ add r5, #0x88
+ strb r3, [r2, #0x0]
+ cmp r0, #0x10
+ blt _0206C6A4
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_0206C6CC
+FUN_0206C6CC: ; 0x0206C6CC
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ add r6, r2, #0x0
+ add r4, r3, #0x0
+ bl FUN_02031190
+ cmp r5, r0
+ beq _0206C6EE
+ mov r0, #0x53
+ ldr r1, [r4, #0x0]
+ lsl r0, r0, #0x2
+ ldr r0, [r1, r0]
+ add r1, r6, #0x0
+ mov r2, #0x1
+ mov r3, #0x5
+ bl FUN_02025520
+_0206C6EE:
+ ldr r0, _0206C6F8 ; =0x00001020
+ ldrb r1, [r4, r0]
+ add r1, r1, #0x1
+ strb r1, [r4, r0]
+ pop {r4-r6, pc}
+ .balign 4
+_0206C6F8: .word 0x00001020
+
+ thumb_func_start FUN_0206C6FC
+FUN_0206C6FC: ; 0x0206C6FC
+ mov r0, #0x88
+ bx lr
+
+ thumb_func_start FUN_0206C700
+FUN_0206C700: ; 0x0206C700
+ push {r4-r7, lr}
+ sub sp, #0x24
+ ldr r5, [sp, #0x54]
+ add r6, r0, #0x0
+ str r1, [sp, #0x14]
+ add r0, r5, #0x0
+ mov r1, #0x80
+ add r7, r2, #0x0
+ str r3, [sp, #0x18]
+ bl FUN_02016998
+ add r4, r0, #0x0
+ mov r0, #0x0
+ add r1, r4, #0x0
+ mov r2, #0x80
+ blx 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 FUN_02022300
+ str r0, [sp, #0x20]
+ bl FUN_020222F8
+ add r1, r0, #0x0
+ ldr r2, [sp, #0x20]
+ mov r0, #0x0
+ blx MIi_CpuClear16
+ ldr r0, [sp, #0x14]
+ str r6, [r4, #0x24]
+ mov r1, #0x5
+ mov r2, #0x0
+ str r0, [r4, #0x28]
+ bl FUN_020671BC
+ add r1, r4, #0x0
+ add r1, #0x60
+ strh r0, [r1, #0x0]
+ add r0, r4, #0x0
+ add r0, #0x62
+ strh r7, [r0, #0x0]
+ str r5, [r4, #0x5c]
+ add r0, r5, #0x0
+ bl FUN_02002FD0
+ str r0, [r4, #0x14]
+ mov r1, #0x1
+ bl FUN_020038F0
+ mov r2, #0x2
+ ldr r0, [r4, #0x14]
+ mov r1, #0x0
+ lsl r2, r2, #0x8
+ add r3, r5, #0x0
+ bl FUN_02003008
+ mov r1, #0x1
+ ldr r0, [r4, #0x14]
+ lsl r2, r1, #0x9
+ add r3, r5, #0x0
+ bl FUN_02003008
+ mov r2, #0x7
+ ldr r0, [r4, #0x14]
+ mov r1, #0x2
+ lsl r2, r2, #0x6
+ add r3, r5, #0x0
+ bl FUN_02003008
+ mov r2, #0x2
+ ldr r0, [r4, #0x14]
+ mov r1, #0x3
+ lsl r2, r2, #0x8
+ add r3, r5, #0x0
+ bl FUN_02003008
+ add r0, r5, #0x0
+ bl FUN_02016B94
+ str r0, [r4, #0x0]
+ add r0, r5, #0x0
+ mov r1, #0x1
+ bl FUN_02018FF4
+ str r0, [r4, #0x4]
+ ldr r0, [sp, #0x18]
+ str r0, [r4, #0x2c]
+ add r0, r5, #0x0
+ bl FUN_0206DE78
+ str r0, [r4, #0x34]
+ bl FUN_0206DE24
+ bl FUN_0206DE4C
+ bl FUN_0206DF18
+ ldr r1, [r4, #0x0]
+ add r0, r4, #0x0
+ bl FUN_0206D9B4
+ mov r0, #0x13
+ str r0, [sp, #0x0]
+ mov r0, #0x1b
+ str r0, [sp, #0x4]
+ mov r0, #0x4
+ str r0, [sp, #0x8]
+ mov r0, #0xb
+ str r0, [sp, #0xc]
+ mov r0, #0x1f
+ str r0, [sp, #0x10]
+ ldr r0, [r4, #0x0]
+ ldr r1, [r4, #0x4]
+ mov r2, #0x1
+ mov r3, #0x2
+ bl FUN_02019064
+ ldr r0, [r4, #0x4]
+ mov r1, #0xff
+ bl FUN_02019620
+ ldr r0, [r4, #0x4]
+ mov r1, #0x0
+ mov r2, #0x1
+ mov r3, #0xa
+ bl FUN_0200D0BC
+ add r0, r5, #0x0
+ bl FUN_02006D98
+ str r0, [r4, #0x18]
+ add r0, r5, #0x0
+ mov r1, #0x1
+ mov r2, #0x0
+ bl FUN_02014BF4
+ str r0, [r4, #0x44]
+ add r0, r4, #0x0
+ mov r2, #0x51
+ mov r1, #0x0
+ add r0, #0x67
+ strb r1, [r0, #0x0]
+ add r0, r4, #0x0
+ mov r1, #0x2
+ add r0, #0x66
+ strb r1, [r0, #0x0]
+ mov r0, #0x1
+ mov r1, #0x1a
+ lsl r2, r2, #0x2
+ add r3, r5, #0x0
+ bl FUN_0200A86C
+ str r0, [r4, #0x8]
+ add r0, r5, #0x0
+ bl FUN_0200AA80
+ str r0, [r4, #0xc]
+ mov r0, #0x5
+ lsl r0, r0, #0x6
+ add r1, r5, #0x0
+ bl FUN_020219F4
+ str r0, [r4, #0x10]
+ add r0, r5, #0x0
+ mov r1, #0x30
+ bl FUN_02016998
+ str r0, [r4, #0x3c]
+ ldr r1, [r4, #0x3c]
+ mov r0, #0x0
+ mov r2, #0x30
+ blx MIi_CpuClearFast
+ ldr r1, [sp, #0x38]
+ ldr r0, [r4, #0x3c]
+ str r1, [r0, #0x2c]
+ ldr r0, [sp, #0x3c]
+ str r0, [r4, #0x48]
+ ldr r0, [sp, #0x40]
+ str r0, [r4, #0x4c]
+ ldr r0, [sp, #0x44]
+ str r0, [r4, #0x50]
+ ldr r0, [sp, #0x48]
+ str r0, [r4, #0x54]
+ ldr r0, [sp, #0x4c]
+ str r0, [r4, #0x78]
+ ldr r0, [sp, #0x50]
+ str r0, [r4, #0x7c]
+ add r0, r4, #0x0
+ bl FUN_0206DC80
+ mov r0, #0x10
+ str r0, [sp, #0x0]
+ mov r0, #0x0
+ str r0, [sp, #0x4]
+ str r0, [sp, #0x8]
+ ldr r0, [r4, #0x14]
+ ldr r2, _0206C8E4 ; =0x0000FFFF
+ mov r1, #0xf
+ mov r3, #0x1
+ bl FUN_02003210
+ mov r2, #0x0
+ str r2, [sp, #0x0]
+ ldr r0, [r4, #0x18]
+ mov r1, #0x10
+ add r3, r2, #0x0
+ bl FUN_02007E98
+ ldr r0, [r4, #0x14]
+ mov r1, #0x0
+ mov r2, #0xb
+ add r3, r5, #0x0
+ bl FUN_020142EC
+ mov r1, #0x1
+ str r0, [r4, #0x58]
+ bl FUN_020143A8
+ ldr r0, _0206C8E8 ; =FUN_0206C8EC
+ add r1, r4, #0x0
+ mov r2, #0x0
+ bl FUN_0200CA44
+ mov r0, #0x1
+ bl FUN_02002B60
+ bl FUN_02033E74
+ add r0, r4, #0x0
+ add sp, #0x24
+ pop {r4-r7, pc}
+ nop
+_0206C8E4: .word 0x0000FFFF
+_0206C8E8: .word FUN_0206C8EC
+
+ thumb_func_start FUN_0206C8EC
+FUN_0206C8EC: ; 0x0206C8EC
+ push {r3-r5, lr}
+ add r5, r1, #0x0
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_0206C9C0
+ ldr r0, [r5, #0x18]
+ bl FUN_02006ED4
+ bl FUN_0206DF58
+ mov r0, #0x1
+ mov r1, #0x0
+ bl FUN_020222B4
+ add r5, #0x67
+ ldrb r0, [r5, #0x0]
+ cmp r0, #0x0
+ beq _0206C918
+ add r0, r4, #0x0
+ bl FUN_0200CAB4
+_0206C918:
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_0206C91C
+FUN_0206C91C: ; 0x0206C91C
+ add r0, #0x67
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x1
+ bne _0206C928
+ mov r0, #0x1
+ bx lr
+_0206C928:
+ mov r0, #0x0
+ bx lr
+
+ thumb_func_start FUN_0206C92C
+FUN_0206C92C: ; 0x0206C92C
+ push {r4, lr}
+ add r4, r0, #0x0
+ mov r0, #0x0
+ add r1, r0, #0x0
+ bl FUN_0200E3A0
+ mov r0, #0x1
+ mov r1, #0x0
+ bl FUN_0200E3A0
+ mov r0, #0x0
+ add r1, r0, #0x0
+ bl FUN_02015F10
+ ldr r0, [r4, #0x4]
+ mov r1, #0x1
+ bl FUN_020191A4
+ ldr r0, [r4, #0x14]
+ mov r1, #0x0
+ bl FUN_02003038
+ ldr r0, [r4, #0x14]
+ mov r1, #0x1
+ bl FUN_02003038
+ ldr r0, [r4, #0x14]
+ mov r1, #0x2
+ bl FUN_02003038
+ ldr r0, [r4, #0x14]
+ mov r1, #0x3
+ bl FUN_02003038
+ ldr r0, [r4, #0x14]
+ bl FUN_02002FEC
+ ldr r0, [r4, #0x18]
+ bl FUN_020072E8
+ ldr r0, [r4, #0x44]
+ bl FUN_02014C28
+ ldr r0, [r4, #0x34]
+ bl FUN_020223BC
+ ldr r0, [r4, #0x0]
+ bl FUN_0206DC48
+ ldr r0, [r4, #0x8]
+ bl FUN_0200A8B8
+ ldr r0, [r4, #0xc]
+ bl FUN_0200AB18
+ ldr r0, [r4, #0x10]
+ bl FUN_02016A18
+ ldr r0, [r4, #0x3c]
+ bl FUN_02016A18
+ ldr r0, [r4, #0x58]
+ bl FUN_020143D0
+ ldr r0, [r4, #0x0]
+ bl FUN_02016A18
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ mov r0, #0x0
+ bl FUN_02002B60
+ pop {r4, pc}
+
+ thumb_func_start FUN_0206C9C0
+FUN_0206C9C0: ; 0x0206C9C0
+ push {r3-r4, lr}
+ sub sp, #0x54
+ add r4, r0, #0x0
+ add r0, #0x70
+ ldrb r1, [r0, #0x0]
+ cmp r1, #0x0
+ beq _0206CA9C
+ mov r0, #0x1
+ tst r0, r1
+ ldr r0, [r4, #0x1c]
+ bne _0206CA2E
+ add r2, r4, #0x0
+ add r2, #0x71
+ ldrb r2, [r2, #0x0]
+ mov r1, #0xc
+ neg r2, r2
+ bl FUN_020079E0
+ add r2, r4, #0x0
+ add r2, #0x71
+ ldrb r2, [r2, #0x0]
+ ldr r0, [r4, #0x1c]
+ mov r1, #0xd
+ neg r2, r2
+ bl FUN_020079E0
+ add r2, r4, #0x0
+ add r2, #0x71
+ ldrb r2, [r2, #0x0]
+ ldr r0, [r4, #0x20]
+ mov r1, #0xc
+ bl FUN_020079E0
+ add r2, r4, #0x0
+ add r2, #0x71
+ ldrb r2, [r2, #0x0]
+ ldr r0, [r4, #0x20]
+ mov r1, #0xd
+ bl FUN_020079E0
+ ldr r0, [r4, #0x1c]
+ mov r1, #0xc
+ bl FUN_0200782C
+ cmp r0, #0x0
+ bne _0206CA9C
+ add r0, r4, #0x0
+ add r0, #0x70
+ ldrb r1, [r0, #0x0]
+ mov r0, #0x1
+ eor r1, r0
+ add r0, r4, #0x0
+ add r0, #0x70
+ strb r1, [r0, #0x0]
+ b _0206CA9C
+_0206CA2E:
+ add r2, r4, #0x0
+ add r2, #0x71
+ ldrb r2, [r2, #0x0]
+ mov r1, #0xc
+ bl FUN_020079E0
+ add r2, r4, #0x0
+ add r2, #0x71
+ ldrb r2, [r2, #0x0]
+ ldr r0, [r4, #0x1c]
+ mov r1, #0xd
+ bl FUN_020079E0
+ add r2, r4, #0x0
+ add r2, #0x71
+ ldrb r2, [r2, #0x0]
+ ldr r0, [r4, #0x20]
+ mov r1, #0xc
+ neg r2, r2
+ bl FUN_020079E0
+ add r2, r4, #0x0
+ add r2, #0x71
+ ldrb r2, [r2, #0x0]
+ ldr r0, [r4, #0x20]
+ mov r1, #0xd
+ neg r2, r2
+ bl FUN_020079E0
+ ldr r0, [r4, #0x20]
+ mov r1, #0xc
+ bl FUN_0200782C
+ cmp r0, #0x0
+ bne _0206CA9C
+ add r0, r4, #0x0
+ add r0, #0x70
+ ldrb r1, [r0, #0x0]
+ mov r0, #0x1
+ eor r1, r0
+ add r0, r4, #0x0
+ add r0, #0x70
+ strb r1, [r0, #0x0]
+ add r0, r4, #0x0
+ add r0, #0x71
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x40
+ bhs _0206CA9C
+ add r0, r4, #0x0
+ add r0, #0x71
+ ldrb r0, [r0, #0x0]
+ lsl r1, r0, #0x1
+ add r0, r4, #0x0
+ add r0, #0x71
+ strb r1, [r0, #0x0]
+_0206CA9C:
+ ldr r1, [r4, #0x7c]
+ mov r0, #0x1
+ tst r0, r1
+ beq _0206CAD6
+ add r0, r4, #0x0
+ add r0, #0x64
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x8
+ bne _0206CAD6
+ ldr r0, _0206CE0C ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #0x2
+ tst r0, r1
+ beq _0206CAD6
+ mov r3, #0x0
+ str r3, [sp, #0x0]
+ mov r0, #0x10
+ str r0, [sp, #0x4]
+ ldr r0, _0206CE10 ; =0x00007FFF
+ ldr r2, _0206CE14 ; =0x0000F3FF
+ str r0, [sp, #0x8]
+ ldr r0, [r4, #0x14]
+ mov r1, #0xf
+ bl FUN_02003210
+ add r0, r4, #0x0
+ mov r1, #0x29
+ add r0, #0x64
+ strb r1, [r0, #0x0]
+_0206CAD6:
+ add r0, r4, #0x0
+ add r0, #0x64
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x2d
+ bhi _0206CBA8
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0206CAEC: ; jump table (using 16-bit offset)
+ .short _0206CB48 - _0206CAEC - 2; case 0
+ .short _0206CB70 - _0206CAEC - 2; case 1
+ .short _0206CB9E - _0206CAEC - 2; case 2
+ .short _0206CBCC - _0206CAEC - 2; case 3
+ .short _0206CBE4 - _0206CAEC - 2; case 4
+ .short _0206CC66 - _0206CAEC - 2; case 5
+ .short _0206CCB2 - _0206CAEC - 2; case 6
+ .short _0206CD34 - _0206CAEC - 2; case 7
+ .short _0206CDC8 - _0206CAEC - 2; case 8
+ .short _0206CE8A - _0206CAEC - 2; case 9
+ .short _0206CF18 - _0206CAEC - 2; case 10
+ .short _0206CF7E - _0206CAEC - 2; case 11
+ .short _0206CFFA - _0206CAEC - 2; case 12
+ .short _0206D06E - _0206CAEC - 2; case 13
+ .short _0206D0E8 - _0206CAEC - 2; case 14
+ .short _0206D188 - _0206CAEC - 2; case 15
+ .short _0206D12C - _0206CAEC - 2; case 16
+ .short _0206D188 - _0206CAEC - 2; case 17
+ .short _0206D162 - _0206CAEC - 2; case 18
+ .short _0206D188 - _0206CAEC - 2; case 19
+ .short _0206D1C0 - _0206CAEC - 2; case 20
+ .short _0206D20E - _0206CAEC - 2; case 21
+ .short _0206D260 - _0206CAEC - 2; case 22
+ .short _0206D2E2 - _0206CAEC - 2; case 23
+ .short _0206D360 - _0206CAEC - 2; case 24
+ .short _0206D480 - _0206CAEC - 2; case 25
+ .short _0206D188 - _0206CAEC - 2; case 26
+ .short _0206D4A6 - _0206CAEC - 2; case 27
+ .short _0206D188 - _0206CAEC - 2; case 28
+ .short _0206D4F8 - _0206CAEC - 2; case 29
+ .short _0206D188 - _0206CAEC - 2; case 30
+ .short _0206D51E - _0206CAEC - 2; case 31
+ .short _0206D398 - _0206CAEC - 2; case 32
+ .short _0206D188 - _0206CAEC - 2; case 33
+ .short _0206D3CC - _0206CAEC - 2; case 34
+ .short _0206D3EE - _0206CAEC - 2; case 35
+ .short _0206D44E - _0206CAEC - 2; case 36
+ .short _0206D5AA - _0206CAEC - 2; case 37
+ .short _0206D5C8 - _0206CAEC - 2; case 38
+ .short _0206D5F4 - _0206CAEC - 2; case 39
+ .short _0206D628 - _0206CAEC - 2; case 40
+ .short _0206D648 - _0206CAEC - 2; case 41
+ .short _0206D6EE - _0206CAEC - 2; case 42
+ .short _0206D748 - _0206CAEC - 2; case 43
+ .short _0206D79C - _0206CAEC - 2; case 44
+ .short _0206D7F6 - _0206CAEC - 2; case 45
+_0206CB48:
+ add r0, r4, #0x0
+ add r0, #0x66
+ ldrb r0, [r0, #0x0]
+ sub r1, r0, #0x1
+ add r0, r4, #0x0
+ add r0, #0x66
+ strb r1, [r0, #0x0]
+ add r0, r4, #0x0
+ add r0, #0x66
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x0
+ bne _0206CBA8
+ add r0, r4, #0x0
+ add r0, #0x64
+ ldrb r0, [r0, #0x0]
+ add r4, #0x64
+ add sp, #0x54
+ add r0, r0, #0x1
+ strb r0, [r4, #0x0]
+ pop {r3-r4, pc}
+_0206CB70:
+ mov r0, #0x0
+ bl FUN_0200E394
+ mov r0, #0x1
+ bl FUN_0200E394
+ ldr r0, [r4, #0x58]
+ mov r1, #0x0
+ bl FUN_020143A8
+ ldr r1, [r4, #0x7c]
+ mov r0, #0x2
+ tst r1, r0
+ beq _0206CB94
+ add r4, #0x64
+ add sp, #0x54
+ strb r0, [r4, #0x0]
+ pop {r3-r4, pc}
+_0206CB94:
+ mov r0, #0x4
+ add r4, #0x64
+ add sp, #0x54
+ strb r0, [r4, #0x0]
+ pop {r3-r4, pc}
+_0206CB9E:
+ ldr r0, [r4, #0x14]
+ bl FUN_020038E4
+ cmp r0, #0x0
+ beq _0206CBAC
+_0206CBA8:
+ bl _0206D806
+_0206CBAC:
+ mov r1, #0xe5
+ add r0, r4, #0x0
+ lsl r1, r1, #0x2
+ bl FUN_0206DD6C
+ add r1, r4, #0x0
+ add r1, #0x65
+ strb r0, [r1, #0x0]
+ add r0, r4, #0x0
+ add r0, #0x64
+ ldrb r0, [r0, #0x0]
+ add r4, #0x64
+ add sp, #0x54
+ add r0, r0, #0x1
+ strb r0, [r4, #0x0]
+ pop {r3-r4, pc}
+_0206CBCC:
+ add r0, r4, #0x0
+ add r0, #0x65
+ ldrb r0, [r0, #0x0]
+ bl FUN_0201BD70
+ cmp r0, #0x0
+ bne _0206CCCA
+ mov r0, #0x4
+ add r4, #0x64
+ add sp, #0x54
+ strb r0, [r4, #0x0]
+ pop {r3-r4, pc}
+_0206CBE4:
+ ldr r0, [r4, #0x14]
+ bl FUN_020038E4
+ cmp r0, #0x0
+ bne _0206CCCA
+ mov r0, #0x0
+ str r0, [sp, #0x0]
+ str r0, [sp, #0x4]
+ str r0, [sp, #0x8]
+ add r2, r4, #0x0
+ add r2, #0x60
+ ldrh r2, [r2, #0x0]
+ ldr r0, [r4, #0x44]
+ ldr r1, [r4, #0x1c]
+ mov r3, #0x2
+ bl FUN_02069038
+ add r1, r4, #0x0
+ add r1, #0x60
+ ldrh r1, [r1, #0x0]
+ add r0, sp, #0x40
+ bl FUN_02069010
+ ldr r0, [r4, #0x1c]
+ add r1, sp, #0x40
+ bl FUN_0200737C
+ ldr r0, [r4, #0x1c]
+ mov r1, #0x0
+ bl FUN_02007314
+ add r0, r4, #0x0
+ add r0, #0x60
+ ldrh r0, [r0, #0x0]
+ bl FUN_02005578
+ ldr r0, [r4, #0x28]
+ bl FUN_020690E4
+ add r2, r0, #0x0
+ ldr r0, [r4, #0xc]
+ mov r1, #0x0
+ bl FUN_0200ACF8
+ ldr r1, [r4, #0x7c]
+ mov r0, #0x2
+ tst r0, r1
+ beq _0206CC4E
+ ldr r1, _0206CE18 ; =0x00000395
+ add r0, r4, #0x0
+ bl FUN_0206DD6C
+ b _0206CC56
+_0206CC4E:
+ ldr r1, _0206CE1C ; =0x00000393
+ add r0, r4, #0x0
+ bl FUN_0206DD6C
+_0206CC56:
+ add r1, r4, #0x0
+ add r1, #0x65
+ strb r0, [r1, #0x0]
+ mov r0, #0x5
+ add r4, #0x64
+ add sp, #0x54
+ strb r0, [r4, #0x0]
+ pop {r3-r4, pc}
+_0206CC66:
+ add r0, r4, #0x0
+ add r0, #0x65
+ ldrb r0, [r0, #0x0]
+ bl FUN_0201BD70
+ cmp r0, #0x0
+ bne _0206CCCA
+ bl FUN_02005670
+ cmp r0, #0x0
+ bne _0206CCCA
+ ldr r0, [r4, #0x44]
+ mov r1, #0x0
+ bl FUN_02014D7C
+ cmp r0, #0x1
+ bne _0206CCCA
+ ldr r0, [r4, #0x1c]
+ bl FUN_02007390
+ cmp r0, #0x0
+ bne _0206CCCA
+ ldr r0, [r4, #0x58]
+ mov r1, #0x1
+ bl FUN_020143A8
+ ldr r0, _0206CE20 ; =0x00000475
+ bl FUN_020051F4
+ add r0, r4, #0x0
+ mov r1, #0x14
+ add r0, #0x66
+ strb r1, [r0, #0x0]
+ mov r0, #0x6
+ add r4, #0x64
+ add sp, #0x54
+ strb r0, [r4, #0x0]
+ pop {r3-r4, pc}
+_0206CCB2:
+ add r0, r4, #0x0
+ add r0, #0x66
+ ldrb r0, [r0, #0x0]
+ sub r1, r0, #0x1
+ add r0, r4, #0x0
+ add r0, #0x66
+ strb r1, [r0, #0x0]
+ add r0, r4, #0x0
+ add r0, #0x66
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x0
+ beq _0206CCCE
+_0206CCCA:
+ bl _0206D806
+_0206CCCE:
+ ldr r0, [r4, #0x5c]
+ str r0, [sp, #0x10]
+ mov r0, #0x0
+ str r0, [sp, #0x14]
+ add r0, sp, #0x10
+ bl FUN_0206E07C
+ mov r1, #0x0
+ str r0, [r4, #0x30]
+ bl FUN_0206E0AC
+ ldr r0, _0206CE10 ; =0x00007FFF
+ mov r1, #0x0
+ str r0, [sp, #0x0]
+ ldr r0, [r4, #0x1c]
+ mov r2, #0x10
+ mov r3, #0x4
+ bl FUN_02007E68
+ ldr r0, _0206CE10 ; =0x00007FFF
+ mov r1, #0x0
+ str r0, [sp, #0x0]
+ ldr r0, [r4, #0x20]
+ mov r2, #0x10
+ mov r3, #0x4
+ bl FUN_02007E68
+ ldr r0, [r4, #0x5c]
+ bl FUN_02016AF8
+ mov r1, #0x2
+ lsl r1, r1, #0xe
+ cmp r0, r1
+ bhi _0206CD16
+ bl ErrorHandling
+_0206CD16:
+ ldr r0, _0206CE24 ; =0x000005F9
+ bl FUN_020054C8
+ add r0, r4, #0x0
+ mov r1, #0x28
+ add r0, #0x66
+ strb r1, [r0, #0x0]
+ add r0, r4, #0x0
+ add r0, #0x64
+ ldrb r0, [r0, #0x0]
+ add r4, #0x64
+ add sp, #0x54
+ add r0, r0, #0x1
+ strb r0, [r4, #0x0]
+ pop {r3-r4, pc}
+_0206CD34:
+ add r0, r4, #0x0
+ add r0, #0x73
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x28
+ bhs _0206CD5A
+ add r0, r4, #0x0
+ add r0, #0x73
+ ldrb r0, [r0, #0x0]
+ add r1, r0, #0x2
+ add r0, r4, #0x0
+ add r0, #0x73
+ strb r1, [r0, #0x0]
+ add r0, r4, #0x0
+ add r0, #0x75
+ ldrb r0, [r0, #0x0]
+ sub r1, r0, #0x2
+ add r0, r4, #0x0
+ add r0, #0x75
+ strb r1, [r0, #0x0]
+_0206CD5A:
+ add r0, r4, #0x0
+ add r0, #0x66
+ ldrb r0, [r0, #0x0]
+ sub r1, r0, #0x1
+ add r0, r4, #0x0
+ add r0, #0x66
+ strb r1, [r0, #0x0]
+ add r0, r4, #0x0
+ add r0, #0x66
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x0
+ bne _0206CDD2
+ ldr r0, [r4, #0x30]
+ mov r1, #0x1
+ bl FUN_0206E0AC
+ ldr r0, [r4, #0x30]
+ mov r1, #0x2
+ bl FUN_0206E0AC
+ ldr r0, [r4, #0x30]
+ mov r1, #0x7
+ bl FUN_0206E0AC
+ ldr r0, [r4, #0x30]
+ mov r1, #0x8
+ bl FUN_0206E0AC
+ ldr r0, [r4, #0x30]
+ mov r1, #0x9
+ bl FUN_0206E0AC
+ ldr r0, [r4, #0x30]
+ mov r1, #0xb
+ bl FUN_0206E0AC
+ ldr r0, _0206CE28 ; =0x000005FA
+ bl FUN_020054C8
+ add r0, r4, #0x0
+ mov r1, #0x10
+ add r0, #0x70
+ strb r1, [r0, #0x0]
+ add r0, r4, #0x0
+ mov r1, #0x8
+ add r0, #0x71
+ strb r1, [r0, #0x0]
+ add r0, r4, #0x0
+ add r0, #0x64
+ ldrb r0, [r0, #0x0]
+ add r4, #0x64
+ add sp, #0x54
+ add r0, r0, #0x1
+ strb r0, [r4, #0x0]
+ pop {r3-r4, pc}
+_0206CDC8:
+ ldr r0, [r4, #0x30]
+ bl FUN_0206E0C8
+ cmp r0, #0x0
+ beq _0206CDD6
+_0206CDD2:
+ bl _0206D806
+_0206CDD6:
+ ldr r0, [r4, #0x30]
+ mov r1, #0x3
+ bl FUN_0206E0AC
+ ldr r0, [r4, #0x30]
+ mov r1, #0x4
+ bl FUN_0206E0AC
+ ldr r0, [r4, #0x30]
+ mov r1, #0x5
+ bl FUN_0206E0AC
+ ldr r0, [r4, #0x30]
+ mov r1, #0x6
+ bl FUN_0206E0AC
+ ldr r0, [r4, #0x30]
+ mov r1, #0xa
+ bl FUN_0206E0AC
+ mov r0, #0x0
+ str r0, [sp, #0x0]
+ mov r0, #0x10
+ str r0, [sp, #0x4]
+ ldr r0, _0206CE10 ; =0x00007FFF
+ ldr r2, _0206CE14 ; =0x0000F3FF
+ b _0206CE2C
+ .balign 4
+_0206CE0C: .word 0x021C48B8
+_0206CE10: .word 0x00007FFF
+_0206CE14: .word 0x0000F3FF
+_0206CE18: .word 0x00000395
+_0206CE1C: .word 0x00000393
+_0206CE20: .word 0x00000475
+_0206CE24: .word 0x000005F9
+_0206CE28: .word 0x000005FA
+_0206CE2C:
+ str r0, [sp, #0x8]
+ ldr r0, [r4, #0x14]
+ mov r1, #0xf
+ mov r3, #0x2
+ bl FUN_02003210
+ ldr r0, [r4, #0x1c]
+ mov r1, #0xc
+ mov r2, #0x0
+ bl FUN_02007558
+ ldr r0, [r4, #0x1c]
+ mov r1, #0xd
+ mov r2, #0x0
+ bl FUN_02007558
+ mov r1, #0xc
+ add r2, r1, #0x0
+ ldr r0, [r4, #0x20]
+ add r2, #0xf4
+ bl FUN_02007558
+ mov r1, #0xd
+ add r2, r1, #0x0
+ ldr r0, [r4, #0x20]
+ add r2, #0xf3
+ bl FUN_02007558
+ ldr r0, _0206D1C8 ; =0x000005FB
+ bl FUN_020054C8
+ add r0, r4, #0x0
+ mov r1, #0x0
+ add r0, #0x70
+ strb r1, [r0, #0x0]
+ add r0, r4, #0x0
+ mov r1, #0x8
+ add r0, #0x66
+ strb r1, [r0, #0x0]
+ add r0, r4, #0x0
+ add r0, #0x64
+ ldrb r0, [r0, #0x0]
+ add r4, #0x64
+ add sp, #0x54
+ add r0, r0, #0x1
+ strb r0, [r4, #0x0]
+ pop {r3-r4, pc}
+_0206CE8A:
+ add r0, r4, #0x0
+ add r0, #0x73
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x0
+ beq _0206CEB0
+ add r0, r4, #0x0
+ add r0, #0x73
+ ldrb r0, [r0, #0x0]
+ sub r1, r0, #0x2
+ add r0, r4, #0x0
+ add r0, #0x73
+ strb r1, [r0, #0x0]
+ add r0, r4, #0x0
+ add r0, #0x75
+ ldrb r0, [r0, #0x0]
+ add r1, r0, #0x2
+ add r0, r4, #0x0
+ add r0, #0x75
+ strb r1, [r0, #0x0]
+_0206CEB0:
+ ldr r0, [r4, #0x14]
+ bl FUN_020038E4
+ cmp r0, #0x0
+ bne _0206CF2C
+ add r0, r4, #0x0
+ add r0, #0x66
+ ldrb r0, [r0, #0x0]
+ sub r1, r0, #0x1
+ add r0, r4, #0x0
+ add r0, #0x66
+ strb r1, [r0, #0x0]
+ add r0, r4, #0x0
+ add r0, #0x66
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x0
+ bne _0206CF2C
+ ldr r0, [r4, #0x30]
+ mov r1, #0xc
+ bl FUN_0206E0AC
+ mov r0, #0x10
+ str r0, [sp, #0x0]
+ mov r0, #0x0
+ str r0, [sp, #0x4]
+ ldr r0, _0206D1CC ; =0x00007FFF
+ ldr r2, _0206D1D0 ; =0x0000F3FF
+ str r0, [sp, #0x8]
+ ldr r0, [r4, #0x14]
+ mov r1, #0xf
+ mov r3, #0x4
+ bl FUN_02003210
+ ldr r0, _0206D1CC ; =0x00007FFF
+ mov r1, #0x10
+ str r0, [sp, #0x0]
+ ldr r0, [r4, #0x18]
+ mov r2, #0x0
+ mov r3, #0x3
+ bl FUN_02007E98
+ ldr r0, _0206D1D4 ; =0x000005FC
+ bl FUN_020054C8
+ add r0, r4, #0x0
+ add r0, #0x64
+ ldrb r0, [r0, #0x0]
+ add r4, #0x64
+ add sp, #0x54
+ add r0, r0, #0x1
+ strb r0, [r4, #0x0]
+ pop {r3-r4, pc}
+_0206CF18:
+ ldr r0, [r4, #0x14]
+ bl FUN_020038E4
+ cmp r0, #0x0
+ bne _0206CF2C
+ ldr r0, [r4, #0x30]
+ bl FUN_0206E0C8
+ cmp r0, #0x0
+ beq _0206CF30
+_0206CF2C:
+ bl _0206D806
+_0206CF30:
+ mov r0, #0x0
+ str r0, [sp, #0x0]
+ str r0, [sp, #0x4]
+ str r0, [sp, #0x8]
+ add r2, r4, #0x0
+ add r2, #0x62
+ ldrh r2, [r2, #0x0]
+ ldr r0, [r4, #0x44]
+ ldr r1, [r4, #0x20]
+ mov r3, #0x2
+ bl FUN_02069038
+ add r1, r4, #0x0
+ add r1, #0x62
+ ldrh r1, [r1, #0x0]
+ add r0, sp, #0x2c
+ bl FUN_02069010
+ ldr r0, [r4, #0x20]
+ add r1, sp, #0x2c
+ bl FUN_0200737C
+ ldr r0, [r4, #0x20]
+ mov r1, #0x0
+ bl FUN_02007314
+ add r0, r4, #0x0
+ add r0, #0x62
+ ldrh r0, [r0, #0x0]
+ bl FUN_02005578
+ add r0, r4, #0x0
+ add r0, #0x64
+ ldrb r0, [r0, #0x0]
+ add r4, #0x64
+ add sp, #0x54
+ add r0, r0, #0x1
+ strb r0, [r4, #0x0]
+ pop {r3-r4, pc}
+_0206CF7E:
+ bl FUN_02005670
+ cmp r0, #0x0
+ bne _0206D084
+ ldr r0, [r4, #0x44]
+ mov r1, #0x0
+ bl FUN_02014D7C
+ cmp r0, #0x1
+ bne _0206D084
+ ldr r0, [r4, #0x20]
+ bl FUN_02007390
+ cmp r0, #0x0
+ bne _0206D084
+ add r2, r4, #0x0
+ ldr r0, [r4, #0x28]
+ mov r1, #0x5
+ add r2, #0x62
+ bl FUN_02067830
+ ldr r0, [r4, #0x28]
+ bl FUN_0206A1C4
+ ldr r0, [r4, #0x28]
+ bl FUN_02066ED8
+ ldr r0, [r4, #0x28]
+ bl FUN_020690E4
+ add r2, r0, #0x0
+ ldr r0, [r4, #0xc]
+ mov r1, #0x0
+ bl FUN_0200ACF8
+ ldr r0, [r4, #0x28]
+ bl FUN_020690E4
+ add r2, r0, #0x0
+ ldr r0, [r4, #0xc]
+ mov r1, #0x1
+ bl FUN_0200AC60
+ ldr r1, _0206D1D8 ; =0x00000396
+ add r0, r4, #0x0
+ bl FUN_0206DD6C
+ add r1, r4, #0x0
+ add r1, #0x65
+ strb r0, [r1, #0x0]
+ add r0, r4, #0x0
+ mov r1, #0x28
+ add r0, #0x66
+ strb r1, [r0, #0x0]
+ add r0, r4, #0x0
+ add r0, #0x64
+ ldrb r0, [r0, #0x0]
+ add r4, #0x64
+ add sp, #0x54
+ add r0, r0, #0x1
+ strb r0, [r4, #0x0]
+ pop {r3-r4, pc}
+_0206CFFA:
+ add r0, r4, #0x0
+ add r0, #0x65
+ ldrb r0, [r0, #0x0]
+ bl FUN_0201BD70
+ cmp r0, #0x0
+ bne _0206D084
+ add r0, r4, #0x0
+ add r0, #0x66
+ ldrb r0, [r0, #0x0]
+ sub r1, r0, #0x1
+ add r0, r4, #0x0
+ add r0, #0x66
+ strb r1, [r0, #0x0]
+ add r0, r4, #0x0
+ add r0, #0x66
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x0
+ bne _0206D084
+ ldr r0, [r4, #0x48]
+ ldr r1, [r4, #0x28]
+ bl FUN_02024AF0
+ ldr r0, [r4, #0x50]
+ mov r1, #0xc
+ bl FUN_0202A0E8
+ ldr r0, [r4, #0x50]
+ mov r1, #0x16
+ bl FUN_0202A170
+ ldr r0, [r4, #0x28]
+ bl FUN_020690E4
+ add r1, r0, #0x0
+ ldr r0, [r4, #0x54]
+ bl FUN_0204C104
+ ldr r0, [r4, #0x28]
+ mov r1, #0x4d
+ mov r2, #0x0
+ bl FUN_020671BC
+ cmp r0, #0x0
+ bne _0206D05E
+ ldr r0, [r4, #0x28]
+ mov r1, #0xb2
+ mov r2, #0x0
+ bl FUN_02067830
+_0206D05E:
+ add r0, r4, #0x0
+ add r0, #0x64
+ ldrb r0, [r0, #0x0]
+ add r4, #0x64
+ add sp, #0x54
+ add r0, r0, #0x1
+ strb r0, [r4, #0x0]
+ pop {r3-r4, pc}
+_0206D06E:
+ add r1, r4, #0x0
+ ldr r0, [r4, #0x28]
+ add r1, #0x68
+ add r2, sp, #0xc
+ bl FUN_02069818
+ cmp r0, #0x0
+ beq _0206D08E
+ ldr r1, _0206D1DC ; =0x0000FFFE
+ cmp r0, r1
+ bne _0206D086
+_0206D084:
+ b _0206D806
+_0206D086:
+ add r1, r1, #0x1
+ cmp r0, r1
+ beq _0206D098
+ b _0206D0AC
+_0206D08E:
+ mov r0, #0x27
+ add r4, #0x64
+ add sp, #0x54
+ strb r0, [r4, #0x0]
+ pop {r3-r4, pc}
+_0206D098:
+ add r0, sp, #0xc
+ ldrh r1, [r0, #0x0]
+ add r0, r4, #0x0
+ add r0, #0x6c
+ strh r1, [r0, #0x0]
+ mov r0, #0xe
+ add r4, #0x64
+ add sp, #0x54
+ strb r0, [r4, #0x0]
+ pop {r3-r4, pc}
+_0206D0AC:
+ ldr r0, [r4, #0x28]
+ bl FUN_020690E4
+ add r2, r0, #0x0
+ ldr r0, [r4, #0xc]
+ mov r1, #0x0
+ bl FUN_0200ACF8
+ add r2, sp, #0xc
+ ldrh r2, [r2, #0x0]
+ ldr r0, [r4, #0xc]
+ mov r1, #0x1
+ bl FUN_0200AD5C
+ add r0, r4, #0x0
+ mov r1, #0x4
+ bl FUN_0206DD6C
+ add r1, r4, #0x0
+ add r1, #0x65
+ strb r0, [r1, #0x0]
+ add r0, r4, #0x0
+ mov r1, #0x14
+ add r0, #0x66
+ strb r1, [r0, #0x0]
+ mov r0, #0x25
+ add r4, #0x64
+ add sp, #0x54
+ strb r0, [r4, #0x0]
+ pop {r3-r4, pc}
+_0206D0E8:
+ ldr r0, [r4, #0x28]
+ bl FUN_020690E4
+ add r2, r0, #0x0
+ ldr r0, [r4, #0xc]
+ mov r1, #0x0
+ bl FUN_0200ACF8
+ add r2, r4, #0x0
+ add r2, #0x6c
+ ldrh r2, [r2, #0x0]
+ ldr r0, [r4, #0xc]
+ mov r1, #0x1
+ bl FUN_0200AD5C
+ ldr r1, _0206D1E0 ; =0x000004A9
+ add r0, r4, #0x0
+ bl FUN_0206DD6C
+ add r1, r4, #0x0
+ add r1, #0x65
+ strb r0, [r1, #0x0]
+ add r0, r4, #0x0
+ mov r1, #0x14
+ add r0, #0x66
+ strb r1, [r0, #0x0]
+ add r0, r4, #0x0
+ add r0, #0x64
+ ldrb r0, [r0, #0x0]
+ add r4, #0x64
+ add sp, #0x54
+ add r0, r0, #0x1
+ strb r0, [r4, #0x0]
+ pop {r3-r4, pc}
+_0206D12C:
+ ldr r0, [r4, #0x28]
+ bl FUN_020690E4
+ add r2, r0, #0x0
+ ldr r0, [r4, #0xc]
+ mov r1, #0x0
+ bl FUN_0200ACF8
+ ldr r1, _0206D1E4 ; =0x000004AA
+ add r0, r4, #0x0
+ bl FUN_0206DD6C
+ add r1, r4, #0x0
+ add r1, #0x65
+ strb r0, [r1, #0x0]
+ add r0, r4, #0x0
+ mov r1, #0x14
+ add r0, #0x66
+ strb r1, [r0, #0x0]
+ add r0, r4, #0x0
+ add r0, #0x64
+ ldrb r0, [r0, #0x0]
+ add r4, #0x64
+ add sp, #0x54
+ add r0, r0, #0x1
+ strb r0, [r4, #0x0]
+ pop {r3-r4, pc}
+_0206D162:
+ ldr r1, _0206D1E8 ; =0x000004AB
+ add r0, r4, #0x0
+ bl FUN_0206DD6C
+ add r1, r4, #0x0
+ add r1, #0x65
+ strb r0, [r1, #0x0]
+ add r0, r4, #0x0
+ mov r1, #0x1
+ add r0, #0x66
+ strb r1, [r0, #0x0]
+ add r0, r4, #0x0
+ add r0, #0x64
+ ldrb r0, [r0, #0x0]
+ add r4, #0x64
+ add sp, #0x54
+ add r0, r0, #0x1
+ strb r0, [r4, #0x0]
+ pop {r3-r4, pc}
+_0206D188:
+ add r0, r4, #0x0
+ add r0, #0x65
+ ldrb r0, [r0, #0x0]
+ bl FUN_0201BD70
+ cmp r0, #0x0
+ bne _0206D1AE
+ add r0, r4, #0x0
+ add r0, #0x66
+ ldrb r0, [r0, #0x0]
+ sub r1, r0, #0x1
+ add r0, r4, #0x0
+ add r0, #0x66
+ strb r1, [r0, #0x0]
+ add r0, r4, #0x0
+ add r0, #0x66
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x0
+ beq _0206D1B0
+_0206D1AE:
+ b _0206D806
+_0206D1B0:
+ add r0, r4, #0x0
+ add r0, #0x64
+ ldrb r0, [r0, #0x0]
+ add r4, #0x64
+ add sp, #0x54
+ add r0, r0, #0x1
+ strb r0, [r4, #0x0]
+ pop {r3-r4, pc}
+_0206D1C0:
+ ldr r0, [r4, #0x5c]
+ ldr r1, _0206D1EC ; =0x020F8320
+ b _0206D1F0
+ nop
+_0206D1C8: .word 0x000005FB
+_0206D1CC: .word 0x00007FFF
+_0206D1D0: .word 0x0000F3FF
+_0206D1D4: .word 0x000005FC
+_0206D1D8: .word 0x00000396
+_0206D1DC: .word 0x0000FFFE
+_0206D1E0: .word 0x000004A9
+_0206D1E4: .word 0x000004AA
+_0206D1E8: .word 0x000004AB
+_0206D1EC: .word 0x020F8320
+_0206D1F0:
+ str r0, [sp, #0x0]
+ ldr r0, [r4, #0x0]
+ mov r2, #0x1
+ mov r3, #0x8
+ bl FUN_02002198
+ str r0, [r4, #0x40]
+ add r0, r4, #0x0
+ add r0, #0x64
+ ldrb r0, [r0, #0x0]
+ add r4, #0x64
+ add sp, #0x54
+ add r0, r0, #0x1
+ strb r0, [r4, #0x0]
+ pop {r3-r4, pc}
+_0206D20E:
+ ldr r0, [r4, #0x40]
+ ldr r1, [r4, #0x5c]
+ bl FUN_020021AC
+ cmp r0, #0x0
+ beq _0206D226
+ mov r1, #0x1
+ mvn r1, r1
+ cmp r0, r1
+ beq _0206D256
+ add sp, #0x54
+ pop {r3-r4, pc}
+_0206D226:
+ add r0, r4, #0x0
+ mov r1, #0x16
+ add r0, #0x64
+ strb r1, [r0, #0x0]
+ mov r1, #0x0
+ str r1, [sp, #0x0]
+ mov r0, #0x10
+ str r0, [sp, #0x4]
+ str r1, [sp, #0x8]
+ ldr r0, [r4, #0x14]
+ ldr r2, _0206D540 ; =0x0000FFFF
+ mov r1, #0xf
+ mov r3, #0x1
+ bl FUN_02003210
+ mov r1, #0x0
+ str r1, [sp, #0x0]
+ ldr r0, [r4, #0x18]
+ mov r2, #0x10
+ add r3, r1, #0x0
+ bl FUN_02007E98
+ add sp, #0x54
+ pop {r3-r4, pc}
+_0206D256:
+ mov r0, #0x20
+ add r4, #0x64
+ add sp, #0x54
+ strb r0, [r4, #0x0]
+ pop {r3-r4, pc}
+_0206D260:
+ ldr r0, [r4, #0x14]
+ bl FUN_020038E4
+ cmp r0, #0x0
+ bne _0206D2EC
+ mov r0, #0x0
+ add r1, r0, #0x0
+ bl FUN_0200E3A0
+ mov r0, #0x1
+ mov r1, #0x0
+ bl FUN_0200E3A0
+ ldr r0, [r4, #0x0]
+ bl FUN_0206DC48
+ ldr r0, [r4, #0x1c]
+ mov r1, #0x6
+ mov r2, #0x1
+ bl FUN_02007558
+ ldr r0, [r4, #0x20]
+ mov r1, #0x6
+ mov r2, #0x1
+ bl FUN_02007558
+ ldr r1, [r4, #0x28]
+ ldr r0, [r4, #0x3c]
+ mov r2, #0x1
+ str r1, [r0, #0x0]
+ ldr r1, [r4, #0x2c]
+ ldr r0, [r4, #0x3c]
+ str r1, [r0, #0x4]
+ ldr r1, [r4, #0x3c]
+ mov r0, #0x0
+ strb r0, [r1, #0x11]
+ ldr r1, [r4, #0x3c]
+ strb r0, [r1, #0x14]
+ ldr r1, [r4, #0x3c]
+ strb r2, [r1, #0x13]
+ add r1, r4, #0x0
+ add r1, #0x6c
+ ldrh r2, [r1, #0x0]
+ ldr r1, [r4, #0x3c]
+ strh r2, [r1, #0x18]
+ ldr r1, [r4, #0x3c]
+ mov r2, #0x2
+ strb r2, [r1, #0x12]
+ ldr r1, [r4, #0x3c]
+ str r0, [r1, #0x28]
+ ldr r0, [r4, #0x3c]
+ ldr r1, _0206D544 ; =0x020F831C
+ bl FUN_0207B000
+ add r0, r4, #0x0
+ bl FUN_0206DE0C
+ add r0, r4, #0x0
+ add r0, #0x64
+ ldrb r0, [r0, #0x0]
+ add r4, #0x64
+ add sp, #0x54
+ add r0, r0, #0x1
+ strb r0, [r4, #0x0]
+ pop {r3-r4, pc}
+_0206D2E2:
+ ldr r0, [r4, #0x38]
+ bl FUN_02006290
+ cmp r0, #0x0
+ bne _0206D2EE
+_0206D2EC:
+ b _0206D806
+_0206D2EE:
+ ldr r0, [r4, #0x38]
+ bl FUN_02006260
+ ldr r1, [r4, #0x0]
+ add r0, r4, #0x0
+ bl FUN_0206D9B4
+ ldr r0, [r4, #0x4]
+ mov r1, #0x0
+ mov r2, #0x1
+ mov r3, #0xa
+ bl FUN_0200D0BC
+ ldr r0, [r4, #0x1c]
+ mov r1, #0x6
+ mov r2, #0x0
+ bl FUN_02007558
+ ldr r0, [r4, #0x20]
+ mov r1, #0x6
+ mov r2, #0x0
+ bl FUN_02007558
+ ldr r0, [r4, #0x1c]
+ bl FUN_020080D0
+ ldr r0, [r4, #0x20]
+ bl FUN_020080D0
+ mov r0, #0x10
+ str r0, [sp, #0x0]
+ mov r0, #0x0
+ str r0, [sp, #0x4]
+ str r0, [sp, #0x8]
+ ldr r0, [r4, #0x14]
+ ldr r2, _0206D540 ; =0x0000FFFF
+ mov r1, #0xf
+ mov r3, #0x1
+ bl FUN_02003210
+ mov r2, #0x0
+ str r2, [sp, #0x0]
+ ldr r0, [r4, #0x18]
+ mov r1, #0x10
+ add r3, r2, #0x0
+ bl FUN_02007E98
+ bl FUN_02033E74
+ add r0, r4, #0x0
+ add r0, #0x64
+ ldrb r0, [r0, #0x0]
+ add r4, #0x64
+ add sp, #0x54
+ add r0, r0, #0x1
+ strb r0, [r4, #0x0]
+ pop {r3-r4, pc}
+_0206D360:
+ mov r0, #0x0
+ bl FUN_0200E394
+ mov r0, #0x1
+ bl FUN_0200E394
+ ldr r0, [r4, #0x14]
+ bl FUN_020038E4
+ cmp r0, #0x0
+ bne _0206D474
+ ldr r0, [r4, #0x3c]
+ ldrb r1, [r0, #0x16]
+ cmp r1, #0x4
+ bne _0206D388
+ mov r0, #0x20
+ add r4, #0x64
+ add sp, #0x54
+ strb r0, [r4, #0x0]
+ pop {r3-r4, pc}
+_0206D388:
+ add r0, r4, #0x0
+ add r0, #0x6e
+ strb r1, [r0, #0x0]
+ mov r0, #0x19
+ add r4, #0x64
+ add sp, #0x54
+ strb r0, [r4, #0x0]
+ pop {r3-r4, pc}
+_0206D398:
+ add r2, r4, #0x0
+ add r2, #0x6c
+ ldrh r2, [r2, #0x0]
+ ldr r0, [r4, #0xc]
+ mov r1, #0x0
+ bl FUN_0200AD5C
+ ldr r1, _0206D548 ; =0x000004AD
+ add r0, r4, #0x0
+ bl FUN_0206DD6C
+ add r1, r4, #0x0
+ add r1, #0x65
+ strb r0, [r1, #0x0]
+ add r0, r4, #0x0
+ mov r1, #0x1
+ add r0, #0x66
+ strb r1, [r0, #0x0]
+ add r0, r4, #0x0
+ add r0, #0x64
+ ldrb r0, [r0, #0x0]
+ add r4, #0x64
+ add sp, #0x54
+ add r0, r0, #0x1
+ strb r0, [r4, #0x0]
+ pop {r3-r4, pc}
+_0206D3CC:
+ ldr r0, [r4, #0x5c]
+ ldr r1, _0206D54C ; =0x020F8320
+ str r0, [sp, #0x0]
+ ldr r0, [r4, #0x0]
+ mov r2, #0x1
+ mov r3, #0x8
+ bl FUN_02002198
+ str r0, [r4, #0x40]
+ add r0, r4, #0x0
+ add r0, #0x64
+ ldrb r0, [r0, #0x0]
+ add r4, #0x64
+ add sp, #0x54
+ add r0, r0, #0x1
+ strb r0, [r4, #0x0]
+ pop {r3-r4, pc}
+_0206D3EE:
+ ldr r0, [r4, #0x40]
+ ldr r1, [r4, #0x5c]
+ bl FUN_020021AC
+ cmp r0, #0x0
+ beq _0206D406
+ mov r1, #0x1
+ mvn r1, r1
+ cmp r0, r1
+ beq _0206D444
+ add sp, #0x54
+ pop {r3-r4, pc}
+_0206D406:
+ ldr r0, [r4, #0x28]
+ bl FUN_020690E4
+ add r2, r0, #0x0
+ ldr r0, [r4, #0xc]
+ mov r1, #0x0
+ bl FUN_0200ACF8
+ add r2, r4, #0x0
+ add r2, #0x6c
+ ldrh r2, [r2, #0x0]
+ ldr r0, [r4, #0xc]
+ mov r1, #0x1
+ bl FUN_0200AD5C
+ ldr r1, _0206D550 ; =0x000004AE
+ add r0, r4, #0x0
+ bl FUN_0206DD6C
+ add r1, r4, #0x0
+ add r1, #0x65
+ strb r0, [r1, #0x0]
+ add r0, r4, #0x0
+ mov r1, #0x14
+ add r0, #0x66
+ strb r1, [r0, #0x0]
+ mov r0, #0x24
+ add r4, #0x64
+ add sp, #0x54
+ strb r0, [r4, #0x0]
+ pop {r3-r4, pc}
+_0206D444:
+ mov r0, #0xe
+ add r4, #0x64
+ add sp, #0x54
+ strb r0, [r4, #0x0]
+ pop {r3-r4, pc}
+_0206D44E:
+ add r0, r4, #0x0
+ add r0, #0x65
+ ldrb r0, [r0, #0x0]
+ bl FUN_0201BD70
+ cmp r0, #0x0
+ bne _0206D474
+ add r0, r4, #0x0
+ add r0, #0x66
+ ldrb r0, [r0, #0x0]
+ sub r1, r0, #0x1
+ add r0, r4, #0x0
+ add r0, #0x66
+ strb r1, [r0, #0x0]
+ add r0, r4, #0x0
+ add r0, #0x66
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x0
+ beq _0206D476
+_0206D474:
+ b _0206D806
+_0206D476:
+ mov r0, #0xd
+ add r4, #0x64
+ add sp, #0x54
+ strb r0, [r4, #0x0]
+ pop {r3-r4, pc}
+_0206D480:
+ ldr r1, _0206D554 ; =0x000004AF
+ add r0, r4, #0x0
+ bl FUN_0206DD6C
+ add r1, r4, #0x0
+ add r1, #0x65
+ strb r0, [r1, #0x0]
+ add r0, r4, #0x0
+ mov r1, #0x14
+ add r0, #0x66
+ strb r1, [r0, #0x0]
+ add r0, r4, #0x0
+ add r0, #0x64
+ ldrb r0, [r0, #0x0]
+ add r4, #0x64
+ add sp, #0x54
+ add r0, r0, #0x1
+ strb r0, [r4, #0x0]
+ pop {r3-r4, pc}
+_0206D4A6:
+ ldr r0, [r4, #0x28]
+ bl FUN_020690E4
+ add r2, r0, #0x0
+ ldr r0, [r4, #0xc]
+ mov r1, #0x0
+ bl FUN_0200ACF8
+ add r1, r4, #0x0
+ add r1, #0x6e
+ ldrb r1, [r1, #0x0]
+ ldr r0, [r4, #0x28]
+ mov r2, #0x0
+ add r1, #0x36
+ bl FUN_020671BC
+ add r2, r0, #0x0
+ ldr r0, [r4, #0xc]
+ mov r1, #0x1
+ bl FUN_0200AD5C
+ mov r1, #0x4b
+ add r0, r4, #0x0
+ lsl r1, r1, #0x4
+ bl FUN_0206DD6C
+ add r1, r4, #0x0
+ add r1, #0x65
+ strb r0, [r1, #0x0]
+ add r0, r4, #0x0
+ mov r1, #0x14
+ add r0, #0x66
+ strb r1, [r0, #0x0]
+ add r0, r4, #0x0
+ add r0, #0x64
+ ldrb r0, [r0, #0x0]
+ add r4, #0x64
+ add sp, #0x54
+ add r0, r0, #0x1
+ strb r0, [r4, #0x0]
+ pop {r3-r4, pc}
+_0206D4F8:
+ ldr r1, _0206D558 ; =0x000004B1
+ add r0, r4, #0x0
+ bl FUN_0206DD6C
+ add r1, r4, #0x0
+ add r1, #0x65
+ strb r0, [r1, #0x0]
+ add r0, r4, #0x0
+ mov r1, #0x14
+ add r0, #0x66
+ strb r1, [r0, #0x0]
+ add r0, r4, #0x0
+ add r0, #0x64
+ ldrb r0, [r0, #0x0]
+ add r4, #0x64
+ add sp, #0x54
+ add r0, r0, #0x1
+ strb r0, [r4, #0x0]
+ pop {r3-r4, pc}
+_0206D51E:
+ ldr r0, [r4, #0x28]
+ bl FUN_020690E4
+ add r2, r0, #0x0
+ ldr r0, [r4, #0xc]
+ mov r1, #0x0
+ bl FUN_0200ACF8
+ add r2, r4, #0x0
+ add r2, #0x6c
+ ldrh r2, [r2, #0x0]
+ ldr r0, [r4, #0xc]
+ mov r1, #0x1
+ bl FUN_0200AD5C
+ ldr r1, _0206D55C ; =0x000004B2
+ b _0206D560
+ .balign 4
+_0206D540: .word 0x0000FFFF
+_0206D544: .word 0x020F831C
+_0206D548: .word 0x000004AD
+_0206D54C: .word 0x020F8320
+_0206D550: .word 0x000004AE
+_0206D554: .word 0x000004AF
+_0206D558: .word 0x000004B1
+_0206D55C: .word 0x000004B2
+_0206D560:
+ add r0, r4, #0x0
+ bl FUN_0206DD6C
+ add r1, r4, #0x0
+ add r1, #0x65
+ strb r0, [r1, #0x0]
+ add r0, r4, #0x0
+ add r2, r4, #0x0
+ mov r1, #0x0
+ add r0, #0x66
+ strb r1, [r0, #0x0]
+ add r1, r4, #0x0
+ add r1, #0x6e
+ ldrb r1, [r1, #0x0]
+ ldr r0, [r4, #0x28]
+ add r2, #0x66
+ add r1, #0x3e
+ bl FUN_02067830
+ add r1, r4, #0x0
+ add r2, r4, #0x0
+ add r1, #0x6c
+ add r2, #0x6e
+ ldrh r1, [r1, #0x0]
+ ldrb r2, [r2, #0x0]
+ ldr r0, [r4, #0x28]
+ bl FUN_020697CC
+ add r0, r4, #0x0
+ mov r1, #0x14
+ add r0, #0x66
+ strb r1, [r0, #0x0]
+ mov r0, #0x25
+ add r4, #0x64
+ add sp, #0x54
+ strb r0, [r4, #0x0]
+ pop {r3-r4, pc}
+_0206D5AA:
+ add r0, r4, #0x0
+ add r0, #0x65
+ ldrb r0, [r0, #0x0]
+ bl FUN_0201BD70
+ cmp r0, #0x0
+ bne _0206D5E8
+ add r0, r4, #0x0
+ add r0, #0x64
+ ldrb r0, [r0, #0x0]
+ add r4, #0x64
+ add sp, #0x54
+ add r0, r0, #0x1
+ strb r0, [r4, #0x0]
+ pop {r3-r4, pc}
+_0206D5C8:
+ bl FUN_02005CBC
+ cmp r0, #0x0
+ bne _0206D5E8
+ add r0, r4, #0x0
+ add r0, #0x66
+ ldrb r0, [r0, #0x0]
+ sub r1, r0, #0x1
+ add r0, r4, #0x0
+ add r0, #0x66
+ strb r1, [r0, #0x0]
+ add r0, r4, #0x0
+ add r0, #0x66
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x0
+ beq _0206D5EA
+_0206D5E8:
+ b _0206D806
+_0206D5EA:
+ mov r0, #0xd
+ add r4, #0x64
+ add sp, #0x54
+ strb r0, [r4, #0x0]
+ pop {r3-r4, pc}
+_0206D5F4:
+ mov r1, #0x0
+ str r1, [sp, #0x0]
+ mov r0, #0x10
+ str r0, [sp, #0x4]
+ str r1, [sp, #0x8]
+ ldr r0, [r4, #0x14]
+ ldr r2, _0206D80C ; =0x0000FFFF
+ mov r1, #0xf
+ mov r3, #0x1
+ bl FUN_02003210
+ mov r1, #0x0
+ str r1, [sp, #0x0]
+ ldr r0, [r4, #0x18]
+ mov r2, #0x10
+ add r3, r1, #0x0
+ bl FUN_02007E98
+ add r0, r4, #0x0
+ add r0, #0x64
+ ldrb r0, [r0, #0x0]
+ add r4, #0x64
+ add sp, #0x54
+ add r0, r0, #0x1
+ strb r0, [r4, #0x0]
+ pop {r3-r4, pc}
+_0206D628:
+ ldr r0, [r4, #0x14]
+ bl FUN_020038E4
+ cmp r0, #0x0
+ bne _0206D6F8
+ ldr r0, [r4, #0x30]
+ bl FUN_0206E0DC
+ add r0, r4, #0x0
+ bl FUN_0206D820
+ mov r0, #0x1
+ add r4, #0x67
+ add sp, #0x54
+ strb r0, [r4, #0x0]
+ pop {r3-r4, pc}
+_0206D648:
+ ldr r0, [r4, #0x14]
+ bl FUN_020038E4
+ cmp r0, #0x0
+ bne _0206D6F8
+ mov r1, #0xc
+ add r2, r1, #0x0
+ ldr r0, [r4, #0x1c]
+ add r2, #0xf4
+ bl FUN_02007558
+ mov r1, #0xd
+ add r2, r1, #0x0
+ ldr r0, [r4, #0x1c]
+ add r2, #0xf3
+ bl FUN_02007558
+ ldr r0, [r4, #0x20]
+ mov r1, #0xc
+ mov r2, #0x0
+ bl FUN_02007558
+ ldr r0, [r4, #0x20]
+ mov r1, #0xd
+ mov r2, #0x0
+ bl FUN_02007558
+ ldr r0, [r4, #0x20]
+ mov r1, #0x6
+ mov r2, #0x1
+ bl FUN_02007558
+ mov r0, #0x10
+ str r0, [sp, #0x0]
+ mov r3, #0x0
+ ldr r0, _0206D810 ; =0x00007FFF
+ str r3, [sp, #0x4]
+ str r0, [sp, #0x8]
+ ldr r0, [r4, #0x14]
+ ldr r2, _0206D814 ; =0x0000F3FF
+ mov r1, #0xf
+ bl FUN_02003210
+ ldr r0, _0206D810 ; =0x00007FFF
+ mov r2, #0x0
+ str r0, [sp, #0x0]
+ ldr r0, [r4, #0x18]
+ mov r1, #0x10
+ add r3, r2, #0x0
+ bl FUN_02007E98
+ add r0, r4, #0x0
+ mov r1, #0x0
+ add r0, #0x72
+ strb r1, [r0, #0x0]
+ add r0, r4, #0x0
+ add r0, #0x73
+ strb r1, [r0, #0x0]
+ add r0, r4, #0x0
+ mov r2, #0xff
+ add r0, #0x74
+ strb r2, [r0, #0x0]
+ add r0, r4, #0x0
+ mov r2, #0xa0
+ add r0, #0x75
+ strb r2, [r0, #0x0]
+ add r0, r4, #0x0
+ add r0, #0x70
+ strb r1, [r0, #0x0]
+ ldr r0, _0206D818 ; =0x00000475
+ bl FUN_02005350
+ ldr r0, [r4, #0x30]
+ bl FUN_0206E0DC
+ add r0, r4, #0x0
+ add r0, #0x64
+ ldrb r0, [r0, #0x0]
+ add r4, #0x64
+ add sp, #0x54
+ add r0, r0, #0x1
+ strb r0, [r4, #0x0]
+ pop {r3-r4, pc}
+_0206D6EE:
+ ldr r0, [r4, #0x14]
+ bl FUN_020038E4
+ cmp r0, #0x0
+ beq _0206D6FA
+_0206D6F8:
+ b _0206D806
+_0206D6FA:
+ mov r0, #0x0
+ str r0, [sp, #0x0]
+ str r0, [sp, #0x4]
+ str r0, [sp, #0x8]
+ add r2, r4, #0x0
+ add r2, #0x60
+ ldrh r2, [r2, #0x0]
+ ldr r0, [r4, #0x44]
+ ldr r1, [r4, #0x1c]
+ mov r3, #0x2
+ bl FUN_02069038
+ add r1, r4, #0x0
+ add r1, #0x60
+ ldrh r1, [r1, #0x0]
+ add r0, sp, #0x18
+ bl FUN_02069010
+ ldr r0, [r4, #0x1c]
+ add r1, sp, #0x18
+ bl FUN_0200737C
+ ldr r0, [r4, #0x1c]
+ mov r1, #0x0
+ bl FUN_02007314
+ add r0, r4, #0x0
+ add r0, #0x60
+ ldrh r0, [r0, #0x0]
+ bl FUN_02005578
+ add r0, r4, #0x0
+ add r0, #0x64
+ ldrb r0, [r0, #0x0]
+ add r4, #0x64
+ add sp, #0x54
+ add r0, r0, #0x1
+ strb r0, [r4, #0x0]
+ pop {r3-r4, pc}
+_0206D748:
+ bl FUN_02005670
+ cmp r0, #0x0
+ bne _0206D806
+ ldr r0, [r4, #0x44]
+ mov r1, #0x0
+ bl FUN_02014D7C
+ cmp r0, #0x1
+ bne _0206D806
+ ldr r0, [r4, #0x1c]
+ bl FUN_02007390
+ cmp r0, #0x0
+ bne _0206D806
+ ldr r0, [r4, #0x28]
+ bl FUN_020690E4
+ add r2, r0, #0x0
+ ldr r0, [r4, #0xc]
+ mov r1, #0x0
+ bl FUN_0200ACF8
+ ldr r1, _0206D81C ; =0x00000397
+ add r0, r4, #0x0
+ bl FUN_0206DD6C
+ add r1, r4, #0x0
+ add r1, #0x65
+ strb r0, [r1, #0x0]
+ add r0, r4, #0x0
+ mov r1, #0x14
+ add r0, #0x66
+ strb r1, [r0, #0x0]
+ add r0, r4, #0x0
+ add r0, #0x64
+ ldrb r0, [r0, #0x0]
+ add r4, #0x64
+ add sp, #0x54
+ add r0, r0, #0x1
+ strb r0, [r4, #0x0]
+ pop {r3-r4, pc}
+_0206D79C:
+ add r0, r4, #0x0
+ add r0, #0x65
+ ldrb r0, [r0, #0x0]
+ bl FUN_0201BD70
+ cmp r0, #0x0
+ bne _0206D806
+ add r0, r4, #0x0
+ add r0, #0x66
+ ldrb r0, [r0, #0x0]
+ sub r1, r0, #0x1
+ add r0, r4, #0x0
+ add r0, #0x66
+ strb r1, [r0, #0x0]
+ add r0, r4, #0x0
+ add r0, #0x66
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x0
+ bne _0206D806
+ mov r1, #0x0
+ str r1, [sp, #0x0]
+ mov r0, #0x10
+ str r0, [sp, #0x4]
+ str r1, [sp, #0x8]
+ ldr r0, [r4, #0x14]
+ ldr r2, _0206D80C ; =0x0000FFFF
+ mov r1, #0xf
+ mov r3, #0x1
+ bl FUN_02003210
+ mov r1, #0x0
+ str r1, [sp, #0x0]
+ ldr r0, [r4, #0x18]
+ mov r2, #0x10
+ add r3, r1, #0x0
+ bl FUN_02007E98
+ add r0, r4, #0x0
+ add r0, #0x64
+ ldrb r0, [r0, #0x0]
+ add r4, #0x64
+ add sp, #0x54
+ add r0, r0, #0x1
+ strb r0, [r4, #0x0]
+ pop {r3-r4, pc}
+_0206D7F6:
+ ldr r0, [r4, #0x14]
+ bl FUN_020038E4
+ cmp r0, #0x0
+ bne _0206D806
+ mov r0, #0x1
+ add r4, #0x67
+ strb r0, [r4, #0x0]
+_0206D806:
+ add sp, #0x54
+ pop {r3-r4, pc}
+ nop
+_0206D80C: .word 0x0000FFFF
+_0206D810: .word 0x00007FFF
+_0206D814: .word 0x0000F3FF
+_0206D818: .word 0x00000475
+_0206D81C: .word 0x00000397
+
+ thumb_func_start FUN_0206D820
+FUN_0206D820: ; 0x0206D820
+ push {r4-r6, lr}
+ sub sp, #0x20
+ add r4, r0, #0x0
+ ldr r0, [r4, #0x78]
+ cmp r0, #0x6
+ bgt _0206D834
+ bne _0206D830
+ b _0206D9A0
+_0206D830:
+ add sp, #0x20
+ pop {r4-r6, pc}
+_0206D834:
+ sub r0, #0xd
+ cmp r0, #0x6
+ bhi _0206D86C
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0206D846: ; jump table (using 16-bit offset)
+ .short _0206D854 - _0206D846 - 2; case 0
+ .short _0206D854 - _0206D846 - 2; case 1
+ .short _0206D9AE - _0206D846 - 2; case 2
+ .short _0206D9AE - _0206D846 - 2; case 3
+ .short _0206D9AE - _0206D846 - 2; case 4
+ .short _0206D9A0 - _0206D846 - 2; case 5
+ .short _0206D9A0 - _0206D846 - 2; case 6
+_0206D854:
+ ldr r0, [r4, #0x4c]
+ ldr r2, [r4, #0x5c]
+ mov r1, #0x4
+ bl FUN_0206EEF8
+ cmp r0, #0x0
+ beq _0206D86C
+ ldr r0, [r4, #0x24]
+ bl FUN_0206B9AC
+ cmp r0, #0x6
+ blt _0206D86E
+_0206D86C:
+ b _0206D9AE
+_0206D86E:
+ ldr r0, [r4, #0x5c]
+ bl FUN_020669C0
+ add r5, r0, #0x0
+ ldr r0, [r4, #0x28]
+ add r1, r5, #0x0
+ bl FUN_02069B88
+ mov r0, #0x49
+ lsl r0, r0, #0x2
+ str r0, [sp, #0x0]
+ add r0, r5, #0x0
+ mov r1, #0x5
+ add r2, sp, #0x0
+ bl FUN_02067830
+ mov r0, #0x4
+ str r0, [sp, #0x0]
+ add r0, r5, #0x0
+ mov r1, #0x9a
+ add r2, sp, #0x0
+ bl FUN_02067830
+ mov r0, #0x0
+ str r0, [sp, #0x0]
+ add r0, r5, #0x0
+ mov r1, #0x6
+ add r2, sp, #0x0
+ bl FUN_02067830
+ add r0, r5, #0x0
+ mov r1, #0xb
+ add r2, sp, #0x0
+ bl FUN_02067830
+ mov r1, #0x19
+ str r1, [sp, #0x4]
+ add r6, sp, #0x0
+_0206D8BA:
+ add r0, r5, #0x0
+ add r2, r6, #0x0
+ bl FUN_02067830
+ ldr r0, [sp, #0x4]
+ add r1, r0, #0x1
+ str r1, [sp, #0x4]
+ cmp r1, #0x36
+ blt _0206D8BA
+ mov r1, #0x4e
+ str r1, [sp, #0x4]
+ add r6, sp, #0x0
+_0206D8D2:
+ add r0, r5, #0x0
+ add r2, r6, #0x0
+ bl FUN_02067830
+ ldr r0, [sp, #0x4]
+ add r1, r0, #0x1
+ str r1, [sp, #0x4]
+ cmp r1, #0x6e
+ blt _0206D8D2
+ mov r1, #0x7a
+ str r1, [sp, #0x4]
+ add r6, sp, #0x0
+_0206D8EA:
+ add r0, r5, #0x0
+ add r2, r6, #0x0
+ bl FUN_02067830
+ ldr r0, [sp, #0x4]
+ add r1, r0, #0x1
+ str r1, [sp, #0x4]
+ cmp r1, #0x8f
+ blt _0206D8EA
+ add r0, r5, #0x0
+ mov r1, #0xb2
+ mov r2, #0x0
+ bl FUN_02067830
+ add r0, r5, #0x0
+ mov r1, #0x4d
+ add r2, sp, #0x0
+ bl FUN_02067830
+ add r0, r5, #0x0
+ mov r1, #0x9f
+ add r2, sp, #0x0
+ bl FUN_02067830
+ ldr r0, [r4, #0x5c]
+ bl FUN_020256BC
+ add r6, r0, #0x0
+ add r0, r5, #0x0
+ mov r1, #0xa9
+ add r2, r6, #0x0
+ bl FUN_02067830
+ add r0, r6, #0x0
+ bl FUN_02016A18
+ add r0, r5, #0x0
+ mov r1, #0xa1
+ add r2, sp, #0x0
+ bl FUN_02067830
+ mov r0, #0x0
+ add r1, sp, #0x8
+ mov r2, #0x18
+ blx MIi_CpuClearFast
+ add r0, r5, #0x0
+ mov r1, #0xaa
+ add r2, sp, #0x8
+ bl FUN_02067830
+ add r0, r5, #0x0
+ bl FUN_0206A1C4
+ add r0, r5, #0x0
+ bl FUN_02066ED8
+ ldr r0, [r4, #0x24]
+ add r1, r5, #0x0
+ bl FUN_0206B900
+ ldr r0, [r4, #0x48]
+ add r1, r5, #0x0
+ bl FUN_02024AF0
+ ldr r0, [r4, #0x50]
+ mov r1, #0xc
+ bl FUN_0202A0E8
+ ldr r0, [r4, #0x50]
+ mov r1, #0x16
+ bl FUN_0202A170
+ add r0, r5, #0x0
+ bl FUN_020690E4
+ add r1, r0, #0x0
+ ldr r0, [r4, #0x54]
+ bl FUN_0204C104
+ add r0, r5, #0x0
+ bl FUN_02016A18
+ ldr r0, [r4, #0x4c]
+ ldr r3, [r4, #0x5c]
+ mov r1, #0x4
+ mov r2, #0x1
+ bl FUN_0206EDD4
+ add sp, #0x20
+ pop {r4-r6, pc}
+_0206D9A0:
+ mov r0, #0x0
+ str r0, [sp, #0x4]
+ ldr r0, [r4, #0x28]
+ mov r1, #0x6
+ add r2, sp, #0x4
+ bl FUN_02067830
+_0206D9AE:
+ add sp, #0x20
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_0206D9B4
+FUN_0206D9B4: ; 0x0206D9B4
+ push {r4-r6, lr}
+ sub sp, #0xb8
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ bl FUN_0201E6D8
+ ldr r6, _0206DC28 ; =0x020F8354
+ add r3, sp, #0x3c
+ mov r2, #0x5
+_0206D9C6:
+ ldmia r6!, {r0-r1}
+ stmia r3!, {r0-r1}
+ sub r2, r2, #0x1
+ bne _0206D9C6
+ add r0, sp, #0x3c
+ bl FUN_0201E66C
+ mov r1, #0x6
+ mov r2, #0x2
+ mov r0, #0x0
+ lsl r1, r1, #0x18
+ lsl r2, r2, #0x12
+ blx MIi_CpuClear32
+ mov r1, #0x62
+ mov r2, #0x2
+ mov r0, #0x0
+ lsl r1, r1, #0x14
+ lsl r2, r2, #0x10
+ blx MIi_CpuClear32
+ mov r1, #0x19
+ mov r2, #0x1
+ mov r0, #0x0
+ lsl r1, r1, #0x16
+ lsl r2, r2, #0x12
+ blx MIi_CpuClear32
+ mov r1, #0x66
+ mov r2, #0x2
+ mov r0, #0x0
+ lsl r1, r1, #0x14
+ lsl r2, r2, #0x10
+ blx MIi_CpuClear32
+ ldr r6, _0206DC2C ; =0x020F8328
+ add r3, sp, #0x2c
+ add r2, r3, #0x0
+ ldmia r6!, {r0-r1}
+ stmia r3!, {r0-r1}
+ ldmia r6!, {r0-r1}
+ stmia r3!, {r0-r1}
+ add r0, r2, #0x0
+ bl FUN_02016BBC
+ ldr r6, _0206DC30 ; =0x020F837C
+ add r3, sp, #0x64
+ mov r2, #0xa
+_0206DA26:
+ ldmia r6!, {r0-r1}
+ stmia r3!, {r0-r1}
+ sub r2, r2, #0x1
+ bne _0206DA26
+ ldr r0, [r6, #0x0]
+ mov r1, #0x1
+ str r0, [r3, #0x0]
+ add r0, r4, #0x0
+ add r2, sp, #0x64
+ mov r3, #0x0
+ bl FUN_02016C18
+ add r0, r4, #0x0
+ mov r1, #0x1
+ bl FUN_02018744
+ add r0, r4, #0x0
+ mov r1, #0x2
+ add r2, sp, #0x80
+ mov r3, #0x0
+ bl FUN_02016C18
+ add r0, r4, #0x0
+ mov r1, #0x2
+ bl FUN_02018744
+ add r0, r4, #0x0
+ mov r1, #0x3
+ add r2, sp, #0x9c
+ mov r3, #0x0
+ bl FUN_02016C18
+ add r0, r4, #0x0
+ mov r1, #0x3
+ bl FUN_02018744
+ ldr r1, _0206DC34 ; =0x04000008
+ mov r0, #0x3
+ ldrh r2, [r1, #0x0]
+ bic r2, r0
+ mov r0, #0x1
+ orr r2, r0
+ strh r2, [r1, #0x0]
+ add r1, r0, #0x0
+ bl FUN_0201E6E4
+ ldr r6, _0206DC38 ; =0x020F8338
+ add r3, sp, #0x10
+ ldmia r6!, {r0-r1}
+ add r2, r3, #0x0
+ stmia r3!, {r0-r1}
+ ldmia r6!, {r0-r1}
+ stmia r3!, {r0-r1}
+ ldmia r6!, {r0-r1}
+ stmia r3!, {r0-r1}
+ ldr r0, [r6, #0x0]
+ mov r1, #0x4
+ str r0, [r3, #0x0]
+ add r0, r4, #0x0
+ mov r3, #0x0
+ bl FUN_02016C18
+ add r0, r4, #0x0
+ mov r1, #0x4
+ bl FUN_02018744
+ ldr r0, [r5, #0x2c]
+ bl FUN_02025084
+ add r6, r0, #0x0
+ lsl r0, r6, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x0]
+ ldr r0, [r5, #0x5c]
+ mov r1, #0x1
+ str r0, [sp, #0x4]
+ add r0, r4, #0x0
+ add r2, r1, #0x0
+ mov r3, #0xa
+ bl FUN_0200D274
+ mov r1, #0x0
+ str r1, [sp, #0x0]
+ str r1, [sp, #0x4]
+ mov r0, #0x1
+ str r0, [sp, #0x8]
+ ldr r0, [r5, #0x5c]
+ add r2, r4, #0x0
+ str r0, [sp, #0xc]
+ mov r0, #0x76
+ mov r3, #0x3
+ bl FUN_0200687C
+ mov r0, #0x0
+ str r0, [sp, #0x0]
+ str r0, [sp, #0x4]
+ mov r1, #0x1
+ str r1, [sp, #0x8]
+ ldr r0, [r5, #0x5c]
+ add r2, r4, #0x0
+ str r0, [sp, #0xc]
+ mov r0, #0x76
+ mov r3, #0x3
+ bl FUN_020068C8
+ mov r1, #0x0
+ str r1, [sp, #0x0]
+ mov r0, #0x40
+ str r0, [sp, #0x4]
+ str r1, [sp, #0x8]
+ ldr r0, [r5, #0x14]
+ ldr r3, [r5, #0x5c]
+ mov r1, #0x76
+ mov r2, #0x8
+ bl FUN_020030E8
+ add r0, r6, #0x0
+ bl FUN_0200CD64
+ add r2, r0, #0x0
+ mov r0, #0x0
+ str r0, [sp, #0x0]
+ mov r0, #0x20
+ str r0, [sp, #0x4]
+ mov r0, #0xa0
+ str r0, [sp, #0x8]
+ ldr r0, [r5, #0x14]
+ ldr r3, [r5, #0x5c]
+ mov r1, #0x26
+ bl FUN_020030E8
+ mov r0, #0x0
+ str r0, [sp, #0x0]
+ mov r0, #0x20
+ str r0, [sp, #0x4]
+ mov r0, #0xb0
+ str r0, [sp, #0x8]
+ ldr r0, [r5, #0x14]
+ ldr r3, [r5, #0x5c]
+ mov r1, #0xe
+ mov r2, #0x7
+ bl FUN_020030E8
+ ldr r0, [r5, #0x5c]
+ mov r1, #0x2
+ str r0, [sp, #0x0]
+ ldr r0, [r5, #0x0]
+ mov r2, #0x1
+ mov r3, #0x0
+ bl FUN_0200CABC
+ bl FUN_0200CAFC
+ add r2, r0, #0x0
+ mov r0, #0x0
+ str r0, [sp, #0x0]
+ mov r0, #0x20
+ str r0, [sp, #0x4]
+ mov r0, #0x80
+ str r0, [sp, #0x8]
+ ldr r0, [r5, #0x14]
+ ldr r3, [r5, #0x5c]
+ mov r1, #0x26
+ bl FUN_020030E8
+ mov r0, #0x0
+ str r0, [sp, #0x0]
+ str r0, [sp, #0x4]
+ mov r0, #0x1
+ str r0, [sp, #0x8]
+ ldr r0, [r5, #0x5c]
+ mov r1, #0xa
+ str r0, [sp, #0xc]
+ mov r0, #0xc
+ add r2, r4, #0x0
+ mov r3, #0x4
+ bl FUN_0200687C
+ mov r0, #0x0
+ str r0, [sp, #0x0]
+ str r0, [sp, #0x4]
+ mov r0, #0x1
+ str r0, [sp, #0x8]
+ ldr r0, [r5, #0x5c]
+ mov r1, #0xb
+ str r0, [sp, #0xc]
+ mov r0, #0xc
+ add r2, r4, #0x0
+ mov r3, #0x4
+ bl FUN_020068C8
+ mov r0, #0x1
+ str r0, [sp, #0x0]
+ mov r0, #0x20
+ str r0, [sp, #0x4]
+ mov r0, #0x0
+ str r0, [sp, #0x8]
+ mov r1, #0xc
+ ldr r0, [r5, #0x14]
+ ldr r3, [r5, #0x5c]
+ add r2, r1, #0x0
+ bl FUN_020030E8
+ mov r0, #0x1
+ lsl r0, r0, #0x1a
+ ldr r1, [r0, #0x0]
+ ldr r2, _0206DC3C ; =0xFFFF1FFF
+ add r3, r1, #0x0
+ and r3, r2
+ lsr r1, r0, #0xd
+ orr r1, r3
+ ldr r3, _0206DC40 ; =0x04001000
+ str r1, [r0, #0x0]
+ ldr r1, [r3, #0x0]
+ and r1, r2
+ str r1, [r3, #0x0]
+ add r3, r0, #0x0
+ add r3, #0x48
+ ldrh r4, [r3, #0x0]
+ mov r2, #0x3f
+ mov r1, #0x1f
+ bic r4, r2
+ orr r1, r4
+ strh r1, [r3, #0x0]
+ add r0, #0x4a
+ ldrh r3, [r0, #0x0]
+ mov r1, #0x12
+ bic r3, r2
+ orr r1, r3
+ strh r1, [r0, #0x0]
+ add r0, r5, #0x0
+ mov r1, #0x0
+ add r0, #0x72
+ strb r1, [r0, #0x0]
+ add r0, r5, #0x0
+ add r0, #0x73
+ strb r1, [r0, #0x0]
+ add r0, r5, #0x0
+ mov r1, #0xff
+ add r0, #0x74
+ strb r1, [r0, #0x0]
+ add r0, r5, #0x0
+ mov r1, #0xa0
+ add r0, #0x75
+ strb r1, [r0, #0x0]
+ bl FUN_0201E788
+ mov r0, #0x10
+ mov r1, #0x1
+ bl FUN_0201E6E4
+ ldr r0, _0206DC44 ; =FUN_0206DD08
+ add r1, r5, #0x0
+ bl FUN_02015F10
+ add sp, #0xb8
+ pop {r4-r6, pc}
+ .balign 4
+_0206DC28: .word 0x020F8354
+_0206DC2C: .word 0x020F8328
+_0206DC30: .word 0x020F837C
+_0206DC34: .word 0x04000008
+_0206DC38: .word 0x020F8338
+_0206DC3C: .word 0xFFFF1FFF
+_0206DC40: .word 0x04001000
+_0206DC44: .word FUN_0206DD08
+
+ thumb_func_start FUN_0206DC48
+FUN_0206DC48: ; 0x0206DC48
+ push {r4, lr}
+ add r4, r0, #0x0
+ mov r0, #0x1
+ mov r1, #0x0
+ bl FUN_0201E6E4
+ mov r0, #0x2
+ mov r1, #0x0
+ bl FUN_0201E6E4
+ add r0, r4, #0x0
+ mov r1, #0x1
+ bl FUN_020178A0
+ add r0, r4, #0x0
+ mov r1, #0x2
+ bl FUN_020178A0
+ add r0, r4, #0x0
+ mov r1, #0x3
+ bl FUN_020178A0
+ add r0, r4, #0x0
+ mov r1, #0x4
+ bl FUN_020178A0
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0206DC80
+FUN_0206DC80: ; 0x0206DC80
+ push {r3-r5, lr}
+ sub sp, #0x20
+ add r4, r0, #0x0
+ ldr r1, [r4, #0x28]
+ add r0, sp, #0x10
+ mov r2, #0x2
+ bl FUN_02068B68
+ mov r0, #0x0
+ str r0, [sp, #0x0]
+ str r0, [sp, #0x4]
+ str r0, [sp, #0x8]
+ str r0, [sp, #0xc]
+ ldr r0, [r4, #0x18]
+ add r1, sp, #0x10
+ mov r2, #0x80
+ mov r3, #0x50
+ bl FUN_020073A0
+ str r0, [r4, #0x1c]
+ ldr r0, [r4, #0x5c]
+ bl FUN_020669C0
+ add r5, r0, #0x0
+ ldr r0, [r4, #0x28]
+ add r1, r5, #0x0
+ bl FUN_02069B88
+ add r2, r4, #0x0
+ add r0, r5, #0x0
+ mov r1, #0x5
+ add r2, #0x62
+ bl FUN_02067830
+ add r0, r5, #0x0
+ bl FUN_02066ED8
+ add r0, sp, #0x10
+ add r1, r5, #0x0
+ mov r2, #0x2
+ bl FUN_02068B68
+ add r0, r5, #0x0
+ bl FUN_02016A18
+ mov r0, #0x0
+ str r0, [sp, #0x0]
+ str r0, [sp, #0x4]
+ str r0, [sp, #0x8]
+ str r0, [sp, #0xc]
+ ldr r0, [r4, #0x18]
+ add r1, sp, #0x10
+ mov r2, #0x80
+ mov r3, #0x50
+ bl FUN_020073A0
+ str r0, [r4, #0x20]
+ mov r1, #0xc
+ mov r2, #0x0
+ bl FUN_02007558
+ ldr r0, [r4, #0x20]
+ mov r1, #0xd
+ mov r2, #0x0
+ bl FUN_02007558
+ add sp, #0x20
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_0206DD08
+FUN_0206DD08: ; 0x0206DD08
+ push {r3-r5, lr}
+ add r4, r0, #0x0
+ add r0, #0x75
+ ldrb r2, [r0, #0x0]
+ add r0, r4, #0x0
+ add r0, #0x73
+ ldrb r1, [r0, #0x0]
+ add r0, r4, #0x0
+ add r0, #0x72
+ ldrb r0, [r0, #0x0]
+ mov r3, #0xff
+ lsl r3, r3, #0x8
+ lsl r0, r0, #0x8
+ add r5, r0, #0x0
+ add r0, r4, #0x0
+ add r0, #0x74
+ lsl r1, r1, #0x8
+ and r1, r3
+ ldrb r0, [r0, #0x0]
+ and r5, r3
+ orr r1, r2
+ orr r5, r0
+ ldr r0, _0206DD60 ; =0x04000040
+ strh r5, [r0, #0x0]
+ strh r1, [r0, #0x4]
+ ldr r0, [r4, #0x18]
+ bl FUN_020081C4
+ bl FUN_0201C30C
+ ldr r0, [r4, #0x14]
+ bl FUN_0200372C
+ ldr r0, [r4, #0x0]
+ bl FUN_0201AB60
+ ldr r3, _0206DD64 ; =0x027E0000
+ ldr r1, _0206DD68 ; =0x00003FF8
+ mov r0, #0x1
+ ldr r2, [r3, r1]
+ orr r0, r2
+ str r0, [r3, r1]
+ pop {r3-r5, pc}
+ nop
+_0206DD60: .word 0x04000040
+_0206DD64: .word 0x027E0000
+_0206DD68: .word 0x00003FF8
+
+ thumb_func_start FUN_0206DD6C
+FUN_0206DD6C: ; 0x0206DD6C
+ push {r4-r5, lr}
+ sub sp, #0xc
+ add r4, r0, #0x0
+ ldr r0, [r4, #0x8]
+ bl FUN_0200A914
+ add r5, r0, #0x0
+ ldr r0, [r4, #0xc]
+ ldr r1, [r4, #0x10]
+ add r2, r5, #0x0
+ bl FUN_0200B7B8
+ add r0, r5, #0x0
+ bl FUN_02016A18
+ ldr r0, [r4, #0x4]
+ mov r1, #0xff
+ bl FUN_02019620
+ ldr r0, [r4, #0x2c]
+ bl FUN_02024FF4
+ mov r3, #0x0
+ str r3, [sp, #0x0]
+ str r0, [sp, #0x4]
+ ldr r0, _0206DDB0 ; =FUN_0206DDB4
+ mov r1, #0x1
+ str r0, [sp, #0x8]
+ ldr r0, [r4, #0x4]
+ ldr r2, [r4, #0x10]
+ bl FUN_0201BD84
+ add sp, #0xc
+ pop {r4-r5, pc}
+ .balign 4
+_0206DDB0: .word FUN_0206DDB4
+
+ thumb_func_start FUN_0206DDB4
+FUN_0206DDB4: ; 0x0206DDB4
+ push {r4, lr}
+ mov r4, #0x0
+ cmp r1, #0x5
+ bhi _0206DDFA
+ add r0, r1, r1
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0206DDC8: ; jump table (using 16-bit offset)
+ .short _0206DDFA - _0206DDC8 - 2; case 0
+ .short _0206DDD4 - _0206DDC8 - 2; case 1
+ .short _0206DDDC - _0206DDC8 - 2; case 2
+ .short _0206DDE4 - _0206DDC8 - 2; case 3
+ .short _0206DDEC - _0206DDC8 - 2; case 4
+ .short _0206DDF4 - _0206DDC8 - 2; case 5
+_0206DDD4:
+ bl FUN_02005514
+ add r4, r0, #0x0
+ b _0206DDFA
+_0206DDDC:
+ bl FUN_02005CBC
+ add r4, r0, #0x0
+ b _0206DDFA
+_0206DDE4:
+ ldr r0, _0206DE00 ; =0x00000484
+ bl FUN_02005C28
+ b _0206DDFA
+_0206DDEC:
+ ldr r0, _0206DE04 ; =0x000005E6
+ bl FUN_020054C8
+ b _0206DDFA
+_0206DDF4:
+ ldr r0, _0206DE08 ; =0x00000483
+ bl FUN_02005C28
+_0206DDFA:
+ add r0, r4, #0x0
+ pop {r4, pc}
+ nop
+_0206DE00: .word 0x00000484
+_0206DE04: .word 0x000005E6
+_0206DE08: .word 0x00000483
+
+ thumb_func_start FUN_0206DE0C
+FUN_0206DE0C: ; 0x0206DE0C
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r0, _0206DE20 ; =0x020FA6E8
+ ldr r1, [r4, #0x3c]
+ ldr r2, [r4, #0x5c]
+ bl FUN_02006234
+ str r0, [r4, #0x38]
+ pop {r4, pc}
+ nop
+_0206DE20: .word 0x020FA6E8
+
+ thumb_func_start FUN_0206DE24
+FUN_0206DE24: ; 0x0206DE24
+ push {r3, lr}
+ bl FUN_0201E6D8
+ bl FUN_0201E740
+ mov r2, #0x1
+ lsl r2, r2, #0x1a
+ ldr r1, [r2, #0x0]
+ ldr r0, _0206DE44 ; =0xFFFFE0FF
+ and r1, r0
+ str r1, [r2, #0x0]
+ ldr r2, _0206DE48 ; =0x04001000
+ ldr r1, [r2, #0x0]
+ and r0, r1
+ str r0, [r2, #0x0]
+ pop {r3, pc}
+ .balign 4
+_0206DE44: .word 0xFFFFE0FF
+_0206DE48: .word 0x04001000
+
+ thumb_func_start FUN_0206DE4C
+FUN_0206DE4C: ; 0x0206DE4C
+ push {r3, lr}
+ mov r0, #0x7
+ str r0, [sp, #0x0]
+ ldr r0, _0206DE70 ; =0x04000050
+ mov r1, #0x0
+ mov r2, #0xe
+ mov r3, #0xb
+ blx 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_
+ pop {r3, pc}
+ .balign 4
+_0206DE70: .word 0x04000050
+_0206DE74: .word 0x04001050
+
+ thumb_func_start FUN_0206DE78
+FUN_0206DE78: ; 0x0206DE78
+ push {r3, lr}
+ sub sp, #0x8
+ mov r2, #0x2
+ ldr r1, _0206DE90 ; =FUN_0206DE94
+ str r2, [sp, #0x0]
+ str r1, [sp, #0x4]
+ mov r1, #0x0
+ add r3, r1, #0x0
+ bl FUN_02022318
+ add sp, #0x8
+ pop {r3, pc}
+ .balign 4
+_0206DE90: .word FUN_0206DE94
+
+ thumb_func_start FUN_0206DE94
+FUN_0206DE94: ; 0x0206DE94
+ push {r3, lr}
+ mov r0, #0x1
+ add r1, r0, #0x0
+ bl FUN_0201E6E4
+ ldr r0, _0206DF00 ; =0x04000008
+ mov r1, #0x3
+ ldrh r2, [r0, #0x0]
+ bic r2, r1
+ mov r1, #0x1
+ orr r1, r2
+ strh r1, [r0, #0x0]
+ add r0, #0x58
+ ldrh r2, [r0, #0x0]
+ ldr r1, _0206DF04 ; =0xFFFFCFFD
+ and r2, r1
+ strh r2, [r0, #0x0]
+ add r2, r1, #0x2
+ ldrh r3, [r0, #0x0]
+ add r1, r1, #0x2
+ and r3, r2
+ mov r2, #0x10
+ orr r2, r3
+ strh r2, [r0, #0x0]
+ ldrh r3, [r0, #0x0]
+ ldr r2, _0206DF08 ; =0x0000CFFB
+ and r3, r2
+ strh r3, [r0, #0x0]
+ ldrh r3, [r0, #0x0]
+ sub r2, #0x1c
+ and r3, r1
+ mov r1, #0x8
+ orr r1, r3
+ strh r1, [r0, #0x0]
+ ldrh r1, [r0, #0x0]
+ and r1, r2
+ strh r1, [r0, #0x0]
+ mov r0, #0x0
+ add r1, r0, #0x0
+ add r2, r0, #0x0
+ add r3, r0, #0x0
+ blx G3X_SetFog
+ mov r0, #0x0
+ ldr r2, _0206DF0C ; =0x00007FFF
+ add r1, r0, #0x0
+ mov r3, #0x3f
+ str r0, [sp, #0x0]
+ blx G3X_SetClearColor
+ ldr r1, _0206DF10 ; =0xBFFF0000
+ ldr r0, _0206DF14 ; =0x04000580
+ str r1, [r0, #0x0]
+ pop {r3, pc}
+ .balign 4
+_0206DF00: .word 0x04000008
+_0206DF04: .word 0xFFFFCFFD
+_0206DF08: .word 0x0000CFFB
+_0206DF0C: .word 0x00007FFF
+_0206DF10: .word 0xBFFF0000
+_0206DF14: .word 0x04000580
+
+ thumb_func_start FUN_0206DF18
+FUN_0206DF18: ; 0x0206DF18
+ push {r3-r5, lr}
+ ldr r3, _0206DF50 ; =0x021064B8
+ mov r0, #0x2
+ mov r1, #0x0
+ ldr r3, [r3, #0x0]
+ lsl r0, r0, #0xe
+ add r2, r1, #0x0
+ blx r3
+ ldr r3, _0206DF54 ; =0x021064C0
+ mov r1, #0x0
+ add r4, r0, #0x0
+ ldr r3, [r3, #0x0]
+ mov r0, #0xa0
+ add r2, r1, #0x0
+ blx r3
+ add r5, r0, #0x0
+ cmp r4, #0x0
+ bne _0206DF40
+ bl ErrorHandling
+_0206DF40:
+ cmp r5, #0x0
+ bne _0206DF48
+ bl ErrorHandling
+_0206DF48:
+ bl FUN_02012CC8
+ pop {r3-r5, pc}
+ nop
+_0206DF50: .word 0x021064B8
+_0206DF54: .word 0x021064C0
+
+ thumb_func_start FUN_0206DF58
+FUN_0206DF58: ; 0x0206DF58
+ push {r3, lr}
+ bl FUN_020222AC
+ bl FUN_02013364
+ cmp r0, #0x0
+ ble _0206DF6E
+ bl FUN_020222AC
+ blx FUN_020B02C8
+_0206DF6E:
+ bl FUN_02013388
+ mov r0, #0x1
+ mov r1, #0x0
+ bl FUN_020222B4
+ pop {r3, pc}
+
+ thumb_func_start FUN_0206DF7C
+FUN_0206DF7C: ; 0x0206DF7C
+ push {r4, lr}
+ ldr r3, _0206DF94 ; =0x021064B8
+ mov r2, #0x0
+ ldr r3, [r3, #0x0]
+ blx r3
+ add r4, r0, #0x0
+ bl FUN_0201327C
+ lsl r0, r4, #0x10
+ lsr r0, r0, #0xd
+ pop {r4, pc}
+ nop
+_0206DF94: .word 0x021064B8
+
+ thumb_func_start FUN_0206DF98
+FUN_0206DF98: ; 0x0206DF98
+ push {r4, lr}
+ ldr r3, _0206DFB0 ; =0x021064C0
+ mov r2, #0x0
+ ldr r3, [r3, #0x0]
+ blx r3
+ add r4, r0, #0x0
+ bl FUN_020132BC
+ lsl r0, r4, #0x10
+ lsr r0, r0, #0xd
+ pop {r4, pc}
+ nop
+_0206DFB0: .word 0x021064C0
+
+ thumb_func_start FUN_0206DFB4
+FUN_0206DFB4: ; 0x0206DFB4
+ push {r4, lr}
+ sub sp, #0x8
+ mov r1, #0x12
+ lsl r1, r1, #0xa
+ add r4, r0, #0x0
+ bl FUN_02016998
+ add r2, r0, #0x0
+ mov r0, #0x1
+ str r0, [sp, #0x0]
+ mov r3, #0x12
+ ldr r0, _0206DFF4 ; =FUN_0206DF7C
+ ldr r1, _0206DFF8 ; =FUN_0206DF98
+ lsl r3, r3, #0xa
+ str r4, [sp, #0x4]
+ bl FUN_02012CDC
+ add r4, r0, #0x0
+ bl FUN_0201343C
+ add r2, r0, #0x0
+ beq _0206DFEC
+ mov r0, #0x1
+ mov r1, #0xe1
+ lsl r0, r0, #0xc
+ lsl r1, r1, #0xe
+ bl FUN_0201EC94
+_0206DFEC:
+ add r0, r4, #0x0
+ add sp, #0x8
+ pop {r4, pc}
+ nop
+_0206DFF4: .word FUN_0206DF7C
+_0206DFF8: .word FUN_0206DF98
+
+ thumb_func_start FUN_0206DFFC
+FUN_0206DFFC: ; 0x0206DFFC
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ add r6, r1, #0x0
+ add r7, r2, #0x0
+ bl FUN_0206DFB4
+ add r4, r0, #0x0
+ add r0, r6, #0x0
+ add r1, r7, #0x0
+ add r2, r5, #0x0
+ bl FUN_0201318C
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ mov r2, #0xa
+ mov r3, #0x1
+ bl FUN_02013194
+ add r0, r4, #0x0
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_0206E024
+FUN_0206E024: ; 0x0206E024
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ bl FUN_020133E8
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_02012DE4
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_0206E03C
+FUN_0206E03C: ; 0x0206E03C
+ push {r3}
+ sub sp, #0xc
+ add r1, sp, #0x0
+ mov r2, #0x0
+ str r2, [r1, #0x0]
+ str r2, [r1, #0x4]
+ str r2, [r1, #0x8]
+ mov r1, #0x56
+ lsl r1, r1, #0x4
+ str r2, [sp, #0x0]
+ str r2, [sp, #0x8]
+ str r1, [sp, #0x4]
+ ldr r1, [r0, #0x20]
+ ldr r1, [r1, #0x0]
+ ldr r1, [r1, #0x4]
+ add r1, r2, r1
+ str r1, [r0, #0x28]
+ ldr r1, [r0, #0x20]
+ ldr r2, [sp, #0x4]
+ ldr r1, [r1, #0x0]
+ ldr r1, [r1, #0x8]
+ add r1, r2, r1
+ str r1, [r0, #0x2c]
+ ldr r1, [r0, #0x20]
+ ldr r2, [sp, #0x8]
+ ldr r1, [r1, #0x0]
+ ldr r1, [r1, #0xc]
+ add r1, r2, r1
+ str r1, [r0, #0x30]
+ add sp, #0xc
+ pop {r3}
+ bx lr
+
+ thumb_func_start FUN_0206E07C
+FUN_0206E07C: ; 0x0206E07C
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ ldr r0, [r5, #0x0]
+ mov r1, #0x10
+ bl FUN_02016998
+ add r4, r0, #0x0
+ bne _0206E090
+ bl ErrorHandling
+_0206E090:
+ ldr r0, [r5, #0x0]
+ ldr r2, [r5, #0x4]
+ mov r1, #0x7c
+ str r0, [r4, #0x0]
+ str r2, [r4, #0x4]
+ ldr r0, [r4, #0x0]
+ bl FUN_0206DFFC
+ mov r1, #0x1
+ str r0, [r4, #0xc]
+ bl FUN_02013440
+ add r0, r4, #0x0
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_0206E0AC
+FUN_0206E0AC: ; 0x0206E0AC
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r0, [r4, #0xc]
+ ldr r2, _0206E0C4 ; =FUN_0206E03C
+ add r3, r4, #0x0
+ bl FUN_020133AC
+ ldr r0, [r4, #0xc]
+ mov r1, #0x1
+ bl FUN_02013440
+ pop {r4, pc}
+ .balign 4
+_0206E0C4: .word FUN_0206E03C
+
+ thumb_func_start FUN_0206E0C8
+FUN_0206E0C8: ; 0x0206E0C8
+ push {r3, lr}
+ ldr r0, [r0, #0xc]
+ bl FUN_020133C8
+ cmp r0, #0x0
+ beq _0206E0D8
+ mov r0, #0x1
+ pop {r3, pc}
+_0206E0D8:
+ mov r0, #0x0
+ pop {r3, pc}
+
+ thumb_func_start FUN_0206E0DC
+FUN_0206E0DC: ; 0x0206E0DC
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r0, [r4, #0xc]
+ bl FUN_0206E024
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0206E0F0
+FUN_0206E0F0: ; 0x0206E0F0
+ push {r4, lr}
+ add r4, r0, #0x0
+ cmp r4, #0x17
+ blo _0206E0FC
+ bl ErrorHandling
+_0206E0FC:
+ ldr r0, _0206E104 ; =0x020F83E0
+ lsl r1, r4, #0x2
+ ldr r0, [r0, r1]
+ pop {r4, pc}
+ .balign 4
+_0206E104: .word 0x020F83E0
+
+ thumb_func_start FUN_0206E108
+FUN_0206E108: ; 0x0206E108
+ mov r0, #0x26
+ bx lr
+
+ thumb_func_start FUN_0206E10C
+FUN_0206E10C: ; 0x0206E10C
+ mov r0, #0xb2
+ bx lr
+
+ thumb_func_start FUN_0206E110
+FUN_0206E110: ; 0x0206E110
+ mov r0, #0xb3
+ bx lr
+
+ thumb_func_start FUN_0206E114
+FUN_0206E114: ; 0x0206E114
+ push {r4, lr}
+ add r4, r0, #0x0
+ cmp r4, #0x17
+ blo _0206E120
+ bl ErrorHandling
+_0206E120:
+ ldr r0, _0206E128 ; =0x020F843C
+ ldrb r0, [r0, r4]
+ pop {r4, pc}
+ nop
+_0206E128: .word 0x020F843C
+
+ thumb_func_start FUN_0206E12C
+FUN_0206E12C: ; 0x0206E12C
+ mov r0, #0x1b
+ bx lr
+
+ thumb_func_start FUN_0206E130
+FUN_0206E130: ; 0x0206E130
+ push {r3-r7, lr}
+ sub sp, #0x10
+ add r7, r3, #0x0
+ add r5, r0, #0x0
+ add r6, r1, #0x0
+ add r4, r2, #0x0
+ bl FUN_0206E12C
+ str r0, [sp, #0xc]
+ add r0, r7, #0x0
+ bl FUN_0206E0F0
+ add r3, r0, #0x0
+ mov r0, #0x1
+ str r0, [sp, #0x0]
+ ldr r0, [sp, #0x28]
+ str r4, [sp, #0x4]
+ str r0, [sp, #0x8]
+ ldr r2, [sp, #0xc]
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ bl FUN_0200C00C
+ add sp, #0x10
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_0206E164
+FUN_0206E164: ; 0x0206E164
+ push {r4-r7, lr}
+ sub sp, #0x14
+ add r6, r0, #0x0
+ add r7, r1, #0x0
+ add r5, r2, #0x0
+ add r4, r3, #0x0
+ bl FUN_0206E12C
+ str r0, [sp, #0x10]
+ bl FUN_0206E108
+ add r3, r0, #0x0
+ mov r0, #0x0
+ str r0, [sp, #0x0]
+ mov r0, #0x3
+ str r0, [sp, #0x4]
+ str r5, [sp, #0x8]
+ ldr r2, [sp, #0x10]
+ add r0, r6, #0x0
+ add r1, r7, #0x0
+ str r4, [sp, #0xc]
+ bl FUN_0200C06C
+ add sp, #0x14
+ pop {r4-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_0206E198
+FUN_0206E198: ; 0x0206E198
+ push {r4-r7, lr}
+ sub sp, #0x1c
+ add r5, r0, #0x0
+ add r6, r1, #0x0
+ add r7, r2, #0x0
+ str r3, [sp, #0x18]
+ bl FUN_0206E12C
+ add r4, r0, #0x0
+ bl FUN_0206E108
+ str r4, [sp, #0x0]
+ str r0, [sp, #0x4]
+ mov r0, #0x0
+ str r0, [sp, #0x8]
+ mov r0, #0x3
+ str r0, [sp, #0xc]
+ ldr r0, [sp, #0x30]
+ ldr r3, [sp, #0x18]
+ str r0, [sp, #0x10]
+ ldr r0, [sp, #0x34]
+ add r1, r6, #0x0
+ str r0, [sp, #0x14]
+ add r0, r5, #0x0
+ add r2, r7, #0x0
+ bl FUN_0200C0DC
+ add sp, #0x1c
+ pop {r4-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_0206E1D4
+FUN_0206E1D4: ; 0x0206E1D4
+ push {r4-r7, lr}
+ sub sp, #0xc
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ add r6, r2, #0x0
+ add r7, r3, #0x0
+ bl FUN_0206E12C
+ str r0, [sp, #0x8]
+ bl FUN_0206E10C
+ add r3, r0, #0x0
+ mov r0, #0x1
+ str r0, [sp, #0x0]
+ ldr r2, [sp, #0x8]
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ str r6, [sp, #0x4]
+ bl FUN_0200C124
+ bl FUN_0206E12C
+ add r6, r0, #0x0
+ bl FUN_0206E110
+ add r3, r0, #0x0
+ mov r0, #0x1
+ str r0, [sp, #0x0]
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ add r2, r6, #0x0
+ str r7, [sp, #0x4]
+ bl FUN_0200C13C
+ add sp, #0xc
+ pop {r4-r7, pc}
+
+ thumb_func_start FUN_0206E21C
+FUN_0206E21C: ; 0x0206E21C
+ ldr r3, _0206E220 ; =FUN_0200C358
+ bx r3
+ .balign 4
+_0206E220: .word FUN_0200C358
+
+ thumb_func_start FUN_0206E224
+FUN_0206E224: ; 0x0206E224
+ ldr r3, _0206E228 ; =FUN_0200C368
+ bx r3
+ .balign 4
+_0206E228: .word FUN_0200C368
+
+ thumb_func_start FUN_0206E22C
+FUN_0206E22C: ; 0x0206E22C
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r2, #0x0
+ bl FUN_0200C378
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_0200C388
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_0206E240
+FUN_0206E240: ; 0x0206E240
+ push {r4-r7, lr}
+ sub sp, #0x34
+ add r6, r3, #0x0
+ add r4, r0, #0x0
+ add r7, r1, #0x0
+ add r5, sp, #0x0
+ mov r3, #0x6
+_0206E24E:
+ ldmia r6!, {r0-r1}
+ stmia r5!, {r0-r1}
+ sub r3, r3, #0x1
+ bne _0206E24E
+ ldr r0, [r6, #0x0]
+ str r0, [r5, #0x0]
+ add r0, r2, #0x0
+ bl FUN_0206E114
+ str r0, [sp, #0xc]
+ add r0, r4, #0x0
+ add r1, r7, #0x0
+ add r2, sp, #0x0
+ bl FUN_0200C154
+ add sp, #0x34
+ pop {r4-r7, pc}
+
+ thumb_func_start FUN_0206E270
+FUN_0206E270: ; 0x0206E270
+ ldr r3, _0206E274 ; =FUN_0200C3DC
+ bx r3
+ .balign 4
+_0206E274: .word FUN_0200C3DC
+
+ thumb_func_start FUN_0206E278
+FUN_0206E278: ; 0x0206E278
+ push {r4, lr}
+ add r4, r0, #0x0
+ cmp r4, #0x3
+ blo _0206E284
+ bl ErrorHandling
+_0206E284:
+ ldr r0, _0206E28C ; =0x020F83D4
+ lsl r1, r4, #0x2
+ ldr r0, [r0, r1]
+ pop {r4, pc}
+ .balign 4
+_0206E28C: .word 0x020F83D4
+
+ thumb_func_start FUN_0206E290
+FUN_0206E290: ; 0x0206E290
+ push {r4, lr}
+ add r4, r0, #0x0
+ cmp r4, #0x3
+ blo _0206E29C
+ bl ErrorHandling
+_0206E29C:
+ ldr r0, _0206E2A4 ; =0x020F83D0
+ ldrb r0, [r0, r4]
+ pop {r4, pc}
+ nop
+_0206E2A4: .word 0x020F83D0
+
+ thumb_func_start FUN_0206E2A8
+FUN_0206E2A8: ; 0x0206E2A8
+ mov r0, #0x1b
+ bx lr
+
+ thumb_func_start FUN_0206E2AC
+FUN_0206E2AC: ; 0x0206E2AC
+ push {r3-r7, lr}
+ sub sp, #0x10
+ add r7, r3, #0x0
+ add r5, r0, #0x0
+ add r6, r1, #0x0
+ add r4, r2, #0x0
+ bl FUN_0206E2A8
+ str r0, [sp, #0xc]
+ add r0, r7, #0x0
+ bl FUN_0206E278
+ add r3, r0, #0x0
+ mov r0, #0x1
+ str r0, [sp, #0x0]
+ ldr r0, [sp, #0x28]
+ str r4, [sp, #0x4]
+ str r0, [sp, #0x8]
+ ldr r2, [sp, #0xc]
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ bl FUN_0200C00C
+ add sp, #0x10
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_0206E2E0
+FUN_0206E2E0: ; 0x0206E2E0
+ ldr r3, _0206E2E4 ; =FUN_0200C358
+ bx r3
+ .balign 4
+_0206E2E4: .word FUN_0200C358
+
+ thumb_func_start FUN_0206E2E8
+FUN_0206E2E8: ; 0x0206E2E8
+ ldr r3, _0206E2EC ; =FUN_0200C3DC
+ bx r3
+ .balign 4
+_0206E2EC: .word FUN_0200C3DC
+
+ thumb_func_start FUN_0206E2F0
+FUN_0206E2F0: ; 0x0206E2F0
+ push {r4, lr}
+ mov r1, #0x78
+ bl FUN_02016998
+ mov r1, #0x0
+ mov r2, #0x78
+ add r4, r0, #0x0
+ blx Call_FillMemWithValue
+ add r0, r4, #0x0
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0206E308
+FUN_0206E308: ; 0x0206E308
+ mov r0, #0x78
+ bx lr
+
+ thumb_func_start FUN_0206E30C
+FUN_0206E30C: ; 0x0206E30C
+ add r0, #0x65
+ strb r1, [r0, #0x0]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_0206E314
+FUN_0206E314: ; 0x0206E314
+ push {r4-r6, lr}
+ add r4, r1, #0x0
+ add r1, r2, #0x0
+ add r5, r0, #0x0
+ add r6, r3, #0x0
+ bl FUN_0206E30C
+ str r4, [r5, #0x0]
+ str r6, [r5, #0x6c]
+ mov r0, #0x0
+ add r5, #0x66
+ strh r0, [r5, #0x0]
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_0206E330
+FUN_0206E330: ; 0x0206E330
+ push {r3-r4}
+ mov r4, #0xc
+ mul r4, r3
+ add r0, r0, r4
+ str r1, [r0, #0x4]
+ strb r2, [r0, #0xc]
+ pop {r3-r4}
+ bx lr
+
+ thumb_func_start FUN_0206E340
+FUN_0206E340: ; 0x0206E340
+ add r1, r0, #0x0
+ add r1, #0x76
+ ldrh r2, [r1, #0x0]
+ mov r1, #0x1
+ add r0, #0x76
+ bic r2, r1
+ mov r1, #0x1
+ orr r1, r2
+ strh r1, [r0, #0x0]
+ bx lr
+
+ thumb_func_start FUN_0206E354
+FUN_0206E354: ; 0x0206E354
+ str r1, [r0, #0x70]
+ bx lr
+
+ thumb_func_start FUN_0206E358
+FUN_0206E358: ; 0x0206E358
+ add r0, #0x74
+ strb r1, [r0, #0x0]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_0206E360
+FUN_0206E360: ; 0x0206E360
+ add r2, r0, #0x0
+ add r2, #0x76
+ ldrh r3, [r2, #0x0]
+ ldr r2, _0206E378 ; =0xFFFF0001
+ lsl r1, r1, #0x11
+ and r2, r3
+ lsr r1, r1, #0x10
+ orr r1, r2
+ add r0, #0x76
+ strh r1, [r0, #0x0]
+ bx lr
+ nop
+_0206E378: .word 0xFFFF0001
+
+ thumb_func_start FUN_0206E37C
+FUN_0206E37C: ; 0x0206E37C
+ add r0, #0x66
+ ldrh r0, [r0, #0x0]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_0206E384
+FUN_0206E384: ; 0x0206E384
+ add r0, #0x68
+ ldrh r0, [r0, #0x0]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_0206E38C
+FUN_0206E38C: ; 0x0206E38C
+ add r0, #0x74
+ ldrb r0, [r0, #0x0]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_0206E394
+FUN_0206E394: ; 0x0206E394
+ add r0, #0x75
+ ldrb r0, [r0, #0x0]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_0206E39C
+FUN_0206E39C: ; 0x0206E39C
+ push {r3, lr}
+ bl FUN_0202390C
+ bl FUN_02028930
+ pop {r3, pc}
+
+ thumb_func_start FUN_0206E3A8
+FUN_0206E3A8: ; 0x0206E3A8
+ push {r4-r6, lr}
+ bl FUN_02029C80
+ add r6, r0, #0x0
+ mov r5, #0x0
+ mov r4, #0x1
+_0206E3B4:
+ add r0, r6, #0x0
+ add r1, r4, #0x0
+ bl FUN_02029E2C
+ add r4, r4, #0x1
+ add r5, r5, r0
+ cmp r4, #0x50
+ bls _0206E3B4
+ add r0, r5, #0x0
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_0206E3C8
+FUN_0206E3C8: ; 0x0206E3C8
+ push {r3, lr}
+ bl FUN_02027E24
+ bl FUN_0202708C
+ bl FUN_02027168
+ pop {r3, pc}
+
+ thumb_func_start FUN_0206E3D8
+FUN_0206E3D8: ; 0x0206E3D8
+ push {r3, lr}
+ bl FUN_02027E24
+ bl FUN_0202708C
+ bl FUN_02027184
+ pop {r3, pc}
+
+ thumb_func_start FUN_0206E3E8
+FUN_0206E3E8: ; 0x0206E3E8
+ push {r3, lr}
+ bl FUN_0202A8D8
+ mov r1, #0x0
+ add r2, r1, #0x0
+ bl FUN_0202A3B4
+ pop {r3, pc}
+
+ thumb_func_start FUN_0206E3F8
+FUN_0206E3F8: ; 0x0206E3F8
+ push {r4-r7, lr}
+ sub sp, #0xc
+ add r7, r0, #0x0
+ str r1, [sp, #0x8]
+ add r5, r2, #0x0
+ add r4, r3, #0x0
+ mov r0, #0x0
+ mov r1, #0x1a
+ mov r2, #0x7
+ bl FUN_0200A86C
+ add r6, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_0200AA80
+ add r4, r0, #0x0
+ cmp r5, #0x0
+ bne _0206E428
+ add r0, r6, #0x0
+ mov r1, #0x63
+ bl FUN_0200A914
+ add r5, r0, #0x0
+ b _0206E4FA
+_0206E428:
+ mov r1, #0x1b
+ lsl r1, r1, #0x4
+ cmp r5, r1
+ bne _0206E454
+ add r0, r6, #0x0
+ mov r1, #0x61
+ bl FUN_0200A914
+ add r5, r0, #0x0
+ add r0, r7, #0x0
+ bl FUN_0206E3E8
+ mov r1, #0x0
+ add r2, r0, #0x0
+ str r1, [sp, #0x0]
+ mov r0, #0x1
+ str r0, [sp, #0x4]
+ add r0, r4, #0x0
+ mov r3, #0x4
+ bl FUN_0200AD38
+ b _0206E4FA
+_0206E454:
+ add r2, r1, #0x2
+ cmp r5, r2
+ bne _0206E47E
+ add r0, r6, #0x0
+ mov r1, #0x5c
+ bl FUN_0200A914
+ add r5, r0, #0x0
+ add r0, r7, #0x0
+ bl FUN_0206E3A8
+ mov r1, #0x0
+ add r2, r0, #0x0
+ str r1, [sp, #0x0]
+ mov r0, #0x1
+ str r0, [sp, #0x4]
+ add r0, r4, #0x0
+ mov r3, #0x4
+ bl FUN_0200AD38
+ b _0206E4FA
+_0206E47E:
+ add r2, r1, #0x3
+ cmp r5, r2
+ bne _0206E4C0
+ add r0, r6, #0x0
+ mov r1, #0x5d
+ bl FUN_0200A914
+ add r5, r0, #0x0
+ add r0, r7, #0x0
+ bl FUN_0206E3C8
+ mov r1, #0x0
+ add r2, r0, #0x0
+ str r1, [sp, #0x0]
+ mov r0, #0x1
+ str r0, [sp, #0x4]
+ add r0, r4, #0x0
+ mov r3, #0x3
+ bl FUN_0200AD38
+ add r0, r7, #0x0
+ bl FUN_0206E3D8
+ add r2, r0, #0x0
+ mov r0, #0x0
+ str r0, [sp, #0x0]
+ mov r1, #0x1
+ add r0, r4, #0x0
+ mov r3, #0x2
+ str r1, [sp, #0x4]
+ bl FUN_0200AD38
+ b _0206E4FA
+_0206E4C0:
+ add r1, #0xc
+ cmp r5, r1
+ bne _0206E4EA
+ add r0, r6, #0x0
+ mov r1, #0x39
+ bl FUN_0200A914
+ add r5, r0, #0x0
+ add r0, r7, #0x0
+ bl FUN_0206E39C
+ mov r1, #0x0
+ add r2, r0, #0x0
+ str r1, [sp, #0x0]
+ mov r0, #0x1
+ str r0, [sp, #0x4]
+ add r0, r4, #0x0
+ mov r3, #0x5
+ bl FUN_0200AD38
+ b _0206E4FA
+_0206E4EA:
+ bl FUN_0200AB18
+ add r0, r6, #0x0
+ bl FUN_0200A8B8
+ add sp, #0xc
+ mov r0, #0x0
+ pop {r4-r7, pc}
+_0206E4FA:
+ ldr r1, [sp, #0x8]
+ add r0, r4, #0x0
+ add r2, r5, #0x0
+ bl FUN_0200B7B8
+ add r0, r5, #0x0
+ bl FUN_02021A20
+ add r0, r4, #0x0
+ bl FUN_0200AB18
+ add r0, r6, #0x0
+ bl FUN_0200A8B8
+ mov r0, #0x1
+ add sp, #0xc
+ pop {r4-r7, pc}
+
+ thumb_func_start FUN_0206E51C
+FUN_0206E51C: ; 0x0206E51C
+ push {r3-r7, lr}
+ add r5, r1, #0x0
+ str r0, [sp, #0x0]
+ ldr r4, [sp, #0x18]
+ cmp r3, #0x1
+ beq _0206E52E
+ cmp r3, #0x2
+ beq _0206E54C
+ b _0206E56A
+_0206E52E:
+ mov r0, #0x1
+ mov r1, #0x1a
+ mov r2, #0x7
+ add r3, r4, #0x0
+ bl FUN_0200A86C
+ add r4, r0, #0x0
+ mov r1, #0x38
+ add r2, r5, #0x0
+ bl FUN_0200A8E0
+ add r0, r4, #0x0
+ bl FUN_0200A8B8
+ pop {r3-r7, pc}
+_0206E54C:
+ mov r0, #0x1
+ mov r1, #0x1a
+ mov r2, #0x7
+ add r3, r4, #0x0
+ bl FUN_0200A86C
+ add r4, r0, #0x0
+ mov r1, #0x6f
+ add r2, r5, #0x0
+ bl FUN_0200A8E0
+ add r0, r4, #0x0
+ bl FUN_0200A8B8
+ pop {r3-r7, pc}
+_0206E56A:
+ mov r0, #0x1
+ mov r1, #0x1a
+ mov r2, #0xc7
+ add r3, r4, #0x0
+ bl FUN_0200A86C
+ add r7, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_0200AA80
+ add r4, r0, #0x0
+ add r0, r7, #0x0
+ mov r1, #0x24
+ bl FUN_0200A914
+ add r6, r0, #0x0
+ ldr r2, [sp, #0x0]
+ add r0, r4, #0x0
+ mov r1, #0x0
+ bl FUN_0200ABC0
+ add r0, r4, #0x0
+ add r1, r5, #0x0
+ add r2, r6, #0x0
+ bl FUN_0200B7B8
+ add r0, r6, #0x0
+ bl FUN_02021A20
+ add r0, r4, #0x0
+ bl FUN_0200AB18
+ add r0, r7, #0x0
+ bl FUN_0200A8B8
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_0206E5B4
+FUN_0206E5B4: ; 0x0206E5B4
+ push {r3-r6}
+ add r3, r0, #0x0
+ add r0, r2, #0x0
+ cmp r1, r0
+ beq _0206E63A
+ lsl r2, r1, #0x2
+ ldrh r4, [r3, r2]
+ add r5, r3, r2
+ add r2, sp, #0x0
+ strh r4, [r2, #0x0]
+ ldrh r4, [r5, #0x2]
+ strh r4, [r2, #0x2]
+ cmp r0, r1
+ bls _0206E600
+ sub r0, r0, #0x1
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ lsl r1, r1, #0x10
+ lsl r2, r0, #0x10
+ asr r1, r1, #0x10
+ asr r5, r2, #0x10
+ cmp r1, r5
+ bge _0206E62C
+ lsl r2, r1, #0x2
+ add r2, r3, r2
+ add r4, r2, #0x0
+_0206E5E8:
+ ldrh r6, [r2, #0x4]
+ add r1, r1, #0x1
+ lsl r1, r1, #0x10
+ strh r6, [r4, #0x0]
+ ldrh r6, [r2, #0x6]
+ asr r1, r1, #0x10
+ add r2, r2, #0x4
+ strh r6, [r4, #0x2]
+ add r4, r4, #0x4
+ cmp r1, r5
+ blt _0206E5E8
+ b _0206E62C
+_0206E600:
+ lsl r1, r1, #0x10
+ asr r5, r1, #0x10
+ lsl r1, r0, #0x10
+ asr r4, r1, #0x10
+ cmp r5, r4
+ ble _0206E62C
+ lsl r1, r5, #0x2
+ add r1, r3, r1
+ add r2, r1, #0x0
+_0206E612:
+ sub r6, r1, #0x4
+ ldrh r6, [r6, #0x0]
+ sub r5, r5, #0x1
+ lsl r5, r5, #0x10
+ strh r6, [r2, #0x0]
+ sub r6, r1, #0x2
+ ldrh r6, [r6, #0x0]
+ asr r5, r5, #0x10
+ sub r1, r1, #0x4
+ strh r6, [r2, #0x2]
+ sub r2, r2, #0x4
+ cmp r5, r4
+ bgt _0206E612
+_0206E62C:
+ lsl r4, r0, #0x2
+ add r0, sp, #0x0
+ ldrh r1, [r0, #0x0]
+ add r2, r3, r4
+ strh r1, [r3, r4]
+ ldrh r0, [r0, #0x2]
+ strh r0, [r2, #0x2]
+_0206E63A:
+ pop {r3-r6}
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_0206E640
+FUN_0206E640: ; 0x0206E640
+ cmp r1, #0x3
+ bhi _0206E6B2
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #0x6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_0206E650: ; jump table (using 16-bit offset)
+ .short _0206E658 - _0206E650 - 2; case 0
+ .short _0206E66A - _0206E650 - 2; case 1
+ .short _0206E684 - _0206E650 - 2; case 2
+ .short _0206E6A0 - _0206E650 - 2; case 3
+_0206E658:
+ cmp r0, #0x0
+ beq _0206E6B2
+ ldr r1, _0206E6B8 ; =0x0000FFFF
+ cmp r0, r1
+ beq _0206E6B2
+ lsl r1, r0, #0x3
+ ldr r0, _0206E6BC ; =0x020F85B4
+ ldrh r0, [r0, r1]
+ bx lr
+_0206E66A:
+ cmp r0, #0x0
+ bne _0206E672
+ ldr r0, _0206E6C0 ; =0x000002BB
+ bx lr
+_0206E672:
+ ldr r1, _0206E6B8 ; =0x0000FFFF
+ cmp r0, r1
+ bne _0206E67C
+ ldr r0, _0206E6C4 ; =0x000002BD
+ bx lr
+_0206E67C:
+ lsl r1, r0, #0x3
+ ldr r0, _0206E6C8 ; =0x020F85B6
+ ldrh r0, [r0, r1]
+ bx lr
+_0206E684:
+ cmp r0, #0x0
+ bne _0206E68E
+ mov r0, #0xaf
+ lsl r0, r0, #0x2
+ bx lr
+_0206E68E:
+ ldr r1, _0206E6B8 ; =0x0000FFFF
+ cmp r0, r1
+ bne _0206E698
+ ldr r0, _0206E6CC ; =0x000002BE
+ bx lr
+_0206E698:
+ lsl r1, r0, #0x3
+ ldr r0, _0206E6D0 ; =0x020F85B8
+ ldrh r0, [r0, r1]
+ bx lr
+_0206E6A0:
+ cmp r0, #0x0
+ beq _0206E6B2
+ ldr r1, _0206E6B8 ; =0x0000FFFF
+ cmp r0, r1
+ beq _0206E6B2
+ lsl r1, r0, #0x3
+ ldr r0, _0206E6D4 ; =0x020F85BA
+ ldrh r0, [r0, r1]
+ bx lr
+_0206E6B2:
+ mov r0, #0x0
+ bx lr
+ nop
+_0206E6B8: .word 0x0000FFFF
+_0206E6BC: .word 0x020F85B4
+_0206E6C0: .word 0x000002BB
+_0206E6C4: .word 0x000002BD
+_0206E6C8: .word 0x020F85B6
+_0206E6CC: .word 0x000002BE
+_0206E6D0: .word 0x020F85B8
+_0206E6D4: .word 0x020F85BA
+
+ thumb_func_start FUN_0206E6D8
+FUN_0206E6D8: ; 0x0206E6D8
+ push {r3-r4}
+ mov r2, #0x1d
+ ldr r3, _0206E704 ; =0x020F85B4
+ mov r4, #0x1
+ lsl r2, r2, #0x4
+_0206E6E2:
+ lsl r1, r4, #0x3
+ add r1, r3, r1
+ ldrh r1, [r1, #0x6]
+ cmp r0, r1
+ bne _0206E6F2
+ add r0, r4, #0x0
+ pop {r3-r4}
+ bx lr
+_0206E6F2:
+ add r1, r4, #0x1
+ lsl r1, r1, #0x10
+ lsr r4, r1, #0x10
+ cmp r4, r2
+ bls _0206E6E2
+ mov r0, #0x0
+ pop {r3-r4}
+ bx lr
+ nop
+_0206E704: .word 0x020F85B4
+
+ thumb_func_start FUN_0206E708
+FUN_0206E708: ; 0x0206E708
+ mov r0, #0x1
+ bx lr
+
+ thumb_func_start FUN_0206E70C
+FUN_0206E70C: ; 0x0206E70C
+ mov r0, #0x0
+ bx lr
+
+ thumb_func_start FUN_0206E710
+FUN_0206E710: ; 0x0206E710
+ push {r3, lr}
+ add r3, r0, #0x0
+ mov r0, #0x1d
+ lsl r0, r0, #0x4
+ cmp r3, r0
+ bls _0206E71E
+ mov r3, #0x0
+_0206E71E:
+ cmp r1, #0x0
+ beq _0206E72C
+ cmp r1, #0x1
+ beq _0206E73A
+ cmp r1, #0x2
+ beq _0206E748
+ b _0206E756
+_0206E72C:
+ ldr r1, _0206E75C ; =0x020F85B4
+ lsl r3, r3, #0x3
+ ldrh r1, [r1, r3]
+ mov r0, #0xf
+ bl LoadFromNarc_2
+ pop {r3, pc}
+_0206E73A:
+ ldr r1, _0206E760 ; =0x020F85B6
+ lsl r3, r3, #0x3
+ ldrh r1, [r1, r3]
+ mov r0, #0x10
+ bl LoadFromNarc_2
+ pop {r3, pc}
+_0206E748:
+ ldr r1, _0206E764 ; =0x020F85B8
+ lsl r3, r3, #0x3
+ ldrh r1, [r1, r3]
+ mov r0, #0x10
+ bl LoadFromNarc_2
+ pop {r3, pc}
+_0206E756:
+ mov r0, #0x0
+ pop {r3, pc}
+ nop
+_0206E75C: .word 0x020F85B4
+_0206E760: .word 0x020F85B6
+_0206E764: .word 0x020F85B8
+
+ thumb_func_start FUN_0206E768
+FUN_0206E768: ; 0x0206E768
+ push {r4-r6, lr}
+ add r3, r2, #0x0
+ mov r2, #0x56
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ mov r0, #0x1
+ mov r1, #0x1a
+ lsl r2, r2, #0x2
+ bl FUN_0200A86C
+ add r6, r0, #0x0
+ add r1, r4, #0x0
+ add r2, r5, #0x0
+ bl FUN_0200A8E0
+ add r0, r6, #0x0
+ bl FUN_0200A8B8
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_0206E790
+FUN_0206E790: ; 0x0206E790
+ push {r4-r6, lr}
+ add r3, r2, #0x0
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ ldr r2, _0206E7B4 ; =0x00000157
+ mov r0, #0x1
+ mov r1, #0x1a
+ bl FUN_0200A86C
+ add r6, r0, #0x0
+ add r1, r4, #0x0
+ add r2, r5, #0x0
+ bl FUN_0200A8E0
+ add r0, r6, #0x0
+ bl FUN_0200A8B8
+ pop {r4-r6, pc}
+ .balign 4
+_0206E7B4: .word 0x00000157
+
+ thumb_func_start FUN_0206E7B8
+FUN_0206E7B8: ; 0x0206E7B8
+ push {r4-r6, lr}
+ add r4, r1, #0x0
+ mov r1, #0x0
+ add r5, r2, #0x0
+ bl FUN_0206E710
+ add r6, r0, #0x0
+ add r1, r4, #0x0
+ bl FUN_0206E7DC
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ bl FUN_02016A8C
+ add r0, r4, #0x0
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_0206E7DC
+FUN_0206E7DC: ; 0x0206E7DC
+ push {r3, lr}
+ cmp r1, #0xe
+ bhi _0206E85C
+ add r2, r1, r1
+ add r2, pc
+ ldrh r2, [r2, #0x6]
+ lsl r2, r2, #0x10
+ asr r2, r2, #0x10
+ add pc, r2
+_0206E7EE: ; jump table (using 16-bit offset)
+ .short _0206E80C - _0206E7EE - 2; case 0
+ .short _0206E810 - _0206E7EE - 2; case 1
+ .short _0206E814 - _0206E7EE - 2; case 2
+ .short _0206E818 - _0206E7EE - 2; case 3
+ .short _0206E820 - _0206E7EE - 2; case 4
+ .short _0206E828 - _0206E7EE - 2; case 5
+ .short _0206E830 - _0206E7EE - 2; case 6
+ .short _0206E834 - _0206E7EE - 2; case 7
+ .short _0206E838 - _0206E7EE - 2; case 8
+ .short _0206E83C - _0206E7EE - 2; case 9
+ .short _0206E840 - _0206E7EE - 2; case 10
+ .short _0206E844 - _0206E7EE - 2; case 11
+ .short _0206E848 - _0206E7EE - 2; case 12
+ .short _0206E850 - _0206E7EE - 2; case 13
+ .short _0206E858 - _0206E7EE - 2; case 14
+_0206E80C:
+ ldrh r0, [r0, #0x0]
+ pop {r3, pc}
+_0206E810:
+ ldrb r0, [r0, #0x2]
+ pop {r3, pc}
+_0206E814:
+ ldrb r0, [r0, #0x3]
+ pop {r3, pc}
+_0206E818:
+ ldrh r0, [r0, #0x8]
+ lsl r0, r0, #0x1a
+ lsr r0, r0, #0x1f
+ pop {r3, pc}
+_0206E820:
+ ldrh r0, [r0, #0x8]
+ lsl r0, r0, #0x19
+ lsr r0, r0, #0x1f
+ pop {r3, pc}
+_0206E828:
+ ldrh r0, [r0, #0x8]
+ lsl r0, r0, #0x15
+ lsr r0, r0, #0x1c
+ pop {r3, pc}
+_0206E830:
+ ldrb r0, [r0, #0xa]
+ pop {r3, pc}
+_0206E834:
+ ldrb r0, [r0, #0xb]
+ pop {r3, pc}
+_0206E838:
+ ldrb r0, [r0, #0x4]
+ pop {r3, pc}
+_0206E83C:
+ ldrb r0, [r0, #0x5]
+ pop {r3, pc}
+_0206E840:
+ ldrb r0, [r0, #0x6]
+ pop {r3, pc}
+_0206E844:
+ ldrb r0, [r0, #0x7]
+ pop {r3, pc}
+_0206E848:
+ ldrh r0, [r0, #0x8]
+ lsl r0, r0, #0x1b
+ lsr r0, r0, #0x1b
+ pop {r3, pc}
+_0206E850:
+ ldrh r0, [r0, #0x8]
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x1b
+ pop {r3, pc}
+_0206E858:
+ ldrb r0, [r0, #0xc]
+ pop {r3, pc}
+_0206E85C:
+ ldrb r2, [r0, #0xc]
+ cmp r2, #0x0
+ beq _0206E868
+ cmp r2, #0x1
+ beq _0206E86C
+ b _0206E874
+_0206E868:
+ ldrb r0, [r0, #0xe]
+ pop {r3, pc}
+_0206E86C:
+ add r0, #0xe
+ bl FUN_0206E878
+ pop {r3, pc}
+_0206E874:
+ mov r0, #0x0
+ pop {r3, pc}
+
+ thumb_func_start FUN_0206E878
+FUN_0206E878: ; 0x0206E878
+ sub r1, #0xf
+ cmp r1, #0x2b
+ bls _0206E880
+ b _0206EA2A
+_0206E880:
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #0x6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_0206E88C: ; jump table (using 16-bit offset)
+ .short _0206E8E4 - _0206E88C - 2; case 0
+ .short _0206E8EC - _0206E88C - 2; case 1
+ .short _0206E8F4 - _0206E88C - 2; case 2
+ .short _0206E8FC - _0206E88C - 2; case 3
+ .short _0206E904 - _0206E88C - 2; case 4
+ .short _0206E90C - _0206E88C - 2; case 5
+ .short _0206E914 - _0206E88C - 2; case 6
+ .short _0206E91C - _0206E88C - 2; case 7
+ .short _0206E924 - _0206E88C - 2; case 8
+ .short _0206E92C - _0206E88C - 2; case 9
+ .short _0206E934 - _0206E88C - 2; case 10
+ .short _0206E93C - _0206E88C - 2; case 11
+ .short _0206E944 - _0206E88C - 2; case 12
+ .short _0206E94C - _0206E88C - 2; case 13
+ .short _0206E954 - _0206E88C - 2; case 14
+ .short _0206E95C - _0206E88C - 2; case 15
+ .short _0206E964 - _0206E88C - 2; case 16
+ .short _0206E96C - _0206E88C - 2; case 17
+ .short _0206E974 - _0206E88C - 2; case 18
+ .short _0206E97C - _0206E88C - 2; case 19
+ .short _0206E984 - _0206E88C - 2; case 20
+ .short _0206E98C - _0206E88C - 2; case 21
+ .short _0206E994 - _0206E88C - 2; case 22
+ .short _0206E99C - _0206E88C - 2; case 23
+ .short _0206E9A4 - _0206E88C - 2; case 24
+ .short _0206E9AC - _0206E88C - 2; case 25
+ .short _0206E9B4 - _0206E88C - 2; case 26
+ .short _0206E9BC - _0206E88C - 2; case 27
+ .short _0206E9C4 - _0206E88C - 2; case 28
+ .short _0206E9CC - _0206E88C - 2; case 29
+ .short _0206E9D4 - _0206E88C - 2; case 30
+ .short _0206E9DC - _0206E88C - 2; case 31
+ .short _0206E9E4 - _0206E88C - 2; case 32
+ .short _0206E9EC - _0206E88C - 2; case 33
+ .short _0206E9F2 - _0206E88C - 2; case 34
+ .short _0206E9F8 - _0206E88C - 2; case 35
+ .short _0206E9FE - _0206E88C - 2; case 36
+ .short _0206EA04 - _0206E88C - 2; case 37
+ .short _0206EA0A - _0206E88C - 2; case 38
+ .short _0206EA10 - _0206E88C - 2; case 39
+ .short _0206EA14 - _0206E88C - 2; case 40
+ .short _0206EA18 - _0206E88C - 2; case 41
+ .short _0206EA1E - _0206E88C - 2; case 42
+ .short _0206EA24 - _0206E88C - 2; case 43
+_0206E8E4:
+ ldrb r0, [r0, #0x0]
+ lsl r0, r0, #0x1f
+ lsr r0, r0, #0x1f
+ bx lr
+_0206E8EC:
+ ldrb r0, [r0, #0x0]
+ lsl r0, r0, #0x1e
+ lsr r0, r0, #0x1f
+ bx lr
+_0206E8F4:
+ ldrb r0, [r0, #0x0]
+ lsl r0, r0, #0x1d
+ lsr r0, r0, #0x1f
+ bx lr
+_0206E8FC:
+ ldrb r0, [r0, #0x0]
+ lsl r0, r0, #0x1c
+ lsr r0, r0, #0x1f
+ bx lr
+_0206E904:
+ ldrb r0, [r0, #0x0]
+ lsl r0, r0, #0x1b
+ lsr r0, r0, #0x1f
+ bx lr
+_0206E90C:
+ ldrb r0, [r0, #0x0]
+ lsl r0, r0, #0x1a
+ lsr r0, r0, #0x1f
+ bx lr
+_0206E914:
+ ldrb r0, [r0, #0x0]
+ lsl r0, r0, #0x19
+ lsr r0, r0, #0x1f
+ bx lr
+_0206E91C:
+ ldrb r0, [r0, #0x0]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x1f
+ bx lr
+_0206E924:
+ ldrb r0, [r0, #0x1]
+ lsl r0, r0, #0x1f
+ lsr r0, r0, #0x1f
+ bx lr
+_0206E92C:
+ ldrb r0, [r0, #0x1]
+ lsl r0, r0, #0x1e
+ lsr r0, r0, #0x1f
+ bx lr
+_0206E934:
+ ldrb r0, [r0, #0x1]
+ lsl r0, r0, #0x1d
+ lsr r0, r0, #0x1f
+ bx lr
+_0206E93C:
+ ldrb r0, [r0, #0x1]
+ lsl r0, r0, #0x1c
+ lsr r0, r0, #0x1f
+ bx lr
+_0206E944:
+ ldrb r0, [r0, #0x1]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x1c
+ bx lr
+_0206E94C:
+ ldrb r0, [r0, #0x2]
+ lsl r0, r0, #0x1c
+ lsr r0, r0, #0x1c
+ bx lr
+_0206E954:
+ ldrb r0, [r0, #0x2]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x1c
+ bx lr
+_0206E95C:
+ ldrb r0, [r0, #0x3]
+ lsl r0, r0, #0x1c
+ lsr r0, r0, #0x1c
+ bx lr
+_0206E964:
+ ldrb r0, [r0, #0x3]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x1c
+ bx lr
+_0206E96C:
+ ldrb r0, [r0, #0x4]
+ lsl r0, r0, #0x1c
+ lsr r0, r0, #0x1c
+ bx lr
+_0206E974:
+ ldrb r0, [r0, #0x4]
+ lsl r0, r0, #0x1a
+ lsr r0, r0, #0x1e
+ bx lr
+_0206E97C:
+ ldrb r0, [r0, #0x4]
+ lsl r0, r0, #0x19
+ lsr r0, r0, #0x1f
+ bx lr
+_0206E984:
+ ldrb r0, [r0, #0x4]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x1f
+ bx lr
+_0206E98C:
+ ldrb r0, [r0, #0x5]
+ lsl r0, r0, #0x1f
+ lsr r0, r0, #0x1f
+ bx lr
+_0206E994:
+ ldrb r0, [r0, #0x5]
+ lsl r0, r0, #0x1e
+ lsr r0, r0, #0x1f
+ bx lr
+_0206E99C:
+ ldrb r0, [r0, #0x5]
+ lsl r0, r0, #0x1d
+ lsr r0, r0, #0x1f
+ bx lr
+_0206E9A4:
+ ldrb r0, [r0, #0x5]
+ lsl r0, r0, #0x1c
+ lsr r0, r0, #0x1f
+ bx lr
+_0206E9AC:
+ ldrb r0, [r0, #0x5]
+ lsl r0, r0, #0x1b
+ lsr r0, r0, #0x1f
+ bx lr
+_0206E9B4:
+ ldrb r0, [r0, #0x5]
+ lsl r0, r0, #0x1a
+ lsr r0, r0, #0x1f
+ bx lr
+_0206E9BC:
+ ldrb r0, [r0, #0x5]
+ lsl r0, r0, #0x19
+ lsr r0, r0, #0x1f
+ bx lr
+_0206E9C4:
+ ldrb r0, [r0, #0x5]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x1f
+ bx lr
+_0206E9CC:
+ ldrb r0, [r0, #0x6]
+ lsl r0, r0, #0x1f
+ lsr r0, r0, #0x1f
+ bx lr
+_0206E9D4:
+ ldrb r0, [r0, #0x6]
+ lsl r0, r0, #0x1e
+ lsr r0, r0, #0x1f
+ bx lr
+_0206E9DC:
+ ldrb r0, [r0, #0x6]
+ lsl r0, r0, #0x1d
+ lsr r0, r0, #0x1f
+ bx lr
+_0206E9E4:
+ ldrb r0, [r0, #0x6]
+ lsl r0, r0, #0x1c
+ lsr r0, r0, #0x1f
+ bx lr
+_0206E9EC:
+ mov r1, #0x7
+ ldrsb r0, [r0, r1]
+ bx lr
+_0206E9F2:
+ mov r1, #0x8
+ ldrsb r0, [r0, r1]
+ bx lr
+_0206E9F8:
+ mov r1, #0x9
+ ldrsb r0, [r0, r1]
+ bx lr
+_0206E9FE:
+ mov r1, #0xa
+ ldrsb r0, [r0, r1]
+ bx lr
+_0206EA04:
+ mov r1, #0xb
+ ldrsb r0, [r0, r1]
+ bx lr
+_0206EA0A:
+ mov r1, #0xc
+ ldrsb r0, [r0, r1]
+ bx lr
+_0206EA10:
+ ldrb r0, [r0, #0xd]
+ bx lr
+_0206EA14:
+ ldrb r0, [r0, #0xe]
+ bx lr
+_0206EA18:
+ mov r1, #0xf
+ ldrsb r0, [r0, r1]
+ bx lr
+_0206EA1E:
+ mov r1, #0x10
+ ldrsb r0, [r0, r1]
+ bx lr
+_0206EA24:
+ mov r1, #0x11
+ ldrsb r0, [r0, r1]
+ bx lr
+_0206EA2A:
+ mov r0, #0x0
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_0206EA30
+FUN_0206EA30: ; 0x0206EA30
+ mov r2, #0x52
+ lsl r2, r2, #0x2
+ cmp r0, r2
+ blo _0206EA40
+ add r1, r2, #0x0
+ add r1, #0x63
+ cmp r0, r1
+ bls _0206EA44
+_0206EA40:
+ mov r0, #0x0
+ bx lr
+_0206EA44:
+ sub r0, r0, r2
+ lsl r0, r0, #0x10
+ lsr r1, r0, #0xf
+ ldr r0, _0206EA50 ; =0x020F84EC
+ ldrh r0, [r0, r1]
+ bx lr
+ .balign 4
+_0206EA50: .word 0x020F84EC
+
+ thumb_func_start FUN_0206EA54
+FUN_0206EA54: ; 0x0206EA54
+ ldr r2, _0206EA78 ; =0x020F84EC
+ mov r3, #0x0
+_0206EA58:
+ lsl r1, r3, #0x1
+ add r1, r2, r1
+ add r1, #0xb8
+ ldrh r1, [r1, #0x0]
+ cmp r0, r1
+ bne _0206EA68
+ mov r0, #0x1
+ bx lr
+_0206EA68:
+ add r1, r3, #0x1
+ lsl r1, r1, #0x18
+ lsr r3, r1, #0x18
+ cmp r3, #0x8
+ blo _0206EA58
+ mov r0, #0x0
+ bx lr
+ nop
+_0206EA78: .word 0x020F84EC
+
+ thumb_func_start FUN_0206EA7C
+FUN_0206EA7C: ; 0x0206EA7C
+ mov r2, #0x52
+ lsl r2, r2, #0x2
+ cmp r0, r2
+ blo _0206EA8C
+ add r1, r2, #0x0
+ add r1, #0x63
+ cmp r0, r1
+ bls _0206EA90
+_0206EA8C:
+ mov r0, #0x0
+ bx lr
+_0206EA90:
+ sub r0, r0, r2
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bx lr
+
+ thumb_func_start FUN_0206EA98
+FUN_0206EA98: ; 0x0206EA98
+ ldr r3, _0206EAB4 ; =0x020F8454
+ mov r2, #0x0
+_0206EA9C:
+ ldrh r1, [r3, #0x0]
+ cmp r0, r1
+ bne _0206EAA6
+ mov r0, #0x1
+ bx lr
+_0206EAA6:
+ add r2, r2, #0x1
+ add r3, r3, #0x2
+ cmp r2, #0xc
+ blo _0206EA9C
+ mov r0, #0x0
+ bx lr
+ nop
+_0206EAB4: .word 0x020F8454
+
+ thumb_func_start FUN_0206EAB8
+FUN_0206EAB8: ; 0x0206EAB8
+ ldr r3, _0206EAD4 ; =0x020F8454
+ mov r2, #0x0
+_0206EABC:
+ ldrh r1, [r3, #0x0]
+ cmp r0, r1
+ bne _0206EAC8
+ lsl r0, r2, #0x18
+ lsr r0, r0, #0x18
+ bx lr
+_0206EAC8:
+ add r2, r2, #0x1
+ add r3, r3, #0x2
+ cmp r2, #0xc
+ blo _0206EABC
+ mov r0, #0x0
+ bx lr
+ .balign 4
+_0206EAD4: .word 0x020F8454
+
+ thumb_func_start FUN_0206EAD8
+FUN_0206EAD8: ; 0x0206EAD8
+ cmp r0, #0xc
+ blo _0206EAE0
+ mov r0, #0x0
+ bx lr
+_0206EAE0:
+ lsl r1, r0, #0x1
+ ldr r0, _0206EAE8 ; =0x020F8454
+ ldrh r0, [r0, r1]
+ bx lr
+ .balign 4
+_0206EAE8: .word 0x020F8454
+
+ thumb_func_start FUN_0206EAEC
+FUN_0206EAEC: ; 0x0206EAEC
+ ldr r3, _0206EB08 ; =0x020F846C
+ mov r2, #0x0
+_0206EAF0:
+ ldrh r1, [r3, #0x0]
+ cmp r0, r1
+ bne _0206EAFA
+ mov r0, #0x1
+ bx lr
+_0206EAFA:
+ add r2, r2, #0x1
+ add r3, r3, #0x2
+ cmp r2, #0x40
+ blo _0206EAF0
+ mov r0, #0x0
+ bx lr
+ nop
+_0206EB08: .word 0x020F846C
+
+ thumb_func_start FUN_0206EB0C
+FUN_0206EB0C: ; 0x0206EB0C
+ cmp r0, #0x95
+ bhs _0206EB14
+ mov r0, #0xff
+ bx lr
+_0206EB14:
+ sub r0, #0x95
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bx lr
+
+ thumb_func_start FUN_0206EB1C
+FUN_0206EB1C: ; 0x0206EB1C
+ cmp r0, #0x40
+ blo _0206EB24
+ ldr r0, _0206EB2C ; =0x0000FFFF
+ bx lr
+_0206EB24:
+ lsl r1, r0, #0x1
+ ldr r0, _0206EB30 ; =0x020F846C
+ ldrh r0, [r0, r1]
+ bx lr
+ .balign 4
+_0206EB2C: .word 0x0000FFFF
+_0206EB30: .word 0x020F846C
+
+ thumb_func_start FUN_0206EB34
+FUN_0206EB34: ; 0x0206EB34
+ ldr r1, _0206EB4C ; =0x0000FFDE
+ add r0, r0, r1
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ cmp r0, #0x3
+ bhi _0206EB44
+ mov r0, #0x1
+ b _0206EB46
+_0206EB44:
+ mov r0, #0x0
+_0206EB46:
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bx lr
+ .balign 4
+_0206EB4C: .word 0x0000FFDE
+
+ thumb_func_start FUN_0206EB50
+FUN_0206EB50: ; 0x0206EB50
+ push {r3-r4, lr}
+ sub sp, #0x4
+ add r4, r0, #0x0
+ mov r0, #0x1d
+ lsl r0, r0, #0x4
+ mov r1, #0x0
+ bl FUN_0206E640
+ mov r1, #0x24
+ mul r1, r0
+ str r1, [sp, #0x0]
+ mov r1, #0x0
+ mov r0, #0xf
+ add r2, r4, #0x0
+ add r3, r1, #0x0
+ bl FUN_02006564
+ add sp, #0x4
+ pop {r3-r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0206EB78
+FUN_0206EB78: ; 0x0206EB78
+ mov r2, #0x24
+ mul r2, r1
+ add r0, r0, r2
+ bx lr
+
+ thumb_func_start FUN_0206EB80
+FUN_0206EB80: ; 0x0206EB80
+ ldr r0, _0206EB84 ; =0x00000774
+ bx lr
+ .balign 4
+_0206EB84: .word 0x00000774
+
+ thumb_func_start FUN_0206EB88
+FUN_0206EB88: ; 0x0206EB88
+ push {r4, lr}
+ ldr r1, _0206EB9C ; =0x00000774
+ bl FUN_02016998
+ add r4, r0, #0x0
+ bl FUN_0206EBA0
+ add r0, r4, #0x0
+ pop {r4, pc}
+ nop
+_0206EB9C: .word 0x00000774
+
+ thumb_func_start FUN_0206EBA0
+FUN_0206EBA0: ; 0x0206EBA0
+ ldr r3, _0206EBAC ; =MIi_CpuClear16
+ add r1, r0, #0x0
+ mov r0, #0x0
+ ldr r2, _0206EBB0 ; =0x00000774
+ bx r3
+ nop
+_0206EBAC: .word MIi_CpuClear16
+_0206EBB0: .word 0x00000774
+
+ thumb_func_start FUN_0206EBB4
+FUN_0206EBB4: ; 0x0206EBB4
+ ldr r3, _0206EBBC ; =MI_CpuCopy8
+ ldr r2, _0206EBC0 ; =0x00000774
+ bx r3
+ nop
+_0206EBBC: .word MI_CpuCopy8
+_0206EBC0: .word 0x00000774
+
+ thumb_func_start FUN_0206EBC4
+FUN_0206EBC4: ; 0x0206EBC4
+ mov r1, #0x77
+ lsl r1, r1, #0x4
+ ldr r0, [r0, r1]
+ bx lr
+
+ thumb_func_start FUN_0206EBCC
+FUN_0206EBCC: ; 0x0206EBCC
+ mov r2, #0x77
+ lsl r2, r2, #0x4
+ str r1, [r0, r2]
+ bx lr
+
+ thumb_func_start FUN_0206EBD4
+FUN_0206EBD4: ; 0x0206EBD4
+ push {r4-r6, lr}
+ add r5, r2, #0x0
+ add r4, r0, #0x0
+ add r0, r1, #0x0
+ ldr r2, [sp, #0x10]
+ mov r1, #0x5
+ add r6, r3, #0x0
+ bl FUN_0206E7B8
+ cmp r0, #0x7
+ bhi _0206EC64
+ add r1, r0, r0
+ add r1, pc
+ ldrh r1, [r1, #0x6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_0206EBF6: ; jump table (using 16-bit offset)
+ .short _0206EC14 - _0206EBF6 - 2; case 0
+ .short _0206EC28 - _0206EBF6 - 2; case 1
+ .short _0206EC34 - _0206EBF6 - 2; case 2
+ .short _0206EC58 - _0206EBF6 - 2; case 3
+ .short _0206EC1C - _0206EBF6 - 2; case 4
+ .short _0206EC4C - _0206EBF6 - 2; case 5
+ .short _0206EC40 - _0206EBF6 - 2; case 6
+ .short _0206EC06 - _0206EBF6 - 2; case 7
+_0206EC06:
+ mov r1, #0xa5
+ lsl r1, r1, #0x2
+ add r1, r4, r1
+ str r1, [r5, #0x0]
+ mov r1, #0x32
+ str r1, [r6, #0x0]
+ pop {r4-r6, pc}
+_0206EC14:
+ str r4, [r5, #0x0]
+ mov r1, #0xa5
+ str r1, [r6, #0x0]
+ pop {r4-r6, pc}
+_0206EC1C:
+ ldr r1, _0206EC68 ; =0x000005BC
+ add r1, r4, r1
+ str r1, [r5, #0x0]
+ mov r1, #0x40
+ str r1, [r6, #0x0]
+ pop {r4-r6, pc}
+_0206EC28:
+ ldr r1, _0206EC6C ; =0x0000051C
+ add r1, r4, r1
+ str r1, [r5, #0x0]
+ mov r1, #0x28
+ str r1, [r6, #0x0]
+ pop {r4-r6, pc}
+_0206EC34:
+ ldr r1, _0206EC70 ; =0x000006BC
+ add r1, r4, r1
+ str r1, [r5, #0x0]
+ mov r1, #0xf
+ str r1, [r6, #0x0]
+ pop {r4-r6, pc}
+_0206EC40:
+ ldr r1, _0206EC74 ; =0x000006F8
+ add r1, r4, r1
+ str r1, [r5, #0x0]
+ mov r1, #0x1e
+ str r1, [r6, #0x0]
+ pop {r4-r6, pc}
+_0206EC4C:
+ ldr r1, _0206EC78 ; =0x000004EC
+ add r1, r4, r1
+ str r1, [r5, #0x0]
+ mov r1, #0xc
+ str r1, [r6, #0x0]
+ pop {r4-r6, pc}
+_0206EC58:
+ mov r1, #0xd7
+ lsl r1, r1, #0x2
+ add r1, r4, r1
+ str r1, [r5, #0x0]
+ mov r1, #0x64
+ str r1, [r6, #0x0]
+_0206EC64:
+ pop {r4-r6, pc}
+ nop
+_0206EC68: .word 0x000005BC
+_0206EC6C: .word 0x0000051C
+_0206EC70: .word 0x000006BC
+_0206EC74: .word 0x000006F8
+_0206EC78: .word 0x000004EC
+
+ thumb_func_start FUN_0206EC7C
+FUN_0206EC7C: ; 0x0206EC7C
+ push {r4-r7}
+ add r5, r1, #0x0
+ mov r1, #0x0
+ add r7, r0, #0x0
+ add r4, r2, #0x0
+ mov r12, r3
+ mvn r1, r1
+ mov r0, #0x0
+ cmp r5, #0x0
+ bls _0206ECCA
+ add r2, r7, #0x0
+ add r3, r1, #0x0
+_0206EC94:
+ ldrh r6, [r2, #0x0]
+ cmp r4, r6
+ bne _0206ECB2
+ lsl r0, r0, #0x2
+ add r0, r7, r0
+ ldrh r2, [r0, #0x2]
+ mov r1, r12
+ add r2, r1, r2
+ add r1, sp, #0x0
+ ldrh r1, [r1, #0x10]
+ cmp r2, r1
+ ble _0206ECDC
+ mov r0, #0x0
+ pop {r4-r7}
+ bx lr
+_0206ECB2:
+ cmp r1, r3
+ bne _0206ECC2
+ cmp r6, #0x0
+ bne _0206ECC2
+ ldrh r6, [r2, #0x2]
+ cmp r6, #0x0
+ bne _0206ECC2
+ add r1, r0, #0x0
+_0206ECC2:
+ add r0, r0, #0x1
+ add r2, r2, #0x4
+ cmp r0, r5
+ blo _0206EC94
+_0206ECCA:
+ mov r0, #0x0
+ mvn r0, r0
+ cmp r1, r0
+ bne _0206ECD8
+ mov r0, #0x0
+ pop {r4-r7}
+ bx lr
+_0206ECD8:
+ lsl r0, r1, #0x2
+ add r0, r7, r0
+_0206ECDC:
+ pop {r4-r7}
+ bx lr
+
+ thumb_func_start FUN_0206ECE0
+FUN_0206ECE0: ; 0x0206ECE0
+ push {r4-r5, lr}
+ sub sp, #0xc
+ add r4, r2, #0x0
+ str r3, [sp, #0x0]
+ add r2, sp, #0x8
+ add r3, sp, #0x4
+ add r5, r1, #0x0
+ bl FUN_0206EBD4
+ cmp r0, #0x3
+ bne _0206ED0A
+ mov r0, #0x63
+ str r0, [sp, #0x0]
+ ldr r0, [sp, #0x8]
+ ldr r1, [sp, #0x4]
+ add r2, r5, #0x0
+ add r3, r4, #0x0
+ bl FUN_0206EC7C
+ add sp, #0xc
+ pop {r4-r5, pc}
+_0206ED0A:
+ ldr r0, _0206ED20 ; =0x000003E7
+ add r2, r5, #0x0
+ str r0, [sp, #0x0]
+ ldr r0, [sp, #0x8]
+ ldr r1, [sp, #0x4]
+ add r3, r4, #0x0
+ bl FUN_0206EC7C
+ add sp, #0xc
+ pop {r4-r5, pc}
+ nop
+_0206ED20: .word 0x000003E7
+
+ thumb_func_start FUN_0206ED24
+FUN_0206ED24: ; 0x0206ED24
+ push {r3, lr}
+ bl FUN_0206ECE0
+ cmp r0, #0x0
+ beq _0206ED32
+ mov r0, #0x1
+ pop {r3, pc}
+_0206ED32:
+ mov r0, #0x0
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_0206ED38
+FUN_0206ED38: ; 0x0206ED38
+ push {r4-r7, lr}
+ sub sp, #0xc
+ add r7, r0, #0x0
+ add r5, r1, #0x0
+ add r4, r2, #0x0
+ add r6, r3, #0x0
+ bl FUN_0206ECE0
+ str r0, [sp, #0x8]
+ cmp r0, #0x0
+ bne _0206ED54
+ add sp, #0xc
+ mov r0, #0x0
+ pop {r4-r7, pc}
+_0206ED54:
+ strh r5, [r0, #0x0]
+ ldr r1, [sp, #0x8]
+ add r2, sp, #0x8
+ ldrh r0, [r1, #0x2]
+ add r3, sp, #0x4
+ add r0, r0, r4
+ strh r0, [r1, #0x2]
+ add r0, r7, #0x0
+ add r1, r5, #0x0
+ str r6, [sp, #0x0]
+ bl FUN_0206EBD4
+ sub r0, r0, #0x3
+ cmp r0, #0x1
+ bhi _0206ED7A
+ ldr r0, [sp, #0x8]
+ ldr r1, [sp, #0x4]
+ bl FUN_0206EF94
+_0206ED7A:
+ mov r0, #0x1
+ add sp, #0xc
+ pop {r4-r7, pc}
+
+ thumb_func_start FUN_0206ED80
+FUN_0206ED80: ; 0x0206ED80
+ push {r3-r6}
+ mov r5, #0x0
+ cmp r1, #0x0
+ bls _0206EDA8
+ add r6, r0, #0x0
+_0206ED8A:
+ ldrh r4, [r6, #0x0]
+ cmp r2, r4
+ bne _0206EDA0
+ lsl r1, r5, #0x2
+ add r0, r0, r1
+ ldrh r1, [r0, #0x2]
+ cmp r1, r3
+ bhs _0206EDAA
+ mov r0, #0x0
+ pop {r3-r6}
+ bx lr
+_0206EDA0:
+ add r5, r5, #0x1
+ add r6, r6, #0x4
+ cmp r5, r1
+ blo _0206ED8A
+_0206EDA8:
+ mov r0, #0x0
+_0206EDAA:
+ pop {r3-r6}
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_0206EDB0
+FUN_0206EDB0: ; 0x0206EDB0
+ push {r4-r5, lr}
+ sub sp, #0xc
+ add r4, r2, #0x0
+ str r3, [sp, #0x0]
+ add r2, sp, #0x8
+ add r3, sp, #0x4
+ add r5, r1, #0x0
+ bl FUN_0206EBD4
+ ldr r0, [sp, #0x8]
+ ldr r1, [sp, #0x4]
+ add r2, r5, #0x0
+ add r3, r4, #0x0
+ bl FUN_0206ED80
+ add sp, #0xc
+ pop {r4-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_0206EDD4
+FUN_0206EDD4: ; 0x0206EDD4
+ push {r4-r7, lr}
+ sub sp, #0xc
+ add r6, r0, #0x0
+ add r7, r1, #0x0
+ add r5, r2, #0x0
+ add r4, r3, #0x0
+ bl FUN_0206EDB0
+ str r0, [sp, #0x8]
+ cmp r0, #0x0
+ bne _0206EDF0
+ add sp, #0xc
+ mov r0, #0x0
+ pop {r4-r7, pc}
+_0206EDF0:
+ ldrh r1, [r0, #0x2]
+ sub r1, r1, r5
+ strh r1, [r0, #0x2]
+ ldr r1, [sp, #0x8]
+ ldrh r0, [r1, #0x2]
+ cmp r0, #0x0
+ bne _0206EE02
+ mov r0, #0x0
+ strh r0, [r1, #0x0]
+_0206EE02:
+ str r4, [sp, #0x0]
+ add r0, r6, #0x0
+ add r1, r7, #0x0
+ add r2, sp, #0x8
+ add r3, sp, #0x4
+ bl FUN_0206EBD4
+ ldr r0, [sp, #0x8]
+ ldr r1, [sp, #0x4]
+ bl FUN_0206EF48
+ mov r0, #0x1
+ add sp, #0xc
+ pop {r4-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_0206EE20
+FUN_0206EE20: ; 0x0206EE20
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ add r6, r1, #0x0
+ add r4, r3, #0x0
+ bl FUN_0206ED80
+ cmp r0, #0x0
+ bne _0206EE34
+ mov r0, #0x0
+ pop {r4-r6, pc}
+_0206EE34:
+ ldrh r1, [r0, #0x2]
+ sub r1, r1, r4
+ strh r1, [r0, #0x2]
+ ldrh r1, [r0, #0x2]
+ cmp r1, #0x0
+ bne _0206EE44
+ mov r1, #0x0
+ strh r1, [r0, #0x0]
+_0206EE44:
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ bl FUN_0206EF48
+ mov r0, #0x1
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_0206EE50
+FUN_0206EE50: ; 0x0206EE50
+ push {r3, lr}
+ bl FUN_0206EDB0
+ cmp r0, #0x0
+ beq _0206EE5E
+ mov r0, #0x1
+ pop {r3, pc}
+_0206EE5E:
+ mov r0, #0x0
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_0206EE64
+FUN_0206EE64: ; 0x0206EE64
+ cmp r1, #0x7
+ bhi _0206EEC4
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #0x6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_0206EE74: ; jump table (using 16-bit offset)
+ .short _0206EE8E - _0206EE74 - 2; case 0
+ .short _0206EE9A - _0206EE74 - 2; case 1
+ .short _0206EEA2 - _0206EE74 - 2; case 2
+ .short _0206EEBA - _0206EE74 - 2; case 3
+ .short _0206EE92 - _0206EE74 - 2; case 4
+ .short _0206EEB2 - _0206EE74 - 2; case 5
+ .short _0206EEAA - _0206EE74 - 2; case 6
+ .short _0206EE84 - _0206EE74 - 2; case 7
+_0206EE84:
+ mov r1, #0xa5
+ lsl r1, r1, #0x2
+ add r0, r0, r1
+ mov r2, #0x32
+ b _0206EEC8
+_0206EE8E:
+ mov r2, #0xa5
+ b _0206EEC8
+_0206EE92:
+ ldr r1, _0206EEE4 ; =0x000005BC
+ mov r2, #0x40
+ add r0, r0, r1
+ b _0206EEC8
+_0206EE9A:
+ ldr r1, _0206EEE8 ; =0x0000051C
+ mov r2, #0x28
+ add r0, r0, r1
+ b _0206EEC8
+_0206EEA2:
+ ldr r1, _0206EEEC ; =0x000006BC
+ mov r2, #0xf
+ add r0, r0, r1
+ b _0206EEC8
+_0206EEAA:
+ ldr r1, _0206EEF0 ; =0x000006F8
+ mov r2, #0x1e
+ add r0, r0, r1
+ b _0206EEC8
+_0206EEB2:
+ ldr r1, _0206EEF4 ; =0x000004EC
+ mov r2, #0xc
+ add r0, r0, r1
+ b _0206EEC8
+_0206EEBA:
+ mov r1, #0xd7
+ lsl r1, r1, #0x2
+ add r0, r0, r1
+ mov r2, #0x64
+ b _0206EEC8
+_0206EEC4:
+ mov r0, #0x0
+ bx lr
+_0206EEC8:
+ mov r3, #0x0
+ cmp r2, #0x0
+ bls _0206EEE0
+_0206EECE:
+ ldrh r1, [r0, #0x0]
+ cmp r1, #0x0
+ beq _0206EED8
+ mov r0, #0x1
+ bx lr
+_0206EED8:
+ add r3, r3, #0x1
+ add r0, r0, #0x4
+ cmp r3, r2
+ blo _0206EECE
+_0206EEE0:
+ mov r0, #0x0
+ bx lr
+ .balign 4
+_0206EEE4: .word 0x000005BC
+_0206EEE8: .word 0x0000051C
+_0206EEEC: .word 0x000006BC
+_0206EEF0: .word 0x000006F8
+_0206EEF4: .word 0x000004EC
+
+ thumb_func_start FUN_0206EEF8
+FUN_0206EEF8: ; 0x0206EEF8
+ push {r3, lr}
+ add r3, r2, #0x0
+ mov r2, #0x1
+ bl FUN_0206EDB0
+ cmp r0, #0x0
+ bne _0206EF0A
+ mov r0, #0x0
+ pop {r3, pc}
+_0206EF0A:
+ ldrh r0, [r0, #0x2]
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_0206EF10
+FUN_0206EF10: ; 0x0206EF10
+ push {r3, lr}
+ mov r3, #0x1
+ bl FUN_0206ED80
+ cmp r0, #0x0
+ bne _0206EF20
+ mov r0, #0x0
+ pop {r3, pc}
+_0206EF20:
+ ldrh r0, [r0, #0x2]
+ pop {r3, pc}
+
+ thumb_func_start FUN_0206EF24
+FUN_0206EF24: ; 0x0206EF24
+ push {r3}
+ sub sp, #0x4
+ ldrh r3, [r0, #0x0]
+ add r2, sp, #0x0
+ strh r3, [r2, #0x0]
+ ldrh r3, [r0, #0x2]
+ strh r3, [r2, #0x2]
+ ldrh r3, [r1, #0x0]
+ strh r3, [r0, #0x0]
+ ldrh r3, [r1, #0x2]
+ strh r3, [r0, #0x2]
+ ldrh r0, [r2, #0x0]
+ strh r0, [r1, #0x0]
+ ldrh r0, [r2, #0x2]
+ strh r0, [r1, #0x2]
+ add sp, #0x4
+ pop {r3}
+ bx lr
+
+ thumb_func_start FUN_0206EF48
+FUN_0206EF48: ; 0x0206EF48
+ push {r4-r7, lr}
+ sub sp, #0xc
+ str r0, [sp, #0x0]
+ mov r0, #0x0
+ add r7, r1, #0x0
+ str r0, [sp, #0x4]
+ sub r0, r7, #0x1
+ str r0, [sp, #0x8]
+ beq _0206EF8E
+ ldr r4, [sp, #0x0]
+_0206EF5C:
+ ldr r0, [sp, #0x4]
+ add r6, r0, #0x1
+ cmp r6, r7
+ bhs _0206EF80
+ ldr r0, [sp, #0x0]
+ lsl r1, r6, #0x2
+ add r5, r0, r1
+_0206EF6A:
+ ldrh r0, [r4, #0x2]
+ cmp r0, #0x0
+ bne _0206EF78
+ add r0, r4, #0x0
+ add r1, r5, #0x0
+ bl FUN_0206EF24
+_0206EF78:
+ add r6, r6, #0x1
+ add r5, r5, #0x4
+ cmp r6, r7
+ blo _0206EF6A
+_0206EF80:
+ ldr r0, [sp, #0x4]
+ add r4, r4, #0x4
+ add r1, r0, #0x1
+ ldr r0, [sp, #0x8]
+ str r1, [sp, #0x4]
+ cmp r1, r0
+ blo _0206EF5C
+_0206EF8E:
+ add sp, #0xc
+ pop {r4-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_0206EF94
+FUN_0206EF94: ; 0x0206EF94
+ push {r4-r7, lr}
+ sub sp, #0xc
+ str r0, [sp, #0x0]
+ mov r0, #0x0
+ add r7, r1, #0x0
+ str r0, [sp, #0x4]
+ sub r0, r7, #0x1
+ str r0, [sp, #0x8]
+ beq _0206EFE8
+ ldr r4, [sp, #0x0]
+_0206EFA8:
+ ldr r0, [sp, #0x4]
+ add r6, r0, #0x1
+ cmp r6, r7
+ bhs _0206EFDA
+ ldr r0, [sp, #0x0]
+ lsl r1, r6, #0x2
+ add r5, r0, r1
+_0206EFB6:
+ ldrh r0, [r4, #0x2]
+ cmp r0, #0x0
+ beq _0206EFCA
+ ldrh r0, [r5, #0x2]
+ cmp r0, #0x0
+ beq _0206EFD2
+ ldrh r1, [r4, #0x0]
+ ldrh r0, [r5, #0x0]
+ cmp r1, r0
+ bls _0206EFD2
+_0206EFCA:
+ add r0, r4, #0x0
+ add r1, r5, #0x0
+ bl FUN_0206EF24
+_0206EFD2:
+ add r6, r6, #0x1
+ add r5, r5, #0x4
+ cmp r6, r7
+ blo _0206EFB6
+_0206EFDA:
+ ldr r0, [sp, #0x4]
+ add r4, r4, #0x4
+ add r1, r0, #0x1
+ ldr r0, [sp, #0x8]
+ str r1, [sp, #0x4]
+ cmp r1, r0
+ blo _0206EFA8
+_0206EFE8:
+ add sp, #0xc
+ pop {r4-r7, pc}
+
+ thumb_func_start FUN_0206EFEC
+FUN_0206EFEC: ; 0x0206EFEC
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ lsl r0, r2, #0x18
+ add r7, r1, #0x0
+ lsr r0, r0, #0x18
+ bl FUN_0206E2F0
+ add r6, r0, #0x0
+ ldrb r0, [r7, #0x0]
+ mov r4, #0x0
+ cmp r0, #0xff
+ beq _0206F0BE
+_0206F004:
+ ldrb r0, [r7, r4]
+ cmp r0, #0x7
+ bhi _0206F0B6
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0206F016: ; jump table (using 16-bit offset)
+ .short _0206F03A - _0206F016 - 2; case 0
+ .short _0206F05C - _0206F016 - 2; case 1
+ .short _0206F06E - _0206F016 - 2; case 2
+ .short _0206F0A4 - _0206F016 - 2; case 3
+ .short _0206F04A - _0206F016 - 2; case 4
+ .short _0206F092 - _0206F016 - 2; case 5
+ .short _0206F080 - _0206F016 - 2; case 6
+ .short _0206F026 - _0206F016 - 2; case 7
+_0206F026:
+ mov r1, #0xa5
+ lsl r1, r1, #0x2
+ lsl r3, r4, #0x18
+ add r0, r6, #0x0
+ add r1, r5, r1
+ mov r2, #0x7
+ lsr r3, r3, #0x18
+ bl FUN_0206E330
+ b _0206F0B6
+_0206F03A:
+ lsl r3, r4, #0x18
+ add r0, r6, #0x0
+ add r1, r5, #0x0
+ mov r2, #0x0
+ lsr r3, r3, #0x18
+ bl FUN_0206E330
+ b _0206F0B6
+_0206F04A:
+ ldr r1, _0206F0C4 ; =0x000005BC
+ lsl r3, r4, #0x18
+ add r0, r6, #0x0
+ add r1, r5, r1
+ mov r2, #0x4
+ lsr r3, r3, #0x18
+ bl FUN_0206E330
+ b _0206F0B6
+_0206F05C:
+ ldr r1, _0206F0C8 ; =0x0000051C
+ lsl r3, r4, #0x18
+ add r0, r6, #0x0
+ add r1, r5, r1
+ mov r2, #0x1
+ lsr r3, r3, #0x18
+ bl FUN_0206E330
+ b _0206F0B6
+_0206F06E:
+ ldr r1, _0206F0CC ; =0x000006BC
+ lsl r3, r4, #0x18
+ add r0, r6, #0x0
+ add r1, r5, r1
+ mov r2, #0x2
+ lsr r3, r3, #0x18
+ bl FUN_0206E330
+ b _0206F0B6
+_0206F080:
+ ldr r1, _0206F0D0 ; =0x000006F8
+ lsl r3, r4, #0x18
+ add r0, r6, #0x0
+ add r1, r5, r1
+ mov r2, #0x6
+ lsr r3, r3, #0x18
+ bl FUN_0206E330
+ b _0206F0B6
+_0206F092:
+ ldr r1, _0206F0D4 ; =0x000004EC
+ lsl r3, r4, #0x18
+ add r0, r6, #0x0
+ add r1, r5, r1
+ mov r2, #0x5
+ lsr r3, r3, #0x18
+ bl FUN_0206E330
+ b _0206F0B6
+_0206F0A4:
+ mov r1, #0xd7
+ lsl r1, r1, #0x2
+ lsl r3, r4, #0x18
+ add r0, r6, #0x0
+ add r1, r5, r1
+ mov r2, #0x3
+ lsr r3, r3, #0x18
+ bl FUN_0206E330
+_0206F0B6:
+ add r4, r4, #0x1
+ ldrb r0, [r7, r4]
+ cmp r0, #0xff
+ bne _0206F004
+_0206F0BE:
+ add r0, r6, #0x0
+ pop {r3-r7, pc}
+ nop
+_0206F0C4: .word 0x000005BC
+_0206F0C8: .word 0x0000051C
+_0206F0CC: .word 0x000006BC
+_0206F0D0: .word 0x000006F8
+_0206F0D4: .word 0x000004EC
+
+ thumb_func_start FUN_0206F0D8
+FUN_0206F0D8: ; 0x0206F0D8
+ cmp r1, #0x7
+ bhi _0206F136
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #0x6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_0206F0E8: ; jump table (using 16-bit offset)
+ .short _0206F102 - _0206F0E8 - 2; case 0
+ .short _0206F10E - _0206F0E8 - 2; case 1
+ .short _0206F116 - _0206F0E8 - 2; case 2
+ .short _0206F12E - _0206F0E8 - 2; case 3
+ .short _0206F106 - _0206F0E8 - 2; case 4
+ .short _0206F126 - _0206F0E8 - 2; case 5
+ .short _0206F11E - _0206F0E8 - 2; case 6
+ .short _0206F0F8 - _0206F0E8 - 2; case 7
+_0206F0F8:
+ mov r1, #0xa5
+ lsl r1, r1, #0x2
+ add r0, r0, r1
+ mov r3, #0x32
+ b _0206F136
+_0206F102:
+ mov r3, #0xa5
+ b _0206F136
+_0206F106:
+ ldr r1, _0206F144 ; =0x000005BC
+ mov r3, #0x40
+ add r0, r0, r1
+ b _0206F136
+_0206F10E:
+ ldr r1, _0206F148 ; =0x0000051C
+ mov r3, #0x28
+ add r0, r0, r1
+ b _0206F136
+_0206F116:
+ ldr r1, _0206F14C ; =0x000006BC
+ mov r3, #0xf
+ add r0, r0, r1
+ b _0206F136
+_0206F11E:
+ ldr r1, _0206F150 ; =0x000006F8
+ mov r3, #0x1e
+ add r0, r0, r1
+ b _0206F136
+_0206F126:
+ ldr r1, _0206F154 ; =0x000004EC
+ mov r3, #0xc
+ add r0, r0, r1
+ b _0206F136
+_0206F12E:
+ mov r1, #0xd7
+ lsl r1, r1, #0x2
+ add r0, r0, r1
+ mov r3, #0x64
+_0206F136:
+ cmp r2, r3
+ blo _0206F13E
+ mov r0, #0x0
+ bx lr
+_0206F13E:
+ lsl r1, r2, #0x2
+ add r0, r0, r1
+ bx lr
+ .balign 4
+_0206F144: .word 0x000005BC
+_0206F148: .word 0x0000051C
+_0206F14C: .word 0x000006BC
+_0206F150: .word 0x000006F8
+_0206F154: .word 0x000004EC
+
+ thumb_func_start FUN_0206F158
+FUN_0206F158: ; 0x0206F158
+ ldr r3, _0206F160 ; =FUN_02022610
+ mov r1, #0x3
+ bx r3
+ nop
+_0206F160: .word FUN_02022610
+
+ thumb_func_start FUN_0206F164
+FUN_0206F164: ; 0x0206F164
+ push {r4, lr}
+ mov r1, #0x24
+ bl FUN_02016998
+ add r4, r0, #0x0
+ mov r0, #0x0
+ add r1, r4, #0x0
+ mov r2, #0x24
+ blx MIi_CpuClear16
+ add r0, r4, #0x0
+ pop {r4, pc}
+
+ thumb_func_start FUN_0206F17C
+FUN_0206F17C: ; 0x0206F17C
+ push {r3-r4}
+ add r4, r0, r1
+ ldrb r4, [r4, #0x8]
+ strb r4, [r2, #0x0]
+ ldrb r0, [r0, r1]
+ strb r0, [r3, #0x0]
+ pop {r3-r4}
+ bx lr
+
+ thumb_func_start FUN_0206F18C
+FUN_0206F18C: ; 0x0206F18C
+ ldrh r0, [r0, #0x10]
+ bx lr
+
+ thumb_func_start FUN_0206F190
+FUN_0206F190: ; 0x0206F190
+ push {r3-r4}
+ add r4, r0, r1
+ strb r2, [r4, #0x8]
+ strb r3, [r0, r1]
+ pop {r3-r4}
+ bx lr
+
+ thumb_func_start FUN_0206F19C
+FUN_0206F19C: ; 0x0206F19C
+ strh r1, [r0, #0x10]
+ bx lr
+
+ thumb_func_start FUN_0206F1A0
+FUN_0206F1A0: ; 0x0206F1A0
+ add r1, r0, r1
+ ldrb r0, [r1, #0x19]
+ strb r0, [r2, #0x0]
+ ldrb r0, [r1, #0x14]
+ strb r0, [r3, #0x0]
+ bx lr
+
+ thumb_func_start FUN_0206F1AC
+FUN_0206F1AC: ; 0x0206F1AC
+ ldrh r0, [r0, #0x1e]
+ bx lr
+
+ thumb_func_start FUN_0206F1B0
+FUN_0206F1B0: ; 0x0206F1B0
+ ldrh r0, [r0, #0x20]
+ bx lr
+
+ thumb_func_start FUN_0206F1B4
+FUN_0206F1B4: ; 0x0206F1B4
+ ldrh r0, [r0, #0x22]
+ bx lr
+
+ thumb_func_start FUN_0206F1B8
+FUN_0206F1B8: ; 0x0206F1B8
+ add r0, r0, r1
+ strb r2, [r0, #0x19]
+ strb r3, [r0, #0x14]
+ bx lr
+
+ thumb_func_start FUN_0206F1C0
+FUN_0206F1C0: ; 0x0206F1C0
+ push {r4-r6, lr}
+ mov r4, #0x0
+ add r5, r0, #0x0
+ add r6, r4, #0x0
+_0206F1C8:
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ add r2, r6, #0x0
+ add r3, r6, #0x0
+ bl FUN_0206F1B8
+ add r4, r4, #0x1
+ cmp r4, #0x5
+ blo _0206F1C8
+ add r0, r5, #0x0
+ mov r1, #0x0
+ bl FUN_0206F1EC
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_0206F1E4
+FUN_0206F1E4: ; 0x0206F1E4
+ strh r1, [r0, #0x1e]
+ strh r2, [r0, #0x20]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_0206F1EC
+FUN_0206F1EC: ; 0x0206F1EC
+ strh r1, [r0, #0x22]
+ bx lr
+
+ thumb_func_start FUN_0206F1F0
+FUN_0206F1F0: ; 0x0206F1F0
+ push {r4-r6, lr}
+ add r6, r0, #0x0
+ bl FUN_02046528
+ add r5, r0, #0x0
+ add r0, r6, #0x0
+ bl FUN_0204652C
+ add r4, r0, #0x0
+ ldr r0, [r4, #0x4]
+ cmp r0, #0xb
+ bls _0206F20A
+ b _0206F37C
+_0206F20A:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0206F216: ; jump table (using 16-bit offset)
+ .short _0206F22E - _0206F216 - 2; case 0
+ .short _0206F234 - _0206F216 - 2; case 1
+ .short _0206F25A - _0206F216 - 2; case 2
+ .short _0206F26C - _0206F216 - 2; case 3
+ .short _0206F31A - _0206F216 - 2; case 4
+ .short _0206F330 - _0206F216 - 2; case 5
+ .short _0206F336 - _0206F216 - 2; case 6
+ .short _0206F344 - _0206F216 - 2; case 7
+ .short _0206F34A - _0206F216 - 2; case 8
+ .short _0206F366 - _0206F216 - 2; case 9
+ .short _0206F366 - _0206F216 - 2; case 10
+ .short _0206F366 - _0206F216 - 2; case 11
+_0206F22E:
+ ldr r1, [r5, #0xc]
+ ldr r0, [r4, #0x0]
+ str r1, [r0, #0x0]
+_0206F234:
+ ldr r0, [r4, #0x4]
+ add r0, r0, #0x1
+ str r0, [r4, #0x4]
+ ldr r0, [r4, #0x0]
+ ldr r0, [r0, #0x4]
+ cmp r0, #0x1
+ bne _0206F24C
+ ldr r0, [r5, #0xc]
+ bl FUN_0203384C
+ cmp r0, #0x0
+ bne _0206F24E
+_0206F24C:
+ b _0206F380
+_0206F24E:
+ mov r0, #0xa
+ str r0, [r4, #0x4]
+ ldr r0, [r4, #0x8]
+ mov r1, #0x0
+ strh r1, [r0, #0x0]
+ b _0206F380
+_0206F25A:
+ ldr r1, _0206F384 ; =0x020F943C
+ ldr r2, [r4, #0x0]
+ add r0, r6, #0x0
+ bl FUN_02046500
+ ldr r0, [r4, #0x4]
+ add r0, r0, #0x1
+ str r0, [r4, #0x4]
+ b _0206F380
+_0206F26C:
+ ldr r0, [r5, #0xc]
+ bl FUN_0203384C
+ cmp r0, #0x0
+ beq _0206F280
+ ldr r0, [r5, #0xc]
+ bl FUN_020462AC
+ bl FUN_0205F304
+_0206F280:
+ ldr r0, [r4, #0x0]
+ ldr r0, [r0, #0x4]
+ cmp r0, #0xa
+ bhi _0206F380
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0206F294: ; jump table (using 16-bit offset)
+ .short _0206F380 - _0206F294 - 2; case 0
+ .short _0206F2B8 - _0206F294 - 2; case 1
+ .short _0206F2C6 - _0206F294 - 2; case 2
+ .short _0206F2AA - _0206F294 - 2; case 3
+ .short _0206F2E0 - _0206F294 - 2; case 4
+ .short _0206F2EE - _0206F294 - 2; case 5
+ .short _0206F2D4 - _0206F294 - 2; case 6
+ .short _0206F2FC - _0206F294 - 2; case 7
+ .short _0206F30E - _0206F294 - 2; case 8
+ .short _0206F314 - _0206F294 - 2; case 9
+ .short _0206F302 - _0206F294 - 2; case 10
+_0206F2AA:
+ mov r0, #0x0
+ strb r0, [r4, #0xc]
+ mov r0, #0x1
+ strb r0, [r4, #0xd]
+ mov r0, #0x4
+ str r0, [r4, #0x4]
+ b _0206F380
+_0206F2B8:
+ mov r0, #0x32
+ strb r0, [r4, #0xc]
+ mov r0, #0x1
+ strb r0, [r4, #0xd]
+ mov r0, #0x4
+ str r0, [r4, #0x4]
+ b _0206F380
+_0206F2C6:
+ mov r0, #0x64
+ strb r0, [r4, #0xc]
+ mov r0, #0x1
+ strb r0, [r4, #0xd]
+ mov r0, #0x4
+ str r0, [r4, #0x4]
+ b _0206F380
+_0206F2D4:
+ mov r0, #0x0
+ strb r0, [r4, #0xc]
+ strb r0, [r4, #0xd]
+ mov r0, #0x4
+ str r0, [r4, #0x4]
+ b _0206F380
+_0206F2E0:
+ mov r0, #0x32
+ strb r0, [r4, #0xc]
+ mov r0, #0x0
+ strb r0, [r4, #0xd]
+ mov r0, #0x4
+ str r0, [r4, #0x4]
+ b _0206F380
+_0206F2EE:
+ mov r0, #0x64
+ strb r0, [r4, #0xc]
+ mov r0, #0x0
+ strb r0, [r4, #0xd]
+ mov r0, #0x4
+ str r0, [r4, #0x4]
+ b _0206F380
+_0206F2FC:
+ mov r0, #0x6
+ str r0, [r4, #0x4]
+ b _0206F380
+_0206F302:
+ ldr r0, [r4, #0x8]
+ mov r1, #0x1
+ strh r1, [r0, #0x0]
+ mov r0, #0xb
+ str r0, [r4, #0x4]
+ b _0206F380
+_0206F30E:
+ mov r0, #0x9
+ str r0, [r4, #0x4]
+ b _0206F380
+_0206F314:
+ mov r0, #0x8
+ str r0, [r4, #0x4]
+ b _0206F380
+_0206F31A:
+ ldr r1, [r4, #0x0]
+ ldrb r2, [r4, #0xc]
+ ldrb r3, [r4, #0xd]
+ ldr r1, [r1, #0x8]
+ add r0, r6, #0x0
+ bl FUN_020471C0
+ ldr r0, [r4, #0x4]
+ add r0, r0, #0x1
+ str r0, [r4, #0x4]
+ b _0206F380
+_0206F330:
+ mov r0, #0x2
+ str r0, [r4, #0x4]
+ b _0206F380
+_0206F336:
+ add r0, r6, #0x0
+ bl FUN_020383D8
+ ldr r0, [r4, #0x4]
+ add r0, r0, #0x1
+ str r0, [r4, #0x4]
+ b _0206F380
+_0206F344:
+ mov r0, #0x2
+ str r0, [r4, #0x4]
+ b _0206F380
+_0206F34A:
+ ldr r2, _0206F388 ; =0x00040100
+ mov r0, #0x3
+ mov r1, #0x36
+ bl FUN_0201681C
+ bl FUN_02088878
+ mov r0, #0x36
+ bl FUN_02211E60
+ mov r0, #0x0
+ blx OS_ResetSystem
+ b _0206F380
+_0206F366:
+ ldr r0, [r4, #0x0]
+ bl FUN_02016A18
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ ldr r0, [r4, #0x4]
+ add r0, r0, #0x1
+ str r0, [r4, #0x4]
+ mov r0, #0x1
+ pop {r4-r6, pc}
+_0206F37C:
+ mov r0, #0x1
+ pop {r4-r6, pc}
+_0206F380:
+ mov r0, #0x0
+ pop {r4-r6, pc}
+ .balign 4
+_0206F384: .word 0x020F943C
+_0206F388: .word 0x00040100
+
+ thumb_func_start FUN_0206F38C
+FUN_0206F38C: ; 0x0206F38C
+ push {r4, lr}
+ mov r0, #0xb
+ mov r1, #0x10
+ bl FUN_020169D8
+ mov r1, #0x0
+ mov r2, #0x10
+ add r4, r0, #0x0
+ blx MI_CpuFill8
+ mov r0, #0xb
+ mov r1, #0xc
+ bl FUN_020169D8
+ mov r1, #0x0
+ mov r2, #0xc
+ str r0, [r4, #0x0]
+ blx MI_CpuFill8
+ add r0, r4, #0x0
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0206F3B8
+FUN_0206F3B8: ; 0x0206F3B8
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl FUN_0206F38C
+ add r2, r0, #0x0
+ ldr r0, [r2, #0x0]
+ mov r1, #0x2
+ str r1, [r0, #0x4]
+ ldr r1, _0206F3D4 ; =FUN_0206F1F0
+ add r0, r4, #0x0
+ bl FUN_0204640C
+ pop {r4, pc}
+ nop
+_0206F3D4: .word FUN_0206F1F0
+
+ thumb_func_start FUN_0206F3D8
+FUN_0206F3D8: ; 0x0206F3D8
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ bl FUN_0206F38C
+ add r2, r0, #0x0
+ ldr r0, [r2, #0x0]
+ mov r1, #0x1
+ str r1, [r0, #0x4]
+ ldr r1, _0206F3F8 ; =FUN_0206F1F0
+ add r0, r5, #0x0
+ str r4, [r2, #0x8]
+ bl FUN_0204640C
+ pop {r3-r5, pc}
+ nop
+_0206F3F8: .word FUN_0206F1F0
+
+ thumb_func_start FUN_0206F3FC
+FUN_0206F3FC: ; 0x0206F3FC
+ push {r3-r4, lr}
+ sub sp, #0xc
+ add r4, r0, #0x0
+ mov r0, #0x0
+ add r1, r0, #0x0
+ bl FUN_02015F10
+ bl FUN_02015F1C
+ bl FUN_0201E6D8
+ bl FUN_0201E740
+ mov r0, #0x1
+ lsl r0, r0, #0x1a
+ ldr r2, [r0, #0x0]
+ ldr r1, _0206F594 ; =0xFFFFE0FF
+ ldr r3, _0206F598 ; =0x04001000
+ and r2, r1
+ str r2, [r0, #0x0]
+ ldr r2, [r3, #0x0]
+ add r0, #0x50
+ and r1, r2
+ str r1, [r3, #0x0]
+ mov r1, #0x0
+ strh r1, [r0, #0x0]
+ add r3, #0x50
+ strh r1, [r3, #0x0]
+ mov r0, #0x4
+ mov r1, #0x8
+ bl FUN_0201669C
+ mov r2, #0x2
+ mov r0, #0x3
+ mov r1, #0xc
+ lsl r2, r2, #0x10
+ bl FUN_0201681C
+ add r0, r4, #0x0
+ bl FUN_0206FE74
+ add r4, r0, #0x0
+ mov r0, #0x6
+ str r0, [sp, #0x0]
+ mov r0, #0x1
+ str r0, [sp, #0x4]
+ mov r1, #0xc
+ str r1, [sp, #0x8]
+ mov r1, #0x3
+ add r2, r1, #0x0
+ mov r3, #0x0
+ bl FUN_0200E1D0
+ add r0, r4, #0x0
+ bl FUN_0206FF74
+ bl FUN_0206FB80
+ ldr r0, [r4, #0x0]
+ bl FUN_0206FBA0
+ add r0, r4, #0x0
+ bl FUN_0206FD24
+ bl FUN_0201CC08
+ mov r0, #0x4
+ bl FUN_0201CC24
+ mov r1, #0x0
+ mov r0, #0x39
+ add r2, r1, #0x0
+ bl FUN_0200433C
+ add r0, r4, #0x0
+ bl FUN_02072590
+ add r0, r4, #0x0
+ bl FUN_02073710
+ add r0, r4, #0x0
+ bl FUN_0207388C
+ add r0, r4, #0x0
+ bl FUN_0206FFB4
+ add r0, r4, #0x0
+ bl FUN_0207047C
+ ldr r1, _0206F59C ; =0x00000B25
+ add r0, r4, #0x0
+ ldrb r1, [r4, r1]
+ mov r2, #0x1
+ bl FUN_020713EC
+ ldr r1, _0206F5A0 ; =0x000005A4
+ ldr r3, [r4, r1]
+ add r0, r3, #0x0
+ add r0, #0x20
+ ldrb r2, [r0, #0x0]
+ cmp r2, #0x5
+ beq _0206F4CC
+ cmp r2, #0x10
+ bne _0206F4E2
+_0206F4CC:
+ ldrh r0, [r3, #0x24]
+ bl FUN_02076144
+ cmp r0, #0x0
+ bne _0206F564
+ add r0, r4, #0x0
+ mov r1, #0x20
+ mov r2, #0x1
+ bl FUN_020731C0
+ b _0206F564
+_0206F4E2:
+ cmp r2, #0x6
+ bne _0206F4F2
+ add r0, r4, #0x0
+ mov r1, #0x21
+ mov r2, #0x1
+ bl FUN_020731C0
+ b _0206F564
+_0206F4F2:
+ cmp r2, #0x9
+ beq _0206F4FA
+ cmp r2, #0xe
+ bne _0206F506
+_0206F4FA:
+ add r0, r4, #0x0
+ mov r1, #0x1f
+ mov r2, #0x1
+ bl FUN_020731C0
+ b _0206F564
+_0206F506:
+ cmp r2, #0x7
+ beq _0206F51A
+ cmp r2, #0x8
+ beq _0206F51A
+ add r0, r2, #0x0
+ add r0, #0xf5
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ cmp r0, #0x1
+ bhi _0206F526
+_0206F51A:
+ ldr r0, _0206F5A4 ; =0x000005C8
+ mov r1, #0x1
+ ldr r0, [r4, r0]
+ bl FUN_0200C664
+ b _0206F564
+_0206F526:
+ cmp r2, #0x2
+ beq _0206F52E
+ cmp r2, #0x11
+ bne _0206F53A
+_0206F52E:
+ add r0, r4, #0x0
+ mov r1, #0x22
+ mov r2, #0x1
+ bl FUN_020731C0
+ b _0206F564
+_0206F53A:
+ cmp r2, #0xf
+ bne _0206F54A
+ add r0, r4, #0x0
+ mov r1, #0x22
+ mov r2, #0x1
+ bl FUN_020731C0
+ b _0206F564
+_0206F54A:
+ cmp r2, #0xa
+ beq _0206F55A
+ add r0, r4, #0x0
+ mov r1, #0x1d
+ mov r2, #0x1
+ bl FUN_020731C0
+ b _0206F564
+_0206F55A:
+ add r1, #0x24
+ ldr r0, [r4, r1]
+ mov r1, #0x1
+ bl FUN_0200C664
+_0206F564:
+ add r0, r4, #0x0
+ bl FUN_02072720
+ add r0, r4, #0x0
+ bl FUN_02070AA4
+ add r0, r4, #0x0
+ bl FUN_0207248C
+ cmp r0, #0x0
+ bne _0206F582
+ mov r0, #0x1
+ mov r1, #0x0
+ bl FUN_0201E74C
+_0206F582:
+ ldr r0, _0206F5A8 ; =FUN_0206FB58
+ add r1, r4, #0x0
+ bl FUN_02015F10
+ bl FUN_02033F20
+ mov r0, #0x1
+ add sp, #0xc
+ pop {r3-r4, pc}
+ .balign 4
+_0206F594: .word 0xFFFFE0FF
+_0206F598: .word 0x04001000
+_0206F59C: .word 0x00000B25
+_0206F5A0: .word 0x000005A4
+_0206F5A4: .word 0x000005C8
+_0206F5A8: .word FUN_0206FB58
+
+ thumb_func_start FUN_0206F5AC
+FUN_0206F5AC: ; 0x0206F5AC
+ push {r3-r5, lr}
+ add r4, r1, #0x0
+ bl FUN_02006278
+ ldr r1, [r4, #0x0]
+ add r5, r0, #0x0
+ cmp r1, #0x1c
+ bhi _0206F61C
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #0x6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_0206F5C8: ; jump table (using 16-bit offset)
+ .short _0206F602 - _0206F5C8 - 2; case 0
+ .short _0206F60A - _0206F5C8 - 2; case 1
+ .short _0206F612 - _0206F5C8 - 2; case 2
+ .short _0206F624 - _0206F5C8 - 2; case 3
+ .short _0206F62C - _0206F5C8 - 2; case 4
+ .short _0206F634 - _0206F5C8 - 2; case 5
+ .short _0206F63E - _0206F5C8 - 2; case 6
+ .short _0206F646 - _0206F5C8 - 2; case 7
+ .short _0206F64E - _0206F5C8 - 2; case 8
+ .short _0206F656 - _0206F5C8 - 2; case 9
+ .short _0206F65E - _0206F5C8 - 2; case 10
+ .short _0206F666 - _0206F5C8 - 2; case 11
+ .short _0206F66E - _0206F5C8 - 2; case 12
+ .short _0206F676 - _0206F5C8 - 2; case 13
+ .short _0206F67E - _0206F5C8 - 2; case 14
+ .short _0206F686 - _0206F5C8 - 2; case 15
+ .short _0206F68E - _0206F5C8 - 2; case 16
+ .short _0206F696 - _0206F5C8 - 2; case 17
+ .short _0206F69E - _0206F5C8 - 2; case 18
+ .short _0206F6A6 - _0206F5C8 - 2; case 19
+ .short _0206F6AE - _0206F5C8 - 2; case 20
+ .short _0206F6B6 - _0206F5C8 - 2; case 21
+ .short _0206F6BE - _0206F5C8 - 2; case 22
+ .short _0206F6C6 - _0206F5C8 - 2; case 23
+ .short _0206F6CE - _0206F5C8 - 2; case 24
+ .short _0206F6E6 - _0206F5C8 - 2; case 25
+ .short _0206F6F4 - _0206F5C8 - 2; case 26
+ .short _0206F6FC - _0206F5C8 - 2; case 27
+ .short _0206F70A - _0206F5C8 - 2; case 28
+_0206F602:
+ bl FUN_0206F750
+ str r0, [r4, #0x0]
+ b _0206F722
+_0206F60A:
+ bl FUN_0206F7D8
+ str r0, [r4, #0x0]
+ b _0206F722
+_0206F612:
+ add r1, r4, #0x0
+ bl FUN_020718CC
+ cmp r0, #0x1
+ beq _0206F61E
+_0206F61C:
+ b _0206F722
+_0206F61E:
+ mov r0, #0x1
+ str r0, [r4, #0x0]
+ b _0206F722
+_0206F624:
+ bl FUN_020754D0
+ str r0, [r4, #0x0]
+ b _0206F722
+_0206F62C:
+ bl FUN_0206F874
+ str r0, [r4, #0x0]
+ b _0206F722
+_0206F634:
+ ldr r1, _0206F740 ; =0x00000B14
+ ldr r1, [r5, r1]
+ blx r1
+ str r0, [r4, #0x0]
+ b _0206F722
+_0206F63E:
+ bl FUN_02077110
+ str r0, [r4, #0x0]
+ b _0206F722
+_0206F646:
+ bl FUN_020761A0
+ str r0, [r4, #0x0]
+ b _0206F722
+_0206F64E:
+ bl FUN_0206F8B4
+ str r0, [r4, #0x0]
+ b _0206F722
+_0206F656:
+ bl FUN_02072170
+ str r0, [r4, #0x0]
+ b _0206F722
+_0206F65E:
+ bl FUN_02072194
+ str r0, [r4, #0x0]
+ b _0206F722
+_0206F666:
+ bl FUN_02072140
+ str r0, [r4, #0x0]
+ b _0206F722
+_0206F66E:
+ bl FUN_0207230C
+ str r0, [r4, #0x0]
+ b _0206F722
+_0206F676:
+ bl FUN_0206F8F4
+ str r0, [r4, #0x0]
+ b _0206F722
+_0206F67E:
+ bl FUN_02071F58
+ str r0, [r4, #0x0]
+ b _0206F722
+_0206F686:
+ bl FUN_0207405C
+ str r0, [r4, #0x0]
+ b _0206F722
+_0206F68E:
+ bl FUN_0207436C
+ str r0, [r4, #0x0]
+ b _0206F722
+_0206F696:
+ bl FUN_0206FA14
+ str r0, [r4, #0x0]
+ b _0206F722
+_0206F69E:
+ bl FUN_02076D3C
+ str r0, [r4, #0x0]
+ b _0206F722
+_0206F6A6:
+ bl FUN_02074F6C
+ str r0, [r4, #0x0]
+ b _0206F722
+_0206F6AE:
+ bl FUN_0206F980
+ str r0, [r4, #0x0]
+ b _0206F722
+_0206F6B6:
+ bl FUN_0206F9A4
+ str r0, [r4, #0x0]
+ b _0206F722
+_0206F6BE:
+ bl FUN_0206F9C8
+ str r0, [r4, #0x0]
+ b _0206F722
+_0206F6C6:
+ bl FUN_0206F9D4
+ str r0, [r4, #0x0]
+ b _0206F722
+_0206F6CE:
+ bl FUN_020714D0
+ cmp r0, #0x0
+ bne _0206F6DC
+ mov r0, #0x19
+ str r0, [r4, #0x0]
+ b _0206F722
+_0206F6DC:
+ cmp r0, #0x3
+ bne _0206F722
+ mov r0, #0x1
+ str r0, [r4, #0x0]
+ b _0206F722
+_0206F6E6:
+ bl FUN_020746D4
+ cmp r0, #0x1
+ bne _0206F722
+ mov r0, #0x1
+ str r0, [r4, #0x0]
+ b _0206F722
+_0206F6F4:
+ bl FUN_02071970
+ str r0, [r4, #0x0]
+ b _0206F722
+_0206F6FC:
+ mov r0, #0x1
+ mov r1, #0xc
+ bl FUN_02079A70
+ mov r0, #0x1c
+ str r0, [r4, #0x0]
+ b _0206F722
+_0206F70A:
+ bl FUN_0200E308
+ cmp r0, #0x1
+ bne _0206F722
+ ldr r0, _0206F744 ; =0x00000B25
+ ldrb r1, [r5, r0]
+ ldr r0, _0206F748 ; =0x000005A4
+ ldr r0, [r5, r0]
+ add r0, #0x22
+ strb r1, [r0, #0x0]
+ mov r0, #0x1
+ pop {r3-r5, pc}
+_0206F722:
+ add r0, r5, #0x0
+ bl FUN_02073BEC
+ add r0, r5, #0x0
+ bl FUN_02073D6C
+ add r0, r5, #0x0
+ bl FUN_02070F14
+ ldr r0, _0206F74C ; =0x000005AC
+ ldr r0, [r5, r0]
+ bl FUN_0200BC1C
+ mov r0, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+_0206F740: .word 0x00000B14
+_0206F744: .word 0x00000B25
+_0206F748: .word 0x000005A4
+_0206F74C: .word 0x000005AC
+
+ thumb_func_start FUN_0206F750
+FUN_0206F750: ; 0x0206F750
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl FUN_0200E308
+ cmp r0, #0x1
+ bne _0206F7CA
+ ldr r0, _0206F7D0 ; =0x000005A4
+ ldr r2, [r4, r0]
+ add r0, r2, #0x0
+ add r0, #0x20
+ ldrb r1, [r0, #0x0]
+ cmp r1, #0x5
+ beq _0206F76E
+ cmp r1, #0x10
+ bne _0206F786
+_0206F76E:
+ ldrh r0, [r2, #0x24]
+ bl FUN_02076144
+ cmp r0, #0x1
+ bne _0206F782
+ ldr r0, _0206F7D4 ; =0x00000B22
+ mov r1, #0x0
+ strb r1, [r4, r0]
+ mov r0, #0x7
+ pop {r4, pc}
+_0206F782:
+ mov r0, #0x4
+ pop {r4, pc}
+_0206F786:
+ cmp r1, #0x6
+ bne _0206F78E
+ mov r0, #0x11
+ pop {r4, pc}
+_0206F78E:
+ cmp r1, #0x7
+ bne _0206F79A
+ add r0, r4, #0x0
+ bl FUN_02076C94
+ pop {r4, pc}
+_0206F79A:
+ cmp r1, #0x8
+ bne _0206F7A6
+ add r0, r4, #0x0
+ bl FUN_02076890
+ pop {r4, pc}
+_0206F7A6:
+ add r0, r1, #0x0
+ add r0, #0xf5
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ cmp r0, #0x1
+ bhi _0206F7B6
+ mov r0, #0xc
+ pop {r4, pc}
+_0206F7B6:
+ cmp r1, #0x9
+ bne _0206F7BE
+ mov r0, #0x8
+ pop {r4, pc}
+_0206F7BE:
+ cmp r1, #0xa
+ bne _0206F7C6
+ mov r0, #0xe
+ pop {r4, pc}
+_0206F7C6:
+ mov r0, #0x1
+ pop {r4, pc}
+_0206F7CA:
+ mov r0, #0x0
+ pop {r4, pc}
+ nop
+_0206F7D0: .word 0x000005A4
+_0206F7D4: .word 0x00000B22
+
+ thumb_func_start FUN_0206F7D8
+FUN_0206F7D8: ; 0x0206F7D8
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl FUN_02070F94
+ cmp r0, #0x0
+ bne _0206F81E
+ ldr r0, _0206F870 ; =0x000005A4
+ ldr r1, [r4, r0]
+ add r0, r1, #0x0
+ add r0, #0x20
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x3
+ beq _0206F7F6
+ cmp r0, #0x14
+ bne _0206F800
+_0206F7F6:
+ mov r0, #0x0
+ add r1, #0x23
+ strb r0, [r1, #0x0]
+ mov r0, #0x1b
+ pop {r4, pc}
+_0206F800:
+ cmp r0, #0xe
+ bne _0206F80E
+ add r0, r4, #0x0
+ bl FUN_02077248
+ mov r0, #0x14
+ pop {r4, pc}
+_0206F80E:
+ cmp r0, #0x13
+ bne _0206F81A
+ add r0, r4, #0x0
+ bl FUN_02072420
+ pop {r4, pc}
+_0206F81A:
+ mov r0, #0x2
+ pop {r4, pc}
+_0206F81E:
+ cmp r0, #0x4
+ bne _0206F82A
+ add r0, r4, #0x0
+ bl FUN_0207155C
+ pop {r4, pc}
+_0206F82A:
+ cmp r0, #0x3
+ bne _0206F83C
+ ldr r0, _0206F870 ; =0x000005A4
+ mov r1, #0x0
+ ldr r0, [r4, r0]
+ add r0, #0x23
+ strb r1, [r0, #0x0]
+ mov r0, #0x1b
+ pop {r4, pc}
+_0206F83C:
+ cmp r0, #0x2
+ bne _0206F86A
+ ldr r0, _0206F870 ; =0x000005A4
+ ldr r2, [r4, r0]
+ add r1, r2, #0x0
+ add r1, #0x20
+ ldrb r1, [r1, #0x0]
+ cmp r1, #0xf
+ beq _0206F858
+ mov r0, #0x1
+ add r2, #0x23
+ strb r0, [r2, #0x0]
+ mov r0, #0x1b
+ pop {r4, pc}
+_0206F858:
+ add r0, #0x24
+ ldr r0, [r4, r0]
+ mov r1, #0x1
+ bl FUN_0200C664
+ add r0, r4, #0x0
+ bl FUN_02075118
+ pop {r4, pc}
+_0206F86A:
+ mov r0, #0x1
+ pop {r4, pc}
+ nop
+_0206F870: .word 0x000005A4
+
+ thumb_func_start FUN_0206F874
+FUN_0206F874: ; 0x0206F874
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl FUN_02071D48
+ cmp r0, #0x0
+ beq _0206F884
+ cmp r0, #0x2
+ bne _0206F896
+_0206F884:
+ ldr r0, _0206F8AC ; =0x000005C8
+ mov r1, #0x1
+ ldr r0, [r4, r0]
+ bl FUN_0200C664
+ add r0, r4, #0x0
+ bl FUN_02071DF4
+ pop {r4, pc}
+_0206F896:
+ cmp r0, #0x3
+ bne _0206F8A8
+ ldr r0, _0206F8B0 ; =0x000005A4
+ mov r1, #0x0
+ ldr r0, [r4, r0]
+ add r0, #0x23
+ strb r1, [r0, #0x0]
+ mov r0, #0x1b
+ pop {r4, pc}
+_0206F8A8:
+ mov r0, #0x4
+ pop {r4, pc}
+ .balign 4
+_0206F8AC: .word 0x000005C8
+_0206F8B0: .word 0x000005A4
+
+ thumb_func_start FUN_0206F8B4
+FUN_0206F8B4: ; 0x0206F8B4
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl FUN_02071D48
+ cmp r0, #0x0
+ beq _0206F8C4
+ cmp r0, #0x2
+ bne _0206F8D6
+_0206F8C4:
+ ldr r0, _0206F8EC ; =0x000005C8
+ mov r1, #0x1
+ ldr r0, [r4, r0]
+ bl FUN_0200C664
+ add r0, r4, #0x0
+ bl FUN_02071F58
+ pop {r4, pc}
+_0206F8D6:
+ cmp r0, #0x3
+ bne _0206F8E8
+ ldr r0, _0206F8F0 ; =0x000005A4
+ mov r1, #0x0
+ ldr r0, [r4, r0]
+ add r0, #0x23
+ strb r1, [r0, #0x0]
+ mov r0, #0x1b
+ pop {r4, pc}
+_0206F8E8:
+ mov r0, #0x8
+ pop {r4, pc}
+ .balign 4
+_0206F8EC: .word 0x000005C8
+_0206F8F0: .word 0x000005A4
+
+ thumb_func_start FUN_0206F8F4
+FUN_0206F8F4: ; 0x0206F8F4
+ push {r3-r4, lr}
+ sub sp, #0x4
+ add r4, r0, #0x0
+ ldr r0, _0206F974 ; =0x000006FC
+ ldr r0, [r4, r0]
+ bl FUN_02001C78
+ add r2, r0, #0x0
+ mov r0, #0x1
+ mvn r0, r0
+ cmp r2, r0
+ beq _0206F914
+ add r0, r0, #0x1
+ cmp r2, r0
+ beq _0206F96E
+ b _0206F962
+_0206F914:
+ mov r0, #0x85
+ lsl r0, r0, #0x2
+ add r0, r4, r0
+ mov r1, #0x1
+ bl FUN_0200D0E0
+ mov r0, #0x8d
+ lsl r0, r0, #0x2
+ add r0, r4, r0
+ mov r1, #0x1
+ bl FUN_0200CCF8
+ mov r0, #0x8d
+ lsl r0, r0, #0x2
+ add r0, r4, r0
+ bl FUN_0201958C
+ ldr r0, _0206F974 ; =0x000006FC
+ mov r1, #0x0
+ ldr r0, [r4, r0]
+ bl FUN_02001C5C
+ ldr r0, _0206F978 ; =0x000006F8
+ ldr r0, [r4, r0]
+ bl FUN_02012870
+ add r0, r4, #0x0
+ mov r1, #0x1d
+ mov r2, #0x1
+ bl FUN_020731C0
+ ldr r0, _0206F97C ; =0x000005C8
+ mov r1, #0x0
+ ldr r0, [r4, r0]
+ bl FUN_0200C664
+ add sp, #0x4
+ mov r0, #0x1
+ pop {r3-r4, pc}
+_0206F962:
+ add r0, r4, #0x0
+ add r1, sp, #0x0
+ blx r2
+ ldr r0, [sp, #0x0]
+ add sp, #0x4
+ pop {r3-r4, pc}
+_0206F96E:
+ mov r0, #0xd
+ add sp, #0x4
+ pop {r3-r4, pc}
+ .balign 4
+_0206F974: .word 0x000006FC
+_0206F978: .word 0x000006F8
+_0206F97C: .word 0x000005C8
+
+ thumb_func_start FUN_0206F980
+FUN_0206F980: ; 0x0206F980
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r0, _0206F99C ; =0x00000B24
+ ldrb r0, [r4, r0]
+ bl FUN_0201BD70
+ cmp r0, #0x0
+ bne _0206F996
+ ldr r0, _0206F9A0 ; =0x00000B22
+ ldrb r0, [r4, r0]
+ pop {r4, pc}
+_0206F996:
+ mov r0, #0x14
+ pop {r4, pc}
+ nop
+_0206F99C: .word 0x00000B24
+_0206F9A0: .word 0x00000B22
+
+ thumb_func_start FUN_0206F9A4
+FUN_0206F9A4: ; 0x0206F9A4
+ push {r3, lr}
+ ldr r0, _0206F9C0 ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #0x3
+ tst r0, r1
+ beq _0206F9BA
+ ldr r0, _0206F9C4 ; =0x000005DC
+ bl FUN_020054C8
+ mov r0, #0x1b
+ pop {r3, pc}
+_0206F9BA:
+ mov r0, #0x15
+ pop {r3, pc}
+ nop
+_0206F9C0: .word 0x021C48B8
+_0206F9C4: .word 0x000005DC
+
+ thumb_func_start FUN_0206F9C8
+FUN_0206F9C8: ; 0x0206F9C8
+ push {r3, lr}
+ bl FUN_020732CC
+ mov r0, #0x17
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_0206F9D4
+FUN_0206F9D4: ; 0x0206F9D4
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r0, _0206FA08 ; =0x000006FC
+ mov r1, #0xc
+ ldr r0, [r4, r0]
+ bl FUN_020021AC
+ cmp r0, #0x0
+ beq _0206F9F0
+ mov r1, #0x1
+ mvn r1, r1
+ cmp r0, r1
+ beq _0206F9FA
+ b _0206FA04
+_0206F9F0:
+ ldr r1, _0206FA0C ; =0x00000B18
+ add r0, r4, #0x0
+ ldr r1, [r4, r1]
+ blx r1
+ pop {r4, pc}
+_0206F9FA:
+ ldr r1, _0206FA10 ; =0x00000B1C
+ add r0, r4, #0x0
+ ldr r1, [r4, r1]
+ blx r1
+ pop {r4, pc}
+_0206FA04:
+ mov r0, #0x17
+ pop {r4, pc}
+ .balign 4
+_0206FA08: .word 0x000006FC
+_0206FA0C: .word 0x00000B18
+_0206FA10: .word 0x00000B1C
+
+ thumb_func_start FUN_0206FA14
+FUN_0206FA14: ; 0x0206FA14
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl FUN_02071D48
+ cmp r0, #0x0
+ beq _0206FA24
+ cmp r0, #0x2
+ bne _0206FA78
+_0206FA24:
+ ldr r0, _0206FA90 ; =0x000005C8
+ mov r1, #0x1
+ ldr r0, [r4, r0]
+ bl FUN_0200C664
+ ldr r0, _0206FA94 ; =0x00000B25
+ mov r1, #0x2c
+ ldrb r0, [r4, r0]
+ add r2, r0, #0x0
+ mul r2, r1
+ mov r0, #0x71
+ add r2, r4, r2
+ lsl r0, r0, #0x4
+ ldrb r0, [r2, r0]
+ cmp r0, #0x1
+ beq _0206FA4C
+ add r0, r4, #0x0
+ bl FUN_02076AF8
+ pop {r4, pc}
+_0206FA4C:
+ add r0, r4, #0x0
+ sub r1, #0x2d
+ mov r2, #0x1
+ bl FUN_020731E8
+ ldr r1, _0206FA98 ; =0x000005A4
+ mov r2, #0x0
+ ldr r0, [r4, r1]
+ add r1, #0xf8
+ add r0, #0x23
+ strb r2, [r0, #0x0]
+ ldr r0, _0206FA9C ; =0x00000B22
+ mov r2, #0x15
+ strb r2, [r4, r0]
+ ldr r2, _0206FAA0 ; =0x000006A4
+ ldr r0, [r4, r1]
+ ldr r2, [r4, r2]
+ mov r1, #0x69
+ bl FUN_0200A8E0
+ mov r0, #0x14
+ pop {r4, pc}
+_0206FA78:
+ cmp r0, #0x3
+ bne _0206FA8A
+ ldr r0, _0206FA98 ; =0x000005A4
+ mov r1, #0x0
+ ldr r0, [r4, r0]
+ add r0, #0x23
+ strb r1, [r0, #0x0]
+ mov r0, #0x1b
+ pop {r4, pc}
+_0206FA8A:
+ mov r0, #0x11
+ pop {r4, pc}
+ nop
+_0206FA90: .word 0x000005C8
+_0206FA94: .word 0x00000B25
+_0206FA98: .word 0x000005A4
+_0206FA9C: .word 0x00000B22
+_0206FAA0: .word 0x000006A4
+
+ thumb_func_start FUN_0206FAA4
+FUN_0206FAA4: ; 0x0206FAA4
+ push {r3-r7, lr}
+ str r0, [sp, #0x0]
+ bl FUN_02006278
+ add r6, r0, #0x0
+ mov r0, #0x0
+ add r1, r0, #0x0
+ bl FUN_02015F10
+ add r0, r6, #0x0
+ bl FUN_02073A2C
+ add r0, r6, #0x0
+ bl FUN_020726F0
+ ldr r0, [r6, #0x0]
+ bl FUN_0206FCD4
+ bl FUN_0201CD04
+ bl FUN_0201C29C
+ mov r7, #0x7
+ mov r4, #0x0
+ add r5, r6, #0x0
+ lsl r7, r7, #0x8
+_0206FAD8:
+ ldr r0, [r5, r7]
+ bl FUN_02021A20
+ add r4, r4, #0x1
+ add r5, #0x2c
+ cmp r4, #0x6
+ blo _0206FAD8
+ ldr r0, _0206FB40 ; =0x000006A4
+ ldr r0, [r6, r0]
+ bl FUN_02021A20
+ ldr r0, _0206FB44 ; =0x000006A8
+ ldr r0, [r6, r0]
+ bl FUN_02021A20
+ ldr r7, _0206FB48 ; =0x000006AC
+ mov r5, #0x0
+ add r4, r6, #0x0
+_0206FAFC:
+ ldr r0, [r4, r7]
+ bl FUN_02021A20
+ add r5, r5, #0x1
+ add r4, r4, #0x4
+ cmp r5, #0x13
+ blo _0206FAFC
+ ldr r0, _0206FB4C ; =0x0000069C
+ ldr r0, [r6, r0]
+ bl FUN_0200A8B8
+ ldr r0, _0206FB50 ; =0x00000698
+ ldr r0, [r6, r0]
+ bl FUN_0200B990
+ mov r0, #0x6a
+ lsl r0, r0, #0x4
+ ldr r0, [r6, r0]
+ bl FUN_0200AB18
+ ldr r0, _0206FB54 ; =0x00000B34
+ ldr r0, [r6, r0]
+ cmp r0, #0x0
+ beq _0206FB30
+ bl FUN_0206BB74
+_0206FB30:
+ ldr r0, [sp, #0x0]
+ bl FUN_0200627C
+ mov r0, #0xc
+ bl FUN_020168D0
+ mov r0, #0x1
+ pop {r3-r7, pc}
+ .balign 4
+_0206FB40: .word 0x000006A4
+_0206FB44: .word 0x000006A8
+_0206FB48: .word 0x000006AC
+_0206FB4C: .word 0x0000069C
+_0206FB50: .word 0x00000698
+_0206FB54: .word 0x00000B34
+
+ thumb_func_start FUN_0206FB58
+FUN_0206FB58: ; 0x0206FB58
+ push {r3, lr}
+ ldr r0, [r0, #0x0]
+ bl FUN_0201AB60
+ bl FUN_0201C30C
+ bl FUN_0200BC30
+ ldr r3, _0206FB78 ; =0x027E0000
+ ldr r1, _0206FB7C ; =0x00003FF8
+ mov r0, #0x1
+ ldr r2, [r3, r1]
+ orr r0, r2
+ str r0, [r3, r1]
+ pop {r3, pc}
+ nop
+_0206FB78: .word 0x027E0000
+_0206FB7C: .word 0x00003FF8
+
+ thumb_func_start FUN_0206FB80
+FUN_0206FB80: ; 0x0206FB80
+ push {r4, lr}
+ sub sp, #0x28
+ ldr r4, _0206FB9C ; =0x020F9564
+ add r3, sp, #0x0
+ mov r2, #0x5
+_0206FB8A:
+ ldmia r4!, {r0-r1}
+ stmia r3!, {r0-r1}
+ sub r2, r2, #0x1
+ bne _0206FB8A
+ add r0, sp, #0x0
+ bl FUN_0201E66C
+ add sp, #0x28
+ pop {r4, pc}
+ .balign 4
+_0206FB9C: .word 0x020F9564
+
+ thumb_func_start FUN_0206FBA0
+FUN_0206FBA0: ; 0x0206FBA0
+ push {r3-r5, lr}
+ sub sp, #0xb8
+ ldr r5, _0206FCB8 ; =0x020F9458
+ add r3, sp, #0xa8
+ add r4, r0, #0x0
+ add r2, r3, #0x0
+ ldmia r5!, {r0-r1}
+ stmia r3!, {r0-r1}
+ ldmia r5!, {r0-r1}
+ stmia r3!, {r0-r1}
+ add r0, r2, #0x0
+ bl FUN_02016BBC
+ ldr r5, _0206FCBC ; =0x020F94D4
+ add r3, sp, #0x8c
+ ldmia r5!, {r0-r1}
+ add r2, r3, #0x0
+ stmia r3!, {r0-r1}
+ ldmia r5!, {r0-r1}
+ stmia r3!, {r0-r1}
+ ldmia r5!, {r0-r1}
+ stmia r3!, {r0-r1}
+ ldr r0, [r5, #0x0]
+ mov r1, #0x0
+ str r0, [r3, #0x0]
+ add r0, r4, #0x0
+ add r3, r1, #0x0
+ bl FUN_02016C18
+ add r0, r4, #0x0
+ mov r1, #0x0
+ bl FUN_02018744
+ ldr r5, _0206FCC0 ; =0x020F94F0
+ add r3, sp, #0x70
+ ldmia r5!, {r0-r1}
+ add r2, r3, #0x0
+ stmia r3!, {r0-r1}
+ ldmia r5!, {r0-r1}
+ stmia r3!, {r0-r1}
+ ldmia r5!, {r0-r1}
+ stmia r3!, {r0-r1}
+ ldr r0, [r5, #0x0]
+ mov r1, #0x1
+ str r0, [r3, #0x0]
+ add r0, r4, #0x0
+ mov r3, #0x0
+ bl FUN_02016C18
+ add r0, r4, #0x0
+ mov r1, #0x1
+ bl FUN_02018744
+ ldr r5, _0206FCC4 ; =0x020F949C
+ add r3, sp, #0x54
+ ldmia r5!, {r0-r1}
+ add r2, r3, #0x0
+ stmia r3!, {r0-r1}
+ ldmia r5!, {r0-r1}
+ stmia r3!, {r0-r1}
+ ldmia r5!, {r0-r1}
+ stmia r3!, {r0-r1}
+ ldr r0, [r5, #0x0]
+ mov r1, #0x2
+ str r0, [r3, #0x0]
+ add r0, r4, #0x0
+ mov r3, #0x0
+ bl FUN_02016C18
+ add r0, r4, #0x0
+ mov r1, #0x2
+ bl FUN_02018744
+ ldr r5, _0206FCC8 ; =0x020F9480
+ add r3, sp, #0x38
+ ldmia r5!, {r0-r1}
+ add r2, r3, #0x0
+ stmia r3!, {r0-r1}
+ ldmia r5!, {r0-r1}
+ stmia r3!, {r0-r1}
+ ldmia r5!, {r0-r1}
+ stmia r3!, {r0-r1}
+ ldr r0, [r5, #0x0]
+ mov r1, #0x3
+ str r0, [r3, #0x0]
+ add r0, r4, #0x0
+ mov r3, #0x0
+ bl FUN_02016C18
+ ldr r5, _0206FCCC ; =0x020F950C
+ add r3, sp, #0x1c
+ ldmia r5!, {r0-r1}
+ add r2, r3, #0x0
+ stmia r3!, {r0-r1}
+ ldmia r5!, {r0-r1}
+ stmia r3!, {r0-r1}
+ ldmia r5!, {r0-r1}
+ stmia r3!, {r0-r1}
+ ldr r0, [r5, #0x0]
+ str r0, [r3, #0x0]
+ add r0, r4, #0x0
+ mov r1, #0x4
+ mov r3, #0x0
+ bl FUN_02016C18
+ add r0, r4, #0x0
+ mov r1, #0x4
+ bl FUN_02018744
+ ldr r5, _0206FCD0 ; =0x020F9528
+ add r3, sp, #0x0
+ ldmia r5!, {r0-r1}
+ add r2, r3, #0x0
+ stmia r3!, {r0-r1}
+ ldmia r5!, {r0-r1}
+ stmia r3!, {r0-r1}
+ ldmia r5!, {r0-r1}
+ stmia r3!, {r0-r1}
+ ldr r0, [r5, #0x0]
+ mov r1, #0x5
+ str r0, [r3, #0x0]
+ add r0, r4, #0x0
+ mov r3, #0x0
+ bl FUN_02016C18
+ mov r0, #0x0
+ mov r1, #0x20
+ add r2, r0, #0x0
+ mov r3, #0xc
+ bl FUN_02017F18
+ mov r0, #0x4
+ mov r1, #0x20
+ mov r2, #0x0
+ mov r3, #0xc
+ bl FUN_02017F18
+ add sp, #0xb8
+ pop {r3-r5, pc}
+ nop
+_0206FCB8: .word 0x020F9458
+_0206FCBC: .word 0x020F94D4
+_0206FCC0: .word 0x020F94F0
+_0206FCC4: .word 0x020F949C
+_0206FCC8: .word 0x020F9480
+_0206FCCC: .word 0x020F950C
+_0206FCD0: .word 0x020F9528
+
+ thumb_func_start FUN_0206FCD4
+FUN_0206FCD4: ; 0x0206FCD4
+ push {r4, lr}
+ add r4, r0, #0x0
+ mov r0, #0x1f
+ mov r1, #0x0
+ bl FUN_0201E6E4
+ mov r0, #0x13
+ mov r1, #0x0
+ bl FUN_0201E74C
+ add r0, r4, #0x0
+ mov r1, #0x5
+ bl FUN_020178A0
+ add r0, r4, #0x0
+ mov r1, #0x4
+ bl FUN_020178A0
+ add r0, r4, #0x0
+ mov r1, #0x3
+ bl FUN_020178A0
+ add r0, r4, #0x0
+ mov r1, #0x2
+ bl FUN_020178A0
+ add r0, r4, #0x0
+ mov r1, #0x1
+ bl FUN_020178A0
+ add r0, r4, #0x0
+ mov r1, #0x0
+ bl FUN_020178A0
+ mov r0, #0xc
+ add r1, r4, #0x0
+ bl FUN_02016A8C
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0206FD24
+FUN_0206FD24: ; 0x0206FD24
+ push {r4-r5, lr}
+ sub sp, #0x14
+ add r5, r0, #0x0
+ mov r0, #0x0
+ str r0, [sp, #0x0]
+ str r0, [sp, #0x4]
+ str r0, [sp, #0x8]
+ mov r0, #0xc
+ str r0, [sp, #0xc]
+ ldr r2, [r5, #0x0]
+ mov r0, #0x14
+ mov r1, #0xf
+ mov r3, #0x3
+ bl FUN_0200687C
+ mov r0, #0x0
+ str r0, [sp, #0x0]
+ str r0, [sp, #0x4]
+ str r0, [sp, #0x8]
+ mov r0, #0xc
+ str r0, [sp, #0xc]
+ ldr r2, [r5, #0x0]
+ mov r0, #0x14
+ mov r1, #0x11
+ mov r3, #0x3
+ bl FUN_020068C8
+ mov r0, #0x14
+ mov r1, #0x10
+ mov r2, #0xc
+ bl LoadFromNarc_2
+ add r1, sp, #0x10
+ add r4, r0, #0x0
+ blx FUN_020B0138
+ ldr r2, [sp, #0x10]
+ mov r0, #0x3
+ ldr r1, [r2, #0xc]
+ ldr r2, [r2, #0x8]
+ mov r3, #0x0
+ lsl r2, r2, #0x10
+ lsr r2, r2, #0x10
+ bl FUN_02017FB4
+ ldr r1, [sp, #0x10]
+ ldr r0, _0206FE6C ; =0x000004A4
+ ldr r1, [r1, #0xc]
+ mov r2, #0x1
+ add r0, r5, r0
+ add r1, #0x60
+ lsl r2, r2, #0x8
+ blx memcpy
+ mov r0, #0xc
+ add r1, r4, #0x0
+ bl FUN_02016A8C
+ mov r1, #0x1a
+ mov r0, #0x0
+ lsl r1, r1, #0x4
+ mov r2, #0xc
+ bl FUN_02002EEC
+ mov r1, #0x0
+ str r1, [sp, #0x0]
+ mov r0, #0xc
+ str r0, [sp, #0x4]
+ ldr r0, [r5, #0x0]
+ mov r2, #0x1
+ mov r3, #0xe
+ bl FUN_0200CB00
+ ldr r0, _0206FE70 ; =0x000005A4
+ ldr r0, [r5, r0]
+ ldr r0, [r0, #0xc]
+ bl FUN_02025084
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x0]
+ mov r0, #0xc
+ str r0, [sp, #0x4]
+ ldr r0, [r5, #0x0]
+ mov r1, #0x0
+ mov r2, #0xa
+ mov r3, #0xf
+ bl FUN_0200CD68
+ mov r0, #0x0
+ str r0, [sp, #0x0]
+ str r0, [sp, #0x4]
+ str r0, [sp, #0x8]
+ mov r0, #0xc
+ str r0, [sp, #0xc]
+ ldr r2, [r5, #0x0]
+ mov r0, #0x14
+ mov r1, #0x3
+ mov r3, #0x4
+ bl FUN_0200687C
+ mov r3, #0x20
+ mov r1, #0x4
+ str r3, [sp, #0x0]
+ mov r0, #0xc
+ str r0, [sp, #0x4]
+ mov r0, #0x14
+ add r2, r1, #0x0
+ bl FUN_02006930
+ mov r0, #0x0
+ str r0, [sp, #0x0]
+ str r0, [sp, #0x4]
+ str r0, [sp, #0x8]
+ mov r1, #0xc
+ str r1, [sp, #0xc]
+ ldr r2, [r5, #0x0]
+ mov r0, #0x14
+ mov r3, #0x5
+ bl FUN_0200687C
+ mov r0, #0x0
+ str r0, [sp, #0x0]
+ str r0, [sp, #0x4]
+ str r0, [sp, #0x8]
+ mov r0, #0xc
+ str r0, [sp, #0xc]
+ ldr r2, [r5, #0x0]
+ mov r0, #0x14
+ mov r1, #0xe
+ mov r3, #0x5
+ bl FUN_020068C8
+ mov r0, #0x20
+ str r0, [sp, #0x0]
+ mov r0, #0xc
+ str r0, [sp, #0x4]
+ mov r0, #0x14
+ mov r1, #0xd
+ mov r2, #0x4
+ mov r3, #0x0
+ bl FUN_02006930
+ mov r2, #0x99
+ lsl r2, r2, #0x2
+ mov r3, #0xf9
+ add r1, r5, r2
+ add r2, #0xc0
+ lsl r3, r3, #0x2
+ mov r0, #0xc
+ add r2, r5, r2
+ add r3, r5, r3
+ bl FUN_020724D4
+ mov r0, #0x0
+ add r1, r0, #0x0
+ bl FUN_02017FE4
+ mov r0, #0x4
+ mov r1, #0x0
+ bl FUN_02017FE4
+ add sp, #0x14
+ pop {r4-r5, pc}
+ .balign 4
+_0206FE6C: .word 0x000004A4
+_0206FE70: .word 0x000005A4
+
+ thumb_func_start FUN_0206FE74
+FUN_0206FE74: ; 0x0206FE74
+ push {r3-r7, lr}
+ ldr r1, _0206FF50 ; =0x00000B38
+ mov r2, #0xc
+ add r4, r0, #0x0
+ bl FUN_02006268
+ ldr r2, _0206FF50 ; =0x00000B38
+ mov r1, #0x0
+ add r6, r0, #0x0
+ blx Call_FillMemWithValue
+ add r0, r4, #0x0
+ bl FUN_0200628C
+ ldr r1, _0206FF54 ; =0x000005A4
+ str r0, [r6, r1]
+ mov r0, #0xc
+ bl FUN_02016B94
+ str r0, [r6, #0x0]
+ ldr r0, _0206FF54 ; =0x000005A4
+ ldr r1, [r6, r0]
+ add r0, r1, #0x0
+ add r0, #0x20
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x2
+ bne _0206FEBC
+ ldr r0, [r1, #0x14]
+ cmp r0, #0x0
+ beq _0206FEBC
+ mov r0, #0xc
+ bl FUN_0206BB5C
+ ldr r1, _0206FF58 ; =0x00000B34
+ str r0, [r6, r1]
+ b _0206FEC2
+_0206FEBC:
+ ldr r0, _0206FF58 ; =0x00000B34
+ mov r1, #0x0
+ str r1, [r6, r0]
+_0206FEC2:
+ ldr r2, _0206FF5C ; =0x00000192
+ mov r0, #0x0
+ mov r1, #0x1a
+ mov r3, #0xc
+ bl FUN_0200A86C
+ ldr r1, _0206FF60 ; =0x0000069C
+ mov r2, #0x0
+ str r0, [r6, r1]
+ mov r0, #0xf
+ mov r1, #0xe
+ mov r3, #0xc
+ bl FUN_0200B870
+ ldr r1, _0206FF64 ; =0x00000698
+ str r0, [r6, r1]
+ mov r0, #0xc
+ bl FUN_0200AA80
+ mov r1, #0x6a
+ lsl r1, r1, #0x4
+ add r7, r1, #0x0
+ str r0, [r6, r1]
+ mov r4, #0x0
+ add r5, r6, #0x0
+ add r7, #0x60
+_0206FEF6:
+ mov r0, #0xb
+ mov r1, #0xc
+ bl FUN_020219F4
+ str r0, [r5, r7]
+ add r4, r4, #0x1
+ add r5, #0x2c
+ cmp r4, #0x6
+ blo _0206FEF6
+ mov r0, #0x1
+ lsl r0, r0, #0x8
+ mov r1, #0xc
+ bl FUN_020219F4
+ ldr r1, _0206FF68 ; =0x000006A4
+ str r0, [r6, r1]
+ mov r0, #0x1
+ lsl r0, r0, #0x8
+ mov r1, #0xc
+ bl FUN_020219F4
+ ldr r1, _0206FF6C ; =0x000006A8
+ mov r5, #0x0
+ str r0, [r6, r1]
+ add r4, r6, #0x0
+ add r7, r1, #0x4
+_0206FF2A:
+ mov r0, #0x20
+ mov r1, #0xc
+ bl FUN_020219F4
+ str r0, [r4, r7]
+ add r5, r5, #0x1
+ add r4, r4, #0x4
+ cmp r5, #0x13
+ blo _0206FF2A
+ ldr r0, _0206FF54 ; =0x000005A4
+ ldr r0, [r6, r0]
+ add r0, #0x22
+ ldrb r1, [r0, #0x0]
+ ldr r0, _0206FF70 ; =0x00000B25
+ strb r1, [r6, r0]
+ add r0, r0, #0x1
+ strb r1, [r6, r0]
+ add r0, r6, #0x0
+ pop {r3-r7, pc}
+ .balign 4
+_0206FF50: .word 0x00000B38
+_0206FF54: .word 0x000005A4
+_0206FF58: .word 0x00000B34
+_0206FF5C: .word 0x00000192
+_0206FF60: .word 0x0000069C
+_0206FF64: .word 0x00000698
+_0206FF68: .word 0x000006A4
+_0206FF6C: .word 0x000006A8
+_0206FF70: .word 0x00000B25
+
+ thumb_func_start FUN_0206FF74
+FUN_0206FF74: ; 0x0206FF74
+ push {r3-r4}
+ ldr r2, _0206FFAC ; =0x000005A4
+ mov r3, #0x80
+ ldr r1, [r0, r2]
+ add r1, #0x20
+ ldrb r1, [r1, #0x0]
+ tst r1, r3
+ beq _0206FF9E
+ ldr r1, _0206FFB0 ; =0x00000B23
+ ldrb r4, [r0, r1]
+ orr r4, r3
+ strb r4, [r0, r1]
+ ldr r1, [r0, r2]
+ add r0, r1, #0x0
+ add r0, #0x20
+ ldrb r0, [r0, #0x0]
+ add r1, #0x20
+ eor r0, r3
+ strb r0, [r1, #0x0]
+ pop {r3-r4}
+ bx lr
+_0206FF9E:
+ ldr r2, _0206FFB0 ; =0x00000B23
+ mov r1, #0x80
+ ldrb r3, [r0, r2]
+ bic r3, r1
+ strb r3, [r0, r2]
+ pop {r3-r4}
+ bx lr
+ .balign 4
+_0206FFAC: .word 0x000005A4
+_0206FFB0: .word 0x00000B23
+
+ thumb_func_start FUN_0206FFB4
+FUN_0206FFB4: ; 0x0206FFB4
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ ldr r0, _02070064 ; =0x000005A4
+ mov r4, #0x3
+ ldr r1, [r5, r0]
+ add r0, r1, #0x0
+ add r0, #0x21
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x2
+ bne _0206FFD0
+ ldr r1, _02070068 ; =0x020F95CC
+ ldr r0, _0207006C ; =0x00000808
+ str r1, [r5, r0]
+ b _0206FFEA
+_0206FFD0:
+ add r1, #0x20
+ ldrb r0, [r1, #0x0]
+ cmp r0, #0x2
+ beq _0206FFDC
+ cmp r0, #0x11
+ bne _0206FFE4
+_0206FFDC:
+ ldr r1, _02070070 ; =0x020F960C
+ ldr r0, _0207006C ; =0x00000808
+ str r1, [r5, r0]
+ b _0206FFEA
+_0206FFE4:
+ ldr r1, _02070074 ; =0x020F958C
+ ldr r0, _0207006C ; =0x00000808
+ str r1, [r5, r0]
+_0206FFEA:
+ ldr r0, _02070064 ; =0x000005A4
+ ldr r1, [r5, r0]
+ add r1, #0x20
+ ldrb r1, [r1, #0x0]
+ cmp r1, #0x2
+ beq _0207003C
+ cmp r1, #0x11
+ beq _0207003C
+ add r0, #0x2c
+ ldr r0, [r5, r0]
+ mov r1, #0x0
+ bl FUN_020200A0
+ ldr r0, _02070078 ; =0x000005D4
+ mov r1, #0x0
+ ldr r0, [r5, r0]
+ bl FUN_02020130
+ ldr r0, _02070078 ; =0x000005D4
+ add r1, sp, #0x0
+ ldr r0, [r5, r0]
+ add r1, #0x2
+ add r2, sp, #0x0
+ bl FUN_0200C75C
+ ldr r0, _02070078 ; =0x000005D4
+ add r3, sp, #0x0
+ mov r2, #0x0
+ ldrsh r2, [r3, r2]
+ mov r1, #0x2
+ ldrsh r1, [r3, r1]
+ sub r2, #0x8
+ lsl r2, r2, #0x10
+ ldr r0, [r5, r0]
+ asr r2, r2, #0x10
+ bl FUN_0200C6E4
+ mov r0, #0x1
+ eor r0, r4
+ lsl r0, r0, #0x18
+ lsr r4, r0, #0x18
+_0207003C:
+ ldr r0, _02070064 ; =0x000005A4
+ ldr r1, [r5, r0]
+ add r1, #0x20
+ ldrb r1, [r1, #0x0]
+ cmp r1, #0x4
+ bne _0207005A
+ add r0, #0x30
+ ldr r0, [r5, r0]
+ mov r1, #0x0
+ bl FUN_020200A0
+ mov r0, #0x2
+ eor r0, r4
+ lsl r0, r0, #0x18
+ lsr r4, r0, #0x18
+_0207005A:
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_02073094
+ pop {r3-r5, pc}
+ .balign 4
+_02070064: .word 0x000005A4
+_02070068: .word 0x020F95CC
+_0207006C: .word 0x00000808
+_02070070: .word 0x020F960C
+_02070074: .word 0x020F958C
+_02070078: .word 0x000005D4
+
+ thumb_func_start FUN_0207007C
+FUN_0207007C: ; 0x0207007C
+ mov r2, #0x2c
+ mul r2, r1
+ add r1, r0, r2
+ ldr r0, _02070088 ; =0x00000729
+ ldrb r0, [r1, r0]
+ bx lr
+ .balign 4
+_02070088: .word 0x00000729
+
+ thumb_func_start FUN_0207008C
+FUN_0207008C: ; 0x0207008C
+ push {r4-r7, lr}
+ sub sp, #0xc
+ str r1, [sp, #0x0]
+ add r5, r0, #0x0
+ ldr r0, [sp, #0x0]
+ mov r1, #0x2c
+ add r4, r0, #0x0
+ ldr r0, _020701D8 ; =0x00000729
+ mul r4, r1
+ add r0, r5, r0
+ mov r1, #0x0
+ str r0, [sp, #0x8]
+ strb r1, [r0, r4]
+ ldr r0, _020701DC ; =0x000005A4
+ ldr r0, [r5, r0]
+ ldr r0, [r0, #0x0]
+ bl FUN_0206B9AC
+ ldr r1, [sp, #0x0]
+ cmp r0, r1
+ bgt _020700BC
+ add sp, #0xc
+ mov r0, #0x0
+ pop {r4-r7, pc}
+_020700BC:
+ ldr r0, _020701DC ; =0x000005A4
+ ldr r0, [r5, r0]
+ ldr r0, [r0, #0x0]
+ bl FUN_0206B9B0
+ mov r1, #0x5
+ mov r2, #0x0
+ add r7, r0, #0x0
+ bl FUN_020671BC
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #0x4]
+ bne _020700DE
+ add sp, #0xc
+ mov r0, #0x0
+ pop {r4-r7, pc}
+_020700DE:
+ ldr r2, [sp, #0x0]
+ add r0, r5, #0x0
+ add r1, r7, #0x0
+ bl FUN_02072A00
+ ldr r0, [sp, #0x0]
+ mov r1, #0x2c
+ add r6, r0, #0x0
+ mul r6, r1
+ ldr r1, _020701E0 ; =0x00000704
+ ldr r0, [sp, #0x4]
+ add r2, r5, r6
+ strh r0, [r2, r1]
+ add r0, r7, #0x0
+ mov r1, #0xa2
+ mov r2, #0x0
+ bl FUN_020671BC
+ ldr r1, _020701E4 ; =0x00000706
+ add r2, r5, r6
+ strh r0, [r2, r1]
+ add r0, r7, #0x0
+ mov r1, #0xa3
+ mov r2, #0x0
+ bl FUN_020671BC
+ ldr r1, _020701E8 ; =0x00000708
+ add r2, r5, r6
+ strh r0, [r2, r1]
+ add r0, r7, #0x0
+ mov r1, #0xa0
+ mov r2, #0x0
+ bl FUN_020671BC
+ ldr r1, _020701EC ; =0x0000070A
+ add r2, r5, r6
+ strh r0, [r2, r1]
+ add r0, r7, #0x0
+ mov r1, #0x6
+ mov r2, #0x0
+ bl FUN_020671BC
+ ldr r1, _020701F0 ; =0x0000070C
+ add r2, r5, r6
+ strh r0, [r2, r1]
+ add r0, r7, #0x0
+ mov r1, #0xa1
+ mov r2, #0x0
+ bl FUN_020671BC
+ ldr r1, _020701F4 ; =0x00000712
+ add r2, r5, r6
+ strh r0, [r2, r1]
+ add r0, r7, #0x0
+ mov r1, #0x4c
+ mov r2, #0x0
+ bl FUN_020671BC
+ mov r1, #0x71
+ add r2, r5, r6
+ lsl r1, r1, #0x4
+ strb r0, [r2, r1]
+ add r0, r7, #0x0
+ mov r1, #0x70
+ mov r2, #0x0
+ bl FUN_020671BC
+ ldr r1, _020701F8 ; =0x00000711
+ add r2, r5, r6
+ strb r0, [r2, r1]
+ add r0, r7, #0x0
+ mov r1, #0xaf
+ mov r2, #0x0
+ bl FUN_020671BC
+ cmp r0, #0x1
+ ldr r0, _020701FC ; =0x0000070E
+ bne _02070184
+ add r2, r5, r0
+ ldrh r1, [r2, r4]
+ ldr r0, _02070200 ; =0xFFFFEFFF
+ and r0, r1
+ b _0207018E
+_02070184:
+ add r2, r5, r0
+ ldrh r1, [r2, r4]
+ mov r0, #0x1
+ lsl r0, r0, #0xc
+ orr r0, r1
+_0207018E:
+ strh r0, [r2, r4]
+ ldr r0, _020701FC ; =0x0000070E
+ add r6, r5, r0
+ add r0, r7, #0x0
+ bl FUN_020689E0
+ lsl r0, r0, #0x1e
+ ldrh r2, [r6, r4]
+ ldr r1, _02070204 ; =0xFFFF9FFF
+ lsr r0, r0, #0x11
+ and r1, r2
+ orr r0, r1
+ strh r0, [r6, r4]
+ ldr r0, [sp, #0x8]
+ mov r1, #0x1
+ strb r1, [r0, r4]
+ add r0, r7, #0x0
+ bl FUN_0207C2D4
+ lsl r0, r0, #0x18
+ ldrh r1, [r6, r4]
+ ldr r2, _02070208 ; =0xFFFFF000
+ lsr r0, r0, #0x18
+ and r1, r2
+ lsr r2, r2, #0x14
+ and r0, r2
+ orr r0, r1
+ strh r0, [r6, r4]
+ ldr r2, [sp, #0x0]
+ add r0, r5, #0x0
+ add r1, r7, #0x0
+ bl FUN_0207020C
+ mov r0, #0x1
+ add sp, #0xc
+ pop {r4-r7, pc}
+ nop
+_020701D8: .word 0x00000729
+_020701DC: .word 0x000005A4
+_020701E0: .word 0x00000704
+_020701E4: .word 0x00000706
+_020701E8: .word 0x00000708
+_020701EC: .word 0x0000070A
+_020701F0: .word 0x0000070C
+_020701F4: .word 0x00000712
+_020701F8: .word 0x00000711
+_020701FC: .word 0x0000070E
+_02070200: .word 0xFFFFEFFF
+_02070204: .word 0xFFFF9FFF
+_02070208: .word 0xFFFFF000
+
+ thumb_func_start FUN_0207020C
+FUN_0207020C: ; 0x0207020C
+ push {r3-r7, lr}
+ add r7, r0, #0x0
+ ldr r0, _0207029C ; =0x000005A4
+ add r5, r1, #0x0
+ ldr r1, [r7, r0]
+ add r0, r1, #0x0
+ add r0, #0x20
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0xd
+ bne _0207029A
+ mov r0, #0x2c
+ add r6, r2, #0x0
+ mul r6, r0
+ mov r0, #0x71
+ add r3, r7, r6
+ lsl r0, r0, #0x4
+ ldrb r2, [r3, r0]
+ cmp r2, #0x1
+ beq _0207023A
+ sub r0, #0xa
+ ldrh r0, [r3, r0]
+ cmp r0, #0x0
+ bne _02070248
+_0207023A:
+ ldr r0, _020702A0 ; =0x0000070E
+ add r2, r7, r0
+ ldrh r1, [r2, r6]
+ ldr r0, _020702A4 ; =0xFFFF7FFF
+ and r0, r1
+ strh r0, [r2, r6]
+ pop {r3-r7, pc}
+_02070248:
+ add r1, #0x2a
+ ldrb r1, [r1, #0x0]
+ add r0, r5, #0x0
+ bl FUN_020702A8
+ str r0, [sp, #0x0]
+ mov r4, #0x0
+_02070256:
+ add r1, r4, #0x0
+ add r0, r5, #0x0
+ add r1, #0x36
+ mov r2, #0x0
+ bl FUN_020671BC
+ cmp r0, #0x0
+ beq _0207026C
+ add r4, r4, #0x1
+ cmp r4, #0x4
+ blo _02070256
+_0207026C:
+ ldr r0, _0207029C ; =0x000005A4
+ ldr r0, [r7, r0]
+ add r0, #0x2b
+ ldrb r1, [r0, #0x0]
+ ldr r0, [sp, #0x0]
+ cmp r1, r0
+ bhi _0207028E
+ cmp r4, #0x2
+ blo _0207028E
+ ldr r0, _020702A0 ; =0x0000070E
+ add r2, r7, r0
+ ldrh r1, [r2, r6]
+ mov r0, #0x2
+ lsl r0, r0, #0xe
+ orr r0, r1
+ strh r0, [r2, r6]
+ pop {r3-r7, pc}
+_0207028E:
+ ldr r0, _020702A0 ; =0x0000070E
+ add r2, r7, r0
+ ldrh r1, [r2, r6]
+ ldr r0, _020702A4 ; =0xFFFF7FFF
+ and r0, r1
+ strh r0, [r2, r6]
+_0207029A:
+ pop {r3-r7, pc}
+ .balign 4
+_0207029C: .word 0x000005A4
+_020702A0: .word 0x0000070E
+_020702A4: .word 0xFFFF7FFF
+
+ thumb_func_start FUN_020702A8
+FUN_020702A8: ; 0x020702A8
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ cmp r1, #0x4
+ bls _020702B2
+ b _020703B6
+_020702B2:
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #0x6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_020702BE: ; jump table (using 16-bit offset)
+ .short _020702C8 - _020702BE - 2; case 0
+ .short _020702F8 - _020702BE - 2; case 1
+ .short _02070328 - _020702BE - 2; case 2
+ .short _02070358 - _020702BE - 2; case 3
+ .short _02070388 - _020702BE - 2; case 4
+_020702C8:
+ mov r1, #0x7a
+ mov r2, #0x0
+ bl FUN_020671BC
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ mov r1, #0x7b
+ mov r2, #0x0
+ bl FUN_020671BC
+ add r4, r4, r0
+ add r0, r5, #0x0
+ mov r1, #0x7c
+ mov r2, #0x0
+ bl FUN_020671BC
+ add r4, r4, r0
+ add r0, r5, #0x0
+ mov r1, #0x7d
+ mov r2, #0x0
+ bl FUN_020671BC
+ add r4, r4, r0
+ b _020703B6
+_020702F8:
+ mov r1, #0x7e
+ mov r2, #0x0
+ bl FUN_020671BC
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ mov r1, #0x7f
+ mov r2, #0x0
+ bl FUN_020671BC
+ add r4, r4, r0
+ add r0, r5, #0x0
+ mov r1, #0x80
+ mov r2, #0x0
+ bl FUN_020671BC
+ add r4, r4, r0
+ add r0, r5, #0x0
+ mov r1, #0x81
+ mov r2, #0x0
+ bl FUN_020671BC
+ add r4, r4, r0
+ b _020703B6
+_02070328:
+ mov r1, #0x82
+ mov r2, #0x0
+ bl FUN_020671BC
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ mov r1, #0x83
+ mov r2, #0x0
+ bl FUN_020671BC
+ add r4, r4, r0
+ add r0, r5, #0x0
+ mov r1, #0x84
+ mov r2, #0x0
+ bl FUN_020671BC
+ add r4, r4, r0
+ add r0, r5, #0x0
+ mov r1, #0x85
+ mov r2, #0x0
+ bl FUN_020671BC
+ add r4, r4, r0
+ b _020703B6
+_02070358:
+ mov r1, #0x86
+ mov r2, #0x0
+ bl FUN_020671BC
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ mov r1, #0x87
+ mov r2, #0x0
+ bl FUN_020671BC
+ add r4, r4, r0
+ add r0, r5, #0x0
+ mov r1, #0x88
+ mov r2, #0x0
+ bl FUN_020671BC
+ add r4, r4, r0
+ add r0, r5, #0x0
+ mov r1, #0x89
+ mov r2, #0x0
+ bl FUN_020671BC
+ add r4, r4, r0
+ b _020703B6
+_02070388:
+ mov r1, #0x8a
+ mov r2, #0x0
+ bl FUN_020671BC
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ mov r1, #0x8b
+ mov r2, #0x0
+ bl FUN_020671BC
+ add r4, r4, r0
+ add r0, r5, #0x0
+ mov r1, #0x8c
+ mov r2, #0x0
+ bl FUN_020671BC
+ add r4, r4, r0
+ add r0, r5, #0x0
+ mov r1, #0x8d
+ mov r2, #0x0
+ bl FUN_020671BC
+ add r4, r4, r0
+_020703B6:
+ add r0, r4, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_020703BC
+FUN_020703BC: ; 0x020703BC
+ mov r1, #0x39
+ lsl r1, r1, #0x4
+ add r0, r0, r1
+ bx lr
+
+ thumb_func_start FUN_020703C4
+FUN_020703C4: ; 0x020703C4
+ push {r4-r7, lr}
+ sub sp, #0x1c
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ add r6, r2, #0x0
+ add r7, r3, #0x0
+ cmp r4, #0x0
+ beq _020703E4
+ ldr r0, _02070474 ; =0x000005A4
+ ldr r0, [r5, r0]
+ add r0, #0x21
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x0
+ beq _020703EC
+ cmp r4, #0x1
+ bne _020703EC
+_020703E4:
+ mov r0, #0x99
+ lsl r0, r0, #0x2
+ add r0, r5, r0
+ b _020703F2
+_020703EC:
+ mov r0, #0xc9
+ lsl r0, r0, #0x2
+ add r0, r5, r0
+_020703F2:
+ mov r1, #0x2c
+ mul r1, r4
+ ldr r2, _02070478 ; =0x00000714
+ add r1, r5, r1
+ strb r6, [r1, r2]
+ add r2, r2, #0x1
+ strb r7, [r1, r2]
+ mov r2, #0x10
+ str r2, [sp, #0x0]
+ mov r1, #0x6
+ str r1, [sp, #0x4]
+ str r0, [sp, #0x8]
+ mov r0, #0x0
+ str r0, [sp, #0xc]
+ str r0, [sp, #0x10]
+ str r2, [sp, #0x14]
+ str r1, [sp, #0x18]
+ ldr r0, [r5, #0x0]
+ mov r1, #0x2
+ add r2, r6, #0x0
+ add r3, r7, #0x0
+ bl FUN_02018170
+ add r0, sp, #0x20
+ ldrb r0, [r0, #0x10]
+ cmp r0, #0x0
+ bne _0207044C
+ add r0, r7, #0x3
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x0]
+ mov r0, #0x9
+ str r0, [sp, #0x4]
+ mov r0, #0x1
+ str r0, [sp, #0x8]
+ mov r0, #0x10
+ add r3, r6, #0x6
+ str r0, [sp, #0xc]
+ lsl r3, r3, #0x18
+ ldr r0, [r5, #0x0]
+ mov r1, #0x2
+ mov r2, #0x17
+ lsr r3, r3, #0x18
+ bl FUN_02018540
+_0207044C:
+ mov r0, #0x10
+ str r0, [sp, #0x0]
+ mov r0, #0x6
+ str r0, [sp, #0x4]
+ add r0, r4, #0x3
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x8]
+ ldr r0, [r5, #0x0]
+ mov r1, #0x2
+ add r2, r6, #0x0
+ add r3, r7, #0x0
+ bl FUN_020186B4
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_020709FC
+ add sp, #0x1c
+ pop {r4-r7, pc}
+ .balign 4
+_02070474: .word 0x000005A4
+_02070478: .word 0x00000714
+
+ thumb_func_start FUN_0207047C
+FUN_0207047C: ; 0x0207047C
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r0, _020704E4 ; =0x000005A4
+ ldr r2, [r4, r0]
+ add r0, r2, #0x0
+ add r0, #0x21
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x2
+ bne _02070492
+ ldr r1, _020704E8 ; =0x020F9694
+ b _02070494
+_02070492:
+ ldr r1, _020704EC ; =0x020F964C
+_02070494:
+ add r2, #0x20
+ ldrb r0, [r2, #0x0]
+ cmp r0, #0x10
+ bne _020704A4
+ add r0, r4, #0x0
+ bl FUN_02070600
+ b _020704D2
+_020704A4:
+ cmp r0, #0x6
+ bne _020704B0
+ add r0, r4, #0x0
+ bl FUN_020706E0
+ b _020704D2
+_020704B0:
+ cmp r0, #0xd
+ bne _020704BC
+ add r0, r4, #0x0
+ bl FUN_020707C0
+ b _020704D2
+_020704BC:
+ cmp r0, #0x2
+ beq _020704C4
+ cmp r0, #0x11
+ bne _020704CC
+_020704C4:
+ add r0, r4, #0x0
+ bl FUN_020708A0
+ b _020704D2
+_020704CC:
+ add r0, r4, #0x0
+ bl FUN_020704F0
+_020704D2:
+ ldr r0, [r4, #0x0]
+ mov r1, #0x2
+ bl FUN_0201AC68
+ ldr r0, [r4, #0x0]
+ mov r1, #0x4
+ bl FUN_0201AC68
+ pop {r4, pc}
+ .balign 4
+_020704E4: .word 0x000005A4
+_020704E8: .word 0x020F9694
+_020704EC: .word 0x020F964C
+
+ thumb_func_start FUN_020704F0
+FUN_020704F0: ; 0x020704F0
+ push {r3-r7, lr}
+ sub sp, #0x8
+ add r5, r0, #0x0
+ add r6, r1, #0x0
+ mov r4, #0x0
+_020704FA:
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_0207008C
+ cmp r0, #0x1
+ bne _020705D4
+ mov r0, #0x2c
+ mul r0, r4
+ add r1, r5, r0
+ mov r0, #0x71
+ lsl r0, r0, #0x4
+ ldrb r0, [r1, r0]
+ str r1, [sp, #0x4]
+ cmp r0, #0x1
+ bne _0207053A
+ mov r0, #0xc
+ add r2, r4, #0x0
+ mul r2, r0
+ mov r0, #0x0
+ str r0, [sp, #0x0]
+ add r3, r6, r2
+ ldrh r2, [r6, r2]
+ ldrh r3, [r3, #0x2]
+ add r0, r5, #0x0
+ lsl r2, r2, #0x18
+ lsl r3, r3, #0x18
+ add r1, r4, #0x0
+ lsr r2, r2, #0x18
+ lsr r3, r3, #0x18
+ bl FUN_020703C4
+ b _0207055A
+_0207053A:
+ mov r0, #0xc
+ add r2, r4, #0x0
+ mul r2, r0
+ mov r0, #0x1
+ str r0, [sp, #0x0]
+ add r3, r6, r2
+ ldrh r2, [r6, r2]
+ ldrh r3, [r3, #0x2]
+ add r0, r5, #0x0
+ lsl r2, r2, #0x18
+ lsl r3, r3, #0x18
+ add r1, r4, #0x0
+ lsr r2, r2, #0x18
+ lsr r3, r3, #0x18
+ bl FUN_020703C4
+_0207055A:
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_02072D1C
+ mov r0, #0xc
+ mul r0, r4
+ add r7, r6, r0
+ ldrh r2, [r7, #0x4]
+ ldrh r3, [r7, #0x6]
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_020737D0
+ ldrh r2, [r7, #0x8]
+ ldrh r3, [r7, #0xa]
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_020739E4
+ ldr r3, [sp, #0x4]
+ ldr r2, _020705F8 ; =0x0000070C
+ add r0, r5, #0x0
+ ldrh r2, [r3, r2]
+ add r1, r4, #0x0
+ bl FUN_02073A78
+ mov r2, #0x4
+ mov r3, #0x6
+ ldrsh r2, [r7, r2]
+ ldrsh r3, [r7, r3]
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_02073AD8
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_02073B3C
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_02073B0C
+ mov r2, #0x2c
+ mul r2, r4
+ add r3, r5, r2
+ ldr r2, _020705FC ; =0x0000070E
+ add r0, r5, #0x0
+ ldrh r2, [r3, r2]
+ add r1, r4, #0x0
+ lsl r2, r2, #0x14
+ lsr r2, r2, #0x14
+ lsl r2, r2, #0x18
+ lsr r2, r2, #0x18
+ bl FUN_02073A4C
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ mov r2, #0x0
+ bl FUN_020717E8
+ b _020705EA
+_020705D4:
+ mov r0, #0xc
+ add r2, r4, #0x0
+ mul r2, r0
+ add r7, r6, r2
+ mov r3, #0x2
+ ldrsh r2, [r6, r2]
+ ldrsh r3, [r7, r3]
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_02070988
+_020705EA:
+ add r0, r4, #0x1
+ lsl r0, r0, #0x18
+ lsr r4, r0, #0x18
+ cmp r4, #0x6
+ blo _020704FA
+ add sp, #0x8
+ pop {r3-r7, pc}
+ .balign 4
+_020705F8: .word 0x0000070C
+_020705FC: .word 0x0000070E
+
+ thumb_func_start FUN_02070600
+FUN_02070600: ; 0x02070600
+ push {r3-r7, lr}
+ sub sp, #0x8
+ add r5, r0, #0x0
+ str r1, [sp, #0x4]
+ mov r4, #0x0
+_0207060A:
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_0207008C
+ cmp r0, #0x1
+ bne _020706B0
+ mov r0, #0xc
+ add r2, r4, #0x0
+ mul r2, r0
+ ldr r0, [sp, #0x4]
+ ldr r3, [sp, #0x4]
+ add r6, r0, r2
+ mov r0, #0x0
+ str r0, [sp, #0x0]
+ ldrh r2, [r3, r2]
+ ldrh r3, [r6, #0x2]
+ add r0, r5, #0x0
+ lsl r2, r2, #0x18
+ lsl r3, r3, #0x18
+ add r1, r4, #0x0
+ lsr r2, r2, #0x18
+ lsr r3, r3, #0x18
+ bl FUN_020703C4
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_02072E4C
+ ldrh r2, [r6, #0x4]
+ ldrh r3, [r6, #0x6]
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_020737D0
+ ldrh r2, [r6, #0x8]
+ ldrh r3, [r6, #0xa]
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_020739E4
+ mov r0, #0x2c
+ add r7, r4, #0x0
+ mul r7, r0
+ ldr r2, _020706D8 ; =0x0000070C
+ add r3, r5, r7
+ ldrh r2, [r3, r2]
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_02073A78
+ mov r2, #0x4
+ mov r3, #0x6
+ ldrsh r2, [r6, r2]
+ ldrsh r3, [r6, r3]
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_02073AD8
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_02073B3C
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_02073B0C
+ ldr r2, _020706DC ; =0x0000070E
+ add r3, r5, r7
+ ldrh r2, [r3, r2]
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ lsl r2, r2, #0x14
+ lsr r2, r2, #0x14
+ lsl r2, r2, #0x18
+ lsr r2, r2, #0x18
+ bl FUN_02073A4C
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ mov r2, #0x0
+ bl FUN_020717E8
+ b _020706CA
+_020706B0:
+ mov r0, #0xc
+ add r2, r4, #0x0
+ mul r2, r0
+ ldr r0, [sp, #0x4]
+ ldr r6, [sp, #0x4]
+ add r3, r0, r2
+ ldrsh r2, [r6, r2]
+ mov r6, #0x2
+ ldrsh r3, [r3, r6]
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_02070988
+_020706CA:
+ add r0, r4, #0x1
+ lsl r0, r0, #0x18
+ lsr r4, r0, #0x18
+ cmp r4, #0x6
+ blo _0207060A
+ add sp, #0x8
+ pop {r3-r7, pc}
+ .balign 4
+_020706D8: .word 0x0000070C
+_020706DC: .word 0x0000070E
+
+ thumb_func_start FUN_020706E0
+FUN_020706E0: ; 0x020706E0
+ push {r3-r7, lr}
+ sub sp, #0x8
+ add r5, r0, #0x0
+ str r1, [sp, #0x4]
+ mov r4, #0x0
+_020706EA:
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_0207008C
+ cmp r0, #0x1
+ bne _02070790
+ mov r0, #0xc
+ add r2, r4, #0x0
+ mul r2, r0
+ ldr r0, [sp, #0x4]
+ ldr r3, [sp, #0x4]
+ add r6, r0, r2
+ mov r0, #0x0
+ str r0, [sp, #0x0]
+ ldrh r2, [r3, r2]
+ ldrh r3, [r6, #0x2]
+ add r0, r5, #0x0
+ lsl r2, r2, #0x18
+ lsl r3, r3, #0x18
+ add r1, r4, #0x0
+ lsr r2, r2, #0x18
+ lsr r3, r3, #0x18
+ bl FUN_020703C4
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_02072EE4
+ ldrh r2, [r6, #0x4]
+ ldrh r3, [r6, #0x6]
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_020737D0
+ ldrh r2, [r6, #0x8]
+ ldrh r3, [r6, #0xa]
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_020739E4
+ mov r0, #0x2c
+ add r7, r4, #0x0
+ mul r7, r0
+ ldr r2, _020707B8 ; =0x0000070C
+ add r3, r5, r7
+ ldrh r2, [r3, r2]
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_02073A78
+ mov r2, #0x4
+ mov r3, #0x6
+ ldrsh r2, [r6, r2]
+ ldrsh r3, [r6, r3]
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_02073AD8
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_02073B3C
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_02073B0C
+ ldr r2, _020707BC ; =0x0000070E
+ add r3, r5, r7
+ ldrh r2, [r3, r2]
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ lsl r2, r2, #0x14
+ lsr r2, r2, #0x14
+ lsl r2, r2, #0x18
+ lsr r2, r2, #0x18
+ bl FUN_02073A4C
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ mov r2, #0x0
+ bl FUN_020717E8
+ b _020707AA
+_02070790:
+ mov r0, #0xc
+ add r2, r4, #0x0
+ mul r2, r0
+ ldr r0, [sp, #0x4]
+ ldr r6, [sp, #0x4]
+ add r3, r0, r2
+ ldrsh r2, [r6, r2]
+ mov r6, #0x2
+ ldrsh r3, [r3, r6]
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_02070988
+_020707AA:
+ add r0, r4, #0x1
+ lsl r0, r0, #0x18
+ lsr r4, r0, #0x18
+ cmp r4, #0x6
+ blo _020706EA
+ add sp, #0x8
+ pop {r3-r7, pc}
+ .balign 4
+_020707B8: .word 0x0000070C
+_020707BC: .word 0x0000070E
+
+ thumb_func_start FUN_020707C0
+FUN_020707C0: ; 0x020707C0
+ push {r3-r7, lr}
+ sub sp, #0x8
+ add r5, r0, #0x0
+ str r1, [sp, #0x4]
+ mov r4, #0x0
+_020707CA:
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_0207008C
+ cmp r0, #0x1
+ bne _02070870
+ mov r0, #0xc
+ add r2, r4, #0x0
+ mul r2, r0
+ ldr r0, [sp, #0x4]
+ ldr r3, [sp, #0x4]
+ add r6, r0, r2
+ mov r0, #0x0
+ str r0, [sp, #0x0]
+ ldrh r2, [r3, r2]
+ ldrh r3, [r6, #0x2]
+ add r0, r5, #0x0
+ lsl r2, r2, #0x18
+ lsl r3, r3, #0x18
+ add r1, r4, #0x0
+ lsr r2, r2, #0x18
+ lsr r3, r3, #0x18
+ bl FUN_020703C4
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_02072F78
+ ldrh r2, [r6, #0x4]
+ ldrh r3, [r6, #0x6]
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_020737D0
+ ldrh r2, [r6, #0x8]
+ ldrh r3, [r6, #0xa]
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_020739E4
+ mov r0, #0x2c
+ add r7, r4, #0x0
+ mul r7, r0
+ ldr r2, _02070898 ; =0x0000070C
+ add r3, r5, r7
+ ldrh r2, [r3, r2]
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_02073A78
+ mov r2, #0x4
+ mov r3, #0x6
+ ldrsh r2, [r6, r2]
+ ldrsh r3, [r6, r3]
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_02073AD8
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_02073B3C
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_02073B0C
+ ldr r2, _0207089C ; =0x0000070E
+ add r3, r5, r7
+ ldrh r2, [r3, r2]
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ lsl r2, r2, #0x14
+ lsr r2, r2, #0x14
+ lsl r2, r2, #0x18
+ lsr r2, r2, #0x18
+ bl FUN_02073A4C
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ mov r2, #0x0
+ bl FUN_020717E8
+ b _0207088A
+_02070870:
+ mov r0, #0xc
+ add r2, r4, #0x0
+ mul r2, r0
+ ldr r0, [sp, #0x4]
+ ldr r6, [sp, #0x4]
+ add r3, r0, r2
+ ldrsh r2, [r6, r2]
+ mov r6, #0x2
+ ldrsh r3, [r3, r6]
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_02070988
+_0207088A:
+ add r0, r4, #0x1
+ lsl r0, r0, #0x18
+ lsr r4, r0, #0x18
+ cmp r4, #0x6
+ blo _020707CA
+ add sp, #0x8
+ pop {r3-r7, pc}
+ .balign 4
+_02070898: .word 0x0000070C
+_0207089C: .word 0x0000070E
+
+ thumb_func_start FUN_020708A0
+FUN_020708A0: ; 0x020708A0
+ push {r3-r7, lr}
+ sub sp, #0x8
+ add r5, r0, #0x0
+ str r1, [sp, #0x4]
+ mov r4, #0x0
+_020708AA:
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_0207008C
+ cmp r0, #0x1
+ bne _02070958
+ mov r0, #0xc
+ add r2, r4, #0x0
+ mul r2, r0
+ ldr r0, [sp, #0x4]
+ ldr r3, [sp, #0x4]
+ add r6, r0, r2
+ mov r0, #0x0
+ str r0, [sp, #0x0]
+ ldrh r2, [r3, r2]
+ ldrh r3, [r6, #0x2]
+ add r0, r5, #0x0
+ lsl r2, r2, #0x18
+ lsl r3, r3, #0x18
+ add r1, r4, #0x0
+ lsr r2, r2, #0x18
+ lsr r3, r3, #0x18
+ bl FUN_020703C4
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_02072FDC
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_02073024
+ ldrh r2, [r6, #0x4]
+ ldrh r3, [r6, #0x6]
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_020737D0
+ ldrh r2, [r6, #0x8]
+ ldrh r3, [r6, #0xa]
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_020739E4
+ mov r0, #0x2c
+ add r7, r4, #0x0
+ mul r7, r0
+ ldr r2, _02070980 ; =0x0000070C
+ add r3, r5, r7
+ ldrh r2, [r3, r2]
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_02073A78
+ mov r2, #0x4
+ mov r3, #0x6
+ ldrsh r2, [r6, r2]
+ ldrsh r3, [r6, r3]
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_02073AD8
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_02073B3C
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_02073B0C
+ ldr r2, _02070984 ; =0x0000070E
+ add r3, r5, r7
+ ldrh r2, [r3, r2]
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ lsl r2, r2, #0x14
+ lsr r2, r2, #0x14
+ lsl r2, r2, #0x18
+ lsr r2, r2, #0x18
+ bl FUN_02073A4C
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ mov r2, #0x0
+ bl FUN_020717E8
+ b _02070972
+_02070958:
+ mov r0, #0xc
+ add r2, r4, #0x0
+ mul r2, r0
+ ldr r0, [sp, #0x4]
+ ldr r6, [sp, #0x4]
+ add r3, r0, r2
+ ldrsh r2, [r6, r2]
+ mov r6, #0x2
+ ldrsh r3, [r3, r6]
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_02070988
+_02070972:
+ add r0, r4, #0x1
+ lsl r0, r0, #0x18
+ lsr r4, r0, #0x18
+ cmp r4, #0x6
+ blo _020708AA
+ add sp, #0x8
+ pop {r3-r7, pc}
+ .balign 4
+_02070980: .word 0x0000070C
+_02070984: .word 0x0000070E
+
+ thumb_func_start FUN_02070988
+FUN_02070988: ; 0x02070988
+ push {r4-r7, lr}
+ sub sp, #0x1c
+ add r7, r1, #0x0
+ add r4, r2, #0x0
+ mov r1, #0x10
+ mov r2, #0xf9
+ add r5, r0, #0x0
+ lsl r2, r2, #0x2
+ add r6, r3, #0x0
+ lsl r3, r6, #0x18
+ str r1, [sp, #0x0]
+ mov r0, #0x6
+ str r0, [sp, #0x4]
+ add r2, r5, r2
+ str r2, [sp, #0x8]
+ mov r2, #0x0
+ str r2, [sp, #0xc]
+ str r2, [sp, #0x10]
+ str r1, [sp, #0x14]
+ str r0, [sp, #0x18]
+ lsl r2, r4, #0x18
+ ldr r0, [r5, #0x0]
+ mov r1, #0x2
+ lsr r2, r2, #0x18
+ lsr r3, r3, #0x18
+ bl FUN_02018170
+ mov r0, #0x10
+ str r0, [sp, #0x0]
+ mov r0, #0x6
+ str r0, [sp, #0x4]
+ mov r0, #0x1
+ str r0, [sp, #0x8]
+ lsl r2, r4, #0x18
+ lsl r3, r6, #0x18
+ ldr r0, [r5, #0x0]
+ mov r1, #0x2
+ lsr r2, r2, #0x18
+ lsr r3, r3, #0x18
+ bl FUN_020186B4
+ add r0, r5, #0x0
+ add r1, r7, #0x0
+ mov r2, #0x7
+ bl FUN_02073A4C
+ add r0, r5, #0x0
+ add r1, r7, #0x0
+ mov r2, #0x0
+ bl FUN_02073A78
+ add r0, r5, #0x0
+ add r1, r7, #0x0
+ bl FUN_02073B3C
+ add sp, #0x1c
+ pop {r4-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_020709FC
+FUN_020709FC: ; 0x020709FC
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ ldr r0, _02070A78 ; =0x000005A4
+ add r6, r1, #0x0
+ ldr r0, [r5, r0]
+ ldr r0, [r0, #0x0]
+ bl FUN_0206B9B0
+ ldr r1, _02070A7C ; =0x00000B23
+ ldrb r2, [r5, r1]
+ lsl r3, r2, #0x19
+ lsr r3, r3, #0x1f
+ cmp r3, #0x1
+ bne _02070A2C
+ add r1, r1, #0x2
+ ldrb r1, [r5, r1]
+ cmp r6, r1
+ beq _02070A28
+ lsl r1, r2, #0x1a
+ lsr r1, r1, #0x1a
+ cmp r6, r1
+ bne _02070A2C
+_02070A28:
+ mov r4, #0x7
+ b _02070A60
+_02070A2C:
+ ldr r1, _02070A80 ; =0x00000B25
+ ldrb r1, [r5, r1]
+ cmp r6, r1
+ bne _02070A38
+ mov r4, #0x4
+ b _02070A3A
+_02070A38:
+ mov r4, #0x0
+_02070A3A:
+ mov r1, #0xa2
+ mov r2, #0x0
+ bl FUN_020671BC
+ cmp r0, #0x0
+ bne _02070A4E
+ add r0, r4, #0x2
+ lsl r0, r0, #0x18
+ lsr r4, r0, #0x18
+ b _02070A60
+_02070A4E:
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ bl FUN_02070A88
+ cmp r0, #0x1
+ bne _02070A60
+ add r0, r4, #0x1
+ lsl r0, r0, #0x18
+ lsr r4, r0, #0x18
+_02070A60:
+ ldr r1, _02070A84 ; =0x000004A4
+ add r3, r6, #0x3
+ add r2, r5, r1
+ lsl r1, r4, #0x5
+ lsl r3, r3, #0x15
+ add r1, r2, r1
+ mov r0, #0x2
+ mov r2, #0x10
+ lsr r3, r3, #0x10
+ bl FUN_02017FB4
+ pop {r4-r6, pc}
+ .balign 4
+_02070A78: .word 0x000005A4
+_02070A7C: .word 0x00000B23
+_02070A80: .word 0x00000B25
+_02070A84: .word 0x000004A4
+
+ thumb_func_start FUN_02070A88
+FUN_02070A88: ; 0x02070A88
+ ldr r2, _02070AA0 ; =0x000005A4
+ ldr r0, [r0, r2]
+ add r0, #0x21
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x2
+ bne _02070A9A
+ mov r0, #0x1
+ tst r1, r0
+ bne _02070A9C
+_02070A9A:
+ mov r0, #0x0
+_02070A9C:
+ bx lr
+ nop
+_02070AA0: .word 0x000005A4
+
+ thumb_func_start FUN_02070AA4
+FUN_02070AA4: ; 0x02070AA4
+ push {r4, lr}
+ sub sp, #0x10
+ add r4, r0, #0x0
+ mov r3, #0x0
+ ldr r0, _02070AF4 ; =0x00000B25
+ str r3, [sp, #0x0]
+ ldrb r0, [r4, r0]
+ add r1, sp, #0xc
+ add r1, #0x1
+ str r0, [sp, #0x4]
+ mov r0, #0x4
+ str r0, [sp, #0x8]
+ ldr r0, _02070AF8 ; =0x00000808
+ add r2, sp, #0xc
+ ldr r0, [r4, r0]
+ bl FUN_0201C638
+ ldr r0, _02070AFC ; =0x000005A4
+ ldr r1, _02070AF4 ; =0x00000B25
+ ldr r0, [r4, r0]
+ ldrb r1, [r4, r1]
+ add r0, #0x21
+ ldrb r0, [r0, #0x0]
+ bl FUN_020714BC
+ add r1, r0, #0x0
+ ldr r0, _02070B00 ; =0x000005C8
+ ldr r0, [r4, r0]
+ bl FUN_02020130
+ ldr r0, _02070B00 ; =0x000005C8
+ add r2, sp, #0xc
+ ldrb r1, [r2, #0x1]
+ ldrb r2, [r2, #0x0]
+ ldr r0, [r4, r0]
+ bl FUN_0200C6E4
+ add sp, #0x10
+ pop {r4, pc}
+ nop
+_02070AF4: .word 0x00000B25
+_02070AF8: .word 0x00000808
+_02070AFC: .word 0x000005A4
+_02070B00: .word 0x000005C8
+
+ thumb_func_start FUN_02070B04
+FUN_02070B04: ; 0x02070B04
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl FUN_02070B28
+ cmp r0, #0x1
+ bne _02070B14
+ mov r0, #0x1
+ pop {r4, pc}
+_02070B14:
+ add r0, r4, #0x0
+ bl FUN_02070D90
+ cmp r0, #0x1
+ bne _02070B22
+ mov r0, #0x2
+ pop {r4, pc}
+_02070B22:
+ mov r0, #0x5
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02070B28
+FUN_02070B28: ; 0x02070B28
+ push {r3-r6, lr}
+ sub sp, #0x4
+ add r5, r0, #0x0
+ ldr r0, _02070CC0 ; =0x021C48B8
+ mov r1, #0x40
+ ldr r0, [r0, #0x4c]
+ mov r3, #0x4
+ tst r1, r0
+ beq _02070B3E
+ mov r3, #0x0
+ b _02070B5A
+_02070B3E:
+ mov r1, #0x80
+ tst r1, r0
+ beq _02070B48
+ mov r3, #0x1
+ b _02070B5A
+_02070B48:
+ mov r1, #0x20
+ tst r1, r0
+ beq _02070B52
+ mov r3, #0x2
+ b _02070B5A
+_02070B52:
+ mov r1, #0x10
+ tst r0, r1
+ beq _02070B5A
+ mov r3, #0x3
+_02070B5A:
+ cmp r3, #0x4
+ bne _02070B64
+ add sp, #0x4
+ mov r0, #0x0
+ pop {r3-r6, pc}
+_02070B64:
+ ldr r4, _02070CC4 ; =0x00000B25
+ ldrb r0, [r5, r4]
+ cmp r0, #0x6
+ bne _02070BA0
+ cmp r3, #0x0
+ add r1, sp, #0x0
+ bne _02070B92
+ add r4, r4, #0x1
+ ldrb r6, [r5, r4]
+ mov r4, #0x1
+ ldr r3, _02070CC8 ; =0x020F9468
+ and r4, r6
+ add r6, r4, #0x2
+ mov r4, #0x6
+ mul r4, r6
+ add r0, r5, #0x0
+ add r1, #0x1
+ add r2, sp, #0x0
+ add r3, r3, r4
+ bl FUN_02070D2C
+ add r6, r0, #0x0
+ b _02070C1A
+_02070B92:
+ add r0, r5, #0x0
+ add r1, #0x1
+ add r2, sp, #0x0
+ bl FUN_02070CDC
+ add r6, r0, #0x0
+ b _02070C1A
+_02070BA0:
+ cmp r0, #0x7
+ bne _02070C0C
+ ldr r0, _02070CCC ; =0x000005A4
+ ldr r0, [r5, r0]
+ add r0, #0x20
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x2
+ beq _02070BDA
+ cmp r0, #0x11
+ beq _02070BDA
+ cmp r3, #0x0
+ bne _02070BDA
+ add r4, r4, #0x1
+ ldrb r6, [r5, r4]
+ mov r4, #0x1
+ add r1, sp, #0x0
+ and r4, r6
+ add r6, r4, #0x2
+ mov r4, #0x6
+ ldr r3, _02070CC8 ; =0x020F9468
+ mul r4, r6
+ add r0, r5, #0x0
+ add r1, #0x1
+ add r2, sp, #0x0
+ add r3, r3, r4
+ bl FUN_02070D2C
+ add r6, r0, #0x0
+ b _02070C1A
+_02070BDA:
+ cmp r3, #0x1
+ add r1, sp, #0x0
+ bne _02070BFE
+ ldr r4, _02070CD0 ; =0x00000B26
+ ldr r3, _02070CC8 ; =0x020F9468
+ ldrb r6, [r5, r4]
+ mov r4, #0x1
+ add r0, r5, #0x0
+ and r6, r4
+ mov r4, #0x6
+ mul r4, r6
+ add r1, #0x1
+ add r2, sp, #0x0
+ add r3, r3, r4
+ bl FUN_02070D2C
+ add r6, r0, #0x0
+ b _02070C1A
+_02070BFE:
+ add r0, r5, #0x0
+ add r1, #0x1
+ add r2, sp, #0x0
+ bl FUN_02070CDC
+ add r6, r0, #0x0
+ b _02070C1A
+_02070C0C:
+ add r1, sp, #0x0
+ add r0, r5, #0x0
+ add r1, #0x1
+ add r2, sp, #0x0
+ bl FUN_02070CDC
+ add r6, r0, #0x0
+_02070C1A:
+ ldr r0, _02070CC4 ; =0x00000B25
+ ldrb r0, [r5, r0]
+ cmp r6, r0
+ beq _02070CB8
+ cmp r6, #0xff
+ beq _02070CB8
+ add r0, r6, #0x0
+ add r0, #0xfa
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ cmp r0, #0x1
+ bhi _02070C3E
+ ldr r0, _02070CD4 ; =0x000005C8
+ mov r1, #0x0
+ ldr r0, [r5, r0]
+ bl FUN_020200A0
+ b _02070C6E
+_02070C3E:
+ ldr r0, _02070CCC ; =0x000005A4
+ add r1, r6, #0x0
+ ldr r0, [r5, r0]
+ add r0, #0x21
+ ldrb r0, [r0, #0x0]
+ bl FUN_020714BC
+ add r1, r0, #0x0
+ ldr r0, _02070CD4 ; =0x000005C8
+ ldr r0, [r5, r0]
+ bl FUN_02020130
+ ldr r0, _02070CD4 ; =0x000005C8
+ mov r1, #0x1
+ ldr r0, [r5, r0]
+ bl FUN_020200A0
+ ldr r0, _02070CD4 ; =0x000005C8
+ add r2, sp, #0x0
+ ldrb r1, [r2, #0x1]
+ ldrb r2, [r2, #0x0]
+ ldr r0, [r5, r0]
+ bl FUN_0200C6E4
+_02070C6E:
+ ldr r0, _02070CC4 ; =0x00000B25
+ mov r2, #0x0
+ ldrb r4, [r5, r0]
+ strb r6, [r5, r0]
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_020713EC
+ ldr r1, _02070CC4 ; =0x00000B25
+ add r0, r5, #0x0
+ ldrb r1, [r5, r1]
+ mov r2, #0x1
+ bl FUN_020713EC
+ ldr r0, _02070CD8 ; =0x000005DC
+ bl FUN_020054C8
+ cmp r4, #0x6
+ bhs _02070CA6
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ mov r2, #0x0
+ bl FUN_020717E8
+ ldr r0, [r5, #0x0]
+ mov r1, #0x4
+ bl FUN_0201AC68
+_02070CA6:
+ cmp r4, #0x6
+ beq _02070CB2
+ cmp r4, #0x7
+ beq _02070CB2
+ ldr r0, _02070CD0 ; =0x00000B26
+ strb r4, [r5, r0]
+_02070CB2:
+ add sp, #0x4
+ mov r0, #0x1
+ pop {r3-r6, pc}
+_02070CB8:
+ mov r0, #0x0
+ add sp, #0x4
+ pop {r3-r6, pc}
+ nop
+_02070CC0: .word 0x021C48B8
+_02070CC4: .word 0x00000B25
+_02070CC8: .word 0x020F9468
+_02070CCC: .word 0x000005A4
+_02070CD0: .word 0x00000B26
+_02070CD4: .word 0x000005C8
+_02070CD8: .word 0x000005DC
+
+ thumb_func_start FUN_02070CDC
+FUN_02070CDC: ; 0x02070CDC
+ push {r3-r7, lr}
+ sub sp, #0x10
+ add r5, r0, #0x0
+ ldr r0, _02070D24 ; =0x00000B25
+ add r7, r1, #0x0
+ ldrb r4, [r5, r0]
+ str r2, [sp, #0xc]
+ add r6, r3, #0x0
+_02070CEC:
+ mov r0, #0x0
+ str r0, [sp, #0x0]
+ str r4, [sp, #0x4]
+ ldr r0, _02070D28 ; =0x00000808
+ str r6, [sp, #0x8]
+ ldr r0, [r5, r0]
+ ldr r2, [sp, #0xc]
+ add r1, r7, #0x0
+ mov r3, #0x0
+ bl FUN_0201C638
+ add r4, r0, #0x0
+ cmp r4, #0x6
+ beq _02070D1C
+ cmp r4, #0x7
+ beq _02070D1C
+ cmp r4, #0xff
+ beq _02070D1C
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_0207007C
+ cmp r0, #0x0
+ beq _02070CEC
+_02070D1C:
+ add r0, r4, #0x0
+ add sp, #0x10
+ pop {r3-r7, pc}
+ nop
+_02070D24: .word 0x00000B25
+_02070D28: .word 0x00000808
+
+ thumb_func_start FUN_02070D2C
+FUN_02070D2C: ; 0x02070D2C
+ push {r3-r7, lr}
+ sub sp, #0x10
+ add r6, r0, #0x0
+ add r7, r1, #0x0
+ str r2, [sp, #0xc]
+ add r5, r3, #0x0
+ mov r4, #0x0
+_02070D3A:
+ cmp r4, #0x6
+ beq _02070D70
+ ldrb r1, [r5, r4]
+ add r0, r6, #0x0
+ bl FUN_0207007C
+ cmp r0, #0x0
+ beq _02070D68
+ mov r3, #0x0
+ str r3, [sp, #0x0]
+ ldrb r0, [r5, r4]
+ ldr r2, [sp, #0xc]
+ add r1, r7, #0x0
+ str r0, [sp, #0x4]
+ mov r0, #0x4
+ str r0, [sp, #0x8]
+ ldr r0, _02070D8C ; =0x00000808
+ ldr r0, [r6, r0]
+ bl FUN_0201C638
+ add sp, #0x10
+ ldrb r0, [r5, r4]
+ pop {r3-r7, pc}
+_02070D68:
+ add r0, r4, #0x1
+ lsl r0, r0, #0x18
+ lsr r4, r0, #0x18
+ b _02070D3A
+_02070D70:
+ mov r3, #0x0
+ str r3, [sp, #0x0]
+ str r3, [sp, #0x4]
+ mov r0, #0x4
+ str r0, [sp, #0x8]
+ ldr r0, _02070D8C ; =0x00000808
+ ldr r2, [sp, #0xc]
+ ldr r0, [r6, r0]
+ add r1, r7, #0x0
+ bl FUN_0201C638
+ mov r0, #0x0
+ add sp, #0x10
+ pop {r3-r7, pc}
+ .balign 4
+_02070D8C: .word 0x00000808
+
+ thumb_func_start FUN_02070D90
+FUN_02070D90: ; 0x02070D90
+ push {r3-r5, lr}
+ sub sp, #0x10
+ add r5, r0, #0x0
+ bl FUN_02071870
+ mov r1, #0x0
+ mvn r1, r1
+ cmp r0, r1
+ beq _02070E42
+ ldr r1, _02070E48 ; =0x00000B25
+ mov r2, #0x0
+ ldrb r4, [r5, r1]
+ strb r0, [r5, r1]
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_020713EC
+ ldr r1, _02070E48 ; =0x00000B25
+ add r0, r5, #0x0
+ ldrb r1, [r5, r1]
+ mov r2, #0x1
+ bl FUN_020713EC
+ cmp r4, #0x6
+ bhs _02070DCC
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ mov r2, #0x0
+ bl FUN_020717E8
+_02070DCC:
+ mov r3, #0x0
+ ldr r0, _02070E48 ; =0x00000B25
+ str r3, [sp, #0x0]
+ ldrb r0, [r5, r0]
+ add r1, sp, #0xc
+ add r1, #0x1
+ str r0, [sp, #0x4]
+ mov r0, #0x4
+ str r0, [sp, #0x8]
+ ldr r0, _02070E4C ; =0x00000808
+ add r2, sp, #0xc
+ ldr r0, [r5, r0]
+ bl FUN_0201C638
+ ldr r0, _02070E50 ; =0x000005A4
+ ldr r1, _02070E48 ; =0x00000B25
+ ldr r0, [r5, r0]
+ ldrb r1, [r5, r1]
+ add r0, #0x21
+ ldrb r0, [r0, #0x0]
+ bl FUN_020714BC
+ add r1, r0, #0x0
+ ldr r0, _02070E54 ; =0x000005C8
+ ldr r0, [r5, r0]
+ bl FUN_02020130
+ ldr r0, _02070E54 ; =0x000005C8
+ mov r1, #0x1
+ ldr r0, [r5, r0]
+ bl FUN_020200A0
+ ldr r0, _02070E54 ; =0x000005C8
+ add r2, sp, #0xc
+ ldrb r1, [r2, #0x1]
+ ldrb r2, [r2, #0x0]
+ ldr r0, [r5, r0]
+ bl FUN_0200C6E4
+ mov r0, #0xb2
+ mov r1, #0x1
+ lsl r0, r0, #0x4
+ strb r1, [r5, r0]
+ add r1, r0, #0x5
+ ldrb r1, [r5, r1]
+ add r0, r0, #0x1
+ strb r1, [r5, r0]
+ ldr r0, _02070E58 ; =0x000005E4
+ bl FUN_020054C8
+ cmp r4, #0x6
+ beq _02070E3C
+ cmp r4, #0x7
+ beq _02070E3C
+ ldr r0, _02070E5C ; =0x00000B26
+ strb r4, [r5, r0]
+_02070E3C:
+ add sp, #0x10
+ mov r0, #0x1
+ pop {r3-r5, pc}
+_02070E42:
+ mov r0, #0x0
+ add sp, #0x10
+ pop {r3-r5, pc}
+ .balign 4
+_02070E48: .word 0x00000B25
+_02070E4C: .word 0x00000808
+_02070E50: .word 0x000005A4
+_02070E54: .word 0x000005C8
+_02070E58: .word 0x000005E4
+_02070E5C: .word 0x00000B26
+
+ thumb_func_start FUN_02070E60
+FUN_02070E60: ; 0x02070E60
+ push {r4-r6, lr}
+ sub sp, #0x10
+ add r6, r1, #0x0
+ add r5, r0, #0x0
+ add r0, r6, #0x0
+ add r0, #0xfa
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ cmp r0, #0x1
+ bhi _02070E80
+ ldr r0, _02070F04 ; =0x000005C8
+ mov r1, #0x0
+ ldr r0, [r5, r0]
+ bl FUN_020200A0
+ b _02070ECC
+_02070E80:
+ mov r3, #0x0
+ ldr r0, _02070F08 ; =0x00000B25
+ str r3, [sp, #0x0]
+ ldrb r0, [r5, r0]
+ add r1, sp, #0xc
+ add r1, #0x1
+ str r0, [sp, #0x4]
+ mov r0, #0x4
+ str r0, [sp, #0x8]
+ ldr r0, _02070F0C ; =0x00000808
+ add r2, sp, #0xc
+ ldr r0, [r5, r0]
+ bl FUN_0201C638
+ ldr r0, _02070F10 ; =0x000005A4
+ add r1, r6, #0x0
+ ldr r0, [r5, r0]
+ add r0, #0x21
+ ldrb r0, [r0, #0x0]
+ bl FUN_020714BC
+ add r1, r0, #0x0
+ ldr r0, _02070F04 ; =0x000005C8
+ ldr r0, [r5, r0]
+ bl FUN_02020130
+ ldr r0, _02070F04 ; =0x000005C8
+ mov r1, #0x1
+ ldr r0, [r5, r0]
+ bl FUN_020200A0
+ ldr r0, _02070F04 ; =0x000005C8
+ add r2, sp, #0xc
+ ldrb r1, [r2, #0x1]
+ ldrb r2, [r2, #0x0]
+ ldr r0, [r5, r0]
+ bl FUN_0200C6E4
+_02070ECC:
+ ldr r0, _02070F08 ; =0x00000B25
+ mov r2, #0x0
+ ldrb r4, [r5, r0]
+ strb r6, [r5, r0]
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_020713EC
+ ldr r1, _02070F08 ; =0x00000B25
+ add r0, r5, #0x0
+ ldrb r1, [r5, r1]
+ mov r2, #0x1
+ bl FUN_020713EC
+ cmp r4, #0x6
+ bhs _02070EFE
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ mov r2, #0x0
+ bl FUN_020717E8
+ ldr r0, [r5, #0x0]
+ mov r1, #0x4
+ bl FUN_0201AC68
+_02070EFE:
+ add sp, #0x10
+ pop {r4-r6, pc}
+ nop
+_02070F04: .word 0x000005C8
+_02070F08: .word 0x00000B25
+_02070F0C: .word 0x00000808
+_02070F10: .word 0x000005A4
+
+ thumb_func_start FUN_02070F14
+FUN_02070F14: ; 0x02070F14
+ push {r3-r4, lr}
+ sub sp, #0x4
+ mov r1, #0xb2
+ add r4, r0, #0x0
+ lsl r1, r1, #0x4
+ ldrb r2, [r4, r1]
+ cmp r2, #0x0
+ beq _02070F8A
+ cmp r2, #0x1
+ beq _02070F30
+ cmp r2, #0x2
+ beq _02070F70
+ add sp, #0x4
+ pop {r3-r4, pc}
+_02070F30:
+ add r0, r1, #0x1
+ ldrb r0, [r4, r0]
+ add r1, sp, #0x0
+ add r1, #0x2
+ add r2, sp, #0x0
+ bl FUN_02071850
+ add r3, sp, #0x0
+ mov r1, #0x2
+ mov r2, #0x0
+ ldrsh r1, [r3, r1]
+ ldrsh r2, [r3, r2]
+ add r0, r4, #0x0
+ bl FUN_02073D1C
+ ldr r1, _02070F90 ; =0x00000B21
+ add r0, r4, #0x0
+ ldrb r1, [r4, r1]
+ mov r2, #0x2
+ bl FUN_020717E8
+ ldr r0, [r4, #0x0]
+ mov r1, #0x4
+ bl FUN_0201AC68
+ mov r0, #0xb2
+ lsl r0, r0, #0x4
+ ldrb r1, [r4, r0]
+ add sp, #0x4
+ add r1, r1, #0x1
+ strb r1, [r4, r0]
+ pop {r3-r4, pc}
+_02070F70:
+ add r1, r1, #0x1
+ ldrb r1, [r4, r1]
+ mov r2, #0x1
+ bl FUN_020717E8
+ ldr r0, [r4, #0x0]
+ mov r1, #0x4
+ bl FUN_0201AC68
+ mov r0, #0xb2
+ mov r1, #0x0
+ lsl r0, r0, #0x4
+ strb r1, [r4, r0]
+_02070F8A:
+ add sp, #0x4
+ pop {r3-r4, pc}
+ nop
+_02070F90: .word 0x00000B21
+
+ thumb_func_start FUN_02070F94
+FUN_02070F94: ; 0x02070F94
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r0, _020710AC ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #0x1
+ tst r0, r1
+ beq _0207104A
+ ldr r0, _020710B0 ; =0x00000B25
+ ldrb r1, [r4, r0]
+ cmp r1, #0x6
+ bne _02070FAE
+ mov r0, #0x4
+ pop {r4, pc}
+_02070FAE:
+ cmp r1, #0x7
+ bne _02070FC6
+ ldr r0, _020710B4 ; =0x000005DC
+ bl FUN_020054C8
+ ldr r0, _020710B8 ; =0x00000B23
+ ldrb r0, [r4, r0]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x1f
+ bne _0207104A
+ mov r0, #0x3
+ pop {r4, pc}
+_02070FC6:
+ ldr r0, _020710BC ; =0x000005A4
+ ldr r2, [r4, r0]
+ add r2, #0x20
+ ldrb r2, [r2, #0x0]
+ cmp r2, #0x3
+ beq _02070FD6
+ cmp r2, #0x13
+ bne _02070FE0
+_02070FD6:
+ ldr r0, _020710B4 ; =0x000005DC
+ bl FUN_020054C8
+ mov r0, #0x0
+ pop {r4, pc}
+_02070FE0:
+ cmp r2, #0x14
+ beq _02070FE8
+ cmp r2, #0xe
+ bne _0207100C
+_02070FE8:
+ mov r0, #0x2c
+ mul r0, r1
+ add r1, r4, r0
+ mov r0, #0x71
+ lsl r0, r0, #0x4
+ ldrb r0, [r1, r0]
+ cmp r0, #0x0
+ bne _02071002
+ ldr r0, _020710B4 ; =0x000005DC
+ bl FUN_020054C8
+ mov r0, #0x0
+ pop {r4, pc}
+_02071002:
+ ldr r0, _020710C0 ; =0x000005F2
+ bl FUN_020054C8
+ mov r0, #0x5
+ pop {r4, pc}
+_0207100C:
+ cmp r2, #0xf
+ bne _0207103A
+ mov r2, #0x2c
+ mul r2, r1
+ mov r1, #0x71
+ add r2, r4, r2
+ lsl r1, r1, #0x4
+ ldrb r1, [r2, r1]
+ cmp r1, #0x0
+ bne _02071030
+ add r0, #0x38
+ bl FUN_020054C8
+ add r0, r4, #0x0
+ bl FUN_020710C4
+ mov r0, #0x0
+ pop {r4, pc}
+_02071030:
+ add r0, #0x4e
+ bl FUN_020054C8
+ mov r0, #0x5
+ pop {r4, pc}
+_0207103A:
+ add r0, #0x38
+ bl FUN_020054C8
+ add r0, r4, #0x0
+ bl FUN_020710C4
+ mov r0, #0x0
+ pop {r4, pc}
+_0207104A:
+ ldr r0, _020710AC ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #0x2
+ tst r0, r1
+ beq _0207106E
+ ldr r0, _020710B8 ; =0x00000B23
+ ldrb r0, [r4, r0]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x1f
+ bne _0207106E
+ ldr r0, _020710B4 ; =0x000005DC
+ bl FUN_020054C8
+ ldr r0, _020710B0 ; =0x00000B25
+ mov r1, #0x7
+ strb r1, [r4, r0]
+ mov r0, #0x3
+ pop {r4, pc}
+_0207106E:
+ add r0, r4, #0x0
+ bl FUN_02070B04
+ cmp r0, #0x2
+ bne _020710AA
+ ldr r1, _020710BC ; =0x000005A4
+ ldr r1, [r4, r1]
+ add r1, #0x20
+ ldrb r1, [r1, #0x0]
+ cmp r1, #0x14
+ beq _0207108E
+ add r1, #0xf2
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ cmp r1, #0x1
+ bhi _020710AA
+_0207108E:
+ ldr r1, _020710B0 ; =0x00000B25
+ ldrb r2, [r4, r1]
+ mov r1, #0x2c
+ mul r1, r2
+ add r2, r4, r1
+ mov r1, #0x71
+ lsl r1, r1, #0x4
+ ldrb r1, [r2, r1]
+ cmp r1, #0x0
+ beq _020710AA
+ ldr r0, _020710C0 ; =0x000005F2
+ bl FUN_020054C8
+ mov r0, #0x5
+_020710AA:
+ pop {r4, pc}
+ .balign 4
+_020710AC: .word 0x021C48B8
+_020710B0: .word 0x00000B25
+_020710B4: .word 0x000005DC
+_020710B8: .word 0x00000B23
+_020710BC: .word 0x000005A4
+_020710C0: .word 0x000005F2
+
+ thumb_func_start FUN_020710C4
+FUN_020710C4: ; 0x020710C4
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ mov r0, #0x81
+ lsl r0, r0, #0x2
+ add r0, r5, r0
+ mov r1, #0x1
+ bl FUN_0200D0E0
+ mov r0, #0xc
+ mov r1, #0x8
+ bl FUN_02016998
+ add r4, r0, #0x0
+ ldr r0, _02071174 ; =0x000005A4
+ ldr r0, [r5, r0]
+ add r0, #0x20
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0xf
+ bgt _020710FC
+ bge _02071124
+ cmp r0, #0x2
+ bgt _0207113C
+ cmp r0, #0x0
+ blt _0207113C
+ beq _0207110C
+ cmp r0, #0x2
+ beq _02071118
+ b _0207113C
+_020710FC:
+ cmp r0, #0x12
+ bgt _0207113C
+ cmp r0, #0x11
+ blt _0207113C
+ beq _02071118
+ cmp r0, #0x12
+ beq _02071130
+ b _0207113C
+_0207110C:
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_0207117C
+ add r2, r0, #0x0
+ b _02071146
+_02071118:
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_020712F0
+ add r2, r0, #0x0
+ b _02071146
+_02071124:
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_02071274
+ add r2, r0, #0x0
+ b _02071146
+_02071130:
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_02071280
+ add r2, r0, #0x0
+ b _02071146
+_0207113C:
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_020712B4
+ add r2, r0, #0x0
+_02071146:
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_02072844
+ mov r0, #0xc
+ add r1, r4, #0x0
+ bl FUN_02016A8C
+ add r0, r5, #0x0
+ bl FUN_0207295C
+ mov r1, #0x0
+ add r0, r5, #0x0
+ mvn r1, r1
+ mov r2, #0x1
+ bl FUN_020731D4
+ ldr r0, _02071178 ; =0x000005C8
+ mov r1, #0x1
+ ldr r0, [r5, r0]
+ bl FUN_0200C664
+ pop {r3-r5, pc}
+ .balign 4
+_02071174: .word 0x000005A4
+_02071178: .word 0x000005C8
+
+ thumb_func_start FUN_0207117C
+FUN_0207117C: ; 0x0207117C
+ push {r4-r7, lr}
+ sub sp, #0xc
+ str r1, [sp, #0x4]
+ ldr r1, _02071268 ; =0x000005A4
+ str r0, [sp, #0x0]
+ ldr r0, [r0, r1]
+ ldr r2, _0207126C ; =0x00000B25
+ ldr r1, [sp, #0x0]
+ ldr r0, [r0, #0x0]
+ ldrb r1, [r1, r2]
+ bl FUN_0206B9B0
+ str r0, [sp, #0x8]
+ ldr r0, [sp, #0x4]
+ mov r1, #0x1
+ strb r1, [r0, #0x0]
+ mov r4, #0x0
+ add r0, r4, #0x1
+ lsl r0, r0, #0x18
+ lsr r5, r0, #0x18
+ ldr r1, _02071268 ; =0x000005A4
+ ldr r0, [sp, #0x0]
+ ldr r0, [r0, r1]
+ ldr r0, [r0, #0x1c]
+ bl FUN_02060144
+ cmp r0, #0x0
+ bne _02071258
+ ldr r1, _0207126C ; =0x00000B25
+ ldr r0, [sp, #0x0]
+ ldrb r1, [r0, r1]
+ mov r0, #0x2c
+ add r2, r1, #0x0
+ mul r2, r0
+ ldr r0, [sp, #0x0]
+ add r1, r0, r2
+ mov r0, #0x71
+ lsl r0, r0, #0x4
+ ldrb r0, [r1, r0]
+ cmp r0, #0x0
+ bne _0207124C
+ add r6, r4, #0x0
+_020711D0:
+ add r1, r6, #0x0
+ ldr r0, [sp, #0x8]
+ add r1, #0x36
+ mov r2, #0x0
+ bl FUN_020671BC
+ lsl r0, r0, #0x10
+ lsr r7, r0, #0x10
+ beq _02071210
+ add r0, r7, #0x0
+ bl FUN_02071948
+ cmp r0, #0xff
+ beq _02071206
+ ldr r1, [sp, #0x4]
+ add r2, r4, #0x0
+ strb r0, [r1, r5]
+ add r0, r5, #0x1
+ lsl r0, r0, #0x18
+ lsr r5, r0, #0x18
+ ldr r0, [sp, #0x0]
+ add r1, r7, #0x0
+ bl FUN_020727FC
+ add r0, r4, #0x1
+ lsl r0, r0, #0x18
+ lsr r4, r0, #0x18
+_02071206:
+ add r0, r6, #0x1
+ lsl r0, r0, #0x18
+ lsr r6, r0, #0x18
+ cmp r6, #0x4
+ blo _020711D0
+_02071210:
+ ldr r0, [sp, #0x4]
+ mov r1, #0x0
+ strb r1, [r0, r5]
+ add r0, r5, #0x1
+ lsl r0, r0, #0x18
+ lsr r5, r0, #0x18
+ ldr r1, _0207126C ; =0x00000B25
+ ldr r0, [sp, #0x0]
+ ldrb r1, [r0, r1]
+ mov r0, #0x2c
+ add r2, r1, #0x0
+ mul r2, r0
+ ldr r0, [sp, #0x0]
+ add r1, r0, r2
+ ldr r0, _02071270 ; =0x0000070C
+ ldrh r0, [r1, r0]
+ bl FUN_0206EA98
+ cmp r0, #0x1
+ bne _0207123E
+ mov r1, #0x5
+ ldr r0, [sp, #0x4]
+ b _02071242
+_0207123E:
+ ldr r0, [sp, #0x4]
+ mov r1, #0x2
+_02071242:
+ strb r1, [r0, r5]
+ add r0, r5, #0x1
+ lsl r0, r0, #0x18
+ lsr r5, r0, #0x18
+ b _02071258
+_0207124C:
+ ldr r0, [sp, #0x4]
+ add r1, r4, #0x0
+ strb r1, [r0, r5]
+ add r0, r5, #0x1
+ lsl r0, r0, #0x18
+ lsr r5, r0, #0x18
+_02071258:
+ ldr r0, [sp, #0x4]
+ mov r1, #0x9
+ strb r1, [r0, r5]
+ add r0, r5, #0x1
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ add sp, #0xc
+ pop {r4-r7, pc}
+ .balign 4
+_02071268: .word 0x000005A4
+_0207126C: .word 0x00000B25
+_02071270: .word 0x0000070C
+
+ thumb_func_start FUN_02071274
+FUN_02071274: ; 0x02071274
+ mov r0, #0xe
+ strb r0, [r1, #0x0]
+ mov r0, #0x9
+ strb r0, [r1, #0x1]
+ mov r0, #0x2
+ bx lr
+
+ thumb_func_start FUN_02071280
+FUN_02071280: ; 0x02071280
+ ldr r2, _020712B0 ; =0x00000B25
+ ldrb r3, [r0, r2]
+ mov r2, #0x2c
+ mul r2, r3
+ add r2, r0, r2
+ mov r0, #0x71
+ lsl r0, r0, #0x4
+ ldrb r0, [r2, r0]
+ cmp r0, #0x0
+ bne _020712A4
+ mov r0, #0x8
+ strb r0, [r1, #0x0]
+ mov r0, #0x1
+ strb r0, [r1, #0x1]
+ mov r0, #0x9
+ strb r0, [r1, #0x2]
+ mov r0, #0x3
+ bx lr
+_020712A4:
+ mov r0, #0x1
+ strb r0, [r1, #0x0]
+ mov r0, #0x9
+ strb r0, [r1, #0x1]
+ mov r0, #0x2
+ bx lr
+ .balign 4
+_020712B0: .word 0x00000B25
+
+ thumb_func_start FUN_020712B4
+FUN_020712B4: ; 0x020712B4
+ ldr r2, _020712E8 ; =0x00000B25
+ ldrb r3, [r0, r2]
+ mov r2, #0x2c
+ mul r2, r3
+ add r2, r0, r2
+ ldr r0, _020712EC ; =0x0000070E
+ ldrh r0, [r2, r0]
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x1f
+ cmp r0, #0x1
+ bne _020712DA
+ mov r0, #0xd
+ strb r0, [r1, #0x0]
+ mov r0, #0x1
+ strb r0, [r1, #0x1]
+ mov r0, #0x9
+ strb r0, [r1, #0x2]
+ mov r0, #0x3
+ bx lr
+_020712DA:
+ mov r0, #0x1
+ strb r0, [r1, #0x0]
+ mov r0, #0x9
+ strb r0, [r1, #0x1]
+ mov r0, #0x2
+ bx lr
+ nop
+_020712E8: .word 0x00000B25
+_020712EC: .word 0x0000070E
+
+ thumb_func_start FUN_020712F0
+FUN_020712F0: ; 0x020712F0
+ push {r4, lr}
+ add r4, r1, #0x0
+ ldr r1, _0207133C ; =0x00000B25
+ ldrb r1, [r0, r1]
+ bl FUN_02071340
+ cmp r0, #0x0
+ beq _0207130A
+ cmp r0, #0x1
+ beq _02071316
+ cmp r0, #0x2
+ beq _02071326
+ b _02071336
+_0207130A:
+ mov r0, #0x1
+ strb r0, [r4, #0x0]
+ mov r0, #0x9
+ strb r0, [r4, #0x1]
+ mov r0, #0x2
+ pop {r4, pc}
+_02071316:
+ mov r0, #0xb
+ strb r0, [r4, #0x0]
+ mov r0, #0x1
+ strb r0, [r4, #0x1]
+ mov r0, #0x9
+ strb r0, [r4, #0x2]
+ mov r0, #0x3
+ pop {r4, pc}
+_02071326:
+ mov r0, #0xc
+ strb r0, [r4, #0x0]
+ mov r0, #0x1
+ strb r0, [r4, #0x1]
+ mov r0, #0x9
+ strb r0, [r4, #0x2]
+ mov r0, #0x3
+ pop {r4, pc}
+_02071336:
+ mov r0, #0x0
+ pop {r4, pc}
+ nop
+_0207133C: .word 0x00000B25
+
+ thumb_func_start FUN_02071340
+FUN_02071340: ; 0x02071340
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ ldr r0, _020713E0 ; =0x000005A4
+ add r4, r1, #0x0
+ ldr r2, [r5, r0]
+ ldr r0, [r2, #0x14]
+ cmp r0, #0x0
+ beq _0207136E
+ ldr r0, [r2, #0x0]
+ bl FUN_0206B9B0
+ add r1, r0, #0x0
+ ldr r0, _020713E0 ; =0x000005A4
+ ldr r2, _020713E4 ; =0x00000B34
+ ldr r0, [r5, r0]
+ ldr r2, [r5, r2]
+ ldr r0, [r0, #0x14]
+ bl FUN_0206BB84
+ cmp r0, #0x0
+ bne _0207136E
+ mov r0, #0x0
+ pop {r4-r6, pc}
+_0207136E:
+ ldr r0, _020713E0 ; =0x000005A4
+ ldr r0, [r5, r0]
+ add r0, #0x20
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x11
+ bne _02071390
+ mov r0, #0x2c
+ mul r0, r4
+ add r1, r5, r0
+ ldr r0, _020713E8 ; =0x00000704
+ ldrh r0, [r1, r0]
+ bl FUN_0206A964
+ cmp r0, #0x1
+ bne _02071390
+ mov r0, #0x0
+ pop {r4-r6, pc}
+_02071390:
+ ldr r1, _020713E0 ; =0x000005A4
+ mov r0, #0x0
+ ldr r2, [r5, r1]
+ add r1, r2, #0x0
+ add r1, #0x32
+ ldrb r1, [r1, #0x0]
+ lsl r1, r1, #0x18
+ lsr r3, r1, #0x1c
+ beq _020713BC
+ add r1, r4, #0x1
+_020713A4:
+ add r6, r2, r0
+ add r6, #0x2c
+ ldrb r6, [r6, #0x0]
+ cmp r1, r6
+ bne _020713B2
+ mov r0, #0x2
+ pop {r4-r6, pc}
+_020713B2:
+ add r0, r0, #0x1
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ cmp r0, r3
+ blo _020713A4
+_020713BC:
+ mov r0, #0x2c
+ mul r0, r4
+ add r3, r5, r0
+ mov r0, #0x71
+ lsl r0, r0, #0x4
+ ldrb r1, [r3, r0]
+ cmp r1, #0x1
+ beq _020713D8
+ sub r0, r0, #0x6
+ add r2, #0x33
+ ldrh r1, [r3, r0]
+ ldrb r0, [r2, #0x0]
+ cmp r1, r0
+ ble _020713DC
+_020713D8:
+ mov r0, #0x0
+ pop {r4-r6, pc}
+_020713DC:
+ mov r0, #0x1
+ pop {r4-r6, pc}
+ .balign 4
+_020713E0: .word 0x000005A4
+_020713E4: .word 0x00000B34
+_020713E8: .word 0x00000704
+
+ thumb_func_start FUN_020713EC
+FUN_020713EC: ; 0x020713EC
+ push {r4-r6, lr}
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ add r6, r2, #0x0
+ cmp r4, #0x6
+ bne _02071426
+ mov r0, #0x5d
+ lsl r0, r0, #0x4
+ ldr r0, [r5, r0]
+ bl FUN_020201DC
+ lsl r0, r0, #0x18
+ lsr r1, r0, #0x18
+ cmp r6, #0x0
+ bne _02071410
+ mov r0, #0x2
+ and r0, r1
+ b _02071416
+_02071410:
+ mov r0, #0x2
+ and r0, r1
+ add r0, r0, #0x1
+_02071416:
+ lsl r0, r0, #0x18
+ lsr r1, r0, #0x18
+ mov r0, #0x5d
+ lsl r0, r0, #0x4
+ ldr r0, [r5, r0]
+ bl FUN_02020130
+ pop {r4-r6, pc}
+_02071426:
+ cmp r4, #0x7
+ bne _02071454
+ ldr r0, _020714B4 ; =0x000005D4
+ ldr r0, [r5, r0]
+ bl FUN_020201DC
+ lsl r0, r0, #0x18
+ lsr r1, r0, #0x18
+ cmp r6, #0x0
+ bne _02071440
+ mov r0, #0x2
+ and r0, r1
+ b _02071446
+_02071440:
+ mov r0, #0x2
+ and r0, r1
+ add r0, r0, #0x1
+_02071446:
+ lsl r0, r0, #0x18
+ lsr r1, r0, #0x18
+ ldr r0, _020714B4 ; =0x000005D4
+ ldr r0, [r5, r0]
+ bl FUN_02020130
+ pop {r4-r6, pc}
+_02071454:
+ cmp r6, #0x0
+ ldr r1, _020714B8 ; =0x00000716
+ bne _02071482
+ mov r0, #0x2c
+ add r3, r5, r1
+ mul r0, r4
+ ldrsh r2, [r3, r0]
+ add r1, r1, #0x2
+ sub r2, r2, #0x2
+ strh r2, [r3, r0]
+ add r2, r5, r1
+ ldrsh r1, [r2, r0]
+ sub r1, r1, #0x2
+ strh r1, [r2, r0]
+ lsl r0, r4, #0x2
+ add r1, r5, r0
+ mov r0, #0x5b
+ lsl r0, r0, #0x4
+ ldr r0, [r1, r0]
+ mov r1, #0x0
+ bl FUN_02020130
+ b _020714A8
+_02071482:
+ mov r0, #0x2c
+ add r3, r5, r1
+ mul r0, r4
+ ldrsh r2, [r3, r0]
+ add r1, r1, #0x2
+ add r2, r2, #0x2
+ strh r2, [r3, r0]
+ add r2, r5, r1
+ ldrsh r1, [r2, r0]
+ add r1, r1, #0x2
+ strh r1, [r2, r0]
+ lsl r0, r4, #0x2
+ add r1, r5, r0
+ mov r0, #0x5b
+ lsl r0, r0, #0x4
+ ldr r0, [r1, r0]
+ mov r1, #0x1
+ bl FUN_02020130
+_020714A8:
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_020709FC
+ pop {r4-r6, pc}
+ nop
+_020714B4: .word 0x000005D4
+_020714B8: .word 0x00000716
+
+ thumb_func_start FUN_020714BC
+FUN_020714BC: ; 0x020714BC
+ cmp r1, #0x0
+ beq _020714C8
+ cmp r0, #0x0
+ beq _020714CC
+ cmp r1, #0x1
+ bne _020714CC
+_020714C8:
+ mov r0, #0x1
+ bx lr
+_020714CC:
+ mov r0, #0x0
+ bx lr
+
+ thumb_func_start FUN_020714D0
+FUN_020714D0: ; 0x020714D0
+ push {r4, lr}
+ ldr r1, _02071550 ; =0x021C48B8
+ add r4, r0, #0x0
+ ldr r2, [r1, #0x48]
+ mov r1, #0x1
+ tst r1, r2
+ beq _0207150C
+ ldr r0, _02071554 ; =0x000005DC
+ bl FUN_020054C8
+ ldr r0, _02071558 ; =0x00000B25
+ ldrb r1, [r4, r0]
+ cmp r1, #0x6
+ bhs _020714F8
+ sub r0, r0, #0x2
+ ldrb r0, [r4, r0]
+ lsl r0, r0, #0x1a
+ lsr r0, r0, #0x1a
+ cmp r1, r0
+ bne _02071502
+_020714F8:
+ add r0, r4, #0x0
+ bl FUN_02074538
+ mov r0, #0x3
+ pop {r4, pc}
+_02071502:
+ add r0, r4, #0x0
+ bl FUN_02074584
+ mov r0, #0x0
+ pop {r4, pc}
+_0207150C:
+ mov r1, #0x2
+ tst r1, r2
+ beq _02071522
+ ldr r0, _02071554 ; =0x000005DC
+ bl FUN_020054C8
+ add r0, r4, #0x0
+ bl FUN_02074538
+ mov r0, #0x3
+ pop {r4, pc}
+_02071522:
+ bl FUN_02070B04
+ cmp r0, #0x2
+ bne _0207154C
+ ldr r0, _02071558 ; =0x00000B25
+ ldrb r1, [r4, r0]
+ sub r0, r0, #0x2
+ ldrb r0, [r4, r0]
+ lsl r0, r0, #0x1a
+ lsr r0, r0, #0x1a
+ cmp r1, r0
+ bne _02071544
+ add r0, r4, #0x0
+ bl FUN_02074538
+ mov r0, #0x3
+ pop {r4, pc}
+_02071544:
+ add r0, r4, #0x0
+ bl FUN_02074584
+ mov r0, #0x0
+_0207154C:
+ pop {r4, pc}
+ nop
+_02071550: .word 0x021C48B8
+_02071554: .word 0x000005DC
+_02071558: .word 0x00000B25
+
+ thumb_func_start FUN_0207155C
+FUN_0207155C: ; 0x0207155C
+ push {r3-r5, lr}
+ sub sp, #0x8
+ ldr r1, _02071738 ; =0x000005A4
+ add r4, r0, #0x0
+ ldr r3, [r4, r1]
+ mov r0, #0x0
+ add r1, r3, #0x0
+ add r1, #0x32
+ ldrb r1, [r1, #0x0]
+ lsl r1, r1, #0x1c
+ lsr r1, r1, #0x1c
+ beq _02071606
+_02071574:
+ add r2, r3, r0
+ add r2, #0x2c
+ ldrb r2, [r2, #0x0]
+ cmp r2, #0x0
+ bne _020715FC
+ add r3, #0x32
+ ldrb r0, [r3, #0x0]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x1c
+ cmp r0, #0x6
+ bhi _020715E0
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02071596: ; jump table (using 16-bit offset)
+ .short _020715E0 - _02071596 - 2; case 0
+ .short _020715E0 - _02071596 - 2; case 1
+ .short _020715A4 - _02071596 - 2; case 2
+ .short _020715B0 - _02071596 - 2; case 3
+ .short _020715BC - _02071596 - 2; case 4
+ .short _020715C8 - _02071596 - 2; case 5
+ .short _020715D4 - _02071596 - 2; case 6
+_020715A4:
+ add r0, r4, #0x0
+ mov r1, #0x6b
+ mov r2, #0x1
+ bl FUN_020731E8
+ b _020715EA
+_020715B0:
+ add r0, r4, #0x0
+ mov r1, #0x77
+ mov r2, #0x1
+ bl FUN_020731E8
+ b _020715EA
+_020715BC:
+ add r0, r4, #0x0
+ mov r1, #0x78
+ mov r2, #0x1
+ bl FUN_020731E8
+ b _020715EA
+_020715C8:
+ add r0, r4, #0x0
+ mov r1, #0x79
+ mov r2, #0x1
+ bl FUN_020731E8
+ b _020715EA
+_020715D4:
+ add r0, r4, #0x0
+ mov r1, #0x7a
+ mov r2, #0x1
+ bl FUN_020731E8
+ b _020715EA
+_020715E0:
+ add r0, r4, #0x0
+ mov r1, #0x1d
+ mov r2, #0x1
+ bl FUN_020731E8
+_020715EA:
+ ldr r0, _0207173C ; =0x00000B22
+ mov r1, #0x13
+ strb r1, [r4, r0]
+ ldr r0, _02071740 ; =0x000005F2
+ bl FUN_020054C8
+ add sp, #0x8
+ mov r0, #0x14
+ pop {r3-r5, pc}
+_020715FC:
+ add r0, r0, #0x1
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ cmp r0, r1
+ blo _02071574
+_02071606:
+ ldr r0, [r3, #0x14]
+ cmp r0, #0x0
+ beq _020716CA
+ ldr r2, _02071744 ; =0x00000B34
+ ldr r1, [r3, #0x0]
+ ldr r2, [r4, r2]
+ add r3, #0x2c
+ bl FUN_0206BC60
+ cmp r0, #0x3
+ bhi _020716CA
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02071628: ; jump table (using 16-bit offset)
+ .short _020716CA - _02071628 - 2; case 0
+ .short _02071630 - _02071628 - 2; case 1
+ .short _02071692 - _02071628 - 2; case 2
+ .short _020716AE - _02071628 - 2; case 3
+_02071630:
+ ldr r0, _02071748 ; =0x0000069C
+ mov r1, #0xb8
+ ldr r0, [r4, r0]
+ bl FUN_0200A914
+ add r5, r0, #0x0
+ ldr r0, _02071738 ; =0x000005A4
+ mov r1, #0x3
+ ldr r0, [r4, r0]
+ ldr r0, [r0, #0x14]
+ bl FUN_02023B0C
+ mov r1, #0x0
+ add r2, r0, #0x0
+ str r1, [sp, #0x0]
+ mov r0, #0x1
+ str r0, [sp, #0x4]
+ mov r0, #0x6a
+ lsl r0, r0, #0x4
+ ldr r0, [r4, r0]
+ mov r3, #0x3
+ bl FUN_0200AD38
+ mov r1, #0x6a
+ lsl r1, r1, #0x4
+ ldr r0, [r4, r1]
+ add r1, r1, #0x4
+ ldr r1, [r4, r1]
+ add r2, r5, #0x0
+ bl FUN_0200B7B8
+ add r0, r5, #0x0
+ bl FUN_02021A20
+ mov r1, #0x0
+ add r0, r4, #0x0
+ mvn r1, r1
+ mov r2, #0x1
+ bl FUN_020731E8
+ ldr r0, _0207173C ; =0x00000B22
+ mov r1, #0x13
+ strb r1, [r4, r0]
+ ldr r0, _02071740 ; =0x000005F2
+ bl FUN_020054C8
+ add sp, #0x8
+ mov r0, #0x14
+ pop {r3-r5, pc}
+_02071692:
+ add r0, r4, #0x0
+ mov r1, #0xb6
+ mov r2, #0x1
+ bl FUN_020731E8
+ ldr r0, _0207173C ; =0x00000B22
+ mov r1, #0x13
+ strb r1, [r4, r0]
+ ldr r0, _02071740 ; =0x000005F2
+ bl FUN_020054C8
+ add sp, #0x8
+ mov r0, #0x14
+ pop {r3-r5, pc}
+_020716AE:
+ add r0, r4, #0x0
+ mov r1, #0xb7
+ mov r2, #0x1
+ bl FUN_020731E8
+ ldr r0, _0207173C ; =0x00000B22
+ mov r1, #0x13
+ strb r1, [r4, r0]
+ ldr r0, _02071740 ; =0x000005F2
+ bl FUN_020054C8
+ add sp, #0x8
+ mov r0, #0x14
+ pop {r3-r5, pc}
+_020716CA:
+ ldr r0, _02071738 ; =0x000005A4
+ ldr r0, [r4, r0]
+ add r0, #0x20
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x11
+ bne _02071722
+ add r0, r4, #0x0
+ bl FUN_0207174C
+ cmp r0, #0x0
+ beq _02071722
+ cmp r0, #0x1
+ beq _020716EA
+ cmp r0, #0x2
+ beq _02071706
+ b _02071722
+_020716EA:
+ add r0, r4, #0x0
+ mov r1, #0xb6
+ mov r2, #0x1
+ bl FUN_020731E8
+ ldr r0, _0207173C ; =0x00000B22
+ mov r1, #0x13
+ strb r1, [r4, r0]
+ ldr r0, _02071740 ; =0x000005F2
+ bl FUN_020054C8
+ add sp, #0x8
+ mov r0, #0x14
+ pop {r3-r5, pc}
+_02071706:
+ add r0, r4, #0x0
+ mov r1, #0xb7
+ mov r2, #0x1
+ bl FUN_020731E8
+ ldr r0, _0207173C ; =0x00000B22
+ mov r1, #0x13
+ strb r1, [r4, r0]
+ ldr r0, _02071740 ; =0x000005F2
+ bl FUN_020054C8
+ add sp, #0x8
+ mov r0, #0x14
+ pop {r3-r5, pc}
+_02071722:
+ ldr r0, _02071738 ; =0x000005A4
+ mov r2, #0x0
+ ldr r1, [r4, r0]
+ add r0, #0x38
+ add r1, #0x23
+ strb r2, [r1, #0x0]
+ bl FUN_020054C8
+ mov r0, #0x1b
+ add sp, #0x8
+ pop {r3-r5, pc}
+ .balign 4
+_02071738: .word 0x000005A4
+_0207173C: .word 0x00000B22
+_02071740: .word 0x000005F2
+_02071744: .word 0x00000B34
+_02071748: .word 0x0000069C
+
+ thumb_func_start FUN_0207174C
+FUN_0207174C: ; 0x0207174C
+ push {r4-r7}
+ add r5, r0, #0x0
+ mov r0, #0x0
+ mov r12, r0
+ ldr r0, _020717E0 ; =0x000005A4
+ ldr r4, [r5, r0]
+_02071758:
+ mov r0, r12
+ add r0, r4, r0
+ add r0, #0x2c
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x0
+ beq _020717DA
+ mov r0, r12
+ add r0, r0, #0x1
+ lsl r0, r0, #0x18
+ lsr r3, r0, #0x18
+ cmp r3, #0x6
+ bhs _020717CC
+ mov r0, r12
+ add r7, r4, r0
+_02071774:
+ add r0, r4, r3
+ add r0, #0x2c
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x0
+ beq _020717CC
+ add r0, r4, r3
+ add r0, #0x2c
+ ldrb r1, [r0, #0x0]
+ mov r0, #0x2c
+ ldr r6, _020717E4 ; =0x000006D8
+ mul r0, r1
+ add r2, r5, r0
+ add r0, r7, #0x0
+ add r0, #0x2c
+ ldrb r1, [r0, #0x0]
+ mov r0, #0x2c
+ ldrh r6, [r2, r6]
+ mul r0, r1
+ add r1, r5, r0
+ ldr r0, _020717E4 ; =0x000006D8
+ ldrh r0, [r1, r0]
+ cmp r0, r6
+ bne _020717A8
+ mov r0, #0x1
+ pop {r4-r7}
+ bx lr
+_020717A8:
+ mov r0, #0x6e
+ lsl r0, r0, #0x4
+ ldrh r0, [r1, r0]
+ cmp r0, #0x0
+ beq _020717C2
+ mov r1, #0x6e
+ lsl r1, r1, #0x4
+ ldrh r1, [r2, r1]
+ cmp r0, r1
+ bne _020717C2
+ mov r0, #0x2
+ pop {r4-r7}
+ bx lr
+_020717C2:
+ add r0, r3, #0x1
+ lsl r0, r0, #0x18
+ lsr r3, r0, #0x18
+ cmp r3, #0x6
+ blo _02071774
+_020717CC:
+ mov r0, r12
+ add r0, r0, #0x1
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ mov r12, r0
+ cmp r0, #0x5
+ blo _02071758
+_020717DA:
+ mov r0, #0x0
+ pop {r4-r7}
+ bx lr
+ .balign 4
+_020717E0: .word 0x000005A4
+_020717E4: .word 0x000006D8
+
+ thumb_func_start FUN_020717E8
+FUN_020717E8: ; 0x020717E8
+ push {r3-r7, lr}
+ ldr r0, [r0, #0x0]
+ add r5, r1, #0x0
+ add r4, r2, #0x0
+ mov r1, #0x4
+ bl FUN_0201886C
+ lsl r1, r5, #0x1
+ mov r3, #0x19
+ add r5, r4, #0x0
+ mul r5, r3
+ ldr r3, _02071844 ; =0x00001005
+ mov r2, #0x0
+ add r3, r5, r3
+ lsl r3, r3, #0x10
+ lsr r4, r3, #0x10
+ ldr r3, _02071848 ; =0x020F944C
+ ldrb r3, [r3, r1]
+ lsl r3, r3, #0x1
+ add r0, r0, r3
+ mov r12, r0
+ ldr r0, _0207184C ; =0x020F944D
+ ldrb r7, [r0, r1]
+_02071816:
+ lsl r0, r2, #0x2
+ add r5, r2, r0
+ add r0, r7, r2
+ lsl r1, r0, #0x6
+ mov r0, r12
+ mov r3, #0x0
+ add r6, r0, r1
+_02071824:
+ add r0, r3, r5
+ add r1, r4, r0
+ lsl r0, r3, #0x1
+ strh r1, [r6, r0]
+ add r0, r3, #0x1
+ lsl r0, r0, #0x18
+ lsr r3, r0, #0x18
+ cmp r3, #0x5
+ blo _02071824
+ add r0, r2, #0x1
+ lsl r0, r0, #0x18
+ lsr r2, r0, #0x18
+ cmp r2, #0x5
+ blo _02071816
+ pop {r3-r7, pc}
+ nop
+_02071844: .word 0x00001005
+_02071848: .word 0x020F944C
+_0207184C: .word 0x020F944D
+
+ thumb_func_start FUN_02071850
+FUN_02071850: ; 0x02071850
+ lsl r3, r0, #0x1
+ ldr r0, _02071868 ; =0x020F944C
+ ldrb r0, [r0, r3]
+ lsl r0, r0, #0x3
+ add r0, #0x14
+ strh r0, [r1, #0x0]
+ ldr r0, _0207186C ; =0x020F944D
+ ldrb r0, [r0, r3]
+ lsl r0, r0, #0x3
+ add r0, #0x14
+ strh r0, [r2, #0x0]
+ bx lr
+ .balign 4
+_02071868: .word 0x020F944C
+_0207186C: .word 0x020F944D
+
+ thumb_func_start FUN_02071870
+FUN_02071870: ; 0x02071870
+ push {r3-r5, lr}
+ sub sp, #0x8
+ add r5, r0, #0x0
+ bl FUN_0207248C
+ cmp r0, #0x0
+ bne _02071886
+ mov r0, #0x0
+ add sp, #0x8
+ mvn r0, r0
+ pop {r3-r5, pc}
+_02071886:
+ ldr r0, _020718C0 ; =0x020F94B8
+ bl FUN_02020988
+ add r4, r0, #0x0
+ mov r0, #0x0
+ mvn r0, r0
+ cmp r4, r0
+ beq _020718BA
+ ldr r1, _020718C4 ; =0x0000FFFE
+ add r0, sp, #0x4
+ strh r1, [r0, #0x0]
+ add r0, sp, #0x4
+ str r0, [sp, #0x0]
+ ldr r3, _020718C8 ; =0x021C48F8
+ ldr r0, [r5, #0x0]
+ ldrh r2, [r3, #0x1c]
+ ldrh r3, [r3, #0x1e]
+ mov r1, #0x4
+ bl FUN_0201AFBC
+ cmp r0, #0x0
+ bne _020718BA
+ mov r0, #0x0
+ add sp, #0x8
+ mvn r0, r0
+ pop {r3-r5, pc}
+_020718BA:
+ add r0, r4, #0x0
+ add sp, #0x8
+ pop {r3-r5, pc}
+ .balign 4
+_020718C0: .word 0x020F94B8
+_020718C4: .word 0x0000FFFE
+_020718C8: .word 0x021C48F8
+
+ thumb_func_start FUN_020718CC
+FUN_020718CC: ; 0x020718CC
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ ldr r0, _0207193C ; =0x000006FC
+ add r4, r1, #0x0
+ ldr r0, [r5, r0]
+ bl FUN_02001C78
+ add r2, r0, #0x0
+ mov r0, #0x1
+ mvn r0, r0
+ cmp r2, r0
+ beq _020718EC
+ add r0, r0, #0x1
+ cmp r2, r0
+ beq _02071938
+ b _02071932
+_020718EC:
+ mov r0, #0x85
+ lsl r0, r0, #0x2
+ add r0, r5, r0
+ mov r1, #0x1
+ bl FUN_0200D0E0
+ add r0, r5, #0x0
+ bl FUN_02073DB4
+ ldr r0, _02071940 ; =0x000005A4
+ ldr r0, [r5, r0]
+ add r0, #0x20
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x2
+ beq _0207190E
+ cmp r0, #0x11
+ bne _0207191A
+_0207190E:
+ add r0, r5, #0x0
+ mov r1, #0x22
+ mov r2, #0x1
+ bl FUN_020731C0
+ b _02071924
+_0207191A:
+ add r0, r5, #0x0
+ mov r1, #0x1d
+ mov r2, #0x1
+ bl FUN_020731C0
+_02071924:
+ ldr r0, _02071944 ; =0x000005C8
+ mov r1, #0x0
+ ldr r0, [r5, r0]
+ bl FUN_0200C664
+ mov r0, #0x1
+ pop {r3-r5, pc}
+_02071932:
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ blx r2
+_02071938:
+ mov r0, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+_0207193C: .word 0x000006FC
+_02071940: .word 0x000005A4
+_02071944: .word 0x000005C8
+
+ thumb_func_start FUN_02071948
+FUN_02071948: ; 0x02071948
+ ldr r2, _0207196C ; =0x020F9544
+ mov r3, #0x0
+_0207194C:
+ lsl r1, r3, #0x1
+ ldrh r1, [r2, r1]
+ cmp r0, r1
+ bne _0207195C
+ add r3, #0xf
+ lsl r0, r3, #0x18
+ lsr r0, r0, #0x18
+ bx lr
+_0207195C:
+ add r1, r3, #0x1
+ lsl r1, r1, #0x18
+ lsr r3, r1, #0x18
+ cmp r3, #0xf
+ blo _0207194C
+ mov r0, #0xff
+ bx lr
+ nop
+_0207196C: .word 0x020F9544
+
+ thumb_func_start FUN_02071970
+FUN_02071970: ; 0x02071970
+ push {r4-r6, lr}
+ sub sp, #0x8
+ ldr r1, _02071C18 ; =0x00000B2A
+ add r4, r0, #0x0
+ ldrh r2, [r4, r1]
+ cmp r2, #0x4
+ bhi _02071A7A
+ add r2, r2, r2
+ add r2, pc
+ ldrh r2, [r2, #0x6]
+ lsl r2, r2, #0x10
+ asr r2, r2, #0x10
+ add pc, r2
+_0207198A: ; jump table (using 16-bit offset)
+ .short _02071994 - _0207198A - 2; case 0
+ .short _02071AD2 - _0207198A - 2; case 1
+ .short _02071B0C - _0207198A - 2; case 2
+ .short _02071B34 - _0207198A - 2; case 3
+ .short _02071BE0 - _0207198A - 2; case 4
+_02071994:
+ ldr r2, _02071C1C ; =0x021C48B8
+ ldr r3, [r2, #0x48]
+ mov r2, #0x1
+ tst r2, r3
+ beq _02071A26
+ sub r1, r1, #0x5
+ ldrb r1, [r4, r1]
+ cmp r1, #0x6
+ blo _020719B8
+ ldr r0, _02071C20 ; =0x000005DC
+ bl FUN_020054C8
+ add r0, r4, #0x0
+ bl FUN_02074538
+ add sp, #0x8
+ mov r0, #0x1
+ pop {r4-r6, pc}
+_020719B8:
+ bl FUN_02071C48
+ cmp r0, #0x0
+ beq _020719CA
+ cmp r0, #0x1
+ beq _02071A08
+ cmp r0, #0x2
+ beq _02071A1A
+ b _02071A26
+_020719CA:
+ ldr r0, _02071C24 ; =0x000005EC
+ bl FUN_020054C8
+ ldr r0, _02071C28 ; =0x000005C8
+ mov r1, #0x1
+ ldr r0, [r4, r0]
+ bl FUN_0200C664
+ ldr r0, _02071C2C ; =0x00000B25
+ mov r1, #0x2c
+ ldrb r2, [r4, r0]
+ mul r1, r2
+ add r3, r4, r1
+ ldr r1, _02071C30 ; =0x00000708
+ ldrh r2, [r3, r1]
+ sub r1, r1, #0x2
+ ldrh r1, [r3, r1]
+ sub r2, r2, r1
+ add r1, r0, #0x3
+ ldrh r1, [r4, r1]
+ cmp r2, r1
+ bge _020719FA
+ add r0, r0, #0x3
+ strh r2, [r4, r0]
+_020719FA:
+ ldr r0, _02071C18 ; =0x00000B2A
+ mov r1, #0x2
+ strh r1, [r4, r0]
+ mov r1, #0x0
+ add r0, r0, #0x2
+ strh r1, [r4, r0]
+ b _02071A26
+_02071A08:
+ ldr r0, _02071C20 ; =0x000005DC
+ bl FUN_020054C8
+ ldr r0, _02071C18 ; =0x00000B2A
+ mov r1, #0x1
+ strh r1, [r4, r0]
+ add sp, #0x8
+ mov r0, #0x14
+ pop {r4-r6, pc}
+_02071A1A:
+ ldr r0, _02071C34 ; =0x000005F2
+ bl FUN_020054C8
+ add sp, #0x8
+ mov r0, #0x1a
+ pop {r4-r6, pc}
+_02071A26:
+ ldr r0, _02071C1C ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #0x2
+ tst r0, r1
+ beq _02071A42
+ ldr r0, _02071C20 ; =0x000005DC
+ bl FUN_020054C8
+ add r0, r4, #0x0
+ bl FUN_02074538
+ add sp, #0x8
+ mov r0, #0x1
+ pop {r4-r6, pc}
+_02071A42:
+ add r0, r4, #0x0
+ bl FUN_02070B04
+ cmp r0, #0x2
+ bne _02071A7A
+ ldr r0, _02071C2C ; =0x00000B25
+ ldrb r1, [r4, r0]
+ sub r0, r0, #0x2
+ ldrb r0, [r4, r0]
+ lsl r0, r0, #0x1a
+ lsr r0, r0, #0x1a
+ cmp r1, r0
+ bne _02071A68
+ add r0, r4, #0x0
+ bl FUN_02074538
+ add sp, #0x8
+ mov r0, #0x1
+ pop {r4-r6, pc}
+_02071A68:
+ add r0, r4, #0x0
+ bl FUN_02071C48
+ cmp r0, #0x0
+ beq _02071A7C
+ cmp r0, #0x1
+ beq _02071ABA
+ cmp r0, #0x2
+ beq _02071AC6
+_02071A7A:
+ b _02071C12
+_02071A7C:
+ ldr r0, _02071C24 ; =0x000005EC
+ bl FUN_020054C8
+ ldr r0, _02071C28 ; =0x000005C8
+ mov r1, #0x1
+ ldr r0, [r4, r0]
+ bl FUN_0200C664
+ ldr r0, _02071C2C ; =0x00000B25
+ mov r1, #0x2c
+ ldrb r2, [r4, r0]
+ mul r1, r2
+ add r3, r4, r1
+ ldr r1, _02071C30 ; =0x00000708
+ ldrh r2, [r3, r1]
+ sub r1, r1, #0x2
+ ldrh r1, [r3, r1]
+ sub r2, r2, r1
+ add r1, r0, #0x3
+ ldrh r1, [r4, r1]
+ cmp r2, r1
+ bge _02071AAC
+ add r0, r0, #0x3
+ strh r2, [r4, r0]
+_02071AAC:
+ ldr r0, _02071C18 ; =0x00000B2A
+ mov r1, #0x2
+ strh r1, [r4, r0]
+ mov r1, #0x0
+ add r0, r0, #0x2
+ strh r1, [r4, r0]
+ b _02071C12
+_02071ABA:
+ ldr r0, _02071C18 ; =0x00000B2A
+ mov r1, #0x1
+ strh r1, [r4, r0]
+ add sp, #0x8
+ mov r0, #0x14
+ pop {r4-r6, pc}
+_02071AC6:
+ ldr r0, _02071C34 ; =0x000005F2
+ bl FUN_020054C8
+ add sp, #0x8
+ mov r0, #0x1a
+ pop {r4-r6, pc}
+_02071AD2:
+ ldr r0, _02071C1C ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #0x3
+ tst r0, r1
+ bne _02071ADE
+ b _02071C12
+_02071ADE:
+ ldr r0, _02071C20 ; =0x000005DC
+ bl FUN_020054C8
+ mov r0, #0x89
+ lsl r0, r0, #0x2
+ add r0, r4, r0
+ mov r1, #0x1
+ bl FUN_0200D0E0
+ ldr r0, _02071C28 ; =0x000005C8
+ mov r1, #0x0
+ ldr r0, [r4, r0]
+ bl FUN_0200C664
+ add r0, r4, #0x0
+ mov r1, #0x24
+ mov r2, #0x1
+ bl FUN_020731C0
+ ldr r0, _02071C18 ; =0x00000B2A
+ mov r1, #0x0
+ strh r1, [r4, r0]
+ b _02071C12
+_02071B0C:
+ sub r1, r1, #0x7
+ ldrb r1, [r4, r1]
+ mov r2, #0x0
+ mvn r2, r2
+ lsl r1, r1, #0x1a
+ lsr r1, r1, #0x1a
+ bl FUN_02071CB4
+ cmp r0, #0x1
+ bne _02071C12
+ ldr r0, _02071C24 ; =0x000005EC
+ bl FUN_020054C8
+ ldr r0, _02071C18 ; =0x00000B2A
+ mov r1, #0x3
+ strh r1, [r4, r0]
+ mov r1, #0x0
+ add r0, r0, #0x2
+ strh r1, [r4, r0]
+ b _02071C12
+_02071B34:
+ sub r1, r1, #0x5
+ ldrb r1, [r4, r1]
+ mov r2, #0x1
+ bl FUN_02071CB4
+ cmp r0, #0x1
+ bne _02071C12
+ ldr r0, _02071C38 ; =0x000005A4
+ ldr r1, _02071C2C ; =0x00000B25
+ ldr r0, [r4, r0]
+ ldrb r1, [r4, r1]
+ ldr r0, [r0, #0x0]
+ bl FUN_0206B9B0
+ add r6, r0, #0x0
+ ldr r0, _02071C3C ; =0x0000069C
+ mov r1, #0x40
+ ldr r0, [r4, r0]
+ bl FUN_0200A914
+ add r5, r0, #0x0
+ add r0, r6, #0x0
+ bl FUN_020690E4
+ add r2, r0, #0x0
+ mov r0, #0x6a
+ lsl r0, r0, #0x4
+ ldr r0, [r4, r0]
+ mov r1, #0x0
+ bl FUN_0200ACF8
+ mov r0, #0x0
+ str r0, [sp, #0x0]
+ mov r1, #0x1
+ mov r0, #0x6a
+ ldr r2, _02071C40 ; =0x00000B2C
+ str r1, [sp, #0x4]
+ lsl r0, r0, #0x4
+ ldrh r2, [r4, r2]
+ ldr r0, [r4, r0]
+ mov r3, #0x3
+ bl FUN_0200AD38
+ mov r1, #0x6a
+ lsl r1, r1, #0x4
+ ldr r0, [r4, r1]
+ add r1, r1, #0x4
+ ldr r1, [r4, r1]
+ add r2, r5, #0x0
+ bl FUN_0200B7B8
+ add r0, r5, #0x0
+ bl FUN_02021A20
+ mov r1, #0x0
+ add r0, r4, #0x0
+ mvn r1, r1
+ mov r2, #0x1
+ bl FUN_020731E8
+ ldr r0, _02071C44 ; =0x00000B2E
+ mov r1, #0x0
+ ldrh r0, [r4, r0]
+ mov r2, #0xc
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_0202914C
+ add r1, r0, #0x0
+ ldr r0, _02071C38 ; =0x000005A4
+ mov r2, #0x1
+ ldr r0, [r4, r0]
+ ldr r0, [r0, #0x1c]
+ add r0, #0x98
+ ldr r0, [r0, #0x0]
+ bl FUN_02028AD4
+ ldr r0, _02071C18 ; =0x00000B2A
+ mov r1, #0x4
+ strh r1, [r4, r0]
+ mov r1, #0x1a
+ sub r0, #0x8
+ strb r1, [r4, r0]
+ add sp, #0x8
+ mov r0, #0x14
+ pop {r4-r6, pc}
+_02071BE0:
+ ldr r0, _02071C1C ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #0x3
+ tst r0, r1
+ beq _02071C12
+ ldr r0, _02071C20 ; =0x000005DC
+ bl FUN_020054C8
+ mov r0, #0x89
+ lsl r0, r0, #0x2
+ add r0, r4, r0
+ mov r1, #0x1
+ bl FUN_0200D0E0
+ ldr r0, _02071C28 ; =0x000005C8
+ mov r1, #0x0
+ ldr r0, [r4, r0]
+ bl FUN_0200C664
+ add r0, r4, #0x0
+ bl FUN_02074538
+ add sp, #0x8
+ mov r0, #0x1
+ pop {r4-r6, pc}
+_02071C12:
+ mov r0, #0x1a
+ add sp, #0x8
+ pop {r4-r6, pc}
+ .balign 4
+_02071C18: .word 0x00000B2A
+_02071C1C: .word 0x021C48B8
+_02071C20: .word 0x000005DC
+_02071C24: .word 0x000005EC
+_02071C28: .word 0x000005C8
+_02071C2C: .word 0x00000B25
+_02071C30: .word 0x00000708
+_02071C34: .word 0x000005F2
+_02071C38: .word 0x000005A4
+_02071C3C: .word 0x0000069C
+_02071C40: .word 0x00000B2C
+_02071C44: .word 0x00000B2E
+
+ thumb_func_start FUN_02071C48
+FUN_02071C48: ; 0x02071C48
+ push {r3-r5, lr}
+ ldr r2, _02071CA8 ; =0x00000B25
+ add r4, r0, #0x0
+ ldrb r1, [r4, r2]
+ mov r0, #0x2c
+ mov r3, #0x71
+ mul r0, r1
+ add r0, r4, r0
+ lsl r3, r3, #0x4
+ ldrb r5, [r0, r3]
+ cmp r5, #0x0
+ beq _02071C64
+ mov r0, #0x2
+ pop {r3-r5, pc}
+_02071C64:
+ sub r2, r2, #0x2
+ ldrb r2, [r4, r2]
+ lsl r2, r2, #0x1a
+ lsr r2, r2, #0x1a
+ cmp r1, r2
+ beq _02071C82
+ add r1, r3, #0x0
+ sub r1, #0xa
+ ldrh r1, [r0, r1]
+ cmp r1, #0x0
+ beq _02071C82
+ sub r3, #0x8
+ ldrh r0, [r0, r3]
+ cmp r1, r0
+ bne _02071CA4
+_02071C82:
+ ldr r0, _02071CAC ; =0x000005C8
+ mov r1, #0x1
+ ldr r0, [r4, r0]
+ bl FUN_0200C664
+ add r0, r4, #0x0
+ mov r1, #0x83
+ mov r2, #0x1
+ bl FUN_020731E8
+ ldr r1, _02071CB0 ; =0x00000B2A
+ mov r0, #0x1
+ strh r0, [r4, r1]
+ mov r2, #0x1a
+ sub r1, #0x8
+ strb r2, [r4, r1]
+ pop {r3-r5, pc}
+_02071CA4:
+ mov r0, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+_02071CA8: .word 0x00000B25
+_02071CAC: .word 0x000005C8
+_02071CB0: .word 0x00000B2A
+
+ thumb_func_start FUN_02071CB4
+FUN_02071CB4: ; 0x02071CB4
+ push {r3-r7, lr}
+ add r6, r1, #0x0
+ mov r3, #0x2c
+ add r4, r6, #0x0
+ mul r4, r3
+ ldr r3, _02071D34 ; =0x00000706
+ add r5, r0, #0x0
+ add r7, r5, r3
+ lsl r2, r2, #0x10
+ ldrh r3, [r7, r4]
+ lsr r2, r2, #0x10
+ add r2, r3, r2
+ ldr r3, _02071D38 ; =0x00000B2C
+ strh r2, [r7, r4]
+ ldrh r2, [r5, r3]
+ add r2, r2, #0x1
+ strh r2, [r5, r3]
+ bl FUN_02072BBC
+ lsl r1, r6, #0x2
+ add r1, r6, r1
+ add r1, r1, #0x3
+ add r0, r5, #0x4
+ lsl r1, r1, #0x4
+ add r0, r0, r1
+ mov r1, #0x0
+ bl FUN_02019620
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ bl FUN_02072B7C
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ bl FUN_02072C28
+ ldr r1, _02071D3C ; =0x00000B28
+ ldrh r0, [r5, r1]
+ add r1, r1, #0x4
+ ldrh r1, [r5, r1]
+ cmp r0, r1
+ beq _02071D14
+ ldr r1, _02071D40 ; =0x00000708
+ add r2, r5, r4
+ ldrh r0, [r7, r4]
+ ldrh r1, [r2, r1]
+ cmp r0, r1
+ bne _02071D30
+_02071D14:
+ ldr r0, _02071D44 ; =0x000005A4
+ add r1, r6, #0x0
+ ldr r0, [r5, r0]
+ ldr r0, [r0, #0x0]
+ bl FUN_0206B9B0
+ ldrh r1, [r7, r4]
+ add r2, sp, #0x0
+ str r1, [sp, #0x0]
+ mov r1, #0xa2
+ bl FUN_02067830
+ mov r0, #0x1
+ pop {r3-r7, pc}
+_02071D30:
+ mov r0, #0x0
+ pop {r3-r7, pc}
+ .balign 4
+_02071D34: .word 0x00000706
+_02071D38: .word 0x00000B2C
+_02071D3C: .word 0x00000B28
+_02071D40: .word 0x00000708
+_02071D44: .word 0x000005A4
+
+ thumb_func_start FUN_02071D48
+FUN_02071D48: ; 0x02071D48
+ push {r4, lr}
+ ldr r1, _02071DE0 ; =0x021C48B8
+ add r4, r0, #0x0
+ ldr r2, [r1, #0x48]
+ mov r1, #0x1
+ tst r1, r2
+ beq _02071D96
+ ldr r0, _02071DE4 ; =0x00000B25
+ ldrb r1, [r4, r0]
+ cmp r1, #0x7
+ bne _02071D72
+ sub r0, r0, #0x2
+ ldrb r0, [r4, r0]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x1f
+ bne _02071D92
+ ldr r0, _02071DE8 ; =0x000005DC
+ bl FUN_020054C8
+ mov r0, #0x3
+ pop {r4, pc}
+_02071D72:
+ mov r0, #0x2c
+ mul r0, r1
+ add r1, r4, r0
+ mov r0, #0x71
+ lsl r0, r0, #0x4
+ ldrb r0, [r1, r0]
+ cmp r0, #0x0
+ bne _02071D8C
+ ldr r0, _02071DE8 ; =0x000005DC
+ bl FUN_020054C8
+ mov r0, #0x0
+ pop {r4, pc}
+_02071D8C:
+ ldr r0, _02071DEC ; =0x000005F2
+ bl FUN_020054C8
+_02071D92:
+ mov r0, #0x5
+ pop {r4, pc}
+_02071D96:
+ mov r1, #0x2
+ tst r1, r2
+ beq _02071DBA
+ ldr r0, _02071DF0 ; =0x00000B23
+ ldrb r0, [r4, r0]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x1f
+ bne _02071DB6
+ ldr r0, _02071DE8 ; =0x000005DC
+ bl FUN_020054C8
+ ldr r0, _02071DE4 ; =0x00000B25
+ mov r1, #0x7
+ strb r1, [r4, r0]
+ mov r0, #0x3
+ pop {r4, pc}
+_02071DB6:
+ mov r0, #0x5
+ pop {r4, pc}
+_02071DBA:
+ bl FUN_02070B04
+ cmp r0, #0x2
+ bne _02071DDE
+ ldr r1, _02071DE4 ; =0x00000B25
+ ldrb r2, [r4, r1]
+ mov r1, #0x2c
+ mul r1, r2
+ add r2, r4, r1
+ mov r1, #0x71
+ lsl r1, r1, #0x4
+ ldrb r1, [r2, r1]
+ cmp r1, #0x0
+ beq _02071DDE
+ ldr r0, _02071DEC ; =0x000005F2
+ bl FUN_020054C8
+ mov r0, #0x5
+_02071DDE:
+ pop {r4, pc}
+ .balign 4
+_02071DE0: .word 0x021C48B8
+_02071DE4: .word 0x00000B25
+_02071DE8: .word 0x000005DC
+_02071DEC: .word 0x000005F2
+_02071DF0: .word 0x00000B23
+
+ thumb_func_start FUN_02071DF4
+FUN_02071DF4: ; 0x02071DF4
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ ldr r0, _02071F1C ; =0x000005A4
+ mov r1, #0x0
+ ldr r0, [r5, r0]
+ mov r2, #0xc
+ ldrh r0, [r0, #0x24]
+ bl FUN_0206E710
+ mov r1, #0x22
+ add r4, r0, #0x0
+ bl FUN_0206E7DC
+ cmp r0, #0x0
+ bne _02071E1E
+ add r0, r4, #0x0
+ mov r1, #0x23
+ bl FUN_0206E7DC
+ cmp r0, #0x0
+ beq _02071E30
+_02071E1E:
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ add r0, r5, #0x0
+ mov r1, #0x0
+ bl FUN_0207703C
+ mov r0, #0x6
+ pop {r3-r5, pc}
+_02071E30:
+ add r0, r4, #0x0
+ mov r1, #0x24
+ bl FUN_0206E7DC
+ cmp r0, #0x0
+ beq _02071E5A
+ add r0, r4, #0x0
+ mov r1, #0x25
+ bl FUN_0206E7DC
+ cmp r0, #0x0
+ bne _02071E5A
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ add r0, r5, #0x0
+ mov r1, #0x1
+ bl FUN_0207703C
+ mov r0, #0x6
+ pop {r3-r5, pc}
+_02071E5A:
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ ldr r0, _02071F1C ; =0x000005A4
+ ldr r2, _02071F20 ; =0x00000B25
+ ldr r1, [r5, r0]
+ mov r0, #0xc
+ str r0, [sp, #0x0]
+ ldr r0, [r1, #0x0]
+ ldrh r1, [r1, #0x24]
+ ldrb r2, [r5, r2]
+ mov r3, #0x0
+ bl FUN_020847F8
+ cmp r0, #0x1
+ bne _02071F02
+ ldr r0, _02071F1C ; =0x000005A4
+ mov r2, #0x1
+ ldr r1, [r5, r0]
+ mov r3, #0xc
+ ldr r0, [r1, #0x4]
+ ldrh r1, [r1, #0x24]
+ bl FUN_0206EDD4
+ add r0, r4, #0x0
+ mov r1, #0x1a
+ bl FUN_0206E7DC
+ cmp r0, #0x0
+ ldr r0, _02071F1C ; =0x000005A4
+ beq _02071ECC
+ ldr r1, _02071F20 ; =0x00000B25
+ ldr r0, [r5, r0]
+ ldrb r1, [r5, r1]
+ ldr r0, [r0, #0x0]
+ bl FUN_0206B9B0
+ add r1, r0, #0x0
+ ldr r0, _02071F1C ; =0x000005A4
+ mov r2, #0x3
+ ldr r3, [r5, r0]
+ add r0, r3, #0x0
+ add r0, #0x3c
+ str r0, [sp, #0x0]
+ ldrh r3, [r3, #0x24]
+ mov r0, #0x0
+ bl FUN_02069168
+ ldr r1, _02071F1C ; =0x000005A4
+ ldr r2, [r5, r1]
+ strh r0, [r2, #0x38]
+ ldr r0, [r5, r1]
+ mov r2, #0x8
+ add r0, #0x23
+ strb r2, [r0, #0x0]
+ mov r0, #0x1b
+ pop {r3-r5, pc}
+_02071ECC:
+ ldr r0, [r5, r0]
+ ldrh r0, [r0, #0x24]
+ bl FUN_0206EB34
+ cmp r0, #0x1
+ bne _02071EFA
+ ldr r0, _02071F1C ; =0x000005A4
+ ldr r1, [r5, r0]
+ ldr r0, [r1, #0x10]
+ cmp r0, #0x0
+ beq _02071EFA
+ ldr r0, [r1, #0x0]
+ ldr r1, _02071F20 ; =0x00000B25
+ ldrb r1, [r5, r1]
+ bl FUN_0206B9B0
+ add r1, r0, #0x0
+ ldr r0, _02071F1C ; =0x000005A4
+ ldr r2, [r5, r0]
+ ldr r0, [r2, #0x10]
+ ldrh r2, [r2, #0x24]
+ bl FUN_02061618
+_02071EFA:
+ add r0, r5, #0x0
+ bl FUN_02075C54
+ b _02071F18
+_02071F02:
+ add r0, r5, #0x0
+ mov r1, #0x69
+ mov r2, #0x1
+ bl FUN_020731E8
+ ldr r0, _02071F20 ; =0x00000B25
+ mov r1, #0x7
+ strb r1, [r5, r0]
+ ldr r1, _02071F24 ; =FUN_02075CE4
+ sub r0, #0x11
+ str r1, [r5, r0]
+_02071F18:
+ mov r0, #0x5
+ pop {r3-r5, pc}
+ .balign 4
+_02071F1C: .word 0x000005A4
+_02071F20: .word 0x00000B25
+_02071F24: .word FUN_02075CE4
+
+ thumb_func_start FUN_02071F28
+FUN_02071F28: ; 0x02071F28
+ push {r3, lr}
+ ldr r1, _02071F50 ; =0x00000B25
+ ldrb r2, [r0, r1]
+ mov r1, #0x2c
+ mul r1, r2
+ add r1, r0, r1
+ ldr r0, _02071F54 ; =0x0000070C
+ ldrh r0, [r1, r0]
+ cmp r0, #0x0
+ bne _02071F40
+ mov r0, #0x0
+ pop {r3, pc}
+_02071F40:
+ bl FUN_0206EA98
+ cmp r0, #0x1
+ bne _02071F4C
+ mov r0, #0x2
+ pop {r3, pc}
+_02071F4C:
+ mov r0, #0x1
+ pop {r3, pc}
+ .balign 4
+_02071F50: .word 0x00000B25
+_02071F54: .word 0x0000070C
+
+ thumb_func_start FUN_02071F58
+FUN_02071F58: ; 0x02071F58
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ ldr r0, _02072074 ; =0x000005A4
+ ldr r1, _02072078 ; =0x00000B25
+ ldr r0, [r5, r0]
+ ldrb r1, [r5, r1]
+ ldr r0, [r0, #0x0]
+ bl FUN_0206B9B0
+ add r6, r0, #0x0
+ mov r7, #0x89
+ add r0, r5, #0x0
+ lsl r7, r7, #0x2
+ bl FUN_02071F28
+ cmp r0, #0x0
+ beq _02071F84
+ cmp r0, #0x1
+ beq _02071FF2
+ cmp r0, #0x2
+ beq _02072044
+ b _02072054
+_02071F84:
+ ldr r0, _02072074 ; =0x000005A4
+ ldr r0, [r5, r0]
+ ldrh r0, [r0, #0x24]
+ bl FUN_0206EA98
+ cmp r0, #0x1
+ bne _02071FA0
+ ldr r0, _02072074 ; =0x000005A4
+ mov r1, #0x6
+ ldr r0, [r5, r0]
+ add r0, #0x23
+ strb r1, [r0, #0x0]
+ mov r0, #0x1b
+ pop {r3-r7, pc}
+_02071FA0:
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ bl FUN_02072080
+ ldr r2, _0207207C ; =0x0000069C
+ mov r1, #0x76
+ ldr r0, [r5, r2]
+ add r2, #0xc
+ ldr r2, [r5, r2]
+ bl FUN_0200A8E0
+ add r0, r6, #0x0
+ bl FUN_020690E4
+ add r2, r0, #0x0
+ mov r0, #0x6a
+ lsl r0, r0, #0x4
+ ldr r0, [r5, r0]
+ mov r1, #0x0
+ bl FUN_0200ACF8
+ mov r2, #0x6a
+ lsl r2, r2, #0x4
+ ldr r0, [r5, r2]
+ sub r2, #0xfc
+ ldr r2, [r5, r2]
+ mov r1, #0x1
+ ldrh r2, [r2, #0x24]
+ bl FUN_0200AE38
+ mov r2, #0x6a
+ lsl r2, r2, #0x4
+ add r1, r2, #0x4
+ ldr r0, [r5, r2]
+ add r2, #0x8
+ ldr r1, [r5, r1]
+ ldr r2, [r5, r2]
+ bl FUN_0200B7B8
+ mov r4, #0xb
+ b _02072054
+_02071FF2:
+ ldr r2, _0207207C ; =0x0000069C
+ mov r1, #0x4e
+ ldr r0, [r5, r2]
+ add r2, #0xc
+ ldr r2, [r5, r2]
+ bl FUN_0200A8E0
+ add r0, r6, #0x0
+ bl FUN_020690E4
+ add r2, r0, #0x0
+ mov r0, #0x6a
+ lsl r0, r0, #0x4
+ ldr r0, [r5, r0]
+ mov r1, #0x0
+ bl FUN_0200ACF8
+ ldr r2, _02072078 ; =0x00000B25
+ mov r3, #0x6a
+ ldrb r4, [r5, r2]
+ mov r2, #0x2c
+ lsl r3, r3, #0x4
+ mul r2, r4
+ ldr r0, [r5, r3]
+ add r2, r5, r2
+ add r3, #0x6c
+ ldrh r2, [r2, r3]
+ mov r1, #0x1
+ bl FUN_0200AE70
+ mov r2, #0x6a
+ lsl r2, r2, #0x4
+ add r1, r2, #0x4
+ ldr r0, [r5, r2]
+ add r2, #0x8
+ ldr r1, [r5, r1]
+ ldr r2, [r5, r2]
+ bl FUN_0200B7B8
+ mov r4, #0x9
+ b _02072054
+_02072044:
+ ldr r2, _0207207C ; =0x0000069C
+ mov r1, #0x4d
+ ldr r0, [r5, r2]
+ add r2, #0x8
+ ldr r2, [r5, r2]
+ bl FUN_0200A8E0
+ mov r4, #0xb
+_02072054:
+ add r0, r5, r7
+ mov r1, #0x1
+ mov r2, #0xa
+ mov r3, #0xf
+ bl FUN_0200D0BC
+ add r0, r5, r7
+ mov r1, #0xf
+ bl FUN_02019620
+ add r0, r5, #0x0
+ bl FUN_0207322C
+ add r0, r4, #0x0
+ pop {r3-r7, pc}
+ nop
+_02072074: .word 0x000005A4
+_02072078: .word 0x00000B25
+_0207207C: .word 0x0000069C
+
+ thumb_func_start FUN_02072080
+FUN_02072080: ; 0x02072080
+ push {r3-r5, lr}
+ add r4, r0, #0x0
+ ldr r0, _020720D4 ; =0x000005A4
+ add r5, r1, #0x0
+ ldr r1, [r4, r0]
+ mov r2, #0x1
+ ldrh r1, [r1, #0x24]
+ mov r3, #0xc
+ str r1, [sp, #0x0]
+ ldr r1, [r4, r0]
+ ldr r0, [r1, #0x4]
+ ldrh r1, [r1, #0x24]
+ bl FUN_0206EDD4
+ add r0, r5, #0x0
+ mov r1, #0x6
+ add r2, sp, #0x0
+ bl FUN_02067830
+ add r0, r5, #0x0
+ bl FUN_02069EC4
+ ldr r1, _020720D8 ; =0x00000B25
+ ldr r0, _020720D4 ; =0x000005A4
+ ldrb r3, [r4, r1]
+ ldr r0, [r4, r0]
+ mov r2, #0x2c
+ add r5, r3, #0x0
+ mul r5, r2
+ ldrh r0, [r0, #0x24]
+ ldr r3, _020720DC ; =0x0000070C
+ add r5, r4, r5
+ strh r0, [r5, r3]
+ ldrb r1, [r4, r1]
+ add r0, r4, #0x0
+ mul r2, r1
+ add r2, r4, r2
+ ldrh r2, [r2, r3]
+ bl FUN_02073A78
+ pop {r3-r5, pc}
+ nop
+_020720D4: .word 0x000005A4
+_020720D8: .word 0x00000B25
+_020720DC: .word 0x0000070C
+
+ thumb_func_start FUN_020720E0
+FUN_020720E0: ; 0x020720E0
+ push {r0-r3}
+ push {r3-r5, lr}
+ add r4, r0, #0x0
+ ldr r0, _02072134 ; =0x000005A4
+ add r5, r1, #0x0
+ ldr r0, [r4, r0]
+ lsl r1, r2, #0x10
+ ldr r0, [r0, #0x4]
+ lsr r1, r1, #0x10
+ mov r2, #0x1
+ mov r3, #0xc
+ bl FUN_0206ED38
+ add r0, r5, #0x0
+ mov r1, #0x6
+ add r2, sp, #0x1c
+ bl FUN_02067830
+ add r0, r5, #0x0
+ bl FUN_02069EC4
+ ldr r1, _02072138 ; =0x00000B25
+ mov r2, #0x2c
+ ldrb r3, [r4, r1]
+ ldr r0, [sp, #0x1c]
+ add r5, r3, #0x0
+ mul r5, r2
+ ldr r3, _0207213C ; =0x0000070C
+ add r5, r4, r5
+ strh r0, [r5, r3]
+ ldrb r1, [r4, r1]
+ add r0, r4, #0x0
+ mul r2, r1
+ add r2, r4, r2
+ ldrh r2, [r2, r3]
+ bl FUN_02073A78
+ pop {r3-r5}
+ pop {r3}
+ add sp, #0x10
+ bx r3
+ nop
+_02072134: .word 0x000005A4
+_02072138: .word 0x00000B25
+_0207213C: .word 0x0000070C
+
+ thumb_func_start FUN_02072140
+FUN_02072140: ; 0x02072140
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r0, _02072168 ; =0x00000B24
+ ldrb r0, [r4, r0]
+ bl FUN_0201BD70
+ cmp r0, #0x0
+ bne _02072162
+ ldr r0, _0207216C ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #0x3
+ tst r0, r1
+ beq _02072162
+ add r0, r4, #0x0
+ bl FUN_020722B8
+ pop {r4, pc}
+_02072162:
+ mov r0, #0xb
+ pop {r4, pc}
+ nop
+_02072168: .word 0x00000B24
+_0207216C: .word 0x021C48B8
+
+ thumb_func_start FUN_02072170
+FUN_02072170: ; 0x02072170
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r0, _02072190 ; =0x00000B24
+ ldrb r0, [r4, r0]
+ bl FUN_0201BD70
+ cmp r0, #0x0
+ bne _0207218A
+ add r0, r4, #0x0
+ bl FUN_020732CC
+ mov r0, #0xa
+ pop {r4, pc}
+_0207218A:
+ mov r0, #0x9
+ pop {r4, pc}
+ nop
+_02072190: .word 0x00000B24
+
+ thumb_func_start FUN_02072194
+FUN_02072194: ; 0x02072194
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ ldr r0, _020722A4 ; =0x000006FC
+ mov r1, #0xc
+ ldr r0, [r5, r0]
+ bl FUN_020021AC
+ cmp r0, #0x0
+ beq _020721B0
+ mov r1, #0x1
+ mvn r1, r1
+ cmp r0, r1
+ beq _02072298
+ b _020722A0
+_020721B0:
+ ldr r0, _020722A8 ; =0x000005A4
+ ldr r1, _020722AC ; =0x00000B25
+ ldr r0, [r5, r0]
+ ldrb r1, [r5, r1]
+ ldr r0, [r0, #0x0]
+ bl FUN_0206B9B0
+ add r7, r0, #0x0
+ ldr r0, _020722A8 ; =0x000005A4
+ ldr r0, [r5, r0]
+ ldrh r6, [r0, #0x24]
+ ldr r0, _020722AC ; =0x00000B25
+ ldrb r1, [r5, r0]
+ mov r0, #0x2c
+ mul r0, r1
+ add r1, r5, r0
+ ldr r0, _020722B0 ; =0x0000070C
+ ldrh r4, [r1, r0]
+ add r0, r5, #0x0
+ add r1, r7, #0x0
+ bl FUN_02072080
+ ldr r0, _020722A8 ; =0x000005A4
+ add r1, r4, #0x0
+ ldr r0, [r5, r0]
+ mov r2, #0x1
+ ldr r0, [r0, #0x4]
+ mov r3, #0xc
+ bl FUN_0206ED38
+ cmp r0, #0x0
+ bne _0207220C
+ add r0, r5, #0x0
+ add r1, r7, #0x0
+ add r2, r6, #0x0
+ add r3, r4, #0x0
+ bl FUN_020720E0
+ ldr r2, _020722B4 ; =0x0000069C
+ mov r1, #0x53
+ ldr r0, [r5, r2]
+ add r2, #0x8
+ ldr r2, [r5, r2]
+ bl FUN_0200A8E0
+ b _02072282
+_0207220C:
+ ldr r0, _020722A8 ; =0x000005A4
+ ldr r0, [r5, r0]
+ ldrh r0, [r0, #0x24]
+ bl FUN_0206EA98
+ cmp r0, #0x1
+ bne _02072246
+ ldr r0, _020722A8 ; =0x000005A4
+ lsl r1, r4, #0x10
+ ldr r0, [r5, r0]
+ lsr r1, r1, #0x10
+ ldr r0, [r0, #0x4]
+ mov r2, #0x1
+ mov r3, #0xc
+ bl FUN_0206EDD4
+ add r0, r5, #0x0
+ add r1, r7, #0x0
+ add r2, r6, #0x0
+ add r3, r4, #0x0
+ bl FUN_020720E0
+ ldr r0, _020722A8 ; =0x000005A4
+ mov r1, #0x6
+ ldr r0, [r5, r0]
+ add r0, #0x23
+ strb r1, [r0, #0x0]
+ mov r0, #0x1b
+ pop {r3-r7, pc}
+_02072246:
+ ldr r2, _020722B4 ; =0x0000069C
+ mov r1, #0x54
+ ldr r0, [r5, r2]
+ add r2, #0xc
+ ldr r2, [r5, r2]
+ bl FUN_0200A8E0
+ mov r0, #0x6a
+ lsl r0, r0, #0x4
+ ldr r0, [r5, r0]
+ mov r1, #0x1
+ add r2, r4, #0x0
+ bl FUN_0200AE38
+ mov r0, #0x6a
+ lsl r0, r0, #0x4
+ ldr r0, [r5, r0]
+ mov r1, #0x2
+ add r2, r6, #0x0
+ bl FUN_0200AE38
+ mov r2, #0x6a
+ lsl r2, r2, #0x4
+ add r1, r2, #0x4
+ ldr r0, [r5, r2]
+ add r2, #0x8
+ ldr r1, [r5, r1]
+ ldr r2, [r5, r2]
+ bl FUN_0200B7B8
+_02072282:
+ mov r0, #0x89
+ lsl r0, r0, #0x2
+ add r0, r5, r0
+ mov r1, #0xf
+ bl FUN_02019620
+ add r0, r5, #0x0
+ bl FUN_0207322C
+ mov r0, #0xb
+ pop {r3-r7, pc}
+_02072298:
+ add r0, r5, #0x0
+ bl FUN_020722B8
+ pop {r3-r7, pc}
+_020722A0:
+ mov r0, #0xa
+ pop {r3-r7, pc}
+ .balign 4
+_020722A4: .word 0x000006FC
+_020722A8: .word 0x000005A4
+_020722AC: .word 0x00000B25
+_020722B0: .word 0x0000070C
+_020722B4: .word 0x0000069C
+
+ thumb_func_start FUN_020722B8
+FUN_020722B8: ; 0x020722B8
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r0, _02072304 ; =0x000005A4
+ ldr r1, [r4, r0]
+ add r0, r1, #0x0
+ add r0, #0x20
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0xa
+ bne _020722F8
+ mov r0, #0x89
+ lsl r0, r0, #0x2
+ add r0, r4, r0
+ mov r1, #0x1
+ bl FUN_0200D0E0
+ add r0, r4, #0x0
+ mov r1, #0x1d
+ mov r2, #0x1
+ bl FUN_020731C0
+ ldr r0, _02072308 ; =0x000005C8
+ mov r1, #0x0
+ ldr r0, [r4, r0]
+ bl FUN_0200C664
+ ldr r0, _02072304 ; =0x000005A4
+ mov r1, #0x0
+ ldr r0, [r4, r0]
+ add r0, #0x20
+ strb r1, [r0, #0x0]
+ mov r0, #0x1
+ pop {r4, pc}
+_020722F8:
+ mov r0, #0xa
+ add r1, #0x23
+ strb r0, [r1, #0x0]
+ mov r0, #0x1b
+ pop {r4, pc}
+ nop
+_02072304: .word 0x000005A4
+_02072308: .word 0x000005C8
+
+ thumb_func_start FUN_0207230C
+FUN_0207230C: ; 0x0207230C
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ ldr r0, _02072410 ; =0x000005A4
+ ldr r1, _02072414 ; =0x00000B25
+ ldr r0, [r5, r0]
+ ldrb r1, [r5, r1]
+ ldr r0, [r0, #0x0]
+ bl FUN_0206B9B0
+ add r7, r0, #0x0
+ ldr r0, _02072410 ; =0x000005A4
+ ldr r0, [r5, r0]
+ ldrh r6, [r0, #0x24]
+ ldr r0, _02072414 ; =0x00000B25
+ ldrb r1, [r5, r0]
+ mov r0, #0x2c
+ mul r0, r1
+ add r1, r5, r0
+ ldr r0, _02072418 ; =0x0000070C
+ ldrh r4, [r1, r0]
+ add r0, r5, #0x0
+ add r1, r7, #0x0
+ bl FUN_02072080
+ cmp r4, #0x0
+ bne _02072388
+ ldr r2, _0207241C ; =0x0000069C
+ mov r1, #0x76
+ ldr r0, [r5, r2]
+ add r2, #0xc
+ ldr r2, [r5, r2]
+ bl FUN_0200A8E0
+ add r0, r7, #0x0
+ bl FUN_020690E4
+ add r2, r0, #0x0
+ mov r0, #0x6a
+ lsl r0, r0, #0x4
+ ldr r0, [r5, r0]
+ mov r1, #0x0
+ bl FUN_0200ACF8
+ mov r2, #0x6a
+ lsl r2, r2, #0x4
+ ldr r0, [r5, r2]
+ sub r2, #0xfc
+ ldr r2, [r5, r2]
+ mov r1, #0x1
+ ldrh r2, [r2, #0x24]
+ bl FUN_0200AE38
+ mov r2, #0x6a
+ lsl r2, r2, #0x4
+ add r1, r2, #0x4
+ ldr r0, [r5, r2]
+ add r2, #0x8
+ ldr r1, [r5, r1]
+ ldr r2, [r5, r2]
+ bl FUN_0200B7B8
+ b _020723D6
+_02072388:
+ ldr r0, _02072410 ; =0x000005A4
+ lsl r1, r4, #0x10
+ ldr r0, [r5, r0]
+ lsr r1, r1, #0x10
+ ldr r0, [r0, #0x4]
+ mov r2, #0x1
+ mov r3, #0xc
+ bl FUN_0206ED38
+ ldr r2, _0207241C ; =0x0000069C
+ mov r1, #0x54
+ ldr r0, [r5, r2]
+ add r2, #0xc
+ ldr r2, [r5, r2]
+ bl FUN_0200A8E0
+ mov r0, #0x6a
+ lsl r0, r0, #0x4
+ ldr r0, [r5, r0]
+ mov r1, #0x1
+ add r2, r4, #0x0
+ bl FUN_0200AE38
+ mov r0, #0x6a
+ lsl r0, r0, #0x4
+ ldr r0, [r5, r0]
+ mov r1, #0x2
+ add r2, r6, #0x0
+ bl FUN_0200AE38
+ mov r2, #0x6a
+ lsl r2, r2, #0x4
+ add r1, r2, #0x4
+ ldr r0, [r5, r2]
+ add r2, #0x8
+ ldr r1, [r5, r1]
+ ldr r2, [r5, r2]
+ bl FUN_0200B7B8
+_020723D6:
+ mov r0, #0x89
+ lsl r0, r0, #0x2
+ add r0, r5, r0
+ mov r1, #0x1
+ mov r2, #0xa
+ mov r3, #0xf
+ bl FUN_0200D0BC
+ mov r0, #0x89
+ lsl r0, r0, #0x2
+ add r0, r5, r0
+ mov r1, #0xf
+ bl FUN_02019620
+ add r0, r5, #0x0
+ bl FUN_0207322C
+ ldr r0, _02072410 ; =0x000005A4
+ ldr r1, [r5, r0]
+ add r0, r1, #0x0
+ add r0, #0x20
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0xc
+ bne _0207240C
+ mov r0, #0xa
+ add r1, #0x20
+ strb r0, [r1, #0x0]
+_0207240C:
+ mov r0, #0xb
+ pop {r3-r7, pc}
+ .balign 4
+_02072410: .word 0x000005A4
+_02072414: .word 0x00000B25
+_02072418: .word 0x0000070C
+_0207241C: .word 0x0000069C
+
+ thumb_func_start FUN_02072420
+FUN_02072420: ; 0x02072420
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r0, _02072470 ; =0x00000B25
+ ldrb r1, [r4, r0]
+ mov r0, #0x2c
+ mul r0, r1
+ add r1, r4, r0
+ ldr r0, _02072474 ; =0x00000712
+ ldrh r0, [r1, r0]
+ cmp r0, #0x0
+ bne _02072444
+ ldr r0, _02072478 ; =0x000005A4
+ mov r1, #0x0
+ ldr r0, [r4, r0]
+ add r0, #0x23
+ strb r1, [r0, #0x0]
+ mov r0, #0x1b
+ pop {r4, pc}
+_02072444:
+ ldr r0, _0207247C ; =0x000005C8
+ mov r1, #0x1
+ ldr r0, [r4, r0]
+ bl FUN_0200C664
+ add r0, r4, #0x0
+ mov r1, #0xc3
+ mov r2, #0x1
+ bl FUN_020731E8
+ ldr r0, _02072480 ; =FUN_02074428
+ ldr r1, _02072484 ; =0x00000B18
+ ldr r2, _02072488 ; =FUN_02074454
+ str r0, [r4, r1]
+ add r0, r1, #0x4
+ str r2, [r4, r0]
+ mov r0, #0x16
+ add r1, #0xa
+ strb r0, [r4, r1]
+ mov r0, #0x14
+ pop {r4, pc}
+ nop
+_02072470: .word 0x00000B25
+_02072474: .word 0x00000712
+_02072478: .word 0x000005A4
+_0207247C: .word 0x000005C8
+_02072480: .word FUN_02074428
+_02072484: .word 0x00000B18
+_02072488: .word FUN_02074454
+
+ thumb_func_start FUN_0207248C
+FUN_0207248C: ; 0x0207248C
+ ldr r1, _020724C0 ; =0x000005A4
+ ldr r0, [r0, r1]
+ add r0, #0x20
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x5
+ beq _020724B8
+ cmp r0, #0x6
+ beq _020724B8
+ cmp r0, #0x7
+ beq _020724B8
+ cmp r0, #0x8
+ beq _020724B8
+ cmp r0, #0x9
+ beq _020724B8
+ cmp r0, #0xb
+ beq _020724B8
+ cmp r0, #0xe
+ beq _020724B8
+ cmp r0, #0x10
+ beq _020724B8
+ cmp r0, #0x14
+ bne _020724BC
+_020724B8:
+ mov r0, #0x0
+ bx lr
+_020724BC:
+ mov r0, #0x1
+ bx lr
+ .balign 4
+_020724C0: .word 0x000005A4
+
+ thumb_func_start FUN_020724C4
+FUN_020724C4: ; 0x020724C4
+ mov r0, #0x14
+ bx lr
+
+ thumb_func_start FUN_020724C8
+FUN_020724C8: ; 0x020724C8
+ mov r0, #0x15
+ bx lr
+
+ thumb_func_start FUN_020724CC
+FUN_020724CC: ; 0x020724CC
+ mov r0, #0x13
+ bx lr
+
+ thumb_func_start FUN_020724D0
+FUN_020724D0: ; 0x020724D0
+ mov r0, #0x12
+ bx lr
+
+ thumb_func_start FUN_020724D4
+FUN_020724D4: ; 0x020724D4
+ push {r3-r7, lr}
+ sub sp, #0x10
+ add r4, r0, #0x0
+ add r5, r1, #0x0
+ add r6, r2, #0x0
+ mov r0, #0x14
+ mov r1, #0x16
+ add r2, r4, #0x0
+ add r7, r3, #0x0
+ bl LoadFromNarc_2
+ add r1, sp, #0xc
+ str r0, [sp, #0x8]
+ blx FUN_020B0180
+ ldr r0, [sp, #0xc]
+ mov r4, #0x0
+ str r0, [sp, #0x4]
+ add r0, #0xc
+ str r0, [sp, #0x4]
+ str r0, [sp, #0x0]
+_020724FE:
+ ldr r1, [sp, #0x0]
+ add r0, r5, #0x0
+ mov r2, #0x20
+ blx 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
+ add r1, r4, #0x0
+ add r1, #0xc
+ lsl r2, r1, #0x6
+ ldr r1, [sp, #0x4]
+ add r0, r7, #0x0
+ add r1, r1, r2
+ mov r2, #0x20
+ blx memcpy
+ ldr r0, [sp, #0x0]
+ add r4, r4, #0x1
+ add r0, #0x40
+ str r0, [sp, #0x0]
+ add r5, #0x20
+ add r6, #0x20
+ add r7, #0x20
+ cmp r4, #0x6
+ blo _020724FE
+ ldr r0, [sp, #0x8]
+ bl FUN_02016A18
+ add sp, #0x10
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_02072548
+FUN_02072548: ; 0x02072548
+ push {r4-r6, lr}
+ add r5, r1, #0x0
+ add r4, r2, #0x0
+ add r6, r0, #0x0
+ bl FUN_02019150
+ add r1, r5, #0x0
+ add r2, r4, #0x0
+ add r0, r6, #0x0
+ add r1, #0x10
+ add r2, #0x8
+ bl FUN_02019150
+ add r1, r5, #0x0
+ add r2, r4, #0x0
+ add r0, r6, #0x0
+ add r1, #0x20
+ add r2, #0x10
+ bl FUN_02019150
+ add r1, r5, #0x0
+ add r2, r4, #0x0
+ add r0, r6, #0x0
+ add r1, #0x30
+ add r2, #0x18
+ bl FUN_02019150
+ add r5, #0x40
+ add r4, #0x20
+ add r0, r6, #0x0
+ add r1, r5, #0x0
+ add r2, r4, #0x0
+ bl FUN_02019150
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_02072590
+FUN_02072590: ; 0x02072590
+ push {r3-r5, lr}
+ sub sp, #0x8
+ add r5, r0, #0x0
+ ldr r4, _020726C0 ; =0x020F975C
+ ldr r0, [r5, #0x0]
+ add r1, r5, #0x4
+ add r2, r4, #0x0
+ bl FUN_02072548
+ add r1, r5, #0x0
+ ldr r0, [r5, #0x0]
+ ldr r2, _020726C4 ; =0x020F97AC
+ add r1, #0xa4
+ bl FUN_02072548
+ mov r1, #0x51
+ lsl r1, r1, #0x2
+ ldr r0, [r5, #0x0]
+ ldr r2, _020726C8 ; =0x020F97FC
+ add r1, r5, r1
+ bl FUN_02072548
+ ldr r0, _020726CC ; =0x000005A4
+ ldr r0, [r5, r0]
+ add r0, #0x21
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x2
+ ldr r0, [r5, #0x0]
+ bne _020725F8
+ add r1, r5, #0x0
+ add r2, r4, #0x0
+ add r1, #0x54
+ add r2, #0xf0
+ bl FUN_02072548
+ mov r2, #0x46
+ add r1, r5, #0x0
+ lsl r2, r2, #0x2
+ ldr r0, [r5, #0x0]
+ add r1, #0xf4
+ add r2, r4, r2
+ bl FUN_02072548
+ mov r2, #0x65
+ lsl r2, r2, #0x2
+ add r1, r5, r2
+ sub r2, #0x54
+ ldr r0, [r5, #0x0]
+ add r2, r4, r2
+ bl FUN_02072548
+ b _02072622
+_020725F8:
+ add r1, r5, #0x0
+ add r2, r4, #0x0
+ add r1, #0x54
+ add r2, #0x28
+ bl FUN_02072548
+ add r1, r5, #0x0
+ add r2, r4, #0x0
+ ldr r0, [r5, #0x0]
+ add r1, #0xf4
+ add r2, #0x78
+ bl FUN_02072548
+ mov r1, #0x65
+ lsl r1, r1, #0x2
+ add r4, #0xc8
+ ldr r0, [r5, #0x0]
+ add r1, r5, r1
+ add r2, r4, #0x0
+ bl FUN_02072548
+_02072622:
+ ldr r0, _020726CC ; =0x000005A4
+ ldr r0, [r5, r0]
+ add r0, #0x20
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x2
+ beq _02072632
+ cmp r0, #0x11
+ bne _0207265A
+_02072632:
+ ldr r1, _020726D0 ; =0x020F96EC
+ add r0, sp, #0x0
+ ldrh r3, [r1, #0x38]
+ add r2, sp, #0x0
+ strh r3, [r0, #0x0]
+ ldrh r3, [r1, #0x3a]
+ strh r3, [r0, #0x2]
+ ldrh r3, [r1, #0x3c]
+ ldrh r1, [r1, #0x3e]
+ strh r3, [r0, #0x4]
+ strh r1, [r0, #0x6]
+ mov r1, #0x16
+ strb r1, [r0, #0x2]
+ mov r1, #0x7d
+ lsl r1, r1, #0x2
+ ldr r0, [r5, #0x0]
+ add r1, r5, r1
+ bl FUN_02019150
+ b _02072668
+_0207265A:
+ mov r1, #0x7d
+ lsl r1, r1, #0x2
+ ldr r0, [r5, #0x0]
+ ldr r2, _020726D4 ; =0x020F9724
+ add r1, r5, r1
+ bl FUN_02019150
+_02072668:
+ mov r1, #0x79
+ lsl r1, r1, #0x2
+ ldr r0, [r5, #0x0]
+ ldr r2, _020726D8 ; =0x020F972C
+ add r1, r5, r1
+ bl FUN_02019150
+ mov r1, #0x81
+ lsl r1, r1, #0x2
+ ldr r0, [r5, #0x0]
+ ldr r2, _020726DC ; =0x020F9734
+ add r1, r5, r1
+ bl FUN_02019150
+ mov r1, #0x85
+ lsl r1, r1, #0x2
+ ldr r0, [r5, #0x0]
+ ldr r2, _020726E0 ; =0x020F973C
+ add r1, r5, r1
+ bl FUN_02019150
+ mov r1, #0x89
+ lsl r1, r1, #0x2
+ ldr r0, [r5, #0x0]
+ ldr r2, _020726E4 ; =0x020F9744
+ add r1, r5, r1
+ bl FUN_02019150
+ mov r1, #0x8d
+ lsl r1, r1, #0x2
+ ldr r0, [r5, #0x0]
+ ldr r2, _020726E8 ; =0x020F974C
+ add r1, r5, r1
+ bl FUN_02019150
+ mov r1, #0x91
+ lsl r1, r1, #0x2
+ ldr r0, [r5, #0x0]
+ ldr r2, _020726EC ; =0x020F9754
+ add r1, r5, r1
+ bl FUN_02019150
+ add sp, #0x8
+ pop {r3-r5, pc}
+ .balign 4
+_020726C0: .word 0x020F975C
+_020726C4: .word 0x020F97AC
+_020726C8: .word 0x020F97FC
+_020726CC: .word 0x000005A4
+_020726D0: .word 0x020F96EC
+_020726D4: .word 0x020F9724
+_020726D8: .word 0x020F972C
+_020726DC: .word 0x020F9734
+_020726E0: .word 0x020F973C
+_020726E4: .word 0x020F9744
+_020726E8: .word 0x020F974C
+_020726EC: .word 0x020F9754
+
+ thumb_func_start FUN_020726F0
+FUN_020726F0: ; 0x020726F0
+ push {r4-r6, lr}
+ add r6, r0, #0x0
+ mov r5, #0x0
+ add r4, r6, #0x4
+_020726F8:
+ lsl r0, r5, #0x4
+ add r0, r4, r0
+ bl FUN_02019178
+ add r0, r5, #0x1
+ lsl r0, r0, #0x10
+ lsr r5, r0, #0x10
+ cmp r5, #0x25
+ blo _020726F8
+ mov r4, #0x95
+ lsl r4, r4, #0x2
+ add r0, r6, r4
+ bl FUN_02019048
+ cmp r0, #0x1
+ bne _0207271E
+ add r0, r6, r4
+ bl FUN_02019178
+_0207271E:
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_02072720
+FUN_02072720: ; 0x02072720
+ push {r4, lr}
+ ldr r2, _020727F8 ; =0x0000069C
+ add r4, r0, #0x0
+ ldr r0, [r4, r2]
+ add r2, #0x10
+ ldr r2, [r4, r2]
+ mov r1, #0x91
+ bl FUN_0200A8E0
+ ldr r2, _020727F8 ; =0x0000069C
+ mov r1, #0x92
+ ldr r0, [r4, r2]
+ add r2, #0x14
+ ldr r2, [r4, r2]
+ bl FUN_0200A8E0
+ ldr r2, _020727F8 ; =0x0000069C
+ mov r1, #0x93
+ ldr r0, [r4, r2]
+ add r2, #0x18
+ ldr r2, [r4, r2]
+ bl FUN_0200A8E0
+ ldr r2, _020727F8 ; =0x0000069C
+ mov r1, #0xa0
+ ldr r0, [r4, r2]
+ add r2, #0x1c
+ ldr r2, [r4, r2]
+ bl FUN_0200A8E0
+ ldr r2, _020727F8 ; =0x0000069C
+ mov r1, #0xa1
+ ldr r0, [r4, r2]
+ add r2, #0x20
+ ldr r2, [r4, r2]
+ bl FUN_0200A8E0
+ ldr r2, _020727F8 ; =0x0000069C
+ mov r1, #0x94
+ ldr r0, [r4, r2]
+ add r2, #0x24
+ ldr r2, [r4, r2]
+ bl FUN_0200A8E0
+ ldr r2, _020727F8 ; =0x0000069C
+ mov r1, #0x95
+ ldr r0, [r4, r2]
+ add r2, #0x28
+ ldr r2, [r4, r2]
+ bl FUN_0200A8E0
+ ldr r2, _020727F8 ; =0x0000069C
+ mov r1, #0x96
+ ldr r0, [r4, r2]
+ add r2, #0x2c
+ ldr r2, [r4, r2]
+ bl FUN_0200A8E0
+ ldr r2, _020727F8 ; =0x0000069C
+ mov r1, #0x97
+ ldr r0, [r4, r2]
+ add r2, #0x30
+ ldr r2, [r4, r2]
+ bl FUN_0200A8E0
+ ldr r2, _020727F8 ; =0x0000069C
+ mov r1, #0x98
+ ldr r0, [r4, r2]
+ add r2, #0x34
+ ldr r2, [r4, r2]
+ bl FUN_0200A8E0
+ ldr r2, _020727F8 ; =0x0000069C
+ mov r1, #0x99
+ ldr r0, [r4, r2]
+ add r2, #0x38
+ ldr r2, [r4, r2]
+ bl FUN_0200A8E0
+ ldr r2, _020727F8 ; =0x0000069C
+ mov r1, #0x9a
+ ldr r0, [r4, r2]
+ add r2, #0x3c
+ ldr r2, [r4, r2]
+ bl FUN_0200A8E0
+ ldr r2, _020727F8 ; =0x0000069C
+ mov r1, #0x9b
+ ldr r0, [r4, r2]
+ add r2, #0x40
+ ldr r2, [r4, r2]
+ bl FUN_0200A8E0
+ ldr r2, _020727F8 ; =0x0000069C
+ mov r1, #0x9a
+ ldr r0, [r4, r2]
+ add r2, #0x44
+ ldr r2, [r4, r2]
+ bl FUN_0200A8E0
+ ldr r2, _020727F8 ; =0x0000069C
+ mov r1, #0xa6
+ ldr r0, [r4, r2]
+ add r2, #0x48
+ ldr r2, [r4, r2]
+ bl FUN_0200A8E0
+ pop {r4, pc}
+ .balign 4
+_020727F8: .word 0x0000069C
+
+ thumb_func_start FUN_020727FC
+FUN_020727FC: ; 0x020727FC
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ ldr r0, _02072840 ; =0x0000069C
+ add r4, r2, #0x0
+ add r7, r1, #0x0
+ add r1, r4, #0x0
+ ldr r0, [r5, r0]
+ add r1, #0x9c
+ bl FUN_0200A914
+ add r6, r0, #0x0
+ mov r0, #0x6a
+ lsl r0, r0, #0x4
+ ldr r0, [r5, r0]
+ mov r1, #0x0
+ add r2, r7, #0x0
+ bl FUN_0200AD5C
+ mov r1, #0x6a
+ add r4, #0xf
+ lsl r1, r1, #0x4
+ lsl r2, r4, #0x2
+ ldr r0, [r5, r1]
+ add r2, r5, r2
+ add r1, #0xc
+ ldr r1, [r2, r1]
+ add r2, r6, #0x0
+ bl FUN_0200B7B8
+ add r0, r6, #0x0
+ bl FUN_02021A20
+ pop {r3-r7, pc}
+ nop
+_02072840: .word 0x0000069C
+
+ thumb_func_start FUN_02072844
+FUN_02072844: ; 0x02072844
+ push {r4-r7, lr}
+ sub sp, #0x24
+ add r5, r0, #0x0
+ add r7, r1, #0x0
+ lsl r0, r2, #0x1
+ mov r1, #0x17
+ sub r1, r1, r0
+ lsl r1, r1, #0x18
+ str r2, [sp, #0x14]
+ lsr r1, r1, #0x18
+ str r1, [sp, #0x0]
+ mov r1, #0xc
+ lsl r0, r0, #0x18
+ str r1, [sp, #0x4]
+ lsr r0, r0, #0x18
+ mov r1, #0x9
+ str r0, [sp, #0x8]
+ mov r2, #0x0
+ str r2, [sp, #0xc]
+ lsl r1, r1, #0x6
+ str r1, [sp, #0x10]
+ add r1, #0x14
+ ldr r0, [r5, #0x0]
+ add r1, r5, r1
+ mov r3, #0x13
+ bl FUN_02019064
+ ldr r0, [sp, #0x14]
+ mov r1, #0xc
+ bl FUN_02012838
+ ldr r1, _0207294C ; =0x000006F8
+ mov r6, #0x0
+ str r0, [r5, r1]
+ ldr r0, [sp, #0x14]
+ add r4, r6, #0x0
+ cmp r0, #0x0
+ ble _020728D8
+_02072890:
+ ldrb r0, [r7, r4]
+ cmp r0, #0xf
+ blo _020728B4
+ bl FUN_02073DA8
+ lsl r1, r6, #0x2
+ add r2, r0, #0x0
+ ldr r0, _0207294C ; =0x000006F8
+ add r3, r5, r1
+ ldr r1, _02072950 ; =0x000006E8
+ ldr r0, [r5, r0]
+ ldr r1, [r3, r1]
+ bl FUN_020128A0
+ add r0, r6, #0x1
+ lsl r0, r0, #0x10
+ lsr r6, r0, #0x10
+ b _020728CC
+_020728B4:
+ bl FUN_02073DA8
+ ldrb r1, [r7, r4]
+ add r2, r0, #0x0
+ ldr r0, _0207294C ; =0x000006F8
+ lsl r1, r1, #0x2
+ add r3, r5, r1
+ ldr r1, _02072954 ; =0x000006AC
+ ldr r0, [r5, r0]
+ ldr r1, [r3, r1]
+ bl FUN_020128A0
+_020728CC:
+ add r0, r4, #0x1
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+ ldr r0, [sp, #0x14]
+ cmp r4, r0
+ blt _02072890
+_020728D8:
+ ldr r0, _0207294C ; =0x000006F8
+ mov r1, #0x0
+ ldr r0, [r5, r0]
+ str r0, [sp, #0x18]
+ mov r0, #0x95
+ lsl r0, r0, #0x2
+ add r0, r5, r0
+ str r0, [sp, #0x1c]
+ add r0, sp, #0x18
+ strb r1, [r0, #0x8]
+ mov r1, #0x1
+ strb r1, [r0, #0x9]
+ ldr r1, [sp, #0x14]
+ strb r1, [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]
+ ldr r1, [sp, #0x14]
+ ldrb r2, [r0, #0xb]
+ cmp r1, #0x4
+ blo _02072918
+ mov r1, #0xc0
+ bic r2, r1
+ mov r1, #0x40
+ orr r1, r2
+ strb r1, [r0, #0xb]
+ b _0207291E
+_02072918:
+ mov r1, #0xc0
+ bic r2, r1
+ strb r2, [r0, #0xb]
+_0207291E:
+ mov r0, #0x95
+ lsl r0, r0, #0x2
+ mov r1, #0x1
+ add r0, r5, r0
+ add r2, r1, #0x0
+ mov r3, #0xe
+ bl FUN_0200CCA4
+ mov r0, #0xc
+ str r0, [sp, #0x0]
+ mov r0, #0x2
+ mov r2, #0x0
+ str r0, [sp, #0x4]
+ add r0, sp, #0x18
+ mov r1, #0x8
+ add r3, r2, #0x0
+ bl FUN_02001C14
+ ldr r1, _02072958 ; =0x000006FC
+ str r0, [r5, r1]
+ add sp, #0x24
+ pop {r4-r7, pc}
+ nop
+_0207294C: .word 0x000006F8
+_02072950: .word 0x000006E8
+_02072954: .word 0x000006AC
+_02072958: .word 0x000006FC
+
+ thumb_func_start FUN_0207295C
+FUN_0207295C: ; 0x0207295C
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ ldr r0, _020729C4 ; =0x000005A4
+ ldr r2, [r5, r0]
+ add r1, r2, #0x0
+ add r1, #0x20
+ ldrb r1, [r1, #0x0]
+ cmp r1, #0xf
+ bne _0207297E
+ ldr r2, _020729C8 ; =0x000006A4
+ add r0, #0xf8
+ ldr r0, [r5, r0]
+ ldr r2, [r5, r2]
+ mov r1, #0x2a
+ bl FUN_0200A8E0
+ pop {r4-r6, pc}
+_0207297E:
+ ldr r1, _020729CC ; =0x00000B25
+ ldr r0, [r2, #0x0]
+ ldrb r1, [r5, r1]
+ bl FUN_0206B9B0
+ add r6, r0, #0x0
+ ldr r0, _020729D0 ; =0x0000069C
+ mov r1, #0x25
+ ldr r0, [r5, r0]
+ bl FUN_0200A914
+ add r4, r0, #0x0
+ add r0, r6, #0x0
+ bl FUN_020690E4
+ add r2, r0, #0x0
+ mov r0, #0x6a
+ lsl r0, r0, #0x4
+ ldr r0, [r5, r0]
+ mov r1, #0x0
+ bl FUN_0200ACF8
+ mov r1, #0x6a
+ lsl r1, r1, #0x4
+ ldr r0, [r5, r1]
+ add r1, r1, #0x4
+ ldr r1, [r5, r1]
+ add r2, r4, #0x0
+ bl FUN_0200B7B8
+ add r0, r4, #0x0
+ bl FUN_02021A20
+ pop {r4-r6, pc}
+ nop
+_020729C4: .word 0x000005A4
+_020729C8: .word 0x000006A4
+_020729CC: .word 0x00000B25
+_020729D0: .word 0x0000069C
+
+ thumb_func_start FUN_020729D4
+FUN_020729D4: ; 0x020729D4
+ push {r3-r4, lr}
+ sub sp, #0x4
+ add r2, r0, #0x0
+ mov r0, #0x2
+ str r0, [sp, #0x0]
+ ldr r0, _020729FC ; =0x00000698
+ add r4, r1, #0x0
+ ldr r0, [r2, r0]
+ add r3, r2, #0x4
+ lsl r2, r4, #0x2
+ add r2, r4, r2
+ add r2, r2, #0x2
+ lsl r2, r2, #0x4
+ add r2, r3, r2
+ mov r1, #0x0
+ mov r3, #0x1c
+ bl FUN_0200B9A8
+ add sp, #0x4
+ pop {r3-r4, pc}
+ .balign 4
+_020729FC: .word 0x00000698
+
+ thumb_func_start FUN_02072A00
+FUN_02072A00: ; 0x02072A00
+ push {r3-r7, lr}
+ add r7, r1, #0x0
+ add r4, r2, #0x0
+ add r5, r0, #0x0
+ ldr r0, _02072A4C ; =0x0000069C
+ ldr r1, _02072A50 ; =0x020F96F4
+ lsl r2, r4, #0x3
+ ldrh r1, [r1, r2]
+ ldr r0, [r5, r0]
+ bl FUN_0200A914
+ add r6, r0, #0x0
+ add r0, r7, #0x0
+ bl FUN_020690E4
+ add r2, r0, #0x0
+ mov r0, #0x6a
+ lsl r0, r0, #0x4
+ ldr r0, [r5, r0]
+ mov r1, #0x0
+ bl FUN_0200ACF8
+ mov r2, #0x6a
+ mov r1, #0x2c
+ lsl r2, r2, #0x4
+ mul r1, r4
+ ldr r0, [r5, r2]
+ add r1, r5, r1
+ add r2, #0x60
+ ldr r1, [r1, r2]
+ add r2, r6, #0x0
+ bl FUN_0200B7B8
+ add r0, r6, #0x0
+ bl FUN_02021A20
+ pop {r3-r7, pc}
+ nop
+_02072A4C: .word 0x0000069C
+_02072A50: .word 0x020F96F4
+
+ thumb_func_start FUN_02072A54
+FUN_02072A54: ; 0x02072A54
+ push {r3-r7, lr}
+ sub sp, #0x10
+ add r5, r0, #0x0
+ lsl r0, r1, #0x2
+ add r0, r1, r0
+ lsl r6, r0, #0x4
+ add r7, r1, #0x0
+ mov r0, #0x2c
+ mul r7, r0
+ mov r1, #0x0
+ mov r2, #0x7
+ str r1, [sp, #0x0]
+ mov r0, #0xff
+ str r0, [sp, #0x4]
+ ldr r0, _02072B14 ; =0x000F0E00
+ add r3, r5, r7
+ str r0, [sp, #0x8]
+ add r4, r5, #0x4
+ str r1, [sp, #0xc]
+ lsl r2, r2, #0x8
+ ldr r2, [r3, r2]
+ add r0, r4, r6
+ add r3, r1, #0x0
+ bl FUN_0201BDE0
+ mov r2, #0x71
+ add r0, r5, r7
+ lsl r2, r2, #0x4
+ ldrb r0, [r0, r2]
+ cmp r0, #0x1
+ bne _02072A9C
+ add r0, r4, r6
+ bl FUN_02019220
+ add sp, #0x10
+ pop {r3-r7, pc}
+_02072A9C:
+ sub r0, r2, #0x2
+ add r0, r5, r0
+ ldrh r0, [r0, r7]
+ lsl r1, r0, #0x13
+ lsr r1, r1, #0x1f
+ bne _02072B0A
+ lsl r0, r0, #0x11
+ lsr r0, r0, #0x1e
+ bne _02072ADC
+ add r0, r2, #0x0
+ sub r0, #0x74
+ sub r2, #0x68
+ ldr r0, [r5, r0]
+ ldr r2, [r5, r2]
+ mov r1, #0x1b
+ bl FUN_0200A8E0
+ mov r1, #0x0
+ str r1, [sp, #0x0]
+ mov r0, #0xff
+ str r0, [sp, #0x4]
+ mov r0, #0xc1
+ lsl r0, r0, #0xa
+ str r0, [sp, #0x8]
+ ldr r2, _02072B18 ; =0x000006A8
+ str r1, [sp, #0xc]
+ ldr r2, [r5, r2]
+ add r0, r4, r6
+ mov r3, #0x40
+ bl FUN_0201BDE0
+ b _02072B0A
+_02072ADC:
+ cmp r0, #0x1
+ bne _02072B0A
+ add r0, r2, #0x0
+ sub r0, #0x74
+ sub r2, #0x68
+ ldr r0, [r5, r0]
+ ldr r2, [r5, r2]
+ mov r1, #0x1c
+ bl FUN_0200A8E0
+ mov r1, #0x0
+ str r1, [sp, #0x0]
+ mov r0, #0xff
+ str r0, [sp, #0x4]
+ ldr r0, _02072B1C ; =0x00050600
+ ldr r2, _02072B18 ; =0x000006A8
+ str r0, [sp, #0x8]
+ str r1, [sp, #0xc]
+ ldr r2, [r5, r2]
+ add r0, r4, r6
+ mov r3, #0x40
+ bl FUN_0201BDE0
+_02072B0A:
+ add r0, r4, r6
+ bl FUN_02019220
+ add sp, #0x10
+ pop {r3-r7, pc}
+ .balign 4
+_02072B14: .word 0x000F0E00
+_02072B18: .word 0x000006A8
+_02072B1C: .word 0x00050600
+
+ thumb_func_start FUN_02072B20
+FUN_02072B20: ; 0x02072B20
+ push {r4, lr}
+ sub sp, #0x10
+ lsl r2, r1, #0x2
+ add r2, r1, r2
+ add r2, r2, #0x1
+ add r3, r0, #0x4
+ lsl r2, r2, #0x4
+ add r4, r3, r2
+ mov r2, #0x2c
+ mul r2, r1
+ ldr r3, _02072B78 ; =0x0000070E
+ add r2, r0, r2
+ ldrh r1, [r2, r3]
+ lsl r1, r1, #0x14
+ lsr r1, r1, #0x14
+ cmp r1, #0x7
+ beq _02072B4C
+ add r0, r4, #0x0
+ bl FUN_02019220
+ add sp, #0x10
+ pop {r4, pc}
+_02072B4C:
+ mov r1, #0x0
+ str r1, [sp, #0x0]
+ str r4, [sp, #0x4]
+ mov r1, #0x5
+ str r1, [sp, #0x8]
+ mov r1, #0x2
+ str r1, [sp, #0xc]
+ add r1, r3, #0x0
+ sub r3, r3, #0x4
+ sub r1, #0x76
+ ldrh r2, [r2, r3]
+ ldr r0, [r0, r1]
+ mov r1, #0x1
+ mov r3, #0x3
+ bl FUN_0200BA78
+ add r0, r4, #0x0
+ bl FUN_02019220
+ add sp, #0x10
+ pop {r4, pc}
+ nop
+_02072B78: .word 0x0000070E
+
+ thumb_func_start FUN_02072B7C
+FUN_02072B7C: ; 0x02072B7C
+ push {r4-r5, lr}
+ sub sp, #0xc
+ add r2, r0, #0x0
+ lsl r0, r1, #0x2
+ add r0, r1, r0
+ add r0, r0, #0x2
+ add r3, r2, #0x4
+ lsl r0, r0, #0x4
+ add r4, r3, r0
+ mov r3, #0x2c
+ mul r3, r1
+ add r1, r2, r3
+ str r4, [sp, #0x0]
+ mov r0, #0x4
+ str r0, [sp, #0x4]
+ mov r0, #0x2
+ ldr r5, _02072BB8 ; =0x00000698
+ str r0, [sp, #0x8]
+ ldr r0, [r2, r5]
+ add r5, #0x6e
+ ldrh r1, [r1, r5]
+ mov r2, #0x3
+ mov r3, #0x1
+ bl FUN_0200B9EC
+ add r0, r4, #0x0
+ bl FUN_02019220
+ add sp, #0xc
+ pop {r4-r5, pc}
+ .balign 4
+_02072BB8: .word 0x00000698
+
+ thumb_func_start FUN_02072BBC
+FUN_02072BBC: ; 0x02072BBC
+ push {r3-r5, lr}
+ sub sp, #0x8
+ add r5, r0, #0x4
+ lsl r0, r1, #0x2
+ add r0, r1, r0
+ add r0, r0, #0x2
+ lsl r4, r0, #0x4
+ mov r0, #0x18
+ str r0, [sp, #0x0]
+ mov r0, #0x10
+ mov r1, #0x0
+ str r0, [sp, #0x4]
+ add r0, r5, r4
+ mov r2, #0x4
+ add r3, r1, #0x0
+ bl FUN_020196F4
+ add r0, r5, r4
+ bl FUN_02019220
+ add sp, #0x8
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_02072BE8
+FUN_02072BE8: ; 0x02072BE8
+ push {r4-r5, lr}
+ sub sp, #0xc
+ add r2, r0, #0x0
+ lsl r0, r1, #0x2
+ add r0, r1, r0
+ add r0, r0, #0x2
+ add r3, r2, #0x4
+ lsl r0, r0, #0x4
+ add r4, r3, r0
+ mov r3, #0x2c
+ mul r3, r1
+ add r1, r2, r3
+ str r4, [sp, #0x0]
+ mov r0, #0x24
+ str r0, [sp, #0x4]
+ mov r0, #0x2
+ ldr r5, _02072C24 ; =0x00000698
+ str r0, [sp, #0x8]
+ ldr r0, [r2, r5]
+ add r5, #0x70
+ ldrh r1, [r1, r5]
+ mov r2, #0x3
+ mov r3, #0x0
+ bl FUN_0200B9EC
+ add r0, r4, #0x0
+ bl FUN_02019220
+ add sp, #0xc
+ pop {r4-r5, pc}
+ .balign 4
+_02072C24: .word 0x00000698
+
+ thumb_func_start FUN_02072C28
+FUN_02072C28: ; 0x02072C28
+ push {r4-r7, lr}
+ sub sp, #0xc
+ lsl r2, r1, #0x2
+ add r2, r1, r2
+ add r5, r0, #0x0
+ add r2, r2, #0x3
+ add r0, r5, #0x4
+ lsl r2, r2, #0x4
+ add r4, r0, r2
+ mov r0, #0x2c
+ add r6, r1, #0x0
+ mul r6, r0
+ ldr r0, _02072D0C ; =0x00000708
+ mov r2, #0x30
+ add r7, r5, r0
+ sub r0, r0, #0x2
+ add r0, r5, r0
+ str r0, [sp, #0x8]
+ ldrh r0, [r0, r6]
+ ldrh r1, [r7, r6]
+ bl FUN_02079A54
+ cmp r0, #0x4
+ bhi _02072CBE
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02072C64: ; jump table (using 16-bit offset)
+ .short _02072C6E - _02072C64 - 2; case 0
+ .short _02072CA8 - _02072C64 - 2; case 1
+ .short _02072C90 - _02072C64 - 2; case 2
+ .short _02072C78 - _02072C64 - 2; case 3
+ .short _02072C78 - _02072C64 - 2; case 4
+_02072C6E:
+ add r0, r4, #0x0
+ bl FUN_02019220
+ add sp, #0xc
+ pop {r4-r7, pc}
+_02072C78:
+ ldrb r3, [r4, #0x9]
+ ldr r1, _02072D10 ; =0x000004B6
+ mov r0, #0x1
+ lsl r3, r3, #0x4
+ add r3, #0x9
+ lsl r3, r3, #0x11
+ add r1, r5, r1
+ mov r2, #0x4
+ lsr r3, r3, #0x10
+ bl FUN_02017FB4
+ b _02072CBE
+_02072C90:
+ ldrb r3, [r4, #0x9]
+ ldr r1, _02072D14 ; =0x000004D6
+ mov r0, #0x1
+ lsl r3, r3, #0x4
+ add r3, #0x9
+ lsl r3, r3, #0x11
+ add r1, r5, r1
+ mov r2, #0x4
+ lsr r3, r3, #0x10
+ bl FUN_02017FB4
+ b _02072CBE
+_02072CA8:
+ ldrb r3, [r4, #0x9]
+ ldr r1, _02072D18 ; =0x000004F6
+ mov r0, #0x1
+ lsl r3, r3, #0x4
+ add r3, #0x9
+ lsl r3, r3, #0x11
+ add r1, r5, r1
+ mov r2, #0x4
+ lsr r3, r3, #0x10
+ bl FUN_02017FB4
+_02072CBE:
+ ldr r0, [sp, #0x8]
+ ldrh r1, [r7, r6]
+ ldrh r0, [r0, r6]
+ mov r2, #0x30
+ bl FUN_02079A0C
+ add r5, r0, #0x0
+ str r5, [sp, #0x0]
+ mov r0, #0x1
+ str r0, [sp, #0x4]
+ add r0, r4, #0x0
+ mov r1, #0xa
+ mov r2, #0x0
+ mov r3, #0x2
+ bl FUN_020196F4
+ str r5, [sp, #0x0]
+ mov r0, #0x2
+ str r0, [sp, #0x4]
+ add r0, r4, #0x0
+ mov r1, #0x9
+ mov r2, #0x0
+ mov r3, #0x3
+ bl FUN_020196F4
+ str r5, [sp, #0x0]
+ mov r0, #0x1
+ str r0, [sp, #0x4]
+ add r0, r4, #0x0
+ mov r1, #0xa
+ mov r2, #0x0
+ mov r3, #0x5
+ bl FUN_020196F4
+ add r0, r4, #0x0
+ bl FUN_02019220
+ add sp, #0xc
+ pop {r4-r7, pc}
+ .balign 4
+_02072D0C: .word 0x00000708
+_02072D10: .word 0x000004B6
+_02072D14: .word 0x000004D6
+_02072D18: .word 0x000004F6
+
+ thumb_func_start FUN_02072D1C
+FUN_02072D1C: ; 0x02072D1C
+ push {r3-r7, lr}
+ sub sp, #0x18
+ add r6, r1, #0x0
+ add r5, r0, #0x0
+ lsl r0, r6, #0x2
+ add r4, r6, r0
+ add r0, r5, #0x4
+ str r0, [sp, #0x0]
+ lsl r0, r4, #0x4
+ ldr r1, [sp, #0x0]
+ str r0, [sp, #0x4]
+ add r0, r1, r0
+ mov r1, #0x0
+ bl FUN_02019620
+ add r0, r4, #0x1
+ lsl r0, r0, #0x4
+ add r7, r5, #0x4
+ str r0, [sp, #0x8]
+ add r0, r7, r0
+ mov r1, #0x0
+ bl FUN_02019620
+ add r0, r7, #0x0
+ str r0, [sp, #0xc]
+ add r0, r4, #0x2
+ lsl r0, r0, #0x4
+ ldr r1, [sp, #0xc]
+ str r0, [sp, #0x10]
+ add r0, r1, r0
+ mov r1, #0x0
+ bl FUN_02019620
+ add r0, r7, #0x0
+ str r0, [sp, #0x14]
+ add r0, r4, #0x3
+ lsl r4, r0, #0x4
+ ldr r0, [sp, #0x14]
+ mov r1, #0x0
+ add r0, r0, r4
+ bl FUN_02019620
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ bl FUN_02072A54
+ mov r0, #0x2c
+ mul r0, r6
+ add r1, r5, r0
+ mov r0, #0x71
+ lsl r0, r0, #0x4
+ ldrb r0, [r1, r0]
+ cmp r0, #0x1
+ bne _02072DB0
+ ldr r1, [sp, #0x0]
+ ldr r0, [sp, #0x4]
+ add r0, r1, r0
+ bl FUN_02019220
+ ldr r0, [sp, #0x8]
+ add r0, r7, r0
+ bl FUN_02019220
+ ldr r1, [sp, #0xc]
+ ldr r0, [sp, #0x10]
+ add r0, r1, r0
+ bl FUN_02019220
+ ldr r0, [sp, #0x14]
+ add r0, r0, r4
+ bl FUN_02019220
+ add sp, #0x18
+ pop {r3-r7, pc}
+_02072DB0:
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ bl FUN_020729D4
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ bl FUN_02072B20
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ bl FUN_02072B7C
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ bl FUN_02072BE8
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ bl FUN_02072C28
+ add sp, #0x18
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_02072DDC
+FUN_02072DDC: ; 0x02072DDC
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ lsl r0, r1, #0x2
+ add r4, r1, r0
+ add r1, r5, #0x4
+ lsl r0, r4, #0x4
+ add r0, r1, r0
+ bl FUN_02019548
+ add r0, r4, #0x1
+ add r1, r5, #0x4
+ lsl r0, r0, #0x4
+ add r0, r1, r0
+ bl FUN_02019548
+ add r0, r4, #0x2
+ add r1, r5, #0x4
+ lsl r0, r0, #0x4
+ add r0, r1, r0
+ bl FUN_02019548
+ add r0, r4, #0x3
+ add r1, r5, #0x4
+ lsl r0, r0, #0x4
+ add r0, r1, r0
+ bl FUN_02019548
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_02072E14
+FUN_02072E14: ; 0x02072E14
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ lsl r0, r1, #0x2
+ add r4, r1, r0
+ add r1, r5, #0x4
+ lsl r0, r4, #0x4
+ add r0, r1, r0
+ bl FUN_0201958C
+ add r0, r4, #0x1
+ add r1, r5, #0x4
+ lsl r0, r0, #0x4
+ add r0, r1, r0
+ bl FUN_0201958C
+ add r0, r4, #0x2
+ add r1, r5, #0x4
+ lsl r0, r0, #0x4
+ add r0, r1, r0
+ bl FUN_0201958C
+ add r0, r4, #0x3
+ add r1, r5, #0x4
+ lsl r0, r0, #0x4
+ add r0, r1, r0
+ bl FUN_0201958C
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_02072E4C
+FUN_02072E4C: ; 0x02072E4C
+ push {r3-r6, lr}
+ sub sp, #0x4
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ lsl r0, r4, #0x2
+ add r6, r4, r0
+ add r1, r5, #0x4
+ lsl r0, r6, #0x4
+ add r0, r1, r0
+ mov r1, #0x0
+ bl FUN_02019620
+ add r0, r6, #0x1
+ add r1, r5, #0x4
+ lsl r0, r0, #0x4
+ add r0, r1, r0
+ mov r1, #0x0
+ bl FUN_02019620
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_02072A54
+ mov r0, #0x2c
+ mul r0, r4
+ add r1, r5, r0
+ mov r0, #0x71
+ lsl r0, r0, #0x4
+ ldrb r0, [r1, r0]
+ cmp r0, #0x1
+ bne _02072E98
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ mov r2, #0x1
+ bl FUN_020732F4
+ add sp, #0x4
+ pop {r3-r6, pc}
+_02072E98:
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_02072B20
+ ldr r0, _02072EE0 ; =0x000005A4
+ add r1, r4, #0x0
+ ldr r0, [r5, r0]
+ ldr r0, [r0, #0x0]
+ bl FUN_0206B9B0
+ add r1, r0, #0x0
+ mov r0, #0x0
+ ldr r3, _02072EE0 ; =0x000005A4
+ str r0, [sp, #0x0]
+ ldr r3, [r5, r3]
+ mov r2, #0x3
+ ldrh r3, [r3, #0x24]
+ bl FUN_02069168
+ cmp r0, #0x0
+ bne _02072ED0
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ mov r2, #0x1
+ bl FUN_020732F4
+ add sp, #0x4
+ pop {r3-r6, pc}
+_02072ED0:
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ mov r2, #0x0
+ bl FUN_020732F4
+ add sp, #0x4
+ pop {r3-r6, pc}
+ nop
+_02072EE0: .word 0x000005A4
+
+ thumb_func_start FUN_02072EE4
+FUN_02072EE4: ; 0x02072EE4
+ push {r4-r6, lr}
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ lsl r0, r4, #0x2
+ add r6, r4, r0
+ add r1, r5, #0x4
+ lsl r0, r6, #0x4
+ add r0, r1, r0
+ mov r1, #0x0
+ bl FUN_02019620
+ add r0, r6, #0x1
+ add r1, r5, #0x4
+ lsl r0, r0, #0x4
+ add r0, r1, r0
+ mov r1, #0x0
+ bl FUN_02019620
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_02072A54
+ mov r0, #0x2c
+ mul r0, r4
+ add r1, r5, r0
+ mov r0, #0x71
+ lsl r0, r0, #0x4
+ ldrb r0, [r1, r0]
+ cmp r0, #0x1
+ bne _02072F2C
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ mov r2, #0x1
+ bl FUN_02073364
+ pop {r4-r6, pc}
+_02072F2C:
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_02072B20
+ ldr r0, _02072F74 ; =0x000005A4
+ add r1, r4, #0x0
+ ldr r0, [r5, r0]
+ ldr r0, [r0, #0x0]
+ bl FUN_0206B9B0
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_02076AA0
+ cmp r0, #0xff
+ bne _02072F58
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ mov r2, #0x1
+ bl FUN_02073364
+ pop {r4-r6, pc}
+_02072F58:
+ cmp r0, #0xfd
+ bne _02072F68
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ mov r2, #0x2
+ bl FUN_02073364
+ pop {r4-r6, pc}
+_02072F68:
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ mov r2, #0x0
+ bl FUN_02073364
+ pop {r4-r6, pc}
+ .balign 4
+_02072F74: .word 0x000005A4
+
+ thumb_func_start FUN_02072F78
+FUN_02072F78: ; 0x02072F78
+ push {r4-r6, lr}
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ lsl r0, r4, #0x2
+ add r6, r4, r0
+ add r1, r5, #0x4
+ lsl r0, r6, #0x4
+ add r0, r1, r0
+ mov r1, #0x0
+ bl FUN_02019620
+ add r0, r6, #0x1
+ add r1, r5, #0x4
+ lsl r0, r0, #0x4
+ add r0, r1, r0
+ mov r1, #0x0
+ bl FUN_02019620
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_02072A54
+ mov r0, #0x2c
+ add r6, r4, #0x0
+ mul r6, r0
+ mov r0, #0x71
+ add r1, r5, r6
+ lsl r0, r0, #0x4
+ ldrb r0, [r1, r0]
+ cmp r0, #0x1
+ beq _02072FBE
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_02072B20
+_02072FBE:
+ ldr r2, _02072FD8 ; =0x0000070E
+ add r3, r5, r6
+ ldrh r2, [r3, r2]
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ lsl r2, r2, #0x10
+ lsr r2, r2, #0x1f
+ lsl r2, r2, #0x18
+ lsr r2, r2, #0x18
+ bl FUN_020733E4
+ pop {r4-r6, pc}
+ nop
+_02072FD8: .word 0x0000070E
+
+ thumb_func_start FUN_02072FDC
+FUN_02072FDC: ; 0x02072FDC
+ push {r4-r6, lr}
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ lsl r0, r4, #0x2
+ add r6, r4, r0
+ add r1, r5, #0x4
+ lsl r0, r6, #0x4
+ add r0, r1, r0
+ mov r1, #0x0
+ bl FUN_02019620
+ add r0, r6, #0x1
+ add r1, r5, #0x4
+ lsl r0, r0, #0x4
+ add r0, r1, r0
+ mov r1, #0x0
+ bl FUN_02019620
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_02072A54
+ mov r0, #0x2c
+ mul r0, r4
+ add r1, r5, r0
+ mov r0, #0x71
+ lsl r0, r0, #0x4
+ ldrb r0, [r1, r0]
+ cmp r0, #0x1
+ beq _02073020
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_02072B20
+_02073020:
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_02073024
+FUN_02073024: ; 0x02073024
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ ldr r0, _02073080 ; =0x000005A4
+ add r4, r1, #0x0
+ ldr r1, [r5, r0]
+ mov r2, #0x0
+ add r0, r1, #0x0
+ add r0, #0x32
+ ldrb r0, [r0, #0x0]
+ lsl r0, r0, #0x18
+ lsr r3, r0, #0x1c
+ beq _0207305C
+ add r0, r4, #0x1
+_0207303E:
+ add r6, r1, r2
+ add r6, #0x2c
+ ldrb r6, [r6, #0x0]
+ cmp r0, r6
+ bne _02073052
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_02073448
+ pop {r4-r6, pc}
+_02073052:
+ add r2, r2, #0x1
+ lsl r2, r2, #0x18
+ lsr r2, r2, #0x18
+ cmp r2, r3
+ blo _0207303E
+_0207305C:
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_02071340
+ cmp r0, #0x0
+ bne _02073074
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ mov r2, #0x8
+ bl FUN_02073448
+ pop {r4-r6, pc}
+_02073074:
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ mov r2, #0x7
+ bl FUN_02073448
+ pop {r4-r6, pc}
+ .balign 4
+_02073080: .word 0x000005A4
+
+ thumb_func_start FUN_02073084
+FUN_02073084: ; 0x02073084
+ push {r4, lr}
+ add r4, r2, #0x0
+ mov r2, #0x0
+ bl FUN_02002E14
+ sub r0, r4, r0
+ lsr r0, r0, #0x1
+ pop {r4, pc}
+
+ thumb_func_start FUN_02073094
+FUN_02073094: ; 0x02073094
+ push {r3-r5, lr}
+ sub sp, #0x10
+ add r5, r0, #0x0
+ mov r0, #0x79
+ lsl r0, r0, #0x2
+ add r4, r1, #0x0
+ add r0, r5, r0
+ mov r1, #0x0
+ bl FUN_02019620
+ mov r0, #0x7d
+ lsl r0, r0, #0x2
+ add r0, r5, r0
+ mov r1, #0x0
+ bl FUN_02019620
+ mov r0, #0x1
+ tst r0, r4
+ beq _020730FE
+ ldr r2, _0207314C ; =0x0000069C
+ mov r1, #0x0
+ ldr r0, [r5, r2]
+ add r2, #0xc
+ ldr r2, [r5, r2]
+ bl FUN_0200A8E0
+ ldr r2, _02073150 ; =0x000001EB
+ ldr r1, _02073154 ; =0x000006A8
+ ldrb r2, [r5, r2]
+ ldr r1, [r5, r1]
+ mov r0, #0x0
+ lsl r2, r2, #0x3
+ bl FUN_02073084
+ mov r1, #0x0
+ add r3, r0, #0x0
+ str r1, [sp, #0x0]
+ mov r2, #0xff
+ str r2, [sp, #0x4]
+ ldr r0, _02073158 ; =0x000F0E00
+ add r2, #0xe5
+ str r0, [sp, #0x8]
+ add r0, r5, r2
+ ldr r2, _02073154 ; =0x000006A8
+ str r1, [sp, #0xc]
+ ldr r2, [r5, r2]
+ bl FUN_0201BDE0
+ mov r0, #0x79
+ lsl r0, r0, #0x2
+ add r0, r5, r0
+ bl FUN_02019220
+_020730FE:
+ mov r0, #0x2
+ tst r0, r4
+ beq _02073148
+ ldr r2, _0207314C ; =0x0000069C
+ mov r1, #0x1
+ ldr r0, [r5, r2]
+ add r2, #0xc
+ ldr r2, [r5, r2]
+ bl FUN_0200A8E0
+ ldr r2, _0207315C ; =0x000001FB
+ ldr r1, _02073154 ; =0x000006A8
+ ldrb r2, [r5, r2]
+ ldr r1, [r5, r1]
+ mov r0, #0x0
+ lsl r2, r2, #0x3
+ bl FUN_02073084
+ mov r1, #0x0
+ add r3, r0, #0x0
+ str r1, [sp, #0x0]
+ mov r2, #0xff
+ str r2, [sp, #0x4]
+ ldr r0, _02073158 ; =0x000F0E00
+ add r2, #0xf5
+ str r0, [sp, #0x8]
+ add r0, r5, r2
+ ldr r2, _02073154 ; =0x000006A8
+ str r1, [sp, #0xc]
+ ldr r2, [r5, r2]
+ bl FUN_0201BDE0
+ mov r0, #0x7d
+ lsl r0, r0, #0x2
+ add r0, r5, r0
+ bl FUN_02019220
+_02073148:
+ add sp, #0x10
+ pop {r3-r5, pc}
+ .balign 4
+_0207314C: .word 0x0000069C
+_02073150: .word 0x000001EB
+_02073154: .word 0x000006A8
+_02073158: .word 0x000F0E00
+_0207315C: .word 0x000001FB
+
+ thumb_func_start FUN_02073160
+FUN_02073160: ; 0x02073160
+ push {r3-r6, lr}
+ sub sp, #0xc
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ add r6, r2, #0x0
+ cmp r3, #0x1
+ bne _0207317A
+ add r0, r4, #0x0
+ mov r1, #0x1
+ mov r2, #0xa
+ mov r3, #0xf
+ bl FUN_0200D0BC
+_0207317A:
+ add r0, r4, #0x0
+ mov r1, #0xf
+ bl FUN_02019620
+ mov r0, #0x0
+ mvn r0, r0
+ cmp r6, r0
+ beq _02073198
+ ldr r2, _020731B8 ; =0x0000069C
+ add r1, r6, #0x0
+ ldr r0, [r5, r2]
+ add r2, #0x8
+ ldr r2, [r5, r2]
+ bl FUN_0200A8E0
+_02073198:
+ mov r3, #0x0
+ str r3, [sp, #0x0]
+ mov r0, #0xff
+ str r0, [sp, #0x4]
+ ldr r2, _020731BC ; =0x000006A4
+ str r3, [sp, #0x8]
+ ldr r2, [r5, r2]
+ add r0, r4, #0x0
+ mov r1, #0x1
+ bl FUN_0201BD84
+ add r0, r4, #0x0
+ bl FUN_02019220
+ add sp, #0xc
+ pop {r3-r6, pc}
+ .balign 4
+_020731B8: .word 0x0000069C
+_020731BC: .word 0x000006A4
+
+ thumb_func_start FUN_020731C0
+FUN_020731C0: ; 0x020731C0
+ push {r4, lr}
+ add r4, r1, #0x0
+ mov r1, #0x81
+ lsl r1, r1, #0x2
+ add r3, r2, #0x0
+ add r1, r0, r1
+ add r2, r4, #0x0
+ bl FUN_02073160
+ pop {r4, pc}
+
+ thumb_func_start FUN_020731D4
+FUN_020731D4: ; 0x020731D4
+ push {r4, lr}
+ add r4, r1, #0x0
+ mov r1, #0x85
+ lsl r1, r1, #0x2
+ add r3, r2, #0x0
+ add r1, r0, r1
+ add r2, r4, #0x0
+ bl FUN_02073160
+ pop {r4, pc}
+
+ thumb_func_start FUN_020731E8
+FUN_020731E8: ; 0x020731E8
+ push {r4-r6, lr}
+ mov r6, #0x89
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ lsl r6, r6, #0x2
+ cmp r2, #0x1
+ bne _02073202
+ add r0, r5, r6
+ mov r1, #0x1
+ mov r2, #0xa
+ mov r3, #0xf
+ bl FUN_0200D0BC
+_02073202:
+ add r0, r5, r6
+ mov r1, #0xf
+ bl FUN_02019620
+ mov r0, #0x0
+ mvn r0, r0
+ cmp r4, r0
+ beq _02073220
+ ldr r2, _02073228 ; =0x0000069C
+ add r1, r4, #0x0
+ ldr r0, [r5, r2]
+ add r2, #0x8
+ ldr r2, [r5, r2]
+ bl FUN_0200A8E0
+_02073220:
+ add r0, r5, #0x0
+ bl FUN_0207322C
+ pop {r4-r6, pc}
+ .balign 4
+_02073228: .word 0x0000069C
+
+ thumb_func_start FUN_0207322C
+FUN_0207322C: ; 0x0207322C
+ push {r3-r4, lr}
+ sub sp, #0xc
+ add r4, r0, #0x0
+ mov r0, #0x1
+ bl FUN_02002B60
+ mov r0, #0x0
+ bl FUN_02002B7C
+ ldr r0, _0207326C ; =0x000005A4
+ ldr r0, [r4, r0]
+ ldr r0, [r0, #0xc]
+ bl FUN_02024FF4
+ mov r3, #0x0
+ str r3, [sp, #0x0]
+ str r0, [sp, #0x4]
+ ldr r0, _02073270 ; =FUN_0207327C
+ ldr r2, _02073274 ; =0x000006A4
+ str r0, [sp, #0x8]
+ mov r0, #0x89
+ lsl r0, r0, #0x2
+ ldr r2, [r4, r2]
+ add r0, r4, r0
+ mov r1, #0x1
+ bl FUN_0201BD84
+ ldr r1, _02073278 ; =0x00000B24
+ strb r0, [r4, r1]
+ add sp, #0xc
+ pop {r3-r4, pc}
+ nop
+_0207326C: .word 0x000005A4
+_02073270: .word FUN_0207327C
+_02073274: .word 0x000006A4
+_02073278: .word 0x00000B24
+
+ thumb_func_start FUN_0207327C
+FUN_0207327C: ; 0x0207327C
+ push {r3, lr}
+ cmp r1, #0x5
+ bhi _020732BE
+ add r0, r1, r1
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0207328E: ; jump table (using 16-bit offset)
+ .short _020732BE - _0207328E - 2; case 0
+ .short _0207329A - _0207328E - 2; case 1
+ .short _020732A0 - _0207328E - 2; case 2
+ .short _020732A6 - _0207328E - 2; case 3
+ .short _020732AE - _0207328E - 2; case 4
+ .short _020732B6 - _0207328E - 2; case 5
+_0207329A:
+ bl FUN_02005514
+ pop {r3, pc}
+_020732A0:
+ bl FUN_02005CBC
+ pop {r3, pc}
+_020732A6:
+ ldr r0, _020732C4 ; =0x000005E6
+ bl FUN_020054C8
+ b _020732BE
+_020732AE:
+ ldr r0, _020732C8 ; =0x00000483
+ bl FUN_02005C28
+ b _020732BE
+_020732B6:
+ ldr r0, _020732C4 ; =0x000005E6
+ bl FUN_02005508
+ pop {r3, pc}
+_020732BE:
+ mov r0, #0x0
+ pop {r3, pc}
+ nop
+_020732C4: .word 0x000005E6
+_020732C8: .word 0x00000483
+
+ thumb_func_start FUN_020732CC
+FUN_020732CC: ; 0x020732CC
+ push {r3-r4, lr}
+ sub sp, #0x4
+ add r4, r0, #0x0
+ mov r0, #0xc
+ str r0, [sp, #0x0]
+ ldr r0, [r4, #0x0]
+ ldr r1, _020732EC ; =0x020F96EC
+ mov r2, #0x1
+ mov r3, #0xe
+ bl FUN_02002198
+ ldr r1, _020732F0 ; =0x000006FC
+ str r0, [r4, r1]
+ add sp, #0x4
+ pop {r3-r4, pc}
+ nop
+_020732EC: .word 0x020F96EC
+_020732F0: .word 0x000006FC
+
+ thumb_func_start FUN_020732F4
+FUN_020732F4: ; 0x020732F4
+ push {r4-r7, lr}
+ sub sp, #0x14
+ add r5, r0, #0x0
+ lsl r0, r1, #0x2
+ add r0, r1, r0
+ add r0, r0, #0x4
+ add r4, r5, #0x4
+ lsl r6, r0, #0x4
+ add r0, r4, r6
+ mov r1, #0x0
+ add r7, r2, #0x0
+ bl FUN_02019620
+ cmp r7, #0x0
+ beq _02073318
+ cmp r7, #0x1
+ beq _02073326
+ b _02073332
+_02073318:
+ ldr r0, _0207335C ; =0x0000069C
+ mov r1, #0xb2
+ ldr r0, [r5, r0]
+ bl FUN_0200A914
+ str r0, [sp, #0x10]
+ b _02073332
+_02073326:
+ ldr r0, _0207335C ; =0x0000069C
+ mov r1, #0xb3
+ ldr r0, [r5, r0]
+ bl FUN_0200A914
+ str r0, [sp, #0x10]
+_02073332:
+ mov r1, #0x0
+ str r1, [sp, #0x0]
+ mov r0, #0xff
+ str r0, [sp, #0x4]
+ ldr r0, _02073360 ; =0x000F0E00
+ ldr r2, [sp, #0x10]
+ str r0, [sp, #0x8]
+ add r0, r4, r6
+ add r3, r1, #0x0
+ str r1, [sp, #0xc]
+ bl FUN_0201BDE0
+ ldr r0, [sp, #0x10]
+ bl FUN_02021A20
+ add r0, r4, r6
+ bl FUN_02019220
+ add sp, #0x14
+ pop {r4-r7, pc}
+ nop
+_0207335C: .word 0x0000069C
+_02073360: .word 0x000F0E00
+
+ thumb_func_start FUN_02073364
+FUN_02073364: ; 0x02073364
+ push {r4-r7, lr}
+ sub sp, #0x14
+ add r5, r0, #0x0
+ lsl r0, r1, #0x2
+ add r0, r1, r0
+ add r0, r0, #0x4
+ add r4, r5, #0x4
+ lsl r7, r0, #0x4
+ add r0, r4, r7
+ mov r1, #0x0
+ add r6, r2, #0x0
+ bl FUN_02019620
+ cmp r6, #0x0
+ beq _0207338C
+ cmp r6, #0x1
+ beq _0207339A
+ cmp r6, #0x2
+ beq _020733A8
+ b _020733B4
+_0207338C:
+ ldr r0, _020733DC ; =0x0000069C
+ mov r1, #0xaf
+ ldr r0, [r5, r0]
+ bl FUN_0200A914
+ str r0, [sp, #0x10]
+ b _020733B4
+_0207339A:
+ ldr r0, _020733DC ; =0x0000069C
+ mov r1, #0xb0
+ ldr r0, [r5, r0]
+ bl FUN_0200A914
+ str r0, [sp, #0x10]
+ b _020733B4
+_020733A8:
+ ldr r0, _020733DC ; =0x0000069C
+ mov r1, #0xb1
+ ldr r0, [r5, r0]
+ bl FUN_0200A914
+ str r0, [sp, #0x10]
+_020733B4:
+ mov r1, #0x0
+ str r1, [sp, #0x0]
+ mov r0, #0xff
+ str r0, [sp, #0x4]
+ ldr r0, _020733E0 ; =0x000F0E00
+ ldr r2, [sp, #0x10]
+ str r0, [sp, #0x8]
+ add r0, r4, r7
+ add r3, r1, #0x0
+ str r1, [sp, #0xc]
+ bl FUN_0201BDE0
+ ldr r0, [sp, #0x10]
+ bl FUN_02021A20
+ add r0, r4, r7
+ bl FUN_02019220
+ add sp, #0x14
+ pop {r4-r7, pc}
+ .balign 4
+_020733DC: .word 0x0000069C
+_020733E0: .word 0x000F0E00
+
+ thumb_func_start FUN_020733E4
+FUN_020733E4: ; 0x020733E4
+ push {r3-r7, lr}
+ sub sp, #0x10
+ add r5, r0, #0x0
+ lsl r0, r1, #0x2
+ add r0, r1, r0
+ add r0, r0, #0x4
+ add r4, r5, #0x4
+ lsl r6, r0, #0x4
+ add r0, r4, r6
+ mov r1, #0x0
+ add r7, r2, #0x0
+ bl FUN_02019620
+ cmp r7, #0x0
+ ldr r0, _02073440 ; =0x0000069C
+ bne _0207340E
+ ldr r0, [r5, r0]
+ mov r1, #0xb5
+ bl FUN_0200A914
+ b _02073416
+_0207340E:
+ ldr r0, [r5, r0]
+ mov r1, #0xb4
+ bl FUN_0200A914
+_02073416:
+ mov r1, #0x0
+ add r5, r0, #0x0
+ str r1, [sp, #0x0]
+ mov r0, #0xff
+ str r0, [sp, #0x4]
+ ldr r0, _02073444 ; =0x000F0E00
+ add r2, r5, #0x0
+ str r0, [sp, #0x8]
+ add r0, r4, r6
+ add r3, r1, #0x0
+ str r1, [sp, #0xc]
+ bl FUN_0201BDE0
+ add r0, r5, #0x0
+ bl FUN_02021A20
+ add r0, r4, r6
+ bl FUN_02019220
+ add sp, #0x10
+ pop {r3-r7, pc}
+ .balign 4
+_02073440: .word 0x0000069C
+_02073444: .word 0x000F0E00
+
+ thumb_func_start FUN_02073448
+FUN_02073448: ; 0x02073448
+ push {r3-r7, lr}
+ sub sp, #0x10
+ add r5, r0, #0x0
+ lsl r0, r1, #0x2
+ add r0, r1, r0
+ add r0, r0, #0x4
+ add r4, r5, #0x4
+ lsl r7, r0, #0x4
+ add r0, r4, r7
+ mov r1, #0x0
+ add r6, r2, #0x0
+ bl FUN_02019620
+ cmp r6, #0x6
+ ldr r0, _020734B8 ; =0x0000069C
+ bhs _02073476
+ add r6, #0xa9
+ ldr r0, [r5, r0]
+ add r1, r6, #0x0
+ bl FUN_0200A914
+ add r5, r0, #0x0
+ b _02073490
+_02073476:
+ cmp r6, #0x7
+ bne _02073486
+ ldr r0, [r5, r0]
+ mov r1, #0xa7
+ bl FUN_0200A914
+ add r5, r0, #0x0
+ b _02073490
+_02073486:
+ ldr r0, [r5, r0]
+ mov r1, #0xa8
+ bl FUN_0200A914
+ add r5, r0, #0x0
+_02073490:
+ mov r1, #0x0
+ str r1, [sp, #0x0]
+ mov r0, #0xff
+ str r0, [sp, #0x4]
+ ldr r0, _020734BC ; =0x000F0E00
+ add r2, r5, #0x0
+ str r0, [sp, #0x8]
+ add r0, r4, r7
+ add r3, r1, #0x0
+ str r1, [sp, #0xc]
+ bl FUN_0201BDE0
+ add r0, r5, #0x0
+ bl FUN_02021A20
+ add r0, r4, r7
+ bl FUN_02019220
+ add sp, #0x10
+ pop {r3-r7, pc}
+ .balign 4
+_020734B8: .word 0x0000069C
+_020734BC: .word 0x000F0E00
+
+ thumb_func_start FUN_020734C0
+FUN_020734C0: ; 0x020734C0
+ push {r4-r7, lr}
+ sub sp, #0x2c
+ add r5, r0, #0x0
+ ldr r0, _02073628 ; =0x000005A4
+ ldr r1, _0207362C ; =0x00000B25
+ ldr r0, [r5, r0]
+ ldrb r1, [r5, r1]
+ ldr r0, [r0, #0x0]
+ bl FUN_0206B9B0
+ mov r1, #0xa3
+ mov r2, #0x0
+ add r4, r0, #0x0
+ bl FUN_020671BC
+ add r1, sp, #0x20
+ strh r0, [r1, #0x0]
+ add r0, r4, #0x0
+ mov r1, #0xa4
+ mov r2, #0x0
+ bl FUN_020671BC
+ add r1, sp, #0x20
+ strh r0, [r1, #0x2]
+ add r0, r4, #0x0
+ mov r1, #0xa5
+ mov r2, #0x0
+ bl FUN_020671BC
+ add r1, sp, #0x20
+ strh r0, [r1, #0x4]
+ add r0, r4, #0x0
+ mov r1, #0xa7
+ mov r2, #0x0
+ bl FUN_020671BC
+ add r1, sp, #0x20
+ strh r0, [r1, #0x6]
+ add r0, r4, #0x0
+ mov r1, #0xa8
+ mov r2, #0x0
+ bl FUN_020671BC
+ add r1, sp, #0x20
+ strh r0, [r1, #0x8]
+ add r0, r4, #0x0
+ mov r1, #0xa6
+ mov r2, #0x0
+ bl FUN_020671BC
+ add r1, sp, #0x20
+ strh r0, [r1, #0xa]
+ mov r3, #0x1
+ mov r1, #0x9
+ str r3, [sp, #0x0]
+ mov r0, #0xe
+ str r0, [sp, #0x4]
+ mov r0, #0xc
+ str r0, [sp, #0x8]
+ mov r2, #0x0
+ str r2, [sp, #0xc]
+ lsl r1, r1, #0x6
+ str r1, [sp, #0x10]
+ add r1, #0x14
+ ldr r0, [r5, #0x0]
+ add r1, r5, r1
+ bl FUN_02019064
+ mov r0, #0x95
+ lsl r0, r0, #0x2
+ mov r1, #0x1
+ add r0, r5, r0
+ add r2, r1, #0x0
+ mov r3, #0xe
+ bl FUN_0200CCA4
+ mov r0, #0x95
+ lsl r0, r0, #0x2
+ add r0, r5, r0
+ mov r1, #0xf
+ bl FUN_02019620
+ mov r4, #0x0
+ str r4, [sp, #0x14]
+ add r7, r5, #0x0
+ add r6, sp, #0x20
+_0207356C:
+ ldr r0, _02073630 ; =0x0000069C
+ ldr r1, [sp, #0x14]
+ ldr r0, [r5, r0]
+ add r1, #0xb9
+ bl FUN_0200A914
+ str r0, [sp, #0x18]
+ mov r1, #0x0
+ str r4, [sp, #0x0]
+ mov r0, #0xff
+ str r0, [sp, #0x4]
+ mov r0, #0x0
+ str r0, [sp, #0x8]
+ mov r0, #0x95
+ lsl r0, r0, #0x2
+ ldr r2, [sp, #0x18]
+ add r0, r5, r0
+ add r3, r1, #0x0
+ bl FUN_0201BD84
+ ldr r0, [sp, #0x18]
+ bl FUN_02021A20
+ ldr r0, _02073630 ; =0x0000069C
+ mov r1, #0xbf
+ ldr r0, [r5, r0]
+ bl FUN_0200A914
+ str r0, [sp, #0x1c]
+ mov r0, #0x0
+ str r0, [sp, #0x0]
+ mov r0, #0x1
+ str r0, [sp, #0x4]
+ ldr r2, _02073634 ; =0x00000B28
+ mov r0, #0x6a
+ lsl r0, r0, #0x4
+ ldrh r3, [r6, #0x0]
+ ldrh r2, [r7, r2]
+ ldr r0, [r5, r0]
+ mov r1, #0x0
+ sub r2, r3, r2
+ mov r3, #0x2
+ bl FUN_0200AD38
+ mov r0, #0x6a
+ ldr r1, _02073638 ; =0x000006A4
+ lsl r0, r0, #0x4
+ ldr r0, [r5, r0]
+ ldr r1, [r5, r1]
+ ldr r2, [sp, #0x1c]
+ bl FUN_0200B7B8
+ ldr r0, [sp, #0x1c]
+ bl FUN_02021A20
+ ldr r1, _02073638 ; =0x000006A4
+ mov r0, #0x0
+ ldr r1, [r5, r1]
+ add r2, r0, #0x0
+ bl FUN_02002E14
+ mov r1, #0x68
+ sub r3, r1, r0
+ str r4, [sp, #0x0]
+ mov r0, #0xff
+ str r0, [sp, #0x4]
+ mov r0, #0x0
+ str r0, [sp, #0x8]
+ ldr r2, _02073638 ; =0x000006A4
+ mov r0, #0x95
+ lsl r0, r0, #0x2
+ ldr r2, [r5, r2]
+ add r0, r5, r0
+ mov r1, #0x0
+ bl FUN_0201BD84
+ ldrh r1, [r6, #0x0]
+ ldr r0, _02073634 ; =0x00000B28
+ add r4, #0x10
+ strh r1, [r7, r0]
+ ldr r0, [sp, #0x14]
+ add r7, r7, #0x2
+ add r0, r0, #0x1
+ add r6, r6, #0x2
+ str r0, [sp, #0x14]
+ cmp r0, #0x6
+ blo _0207356C
+ mov r0, #0x95
+ lsl r0, r0, #0x2
+ add r0, r5, r0
+ bl FUN_02019220
+ add sp, #0x2c
+ pop {r4-r7, pc}
+ .balign 4
+_02073628: .word 0x000005A4
+_0207362C: .word 0x00000B25
+_02073630: .word 0x0000069C
+_02073634: .word 0x00000B28
+_02073638: .word 0x000006A4
+
+ thumb_func_start FUN_0207363C
+FUN_0207363C: ; 0x0207363C
+ push {r4-r7, lr}
+ sub sp, #0x14
+ add r5, r0, #0x0
+ mov r0, #0x20
+ str r0, [sp, #0x0]
+ mov r0, #0x70
+ str r0, [sp, #0x4]
+ mov r0, #0x95
+ lsl r0, r0, #0x2
+ add r0, r5, r0
+ mov r1, #0xf
+ mov r2, #0x50
+ mov r3, #0x0
+ bl FUN_020196F4
+ ldr r0, _020736E8 ; =0x0000069C
+ mov r1, #0xc0
+ ldr r0, [r5, r0]
+ bl FUN_0200A914
+ str r0, [sp, #0xc]
+ mov r0, #0x0
+ str r0, [sp, #0x10]
+ add r6, r5, #0x0
+ add r4, r0, #0x0
+_0207366E:
+ mov r0, #0x0
+ str r0, [sp, #0x0]
+ mov r0, #0x1
+ str r0, [sp, #0x4]
+ ldr r2, _020736EC ; =0x00000B28
+ mov r0, #0x6a
+ lsl r0, r0, #0x4
+ ldrh r2, [r6, r2]
+ ldr r0, [r5, r0]
+ mov r1, #0x0
+ mov r3, #0x3
+ bl FUN_0200AD38
+ mov r0, #0x6a
+ ldr r1, _020736F0 ; =0x000006A4
+ lsl r0, r0, #0x4
+ ldr r0, [r5, r0]
+ ldr r1, [r5, r1]
+ ldr r2, [sp, #0xc]
+ bl FUN_0200B7B8
+ ldr r1, _020736F0 ; =0x000006A4
+ mov r0, #0x0
+ ldr r1, [r5, r1]
+ add r2, r0, #0x0
+ bl FUN_02002E14
+ add r7, r0, #0x0
+ mov r3, #0x68
+ str r4, [sp, #0x0]
+ mov r0, #0xff
+ str r0, [sp, #0x4]
+ mov r0, #0x0
+ str r0, [sp, #0x8]
+ ldr r2, _020736F0 ; =0x000006A4
+ mov r0, #0x95
+ lsl r0, r0, #0x2
+ ldr r2, [r5, r2]
+ add r0, r5, r0
+ mov r1, #0x0
+ sub r3, r3, r7
+ bl FUN_0201BD84
+ ldr r0, [sp, #0x10]
+ add r6, r6, #0x2
+ add r0, r0, #0x1
+ add r4, #0x10
+ str r0, [sp, #0x10]
+ cmp r0, #0x6
+ blo _0207366E
+ ldr r0, [sp, #0xc]
+ bl FUN_02021A20
+ mov r0, #0x95
+ lsl r0, r0, #0x2
+ add r0, r5, r0
+ bl FUN_02019220
+ add sp, #0x14
+ pop {r4-r7, pc}
+ nop
+_020736E8: .word 0x0000069C
+_020736EC: .word 0x00000B28
+_020736F0: .word 0x000006A4
+
+ thumb_func_start FUN_020736F4
+FUN_020736F4: ; 0x020736F4
+ push {r4, lr}
+ add r4, r0, #0x0
+ mov r0, #0x95
+ lsl r0, r0, #0x2
+ add r0, r4, r0
+ mov r1, #0x0
+ bl FUN_0200CCF8
+ mov r0, #0x95
+ lsl r0, r0, #0x2
+ add r0, r4, r0
+ bl FUN_02019178
+ pop {r4, pc}
+
+ thumb_func_start FUN_02073710
+FUN_02073710: ; 0x02073710
+ push {r3-r7, lr}
+ sub sp, #0x50
+ add r4, r0, #0x0
+ mov r0, #0x10
+ mov r1, #0x1
+ bl FUN_0201E6E4
+ mov r0, #0x10
+ mov r1, #0x1
+ bl FUN_0201E74C
+ mov r0, #0x20
+ mov r1, #0xc
+ bl FUN_0201C24C
+ mov r0, #0xc
+ bl FUN_0200BB14
+ ldr r1, _020737BC ; =0x000005A8
+ str r0, [r4, r1]
+ ldr r0, [r4, r1]
+ bl FUN_0200BB34
+ ldr r7, _020737C0 ; =0x000005AC
+ add r2, sp, #0x30
+ ldr r3, _020737C4 ; =0x020F98F4
+ str r0, [r4, r7]
+ ldmia r3!, {r0-r1}
+ add r6, r2, #0x0
+ 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, _020737C8 ; =0x020F98C4
+ stmia r2!, {r0-r1}
+ add r3, sp, #0x1c
+ ldmia r5!, {r0-r1}
+ add r2, r3, #0x0
+ stmia r3!, {r0-r1}
+ ldmia r5!, {r0-r1}
+ stmia r3!, {r0-r1}
+ ldr r0, [r5, #0x0]
+ add r1, r6, #0x0
+ str r0, [r3, #0x0]
+ sub r0, r7, #0x4
+ ldr r0, [r4, r0]
+ mov r3, #0x20
+ bl FUN_0200BB6C
+ sub r1, r7, #0x4
+ ldr r0, [r4, r1]
+ add r1, r1, #0x4
+ ldr r1, [r4, r1]
+ mov r2, #0x23
+ bl FUN_0200BBF0
+ sub r0, r7, #0x4
+ ldr r0, [r4, r0]
+ bl FUN_0200BB68
+ mov r2, #0x1
+ mov r1, #0x0
+ lsl r2, r2, #0x14
+ bl FUN_02008D24
+ ldr r5, _020737CC ; =0x020F98D8
+ add r3, sp, #0x0
+ ldmia r5!, {r0-r1}
+ add r2, r3, #0x0
+ stmia r3!, {r0-r1}
+ ldmia r5!, {r0-r1}
+ stmia r3!, {r0-r1}
+ ldmia r5!, {r0-r1}
+ stmia r3!, {r0-r1}
+ ldr r0, [r5, #0x0]
+ sub r1, r7, #0x4
+ str r0, [r3, #0x0]
+ ldr r0, [r4, r1]
+ add r1, r1, #0x4
+ ldr r1, [r4, r1]
+ bl FUN_0200BD20
+ add sp, #0x50
+ pop {r3-r7, pc}
+ .balign 4
+_020737BC: .word 0x000005A8
+_020737C0: .word 0x000005AC
+_020737C4: .word 0x020F98F4
+_020737C8: .word 0x020F98C4
+_020737CC: .word 0x020F98D8
+
+ thumb_func_start FUN_020737D0
+FUN_020737D0: ; 0x020737D0
+ push {r4-r7, lr}
+ sub sp, #0x3c
+ add r5, r0, #0x0
+ ldr r0, _02073878 ; =0x000005A4
+ str r3, [sp, #0x8]
+ ldr r0, [r5, r0]
+ add r4, r2, #0x0
+ ldr r0, [r0, #0x0]
+ add r7, r1, #0x0
+ bl FUN_0206B9B0
+ lsl r1, r4, #0x10
+ asr r6, r1, #0x10
+ mov r1, #0x2c
+ mul r1, r7
+ str r1, [sp, #0xc]
+ add r2, r5, r1
+ ldr r1, _0207387C ; =0x00000716
+ str r0, [sp, #0x10]
+ strh r6, [r2, r1]
+ ldr r3, [sp, #0x8]
+ add r1, r1, #0x2
+ lsl r3, r3, #0x10
+ asr r4, r3, #0x10
+ strh r4, [r2, r1]
+ add r7, r7, #0x4
+ bl FUN_0206B6C8
+ add r3, r0, #0x0
+ mov r0, #0x0
+ str r0, [sp, #0x0]
+ ldr r1, _02073880 ; =0x000005A8
+ str r7, [sp, #0x4]
+ ldr r0, [r5, r1]
+ add r1, r1, #0x4
+ ldr r1, [r5, r1]
+ mov r2, #0x13
+ bl FUN_0200C9D8
+ ldr r0, [sp, #0x10]
+ mov r1, #0x4c
+ mov r2, #0x0
+ bl FUN_020671BC
+ add r2, r0, #0x0
+ str r7, [sp, #0x14]
+ add r0, sp, #0x14
+ strh r6, [r0, #0x4]
+ strh r4, [r0, #0x6]
+ mov r1, #0x0
+ strh r1, [r0, #0x8]
+ strh r1, [r0, #0xa]
+ ldr r0, [sp, #0xc]
+ str r1, [sp, #0x20]
+ ldr r1, _02073884 ; =0x00000704
+ add r3, r5, r0
+ ldrh r0, [r3, r1]
+ add r1, #0xd
+ ldrb r1, [r3, r1]
+ bl FUN_0206B7BC
+ add r0, r0, #0x3
+ str r0, [sp, #0x24]
+ mov r0, #0x1
+ str r0, [sp, #0x28]
+ mov r0, #0x0
+ ldr r1, _02073880 ; =0x000005A8
+ str r0, [sp, #0x2c]
+ str r0, [sp, #0x30]
+ str r0, [sp, #0x34]
+ str r0, [sp, #0x38]
+ ldr r0, [r5, r1]
+ add r1, r1, #0x4
+ ldr r1, [r5, r1]
+ add r2, sp, #0x14
+ bl FUN_0200BE38
+ ldr r1, [sp, #0xc]
+ add r2, r5, r1
+ ldr r1, _02073888 ; =0x00000724
+ str r0, [r2, r1]
+ add sp, #0x3c
+ pop {r4-r7, pc}
+ nop
+_02073878: .word 0x000005A4
+_0207387C: .word 0x00000716
+_02073880: .word 0x000005A8
+_02073884: .word 0x00000704
+_02073888: .word 0x00000724
+
+ thumb_func_start FUN_0207388C
+FUN_0207388C: ; 0x0207388C
+ push {r4-r7, lr}
+ sub sp, #0x14
+ ldr r1, _020739AC ; =0x000005A8
+ add r5, r0, #0x0
+ ldr r0, [r5, r1]
+ add r1, r1, #0x4
+ ldr r1, [r5, r1]
+ ldr r2, _020739B0 ; =0x020F9914
+ bl FUN_0200BE38
+ ldr r1, _020739B4 ; =0x000005C8
+ ldr r2, _020739B8 ; =0x020F993C
+ str r0, [r5, r1]
+ add r0, r1, #0x0
+ sub r0, #0x20
+ sub r1, #0x1c
+ ldr r0, [r5, r0]
+ ldr r1, [r5, r1]
+ bl FUN_0200BE38
+ ldr r1, _020739BC ; =0x000005CC
+ ldr r2, _020739C0 ; =0x020F9964
+ str r0, [r5, r1]
+ add r0, r1, #0x0
+ sub r0, #0x24
+ sub r1, #0x20
+ ldr r0, [r5, r0]
+ ldr r1, [r5, r1]
+ bl FUN_0200BE38
+ mov r1, #0x5d
+ lsl r1, r1, #0x4
+ str r0, [r5, r1]
+ add r0, r1, #0x0
+ sub r0, #0x28
+ sub r1, #0x24
+ ldr r0, [r5, r0]
+ ldr r1, [r5, r1]
+ ldr r2, _020739C4 ; =0x020F998C
+ bl FUN_0200BE38
+ ldr r1, _020739C8 ; =0x000005D4
+ ldr r2, _020739CC ; =0x020F9C84
+ str r0, [r5, r1]
+ add r0, r1, #0x0
+ sub r0, #0x2c
+ sub r1, #0x28
+ ldr r0, [r5, r0]
+ ldr r1, [r5, r1]
+ bl FUN_0200BE38
+ mov r1, #0x62
+ lsl r1, r1, #0x4
+ str r0, [r5, r1]
+ ldr r0, _020739B0 ; =0x020F9914
+ mov r4, #0x0
+ str r4, [sp, #0x4]
+ add r6, r5, #0x0
+ str r0, [sp, #0x0]
+ add r7, r5, #0x0
+ str r0, [sp, #0x8]
+ str r0, [sp, #0xc]
+ str r0, [sp, #0x10]
+_0207390A:
+ ldr r0, _020739AC ; =0x000005A8
+ ldr r1, _020739D0 ; =0x000005AC
+ add r3, r4, #0x0
+ ldr r2, [sp, #0x8]
+ add r3, #0xa0
+ ldr r0, [r5, r0]
+ ldr r1, [r5, r1]
+ add r2, r2, r3
+ bl FUN_0200BE38
+ ldr r1, _020739D4 ; =0x000005D8
+ str r0, [r6, r1]
+ ldr r1, [sp, #0x0]
+ mov r0, #0xa4
+ ldrsh r1, [r1, r0]
+ ldr r0, _020739D8 ; =0x0000071A
+ strh r1, [r7, r0]
+ ldr r1, [sp, #0x0]
+ mov r0, #0xa6
+ ldrsh r1, [r1, r0]
+ ldr r0, _020739DC ; =0x0000071C
+ strh r1, [r7, r0]
+ ldr r0, _020739D4 ; =0x000005D8
+ mov r1, #0x0
+ ldr r0, [r6, r0]
+ bl FUN_020200A0
+ mov r2, #0x19
+ ldr r0, _020739AC ; =0x000005A8
+ ldr r1, _020739D0 ; =0x000005AC
+ lsl r2, r2, #0x4
+ add r3, r4, r2
+ ldr r2, [sp, #0xc]
+ ldr r0, [r5, r0]
+ ldr r1, [r5, r1]
+ add r2, r2, r3
+ bl FUN_0200BE38
+ mov r1, #0x5f
+ lsl r1, r1, #0x4
+ mov r2, #0xa
+ str r0, [r6, r1]
+ add r0, r1, #0x0
+ lsl r2, r2, #0x6
+ sub r0, #0x48
+ sub r1, #0x44
+ add r3, r4, r2
+ ldr r2, [sp, #0x10]
+ ldr r0, [r5, r0]
+ ldr r1, [r5, r1]
+ add r2, r2, r3
+ bl FUN_0200BE38
+ ldr r1, _020739E0 ; =0x00000608
+ add r4, #0x28
+ str r0, [r6, r1]
+ ldr r0, [sp, #0x0]
+ add r6, r6, #0x4
+ add r0, #0x28
+ str r0, [sp, #0x0]
+ ldr r0, [sp, #0x4]
+ add r7, #0x2c
+ add r0, r0, #0x1
+ str r0, [sp, #0x4]
+ cmp r0, #0x6
+ blo _0207390A
+ add r0, r1, #0x0
+ sub r0, #0x3c
+ ldr r0, [r5, r0]
+ mov r1, #0x0
+ bl FUN_020200A0
+ mov r0, #0x62
+ lsl r0, r0, #0x4
+ ldr r0, [r5, r0]
+ mov r1, #0x0
+ bl FUN_020200A0
+ add sp, #0x14
+ pop {r4-r7, pc}
+ nop
+_020739AC: .word 0x000005A8
+_020739B0: .word 0x020F9914
+_020739B4: .word 0x000005C8
+_020739B8: .word 0x020F993C
+_020739BC: .word 0x000005CC
+_020739C0: .word 0x020F9964
+_020739C4: .word 0x020F998C
+_020739C8: .word 0x000005D4
+_020739CC: .word 0x020F9C84
+_020739D0: .word 0x000005AC
+_020739D4: .word 0x000005D8
+_020739D8: .word 0x0000071A
+_020739DC: .word 0x0000071C
+_020739E0: .word 0x00000608
+
+ thumb_func_start FUN_020739E4
+FUN_020739E4: ; 0x020739E4
+ push {r3-r5, lr}
+ sub sp, #0x28
+ add r4, r1, #0x0
+ mov r1, #0x0
+ add r5, r0, #0x0
+ str r1, [sp, #0x0]
+ add r0, sp, #0x0
+ strh r2, [r0, #0x4]
+ strh r3, [r0, #0x6]
+ strh r1, [r0, #0x8]
+ strh r1, [r0, #0xa]
+ mov r0, #0x1
+ str r1, [sp, #0x10]
+ str r1, [sp, #0x18]
+ str r1, [sp, #0x1c]
+ str r1, [sp, #0x20]
+ str r1, [sp, #0x24]
+ ldr r1, _02073A28 ; =0x000005A8
+ str r0, [sp, #0xc]
+ str r0, [sp, #0x14]
+ ldr r0, [r5, r1]
+ add r1, r1, #0x4
+ ldr r1, [r5, r1]
+ add r2, sp, #0x0
+ bl FUN_0200BE38
+ lsl r1, r4, #0x2
+ add r2, r5, r1
+ mov r1, #0x5b
+ lsl r1, r1, #0x4
+ str r0, [r2, r1]
+ add sp, #0x28
+ pop {r3-r5, pc}
+ nop
+_02073A28: .word 0x000005A8
+
+ thumb_func_start FUN_02073A2C
+FUN_02073A2C: ; 0x02073A2C
+ push {r4, lr}
+ ldr r1, _02073A48 ; =0x000005A8
+ add r4, r0, #0x0
+ ldr r0, [r4, r1]
+ add r1, r1, #0x4
+ ldr r1, [r4, r1]
+ bl FUN_0200BCE0
+ ldr r0, _02073A48 ; =0x000005A8
+ ldr r0, [r4, r0]
+ bl FUN_0200BD04
+ pop {r4, pc}
+ nop
+_02073A48: .word 0x000005A8
+
+ thumb_func_start FUN_02073A4C
+FUN_02073A4C: ; 0x02073A4C
+ push {r3-r5, lr}
+ mov r3, #0x5b
+ lsl r3, r3, #0x4
+ add r1, #0xa
+ add r5, r0, r3
+ lsl r4, r1, #0x2
+ cmp r2, #0x7
+ ldr r0, [r5, r4]
+ bne _02073A66
+ mov r1, #0x0
+ bl FUN_020200A0
+ pop {r3-r5, pc}
+_02073A66:
+ add r1, r2, #0x0
+ bl FUN_02020130
+ ldr r0, [r5, r4]
+ mov r1, #0x1
+ bl FUN_020200A0
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_02073A78
+FUN_02073A78: ; 0x02073A78
+ push {r3-r5, lr}
+ mov r3, #0x5b
+ lsl r3, r3, #0x4
+ add r1, #0x10
+ add r5, r0, r3
+ lsl r4, r1, #0x2
+ cmp r2, #0x0
+ bne _02073A92
+ ldr r0, [r5, r4]
+ mov r1, #0x0
+ bl FUN_020200A0
+ pop {r3-r5, pc}
+_02073A92:
+ add r0, r2, #0x0
+ bl FUN_0206EA98
+ cmp r0, #0x1
+ ldr r0, [r5, r4]
+ bne _02073AA6
+ mov r1, #0x1
+ bl FUN_02020130
+ b _02073AAC
+_02073AA6:
+ mov r1, #0x0
+ bl FUN_02020130
+_02073AAC:
+ ldr r0, [r5, r4]
+ mov r1, #0x1
+ bl FUN_020200A0
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_02073AB8
+FUN_02073AB8: ; 0x02073AB8
+ push {r3-r5, lr}
+ mov r2, #0x5b
+ lsl r2, r2, #0x4
+ add r1, #0x10
+ lsl r4, r1, #0x2
+ add r5, r0, r2
+ ldr r0, [r5, r4]
+ mov r1, #0x1
+ bl FUN_02020130
+ ldr r0, [r5, r4]
+ mov r1, #0x1
+ bl FUN_020200A0
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_02073AD8
+FUN_02073AD8: ; 0x02073AD8
+ push {r4-r6, lr}
+ ldr r6, _02073B08 ; =0x0000071E
+ add r5, r1, #0x0
+ mov r4, #0x2c
+ mul r5, r4
+ add r1, #0x10
+ lsl r1, r1, #0x2
+ add r4, r0, r6
+ add r2, #0x8
+ strh r2, [r4, r5]
+ add r2, r6, #0x2
+ add r2, r0, r2
+ add r3, #0x8
+ add r1, r0, r1
+ mov r0, #0x5b
+ strh r3, [r2, r5]
+ lsl r0, r0, #0x4
+ ldr r0, [r1, r0]
+ ldrsh r1, [r4, r5]
+ ldrsh r2, [r2, r5]
+ bl FUN_0200C6E4
+ pop {r4-r6, pc}
+ nop
+_02073B08: .word 0x0000071E
+
+ thumb_func_start FUN_02073B0C
+FUN_02073B0C: ; 0x02073B0C
+ add r2, r0, #0x0
+ add r3, r1, #0x0
+ mov r0, #0x2c
+ mul r3, r0
+ add r1, #0x16
+ lsl r0, r1, #0x2
+ add r1, r2, r0
+ mov r0, #0x5b
+ add r3, r2, r3
+ lsl r0, r0, #0x4
+ ldr r2, _02073B34 ; =0x0000071E
+ ldr r0, [r1, r0]
+ ldrsh r1, [r3, r2]
+ add r2, r2, #0x2
+ ldrsh r2, [r3, r2]
+ add r1, #0x8
+ lsl r1, r1, #0x10
+ ldr r3, _02073B38 ; =FUN_0200C6E4
+ asr r1, r1, #0x10
+ bx r3
+ .balign 4
+_02073B34: .word 0x0000071E
+_02073B38: .word FUN_0200C6E4
+
+ thumb_func_start FUN_02073B3C
+FUN_02073B3C: ; 0x02073B3C
+ push {r4, lr}
+ mov r2, #0x5b
+ mov r4, #0x2c
+ lsl r2, r2, #0x4
+ add r3, r0, r2
+ add r2, r1, #0x0
+ mul r4, r1
+ add r1, r0, r4
+ ldr r0, _02073B6C ; =0x00000712
+ add r2, #0x16
+ ldrh r0, [r1, r0]
+ lsl r2, r2, #0x2
+ cmp r0, #0x0
+ ldr r0, [r3, r2]
+ bne _02073B62
+ mov r1, #0x0
+ bl FUN_020200A0
+ pop {r4, pc}
+_02073B62:
+ mov r1, #0x1
+ bl FUN_020200A0
+ pop {r4, pc}
+ nop
+_02073B6C: .word 0x00000712
+
+ thumb_func_start FUN_02073B70
+FUN_02073B70: ; 0x02073B70
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ bl FUN_020201DC
+ cmp r4, r0
+ beq _02073B8E
+ add r0, r5, #0x0
+ mov r1, #0x0
+ bl FUN_02020208
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_02020130
+_02073B8E:
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_02073B90
+FUN_02073B90: ; 0x02073B90
+ push {r3, lr}
+ add r2, r0, #0x0
+ ldrh r0, [r2, #0x6]
+ cmp r0, #0x0
+ bne _02073B9E
+ mov r0, #0x0
+ pop {r3, pc}
+_02073B9E:
+ ldrh r1, [r2, #0xe]
+ lsl r1, r1, #0x14
+ lsr r1, r1, #0x14
+ cmp r1, #0x7
+ beq _02073BB4
+ cmp r1, #0x0
+ beq _02073BB4
+ cmp r1, #0x6
+ beq _02073BB4
+ mov r0, #0x5
+ pop {r3, pc}
+_02073BB4:
+ ldrh r1, [r2, #0x8]
+ mov r2, #0x30
+ bl FUN_02079A54
+ cmp r0, #0x4
+ bhi _02073BE6
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02073BCC: ; jump table (using 16-bit offset)
+ .short _02073BE6 - _02073BCC - 2; case 0
+ .short _02073BE2 - _02073BCC - 2; case 1
+ .short _02073BDE - _02073BCC - 2; case 2
+ .short _02073BDA - _02073BCC - 2; case 3
+ .short _02073BD6 - _02073BCC - 2; case 4
+_02073BD6:
+ mov r0, #0x1
+ pop {r3, pc}
+_02073BDA:
+ mov r0, #0x2
+ pop {r3, pc}
+_02073BDE:
+ mov r0, #0x3
+ pop {r3, pc}
+_02073BE2:
+ mov r0, #0x4
+ pop {r3, pc}
+_02073BE6:
+ mov r0, #0x0
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_02073BEC
+FUN_02073BEC: ; 0x02073BEC
+ push {r3-r7, lr}
+ add r6, r0, #0x0
+ mov r0, #0x7
+ lsl r0, r0, #0x8
+ add r0, r6, r0
+ mov r5, #0x0
+ str r0, [sp, #0x0]
+_02073BFA:
+ mov r0, #0x2c
+ add r1, r5, #0x0
+ mul r1, r0
+ ldr r0, [sp, #0x0]
+ add r4, r0, r1
+ add r0, r4, #0x0
+ add r0, #0x29
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x0
+ beq _02073C9A
+ mov r0, #0xb1
+ lsl r0, r0, #0x4
+ ldrb r0, [r6, r0]
+ cmp r0, #0x1
+ bne _02073C2C
+ ldr r0, _02073CA8 ; =0x00000B0C
+ ldrb r0, [r6, r0]
+ cmp r0, r5
+ beq _02073C28
+ ldr r0, _02073CAC ; =0x00000B0D
+ ldrb r0, [r6, r0]
+ cmp r0, r5
+ bne _02073C2C
+_02073C28:
+ mov r7, #0x0
+ b _02073C34
+_02073C2C:
+ add r0, r4, #0x0
+ bl FUN_02073B90
+ add r7, r0, #0x0
+_02073C34:
+ lsl r1, r7, #0x18
+ ldr r0, [r4, #0x24]
+ lsr r1, r1, #0x18
+ bl FUN_02073B70
+ mov r1, #0x1
+ ldr r0, [r4, #0x24]
+ lsl r1, r1, #0xc
+ bl FUN_020201E4
+ ldr r0, _02073CB0 ; =0x00000B25
+ ldrb r0, [r6, r0]
+ cmp r0, r5
+ bne _02073C8C
+ cmp r7, #0x0
+ beq _02073C8C
+ cmp r7, #0x5
+ beq _02073C8C
+ ldr r0, [r4, #0x24]
+ bl FUN_0202022C
+ cmp r0, #0x0
+ ldr r0, [r4, #0x24]
+ bne _02073C78
+ mov r2, #0x18
+ ldrsh r2, [r4, r2]
+ mov r1, #0x16
+ ldrsh r1, [r4, r1]
+ sub r2, r2, #0x3
+ lsl r2, r2, #0x10
+ asr r2, r2, #0x10
+ bl FUN_0200C6E4
+ b _02073C9A
+_02073C78:
+ mov r2, #0x18
+ ldrsh r2, [r4, r2]
+ mov r1, #0x16
+ ldrsh r1, [r4, r1]
+ add r2, r2, #0x1
+ lsl r2, r2, #0x10
+ asr r2, r2, #0x10
+ bl FUN_0200C6E4
+ b _02073C9A
+_02073C8C:
+ mov r1, #0x16
+ mov r2, #0x18
+ ldrsh r1, [r4, r1]
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x24]
+ bl FUN_0200C6E4
+_02073C9A:
+ add r0, r5, #0x1
+ lsl r0, r0, #0x10
+ lsr r5, r0, #0x10
+ cmp r5, #0x6
+ blo _02073BFA
+ pop {r3-r7, pc}
+ nop
+_02073CA8: .word 0x00000B0C
+_02073CAC: .word 0x00000B0D
+_02073CB0: .word 0x00000B25
+
+ thumb_func_start FUN_02073CB4
+FUN_02073CB4: ; 0x02073CB4
+ push {r3-r6, lr}
+ sub sp, #0x4
+ add r5, r0, #0x0
+ ldr r0, _02073D10 ; =0x00000808
+ add r4, r1, #0x0
+ ldr r1, [r5, r0]
+ lsl r0, r4, #0x3
+ add r0, r1, r0
+ add r1, sp, #0x0
+ add r6, r2, #0x0
+ add r1, #0x1
+ add r2, sp, #0x0
+ bl FUN_0201C620
+ ldr r0, _02073D14 ; =0x000005A4
+ add r1, r4, #0x0
+ ldr r0, [r5, r0]
+ add r0, #0x21
+ ldrb r0, [r0, #0x0]
+ bl FUN_020714BC
+ add r1, r0, #0x0
+ ldr r0, _02073D18 ; =0x000005C8
+ ldr r0, [r5, r0]
+ bl FUN_02020130
+ ldr r0, _02073D18 ; =0x000005C8
+ mov r1, #0x1
+ ldr r0, [r5, r0]
+ bl FUN_020200A0
+ ldr r0, _02073D18 ; =0x000005C8
+ add r2, sp, #0x0
+ ldrb r1, [r2, #0x1]
+ ldrb r2, [r2, #0x0]
+ ldr r0, [r5, r0]
+ bl FUN_0200C6E4
+ ldr r0, _02073D18 ; =0x000005C8
+ add r1, r6, #0x0
+ ldr r0, [r5, r0]
+ bl FUN_0200C664
+ add sp, #0x4
+ pop {r3-r6, pc}
+ nop
+_02073D10: .word 0x00000808
+_02073D14: .word 0x000005A4
+_02073D18: .word 0x000005C8
+
+ thumb_func_start FUN_02073D1C
+FUN_02073D1C: ; 0x02073D1C
+ push {r3-r4, lr}
+ sub sp, #0xc
+ add r4, r0, #0x0
+ lsl r0, r1, #0xc
+ str r0, [sp, #0x0]
+ mov r0, #0x1
+ lsl r1, r2, #0xc
+ lsl r0, r0, #0x14
+ str r1, [sp, #0x4]
+ add r0, r1, r0
+ str r0, [sp, #0x4]
+ mov r0, #0x0
+ str r0, [sp, #0x8]
+ mov r0, #0x62
+ lsl r0, r0, #0x4
+ ldr r0, [r4, r0]
+ add r1, sp, #0x0
+ bl FUN_02020044
+ mov r0, #0x62
+ lsl r0, r0, #0x4
+ ldr r0, [r4, r0]
+ mov r1, #0x1
+ bl FUN_020200A0
+ mov r0, #0x62
+ lsl r0, r0, #0x4
+ ldr r0, [r4, r0]
+ mov r1, #0x0
+ bl FUN_02020208
+ mov r0, #0x62
+ lsl r0, r0, #0x4
+ ldr r0, [r4, r0]
+ mov r1, #0x0
+ bl FUN_02020130
+ add sp, #0xc
+ pop {r3-r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02073D6C
+FUN_02073D6C: ; 0x02073D6C
+ push {r4, lr}
+ add r4, r0, #0x0
+ mov r0, #0x62
+ lsl r0, r0, #0x4
+ ldr r0, [r4, r0]
+ bl FUN_02020128
+ cmp r0, #0x1
+ bne _02073DA6
+ mov r0, #0x62
+ lsl r0, r0, #0x4
+ mov r1, #0x1
+ ldr r0, [r4, r0]
+ lsl r1, r1, #0xc
+ bl FUN_020201E4
+ mov r0, #0x62
+ lsl r0, r0, #0x4
+ ldr r0, [r4, r0]
+ bl FUN_0202022C
+ cmp r0, #0x2
+ bne _02073DA6
+ mov r0, #0x62
+ lsl r0, r0, #0x4
+ ldr r0, [r4, r0]
+ mov r1, #0x0
+ bl FUN_020200A0
+_02073DA6:
+ pop {r4, pc}
+
+ thumb_func_start FUN_02073DA8
+FUN_02073DA8: ; 0x02073DA8
+ lsl r1, r0, #0x2
+ ldr r0, _02073DB0 ; =0x020F9CAC
+ ldr r0, [r0, r1]
+ bx lr
+ .balign 4
+_02073DB0: .word 0x020F9CAC
+
+ thumb_func_start FUN_02073DB4
+FUN_02073DB4: ; 0x02073DB4
+ push {r4, lr}
+ add r4, r0, #0x0
+ mov r0, #0x95
+ lsl r0, r0, #0x2
+ add r0, r4, r0
+ mov r1, #0x1
+ bl FUN_0200CCF8
+ mov r0, #0x95
+ lsl r0, r0, #0x2
+ add r0, r4, r0
+ bl FUN_0201958C
+ ldr r0, _02073DEC ; =0x000006FC
+ mov r1, #0x0
+ ldr r0, [r4, r0]
+ bl FUN_02001C5C
+ ldr r0, _02073DF0 ; =0x000006F8
+ ldr r0, [r4, r0]
+ bl FUN_02012870
+ mov r0, #0x95
+ lsl r0, r0, #0x2
+ add r0, r4, r0
+ bl FUN_02019178
+ pop {r4, pc}
+ .balign 4
+_02073DEC: .word 0x000006FC
+_02073DF0: .word 0x000006F8
+
+ thumb_func_start FUN_02073DF4
+FUN_02073DF4: ; 0x02073DF4
+ push {r3-r6, lr}
+ sub sp, #0x14
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ bl FUN_02073DB4
+ add r0, r5, #0x0
+ mov r1, #0x26
+ mov r2, #0x0
+ bl FUN_020731D4
+ mov r0, #0x3
+ mov r1, #0xc
+ bl FUN_02012838
+ ldr r1, _02073EB0 ; =0x000006F8
+ str r0, [r5, r1]
+ mov r0, #0x3
+ bl FUN_02073DA8
+ ldr r1, _02073EB0 ; =0x000006F8
+ add r2, r0, #0x0
+ ldr r0, [r5, r1]
+ sub r1, #0x40
+ ldr r1, [r5, r1]
+ bl FUN_020128A0
+ mov r0, #0x4
+ bl FUN_02073DA8
+ ldr r1, _02073EB0 ; =0x000006F8
+ add r2, r0, #0x0
+ ldr r0, [r5, r1]
+ sub r1, #0x3c
+ ldr r1, [r5, r1]
+ bl FUN_020128A0
+ mov r0, #0x9
+ bl FUN_02073DA8
+ ldr r1, _02073EB0 ; =0x000006F8
+ add r2, r0, #0x0
+ ldr r0, [r5, r1]
+ sub r1, #0x28
+ ldr r1, [r5, r1]
+ bl FUN_020128A0
+ ldr r0, _02073EB0 ; =0x000006F8
+ mov r1, #0x0
+ ldr r0, [r5, r0]
+ add r2, sp, #0x8
+ str r0, [sp, #0x8]
+ mov r0, #0x8d
+ lsl r0, r0, #0x2
+ add r0, r5, r0
+ str r0, [sp, #0xc]
+ strb r1, [r2, #0x8]
+ mov r1, #0x1
+ strb r1, [r2, #0x9]
+ mov r3, #0x3
+ strb r3, [r2, #0xa]
+ ldrb r6, [r2, #0xb]
+ mov r3, #0xf
+ bic r6, r3
+ strb r6, [r2, #0xb]
+ ldrb r6, [r2, #0xb]
+ mov r3, #0x30
+ bic r6, r3
+ strb r6, [r2, #0xb]
+ ldrb r6, [r2, #0xb]
+ mov r3, #0xc0
+ bic r6, r3
+ strb r6, [r2, #0xb]
+ add r2, r1, #0x0
+ mov r3, #0xe
+ bl FUN_0200CCA4
+ mov r0, #0xc
+ str r0, [sp, #0x0]
+ mov r0, #0x2
+ mov r2, #0x0
+ str r0, [sp, #0x4]
+ add r0, sp, #0x8
+ mov r1, #0x8
+ add r3, r2, #0x0
+ bl FUN_02001C14
+ ldr r1, _02073EB4 ; =0x000006FC
+ str r0, [r5, r1]
+ mov r0, #0xd
+ str r0, [r4, #0x0]
+ add sp, #0x14
+ pop {r3-r6, pc}
+ nop
+_02073EB0: .word 0x000006F8
+_02073EB4: .word 0x000006FC
+
+ thumb_func_start FUN_02073EB8
+FUN_02073EB8: ; 0x02073EB8
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ ldr r0, _02073EE0 ; =0x000006FC
+ add r4, r1, #0x0
+ ldr r0, [r5, r0]
+ mov r1, #0x0
+ bl FUN_02001C5C
+ ldr r0, _02073EE4 ; =0x000006F8
+ ldr r0, [r5, r0]
+ bl FUN_02012870
+ ldr r0, _02073EE8 ; =0x000005A4
+ mov r1, #0x3
+ ldr r0, [r5, r0]
+ add r0, #0x23
+ strb r1, [r0, #0x0]
+ mov r0, #0x1b
+ str r0, [r4, #0x0]
+ pop {r3-r5, pc}
+ .balign 4
+_02073EE0: .word 0x000006FC
+_02073EE4: .word 0x000006F8
+_02073EE8: .word 0x000005A4
+
+ thumb_func_start FUN_02073EEC
+FUN_02073EEC: ; 0x02073EEC
+ push {r3-r6, lr}
+ sub sp, #0x4
+ add r5, r0, #0x0
+ mov r0, #0x8d
+ lsl r0, r0, #0x2
+ add r4, r1, #0x0
+ add r0, r5, r0
+ mov r1, #0x1
+ bl FUN_0200CCF8
+ ldr r0, _02074044 ; =0x000006FC
+ mov r1, #0x0
+ ldr r0, [r5, r0]
+ bl FUN_02001C5C
+ ldr r0, _02074048 ; =0x000006F8
+ ldr r0, [r5, r0]
+ bl FUN_02012870
+ ldr r0, _0207404C ; =0x00000B25
+ ldrb r1, [r5, r0]
+ mov r0, #0x2c
+ mul r0, r1
+ add r2, r5, r0
+ ldr r0, _02074050 ; =0x0000070C
+ ldrh r2, [r2, r0]
+ ldr r0, _02074054 ; =0x000005A4
+ cmp r2, #0x0
+ bne _02073F66
+ ldr r0, [r5, r0]
+ ldr r0, [r0, #0x0]
+ bl FUN_0206B9B0
+ ldr r2, _02074058 ; =0x0000069C
+ add r6, r0, #0x0
+ ldr r0, [r5, r2]
+ add r2, #0xc
+ ldr r2, [r5, r2]
+ mov r1, #0x51
+ bl FUN_0200A8E0
+ add r0, r6, #0x0
+ bl FUN_020690E4
+ add r2, r0, #0x0
+ mov r0, #0x6a
+ lsl r0, r0, #0x4
+ ldr r0, [r5, r0]
+ mov r1, #0x0
+ bl FUN_0200ACF8
+ mov r2, #0x6a
+ lsl r2, r2, #0x4
+ add r1, r2, #0x4
+ ldr r0, [r5, r2]
+ add r2, #0x8
+ ldr r1, [r5, r1]
+ ldr r2, [r5, r2]
+ bl FUN_0200B7B8
+ b _02074018
+_02073F66:
+ ldr r0, [r5, r0]
+ add r1, r2, #0x0
+ ldr r0, [r0, #0x4]
+ mov r2, #0x1
+ mov r3, #0xc
+ bl FUN_0206ED38
+ cmp r0, #0x1
+ bne _0207400A
+ ldr r0, _02074054 ; =0x000005A4
+ ldr r1, _0207404C ; =0x00000B25
+ ldr r0, [r5, r0]
+ ldrb r1, [r5, r1]
+ ldr r0, [r0, #0x0]
+ bl FUN_0206B9B0
+ mov r1, #0x0
+ str r1, [sp, #0x0]
+ add r6, r0, #0x0
+ mov r1, #0x6
+ add r2, sp, #0x0
+ bl FUN_02067830
+ add r0, r6, #0x0
+ bl FUN_02069EC4
+ ldr r2, _02074058 ; =0x0000069C
+ mov r1, #0x52
+ ldr r0, [r5, r2]
+ add r2, #0xc
+ ldr r2, [r5, r2]
+ bl FUN_0200A8E0
+ add r0, r6, #0x0
+ bl FUN_020690E4
+ add r2, r0, #0x0
+ mov r0, #0x6a
+ lsl r0, r0, #0x4
+ ldr r0, [r5, r0]
+ mov r1, #0x0
+ bl FUN_0200ACF8
+ ldr r2, _0207404C ; =0x00000B25
+ mov r3, #0x6a
+ ldrb r6, [r5, r2]
+ mov r2, #0x2c
+ lsl r3, r3, #0x4
+ mul r2, r6
+ ldr r0, [r5, r3]
+ add r2, r5, r2
+ add r3, #0x6c
+ ldrh r2, [r2, r3]
+ mov r1, #0x1
+ bl FUN_0200AE38
+ mov r2, #0x6a
+ lsl r2, r2, #0x4
+ add r1, r2, #0x4
+ ldr r0, [r5, r2]
+ add r2, #0x8
+ ldr r1, [r5, r1]
+ ldr r2, [r5, r2]
+ bl FUN_0200B7B8
+ ldr r1, _0207404C ; =0x00000B25
+ mov r2, #0x2c
+ ldrb r3, [r5, r1]
+ mov r0, #0x0
+ add r6, r3, #0x0
+ mul r6, r2
+ ldr r3, _02074050 ; =0x0000070C
+ add r6, r5, r6
+ strh r0, [r6, r3]
+ ldrb r1, [r5, r1]
+ add r0, r5, #0x0
+ mul r2, r1
+ add r2, r5, r2
+ ldrh r2, [r2, r3]
+ bl FUN_02073A78
+ b _02074018
+_0207400A:
+ ldr r2, _02074058 ; =0x0000069C
+ mov r1, #0x53
+ ldr r0, [r5, r2]
+ add r2, #0x8
+ ldr r2, [r5, r2]
+ bl FUN_0200A8E0
+_02074018:
+ mov r0, #0x89
+ lsl r0, r0, #0x2
+ add r0, r5, r0
+ mov r1, #0x1
+ mov r2, #0xa
+ mov r3, #0xf
+ bl FUN_0200D0BC
+ mov r0, #0x89
+ lsl r0, r0, #0x2
+ add r0, r5, r0
+ mov r1, #0xf
+ bl FUN_02019620
+ add r0, r5, #0x0
+ bl FUN_0207322C
+ mov r0, #0xf
+ str r0, [r4, #0x0]
+ add sp, #0x4
+ pop {r3-r6, pc}
+ nop
+_02074044: .word 0x000006FC
+_02074048: .word 0x000006F8
+_0207404C: .word 0x00000B25
+_02074050: .word 0x0000070C
+_02074054: .word 0x000005A4
+_02074058: .word 0x0000069C
+
+ thumb_func_start FUN_0207405C
+FUN_0207405C: ; 0x0207405C
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r0, _020740A0 ; =0x00000B24
+ ldrb r0, [r4, r0]
+ bl FUN_0201BD70
+ cmp r0, #0x0
+ bne _0207409A
+ ldr r0, _020740A4 ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #0x3
+ tst r0, r1
+ beq _0207409A
+ mov r0, #0x89
+ lsl r0, r0, #0x2
+ add r0, r4, r0
+ mov r1, #0x1
+ bl FUN_0200D0E0
+ add r0, r4, #0x0
+ mov r1, #0x1d
+ mov r2, #0x1
+ bl FUN_020731C0
+ ldr r0, _020740A8 ; =0x000005C8
+ mov r1, #0x0
+ ldr r0, [r4, r0]
+ bl FUN_0200C664
+ mov r0, #0x1
+ pop {r4, pc}
+_0207409A:
+ mov r0, #0xf
+ pop {r4, pc}
+ nop
+_020740A0: .word 0x00000B24
+_020740A4: .word 0x021C48B8
+_020740A8: .word 0x000005C8
+
+ thumb_func_start FUN_020740AC
+FUN_020740AC: ; 0x020740AC
+ push {r3-r6, lr}
+ sub sp, #0x14
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ bl FUN_02073DB4
+ add r0, r5, #0x0
+ mov r1, #0x27
+ mov r2, #0x0
+ bl FUN_020731D4
+ mov r0, #0x3
+ mov r1, #0xc
+ bl FUN_02012838
+ ldr r1, _02074168 ; =0x000006F8
+ str r0, [r5, r1]
+ mov r0, #0x6
+ bl FUN_02073DA8
+ ldr r1, _02074168 ; =0x000006F8
+ add r2, r0, #0x0
+ ldr r0, [r5, r1]
+ sub r1, #0x34
+ ldr r1, [r5, r1]
+ bl FUN_020128A0
+ mov r0, #0x7
+ bl FUN_02073DA8
+ ldr r1, _02074168 ; =0x000006F8
+ add r2, r0, #0x0
+ ldr r0, [r5, r1]
+ sub r1, #0x30
+ ldr r1, [r5, r1]
+ bl FUN_020128A0
+ mov r0, #0x9
+ bl FUN_02073DA8
+ ldr r1, _02074168 ; =0x000006F8
+ add r2, r0, #0x0
+ ldr r0, [r5, r1]
+ sub r1, #0x28
+ ldr r1, [r5, r1]
+ bl FUN_020128A0
+ ldr r0, _02074168 ; =0x000006F8
+ mov r1, #0x0
+ ldr r0, [r5, r0]
+ add r2, sp, #0x8
+ str r0, [sp, #0x8]
+ mov r0, #0x8d
+ lsl r0, r0, #0x2
+ add r0, r5, r0
+ str r0, [sp, #0xc]
+ strb r1, [r2, #0x8]
+ mov r1, #0x1
+ strb r1, [r2, #0x9]
+ mov r3, #0x3
+ strb r3, [r2, #0xa]
+ ldrb r6, [r2, #0xb]
+ mov r3, #0xf
+ bic r6, r3
+ strb r6, [r2, #0xb]
+ ldrb r6, [r2, #0xb]
+ mov r3, #0x30
+ bic r6, r3
+ strb r6, [r2, #0xb]
+ ldrb r6, [r2, #0xb]
+ mov r3, #0xc0
+ bic r6, r3
+ strb r6, [r2, #0xb]
+ add r2, r1, #0x0
+ mov r3, #0xe
+ bl FUN_0200CCA4
+ mov r0, #0xc
+ str r0, [sp, #0x0]
+ mov r0, #0x2
+ mov r2, #0x0
+ str r0, [sp, #0x4]
+ add r0, sp, #0x8
+ mov r1, #0x8
+ add r3, r2, #0x0
+ bl FUN_02001C14
+ ldr r1, _0207416C ; =0x000006FC
+ str r0, [r5, r1]
+ mov r0, #0xd
+ str r0, [r4, #0x0]
+ add sp, #0x14
+ pop {r3-r6, pc}
+ nop
+_02074168: .word 0x000006F8
+_0207416C: .word 0x000006FC
+
+ thumb_func_start FUN_02074170
+FUN_02074170: ; 0x02074170
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ ldr r0, _02074198 ; =0x000006FC
+ add r4, r1, #0x0
+ ldr r0, [r5, r0]
+ mov r1, #0x0
+ bl FUN_02001C5C
+ ldr r0, _0207419C ; =0x000006F8
+ ldr r0, [r5, r0]
+ bl FUN_02012870
+ ldr r0, _020741A0 ; =0x000005A4
+ mov r1, #0x7
+ ldr r0, [r5, r0]
+ add r0, #0x23
+ strb r1, [r0, #0x0]
+ mov r0, #0x1b
+ str r0, [r4, #0x0]
+ pop {r3-r5, pc}
+ .balign 4
+_02074198: .word 0x000006FC
+_0207419C: .word 0x000006F8
+_020741A0: .word 0x000005A4
+
+ thumb_func_start FUN_020741A4
+FUN_020741A4: ; 0x020741A4
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ mov r0, #0x8d
+ lsl r0, r0, #0x2
+ add r4, r1, #0x0
+ add r0, r5, r0
+ mov r1, #0x1
+ bl FUN_0200CCF8
+ ldr r0, _020741EC ; =0x000006FC
+ mov r1, #0x0
+ ldr r0, [r5, r0]
+ bl FUN_02001C5C
+ ldr r0, _020741F0 ; =0x000006F8
+ ldr r0, [r5, r0]
+ bl FUN_02012870
+ add r0, r5, #0x0
+ mov r1, #0x2b
+ mov r2, #0x1
+ bl FUN_020731E8
+ ldr r0, _020741F4 ; =FUN_02074200
+ ldr r1, _020741F8 ; =0x00000B18
+ ldr r2, _020741FC ; =FUN_02074278
+ str r0, [r5, r1]
+ add r0, r1, #0x4
+ str r2, [r5, r0]
+ mov r0, #0x16
+ add r1, #0xa
+ strb r0, [r5, r1]
+ mov r0, #0x14
+ str r0, [r4, #0x0]
+ pop {r3-r5, pc}
+ nop
+_020741EC: .word 0x000006FC
+_020741F0: .word 0x000006F8
+_020741F4: .word FUN_02074200
+_020741F8: .word 0x00000B18
+_020741FC: .word FUN_02074278
+
+ thumb_func_start FUN_02074200
+FUN_02074200: ; 0x02074200
+ push {r3-r5, lr}
+ add r4, r0, #0x0
+ ldr r0, _02074268 ; =0x000005A4
+ ldr r1, _0207426C ; =0x00000B25
+ ldr r0, [r4, r0]
+ ldrb r1, [r4, r1]
+ ldr r0, [r0, #0x0]
+ bl FUN_0206B9B0
+ add r1, r0, #0x0
+ ldr r0, _02074268 ; =0x000005A4
+ mov r2, #0xc
+ ldr r0, [r4, r0]
+ ldr r0, [r0, #0x8]
+ bl FUN_02085644
+ mov r1, #0x0
+ mvn r1, r1
+ cmp r0, r1
+ beq _02074254
+ ldr r1, _0207426C ; =0x00000B25
+ mov r2, #0x2c
+ ldrb r3, [r4, r1]
+ mov r0, #0x0
+ add r5, r3, #0x0
+ mul r5, r2
+ ldr r3, _02074270 ; =0x0000070C
+ add r5, r4, r5
+ strh r0, [r5, r3]
+ ldrb r1, [r4, r1]
+ add r0, r4, #0x0
+ mul r2, r1
+ add r2, r4, r2
+ ldrh r2, [r2, r3]
+ bl FUN_02073A78
+ add r0, r4, #0x0
+ mov r1, #0x2e
+ mov r2, #0x0
+ bl FUN_020731E8
+ b _0207425E
+_02074254:
+ add r0, r4, #0x0
+ mov r1, #0x32
+ mov r2, #0x0
+ bl FUN_020731E8
+_0207425E:
+ ldr r0, _02074274 ; =0x00000B22
+ mov r1, #0x10
+ strb r1, [r4, r0]
+ mov r0, #0x14
+ pop {r3-r5, pc}
+ .balign 4
+_02074268: .word 0x000005A4
+_0207426C: .word 0x00000B25
+_02074270: .word 0x0000070C
+_02074274: .word 0x00000B22
+
+ thumb_func_start FUN_02074278
+FUN_02074278: ; 0x02074278
+ push {r4, lr}
+ mov r1, #0x2f
+ mov r2, #0x0
+ add r4, r0, #0x0
+ bl FUN_020731E8
+ ldr r0, _0207429C ; =FUN_020742A8
+ ldr r1, _020742A0 ; =0x00000B18
+ ldr r2, _020742A4 ; =FUN_02074340
+ str r0, [r4, r1]
+ add r0, r1, #0x4
+ str r2, [r4, r0]
+ mov r0, #0x16
+ add r1, #0xa
+ strb r0, [r4, r1]
+ mov r0, #0x14
+ pop {r4, pc}
+ nop
+_0207429C: .word FUN_020742A8
+_020742A0: .word 0x00000B18
+_020742A4: .word FUN_02074340
+
+ thumb_func_start FUN_020742A8
+FUN_020742A8: ; 0x020742A8
+ push {r3-r5, lr}
+ ldr r1, _02074330 ; =0x00000B25
+ add r4, r0, #0x0
+ ldrb r2, [r4, r1]
+ mov r1, #0x2c
+ ldr r0, _02074334 ; =0x000005A4
+ mul r1, r2
+ add r2, r4, r1
+ ldr r1, _02074338 ; =0x0000070C
+ ldr r0, [r4, r0]
+ ldrh r1, [r2, r1]
+ ldr r0, [r0, #0x4]
+ mov r2, #0x1
+ mov r3, #0xc
+ bl FUN_0206ED38
+ cmp r0, #0x1
+ bne _0207431A
+ ldr r0, _02074334 ; =0x000005A4
+ ldr r1, _02074330 ; =0x00000B25
+ ldr r0, [r4, r0]
+ ldrb r1, [r4, r1]
+ ldr r0, [r0, #0x0]
+ bl FUN_0206B9B0
+ mov r1, #0x0
+ str r1, [sp, #0x0]
+ add r5, r0, #0x0
+ mov r1, #0x6
+ add r2, sp, #0x0
+ bl FUN_02067830
+ add r0, r5, #0x0
+ bl FUN_02069EC4
+ ldr r1, _02074330 ; =0x00000B25
+ mov r2, #0x2c
+ ldrb r3, [r4, r1]
+ mov r0, #0x0
+ add r5, r3, #0x0
+ mul r5, r2
+ ldr r3, _02074338 ; =0x0000070C
+ add r5, r4, r5
+ strh r0, [r5, r3]
+ ldrb r1, [r4, r1]
+ add r0, r4, #0x0
+ mul r2, r1
+ add r2, r4, r2
+ ldrh r2, [r2, r3]
+ bl FUN_02073A78
+ add r0, r4, #0x0
+ mov r1, #0x33
+ mov r2, #0x0
+ bl FUN_020731E8
+ b _02074324
+_0207431A:
+ add r0, r4, #0x0
+ mov r1, #0x53
+ mov r2, #0x0
+ bl FUN_020731E8
+_02074324:
+ ldr r0, _0207433C ; =0x00000B22
+ mov r1, #0x10
+ strb r1, [r4, r0]
+ mov r0, #0x14
+ pop {r3-r5, pc}
+ nop
+_02074330: .word 0x00000B25
+_02074334: .word 0x000005A4
+_02074338: .word 0x0000070C
+_0207433C: .word 0x00000B22
+
+ thumb_func_start FUN_02074340
+FUN_02074340: ; 0x02074340
+ push {r4, lr}
+ add r4, r0, #0x0
+ mov r0, #0x89
+ lsl r0, r0, #0x2
+ add r0, r4, r0
+ mov r1, #0x1
+ bl FUN_0200D0E0
+ add r0, r4, #0x0
+ mov r1, #0x1d
+ mov r2, #0x1
+ bl FUN_020731C0
+ ldr r0, _02074368 ; =0x000005C8
+ mov r1, #0x0
+ ldr r0, [r4, r0]
+ bl FUN_0200C664
+ mov r0, #0x1
+ pop {r4, pc}
+ .balign 4
+_02074368: .word 0x000005C8
+
+ thumb_func_start FUN_0207436C
+FUN_0207436C: ; 0x0207436C
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r0, _020743A4 ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #0x3
+ tst r0, r1
+ beq _0207439E
+ mov r0, #0x89
+ lsl r0, r0, #0x2
+ add r0, r4, r0
+ mov r1, #0x1
+ bl FUN_0200D0E0
+ add r0, r4, #0x0
+ mov r1, #0x1d
+ mov r2, #0x1
+ bl FUN_020731C0
+ ldr r0, _020743A8 ; =0x000005C8
+ mov r1, #0x0
+ ldr r0, [r4, r0]
+ bl FUN_0200C664
+ mov r0, #0x1
+ pop {r4, pc}
+_0207439E:
+ mov r0, #0x10
+ pop {r4, pc}
+ nop
+_020743A4: .word 0x021C48B8
+_020743A8: .word 0x000005C8
+
+ thumb_func_start FUN_020743AC
+FUN_020743AC: ; 0x020743AC
+ push {r3-r5, lr}
+ add r4, r1, #0x0
+ ldr r1, _0207440C ; =0x00000B25
+ add r5, r0, #0x0
+ ldrb r2, [r5, r1]
+ mov r1, #0x2c
+ mul r1, r2
+ add r2, r5, r1
+ ldr r1, _02074410 ; =0x00000712
+ ldrh r2, [r2, r1]
+ cmp r2, #0x0
+ bne _020743E6
+ sub r1, #0x16
+ ldr r0, [r5, r1]
+ mov r1, #0x0
+ bl FUN_02001C5C
+ ldr r0, _02074414 ; =0x000006F8
+ ldr r0, [r5, r0]
+ bl FUN_02012870
+ ldr r0, _02074418 ; =0x000005A4
+ mov r1, #0x0
+ ldr r0, [r5, r0]
+ add r0, #0x23
+ strb r1, [r0, #0x0]
+ mov r0, #0x1b
+ str r0, [r4, #0x0]
+ pop {r3-r5, pc}
+_020743E6:
+ bl FUN_02073DB4
+ add r0, r5, #0x0
+ mov r1, #0xc3
+ mov r2, #0x1
+ bl FUN_020731E8
+ ldr r0, _0207441C ; =FUN_02074428
+ ldr r1, _02074420 ; =0x00000B18
+ ldr r2, _02074424 ; =FUN_02074454
+ str r0, [r5, r1]
+ add r0, r1, #0x4
+ str r2, [r5, r0]
+ mov r0, #0x16
+ add r1, #0xa
+ strb r0, [r5, r1]
+ mov r0, #0x14
+ str r0, [r4, #0x0]
+ pop {r3-r5, pc}
+ .balign 4
+_0207440C: .word 0x00000B25
+_02074410: .word 0x00000712
+_02074414: .word 0x000006F8
+_02074418: .word 0x000005A4
+_0207441C: .word FUN_02074428
+_02074420: .word 0x00000B18
+_02074424: .word FUN_02074454
+
+ thumb_func_start FUN_02074428
+FUN_02074428: ; 0x02074428
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r0, _0207444C ; =0x000005A4
+ ldr r1, _02074450 ; =0x00000B25
+ ldr r0, [r4, r0]
+ ldrb r1, [r4, r1]
+ ldr r0, [r0, #0x0]
+ bl FUN_0206B9B0
+ bl FUN_0206AA84
+ ldr r0, _0207444C ; =0x000005A4
+ mov r1, #0x0
+ ldr r0, [r4, r0]
+ add r0, #0x23
+ strb r1, [r0, #0x0]
+ mov r0, #0x1b
+ pop {r4, pc}
+ .balign 4
+_0207444C: .word 0x000005A4
+_02074450: .word 0x00000B25
+
+ thumb_func_start FUN_02074454
+FUN_02074454: ; 0x02074454
+ push {r4, lr}
+ add r4, r0, #0x0
+ mov r0, #0x89
+ lsl r0, r0, #0x2
+ add r0, r4, r0
+ mov r1, #0x1
+ bl FUN_0200D0E0
+ add r0, r4, #0x0
+ mov r1, #0x1d
+ mov r2, #0x1
+ bl FUN_020731C0
+ ldr r0, _0207447C ; =0x000005C8
+ mov r1, #0x0
+ ldr r0, [r4, r0]
+ bl FUN_0200C664
+ mov r0, #0x1
+ pop {r4, pc}
+ .balign 4
+_0207447C: .word 0x000005C8
+
+ thumb_func_start FUN_02074480
+FUN_02074480: ; 0x02074480
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ ldr r0, _02074528 ; =0x00000B23
+ add r4, r1, #0x0
+ ldrb r2, [r5, r0]
+ mov r1, #0x40
+ orr r1, r2
+ strb r1, [r5, r0]
+ ldrb r1, [r5, r0]
+ mov r2, #0x3f
+ bic r1, r2
+ add r2, r0, #0x2
+ ldrb r3, [r5, r2]
+ mov r2, #0x3f
+ and r2, r3
+ orr r1, r2
+ strb r1, [r5, r0]
+ ldr r0, _0207452C ; =0x000005C8
+ mov r1, #0x0
+ ldr r0, [r5, r0]
+ bl FUN_0200C664
+ ldr r0, _0207452C ; =0x000005C8
+ add r1, sp, #0x0
+ ldr r0, [r5, r0]
+ add r1, #0x2
+ add r2, sp, #0x0
+ bl FUN_0200C75C
+ ldr r0, _02074530 ; =0x000005CC
+ add r3, sp, #0x0
+ mov r1, #0x2
+ mov r2, #0x0
+ ldrsh r1, [r3, r1]
+ ldrsh r2, [r3, r2]
+ ldr r0, [r5, r0]
+ bl FUN_0200C6E4
+ ldr r0, _02074534 ; =0x000005A4
+ ldr r1, _02074528 ; =0x00000B23
+ ldr r0, [r5, r0]
+ ldrb r1, [r5, r1]
+ add r0, #0x21
+ ldrb r0, [r0, #0x0]
+ lsl r1, r1, #0x1a
+ lsr r1, r1, #0x1a
+ bl FUN_020714BC
+ add r1, r0, #0x0
+ ldr r0, _02074530 ; =0x000005CC
+ add r1, r1, #0x2
+ ldr r0, [r5, r0]
+ bl FUN_02020130
+ ldr r0, _02074530 ; =0x000005CC
+ mov r1, #0x1
+ ldr r0, [r5, r0]
+ bl FUN_020200A0
+ ldr r1, _02074528 ; =0x00000B23
+ add r0, r5, #0x0
+ ldrb r1, [r5, r1]
+ lsl r1, r1, #0x1a
+ lsr r1, r1, #0x1a
+ bl FUN_020709FC
+ mov r0, #0x85
+ lsl r0, r0, #0x2
+ add r0, r5, r0
+ mov r1, #0x1
+ bl FUN_0200D0E0
+ add r0, r5, #0x0
+ bl FUN_02073DB4
+ add r0, r5, #0x0
+ mov r1, #0x1e
+ mov r2, #0x1
+ bl FUN_020731C0
+ mov r0, #0x18
+ str r0, [r4, #0x0]
+ pop {r3-r5, pc}
+ nop
+_02074528: .word 0x00000B23
+_0207452C: .word 0x000005C8
+_02074530: .word 0x000005CC
+_02074534: .word 0x000005A4
+
+ thumb_func_start FUN_02074538
+FUN_02074538: ; 0x02074538
+ push {r4, lr}
+ ldr r1, _02074578 ; =0x00000B23
+ add r4, r0, #0x0
+ ldrb r2, [r4, r1]
+ mov r0, #0x40
+ bic r2, r0
+ strb r2, [r4, r1]
+ ldr r0, _0207457C ; =0x000005CC
+ mov r1, #0x0
+ ldr r0, [r4, r0]
+ bl FUN_020200A0
+ ldr r0, _02074580 ; =0x00000B25
+ ldrb r1, [r4, r0]
+ cmp r1, #0x6
+ bhs _0207455E
+ add r0, r4, #0x0
+ bl FUN_020709FC
+_0207455E:
+ ldr r1, _02074578 ; =0x00000B23
+ add r0, r4, #0x0
+ ldrb r1, [r4, r1]
+ lsl r1, r1, #0x1a
+ lsr r1, r1, #0x1a
+ bl FUN_020709FC
+ add r0, r4, #0x0
+ mov r1, #0x1d
+ mov r2, #0x1
+ bl FUN_020731C0
+ pop {r4, pc}
+ .balign 4
+_02074578: .word 0x00000B23
+_0207457C: .word 0x000005CC
+_02074580: .word 0x00000B25
+
+ thumb_func_start FUN_02074584
+FUN_02074584: ; 0x02074584
+ push {r3-r7, lr}
+ sub sp, #0x28
+ ldr r2, _020746AC ; =0x00000B25
+ add r6, r0, #0x0
+ ldrb r1, [r6, r2]
+ add r0, r2, #0x0
+ sub r0, #0x19
+ strb r1, [r6, r0]
+ sub r0, r2, #0x2
+ ldrb r0, [r6, r0]
+ add r3, r2, #0x0
+ sub r3, #0x13
+ lsl r0, r0, #0x1a
+ lsr r1, r0, #0x1a
+ add r0, r2, #0x0
+ sub r0, #0x18
+ strb r1, [r6, r0]
+ add r0, r2, #0x0
+ mov r1, #0x1
+ sub r0, #0x15
+ strb r1, [r6, r0]
+ mov r0, #0x0
+ strb r0, [r6, r3]
+ add r3, r2, #0x0
+ sub r3, #0x14
+ strb r0, [r6, r3]
+ add r3, r2, #0x0
+ sub r3, #0x19
+ ldrb r3, [r6, r3]
+ tst r3, r1
+ beq _020745C8
+ sub r2, #0x17
+ strb r1, [r6, r2]
+ b _020745CC
+_020745C8:
+ sub r2, #0x17
+ strb r0, [r6, r2]
+_020745CC:
+ ldr r0, _020746B0 ; =0x00000B0D
+ mov r1, #0x1
+ ldrb r2, [r6, r0]
+ tst r2, r1
+ beq _020745D8
+ b _020745DA
+_020745D8:
+ mov r1, #0x0
+_020745DA:
+ add r0, r0, #0x2
+ strb r1, [r6, r0]
+ ldr r0, [r6, #0x0]
+ mov r1, #0x2
+ bl FUN_0201886C
+ str r0, [sp, #0x14]
+ ldr r0, [r6, #0x0]
+ mov r1, #0x1
+ bl FUN_0201886C
+ ldr r1, _020746B4 ; =0x00000B0C
+ str r0, [sp, #0x10]
+ ldrb r3, [r6, r1]
+ add r1, r1, #0x1
+ mov r2, #0x2c
+ add r0, r3, #0x0
+ ldrb r3, [r6, r1]
+ mul r0, r2
+ mov r4, #0x0
+ add r1, r3, #0x0
+ add r3, r6, r0
+ ldr r0, _020746B8 ; =0x00000715
+ mul r1, r2
+ ldrsb r2, [r3, r0]
+ str r2, [sp, #0xc]
+ sub r2, r0, #0x1
+ ldrsb r2, [r3, r2]
+ str r2, [sp, #0x8]
+ add r2, r6, r1
+ ldrsb r1, [r2, r0]
+ sub r0, r0, #0x1
+ ldrsb r0, [r2, r0]
+ str r1, [sp, #0x4]
+ str r0, [sp, #0x0]
+ ldr r0, _020746BC ; =0x0000080C
+ add r0, r6, r0
+ str r0, [sp, #0x18]
+ ldr r0, _020746C0 ; =0x0000098C
+ add r0, r6, r0
+ str r0, [sp, #0x1c]
+ ldr r0, _020746C4 ; =0x000008CC
+ add r0, r6, r0
+ str r0, [sp, #0x20]
+ ldr r0, _020746C8 ; =0x00000A4C
+ add r0, r6, r0
+ str r0, [sp, #0x24]
+_02074638:
+ ldr r0, [sp, #0xc]
+ lsl r5, r4, #0x5
+ add r0, r0, r4
+ lsl r1, r0, #0x5
+ ldr r0, [sp, #0x8]
+ mov r2, #0x20
+ add r0, r0, r1
+ lsl r7, r0, #0x1
+ ldr r0, [sp, #0x18]
+ ldr r1, [sp, #0x14]
+ add r0, r0, r5
+ add r1, r1, r7
+ blx memcpy
+ ldr r0, [sp, #0x1c]
+ ldr r1, [sp, #0x10]
+ add r0, r0, r5
+ add r1, r1, r7
+ mov r2, #0x20
+ blx memcpy
+ ldr r0, [sp, #0x4]
+ mov r2, #0x20
+ add r0, r0, r4
+ lsl r1, r0, #0x5
+ ldr r0, [sp, #0x0]
+ add r0, r0, r1
+ lsl r7, r0, #0x1
+ ldr r0, [sp, #0x20]
+ ldr r1, [sp, #0x14]
+ add r0, r0, r5
+ add r1, r1, r7
+ blx memcpy
+ ldr r0, [sp, #0x24]
+ ldr r1, [sp, #0x10]
+ add r0, r0, r5
+ add r1, r1, r7
+ mov r2, #0x20
+ blx memcpy
+ add r0, r4, #0x1
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+ cmp r4, #0x6
+ blo _02074638
+ ldr r0, _020746CC ; =0x000005C8
+ mov r1, #0x0
+ ldr r0, [r6, r0]
+ bl FUN_020200A0
+ ldr r0, _020746D0 ; =0x000005CC
+ mov r1, #0x0
+ ldr r0, [r6, r0]
+ bl FUN_020200A0
+ add sp, #0x28
+ pop {r3-r7, pc}
+ .balign 4
+_020746AC: .word 0x00000B25
+_020746B0: .word 0x00000B0D
+_020746B4: .word 0x00000B0C
+_020746B8: .word 0x00000715
+_020746BC: .word 0x0000080C
+_020746C0: .word 0x0000098C
+_020746C4: .word 0x000008CC
+_020746C8: .word 0x00000A4C
+_020746CC: .word 0x000005C8
+_020746D0: .word 0x000005CC
+
+ thumb_func_start FUN_020746D4
+FUN_020746D4: ; 0x020746D4
+ push {r3-r5, lr}
+ ldr r1, _02074828 ; =0x0000080C
+ add r5, r0, #0x0
+ ldr r2, _0207482C ; =0x00000305
+ add r4, r5, r1
+ ldrb r1, [r4, r2]
+ cmp r1, #0x4
+ bls _020746E6
+ b _02074822
+_020746E6:
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #0x6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_020746F2: ; jump table (using 16-bit offset)
+ .short _020746FC - _020746F2 - 2; case 0
+ .short _0207470C - _020746F2 - 2; case 1
+ .short _0207475C - _020746F2 - 2; case 2
+ .short _02074770 - _020746F2 - 2; case 3
+ .short _020747CE - _020746F2 - 2; case 4
+_020746FC:
+ mov r0, #0x6a
+ lsl r0, r0, #0x4
+ bl FUN_020054C8
+ ldr r0, _0207482C ; =0x00000305
+ mov r1, #0x1
+ strb r1, [r4, r0]
+ b _02074822
+_0207470C:
+ add r1, r2, #0x1
+ ldrb r1, [r4, r1]
+ add r3, r1, #0x1
+ add r1, r2, #0x1
+ strb r3, [r4, r1]
+ mov r1, #0x0
+ bl FUN_02074848
+ add r0, r5, #0x0
+ mov r1, #0x1
+ bl FUN_02074848
+ ldr r2, _02074830 ; =0x00000302
+ add r0, r5, #0x0
+ ldrb r2, [r4, r2]
+ mov r1, #0x0
+ bl FUN_0207499C
+ ldr r2, _02074834 ; =0x00000303
+ add r0, r5, #0x0
+ ldrb r2, [r4, r2]
+ mov r1, #0x1
+ bl FUN_0207499C
+ ldr r0, [r5, #0x0]
+ mov r1, #0x2
+ bl FUN_0201AC68
+ ldr r0, [r5, #0x0]
+ mov r1, #0x1
+ bl FUN_0201AC68
+ ldr r0, _02074838 ; =0x00000306
+ ldrb r1, [r4, r0]
+ cmp r1, #0x10
+ bne _02074822
+ mov r1, #0x2
+ sub r0, r0, #0x1
+ strb r1, [r4, r0]
+ b _02074822
+_0207475C:
+ bl FUN_02074AF4
+ mov r0, #0x6a
+ lsl r0, r0, #0x4
+ bl FUN_020054C8
+ ldr r0, _0207482C ; =0x00000305
+ mov r1, #0x3
+ strb r1, [r4, r0]
+ b _02074822
+_02074770:
+ add r1, r2, #0x1
+ ldrb r1, [r4, r1]
+ sub r3, r1, #0x1
+ add r1, r2, #0x1
+ strb r3, [r4, r1]
+ mov r1, #0x0
+ bl FUN_02074848
+ add r0, r5, #0x0
+ mov r1, #0x1
+ bl FUN_02074848
+ ldr r2, _02074830 ; =0x00000302
+ add r0, r5, #0x0
+ ldrb r3, [r4, r2]
+ mov r2, #0x1
+ mov r1, #0x0
+ eor r2, r3
+ lsl r2, r2, #0x18
+ lsr r2, r2, #0x18
+ bl FUN_0207499C
+ ldr r2, _02074834 ; =0x00000303
+ mov r1, #0x1
+ ldrb r2, [r4, r2]
+ add r0, r5, #0x0
+ eor r2, r1
+ lsl r2, r2, #0x18
+ lsr r2, r2, #0x18
+ bl FUN_0207499C
+ ldr r0, [r5, #0x0]
+ mov r1, #0x2
+ bl FUN_0201AC68
+ ldr r0, [r5, #0x0]
+ mov r1, #0x1
+ bl FUN_0201AC68
+ ldr r0, _02074838 ; =0x00000306
+ ldrb r1, [r4, r0]
+ cmp r1, #0x0
+ bne _02074822
+ mov r1, #0x4
+ sub r0, r0, #0x1
+ strb r1, [r4, r0]
+ b _02074822
+_020747CE:
+ ldr r0, _0207483C ; =0x000005A4
+ sub r1, r2, #0x5
+ ldr r0, [r5, r0]
+ sub r2, r2, #0x4
+ ldrb r1, [r4, r1]
+ ldrb r2, [r4, r2]
+ ldr r0, [r0, #0x0]
+ bl FUN_0206BA38
+ ldr r0, _02074840 ; =0x000005C8
+ mov r1, #0x1
+ ldr r0, [r5, r0]
+ bl FUN_020200A0
+ mov r0, #0xc1
+ mov r1, #0x0
+ lsl r0, r0, #0x2
+ strb r1, [r4, r0]
+ ldr r1, _02074844 ; =0x00000B23
+ mov r0, #0x40
+ ldrb r2, [r5, r1]
+ bic r2, r0
+ strb r2, [r5, r1]
+ add r1, r1, #0x2
+ ldrb r1, [r5, r1]
+ add r0, r5, #0x0
+ bl FUN_020709FC
+ ldr r1, _02074844 ; =0x00000B23
+ add r0, r5, #0x0
+ ldrb r1, [r5, r1]
+ lsl r1, r1, #0x1a
+ lsr r1, r1, #0x1a
+ bl FUN_020709FC
+ add r0, r5, #0x0
+ mov r1, #0x1d
+ mov r2, #0x0
+ bl FUN_020731C0
+ mov r0, #0x1
+ pop {r3-r5, pc}
+_02074822:
+ mov r0, #0x0
+ pop {r3-r5, pc}
+ nop
+_02074828: .word 0x0000080C
+_0207482C: .word 0x00000305
+_02074830: .word 0x00000302
+_02074834: .word 0x00000303
+_02074838: .word 0x00000306
+_0207483C: .word 0x000005A4
+_02074840: .word 0x000005C8
+_02074844: .word 0x00000B23
+
+ thumb_func_start FUN_02074848
+FUN_02074848: ; 0x02074848
+ push {r3-r7, lr}
+ sub sp, #0x28
+ add r5, r0, #0x0
+ ldr r0, _02074990 ; =0x0000080C
+ str r1, [sp, #0x1c]
+ ldr r1, [sp, #0x1c]
+ add r4, r5, r0
+ add r2, r4, r1
+ mov r1, #0x3
+ lsl r1, r1, #0x8
+ ldrb r2, [r2, r1]
+ mov r1, #0x2c
+ mul r1, r2
+ add r2, r5, r1
+ add r1, r0, #0x0
+ sub r1, #0xf8
+ ldrsb r7, [r2, r1]
+ sub r0, #0xf7
+ ldrb r6, [r2, r0]
+ lsl r0, r7, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x20]
+ str r6, [sp, #0x0]
+ mov r1, #0x10
+ str r1, [sp, #0x4]
+ mov r0, #0x6
+ str r0, [sp, #0x8]
+ str r1, [sp, #0xc]
+ ldr r0, [r5, #0x0]
+ ldr r3, [sp, #0x20]
+ mov r1, #0x2
+ mov r2, #0x0
+ bl FUN_02018540
+ str r6, [sp, #0x0]
+ mov r1, #0x10
+ str r1, [sp, #0x4]
+ mov r0, #0x6
+ str r0, [sp, #0x8]
+ str r1, [sp, #0xc]
+ ldr r0, [r5, #0x0]
+ ldr r3, [sp, #0x20]
+ mov r1, #0x1
+ mov r2, #0x0
+ bl FUN_02018540
+ ldr r0, [sp, #0x1c]
+ add r1, r4, r0
+ ldr r0, _02074994 ; =0x00000302
+ ldrb r1, [r1, r0]
+ cmp r1, #0x0
+ bne _02074918
+ add r0, r0, #0x4
+ ldrb r2, [r4, r0]
+ ldr r0, [sp, #0x1c]
+ mov r3, #0x10
+ add r7, r0, #0x0
+ sub r0, r3, r2
+ lsl r0, r0, #0x18
+ mov r1, #0xc0
+ lsr r0, r0, #0x18
+ mul r7, r1
+ str r0, [sp, #0x0]
+ mov r1, #0x6
+ str r1, [sp, #0x4]
+ add r0, r4, r7
+ str r0, [sp, #0x8]
+ str r2, [sp, #0xc]
+ mov r0, #0x0
+ str r0, [sp, #0x10]
+ str r3, [sp, #0x14]
+ str r1, [sp, #0x18]
+ ldr r0, [r5, #0x0]
+ ldr r2, [sp, #0x20]
+ mov r1, #0x2
+ add r3, r6, #0x0
+ bl FUN_02018170
+ ldr r0, _02074998 ; =0x00000306
+ mov r3, #0x10
+ ldrb r2, [r4, r0]
+ mov r1, #0x6
+ sub r0, r3, r2
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x0]
+ lsl r0, r1, #0x6
+ add r0, r4, r0
+ str r1, [sp, #0x4]
+ add r0, r0, r7
+ str r0, [sp, #0x8]
+ str r2, [sp, #0xc]
+ mov r0, #0x0
+ str r0, [sp, #0x10]
+ str r3, [sp, #0x14]
+ str r1, [sp, #0x18]
+ ldr r0, [r5, #0x0]
+ ldr r2, [sp, #0x20]
+ mov r1, #0x1
+ add r3, r6, #0x0
+ bl FUN_02018170
+ add sp, #0x28
+ pop {r3-r7, pc}
+_02074918:
+ ldr r1, [sp, #0x1c]
+ mov r2, #0xc0
+ mul r2, r1
+ str r2, [sp, #0x24]
+ add r0, r0, #0x4
+ ldrb r2, [r4, r0]
+ mov r3, #0x10
+ ldr r1, [sp, #0x24]
+ sub r0, r3, r2
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x0]
+ mov r0, #0x6
+ str r0, [sp, #0x4]
+ add r1, r4, r1
+ str r1, [sp, #0x8]
+ mov r1, #0x0
+ str r1, [sp, #0xc]
+ str r1, [sp, #0x10]
+ str r3, [sp, #0x14]
+ add r2, r7, r2
+ str r0, [sp, #0x18]
+ lsl r2, r2, #0x18
+ ldr r0, [r5, #0x0]
+ mov r1, #0x2
+ lsr r2, r2, #0x18
+ add r3, r6, #0x0
+ bl FUN_02018170
+ ldr r0, _02074998 ; =0x00000306
+ ldrb r2, [r4, r0]
+ mov r0, #0x10
+ sub r0, r0, r2
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x0]
+ mov r0, #0x6
+ lsl r1, r0, #0x6
+ add r3, r4, r1
+ ldr r1, [sp, #0x24]
+ add r2, r7, r2
+ add r1, r3, r1
+ str r0, [sp, #0x4]
+ str r1, [sp, #0x8]
+ mov r1, #0x0
+ str r1, [sp, #0xc]
+ str r1, [sp, #0x10]
+ mov r1, #0x10
+ str r1, [sp, #0x14]
+ str r0, [sp, #0x18]
+ lsl r2, r2, #0x18
+ ldr r0, [r5, #0x0]
+ mov r1, #0x1
+ lsr r2, r2, #0x18
+ add r3, r6, #0x0
+ bl FUN_02018170
+ add sp, #0x28
+ pop {r3-r7, pc}
+ nop
+_02074990: .word 0x0000080C
+_02074994: .word 0x00000302
+_02074998: .word 0x00000306
+
+ thumb_func_start FUN_0207499C
+FUN_0207499C: ; 0x0207499C
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ ldr r0, _02074AE0 ; =0x0000080C
+ add r4, r1, #0x0
+ add r1, r5, r0
+ mov r0, #0x3
+ lsl r0, r0, #0x8
+ add r6, r1, r0
+ ldrb r0, [r6, r4]
+ add r7, r2, #0x0
+ add r2, sp, #0x0
+ lsl r0, r0, #0x2
+ add r1, r5, r0
+ mov r0, #0x5b
+ lsl r0, r0, #0x4
+ ldr r0, [r1, r0]
+ add r1, sp, #0x0
+ add r1, #0x2
+ bl FUN_0200C75C
+ cmp r7, #0x0
+ ldr r0, _02074AE4 ; =0x00000716
+ bne _02074A04
+ ldrb r3, [r6, r4]
+ mov r7, #0x2c
+ add r2, r5, r0
+ add r1, r3, #0x0
+ mul r1, r7
+ ldrsh r3, [r2, r1]
+ sub r3, #0x8
+ strh r3, [r2, r1]
+ ldrb r3, [r6, r4]
+ add r1, r0, #0x4
+ add r2, r5, r1
+ add r1, r3, #0x0
+ mul r1, r7
+ ldrsh r3, [r2, r1]
+ add r0, #0x8
+ add r0, r5, r0
+ sub r3, #0x8
+ strh r3, [r2, r1]
+ ldrb r1, [r6, r4]
+ add r2, r1, #0x0
+ mul r2, r7
+ ldrsh r1, [r0, r2]
+ sub r1, #0x8
+ strh r1, [r0, r2]
+ add r1, sp, #0x0
+ mov r0, #0x2
+ ldrsh r0, [r1, r0]
+ sub r0, #0x8
+ b _02074A3C
+_02074A04:
+ ldrb r3, [r6, r4]
+ mov r7, #0x2c
+ add r2, r5, r0
+ add r1, r3, #0x0
+ mul r1, r7
+ ldrsh r3, [r2, r1]
+ add r3, #0x8
+ strh r3, [r2, r1]
+ ldrb r3, [r6, r4]
+ add r1, r0, #0x4
+ add r2, r5, r1
+ add r1, r3, #0x0
+ mul r1, r7
+ ldrsh r3, [r2, r1]
+ add r0, #0x8
+ add r0, r5, r0
+ add r3, #0x8
+ strh r3, [r2, r1]
+ ldrb r1, [r6, r4]
+ add r2, r1, #0x0
+ mul r2, r7
+ ldrsh r1, [r0, r2]
+ add r1, #0x8
+ strh r1, [r0, r2]
+ add r1, sp, #0x0
+ mov r0, #0x2
+ ldrsh r0, [r1, r0]
+ add r0, #0x8
+_02074A3C:
+ strh r0, [r1, #0x2]
+ ldrb r1, [r6, r4]
+ mov r0, #0x2c
+ ldr r2, _02074AE8 ; =0x00000724
+ mul r0, r1
+ add r3, r5, r0
+ add r1, r2, #0x0
+ ldr r0, [r3, r2]
+ sub r1, #0xe
+ sub r2, #0xc
+ ldrsh r1, [r3, r1]
+ ldrsh r2, [r3, r2]
+ bl FUN_0200C6E4
+ ldrb r2, [r6, r4]
+ mov r0, #0x2c
+ ldr r3, _02074AEC ; =0x0000071A
+ add r1, r2, #0x0
+ add r2, #0xa
+ mul r1, r0
+ lsl r0, r2, #0x2
+ add r2, r5, r0
+ mov r0, #0x5b
+ lsl r0, r0, #0x4
+ ldr r0, [r2, r0]
+ add r2, r5, r1
+ ldrsh r1, [r2, r3]
+ add r3, r3, #0x2
+ ldrsh r2, [r2, r3]
+ bl FUN_0200C6E4
+ ldrb r2, [r6, r4]
+ mov r0, #0x2c
+ ldr r3, _02074AF0 ; =0x0000071E
+ add r1, r2, #0x0
+ add r2, #0x10
+ mul r1, r0
+ lsl r0, r2, #0x2
+ add r2, r5, r0
+ mov r0, #0x5b
+ lsl r0, r0, #0x4
+ ldr r0, [r2, r0]
+ add r2, r5, r1
+ ldrsh r1, [r2, r3]
+ add r3, r3, #0x2
+ ldrsh r2, [r2, r3]
+ bl FUN_0200C6E4
+ ldrb r2, [r6, r4]
+ mov r0, #0x2c
+ ldr r3, _02074AF0 ; =0x0000071E
+ add r1, r2, #0x0
+ add r2, #0x16
+ mul r1, r0
+ lsl r0, r2, #0x2
+ add r2, r5, r0
+ mov r0, #0x5b
+ lsl r0, r0, #0x4
+ ldr r0, [r2, r0]
+ add r2, r5, r1
+ ldrsh r1, [r2, r3]
+ add r3, r3, #0x2
+ ldrsh r2, [r2, r3]
+ add r1, #0x8
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ bl FUN_0200C6E4
+ ldrb r0, [r6, r4]
+ add r3, sp, #0x0
+ mov r2, #0x0
+ lsl r0, r0, #0x2
+ add r1, r5, r0
+ mov r0, #0x5b
+ lsl r0, r0, #0x4
+ ldr r0, [r1, r0]
+ mov r1, #0x2
+ ldrsh r1, [r3, r1]
+ ldrsh r2, [r3, r2]
+ bl FUN_0200C6E4
+ pop {r3-r7, pc}
+ .balign 4
+_02074AE0: .word 0x0000080C
+_02074AE4: .word 0x00000716
+_02074AE8: .word 0x00000724
+_02074AEC: .word 0x0000071A
+_02074AF0: .word 0x0000071E
+
+ thumb_func_start FUN_02074AF4
+FUN_02074AF4: ; 0x02074AF4
+ push {r4-r7, lr}
+ sub sp, #0x1c
+ add r5, r0, #0x0
+ ldr r0, _02074DD0 ; =0x0000080C
+ mov r1, #0x2c
+ add r4, r5, r0
+ mov r0, #0xc
+ bl FUN_02016998
+ add r7, r0, #0x0
+ mov r0, #0x3
+ lsl r0, r0, #0x8
+ ldrb r1, [r4, r0]
+ mov r0, #0x2c
+ add r3, r7, #0x0
+ mul r0, r1
+ add r1, r5, r0
+ mov r0, #0x7
+ lsl r0, r0, #0x8
+ add r6, r1, r0
+ mov r2, #0x5
+_02074B1E:
+ ldmia r6!, {r0-r1}
+ stmia r3!, {r0-r1}
+ sub r2, r2, #0x1
+ bne _02074B1E
+ ldr r0, [r6, #0x0]
+ mov r1, #0x3
+ lsl r1, r1, #0x8
+ str r0, [r3, #0x0]
+ ldrb r0, [r4, r1]
+ add r1, r1, #0x1
+ ldrb r1, [r4, r1]
+ mov r2, #0x2c
+ add r3, r0, #0x0
+ mul r3, r2
+ mul r2, r1
+ mov r1, #0x7
+ add r0, r5, r3
+ lsl r1, r1, #0x8
+ add r2, r5, r2
+ add r6, r2, r1
+ add r3, r0, r1
+ mov r2, #0x5
+_02074B4A:
+ ldmia r6!, {r0-r1}
+ stmia r3!, {r0-r1}
+ sub r2, r2, #0x1
+ bne _02074B4A
+ ldr r0, [r6, #0x0]
+ add r6, r7, #0x0
+ str r0, [r3, #0x0]
+ ldr r0, _02074DD4 ; =0x00000301
+ mov r2, #0x5
+ ldrb r1, [r4, r0]
+ mov r0, #0x2c
+ mul r0, r1
+ add r1, r5, r0
+ mov r0, #0x7
+ lsl r0, r0, #0x8
+ add r3, r1, r0
+_02074B6A:
+ ldmia r6!, {r0-r1}
+ stmia r3!, {r0-r1}
+ sub r2, r2, #0x1
+ bne _02074B6A
+ ldr r0, [r6, #0x0]
+ add r1, r7, #0x0
+ str r0, [r3, #0x0]
+ mov r0, #0xc
+ bl FUN_02016A8C
+ mov r1, #0x3
+ lsl r1, r1, #0x8
+ ldrb r3, [r4, r1]
+ ldr r0, _02074DD8 ; =0x00000716
+ add r2, r5, r0
+ mov r0, #0x2c
+ add r7, r3, #0x0
+ mul r7, r0
+ ldrsh r3, [r2, r7]
+ str r3, [sp, #0x0]
+ add r3, r1, #0x1
+ ldrb r3, [r4, r3]
+ add r6, r3, #0x0
+ mul r6, r0
+ ldr r3, _02074DD8 ; =0x00000716
+ add r6, r5, r6
+ ldrsh r3, [r6, r3]
+ strh r3, [r2, r7]
+ add r2, r1, #0x1
+ ldrb r2, [r4, r2]
+ add r3, r2, #0x0
+ mul r3, r0
+ add r6, r5, r3
+ ldr r3, [sp, #0x0]
+ ldr r2, _02074DD8 ; =0x00000716
+ strh r3, [r6, r2]
+ add r2, r2, #0x2
+ add r3, r5, r2
+ ldrb r2, [r4, r1]
+ add r7, r2, #0x0
+ mul r7, r0
+ ldrsh r2, [r3, r7]
+ str r2, [sp, #0x4]
+ add r2, r1, #0x1
+ ldrb r2, [r4, r2]
+ add r6, r2, #0x0
+ mul r6, r0
+ add r2, r5, r6
+ ldr r6, _02074DD8 ; =0x00000716
+ add r6, r6, #0x2
+ ldrsh r2, [r2, r6]
+ strh r2, [r3, r7]
+ add r2, r1, #0x1
+ ldrb r2, [r4, r2]
+ add r3, r2, #0x0
+ mul r3, r0
+ add r2, r5, r3
+ ldr r3, _02074DD8 ; =0x00000716
+ add r6, r3, #0x2
+ ldr r3, [sp, #0x4]
+ strh r3, [r2, r6]
+ ldr r2, _02074DD8 ; =0x00000716
+ add r2, r2, #0x4
+ add r3, r5, r2
+ ldrb r2, [r4, r1]
+ add r7, r2, #0x0
+ mul r7, r0
+ ldrsh r2, [r3, r7]
+ str r2, [sp, #0x8]
+ add r2, r1, #0x1
+ ldrb r2, [r4, r2]
+ add r6, r2, #0x0
+ mul r6, r0
+ add r2, r5, r6
+ ldr r6, _02074DD8 ; =0x00000716
+ add r6, r6, #0x4
+ ldrsh r2, [r2, r6]
+ strh r2, [r3, r7]
+ add r2, r1, #0x1
+ ldrb r2, [r4, r2]
+ add r3, r2, #0x0
+ mul r3, r0
+ add r2, r5, r3
+ ldr r3, _02074DD8 ; =0x00000716
+ add r6, r3, #0x4
+ ldr r3, [sp, #0x8]
+ strh r3, [r2, r6]
+ ldr r2, _02074DD8 ; =0x00000716
+ add r2, r2, #0x6
+ add r3, r5, r2
+ ldrb r2, [r4, r1]
+ add r7, r2, #0x0
+ mul r7, r0
+ ldrsh r2, [r3, r7]
+ str r2, [sp, #0xc]
+ add r2, r1, #0x1
+ ldrb r2, [r4, r2]
+ add r6, r2, #0x0
+ mul r6, r0
+ add r2, r5, r6
+ ldr r6, _02074DD8 ; =0x00000716
+ add r6, r6, #0x6
+ ldrsh r2, [r2, r6]
+ strh r2, [r3, r7]
+ add r2, r1, #0x1
+ ldrb r2, [r4, r2]
+ add r3, r2, #0x0
+ mul r3, r0
+ add r2, r5, r3
+ ldr r3, _02074DD8 ; =0x00000716
+ add r6, r3, #0x6
+ ldr r3, [sp, #0xc]
+ strh r3, [r2, r6]
+ ldr r2, _02074DD8 ; =0x00000716
+ add r2, #0x8
+ add r6, r5, r2
+ ldrb r2, [r4, r1]
+ add r7, r2, #0x0
+ mul r7, r0
+ ldrsh r2, [r6, r7]
+ str r2, [sp, #0x10]
+ add r2, r1, #0x1
+ ldrb r2, [r4, r2]
+ add r3, r2, #0x0
+ mul r3, r0
+ add r2, r5, r3
+ ldr r3, _02074DD8 ; =0x00000716
+ add r3, #0x8
+ ldrsh r2, [r2, r3]
+ strh r2, [r6, r7]
+ add r2, r1, #0x1
+ ldrb r2, [r4, r2]
+ add r3, r2, #0x0
+ mul r3, r0
+ add r6, r5, r3
+ ldr r3, _02074DD8 ; =0x00000716
+ ldr r2, [sp, #0x10]
+ add r3, #0x8
+ strh r2, [r6, r3]
+ ldr r2, _02074DD8 ; =0x00000716
+ add r2, #0xa
+ add r6, r5, r2
+ ldrb r2, [r4, r1]
+ add r7, r2, #0x0
+ mul r7, r0
+ ldrsh r2, [r6, r7]
+ str r2, [sp, #0x14]
+ add r2, r1, #0x1
+ ldrb r2, [r4, r2]
+ add r3, r2, #0x0
+ mul r3, r0
+ add r2, r5, r3
+ ldr r3, _02074DD8 ; =0x00000716
+ add r3, #0xa
+ ldrsh r2, [r2, r3]
+ strh r2, [r6, r7]
+ add r2, r1, #0x1
+ ldrb r2, [r4, r2]
+ add r3, r2, #0x0
+ mul r3, r0
+ add r6, r5, r3
+ ldr r3, _02074DD8 ; =0x00000716
+ ldr r2, [sp, #0x14]
+ add r3, #0xa
+ strh r2, [r6, r3]
+ ldr r2, _02074DD8 ; =0x00000716
+ sub r2, r2, #0x2
+ add r3, r5, r2
+ ldrb r2, [r4, r1]
+ add r7, r2, #0x0
+ mul r7, r0
+ ldrsb r2, [r3, r7]
+ str r2, [sp, #0x18]
+ add r2, r1, #0x1
+ ldrb r2, [r4, r2]
+ add r6, r2, #0x0
+ mul r6, r0
+ add r2, r5, r6
+ ldr r6, _02074DD8 ; =0x00000716
+ sub r6, r6, #0x2
+ ldrsb r2, [r2, r6]
+ strb r2, [r3, r7]
+ add r2, r1, #0x1
+ ldrb r2, [r4, r2]
+ add r3, r2, #0x0
+ mul r3, r0
+ add r2, r5, r3
+ ldr r3, _02074DD8 ; =0x00000716
+ sub r6, r3, #0x2
+ ldr r3, [sp, #0x18]
+ strb r3, [r2, r6]
+ ldr r2, _02074DD8 ; =0x00000716
+ sub r2, r2, #0x1
+ add r6, r5, r2
+ ldrb r2, [r4, r1]
+ add r7, r2, #0x0
+ mul r7, r0
+ ldrsb r2, [r6, r7]
+ mov r12, r2
+ add r2, r1, #0x1
+ ldrb r2, [r4, r2]
+ add r3, r2, #0x0
+ ldr r2, _02074DD8 ; =0x00000716
+ mul r3, r0
+ add r3, r5, r3
+ sub r2, r2, #0x1
+ ldrsb r2, [r3, r2]
+ strb r2, [r6, r7]
+ add r2, r1, #0x1
+ ldrb r2, [r4, r2]
+ mul r0, r2
+ ldr r2, _02074DD8 ; =0x00000716
+ add r0, r5, r0
+ sub r3, r2, #0x1
+ mov r2, r12
+ strb r2, [r0, r3]
+ ldrb r1, [r4, r1]
+ add r0, r5, #0x0
+ bl FUN_02072D1C
+ ldr r1, _02074DD4 ; =0x00000301
+ add r0, r5, #0x0
+ ldrb r1, [r4, r1]
+ bl FUN_02072D1C
+ mov r1, #0x3
+ lsl r1, r1, #0x8
+ ldrb r1, [r4, r1]
+ add r0, r5, #0x0
+ bl FUN_02072E14
+ ldr r1, _02074DD4 ; =0x00000301
+ add r0, r5, #0x0
+ ldrb r1, [r4, r1]
+ bl FUN_02072E14
+ add r0, r5, #0x0
+ mov r1, #0x0
+ bl FUN_02074DE4
+ add r0, r5, #0x0
+ mov r1, #0x1
+ bl FUN_02074DE4
+ mov r0, #0x3
+ lsl r0, r0, #0x8
+ ldrb r1, [r4, r0]
+ mov r2, #0x2c
+ add r0, r5, #0x0
+ mul r2, r1
+ add r3, r5, r2
+ ldr r2, _02074DDC ; =0x0000070E
+ ldrh r2, [r3, r2]
+ lsl r2, r2, #0x14
+ lsr r2, r2, #0x14
+ lsl r2, r2, #0x18
+ lsr r2, r2, #0x18
+ bl FUN_02073A4C
+ ldr r0, _02074DD4 ; =0x00000301
+ mov r2, #0x2c
+ ldrb r1, [r4, r0]
+ add r0, r5, #0x0
+ mul r2, r1
+ add r3, r5, r2
+ ldr r2, _02074DDC ; =0x0000070E
+ ldrh r2, [r3, r2]
+ lsl r2, r2, #0x14
+ lsr r2, r2, #0x14
+ lsl r2, r2, #0x18
+ lsr r2, r2, #0x18
+ bl FUN_02073A4C
+ mov r0, #0x3
+ lsl r0, r0, #0x8
+ ldrb r1, [r4, r0]
+ mov r2, #0x2c
+ add r0, r5, #0x0
+ mul r2, r1
+ add r3, r5, r2
+ ldr r2, _02074DE0 ; =0x0000070C
+ ldrh r2, [r3, r2]
+ bl FUN_02073A78
+ ldr r0, _02074DD4 ; =0x00000301
+ mov r2, #0x2c
+ ldrb r1, [r4, r0]
+ add r0, r5, #0x0
+ mul r2, r1
+ add r3, r5, r2
+ ldr r2, _02074DE0 ; =0x0000070C
+ ldrh r2, [r3, r2]
+ bl FUN_02073A78
+ mov r1, #0x3
+ lsl r1, r1, #0x8
+ ldrb r1, [r4, r1]
+ add r0, r5, #0x0
+ bl FUN_02073B3C
+ ldr r1, _02074DD4 ; =0x00000301
+ add r0, r5, #0x0
+ ldrb r1, [r4, r1]
+ bl FUN_02073B3C
+ add sp, #0x1c
+ pop {r4-r7, pc}
+ .balign 4
+_02074DD0: .word 0x0000080C
+_02074DD4: .word 0x00000301
+_02074DD8: .word 0x00000716
+_02074DDC: .word 0x0000070E
+_02074DE0: .word 0x0000070C
+
+ thumb_func_start FUN_02074DE4
+FUN_02074DE4: ; 0x02074DE4
+ push {r3-r7, lr}
+ add r7, r1, #0x0
+ ldr r1, _02074E6C ; =0x0000080C
+ add r6, r0, #0x0
+ add r4, r6, r1
+ mov r1, #0xc0
+ mul r1, r7
+ add r5, r4, r1
+ bl FUN_020703BC
+ add r3, r0, #0x0
+ mov r0, #0x3
+ add r1, r4, r7
+ lsl r0, r0, #0x8
+ ldrb r1, [r1, r0]
+ mov r0, #0x2c
+ mul r0, r1
+ add r1, r6, r0
+ mov r0, #0x71
+ lsl r0, r0, #0x4
+ ldrb r0, [r1, r0]
+ cmp r0, #0x1
+ bne _02074E3C
+ mov r3, #0xf
+ mov r1, #0x0
+ lsl r3, r3, #0xc
+ mov r4, #0x17
+_02074E1A:
+ lsl r0, r1, #0x1
+ add r2, r5, r0
+ add r2, #0x6c
+ ldrh r2, [r2, #0x0]
+ add r0, r5, r0
+ add r0, #0x6c
+ and r2, r3
+ lsl r2, r2, #0x10
+ lsr r2, r2, #0x10
+ orr r2, r4
+ strh r2, [r0, #0x0]
+ add r0, r1, #0x1
+ lsl r0, r0, #0x10
+ lsr r1, r0, #0x10
+ cmp r1, #0x9
+ blo _02074E1A
+ pop {r3-r7, pc}
+_02074E3C:
+ mov r6, #0xf
+ ldr r0, _02074E70 ; =0x00000FFF
+ mov r4, #0x0
+ lsl r6, r6, #0xc
+_02074E44:
+ lsl r2, r4, #0x1
+ add r1, r5, r2
+ add r1, #0x6c
+ ldrh r1, [r1, #0x0]
+ ldrh r7, [r3, r2]
+ and r1, r6
+ lsl r1, r1, #0x10
+ lsr r1, r1, #0x10
+ and r7, r0
+ orr r7, r1
+ add r1, r5, r2
+ add r1, #0x6c
+ strh r7, [r1, #0x0]
+ add r1, r4, #0x1
+ lsl r1, r1, #0x10
+ lsr r4, r1, #0x10
+ cmp r4, #0x9
+ blo _02074E44
+ pop {r3-r7, pc}
+ nop
+_02074E6C: .word 0x0000080C
+_02074E70: .word 0x00000FFF
+
+ thumb_func_start FUN_02074E74
+FUN_02074E74: ; 0x02074E74
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ mov r0, #0x85
+ lsl r0, r0, #0x2
+ add r6, r1, #0x0
+ add r0, r5, r0
+ mov r1, #0x1
+ bl FUN_0200D0E0
+ add r0, r5, #0x0
+ bl FUN_02073DB4
+ ldr r0, _02074F5C ; =0x000005A4
+ mov r4, #0x0
+ ldr r0, [r5, r0]
+ add r1, r0, #0x0
+ add r1, #0x32
+ ldrb r1, [r1, #0x0]
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x1c
+ beq _02074EFA
+_02074E9E:
+ add r2, r0, r4
+ add r2, #0x2c
+ ldrb r2, [r2, #0x0]
+ cmp r2, #0x0
+ bne _02074EF0
+ ldr r1, _02074F60 ; =0x00000B25
+ add r0, r0, r4
+ ldrb r2, [r5, r1]
+ add r0, #0x2c
+ add r2, r2, #0x1
+ strb r2, [r0, #0x0]
+ ldrb r1, [r5, r1]
+ add r0, r5, #0x0
+ bl FUN_02073024
+ add r0, r5, #0x0
+ mov r1, #0x22
+ mov r2, #0x1
+ bl FUN_020731C0
+ ldr r0, _02074F64 ; =0x000005C8
+ mov r1, #0x0
+ ldr r0, [r5, r0]
+ bl FUN_0200C664
+ ldr r0, _02074F5C ; =0x000005A4
+ ldr r0, [r5, r0]
+ add r0, #0x32
+ ldrb r0, [r0, #0x0]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x1c
+ sub r0, r0, #0x1
+ cmp r4, r0
+ bne _02074EEA
+ add r0, r5, #0x0
+ mov r1, #0x6
+ bl FUN_02070E60
+_02074EEA:
+ mov r0, #0x1
+ str r0, [r6, #0x0]
+ pop {r4-r6, pc}
+_02074EF0:
+ add r2, r4, #0x1
+ lsl r2, r2, #0x18
+ lsr r4, r2, #0x18
+ cmp r4, r1
+ blo _02074E9E
+_02074EFA:
+ cmp r1, #0x5
+ bhi _02074F50
+ add r0, r1, r1
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02074F0A: ; jump table (using 16-bit offset)
+ .short _02074F50 - _02074F0A - 2; case 0
+ .short _02074F16 - _02074F0A - 2; case 1
+ .short _02074F22 - _02074F0A - 2; case 2
+ .short _02074F2E - _02074F0A - 2; case 3
+ .short _02074F3A - _02074F0A - 2; case 4
+ .short _02074F46 - _02074F0A - 2; case 5
+_02074F16:
+ add r0, r5, #0x0
+ mov r1, #0x7b
+ mov r2, #0x1
+ bl FUN_020731E8
+ b _02074F50
+_02074F22:
+ add r0, r5, #0x0
+ mov r1, #0x64
+ mov r2, #0x1
+ bl FUN_020731E8
+ b _02074F50
+_02074F2E:
+ add r0, r5, #0x0
+ mov r1, #0x7c
+ mov r2, #0x1
+ bl FUN_020731E8
+ b _02074F50
+_02074F3A:
+ add r0, r5, #0x0
+ mov r1, #0x7d
+ mov r2, #0x1
+ bl FUN_020731E8
+ b _02074F50
+_02074F46:
+ add r0, r5, #0x0
+ mov r1, #0x7e
+ mov r2, #0x1
+ bl FUN_020731E8
+_02074F50:
+ ldr r0, _02074F68 ; =0x00000B22
+ mov r1, #0x13
+ strb r1, [r5, r0]
+ mov r0, #0x14
+ str r0, [r6, #0x0]
+ pop {r4-r6, pc}
+ .balign 4
+_02074F5C: .word 0x000005A4
+_02074F60: .word 0x00000B25
+_02074F64: .word 0x000005C8
+_02074F68: .word 0x00000B22
+
+ thumb_func_start FUN_02074F6C
+FUN_02074F6C: ; 0x02074F6C
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r0, _02074FA4 ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #0x3
+ tst r0, r1
+ beq _02074F9E
+ mov r0, #0x89
+ lsl r0, r0, #0x2
+ add r0, r4, r0
+ mov r1, #0x1
+ bl FUN_0200D0E0
+ add r0, r4, #0x0
+ mov r1, #0x22
+ mov r2, #0x1
+ bl FUN_020731C0
+ ldr r0, _02074FA8 ; =0x000005C8
+ mov r1, #0x0
+ ldr r0, [r4, r0]
+ bl FUN_0200C664
+ mov r0, #0x1
+ pop {r4, pc}
+_02074F9E:
+ mov r0, #0x13
+ pop {r4, pc}
+ nop
+_02074FA4: .word 0x021C48B8
+_02074FA8: .word 0x000005C8
+
+ thumb_func_start FUN_02074FAC
+FUN_02074FAC: ; 0x02074FAC
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ ldr r0, _02075080 ; =0x000005A4
+ str r1, [sp, #0x0]
+ ldr r1, [r5, r0]
+ mov r4, #0x0
+ add r0, r1, #0x0
+ add r0, #0x32
+ ldrb r0, [r0, #0x0]
+ lsl r0, r0, #0x18
+ lsr r2, r0, #0x1c
+ beq _0207502C
+ ldr r0, _02075084 ; =0x00000B25
+ ldrb r0, [r5, r0]
+ add r0, r0, #0x1
+_02074FCA:
+ add r3, r1, r4
+ add r3, #0x2c
+ ldrb r3, [r3, #0x0]
+ cmp r0, r3
+ bne _02075022
+ add r0, r1, r4
+ mov r2, #0x0
+ add r0, #0x2c
+ strb r2, [r0, #0x0]
+ ldr r0, _02075080 ; =0x000005A4
+ ldr r6, [r5, r0]
+ add r0, r6, #0x0
+ add r0, #0x32
+ ldrb r0, [r0, #0x0]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x1c
+ sub r0, r0, #0x1
+ cmp r4, r0
+ bge _0207502C
+ ldr r0, _02075080 ; =0x000005A4
+ add r1, r0, #0x0
+_02074FF4:
+ add r3, r6, r4
+ add r3, #0x2d
+ ldrb r3, [r3, #0x0]
+ add r6, r6, r4
+ add r6, #0x2c
+ strb r3, [r6, #0x0]
+ ldr r3, [r5, r0]
+ add r3, r3, r4
+ add r3, #0x2d
+ strb r2, [r3, #0x0]
+ add r3, r4, #0x1
+ lsl r3, r3, #0x18
+ ldr r6, [r5, r1]
+ lsr r4, r3, #0x18
+ add r3, r6, #0x0
+ add r3, #0x32
+ ldrb r3, [r3, #0x0]
+ lsl r3, r3, #0x18
+ lsr r3, r3, #0x1c
+ sub r3, r3, #0x1
+ cmp r4, r3
+ blt _02074FF4
+ b _0207502C
+_02075022:
+ add r3, r4, #0x1
+ lsl r3, r3, #0x18
+ lsr r4, r3, #0x18
+ cmp r4, r2
+ blo _02074FCA
+_0207502C:
+ ldr r6, _02075088 ; =0x00000729
+ mov r4, #0x0
+ mov r7, #0x2c
+_02075032:
+ add r0, r4, #0x0
+ mul r0, r7
+ add r0, r5, r0
+ ldrb r0, [r0, r6]
+ cmp r0, #0x0
+ beq _02075046
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_02073024
+_02075046:
+ add r0, r4, #0x1
+ lsl r0, r0, #0x18
+ lsr r4, r0, #0x18
+ cmp r4, #0x6
+ blo _02075032
+ mov r0, #0x85
+ lsl r0, r0, #0x2
+ add r0, r5, r0
+ mov r1, #0x1
+ bl FUN_0200D0E0
+ add r0, r5, #0x0
+ bl FUN_02073DB4
+ add r0, r5, #0x0
+ mov r1, #0x1d
+ mov r2, #0x1
+ bl FUN_020731C0
+ ldr r0, _0207508C ; =0x000005C8
+ mov r1, #0x0
+ ldr r0, [r5, r0]
+ bl FUN_0200C664
+ ldr r0, [sp, #0x0]
+ mov r1, #0x1
+ str r1, [r0, #0x0]
+ pop {r3-r7, pc}
+ nop
+_02075080: .word 0x000005A4
+_02075084: .word 0x00000B25
+_02075088: .word 0x00000729
+_0207508C: .word 0x000005C8
+
+ thumb_func_start FUN_02075090
+FUN_02075090: ; 0x02075090
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ ldr r0, _020750B8 ; =0x000005A4
+ add r4, r1, #0x0
+ ldr r0, [r5, r0]
+ mov r1, #0x0
+ add r0, #0x23
+ strb r1, [r0, #0x0]
+ ldr r0, _020750BC ; =0x000006FC
+ ldr r0, [r5, r0]
+ bl FUN_02001C5C
+ ldr r0, _020750C0 ; =0x000006F8
+ ldr r0, [r5, r0]
+ bl FUN_02012870
+ mov r0, #0x1b
+ str r0, [r4, #0x0]
+ pop {r3-r5, pc}
+ nop
+_020750B8: .word 0x000005A4
+_020750BC: .word 0x000006FC
+_020750C0: .word 0x000006F8
+
+ thumb_func_start FUN_020750C4
+FUN_020750C4: ; 0x020750C4
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ ldr r0, _020750EC ; =0x000005A4
+ add r4, r1, #0x0
+ ldr r0, [r5, r0]
+ mov r1, #0x1
+ add r0, #0x23
+ strb r1, [r0, #0x0]
+ ldr r0, _020750F0 ; =0x000006FC
+ mov r1, #0x0
+ ldr r0, [r5, r0]
+ bl FUN_02001C5C
+ ldr r0, _020750F4 ; =0x000006F8
+ ldr r0, [r5, r0]
+ bl FUN_02012870
+ mov r0, #0x1b
+ str r0, [r4, #0x0]
+ pop {r3-r5, pc}
+ .balign 4
+_020750EC: .word 0x000005A4
+_020750F0: .word 0x000006FC
+_020750F4: .word 0x000006F8
+
+ thumb_func_start FUN_020750F8
+FUN_020750F8: ; 0x020750F8
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ bl FUN_02073DB4
+ mov r0, #0x85
+ lsl r0, r0, #0x2
+ add r0, r5, r0
+ mov r1, #0x1
+ bl FUN_0200D0E0
+ add r0, r5, #0x0
+ bl FUN_02075118
+ str r0, [r4, #0x0]
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_02075118
+FUN_02075118: ; 0x02075118
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r0, _02075190 ; =0x000005A4
+ ldr r1, _02075194 ; =0x00000B25
+ ldr r0, [r4, r0]
+ ldrb r1, [r4, r1]
+ ldr r0, [r0, #0x0]
+ bl FUN_0206B9B0
+ mov r1, #0xa1
+ mov r2, #0x0
+ bl FUN_020671BC
+ cmp r0, #0x0
+ ldr r2, _02075198 ; =0x0000069C
+ bne _0207515C
+ ldr r0, [r4, r2]
+ add r2, #0x8
+ ldr r2, [r4, r2]
+ mov r1, #0x81
+ bl FUN_0200A8E0
+ ldr r0, _02075194 ; =0x00000B25
+ ldrb r0, [r4, r0]
+ add r0, #0x16
+ lsl r0, r0, #0x2
+ add r1, r4, r0
+ mov r0, #0x5b
+ lsl r0, r0, #0x4
+ ldr r0, [r1, r0]
+ mov r1, #0x1
+ bl FUN_020200A0
+ b _0207516E
+_0207515C:
+ ldr r0, [r4, r2]
+ add r2, #0x8
+ ldr r2, [r4, r2]
+ mov r1, #0x82
+ bl FUN_0200A8E0
+ ldr r0, _02075194 ; =0x00000B25
+ mov r1, #0x7
+ strb r1, [r4, r0]
+_0207516E:
+ mov r1, #0x0
+ add r0, r4, #0x0
+ mvn r1, r1
+ mov r2, #0x1
+ bl FUN_020731E8
+ ldr r0, _02075190 ; =0x000005A4
+ mov r1, #0x0
+ ldr r0, [r4, r0]
+ add r0, #0x23
+ strb r1, [r0, #0x0]
+ ldr r0, _0207519C ; =0x00000B22
+ mov r1, #0x15
+ strb r1, [r4, r0]
+ mov r0, #0x14
+ pop {r4, pc}
+ nop
+_02075190: .word 0x000005A4
+_02075194: .word 0x00000B25
+_02075198: .word 0x0000069C
+_0207519C: .word 0x00000B22
+
+ thumb_func_start FUN_020751A0
+FUN_020751A0: ; 0x020751A0
+ push {r4-r6, lr}
+ add r6, r1, #0x0
+ add r4, r0, #0x0
+ ldr r1, _02075234 ; =0x000005A4
+ mov r0, #0x1
+ ldr r1, [r4, r1]
+ add r1, #0x23
+ ldrb r1, [r1, #0x0]
+ sub r1, #0xb
+ lsl r1, r1, #0x10
+ lsr r1, r1, #0x10
+ bl FUN_02063948
+ add r1, r0, #0x0
+ beq _020751C8
+ ldr r0, _02075234 ; =0x000005A4
+ ldr r0, [r4, r0]
+ ldr r0, [r0, #0x18]
+ blx r1
+ b _020751CA
+_020751C8:
+ mov r0, #0x1
+_020751CA:
+ cmp r0, #0x4
+ bhi _0207520A
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_020751DA: ; jump table (using 16-bit offset)
+ .short _020751E4 - _020751DA - 2; case 0
+ .short _020751FC - _020751DA - 2; case 1
+ .short _02075200 - _020751DA - 2; case 2
+ .short _02075204 - _020751DA - 2; case 3
+ .short _02075208 - _020751DA - 2; case 4
+_020751E4:
+ ldr r0, _02075238 ; =0x000006FC
+ mov r1, #0x0
+ ldr r0, [r4, r0]
+ bl FUN_02001C5C
+ ldr r0, _0207523C ; =0x000006F8
+ ldr r0, [r4, r0]
+ bl FUN_02012870
+ mov r0, #0x1b
+ str r0, [r6, #0x0]
+ pop {r4-r6, pc}
+_020751FC:
+ mov r5, #0x68
+ b _0207520A
+_02075200:
+ mov r5, #0x4c
+ b _0207520A
+_02075204:
+ mov r5, #0xc4
+ b _0207520A
+_02075208:
+ mov r5, #0x66
+_0207520A:
+ mov r0, #0x85
+ lsl r0, r0, #0x2
+ add r0, r4, r0
+ mov r1, #0x1
+ bl FUN_0200D0E0
+ add r0, r4, #0x0
+ bl FUN_02073DB4
+ add r0, r4, #0x0
+ add r1, r5, #0x0
+ mov r2, #0x1
+ bl FUN_020731E8
+ ldr r0, _02075240 ; =0x00000B22
+ mov r1, #0x3
+ strb r1, [r4, r0]
+ mov r0, #0x14
+ str r0, [r6, #0x0]
+ pop {r4-r6, pc}
+ nop
+_02075234: .word 0x000005A4
+_02075238: .word 0x000006FC
+_0207523C: .word 0x000006F8
+_02075240: .word 0x00000B22
+
+ thumb_func_start FUN_02075244
+FUN_02075244: ; 0x02075244
+ ldr r2, _02075254 ; =0x000005A4
+ mov r3, #0xb
+ ldr r2, [r0, r2]
+ add r2, #0x23
+ strb r3, [r2, #0x0]
+ ldr r3, _02075258 ; =FUN_020751A0
+ bx r3
+ nop
+_02075254: .word 0x000005A4
+_02075258: .word FUN_020751A0
+
+ thumb_func_start FUN_0207525C
+FUN_0207525C: ; 0x0207525C
+ ldr r2, _0207526C ; =0x000005A4
+ mov r3, #0x10
+ ldr r2, [r0, r2]
+ add r2, #0x23
+ strb r3, [r2, #0x0]
+ ldr r3, _02075270 ; =FUN_020751A0
+ bx r3
+ nop
+_0207526C: .word 0x000005A4
+_02075270: .word FUN_020751A0
+
+ thumb_func_start FUN_02075274
+FUN_02075274: ; 0x02075274
+ ldr r2, _02075284 ; =0x000005A4
+ mov r3, #0xe
+ ldr r2, [r0, r2]
+ add r2, #0x23
+ strb r3, [r2, #0x0]
+ ldr r3, _02075288 ; =FUN_020751A0
+ bx r3
+ nop
+_02075284: .word 0x000005A4
+_02075288: .word FUN_020751A0
+
+ thumb_func_start FUN_0207528C
+FUN_0207528C: ; 0x0207528C
+ ldr r2, _0207529C ; =0x000005A4
+ mov r3, #0xd
+ ldr r2, [r0, r2]
+ add r2, #0x23
+ strb r3, [r2, #0x0]
+ ldr r3, _020752A0 ; =FUN_020751A0
+ bx r3
+ nop
+_0207529C: .word 0x000005A4
+_020752A0: .word FUN_020751A0
+
+ thumb_func_start FUN_020752A4
+FUN_020752A4: ; 0x020752A4
+ ldr r2, _020752B4 ; =0x000005A4
+ mov r3, #0xf
+ ldr r2, [r0, r2]
+ add r2, #0x23
+ strb r3, [r2, #0x0]
+ ldr r3, _020752B8 ; =FUN_020751A0
+ bx r3
+ nop
+_020752B4: .word 0x000005A4
+_020752B8: .word FUN_020751A0
+
+ thumb_func_start FUN_020752BC
+FUN_020752BC: ; 0x020752BC
+ ldr r2, _020752CC ; =0x000005A4
+ mov r3, #0x12
+ ldr r2, [r0, r2]
+ add r2, #0x23
+ strb r3, [r2, #0x0]
+ ldr r3, _020752D0 ; =FUN_020751A0
+ bx r3
+ nop
+_020752CC: .word 0x000005A4
+_020752D0: .word FUN_020751A0
+
+ thumb_func_start FUN_020752D4
+FUN_020752D4: ; 0x020752D4
+ ldr r2, _020752E4 ; =0x000005A4
+ mov r3, #0xc
+ ldr r2, [r0, r2]
+ add r2, #0x23
+ strb r3, [r2, #0x0]
+ ldr r3, _020752E8 ; =FUN_020751A0
+ bx r3
+ nop
+_020752E4: .word 0x000005A4
+_020752E8: .word FUN_020751A0
+
+ thumb_func_start FUN_020752EC
+FUN_020752EC: ; 0x020752EC
+ ldr r2, _020752FC ; =0x000005A4
+ mov r3, #0x11
+ ldr r2, [r0, r2]
+ add r2, #0x23
+ strb r3, [r2, #0x0]
+ ldr r3, _02075300 ; =FUN_020751A0
+ bx r3
+ nop
+_020752FC: .word 0x000005A4
+_02075300: .word FUN_020751A0
+
+ thumb_func_start FUN_02075304
+FUN_02075304: ; 0x02075304
+ ldr r2, _02075314 ; =0x000005A4
+ mov r3, #0x13
+ ldr r2, [r0, r2]
+ add r2, #0x23
+ strb r3, [r2, #0x0]
+ ldr r3, _02075318 ; =FUN_020751A0
+ bx r3
+ nop
+_02075314: .word 0x000005A4
+_02075318: .word FUN_020751A0
+
+ thumb_func_start FUN_0207531C
+FUN_0207531C: ; 0x0207531C
+ ldr r2, _0207532C ; =0x000005A4
+ mov r3, #0x14
+ ldr r2, [r0, r2]
+ add r2, #0x23
+ strb r3, [r2, #0x0]
+ ldr r3, _02075330 ; =FUN_020751A0
+ bx r3
+ nop
+_0207532C: .word 0x000005A4
+_02075330: .word FUN_020751A0
+
+ thumb_func_start FUN_02075334
+FUN_02075334: ; 0x02075334
+ ldr r2, _02075344 ; =0x000005A4
+ mov r3, #0x15
+ ldr r2, [r0, r2]
+ add r2, #0x23
+ strb r3, [r2, #0x0]
+ ldr r3, _02075348 ; =FUN_020751A0
+ bx r3
+ nop
+_02075344: .word 0x000005A4
+_02075348: .word FUN_020751A0
+
+ thumb_func_start FUN_0207534C
+FUN_0207534C: ; 0x0207534C
+ ldr r2, _0207535C ; =0x000005A4
+ mov r3, #0x16
+ ldr r2, [r0, r2]
+ add r2, #0x23
+ strb r3, [r2, #0x0]
+ ldr r3, _02075360 ; =FUN_020751A0
+ bx r3
+ nop
+_0207535C: .word 0x000005A4
+_02075360: .word FUN_020751A0
+
+ thumb_func_start FUN_02075364
+FUN_02075364: ; 0x02075364
+ ldr r2, _02075374 ; =0x000005A4
+ mov r3, #0x17
+ ldr r2, [r0, r2]
+ add r2, #0x23
+ strb r3, [r2, #0x0]
+ ldr r3, _02075378 ; =FUN_020751A0
+ bx r3
+ nop
+_02075374: .word 0x000005A4
+_02075378: .word FUN_020751A0
+
+ thumb_func_start FUN_0207537C
+FUN_0207537C: ; 0x0207537C
+ push {r3-r5, lr}
+ add r4, r0, #0x0
+ add r5, r1, #0x0
+ bl FUN_020753B4
+ str r0, [r5, #0x0]
+ cmp r0, #0x1a
+ bne _02075392
+ ldr r0, _02075394 ; =0x00000B2E
+ mov r1, #0xd
+ strh r1, [r4, r0]
+_02075392:
+ pop {r3-r5, pc}
+ .balign 4
+_02075394: .word 0x00000B2E
+
+ thumb_func_start FUN_02075398
+FUN_02075398: ; 0x02075398
+ push {r3-r5, lr}
+ add r4, r0, #0x0
+ add r5, r1, #0x0
+ bl FUN_020753B4
+ str r0, [r5, #0x0]
+ cmp r0, #0x1a
+ bne _020753AE
+ ldr r0, _020753B0 ; =0x00000B2E
+ mov r1, #0xe
+ strh r1, [r4, r0]
+_020753AE:
+ pop {r3-r5, pc}
+ .balign 4
+_020753B0: .word 0x00000B2E
+
+ thumb_func_start FUN_020753B4
+FUN_020753B4: ; 0x020753B4
+ push {r3-r4, lr}
+ sub sp, #0x4
+ add r4, r0, #0x0
+ mov r0, #0x85
+ lsl r0, r0, #0x2
+ add r0, r4, r0
+ mov r1, #0x1
+ bl FUN_0200D0E0
+ add r0, r4, #0x0
+ bl FUN_02073DB4
+ ldr r0, _020754A8 ; =0x00000B25
+ ldrb r1, [r4, r0]
+ mov r0, #0x2c
+ mul r0, r1
+ add r1, r4, r0
+ ldr r0, _020754AC ; =0x00000708
+ ldrh r0, [r1, r0]
+ mov r1, #0x5
+ blx _s32_div_f
+ ldr r1, _020754B0 ; =0x00000B28
+ strh r0, [r4, r1]
+ sub r0, r1, #0x3
+ ldrb r2, [r4, r0]
+ mov r0, #0x2c
+ mul r0, r2
+ add r2, r4, r0
+ ldr r0, _020754B4 ; =0x00000706
+ ldrh r2, [r2, r0]
+ ldrh r0, [r4, r1]
+ cmp r2, r0
+ bhi _0207540E
+ add r0, r4, #0x0
+ mov r1, #0x8a
+ mov r2, #0x1
+ bl FUN_020731E8
+ ldr r0, _020754B8 ; =0x00000B22
+ mov r1, #0x3
+ strb r1, [r4, r0]
+ add sp, #0x4
+ mov r0, #0x14
+ pop {r3-r4, pc}
+_0207540E:
+ sub r0, r1, #0x5
+ ldrb r2, [r4, r0]
+ mov r0, #0x40
+ orr r2, r0
+ sub r0, r1, #0x5
+ strb r2, [r4, r0]
+ ldrb r0, [r4, r0]
+ mov r2, #0x3f
+ bic r0, r2
+ sub r2, r1, #0x3
+ ldrb r3, [r4, r2]
+ mov r2, #0x3f
+ and r2, r3
+ orr r2, r0
+ sub r0, r1, #0x5
+ strb r2, [r4, r0]
+ ldr r0, _020754BC ; =0x000005C8
+ mov r1, #0x0
+ ldr r0, [r4, r0]
+ bl FUN_0200C664
+ ldr r0, _020754BC ; =0x000005C8
+ add r1, sp, #0x0
+ ldr r0, [r4, r0]
+ add r1, #0x2
+ add r2, sp, #0x0
+ bl FUN_0200C75C
+ ldr r0, _020754C0 ; =0x000005CC
+ add r3, sp, #0x0
+ mov r1, #0x2
+ mov r2, #0x0
+ ldrsh r1, [r3, r1]
+ ldrsh r2, [r3, r2]
+ ldr r0, [r4, r0]
+ bl FUN_0200C6E4
+ ldr r0, _020754C4 ; =0x000005A4
+ ldr r1, _020754C8 ; =0x00000B23
+ ldr r0, [r4, r0]
+ ldrb r1, [r4, r1]
+ add r0, #0x21
+ ldrb r0, [r0, #0x0]
+ lsl r1, r1, #0x1a
+ lsr r1, r1, #0x1a
+ bl FUN_020714BC
+ add r1, r0, #0x0
+ ldr r0, _020754C0 ; =0x000005CC
+ add r1, r1, #0x2
+ ldr r0, [r4, r0]
+ bl FUN_02020130
+ ldr r0, _020754C0 ; =0x000005CC
+ mov r1, #0x1
+ ldr r0, [r4, r0]
+ bl FUN_020200A0
+ ldr r1, _020754C8 ; =0x00000B23
+ add r0, r4, #0x0
+ ldrb r1, [r4, r1]
+ lsl r1, r1, #0x1a
+ lsr r1, r1, #0x1a
+ bl FUN_020709FC
+ add r0, r4, #0x0
+ mov r1, #0x24
+ mov r2, #0x1
+ bl FUN_020731C0
+ ldr r0, _020754CC ; =0x00000B2A
+ mov r1, #0x0
+ strh r1, [r4, r0]
+ mov r0, #0x1a
+ add sp, #0x4
+ pop {r3-r4, pc}
+ nop
+_020754A8: .word 0x00000B25
+_020754AC: .word 0x00000708
+_020754B0: .word 0x00000B28
+_020754B4: .word 0x00000706
+_020754B8: .word 0x00000B22
+_020754BC: .word 0x000005C8
+_020754C0: .word 0x000005CC
+_020754C4: .word 0x000005A4
+_020754C8: .word 0x00000B23
+_020754CC: .word 0x00000B2A
+
+ thumb_func_start FUN_020754D0
+FUN_020754D0: ; 0x020754D0
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r0, _02075504 ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #0x3
+ tst r1, r0
+ beq _02075500
+ mov r0, #0x89
+ lsl r0, r0, #0x2
+ add r0, r4, r0
+ mov r1, #0x1
+ bl FUN_0200D0E0
+ add r0, r4, #0x0
+ mov r1, #0x1d
+ mov r2, #0x1
+ bl FUN_020731C0
+ ldr r0, _02075508 ; =0x000005C8
+ mov r1, #0x0
+ ldr r0, [r4, r0]
+ bl FUN_0200C664
+ mov r0, #0x1
+_02075500:
+ pop {r4, pc}
+ nop
+_02075504: .word 0x021C48B8
+_02075508: .word 0x000005C8
+
+ thumb_func_start FUN_0207550C
+FUN_0207550C: ; 0x0207550C
+ push {r3-r5, lr}
+ mov r1, #0x0
+ mov r2, #0xc
+ bl FUN_0206E710
+ mov r1, #0xe
+ add r4, r0, #0x0
+ bl FUN_0206E7DC
+ cmp r0, #0x1
+ beq _0207552C
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ mov r0, #0x1c
+ pop {r3-r5, pc}
+_0207552C:
+ add r0, r4, #0x0
+ mov r1, #0x1b
+ bl FUN_0206E7DC
+ cmp r0, #0x0
+ bne _02075580
+ add r0, r4, #0x0
+ mov r1, #0x1c
+ bl FUN_0206E7DC
+ cmp r0, #0x0
+ bne _02075580
+ add r0, r4, #0x0
+ mov r1, #0x1d
+ bl FUN_0206E7DC
+ cmp r0, #0x0
+ bne _02075580
+ add r0, r4, #0x0
+ mov r1, #0x1e
+ bl FUN_0206E7DC
+ cmp r0, #0x0
+ bne _02075580
+ add r0, r4, #0x0
+ mov r1, #0x1f
+ bl FUN_0206E7DC
+ cmp r0, #0x0
+ bne _02075580
+ add r0, r4, #0x0
+ mov r1, #0x20
+ bl FUN_0206E7DC
+ cmp r0, #0x0
+ bne _02075580
+ add r0, r4, #0x0
+ mov r1, #0x21
+ bl FUN_0206E7DC
+ cmp r0, #0x0
+ beq _0207558A
+_02075580:
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ mov r0, #0x0
+ pop {r3-r5, pc}
+_0207558A:
+ add r0, r4, #0x0
+ mov r1, #0x18
+ bl FUN_0206E7DC
+ cmp r0, #0x0
+ beq _020755A0
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ mov r0, #0x1
+ pop {r3-r5, pc}
+_020755A0:
+ add r0, r4, #0x0
+ mov r1, #0x19
+ bl FUN_0206E7DC
+ cmp r0, #0x0
+ beq _020755B6
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ mov r0, #0x2
+ pop {r3-r5, pc}
+_020755B6:
+ add r0, r4, #0x0
+ mov r1, #0xf
+ bl FUN_0206E7DC
+ add r5, r0, #0x0
+ add r0, r4, #0x0
+ mov r1, #0x10
+ bl FUN_0206E7DC
+ lsl r0, r0, #0x1
+ add r5, r5, r0
+ add r0, r4, #0x0
+ mov r1, #0x11
+ bl FUN_0206E7DC
+ lsl r0, r0, #0x2
+ add r5, r5, r0
+ add r0, r4, #0x0
+ mov r1, #0x12
+ bl FUN_0206E7DC
+ lsl r0, r0, #0x3
+ add r5, r5, r0
+ add r0, r4, #0x0
+ mov r1, #0x13
+ bl FUN_0206E7DC
+ lsl r0, r0, #0x4
+ add r5, r5, r0
+ add r0, r4, #0x0
+ mov r1, #0x14
+ bl FUN_0206E7DC
+ lsl r0, r0, #0x5
+ add r5, r5, r0
+ cmp r5, #0x10
+ bgt _02075624
+ bge _0207565A
+ cmp r5, #0x8
+ bhi _0207568E
+ add r0, r5, r5
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02075612: ; jump table (using 16-bit offset)
+ .short _0207568E - _02075612 - 2; case 0
+ .short _02075632 - _02075612 - 2; case 1
+ .short _0207563C - _02075612 - 2; case 2
+ .short _0207568E - _02075612 - 2; case 3
+ .short _02075646 - _02075612 - 2; case 4
+ .short _0207568E - _02075612 - 2; case 5
+ .short _0207568E - _02075612 - 2; case 6
+ .short _0207568E - _02075612 - 2; case 7
+ .short _02075650 - _02075612 - 2; case 8
+_02075624:
+ cmp r5, #0x20
+ bgt _0207562C
+ beq _02075664
+ b _0207568E
+_0207562C:
+ cmp r5, #0x3f
+ beq _0207566E
+ b _0207568E
+_02075632:
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ mov r0, #0x3
+ pop {r3-r5, pc}
+_0207563C:
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ mov r0, #0x4
+ pop {r3-r5, pc}
+_02075646:
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ mov r0, #0x5
+ pop {r3-r5, pc}
+_02075650:
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ mov r0, #0x6
+ pop {r3-r5, pc}
+_0207565A:
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ mov r0, #0x7
+ pop {r3-r5, pc}
+_02075664:
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ mov r0, #0x8
+ pop {r3-r5, pc}
+_0207566E:
+ add r0, r4, #0x0
+ mov r1, #0x26
+ bl FUN_0206E7DC
+ cmp r0, #0x0
+ beq _02075684
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ mov r0, #0xb
+ pop {r3-r5, pc}
+_02075684:
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ mov r0, #0x9
+ pop {r3-r5, pc}
+_0207568E:
+ add r0, r4, #0x0
+ mov r1, #0x15
+ bl FUN_0206E7DC
+ cmp r0, #0x0
+ beq _020756A4
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ mov r0, #0xa
+ pop {r3-r5, pc}
+_020756A4:
+ add r0, r4, #0x0
+ mov r1, #0x26
+ bl FUN_0206E7DC
+ cmp r0, #0x0
+ beq _020756BA
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ mov r0, #0xb
+ pop {r3-r5, pc}
+_020756BA:
+ add r0, r4, #0x0
+ mov r1, #0x30
+ bl FUN_0206E7DC
+ cmp r0, #0x0
+ ble _020756D0
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ mov r0, #0xc
+ pop {r3-r5, pc}
+_020756D0:
+ bge _020756DC
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ mov r0, #0x12
+ pop {r3-r5, pc}
+_020756DC:
+ add r0, r4, #0x0
+ mov r1, #0x31
+ bl FUN_0206E7DC
+ cmp r0, #0x0
+ ble _020756F2
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ mov r0, #0xd
+ pop {r3-r5, pc}
+_020756F2:
+ bge _020756FE
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ mov r0, #0x13
+ pop {r3-r5, pc}
+_020756FE:
+ add r0, r4, #0x0
+ mov r1, #0x32
+ bl FUN_0206E7DC
+ cmp r0, #0x0
+ ble _02075714
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ mov r0, #0xe
+ pop {r3-r5, pc}
+_02075714:
+ bge _02075720
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ mov r0, #0x14
+ pop {r3-r5, pc}
+_02075720:
+ add r0, r4, #0x0
+ mov r1, #0x33
+ bl FUN_0206E7DC
+ cmp r0, #0x0
+ ble _02075736
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ mov r0, #0xf
+ pop {r3-r5, pc}
+_02075736:
+ bge _02075742
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ mov r0, #0x15
+ pop {r3-r5, pc}
+_02075742:
+ add r0, r4, #0x0
+ mov r1, #0x34
+ bl FUN_0206E7DC
+ cmp r0, #0x0
+ ble _02075758
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ mov r0, #0x10
+ pop {r3-r5, pc}
+_02075758:
+ bge _02075764
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ mov r0, #0x16
+ pop {r3-r5, pc}
+_02075764:
+ add r0, r4, #0x0
+ mov r1, #0x35
+ bl FUN_0206E7DC
+ cmp r0, #0x0
+ ble _0207577A
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ mov r0, #0x11
+ pop {r3-r5, pc}
+_0207577A:
+ bge _02075786
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ mov r0, #0x17
+ pop {r3-r5, pc}
+_02075786:
+ add r0, r4, #0x0
+ mov r1, #0x1a
+ bl FUN_0206E7DC
+ cmp r0, #0x0
+ beq _0207579C
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ mov r0, #0x18
+ pop {r3-r5, pc}
+_0207579C:
+ add r0, r4, #0x0
+ mov r1, #0x22
+ bl FUN_0206E7DC
+ cmp r0, #0x0
+ beq _020757B2
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ mov r0, #0x19
+ pop {r3-r5, pc}
+_020757B2:
+ add r0, r4, #0x0
+ mov r1, #0x23
+ bl FUN_0206E7DC
+ cmp r0, #0x0
+ beq _020757C8
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ mov r0, #0x1a
+ pop {r3-r5, pc}
+_020757C8:
+ add r0, r4, #0x0
+ mov r1, #0x24
+ bl FUN_0206E7DC
+ cmp r0, #0x0
+ bne _020757E0
+ add r0, r4, #0x0
+ mov r1, #0x25
+ bl FUN_0206E7DC
+ cmp r0, #0x0
+ beq _020757EA
+_020757E0:
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ mov r0, #0x1b
+ pop {r3-r5, pc}
+_020757EA:
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ mov r0, #0x1c
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_020757F4
+FUN_020757F4: ; 0x020757F4
+ push {r4-r6, lr}
+ add r4, r0, #0x0
+ ldr r0, _02075B8C ; =0x000005A4
+ add r6, r1, #0x0
+ ldr r1, _02075B90 ; =0x00000B25
+ ldr r0, [r4, r0]
+ ldrb r1, [r4, r1]
+ ldr r0, [r0, #0x0]
+ add r5, r2, #0x0
+ bl FUN_0206B9B0
+ bl FUN_020690E4
+ add r2, r0, #0x0
+ mov r0, #0x6a
+ lsl r0, r0, #0x4
+ ldr r0, [r4, r0]
+ mov r1, #0x0
+ bl FUN_0200ACF8
+ add r0, r6, #0x0
+ bl FUN_0207550C
+ cmp r0, #0x1b
+ bls _02075828
+ b _02075C40
+_02075828:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02075834: ; jump table (using 16-bit offset)
+ .short _02075C40 - _02075834 - 2; case 0
+ .short _02075C40 - _02075834 - 2; case 1
+ .short _02075C40 - _02075834 - 2; case 2
+ .short _02075890 - _02075834 - 2; case 3
+ .short _0207586C - _02075834 - 2; case 4
+ .short _020758B4 - _02075834 - 2; case 5
+ .short _020758D8 - _02075834 - 2; case 6
+ .short _020758FC - _02075834 - 2; case 7
+ .short _02075920 - _02075834 - 2; case 8
+ .short _02075968 - _02075834 - 2; case 9
+ .short _02075944 - _02075834 - 2; case 10
+ .short _02075C40 - _02075834 - 2; case 11
+ .short _0207598C - _02075834 - 2; case 12
+ .short _020759BE - _02075834 - 2; case 13
+ .short _020759F0 - _02075834 - 2; case 14
+ .short _02075A22 - _02075834 - 2; case 15
+ .short _02075A54 - _02075834 - 2; case 16
+ .short _02075A86 - _02075834 - 2; case 17
+ .short _02075AB8 - _02075834 - 2; case 18
+ .short _02075AEC - _02075834 - 2; case 19
+ .short _02075B20 - _02075834 - 2; case 20
+ .short _02075B54 - _02075834 - 2; case 21
+ .short _02075B88 - _02075834 - 2; case 22
+ .short _02075BCA - _02075834 - 2; case 23
+ .short _02075C40 - _02075834 - 2; case 24
+ .short _02075BFE - _02075834 - 2; case 25
+ .short _02075BFE - _02075834 - 2; case 26
+ .short _02075C30 - _02075834 - 2; case 27
+_0207586C:
+ ldr r0, _02075B94 ; =0x0000069C
+ mov r1, #0x41
+ ldr r0, [r4, r0]
+ bl FUN_0200A914
+ mov r1, #0x6a
+ add r5, r0, #0x0
+ lsl r1, r1, #0x4
+ ldr r0, [r4, r1]
+ add r1, r1, #0x4
+ ldr r1, [r4, r1]
+ add r2, r5, #0x0
+ bl FUN_0200B7B8
+ add r0, r5, #0x0
+ bl FUN_02021A20
+ pop {r4-r6, pc}
+_02075890:
+ ldr r0, _02075B94 ; =0x0000069C
+ mov r1, #0x5b
+ ldr r0, [r4, r0]
+ bl FUN_0200A914
+ mov r1, #0x6a
+ add r5, r0, #0x0
+ lsl r1, r1, #0x4
+ ldr r0, [r4, r1]
+ add r1, r1, #0x4
+ ldr r1, [r4, r1]
+ add r2, r5, #0x0
+ bl FUN_0200B7B8
+ add r0, r5, #0x0
+ bl FUN_02021A20
+ pop {r4-r6, pc}
+_020758B4:
+ ldr r0, _02075B94 ; =0x0000069C
+ mov r1, #0x43
+ ldr r0, [r4, r0]
+ bl FUN_0200A914
+ mov r1, #0x6a
+ add r5, r0, #0x0
+ lsl r1, r1, #0x4
+ ldr r0, [r4, r1]
+ add r1, r1, #0x4
+ ldr r1, [r4, r1]
+ add r2, r5, #0x0
+ bl FUN_0200B7B8
+ add r0, r5, #0x0
+ bl FUN_02021A20
+ pop {r4-r6, pc}
+_020758D8:
+ ldr r0, _02075B94 ; =0x0000069C
+ mov r1, #0x44
+ ldr r0, [r4, r0]
+ bl FUN_0200A914
+ mov r1, #0x6a
+ add r5, r0, #0x0
+ lsl r1, r1, #0x4
+ ldr r0, [r4, r1]
+ add r1, r1, #0x4
+ ldr r1, [r4, r1]
+ add r2, r5, #0x0
+ bl FUN_0200B7B8
+ add r0, r5, #0x0
+ bl FUN_02021A20
+ pop {r4-r6, pc}
+_020758FC:
+ ldr r0, _02075B94 ; =0x0000069C
+ mov r1, #0x42
+ ldr r0, [r4, r0]
+ bl FUN_0200A914
+ mov r1, #0x6a
+ add r5, r0, #0x0
+ lsl r1, r1, #0x4
+ ldr r0, [r4, r1]
+ add r1, r1, #0x4
+ ldr r1, [r4, r1]
+ add r2, r5, #0x0
+ bl FUN_0200B7B8
+ add r0, r5, #0x0
+ bl FUN_02021A20
+ pop {r4-r6, pc}
+_02075920:
+ ldr r0, _02075B94 ; =0x0000069C
+ mov r1, #0x49
+ ldr r0, [r4, r0]
+ bl FUN_0200A914
+ mov r1, #0x6a
+ add r5, r0, #0x0
+ lsl r1, r1, #0x4
+ ldr r0, [r4, r1]
+ add r1, r1, #0x4
+ ldr r1, [r4, r1]
+ add r2, r5, #0x0
+ bl FUN_0200B7B8
+ add r0, r5, #0x0
+ bl FUN_02021A20
+ pop {r4-r6, pc}
+_02075944:
+ ldr r0, _02075B94 ; =0x0000069C
+ mov r1, #0x4a
+ ldr r0, [r4, r0]
+ bl FUN_0200A914
+ mov r1, #0x6a
+ add r5, r0, #0x0
+ lsl r1, r1, #0x4
+ ldr r0, [r4, r1]
+ add r1, r1, #0x4
+ ldr r1, [r4, r1]
+ add r2, r5, #0x0
+ bl FUN_0200B7B8
+ add r0, r5, #0x0
+ bl FUN_02021A20
+ pop {r4-r6, pc}
+_02075968:
+ ldr r0, _02075B94 ; =0x0000069C
+ mov r1, #0x47
+ ldr r0, [r4, r0]
+ bl FUN_0200A914
+ mov r1, #0x6a
+ add r5, r0, #0x0
+ lsl r1, r1, #0x4
+ ldr r0, [r4, r1]
+ add r1, r1, #0x4
+ ldr r1, [r4, r1]
+ add r2, r5, #0x0
+ bl FUN_0200B7B8
+ add r0, r5, #0x0
+ bl FUN_02021A20
+ pop {r4-r6, pc}
+_0207598C:
+ ldr r0, _02075B94 ; =0x0000069C
+ mov r1, #0x4b
+ ldr r0, [r4, r0]
+ bl FUN_0200A914
+ add r5, r0, #0x0
+ mov r0, #0x6a
+ lsl r0, r0, #0x4
+ ldr r0, [r4, r0]
+ mov r1, #0x1
+ mov r2, #0x0
+ bl FUN_0200AF50
+ mov r1, #0x6a
+ lsl r1, r1, #0x4
+ ldr r0, [r4, r1]
+ add r1, r1, #0x4
+ ldr r1, [r4, r1]
+ add r2, r5, #0x0
+ bl FUN_0200B7B8
+ add r0, r5, #0x0
+ bl FUN_02021A20
+ pop {r4-r6, pc}
+_020759BE:
+ ldr r0, _02075B94 ; =0x0000069C
+ mov r1, #0x4b
+ ldr r0, [r4, r0]
+ bl FUN_0200A914
+ add r5, r0, #0x0
+ mov r0, #0x6a
+ lsl r0, r0, #0x4
+ mov r1, #0x1
+ ldr r0, [r4, r0]
+ add r2, r1, #0x0
+ bl FUN_0200AF50
+ mov r1, #0x6a
+ lsl r1, r1, #0x4
+ ldr r0, [r4, r1]
+ add r1, r1, #0x4
+ ldr r1, [r4, r1]
+ add r2, r5, #0x0
+ bl FUN_0200B7B8
+ add r0, r5, #0x0
+ bl FUN_02021A20
+ pop {r4-r6, pc}
+_020759F0:
+ ldr r0, _02075B94 ; =0x0000069C
+ mov r1, #0x4b
+ ldr r0, [r4, r0]
+ bl FUN_0200A914
+ add r5, r0, #0x0
+ mov r0, #0x6a
+ lsl r0, r0, #0x4
+ ldr r0, [r4, r0]
+ mov r1, #0x1
+ mov r2, #0x2
+ bl FUN_0200AF50
+ mov r1, #0x6a
+ lsl r1, r1, #0x4
+ ldr r0, [r4, r1]
+ add r1, r1, #0x4
+ ldr r1, [r4, r1]
+ add r2, r5, #0x0
+ bl FUN_0200B7B8
+ add r0, r5, #0x0
+ bl FUN_02021A20
+ pop {r4-r6, pc}
+_02075A22:
+ ldr r0, _02075B94 ; =0x0000069C
+ mov r1, #0x4b
+ ldr r0, [r4, r0]
+ bl FUN_0200A914
+ add r5, r0, #0x0
+ mov r0, #0x6a
+ lsl r0, r0, #0x4
+ ldr r0, [r4, r0]
+ mov r1, #0x1
+ mov r2, #0x3
+ bl FUN_0200AF50
+ mov r1, #0x6a
+ lsl r1, r1, #0x4
+ ldr r0, [r4, r1]
+ add r1, r1, #0x4
+ ldr r1, [r4, r1]
+ add r2, r5, #0x0
+ bl FUN_0200B7B8
+ add r0, r5, #0x0
+ bl FUN_02021A20
+ pop {r4-r6, pc}
+_02075A54:
+ ldr r0, _02075B94 ; =0x0000069C
+ mov r1, #0x4b
+ ldr r0, [r4, r0]
+ bl FUN_0200A914
+ add r5, r0, #0x0
+ mov r0, #0x6a
+ lsl r0, r0, #0x4
+ ldr r0, [r4, r0]
+ mov r1, #0x1
+ mov r2, #0x4
+ bl FUN_0200AF50
+ mov r1, #0x6a
+ lsl r1, r1, #0x4
+ ldr r0, [r4, r1]
+ add r1, r1, #0x4
+ ldr r1, [r4, r1]
+ add r2, r5, #0x0
+ bl FUN_0200B7B8
+ add r0, r5, #0x0
+ bl FUN_02021A20
+ pop {r4-r6, pc}
+_02075A86:
+ ldr r0, _02075B94 ; =0x0000069C
+ mov r1, #0x4b
+ ldr r0, [r4, r0]
+ bl FUN_0200A914
+ add r5, r0, #0x0
+ mov r0, #0x6a
+ lsl r0, r0, #0x4
+ ldr r0, [r4, r0]
+ mov r1, #0x1
+ mov r2, #0x5
+ bl FUN_0200AF50
+ mov r1, #0x6a
+ lsl r1, r1, #0x4
+ ldr r0, [r4, r1]
+ add r1, r1, #0x4
+ ldr r1, [r4, r1]
+ add r2, r5, #0x0
+ bl FUN_0200B7B8
+ add r0, r5, #0x0
+ bl FUN_02021A20
+ pop {r4-r6, pc}
+_02075AB8:
+ ldr r0, _02075B94 ; =0x0000069C
+ add r5, #0x6e
+ ldr r0, [r4, r0]
+ add r1, r5, #0x0
+ bl FUN_0200A914
+ add r5, r0, #0x0
+ mov r0, #0x6a
+ lsl r0, r0, #0x4
+ ldr r0, [r4, r0]
+ mov r1, #0x1
+ mov r2, #0x0
+ bl FUN_0200AF50
+ mov r1, #0x6a
+ lsl r1, r1, #0x4
+ ldr r0, [r4, r1]
+ add r1, r1, #0x4
+ ldr r1, [r4, r1]
+ add r2, r5, #0x0
+ bl FUN_0200B7B8
+ add r0, r5, #0x0
+ bl FUN_02021A20
+ pop {r4-r6, pc}
+_02075AEC:
+ ldr r0, _02075B94 ; =0x0000069C
+ add r5, #0x6e
+ ldr r0, [r4, r0]
+ add r1, r5, #0x0
+ bl FUN_0200A914
+ add r5, r0, #0x0
+ mov r0, #0x6a
+ lsl r0, r0, #0x4
+ mov r1, #0x1
+ ldr r0, [r4, r0]
+ add r2, r1, #0x0
+ bl FUN_0200AF50
+ mov r1, #0x6a
+ lsl r1, r1, #0x4
+ ldr r0, [r4, r1]
+ add r1, r1, #0x4
+ ldr r1, [r4, r1]
+ add r2, r5, #0x0
+ bl FUN_0200B7B8
+ add r0, r5, #0x0
+ bl FUN_02021A20
+ pop {r4-r6, pc}
+_02075B20:
+ ldr r0, _02075B94 ; =0x0000069C
+ add r5, #0x6e
+ ldr r0, [r4, r0]
+ add r1, r5, #0x0
+ bl FUN_0200A914
+ add r5, r0, #0x0
+ mov r0, #0x6a
+ lsl r0, r0, #0x4
+ ldr r0, [r4, r0]
+ mov r1, #0x1
+ mov r2, #0x2
+ bl FUN_0200AF50
+ mov r1, #0x6a
+ lsl r1, r1, #0x4
+ ldr r0, [r4, r1]
+ add r1, r1, #0x4
+ ldr r1, [r4, r1]
+ add r2, r5, #0x0
+ bl FUN_0200B7B8
+ add r0, r5, #0x0
+ bl FUN_02021A20
+ pop {r4-r6, pc}
+_02075B54:
+ ldr r0, _02075B94 ; =0x0000069C
+ add r5, #0x6e
+ ldr r0, [r4, r0]
+ add r1, r5, #0x0
+ bl FUN_0200A914
+ add r5, r0, #0x0
+ mov r0, #0x6a
+ lsl r0, r0, #0x4
+ ldr r0, [r4, r0]
+ mov r1, #0x1
+ mov r2, #0x3
+ bl FUN_0200AF50
+ mov r1, #0x6a
+ lsl r1, r1, #0x4
+ ldr r0, [r4, r1]
+ add r1, r1, #0x4
+ ldr r1, [r4, r1]
+ add r2, r5, #0x0
+ bl FUN_0200B7B8
+ add r0, r5, #0x0
+ bl FUN_02021A20
+ pop {r4-r6, pc}
+_02075B88:
+ ldr r0, _02075B94 ; =0x0000069C
+ b _02075B98
+ .balign 4
+_02075B8C: .word 0x000005A4
+_02075B90: .word 0x00000B25
+_02075B94: .word 0x0000069C
+_02075B98:
+ add r5, #0x6e
+ ldr r0, [r4, r0]
+ add r1, r5, #0x0
+ bl FUN_0200A914
+ add r5, r0, #0x0
+ mov r0, #0x6a
+ lsl r0, r0, #0x4
+ ldr r0, [r4, r0]
+ mov r1, #0x1
+ mov r2, #0x4
+ bl FUN_0200AF50
+ mov r1, #0x6a
+ lsl r1, r1, #0x4
+ ldr r0, [r4, r1]
+ add r1, r1, #0x4
+ ldr r1, [r4, r1]
+ add r2, r5, #0x0
+ bl FUN_0200B7B8
+ add r0, r5, #0x0
+ bl FUN_02021A20
+ pop {r4-r6, pc}
+_02075BCA:
+ ldr r0, _02075C50 ; =0x0000069C
+ add r5, #0x6e
+ ldr r0, [r4, r0]
+ add r1, r5, #0x0
+ bl FUN_0200A914
+ add r5, r0, #0x0
+ mov r0, #0x6a
+ lsl r0, r0, #0x4
+ ldr r0, [r4, r0]
+ mov r1, #0x1
+ mov r2, #0x5
+ bl FUN_0200AF50
+ mov r1, #0x6a
+ lsl r1, r1, #0x4
+ ldr r0, [r4, r1]
+ add r1, r1, #0x4
+ ldr r1, [r4, r1]
+ add r2, r5, #0x0
+ bl FUN_0200B7B8
+ add r0, r5, #0x0
+ bl FUN_02021A20
+ pop {r4-r6, pc}
+_02075BFE:
+ ldr r0, _02075C50 ; =0x0000069C
+ mov r1, #0x48
+ ldr r0, [r4, r0]
+ bl FUN_0200A914
+ add r6, r0, #0x0
+ mov r0, #0x6a
+ lsl r0, r0, #0x4
+ ldr r0, [r4, r0]
+ mov r1, #0x0
+ add r2, r5, #0x0
+ bl FUN_0200AD5C
+ mov r1, #0x6a
+ lsl r1, r1, #0x4
+ ldr r0, [r4, r1]
+ add r1, r1, #0x4
+ ldr r1, [r4, r1]
+ add r2, r6, #0x0
+ bl FUN_0200B7B8
+ add r0, r6, #0x0
+ bl FUN_02021A20
+ pop {r4-r6, pc}
+_02075C30:
+ ldr r2, _02075C50 ; =0x0000069C
+ mov r1, #0x45
+ ldr r0, [r4, r2]
+ add r2, #0x8
+ ldr r2, [r4, r2]
+ bl FUN_0200A8E0
+ pop {r4-r6, pc}
+_02075C40:
+ ldr r2, _02075C50 ; =0x0000069C
+ mov r1, #0x69
+ ldr r0, [r4, r2]
+ add r2, #0x8
+ ldr r2, [r4, r2]
+ bl FUN_0200A8E0
+ pop {r4-r6, pc}
+ .balign 4
+_02075C50: .word 0x0000069C
+
+ thumb_func_start FUN_02075C54
+FUN_02075C54: ; 0x02075C54
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r0, _02075CCC ; =0x000005A4
+ ldr r0, [r4, r0]
+ ldrh r0, [r0, #0x24]
+ bl FUN_0207550C
+ cmp r0, #0x1c
+ bhi _02075CCA
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02075C72: ; jump table (using 16-bit offset)
+ .short _02075CCA - _02075C72 - 2; case 0
+ .short _02075CCA - _02075C72 - 2; case 1
+ .short _02075CAC - _02075C72 - 2; case 2
+ .short _02075CB4 - _02075C72 - 2; case 3
+ .short _02075CB4 - _02075C72 - 2; case 4
+ .short _02075CB4 - _02075C72 - 2; case 5
+ .short _02075CB4 - _02075C72 - 2; case 6
+ .short _02075CB4 - _02075C72 - 2; case 7
+ .short _02075CB4 - _02075C72 - 2; case 8
+ .short _02075CB4 - _02075C72 - 2; case 9
+ .short _02075CB4 - _02075C72 - 2; case 10
+ .short _02075CC4 - _02075C72 - 2; case 11
+ .short _02075CB4 - _02075C72 - 2; case 12
+ .short _02075CB4 - _02075C72 - 2; case 13
+ .short _02075CB4 - _02075C72 - 2; case 14
+ .short _02075CB4 - _02075C72 - 2; case 15
+ .short _02075CB4 - _02075C72 - 2; case 16
+ .short _02075CB4 - _02075C72 - 2; case 17
+ .short _02075CBC - _02075C72 - 2; case 18
+ .short _02075CBC - _02075C72 - 2; case 19
+ .short _02075CBC - _02075C72 - 2; case 20
+ .short _02075CBC - _02075C72 - 2; case 21
+ .short _02075CBC - _02075C72 - 2; case 22
+ .short _02075CBC - _02075C72 - 2; case 23
+ .short _02075CCA - _02075C72 - 2; case 24
+ .short _02075CB4 - _02075C72 - 2; case 25
+ .short _02075CB4 - _02075C72 - 2; case 26
+ .short _02075CB4 - _02075C72 - 2; case 27
+ .short _02075CCA - _02075C72 - 2; case 28
+_02075CAC:
+ ldr r1, _02075CD0 ; =FUN_0207640C
+ ldr r0, _02075CD4 ; =0x00000B14
+ str r1, [r4, r0]
+ pop {r4, pc}
+_02075CB4:
+ ldr r1, _02075CD8 ; =FUN_02075D20
+ ldr r0, _02075CD4 ; =0x00000B14
+ str r1, [r4, r0]
+ pop {r4, pc}
+_02075CBC:
+ ldr r1, _02075CDC ; =FUN_02075DC0
+ ldr r0, _02075CD4 ; =0x00000B14
+ str r1, [r4, r0]
+ pop {r4, pc}
+_02075CC4:
+ ldr r1, _02075CE0 ; =FUN_02075F60
+ ldr r0, _02075CD4 ; =0x00000B14
+ str r1, [r4, r0]
+_02075CCA:
+ pop {r4, pc}
+ .balign 4
+_02075CCC: .word 0x000005A4
+_02075CD0: .word FUN_0207640C
+_02075CD4: .word 0x00000B14
+_02075CD8: .word FUN_02075D20
+_02075CDC: .word FUN_02075DC0
+_02075CE0: .word FUN_02075F60
+
+ thumb_func_start FUN_02075CE4
+FUN_02075CE4: ; 0x02075CE4
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r0, _02075D14 ; =0x00000B24
+ ldrb r0, [r4, r0]
+ bl FUN_0201BD70
+ cmp r0, #0x0
+ beq _02075CF8
+ mov r0, #0x5
+ pop {r4, pc}
+_02075CF8:
+ ldr r0, _02075D18 ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #0x3
+ tst r0, r1
+ beq _02075D10
+ ldr r0, _02075D1C ; =0x000005A4
+ mov r1, #0x0
+ ldr r0, [r4, r0]
+ add r0, #0x23
+ strb r1, [r0, #0x0]
+ mov r0, #0x1b
+ pop {r4, pc}
+_02075D10:
+ mov r0, #0x5
+ pop {r4, pc}
+ .balign 4
+_02075D14: .word 0x00000B24
+_02075D18: .word 0x021C48B8
+_02075D1C: .word 0x000005A4
+
+ thumb_func_start FUN_02075D20
+FUN_02075D20: ; 0x02075D20
+ push {r3-r5, lr}
+ sub sp, #0x8
+ ldr r1, _02075DA8 ; =0x000005A4
+ add r5, r0, #0x0
+ ldr r4, [r5, r1]
+ bl FUN_020772CC
+ str r0, [sp, #0x0]
+ mov r0, #0xc
+ str r0, [sp, #0x4]
+ ldr r2, _02075DAC ; =0x00000B25
+ ldrh r1, [r4, #0x24]
+ ldrb r2, [r5, r2]
+ ldr r0, [r4, #0x0]
+ mov r3, #0x0
+ bl FUN_02084DD0
+ ldr r1, _02075DAC ; =0x00000B25
+ add r0, r5, #0x0
+ ldrb r1, [r5, r1]
+ bl FUN_0207008C
+ ldr r1, _02075DAC ; =0x00000B25
+ add r0, r5, #0x0
+ ldrb r1, [r5, r1]
+ bl FUN_02072D1C
+ ldr r1, _02075DAC ; =0x00000B25
+ add r0, r5, #0x0
+ ldrb r1, [r5, r1]
+ bl FUN_02072DDC
+ ldr r0, _02075DAC ; =0x00000B25
+ mov r2, #0x2c
+ ldrb r1, [r5, r0]
+ add r0, r5, #0x0
+ mul r2, r1
+ add r3, r5, r2
+ ldr r2, _02075DB0 ; =0x0000070E
+ ldrh r2, [r3, r2]
+ lsl r2, r2, #0x14
+ lsr r2, r2, #0x14
+ lsl r2, r2, #0x18
+ lsr r2, r2, #0x18
+ bl FUN_02073A4C
+ ldr r1, _02075DA8 ; =0x000005A4
+ add r0, r5, #0x0
+ ldr r1, [r5, r1]
+ mov r2, #0x0
+ ldrh r1, [r1, #0x24]
+ bl FUN_020757F4
+ mov r1, #0x0
+ add r0, r5, #0x0
+ mvn r1, r1
+ mov r2, #0x1
+ bl FUN_020731E8
+ ldr r0, _02075DB4 ; =0x000005EC
+ bl FUN_020054C8
+ ldr r1, _02075DB8 ; =FUN_02075CE4
+ ldr r0, _02075DBC ; =0x00000B14
+ str r1, [r5, r0]
+ mov r0, #0x5
+ add sp, #0x8
+ pop {r3-r5, pc}
+ .balign 4
+_02075DA8: .word 0x000005A4
+_02075DAC: .word 0x00000B25
+_02075DB0: .word 0x0000070E
+_02075DB4: .word 0x000005EC
+_02075DB8: .word FUN_02075CE4
+_02075DBC: .word 0x00000B14
+
+ thumb_func_start FUN_02075DC0
+FUN_02075DC0: ; 0x02075DC0
+ push {r3-r7, lr}
+ sub sp, #0x20
+ add r5, r0, #0x0
+ ldr r0, _02075F4C ; =0x000005A4
+ ldr r1, _02075F50 ; =0x00000B25
+ ldr r0, [r5, r0]
+ ldrb r1, [r5, r1]
+ ldr r0, [r0, #0x0]
+ bl FUN_0206B9B0
+ mov r1, #0xd
+ mov r2, #0x0
+ add r4, r0, #0x0
+ bl FUN_020671BC
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x1c]
+ add r0, r4, #0x0
+ mov r1, #0xe
+ mov r2, #0x0
+ bl FUN_020671BC
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x18]
+ add r0, r4, #0x0
+ mov r1, #0xf
+ mov r2, #0x0
+ bl FUN_020671BC
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x14]
+ add r0, r4, #0x0
+ mov r1, #0x10
+ mov r2, #0x0
+ bl FUN_020671BC
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x10]
+ add r0, r4, #0x0
+ mov r1, #0x11
+ mov r2, #0x0
+ bl FUN_020671BC
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0xc]
+ add r0, r4, #0x0
+ mov r1, #0x12
+ mov r2, #0x0
+ bl FUN_020671BC
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x8]
+ add r0, r4, #0x0
+ mov r1, #0x9
+ mov r2, #0x0
+ bl FUN_020671BC
+ lsl r0, r0, #0x18
+ lsr r7, r0, #0x18
+ ldr r0, _02075F4C ; =0x000005A4
+ ldr r6, [r5, r0]
+ add r0, r5, #0x0
+ bl FUN_020772CC
+ str r0, [sp, #0x0]
+ mov r0, #0xc
+ str r0, [sp, #0x4]
+ ldr r2, _02075F50 ; =0x00000B25
+ ldrh r1, [r6, #0x24]
+ ldrb r2, [r5, r2]
+ ldr r0, [r6, #0x0]
+ mov r3, #0x0
+ bl FUN_02084DD0
+ ldr r1, _02075F50 ; =0x00000B25
+ add r0, r5, #0x0
+ ldrb r1, [r5, r1]
+ bl FUN_0207008C
+ ldr r1, _02075F50 ; =0x00000B25
+ add r0, r5, #0x0
+ ldrb r1, [r5, r1]
+ bl FUN_02072D1C
+ ldr r1, _02075F50 ; =0x00000B25
+ add r0, r5, #0x0
+ ldrb r1, [r5, r1]
+ bl FUN_02072DDC
+ ldr r0, _02075F50 ; =0x00000B25
+ mov r2, #0x2c
+ ldrb r1, [r5, r0]
+ add r0, r5, #0x0
+ mul r2, r1
+ add r3, r5, r2
+ ldr r2, _02075F54 ; =0x0000070E
+ ldrh r2, [r3, r2]
+ lsl r2, r2, #0x14
+ lsr r2, r2, #0x14
+ lsl r2, r2, #0x18
+ lsr r2, r2, #0x18
+ bl FUN_02073A4C
+ add r0, r4, #0x0
+ mov r1, #0xd
+ mov r2, #0x0
+ bl FUN_020671BC
+ ldr r1, [sp, #0x1c]
+ cmp r1, r0
+ bne _02075EFA
+ add r0, r4, #0x0
+ mov r1, #0xe
+ mov r2, #0x0
+ bl FUN_020671BC
+ ldr r1, [sp, #0x18]
+ cmp r1, r0
+ bne _02075EFA
+ add r0, r4, #0x0
+ mov r1, #0xf
+ mov r2, #0x0
+ bl FUN_020671BC
+ ldr r1, [sp, #0x14]
+ cmp r1, r0
+ bne _02075EFA
+ add r0, r4, #0x0
+ mov r1, #0x10
+ mov r2, #0x0
+ bl FUN_020671BC
+ ldr r1, [sp, #0x10]
+ cmp r1, r0
+ bne _02075EFA
+ add r0, r4, #0x0
+ mov r1, #0x11
+ mov r2, #0x0
+ bl FUN_020671BC
+ ldr r1, [sp, #0xc]
+ cmp r1, r0
+ bne _02075EFA
+ add r0, r4, #0x0
+ mov r1, #0x12
+ mov r2, #0x0
+ bl FUN_020671BC
+ ldr r1, [sp, #0x8]
+ cmp r1, r0
+ beq _02075F26
+_02075EFA:
+ add r0, r4, #0x0
+ mov r1, #0x9
+ mov r2, #0x0
+ bl FUN_020671BC
+ cmp r7, r0
+ ldr r1, _02075F4C ; =0x000005A4
+ beq _02075F18
+ ldr r1, [r5, r1]
+ add r0, r5, #0x0
+ ldrh r1, [r1, #0x24]
+ mov r2, #0x0
+ bl FUN_020757F4
+ b _02075F34
+_02075F18:
+ ldr r1, [r5, r1]
+ add r0, r5, #0x0
+ ldrh r1, [r1, #0x24]
+ mov r2, #0x1
+ bl FUN_020757F4
+ b _02075F34
+_02075F26:
+ ldr r1, _02075F4C ; =0x000005A4
+ add r0, r5, #0x0
+ ldr r1, [r5, r1]
+ mov r2, #0x2
+ ldrh r1, [r1, #0x24]
+ bl FUN_020757F4
+_02075F34:
+ mov r1, #0x0
+ add r0, r5, #0x0
+ mvn r1, r1
+ mov r2, #0x1
+ bl FUN_020731E8
+ ldr r1, _02075F58 ; =FUN_02075CE4
+ ldr r0, _02075F5C ; =0x00000B14
+ str r1, [r5, r0]
+ mov r0, #0x5
+ add sp, #0x20
+ pop {r3-r7, pc}
+ .balign 4
+_02075F4C: .word 0x000005A4
+_02075F50: .word 0x00000B25
+_02075F54: .word 0x0000070E
+_02075F58: .word FUN_02075CE4
+_02075F5C: .word 0x00000B14
+
+ thumb_func_start FUN_02075F60
+FUN_02075F60: ; 0x02075F60
+ push {r4-r7, lr}
+ sub sp, #0xc
+ ldr r1, _02076080 ; =0x000005A4
+ add r5, r0, #0x0
+ ldr r4, [r5, r1]
+ bl FUN_020772CC
+ str r0, [sp, #0x0]
+ mov r0, #0xc
+ str r0, [sp, #0x4]
+ ldr r2, _02076084 ; =0x00000B25
+ ldrh r1, [r4, #0x24]
+ ldrb r2, [r5, r2]
+ ldr r0, [r4, #0x0]
+ mov r3, #0x0
+ bl FUN_02084DD0
+ ldr r0, _02076080 ; =0x000005A4
+ ldr r1, _02076084 ; =0x00000B25
+ ldr r0, [r5, r0]
+ ldrb r1, [r5, r1]
+ ldr r0, [r0, #0x0]
+ bl FUN_0206B9B0
+ mov r1, #0xa2
+ mov r2, #0x0
+ str r0, [sp, #0x8]
+ bl FUN_020671BC
+ add r4, r0, #0x0
+ ldr r0, _02076084 ; =0x00000B25
+ ldrb r1, [r5, r0]
+ mov r0, #0x2c
+ mul r0, r1
+ add r1, r5, r0
+ ldr r0, _02076088 ; =0x00000706
+ ldrh r1, [r1, r0]
+ cmp r1, #0x0
+ bne _02075FBC
+ sub r0, #0x6a
+ ldr r0, [r5, r0]
+ mov r1, #0x46
+ bl FUN_0200A914
+ add r7, r0, #0x0
+ b _02075FDA
+_02075FBC:
+ cmp r4, r1
+ bne _02075FCE
+ sub r0, #0x6a
+ ldr r0, [r5, r0]
+ mov r1, #0x47
+ bl FUN_0200A914
+ add r7, r0, #0x0
+ b _02075FDA
+_02075FCE:
+ sub r0, #0x6a
+ ldr r0, [r5, r0]
+ mov r1, #0x40
+ bl FUN_0200A914
+ add r7, r0, #0x0
+_02075FDA:
+ ldr r0, [sp, #0x8]
+ bl FUN_020690E4
+ add r2, r0, #0x0
+ mov r0, #0x6a
+ lsl r0, r0, #0x4
+ ldr r0, [r5, r0]
+ mov r1, #0x0
+ bl FUN_0200ACF8
+ mov r0, #0x0
+ mov r3, #0x6a
+ str r0, [sp, #0x0]
+ mov r1, #0x1
+ ldr r2, _02076084 ; =0x00000B25
+ str r1, [sp, #0x4]
+ ldrb r6, [r5, r2]
+ mov r2, #0x2c
+ lsl r3, r3, #0x4
+ mul r2, r6
+ ldr r0, [r5, r3]
+ add r2, r5, r2
+ add r3, #0x66
+ ldrh r2, [r2, r3]
+ mov r3, #0x3
+ sub r2, r4, r2
+ bl FUN_0200AD38
+ mov r1, #0x6a
+ lsl r1, r1, #0x4
+ ldr r0, [r5, r1]
+ add r1, r1, #0x4
+ ldr r1, [r5, r1]
+ add r2, r7, #0x0
+ bl FUN_0200B7B8
+ add r0, r7, #0x0
+ bl FUN_02021A20
+ ldr r0, [sp, #0x8]
+ bl FUN_0207C2D4
+ add r4, r0, #0x0
+ ldr r1, _02076084 ; =0x00000B25
+ lsl r2, r4, #0x18
+ ldrb r1, [r5, r1]
+ add r0, r5, #0x0
+ lsr r2, r2, #0x18
+ bl FUN_02073A4C
+ cmp r4, #0x7
+ bne _02076062
+ ldr r1, _02076084 ; =0x00000B25
+ ldr r0, _0207608C ; =0x0000070E
+ ldrb r3, [r5, r1]
+ add r2, r5, r0
+ mov r0, #0x2c
+ mul r0, r3
+ ldrh r4, [r2, r0]
+ ldr r3, _02076090 ; =0xFFFFF000
+ and r4, r3
+ mov r3, #0x7
+ orr r3, r4
+ strh r3, [r2, r0]
+ ldrb r1, [r5, r1]
+ add r0, r5, #0x0
+ bl FUN_02072B20
+_02076062:
+ ldr r1, _02076084 ; =0x00000B25
+ add r0, r5, #0x0
+ ldrb r1, [r5, r1]
+ bl FUN_020709FC
+ ldr r1, _02076094 ; =FUN_020760A0
+ ldr r0, _02076098 ; =0x00000B14
+ str r1, [r5, r0]
+ ldr r0, _0207609C ; =0x000005EC
+ bl FUN_020054C8
+ mov r0, #0x5
+ add sp, #0xc
+ pop {r4-r7, pc}
+ nop
+_02076080: .word 0x000005A4
+_02076084: .word 0x00000B25
+_02076088: .word 0x00000706
+_0207608C: .word 0x0000070E
+_02076090: .word 0xFFFFF000
+_02076094: .word FUN_020760A0
+_02076098: .word 0x00000B14
+_0207609C: .word 0x000005EC
+
+ thumb_func_start FUN_020760A0
+FUN_020760A0: ; 0x020760A0
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ ldr r0, _02076130 ; =0x000005A4
+ ldr r1, _02076134 ; =0x00000B25
+ ldr r0, [r5, r0]
+ ldrb r1, [r5, r1]
+ ldr r0, [r0, #0x0]
+ bl FUN_0206B9B0
+ mov r1, #0xa2
+ mov r2, #0x0
+ bl FUN_020671BC
+ ldr r1, _02076134 ; =0x00000B25
+ add r4, r0, #0x0
+ ldrb r2, [r5, r1]
+ ldr r0, _02076138 ; =0x00000706
+ mov r1, #0x2c
+ add r3, r2, #0x0
+ add r0, r5, r0
+ mul r3, r1
+ ldrh r1, [r0, r3]
+ cmp r4, r1
+ beq _020760D4
+ add r1, r1, #0x1
+ strh r1, [r0, r3]
+_020760D4:
+ ldr r1, _02076134 ; =0x00000B25
+ add r0, r5, #0x0
+ ldrb r1, [r5, r1]
+ bl FUN_02072BBC
+ ldr r1, _02076134 ; =0x00000B25
+ add r0, r5, #0x4
+ ldrb r2, [r5, r1]
+ lsl r1, r2, #0x2
+ add r1, r2, r1
+ add r1, r1, #0x3
+ lsl r1, r1, #0x4
+ add r0, r0, r1
+ mov r1, #0x0
+ bl FUN_02019620
+ ldr r1, _02076134 ; =0x00000B25
+ add r0, r5, #0x0
+ ldrb r1, [r5, r1]
+ bl FUN_02072B7C
+ ldr r1, _02076134 ; =0x00000B25
+ add r0, r5, #0x0
+ ldrb r1, [r5, r1]
+ bl FUN_02072C28
+ ldr r0, _02076134 ; =0x00000B25
+ mov r1, #0x2c
+ ldrb r0, [r5, r0]
+ add r2, r0, #0x0
+ mul r2, r1
+ ldr r0, _02076138 ; =0x00000706
+ add r2, r5, r2
+ ldrh r0, [r2, r0]
+ cmp r4, r0
+ bne _0207612C
+ add r0, r5, #0x0
+ sub r1, #0x2d
+ mov r2, #0x1
+ bl FUN_020731E8
+ ldr r1, _0207613C ; =FUN_02075CE4
+ ldr r0, _02076140 ; =0x00000B14
+ str r1, [r5, r0]
+_0207612C:
+ mov r0, #0x5
+ pop {r3-r5, pc}
+ .balign 4
+_02076130: .word 0x000005A4
+_02076134: .word 0x00000B25
+_02076138: .word 0x00000706
+_0207613C: .word FUN_02075CE4
+_02076140: .word 0x00000B14
+
+ thumb_func_start FUN_02076144
+FUN_02076144: ; 0x02076144
+ push {r3, lr}
+ mov r1, #0x18
+ mov r2, #0xc
+ bl FUN_0206E7B8
+ cmp r0, #0x0
+ beq _02076156
+ mov r0, #0x1
+ pop {r3, pc}
+_02076156:
+ mov r0, #0x0
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_0207615C
+FUN_0207615C: ; 0x0207615C
+ push {r3-r6}
+ cmp r1, #0x6
+ blo _02076168
+ mov r0, #0xff
+ pop {r3-r6}
+ bx lr
+_02076168:
+ bhs _02076194
+ ldr r2, _0207619C ; =0x00000706
+ mov r3, #0x2c
+ add r4, r2, #0x0
+ add r4, #0x23
+_02076172:
+ add r5, r1, #0x0
+ mul r5, r3
+ add r6, r0, r5
+ ldrb r5, [r6, r4]
+ cmp r5, #0x0
+ beq _0207618A
+ ldrh r5, [r6, r2]
+ cmp r5, #0x0
+ bne _0207618A
+ add r0, r1, #0x0
+ pop {r3-r6}
+ bx lr
+_0207618A:
+ add r1, r1, #0x1
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ cmp r1, #0x6
+ blo _02076172
+_02076194:
+ mov r0, #0xff
+ pop {r3-r6}
+ bx lr
+ nop
+_0207619C: .word 0x00000706
+
+ thumb_func_start FUN_020761A0
+FUN_020761A0: ; 0x020761A0
+ push {r3-r7, lr}
+ ldr r1, _020763DC ; =0x00000B22
+ add r4, r0, #0x0
+ ldrb r2, [r4, r1]
+ cmp r2, #0x3
+ bls _020761AE
+ b _020763D6
+_020761AE:
+ add r2, r2, r2
+ add r2, pc
+ ldrh r2, [r2, #0x6]
+ lsl r2, r2, #0x10
+ asr r2, r2, #0x10
+ add pc, r2
+_020761BA: ; jump table (using 16-bit offset)
+ .short _020761C2 - _020761BA - 2; case 0
+ .short _02076212 - _020761BA - 2; case 1
+ .short _020762DC - _020761BA - 2; case 2
+ .short _02076360 - _020761BA - 2; case 3
+_020761C2:
+ mov r1, #0x0
+ bl FUN_0207615C
+ ldr r1, _020763E0 ; =0x00000B25
+ strb r0, [r4, r1]
+ ldrb r0, [r4, r1]
+ cmp r0, #0xff
+ bne _02076206
+ ldr r2, _020763E4 ; =0x0000069C
+ mov r1, #0x69
+ ldr r0, [r4, r2]
+ add r2, #0x8
+ ldr r2, [r4, r2]
+ bl FUN_0200A8E0
+ mov r1, #0x0
+ add r0, r4, #0x0
+ mvn r1, r1
+ mov r2, #0x1
+ bl FUN_020731E8
+ ldr r1, _020763E8 ; =FUN_02075CE4
+ ldr r0, _020763EC ; =0x00000B14
+ mov r2, #0x1
+ str r1, [r4, r0]
+ add r0, r4, #0x0
+ mov r1, #0x0
+ bl FUN_02073CB4
+ ldr r0, _020763E0 ; =0x00000B25
+ mov r1, #0x7
+ strb r1, [r4, r0]
+ mov r0, #0x5
+ pop {r3-r7, pc}
+_02076206:
+ cmp r0, #0x0
+ beq _02076212
+ add r0, r4, #0x0
+ mov r1, #0x0
+ bl FUN_020709FC
+_02076212:
+ ldr r0, _020763F0 ; =0x000005A4
+ ldr r1, _020763E0 ; =0x00000B25
+ ldr r0, [r4, r0]
+ ldrb r1, [r4, r1]
+ ldr r0, [r0, #0x0]
+ bl FUN_0206B9B0
+ add r5, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_020772CC
+ add r3, r0, #0x0
+ mov r0, #0xc
+ str r0, [sp, #0x0]
+ ldr r1, _020763F0 ; =0x000005A4
+ add r0, r5, #0x0
+ ldr r1, [r4, r1]
+ mov r2, #0x0
+ ldrh r1, [r1, #0x24]
+ bl FUN_02084810
+ add r0, r5, #0x0
+ mov r1, #0xa2
+ mov r2, #0x0
+ bl FUN_020671BC
+ ldr r0, _020763E4 ; =0x0000069C
+ mov r1, #0x46
+ ldr r0, [r4, r0]
+ bl FUN_0200A914
+ add r6, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_020690E4
+ add r2, r0, #0x0
+ mov r0, #0x6a
+ lsl r0, r0, #0x4
+ ldr r0, [r4, r0]
+ mov r1, #0x0
+ bl FUN_0200ACF8
+ mov r1, #0x6a
+ lsl r1, r1, #0x4
+ ldr r0, [r4, r1]
+ add r1, r1, #0x4
+ ldr r1, [r4, r1]
+ add r2, r6, #0x0
+ bl FUN_0200B7B8
+ add r0, r6, #0x0
+ bl FUN_02021A20
+ ldr r7, _020763E0 ; =0x00000B25
+ ldr r3, _020763F4 ; =0x0000070E
+ ldrb r5, [r4, r7]
+ mov r2, #0x2c
+ add r1, r4, r3
+ add r0, r5, #0x0
+ mul r0, r2
+ ldrh r6, [r1, r0]
+ ldr r5, _020763F8 ; =0xFFFFF000
+ and r6, r5
+ mov r5, #0x7
+ orr r5, r6
+ strh r5, [r1, r0]
+ ldrb r1, [r4, r7]
+ add r0, r4, #0x0
+ mul r2, r1
+ add r2, r4, r2
+ ldrh r2, [r2, r3]
+ lsl r2, r2, #0x14
+ lsr r2, r2, #0x14
+ lsl r2, r2, #0x18
+ lsr r2, r2, #0x18
+ bl FUN_02073A4C
+ add r1, r7, #0x0
+ ldrb r1, [r4, r1]
+ add r0, r4, #0x0
+ bl FUN_02072B20
+ add r1, r7, #0x0
+ ldrb r1, [r4, r1]
+ add r0, r4, #0x0
+ bl FUN_020709FC
+ add r1, r7, #0x0
+ ldrb r1, [r4, r1]
+ add r0, r4, #0x0
+ mov r2, #0x1
+ bl FUN_02073CB4
+ ldr r0, _020763FC ; =0x000005EC
+ bl FUN_020054C8
+ sub r0, r7, #0x3
+ ldrb r1, [r4, r0]
+ add r1, r1, #0x1
+ strb r1, [r4, r0]
+ b _020763D6
+_020762DC:
+ ldr r0, _020763F0 ; =0x000005A4
+ add r1, r1, #0x3
+ ldr r0, [r4, r0]
+ ldrb r1, [r4, r1]
+ ldr r0, [r0, #0x0]
+ bl FUN_0206B9B0
+ mov r1, #0xa2
+ mov r2, #0x0
+ bl FUN_020671BC
+ ldr r2, _020763E0 ; =0x00000B25
+ add r5, r0, #0x0
+ ldr r0, _02076400 ; =0x00000706
+ ldrb r3, [r4, r2]
+ add r1, r4, r0
+ mov r0, #0x2c
+ mul r0, r3
+ ldrh r3, [r1, r0]
+ add r3, r3, #0x1
+ strh r3, [r1, r0]
+ ldrb r1, [r4, r2]
+ add r0, r4, #0x0
+ bl FUN_02072BBC
+ ldr r1, _020763E0 ; =0x00000B25
+ add r0, r4, #0x4
+ ldrb r2, [r4, r1]
+ lsl r1, r2, #0x2
+ add r1, r2, r1
+ add r1, r1, #0x3
+ lsl r1, r1, #0x4
+ add r0, r0, r1
+ mov r1, #0x0
+ bl FUN_02019620
+ ldr r1, _020763E0 ; =0x00000B25
+ add r0, r4, #0x0
+ ldrb r1, [r4, r1]
+ bl FUN_02072B7C
+ ldr r1, _020763E0 ; =0x00000B25
+ add r0, r4, #0x0
+ ldrb r1, [r4, r1]
+ bl FUN_02072C28
+ ldr r0, _020763E0 ; =0x00000B25
+ mov r1, #0x2c
+ ldrb r0, [r4, r0]
+ add r2, r0, #0x0
+ mul r2, r1
+ ldr r0, _02076400 ; =0x00000706
+ add r2, r4, r2
+ ldrh r0, [r2, r0]
+ cmp r5, r0
+ bne _020763D6
+ add r0, r4, #0x0
+ sub r1, #0x2d
+ mov r2, #0x1
+ bl FUN_020731E8
+ ldr r0, _020763DC ; =0x00000B22
+ ldrb r1, [r4, r0]
+ add r1, r1, #0x1
+ strb r1, [r4, r0]
+ b _020763D6
+_02076360:
+ add r0, r1, #0x2
+ ldrb r0, [r4, r0]
+ bl FUN_0201BD70
+ cmp r0, #0x0
+ bne _020763D6
+ ldr r0, _02076404 ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #0x3
+ tst r0, r1
+ beq _020763D6
+ ldr r0, _02076408 ; =0x000005DC
+ bl FUN_020054C8
+ ldr r0, _020763E0 ; =0x00000B25
+ ldrb r5, [r4, r0]
+ add r0, r4, #0x0
+ add r1, r5, #0x1
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ bl FUN_0207615C
+ ldr r1, _020763E0 ; =0x00000B25
+ strb r0, [r4, r1]
+ ldrb r0, [r4, r1]
+ cmp r0, #0xff
+ beq _020763B2
+ mov r0, #0x89
+ lsl r0, r0, #0x2
+ add r0, r4, r0
+ mov r1, #0x0
+ bl FUN_0200D0E0
+ add r0, r4, #0x0
+ add r1, r5, #0x0
+ bl FUN_020709FC
+ ldr r0, _020763DC ; =0x00000B22
+ mov r1, #0x1
+ strb r1, [r4, r0]
+ b _020763D6
+_020763B2:
+ ldr r0, _020763F0 ; =0x000005A4
+ mov r2, #0x1
+ ldr r1, [r4, r0]
+ mov r3, #0xc
+ ldr r0, [r1, #0x4]
+ ldrh r1, [r1, #0x24]
+ bl FUN_0206EDD4
+ ldr r0, _020763F0 ; =0x000005A4
+ mov r1, #0x0
+ ldr r0, [r4, r0]
+ add r0, #0x23
+ strb r1, [r0, #0x0]
+ ldr r0, _020763E0 ; =0x00000B25
+ mov r1, #0x7
+ strb r1, [r4, r0]
+ mov r0, #0x1b
+ pop {r3-r7, pc}
+_020763D6:
+ mov r0, #0x7
+ pop {r3-r7, pc}
+ nop
+_020763DC: .word 0x00000B22
+_020763E0: .word 0x00000B25
+_020763E4: .word 0x0000069C
+_020763E8: .word FUN_02075CE4
+_020763EC: .word 0x00000B14
+_020763F0: .word 0x000005A4
+_020763F4: .word 0x0000070E
+_020763F8: .word 0xFFFFF000
+_020763FC: .word 0x000005EC
+_02076400: .word 0x00000706
+_02076404: .word 0x021C48B8
+_02076408: .word 0x000005DC
+
+ thumb_func_start FUN_0207640C
+FUN_0207640C: ; 0x0207640C
+ push {r3-r7, lr}
+ sub sp, #0x8
+ add r5, r0, #0x0
+ ldr r0, _020765B0 ; =0x000005A4
+ ldr r1, _020765B4 ; =0x00000B25
+ ldr r0, [r5, r0]
+ ldrb r1, [r5, r1]
+ ldr r0, [r0, #0x0]
+ bl FUN_0206B9B0
+ mov r1, #0xa3
+ mov r2, #0x0
+ add r4, r0, #0x0
+ bl FUN_020671BC
+ ldr r1, _020765B8 ; =0x00000B28
+ mov r2, #0x0
+ strh r0, [r5, r1]
+ add r0, r4, #0x0
+ mov r1, #0xa4
+ bl FUN_020671BC
+ ldr r1, _020765BC ; =0x00000B2A
+ mov r2, #0x0
+ strh r0, [r5, r1]
+ add r0, r4, #0x0
+ mov r1, #0xa5
+ bl FUN_020671BC
+ ldr r1, _020765C0 ; =0x00000B2C
+ mov r2, #0x0
+ strh r0, [r5, r1]
+ add r0, r4, #0x0
+ mov r1, #0xa7
+ bl FUN_020671BC
+ ldr r1, _020765C4 ; =0x00000B2E
+ mov r2, #0x0
+ strh r0, [r5, r1]
+ add r0, r4, #0x0
+ mov r1, #0xa8
+ bl FUN_020671BC
+ mov r1, #0xb3
+ lsl r1, r1, #0x4
+ strh r0, [r5, r1]
+ add r0, r4, #0x0
+ mov r1, #0xa6
+ mov r2, #0x0
+ bl FUN_020671BC
+ ldr r1, _020765C8 ; =0x00000B32
+ strh r0, [r5, r1]
+ ldr r0, _020765B0 ; =0x000005A4
+ ldr r6, [r5, r0]
+ add r0, r5, #0x0
+ bl FUN_020772CC
+ str r0, [sp, #0x0]
+ mov r0, #0xc
+ str r0, [sp, #0x4]
+ ldr r2, _020765B4 ; =0x00000B25
+ ldrh r1, [r6, #0x24]
+ ldrb r2, [r5, r2]
+ ldr r0, [r6, #0x0]
+ mov r3, #0x0
+ bl FUN_02084DD0
+ add r0, r4, #0x0
+ mov r1, #0xa0
+ mov r2, #0x0
+ bl FUN_020671BC
+ ldr r1, _020765B4 ; =0x00000B25
+ ldrb r2, [r5, r1]
+ mov r1, #0x2c
+ mul r1, r2
+ add r2, r5, r1
+ ldr r1, _020765CC ; =0x0000070A
+ strh r0, [r2, r1]
+ add r0, r4, #0x0
+ mov r1, #0xa2
+ mov r2, #0x0
+ bl FUN_020671BC
+ ldr r1, _020765B4 ; =0x00000B25
+ ldrb r2, [r5, r1]
+ mov r1, #0x2c
+ mul r1, r2
+ add r2, r5, r1
+ ldr r1, _020765D0 ; =0x00000706
+ strh r0, [r2, r1]
+ add r0, r4, #0x0
+ mov r1, #0xa3
+ mov r2, #0x0
+ bl FUN_020671BC
+ ldr r1, _020765B4 ; =0x00000B25
+ ldrb r2, [r5, r1]
+ mov r1, #0x2c
+ mul r1, r2
+ add r2, r5, r1
+ ldr r1, _020765D4 ; =0x00000708
+ strh r0, [r2, r1]
+ sub r1, #0x6c
+ ldr r0, [r5, r1]
+ mov r1, #0xc1
+ bl FUN_0200A914
+ add r7, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_020690E4
+ add r2, r0, #0x0
+ mov r0, #0x6a
+ lsl r0, r0, #0x4
+ ldr r0, [r5, r0]
+ mov r1, #0x0
+ bl FUN_0200ACF8
+ mov r0, #0x0
+ mov r3, #0x6a
+ str r0, [sp, #0x0]
+ mov r1, #0x1
+ ldr r2, _020765B4 ; =0x00000B25
+ str r1, [sp, #0x4]
+ ldrb r6, [r5, r2]
+ mov r2, #0x2c
+ lsl r3, r3, #0x4
+ mul r2, r6
+ ldr r0, [r5, r3]
+ add r2, r5, r2
+ add r3, #0x6a
+ ldrh r2, [r2, r3]
+ mov r3, #0x3
+ bl FUN_0200AD38
+ mov r1, #0x6a
+ lsl r1, r1, #0x4
+ ldr r0, [r5, r1]
+ add r1, r1, #0x4
+ ldr r1, [r5, r1]
+ add r2, r7, #0x0
+ bl FUN_0200B7B8
+ add r0, r7, #0x0
+ bl FUN_02021A20
+ add r0, r4, #0x0
+ bl FUN_0207C2D4
+ add r4, r0, #0x0
+ ldr r1, _020765B4 ; =0x00000B25
+ lsl r2, r4, #0x18
+ ldrb r1, [r5, r1]
+ add r0, r5, #0x0
+ lsr r2, r2, #0x18
+ bl FUN_02073A4C
+ cmp r4, #0x7
+ bne _0207656E
+ ldr r1, _020765B4 ; =0x00000B25
+ ldr r0, _020765D8 ; =0x0000070E
+ ldrb r3, [r5, r1]
+ add r2, r5, r0
+ mov r0, #0x2c
+ mul r0, r3
+ ldrh r4, [r2, r0]
+ ldr r3, _020765DC ; =0xFFFFF000
+ and r4, r3
+ mov r3, #0x7
+ orr r3, r4
+ strh r3, [r2, r0]
+ ldrb r1, [r5, r1]
+ add r0, r5, #0x0
+ bl FUN_02072B20
+_0207656E:
+ ldr r1, _020765B4 ; =0x00000B25
+ add r0, r5, #0x0
+ ldrb r1, [r5, r1]
+ bl FUN_020709FC
+ ldr r0, _020765E0 ; =FUN_020760A0
+ ldr r1, _020765E4 ; =0x00000B14
+ str r0, [r5, r1]
+ add r1, #0x11
+ ldrb r1, [r5, r1]
+ add r0, r5, #0x0
+ bl FUN_02072D1C
+ ldr r1, _020765B4 ; =0x00000B25
+ add r0, r5, #0x0
+ ldrb r1, [r5, r1]
+ bl FUN_02072DDC
+ mov r1, #0x0
+ add r0, r5, #0x0
+ mvn r1, r1
+ mov r2, #0x1
+ bl FUN_020731E8
+ ldr r1, _020765E8 ; =FUN_020765EC
+ ldr r0, _020765E4 ; =0x00000B14
+ str r1, [r5, r0]
+ mov r1, #0x0
+ add r0, #0x13
+ strb r1, [r5, r0]
+ mov r0, #0x5
+ add sp, #0x8
+ pop {r3-r7, pc}
+ .balign 4
+_020765B0: .word 0x000005A4
+_020765B4: .word 0x00000B25
+_020765B8: .word 0x00000B28
+_020765BC: .word 0x00000B2A
+_020765C0: .word 0x00000B2C
+_020765C4: .word 0x00000B2E
+_020765C8: .word 0x00000B32
+_020765CC: .word 0x0000070A
+_020765D0: .word 0x00000706
+_020765D4: .word 0x00000708
+_020765D8: .word 0x0000070E
+_020765DC: .word 0xFFFFF000
+_020765E0: .word FUN_020760A0
+_020765E4: .word 0x00000B14
+_020765E8: .word FUN_020765EC
+
+ thumb_func_start FUN_020765EC
+FUN_020765EC: ; 0x020765EC
+ push {r3-r5, lr}
+ ldr r1, _0207686C ; =0x00000B27
+ add r4, r0, #0x0
+ ldrb r0, [r4, r1]
+ cmp r0, #0x6
+ bhi _020766A8
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02076604: ; jump table (using 16-bit offset)
+ .short _02076612 - _02076604 - 2; case 0
+ .short _0207663C - _02076604 - 2; case 1
+ .short _0207665A - _02076604 - 2; case 2
+ .short _02076680 - _02076604 - 2; case 3
+ .short _02076780 - _02076604 - 2; case 4
+ .short _020767A4 - _02076604 - 2; case 5
+ .short _02076814 - _02076604 - 2; case 6
+_02076612:
+ sub r0, r1, #0x3
+ ldrb r0, [r4, r0]
+ bl FUN_0201BD70
+ cmp r0, #0x0
+ bne _020766A8
+ ldr r0, _02076870 ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #0x3
+ tst r0, r1
+ beq _020766A8
+ ldr r0, _02076874 ; =0x000005DC
+ bl FUN_020054C8
+ add r0, r4, #0x0
+ bl FUN_020734C0
+ ldr r0, _0207686C ; =0x00000B27
+ mov r1, #0x1
+ strb r1, [r4, r0]
+ b _02076868
+_0207663C:
+ ldr r0, _02076870 ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #0x3
+ tst r0, r1
+ beq _020766A8
+ ldr r0, _02076874 ; =0x000005DC
+ bl FUN_020054C8
+ add r0, r4, #0x0
+ bl FUN_0207363C
+ ldr r0, _0207686C ; =0x00000B27
+ mov r1, #0x2
+ strb r1, [r4, r0]
+ b _02076868
+_0207665A:
+ ldr r0, _02076870 ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #0x3
+ tst r0, r1
+ beq _020766A8
+ ldr r0, _02076874 ; =0x000005DC
+ bl FUN_020054C8
+ add r0, r4, #0x0
+ bl FUN_020736F4
+ ldr r0, _0207686C ; =0x00000B27
+ mov r1, #0x3
+ strb r1, [r4, r0]
+ ldr r0, _02076878 ; =0x000005A4
+ mov r1, #0x0
+ ldr r0, [r4, r0]
+ str r1, [r0, #0x34]
+ b _02076868
+_02076680:
+ ldr r0, _02076878 ; =0x000005A4
+ sub r1, r1, #0x2
+ ldr r0, [r4, r0]
+ ldrb r1, [r4, r1]
+ ldr r0, [r0, #0x0]
+ bl FUN_0206B9B0
+ ldr r1, _02076878 ; =0x000005A4
+ add r5, r0, #0x0
+ ldr r2, [r4, r1]
+ add r1, r2, #0x0
+ add r1, #0x34
+ add r2, #0x26
+ bl FUN_02069818
+ cmp r0, #0x0
+ beq _020766B2
+ ldr r1, _0207687C ; =0x0000FFFE
+ cmp r0, r1
+ bne _020766AA
+_020766A8:
+ b _02076868
+_020766AA:
+ add r1, r1, #0x1
+ cmp r0, r1
+ beq _020766BA
+ b _02076724
+_020766B2:
+ ldr r0, _0207686C ; =0x00000B27
+ mov r1, #0x6
+ strb r1, [r4, r0]
+ b _02076868
+_020766BA:
+ add r0, r5, #0x0
+ bl FUN_020690E4
+ add r2, r0, #0x0
+ mov r0, #0x6a
+ lsl r0, r0, #0x4
+ ldr r0, [r4, r0]
+ mov r1, #0x0
+ bl FUN_0200ACF8
+ mov r2, #0x6a
+ lsl r2, r2, #0x4
+ ldr r0, [r4, r2]
+ sub r2, #0xfc
+ ldr r2, [r4, r2]
+ mov r1, #0x1
+ ldrh r2, [r2, #0x26]
+ bl FUN_0200AD5C
+ ldr r0, _02076880 ; =0x0000069C
+ mov r1, #0x34
+ ldr r0, [r4, r0]
+ bl FUN_0200A914
+ mov r1, #0x6a
+ add r5, r0, #0x0
+ lsl r1, r1, #0x4
+ ldr r0, [r4, r1]
+ add r1, r1, #0x4
+ ldr r1, [r4, r1]
+ add r2, r5, #0x0
+ bl FUN_0200B7B8
+ add r0, r5, #0x0
+ bl FUN_02021A20
+ mov r1, #0x0
+ add r0, r4, #0x0
+ mvn r1, r1
+ mov r2, #0x0
+ bl FUN_020731E8
+ ldr r0, _02076884 ; =FUN_02076950
+ ldr r1, _02076888 ; =0x00000B18
+ ldr r2, _0207688C ; =FUN_020769A4
+ str r0, [r4, r1]
+ add r0, r1, #0x4
+ str r2, [r4, r0]
+ mov r0, #0x16
+ add r1, #0xa
+ strb r0, [r4, r1]
+ mov r0, #0x14
+ pop {r3-r5, pc}
+_02076724:
+ add r0, r5, #0x0
+ bl FUN_020690E4
+ add r2, r0, #0x0
+ mov r0, #0x6a
+ lsl r0, r0, #0x4
+ ldr r0, [r4, r0]
+ mov r1, #0x0
+ bl FUN_0200ACF8
+ mov r2, #0x6a
+ lsl r2, r2, #0x4
+ ldr r0, [r4, r2]
+ sub r2, #0xfc
+ ldr r2, [r4, r2]
+ mov r1, #0x1
+ ldrh r2, [r2, #0x26]
+ bl FUN_0200AD5C
+ ldr r0, _02076880 ; =0x0000069C
+ mov r1, #0xc2
+ ldr r0, [r4, r0]
+ bl FUN_0200A914
+ mov r1, #0x6a
+ add r5, r0, #0x0
+ lsl r1, r1, #0x4
+ ldr r0, [r4, r1]
+ add r1, r1, #0x4
+ ldr r1, [r4, r1]
+ add r2, r5, #0x0
+ bl FUN_0200B7B8
+ add r0, r5, #0x0
+ bl FUN_02021A20
+ mov r1, #0x0
+ add r0, r4, #0x0
+ mvn r1, r1
+ mov r2, #0x0
+ bl FUN_020731E8
+ ldr r0, _0207686C ; =0x00000B27
+ mov r1, #0x4
+ strb r1, [r4, r0]
+ b _02076868
+_02076780:
+ sub r0, r1, #0x3
+ ldrb r0, [r4, r0]
+ bl FUN_0201BD70
+ cmp r0, #0x0
+ bne _02076868
+ ldr r0, _02076870 ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #0x3
+ tst r0, r1
+ beq _02076868
+ ldr r0, _02076874 ; =0x000005DC
+ bl FUN_020054C8
+ ldr r0, _0207686C ; =0x00000B27
+ mov r1, #0x3
+ strb r1, [r4, r0]
+ b _02076868
+_020767A4:
+ ldr r0, _02076870 ; =0x021C48B8
+ ldr r2, [r0, #0x48]
+ mov r0, #0x3
+ tst r0, r2
+ beq _02076868
+ ldr r0, _02076878 ; =0x000005A4
+ sub r1, r1, #0x2
+ ldr r0, [r4, r0]
+ ldrb r1, [r4, r1]
+ ldr r0, [r0, #0x0]
+ bl FUN_0206B9B0
+ ldr r2, _02076878 ; =0x000005A4
+ add r1, r0, #0x0
+ ldr r2, [r4, r2]
+ add r0, r4, #0x0
+ add r2, #0x28
+ ldrb r2, [r2, #0x0]
+ bl FUN_02076F2C
+ ldr r0, _02076880 ; =0x0000069C
+ mov r1, #0x3d
+ ldr r0, [r4, r0]
+ bl FUN_0200A914
+ mov r2, #0x6a
+ lsl r2, r2, #0x4
+ add r5, r0, #0x0
+ ldr r0, [r4, r2]
+ sub r2, #0xfc
+ ldr r2, [r4, r2]
+ mov r1, #0x1
+ ldrh r2, [r2, #0x26]
+ bl FUN_0200AD5C
+ mov r1, #0x6a
+ lsl r1, r1, #0x4
+ ldr r0, [r4, r1]
+ add r1, r1, #0x4
+ ldr r1, [r4, r1]
+ add r2, r5, #0x0
+ bl FUN_0200B7B8
+ add r0, r5, #0x0
+ bl FUN_02021A20
+ mov r1, #0x0
+ add r0, r4, #0x0
+ mvn r1, r1
+ mov r2, #0x0
+ bl FUN_020731E8
+ ldr r0, _0207686C ; =0x00000B27
+ mov r1, #0x4
+ strb r1, [r4, r0]
+ b _02076868
+_02076814:
+ ldr r0, _02076878 ; =0x000005A4
+ sub r1, r1, #0x2
+ ldr r0, [r4, r0]
+ ldrb r1, [r4, r1]
+ ldr r0, [r0, #0x0]
+ bl FUN_0206B9B0
+ add r5, r0, #0x0
+ ldr r0, _02076878 ; =0x000005A4
+ ldr r0, [r4, r0]
+ ldr r0, [r0, #0x1c]
+ ldr r0, [r0, #0x1c]
+ ldr r0, [r0, #0x0]
+ bl FUN_02034A04
+ add r3, r0, #0x0
+ ldr r0, _02076878 ; =0x000005A4
+ lsl r3, r3, #0x10
+ ldr r1, [r4, r0]
+ mov r2, #0x0
+ add r0, r1, #0x0
+ add r0, #0x3c
+ str r0, [sp, #0x0]
+ ldr r0, [r1, #0x0]
+ add r1, r5, #0x0
+ lsr r3, r3, #0x10
+ bl FUN_02069168
+ ldr r1, _02076878 ; =0x000005A4
+ ldr r2, [r4, r1]
+ strh r0, [r2, #0x38]
+ ldr r1, [r4, r1]
+ ldrh r0, [r1, #0x38]
+ cmp r0, #0x0
+ beq _0207685E
+ mov r0, #0x9
+ b _02076860
+_0207685E:
+ mov r0, #0x0
+_02076860:
+ add r1, #0x23
+ strb r0, [r1, #0x0]
+ mov r0, #0x1b
+ pop {r3-r5, pc}
+_02076868:
+ mov r0, #0x5
+ pop {r3-r5, pc}
+ .balign 4
+_0207686C: .word 0x00000B27
+_02076870: .word 0x021C48B8
+_02076874: .word 0x000005DC
+_02076878: .word 0x000005A4
+_0207687C: .word 0x0000FFFE
+_02076880: .word 0x0000069C
+_02076884: .word FUN_02076950
+_02076888: .word 0x00000B18
+_0207688C: .word FUN_020769A4
+
+ thumb_func_start FUN_02076890
+FUN_02076890: ; 0x02076890
+ push {r3-r5, lr}
+ add r4, r0, #0x0
+ ldr r0, _0207693C ; =FUN_020765EC
+ ldr r1, _02076940 ; =0x00000B14
+ mov r2, #0x3
+ str r0, [r4, r1]
+ add r0, r1, #0x0
+ add r0, #0x13
+ strb r2, [r4, r0]
+ ldr r0, _02076944 ; =0x000005A4
+ add r1, #0x11
+ ldr r0, [r4, r0]
+ ldrb r1, [r4, r1]
+ ldr r0, [r0, #0x0]
+ bl FUN_0206B9B0
+ add r5, r0, #0x0
+ bl FUN_020690E4
+ add r2, r0, #0x0
+ mov r0, #0x6a
+ lsl r0, r0, #0x4
+ ldr r0, [r4, r0]
+ mov r1, #0x0
+ bl FUN_0200ACF8
+ ldr r0, _02076944 ; =0x000005A4
+ ldr r2, [r4, r0]
+ add r1, r2, #0x0
+ add r1, #0x28
+ ldrb r1, [r1, #0x0]
+ cmp r1, #0x4
+ bne _020768E6
+ add r0, #0xfc
+ ldrh r2, [r2, #0x26]
+ ldr r0, [r4, r0]
+ mov r1, #0x1
+ bl FUN_0200AD5C
+ add r0, r4, #0x0
+ bl FUN_020769A4
+ pop {r3-r5, pc}
+_020768E6:
+ add r0, r5, #0x0
+ add r1, #0x36
+ mov r2, #0x0
+ bl FUN_020671BC
+ add r2, r0, #0x0
+ mov r0, #0x6a
+ lsl r0, r0, #0x4
+ ldr r0, [r4, r0]
+ mov r1, #0x1
+ bl FUN_0200AD5C
+ ldr r0, _02076948 ; =0x0000069C
+ mov r1, #0x3c
+ ldr r0, [r4, r0]
+ bl FUN_0200A914
+ mov r1, #0x6a
+ add r5, r0, #0x0
+ lsl r1, r1, #0x4
+ ldr r0, [r4, r1]
+ add r1, r1, #0x4
+ ldr r1, [r4, r1]
+ add r2, r5, #0x0
+ bl FUN_0200B7B8
+ add r0, r5, #0x0
+ bl FUN_02021A20
+ mov r1, #0x0
+ add r0, r4, #0x0
+ mvn r1, r1
+ mov r2, #0x1
+ bl FUN_020731E8
+ ldr r0, _0207694C ; =0x00000B22
+ mov r1, #0x5
+ strb r1, [r4, r0]
+ add r0, r0, #0x5
+ strb r1, [r4, r0]
+ mov r0, #0x14
+ pop {r3-r5, pc}
+ nop
+_0207693C: .word FUN_020765EC
+_02076940: .word 0x00000B14
+_02076944: .word 0x000005A4
+_02076948: .word 0x0000069C
+_0207694C: .word 0x00000B22
+
+ thumb_func_start FUN_02076950
+FUN_02076950: ; 0x02076950
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ ldr r0, _02076998 ; =0x0000069C
+ mov r1, #0x3b
+ ldr r0, [r5, r0]
+ bl FUN_0200A914
+ mov r1, #0x6a
+ add r4, r0, #0x0
+ lsl r1, r1, #0x4
+ ldr r0, [r5, r1]
+ add r1, r1, #0x4
+ ldr r1, [r5, r1]
+ add r2, r4, #0x0
+ bl FUN_0200B7B8
+ add r0, r4, #0x0
+ bl FUN_02021A20
+ mov r1, #0x0
+ add r0, r5, #0x0
+ mvn r1, r1
+ mov r2, #0x0
+ bl FUN_020731E8
+ ldr r0, _0207699C ; =0x000005A4
+ mov r1, #0x5
+ ldr r0, [r5, r0]
+ add r0, #0x23
+ strb r1, [r0, #0x0]
+ ldr r0, _020769A0 ; =0x00000B22
+ mov r1, #0x15
+ strb r1, [r5, r0]
+ mov r0, #0x14
+ pop {r3-r5, pc}
+ nop
+_02076998: .word 0x0000069C
+_0207699C: .word 0x000005A4
+_020769A0: .word 0x00000B22
+
+ thumb_func_start FUN_020769A4
+FUN_020769A4: ; 0x020769A4
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ ldr r0, _020769EC ; =0x0000069C
+ mov r1, #0x37
+ ldr r0, [r5, r0]
+ bl FUN_0200A914
+ mov r1, #0x6a
+ add r4, r0, #0x0
+ lsl r1, r1, #0x4
+ ldr r0, [r5, r1]
+ add r1, r1, #0x4
+ ldr r1, [r5, r1]
+ add r2, r4, #0x0
+ bl FUN_0200B7B8
+ add r0, r4, #0x0
+ bl FUN_02021A20
+ mov r1, #0x0
+ add r0, r5, #0x0
+ mvn r1, r1
+ mov r2, #0x1
+ bl FUN_020731E8
+ ldr r0, _020769F0 ; =FUN_020769FC
+ ldr r1, _020769F4 ; =0x00000B18
+ ldr r2, _020769F8 ; =FUN_02076A48
+ str r0, [r5, r1]
+ add r0, r1, #0x4
+ str r2, [r5, r0]
+ mov r0, #0x16
+ add r1, #0xa
+ strb r0, [r5, r1]
+ mov r0, #0x14
+ pop {r3-r5, pc}
+ .balign 4
+_020769EC: .word 0x0000069C
+_020769F0: .word FUN_020769FC
+_020769F4: .word 0x00000B18
+_020769F8: .word FUN_02076A48
+
+ thumb_func_start FUN_020769FC
+FUN_020769FC: ; 0x020769FC
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ ldr r0, _02076A40 ; =0x0000069C
+ mov r1, #0x3a
+ ldr r0, [r5, r0]
+ bl FUN_0200A914
+ mov r1, #0x6a
+ add r4, r0, #0x0
+ lsl r1, r1, #0x4
+ ldr r0, [r5, r1]
+ add r1, r1, #0x4
+ ldr r1, [r5, r1]
+ add r2, r4, #0x0
+ bl FUN_0200B7B8
+ add r0, r4, #0x0
+ bl FUN_02021A20
+ mov r1, #0x0
+ add r0, r5, #0x0
+ mvn r1, r1
+ mov r2, #0x0
+ bl FUN_020731E8
+ ldr r0, _02076A44 ; =0x00000B22
+ mov r1, #0x5
+ strb r1, [r5, r0]
+ mov r1, #0x4
+ add r0, r0, #0x5
+ strb r1, [r5, r0]
+ mov r0, #0x14
+ pop {r3-r5, pc}
+ nop
+_02076A40: .word 0x0000069C
+_02076A44: .word 0x00000B22
+
+ thumb_func_start FUN_02076A48
+FUN_02076A48: ; 0x02076A48
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ ldr r0, _02076A90 ; =0x0000069C
+ mov r1, #0x34
+ ldr r0, [r5, r0]
+ bl FUN_0200A914
+ mov r1, #0x6a
+ add r4, r0, #0x0
+ lsl r1, r1, #0x4
+ ldr r0, [r5, r1]
+ add r1, r1, #0x4
+ ldr r1, [r5, r1]
+ add r2, r4, #0x0
+ bl FUN_0200B7B8
+ add r0, r4, #0x0
+ bl FUN_02021A20
+ mov r1, #0x0
+ add r0, r5, #0x0
+ mvn r1, r1
+ mov r2, #0x0
+ bl FUN_020731E8
+ ldr r0, _02076A94 ; =FUN_02076950
+ ldr r1, _02076A98 ; =0x00000B18
+ ldr r2, _02076A9C ; =FUN_020769A4
+ str r0, [r5, r1]
+ add r0, r1, #0x4
+ str r2, [r5, r0]
+ mov r0, #0x16
+ add r1, #0xa
+ strb r0, [r5, r1]
+ mov r0, #0x14
+ pop {r3-r5, pc}
+ .balign 4
+_02076A90: .word 0x0000069C
+_02076A94: .word FUN_02076950
+_02076A98: .word 0x00000B18
+_02076A9C: .word FUN_020769A4
+
+ thumb_func_start FUN_02076AA0
+FUN_02076AA0: ; 0x02076AA0
+ push {r3-r7, lr}
+ ldr r7, _02076AF4 ; =0x000005A4
+ add r5, r0, #0x0
+ add r6, r1, #0x0
+ mov r4, #0x0
+_02076AAA:
+ add r1, r4, #0x0
+ add r0, r6, #0x0
+ add r1, #0x36
+ mov r2, #0x0
+ bl FUN_020671BC
+ lsl r0, r0, #0x10
+ lsr r2, r0, #0x10
+ ldr r0, [r5, r7]
+ ldrh r1, [r0, #0x26]
+ cmp r2, r1
+ bne _02076AC6
+ mov r0, #0xfd
+ pop {r3-r7, pc}
+_02076AC6:
+ cmp r2, #0x0
+ beq _02076AD4
+ add r1, r4, #0x1
+ lsl r1, r1, #0x18
+ lsr r4, r1, #0x18
+ cmp r4, #0x4
+ blo _02076AAA
+_02076AD4:
+ ldrh r0, [r0, #0x24]
+ bl FUN_0206EA7C
+ add r1, r0, #0x0
+ add r0, r6, #0x0
+ bl FUN_0206A13C
+ cmp r0, #0x0
+ bne _02076AEA
+ mov r0, #0xff
+ pop {r3-r7, pc}
+_02076AEA:
+ cmp r4, #0x4
+ bne _02076AF0
+ mov r4, #0xfe
+_02076AF0:
+ add r0, r4, #0x0
+ pop {r3-r7, pc}
+ .balign 4
+_02076AF4: .word 0x000005A4
+
+ thumb_func_start FUN_02076AF8
+FUN_02076AF8: ; 0x02076AF8
+ push {r4-r6, lr}
+ add r4, r0, #0x0
+ ldr r0, _02076C78 ; =0x000005A4
+ ldr r1, _02076C7C ; =0x00000B25
+ ldr r0, [r4, r0]
+ ldrb r1, [r4, r1]
+ ldr r0, [r0, #0x0]
+ bl FUN_0206B9B0
+ add r6, r0, #0x0
+ add r0, r4, #0x0
+ add r1, r6, #0x0
+ bl FUN_02076AA0
+ add r5, r0, #0x0
+ add r0, r6, #0x0
+ bl FUN_020690E4
+ add r2, r0, #0x0
+ mov r0, #0x6a
+ lsl r0, r0, #0x4
+ ldr r0, [r4, r0]
+ mov r1, #0x0
+ bl FUN_0200ACF8
+ mov r2, #0x6a
+ lsl r2, r2, #0x4
+ ldr r0, [r4, r2]
+ sub r2, #0xfc
+ ldr r2, [r4, r2]
+ mov r1, #0x1
+ ldrh r2, [r2, #0x26]
+ bl FUN_0200AD5C
+ cmp r5, #0xfd
+ bhi _02076B5A
+ bhs _02076BB2
+ cmp r5, #0x3
+ bhi _02076B60
+ add r0, r5, r5
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02076B52: ; jump table (using 16-bit offset)
+ .short _02076B68 - _02076B52 - 2; case 0
+ .short _02076B68 - _02076B52 - 2; case 1
+ .short _02076B68 - _02076B52 - 2; case 2
+ .short _02076B68 - _02076B52 - 2; case 3
+_02076B5A:
+ cmp r5, #0xfe
+ bhi _02076B62
+ beq _02076BF2
+_02076B60:
+ b _02076C72
+_02076B62:
+ cmp r5, #0xff
+ beq _02076C34
+ b _02076C72
+_02076B68:
+ add r0, r4, #0x0
+ add r1, r6, #0x0
+ add r2, r5, #0x0
+ bl FUN_02076F2C
+ ldr r0, _02076C80 ; =0x0000069C
+ mov r1, #0x3d
+ ldr r0, [r4, r0]
+ bl FUN_0200A914
+ mov r1, #0x6a
+ add r5, r0, #0x0
+ lsl r1, r1, #0x4
+ ldr r0, [r4, r1]
+ add r1, r1, #0x4
+ ldr r1, [r4, r1]
+ add r2, r5, #0x0
+ bl FUN_0200B7B8
+ add r0, r5, #0x0
+ bl FUN_02021A20
+ mov r1, #0x0
+ add r0, r4, #0x0
+ mvn r1, r1
+ mov r2, #0x1
+ bl FUN_020731E8
+ ldr r0, _02076C78 ; =0x000005A4
+ mov r1, #0x0
+ ldr r0, [r4, r0]
+ add r0, #0x23
+ strb r1, [r0, #0x0]
+ ldr r0, _02076C84 ; =0x00000B22
+ mov r1, #0x15
+ strb r1, [r4, r0]
+ b _02076C72
+_02076BB2:
+ ldr r0, _02076C80 ; =0x0000069C
+ mov r1, #0x3f
+ ldr r0, [r4, r0]
+ bl FUN_0200A914
+ mov r1, #0x6a
+ add r5, r0, #0x0
+ lsl r1, r1, #0x4
+ ldr r0, [r4, r1]
+ add r1, r1, #0x4
+ ldr r1, [r4, r1]
+ add r2, r5, #0x0
+ bl FUN_0200B7B8
+ add r0, r5, #0x0
+ bl FUN_02021A20
+ mov r1, #0x0
+ add r0, r4, #0x0
+ mvn r1, r1
+ mov r2, #0x1
+ bl FUN_020731E8
+ ldr r0, _02076C78 ; =0x000005A4
+ mov r1, #0x0
+ ldr r0, [r4, r0]
+ add r0, #0x23
+ strb r1, [r0, #0x0]
+ ldr r0, _02076C84 ; =0x00000B22
+ mov r1, #0x15
+ strb r1, [r4, r0]
+ b _02076C72
+_02076BF2:
+ ldr r0, _02076C80 ; =0x0000069C
+ mov r1, #0x34
+ ldr r0, [r4, r0]
+ bl FUN_0200A914
+ mov r1, #0x6a
+ add r5, r0, #0x0
+ lsl r1, r1, #0x4
+ ldr r0, [r4, r1]
+ add r1, r1, #0x4
+ ldr r1, [r4, r1]
+ add r2, r5, #0x0
+ bl FUN_0200B7B8
+ add r0, r5, #0x0
+ bl FUN_02021A20
+ mov r1, #0x0
+ add r0, r4, #0x0
+ mvn r1, r1
+ mov r2, #0x1
+ bl FUN_020731E8
+ ldr r0, _02076C88 ; =FUN_02076DD4
+ ldr r1, _02076C8C ; =0x00000B18
+ ldr r2, _02076C90 ; =FUN_02076E28
+ str r0, [r4, r1]
+ add r0, r1, #0x4
+ str r2, [r4, r0]
+ mov r0, #0x16
+ add r1, #0xa
+ strb r0, [r4, r1]
+ b _02076C72
+_02076C34:
+ ldr r0, _02076C80 ; =0x0000069C
+ mov r1, #0x3e
+ ldr r0, [r4, r0]
+ bl FUN_0200A914
+ mov r1, #0x6a
+ add r5, r0, #0x0
+ lsl r1, r1, #0x4
+ ldr r0, [r4, r1]
+ add r1, r1, #0x4
+ ldr r1, [r4, r1]
+ add r2, r5, #0x0
+ bl FUN_0200B7B8
+ add r0, r5, #0x0
+ bl FUN_02021A20
+ mov r1, #0x0
+ add r0, r4, #0x0
+ mvn r1, r1
+ mov r2, #0x1
+ bl FUN_020731E8
+ ldr r0, _02076C78 ; =0x000005A4
+ mov r1, #0x0
+ ldr r0, [r4, r0]
+ add r0, #0x23
+ strb r1, [r0, #0x0]
+ ldr r0, _02076C84 ; =0x00000B22
+ mov r1, #0x15
+ strb r1, [r4, r0]
+_02076C72:
+ mov r0, #0x14
+ pop {r4-r6, pc}
+ nop
+_02076C78: .word 0x000005A4
+_02076C7C: .word 0x00000B25
+_02076C80: .word 0x0000069C
+_02076C84: .word 0x00000B22
+_02076C88: .word FUN_02076DD4
+_02076C8C: .word 0x00000B18
+_02076C90: .word FUN_02076E28
+
+ thumb_func_start FUN_02076C94
+FUN_02076C94: ; 0x02076C94
+ push {r3-r5, lr}
+ add r4, r0, #0x0
+ ldr r0, _02076D2C ; =0x000005A4
+ ldr r1, _02076D30 ; =0x00000B25
+ ldr r0, [r4, r0]
+ ldrb r1, [r4, r1]
+ ldr r0, [r0, #0x0]
+ bl FUN_0206B9B0
+ add r5, r0, #0x0
+ bl FUN_020690E4
+ add r2, r0, #0x0
+ mov r0, #0x6a
+ lsl r0, r0, #0x4
+ ldr r0, [r4, r0]
+ mov r1, #0x0
+ bl FUN_0200ACF8
+ ldr r0, _02076D2C ; =0x000005A4
+ ldr r2, [r4, r0]
+ add r1, r2, #0x0
+ add r1, #0x28
+ ldrb r1, [r1, #0x0]
+ cmp r1, #0x4
+ bne _02076CDC
+ add r0, #0xfc
+ ldrh r2, [r2, #0x26]
+ ldr r0, [r4, r0]
+ mov r1, #0x1
+ bl FUN_0200AD5C
+ add r0, r4, #0x0
+ bl FUN_02076E28
+ pop {r3-r5, pc}
+_02076CDC:
+ add r0, r5, #0x0
+ add r1, #0x36
+ mov r2, #0x0
+ bl FUN_020671BC
+ add r2, r0, #0x0
+ mov r0, #0x6a
+ lsl r0, r0, #0x4
+ ldr r0, [r4, r0]
+ mov r1, #0x1
+ bl FUN_0200AD5C
+ ldr r0, _02076D34 ; =0x0000069C
+ mov r1, #0x3c
+ ldr r0, [r4, r0]
+ bl FUN_0200A914
+ mov r1, #0x6a
+ add r5, r0, #0x0
+ lsl r1, r1, #0x4
+ ldr r0, [r4, r1]
+ add r1, r1, #0x4
+ ldr r1, [r4, r1]
+ add r2, r5, #0x0
+ bl FUN_0200B7B8
+ add r0, r5, #0x0
+ bl FUN_02021A20
+ mov r1, #0x0
+ add r0, r4, #0x0
+ mvn r1, r1
+ mov r2, #0x1
+ bl FUN_020731E8
+ ldr r0, _02076D38 ; =0x00000B22
+ mov r1, #0x12
+ strb r1, [r4, r0]
+ mov r0, #0x14
+ pop {r3-r5, pc}
+ .balign 4
+_02076D2C: .word 0x000005A4
+_02076D30: .word 0x00000B25
+_02076D34: .word 0x0000069C
+_02076D38: .word 0x00000B22
+
+ thumb_func_start FUN_02076D3C
+FUN_02076D3C: ; 0x02076D3C
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ ldr r0, _02076DC0 ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #0x3
+ tst r0, r1
+ beq _02076DBC
+ ldr r0, _02076DC4 ; =0x000005A4
+ ldr r1, _02076DC8 ; =0x00000B25
+ ldr r0, [r5, r0]
+ ldrb r1, [r5, r1]
+ ldr r0, [r0, #0x0]
+ bl FUN_0206B9B0
+ ldr r2, _02076DC4 ; =0x000005A4
+ add r1, r0, #0x0
+ ldr r2, [r5, r2]
+ add r0, r5, #0x0
+ add r2, #0x28
+ ldrb r2, [r2, #0x0]
+ bl FUN_02076F2C
+ ldr r0, _02076DCC ; =0x0000069C
+ mov r1, #0x3d
+ ldr r0, [r5, r0]
+ bl FUN_0200A914
+ mov r2, #0x6a
+ lsl r2, r2, #0x4
+ add r4, r0, #0x0
+ ldr r0, [r5, r2]
+ sub r2, #0xfc
+ ldr r2, [r5, r2]
+ mov r1, #0x1
+ ldrh r2, [r2, #0x26]
+ bl FUN_0200AD5C
+ mov r1, #0x6a
+ lsl r1, r1, #0x4
+ ldr r0, [r5, r1]
+ add r1, r1, #0x4
+ ldr r1, [r5, r1]
+ add r2, r4, #0x0
+ bl FUN_0200B7B8
+ add r0, r4, #0x0
+ bl FUN_02021A20
+ mov r1, #0x0
+ add r0, r5, #0x0
+ mvn r1, r1
+ mov r2, #0x0
+ bl FUN_020731E8
+ ldr r0, _02076DC4 ; =0x000005A4
+ mov r1, #0x0
+ ldr r0, [r5, r0]
+ add r0, #0x23
+ strb r1, [r0, #0x0]
+ ldr r0, _02076DD0 ; =0x00000B22
+ mov r1, #0x15
+ strb r1, [r5, r0]
+ mov r0, #0x14
+ pop {r3-r5, pc}
+_02076DBC:
+ mov r0, #0x12
+ pop {r3-r5, pc}
+ .balign 4
+_02076DC0: .word 0x021C48B8
+_02076DC4: .word 0x000005A4
+_02076DC8: .word 0x00000B25
+_02076DCC: .word 0x0000069C
+_02076DD0: .word 0x00000B22
+
+ thumb_func_start FUN_02076DD4
+FUN_02076DD4: ; 0x02076DD4
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ ldr r0, _02076E1C ; =0x0000069C
+ mov r1, #0x3b
+ ldr r0, [r5, r0]
+ bl FUN_0200A914
+ mov r1, #0x6a
+ add r4, r0, #0x0
+ lsl r1, r1, #0x4
+ ldr r0, [r5, r1]
+ add r1, r1, #0x4
+ ldr r1, [r5, r1]
+ add r2, r4, #0x0
+ bl FUN_0200B7B8
+ add r0, r4, #0x0
+ bl FUN_02021A20
+ mov r1, #0x0
+ add r0, r5, #0x0
+ mvn r1, r1
+ mov r2, #0x0
+ bl FUN_020731E8
+ ldr r0, _02076E20 ; =0x000005A4
+ mov r1, #0x4
+ ldr r0, [r5, r0]
+ add r0, #0x23
+ strb r1, [r0, #0x0]
+ ldr r0, _02076E24 ; =0x00000B22
+ mov r1, #0x15
+ strb r1, [r5, r0]
+ mov r0, #0x14
+ pop {r3-r5, pc}
+ nop
+_02076E1C: .word 0x0000069C
+_02076E20: .word 0x000005A4
+_02076E24: .word 0x00000B22
+
+ thumb_func_start FUN_02076E28
+FUN_02076E28: ; 0x02076E28
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ ldr r0, _02076E70 ; =0x0000069C
+ mov r1, #0x37
+ ldr r0, [r5, r0]
+ bl FUN_0200A914
+ mov r1, #0x6a
+ add r4, r0, #0x0
+ lsl r1, r1, #0x4
+ ldr r0, [r5, r1]
+ add r1, r1, #0x4
+ ldr r1, [r5, r1]
+ add r2, r4, #0x0
+ bl FUN_0200B7B8
+ add r0, r4, #0x0
+ bl FUN_02021A20
+ mov r1, #0x0
+ add r0, r5, #0x0
+ mvn r1, r1
+ mov r2, #0x1
+ bl FUN_020731E8
+ ldr r0, _02076E74 ; =FUN_02076E80
+ ldr r1, _02076E78 ; =0x00000B18
+ ldr r2, _02076E7C ; =FUN_02076ED4
+ str r0, [r5, r1]
+ add r0, r1, #0x4
+ str r2, [r5, r0]
+ mov r0, #0x16
+ add r1, #0xa
+ strb r0, [r5, r1]
+ mov r0, #0x14
+ pop {r3-r5, pc}
+ .balign 4
+_02076E70: .word 0x0000069C
+_02076E74: .word FUN_02076E80
+_02076E78: .word 0x00000B18
+_02076E7C: .word FUN_02076ED4
+
+ thumb_func_start FUN_02076E80
+FUN_02076E80: ; 0x02076E80
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ ldr r0, _02076EC8 ; =0x0000069C
+ mov r1, #0x3a
+ ldr r0, [r5, r0]
+ bl FUN_0200A914
+ mov r1, #0x6a
+ add r4, r0, #0x0
+ lsl r1, r1, #0x4
+ ldr r0, [r5, r1]
+ add r1, r1, #0x4
+ ldr r1, [r5, r1]
+ add r2, r4, #0x0
+ bl FUN_0200B7B8
+ add r0, r4, #0x0
+ bl FUN_02021A20
+ mov r1, #0x0
+ add r0, r5, #0x0
+ mvn r1, r1
+ mov r2, #0x0
+ bl FUN_020731E8
+ ldr r0, _02076ECC ; =0x000005A4
+ mov r1, #0x0
+ ldr r0, [r5, r0]
+ add r0, #0x23
+ strb r1, [r0, #0x0]
+ ldr r0, _02076ED0 ; =0x00000B22
+ mov r1, #0x15
+ strb r1, [r5, r0]
+ mov r0, #0x14
+ pop {r3-r5, pc}
+ nop
+_02076EC8: .word 0x0000069C
+_02076ECC: .word 0x000005A4
+_02076ED0: .word 0x00000B22
+
+ thumb_func_start FUN_02076ED4
+FUN_02076ED4: ; 0x02076ED4
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ ldr r0, _02076F1C ; =0x0000069C
+ mov r1, #0x34
+ ldr r0, [r5, r0]
+ bl FUN_0200A914
+ mov r1, #0x6a
+ add r4, r0, #0x0
+ lsl r1, r1, #0x4
+ ldr r0, [r5, r1]
+ add r1, r1, #0x4
+ ldr r1, [r5, r1]
+ add r2, r4, #0x0
+ bl FUN_0200B7B8
+ add r0, r4, #0x0
+ bl FUN_02021A20
+ mov r1, #0x0
+ add r0, r5, #0x0
+ mvn r1, r1
+ mov r2, #0x0
+ bl FUN_020731E8
+ ldr r0, _02076F20 ; =FUN_02076DD4
+ ldr r1, _02076F24 ; =0x00000B18
+ ldr r2, _02076F28 ; =FUN_02076E28
+ str r0, [r5, r1]
+ add r0, r1, #0x4
+ str r2, [r5, r0]
+ mov r0, #0x16
+ add r1, #0xa
+ strb r0, [r5, r1]
+ mov r0, #0x14
+ pop {r3-r5, pc}
+ .balign 4
+_02076F1C: .word 0x0000069C
+_02076F20: .word FUN_02076DD4
+_02076F24: .word 0x00000B18
+_02076F28: .word FUN_02076E28
+
+ thumb_func_start FUN_02076F2C
+FUN_02076F2C: ; 0x02076F2C
+ push {r3-r6, lr}
+ sub sp, #0x4
+ add r5, r0, #0x0
+ ldr r0, _02076FAC ; =0x000005A4
+ add r6, r2, #0x0
+ ldr r0, [r5, r0]
+ add r4, r1, #0x0
+ ldrh r0, [r0, #0x26]
+ add r1, r6, #0x0
+ add r1, #0x36
+ str r0, [sp, #0x0]
+ add r0, r4, #0x0
+ add r2, sp, #0x0
+ bl FUN_02067830
+ mov r0, #0x0
+ add r1, r6, #0x0
+ str r0, [sp, #0x0]
+ add r0, r4, #0x0
+ add r1, #0x3e
+ add r2, sp, #0x0
+ bl FUN_02067830
+ ldr r0, _02076FAC ; =0x000005A4
+ mov r1, #0x0
+ ldr r0, [r5, r0]
+ ldrh r0, [r0, #0x26]
+ bl FUN_0206AB30
+ add r6, #0x3a
+ str r0, [sp, #0x0]
+ add r0, r4, #0x0
+ add r1, r6, #0x0
+ add r2, sp, #0x0
+ bl FUN_02067830
+ ldr r0, _02076FAC ; =0x000005A4
+ ldr r1, [r5, r0]
+ ldrh r0, [r1, #0x24]
+ cmp r0, #0x0
+ beq _02076FA8
+ ldrh r0, [r1, #0x26]
+ bl FUN_0206EA54
+ cmp r0, #0x0
+ bne _02076F98
+ ldr r0, _02076FAC ; =0x000005A4
+ mov r2, #0x1
+ ldr r1, [r5, r0]
+ mov r3, #0xc
+ ldr r0, [r1, #0x4]
+ ldrh r1, [r1, #0x24]
+ bl FUN_0206EDD4
+_02076F98:
+ add r0, r5, #0x0
+ bl FUN_020772CC
+ add r2, r0, #0x0
+ add r0, r4, #0x0
+ mov r1, #0x4
+ bl FUN_020688E8
+_02076FA8:
+ add sp, #0x4
+ pop {r3-r6, pc}
+ .balign 4
+_02076FAC: .word 0x000005A4
+
+ thumb_func_start FUN_02076FB0
+FUN_02076FB0: ; 0x02076FB0
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ ldr r0, _0207702C ; =0x000005A4
+ add r6, r1, #0x0
+ ldr r1, _02077030 ; =0x00000B25
+ ldr r0, [r5, r0]
+ ldrb r1, [r5, r1]
+ ldr r0, [r0, #0x0]
+ bl FUN_0206B9B0
+ add r1, r6, #0x0
+ add r1, #0x36
+ mov r2, #0x0
+ bl FUN_020671BC
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+ ldr r0, _02077034 ; =0x0000069C
+ add r1, r6, #0x0
+ ldr r0, [r5, r0]
+ add r1, #0xa2
+ bl FUN_0200A914
+ add r7, r0, #0x0
+ mov r0, #0x6a
+ lsl r0, r0, #0x4
+ ldr r0, [r5, r0]
+ mov r1, #0x0
+ add r2, r4, #0x0
+ bl FUN_0200AD5C
+ mov r1, #0x6a
+ lsl r1, r1, #0x4
+ ldr r0, [r5, r1]
+ add r1, #0x8
+ ldr r1, [r5, r1]
+ add r2, r7, #0x0
+ bl FUN_0200B7B8
+ add r0, r7, #0x0
+ bl FUN_02021A20
+ cmp r4, #0x0
+ ldr r1, _02077038 ; =0x000006F8
+ bne _0207701C
+ ldr r0, [r5, r1]
+ sub r1, #0x50
+ mov r2, #0x2
+ ldr r1, [r5, r1]
+ mvn r2, r2
+ bl FUN_020128A0
+ mov r0, #0x0
+ pop {r3-r7, pc}
+_0207701C:
+ ldr r0, [r5, r1]
+ sub r1, #0x50
+ ldr r1, [r5, r1]
+ add r2, r6, #0x0
+ bl FUN_020128A0
+ mov r0, #0x1
+ pop {r3-r7, pc}
+ .balign 4
+_0207702C: .word 0x000005A4
+_02077030: .word 0x00000B25
+_02077034: .word 0x0000069C
+_02077038: .word 0x000006F8
+
+ thumb_func_start FUN_0207703C
+FUN_0207703C: ; 0x0207703C
+ push {r4-r5, lr}
+ sub sp, #0x14
+ add r4, r0, #0x0
+ cmp r1, #0x0
+ bne _02077050
+ mov r1, #0x29
+ mov r2, #0x1
+ bl FUN_020731D4
+ b _02077058
+_02077050:
+ mov r1, #0x28
+ mov r2, #0x1
+ bl FUN_020731D4
+_02077058:
+ mov r0, #0x4
+ mov r1, #0xc
+ bl FUN_02012838
+ ldr r1, _02077108 ; =0x000006F8
+ str r0, [r4, r1]
+ add r0, r4, #0x0
+ mov r1, #0x0
+ bl FUN_02076FB0
+ add r5, r0, #0x0
+ add r0, r4, #0x0
+ mov r1, #0x1
+ bl FUN_02076FB0
+ add r0, r5, r0
+ lsl r0, r0, #0x18
+ lsr r5, r0, #0x18
+ add r0, r4, #0x0
+ mov r1, #0x2
+ bl FUN_02076FB0
+ add r0, r5, r0
+ lsl r0, r0, #0x18
+ lsr r5, r0, #0x18
+ add r0, r4, #0x0
+ mov r1, #0x3
+ bl FUN_02076FB0
+ add r0, r5, r0
+ lsl r0, r0, #0x18
+ lsr r1, r0, #0x18
+ ldr r0, _02077108 ; =0x000006F8
+ mov r2, #0x0
+ ldr r0, [r4, r0]
+ str r0, [sp, #0x8]
+ mov r0, #0x91
+ lsl r0, r0, #0x2
+ add r0, r4, r0
+ str r0, [sp, #0xc]
+ add r0, sp, #0x8
+ strb r2, [r0, #0x8]
+ mov r2, #0x1
+ strb r2, [r0, #0x9]
+ mov r2, #0x4
+ strb r2, [r0, #0xa]
+ ldrb r3, [r0, #0xb]
+ mov r2, #0xf
+ bic r3, r2
+ strb r3, [r0, #0xb]
+ ldrb r3, [r0, #0xb]
+ mov r2, #0x30
+ bic r3, r2
+ strb r3, [r0, #0xb]
+ cmp r1, #0x4
+ ldrb r2, [r0, #0xb]
+ bne _020770D6
+ mov r1, #0xc0
+ bic r2, r1
+ mov r1, #0x40
+ orr r1, r2
+ strb r1, [r0, #0xb]
+ b _020770DC
+_020770D6:
+ mov r1, #0xc0
+ bic r2, r1
+ strb r2, [r0, #0xb]
+_020770DC:
+ mov r0, #0x91
+ lsl r0, r0, #0x2
+ mov r1, #0x1
+ add r0, r4, r0
+ add r2, r1, #0x0
+ mov r3, #0xe
+ bl FUN_0200CCA4
+ mov r0, #0xc
+ str r0, [sp, #0x0]
+ mov r0, #0x2
+ mov r2, #0x0
+ str r0, [sp, #0x4]
+ add r0, sp, #0x8
+ mov r1, #0x8
+ add r3, r2, #0x0
+ bl FUN_02001C14
+ ldr r1, _0207710C ; =0x000006FC
+ str r0, [r4, r1]
+ add sp, #0x14
+ pop {r4-r5, pc}
+ .balign 4
+_02077108: .word 0x000006F8
+_0207710C: .word 0x000006FC
+
+ thumb_func_start FUN_02077110
+FUN_02077110: ; 0x02077110
+ push {r4-r6, lr}
+ sub sp, #0x8
+ add r5, r0, #0x0
+ ldr r0, _0207722C ; =0x000006FC
+ ldr r0, [r5, r0]
+ bl FUN_02001C78
+ add r4, r0, #0x0
+ mov r0, #0x1
+ mvn r0, r0
+ cmp r4, r0
+ beq _02077130
+ add r0, r0, #0x1
+ cmp r4, r0
+ beq _02077226
+ b _0207716A
+_02077130:
+ mov r0, #0x85
+ lsl r0, r0, #0x2
+ add r0, r5, r0
+ mov r1, #0x1
+ bl FUN_0200D0E0
+ mov r0, #0x91
+ lsl r0, r0, #0x2
+ add r0, r5, r0
+ mov r1, #0x1
+ bl FUN_0200CCF8
+ ldr r0, _0207722C ; =0x000006FC
+ mov r1, #0x0
+ ldr r0, [r5, r0]
+ bl FUN_02001C5C
+ ldr r0, _02077230 ; =0x000006F8
+ ldr r0, [r5, r0]
+ bl FUN_02012870
+ add r0, r5, #0x0
+ mov r1, #0x20
+ mov r2, #0x1
+ bl FUN_020731C0
+ add sp, #0x8
+ mov r0, #0x4
+ pop {r4-r6, pc}
+_0207716A:
+ mov r0, #0x85
+ lsl r0, r0, #0x2
+ add r0, r5, r0
+ mov r1, #0x1
+ bl FUN_0200D0E0
+ mov r0, #0x91
+ lsl r0, r0, #0x2
+ add r0, r5, r0
+ mov r1, #0x1
+ bl FUN_0200CCF8
+ ldr r0, _0207722C ; =0x000006FC
+ mov r1, #0x0
+ ldr r0, [r5, r0]
+ bl FUN_02001C5C
+ ldr r0, _02077230 ; =0x000006F8
+ ldr r0, [r5, r0]
+ bl FUN_02012870
+ ldr r0, _02077234 ; =0x000005A4
+ ldr r6, [r5, r0]
+ add r0, r5, #0x0
+ bl FUN_020772CC
+ str r0, [sp, #0x0]
+ mov r0, #0xc
+ str r0, [sp, #0x4]
+ ldr r2, _02077238 ; =0x00000B25
+ lsl r3, r4, #0x18
+ ldrh r1, [r6, #0x24]
+ ldrb r2, [r5, r2]
+ ldr r0, [r6, #0x0]
+ lsr r3, r3, #0x18
+ bl FUN_02084DD0
+ cmp r0, #0x1
+ bne _020771F6
+ ldr r0, _02077234 ; =0x000005A4
+ ldr r1, _02077238 ; =0x00000B25
+ ldr r0, [r5, r0]
+ ldrb r1, [r5, r1]
+ ldr r0, [r0, #0x0]
+ bl FUN_0206B9B0
+ add r4, #0x36
+ add r1, r4, #0x0
+ mov r2, #0x0
+ bl FUN_020671BC
+ ldr r1, _02077234 ; =0x000005A4
+ add r2, r0, #0x0
+ ldr r1, [r5, r1]
+ add r0, r5, #0x0
+ ldrh r1, [r1, #0x24]
+ bl FUN_020757F4
+ ldr r0, _02077234 ; =0x000005A4
+ mov r2, #0x1
+ ldr r1, [r5, r0]
+ mov r3, #0xc
+ ldr r0, [r1, #0x4]
+ ldrh r1, [r1, #0x24]
+ bl FUN_0206EDD4
+ ldr r0, _0207723C ; =0x000005EC
+ bl FUN_020054C8
+ b _02077204
+_020771F6:
+ ldr r2, _02077240 ; =0x0000069C
+ mov r1, #0x69
+ ldr r0, [r5, r2]
+ add r2, #0x8
+ ldr r2, [r5, r2]
+ bl FUN_0200A8E0
+_02077204:
+ mov r1, #0x0
+ add r0, r5, #0x0
+ mvn r1, r1
+ mov r2, #0x1
+ bl FUN_020731E8
+ ldr r0, _02077234 ; =0x000005A4
+ mov r1, #0x0
+ ldr r0, [r5, r0]
+ add sp, #0x8
+ add r0, #0x23
+ strb r1, [r0, #0x0]
+ ldr r0, _02077244 ; =0x00000B22
+ mov r1, #0x15
+ strb r1, [r5, r0]
+ mov r0, #0x14
+ pop {r4-r6, pc}
+_02077226:
+ mov r0, #0x6
+ add sp, #0x8
+ pop {r4-r6, pc}
+ .balign 4
+_0207722C: .word 0x000006FC
+_02077230: .word 0x000006F8
+_02077234: .word 0x000005A4
+_02077238: .word 0x00000B25
+_0207723C: .word 0x000005EC
+_02077240: .word 0x0000069C
+_02077244: .word 0x00000B22
+
+ thumb_func_start FUN_02077248
+FUN_02077248: ; 0x02077248
+ push {r4, lr}
+ add r4, r0, #0x0
+ mov r0, #0x81
+ lsl r0, r0, #0x2
+ add r0, r4, r0
+ mov r1, #0x1
+ bl FUN_0200D0E0
+ ldr r0, _020772BC ; =0x00000B25
+ ldr r2, _020772C0 ; =0x0000070C
+ ldrb r1, [r4, r0]
+ mov r0, #0x2c
+ mul r0, r1
+ add r0, r4, r0
+ ldrh r0, [r0, r2]
+ cmp r0, #0x0
+ bne _02077286
+ add r0, r2, #0x0
+ sub r0, #0x70
+ sub r2, #0x68
+ ldr r0, [r4, r0]
+ ldr r2, [r4, r2]
+ mov r1, #0x7f
+ bl FUN_0200A8E0
+ ldr r1, _020772BC ; =0x00000B25
+ add r0, r4, #0x0
+ ldrb r1, [r4, r1]
+ bl FUN_02073AB8
+ b _0207729C
+_02077286:
+ add r0, r2, #0x0
+ sub r0, #0x70
+ sub r2, #0x68
+ ldr r0, [r4, r0]
+ ldr r2, [r4, r2]
+ mov r1, #0x80
+ bl FUN_0200A8E0
+ ldr r0, _020772BC ; =0x00000B25
+ mov r1, #0x7
+ strb r1, [r4, r0]
+_0207729C:
+ mov r1, #0x0
+ add r0, r4, #0x0
+ mvn r1, r1
+ mov r2, #0x1
+ bl FUN_020731E8
+ ldr r0, _020772C4 ; =0x000005A4
+ mov r1, #0x0
+ ldr r0, [r4, r0]
+ add r0, #0x23
+ strb r1, [r0, #0x0]
+ ldr r0, _020772C8 ; =0x00000B22
+ mov r1, #0x15
+ strb r1, [r4, r0]
+ pop {r4, pc}
+ nop
+_020772BC: .word 0x00000B25
+_020772C0: .word 0x0000070C
+_020772C4: .word 0x000005A4
+_020772C8: .word 0x00000B22
+
+ thumb_func_start FUN_020772CC
+FUN_020772CC: ; 0x020772CC
+ push {r3, lr}
+ ldr r1, _020772E4 ; =0x000005A4
+ ldr r0, [r0, r1]
+ ldr r0, [r0, #0x1c]
+ ldr r0, [r0, #0x1c]
+ ldr r0, [r0, #0x0]
+ bl FUN_02034824
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ pop {r3, pc}
+ nop
+_020772E4: .word 0x000005A4
+
+ thumb_func_start FUN_020772E8
+FUN_020772E8: ; 0x020772E8
+ push {r3-r6, lr}
+ sub sp, #0xc
+ add r5, r1, #0x0
+ ldr r1, [r5, #0x0]
+ add r6, r0, #0x0
+ cmp r1, #0x0
+ beq _020772FE
+ cmp r1, #0x1
+ bne _020772FC
+ b _02077456
+_020772FC:
+ b _02077490
+_020772FE:
+ mov r0, #0x0
+ add r1, r0, #0x0
+ bl FUN_02015F10
+ bl FUN_02015F1C
+ bl FUN_0201E6D8
+ bl FUN_0201E740
+ mov r2, #0x1
+ lsl r2, r2, #0x1a
+ ldr r1, [r2, #0x0]
+ ldr r0, _02077498 ; =0xFFFFE0FF
+ and r1, r0
+ str r1, [r2, #0x0]
+ ldr r2, _0207749C ; =0x04001000
+ ldr r1, [r2, #0x0]
+ and r0, r1
+ str r0, [r2, #0x0]
+ mov r2, #0xa
+ mov r0, #0x3
+ mov r1, #0x12
+ lsl r2, r2, #0xe
+ bl FUN_0201681C
+ mov r1, #0x5d
+ add r0, r6, #0x0
+ lsl r1, r1, #0x4
+ mov r2, #0x12
+ bl FUN_02006268
+ mov r2, #0x5d
+ mov r1, #0x0
+ lsl r2, r2, #0x4
+ add r4, r0, #0x0
+ blx Call_FillMemWithValue
+ mov r0, #0x12
+ bl FUN_02016B94
+ mov r1, #0x16
+ lsl r1, r1, #0x4
+ str r0, [r4, r1]
+ mov r0, #0x12
+ bl FUN_0200AA80
+ mov r2, #0x5a
+ lsl r2, r2, #0x2
+ str r0, [r4, r2]
+ mov r0, #0x0
+ mov r1, #0x1a
+ add r2, #0xb
+ mov r3, #0x12
+ bl FUN_0200A86C
+ mov r2, #0x5b
+ lsl r2, r2, #0x2
+ str r0, [r4, r2]
+ mov r0, #0x1
+ mov r1, #0x1a
+ add r2, #0xc
+ mov r3, #0x12
+ bl FUN_0200A86C
+ mov r2, #0x17
+ lsl r2, r2, #0x4
+ str r0, [r4, r2]
+ mov r0, #0x1
+ mov r1, #0x1a
+ sub r2, #0x2c
+ mov r3, #0x12
+ bl FUN_0200A86C
+ mov r1, #0x5d
+ lsl r1, r1, #0x2
+ str r0, [r4, r1]
+ mov r0, #0x4
+ mov r1, #0x8
+ bl FUN_0201669C
+ bl FUN_02077B24
+ mov r0, #0x16
+ lsl r0, r0, #0x4
+ ldr r0, [r4, r0]
+ bl FUN_02077B44
+ add r0, r6, #0x0
+ bl FUN_0200628C
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_02077B08
+ add r0, r4, #0x0
+ bl FUN_02077FE8
+ mov r0, #0x2
+ mov r1, #0x12
+ bl FUN_02002C50
+ ldr r0, _020774A0 ; =FUN_02077AE8
+ mov r1, #0x0
+ bl FUN_02015F10
+ add r0, r4, #0x0
+ add r1, r6, #0x0
+ bl FUN_02077CD4
+ mov r0, #0x0
+ mov r1, #0x12
+ bl FUN_02002C84
+ bl FUN_02078110
+ add r0, r4, #0x0
+ bl FUN_02078140
+ add r0, r4, #0x0
+ bl FUN_0207835C
+ add r0, r4, #0x0
+ add r1, r6, #0x0
+ bl FUN_0207890C
+ ldr r0, _020774A4 ; =0x000004C4
+ mov r3, #0x5f
+ add r1, r4, r0
+ lsl r3, r3, #0x2
+ str r1, [sp, #0x0]
+ ldr r1, [r4, r3]
+ add r2, r3, #0x0
+ str r1, [sp, #0x4]
+ sub r2, #0x24
+ sub r0, #0xcc
+ add r1, r4, #0x0
+ sub r3, #0x22
+ ldrh r2, [r4, r2]
+ add r0, r4, r0
+ add r1, #0xd8
+ add r3, r4, r3
+ bl FUN_0207907C
+ mov r1, #0x0
+ mov r0, #0x34
+ add r2, r1, #0x0
+ bl FUN_0200433C
+ mov r0, #0x10
+ str r0, [sp, #0x0]
+ mov r1, #0x1
+ str r1, [sp, #0x4]
+ mov r0, #0x12
+ str r0, [sp, #0x8]
+ mov r0, #0x0
+ add r2, r1, #0x0
+ add r3, r0, #0x0
+ bl FUN_0200E1D0
+ mov r0, #0x1
+ bl FUN_02077C84
+ ldr r0, _020774A8 ; =0x021C4918
+ mov r1, #0x1
+ strb r1, [r0, #0x5]
+ bl FUN_0201E7A0
+ ldr r0, [r5, #0x0]
+ add r0, r0, #0x1
+ str r0, [r5, #0x0]
+ b _02077490
+_02077456:
+ bl FUN_02006278
+ add r4, r0, #0x0
+ ldr r0, [r4, #0x0]
+ cmp r0, #0x1
+ bne _02077472
+ ldr r1, _020774AC ; =0x000004B8
+ ldr r2, [r4, #0x4]
+ ldr r0, [r4, r1]
+ add r1, #0x8
+ ldr r1, [r4, r1]
+ ldr r3, [r4, #0x8]
+ bl FUN_020774B8
+_02077472:
+ ldr r0, _020774B0 ; =0x021C5C54
+ mov r1, #0x1
+ str r4, [r0, #0x0]
+ mov r0, #0x0
+ mov r2, #0xc
+ mov r3, #0x12
+ bl FUN_020142EC
+ ldr r1, _020774B4 ; =0x000005C4
+ add sp, #0xc
+ str r0, [r4, r1]
+ mov r0, #0x0
+ str r0, [r5, #0x0]
+ mov r0, #0x1
+ pop {r3-r6, pc}
+_02077490:
+ mov r0, #0x0
+ add sp, #0xc
+ pop {r3-r6, pc}
+ nop
+_02077498: .word 0xFFFFE0FF
+_0207749C: .word 0x04001000
+_020774A0: .word FUN_02077AE8
+_020774A4: .word 0x000004C4
+_020774A8: .word 0x021C4918
+_020774AC: .word 0x000004B8
+_020774B0: .word 0x021C5C54
+_020774B4: .word 0x000005C4
+
+ thumb_func_start FUN_020774B8
+FUN_020774B8: ; 0x020774B8
+ push {r4-r6, lr}
+ add r4, r1, #0x0
+ add r5, r2, #0x0
+ mov r2, #0x2
+ ldr r0, [r0, #0x14]
+ ldr r1, _020774E8 ; =0x000057E0
+ add r6, r3, #0x0
+ lsl r2, r2, #0x8
+ blx GX_LoadOBJ
+ ldr r4, [r4, #0xc]
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ mov r2, #0x0
+ bl FUN_0206B7BC
+ lsl r0, r0, #0x5
+ add r0, r4, r0
+ mov r1, #0xc0
+ mov r2, #0x20
+ blx GX_LoadOBJPltt
+ pop {r4-r6, pc}
+ nop
+_020774E8: .word 0x000057E0
+
+ thumb_func_start FUN_020774EC
+FUN_020774EC: ; 0x020774EC
+ push {r4-r6, lr}
+ sub sp, #0x10
+ add r5, r1, #0x0
+ add r6, r0, #0x0
+ bl FUN_02006278
+ ldr r1, [r5, #0x0]
+ add r4, r0, #0x0
+ cmp r1, #0x3
+ bhi _02077550
+ add r2, r1, r1
+ add r2, pc
+ ldrh r2, [r2, #0x6]
+ lsl r2, r2, #0x10
+ asr r2, r2, #0x10
+ add pc, r2
+_0207750C: ; jump table (using 16-bit offset)
+ .short _02077514 - _0207750C - 2; case 0
+ .short _02077528 - _0207750C - 2; case 1
+ .short _0207755C - _0207750C - 2; case 2
+ .short _0207768A - _0207750C - 2; case 3
+_02077514:
+ bl FUN_0200E308
+ cmp r0, #0x0
+ beq _02077550
+ mov r0, #0x1
+ str r0, [r5, #0x0]
+ ldr r0, _020776A8 ; =0x000005CC
+ mov r1, #0x0
+ str r1, [r4, r0]
+ b _02077698
+_02077528:
+ ldr r1, _020776A8 ; =0x000005CC
+ ldr r2, [r4, r1]
+ add r2, r2, #0x1
+ str r2, [r4, r1]
+ bl FUN_020798C4
+ mov r2, #0x49
+ lsl r2, r2, #0x4
+ add r0, r4, r2
+ mov r1, #0xcb
+ sub r2, #0x30
+ lsl r1, r1, #0x2
+ ldr r2, [r4, r2]
+ add r1, r4, r1
+ bl FUN_02079834
+ ldr r0, _020776A8 ; =0x000005CC
+ ldr r1, [r4, r0]
+ cmp r1, #0x5
+ bgt _02077552
+_02077550:
+ b _02077698
+_02077552:
+ mov r1, #0x2
+ str r1, [r5, #0x0]
+ mov r1, #0x0
+ str r1, [r4, r0]
+ b _02077698
+_0207755C:
+ ldr r3, _020776AC ; =0x0000045C
+ ldr r2, [r4, r3]
+ cmp r2, #0x7
+ bhi _02077636
+ add r2, r2, r2
+ add r2, pc
+ ldrh r2, [r2, #0x6]
+ lsl r2, r2, #0x10
+ asr r2, r2, #0x10
+ add pc, r2
+_02077570: ; jump table (using 16-bit offset)
+ .short _02077636 - _02077570 - 2; case 0
+ .short _02077636 - _02077570 - 2; case 1
+ .short _02077636 - _02077570 - 2; case 2
+ .short _02077636 - _02077570 - 2; case 3
+ .short _02077580 - _02077570 - 2; case 4
+ .short _02077594 - _02077570 - 2; case 5
+ .short _020775E0 - _02077570 - 2; case 6
+ .short _0207760C - _02077570 - 2; case 7
+_02077580:
+ ldr r2, [r4, #0x34]
+ cmp r2, #0x0
+ bne _0207758C
+ bl FUN_020776C4
+ str r0, [r5, #0x0]
+_0207758C:
+ add r0, r4, #0x0
+ bl FUN_020798C4
+ b _02077636
+_02077594:
+ add r1, r6, #0x0
+ bl FUN_02077E90
+ ldr r0, _020776B0 ; =0x00000448
+ mov r1, #0xf
+ add r0, r4, r0
+ bl FUN_02019620
+ ldr r0, _020776B0 ; =0x00000448
+ mov r2, #0x1
+ add r0, r4, r0
+ mov r1, #0x0
+ lsl r2, r2, #0x8
+ mov r3, #0xa
+ bl FUN_0200D0BC
+ mov r3, #0x0
+ mov r2, #0x6
+ ldr r0, _020776B0 ; =0x00000448
+ str r3, [sp, #0x0]
+ mov r1, #0x1
+ str r1, [sp, #0x4]
+ str r3, [sp, #0x8]
+ lsl r2, r2, #0x6
+ ldr r2, [r4, r2]
+ add r0, r4, r0
+ bl FUN_0201BD84
+ ldr r1, _020776B4 ; =0x00000458
+ str r0, [r4, r1]
+ sub r1, #0x10
+ add r0, r4, r1
+ bl FUN_020191D0
+ ldr r0, _020776AC ; =0x0000045C
+ mov r1, #0x6
+ str r1, [r4, r0]
+ b _02077636
+_020775E0:
+ sub r0, r3, #0x4
+ ldr r0, [r4, r0]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_0201BD70
+ cmp r0, #0x0
+ bne _02077636
+ ldr r0, _020776B8 ; =0x000005E2
+ bl FUN_020054C8
+ ldr r1, _020776BC ; =0x000004A8
+ mov r2, #0x0
+ ldr r0, [r4, r1]
+ add r0, r0, #0x1
+ str r0, [r4, r1]
+ ldr r0, _020776A8 ; =0x000005CC
+ sub r1, #0x4c
+ str r2, [r4, r0]
+ mov r0, #0x7
+ str r0, [r4, r1]
+ b _02077636
+_0207760C:
+ ldr r0, _020776A8 ; =0x000005CC
+ ldr r1, [r4, r0]
+ add r1, r1, #0x1
+ str r1, [r4, r0]
+ ldr r0, [r4, r0]
+ cmp r0, #0x1e
+ ble _02077636
+ mov r0, #0x10
+ str r0, [sp, #0x0]
+ mov r1, #0x0
+ mov r0, #0x1
+ str r0, [sp, #0x4]
+ mov r0, #0x12
+ str r0, [sp, #0x8]
+ mov r0, #0x2
+ add r2, r1, #0x0
+ add r3, r1, #0x0
+ bl FUN_0200E1D0
+ mov r0, #0x3
+ str r0, [r5, #0x0]
+_02077636:
+ ldr r3, _020776C0 ; =0x00000464
+ mov r1, #0xcb
+ add r0, r4, r3
+ str r0, [sp, #0x0]
+ add r0, r3, #0x4
+ add r0, r4, r0
+ lsl r1, r1, #0x2
+ str r0, [sp, #0x4]
+ add r0, r4, r1
+ str r0, [sp, #0x8]
+ add r0, r3, #0x0
+ add r0, #0x4c
+ ldr r0, [r4, r0]
+ add r2, r3, #0x0
+ ldr r0, [r0, #0x14]
+ add r1, #0x8c
+ str r0, [sp, #0xc]
+ mov r0, #0x16
+ lsl r0, r0, #0x4
+ sub r3, r3, #0x4
+ sub r2, #0x8
+ ldr r0, [r4, r0]
+ ldr r3, [r4, r3]
+ add r1, r4, r1
+ add r2, r4, r2
+ bl FUN_020786B0
+ mov r2, #0x49
+ lsl r2, r2, #0x4
+ add r0, r4, r2
+ mov r1, #0xcb
+ sub r2, #0x30
+ lsl r1, r1, #0x2
+ ldr r2, [r4, r2]
+ add r1, r4, r1
+ bl FUN_02079834
+ add r0, r4, #0x0
+ add r0, #0x38
+ bl FUN_02078E3C
+ b _02077698
+_0207768A:
+ bl FUN_0200E308
+ cmp r0, #0x0
+ beq _02077698
+ add sp, #0x10
+ mov r0, #0x1
+ pop {r4-r6, pc}
+_02077698:
+ mov r0, #0x62
+ lsl r0, r0, #0x2
+ ldr r0, [r4, r0]
+ bl FUN_0201FDEC
+ mov r0, #0x0
+ add sp, #0x10
+ pop {r4-r6, pc}
+ .balign 4
+_020776A8: .word 0x000005CC
+_020776AC: .word 0x0000045C
+_020776B0: .word 0x00000448
+_020776B4: .word 0x00000458
+_020776B8: .word 0x000005E2
+_020776BC: .word 0x000004A8
+_020776C0: .word 0x00000464
+
+ thumb_func_start FUN_020776C4
+FUN_020776C4: ; 0x020776C4
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ bl FUN_02078C98
+ ldr r0, _020777BC ; =0x021C48B8
+ mov r1, #0x4
+ ldr r0, [r0, #0x48]
+ tst r1, r0
+ beq _02077746
+ ldr r0, [r5, #0x0]
+ cmp r0, #0x4
+ beq _0207771E
+ ldr r1, _020777C0 ; =0x0000045C
+ mov r0, #0x0
+ str r0, [r5, r1]
+ add r2, r1, #0x4
+ ldr r2, [r5, r2]
+ add r3, r2, #0x1
+ add r2, r1, #0x4
+ str r3, [r5, r2]
+ ldr r2, [r5, r2]
+ cmp r2, #0x3
+ blt _020776F8
+ add r1, r1, #0x4
+ str r0, [r5, r1]
+_020776F8:
+ mov r2, #0x49
+ lsl r2, r2, #0x4
+ add r1, r2, #0x0
+ sub r1, #0x30
+ ldr r1, [r5, r1]
+ add r0, r5, r2
+ lsl r3, r1, #0x2
+ ldr r1, [r0, r3]
+ sub r2, #0x30
+ add r1, r1, #0x1
+ str r1, [r0, r3]
+ add r0, r5, #0x0
+ ldr r1, [r5, r2]
+ add r0, #0x3a
+ bl FUN_0207916C
+ ldr r0, _020777C4 ; =0x0000069E
+ bl FUN_020054C8
+_0207771E:
+ mov r2, #0x49
+ lsl r2, r2, #0x4
+ add r1, r2, #0x0
+ sub r1, #0x30
+ ldr r1, [r5, r1]
+ add r0, r5, r2
+ lsl r3, r1, #0x2
+ ldr r1, [r0, r3]
+ sub r2, #0x30
+ add r1, r1, #0x1
+ str r1, [r0, r3]
+ add r0, r5, #0x0
+ ldr r1, [r5, r2]
+ add r0, #0x3a
+ bl FUN_0207916C
+ ldr r0, _020777C4 ; =0x0000069E
+ bl FUN_020054C8
+ b _020777B8
+_02077746:
+ mov r2, #0x1
+ add r1, r0, #0x0
+ tst r1, r2
+ beq _0207776C
+ ldr r3, [r5, #0x20]
+ mov r1, #0x1a
+ mul r1, r3
+ add r3, r5, r1
+ ldr r1, [r5, #0x1c]
+ add r0, r5, #0x0
+ lsl r1, r1, #0x1
+ add r1, r3, r1
+ ldrh r1, [r1, #0x3a]
+ bl FUN_020791C0
+ add r4, r0, #0x0
+ mov r0, #0x1
+ str r0, [r5, #0x30]
+ b _020777B8
+_0207776C:
+ ldr r1, _020777C8 ; =0x000005C8
+ ldr r1, [r5, r1]
+ cmp r1, #0x1
+ bne _02077794
+ ldr r2, [r5, #0x20]
+ mov r1, #0x1a
+ mul r1, r2
+ add r2, r5, r1
+ ldr r1, [r5, #0x1c]
+ add r0, r5, #0x0
+ lsl r1, r1, #0x1
+ add r1, r2, r1
+ ldrh r1, [r1, #0x3a]
+ mov r2, #0x0
+ bl FUN_020791C0
+ add r4, r0, #0x0
+ mov r0, #0x0
+ str r0, [r5, #0x30]
+ b _020777B8
+_02077794:
+ mov r1, #0x2
+ add r3, r0, #0x0
+ tst r3, r1
+ beq _020777A8
+ ldr r1, _020777CC ; =0x0000E007
+ add r0, r5, #0x0
+ bl FUN_020791C0
+ add r4, r0, #0x0
+ b _020777B8
+_020777A8:
+ add r1, #0xfe
+ tst r0, r1
+ beq _020777B8
+ ldr r1, _020777D0 ; =0x0000E006
+ add r0, r5, #0x0
+ bl FUN_020791C0
+ add r4, r0, #0x0
+_020777B8:
+ add r0, r4, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+_020777BC: .word 0x021C48B8
+_020777C0: .word 0x0000045C
+_020777C4: .word 0x0000069E
+_020777C8: .word 0x000005C8
+_020777CC: .word 0x0000E007
+_020777D0: .word 0x0000E006
+
+ thumb_func_start FUN_020777D4
+FUN_020777D4: ; 0x020777D4
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ ldr r0, [r5, #0x0]
+ add r4, r1, #0x0
+ cmp r0, #0x0
+ bne _02077836
+ ldr r0, [r5, #0x4]
+ cmp r0, #0x0
+ bne _020777FE
+ bl FUN_0201B9EC
+ mov r1, #0x12
+ blx _s32_div_f
+ mov r0, #0x17
+ lsl r0, r0, #0x4
+ ldr r0, [r5, r0]
+ bl FUN_0200A914
+ add r6, r0, #0x0
+ b _0207781A
+_020777FE:
+ cmp r0, #0x1
+ bne _0207781A
+ bl FUN_0201B9EC
+ mov r1, #0x12
+ blx _s32_div_f
+ mov r0, #0x17
+ lsl r0, r0, #0x4
+ ldr r0, [r5, r0]
+ add r1, #0x12
+ bl FUN_0200A914
+ add r6, r0, #0x0
+_0207781A:
+ ldr r0, [r4, #0x18]
+ add r1, r6, #0x0
+ bl FUN_02021A74
+ add r0, r6, #0x0
+ bl FUN_02021A20
+ ldr r0, [r4, #0x18]
+ add r4, #0x1c
+ add r1, r4, #0x0
+ mov r2, #0xa
+ bl FUN_02021EF0
+ pop {r4-r6, pc}
+_02077836:
+ cmp r0, #0x3
+ bne _02077864
+ mov r0, #0x17
+ lsl r0, r0, #0x4
+ ldr r0, [r5, r0]
+ mov r1, #0x58
+ bl FUN_0200A914
+ add r5, r0, #0x0
+ ldr r0, [r4, #0x18]
+ add r1, r5, #0x0
+ bl FUN_02021A74
+ add r0, r5, #0x0
+ bl FUN_02021A20
+ ldr r0, [r4, #0x18]
+ add r4, #0x1c
+ add r1, r4, #0x0
+ mov r2, #0xa
+ bl FUN_02021EF0
+ pop {r4-r6, pc}
+_02077864:
+ mov r0, #0x1
+ str r0, [r4, #0x14]
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_0207786C
+FUN_0207786C: ; 0x0207786C
+ push {r4-r5}
+ ldr r1, _0207788C ; =0x000001DE
+ ldr r2, _02077890 ; =0x0000FFFF
+ mov r5, #0x1
+ mov r3, #0x0
+_02077876:
+ ldrh r4, [r0, #0x0]
+ cmp r4, r2
+ beq _02077886
+ cmp r4, r1
+ beq _02077882
+ add r5, r3, #0x0
+_02077882:
+ add r0, r0, #0x2
+ b _02077876
+_02077886:
+ add r0, r5, #0x0
+ pop {r4-r5}
+ bx lr
+ .balign 4
+_0207788C: .word 0x000001DE
+_02077890: .word 0x0000FFFF
+
+ thumb_func_start FUN_02077894
+FUN_02077894: ; 0x02077894
+ push {r4-r7, lr}
+ sub sp, #0x14
+ str r0, [sp, #0x10]
+ bl FUN_02006278
+ add r4, r0, #0x0
+ ldr r0, [sp, #0x10]
+ bl FUN_0200628C
+ add r5, r0, #0x0
+ mov r0, #0x56
+ lsl r0, r0, #0x2
+ ldrh r0, [r4, r0]
+ ldr r1, _02077A6C ; =0x0000FFFF
+ lsl r0, r0, #0x1
+ add r0, r4, r0
+ add r0, #0xd8
+ strh r1, [r0, #0x0]
+ ldr r0, [r4, #0x0]
+ cmp r0, #0x1
+ bne _020778DE
+ mov r0, #0x12
+ bl FUN_020669C0
+ mov r3, #0xa
+ str r3, [sp, #0x0]
+ str r3, [sp, #0x4]
+ str r3, [sp, #0x8]
+ str r3, [sp, #0xc]
+ ldr r1, [r4, #0x4]
+ add r6, r0, #0x0
+ mov r2, #0x5
+ bl FUN_02066ACC
+ add r0, r6, #0x0
+ bl FUN_02016A18
+_020778DE:
+ mov r1, #0x56
+ lsl r1, r1, #0x2
+ ldrh r0, [r4, r1]
+ cmp r0, #0x0
+ beq _02077904
+ add r0, r4, #0x0
+ sub r1, #0x40
+ add r0, #0xd8
+ add r1, r4, r1
+ bl StringNotEqual
+ cmp r0, #0x0
+ beq _02077904
+ add r0, r4, #0x0
+ add r0, #0xd8
+ bl FUN_0207786C
+ cmp r0, #0x0
+ beq _0207790E
+_02077904:
+ add r0, r4, #0x0
+ add r1, r5, #0x0
+ bl FUN_020777D4
+ b _02077932
+_0207790E:
+ mov r0, #0x46
+ lsl r0, r0, #0x2
+ add r1, r4, #0x0
+ add r0, r4, r0
+ add r1, #0xd8
+ bl StringCopy
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ add r0, #0x1c
+ add r1, #0xd8
+ bl StringCopy
+ add r1, r4, #0x0
+ ldr r0, [r5, #0x18]
+ add r1, #0xd8
+ bl FUN_02021E28
+_02077932:
+ mov r0, #0x61
+ lsl r0, r0, #0x2
+ ldr r0, [r4, r0]
+ bl FUN_02021A20
+ mov r7, #0xe7
+ mov r6, #0x0
+ add r5, r4, #0x0
+ lsl r7, r7, #0x2
+_02077944:
+ ldr r0, [r5, r7]
+ bl FUN_0200621C
+ add r6, r6, #0x1
+ add r5, r5, #0x4
+ cmp r6, #0x7
+ blt _02077944
+ mov r0, #0xb1
+ lsl r0, r0, #0x2
+ ldr r0, [r4, r0]
+ bl FUN_02009C0C
+ mov r0, #0xb5
+ lsl r0, r0, #0x2
+ ldr r0, [r4, r0]
+ bl FUN_02009C0C
+ mov r0, #0xb2
+ lsl r0, r0, #0x2
+ ldr r0, [r4, r0]
+ bl FUN_02009E04
+ mov r0, #0xb6
+ lsl r0, r0, #0x2
+ ldr r0, [r4, r0]
+ bl FUN_02009E04
+ mov r7, #0xad
+ mov r6, #0x0
+ add r5, r4, #0x0
+ lsl r7, r7, #0x2
+_02077982:
+ ldr r0, [r5, r7]
+ bl FUN_02008E2C
+ add r6, r6, #0x1
+ add r5, r5, #0x4
+ cmp r6, #0x4
+ blt _02077982
+ mov r0, #0x62
+ lsl r0, r0, #0x2
+ ldr r0, [r4, r0]
+ bl FUN_0201FD58
+ bl FUN_02009FA0
+ ldr r1, _02077A70 ; =0x000004AC
+ mov r0, #0x12
+ ldr r1, [r4, r1]
+ bl FUN_02016A8C
+ ldr r0, [r4, #0x0]
+ cmp r0, #0x1
+ bne _020779C2
+ ldr r1, _02077A74 ; =0x000004B4
+ mov r0, #0x12
+ ldr r1, [r4, r1]
+ bl FUN_02016A8C
+ ldr r1, _02077A78 ; =0x000004BC
+ mov r0, #0x12
+ ldr r1, [r4, r1]
+ bl FUN_02016A8C
+_020779C2:
+ mov r0, #0x16
+ lsl r0, r0, #0x4
+ ldr r0, [r4, r0]
+ mov r1, #0x7
+ bl FUN_020178A0
+ bl FUN_0201D12C
+ bl FUN_0201E08C
+ mov r0, #0x16
+ lsl r0, r0, #0x4
+ mov r1, #0xee
+ lsl r1, r1, #0x2
+ ldr r0, [r4, r0]
+ add r1, r4, r1
+ bl FUN_02077FA8
+ mov r0, #0x0
+ bl FUN_02002CC0
+ mov r2, #0x1
+ lsl r2, r2, #0x1a
+ ldr r1, [r2, #0x0]
+ ldr r0, _02077A7C ; =0xFFFF1FFF
+ and r0, r1
+ str r0, [r2, #0x0]
+ mov r0, #0x2
+ bl FUN_02002CF8
+ mov r0, #0x6
+ lsl r0, r0, #0x6
+ ldr r0, [r4, r0]
+ cmp r0, #0x0
+ beq _02077A0C
+ bl FUN_02021A20
+_02077A0C:
+ mov r0, #0x5e
+ lsl r0, r0, #0x2
+ ldr r0, [r4, r0]
+ bl FUN_02021A20
+ mov r0, #0x5f
+ lsl r0, r0, #0x2
+ ldr r0, [r4, r0]
+ bl FUN_02021A20
+ mov r0, #0x5d
+ lsl r0, r0, #0x2
+ ldr r0, [r4, r0]
+ bl FUN_0200A8B8
+ mov r0, #0x17
+ lsl r0, r0, #0x4
+ ldr r0, [r4, r0]
+ bl FUN_0200A8B8
+ mov r0, #0x5b
+ lsl r0, r0, #0x2
+ ldr r0, [r4, r0]
+ bl FUN_0200A8B8
+ mov r0, #0x5a
+ lsl r0, r0, #0x2
+ ldr r0, [r4, r0]
+ bl FUN_0200AB18
+ ldr r0, [sp, #0x10]
+ bl FUN_0200627C
+ mov r0, #0x0
+ add r1, r0, #0x0
+ bl FUN_02015F10
+ mov r0, #0x12
+ bl FUN_020168D0
+ ldr r0, _02077A80 ; =0x021C4918
+ mov r1, #0x0
+ strb r1, [r0, #0x5]
+ bl FUN_0201E7A0
+ mov r0, #0x1
+ add sp, #0x14
+ pop {r4-r7, pc}
+ .balign 4
+_02077A6C: .word 0x0000FFFF
+_02077A70: .word 0x000004AC
+_02077A74: .word 0x000004B4
+_02077A78: .word 0x000004BC
+_02077A7C: .word 0xFFFF1FFF
+_02077A80: .word 0x021C4918
+
+ thumb_func_start FUN_02077A84
+FUN_02077A84: ; 0x02077A84
+ push {r3-r7, lr}
+ add r6, r1, #0x0
+ mov r1, #0x50
+ str r0, [sp, #0x0]
+ add r7, r2, #0x0
+ add r5, r3, #0x0
+ bl FUN_02016998
+ add r4, r0, #0x0
+ str r6, [r4, #0x0]
+ str r7, [r4, #0x4]
+ str r5, [r4, #0xc]
+ mov r0, #0x0
+ str r0, [r4, #0x14]
+ ldr r0, _02077AC0 ; =0x0000FFFF
+ ldr r1, [sp, #0x0]
+ strh r0, [r4, #0x1c]
+ add r0, r5, #0x1
+ bl FUN_020219F4
+ str r0, [r4, #0x18]
+ mov r1, #0x0
+ str r1, [r4, #0x44]
+ str r1, [r4, #0x48]
+ ldr r0, [sp, #0x18]
+ str r1, [r4, #0x10]
+ str r0, [r4, #0x4c]
+ str r1, [r4, #0x8]
+ add r0, r4, #0x0
+ pop {r3-r7, pc}
+ .balign 4
+_02077AC0: .word 0x0000FFFF
+
+ thumb_func_start FUN_02077AC4
+FUN_02077AC4: ; 0x02077AC4
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r0, [r4, #0x18]
+ cmp r0, #0x0
+ bne _02077AD2
+ bl ErrorHandling
+_02077AD2:
+ cmp r4, #0x0
+ bne _02077ADA
+ bl ErrorHandling
+_02077ADA:
+ ldr r0, [r4, #0x18]
+ bl FUN_02021A20
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ pop {r4, pc}
+
+ thumb_func_start FUN_02077AE8
+FUN_02077AE8: ; 0x02077AE8
+ push {r3, lr}
+ bl FUN_0201C30C
+ bl FUN_02009F80
+ ldr r3, _02077B00 ; =0x027E0000
+ ldr r1, _02077B04 ; =0x00003FF8
+ mov r0, #0x1
+ ldr r2, [r3, r1]
+ orr r0, r2
+ str r0, [r3, r1]
+ pop {r3, pc}
+ .balign 4
+_02077B00: .word 0x027E0000
+_02077B04: .word 0x00003FF8
+
+ thumb_func_start FUN_02077B08
+FUN_02077B08: ; 0x02077B08
+ ldr r2, [r1, #0x0]
+ str r2, [r0, #0x0]
+ ldr r2, [r1, #0x4]
+ str r2, [r0, #0x4]
+ ldr r2, [r1, #0x8]
+ str r2, [r0, #0x8]
+ ldr r2, [r1, #0xc]
+ str r2, [r0, #0xc]
+ ldr r2, [r1, #0x10]
+ str r2, [r0, #0x10]
+ ldr r1, [r1, #0x4c]
+ str r1, [r0, #0x18]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02077B24
+FUN_02077B24: ; 0x02077B24
+ push {r4, lr}
+ sub sp, #0x28
+ ldr r4, _02077B40 ; =0x020FA12C
+ add r3, sp, #0x0
+ mov r2, #0x5
+_02077B2E:
+ ldmia r4!, {r0-r1}
+ stmia r3!, {r0-r1}
+ sub r2, r2, #0x1
+ bne _02077B2E
+ add r0, sp, #0x0
+ bl FUN_0201E66C
+ add sp, #0x28
+ pop {r4, pc}
+ .balign 4
+_02077B40: .word 0x020FA12C
+
+ thumb_func_start FUN_02077B44
+FUN_02077B44: ; 0x02077B44
+ push {r3-r5, lr}
+ sub sp, #0x80
+ ldr r5, _02077C68 ; =0x020F9D4C
+ add r3, sp, #0x70
+ add r4, r0, #0x0
+ add r2, r3, #0x0
+ ldmia r5!, {r0-r1}
+ stmia r3!, {r0-r1}
+ ldmia r5!, {r0-r1}
+ stmia r3!, {r0-r1}
+ add r0, r2, #0x0
+ bl FUN_02016BBC
+ ldr r5, _02077C6C ; =0x020F9EC0
+ add r3, sp, #0x54
+ ldmia r5!, {r0-r1}
+ add r2, r3, #0x0
+ stmia r3!, {r0-r1}
+ ldmia r5!, {r0-r1}
+ stmia r3!, {r0-r1}
+ ldmia r5!, {r0-r1}
+ stmia r3!, {r0-r1}
+ ldr r0, [r5, #0x0]
+ mov r1, #0x0
+ str r0, [r3, #0x0]
+ add r0, r4, #0x0
+ add r3, r1, #0x0
+ bl FUN_02016C18
+ add r0, r4, #0x0
+ mov r1, #0x0
+ bl FUN_02018744
+ ldr r5, _02077C70 ; =0x020F9FA0
+ add r3, sp, #0x38
+ ldmia r5!, {r0-r1}
+ add r2, r3, #0x0
+ stmia r3!, {r0-r1}
+ ldmia r5!, {r0-r1}
+ stmia r3!, {r0-r1}
+ ldmia r5!, {r0-r1}
+ stmia r3!, {r0-r1}
+ ldr r0, [r5, #0x0]
+ mov r1, #0x1
+ str r0, [r3, #0x0]
+ add r0, r4, #0x0
+ mov r3, #0x0
+ bl FUN_02016C18
+ add r0, r4, #0x0
+ mov r1, #0x1
+ bl FUN_02018744
+ ldr r5, _02077C74 ; =0x020FA064
+ add r3, sp, #0x1c
+ ldmia r5!, {r0-r1}
+ add r2, r3, #0x0
+ stmia r3!, {r0-r1}
+ ldmia r5!, {r0-r1}
+ stmia r3!, {r0-r1}
+ ldmia r5!, {r0-r1}
+ stmia r3!, {r0-r1}
+ ldr r0, [r5, #0x0]
+ mov r1, #0x2
+ str r0, [r3, #0x0]
+ add r0, r4, #0x0
+ mov r3, #0x0
+ bl FUN_02016C18
+ add r0, r4, #0x0
+ mov r1, #0x2
+ bl FUN_02018744
+ ldr r5, _02077C78 ; =0x020F9DFC
+ add r3, sp, #0x0
+ ldmia r5!, {r0-r1}
+ add r2, r3, #0x0
+ stmia r3!, {r0-r1}
+ ldmia r5!, {r0-r1}
+ stmia r3!, {r0-r1}
+ ldmia r5!, {r0-r1}
+ stmia r3!, {r0-r1}
+ ldr r0, [r5, #0x0]
+ mov r1, #0x4
+ str r0, [r3, #0x0]
+ add r0, r4, #0x0
+ mov r3, #0x0
+ bl FUN_02016C18
+ add r0, r4, #0x0
+ mov r1, #0x4
+ bl FUN_02018744
+ mov r0, #0x0
+ bl FUN_02077C84
+ mov r0, #0x0
+ mov r1, #0x20
+ add r2, r0, #0x0
+ mov r3, #0x12
+ bl FUN_02017F18
+ mov r0, #0x4
+ mov r1, #0x20
+ mov r2, #0x0
+ mov r3, #0x12
+ bl FUN_02017F18
+ mov r0, #0x1
+ lsl r0, r0, #0x1a
+ add r4, r0, #0x0
+ ldr r2, [r0, #0x0]
+ ldr r1, _02077C7C ; =0xFFFF1FFF
+ add r4, #0x48
+ and r2, r1
+ lsr r1, r0, #0xd
+ orr r1, r2
+ str r1, [r0, #0x0]
+ ldrh r3, [r4, #0x0]
+ mov r2, #0x3f
+ mov r1, #0x14
+ bic r3, r2
+ orr r1, r3
+ mov r3, #0x20
+ orr r1, r3
+ strh r1, [r4, #0x0]
+ add r4, r0, #0x0
+ add r4, #0x4a
+ ldrh r5, [r4, #0x0]
+ mov r1, #0x1f
+ bic r5, r2
+ orr r1, r5
+ orr r1, r3
+ strh r1, [r4, #0x0]
+ add r1, r0, #0x0
+ mov r2, #0xff
+ add r1, #0x40
+ strh r2, [r1, #0x0]
+ mov r1, #0x40
+ add r0, #0x44
+ strh r1, [r0, #0x0]
+ ldr r0, _02077C80 ; =0x04001050
+ mov r1, #0x0
+ strh r1, [r0, #0x0]
+ add sp, #0x80
+ pop {r3-r5, pc}
+ .balign 4
+_02077C68: .word 0x020F9D4C
+_02077C6C: .word 0x020F9EC0
+_02077C70: .word 0x020F9FA0
+_02077C74: .word 0x020FA064
+_02077C78: .word 0x020F9DFC
+_02077C7C: .word 0xFFFF1FFF
+_02077C80: .word 0x04001050
+
+ thumb_func_start FUN_02077C84
+FUN_02077C84: ; 0x02077C84
+ push {r4, lr}
+ add r4, r0, #0x0
+ lsl r1, r4, #0x18
+ mov r0, #0x1
+ lsr r1, r1, #0x18
+ bl FUN_0201E6E4
+ lsl r1, r4, #0x18
+ mov r0, #0x2
+ lsr r1, r1, #0x18
+ bl FUN_0201E6E4
+ lsl r1, r4, #0x18
+ mov r0, #0x4
+ lsr r1, r1, #0x18
+ bl FUN_0201E6E4
+ mov r0, #0x8
+ mov r1, #0x0
+ bl FUN_0201E6E4
+ lsl r1, r4, #0x18
+ mov r0, #0x10
+ lsr r1, r1, #0x18
+ bl FUN_0201E6E4
+ lsl r1, r4, #0x18
+ mov r0, #0x1
+ lsr r1, r1, #0x18
+ bl FUN_0201E74C
+ mov r0, #0x2
+ mov r1, #0x0
+ bl FUN_0201E74C
+ mov r0, #0x10
+ mov r1, #0x0
+ bl FUN_0201E74C
+ pop {r4, pc}
+
+ thumb_func_start FUN_02077CD4
+FUN_02077CD4: ; 0x02077CD4
+ push {r3-r7, lr}
+ sub sp, #0x10
+ add r4, r0, #0x0
+ add r0, r1, #0x0
+ bl FUN_0200628C
+ add r7, r0, #0x0
+ ldr r0, _02077E7C ; =0x0000045C
+ mov r1, #0x4
+ str r1, [r4, r0]
+ add r0, #0xc
+ add r0, r4, r0
+ mov r1, #0x0
+ bl FUN_02078BA8
+ ldr r6, _02077E80 ; =0x00000464
+ mov r0, #0x16
+ ldr r3, [r4, r6]
+ mov r5, #0xc
+ lsl r0, r0, #0x4
+ lsl r1, r3, #0x18
+ mul r5, r3
+ add r3, r4, r5
+ add r5, r6, #0x4
+ ldr r0, [r4, r0]
+ ldr r3, [r3, r5]
+ lsr r1, r1, #0x18
+ mov r2, #0x0
+ bl FUN_020179E0
+ ldr r3, [r4, r6]
+ mov r5, #0xc
+ mov r0, #0x16
+ lsl r0, r0, #0x4
+ lsl r1, r3, #0x18
+ mul r5, r3
+ add r3, r4, r5
+ add r6, #0x8
+ ldr r0, [r4, r0]
+ ldr r3, [r3, r6]
+ lsr r1, r1, #0x18
+ mov r2, #0x3
+ bl FUN_020179E0
+ ldr r6, _02077E80 ; =0x00000464
+ mov r0, #0x1
+ ldr r1, [r4, r6]
+ mov r5, #0xc
+ add r3, r1, #0x0
+ eor r3, r0
+ mov r0, #0x16
+ lsl r0, r0, #0x4
+ lsl r1, r3, #0x18
+ mul r5, r3
+ add r3, r4, r5
+ add r5, r6, #0x4
+ ldr r0, [r4, r0]
+ ldr r3, [r3, r5]
+ lsr r1, r1, #0x18
+ mov r2, #0x0
+ bl FUN_020179E0
+ ldr r1, [r4, r6]
+ mov r0, #0x1
+ add r3, r1, #0x0
+ eor r3, r0
+ mov r5, #0xc
+ mov r0, #0x16
+ lsl r0, r0, #0x4
+ lsl r1, r3, #0x18
+ mul r5, r3
+ add r3, r4, r5
+ add r6, #0x8
+ ldr r0, [r4, r0]
+ ldr r3, [r3, r6]
+ lsr r1, r1, #0x18
+ mov r2, #0x3
+ bl FUN_020179E0
+ mov r1, #0x46
+ ldr r0, _02077E84 ; =0x0000FFFF
+ lsl r1, r1, #0x2
+ strh r0, [r4, r1]
+ ldr r0, [r7, #0x18]
+ cmp r0, #0x0
+ beq _02077D88
+ add r1, r4, r1
+ mov r2, #0x20
+ bl FUN_02021EF0
+_02077D88:
+ add r1, r4, #0x0
+ mov r0, #0x1
+ add r1, #0xd8
+ mov r2, #0x40
+ blx MIi_CpuClear16
+ ldr r0, [r4, #0x0]
+ cmp r0, #0x1
+ bne _02077DCE
+ mov r0, #0x12
+ bl FUN_020669C0
+ mov r3, #0xa
+ str r3, [sp, #0x0]
+ str r3, [sp, #0x4]
+ str r3, [sp, #0x8]
+ str r3, [sp, #0xc]
+ ldr r1, [r4, #0x4]
+ add r5, r0, #0x0
+ mov r2, #0x5
+ bl FUN_02066ACC
+ add r0, r5, #0x0
+ bl FUN_020690E4
+ add r2, r0, #0x0
+ mov r0, #0x5a
+ lsl r0, r0, #0x2
+ ldr r0, [r4, r0]
+ mov r1, #0x0
+ bl FUN_0200AC60
+ add r0, r5, #0x0
+ bl FUN_02016A18
+_02077DCE:
+ ldr r0, [r7, #0x44]
+ cmp r0, #0x0
+ beq _02077DD8
+ mov r0, #0x1
+ str r0, [r4, #0x14]
+_02077DD8:
+ ldr r2, [r4, #0x0]
+ mov r1, #0x5a
+ lsl r1, r1, #0x2
+ lsl r3, r2, #0x2
+ ldr r2, _02077E88 ; =0x020FA0A0
+ ldr r0, [r4, r1]
+ add r1, r1, #0x4
+ ldr r2, [r2, r3]
+ ldr r1, [r4, r1]
+ mov r3, #0x12
+ bl FUN_0200A9C4
+ mov r1, #0x5e
+ lsl r1, r1, #0x2
+ str r0, [r4, r1]
+ add r0, r1, #0x0
+ sub r0, #0x10
+ sub r1, #0xc
+ ldr r0, [r4, r0]
+ ldr r1, [r4, r1]
+ mov r2, #0x8
+ mov r3, #0x12
+ bl FUN_0200A9C4
+ mov r1, #0x5f
+ lsl r1, r1, #0x2
+ str r0, [r4, r1]
+ sub r1, #0x10
+ ldr r0, [r4, r1]
+ mov r1, #0x7
+ bl FUN_0200A914
+ mov r1, #0x61
+ lsl r1, r1, #0x2
+ str r0, [r4, r1]
+ sub r1, #0x6c
+ add r0, r4, r1
+ bl StringLength
+ mov r1, #0x56
+ lsl r1, r1, #0x2
+ strh r0, [r4, r1]
+ mov r0, #0x0
+ str r0, [r4, #0x1c]
+ mov r1, #0x1
+ str r1, [r4, #0x20]
+ sub r1, r1, #0x2
+ str r1, [r4, #0x24]
+ str r1, [r4, #0x28]
+ str r0, [r4, #0x30]
+ ldr r2, _02077E8C ; =0x00000484
+ str r0, [r4, #0x34]
+ str r1, [r4, r2]
+ add r1, r2, #0x4
+ str r0, [r4, r1]
+ add r2, #0x8
+ str r0, [r4, r2]
+ ldr r1, [r4, #0xc]
+ ldr r2, _02077E84 ; =0x0000FFFF
+ lsl r1, r1, #0x1
+ add r1, r4, r1
+ add r1, #0xd8
+ strh r2, [r1, #0x0]
+ mov r1, #0x49
+ add r3, r4, #0x0
+ add r2, r0, #0x0
+ lsl r1, r1, #0x4
+_02077E5E:
+ add r0, r0, #0x1
+ str r2, [r3, r1]
+ add r3, r3, #0x4
+ cmp r0, #0x7
+ blt _02077E5E
+ ldr r0, [r4, #0x0]
+ cmp r0, #0x4
+ beq _02077E76
+ mov r0, #0x49
+ mov r1, #0x1
+ lsl r0, r0, #0x4
+ str r1, [r4, r0]
+_02077E76:
+ add sp, #0x10
+ pop {r3-r7, pc}
+ nop
+_02077E7C: .word 0x0000045C
+_02077E80: .word 0x00000464
+_02077E84: .word 0x0000FFFF
+_02077E88: .word 0x020FA0A0
+_02077E8C: .word 0x00000484
+
+ thumb_func_start FUN_02077E90
+FUN_02077E90: ; 0x02077E90
+ push {r4-r7, lr}
+ sub sp, #0x14
+ add r5, r0, #0x0
+ add r0, r1, #0x0
+ bl FUN_0200628C
+ add r4, r0, #0x0
+ ldr r0, [r4, #0x44]
+ cmp r0, #0x0
+ beq _02077FA0
+ mov r0, #0xc8
+ mov r1, #0x12
+ bl FUN_020219F4
+ add r7, r0, #0x0
+ mov r0, #0x6
+ mov r1, #0x0
+ lsl r0, r0, #0x6
+ str r1, [r5, r0]
+ ldr r0, [r4, #0x48]
+ bl FUN_0206B330
+ add r6, r0, #0x0
+ ldr r0, [r4, #0x48]
+ bl FUN_0206B334
+ str r0, [sp, #0x10]
+ mov r0, #0x5a
+ lsl r0, r0, #0x2
+ ldr r0, [r5, r0]
+ ldr r2, [r4, #0x48]
+ mov r1, #0x1
+ add r3, r6, #0x0
+ bl FUN_0200B410
+ ldr r0, [sp, #0x10]
+ cmp r6, r0
+ beq _02077EF4
+ mov r0, #0x5a
+ lsl r0, r0, #0x2
+ ldr r0, [r5, r0]
+ ldr r2, [r4, #0x48]
+ ldr r3, [sp, #0x10]
+ mov r1, #0x2
+ bl FUN_0200B410
+ ldr r0, [r4, #0x44]
+ add r0, r0, #0x2
+ str r0, [r4, #0x44]
+ b _02077F04
+_02077EF4:
+ mov r0, #0x5a
+ lsl r0, r0, #0x2
+ ldr r0, [r5, r0]
+ ldr r2, [r4, #0x48]
+ mov r1, #0x2
+ add r3, r6, #0x0
+ bl FUN_0200B410
+_02077F04:
+ mov r0, #0x56
+ lsl r0, r0, #0x2
+ ldrh r0, [r5, r0]
+ cmp r0, #0x0
+ beq _02077F1A
+ add r0, r5, #0x0
+ add r0, #0xd8
+ bl FUN_0207786C
+ cmp r0, #0x0
+ beq _02077F50
+_02077F1A:
+ mov r0, #0x12
+ bl FUN_020669C0
+ mov r3, #0x0
+ str r3, [sp, #0x0]
+ str r3, [sp, #0x4]
+ str r3, [sp, #0x8]
+ str r3, [sp, #0xc]
+ ldr r1, [r5, #0x4]
+ add r6, r0, #0x0
+ mov r2, #0x1
+ bl FUN_02066ACC
+ add r0, r6, #0x0
+ bl FUN_020690E4
+ add r2, r0, #0x0
+ mov r0, #0x5a
+ lsl r0, r0, #0x2
+ ldr r0, [r5, r0]
+ mov r1, #0x0
+ bl FUN_0200AC60
+ add r0, r6, #0x0
+ bl FUN_02016A18
+ b _02077F7E
+_02077F50:
+ mov r1, #0x56
+ lsl r1, r1, #0x2
+ ldrh r1, [r5, r1]
+ ldr r0, _02077FA4 ; =0x0000FFFF
+ lsl r1, r1, #0x1
+ add r1, r5, r1
+ add r1, #0xd8
+ strh r0, [r1, #0x0]
+ add r1, r5, #0x0
+ add r0, r7, #0x0
+ add r1, #0xd8
+ bl FUN_02021E28
+ mov r1, #0x0
+ str r1, [sp, #0x0]
+ mov r0, #0x5a
+ str r1, [sp, #0x4]
+ lsl r0, r0, #0x2
+ ldr r0, [r5, r0]
+ add r2, r7, #0x0
+ add r3, r1, #0x0
+ bl FUN_0200ABB4
+_02077F7E:
+ mov r1, #0x5a
+ lsl r1, r1, #0x2
+ ldr r0, [r5, r1]
+ add r1, #0xc
+ ldr r1, [r5, r1]
+ ldr r2, [r4, #0x44]
+ mov r3, #0x12
+ bl FUN_0200A9C4
+ mov r1, #0x6
+ lsl r1, r1, #0x6
+ str r0, [r5, r1]
+ mov r0, #0x1
+ str r0, [r5, #0x14]
+ add r0, r7, #0x0
+ bl FUN_02021A20
+_02077FA0:
+ add sp, #0x14
+ pop {r4-r7, pc}
+ .balign 4
+_02077FA4: .word 0x0000FFFF
+
+ thumb_func_start FUN_02077FA8
+FUN_02077FA8: ; 0x02077FA8
+ push {r4-r6, lr}
+ add r6, r0, #0x0
+ add r5, r1, #0x0
+ mov r4, #0x0
+_02077FB0:
+ add r0, r5, #0x0
+ bl FUN_02019178
+ add r4, r4, #0x1
+ add r5, #0x10
+ cmp r4, #0xa
+ blt _02077FB0
+ add r0, r6, #0x0
+ mov r1, #0x4
+ bl FUN_020178A0
+ add r0, r6, #0x0
+ mov r1, #0x2
+ bl FUN_020178A0
+ add r0, r6, #0x0
+ mov r1, #0x1
+ bl FUN_020178A0
+ add r0, r6, #0x0
+ mov r1, #0x0
+ bl FUN_020178A0
+ mov r0, #0x12
+ add r1, r6, #0x0
+ bl FUN_02016A8C
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_02077FE8
+FUN_02077FE8: ; 0x02077FE8
+ push {r3-r5, lr}
+ sub sp, #0x10
+ add r5, r0, #0x0
+ mov r0, #0x16
+ lsl r0, r0, #0x4
+ ldr r4, [r5, r0]
+ mov r1, #0x0
+ mov r0, #0x60
+ str r0, [sp, #0x0]
+ mov r0, #0x12
+ str r0, [sp, #0x4]
+ mov r0, #0x1f
+ add r2, r1, #0x0
+ add r3, r1, #0x0
+ bl FUN_02006930
+ mov r0, #0x20
+ str r0, [sp, #0x0]
+ mov r0, #0x12
+ str r0, [sp, #0x4]
+ mov r0, #0xc
+ add r1, r0, #0x0
+ mov r2, #0x4
+ mov r3, #0x0
+ bl FUN_02006930
+ mov r0, #0x4
+ mov r1, #0x0
+ bl FUN_02017FE4
+ mov r0, #0x0
+ str r0, [sp, #0x0]
+ mov r0, #0x2
+ lsl r0, r0, #0xc
+ str r0, [sp, #0x4]
+ mov r0, #0x1
+ str r0, [sp, #0x8]
+ mov r0, #0x12
+ mov r1, #0x2
+ str r0, [sp, #0xc]
+ mov r0, #0x1f
+ add r2, r4, #0x0
+ add r3, r1, #0x0
+ bl FUN_0200687C
+ mov r0, #0x0
+ str r0, [sp, #0x0]
+ mov r0, #0x6
+ lsl r0, r0, #0x8
+ str r0, [sp, #0x4]
+ mov r0, #0x1
+ str r0, [sp, #0x8]
+ mov r0, #0x12
+ str r0, [sp, #0xc]
+ mov r0, #0x1f
+ mov r1, #0x4
+ add r2, r4, #0x0
+ mov r3, #0x2
+ bl FUN_020068C8
+ mov r0, #0x0
+ str r0, [sp, #0x0]
+ mov r0, #0x2
+ lsl r0, r0, #0xc
+ str r0, [sp, #0x4]
+ mov r3, #0x1
+ str r3, [sp, #0x8]
+ mov r0, #0x12
+ str r0, [sp, #0xc]
+ mov r0, #0x1f
+ mov r1, #0x2
+ add r2, r4, #0x0
+ bl FUN_0200687C
+ mov r0, #0x0
+ str r0, [sp, #0x0]
+ mov r0, #0xe
+ lsl r0, r0, #0x6
+ str r0, [sp, #0x4]
+ mov r3, #0x1
+ str r3, [sp, #0x8]
+ mov r0, #0x12
+ str r0, [sp, #0xc]
+ mov r0, #0x1f
+ mov r1, #0x6
+ add r2, r4, #0x0
+ bl FUN_020068C8
+ mov r3, #0x0
+ mov r0, #0xe
+ str r3, [sp, #0x0]
+ lsl r0, r0, #0x6
+ str r0, [sp, #0x4]
+ mov r0, #0x1
+ str r0, [sp, #0x8]
+ mov r0, #0x12
+ str r0, [sp, #0xc]
+ mov r0, #0x1f
+ mov r1, #0x7
+ add r2, r4, #0x0
+ bl FUN_020068C8
+ mov r1, #0x6
+ mov r0, #0x0
+ lsl r1, r1, #0x6
+ mov r2, #0x12
+ bl FUN_02002EEC
+ ldr r0, [r5, #0x18]
+ bl FUN_02025084
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x0]
+ mov r0, #0x12
+ str r0, [sp, #0x4]
+ mov r0, #0x16
+ lsl r0, r0, #0x4
+ mov r1, #0x4
+ add r2, r1, #0x0
+ ldr r0, [r5, r0]
+ add r2, #0xfc
+ mov r3, #0xa
+ bl FUN_0200CD68
+ mov r1, #0x6
+ mov r0, #0x4
+ lsl r1, r1, #0x6
+ mov r2, #0x12
+ bl FUN_02002EEC
+ mov r3, #0x4b
+ mov r0, #0x12
+ lsl r3, r3, #0x4
+ str r0, [sp, #0x0]
+ mov r0, #0x1f
+ mov r1, #0x10
+ mov r2, #0x1
+ add r3, r5, r3
+ bl FUN_02006BB0
+ ldr r1, _0207810C ; =0x000004AC
+ str r0, [r5, r1]
+ add sp, #0x10
+ pop {r3-r5, pc}
+ nop
+_0207810C: .word 0x000004AC
+
+ thumb_func_start FUN_02078110
+FUN_02078110: ; 0x02078110
+ push {r4, lr}
+ sub sp, #0x10
+ ldr r4, _0207813C ; =0x020F9D5C
+ add r3, sp, #0x0
+ add r2, r3, #0x0
+ ldmia r4!, {r0-r1}
+ stmia r3!, {r0-r1}
+ ldmia r4!, {r0-r1}
+ stmia r3!, {r0-r1}
+ add r0, r2, #0x0
+ bl FUN_0201D040
+ mov r0, #0x14
+ mov r1, #0x12
+ bl FUN_0201E00C
+ bl FUN_0201D168
+ bl FUN_0201E0BC
+ add sp, #0x10
+ pop {r4, pc}
+ .balign 4
+_0207813C: .word 0x020F9D5C
+
+ thumb_func_start FUN_02078140
+FUN_02078140: ; 0x02078140
+ push {r4-r7, lr}
+ sub sp, #0x14
+ add r5, r0, #0x0
+ blx FUN_020B0FC0
+ mov r0, #0x0
+ str r0, [sp, #0x0]
+ mov r1, #0x80
+ str r1, [sp, #0x4]
+ str r0, [sp, #0x8]
+ mov r3, #0x20
+ str r3, [sp, #0xc]
+ mov r2, #0x12
+ str r2, [sp, #0x10]
+ add r2, r0, #0x0
+ bl FUN_02009EAC
+ mov r1, #0x63
+ lsl r1, r1, #0x2
+ mov r0, #0x2c
+ add r1, r5, r1
+ mov r2, #0x12
+ bl FUN_02008C9C
+ mov r1, #0x62
+ lsl r1, r1, #0x2
+ str r0, [r5, r1]
+ add r0, r1, #0x4
+ mov r2, #0x1
+ add r0, r5, r0
+ mov r1, #0x0
+ lsl r2, r2, #0x14
+ bl FUN_02008D24
+ mov r7, #0xad
+ mov r6, #0x0
+ add r4, r5, #0x0
+ lsl r7, r7, #0x2
+_0207818C:
+ mov r0, #0x2
+ add r1, r6, #0x0
+ mov r2, #0x12
+ bl FUN_02008DEC
+ str r0, [r4, r7]
+ add r6, r6, #0x1
+ add r4, r4, #0x4
+ cmp r6, #0x4
+ blt _0207818C
+ mov r0, #0x0
+ str r0, [sp, #0x0]
+ mov r3, #0x1
+ str r3, [sp, #0x4]
+ mov r0, #0x12
+ str r0, [sp, #0x8]
+ mov r0, #0xad
+ lsl r0, r0, #0x2
+ ldr r0, [r5, r0]
+ mov r1, #0x1f
+ mov r2, #0xa
+ bl FUN_02008F34
+ mov r1, #0xb1
+ lsl r1, r1, #0x2
+ str r0, [r5, r1]
+ mov r3, #0x0
+ str r3, [sp, #0x0]
+ mov r2, #0x1
+ str r2, [sp, #0x4]
+ mov r0, #0x9
+ str r0, [sp, #0x8]
+ mov r0, #0x12
+ sub r1, #0xc
+ str r0, [sp, #0xc]
+ ldr r0, [r5, r1]
+ mov r1, #0x1f
+ bl FUN_02008FEC
+ mov r1, #0xb2
+ lsl r1, r1, #0x2
+ str r0, [r5, r1]
+ mov r0, #0x0
+ str r0, [sp, #0x0]
+ mov r0, #0x2
+ str r0, [sp, #0x4]
+ mov r0, #0x12
+ sub r1, #0xc
+ str r0, [sp, #0x8]
+ ldr r0, [r5, r1]
+ mov r1, #0x1f
+ mov r2, #0xc
+ mov r3, #0x1
+ bl FUN_020090AC
+ mov r1, #0xb3
+ lsl r1, r1, #0x2
+ str r0, [r5, r1]
+ mov r0, #0x0
+ str r0, [sp, #0x0]
+ mov r0, #0x3
+ str r0, [sp, #0x4]
+ mov r0, #0x12
+ sub r1, #0xc
+ str r0, [sp, #0x8]
+ ldr r0, [r5, r1]
+ mov r1, #0x1f
+ mov r2, #0xe
+ mov r3, #0x1
+ bl FUN_020090AC
+ mov r1, #0x2d
+ lsl r1, r1, #0x4
+ str r0, [r5, r1]
+ ldr r0, [r5, #0x0]
+ cmp r0, #0x1
+ bne _02078272
+ ldr r0, [r5, #0x4]
+ ldr r2, [r5, #0x8]
+ mov r1, #0x0
+ bl FUN_0206B6D4
+ ldr r3, _0207831C ; =0x000004B8
+ add r1, r0, #0x0
+ mov r0, #0x12
+ str r0, [sp, #0x0]
+ mov r0, #0x13
+ mov r2, #0x0
+ add r3, r5, r3
+ bl FUN_02006BB0
+ ldr r1, _02078320 ; =0x000004B4
+ str r0, [r5, r1]
+ add r0, r1, #0x4
+ mov r1, #0x2
+ ldr r0, [r5, r0]
+ lsl r1, r1, #0x8
+ blx DC_FlushRange
+ bl FUN_0206B888
+ add r1, r0, #0x0
+ mov r0, #0x13
+ lsl r2, r0, #0x6
+ add r2, r5, r2
+ mov r3, #0x12
+ bl FUN_02006C08
+ ldr r1, _02078324 ; =0x000004BC
+ str r0, [r5, r1]
+ add r0, r1, #0x4
+ ldr r0, [r5, r0]
+ mov r1, #0x80
+ blx DC_FlushRange
+_02078272:
+ mov r3, #0x1
+ str r3, [sp, #0x0]
+ mov r0, #0x2
+ str r0, [sp, #0x4]
+ mov r0, #0x12
+ str r0, [sp, #0x8]
+ mov r0, #0xad
+ lsl r0, r0, #0x2
+ ldr r0, [r5, r0]
+ mov r1, #0x1f
+ mov r2, #0xb
+ bl FUN_02008F34
+ mov r1, #0xb5
+ lsl r1, r1, #0x2
+ str r0, [r5, r1]
+ mov r2, #0x1
+ str r2, [sp, #0x0]
+ mov r0, #0x2
+ str r0, [sp, #0x4]
+ mov r0, #0x3
+ str r0, [sp, #0x8]
+ mov r0, #0x12
+ sub r1, #0x1c
+ str r0, [sp, #0xc]
+ ldr r0, [r5, r1]
+ mov r1, #0x1f
+ mov r3, #0x0
+ bl FUN_02008FEC
+ mov r1, #0xb6
+ lsl r1, r1, #0x2
+ str r0, [r5, r1]
+ mov r3, #0x1
+ str r3, [sp, #0x0]
+ mov r0, #0x2
+ str r0, [sp, #0x4]
+ mov r0, #0x12
+ sub r1, #0x1c
+ str r0, [sp, #0x8]
+ ldr r0, [r5, r1]
+ mov r1, #0x1f
+ mov r2, #0xd
+ bl FUN_020090AC
+ mov r1, #0xb7
+ lsl r1, r1, #0x2
+ str r0, [r5, r1]
+ mov r3, #0x1
+ str r3, [sp, #0x0]
+ mov r0, #0x3
+ str r0, [sp, #0x4]
+ mov r0, #0x12
+ sub r1, #0x1c
+ str r0, [sp, #0x8]
+ ldr r0, [r5, r1]
+ mov r1, #0x1f
+ mov r2, #0xf
+ bl FUN_020090AC
+ mov r1, #0x2e
+ lsl r1, r1, #0x4
+ str r0, [r5, r1]
+ sub r1, #0x1c
+ ldr r0, [r5, r1]
+ bl FUN_02009A50
+ mov r0, #0xb5
+ lsl r0, r0, #0x2
+ ldr r0, [r5, r0]
+ bl FUN_02009A50
+ mov r0, #0xb2
+ lsl r0, r0, #0x2
+ ldr r0, [r5, r0]
+ bl FUN_02009CF0
+ mov r0, #0xb6
+ lsl r0, r0, #0x2
+ ldr r0, [r5, r0]
+ bl FUN_02009CF0
+ add sp, #0x14
+ pop {r4-r7, pc}
+ nop
+_0207831C: .word 0x000004B8
+_02078320: .word 0x000004B4
+_02078324: .word 0x000004BC
+
+ thumb_func_start FUN_02078328
+FUN_02078328: ; 0x02078328
+ push {r3-r4, lr}
+ sub sp, #0xc
+ add r4, r1, #0x0
+ ldr r0, [r4, #0x0]
+ bl FUN_0202011C
+ ldr r1, [r0, #0x0]
+ ldr r0, [r4, #0x8]
+ add r0, r1, r0
+ str r0, [sp, #0x0]
+ ldr r0, [r4, #0xc]
+ lsl r1, r0, #0x4
+ ldr r0, _02078358 ; =0x020FA1D8
+ ldr r0, [r0, r1]
+ add r1, sp, #0x0
+ lsl r0, r0, #0xc
+ str r0, [sp, #0x4]
+ mov r0, #0x0
+ str r0, [sp, #0x8]
+ ldr r0, [r4, #0x4]
+ bl FUN_02020044
+ add sp, #0xc
+ pop {r3-r4, pc}
+ .balign 4
+_02078358: .word 0x020FA1D8
+
+ thumb_func_start FUN_0207835C
+FUN_0207835C: ; 0x0207835C
+ push {r4-r7, lr}
+ sub sp, #0x5c
+ mov r1, #0x0
+ add r6, r0, #0x0
+ str r1, [sp, #0x0]
+ sub r0, r1, #0x1
+ str r0, [sp, #0x4]
+ str r0, [sp, #0x8]
+ mov r2, #0xad
+ str r1, [sp, #0xc]
+ mov r0, #0x1
+ lsl r2, r2, #0x2
+ str r0, [sp, #0x10]
+ ldr r0, [r6, r2]
+ add r3, r1, #0x0
+ str r0, [sp, #0x14]
+ add r0, r2, #0x4
+ ldr r0, [r6, r0]
+ str r0, [sp, #0x18]
+ add r0, r2, #0x0
+ add r0, #0x8
+ ldr r0, [r6, r0]
+ str r0, [sp, #0x1c]
+ add r0, r2, #0x0
+ add r0, #0xc
+ ldr r0, [r6, r0]
+ add r2, #0x30
+ str r0, [sp, #0x20]
+ str r1, [sp, #0x24]
+ add r0, r6, r2
+ add r2, r1, #0x0
+ str r1, [sp, #0x28]
+ bl FUN_02008AA4
+ mov r1, #0x1
+ mov r3, #0xad
+ str r1, [sp, #0x0]
+ sub r0, r1, #0x2
+ str r0, [sp, #0x4]
+ str r0, [sp, #0x8]
+ mov r0, #0x0
+ str r0, [sp, #0xc]
+ str r0, [sp, #0x10]
+ lsl r3, r3, #0x2
+ ldr r2, [r6, r3]
+ str r2, [sp, #0x14]
+ add r2, r3, #0x4
+ ldr r2, [r6, r2]
+ str r2, [sp, #0x18]
+ add r2, r3, #0x0
+ add r2, #0x8
+ ldr r2, [r6, r2]
+ str r2, [sp, #0x1c]
+ add r2, r3, #0x0
+ add r2, #0xc
+ ldr r2, [r6, r2]
+ add r3, #0x54
+ str r2, [sp, #0x20]
+ str r0, [sp, #0x24]
+ str r0, [sp, #0x28]
+ add r0, r6, r3
+ add r2, r1, #0x0
+ add r3, r1, #0x0
+ bl FUN_02008AA4
+ mov r0, #0x62
+ lsl r0, r0, #0x2
+ ldr r0, [r6, r0]
+ mov r1, #0x2
+ str r0, [sp, #0x2c]
+ mov r0, #0xb9
+ lsl r0, r0, #0x2
+ add r0, r6, r0
+ str r0, [sp, #0x30]
+ mov r0, #0x6
+ lsl r1, r1, #0x10
+ lsl r0, r0, #0x10
+ str r0, [sp, #0x38]
+ lsr r0, r1, #0x5
+ mov r7, #0x0
+ 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, #0x1
+ str r0, [sp, #0x50]
+ str r0, [sp, #0x54]
+ mov r0, #0x12
+ ldr r4, _02078528 ; =0x020FA1D4
+ str r0, [sp, #0x58]
+ add r5, r6, #0x0
+_02078418:
+ ldr r0, [r4, #0x0]
+ lsl r0, r0, #0xc
+ str r0, [sp, #0x34]
+ ldr r0, [r4, #0x4]
+ lsl r0, r0, #0xc
+ str r0, [sp, #0x38]
+ add r0, sp, #0x2c
+ bl FUN_0201FE94
+ mov r1, #0xcb
+ lsl r1, r1, #0x2
+ str r0, [r5, r1]
+ add r0, r1, #0x0
+ ldr r0, [r5, r0]
+ mov r1, #0x1
+ bl FUN_020200BC
+ mov r0, #0xcb
+ lsl r0, r0, #0x2
+ ldr r0, [r5, r0]
+ ldr r1, [r4, #0x8]
+ bl FUN_02020130
+ mov r0, #0xcb
+ lsl r0, r0, #0x2
+ ldr r0, [r5, r0]
+ ldr r1, [r4, #0xc]
+ bl FUN_02020310
+ add r7, r7, #0x1
+ add r4, #0x10
+ add r5, r5, #0x4
+ cmp r7, #0x9
+ blt _02078418
+ mov r0, #0xcf
+ lsl r0, r0, #0x2
+ ldr r0, [r6, r0]
+ mov r1, #0x0
+ bl FUN_020200A0
+ mov r0, #0xd3
+ lsl r0, r0, #0x2
+ ldr r0, [r6, r0]
+ mov r1, #0x0
+ bl FUN_020200A0
+ ldr r7, _02078528 ; =0x020FA1D4
+ mov r5, #0x0
+ add r4, r6, #0x0
+_0207847A:
+ ldr r0, _0207852C ; =FUN_02078328
+ mov r1, #0x10
+ mov r2, #0x5
+ mov r3, #0x12
+ bl FUN_020061E8
+ mov r1, #0xe7
+ lsl r1, r1, #0x2
+ str r0, [r4, r1]
+ add r0, r1, #0x0
+ ldr r0, [r4, r0]
+ bl FUN_0201B6C8
+ mov r1, #0xd2
+ lsl r1, r1, #0x2
+ ldr r1, [r6, r1]
+ str r1, [r0, #0x0]
+ mov r1, #0xcb
+ lsl r1, r1, #0x2
+ ldr r1, [r4, r1]
+ add r4, r4, #0x4
+ str r1, [r0, #0x4]
+ ldr r1, [r7, #0x0]
+ add r7, #0x10
+ lsl r1, r1, #0xc
+ str r1, [r0, #0x8]
+ str r5, [r0, #0xc]
+ add r5, r5, #0x1
+ cmp r5, #0x7
+ blt _0207847A
+ ldr r2, [r6, #0xc]
+ mov r7, #0x0
+ cmp r2, #0x0
+ ble _020784FA
+ mov r5, #0x50
+ add r4, r6, #0x0
+_020784C2:
+ lsl r0, r5, #0xc
+ str r0, [sp, #0x34]
+ mov r0, #0x27
+ lsl r0, r0, #0xc
+ str r0, [sp, #0x38]
+ add r0, sp, #0x2c
+ bl FUN_0201FE94
+ mov r1, #0xd9
+ lsl r1, r1, #0x2
+ str r0, [r4, r1]
+ add r0, r1, #0x0
+ ldr r0, [r4, r0]
+ mov r1, #0x1
+ bl FUN_020200BC
+ mov r0, #0xd9
+ lsl r0, r0, #0x2
+ ldr r0, [r4, r0]
+ mov r1, #0x2b
+ bl FUN_02020130
+ ldr r2, [r6, #0xc]
+ add r7, r7, #0x1
+ add r5, #0xc
+ add r4, r4, #0x4
+ cmp r7, r2
+ blt _020784C2
+_020784FA:
+ mov r1, #0x56
+ lsl r1, r1, #0x2
+ mov r0, #0xd9
+ lsl r0, r0, #0x2
+ ldrh r1, [r6, r1]
+ add r0, r6, r0
+ bl FUN_02079710
+ add r0, r6, #0x0
+ add r1, sp, #0x2c
+ bl FUN_02078530
+ mov r0, #0x10
+ mov r1, #0x1
+ bl FUN_0201E6E4
+ mov r0, #0x10
+ mov r1, #0x1
+ bl FUN_0201E74C
+ add sp, #0x5c
+ pop {r4-r7, pc}
+ nop
+_02078528: .word 0x020FA1D4
+_0207852C: .word FUN_02078328
+
+ thumb_func_start FUN_02078530
+FUN_02078530: ; 0x02078530
+ push {r3-r5, lr}
+ add r4, r0, #0x0
+ mov r0, #0x6
+ add r5, r1, #0x0
+ lsl r0, r0, #0xe
+ str r0, [r5, #0x8]
+ mov r0, #0x2
+ lsl r0, r0, #0xe
+ str r0, [r5, #0xc]
+ add r0, r5, #0x0
+ bl FUN_0201FE94
+ mov r1, #0xe5
+ lsl r1, r1, #0x2
+ str r0, [r4, r1]
+ ldr r0, [r4, r1]
+ mov r1, #0x1
+ bl FUN_020200BC
+ ldr r0, [r4, #0x0]
+ cmp r0, #0x7
+ bhi _02078626
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02078568: ; jump table (using 16-bit offset)
+ .short _02078578 - _02078568 - 2; case 0
+ .short _020785E0 - _02078568 - 2; case 1
+ .short _020785D2 - _02078568 - 2; case 2
+ .short _0207859A - _02078568 - 2; case 3
+ .short _020785C4 - _02078568 - 2; case 4
+ .short _020785B6 - _02078568 - 2; case 5
+ .short _020785A8 - _02078568 - 2; case 6
+ .short _020785C4 - _02078568 - 2; case 7
+_02078578:
+ ldr r0, [r4, #0x4]
+ cmp r0, #0x0
+ bne _0207858C
+ mov r0, #0xe5
+ lsl r0, r0, #0x2
+ ldr r0, [r4, r0]
+ mov r1, #0x30
+ bl FUN_02020130
+ pop {r3-r5, pc}
+_0207858C:
+ mov r0, #0xe5
+ lsl r0, r0, #0x2
+ ldr r0, [r4, r0]
+ mov r1, #0x31
+ bl FUN_02020130
+ pop {r3-r5, pc}
+_0207859A:
+ mov r0, #0xe5
+ lsl r0, r0, #0x2
+ ldr r0, [r4, r0]
+ mov r1, #0x33
+ bl FUN_02020130
+ pop {r3-r5, pc}
+_020785A8:
+ mov r0, #0xe5
+ lsl r0, r0, #0x2
+ ldr r0, [r4, r0]
+ mov r1, #0x37
+ bl FUN_02020130
+ pop {r3-r5, pc}
+_020785B6:
+ mov r0, #0xe5
+ lsl r0, r0, #0x2
+ ldr r0, [r4, r0]
+ mov r1, #0x36
+ bl FUN_02020130
+ pop {r3-r5, pc}
+_020785C4:
+ mov r0, #0xe5
+ lsl r0, r0, #0x2
+ ldr r0, [r4, r0]
+ mov r1, #0x35
+ bl FUN_02020130
+ pop {r3-r5, pc}
+_020785D2:
+ mov r0, #0xe5
+ lsl r0, r0, #0x2
+ ldr r0, [r4, r0]
+ mov r1, #0x2f
+ bl FUN_02020130
+ pop {r3-r5, pc}
+_020785E0:
+ mov r0, #0xe5
+ lsl r0, r0, #0x2
+ ldr r0, [r4, r0]
+ mov r1, #0x32
+ bl FUN_02020130
+ ldr r0, [r4, #0x10]
+ cmp r0, #0x2
+ beq _02078626
+ ldr r1, [r4, #0xc]
+ mov r0, #0xd
+ mul r0, r1
+ add r0, #0x50
+ lsl r0, r0, #0xc
+ str r0, [r5, #0x8]
+ mov r0, #0x1b
+ lsl r0, r0, #0xc
+ str r0, [r5, #0xc]
+ add r0, r5, #0x0
+ bl FUN_0201FE94
+ mov r1, #0xe6
+ lsl r1, r1, #0x2
+ str r0, [r4, r1]
+ ldr r0, [r4, #0x10]
+ cmp r0, #0x0
+ ldr r0, [r4, r1]
+ bne _02078620
+ mov r1, #0x2d
+ bl FUN_02020130
+ pop {r3-r5, pc}
+_02078620:
+ mov r1, #0x2e
+ bl FUN_02020130
+_02078626:
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_02078628
+FUN_02078628: ; 0x02078628
+ push {r4-r5, lr}
+ sub sp, #0xc
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ ldr r0, [r4, #0xc]
+ str r0, [sp, #0x4]
+ mov r0, #0x0
+ str r0, [sp, #0x8]
+ ldr r0, [r4, #0x4]
+ cmp r0, #0x6
+ bhi _020786A6
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0207864A: ; jump table (using 16-bit offset)
+ .short _02078658 - _0207864A - 2; case 0
+ .short _020786A6 - _0207864A - 2; case 1
+ .short _0207866C - _0207864A - 2; case 2
+ .short _020786A6 - _0207864A - 2; case 3
+ .short _02078680 - _0207864A - 2; case 4
+ .short _020786A6 - _0207864A - 2; case 5
+ .short _02078694 - _0207864A - 2; case 6
+_02078658:
+ mov r0, #0x1
+ ldr r1, [r4, #0x8]
+ lsl r0, r0, #0xe
+ add r0, r1, r0
+ str r0, [sp, #0x0]
+ ldr r0, [r4, #0x0]
+ add r1, sp, #0x0
+ bl FUN_02020044
+ b _020786A6
+_0207866C:
+ mov r0, #0x3
+ ldr r1, [r4, #0x8]
+ lsl r0, r0, #0xc
+ sub r0, r1, r0
+ str r0, [sp, #0x0]
+ ldr r0, [r4, #0x0]
+ add r1, sp, #0x0
+ bl FUN_02020044
+ b _020786A6
+_02078680:
+ mov r0, #0x2
+ ldr r1, [r4, #0x8]
+ lsl r0, r0, #0xc
+ add r0, r1, r0
+ str r0, [sp, #0x0]
+ ldr r0, [r4, #0x0]
+ add r1, sp, #0x0
+ bl FUN_02020044
+ b _020786A6
+_02078694:
+ ldr r0, [r4, #0x8]
+ add r1, sp, #0x0
+ str r0, [sp, #0x0]
+ ldr r0, [r4, #0x0]
+ bl FUN_02020044
+ add r0, r5, #0x0
+ bl FUN_0200621C
+_020786A6:
+ ldr r0, [r4, #0x4]
+ add r0, r0, #0x1
+ str r0, [r4, #0x4]
+ add sp, #0xc
+ pop {r4-r5, pc}
+
+ thumb_func_start FUN_020786B0
+FUN_020786B0: ; 0x020786B0
+ push {r3-r7, lr}
+ sub sp, #0x28
+ str r1, [sp, #0x14]
+ ldr r1, [sp, #0x40]
+ add r5, r2, #0x0
+ str r1, [sp, #0x40]
+ ldr r1, [sp, #0x48]
+ mov r2, #0x1
+ str r1, [sp, #0x48]
+ ldr r1, [sp, #0x40]
+ str r0, [sp, #0x10]
+ ldr r6, [r1, #0x0]
+ add r7, r3, #0x0
+ add r1, r6, #0x0
+ eor r1, r2
+ str r1, [sp, #0x18]
+ ldr r1, [r5, #0x0]
+ ldr r4, [sp, #0x44]
+ cmp r1, #0x4
+ bls _020786DA
+ b _0207887E
+_020786DA:
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #0x6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_020786E6: ; jump table (using 16-bit offset)
+ .short _020786F0 - _020786E6 - 2; case 0
+ .short _0207873C - _020786E6 - 2; case 1
+ .short _02078762 - _020786E6 - 2; case 2
+ .short _020787FC - _020786E6 - 2; case 3
+ .short _0207887E - _020786E6 - 2; case 4
+_020786F0:
+ mov r0, #0x0
+ str r0, [sp, #0x0]
+ mov r0, #0xe
+ lsl r0, r0, #0x6
+ str r0, [sp, #0x4]
+ str r2, [sp, #0x8]
+ mov r0, #0x12
+ str r0, [sp, #0xc]
+ ldr r2, [sp, #0x10]
+ mov r0, #0x1f
+ add r1, r7, #0x6
+ add r3, r6, #0x0
+ bl FUN_020068C8
+ add r0, r4, #0x0
+ add r1, r6, #0x0
+ bl FUN_02078BA8
+ ldr r0, _02078884 ; =0x020F9D2C
+ lsl r2, r6, #0x4
+ ldrb r1, [r0, r7]
+ ldr r0, [sp, #0x4c]
+ ldr r3, _02078888 ; =0x000E0F00
+ str r0, [sp, #0x0]
+ ldr r0, [sp, #0x14]
+ add r0, r0, r2
+ lsl r2, r1, #0x4
+ orr r1, r2
+ lsl r1, r1, #0x10
+ lsr r1, r1, #0x10
+ add r2, r7, #0x0
+ bl FUN_0207974C
+ ldr r0, [r5, #0x0]
+ add sp, #0x28
+ add r0, r0, #0x1
+ str r0, [r5, #0x0]
+ pop {r3-r7, pc}
+_0207873C:
+ lsl r1, r6, #0x18
+ lsr r1, r1, #0x18
+ mov r2, #0x0
+ mov r3, #0xee
+ bl FUN_020179E0
+ mov r2, #0x3
+ lsl r1, r6, #0x18
+ add r3, r2, #0x0
+ ldr r0, [sp, #0x10]
+ lsr r1, r1, #0x18
+ sub r3, #0x53
+ bl FUN_020179E0
+ ldr r0, [r5, #0x0]
+ add sp, #0x28
+ add r0, r0, #0x1
+ str r0, [r5, #0x0]
+ pop {r3-r7, pc}
+_02078762:
+ mov r1, #0xc
+ add r0, r6, #0x0
+ mul r0, r1
+ ldr r2, [r4, r0]
+ str r0, [sp, #0x1c]
+ sub r2, #0x18
+ str r2, [r4, r0]
+ ldr r0, [r4, r0]
+ sub r1, #0xd
+ cmp r0, r1
+ bge _020787BA
+ ldr r0, _0207888C ; =FUN_02078628
+ mov r1, #0x10
+ mov r2, #0x0
+ mov r3, #0x12
+ bl FUN_020061E8
+ bl FUN_0201B6C8
+ add r7, r0, #0x0
+ ldr r0, [sp, #0x48]
+ ldr r0, [r0, #0x1c]
+ str r0, [r7, #0x0]
+ mov r0, #0x0
+ str r0, [r7, #0x4]
+ ldr r0, [sp, #0x48]
+ ldr r0, [r0, #0x1c]
+ bl FUN_0202011C
+ ldr r0, [r0, #0x0]
+ str r0, [r7, #0x8]
+ ldr r0, [sp, #0x48]
+ ldr r0, [r0, #0x1c]
+ bl FUN_0202011C
+ ldr r0, [r0, #0x4]
+ mov r1, #0xa
+ str r0, [r7, #0xc]
+ ldr r0, [sp, #0x1c]
+ mvn r1, r1
+ str r1, [r4, r0]
+ ldr r0, [r5, #0x0]
+ add r0, r0, #0x1
+ str r0, [r5, #0x0]
+_020787BA:
+ ldr r0, [sp, #0x18]
+ mov r1, #0xc
+ add r7, r0, #0x0
+ add r5, r4, #0x4
+ mul r7, r1
+ ldr r0, [r5, r7]
+ sub r0, #0xa
+ str r0, [r5, r7]
+ add r0, r1, #0x0
+ ldr r2, [r5, r7]
+ sub r0, #0xd0
+ cmp r2, r0
+ bge _020787D8
+ sub r1, #0xd0
+ str r1, [r5, r7]
+_020787D8:
+ ldr r3, [sp, #0x1c]
+ lsl r1, r6, #0x18
+ ldr r0, [sp, #0x10]
+ ldr r3, [r4, r3]
+ lsr r1, r1, #0x18
+ mov r2, #0x0
+ bl FUN_020179E0
+ ldr r1, [sp, #0x18]
+ ldr r0, [sp, #0x10]
+ lsl r1, r1, #0x18
+ ldr r3, [r5, r7]
+ lsr r1, r1, #0x18
+ mov r2, #0x3
+ bl FUN_020179E0
+ add sp, #0x28
+ pop {r3-r7, pc}
+_020787FC:
+ ldr r1, [sp, #0x18]
+ mov r0, #0xc
+ add r2, r1, #0x0
+ mul r2, r0
+ str r2, [sp, #0x20]
+ add r7, r4, #0x4
+ ldr r2, [r7, r2]
+ ldr r1, [sp, #0x20]
+ sub r2, #0xa
+ str r2, [r7, r1]
+ ldr r2, [r7, r1]
+ add r1, r0, #0x0
+ sub r1, #0xd0
+ cmp r2, r1
+ bge _02078820
+ ldr r1, [sp, #0x20]
+ sub r0, #0xd0
+ str r0, [r7, r1]
+_02078820:
+ mov r0, #0xc
+ mul r0, r6
+ str r0, [sp, #0x24]
+ ldr r3, [sp, #0x24]
+ lsl r1, r6, #0x18
+ ldr r0, [sp, #0x10]
+ ldr r3, [r4, r3]
+ lsr r1, r1, #0x18
+ mov r2, #0x0
+ bl FUN_020179E0
+ ldr r1, [sp, #0x18]
+ ldr r3, [sp, #0x20]
+ lsl r1, r1, #0x18
+ ldr r0, [sp, #0x10]
+ ldr r3, [r7, r3]
+ lsr r1, r1, #0x18
+ mov r2, #0x3
+ bl FUN_020179E0
+ ldr r0, [sp, #0x24]
+ mov r1, #0xa
+ ldr r0, [r4, r0]
+ mvn r1, r1
+ cmp r0, r1
+ bne _0207887E
+ ldr r0, [sp, #0x20]
+ sub r1, #0xb9
+ ldr r0, [r7, r0]
+ cmp r0, r1
+ bne _0207887E
+ ldr r0, [r5, #0x0]
+ add r2, r4, #0x0
+ add r0, r0, #0x1
+ str r0, [r5, #0x0]
+ ldr r0, [sp, #0x40]
+ ldr r1, [r0, #0x0]
+ mov r0, #0x1
+ eor r1, r0
+ ldr r0, [sp, #0x40]
+ str r1, [r0, #0x0]
+ ldr r0, [sp, #0x10]
+ bl FUN_02078B88
+ ldr r0, _02078890 ; =0x0000069B
+ bl FUN_020054C8
+_0207887E:
+ add sp, #0x28
+ pop {r3-r7, pc}
+ nop
+_02078884: .word 0x020F9D2C
+_02078888: .word 0x000E0F00
+_0207888C: .word FUN_02078628
+_02078890: .word 0x0000069B
+
+ thumb_func_start FUN_02078894
+FUN_02078894: ; 0x02078894
+ push {r4-r5, lr}
+ sub sp, #0xc
+ add r4, r2, #0x0
+ mov r2, #0x1
+ mov r1, #0x0
+ lsl r2, r2, #0x8
+ mov r3, #0xa
+ add r5, r0, #0x0
+ bl FUN_0200D0BC
+ mov r3, #0x0
+ str r3, [sp, #0x0]
+ str r3, [sp, #0x4]
+ add r0, r5, #0x0
+ mov r1, #0x1
+ add r2, r4, #0x0
+ str r3, [sp, #0x8]
+ bl FUN_0201BD84
+ add r0, r5, #0x0
+ bl FUN_020191D0
+ add sp, #0xc
+ pop {r4-r5, pc}
+
+ thumb_func_start FUN_020788C4
+FUN_020788C4: ; 0x020788C4
+ push {r4-r6, lr}
+ sub sp, #0x10
+ add r5, r0, #0x0
+ add r6, r2, #0x0
+ mov r0, #0x0
+ add r1, r6, #0x0
+ add r2, r0, #0x0
+ mov r4, #0x10
+ bl FUN_02002E14
+ cmp r0, #0x82
+ ble _020788DE
+ mov r4, #0x0
+_020788DE:
+ add r0, r5, #0x0
+ mov r1, #0x1
+ bl FUN_02019620
+ mov r1, #0x0
+ str r1, [sp, #0x0]
+ ldr r0, _02078908 ; =0x000E0F01
+ str r1, [sp, #0x4]
+ str r0, [sp, #0x8]
+ add r0, r5, #0x0
+ add r2, r6, #0x0
+ add r3, r4, #0x0
+ str r1, [sp, #0xc]
+ bl FUN_0201BDE0
+ add r0, r5, #0x0
+ bl FUN_020191D0
+ add sp, #0x10
+ pop {r4-r6, pc}
+ nop
+_02078908: .word 0x000E0F01
+
+ thumb_func_start FUN_0207890C
+FUN_0207890C: ; 0x0207890C
+ push {r4-r7, lr}
+ sub sp, #0x14
+ add r6, r1, #0x0
+ mov r1, #0x1
+ add r5, r0, #0x0
+ str r1, [sp, #0x0]
+ mov r0, #0x1a
+ str r0, [sp, #0x4]
+ mov r0, #0xc
+ str r0, [sp, #0x8]
+ str r1, [sp, #0xc]
+ add r0, #0xf4
+ str r0, [sp, #0x10]
+ mov r0, #0x16
+ lsl r0, r0, #0x4
+ mov r1, #0xee
+ lsl r1, r1, #0x2
+ ldr r0, [r5, r0]
+ add r1, r5, r1
+ mov r2, #0x0
+ mov r3, #0x2
+ bl FUN_02019064
+ mov r2, #0x1
+ mov r1, #0xf2
+ lsl r1, r1, #0x2
+ str r2, [sp, #0x0]
+ mov r0, #0x1a
+ str r0, [sp, #0x4]
+ mov r0, #0xc
+ str r0, [sp, #0x8]
+ mov r0, #0x8e
+ str r2, [sp, #0xc]
+ lsl r0, r0, #0x2
+ str r0, [sp, #0x10]
+ sub r0, #0xd8
+ ldr r0, [r5, r0]
+ add r1, r5, r1
+ mov r3, #0x2
+ bl FUN_02019064
+ ldr r0, [r5, #0x0]
+ cmp r0, #0x4
+ bne _020789AE
+ mov r0, #0x0
+ str r0, [sp, #0x0]
+ mov r0, #0xe
+ lsl r0, r0, #0x6
+ str r0, [sp, #0x4]
+ mov r3, #0x1
+ mov r2, #0x16
+ str r3, [sp, #0x8]
+ mov r0, #0x12
+ str r0, [sp, #0xc]
+ lsl r2, r2, #0x4
+ ldr r2, [r5, r2]
+ mov r0, #0x1f
+ mov r1, #0x9
+ bl FUN_020068C8
+ mov r0, #0x46
+ mov r1, #0x4
+ lsl r0, r0, #0x4
+ str r1, [r5, r0]
+ add r0, r5, #0x0
+ add r0, #0x3a
+ bl FUN_0207916C
+ mov r0, #0x4b
+ lsl r0, r0, #0x4
+ ldr r1, [r5, r0]
+ sub r0, #0xe8
+ ldr r1, [r1, #0x14]
+ ldr r3, _02078B6C ; =0x000E0F00
+ str r1, [sp, #0x0]
+ ldr r1, _02078B70 ; =0x00000A0A
+ add r0, r5, r0
+ mov r2, #0x4
+ bl FUN_0207974C
+ b _020789D8
+_020789AE:
+ mov r0, #0x46
+ mov r1, #0x0
+ lsl r0, r0, #0x4
+ str r1, [r5, r0]
+ add r0, r5, #0x0
+ add r0, #0x3a
+ bl FUN_0207916C
+ mov r1, #0x4b
+ lsl r1, r1, #0x4
+ ldr r0, [r5, r1]
+ ldr r3, _02078B6C ; =0x000E0F00
+ ldr r0, [r0, #0x14]
+ mov r2, #0x0
+ str r0, [sp, #0x0]
+ add r0, r1, #0x0
+ sub r0, #0xe8
+ add r0, r5, r0
+ sub r1, #0xac
+ bl FUN_0207974C
+_020789D8:
+ mov r2, #0x2
+ str r2, [sp, #0x0]
+ mov r3, #0x16
+ str r3, [sp, #0x4]
+ mov r1, #0x37
+ str r2, [sp, #0x8]
+ mov r0, #0x0
+ str r0, [sp, #0xc]
+ lsl r1, r1, #0x4
+ str r1, [sp, #0x10]
+ lsl r0, r3, #0x4
+ add r1, #0x68
+ ldr r0, [r5, r0]
+ add r1, r5, r1
+ mov r3, #0x7
+ bl FUN_02019064
+ ldr r1, [r5, #0xc]
+ mov r0, #0xc
+ add r2, r1, #0x0
+ mul r2, r0
+ asr r0, r2, #0x2
+ lsr r0, r0, #0x1d
+ add r0, r2, r0
+ asr r0, r0, #0x3
+ add r4, r0, #0x1
+ mov r0, #0x3
+ str r0, [sp, #0x0]
+ lsl r0, r4, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x4]
+ mov r2, #0x2
+ mov r1, #0xe7
+ str r2, [sp, #0x8]
+ mov r0, #0x0
+ str r0, [sp, #0xc]
+ lsl r1, r1, #0x2
+ mov r0, #0x16
+ str r1, [sp, #0x10]
+ lsl r0, r0, #0x4
+ add r1, #0x4c
+ ldr r0, [r5, r0]
+ add r1, r5, r1
+ mov r3, #0xa
+ bl FUN_02019064
+ mov r0, #0xfa
+ lsl r0, r0, #0x2
+ add r0, r5, r0
+ mov r1, #0x1
+ bl FUN_02019620
+ mov r0, #0x3
+ str r0, [sp, #0x0]
+ mov r0, #0x7
+ str r0, [sp, #0x4]
+ mov r2, #0x2
+ mov r1, #0xf
+ add r4, #0x9
+ lsl r3, r4, #0x18
+ str r2, [sp, #0x8]
+ mov r0, #0x0
+ str r0, [sp, #0xc]
+ lsl r1, r1, #0x6
+ mov r0, #0x16
+ str r1, [sp, #0x10]
+ lsl r0, r0, #0x4
+ add r1, #0x78
+ ldr r0, [r5, r0]
+ add r1, r5, r1
+ lsr r3, r3, #0x18
+ bl FUN_02019064
+ ldr r0, _02078B74 ; =0x00000438
+ mov r1, #0x1
+ add r0, r5, r0
+ bl FUN_02019620
+ ldr r1, [r5, #0x0]
+ cmp r1, #0x5
+ bne _02078A90
+ mov r2, #0x61
+ ldr r0, _02078B74 ; =0x00000438
+ lsl r2, r2, #0x2
+ ldr r2, [r5, r2]
+ add r0, r5, r0
+ bl FUN_020788C4
+ ldr r0, _02078B74 ; =0x00000438
+ add r0, r5, r0
+ bl FUN_020191D0
+_02078A90:
+ mov r0, #0x13
+ str r0, [sp, #0x0]
+ mov r0, #0x1b
+ str r0, [sp, #0x4]
+ mov r2, #0x4
+ ldr r1, _02078B78 ; =0x00000448
+ str r2, [sp, #0x8]
+ mov r0, #0xc
+ str r0, [sp, #0xc]
+ mov r0, #0x84
+ str r0, [sp, #0x10]
+ add r0, #0xdc
+ ldr r0, [r5, r0]
+ add r1, r5, r1
+ mov r3, #0x2
+ bl FUN_02019064
+ ldr r0, _02078B78 ; =0x00000448
+ mov r1, #0xf
+ add r0, r5, r0
+ bl FUN_02019620
+ mov r2, #0x5e
+ ldr r0, _02078B78 ; =0x00000448
+ lsl r2, r2, #0x2
+ ldr r1, [r5, #0x0]
+ ldr r2, [r5, r2]
+ add r0, r5, r0
+ bl FUN_02078894
+ add r0, r6, #0x0
+ bl FUN_0200628C
+ mov r1, #0x46
+ lsl r1, r1, #0x2
+ ldrh r2, [r5, r1]
+ ldr r0, _02078B7C ; =0x0000FFFF
+ cmp r2, r0
+ beq _02078B06
+ add r0, r5, #0x0
+ add r0, #0xd8
+ add r1, r5, r1
+ bl StringCopy
+ mov r0, #0xc
+ str r0, [sp, #0x0]
+ mov r2, #0x0
+ add r1, r5, #0x0
+ ldr r0, _02078B80 ; =0x000E0F01
+ str r2, [sp, #0x4]
+ str r0, [sp, #0x8]
+ mov r0, #0xfa
+ lsl r0, r0, #0x2
+ add r0, r5, r0
+ add r1, #0xd8
+ add r3, r2, #0x0
+ str r2, [sp, #0xc]
+ bl FUN_02078E7C
+_02078B06:
+ mov r0, #0xee
+ lsl r0, r0, #0x2
+ mov r4, #0x0
+ add r7, r5, r0
+_02078B0E:
+ add r0, r4, #0x4
+ lsl r6, r0, #0x4
+ mov r0, #0x0
+ str r0, [sp, #0x0]
+ mov r0, #0x2
+ str r0, [sp, #0x4]
+ str r0, [sp, #0x8]
+ mov r0, #0x0
+ str r0, [sp, #0xc]
+ mov r0, #0x78
+ str r0, [sp, #0x10]
+ add r0, #0xe8
+ ldr r0, [r5, r0]
+ add r1, r7, r6
+ mov r2, #0x2
+ mov r3, #0x0
+ bl FUN_02019064
+ add r0, r7, r6
+ mov r1, #0x0
+ bl FUN_02019620
+ add r4, r4, #0x1
+ cmp r4, #0x3
+ blt _02078B0E
+ mov r3, #0x0
+ str r3, [sp, #0x0]
+ mov r0, #0x10
+ str r0, [sp, #0x4]
+ mov r2, #0x2
+ str r2, [sp, #0x8]
+ ldr r1, _02078B84 ; =0x00000428
+ str r3, [sp, #0xc]
+ mov r0, #0x84
+ str r0, [sp, #0x10]
+ add r0, #0xdc
+ ldr r0, [r5, r0]
+ add r1, r5, r1
+ bl FUN_02019064
+ ldr r0, _02078B84 ; =0x00000428
+ mov r1, #0x0
+ add r0, r5, r0
+ bl FUN_02019620
+ add sp, #0x14
+ pop {r4-r7, pc}
+ .balign 4
+_02078B6C: .word 0x000E0F00
+_02078B70: .word 0x00000A0A
+_02078B74: .word 0x00000438
+_02078B78: .word 0x00000448
+_02078B7C: .word 0x0000FFFF
+_02078B80: .word 0x000E0F01
+_02078B84: .word 0x00000428
+
+ thumb_func_start FUN_02078B88
+FUN_02078B88: ; 0x02078B88
+ push {r4, lr}
+ add r4, r1, #0x0
+ lsl r0, r4, #0x18
+ lsr r0, r0, #0x18
+ mov r1, #0x1
+ bl FUN_020178BC
+ mov r0, #0x1
+ eor r0, r4
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ mov r1, #0x2
+ bl FUN_020178BC
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02078BA8
+FUN_02078BA8: ; 0x02078BA8
+ push {r3-r4}
+ mov r3, #0xc
+ add r4, r1, #0x0
+ mul r4, r3
+ mov r2, #0xee
+ str r2, [r0, r4]
+ add r2, r3, #0x0
+ sub r2, #0x5c
+ add r4, r0, r4
+ str r2, [r4, #0x4]
+ mov r4, #0x1
+ eor r1, r4
+ mul r3, r1
+ sub r4, #0xc
+ str r4, [r0, r3]
+ add r0, r0, r3
+ str r2, [r0, #0x4]
+ pop {r3-r4}
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02078BD0
+FUN_02078BD0: ; 0x02078BD0
+ cmp r0, r2
+ blt _02078BD6
+ add r0, r1, #0x0
+_02078BD6:
+ cmp r0, r1
+ bge _02078BDC
+ sub r0, r2, #0x1
+_02078BDC:
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02078BE0
+FUN_02078BE0: ; 0x02078BE0
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ cmp r1, #0x0
+ beq _02078C84
+ ldr r3, [r5, #0x20]
+ mov r2, #0x1a
+ mul r2, r3
+ ldr r0, [r5, #0x1c]
+ add r3, r5, r2
+ lsl r2, r0, #0x1
+ add r2, r3, r2
+ ldrh r2, [r2, #0x3a]
+ lsl r6, r1, #0x3
+ ldr r1, _02078C88 ; =0x020FA154
+ str r2, [sp, #0x0]
+ ldr r1, [r1, r6]
+ mov r2, #0xd
+ add r0, r0, r1
+ mov r1, #0x0
+ bl FUN_02078BD0
+ add r4, r0, #0x0
+ ldr r0, _02078C8C ; =0x020FA158
+ ldr r1, [r5, #0x20]
+ ldr r0, [r0, r6]
+ mov r2, #0x6
+ add r0, r1, r0
+ mov r1, #0x0
+ bl FUN_02078BD0
+ add r7, r0, #0x0
+ ldr r0, _02078C88 ; =0x020FA154
+ add r6, r0, r6
+ b _02078C62
+_02078C24:
+ ldr r1, [r5, #0x28]
+ cmp r1, #0x0
+ bne _02078C46
+ ldr r1, _02078C90 ; =0x0000D004
+ cmp r0, r1
+ bne _02078C46
+ ldr r0, [r6, #0x4]
+ cmp r0, #0x0
+ beq _02078C46
+ ldr r0, [r5, #0x2c]
+ mov r1, #0x0
+ add r0, r4, r0
+ mov r2, #0xd
+ bl FUN_02078BD0
+ add r4, r0, #0x0
+ b _02078C62
+_02078C46:
+ ldr r0, [r6, #0x0]
+ mov r1, #0x0
+ add r0, r4, r0
+ mov r2, #0xd
+ bl FUN_02078BD0
+ add r4, r0, #0x0
+ ldr r0, [r6, #0x4]
+ mov r1, #0x0
+ add r0, r7, r0
+ mov r2, #0x6
+ bl FUN_02078BD0
+ add r7, r0, #0x0
+_02078C62:
+ mov r0, #0x1a
+ mul r0, r7
+ lsl r1, r4, #0x1
+ add r0, r5, r0
+ add r0, r1, r0
+ ldrh r0, [r0, #0x3a]
+ ldr r1, _02078C90 ; =0x0000D004
+ cmp r0, r1
+ beq _02078C24
+ ldr r1, [sp, #0x0]
+ cmp r1, r0
+ bne _02078C80
+ ldr r1, _02078C94 ; =0x0000E001
+ cmp r0, r1
+ bhi _02078C24
+_02078C80:
+ str r4, [r5, #0x1c]
+ str r7, [r5, #0x20]
+_02078C84:
+ pop {r3-r7, pc}
+ nop
+_02078C88: .word 0x020FA154
+_02078C8C: .word 0x020FA158
+_02078C90: .word 0x0000D004
+_02078C94: .word 0x0000E001
+
+ thumb_func_start FUN_02078C98
+FUN_02078C98: ; 0x02078C98
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ ldr r0, _02078D70 ; =0x021C48B8
+ mov r4, #0x0
+ ldr r1, [r0, #0x4c]
+ mov r0, #0x40
+ add r6, r4, #0x0
+ tst r0, r1
+ beq _02078CC0
+ ldr r0, _02078D74 ; =0x000005DC
+ bl FUN_020054C8
+ mov r0, #0xd3
+ lsl r0, r0, #0x2
+ ldr r0, [r5, r0]
+ mov r1, #0x1
+ bl FUN_020200A0
+ mov r6, #0x1
+ add r4, r4, #0x1
+_02078CC0:
+ ldr r0, _02078D70 ; =0x021C48B8
+ ldr r1, [r0, #0x4c]
+ mov r0, #0x80
+ tst r0, r1
+ beq _02078CE0
+ ldr r0, _02078D74 ; =0x000005DC
+ bl FUN_020054C8
+ mov r0, #0xd3
+ lsl r0, r0, #0x2
+ ldr r0, [r5, r0]
+ mov r1, #0x1
+ bl FUN_020200A0
+ mov r6, #0x2
+ add r4, r4, #0x1
+_02078CE0:
+ ldr r0, _02078D70 ; =0x021C48B8
+ ldr r1, [r0, #0x4c]
+ mov r0, #0x20
+ tst r0, r1
+ beq _02078D00
+ ldr r0, _02078D74 ; =0x000005DC
+ bl FUN_020054C8
+ mov r0, #0xd3
+ lsl r0, r0, #0x2
+ ldr r0, [r5, r0]
+ mov r1, #0x1
+ bl FUN_020200A0
+ mov r6, #0x3
+ add r4, r4, #0x1
+_02078D00:
+ ldr r0, _02078D70 ; =0x021C48B8
+ ldr r1, [r0, #0x4c]
+ mov r0, #0x10
+ tst r0, r1
+ beq _02078D20
+ ldr r0, _02078D74 ; =0x000005DC
+ bl FUN_020054C8
+ mov r0, #0xd3
+ lsl r0, r0, #0x2
+ ldr r0, [r5, r0]
+ mov r1, #0x1
+ bl FUN_020200A0
+ mov r6, #0x4
+ add r4, r4, #0x1
+_02078D20:
+ ldr r0, _02078D70 ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #0x8
+ tst r0, r1
+ beq _02078D46
+ ldr r0, _02078D74 ; =0x000005DC
+ bl FUN_020054C8
+ mov r0, #0xd3
+ lsl r0, r0, #0x2
+ ldr r0, [r5, r0]
+ mov r1, #0x1
+ bl FUN_020200A0
+ mov r0, #0xc
+ str r0, [r5, #0x1c]
+ mov r0, #0x0
+ str r0, [r5, #0x20]
+ add r4, r4, #0x1
+_02078D46:
+ add r0, r5, #0x0
+ bl FUN_02079930
+ ldr r1, _02078D78 ; =0x000005C8
+ str r0, [r5, r1]
+ ldr r0, [r5, r1]
+ cmp r0, #0x1
+ bne _02078D5A
+ mov r6, #0x0
+ add r4, r4, #0x1
+_02078D5A:
+ cmp r4, #0x0
+ beq _02078D6E
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ bl FUN_02078BE0
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ bl FUN_02078D7C
+_02078D6E:
+ pop {r4-r6, pc}
+ .balign 4
+_02078D70: .word 0x021C48B8
+_02078D74: .word 0x000005DC
+_02078D78: .word 0x000005C8
+
+ thumb_func_start FUN_02078D7C
+FUN_02078D7C: ; 0x02078D7C
+ push {r3-r5, lr}
+ sub sp, #0x18
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ ldr r1, [r5, #0x20]
+ cmp r1, #0x0
+ beq _02078DC6
+ ldr r0, [r5, #0x28]
+ cmp r0, #0x0
+ bne _02078DA0
+ cmp r0, r1
+ beq _02078DA0
+ mov r0, #0xd3
+ lsl r0, r0, #0x2
+ ldr r0, [r5, r0]
+ mov r1, #0x27
+ bl FUN_02020130
+_02078DA0:
+ ldr r0, [r5, #0x1c]
+ lsl r0, r0, #0x4
+ add r0, #0x1a
+ lsl r0, r0, #0xc
+ str r0, [sp, #0xc]
+ ldr r0, [r5, #0x20]
+ sub r1, r0, #0x1
+ mov r0, #0x13
+ mul r0, r1
+ add r0, #0x5b
+ lsl r0, r0, #0xc
+ str r0, [sp, #0x10]
+ mov r0, #0xd3
+ lsl r0, r0, #0x2
+ ldr r0, [r5, r0]
+ add r1, sp, #0xc
+ bl FUN_02020044
+ b _02078E02
+_02078DC6:
+ mov r0, #0x1a
+ mul r0, r1
+ add r1, r5, r0
+ ldr r0, [r5, #0x1c]
+ lsl r0, r0, #0x1
+ add r0, r1, r0
+ ldrh r1, [r0, #0x3a]
+ ldr r0, _02078E2C ; =0x0000E002
+ sub r1, r1, r0
+ ldr r0, _02078E30 ; =0x020F9D6C
+ lsl r2, r1, #0x1
+ ldrh r0, [r0, r2]
+ ldr r2, _02078E34 ; =0x020F9D38
+ lsl r0, r0, #0xc
+ str r0, [sp, #0x0]
+ mov r0, #0x11
+ lsl r0, r0, #0xe
+ str r0, [sp, #0x4]
+ mov r0, #0xd3
+ lsl r0, r0, #0x2
+ ldrb r1, [r2, r1]
+ ldr r0, [r5, r0]
+ bl FUN_02020130
+ mov r0, #0xd3
+ lsl r0, r0, #0x2
+ ldr r0, [r5, r0]
+ add r1, sp, #0x0
+ bl FUN_02020044
+_02078E02:
+ mov r0, #0xb4
+ strh r0, [r5, #0x38]
+ mov r0, #0xd3
+ lsl r0, r0, #0x2
+ ldr r0, [r5, r0]
+ mov r1, #0x0
+ bl FUN_02020208
+ ldr r0, [r5, #0x1c]
+ lsl r1, r4, #0x3
+ str r0, [r5, #0x24]
+ ldr r0, [r5, #0x20]
+ str r0, [r5, #0x28]
+ ldr r0, _02078E38 ; =0x020FA154
+ ldr r0, [r0, r1]
+ cmp r0, #0x0
+ beq _02078E26
+ str r0, [r5, #0x2c]
+_02078E26:
+ add sp, #0x18
+ pop {r3-r5, pc}
+ nop
+_02078E2C: .word 0x0000E002
+_02078E30: .word 0x020F9D6C
+_02078E34: .word 0x020F9D38
+_02078E38: .word 0x020FA154
+
+ thumb_func_start FUN_02078E3C
+FUN_02078E3C: ; 0x02078E3C
+ push {r3, lr}
+ ldrh r1, [r0, #0x0]
+ add r1, #0x14
+ strh r1, [r0, #0x0]
+ ldrh r2, [r0, #0x0]
+ mov r1, #0x5a
+ lsl r1, r1, #0x2
+ cmp r2, r1
+ bls _02078E52
+ mov r1, #0x0
+ strh r1, [r0, #0x0]
+_02078E52:
+ ldrh r0, [r0, #0x0]
+ 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, #0x5
+ mov r0, #0x1d
+ orr r1, r0
+ add r0, sp, #0x0
+ strh r1, [r0, #0x0]
+ add r0, sp, #0x0
+ mov r1, #0x3a
+ mov r2, #0x2
+ blx GX_LoadOBJPltt
+ pop {r3, pc}
+
+ thumb_func_start FUN_02078E7C
+FUN_02078E7C: ; 0x02078E7C
+ push {r4-r7, lr}
+ sub sp, #0x3c
+ str r0, [sp, #0x18]
+ add r7, r1, #0x0
+ mov r0, #0x2
+ mov r1, #0x12
+ str r2, [sp, #0x1c]
+ str r3, [sp, #0x20]
+ mov r4, #0x0
+ bl FUN_020219F4
+ str r0, [sp, #0x28]
+ ldrh r1, [r7, #0x0]
+ ldr r0, _02078F6C ; =0x0000FFFF
+ cmp r1, r0
+ beq _02078F62
+ ldr r0, [sp, #0x54]
+ ldr r6, [sp, #0x50]
+ str r0, [sp, #0x24]
+ ldr r0, [sp, #0x58]
+ str r0, [sp, #0x34]
+ ldr r0, [sp, #0x20]
+ add r0, r0, #0x2
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #0x2c]
+ ldr r0, [sp, #0x5c]
+ str r0, [sp, #0x30]
+_02078EB4:
+ lsl r0, r4, #0x1
+ ldrh r1, [r7, r0]
+ ldr r0, _02078F70 ; =0x00002FFF
+ add r0, r1, r0
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ cmp r0, #0x2
+ bhi _02078F00
+ mov r0, #0xc
+ str r0, [sp, #0x0]
+ str r0, [sp, #0x4]
+ add r2, r4, #0x0
+ ldr r0, [sp, #0x1c]
+ mul r2, r6
+ add r0, r0, r2
+ ldr r2, _02078F74 ; =0x0000D001
+ lsl r0, r0, #0x10
+ sub r1, r1, r2
+ lsl r1, r1, #0x10
+ lsr r0, r0, #0x10
+ lsr r2, r1, #0x8
+ str r0, [sp, #0x8]
+ ldr r0, [sp, #0x2c]
+ lsr r1, r2, #0x1f
+ add r1, r2, r1
+ str r0, [sp, #0xc]
+ mov r0, #0xc
+ asr r2, r1, #0x1
+ ldr r1, [sp, #0x30]
+ str r0, [sp, #0x10]
+ str r0, [sp, #0x14]
+ add r1, r1, r2
+ mov r2, #0x0
+ ldr r0, [sp, #0x18]
+ add r3, r2, #0x0
+ bl FUN_02019658
+ b _02078F56
+_02078F00:
+ ldr r0, _02078F78 ; =0x0000D004
+ cmp r1, r0
+ bne _02078F0A
+ add r4, r4, #0x1
+ b _02078F58
+_02078F0A:
+ add r0, sp, #0x38
+ strh r1, [r0, #0x0]
+ ldr r1, _02078F6C ; =0x0000FFFF
+ strh r1, [r0, #0x2]
+ mov r0, #0x0
+ add r1, sp, #0x38
+ add r2, r0, #0x0
+ bl FUN_02002DE0
+ add r5, r0, #0x0
+ ldr r0, [sp, #0x28]
+ add r1, sp, #0x38
+ bl FUN_02021E28
+ ldr r0, [sp, #0x20]
+ sub r3, r6, r5
+ str r0, [sp, #0x0]
+ ldr r0, [sp, #0x24]
+ lsr r5, r3, #0x1f
+ add r5, r3, r5
+ asr r3, r5, #0x1
+ str r0, [sp, #0x4]
+ ldr r0, [sp, #0x34]
+ mov r12, r3
+ add r5, r4, #0x0
+ str r0, [sp, #0x8]
+ mov r0, #0x0
+ str r0, [sp, #0xc]
+ ldr r3, [sp, #0x1c]
+ mul r5, r6
+ add r3, r3, r5
+ mov r5, r12
+ ldr r0, [sp, #0x18]
+ ldr r2, [sp, #0x28]
+ mov r1, #0x0
+ add r3, r5, r3
+ bl FUN_0201BDE0
+_02078F56:
+ add r4, r4, #0x1
+_02078F58:
+ lsl r0, r4, #0x1
+ ldrh r1, [r7, r0]
+ ldr r0, _02078F6C ; =0x0000FFFF
+ cmp r1, r0
+ bne _02078EB4
+_02078F62:
+ ldr r0, [sp, #0x28]
+ bl FUN_02021A20
+ add sp, #0x3c
+ pop {r4-r7, pc}
+ .balign 4
+_02078F6C: .word 0x0000FFFF
+_02078F70: .word 0x00002FFF
+_02078F74: .word 0x0000D001
+_02078F78: .word 0x0000D004
+
+ thumb_func_start FUN_02078F7C
+FUN_02078F7C: ; 0x02078F7C
+ push {r4-r6, lr}
+ sub sp, #0x10
+ mov r5, #0x0
+ add r6, r1, #0x0
+ str r5, [sp, #0x0]
+ mov r1, #0xff
+ str r1, [sp, #0x4]
+ str r3, [sp, #0x8]
+ add r1, r2, #0x0
+ add r2, r6, #0x0
+ add r3, r5, #0x0
+ add r4, r0, #0x0
+ str r5, [sp, #0xc]
+ bl FUN_0201BDE0
+ ldr r0, [r4, #0xc]
+ add sp, #0x10
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_02078FA0
+FUN_02078FA0: ; 0x02078FA0
+ push {r3-r7, lr}
+ sub sp, #0x38
+ add r6, r0, #0x0
+ str r1, [sp, #0x8]
+ add r0, #0x30
+ mov r1, #0x0
+ add r5, r2, #0x0
+ add r4, r3, #0x0
+ bl FUN_02019620
+ add r0, r6, #0x0
+ ldr r3, _0207906C ; =0x000D0E0F
+ add r0, #0x30
+ add r1, r4, #0x0
+ mov r2, #0x2
+ bl FUN_02078F7C
+ mov r1, #0x2
+ lsl r1, r1, #0xa
+ blx DC_FlushRange
+ add r7, r6, #0x0
+ mov r4, #0x0
+ add r7, #0x30
+_02078FD0:
+ mov r0, #0x0
+ str r0, [sp, #0x0]
+ add r0, r7, #0x0
+ mov r1, #0x4
+ mov r2, #0x2
+ lsl r3, r4, #0x2
+ str r5, [sp, #0x4]
+ bl FUN_02011B20
+ mov r1, #0x1
+ add r0, r5, #0x0
+ lsl r1, r1, #0x8
+ blx 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
+ add r0, r4, #0x1
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+ cmp r4, #0x4
+ blo _02078FD0
+ mov r0, #0x15
+ mov r1, #0x12
+ bl FUN_020219F4
+ add r4, r0, #0x0
+ mov r5, #0x0
+_02079012:
+ ldr r0, [sp, #0x8]
+ lsl r1, r5, #0x1
+ ldrh r1, [r0, r1]
+ add r0, sp, #0xc
+ lsl r7, r5, #0x4
+ strh r1, [r0, #0x0]
+ ldr r1, _02079074 ; =0x0000FFFF
+ strh r1, [r0, #0x2]
+ add r0, r6, r7
+ mov r1, #0x0
+ bl FUN_02019620
+ add r0, r4, #0x0
+ add r1, sp, #0xc
+ bl FUN_02021E28
+ ldr r3, _0207906C ; =0x000D0E0F
+ add r0, r6, r7
+ add r1, r4, #0x0
+ mov r2, #0x2
+ bl FUN_02078F7C
+ mov r1, #0x80
+ add r7, r0, #0x0
+ blx 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
+ add r0, r5, #0x1
+ lsl r0, r0, #0x10
+ lsr r5, r0, #0x10
+ cmp r5, #0x3
+ blo _02079012
+ add r0, r4, #0x0
+ bl FUN_02021A20
+ add sp, #0x38
+ pop {r3-r7, pc}
+ nop
+_0207906C: .word 0x000D0E0F
+_02079070: .word 0x020F9D28
+_02079074: .word 0x0000FFFF
+_02079078: .word 0x020F9D40
+
+ thumb_func_start FUN_0207907C
+FUN_0207907C: ; 0x0207907C
+ push {r3-r5, lr}
+ cmp r2, #0x0
+ bne _02079086
+ ldr r1, _02079158 ; =0x0000D003
+ b _0207908C
+_02079086:
+ sub r2, r2, #0x1
+ lsl r2, r2, #0x1
+ ldrh r1, [r1, r2]
+_0207908C:
+ ldr r4, _0207915C ; =0x0000E003
+ cmp r1, r4
+ bgt _020790BC
+ bge _020790E2
+ ldr r2, _02079160 ; =0x0000D004
+ cmp r1, r2
+ bgt _020790B4
+ sub r2, r2, #0x3
+ sub r2, r1, r2
+ bmi _020790E4
+ add r2, r2, r2
+ add r2, pc
+ ldrh r2, [r2, #0x6]
+ lsl r2, r2, #0x10
+ asr r2, r2, #0x10
+ add pc, r2
+_020790AC: ; jump table (using 16-bit offset)
+ .short _020790E2 - _020790AC - 2; case 0
+ .short _020790E2 - _020790AC - 2; case 1
+ .short _020790E2 - _020790AC - 2; case 2
+ .short _020790E2 - _020790AC - 2; case 3
+_020790B4:
+ ldr r2, _02079164 ; =0x0000E002
+ cmp r1, r2
+ beq _020790E2
+ b _020790E4
+_020790BC:
+ add r2, r4, #0x1
+ cmp r1, r2
+ bgt _020790C6
+ beq _020790E2
+ b _020790E4
+_020790C6:
+ add r2, r4, #0x2
+ sub r2, r1, r2
+ cmp r2, #0x3
+ bhi _020790E4
+ add r2, r2, r2
+ add r2, pc
+ ldrh r2, [r2, #0x6]
+ lsl r2, r2, #0x10
+ asr r2, r2, #0x10
+ add pc, r2
+_020790DA: ; jump table (using 16-bit offset)
+ .short _020790E2 - _020790DA - 2; case 0
+ .short _020790E2 - _020790DA - 2; case 1
+ .short _020790E2 - _020790DA - 2; case 2
+ .short _020790E2 - _020790DA - 2; case 3
+_020790E2:
+ mov r1, #0x1
+_020790E4:
+ mov r4, #0x0
+ add r5, r3, #0x0
+ mov r2, #0x1
+_020790EA:
+ add r4, r4, #0x1
+ strh r2, [r5, #0x0]
+ add r5, r5, #0x2
+ cmp r4, #0x3
+ blt _020790EA
+ strh r1, [r3, #0x0]
+ cmp r1, #0x1
+ beq _0207914A
+ ldr r5, _02079168 ; =0x020FA40E
+ mov r2, #0x0
+_020790FE:
+ ldrh r4, [r5, #0x0]
+ cmp r1, r4
+ bne _02079120
+ mov r4, #0x6
+ ldr r5, _02079168 ; =0x020FA40E
+ mul r4, r2
+ add r4, r5, r4
+ mov r1, #0x0
+ add r5, r3, #0x0
+_02079110:
+ ldrh r2, [r4, #0x0]
+ add r1, r1, #0x1
+ add r4, r4, #0x2
+ strh r2, [r5, #0x0]
+ add r5, r5, #0x2
+ cmp r1, #0x3
+ blt _02079110
+ b _0207914A
+_02079120:
+ ldrh r4, [r5, #0x4]
+ cmp r1, r4
+ bne _02079142
+ mov r4, #0x6
+ ldr r5, _02079168 ; =0x020FA40E
+ mul r4, r2
+ add r4, r5, r4
+ mov r1, #0x0
+ add r5, r3, #0x0
+_02079132:
+ ldrh r2, [r4, #0x0]
+ add r1, r1, #0x1
+ add r4, r4, #0x2
+ strh r2, [r5, #0x0]
+ add r5, r5, #0x2
+ cmp r1, #0x3
+ blt _02079132
+ b _0207914A
+_02079142:
+ add r2, r2, #0x1
+ add r5, r5, #0x6
+ cmp r2, #0x52
+ blo _020790FE
+_0207914A:
+ add r1, r3, #0x0
+ ldr r2, [sp, #0x10]
+ ldr r3, [sp, #0x14]
+ bl FUN_02078FA0
+ pop {r3-r5, pc}
+ nop
+_02079158: .word 0x0000D003
+_0207915C: .word 0x0000E003
+_02079160: .word 0x0000D004
+_02079164: .word 0x0000E002
+_02079168: .word 0x020FA40E
+
+ thumb_func_start FUN_0207916C
+FUN_0207916C: ; 0x0207916C
+ push {r4-r7}
+ mov r4, #0x0
+ ldr r3, _020791B8 ; =0x02106058
+ add r5, r4, #0x0
+ add r6, r0, #0x0
+ lsl r2, r1, #0x2
+_02079178:
+ ldr r7, [r3, r2]
+ add r4, r4, #0x1
+ ldrh r7, [r7, r5]
+ add r5, r5, #0x2
+ strh r7, [r6, #0x0]
+ add r6, r6, #0x2
+ cmp r4, #0xd
+ blt _02079178
+ mov r3, #0x14
+ ldr r4, _020791BC ; =0x0210606C
+ mul r3, r1
+ mov r2, #0x0
+ add r3, r4, r3
+ add r1, r2, #0x0
+_02079194:
+ add r6, r1, #0x0
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+_0207919A:
+ ldr r7, [r3, #0x0]
+ add r6, r6, #0x1
+ ldrh r7, [r7, r4]
+ add r4, r4, #0x2
+ strh r7, [r5, #0x1a]
+ add r5, r5, #0x2
+ cmp r6, #0xd
+ blt _0207919A
+ add r2, r2, #0x1
+ add r3, r3, #0x4
+ add r0, #0x1a
+ cmp r2, #0x5
+ blt _02079194
+ pop {r4-r7}
+ bx lr
+ .balign 4
+_020791B8: .word 0x02106058
+_020791BC: .word 0x0210606C
+
+ thumb_func_start FUN_020791C0
+FUN_020791C0: ; 0x020791C0
+ push {r4-r6, lr}
+ sub sp, #0x10
+ add r4, r0, #0x0
+ ldr r0, _0207952C ; =0x00002FFD
+ add r6, r2, #0x0
+ add r0, r1, r0
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ cmp r0, #0x1
+ bhi _020791D6
+ mov r1, #0x1
+_020791D6:
+ ldr r0, [r4, #0x0]
+ cmp r0, #0x4
+ bne _020791EA
+ ldr r0, _02079530 ; =0x00001FFE
+ add r0, r1, r0
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ cmp r0, #0x3
+ bhi _020791EA
+ mov r1, #0x1
+_020791EA:
+ ldr r0, _02079534 ; =0x0000E002
+ cmp r1, r0
+ bgt _02079208
+ blt _020791F4
+ b _0207931C
+_020791F4:
+ ldr r3, _02079538 ; =0x0000D002
+ cmp r1, r3
+ bgt _02079206
+ sub r0, r3, #0x1
+ cmp r1, r0
+ blt _02079206
+ beq _0207922A
+ cmp r1, r3
+ beq _0207927C
+_02079206:
+ b _0207945C
+_02079208:
+ add r0, r0, #0x1
+ sub r0, r1, r0
+ cmp r0, #0x5
+ bls _02079212
+ b _0207945C
+_02079212:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0207921E: ; jump table (using 16-bit offset)
+ .short _0207931C - _0207921E - 2; case 0
+ .short _0207931C - _0207921E - 2; case 1
+ .short _0207931C - _0207921E - 2; case 2
+ .short _020792CA - _0207921E - 2; case 3
+ .short _0207935E - _0207921E - 2; case 4
+ .short _0207940E - _0207921E - 2; case 5
+_0207922A:
+ add r0, r4, #0x0
+ add r0, #0xd8
+ str r0, [sp, #0x0]
+ mov r0, #0x56
+ lsl r0, r0, #0x2
+ ldrh r0, [r4, r0]
+ ldr r3, _0207953C ; =0x0000D001
+ mov r1, #0x52
+ str r0, [sp, #0x4]
+ mov r0, #0x2a
+ mov r2, #0x1
+ bl FUN_020795FC
+ cmp r0, #0x0
+ bne _0207924A
+ b _02079526
+_0207924A:
+ mov r0, #0xfa
+ lsl r0, r0, #0x2
+ add r0, r4, r0
+ mov r1, #0x1
+ bl FUN_02019620
+ mov r0, #0xc
+ str r0, [sp, #0x0]
+ mov r2, #0x0
+ ldr r0, _02079540 ; =0x000E0F01
+ str r2, [sp, #0x4]
+ str r0, [sp, #0x8]
+ mov r0, #0xfa
+ lsl r0, r0, #0x2
+ add r0, r4, r0
+ add r4, #0xd8
+ add r1, r4, #0x0
+ add r3, r2, #0x0
+ str r2, [sp, #0xc]
+ bl FUN_02078E7C
+ ldr r0, _02079544 ; =0x000005EB
+ bl FUN_020054C8
+ b _02079526
+_0207927C:
+ add r0, r4, #0x0
+ add r0, #0xd8
+ str r0, [sp, #0x0]
+ mov r0, #0x56
+ lsl r0, r0, #0x2
+ ldrh r0, [r4, r0]
+ mov r1, #0x52
+ mov r2, #0x2
+ str r0, [sp, #0x4]
+ mov r0, #0x48
+ bl FUN_020795FC
+ cmp r0, #0x0
+ beq _02079368
+ mov r0, #0xfa
+ lsl r0, r0, #0x2
+ add r0, r4, r0
+ mov r1, #0x1
+ bl FUN_02019620
+ mov r0, #0xc
+ str r0, [sp, #0x0]
+ mov r2, #0x0
+ ldr r0, _02079540 ; =0x000E0F01
+ str r2, [sp, #0x4]
+ str r0, [sp, #0x8]
+ mov r0, #0xfa
+ lsl r0, r0, #0x2
+ add r0, r4, r0
+ add r4, #0xd8
+ add r1, r4, #0x0
+ add r3, r2, #0x0
+ str r2, [sp, #0xc]
+ bl FUN_02078E7C
+ ldr r0, _02079544 ; =0x000005EB
+ bl FUN_020054C8
+ b _02079526
+_020792CA:
+ mov r3, #0x56
+ lsl r3, r3, #0x2
+ ldrh r3, [r4, r3]
+ add r2, r4, #0x0
+ mov r0, #0x0
+ mov r1, #0x52
+ add r2, #0xd8
+ bl FUN_02079590
+ cmp r0, #0x0
+ beq _02079368
+ mov r0, #0xfa
+ lsl r0, r0, #0x2
+ add r0, r4, r0
+ mov r1, #0x1
+ bl FUN_02019620
+ mov r0, #0xc
+ str r0, [sp, #0x0]
+ mov r2, #0x0
+ add r1, r4, #0x0
+ ldr r0, _02079540 ; =0x000E0F01
+ str r2, [sp, #0x4]
+ str r0, [sp, #0x8]
+ mov r0, #0xfa
+ lsl r0, r0, #0x2
+ add r0, r4, r0
+ add r1, #0xd8
+ add r3, r2, #0x0
+ str r2, [sp, #0xc]
+ bl FUN_02078E7C
+ mov r0, #0x4a
+ lsl r0, r0, #0x4
+ ldr r1, [r4, r0]
+ add r1, r1, #0x1
+ str r1, [r4, r0]
+ ldr r0, _02079544 ; =0x000005EB
+ bl FUN_020054C8
+ b _02079526
+_0207931C:
+ mov r2, #0x46
+ lsl r2, r2, #0x4
+ ldr r0, _02079534 ; =0x0000E002
+ ldr r3, [r4, r2]
+ sub r5, r1, r0
+ cmp r3, r5
+ beq _02079368
+ mov r1, #0x0
+ sub r0, r2, #0x4
+ str r1, [r4, r0]
+ str r5, [r4, r2]
+ add r0, r4, #0x0
+ ldr r1, [r4, r2]
+ add r0, #0x3a
+ bl FUN_0207916C
+ mov r0, #0x49
+ lsl r0, r0, #0x4
+ add r2, r4, r0
+ lsl r1, r5, #0x2
+ ldr r0, [r2, r1]
+ add r0, r0, #0x1
+ str r0, [r2, r1]
+ ldr r0, _02079548 ; =0x0000069E
+ bl FUN_020054C8
+ mov r0, #0xd3
+ lsl r0, r0, #0x2
+ ldr r0, [r4, r0]
+ add r1, r6, #0x0
+ bl FUN_020200A0
+ b _02079526
+_0207935E:
+ mov r1, #0x56
+ lsl r1, r1, #0x2
+ ldrh r0, [r4, r1]
+ cmp r0, #0x0
+ bne _0207936A
+_02079368:
+ b _02079526
+_0207936A:
+ sub r0, r0, #0x1
+ lsl r0, r0, #0x1
+ add r0, r4, r0
+ ldr r2, _0207954C ; =0x0000FFFF
+ add r0, #0xd8
+ strh r2, [r0, #0x0]
+ ldrh r0, [r4, r1]
+ sub r0, r0, #0x1
+ strh r0, [r4, r1]
+ mov r0, #0xfa
+ lsl r0, r0, #0x2
+ add r0, r4, r0
+ mov r1, #0x1
+ bl FUN_02019620
+ mov r0, #0x56
+ lsl r0, r0, #0x2
+ ldrh r0, [r4, r0]
+ cmp r0, #0x0
+ bne _0207939E
+ mov r0, #0xfa
+ lsl r0, r0, #0x2
+ add r0, r4, r0
+ bl FUN_020191D0
+ b _020793BC
+_0207939E:
+ mov r0, #0xc
+ str r0, [sp, #0x0]
+ mov r2, #0x0
+ ldr r0, _02079540 ; =0x000E0F01
+ str r2, [sp, #0x4]
+ str r0, [sp, #0x8]
+ mov r0, #0xfa
+ lsl r0, r0, #0x2
+ add r1, r4, #0x0
+ add r0, r4, r0
+ add r1, #0xd8
+ add r3, r2, #0x0
+ str r2, [sp, #0xc]
+ bl FUN_02078E7C
+_020793BC:
+ ldr r0, _02079550 ; =0x000004C4
+ mov r3, #0x5f
+ add r1, r4, r0
+ lsl r3, r3, #0x2
+ str r1, [sp, #0x0]
+ ldr r1, [r4, r3]
+ add r2, r3, #0x0
+ str r1, [sp, #0x4]
+ sub r2, #0x24
+ sub r0, #0xcc
+ add r1, r4, #0x0
+ sub r3, #0x22
+ ldrh r2, [r4, r2]
+ add r0, r4, r0
+ add r1, #0xd8
+ add r3, r4, r3
+ bl FUN_0207907C
+ mov r1, #0x56
+ lsl r1, r1, #0x2
+ mov r0, #0xd9
+ lsl r0, r0, #0x2
+ ldrh r1, [r4, r1]
+ ldr r2, [r4, #0xc]
+ add r0, r4, r0
+ bl FUN_02079710
+ ldr r0, _02079554 ; =0x000004A4
+ ldr r1, [r4, r0]
+ add r1, r1, #0x1
+ str r1, [r4, r0]
+ ldr r0, _02079558 ; =0x000005DC
+ bl FUN_020054C8
+ mov r0, #0xd3
+ lsl r0, r0, #0x2
+ ldr r0, [r4, r0]
+ add r1, r6, #0x0
+ bl FUN_020200A0
+ b _02079526
+_0207940E:
+ ldr r0, _0207955C ; =0x000005C4
+ ldr r0, [r4, r0]
+ bl FUN_020143D0
+ mov r0, #0xd3
+ lsl r0, r0, #0x2
+ ldr r0, [r4, r0]
+ add r1, r6, #0x0
+ bl FUN_020200A0
+ ldr r0, [r4, #0x14]
+ cmp r0, #0x0
+ bne _02079454
+ ldr r0, _02079560 ; =0x000005E2
+ bl FUN_020054C8
+ ldr r0, _02079564 ; =0x000004A8
+ ldr r1, [r4, r0]
+ add r1, r1, #0x1
+ str r1, [r4, r0]
+ mov r1, #0x0
+ mov r0, #0x10
+ str r0, [sp, #0x0]
+ mov r0, #0x1
+ str r0, [sp, #0x4]
+ mov r0, #0x12
+ str r0, [sp, #0x8]
+ mov r0, #0x2
+ add r2, r1, #0x0
+ add r3, r1, #0x0
+ bl FUN_0200E1D0
+ add sp, #0x10
+ mov r0, #0x3
+ pop {r4-r6, pc}
+_02079454:
+ ldr r0, _02079568 ; =0x0000045C
+ mov r1, #0x5
+ str r1, [r4, r0]
+ b _02079526
+_0207945C:
+ mov r0, #0x46
+ lsl r0, r0, #0x4
+ ldr r0, [r4, r0]
+ cmp r0, #0x4
+ bne _02079470
+ cmp r1, #0x1
+ bne _02079470
+ add sp, #0x10
+ mov r0, #0x2
+ pop {r4-r6, pc}
+_02079470:
+ mov r0, #0x56
+ lsl r0, r0, #0x2
+ ldrh r2, [r4, r0]
+ ldr r0, [r4, #0xc]
+ cmp r2, r0
+ beq _02079526
+ lsl r0, r2, #0x1
+ add r0, r4, r0
+ add r0, #0xd8
+ strh r1, [r0, #0x0]
+ mov r0, #0xfa
+ lsl r0, r0, #0x2
+ add r0, r4, r0
+ mov r1, #0x1
+ bl FUN_02019620
+ mov r0, #0xc
+ str r0, [sp, #0x0]
+ mov r2, #0x0
+ add r1, r4, #0x0
+ ldr r0, _02079540 ; =0x000E0F01
+ str r2, [sp, #0x4]
+ str r0, [sp, #0x8]
+ mov r0, #0xfa
+ lsl r0, r0, #0x2
+ add r0, r4, r0
+ add r1, #0xd8
+ add r3, r2, #0x0
+ str r2, [sp, #0xc]
+ bl FUN_02078E7C
+ mov r1, #0x56
+ lsl r1, r1, #0x2
+ ldrh r0, [r4, r1]
+ add r0, r0, #0x1
+ strh r0, [r4, r1]
+ mov r0, #0xd9
+ lsl r0, r0, #0x2
+ ldrh r1, [r4, r1]
+ ldr r2, [r4, #0xc]
+ add r0, r4, r0
+ bl FUN_02079710
+ ldr r0, _02079544 ; =0x000005EB
+ bl FUN_020054C8
+ mov r0, #0xd3
+ lsl r0, r0, #0x2
+ ldr r0, [r4, r0]
+ mov r1, #0x1
+ bl FUN_020200A0
+ mov r0, #0xd3
+ lsl r0, r0, #0x2
+ ldr r0, [r4, r0]
+ mov r1, #0x1
+ bl FUN_02020398
+ mov r3, #0x8
+ ldr r0, _0207956C ; =0x04000050
+ mov r1, #0x0
+ mov r2, #0x7
+ str r3, [sp, #0x0]
+ blx G2x_SetBlendAlpha_
+ mov r0, #0xd3
+ lsl r0, r0, #0x2
+ ldr r0, [r4, r0]
+ mov r1, #0x3c
+ bl FUN_02020130
+ mov r0, #0x1
+ str r0, [r4, #0x34]
+ ldr r0, _02079550 ; =0x000004C4
+ mov r3, #0x5f
+ add r1, r4, r0
+ lsl r3, r3, #0x2
+ str r1, [sp, #0x0]
+ ldr r1, [r4, r3]
+ add r2, r3, #0x0
+ str r1, [sp, #0x4]
+ sub r2, #0x24
+ sub r0, #0xcc
+ add r1, r4, #0x0
+ sub r3, #0x22
+ ldrh r2, [r4, r2]
+ add r0, r4, r0
+ add r1, #0xd8
+ add r3, r4, r3
+ bl FUN_0207907C
+_02079526:
+ mov r0, #0x2
+ add sp, #0x10
+ pop {r4-r6, pc}
+ .balign 4
+_0207952C: .word 0x00002FFD
+_02079530: .word 0x00001FFE
+_02079534: .word 0x0000E002
+_02079538: .word 0x0000D002
+_0207953C: .word 0x0000D001
+_02079540: .word 0x000E0F01
+_02079544: .word 0x000005EB
+_02079548: .word 0x0000069E
+_0207954C: .word 0x0000FFFF
+_02079550: .word 0x000004C4
+_02079554: .word 0x000004A4
+_02079558: .word 0x000005DC
+_0207955C: .word 0x000005C4
+_02079560: .word 0x000005E2
+_02079564: .word 0x000004A8
+_02079568: .word 0x0000045C
+_0207956C: .word 0x04000050
+
+ thumb_func_start FUN_02079570
+FUN_02079570: ; 0x02079570
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ mov r4, #0x0
+ mov r6, #0x3
+_02079578:
+ add r0, r1, #0x1
+ add r1, r4, #0x0
+ add r2, r6, #0x0
+ bl FUN_02078BD0
+ add r1, r0, #0x0
+ lsl r0, r1, #0x1
+ ldrh r0, [r5, r0]
+ cmp r0, #0x1
+ beq _02079578
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_02079590
+FUN_02079590: ; 0x02079590
+ push {r3-r7, lr}
+ sub sp, #0x8
+ add r4, r0, #0x0
+ add r0, r1, #0x0
+ str r2, [sp, #0x0]
+ cmp r3, #0x0
+ bne _020795A4
+ add sp, #0x8
+ mov r0, #0x0
+ pop {r3-r7, pc}
+_020795A4:
+ sub r1, r3, #0x1
+ lsl r1, r1, #0x1
+ str r1, [sp, #0x4]
+ ldrh r3, [r2, r1]
+ cmp r4, r0
+ bge _020795F2
+ mov r1, #0x6
+ ldr r2, _020795F8 ; =0x020FA40E
+ mul r1, r4
+ add r5, r2, r1
+ mov r7, #0x0
+_020795BA:
+ add r2, r7, #0x0
+ add r6, r5, #0x0
+_020795BE:
+ ldrh r1, [r6, #0x0]
+ cmp r3, r1
+ bne _020795E2
+ cmp r3, #0x1
+ beq _020795E2
+ mov r0, #0x6
+ ldr r1, _020795F8 ; =0x020FA40E
+ mul r0, r4
+ add r0, r1, r0
+ add r1, r2, #0x0
+ bl FUN_02079570
+ ldr r2, [sp, #0x0]
+ ldr r1, [sp, #0x4]
+ add sp, #0x8
+ strh r0, [r2, r1]
+ mov r0, #0x1
+ pop {r3-r7, pc}
+_020795E2:
+ add r2, r2, #0x1
+ add r6, r6, #0x2
+ cmp r2, #0x3
+ blt _020795BE
+ add r4, r4, #0x1
+ add r5, r5, #0x6
+ cmp r4, r0
+ blt _020795BA
+_020795F2:
+ mov r0, #0x0
+ add sp, #0x8
+ pop {r3-r7, pc}
+ .balign 4
+_020795F8: .word 0x020FA40E
+
+ thumb_func_start FUN_020795FC
+FUN_020795FC: ; 0x020795FC
+ push {r3-r7, lr}
+ add r4, r0, #0x0
+ add r0, r1, #0x0
+ ldr r1, [sp, #0x1c]
+ mov lr, r2
+ mov r12, r3
+ cmp r1, #0x0
+ beq _02079618
+ sub r1, r1, #0x1
+ ldr r6, [sp, #0x18]
+ lsl r7, r1, #0x1
+ ldrh r5, [r6, r7]
+ cmp r5, #0x1
+ bne _0207961C
+_02079618:
+ mov r0, #0x0
+ pop {r3-r7, pc}
+_0207961C:
+ add r2, r4, #0x0
+ cmp r4, r0
+ bge _0207964E
+ mov r1, #0x6
+ ldr r3, _020796F4 ; =0x020FA40E
+ mul r1, r4
+ add r3, r3, r1
+_0207962A:
+ ldrh r1, [r3, #0x0]
+ cmp r5, r1
+ bne _02079646
+ add r3, r2, #0x0
+ mov r0, #0x6
+ mul r3, r0
+ mov r0, lr
+ ldr r2, _020796F4 ; =0x020FA40E
+ lsl r1, r0, #0x1
+ add r0, r2, r3
+ ldrh r0, [r1, r0]
+ strh r0, [r6, r7]
+ mov r0, #0x1
+ pop {r3-r7, pc}
+_02079646:
+ add r2, r2, #0x1
+ add r3, r3, #0x6
+ cmp r2, r0
+ blt _0207962A
+_0207964E:
+ cmp r4, r0
+ bge _0207967E
+ mov r2, lr
+ ldr r1, _020796F4 ; =0x020FA40E
+ lsl r2, r2, #0x1
+ add r1, r1, r2
+ mov r2, #0x6
+ mul r2, r4
+ add r2, r1, r2
+_02079660:
+ ldrh r1, [r2, #0x0]
+ cmp r5, r1
+ bne _02079676
+ mov r0, #0x6
+ add r1, r4, #0x0
+ mul r1, r0
+ ldr r0, _020796F4 ; =0x020FA40E
+ ldrh r0, [r0, r1]
+ strh r0, [r6, r7]
+ mov r0, #0x1
+ pop {r3-r7, pc}
+_02079676:
+ add r4, r4, #0x1
+ add r2, r2, #0x6
+ cmp r4, r0
+ blt _02079660
+_0207967E:
+ ldr r1, _020796F8 ; =0x0000D001
+ mov r0, r12
+ cmp r0, r1
+ beq _02079698
+ add r1, r1, #0x1
+ mov r0, r12
+ cmp r0, r1
+ beq _020796B8
+ ldr r1, _020796FC ; =0x0000E006
+ mov r0, r12
+ cmp r0, r1
+ beq _020796D8
+ b _020796F0
+_02079698:
+ ldr r1, _02079700 ; =0x020FA1A4
+ mov r2, #0x0
+_0207969C:
+ ldrh r0, [r1, #0x0]
+ cmp r5, r0
+ bne _020796AE
+ ldr r0, _02079704 ; =0x020FA1A6
+ lsl r1, r2, #0x2
+ ldrh r0, [r0, r1]
+ strh r0, [r6, r7]
+ mov r0, #0x1
+ pop {r3-r7, pc}
+_020796AE:
+ add r2, r2, #0x1
+ add r1, r1, #0x4
+ cmp r2, #0xc
+ blo _0207969C
+ b _020796F0
+_020796B8:
+ ldr r1, _02079708 ; =0x020FA17C
+ mov r2, #0x0
+_020796BC:
+ ldrh r0, [r1, #0x0]
+ cmp r5, r0
+ bne _020796CE
+ ldr r0, _0207970C ; =0x020FA17E
+ lsl r1, r2, #0x2
+ ldrh r0, [r0, r1]
+ strh r0, [r6, r7]
+ mov r0, #0x1
+ pop {r3-r7, pc}
+_020796CE:
+ add r2, r2, #0x1
+ add r1, r1, #0x4
+ cmp r2, #0xa
+ blo _020796BC
+ b _020796F0
+_020796D8:
+ cmp r5, #0x26
+ bne _020796E4
+ mov r0, #0x24
+ strh r0, [r6, r7]
+ mov r0, #0x1
+ pop {r3-r7, pc}
+_020796E4:
+ cmp r5, #0x76
+ bne _020796F0
+ mov r0, #0x74
+ strh r0, [r6, r7]
+ mov r0, #0x1
+ pop {r3-r7, pc}
+_020796F0:
+ mov r0, #0x0
+ pop {r3-r7, pc}
+ .balign 4
+_020796F4: .word 0x020FA40E
+_020796F8: .word 0x0000D001
+_020796FC: .word 0x0000E006
+_02079700: .word 0x020FA1A4
+_02079704: .word 0x020FA1A6
+_02079708: .word 0x020FA17C
+_0207970C: .word 0x020FA17E
+
+ thumb_func_start FUN_02079710
+FUN_02079710: ; 0x02079710
+ push {r3-r7, lr}
+ sub sp, #0x8
+ add r6, r2, #0x0
+ mov r4, #0x0
+ str r0, [sp, #0x0]
+ str r1, [sp, #0x4]
+ cmp r6, #0x0
+ ble _02079734
+ add r5, r0, #0x0
+ mov r7, #0x2b
+_02079724:
+ ldr r0, [r5, #0x0]
+ add r1, r7, #0x0
+ bl FUN_02020130
+ add r4, r4, #0x1
+ add r5, r5, #0x4
+ cmp r4, r6
+ blt _02079724
+_02079734:
+ ldr r0, [sp, #0x4]
+ cmp r0, r6
+ beq _02079746
+ lsl r1, r0, #0x2
+ ldr r0, [sp, #0x0]
+ ldr r0, [r0, r1]
+ mov r1, #0x2c
+ bl FUN_02020130
+_02079746:
+ add sp, #0x8
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_0207974C
+FUN_0207974C: ; 0x0207974C
+ push {r3-r7, lr}
+ sub sp, #0x18
+ str r2, [sp, #0x10]
+ ldr r2, [sp, #0x30]
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ add r5, r0, #0x0
+ str r3, [sp, #0x14]
+ str r2, [sp, #0x30]
+ bl FUN_02019620
+ ldr r1, _0207982C ; =0x020F9D30
+ ldr r0, [sp, #0x10]
+ mov r7, #0x0
+ ldrb r4, [r1, r0]
+ mov r6, #0x10
+_0207976C:
+ mov r0, #0x10
+ str r0, [sp, #0x0]
+ mov r0, #0x13
+ lsl r2, r6, #0x10
+ str r0, [sp, #0x4]
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ lsr r2, r2, #0x10
+ mov r3, #0x0
+ bl FUN_020196F4
+ mov r0, #0x10
+ str r0, [sp, #0x0]
+ mov r0, #0x13
+ lsl r2, r6, #0x10
+ str r0, [sp, #0x4]
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ lsr r2, r2, #0x10
+ mov r3, #0x26
+ bl FUN_020196F4
+ mov r0, #0x10
+ str r0, [sp, #0x0]
+ mov r0, #0x13
+ lsl r2, r6, #0x10
+ str r0, [sp, #0x4]
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ lsr r2, r2, #0x10
+ mov r3, #0x4c
+ bl FUN_020196F4
+ add r7, r7, #0x1
+ add r6, #0x20
+ cmp r7, #0x6
+ blt _0207976C
+ mov r7, #0x0
+ add r6, r7, #0x0
+_020797BA:
+ mov r0, #0x10
+ str r0, [sp, #0x0]
+ mov r0, #0x13
+ lsl r2, r6, #0x10
+ str r0, [sp, #0x4]
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ lsr r2, r2, #0x10
+ mov r3, #0x13
+ bl FUN_020196F4
+ mov r0, #0x10
+ str r0, [sp, #0x0]
+ mov r0, #0x13
+ lsl r2, r6, #0x10
+ str r0, [sp, #0x4]
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ lsr r2, r2, #0x10
+ mov r3, #0x39
+ bl FUN_020196F4
+ add r7, r7, #0x1
+ add r6, #0x20
+ cmp r7, #0x7
+ blt _020797BA
+ ldr r0, [sp, #0x10]
+ mov r1, #0x14
+ ldr r2, _02079830 ; =0x0210606C
+ mul r1, r0
+ mov r7, #0x0
+ mov r6, #0x4
+ add r4, r2, r1
+_020797FC:
+ mov r0, #0x10
+ str r0, [sp, #0x0]
+ mov r0, #0xff
+ str r0, [sp, #0x4]
+ ldr r0, [sp, #0x14]
+ mov r2, #0x0
+ str r0, [sp, #0x8]
+ ldr r0, [sp, #0x30]
+ add r3, r6, #0x0
+ str r0, [sp, #0xc]
+ ldr r1, [r4, #0x0]
+ add r0, r5, #0x0
+ bl FUN_02078E7C
+ add r7, r7, #0x1
+ add r6, #0x13
+ add r4, r4, #0x4
+ cmp r7, #0x5
+ blt _020797FC
+ add r0, r5, #0x0
+ bl FUN_020191D0
+ add sp, #0x18
+ pop {r3-r7, pc}
+ .balign 4
+_0207982C: .word 0x020F9D30
+_02079830: .word 0x0210606C
+
+ thumb_func_start FUN_02079834
+FUN_02079834: ; 0x02079834
+ push {r3-r7, lr}
+ sub sp, #0x8
+ add r6, r1, #0x0
+ str r0, [sp, #0x0]
+ mov r7, #0x0
+ add r1, r0, #0x0
+_02079840:
+ ldr r0, [r1, #0x0]
+ cmp r0, #0x0
+ beq _02079876
+ mov r0, #0x0
+ ldr r4, _020798B8 ; =0x020FA1D4
+ str r0, [sp, #0x4]
+ add r5, r6, #0x0
+_0207984E:
+ ldr r0, [r5, #0x0]
+ ldr r1, [r4, #0x8]
+ bl FUN_02020130
+ ldr r0, [sp, #0x4]
+ add r4, #0x10
+ add r0, r0, #0x1
+ add r5, r5, #0x4
+ str r0, [sp, #0x4]
+ cmp r0, #0x3
+ blt _0207984E
+ ldr r1, _020798BC ; =0x020FA1DC
+ lsl r2, r7, #0x4
+ lsl r0, r7, #0x2
+ ldr r1, [r1, r2]
+ ldr r0, [r6, r0]
+ sub r1, r1, #0x3
+ bl FUN_02020130
+ b _0207987E
+_02079876:
+ add r7, r7, #0x1
+ add r1, r1, #0x4
+ cmp r7, #0x3
+ blt _02079840
+_0207987E:
+ ldr r4, [sp, #0x0]
+ ldr r5, _020798C0 ; =0x020FA224
+ mov r7, #0x5
+ add r4, #0x14
+ add r6, #0x14
+_02079888:
+ ldr r0, [r4, #0x0]
+ cmp r0, #0x0
+ beq _02079898
+ ldr r1, [r5, #0x8]
+ ldr r0, [r6, #0x0]
+ add r1, r1, #0x1
+ bl FUN_02020130
+_02079898:
+ add r7, r7, #0x1
+ add r4, r4, #0x4
+ add r5, #0x10
+ add r6, r6, #0x4
+ cmp r7, #0x7
+ blt _02079888
+ mov r2, #0x0
+ add r1, r2, #0x0
+_020798A8:
+ ldr r0, [sp, #0x0]
+ add r2, r2, #0x1
+ stmia r0!, {r1}
+ str r0, [sp, #0x0]
+ cmp r2, #0x7
+ blt _020798A8
+ add sp, #0x8
+ pop {r3-r7, pc}
+ .balign 4
+_020798B8: .word 0x020FA1D4
+_020798BC: .word 0x020FA1DC
+_020798C0: .word 0x020FA224
+
+ thumb_func_start FUN_020798C4
+FUN_020798C4: ; 0x020798C4
+ push {r4, lr}
+ add r4, r0, #0x0
+ mov r0, #0xd3
+ lsl r0, r0, #0x2
+ ldr r0, [r4, r0]
+ bl FUN_02020388
+ cmp r0, #0x0
+ bne _0207992E
+ mov r0, #0x56
+ lsl r0, r0, #0x2
+ ldrh r1, [r4, r0]
+ ldr r0, [r4, #0xc]
+ cmp r1, r0
+ bne _020798F8
+ mov r0, #0xc
+ str r0, [r4, #0x1c]
+ mov r0, #0x0
+ str r0, [r4, #0x20]
+ mov r0, #0xd3
+ lsl r0, r0, #0x2
+ ldr r0, [r4, r0]
+ mov r1, #0x27
+ bl FUN_02020130
+ b _02079904
+_020798F8:
+ mov r0, #0xd3
+ lsl r0, r0, #0x2
+ ldr r0, [r4, r0]
+ mov r1, #0x27
+ bl FUN_02020130
+_02079904:
+ ldr r0, [r4, #0x30]
+ cmp r0, #0x0
+ bne _02079918
+ mov r0, #0xd3
+ lsl r0, r0, #0x2
+ ldr r0, [r4, r0]
+ mov r1, #0x0
+ bl FUN_020200A0
+ b _02079920
+_02079918:
+ add r0, r4, #0x0
+ mov r1, #0x0
+ bl FUN_02078D7C
+_02079920:
+ mov r1, #0x0
+ mov r0, #0xd3
+ str r1, [r4, #0x34]
+ lsl r0, r0, #0x2
+ ldr r0, [r4, r0]
+ bl FUN_02020398
+_0207992E:
+ pop {r4, pc}
+
+ thumb_func_start FUN_02079930
+FUN_02079930: ; 0x02079930
+ push {r3-r7, lr}
+ str r0, [sp, #0x0]
+ mov r0, #0x0
+ mov r12, r0
+ ldr r0, [sp, #0x0]
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x4
+ bne _02079944
+ mov r0, #0x4
+ mov r12, r0
+_02079944:
+ ldr r2, _020799E0 ; =0x021C48F8
+ ldrh r0, [r2, #0x20]
+ cmp r0, #0x0
+ beq _020799DA
+ ldrh r0, [r2, #0x1c]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ mov lr, r0
+ ldrh r0, [r2, #0x1e]
+ lsl r0, r0, #0x18
+ lsr r7, r0, #0x18
+ mov r0, r12
+ cmp r0, #0x47
+ bhs _020799DA
+ mov r0, #0x6
+ mov r2, r12
+ mul r0, r2
+ ldr r2, _020799E4 ; =0x020FA264
+ add r2, r2, r0
+ add r3, r2, #0x0
+_0207996C:
+ ldrh r4, [r3, #0x2]
+ ldrb r0, [r2, #0x0]
+ ldrb r6, [r2, #0x1]
+ lsl r4, r4, #0x1e
+ lsr r4, r4, #0x1e
+ beq _02079982
+ cmp r4, #0x1
+ beq _02079988
+ cmp r4, #0x2
+ beq _0207998E
+ b _02079992
+_02079982:
+ mov r5, #0x1f
+ mov r1, #0x16
+ b _02079992
+_02079988:
+ mov r5, #0x20
+ mov r1, #0x16
+ b _02079992
+_0207998E:
+ mov r5, #0x10
+ mov r1, #0x13
+_02079992:
+ mov r4, lr
+ cmp r4, r0
+ blo _020799CC
+ cmp r7, r6
+ blo _020799CC
+ add r4, r0, r5
+ mov r0, lr
+ cmp r0, r4
+ bgt _020799CC
+ add r0, r6, r1
+ cmp r7, r0
+ bgt _020799CC
+ ldr r2, _020799E4 ; =0x020FA264
+ mov r1, #0x6
+ mov r0, r12
+ mul r1, r0
+ add r2, r2, r1
+ ldrb r0, [r2, #0x4]
+ lsl r0, r0, #0x1b
+ lsr r1, r0, #0x1b
+ ldr r0, [sp, #0x0]
+ str r1, [r0, #0x1c]
+ ldrb r0, [r2, #0x5]
+ lsl r0, r0, #0x1b
+ lsr r1, r0, #0x1b
+ ldr r0, [sp, #0x0]
+ str r1, [r0, #0x20]
+ mov r0, #0x1
+ pop {r3-r7, pc}
+_020799CC:
+ mov r0, r12
+ add r0, r0, #0x1
+ add r2, r2, #0x6
+ add r3, r3, #0x6
+ mov r12, r0
+ cmp r0, #0x47
+ blo _0207996C
+_020799DA:
+ mov r0, #0x0
+ pop {r3-r7, pc}
+ nop
+_020799E0: .word 0x021C48F8
+_020799E4: .word 0x020FA264
+
+ thumb_func_start FUN_020799E8
+FUN_020799E8: ; 0x020799E8
+ lsl r1, r0, #0x1
+ ldr r0, _020799F0 ; =0x020FA60C
+ ldrh r0, [r0, r1]
+ bx lr
+ .balign 4
+_020799F0: .word 0x020FA60C
+
+ thumb_func_start FUN_020799F4
+FUN_020799F4: ; 0x020799F4
+ push {r3, lr}
+ add r2, r0, #0x0
+ mul r2, r0
+ add r0, r1, #0x0
+ mul r0, r1
+ add r0, r2, r0
+ lsl r0, r0, #0x4
+ bl FUN_0200019E
+ lsr r0, r0, #0x2
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_02079A0C
+FUN_02079A0C: ; 0x02079A0C
+ push {r4, lr}
+ add r4, r0, #0x0
+ mul r0, r2
+ blx _u32_div_f
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bne _02079A22
+ cmp r4, #0x0
+ beq _02079A22
+ mov r0, #0x1
+_02079A22:
+ pop {r4, pc}
+
+ thumb_func_start FUN_02079A24
+FUN_02079A24: ; 0x02079A24
+ push {r4, lr}
+ add r4, r0, #0x0
+ lsl r0, r1, #0x8
+ lsl r4, r4, #0x8
+ lsr r1, r0, #0x1
+ cmp r4, r1
+ bls _02079A36
+ mov r0, #0x3
+ pop {r4, pc}
+_02079A36:
+ mov r1, #0x5
+ blx _u32_div_f
+ cmp r4, r0
+ bls _02079A44
+ mov r0, #0x2
+ pop {r4, pc}
+_02079A44:
+ cmp r4, #0x0
+ beq _02079A4C
+ mov r0, #0x1
+ b _02079A4E
+_02079A4C:
+ mov r0, #0x0
+_02079A4E:
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ pop {r4, pc}
+
+ thumb_func_start FUN_02079A54
+FUN_02079A54: ; 0x02079A54
+ push {r4, lr}
+ add r4, r2, #0x0
+ cmp r0, r1
+ bne _02079A60
+ mov r0, #0x4
+ pop {r4, pc}
+_02079A60:
+ lsl r2, r4, #0x18
+ lsr r2, r2, #0x18
+ bl FUN_02079A0C
+ add r1, r4, #0x0
+ bl FUN_02079A24
+ pop {r4, pc}
+
+ thumb_func_start FUN_02079A70
+FUN_02079A70: ; 0x02079A70
+ push {lr}
+ sub sp, #0xc
+ cmp r0, #0x0
+ bne _02079A90
+ mov r0, #0x6
+ str r0, [sp, #0x0]
+ mov r2, #0x1
+ str r2, [sp, #0x4]
+ mov r0, #0x0
+ str r1, [sp, #0x8]
+ add r1, r2, #0x0
+ add r3, r0, #0x0
+ bl FUN_0200E1D0
+ add sp, #0xc
+ pop {pc}
+_02079A90:
+ mov r0, #0x6
+ str r0, [sp, #0x0]
+ mov r0, #0x1
+ str r0, [sp, #0x4]
+ mov r0, #0x0
+ str r1, [sp, #0x8]
+ add r1, r0, #0x0
+ add r2, r0, #0x0
+ add r3, r0, #0x0
+ bl FUN_0200E1D0
+ add sp, #0xc
+ pop {pc}
+ .balign 4
+
+ thumb_func_start FUN_02079AAC
+FUN_02079AAC: ; 0x02079AAC
+ push {r4-r5}
+ ldr r3, _02079B5C ; =0x021C48B8
+ mov r2, #0x0
+ ldr r3, [r3, #0x4c]
+ mov r5, #0x40
+ ldrsh r4, [r0, r2]
+ tst r5, r3
+ beq _02079ADE
+ add r3, r4, #0x1
+ strh r3, [r0, #0x0]
+ ldrsh r2, [r0, r2]
+ cmp r2, r1
+ ble _02079ACA
+ mov r1, #0x1
+ strh r1, [r0, #0x0]
+_02079ACA:
+ mov r1, #0x0
+ ldrsh r0, [r0, r1]
+ cmp r0, r4
+ bne _02079AD8
+ add r0, r1, #0x0
+ pop {r4-r5}
+ bx lr
+_02079AD8:
+ mov r0, #0x1
+ pop {r4-r5}
+ bx lr
+_02079ADE:
+ mov r5, #0x80
+ tst r5, r3
+ beq _02079B04
+ sub r3, r4, #0x1
+ strh r3, [r0, #0x0]
+ ldrsh r2, [r0, r2]
+ cmp r2, #0x0
+ bgt _02079AF0
+ strh r1, [r0, #0x0]
+_02079AF0:
+ mov r1, #0x0
+ ldrsh r0, [r0, r1]
+ cmp r0, r4
+ bne _02079AFE
+ add r0, r1, #0x0
+ pop {r4-r5}
+ bx lr
+_02079AFE:
+ mov r0, #0x2
+ pop {r4-r5}
+ bx lr
+_02079B04:
+ mov r5, #0x20
+ tst r5, r3
+ beq _02079B2E
+ add r1, r4, #0x0
+ sub r1, #0xa
+ strh r1, [r0, #0x0]
+ ldrsh r1, [r0, r2]
+ cmp r1, #0x0
+ bgt _02079B1A
+ mov r1, #0x1
+ strh r1, [r0, #0x0]
+_02079B1A:
+ mov r1, #0x0
+ ldrsh r0, [r0, r1]
+ cmp r0, r4
+ bne _02079B28
+ add r0, r1, #0x0
+ pop {r4-r5}
+ bx lr
+_02079B28:
+ mov r0, #0x2
+ pop {r4-r5}
+ bx lr
+_02079B2E:
+ mov r5, #0x10
+ tst r3, r5
+ beq _02079B56
+ add r3, r4, #0x0
+ add r3, #0xa
+ strh r3, [r0, #0x0]
+ ldrsh r2, [r0, r2]
+ cmp r2, r1
+ ble _02079B42
+ strh r1, [r0, #0x0]
+_02079B42:
+ mov r1, #0x0
+ ldrsh r0, [r0, r1]
+ cmp r0, r4
+ bne _02079B50
+ add r0, r1, #0x0
+ pop {r4-r5}
+ bx lr
+_02079B50:
+ mov r0, #0x1
+ pop {r4-r5}
+ bx lr
+_02079B56:
+ add r0, r2, #0x0
+ pop {r4-r5}
+ bx lr
+ .balign 4
+_02079B5C: .word 0x021C48B8
+
+ thumb_func_start FUN_02079B60
+FUN_02079B60: ; 0x02079B60
+ push {r4-r7, lr}
+ sub sp, #0x14
+ add r7, r1, #0x0
+ add r6, r0, #0x0
+ ldr r1, [sp, #0x28]
+ add r0, r3, #0x0
+ str r2, [sp, #0x4]
+ ldr r5, [sp, #0x2c]
+ ldr r4, [sp, #0x34]
+ bl LoadFromNARC_7
+ add r1, r0, #0x0
+ add r0, r7, #0x0
+ bl FUN_020169D8
+ add r7, r0, #0x0
+ ldr r0, [sp, #0x4]
+ ldr r1, [sp, #0x28]
+ add r2, r7, #0x0
+ bl FUN_02006774
+ ldr r0, [sp, #0x30]
+ cmp r0, #0x0
+ beq _02079B9A
+ cmp r0, #0x1
+ beq _02079BC6
+ cmp r0, #0x2
+ beq _02079C10
+ b _02079C36
+_02079B9A:
+ add r0, r7, #0x0
+ add r1, sp, #0x10
+ blx FUN_020B0088
+ cmp r4, #0x0
+ bne _02079BAE
+ ldr r0, [sp, #0x10]
+ ldr r0, [r0, #0x10]
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+_02079BAE:
+ add r0, sp, #0x18
+ ldrh r0, [r0, #0x20]
+ lsl r1, r5, #0x18
+ lsr r1, r1, #0x18
+ str r0, [sp, #0x0]
+ ldr r2, [sp, #0x10]
+ add r0, r6, #0x0
+ ldr r2, [r2, #0x14]
+ add r3, r4, #0x0
+ bl FUN_02017E14
+ b _02079C36
+_02079BC6:
+ add r0, r7, #0x0
+ add r1, sp, #0xc
+ blx FUN_020B0180
+ cmp r4, #0x0
+ bne _02079BDA
+ ldr r0, [sp, #0xc]
+ ldr r0, [r0, #0x8]
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+_02079BDA:
+ lsl r1, r5, #0x18
+ add r0, r6, #0x0
+ lsr r1, r1, #0x18
+ bl FUN_0201886C
+ cmp r0, #0x0
+ beq _02079BF8
+ ldr r2, [sp, #0xc]
+ lsl r1, r5, #0x18
+ add r0, r6, #0x0
+ lsr r1, r1, #0x18
+ add r2, #0xc
+ add r3, r4, #0x0
+ bl FUN_02017DFC
+_02079BF8:
+ add r0, sp, #0x18
+ ldrh r0, [r0, #0x20]
+ lsl r1, r5, #0x18
+ lsr r1, r1, #0x18
+ str r0, [sp, #0x0]
+ ldr r2, [sp, #0xc]
+ add r0, r6, #0x0
+ add r2, #0xc
+ add r3, r4, #0x0
+ bl FUN_02017CE8
+ b _02079C36
+_02079C10:
+ add r0, r7, #0x0
+ add r1, sp, #0x8
+ blx FUN_020B0138
+ cmp r4, #0x0
+ bne _02079C24
+ ldr r0, [sp, #0x8]
+ ldr r0, [r0, #0x8]
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+_02079C24:
+ ldr r1, [sp, #0x8]
+ add r3, sp, #0x18
+ lsl r0, r5, #0x18
+ ldrh r3, [r3, #0x20]
+ ldr r1, [r1, #0xc]
+ lsr r0, r0, #0x18
+ add r2, r4, #0x0
+ bl FUN_02017FB4
+_02079C36:
+ add r0, r7, #0x0
+ bl FUN_02016A18
+ add sp, #0x14
+ pop {r4-r7, pc}
+
+ thumb_func_start FUN_02079C40
+FUN_02079C40: ; 0x02079C40
+ push {r3-r7, lr}
+ add r5, r2, #0x0
+ add r6, r0, #0x0
+ add r0, r1, #0x0
+ add r1, r5, #0x0
+ add r7, r3, #0x0
+ bl LoadFromNARC_7
+ add r1, r0, #0x0
+ ldr r0, [sp, #0x18]
+ bl FUN_02016998
+ add r4, r0, #0x0
+ add r0, r6, #0x0
+ add r1, r5, #0x0
+ add r2, r4, #0x0
+ bl FUN_02006774
+ add r0, r4, #0x0
+ add r1, r7, #0x0
+ blx FUN_020B0180
+ add r0, r4, #0x0
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_02079C70
+FUN_02079C70: ; 0x02079C70
+ push {r3, lr}
+ bl FUN_020462AC
+ bl FUN_0205F184
+ pop {r3, pc}
+
+ thumb_func_start FUN_02079C7C
+FUN_02079C7C: ; 0x02079C7C
+ push {r3-r5, lr}
+ add r4, r0, #0x0
+ mov r0, #0x0
+ add r1, r0, #0x0
+ bl FUN_02015F10
+ bl FUN_02015F1C
+ bl FUN_0201E6D8
+ bl FUN_0201E740
+ mov r1, #0x1
+ lsl r1, r1, #0x1a
+ ldr r0, [r1, #0x0]
+ ldr r2, _02079DA0 ; =0xFFFFE0FF
+ and r0, r2
+ str r0, [r1, #0x0]
+ ldr r0, _02079DA4 ; =0x04001000
+ ldr r3, [r0, #0x0]
+ and r2, r3
+ str r2, [r0, #0x0]
+ ldr r3, [r1, #0x0]
+ ldr r2, _02079DA8 ; =0xFFFF1FFF
+ and r3, r2
+ str r3, [r1, #0x0]
+ ldr r3, [r0, #0x0]
+ add r1, #0x50
+ and r2, r3
+ str r2, [r0, #0x0]
+ mov r2, #0x0
+ strh r2, [r1, #0x0]
+ add r0, #0x50
+ strh r2, [r0, #0x0]
+ mov r0, #0x4
+ mov r1, #0x8
+ bl FUN_0201669C
+ mov r2, #0x1
+ mov r0, #0x3
+ mov r1, #0x13
+ lsl r2, r2, #0x12
+ bl FUN_0201681C
+ ldr r1, _02079DAC ; =0x0000069C
+ add r0, r4, #0x0
+ mov r2, #0x13
+ bl FUN_02006268
+ ldr r2, _02079DAC ; =0x0000069C
+ mov r1, #0x0
+ add r5, r0, #0x0
+ blx Call_FillMemWithValue
+ add r0, r4, #0x0
+ bl FUN_0200628C
+ mov r1, #0x93
+ lsl r1, r1, #0x2
+ str r0, [r5, r1]
+ mov r0, #0x13
+ bl FUN_02016B94
+ mov r1, #0x1
+ str r0, [r5, #0x0]
+ mov r0, #0x13
+ add r2, r1, #0x0
+ bl FUN_02014BF4
+ mov r1, #0x2d
+ lsl r1, r1, #0x4
+ str r0, [r5, r1]
+ mov r0, #0x0
+ mov r1, #0x13
+ bl FUN_02002C84
+ bl FUN_0201CC08
+ mov r0, #0x4
+ bl FUN_0201CC24
+ add r0, r5, #0x0
+ bl FUN_0207B028
+ bl FUN_02079F58
+ ldr r0, [r5, #0x0]
+ bl FUN_02079F78
+ add r0, r5, #0x0
+ bl FUN_0207A0CC
+ bl FUN_0207A188
+ add r0, r5, #0x0
+ bl FUN_0207EF6C
+ add r0, r5, #0x0
+ bl FUN_0207A1A0
+ add r0, r5, #0x0
+ bl FUN_0207AAB0
+ add r0, r5, #0x0
+ bl FUN_0207C328
+ add r0, r5, #0x0
+ bl FUN_0207C448
+ add r0, r5, #0x0
+ bl FUN_0207F840
+ add r0, r5, #0x0
+ bl FUN_0207C71C
+ add r0, r5, #0x0
+ bl FUN_0207C77C
+ add r0, r5, #0x0
+ bl FUN_0207D5BC
+ add r0, r5, #0x0
+ bl FUN_0207AF58
+ add r0, r5, #0x0
+ bl FUN_0207F95C
+ add r0, r5, #0x0
+ bl FUN_0207F098
+ ldr r0, _02079DB0 ; =FUN_02079F24
+ add r1, r5, #0x0
+ bl FUN_02015F10
+ bl FUN_0201E788
+ mov r1, #0x0
+ mov r0, #0x3d
+ add r2, r1, #0x0
+ bl FUN_0200433C
+ bl FUN_02033F20
+ mov r0, #0x1
+ pop {r3-r5, pc}
+ nop
+_02079DA0: .word 0xFFFFE0FF
+_02079DA4: .word 0x04001000
+_02079DA8: .word 0xFFFF1FFF
+_02079DAC: .word 0x0000069C
+_02079DB0: .word FUN_02079F24
+
+ thumb_func_start FUN_02079DB4
+FUN_02079DB4: ; 0x02079DB4
+ push {r3-r5, lr}
+ add r4, r1, #0x0
+ bl FUN_02006278
+ ldr r1, [r4, #0x0]
+ add r5, r0, #0x0
+ cmp r1, #0x13
+ bhi _02079EA2
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #0x6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_02079DD0: ; jump table (using 16-bit offset)
+ .short _02079DF8 - _02079DD0 - 2; case 0
+ .short _02079E06 - _02079DD0 - 2; case 1
+ .short _02079E0E - _02079DD0 - 2; case 2
+ .short _02079E16 - _02079DD0 - 2; case 3
+ .short _02079E1E - _02079DD0 - 2; case 4
+ .short _02079E26 - _02079DD0 - 2; case 5
+ .short _02079E2E - _02079DD0 - 2; case 6
+ .short _02079E36 - _02079DD0 - 2; case 7
+ .short _02079E3E - _02079DD0 - 2; case 8
+ .short _02079E46 - _02079DD0 - 2; case 9
+ .short _02079E4E - _02079DD0 - 2; case 10
+ .short _02079E56 - _02079DD0 - 2; case 11
+ .short _02079E5E - _02079DD0 - 2; case 12
+ .short _02079E66 - _02079DD0 - 2; case 13
+ .short _02079E6E - _02079DD0 - 2; case 14
+ .short _02079E76 - _02079DD0 - 2; case 15
+ .short _02079E7E - _02079DD0 - 2; case 16
+ .short _02079E86 - _02079DD0 - 2; case 17
+ .short _02079E8E - _02079DD0 - 2; case 18
+ .short _02079E96 - _02079DD0 - 2; case 19
+_02079DF8:
+ mov r0, #0x0
+ mov r1, #0x13
+ bl FUN_02079A70
+ mov r0, #0x1
+ str r0, [r4, #0x0]
+ b _02079EA2
+_02079E06:
+ bl FUN_0207A2D8
+ str r0, [r4, #0x0]
+ b _02079EA2
+_02079E0E:
+ bl FUN_0207A310
+ str r0, [r4, #0x0]
+ b _02079EA2
+_02079E16:
+ bl FUN_0207A448
+ str r0, [r4, #0x0]
+ b _02079EA2
+_02079E1E:
+ bl FUN_0207A45C
+ str r0, [r4, #0x0]
+ b _02079EA2
+_02079E26:
+ bl FUN_0207A470
+ str r0, [r4, #0x0]
+ b _02079EA2
+_02079E2E:
+ bl FUN_0207A484
+ str r0, [r4, #0x0]
+ b _02079EA2
+_02079E36:
+ bl FUN_0207A498
+ str r0, [r4, #0x0]
+ b _02079EA2
+_02079E3E:
+ bl FUN_0207A57C
+ str r0, [r4, #0x0]
+ b _02079EA2
+_02079E46:
+ bl FUN_0207A654
+ str r0, [r4, #0x0]
+ b _02079EA2
+_02079E4E:
+ bl FUN_0207A760
+ str r0, [r4, #0x0]
+ b _02079EA2
+_02079E56:
+ bl FUN_0207A77C
+ str r0, [r4, #0x0]
+ b _02079EA2
+_02079E5E:
+ bl FUN_0207A790
+ str r0, [r4, #0x0]
+ b _02079EA2
+_02079E66:
+ bl FUN_0207A7A4
+ str r0, [r4, #0x0]
+ b _02079EA2
+_02079E6E:
+ bl FUN_0207A818
+ str r0, [r4, #0x0]
+ b _02079EA2
+_02079E76:
+ bl FUN_0207A884
+ str r0, [r4, #0x0]
+ b _02079EA2
+_02079E7E:
+ bl FUN_0207AA20
+ str r0, [r4, #0x0]
+ b _02079EA2
+_02079E86:
+ bl FUN_0207AA70
+ str r0, [r4, #0x0]
+ b _02079EA2
+_02079E8E:
+ bl FUN_0207AA88
+ str r0, [r4, #0x0]
+ b _02079EA2
+_02079E96:
+ bl FUN_0207AA98
+ cmp r0, #0x1
+ bne _02079EA2
+ mov r0, #0x1
+ pop {r3-r5, pc}
+_02079EA2:
+ add r0, r5, #0x0
+ bl FUN_0207C3F4
+ add r0, r5, #0x0
+ bl FUN_0207CC88
+ add r0, r5, #0x0
+ bl FUN_0207D3F4
+ ldr r0, _02079EC8 ; =0x00000404
+ ldr r0, [r5, r0]
+ bl FUN_0200BC1C
+ add r0, r5, #0x0
+ bl FUN_0207F008
+ mov r0, #0x0
+ pop {r3-r5, pc}
+ nop
+_02079EC8: .word 0x00000404
+
+ thumb_func_start FUN_02079ECC
+FUN_02079ECC: ; 0x02079ECC
+ push {r3-r5, lr}
+ add r4, r0, #0x0
+ bl FUN_02006278
+ add r5, r0, #0x0
+ mov r0, #0x0
+ add r1, r0, #0x0
+ bl FUN_02015F10
+ add r0, r5, #0x0
+ bl FUN_0207F068
+ add r0, r5, #0x0
+ bl FUN_0207C3D4
+ add r0, r5, #0x0
+ bl FUN_0207D74C
+ ldr r0, [r5, #0x0]
+ bl FUN_0207A08C
+ bl FUN_0201CD04
+ bl FUN_0201C29C
+ add r0, r5, #0x0
+ bl FUN_0207A264
+ mov r0, #0x0
+ bl FUN_02002CC0
+ ldr r0, _02079F20 ; =0x04000050
+ mov r1, #0x0
+ strh r1, [r0, #0x0]
+ add r0, r4, #0x0
+ bl FUN_0200627C
+ mov r0, #0x13
+ bl FUN_020168D0
+ mov r0, #0x1
+ pop {r3-r5, pc}
+ .balign 4
+_02079F20: .word 0x04000050
+
+ thumb_func_start FUN_02079F24
+FUN_02079F24: ; 0x02079F24
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r0, [r4, #0x0]
+ bl FUN_0201AB60
+ mov r0, #0xae
+ lsl r0, r0, #0x2
+ ldr r0, [r4, r0]
+ bl FUN_020081C4
+ bl FUN_0201C30C
+ bl FUN_0200BC30
+ ldr r3, _02079F50 ; =0x027E0000
+ ldr r1, _02079F54 ; =0x00003FF8
+ mov r0, #0x1
+ ldr r2, [r3, r1]
+ orr r0, r2
+ str r0, [r3, r1]
+ pop {r4, pc}
+ nop
+_02079F50: .word 0x027E0000
+_02079F54: .word 0x00003FF8
+
+ thumb_func_start FUN_02079F58
+FUN_02079F58: ; 0x02079F58
+ push {r4, lr}
+ sub sp, #0x28
+ ldr r4, _02079F74 ; =0x020FA6C0
+ add r3, sp, #0x0
+ mov r2, #0x5
+_02079F62:
+ ldmia r4!, {r0-r1}
+ stmia r3!, {r0-r1}
+ sub r2, r2, #0x1
+ bne _02079F62
+ add r0, sp, #0x0
+ bl FUN_0201E66C
+ add sp, #0x28
+ pop {r4, pc}
+ .balign 4
+_02079F74: .word 0x020FA6C0
+
+ thumb_func_start FUN_02079F78
+FUN_02079F78: ; 0x02079F78
+ push {r4-r5, lr}
+ sub sp, #0x9c
+ ldr r5, _0207A074 ; =0x020FA624
+ add r3, sp, #0x8c
+ add r4, r0, #0x0
+ add r2, r3, #0x0
+ ldmia r5!, {r0-r1}
+ stmia r3!, {r0-r1}
+ ldmia r5!, {r0-r1}
+ stmia r3!, {r0-r1}
+ add r0, r2, #0x0
+ bl FUN_02016BBC
+ ldr r5, _0207A078 ; =0x020FA650
+ add r3, sp, #0x70
+ ldmia r5!, {r0-r1}
+ add r2, r3, #0x0
+ stmia r3!, {r0-r1}
+ ldmia r5!, {r0-r1}
+ stmia r3!, {r0-r1}
+ ldmia r5!, {r0-r1}
+ stmia r3!, {r0-r1}
+ ldr r0, [r5, #0x0]
+ mov r1, #0x1
+ str r0, [r3, #0x0]
+ add r0, r4, #0x0
+ mov r3, #0x0
+ bl FUN_02016C18
+ add r0, r4, #0x0
+ mov r1, #0x1
+ bl FUN_02018744
+ ldr r5, _0207A07C ; =0x020FA66C
+ add r3, sp, #0x54
+ ldmia r5!, {r0-r1}
+ add r2, r3, #0x0
+ stmia r3!, {r0-r1}
+ ldmia r5!, {r0-r1}
+ stmia r3!, {r0-r1}
+ ldmia r5!, {r0-r1}
+ stmia r3!, {r0-r1}
+ ldr r0, [r5, #0x0]
+ mov r1, #0x2
+ str r0, [r3, #0x0]
+ add r0, r4, #0x0
+ mov r3, #0x0
+ bl FUN_02016C18
+ add r0, r4, #0x0
+ mov r1, #0x2
+ bl FUN_02018744
+ add r0, r4, #0x0
+ mov r1, #0x2
+ mov r2, #0x0
+ mov r3, #0x88
+ bl FUN_0201AEE4
+ ldr r5, _0207A080 ; =0x020FA688
+ add r3, sp, #0x38
+ ldmia r5!, {r0-r1}
+ add r2, r3, #0x0
+ stmia r3!, {r0-r1}
+ ldmia r5!, {r0-r1}
+ stmia r3!, {r0-r1}
+ ldmia r5!, {r0-r1}
+ stmia r3!, {r0-r1}
+ ldr r0, [r5, #0x0]
+ mov r1, #0x3
+ str r0, [r3, #0x0]
+ add r0, r4, #0x0
+ mov r3, #0x0
+ bl FUN_02016C18
+ ldr r5, _0207A084 ; =0x020FA6A4
+ add r3, sp, #0x1c
+ ldmia r5!, {r0-r1}
+ add r2, r3, #0x0
+ stmia r3!, {r0-r1}
+ ldmia r5!, {r0-r1}
+ stmia r3!, {r0-r1}
+ ldmia r5!, {r0-r1}
+ stmia r3!, {r0-r1}
+ ldr r0, [r5, #0x0]
+ mov r1, #0x4
+ str r0, [r3, #0x0]
+ add r0, r4, #0x0
+ mov r3, #0x0
+ bl FUN_02016C18
+ add r0, r4, #0x0
+ mov r1, #0x4
+ bl FUN_02018744
+ ldr r5, _0207A088 ; =0x020FA634
+ add r3, sp, #0x0
+ ldmia r5!, {r0-r1}
+ add r2, r3, #0x0
+ stmia r3!, {r0-r1}
+ ldmia r5!, {r0-r1}
+ stmia r3!, {r0-r1}
+ ldmia r5!, {r0-r1}
+ stmia r3!, {r0-r1}
+ ldr r0, [r5, #0x0]
+ mov r1, #0x5
+ str r0, [r3, #0x0]
+ add r0, r4, #0x0
+ mov r3, #0x0
+ bl FUN_02016C18
+ mov r0, #0x1
+ mov r1, #0x20
+ mov r2, #0x0
+ mov r3, #0x13
+ bl FUN_02017F18
+ mov r0, #0x4
+ mov r1, #0x20
+ mov r2, #0x0
+ mov r3, #0x13
+ bl FUN_02017F18
+ add sp, #0x9c
+ pop {r4-r5, pc}
+ nop
+_0207A074: .word 0x020FA624
+_0207A078: .word 0x020FA650
+_0207A07C: .word 0x020FA66C
+_0207A080: .word 0x020FA688
+_0207A084: .word 0x020FA6A4
+_0207A088: .word 0x020FA634
+
+ thumb_func_start FUN_0207A08C
+FUN_0207A08C: ; 0x0207A08C
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl FUN_0201E6D8
+ bl FUN_0201E740
+ add r0, r4, #0x0
+ mov r1, #0x5
+ bl FUN_020178A0
+ add r0, r4, #0x0
+ mov r1, #0x4
+ bl FUN_020178A0
+ add r0, r4, #0x0
+ mov r1, #0x3
+ bl FUN_020178A0
+ add r0, r4, #0x0
+ mov r1, #0x2
+ bl FUN_020178A0
+ add r0, r4, #0x0
+ mov r1, #0x1
+ bl FUN_020178A0
+ mov r0, #0x13
+ add r1, r4, #0x0
+ bl FUN_02016A8C
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0207A0CC
+FUN_0207A0CC: ; 0x0207A0CC
+ push {r4, lr}
+ sub sp, #0x10
+ mov r1, #0x0
+ str r1, [sp, #0x0]
+ str r1, [sp, #0x4]
+ add r4, r0, #0x0
+ str r1, [sp, #0x8]
+ mov r0, #0x13
+ str r0, [sp, #0xc]
+ ldr r2, [r4, #0x0]
+ mov r0, #0x27
+ mov r3, #0x3
+ bl FUN_0200687C
+ mov r0, #0x0
+ str r0, [sp, #0x0]
+ str r0, [sp, #0x4]
+ str r0, [sp, #0x8]
+ mov r0, #0x13
+ str r0, [sp, #0xc]
+ mov r1, #0x3
+ ldr r2, [r4, #0x0]
+ mov r0, #0x27
+ add r3, r1, #0x0
+ bl FUN_020068C8
+ mov r2, #0x0
+ str r2, [sp, #0x0]
+ mov r0, #0x13
+ str r0, [sp, #0x4]
+ mov r0, #0x27
+ mov r1, #0x1
+ add r3, r2, #0x0
+ bl FUN_02006930
+ mov r0, #0x0
+ str r0, [sp, #0x0]
+ str r0, [sp, #0x4]
+ str r0, [sp, #0x8]
+ mov r0, #0x13
+ str r0, [sp, #0xc]
+ ldr r2, [r4, #0x0]
+ mov r0, #0x27
+ mov r1, #0xb
+ mov r3, #0x2
+ bl FUN_020068C8
+ mov r0, #0x0
+ str r0, [sp, #0x0]
+ str r0, [sp, #0x4]
+ str r0, [sp, #0x8]
+ mov r0, #0x13
+ str r0, [sp, #0xc]
+ ldr r2, [r4, #0x0]
+ mov r0, #0x27
+ mov r1, #0x2
+ mov r3, #0x4
+ bl FUN_0200687C
+ mov r0, #0x0
+ str r0, [sp, #0x0]
+ str r0, [sp, #0x4]
+ str r0, [sp, #0x8]
+ mov r0, #0x13
+ str r0, [sp, #0xc]
+ ldr r2, [r4, #0x0]
+ mov r0, #0x27
+ mov r1, #0x10
+ mov r3, #0x5
+ bl FUN_0200687C
+ mov r0, #0x0
+ str r0, [sp, #0x0]
+ str r0, [sp, #0x4]
+ str r0, [sp, #0x8]
+ mov r0, #0x13
+ str r0, [sp, #0xc]
+ ldr r2, [r4, #0x0]
+ mov r0, #0x27
+ mov r1, #0xf
+ mov r3, #0x5
+ bl FUN_020068C8
+ mov r3, #0x0
+ str r3, [sp, #0x0]
+ mov r0, #0x13
+ str r0, [sp, #0x4]
+ mov r0, #0x27
+ mov r1, #0xe
+ mov r2, #0x4
+ bl FUN_02006930
+ add sp, #0x10
+ pop {r4, pc}
+
+ thumb_func_start FUN_0207A188
+FUN_0207A188: ; 0x0207A188
+ push {r3, lr}
+ mov r0, #0x8
+ str r0, [sp, #0x0]
+ ldr r0, _0207A19C ; =0x04000050
+ mov r1, #0x1
+ mov r2, #0x1e
+ mov r3, #0x17
+ blx G2x_SetBlendAlpha_
+ pop {r3, pc}
+ .balign 4
+_0207A19C: .word 0x04000050
+
+ thumb_func_start FUN_0207A1A0
+FUN_0207A1A0: ; 0x0207A1A0
+ push {r4, lr}
+ mov r2, #0x65
+ add r4, r0, #0x0
+ mov r0, #0x0
+ mov r1, #0x1a
+ lsl r2, r2, #0x2
+ mov r3, #0x13
+ bl FUN_0200A86C
+ ldr r1, _0207A250 ; =0x00000674
+ mov r2, #0x79
+ str r0, [r4, r1]
+ mov r0, #0x1
+ mov r1, #0x1a
+ lsl r2, r2, #0x2
+ mov r3, #0x13
+ bl FUN_0200A86C
+ ldr r1, _0207A254 ; =0x00000678
+ mov r2, #0x0
+ str r0, [r4, r1]
+ mov r0, #0x1
+ mov r1, #0x2
+ mov r3, #0x13
+ bl FUN_0200B870
+ mov r1, #0x67
+ lsl r1, r1, #0x4
+ str r0, [r4, r1]
+ mov r0, #0x13
+ bl FUN_0200AA80
+ ldr r1, _0207A258 ; =0x0000067C
+ str r0, [r4, r1]
+ mov r0, #0xc
+ mov r1, #0x13
+ bl FUN_020219F4
+ mov r1, #0x25
+ lsl r1, r1, #0x4
+ str r0, [r4, r1]
+ mov r0, #0xc
+ mov r1, #0x13
+ bl FUN_020219F4
+ mov r1, #0x95
+ lsl r1, r1, #0x2
+ str r0, [r4, r1]
+ mov r0, #0x8
+ mov r1, #0x13
+ bl FUN_020219F4
+ mov r1, #0x96
+ lsl r1, r1, #0x2
+ str r0, [r4, r1]
+ mov r0, #0x80
+ mov r1, #0x13
+ bl FUN_020219F4
+ mov r1, #0x1a
+ lsl r1, r1, #0x6
+ str r0, [r4, r1]
+ mov r2, #0x93
+ mov r0, #0x0
+ mov r1, #0x1a
+ lsl r2, r2, #0x2
+ mov r3, #0x13
+ bl FUN_0200A86C
+ ldr r1, _0207A25C ; =0x00000688
+ str r0, [r4, r1]
+ mov r0, #0x8
+ mov r1, #0x13
+ bl FUN_020219F4
+ ldr r2, _0207A260 ; =0x00000684
+ str r0, [r4, r2]
+ mov r0, #0x93
+ lsl r0, r0, #0x2
+ ldr r0, [r4, r0]
+ ldr r1, [r0, #0x8]
+ cmp r1, #0x0
+ beq _0207A24C
+ ldr r0, [r4, r2]
+ bl FUN_02021E28
+_0207A24C:
+ pop {r4, pc}
+ nop
+_0207A250: .word 0x00000674
+_0207A254: .word 0x00000678
+_0207A258: .word 0x0000067C
+_0207A25C: .word 0x00000688
+_0207A260: .word 0x00000684
+
+ thumb_func_start FUN_0207A264
+FUN_0207A264: ; 0x0207A264
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r0, _0207A2C4 ; =0x00000688
+ ldr r0, [r4, r0]
+ bl FUN_0200A8B8
+ ldr r0, _0207A2C8 ; =0x00000678
+ ldr r0, [r4, r0]
+ bl FUN_0200A8B8
+ ldr r0, _0207A2CC ; =0x00000674
+ ldr r0, [r4, r0]
+ bl FUN_0200A8B8
+ mov r0, #0x67
+ lsl r0, r0, #0x4
+ ldr r0, [r4, r0]
+ bl FUN_0200B990
+ ldr r0, _0207A2D0 ; =0x0000067C
+ ldr r0, [r4, r0]
+ bl FUN_0200AB18
+ mov r0, #0x25
+ lsl r0, r0, #0x4
+ ldr r0, [r4, r0]
+ bl FUN_02021A20
+ mov r0, #0x95
+ lsl r0, r0, #0x2
+ ldr r0, [r4, r0]
+ bl FUN_02021A20
+ mov r0, #0x96
+ lsl r0, r0, #0x2
+ ldr r0, [r4, r0]
+ bl FUN_02021A20
+ mov r0, #0x1a
+ lsl r0, r0, #0x6
+ ldr r0, [r4, r0]
+ bl FUN_02021A20
+ ldr r0, _0207A2D4 ; =0x00000684
+ ldr r0, [r4, r0]
+ bl FUN_02021A20
+ pop {r4, pc}
+ .balign 4
+_0207A2C4: .word 0x00000688
+_0207A2C8: .word 0x00000678
+_0207A2CC: .word 0x00000674
+_0207A2D0: .word 0x0000067C
+_0207A2D4: .word 0x00000684
+
+ thumb_func_start FUN_0207A2D8
+FUN_0207A2D8: ; 0x0207A2D8
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl FUN_0200E308
+ cmp r0, #0x1
+ bne _0207A30C
+ add r0, r4, #0x0
+ bl FUN_0207F8D0
+ add r0, r4, #0x0
+ bl FUN_0207AF20
+ mov r0, #0x93
+ lsl r0, r0, #0x2
+ ldr r0, [r4, r0]
+ ldrb r0, [r0, #0x12]
+ cmp r0, #0x2
+ bne _0207A300
+ mov r0, #0x9
+ pop {r4, pc}
+_0207A300:
+ cmp r0, #0x4
+ bne _0207A308
+ mov r0, #0xf
+ pop {r4, pc}
+_0207A308:
+ mov r0, #0x2
+ pop {r4, pc}
+_0207A30C:
+ mov r0, #0x1
+ pop {r4, pc}
+
+ thumb_func_start FUN_0207A310
+FUN_0207A310: ; 0x0207A310
+ push {r4-r6, lr}
+ ldr r3, _0207A438 ; =0x0000068F
+ add r4, r0, #0x0
+ ldrb r1, [r4, r3]
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x1c
+ cmp r1, #0x1
+ bne _0207A32E
+ mov r0, #0x93
+ lsl r0, r0, #0x2
+ ldr r0, [r4, r0]
+ mov r1, #0x1
+ strb r1, [r0, #0x17]
+ mov r0, #0x12
+ pop {r4-r6, pc}
+_0207A32E:
+ ldr r2, _0207A43C ; =0x021C48B8
+ mov r1, #0x20
+ ldr r5, [r2, #0x4c]
+ add r6, r5, #0x0
+ tst r6, r1
+ beq _0207A344
+ sub r1, #0x21
+ bl FUN_0207B178
+ mov r0, #0x2
+ pop {r4-r6, pc}
+_0207A344:
+ mov r1, #0x10
+ tst r1, r5
+ beq _0207A354
+ mov r1, #0x1
+ bl FUN_0207B178
+ mov r0, #0x2
+ pop {r4-r6, pc}
+_0207A354:
+ mov r1, #0x40
+ add r6, r5, #0x0
+ tst r6, r1
+ beq _0207A366
+ sub r1, #0x41
+ bl FUN_0207B3F0
+ mov r0, #0x2
+ pop {r4-r6, pc}
+_0207A366:
+ mov r1, #0x80
+ tst r1, r5
+ beq _0207A376
+ mov r1, #0x1
+ bl FUN_0207B3F0
+ mov r0, #0x2
+ pop {r4-r6, pc}
+_0207A376:
+ ldr r1, [r2, #0x48]
+ mov r0, #0x2
+ tst r0, r1
+ beq _0207A394
+ sub r3, #0xb2
+ add r0, r3, #0x0
+ bl FUN_020054C8
+ mov r0, #0x93
+ lsl r0, r0, #0x2
+ ldr r0, [r4, r0]
+ mov r1, #0x1
+ strb r1, [r0, #0x17]
+ mov r0, #0x12
+ pop {r4-r6, pc}
+_0207A394:
+ mov r0, #0x1
+ tst r0, r1
+ beq _0207A420
+ mov r0, #0x93
+ lsl r0, r0, #0x2
+ ldr r0, [r4, r0]
+ ldrb r0, [r0, #0x12]
+ cmp r0, #0x3
+ bne _0207A3BE
+ sub r0, r3, #0x3
+ ldrsb r0, [r4, r0]
+ cmp r0, #0x4
+ bne _0207A3BE
+ sub r3, #0xb2
+ add r0, r3, #0x0
+ bl FUN_020054C8
+ add r0, r4, #0x0
+ bl FUN_0207C23C
+ pop {r4-r6, pc}
+_0207A3BE:
+ ldr r0, _0207A440 ; =0x0000068C
+ ldrsb r1, [r4, r0]
+ cmp r1, #0x3
+ bne _0207A3D6
+ add r0, #0x10
+ bl FUN_020054C8
+ ldr r0, _0207A444 ; =0x0000068E
+ mov r1, #0x0
+ strb r1, [r4, r0]
+ mov r0, #0x3
+ pop {r4-r6, pc}
+_0207A3D6:
+ cmp r1, #0x5
+ bne _0207A3EA
+ add r0, #0x10
+ bl FUN_020054C8
+ ldr r0, _0207A444 ; =0x0000068E
+ mov r1, #0x0
+ strb r1, [r4, r0]
+ mov r0, #0x5
+ pop {r4-r6, pc}
+_0207A3EA:
+ cmp r1, #0x6
+ bne _0207A408
+ add r1, r0, #0x0
+ add r1, #0xd
+ ldrb r1, [r4, r1]
+ cmp r1, #0x0
+ beq _0207A420
+ sub r0, #0xaf
+ bl FUN_020054C8
+ ldr r0, _0207A444 ; =0x0000068E
+ mov r1, #0x0
+ strb r1, [r4, r0]
+ mov r0, #0xb
+ pop {r4-r6, pc}
+_0207A408:
+ cmp r1, #0x7
+ bne _0207A420
+ sub r0, #0xaf
+ bl FUN_020054C8
+ mov r0, #0x93
+ lsl r0, r0, #0x2
+ ldr r0, [r4, r0]
+ mov r1, #0x1
+ strb r1, [r0, #0x17]
+ mov r0, #0x12
+ pop {r4-r6, pc}
+_0207A420:
+ add r0, r4, #0x0
+ bl FUN_0207B200
+ cmp r0, #0x1
+ bne _0207A434
+ ldr r0, _0207A444 ; =0x0000068E
+ mov r1, #0x2
+ strb r1, [r4, r0]
+ mov r0, #0xe
+ pop {r4-r6, pc}
+_0207A434:
+ mov r0, #0x2
+ pop {r4-r6, pc}
+ .balign 4
+_0207A438: .word 0x0000068F
+_0207A43C: .word 0x021C48B8
+_0207A440: .word 0x0000068C
+_0207A444: .word 0x0000068E
+
+ thumb_func_start FUN_0207A448
+FUN_0207A448: ; 0x0207A448
+ push {r3, lr}
+ bl FUN_0207B66C
+ cmp r0, #0x1
+ bne _0207A456
+ mov r0, #0x7
+ pop {r3, pc}
+_0207A456:
+ mov r0, #0x3
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_0207A45C
+FUN_0207A45C: ; 0x0207A45C
+ push {r3, lr}
+ bl FUN_0207B788
+ cmp r0, #0x1
+ bne _0207A46A
+ mov r0, #0x2
+ pop {r3, pc}
+_0207A46A:
+ mov r0, #0x4
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_0207A470
+FUN_0207A470: ; 0x0207A470
+ push {r3, lr}
+ bl FUN_0207BAEC
+ cmp r0, #0x1
+ bne _0207A47E
+ mov r0, #0x7
+ pop {r3, pc}
+_0207A47E:
+ mov r0, #0x5
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_0207A484
+FUN_0207A484: ; 0x0207A484
+ push {r3, lr}
+ bl FUN_0207BBF0
+ cmp r0, #0x1
+ bne _0207A492
+ mov r0, #0x2
+ pop {r3, pc}
+_0207A492:
+ mov r0, #0x6
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_0207A498
+FUN_0207A498: ; 0x0207A498
+ push {r4, lr}
+ ldr r1, _0207A568 ; =0x021C48B8
+ add r4, r0, #0x0
+ ldr r2, [r1, #0x48]
+ mov r1, #0x40
+ add r3, r2, #0x0
+ tst r3, r1
+ beq _0207A4C2
+ sub r1, #0x41
+ bl FUN_0207B878
+ cmp r0, #0x1
+ bne _0207A4BE
+ ldr r0, _0207A56C ; =0x000005DC
+ bl FUN_020054C8
+ add r0, r4, #0x0
+ bl FUN_0207B8D8
+_0207A4BE:
+ mov r0, #0x7
+ pop {r4, pc}
+_0207A4C2:
+ mov r1, #0x80
+ tst r1, r2
+ beq _0207A4E2
+ mov r1, #0x1
+ bl FUN_0207B878
+ cmp r0, #0x1
+ bne _0207A4DE
+ ldr r0, _0207A56C ; =0x000005DC
+ bl FUN_020054C8
+ add r0, r4, #0x0
+ bl FUN_0207B8D8
+_0207A4DE:
+ mov r0, #0x7
+ pop {r4, pc}
+_0207A4E2:
+ mov r0, #0x1
+ tst r0, r2
+ beq _0207A542
+ ldr r0, _0207A570 ; =0x0000068D
+ ldrb r1, [r4, r0]
+ lsl r1, r1, #0x1c
+ lsr r1, r1, #0x1c
+ cmp r1, #0x4
+ bne _0207A510
+ add r0, #0xf
+ bl FUN_020054C8
+ ldr r0, _0207A574 ; =0x0000068E
+ mov r1, #0x0
+ strb r1, [r4, r0]
+ sub r0, r0, #0x2
+ ldrsb r0, [r4, r0]
+ cmp r0, #0x3
+ bne _0207A50C
+ mov r0, #0x4
+ pop {r4, pc}
+_0207A50C:
+ mov r0, #0x6
+ pop {r4, pc}
+_0207A510:
+ mov r1, #0x93
+ lsl r1, r1, #0x2
+ ldr r1, [r4, r1]
+ ldrb r1, [r1, #0x12]
+ cmp r1, #0x1
+ beq _0207A542
+ sub r0, #0xb0
+ bl FUN_020054C8
+ add r0, r4, #0x0
+ bl FUN_0207CBE8
+ ldr r2, _0207A570 ; =0x0000068D
+ mov r1, #0xf0
+ ldrb r3, [r4, r2]
+ add r0, r3, #0x0
+ bic r0, r1
+ lsl r1, r3, #0x1c
+ lsr r1, r1, #0x1c
+ lsl r1, r1, #0x1c
+ lsr r1, r1, #0x18
+ orr r0, r1
+ strb r0, [r4, r2]
+ mov r0, #0x8
+ pop {r4, pc}
+_0207A542:
+ mov r0, #0x2
+ tst r0, r2
+ beq _0207A564
+ ldr r0, _0207A578 ; =0x0000069C
+ bl FUN_020054C8
+ ldr r0, _0207A574 ; =0x0000068E
+ mov r1, #0x0
+ strb r1, [r4, r0]
+ sub r0, r0, #0x2
+ ldrsb r0, [r4, r0]
+ cmp r0, #0x3
+ bne _0207A560
+ mov r0, #0x4
+ pop {r4, pc}
+_0207A560:
+ mov r0, #0x6
+ pop {r4, pc}
+_0207A564:
+ mov r0, #0x7
+ pop {r4, pc}
+ .balign 4
+_0207A568: .word 0x021C48B8
+_0207A56C: .word 0x000005DC
+_0207A570: .word 0x0000068D
+_0207A574: .word 0x0000068E
+_0207A578: .word 0x0000069C
+
+ thumb_func_start FUN_0207A57C
+FUN_0207A57C: ; 0x0207A57C
+ push {r4, lr}
+ ldr r1, _0207A644 ; =0x021C48B8
+ add r4, r0, #0x0
+ ldr r2, [r1, #0x48]
+ mov r1, #0x40
+ add r3, r2, #0x0
+ tst r3, r1
+ beq _0207A5A6
+ sub r1, #0x41
+ bl FUN_0207B878
+ cmp r0, #0x1
+ bne _0207A5A2
+ ldr r0, _0207A648 ; =0x000005DC
+ bl FUN_020054C8
+ add r0, r4, #0x0
+ bl FUN_0207B8D8
+_0207A5A2:
+ mov r0, #0x8
+ pop {r4, pc}
+_0207A5A6:
+ mov r1, #0x80
+ tst r1, r2
+ beq _0207A5C6
+ mov r1, #0x1
+ bl FUN_0207B878
+ cmp r0, #0x1
+ bne _0207A5C2
+ ldr r0, _0207A648 ; =0x000005DC
+ bl FUN_020054C8
+ add r0, r4, #0x0
+ bl FUN_0207B8D8
+_0207A5C2:
+ mov r0, #0x8
+ pop {r4, pc}
+_0207A5C6:
+ mov r0, #0x1
+ tst r0, r2
+ beq _0207A622
+ mov r0, #0x43
+ lsl r0, r0, #0x4
+ ldr r0, [r4, r0]
+ mov r1, #0x0
+ bl FUN_020200A0
+ ldr r0, _0207A64C ; =0x0000068D
+ ldrb r1, [r4, r0]
+ lsl r2, r1, #0x1c
+ lsr r2, r2, #0x1c
+ cmp r2, #0x4
+ beq _0207A618
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x1c
+ cmp r2, r1
+ beq _0207A618
+ sub r0, #0xb0
+ bl FUN_020054C8
+ add r0, r4, #0x0
+ bl FUN_0207B9C0
+ ldr r1, _0207A64C ; =0x0000068D
+ add r0, r4, #0x0
+ ldrb r2, [r4, r1]
+ lsl r1, r2, #0x1c
+ lsl r2, r2, #0x18
+ lsr r1, r1, #0x1c
+ lsr r2, r2, #0x1c
+ bl FUN_0207CB08
+ add r0, r4, #0x0
+ bl FUN_0207ED30
+ add r0, r4, #0x0
+ bl FUN_0207B8D8
+ b _0207A61E
+_0207A618:
+ ldr r0, _0207A650 ; =0x000005DD
+ bl FUN_020054C8
+_0207A61E:
+ mov r0, #0x7
+ pop {r4, pc}
+_0207A622:
+ mov r0, #0x2
+ tst r0, r2
+ beq _0207A63E
+ ldr r0, _0207A650 ; =0x000005DD
+ bl FUN_020054C8
+ mov r0, #0x43
+ lsl r0, r0, #0x4
+ ldr r0, [r4, r0]
+ mov r1, #0x0
+ bl FUN_020200A0
+ mov r0, #0x7
+ pop {r4, pc}
+_0207A63E:
+ mov r0, #0x8
+ pop {r4, pc}
+ nop
+_0207A644: .word 0x021C48B8
+_0207A648: .word 0x000005DC
+_0207A64C: .word 0x0000068D
+_0207A650: .word 0x000005DD
+
+ thumb_func_start FUN_0207A654
+FUN_0207A654: ; 0x0207A654
+ push {r4, lr}
+ ldr r1, _0207A750 ; =0x021C48B8
+ add r4, r0, #0x0
+ ldr r2, [r1, #0x48]
+ mov r1, #0x20
+ add r3, r2, #0x0
+ tst r3, r1
+ beq _0207A66E
+ sub r1, #0x21
+ bl FUN_0207B178
+ mov r0, #0x9
+ pop {r4, pc}
+_0207A66E:
+ mov r1, #0x10
+ tst r1, r2
+ beq _0207A67E
+ mov r1, #0x1
+ bl FUN_0207B178
+ mov r0, #0x9
+ pop {r4, pc}
+_0207A67E:
+ mov r1, #0x40
+ add r3, r2, #0x0
+ tst r3, r1
+ beq _0207A6A0
+ sub r1, #0x41
+ bl FUN_0207B878
+ cmp r0, #0x1
+ bne _0207A69C
+ ldr r0, _0207A754 ; =0x000005DC
+ bl FUN_020054C8
+ add r0, r4, #0x0
+ bl FUN_0207B8D8
+_0207A69C:
+ mov r0, #0x9
+ pop {r4, pc}
+_0207A6A0:
+ mov r1, #0x80
+ tst r1, r2
+ beq _0207A6C0
+ mov r1, #0x1
+ bl FUN_0207B878
+ cmp r0, #0x1
+ bne _0207A6BC
+ ldr r0, _0207A754 ; =0x000005DC
+ bl FUN_020054C8
+ add r0, r4, #0x0
+ bl FUN_0207B8D8
+_0207A6BC:
+ mov r0, #0x9
+ pop {r4, pc}
+_0207A6C0:
+ mov r0, #0x1
+ tst r0, r2
+ beq _0207A72C
+ ldr r0, _0207A758 ; =0x000005DD
+ bl FUN_020054C8
+ ldr r0, _0207A75C ; =0x0000068D
+ ldrb r0, [r4, r0]
+ lsl r0, r0, #0x1c
+ lsr r0, r0, #0x1c
+ cmp r0, #0x4
+ beq _0207A712
+ lsl r0, r0, #0x1
+ add r1, r4, r0
+ mov r0, #0xa1
+ lsl r0, r0, #0x2
+ ldrh r0, [r1, r0]
+ bl FUN_0206EA54
+ cmp r0, #0x1
+ bne _0207A712
+ mov r0, #0x93
+ lsl r0, r0, #0x2
+ ldr r0, [r4, r0]
+ ldrh r0, [r0, #0x18]
+ cmp r0, #0x0
+ beq _0207A712
+ mov r0, #0x45
+ lsl r0, r0, #0x4
+ ldr r0, [r4, r0]
+ mov r1, #0x0
+ bl FUN_0200C63C
+ add r0, r4, #0x0
+ bl FUN_0207BD58
+ add r0, r4, #0x0
+ bl FUN_0207EDB4
+ mov r0, #0xa
+ pop {r4, pc}
+_0207A712:
+ ldr r0, _0207A75C ; =0x0000068D
+ ldrb r0, [r4, r0]
+ lsl r0, r0, #0x1c
+ lsr r2, r0, #0x1c
+ mov r0, #0x93
+ lsl r0, r0, #0x2
+ ldr r1, [r4, r0]
+ strb r2, [r1, #0x16]
+ ldr r0, [r4, r0]
+ mov r1, #0x0
+ strb r1, [r0, #0x17]
+ mov r0, #0x12
+ pop {r4, pc}
+_0207A72C:
+ mov r0, #0x2
+ tst r0, r2
+ beq _0207A74C
+ ldr r0, _0207A758 ; =0x000005DD
+ bl FUN_020054C8
+ mov r0, #0x93
+ lsl r0, r0, #0x2
+ ldr r1, [r4, r0]
+ mov r2, #0x4
+ strb r2, [r1, #0x16]
+ ldr r0, [r4, r0]
+ mov r1, #0x1
+ strb r1, [r0, #0x17]
+ mov r0, #0x12
+ pop {r4, pc}
+_0207A74C:
+ mov r0, #0x9
+ pop {r4, pc}
+ .balign 4
+_0207A750: .word 0x021C48B8
+_0207A754: .word 0x000005DC
+_0207A758: .word 0x000005DD
+_0207A75C: .word 0x0000068D
+
+ thumb_func_start FUN_0207A760
+FUN_0207A760: ; 0x0207A760
+ push {r3, lr}
+ ldr r1, _0207A778 ; =0x021C48B8
+ ldr r2, [r1, #0x48]
+ mov r1, #0x3
+ tst r1, r2
+ beq _0207A774
+ bl FUN_0207B8D8
+ mov r0, #0x9
+ pop {r3, pc}
+_0207A774:
+ mov r0, #0xa
+ pop {r3, pc}
+ .balign 4
+_0207A778: .word 0x021C48B8
+
+ thumb_func_start FUN_0207A77C
+FUN_0207A77C: ; 0x0207A77C
+ push {r3, lr}
+ bl FUN_0207BE68
+ cmp r0, #0x1
+ bne _0207A78A
+ mov r0, #0xd
+ pop {r3, pc}
+_0207A78A:
+ mov r0, #0xb
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_0207A790
+FUN_0207A790: ; 0x0207A790
+ push {r3, lr}
+ bl FUN_0207BF90
+ cmp r0, #0x1
+ bne _0207A79E
+ mov r0, #0x2
+ pop {r3, pc}
+_0207A79E:
+ mov r0, #0xc
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_0207A7A4
+FUN_0207A7A4: ; 0x0207A7A4
+ push {r3-r5, lr}
+ ldr r3, _0207A80C ; =0x021C48B8
+ mov r1, #0x20
+ ldr r2, [r3, #0x4c]
+ add r4, r0, #0x0
+ add r5, r2, #0x0
+ tst r5, r1
+ beq _0207A7BE
+ sub r1, #0x21
+ bl FUN_0207C07C
+ mov r0, #0xd
+ pop {r3-r5, pc}
+_0207A7BE:
+ mov r1, #0x10
+ tst r1, r2
+ beq _0207A7CE
+ mov r1, #0x1
+ bl FUN_0207C07C
+ mov r0, #0xd
+ pop {r3-r5, pc}
+_0207A7CE:
+ mov r1, #0x40
+ add r5, r2, #0x0
+ tst r5, r1
+ beq _0207A7E0
+ sub r1, #0x44
+ bl FUN_0207C07C
+ mov r0, #0xd
+ pop {r3-r5, pc}
+_0207A7E0:
+ mov r1, #0x80
+ tst r1, r2
+ beq _0207A7F0
+ mov r1, #0x4
+ bl FUN_0207C07C
+ mov r0, #0xd
+ pop {r3-r5, pc}
+_0207A7F0:
+ ldr r1, [r3, #0x48]
+ mov r0, #0x3
+ tst r0, r1
+ beq _0207A808
+ ldr r0, _0207A810 ; =0x000005DD
+ bl FUN_020054C8
+ ldr r0, _0207A814 ; =0x0000068E
+ mov r1, #0x0
+ strb r1, [r4, r0]
+ mov r0, #0xc
+ pop {r3-r5, pc}
+_0207A808:
+ mov r0, #0xd
+ pop {r3-r5, pc}
+ .balign 4
+_0207A80C: .word 0x021C48B8
+_0207A810: .word 0x000005DD
+_0207A814: .word 0x0000068E
+
+ thumb_func_start FUN_0207A818
+FUN_0207A818: ; 0x0207A818
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl FUN_0207FB28
+ cmp r0, #0x1
+ bne _0207A82A
+ ldr r0, _0207A878 ; =0x0000068E
+ ldrb r0, [r4, r0]
+ pop {r4, pc}
+_0207A82A:
+ ldr r1, _0207A87C ; =0x00000695
+ ldrb r0, [r4, r1]
+ cmp r0, #0x1
+ bne _0207A874
+ add r1, r1, #0x1
+ ldrb r1, [r4, r1]
+ add r0, r4, #0x0
+ bl FUN_0207FC40
+ add r1, r0, #0x0
+ cmp r1, #0x7
+ bne _0207A850
+ ldr r2, _0207A880 ; =0x0000068F
+ mov r0, #0xf0
+ ldrb r3, [r4, r2]
+ bic r3, r0
+ mov r0, #0x10
+ orr r0, r3
+ strb r0, [r4, r2]
+_0207A850:
+ mov r0, #0x2a
+ lsl r0, r0, #0x4
+ ldr r0, [r4, r0]
+ lsl r0, r0, #0x3
+ lsr r0, r0, #0x1f
+ cmp r0, #0x1
+ bne _0207A86E
+ cmp r1, #0x1
+ beq _0207A866
+ cmp r1, #0x7
+ bne _0207A874
+_0207A866:
+ add r0, r4, #0x0
+ bl FUN_0207B0CC
+ b _0207A874
+_0207A86E:
+ add r0, r4, #0x0
+ bl FUN_0207B0CC
+_0207A874:
+ mov r0, #0xe
+ pop {r4, pc}
+ .balign 4
+_0207A878: .word 0x0000068E
+_0207A87C: .word 0x00000695
+_0207A880: .word 0x0000068F
+
+ thumb_func_start FUN_0207A884
+FUN_0207A884: ; 0x0207A884
+ push {r4-r6, lr}
+ sub sp, #0x8
+ ldr r1, _0207AA00 ; =0x021C48B8
+ add r5, r0, #0x0
+ ldr r2, [r1, #0x48]
+ mov r1, #0x3
+ tst r1, r2
+ bne _0207A896
+ b _0207A9FA
+_0207A896:
+ mov r1, #0x93
+ lsl r1, r1, #0x2
+ ldr r1, [r5, r1]
+ ldrb r1, [r1, #0x11]
+ cmp r1, #0x2
+ bne _0207A8BA
+ bl FUN_0207B628
+ add r6, r0, #0x0
+ mov r0, #0x13
+ bl FUN_020669C0
+ add r4, r0, #0x0
+ add r0, r6, #0x0
+ add r1, r4, #0x0
+ bl FUN_02069A64
+ b _0207A8C0
+_0207A8BA:
+ bl FUN_0207B628
+ add r4, r0, #0x0
+_0207A8C0:
+ mov r0, #0x93
+ lsl r0, r0, #0x2
+ ldr r0, [r5, r0]
+ add r1, r4, #0x0
+ ldr r0, [r0, #0x24]
+ bl FUN_0208821C
+ ldr r0, _0207AA04 ; =0x0000068E
+ mov r2, #0x0
+ strb r2, [r5, r0]
+ ldr r0, _0207AA08 ; =0x00000295
+ mov r1, #0x13
+ ldrb r6, [r5, r0]
+ add r0, r4, #0x0
+ bl FUN_020671BC
+ ldr r1, _0207AA08 ; =0x00000295
+ strb r0, [r5, r1]
+ ldrb r0, [r5, r1]
+ cmp r6, r0
+ beq _0207A8F4
+ ldr r1, _0207AA04 ; =0x0000068E
+ mov r0, #0x1
+ ldrb r2, [r5, r1]
+ orr r0, r2
+ strb r0, [r5, r1]
+_0207A8F4:
+ ldr r0, _0207AA0C ; =0x00000296
+ mov r1, #0x14
+ ldrb r6, [r5, r0]
+ add r0, r4, #0x0
+ mov r2, #0x0
+ bl FUN_020671BC
+ ldr r1, _0207AA0C ; =0x00000296
+ strb r0, [r5, r1]
+ ldrb r0, [r5, r1]
+ cmp r6, r0
+ beq _0207A916
+ ldr r1, _0207AA04 ; =0x0000068E
+ mov r0, #0x2
+ ldrb r2, [r5, r1]
+ orr r0, r2
+ strb r0, [r5, r1]
+_0207A916:
+ ldr r0, _0207AA10 ; =0x00000297
+ mov r1, #0x15
+ ldrb r6, [r5, r0]
+ add r0, r4, #0x0
+ mov r2, #0x0
+ bl FUN_020671BC
+ ldr r1, _0207AA10 ; =0x00000297
+ strb r0, [r5, r1]
+ ldrb r0, [r5, r1]
+ cmp r6, r0
+ beq _0207A938
+ ldr r1, _0207AA04 ; =0x0000068E
+ mov r0, #0x4
+ ldrb r2, [r5, r1]
+ orr r0, r2
+ strb r0, [r5, r1]
+_0207A938:
+ mov r0, #0xa6
+ lsl r0, r0, #0x2
+ ldrb r6, [r5, r0]
+ add r0, r4, #0x0
+ mov r1, #0x16
+ mov r2, #0x0
+ bl FUN_020671BC
+ mov r1, #0xa6
+ lsl r1, r1, #0x2
+ strb r0, [r5, r1]
+ ldrb r0, [r5, r1]
+ cmp r6, r0
+ beq _0207A95E
+ ldr r1, _0207AA04 ; =0x0000068E
+ mov r0, #0x8
+ ldrb r2, [r5, r1]
+ orr r0, r2
+ strb r0, [r5, r1]
+_0207A95E:
+ ldr r0, _0207AA14 ; =0x00000299
+ mov r1, #0x17
+ ldrb r6, [r5, r0]
+ add r0, r4, #0x0
+ mov r2, #0x0
+ bl FUN_020671BC
+ ldr r1, _0207AA14 ; =0x00000299
+ strb r0, [r5, r1]
+ ldrb r0, [r5, r1]
+ cmp r6, r0
+ beq _0207A980
+ ldr r1, _0207AA04 ; =0x0000068E
+ mov r0, #0x10
+ ldrb r2, [r5, r1]
+ orr r0, r2
+ strb r0, [r5, r1]
+_0207A980:
+ add r0, r4, #0x0
+ mov r1, #0x18
+ mov r2, #0x0
+ bl FUN_020671BC
+ ldr r1, _0207AA18 ; =0x0000029A
+ strb r0, [r5, r1]
+ sub r1, #0x4e
+ ldr r0, [r5, r1]
+ ldrb r0, [r0, #0x11]
+ cmp r0, #0x2
+ bne _0207A99E
+ add r0, r4, #0x0
+ bl FUN_02016A18
+_0207A99E:
+ mov r1, #0x7
+ mov r0, #0x0
+ lsl r1, r1, #0x6
+ mov r2, #0x13
+ bl FUN_02002EEC
+ mov r0, #0x93
+ lsl r0, r0, #0x2
+ ldr r0, [r5, r0]
+ ldr r0, [r0, #0x4]
+ bl FUN_02025084
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x0]
+ mov r0, #0x13
+ str r0, [sp, #0x4]
+ ldr r0, [r5, #0x0]
+ ldr r2, _0207AA1C ; =0x000003E2
+ mov r1, #0x1
+ mov r3, #0xd
+ bl FUN_0200CD68
+ ldr r0, _0207AA04 ; =0x0000068E
+ ldrb r0, [r5, r0]
+ cmp r0, #0x0
+ bne _0207A9E2
+ add r0, r5, #0x0
+ mov r1, #0xfe
+ bl FUN_0207EECC
+ add sp, #0x8
+ mov r0, #0x11
+ pop {r4-r6, pc}
+_0207A9E2:
+ add r0, r5, #0x0
+ bl FUN_0207F608
+ add r0, r5, #0x0
+ bl FUN_0207CC24
+ add r0, r5, #0x0
+ bl FUN_0207CF78
+ add sp, #0x8
+ mov r0, #0x10
+ pop {r4-r6, pc}
+_0207A9FA:
+ mov r0, #0xf
+ add sp, #0x8
+ pop {r4-r6, pc}
+ .balign 4
+_0207AA00: .word 0x021C48B8
+_0207AA04: .word 0x0000068E
+_0207AA08: .word 0x00000295
+_0207AA0C: .word 0x00000296
+_0207AA10: .word 0x00000297
+_0207AA14: .word 0x00000299
+_0207AA18: .word 0x0000029A
+_0207AA1C: .word 0x000003E2
+
+ thumb_func_start FUN_0207AA20
+FUN_0207AA20: ; 0x0207AA20
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ ldr r0, _0207AA68 ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #0x3
+ tst r0, r1
+ beq _0207AA62
+ ldr r0, _0207AA6C ; =0x0000068E
+ mov r1, #0x0
+ ldrb r2, [r5, r0]
+ mov r0, #0x1
+_0207AA36:
+ add r4, r0, #0x0
+ lsl r4, r1
+ add r3, r2, #0x0
+ tst r3, r4
+ beq _0207AA58
+ add r0, r5, #0x0
+ bl FUN_0207EECC
+ ldr r0, _0207AA6C ; =0x0000068E
+ ldrb r1, [r5, r0]
+ eor r1, r4
+ strb r1, [r5, r0]
+ ldrb r0, [r5, r0]
+ cmp r0, #0x0
+ bne _0207AA62
+ mov r0, #0x11
+ pop {r3-r5, pc}
+_0207AA58:
+ add r1, r1, #0x1
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ cmp r1, #0x5
+ blo _0207AA36
+_0207AA62:
+ mov r0, #0x10
+ pop {r3-r5, pc}
+ nop
+_0207AA68: .word 0x021C48B8
+_0207AA6C: .word 0x0000068E
+
+ thumb_func_start FUN_0207AA70
+FUN_0207AA70: ; 0x0207AA70
+ ldr r0, _0207AA84 ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #0x3
+ tst r0, r1
+ beq _0207AA7E
+ mov r0, #0x12
+ bx lr
+_0207AA7E:
+ mov r0, #0x11
+ bx lr
+ nop
+_0207AA84: .word 0x021C48B8
+
+ thumb_func_start FUN_0207AA88
+FUN_0207AA88: ; 0x0207AA88
+ push {r3, lr}
+ mov r0, #0x1
+ mov r1, #0x13
+ bl FUN_02079A70
+ mov r0, #0x13
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_0207AA98
+FUN_0207AA98: ; 0x0207AA98
+ push {r3, lr}
+ bl FUN_0200E308
+ cmp r0, #0x1
+ bne _0207AAA6
+ mov r0, #0x1
+ b _0207AAA8
+_0207AAA6:
+ mov r0, #0x0
+_0207AAA8:
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_0207AAB0
+FUN_0207AAB0: ; 0x0207AAB0
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl FUN_0207B628
+ mov r2, #0x93
+ lsl r2, r2, #0x2
+ add r1, r0, #0x0
+ ldr r0, [r4, r2]
+ ldrb r0, [r0, #0x11]
+ cmp r0, #0x2
+ bne _0207AAD2
+ add r2, r2, #0x4
+ add r0, r4, #0x0
+ add r2, r4, r2
+ bl FUN_0207AAE0
+ pop {r4, pc}
+_0207AAD2:
+ add r2, r2, #0x4
+ add r0, r4, #0x0
+ add r2, r4, r2
+ bl FUN_0207AB0C
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0207AAE0
+FUN_0207AAE0: ; 0x0207AAE0
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ mov r0, #0x13
+ add r6, r1, #0x0
+ add r7, r2, #0x0
+ bl FUN_020669C0
+ add r4, r0, #0x0
+ add r0, r6, #0x0
+ add r1, r4, #0x0
+ bl FUN_02069A64
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ add r2, r7, #0x0
+ bl FUN_0207AB0C
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_0207AB0C
+FUN_0207AB0C: ; 0x0207AB0C
+ push {r3-r7, lr}
+ sub sp, #0x8
+ add r6, r1, #0x0
+ add r7, r0, #0x0
+ add r0, r6, #0x0
+ add r5, r2, #0x0
+ bl FUN_020669D4
+ str r0, [sp, #0x4]
+ add r0, r6, #0x0
+ mov r1, #0x5
+ mov r2, #0x0
+ bl FUN_020671BC
+ strh r0, [r5, #0xc]
+ add r0, r6, #0x0
+ bl FUN_020690E4
+ ldr r2, _0207AEAC ; =0x00000674
+ add r4, r0, #0x0
+ ldr r0, [r7, r2]
+ add r2, #0xc
+ ldr r2, [r7, r2]
+ mov r1, #0xb
+ bl FUN_0200A8E0
+ ldr r0, _0207AEB0 ; =0x0000067C
+ mov r1, #0x0
+ ldr r0, [r7, r0]
+ add r2, r4, #0x0
+ bl FUN_0200AC60
+ ldr r2, _0207AEB0 ; =0x0000067C
+ mov r1, #0x25
+ ldr r0, [r7, r2]
+ lsl r1, r1, #0x4
+ add r2, r2, #0x4
+ ldr r1, [r7, r1]
+ ldr r2, [r7, r2]
+ bl FUN_0200B7B8
+ ldr r2, _0207AEAC ; =0x00000674
+ mov r1, #0x0
+ ldr r0, [r7, r2]
+ add r2, #0xc
+ ldr r2, [r7, r2]
+ bl FUN_0200A8E0
+ ldr r0, _0207AEB0 ; =0x0000067C
+ mov r1, #0x0
+ ldr r0, [r7, r0]
+ add r2, r4, #0x0
+ bl FUN_0200ACF8
+ ldr r2, _0207AEB0 ; =0x0000067C
+ mov r1, #0x95
+ ldr r0, [r7, r2]
+ lsl r1, r1, #0x2
+ add r2, r2, #0x4
+ ldr r1, [r7, r1]
+ ldr r2, [r7, r2]
+ bl FUN_0200B7B8
+ ldr r2, _0207AEAC ; =0x00000674
+ mov r1, #0xe
+ ldr r0, [r7, r2]
+ add r2, #0xc
+ ldr r2, [r7, r2]
+ bl FUN_0200A8E0
+ ldr r0, _0207AEB0 ; =0x0000067C
+ mov r1, #0x0
+ ldr r0, [r7, r0]
+ add r2, r4, #0x0
+ bl FUN_0200AD18
+ ldr r2, _0207AEB0 ; =0x0000067C
+ mov r1, #0x96
+ ldr r0, [r7, r2]
+ lsl r1, r1, #0x2
+ add r2, r2, #0x4
+ ldr r1, [r7, r1]
+ ldr r2, [r7, r2]
+ bl FUN_0200B7B8
+ add r0, r6, #0x0
+ mov r1, #0x6
+ mov r2, #0x0
+ bl FUN_020671BC
+ strh r0, [r5, #0xe]
+ add r0, r6, #0x0
+ mov r1, #0xa0
+ mov r2, #0x0
+ bl FUN_020671BC
+ ldrb r1, [r5, #0x12]
+ mov r2, #0x7f
+ lsl r0, r0, #0x18
+ bic r1, r2
+ lsr r2, r0, #0x18
+ mov r0, #0x7f
+ and r0, r2
+ orr r0, r1
+ strb r0, [r5, #0x12]
+ add r0, r6, #0x0
+ mov r1, #0x4c
+ mov r2, #0x0
+ bl FUN_020671BC
+ lsl r0, r0, #0x1f
+ ldr r2, [r5, #0x50]
+ ldr r1, _0207AEB4 ; =0xEFFFFFFF
+ lsr r0, r0, #0x3
+ and r1, r2
+ orr r0, r1
+ str r0, [r5, #0x50]
+ add r0, r6, #0x0
+ mov r1, #0xaf
+ mov r2, #0x0
+ bl FUN_020671BC
+ cmp r0, #0x1
+ bne _0207AC16
+ ldr r0, [r5, #0x50]
+ lsl r0, r0, #0x3
+ lsr r0, r0, #0x1f
+ bne _0207AC16
+ ldrb r1, [r5, #0x12]
+ mov r0, #0x80
+ bic r1, r0
+ strb r1, [r5, #0x12]
+ b _0207AC1E
+_0207AC16:
+ ldrb r1, [r5, #0x12]
+ mov r0, #0x80
+ orr r0, r1
+ strb r0, [r5, #0x12]
+_0207AC1E:
+ add r0, r6, #0x0
+ bl FUN_020689E0
+ ldrb r1, [r5, #0x13]
+ mov r2, #0x3
+ bic r1, r2
+ mov r2, #0x3
+ and r0, r2
+ orr r0, r1
+ strb r0, [r5, #0x13]
+ add r0, r6, #0x0
+ mov r1, #0x9a
+ mov r2, #0x0
+ bl FUN_020671BC
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ lsl r0, r0, #0x1a
+ ldrb r1, [r5, #0x13]
+ mov r2, #0xfc
+ lsr r0, r0, #0x18
+ bic r1, r2
+ orr r0, r1
+ strb r0, [r5, #0x13]
+ add r0, r6, #0x0
+ mov r1, #0xb0
+ mov r2, #0x0
+ bl FUN_020671BC
+ strb r0, [r5, #0x10]
+ add r0, r6, #0x0
+ mov r1, #0xb1
+ mov r2, #0x0
+ bl FUN_020671BC
+ strb r0, [r5, #0x11]
+ add r0, r6, #0x0
+ mov r1, #0x7
+ mov r2, #0x0
+ bl FUN_020671BC
+ str r0, [r5, #0x14]
+ add r0, r6, #0x0
+ mov r1, #0x8
+ mov r2, #0x0
+ bl FUN_020671BC
+ str r0, [r5, #0x18]
+ add r0, r6, #0x0
+ mov r1, #0x9c
+ mov r2, #0x0
+ bl FUN_020671BC
+ add r1, r5, #0x0
+ add r1, #0x44
+ strb r0, [r1, #0x0]
+ ldrb r1, [r5, #0x12]
+ ldrh r0, [r5, #0xc]
+ lsl r1, r1, #0x19
+ lsr r1, r1, #0x19
+ bl FUN_02068758
+ str r0, [r5, #0x1c]
+ ldrb r0, [r5, #0x12]
+ lsl r0, r0, #0x19
+ lsr r1, r0, #0x19
+ cmp r1, #0x64
+ bne _0207ACAA
+ ldr r0, [r5, #0x1c]
+ b _0207ACB2
+_0207ACAA:
+ ldrh r0, [r5, #0xc]
+ add r1, r1, #0x1
+ bl FUN_02068758
+_0207ACB2:
+ str r0, [r5, #0x20]
+ add r0, r6, #0x0
+ mov r1, #0xa2
+ mov r2, #0x0
+ bl FUN_020671BC
+ strh r0, [r5, #0x24]
+ add r0, r6, #0x0
+ mov r1, #0xa3
+ mov r2, #0x0
+ bl FUN_020671BC
+ strh r0, [r5, #0x26]
+ add r0, r6, #0x0
+ mov r1, #0xa4
+ mov r2, #0x0
+ bl FUN_020671BC
+ strh r0, [r5, #0x28]
+ add r0, r6, #0x0
+ mov r1, #0xa5
+ mov r2, #0x0
+ bl FUN_020671BC
+ strh r0, [r5, #0x2a]
+ add r0, r6, #0x0
+ mov r1, #0xa7
+ mov r2, #0x0
+ bl FUN_020671BC
+ strh r0, [r5, #0x2c]
+ add r0, r6, #0x0
+ mov r1, #0xa8
+ mov r2, #0x0
+ bl FUN_020671BC
+ strh r0, [r5, #0x2e]
+ add r0, r6, #0x0
+ mov r1, #0xa6
+ mov r2, #0x0
+ bl FUN_020671BC
+ strh r0, [r5, #0x30]
+ add r0, r6, #0x0
+ mov r1, #0xa
+ mov r2, #0x0
+ bl FUN_020671BC
+ add r1, r5, #0x0
+ add r1, #0x32
+ strb r0, [r1, #0x0]
+ add r0, r6, #0x0
+ bl FUN_02068854
+ add r1, r5, #0x0
+ add r1, #0x33
+ strb r0, [r1, #0x0]
+ mov r4, #0x0
+_0207AD26:
+ lsl r0, r4, #0x1
+ add r0, r5, r0
+ add r1, r4, #0x0
+ str r0, [sp, #0x0]
+ add r0, r6, #0x0
+ add r1, #0x36
+ mov r2, #0x0
+ bl FUN_020671BC
+ ldr r1, [sp, #0x0]
+ mov r2, #0x0
+ strh r0, [r1, #0x34]
+ add r1, r4, #0x0
+ add r0, r6, #0x0
+ add r1, #0x3a
+ bl FUN_020671BC
+ add r1, r5, r4
+ add r1, #0x3c
+ strb r0, [r1, #0x0]
+ add r1, r4, #0x0
+ add r0, r6, #0x0
+ add r1, #0x3e
+ mov r2, #0x0
+ bl FUN_020671BC
+ lsl r0, r0, #0x18
+ lsr r1, r0, #0x18
+ ldr r0, [sp, #0x0]
+ ldrh r0, [r0, #0x34]
+ bl FUN_0206AB30
+ add r1, r5, r4
+ add r1, #0x40
+ strb r0, [r1, #0x0]
+ add r0, r4, #0x1
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+ cmp r4, #0x4
+ blo _0207AD26
+ add r0, r6, #0x0
+ mov r1, #0x13
+ mov r2, #0x0
+ bl FUN_020671BC
+ add r1, r5, #0x0
+ add r1, #0x45
+ strb r0, [r1, #0x0]
+ add r0, r6, #0x0
+ mov r1, #0x14
+ mov r2, #0x0
+ bl FUN_020671BC
+ add r1, r5, #0x0
+ add r1, #0x46
+ strb r0, [r1, #0x0]
+ add r0, r6, #0x0
+ mov r1, #0x15
+ mov r2, #0x0
+ bl FUN_020671BC
+ add r1, r5, #0x0
+ add r1, #0x47
+ strb r0, [r1, #0x0]
+ add r0, r6, #0x0
+ mov r1, #0x16
+ mov r2, #0x0
+ bl FUN_020671BC
+ add r1, r5, #0x0
+ add r1, #0x48
+ strb r0, [r1, #0x0]
+ add r0, r6, #0x0
+ mov r1, #0x17
+ mov r2, #0x0
+ bl FUN_020671BC
+ add r1, r5, #0x0
+ add r1, #0x49
+ strb r0, [r1, #0x0]
+ add r0, r6, #0x0
+ mov r1, #0x18
+ mov r2, #0x0
+ bl FUN_020671BC
+ add r1, r5, #0x0
+ add r1, #0x4a
+ strb r0, [r1, #0x0]
+ add r0, r5, #0x0
+ mov r1, #0x5
+ add r0, #0x4b
+ strb r1, [r0, #0x0]
+ mov r4, #0x0
+_0207ADE0:
+ add r0, r6, #0x0
+ add r1, r4, #0x0
+ bl FUN_02069BC8
+ cmp r0, #0x1
+ bne _0207ADF4
+ add r0, r5, #0x0
+ add r0, #0x4b
+ strb r4, [r0, #0x0]
+ b _0207ADFE
+_0207ADF4:
+ add r0, r4, #0x1
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+ cmp r4, #0x5
+ blo _0207ADE0
+_0207ADFE:
+ add r0, r6, #0x0
+ mov r1, #0xb
+ mov r2, #0x0
+ bl FUN_020671BC
+ add r1, r5, #0x0
+ add r1, #0x4c
+ strh r0, [r1, #0x0]
+ add r0, r6, #0x0
+ mov r1, #0x70
+ mov r2, #0x0
+ bl FUN_020671BC
+ add r1, r5, #0x0
+ add r1, #0x4e
+ strh r0, [r1, #0x0]
+ add r0, r6, #0x0
+ bl FUN_0207C2D4
+ mov r1, #0xf
+ ldr r2, [r5, #0x50]
+ lsl r1, r1, #0x1c
+ and r2, r1
+ ldr r1, _0207AEB8 ; =0x0FFFFFFF
+ and r0, r1
+ orr r0, r2
+ str r0, [r5, #0x50]
+ add r0, r6, #0x0
+ bl FUN_02069E94
+ cmp r0, #0x1
+ bne _0207AE4E
+ ldr r1, [r5, #0x50]
+ ldr r0, _0207AEBC ; =0x3FFFFFFF
+ and r1, r0
+ mov r0, #0x2
+ lsl r0, r0, #0x1e
+ orr r0, r1
+ str r0, [r5, #0x50]
+ b _0207AE84
+_0207AE4E:
+ add r0, r6, #0x0
+ bl FUN_02069E74
+ cmp r0, #0x1
+ bne _0207AE7C
+ ldr r2, [r5, #0x50]
+ ldr r1, _0207AEBC ; =0x3FFFFFFF
+ add r0, r5, #0x0
+ and r2, r1
+ add r1, r1, #0x1
+ orr r1, r2
+ str r1, [r5, #0x50]
+ lsl r1, r1, #0x4
+ lsr r1, r1, #0x4
+ add r0, #0x50
+ cmp r1, #0x7
+ bne _0207AE84
+ mov r1, #0xf
+ ldr r2, [r0, #0x0]
+ lsl r1, r1, #0x1c
+ and r1, r2
+ str r1, [r0, #0x0]
+ b _0207AE84
+_0207AE7C:
+ ldr r1, [r5, #0x50]
+ ldr r0, _0207AEBC ; =0x3FFFFFFF
+ and r0, r1
+ str r0, [r5, #0x50]
+_0207AE84:
+ add r0, r6, #0x0
+ bl FUN_02068A80
+ cmp r0, #0x1
+ ldr r1, [r5, #0x50]
+ bne _0207AE98
+ mov r0, #0x2
+ lsl r0, r0, #0x1c
+ orr r0, r1
+ b _0207AE9C
+_0207AE98:
+ ldr r0, _0207AEC0 ; =0xDFFFFFFF
+ and r0, r1
+_0207AE9C:
+ str r0, [r5, #0x50]
+ mov r4, #0x0
+ str r4, [r5, #0x54]
+ str r4, [r5, #0x58]
+ str r4, [r5, #0x5c]
+ ldr r0, _0207AEC4 ; =0x00000699
+ b _0207AEC8
+ nop
+_0207AEAC: .word 0x00000674
+_0207AEB0: .word 0x0000067C
+_0207AEB4: .word 0xEFFFFFFF
+_0207AEB8: .word 0x0FFFFFFF
+_0207AEBC: .word 0x3FFFFFFF
+_0207AEC0: .word 0xDFFFFFFF
+_0207AEC4: .word 0x00000699
+_0207AEC8:
+ str r4, [r5, #0x60]
+ strb r4, [r7, r0]
+_0207AECC:
+ lsl r0, r4, #0x18
+ lsr r0, r0, #0x18
+ mov r1, #0x0
+ bl FUN_0207FC5C
+ add r1, r0, #0x0
+ add r0, r6, #0x0
+ mov r2, #0x0
+ bl FUN_020671BC
+ cmp r0, #0x0
+ beq _0207AF04
+ lsr r0, r4, #0x5
+ lsl r0, r0, #0x2
+ add r0, r5, r0
+ mov r1, #0x1f
+ add r2, r4, #0x0
+ and r2, r1
+ mov r1, #0x1
+ ldr r3, [r0, #0x54]
+ lsl r1, r2
+ orr r1, r3
+ str r1, [r0, #0x54]
+ ldr r0, _0207AF1C ; =0x00000699
+ ldrb r0, [r7, r0]
+ add r1, r0, #0x1
+ ldr r0, _0207AF1C ; =0x00000699
+ strb r1, [r7, r0]
+_0207AF04:
+ add r0, r4, #0x1
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+ cmp r4, #0x50
+ blo _0207AECC
+ ldr r1, [sp, #0x4]
+ add r0, r6, #0x0
+ bl FUN_02066A20
+ add sp, #0x8
+ pop {r3-r7, pc}
+ nop
+_0207AF1C: .word 0x00000699
+
+ thumb_func_start FUN_0207AF20
+FUN_0207AF20: ; 0x0207AF20
+ push {r3, lr}
+ mov r2, #0x2a
+ lsl r2, r2, #0x4
+ ldr r1, [r0, r2]
+ lsl r1, r1, #0x3
+ lsr r1, r1, #0x1f
+ bne _0207AF54
+ add r1, r2, #0x0
+ sub r1, #0x44
+ ldrh r3, [r0, r1]
+ add r1, r2, #0x0
+ sub r1, #0xe7
+ cmp r3, r1
+ bne _0207AF4E
+ sub r2, #0x54
+ ldr r0, [r0, r2]
+ mov r1, #0x0
+ ldr r0, [r0, #0x28]
+ mov r2, #0x64
+ add r3, r1, #0x0
+ bl FUN_02005E90
+ pop {r3, pc}
+_0207AF4E:
+ add r0, r3, #0x0
+ bl FUN_02005578
+_0207AF54:
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_0207AF58
+FUN_0207AF58: ; 0x0207AF58
+ push {r4, lr}
+ mov r1, #0x93
+ add r4, r0, #0x0
+ lsl r1, r1, #0x2
+ ldr r0, [r4, r1]
+ ldrb r0, [r0, #0x12]
+ cmp r0, #0x4
+ bhi _0207AFA4
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0207AF74: ; jump table (using 16-bit offset)
+ .short _0207AF7E - _0207AF74 - 2; case 0
+ .short _0207AF7E - _0207AF74 - 2; case 1
+ .short _0207AF96 - _0207AF74 - 2; case 2
+ .short _0207AF9E - _0207AF74 - 2; case 3
+ .short _0207AF9E - _0207AF74 - 2; case 4
+_0207AF7E:
+ add r1, #0x54
+ ldr r0, [r4, r1]
+ lsl r0, r0, #0x3
+ lsr r0, r0, #0x1f
+ ldr r0, _0207AFFC ; =0x0000068C
+ bne _0207AF90
+ mov r1, #0x0
+ strb r1, [r4, r0]
+ b _0207AFA4
+_0207AF90:
+ mov r1, #0x1
+ strb r1, [r4, r0]
+ b _0207AFA4
+_0207AF96:
+ ldr r0, _0207AFFC ; =0x0000068C
+ mov r1, #0x3
+ strb r1, [r4, r0]
+ b _0207AFA4
+_0207AF9E:
+ ldr r0, _0207AFFC ; =0x0000068C
+ mov r1, #0x4
+ strb r1, [r4, r0]
+_0207AFA4:
+ add r0, r4, #0x0
+ mov r1, #0x0
+ bl FUN_0207CFAC
+ add r0, r4, #0x0
+ bl FUN_0207C5D4
+ add r0, r4, #0x0
+ bl FUN_0207C838
+ add r0, r4, #0x0
+ bl FUN_0207D2C8
+ add r0, r4, #0x0
+ bl FUN_0207C6A4
+ add r0, r4, #0x0
+ bl FUN_0207CE4C
+ add r0, r4, #0x0
+ bl FUN_0207CC24
+ add r0, r4, #0x0
+ bl FUN_0207D604
+ add r0, r4, #0x0
+ bl FUN_0207DD88
+ add r0, r4, #0x0
+ bl FUN_0207B228
+ add r0, r4, #0x0
+ bl FUN_0207F2A0
+ mov r0, #0x93
+ lsl r0, r0, #0x2
+ ldr r0, [r4, r0]
+ ldrb r0, [r0, #0x12]
+ cmp r0, #0x2
+ bne _0207AFFA
+ add r0, r4, #0x0
+ bl FUN_0207BA74
+_0207AFFA:
+ pop {r4, pc}
+ .balign 4
+_0207AFFC: .word 0x0000068C
+
+ thumb_func_start FUN_0207B000
+FUN_0207B000: ; 0x0207B000
+ push {r3-r6}
+ mov r6, #0x0
+ strb r6, [r0, #0x15]
+ add r0, #0x15
+ mov r3, #0x1
+_0207B00A:
+ ldrb r5, [r1, r6]
+ cmp r5, #0x8
+ beq _0207B024
+ add r2, r3, #0x0
+ ldrb r4, [r0, #0x0]
+ lsl r2, r5
+ orr r2, r4
+ strb r2, [r0, #0x0]
+ add r2, r6, #0x1
+ lsl r2, r2, #0x18
+ lsr r6, r2, #0x18
+ cmp r6, #0x8
+ blo _0207B00A
+_0207B024:
+ pop {r3-r6}
+ bx lr
+
+ thumb_func_start FUN_0207B028
+FUN_0207B028: ; 0x0207B028
+ push {r3-r4}
+ mov r1, #0x93
+ lsl r1, r1, #0x2
+ ldr r4, [r0, r1]
+ ldr r1, [r4, #0x2c]
+ cmp r1, #0x1
+ beq _0207B06C
+ ldrb r2, [r4, #0x15]
+ mov r1, #0x10
+ add r3, r2, #0x0
+ tst r3, r1
+ beq _0207B044
+ eor r1, r2
+ strb r1, [r4, #0x15]
+_0207B044:
+ mov r1, #0x93
+ lsl r1, r1, #0x2
+ ldr r4, [r0, r1]
+ mov r1, #0x20
+ ldrb r2, [r4, #0x15]
+ add r3, r2, #0x0
+ tst r3, r1
+ beq _0207B058
+ eor r1, r2
+ strb r1, [r4, #0x15]
+_0207B058:
+ mov r1, #0x93
+ lsl r1, r1, #0x2
+ ldr r3, [r0, r1]
+ mov r0, #0x40
+ ldrb r1, [r3, #0x15]
+ add r2, r1, #0x0
+ tst r2, r0
+ beq _0207B06C
+ eor r0, r1
+ strb r0, [r3, #0x15]
+_0207B06C:
+ pop {r3-r4}
+ bx lr
+
+ thumb_func_start FUN_0207B070
+FUN_0207B070: ; 0x0207B070
+ mov r2, #0x2a
+ lsl r2, r2, #0x4
+ ldr r2, [r0, r2]
+ lsl r2, r2, #0x3
+ lsr r2, r2, #0x1f
+ beq _0207B088
+ cmp r1, #0x1
+ beq _0207B088
+ cmp r1, #0x7
+ beq _0207B088
+ mov r0, #0x0
+ bx lr
+_0207B088:
+ mov r2, #0x93
+ lsl r2, r2, #0x2
+ ldr r0, [r0, r2]
+ ldrb r2, [r0, #0x15]
+ mov r0, #0x1
+ lsl r0, r1
+ and r0, r2
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bx lr
+
+ thumb_func_start FUN_0207B09C
+FUN_0207B09C: ; 0x0207B09C
+ push {r3-r4}
+ mov r3, #0x93
+ lsl r3, r3, #0x2
+ ldr r0, [r0, r3]
+ mov r2, #0x0
+ ldrb r0, [r0, #0x15]
+ add r1, r2, #0x0
+ mov r3, #0x1
+_0207B0AC:
+ add r4, r3, #0x0
+ lsl r4, r1
+ tst r4, r0
+ beq _0207B0BA
+ add r2, r2, #0x1
+ lsl r2, r2, #0x18
+ lsr r2, r2, #0x18
+_0207B0BA:
+ add r1, r1, #0x1
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ cmp r1, #0x8
+ blo _0207B0AC
+ add r0, r2, #0x0
+ pop {r3-r4}
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_0207B0CC
+FUN_0207B0CC: ; 0x0207B0CC
+ push {r3-r5, lr}
+ sub sp, #0x10
+ add r4, r1, #0x0
+ ldr r1, _0207B174 ; =0x0000068C
+ add r5, r0, #0x0
+ ldrsb r1, [r5, r1]
+ cmp r1, r4
+ beq _0207B170
+ mov r1, #0x93
+ lsl r1, r1, #0x2
+ ldr r1, [r5, r1]
+ ldrb r1, [r1, #0x12]
+ cmp r1, #0x2
+ bne _0207B0EC
+ bl FUN_0207BDD8
+_0207B0EC:
+ add r0, r5, #0x0
+ bl FUN_0207D6F8
+ ldr r0, _0207B174 ; =0x0000068C
+ mov r1, #0x0
+ strb r4, [r5, r0]
+ add r0, r5, #0x0
+ bl FUN_0207CFAC
+ add r0, r5, #0x0
+ bl FUN_0207C5D4
+ add r0, r5, #0x0
+ bl FUN_0207C6A4
+ add r0, r5, #0x0
+ bl FUN_0207C838
+ add r0, r5, #0x0
+ bl FUN_0207D2C8
+ add r0, r5, #0x0
+ bl FUN_0207CC24
+ add r0, r5, #0x0
+ bl FUN_0207D604
+ add r0, r5, #0x0
+ mov r1, #0x0
+ bl FUN_0207D418
+ mov r0, #0x4
+ str r0, [sp, #0x0]
+ mov r0, #0x13
+ str r0, [sp, #0x4]
+ mov r0, #0x14
+ str r0, [sp, #0x8]
+ mov r2, #0x0
+ str r2, [sp, #0xc]
+ ldr r0, [r5, #0x0]
+ mov r1, #0x1
+ mov r3, #0xe
+ bl FUN_02018540
+ ldr r0, [r5, #0x0]
+ mov r1, #0x1
+ bl FUN_02017CD0
+ add r0, r5, #0x0
+ bl FUN_0207DD88
+ add r0, r5, #0x0
+ bl FUN_0207B228
+ add r0, r5, #0x0
+ bl FUN_0207F2A0
+ mov r0, #0x93
+ lsl r0, r0, #0x2
+ ldr r0, [r5, r0]
+ ldrb r0, [r0, #0x12]
+ cmp r0, #0x2
+ bne _0207B170
+ add r0, r5, #0x0
+ bl FUN_0207BDF4
+_0207B170:
+ add sp, #0x10
+ pop {r3-r5, pc}
+ .balign 4
+_0207B174: .word 0x0000068C
+
+ thumb_func_start FUN_0207B178
+FUN_0207B178: ; 0x0207B178
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ ldr r0, _0207B1F8 ; =0x0000068C
+ mov r6, #0x1
+ ldrsb r4, [r5, r0]
+ mov r0, #0x2a
+ lsl r0, r0, #0x4
+ ldr r0, [r5, r0]
+ mov r12, r4
+ lsl r0, r0, #0x3
+ lsr r0, r0, #0x1f
+ add r7, r6, #0x0
+_0207B190:
+ add r2, r4, r1
+ lsl r2, r2, #0x18
+ asr r4, r2, #0x18
+ bpl _0207B19C
+ mov r4, #0x7
+ b _0207B1A2
+_0207B19C:
+ cmp r4, #0x7
+ ble _0207B1A2
+ mov r4, #0x0
+_0207B1A2:
+ cmp r0, #0x0
+ bne _0207B1B8
+ mov r2, #0x93
+ lsl r2, r2, #0x2
+ ldr r2, [r5, r2]
+ ldrb r3, [r2, #0x15]
+ add r2, r6, #0x0
+ lsl r2, r4
+ tst r2, r3
+ bne _0207B1D0
+ b _0207B190
+_0207B1B8:
+ mov r2, #0x93
+ lsl r2, r2, #0x2
+ ldr r2, [r5, r2]
+ ldrb r3, [r2, #0x15]
+ add r2, r7, #0x0
+ lsl r2, r4
+ tst r2, r3
+ beq _0207B190
+ cmp r4, #0x1
+ beq _0207B1D0
+ cmp r4, #0x7
+ bne _0207B190
+_0207B1D0:
+ mov r0, r12
+ cmp r4, r0
+ beq _0207B1F4
+ ldr r0, _0207B1FC ; =0x000005E1
+ bl FUN_020054C8
+ add r0, r5, #0x0
+ bl FUN_0207FA38
+ add r0, r5, #0x0
+ mov r1, #0x0
+ bl FUN_0207D418
+ lsl r1, r4, #0x18
+ add r0, r5, #0x0
+ lsr r1, r1, #0x18
+ bl FUN_0207B0CC
+_0207B1F4:
+ pop {r3-r7, pc}
+ nop
+_0207B1F8: .word 0x0000068C
+_0207B1FC: .word 0x000005E1
+
+ thumb_func_start FUN_0207B200
+FUN_0207B200: ; 0x0207B200
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl FUN_0207FA80
+ cmp r0, #0xff
+ bne _0207B210
+ mov r0, #0x0
+ pop {r4, pc}
+_0207B210:
+ ldr r1, _0207B224 ; =0x00000694
+ mov r3, #0x0
+ strb r3, [r4, r1]
+ add r2, r1, #0x2
+ strb r0, [r4, r2]
+ add r0, r1, #0x1
+ strb r3, [r4, r0]
+ mov r0, #0x1
+ pop {r4, pc}
+ nop
+_0207B224: .word 0x00000694
+
+ thumb_func_start FUN_0207B228
+FUN_0207B228: ; 0x0207B228
+ push {r3-r5, lr}
+ sub sp, #0x10
+ add r5, r0, #0x0
+ mov r0, #0x93
+ lsl r0, r0, #0x2
+ ldr r1, [r5, r0]
+ ldrb r0, [r1, #0x12]
+ cmp r0, #0x2
+ bne _0207B250
+ ldrh r0, [r1, #0x18]
+ cmp r0, #0x0
+ beq _0207B250
+ ldr r0, _0207B2AC ; =0x0000068C
+ ldrsb r0, [r5, r0]
+ cmp r0, #0x3
+ bne _0207B24C
+ mov r1, #0xc
+ b _0207B256
+_0207B24C:
+ mov r1, #0xd
+ b _0207B256
+_0207B250:
+ ldr r0, _0207B2AC ; =0x0000068C
+ ldrsb r0, [r5, r0]
+ add r1, r0, #0x3
+_0207B256:
+ mov r0, #0x27
+ mov r2, #0x13
+ bl LoadFromNarc_2
+ add r1, sp, #0xc
+ add r4, r0, #0x0
+ blx FUN_020B0180
+ mov r3, #0x0
+ str r3, [sp, #0x0]
+ mov r0, #0x20
+ str r0, [sp, #0x4]
+ str r0, [sp, #0x8]
+ ldr r2, [sp, #0xc]
+ ldr r0, [r5, #0x0]
+ mov r1, #0x3
+ add r2, #0xc
+ bl FUN_02018148
+ ldr r0, [r5, #0x0]
+ mov r1, #0x3
+ bl FUN_0201AC68
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ ldr r0, _0207B2AC ; =0x0000068C
+ ldrsb r0, [r5, r0]
+ cmp r0, #0x0
+ bne _0207B29C
+ add r0, r5, #0x0
+ bl FUN_0207B364
+ add sp, #0x10
+ pop {r3-r5, pc}
+_0207B29C:
+ cmp r0, #0x2
+ bne _0207B2A6
+ add r0, r5, #0x0
+ bl FUN_0207B2B0
+_0207B2A6:
+ add sp, #0x10
+ pop {r3-r5, pc}
+ nop
+_0207B2AC: .word 0x0000068C
+
+ thumb_func_start FUN_0207B2B0
+FUN_0207B2B0: ; 0x0207B2B0
+ push {r4-r7, lr}
+ sub sp, #0x14
+ mov r1, #0x9d
+ add r6, r0, #0x0
+ lsl r1, r1, #0x2
+ ldrh r0, [r6, r1]
+ add r1, r1, #0x2
+ ldrh r1, [r6, r1]
+ mov r2, #0x30
+ bl FUN_02079A54
+ cmp r0, #0x4
+ bhi _0207B2EC
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0207B2D6: ; jump table (using 16-bit offset)
+ .short _0207B2E0 - _0207B2D6 - 2; case 0
+ .short _0207B2E8 - _0207B2D6 - 2; case 1
+ .short _0207B2E4 - _0207B2D6 - 2; case 2
+ .short _0207B2E0 - _0207B2D6 - 2; case 3
+ .short _0207B2E0 - _0207B2D6 - 2; case 4
+_0207B2E0:
+ ldr r7, _0207B35C ; =0x0000A0C0
+ b _0207B2EC
+_0207B2E4:
+ ldr r7, _0207B360 ; =0x0000A0E0
+ b _0207B2EC
+_0207B2E8:
+ mov r7, #0xa1
+ lsl r7, r7, #0x8
+_0207B2EC:
+ mov r1, #0x9d
+ lsl r1, r1, #0x2
+ ldrh r0, [r6, r1]
+ add r1, r1, #0x2
+ ldrh r1, [r6, r1]
+ mov r2, #0x30
+ bl FUN_02079A0C
+ add r4, r0, #0x0
+ add r0, r7, #0x0
+ add r0, #0x8
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ mov r5, #0x0
+ str r0, [sp, #0x10]
+_0207B30A:
+ cmp r4, #0x8
+ blo _0207B312
+ ldr r2, [sp, #0x10]
+ b _0207B318
+_0207B312:
+ add r0, r7, r4
+ lsl r0, r0, #0x10
+ lsr r2, r0, #0x10
+_0207B318:
+ mov r0, #0x6
+ str r0, [sp, #0x0]
+ mov r0, #0x1
+ str r0, [sp, #0x4]
+ add r3, r5, #0x0
+ str r0, [sp, #0x8]
+ mov r0, #0x11
+ add r3, #0x18
+ str r0, [sp, #0xc]
+ lsl r3, r3, #0x18
+ ldr r0, [r6, #0x0]
+ mov r1, #0x3
+ lsr r3, r3, #0x18
+ bl FUN_02018540
+ cmp r4, #0x8
+ bhs _0207B33E
+ mov r4, #0x0
+ b _0207B344
+_0207B33E:
+ sub r4, #0x8
+ lsl r0, r4, #0x18
+ lsr r4, r0, #0x18
+_0207B344:
+ add r0, r5, #0x1
+ lsl r0, r0, #0x18
+ lsr r5, r0, #0x18
+ cmp r5, #0x6
+ blo _0207B30A
+ ldr r0, [r6, #0x0]
+ mov r1, #0x3
+ bl FUN_0201AC68
+ add sp, #0x14
+ pop {r4-r7, pc}
+ nop
+_0207B35C: .word 0x0000A0C0
+_0207B360: .word 0x0000A0E0
+
+ thumb_func_start FUN_0207B364
+FUN_0207B364: ; 0x0207B364
+ push {r3-r7, lr}
+ sub sp, #0x10
+ ldr r2, _0207B3EC ; =0x00000262
+ add r6, r0, #0x0
+ ldrb r0, [r6, r2]
+ lsl r0, r0, #0x19
+ lsr r0, r0, #0x19
+ cmp r0, #0x64
+ bhs _0207B38C
+ add r0, r2, #0x0
+ add r1, r2, #0x0
+ add r0, #0xa
+ add r1, #0xe
+ add r2, r2, #0x6
+ ldr r0, [r6, r0]
+ ldr r1, [r6, r1]
+ ldr r2, [r6, r2]
+ sub r1, r1, r0
+ sub r0, r2, r0
+ b _0207B390
+_0207B38C:
+ mov r1, #0x0
+ add r0, r1, #0x0
+_0207B390:
+ mov r2, #0x38
+ bl FUN_02079A0C
+ add r4, r0, #0x0
+ mov r5, #0x0
+ mov r7, #0x17
+_0207B39C:
+ cmp r4, #0x8
+ blo _0207B3A4
+ mov r2, #0xb4
+ b _0207B3AC
+_0207B3A4:
+ add r0, r4, #0x0
+ add r0, #0xac
+ lsl r0, r0, #0x10
+ lsr r2, r0, #0x10
+_0207B3AC:
+ str r7, [sp, #0x0]
+ mov r0, #0x1
+ str r0, [sp, #0x4]
+ add r3, r5, #0x0
+ str r0, [sp, #0x8]
+ mov r0, #0x11
+ add r3, #0x17
+ str r0, [sp, #0xc]
+ lsl r3, r3, #0x18
+ ldr r0, [r6, #0x0]
+ mov r1, #0x3
+ lsr r3, r3, #0x18
+ bl FUN_02018540
+ cmp r4, #0x8
+ bhs _0207B3D0
+ mov r4, #0x0
+ b _0207B3D6
+_0207B3D0:
+ sub r4, #0x8
+ lsl r0, r4, #0x18
+ lsr r4, r0, #0x18
+_0207B3D6:
+ add r0, r5, #0x1
+ lsl r0, r0, #0x18
+ lsr r5, r0, #0x18
+ cmp r5, #0x7
+ blo _0207B39C
+ ldr r0, [r6, #0x0]
+ mov r1, #0x3
+ bl FUN_0201AC68
+ add sp, #0x10
+ pop {r3-r7, pc}
+ .balign 4
+_0207B3EC: .word 0x00000262
+
+ thumb_func_start FUN_0207B3F0
+FUN_0207B3F0: ; 0x0207B3F0
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl FUN_0207B4A4
+ mov r1, #0x0
+ mvn r1, r1
+ cmp r0, r1
+ beq _0207B49C
+ mov r1, #0x93
+ lsl r1, r1, #0x2
+ ldr r1, [r4, r1]
+ strb r0, [r1, #0x14]
+ add r0, r4, #0x0
+ bl FUN_0207AAB0
+ add r0, r4, #0x0
+ bl FUN_0207AF20
+ add r0, r4, #0x0
+ bl FUN_0207D768
+ add r0, r4, #0x0
+ bl FUN_0207D800
+ add r0, r4, #0x0
+ bl FUN_0207D8A0
+ ldr r0, _0207B4A0 ; =0x0000068C
+ ldrsb r0, [r4, r0]
+ cmp r0, #0x0
+ bne _0207B436
+ add r0, r4, #0x0
+ bl FUN_0207B364
+ b _0207B44C
+_0207B436:
+ cmp r0, #0x2
+ bne _0207B442
+ add r0, r4, #0x0
+ bl FUN_0207B2B0
+ b _0207B44C
+_0207B442:
+ cmp r0, #0x4
+ bne _0207B44C
+ add r0, r4, #0x0
+ bl FUN_0207F608
+_0207B44C:
+ add r0, r4, #0x0
+ bl FUN_0207F934
+ add r0, r4, #0x0
+ mov r1, #0x0
+ bl FUN_0207CFAC
+ add r0, r4, #0x0
+ bl FUN_0207C5D4
+ add r0, r4, #0x0
+ bl FUN_0207C6A4
+ add r0, r4, #0x0
+ bl FUN_0207CA44
+ add r0, r4, #0x0
+ bl FUN_0207C838
+ add r0, r4, #0x0
+ bl FUN_0207D2C8
+ add r0, r4, #0x0
+ bl FUN_0207CFEC
+ add r0, r4, #0x0
+ bl FUN_0207C71C
+ add r0, r4, #0x0
+ bl FUN_0207C77C
+ add r0, r4, #0x0
+ bl FUN_0207CC24
+ add r0, r4, #0x0
+ bl FUN_0207CE4C
+ add r0, r4, #0x0
+ bl FUN_0207DD88
+_0207B49C:
+ pop {r4, pc}
+ nop
+_0207B4A0: .word 0x0000068C
+
+ thumb_func_start FUN_0207B4A4
+FUN_0207B4A4: ; 0x0207B4A4
+ push {r3, lr}
+ mov r2, #0x93
+ lsl r2, r2, #0x2
+ ldr r2, [r0, r2]
+ ldrb r2, [r2, #0x11]
+ cmp r2, #0x0
+ beq _0207B4BC
+ cmp r2, #0x1
+ beq _0207B4C2
+ cmp r2, #0x2
+ beq _0207B4C8
+ b _0207B4CE
+_0207B4BC:
+ bl FUN_0207B4FC
+ pop {r3, pc}
+_0207B4C2:
+ bl FUN_0207B564
+ pop {r3, pc}
+_0207B4C8:
+ bl FUN_0207B5C0
+ pop {r3, pc}
+_0207B4CE:
+ mov r0, #0x0
+ mvn r0, r0
+ pop {r3, pc}
+
+ thumb_func_start FUN_0207B4D4
+FUN_0207B4D4: ; 0x0207B4D4
+ mov r1, #0x93
+ lsl r1, r1, #0x2
+ ldr r1, [r0, r1]
+ ldrb r1, [r1, #0x12]
+ cmp r1, #0x3
+ bne _0207B4E4
+ mov r0, #0x0
+ bx lr
+_0207B4E4:
+ ldr r1, _0207B4F8 ; =0x0000068C
+ ldrsb r0, [r0, r1]
+ cmp r0, #0x1
+ beq _0207B4F4
+ cmp r0, #0x7
+ beq _0207B4F4
+ mov r0, #0x0
+ bx lr
+_0207B4F4:
+ mov r0, #0x1
+ bx lr
+ .balign 4
+_0207B4F8: .word 0x0000068C
+
+ thumb_func_start FUN_0207B4FC
+FUN_0207B4FC: ; 0x0207B4FC
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ mov r0, #0x93
+ lsl r0, r0, #0x2
+ str r1, [sp, #0x0]
+ ldr r1, [r5, r0]
+ mov r0, #0x14
+ ldrsb r4, [r1, r0]
+_0207B50C:
+ ldr r0, [sp, #0x0]
+ add r0, r4, r0
+ lsl r0, r0, #0x18
+ asr r4, r0, #0x18
+ bmi _0207B522
+ mov r0, #0x93
+ lsl r0, r0, #0x2
+ ldr r0, [r5, r0]
+ ldrb r0, [r0, #0x13]
+ cmp r4, r0
+ blt _0207B528
+_0207B522:
+ mov r0, #0x0
+ mvn r0, r0
+ pop {r3-r7, pc}
+_0207B528:
+ bl FUN_020690C4
+ mov r1, #0x93
+ lsl r1, r1, #0x2
+ ldr r1, [r5, r1]
+ add r7, r4, #0x0
+ ldr r6, [r1, #0x0]
+ mul r7, r0
+ add r0, r6, r7
+ mov r1, #0x5
+ mov r2, #0x0
+ bl FUN_020671BC
+ cmp r0, #0x0
+ beq _0207B50C
+ add r0, r6, r7
+ mov r1, #0x4c
+ mov r2, #0x0
+ bl FUN_020671BC
+ cmp r0, #0x0
+ beq _0207B55E
+ add r0, r5, #0x0
+ bl FUN_0207B4D4
+ cmp r0, #0x1
+ bne _0207B50C
+_0207B55E:
+ add r0, r4, #0x0
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_0207B564
+FUN_0207B564: ; 0x0207B564
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ mov r0, #0x93
+ lsl r0, r0, #0x2
+ add r7, r1, #0x0
+ ldr r1, [r5, r0]
+ mov r0, #0x14
+ ldrsb r4, [r1, r0]
+_0207B574:
+ add r0, r4, r7
+ lsl r0, r0, #0x18
+ asr r4, r0, #0x18
+ bmi _0207B588
+ mov r0, #0x93
+ lsl r0, r0, #0x2
+ ldr r1, [r5, r0]
+ ldrb r0, [r1, #0x13]
+ cmp r4, r0
+ blt _0207B58E
+_0207B588:
+ mov r0, #0x0
+ mvn r0, r0
+ pop {r3-r7, pc}
+_0207B58E:
+ ldr r0, [r1, #0x0]
+ add r1, r4, #0x0
+ bl FUN_0206B9B0
+ mov r1, #0x5
+ mov r2, #0x0
+ add r6, r0, #0x0
+ bl FUN_020671BC
+ cmp r0, #0x0
+ beq _0207B574
+ add r0, r6, #0x0
+ mov r1, #0x4c
+ mov r2, #0x0
+ bl FUN_020671BC
+ cmp r0, #0x0
+ beq _0207B5BC
+ add r0, r5, #0x0
+ bl FUN_0207B4D4
+ cmp r0, #0x1
+ bne _0207B574
+_0207B5BC:
+ add r0, r4, #0x0
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_0207B5C0
+FUN_0207B5C0: ; 0x0207B5C0
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ mov r0, #0x93
+ lsl r0, r0, #0x2
+ str r1, [sp, #0x0]
+ ldr r1, [r5, r0]
+ mov r0, #0x14
+ ldrsb r4, [r1, r0]
+_0207B5D0:
+ ldr r0, [sp, #0x0]
+ add r0, r4, r0
+ lsl r0, r0, #0x18
+ asr r4, r0, #0x18
+ bmi _0207B5E6
+ mov r0, #0x93
+ lsl r0, r0, #0x2
+ ldr r0, [r5, r0]
+ ldrb r0, [r0, #0x13]
+ cmp r4, r0
+ blt _0207B5EC
+_0207B5E6:
+ mov r0, #0x0
+ mvn r0, r0
+ pop {r3-r7, pc}
+_0207B5EC:
+ bl FUN_020690C8
+ mov r1, #0x93
+ lsl r1, r1, #0x2
+ ldr r1, [r5, r1]
+ add r7, r4, #0x0
+ ldr r6, [r1, #0x0]
+ mul r7, r0
+ add r0, r6, r7
+ mov r1, #0x5
+ mov r2, #0x0
+ bl FUN_020672BC
+ cmp r0, #0x0
+ beq _0207B5D0
+ add r0, r6, r7
+ mov r1, #0x4c
+ mov r2, #0x0
+ bl FUN_020672BC
+ cmp r0, #0x0
+ beq _0207B622
+ add r0, r5, #0x0
+ bl FUN_0207B4D4
+ cmp r0, #0x1
+ bne _0207B5D0
+_0207B622:
+ add r0, r4, #0x0
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_0207B628
+FUN_0207B628: ; 0x0207B628
+ push {r4, lr}
+ mov r1, #0x93
+ lsl r1, r1, #0x2
+ ldr r4, [r0, r1]
+ ldrb r0, [r4, #0x11]
+ cmp r0, #0x0
+ beq _0207B640
+ cmp r0, #0x1
+ beq _0207B64E
+ cmp r0, #0x2
+ beq _0207B658
+ b _0207B666
+_0207B640:
+ bl FUN_020690C4
+ ldrb r1, [r4, #0x14]
+ ldr r2, [r4, #0x0]
+ mul r0, r1
+ add r0, r2, r0
+ pop {r4, pc}
+_0207B64E:
+ ldrb r1, [r4, #0x14]
+ ldr r0, [r4, #0x0]
+ bl FUN_0206B9B0
+ pop {r4, pc}
+_0207B658:
+ bl FUN_020690C8
+ ldrb r1, [r4, #0x14]
+ ldr r2, [r4, #0x0]
+ mul r0, r1
+ add r0, r2, r0
+ pop {r4, pc}
+_0207B666:
+ mov r0, #0x0
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0207B66C
+FUN_0207B66C: ; 0x0207B66C
+ push {r4, lr}
+ ldr r1, _0207B774 ; =0x0000068E
+ add r4, r0, #0x0
+ ldrb r1, [r4, r1]
+ cmp r1, #0x0
+ beq _0207B682
+ cmp r1, #0x1
+ beq _0207B6E2
+ cmp r1, #0x2
+ beq _0207B70E
+ b _0207B76E
+_0207B682:
+ ldr r0, [r4, #0x0]
+ mov r1, #0x2
+ mov r2, #0x0
+ mov r3, #0x88
+ bl FUN_0201AEE4
+ ldr r0, [r4, #0x0]
+ mov r1, #0x2
+ mov r2, #0x3
+ mov r3, #0x0
+ bl FUN_0201AEE4
+ add r0, r4, #0x0
+ mov r1, #0x0
+ bl FUN_0207C6F0
+ mov r0, #0x85
+ lsl r0, r0, #0x2
+ add r0, r4, r0
+ bl FUN_0201958C
+ add r0, r4, #0x0
+ add r0, #0x64
+ bl FUN_0201958C
+ mov r0, #0x81
+ lsl r0, r0, #0x2
+ add r0, r4, r0
+ bl FUN_0201958C
+ mov r0, #0x8d
+ lsl r0, r0, #0x2
+ add r0, r4, r0
+ bl FUN_0201958C
+ add r0, r4, #0x0
+ mov r1, #0x0
+ bl FUN_0207CFAC
+ ldr r1, _0207B778 ; =0x0000068D
+ mov r0, #0xf
+ ldrb r2, [r4, r1]
+ bic r2, r0
+ strb r2, [r4, r1]
+ mov r2, #0x1
+ add r0, r1, #0x1
+ strb r2, [r4, r0]
+ b _0207B76E
+_0207B6E2:
+ ldr r0, [r4, #0x0]
+ mov r1, #0x2
+ bl FUN_02017B48
+ cmp r0, #0x40
+ ldr r0, [r4, #0x0]
+ bgt _0207B702
+ mov r2, #0x0
+ mov r1, #0x2
+ add r3, r2, #0x0
+ bl FUN_0201AEE4
+ ldr r0, _0207B774 ; =0x0000068E
+ mov r1, #0x2
+ strb r1, [r4, r0]
+ b _0207B76E
+_0207B702:
+ mov r1, #0x2
+ add r2, r1, #0x0
+ mov r3, #0x40
+ bl FUN_0201AEE4
+ b _0207B76E
+_0207B70E:
+ bl FUN_0207ECDC
+ mov r0, #0x93
+ lsl r0, r0, #0x2
+ ldr r0, [r4, r0]
+ ldrb r0, [r0, #0x12]
+ cmp r0, #0x1
+ beq _0207B732
+ add r0, r4, #0x0
+ mov r1, #0x98
+ bl FUN_0207D924
+ mov r1, #0x8d
+ lsl r1, r1, #0x2
+ add r0, r4, #0x0
+ add r1, r4, r1
+ bl FUN_0207CFAC
+_0207B732:
+ add r0, r4, #0x0
+ bl FUN_0207B8D8
+ ldr r0, _0207B77C ; =0x00000434
+ mov r1, #0x1
+ ldr r0, [r4, r0]
+ bl FUN_0200C63C
+ add r0, r4, #0x0
+ bl FUN_0207D06C
+ mov r0, #0x26
+ lsl r0, r0, #0x4
+ ldrb r1, [r4, r0]
+ add r0, r0, #0x1
+ ldrb r0, [r4, r0]
+ cmp r1, r0
+ beq _0207B760
+ ldr r0, _0207B780 ; =0x00000438
+ mov r1, #0x1
+ ldr r0, [r4, r0]
+ bl FUN_0200C63C
+_0207B760:
+ ldr r0, _0207B784 ; =0x0000042C
+ mov r1, #0x1
+ ldr r0, [r4, r0]
+ bl FUN_020200A0
+ mov r0, #0x1
+ pop {r4, pc}
+_0207B76E:
+ mov r0, #0x0
+ pop {r4, pc}
+ nop
+_0207B774: .word 0x0000068E
+_0207B778: .word 0x0000068D
+_0207B77C: .word 0x00000434
+_0207B780: .word 0x00000438
+_0207B784: .word 0x0000042C
+
+ thumb_func_start FUN_0207B788
+FUN_0207B788: ; 0x0207B788
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r0, _0207B864 ; =0x0000068E
+ ldrb r0, [r4, r0]
+ cmp r0, #0x0
+ beq _0207B79E
+ cmp r0, #0x1
+ beq _0207B7F8
+ cmp r0, #0x2
+ beq _0207B824
+ b _0207B860
+_0207B79E:
+ ldr r0, _0207B868 ; =0x00000434
+ mov r1, #0x0
+ ldr r0, [r4, r0]
+ bl FUN_0200C63C
+ ldr r0, _0207B86C ; =0x00000438
+ mov r1, #0x0
+ ldr r0, [r4, r0]
+ bl FUN_0200C63C
+ mov r0, #0x45
+ lsl r0, r0, #0x4
+ ldr r0, [r4, r0]
+ mov r1, #0x0
+ bl FUN_0200C63C
+ ldr r0, _0207B870 ; =0x00000454
+ mov r1, #0x0
+ ldr r0, [r4, r0]
+ bl FUN_0200C63C
+ ldr r0, _0207B874 ; =0x0000042C
+ mov r1, #0x0
+ ldr r0, [r4, r0]
+ bl FUN_020200A0
+ mov r0, #0x8d
+ lsl r0, r0, #0x2
+ add r0, r4, r0
+ bl FUN_0201958C
+ add r0, r4, #0x0
+ mov r1, #0x0
+ bl FUN_0207CFAC
+ add r0, r4, #0x0
+ bl FUN_0207ED18
+ add r0, r4, #0x0
+ bl FUN_0207EC94
+ ldr r0, _0207B864 ; =0x0000068E
+ mov r1, #0x1
+ strb r1, [r4, r0]
+ b _0207B860
+_0207B7F8:
+ ldr r0, [r4, #0x0]
+ mov r1, #0x2
+ bl FUN_02017B48
+ cmp r0, #0x80
+ ldr r0, [r4, #0x0]
+ blt _0207B818
+ mov r1, #0x2
+ mov r2, #0x0
+ mov r3, #0x88
+ bl FUN_0201AEE4
+ ldr r0, _0207B864 ; =0x0000068E
+ mov r1, #0x2
+ strb r1, [r4, r0]
+ b _0207B860
+_0207B818:
+ mov r1, #0x2
+ mov r2, #0x1
+ mov r3, #0x40
+ bl FUN_0201AEE4
+ b _0207B860
+_0207B824:
+ mov r0, #0x85
+ lsl r0, r0, #0x2
+ add r0, r4, r0
+ bl FUN_02019220
+ add r0, r4, #0x0
+ add r0, #0x64
+ bl FUN_02019220
+ mov r0, #0x81
+ lsl r0, r0, #0x2
+ add r0, r4, r0
+ bl FUN_02019220
+ add r0, r4, #0x0
+ mov r1, #0x81
+ bl FUN_0207D924
+ add r0, r4, #0x0
+ mov r1, #0x1
+ bl FUN_0207C6F0
+ mov r1, #0x8d
+ lsl r1, r1, #0x2
+ add r0, r4, #0x0
+ add r1, r4, r1
+ bl FUN_0207CFAC
+ mov r0, #0x1
+ pop {r4, pc}
+_0207B860:
+ mov r0, #0x0
+ pop {r4, pc}
+ .balign 4
+_0207B864: .word 0x0000068E
+_0207B868: .word 0x00000434
+_0207B86C: .word 0x00000438
+_0207B870: .word 0x00000454
+_0207B874: .word 0x0000042C
+
+ thumb_func_start FUN_0207B878
+FUN_0207B878: ; 0x0207B878
+ push {r4-r7}
+ add r5, r0, #0x0
+ ldr r0, _0207B8D4 ; =0x0000068D
+ mov r6, #0xa1
+ ldrb r0, [r5, r0]
+ mov r2, #0x4
+ lsl r6, r6, #0x2
+ lsl r0, r0, #0x1c
+ lsr r4, r0, #0x1c
+ add r3, r4, #0x0
+ mov r0, #0x0
+_0207B88E:
+ add r3, r3, r1
+ lsl r3, r3, #0x18
+ asr r3, r3, #0x18
+ bpl _0207B89A
+ add r3, r2, #0x0
+ b _0207B8A0
+_0207B89A:
+ cmp r3, #0x5
+ bne _0207B8A0
+ add r3, r0, #0x0
+_0207B8A0:
+ lsl r7, r3, #0x1
+ add r7, r5, r7
+ ldrh r7, [r7, r6]
+ cmp r7, #0x0
+ bne _0207B8AE
+ cmp r3, #0x4
+ bne _0207B88E
+_0207B8AE:
+ cmp r3, r4
+ beq _0207B8CC
+ ldr r2, _0207B8D4 ; =0x0000068D
+ mov r1, #0xf
+ ldrb r0, [r5, r2]
+ bic r0, r1
+ lsl r1, r3, #0x18
+ lsr r3, r1, #0x18
+ mov r1, #0xf
+ and r1, r3
+ orr r0, r1
+ strb r0, [r5, r2]
+ mov r0, #0x1
+ pop {r4-r7}
+ bx lr
+_0207B8CC:
+ mov r0, #0x0
+ pop {r4-r7}
+ bx lr
+ nop
+_0207B8D4: .word 0x0000068D
+
+ thumb_func_start FUN_0207B8D8
+FUN_0207B8D8: ; 0x0207B8D8
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl FUN_0207CBC0
+ ldr r2, _0207B95C ; =0x0000068D
+ ldrb r0, [r4, r2]
+ lsl r0, r0, #0x1c
+ lsr r1, r0, #0x1c
+ cmp r1, #0x4
+ bne _0207B930
+ mov r0, #0x93
+ lsl r0, r0, #0x2
+ ldr r0, [r4, r0]
+ ldrh r1, [r0, #0x18]
+ cmp r1, #0x0
+ beq _0207B910
+ sub r0, r2, #0x1
+ ldrsb r0, [r4, r0]
+ cmp r0, #0x3
+ bne _0207B908
+ add r0, r4, #0x0
+ bl FUN_0207B960
+ pop {r4, pc}
+_0207B908:
+ add r0, r4, #0x0
+ bl FUN_0207B99C
+ pop {r4, pc}
+_0207B910:
+ sub r0, r2, #0x1
+ ldrsb r0, [r4, r0]
+ cmp r0, #0x3
+ bne _0207B924
+ mov r1, #0x0
+ add r0, r4, #0x0
+ mvn r1, r1
+ bl FUN_0207B960
+ pop {r4, pc}
+_0207B924:
+ mov r1, #0x0
+ add r0, r4, #0x0
+ mvn r1, r1
+ bl FUN_0207B99C
+ pop {r4, pc}
+_0207B930:
+ sub r0, r2, #0x1
+ ldrsb r0, [r4, r0]
+ cmp r0, #0x3
+ bne _0207B94A
+ lsl r1, r1, #0x1
+ add r2, r4, r1
+ mov r1, #0xa1
+ lsl r1, r1, #0x2
+ ldrh r1, [r2, r1]
+ add r0, r4, #0x0
+ bl FUN_0207B960
+ pop {r4, pc}
+_0207B94A:
+ lsl r1, r1, #0x1
+ add r2, r4, r1
+ mov r1, #0xa1
+ lsl r1, r1, #0x2
+ ldrh r1, [r2, r1]
+ add r0, r4, #0x0
+ bl FUN_0207B99C
+ pop {r4, pc}
+ .balign 4
+_0207B95C: .word 0x0000068D
+
+ thumb_func_start FUN_0207B960
+FUN_0207B960: ; 0x0207B960
+ push {r3-r5, lr}
+ mov r2, #0x0
+ add r4, r1, #0x0
+ mvn r2, r2
+ add r5, r0, #0x0
+ cmp r4, r2
+ bne _0207B980
+ bl FUN_0207EC94
+ mov r0, #0x45
+ lsl r0, r0, #0x4
+ ldr r0, [r5, r0]
+ mov r1, #0x0
+ bl FUN_0200C63C
+ pop {r3-r5, pc}
+_0207B980:
+ bl FUN_0207EB64
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_0207CB70
+ mov r0, #0x45
+ lsl r0, r0, #0x4
+ ldr r0, [r5, r0]
+ mov r1, #0x1
+ bl FUN_0200C63C
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_0207B99C
+FUN_0207B99C: ; 0x0207B99C
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ bl FUN_0207BD84
+ mov r0, #0x0
+ mvn r0, r0
+ cmp r4, r0
+ bne _0207B9B6
+ add r0, r5, #0x0
+ bl FUN_0207EEB0
+ pop {r3-r5, pc}
+_0207B9B6:
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_0207EE2C
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_0207B9C0
+FUN_0207B9C0: ; 0x0207B9C0
+ push {r3-r7, lr}
+ add r4, r0, #0x0
+ bl FUN_0207B628
+ mov r1, #0x93
+ lsl r1, r1, #0x2
+ ldr r1, [r4, r1]
+ ldrb r1, [r1, #0x11]
+ cmp r1, #0x2
+ ldr r1, _0207BA70 ; =0x0000068D
+ bne _0207B9E6
+ ldrb r2, [r4, r1]
+ lsl r1, r2, #0x1c
+ lsl r2, r2, #0x18
+ lsr r1, r1, #0x1c
+ lsr r2, r2, #0x1c
+ bl FUN_020698E8
+ b _0207B9F4
+_0207B9E6:
+ ldrb r2, [r4, r1]
+ lsl r1, r2, #0x1c
+ lsl r2, r2, #0x18
+ lsr r1, r1, #0x1c
+ lsr r2, r2, #0x1c
+ bl FUN_020698E0
+_0207B9F4:
+ ldr r0, _0207BA70 ; =0x0000068D
+ mov r1, #0xa1
+ ldrb r6, [r4, r0]
+ lsl r1, r1, #0x2
+ add r5, r4, r1
+ lsl r2, r6, #0x1c
+ lsl r6, r6, #0x18
+ lsr r6, r6, #0x1c
+ lsl r6, r6, #0x1
+ lsr r3, r2, #0x1b
+ add r6, r4, r6
+ ldrh r2, [r5, r3]
+ ldrh r6, [r6, r1]
+ strh r6, [r5, r3]
+ ldrb r3, [r4, r0]
+ lsl r3, r3, #0x18
+ lsr r3, r3, #0x1c
+ lsl r3, r3, #0x1
+ add r3, r4, r3
+ strh r2, [r3, r1]
+ add r2, r1, #0x0
+ add r2, #0x8
+ ldrb r6, [r4, r0]
+ add r5, r4, r2
+ lsl r2, r6, #0x1c
+ lsl r6, r6, #0x18
+ lsr r6, r6, #0x1c
+ add r7, r4, r6
+ add r6, r1, #0x0
+ lsr r3, r2, #0x1c
+ add r6, #0x8
+ ldrb r2, [r5, r3]
+ ldrb r6, [r7, r6]
+ strb r6, [r5, r3]
+ ldrb r3, [r4, r0]
+ lsl r3, r3, #0x18
+ lsr r3, r3, #0x1c
+ add r5, r4, r3
+ add r3, r1, #0x0
+ add r3, #0x8
+ strb r2, [r5, r3]
+ add r2, r1, #0x0
+ add r2, #0xc
+ ldrb r6, [r4, r0]
+ add r5, r4, r2
+ lsl r2, r6, #0x1c
+ lsl r6, r6, #0x18
+ lsr r6, r6, #0x1c
+ add r7, r4, r6
+ add r6, r1, #0x0
+ lsr r3, r2, #0x1c
+ add r6, #0xc
+ ldrb r2, [r5, r3]
+ ldrb r6, [r7, r6]
+ add r1, #0xc
+ strb r6, [r5, r3]
+ ldrb r0, [r4, r0]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x1c
+ add r0, r4, r0
+ strb r2, [r0, r1]
+ pop {r3-r7, pc}
+ .balign 4
+_0207BA70: .word 0x0000068D
+
+ thumb_func_start FUN_0207BA74
+FUN_0207BA74: ; 0x0207BA74
+ push {r4, lr}
+ add r4, r0, #0x0
+ mov r0, #0x85
+ lsl r0, r0, #0x2
+ add r0, r4, r0
+ bl FUN_0201958C
+ add r0, r4, #0x0
+ add r0, #0x64
+ bl FUN_0201958C
+ mov r0, #0x81
+ lsl r0, r0, #0x2
+ add r0, r4, r0
+ bl FUN_0201958C
+ mov r2, #0x0
+ ldr r0, [r4, #0x0]
+ mov r1, #0x2
+ add r3, r2, #0x0
+ bl FUN_0201AEE4
+ add r0, r4, #0x0
+ bl FUN_0207ECDC
+ add r0, r4, #0x0
+ bl FUN_0207B8D8
+ ldr r0, _0207BAE0 ; =0x00000434
+ mov r1, #0x1
+ ldr r0, [r4, r0]
+ bl FUN_0200C63C
+ add r0, r4, #0x0
+ bl FUN_0207D06C
+ mov r0, #0x26
+ lsl r0, r0, #0x4
+ ldrb r1, [r4, r0]
+ add r0, r0, #0x1
+ ldrb r0, [r4, r0]
+ cmp r1, r0
+ beq _0207BAD4
+ ldr r0, _0207BAE4 ; =0x00000438
+ mov r1, #0x1
+ ldr r0, [r4, r0]
+ bl FUN_0200C63C
+_0207BAD4:
+ ldr r0, _0207BAE8 ; =0x0000042C
+ mov r1, #0x1
+ ldr r0, [r4, r0]
+ bl FUN_020200A0
+ pop {r4, pc}
+ .balign 4
+_0207BAE0: .word 0x00000434
+_0207BAE4: .word 0x00000438
+_0207BAE8: .word 0x0000042C
+
+ thumb_func_start FUN_0207BAEC
+FUN_0207BAEC: ; 0x0207BAEC
+ push {r4, lr}
+ ldr r1, _0207BBE4 ; =0x0000068E
+ add r4, r0, #0x0
+ ldrb r1, [r4, r1]
+ cmp r1, #0x0
+ beq _0207BB02
+ cmp r1, #0x1
+ beq _0207BB6E
+ cmp r1, #0x2
+ beq _0207BB9A
+ b _0207BBDE
+_0207BB02:
+ ldr r0, [r4, #0x0]
+ mov r1, #0x2
+ mov r2, #0x0
+ mov r3, #0x88
+ bl FUN_0201AEE4
+ mov r2, #0x3
+ add r3, r2, #0x0
+ ldr r0, [r4, #0x0]
+ mov r1, #0x2
+ add r3, #0xfd
+ bl FUN_0201AEE4
+ mov r1, #0x0
+ add r0, r4, #0x0
+ mvn r1, r1
+ bl FUN_0207BD84
+ add r0, r4, #0x0
+ mov r1, #0x0
+ bl FUN_0207C6F0
+ mov r0, #0x85
+ lsl r0, r0, #0x2
+ add r0, r4, r0
+ bl FUN_0201958C
+ add r0, r4, #0x0
+ add r0, #0x64
+ bl FUN_0201958C
+ mov r0, #0x81
+ lsl r0, r0, #0x2
+ add r0, r4, r0
+ bl FUN_0201958C
+ mov r0, #0x8d
+ lsl r0, r0, #0x2
+ add r0, r4, r0
+ bl FUN_0201958C
+ add r0, r4, #0x0
+ mov r1, #0x0
+ bl FUN_0207CFAC
+ ldr r1, _0207BBE8 ; =0x0000068D
+ mov r0, #0xf
+ ldrb r2, [r4, r1]
+ bic r2, r0
+ strb r2, [r4, r1]
+ mov r2, #0x1
+ add r0, r1, #0x1
+ strb r2, [r4, r0]
+ b _0207BBDE
+_0207BB6E:
+ ldr r0, [r4, #0x0]
+ mov r1, #0x2
+ bl FUN_02017B48
+ cmp r0, #0x40
+ ldr r0, [r4, #0x0]
+ bgt _0207BB8E
+ mov r2, #0x0
+ mov r1, #0x2
+ add r3, r2, #0x0
+ bl FUN_0201AEE4
+ ldr r0, _0207BBE4 ; =0x0000068E
+ mov r1, #0x2
+ strb r1, [r4, r0]
+ b _0207BBDE
+_0207BB8E:
+ mov r1, #0x2
+ add r2, r1, #0x0
+ mov r3, #0x40
+ bl FUN_0201AEE4
+ b _0207BBDE
+_0207BB9A:
+ bl FUN_0207ECDC
+ mov r0, #0x93
+ lsl r0, r0, #0x2
+ ldr r0, [r4, r0]
+ ldrb r0, [r0, #0x12]
+ cmp r0, #0x1
+ beq _0207BBBE
+ add r0, r4, #0x0
+ mov r1, #0x98
+ bl FUN_0207D924
+ mov r1, #0x8d
+ lsl r1, r1, #0x2
+ add r0, r4, #0x0
+ add r1, r4, r1
+ bl FUN_0207CFAC
+_0207BBBE:
+ add r0, r4, #0x0
+ bl FUN_0207B8D8
+ add r0, r4, #0x0
+ bl FUN_0207D06C
+ add r0, r4, #0x0
+ bl FUN_0207D10C
+ ldr r0, _0207BBEC ; =0x0000042C
+ mov r1, #0x1
+ ldr r0, [r4, r0]
+ bl FUN_020200A0
+ mov r0, #0x1
+ pop {r4, pc}
+_0207BBDE:
+ mov r0, #0x0
+ pop {r4, pc}
+ nop
+_0207BBE4: .word 0x0000068E
+_0207BBE8: .word 0x0000068D
+_0207BBEC: .word 0x0000042C
+
+ thumb_func_start FUN_0207BBF0
+FUN_0207BBF0: ; 0x0207BBF0
+ push {r4, lr}
+ ldr r1, _0207BCBC ; =0x0000068E
+ add r4, r0, #0x0
+ ldrb r1, [r4, r1]
+ cmp r1, #0x0
+ beq _0207BC06
+ cmp r1, #0x1
+ beq _0207BC4E
+ cmp r1, #0x2
+ beq _0207BC7A
+ b _0207BCB6
+_0207BC06:
+ bl FUN_0207D22C
+ ldr r0, _0207BCC0 ; =0x00000454
+ mov r1, #0x0
+ ldr r0, [r4, r0]
+ bl FUN_0200C63C
+ mov r1, #0x0
+ add r0, r4, #0x0
+ mvn r1, r1
+ bl FUN_0207BD84
+ ldr r0, _0207BCC4 ; =0x0000042C
+ mov r1, #0x0
+ ldr r0, [r4, r0]
+ bl FUN_020200A0
+ mov r0, #0x8d
+ lsl r0, r0, #0x2
+ add r0, r4, r0
+ bl FUN_0201958C
+ add r0, r4, #0x0
+ mov r1, #0x0
+ bl FUN_0207CFAC
+ add r0, r4, #0x0
+ bl FUN_0207ED18
+ add r0, r4, #0x0
+ bl FUN_0207EEB0
+ ldr r0, _0207BCBC ; =0x0000068E
+ mov r1, #0x1
+ strb r1, [r4, r0]
+ b _0207BCB6
+_0207BC4E:
+ ldr r0, [r4, #0x0]
+ mov r1, #0x2
+ bl FUN_02017B48
+ cmp r0, #0x80
+ ldr r0, [r4, #0x0]
+ blt _0207BC6E
+ mov r1, #0x2
+ mov r2, #0x0
+ mov r3, #0x88
+ bl FUN_0201AEE4
+ ldr r0, _0207BCBC ; =0x0000068E
+ mov r1, #0x2
+ strb r1, [r4, r0]
+ b _0207BCB6
+_0207BC6E:
+ mov r1, #0x2
+ mov r2, #0x1
+ mov r3, #0x40
+ bl FUN_0201AEE4
+ b _0207BCB6
+_0207BC7A:
+ mov r0, #0x85
+ lsl r0, r0, #0x2
+ add r0, r4, r0
+ bl FUN_02019220
+ add r0, r4, #0x0
+ add r0, #0x64
+ bl FUN_02019220
+ mov r0, #0x81
+ lsl r0, r0, #0x2
+ add r0, r4, r0
+ bl FUN_02019220
+ add r0, r4, #0x0
+ mov r1, #0x9e
+ bl FUN_0207D924
+ add r0, r4, #0x0
+ mov r1, #0x1
+ bl FUN_0207C6F0
+ mov r1, #0x8d
+ lsl r1, r1, #0x2
+ add r0, r4, #0x0
+ add r1, r4, r1
+ bl FUN_0207CFAC
+ mov r0, #0x1
+ pop {r4, pc}
+_0207BCB6:
+ mov r0, #0x0
+ pop {r4, pc}
+ nop
+_0207BCBC: .word 0x0000068E
+_0207BCC0: .word 0x00000454
+_0207BCC4: .word 0x0000042C
+
+ thumb_func_start FUN_0207BCC8
+FUN_0207BCC8: ; 0x0207BCC8
+ push {r3-r7, lr}
+ sub sp, #0x10
+ add r5, r0, #0x0
+ mov r0, #0x2f
+ str r0, [sp, #0x0]
+ mov r0, #0x1
+ lsl r6, r2, #0x1
+ add r4, r1, #0x0
+ str r0, [sp, #0x4]
+ add r7, r6, #0x2
+ str r0, [sp, #0x8]
+ mov r0, #0x10
+ str r0, [sp, #0xc]
+ lsl r3, r7, #0x18
+ ldr r0, [r5, #0x0]
+ mov r1, #0x2
+ add r2, r4, #0x0
+ lsr r3, r3, #0x18
+ bl FUN_02018540
+ mov r0, #0x2f
+ str r0, [sp, #0x0]
+ mov r0, #0x1
+ str r0, [sp, #0x4]
+ add r6, r6, #0x3
+ str r0, [sp, #0x8]
+ mov r0, #0x10
+ add r2, r4, #0x1
+ str r0, [sp, #0xc]
+ lsl r2, r2, #0x10
+ lsl r3, r6, #0x18
+ ldr r0, [r5, #0x0]
+ mov r1, #0x2
+ lsr r2, r2, #0x10
+ lsr r3, r3, #0x18
+ bl FUN_02018540
+ mov r0, #0x30
+ str r0, [sp, #0x0]
+ mov r0, #0x1
+ str r0, [sp, #0x4]
+ add r2, r4, #0x0
+ str r0, [sp, #0x8]
+ mov r0, #0x10
+ add r2, #0x20
+ str r0, [sp, #0xc]
+ lsl r2, r2, #0x10
+ lsl r3, r7, #0x18
+ ldr r0, [r5, #0x0]
+ mov r1, #0x2
+ lsr r2, r2, #0x10
+ lsr r3, r3, #0x18
+ bl FUN_02018540
+ mov r0, #0x30
+ str r0, [sp, #0x0]
+ mov r0, #0x1
+ str r0, [sp, #0x4]
+ str r0, [sp, #0x8]
+ mov r0, #0x10
+ add r4, #0x21
+ str r0, [sp, #0xc]
+ lsl r2, r4, #0x10
+ lsl r3, r6, #0x18
+ ldr r0, [r5, #0x0]
+ mov r1, #0x2
+ lsr r2, r2, #0x10
+ lsr r3, r3, #0x18
+ bl FUN_02018540
+ add sp, #0x10
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_0207BD58
+FUN_0207BD58: ; 0x0207BD58
+ push {r4-r6, lr}
+ ldr r6, _0207BD80 ; =0x0000012E
+ add r5, r0, #0x0
+ mov r4, #0x0
+_0207BD60:
+ lsl r2, r4, #0x18
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ lsr r2, r2, #0x18
+ bl FUN_0207BCC8
+ add r0, r4, #0x1
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+ cmp r4, #0x6
+ blo _0207BD60
+ ldr r0, [r5, #0x0]
+ mov r1, #0x2
+ bl FUN_0201AC68
+ pop {r4-r6, pc}
+ .balign 4
+_0207BD80: .word 0x0000012E
+
+ thumb_func_start FUN_0207BD84
+FUN_0207BD84: ; 0x0207BD84
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ bl FUN_0207BD58
+ mov r0, #0x0
+ mvn r0, r0
+ cmp r4, r0
+ beq _0207BDCC
+ add r0, r4, #0x0
+ mov r1, #0xa
+ bl FUN_0206AB18
+ bl FUN_02083114
+ mov r1, #0xa
+ blx _s32_div_f
+ lsl r0, r0, #0x18
+ asr r6, r0, #0x18
+ mov r4, #0x0
+ cmp r6, #0x0
+ ble _0207BDCC
+ mov r7, #0x4b
+ lsl r7, r7, #0x2
+_0207BDB6:
+ lsl r2, r4, #0x18
+ add r0, r5, #0x0
+ add r1, r7, #0x0
+ lsr r2, r2, #0x18
+ bl FUN_0207BCC8
+ add r0, r4, #0x1
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+ cmp r4, r6
+ blt _0207BDB6
+_0207BDCC:
+ ldr r0, [r5, #0x0]
+ mov r1, #0x2
+ bl FUN_0201AC68
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_0207BDD8
+FUN_0207BDD8: ; 0x0207BDD8
+ push {r3, lr}
+ ldr r1, _0207BDF0 ; =0x0000068C
+ ldrsb r1, [r0, r1]
+ cmp r1, #0x3
+ bne _0207BDE8
+ bl FUN_0207EC94
+ pop {r3, pc}
+_0207BDE8:
+ bl FUN_0207EEB0
+ pop {r3, pc}
+ nop
+_0207BDF0: .word 0x0000068C
+
+ thumb_func_start FUN_0207BDF4
+FUN_0207BDF4: ; 0x0207BDF4
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl FUN_0207ECDC
+ add r0, r4, #0x0
+ bl FUN_0207B8D8
+ add r0, r4, #0x0
+ bl FUN_0207D06C
+ ldr r0, _0207BE5C ; =0x0000068C
+ ldrsb r0, [r4, r0]
+ cmp r0, #0x3
+ bne _0207BE46
+ add r0, r4, #0x0
+ bl FUN_0207D22C
+ ldr r0, _0207BE60 ; =0x00000434
+ mov r1, #0x1
+ ldr r0, [r4, r0]
+ bl FUN_0200C63C
+ mov r0, #0x26
+ lsl r0, r0, #0x4
+ ldrb r1, [r4, r0]
+ add r0, r0, #0x1
+ ldrb r0, [r4, r0]
+ cmp r1, r0
+ beq _0207BE38
+ ldr r0, _0207BE64 ; =0x00000438
+ mov r1, #0x1
+ ldr r0, [r4, r0]
+ bl FUN_0200C63C
+_0207BE38:
+ ldr r0, [r4, #0x0]
+ mov r1, #0x2
+ mov r2, #0x3
+ mov r3, #0x0
+ bl FUN_0201AEE4
+ pop {r4, pc}
+_0207BE46:
+ add r0, r4, #0x0
+ bl FUN_0207D10C
+ mov r2, #0x3
+ add r3, r2, #0x0
+ ldr r0, [r4, #0x0]
+ mov r1, #0x2
+ add r3, #0xfd
+ bl FUN_0201AEE4
+ pop {r4, pc}
+ .balign 4
+_0207BE5C: .word 0x0000068C
+_0207BE60: .word 0x00000434
+_0207BE64: .word 0x00000438
+
+ thumb_func_start FUN_0207BE68
+FUN_0207BE68: ; 0x0207BE68
+ push {r4, lr}
+ ldr r1, _0207BF78 ; =0x0000068E
+ add r4, r0, #0x0
+ ldrb r1, [r4, r1]
+ cmp r1, #0x0
+ beq _0207BE7E
+ cmp r1, #0x1
+ beq _0207BEEA
+ cmp r1, #0x2
+ beq _0207BF16
+ b _0207BF74
+_0207BE7E:
+ mov r1, #0x2
+ add r3, r1, #0x0
+ ldr r0, [r4, #0x0]
+ mov r2, #0x0
+ add r3, #0xfe
+ bl FUN_0201AEE4
+ ldr r0, [r4, #0x0]
+ mov r1, #0x2
+ mov r2, #0x3
+ mov r3, #0x0
+ bl FUN_0201AEE4
+ add r0, r4, #0x0
+ mov r1, #0x0
+ bl FUN_0207C6F0
+ add r0, r4, #0x0
+ add r0, #0x64
+ bl FUN_0201958C
+ mov r0, #0x81
+ lsl r0, r0, #0x2
+ add r0, r4, r0
+ bl FUN_0201958C
+ mov r0, #0x79
+ lsl r0, r0, #0x2
+ add r0, r4, r0
+ bl FUN_0201958C
+ mov r0, #0x8d
+ lsl r0, r0, #0x2
+ add r0, r4, r0
+ bl FUN_0201958C
+ mov r0, #0x91
+ lsl r0, r0, #0x2
+ ldr r0, [r4, r0]
+ bl FUN_0201958C
+ add r0, r4, #0x0
+ mov r1, #0x0
+ bl FUN_0207CFAC
+ ldr r1, _0207BF7C ; =0x00000697
+ mov r2, #0x0
+ strb r2, [r4, r1]
+ add r0, r1, #0x1
+ strb r2, [r4, r0]
+ mov r0, #0x1
+ sub r1, #0x9
+ strb r0, [r4, r1]
+ b _0207BF74
+_0207BEEA:
+ ldr r0, [r4, #0x0]
+ mov r1, #0x2
+ bl FUN_02017B54
+ cmp r0, #0x30
+ ldr r0, [r4, #0x0]
+ blt _0207BF0A
+ mov r1, #0x2
+ mov r2, #0x3
+ mov r3, #0x38
+ bl FUN_0201AEE4
+ ldr r0, _0207BF78 ; =0x0000068E
+ mov r1, #0x2
+ strb r1, [r4, r0]
+ b _0207BF74
+_0207BF0A:
+ mov r1, #0x2
+ mov r2, #0x4
+ mov r3, #0x10
+ bl FUN_0201AEE4
+ b _0207BF74
+_0207BF16:
+ mov r1, #0xb5
+ bl FUN_0207D924
+ mov r1, #0x8d
+ lsl r1, r1, #0x2
+ add r0, r4, #0x0
+ add r1, r4, r1
+ bl FUN_0207CFAC
+ ldr r0, _0207BF80 ; =0x00000514
+ mov r1, #0x1
+ ldr r0, [r4, r0]
+ bl FUN_020200A0
+ mov r0, #0x52
+ lsl r0, r0, #0x4
+ ldr r0, [r4, r0]
+ mov r1, #0x1
+ bl FUN_020200A0
+ ldr r0, _0207BF84 ; =0x00000504
+ mov r1, #0x0
+ ldr r0, [r4, r0]
+ bl FUN_020200A0
+ ldr r0, _0207BF88 ; =0x00000508
+ mov r1, #0x0
+ ldr r0, [r4, r0]
+ bl FUN_020200A0
+ ldr r0, _0207BF8C ; =0x0000050C
+ mov r1, #0x0
+ ldr r0, [r4, r0]
+ bl FUN_020200A0
+ mov r0, #0x51
+ lsl r0, r0, #0x4
+ ldr r0, [r4, r0]
+ mov r1, #0x0
+ bl FUN_020200A0
+ add r0, r4, #0x0
+ mov r1, #0x0
+ bl FUN_0207C07C
+ mov r0, #0x1
+ pop {r4, pc}
+_0207BF74:
+ mov r0, #0x0
+ pop {r4, pc}
+ .balign 4
+_0207BF78: .word 0x0000068E
+_0207BF7C: .word 0x00000697
+_0207BF80: .word 0x00000514
+_0207BF84: .word 0x00000504
+_0207BF88: .word 0x00000508
+_0207BF8C: .word 0x0000050C
+
+ thumb_func_start FUN_0207BF90
+FUN_0207BF90: ; 0x0207BF90
+ push {r4, lr}
+ ldr r1, _0207C078 ; =0x0000068E
+ add r4, r0, #0x0
+ ldrb r0, [r4, r1]
+ cmp r0, #0x0
+ beq _0207BFA6
+ cmp r0, #0x1
+ beq _0207BFF6
+ cmp r0, #0x2
+ beq _0207C022
+ b _0207C072
+_0207BFA6:
+ add r0, r1, #0x0
+ mov r2, #0x0
+ add r0, #0x9
+ strb r2, [r4, r0]
+ add r1, #0xa
+ mov r0, #0x91
+ strb r2, [r4, r1]
+ lsl r0, r0, #0x2
+ ldr r0, [r4, r0]
+ add r0, #0x10
+ bl FUN_0201958C
+ mov r0, #0x91
+ lsl r0, r0, #0x2
+ ldr r0, [r4, r0]
+ add r0, #0x20
+ bl FUN_0201958C
+ mov r0, #0x91
+ lsl r0, r0, #0x2
+ ldr r0, [r4, r0]
+ add r0, #0x30
+ bl FUN_0201958C
+ mov r0, #0x8d
+ lsl r0, r0, #0x2
+ add r0, r4, r0
+ bl FUN_0201958C
+ add r0, r4, #0x0
+ mov r1, #0x0
+ bl FUN_0207CFAC
+ add r0, r4, #0x0
+ bl FUN_0207D2C8
+ ldr r0, _0207C078 ; =0x0000068E
+ mov r1, #0x1
+ strb r1, [r4, r0]
+ b _0207C072
+_0207BFF6:
+ ldr r0, [r4, #0x0]
+ mov r1, #0x2
+ bl FUN_02017B54
+ cmp r0, #0x8
+ ldr r0, [r4, #0x0]
+ bgt _0207C016
+ mov r1, #0x2
+ mov r2, #0x3
+ mov r3, #0x0
+ bl FUN_0201AEE4
+ ldr r0, _0207C078 ; =0x0000068E
+ mov r1, #0x2
+ strb r1, [r4, r0]
+ b _0207C072
+_0207C016:
+ mov r1, #0x2
+ mov r2, #0x5
+ mov r3, #0x10
+ bl FUN_0201AEE4
+ b _0207C072
+_0207C022:
+ add r0, r4, #0x0
+ add r0, #0x64
+ bl FUN_02019220
+ mov r0, #0x81
+ lsl r0, r0, #0x2
+ add r0, r4, r0
+ bl FUN_02019220
+ mov r0, #0x79
+ lsl r0, r0, #0x2
+ add r0, r4, r0
+ bl FUN_02019220
+ mov r0, #0x8d
+ lsl r0, r0, #0x2
+ add r0, r4, r0
+ bl FUN_02019220
+ mov r0, #0x91
+ lsl r0, r0, #0x2
+ ldr r0, [r4, r0]
+ bl FUN_02019220
+ add r0, r4, #0x0
+ mov r1, #0xb4
+ bl FUN_0207D924
+ add r0, r4, #0x0
+ mov r1, #0x1
+ bl FUN_0207C6F0
+ mov r1, #0x8d
+ lsl r1, r1, #0x2
+ add r0, r4, #0x0
+ add r1, r4, r1
+ bl FUN_0207CFAC
+ mov r0, #0x1
+ pop {r4, pc}
+_0207C072:
+ mov r0, #0x0
+ pop {r4, pc}
+ nop
+_0207C078: .word 0x0000068E
+
+ thumb_func_start FUN_0207C07C
+FUN_0207C07C: ; 0x0207C07C
+ push {r4-r6, lr}
+ ldr r2, _0207C1D0 ; =0x00000697
+ add r5, r0, #0x0
+ add r3, r2, #0x1
+ ldrb r0, [r5, r2]
+ ldrb r4, [r5, r3]
+ cmp r1, #0x1
+ bne _0207C0A8
+ mov r1, #0x3
+ and r1, r0
+ cmp r1, #0x3
+ beq _0207C0B6
+ lsl r1, r4, #0x2
+ add r1, r0, r1
+ add r3, r1, #0x1
+ add r1, r2, #0x2
+ ldrb r1, [r5, r1]
+ cmp r3, r1
+ bge _0207C14A
+ add r1, r0, #0x1
+ strb r1, [r5, r2]
+ b _0207C14A
+_0207C0A8:
+ mov r3, #0x0
+ mvn r3, r3
+ cmp r1, r3
+ bne _0207C0BE
+ mov r1, #0x3
+ tst r1, r0
+ bne _0207C0B8
+_0207C0B6:
+ b _0207C1CE
+_0207C0B8:
+ sub r1, r0, #0x1
+ strb r1, [r5, r2]
+ b _0207C14A
+_0207C0BE:
+ cmp r1, #0x4
+ bne _0207C12C
+ cmp r0, #0x4
+ bhs _0207C0F2
+ add r1, r2, #0x2
+ ldrb r3, [r5, r1]
+ lsl r1, r4, #0x2
+ add r1, r0, r1
+ add r1, r1, #0x4
+ cmp r1, r3
+ blt _0207C0EC
+ cmp r3, #0x4
+ bls _0207C14A
+ lsr r1, r3, #0x1f
+ lsl r6, r3, #0x1e
+ sub r6, r6, r1
+ mov r3, #0x1e
+ ror r6, r3
+ add r1, r1, r6
+ beq _0207C14A
+ add r1, r1, #0x3
+ strb r1, [r5, r2]
+ b _0207C14A
+_0207C0EC:
+ add r1, r0, #0x4
+ strb r1, [r5, r2]
+ b _0207C14A
+_0207C0F2:
+ add r1, r2, #0x2
+ ldrb r1, [r5, r1]
+ lsl r3, r4, #0x2
+ add r3, #0x8
+ cmp r3, r1
+ bge _0207C14A
+ add r1, r2, #0x1
+ ldrb r1, [r5, r1]
+ add r6, r2, #0x1
+ add r3, r1, #0x1
+ add r1, r2, #0x1
+ strb r3, [r5, r1]
+ add r1, r2, #0x2
+ ldrb r6, [r5, r6]
+ ldrb r3, [r5, r1]
+ ldrb r1, [r5, r2]
+ lsl r6, r6, #0x2
+ add r1, r1, r6
+ cmp r1, r3
+ blt _0207C14A
+ lsr r1, r3, #0x1f
+ lsl r6, r3, #0x1e
+ sub r6, r6, r1
+ mov r3, #0x1e
+ ror r6, r3
+ add r1, r1, r6
+ add r1, r1, #0x3
+ strb r1, [r5, r2]
+ b _0207C14A
+_0207C12C:
+ sub r3, r3, #0x3
+ cmp r1, r3
+ bne _0207C14A
+ cmp r0, #0x4
+ blo _0207C13C
+ sub r1, r0, #0x4
+ strb r1, [r5, r2]
+ b _0207C14A
+_0207C13C:
+ cmp r4, #0x0
+ beq _0207C14A
+ add r1, r2, #0x1
+ ldrb r1, [r5, r1]
+ sub r3, r1, #0x1
+ add r1, r2, #0x1
+ strb r3, [r5, r1]
+_0207C14A:
+ ldr r1, _0207C1D0 ; =0x00000697
+ ldrb r2, [r5, r1]
+ cmp r0, r2
+ bne _0207C15A
+ add r0, r1, #0x1
+ ldrb r0, [r5, r0]
+ cmp r4, r0
+ beq _0207C160
+_0207C15A:
+ ldr r0, _0207C1D4 ; =0x000005DC
+ bl FUN_020054C8
+_0207C160:
+ ldr r1, _0207C1D0 ; =0x00000697
+ add r0, r5, #0x0
+ ldrb r1, [r5, r1]
+ bl FUN_0207C1E8
+ ldr r1, _0207C1D8 ; =0x0000069A
+ strb r0, [r5, r1]
+ add r0, r5, #0x0
+ bl FUN_0207D3C4
+ ldr r0, _0207C1DC ; =0x00000698
+ ldrb r0, [r5, r0]
+ cmp r4, r0
+ beq _0207C182
+ add r0, r5, #0x0
+ bl FUN_0207D364
+_0207C182:
+ add r0, r5, #0x0
+ bl FUN_0207E9A0
+ add r0, r5, #0x0
+ bl FUN_0207E840
+ ldr r0, _0207C1DC ; =0x00000698
+ ldrb r0, [r5, r0]
+ cmp r0, #0x0
+ ldr r0, _0207C1E0 ; =0x00000518
+ beq _0207C1A2
+ ldr r0, [r5, r0]
+ mov r1, #0x1
+ bl FUN_020200A0
+ b _0207C1AA
+_0207C1A2:
+ ldr r0, [r5, r0]
+ mov r1, #0x0
+ bl FUN_020200A0
+_0207C1AA:
+ ldr r0, _0207C1DC ; =0x00000698
+ ldrb r1, [r5, r0]
+ add r0, r0, #0x1
+ ldrb r0, [r5, r0]
+ lsl r1, r1, #0x2
+ add r1, #0x8
+ cmp r1, r0
+ ldr r0, _0207C1E4 ; =0x0000051C
+ bge _0207C1C6
+ ldr r0, [r5, r0]
+ mov r1, #0x1
+ bl FUN_020200A0
+ pop {r4-r6, pc}
+_0207C1C6:
+ ldr r0, [r5, r0]
+ mov r1, #0x0
+ bl FUN_020200A0
+_0207C1CE:
+ pop {r4-r6, pc}
+ .balign 4
+_0207C1D0: .word 0x00000697
+_0207C1D4: .word 0x000005DC
+_0207C1D8: .word 0x0000069A
+_0207C1DC: .word 0x00000698
+_0207C1E0: .word 0x00000518
+_0207C1E4: .word 0x0000051C
+
+ thumb_func_start FUN_0207C1E8
+FUN_0207C1E8: ; 0x0207C1E8
+ push {r4-r7}
+ ldr r2, _0207C238 ; =0x00000698
+ mov r6, #0x0
+ ldrb r2, [r0, r2]
+ add r4, r6, #0x0
+ lsl r2, r2, #0x2
+ add r1, r1, r2
+ lsl r1, r1, #0x18
+ lsr r5, r1, #0x18
+ mov r1, #0xa9
+ mov r2, #0x1
+ lsl r1, r1, #0x2
+_0207C200:
+ mov r3, #0x1f
+ add r7, r4, #0x0
+ and r7, r3
+ add r3, r2, #0x0
+ lsl r3, r7
+ lsr r7, r4, #0x5
+ lsl r7, r7, #0x2
+ add r7, r0, r7
+ ldr r7, [r7, r1]
+ tst r3, r7
+ beq _0207C228
+ cmp r5, r6
+ bne _0207C222
+ lsl r0, r4, #0x18
+ lsr r0, r0, #0x18
+ pop {r4-r7}
+ bx lr
+_0207C222:
+ add r3, r6, #0x1
+ lsl r3, r3, #0x18
+ lsr r6, r3, #0x18
+_0207C228:
+ add r3, r4, #0x1
+ lsl r3, r3, #0x10
+ lsr r4, r3, #0x10
+ cmp r4, #0x50
+ blo _0207C200
+ mov r0, #0x0
+ pop {r4-r7}
+ bx lr
+ .balign 4
+_0207C238: .word 0x00000698
+
+ thumb_func_start FUN_0207C23C
+FUN_0207C23C: ; 0x0207C23C
+ push {r4, lr}
+ sub sp, #0x8
+ ldr r1, _0207C29C ; =0x0000029A
+ add r4, r0, #0x0
+ ldrb r0, [r4, r1]
+ cmp r0, #0xff
+ bne _0207C28E
+ mov r0, #0x0
+ sub r1, #0xda
+ mov r2, #0x13
+ bl FUN_02002EEC
+ mov r0, #0x93
+ lsl r0, r0, #0x2
+ ldr r0, [r4, r0]
+ ldr r0, [r0, #0x4]
+ bl FUN_02025084
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x0]
+ mov r0, #0x13
+ str r0, [sp, #0x4]
+ ldr r0, [r4, #0x0]
+ ldr r2, _0207C2A0 ; =0x000003E2
+ mov r1, #0x1
+ mov r3, #0xd
+ bl FUN_0200CD68
+ add r0, r4, #0x0
+ mov r1, #0xff
+ bl FUN_0207EECC
+ mov r0, #0x93
+ lsl r0, r0, #0x2
+ ldr r0, [r4, r0]
+ mov r1, #0x1
+ strb r1, [r0, #0x17]
+ add sp, #0x8
+ mov r0, #0x11
+ pop {r4, pc}
+_0207C28E:
+ sub r1, #0x4e
+ ldr r0, [r4, r1]
+ mov r2, #0x0
+ strb r2, [r0, #0x17]
+ mov r0, #0x12
+ add sp, #0x8
+ pop {r4, pc}
+ .balign 4
+_0207C29C: .word 0x0000029A
+_0207C2A0: .word 0x000003E2
+
+ thumb_func_start FUN_0207C2A4
+FUN_0207C2A4: ; 0x0207C2A4
+ push {r3-r5, lr}
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_0202398C
+ str r0, [r5, #0x8]
+ add r0, r4, #0x0
+ bl FUN_020239BC
+ str r0, [r5, #0xc]
+ add r0, r4, #0x0
+ bl FUN_020239CC
+ strb r0, [r5, #0x10]
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_0207C2C4
+FUN_0207C2C4: ; 0x0207C2C4
+ mov r0, #0x40
+ bx lr
+
+ thumb_func_start FUN_0207C2C8
+FUN_0207C2C8: ; 0x0207C2C8
+ mov r0, #0x41
+ bx lr
+
+ thumb_func_start FUN_0207C2CC
+FUN_0207C2CC: ; 0x0207C2CC
+ mov r0, #0x3f
+ bx lr
+
+ thumb_func_start FUN_0207C2D0
+FUN_0207C2D0: ; 0x0207C2D0
+ mov r0, #0x3e
+ bx lr
+
+ thumb_func_start FUN_0207C2D4
+FUN_0207C2D4: ; 0x0207C2D4
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ mov r1, #0x9f
+ mov r2, #0x0
+ bl FUN_020671BC
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ mov r1, #0xa2
+ mov r2, #0x0
+ bl FUN_020671BC
+ cmp r0, #0x0
+ bne _0207C2F4
+ mov r0, #0x6
+ pop {r3-r5, pc}
+_0207C2F4:
+ mov r0, #0x88
+ tst r0, r4
+ beq _0207C2FE
+ mov r0, #0x4
+ pop {r3-r5, pc}
+_0207C2FE:
+ mov r0, #0x7
+ add r1, r4, #0x0
+ tst r1, r0
+ beq _0207C30A
+ mov r0, #0x3
+ pop {r3-r5, pc}
+_0207C30A:
+ mov r1, #0x10
+ tst r1, r4
+ beq _0207C314
+ mov r0, #0x5
+ pop {r3-r5, pc}
+_0207C314:
+ mov r1, #0x20
+ tst r1, r4
+ beq _0207C31E
+ mov r0, #0x2
+ pop {r3-r5, pc}
+_0207C31E:
+ mov r1, #0x40
+ tst r1, r4
+ beq _0207C326
+ mov r0, #0x1
+_0207C326:
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_0207C328
+FUN_0207C328: ; 0x0207C328
+ push {r3-r7, lr}
+ sub sp, #0x50
+ add r4, r0, #0x0
+ mov r0, #0x10
+ mov r1, #0x1
+ bl FUN_0201E6E4
+ mov r0, #0x10
+ mov r1, #0x1
+ bl FUN_0201E74C
+ mov r0, #0x20
+ mov r1, #0x13
+ bl FUN_0201C24C
+ mov r0, #0x13
+ bl FUN_0200BB14
+ mov r1, #0x1
+ lsl r1, r1, #0xa
+ str r0, [r4, r1]
+ ldr r0, [r4, r1]
+ bl FUN_0200BB34
+ ldr r7, _0207C3C4 ; =0x00000404
+ add r2, sp, #0x30
+ ldr r3, _0207C3C8 ; =0x020FA73C
+ str r0, [r4, r7]
+ ldmia r3!, {r0-r1}
+ add r6, r2, #0x0
+ 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, _0207C3CC ; =0x020FA70C
+ stmia r2!, {r0-r1}
+ add r3, sp, #0x1c
+ ldmia r5!, {r0-r1}
+ add r2, r3, #0x0
+ stmia r3!, {r0-r1}
+ ldmia r5!, {r0-r1}
+ stmia r3!, {r0-r1}
+ ldr r0, [r5, #0x0]
+ add r1, r6, #0x0
+ str r0, [r3, #0x0]
+ sub r0, r7, #0x4
+ ldr r0, [r4, r0]
+ mov r3, #0x20
+ bl FUN_0200BB6C
+ sub r1, r7, #0x4
+ ldr r0, [r4, r1]
+ add r1, r1, #0x4
+ ldr r1, [r4, r1]
+ mov r2, #0x4d
+ bl FUN_0200BBF0
+ ldr r5, _0207C3D0 ; =0x020FA720
+ add r3, sp, #0x0
+ ldmia r5!, {r0-r1}
+ add r2, r3, #0x0
+ stmia r3!, {r0-r1}
+ ldmia r5!, {r0-r1}
+ stmia r3!, {r0-r1}
+ ldmia r5!, {r0-r1}
+ stmia r3!, {r0-r1}
+ ldr r0, [r5, #0x0]
+ sub r1, r7, #0x4
+ str r0, [r3, #0x0]
+ ldr r0, [r4, r1]
+ add r1, r1, #0x4
+ ldr r1, [r4, r1]
+ bl FUN_0200BD20
+ add sp, #0x50
+ pop {r3-r7, pc}
+ .balign 4
+_0207C3C4: .word 0x00000404
+_0207C3C8: .word 0x020FA73C
+_0207C3CC: .word 0x020FA70C
+_0207C3D0: .word 0x020FA720
+
+ thumb_func_start FUN_0207C3D4
+FUN_0207C3D4: ; 0x0207C3D4
+ push {r4, lr}
+ mov r1, #0x1
+ add r4, r0, #0x0
+ lsl r1, r1, #0xa
+ ldr r0, [r4, r1]
+ add r1, r1, #0x4
+ ldr r1, [r4, r1]
+ bl FUN_0200BCE0
+ mov r0, #0x1
+ lsl r0, r0, #0xa
+ ldr r0, [r4, r0]
+ bl FUN_0200BD04
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0207C3F4
+FUN_0207C3F4: ; 0x0207C3F4
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r0, _0207C438 ; =0x0000045C
+ mov r1, #0x1
+ ldr r0, [r4, r0]
+ lsl r1, r1, #0xc
+ bl FUN_020201E4
+ mov r0, #0x46
+ lsl r0, r0, #0x4
+ mov r1, #0x1
+ ldr r0, [r4, r0]
+ lsl r1, r1, #0xc
+ bl FUN_020201E4
+ ldr r0, _0207C43C ; =0x000004AC
+ mov r1, #0x1
+ ldr r0, [r4, r0]
+ lsl r1, r1, #0xc
+ bl FUN_020201E4
+ ldr r0, _0207C440 ; =0x00000518
+ mov r1, #0x1
+ ldr r0, [r4, r0]
+ lsl r1, r1, #0xc
+ bl FUN_020201E4
+ ldr r0, _0207C444 ; =0x0000051C
+ mov r1, #0x1
+ ldr r0, [r4, r0]
+ lsl r1, r1, #0xc
+ bl FUN_020201E4
+ pop {r4, pc}
+ .balign 4
+_0207C438: .word 0x0000045C
+_0207C43C: .word 0x000004AC
+_0207C440: .word 0x00000518
+_0207C444: .word 0x0000051C
+
+ thumb_func_start FUN_0207C448
+FUN_0207C448: ; 0x0207C448
+ push {r3-r7, lr}
+ ldr r6, _0207C550 ; =0x020FA784
+ ldr r7, _0207C554 ; =0x00000408
+ add r5, r0, #0x0
+ mov r4, #0x0
+_0207C452:
+ mov r0, #0x1
+ ldr r1, _0207C558 ; =0x00000404
+ lsl r0, r0, #0xa
+ mov r2, #0x28
+ mul r2, r4
+ ldr r0, [r5, r0]
+ ldr r1, [r5, r1]
+ add r2, r6, r2
+ bl FUN_0200BE38
+ lsl r1, r4, #0x2
+ add r1, r5, r1
+ str r0, [r1, r7]
+ add r0, r4, #0x1
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+ cmp r4, #0x4d
+ blo _0207C452
+ add r0, r5, #0x0
+ bl FUN_0207C7EC
+ ldr r0, _0207C55C ; =0x0000042C
+ mov r1, #0x0
+ ldr r0, [r5, r0]
+ bl FUN_020200A0
+ mov r0, #0x43
+ lsl r0, r0, #0x4
+ ldr r0, [r5, r0]
+ mov r1, #0x0
+ bl FUN_020200A0
+ ldr r0, _0207C560 ; =0x000004AC
+ mov r1, #0x0
+ ldr r0, [r5, r0]
+ bl FUN_020200A0
+ mov r0, #0x4b
+ lsl r0, r0, #0x4
+ ldr r0, [r5, r0]
+ mov r1, #0x0
+ bl FUN_020200A0
+ ldr r0, _0207C564 ; =0x000004B4
+ mov r1, #0x0
+ ldr r0, [r5, r0]
+ bl FUN_020200A0
+ ldr r0, _0207C568 ; =0x000004B8
+ mov r1, #0x0
+ ldr r0, [r5, r0]
+ bl FUN_020200A0
+ ldr r0, _0207C56C ; =0x000004BC
+ mov r1, #0x0
+ ldr r0, [r5, r0]
+ bl FUN_020200A0
+ mov r0, #0x13
+ lsl r0, r0, #0x6
+ ldr r0, [r5, r0]
+ mov r1, #0x0
+ bl FUN_020200A0
+ ldr r0, _0207C570 ; =0x000004C4
+ mov r1, #0x0
+ ldr r0, [r5, r0]
+ bl FUN_020200A0
+ ldr r0, _0207C574 ; =0x000004C8
+ mov r1, #0x0
+ ldr r0, [r5, r0]
+ bl FUN_020200A0
+ ldr r0, _0207C578 ; =0x000004CC
+ mov r1, #0x0
+ ldr r0, [r5, r0]
+ bl FUN_020200A0
+ mov r0, #0x4d
+ lsl r0, r0, #0x4
+ ldr r0, [r5, r0]
+ mov r1, #0x0
+ bl FUN_020200A0
+ ldr r0, _0207C57C ; =0x000004D4
+ mov r1, #0x0
+ ldr r0, [r5, r0]
+ bl FUN_020200A0
+ ldr r0, _0207C580 ; =0x000004D8
+ mov r1, #0x0
+ ldr r0, [r5, r0]
+ bl FUN_020200A0
+ ldr r0, _0207C584 ; =0x00000524
+ mov r1, #0x0
+ ldr r0, [r5, r0]
+ bl FUN_020200A0
+ ldr r0, _0207C588 ; =0x00000528
+ mov r1, #0x0
+ ldr r0, [r5, r0]
+ bl FUN_020200A0
+ ldr r0, _0207C58C ; =0x0000052C
+ mov r1, #0x0
+ ldr r0, [r5, r0]
+ bl FUN_020200A0
+ mov r0, #0x53
+ lsl r0, r0, #0x4
+ ldr r0, [r5, r0]
+ mov r1, #0x0
+ bl FUN_020200A0
+ ldr r0, _0207C590 ; =0x00000534
+ mov r1, #0x0
+ ldr r0, [r5, r0]
+ bl FUN_020200A0
+ ldr r0, _0207C594 ; =0x00000538
+ mov r1, #0x0
+ ldr r0, [r5, r0]
+ bl FUN_020200A0
+ pop {r3-r7, pc}
+ .balign 4
+_0207C550: .word 0x020FA784
+_0207C554: .word 0x00000408
+_0207C558: .word 0x00000404
+_0207C55C: .word 0x0000042C
+_0207C560: .word 0x000004AC
+_0207C564: .word 0x000004B4
+_0207C568: .word 0x000004B8
+_0207C56C: .word 0x000004BC
+_0207C570: .word 0x000004C4
+_0207C574: .word 0x000004C8
+_0207C578: .word 0x000004CC
+_0207C57C: .word 0x000004D4
+_0207C580: .word 0x000004D8
+_0207C584: .word 0x00000524
+_0207C588: .word 0x00000528
+_0207C58C: .word 0x0000052C
+_0207C590: .word 0x00000534
+_0207C594: .word 0x00000538
+
+ thumb_func_start FUN_0207C598
+FUN_0207C598: ; 0x0207C598
+ push {r4-r6, lr}
+ mov r5, #0x0
+ add r6, r0, #0x0
+ add r4, r5, #0x0
+_0207C5A0:
+ add r0, r6, #0x0
+ add r1, r4, #0x0
+ bl FUN_0207B070
+ cmp r0, #0x0
+ beq _0207C5B2
+ add r0, r5, #0x1
+ lsl r0, r0, #0x18
+ lsr r5, r0, #0x18
+_0207C5B2:
+ add r0, r4, #0x1
+ lsl r0, r0, #0x18
+ lsr r4, r0, #0x18
+ cmp r4, #0x8
+ blo _0207C5A0
+ sub r0, r5, #0x1
+ lsl r1, r0, #0x4
+ add r1, #0x18
+ lsr r0, r1, #0x1f
+ add r0, r1, r0
+ asr r1, r0, #0x1
+ mov r0, #0xbc
+ sub r0, r0, r1
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_0207C5D4
+FUN_0207C5D4: ; 0x0207C5D4
+ push {r3-r7, lr}
+ sub sp, #0x10
+ add r7, r0, #0x0
+ bl FUN_0207C598
+ str r0, [sp, #0x4]
+ ldr r0, _0207C69C ; =0x00000408
+ mov r5, #0x0
+ add r4, r7, r0
+ ldr r0, [sp, #0x4]
+ str r5, [sp, #0x8]
+ str r0, [sp, #0x0]
+ add r0, #0x18
+ str r0, [sp, #0x0]
+_0207C5F0:
+ add r0, r7, #0x0
+ add r1, r5, #0x0
+ bl FUN_0207B070
+ cmp r0, #0x0
+ bne _0207C608
+ lsl r0, r5, #0x2
+ ldr r0, [r4, r0]
+ mov r1, #0x0
+ bl FUN_020200A0
+ b _0207C68E
+_0207C608:
+ lsl r6, r5, #0x2
+ ldr r0, [r4, r6]
+ bl FUN_020201DC
+ lsl r0, r0, #0x10
+ lsr r1, r0, #0x10
+ ldr r0, _0207C6A0 ; =0x0000068C
+ ldrsb r0, [r7, r0]
+ cmp r0, r5
+ bne _0207C62A
+ cmp r1, #0x8
+ bhs _0207C636
+ ldr r0, [r4, r6]
+ add r1, #0x8
+ bl FUN_02020130
+ b _0207C636
+_0207C62A:
+ cmp r1, #0x8
+ blo _0207C636
+ ldr r0, [r4, r6]
+ sub r1, #0x8
+ bl FUN_02020130
+_0207C636:
+ add r1, sp, #0xc
+ ldr r0, [r4, r6]
+ add r1, #0x2
+ add r2, sp, #0xc
+ bl FUN_0200C75C
+ ldr r0, _0207C6A0 ; =0x0000068C
+ ldrsb r0, [r7, r0]
+ cmp r0, r5
+ blt _0207C652
+ ldr r0, [sp, #0x8]
+ lsl r1, r0, #0x4
+ ldr r0, [sp, #0x4]
+ b _0207C65A
+_0207C652:
+ ldr r0, [sp, #0x8]
+ sub r0, r0, #0x1
+ lsl r1, r0, #0x4
+ ldr r0, [sp, #0x0]
+_0207C65A:
+ add r0, r0, r1
+ lsl r0, r0, #0x10
+ asr r1, r0, #0x10
+ add r0, sp, #0xc
+ strh r1, [r0, #0x2]
+ lsl r0, r5, #0x2
+ add r1, r7, r0
+ ldr r0, _0207C69C ; =0x00000408
+ add r2, sp, #0xc
+ ldr r0, [r1, r0]
+ mov r1, #0x2
+ ldrsh r1, [r2, r1]
+ add r3, r2, #0x0
+ mov r2, #0x0
+ ldrsh r2, [r3, r2]
+ bl FUN_0200C6E4
+ ldr r0, [r4, r6]
+ mov r1, #0x1
+ bl FUN_020200A0
+ ldr r0, [sp, #0x8]
+ add r0, r0, #0x1
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x8]
+_0207C68E:
+ add r0, r5, #0x1
+ lsl r0, r0, #0x18
+ lsr r5, r0, #0x18
+ cmp r5, #0x8
+ blo _0207C5F0
+ add sp, #0x10
+ pop {r3-r7, pc}
+ .balign 4
+_0207C69C: .word 0x00000408
+_0207C6A0: .word 0x0000068C
+
+ thumb_func_start FUN_0207C6A4
+FUN_0207C6A4: ; 0x0207C6A4
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ bl FUN_0207B09C
+ cmp r0, #0x1
+ bhi _0207C6B8
+ add r0, r5, #0x0
+ mov r1, #0x0
+ bl FUN_0207C6F0
+_0207C6B8:
+ add r0, r5, #0x0
+ bl FUN_0207C598
+ add r4, r0, #0x0
+ ldr r0, _0207C6EC ; =0x0000045C
+ add r1, r4, #0x0
+ sub r1, #0xc
+ lsl r1, r1, #0x10
+ ldr r0, [r5, r0]
+ asr r1, r1, #0x10
+ mov r2, #0x18
+ bl FUN_0200C6E4
+ mov r1, #0x5d
+ mov r0, #0x46
+ lsl r1, r1, #0x2
+ lsl r0, r0, #0x4
+ sub r1, r1, r4
+ lsl r1, r1, #0x10
+ ldr r0, [r5, r0]
+ asr r1, r1, #0x10
+ mov r2, #0x18
+ bl FUN_0200C6E4
+ pop {r3-r5, pc}
+ nop
+_0207C6EC: .word 0x0000045C
+
+ thumb_func_start FUN_0207C6F0
+FUN_0207C6F0: ; 0x0207C6F0
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ bl FUN_0207B09C
+ cmp r0, #0x1
+ bhi _0207C700
+ mov r4, #0x0
+_0207C700:
+ ldr r0, _0207C718 ; =0x0000045C
+ add r1, r4, #0x0
+ ldr r0, [r5, r0]
+ bl FUN_020200A0
+ mov r0, #0x46
+ lsl r0, r0, #0x4
+ ldr r0, [r5, r0]
+ add r1, r4, #0x0
+ bl FUN_020200A0
+ pop {r3-r5, pc}
+ .balign 4
+_0207C718: .word 0x0000045C
+
+ thumb_func_start FUN_0207C71C
+FUN_0207C71C: ; 0x0207C71C
+ push {r4, lr}
+ sub sp, #0x8
+ add r4, r0, #0x0
+ ldr r0, _0207C774 ; =0x00000263
+ ldrb r0, [r4, r0]
+ lsl r0, r0, #0x18
+ lsr r3, r0, #0x1a
+ bne _0207C730
+ mov r3, #0x15
+ b _0207C732
+_0207C730:
+ add r3, #0x14
+_0207C732:
+ mov r0, #0x0
+ mov r1, #0x1
+ str r0, [sp, #0x0]
+ lsl r1, r1, #0xa
+ str r0, [sp, #0x4]
+ ldr r0, [r4, r1]
+ add r1, r1, #0x4
+ ldr r1, [r4, r1]
+ mov r2, #0x27
+ bl FUN_0200C9D8
+ mov r0, #0x0
+ str r0, [sp, #0x0]
+ mov r0, #0x6
+ mov r1, #0x1
+ ldr r3, _0207C774 ; =0x00000263
+ str r0, [sp, #0x4]
+ ldrb r3, [r4, r3]
+ lsl r1, r1, #0xa
+ ldr r0, [r4, r1]
+ add r1, r1, #0x4
+ lsl r3, r3, #0x18
+ ldr r1, [r4, r1]
+ lsr r4, r3, #0x1a
+ ldr r3, _0207C778 ; =0x020FA6F8
+ mov r2, #0x27
+ ldrb r3, [r3, r4]
+ add r3, #0x25
+ bl FUN_0200CA0C
+ add sp, #0x8
+ pop {r4, pc}
+ nop
+_0207C774: .word 0x00000263
+_0207C778: .word 0x020FA6F8
+
+ thumb_func_start FUN_0207C77C
+FUN_0207C77C: ; 0x0207C77C
+ push {r4, lr}
+ add r4, r0, #0x0
+ mov r0, #0x2a
+ lsl r0, r0, #0x4
+ ldr r0, [r4, r0]
+ lsl r0, r0, #0x4
+ lsr r0, r0, #0x4
+ cmp r0, #0x7
+ bne _0207C7A4
+ ldr r0, _0207C7E4 ; =0x00000458
+ mov r1, #0x0
+ ldr r0, [r4, r0]
+ bl FUN_020200A0
+ ldr r0, _0207C7E8 ; =0x00000538
+ mov r1, #0x0
+ ldr r0, [r4, r0]
+ bl FUN_020200A0
+ pop {r4, pc}
+_0207C7A4:
+ cmp r0, #0x0
+ ldr r0, _0207C7E8 ; =0x00000538
+ beq _0207C7D0
+ ldr r0, [r4, r0]
+ mov r1, #0x0
+ bl FUN_020200A0
+ ldr r0, _0207C7E4 ; =0x00000458
+ mov r1, #0x1
+ ldr r0, [r4, r0]
+ bl FUN_020200A0
+ mov r1, #0x2a
+ lsl r1, r1, #0x4
+ ldr r0, _0207C7E4 ; =0x00000458
+ ldr r1, [r4, r1]
+ ldr r0, [r4, r0]
+ lsl r1, r1, #0x4
+ lsr r1, r1, #0x4
+ bl FUN_02020130
+ pop {r4, pc}
+_0207C7D0:
+ ldr r0, [r4, r0]
+ mov r1, #0x1
+ bl FUN_020200A0
+ ldr r0, _0207C7E4 ; =0x00000458
+ mov r1, #0x0
+ ldr r0, [r4, r0]
+ bl FUN_020200A0
+ pop {r4, pc}
+ .balign 4
+_0207C7E4: .word 0x00000458
+_0207C7E8: .word 0x00000538
+
+ thumb_func_start FUN_0207C7EC
+FUN_0207C7EC: ; 0x0207C7EC
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ bl FUN_0207CA44
+ mov r6, #0xa1
+ mov r4, #0x0
+ mov r7, #0x3
+ lsl r6, r6, #0x2
+_0207C7FC:
+ lsl r0, r4, #0x1
+ add r0, r5, r0
+ ldrh r0, [r0, r6]
+ cmp r0, #0x0
+ beq _0207C826
+ add r1, r7, #0x0
+ bl FUN_0206AB18
+ add r3, r0, #0x0
+ add r1, r4, #0x0
+ add r1, #0xd
+ add r2, r4, #0x5
+ lsl r1, r1, #0x18
+ lsl r2, r2, #0x18
+ lsl r3, r3, #0x18
+ add r0, r5, #0x0
+ lsr r1, r1, #0x18
+ lsr r2, r2, #0x18
+ lsr r3, r3, #0x18
+ bl FUN_0207CA6C
+_0207C826:
+ add r0, r4, #0x1
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+ cmp r4, #0x4
+ blo _0207C7FC
+ add r0, r5, #0x0
+ bl FUN_0207CFEC
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_0207C838
+FUN_0207C838: ; 0x0207C838
+ push {r3-r7, lr}
+ ldr r6, _0207CA2C ; =0x00000408
+ add r5, r0, #0x0
+ mov r4, #0xb
+ mov r7, #0x0
+_0207C842:
+ lsl r0, r4, #0x2
+ add r0, r5, r0
+ ldr r0, [r0, r6]
+ add r1, r7, #0x0
+ bl FUN_0200C63C
+ add r0, r4, #0x1
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+ cmp r4, #0x13
+ bls _0207C842
+ ldr r0, _0207CA30 ; =0x0000068C
+ ldrsb r0, [r5, r0]
+ cmp r0, #0x0
+ beq _0207C86C
+ cmp r0, #0x3
+ beq _0207C8B4
+ cmp r0, #0x5
+ bne _0207C86A
+ b _0207C96E
+_0207C86A:
+ pop {r3-r7, pc}
+_0207C86C:
+ ldr r0, _0207CA34 ; =0x00000434
+ mov r1, #0x1
+ ldr r0, [r5, r0]
+ bl FUN_0200C63C
+ mov r0, #0x26
+ lsl r0, r0, #0x4
+ ldrb r1, [r5, r0]
+ add r0, r0, #0x1
+ ldrb r0, [r5, r0]
+ cmp r1, r0
+ ldr r0, _0207CA34 ; =0x00000434
+ bne _0207C892
+ ldr r0, [r5, r0]
+ mov r1, #0xd8
+ mov r2, #0x50
+ bl FUN_0200C6E4
+ pop {r3-r7, pc}
+_0207C892:
+ ldr r0, [r5, r0]
+ mov r1, #0xc7
+ mov r2, #0x50
+ bl FUN_0200C6E4
+ ldr r0, _0207CA38 ; =0x00000438
+ mov r1, #0x1
+ ldr r0, [r5, r0]
+ bl FUN_0200C63C
+ ldr r0, _0207CA38 ; =0x00000438
+ mov r1, #0xe9
+ ldr r0, [r5, r0]
+ mov r2, #0x50
+ bl FUN_0200C6E4
+ pop {r3-r7, pc}
+_0207C8B4:
+ mov r7, #0xa1
+ mov r4, #0x0
+ lsl r7, r7, #0x2
+_0207C8BA:
+ lsl r0, r4, #0x1
+ add r0, r5, r0
+ ldrh r0, [r0, r7]
+ cmp r0, #0x0
+ beq _0207C904
+ mov r1, #0x3
+ bl FUN_0206AB18
+ add r3, r0, #0x0
+ add r1, r4, #0x0
+ add r1, #0xd
+ add r2, r4, #0x5
+ lsl r1, r1, #0x18
+ lsl r2, r2, #0x18
+ lsl r3, r3, #0x18
+ add r0, r5, #0x0
+ lsr r1, r1, #0x18
+ lsr r2, r2, #0x18
+ lsr r3, r3, #0x18
+ bl FUN_0207CA6C
+ lsl r0, r4, #0x2
+ add r6, r5, r0
+ ldr r0, _0207CA3C ; =0x0000043C
+ mov r1, #0x1
+ ldr r0, [r6, r0]
+ bl FUN_0200C63C
+ ldr r0, _0207CA3C ; =0x0000043C
+ lsl r2, r4, #0x5
+ add r2, #0x2a
+ lsl r2, r2, #0x10
+ ldr r0, [r6, r0]
+ mov r1, #0x97
+ asr r2, r2, #0x10
+ bl FUN_0200C6E4
+_0207C904:
+ add r0, r4, #0x1
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+ cmp r4, #0x4
+ blo _0207C8BA
+ mov r0, #0x93
+ lsl r0, r0, #0x2
+ ldr r0, [r5, r0]
+ ldrh r0, [r0, #0x18]
+ cmp r0, #0x0
+ beq _0207C946
+ mov r1, #0x3
+ bl FUN_0206AB18
+ add r3, r0, #0x0
+ lsl r3, r3, #0x18
+ add r0, r5, #0x0
+ mov r1, #0x11
+ mov r2, #0x9
+ lsr r3, r3, #0x18
+ bl FUN_0207CA6C
+ ldr r0, _0207CA40 ; =0x0000044C
+ mov r1, #0x1
+ ldr r0, [r5, r0]
+ bl FUN_0200C63C
+ ldr r0, _0207CA40 ; =0x0000044C
+ mov r1, #0x97
+ ldr r0, [r5, r0]
+ mov r2, #0xaa
+ bl FUN_0200C6E4
+_0207C946:
+ ldr r0, _0207CA34 ; =0x00000434
+ mov r1, #0x3f
+ ldr r0, [r5, r0]
+ mov r2, #0x34
+ bl FUN_0200C6E4
+ ldr r0, _0207CA38 ; =0x00000438
+ mov r1, #0x61
+ ldr r0, [r5, r0]
+ mov r2, #0x34
+ bl FUN_0200C6E4
+ mov r0, #0x45
+ lsl r0, r0, #0x4
+ ldr r0, [r5, r0]
+ mov r1, #0x6c
+ mov r2, #0x48
+ bl FUN_0200C6E4
+ pop {r3-r7, pc}
+_0207C96E:
+ mov r7, #0xa1
+ mov r4, #0x0
+ lsl r7, r7, #0x2
+_0207C974:
+ lsl r0, r4, #0x1
+ add r0, r5, r0
+ ldrh r0, [r0, r7]
+ cmp r0, #0x0
+ beq _0207C9C0
+ mov r1, #0xb
+ bl FUN_0206AB18
+ add r3, r0, #0x0
+ add r1, r4, #0x0
+ add r1, #0xd
+ add r2, r4, #0x5
+ add r3, #0x12
+ lsl r1, r1, #0x18
+ lsl r2, r2, #0x18
+ lsl r3, r3, #0x18
+ add r0, r5, #0x0
+ lsr r1, r1, #0x18
+ lsr r2, r2, #0x18
+ lsr r3, r3, #0x18
+ bl FUN_0207CA6C
+ lsl r0, r4, #0x2
+ add r6, r5, r0
+ ldr r0, _0207CA3C ; =0x0000043C
+ mov r1, #0x1
+ ldr r0, [r6, r0]
+ bl FUN_0200C63C
+ ldr r0, _0207CA3C ; =0x0000043C
+ lsl r2, r4, #0x5
+ add r2, #0x2a
+ lsl r2, r2, #0x10
+ ldr r0, [r6, r0]
+ mov r1, #0x97
+ asr r2, r2, #0x10
+ bl FUN_0200C6E4
+_0207C9C0:
+ add r0, r4, #0x1
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+ cmp r4, #0x4
+ blo _0207C974
+ mov r0, #0x93
+ lsl r0, r0, #0x2
+ ldr r0, [r5, r0]
+ ldrh r0, [r0, #0x18]
+ cmp r0, #0x0
+ beq _0207CA04
+ mov r1, #0xb
+ bl FUN_0206AB18
+ add r3, r0, #0x0
+ add r3, #0x12
+ lsl r3, r3, #0x18
+ add r0, r5, #0x0
+ mov r1, #0x11
+ mov r2, #0x9
+ lsr r3, r3, #0x18
+ bl FUN_0207CA6C
+ ldr r0, _0207CA40 ; =0x0000044C
+ mov r1, #0x1
+ ldr r0, [r5, r0]
+ bl FUN_0200C63C
+ ldr r0, _0207CA40 ; =0x0000044C
+ mov r1, #0x97
+ ldr r0, [r5, r0]
+ mov r2, #0xaa
+ bl FUN_0200C6E4
+_0207CA04:
+ ldr r0, _0207CA34 ; =0x00000434
+ mov r1, #0x3f
+ ldr r0, [r5, r0]
+ mov r2, #0x34
+ bl FUN_0200C6E4
+ ldr r0, _0207CA38 ; =0x00000438
+ mov r1, #0x61
+ ldr r0, [r5, r0]
+ mov r2, #0x34
+ bl FUN_0200C6E4
+ mov r0, #0x45
+ lsl r0, r0, #0x4
+ ldr r0, [r5, r0]
+ mov r1, #0x6c
+ mov r2, #0x48
+ bl FUN_0200C6E4
+ pop {r3-r7, pc}
+ .balign 4
+_0207CA2C: .word 0x00000408
+_0207CA30: .word 0x0000068C
+_0207CA34: .word 0x00000434
+_0207CA38: .word 0x00000438
+_0207CA3C: .word 0x0000043C
+_0207CA40: .word 0x0000044C
+
+ thumb_func_start FUN_0207CA44
+FUN_0207CA44: ; 0x0207CA44
+ push {r4, lr}
+ mov r3, #0x26
+ add r4, r0, #0x0
+ lsl r3, r3, #0x4
+ ldrb r3, [r4, r3]
+ mov r1, #0xb
+ mov r2, #0x3
+ bl FUN_0207CA6C
+ ldr r3, _0207CA68 ; =0x00000261
+ add r0, r4, #0x0
+ ldrb r3, [r4, r3]
+ mov r1, #0xc
+ mov r2, #0x4
+ bl FUN_0207CA6C
+ pop {r4, pc}
+ nop
+_0207CA68: .word 0x00000261
+
+ thumb_func_start FUN_0207CA6C
+FUN_0207CA6C: ; 0x0207CA6C
+ push {r4-r7, lr}
+ sub sp, #0xc
+ add r7, r3, #0x0
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ add r6, r2, #0x0
+ bl FUN_0206E12C
+ str r0, [sp, #0x8]
+ add r0, r7, #0x0
+ bl FUN_0206E0F0
+ add r3, r0, #0x0
+ mov r0, #0x1
+ str r0, [sp, #0x0]
+ ldr r1, _0207CAB4 ; =0x00000404
+ str r6, [sp, #0x4]
+ lsl r0, r0, #0xa
+ ldr r0, [r5, r0]
+ ldr r1, [r5, r1]
+ ldr r2, [sp, #0x8]
+ bl FUN_0200C9D8
+ add r0, r7, #0x0
+ bl FUN_0206E114
+ add r2, r0, #0x0
+ lsl r0, r4, #0x2
+ add r1, r5, r0
+ ldr r0, _0207CAB8 ; =0x00000408
+ ldr r0, [r1, r0]
+ add r1, r2, #0x3
+ bl FUN_0200C664
+ add sp, #0xc
+ pop {r4-r7, pc}
+ .balign 4
+_0207CAB4: .word 0x00000404
+_0207CAB8: .word 0x00000408
+
+ thumb_func_start FUN_0207CABC
+FUN_0207CABC: ; 0x0207CABC
+ push {r3-r7, lr}
+ sub sp, #0x8
+ add r5, r0, #0x0
+ add r0, r1, #0x0
+ ldrb r0, [r0, #0x0]
+ str r1, [sp, #0x0]
+ str r2, [sp, #0x4]
+ lsl r0, r0, #0x5
+ add r0, #0x2a
+ lsl r0, r0, #0x10
+ add r4, r3, #0x0
+ asr r7, r0, #0x10
+ mov r6, #0x0
+_0207CAD6:
+ ldr r0, _0207CB04 ; =0x0000043C
+ ldr r1, [sp, #0x4]
+ ldr r0, [r5, r0]
+ add r2, r4, #0x0
+ bl FUN_0200C75C
+ mov r0, #0x0
+ ldrsh r0, [r4, r0]
+ cmp r7, r0
+ bne _0207CAF2
+ ldr r0, [sp, #0x0]
+ add sp, #0x8
+ strb r6, [r0, #0x0]
+ pop {r3-r7, pc}
+_0207CAF2:
+ add r0, r6, #0x1
+ lsl r0, r0, #0x10
+ asr r6, r0, #0x10
+ add r5, r5, #0x4
+ cmp r6, #0x4
+ blt _0207CAD6
+ add sp, #0x8
+ pop {r3-r7, pc}
+ nop
+_0207CB04: .word 0x0000043C
+
+ thumb_func_start FUN_0207CB08
+FUN_0207CB08: ; 0x0207CB08
+ push {r0-r3}
+ push {r4, lr}
+ sub sp, #0x8
+ add r2, sp, #0x4
+ add r1, sp, #0x14
+ add r2, #0x2
+ add r3, sp, #0x4
+ add r4, r0, #0x0
+ bl FUN_0207CABC
+ add r2, sp, #0x0
+ add r0, r4, #0x0
+ add r1, sp, #0x18
+ add r2, #0x2
+ add r3, sp, #0x0
+ bl FUN_0207CABC
+ add r0, sp, #0x10
+ ldrb r0, [r0, #0x4]
+ add r3, sp, #0x0
+ mov r2, #0x0
+ add r0, #0xd
+ lsl r0, r0, #0x2
+ add r1, r4, r0
+ ldr r0, _0207CB6C ; =0x00000408
+ ldrsh r2, [r3, r2]
+ ldr r0, [r1, r0]
+ mov r1, #0x2
+ ldrsh r1, [r3, r1]
+ bl FUN_0200C6E4
+ add r0, sp, #0x10
+ ldrb r0, [r0, #0x8]
+ add r3, sp, #0x0
+ mov r2, #0x4
+ add r0, #0xd
+ lsl r0, r0, #0x2
+ add r1, r4, r0
+ ldr r0, _0207CB6C ; =0x00000408
+ ldrsh r2, [r3, r2]
+ ldr r0, [r1, r0]
+ mov r1, #0x6
+ ldrsh r1, [r3, r1]
+ bl FUN_0200C6E4
+ add sp, #0x8
+ pop {r4}
+ pop {r3}
+ add sp, #0x10
+ bx r3
+ .balign 4
+_0207CB6C: .word 0x00000408
+
+ thumb_func_start FUN_0207CB70
+FUN_0207CB70: ; 0x0207CB70
+ push {r4-r6, lr}
+ sub sp, #0x8
+ add r5, r0, #0x0
+ add r0, r1, #0x0
+ mov r1, #0x1
+ bl FUN_0206AB18
+ add r4, r0, #0x0
+ bl FUN_0206E2A8
+ add r6, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_0206E278
+ mov r1, #0x1
+ add r3, r0, #0x0
+ str r1, [sp, #0x0]
+ mov r0, #0xa
+ str r0, [sp, #0x4]
+ lsl r0, r1, #0xa
+ ldr r1, _0207CBBC ; =0x00000404
+ ldr r0, [r5, r0]
+ ldr r1, [r5, r1]
+ add r2, r6, #0x0
+ bl FUN_0200C9D8
+ add r0, r4, #0x0
+ bl FUN_0206E290
+ add r1, r0, #0x0
+ mov r0, #0x45
+ lsl r0, r0, #0x4
+ ldr r0, [r5, r0]
+ add r1, r1, #0x3
+ bl FUN_0200C664
+ add sp, #0x8
+ pop {r4-r6, pc}
+ .balign 4
+_0207CBBC: .word 0x00000404
+
+ thumb_func_start FUN_0207CBC0
+FUN_0207CBC0: ; 0x0207CBC0
+ ldr r2, _0207CBDC ; =0x0000068D
+ add r3, r0, #0x0
+ ldrb r2, [r3, r2]
+ ldr r0, _0207CBE0 ; =0x0000042C
+ mov r1, #0xc2
+ lsl r2, r2, #0x1c
+ lsr r2, r2, #0x1c
+ lsl r2, r2, #0x5
+ ldr r0, [r3, r0]
+ add r2, #0x30
+ lsl r2, r2, #0x10
+ ldr r3, _0207CBE4 ; =FUN_0200C6E4
+ asr r2, r2, #0x10
+ bx r3
+ .balign 4
+_0207CBDC: .word 0x0000068D
+_0207CBE0: .word 0x0000042C
+_0207CBE4: .word FUN_0200C6E4
+
+ thumb_func_start FUN_0207CBE8
+FUN_0207CBE8: ; 0x0207CBE8
+ push {r3-r4, lr}
+ sub sp, #0x4
+ add r4, r0, #0x0
+ ldr r0, _0207CC20 ; =0x0000042C
+ add r1, sp, #0x0
+ ldr r0, [r4, r0]
+ add r1, #0x2
+ add r2, sp, #0x0
+ bl FUN_0200C75C
+ mov r0, #0x43
+ lsl r0, r0, #0x4
+ add r3, sp, #0x0
+ mov r1, #0x2
+ mov r2, #0x0
+ ldrsh r1, [r3, r1]
+ ldrsh r2, [r3, r2]
+ ldr r0, [r4, r0]
+ bl FUN_0200C6E4
+ mov r0, #0x43
+ lsl r0, r0, #0x4
+ ldr r0, [r4, r0]
+ mov r1, #0x1
+ bl FUN_020200A0
+ add sp, #0x4
+ pop {r3-r4, pc}
+ .balign 4
+_0207CC20: .word 0x0000042C
+
+ thumb_func_start FUN_0207CC24
+FUN_0207CC24: ; 0x0207CC24
+ push {r3-r7, lr}
+ mov r2, #0x69
+ lsl r2, r2, #0x4
+ mov r1, #0x0
+ strb r1, [r0, r2]
+ add r3, r2, #0x3
+ strb r1, [r0, r3]
+ add r3, r2, #0x2
+ strb r1, [r0, r3]
+ ldr r3, _0207CC80 ; =0x0000029A
+ ldrb r3, [r0, r3]
+ cmp r3, #0x0
+ bne _0207CC44
+ add r2, r2, #0x1
+ strb r1, [r0, r2]
+ b _0207CC5A
+_0207CC44:
+ cmp r3, #0xff
+ bne _0207CC50
+ mov r3, #0xc
+ add r1, r2, #0x1
+ strb r3, [r0, r1]
+ b _0207CC5A
+_0207CC50:
+ mov r1, #0xc
+ mul r1, r3
+ asr r3, r1, #0x8
+ add r1, r2, #0x1
+ strb r3, [r0, r1]
+_0207CC5A:
+ ldr r7, _0207CC84 ; =0x00000408
+ add r5, r0, #0x0
+ mov r4, #0x1d
+ add r5, #0x74
+ add r6, r7, #0x0
+_0207CC64:
+ ldr r0, [r5, r7]
+ mov r1, #0x0
+ bl FUN_020200A0
+ ldr r0, [r5, r6]
+ mov r1, #0x0
+ bl FUN_02020208
+ add r4, r4, #0x1
+ add r5, r5, #0x4
+ cmp r4, #0x28
+ bls _0207CC64
+ pop {r3-r7, pc}
+ nop
+_0207CC80: .word 0x0000029A
+_0207CC84: .word 0x00000408
+
+ thumb_func_start FUN_0207CC88
+FUN_0207CC88: ; 0x0207CC88
+ push {r3-r7, lr}
+ add r4, r0, #0x0
+ ldr r0, _0207CE38 ; =0x0000068C
+ ldrsb r1, [r4, r0]
+ cmp r1, #0x4
+ bne _0207CC9C
+ add r1, r0, #0x5
+ ldrb r1, [r4, r1]
+ cmp r1, #0x0
+ bne _0207CC9E
+_0207CC9C:
+ b _0207CE34
+_0207CC9E:
+ add r2, r0, #0x4
+ ldrb r2, [r4, r2]
+ cmp r2, #0x4
+ bhi _0207CCCC
+ add r2, r2, r2
+ add r2, pc
+ ldrh r2, [r2, #0x6]
+ lsl r2, r2, #0x10
+ asr r2, r2, #0x10
+ add pc, r2
+_0207CCB2: ; jump table (using 16-bit offset)
+ .short _0207CCBC - _0207CCB2 - 2; case 0
+ .short _0207CCE0 - _0207CCB2 - 2; case 1
+ .short _0207CD50 - _0207CCB2 - 2; case 2
+ .short _0207CD70 - _0207CCB2 - 2; case 3
+ .short _0207CDCA - _0207CCB2 - 2; case 4
+_0207CCBC:
+ add r1, r0, #0x7
+ ldrb r1, [r4, r1]
+ add r2, r1, #0x1
+ add r1, r0, #0x7
+ strb r2, [r4, r1]
+ ldrb r1, [r4, r1]
+ cmp r1, #0x8
+ beq _0207CCCE
+_0207CCCC:
+ b _0207CDE8
+_0207CCCE:
+ mov r2, #0x1
+ add r1, r0, #0x4
+ strb r2, [r4, r1]
+ add r1, r0, #0x7
+ mov r2, #0x0
+ strb r2, [r4, r1]
+ add r0, r0, #0x6
+ strb r2, [r4, r0]
+ b _0207CDE8
+_0207CCE0:
+ add r1, r0, #0x7
+ ldrb r1, [r4, r1]
+ cmp r1, #0x0
+ bne _0207CD3E
+ add r0, r0, #0x6
+ ldrb r0, [r4, r0]
+ add r0, #0x1d
+ lsl r0, r0, #0x2
+ add r1, r4, r0
+ ldr r0, _0207CE3C ; =0x00000408
+ ldr r0, [r1, r0]
+ mov r1, #0x1
+ bl FUN_020200A0
+ ldr r0, _0207CE40 ; =0x00000692
+ ldrb r0, [r4, r0]
+ add r0, #0x1d
+ lsl r0, r0, #0x2
+ add r1, r4, r0
+ ldr r0, _0207CE3C ; =0x00000408
+ ldr r0, [r1, r0]
+ mov r1, #0x0
+ bl FUN_02020208
+ ldr r0, _0207CE40 ; =0x00000692
+ ldrb r0, [r4, r0]
+ add r0, #0x1d
+ lsl r0, r0, #0x2
+ add r1, r4, r0
+ ldr r0, _0207CE3C ; =0x00000408
+ ldr r0, [r1, r0]
+ mov r1, #0x0
+ bl FUN_02020130
+ ldr r0, _0207CE40 ; =0x00000692
+ ldrb r1, [r4, r0]
+ add r1, r1, #0x1
+ strb r1, [r4, r0]
+ sub r1, r0, #0x1
+ ldrb r2, [r4, r0]
+ ldrb r1, [r4, r1]
+ cmp r2, r1
+ bne _0207CD3E
+ mov r1, #0x2
+ sub r0, r0, #0x2
+ strb r1, [r4, r0]
+ b _0207CDE8
+_0207CD3E:
+ ldr r0, _0207CE44 ; =0x00000693
+ mov r1, #0xa
+ ldrb r0, [r4, r0]
+ add r0, r0, #0x1
+ blx _s32_div_f
+ ldr r0, _0207CE44 ; =0x00000693
+ strb r1, [r4, r0]
+ b _0207CDE8
+_0207CD50:
+ add r1, #0x1c
+ lsl r0, r1, #0x2
+ add r1, r4, r0
+ ldr r0, _0207CE3C ; =0x00000408
+ ldr r0, [r1, r0]
+ bl FUN_02020128
+ cmp r0, #0x0
+ bne _0207CDE8
+ ldr r0, _0207CE44 ; =0x00000693
+ mov r1, #0x0
+ strb r1, [r4, r0]
+ mov r1, #0x3
+ sub r0, r0, #0x3
+ strb r1, [r4, r0]
+ b _0207CDE8
+_0207CD70:
+ add r1, r0, #0x7
+ ldrb r1, [r4, r1]
+ add r2, r1, #0x1
+ add r1, r0, #0x7
+ strb r2, [r4, r1]
+ ldrb r1, [r4, r1]
+ cmp r1, #0x20
+ bne _0207CDE8
+ add r0, r0, #0x5
+ ldrb r0, [r4, r0]
+ mov r6, #0x1d
+ add r0, #0x1d
+ cmp r0, #0x1d
+ bls _0207CDBC
+ add r5, r4, #0x0
+ ldr r7, _0207CE48 ; =0x00000691
+ add r5, #0x74
+_0207CD92:
+ ldr r0, _0207CE3C ; =0x00000408
+ mov r1, #0x1
+ ldr r0, [r5, r0]
+ bl FUN_020200A0
+ ldr r0, _0207CE3C ; =0x00000408
+ mov r1, #0x0
+ ldr r0, [r5, r0]
+ bl FUN_02020208
+ ldr r0, _0207CE3C ; =0x00000408
+ mov r1, #0x0
+ ldr r0, [r5, r0]
+ bl FUN_02020130
+ ldrb r0, [r4, r7]
+ add r6, r6, #0x1
+ add r5, r5, #0x4
+ add r0, #0x1d
+ cmp r6, r0
+ blo _0207CD92
+_0207CDBC:
+ ldr r0, _0207CE44 ; =0x00000693
+ mov r1, #0x0
+ strb r1, [r4, r0]
+ mov r1, #0x4
+ sub r0, r0, #0x3
+ strb r1, [r4, r0]
+ b _0207CDE8
+_0207CDCA:
+ add r1, r0, #0x7
+ ldrb r1, [r4, r1]
+ add r2, r1, #0x1
+ add r1, r0, #0x7
+ strb r2, [r4, r1]
+ ldrb r1, [r4, r1]
+ cmp r1, #0x20
+ bne _0207CDE8
+ mov r2, #0x0
+ add r1, r0, #0x4
+ strb r2, [r4, r1]
+ add r1, r0, #0x7
+ strb r2, [r4, r1]
+ add r0, r0, #0x6
+ strb r2, [r4, r0]
+_0207CDE8:
+ ldr r0, _0207CE48 ; =0x00000691
+ mov r6, #0x1d
+ ldrb r0, [r4, r0]
+ add r0, #0x1d
+ cmp r0, #0x1d
+ bls _0207CE34
+ add r5, r4, #0x0
+ ldr r7, _0207CE3C ; =0x00000408
+ add r5, #0x74
+_0207CDFA:
+ ldr r0, [r5, r7]
+ bl FUN_02020128
+ cmp r0, #0x0
+ beq _0207CE26
+ ldr r0, _0207CE3C ; =0x00000408
+ mov r1, #0x1
+ ldr r0, [r5, r0]
+ lsl r1, r1, #0xc
+ bl FUN_020201E4
+ ldr r0, _0207CE3C ; =0x00000408
+ ldr r0, [r5, r0]
+ bl FUN_0202022C
+ cmp r0, #0x6
+ bne _0207CE26
+ ldr r0, _0207CE3C ; =0x00000408
+ mov r1, #0x0
+ ldr r0, [r5, r0]
+ bl FUN_020200A0
+_0207CE26:
+ ldr r0, _0207CE48 ; =0x00000691
+ add r6, r6, #0x1
+ ldrb r0, [r4, r0]
+ add r5, r5, #0x4
+ add r0, #0x1d
+ cmp r6, r0
+ blo _0207CDFA
+_0207CE34:
+ pop {r3-r7, pc}
+ nop
+_0207CE38: .word 0x0000068C
+_0207CE3C: .word 0x00000408
+_0207CE40: .word 0x00000692
+_0207CE44: .word 0x00000693
+_0207CE48: .word 0x00000691
+
+ thumb_func_start FUN_0207CE4C
+FUN_0207CE4C: ; 0x0207CE4C
+ push {r3-r7, lr}
+ add r6, r0, #0x0
+ mov r4, #0x0
+ add r5, r6, #0x0
+ mov r7, #0x1
+_0207CE56:
+ mov r0, #0xa7
+ lsl r0, r0, #0x2
+ ldrh r1, [r6, r0]
+ add r0, r7, #0x0
+ lsl r0, r4
+ tst r0, r1
+ ldr r0, _0207CED4 ; =0x00000464
+ beq _0207CE70
+ ldr r0, [r5, r0]
+ add r1, r7, #0x0
+ bl FUN_02020130
+ b _0207CE78
+_0207CE70:
+ ldr r0, [r5, r0]
+ mov r1, #0x0
+ bl FUN_02020130
+_0207CE78:
+ add r4, r4, #0x1
+ add r5, r5, #0x4
+ cmp r4, #0x6
+ blo _0207CE56
+ mov r0, #0x2a
+ lsl r0, r0, #0x4
+ ldr r0, [r6, r0]
+ lsl r1, r0, #0x2
+ lsr r1, r1, #0x1f
+ cmp r1, #0x1
+ bne _0207CEA0
+ lsl r0, r0, #0x3
+ lsr r0, r0, #0x1f
+ bne _0207CEA0
+ ldr r0, _0207CED8 ; =0x000004DC
+ mov r1, #0x1
+ ldr r0, [r6, r0]
+ bl FUN_0200C63C
+ b _0207CEAA
+_0207CEA0:
+ ldr r0, _0207CED8 ; =0x000004DC
+ mov r1, #0x0
+ ldr r0, [r6, r0]
+ bl FUN_0200C63C
+_0207CEAA:
+ mov r0, #0x2a
+ lsl r0, r0, #0x4
+ ldr r0, [r6, r0]
+ lsr r0, r0, #0x1e
+ cmp r0, #0x2
+ bne _0207CEC4
+ mov r0, #0x4e
+ lsl r0, r0, #0x4
+ ldr r0, [r6, r0]
+ mov r1, #0x1
+ bl FUN_0200C63C
+ pop {r3-r7, pc}
+_0207CEC4:
+ mov r0, #0x4e
+ lsl r0, r0, #0x4
+ ldr r0, [r6, r0]
+ mov r1, #0x0
+ bl FUN_0200C63C
+ pop {r3-r7, pc}
+ nop
+_0207CED4: .word 0x00000464
+_0207CED8: .word 0x000004DC
+
+ thumb_func_start FUN_0207CEDC
+FUN_0207CEDC: ; 0x0207CEDC
+ push {r3-r4, lr}
+ sub sp, #0x4
+ add r4, r0, #0x0
+ ldr r0, _0207CF50 ; =0x000004AC
+ mov r1, #0x1
+ ldr r0, [r4, r0]
+ bl FUN_020200A0
+ ldr r0, _0207CF50 ; =0x000004AC
+ mov r1, #0x0
+ ldr r0, [r4, r0]
+ bl FUN_02020208
+ ldr r0, _0207CF50 ; =0x000004AC
+ mov r1, #0x0
+ ldr r0, [r4, r0]
+ bl FUN_02020130
+ add r1, sp, #0x0
+ add r0, r4, #0x0
+ add r1, #0x2
+ add r2, sp, #0x0
+ bl FUN_0207FC04
+ ldr r0, _0207CF54 ; =0x0000068F
+ add r3, sp, #0x0
+ ldrb r0, [r4, r0]
+ lsl r0, r0, #0x1c
+ lsr r0, r0, #0x1c
+ ldr r0, _0207CF50 ; =0x000004AC
+ bne _0207CF32
+ mov r2, #0x0
+ ldrsh r2, [r3, r2]
+ mov r1, #0x2
+ ldrsh r1, [r3, r1]
+ add r2, #0xc0
+ lsl r2, r2, #0x10
+ ldr r0, [r4, r0]
+ asr r2, r2, #0x10
+ bl FUN_0200C6E4
+ add sp, #0x4
+ pop {r3-r4, pc}
+_0207CF32:
+ mov r1, #0x2
+ mov r2, #0x0
+ ldrsh r1, [r3, r1]
+ ldrsh r2, [r3, r2]
+ ldr r0, [r4, r0]
+ sub r1, r1, #0x4
+ add r2, #0xc0
+ lsl r1, r1, #0x10
+ lsl r2, r2, #0x10
+ asr r1, r1, #0x10
+ asr r2, r2, #0x10
+ bl FUN_0200C6E4
+ add sp, #0x4
+ pop {r3-r4, pc}
+ .balign 4
+_0207CF50: .word 0x000004AC
+_0207CF54: .word 0x0000068F
+
+ thumb_func_start FUN_0207CF58
+FUN_0207CF58: ; 0x0207CF58
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r0, _0207CF74 ; =0x000004AC
+ ldr r0, [r4, r0]
+ bl FUN_0202022C
+ cmp r0, #0x2
+ bne _0207CF72
+ ldr r0, _0207CF74 ; =0x000004AC
+ mov r1, #0x0
+ ldr r0, [r4, r0]
+ bl FUN_020200A0
+_0207CF72:
+ pop {r4, pc}
+ .balign 4
+_0207CF74: .word 0x000004AC
+
+ thumb_func_start FUN_0207CF78
+FUN_0207CF78: ; 0x0207CF78
+ push {r3-r7, lr}
+ ldr r7, _0207CFA8 ; =0x0000068E
+ add r5, r0, #0x0
+ mov r4, #0x0
+ mov r6, #0x1
+_0207CF82:
+ add r0, r6, #0x0
+ ldrb r1, [r5, r7]
+ lsl r0, r4
+ tst r0, r1
+ beq _0207CF9C
+ lsl r0, r4, #0x2
+ add r1, r5, r0
+ mov r0, #0x4b
+ lsl r0, r0, #0x4
+ ldr r0, [r1, r0]
+ add r1, r6, #0x0
+ bl FUN_020200A0
+_0207CF9C:
+ add r0, r4, #0x1
+ lsl r0, r0, #0x18
+ lsr r4, r0, #0x18
+ cmp r4, #0x5
+ blo _0207CF82
+ pop {r3-r7, pc}
+ .balign 4
+_0207CFA8: .word 0x0000068E
+
+ thumb_func_start FUN_0207CFAC
+FUN_0207CFAC: ; 0x0207CFAC
+ push {r4, lr}
+ add r4, r0, #0x0
+ cmp r1, #0x0
+ bne _0207CFC0
+ ldr r0, _0207CFE8 ; =0x000004C4
+ mov r1, #0x0
+ ldr r0, [r4, r0]
+ bl FUN_020200A0
+ pop {r4, pc}
+_0207CFC0:
+ add r0, r1, #0x0
+ bl FUN_0201AB14
+ add r1, r0, #0x0
+ ldr r0, _0207CFE8 ; =0x000004C4
+ lsl r1, r1, #0x3
+ sub r1, #0xa
+ lsl r1, r1, #0x10
+ ldr r0, [r4, r0]
+ asr r1, r1, #0x10
+ mov r2, #0x8
+ bl FUN_0200C6E4
+ ldr r0, _0207CFE8 ; =0x000004C4
+ mov r1, #0x1
+ ldr r0, [r4, r0]
+ bl FUN_020200A0
+ pop {r4, pc}
+ nop
+_0207CFE8: .word 0x000004C4
+
+ thumb_func_start FUN_0207CFEC
+FUN_0207CFEC: ; 0x0207CFEC
+ push {r4, lr}
+ sub sp, #0x8
+ add r4, r0, #0x0
+ bl FUN_0207B628
+ mov r1, #0x93
+ lsl r1, r1, #0x2
+ ldr r1, [r4, r1]
+ ldrb r1, [r1, #0x11]
+ cmp r1, #0x2
+ bne _0207D008
+ bl FUN_0206B688
+ b _0207D00C
+_0207D008:
+ bl FUN_0206B6C8
+_0207D00C:
+ add r3, r0, #0x0
+ mov r0, #0x0
+ mov r1, #0x1
+ str r0, [sp, #0x0]
+ mov r0, #0xb
+ lsl r1, r1, #0xa
+ str r0, [sp, #0x4]
+ ldr r0, [r4, r1]
+ add r1, r1, #0x4
+ ldr r1, [r4, r1]
+ mov r2, #0x13
+ bl FUN_0200C9D8
+ mov r2, #0x97
+ lsl r2, r2, #0x2
+ add r1, r2, #0x0
+ ldrh r0, [r4, r2]
+ add r2, #0x44
+ add r1, #0x42
+ ldr r2, [r4, r2]
+ ldrh r1, [r4, r1]
+ lsl r2, r2, #0x3
+ lsr r2, r2, #0x1f
+ bl FUN_0206B7BC
+ add r1, r0, #0x0
+ ldr r0, _0207D068 ; =0x00000454
+ add r1, r1, #0x7
+ ldr r0, [r4, r0]
+ bl FUN_0200C664
+ mov r0, #0x97
+ lsl r0, r0, #0x2
+ ldrh r0, [r4, r0]
+ mov r1, #0x1c
+ bl FUN_02068678
+ add r2, r0, #0x0
+ ldr r0, _0207D068 ; =0x00000454
+ mov r1, #0x1
+ ldr r0, [r4, r0]
+ eor r1, r2
+ bl FUN_02020100
+ add sp, #0x8
+ pop {r4, pc}
+ .balign 4
+_0207D068: .word 0x00000454
+
+ thumb_func_start FUN_0207D06C
+FUN_0207D06C: ; 0x0207D06C
+ push {r4, lr}
+ sub sp, #0x8
+ add r4, r0, #0x0
+ bl FUN_0206B888
+ add r3, r0, #0x0
+ mov r0, #0x0
+ mov r1, #0x1
+ str r0, [sp, #0x0]
+ mov r0, #0x5
+ lsl r1, r1, #0xa
+ str r0, [sp, #0x4]
+ ldr r0, [r4, r1]
+ add r1, r1, #0x4
+ ldr r1, [r4, r1]
+ mov r2, #0x13
+ bl FUN_0200CA0C
+ ldr r0, _0207D0C0 ; =0x0000068C
+ ldrsb r0, [r4, r0]
+ cmp r0, #0x3
+ ldr r0, _0207D0C4 ; =0x00000454
+ bne _0207D0A6
+ ldr r0, [r4, r0]
+ mov r1, #0x18
+ mov r2, #0x30
+ bl FUN_0200C6E4
+ b _0207D0B0
+_0207D0A6:
+ ldr r0, [r4, r0]
+ mov r1, #0x20
+ mov r2, #0x44
+ bl FUN_0200C6E4
+_0207D0B0:
+ ldr r0, _0207D0C4 ; =0x00000454
+ mov r1, #0x1
+ ldr r0, [r4, r0]
+ bl FUN_0200C63C
+ add sp, #0x8
+ pop {r4, pc}
+ nop
+_0207D0C0: .word 0x0000068C
+_0207D0C4: .word 0x00000454
+
+ thumb_func_start FUN_0207D0C8
+FUN_0207D0C8: ; 0x0207D0C8
+ push {r4, lr}
+ add r4, r2, #0x0
+ cmp r4, r1
+ ble _0207D0EE
+ add r0, #0x2c
+ sub r1, r4, r1
+ mul r1, r0
+ lsl r0, r1, #0x10
+ mov r1, #0x4b
+ lsl r1, r1, #0x2
+ blx _u32_div_f
+ lsr r0, r0, #0x10
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ sub r0, r4, r0
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ pop {r4, pc}
+_0207D0EE:
+ add r0, #0x2c
+ sub r1, r1, r4
+ mul r1, r0
+ lsl r0, r1, #0x10
+ mov r1, #0x4b
+ lsl r1, r1, #0x2
+ blx _u32_div_f
+ lsr r0, r0, #0x10
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add r0, r4, r0
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ pop {r4, pc}
+
+ thumb_func_start FUN_0207D10C
+FUN_0207D10C: ; 0x0207D10C
+ push {r3-r5, lr}
+ add r4, r0, #0x0
+ ldr r0, _0207D20C ; =0x00000295
+ mov r1, #0x58
+ ldrb r0, [r4, r0]
+ add r2, r1, #0x0
+ bl FUN_0207D0C8
+ add r5, r0, #0x0
+ ldr r0, _0207D20C ; =0x00000295
+ mov r1, #0x31
+ ldrb r0, [r4, r0]
+ mov r2, #0x49
+ bl FUN_0207D0C8
+ add r2, r0, #0x0
+ ldr r0, _0207D210 ; =0x000004C8
+ add r1, r5, #0x0
+ ldr r0, [r4, r0]
+ bl FUN_0200C6E4
+ ldr r0, _0207D214 ; =0x00000296
+ mov r1, #0x6e
+ ldrb r0, [r4, r0]
+ mov r2, #0x58
+ bl FUN_0207D0C8
+ add r5, r0, #0x0
+ ldr r0, _0207D214 ; =0x00000296
+ mov r1, #0x41
+ ldrb r0, [r4, r0]
+ mov r2, #0x49
+ bl FUN_0207D0C8
+ add r2, r0, #0x0
+ ldr r0, _0207D218 ; =0x000004CC
+ add r1, r5, #0x0
+ ldr r0, [r4, r0]
+ bl FUN_0200C6E4
+ ldr r0, _0207D21C ; =0x00000297
+ mov r1, #0x67
+ ldrb r0, [r4, r0]
+ mov r2, #0x58
+ bl FUN_0207D0C8
+ add r5, r0, #0x0
+ ldr r0, _0207D21C ; =0x00000297
+ mov r1, #0x5c
+ ldrb r0, [r4, r0]
+ mov r2, #0x49
+ bl FUN_0207D0C8
+ add r2, r0, #0x0
+ mov r0, #0x4d
+ lsl r0, r0, #0x4
+ ldr r0, [r4, r0]
+ add r1, r5, #0x0
+ bl FUN_0200C6E4
+ mov r0, #0xa6
+ lsl r0, r0, #0x2
+ ldrb r0, [r4, r0]
+ mov r1, #0x48
+ mov r2, #0x57
+ bl FUN_0207D0C8
+ add r5, r0, #0x0
+ mov r0, #0xa6
+ lsl r0, r0, #0x2
+ ldrb r0, [r4, r0]
+ mov r1, #0x5c
+ mov r2, #0x49
+ bl FUN_0207D0C8
+ add r2, r0, #0x0
+ ldr r0, _0207D220 ; =0x000004D4
+ add r1, r5, #0x0
+ ldr r0, [r4, r0]
+ bl FUN_0200C6E4
+ ldr r0, _0207D224 ; =0x00000299
+ mov r1, #0x41
+ ldrb r0, [r4, r0]
+ mov r2, #0x57
+ bl FUN_0207D0C8
+ add r5, r0, #0x0
+ ldr r0, _0207D224 ; =0x00000299
+ mov r1, #0x41
+ ldrb r0, [r4, r0]
+ mov r2, #0x49
+ bl FUN_0207D0C8
+ add r2, r0, #0x0
+ ldr r0, _0207D228 ; =0x000004D8
+ add r1, r5, #0x0
+ ldr r0, [r4, r0]
+ bl FUN_0200C6E4
+ ldr r0, _0207D210 ; =0x000004C8
+ mov r1, #0x1
+ ldr r0, [r4, r0]
+ bl FUN_020200A0
+ ldr r0, _0207D218 ; =0x000004CC
+ mov r1, #0x1
+ ldr r0, [r4, r0]
+ bl FUN_020200A0
+ mov r0, #0x4d
+ lsl r0, r0, #0x4
+ ldr r0, [r4, r0]
+ mov r1, #0x1
+ bl FUN_020200A0
+ ldr r0, _0207D220 ; =0x000004D4
+ mov r1, #0x1
+ ldr r0, [r4, r0]
+ bl FUN_020200A0
+ ldr r0, _0207D228 ; =0x000004D8
+ mov r1, #0x1
+ ldr r0, [r4, r0]
+ bl FUN_020200A0
+ pop {r3-r5, pc}
+ nop
+_0207D20C: .word 0x00000295
+_0207D210: .word 0x000004C8
+_0207D214: .word 0x00000296
+_0207D218: .word 0x000004CC
+_0207D21C: .word 0x00000297
+_0207D220: .word 0x000004D4
+_0207D224: .word 0x00000299
+_0207D228: .word 0x000004D8
+
+ thumb_func_start FUN_0207D22C
+FUN_0207D22C: ; 0x0207D22C
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r0, _0207D268 ; =0x000004C8
+ mov r1, #0x0
+ ldr r0, [r4, r0]
+ bl FUN_020200A0
+ ldr r0, _0207D26C ; =0x000004CC
+ mov r1, #0x0
+ ldr r0, [r4, r0]
+ bl FUN_020200A0
+ mov r0, #0x4d
+ lsl r0, r0, #0x4
+ ldr r0, [r4, r0]
+ mov r1, #0x0
+ bl FUN_020200A0
+ ldr r0, _0207D270 ; =0x000004D4
+ mov r1, #0x0
+ ldr r0, [r4, r0]
+ bl FUN_020200A0
+ ldr r0, _0207D274 ; =0x000004D8
+ mov r1, #0x0
+ ldr r0, [r4, r0]
+ bl FUN_020200A0
+ pop {r4, pc}
+ nop
+_0207D268: .word 0x000004C8
+_0207D26C: .word 0x000004CC
+_0207D270: .word 0x000004D4
+_0207D274: .word 0x000004D8
+
+ thumb_func_start FUN_0207D278
+FUN_0207D278: ; 0x0207D278
+ push {r4-r6, lr}
+ sub sp, #0x8
+ add r6, r1, #0x0
+ add r5, r0, #0x0
+ add r0, r6, #0x0
+ mov r1, #0x1
+ add r4, r2, #0x0
+ bl FUN_0207FC5C
+ add r3, r0, #0x0
+ mov r0, #0x0
+ str r0, [sp, #0x0]
+ add r0, r4, #0x0
+ mov r1, #0x1
+ add r0, #0x1a
+ lsl r1, r1, #0xa
+ str r0, [sp, #0x4]
+ ldr r0, [r5, r1]
+ add r1, r1, #0x4
+ ldr r1, [r5, r1]
+ mov r2, #0x27
+ bl FUN_0200C9D8
+ add r0, r6, #0x0
+ mov r1, #0x2
+ bl FUN_0207FC5C
+ add r4, #0x37
+ add r2, r0, #0x0
+ lsl r0, r4, #0x2
+ add r1, r5, r0
+ ldr r0, _0207D2C4 ; =0x00000408
+ ldr r0, [r1, r0]
+ add r1, r2, #0x7
+ bl FUN_0200C664
+ add sp, #0x8
+ pop {r4-r6, pc}
+ .balign 4
+_0207D2C4: .word 0x00000408
+
+ thumb_func_start FUN_0207D2C8
+FUN_0207D2C8: ; 0x0207D2C8
+ push {r3-r7, lr}
+ sub sp, #0x8
+ ldr r6, _0207D354 ; =0x00000408
+ add r5, r0, #0x0
+ mov r4, #0x37
+ mov r7, #0x0
+_0207D2D4:
+ lsl r0, r4, #0x2
+ add r0, r5, r0
+ ldr r0, [r0, r6]
+ add r1, r7, #0x0
+ bl FUN_020200A0
+ add r0, r4, #0x1
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+ cmp r4, #0x46
+ bls _0207D2D4
+ ldr r0, _0207D358 ; =0x0000068C
+ ldrsb r0, [r5, r0]
+ cmp r0, #0x6
+ bne _0207D350
+ mov r0, #0x0
+ mov r1, #0x1
+ str r0, [sp, #0x0]
+ mov r0, #0x5
+ lsl r1, r1, #0xa
+ str r0, [sp, #0x4]
+ ldr r0, [r5, r1]
+ add r1, r1, #0x4
+ ldr r1, [r5, r1]
+ mov r2, #0x27
+ mov r3, #0x88
+ bl FUN_0200CA0C
+ ldr r7, _0207D35C ; =0x000004E4
+ ldr r6, _0207D360 ; =0x00000699
+ mov r4, #0x0
+_0207D312:
+ ldrb r0, [r5, r6]
+ cmp r4, r0
+ bge _0207D33A
+ lsl r0, r4, #0x2
+ add r0, r5, r0
+ ldr r0, [r0, r7]
+ mov r1, #0x1
+ bl FUN_020200A0
+ lsl r1, r4, #0x18
+ add r0, r5, #0x0
+ lsr r1, r1, #0x18
+ bl FUN_0207C1E8
+ lsl r2, r4, #0x18
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ lsr r2, r2, #0x18
+ bl FUN_0207D278
+_0207D33A:
+ add r0, r4, #0x1
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+ cmp r4, #0xc
+ blo _0207D312
+ mov r0, #0x52
+ lsl r0, r0, #0x4
+ ldr r0, [r5, r0]
+ mov r1, #0x0
+ bl FUN_02020130
+_0207D350:
+ add sp, #0x8
+ pop {r3-r7, pc}
+ .balign 4
+_0207D354: .word 0x00000408
+_0207D358: .word 0x0000068C
+_0207D35C: .word 0x000004E4
+_0207D360: .word 0x00000699
+
+ thumb_func_start FUN_0207D364
+FUN_0207D364: ; 0x0207D364
+ push {r3-r7, lr}
+ ldr r7, _0207D3BC ; =0x00000698
+ add r5, r0, #0x0
+ mov r4, #0x0
+ add r6, r7, #0x1
+_0207D36E:
+ ldrb r0, [r5, r7]
+ lsl r0, r0, #0x2
+ add r1, r4, r0
+ ldrb r0, [r5, r6]
+ cmp r1, r0
+ bge _0207D3A0
+ lsl r0, r4, #0x2
+ add r1, r5, r0
+ ldr r0, _0207D3C0 ; =0x000004E4
+ ldr r0, [r1, r0]
+ mov r1, #0x1
+ bl FUN_020200A0
+ lsl r1, r4, #0x18
+ add r0, r5, #0x0
+ lsr r1, r1, #0x18
+ bl FUN_0207C1E8
+ lsl r2, r4, #0x18
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ lsr r2, r2, #0x18
+ bl FUN_0207D278
+ b _0207D3AE
+_0207D3A0:
+ lsl r0, r4, #0x2
+ add r1, r5, r0
+ ldr r0, _0207D3C0 ; =0x000004E4
+ ldr r0, [r1, r0]
+ mov r1, #0x0
+ bl FUN_020200A0
+_0207D3AE:
+ add r0, r4, #0x1
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+ cmp r4, #0x8
+ blo _0207D36E
+ pop {r3-r7, pc}
+ nop
+_0207D3BC: .word 0x00000698
+_0207D3C0: .word 0x000004E4
+
+ thumb_func_start FUN_0207D3C4
+FUN_0207D3C4: ; 0x0207D3C4
+ ldr r1, _0207D3E8 ; =0x00000697
+ ldrb r2, [r0, r1]
+ ldr r1, _0207D3EC ; =0x00000514
+ ldr r0, [r0, r1]
+ lsl r1, r2, #0x1e
+ lsr r3, r2, #0x2
+ mov r2, #0x28
+ mul r2, r3
+ lsr r1, r1, #0x19
+ add r1, #0x84
+ add r2, #0x38
+ lsl r1, r1, #0x10
+ lsl r2, r2, #0x10
+ ldr r3, _0207D3F0 ; =FUN_0200C6E4
+ asr r1, r1, #0x10
+ asr r2, r2, #0x10
+ bx r3
+ nop
+_0207D3E8: .word 0x00000697
+_0207D3EC: .word 0x00000514
+_0207D3F0: .word FUN_0200C6E4
+
+ thumb_func_start FUN_0207D3F4
+FUN_0207D3F4: ; 0x0207D3F4
+ push {r4, lr}
+ add r4, r0, #0x0
+ mov r0, #0x52
+ lsl r0, r0, #0x4
+ ldr r0, [r4, r0]
+ bl FUN_02020128
+ cmp r0, #0x1
+ bne _0207D414
+ mov r0, #0x52
+ lsl r0, r0, #0x4
+ mov r1, #0x1
+ ldr r0, [r4, r0]
+ lsl r1, r1, #0xc
+ bl FUN_020201E4
+_0207D414:
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0207D418
+FUN_0207D418: ; 0x0207D418
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ cmp r1, #0x0
+ bne _0207D43E
+ mov r4, #0x0
+ ldr r6, _0207D4C0 ; =0x00000524
+ add r7, r4, #0x0
+_0207D426:
+ lsl r0, r4, #0x2
+ add r0, r5, r0
+ ldr r0, [r0, r6]
+ add r1, r7, #0x0
+ bl FUN_020200A0
+ add r0, r4, #0x1
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+ cmp r4, #0x5
+ blo _0207D426
+ pop {r3-r7, pc}
+_0207D43E:
+ ldr r0, _0207D4C4 ; =0x00000295
+ ldrb r1, [r5, r0]
+ add r0, r0, #0x1
+ ldrb r0, [r5, r0]
+ add r4, r1, #0x0
+ cmp r1, r0
+ bge _0207D44E
+ add r4, r0, #0x0
+_0207D44E:
+ ldr r0, _0207D4C8 ; =0x00000297
+ ldrb r0, [r5, r0]
+ cmp r4, r0
+ bge _0207D458
+ add r4, r0, #0x0
+_0207D458:
+ mov r0, #0xa6
+ lsl r0, r0, #0x2
+ ldrb r0, [r5, r0]
+ cmp r4, r0
+ bge _0207D464
+ add r4, r0, #0x0
+_0207D464:
+ ldr r0, _0207D4CC ; =0x00000299
+ ldrb r0, [r5, r0]
+ cmp r4, r0
+ bge _0207D46E
+ add r4, r0, #0x0
+_0207D46E:
+ ldr r0, _0207D4C0 ; =0x00000524
+ ldr r3, _0207D4D0 ; =0x020FA75C
+ ldr r0, [r5, r0]
+ add r2, r4, #0x0
+ bl FUN_0207D4F4
+ ldr r1, _0207D4D4 ; =0x00000296
+ ldr r0, _0207D4D8 ; =0x00000528
+ ldrb r1, [r5, r1]
+ ldr r0, [r5, r0]
+ ldr r3, _0207D4DC ; =0x020FA764
+ add r2, r4, #0x0
+ bl FUN_0207D4F4
+ ldr r1, _0207D4C8 ; =0x00000297
+ ldr r0, _0207D4E0 ; =0x0000052C
+ ldrb r1, [r5, r1]
+ ldr r0, [r5, r0]
+ ldr r3, _0207D4E4 ; =0x020FA76C
+ add r2, r4, #0x0
+ bl FUN_0207D4F4
+ mov r1, #0x53
+ lsl r1, r1, #0x4
+ ldr r0, [r5, r1]
+ lsr r1, r1, #0x1
+ ldrb r1, [r5, r1]
+ ldr r3, _0207D4E8 ; =0x020FA774
+ add r2, r4, #0x0
+ bl FUN_0207D4F4
+ ldr r1, _0207D4CC ; =0x00000299
+ ldr r0, _0207D4EC ; =0x00000534
+ ldrb r1, [r5, r1]
+ ldr r0, [r5, r0]
+ ldr r3, _0207D4F0 ; =0x020FA77C
+ add r2, r4, #0x0
+ bl FUN_0207D4F4
+ pop {r3-r7, pc}
+ nop
+_0207D4C0: .word 0x00000524
+_0207D4C4: .word 0x00000295
+_0207D4C8: .word 0x00000297
+_0207D4CC: .word 0x00000299
+_0207D4D0: .word 0x020FA75C
+_0207D4D4: .word 0x00000296
+_0207D4D8: .word 0x00000528
+_0207D4DC: .word 0x020FA764
+_0207D4E0: .word 0x0000052C
+_0207D4E4: .word 0x020FA76C
+_0207D4E8: .word 0x020FA774
+_0207D4EC: .word 0x00000534
+_0207D4F0: .word 0x020FA77C
+
+ thumb_func_start FUN_0207D4F4
+FUN_0207D4F4: ; 0x0207D4F4
+ push {r4-r6, lr}
+ add r5, r1, #0x0
+ add r6, r0, #0x0
+ add r4, r3, #0x0
+ cmp r5, #0x0
+ beq _0207D504
+ cmp r5, r2
+ beq _0207D50E
+_0207D504:
+ add r0, r6, #0x0
+ mov r1, #0x0
+ bl FUN_020200A0
+ pop {r4-r6, pc}
+_0207D50E:
+ mov r1, #0x1
+ bl FUN_020200A0
+ mov r0, #0x0
+ ldrsh r1, [r4, r0]
+ mov r0, #0x4
+ ldrsh r0, [r4, r0]
+ cmp r1, r0
+ blt _0207D534
+ sub r1, r1, r0
+ lsl r2, r1, #0x8
+ asr r1, r2, #0x7
+ lsr r1, r1, #0x18
+ add r1, r2, r1
+ asr r1, r1, #0x8
+ mul r1, r5
+ lsr r1, r1, #0x8
+ add r1, r0, r1
+ b _0207D546
+_0207D534:
+ sub r1, r0, r1
+ lsl r2, r1, #0x8
+ asr r1, r2, #0x7
+ lsr r1, r1, #0x18
+ add r1, r2, r1
+ asr r1, r1, #0x8
+ mul r1, r5
+ lsr r1, r1, #0x8
+ sub r1, r0, r1
+_0207D546:
+ mov r0, #0x2
+ ldrsh r2, [r4, r0]
+ mov r0, #0x6
+ ldrsh r0, [r4, r0]
+ cmp r2, r0
+ blt _0207D566
+ sub r2, r2, r0
+ lsl r3, r2, #0x8
+ asr r2, r3, #0x7
+ lsr r2, r2, #0x18
+ add r2, r3, r2
+ asr r2, r2, #0x8
+ mul r2, r5
+ lsr r2, r2, #0x8
+ add r2, r0, r2
+ b _0207D578
+_0207D566:
+ sub r2, r0, r2
+ lsl r3, r2, #0x8
+ asr r2, r3, #0x7
+ lsr r2, r2, #0x18
+ add r2, r3, r2
+ asr r2, r2, #0x8
+ mul r2, r5
+ lsr r2, r2, #0x8
+ sub r2, r0, r2
+_0207D578:
+ lsl r1, r1, #0x10
+ lsl r2, r2, #0x10
+ add r0, r6, #0x0
+ asr r1, r1, #0x10
+ asr r2, r2, #0x10
+ bl FUN_0200C6E4
+ add r0, r6, #0x0
+ mov r1, #0x0
+ bl FUN_02020208
+ add r0, r6, #0x0
+ mov r1, #0x0
+ bl FUN_02020130
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_0207D598
+FUN_0207D598: ; 0x0207D598
+ push {r3-r7, lr}
+ mov r7, #0x1
+ ldr r6, _0207D5B8 ; =0x00000524
+ add r5, r0, #0x0
+ mov r4, #0x0
+ lsl r7, r7, #0xc
+_0207D5A4:
+ ldr r0, [r5, r6]
+ add r1, r7, #0x0
+ bl FUN_020201E4
+ add r4, r4, #0x1
+ add r5, r5, #0x4
+ cmp r4, #0x5
+ blo _0207D5A4
+ pop {r3-r7, pc}
+ nop
+_0207D5B8: .word 0x00000524
+
+ thumb_func_start FUN_0207D5BC
+FUN_0207D5BC: ; 0x0207D5BC
+ push {r3-r7, lr}
+ add r7, r0, #0x0
+ mov r5, #0x0
+ add r4, r7, #0x4
+_0207D5C4:
+ ldr r2, _0207D600 ; =0x020FB4AC
+ lsl r6, r5, #0x4
+ lsl r3, r5, #0x3
+ ldr r0, [r7, #0x0]
+ add r1, r4, r6
+ add r2, r2, r3
+ bl FUN_02019150
+ add r0, r4, r6
+ mov r1, #0x0
+ bl FUN_02019620
+ add r0, r5, #0x1
+ lsl r0, r0, #0x10
+ lsr r5, r0, #0x10
+ cmp r5, #0x24
+ blo _0207D5C4
+ add r0, r7, #0x0
+ bl FUN_0207DB78
+ add r0, r7, #0x0
+ bl FUN_0207D768
+ add r0, r7, #0x0
+ bl FUN_0207D800
+ add r0, r7, #0x0
+ bl FUN_0207D8A0
+ pop {r3-r7, pc}
+ .balign 4
+_0207D600: .word 0x020FB4AC
+
+ thumb_func_start FUN_0207D604
+FUN_0207D604: ; 0x0207D604
+ push {r3-r7, lr}
+ add r4, r0, #0x0
+ ldr r0, _0207D6D8 ; =0x0000068C
+ ldrsb r0, [r4, r0]
+ cmp r0, #0x7
+ bhi _0207D6D4
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0207D61C: ; jump table (using 16-bit offset)
+ .short _0207D62C - _0207D61C - 2; case 0
+ .short _0207D638 - _0207D61C - 2; case 1
+ .short _0207D644 - _0207D61C - 2; case 2
+ .short _0207D650 - _0207D61C - 2; case 3
+ .short _0207D674 - _0207D61C - 2; case 4
+ .short _0207D65C - _0207D61C - 2; case 5
+ .short _0207D668 - _0207D61C - 2; case 6
+ .short _0207D674 - _0207D61C - 2; case 7
+_0207D62C:
+ mov r0, #0x92
+ mov r1, #0x6
+ lsl r0, r0, #0x2
+ ldr r5, _0207D6DC ; =0x020FB3FC
+ str r1, [r4, r0]
+ b _0207D692
+_0207D638:
+ mov r0, #0x92
+ mov r1, #0x1
+ lsl r0, r0, #0x2
+ ldr r5, _0207D6E0 ; =0x020FB38C
+ str r1, [r4, r0]
+ b _0207D692
+_0207D644:
+ mov r0, #0x92
+ mov r1, #0x8
+ lsl r0, r0, #0x2
+ ldr r5, _0207D6E4 ; =0x020FB42C
+ str r1, [r4, r0]
+ b _0207D692
+_0207D650:
+ mov r0, #0x92
+ mov r1, #0x8
+ lsl r0, r0, #0x2
+ ldr r5, _0207D6E8 ; =0x020FB46C
+ str r1, [r4, r0]
+ b _0207D692
+_0207D65C:
+ mov r0, #0x92
+ mov r1, #0x6
+ lsl r0, r0, #0x2
+ ldr r5, _0207D6EC ; =0x020FB3CC
+ str r1, [r4, r0]
+ b _0207D692
+_0207D668:
+ mov r0, #0x92
+ mov r1, #0x4
+ lsl r0, r0, #0x2
+ ldr r5, _0207D6F0 ; =0x020FB3AC
+ str r1, [r4, r0]
+ b _0207D692
+_0207D674:
+ mov r0, #0x93
+ lsl r0, r0, #0x2
+ ldr r0, [r4, r0]
+ ldrb r0, [r0, #0x12]
+ cmp r0, #0x3
+ beq _0207D684
+ cmp r0, #0x4
+ bne _0207D6D4
+_0207D684:
+ mov r0, #0x92
+ mov r1, #0x3
+ lsl r0, r0, #0x2
+ ldr r5, _0207D6F4 ; =0x020FB394
+ str r1, [r4, r0]
+ b _0207D692
+_0207D690:
+ pop {r3-r7, pc}
+_0207D692:
+ mov r1, #0x92
+ lsl r1, r1, #0x2
+ ldr r1, [r4, r1]
+ mov r0, #0x13
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ bl FUN_02018FF4
+ mov r1, #0x91
+ lsl r1, r1, #0x2
+ str r0, [r4, r1]
+ add r0, r1, #0x4
+ ldr r0, [r4, r0]
+ mov r6, #0x0
+ cmp r0, #0x0
+ bls _0207D6D4
+ add r7, r6, #0x0
+_0207D6B4:
+ mov r1, #0x91
+ lsl r1, r1, #0x2
+ ldr r1, [r4, r1]
+ ldr r0, [r4, #0x0]
+ add r1, r1, r7
+ add r2, r5, #0x0
+ bl FUN_02019150
+ mov r0, #0x92
+ lsl r0, r0, #0x2
+ ldr r0, [r4, r0]
+ add r6, r6, #0x1
+ add r5, #0x8
+ add r7, #0x10
+ cmp r6, r0
+ blo _0207D6B4
+_0207D6D4:
+ pop {r3-r7, pc}
+ nop
+_0207D6D8: .word 0x0000068C
+_0207D6DC: .word 0x020FB3FC
+_0207D6E0: .word 0x020FB38C
+_0207D6E4: .word 0x020FB42C
+_0207D6E8: .word 0x020FB46C
+_0207D6EC: .word 0x020FB3CC
+_0207D6F0: .word 0x020FB3AC
+_0207D6F4: .word 0x020FB394
+
+ thumb_func_start FUN_0207D6F8
+FUN_0207D6F8: ; 0x0207D6F8
+ push {r3, lr}
+ add r1, r0, #0x0
+ ldr r0, _0207D748 ; =0x0000068C
+ ldrsb r0, [r1, r0]
+ cmp r0, #0x7
+ bhi _0207D744
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0207D710: ; jump table (using 16-bit offset)
+ .short _0207D732 - _0207D710 - 2; case 0
+ .short _0207D732 - _0207D710 - 2; case 1
+ .short _0207D732 - _0207D710 - 2; case 2
+ .short _0207D732 - _0207D710 - 2; case 3
+ .short _0207D720 - _0207D710 - 2; case 4
+ .short _0207D732 - _0207D710 - 2; case 5
+ .short _0207D732 - _0207D710 - 2; case 6
+ .short _0207D720 - _0207D710 - 2; case 7
+_0207D720:
+ mov r0, #0x93
+ lsl r0, r0, #0x2
+ ldr r0, [r1, r0]
+ ldrb r0, [r0, #0x12]
+ cmp r0, #0x3
+ beq _0207D732
+ cmp r0, #0x4
+ beq _0207D732
+ pop {r3, pc}
+_0207D732:
+ mov r2, #0x91
+ lsl r2, r2, #0x2
+ ldr r0, [r1, r2]
+ add r2, r2, #0x4
+ ldr r1, [r1, r2]
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ bl FUN_020191A4
+_0207D744:
+ pop {r3, pc}
+ nop
+_0207D748: .word 0x0000068C
+
+ thumb_func_start FUN_0207D74C
+FUN_0207D74C: ; 0x0207D74C
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ bl FUN_0207D6F8
+ mov r4, #0x0
+ add r5, r5, #0x4
+_0207D758:
+ add r0, r5, #0x0
+ bl FUN_02019178
+ add r4, r4, #0x1
+ add r5, #0x10
+ cmp r4, #0x24
+ blo _0207D758
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_0207D768
+FUN_0207D768: ; 0x0207D768
+ push {r3-r5, lr}
+ sub sp, #0x10
+ mov r4, #0x89
+ add r5, r0, #0x0
+ lsl r4, r4, #0x2
+ add r0, r5, r4
+ mov r1, #0x0
+ bl FUN_02019620
+ mov r1, #0x0
+ add r2, r4, #0x0
+ str r1, [sp, #0x0]
+ mov r0, #0xff
+ str r0, [sp, #0x4]
+ ldr r0, _0207D7F4 ; =0x000F0E00
+ add r2, #0x30
+ str r0, [sp, #0x8]
+ str r1, [sp, #0xc]
+ ldr r2, [r5, r2]
+ add r0, r5, r4
+ add r3, r1, #0x0
+ bl FUN_0201BDE0
+ add r0, r4, #0x0
+ add r0, #0x3e
+ ldrb r1, [r5, r0]
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x1f
+ bne _0207D7E8
+ add r0, r0, #0x1
+ ldrb r0, [r5, r0]
+ lsl r0, r0, #0x1e
+ lsr r0, r0, #0x1e
+ bne _0207D7CA
+ ldr r2, _0207D7F8 ; =0x00000674
+ mov r1, #0x1
+ ldr r0, [r5, r2]
+ add r2, #0xc
+ ldr r2, [r5, r2]
+ bl FUN_0200A8E0
+ mov r2, #0xc1
+ add r0, r5, #0x0
+ add r1, r5, r4
+ lsl r2, r2, #0xa
+ mov r3, #0x1
+ bl FUN_0207D998
+ b _0207D7E8
+_0207D7CA:
+ cmp r0, #0x1
+ bne _0207D7E8
+ ldr r2, _0207D7F8 ; =0x00000674
+ mov r1, #0x2
+ ldr r0, [r5, r2]
+ add r2, #0xc
+ ldr r2, [r5, r2]
+ bl FUN_0200A8E0
+ ldr r2, _0207D7FC ; =0x00050600
+ add r0, r5, #0x0
+ add r1, r5, r4
+ mov r3, #0x1
+ bl FUN_0207D998
+_0207D7E8:
+ add r0, r5, r4
+ bl FUN_02019220
+ add sp, #0x10
+ pop {r3-r5, pc}
+ nop
+_0207D7F4: .word 0x000F0E00
+_0207D7F8: .word 0x00000674
+_0207D7FC: .word 0x00050600
+
+ thumb_func_start FUN_0207D800
+FUN_0207D800: ; 0x0207D800
+ push {r4-r6, lr}
+ sub sp, #0x10
+ mov r6, #0x85
+ add r5, r0, #0x0
+ lsl r6, r6, #0x2
+ add r0, r5, r6
+ mov r1, #0x0
+ bl FUN_02019620
+ add r0, r6, #0x0
+ add r0, #0x8c
+ ldr r0, [r5, r0]
+ lsl r0, r0, #0x3
+ lsr r0, r0, #0x1f
+ bne _0207D88A
+ mov r0, #0x5
+ str r0, [sp, #0x0]
+ mov r0, #0x67
+ lsl r0, r0, #0x4
+ ldr r0, [r5, r0]
+ mov r1, #0x1
+ add r2, r5, r6
+ mov r3, #0x0
+ bl FUN_0200B9A8
+ ldr r0, _0207D894 ; =0x00000674
+ mov r1, #0x3
+ ldr r0, [r5, r0]
+ bl FUN_0200A914
+ mov r1, #0x0
+ add r4, r0, #0x0
+ add r2, r6, #0x0
+ str r1, [sp, #0x0]
+ mov r0, #0x1
+ str r0, [sp, #0x4]
+ add r2, #0x4e
+ ldrb r2, [r5, r2]
+ ldr r0, _0207D898 ; =0x0000067C
+ mov r3, #0x3
+ lsl r2, r2, #0x19
+ ldr r0, [r5, r0]
+ lsr r2, r2, #0x19
+ bl FUN_0200AD38
+ ldr r1, _0207D898 ; =0x0000067C
+ add r2, r4, #0x0
+ ldr r0, [r5, r1]
+ add r1, r1, #0x4
+ ldr r1, [r5, r1]
+ bl FUN_0200B7B8
+ add r0, r4, #0x0
+ bl FUN_02021A20
+ mov r1, #0x0
+ mov r2, #0x1a
+ str r1, [sp, #0x0]
+ mov r0, #0xff
+ str r0, [sp, #0x4]
+ ldr r0, _0207D89C ; =0x00010200
+ lsl r2, r2, #0x6
+ str r0, [sp, #0x8]
+ str r1, [sp, #0xc]
+ ldr r2, [r5, r2]
+ add r0, r5, r6
+ mov r3, #0x10
+ bl FUN_0201BDE0
+_0207D88A:
+ add r0, r5, r6
+ bl FUN_02019220
+ add sp, #0x10
+ pop {r4-r6, pc}
+ .balign 4
+_0207D894: .word 0x00000674
+_0207D898: .word 0x0000067C
+_0207D89C: .word 0x00010200
+
+ thumb_func_start FUN_0207D8A0
+FUN_0207D8A0: ; 0x0207D8A0
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ mov r0, #0x81
+ lsl r0, r0, #0x2
+ add r0, r5, r0
+ mov r1, #0x0
+ bl FUN_02019620
+ ldr r0, _0207D918 ; =0x0000025E
+ ldrh r2, [r5, r0]
+ cmp r2, #0x0
+ beq _0207D8E4
+ ldr r0, _0207D91C ; =0x0000067C
+ mov r1, #0x0
+ ldr r0, [r5, r0]
+ bl FUN_0200AE38
+ ldr r0, _0207D920 ; =0x00000674
+ mov r1, #0x5
+ ldr r0, [r5, r0]
+ bl FUN_0200A914
+ add r4, r0, #0x0
+ ldr r1, _0207D91C ; =0x0000067C
+ add r2, r4, #0x0
+ ldr r0, [r5, r1]
+ add r1, r1, #0x4
+ ldr r1, [r5, r1]
+ bl FUN_0200B7B8
+ add r0, r4, #0x0
+ bl FUN_02021A20
+ b _0207D8F2
+_0207D8E4:
+ ldr r2, _0207D920 ; =0x00000674
+ mov r1, #0x6
+ ldr r0, [r5, r2]
+ add r2, #0xc
+ ldr r2, [r5, r2]
+ bl FUN_0200A8E0
+_0207D8F2:
+ mov r2, #0x81
+ lsl r2, r2, #0x2
+ add r1, r5, r2
+ add r0, r5, #0x0
+ lsl r2, r2, #0x7
+ mov r3, #0x0
+ bl FUN_0207D998
+ add r0, r5, #0x0
+ add r0, #0x64
+ bl FUN_02019220
+ mov r0, #0x81
+ lsl r0, r0, #0x2
+ add r0, r5, r0
+ bl FUN_02019220
+ pop {r3-r5, pc}
+ nop
+_0207D918: .word 0x0000025E
+_0207D91C: .word 0x0000067C
+_0207D920: .word 0x00000674
+
+ thumb_func_start FUN_0207D924
+FUN_0207D924: ; 0x0207D924
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ mov r0, #0x8d
+ lsl r0, r0, #0x2
+ add r4, r1, #0x0
+ add r0, r5, r0
+ mov r1, #0x0
+ bl FUN_02019620
+ mov r0, #0x0
+ str r0, [sp, #0x0]
+ ldr r3, _0207D954 ; =0x000F0E00
+ add r0, r5, #0x0
+ mov r1, #0x23
+ add r2, r4, #0x0
+ bl FUN_0207DA1C
+ mov r0, #0x8d
+ lsl r0, r0, #0x2
+ add r0, r5, r0
+ bl FUN_02019220
+ pop {r3-r5, pc}
+ nop
+_0207D954: .word 0x000F0E00
+
+ thumb_func_start FUN_0207D958
+FUN_0207D958: ; 0x0207D958
+ push {r4, lr}
+ mov r3, #0x93
+ lsl r3, r3, #0x2
+ add r1, r0, #0x0
+ add r2, r3, #0x0
+ add r2, #0x18
+ ldr r0, [r1, r3]
+ ldr r4, [r1, r2]
+ ldr r2, [r0, #0xc]
+ cmp r4, r2
+ bne _0207D98E
+ add r2, r3, #0x0
+ add r2, #0x48
+ ldrb r2, [r1, r2]
+ ldrb r0, [r0, #0x10]
+ cmp r2, r0
+ bne _0207D98E
+ ldr r2, _0207D994 ; =0x00000684
+ add r3, #0xc
+ ldr r0, [r1, r3]
+ ldr r1, [r1, r2]
+ bl FUN_02021CE0
+ cmp r0, #0x0
+ bne _0207D98E
+ mov r0, #0x1
+ pop {r4, pc}
+_0207D98E:
+ mov r0, #0x0
+ pop {r4, pc}
+ nop
+_0207D994: .word 0x00000684
+
+ thumb_func_start FUN_0207D998
+FUN_0207D998: ; 0x0207D998
+ push {r3-r7, lr}
+ sub sp, #0x10
+ add r4, r0, #0x0
+ add r6, r1, #0x0
+ add r7, r2, #0x0
+ cmp r3, #0x0
+ beq _0207D9B0
+ cmp r3, #0x1
+ beq _0207D9B4
+ cmp r3, #0x2
+ beq _0207D9D8
+ b _0207D9FE
+_0207D9B0:
+ mov r3, #0x0
+ b _0207D9FE
+_0207D9B4:
+ mov r1, #0x1a
+ lsl r1, r1, #0x6
+ mov r0, #0x0
+ ldr r1, [r4, r1]
+ add r2, r0, #0x0
+ bl FUN_02002E14
+ lsl r0, r0, #0x18
+ lsr r5, r0, #0x18
+ add r0, r6, #0x0
+ bl FUN_0201AB0C
+ lsl r0, r0, #0x1b
+ lsr r0, r0, #0x18
+ sub r0, r0, r5
+ lsl r0, r0, #0x18
+ lsr r3, r0, #0x18
+ b _0207D9FE
+_0207D9D8:
+ mov r1, #0x1a
+ lsl r1, r1, #0x6
+ mov r0, #0x0
+ ldr r1, [r4, r1]
+ add r2, r0, #0x0
+ bl FUN_02002E14
+ lsl r0, r0, #0x18
+ lsr r5, r0, #0x18
+ add r0, r6, #0x0
+ bl FUN_0201AB0C
+ lsl r0, r0, #0x1b
+ lsr r0, r0, #0x18
+ sub r1, r0, r5
+ lsr r0, r1, #0x1f
+ add r0, r1, r0
+ lsl r0, r0, #0x17
+ lsr r3, r0, #0x18
+_0207D9FE:
+ mov r1, #0x0
+ str r1, [sp, #0x0]
+ mov r0, #0xff
+ str r0, [sp, #0x4]
+ str r7, [sp, #0x8]
+ mov r2, #0x1a
+ str r1, [sp, #0xc]
+ lsl r2, r2, #0x6
+ ldr r2, [r4, r2]
+ add r0, r6, #0x0
+ bl FUN_0201BDE0
+ add sp, #0x10
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_0207DA1C
+FUN_0207DA1C: ; 0x0207DA1C
+ push {r4-r6, lr}
+ add r6, r3, #0x0
+ ldr r3, _0207DA44 ; =0x00000674
+ add r5, r0, #0x0
+ ldr r0, [r5, r3]
+ add r4, r1, #0x0
+ add r3, #0xc
+ add r1, r2, #0x0
+ ldr r2, [r5, r3]
+ bl FUN_0200A8E0
+ add r2, r5, #0x4
+ lsl r1, r4, #0x4
+ add r1, r2, r1
+ ldr r3, [sp, #0x10]
+ add r0, r5, #0x0
+ add r2, r6, #0x0
+ bl FUN_0207D998
+ pop {r4-r6, pc}
+ .balign 4
+_0207DA44: .word 0x00000674
+
+ thumb_func_start FUN_0207DA48
+FUN_0207DA48: ; 0x0207DA48
+ push {r3-r7, lr}
+ sub sp, #0x8
+ add r5, r0, #0x0
+ ldr r0, _0207DA8C ; =0x00000674
+ add r6, r2, #0x0
+ ldr r0, [r5, r0]
+ add r7, r3, #0x0
+ bl FUN_0200A914
+ add r4, r0, #0x0
+ add r0, sp, #0x10
+ ldrb r0, [r0, #0x10]
+ mov r1, #0x0
+ add r2, r6, #0x0
+ str r0, [sp, #0x0]
+ mov r0, #0x1
+ str r0, [sp, #0x4]
+ ldr r0, _0207DA90 ; =0x0000067C
+ add r3, r7, #0x0
+ ldr r0, [r5, r0]
+ bl FUN_0200AD38
+ ldr r1, _0207DA90 ; =0x0000067C
+ add r2, r4, #0x0
+ ldr r0, [r5, r1]
+ add r1, r1, #0x4
+ ldr r1, [r5, r1]
+ bl FUN_0200B7B8
+ add r0, r4, #0x0
+ bl FUN_02021A20
+ add sp, #0x8
+ pop {r3-r7, pc}
+ .balign 4
+_0207DA8C: .word 0x00000674
+_0207DA90: .word 0x0000067C
+
+ thumb_func_start FUN_0207DA94
+FUN_0207DA94: ; 0x0207DA94
+ push {r3-r7, lr}
+ sub sp, #0x20
+ add r4, r0, #0x0
+ str r3, [sp, #0x10]
+ mov r0, #0x91
+ lsl r0, r0, #0x2
+ lsl r7, r1, #0x4
+ ldr r3, _0207DB70 ; =0x00000674
+ ldr r5, [r4, r0]
+ ldr r0, [r4, r3]
+ add r3, #0xc
+ add r1, r2, #0x0
+ ldr r2, [r4, r3]
+ bl FUN_0200A8E0
+ mov r1, #0x1a
+ lsl r1, r1, #0x6
+ mov r0, #0x0
+ ldr r1, [r4, r1]
+ add r2, r0, #0x0
+ bl FUN_02002E14
+ add r1, sp, #0x48
+ ldrb r2, [r1, #0x0]
+ lsr r1, r0, #0x1
+ sub r1, r2, r1
+ lsl r1, r1, #0x10
+ lsr r1, r1, #0x10
+ add r0, r1, r0
+ str r1, [sp, #0x14]
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #0x18]
+ add r0, sp, #0x4c
+ ldrb r0, [r0, #0x0]
+ mov r2, #0x1a
+ mov r1, #0x0
+ str r0, [sp, #0x1c]
+ str r0, [sp, #0x0]
+ mov r0, #0xff
+ str r0, [sp, #0x4]
+ ldr r0, _0207DB74 ; =0x00010200
+ lsl r2, r2, #0x6
+ str r0, [sp, #0x8]
+ str r1, [sp, #0xc]
+ ldr r2, [r4, r2]
+ ldr r3, [sp, #0x14]
+ add r0, r5, r7
+ bl FUN_0201BDE0
+ mov r0, #0x0
+ str r0, [sp, #0x0]
+ add r3, sp, #0x28
+ ldrh r2, [r3, #0x14]
+ ldrb r3, [r3, #0x1c]
+ ldr r1, [sp, #0x10]
+ add r0, r4, #0x0
+ bl FUN_0207DA48
+ mov r1, #0x1a
+ lsl r1, r1, #0x6
+ mov r0, #0x0
+ ldr r1, [r4, r1]
+ add r2, r0, #0x0
+ bl FUN_02002E14
+ mov r12, r0
+ ldr r0, [sp, #0x1c]
+ mov r2, #0x1a
+ str r0, [sp, #0x0]
+ mov r0, #0xff
+ str r0, [sp, #0x4]
+ ldr r0, _0207DB74 ; =0x00010200
+ mov r1, #0x0
+ str r0, [sp, #0x8]
+ str r1, [sp, #0xc]
+ lsl r2, r2, #0x6
+ ldr r3, [sp, #0x14]
+ mov r6, r12
+ ldr r2, [r4, r2]
+ add r0, r5, r7
+ sub r3, r3, r6
+ bl FUN_0201BDE0
+ mov r0, #0x0
+ str r0, [sp, #0x0]
+ add r3, sp, #0x28
+ ldrh r2, [r3, #0x18]
+ ldrb r3, [r3, #0x1c]
+ ldr r1, [sp, #0x38]
+ add r0, r4, #0x0
+ bl FUN_0207DA48
+ ldr r0, [sp, #0x1c]
+ mov r2, #0x1a
+ str r0, [sp, #0x0]
+ mov r0, #0xff
+ str r0, [sp, #0x4]
+ ldr r0, _0207DB74 ; =0x00010200
+ mov r1, #0x0
+ str r0, [sp, #0x8]
+ str r1, [sp, #0xc]
+ lsl r2, r2, #0x6
+ ldr r2, [r4, r2]
+ ldr r3, [sp, #0x18]
+ add r0, r5, r7
+ bl FUN_0201BDE0
+ add sp, #0x20
+ pop {r3-r7, pc}
+ .balign 4
+_0207DB70: .word 0x00000674
+_0207DB74: .word 0x00010200
+
+ thumb_func_start FUN_0207DB78
+FUN_0207DB78: ; 0x0207DB78
+ push {r4, lr}
+ sub sp, #0x10
+ ldr r3, _0207DD7C ; =0x000F0E00
+ mov r1, #0x0
+ mov r2, #0x7
+ add r4, r0, #0x0
+ str r1, [sp, #0x0]
+ bl FUN_0207DA1C
+ mov r0, #0x0
+ str r0, [sp, #0x0]
+ ldr r3, _0207DD7C ; =0x000F0E00
+ add r0, r4, #0x0
+ mov r1, #0x1
+ mov r2, #0x17
+ bl FUN_0207DA1C
+ mov r0, #0x0
+ str r0, [sp, #0x0]
+ ldr r3, _0207DD7C ; =0x000F0E00
+ add r0, r4, #0x0
+ mov r1, #0x2
+ mov r2, #0x6d
+ bl FUN_0207DA1C
+ mov r0, #0x0
+ str r0, [sp, #0x0]
+ ldr r3, _0207DD7C ; =0x000F0E00
+ add r0, r4, #0x0
+ mov r1, #0x3
+ mov r2, #0x7e
+ bl FUN_0207DA1C
+ mov r0, #0x0
+ str r0, [sp, #0x0]
+ ldr r3, _0207DD7C ; =0x000F0E00
+ add r0, r4, #0x0
+ mov r1, #0x4
+ mov r2, #0x80
+ bl FUN_0207DA1C
+ mov r0, #0x0
+ str r0, [sp, #0x0]
+ ldr r3, _0207DD7C ; =0x000F0E00
+ add r0, r4, #0x0
+ mov r1, #0x5
+ mov r2, #0x9d
+ bl FUN_0207DA1C
+ mov r0, #0x0
+ str r0, [sp, #0x0]
+ ldr r3, _0207DD7C ; =0x000F0E00
+ add r0, r4, #0x0
+ mov r1, #0x6
+ mov r2, #0x4
+ bl FUN_0207DA1C
+ mov r0, #0x0
+ str r0, [sp, #0x0]
+ ldr r3, _0207DD7C ; =0x000F0E00
+ add r0, r4, #0x0
+ mov r1, #0x7
+ mov r2, #0x8
+ bl FUN_0207DA1C
+ mov r0, #0x0
+ str r0, [sp, #0x0]
+ ldr r3, _0207DD7C ; =0x000F0E00
+ add r0, r4, #0x0
+ mov r1, #0x8
+ mov r2, #0xa
+ bl FUN_0207DA1C
+ mov r0, #0x0
+ str r0, [sp, #0x0]
+ ldr r3, _0207DD7C ; =0x000F0E00
+ add r0, r4, #0x0
+ mov r1, #0x9
+ mov r2, #0xc
+ bl FUN_0207DA1C
+ mov r0, #0x0
+ str r0, [sp, #0x0]
+ ldr r3, _0207DD7C ; =0x000F0E00
+ add r0, r4, #0x0
+ mov r1, #0xa
+ mov r2, #0xd
+ bl FUN_0207DA1C
+ mov r0, #0x0
+ str r0, [sp, #0x0]
+ ldr r3, _0207DD7C ; =0x000F0E00
+ add r0, r4, #0x0
+ mov r1, #0xb
+ mov r2, #0xf
+ bl FUN_0207DA1C
+ mov r0, #0x0
+ str r0, [sp, #0x0]
+ ldr r3, _0207DD7C ; =0x000F0E00
+ add r0, r4, #0x0
+ mov r1, #0xc
+ mov r2, #0x11
+ bl FUN_0207DA1C
+ mov r0, #0x0
+ str r0, [sp, #0x0]
+ ldr r3, _0207DD7C ; =0x000F0E00
+ add r0, r4, #0x0
+ mov r1, #0xd
+ mov r2, #0x13
+ bl FUN_0207DA1C
+ mov r0, #0x0
+ str r0, [sp, #0x0]
+ ldr r3, _0207DD7C ; =0x000F0E00
+ add r0, r4, #0x0
+ mov r1, #0xf
+ mov r2, #0x6e
+ bl FUN_0207DA1C
+ mov r0, #0x0
+ str r0, [sp, #0x0]
+ ldr r3, _0207DD7C ; =0x000F0E00
+ add r0, r4, #0x0
+ mov r1, #0x10
+ mov r2, #0x6f
+ bl FUN_0207DA1C
+ mov r0, #0x0
+ str r0, [sp, #0x0]
+ ldr r3, _0207DD7C ; =0x000F0E00
+ add r0, r4, #0x0
+ mov r1, #0x11
+ mov r2, #0x70
+ bl FUN_0207DA1C
+ mov r0, #0x0
+ str r0, [sp, #0x0]
+ ldr r3, _0207DD7C ; =0x000F0E00
+ add r0, r4, #0x0
+ mov r1, #0x12
+ mov r2, #0x71
+ bl FUN_0207DA1C
+ mov r0, #0x0
+ str r0, [sp, #0x0]
+ ldr r3, _0207DD7C ; =0x000F0E00
+ add r0, r4, #0x0
+ mov r1, #0x13
+ mov r2, #0x72
+ bl FUN_0207DA1C
+ mov r0, #0x0
+ str r0, [sp, #0x0]
+ ldr r3, _0207DD7C ; =0x000F0E00
+ add r0, r4, #0x0
+ mov r1, #0x14
+ mov r2, #0x73
+ bl FUN_0207DA1C
+ mov r0, #0x0
+ str r0, [sp, #0x0]
+ ldr r3, _0207DD7C ; =0x000F0E00
+ add r0, r4, #0x0
+ mov r1, #0x15
+ mov r2, #0x74
+ bl FUN_0207DA1C
+ mov r0, #0x0
+ str r0, [sp, #0x0]
+ ldr r3, _0207DD7C ; =0x000F0E00
+ add r0, r4, #0x0
+ mov r1, #0x16
+ mov r2, #0x7f
+ bl FUN_0207DA1C
+ ldr r2, _0207DD80 ; =0x00000674
+ mov r1, #0x92
+ ldr r0, [r4, r2]
+ add r2, #0xc
+ ldr r2, [r4, r2]
+ bl FUN_0200A8E0
+ mov r0, #0x2
+ str r0, [sp, #0x0]
+ mov r2, #0xff
+ str r2, [sp, #0x4]
+ ldr r0, _0207DD7C ; =0x000F0E00
+ mov r1, #0x0
+ str r0, [sp, #0x8]
+ add r2, #0x85
+ add r0, r4, r2
+ mov r2, #0x1a
+ str r1, [sp, #0xc]
+ lsl r2, r2, #0x6
+ ldr r2, [r4, r2]
+ add r3, r1, #0x0
+ bl FUN_0201BDE0
+ mov r0, #0x0
+ str r0, [sp, #0x0]
+ ldr r3, _0207DD7C ; =0x000F0E00
+ add r0, r4, #0x0
+ mov r1, #0x19
+ mov r2, #0x95
+ bl FUN_0207DA1C
+ mov r0, #0x0
+ str r0, [sp, #0x0]
+ ldr r3, _0207DD7C ; =0x000F0E00
+ add r0, r4, #0x0
+ mov r1, #0x1a
+ mov r2, #0x93
+ bl FUN_0207DA1C
+ mov r0, #0x0
+ str r0, [sp, #0x0]
+ ldr r3, _0207DD7C ; =0x000F0E00
+ add r0, r4, #0x0
+ mov r1, #0x1b
+ mov r2, #0x94
+ bl FUN_0207DA1C
+ mov r0, #0x2
+ str r0, [sp, #0x0]
+ ldr r3, _0207DD7C ; =0x000F0E00
+ add r0, r4, #0x0
+ mov r1, #0x1c
+ mov r2, #0xa2
+ bl FUN_0207DA1C
+ mov r0, #0x2
+ str r0, [sp, #0x0]
+ ldr r3, _0207DD84 ; =0x00010200
+ add r0, r4, #0x0
+ mov r1, #0x1d
+ mov r2, #0xa0
+ bl FUN_0207DA1C
+ mov r0, #0x0
+ str r0, [sp, #0x0]
+ ldr r3, _0207DD84 ; =0x00010200
+ add r0, r4, #0x0
+ mov r1, #0x1e
+ mov r2, #0xb6
+ bl FUN_0207DA1C
+ mov r0, #0x0
+ str r0, [sp, #0x0]
+ ldr r3, _0207DD7C ; =0x000F0E00
+ add r0, r4, #0x0
+ mov r1, #0x1f
+ mov r2, #0xb3
+ bl FUN_0207DA1C
+ add sp, #0x10
+ pop {r4, pc}
+ .balign 4
+_0207DD7C: .word 0x000F0E00
+_0207DD80: .word 0x00000674
+_0207DD84: .word 0x00010200
+
+ thumb_func_start FUN_0207DD88
+FUN_0207DD88: ; 0x0207DD88
+ push {r4, lr}
+ sub sp, #0x10
+ mov r2, #0x0
+ add r4, r0, #0x0
+ str r2, [sp, #0x0]
+ mov r0, #0x20
+ str r0, [sp, #0x4]
+ mov r0, #0x2
+ str r0, [sp, #0x8]
+ mov r0, #0x10
+ str r0, [sp, #0xc]
+ ldr r0, [r4, #0x0]
+ mov r1, #0x1
+ add r3, r2, #0x0
+ bl FUN_02018540
+ mov r0, #0x2
+ str r0, [sp, #0x0]
+ mov r0, #0x12
+ str r0, [sp, #0x4]
+ mov r0, #0x16
+ str r0, [sp, #0x8]
+ mov r0, #0x10
+ str r0, [sp, #0xc]
+ ldr r0, [r4, #0x0]
+ mov r1, #0x1
+ mov r2, #0x0
+ mov r3, #0xe
+ bl FUN_02018540
+ ldr r0, _0207DE38 ; =0x0000068C
+ ldrsb r0, [r4, r0]
+ cmp r0, #0x7
+ bhi _0207DE34
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0207DDD8: ; jump table (using 16-bit offset)
+ .short _0207DDE8 - _0207DDD8 - 2; case 0
+ .short _0207DDF2 - _0207DDD8 - 2; case 1
+ .short _0207DDFC - _0207DDD8 - 2; case 2
+ .short _0207DE10 - _0207DDD8 - 2; case 3
+ .short _0207DE06 - _0207DDD8 - 2; case 4
+ .short _0207DE1A - _0207DDD8 - 2; case 5
+ .short _0207DE24 - _0207DDD8 - 2; case 6
+ .short _0207DE2E - _0207DDD8 - 2; case 7
+_0207DDE8:
+ add r0, r4, #0x0
+ bl FUN_0207DE3C
+ add sp, #0x10
+ pop {r4, pc}
+_0207DDF2:
+ add r0, r4, #0x0
+ bl FUN_0207E190
+ add sp, #0x10
+ pop {r4, pc}
+_0207DDFC:
+ add r0, r4, #0x0
+ bl FUN_0207E200
+ add sp, #0x10
+ pop {r4, pc}
+_0207DE06:
+ add r0, r4, #0x0
+ bl FUN_0207E4A0
+ add sp, #0x10
+ pop {r4, pc}
+_0207DE10:
+ add r0, r4, #0x0
+ bl FUN_0207E594
+ add sp, #0x10
+ pop {r4, pc}
+_0207DE1A:
+ add r0, r4, #0x0
+ bl FUN_0207E650
+ add sp, #0x10
+ pop {r4, pc}
+_0207DE24:
+ add r0, r4, #0x0
+ bl FUN_0207E70C
+ add sp, #0x10
+ pop {r4, pc}
+_0207DE2E:
+ add r0, r4, #0x0
+ bl FUN_0207E788
+_0207DE34:
+ add sp, #0x10
+ pop {r4, pc}
+ .balign 4
+_0207DE38: .word 0x0000068C
+
+ thumb_func_start FUN_0207DE3C
+FUN_0207DE3C: ; 0x0207DE3C
+ push {r3-r5, lr}
+ sub sp, #0x10
+ add r4, r0, #0x0
+ add r0, r4, #0x4
+ bl FUN_02019220
+ add r0, r4, #0x0
+ add r0, #0x74
+ bl FUN_02019220
+ add r0, r4, #0x0
+ add r0, #0x84
+ bl FUN_02019220
+ add r0, r4, #0x0
+ add r0, #0x94
+ bl FUN_02019220
+ add r0, r4, #0x0
+ add r0, #0xa4
+ bl FUN_02019220
+ add r0, r4, #0x0
+ add r0, #0xb4
+ bl FUN_02019220
+ add r0, r4, #0x0
+ add r0, #0xc4
+ bl FUN_02019220
+ add r0, r4, #0x0
+ add r0, #0xd4
+ bl FUN_02019220
+ add r0, r4, #0x0
+ add r0, #0xe4
+ bl FUN_02019220
+ mov r0, #0x91
+ lsl r0, r0, #0x2
+ ldr r0, [r4, r0]
+ mov r1, #0x0
+ bl FUN_02019620
+ mov r0, #0x91
+ lsl r0, r0, #0x2
+ ldr r0, [r4, r0]
+ mov r1, #0x0
+ add r0, #0x10
+ bl FUN_02019620
+ mov r0, #0x91
+ lsl r0, r0, #0x2
+ ldr r0, [r4, r0]
+ mov r1, #0x0
+ add r0, #0x20
+ bl FUN_02019620
+ mov r0, #0x91
+ lsl r0, r0, #0x2
+ ldr r0, [r4, r0]
+ mov r1, #0x0
+ add r0, #0x30
+ bl FUN_02019620
+ mov r0, #0x91
+ lsl r0, r0, #0x2
+ ldr r0, [r4, r0]
+ mov r1, #0x0
+ add r0, #0x40
+ bl FUN_02019620
+ mov r0, #0x91
+ lsl r0, r0, #0x2
+ ldr r0, [r4, r0]
+ mov r1, #0x0
+ add r0, #0x50
+ bl FUN_02019620
+ mov r1, #0x93
+ lsl r1, r1, #0x2
+ ldr r0, [r4, r1]
+ add r1, #0x10
+ ldrh r1, [r4, r1]
+ ldr r0, [r0, #0x1c]
+ bl FUN_0206BB48
+ add r2, r0, #0x0
+ beq _0207DEFE
+ mov r0, #0x2
+ str r0, [sp, #0x0]
+ add r0, r4, #0x0
+ mov r1, #0x9
+ mov r3, #0x3
+ bl FUN_0207DA48
+ b _0207DF0C
+_0207DEFE:
+ ldr r2, _0207E0B4 ; =0x00000674
+ mov r1, #0x16
+ ldr r0, [r4, r2]
+ add r2, #0xc
+ ldr r2, [r4, r2]
+ bl FUN_0200A8E0
+_0207DF0C:
+ mov r1, #0x2a
+ lsl r1, r1, #0x4
+ ldr r0, [r4, r1]
+ lsl r0, r0, #0x2
+ lsr r0, r0, #0x1f
+ bne _0207DF28
+ sub r1, #0x5c
+ ldr r1, [r4, r1]
+ ldr r2, _0207E0B8 ; =0x00010200
+ add r0, r4, #0x0
+ mov r3, #0x2
+ bl FUN_0207D998
+ b _0207DF36
+_0207DF28:
+ sub r1, #0x5c
+ ldr r1, [r4, r1]
+ ldr r2, _0207E0BC ; =0x00050600
+ add r0, r4, #0x0
+ mov r3, #0x2
+ bl FUN_0207D998
+_0207DF36:
+ mov r1, #0x25
+ lsl r1, r1, #0x4
+ mov r0, #0x0
+ ldr r1, [r4, r1]
+ add r2, r0, #0x0
+ bl FUN_02002E14
+ mov r2, #0x91
+ lsl r2, r2, #0x2
+ ldr r3, [r4, r2]
+ mov r1, #0x0
+ add r5, r0, #0x0
+ str r1, [sp, #0x0]
+ mov r0, #0xff
+ str r0, [sp, #0x4]
+ ldr r0, _0207E0B8 ; =0x00010200
+ add r2, #0xc
+ str r0, [sp, #0x8]
+ str r1, [sp, #0xc]
+ add r0, r3, #0x0
+ ldrb r3, [r3, #0x17]
+ ldr r2, [r4, r2]
+ add r0, #0x10
+ lsl r3, r3, #0x3
+ sub r3, r3, r5
+ lsr r3, r3, #0x1
+ bl FUN_0201BDE0
+ mov r1, #0x96
+ lsl r1, r1, #0x2
+ mov r0, #0x0
+ ldr r1, [r4, r1]
+ add r2, r0, #0x0
+ bl FUN_02002E14
+ mov r5, #0x91
+ lsl r5, r5, #0x2
+ ldr r2, [r4, r5]
+ add r1, r2, #0x0
+ add r1, #0x27
+ ldrb r1, [r1, #0x0]
+ lsl r1, r1, #0x3
+ sub r0, r1, r0
+ lsr r3, r0, #0x1
+ add r0, r5, #0x0
+ add r0, #0x50
+ ldrb r0, [r4, r0]
+ cmp r0, #0x0
+ bne _0207DFB6
+ mov r1, #0x0
+ str r1, [sp, #0x0]
+ mov r0, #0xff
+ str r0, [sp, #0x4]
+ mov r0, #0xc1
+ lsl r0, r0, #0xa
+ str r0, [sp, #0x8]
+ add r2, #0x20
+ str r1, [sp, #0xc]
+ add r5, #0x14
+ add r0, r2, #0x0
+ ldr r2, [r4, r5]
+ bl FUN_0201BDE0
+ b _0207DFD0
+_0207DFB6:
+ mov r1, #0x0
+ str r1, [sp, #0x0]
+ mov r0, #0xff
+ str r0, [sp, #0x4]
+ ldr r0, _0207E0BC ; =0x00050600
+ add r2, #0x20
+ str r0, [sp, #0x8]
+ str r1, [sp, #0xc]
+ add r5, #0x14
+ add r0, r2, #0x0
+ ldr r2, [r4, r5]
+ bl FUN_0201BDE0
+_0207DFD0:
+ mov r0, #0x2
+ mov r2, #0x99
+ str r0, [sp, #0x0]
+ lsl r2, r2, #0x2
+ ldr r2, [r4, r2]
+ add r0, r4, #0x0
+ lsl r2, r2, #0x10
+ mov r1, #0x10
+ lsr r2, r2, #0x10
+ mov r3, #0x5
+ bl FUN_0207DA48
+ mov r1, #0x91
+ lsl r1, r1, #0x2
+ ldr r1, [r4, r1]
+ ldr r2, _0207E0B8 ; =0x00010200
+ add r0, r4, #0x0
+ add r1, #0x30
+ mov r3, #0x2
+ bl FUN_0207D998
+ mov r0, #0x1
+ mov r2, #0x9a
+ str r0, [sp, #0x0]
+ lsl r2, r2, #0x2
+ ldr r2, [r4, r2]
+ add r0, r4, #0x0
+ mov r1, #0x12
+ mov r3, #0x7
+ bl FUN_0207DA48
+ mov r1, #0x91
+ lsl r1, r1, #0x2
+ ldr r1, [r4, r1]
+ ldr r2, _0207E0B8 ; =0x00010200
+ add r0, r4, #0x0
+ add r1, #0x40
+ mov r3, #0x2
+ bl FUN_0207D998
+ ldr r3, _0207E0C0 ; =0x00000262
+ ldrb r0, [r4, r3]
+ lsl r0, r0, #0x19
+ lsr r0, r0, #0x19
+ cmp r0, #0x64
+ bhs _0207E048
+ mov r0, #0x1
+ add r2, r3, #0x0
+ str r0, [sp, #0x0]
+ add r2, #0xe
+ ldr r5, [r4, r2]
+ add r2, r3, #0x6
+ ldr r2, [r4, r2]
+ add r0, r4, #0x0
+ mov r1, #0x15
+ sub r2, r5, r2
+ mov r3, #0x7
+ bl FUN_0207DA48
+ b _0207E058
+_0207E048:
+ mov r0, #0x1
+ str r0, [sp, #0x0]
+ add r0, r4, #0x0
+ mov r1, #0x15
+ mov r2, #0x0
+ mov r3, #0x7
+ bl FUN_0207DA48
+_0207E058:
+ mov r1, #0x91
+ lsl r1, r1, #0x2
+ ldr r1, [r4, r1]
+ ldr r2, _0207E0B8 ; =0x00010200
+ add r0, r4, #0x0
+ add r1, #0x50
+ mov r3, #0x2
+ bl FUN_0207D998
+ mov r0, #0x91
+ lsl r0, r0, #0x2
+ ldr r0, [r4, r0]
+ bl FUN_02019220
+ mov r0, #0x91
+ lsl r0, r0, #0x2
+ ldr r0, [r4, r0]
+ add r0, #0x10
+ bl FUN_02019220
+ mov r0, #0x91
+ lsl r0, r0, #0x2
+ ldr r0, [r4, r0]
+ add r0, #0x20
+ bl FUN_02019220
+ mov r0, #0x91
+ lsl r0, r0, #0x2
+ ldr r0, [r4, r0]
+ add r0, #0x30
+ bl FUN_02019220
+ mov r0, #0x91
+ lsl r0, r0, #0x2
+ ldr r0, [r4, r0]
+ add r0, #0x40
+ bl FUN_02019220
+ mov r0, #0x91
+ lsl r0, r0, #0x2
+ ldr r0, [r4, r0]
+ add r0, #0x50
+ bl FUN_02019220
+ add sp, #0x10
+ pop {r3-r5, pc}
+ .balign 4
+_0207E0B4: .word 0x00000674
+_0207E0B8: .word 0x00010200
+_0207E0BC: .word 0x00050600
+_0207E0C0: .word 0x00000262
+
+ thumb_func_start FUN_0207E0C4
+FUN_0207E0C4: ; 0x0207E0C4
+ push {r3-r5, lr}
+ sub sp, #0x10
+ add r5, r0, #0x0
+ add r0, r1, #0x0
+ add r1, r2, #0x0
+ mov r2, #0x13
+ bl FUN_0207FD00
+ add r4, r0, #0x0
+ ldr r2, [r4, #0x18]
+ cmp r2, #0x0
+ beq _0207E0F8
+ ldr r0, [r4, #0x14]
+ mov r1, #0x0
+ sub r0, r0, #0x1
+ lsl r0, r0, #0x4
+ str r0, [sp, #0x0]
+ mov r0, #0xff
+ str r0, [sp, #0x4]
+ ldr r0, _0207E18C ; =0x00010200
+ add r3, r1, #0x0
+ str r0, [sp, #0x8]
+ add r0, r5, #0x0
+ str r1, [sp, #0xc]
+ bl FUN_0201BDE0
+_0207E0F8:
+ ldr r2, [r4, #0x20]
+ cmp r2, #0x0
+ beq _0207E11A
+ ldr r0, [r4, #0x1c]
+ mov r1, #0x0
+ sub r0, r0, #0x1
+ lsl r0, r0, #0x4
+ str r0, [sp, #0x0]
+ mov r0, #0xff
+ str r0, [sp, #0x4]
+ ldr r0, _0207E18C ; =0x00010200
+ add r3, r1, #0x0
+ str r0, [sp, #0x8]
+ add r0, r5, #0x0
+ str r1, [sp, #0xc]
+ bl FUN_0201BDE0
+_0207E11A:
+ ldr r2, [r4, #0x28]
+ cmp r2, #0x0
+ beq _0207E13C
+ ldr r0, [r4, #0x24]
+ mov r1, #0x0
+ sub r0, r0, #0x1
+ lsl r0, r0, #0x4
+ str r0, [sp, #0x0]
+ mov r0, #0xff
+ str r0, [sp, #0x4]
+ ldr r0, _0207E18C ; =0x00010200
+ add r3, r1, #0x0
+ str r0, [sp, #0x8]
+ add r0, r5, #0x0
+ str r1, [sp, #0xc]
+ bl FUN_0201BDE0
+_0207E13C:
+ ldr r2, [r4, #0x30]
+ cmp r2, #0x0
+ beq _0207E15E
+ ldr r0, [r4, #0x2c]
+ mov r1, #0x0
+ sub r0, r0, #0x1
+ lsl r0, r0, #0x4
+ str r0, [sp, #0x0]
+ mov r0, #0xff
+ str r0, [sp, #0x4]
+ ldr r0, _0207E18C ; =0x00010200
+ add r3, r1, #0x0
+ str r0, [sp, #0x8]
+ add r0, r5, #0x0
+ str r1, [sp, #0xc]
+ bl FUN_0201BDE0
+_0207E15E:
+ ldr r2, [r4, #0x38]
+ cmp r2, #0x0
+ beq _0207E180
+ ldr r0, [r4, #0x34]
+ mov r1, #0x0
+ sub r0, r0, #0x1
+ lsl r0, r0, #0x4
+ str r0, [sp, #0x0]
+ mov r0, #0xff
+ str r0, [sp, #0x4]
+ ldr r0, _0207E18C ; =0x00010200
+ add r3, r1, #0x0
+ str r0, [sp, #0x8]
+ add r0, r5, #0x0
+ str r1, [sp, #0xc]
+ bl FUN_0201BDE0
+_0207E180:
+ add r0, r4, #0x0
+ bl FUN_02080094
+ add sp, #0x10
+ pop {r3-r5, pc}
+ nop
+_0207E18C: .word 0x00010200
+
+ thumb_func_start FUN_0207E190
+FUN_0207E190: ; 0x0207E190
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ add r0, #0x14
+ bl FUN_02019220
+ mov r0, #0x91
+ lsl r0, r0, #0x2
+ ldr r0, [r5, r0]
+ mov r1, #0x0
+ bl FUN_02019620
+ add r0, r5, #0x0
+ bl FUN_0207B628
+ add r6, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_0207D958
+ add r7, r0, #0x0
+ mov r0, #0x93
+ lsl r0, r0, #0x2
+ ldr r1, [r5, r0]
+ ldrb r1, [r1, #0x11]
+ cmp r1, #0x2
+ bne _0207E1E8
+ mov r0, #0x13
+ bl FUN_020669C0
+ add r4, r0, #0x0
+ add r0, r6, #0x0
+ add r1, r4, #0x0
+ bl FUN_02069A64
+ mov r0, #0x91
+ lsl r0, r0, #0x2
+ ldr r0, [r5, r0]
+ add r1, r4, #0x0
+ add r2, r7, #0x0
+ bl FUN_0207E0C4
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ b _0207E1F4
+_0207E1E8:
+ sub r0, #0x8
+ ldr r0, [r5, r0]
+ add r1, r6, #0x0
+ add r2, r7, #0x0
+ bl FUN_0207E0C4
+_0207E1F4:
+ mov r0, #0x91
+ lsl r0, r0, #0x2
+ ldr r0, [r5, r0]
+ bl FUN_02019220
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_0207E200
+FUN_0207E200: ; 0x0207E200
+ push {r3-r5, lr}
+ sub sp, #0x18
+ add r4, r0, #0x0
+ add r0, #0x24
+ bl FUN_02019220
+ add r0, r4, #0x0
+ add r0, #0xf4
+ bl FUN_02019220
+ mov r0, #0x41
+ lsl r0, r0, #0x2
+ add r0, r4, r0
+ bl FUN_02019220
+ mov r0, #0x45
+ lsl r0, r0, #0x2
+ add r0, r4, r0
+ bl FUN_02019220
+ mov r0, #0x49
+ lsl r0, r0, #0x2
+ add r0, r4, r0
+ bl FUN_02019220
+ mov r0, #0x4d
+ lsl r0, r0, #0x2
+ add r0, r4, r0
+ bl FUN_02019220
+ mov r0, #0x51
+ lsl r0, r0, #0x2
+ add r0, r4, r0
+ bl FUN_02019220
+ mov r0, #0x55
+ lsl r0, r0, #0x2
+ add r0, r4, r0
+ bl FUN_02019220
+ mov r0, #0x91
+ lsl r0, r0, #0x2
+ ldr r0, [r4, r0]
+ mov r1, #0x0
+ bl FUN_02019620
+ mov r0, #0x91
+ lsl r0, r0, #0x2
+ ldr r0, [r4, r0]
+ mov r1, #0x0
+ add r0, #0x10
+ bl FUN_02019620
+ mov r0, #0x91
+ lsl r0, r0, #0x2
+ ldr r0, [r4, r0]
+ mov r1, #0x0
+ add r0, #0x20
+ bl FUN_02019620
+ mov r0, #0x91
+ lsl r0, r0, #0x2
+ ldr r0, [r4, r0]
+ mov r1, #0x0
+ add r0, #0x30
+ bl FUN_02019620
+ mov r0, #0x91
+ lsl r0, r0, #0x2
+ ldr r0, [r4, r0]
+ mov r1, #0x0
+ add r0, #0x40
+ bl FUN_02019620
+ mov r0, #0x91
+ lsl r0, r0, #0x2
+ ldr r0, [r4, r0]
+ mov r1, #0x0
+ add r0, #0x50
+ bl FUN_02019620
+ mov r0, #0x91
+ lsl r0, r0, #0x2
+ ldr r0, [r4, r0]
+ mov r1, #0x0
+ add r0, #0x60
+ bl FUN_02019620
+ mov r0, #0x91
+ lsl r0, r0, #0x2
+ ldr r0, [r4, r0]
+ mov r1, #0x0
+ add r0, #0x70
+ bl FUN_02019620
+ mov r0, #0x91
+ lsl r0, r0, #0x2
+ ldr r0, [r4, r0]
+ bl FUN_0201AB0C
+ mov r1, #0x76
+ str r1, [sp, #0x0]
+ mov r1, #0x9d
+ lsl r1, r1, #0x2
+ ldrh r2, [r4, r1]
+ lsl r0, r0, #0x1a
+ add r1, r1, #0x2
+ str r2, [sp, #0x4]
+ ldrh r1, [r4, r1]
+ lsr r0, r0, #0x18
+ mov r2, #0x75
+ str r1, [sp, #0x8]
+ mov r1, #0x3
+ str r1, [sp, #0xc]
+ str r0, [sp, #0x10]
+ mov r1, #0x0
+ add r0, r4, #0x0
+ mov r3, #0x77
+ str r1, [sp, #0x14]
+ bl FUN_0207DA94
+ mov r0, #0x0
+ mov r2, #0x9e
+ str r0, [sp, #0x0]
+ lsl r2, r2, #0x2
+ ldrh r2, [r4, r2]
+ add r0, r4, #0x0
+ mov r1, #0x78
+ mov r3, #0x3
+ bl FUN_0207DA48
+ mov r1, #0x91
+ lsl r1, r1, #0x2
+ ldr r1, [r4, r1]
+ ldr r2, _0207E484 ; =0x00010200
+ add r0, r4, #0x0
+ add r1, #0x10
+ mov r3, #0x1
+ bl FUN_0207D998
+ mov r0, #0x0
+ str r0, [sp, #0x0]
+ ldr r2, _0207E488 ; =0x0000027A
+ add r0, r4, #0x0
+ ldrh r2, [r4, r2]
+ mov r1, #0x79
+ mov r3, #0x3
+ bl FUN_0207DA48
+ mov r1, #0x91
+ lsl r1, r1, #0x2
+ ldr r1, [r4, r1]
+ ldr r2, _0207E484 ; =0x00010200
+ add r0, r4, #0x0
+ add r1, #0x20
+ mov r3, #0x1
+ bl FUN_0207D998
+ mov r0, #0x0
+ mov r2, #0x9f
+ str r0, [sp, #0x0]
+ lsl r2, r2, #0x2
+ ldrh r2, [r4, r2]
+ add r0, r4, #0x0
+ mov r1, #0x7a
+ mov r3, #0x3
+ bl FUN_0207DA48
+ mov r1, #0x91
+ lsl r1, r1, #0x2
+ ldr r1, [r4, r1]
+ ldr r2, _0207E484 ; =0x00010200
+ add r0, r4, #0x0
+ add r1, #0x30
+ mov r3, #0x1
+ bl FUN_0207D998
+ mov r0, #0x0
+ str r0, [sp, #0x0]
+ ldr r2, _0207E48C ; =0x0000027E
+ add r0, r4, #0x0
+ ldrh r2, [r4, r2]
+ mov r1, #0x7b
+ mov r3, #0x3
+ bl FUN_0207DA48
+ mov r1, #0x91
+ lsl r1, r1, #0x2
+ ldr r1, [r4, r1]
+ ldr r2, _0207E484 ; =0x00010200
+ add r0, r4, #0x0
+ add r1, #0x40
+ mov r3, #0x1
+ bl FUN_0207D998
+ mov r0, #0x0
+ mov r2, #0xa
+ str r0, [sp, #0x0]
+ lsl r2, r2, #0x6
+ ldrh r2, [r4, r2]
+ add r0, r4, #0x0
+ mov r1, #0x7c
+ mov r3, #0x3
+ bl FUN_0207DA48
+ mov r1, #0x91
+ lsl r1, r1, #0x2
+ ldr r1, [r4, r1]
+ ldr r2, _0207E484 ; =0x00010200
+ add r0, r4, #0x0
+ add r1, #0x50
+ mov r3, #0x1
+ bl FUN_0207D998
+ ldr r2, _0207E490 ; =0x00000282
+ ldr r0, _0207E494 ; =0x0000067C
+ ldrb r2, [r4, r2]
+ ldr r0, [r4, r0]
+ mov r1, #0x0
+ bl FUN_0200ADCC
+ ldr r0, _0207E498 ; =0x00000674
+ mov r1, #0x7d
+ ldr r0, [r4, r0]
+ bl FUN_0200A914
+ add r5, r0, #0x0
+ ldr r1, _0207E494 ; =0x0000067C
+ add r2, r5, #0x0
+ ldr r0, [r4, r1]
+ add r1, r1, #0x4
+ ldr r1, [r4, r1]
+ bl FUN_0200B7B8
+ add r0, r5, #0x0
+ bl FUN_02021A20
+ mov r1, #0x91
+ lsl r1, r1, #0x2
+ ldr r1, [r4, r1]
+ ldr r2, _0207E484 ; =0x00010200
+ add r0, r4, #0x0
+ add r1, #0x60
+ mov r3, #0x0
+ bl FUN_0207D998
+ ldr r2, _0207E49C ; =0x0000022A
+ mov r0, #0x1
+ mov r1, #0x1a
+ mov r3, #0x13
+ bl FUN_0200A86C
+ ldr r1, _0207E490 ; =0x00000282
+ mov r2, #0x1a
+ lsl r2, r2, #0x6
+ ldrb r1, [r4, r1]
+ ldr r2, [r4, r2]
+ add r5, r0, #0x0
+ bl FUN_0200A8E0
+ add r0, r5, #0x0
+ bl FUN_0200A8B8
+ mov r1, #0x91
+ lsl r1, r1, #0x2
+ ldr r1, [r4, r1]
+ ldr r2, _0207E484 ; =0x00010200
+ add r0, r4, #0x0
+ add r1, #0x70
+ mov r3, #0x0
+ bl FUN_0207D998
+ mov r0, #0x91
+ lsl r0, r0, #0x2
+ ldr r0, [r4, r0]
+ bl FUN_02019220
+ mov r0, #0x91
+ lsl r0, r0, #0x2
+ ldr r0, [r4, r0]
+ add r0, #0x10
+ bl FUN_02019220
+ mov r0, #0x91
+ lsl r0, r0, #0x2
+ ldr r0, [r4, r0]
+ add r0, #0x20
+ bl FUN_02019220
+ mov r0, #0x91
+ lsl r0, r0, #0x2
+ ldr r0, [r4, r0]
+ add r0, #0x30
+ bl FUN_02019220
+ mov r0, #0x91
+ lsl r0, r0, #0x2
+ ldr r0, [r4, r0]
+ add r0, #0x40
+ bl FUN_02019220
+ mov r0, #0x91
+ lsl r0, r0, #0x2
+ ldr r0, [r4, r0]
+ add r0, #0x50
+ bl FUN_02019220
+ mov r0, #0x91
+ lsl r0, r0, #0x2
+ ldr r0, [r4, r0]
+ add r0, #0x60
+ bl FUN_02019220
+ mov r0, #0x91
+ lsl r0, r0, #0x2
+ ldr r0, [r4, r0]
+ add r0, #0x70
+ bl FUN_02019220
+ add sp, #0x18
+ pop {r3-r5, pc}
+ nop
+_0207E484: .word 0x00010200
+_0207E488: .word 0x0000027A
+_0207E48C: .word 0x0000027E
+_0207E490: .word 0x00000282
+_0207E494: .word 0x0000067C
+_0207E498: .word 0x00000674
+_0207E49C: .word 0x0000022A
+
+ thumb_func_start FUN_0207E4A0
+FUN_0207E4A0: ; 0x0207E4A0
+ push {r4, lr}
+ sub sp, #0x10
+ add r4, r0, #0x0
+ add r0, #0x34
+ bl FUN_02019220
+ mov r0, #0x59
+ lsl r0, r0, #0x2
+ add r0, r4, r0
+ bl FUN_02019220
+ mov r0, #0x93
+ lsl r0, r0, #0x2
+ ldr r0, [r4, r0]
+ ldrb r0, [r0, #0x12]
+ cmp r0, #0x3
+ beq _0207E4C6
+ cmp r0, #0x4
+ bne _0207E580
+_0207E4C6:
+ mov r0, #0x91
+ lsl r0, r0, #0x2
+ ldr r0, [r4, r0]
+ mov r1, #0x0
+ add r0, #0x10
+ bl FUN_02019620
+ ldr r2, _0207E584 ; =0x00000674
+ mov r1, #0xa5
+ ldr r0, [r4, r2]
+ add r2, #0xc
+ ldr r2, [r4, r2]
+ bl FUN_0200A8E0
+ mov r1, #0x91
+ lsl r1, r1, #0x2
+ ldr r1, [r4, r1]
+ ldr r2, _0207E588 ; =0x000F0E00
+ add r0, r4, #0x0
+ add r1, #0x10
+ mov r3, #0x0
+ bl FUN_0207D998
+ ldr r1, _0207E58C ; =0x0000029B
+ ldr r2, _0207E584 ; =0x00000674
+ ldrb r1, [r4, r1]
+ ldr r0, [r4, r2]
+ add r2, #0xc
+ ldr r2, [r4, r2]
+ add r1, #0xa6
+ bl FUN_0200A8E0
+ mov r0, #0x10
+ str r0, [sp, #0x0]
+ mov r0, #0xff
+ str r0, [sp, #0x4]
+ ldr r0, _0207E590 ; =0x00010200
+ mov r1, #0x0
+ str r0, [sp, #0x8]
+ mov r0, #0x91
+ mov r2, #0x1a
+ str r1, [sp, #0xc]
+ lsl r0, r0, #0x2
+ ldr r0, [r4, r0]
+ lsl r2, r2, #0x6
+ ldr r2, [r4, r2]
+ add r0, #0x10
+ add r3, r1, #0x0
+ bl FUN_0201BDE0
+ mov r0, #0x91
+ lsl r0, r0, #0x2
+ ldr r0, [r4, r0]
+ add r0, #0x10
+ bl FUN_02019220
+ mov r0, #0x93
+ lsl r0, r0, #0x2
+ ldr r1, [r4, r0]
+ ldrb r1, [r1, #0x12]
+ cmp r1, #0x3
+ bne _0207E580
+ sub r0, #0x8
+ ldr r0, [r4, r0]
+ mov r1, #0x0
+ bl FUN_02019620
+ ldr r2, _0207E584 ; =0x00000674
+ mov r1, #0xa3
+ ldr r0, [r4, r2]
+ add r2, #0xc
+ ldr r2, [r4, r2]
+ bl FUN_0200A8E0
+ mov r1, #0x91
+ lsl r1, r1, #0x2
+ ldr r1, [r4, r1]
+ ldr r2, _0207E588 ; =0x000F0E00
+ add r0, r4, #0x0
+ mov r3, #0x0
+ bl FUN_0207D998
+ mov r0, #0x91
+ lsl r0, r0, #0x2
+ ldr r0, [r4, r0]
+ bl FUN_02019220
+ mov r1, #0x91
+ lsl r1, r1, #0x2
+ ldr r1, [r4, r1]
+ add r0, r4, #0x0
+ bl FUN_0207CFAC
+_0207E580:
+ add sp, #0x10
+ pop {r4, pc}
+ .balign 4
+_0207E584: .word 0x00000674
+_0207E588: .word 0x000F0E00
+_0207E58C: .word 0x0000029B
+_0207E590: .word 0x00010200
+
+ thumb_func_start FUN_0207E594
+FUN_0207E594: ; 0x0207E594
+ push {r4, lr}
+ add r4, r0, #0x0
+ add r0, #0x44
+ bl FUN_02019220
+ mov r0, #0x93
+ lsl r0, r0, #0x2
+ ldr r0, [r4, r0]
+ ldrb r0, [r0, #0x12]
+ cmp r0, #0x2
+ bne _0207E5B4
+ add r0, r4, #0x0
+ mov r1, #0x9b
+ bl FUN_0207D924
+ b _0207E5BC
+_0207E5B4:
+ add r0, r4, #0x0
+ mov r1, #0x81
+ bl FUN_0207D924
+_0207E5BC:
+ mov r1, #0x8d
+ lsl r1, r1, #0x2
+ add r0, r4, #0x0
+ add r1, r4, r1
+ bl FUN_0207CFAC
+ mov r0, #0x91
+ lsl r0, r0, #0x2
+ ldr r0, [r4, r0]
+ mov r1, #0x0
+ bl FUN_02019620
+ mov r0, #0x91
+ lsl r0, r0, #0x2
+ ldr r0, [r4, r0]
+ mov r1, #0x0
+ add r0, #0x10
+ bl FUN_02019620
+ mov r0, #0x91
+ lsl r0, r0, #0x2
+ ldr r0, [r4, r0]
+ mov r1, #0x0
+ add r0, #0x20
+ bl FUN_02019620
+ mov r0, #0x91
+ lsl r0, r0, #0x2
+ ldr r0, [r4, r0]
+ mov r1, #0x0
+ add r0, #0x30
+ bl FUN_02019620
+ add r0, r4, #0x0
+ mov r1, #0x0
+ bl FUN_0207EA44
+ add r0, r4, #0x0
+ mov r1, #0x1
+ bl FUN_0207EA44
+ add r0, r4, #0x0
+ mov r1, #0x2
+ bl FUN_0207EA44
+ add r0, r4, #0x0
+ mov r1, #0x3
+ bl FUN_0207EA44
+ mov r0, #0x91
+ lsl r0, r0, #0x2
+ ldr r0, [r4, r0]
+ bl FUN_02019220
+ mov r0, #0x91
+ lsl r0, r0, #0x2
+ ldr r0, [r4, r0]
+ add r0, #0x10
+ bl FUN_02019220
+ mov r0, #0x91
+ lsl r0, r0, #0x2
+ ldr r0, [r4, r0]
+ add r0, #0x20
+ bl FUN_02019220
+ mov r0, #0x91
+ lsl r0, r0, #0x2
+ ldr r0, [r4, r0]
+ add r0, #0x30
+ bl FUN_02019220
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0207E650
+FUN_0207E650: ; 0x0207E650
+ push {r4, lr}
+ add r4, r0, #0x0
+ add r0, #0x54
+ bl FUN_02019220
+ mov r0, #0x93
+ lsl r0, r0, #0x2
+ ldr r0, [r4, r0]
+ ldrb r0, [r0, #0x12]
+ cmp r0, #0x2
+ bne _0207E670
+ add r0, r4, #0x0
+ mov r1, #0x9f
+ bl FUN_0207D924
+ b _0207E678
+_0207E670:
+ add r0, r4, #0x0
+ mov r1, #0x9e
+ bl FUN_0207D924
+_0207E678:
+ mov r1, #0x8d
+ lsl r1, r1, #0x2
+ add r0, r4, #0x0
+ add r1, r4, r1
+ bl FUN_0207CFAC
+ mov r0, #0x91
+ lsl r0, r0, #0x2
+ ldr r0, [r4, r0]
+ mov r1, #0x0
+ bl FUN_02019620
+ mov r0, #0x91
+ lsl r0, r0, #0x2
+ ldr r0, [r4, r0]
+ mov r1, #0x0
+ add r0, #0x10
+ bl FUN_02019620
+ mov r0, #0x91
+ lsl r0, r0, #0x2
+ ldr r0, [r4, r0]
+ mov r1, #0x0
+ add r0, #0x20
+ bl FUN_02019620
+ mov r0, #0x91
+ lsl r0, r0, #0x2
+ ldr r0, [r4, r0]
+ mov r1, #0x0
+ add r0, #0x30
+ bl FUN_02019620
+ add r0, r4, #0x0
+ mov r1, #0x0
+ bl FUN_0207EA44
+ add r0, r4, #0x0
+ mov r1, #0x1
+ bl FUN_0207EA44
+ add r0, r4, #0x0
+ mov r1, #0x2
+ bl FUN_0207EA44
+ add r0, r4, #0x0
+ mov r1, #0x3
+ bl FUN_0207EA44
+ mov r0, #0x91
+ lsl r0, r0, #0x2
+ ldr r0, [r4, r0]
+ bl FUN_02019220
+ mov r0, #0x91
+ lsl r0, r0, #0x2
+ ldr r0, [r4, r0]
+ add r0, #0x10
+ bl FUN_02019220
+ mov r0, #0x91
+ lsl r0, r0, #0x2
+ ldr r0, [r4, r0]
+ add r0, #0x20
+ bl FUN_02019220
+ mov r0, #0x91
+ lsl r0, r0, #0x2
+ ldr r0, [r4, r0]
+ add r0, #0x30
+ bl FUN_02019220
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0207E70C
+FUN_0207E70C: ; 0x0207E70C
+ push {r3-r4, lr}
+ sub sp, #0x4
+ add r4, r0, #0x0
+ mov r0, #0x7d
+ lsl r0, r0, #0x2
+ add r0, r4, r0
+ bl FUN_02019220
+ mov r0, #0x79
+ lsl r0, r0, #0x2
+ add r0, r4, r0
+ bl FUN_02019220
+ mov r0, #0x91
+ lsl r0, r0, #0x2
+ ldr r0, [r4, r0]
+ mov r1, #0x0
+ bl FUN_02019620
+ mov r0, #0x0
+ str r0, [sp, #0x0]
+ ldr r2, _0207E780 ; =0x00000699
+ add r0, r4, #0x0
+ ldrb r2, [r4, r2]
+ mov r1, #0xb7
+ mov r3, #0x3
+ bl FUN_0207DA48
+ mov r1, #0x91
+ lsl r1, r1, #0x2
+ ldr r1, [r4, r1]
+ ldr r2, _0207E784 ; =0x00010200
+ add r0, r4, #0x0
+ mov r3, #0x0
+ bl FUN_0207D998
+ mov r0, #0x91
+ lsl r0, r0, #0x2
+ ldr r0, [r4, r0]
+ bl FUN_02019220
+ ldr r0, _0207E780 ; =0x00000699
+ ldrb r0, [r4, r0]
+ cmp r0, #0x0
+ beq _0207E77A
+ add r0, r4, #0x0
+ mov r1, #0xb4
+ bl FUN_0207D924
+ mov r1, #0x8d
+ lsl r1, r1, #0x2
+ add r0, r4, #0x0
+ add r1, r4, r1
+ bl FUN_0207CFAC
+_0207E77A:
+ add sp, #0x4
+ pop {r3-r4, pc}
+ nop
+_0207E780: .word 0x00000699
+_0207E784: .word 0x00010200
+
+ thumb_func_start FUN_0207E788
+FUN_0207E788: ; 0x0207E788
+ push {r4, lr}
+ sub sp, #0x10
+ add r4, r0, #0x0
+ mov r0, #0x71
+ lsl r0, r0, #0x2
+ add r0, r4, r0
+ bl FUN_02019220
+ add r0, r4, #0x0
+ mov r1, #0xa1
+ bl FUN_0207D924
+ mov r1, #0x8d
+ lsl r1, r1, #0x2
+ add r0, r4, #0x0
+ add r1, r4, r1
+ bl FUN_0207CFAC
+ mov r0, #0x93
+ lsl r0, r0, #0x2
+ ldr r0, [r4, r0]
+ ldrb r0, [r0, #0x12]
+ cmp r0, #0x3
+ beq _0207E7BC
+ cmp r0, #0x4
+ bne _0207E82C
+_0207E7BC:
+ mov r0, #0x91
+ lsl r0, r0, #0x2
+ ldr r0, [r4, r0]
+ mov r1, #0x0
+ add r0, #0x10
+ bl FUN_02019620
+ ldr r2, _0207E830 ; =0x00000674
+ mov r1, #0xa5
+ ldr r0, [r4, r2]
+ add r2, #0xc
+ ldr r2, [r4, r2]
+ bl FUN_0200A8E0
+ mov r1, #0x91
+ lsl r1, r1, #0x2
+ ldr r1, [r4, r1]
+ ldr r2, _0207E834 ; =0x000F0E00
+ add r0, r4, #0x0
+ add r1, #0x10
+ mov r3, #0x0
+ bl FUN_0207D998
+ ldr r1, _0207E838 ; =0x0000029B
+ ldr r2, _0207E830 ; =0x00000674
+ ldrb r1, [r4, r1]
+ ldr r0, [r4, r2]
+ add r2, #0xc
+ ldr r2, [r4, r2]
+ add r1, #0xa6
+ bl FUN_0200A8E0
+ mov r0, #0x10
+ str r0, [sp, #0x0]
+ mov r0, #0xff
+ str r0, [sp, #0x4]
+ ldr r0, _0207E83C ; =0x00010200
+ mov r1, #0x0
+ str r0, [sp, #0x8]
+ mov r0, #0x91
+ mov r2, #0x1a
+ str r1, [sp, #0xc]
+ lsl r0, r0, #0x2
+ ldr r0, [r4, r0]
+ lsl r2, r2, #0x6
+ ldr r2, [r4, r2]
+ add r0, #0x10
+ add r3, r1, #0x0
+ bl FUN_0201BDE0
+ mov r0, #0x91
+ lsl r0, r0, #0x2
+ ldr r0, [r4, r0]
+ add r0, #0x10
+ bl FUN_02019220
+_0207E82C:
+ add sp, #0x10
+ pop {r4, pc}
+ .balign 4
+_0207E830: .word 0x00000674
+_0207E834: .word 0x000F0E00
+_0207E838: .word 0x0000029B
+_0207E83C: .word 0x00010200
+
+ thumb_func_start FUN_0207E840
+FUN_0207E840: ; 0x0207E840
+ push {r4-r6, lr}
+ sub sp, #0x10
+ add r5, r0, #0x0
+ mov r0, #0x91
+ lsl r0, r0, #0x2
+ ldr r0, [r5, r0]
+ mov r1, #0x0
+ add r0, #0x10
+ bl FUN_02019620
+ ldr r0, _0207E994 ; =0x00000674
+ mov r1, #0xba
+ ldr r0, [r5, r0]
+ bl FUN_0200A914
+ mov r1, #0x0
+ add r4, r0, #0x0
+ ldr r2, _0207E998 ; =0x0000067C
+ str r1, [sp, #0x0]
+ mov r0, #0x1
+ str r0, [sp, #0x4]
+ ldr r0, [r5, r2]
+ add r2, #0x1d
+ ldrb r2, [r5, r2]
+ mov r3, #0x3
+ bl FUN_0200AD38
+ ldr r1, _0207E998 ; =0x0000067C
+ add r2, r4, #0x0
+ ldr r0, [r5, r1]
+ add r1, r1, #0x4
+ ldr r1, [r5, r1]
+ bl FUN_0200B7B8
+ add r0, r4, #0x0
+ bl FUN_02021A20
+ mov r1, #0x1a
+ lsl r1, r1, #0x6
+ mov r0, #0x0
+ ldr r1, [r5, r1]
+ add r2, r0, #0x0
+ bl FUN_02002E14
+ lsl r0, r0, #0x18
+ lsr r1, r0, #0x18
+ mov r0, #0x38
+ sub r0, r0, r1
+ lsl r0, r0, #0x18
+ lsr r4, r0, #0x18
+ mov r1, #0x0
+ mov r2, #0x1a
+ str r1, [sp, #0x0]
+ mov r0, #0xff
+ str r0, [sp, #0x4]
+ ldr r0, _0207E99C ; =0x00010200
+ lsl r2, r2, #0x6
+ str r0, [sp, #0x8]
+ mov r0, #0x91
+ str r1, [sp, #0xc]
+ lsl r0, r0, #0x2
+ ldr r0, [r5, r0]
+ ldr r2, [r5, r2]
+ add r0, #0x10
+ add r3, r4, #0x0
+ bl FUN_0201BDE0
+ ldr r0, _0207E994 ; =0x00000674
+ mov r1, #0xb9
+ ldr r0, [r5, r0]
+ bl FUN_0200A914
+ add r6, r0, #0x0
+ mov r0, #0x0
+ add r1, r6, #0x0
+ add r2, r0, #0x0
+ bl FUN_02002E14
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ sub r0, r4, r0
+ lsl r0, r0, #0x18
+ lsr r4, r0, #0x18
+ mov r1, #0x0
+ str r1, [sp, #0x0]
+ mov r0, #0xff
+ str r0, [sp, #0x4]
+ ldr r0, _0207E99C ; =0x00010200
+ add r2, r6, #0x0
+ str r0, [sp, #0x8]
+ mov r0, #0x91
+ str r1, [sp, #0xc]
+ lsl r0, r0, #0x2
+ ldr r0, [r5, r0]
+ add r3, r4, #0x0
+ add r0, #0x10
+ bl FUN_0201BDE0
+ add r0, r6, #0x0
+ bl FUN_02021A20
+ ldr r0, _0207E994 ; =0x00000674
+ mov r1, #0xb8
+ ldr r0, [r5, r0]
+ bl FUN_0200A914
+ mov r1, #0x0
+ ldr r2, _0207E998 ; =0x0000067C
+ add r6, r0, #0x0
+ add r3, r2, #0x0
+ str r1, [sp, #0x0]
+ mov r0, #0x1
+ str r0, [sp, #0x4]
+ ldr r0, [r5, r2]
+ add r2, #0x1c
+ add r3, #0x1b
+ ldrb r2, [r5, r2]
+ ldrb r3, [r5, r3]
+ lsl r2, r2, #0x2
+ add r2, r3, r2
+ add r2, r2, #0x1
+ mov r3, #0x3
+ bl FUN_0200AD38
+ ldr r1, _0207E998 ; =0x0000067C
+ add r2, r6, #0x0
+ ldr r0, [r5, r1]
+ add r1, r1, #0x4
+ ldr r1, [r5, r1]
+ bl FUN_0200B7B8
+ add r0, r6, #0x0
+ bl FUN_02021A20
+ mov r1, #0x1a
+ lsl r1, r1, #0x6
+ mov r0, #0x0
+ ldr r1, [r5, r1]
+ add r2, r0, #0x0
+ bl FUN_02002E14
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ sub r0, r4, r0
+ lsl r0, r0, #0x18
+ mov r1, #0x0
+ lsr r3, r0, #0x18
+ mov r2, #0x1a
+ str r1, [sp, #0x0]
+ mov r0, #0xff
+ str r0, [sp, #0x4]
+ ldr r0, _0207E99C ; =0x00010200
+ lsl r2, r2, #0x6
+ str r0, [sp, #0x8]
+ mov r0, #0x91
+ str r1, [sp, #0xc]
+ lsl r0, r0, #0x2
+ ldr r0, [r5, r0]
+ ldr r2, [r5, r2]
+ add r0, #0x10
+ bl FUN_0201BDE0
+ mov r0, #0x91
+ lsl r0, r0, #0x2
+ ldr r0, [r5, r0]
+ add r0, #0x10
+ bl FUN_02019220
+ add sp, #0x10
+ pop {r4-r6, pc}
+ .balign 4
+_0207E994: .word 0x00000674
+_0207E998: .word 0x0000067C
+_0207E99C: .word 0x00010200
+
+ thumb_func_start FUN_0207E9A0
+FUN_0207E9A0: ; 0x0207E9A0
+ push {r4, lr}
+ add r4, r0, #0x0
+ mov r0, #0x91
+ lsl r0, r0, #0x2
+ ldr r0, [r4, r0]
+ mov r1, #0x0
+ add r0, #0x20
+ bl FUN_02019620
+ mov r0, #0x91
+ lsl r0, r0, #0x2
+ ldr r0, [r4, r0]
+ mov r1, #0x0
+ add r0, #0x30
+ bl FUN_02019620
+ ldr r0, _0207EA34 ; =0x0000069A
+ mov r1, #0x3
+ ldrb r0, [r4, r0]
+ bl FUN_0207FC5C
+ ldr r2, _0207EA38 ; =0x00000678
+ add r1, r0, #0x0
+ ldr r0, [r4, r2]
+ add r2, #0x8
+ ldr r2, [r4, r2]
+ bl FUN_0200A8E0
+ mov r1, #0x91
+ lsl r1, r1, #0x2
+ ldr r1, [r4, r1]
+ ldr r2, _0207EA3C ; =0x000F0E00
+ add r0, r4, #0x0
+ add r1, #0x20
+ mov r3, #0x0
+ bl FUN_0207D998
+ mov r0, #0x93
+ lsl r0, r0, #0x2
+ ldr r1, _0207EA34 ; =0x0000069A
+ ldr r0, [r4, r0]
+ ldrb r1, [r4, r1]
+ ldr r0, [r0, #0x20]
+ bl FUN_0207FCC0
+ ldr r2, _0207EA38 ; =0x00000678
+ add r1, r0, #0x0
+ ldr r0, [r4, r2]
+ add r2, #0x8
+ ldr r2, [r4, r2]
+ bl FUN_0200A8E0
+ mov r1, #0x91
+ lsl r1, r1, #0x2
+ ldr r1, [r4, r1]
+ ldr r2, _0207EA40 ; =0x00010200
+ add r0, r4, #0x0
+ add r1, #0x30
+ mov r3, #0x0
+ bl FUN_0207D998
+ mov r0, #0x91
+ lsl r0, r0, #0x2
+ ldr r0, [r4, r0]
+ add r0, #0x20
+ bl FUN_02019220
+ mov r0, #0x91
+ lsl r0, r0, #0x2
+ ldr r0, [r4, r0]
+ add r0, #0x30
+ bl FUN_02019220
+ pop {r4, pc}
+ .balign 4
+_0207EA34: .word 0x0000069A
+_0207EA38: .word 0x00000678
+_0207EA3C: .word 0x000F0E00
+_0207EA40: .word 0x00010200
+
+ thumb_func_start FUN_0207EA44
+FUN_0207EA44: ; 0x0207EA44
+ push {r4-r7, lr}
+ sub sp, #0x24
+ add r5, r0, #0x0
+ mov r0, #0x91
+ add r7, r1, #0x0
+ lsl r0, r0, #0x2
+ lsl r6, r7, #0x4
+ ldr r4, [r5, r0]
+ cmp r7, #0x4
+ beq _0207EA76
+ lsl r1, r7, #0x1
+ add r2, r5, r1
+ add r1, r0, #0x0
+ add r1, #0x40
+ ldrh r1, [r2, r1]
+ add r2, r0, #0x0
+ add r2, #0x48
+ str r1, [sp, #0x20]
+ add r1, r5, r7
+ ldrb r2, [r1, r2]
+ add r0, #0x4c
+ str r2, [sp, #0x1c]
+ ldrb r0, [r1, r0]
+ str r0, [sp, #0x18]
+ b _0207EA88
+_0207EA76:
+ add r0, #0x8
+ ldr r0, [r5, r0]
+ mov r1, #0x0
+ ldrh r0, [r0, #0x18]
+ str r0, [sp, #0x20]
+ bl FUN_0206AB30
+ str r0, [sp, #0x1c]
+ str r0, [sp, #0x18]
+_0207EA88:
+ ldr r2, _0207EB54 ; =0x00000688
+ ldr r1, [sp, #0x20]
+ ldr r0, [r5, r2]
+ sub r2, #0x8
+ ldr r2, [r5, r2]
+ bl FUN_0200A8E0
+ mov r0, #0x2
+ str r0, [sp, #0x0]
+ mov r0, #0xff
+ str r0, [sp, #0x4]
+ ldr r0, _0207EB58 ; =0x000F0E00
+ mov r2, #0x1a
+ str r0, [sp, #0x8]
+ mov r1, #0x0
+ str r1, [sp, #0xc]
+ lsl r2, r2, #0x6
+ ldr r2, [r5, r2]
+ add r0, r4, r6
+ mov r3, #0x1
+ bl FUN_0201BDE0
+ ldr r0, [sp, #0x20]
+ ldr r2, _0207EB5C ; =0x00000674
+ cmp r0, #0x0
+ beq _0207EB10
+ ldr r0, [r5, r2]
+ add r2, #0xc
+ ldr r2, [r5, r2]
+ mov r1, #0x87
+ bl FUN_0200A8E0
+ mov r3, #0x10
+ mov r2, #0x1a
+ str r3, [sp, #0x0]
+ mov r0, #0xff
+ str r0, [sp, #0x4]
+ ldr r0, _0207EB60 ; =0x00010200
+ mov r1, #0x0
+ str r0, [sp, #0x8]
+ str r1, [sp, #0xc]
+ lsl r2, r2, #0x6
+ ldr r2, [r5, r2]
+ add r0, r4, r6
+ bl FUN_0201BDE0
+ add r0, r7, #0x0
+ add r0, #0x8d
+ str r0, [sp, #0x0]
+ ldr r0, [sp, #0x1c]
+ add r1, r7, #0x0
+ str r0, [sp, #0x4]
+ ldr r0, [sp, #0x18]
+ add r7, #0x88
+ str r0, [sp, #0x8]
+ mov r0, #0x2
+ str r0, [sp, #0xc]
+ mov r0, #0x3c
+ str r0, [sp, #0x10]
+ mov r0, #0x10
+ str r0, [sp, #0x14]
+ add r0, r5, #0x0
+ mov r2, #0x75
+ add r3, r7, #0x0
+ bl FUN_0207DA94
+ add sp, #0x24
+ pop {r4-r7, pc}
+_0207EB10:
+ ldr r0, [r5, r2]
+ add r2, #0xc
+ ldr r2, [r5, r2]
+ mov r1, #0x99
+ bl FUN_0200A8E0
+ mov r1, #0x1a
+ lsl r1, r1, #0x6
+ mov r0, #0x0
+ ldr r1, [r5, r1]
+ add r2, r0, #0x0
+ bl FUN_02002E14
+ add r3, r0, #0x0
+ mov r0, #0x10
+ str r0, [sp, #0x0]
+ mov r0, #0xff
+ str r0, [sp, #0x4]
+ ldr r0, _0207EB60 ; =0x00010200
+ mov r2, #0x1a
+ str r0, [sp, #0x8]
+ mov r1, #0x0
+ add r0, r4, r6
+ lsr r4, r3, #0x1
+ mov r3, #0x3c
+ str r1, [sp, #0xc]
+ lsl r2, r2, #0x6
+ ldr r2, [r5, r2]
+ sub r3, r3, r4
+ bl FUN_0201BDE0
+ add sp, #0x24
+ pop {r4-r7, pc}
+ nop
+_0207EB54: .word 0x00000688
+_0207EB58: .word 0x000F0E00
+_0207EB5C: .word 0x00000674
+_0207EB60: .word 0x00010200
+
+ thumb_func_start FUN_0207EB64
+FUN_0207EB64: ; 0x0207EB64
+ push {r3-r6, lr}
+ sub sp, #0x4
+ add r5, r0, #0x0
+ mov r0, #0x65
+ lsl r0, r0, #0x2
+ add r0, r5, r0
+ add r4, r1, #0x0
+ bl FUN_02019220
+ mov r0, #0x69
+ lsl r0, r0, #0x2
+ add r0, r5, r0
+ bl FUN_02019220
+ mov r0, #0x6d
+ lsl r0, r0, #0x2
+ add r0, r5, r0
+ bl FUN_02019220
+ mov r0, #0x91
+ lsl r0, r0, #0x2
+ ldr r0, [r5, r0]
+ mov r1, #0x0
+ add r0, #0x50
+ bl FUN_02019620
+ mov r0, #0x91
+ lsl r0, r0, #0x2
+ ldr r0, [r5, r0]
+ mov r1, #0x0
+ add r0, #0x60
+ bl FUN_02019620
+ mov r0, #0x91
+ lsl r0, r0, #0x2
+ ldr r0, [r5, r0]
+ mov r1, #0x0
+ add r0, #0x70
+ bl FUN_02019620
+ add r0, r4, #0x0
+ mov r1, #0x2
+ bl FUN_0206AB18
+ add r2, r0, #0x0
+ cmp r2, #0x1
+ bhi _0207EBD2
+ ldr r2, _0207EC88 ; =0x00000674
+ mov r1, #0x9a
+ ldr r0, [r5, r2]
+ add r2, #0xc
+ ldr r2, [r5, r2]
+ bl FUN_0200A8E0
+ b _0207EBE0
+_0207EBD2:
+ mov r0, #0x1
+ str r0, [sp, #0x0]
+ add r0, r5, #0x0
+ mov r1, #0x96
+ mov r3, #0x3
+ bl FUN_0207DA48
+_0207EBE0:
+ mov r1, #0x91
+ lsl r1, r1, #0x2
+ ldr r1, [r5, r1]
+ ldr r2, _0207EC8C ; =0x00010200
+ add r0, r5, #0x0
+ add r1, #0x50
+ mov r3, #0x2
+ bl FUN_0207D998
+ add r0, r4, #0x0
+ mov r1, #0x4
+ bl FUN_0206AB18
+ add r2, r0, #0x0
+ bne _0207EC0E
+ ldr r2, _0207EC88 ; =0x00000674
+ mov r1, #0x9a
+ ldr r0, [r5, r2]
+ add r2, #0xc
+ ldr r2, [r5, r2]
+ bl FUN_0200A8E0
+ b _0207EC1C
+_0207EC0E:
+ mov r0, #0x1
+ str r0, [sp, #0x0]
+ add r0, r5, #0x0
+ mov r1, #0x97
+ mov r3, #0x3
+ bl FUN_0207DA48
+_0207EC1C:
+ mov r1, #0x91
+ lsl r1, r1, #0x2
+ ldr r1, [r5, r1]
+ ldr r2, _0207EC8C ; =0x00010200
+ add r0, r5, #0x0
+ add r1, #0x60
+ mov r3, #0x2
+ bl FUN_0207D998
+ ldr r2, _0207EC90 ; =0x0000024B
+ mov r0, #0x1
+ mov r1, #0x1a
+ mov r3, #0x13
+ bl FUN_0200A86C
+ mov r2, #0x1a
+ lsl r2, r2, #0x6
+ ldr r2, [r5, r2]
+ add r1, r4, #0x0
+ add r6, r0, #0x0
+ bl FUN_0200A8E0
+ mov r1, #0x91
+ lsl r1, r1, #0x2
+ ldr r1, [r5, r1]
+ ldr r2, _0207EC8C ; =0x00010200
+ add r0, r5, #0x0
+ add r1, #0x70
+ mov r3, #0x0
+ bl FUN_0207D998
+ add r0, r6, #0x0
+ bl FUN_0200A8B8
+ mov r0, #0x91
+ lsl r0, r0, #0x2
+ ldr r0, [r5, r0]
+ add r0, #0x50
+ bl FUN_02019220
+ mov r0, #0x91
+ lsl r0, r0, #0x2
+ ldr r0, [r5, r0]
+ add r0, #0x60
+ bl FUN_02019220
+ mov r0, #0x91
+ lsl r0, r0, #0x2
+ ldr r0, [r5, r0]
+ add r0, #0x70
+ bl FUN_02019220
+ add sp, #0x4
+ pop {r3-r6, pc}
+ .balign 4
+_0207EC88: .word 0x00000674
+_0207EC8C: .word 0x00010200
+_0207EC90: .word 0x0000024B
+
+ thumb_func_start FUN_0207EC94
+FUN_0207EC94: ; 0x0207EC94
+ push {r4, lr}
+ add r4, r0, #0x0
+ mov r0, #0x65
+ lsl r0, r0, #0x2
+ add r0, r4, r0
+ bl FUN_0201958C
+ mov r0, #0x69
+ lsl r0, r0, #0x2
+ add r0, r4, r0
+ bl FUN_0201958C
+ mov r0, #0x6d
+ lsl r0, r0, #0x2
+ add r0, r4, r0
+ bl FUN_0201958C
+ mov r0, #0x91
+ lsl r0, r0, #0x2
+ ldr r0, [r4, r0]
+ add r0, #0x50
+ bl FUN_0201958C
+ mov r0, #0x91
+ lsl r0, r0, #0x2
+ ldr r0, [r4, r0]
+ add r0, #0x60
+ bl FUN_0201958C
+ mov r0, #0x91
+ lsl r0, r0, #0x2
+ ldr r0, [r4, r0]
+ add r0, #0x70
+ bl FUN_0201958C
+ pop {r4, pc}
+
+ thumb_func_start FUN_0207ECDC
+FUN_0207ECDC: ; 0x0207ECDC
+ push {r4, lr}
+ add r4, r0, #0x0
+ mov r0, #0x93
+ lsl r0, r0, #0x2
+ ldr r1, [r4, r0]
+ ldrh r1, [r1, #0x18]
+ cmp r1, #0x0
+ beq _0207ED0E
+ sub r0, #0x8
+ ldr r0, [r4, r0]
+ mov r1, #0x0
+ add r0, #0x40
+ bl FUN_02019620
+ add r0, r4, #0x0
+ mov r1, #0x4
+ bl FUN_0207EA44
+ mov r0, #0x91
+ lsl r0, r0, #0x2
+ ldr r0, [r4, r0]
+ add r0, #0x40
+ bl FUN_02019220
+ pop {r4, pc}
+_0207ED0E:
+ sub r0, #0xc8
+ add r0, r4, r0
+ bl FUN_02019220
+ pop {r4, pc}
+
+ thumb_func_start FUN_0207ED18
+FUN_0207ED18: ; 0x0207ED18
+ push {r4, lr}
+ add r4, r0, #0x0
+ mov r0, #0x61
+ lsl r0, r0, #0x2
+ add r0, r4, r0
+ bl FUN_0201958C
+ ldr r0, [r4, #0x0]
+ mov r1, #0x1
+ bl FUN_0201AC68
+ pop {r4, pc}
+
+ thumb_func_start FUN_0207ED30
+FUN_0207ED30: ; 0x0207ED30
+ push {r4, lr}
+ add r4, r0, #0x0
+ mov r0, #0x91
+ lsl r0, r0, #0x2
+ ldr r1, [r4, r0]
+ ldr r0, _0207EDB0 ; =0x0000068D
+ ldrb r0, [r4, r0]
+ lsl r0, r0, #0x1c
+ lsr r0, r0, #0x1c
+ lsl r0, r0, #0x4
+ add r0, r1, r0
+ mov r1, #0x0
+ bl FUN_02019620
+ mov r0, #0x91
+ lsl r0, r0, #0x2
+ ldr r1, [r4, r0]
+ ldr r0, _0207EDB0 ; =0x0000068D
+ ldrb r0, [r4, r0]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x1c
+ lsl r0, r0, #0x4
+ add r0, r1, r0
+ mov r1, #0x0
+ bl FUN_02019620
+ ldr r1, _0207EDB0 ; =0x0000068D
+ add r0, r4, #0x0
+ ldrb r1, [r4, r1]
+ lsl r1, r1, #0x1c
+ lsr r1, r1, #0x1c
+ bl FUN_0207EA44
+ ldr r1, _0207EDB0 ; =0x0000068D
+ add r0, r4, #0x0
+ ldrb r1, [r4, r1]
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x1c
+ bl FUN_0207EA44
+ mov r0, #0x91
+ lsl r0, r0, #0x2
+ ldr r1, [r4, r0]
+ ldr r0, _0207EDB0 ; =0x0000068D
+ ldrb r0, [r4, r0]
+ lsl r0, r0, #0x1c
+ lsr r0, r0, #0x1c
+ lsl r0, r0, #0x4
+ add r0, r1, r0
+ bl FUN_02019220
+ mov r0, #0x91
+ lsl r0, r0, #0x2
+ ldr r1, [r4, r0]
+ ldr r0, _0207EDB0 ; =0x0000068D
+ ldrb r0, [r4, r0]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x1c
+ lsl r0, r0, #0x4
+ add r0, r1, r0
+ bl FUN_02019220
+ pop {r4, pc}
+ nop
+_0207EDB0: .word 0x0000068D
+
+ thumb_func_start FUN_0207EDB4
+FUN_0207EDB4: ; 0x0207EDB4
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ ldr r0, _0207EE20 ; =0x0000068C
+ ldrsb r0, [r5, r0]
+ cmp r0, #0x3
+ bne _0207EDEE
+ mov r0, #0x91
+ lsl r0, r0, #0x2
+ ldr r0, [r5, r0]
+ add r0, #0x50
+ bl FUN_0201958C
+ mov r0, #0x91
+ lsl r0, r0, #0x2
+ ldr r0, [r5, r0]
+ add r0, #0x60
+ bl FUN_0201958C
+ mov r0, #0x91
+ lsl r0, r0, #0x2
+ ldr r0, [r5, r0]
+ add r0, #0x70
+ bl FUN_0201958C
+ mov r0, #0x91
+ lsl r0, r0, #0x2
+ ldr r4, [r5, r0]
+ add r4, #0x70
+ b _0207EDF6
+_0207EDEE:
+ mov r0, #0x91
+ lsl r0, r0, #0x2
+ ldr r4, [r5, r0]
+ add r4, #0x50
+_0207EDF6:
+ add r0, r4, #0x0
+ mov r1, #0x0
+ bl FUN_02019620
+ ldr r2, _0207EE24 ; =0x00000674
+ mov r1, #0x9c
+ ldr r0, [r5, r2]
+ add r2, #0xc
+ ldr r2, [r5, r2]
+ bl FUN_0200A8E0
+ ldr r2, _0207EE28 ; =0x00010200
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ mov r3, #0x0
+ bl FUN_0207D998
+ add r0, r4, #0x0
+ bl FUN_02019220
+ pop {r3-r5, pc}
+ .balign 4
+_0207EE20: .word 0x0000068C
+_0207EE24: .word 0x00000674
+_0207EE28: .word 0x00010200
+
+ thumb_func_start FUN_0207EE2C
+FUN_0207EE2C: ; 0x0207EE2C
+ push {r4-r6, lr}
+ sub sp, #0x10
+ add r5, r0, #0x0
+ mov r0, #0x91
+ lsl r0, r0, #0x2
+ ldr r0, [r5, r0]
+ add r4, r1, #0x0
+ add r0, #0x50
+ mov r1, #0x0
+ bl FUN_02019620
+ add r0, r4, #0x0
+ mov r1, #0xa
+ bl FUN_0206AB18
+ bl FUN_0208315C
+ add r4, r0, #0x0
+ mov r0, #0x0
+ mov r1, #0x1a
+ mov r2, #0xc5
+ mov r3, #0x13
+ bl FUN_0200A86C
+ mov r2, #0x1a
+ lsl r2, r2, #0x6
+ ldr r2, [r5, r2]
+ add r1, r4, #0x0
+ add r6, r0, #0x0
+ bl FUN_0200A8E0
+ mov r1, #0x0
+ mov r2, #0x1a
+ str r1, [sp, #0x0]
+ mov r0, #0xff
+ str r0, [sp, #0x4]
+ ldr r0, _0207EEAC ; =0x00010200
+ lsl r2, r2, #0x6
+ str r0, [sp, #0x8]
+ mov r0, #0x91
+ str r1, [sp, #0xc]
+ lsl r0, r0, #0x2
+ ldr r0, [r5, r0]
+ ldr r2, [r5, r2]
+ add r0, #0x50
+ add r3, r1, #0x0
+ bl FUN_0201BDE0
+ add r0, r6, #0x0
+ bl FUN_0200A8B8
+ mov r0, #0x75
+ lsl r0, r0, #0x2
+ add r0, r5, r0
+ bl FUN_02019220
+ mov r0, #0x91
+ lsl r0, r0, #0x2
+ ldr r0, [r5, r0]
+ add r0, #0x50
+ bl FUN_02019220
+ add sp, #0x10
+ pop {r4-r6, pc}
+ .balign 4
+_0207EEAC: .word 0x00010200
+
+ thumb_func_start FUN_0207EEB0
+FUN_0207EEB0: ; 0x0207EEB0
+ push {r4, lr}
+ add r4, r0, #0x0
+ mov r0, #0x75
+ lsl r0, r0, #0x2
+ add r0, r4, r0
+ bl FUN_0201958C
+ mov r0, #0x91
+ lsl r0, r0, #0x2
+ ldr r0, [r4, r0]
+ add r0, #0x50
+ bl FUN_0201958C
+ pop {r4, pc}
+
+ thumb_func_start FUN_0207EECC
+FUN_0207EECC: ; 0x0207EECC
+ push {r4-r6, lr}
+ sub sp, #0x10
+ add r4, r0, #0x0
+ cmp r1, #0x4
+ bgt _0207EEF0
+ cmp r1, #0x0
+ blt _0207EF0E
+ add r0, r1, r1
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0207EEE6: ; jump table (using 16-bit offset)
+ .short _0207EEF6 - _0207EEE6 - 2; case 0
+ .short _0207EEFA - _0207EEE6 - 2; case 1
+ .short _0207EEFE - _0207EEE6 - 2; case 2
+ .short _0207EF02 - _0207EEE6 - 2; case 3
+ .short _0207EF06 - _0207EEE6 - 2; case 4
+_0207EEF0:
+ cmp r1, #0xfe
+ beq _0207EF0A
+ b _0207EF0E
+_0207EEF6:
+ mov r5, #0xac
+ b _0207EF10
+_0207EEFA:
+ mov r5, #0xae
+ b _0207EF10
+_0207EEFE:
+ mov r5, #0xaf
+ b _0207EF10
+_0207EF02:
+ mov r5, #0xb0
+ b _0207EF10
+_0207EF06:
+ mov r5, #0xad
+ b _0207EF10
+_0207EF0A:
+ mov r5, #0xb1
+ b _0207EF10
+_0207EF0E:
+ mov r5, #0xb2
+_0207EF10:
+ mov r0, #0x91
+ lsl r0, r0, #0x2
+ ldr r6, [r4, r0]
+ ldr r2, _0207EF60 ; =0x000003E2
+ add r6, #0x20
+ add r0, r6, #0x0
+ mov r1, #0x1
+ mov r3, #0xd
+ bl FUN_0200D0BC
+ add r0, r6, #0x0
+ mov r1, #0xf
+ bl FUN_02019620
+ ldr r2, _0207EF64 ; =0x00000674
+ add r1, r5, #0x0
+ ldr r0, [r4, r2]
+ add r2, #0xc
+ ldr r2, [r4, r2]
+ bl FUN_0200A8E0
+ mov r3, #0x0
+ mov r2, #0x1a
+ str r3, [sp, #0x0]
+ mov r0, #0xff
+ str r0, [sp, #0x4]
+ ldr r0, _0207EF68 ; =0x0001020F
+ lsl r2, r2, #0x6
+ str r0, [sp, #0x8]
+ str r3, [sp, #0xc]
+ ldr r2, [r4, r2]
+ add r0, r6, #0x0
+ mov r1, #0x1
+ bl FUN_0201BDE0
+ add r0, r6, #0x0
+ bl FUN_02019220
+ add sp, #0x10
+ pop {r4-r6, pc}
+ .balign 4
+_0207EF60: .word 0x000003E2
+_0207EF64: .word 0x00000674
+_0207EF68: .word 0x0001020F
+
+ thumb_func_start FUN_0207EF6C
+FUN_0207EF6C: ; 0x0207EF6C
+ push {r3-r4, lr}
+ sub sp, #0x4
+ blx FUN_020BB7F4
+ blx G3X_Init
+ blx G3X_InitMtxStack
+ ldr r0, _0207EFEC ; =0x04000060
+ ldr r1, _0207EFF0 ; =0xFFFFCFFD
+ ldrh r2, [r0, #0x0]
+ ldr r3, _0207EFF4 ; =0x0000CFFB
+ and r2, r1
+ strh r2, [r0, #0x0]
+ ldrh r2, [r0, #0x0]
+ and r2, r3
+ strh r2, [r0, #0x0]
+ add r2, r1, #0x2
+ ldrh r4, [r0, #0x0]
+ add r1, r1, #0x2
+ sub r3, #0x1c
+ and r4, r2
+ mov r2, #0x8
+ orr r2, r4
+ strh r2, [r0, #0x0]
+ ldrh r2, [r0, #0x0]
+ and r2, r1
+ mov r1, #0x10
+ orr r1, r2
+ strh r1, [r0, #0x0]
+ ldrh r1, [r0, #0x0]
+ and r1, r3
+ strh r1, [r0, #0x0]
+ mov r0, #0x0
+ add r1, r0, #0x0
+ add r2, r0, #0x0
+ add r3, r0, #0x0
+ blx G3X_SetFog
+ mov r0, #0x0
+ ldr r2, _0207EFF8 ; =0x00007FFF
+ add r1, r0, #0x0
+ mov r3, #0x3f
+ str r0, [sp, #0x0]
+ blx G3X_SetClearColor
+ ldr r1, _0207EFFC ; =0x04000540
+ mov r0, #0x0
+ str r0, [r1, #0x0]
+ ldr r0, _0207F000 ; =0xBFFF0000
+ str r0, [r1, #0x40]
+ mov r0, #0x1
+ add r1, r0, #0x0
+ bl FUN_0201E6E4
+ ldr r1, _0207F004 ; =0x04000008
+ mov r0, #0x3
+ ldrh r2, [r1, #0x0]
+ bic r2, r0
+ mov r0, #0x2
+ orr r0, r2
+ strh r0, [r1, #0x0]
+ add sp, #0x4
+ pop {r3-r4, pc}
+ .balign 4
+_0207EFEC: .word 0x04000060
+_0207EFF0: .word 0xFFFFCFFD
+_0207EFF4: .word 0x0000CFFB
+_0207EFF8: .word 0x00007FFF
+_0207EFFC: .word 0x04000540
+_0207F000: .word 0xBFFF0000
+_0207F004: .word 0x04000008
+
+ thumb_func_start FUN_0207F008
+FUN_0207F008: ; 0x0207F008
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r0, _0207F05C ; =0x0000068C
+ ldrsb r0, [r4, r0]
+ cmp r0, #0x4
+ bne _0207F046
+ bl FUN_020222AC
+ bl FUN_0201EBA4
+ ldr r2, _0207F060 ; =0x04000440
+ mov r3, #0x0
+ add r1, r2, #0x0
+ str r3, [r2, #0x0]
+ add r1, #0x14
+ str r3, [r1, #0x0]
+ mov r0, #0x2
+ str r0, [r2, #0x0]
+ str r3, [r1, #0x0]
+ blx FUN_020B849C
+ mov r0, #0xb7
+ lsl r0, r0, #0x2
+ add r0, r4, r0
+ bl FUN_0207F108
+ blx FUN_020B849C
+ add r0, r4, #0x0
+ bl FUN_0207F1A4
+_0207F046:
+ blx FUN_020B02C8
+ mov r0, #0xae
+ lsl r0, r0, #0x2
+ ldr r0, [r4, r0]
+ bl FUN_02006ED4
+ ldr r0, _0207F064 ; =0x04000540
+ mov r1, #0x1
+ str r1, [r0, #0x0]
+ pop {r4, pc}
+ .balign 4
+_0207F05C: .word 0x0000068C
+_0207F060: .word 0x04000440
+_0207F064: .word 0x04000540
+
+ thumb_func_start FUN_0207F068
+FUN_0207F068: ; 0x0207F068
+ push {r4, lr}
+ add r4, r0, #0x0
+ mov r0, #0xad
+ lsl r0, r0, #0x2
+ ldr r0, [r4, r0]
+ bl FUN_0201EB70
+ mov r0, #0x2d
+ lsl r0, r0, #0x4
+ ldr r0, [r4, r0]
+ mov r1, #0x0
+ bl FUN_02014D9C
+ mov r0, #0x2d
+ lsl r0, r0, #0x4
+ ldr r0, [r4, r0]
+ bl FUN_02014C28
+ mov r0, #0xae
+ lsl r0, r0, #0x2
+ ldr r0, [r4, r0]
+ bl FUN_020072E8
+ pop {r4, pc}
+
+ thumb_func_start FUN_0207F098
+FUN_0207F098: ; 0x0207F098
+ push {r3-r4, lr}
+ sub sp, #0x1c
+ ldr r3, _0207F100 ; =0x020FB5CC
+ add r4, r0, #0x0
+ ldmia r3!, {r0-r1}
+ add r2, sp, #0x10
+ stmia r2!, {r0-r1}
+ ldr r0, [r3, #0x0]
+ add r1, sp, #0x8
+ str r0, [r2, #0x0]
+ mov r0, #0x0
+ strh r0, [r1, #0x0]
+ strh r0, [r1, #0x2]
+ strh r0, [r1, #0x4]
+ strh r0, [r1, #0x6]
+ mov r0, #0x13
+ bl FUN_0201EB64
+ mov r1, #0xad
+ lsl r1, r1, #0x2
+ str r0, [r4, r1]
+ mov r2, #0x1
+ str r2, [sp, #0x0]
+ ldr r0, [r4, r1]
+ lsl r1, r2, #0x10
+ str r0, [sp, #0x4]
+ ldr r3, _0207F104 ; =0x000005C1
+ add r0, sp, #0x10
+ add r2, sp, #0x8
+ bl FUN_0201ED10
+ mov r2, #0xad
+ lsl r2, r2, #0x2
+ mov r1, #0x19
+ ldr r2, [r4, r2]
+ mov r0, #0x0
+ lsl r1, r1, #0xe
+ bl FUN_0201EC94
+ mov r0, #0xad
+ lsl r0, r0, #0x2
+ ldr r0, [r4, r0]
+ bl FUN_0201EC88
+ mov r0, #0xad
+ lsl r0, r0, #0x2
+ ldr r0, [r4, r0]
+ bl FUN_0201EB8C
+ add sp, #0x1c
+ pop {r3-r4, pc}
+ nop
+_0207F100: .word 0x020FB5CC
+_0207F104: .word 0x000005C1
+
+ thumb_func_start FUN_0207F108
+FUN_0207F108: ; 0x0207F108
+ push {r4-r7}
+ add r4, r0, #0x0
+ ldr r0, _0207F170 ; =0x121400C0
+ ldr r1, _0207F174 ; =0x040004A4
+ ldr r2, _0207F178 ; =0x00003FE8
+ str r0, [r1, #0x0]
+ mov r0, #0x1
+ str r0, [r1, #0x5c]
+ ldr r0, _0207F17C ; =0x0400048C
+ mov r3, #0x0
+ sub r1, #0x24
+_0207F11E:
+ str r2, [r1, #0x0]
+ ldrh r7, [r4, #0x2]
+ ldrh r5, [r4, #0x0]
+ ldrh r6, [r4, #0x4]
+ lsl r7, r7, #0x10
+ orr r5, r7
+ str r5, [r0, #0x0]
+ str r6, [r0, #0x0]
+ str r2, [r1, #0x0]
+ ldrh r7, [r4, #0x8]
+ ldrh r5, [r4, #0x6]
+ ldrh r6, [r4, #0xa]
+ lsl r7, r7, #0x10
+ orr r5, r7
+ str r5, [r0, #0x0]
+ str r6, [r0, #0x0]
+ str r2, [r1, #0x0]
+ ldrh r7, [r4, #0x14]
+ ldrh r5, [r4, #0x12]
+ ldrh r6, [r4, #0x16]
+ lsl r7, r7, #0x10
+ orr r5, r7
+ str r5, [r0, #0x0]
+ str r6, [r0, #0x0]
+ str r2, [r1, #0x0]
+ ldrh r7, [r4, #0xe]
+ ldrh r5, [r4, #0xc]
+ ldrh r6, [r4, #0x10]
+ lsl r7, r7, #0x10
+ orr r5, r7
+ str r5, [r0, #0x0]
+ add r3, r3, #0x1
+ add r4, #0x18
+ str r6, [r0, #0x0]
+ cmp r3, #0x4
+ blo _0207F11E
+ ldr r0, _0207F180 ; =0x04000504
+ mov r1, #0x0
+ str r1, [r0, #0x0]
+ pop {r4-r7}
+ bx lr
+ .balign 4
+_0207F170: .word 0x121400C0
+_0207F174: .word 0x040004A4
+_0207F178: .word 0x00003FE8
+_0207F17C: .word 0x0400048C
+_0207F180: .word 0x04000504
+
+ thumb_func_start FUN_0207F184
+FUN_0207F184: ; 0x0207F184
+ mov r2, #0x0
+ ldrsh r3, [r0, r2]
+ ldrsh r2, [r1, r2]
+ add r2, r3, r2
+ strh r2, [r0, #0x0]
+ mov r2, #0x2
+ ldrsh r3, [r0, r2]
+ ldrsh r2, [r1, r2]
+ add r2, r3, r2
+ strh r2, [r0, #0x2]
+ mov r2, #0x4
+ ldrsh r3, [r0, r2]
+ ldrsh r1, [r1, r2]
+ add r1, r3, r1
+ strh r1, [r0, #0x4]
+ bx lr
+
+ thumb_func_start FUN_0207F1A4
+FUN_0207F1A4: ; 0x0207F1A4
+ push {r3-r7, lr}
+ sub sp, #0x18
+ mov r2, #0xff
+ lsl r2, r2, #0x2
+ add r1, r0, #0x0
+ ldr r1, [r1, r2]
+ str r0, [sp, #0x0]
+ cmp r1, #0x4
+ bne _0207F1BE
+ bl FUN_0207D598
+ add sp, #0x18
+ pop {r3-r7, pc}
+_0207F1BE:
+ cmp r1, #0x3
+ bne _0207F1EA
+ add r6, r0, #0x0
+ add r7, r2, #0x0
+ mov r0, #0xb7
+ mov r5, #0x0
+ sub r7, #0x60
+ lsl r0, r0, #0x2
+_0207F1CE:
+ add r4, r6, r7
+ add r3, r6, r0
+ mov r2, #0xc
+_0207F1D4:
+ ldrh r1, [r4, #0x0]
+ add r4, r4, #0x2
+ strh r1, [r3, #0x0]
+ add r3, r3, #0x2
+ sub r2, r2, #0x1
+ bne _0207F1D4
+ add r5, r5, #0x1
+ add r6, #0x18
+ cmp r5, #0x4
+ blo _0207F1CE
+ b _0207F274
+_0207F1EA:
+ mov r0, #0x0
+ str r0, [sp, #0x4]
+ ldr r0, [sp, #0x0]
+ sub r2, #0xc0
+ add r0, r0, r2
+ str r0, [sp, #0x14]
+ mov r0, #0xb7
+ lsl r0, r0, #0x2
+ ldr r1, [sp, #0x0]
+ add r2, r0, #0x0
+ add r1, r1, r0
+ str r1, [sp, #0x10]
+ ldr r1, [sp, #0x0]
+ add r2, #0x66
+ add r1, r1, r2
+ str r1, [sp, #0xc]
+ ldr r1, [sp, #0x0]
+ add r2, r0, #0x6
+ add r1, r1, r2
+ str r1, [sp, #0x8]
+ add r2, r0, #0x0
+ ldr r1, [sp, #0x0]
+ add r2, #0x6c
+ add r7, r1, r2
+ add r2, r0, #0x0
+ add r2, #0xc
+ add r6, r1, r2
+ add r2, r0, #0x0
+ add r2, #0x72
+ add r0, #0x12
+ add r4, r1, r2
+ add r5, r1, r0
+_0207F22A:
+ ldr r0, [sp, #0x10]
+ ldr r1, [sp, #0x14]
+ bl FUN_0207F184
+ ldr r0, [sp, #0x8]
+ ldr r1, [sp, #0xc]
+ bl FUN_0207F184
+ add r0, r6, #0x0
+ add r1, r7, #0x0
+ bl FUN_0207F184
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_0207F184
+ ldr r0, [sp, #0x14]
+ add r7, #0x18
+ add r0, #0x18
+ str r0, [sp, #0x14]
+ ldr r0, [sp, #0x10]
+ add r6, #0x18
+ add r0, #0x18
+ str r0, [sp, #0x10]
+ ldr r0, [sp, #0xc]
+ add r4, #0x18
+ add r0, #0x18
+ str r0, [sp, #0xc]
+ ldr r0, [sp, #0x8]
+ add r5, #0x18
+ add r0, #0x18
+ str r0, [sp, #0x8]
+ ldr r0, [sp, #0x4]
+ add r0, r0, #0x1
+ str r0, [sp, #0x4]
+ cmp r0, #0x4
+ blo _0207F22A
+_0207F274:
+ mov r1, #0xff
+ ldr r0, [sp, #0x0]
+ lsl r1, r1, #0x2
+ ldr r0, [r0, r1]
+ add r2, r0, #0x1
+ ldr r0, [sp, #0x0]
+ str r2, [r0, r1]
+ ldr r0, [r0, r1]
+ cmp r0, #0x4
+ bne _0207F294
+ ldr r0, [sp, #0x0]
+ mov r1, #0x1
+ bl FUN_0207D418
+ add sp, #0x18
+ pop {r3-r7, pc}
+_0207F294:
+ ldr r0, [sp, #0x0]
+ mov r1, #0x0
+ bl FUN_0207D418
+ add sp, #0x18
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_0207F2A0
+FUN_0207F2A0: ; 0x0207F2A0
+ push {r3-r7, lr}
+ sub sp, #0x18
+ ldr r1, _0207F420 ; =0x0000068C
+ ldrsb r1, [r0, r1]
+ cmp r1, #0x4
+ beq _0207F2AE
+ b _0207F41A
+_0207F2AE:
+ ldr r7, _0207F424 ; =0x020FB60C
+ add r3, sp, #0x0
+ ldrh r1, [r7, #0x8]
+ strh r1, [r3, #0x12]
+ ldrh r1, [r7, #0xa]
+ strh r1, [r3, #0x14]
+ ldrh r1, [r7, #0xc]
+ strh r1, [r3, #0x16]
+ mov r1, #0xb7
+ lsl r1, r1, #0x2
+ ldrh r5, [r3, #0x12]
+ add r2, r1, #0x2
+ strh r5, [r0, r1]
+ ldrh r4, [r3, #0x14]
+ strh r4, [r0, r2]
+ ldrh r6, [r3, #0x16]
+ add r2, r1, #0x4
+ strh r6, [r0, r2]
+ add r2, r1, #0x6
+ strh r5, [r0, r2]
+ add r2, r1, #0x0
+ add r2, #0x8
+ strh r4, [r0, r2]
+ add r2, r1, #0x0
+ add r2, #0xa
+ strh r6, [r0, r2]
+ add r2, r1, #0x0
+ add r2, #0xc
+ strh r5, [r0, r2]
+ add r2, r1, #0x0
+ add r2, #0xe
+ strh r4, [r0, r2]
+ add r2, r1, #0x0
+ add r2, #0x10
+ strh r6, [r0, r2]
+ add r2, r1, #0x0
+ add r2, #0x12
+ strh r5, [r0, r2]
+ add r2, r1, #0x0
+ add r2, #0x14
+ strh r4, [r0, r2]
+ add r2, r1, #0x0
+ add r2, #0x16
+ strh r6, [r0, r2]
+ ldrh r2, [r7, #0x3e]
+ ldr r6, _0207F428 ; =0x020FB64C
+ add r7, r1, #0x0
+ strh r2, [r3, #0xc]
+ ldrh r2, [r6, #0x0]
+ add r7, #0x1c
+ strh r2, [r3, #0xe]
+ ldrh r2, [r6, #0x2]
+ strh r2, [r3, #0x10]
+ add r2, r1, #0x0
+ ldrh r5, [r3, #0xc]
+ add r2, #0x18
+ strh r5, [r0, r2]
+ add r2, r1, #0x0
+ ldrh r4, [r3, #0xe]
+ add r2, #0x1a
+ strh r4, [r0, r2]
+ ldrh r2, [r3, #0x10]
+ strh r2, [r0, r7]
+ add r7, r1, #0x0
+ add r7, #0x1e
+ strh r5, [r0, r7]
+ add r7, r1, #0x0
+ add r7, #0x20
+ strh r4, [r0, r7]
+ add r7, r1, #0x0
+ add r7, #0x22
+ strh r2, [r0, r7]
+ add r7, r1, #0x0
+ add r7, #0x24
+ strh r5, [r0, r7]
+ add r7, r1, #0x0
+ add r7, #0x26
+ strh r4, [r0, r7]
+ add r7, r1, #0x0
+ add r7, #0x28
+ strh r2, [r0, r7]
+ add r7, r1, #0x0
+ add r7, #0x2a
+ strh r5, [r0, r7]
+ add r5, r1, #0x0
+ add r5, #0x2c
+ strh r4, [r0, r5]
+ add r4, r1, #0x0
+ add r4, #0x2e
+ strh r2, [r0, r4]
+ ldrh r2, [r6, #0x34]
+ strh r2, [r3, #0x6]
+ ldrh r2, [r6, #0x36]
+ strh r2, [r3, #0x8]
+ ldrh r2, [r6, #0x38]
+ add r6, r1, #0x0
+ add r6, #0x34
+ strh r2, [r3, #0xa]
+ add r2, r1, #0x0
+ ldrh r5, [r3, #0x6]
+ add r2, #0x30
+ strh r5, [r0, r2]
+ add r2, r1, #0x0
+ ldrh r4, [r3, #0x8]
+ add r2, #0x32
+ strh r4, [r0, r2]
+ ldrh r2, [r3, #0xa]
+ strh r2, [r0, r6]
+ add r6, r1, #0x0
+ add r6, #0x36
+ strh r5, [r0, r6]
+ add r6, r1, #0x0
+ add r6, #0x38
+ strh r4, [r0, r6]
+ add r6, r1, #0x0
+ add r6, #0x3a
+ strh r2, [r0, r6]
+ add r6, r1, #0x0
+ add r6, #0x3c
+ strh r5, [r0, r6]
+ add r6, r1, #0x0
+ add r6, #0x3e
+ strh r4, [r0, r6]
+ add r6, r1, #0x0
+ add r6, #0x40
+ strh r2, [r0, r6]
+ add r6, r1, #0x0
+ add r6, #0x42
+ strh r5, [r0, r6]
+ add r5, r1, #0x0
+ add r5, #0x44
+ strh r4, [r0, r5]
+ add r4, r1, #0x0
+ add r4, #0x46
+ strh r2, [r0, r4]
+ ldr r2, _0207F42C ; =0x020FB68C
+ ldrh r4, [r2, #0x2a]
+ strh r4, [r3, #0x0]
+ ldrh r4, [r2, #0x2c]
+ strh r4, [r3, #0x2]
+ ldrh r2, [r2, #0x2e]
+ strh r2, [r3, #0x4]
+ add r2, r1, #0x0
+ ldrh r5, [r3, #0x0]
+ add r2, #0x48
+ strh r5, [r0, r2]
+ add r2, r1, #0x0
+ ldrh r4, [r3, #0x2]
+ add r2, #0x4a
+ strh r4, [r0, r2]
+ ldrh r2, [r3, #0x4]
+ add r3, r1, #0x0
+ add r3, #0x4c
+ strh r2, [r0, r3]
+ add r3, r1, #0x0
+ add r3, #0x4e
+ strh r5, [r0, r3]
+ add r3, r1, #0x0
+ add r3, #0x50
+ strh r4, [r0, r3]
+ add r3, r1, #0x0
+ add r3, #0x52
+ strh r2, [r0, r3]
+ add r3, r1, #0x0
+ add r3, #0x54
+ strh r5, [r0, r3]
+ add r3, r1, #0x0
+ add r3, #0x56
+ strh r4, [r0, r3]
+ add r3, r1, #0x0
+ add r3, #0x58
+ strh r2, [r0, r3]
+ add r3, r1, #0x0
+ add r3, #0x5a
+ strh r5, [r0, r3]
+ add r3, r1, #0x0
+ add r3, #0x5c
+ strh r4, [r0, r3]
+ add r1, #0x5e
+ strh r2, [r0, r1]
+ bl FUN_0207F608
+_0207F41A:
+ add sp, #0x18
+ pop {r3-r7, pc}
+ nop
+_0207F420: .word 0x0000068C
+_0207F424: .word 0x020FB60C
+_0207F428: .word 0x020FB64C
+_0207F42C: .word 0x020FB68C
+
+ thumb_func_start FUN_0207F430
+FUN_0207F430: ; 0x0207F430
+ push {r4-r5}
+ cmp r2, #0xff
+ bne _0207F446
+ ldrh r2, [r0, #0x0]
+ strh r2, [r1, #0x0]
+ ldrh r2, [r0, #0x2]
+ strh r2, [r1, #0x2]
+ ldrh r0, [r0, #0x4]
+ strh r0, [r1, #0x4]
+ pop {r4-r5}
+ bx lr
+_0207F446:
+ cmp r2, #0x0
+ bne _0207F45A
+ ldrh r2, [r0, #0x6]
+ strh r2, [r1, #0x0]
+ ldrh r2, [r0, #0x8]
+ strh r2, [r1, #0x2]
+ ldrh r0, [r0, #0xa]
+ strh r0, [r1, #0x4]
+ pop {r4-r5}
+ bx lr
+_0207F45A:
+ mov r3, #0x6
+ ldrsh r5, [r0, r3]
+ mov r3, #0xc
+ ldrsh r3, [r0, r3]
+ add r4, r3, #0x0
+ mul r4, r2
+ add r3, r5, r4
+ strh r3, [r1, #0x0]
+ mov r3, #0x8
+ ldrsh r5, [r0, r3]
+ mov r3, #0xe
+ ldrsh r3, [r0, r3]
+ add r4, r3, #0x0
+ mul r4, r2
+ add r3, r5, r4
+ strh r3, [r1, #0x2]
+ mov r3, #0xa
+ ldrsh r4, [r0, r3]
+ mov r3, #0x10
+ ldrsh r0, [r0, r3]
+ mul r2, r0
+ add r0, r4, r2
+ strh r0, [r1, #0x4]
+ pop {r4-r5}
+ bx lr
+
+ thumb_func_start FUN_0207F48C
+FUN_0207F48C: ; 0x0207F48C
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ mov r0, #0x0
+ ldrsh r1, [r4, r0]
+ ldrsh r0, [r5, r0]
+ add r6, r2, #0x0
+ sub r7, r1, r0
+ add r0, r7, #0x0
+ blx _fflt
+ ldr r1, _0207F600 ; =0x45800000
+ blx _fdiv
+ ldr r1, _0207F604 ; =0x40800000
+ blx _fdiv
+ mov r1, #0x0
+ blx _fgr
+ bls _0207F4E0
+ add r0, r7, #0x0
+ blx _fflt
+ ldr r1, _0207F600 ; =0x45800000
+ blx _fdiv
+ ldr r1, _0207F604 ; =0x40800000
+ blx _fdiv
+ add r1, r0, #0x0
+ ldr r0, _0207F600 ; =0x45800000
+ blx _fmul
+ add r1, r0, #0x0
+ mov r0, #0x3f
+ lsl r0, r0, #0x18
+ blx _fadd
+ blx _ffix
+ b _0207F506
+_0207F4E0:
+ add r0, r7, #0x0
+ blx _fflt
+ ldr r1, _0207F600 ; =0x45800000
+ blx _fdiv
+ ldr r1, _0207F604 ; =0x40800000
+ blx _fdiv
+ add r1, r0, #0x0
+ ldr r0, _0207F600 ; =0x45800000
+ blx _fmul
+ mov r1, #0x3f
+ lsl r1, r1, #0x18
+ blx _fsub
+ blx _ffix
+_0207F506:
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ strh r0, [r6, #0x0]
+ mov r0, #0x2
+ ldrsh r1, [r4, r0]
+ ldrsh r0, [r5, r0]
+ sub r7, r1, r0
+ add r0, r7, #0x0
+ blx _fflt
+ ldr r1, _0207F600 ; =0x45800000
+ blx _fdiv
+ ldr r1, _0207F604 ; =0x40800000
+ blx _fdiv
+ mov r1, #0x0
+ blx _fgr
+ bls _0207F558
+ add r0, r7, #0x0
+ blx _fflt
+ ldr r1, _0207F600 ; =0x45800000
+ blx _fdiv
+ ldr r1, _0207F604 ; =0x40800000
+ blx _fdiv
+ add r1, r0, #0x0
+ ldr r0, _0207F600 ; =0x45800000
+ blx _fmul
+ add r1, r0, #0x0
+ mov r0, #0x3f
+ lsl r0, r0, #0x18
+ blx _fadd
+ blx _ffix
+ b _0207F57E
+_0207F558:
+ add r0, r7, #0x0
+ blx _fflt
+ ldr r1, _0207F600 ; =0x45800000
+ blx _fdiv
+ ldr r1, _0207F604 ; =0x40800000
+ blx _fdiv
+ add r1, r0, #0x0
+ ldr r0, _0207F600 ; =0x45800000
+ blx _fmul
+ mov r1, #0x3f
+ lsl r1, r1, #0x18
+ blx _fsub
+ blx _ffix
+_0207F57E:
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ strh r0, [r6, #0x2]
+ mov r0, #0x4
+ ldrsh r1, [r4, r0]
+ ldrsh r0, [r5, r0]
+ sub r4, r1, r0
+ add r0, r4, #0x0
+ blx _fflt
+ ldr r1, _0207F600 ; =0x45800000
+ blx _fdiv
+ ldr r1, _0207F604 ; =0x40800000
+ blx _fdiv
+ mov r1, #0x0
+ blx _fgr
+ bls _0207F5D0
+ add r0, r4, #0x0
+ blx _fflt
+ ldr r1, _0207F600 ; =0x45800000
+ blx _fdiv
+ ldr r1, _0207F604 ; =0x40800000
+ blx _fdiv
+ add r1, r0, #0x0
+ ldr r0, _0207F600 ; =0x45800000
+ blx _fmul
+ add r1, r0, #0x0
+ mov r0, #0x3f
+ lsl r0, r0, #0x18
+ blx _fadd
+ blx _ffix
+ b _0207F5F6
+_0207F5D0:
+ add r0, r4, #0x0
+ blx _fflt
+ ldr r1, _0207F600 ; =0x45800000
+ blx _fdiv
+ ldr r1, _0207F604 ; =0x40800000
+ blx _fdiv
+ add r1, r0, #0x0
+ ldr r0, _0207F600 ; =0x45800000
+ blx _fmul
+ mov r1, #0x3f
+ lsl r1, r1, #0x18
+ blx _fsub
+ blx _ffix
+_0207F5F6:
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ strh r0, [r6, #0x4]
+ pop {r3-r7, pc}
+ nop
+_0207F600: .word 0x45800000
+_0207F604: .word 0x40800000
+
+ thumb_func_start FUN_0207F608
+FUN_0207F608: ; 0x0207F608
+ push {r3-r7, lr}
+ sub sp, #0x28
+ ldr r2, _0207F7D0 ; =0x00000295
+ add r5, r0, #0x0
+ mov r1, #0xe7
+ lsl r1, r1, #0x2
+ ldrb r2, [r5, r2]
+ ldr r0, _0207F7D4 ; =0x020FB5D8
+ add r1, r5, r1
+ bl FUN_0207F430
+ ldr r2, _0207F7D8 ; =0x00000296
+ ldr r1, _0207F7DC ; =0x000003A2
+ ldrb r2, [r5, r2]
+ ldr r0, _0207F7E0 ; =0x020FB5EA
+ add r1, r5, r1
+ bl FUN_0207F430
+ ldr r2, _0207F7E4 ; =0x00000297
+ ldr r1, _0207F7E8 ; =0x000003AE
+ ldrb r2, [r5, r2]
+ ldr r0, _0207F7EC ; =0x020FB5FC
+ add r1, r5, r1
+ bl FUN_0207F430
+ mov r1, #0xea
+ lsl r1, r1, #0x2
+ ldr r0, _0207F7F0 ; =0x020FB60E
+ add r1, r5, r1
+ mov r2, #0x0
+ bl FUN_0207F430
+ ldr r2, _0207F7F4 ; =0x00000299
+ mov r1, #0xed
+ lsl r1, r1, #0x2
+ ldrb r2, [r5, r2]
+ ldr r0, _0207F7F8 ; =0x020FB620
+ add r1, r5, r1
+ bl FUN_0207F430
+ ldr r2, _0207F7D0 ; =0x00000295
+ ldr r1, _0207F7FC ; =0x000003BA
+ ldrb r2, [r5, r2]
+ ldr r0, _0207F800 ; =0x020FB632
+ add r1, r5, r1
+ bl FUN_0207F430
+ ldr r1, _0207F804 ; =0x000003C6
+ ldr r0, _0207F808 ; =0x020FB644
+ add r1, r5, r1
+ mov r2, #0x0
+ bl FUN_0207F430
+ mov r2, #0xa6
+ lsl r2, r2, #0x2
+ mov r1, #0xf
+ lsl r1, r1, #0x6
+ ldrb r2, [r5, r2]
+ ldr r0, _0207F80C ; =0x020FB656
+ add r1, r5, r1
+ bl FUN_0207F430
+ ldr r2, _0207F7F4 ; =0x00000299
+ mov r1, #0xf3
+ lsl r1, r1, #0x2
+ ldrb r2, [r5, r2]
+ ldr r0, _0207F810 ; =0x020FB668
+ add r1, r5, r1
+ bl FUN_0207F430
+ ldr r1, _0207F814 ; =0x000003D2
+ ldr r0, _0207F818 ; =0x020FB67A
+ add r1, r5, r1
+ mov r2, #0x0
+ bl FUN_0207F430
+ ldr r2, _0207F7E4 ; =0x00000297
+ ldr r1, _0207F81C ; =0x000003DE
+ ldrb r2, [r5, r2]
+ ldr r0, _0207F820 ; =0x020FB68C
+ add r1, r5, r1
+ bl FUN_0207F430
+ mov r2, #0xa6
+ lsl r2, r2, #0x2
+ mov r1, #0xf6
+ lsl r1, r1, #0x2
+ ldrb r2, [r5, r2]
+ ldr r0, _0207F824 ; =0x020FB69E
+ add r1, r5, r1
+ bl FUN_0207F430
+ mov r1, #0xf9
+ lsl r1, r1, #0x2
+ ldr r0, _0207F828 ; =0x020FB6B0
+ add r1, r5, r1
+ mov r2, #0x0
+ bl FUN_0207F430
+ ldr r2, _0207F7D8 ; =0x00000296
+ ldr r1, _0207F82C ; =0x000003EA
+ ldrb r2, [r5, r2]
+ ldr r0, _0207F830 ; =0x020FB6C2
+ add r1, r5, r1
+ bl FUN_0207F430
+ ldr r2, _0207F7E4 ; =0x00000297
+ ldr r1, _0207F834 ; =0x000003F6
+ ldrb r2, [r5, r2]
+ ldr r0, _0207F838 ; =0x020FB6D4
+ add r1, r5, r1
+ bl FUN_0207F430
+ mov r2, #0xa6
+ lsl r2, r2, #0x2
+ mov r1, #0x3f
+ lsl r1, r1, #0x4
+ ldrb r2, [r5, r2]
+ ldr r0, _0207F83C ; =0x020FB6E6
+ add r1, r5, r1
+ bl FUN_0207F430
+ mov r0, #0x0
+ str r0, [sp, #0x24]
+ mov r0, #0xcf
+ lsl r0, r0, #0x2
+ add r1, r5, r0
+ str r1, [sp, #0x20]
+ add r1, r0, #0x0
+ add r1, #0x60
+ add r1, r5, r1
+ str r1, [sp, #0x1c]
+ add r1, r0, #0x0
+ sub r1, #0x60
+ add r1, r5, r1
+ str r1, [sp, #0x18]
+ add r1, r0, #0x6
+ add r1, r5, r1
+ str r1, [sp, #0x14]
+ add r1, r0, #0x0
+ add r1, #0x66
+ add r1, r5, r1
+ str r1, [sp, #0x10]
+ add r1, r0, #0x0
+ sub r1, #0x5a
+ add r1, r5, r1
+ str r1, [sp, #0xc]
+ add r1, r0, #0x0
+ add r1, #0xc
+ add r1, r5, r1
+ str r1, [sp, #0x8]
+ add r1, r0, #0x0
+ add r1, #0x6c
+ add r1, r5, r1
+ str r1, [sp, #0x4]
+ add r1, r0, #0x0
+ sub r1, #0x54
+ add r1, r5, r1
+ str r1, [sp, #0x0]
+ add r1, r0, #0x0
+ add r1, #0x12
+ add r7, r5, r1
+ add r1, r0, #0x0
+ add r1, #0x72
+ sub r0, #0x4e
+ add r6, r5, r1
+ add r4, r5, r0
+_0207F756:
+ ldr r0, [sp, #0x18]
+ ldr r1, [sp, #0x1c]
+ ldr r2, [sp, #0x20]
+ bl FUN_0207F48C
+ ldr r0, [sp, #0xc]
+ ldr r1, [sp, #0x10]
+ ldr r2, [sp, #0x14]
+ bl FUN_0207F48C
+ ldr r0, [sp, #0x0]
+ ldr r1, [sp, #0x4]
+ ldr r2, [sp, #0x8]
+ bl FUN_0207F48C
+ add r0, r4, #0x0
+ add r1, r6, #0x0
+ add r2, r7, #0x0
+ bl FUN_0207F48C
+ 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, #0x8]
+ add r0, #0x18
+ str r0, [sp, #0x8]
+ ldr r0, [sp, #0x4]
+ add r0, #0x18
+ str r0, [sp, #0x4]
+ ldr r0, [sp, #0x0]
+ add r0, #0x18
+ str r0, [sp, #0x0]
+ ldr r0, [sp, #0x24]
+ add r0, r0, #0x1
+ str r0, [sp, #0x24]
+ cmp r0, #0x4
+ blo _0207F756
+ mov r0, #0xff
+ mov r1, #0x0
+ lsl r0, r0, #0x2
+ str r1, [r5, r0]
+ add sp, #0x28
+ pop {r3-r7, pc}
+ .balign 4
+_0207F7D0: .word 0x00000295
+_0207F7D4: .word 0x020FB5D8
+_0207F7D8: .word 0x00000296
+_0207F7DC: .word 0x000003A2
+_0207F7E0: .word 0x020FB5EA
+_0207F7E4: .word 0x00000297
+_0207F7E8: .word 0x000003AE
+_0207F7EC: .word 0x020FB5FC
+_0207F7F0: .word 0x020FB60E
+_0207F7F4: .word 0x00000299
+_0207F7F8: .word 0x020FB620
+_0207F7FC: .word 0x000003BA
+_0207F800: .word 0x020FB632
+_0207F804: .word 0x000003C6
+_0207F808: .word 0x020FB644
+_0207F80C: .word 0x020FB656
+_0207F810: .word 0x020FB668
+_0207F814: .word 0x000003D2
+_0207F818: .word 0x020FB67A
+_0207F81C: .word 0x000003DE
+_0207F820: .word 0x020FB68C
+_0207F824: .word 0x020FB69E
+_0207F828: .word 0x020FB6B0
+_0207F82C: .word 0x000003EA
+_0207F830: .word 0x020FB6C2
+_0207F834: .word 0x000003F6
+_0207F838: .word 0x020FB6D4
+_0207F83C: .word 0x020FB6E6
+
+ thumb_func_start FUN_0207F840
+FUN_0207F840: ; 0x0207F840
+ push {r4, lr}
+ sub sp, #0x20
+ add r4, r0, #0x0
+ mov r0, #0x13
+ bl FUN_02006D98
+ mov r1, #0xae
+ lsl r1, r1, #0x2
+ str r0, [r4, r1]
+ add r0, r4, #0x0
+ bl FUN_0207B628
+ add r1, r0, #0x0
+ mov r0, #0x93
+ lsl r0, r0, #0x2
+ ldr r0, [r4, r0]
+ ldrb r0, [r0, #0x11]
+ cmp r0, #0x2
+ add r0, sp, #0x10
+ bne _0207F870
+ mov r2, #0x2
+ bl FUN_02068B70
+ b _0207F876
+_0207F870:
+ mov r2, #0x2
+ bl FUN_02068B68
+_0207F876:
+ mov r1, #0xaf
+ lsl r1, r1, #0x2
+ add r0, r4, r1
+ sub r1, #0x60
+ ldrh r1, [r4, r1]
+ bl FUN_02069010
+ mov r0, #0x97
+ lsl r0, r0, #0x2
+ ldrh r0, [r4, r0]
+ mov r1, #0x1c
+ bl FUN_02068678
+ mov r1, #0x1
+ eor r0, r1
+ mov r1, #0xb6
+ lsl r1, r1, #0x2
+ str r0, [r4, r1]
+ add r0, r1, #0x0
+ mov r2, #0x0
+ str r2, [sp, #0x0]
+ sub r0, #0x1c
+ str r2, [sp, #0x4]
+ add r0, r4, r0
+ str r0, [sp, #0x8]
+ str r2, [sp, #0xc]
+ sub r1, #0x20
+ ldr r0, [r4, r1]
+ add r1, sp, #0x10
+ mov r2, #0x34
+ mov r3, #0x68
+ bl FUN_020073A0
+ mov r2, #0xb5
+ lsl r2, r2, #0x2
+ str r0, [r4, r2]
+ ldr r0, [r4, r2]
+ add r2, r2, #0x4
+ ldr r2, [r4, r2]
+ mov r1, #0x23
+ bl FUN_02007558
+ add sp, #0x20
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0207F8D0
+FUN_0207F8D0: ; 0x0207F8D0
+ push {r3-r4, lr}
+ sub sp, #0xc
+ mov r1, #0x2a
+ add r4, r0, #0x0
+ lsl r1, r1, #0x4
+ ldr r0, [r4, r1]
+ lsl r0, r0, #0x3
+ lsr r0, r0, #0x1f
+ beq _0207F904
+ mov r2, #0x0
+ add r0, r1, #0x0
+ str r2, [sp, #0x0]
+ add r0, #0x38
+ ldr r0, [r4, r0]
+ mov r3, #0x2
+ str r0, [sp, #0x4]
+ add r0, r1, #0x0
+ str r2, [sp, #0x8]
+ add r0, #0x30
+ add r1, #0x34
+ ldr r0, [r4, r0]
+ ldr r1, [r4, r1]
+ bl FUN_02069038
+ add sp, #0xc
+ pop {r3-r4, pc}
+_0207F904:
+ add r1, #0x34
+ ldr r0, [r4, r1]
+ mov r1, #0x1
+ bl FUN_02007314
+ mov r1, #0x0
+ mov r2, #0xb6
+ str r1, [sp, #0x0]
+ lsl r2, r2, #0x2
+ ldr r0, [r4, r2]
+ mov r3, #0x2
+ str r0, [sp, #0x4]
+ str r1, [sp, #0x8]
+ add r0, r2, #0x0
+ sub r1, r2, #0x4
+ sub r2, #0x7c
+ sub r0, #0x8
+ ldrh r2, [r4, r2]
+ ldr r0, [r4, r0]
+ ldr r1, [r4, r1]
+ bl FUN_02069038
+ add sp, #0xc
+ pop {r3-r4, pc}
+
+ thumb_func_start FUN_0207F934
+FUN_0207F934: ; 0x0207F934
+ push {r4, lr}
+ add r4, r0, #0x0
+ mov r0, #0x2d
+ lsl r0, r0, #0x4
+ ldr r0, [r4, r0]
+ mov r1, #0x0
+ bl FUN_02014D9C
+ mov r0, #0xae
+ lsl r0, r0, #0x2
+ ldr r0, [r4, r0]
+ bl FUN_020072E8
+ add r0, r4, #0x0
+ bl FUN_0207F840
+ add r0, r4, #0x0
+ bl FUN_0207F8D0
+ pop {r4, pc}
+
+ thumb_func_start FUN_0207F95C
+FUN_0207F95C: ; 0x0207F95C
+ push {r4, lr}
+ add r4, r0, #0x0
+ mov r0, #0x93
+ lsl r0, r0, #0x2
+ ldr r0, [r4, r0]
+ ldrb r1, [r0, #0x12]
+ cmp r1, #0x3
+ bhi _0207F9AC
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #0x6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_0207F978: ; jump table (using 16-bit offset)
+ .short _0207F980 - _0207F978 - 2; case 0
+ .short _0207F980 - _0207F978 - 2; case 1
+ .short _0207F9AC - _0207F978 - 2; case 2
+ .short _0207F9AC - _0207F978 - 2; case 3
+_0207F980:
+ ldr r0, [r0, #0x2c]
+ ldr r1, _0207F9C4 ; =0x0000068F
+ cmp r0, #0x0
+ beq _0207F992
+ ldrb r2, [r4, r1]
+ mov r0, #0xf
+ bic r2, r0
+ strb r2, [r4, r1]
+ b _0207F9BA
+_0207F992:
+ ldrb r2, [r4, r1]
+ mov r0, #0xf
+ bic r2, r0
+ mov r0, #0x1
+ orr r0, r2
+ strb r0, [r4, r1]
+ mov r1, #0x4
+ ldr r0, [r4, #0x0]
+ mov r2, #0x0
+ add r3, r1, #0x0
+ bl FUN_0201AEE4
+ b _0207F9BA
+_0207F9AC:
+ ldr r1, _0207F9C4 ; =0x0000068F
+ mov r0, #0xf
+ ldrb r2, [r4, r1]
+ bic r2, r0
+ mov r0, #0xf
+ orr r0, r2
+ strb r0, [r4, r1]
+_0207F9BA:
+ add r0, r4, #0x0
+ bl FUN_0207FA38
+ pop {r4, pc}
+ nop
+_0207F9C4: .word 0x0000068F
+
+ thumb_func_start FUN_0207F9C8
+FUN_0207F9C8: ; 0x0207F9C8
+ push {r3-r7, lr}
+ ldr r0, [r0, #0x0]
+ add r4, r1, #0x0
+ mov r1, #0x4
+ add r5, r2, #0x0
+ bl FUN_0201886C
+ add r7, r0, #0x0
+ lsl r0, r5, #0x2
+ add r1, r5, r0
+ ldrb r2, [r4, #0x0]
+ mov r0, #0x1
+ mov r3, #0x0
+ add r5, r2, #0x0
+ and r5, r0
+ mov r0, #0xf
+ mul r0, r5
+ lsr r5, r2, #0x1
+ mov r2, #0x96
+ mul r2, r5
+ add r0, r0, r2
+ add r0, r1, r0
+ add r0, #0x1e
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ mov r12, r0
+_0207F9FC:
+ mov r0, #0x1e
+ add r1, r3, #0x0
+ mul r1, r0
+ mov r0, r12
+ mov r2, #0x0
+ add r5, r0, r1
+_0207FA08:
+ ldrb r0, [r4, #0x1]
+ ldrb r6, [r4, #0x3]
+ lsl r1, r0, #0xc
+ add r0, r2, r5
+ add r1, r1, r0
+ add r6, r3, r6
+ lsl r6, r6, #0x5
+ ldrb r0, [r4, #0x2]
+ add r6, r2, r6
+ add r0, r0, r6
+ lsl r0, r0, #0x1
+ strh r1, [r7, r0]
+ add r0, r2, #0x1
+ lsl r0, r0, #0x18
+ lsr r2, r0, #0x18
+ cmp r2, #0x5
+ blo _0207FA08
+ add r0, r3, #0x1
+ lsl r0, r0, #0x18
+ lsr r3, r0, #0x18
+ cmp r3, #0x5
+ blo _0207F9FC
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_0207FA38
+FUN_0207FA38: ; 0x0207FA38
+ push {r3-r7, lr}
+ add r6, r0, #0x0
+ ldr r0, _0207FA78 ; =0x0000068F
+ ldrb r0, [r6, r0]
+ lsl r0, r0, #0x1c
+ lsr r0, r0, #0x1c
+ cmp r0, #0xf
+ beq _0207FA74
+ lsl r1, r0, #0x2
+ ldr r0, _0207FA7C ; =0x02106148
+ mov r5, #0x0
+ ldr r4, [r0, r1]
+ add r7, r5, #0x0
+_0207FA52:
+ lsl r1, r5, #0x2
+ ldrb r0, [r4, r1]
+ cmp r0, #0xff
+ beq _0207FA6C
+ add r0, r6, #0x0
+ add r1, r4, r1
+ add r2, r7, #0x0
+ bl FUN_0207F9C8
+ add r0, r5, #0x1
+ lsl r0, r0, #0x18
+ lsr r5, r0, #0x18
+ b _0207FA52
+_0207FA6C:
+ ldr r0, [r6, #0x0]
+ mov r1, #0x4
+ bl FUN_0201AC68
+_0207FA74:
+ pop {r3-r7, pc}
+ nop
+_0207FA78: .word 0x0000068F
+_0207FA7C: .word 0x02106148
+
+ thumb_func_start FUN_0207FA80
+FUN_0207FA80: ; 0x0207FA80
+ push {r3, lr}
+ bl FUN_0207FA98
+ mov r1, #0x0
+ mvn r1, r1
+ cmp r0, r1
+ beq _0207FA94
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ pop {r3, pc}
+_0207FA94:
+ mov r0, #0xff
+ pop {r3, pc}
+
+ thumb_func_start FUN_0207FA98
+FUN_0207FA98: ; 0x0207FA98
+ push {r3, lr}
+ ldr r1, _0207FAB8 ; =0x0000068F
+ ldrb r0, [r0, r1]
+ lsl r0, r0, #0x1c
+ lsr r0, r0, #0x1c
+ cmp r0, #0xf
+ bne _0207FAAC
+ mov r0, #0x0
+ mvn r0, r0
+ pop {r3, pc}
+_0207FAAC:
+ lsl r1, r0, #0x2
+ ldr r0, _0207FABC ; =0x0210613C
+ ldr r0, [r0, r1]
+ bl FUN_02020988
+ pop {r3, pc}
+ .balign 4
+_0207FAB8: .word 0x0000068F
+_0207FABC: .word 0x0210613C
+
+ thumb_func_start FUN_0207FAC0
+FUN_0207FAC0: ; 0x0207FAC0
+ push {r3-r5, lr}
+ sub sp, #0x8
+ add r5, r0, #0x0
+ ldr r0, _0207FB18 ; =0x0000068F
+ ldrb r0, [r5, r0]
+ lsl r0, r0, #0x1c
+ lsr r0, r0, #0x1c
+ cmp r0, #0xf
+ bne _0207FADA
+ mov r0, #0x0
+ add sp, #0x8
+ mvn r0, r0
+ pop {r3-r5, pc}
+_0207FADA:
+ lsl r1, r0, #0x2
+ ldr r0, _0207FB1C ; =0x0210613C
+ ldr r0, [r0, r1]
+ bl FUN_02020968
+ add r4, r0, #0x0
+ mov r0, #0x0
+ mvn r0, r0
+ cmp r4, r0
+ beq _0207FB12
+ ldr r1, _0207FB20 ; =0x0000FFFE
+ add r0, sp, #0x4
+ strh r1, [r0, #0x0]
+ add r0, sp, #0x4
+ str r0, [sp, #0x0]
+ ldr r3, _0207FB24 ; =0x021C48F8
+ ldr r0, [r5, #0x0]
+ ldrh r2, [r3, #0x1c]
+ ldrh r3, [r3, #0x1e]
+ mov r1, #0x4
+ bl FUN_0201AFBC
+ cmp r0, #0x0
+ bne _0207FB12
+ mov r0, #0x0
+ add sp, #0x8
+ mvn r0, r0
+ pop {r3-r5, pc}
+_0207FB12:
+ add r0, r4, #0x0
+ add sp, #0x8
+ pop {r3-r5, pc}
+ .balign 4
+_0207FB18: .word 0x0000068F
+_0207FB1C: .word 0x0210613C
+_0207FB20: .word 0x0000FFFE
+_0207FB24: .word 0x021C48F8
+
+ thumb_func_start FUN_0207FB28
+FUN_0207FB28: ; 0x0207FB28
+ push {r4-r6, lr}
+ ldr r1, _0207FBF4 ; =0x0000068F
+ add r5, r0, #0x0
+ ldrb r2, [r5, r1]
+ lsl r2, r2, #0x1c
+ lsr r3, r2, #0x1a
+ ldr r2, _0207FBF8 ; =0x02106148
+ ldr r4, [r2, r3]
+ add r2, r1, #0x6
+ ldrb r2, [r5, r2]
+ cmp r2, #0x0
+ beq _0207FB4A
+ cmp r2, #0x1
+ beq _0207FB84
+ cmp r2, #0x2
+ beq _0207FB8C
+ b _0207FBEE
+_0207FB4A:
+ sub r1, #0xab
+ add r0, r1, #0x0
+ bl FUN_020054C8
+ add r0, r5, #0x0
+ bl FUN_0207FA38
+ ldr r1, _0207FBFC ; =0x00000696
+ add r0, r5, #0x0
+ ldrb r1, [r5, r1]
+ mov r2, #0x2
+ lsl r1, r1, #0x2
+ add r1, r4, r1
+ bl FUN_0207F9C8
+ ldr r0, [r5, #0x0]
+ mov r1, #0x4
+ bl FUN_0201AC68
+ add r0, r5, #0x0
+ bl FUN_0207CEDC
+ ldr r0, _0207FC00 ; =0x00000694
+ mov r1, #0x0
+ strb r1, [r5, r0]
+ mov r1, #0x1
+ add r0, r0, #0x1
+ strb r1, [r5, r0]
+ b _0207FBEE
+_0207FB84:
+ mov r2, #0x2
+ add r0, r1, #0x6
+ strb r2, [r5, r0]
+ b _0207FBEE
+_0207FB8C:
+ add r2, r1, #0x5
+ ldrb r2, [r5, r2]
+ cmp r2, #0x3
+ beq _0207FBA0
+ add r0, r1, #0x5
+ ldrb r0, [r5, r0]
+ add r2, r0, #0x1
+ add r0, r1, #0x5
+ strb r2, [r5, r0]
+ b _0207FBEE
+_0207FBA0:
+ bl FUN_0207CF58
+ ldr r0, _0207FBFC ; =0x00000696
+ ldrb r6, [r5, r0]
+ add r0, r5, #0x0
+ bl FUN_0207FAC0
+ cmp r6, r0
+ beq _0207FBEE
+ mov r0, #0x2a
+ lsl r0, r0, #0x4
+ ldr r0, [r5, r0]
+ lsl r0, r0, #0x3
+ lsr r0, r0, #0x1f
+ beq _0207FBD6
+ lsl r1, r6, #0x2
+ ldrb r0, [r4, r1]
+ cmp r0, #0x1
+ beq _0207FBD6
+ cmp r0, #0x7
+ beq _0207FBD6
+ add r0, r5, #0x0
+ add r1, r4, r1
+ mov r2, #0x0
+ bl FUN_0207F9C8
+ b _0207FBE2
+_0207FBD6:
+ lsl r1, r6, #0x2
+ add r0, r5, #0x0
+ add r1, r4, r1
+ mov r2, #0x1
+ bl FUN_0207F9C8
+_0207FBE2:
+ ldr r0, [r5, #0x0]
+ mov r1, #0x4
+ bl FUN_0201AC68
+ mov r0, #0x1
+ pop {r4-r6, pc}
+_0207FBEE:
+ mov r0, #0x0
+ pop {r4-r6, pc}
+ nop
+_0207FBF4: .word 0x0000068F
+_0207FBF8: .word 0x02106148
+_0207FBFC: .word 0x00000696
+_0207FC00: .word 0x00000694
+
+ thumb_func_start FUN_0207FC04
+FUN_0207FC04: ; 0x0207FC04
+ push {r4-r5}
+ ldr r4, _0207FC38 ; =0x0000068F
+ ldrb r3, [r0, r4]
+ lsl r3, r3, #0x1c
+ lsr r5, r3, #0x1a
+ ldr r3, _0207FC3C ; =0x02106148
+ ldr r3, [r3, r5]
+ add r5, r4, #0x7
+ ldrb r5, [r0, r5]
+ lsl r5, r5, #0x2
+ add r5, r3, r5
+ ldrb r5, [r5, #0x2]
+ lsl r5, r5, #0x3
+ add r5, #0x14
+ strh r5, [r1, #0x0]
+ add r1, r4, #0x7
+ ldrb r0, [r0, r1]
+ lsl r0, r0, #0x2
+ add r0, r3, r0
+ ldrb r0, [r0, #0x3]
+ lsl r0, r0, #0x3
+ add r0, #0x14
+ strh r0, [r2, #0x0]
+ pop {r4-r5}
+ bx lr
+ nop
+_0207FC38: .word 0x0000068F
+_0207FC3C: .word 0x02106148
+
+ thumb_func_start FUN_0207FC40
+FUN_0207FC40: ; 0x0207FC40
+ ldr r2, _0207FC54 ; =0x0000068F
+ ldrb r0, [r0, r2]
+ lsl r0, r0, #0x1c
+ lsr r2, r0, #0x1a
+ ldr r0, _0207FC58 ; =0x02106148
+ ldr r2, [r0, r2]
+ lsl r0, r1, #0x2
+ ldrb r0, [r2, r0]
+ bx lr
+ nop
+_0207FC54: .word 0x0000068F
+_0207FC58: .word 0x02106148
+
+ thumb_func_start FUN_0207FC5C
+FUN_0207FC5C: ; 0x0207FC5C
+ cmp r1, #0x4
+ bhi _0207FCA8
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #0x6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_0207FC6C: ; jump table (using 16-bit offset)
+ .short _0207FC76 - _0207FC6C - 2; case 0
+ .short _0207FC80 - _0207FC6C - 2; case 1
+ .short _0207FC8A - _0207FC6C - 2; case 2
+ .short _0207FC94 - _0207FC6C - 2; case 3
+ .short _0207FC9E - _0207FC6C - 2; case 4
+_0207FC76:
+ mov r1, #0xc
+ mul r1, r0
+ ldr r0, _0207FCAC ; =0x020FB788
+ ldr r0, [r0, r1]
+ bx lr
+_0207FC80:
+ mov r1, #0xc
+ mul r1, r0
+ ldr r0, _0207FCB0 ; =0x020FB78C
+ ldrh r0, [r0, r1]
+ bx lr
+_0207FC8A:
+ mov r1, #0xc
+ mul r1, r0
+ ldr r0, _0207FCB4 ; =0x020FB78E
+ ldrh r0, [r0, r1]
+ bx lr
+_0207FC94:
+ mov r1, #0xc
+ mul r1, r0
+ ldr r0, _0207FCB8 ; =0x020FB790
+ ldrh r0, [r0, r1]
+ bx lr
+_0207FC9E:
+ mov r1, #0xc
+ mul r1, r0
+ ldr r0, _0207FCBC ; =0x020FB792
+ ldrh r0, [r0, r1]
+ bx lr
+_0207FCA8:
+ mov r0, #0x0
+ bx lr
+ .balign 4
+_0207FCAC: .word 0x020FB788
+_0207FCB0: .word 0x020FB78C
+_0207FCB4: .word 0x020FB78E
+_0207FCB8: .word 0x020FB790
+_0207FCBC: .word 0x020FB792
+
+ thumb_func_start FUN_0207FCC0
+FUN_0207FCC0: ; 0x0207FCC0
+ mov r2, #0xc
+ mul r2, r1
+ ldr r1, _0207FCDC ; =0x020FB792
+ ldrh r2, [r1, r2]
+ mov r1, #0x2
+ lsl r1, r1, #0xe
+ tst r1, r2
+ beq _0207FCD8
+ lsl r1, r2, #0x18
+ lsr r1, r1, #0x18
+ ldrb r2, [r0, r1]
+ add r2, #0x92
+_0207FCD8:
+ add r0, r2, #0x0
+ bx lr
+ .balign 4
+_0207FCDC: .word 0x020FB792
+
+ thumb_func_start FUN_0207FCE0
+FUN_0207FCE0: ; 0x0207FCE0
+ mov r1, #0xc
+ mul r1, r0
+ ldr r0, _0207FCFC ; =0x020FB792
+ ldrh r1, [r0, r1]
+ mov r0, #0x2
+ lsl r0, r0, #0xe
+ tst r0, r1
+ beq _0207FCF6
+ lsl r0, r1, #0x18
+ lsr r0, r0, #0x18
+ bx lr
+_0207FCF6:
+ mov r0, #0xff
+ bx lr
+ nop
+_0207FCFC: .word 0x020FB792
+
+ thumb_func_start FUN_0207FD00
+FUN_0207FD00: ; 0x0207FD00
+ push {r3-r7, lr}
+ add r7, r2, #0x0
+ add r5, r0, #0x0
+ add r6, r1, #0x0
+ add r0, r7, #0x0
+ mov r1, #0x3c
+ bl FUN_02016998
+ add r4, r0, #0x0
+ mov r2, #0x65
+ str r7, [r4, #0x0]
+ mov r0, #0x1
+ mov r1, #0x1a
+ lsl r2, r2, #0x2
+ add r3, r7, #0x0
+ bl FUN_0200A86C
+ str r0, [r4, #0x4]
+ ldr r2, [r4, #0x0]
+ mov r0, #0x9
+ mov r1, #0x20
+ bl FUN_0200AA90
+ str r0, [r4, #0x8]
+ str r5, [r4, #0xc]
+ str r6, [r4, #0x10]
+ mov r0, #0x0
+ str r0, [r4, #0x14]
+ str r0, [r4, #0x18]
+ str r0, [r4, #0x1c]
+ str r0, [r4, #0x20]
+ str r0, [r4, #0x24]
+ str r0, [r4, #0x28]
+ str r0, [r4, #0x2c]
+ str r0, [r4, #0x30]
+ str r0, [r4, #0x34]
+ str r0, [r4, #0x38]
+ ldr r0, [r4, #0xc]
+ ldr r1, [r4, #0x10]
+ ldr r2, [r4, #0x0]
+ bl FUN_020806F4
+ cmp r0, #0x14
+ bls _0207FD5A
+ b _02080090
+_0207FD5A:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0207FD66: ; jump table (using 16-bit offset)
+ .short _0207FD90 - _0207FD66 - 2; case 0
+ .short _0207FDBC - _0207FD66 - 2; case 1
+ .short _0207FDE8 - _0207FD66 - 2; case 2
+ .short _0207FE14 - _0207FD66 - 2; case 3
+ .short _0207FE40 - _0207FD66 - 2; case 4
+ .short _0207FE6C - _0207FD66 - 2; case 5
+ .short _0207FE98 - _0207FD66 - 2; case 6
+ .short _0207FEC4 - _0207FD66 - 2; case 7
+ .short _0207FEF0 - _0207FD66 - 2; case 8
+ .short _0207FF1C - _0207FD66 - 2; case 9
+ .short _0207FF3E - _0207FD66 - 2; case 10
+ .short _0207FF60 - _0207FD66 - 2; case 11
+ .short _0207FF82 - _0207FD66 - 2; case 12
+ .short _0207FFA4 - _0207FD66 - 2; case 13
+ .short _0207FFC6 - _0207FD66 - 2; case 14
+ .short _0207FFE8 - _0207FD66 - 2; case 15
+ .short _02080014 - _0207FD66 - 2; case 16
+ .short _0208002E - _0207FD66 - 2; case 17
+ .short _02080046 - _0207FD66 - 2; case 18
+ .short _02080060 - _0207FD66 - 2; case 19
+ .short _02080078 - _0207FD66 - 2; case 20
+_0207FD90:
+ mov r0, #0x1
+ str r0, [r4, #0x14]
+ add r0, r4, #0x0
+ bl FUN_020800E0
+ mov r0, #0x2
+ str r0, [r4, #0x1c]
+ add r0, r4, #0x0
+ mov r1, #0x31
+ bl FUN_02080108
+ mov r0, #0x6
+ str r0, [r4, #0x24]
+ add r0, r4, #0x0
+ bl FUN_0208048C
+ mov r0, #0x7
+ str r0, [r4, #0x2c]
+ add r0, r4, #0x0
+ bl FUN_02080678
+ b _02080090
+_0207FDBC:
+ mov r0, #0x1
+ str r0, [r4, #0x14]
+ add r0, r4, #0x0
+ bl FUN_020800E0
+ mov r0, #0x2
+ str r0, [r4, #0x1c]
+ add r0, r4, #0x0
+ mov r1, #0x32
+ bl FUN_02080108
+ mov r0, #0x6
+ str r0, [r4, #0x24]
+ add r0, r4, #0x0
+ bl FUN_0208048C
+ mov r0, #0x7
+ str r0, [r4, #0x2c]
+ add r0, r4, #0x0
+ bl FUN_02080678
+ b _02080090
+_0207FDE8:
+ mov r0, #0x1
+ str r0, [r4, #0x14]
+ add r0, r4, #0x0
+ bl FUN_020800E0
+ mov r0, #0x2
+ str r0, [r4, #0x1c]
+ add r0, r4, #0x0
+ mov r1, #0x33
+ bl FUN_02080108
+ mov r0, #0x6
+ str r0, [r4, #0x24]
+ add r0, r4, #0x0
+ bl FUN_0208048C
+ mov r0, #0x7
+ str r0, [r4, #0x2c]
+ add r0, r4, #0x0
+ bl FUN_02080678
+ b _02080090
+_0207FE14:
+ mov r0, #0x1
+ str r0, [r4, #0x14]
+ add r0, r4, #0x0
+ bl FUN_020800E0
+ mov r0, #0x2
+ str r0, [r4, #0x1c]
+ add r0, r4, #0x0
+ mov r1, #0x34
+ bl FUN_02080108
+ mov r0, #0x8
+ str r0, [r4, #0x24]
+ add r0, r4, #0x0
+ bl FUN_0208048C
+ mov r0, #0x9
+ str r0, [r4, #0x2c]
+ add r0, r4, #0x0
+ bl FUN_02080678
+ b _02080090
+_0207FE40:
+ mov r0, #0x1
+ str r0, [r4, #0x14]
+ add r0, r4, #0x0
+ bl FUN_020800E0
+ mov r0, #0x2
+ str r0, [r4, #0x1c]
+ add r0, r4, #0x0
+ mov r1, #0x35
+ bl FUN_02080108
+ mov r0, #0x8
+ str r0, [r4, #0x24]
+ add r0, r4, #0x0
+ bl FUN_0208048C
+ mov r0, #0x9
+ str r0, [r4, #0x2c]
+ add r0, r4, #0x0
+ bl FUN_02080678
+ b _02080090
+_0207FE6C:
+ mov r0, #0x1
+ str r0, [r4, #0x14]
+ add r0, r4, #0x0
+ bl FUN_020800E0
+ mov r0, #0x2
+ str r0, [r4, #0x1c]
+ add r0, r4, #0x0
+ mov r1, #0x36
+ bl FUN_02080108
+ mov r0, #0x8
+ str r0, [r4, #0x24]
+ add r0, r4, #0x0
+ bl FUN_0208048C
+ mov r0, #0x9
+ str r0, [r4, #0x2c]
+ add r0, r4, #0x0
+ bl FUN_02080678
+ b _02080090
+_0207FE98:
+ mov r0, #0x1
+ str r0, [r4, #0x14]
+ add r0, r4, #0x0
+ bl FUN_020800E0
+ mov r0, #0x2
+ str r0, [r4, #0x1c]
+ add r0, r4, #0x0
+ mov r1, #0x37
+ bl FUN_02080108
+ mov r0, #0x8
+ str r0, [r4, #0x24]
+ add r0, r4, #0x0
+ bl FUN_0208048C
+ mov r0, #0x9
+ str r0, [r4, #0x2c]
+ add r0, r4, #0x0
+ bl FUN_02080678
+ b _02080090
+_0207FEC4:
+ mov r0, #0x1
+ str r0, [r4, #0x14]
+ add r0, r4, #0x0
+ bl FUN_020800E0
+ mov r0, #0x2
+ str r0, [r4, #0x1c]
+ add r0, r4, #0x0
+ mov r1, #0x38
+ bl FUN_02080108
+ mov r0, #0x7
+ str r0, [r4, #0x24]
+ add r0, r4, #0x0
+ bl FUN_0208048C
+ mov r0, #0x8
+ str r0, [r4, #0x2c]
+ add r0, r4, #0x0
+ bl FUN_02080678
+ b _02080090
+_0207FEF0:
+ mov r0, #0x1
+ str r0, [r4, #0x14]
+ add r0, r4, #0x0
+ bl FUN_020800E0
+ mov r0, #0x2
+ str r0, [r4, #0x1c]
+ add r0, r4, #0x0
+ mov r1, #0x39
+ bl FUN_02080108
+ mov r0, #0x7
+ str r0, [r4, #0x24]
+ add r0, r4, #0x0
+ bl FUN_0208048C
+ mov r0, #0x8
+ str r0, [r4, #0x2c]
+ add r0, r4, #0x0
+ bl FUN_02080678
+ b _02080090
+_0207FF1C:
+ mov r0, #0x1
+ str r0, [r4, #0x14]
+ add r0, r4, #0x0
+ bl FUN_020800E0
+ mov r0, #0x2
+ str r0, [r4, #0x1c]
+ add r0, r4, #0x0
+ mov r1, #0x3a
+ bl FUN_02080108
+ mov r0, #0x9
+ str r0, [r4, #0x24]
+ add r0, r4, #0x0
+ bl FUN_0208048C
+ b _02080090
+_0207FF3E:
+ mov r0, #0x1
+ str r0, [r4, #0x14]
+ add r0, r4, #0x0
+ bl FUN_020800E0
+ mov r0, #0x2
+ str r0, [r4, #0x1c]
+ add r0, r4, #0x0
+ mov r1, #0x3b
+ bl FUN_02080108
+ mov r0, #0x9
+ str r0, [r4, #0x24]
+ add r0, r4, #0x0
+ bl FUN_0208048C
+ b _02080090
+_0207FF60:
+ mov r0, #0x1
+ str r0, [r4, #0x14]
+ add r0, r4, #0x0
+ bl FUN_020800E0
+ mov r0, #0x2
+ str r0, [r4, #0x1c]
+ add r0, r4, #0x0
+ mov r1, #0x3c
+ bl FUN_02080108
+ mov r0, #0x9
+ str r0, [r4, #0x24]
+ add r0, r4, #0x0
+ bl FUN_0208048C
+ b _02080090
+_0207FF82:
+ mov r0, #0x1
+ str r0, [r4, #0x14]
+ add r0, r4, #0x0
+ bl FUN_020800E0
+ mov r0, #0x2
+ str r0, [r4, #0x1c]
+ add r0, r4, #0x0
+ mov r1, #0x3d
+ bl FUN_02080108
+ mov r0, #0x9
+ str r0, [r4, #0x24]
+ add r0, r4, #0x0
+ bl FUN_0208048C
+ b _02080090
+_0207FFA4:
+ mov r0, #0x1
+ str r0, [r4, #0x14]
+ add r0, r4, #0x0
+ bl FUN_020800E0
+ mov r0, #0x2
+ str r0, [r4, #0x1c]
+ add r0, r4, #0x0
+ mov r1, #0x3e
+ bl FUN_02080108
+ mov r0, #0x9
+ str r0, [r4, #0x24]
+ add r0, r4, #0x0
+ bl FUN_0208048C
+ b _02080090
+_0207FFC6:
+ mov r0, #0x1
+ str r0, [r4, #0x14]
+ add r0, r4, #0x0
+ bl FUN_020800E0
+ mov r0, #0x2
+ str r0, [r4, #0x1c]
+ add r0, r4, #0x0
+ mov r1, #0x3f
+ bl FUN_02080108
+ mov r0, #0x9
+ str r0, [r4, #0x24]
+ add r0, r4, #0x0
+ bl FUN_0208048C
+ b _02080090
+_0207FFE8:
+ mov r0, #0x1
+ str r0, [r4, #0x14]
+ add r0, r4, #0x0
+ bl FUN_020800E0
+ mov r0, #0x2
+ str r0, [r4, #0x1c]
+ add r0, r4, #0x0
+ mov r1, #0x40
+ bl FUN_02080228
+ mov r0, #0x6
+ str r0, [r4, #0x24]
+ add r0, r4, #0x0
+ bl FUN_0208048C
+ mov r0, #0x7
+ str r0, [r4, #0x2c]
+ add r0, r4, #0x0
+ bl FUN_02080678
+ b _02080090
+_02080014:
+ mov r0, #0x1
+ str r0, [r4, #0x1c]
+ add r0, r4, #0x0
+ mov r1, #0x65
+ mov r2, #0x0
+ bl FUN_02080384
+ mov r0, #0x6
+ str r0, [r4, #0x34]
+ add r0, r4, #0x0
+ bl FUN_020806B4
+ b _02080090
+_0208002E:
+ mov r2, #0x1
+ add r0, r4, #0x0
+ mov r1, #0x66
+ str r2, [r4, #0x1c]
+ bl FUN_02080384
+ mov r0, #0x6
+ str r0, [r4, #0x34]
+ add r0, r4, #0x0
+ bl FUN_020806B4
+ b _02080090
+_02080046:
+ mov r0, #0x1
+ str r0, [r4, #0x1c]
+ add r0, r4, #0x0
+ mov r1, #0x67
+ mov r2, #0x0
+ bl FUN_02080384
+ mov r0, #0x6
+ str r0, [r4, #0x34]
+ add r0, r4, #0x0
+ bl FUN_020806B4
+ b _02080090
+_02080060:
+ mov r2, #0x1
+ add r0, r4, #0x0
+ mov r1, #0x67
+ str r2, [r4, #0x1c]
+ bl FUN_02080384
+ mov r0, #0x6
+ str r0, [r4, #0x34]
+ add r0, r4, #0x0
+ bl FUN_020806B4
+ b _02080090
+_02080078:
+ mov r0, #0x1
+ str r0, [r4, #0x1c]
+ add r0, r4, #0x0
+ mov r1, #0x68
+ mov r2, #0x0
+ bl FUN_02080384
+ mov r0, #0x6
+ str r0, [r4, #0x34]
+ add r0, r4, #0x0
+ bl FUN_020806B4
+_02080090:
+ add r0, r4, #0x0
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_02080094
+FUN_02080094: ; 0x02080094
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r0, [r4, #0x18]
+ cmp r0, #0x0
+ beq _020800A2
+ bl FUN_02016A18
+_020800A2:
+ ldr r0, [r4, #0x20]
+ cmp r0, #0x0
+ beq _020800AC
+ bl FUN_02016A18
+_020800AC:
+ ldr r0, [r4, #0x28]
+ cmp r0, #0x0
+ beq _020800B6
+ bl FUN_02016A18
+_020800B6:
+ ldr r0, [r4, #0x30]
+ cmp r0, #0x0
+ beq _020800C0
+ bl FUN_02016A18
+_020800C0:
+ ldr r0, [r4, #0x38]
+ cmp r0, #0x0
+ beq _020800CA
+ bl FUN_02016A18
+_020800CA:
+ ldr r0, [r4, #0x8]
+ bl FUN_0200AB18
+ ldr r0, [r4, #0x4]
+ bl FUN_0200A8B8
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_020800E0
+FUN_020800E0: ; 0x020800E0
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ ldr r0, [r5, #0xc]
+ bl FUN_02068854
+ add r4, r0, #0x0
+ cmp r4, #0x18
+ bgt _02080106
+ ldr r1, [r5, #0x0]
+ mov r0, #0x48
+ bl FUN_020219F4
+ str r0, [r5, #0x18]
+ add r4, #0x18
+ ldr r0, [r5, #0x4]
+ ldr r2, [r5, #0x18]
+ add r1, r4, #0x0
+ bl FUN_0200A8E0
+_02080106:
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_02080108
+FUN_02080108: ; 0x02080108
+ push {r4-r6, lr}
+ sub sp, #0x8
+ add r5, r0, #0x0
+ add r6, r1, #0x0
+ mov r0, #0x9
+ ldr r1, [r5, #0x0]
+ lsl r0, r0, #0x6
+ bl FUN_020219F4
+ add r4, r0, #0x0
+ mov r0, #0x9
+ ldr r1, [r5, #0x0]
+ lsl r0, r0, #0x6
+ bl FUN_020219F4
+ str r0, [r5, #0x20]
+ ldr r0, [r5, #0x4]
+ add r1, r6, #0x0
+ add r2, r4, #0x0
+ bl FUN_0200A8E0
+ ldr r0, [r5, #0xc]
+ mov r1, #0x94
+ mov r2, #0x0
+ bl FUN_020671BC
+ mov r3, #0x2
+ add r2, r0, #0x0
+ str r3, [sp, #0x0]
+ mov r0, #0x1
+ str r0, [sp, #0x4]
+ ldr r0, [r5, #0x8]
+ mov r1, #0x0
+ bl FUN_0200AD38
+ ldr r0, [r5, #0xc]
+ mov r1, #0x95
+ mov r2, #0x0
+ bl FUN_020671BC
+ add r2, r0, #0x0
+ ldr r0, [r5, #0x8]
+ mov r1, #0x1
+ bl FUN_0200B764
+ ldr r0, [r5, #0xc]
+ mov r1, #0x96
+ mov r2, #0x0
+ bl FUN_020671BC
+ add r2, r0, #0x0
+ mov r0, #0x0
+ str r0, [sp, #0x0]
+ mov r0, #0x1
+ str r0, [sp, #0x4]
+ mov r1, #0x2
+ ldr r0, [r5, #0x8]
+ add r3, r1, #0x0
+ bl FUN_0200AD38
+ ldr r0, [r5, #0xc]
+ mov r1, #0x9b
+ mov r2, #0x0
+ bl FUN_020671BC
+ add r2, r0, #0x0
+ mov r0, #0x0
+ str r0, [sp, #0x0]
+ mov r0, #0x1
+ str r0, [sp, #0x4]
+ mov r1, #0x3
+ ldr r0, [r5, #0x8]
+ add r3, r1, #0x0
+ bl FUN_0200AD38
+ ldr r0, [r5, #0xc]
+ mov r1, #0x98
+ mov r2, #0x0
+ bl FUN_020671BC
+ add r2, r0, #0x0
+ ldr r0, [r5, #0x8]
+ mov r1, #0x4
+ bl FUN_0200B59C
+ ldr r0, [r5, #0xc]
+ mov r1, #0x91
+ mov r2, #0x0
+ bl FUN_020671BC
+ mov r3, #0x2
+ add r2, r0, #0x0
+ str r3, [sp, #0x0]
+ mov r0, #0x1
+ str r0, [sp, #0x4]
+ ldr r0, [r5, #0x8]
+ mov r1, #0x5
+ bl FUN_0200AD38
+ ldr r0, [r5, #0xc]
+ mov r1, #0x92
+ mov r2, #0x0
+ bl FUN_020671BC
+ add r2, r0, #0x0
+ ldr r0, [r5, #0x8]
+ mov r1, #0x6
+ bl FUN_0200B764
+ ldr r0, [r5, #0xc]
+ mov r1, #0x93
+ mov r2, #0x0
+ bl FUN_020671BC
+ add r2, r0, #0x0
+ mov r0, #0x0
+ str r0, [sp, #0x0]
+ mov r0, #0x1
+ str r0, [sp, #0x4]
+ ldr r0, [r5, #0x8]
+ mov r1, #0x7
+ mov r3, #0x2
+ bl FUN_0200AD38
+ ldr r0, [r5, #0xc]
+ mov r1, #0x97
+ mov r2, #0x0
+ bl FUN_020671BC
+ add r2, r0, #0x0
+ ldr r0, [r5, #0x8]
+ mov r1, #0x8
+ bl FUN_0200B59C
+ ldr r0, [r5, #0x8]
+ ldr r1, [r5, #0x20]
+ add r2, r4, #0x0
+ bl FUN_0200B7B8
+ add r0, r4, #0x0
+ bl FUN_02021A20
+ add sp, #0x8
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_02080228
+FUN_02080228: ; 0x02080228
+ push {r4-r6, lr}
+ sub sp, #0x8
+ add r4, r0, #0x0
+ add r6, r1, #0x0
+ mov r0, #0x12
+ ldr r1, [r4, #0x0]
+ lsl r0, r0, #0x4
+ bl FUN_020219F4
+ add r5, r0, #0x0
+ mov r0, #0x12
+ ldr r1, [r4, #0x0]
+ lsl r0, r0, #0x4
+ bl FUN_020219F4
+ str r0, [r4, #0x20]
+ ldr r0, [r4, #0x4]
+ add r1, r6, #0x0
+ add r2, r5, #0x0
+ bl FUN_0200A8E0
+ ldr r0, [r4, #0xc]
+ mov r1, #0x94
+ mov r2, #0x0
+ bl FUN_020671BC
+ mov r3, #0x2
+ add r2, r0, #0x0
+ str r3, [sp, #0x0]
+ mov r0, #0x1
+ str r0, [sp, #0x4]
+ ldr r0, [r4, #0x8]
+ mov r1, #0x0
+ bl FUN_0200AD38
+ ldr r0, [r4, #0xc]
+ mov r1, #0x95
+ mov r2, #0x0
+ bl FUN_020671BC
+ add r2, r0, #0x0
+ ldr r0, [r4, #0x8]
+ mov r1, #0x1
+ bl FUN_0200B764
+ ldr r0, [r4, #0xc]
+ mov r1, #0x96
+ mov r2, #0x0
+ bl FUN_020671BC
+ add r2, r0, #0x0
+ mov r0, #0x0
+ str r0, [sp, #0x0]
+ mov r0, #0x1
+ str r0, [sp, #0x4]
+ mov r1, #0x2
+ ldr r0, [r4, #0x8]
+ add r3, r1, #0x0
+ bl FUN_0200AD38
+ ldr r0, [r4, #0xc]
+ mov r1, #0x9b
+ mov r2, #0x0
+ bl FUN_020671BC
+ add r2, r0, #0x0
+ mov r0, #0x0
+ str r0, [sp, #0x0]
+ mov r0, #0x1
+ str r0, [sp, #0x4]
+ mov r1, #0x3
+ ldr r0, [r4, #0x8]
+ add r3, r1, #0x0
+ bl FUN_0200AD38
+ ldr r0, [r4, #0xc]
+ mov r1, #0x79
+ mov r2, #0x0
+ bl FUN_020671BC
+ cmp r0, #0xf
+ bhi _020802F8
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_020802D8: ; jump table (using 16-bit offset)
+ .short _020802F8 - _020802D8 - 2; case 0
+ .short _02080334 - _020802D8 - 2; case 1
+ .short _02080334 - _020802D8 - 2; case 2
+ .short _02080334 - _020802D8 - 2; case 3
+ .short _0208030C - _020802D8 - 2; case 4
+ .short _0208030C - _020802D8 - 2; case 5
+ .short _020802F8 - _020802D8 - 2; case 6
+ .short _02080320 - _020802D8 - 2; case 7
+ .short _02080320 - _020802D8 - 2; case 8
+ .short _020802F8 - _020802D8 - 2; case 9
+ .short _0208035C - _020802D8 - 2; case 10
+ .short _0208035C - _020802D8 - 2; case 11
+ .short _020802F8 - _020802D8 - 2; case 12
+ .short _020802F8 - _020802D8 - 2; case 13
+ .short _020802F8 - _020802D8 - 2; case 14
+ .short _02080348 - _020802D8 - 2; case 15
+_020802F8:
+ mov r0, #0x1
+ mov r1, #0x7
+ bl FUN_02015CF8
+ add r2, r0, #0x0
+ ldr r0, [r4, #0x8]
+ mov r1, #0x4
+ bl FUN_0200B59C
+ b _0208036E
+_0208030C:
+ mov r0, #0x1
+ mov r1, #0x3
+ bl FUN_02015CF8
+ add r2, r0, #0x0
+ ldr r0, [r4, #0x8]
+ mov r1, #0x4
+ bl FUN_0200B59C
+ b _0208036E
+_02080320:
+ mov r0, #0x1
+ mov r1, #0x4
+ bl FUN_02015CF8
+ add r2, r0, #0x0
+ ldr r0, [r4, #0x8]
+ mov r1, #0x4
+ bl FUN_0200B59C
+ b _0208036E
+_02080334:
+ mov r0, #0x1
+ mov r1, #0x5
+ bl FUN_02015CF8
+ add r2, r0, #0x0
+ ldr r0, [r4, #0x8]
+ mov r1, #0x4
+ bl FUN_0200B59C
+ b _0208036E
+_02080348:
+ mov r0, #0x1
+ mov r1, #0x8
+ bl FUN_02015CF8
+ add r2, r0, #0x0
+ ldr r0, [r4, #0x8]
+ mov r1, #0x4
+ bl FUN_0200B59C
+ b _0208036E
+_0208035C:
+ mov r0, #0x1
+ mov r1, #0x7
+ bl FUN_02015CF8
+ add r2, r0, #0x0
+ ldr r0, [r4, #0x8]
+ mov r1, #0x4
+ bl FUN_0200B59C
+_0208036E:
+ ldr r0, [r4, #0x8]
+ ldr r1, [r4, #0x20]
+ add r2, r5, #0x0
+ bl FUN_0200B7B8
+ add r0, r5, #0x0
+ bl FUN_02021A20
+ add sp, #0x8
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_02080384
+FUN_02080384: ; 0x02080384
+ push {r3-r7, lr}
+ sub sp, #0x8
+ add r5, r0, #0x0
+ add r7, r1, #0x0
+ mov r0, #0x5a
+ ldr r1, [r5, #0x0]
+ lsl r0, r0, #0x2
+ add r6, r2, #0x0
+ bl FUN_020219F4
+ add r4, r0, #0x0
+ mov r0, #0x5a
+ ldr r1, [r5, #0x0]
+ lsl r0, r0, #0x2
+ bl FUN_020219F4
+ str r0, [r5, #0x20]
+ ldr r0, [r5, #0x4]
+ add r1, r7, #0x0
+ add r2, r4, #0x0
+ bl FUN_0200A8E0
+ cmp r6, #0x0
+ ldr r0, [r5, #0xc]
+ bne _02080418
+ mov r1, #0x91
+ mov r2, #0x0
+ bl FUN_020671BC
+ mov r3, #0x2
+ add r2, r0, #0x0
+ str r3, [sp, #0x0]
+ mov r0, #0x1
+ str r0, [sp, #0x4]
+ ldr r0, [r5, #0x8]
+ mov r1, #0x5
+ bl FUN_0200AD38
+ ldr r0, [r5, #0xc]
+ mov r1, #0x92
+ mov r2, #0x0
+ bl FUN_020671BC
+ add r2, r0, #0x0
+ ldr r0, [r5, #0x8]
+ mov r1, #0x6
+ bl FUN_0200B764
+ ldr r0, [r5, #0xc]
+ mov r1, #0x93
+ mov r2, #0x0
+ bl FUN_020671BC
+ add r2, r0, #0x0
+ mov r0, #0x0
+ str r0, [sp, #0x0]
+ mov r0, #0x1
+ str r0, [sp, #0x4]
+ ldr r0, [r5, #0x8]
+ mov r1, #0x7
+ mov r3, #0x2
+ bl FUN_0200AD38
+ ldr r0, [r5, #0xc]
+ mov r1, #0x97
+ mov r2, #0x0
+ bl FUN_020671BC
+ add r2, r0, #0x0
+ ldr r0, [r5, #0x8]
+ mov r1, #0x8
+ bl FUN_0200B59C
+ b _02080478
+_02080418:
+ mov r1, #0x94
+ mov r2, #0x0
+ bl FUN_020671BC
+ mov r3, #0x2
+ add r2, r0, #0x0
+ str r3, [sp, #0x0]
+ mov r0, #0x1
+ str r0, [sp, #0x4]
+ ldr r0, [r5, #0x8]
+ mov r1, #0x5
+ bl FUN_0200AD38
+ ldr r0, [r5, #0xc]
+ mov r1, #0x95
+ mov r2, #0x0
+ bl FUN_020671BC
+ add r2, r0, #0x0
+ ldr r0, [r5, #0x8]
+ mov r1, #0x6
+ bl FUN_0200B764
+ ldr r0, [r5, #0xc]
+ mov r1, #0x96
+ mov r2, #0x0
+ bl FUN_020671BC
+ add r2, r0, #0x0
+ mov r0, #0x0
+ str r0, [sp, #0x0]
+ mov r0, #0x1
+ str r0, [sp, #0x4]
+ ldr r0, [r5, #0x8]
+ mov r1, #0x7
+ mov r3, #0x2
+ bl FUN_0200AD38
+ ldr r0, [r5, #0xc]
+ mov r1, #0x98
+ mov r2, #0x0
+ bl FUN_020671BC
+ add r2, r0, #0x0
+ ldr r0, [r5, #0x8]
+ mov r1, #0x8
+ bl FUN_0200B59C
+_02080478:
+ ldr r0, [r5, #0x8]
+ ldr r1, [r5, #0x20]
+ add r2, r4, #0x0
+ bl FUN_0200B7B8
+ add r0, r4, #0x0
+ bl FUN_02021A20
+ add sp, #0x8
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_0208048C
+FUN_0208048C: ; 0x0208048C
+ push {r3-r7, lr}
+ sub sp, #0x10
+ add r4, r0, #0x0
+ ldr r1, [r4, #0x0]
+ mov r0, #0x48
+ bl FUN_020219F4
+ str r0, [r4, #0x28]
+ ldr r0, [r4, #0xc]
+ mov r1, #0x46
+ mov r2, #0x0
+ bl FUN_020671BC
+ str r0, [sp, #0xc]
+ ldr r0, [r4, #0xc]
+ mov r1, #0x47
+ mov r2, #0x0
+ bl FUN_020671BC
+ str r0, [sp, #0x8]
+ ldr r0, [r4, #0xc]
+ mov r1, #0x48
+ mov r2, #0x0
+ bl FUN_020671BC
+ str r0, [sp, #0x4]
+ ldr r0, [r4, #0xc]
+ mov r1, #0x49
+ mov r2, #0x0
+ bl FUN_020671BC
+ str r0, [sp, #0x0]
+ ldr r0, [r4, #0xc]
+ mov r1, #0x4a
+ mov r2, #0x0
+ bl FUN_020671BC
+ add r7, r0, #0x0
+ ldr r0, [r4, #0xc]
+ mov r1, #0x4b
+ mov r2, #0x0
+ bl FUN_020671BC
+ add r6, r0, #0x0
+ mov r1, #0x0
+ ldr r0, [r4, #0xc]
+ add r2, r1, #0x0
+ bl FUN_020671BC
+ mov r1, #0x6
+ blx _u32_div_f
+ cmp r1, #0x5
+ bhi _02080510
+ add r0, r1, r1
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02080504: ; jump table (using 16-bit offset)
+ .short _02080510 - _02080504 - 2; case 0
+ .short _02080548 - _02080504 - 2; case 1
+ .short _0208057E - _02080504 - 2; case 2
+ .short _020805B4 - _02080504 - 2; case 3
+ .short _020805EA - _02080504 - 2; case 4
+ .short _02080620 - _02080504 - 2; case 5
+_02080510:
+ ldr r0, [sp, #0xc]
+ ldr r1, [sp, #0x8]
+ add r2, r0, #0x0
+ mov r5, #0x0
+ cmp r2, r1
+ bge _02080520
+ mov r5, #0x1
+ add r0, r1, #0x0
+_02080520:
+ ldr r1, [sp, #0x4]
+ cmp r0, r1
+ bge _0208052A
+ mov r5, #0x2
+ add r0, r1, #0x0
+_0208052A:
+ ldr r1, [sp, #0x0]
+ cmp r0, r1
+ bge _02080534
+ mov r5, #0x3
+ add r0, r1, #0x0
+_02080534:
+ cmp r0, r7
+ bge _0208053C
+ mov r5, #0x4
+ add r0, r7, #0x0
+_0208053C:
+ cmp r0, r6
+ blt _02080542
+ b _02080654
+_02080542:
+ mov r5, #0x5
+ add r0, r6, #0x0
+ b _02080654
+_02080548:
+ ldr r0, [sp, #0x8]
+ ldr r1, [sp, #0x4]
+ add r2, r0, #0x0
+ mov r5, #0x1
+ cmp r2, r1
+ bge _02080558
+ mov r5, #0x2
+ add r0, r1, #0x0
+_02080558:
+ ldr r1, [sp, #0x0]
+ cmp r0, r1
+ bge _02080562
+ mov r5, #0x3
+ add r0, r1, #0x0
+_02080562:
+ cmp r0, r7
+ bge _0208056A
+ mov r5, #0x4
+ add r0, r7, #0x0
+_0208056A:
+ cmp r0, r6
+ bge _02080572
+ mov r5, #0x5
+ add r0, r6, #0x0
+_02080572:
+ ldr r1, [sp, #0xc]
+ cmp r0, r1
+ bge _02080654
+ mov r5, #0x0
+ add r0, r1, #0x0
+ b _02080654
+_0208057E:
+ ldr r0, [sp, #0x4]
+ ldr r1, [sp, #0x0]
+ add r2, r0, #0x0
+ mov r5, #0x2
+ cmp r2, r1
+ bge _0208058E
+ mov r5, #0x3
+ add r0, r1, #0x0
+_0208058E:
+ cmp r0, r7
+ bge _02080596
+ mov r5, #0x4
+ add r0, r7, #0x0
+_02080596:
+ cmp r0, r6
+ bge _0208059E
+ mov r5, #0x5
+ add r0, r6, #0x0
+_0208059E:
+ ldr r1, [sp, #0xc]
+ cmp r0, r1
+ bge _020805A8
+ mov r5, #0x0
+ add r0, r1, #0x0
+_020805A8:
+ ldr r1, [sp, #0x8]
+ cmp r0, r1
+ bge _02080654
+ mov r5, #0x1
+ add r0, r1, #0x0
+ b _02080654
+_020805B4:
+ ldr r0, [sp, #0x0]
+ mov r5, #0x3
+ add r1, r0, #0x0
+ cmp r1, r7
+ bge _020805C2
+ mov r5, #0x4
+ add r0, r7, #0x0
+_020805C2:
+ cmp r0, r6
+ bge _020805CA
+ mov r5, #0x5
+ add r0, r6, #0x0
+_020805CA:
+ ldr r1, [sp, #0xc]
+ cmp r0, r1
+ bge _020805D4
+ mov r5, #0x0
+ add r0, r1, #0x0
+_020805D4:
+ ldr r1, [sp, #0x8]
+ cmp r0, r1
+ bge _020805DE
+ mov r5, #0x1
+ add r0, r1, #0x0
+_020805DE:
+ ldr r1, [sp, #0x4]
+ cmp r0, r1
+ bge _02080654
+ mov r5, #0x2
+ add r0, r1, #0x0
+ b _02080654
+_020805EA:
+ mov r5, #0x4
+ add r0, r7, #0x0
+ cmp r7, r6
+ bge _020805F6
+ mov r5, #0x5
+ add r0, r6, #0x0
+_020805F6:
+ ldr r1, [sp, #0xc]
+ cmp r0, r1
+ bge _02080600
+ mov r5, #0x0
+ add r0, r1, #0x0
+_02080600:
+ ldr r1, [sp, #0x8]
+ cmp r0, r1
+ bge _0208060A
+ mov r5, #0x1
+ add r0, r1, #0x0
+_0208060A:
+ ldr r1, [sp, #0x4]
+ cmp r0, r1
+ bge _02080614
+ mov r5, #0x2
+ add r0, r1, #0x0
+_02080614:
+ ldr r1, [sp, #0x0]
+ cmp r0, r1
+ bge _02080654
+ mov r5, #0x3
+ add r0, r1, #0x0
+ b _02080654
+_02080620:
+ ldr r1, [sp, #0xc]
+ mov r5, #0x5
+ add r0, r6, #0x0
+ cmp r6, r1
+ bge _0208062E
+ mov r5, #0x0
+ add r0, r1, #0x0
+_0208062E:
+ ldr r1, [sp, #0x8]
+ cmp r0, r1
+ bge _02080638
+ mov r5, #0x1
+ add r0, r1, #0x0
+_02080638:
+ ldr r1, [sp, #0x4]
+ cmp r0, r1
+ bge _02080642
+ mov r5, #0x2
+ add r0, r1, #0x0
+_02080642:
+ ldr r1, [sp, #0x0]
+ cmp r0, r1
+ bge _0208064C
+ mov r5, #0x3
+ add r0, r1, #0x0
+_0208064C:
+ cmp r0, r7
+ bge _02080654
+ mov r5, #0x4
+ add r0, r7, #0x0
+_02080654:
+ mov r1, #0x5
+ blx _s32_div_f
+ mov r2, #0xa
+ add r6, r5, #0x0
+ mul r6, r2
+ ldr r3, _02080674 ; =0x020FBB54
+ lsl r2, r1, #0x1
+ add r1, r3, r6
+ ldrh r1, [r2, r1]
+ ldr r0, [r4, #0x4]
+ ldr r2, [r4, #0x28]
+ bl FUN_0200A8E0
+ add sp, #0x10
+ pop {r3-r7, pc}
+ .balign 4
+_02080674: .word 0x020FBB54
+
+ thumb_func_start FUN_02080678
+FUN_02080678: ; 0x02080678
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ ldr r1, [r5, #0x0]
+ mov r0, #0x48
+ bl FUN_020219F4
+ mov r6, #0x0
+ str r0, [r5, #0x30]
+ add r4, r6, #0x0
+_0208068A:
+ ldr r0, [r5, #0xc]
+ add r1, r4, #0x0
+ bl FUN_02069BC8
+ cmp r0, #0x1
+ bne _02080698
+ add r6, r4, #0x1
+_02080698:
+ add r4, r4, #0x1
+ cmp r4, #0x5
+ blt _0208068A
+ ldr r1, _020806B0 ; =0x020FBB48
+ lsl r2, r6, #0x1
+ ldrh r1, [r1, r2]
+ ldr r0, [r5, #0x4]
+ ldr r2, [r5, #0x30]
+ bl FUN_0200A8E0
+ pop {r4-r6, pc}
+ nop
+_020806B0: .word 0x020FBB48
+
+ thumb_func_start FUN_020806B4
+FUN_020806B4: ; 0x020806B4
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ ldr r0, [r5, #0xc]
+ mov r1, #0x9
+ mov r2, #0x0
+ bl FUN_020671BC
+ add r4, r0, #0x0
+ mov r0, #0x12
+ ldr r1, [r5, #0x0]
+ lsl r0, r0, #0x4
+ bl FUN_020219F4
+ str r0, [r5, #0x38]
+ cmp r4, #0x5
+ bgt _020806D8
+ mov r1, #0x69
+ b _020806EA
+_020806D8:
+ cmp r4, #0xa
+ bgt _020806E0
+ mov r1, #0x6a
+ b _020806EA
+_020806E0:
+ cmp r4, #0x28
+ bgt _020806E8
+ mov r1, #0x6b
+ b _020806EA
+_020806E8:
+ mov r1, #0x6c
+_020806EA:
+ ldr r0, [r5, #0x4]
+ ldr r2, [r5, #0x38]
+ bl FUN_0200A8E0
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_020806F4
+FUN_020806F4: ; 0x020806F4
+ push {r4-r6, lr}
+ add r4, r1, #0x0
+ mov r1, #0x4c
+ mov r2, #0x0
+ add r5, r0, #0x0
+ bl FUN_020671BC
+ cmp r0, #0x0
+ beq _02080708
+ b _0208084E
+_02080708:
+ add r0, r5, #0x0
+ mov r1, #0x97
+ mov r2, #0x0
+ bl FUN_020671BC
+ cmp r0, #0x0
+ bne _02080774
+ add r0, r5, #0x0
+ mov r1, #0x98
+ mov r2, #0x0
+ bl FUN_020671BC
+ add r6, r0, #0x0
+ mov r0, #0x0
+ mov r1, #0x37
+ bl FUN_02015CF8
+ cmp r6, r0
+ bne _02080732
+ mov r0, #0xf
+ pop {r4-r6, pc}
+_02080732:
+ add r0, r5, #0x0
+ mov r1, #0x6e
+ mov r2, #0x0
+ bl FUN_020671BC
+ cmp r0, #0x1
+ bne _0208074C
+ cmp r4, #0x1
+ bne _02080748
+ mov r0, #0x7
+ pop {r4-r6, pc}
+_02080748:
+ mov r0, #0x8
+ pop {r4-r6, pc}
+_0208074C:
+ add r0, r5, #0x0
+ mov r1, #0x98
+ mov r2, #0x0
+ bl FUN_020671BC
+ add r5, r0, #0x0
+ mov r0, #0x1
+ add r1, r0, #0x0
+ bl FUN_02015CF8
+ cmp r5, r0
+ bne _02080768
+ mov r0, #0x2
+ pop {r4-r6, pc}
+_02080768:
+ cmp r4, #0x1
+ bne _02080770
+ mov r0, #0x0
+ pop {r4-r6, pc}
+_02080770:
+ mov r0, #0x1
+ pop {r4-r6, pc}
+_02080774:
+ add r0, r5, #0x0
+ mov r1, #0x6e
+ mov r2, #0x0
+ bl FUN_020671BC
+ cmp r0, #0x1
+ bne _020807D6
+ add r0, r5, #0x0
+ mov r1, #0x97
+ mov r2, #0x0
+ bl FUN_020671BC
+ add r6, r0, #0x0
+ mov r0, #0x1
+ mov r1, #0x2
+ bl FUN_02015CF8
+ cmp r6, r0
+ bne _020807A6
+ cmp r4, #0x1
+ bne _020807A2
+ mov r0, #0xd
+ pop {r4-r6, pc}
+_020807A2:
+ mov r0, #0xe
+ pop {r4-r6, pc}
+_020807A6:
+ add r0, r5, #0x0
+ mov r1, #0x97
+ mov r2, #0x0
+ bl FUN_020671BC
+ add r5, r0, #0x0
+ mov r0, #0x2
+ mov r1, #0x1
+ bl FUN_02015CF8
+ cmp r5, r0
+ bne _020807CA
+ cmp r4, #0x1
+ bne _020807C6
+ mov r0, #0xb
+ pop {r4-r6, pc}
+_020807C6:
+ mov r0, #0xc
+ pop {r4-r6, pc}
+_020807CA:
+ cmp r4, #0x1
+ bne _020807D2
+ mov r0, #0x9
+ pop {r4-r6, pc}
+_020807D2:
+ mov r0, #0xa
+ pop {r4-r6, pc}
+_020807D6:
+ add r0, r5, #0x0
+ mov r1, #0x97
+ mov r2, #0x0
+ bl FUN_020671BC
+ add r6, r0, #0x0
+ mov r0, #0x1
+ add r1, r0, #0x0
+ bl FUN_02015CF8
+ cmp r6, r0
+ beq _02080836
+ add r0, r5, #0x0
+ mov r1, #0x97
+ mov r2, #0x0
+ bl FUN_020671BC
+ add r6, r0, #0x0
+ mov r0, #0x1
+ mov r1, #0x0
+ bl FUN_02015CF8
+ cmp r6, r0
+ beq _02080836
+ add r0, r5, #0x0
+ mov r1, #0x97
+ mov r2, #0x0
+ bl FUN_020671BC
+ add r6, r0, #0x0
+ mov r0, #0x1
+ mov r1, #0x9
+ bl FUN_02015CF8
+ cmp r6, r0
+ beq _02080836
+ add r0, r5, #0x0
+ mov r1, #0x97
+ mov r2, #0x0
+ bl FUN_020671BC
+ add r5, r0, #0x0
+ mov r0, #0x1
+ mov r1, #0xa
+ bl FUN_02015CF8
+ cmp r5, r0
+ bne _02080842
+_02080836:
+ cmp r4, #0x1
+ bne _0208083E
+ mov r0, #0x5
+ pop {r4-r6, pc}
+_0208083E:
+ mov r0, #0x6
+ pop {r4-r6, pc}
+_02080842:
+ cmp r4, #0x1
+ bne _0208084A
+ mov r0, #0x3
+ pop {r4-r6, pc}
+_0208084A:
+ mov r0, #0x4
+ pop {r4-r6, pc}
+_0208084E:
+ cmp r4, #0x1
+ bne _02080884
+ add r0, r5, #0x0
+ mov r1, #0x6e
+ mov r2, #0x0
+ bl FUN_020671BC
+ cmp r0, #0x1
+ bne _02080880
+ add r0, r5, #0x0
+ mov r1, #0x97
+ mov r2, #0x0
+ bl FUN_020671BC
+ add r4, r0, #0x0
+ mov r0, #0x2
+ mov r1, #0x1
+ bl FUN_02015CF8
+ cmp r4, r0
+ bne _0208087C
+ mov r0, #0x14
+ pop {r4-r6, pc}
+_0208087C:
+ mov r0, #0x12
+ pop {r4-r6, pc}
+_02080880:
+ mov r0, #0x10
+ pop {r4-r6, pc}
+_02080884:
+ add r0, r5, #0x0
+ mov r1, #0x6e
+ mov r2, #0x0
+ bl FUN_020671BC
+ cmp r0, #0x1
+ bne _02080896
+ mov r0, #0x13
+ pop {r4-r6, pc}
+_02080896:
+ mov r0, #0x11
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_0208089C
+FUN_0208089C: ; 0x0208089C
+ push {r3-r4, lr}
+ sub sp, #0x4
+ ldr r4, [sp, #0x10]
+ str r4, [sp, #0x0]
+ bl FUN_020808AC
+ add sp, #0x4
+ pop {r3-r4, pc}
+
+ thumb_func_start FUN_020808AC
+FUN_020808AC: ; 0x020808AC
+ push {r3-r7, lr}
+ add r4, r0, #0x0
+ add r7, r1, #0x0
+ add r5, r3, #0x0
+ ldr r6, [sp, #0x18]
+ cmp r2, #0x6
+ bls _020808BC
+ b _02080AE0
+_020808BC:
+ add r2, r2, r2
+ add r2, pc
+ ldrh r2, [r2, #0x6]
+ lsl r2, r2, #0x10
+ asr r2, r2, #0x10
+ add pc, r2
+_020808C8: ; jump table (using 16-bit offset)
+ .short _020808D6 - _020808C8 - 2; case 0
+ .short _0208092A - _020808C8 - 2; case 1
+ .short _02080974 - _020808C8 - 2; case 2
+ .short _02080994 - _020808C8 - 2; case 3
+ .short _020809B0 - _020808C8 - 2; case 4
+ .short _02080A38 - _020808C8 - 2; case 5
+ .short _02080A58 - _020808C8 - 2; case 6
+_020808D6:
+ mov r0, #0x1
+ mov r1, #0x0
+ bl FUN_02015CF8
+ cmp r5, r0
+ ble _020808E4
+ mov r5, #0x0
+_020808E4:
+ add r0, r4, #0x0
+ mov r1, #0x4c
+ mov r2, #0x0
+ bl FUN_020672BC
+ cmp r0, #0x0
+ bne _0208090C
+ add r0, r4, #0x0
+ mov r1, #0x0
+ bl FUN_02080BA8
+ add r0, r4, #0x0
+ add r1, r5, #0x0
+ mov r2, #0x1
+ bl FUN_02080B30
+ add r0, r4, #0x0
+ bl FUN_02080C08
+ b _0208091E
+_0208090C:
+ add r0, r4, #0x0
+ add r1, r5, #0x0
+ mov r2, #0x0
+ bl FUN_02080B30
+ add r0, r4, #0x0
+ mov r1, #0x1
+ bl FUN_02080BA8
+_0208091E:
+ add r0, r4, #0x0
+ add r1, r7, #0x0
+ add r2, r6, #0x0
+ bl FUN_02080AE4
+ pop {r3-r7, pc}
+_0208092A:
+ mov r1, #0x4c
+ mov r2, #0x0
+ bl FUN_020672BC
+ cmp r0, #0x0
+ bne _02080958
+ add r0, r4, #0x0
+ mov r1, #0x0
+ bl FUN_02080BA8
+ mov r0, #0x1
+ add r1, r0, #0x0
+ bl FUN_02015CF8
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ mov r2, #0x1
+ bl FUN_02080B30
+ add r0, r4, #0x0
+ bl FUN_02080C08
+ pop {r3-r7, pc}
+_02080958:
+ add r0, r4, #0x0
+ mov r1, #0x0
+ bl FUN_02080BA8
+ mov r0, #0x1
+ add r1, r0, #0x0
+ bl FUN_02015CF8
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ mov r2, #0x1
+ bl FUN_02080B30
+ pop {r3-r7, pc}
+_02080974:
+ mov r1, #0x0
+ bl FUN_02080BA8
+ mov r0, #0x0
+ mov r1, #0x37
+ bl FUN_02015CF8
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ mov r2, #0x1
+ bl FUN_02080B30
+ add r0, r4, #0x0
+ bl FUN_02080C08
+ pop {r3-r7, pc}
+_02080994:
+ add r1, r5, #0x0
+ mov r2, #0x0
+ bl FUN_02080B30
+ add r0, r4, #0x0
+ mov r1, #0x1
+ bl FUN_02080BA8
+ add r0, r4, #0x0
+ add r1, r7, #0x0
+ add r2, r6, #0x0
+ bl FUN_02080AE4
+ pop {r3-r7, pc}
+_020809B0:
+ add r2, r6, #0x0
+ bl FUN_0206A9AC
+ cmp r0, #0x1
+ bne _020809F6
+ add r0, r4, #0x0
+ mov r1, #0x4c
+ mov r2, #0x0
+ bl FUN_020672BC
+ cmp r0, #0x0
+ bne _020809E2
+ add r0, r4, #0x0
+ mov r1, #0x0
+ bl FUN_02080BA8
+ add r0, r4, #0x0
+ add r1, r5, #0x0
+ mov r2, #0x1
+ bl FUN_02080B30
+ add r0, r4, #0x0
+ bl FUN_02080C08
+ b _02080A30
+_020809E2:
+ add r0, r4, #0x0
+ add r1, r5, #0x0
+ mov r2, #0x0
+ bl FUN_02080B30
+ add r0, r4, #0x0
+ mov r1, #0x1
+ bl FUN_02080BA8
+ b _02080A30
+_020809F6:
+ add r0, r4, #0x0
+ mov r1, #0x4c
+ mov r2, #0x0
+ bl FUN_020672BC
+ cmp r0, #0x0
+ bne _02080A1E
+ add r0, r4, #0x0
+ mov r1, #0x0
+ bl FUN_02080BA8
+ add r0, r4, #0x0
+ add r1, r5, #0x0
+ mov r2, #0x1
+ bl FUN_02080B30
+ add r0, r4, #0x0
+ bl FUN_02080C08
+ b _02080A30
+_02080A1E:
+ add r0, r4, #0x0
+ mov r1, #0x0
+ bl FUN_02080BA8
+ add r0, r4, #0x0
+ add r1, r5, #0x0
+ mov r2, #0x1
+ bl FUN_02080B30
+_02080A30:
+ add r0, r4, #0x0
+ bl FUN_02080C28
+ pop {r3-r7, pc}
+_02080A38:
+ mov r1, #0x4c
+ mov r2, #0x0
+ bl FUN_020672BC
+ cmp r0, #0x0
+ beq _02080AE0
+ mov r0, #0x1
+ mov r1, #0x2
+ bl FUN_02015CF8
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ mov r2, #0x1
+ bl FUN_02080B30
+ pop {r3-r7, pc}
+_02080A58:
+ mov r0, #0x1
+ mov r1, #0x0
+ bl FUN_02015CF8
+ cmp r5, r0
+ ble _02080A66
+ mov r5, #0x0
+_02080A66:
+ add r0, r4, #0x0
+ add r1, r7, #0x0
+ add r2, r6, #0x0
+ bl FUN_0206A9AC
+ cmp r0, #0x0
+ bne _02080ACC
+ add r0, r4, #0x0
+ mov r1, #0x98
+ mov r2, #0x0
+ bl FUN_020672BC
+ str r0, [sp, #0x0]
+ add r0, r4, #0x0
+ mov r1, #0x97
+ add r2, sp, #0x0
+ bl FUN_02067960
+ add r0, r4, #0x0
+ mov r1, #0x94
+ mov r2, #0x0
+ bl FUN_020672BC
+ str r0, [sp, #0x0]
+ add r0, r4, #0x0
+ mov r1, #0x91
+ add r2, sp, #0x0
+ bl FUN_02067960
+ add r0, r4, #0x0
+ mov r1, #0x95
+ mov r2, #0x0
+ bl FUN_020672BC
+ str r0, [sp, #0x0]
+ add r0, r4, #0x0
+ mov r1, #0x92
+ add r2, sp, #0x0
+ bl FUN_02067960
+ add r0, r4, #0x0
+ mov r1, #0x96
+ mov r2, #0x0
+ bl FUN_020672BC
+ str r0, [sp, #0x0]
+ add r0, r4, #0x0
+ mov r1, #0x93
+ add r2, sp, #0x0
+ bl FUN_02067960
+_02080ACC:
+ add r0, r4, #0x0
+ add r1, r5, #0x0
+ mov r2, #0x1
+ bl FUN_02080B30
+ add r0, r4, #0x0
+ add r1, r7, #0x0
+ add r2, r6, #0x0
+ bl FUN_02080AE4
+_02080AE0:
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_02080AE4
+FUN_02080AE4: ; 0x02080AE4
+ push {r4-r6, lr}
+ sub sp, #0x8
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ add r0, r4, #0x0
+ add r6, r2, #0x0
+ bl FUN_020239BC
+ str r0, [sp, #0x4]
+ add r0, r4, #0x0
+ bl FUN_020239CC
+ str r0, [sp, #0x0]
+ add r0, r4, #0x0
+ add r1, r6, #0x0
+ bl FUN_020239A0
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ mov r1, #0x7
+ add r2, sp, #0x4
+ bl FUN_02067960
+ add r0, r5, #0x0
+ mov r1, #0x9c
+ add r2, sp, #0x0
+ bl FUN_02067960
+ add r0, r5, #0x0
+ mov r1, #0x90
+ add r2, r4, #0x0
+ bl FUN_02067960
+ add r0, r4, #0x0
+ bl FUN_02021A20
+ add sp, #0x8
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_02080B30
+FUN_02080B30: ; 0x02080B30
+ push {r0-r3}
+ push {r3-r5, lr}
+ sub sp, #0x10
+ add r5, r0, #0x0
+ add r0, sp, #0x0
+ add r4, r2, #0x0
+ bl FUN_020126B4
+ cmp r4, #0x0
+ add r2, sp, #0x24
+ bne _02080B76
+ add r0, r5, #0x0
+ mov r1, #0x97
+ bl FUN_02067960
+ add r0, r5, #0x0
+ mov r1, #0x91
+ add r2, sp, #0x0
+ bl FUN_02067960
+ add r0, r5, #0x0
+ mov r1, #0x92
+ add r2, sp, #0x4
+ bl FUN_02067960
+ add r0, r5, #0x0
+ mov r1, #0x93
+ add r2, sp, #0x8
+ bl FUN_02067960
+ add sp, #0x10
+ pop {r3-r5}
+ pop {r3}
+ add sp, #0x10
+ bx r3
+_02080B76:
+ add r0, r5, #0x0
+ mov r1, #0x98
+ bl FUN_02067960
+ add r0, r5, #0x0
+ mov r1, #0x94
+ add r2, sp, #0x0
+ bl FUN_02067960
+ add r0, r5, #0x0
+ mov r1, #0x95
+ add r2, sp, #0x4
+ bl FUN_02067960
+ add r0, r5, #0x0
+ mov r1, #0x96
+ add r2, sp, #0x8
+ bl FUN_02067960
+ add sp, #0x10
+ pop {r3-r5}
+ pop {r3}
+ add sp, #0x10
+ bx r3
+ .balign 4
+
+ thumb_func_start FUN_02080BA8
+FUN_02080BA8: ; 0x02080BA8
+ push {r3-r4, lr}
+ sub sp, #0x4
+ mov r2, #0x0
+ add r4, r0, #0x0
+ str r2, [sp, #0x0]
+ cmp r1, #0x0
+ add r2, sp, #0x0
+ bne _02080BE0
+ mov r1, #0x97
+ bl FUN_02067960
+ add r0, r4, #0x0
+ mov r1, #0x91
+ add r2, sp, #0x0
+ bl FUN_02067960
+ add r0, r4, #0x0
+ mov r1, #0x92
+ add r2, sp, #0x0
+ bl FUN_02067960
+ add r0, r4, #0x0
+ mov r1, #0x93
+ add r2, sp, #0x0
+ bl FUN_02067960
+ add sp, #0x4
+ pop {r3-r4, pc}
+_02080BE0:
+ mov r1, #0x98
+ bl FUN_02067960
+ add r0, r4, #0x0
+ mov r1, #0x94
+ add r2, sp, #0x0
+ bl FUN_02067960
+ add r0, r4, #0x0
+ mov r1, #0x95
+ add r2, sp, #0x0
+ bl FUN_02067960
+ add r0, r4, #0x0
+ mov r1, #0x96
+ add r2, sp, #0x0
+ bl FUN_02067960
+ add sp, #0x4
+ pop {r3-r4, pc}
+
+ thumb_func_start FUN_02080C08
+FUN_02080C08: ; 0x02080C08
+ push {r3-r4, lr}
+ sub sp, #0x4
+ add r4, r0, #0x0
+ mov r1, #0xa0
+ mov r2, #0x0
+ bl FUN_020672BC
+ str r0, [sp, #0x0]
+ add r0, r4, #0x0
+ mov r1, #0x9b
+ add r2, sp, #0x0
+ bl FUN_02067960
+ add sp, #0x4
+ pop {r3-r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02080C28
+FUN_02080C28: ; 0x02080C28
+ push {r3, lr}
+ mov r1, #0x1
+ str r1, [sp, #0x0]
+ mov r1, #0x6e
+ add r2, sp, #0x0
+ bl FUN_02067960
+ pop {r3, pc}
+
+ thumb_func_start FUN_02080C38
+FUN_02080C38: ; 0x02080C38
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ mov r0, #0xb
+ mov r1, #0x8
+ bl FUN_020169D8
+ mov r1, #0x0
+ mov r2, #0x8
+ add r4, r0, #0x0
+ blx MI_CpuFill8
+ ldr r1, _02080C5C ; =FUN_02080C60
+ add r0, r5, #0x0
+ add r2, r4, #0x0
+ bl FUN_0204640C
+ pop {r3-r5, pc}
+ nop
+_02080C5C: .word FUN_02080C60
+
+ thumb_func_start FUN_02080C60
+FUN_02080C60: ; 0x02080C60
+ push {r3-r7, lr}
+ sub sp, #0x28
+ add r5, r0, #0x0
+ bl FUN_02046528
+ add r6, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_0204652C
+ add r4, r0, #0x0
+ ldr r0, [r4, #0x4]
+ cmp r0, #0xe
+ bls _02080C7C
+ b _02080DE2
+_02080C7C:
+ add r1, r0, r0
+ add r1, pc
+ ldrh r1, [r1, #0x6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_02080C88: ; jump table (using 16-bit offset)
+ .short _02080CA6 - _02080C88 - 2; case 0
+ .short _02080CB4 - _02080C88 - 2; case 1
+ .short _02080D16 - _02080C88 - 2; case 2
+ .short _02080D28 - _02080C88 - 2; case 3
+ .short _02080D36 - _02080C88 - 2; case 4
+ .short _02080D48 - _02080C88 - 2; case 5
+ .short _02080D64 - _02080C88 - 2; case 6
+ .short _02080D78 - _02080C88 - 2; case 7
+ .short _02080D8A - _02080C88 - 2; case 8
+ .short _02080D9C - _02080C88 - 2; case 9
+ .short _02080DAE - _02080C88 - 2; case 10
+ .short _02080DC0 - _02080C88 - 2; case 11
+ .short _02080DCE - _02080C88 - 2; case 12
+ .short _02080DD4 - _02080C88 - 2; case 13
+ .short _02080DE6 - _02080C88 - 2; case 14
+_02080CA6:
+ add r0, r5, #0x0
+ bl FUN_0204AF3C
+ ldr r0, [r4, #0x4]
+ add r0, r0, #0x1
+ str r0, [r4, #0x4]
+ b _02080DF2
+_02080CB4:
+ ldr r0, [r6, #0xc]
+ bl FUN_0206BB1C
+ mov r1, #0x0
+ bl FUN_0206B9B0
+ add r7, r0, #0x0
+ add r0, r6, #0x0
+ bl FUN_020377AC
+ bl FUN_020238F4
+ mov r1, #0xb
+ str r0, [sp, #0x0]
+ bl FUN_020239A0
+ add r5, r0, #0x0
+ mov r1, #0x0
+ add r0, sp, #0x4
+ strb r1, [r0, #0x0]
+ strb r1, [r0, #0x1]
+ mov r1, #0x2
+ strb r1, [r0, #0x2]
+ ldr r0, [sp, #0x0]
+ str r7, [sp, #0xc]
+ str r5, [sp, #0x10]
+ str r0, [sp, #0x14]
+ ldr r0, [r6, #0xc]
+ bl FUN_02027E24
+ str r0, [sp, #0x18]
+ ldr r0, [r6, #0xc]
+ bl LoadPlayerDataAddress
+ str r0, [sp, #0x1c]
+ add r0, sp, #0x4
+ bl FUN_02081214
+ str r0, [r4, #0x0]
+ add r0, r5, #0x0
+ bl FUN_02021A20
+ ldr r0, [r4, #0x0]
+ bl FUN_02081DC4
+ ldr r0, [r4, #0x4]
+ add r0, r0, #0x1
+ str r0, [r4, #0x4]
+ b _02080DF2
+_02080D16:
+ ldr r0, [r4, #0x0]
+ bl FUN_02081EB8
+ cmp r0, #0x1
+ bne _02080DF2
+ ldr r0, [r4, #0x4]
+ add r0, r0, #0x1
+ str r0, [r4, #0x4]
+ b _02080DF2
+_02080D28:
+ mov r0, #0x1
+ bl FUN_02031588
+ ldr r0, [r4, #0x4]
+ add r0, r0, #0x1
+ str r0, [r4, #0x4]
+ b _02080DF2
+_02080D36:
+ mov r0, #0x1
+ bl FUN_020315D8
+ cmp r0, #0x1
+ bne _02080DF2
+ ldr r0, [r4, #0x4]
+ add r0, r0, #0x1
+ str r0, [r4, #0x4]
+ b _02080DF2
+_02080D48:
+ ldr r0, [r4, #0x0]
+ bl FUN_020815D0
+ ldr r3, [r4, #0x0]
+ ldr r2, _02080DF8 ; =0x000019B8
+ ldr r1, _02080DFC ; =0x020FBBD8
+ ldr r2, [r3, r2]
+ add r0, r5, #0x0
+ bl FUN_02046500
+ ldr r0, [r4, #0x4]
+ add r0, r0, #0x1
+ str r0, [r4, #0x4]
+ b _02080DF2
+_02080D64:
+ ldr r0, [r4, #0x0]
+ bl FUN_02081668
+ ldr r0, [r4, #0x0]
+ bl FUN_02081ED4
+ ldr r0, [r4, #0x4]
+ add r0, r0, #0x1
+ str r0, [r4, #0x4]
+ b _02080DF2
+_02080D78:
+ ldr r0, [r4, #0x0]
+ bl FUN_02081EC0
+ cmp r0, #0x1
+ bne _02080DF2
+ ldr r0, [r4, #0x4]
+ add r0, r0, #0x1
+ str r0, [r4, #0x4]
+ b _02080DF2
+_02080D8A:
+ ldr r1, _02080E00 ; =0x020FBBC8
+ ldr r2, [r4, #0x0]
+ add r0, r5, #0x0
+ bl FUN_02046500
+ ldr r0, [r4, #0x4]
+ add r0, r0, #0x1
+ str r0, [r4, #0x4]
+ b _02080DF2
+_02080D9C:
+ ldr r1, _02080E04 ; =0x020FBBF8
+ ldr r2, [r4, #0x0]
+ add r0, r5, #0x0
+ bl FUN_02046500
+ ldr r0, [r4, #0x4]
+ add r0, r0, #0x1
+ str r0, [r4, #0x4]
+ b _02080DF2
+_02080DAE:
+ ldr r1, _02080E08 ; =0x020FBBE8
+ ldr r2, [r4, #0x0]
+ add r0, r5, #0x0
+ bl FUN_02046500
+ ldr r0, [r4, #0x4]
+ add r0, r0, #0x1
+ str r0, [r4, #0x4]
+ b _02080DF2
+_02080DC0:
+ ldr r0, [r4, #0x0]
+ bl FUN_020814E8
+ ldr r0, [r4, #0x4]
+ add r0, r0, #0x1
+ str r0, [r4, #0x4]
+ b _02080DF2
+_02080DCE:
+ add r0, r0, #0x1
+ str r0, [r4, #0x4]
+ b _02080DF2
+_02080DD4:
+ add r0, r5, #0x0
+ bl FUN_0204AF84
+ ldr r0, [r4, #0x4]
+ add r0, r0, #0x1
+ str r0, [r4, #0x4]
+ b _02080DF2
+_02080DE2:
+ bl ErrorHandling
+_02080DE6:
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ add sp, #0x28
+ mov r0, #0x1
+ pop {r3-r7, pc}
+_02080DF2:
+ mov r0, #0x0
+ add sp, #0x28
+ pop {r3-r7, pc}
+ .balign 4
+_02080DF8: .word 0x000019B8
+_02080DFC: .word 0x020FBBD8
+_02080E00: .word 0x020FBBC8
+_02080E04: .word 0x020FBBF8
+_02080E08: .word 0x020FBBE8
+
+ thumb_func_start FUN_02080E0C
+FUN_02080E0C: ; 0x02080E0C
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ add r6, r1, #0x0
+ mov r0, #0xb
+ mov r1, #0x8
+ bl FUN_020169D8
+ mov r1, #0x0
+ mov r2, #0x8
+ add r4, r0, #0x0
+ blx MI_CpuFill8
+ ldr r0, _02080E50 ; =0x00000121
+ str r6, [r4, #0x0]
+ ldrb r0, [r6, r0]
+ cmp r0, #0x0
+ beq _02080E36
+ cmp r0, #0x1
+ beq _02080E36
+ cmp r0, #0x2
+ bne _02080E42
+_02080E36:
+ ldr r1, _02080E54 ; =FUN_02080E5C
+ add r0, r5, #0x0
+ add r2, r4, #0x0
+ bl FUN_0204640C
+ pop {r4-r6, pc}
+_02080E42:
+ ldr r1, _02080E58 ; =FUN_02081000
+ add r0, r5, #0x0
+ add r2, r4, #0x0
+ bl FUN_0204640C
+ pop {r4-r6, pc}
+ nop
+_02080E50: .word 0x00000121
+_02080E54: .word FUN_02080E5C
+_02080E58: .word FUN_02081000
+
+ thumb_func_start FUN_02080E5C
+FUN_02080E5C: ; 0x02080E5C
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ bl FUN_02046528
+ add r0, r5, #0x0
+ bl FUN_0204652C
+ add r4, r0, #0x0
+ ldr r0, [r4, #0x4]
+ cmp r0, #0xd
+ bls _02080E74
+ b _02080FCE
+_02080E74:
+ add r1, r0, r0
+ add r1, pc
+ ldrh r1, [r1, #0x6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_02080E80: ; jump table (using 16-bit offset)
+ .short _02080E9C - _02080E80 - 2; case 0
+ .short _02080EAA - _02080E80 - 2; case 1
+ .short _02080EC6 - _02080E80 - 2; case 2
+ .short _02080EDE - _02080E80 - 2; case 3
+ .short _02080F00 - _02080E80 - 2; case 4
+ .short _02080F1C - _02080E80 - 2; case 5
+ .short _02080F3E - _02080E80 - 2; case 6
+ .short _02080F58 - _02080E80 - 2; case 7
+ .short _02080F6A - _02080E80 - 2; case 8
+ .short _02080F8A - _02080E80 - 2; case 9
+ .short _02080FA8 - _02080E80 - 2; case 10
+ .short _02080FBA - _02080E80 - 2; case 11
+ .short _02080FC0 - _02080E80 - 2; case 12
+ .short _02080FD2 - _02080E80 - 2; case 13
+_02080E9C:
+ add r0, r5, #0x0
+ bl FUN_0204AF3C
+ ldr r0, [r4, #0x4]
+ add r0, r0, #0x1
+ str r0, [r4, #0x4]
+ b _02080FDC
+_02080EAA:
+ ldr r0, [r4, #0x0]
+ ldr r1, _02080FE0 ; =0x00000171
+ ldrb r1, [r0, r1]
+ cmp r1, #0x0
+ beq _02080EBE
+ bl FUN_02081EC0
+ cmp r0, #0x1
+ beq _02080EBE
+ b _02080FDC
+_02080EBE:
+ ldr r0, [r4, #0x4]
+ add r0, r0, #0x1
+ str r0, [r4, #0x4]
+ b _02080FDC
+_02080EC6:
+ ldr r1, [r4, #0x0]
+ ldr r0, _02080FE0 ; =0x00000171
+ ldrb r0, [r1, r0]
+ cmp r0, #0x1
+ bne _02080ED6
+ mov r0, #0x0
+ bl FUN_02031588
+_02080ED6:
+ ldr r0, [r4, #0x4]
+ add r0, r0, #0x1
+ str r0, [r4, #0x4]
+ b _02080FDC
+_02080EDE:
+ ldr r2, [r4, #0x0]
+ ldr r1, _02080FE0 ; =0x00000171
+ ldrb r1, [r2, r1]
+ cmp r1, #0x1
+ bne _02080EFA
+ mov r0, #0x0
+ bl FUN_020315D8
+ cmp r0, #0x1
+ bne _02080FDC
+ ldr r0, [r4, #0x4]
+ add r0, r0, #0x1
+ str r0, [r4, #0x4]
+ b _02080FDC
+_02080EFA:
+ add r0, r0, #0x1
+ str r0, [r4, #0x4]
+ b _02080FDC
+_02080F00:
+ ldr r0, [r4, #0x0]
+ bl FUN_020815D0
+ ldr r3, [r4, #0x0]
+ ldr r2, _02080FE4 ; =0x000019B8
+ ldr r1, _02080FE8 ; =0x020FBBD8
+ ldr r2, [r3, r2]
+ add r0, r5, #0x0
+ bl FUN_02046500
+ ldr r0, [r4, #0x4]
+ add r0, r0, #0x1
+ str r0, [r4, #0x4]
+ b _02080FDC
+_02080F1C:
+ ldr r0, [r4, #0x0]
+ bl FUN_02081668
+ ldr r0, [r4, #0x0]
+ ldr r1, _02080FE0 ; =0x00000171
+ ldrb r1, [r0, r1]
+ cmp r1, #0x1
+ bne _02080F38
+ bl FUN_02081ED4
+ ldr r0, [r4, #0x4]
+ add r0, r0, #0x1
+ str r0, [r4, #0x4]
+ b _02080FDC
+_02080F38:
+ mov r0, #0x6
+ str r0, [r4, #0x4]
+ b _02080FDC
+_02080F3E:
+ ldr r0, [r4, #0x0]
+ ldr r1, _02080FE0 ; =0x00000171
+ ldrb r1, [r0, r1]
+ cmp r1, #0x0
+ beq _02080F50
+ bl FUN_02081EC0
+ cmp r0, #0x1
+ bne _02080FDC
+_02080F50:
+ ldr r0, [r4, #0x4]
+ add r0, r0, #0x1
+ str r0, [r4, #0x4]
+ b _02080FDC
+_02080F58:
+ ldr r1, _02080FEC ; =0x020FBBC8
+ ldr r2, [r4, #0x0]
+ add r0, r5, #0x0
+ bl FUN_02046500
+ ldr r0, [r4, #0x4]
+ add r0, r0, #0x1
+ str r0, [r4, #0x4]
+ b _02080FDC
+_02080F6A:
+ ldr r2, [r4, #0x0]
+ ldr r0, _02080FF0 ; =0x00000121
+ ldrb r0, [r2, r0]
+ add r0, #0xff
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ cmp r0, #0x1
+ bhi _02080F82
+ ldr r1, _02080FF4 ; =0x020FBBF8
+ add r0, r5, #0x0
+ bl FUN_02046500
+_02080F82:
+ ldr r0, [r4, #0x4]
+ add r0, r0, #0x1
+ str r0, [r4, #0x4]
+ b _02080FDC
+_02080F8A:
+ ldr r2, [r4, #0x0]
+ ldr r0, _02080FF0 ; =0x00000121
+ ldrb r0, [r2, r0]
+ cmp r0, #0x0
+ beq _02080F98
+ cmp r0, #0x2
+ bne _02080FA0
+_02080F98:
+ ldr r1, _02080FF8 ; =0x020FBBE8
+ add r0, r5, #0x0
+ bl FUN_02046500
+_02080FA0:
+ ldr r0, [r4, #0x4]
+ add r0, r0, #0x1
+ str r0, [r4, #0x4]
+ b _02080FDC
+_02080FA8:
+ ldr r1, _02080FFC ; =0x020FBBB8
+ ldr r2, [r4, #0x0]
+ add r0, r5, #0x0
+ bl FUN_02046500
+ ldr r0, [r4, #0x4]
+ add r0, r0, #0x1
+ str r0, [r4, #0x4]
+ b _02080FDC
+_02080FBA:
+ add r0, r0, #0x1
+ str r0, [r4, #0x4]
+ b _02080FDC
+_02080FC0:
+ add r0, r5, #0x0
+ bl FUN_0204AF84
+ ldr r0, [r4, #0x4]
+ add r0, r0, #0x1
+ str r0, [r4, #0x4]
+ b _02080FDC
+_02080FCE:
+ bl ErrorHandling
+_02080FD2:
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ mov r0, #0x1
+ pop {r3-r5, pc}
+_02080FDC:
+ mov r0, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+_02080FE0: .word 0x00000171
+_02080FE4: .word 0x000019B8
+_02080FE8: .word 0x020FBBD8
+_02080FEC: .word 0x020FBBC8
+_02080FF0: .word 0x00000121
+_02080FF4: .word 0x020FBBF8
+_02080FF8: .word 0x020FBBE8
+_02080FFC: .word 0x020FBBB8
+
+ thumb_func_start FUN_02081000
+FUN_02081000: ; 0x02081000
+ push {r3-r7, lr}
+ sub sp, #0x10
+ add r5, r0, #0x0
+ bl FUN_02046528
+ add r0, r5, #0x0
+ bl FUN_0204652C
+ add r4, r0, #0x0
+ ldr r0, [r4, #0x4]
+ cmp r0, #0x9
+ bls _0208101A
+ b _020811A4
+_0208101A:
+ add r1, r0, r0
+ add r1, pc
+ ldrh r1, [r1, #0x6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_02081026: ; jump table (using 16-bit offset)
+ .short _0208103A - _02081026 - 2; case 0
+ .short _02081048 - _02081026 - 2; case 1
+ .short _02081070 - _02081026 - 2; case 2
+ .short _0208108A - _02081026 - 2; case 3
+ .short _02081090 - _02081026 - 2; case 4
+ .short _020810AE - _02081026 - 2; case 5
+ .short _020810D2 - _02081026 - 2; case 6
+ .short _020810F0 - _02081026 - 2; case 7
+ .short _02081196 - _02081026 - 2; case 8
+ .short _020811A8 - _02081026 - 2; case 9
+_0208103A:
+ add r0, r5, #0x0
+ bl FUN_0204AF3C
+ ldr r0, [r4, #0x4]
+ add r0, r0, #0x1
+ str r0, [r4, #0x4]
+ b _020811B4
+_02081048:
+ ldr r0, [r4, #0x0]
+ ldr r1, _020811BC ; =0x00000121
+ ldrb r1, [r0, r1]
+ cmp r1, #0x3
+ beq _02081056
+ cmp r1, #0x4
+ bne _02081068
+_02081056:
+ bl FUN_020815D0
+ ldr r3, [r4, #0x0]
+ ldr r2, _020811C0 ; =0x000019B8
+ ldr r1, _020811C4 ; =0x020FBBD8
+ ldr r2, [r3, r2]
+ add r0, r5, #0x0
+ bl FUN_02046500
+_02081068:
+ ldr r0, [r4, #0x4]
+ add r0, r0, #0x1
+ str r0, [r4, #0x4]
+ b _020811B4
+_02081070:
+ ldr r0, [r4, #0x0]
+ ldr r1, _020811BC ; =0x00000121
+ ldrb r1, [r0, r1]
+ cmp r1, #0x3
+ beq _0208107E
+ cmp r1, #0x4
+ bne _02081082
+_0208107E:
+ bl FUN_02081668
+_02081082:
+ ldr r0, [r4, #0x4]
+ add r0, r0, #0x1
+ str r0, [r4, #0x4]
+ b _020811B4
+_0208108A:
+ add r0, r0, #0x1
+ str r0, [r4, #0x4]
+ b _020811B4
+_02081090:
+ ldr r2, [r4, #0x0]
+ ldr r0, _020811BC ; =0x00000121
+ ldrb r0, [r2, r0]
+ cmp r0, #0x3
+ beq _0208109E
+ cmp r0, #0x4
+ bne _020810A6
+_0208109E:
+ ldr r1, _020811C8 ; =0x020FBBC8
+ add r0, r5, #0x0
+ bl FUN_02046500
+_020810A6:
+ ldr r0, [r4, #0x4]
+ add r0, r0, #0x1
+ str r0, [r4, #0x4]
+ b _020811B4
+_020810AE:
+ ldr r0, [r4, #0x0]
+ ldr r1, _020811BC ; =0x00000121
+ ldrb r1, [r0, r1]
+ cmp r1, #0x5
+ beq _020810BC
+ cmp r1, #0x6
+ bne _020810CA
+_020810BC:
+ bl FUN_02082D18
+ ldr r1, _020811CC ; =0x020FBBF8
+ ldr r2, [r4, #0x0]
+ add r0, r5, #0x0
+ bl FUN_02046500
+_020810CA:
+ ldr r0, [r4, #0x4]
+ add r0, r0, #0x1
+ str r0, [r4, #0x4]
+ b _020811B4
+_020810D2:
+ ldr r2, [r4, #0x0]
+ ldr r0, _020811BC ; =0x00000121
+ ldrb r0, [r2, r0]
+ cmp r0, #0x7
+ beq _020810E0
+ cmp r0, #0x8
+ bne _020810E8
+_020810E0:
+ ldr r1, _020811D0 ; =0x020FBBE8
+ add r0, r5, #0x0
+ bl FUN_02046500
+_020810E8:
+ ldr r0, [r4, #0x4]
+ add r0, r0, #0x1
+ str r0, [r4, #0x4]
+ b _020811B4
+_020810F0:
+ ldr r1, [r4, #0x0]
+ ldr r0, _020811BC ; =0x00000121
+ ldrb r0, [r1, r0]
+ cmp r0, #0x8
+ bhi _0208116E
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02081106: ; jump table (using 16-bit offset)
+ .short _0208116E - _02081106 - 2; case 0
+ .short _0208116E - _02081106 - 2; case 1
+ .short _0208116E - _02081106 - 2; case 2
+ .short _02081118 - _02081106 - 2; case 3
+ .short _02081118 - _02081106 - 2; case 4
+ .short _0208113A - _02081106 - 2; case 5
+ .short _0208113A - _02081106 - 2; case 6
+ .short _02081156 - _02081106 - 2; case 7
+ .short _02081156 - _02081106 - 2; case 8
+_02081118:
+ mov r5, #0x0
+ add r6, sp, #0x0
+_0208111C:
+ ldr r0, [r4, #0x0]
+ add r1, r5, #0x0
+ bl FUN_02083308
+ add r7, r0, #0x0
+ ldr r0, [r4, #0x0]
+ add r1, r5, #0x0
+ bl FUN_0208336C
+ add r0, r7, r0
+ add r5, r5, #0x1
+ stmia r6!, {r0}
+ cmp r5, #0x4
+ blt _0208111C
+ b _0208116E
+_0208113A:
+ mov r2, #0x0
+ mov r3, #0x4b
+ add r0, r2, #0x0
+ add r1, sp, #0x0
+ lsl r3, r3, #0x2
+_02081144:
+ ldr r5, [r4, #0x0]
+ add r2, r2, #0x1
+ add r5, r5, r0
+ ldrsh r5, [r5, r3]
+ add r0, #0xc
+ cmp r2, #0x4
+ stmia r1!, {r5}
+ blt _02081144
+ b _0208116E
+_02081156:
+ mov r2, #0x0
+ ldr r3, _020811D4 ; =0x0000012E
+ add r0, r2, #0x0
+ add r1, sp, #0x0
+_0208115E:
+ ldr r5, [r4, #0x0]
+ add r2, r2, #0x1
+ add r5, r5, r0
+ ldrsh r5, [r5, r3]
+ add r0, #0xc
+ cmp r2, #0x4
+ stmia r1!, {r5}
+ blt _0208115E
+_0208116E:
+ ldr r1, [sp, #0x0]
+ mov r2, #0x0
+ mov r5, #0x1
+ add r3, sp, #0x4
+_02081176:
+ ldr r0, [r3, #0x0]
+ cmp r1, r0
+ bge _0208117E
+ add r2, r2, #0x1
+_0208117E:
+ add r5, r5, #0x1
+ add r3, r3, #0x4
+ cmp r5, #0x4
+ blt _02081176
+ mov r0, #0x13
+ ldr r1, [r4, #0x0]
+ lsl r0, r0, #0x4
+ strb r2, [r1, r0]
+ ldr r0, [r4, #0x4]
+ add r0, r0, #0x1
+ str r0, [r4, #0x4]
+ b _020811B4
+_02081196:
+ add r0, r5, #0x0
+ bl FUN_0204AF84
+ ldr r0, [r4, #0x4]
+ add r0, r0, #0x1
+ str r0, [r4, #0x4]
+ b _020811B4
+_020811A4:
+ bl ErrorHandling
+_020811A8:
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ add sp, #0x10
+ mov r0, #0x1
+ pop {r3-r7, pc}
+_020811B4:
+ mov r0, #0x0
+ add sp, #0x10
+ pop {r3-r7, pc}
+ nop
+_020811BC: .word 0x00000121
+_020811C0: .word 0x000019B8
+_020811C4: .word 0x020FBBD8
+_020811C8: .word 0x020FBBC8
+_020811CC: .word 0x020FBBF8
+_020811D0: .word 0x020FBBE8
+_020811D4: .word 0x0000012E
+
+ thumb_func_start FUN_020811D8
+FUN_020811D8: ; 0x020811D8
+ push {r4, lr}
+ ldr r1, _02081204 ; =0x000019C4
+ mov r0, #0x14
+ bl FUN_02016998
+ ldr r2, _02081204 ; =0x000019C4
+ mov r1, #0x0
+ add r4, r0, #0x0
+ blx MI_CpuFill8
+ ldr r0, _02081208 ; =0x00000123
+ mov r1, #0x0
+ strb r1, [r4, r0]
+ add r1, r0, #0x4
+ mov r2, #0x1
+ strb r2, [r4, r1]
+ mov r1, #0x3
+ add r0, r0, #0x3
+ strb r1, [r4, r0]
+ add r0, r4, #0x0
+ pop {r4, pc}
+ nop
+_02081204: .word 0x000019C4
+_02081208: .word 0x00000123
+
+ thumb_func_start FUN_0208120C
+FUN_0208120C: ; 0x0208120C
+ ldr r3, _02081210 ; =FUN_02016A18
+ bx r3
+ .balign 4
+_02081210: .word FUN_02016A18
+
+ thumb_func_start FUN_02081214
+FUN_02081214: ; 0x02081214
+ push {r3-r7, lr}
+ mov r2, #0x1
+ add r6, r0, #0x0
+ mov r0, #0xb
+ mov r1, #0x14
+ lsl r2, r2, #0xe
+ bl FUN_0201681C
+ bl FUN_020811D8
+ add r4, r0, #0x0
+ bl FUN_0201B9D4
+ mov r1, #0x67
+ lsl r1, r1, #0x6
+ str r0, [r4, r1]
+ add r0, r4, #0x0
+ bl FUN_0208285C
+ ldrb r1, [r6, #0x0]
+ ldr r0, _020813E4 ; =0x0000011F
+ strb r1, [r4, r0]
+ add r1, r0, #0x1
+ ldrb r2, [r6, #0x1]
+ add r0, r0, #0x2
+ strb r2, [r4, r1]
+ ldrb r1, [r6, #0x2]
+ strb r1, [r4, r0]
+ ldrb r0, [r6, #0x1]
+ mov r1, #0x0
+ bl FUN_02083454
+ ldr r1, _020813E8 ; =0x00000122
+ mov r7, #0x0
+ strb r0, [r4, r1]
+ add r0, r1, #0x1
+ ldrb r2, [r4, r0]
+ sub r0, r1, #0x6
+ add r5, r4, #0x0
+ strb r2, [r4, r0]
+ mov r0, #0x64
+ add r1, r0, #0x0
+ add r1, #0xc1
+ strb r0, [r4, r1]
+ add r1, r0, #0x0
+ add r1, #0xc1
+ ldrb r2, [r4, r1]
+ add r1, r0, #0x0
+ add r1, #0xb9
+ strb r2, [r4, r1]
+ mov r1, #0x1
+ add r0, #0xba
+ strb r1, [r4, r0]
+ ldr r1, [r6, #0x14]
+ ldr r0, _020813EC ; =0x0000199C
+ str r1, [r4, r0]
+ add r1, r0, #0x0
+ ldr r2, [r6, #0x18]
+ sub r1, #0x14
+ str r2, [r4, r1]
+ add r1, r0, #0x0
+ ldr r2, [r6, #0x1c]
+ sub r1, #0x10
+ str r2, [r4, r1]
+ add r1, r0, #0x0
+ ldr r2, [r6, #0x8]
+ sub r1, #0xc
+ str r2, [r4, r1]
+ ldrb r2, [r6, #0x5]
+ sub r1, r0, #0x4
+ strb r2, [r4, r1]
+ add r1, r0, #0x0
+ ldr r2, [r6, #0x10]
+ sub r1, #0x8
+ str r2, [r4, r1]
+ sub r1, r0, #0x3
+ ldrb r2, [r6, #0x3]
+ sub r0, r0, #0x2
+ strb r2, [r4, r1]
+ ldrb r1, [r6, #0x4]
+ strb r1, [r4, r0]
+_020812B6:
+ mov r0, #0x14
+ bl FUN_02026FE8
+ add r1, r5, #0x0
+ add r1, #0xf8
+ add r7, r7, #0x1
+ add r5, r5, #0x4
+ str r0, [r1, #0x0]
+ cmp r7, #0x4
+ blt _020812B6
+ mov r3, #0x12
+ lsl r3, r3, #0x4
+ ldrb r0, [r4, r3]
+ sub r2, r3, #0x2
+ sub r3, r3, #0x1
+ str r0, [sp, #0x0]
+ ldrb r2, [r4, r2]
+ ldrb r3, [r4, r3]
+ add r0, r4, #0x0
+ mov r1, #0xb
+ bl FUN_02082ED0
+ mov r0, #0x14
+ bl FUN_0206B8AC
+ mov r1, #0x56
+ lsl r1, r1, #0x2
+ str r0, [r4, r1]
+ mov r7, #0x0
+ add r5, r4, #0x0
+_020812F2:
+ mov r0, #0x14
+ bl FUN_020669C0
+ add r7, r7, #0x1
+ stmia r5!, {r0}
+ cmp r7, #0x4
+ blt _020812F2
+ mov r7, #0x0
+ add r5, r4, #0x0
+_02081304:
+ mov r0, #0x14
+ bl FUN_02029EE4
+ mov r1, #0x57
+ lsl r1, r1, #0x2
+ str r0, [r5, r1]
+ add r7, r7, #0x1
+ add r5, r5, #0x4
+ cmp r7, #0x4
+ blt _02081304
+ add r0, r1, #0x0
+ ldr r0, [r4, r0]
+ ldr r1, [r6, #0x20]
+ bl FUN_02029F9C
+ ldr r0, [r6, #0x8]
+ ldr r1, [r4, #0x0]
+ bl FUN_02069B88
+ mov r0, #0x8
+ mov r1, #0x14
+ bl FUN_020219F4
+ add r1, r4, #0x0
+ add r1, #0xe8
+ str r0, [r1, #0x0]
+ add r0, r4, #0x0
+ add r0, #0xe8
+ ldr r0, [r0, #0x0]
+ ldr r1, [r6, #0xc]
+ bl FUN_02021A74
+ ldr r0, [r6, #0x10]
+ bl FUN_020239CC
+ mov r1, #0x42
+ lsl r1, r1, #0x2
+ strb r0, [r4, r1]
+ add r0, r1, #0x4
+ mov r2, #0x0
+ strb r2, [r4, r0]
+ add r1, #0x17
+ ldrb r1, [r4, r1]
+ ldr r0, [r4, #0x0]
+ bl FUN_02081540
+ mov r1, #0x11
+ lsl r1, r1, #0x4
+ strb r0, [r4, r1]
+ add r0, r4, #0x0
+ bl FUN_020832EC
+ cmp r0, #0x0
+ ldr r0, [r6, #0x10]
+ bne _0208138E
+ bl FUN_020239CC
+ cmp r0, #0x0
+ bne _02081384
+ mov r1, #0xba
+ add r0, r1, #0x0
+ add r0, #0x5a
+ strh r1, [r4, r0]
+ b _020813A8
+_02081384:
+ mov r1, #0xbb
+ add r0, r1, #0x0
+ add r0, #0x59
+ strh r1, [r4, r0]
+ b _020813A8
+_0208138E:
+ bl FUN_020239CC
+ cmp r0, #0x0
+ bne _020813A0
+ mov r0, #0x45
+ mov r1, #0x0
+ lsl r0, r0, #0x2
+ strh r1, [r4, r0]
+ b _020813A8
+_020813A0:
+ mov r1, #0x61
+ add r0, r1, #0x0
+ add r0, #0xb3
+ strh r1, [r4, r0]
+_020813A8:
+ ldrb r1, [r6, #0x3]
+ ldrb r2, [r6, #0x4]
+ add r0, r4, #0x0
+ bl FUN_020813F4
+ add r0, r4, #0x0
+ bl FUN_020832EC
+ cmp r0, #0x1
+ bne _020813D0
+ ldr r1, _020813F0 ; =0x00000172
+ mov r5, #0x0
+ mov r0, #0x3
+_020813C2:
+ sub r3, r0, r5
+ add r2, r4, r5
+ add r5, r5, #0x1
+ strb r3, [r2, r1]
+ cmp r5, #0x4
+ blt _020813C2
+ b _020813DE
+_020813D0:
+ ldr r0, _020813F0 ; =0x00000172
+ mov r2, #0x0
+_020813D4:
+ add r1, r4, r2
+ strb r2, [r1, r0]
+ add r2, r2, #0x1
+ cmp r2, #0x4
+ blt _020813D4
+_020813DE:
+ add r0, r4, #0x0
+ pop {r3-r7, pc}
+ nop
+_020813E4: .word 0x0000011F
+_020813E8: .word 0x00000122
+_020813EC: .word 0x0000199C
+_020813F0: .word 0x00000172
+
+ thumb_func_start FUN_020813F4
+FUN_020813F4: ; 0x020813F4
+ push {r3-r7, lr}
+ sub sp, #0x10
+ mov r3, #0x12
+ add r5, r0, #0x0
+ lsl r3, r3, #0x4
+ ldrb r4, [r5, r3]
+ str r4, [sp, #0x0]
+ add r4, r3, #0x1
+ ldrb r4, [r5, r4]
+ sub r3, r3, #0x1
+ str r4, [sp, #0x4]
+ str r1, [sp, #0x8]
+ str r2, [sp, #0xc]
+ ldrb r3, [r5, r3]
+ mov r1, #0xb
+ mov r2, #0x3
+ bl FUN_020828E4
+ add r4, r5, #0x0
+ add r4, #0x10
+ mov r7, #0x1
+ add r6, r5, #0x4
+ add r4, #0x30
+_02081422:
+ ldr r1, [r6, #0x0]
+ add r0, r4, #0x0
+ mov r2, #0x14
+ bl FUN_02082D60
+ add r7, r7, #0x1
+ add r6, r6, #0x4
+ add r4, #0x30
+ cmp r7, #0x4
+ blt _02081422
+ mov r6, #0x1
+ add r4, r5, #0x4
+ mov r7, #0x8
+_0208143C:
+ add r0, r4, #0x0
+ add r0, #0xe8
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ bne _02081454
+ add r0, r7, #0x0
+ mov r1, #0x14
+ bl FUN_020219F4
+ add r1, r4, #0x0
+ add r1, #0xe8
+ str r0, [r1, #0x0]
+_02081454:
+ add r2, r4, #0x0
+ add r2, #0xe8
+ ldr r0, [r4, #0x0]
+ ldr r2, [r2, #0x0]
+ mov r1, #0x90
+ bl FUN_020671BC
+ add r6, r6, #0x1
+ add r4, r4, #0x4
+ cmp r6, #0x4
+ blt _0208143C
+ add r0, r5, #0x0
+ add r0, #0x30
+ mov r2, #0x42
+ mov r1, #0x1
+ add r0, #0x30
+ lsl r2, r2, #0x2
+_02081476:
+ ldrh r3, [r0, #0x0]
+ add r0, #0x30
+ lsl r3, r3, #0x12
+ lsr r4, r3, #0x1e
+ add r3, r5, r1
+ add r1, r1, #0x1
+ strb r4, [r3, r2]
+ cmp r1, #0x4
+ blt _02081476
+ add r0, r5, #0x0
+ add r0, #0x30
+ mov r2, #0x43
+ mov r1, #0x1
+ add r0, #0x30
+ lsl r2, r2, #0x2
+_02081494:
+ ldrh r3, [r0, #0x0]
+ add r0, #0x30
+ lsl r3, r3, #0x10
+ lsr r4, r3, #0x1e
+ add r3, r5, r1
+ add r1, r1, #0x1
+ strb r4, [r3, r2]
+ cmp r1, #0x4
+ blt _02081494
+ add r3, r5, #0x0
+ mov r1, #0x11
+ mov r4, #0x1
+ add r3, #0x30
+ lsl r1, r1, #0x4
+_020814B0:
+ add r0, r3, #0x0
+ add r0, #0x3e
+ ldrb r2, [r0, #0x0]
+ add r0, r5, r4
+ add r4, r4, #0x1
+ add r3, #0x30
+ strb r2, [r0, r1]
+ cmp r4, #0x4
+ blt _020814B0
+ add r2, r5, #0x0
+ mov r0, #0x45
+ mov r4, #0x1
+ add r2, #0x30
+ add r3, r5, #0x2
+ lsl r0, r0, #0x2
+_020814CE:
+ ldrh r1, [r2, #0x18]
+ add r4, r4, #0x1
+ add r2, #0x30
+ strh r1, [r3, r0]
+ add r3, r3, #0x2
+ cmp r4, #0x4
+ blt _020814CE
+ add r0, r5, #0x0
+ mov r1, #0xb
+ bl FUN_02082B90
+ add sp, #0x10
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_020814E8
+FUN_020814E8: ; 0x020814E8
+ push {r3-r7, lr}
+ add r7, r0, #0x0
+ mov r0, #0x56
+ lsl r0, r0, #0x2
+ ldr r0, [r7, r0]
+ bl FUN_02016A18
+ mov r6, #0x57
+ mov r4, #0x0
+ add r5, r7, #0x0
+ lsl r6, r6, #0x2
+_020814FE:
+ ldr r0, [r5, #0x0]
+ bl FUN_02016A18
+ add r0, r5, #0x0
+ add r0, #0xe8
+ ldr r0, [r0, #0x0]
+ bl FUN_02021A20
+ add r0, r5, #0x0
+ add r0, #0xf8
+ ldr r0, [r0, #0x0]
+ bl FUN_02016A18
+ ldr r0, [r5, r6]
+ bl FUN_02016A18
+ add r4, r4, #0x1
+ add r5, r5, #0x4
+ cmp r4, #0x4
+ blt _020814FE
+ mov r0, #0x67
+ lsl r0, r0, #0x6
+ ldr r0, [r7, r0]
+ bl FUN_0201B9E0
+ add r0, r7, #0x0
+ bl FUN_0208120C
+ mov r0, #0x14
+ bl FUN_020168D0
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_02081540
+FUN_02081540: ; 0x02081540
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ mov r0, #0x1
+ add r7, r1, #0x0
+ str r0, [sp, #0x0]
+ mov r4, #0x0
+_0208154C:
+ cmp r7, #0x4
+ bhi _020815B6
+ add r0, r7, r7
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0208155C: ; jump table (using 16-bit offset)
+ .short _02081566 - _0208155C - 2; case 0
+ .short _02081576 - _0208155C - 2; case 1
+ .short _02081586 - _0208155C - 2; case 2
+ .short _02081596 - _0208155C - 2; case 3
+ .short _020815A6 - _0208155C - 2; case 4
+_02081566:
+ add r1, r4, #0x0
+ add r0, r5, #0x0
+ add r1, #0x7a
+ mov r2, #0x0
+ bl FUN_020671BC
+ add r6, r0, #0x0
+ b _020815BA
+_02081576:
+ add r1, r4, #0x0
+ add r0, r5, #0x0
+ add r1, #0x7e
+ mov r2, #0x0
+ bl FUN_020671BC
+ add r6, r0, #0x0
+ b _020815BA
+_02081586:
+ add r1, r4, #0x0
+ add r0, r5, #0x0
+ add r1, #0x82
+ mov r2, #0x0
+ bl FUN_020671BC
+ add r6, r0, #0x0
+ b _020815BA
+_02081596:
+ add r1, r4, #0x0
+ add r0, r5, #0x0
+ add r1, #0x86
+ mov r2, #0x0
+ bl FUN_020671BC
+ add r6, r0, #0x0
+ b _020815BA
+_020815A6:
+ add r1, r4, #0x0
+ add r0, r5, #0x0
+ add r1, #0x8a
+ mov r2, #0x0
+ bl FUN_020671BC
+ add r6, r0, #0x0
+ b _020815BA
+_020815B6:
+ bl ErrorHandling
+_020815BA:
+ cmp r6, #0x0
+ beq _020815CA
+ ldr r0, [sp, #0x0]
+ add r4, r4, #0x1
+ add r0, r0, #0x1
+ str r0, [sp, #0x0]
+ cmp r4, #0x3
+ ble _0208154C
+_020815CA:
+ ldr r0, [sp, #0x0]
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_020815D0
+FUN_020815D0: ; 0x020815D0
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ ldr r0, _02081658 ; =0x00000123
+ ldrb r0, [r5, r0]
+ lsl r0, r0, #0x2
+ add r0, r5, r0
+ add r0, #0xf8
+ ldr r0, [r0, #0x0]
+ bl FUN_02027740
+ mov r0, #0x14
+ mov r1, #0x28
+ bl FUN_02016998
+ mov r1, #0x0
+ mov r2, #0x28
+ add r4, r0, #0x0
+ blx MI_CpuFill8
+ ldr r0, _02081658 ; =0x00000123
+ ldrb r1, [r5, r0]
+ lsl r1, r1, #0x2
+ ldr r1, [r5, r1]
+ str r1, [r4, #0x0]
+ ldrb r1, [r5, r0]
+ lsl r1, r1, #0x2
+ add r1, r5, r1
+ add r1, #0xf8
+ ldr r1, [r1, #0x0]
+ str r1, [r4, #0x4]
+ sub r1, r0, #0x1
+ ldrb r1, [r5, r1]
+ str r1, [r4, #0x8]
+ add r1, r0, #0x0
+ add r1, #0x4e
+ ldrb r1, [r5, r1]
+ cmp r1, #0x1
+ bne _02081620
+ mov r0, #0x4
+ b _02081624
+_02081620:
+ sub r0, r0, #0x3
+ ldrb r0, [r5, r0]
+_02081624:
+ str r0, [r4, #0xc]
+ ldr r0, _0208165C ; =0x00000121
+ ldrb r1, [r5, r0]
+ sub r0, r0, #0x2
+ str r1, [r4, #0x10]
+ ldrb r0, [r5, r0]
+ str r0, [r4, #0x14]
+ ldr r0, _02081660 ; =0x0000199C
+ ldr r0, [r5, r0]
+ bl FUN_0202708C
+ ldr r1, _02081664 ; =0x000019A0
+ str r0, [r4, #0x18]
+ add r0, r5, r1
+ str r0, [r4, #0x1c]
+ add r0, r1, #0x0
+ sub r0, #0x18
+ ldr r0, [r5, r0]
+ str r0, [r4, #0x20]
+ add r0, r1, #0x0
+ sub r0, #0xc
+ ldr r0, [r5, r0]
+ add r1, #0x18
+ str r0, [r4, #0x24]
+ str r4, [r5, r1]
+ pop {r3-r5, pc}
+ .balign 4
+_02081658: .word 0x00000123
+_0208165C: .word 0x00000121
+_02081660: .word 0x0000199C
+_02081664: .word 0x000019A0
+
+ thumb_func_start FUN_02081668
+FUN_02081668: ; 0x02081668
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r0, _0208167C ; =0x000019B8
+ ldr r0, [r4, r0]
+ bl FUN_02016A18
+ ldr r0, _0208167C ; =0x000019B8
+ mov r1, #0x0
+ str r1, [r4, r0]
+ pop {r4, pc}
+ .balign 4
+_0208167C: .word 0x000019B8
+
+ thumb_func_start FUN_02081680
+FUN_02081680: ; 0x02081680
+ push {r3-r7, lr}
+ sub sp, #0x10
+ ldr r2, _020819E8 ; =0x00000176
+ add r4, r1, #0x0
+ str r0, [sp, #0x0]
+ ldrb r0, [r4, r2]
+ cmp r0, #0x2f
+ bls _02081692
+ b _02081D24
+_02081692:
+ add r3, r0, r0
+ add r3, pc
+ ldrh r3, [r3, #0x6]
+ lsl r3, r3, #0x10
+ asr r3, r3, #0x10
+ add pc, r3
+_0208169E: ; jump table (using 16-bit offset)
+ .short _020816FE - _0208169E - 2; case 0
+ .short _02081716 - _0208169E - 2; case 1
+ .short _0208172C - _0208169E - 2; case 2
+ .short _02081742 - _0208169E - 2; case 3
+ .short _0208175E - _0208169E - 2; case 4
+ .short _02081776 - _0208169E - 2; case 5
+ .short _0208178C - _0208169E - 2; case 6
+ .short _020817A8 - _0208169E - 2; case 7
+ .short _020817C4 - _0208169E - 2; case 8
+ .short _020817DC - _0208169E - 2; case 9
+ .short _020817F2 - _0208169E - 2; case 10
+ .short _02081822 - _0208169E - 2; case 11
+ .short _02081838 - _0208169E - 2; case 12
+ .short _02081850 - _0208169E - 2; case 13
+ .short _02081866 - _0208169E - 2; case 14
+ .short _02081884 - _0208169E - 2; case 15
+ .short _020818A0 - _0208169E - 2; case 16
+ .short _020818B8 - _0208169E - 2; case 17
+ .short _020818CE - _0208169E - 2; case 18
+ .short _0208190A - _0208169E - 2; case 19
+ .short _02081940 - _0208169E - 2; case 20
+ .short _02081958 - _0208169E - 2; case 21
+ .short _0208196E - _0208169E - 2; case 22
+ .short _0208198E - _0208169E - 2; case 23
+ .short _020819DE - _0208169E - 2; case 24
+ .short _02081A04 - _0208169E - 2; case 25
+ .short _02081A1A - _0208169E - 2; case 26
+ .short _02081A54 - _0208169E - 2; case 27
+ .short _02081A8A - _0208169E - 2; case 28
+ .short _02081AB6 - _0208169E - 2; case 29
+ .short _02081ACC - _0208169E - 2; case 30
+ .short _02081AE8 - _0208169E - 2; case 31
+ .short _02081B04 - _0208169E - 2; case 32
+ .short _02081B1C - _0208169E - 2; case 33
+ .short _02081B32 - _0208169E - 2; case 34
+ .short _02081B6C - _0208169E - 2; case 35
+ .short _02081BA2 - _0208169E - 2; case 36
+ .short _02081BBA - _0208169E - 2; case 37
+ .short _02081BD0 - _0208169E - 2; case 38
+ .short _02081BFA - _0208169E - 2; case 39
+ .short _02081C16 - _0208169E - 2; case 40
+ .short _02081C2E - _0208169E - 2; case 41
+ .short _02081C44 - _0208169E - 2; case 42
+ .short _02081C86 - _0208169E - 2; case 43
+ .short _02081CBC - _0208169E - 2; case 44
+ .short _02081CD4 - _0208169E - 2; case 45
+ .short _02081CEA - _0208169E - 2; case 46
+ .short _02081D08 - _0208169E - 2; case 47
+_020816FE:
+ mov r0, #0x5
+ bl FUN_02031588
+ ldr r0, _020819EC ; =0x00000584
+ mov r1, #0x0
+ strb r1, [r4, r0]
+ ldr r0, _020819E8 ; =0x00000176
+ add sp, #0x10
+ ldrb r1, [r4, r0]
+ add r1, r1, #0x1
+ strb r1, [r4, r0]
+ pop {r3-r7, pc}
+_02081716:
+ mov r0, #0x5
+ bl FUN_020315D8
+ cmp r0, #0x1
+ bne _0208180C
+ ldr r0, _020819E8 ; =0x00000176
+ add sp, #0x10
+ ldrb r1, [r4, r0]
+ add r1, r1, #0x1
+ strb r1, [r4, r0]
+ pop {r3-r7, pc}
+_0208172C:
+ add r0, r4, #0x0
+ bl FUN_02083630
+ cmp r0, #0x1
+ bne _0208180C
+ ldr r0, _020819E8 ; =0x00000176
+ add sp, #0x10
+ ldrb r1, [r4, r0]
+ add r1, r1, #0x1
+ strb r1, [r4, r0]
+ pop {r3-r7, pc}
+_02081742:
+ ldr r0, _020819EC ; =0x00000584
+ add r1, r2, #0x0
+ sub r1, #0x4f
+ ldrb r3, [r4, r0]
+ ldrb r1, [r4, r1]
+ cmp r3, r1
+ blo _0208180C
+ mov r1, #0x0
+ strb r1, [r4, r0]
+ ldrb r0, [r4, r2]
+ add sp, #0x10
+ add r0, r0, #0x1
+ strb r0, [r4, r2]
+ pop {r3-r7, pc}
+_0208175E:
+ mov r0, #0x6
+ bl FUN_02031588
+ ldr r0, _020819EC ; =0x00000584
+ mov r1, #0x0
+ strb r1, [r4, r0]
+ ldr r0, _020819E8 ; =0x00000176
+ add sp, #0x10
+ ldrb r1, [r4, r0]
+ add r1, r1, #0x1
+ strb r1, [r4, r0]
+ pop {r3-r7, pc}
+_02081776:
+ mov r0, #0x6
+ bl FUN_020315D8
+ cmp r0, #0x1
+ bne _0208180C
+ ldr r0, _020819E8 ; =0x00000176
+ add sp, #0x10
+ ldrb r1, [r4, r0]
+ add r1, r1, #0x1
+ strb r1, [r4, r0]
+ pop {r3-r7, pc}
+_0208178C:
+ sub r2, #0x53
+ ldrb r1, [r4, r2]
+ ldr r2, [r4, #0x0]
+ add r0, r4, #0x0
+ bl FUN_020836BC
+ cmp r0, #0x1
+ bne _0208180C
+ ldr r0, _020819E8 ; =0x00000176
+ add sp, #0x10
+ ldrb r1, [r4, r0]
+ add r1, r1, #0x1
+ strb r1, [r4, r0]
+ pop {r3-r7, pc}
+_020817A8:
+ ldr r0, _020819EC ; =0x00000584
+ add r1, r2, #0x0
+ sub r1, #0x4f
+ ldrb r3, [r4, r0]
+ ldrb r1, [r4, r1]
+ cmp r3, r1
+ blo _0208180C
+ mov r1, #0x0
+ strb r1, [r4, r0]
+ ldrb r0, [r4, r2]
+ add sp, #0x10
+ add r0, r0, #0x1
+ strb r0, [r4, r2]
+ pop {r3-r7, pc}
+_020817C4:
+ mov r0, #0x7
+ bl FUN_02031588
+ ldr r0, _020819EC ; =0x00000584
+ mov r1, #0x0
+ strb r1, [r4, r0]
+ ldr r0, _020819E8 ; =0x00000176
+ add sp, #0x10
+ ldrb r1, [r4, r0]
+ add r1, r1, #0x1
+ strb r1, [r4, r0]
+ pop {r3-r7, pc}
+_020817DC:
+ mov r0, #0x7
+ bl FUN_020315D8
+ cmp r0, #0x1
+ bne _0208180C
+ ldr r0, _020819E8 ; =0x00000176
+ add sp, #0x10
+ ldrb r1, [r4, r0]
+ add r1, r1, #0x1
+ strb r1, [r4, r0]
+ pop {r3-r7, pc}
+_020817F2:
+ add r3, r2, #0x0
+ sub r3, #0x53
+ ldrb r5, [r4, r3]
+ add r3, r2, #0x0
+ sub r3, #0x5a
+ ldrb r3, [r4, r3]
+ cmp r5, r3
+ bne _0208181A
+ add r0, r4, #0x0
+ bl FUN_0208373C
+ cmp r0, #0x1
+ beq _0208180E
+_0208180C:
+ b _02081DBC
+_0208180E:
+ ldr r0, _020819E8 ; =0x00000176
+ add sp, #0x10
+ ldrb r1, [r4, r0]
+ add r1, r1, #0x1
+ strb r1, [r4, r0]
+ pop {r3-r7, pc}
+_0208181A:
+ add r0, r0, #0x1
+ add sp, #0x10
+ strb r0, [r4, r2]
+ pop {r3-r7, pc}
+_02081822:
+ ldr r0, _020819EC ; =0x00000584
+ ldrb r1, [r4, r0]
+ cmp r1, #0x0
+ beq _02081912
+ mov r1, #0x0
+ strb r1, [r4, r0]
+ ldrb r0, [r4, r2]
+ add sp, #0x10
+ add r0, r0, #0x1
+ strb r0, [r4, r2]
+ pop {r3-r7, pc}
+_02081838:
+ mov r0, #0x8
+ bl FUN_02031588
+ ldr r0, _020819EC ; =0x00000584
+ mov r1, #0x0
+ strb r1, [r4, r0]
+ ldr r0, _020819E8 ; =0x00000176
+ add sp, #0x10
+ ldrb r1, [r4, r0]
+ add r1, r1, #0x1
+ strb r1, [r4, r0]
+ pop {r3-r7, pc}
+_02081850:
+ mov r0, #0x8
+ bl FUN_020315D8
+ cmp r0, #0x1
+ bne _02081912
+ ldr r0, _020819E8 ; =0x00000176
+ add sp, #0x10
+ ldrb r1, [r4, r0]
+ add r1, r1, #0x1
+ strb r1, [r4, r0]
+ pop {r3-r7, pc}
+_02081866:
+ sub r2, #0x53
+ ldrb r1, [r4, r2]
+ add r2, r4, #0x0
+ add r0, r4, #0x0
+ add r2, #0x10
+ bl FUN_020837B4
+ cmp r0, #0x1
+ bne _02081912
+ ldr r0, _020819E8 ; =0x00000176
+ add sp, #0x10
+ ldrb r1, [r4, r0]
+ add r1, r1, #0x1
+ strb r1, [r4, r0]
+ pop {r3-r7, pc}
+_02081884:
+ ldr r0, _020819EC ; =0x00000584
+ add r1, r2, #0x0
+ sub r1, #0x4f
+ ldrb r3, [r4, r0]
+ ldrb r1, [r4, r1]
+ cmp r3, r1
+ blo _02081912
+ mov r1, #0x0
+ strb r1, [r4, r0]
+ ldrb r0, [r4, r2]
+ add sp, #0x10
+ add r0, r0, #0x1
+ strb r0, [r4, r2]
+ pop {r3-r7, pc}
+_020818A0:
+ mov r0, #0x9
+ bl FUN_02031588
+ ldr r0, _020819EC ; =0x00000584
+ mov r1, #0x0
+ strb r1, [r4, r0]
+ ldr r0, _020819E8 ; =0x00000176
+ add sp, #0x10
+ ldrb r1, [r4, r0]
+ add r1, r1, #0x1
+ strb r1, [r4, r0]
+ pop {r3-r7, pc}
+_020818B8:
+ mov r0, #0x9
+ bl FUN_020315D8
+ cmp r0, #0x1
+ bne _02081912
+ ldr r0, _020819E8 ; =0x00000176
+ add sp, #0x10
+ ldrb r1, [r4, r0]
+ add r1, r1, #0x1
+ strb r1, [r4, r0]
+ pop {r3-r7, pc}
+_020818CE:
+ add r1, r2, #0x0
+ sub r1, #0x53
+ ldrb r3, [r4, r1]
+ add r1, r2, #0x0
+ sub r1, #0x5a
+ ldrb r1, [r4, r1]
+ cmp r3, r1
+ bne _02081902
+ add r0, r2, #0x2
+ ldr r1, [r4, r0]
+ add r3, r4, #0x0
+ mov r2, #0x30
+ add r3, #0x10
+ mul r2, r1
+ add r0, r4, #0x0
+ add r2, r3, r2
+ bl FUN_020837B4
+ cmp r0, #0x1
+ bne _02081912
+ ldr r0, _020819E8 ; =0x00000176
+ add sp, #0x10
+ ldrb r1, [r4, r0]
+ add r1, r1, #0x1
+ strb r1, [r4, r0]
+ pop {r3-r7, pc}
+_02081902:
+ add r0, r0, #0x1
+ add sp, #0x10
+ strb r0, [r4, r2]
+ pop {r3-r7, pc}
+_0208190A:
+ ldr r1, _020819EC ; =0x00000584
+ ldrb r0, [r4, r1]
+ cmp r0, #0x0
+ bne _02081914
+_02081912:
+ b _02081DBC
+_02081914:
+ mov r0, #0x0
+ strb r0, [r4, r1]
+ add r1, r2, #0x2
+ ldr r1, [r4, r1]
+ add r3, r1, #0x1
+ add r1, r2, #0x2
+ str r3, [r4, r1]
+ ldr r1, [r4, r1]
+ cmp r1, #0x4
+ bge _02081932
+ ldrb r0, [r4, r2]
+ add sp, #0x10
+ sub r0, r0, #0x1
+ strb r0, [r4, r2]
+ pop {r3-r7, pc}
+_02081932:
+ add r1, r2, #0x2
+ str r0, [r4, r1]
+ ldrb r0, [r4, r2]
+ add sp, #0x10
+ add r0, r0, #0x1
+ strb r0, [r4, r2]
+ pop {r3-r7, pc}
+_02081940:
+ mov r0, #0xa
+ bl FUN_02031588
+ ldr r0, _020819EC ; =0x00000584
+ mov r1, #0x0
+ strb r1, [r4, r0]
+ ldr r0, _020819E8 ; =0x00000176
+ add sp, #0x10
+ ldrb r1, [r4, r0]
+ add r1, r1, #0x1
+ strb r1, [r4, r0]
+ pop {r3-r7, pc}
+_02081958:
+ mov r0, #0xa
+ bl FUN_020315D8
+ cmp r0, #0x1
+ bne _02081A5C
+ ldr r0, _020819E8 ; =0x00000176
+ add sp, #0x10
+ ldrb r1, [r4, r0]
+ add r1, r1, #0x1
+ strb r1, [r4, r0]
+ pop {r3-r7, pc}
+_0208196E:
+ sub r2, #0x53
+ ldrb r1, [r4, r2]
+ add r2, r4, #0x0
+ add r2, #0xe8
+ ldr r2, [r2, #0x0]
+ add r0, r4, #0x0
+ bl FUN_020838B4
+ cmp r0, #0x1
+ bne _02081A5C
+ ldr r0, _020819E8 ; =0x00000176
+ add sp, #0x10
+ ldrb r1, [r4, r0]
+ add r1, r1, #0x1
+ strb r1, [r4, r0]
+ pop {r3-r7, pc}
+_0208198E:
+ ldr r0, _020819EC ; =0x00000584
+ sub r2, #0x4f
+ ldrb r1, [r4, r2]
+ ldrb r0, [r4, r0]
+ cmp r0, r1
+ blo _02081A5C
+ mov r5, #0x0
+ cmp r1, #0x0
+ ble _020819CC
+ add r6, r4, #0x0
+_020819A2:
+ add r0, r5, #0x0
+ bl FUN_0202DFA4
+ add r7, r0, #0x0
+ add r0, r6, #0x0
+ add r0, #0xe8
+ ldr r0, [r0, #0x0]
+ bl FUN_02021A4C
+ add r1, r6, #0x0
+ add r1, #0xe8
+ ldr r1, [r1, #0x0]
+ add r0, r7, #0x0
+ bl FUN_02023990
+ ldr r0, _020819F0 ; =0x00000127
+ add r5, r5, #0x1
+ ldrb r0, [r4, r0]
+ add r6, r6, #0x4
+ cmp r5, r0
+ blt _020819A2
+_020819CC:
+ ldr r0, _020819EC ; =0x00000584
+ mov r1, #0x0
+ strb r1, [r4, r0]
+ ldr r0, _020819E8 ; =0x00000176
+ add sp, #0x10
+ ldrb r1, [r4, r0]
+ add r1, r1, #0x1
+ strb r1, [r4, r0]
+ pop {r3-r7, pc}
+_020819DE:
+ mov r0, #0xb
+ bl FUN_02031588
+ ldr r0, _020819EC ; =0x00000584
+ b _020819F4
+ .balign 4
+_020819E8: .word 0x00000176
+_020819EC: .word 0x00000584
+_020819F0: .word 0x00000127
+_020819F4:
+ mov r1, #0x0
+ strb r1, [r4, r0]
+ ldr r0, _02081D28 ; =0x00000176
+ add sp, #0x10
+ ldrb r1, [r4, r0]
+ add r1, r1, #0x1
+ strb r1, [r4, r0]
+ pop {r3-r7, pc}
+_02081A04:
+ mov r0, #0xb
+ bl FUN_020315D8
+ cmp r0, #0x1
+ bne _02081A5C
+ ldr r0, _02081D28 ; =0x00000176
+ add sp, #0x10
+ ldrb r1, [r4, r0]
+ add r1, r1, #0x1
+ strb r1, [r4, r0]
+ pop {r3-r7, pc}
+_02081A1A:
+ add r1, r2, #0x0
+ sub r1, #0x53
+ ldrb r3, [r4, r1]
+ add r1, r2, #0x0
+ sub r1, #0x5a
+ ldrb r1, [r4, r1]
+ cmp r3, r1
+ bne _02081A4C
+ add r0, r2, #0x2
+ ldr r1, [r4, r0]
+ add r0, r4, #0x0
+ lsl r2, r1, #0x2
+ add r2, r4, r2
+ add r2, #0xe8
+ ldr r2, [r2, #0x0]
+ bl FUN_020838B4
+ cmp r0, #0x1
+ bne _02081A5C
+ ldr r0, _02081D28 ; =0x00000176
+ add sp, #0x10
+ ldrb r1, [r4, r0]
+ add r1, r1, #0x1
+ strb r1, [r4, r0]
+ pop {r3-r7, pc}
+_02081A4C:
+ add r0, r0, #0x1
+ add sp, #0x10
+ strb r0, [r4, r2]
+ pop {r3-r7, pc}
+_02081A54:
+ ldr r1, _02081D2C ; =0x00000584
+ ldrb r0, [r4, r1]
+ cmp r0, #0x0
+ bne _02081A5E
+_02081A5C:
+ b _02081DBC
+_02081A5E:
+ mov r0, #0x0
+ strb r0, [r4, r1]
+ add r1, r2, #0x2
+ ldr r1, [r4, r1]
+ add r3, r1, #0x1
+ add r1, r2, #0x2
+ str r3, [r4, r1]
+ ldr r1, [r4, r1]
+ cmp r1, #0x4
+ bge _02081A7C
+ ldrb r0, [r4, r2]
+ add sp, #0x10
+ sub r0, r0, #0x1
+ strb r0, [r4, r2]
+ pop {r3-r7, pc}
+_02081A7C:
+ add r1, r2, #0x2
+ str r0, [r4, r1]
+ ldrb r0, [r4, r2]
+ add sp, #0x10
+ add r0, r0, #0x1
+ strb r0, [r4, r2]
+ pop {r3-r7, pc}
+_02081A8A:
+ bl FUN_02029EC4
+ add r2, r0, #0x0
+ mov r0, #0x57
+ lsl r0, r0, #0x2
+ ldr r1, _02081D30 ; =0x00000585
+ ldr r0, [r4, r0]
+ add r1, r4, r1
+ blx MI_CpuCopy8
+ mov r0, #0xc
+ bl FUN_02031588
+ ldr r0, _02081D2C ; =0x00000584
+ mov r1, #0x0
+ strb r1, [r4, r0]
+ ldr r0, _02081D28 ; =0x00000176
+ add sp, #0x10
+ ldrb r1, [r4, r0]
+ add r1, r1, #0x1
+ strb r1, [r4, r0]
+ pop {r3-r7, pc}
+_02081AB6:
+ mov r0, #0xc
+ bl FUN_020315D8
+ cmp r0, #0x1
+ bne _02081B74
+ ldr r0, _02081D28 ; =0x00000176
+ add sp, #0x10
+ ldrb r1, [r4, r0]
+ add r1, r1, #0x1
+ strb r1, [r4, r0]
+ pop {r3-r7, pc}
+_02081ACC:
+ sub r2, #0x53
+ ldrb r1, [r4, r2]
+ add r0, r4, #0x0
+ mov r2, #0x0
+ bl FUN_02083AD4
+ cmp r0, #0x1
+ bne _02081B74
+ ldr r0, _02081D28 ; =0x00000176
+ add sp, #0x10
+ ldrb r1, [r4, r0]
+ add r1, r1, #0x1
+ strb r1, [r4, r0]
+ pop {r3-r7, pc}
+_02081AE8:
+ ldr r0, _02081D2C ; =0x00000584
+ add r1, r2, #0x0
+ sub r1, #0x4f
+ ldrb r3, [r4, r0]
+ ldrb r1, [r4, r1]
+ cmp r3, r1
+ blo _02081B74
+ mov r1, #0x0
+ strb r1, [r4, r0]
+ ldrb r0, [r4, r2]
+ add sp, #0x10
+ add r0, r0, #0x1
+ strb r0, [r4, r2]
+ pop {r3-r7, pc}
+_02081B04:
+ mov r0, #0xd
+ bl FUN_02031588
+ ldr r0, _02081D2C ; =0x00000584
+ mov r1, #0x0
+ strb r1, [r4, r0]
+ ldr r0, _02081D28 ; =0x00000176
+ add sp, #0x10
+ ldrb r1, [r4, r0]
+ add r1, r1, #0x1
+ strb r1, [r4, r0]
+ pop {r3-r7, pc}
+_02081B1C:
+ mov r0, #0xd
+ bl FUN_020315D8
+ cmp r0, #0x1
+ bne _02081B74
+ ldr r0, _02081D28 ; =0x00000176
+ add sp, #0x10
+ ldrb r1, [r4, r0]
+ add r1, r1, #0x1
+ strb r1, [r4, r0]
+ pop {r3-r7, pc}
+_02081B32:
+ add r1, r2, #0x0
+ sub r1, #0x53
+ ldrb r3, [r4, r1]
+ add r1, r2, #0x0
+ sub r1, #0x5a
+ ldrb r1, [r4, r1]
+ cmp r3, r1
+ bne _02081B64
+ add r0, r2, #0x2
+ ldr r1, [r4, r0]
+ sub r2, #0x1a
+ lsl r3, r1, #0x2
+ add r3, r4, r3
+ ldr r2, [r3, r2]
+ add r0, r4, #0x0
+ bl FUN_02083AD4
+ cmp r0, #0x1
+ bne _02081B74
+ ldr r0, _02081D28 ; =0x00000176
+ add sp, #0x10
+ ldrb r1, [r4, r0]
+ add r1, r1, #0x1
+ strb r1, [r4, r0]
+ pop {r3-r7, pc}
+_02081B64:
+ add r0, r0, #0x1
+ add sp, #0x10
+ strb r0, [r4, r2]
+ pop {r3-r7, pc}
+_02081B6C:
+ ldr r1, _02081D2C ; =0x00000584
+ ldrb r0, [r4, r1]
+ cmp r0, #0x0
+ bne _02081B76
+_02081B74:
+ b _02081DBC
+_02081B76:
+ mov r0, #0x0
+ strb r0, [r4, r1]
+ add r1, r2, #0x2
+ ldr r1, [r4, r1]
+ add r3, r1, #0x1
+ add r1, r2, #0x2
+ str r3, [r4, r1]
+ ldr r1, [r4, r1]
+ cmp r1, #0x4
+ bge _02081B94
+ ldrb r0, [r4, r2]
+ add sp, #0x10
+ sub r0, r0, #0x1
+ strb r0, [r4, r2]
+ pop {r3-r7, pc}
+_02081B94:
+ add r1, r2, #0x2
+ str r0, [r4, r1]
+ ldrb r0, [r4, r2]
+ add sp, #0x10
+ add r0, r0, #0x1
+ strb r0, [r4, r2]
+ pop {r3-r7, pc}
+_02081BA2:
+ mov r0, #0xe
+ bl FUN_02031588
+ ldr r0, _02081D2C ; =0x00000584
+ mov r1, #0x0
+ strb r1, [r4, r0]
+ ldr r0, _02081D28 ; =0x00000176
+ add sp, #0x10
+ ldrb r1, [r4, r0]
+ add r1, r1, #0x1
+ strb r1, [r4, r0]
+ pop {r3-r7, pc}
+_02081BBA:
+ mov r0, #0xe
+ bl FUN_020315D8
+ cmp r0, #0x1
+ bne _02081C8E
+ ldr r0, _02081D28 ; =0x00000176
+ add sp, #0x10
+ ldrb r1, [r4, r0]
+ add r1, r1, #0x1
+ strb r1, [r4, r0]
+ pop {r3-r7, pc}
+_02081BD0:
+ add r2, sp, #0x8
+ add r0, r4, #0x0
+ mov r1, #0x0
+ add r2, #0x2
+ bl FUN_02082894
+ ldr r1, _02081D34 ; =0x00000123
+ add r2, sp, #0x8
+ ldrb r1, [r4, r1]
+ add r0, r4, #0x0
+ add r2, #0x2
+ bl FUN_02083B48
+ cmp r0, #0x1
+ bne _02081C8E
+ ldr r0, _02081D28 ; =0x00000176
+ add sp, #0x10
+ ldrb r1, [r4, r0]
+ add r1, r1, #0x1
+ strb r1, [r4, r0]
+ pop {r3-r7, pc}
+_02081BFA:
+ ldr r0, _02081D2C ; =0x00000584
+ add r1, r2, #0x0
+ sub r1, #0x4f
+ ldrb r3, [r4, r0]
+ ldrb r1, [r4, r1]
+ cmp r3, r1
+ blo _02081C8E
+ mov r1, #0x0
+ strb r1, [r4, r0]
+ ldrb r0, [r4, r2]
+ add sp, #0x10
+ add r0, r0, #0x1
+ strb r0, [r4, r2]
+ pop {r3-r7, pc}
+_02081C16:
+ mov r0, #0xf
+ bl FUN_02031588
+ ldr r0, _02081D2C ; =0x00000584
+ mov r1, #0x0
+ strb r1, [r4, r0]
+ ldr r0, _02081D28 ; =0x00000176
+ add sp, #0x10
+ ldrb r1, [r4, r0]
+ add r1, r1, #0x1
+ strb r1, [r4, r0]
+ pop {r3-r7, pc}
+_02081C2E:
+ mov r0, #0xf
+ bl FUN_020315D8
+ cmp r0, #0x1
+ bne _02081C8E
+ ldr r0, _02081D28 ; =0x00000176
+ add sp, #0x10
+ ldrb r1, [r4, r0]
+ add r1, r1, #0x1
+ strb r1, [r4, r0]
+ pop {r3-r7, pc}
+_02081C44:
+ add r1, r2, #0x0
+ sub r1, #0x53
+ ldrb r3, [r4, r1]
+ add r1, r2, #0x0
+ sub r1, #0x5a
+ ldrb r1, [r4, r1]
+ cmp r3, r1
+ bne _02081C7E
+ add r1, r2, #0x2
+ ldr r1, [r4, r1]
+ add r0, r4, #0x0
+ add r2, sp, #0x4
+ bl FUN_02082894
+ mov r1, #0x5e
+ lsl r1, r1, #0x2
+ ldr r1, [r4, r1]
+ add r0, r4, #0x0
+ add r2, sp, #0x4
+ bl FUN_02083B48
+ cmp r0, #0x1
+ bne _02081C8E
+ ldr r0, _02081D28 ; =0x00000176
+ add sp, #0x10
+ ldrb r1, [r4, r0]
+ add r1, r1, #0x1
+ strb r1, [r4, r0]
+ pop {r3-r7, pc}
+_02081C7E:
+ add r0, r0, #0x1
+ add sp, #0x10
+ strb r0, [r4, r2]
+ pop {r3-r7, pc}
+_02081C86:
+ ldr r1, _02081D2C ; =0x00000584
+ ldrb r0, [r4, r1]
+ cmp r0, #0x0
+ bne _02081C90
+_02081C8E:
+ b _02081DBC
+_02081C90:
+ mov r0, #0x0
+ strb r0, [r4, r1]
+ add r1, r2, #0x2
+ ldr r1, [r4, r1]
+ add r3, r1, #0x1
+ add r1, r2, #0x2
+ str r3, [r4, r1]
+ ldr r1, [r4, r1]
+ cmp r1, #0x4
+ bge _02081CAE
+ ldrb r0, [r4, r2]
+ add sp, #0x10
+ sub r0, r0, #0x1
+ strb r0, [r4, r2]
+ pop {r3-r7, pc}
+_02081CAE:
+ add r1, r2, #0x2
+ str r0, [r4, r1]
+ ldrb r0, [r4, r2]
+ add sp, #0x10
+ add r0, r0, #0x1
+ strb r0, [r4, r2]
+ pop {r3-r7, pc}
+_02081CBC:
+ mov r0, #0x10
+ bl FUN_02031588
+ ldr r0, _02081D2C ; =0x00000584
+ mov r1, #0x0
+ strb r1, [r4, r0]
+ ldr r0, _02081D28 ; =0x00000176
+ add sp, #0x10
+ ldrb r1, [r4, r0]
+ add r1, r1, #0x1
+ strb r1, [r4, r0]
+ pop {r3-r7, pc}
+_02081CD4:
+ mov r0, #0x10
+ bl FUN_020315D8
+ cmp r0, #0x1
+ bne _02081DBC
+ ldr r0, _02081D28 ; =0x00000176
+ add sp, #0x10
+ ldrb r1, [r4, r0]
+ add r1, r1, #0x1
+ strb r1, [r4, r0]
+ pop {r3-r7, pc}
+_02081CEA:
+ sub r2, #0x53
+ ldrb r1, [r4, r2]
+ add r2, r4, #0x0
+ add r0, r4, #0x0
+ add r2, #0xd0
+ bl FUN_02083834
+ cmp r0, #0x1
+ bne _02081DBC
+ ldr r0, _02081D28 ; =0x00000176
+ add sp, #0x10
+ ldrb r1, [r4, r0]
+ add r1, r1, #0x1
+ strb r1, [r4, r0]
+ pop {r3-r7, pc}
+_02081D08:
+ ldr r0, _02081D2C ; =0x00000584
+ add r1, r2, #0x0
+ sub r1, #0x4f
+ ldrb r3, [r4, r0]
+ ldrb r1, [r4, r1]
+ cmp r3, r1
+ blo _02081DBC
+ mov r1, #0x0
+ strb r1, [r4, r0]
+ ldrb r0, [r4, r2]
+ add sp, #0x10
+ add r0, r0, #0x1
+ strb r0, [r4, r2]
+ pop {r3-r7, pc}
+_02081D24:
+ ldr r0, _02081D38 ; =0x00000127
+ b _02081D3C
+ .balign 4
+_02081D28: .word 0x00000176
+_02081D2C: .word 0x00000584
+_02081D30: .word 0x00000585
+_02081D34: .word 0x00000123
+_02081D38: .word 0x00000127
+_02081D3C:
+ mov r5, #0x0
+ ldrb r0, [r4, r0]
+ cmp r0, #0x0
+ ble _02081D62
+ mov r7, #0x42
+ lsl r7, r7, #0x2
+ add r6, r7, #0x0
+ add r6, #0x1f
+_02081D4C:
+ add r0, r5, #0x0
+ bl FUN_0202DFA4
+ bl FUN_020239CC
+ add r1, r4, r5
+ strb r0, [r1, r7]
+ ldrb r0, [r4, r6]
+ add r5, r5, #0x1
+ cmp r5, r0
+ blt _02081D4C
+_02081D62:
+ cmp r5, #0x4
+ bge _02081D86
+ add r1, r4, #0x0
+ mov r0, #0x30
+ add r1, #0x30
+ mul r0, r5
+ add r0, r1, r0
+ mov r1, #0x42
+ lsl r1, r1, #0x2
+_02081D74:
+ ldrh r2, [r0, #0x0]
+ add r0, #0x30
+ lsl r2, r2, #0x12
+ lsr r3, r2, #0x1e
+ add r2, r4, r5
+ add r5, r5, #0x1
+ strb r3, [r2, r1]
+ cmp r5, #0x4
+ blt _02081D74
+_02081D86:
+ mov r0, #0x47
+ lsl r0, r0, #0x2
+ ldrb r2, [r4, r0]
+ ldr r1, _02081DC0 ; =0x000019B4
+ strb r2, [r4, r1]
+ add r2, r0, #0x0
+ add r2, #0x8
+ ldrb r3, [r4, r2]
+ add r2, r1, #0x1
+ strb r3, [r4, r2]
+ add r2, r1, #0x2
+ mov r3, #0x1
+ strb r3, [r4, r2]
+ add r2, r0, #0x0
+ add r2, #0xb
+ ldrb r2, [r4, r2]
+ add r1, r1, #0x3
+ strb r2, [r4, r1]
+ add r1, r0, #0x0
+ mov r2, #0x0
+ add r1, #0x64
+ str r2, [r4, r1]
+ add r0, #0x5a
+ strb r2, [r4, r0]
+ ldr r0, [sp, #0x0]
+ bl FUN_0200CAB4
+_02081DBC:
+ add sp, #0x10
+ pop {r3-r7, pc}
+ .balign 4
+_02081DC0: .word 0x000019B4
+
+ thumb_func_start FUN_02081DC4
+FUN_02081DC4: ; 0x02081DC4
+ push {r3-r7, lr}
+ add r6, r0, #0x0
+ bl FUN_02030F40
+ cmp r0, #0x0
+ bne _02081DD4
+ mov r0, #0x0
+ pop {r3-r7, pc}
+_02081DD4:
+ ldr r0, _02081EA4 ; =0x00000171
+ mov r1, #0x1
+ strb r1, [r6, r0]
+ bl FUN_02030F20
+ add r4, r0, #0x0
+ bl FUN_02031190
+ mov r5, #0x0
+ str r0, [sp, #0x0]
+ cmp r4, #0x0
+ ble _02081E0A
+_02081DEC:
+ add r0, r5, #0x0
+ bl FUN_0202DFA4
+ add r7, r0, #0x0
+ bne _02081DFA
+ bl ErrorHandling
+_02081DFA:
+ add r0, r7, #0x0
+ bl FUN_02023A88
+ cmp r0, #0x0
+ beq _02081E0A
+ add r5, r5, #0x1
+ cmp r5, r4
+ blt _02081DEC
+_02081E0A:
+ cmp r5, r4
+ beq _02081E12
+ mov r1, #0x0
+ b _02081E14
+_02081E12:
+ mov r1, #0x1
+_02081E14:
+ ldr r0, _02081EA8 ; =0x00001999
+ mov r5, #0x0
+ strb r1, [r6, r0]
+ cmp r4, #0x0
+ ble _02081E3C
+_02081E1E:
+ add r0, r5, #0x0
+ bl FUN_0202DFA4
+ add r7, r0, #0x0
+ bne _02081E2C
+ bl ErrorHandling
+_02081E2C:
+ add r0, r7, #0x0
+ bl FUN_02023A9C
+ cmp r0, #0x0
+ beq _02081E3C
+ add r5, r5, #0x1
+ cmp r5, r4
+ blt _02081E1E
+_02081E3C:
+ cmp r5, r4
+ beq _02081E44
+ mov r1, #0x0
+ b _02081E46
+_02081E44:
+ mov r1, #0x1
+_02081E46:
+ ldr r0, _02081EAC ; =0x0000199A
+ ldr r2, _02081EA8 ; =0x00001999
+ strb r1, [r6, r0]
+ ldrb r1, [r6, r2]
+ add r2, r2, #0x1
+ ldrb r2, [r6, r2]
+ add r0, r6, #0x0
+ bl FUN_020813F4
+ ldr r0, [sp, #0x0]
+ mov r1, #0x49
+ lsl r0, r0, #0x18
+ mov r2, #0x4
+ lsr r0, r0, #0x18
+ lsl r1, r1, #0x2
+ sub r3, r2, r4
+ strb r0, [r6, r1]
+ add r2, r1, #0x2
+ strb r3, [r6, r2]
+ add r2, r1, #0x3
+ strb r4, [r6, r2]
+ sub r1, r1, #0x1
+ strb r0, [r6, r1]
+ mov r1, #0x64
+ add r0, r1, #0x0
+ add r0, #0xc1
+ strb r1, [r6, r0]
+ add r1, #0xbc
+ ldrb r0, [r6, r1]
+ mov r1, #0x1
+ bl FUN_02083454
+ ldr r1, _02081EB0 ; =0x00000122
+ strb r0, [r6, r1]
+ add r0, r6, #0x0
+ bl FUN_020834D0
+ ldr r0, _02081EB4 ; =FUN_02081680
+ add r1, r6, #0x0
+ mov r2, #0xa
+ bl FUN_0200CA44
+ mov r1, #0x6
+ lsl r1, r1, #0x6
+ str r0, [r6, r1]
+ mov r0, #0x1
+ pop {r3-r7, pc}
+ .balign 4
+_02081EA4: .word 0x00000171
+_02081EA8: .word 0x00001999
+_02081EAC: .word 0x0000199A
+_02081EB0: .word 0x00000122
+_02081EB4: .word FUN_02081680
+
+ thumb_func_start FUN_02081EB8
+FUN_02081EB8: ; 0x02081EB8
+ ldr r3, _02081EBC ; =FUN_02081EC0
+ bx r3
+ .balign 4
+_02081EBC: .word FUN_02081EC0
+
+ thumb_func_start FUN_02081EC0
+FUN_02081EC0: ; 0x02081EC0
+ mov r1, #0x6
+ lsl r1, r1, #0x6
+ ldr r0, [r0, r1]
+ cmp r0, #0x0
+ bne _02081ECE
+ mov r0, #0x1
+ bx lr
+_02081ECE:
+ mov r0, #0x0
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02081ED4
+FUN_02081ED4: ; 0x02081ED4
+ push {r4, lr}
+ add r4, r0, #0x0
+ mov r0, #0x6
+ lsl r0, r0, #0x6
+ ldr r0, [r4, r0]
+ cmp r0, #0x0
+ beq _02081EE6
+ bl ErrorHandling
+_02081EE6:
+ ldr r0, _02081F00 ; =0x00000176
+ mov r1, #0x0
+ strb r1, [r4, r0]
+ ldr r0, _02081F04 ; =FUN_02081F08
+ add r1, r4, #0x0
+ mov r2, #0xa
+ bl FUN_0200CA44
+ mov r1, #0x6
+ lsl r1, r1, #0x6
+ str r0, [r4, r1]
+ pop {r4, pc}
+ nop
+_02081F00: .word 0x00000176
+_02081F04: .word FUN_02081F08
+
+ thumb_func_start FUN_02081F08
+FUN_02081F08: ; 0x02081F08
+ push {r4, lr}
+ add r4, r1, #0x0
+ ldr r1, _02082014 ; =0x00000176
+ ldrb r2, [r4, r1]
+ cmp r2, #0x7
+ bhi _02082000
+ add r3, r2, r2
+ add r3, pc
+ ldrh r3, [r3, #0x6]
+ lsl r3, r3, #0x10
+ asr r3, r3, #0x10
+ add pc, r3
+_02081F20: ; jump table (using 16-bit offset)
+ .short _02081F30 - _02081F20 - 2; case 0
+ .short _02081F46 - _02081F20 - 2; case 1
+ .short _02081F5A - _02081F20 - 2; case 2
+ .short _02081F7A - _02081F20 - 2; case 3
+ .short _02081F94 - _02081F20 - 2; case 4
+ .short _02081FAA - _02081F20 - 2; case 5
+ .short _02081FBE - _02081F20 - 2; case 6
+ .short _02081FEC - _02081F20 - 2; case 7
+_02081F30:
+ mov r0, #0x11
+ bl FUN_02031588
+ ldr r0, _02082018 ; =0x00000584
+ mov r1, #0x0
+ strb r1, [r4, r0]
+ ldr r0, _02082014 ; =0x00000176
+ ldrb r1, [r4, r0]
+ add r1, r1, #0x1
+ strb r1, [r4, r0]
+ pop {r4, pc}
+_02081F46:
+ mov r0, #0x11
+ bl FUN_020315D8
+ cmp r0, #0x1
+ bne _02082010
+ ldr r0, _02082014 ; =0x00000176
+ ldrb r1, [r4, r0]
+ add r1, r1, #0x1
+ strb r1, [r4, r0]
+ pop {r4, pc}
+_02081F5A:
+ sub r1, #0x53
+ ldrb r1, [r4, r1]
+ add r0, r4, #0x0
+ lsl r2, r1, #0x2
+ add r2, r4, r2
+ add r2, #0xf8
+ ldr r2, [r2, #0x0]
+ bl FUN_02083930
+ cmp r0, #0x1
+ bne _02082010
+ ldr r0, _02082014 ; =0x00000176
+ ldrb r1, [r4, r0]
+ add r1, r1, #0x1
+ strb r1, [r4, r0]
+ pop {r4, pc}
+_02081F7A:
+ ldr r0, _02082018 ; =0x00000584
+ add r2, r1, #0x0
+ sub r2, #0x4f
+ ldrb r3, [r4, r0]
+ ldrb r2, [r4, r2]
+ cmp r3, r2
+ blo _02082010
+ mov r2, #0x0
+ strb r2, [r4, r0]
+ ldrb r0, [r4, r1]
+ add r0, r0, #0x1
+ strb r0, [r4, r1]
+ pop {r4, pc}
+_02081F94:
+ mov r0, #0x12
+ bl FUN_02031588
+ ldr r0, _02082018 ; =0x00000584
+ mov r1, #0x0
+ strb r1, [r4, r0]
+ ldr r0, _02082014 ; =0x00000176
+ ldrb r1, [r4, r0]
+ add r1, r1, #0x1
+ strb r1, [r4, r0]
+ pop {r4, pc}
+_02081FAA:
+ mov r0, #0x12
+ bl FUN_020315D8
+ cmp r0, #0x1
+ bne _02082010
+ ldr r0, _02082014 ; =0x00000176
+ ldrb r1, [r4, r0]
+ add r1, r1, #0x1
+ strb r1, [r4, r0]
+ pop {r4, pc}
+_02081FBE:
+ add r0, r1, #0x0
+ sub r0, #0x53
+ ldrb r3, [r4, r0]
+ add r0, r1, #0x0
+ sub r0, #0x5a
+ ldrb r0, [r4, r0]
+ cmp r3, r0
+ bne _02081FE6
+ add r1, r4, #0x0
+ add r0, r4, #0x0
+ add r1, #0xf8
+ bl FUN_020839C0
+ cmp r0, #0x1
+ bne _02082010
+ ldr r0, _02082014 ; =0x00000176
+ ldrb r1, [r4, r0]
+ add r1, r1, #0x1
+ strb r1, [r4, r0]
+ pop {r4, pc}
+_02081FE6:
+ add r0, r2, #0x1
+ strb r0, [r4, r1]
+ pop {r4, pc}
+_02081FEC:
+ ldr r0, _02082018 ; =0x00000584
+ ldrb r2, [r4, r0]
+ cmp r2, #0x0
+ beq _02082010
+ mov r2, #0x0
+ strb r2, [r4, r0]
+ ldrb r0, [r4, r1]
+ add r0, r0, #0x1
+ strb r0, [r4, r1]
+ pop {r4, pc}
+_02082000:
+ mov r1, #0x6
+ mov r2, #0x0
+ lsl r1, r1, #0x6
+ str r2, [r4, r1]
+ sub r1, #0xa
+ strb r2, [r4, r1]
+ bl FUN_0200CAB4
+_02082010:
+ pop {r4, pc}
+ nop
+_02082014: .word 0x00000176
+_02082018: .word 0x00000584
+
+ thumb_func_start FUN_0208201C
+FUN_0208201C: ; 0x0208201C
+ push {r3-r5, lr}
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ add r0, r2, #0x0
+ lsl r2, r4, #0x3
+ add r2, r5, r2
+ add r2, #0xd0
+ ldrh r2, [r2, #0x0]
+ add r1, r3, #0x0
+ bl FUN_0200B244
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_02082034
+FUN_02082034: ; 0x02082034
+ push {r4-r6, lr}
+ sub sp, #0x8
+ add r5, r0, #0x0
+ add r0, r1, #0x0
+ add r4, r2, #0x0
+ add r6, r3, #0x0
+ bl FUN_020832E4
+ add r3, r0, #0x0
+ mov r0, #0x1
+ str r0, [sp, #0x0]
+ mov r0, #0x2
+ str r0, [sp, #0x4]
+ add r0, r4, #0x0
+ lsl r2, r3, #0x2
+ add r4, r5, r3
+ mov r3, #0x42
+ add r2, r5, r2
+ lsl r3, r3, #0x2
+ add r2, #0xe8
+ ldrb r3, [r4, r3]
+ ldr r2, [r2, #0x0]
+ add r1, r6, #0x0
+ bl FUN_0200ABB4
+ add sp, #0x8
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_0208206C
+FUN_0208206C: ; 0x0208206C
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ add r0, r1, #0x0
+ add r4, r2, #0x0
+ add r6, r3, #0x0
+ bl FUN_020832E4
+ lsl r0, r0, #0x2
+ ldr r0, [r5, r0]
+ bl FUN_020690E4
+ add r2, r0, #0x0
+ add r0, r4, #0x0
+ add r1, r6, #0x0
+ bl FUN_0200ACF8
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_02082090
+FUN_02082090: ; 0x02082090
+ push {r3-r5, lr}
+ add r4, r2, #0x0
+ mov r2, #0x12
+ add r3, r0, #0x0
+ lsl r2, r2, #0x4
+ add r5, r1, #0x0
+ add r1, r2, #0x1
+ ldrb r0, [r3, r2]
+ add r2, #0x51
+ ldrb r1, [r3, r1]
+ ldrb r2, [r3, r2]
+ bl FUN_02083228
+ add r2, r0, #0x0
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_0200B278
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_020820B8
+FUN_020820B8: ; 0x020820B8
+ push {r3-r5, lr}
+ add r5, r1, #0x0
+ ldr r1, _020820D8 ; =0x0000011F
+ add r3, r0, #0x0
+ ldrb r0, [r3, r1]
+ add r1, r1, #0x2
+ ldrb r1, [r3, r1]
+ add r4, r2, #0x0
+ bl FUN_020832A4
+ add r2, r0, #0x0
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_0200B2AC
+ pop {r3-r5, pc}
+ .balign 4
+_020820D8: .word 0x0000011F
+
+ thumb_func_start FUN_020820DC
+FUN_020820DC: ; 0x020820DC
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ mov r1, #0x13
+ add r6, r2, #0x0
+ mov r0, #0x0
+ add r3, r5, #0x0
+ lsl r1, r1, #0x4
+_020820EC:
+ ldrb r2, [r3, r1]
+ cmp r2, #0x0
+ beq _020820FA
+ add r0, r0, #0x1
+ add r3, #0xc
+ cmp r0, #0x4
+ blt _020820EC
+_020820FA:
+ bl FUN_020832DC
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r2, r4, #0x0
+ add r3, r6, #0x0
+ bl FUN_02082034
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_0208210C
+FUN_0208210C: ; 0x0208210C
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ mov r1, #0x13
+ add r6, r2, #0x0
+ mov r0, #0x0
+ add r3, r5, #0x0
+ lsl r1, r1, #0x4
+_0208211C:
+ ldrb r2, [r3, r1]
+ cmp r2, #0x0
+ beq _0208212A
+ add r0, r0, #0x1
+ add r3, #0xc
+ cmp r0, #0x4
+ blt _0208211C
+_0208212A:
+ bl FUN_020832DC
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r2, r4, #0x0
+ add r3, r6, #0x0
+ bl FUN_0208206C
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_0208213C
+FUN_0208213C: ; 0x0208213C
+ mov r0, #0x1
+ bx lr
+
+ thumb_func_start FUN_02082140
+FUN_02082140: ; 0x02082140
+ push {r3, lr}
+ ldr r2, _02082154 ; =0x00000171
+ ldrb r0, [r0, r2]
+ cmp r0, #0x0
+ beq _02082150
+ add r0, r1, #0x0
+ bl FUN_02031588
+_02082150:
+ pop {r3, pc}
+ nop
+_02082154: .word 0x00000171
+
+ thumb_func_start FUN_02082158
+FUN_02082158: ; 0x02082158
+ push {r3, lr}
+ ldr r2, _02082178 ; =0x00000171
+ ldrb r0, [r0, r2]
+ cmp r0, #0x0
+ bne _02082166
+ mov r0, #0x1
+ pop {r3, pc}
+_02082166:
+ add r0, r1, #0x0
+ bl FUN_020315D8
+ cmp r0, #0x1
+ bne _02082174
+ mov r0, #0x1
+ pop {r3, pc}
+_02082174:
+ mov r0, #0x0
+ pop {r3, pc}
+ .balign 4
+_02082178: .word 0x00000171
+
+ thumb_func_start FUN_0208217C
+FUN_0208217C: ; 0x0208217C
+ ldr r2, _0208218C ; =0x00000123
+ mov r1, #0xc
+ ldrb r3, [r0, r2]
+ add r2, #0xd
+ mul r1, r3
+ add r0, r0, r1
+ ldrb r0, [r0, r2]
+ bx lr
+ .balign 4
+_0208218C: .word 0x00000123
+
+ thumb_func_start FUN_02082190
+FUN_02082190: ; 0x02082190
+ push {r3, lr}
+ mov r1, #0x13
+ mov r3, #0x0
+ lsl r1, r1, #0x4
+_02082198:
+ ldrb r2, [r0, r1]
+ cmp r2, #0x0
+ bne _020821A6
+ add r0, r3, #0x0
+ bl FUN_020832DC
+ pop {r3, pc}
+_020821A6:
+ add r3, r3, #0x1
+ add r0, #0xc
+ cmp r3, #0x4
+ blt _02082198
+ mov r0, #0x0
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_020821B4
+FUN_020821B4: ; 0x020821B4
+ ldr r1, _020821BC ; =0x00000123
+ ldr r3, _020821C0 ; =FUN_020832DC
+ ldrb r0, [r0, r1]
+ bx r3
+ .balign 4
+_020821BC: .word 0x00000123
+_020821C0: .word FUN_020832DC
+
+ thumb_func_start FUN_020821C4
+FUN_020821C4: ; 0x020821C4
+ push {r4, lr}
+ add r4, r0, #0x0
+ add r0, r1, #0x0
+ bl FUN_020832E4
+ lsl r0, r0, #0x1
+ add r1, r4, r0
+ mov r0, #0x45
+ lsl r0, r0, #0x2
+ ldrh r0, [r1, r0]
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_020821DC
+FUN_020821DC: ; 0x020821DC
+ push {r4, lr}
+ add r4, r0, #0x0
+ add r0, r1, #0x0
+ bl FUN_020832E4
+ add r1, r4, r0
+ mov r0, #0x11
+ lsl r0, r0, #0x4
+ ldrb r0, [r1, r0]
+ pop {r4, pc}
+
+ thumb_func_start FUN_020821F0
+FUN_020821F0: ; 0x020821F0
+ push {r3, lr}
+ ldr r1, _02082210 ; =0x00000171
+ ldrb r1, [r0, r1]
+ cmp r1, #0x1
+ bne _020821FE
+ mov r0, #0x1
+ pop {r3, pc}
+_020821FE:
+ bl FUN_020832EC
+ cmp r0, #0x1
+ bne _0208220A
+ mov r0, #0x2
+ pop {r3, pc}
+_0208220A:
+ mov r0, #0x0
+ pop {r3, pc}
+ nop
+_02082210: .word 0x00000171
+
+ thumb_func_start FUN_02082214
+FUN_02082214: ; 0x02082214
+ push {r4-r5}
+ mov r4, #0x12
+ lsl r4, r4, #0x4
+ ldrb r5, [r0, r4]
+ strh r5, [r1, #0x0]
+ sub r1, r4, #0x1
+ ldrb r1, [r0, r1]
+ strh r1, [r2, #0x0]
+ add r1, r4, #0x1
+ ldrb r1, [r0, r1]
+ strh r1, [r3, #0x0]
+ ldr r1, _02082238 ; =0x00001998
+ ldrb r1, [r0, r1]
+ ldr r0, [sp, #0x8]
+ strh r1, [r0, #0x0]
+ pop {r4-r5}
+ bx lr
+ nop
+_02082238: .word 0x00001998
+
+ thumb_func_start FUN_0208223C
+FUN_0208223C: ; 0x0208223C
+ ldr r1, _02082244 ; =0x00000171
+ ldr r3, _02082248 ; =FUN_020833D4
+ ldrb r0, [r0, r1]
+ bx r3
+ .balign 4
+_02082244: .word 0x00000171
+_02082248: .word FUN_020833D4
+
+ thumb_func_start FUN_0208224C
+FUN_0208224C: ; 0x0208224C
+ ldr r3, _02082250 ; =FUN_02083404
+ bx r3
+ .balign 4
+_02082250: .word FUN_02083404
+
+ thumb_func_start FUN_02082254
+FUN_02082254: ; 0x02082254
+ push {r4, lr}
+ mov r1, #0x12
+ add r4, r0, #0x0
+ lsl r1, r1, #0x4
+ ldrb r0, [r4, r1]
+ sub r1, r1, #0x1
+ ldrb r1, [r4, r1]
+ bl FUN_0208341C
+ add r1, r0, #0x0
+ ldr r0, _02082280 ; =0x00001990
+ mov r2, #0x0
+ ldr r0, [r4, r0]
+ bl FUN_020671BC
+ cmp r0, #0x0
+ beq _0208227A
+ mov r0, #0x1
+ pop {r4, pc}
+_0208227A:
+ mov r0, #0x0
+ pop {r4, pc}
+ nop
+_02082280: .word 0x00001990
+
+ thumb_func_start FUN_02082284
+FUN_02082284: ; 0x02082284
+ push {r3-r5, lr}
+ add r4, r1, #0x0
+ ldr r1, _020822EC ; =0x0000011F
+ add r5, r2, #0x0
+ ldrb r2, [r0, r1]
+ cmp r2, #0x4
+ bhi _020822D0
+ add r2, r2, r2
+ add r2, pc
+ ldrh r2, [r2, #0x6]
+ lsl r2, r2, #0x10
+ asr r2, r2, #0x10
+ add pc, r2
+_0208229E: ; jump table (using 16-bit offset)
+ .short _020822A8 - _0208229E - 2; case 0
+ .short _020822B0 - _0208229E - 2; case 1
+ .short _020822B8 - _0208229E - 2; case 2
+ .short _020822C0 - _0208229E - 2; case 3
+ .short _020822C8 - _0208229E - 2; case 4
+_020822A8:
+ add r1, r1, #0x1
+ ldrb r0, [r0, r1]
+ add r0, #0x21
+ b _020822D6
+_020822B0:
+ add r1, r1, #0x1
+ ldrb r0, [r0, r1]
+ add r0, #0x25
+ b _020822D6
+_020822B8:
+ add r1, r1, #0x1
+ ldrb r0, [r0, r1]
+ add r0, #0x29
+ b _020822D6
+_020822C0:
+ add r1, r1, #0x1
+ ldrb r0, [r0, r1]
+ add r0, #0x2d
+ b _020822D6
+_020822C8:
+ add r1, r1, #0x1
+ ldrb r0, [r0, r1]
+ add r0, #0x31
+ b _020822D6
+_020822D0:
+ bl ErrorHandling
+ pop {r3-r5, pc}
+_020822D6:
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ mov r1, #0x3
+ bl FUN_0207FC5C
+ add r2, r0, #0x0
+ add r0, r4, #0x0
+ add r1, r5, #0x0
+ bl FUN_0200AD94
+ pop {r3-r5, pc}
+ .balign 4
+_020822EC: .word 0x0000011F
+
+ thumb_func_start FUN_020822F0
+FUN_020822F0: ; 0x020822F0
+ push {r3-r5, lr}
+ mov r4, #0x64
+ add r5, r0, #0x0
+ add r0, r4, #0x0
+ add r0, #0xbf
+ ldrb r1, [r5, r0]
+ mov r0, #0xc
+ mul r0, r1
+ add r1, r5, r0
+ add r0, r4, #0x0
+ add r0, #0xcc
+ ldrb r0, [r1, r0]
+ cmp r0, #0x0
+ beq _02082310
+ ldr r0, _0208243C ; =0x0000FFFF
+ pop {r3-r5, pc}
+_02082310:
+ add r0, r4, #0x0
+ add r0, #0xbb
+ ldrb r0, [r5, r0]
+ cmp r0, #0x4
+ bhi _02082414
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02082326: ; jump table (using 16-bit offset)
+ .short _02082330 - _02082326 - 2; case 0
+ .short _0208235E - _02082326 - 2; case 1
+ .short _0208238C - _02082326 - 2; case 2
+ .short _020823BA - _02082326 - 2; case 3
+ .short _020823E8 - _02082326 - 2; case 4
+_02082330:
+ add r0, r4, #0x0
+ add r0, #0xbc
+ ldrb r0, [r5, r0]
+ cmp r0, #0x3
+ bhi _02082414
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02082346: ; jump table (using 16-bit offset)
+ .short _0208234E - _02082346 - 2; case 0
+ .short _02082352 - _02082346 - 2; case 1
+ .short _02082356 - _02082346 - 2; case 2
+ .short _0208235A - _02082346 - 2; case 3
+_0208234E:
+ mov r4, #0x49
+ b _02082414
+_02082352:
+ mov r4, #0x4e
+ b _02082414
+_02082356:
+ mov r4, #0x53
+ b _02082414
+_0208235A:
+ mov r4, #0x58
+ b _02082414
+_0208235E:
+ add r0, r4, #0x0
+ add r0, #0xbc
+ ldrb r0, [r5, r0]
+ cmp r0, #0x3
+ bhi _02082414
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02082374: ; jump table (using 16-bit offset)
+ .short _0208237C - _02082374 - 2; case 0
+ .short _02082380 - _02082374 - 2; case 1
+ .short _02082384 - _02082374 - 2; case 2
+ .short _02082388 - _02082374 - 2; case 3
+_0208237C:
+ mov r4, #0x4a
+ b _02082414
+_02082380:
+ mov r4, #0x4f
+ b _02082414
+_02082384:
+ mov r4, #0x54
+ b _02082414
+_02082388:
+ mov r4, #0x59
+ b _02082414
+_0208238C:
+ add r0, r4, #0x0
+ add r0, #0xbc
+ ldrb r0, [r5, r0]
+ cmp r0, #0x3
+ bhi _02082414
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_020823A2: ; jump table (using 16-bit offset)
+ .short _020823AA - _020823A2 - 2; case 0
+ .short _020823AE - _020823A2 - 2; case 1
+ .short _020823B2 - _020823A2 - 2; case 2
+ .short _020823B6 - _020823A2 - 2; case 3
+_020823AA:
+ mov r4, #0x48
+ b _02082414
+_020823AE:
+ mov r4, #0x4d
+ b _02082414
+_020823B2:
+ mov r4, #0x52
+ b _02082414
+_020823B6:
+ mov r4, #0x57
+ b _02082414
+_020823BA:
+ add r0, r4, #0x0
+ add r0, #0xbc
+ ldrb r0, [r5, r0]
+ cmp r0, #0x3
+ bhi _02082414
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_020823D0: ; jump table (using 16-bit offset)
+ .short _020823D8 - _020823D0 - 2; case 0
+ .short _020823DC - _020823D0 - 2; case 1
+ .short _020823E0 - _020823D0 - 2; case 2
+ .short _020823E4 - _020823D0 - 2; case 3
+_020823D8:
+ mov r4, #0x4c
+ b _02082414
+_020823DC:
+ mov r4, #0x51
+ b _02082414
+_020823E0:
+ mov r4, #0x56
+ b _02082414
+_020823E4:
+ mov r4, #0x5b
+ b _02082414
+_020823E8:
+ add r0, r4, #0x0
+ add r0, #0xbc
+ ldrb r0, [r5, r0]
+ cmp r0, #0x3
+ bhi _02082414
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_020823FE: ; jump table (using 16-bit offset)
+ .short _02082406 - _020823FE - 2; case 0
+ .short _0208240A - _020823FE - 2; case 1
+ .short _0208240E - _020823FE - 2; case 2
+ .short _02082412 - _020823FE - 2; case 3
+_02082406:
+ mov r4, #0x4b
+ b _02082414
+_0208240A:
+ mov r4, #0x50
+ b _02082414
+_0208240E:
+ mov r4, #0x55
+ b _02082414
+_02082412:
+ mov r4, #0x5a
+_02082414:
+ cmp r4, #0x64
+ bne _0208241C
+ bl ErrorHandling
+_0208241C:
+ ldr r0, _02082440 ; =0x0000198C
+ ldr r0, [r5, r0]
+ bl FUN_02027E24
+ bl FUN_0202708C
+ add r1, r4, #0x0
+ mov r2, #0x1
+ bl FUN_020270D8
+ cmp r0, #0x0
+ bne _02082438
+ ldr r0, _0208243C ; =0x0000FFFF
+ pop {r3-r5, pc}
+_02082438:
+ add r0, r4, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+_0208243C: .word 0x0000FFFF
+_02082440: .word 0x0000198C
+
+ thumb_func_start FUN_02082444
+FUN_02082444: ; 0x02082444
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ ldr r0, _020824F0 ; =0x000019BC
+ add r6, r1, #0x0
+ ldr r0, [r5, r0]
+ cmp r0, #0x0
+ beq _02082456
+ bl ErrorHandling
+_02082456:
+ mov r0, #0x4
+ mov r1, #0x10
+ bl FUN_020169D8
+ mov r1, #0x0
+ mov r2, #0x10
+ add r4, r0, #0x0
+ blx MI_CpuFill8
+ add r0, r6, #0x0
+ bl FUN_020832E4
+ strb r0, [r4, #0xc]
+ ldrb r0, [r4, #0xc]
+ mov r1, #0x43
+ lsl r1, r1, #0x2
+ add r0, r5, r0
+ ldrb r2, [r0, r1]
+ mov r0, #0x1
+ and r0, r2
+ add r2, r1, #0x0
+ add r2, #0x65
+ ldrb r2, [r5, r2]
+ cmp r2, #0x1
+ bne _02082494
+ mov r1, #0x6
+ ldr r2, _020824F4 ; =0x020FBBAC
+ mul r1, r0
+ add r0, r2, r1
+ str r0, [r4, #0x4]
+ b _020824DC
+_02082494:
+ add r1, #0x14
+ ldrb r1, [r5, r1]
+ cmp r1, #0x3
+ bhi _020824D2
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #0x6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_020824A8: ; jump table (using 16-bit offset)
+ .short _020824B0 - _020824A8 - 2; case 0
+ .short _020824BC - _020824A8 - 2; case 1
+ .short _020824C6 - _020824A8 - 2; case 2
+ .short _020824D2 - _020824A8 - 2; case 3
+_020824B0:
+ lsl r1, r0, #0x1
+ ldr r2, _020824F8 ; =0x020FBB90
+ add r0, r0, r1
+ add r0, r2, r0
+ str r0, [r4, #0x4]
+ b _020824DC
+_020824BC:
+ ldr r1, _020824FC ; =0x020FBB98
+ lsl r0, r0, #0x2
+ add r0, r1, r0
+ str r0, [r4, #0x4]
+ b _020824DC
+_020824C6:
+ lsl r1, r0, #0x2
+ ldr r2, _02082500 ; =0x020FBBA0
+ add r0, r0, r1
+ add r0, r2, r0
+ str r0, [r4, #0x4]
+ b _020824DC
+_020824D2:
+ mov r1, #0x6
+ ldr r2, _020824F4 ; =0x020FBBAC
+ mul r1, r0
+ add r0, r2, r1
+ str r0, [r4, #0x4]
+_020824DC:
+ ldr r0, _02082504 ; =FUN_0208251C
+ add r1, r5, #0x0
+ mov r2, #0x64
+ bl FUN_0200CA44
+ str r0, [r4, #0x0]
+ ldr r0, _020824F0 ; =0x000019BC
+ str r4, [r5, r0]
+ pop {r4-r6, pc}
+ nop
+_020824F0: .word 0x000019BC
+_020824F4: .word 0x020FBBAC
+_020824F8: .word 0x020FBB90
+_020824FC: .word 0x020FBB98
+_02082500: .word 0x020FBBA0
+_02082504: .word FUN_0208251C
+
+ thumb_func_start FUN_02082508
+FUN_02082508: ; 0x02082508
+ ldr r1, _02082518 ; =0x000019BC
+ ldr r0, [r0, r1]
+ cmp r0, #0x0
+ bne _02082514
+ mov r0, #0x1
+ bx lr
+_02082514:
+ mov r0, #0x0
+ bx lr
+ .balign 4
+_02082518: .word 0x000019BC
+
+ thumb_func_start FUN_0208251C
+FUN_0208251C: ; 0x0208251C
+ push {r3-r6, lr}
+ sub sp, #0x4
+ add r6, r0, #0x0
+ ldr r0, _02082598 ; =0x000019BC
+ add r5, r1, #0x0
+ ldr r4, [r5, r0]
+ mov r0, #0x1
+ bl FUN_0200A344
+ cmp r0, #0x0
+ beq _02082594
+ ldrb r0, [r4, #0xb]
+ cmp r0, #0x0
+ bne _02082580
+ mov r0, #0x8
+ ldrsh r1, [r4, r0]
+ add r1, r1, #0x1
+ strh r1, [r4, #0x8]
+ ldrsh r2, [r4, r0]
+ ldrb r0, [r4, #0xa]
+ ldr r1, [r4, #0x4]
+ ldrb r0, [r1, r0]
+ cmp r2, r0
+ ble _02082594
+ mov r0, #0x1
+ str r0, [sp, #0x0]
+ mov r0, #0x6
+ mov r1, #0x0
+ mov r2, #0x4
+ mov r3, #0x3f
+ bl FUN_0200A208
+ ldr r0, _0208259C ; =0x000005F8
+ bl FUN_020054C8
+ ldrb r0, [r4, #0xa]
+ add r0, r0, #0x1
+ strb r0, [r4, #0xa]
+ mov r0, #0x0
+ strh r0, [r4, #0x8]
+ ldrb r0, [r4, #0xa]
+ ldr r1, [r4, #0x4]
+ ldrb r0, [r1, r0]
+ cmp r0, #0xff
+ bne _02082594
+ ldrb r0, [r4, #0xb]
+ add sp, #0x4
+ add r0, r0, #0x1
+ strb r0, [r4, #0xb]
+ pop {r3-r6, pc}
+_02082580:
+ ldr r0, _02082598 ; =0x000019BC
+ ldr r0, [r5, r0]
+ bl FUN_02016A18
+ ldr r0, _02082598 ; =0x000019BC
+ mov r1, #0x0
+ str r1, [r5, r0]
+ add r0, r6, #0x0
+ bl FUN_0200CAB4
+_02082594:
+ add sp, #0x4
+ pop {r3-r6, pc}
+ .balign 4
+_02082598: .word 0x000019BC
+_0208259C: .word 0x000005F8
+
+ thumb_func_start FUN_020825A0
+FUN_020825A0: ; 0x020825A0
+ push {r4-r7, lr}
+ sub sp, #0xc
+ add r5, r0, #0x0
+ mov r0, #0x13
+ str r2, [sp, #0x4]
+ ldr r6, [sp, #0x20]
+ ldr r7, [sp, #0x24]
+ str r1, [sp, #0x0]
+ str r3, [sp, #0x8]
+ mov r4, #0x0
+ add r2, r5, #0x0
+ lsl r0, r0, #0x4
+_020825B8:
+ ldrb r1, [r2, r0]
+ cmp r1, #0x0
+ beq _020825C6
+ add r4, r4, #0x1
+ add r2, #0xc
+ cmp r4, #0x4
+ blt _020825B8
+_020825C6:
+ add r0, r4, #0x0
+ bl FUN_020832DC
+ ldr r1, [sp, #0x0]
+ str r0, [r1, #0x0]
+ ldr r1, _02082628 ; =0x00000171
+ ldr r0, [sp, #0x4]
+ ldrb r2, [r5, r1]
+ sub r1, #0x4a
+ str r2, [r0, #0x0]
+ ldrb r0, [r5, r1]
+ cmp r4, r0
+ blt _020825E6
+ mov r1, #0x1
+ ldr r0, [sp, #0x8]
+ b _020825EA
+_020825E6:
+ ldr r0, [sp, #0x8]
+ mov r1, #0x0
+_020825EA:
+ str r1, [r0, #0x0]
+ mov r0, #0x0
+ str r0, [r6, #0x0]
+ str r0, [r7, #0x0]
+ ldr r0, _0208262C ; =0x00000121
+ ldrb r0, [r5, r0]
+ cmp r0, #0x8
+ bhi _02082624
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02082606: ; jump table (using 16-bit offset)
+ .short _02082624 - _02082606 - 2; case 0
+ .short _02082624 - _02082606 - 2; case 1
+ .short _02082624 - _02082606 - 2; case 2
+ .short _02082618 - _02082606 - 2; case 3
+ .short _02082620 - _02082606 - 2; case 4
+ .short _02082618 - _02082606 - 2; case 5
+ .short _02082620 - _02082606 - 2; case 6
+ .short _02082618 - _02082606 - 2; case 7
+ .short _02082620 - _02082606 - 2; case 8
+_02082618:
+ mov r0, #0x1
+ add sp, #0xc
+ str r0, [r6, #0x0]
+ pop {r4-r7, pc}
+_02082620:
+ mov r0, #0x1
+ str r0, [r7, #0x0]
+_02082624:
+ add sp, #0xc
+ pop {r4-r7, pc}
+ .balign 4
+_02082628: .word 0x00000171
+_0208262C: .word 0x00000121
+
+ thumb_func_start FUN_02082630
+FUN_02082630: ; 0x02082630
+ push {r4-r7, lr}
+ sub sp, #0xc
+ add r4, r0, #0x0
+ ldr r0, _02082840 ; =0x00000121
+ str r2, [sp, #0x4]
+ ldrb r0, [r4, r0]
+ add r6, r3, #0x0
+ mov r5, #0x0
+ cmp r0, #0x8
+ bhi _02082666
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02082650: ; jump table (using 16-bit offset)
+ .short _02082666 - _02082650 - 2; case 0
+ .short _02082666 - _02082650 - 2; case 1
+ .short _02082666 - _02082650 - 2; case 2
+ .short _02082662 - _02082650 - 2; case 3
+ .short _02082662 - _02082650 - 2; case 4
+ .short _02082662 - _02082650 - 2; case 5
+ .short _02082662 - _02082650 - 2; case 6
+ .short _02082662 - _02082650 - 2; case 7
+ .short _02082662 - _02082650 - 2; case 8
+_02082662:
+ add sp, #0xc
+ pop {r4-r7, pc}
+_02082666:
+ ldr r2, _02082844 ; =0x00000171
+ ldrb r0, [r4, r2]
+ cmp r0, #0x0
+ ldr r0, _02082848 ; =0x0000198C
+ beq _02082672
+ b _02082774
+_02082672:
+ ldr r0, [r4, r0]
+ bl FUN_020462AC
+ add r6, r0, #0x0
+ ldr r0, _02082840 ; =0x00000121
+ ldrb r1, [r4, r0]
+ cmp r1, #0x2
+ bne _020826AC
+ sub r0, r0, #0x1
+ ldrb r0, [r4, r0]
+ cmp r0, #0x3
+ blo _020826AC
+ add r0, r4, #0x0
+ bl FUN_0208217C
+ cmp r0, #0x0
+ bne _020826AC
+ ldr r1, _0208284C ; =0x0000011F
+ add r0, r6, #0x0
+ ldrb r1, [r4, r1]
+ bl FUN_0205EE60
+ cmp r0, #0x0
+ bne _020826AC
+ ldr r1, _0208284C ; =0x0000011F
+ add r0, r6, #0x0
+ ldrb r1, [r4, r1]
+ bl FUN_0205EE08
+_020826AC:
+ add r0, r4, #0x0
+ bl FUN_0208217C
+ cmp r0, #0x0
+ bne _020826EA
+ mov r1, #0x1
+ add r0, sp, #0x8
+ strb r1, [r0, #0x0]
+ mov r1, #0x12
+ lsl r1, r1, #0x4
+ ldrb r0, [r4, r1]
+ sub r1, r1, #0x1
+ ldrb r1, [r4, r1]
+ bl FUN_0208341C
+ add r6, r0, #0x0
+ ldr r0, _02082850 ; =0x00001990
+ add r1, r6, #0x0
+ ldr r0, [r4, r0]
+ mov r2, #0x0
+ bl FUN_020671BC
+ cmp r0, #0x0
+ bne _020826DE
+ mov r5, #0x1
+_020826DE:
+ ldr r0, _02082850 ; =0x00001990
+ add r1, r6, #0x0
+ ldr r0, [r4, r0]
+ add r2, sp, #0x8
+ bl FUN_02067830
+_020826EA:
+ ldr r0, _02082848 ; =0x0000198C
+ ldr r0, [r4, r0]
+ bl FUN_02022504
+ ldr r3, _02082854 ; =0x00000123
+ mov r1, #0xc
+ ldrb r2, [r4, r3]
+ mul r1, r2
+ add r2, r4, r1
+ add r1, r3, #0x0
+ add r1, #0xd
+ ldrb r1, [r2, r1]
+ sub r2, r3, #0x4
+ sub r3, r3, #0x3
+ add r1, r1, #0x1
+ str r1, [sp, #0x0]
+ ldr r1, _02082850 ; =0x00001990
+ ldrb r2, [r4, r2]
+ ldrb r3, [r4, r3]
+ ldr r1, [r4, r1]
+ bl FUN_02060F10
+ ldr r0, _02082848 ; =0x0000198C
+ ldr r0, [r4, r0]
+ bl FUN_02029FC8
+ mov r1, #0x3f
+ add r6, r0, #0x0
+ bl FUN_0202A0E8
+ add r0, r4, #0x0
+ bl FUN_0208217C
+ cmp r0, #0x0
+ bne _02082740
+ add r0, r6, #0x0
+ mov r1, #0x41
+ bl FUN_0202A0E8
+ add r0, r6, #0x0
+ mov r1, #0xd
+ bl FUN_0202A170
+_02082740:
+ cmp r5, #0x1
+ bne _0208274C
+ add r0, r6, #0x0
+ mov r1, #0x43
+ bl FUN_0202A0E8
+_0208274C:
+ ldr r0, _02082848 ; =0x0000198C
+ ldr r0, [r4, r0]
+ bl FUN_02024DA0
+ add r7, r0, #0x0
+ ldr r0, _02082858 ; =0x00000127
+ ldrb r6, [r4, r0]
+ cmp r6, #0x4
+ bge _020827E8
+ lsl r0, r6, #0x2
+ add r5, r4, r0
+_02082762:
+ ldr r1, [r5, #0x0]
+ add r0, r7, #0x0
+ bl FUN_0202498C
+ add r6, r6, #0x1
+ add r5, r5, #0x4
+ cmp r6, #0x4
+ blt _02082762
+ b _020827E8
+_02082774:
+ add r3, r2, #0x0
+ sub r3, #0x4e
+ ldrb r5, [r4, r3]
+ add r1, r2, #0x0
+ mov r3, #0xc
+ mul r3, r5
+ sub r1, #0x52
+ add r3, r4, r3
+ sub r2, #0x41
+ ldrb r1, [r4, r1]
+ ldrb r2, [r3, r2]
+ ldr r0, [r4, r0]
+ bl FUN_0202C108
+ ldr r0, _02082848 ; =0x0000198C
+ ldr r0, [r4, r0]
+ bl FUN_02029FC8
+ mov r1, #0x40
+ add r5, r0, #0x0
+ bl FUN_0202A0E8
+ add r0, r4, #0x0
+ bl FUN_0208217C
+ cmp r0, #0x0
+ bne _020827BA
+ add r0, r5, #0x0
+ mov r1, #0x42
+ bl FUN_0202A0E8
+ add r0, r5, #0x0
+ mov r1, #0x13
+ bl FUN_0202A170
+_020827BA:
+ ldr r1, _02082854 ; =0x00000123
+ mov r0, #0xc
+ ldrb r2, [r4, r1]
+ add r1, #0xd
+ mul r0, r2
+ add r0, r4, r0
+ ldrb r0, [r0, r1]
+ mov r1, #0xb
+ add r0, r0, #0x1
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_02029500
+ add r5, r0, #0x0
+ ldr r0, _02082848 ; =0x0000198C
+ ldr r0, [r4, r0]
+ bl FUN_020289A4
+ add r0, r6, #0x0
+ add r1, r5, #0x0
+ mov r2, #0x4
+ bl FUN_02028AD4
+_020827E8:
+ add r0, r4, #0x0
+ bl FUN_0208217C
+ cmp r0, #0x0
+ bne _02082820
+ ldr r0, _02082848 ; =0x0000198C
+ ldr r0, [r4, r0]
+ bl FUN_02027E24
+ ldr r1, _0208284C ; =0x0000011F
+ ldrb r1, [r4, r1]
+ bl FUN_02027044
+ add r5, r0, #0x0
+ bl FUN_02027740
+ ldr r1, _02082854 ; =0x00000123
+ add r0, r5, #0x0
+ ldrb r1, [r4, r1]
+ lsl r1, r1, #0x2
+ add r1, r4, r1
+ add r1, #0xf8
+ ldr r1, [r1, #0x0]
+ bl FUN_020278DC
+ add r0, r5, #0x0
+ bl FUN_02027710
+_02082820:
+ add r0, r4, #0x0
+ bl FUN_0208217C
+ cmp r0, #0x0
+ bne _0208283A
+ ldr r0, _02082850 ; =0x00001990
+ ldr r2, [sp, #0x4]
+ ldr r0, [r4, r0]
+ lsl r2, r2, #0x10
+ mov r1, #0x9
+ lsr r2, r2, #0x10
+ bl FUN_020688E8
+_0208283A:
+ add sp, #0xc
+ pop {r4-r7, pc}
+ nop
+_02082840: .word 0x00000121
+_02082844: .word 0x00000171
+_02082848: .word 0x0000198C
+_0208284C: .word 0x0000011F
+_02082850: .word 0x00001990
+_02082854: .word 0x00000123
+_02082858: .word 0x00000127
+
+ thumb_func_start FUN_0208285C
+FUN_0208285C: ; 0x0208285C
+ push {r4, lr}
+ bl FUN_020126D8
+ add r4, r0, #0x0
+ bl FUN_0201B9D4
+ add r0, #0xa
+ mul r0, r4
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ bl FUN_0201B9E0
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02082878
+FUN_02082878: ; 0x02082878
+ ldr r3, _0208287C ; =FUN_0201B9EC
+ bx r3
+ .balign 4
+_0208287C: .word FUN_0201B9EC
+
+ thumb_func_start FUN_02082880
+FUN_02082880: ; 0x02082880
+ push {r4, lr}
+ add r4, r1, #0x0
+ bl FUN_0201BA10
+ str r0, [r4, #0x0]
+ lsr r0, r0, #0x10
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02082894
+FUN_02082894: ; 0x02082894
+ push {r4-r5}
+ mov r5, #0x42
+ add r3, r0, r1
+ lsl r5, r5, #0x2
+ ldrb r4, [r3, r5]
+ lsl r1, r1, #0x1
+ add r0, r0, r1
+ strb r4, [r2, #0x0]
+ add r4, r5, #0x4
+ ldrb r4, [r3, r4]
+ strb r4, [r2, #0x1]
+ add r4, r5, #0x0
+ add r4, #0x8
+ ldrb r3, [r3, r4]
+ add r5, #0xc
+ strb r3, [r2, #0x2]
+ ldrh r0, [r0, r5]
+ strh r0, [r2, #0x4]
+ pop {r4-r5}
+ bx lr
+
+ thumb_func_start FUN_020828BC
+FUN_020828BC: ; 0x020828BC
+ ldr r2, _020828E0 ; =0x00000171
+ ldrb r1, [r0, r2]
+ cmp r1, #0x0
+ beq _020828D6
+ cmp r1, #0x1
+ bne _020828DA
+ add r1, r2, #0x0
+ sub r1, #0x55
+ sub r2, #0x4e
+ ldrb r1, [r0, r1]
+ ldrb r0, [r0, r2]
+ cmp r1, r0
+ bne _020828DA
+_020828D6:
+ mov r0, #0x1
+ bx lr
+_020828DA:
+ mov r0, #0x0
+ bx lr
+ nop
+_020828E0: .word 0x00000171
+
+ thumb_func_start FUN_020828E4
+FUN_020828E4: ; 0x020828E4
+ push {r3-r7, lr}
+ sub sp, #0x58
+ str r0, [sp, #0x4]
+ ldr r0, [sp, #0x70]
+ mov r6, #0x0
+ str r0, [sp, #0x70]
+ ldr r0, [sp, #0x74]
+ add r5, r1, #0x0
+ add r4, r3, #0x0
+ str r2, [sp, #0x8]
+ str r6, [sp, #0x20]
+ str r6, [sp, #0x18]
+ str r6, [sp, #0x1c]
+ cmp r0, #0x8
+ bhi _0208292A
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0208290E: ; jump table (using 16-bit offset)
+ .short _0208292A - _0208290E - 2; case 0
+ .short _0208292A - _0208290E - 2; case 1
+ .short _0208292A - _0208290E - 2; case 2
+ .short _02082920 - _0208290E - 2; case 3
+ .short _02082926 - _0208290E - 2; case 4
+ .short _02082920 - _0208290E - 2; case 5
+ .short _02082926 - _0208290E - 2; case 6
+ .short _02082920 - _0208290E - 2; case 7
+ .short _02082926 - _0208290E - 2; case 8
+_02082920:
+ mov r0, #0x1
+ str r0, [sp, #0x18]
+ b _0208292A
+_02082926:
+ mov r0, #0x1
+ str r0, [sp, #0x1c]
+_0208292A:
+ mov r0, #0x1
+ mov r1, #0x0
+ str r0, [sp, #0x0]
+ mov r0, #0x5a
+ add r2, r1, #0x0
+ add r3, r5, #0x0
+ bl FUN_02006C98
+ str r0, [sp, #0x14]
+ mov r0, #0x5a
+ mov r1, #0x0
+ bl LoadFromNARC_7
+ mov r1, #0x30
+ blx _u32_div_f
+ str r0, [sp, #0x24]
+ ldr r1, [sp, #0x24]
+ add r0, r5, #0x0
+ add r1, r1, #0x1
+ bl FUN_020169D8
+ add r5, r0, #0x0
+ ldr r0, [sp, #0x78]
+ cmp r0, #0x1
+ bne _02082968
+ ldr r0, [sp, #0x7c]
+ cmp r0, #0x1
+ bne _02082968
+ mov r0, #0x1
+ str r0, [sp, #0x20]
+_02082968:
+ ldr r0, [sp, #0x24]
+ mov r2, #0x0
+ cmp r0, #0x0
+ ble _02082A1A
+ ldr r3, [sp, #0x14]
+_02082972:
+ ldrh r7, [r3, #0x20]
+ lsl r0, r7, #0x1d
+ lsr r1, r0, #0x1d
+ ldr r0, [sp, #0x70]
+ cmp r0, r1
+ bne _02082A10
+ ldr r0, [sp, #0x20]
+ cmp r0, #0x1
+ bne _0208298E
+ lsl r0, r7, #0x14
+ lsr r0, r0, #0x1e
+ cmp r0, #0x1
+ beq _02082A10
+ b _0208299A
+_0208298E:
+ lsl r0, r7, #0x14
+ lsr r0, r0, #0x1e
+ cmp r0, #0x2
+ beq _02082A10
+ cmp r0, #0x3
+ beq _02082A10
+_0208299A:
+ ldr r0, [sp, #0x18]
+ cmp r0, #0x1
+ bne _020829AA
+ ldrh r0, [r3, #0x20]
+ lsl r0, r0, #0x16
+ lsr r0, r0, #0x1f
+ beq _02082A10
+ b _020829CA
+_020829AA:
+ ldr r0, [sp, #0x1c]
+ cmp r0, #0x1
+ ldrh r0, [r3, #0x20]
+ bne _020829BA
+ lsl r0, r0, #0x17
+ lsr r0, r0, #0x1f
+ beq _02082A10
+ b _020829CA
+_020829BA:
+ lsl r1, r0, #0x16
+ lsr r1, r1, #0x1f
+ cmp r1, #0x1
+ beq _02082A10
+ lsl r0, r0, #0x17
+ lsr r0, r0, #0x1f
+ cmp r0, #0x1
+ beq _02082A10
+_020829CA:
+ cmp r4, #0x0
+ bne _020829D6
+ ldrh r0, [r3, #0x20]
+ lsl r0, r0, #0x1c
+ lsr r0, r0, #0x1f
+ bne _02082A06
+_020829D6:
+ cmp r4, #0x1
+ bne _020829E2
+ ldrh r0, [r3, #0x20]
+ lsl r0, r0, #0x1b
+ lsr r0, r0, #0x1f
+ bne _02082A06
+_020829E2:
+ cmp r4, #0x2
+ bne _020829EE
+ ldrh r0, [r3, #0x20]
+ lsl r0, r0, #0x1a
+ lsr r0, r0, #0x1f
+ bne _02082A06
+_020829EE:
+ cmp r4, #0x3
+ bne _020829FA
+ ldrh r0, [r3, #0x20]
+ lsl r0, r0, #0x19
+ lsr r0, r0, #0x1f
+ bne _02082A06
+_020829FA:
+ cmp r4, #0x4
+ bne _02082A10
+ ldrh r0, [r3, #0x20]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x1f
+ beq _02082A10
+_02082A06:
+ add r1, r6, #0x1
+ add r0, r6, #0x0
+ lsl r1, r1, #0x18
+ lsr r6, r1, #0x18
+ strb r2, [r5, r0]
+_02082A10:
+ ldr r0, [sp, #0x24]
+ add r2, r2, #0x1
+ add r3, #0x30
+ cmp r2, r0
+ blt _02082972
+_02082A1A:
+ mov r0, #0xff
+ strb r0, [r5, r6]
+ ldr r0, [sp, #0x1c]
+ cmp r0, #0x0
+ beq _02082A26
+ b _02082B4E
+_02082A26:
+ ldr r0, [sp, #0x8]
+ cmp r6, r0
+ bge _02082A30
+ bl ErrorHandling
+_02082A30:
+ mov r0, #0x0
+ str r0, [sp, #0x10]
+ cmp r6, #0x0
+ ble _02082A5A
+ mov r2, #0x30
+_02082A3A:
+ ldrb r1, [r5, r0]
+ add r3, r1, #0x0
+ ldr r1, [sp, #0x14]
+ mul r3, r2
+ add r1, r1, r3
+ ldrh r1, [r1, #0x20]
+ lsl r1, r1, #0x14
+ lsr r1, r1, #0x1e
+ cmp r1, #0x3
+ bne _02082A54
+ ldr r1, [sp, #0x10]
+ add r1, r1, #0x1
+ str r1, [sp, #0x10]
+_02082A54:
+ add r0, r0, #0x1
+ cmp r0, r6
+ blt _02082A3A
+_02082A5A:
+ ldr r0, [sp, #0x10]
+ cmp r0, #0x0
+ ble _02082AA2
+ ldr r0, [sp, #0x4]
+ bl FUN_02082878
+ ldr r1, [sp, #0x10]
+ blx _s32_div_f
+ mov r3, #0x0
+ cmp r6, #0x0
+ ble _02082AA2
+ mov r0, #0x30
+_02082A74:
+ ldrb r4, [r5, r3]
+ add r2, r4, #0x0
+ ldr r4, [sp, #0x14]
+ mul r2, r0
+ add r2, r4, r2
+ ldrh r4, [r2, #0x20]
+ lsl r4, r4, #0x14
+ lsr r4, r4, #0x1e
+ cmp r4, #0x3
+ bne _02082A9C
+ cmp r1, #0x0
+ bne _02082A9A
+ add r4, sp, #0x28
+ mov r3, #0x6
+_02082A90:
+ ldmia r2!, {r0-r1}
+ stmia r4!, {r0-r1}
+ sub r3, r3, #0x1
+ bne _02082A90
+ b _02082AA2
+_02082A9A:
+ sub r1, r1, #0x1
+_02082A9C:
+ add r3, r3, #0x1
+ cmp r3, r6
+ blt _02082A74
+_02082AA2:
+ ldr r0, [sp, #0x8]
+ mov r1, #0x4
+ sub r4, r1, r0
+ add r0, r4, #0x0
+ str r4, [sp, #0xc]
+ cmp r0, #0x4
+ bge _02082B16
+_02082AB0:
+ ldr r0, [sp, #0x4]
+ bl FUN_02082878
+ add r1, r6, #0x0
+ blx _s32_div_f
+ lsl r0, r1, #0x10
+ lsr r2, r0, #0x10
+ ldrb r3, [r5, r2]
+ mov r0, #0x30
+ add r1, r3, #0x0
+ ldr r3, [sp, #0x14]
+ mul r1, r0
+ add r7, r3, r1
+ ldrh r1, [r7, #0x20]
+ lsl r1, r1, #0x14
+ lsr r1, r1, #0x1e
+ cmp r1, #0x3
+ bne _02082ADA
+ sub r4, r4, #0x1
+ b _02082B10
+_02082ADA:
+ add r1, r4, #0x0
+ mul r1, r0
+ ldr r0, [sp, #0x4]
+ add r3, r0, r1
+ mov r0, #0x6
+ add r3, #0x10
+ mov r12, r0
+_02082AE8:
+ ldmia r7!, {r0-r1}
+ stmia r3!, {r0-r1}
+ mov r0, r12
+ sub r0, r0, #0x1
+ mov r12, r0
+ bne _02082AE8
+ ldrb r1, [r5, r2]
+ add r0, r5, r2
+ cmp r1, #0xff
+ beq _02082B0A
+_02082AFC:
+ ldrb r1, [r0, #0x1]
+ add r2, r2, #0x1
+ strb r1, [r0, #0x0]
+ ldrb r1, [r5, r2]
+ add r0, r5, r2
+ cmp r1, #0xff
+ bne _02082AFC
+_02082B0A:
+ sub r0, r6, #0x1
+ lsl r0, r0, #0x18
+ lsr r6, r0, #0x18
+_02082B10:
+ add r4, r4, #0x1
+ cmp r4, #0x4
+ blt _02082AB0
+_02082B16:
+ ldr r0, [sp, #0x10]
+ cmp r0, #0x0
+ ble _02082B7E
+ ldr r0, [sp, #0xc]
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+ ldr r0, [sp, #0x4]
+ bl FUN_02082878
+ ldr r1, [sp, #0x8]
+ blx _s32_div_f
+ add r0, r4, r1
+ lsl r0, r0, #0x10
+ lsr r2, r0, #0x10
+ add r1, r2, #0x0
+ mov r0, #0x30
+ mul r1, r0
+ ldr r0, [sp, #0x4]
+ add r4, sp, #0x28
+ add r3, r0, r1
+ add r3, #0x10
+ mov r2, #0x6
+_02082B44:
+ ldmia r4!, {r0-r1}
+ stmia r3!, {r0-r1}
+ sub r2, r2, #0x1
+ bne _02082B44
+ b _02082B7E
+_02082B4E:
+ cmp r6, #0x4
+ bhs _02082B56
+ bl ErrorHandling
+_02082B56:
+ mov r6, #0x0
+ mov r7, #0x30
+_02082B5A:
+ ldrb r0, [r5, r6]
+ ldr r3, [sp, #0x4]
+ mov r2, #0x6
+ add r1, r0, #0x0
+ ldr r0, [sp, #0x14]
+ mul r1, r7
+ add r4, r0, r1
+ add r3, #0x10
+_02082B6A:
+ ldmia r4!, {r0-r1}
+ stmia r3!, {r0-r1}
+ sub r2, r2, #0x1
+ bne _02082B6A
+ ldr r0, [sp, #0x4]
+ add r6, r6, #0x1
+ add r0, #0x30
+ str r0, [sp, #0x4]
+ cmp r6, #0x4
+ blt _02082B5A
+_02082B7E:
+ add r0, r5, #0x0
+ bl FUN_02016A18
+ ldr r0, [sp, #0x14]
+ bl FUN_02016A18
+ add sp, #0x58
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_02082B90
+FUN_02082B90: ; 0x02082B90
+ push {r3-r7, lr}
+ sub sp, #0x18
+ str r0, [sp, #0x8]
+ mov r0, #0x1
+ add r3, r1, #0x0
+ str r0, [sp, #0x0]
+ mov r0, #0x5a
+ mov r1, #0x2
+ mov r2, #0x0
+ bl FUN_02006C98
+ str r0, [sp, #0x14]
+ ldr r1, _02082D10 ; =0x00000121
+ ldr r0, [sp, #0x8]
+ ldrb r0, [r0, r1]
+ cmp r0, #0x4
+ beq _02082BBA
+ cmp r0, #0x6
+ beq _02082BBA
+ cmp r0, #0x8
+ bne _02082BC0
+_02082BBA:
+ mov r0, #0x0
+ str r0, [sp, #0xc]
+ b _02082BC8
+_02082BC0:
+ ldr r0, [sp, #0x8]
+ add r1, r1, #0x6
+ ldrb r0, [r0, r1]
+ str r0, [sp, #0xc]
+_02082BC8:
+ ldr r0, [sp, #0xc]
+ cmp r0, #0x4
+ blt _02082BD0
+ b _02082D06
+_02082BD0:
+ mov r1, #0x30
+ mul r1, r0
+ ldr r0, [sp, #0x8]
+ add r7, r0, r1
+ ldr r0, [sp, #0xc]
+ lsl r1, r0, #0x2
+ ldr r0, [sp, #0x8]
+ add r6, r0, r1
+_02082BE0:
+ ldr r1, _02082D14 ; =0x00000122
+ ldr r0, [sp, #0x8]
+ ldrb r0, [r0, r1]
+ cmp r0, #0xb
+ bhi _02082C6E
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02082BF6: ; jump table (using 16-bit offset)
+ .short _02082C0E - _02082BF6 - 2; case 0
+ .short _02082C16 - _02082BF6 - 2; case 1
+ .short _02082C1E - _02082BF6 - 2; case 2
+ .short _02082C26 - _02082BF6 - 2; case 3
+ .short _02082C2E - _02082BF6 - 2; case 4
+ .short _02082C36 - _02082BF6 - 2; case 5
+ .short _02082C3E - _02082BF6 - 2; case 6
+ .short _02082C46 - _02082BF6 - 2; case 7
+ .short _02082C4E - _02082BF6 - 2; case 8
+ .short _02082C56 - _02082BF6 - 2; case 9
+ .short _02082C5E - _02082BF6 - 2; case 10
+ .short _02082C66 - _02082BF6 - 2; case 11
+_02082C0E:
+ add r0, r7, #0x0
+ add r0, #0x32
+ ldrb r2, [r0, #0x0]
+ b _02082C74
+_02082C16:
+ add r0, r7, #0x0
+ add r0, #0x33
+ ldrb r2, [r0, #0x0]
+ b _02082C74
+_02082C1E:
+ add r0, r7, #0x0
+ add r0, #0x34
+ ldrb r2, [r0, #0x0]
+ b _02082C74
+_02082C26:
+ add r0, r7, #0x0
+ add r0, #0x35
+ ldrb r2, [r0, #0x0]
+ b _02082C74
+_02082C2E:
+ add r0, r7, #0x0
+ add r0, #0x36
+ ldrb r2, [r0, #0x0]
+ b _02082C74
+_02082C36:
+ add r0, r7, #0x0
+ add r0, #0x37
+ ldrb r2, [r0, #0x0]
+ b _02082C74
+_02082C3E:
+ add r0, r7, #0x0
+ add r0, #0x38
+ ldrb r2, [r0, #0x0]
+ b _02082C74
+_02082C46:
+ add r0, r7, #0x0
+ add r0, #0x39
+ ldrb r2, [r0, #0x0]
+ b _02082C74
+_02082C4E:
+ add r0, r7, #0x0
+ add r0, #0x3a
+ ldrb r2, [r0, #0x0]
+ b _02082C74
+_02082C56:
+ add r0, r7, #0x0
+ add r0, #0x3b
+ ldrb r2, [r0, #0x0]
+ b _02082C74
+_02082C5E:
+ add r0, r7, #0x0
+ add r0, #0x3c
+ ldrb r2, [r0, #0x0]
+ b _02082C74
+_02082C66:
+ add r0, r7, #0x0
+ add r0, #0x3d
+ ldrb r2, [r0, #0x0]
+ b _02082C74
+_02082C6E:
+ bl ErrorHandling
+ mov r2, #0x0
+_02082C74:
+ mov r0, #0x54
+ add r1, r2, #0x0
+ mul r1, r0
+ ldr r0, [sp, #0x14]
+ add r0, r0, r1
+ str r0, [sp, #0x10]
+ add r0, r6, #0x0
+ add r0, #0xf8
+ ldr r0, [r0, #0x0]
+ bl FUN_02027740
+ add r0, r6, #0x0
+ add r0, #0xf8
+ ldr r2, [sp, #0x10]
+ mov r3, #0x51
+ ldrsb r2, [r2, r3]
+ ldr r0, [r0, #0x0]
+ ldr r1, [r6, #0x0]
+ bl FUN_02027914
+ ldr r0, [sp, #0x10]
+ mov r5, #0x0
+ add r0, #0x50
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x0
+ ble _02082CD2
+ ldr r4, [sp, #0x10]
+_02082CAA:
+ ldrb r0, [r4, #0x2]
+ add r1, r5, #0x0
+ str r0, [sp, #0x0]
+ mov r0, #0x3
+ ldrsb r0, [r4, r0]
+ str r0, [sp, #0x4]
+ add r0, r6, #0x0
+ add r0, #0xf8
+ ldrb r2, [r4, #0x0]
+ ldrb r3, [r4, #0x1]
+ ldr r0, [r0, #0x0]
+ bl FUN_02027964
+ ldr r0, [sp, #0x10]
+ add r5, r5, #0x1
+ add r0, #0x50
+ ldrb r0, [r0, #0x0]
+ add r4, r4, #0x4
+ cmp r5, r0
+ blt _02082CAA
+_02082CD2:
+ ldr r1, [sp, #0x10]
+ add r0, r6, #0x0
+ add r1, #0x52
+ add r0, #0xf8
+ str r1, [sp, #0x10]
+ ldrb r1, [r1, #0x0]
+ ldr r0, [r0, #0x0]
+ bl FUN_0202787C
+ mov r2, #0x12
+ add r0, r6, #0x0
+ add r0, #0xf8
+ ldr r1, [sp, #0x8]
+ lsl r2, r2, #0x4
+ ldrb r1, [r1, r2]
+ ldr r0, [r0, #0x0]
+ bl FUN_020278AC
+ ldr r0, [sp, #0xc]
+ add r7, #0x30
+ add r0, r0, #0x1
+ add r6, r6, #0x4
+ str r0, [sp, #0xc]
+ cmp r0, #0x4
+ bge _02082D06
+ b _02082BE0
+_02082D06:
+ ldr r0, [sp, #0x14]
+ bl FUN_02016A18
+ add sp, #0x18
+ pop {r3-r7, pc}
+ .balign 4
+_02082D10: .word 0x00000121
+_02082D14: .word 0x00000122
+
+ thumb_func_start FUN_02082D18
+FUN_02082D18: ; 0x02082D18
+ push {r3-r7, lr}
+ add r6, r0, #0x0
+ mov r7, #0x12
+ mov r4, #0x0
+ add r5, r6, #0x0
+ lsl r7, r7, #0x4
+_02082D24:
+ add r0, r5, #0x0
+ add r0, #0xf8
+ ldr r0, [r0, #0x0]
+ bl FUN_02027740
+ add r0, r5, #0x0
+ add r0, #0xf8
+ mov r2, #0x0
+ ldr r0, [r0, #0x0]
+ ldr r1, [r5, #0x0]
+ mvn r2, r2
+ bl FUN_02027914
+ add r0, r5, #0x0
+ add r0, #0xf8
+ ldr r0, [r0, #0x0]
+ mov r1, #0x0
+ bl FUN_0202787C
+ add r0, r5, #0x0
+ add r0, #0xf8
+ ldrb r1, [r6, r7]
+ ldr r0, [r0, #0x0]
+ bl FUN_020278AC
+ add r4, r4, #0x1
+ add r5, r5, #0x4
+ cmp r4, #0x4
+ blt _02082D24
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_02082D60
+FUN_02082D60: ; 0x02082D60
+ push {r3-r7, lr}
+ sub sp, #0x20
+ add r7, r0, #0x0
+ add r6, r1, #0x0
+ ldrh r1, [r7, #0x20]
+ str r2, [sp, #0x10]
+ ldrh r0, [r7, #0x14]
+ lsl r1, r1, #0x12
+ lsr r1, r1, #0x1e
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ mov r2, #0x0
+ bl FUN_02066E74
+ mov r1, #0x1
+ str r1, [sp, #0x0]
+ str r0, [sp, #0x4]
+ mov r0, #0x2
+ str r0, [sp, #0x8]
+ ldr r0, _02082E60 ; =0x0F0F0F0F
+ mov r2, #0xa
+ str r0, [sp, #0xc]
+ ldrh r1, [r7, #0x14]
+ add r0, r6, #0x0
+ mov r3, #0x20
+ bl FUN_02066ACC
+ mov r4, #0x0
+ add r5, r7, #0x0
+_02082D9A:
+ ldrh r1, [r5, #0xc]
+ add r0, sp, #0x18
+ add r2, sp, #0x1c
+ strh r1, [r0, #0x6]
+ add r1, r4, #0x0
+ add r0, r6, #0x0
+ add r1, #0x36
+ add r2, #0x2
+ bl FUN_02067830
+ add r4, r4, #0x1
+ add r5, r5, #0x2
+ cmp r4, #0x4
+ blt _02082D9A
+ ldr r3, [sp, #0x10]
+ mov r0, #0x1
+ mov r1, #0x1a
+ mov r2, #0xc0
+ bl FUN_0200A86C
+ ldrh r1, [r7, #0x16]
+ add r4, r0, #0x0
+ bl FUN_0200A914
+ add r5, r0, #0x0
+ ldrh r1, [r7, #0x18]
+ add r0, r4, #0x0
+ bl FUN_0200A914
+ str r0, [sp, #0x14]
+ add r0, r6, #0x0
+ mov r1, #0x76
+ add r2, r5, #0x0
+ bl FUN_02067830
+ ldr r2, [sp, #0x14]
+ add r0, r6, #0x0
+ mov r1, #0x90
+ bl FUN_02067830
+ add r0, r5, #0x0
+ bl FUN_02021A20
+ ldr r0, [sp, #0x14]
+ bl FUN_02021A20
+ add r0, r4, #0x0
+ bl FUN_0200A8B8
+ add r2, sp, #0x1c
+ ldrb r1, [r7, #0x1a]
+ add r0, sp, #0x18
+ add r2, #0x1
+ strb r1, [r0, #0x5]
+ ldrb r1, [r7, #0x1b]
+ strb r1, [r0, #0x4]
+ ldrb r1, [r7, #0x1c]
+ strb r1, [r0, #0x3]
+ ldrb r1, [r7, #0x1d]
+ strb r1, [r0, #0x2]
+ ldrb r1, [r7, #0x1e]
+ strb r1, [r0, #0x1]
+ ldrb r1, [r7, #0x1f]
+ strb r1, [r0, #0x0]
+ add r0, r6, #0x0
+ mov r1, #0x13
+ bl FUN_02067830
+ add r0, r6, #0x0
+ mov r1, #0x14
+ add r2, sp, #0x1c
+ bl FUN_02067830
+ add r2, sp, #0x18
+ add r0, r6, #0x0
+ mov r1, #0x15
+ add r2, #0x3
+ bl FUN_02067830
+ add r2, sp, #0x18
+ add r0, r6, #0x0
+ mov r1, #0x16
+ add r2, #0x2
+ bl FUN_02067830
+ add r2, sp, #0x18
+ add r0, r6, #0x0
+ mov r1, #0x17
+ add r2, #0x1
+ bl FUN_02067830
+ add r0, r6, #0x0
+ mov r1, #0x18
+ add r2, sp, #0x18
+ bl FUN_02067830
+ add sp, #0x20
+ pop {r3-r7, pc}
+ nop
+_02082E60: .word 0x0F0F0F0F
+
+ thumb_func_start FUN_02082E64
+FUN_02082E64: ; 0x02082E64
+ push {r4-r7, lr}
+ sub sp, #0x24
+ add r6, r3, #0x0
+ add r5, r2, #0x0
+ lsl r2, r6, #0x18
+ str r0, [sp, #0x10]
+ add r7, r1, #0x0
+ add r0, sp, #0x14
+ add r1, r5, #0x0
+ lsr r2, r2, #0x18
+ ldr r4, [sp, #0x38]
+ bl FUN_02068B68
+ lsl r1, r6, #0x18
+ add r0, r5, #0x0
+ lsr r1, r1, #0x18
+ bl FUN_02068E14
+ add r5, r0, #0x0
+ cmp r4, #0x0
+ beq _02082EB0
+ ldr r0, [r4, #0x0]
+ cmp r0, #0x0
+ bne _02082E98
+ bl ErrorHandling
+_02082E98:
+ add r1, sp, #0x14
+ ldrh r0, [r1, #0x0]
+ ldrh r1, [r1, #0x2]
+ ldr r2, [sp, #0x3c]
+ ldr r3, [r4, #0x0]
+ bl FUN_02012420
+ add r0, sp, #0x14
+ ldrh r1, [r0, #0x4]
+ str r1, [r4, #0x8]
+ ldrh r0, [r0, #0x0]
+ str r0, [r4, #0x4]
+_02082EB0:
+ ldr r0, [sp, #0x48]
+ ldr r3, [sp, #0x44]
+ str r0, [sp, #0x0]
+ str r7, [sp, #0x4]
+ mov r0, #0x0
+ str r0, [sp, #0x8]
+ str r0, [sp, #0xc]
+ ldr r0, [sp, #0x10]
+ ldr r2, [sp, #0x40]
+ add r1, sp, #0x14
+ add r3, r3, r5
+ bl FUN_020073A0
+ add sp, #0x24
+ pop {r4-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_02082ED0
+FUN_02082ED0: ; 0x02082ED0
+ push {r4-r7, lr}
+ sub sp, #0x24
+ str r0, [sp, #0x4]
+ str r1, [sp, #0x8]
+ ldr r0, [sp, #0x38]
+ add r7, r3, #0x0
+ mov r5, #0x0
+ str r2, [sp, #0xc]
+ str r0, [sp, #0x38]
+ mov r1, #0x1
+ ldr r3, [sp, #0x8]
+ mov r0, #0x5a
+ add r2, r5, #0x0
+ add r4, r5, #0x0
+ str r1, [sp, #0x0]
+ bl FUN_02006C98
+ str r0, [sp, #0x14]
+ mov r0, #0x5a
+ mov r1, #0x1
+ bl LoadFromNARC_7
+ lsr r0, r0, #0x3
+ str r0, [sp, #0x18]
+ ldr r1, [sp, #0x18]
+ ldr r0, [sp, #0x8]
+ add r1, r1, #0x1
+ bl FUN_020169D8
+ ldr r1, [sp, #0x18]
+ add r6, r0, #0x0
+ ldr r0, [sp, #0x8]
+ add r1, r1, #0x1
+ bl FUN_020169D8
+ str r0, [sp, #0x10]
+ ldr r0, [sp, #0x18]
+ add r2, r5, #0x0
+ cmp r0, #0x0
+ ble _0208300A
+ ldr r3, [sp, #0x14]
+_02082F22:
+ ldrh r0, [r3, #0x4]
+ mov r12, r0
+ lsl r0, r0, #0x14
+ lsr r1, r0, #0x1e
+ ldr r0, [sp, #0x38]
+ cmp r0, r1
+ bne _02083000
+ cmp r7, #0x0
+ bne _02082F5A
+ mov r0, r12
+ lsl r0, r0, #0x1e
+ lsr r0, r0, #0x1e
+ beq _02082F5A
+ cmp r0, #0x1
+ bls _02082F4E
+ add r0, r4, #0x1
+ lsl r0, r0, #0x18
+ add r1, r4, #0x0
+ lsr r4, r0, #0x18
+ ldr r0, [sp, #0x10]
+ strb r2, [r0, r1]
+ b _02083000
+_02082F4E:
+ add r1, r5, #0x1
+ add r0, r5, #0x0
+ lsl r1, r1, #0x18
+ lsr r5, r1, #0x18
+ strb r2, [r6, r0]
+ b _02083000
+_02082F5A:
+ cmp r7, #0x1
+ bne _02082F84
+ ldrh r0, [r3, #0x4]
+ lsl r0, r0, #0x1c
+ lsr r0, r0, #0x1e
+ beq _02082F84
+ cmp r0, #0x1
+ bls _02082F78
+ add r0, r4, #0x1
+ lsl r0, r0, #0x18
+ add r1, r4, #0x0
+ lsr r4, r0, #0x18
+ ldr r0, [sp, #0x10]
+ strb r2, [r0, r1]
+ b _02083000
+_02082F78:
+ add r1, r5, #0x1
+ add r0, r5, #0x0
+ lsl r1, r1, #0x18
+ lsr r5, r1, #0x18
+ strb r2, [r6, r0]
+ b _02083000
+_02082F84:
+ cmp r7, #0x2
+ bne _02082FAE
+ ldrh r0, [r3, #0x4]
+ lsl r0, r0, #0x1a
+ lsr r0, r0, #0x1e
+ beq _02082FAE
+ cmp r0, #0x1
+ bls _02082FA2
+ add r0, r4, #0x1
+ lsl r0, r0, #0x18
+ add r1, r4, #0x0
+ lsr r4, r0, #0x18
+ ldr r0, [sp, #0x10]
+ strb r2, [r0, r1]
+ b _02083000
+_02082FA2:
+ add r1, r5, #0x1
+ add r0, r5, #0x0
+ lsl r1, r1, #0x18
+ lsr r5, r1, #0x18
+ strb r2, [r6, r0]
+ b _02083000
+_02082FAE:
+ cmp r7, #0x3
+ bne _02082FD8
+ ldrh r0, [r3, #0x4]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x1e
+ beq _02082FD8
+ cmp r0, #0x1
+ bls _02082FCC
+ add r0, r4, #0x1
+ lsl r0, r0, #0x18
+ add r1, r4, #0x0
+ lsr r4, r0, #0x18
+ ldr r0, [sp, #0x10]
+ strb r2, [r0, r1]
+ b _02083000
+_02082FCC:
+ add r1, r5, #0x1
+ add r0, r5, #0x0
+ lsl r1, r1, #0x18
+ lsr r5, r1, #0x18
+ strb r2, [r6, r0]
+ b _02083000
+_02082FD8:
+ cmp r7, #0x4
+ bne _02083000
+ ldrh r0, [r3, #0x4]
+ lsl r0, r0, #0x16
+ lsr r0, r0, #0x1e
+ beq _02083000
+ cmp r0, #0x1
+ bls _02082FF6
+ add r0, r4, #0x1
+ lsl r0, r0, #0x18
+ add r1, r4, #0x0
+ lsr r4, r0, #0x18
+ ldr r0, [sp, #0x10]
+ strb r2, [r0, r1]
+ b _02083000
+_02082FF6:
+ add r1, r5, #0x1
+ add r0, r5, #0x0
+ lsl r1, r1, #0x18
+ lsr r5, r1, #0x18
+ strb r2, [r6, r0]
+_02083000:
+ ldr r0, [sp, #0x18]
+ add r2, r2, #0x1
+ add r3, #0x8
+ cmp r2, r0
+ blt _02082F22
+_0208300A:
+ mov r1, #0xff
+ ldr r0, [sp, #0x10]
+ strb r1, [r6, r5]
+ strb r1, [r0, r4]
+ cmp r5, #0x2
+ bhs _0208301A
+ bl ErrorHandling
+_0208301A:
+ ldr r2, [sp, #0x4]
+ mov r3, #0x0
+_0208301E:
+ ldrb r0, [r6, r3]
+ ldr r5, [sp, #0x14]
+ add r3, r3, #0x1
+ lsl r1, r0, #0x3
+ ldr r0, [sp, #0x14]
+ ldrh r5, [r5, r1]
+ add r0, r0, r1
+ add r1, r2, #0x0
+ add r1, #0xd0
+ strh r5, [r1, #0x0]
+ add r1, r2, #0x0
+ ldrh r5, [r0, #0x2]
+ add r1, #0xd2
+ strh r5, [r1, #0x0]
+ add r1, r2, #0x0
+ ldrh r5, [r0, #0x4]
+ add r1, #0xd4
+ strh r5, [r1, #0x0]
+ ldrh r1, [r0, #0x6]
+ add r0, r2, #0x0
+ add r0, #0xd6
+ add r2, #0x8
+ strh r1, [r0, #0x0]
+ cmp r3, #0x2
+ blt _0208301E
+ cmp r4, #0x1
+ bhs _02083058
+ bl ErrorHandling
+_02083058:
+ ldr r0, [sp, #0x4]
+ bl FUN_02082878
+ add r1, r4, #0x0
+ blx _s32_div_f
+ lsl r0, r1, #0x10
+ lsr r1, r0, #0x10
+ ldr r0, [sp, #0x10]
+ ldrb r0, [r0, r1]
+ ldr r1, [sp, #0x14]
+ lsl r2, r0, #0x3
+ ldr r0, [sp, #0x14]
+ add r0, r0, r2
+ ldrh r2, [r1, r2]
+ ldr r1, [sp, #0x4]
+ add r1, #0xe0
+ strh r2, [r1, #0x0]
+ ldr r1, [sp, #0x4]
+ ldrh r2, [r0, #0x2]
+ add r1, #0xe2
+ strh r2, [r1, #0x0]
+ ldr r1, [sp, #0x4]
+ ldrh r2, [r0, #0x4]
+ add r1, #0xe4
+ strh r2, [r1, #0x0]
+ ldrh r1, [r0, #0x6]
+ ldr r0, [sp, #0x4]
+ ldr r2, _02083110 ; =0x0000011E
+ add r0, #0xe6
+ strh r1, [r0, #0x0]
+ ldr r1, [sp, #0xc]
+ ldr r0, [sp, #0x4]
+ strb r1, [r0, r2]
+ add r2, r0, #0x0
+ add r0, r1, #0x0
+ lsl r1, r0, #0x3
+ add r2, #0xd0
+ ldrh r4, [r2, r1]
+ add r0, sp, #0x1c
+ add r3, r2, r1
+ strh r4, [r0, #0x0]
+ ldrh r4, [r3, #0x2]
+ strh r4, [r0, #0x2]
+ ldrh r4, [r3, #0x4]
+ strh r4, [r0, #0x4]
+ ldrh r4, [r3, #0x6]
+ strh r4, [r0, #0x6]
+ ldr r4, [sp, #0x4]
+ add r4, #0xe0
+ ldrh r4, [r4, #0x0]
+ strh r4, [r2, r1]
+ ldr r1, [sp, #0x4]
+ add r1, #0xe2
+ ldrh r1, [r1, #0x0]
+ strh r1, [r3, #0x2]
+ ldr r1, [sp, #0x4]
+ add r1, #0xe4
+ ldrh r1, [r1, #0x0]
+ strh r1, [r3, #0x4]
+ ldr r1, [sp, #0x4]
+ add r1, #0xe6
+ ldrh r1, [r1, #0x0]
+ strh r1, [r3, #0x6]
+ ldr r1, [sp, #0x4]
+ ldrh r2, [r0, #0x0]
+ add r1, #0xe0
+ strh r2, [r1, #0x0]
+ ldr r1, [sp, #0x4]
+ ldrh r2, [r0, #0x2]
+ add r1, #0xe2
+ strh r2, [r1, #0x0]
+ ldr r1, [sp, #0x4]
+ ldrh r2, [r0, #0x4]
+ add r1, #0xe4
+ strh r2, [r1, #0x0]
+ ldrh r1, [r0, #0x6]
+ ldr r0, [sp, #0x4]
+ add r0, #0xe6
+ str r0, [sp, #0x4]
+ strh r1, [r0, #0x0]
+ ldr r0, [sp, #0x10]
+ bl FUN_02016A18
+ add r0, r6, #0x0
+ bl FUN_02016A18
+ ldr r0, [sp, #0x14]
+ bl FUN_02016A18
+ add sp, #0x24
+ pop {r4-r7, pc}
+ .balign 4
+_02083110: .word 0x0000011E
+
+ thumb_func_start FUN_02083114
+FUN_02083114: ; 0x02083114
+ push {r4, lr}
+ add r4, r0, #0x0
+ cmp r4, #0x18
+ blo _02083120
+ bl ErrorHandling
+_02083120:
+ mov r0, #0x1a
+ add r1, r4, #0x0
+ mul r1, r0
+ ldr r0, _0208312C ; =0x020FBC6C
+ ldrsb r0, [r0, r1]
+ pop {r4, pc}
+ .balign 4
+_0208312C: .word 0x020FBC6C
+
+ thumb_func_start FUN_02083130
+FUN_02083130: ; 0x02083130
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ add r6, r2, #0x0
+ cmp r5, #0x18
+ blo _02083140
+ bl ErrorHandling
+_02083140:
+ mov r0, #0x1a
+ add r1, r5, #0x0
+ mul r1, r0
+ ldr r0, _02083154 ; =0x020FBC68
+ ldrh r0, [r0, r1]
+ str r0, [r4, #0x0]
+ ldr r0, _02083158 ; =0x020FBC6A
+ ldrh r0, [r0, r1]
+ str r0, [r6, #0x0]
+ pop {r4-r6, pc}
+ .balign 4
+_02083154: .word 0x020FBC68
+_02083158: .word 0x020FBC6A
+
+ thumb_func_start FUN_0208315C
+FUN_0208315C: ; 0x0208315C
+ push {r4, lr}
+ add r4, r0, #0x0
+ cmp r4, #0x18
+ blo _02083168
+ bl ErrorHandling
+_02083168:
+ add r4, #0x2d
+ add r0, r4, #0x0
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02083170
+FUN_02083170: ; 0x02083170
+ push {r3-r7, lr}
+ add r4, r0, #0x0
+ add r7, r1, #0x0
+ add r5, r2, #0x0
+ add r6, r3, #0x0
+ cmp r4, #0x18
+ blo _02083182
+ bl ErrorHandling
+_02083182:
+ cmp r7, #0x4
+ bhi _0208319C
+ add r0, r7, r7
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02083192: ; jump table (using 16-bit offset)
+ .short _0208319C - _02083192 - 2; case 0
+ .short _020831B0 - _02083192 - 2; case 1
+ .short _020831C4 - _02083192 - 2; case 2
+ .short _020831D8 - _02083192 - 2; case 3
+ .short _020831EC - _02083192 - 2; case 4
+_0208319C:
+ mov r0, #0x1a
+ add r1, r4, #0x0
+ mul r1, r0
+ ldr r0, _02083200 ; =0x020FBC6E
+ ldrh r0, [r0, r1]
+ str r0, [r5, #0x0]
+ ldr r0, _02083204 ; =0x020FBC70
+ ldrb r0, [r0, r1]
+ str r0, [r6, #0x0]
+ pop {r3-r7, pc}
+_020831B0:
+ mov r0, #0x1a
+ add r1, r4, #0x0
+ mul r1, r0
+ ldr r0, _02083208 ; =0x020FBC72
+ ldrh r0, [r0, r1]
+ str r0, [r5, #0x0]
+ ldr r0, _0208320C ; =0x020FBC74
+ ldrb r0, [r0, r1]
+ str r0, [r6, #0x0]
+ pop {r3-r7, pc}
+_020831C4:
+ mov r0, #0x1a
+ add r1, r4, #0x0
+ mul r1, r0
+ ldr r0, _02083210 ; =0x020FBC76
+ ldrh r0, [r0, r1]
+ str r0, [r5, #0x0]
+ ldr r0, _02083214 ; =0x020FBC78
+ ldrb r0, [r0, r1]
+ str r0, [r6, #0x0]
+ pop {r3-r7, pc}
+_020831D8:
+ mov r0, #0x1a
+ add r1, r4, #0x0
+ mul r1, r0
+ ldr r0, _02083218 ; =0x020FBC7A
+ ldrh r0, [r0, r1]
+ str r0, [r5, #0x0]
+ ldr r0, _0208321C ; =0x020FBC7C
+ ldrb r0, [r0, r1]
+ str r0, [r6, #0x0]
+ pop {r3-r7, pc}
+_020831EC:
+ mov r0, #0x1a
+ add r1, r4, #0x0
+ mul r1, r0
+ ldr r0, _02083220 ; =0x020FBC7E
+ ldrh r0, [r0, r1]
+ str r0, [r5, #0x0]
+ ldr r0, _02083224 ; =0x020FBC80
+ ldrb r0, [r0, r1]
+ str r0, [r6, #0x0]
+ pop {r3-r7, pc}
+ .balign 4
+_02083200: .word 0x020FBC6E
+_02083204: .word 0x020FBC70
+_02083208: .word 0x020FBC72
+_0208320C: .word 0x020FBC74
+_02083210: .word 0x020FBC76
+_02083214: .word 0x020FBC78
+_02083218: .word 0x020FBC7A
+_0208321C: .word 0x020FBC7C
+_02083220: .word 0x020FBC7E
+_02083224: .word 0x020FBC80
+
+ thumb_func_start FUN_02083228
+FUN_02083228: ; 0x02083228
+ cmp r2, #0x1
+ bne _02083230
+ mov r0, #0x33
+ bx lr
+_02083230:
+ cmp r1, #0x3
+ beq _0208323C
+ cmp r1, #0x5
+ beq _0208323C
+ cmp r1, #0x7
+ bne _02083240
+_0208323C:
+ mov r0, #0x32
+ bx lr
+_02083240:
+ cmp r0, #0x3
+ bhi _02083264
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02083250: ; jump table (using 16-bit offset)
+ .short _02083258 - _02083250 - 2; case 0
+ .short _0208325C - _02083250 - 2; case 1
+ .short _02083260 - _02083250 - 2; case 2
+ .short _02083264 - _02083250 - 2; case 3
+_02083258:
+ mov r0, #0x2e
+ bx lr
+_0208325C:
+ mov r0, #0x2f
+ bx lr
+_02083260:
+ mov r0, #0x30
+ bx lr
+_02083264:
+ mov r0, #0x31
+ bx lr
+
+ thumb_func_start FUN_02083268
+FUN_02083268: ; 0x02083268
+ cmp r0, #0x4
+ bhi _02083292
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02083278: ; jump table (using 16-bit offset)
+ .short _02083282 - _02083278 - 2; case 0
+ .short _02083286 - _02083278 - 2; case 1
+ .short _0208328A - _02083278 - 2; case 2
+ .short _0208328E - _02083278 - 2; case 3
+ .short _02083292 - _02083278 - 2; case 4
+_02083282:
+ mov r0, #0x2e
+ bx lr
+_02083286:
+ mov r0, #0x2f
+ bx lr
+_0208328A:
+ mov r0, #0x30
+ bx lr
+_0208328E:
+ mov r0, #0x31
+ bx lr
+_02083292:
+ mov r0, #0x33
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02083298
+FUN_02083298: ; 0x02083298
+ ldr r3, _020832A0 ; =FUN_020832A4
+ mov r1, #0x2
+ bx r3
+ nop
+_020832A0: .word FUN_020832A4
+
+ thumb_func_start FUN_020832A4
+FUN_020832A4: ; 0x020832A4
+ cmp r1, #0x5
+ bne _020832AC
+ mov r0, #0x34
+ bx lr
+_020832AC:
+ cmp r0, #0x4
+ bhi _020832D6
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_020832BC: ; jump table (using 16-bit offset)
+ .short _020832C6 - _020832BC - 2; case 0
+ .short _020832CA - _020832BC - 2; case 1
+ .short _020832CE - _020832BC - 2; case 2
+ .short _020832D2 - _020832BC - 2; case 3
+ .short _020832D6 - _020832BC - 2; case 4
+_020832C6:
+ mov r0, #0x29
+ bx lr
+_020832CA:
+ mov r0, #0x2a
+ bx lr
+_020832CE:
+ mov r0, #0x2b
+ bx lr
+_020832D2:
+ mov r0, #0x2c
+ bx lr
+_020832D6:
+ mov r0, #0x2d
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_020832DC
+FUN_020832DC: ; 0x020832DC
+ mov r1, #0x3
+ sub r0, r1, r0
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_020832E4
+FUN_020832E4: ; 0x020832E4
+ mov r1, #0x3
+ sub r0, r1, r0
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_020832EC
+FUN_020832EC: ; 0x020832EC
+ ldr r1, _02083304 ; =0x00000121
+ ldrb r0, [r0, r1]
+ cmp r0, #0x3
+ beq _020832FC
+ cmp r0, #0x5
+ beq _020832FC
+ cmp r0, #0x7
+ bne _02083300
+_020832FC:
+ mov r0, #0x1
+ bx lr
+_02083300:
+ mov r0, #0x0
+ bx lr
+ .balign 4
+_02083304: .word 0x00000121
+
+ thumb_func_start FUN_02083308
+FUN_02083308: ; 0x02083308
+ push {r4-r5}
+ sub sp, #0x50
+ ldr r5, _02083368 ; =0x020FBC18
+ add r4, sp, #0x0
+ mov r3, #0x28
+_02083312:
+ ldrh r2, [r5, #0x0]
+ add r5, r5, #0x2
+ strh r2, [r4, #0x0]
+ add r4, r4, #0x2
+ sub r3, r3, #0x1
+ bne _02083312
+ mov r3, #0xc
+ mul r3, r1
+ add r1, r0, r3
+ mov r3, #0x4a
+ lsl r3, r3, #0x2
+ add r4, r3, #0x0
+ add r4, #0x49
+ ldrb r4, [r0, r4]
+ mov r2, #0x0
+ ldrsh r1, [r1, r3]
+ cmp r4, #0x1
+ bne _0208333A
+ add r4, sp, #0x40
+ b _02083344
+_0208333A:
+ sub r3, #0x8
+ ldrb r0, [r0, r3]
+ add r4, sp, #0x0
+ lsl r0, r0, #0x4
+ add r4, r4, r0
+_02083344:
+ mov r3, #0x0
+_02083346:
+ ldrh r0, [r4, #0x0]
+ cmp r1, r0
+ bge _02083354
+ add sp, #0x50
+ add r0, r2, #0x0
+ pop {r4-r5}
+ bx lr
+_02083354:
+ add r3, r3, #0x1
+ add r2, r2, #0x1
+ add r4, r4, #0x2
+ cmp r3, #0x8
+ blt _02083346
+ add r0, r2, #0x0
+ add sp, #0x50
+ pop {r4-r5}
+ bx lr
+ nop
+_02083368: .word 0x020FBC18
+
+ thumb_func_start FUN_0208336C
+FUN_0208336C: ; 0x0208336C
+ push {r4-r5}
+ sub sp, #0x10
+ ldr r5, _020833CC ; =0x020FBC08
+ add r4, sp, #0x0
+ mov r3, #0xf
+_02083376:
+ ldrb r2, [r5, #0x0]
+ add r5, r5, #0x1
+ strb r2, [r4, #0x0]
+ add r4, r4, #0x1
+ sub r3, r3, #0x1
+ bne _02083376
+ mov r2, #0xc
+ mul r2, r1
+ ldr r3, _020833D0 ; =0x0000012A
+ add r1, r0, r2
+ ldrsh r1, [r1, r3]
+ cmp r1, #0x0
+ bne _02083398
+ add sp, #0x10
+ mov r0, #0x0
+ pop {r4-r5}
+ bx lr
+_02083398:
+ add r2, r3, #0x0
+ add r2, #0x47
+ ldrb r2, [r0, r2]
+ cmp r2, #0x1
+ bne _020833A6
+ add r4, sp, #0xc
+ b _020833B2
+_020833A6:
+ sub r3, #0xa
+ ldrb r2, [r0, r3]
+ add r4, sp, #0x0
+ lsl r0, r2, #0x1
+ add r0, r2, r0
+ add r4, r4, r0
+_020833B2:
+ mov r0, #0x1
+ mov r3, #0x0
+_020833B6:
+ ldrb r2, [r4, r3]
+ cmp r1, r2
+ ble _020833C4
+ add r3, r3, #0x1
+ add r0, r0, #0x1
+ cmp r3, #0x3
+ blt _020833B6
+_020833C4:
+ add sp, #0x10
+ pop {r4-r5}
+ bx lr
+ nop
+_020833CC: .word 0x020FBC08
+_020833D0: .word 0x0000012A
+
+ thumb_func_start FUN_020833D4
+FUN_020833D4: ; 0x020833D4
+ push {r3, lr}
+ cmp r0, #0x0
+ bne _020833EE
+ mov r0, #0x1
+ bl FUN_02002B60
+ mov r0, #0x3
+ bl FUN_02002B7C
+ mov r0, #0x1
+ bl FUN_02002BB8
+ pop {r3, pc}
+_020833EE:
+ mov r0, #0x1
+ bl FUN_02002B7C
+ mov r0, #0x0
+ bl FUN_02002B60
+ mov r0, #0x0
+ bl FUN_02002BB8
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_02083404
+FUN_02083404: ; 0x02083404
+ push {r3, lr}
+ mov r0, #0x0
+ bl FUN_02002B60
+ mov r0, #0x0
+ bl FUN_02002B7C
+ mov r0, #0x0
+ bl FUN_02002BB8
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_0208341C
+FUN_0208341C: ; 0x0208341C
+ push {r3, lr}
+ cmp r1, #0x4
+ bhi _0208344C
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #0x6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_0208342E: ; jump table (using 16-bit offset)
+ .short _02083438 - _0208342E - 2; case 0
+ .short _0208343C - _0208342E - 2; case 1
+ .short _02083440 - _0208342E - 2; case 2
+ .short _02083444 - _0208342E - 2; case 3
+ .short _02083448 - _0208342E - 2; case 4
+_02083438:
+ add r0, #0x7a
+ pop {r3, pc}
+_0208343C:
+ add r0, #0x7e
+ pop {r3, pc}
+_02083440:
+ add r0, #0x82
+ pop {r3, pc}
+_02083444:
+ add r0, #0x86
+ pop {r3, pc}
+_02083448:
+ add r0, #0x8a
+ pop {r3, pc}
+_0208344C:
+ bl ErrorHandling
+ mov r0, #0x7a
+ pop {r3, pc}
+
+ thumb_func_start FUN_02083454
+FUN_02083454: ; 0x02083454
+ push {r4-r5, lr}
+ sub sp, #0xc
+ add r5, r0, #0x0
+ mov r4, #0x0
+ cmp r5, #0x3
+ beq _02083464
+ cmp r1, #0x1
+ bne _02083474
+_02083464:
+ bl FUN_0201B9EC
+ mov r1, #0xc
+ blx _s32_div_f
+ add sp, #0xc
+ add r0, r1, #0x0
+ pop {r4-r5, pc}
+_02083474:
+ add r0, sp, #0x0
+ add r1, r4, #0x0
+ mov r2, #0xc
+ blx MI_CpuFill8
+ mov r1, #0x2
+ add r0, sp, #0x0
+ strb r1, [r0, #0x0]
+ mov r1, #0x3
+ strb r1, [r0, #0x1]
+ mov r1, #0x4
+ add r4, r4, #0x3
+ strb r1, [r0, #0x2]
+ cmp r5, #0x1
+ blt _020834A6
+ mov r0, #0x0
+ add r2, sp, #0x0
+ strb r0, [r2, r4]
+ mov r1, #0x1
+ add r0, r4, #0x1
+ strb r1, [r2, r0]
+ add r1, r4, #0x2
+ mov r0, #0x5
+ add r4, r4, #0x3
+ strb r0, [r2, r1]
+_020834A6:
+ cmp r5, #0x2
+ blt _020834BE
+ mov r0, #0x6
+ add r2, sp, #0x0
+ strb r0, [r2, r4]
+ mov r1, #0x7
+ add r0, r4, #0x1
+ strb r1, [r2, r0]
+ add r1, r4, #0x2
+ mov r0, #0x8
+ add r4, r4, #0x3
+ strb r0, [r2, r1]
+_020834BE:
+ bl FUN_0201B9EC
+ add r1, r4, #0x0
+ blx _s32_div_f
+ add r0, sp, #0x0
+ ldrb r0, [r0, r1]
+ add sp, #0xc
+ pop {r4-r5, pc}
+
+ thumb_func_start FUN_020834D0
+FUN_020834D0: ; 0x020834D0
+ ldr r3, _020834DC ; =FUN_0202D8D0
+ add r2, r0, #0x0
+ ldr r0, _020834E0 ; =0x020FBED8
+ mov r1, #0x10
+ bx r3
+ nop
+_020834DC: .word FUN_0202D8D0
+_020834E0: .word 0x020FBED8
+
+ thumb_func_start FUN_020834E4
+FUN_020834E4: ; 0x020834E4
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ mov r0, #0x1
+ lsl r0, r0, #0xa
+ add r4, r1, #0x0
+ cmp r2, r0
+ blt _020834F6
+ bl ErrorHandling
+_020834F6:
+ ldr r0, _02083500 ; =0x00000985
+ add r1, r4, r0
+ lsl r0, r5, #0xa
+ add r0, r1, r0
+ pop {r3-r5, pc}
+ .balign 4
+_02083500: .word 0x00000985
+
+ thumb_func_start FUN_02083504
+FUN_02083504: ; 0x02083504
+ mov r0, #0xa
+ bx lr
+
+ thumb_func_start FUN_02083508
+FUN_02083508: ; 0x02083508
+ mov r0, #0x8
+ bx lr
+
+ thumb_func_start FUN_0208350C
+FUN_0208350C: ; 0x0208350C
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02083510
+FUN_02083510: ; 0x02083510
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ mov r0, #0x17
+ lsl r0, r0, #0x4
+ add r6, r1, #0x0
+ ldrb r1, [r3, r0]
+ str r2, [sp, #0x0]
+ cmp r1, #0x0
+ bne _0208352C
+ sub r0, r0, #0x4
+ ldr r1, [r3, r0]
+ ldr r0, _02083590 ; =0x000004FC
+ add r4, r1, r0
+ b _0208355E
+_0208352C:
+ cmp r1, #0x1
+ bne _0208353A
+ sub r0, r0, #0x4
+ ldr r1, [r3, r0]
+ ldr r0, _02083594 ; =0x00001158
+ add r4, r1, r0
+ b _0208355E
+_0208353A:
+ cmp r1, #0x2
+ bne _0208354A
+ sub r0, r0, #0x4
+ ldr r1, [r3, r0]
+ mov r0, #0xc3
+ lsl r0, r0, #0x4
+ add r4, r1, r0
+ b _0208355E
+_0208354A:
+ cmp r1, #0x3
+ bne _02083558
+ sub r0, r0, #0x4
+ ldr r1, [r3, r0]
+ ldr r0, _02083598 ; =0x0000085C
+ add r4, r1, r0
+ b _0208355E
+_02083558:
+ bl ErrorHandling
+ pop {r3-r7, pc}
+_0208355E:
+ mov r0, #0x2
+ lsl r0, r0, #0x8
+ cmp r6, r0
+ ble _0208356A
+ bl ErrorHandling
+_0208356A:
+ ldr r0, _0208359C ; =0x00000A11
+ add r7, r4, r0
+ ldrb r0, [r7, r5]
+ cmp r0, #0x0
+ beq _02083578
+ bl ErrorHandling
+_02083578:
+ mov r1, #0x21
+ lsl r1, r1, #0x4
+ add r2, r4, r1
+ lsl r1, r5, #0x9
+ add r1, r2, r1
+ ldr r0, [sp, #0x0]
+ add r2, r6, #0x0
+ blx MI_CpuCopy8
+ mov r0, #0x1
+ strb r0, [r7, r5]
+ pop {r3-r7, pc}
+ .balign 4
+_02083590: .word 0x000004FC
+_02083594: .word 0x00001158
+_02083598: .word 0x0000085C
+_0208359C: .word 0x00000A11
+
+ thumb_func_start FUN_020835A0
+FUN_020835A0: ; 0x020835A0
+ mov r0, #0x5b
+ lsl r0, r0, #0x2
+ ldr r0, [r3, r0]
+ ldr r3, _020835AC ; =0x0223D1CD
+ add r1, r2, #0x0
+ bx r3
+ .balign 4
+_020835AC: .word 0x0223D1CD
+
+ thumb_func_start FUN_020835B0
+FUN_020835B0: ; 0x020835B0
+ push {r3-r6, lr}
+ sub sp, #0x14
+ add r5, r1, #0x0
+ mov r1, #0x61
+ add r6, r0, #0x0
+ add r4, r3, #0x0
+ lsl r1, r1, #0x2
+ add r0, r2, #0x0
+ add r2, r4, r1
+ lsl r1, r6, #0x8
+ add r1, r2, r1
+ add r2, r5, #0x0
+ blx MI_CpuCopy8
+ ldr r2, _02083628 ; =0x00000584
+ ldrb r0, [r4, r2]
+ add r0, r0, #0x1
+ strb r0, [r4, r2]
+ ldr r0, _0208362C ; =0x00000127
+ ldrb r2, [r4, r2]
+ ldrb r1, [r4, r0]
+ cmp r2, r1
+ blo _02083622
+ mov r3, #0x0
+ cmp r1, #0x0
+ ble _020835FE
+ add r0, #0x5d
+ add r5, r4, r0
+ mov r0, #0x1
+ lsl r0, r0, #0x8
+ add r2, r0, #0x0
+ add r6, sp, #0x4
+ add r2, #0x27
+_020835F2:
+ stmia r6!, {r5}
+ ldrb r1, [r4, r2]
+ add r3, r3, #0x1
+ add r5, r5, r0
+ cmp r3, r1
+ blt _020835F2
+_020835FE:
+ add r0, sp, #0x4
+ add r2, sp, #0x0
+ bl FUN_02083660
+ mov r1, #0x47
+ lsl r1, r1, #0x2
+ strb r0, [r4, r1]
+ add r0, sp, #0x0
+ ldrb r2, [r0, #0x0]
+ add r0, r1, #0x1
+ strb r2, [r4, r0]
+ ldrb r0, [r4, r1]
+ lsl r2, r0, #0x2
+ add r0, sp, #0x4
+ ldr r0, [r0, r2]
+ ldrb r2, [r0, #0x2]
+ add r0, r1, #0x6
+ strb r2, [r4, r0]
+_02083622:
+ add sp, #0x14
+ pop {r3-r6, pc}
+ nop
+_02083628: .word 0x00000584
+_0208362C: .word 0x00000127
+
+ thumb_func_start FUN_02083630
+FUN_02083630: ; 0x02083630
+ push {r3, lr}
+ ldr r1, _0208365C ; =0x00000125
+ add r3, sp, #0x0
+ ldrb r2, [r0, r1]
+ strb r2, [r3, #0x0]
+ sub r2, r1, #0x2
+ ldrb r2, [r0, r2]
+ sub r1, r1, #0x3
+ strb r2, [r3, #0x1]
+ ldrb r0, [r0, r1]
+ add r1, sp, #0x0
+ mov r2, #0x4
+ strb r0, [r3, #0x2]
+ mov r0, #0x1a
+ bl FUN_02030ADC
+ cmp r0, #0x1
+ bne _02083658
+ mov r0, #0x1
+ pop {r3, pc}
+_02083658:
+ mov r0, #0x0
+ pop {r3, pc}
+ .balign 4
+_0208365C: .word 0x00000125
+
+ thumb_func_start FUN_02083660
+FUN_02083660: ; 0x02083660
+ push {r4-r7}
+ mov r5, #0x0
+ add r4, r5, #0x0
+ cmp r1, #0x0
+ ble _02083684
+ add r6, r0, #0x0
+_0208366C:
+ lsl r3, r5, #0x2
+ ldr r3, [r0, r3]
+ ldr r7, [r6, #0x0]
+ ldrb r3, [r3, #0x0]
+ ldrb r7, [r7, #0x0]
+ cmp r3, r7
+ bhs _0208367C
+ add r5, r4, #0x0
+_0208367C:
+ add r4, r4, #0x1
+ add r6, r6, #0x4
+ cmp r4, r1
+ blt _0208366C
+_02083684:
+ lsl r1, r5, #0x2
+ ldr r0, [r0, r1]
+ ldrb r0, [r0, #0x0]
+ strb r0, [r2, #0x0]
+ add r0, r5, #0x0
+ pop {r4-r7}
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02083694
+FUN_02083694: ; 0x02083694
+ push {r3-r5, lr}
+ add r5, r2, #0x0
+ add r4, r3, #0x0
+ bl FUN_020669BC
+ add r2, r0, #0x0
+ ldrb r1, [r5, r2]
+ add r0, r5, #0x0
+ lsl r1, r1, #0x2
+ ldr r1, [r4, r1]
+ blx MI_CpuCopy8
+ ldr r0, _020836B8 ; =0x00000584
+ ldrb r1, [r4, r0]
+ add r1, r1, #0x1
+ strb r1, [r4, r0]
+ pop {r3-r5, pc}
+ nop
+_020836B8: .word 0x00000584
+
+ thumb_func_start FUN_020836BC
+FUN_020836BC: ; 0x020836BC
+ push {r3-r7, lr}
+ add r6, r1, #0x0
+ add r7, r2, #0x0
+ bl FUN_020669BC
+ add r4, r0, #0x0
+ mov r0, #0x14
+ add r1, r4, #0x1
+ bl FUN_02016998
+ add r5, r0, #0x0
+ add r0, r7, #0x0
+ add r1, r5, #0x0
+ add r2, r4, #0x0
+ blx MI_CpuCopy8
+ mov r0, #0x1b
+ add r1, r5, #0x0
+ add r2, r4, #0x1
+ strb r6, [r5, r4]
+ bl FUN_02030ADC
+ cmp r0, #0x1
+ bne _020836F0
+ mov r4, #0x1
+ b _020836F2
+_020836F0:
+ mov r4, #0x0
+_020836F2:
+ add r0, r5, #0x0
+ bl FUN_02016A18
+ add r0, r4, #0x0
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_020836FC
+FUN_020836FC: ; 0x020836FC
+ push {r3-r7, lr}
+ sub sp, #0x8
+ str r2, [sp, #0x0]
+ str r3, [sp, #0x4]
+ bl FUN_020669BC
+ mov r7, #0x0
+ ldr r4, [sp, #0x4]
+ add r6, r0, #0x0
+ add r5, r7, #0x0
+_02083710:
+ ldr r0, [sp, #0x0]
+ ldr r1, [r4, #0x0]
+ add r0, r0, r5
+ add r2, r6, #0x0
+ blx MI_CpuCopy8
+ add r7, r7, #0x1
+ add r4, r4, #0x4
+ add r5, r5, r6
+ cmp r7, #0x4
+ blt _02083710
+ ldr r1, _02083738 ; =0x00000584
+ ldr r0, [sp, #0x4]
+ ldrb r0, [r0, r1]
+ add r2, r0, #0x1
+ ldr r0, [sp, #0x4]
+ strb r2, [r0, r1]
+ add sp, #0x8
+ pop {r3-r7, pc}
+ nop
+_02083738: .word 0x00000584
+
+ thumb_func_start FUN_0208373C
+FUN_0208373C: ; 0x0208373C
+ push {r3-r7, lr}
+ sub sp, #0x8
+ add r4, r0, #0x0
+ add r5, r1, #0x0
+ bl FUN_020669BC
+ add r6, r0, #0x0
+ lsl r0, r6, #0x2
+ str r0, [sp, #0x0]
+ ldr r0, _02083788 ; =0x00000585
+ mov r7, #0x0
+ add r0, r4, r0
+ str r0, [sp, #0x4]
+ add r4, r7, #0x0
+_02083758:
+ ldr r1, [sp, #0x4]
+ ldr r0, [r5, #0x0]
+ add r1, r1, r4
+ add r2, r6, #0x0
+ blx MI_CpuCopy8
+ add r7, r7, #0x1
+ add r4, r4, r6
+ add r5, r5, #0x4
+ cmp r7, #0x4
+ blt _02083758
+ ldr r1, [sp, #0x4]
+ ldr r2, [sp, #0x0]
+ mov r0, #0x1c
+ bl FUN_02030A78
+ cmp r0, #0x1
+ bne _02083782
+ add sp, #0x8
+ mov r0, #0x1
+ pop {r3-r7, pc}
+_02083782:
+ mov r0, #0x0
+ add sp, #0x8
+ pop {r3-r7, pc}
+ .balign 4
+_02083788: .word 0x00000585
+
+ thumb_func_start FUN_0208378C
+FUN_0208378C: ; 0x0208378C
+ push {r3-r5, lr}
+ add r0, r2, #0x0
+ add r2, #0x30
+ ldrb r1, [r2, #0x0]
+ add r4, r3, #0x0
+ add r5, r4, #0x0
+ mov r2, #0x30
+ add r3, r1, #0x0
+ add r5, #0x10
+ mul r3, r2
+ add r1, r5, r3
+ blx MI_CpuCopy8
+ ldr r0, _020837B0 ; =0x00000584
+ ldrb r1, [r4, r0]
+ add r1, r1, #0x1
+ strb r1, [r4, r0]
+ pop {r3-r5, pc}
+ .balign 4
+_020837B0: .word 0x00000584
+
+ thumb_func_start FUN_020837B4
+FUN_020837B4: ; 0x020837B4
+ push {r4-r6, lr}
+ add r5, r1, #0x0
+ mov r0, #0x14
+ mov r1, #0x31
+ add r6, r2, #0x0
+ bl FUN_02016998
+ add r4, r0, #0x0
+ add r0, r6, #0x0
+ add r1, r4, #0x0
+ mov r2, #0x30
+ blx MI_CpuCopy8
+ add r0, r4, #0x0
+ add r0, #0x30
+ strb r5, [r0, #0x0]
+ mov r0, #0x1d
+ add r1, r4, #0x0
+ mov r2, #0x31
+ bl FUN_02030ADC
+ cmp r0, #0x1
+ bne _020837E6
+ mov r5, #0x1
+ b _020837E8
+_020837E6:
+ mov r5, #0x0
+_020837E8:
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ add r0, r5, #0x0
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_020837F4
+FUN_020837F4: ; 0x020837F4
+ push {r3-r7, lr}
+ add r5, r3, #0x0
+ add r6, r2, #0x0
+ str r3, [sp, #0x0]
+ mov r4, #0x0
+ add r5, #0xd0
+ mov r7, #0x8
+_02083802:
+ lsl r0, r4, #0x3
+ add r0, r6, r0
+ add r1, r5, #0x0
+ add r2, r7, #0x0
+ blx MI_CpuCopy8
+ add r4, r4, #0x1
+ add r5, #0x8
+ cmp r4, #0x3
+ blt _02083802
+ ldrb r2, [r6, #0x18]
+ ldr r1, _0208382C ; =0x0000011E
+ ldr r0, [sp, #0x0]
+ strb r2, [r0, r1]
+ ldr r1, _02083830 ; =0x00000584
+ ldrb r0, [r0, r1]
+ add r2, r0, #0x1
+ ldr r0, [sp, #0x0]
+ strb r2, [r0, r1]
+ pop {r3-r7, pc}
+ nop
+_0208382C: .word 0x0000011E
+_02083830: .word 0x00000584
+
+ thumb_func_start FUN_02083834
+FUN_02083834: ; 0x02083834
+ push {r3-r7, lr}
+ str r0, [sp, #0x0]
+ mov r0, #0x14
+ mov r1, #0x19
+ add r5, r2, #0x0
+ bl FUN_02016998
+ add r6, r0, #0x0
+ mov r4, #0x0
+ mov r7, #0x8
+_02083848:
+ lsl r1, r4, #0x3
+ add r0, r5, #0x0
+ add r1, r6, r1
+ add r2, r7, #0x0
+ blx MI_CpuCopy8
+ add r4, r4, #0x1
+ add r5, #0x8
+ cmp r4, #0x3
+ blt _02083848
+ ldr r1, _02083884 ; =0x0000011E
+ ldr r0, [sp, #0x0]
+ mov r2, #0x19
+ ldrb r0, [r0, r1]
+ add r1, r6, #0x0
+ strb r0, [r6, #0x18]
+ mov r0, #0x1e
+ bl FUN_02030ADC
+ cmp r0, #0x1
+ bne _02083876
+ mov r4, #0x1
+ b _02083878
+_02083876:
+ mov r4, #0x0
+_02083878:
+ add r0, r6, #0x0
+ bl FUN_02016A18
+ add r0, r4, #0x0
+ pop {r3-r7, pc}
+ nop
+_02083884: .word 0x0000011E
+
+ thumb_func_start FUN_02083888
+FUN_02083888: ; 0x02083888
+ push {r3-r7, lr}
+ add r5, r2, #0x0
+ ldrb r0, [r5, #0x0]
+ add r6, r3, #0x0
+ add r4, r6, #0x0
+ add r4, #0xe8
+ lsl r7, r0, #0x2
+ ldr r0, [r4, r7]
+ bl FUN_02021A4C
+ ldr r0, [r4, r7]
+ add r1, r5, #0x4
+ bl FUN_02021E28
+ ldr r0, _020838B0 ; =0x00000584
+ ldrb r1, [r6, r0]
+ add r1, r1, #0x1
+ strb r1, [r6, r0]
+ pop {r3-r7, pc}
+ nop
+_020838B0: .word 0x00000584
+
+ thumb_func_start FUN_020838B4
+FUN_020838B4: ; 0x020838B4
+ push {r3-r5, lr}
+ sub sp, #0x10
+ add r5, r1, #0x0
+ add r0, r2, #0x0
+ add r1, sp, #0x0
+ mov r2, #0x8
+ bl FUN_02021EF0
+ mov r0, #0x14
+ add r1, r0, #0x0
+ bl FUN_02016998
+ add r4, r0, #0x0
+ add r0, sp, #0x0
+ add r1, r4, #0x4
+ mov r2, #0x10
+ blx MI_CpuCopy8
+ strb r5, [r4, #0x0]
+ mov r0, #0x10
+ strb r0, [r4, #0x1]
+ mov r0, #0x0
+ strb r0, [r4, #0x2]
+ strb r0, [r4, #0x3]
+ mov r0, #0x1f
+ add r1, r4, #0x0
+ mov r2, #0x14
+ bl FUN_02030ADC
+ cmp r0, #0x1
+ bne _020838F6
+ mov r5, #0x1
+ b _020838F8
+_020838F6:
+ mov r5, #0x0
+_020838F8:
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ add r0, r5, #0x0
+ add sp, #0x10
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_02083904
+FUN_02083904: ; 0x02083904
+ push {r3-r5, lr}
+ add r5, r2, #0x0
+ add r4, r3, #0x0
+ bl FUN_02026FE4
+ add r2, r0, #0x0
+ ldrb r1, [r5, r2]
+ add r0, r5, #0x0
+ lsl r1, r1, #0x2
+ add r1, r4, r1
+ add r1, #0xf8
+ ldr r1, [r1, #0x0]
+ blx MI_CpuCopy8
+ ldr r0, _0208392C ; =0x00000584
+ ldrb r1, [r4, r0]
+ add r1, r1, #0x1
+ strb r1, [r4, r0]
+ pop {r3-r5, pc}
+ nop
+_0208392C: .word 0x00000584
+
+ thumb_func_start FUN_02083930
+FUN_02083930: ; 0x02083930
+ push {r3-r7, lr}
+ add r6, r1, #0x0
+ add r7, r2, #0x0
+ bl FUN_02026FE4
+ add r4, r0, #0x0
+ mov r0, #0x14
+ add r1, r4, #0x1
+ bl FUN_02016998
+ add r5, r0, #0x0
+ add r0, r7, #0x0
+ add r1, r5, #0x0
+ add r2, r4, #0x0
+ blx MI_CpuCopy8
+ mov r0, #0x20
+ add r1, r5, #0x0
+ add r2, r4, #0x1
+ strb r6, [r5, r4]
+ bl FUN_02030ADC
+ cmp r0, #0x1
+ bne _02083964
+ mov r4, #0x1
+ b _02083966
+_02083964:
+ mov r4, #0x0
+_02083966:
+ add r0, r5, #0x0
+ bl FUN_02016A18
+ add r0, r4, #0x0
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_02083970
+FUN_02083970: ; 0x02083970
+ push {r3-r7, lr}
+ sub sp, #0x8
+ str r2, [sp, #0x0]
+ str r3, [sp, #0x4]
+ bl FUN_02026FE4
+ add r6, r0, #0x0
+ mov r0, #0x1
+ lsl r1, r6, #0x2
+ lsl r0, r0, #0xa
+ cmp r1, r0
+ blt _0208398C
+ bl ErrorHandling
+_0208398C:
+ mov r7, #0x0
+ ldr r4, [sp, #0x4]
+ add r5, r7, #0x0
+_02083992:
+ add r1, r4, #0x0
+ ldr r0, [sp, #0x0]
+ add r1, #0xf8
+ ldr r1, [r1, #0x0]
+ add r0, r0, r5
+ add r2, r6, #0x0
+ blx MI_CpuCopy8
+ add r7, r7, #0x1
+ add r4, r4, #0x4
+ add r5, r5, r6
+ cmp r7, #0x4
+ blt _02083992
+ ldr r1, _020839BC ; =0x00000584
+ ldr r0, [sp, #0x4]
+ ldrb r0, [r0, r1]
+ add r2, r0, #0x1
+ ldr r0, [sp, #0x4]
+ strb r2, [r0, r1]
+ add sp, #0x8
+ pop {r3-r7, pc}
+ .balign 4
+_020839BC: .word 0x00000584
+
+ thumb_func_start FUN_020839C0
+FUN_020839C0: ; 0x020839C0
+ push {r3-r7, lr}
+ sub sp, #0x8
+ add r4, r0, #0x0
+ add r5, r1, #0x0
+ bl FUN_02026FE4
+ add r6, r0, #0x0
+ mov r1, #0x1
+ lsl r0, r6, #0x2
+ lsl r1, r1, #0xa
+ str r0, [sp, #0x0]
+ cmp r0, r1
+ blt _020839DE
+ bl ErrorHandling
+_020839DE:
+ ldr r0, _02083A18 ; =0x00000585
+ mov r7, #0x0
+ add r0, r4, r0
+ str r0, [sp, #0x4]
+ add r4, r7, #0x0
+_020839E8:
+ ldr r1, [sp, #0x4]
+ ldr r0, [r5, #0x0]
+ add r1, r1, r4
+ add r2, r6, #0x0
+ blx MI_CpuCopy8
+ add r7, r7, #0x1
+ add r4, r4, r6
+ add r5, r5, #0x4
+ cmp r7, #0x4
+ blt _020839E8
+ ldr r1, [sp, #0x4]
+ ldr r2, [sp, #0x0]
+ mov r0, #0x21
+ bl FUN_02030A78
+ cmp r0, #0x1
+ bne _02083A12
+ add sp, #0x8
+ mov r0, #0x1
+ pop {r3-r7, pc}
+_02083A12:
+ mov r0, #0x0
+ add sp, #0x8
+ pop {r3-r7, pc}
+ .balign 4
+_02083A18: .word 0x00000585
+
+ thumb_func_start FUN_02083A1C
+FUN_02083A1C: ; 0x02083A1C
+ push {r4, lr}
+ add r4, r1, #0x0
+ ldr r1, _02083A30 ; =0x000019A0
+ add r0, r2, #0x0
+ add r1, r3, r1
+ add r2, r4, #0x0
+ blx MI_CpuCopy8
+ pop {r4, pc}
+ nop
+_02083A30: .word 0x000019A0
+
+ thumb_func_start FUN_02083A34
+FUN_02083A34: ; 0x02083A34
+ push {r3, lr}
+ add r3, r0, #0x0
+ ldrb r0, [r3, #0x16]
+ cmp r0, #0x0
+ bne _02083A44
+ str r1, [r3, #0x0]
+ mov r0, #0x1
+ pop {r3, pc}
+_02083A44:
+ ldrb r2, [r3, #0x14]
+ ldrb r0, [r3, #0x15]
+ cmp r2, r0
+ beq _02083A50
+ mov r0, #0x0
+ pop {r3, pc}
+_02083A50:
+ str r1, [r3, #0x8]
+ add r3, #0x8
+ mov r0, #0x22
+ add r1, r3, #0x0
+ mov r2, #0x8
+ bl FUN_02030ADC
+ cmp r0, #0x1
+ bne _02083A66
+ mov r0, #0x1
+ pop {r3, pc}
+_02083A66:
+ mov r0, #0x0
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_02083A6C
+FUN_02083A6C: ; 0x02083A6C
+ ldrb r2, [r2, #0x4]
+ add r1, r3, r0
+ ldr r0, _02083A78 ; =0x000019B0
+ strb r2, [r1, r0]
+ bx lr
+ nop
+_02083A78: .word 0x000019B0
+
+ thumb_func_start FUN_02083A7C
+FUN_02083A7C: ; 0x02083A7C
+ push {r3, lr}
+ add r2, r0, #0x0
+ ldrb r0, [r2, #0x16]
+ cmp r0, #0x0
+ bne _02083A8C
+ strb r1, [r2, #0x10]
+ mov r0, #0x1
+ pop {r3, pc}
+_02083A8C:
+ strb r1, [r2, #0xc]
+ add r2, #0x8
+ add r1, r2, #0x0
+ mov r0, #0x23
+ mov r2, #0x8
+ bl FUN_02030ADC
+ cmp r0, #0x1
+ bne _02083AA2
+ mov r0, #0x1
+ pop {r3, pc}
+_02083AA2:
+ mov r0, #0x0
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_02083AA8
+FUN_02083AA8: ; 0x02083AA8
+ push {r3-r5, lr}
+ add r5, r2, #0x0
+ add r4, r3, #0x0
+ bl FUN_02029EC4
+ add r2, r0, #0x0
+ ldrb r1, [r5, r2]
+ add r0, r5, #0x0
+ lsl r1, r1, #0x2
+ add r3, r4, r1
+ mov r1, #0x57
+ lsl r1, r1, #0x2
+ ldr r1, [r3, r1]
+ blx MI_CpuCopy8
+ ldr r0, _02083AD0 ; =0x00000584
+ ldrb r1, [r4, r0]
+ add r1, r1, #0x1
+ strb r1, [r4, r0]
+ pop {r3-r5, pc}
+ .balign 4
+_02083AD0: .word 0x00000584
+
+ thumb_func_start FUN_02083AD4
+FUN_02083AD4: ; 0x02083AD4
+ push {r3-r7, lr}
+ add r4, r0, #0x0
+ add r7, r1, #0x0
+ add r6, r2, #0x0
+ bl FUN_02029EC4
+ add r5, r0, #0x0
+ ldr r0, _02083B0C ; =0x00000585
+ add r4, r4, r0
+ cmp r6, #0x0
+ beq _02083AF4
+ add r0, r6, #0x0
+ add r1, r4, #0x0
+ add r2, r5, #0x0
+ blx MI_CpuCopy8
+_02083AF4:
+ mov r0, #0x24
+ add r1, r4, #0x0
+ add r2, r5, #0x1
+ strb r7, [r4, r5]
+ bl FUN_02030A78
+ cmp r0, #0x1
+ bne _02083B08
+ mov r0, #0x1
+ pop {r3-r7, pc}
+_02083B08:
+ mov r0, #0x0
+ pop {r3-r7, pc}
+ .balign 4
+_02083B0C: .word 0x00000585
+
+ thumb_func_start FUN_02083B10
+FUN_02083B10: ; 0x02083B10
+ push {r3-r6}
+ ldrb r1, [r2, #0x6]
+ ldrb r4, [r2, #0x0]
+ mov r5, #0x42
+ add r0, r3, r1
+ lsl r5, r5, #0x2
+ strb r4, [r0, r5]
+ ldrb r6, [r2, #0x1]
+ add r4, r5, #0x4
+ strb r6, [r0, r4]
+ add r4, r5, #0x0
+ ldrb r6, [r2, #0x2]
+ add r4, #0x8
+ add r5, #0xc
+ strb r6, [r0, r4]
+ lsl r0, r1, #0x1
+ ldrh r2, [r2, #0x4]
+ add r0, r3, r0
+ strh r2, [r0, r5]
+ ldr r0, _02083B44 ; =0x00000584
+ ldrb r1, [r3, r0]
+ add r1, r1, #0x1
+ strb r1, [r3, r0]
+ pop {r3-r6}
+ bx lr
+ nop
+_02083B44: .word 0x00000584
+
+ thumb_func_start FUN_02083B48
+FUN_02083B48: ; 0x02083B48
+ push {r4-r6, lr}
+ add r5, r1, #0x0
+ mov r0, #0x14
+ mov r1, #0x7
+ add r6, r2, #0x0
+ bl FUN_02016998
+ add r4, r0, #0x0
+ add r0, r6, #0x0
+ add r1, r4, #0x0
+ mov r2, #0x6
+ blx MI_CpuCopy8
+ mov r0, #0x25
+ add r1, r4, #0x0
+ mov r2, #0x7
+ strb r5, [r4, #0x6]
+ bl FUN_02030ADC
+ cmp r0, #0x1
+ bne _02083B76
+ mov r5, #0x1
+ b _02083B78
+_02083B76:
+ mov r5, #0x0
+_02083B78:
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ add r0, r5, #0x0
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_02083B84
+FUN_02083B84: ; 0x02083B84
+ ldr r3, _02083B90 ; =FUN_0202D8D0
+ add r2, r0, #0x0
+ ldr r0, _02083B94 ; =0x020FBF98
+ mov r1, #0xb
+ bx r3
+ nop
+_02083B90: .word FUN_0202D8D0
+_02083B94: .word 0x020FBF98
+
+ thumb_func_start FUN_02083B98
+FUN_02083B98: ; 0x02083B98
+ cmp r0, #0xc
+ bne _02083BA0
+ mov r0, #0xc
+ bx lr
+_02083BA0:
+ cmp r0, #0x6
+ bhs _02083BA8
+ add r0, r0, #0x6
+ bx lr
+_02083BA8:
+ sub r0, r0, #0x6
+ bx lr
+
+ thumb_func_start FUN_02083BAC
+FUN_02083BAC: ; 0x02083BAC
+ push {r4-r6, lr}
+ add r3, #0x84
+ add r5, r0, #0x0
+ add r6, r2, #0x0
+ ldr r4, [r3, #0x0]
+ bl FUN_02031190
+ cmp r5, r0
+ beq _02083C1A
+ ldr r0, _02083C1C ; =0x0000221C
+ mov r2, #0x59
+ ldr r0, [r4, r0]
+ add r1, r6, #0x0
+ lsl r2, r2, #0x4
+ blx memcpy
+ ldr r0, [r4, #0x58]
+ add r0, r0, #0x1
+ str r0, [r4, #0x58]
+ bl FUN_0206B8A4
+ mov r1, #0x59
+ ldr r2, [r4, #0x58]
+ lsl r1, r1, #0x4
+ mul r1, r2
+ cmp r1, r0
+ blt _02083C06
+ bl FUN_02031190
+ cmp r0, #0x1
+ bne _02083BF6
+ add r0, r4, #0x0
+ mov r1, #0x1b
+ mov r2, #0x0
+ bl FUN_0222F440
+ b _02083C14
+_02083BF6:
+ bl FUN_02031190
+ ldr r1, _02083C20 ; =0x00002218
+ ldr r2, [r4, #0x50]
+ ldr r1, [r4, r1]
+ bl FUN_0222F480
+ b _02083C14
+_02083C06:
+ bl FUN_02031190
+ ldr r1, _02083C20 ; =0x00002218
+ ldr r2, [r4, #0x50]
+ ldr r1, [r4, r1]
+ bl FUN_0222F480
+_02083C14:
+ ldr r0, [r4, #0x50]
+ add r0, r0, #0x1
+ str r0, [r4, #0x50]
+_02083C1A:
+ pop {r4-r6, pc}
+ .balign 4
+_02083C1C: .word 0x0000221C
+_02083C20: .word 0x00002218
+
+ thumb_func_start FUN_02083C24
+FUN_02083C24: ; 0x02083C24
+ push {r4-r6, lr}
+ add r3, #0x84
+ add r5, r0, #0x0
+ add r6, r2, #0x0
+ ldr r4, [r3, #0x0]
+ bl FUN_02031190
+ cmp r5, r0
+ beq _02083C40
+ ldrb r0, [r6, #0x0]
+ bl FUN_02083B98
+ add r4, #0x8c
+ str r0, [r4, #0x0]
+_02083C40:
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_02083C44
+FUN_02083C44: ; 0x02083C44
+ add r3, #0x84
+ ldrb r2, [r2, #0x0]
+ ldr r1, [r3, #0x0]
+ lsl r0, r0, #0x2
+ add r0, r1, r0
+ str r2, [r0, #0x60]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02083C54
+FUN_02083C54: ; 0x02083C54
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02083C58
+FUN_02083C58: ; 0x02083C58
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02083C5C
+FUN_02083C5C: ; 0x02083C5C
+ add r3, #0x84
+ ldr r0, [r3, #0x0]
+ mov r1, #0x2
+ str r1, [r0, #0x54]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02083C68
+FUN_02083C68: ; 0x02083C68
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02083C6C
+FUN_02083C6C: ; 0x02083C6C
+ add r3, #0x84
+ mov r0, #0x8b
+ ldrb r2, [r2, #0x0]
+ ldr r1, [r3, #0x0]
+ lsl r0, r0, #0x6
+ str r2, [r1, r0]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02083C7C
+FUN_02083C7C: ; 0x02083C7C
+ push {r4-r6, lr}
+ add r6, r0, #0x0
+ ldr r0, [r3, #0xc]
+ add r5, r2, #0x0
+ bl FUN_0202A918
+ add r4, r0, #0x0
+ bl FUN_02031190
+ cmp r6, r0
+ beq _02083CA8
+ mov r2, #0x0
+_02083C94:
+ ldrb r1, [r5, r2]
+ cmp r1, #0x0
+ beq _02083CA2
+ ldrb r0, [r4, r2]
+ cmp r0, r1
+ beq _02083CA2
+ strb r1, [r4, r2]
+_02083CA2:
+ add r2, r2, #0x1
+ cmp r2, #0xe
+ blt _02083C94
+_02083CA8:
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_02083CAC
+FUN_02083CAC: ; 0x02083CAC
+ push {r4-r6, lr}
+ add r3, #0x84
+ add r5, r0, #0x0
+ add r6, r2, #0x0
+ ldr r4, [r3, #0x0]
+ bl FUN_02031190
+ cmp r5, r0
+ beq _02083CD0
+ ldr r0, _02083CD4 ; =0x00002224
+ add r1, r6, #0x0
+ ldr r0, [r4, r0]
+ mov r2, #0x1
+ mov r3, #0x1a
+ bl FUN_02025520
+ mov r0, #0x3
+ str r0, [r4, #0x54]
+_02083CD0:
+ pop {r4-r6, pc}
+ nop
+_02083CD4: .word 0x00002224
+
+ thumb_func_start FUN_02083CD8
+FUN_02083CD8: ; 0x02083CD8
+ push {r4-r6, lr}
+ add r3, #0x84
+ add r5, r0, #0x0
+ add r6, r2, #0x0
+ ldr r4, [r3, #0x0]
+ bl FUN_02031190
+ cmp r5, r0
+ beq _02083D0A
+ ldr r1, _02083D0C ; =0x00002E14
+ mov r2, #0xfb
+ add r3, r4, r1
+ lsl r2, r2, #0x2
+ add r1, r5, #0x0
+ mul r1, r2
+ add r0, r6, #0x0
+ add r1, r3, r1
+ sub r2, r2, #0x4
+ blx MIi_CpuCopyFast
+ mov r0, #0x4
+ str r0, [r4, #0x54]
+ mov r0, #0x0
+ bl FUN_02031400
+_02083D0A:
+ pop {r4-r6, pc}
+ .balign 4
+_02083D0C: .word 0x00002E14
+
+ thumb_func_start FUN_02083D10
+FUN_02083D10: ; 0x02083D10
+ add r0, #0x84
+ str r1, [r0, #0x0]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02083D18
+FUN_02083D18: ; 0x02083D18
+ mov r0, #0xfb
+ lsl r0, r0, #0x2
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02083D20
+FUN_02083D20: ; 0x02083D20
+ mov r0, #0xe
+ bx lr
+
+ thumb_func_start FUN_02083D24
+FUN_02083D24: ; 0x02083D24
+ mov r0, #0x88
+ bx lr
+
+ thumb_func_start FUN_02083D28
+FUN_02083D28: ; 0x02083D28
+ mov r0, #0x59
+ lsl r0, r0, #0x4
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02083D30
+FUN_02083D30: ; 0x02083D30
+ add r1, #0x84
+ ldr r2, [r1, #0x0]
+ ldr r1, _02083D44 ; =0x000022F4
+ add r2, r2, r1
+ mov r1, #0x59
+ lsl r1, r1, #0x4
+ mul r1, r0
+ add r0, r2, r1
+ bx lr
+ nop
+_02083D44: .word 0x000022F4
+
+ thumb_func_start FUN_02083D48
+FUN_02083D48: ; 0x02083D48
+ ldr r3, _02083D54 ; =FUN_0202D8D0
+ add r2, r0, #0x0
+ ldr r0, _02083D58 ; =0x020FC01C
+ mov r1, #0x6c
+ bx r3
+ nop
+_02083D54: .word FUN_0202D8D0
+_02083D58: .word 0x020FC01C
+
+ thumb_func_start FUN_02083D5C
+FUN_02083D5C: ; 0x02083D5C
+ push {r3-r5, lr}
+ add r5, r2, #0x0
+ add r4, r3, #0x0
+ bl FUN_02031190
+ cmp r0, #0x0
+ beq _02083DBA
+ mov r3, #0xfb
+ lsl r3, r3, #0x2
+ ldrb r2, [r5, r3]
+ sub r0, r3, #0x4
+ add r1, r2, #0x0
+ mul r1, r0
+ mov r0, #0xe1
+ lsl r0, r0, #0x6
+ cmp r1, r0
+ ldr r2, _02083DE8 ; =0x000043D0
+ ble _02083D90
+ add r2, r4, r2
+ add r1, r2, r1
+ mov r2, #0x19
+ add r0, r5, #0x0
+ lsl r2, r2, #0x4
+ blx MIi_CpuCopyFast
+ b _02083D9C
+_02083D90:
+ add r2, r4, r2
+ add r1, r2, r1
+ add r0, r5, #0x0
+ sub r2, r3, #0x4
+ blx MIi_CpuCopyFast
+_02083D9C:
+ mov r1, #0xb5
+ ldr r0, _02083DE8 ; =0x000043D0
+ lsl r1, r1, #0x2
+ mov r2, #0xe1
+ ldr r1, [r4, r1]
+ add r0, r4, r0
+ lsl r2, r2, #0x6
+ blx MIi_CpuCopyFast
+ mov r0, #0xb2
+ lsl r0, r0, #0x2
+ add r0, r4, r0
+ bl FUN_020191D0
+ pop {r3-r5, pc}
+_02083DBA:
+ ldr r1, _02083DEC ; =0x000043CC
+ mov r0, #0xfa
+ ldr r2, [r4, r1]
+ lsl r0, r0, #0x2
+ add r3, r2, #0x0
+ mul r3, r0
+ mov r0, #0xe1
+ lsl r0, r0, #0x6
+ cmp r3, r0
+ bge _02083DDC
+ add r0, r2, #0x1
+ str r0, [r4, r1]
+ ldr r1, [r4, r1]
+ add r0, r4, #0x0
+ bl FUN_0208402C
+ pop {r3-r5, pc}
+_02083DDC:
+ mov r1, #0x0
+ mov r0, #0x7c
+ add r2, r1, #0x0
+ bl FUN_02030BC4
+ pop {r3-r5, pc}
+ .balign 4
+_02083DE8: .word 0x000043D0
+_02083DEC: .word 0x000043CC
+
+ thumb_func_start FUN_02083DF0
+FUN_02083DF0: ; 0x02083DF0
+ push {r3-r4}
+ cmp r0, #0x0
+ beq _02083E0E
+ add r4, r0, #0x0
+ mov r1, #0xa
+ mul r4, r1
+ ldr r0, _02083E14 ; =0x000093BD
+ add r3, r3, r4
+ add r3, r3, r0
+_02083E02:
+ ldrb r0, [r2, #0x0]
+ add r2, r2, #0x1
+ strb r0, [r3, #0x0]
+ add r3, r3, #0x1
+ sub r1, r1, #0x1
+ bne _02083E02
+_02083E0E:
+ pop {r3-r4}
+ bx lr
+ nop
+_02083E14: .word 0x000093BD
+
+ thumb_func_start FUN_02083E18
+FUN_02083E18: ; 0x02083E18
+ push {r4-r7}
+ cmp r3, #0x0
+ beq _02083E42
+ cmp r0, #0x0
+ bne _02083E42
+ ldr r0, _02083E48 ; =0x00004382
+ mov r7, #0x0
+_02083E26:
+ add r6, r2, #0x0
+ add r5, r3, r0
+ mov r4, #0xa
+_02083E2C:
+ ldrb r1, [r6, #0x0]
+ add r6, r6, #0x1
+ strb r1, [r5, #0x0]
+ add r5, r5, #0x1
+ sub r4, r4, #0x1
+ bne _02083E2C
+ add r7, r7, #0x1
+ add r2, #0xa
+ add r3, #0xa
+ cmp r7, #0x5
+ blt _02083E26
+_02083E42:
+ pop {r4-r7}
+ bx lr
+ nop
+_02083E48: .word 0x00004382
+
+ thumb_func_start FUN_02083E4C
+FUN_02083E4C: ; 0x02083E4C
+ push {r4, lr}
+ add r4, r3, #0x0
+ add r0, r4, #0x0
+ mov r1, #0x3
+ mov r2, #0x0
+ bl FUN_021D8B64
+ ldr r1, _02083E8C ; =0x000043D0
+ mov r2, #0xe1
+ mov r0, #0x0
+ add r1, r4, r1
+ lsl r2, r2, #0x6
+ blx MIi_CpuClearFast
+ bl FUN_02031190
+ cmp r0, #0x0
+ bne _02083E8A
+ bl FUN_02030F20
+ mov r1, #0xc6
+ lsl r1, r1, #0x2
+ str r0, [r4, r1]
+ bl FUN_0202CB8C
+ mov r1, #0xc7
+ lsl r1, r1, #0x2
+ str r0, [r4, r1]
+ ldr r0, _02083E90 ; =0x000093F4
+ mov r1, #0x1
+ str r1, [r4, r0]
+_02083E8A:
+ pop {r4, pc}
+ .balign 4
+_02083E8C: .word 0x000043D0
+_02083E90: .word 0x000093F4
+
+ thumb_func_start FUN_02083E94
+FUN_02083E94: ; 0x02083E94
+ push {r3-r6, lr}
+ sub sp, #0x4
+ add r6, r0, #0x0
+ add r5, r2, #0x0
+ add r4, r3, #0x0
+ cmp r6, #0x0
+ beq _02083F2E
+ bl FUN_02031190
+ cmp r0, #0x0
+ bne _02083F78
+ ldrb r0, [r5, #0x0]
+ add r1, sp, #0x0
+ strb r0, [r1, #0x0]
+ ldrb r0, [r5, #0x1]
+ strb r0, [r1, #0x1]
+ ldrb r0, [r5, #0x2]
+ strb r0, [r1, #0x2]
+ ldrb r0, [r5, #0x3]
+ strb r0, [r1, #0x3]
+ mov r0, #0xc6
+ strb r6, [r1, #0x0]
+ lsl r0, r0, #0x2
+ ldr r0, [r4, r0]
+ strb r0, [r1, #0x1]
+ ldrb r0, [r5, #0x2]
+ cmp r0, #0x0
+ beq _02083ED0
+ cmp r0, #0x1
+ b _02083F20
+_02083ED0:
+ bl FUN_02030F20
+ mov r1, #0xc6
+ lsl r1, r1, #0x2
+ ldr r1, [r4, r1]
+ cmp r1, r0
+ bne _02083EFE
+ bl FUN_021D917C
+ mov r1, #0xc6
+ lsl r1, r1, #0x2
+ ldr r1, [r4, r1]
+ cmp r1, r0
+ bne _02083EFE
+ bl FUN_0202CB8C
+ blx MATH_CountPopulation
+ mov r1, #0xc6
+ lsl r1, r1, #0x2
+ ldr r1, [r4, r1]
+ cmp r1, r0
+ beq _02083F06
+_02083EFE:
+ mov r1, #0x0
+ add r0, sp, #0x0
+ strb r1, [r0, #0x3]
+ b _02083F20
+_02083F06:
+ ldr r0, _02083F7C ; =0x000093B4
+ mov r1, #0x1
+ add r2, r1, #0x0
+ ldr r3, [r4, r0]
+ lsl r2, r6
+ orr r2, r3
+ str r2, [r4, r0]
+ add r0, sp, #0x0
+ strb r1, [r0, #0x3]
+ bl FUN_02030F20
+ bl FUN_02032B6C
+_02083F20:
+ mov r0, #0x7e
+ add r1, sp, #0x0
+ mov r2, #0x4
+ bl FUN_02030BC4
+ add sp, #0x4
+ pop {r3-r6, pc}
+_02083F2E:
+ ldrb r0, [r5, #0x2]
+ cmp r0, #0x0
+ beq _02083F3C
+ cmp r0, #0x1
+ beq _02083F6E
+ add sp, #0x4
+ pop {r3-r6, pc}
+_02083F3C:
+ ldrb r6, [r5, #0x0]
+ bl FUN_02031190
+ cmp r6, r0
+ bne _02083F78
+ ldrb r0, [r5, #0x3]
+ cmp r0, #0x0
+ bne _02083F5A
+ add r0, r4, #0x0
+ mov r1, #0x9
+ add r2, r6, #0x0
+ bl FUN_021D8B64
+ add sp, #0x4
+ pop {r3-r6, pc}
+_02083F5A:
+ ldrb r1, [r5, #0x1]
+ ldr r0, _02083F80 ; =0x000093B8
+ strh r1, [r4, r0]
+ ldrb r2, [r5, #0x0]
+ add r0, r4, #0x0
+ mov r1, #0x8
+ bl FUN_021D8B64
+ add sp, #0x4
+ pop {r3-r6, pc}
+_02083F6E:
+ ldrb r2, [r5, #0x0]
+ add r0, r4, #0x0
+ mov r1, #0x15
+ bl FUN_021D8B64
+_02083F78:
+ add sp, #0x4
+ pop {r3-r6, pc}
+ .balign 4
+_02083F7C: .word 0x000093B4
+_02083F80: .word 0x000093B8
+
+ thumb_func_start FUN_02083F84
+FUN_02083F84: ; 0x02083F84
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02083F88
+FUN_02083F88: ; 0x02083F88
+ push {r4, lr}
+ ldrb r2, [r2, #0x0]
+ add r4, r3, #0x0
+ add r0, r4, #0x0
+ mov r1, #0x1
+ bl FUN_021D8B64
+ bl FUN_02031190
+ cmp r0, #0x0
+ bne _02083FB6
+ mov r0, #0x3
+ lsl r0, r0, #0x8
+ ldr r0, [r4, r0]
+ cmp r0, #0x1
+ bne _02083FB6
+ ldr r1, _02083FB8 ; =0x000043CC
+ mov r0, #0x0
+ str r0, [r4, r1]
+ ldr r1, [r4, r1]
+ add r0, r4, #0x0
+ bl FUN_0208402C
+_02083FB6:
+ pop {r4, pc}
+ .balign 4
+_02083FB8: .word 0x000043CC
+
+ thumb_func_start FUN_02083FBC
+FUN_02083FBC: ; 0x02083FBC
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02083FC0
+FUN_02083FC0: ; 0x02083FC0
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02083FC4
+FUN_02083FC4: ; 0x02083FC4
+ push {r4, lr}
+ add r4, r3, #0x0
+ bl FUN_02031190
+ cmp r0, #0x0
+ beq _02083FDA
+ add r0, r4, #0x0
+ mov r1, #0xf
+ mov r2, #0x0
+ bl FUN_021D8B64
+_02083FDA:
+ pop {r4, pc}
+
+ thumb_func_start FUN_02083FDC
+FUN_02083FDC: ; 0x02083FDC
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r3, #0x0
+ bl FUN_02031190
+ cmp r0, #0x0
+ beq _02083FEE
+ bl ErrorHandling
+_02083FEE:
+ bl FUN_02031190
+ cmp r0, #0x0
+ bne _02084012
+ ldr r0, _0208401C ; =0x000093FC
+ ldr r1, [r4, r0]
+ cmp r1, #0x0
+ beq _0208400E
+ add r0, sp, #0x0
+ strb r5, [r0, #0x0]
+ mov r0, #0x7b
+ add r1, sp, #0x0
+ mov r2, #0x1
+ bl FUN_02030BC4
+ b _02084012
+_0208400E:
+ mov r1, #0x1
+ str r1, [r4, r0]
+_02084012:
+ mov r0, #0x0
+ mov r1, #0x1
+ bl FUN_020334E8
+ pop {r3-r5, pc}
+ .balign 4
+_0208401C: .word 0x000093FC
+
+ thumb_func_start FUN_02084020
+FUN_02084020: ; 0x02084020
+ ldr r0, _02084028 ; =0x000093F4
+ mov r1, #0x1
+ str r1, [r3, r0]
+ bx lr
+ .balign 4
+_02084028: .word 0x000093F4
+
+ thumb_func_start FUN_0208402C
+FUN_0208402C: ; 0x0208402C
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ mov r0, #0xb5
+ mov r2, #0xfa
+ add r4, r1, #0x0
+ lsl r0, r0, #0x2
+ ldr r1, [r5, r0]
+ lsl r2, r2, #0x2
+ add r0, r4, #0x0
+ mul r0, r2
+ add r0, r1, r0
+ ldr r1, _02084078 ; =0x00007C10
+ add r1, r5, r1
+ blx MIi_CpuCopyFast
+ ldr r0, _02084078 ; =0x00007C10
+ mov r2, #0x0
+ add r1, r2, #0x0
+ add r3, r5, r0
+_02084052:
+ ldr r0, [r3, #0x0]
+ add r1, r1, #0x1
+ eor r2, r0
+ add r3, r3, #0x4
+ cmp r1, #0xfa
+ blt _02084052
+ ldr r0, _0208407C ; =0x00007FF8
+ ldr r1, _02084078 ; =0x00007C10
+ str r2, [r5, r0]
+ add r0, r0, #0x4
+ mov r2, #0x3f
+ strb r4, [r5, r0]
+ mov r0, #0x76
+ add r1, r5, r1
+ lsl r2, r2, #0x4
+ bl FUN_02030B3C
+ pop {r3-r5, pc}
+ nop
+_02084078: .word 0x00007C10
+_0208407C: .word 0x00007FF8
+
+ thumb_func_start FUN_02084080
+FUN_02084080: ; 0x02084080
+ mov r2, #0x2
+ lsl r2, r2, #0xe
+ add r2, r1, r2
+ mov r1, #0x3f
+ lsl r1, r1, #0x4
+ mul r1, r0
+ add r0, r2, r1
+ bx lr
+
+ thumb_func_start FUN_02084090
+FUN_02084090: ; 0x02084090
+ mov r0, #0x4
+ bx lr
+
+ thumb_func_start FUN_02084094
+FUN_02084094: ; 0x02084094
+ mov r0, #0x4
+ bx lr
+
+ thumb_func_start FUN_02084098
+FUN_02084098: ; 0x02084098
+ ldr r3, _020840A4 ; =FUN_0202D8D0
+ add r2, r0, #0x0
+ ldr r0, _020840A8 ; =0x020FC52C
+ mov r1, #0x6c
+ bx r3
+ nop
+_020840A4: .word FUN_0202D8D0
+_020840A8: .word 0x020FC52C
+
+ thumb_func_start FUN_020840AC
+FUN_020840AC: ; 0x020840AC
+ ldr r0, _020840B8 ; =0x00004A34
+ ldr r1, [r3, r0]
+ add r1, r1, #0x1
+ str r1, [r3, r0]
+ bx lr
+ nop
+_020840B8: .word 0x00004A34
+
+ thumb_func_start FUN_020840BC
+FUN_020840BC: ; 0x020840BC
+ cmp r0, #0x0
+ bne _020840C6
+ ldrb r1, [r2, #0x0]
+ ldr r0, _020840C8 ; =0x00004A3C
+ str r1, [r3, r0]
+_020840C6:
+ bx lr
+ .balign 4
+_020840C8: .word 0x00004A3C
+
+ thumb_func_start FUN_020840CC
+FUN_020840CC: ; 0x020840CC
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ ldr r0, _0208410C ; =0x00004A34
+ add r4, r3, #0x0
+ mov r1, #0x0
+ str r1, [r4, r0]
+ mov r1, #0x1
+ add r0, #0xc
+ strb r1, [r4, r0]
+ bl FUN_02031190
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_02084270
+ add r0, r4, #0x0
+ bl FUN_021D844C
+ lsl r2, r5, #0x18
+ add r0, r4, #0x0
+ mov r1, #0x19
+ lsr r2, r2, #0x18
+ bl FUN_021D88E4
+ mov r0, #0x1
+ add r1, r0, #0x0
+ bl FUN_020334E8
+ ldr r0, _02084110 ; =0x00000658
+ bl FUN_020054C8
+ pop {r3-r5, pc}
+ .balign 4
+_0208410C: .word 0x00004A34
+_02084110: .word 0x00000658
+
+ thumb_func_start FUN_02084114
+FUN_02084114: ; 0x02084114
+ add r0, r3, #0x0
+ ldr r3, _02084120 ; =FUN_021D88E4
+ mov r1, #0x2
+ mov r2, #0x0
+ bx r3
+ nop
+_02084120: .word FUN_021D88E4 + 1
+
+ thumb_func_start FUN_02084124
+FUN_02084124: ; 0x02084124
+ push {r3-r6, lr}
+ sub sp, #0x4
+ add r6, r0, #0x0
+ add r5, r2, #0x0
+ add r4, r3, #0x0
+ cmp r6, #0x0
+ beq _020841BA
+ bl FUN_02031190
+ cmp r0, #0x0
+ bne _02084204
+ ldrb r0, [r5, #0x0]
+ add r1, sp, #0x0
+ strb r0, [r1, #0x0]
+ ldrb r0, [r5, #0x1]
+ strb r0, [r1, #0x1]
+ ldrb r0, [r5, #0x2]
+ strb r0, [r1, #0x2]
+ ldrb r0, [r5, #0x3]
+ strb r0, [r1, #0x3]
+ ldr r0, _02084208 ; =0x00004A48
+ strb r6, [r1, #0x0]
+ ldr r0, [r4, r0]
+ strb r0, [r1, #0x1]
+ ldrb r0, [r5, #0x2]
+ cmp r0, #0x0
+ beq _0208415E
+ cmp r0, #0x1
+ b _020841AC
+_0208415E:
+ bl FUN_02030F20
+ ldr r1, _02084208 ; =0x00004A48
+ ldr r1, [r4, r1]
+ cmp r1, r0
+ bne _02084186
+ bl FUN_021D8C24
+ ldr r1, _02084208 ; =0x00004A48
+ ldr r1, [r4, r1]
+ cmp r1, r0
+ bne _02084186
+ bl FUN_0202CB8C
+ blx MATH_CountPopulation
+ ldr r1, _02084208 ; =0x00004A48
+ ldr r2, [r4, r1]
+ cmp r2, r0
+ beq _0208418E
+_02084186:
+ mov r1, #0x0
+ add r0, sp, #0x0
+ strb r1, [r0, #0x3]
+ b _020841AC
+_0208418E:
+ add r0, r1, #0x0
+ add r0, #0x8
+ mov r2, #0x1
+ ldr r3, [r4, r0]
+ add r0, r2, #0x0
+ lsl r0, r6
+ orr r0, r3
+ add r1, #0x8
+ str r0, [r4, r1]
+ add r0, sp, #0x0
+ strb r2, [r0, #0x3]
+ bl FUN_02030F20
+ bl FUN_02032B6C
+_020841AC:
+ mov r0, #0x70
+ add r1, sp, #0x0
+ mov r2, #0x4
+ bl FUN_02030ADC
+ add sp, #0x4
+ pop {r3-r6, pc}
+_020841BA:
+ ldrb r0, [r5, #0x2]
+ cmp r0, #0x0
+ beq _020841C8
+ cmp r0, #0x1
+ beq _020841FA
+ add sp, #0x4
+ pop {r3-r6, pc}
+_020841C8:
+ ldrb r6, [r5, #0x0]
+ bl FUN_02031190
+ cmp r6, r0
+ bne _02084204
+ ldrb r0, [r5, #0x3]
+ cmp r0, #0x0
+ bne _020841E6
+ add r0, r4, #0x0
+ mov r1, #0x8
+ add r2, r6, #0x0
+ bl FUN_021D88E4
+ add sp, #0x4
+ pop {r3-r6, pc}
+_020841E6:
+ ldrb r1, [r5, #0x1]
+ ldr r0, _0208420C ; =0x00004A5C
+ strh r1, [r4, r0]
+ ldrb r2, [r5, #0x0]
+ add r0, r4, #0x0
+ mov r1, #0x7
+ bl FUN_021D88E4
+ add sp, #0x4
+ pop {r3-r6, pc}
+_020841FA:
+ ldrb r2, [r5, #0x0]
+ add r0, r4, #0x0
+ mov r1, #0x13
+ bl FUN_021D88E4
+_02084204:
+ add sp, #0x4
+ pop {r3-r6, pc}
+ .balign 4
+_02084208: .word 0x00004A48
+_0208420C: .word 0x00004A5C
+
+ thumb_func_start FUN_02084210
+FUN_02084210: ; 0x02084210
+ push {r4, lr}
+ ldrb r2, [r2, #0x0]
+ add r4, r3, #0x0
+ add r0, r4, #0x0
+ mov r1, #0x1
+ bl FUN_021D89CC
+ bl FUN_02031190
+ cmp r0, #0x0
+ bne _0208422E
+ mov r0, #0x3b
+ mov r1, #0x0
+ lsl r0, r0, #0x4
+ str r1, [r4, r0]
+_0208422E:
+ pop {r4, pc}
+
+ thumb_func_start FUN_02084230
+FUN_02084230: ; 0x02084230
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02084234
+FUN_02084234: ; 0x02084234
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02084238
+FUN_02084238: ; 0x02084238
+ push {r4, lr}
+ add r4, r3, #0x0
+ bl FUN_02031190
+ cmp r0, #0x0
+ beq _0208424E
+ add r0, r4, #0x0
+ mov r1, #0xd
+ mov r2, #0x0
+ bl FUN_021D88E4
+_0208424E:
+ pop {r4, pc}
+
+ thumb_func_start FUN_02084250
+FUN_02084250: ; 0x02084250
+ push {r3-r4, lr}
+ sub sp, #0x4
+ add r4, r0, #0x0
+ bl FUN_02031190
+ cmp r0, #0x0
+ bne _0208426C
+ add r0, sp, #0x0
+ strb r4, [r0, #0x0]
+ mov r0, #0x6e
+ add r1, sp, #0x0
+ mov r2, #0x1
+ bl FUN_02030ADC
+_0208426C:
+ add sp, #0x4
+ pop {r3-r4, pc}
+
+ thumb_func_start FUN_02084270
+FUN_02084270: ; 0x02084270
+ push {r3-r5, lr}
+ add r4, r0, #0x0
+ mov r0, #0xed
+ mov r3, #0x0
+ lsl r0, r0, #0x2
+ add r5, r4, r0
+ add r2, r3, #0x0
+ sub r0, #0xc6
+_02084280:
+ ldr r1, [r5, #0x0]
+ add r2, r2, #0x1
+ eor r3, r1
+ add r5, r5, #0x4
+ cmp r2, r0
+ blt _02084280
+ ldr r0, _020842AC ; =0x00000F6C
+ str r3, [r4, r0]
+ bl FUN_0201B9EC
+ mov r1, #0xf7
+ lsl r1, r1, #0x4
+ str r0, [r4, r1]
+ mov r1, #0xed
+ lsl r1, r1, #0x2
+ mov r2, #0x2f
+ mov r0, #0x74
+ add r1, r4, r1
+ lsl r2, r2, #0x6
+ bl FUN_02030A78
+ pop {r3-r5, pc}
+ .balign 4
+_020842AC: .word 0x00000F6C
+
+ thumb_func_start FUN_020842B0
+FUN_020842B0: ; 0x020842B0
+ mov r0, #0x0
+ bx lr
+
+ thumb_func_start FUN_020842B4
+FUN_020842B4: ; 0x020842B4
+ mov r0, #0x1
+ bx lr
+
+ thumb_func_start FUN_020842B8
+FUN_020842B8: ; 0x020842B8
+ mov r0, #0x4
+ bx lr
+
+ thumb_func_start FUN_020842BC
+FUN_020842BC: ; 0x020842BC
+ ldr r2, _020842CC ; =0x00000F74
+ add r2, r1, r2
+ mov r1, #0x2f
+ lsl r1, r1, #0x6
+ mul r1, r0
+ add r0, r2, r1
+ bx lr
+ nop
+_020842CC: .word 0x00000F74
+
+ thumb_func_start FUN_020842D0
+FUN_020842D0: ; 0x020842D0
+ ldr r0, _020842D4 ; =0x020FCA3C
+ bx lr
+ .balign 4
+_020842D4: .word 0x020FCA3C
+
+ thumb_func_start FUN_020842D8
+FUN_020842D8: ; 0x020842D8
+ mov r0, #0x9
+ bx lr
+
+ thumb_func_start FUN_020842DC
+FUN_020842DC: ; 0x020842DC
+ push {r3-r7, lr}
+ sub sp, #0x18
+ str r1, [sp, #0x4]
+ add r6, r0, #0x0
+ add r7, r2, #0x0
+ ldr r0, [sp, #0x4]
+ mov r1, #0x0
+ add r2, r3, #0x0
+ bl FUN_0206E710
+ mov r1, #0xe
+ add r4, r0, #0x0
+ bl FUN_0206E7DC
+ cmp r0, #0x1
+ beq _02084308
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ add sp, #0x18
+ mov r0, #0x0
+ pop {r3-r7, pc}
+_02084308:
+ add r0, r6, #0x0
+ mov r1, #0x9f
+ mov r2, #0x0
+ bl FUN_020671BC
+ add r5, r0, #0x0
+ add r0, r4, #0x0
+ mov r1, #0xf
+ bl FUN_0206E7DC
+ cmp r0, #0x0
+ beq _02084332
+ mov r0, #0x7
+ tst r0, r5
+ beq _02084332
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ add sp, #0x18
+ mov r0, #0x1
+ pop {r3-r7, pc}
+_02084332:
+ add r0, r4, #0x0
+ mov r1, #0x10
+ bl FUN_0206E7DC
+ cmp r0, #0x0
+ beq _02084350
+ mov r0, #0x88
+ tst r0, r5
+ beq _02084350
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ add sp, #0x18
+ mov r0, #0x1
+ pop {r3-r7, pc}
+_02084350:
+ add r0, r4, #0x0
+ mov r1, #0x11
+ bl FUN_0206E7DC
+ cmp r0, #0x0
+ beq _0208436E
+ mov r0, #0x10
+ tst r0, r5
+ beq _0208436E
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ add sp, #0x18
+ mov r0, #0x1
+ pop {r3-r7, pc}
+_0208436E:
+ add r0, r4, #0x0
+ mov r1, #0x12
+ bl FUN_0206E7DC
+ cmp r0, #0x0
+ beq _0208438C
+ mov r0, #0x20
+ tst r0, r5
+ beq _0208438C
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ add sp, #0x18
+ mov r0, #0x1
+ pop {r3-r7, pc}
+_0208438C:
+ add r0, r4, #0x0
+ mov r1, #0x13
+ bl FUN_0206E7DC
+ cmp r0, #0x0
+ beq _020843AA
+ mov r0, #0x40
+ tst r0, r5
+ beq _020843AA
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ add sp, #0x18
+ mov r0, #0x1
+ pop {r3-r7, pc}
+_020843AA:
+ add r0, r6, #0x0
+ mov r1, #0xa2
+ mov r2, #0x0
+ bl FUN_020671BC
+ add r5, r0, #0x0
+ add r0, r4, #0x0
+ mov r1, #0x17
+ bl FUN_0206E7DC
+ cmp r0, #0x0
+ bne _020843CE
+ add r0, r4, #0x0
+ mov r1, #0x18
+ bl FUN_0206E7DC
+ cmp r0, #0x0
+ beq _020843EA
+_020843CE:
+ add r0, r4, #0x0
+ mov r1, #0x19
+ bl FUN_0206E7DC
+ cmp r0, #0x0
+ bne _020843EA
+ cmp r5, #0x0
+ bne _02084414
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ add sp, #0x18
+ mov r0, #0x1
+ pop {r3-r7, pc}
+_020843EA:
+ add r0, r4, #0x0
+ mov r1, #0x26
+ bl FUN_0206E7DC
+ cmp r0, #0x0
+ beq _02084414
+ cmp r5, #0x0
+ beq _02084414
+ add r0, r6, #0x0
+ mov r1, #0xa3
+ mov r2, #0x0
+ bl FUN_020671BC
+ cmp r5, r0
+ bhs _02084414
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ add sp, #0x18
+ mov r0, #0x1
+ pop {r3-r7, pc}
+_02084414:
+ add r0, r4, #0x0
+ mov r1, #0x19
+ bl FUN_0206E7DC
+ cmp r0, #0x0
+ beq _0208443A
+ add r0, r6, #0x0
+ mov r1, #0xa0
+ mov r2, #0x0
+ bl FUN_020671BC
+ cmp r0, #0x64
+ bhs _0208443A
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ add sp, #0x18
+ mov r0, #0x1
+ pop {r3-r7, pc}
+_0208443A:
+ add r0, r4, #0x0
+ mov r1, #0x1a
+ bl FUN_0206E7DC
+ cmp r0, #0x0
+ beq _02084464
+ mov r0, #0x0
+ str r0, [sp, #0x0]
+ ldr r3, [sp, #0x4]
+ add r1, r6, #0x0
+ mov r2, #0x3
+ bl FUN_02069168
+ cmp r0, #0x0
+ beq _02084464
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ add sp, #0x18
+ mov r0, #0x1
+ pop {r3-r7, pc}
+_02084464:
+ add r0, r4, #0x0
+ mov r1, #0x22
+ bl FUN_0206E7DC
+ cmp r0, #0x0
+ bne _0208447C
+ add r0, r4, #0x0
+ mov r1, #0x23
+ bl FUN_0206E7DC
+ cmp r0, #0x0
+ beq _020844B2
+_0208447C:
+ add r1, r7, #0x0
+ add r0, r6, #0x0
+ add r1, #0x3e
+ mov r2, #0x0
+ bl FUN_020671BC
+ cmp r0, #0x3
+ bhs _020844B2
+ add r1, r7, #0x0
+ add r0, r6, #0x0
+ add r1, #0x36
+ mov r2, #0x0
+ bl FUN_020671BC
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ mov r1, #0x0
+ bl FUN_0206AB30
+ cmp r0, #0x5
+ blo _020844B2
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ add sp, #0x18
+ mov r0, #0x1
+ pop {r3-r7, pc}
+_020844B2:
+ add r0, r4, #0x0
+ mov r1, #0x24
+ bl FUN_0206E7DC
+ cmp r0, #0x0
+ beq _020844D6
+ add r0, r6, #0x0
+ add r1, r7, #0x0
+ bl FUN_02084DF0
+ cmp r0, #0x1
+ bne _020844D6
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ add sp, #0x18
+ mov r0, #0x1
+ pop {r3-r7, pc}
+_020844D6:
+ add r0, r4, #0x0
+ mov r1, #0x25
+ bl FUN_0206E7DC
+ cmp r0, #0x0
+ beq _02084502
+ mov r5, #0x0
+_020844E4:
+ add r0, r6, #0x0
+ add r1, r5, #0x0
+ bl FUN_02084DF0
+ cmp r0, #0x1
+ bne _020844FC
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ add sp, #0x18
+ mov r0, #0x1
+ pop {r3-r7, pc}
+_020844FC:
+ add r5, r5, #0x1
+ cmp r5, #0x4
+ blt _020844E4
+_02084502:
+ add r0, r6, #0x0
+ mov r1, #0xd
+ mov r2, #0x0
+ bl FUN_020671BC
+ add r5, r0, #0x0
+ add r0, r6, #0x0
+ mov r1, #0xe
+ mov r2, #0x0
+ bl FUN_020671BC
+ str r0, [sp, #0x14]
+ add r0, r6, #0x0
+ mov r1, #0xf
+ mov r2, #0x0
+ bl FUN_020671BC
+ str r0, [sp, #0x10]
+ add r0, r6, #0x0
+ mov r1, #0x10
+ mov r2, #0x0
+ bl FUN_020671BC
+ str r0, [sp, #0xc]
+ add r0, r6, #0x0
+ mov r1, #0x11
+ mov r2, #0x0
+ bl FUN_020671BC
+ str r0, [sp, #0x8]
+ add r0, r6, #0x0
+ mov r1, #0x12
+ mov r2, #0x0
+ bl FUN_020671BC
+ add r7, r0, #0x0
+ add r0, r6, #0x0
+ mov r1, #0x5
+ mov r2, #0x0
+ bl FUN_020671BC
+ mov r1, #0x49
+ lsl r1, r1, #0x2
+ cmp r0, r1
+ beq _020845C6
+ add r0, r4, #0x0
+ mov r1, #0x27
+ bl FUN_0206E7DC
+ cmp r0, #0x0
+ beq _020845C6
+ add r0, r4, #0x0
+ mov r1, #0x30
+ bl FUN_0206E7DC
+ cmp r0, #0x0
+ ble _0208459C
+ cmp r5, #0x64
+ bge _020845C6
+ ldr r0, [sp, #0x14]
+ add r1, r5, r0
+ ldr r0, [sp, #0x10]
+ add r1, r0, r1
+ ldr r0, [sp, #0xc]
+ add r1, r0, r1
+ ldr r0, [sp, #0x8]
+ add r0, r0, r1
+ add r1, r7, r0
+ ldr r0, _020847F4 ; =0x000001FE
+ cmp r1, r0
+ bge _020845C6
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ add sp, #0x18
+ mov r0, #0x1
+ pop {r3-r7, pc}
+_0208459C:
+ bge _020845C6
+ cmp r5, #0x0
+ ble _020845AE
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ add sp, #0x18
+ mov r0, #0x1
+ pop {r3-r7, pc}
+_020845AE:
+ add r0, r6, #0x0
+ add r1, r4, #0x0
+ bl FUN_02085000
+ cmp r0, #0x1
+ bne _020845C6
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ add sp, #0x18
+ mov r0, #0x1
+ pop {r3-r7, pc}
+_020845C6:
+ add r0, r4, #0x0
+ mov r1, #0x28
+ bl FUN_0206E7DC
+ cmp r0, #0x0
+ beq _02084632
+ add r0, r4, #0x0
+ mov r1, #0x31
+ bl FUN_0206E7DC
+ cmp r0, #0x0
+ ble _02084606
+ ldr r0, [sp, #0x14]
+ cmp r0, #0x64
+ bge _02084632
+ add r1, r5, r0
+ ldr r0, [sp, #0x10]
+ add r1, r0, r1
+ ldr r0, [sp, #0xc]
+ add r1, r0, r1
+ ldr r0, [sp, #0x8]
+ add r0, r0, r1
+ add r1, r7, r0
+ ldr r0, _020847F4 ; =0x000001FE
+ cmp r1, r0
+ bge _02084632
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ add sp, #0x18
+ mov r0, #0x1
+ pop {r3-r7, pc}
+_02084606:
+ bge _02084632
+ ldr r0, [sp, #0x14]
+ cmp r0, #0x0
+ ble _0208461A
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ add sp, #0x18
+ mov r0, #0x1
+ pop {r3-r7, pc}
+_0208461A:
+ add r0, r6, #0x0
+ add r1, r4, #0x0
+ bl FUN_02085000
+ cmp r0, #0x1
+ bne _02084632
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ add sp, #0x18
+ mov r0, #0x1
+ pop {r3-r7, pc}
+_02084632:
+ add r0, r4, #0x0
+ mov r1, #0x29
+ bl FUN_0206E7DC
+ cmp r0, #0x0
+ beq _020846A0
+ add r0, r4, #0x0
+ mov r1, #0x32
+ bl FUN_0206E7DC
+ cmp r0, #0x0
+ ble _02084674
+ ldr r0, [sp, #0x10]
+ cmp r0, #0x64
+ bge _020846A0
+ ldr r0, [sp, #0x14]
+ add r1, r5, r0
+ ldr r0, [sp, #0x10]
+ add r1, r0, r1
+ ldr r0, [sp, #0xc]
+ add r1, r0, r1
+ ldr r0, [sp, #0x8]
+ add r0, r0, r1
+ add r1, r7, r0
+ ldr r0, _020847F4 ; =0x000001FE
+ cmp r1, r0
+ bge _020846A0
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ add sp, #0x18
+ mov r0, #0x1
+ pop {r3-r7, pc}
+_02084674:
+ bge _020846A0
+ ldr r0, [sp, #0x10]
+ cmp r0, #0x0
+ ble _02084688
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ add sp, #0x18
+ mov r0, #0x1
+ pop {r3-r7, pc}
+_02084688:
+ add r0, r6, #0x0
+ add r1, r4, #0x0
+ bl FUN_02085000
+ cmp r0, #0x1
+ bne _020846A0
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ add sp, #0x18
+ mov r0, #0x1
+ pop {r3-r7, pc}
+_020846A0:
+ add r0, r4, #0x0
+ mov r1, #0x2a
+ bl FUN_0206E7DC
+ cmp r0, #0x0
+ beq _0208470E
+ add r0, r4, #0x0
+ mov r1, #0x33
+ bl FUN_0206E7DC
+ cmp r0, #0x0
+ ble _020846E2
+ ldr r0, [sp, #0xc]
+ cmp r0, #0x64
+ bge _0208470E
+ ldr r0, [sp, #0x14]
+ add r1, r5, r0
+ ldr r0, [sp, #0x10]
+ add r1, r0, r1
+ ldr r0, [sp, #0xc]
+ add r1, r0, r1
+ ldr r0, [sp, #0x8]
+ add r0, r0, r1
+ add r1, r7, r0
+ ldr r0, _020847F4 ; =0x000001FE
+ cmp r1, r0
+ bge _0208470E
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ add sp, #0x18
+ mov r0, #0x1
+ pop {r3-r7, pc}
+_020846E2:
+ bge _0208470E
+ ldr r0, [sp, #0xc]
+ cmp r0, #0x0
+ ble _020846F6
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ add sp, #0x18
+ mov r0, #0x1
+ pop {r3-r7, pc}
+_020846F6:
+ add r0, r6, #0x0
+ add r1, r4, #0x0
+ bl FUN_02085000
+ cmp r0, #0x1
+ bne _0208470E
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ add sp, #0x18
+ mov r0, #0x1
+ pop {r3-r7, pc}
+_0208470E:
+ add r0, r4, #0x0
+ mov r1, #0x2b
+ bl FUN_0206E7DC
+ cmp r0, #0x0
+ beq _0208477C
+ add r0, r4, #0x0
+ mov r1, #0x34
+ bl FUN_0206E7DC
+ cmp r0, #0x0
+ ble _02084750
+ ldr r0, [sp, #0x8]
+ cmp r0, #0x64
+ bge _0208477C
+ ldr r0, [sp, #0x14]
+ add r1, r5, r0
+ ldr r0, [sp, #0x10]
+ add r1, r0, r1
+ ldr r0, [sp, #0xc]
+ add r1, r0, r1
+ ldr r0, [sp, #0x8]
+ add r0, r0, r1
+ add r1, r7, r0
+ ldr r0, _020847F4 ; =0x000001FE
+ cmp r1, r0
+ bge _0208477C
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ add sp, #0x18
+ mov r0, #0x1
+ pop {r3-r7, pc}
+_02084750:
+ bge _0208477C
+ ldr r0, [sp, #0x8]
+ cmp r0, #0x0
+ ble _02084764
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ add sp, #0x18
+ mov r0, #0x1
+ pop {r3-r7, pc}
+_02084764:
+ add r0, r6, #0x0
+ add r1, r4, #0x0
+ bl FUN_02085000
+ cmp r0, #0x1
+ bne _0208477C
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ add sp, #0x18
+ mov r0, #0x1
+ pop {r3-r7, pc}
+_0208477C:
+ add r0, r4, #0x0
+ mov r1, #0x2c
+ bl FUN_0206E7DC
+ cmp r0, #0x0
+ beq _020847E6
+ add r0, r4, #0x0
+ mov r1, #0x35
+ bl FUN_0206E7DC
+ cmp r0, #0x0
+ ble _020847BC
+ cmp r7, #0x64
+ bge _020847E6
+ ldr r0, [sp, #0x14]
+ add r1, r5, r0
+ ldr r0, [sp, #0x10]
+ add r1, r0, r1
+ ldr r0, [sp, #0xc]
+ add r1, r0, r1
+ ldr r0, [sp, #0x8]
+ add r0, r0, r1
+ add r1, r7, r0
+ ldr r0, _020847F4 ; =0x000001FE
+ cmp r1, r0
+ bge _020847E6
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ add sp, #0x18
+ mov r0, #0x1
+ pop {r3-r7, pc}
+_020847BC:
+ bge _020847E6
+ cmp r7, #0x0
+ ble _020847CE
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ add sp, #0x18
+ mov r0, #0x1
+ pop {r3-r7, pc}
+_020847CE:
+ add r0, r6, #0x0
+ add r1, r4, #0x0
+ bl FUN_02085000
+ cmp r0, #0x1
+ bne _020847E6
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ add sp, #0x18
+ mov r0, #0x1
+ pop {r3-r7, pc}
+_020847E6:
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ mov r0, #0x0
+ add sp, #0x18
+ pop {r3-r7, pc}
+ nop
+_020847F4: .word 0x000001FE
+
+ thumb_func_start FUN_020847F8
+FUN_020847F8: ; 0x020847F8
+ push {r3-r5, lr}
+ add r5, r1, #0x0
+ add r1, r2, #0x0
+ add r4, r3, #0x0
+ bl FUN_0206B9B0
+ ldr r3, [sp, #0x10]
+ add r1, r5, #0x0
+ add r2, r4, #0x0
+ bl FUN_020842DC
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_02084810
+FUN_02084810: ; 0x02084810
+ push {r3-r7, lr}
+ sub sp, #0x70
+ add r5, r0, #0x0
+ ldr r0, [sp, #0x88]
+ str r2, [sp, #0x4]
+ str r0, [sp, #0x88]
+ add r0, r1, #0x0
+ ldr r2, [sp, #0x88]
+ mov r1, #0x0
+ str r3, [sp, #0x8]
+ bl FUN_0206E710
+ mov r1, #0xe
+ add r4, r0, #0x0
+ bl FUN_0206E7DC
+ cmp r0, #0x1
+ beq _02084840
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ add sp, #0x70
+ mov r0, #0x0
+ pop {r3-r7, pc}
+_02084840:
+ mov r6, #0x0
+ add r0, r5, #0x0
+ mov r1, #0x9f
+ add r2, r6, #0x0
+ add r7, r6, #0x0
+ bl FUN_020671BC
+ str r0, [sp, #0x50]
+ str r0, [sp, #0x54]
+ add r0, r4, #0x0
+ mov r1, #0xf
+ bl FUN_0206E7DC
+ cmp r0, #0x0
+ beq _02084868
+ ldr r1, [sp, #0x54]
+ mov r0, #0x7
+ bic r1, r0
+ str r1, [sp, #0x54]
+ mov r7, #0x1
+_02084868:
+ add r0, r4, #0x0
+ mov r1, #0x10
+ bl FUN_0206E7DC
+ cmp r0, #0x0
+ beq _0208487E
+ ldr r1, [sp, #0x54]
+ ldr r0, _02084A28 ; =0xFFFFF077
+ mov r7, #0x1
+ and r0, r1
+ str r0, [sp, #0x54]
+_0208487E:
+ add r0, r4, #0x0
+ mov r1, #0x11
+ bl FUN_0206E7DC
+ cmp r0, #0x0
+ beq _02084894
+ ldr r1, [sp, #0x54]
+ mov r0, #0x10
+ bic r1, r0
+ str r1, [sp, #0x54]
+ mov r7, #0x1
+_02084894:
+ add r0, r4, #0x0
+ mov r1, #0x12
+ bl FUN_0206E7DC
+ cmp r0, #0x0
+ beq _020848AA
+ ldr r1, [sp, #0x54]
+ mov r0, #0x20
+ bic r1, r0
+ str r1, [sp, #0x54]
+ mov r7, #0x1
+_020848AA:
+ add r0, r4, #0x0
+ mov r1, #0x13
+ bl FUN_0206E7DC
+ cmp r0, #0x0
+ beq _020848C0
+ ldr r1, [sp, #0x54]
+ mov r0, #0x40
+ bic r1, r0
+ str r1, [sp, #0x54]
+ mov r7, #0x1
+_020848C0:
+ ldr r1, [sp, #0x50]
+ ldr r0, [sp, #0x54]
+ cmp r1, r0
+ beq _020848D4
+ add r0, r5, #0x0
+ mov r1, #0x9f
+ add r2, sp, #0x54
+ bl FUN_02067830
+ mov r6, #0x1
+_020848D4:
+ add r0, r5, #0x0
+ mov r1, #0xa2
+ mov r2, #0x0
+ bl FUN_020671BC
+ str r0, [sp, #0x50]
+ add r0, r5, #0x0
+ mov r1, #0xa3
+ mov r2, #0x0
+ bl FUN_020671BC
+ str r0, [sp, #0x54]
+ add r0, r4, #0x0
+ mov r1, #0x17
+ bl FUN_0206E7DC
+ cmp r0, #0x0
+ bne _02084904
+ add r0, r4, #0x0
+ mov r1, #0x18
+ bl FUN_0206E7DC
+ cmp r0, #0x0
+ beq _02084930
+_02084904:
+ add r0, r4, #0x0
+ mov r1, #0x19
+ bl FUN_0206E7DC
+ cmp r0, #0x0
+ beq _02084930
+ ldr r0, [sp, #0x50]
+ cmp r0, #0x0
+ bne _0208492C
+ add r0, r4, #0x0
+ mov r1, #0x36
+ bl FUN_0206E7DC
+ add r3, r0, #0x0
+ ldr r1, [sp, #0x50]
+ ldr r2, [sp, #0x54]
+ add r0, r5, #0x0
+ bl FUN_02084F68
+ mov r6, #0x1
+_0208492C:
+ mov r7, #0x1
+ b _0208495C
+_02084930:
+ add r0, r4, #0x0
+ mov r1, #0x26
+ bl FUN_0206E7DC
+ cmp r0, #0x0
+ beq _0208495C
+ ldr r1, [sp, #0x50]
+ ldr r0, [sp, #0x54]
+ cmp r1, r0
+ bge _0208495A
+ add r0, r4, #0x0
+ mov r1, #0x36
+ bl FUN_0206E7DC
+ add r3, r0, #0x0
+ ldr r1, [sp, #0x50]
+ ldr r2, [sp, #0x54]
+ add r0, r5, #0x0
+ bl FUN_02084F68
+ mov r6, #0x1
+_0208495A:
+ mov r7, #0x1
+_0208495C:
+ add r0, r5, #0x0
+ mov r1, #0xa0
+ mov r2, #0x0
+ bl FUN_020671BC
+ str r0, [sp, #0x58]
+ add r0, r4, #0x0
+ mov r1, #0x19
+ bl FUN_0206E7DC
+ cmp r0, #0x0
+ beq _020849B4
+ ldr r0, [sp, #0x58]
+ cmp r0, #0x64
+ bge _020849B2
+ add r0, r5, #0x0
+ bl FUN_020686F8
+ add r2, r0, #0x0
+ add r0, r5, #0x0
+ mov r1, #0x8
+ bl FUN_02068018
+ add r0, r5, #0x0
+ bl FUN_02066ED8
+ ldr r0, [sp, #0x50]
+ cmp r0, #0x0
+ bne _020849B0
+ add r0, r5, #0x0
+ mov r1, #0xa3
+ mov r2, #0x0
+ bl FUN_020671BC
+ add r2, r0, #0x0
+ ldr r3, [sp, #0x54]
+ ldr r1, [sp, #0x50]
+ add r0, r5, #0x0
+ sub r3, r2, r3
+ str r2, [sp, #0x5c]
+ bl FUN_02084F68
+_020849B0:
+ mov r6, #0x1
+_020849B2:
+ mov r7, #0x1
+_020849B4:
+ add r0, r4, #0x0
+ mov r1, #0x1a
+ bl FUN_0206E7DC
+ cmp r0, #0x0
+ beq _020849C2
+ mov r7, #0x1
+_020849C2:
+ add r0, r4, #0x0
+ mov r1, #0x22
+ bl FUN_0206E7DC
+ cmp r0, #0x0
+ beq _020849E2
+ ldr r1, [sp, #0x4]
+ add r0, r5, #0x0
+ mov r2, #0x1
+ bl FUN_02084EC0
+ cmp r0, #0x1
+ bne _020849DE
+ mov r6, #0x1
+_020849DE:
+ mov r7, #0x1
+ b _02084A00
+_020849E2:
+ add r0, r4, #0x0
+ mov r1, #0x23
+ bl FUN_0206E7DC
+ cmp r0, #0x0
+ beq _02084A00
+ ldr r1, [sp, #0x4]
+ add r0, r5, #0x0
+ mov r2, #0x3
+ bl FUN_02084EC0
+ cmp r0, #0x1
+ bne _020849FE
+ mov r6, #0x1
+_020849FE:
+ mov r7, #0x1
+_02084A00:
+ add r0, r4, #0x0
+ mov r1, #0x24
+ bl FUN_0206E7DC
+ cmp r0, #0x0
+ beq _02084A2C
+ add r0, r4, #0x0
+ mov r1, #0x37
+ bl FUN_0206E7DC
+ add r2, r0, #0x0
+ ldr r1, [sp, #0x4]
+ add r0, r5, #0x0
+ bl FUN_02084E40
+ cmp r0, #0x1
+ bne _02084A24
+ mov r6, #0x1
+_02084A24:
+ mov r7, #0x1
+ b _02084A66
+ .balign 4
+_02084A28: .word 0xFFFFF077
+_02084A2C:
+ add r0, r4, #0x0
+ mov r1, #0x25
+ bl FUN_0206E7DC
+ cmp r0, #0x0
+ beq _02084A66
+ mov r0, #0x0
+ str r0, [sp, #0x50]
+ cmp r0, #0x4
+ bge _02084A64
+ mov r7, #0x37
+_02084A42:
+ add r0, r4, #0x0
+ add r1, r7, #0x0
+ bl FUN_0206E7DC
+ add r2, r0, #0x0
+ ldr r1, [sp, #0x50]
+ add r0, r5, #0x0
+ bl FUN_02084E40
+ cmp r0, #0x1
+ bne _02084A5A
+ mov r6, #0x1
+_02084A5A:
+ ldr r0, [sp, #0x50]
+ add r0, r0, #0x1
+ str r0, [sp, #0x50]
+ cmp r0, #0x4
+ blt _02084A42
+_02084A64:
+ mov r7, #0x1
+_02084A66:
+ add r0, r5, #0x0
+ mov r1, #0xd
+ mov r2, #0x0
+ bl FUN_020671BC
+ str r0, [sp, #0x50]
+ add r0, r5, #0x0
+ mov r1, #0xe
+ mov r2, #0x0
+ bl FUN_020671BC
+ str r0, [sp, #0x54]
+ add r0, r5, #0x0
+ mov r1, #0xf
+ mov r2, #0x0
+ bl FUN_020671BC
+ str r0, [sp, #0x58]
+ add r0, r5, #0x0
+ mov r1, #0x10
+ mov r2, #0x0
+ bl FUN_020671BC
+ str r0, [sp, #0x5c]
+ add r0, r5, #0x0
+ mov r1, #0x11
+ mov r2, #0x0
+ bl FUN_020671BC
+ str r0, [sp, #0x60]
+ add r0, r5, #0x0
+ mov r1, #0x12
+ mov r2, #0x0
+ bl FUN_020671BC
+ str r0, [sp, #0x64]
+ add r0, r5, #0x0
+ mov r1, #0x5
+ mov r2, #0x0
+ bl FUN_020671BC
+ mov r1, #0x49
+ lsl r1, r1, #0x2
+ cmp r0, r1
+ beq _02084B20
+ add r0, r4, #0x0
+ mov r1, #0x27
+ bl FUN_0206E7DC
+ cmp r0, #0x0
+ beq _02084B20
+ add r0, r4, #0x0
+ mov r1, #0x30
+ bl FUN_0206E7DC
+ ldr r1, [sp, #0x60]
+ ldr r2, [sp, #0x54]
+ str r1, [sp, #0x10]
+ ldr r1, [sp, #0x5c]
+ str r0, [sp, #0xc]
+ str r1, [sp, #0x14]
+ ldr r1, [sp, #0x58]
+ str r0, [sp, #0x6c]
+ add r2, r2, r1
+ ldr r1, [sp, #0x14]
+ ldr r3, [sp, #0x64]
+ add r2, r1, r2
+ ldr r1, [sp, #0x10]
+ ldr r0, [sp, #0x50]
+ add r1, r1, r2
+ ldr r2, [sp, #0xc]
+ add r1, r3, r1
+ bl FUN_02084FA8
+ mov r1, #0x0
+ mvn r1, r1
+ str r0, [sp, #0x68]
+ cmp r0, r1
+ beq _02084B18
+ str r0, [sp, #0x50]
+ add r0, r5, #0x0
+ mov r1, #0xd
+ add r2, sp, #0x50
+ bl FUN_02067830
+ add r0, r5, #0x0
+ bl FUN_02066ED8
+ mov r6, #0x1
+_02084B18:
+ ldr r0, [sp, #0x6c]
+ cmp r0, #0x0
+ ble _02084B20
+ mov r7, #0x1
+_02084B20:
+ add r0, r4, #0x0
+ mov r1, #0x28
+ bl FUN_0206E7DC
+ cmp r0, #0x0
+ beq _02084B80
+ add r0, r4, #0x0
+ mov r1, #0x31
+ bl FUN_0206E7DC
+ ldr r1, [sp, #0x60]
+ ldr r2, [sp, #0x50]
+ str r1, [sp, #0x1c]
+ ldr r1, [sp, #0x5c]
+ str r0, [sp, #0x18]
+ str r1, [sp, #0x20]
+ ldr r1, [sp, #0x58]
+ str r0, [sp, #0x6c]
+ add r2, r2, r1
+ ldr r1, [sp, #0x20]
+ ldr r3, [sp, #0x64]
+ add r2, r1, r2
+ ldr r1, [sp, #0x1c]
+ ldr r0, [sp, #0x54]
+ add r1, r1, r2
+ ldr r2, [sp, #0x18]
+ add r1, r3, r1
+ bl FUN_02084FA8
+ mov r1, #0x0
+ mvn r1, r1
+ str r0, [sp, #0x68]
+ cmp r0, r1
+ beq _02084B78
+ str r0, [sp, #0x54]
+ add r0, r5, #0x0
+ mov r1, #0xe
+ add r2, sp, #0x54
+ bl FUN_02067830
+ add r0, r5, #0x0
+ bl FUN_02066ED8
+ mov r6, #0x1
+_02084B78:
+ ldr r0, [sp, #0x6c]
+ cmp r0, #0x0
+ ble _02084B80
+ mov r7, #0x1
+_02084B80:
+ add r0, r4, #0x0
+ mov r1, #0x29
+ bl FUN_0206E7DC
+ cmp r0, #0x0
+ beq _02084BE0
+ add r0, r4, #0x0
+ mov r1, #0x32
+ bl FUN_0206E7DC
+ ldr r1, [sp, #0x60]
+ ldr r2, [sp, #0x50]
+ str r1, [sp, #0x28]
+ ldr r1, [sp, #0x5c]
+ str r0, [sp, #0x24]
+ str r1, [sp, #0x2c]
+ ldr r1, [sp, #0x54]
+ str r0, [sp, #0x6c]
+ add r2, r2, r1
+ ldr r1, [sp, #0x2c]
+ ldr r3, [sp, #0x64]
+ add r2, r1, r2
+ ldr r1, [sp, #0x28]
+ ldr r0, [sp, #0x58]
+ add r1, r1, r2
+ ldr r2, [sp, #0x24]
+ add r1, r3, r1
+ bl FUN_02084FA8
+ mov r1, #0x0
+ mvn r1, r1
+ str r0, [sp, #0x68]
+ cmp r0, r1
+ beq _02084BD8
+ str r0, [sp, #0x58]
+ add r0, r5, #0x0
+ mov r1, #0xf
+ add r2, sp, #0x58
+ bl FUN_02067830
+ add r0, r5, #0x0
+ bl FUN_02066ED8
+ mov r6, #0x1
+_02084BD8:
+ ldr r0, [sp, #0x6c]
+ cmp r0, #0x0
+ ble _02084BE0
+ mov r7, #0x1
+_02084BE0:
+ add r0, r4, #0x0
+ mov r1, #0x2a
+ bl FUN_0206E7DC
+ cmp r0, #0x0
+ beq _02084C40
+ add r0, r4, #0x0
+ mov r1, #0x33
+ bl FUN_0206E7DC
+ ldr r1, [sp, #0x60]
+ ldr r2, [sp, #0x50]
+ str r1, [sp, #0x34]
+ ldr r1, [sp, #0x58]
+ str r0, [sp, #0x30]
+ str r1, [sp, #0x38]
+ ldr r1, [sp, #0x54]
+ str r0, [sp, #0x6c]
+ add r2, r2, r1
+ ldr r1, [sp, #0x38]
+ ldr r3, [sp, #0x64]
+ add r2, r1, r2
+ ldr r1, [sp, #0x34]
+ ldr r0, [sp, #0x5c]
+ add r1, r1, r2
+ ldr r2, [sp, #0x30]
+ add r1, r3, r1
+ bl FUN_02084FA8
+ mov r1, #0x0
+ mvn r1, r1
+ str r0, [sp, #0x68]
+ cmp r0, r1
+ beq _02084C38
+ str r0, [sp, #0x5c]
+ add r0, r5, #0x0
+ mov r1, #0x10
+ add r2, sp, #0x5c
+ bl FUN_02067830
+ add r0, r5, #0x0
+ bl FUN_02066ED8
+ mov r6, #0x1
+_02084C38:
+ ldr r0, [sp, #0x6c]
+ cmp r0, #0x0
+ ble _02084C40
+ mov r7, #0x1
+_02084C40:
+ add r0, r4, #0x0
+ mov r1, #0x2b
+ bl FUN_0206E7DC
+ cmp r0, #0x0
+ beq _02084CA0
+ add r0, r4, #0x0
+ mov r1, #0x34
+ bl FUN_0206E7DC
+ ldr r1, [sp, #0x5c]
+ ldr r2, [sp, #0x50]
+ str r1, [sp, #0x40]
+ ldr r1, [sp, #0x58]
+ str r0, [sp, #0x3c]
+ str r1, [sp, #0x44]
+ ldr r1, [sp, #0x54]
+ str r0, [sp, #0x6c]
+ add r2, r2, r1
+ ldr r1, [sp, #0x44]
+ ldr r3, [sp, #0x64]
+ add r2, r1, r2
+ ldr r1, [sp, #0x40]
+ ldr r0, [sp, #0x60]
+ add r1, r1, r2
+ ldr r2, [sp, #0x3c]
+ add r1, r3, r1
+ bl FUN_02084FA8
+ mov r1, #0x0
+ mvn r1, r1
+ str r0, [sp, #0x68]
+ cmp r0, r1
+ beq _02084C98
+ str r0, [sp, #0x60]
+ add r0, r5, #0x0
+ mov r1, #0x11
+ add r2, sp, #0x60
+ bl FUN_02067830
+ add r0, r5, #0x0
+ bl FUN_02066ED8
+ mov r6, #0x1
+_02084C98:
+ ldr r0, [sp, #0x6c]
+ cmp r0, #0x0
+ ble _02084CA0
+ mov r7, #0x1
+_02084CA0:
+ add r0, r4, #0x0
+ mov r1, #0x2c
+ bl FUN_0206E7DC
+ cmp r0, #0x0
+ beq _02084D00
+ add r0, r4, #0x0
+ mov r1, #0x35
+ bl FUN_0206E7DC
+ ldr r1, [sp, #0x5c]
+ ldr r2, [sp, #0x50]
+ str r1, [sp, #0x4c]
+ ldr r1, [sp, #0x58]
+ str r0, [sp, #0x48]
+ mov r12, r1
+ ldr r1, [sp, #0x54]
+ str r0, [sp, #0x6c]
+ add r1, r2, r1
+ mov r2, r12
+ add r2, r2, r1
+ ldr r1, [sp, #0x4c]
+ ldr r3, [sp, #0x60]
+ add r1, r1, r2
+ ldr r0, [sp, #0x64]
+ ldr r2, [sp, #0x48]
+ add r1, r3, r1
+ bl FUN_02084FA8
+ mov r1, #0x0
+ mvn r1, r1
+ str r0, [sp, #0x68]
+ cmp r0, r1
+ beq _02084CF8
+ str r0, [sp, #0x64]
+ add r0, r5, #0x0
+ mov r1, #0x12
+ add r2, sp, #0x64
+ bl FUN_02067830
+ add r0, r5, #0x0
+ bl FUN_02066ED8
+ mov r6, #0x1
+_02084CF8:
+ ldr r0, [sp, #0x6c]
+ cmp r0, #0x0
+ ble _02084D00
+ mov r7, #0x1
+_02084D00:
+ cmp r6, #0x0
+ bne _02084D14
+ cmp r7, #0x1
+ bne _02084D14
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ add sp, #0x70
+ mov r0, #0x0
+ pop {r3-r7, pc}
+_02084D14:
+ add r0, r5, #0x0
+ mov r1, #0x9
+ mov r2, #0x0
+ bl FUN_020671BC
+ str r0, [sp, #0x50]
+ cmp r0, #0x64
+ bge _02084D54
+ add r0, r4, #0x0
+ mov r1, #0x2d
+ bl FUN_0206E7DC
+ cmp r0, #0x0
+ beq _02084DC2
+ add r0, r4, #0x0
+ mov r1, #0x38
+ bl FUN_0206E7DC
+ add r2, r0, #0x0
+ ldr r0, [sp, #0x88]
+ str r0, [sp, #0x0]
+ ldr r1, [sp, #0x50]
+ ldr r3, [sp, #0x8]
+ add r0, r5, #0x0
+ bl FUN_0208508C
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ add sp, #0x70
+ add r0, r6, #0x0
+ pop {r3-r7, pc}
+_02084D54:
+ blt _02084D8A
+ cmp r0, #0xc8
+ bge _02084D8A
+ add r0, r4, #0x0
+ mov r1, #0x2e
+ bl FUN_0206E7DC
+ cmp r0, #0x0
+ beq _02084DC2
+ add r0, r4, #0x0
+ mov r1, #0x39
+ bl FUN_0206E7DC
+ add r2, r0, #0x0
+ ldr r0, [sp, #0x88]
+ str r0, [sp, #0x0]
+ ldr r1, [sp, #0x50]
+ ldr r3, [sp, #0x8]
+ add r0, r5, #0x0
+ bl FUN_0208508C
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ add sp, #0x70
+ add r0, r6, #0x0
+ pop {r3-r7, pc}
+_02084D8A:
+ cmp r0, #0xc8
+ blt _02084DC2
+ cmp r0, #0xff
+ bgt _02084DC2
+ add r0, r4, #0x0
+ mov r1, #0x2f
+ bl FUN_0206E7DC
+ cmp r0, #0x0
+ beq _02084DC2
+ add r0, r4, #0x0
+ mov r1, #0x3a
+ bl FUN_0206E7DC
+ add r2, r0, #0x0
+ ldr r0, [sp, #0x88]
+ str r0, [sp, #0x0]
+ ldr r1, [sp, #0x50]
+ ldr r3, [sp, #0x8]
+ add r0, r5, #0x0
+ bl FUN_0208508C
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ add sp, #0x70
+ add r0, r6, #0x0
+ pop {r3-r7, pc}
+_02084DC2:
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ add r0, r6, #0x0
+ add sp, #0x70
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_02084DD0
+FUN_02084DD0: ; 0x02084DD0
+ push {r3-r5, lr}
+ add r5, r1, #0x0
+ add r1, r2, #0x0
+ add r4, r3, #0x0
+ bl FUN_0206B9B0
+ ldr r1, [sp, #0x14]
+ add r3, sp, #0x0
+ str r1, [sp, #0x0]
+ ldrh r3, [r3, #0x10]
+ add r1, r5, #0x0
+ add r2, r4, #0x0
+ bl FUN_02084810
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_02084DF0
+FUN_02084DF0: ; 0x02084DF0
+ push {r3-r7, lr}
+ add r6, r1, #0x0
+ add r1, #0x36
+ mov r2, #0x0
+ add r5, r0, #0x0
+ bl FUN_020671BC
+ lsl r0, r0, #0x10
+ lsr r7, r0, #0x10
+ bne _02084E08
+ mov r0, #0x0
+ pop {r3-r7, pc}
+_02084E08:
+ add r1, r6, #0x0
+ add r0, r5, #0x0
+ add r1, #0x3a
+ mov r2, #0x0
+ bl FUN_020671BC
+ lsl r0, r0, #0x18
+ add r6, #0x3e
+ lsr r4, r0, #0x18
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ mov r2, #0x0
+ bl FUN_020671BC
+ lsl r0, r0, #0x18
+ lsr r1, r0, #0x18
+ add r0, r7, #0x0
+ bl FUN_0206AB30
+ cmp r4, r0
+ bhs _02084E36
+ mov r0, #0x1
+ b _02084E38
+_02084E36:
+ mov r0, #0x0
+_02084E38:
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_02084E40
+FUN_02084E40: ; 0x02084E40
+ push {r3-r7, lr}
+ sub sp, #0x8
+ add r5, r1, #0x0
+ add r4, r2, #0x0
+ add r1, #0x36
+ mov r2, #0x0
+ add r6, r0, #0x0
+ bl FUN_020671BC
+ lsl r0, r0, #0x10
+ lsr r7, r0, #0x10
+ bne _02084E5E
+ add sp, #0x8
+ mov r0, #0x0
+ pop {r3-r7, pc}
+_02084E5E:
+ add r0, r5, #0x0
+ str r0, [sp, #0x0]
+ add r0, #0x3a
+ str r0, [sp, #0x0]
+ ldr r1, [sp, #0x0]
+ add r0, r6, #0x0
+ mov r2, #0x0
+ bl FUN_020671BC
+ add r1, sp, #0x4
+ strb r0, [r1, #0x0]
+ add r5, #0x3e
+ add r0, r6, #0x0
+ add r1, r5, #0x0
+ mov r2, #0x0
+ bl FUN_020671BC
+ add r1, r0, #0x0
+ lsl r1, r1, #0x18
+ add r0, r7, #0x0
+ lsr r1, r1, #0x18
+ bl FUN_0206AB30
+ add r1, sp, #0x4
+ ldrb r2, [r1, #0x0]
+ cmp r2, r0
+ bhs _02084EB8
+ cmp r4, #0x7f
+ bne _02084E9C
+ strb r0, [r1, #0x0]
+ b _02084EA8
+_02084E9C:
+ add r2, r2, r4
+ strb r2, [r1, #0x0]
+ ldrb r2, [r1, #0x0]
+ cmp r2, r0
+ bls _02084EA8
+ strb r0, [r1, #0x0]
+_02084EA8:
+ ldr r1, [sp, #0x0]
+ add r0, r6, #0x0
+ add r2, sp, #0x4
+ bl FUN_02067830
+ add sp, #0x8
+ mov r0, #0x1
+ pop {r3-r7, pc}
+_02084EB8:
+ mov r0, #0x0
+ add sp, #0x8
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_02084EC0
+FUN_02084EC0: ; 0x02084EC0
+ push {r4-r7, lr}
+ sub sp, #0xc
+ add r6, r2, #0x0
+ add r4, r1, #0x0
+ str r1, [sp, #0x0]
+ add r1, #0x3e
+ mov r2, #0x0
+ add r5, r0, #0x0
+ str r1, [sp, #0x0]
+ bl FUN_020671BC
+ add r1, sp, #0x8
+ strb r0, [r1, #0x0]
+ ldrb r0, [r1, #0x0]
+ cmp r0, #0x3
+ bne _02084EE6
+ add sp, #0xc
+ mov r0, #0x0
+ pop {r4-r7, pc}
+_02084EE6:
+ add r1, r4, #0x0
+ add r0, r5, #0x0
+ add r1, #0x36
+ mov r2, #0x0
+ bl FUN_020671BC
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ mov r1, #0x0
+ str r0, [sp, #0x4]
+ bl FUN_0206AB30
+ cmp r0, #0x5
+ bhs _02084F08
+ add sp, #0xc
+ mov r0, #0x0
+ pop {r4-r7, pc}
+_02084F08:
+ add r4, #0x3a
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ mov r2, #0x0
+ bl FUN_020671BC
+ add r1, sp, #0x8
+ strb r0, [r1, #0x1]
+ ldrb r1, [r1, #0x0]
+ ldr r0, [sp, #0x4]
+ bl FUN_0206AB30
+ add r7, r0, #0x0
+ add r0, sp, #0x8
+ ldrb r0, [r0, #0x0]
+ add r0, r0, r6
+ cmp r0, #0x3
+ bls _02084F30
+ mov r0, #0x3
+ b _02084F34
+_02084F30:
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+_02084F34:
+ add r1, sp, #0x8
+ strb r0, [r1, #0x0]
+ ldrb r1, [r1, #0x0]
+ ldr r0, [sp, #0x4]
+ bl FUN_0206AB30
+ add r1, sp, #0x8
+ ldrb r2, [r1, #0x1]
+ add r0, r2, r0
+ sub r0, r0, r7
+ strb r0, [r1, #0x1]
+ ldr r1, [sp, #0x0]
+ add r0, r5, #0x0
+ add r2, sp, #0x8
+ bl FUN_02067830
+ add r2, sp, #0x8
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ add r2, #0x1
+ bl FUN_02067830
+ mov r0, #0x1
+ add sp, #0xc
+ pop {r4-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_02084F68
+FUN_02084F68: ; 0x02084F68
+ push {r0-r3}
+ push {r3, lr}
+ cmp r2, #0x1
+ bne _02084F74
+ mov r3, #0x1
+ b _02084F8A
+_02084F74:
+ cmp r3, #0xff
+ bne _02084F7C
+ add r3, r2, #0x0
+ b _02084F8A
+_02084F7C:
+ cmp r3, #0xfe
+ bne _02084F84
+ lsr r3, r2, #0x1
+ b _02084F8A
+_02084F84:
+ cmp r3, #0xfd
+ bne _02084F8A
+ lsr r3, r2, #0x2
+_02084F8A:
+ ldr r1, [sp, #0xc]
+ add r1, r1, r3
+ cmp r1, r2
+ bls _02084F96
+ str r2, [sp, #0xc]
+ b _02084F98
+_02084F96:
+ str r1, [sp, #0xc]
+_02084F98:
+ mov r1, #0xa2
+ add r2, sp, #0xc
+ bl FUN_02067830
+ pop {r3}
+ pop {r3}
+ add sp, #0x10
+ bx r3
+
+ thumb_func_start FUN_02084FA8
+FUN_02084FA8: ; 0x02084FA8
+ push {r3-r4}
+ cmp r0, #0x0
+ bne _02084FBA
+ cmp r2, #0x0
+ bge _02084FBA
+ mov r0, #0x0
+ mvn r0, r0
+ pop {r3-r4}
+ bx lr
+_02084FBA:
+ cmp r0, #0x64
+ blt _02084FCA
+ cmp r2, #0x0
+ ble _02084FCA
+ mov r0, #0x0
+ mvn r0, r0
+ pop {r3-r4}
+ bx lr
+_02084FCA:
+ ldr r3, _02084FFC ; =0x000001FE
+ add r4, r0, r1
+ cmp r4, r3
+ blt _02084FDE
+ cmp r2, #0x0
+ ble _02084FDE
+ mov r0, #0x0
+ mvn r0, r0
+ pop {r3-r4}
+ bx lr
+_02084FDE:
+ add r0, r0, r2
+ cmp r0, #0x64
+ ble _02084FE8
+ mov r0, #0x64
+ b _02084FEE
+_02084FE8:
+ cmp r0, #0x0
+ bge _02084FEE
+ mov r0, #0x0
+_02084FEE:
+ ldr r2, _02084FFC ; =0x000001FE
+ add r3, r0, r1
+ cmp r3, r2
+ ble _02084FF8
+ sub r0, r2, r1
+_02084FF8:
+ pop {r3-r4}
+ bx lr
+ .balign 4
+_02084FFC: .word 0x000001FE
+
+ thumb_func_start FUN_02085000
+FUN_02085000: ; 0x02085000
+ push {r4, lr}
+ add r4, r1, #0x0
+ mov r1, #0x9
+ mov r2, #0x0
+ bl FUN_020671BC
+ cmp r0, #0xff
+ blt _02085014
+ mov r0, #0x0
+ pop {r4, pc}
+_02085014:
+ cmp r0, #0x64
+ bge _02085038
+ add r0, r4, #0x0
+ mov r1, #0x2d
+ bl FUN_0206E7DC
+ cmp r0, #0x0
+ beq _02085034
+ add r0, r4, #0x0
+ mov r1, #0x38
+ bl FUN_0206E7DC
+ cmp r0, #0x0
+ ble _02085034
+ mov r0, #0x1
+ pop {r4, pc}
+_02085034:
+ mov r0, #0x0
+ pop {r4, pc}
+_02085038:
+ blt _0208505E
+ cmp r0, #0xc8
+ bge _0208505E
+ add r0, r4, #0x0
+ mov r1, #0x2e
+ bl FUN_0206E7DC
+ cmp r0, #0x0
+ beq _0208505A
+ add r0, r4, #0x0
+ mov r1, #0x39
+ bl FUN_0206E7DC
+ cmp r0, #0x0
+ ble _0208505A
+ mov r0, #0x1
+ pop {r4, pc}
+_0208505A:
+ mov r0, #0x0
+ pop {r4, pc}
+_0208505E:
+ cmp r0, #0xc8
+ blt _02085086
+ cmp r0, #0xff
+ bge _02085086
+ add r0, r4, #0x0
+ mov r1, #0x2f
+ bl FUN_0206E7DC
+ cmp r0, #0x0
+ beq _02085082
+ add r0, r4, #0x0
+ mov r1, #0x3a
+ bl FUN_0206E7DC
+ cmp r0, #0x0
+ ble _02085082
+ mov r0, #0x1
+ pop {r4, pc}
+_02085082:
+ mov r0, #0x0
+ pop {r4, pc}
+_02085086:
+ mov r0, #0x0
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0208508C
+FUN_0208508C: ; 0x0208508C
+ push {r0-r3}
+ push {r4-r6, lr}
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ add r6, r3, #0x0
+ cmp r4, #0xff
+ bne _020850AA
+ ldr r0, [sp, #0x18]
+ cmp r0, #0x0
+ ble _020850AA
+ mov r0, #0x0
+ pop {r4-r6}
+ pop {r3}
+ add sp, #0x10
+ bx r3
+_020850AA:
+ cmp r4, #0x0
+ bne _020850BE
+ ldr r0, [sp, #0x18]
+ cmp r0, #0x0
+ bge _020850BE
+ mov r0, #0x0
+ pop {r4-r6}
+ pop {r3}
+ add sp, #0x10
+ bx r3
+_020850BE:
+ ldr r0, [sp, #0x18]
+ cmp r0, #0x0
+ ble _02085114
+ add r0, r5, #0x0
+ mov r1, #0x6
+ mov r2, #0x0
+ bl FUN_020671BC
+ lsl r0, r0, #0x10
+ ldr r2, [sp, #0x20]
+ lsr r0, r0, #0x10
+ mov r1, #0x1
+ bl FUN_0206E7B8
+ cmp r0, #0x34
+ bne _020850EC
+ ldr r1, [sp, #0x18]
+ mov r0, #0x96
+ mul r0, r1
+ mov r1, #0x64
+ blx _s32_div_f
+ str r0, [sp, #0x18]
+_020850EC:
+ add r0, r5, #0x0
+ mov r1, #0x9a
+ mov r2, #0x0
+ bl FUN_020671BC
+ cmp r0, #0xb
+ bne _02085100
+ ldr r0, [sp, #0x18]
+ add r0, r0, #0x1
+ str r0, [sp, #0x18]
+_02085100:
+ add r0, r5, #0x0
+ mov r1, #0x97
+ mov r2, #0x0
+ bl FUN_020671BC
+ cmp r6, r0
+ bne _02085114
+ ldr r0, [sp, #0x18]
+ add r0, r0, #0x1
+ str r0, [sp, #0x18]
+_02085114:
+ ldr r0, [sp, #0x18]
+ add r0, r0, r4
+ str r0, [sp, #0x18]
+ cmp r0, #0xff
+ ble _02085122
+ mov r0, #0xff
+ str r0, [sp, #0x18]
+_02085122:
+ ldr r0, [sp, #0x18]
+ cmp r0, #0x0
+ bge _0208512C
+ mov r0, #0x0
+ str r0, [sp, #0x18]
+_0208512C:
+ add r0, r5, #0x0
+ mov r1, #0x9
+ add r2, sp, #0x18
+ bl FUN_02067830
+ mov r0, #0x1
+ pop {r4-r6}
+ pop {r3}
+ add sp, #0x10
+ bx r3
+
+ thumb_func_start FUN_02085140
+FUN_02085140: ; 0x02085140
+ push {r4-r7, lr}
+ sub sp, #0xc
+ str r0, [sp, #0x0]
+ bl FUN_0206B9AC
+ mov r7, #0x0
+ str r0, [sp, #0x4]
+ cmp r0, #0x0
+ ble _020851B4
+ mov r6, #0x7f
+_02085154:
+ ldr r0, [sp, #0x0]
+ add r1, r7, #0x0
+ bl FUN_0206B9B0
+ mov r1, #0xab
+ mov r2, #0x0
+ add r5, r0, #0x0
+ bl FUN_020671BC
+ cmp r0, #0x0
+ beq _020851AC
+ add r0, r5, #0x0
+ mov r1, #0xa3
+ mov r2, #0x0
+ bl FUN_020671BC
+ str r0, [sp, #0x8]
+ add r0, r5, #0x0
+ mov r1, #0xa2
+ add r2, sp, #0x8
+ bl FUN_02067830
+ mov r0, #0x0
+ str r0, [sp, #0x8]
+ add r0, r5, #0x0
+ mov r1, #0x9f
+ add r2, sp, #0x8
+ bl FUN_02067830
+ mov r4, #0x0
+_02085190:
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_02084DF0
+ cmp r0, #0x1
+ bne _020851A6
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ add r2, r6, #0x0
+ bl FUN_02084E40
+_020851A6:
+ add r4, r4, #0x1
+ cmp r4, #0x4
+ blt _02085190
+_020851AC:
+ ldr r0, [sp, #0x4]
+ add r7, r7, #0x1
+ cmp r7, r0
+ blt _02085154
+_020851B4:
+ add sp, #0xc
+ pop {r4-r7, pc}
+
+ thumb_func_start FUN_020851B8
+FUN_020851B8: ; 0x020851B8
+ push {r3, lr}
+ mov r1, #0xc
+ bl FUN_02016998
+ mov r1, #0x0
+ strb r1, [r0, #0x0]
+ strb r1, [r0, #0x1]
+ strb r1, [r0, #0x2]
+ strb r1, [r0, #0x3]
+ strb r1, [r0, #0x4]
+ strb r1, [r0, #0x5]
+ strb r1, [r0, #0x6]
+ strb r1, [r0, #0x7]
+ strb r1, [r0, #0x8]
+ strb r1, [r0, #0x9]
+ strb r1, [r0, #0xa]
+ strb r1, [r0, #0xb]
+ pop {r3, pc}
+
+ thumb_func_start FUN_020851DC
+FUN_020851DC: ; 0x020851DC
+ push {r4-r6, lr}
+ sub r1, #0x95
+ lsl r1, r1, #0x10
+ lsr r6, r1, #0x10
+ add r1, r6, #0x0
+ add r5, r0, #0x0
+ add r4, r2, #0x0
+ bl FUN_02085200
+ cmp r4, #0x1
+ bne _020851F4
+ strb r6, [r5, #0x8]
+_020851F4:
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_020851F8
+FUN_020851F8: ; 0x020851F8
+ strb r1, [r0, #0x9]
+ strb r2, [r0, #0xa]
+ strb r3, [r0, #0xb]
+ bx lr
+
+ thumb_func_start FUN_02085200
+FUN_02085200: ; 0x02085200
+ push {r3-r6}
+ lsr r6, r1, #0x1f
+ lsl r5, r1, #0x1b
+ lsr r2, r1, #0x5
+ lsl r4, r2, #0x2
+ sub r5, r5, r6
+ mov r1, #0x1b
+ ror r5, r1
+ ldr r3, [r0, r4]
+ mov r2, #0x1
+ add r1, r6, r5
+ lsl r2, r1
+ add r1, r3, #0x0
+ orr r1, r2
+ str r1, [r0, r4]
+ pop {r3-r6}
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02085224
+FUN_02085224: ; 0x02085224
+ push {r4-r5}
+ lsr r5, r1, #0x1f
+ lsl r4, r1, #0x1b
+ lsr r1, r1, #0x5
+ lsl r1, r1, #0x2
+ sub r4, r4, r5
+ mov r3, #0x1b
+ ror r4, r3
+ mov r2, #0x1
+ add r3, r5, r4
+ add r4, r2, #0x0
+ lsl r4, r3
+ ldr r0, [r0, r1]
+ tst r0, r4
+ bne _02085244
+ mov r2, #0x0
+_02085244:
+ lsl r0, r2, #0x18
+ lsr r0, r0, #0x18
+ pop {r4-r5}
+ bx lr
+
+ thumb_func_start FUN_0208524C
+FUN_0208524C: ; 0x0208524C
+ ldrb r3, [r0, #0x9]
+ strb r3, [r1, #0x0]
+ ldrb r0, [r0, #0xa]
+ strb r0, [r2, #0x0]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02085258
+FUN_02085258: ; 0x02085258
+ ldr r3, _02085260 ; =FUN_02006670
+ add r1, r0, #0x0
+ mov r0, #0x44
+ bx r3
+ .balign 4
+_02085260: .word FUN_02006670
+
+ thumb_func_start FUN_02085264
+FUN_02085264: ; 0x02085264
+ ldr r3, _02085268 ; =FUN_02006704
+ bx r3
+ .balign 4
+_02085268: .word FUN_02006704
+
+ thumb_func_start FUN_0208526C
+FUN_0208526C: ; 0x0208526C
+ ldr r3, _02085270 ; =FUN_020066F4
+ bx r3
+ .balign 4
+_02085270: .word FUN_020066F4
+
+ thumb_func_start FUN_02085274
+FUN_02085274: ; 0x02085274
+ add r3, r0, #0x0
+ add r2, r1, #0x0
+ add r1, r3, #0x0
+ ldr r3, _02085280 ; =LoadFromNarc_2
+ mov r0, #0x44
+ bx r3
+ .balign 4
+_02085280: .word LoadFromNarc_2
+
+ thumb_func_start FUN_02085284
+FUN_02085284: ; 0x02085284
+ ldr r3, _0208528C ; =FUN_02085274
+ sub r0, #0x95
+ bx r3
+ nop
+_0208528C: .word FUN_02085274
+
+ thumb_func_start FUN_02085290
+FUN_02085290: ; 0x02085290
+ cmp r1, #0xa
+ bhi _020852E2
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #0x6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_020852A0: ; jump table (using 16-bit offset)
+ .short _020852B6 - _020852A0 - 2; case 0
+ .short _020852BA - _020852A0 - 2; case 1
+ .short _020852BE - _020852A0 - 2; case 2
+ .short _020852C2 - _020852A0 - 2; case 3
+ .short _020852C6 - _020852A0 - 2; case 4
+ .short _020852CA - _020852A0 - 2; case 5
+ .short _020852CE - _020852A0 - 2; case 6
+ .short _020852D2 - _020852A0 - 2; case 7
+ .short _020852D6 - _020852A0 - 2; case 8
+ .short _020852DA - _020852A0 - 2; case 9
+ .short _020852DE - _020852A0 - 2; case 10
+_020852B6:
+ ldrh r0, [r0, #0x0]
+ bx lr
+_020852BA:
+ ldrb r0, [r0, #0x2]
+ bx lr
+_020852BE:
+ ldrb r0, [r0, #0x3]
+ bx lr
+_020852C2:
+ ldrb r0, [r0, #0x4]
+ bx lr
+_020852C6:
+ ldrb r0, [r0, #0x5]
+ bx lr
+_020852CA:
+ ldrb r0, [r0, #0x6]
+ bx lr
+_020852CE:
+ ldrb r0, [r0, #0x7]
+ bx lr
+_020852D2:
+ ldrb r0, [r0, #0x8]
+ bx lr
+_020852D6:
+ ldrb r0, [r0, #0x9]
+ bx lr
+_020852DA:
+ ldrb r0, [r0, #0xa]
+ bx lr
+_020852DE:
+ ldrb r0, [r0, #0xb]
+ bx lr
+_020852E2:
+ mov r0, #0x0
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_020852E8
+FUN_020852E8: ; 0x020852E8
+ push {r3-r5, lr}
+ ldr r2, _0208530C ; =0x00000175
+ add r4, r0, #0x0
+ add r3, r1, #0x0
+ mov r0, #0x1
+ mov r1, #0x1a
+ bl FUN_0200A86C
+ add r5, r0, #0x0
+ add r1, r4, #0x0
+ bl FUN_0200A914
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_0200A8B8
+ add r0, r4, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+_0208530C: .word 0x00000175
+
+ thumb_func_start FUN_02085310
+FUN_02085310: ; 0x02085310
+ push {r3-r5, lr}
+ mov r2, #0x5d
+ add r4, r0, #0x0
+ add r3, r1, #0x0
+ mov r0, #0x1
+ mov r1, #0x1a
+ lsl r2, r2, #0x2
+ bl FUN_0200A86C
+ add r5, r0, #0x0
+ add r1, r4, #0x0
+ bl FUN_0200A914
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_0200A8B8
+ add r0, r4, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_02085338
+FUN_02085338: ; 0x02085338
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ add r7, r1, #0x0
+ add r0, r3, #0x0
+ mov r1, #0x24
+ add r6, r2, #0x0
+ bl FUN_02016998
+ add r4, r0, #0x0
+ strb r5, [r4, #0x0]
+ strb r7, [r4, #0x1]
+ add r0, r6, #0x0
+ bl FUN_02024DA0
+ str r0, [r4, #0xc]
+ add r0, r6, #0x0
+ bl FUN_02013B5C
+ str r0, [r4, #0x10]
+ add r0, r6, #0x0
+ bl FUN_020462AC
+ bl FUN_0205ED0C
+ strb r0, [r4, #0x4]
+ mov r1, #0x0
+ strb r1, [r4, #0x5]
+ mov r0, #0x1
+ strb r0, [r4, #0x2]
+ add r0, r6, #0x0
+ strb r1, [r4, #0x3]
+ bl LoadPlayerDataAddress
+ bl FUN_02025084
+ str r0, [r4, #0x8]
+ cmp r5, #0x2
+ bne _02085390
+ add r0, r4, #0x0
+ add r0, #0x14
+ mov r1, #0x3
+ bl FUN_0201373C
+ b _020853A0
+_02085390:
+ ldr r0, _020853A4 ; =0x0000FFFF
+ mov r1, #0x0
+ add r2, r4, #0x0
+_02085396:
+ add r1, r1, #0x1
+ strh r0, [r2, #0x1c]
+ add r2, r2, #0x2
+ cmp r1, #0x2
+ blt _02085396
+_020853A0:
+ add r0, r4, #0x0
+ pop {r3-r7, pc}
+ .balign 4
+_020853A4: .word 0x0000FFFF
+
+ thumb_func_start FUN_020853A8
+FUN_020853A8: ; 0x020853A8
+ ldr r3, _020853AC ; =FUN_02016A18
+ bx r3
+ .balign 4
+_020853AC: .word FUN_02016A18
+
+ thumb_func_start FUN_020853B0
+FUN_020853B0: ; 0x020853B0
+ strh r1, [r0, #0x1c]
+ bx lr
+
+ thumb_func_start FUN_020853B4
+FUN_020853B4: ; 0x020853B4
+ strh r1, [r0, #0x1c]
+ strh r2, [r0, #0x1e]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_020853BC
+FUN_020853BC: ; 0x020853BC
+ ldrh r2, [r1, #0x0]
+ strh r2, [r0, #0x14]
+ ldrh r2, [r1, #0x2]
+ strh r2, [r0, #0x16]
+ ldrh r2, [r1, #0x4]
+ strh r2, [r0, #0x18]
+ ldrh r1, [r1, #0x6]
+ strh r1, [r0, #0x1a]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_020853D0
+FUN_020853D0: ; 0x020853D0
+ mov r1, #0x1
+ strb r1, [r0, #0x2]
+ mov r1, #0x0
+ strb r1, [r0, #0x3]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_020853DC
+FUN_020853DC: ; 0x020853DC
+ mov r1, #0x1
+ strb r1, [r0, #0x5]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_020853E4
+FUN_020853E4: ; 0x020853E4
+ ldrb r0, [r0, #0x2]
+ bx lr
+
+ thumb_func_start FUN_020853E8
+FUN_020853E8: ; 0x020853E8
+ ldrb r0, [r0, #0x3]
+ bx lr
+
+ thumb_func_start FUN_020853EC
+FUN_020853EC: ; 0x020853EC
+ ldrh r0, [r0, #0x1c]
+ bx lr
+
+ thumb_func_start FUN_020853F0
+FUN_020853F0: ; 0x020853F0
+ ldrh r2, [r0, #0x1c]
+ strh r2, [r1, #0x0]
+ ldrh r0, [r0, #0x1e]
+ strh r0, [r1, #0x2]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_020853FC
+FUN_020853FC: ; 0x020853FC
+ add r2, r0, #0x0
+ ldr r3, _02085408 ; =FUN_02013960
+ add r2, #0x14
+ add r0, r1, #0x0
+ add r1, r2, #0x0
+ bx r3
+ .balign 4
+_02085408: .word FUN_02013960
+
+ thumb_func_start FUN_0208540C
+FUN_0208540C: ; 0x0208540C
+ ldrb r0, [r0, #0x0]
+ bx lr
+
+ thumb_func_start FUN_02085410
+FUN_02085410: ; 0x02085410
+ ldrb r0, [r0, #0x1]
+ bx lr
+
+ thumb_func_start FUN_02085414
+FUN_02085414: ; 0x02085414
+ ldr r0, [r0, #0x8]
+ bx lr
+
+ thumb_func_start FUN_02085418
+FUN_02085418: ; 0x02085418
+ ldr r0, [r0, #0xc]
+ bx lr
+
+ thumb_func_start FUN_0208541C
+FUN_0208541C: ; 0x0208541C
+ ldr r0, [r0, #0x10]
+ bx lr
+
+ thumb_func_start FUN_02085420
+FUN_02085420: ; 0x02085420
+ ldrb r0, [r0, #0x4]
+ bx lr
+
+ thumb_func_start FUN_02085424
+FUN_02085424: ; 0x02085424
+ ldrb r0, [r0, #0x5]
+ bx lr
+
+ thumb_func_start FUN_02085428
+FUN_02085428: ; 0x02085428
+ ldrb r3, [r0, #0x0]
+ cmp r3, #0x0
+ beq _02085438
+ cmp r3, #0x1
+ beq _0208543E
+ cmp r3, #0x2
+ beq _02085448
+ bx lr
+_02085438:
+ ldrh r0, [r0, #0x1c]
+ strh r0, [r1, #0x0]
+ bx lr
+_0208543E:
+ ldrh r2, [r0, #0x1c]
+ strh r2, [r1, #0x0]
+ ldrh r0, [r0, #0x1e]
+ strh r0, [r1, #0x2]
+ bx lr
+_02085448:
+ ldrh r1, [r0, #0x14]
+ strh r1, [r2, #0x0]
+ ldrh r1, [r0, #0x16]
+ strh r1, [r2, #0x2]
+ ldrh r1, [r0, #0x18]
+ strh r1, [r2, #0x4]
+ ldrh r0, [r0, #0x1a]
+ strh r0, [r2, #0x6]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_0208545C
+FUN_0208545C: ; 0x0208545C
+ push {r3, lr}
+ ldrb r3, [r0, #0x0]
+ cmp r3, #0x0
+ beq _0208546C
+ cmp r3, #0x1
+ beq _0208547C
+ cmp r3, #0x2
+ b _02085494
+_0208546C:
+ ldrh r1, [r1, #0x0]
+ ldrh r0, [r0, #0x1c]
+ cmp r1, r0
+ bne _02085478
+ mov r0, #0x1
+ pop {r3, pc}
+_02085478:
+ mov r0, #0x0
+ pop {r3, pc}
+_0208547C:
+ ldrh r3, [r1, #0x0]
+ ldrh r2, [r0, #0x1c]
+ cmp r3, r2
+ bne _02085490
+ ldrh r1, [r1, #0x2]
+ ldrh r0, [r0, #0x1e]
+ cmp r1, r0
+ bne _02085490
+ mov r0, #0x1
+ pop {r3, pc}
+_02085490:
+ mov r0, #0x0
+ pop {r3, pc}
+_02085494:
+ add r0, #0x14
+ add r1, r2, #0x0
+ bl FUN_02013928
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_020854A0
+FUN_020854A0: ; 0x020854A0
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ add r6, r2, #0x0
+ bl FUN_0208545C
+ cmp r0, #0x0
+ bne _020854B4
+ mov r0, #0x1
+ b _020854B6
+_020854B4:
+ mov r0, #0x0
+_020854B6:
+ strb r0, [r5, #0x3]
+ mov r1, #0x0
+ strb r1, [r5, #0x2]
+ add r2, r5, #0x0
+_020854BE:
+ ldrh r0, [r4, #0x0]
+ add r1, r1, #0x1
+ add r4, r4, #0x2
+ strh r0, [r2, #0x1c]
+ add r2, r2, #0x2
+ cmp r1, #0x2
+ blt _020854BE
+ ldrh r0, [r6, #0x0]
+ strh r0, [r5, #0x14]
+ ldrh r0, [r6, #0x2]
+ strh r0, [r5, #0x16]
+ ldrh r0, [r6, #0x4]
+ strh r0, [r5, #0x18]
+ ldrh r0, [r6, #0x6]
+ strh r0, [r5, #0x1a]
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_020854E0
+FUN_020854E0: ; 0x020854E0
+ push {r3-r7, lr}
+ sub sp, #0x8
+ add r5, r0, #0x0
+ add r7, r1, #0x0
+ add r6, r2, #0x0
+ str r3, [sp, #0x0]
+ bl FUN_02025838
+ str r0, [sp, #0x4]
+ ldr r0, [sp, #0x20]
+ mov r1, #0x1c
+ bl FUN_020169D8
+ mov r1, #0x0
+ mov r2, #0x1c
+ add r4, r0, #0x0
+ blx MI_CpuFill8
+ ldr r0, [sp, #0x0]
+ strb r0, [r4, #0xf]
+ ldr r0, [sp, #0x4]
+ strb r6, [r4, #0xe]
+ str r0, [r4, #0x18]
+ mov r0, #0x1
+ strh r0, [r4, #0x0]
+ str r7, [r4, #0x8]
+ mov r0, #0x0
+ strh r0, [r4, #0xc]
+ ldr r0, [sp, #0x20]
+ str r5, [r4, #0x10]
+ bl FUN_020256BC
+ str r0, [r4, #0x14]
+ bl FUN_02025658
+ ldr r0, [r4, #0x14]
+ mov r1, #0xff
+ add r2, r6, #0x0
+ add r3, r5, #0x0
+ bl FUN_020256DC
+ add r0, r4, #0x0
+ add sp, #0x8
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_02085538
+FUN_02085538: ; 0x02085538
+ push {r3-r7, lr}
+ add r7, r0, #0x0
+ add r5, r1, #0x0
+ add r0, r3, #0x0
+ mov r1, #0x1c
+ add r6, r2, #0x0
+ str r3, [sp, #0x0]
+ bl FUN_020169D8
+ mov r1, #0x0
+ mov r2, #0x1c
+ add r4, r0, #0x0
+ blx MI_CpuFill8
+ mov r0, #0x0
+ strh r0, [r4, #0x0]
+ str r5, [r4, #0x8]
+ strh r6, [r4, #0xc]
+ add r0, r7, #0x0
+ str r7, [r4, #0x10]
+ bl FUN_02025838
+ ldr r3, [sp, #0x0]
+ add r1, r5, #0x0
+ add r2, r6, #0x0
+ str r0, [r4, #0x18]
+ bl FUN_020258B0
+ str r0, [r4, #0x14]
+ add r0, r4, #0x0
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_02085578
+FUN_02085578: ; 0x02085578
+ push {r3-r7, lr}
+ add r7, r2, #0x0
+ add r5, r0, #0x0
+ add r6, r1, #0x0
+ add r0, r7, #0x0
+ mov r1, #0x1c
+ bl FUN_020169D8
+ mov r1, #0x0
+ mov r2, #0x1c
+ add r4, r0, #0x0
+ blx MI_CpuFill8
+ mov r0, #0x0
+ strh r0, [r4, #0x0]
+ str r5, [r4, #0x10]
+ add r0, r7, #0x0
+ bl FUN_020256BC
+ str r0, [r4, #0x14]
+ ldr r2, [r4, #0x14]
+ add r0, r6, #0x0
+ mov r1, #0xa9
+ bl FUN_020671BC
+ add r0, r4, #0x0
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_020855B0
+FUN_020855B0: ; 0x020855B0
+ push {r3-r7, lr}
+ add r7, r2, #0x0
+ add r5, r0, #0x0
+ add r6, r1, #0x0
+ add r0, r7, #0x0
+ mov r1, #0x1c
+ bl FUN_020169D8
+ mov r1, #0x0
+ mov r2, #0x1c
+ add r4, r0, #0x0
+ blx MI_CpuFill8
+ mov r0, #0x0
+ strh r0, [r4, #0x0]
+ add r0, r7, #0x0
+ str r5, [r4, #0x10]
+ bl FUN_020256BC
+ add r1, r6, #0x0
+ str r0, [r4, #0x14]
+ bl FUN_020257D0
+ add r0, r4, #0x0
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_020855E4
+FUN_020855E4: ; 0x020855E4
+ ldr r0, [r0, #0x4]
+ bx lr
+
+ thumb_func_start FUN_020855E8
+FUN_020855E8: ; 0x020855E8
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ add r6, r2, #0x0
+ bl FUN_020855E4
+ cmp r0, #0x0
+ bne _020855FC
+ mov r0, #0x0
+ pop {r4-r6, pc}
+_020855FC:
+ ldr r0, [r5, #0x18]
+ ldr r3, [r5, #0x14]
+ add r1, r4, #0x0
+ add r2, r6, #0x0
+ bl FUN_02025888
+ mov r0, #0x1
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_0208560C
+FUN_0208560C: ; 0x0208560C
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ bl FUN_020855E4
+ cmp r0, #0x0
+ bne _0208561E
+ mov r0, #0x0
+ pop {r3-r5, pc}
+_0208561E:
+ ldr r2, [r5, #0x14]
+ add r0, r4, #0x0
+ mov r1, #0xa9
+ bl FUN_02067830
+ mov r0, #0x1
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_0208562C
+FUN_0208562C: ; 0x0208562C
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r0, [r4, #0x14]
+ cmp r0, #0x0
+ beq _0208563A
+ bl FUN_02016A18
+_0208563A:
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02085644
+FUN_02085644: ; 0x02085644
+ push {r3-r7, lr}
+ add r5, r1, #0x0
+ mov r1, #0x0
+ add r7, r0, #0x0
+ add r4, r2, #0x0
+ str r1, [sp, #0x0]
+ bl FUN_02025864
+ add r6, r0, #0x0
+ mov r0, #0x0
+ mvn r0, r0
+ cmp r6, r0
+ beq _0208569E
+ add r0, r4, #0x0
+ bl FUN_020256BC
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ mov r1, #0xa9
+ add r2, r4, #0x0
+ bl FUN_020671BC
+ add r0, r7, #0x0
+ mov r1, #0x0
+ add r2, r6, #0x0
+ add r3, r4, #0x0
+ bl FUN_02025888
+ add r0, r4, #0x0
+ bl FUN_02025658
+ add r0, r5, #0x0
+ mov r1, #0xa9
+ add r2, r4, #0x0
+ bl FUN_02067830
+ add r0, r5, #0x0
+ mov r1, #0x6
+ add r2, sp, #0x0
+ bl FUN_02067830
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ add r0, r6, #0x0
+_0208569E:
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_020856A0
+FUN_020856A0: ; 0x020856A0
+ push {r3-r7, lr}
+ add r5, r1, #0x0
+ add r4, r2, #0x0
+ mov r1, #0x0
+ add r2, r5, #0x0
+ add r7, r0, #0x0
+ str r1, [sp, #0x0]
+ bl FUN_020258B0
+ add r6, r0, #0x0
+ bne _020856BC
+ mov r0, #0x0
+ mvn r0, r0
+ pop {r3-r7, pc}
+_020856BC:
+ bl FUN_020257CC
+ bl FUN_0206EAD8
+ str r0, [sp, #0x0]
+ add r0, r4, #0x0
+ mov r1, #0xa9
+ add r2, r6, #0x0
+ bl FUN_02067830
+ add r0, r4, #0x0
+ mov r1, #0x6
+ add r2, sp, #0x0
+ bl FUN_02067830
+ add r0, r7, #0x0
+ mov r1, #0x0
+ add r2, r5, #0x0
+ bl FUN_02025878
+ add r0, r6, #0x0
+ bl FUN_02016A18
+ add r0, r5, #0x0
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_020856F0
+FUN_020856F0: ; 0x020856F0
+ push {r3-r7, lr}
+ add r5, r1, #0x0
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ mov r1, #0x34
+ bl FUN_02016998
+ mov r1, #0x0
+ mov r2, #0x34
+ add r6, r0, #0x0
+ blx MI_CpuFill8
+ mov r0, #0x0
+ strh r0, [r6, #0x0]
+ add r0, r4, #0x0
+ bl FUN_020257C0
+ str r0, [r6, #0x8]
+ mov r0, #0x8
+ add r1, r5, #0x0
+ bl FUN_020219F4
+ str r0, [r6, #0x10]
+ add r0, r4, #0x0
+ bl FUN_020257C4
+ add r1, r0, #0x0
+ ldr r0, [r6, #0x10]
+ bl FUN_02021E28
+ add r0, r4, #0x0
+ bl FUN_020257CC
+ strb r0, [r6, #0xf]
+ add r0, r4, #0x0
+ bl FUN_020257D8
+ strb r0, [r6, #0xd]
+ add r0, r4, #0x0
+ bl FUN_020257DC
+ strb r0, [r6, #0xe]
+ mov r5, #0x0
+ mov r7, #0x2
+_02085748:
+ lsl r1, r5, #0x18
+ add r0, r4, #0x0
+ lsr r1, r1, #0x18
+ add r2, r7, #0x0
+ bl FUN_020257E0
+ lsl r1, r5, #0x1
+ add r1, r6, r1
+ strh r0, [r1, #0x14]
+ add r0, r5, #0x1
+ lsl r0, r0, #0x10
+ lsr r5, r0, #0x10
+ cmp r5, #0x3
+ blo _02085748
+ add r7, r6, #0x0
+ mov r5, #0x0
+ add r7, #0x1a
+_0208576A:
+ lsl r1, r5, #0x18
+ add r0, r4, #0x0
+ lsr r1, r1, #0x18
+ bl FUN_02025814
+ add r1, r0, #0x0
+ lsl r0, r5, #0x3
+ add r0, r7, r0
+ bl FUN_02013960
+ add r0, r5, #0x1
+ lsl r0, r0, #0x10
+ lsr r5, r0, #0x10
+ cmp r5, #0x3
+ blo _0208576A
+ add r0, r6, #0x0
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_0208578C
+FUN_0208578C: ; 0x0208578C
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r0, [r4, #0x10]
+ cmp r0, #0x0
+ beq _0208579A
+ bl FUN_02021A20
+_0208579A:
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_020857A4
+FUN_020857A4: ; 0x020857A4
+ push {r3-r7, lr}
+ add r7, r1, #0x0
+ add r4, r7, #0x0
+ add r6, r0, #0x0
+ mov r5, #0x0
+ add r4, #0x1a
+_020857B0:
+ lsl r1, r5, #0x3
+ lsl r2, r5, #0x18
+ add r0, r6, #0x0
+ add r1, r4, r1
+ lsr r2, r2, #0x18
+ bl FUN_02025824
+ add r0, r5, #0x1
+ lsl r0, r0, #0x10
+ lsr r5, r0, #0x10
+ cmp r5, #0x3
+ blo _020857B0
+ ldrb r1, [r7, #0xf]
+ add r0, r6, #0x0
+ bl FUN_020257D0
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_020857D4
+FUN_020857D4: ; 0x020857D4
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r0, [r4, #0x0]
+ cmp r0, #0x0
+ beq _020857F4
+ bl FUN_02006290
+ cmp r0, #0x0
+ beq _020857F4
+ ldr r0, [r4, #0x0]
+ bl FUN_02006260
+ mov r0, #0x0
+ str r0, [r4, #0x0]
+ mov r0, #0x1
+ pop {r4, pc}
+_020857F4:
+ mov r0, #0x0
+ pop {r4, pc}
+
+ thumb_func_start FUN_020857F8
+FUN_020857F8: ; 0x020857F8
+ push {r3-r5, lr}
+ add r4, r0, #0x0
+ bl FUN_0200628C
+ mov r2, #0x1
+ add r5, r0, #0x0
+ mov r0, #0x3
+ mov r1, #0x28
+ lsl r2, r2, #0xc
+ bl FUN_0201681C
+ add r0, r4, #0x0
+ mov r1, #0x1c
+ mov r2, #0x28
+ bl FUN_02006268
+ mov r1, #0x0
+ mov r2, #0x1c
+ add r4, r0, #0x0
+ blx MI_CpuFill8
+ mov r1, #0x28
+ str r1, [r4, #0x0]
+ ldr r0, [r5, #0x14]
+ bl FUN_020856F0
+ str r0, [r4, #0x10]
+ ldr r0, [r5, #0x10]
+ bl LoadPlayerDataAddress
+ ldr r1, [r4, #0x10]
+ str r0, [r1, #0x4]
+ ldrh r0, [r5, #0x0]
+ cmp r0, #0x1
+ bne _02085844
+ ldrb r1, [r5, #0xf]
+ ldr r0, [r4, #0x10]
+ strb r1, [r0, #0xf]
+_02085844:
+ ldr r1, [r4, #0x10]
+ ldrb r0, [r1, #0xf]
+ cmp r0, #0xc
+ blo _02085850
+ mov r0, #0x0
+ strb r0, [r1, #0xf]
+_02085850:
+ ldrh r1, [r5, #0x0]
+ ldr r0, [r4, #0x10]
+ strh r1, [r0, #0x0]
+ mov r0, #0x1
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_0208585C
+FUN_0208585C: ; 0x0208585C
+ push {r4-r6, lr}
+ add r6, r0, #0x0
+ add r5, r1, #0x0
+ bl FUN_02006278
+ add r4, r0, #0x0
+ add r0, r6, #0x0
+ bl FUN_0200628C
+ add r6, r0, #0x0
+ ldr r0, [r5, #0x0]
+ cmp r0, #0x4
+ bls _02085878
+ b _02085990
+_02085878:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02085884: ; jump table (using 16-bit offset)
+ .short _0208588E - _02085884 - 2; case 0
+ .short _020858A6 - _02085884 - 2; case 1
+ .short _020858D2 - _02085884 - 2; case 2
+ .short _02085900 - _02085884 - 2; case 3
+ .short _0208595E - _02085884 - 2; case 4
+_0208588E:
+ ldrh r1, [r6, #0x0]
+ ldr r0, [r4, #0x10]
+ strh r1, [r0, #0x0]
+ ldr r0, _02085994 ; =0x020FCAA8
+ ldr r1, [r4, #0x10]
+ ldr r2, [r4, #0x0]
+ bl FUN_02006234
+ str r0, [r4, #0xc]
+ mov r0, #0x1
+ str r0, [r5, #0x0]
+ b _02085990
+_020858A6:
+ add r0, r4, #0x0
+ add r0, #0xc
+ bl FUN_020857D4
+ cmp r0, #0x0
+ beq _02085990
+ ldr r0, [r4, #0x10]
+ ldrh r1, [r0, #0x0]
+ cmp r1, #0x3
+ beq _020858C6
+ ldr r0, _02085998 ; =0x0000FFFF
+ cmp r1, r0
+ bne _020858CC
+ mov r0, #0x2
+ str r0, [r5, #0x0]
+ b _02085990
+_020858C6:
+ mov r0, #0x2
+ str r0, [r5, #0x0]
+ b _02085990
+_020858CC:
+ mov r0, #0x3
+ str r0, [r5, #0x0]
+ b _02085990
+_020858D2:
+ ldrh r0, [r6, #0x0]
+ cmp r0, #0x1
+ bne _020858FC
+ ldr r1, [r4, #0x10]
+ ldrh r0, [r1, #0x0]
+ cmp r0, #0x3
+ bne _020858F8
+ ldr r0, [r6, #0x14]
+ bl FUN_020857A4
+ ldr r0, [r6, #0x10]
+ bl FUN_02029FC8
+ mov r1, #0x2
+ bl FUN_0202A170
+ mov r0, #0x1
+ str r0, [r6, #0x4]
+ b _020858FC
+_020858F8:
+ mov r0, #0x0
+ str r0, [r6, #0x4]
+_020858FC:
+ mov r0, #0x1
+ pop {r4-r6, pc}
+_02085900:
+ ldr r2, [r6, #0x10]
+ ldr r3, [r4, #0x0]
+ mov r0, #0x2
+ mov r1, #0x0
+ bl FUN_02085338
+ str r0, [r4, #0x8]
+ ldr r0, [r4, #0x10]
+ add r1, r0, #0x0
+ ldrb r0, [r0, #0x2]
+ add r1, #0x1a
+ lsl r0, r0, #0x3
+ add r0, r1, r0
+ bl FUN_0201385C
+ cmp r0, #0x0
+ beq _02085938
+ ldr r1, [r4, #0x10]
+ add r0, r4, #0x0
+ add r2, r1, #0x0
+ ldrb r1, [r1, #0x2]
+ add r2, #0x1a
+ add r0, #0x14
+ lsl r1, r1, #0x3
+ add r1, r2, r1
+ bl FUN_02013960
+ b _02085942
+_02085938:
+ add r0, r4, #0x0
+ add r0, #0x14
+ mov r1, #0x3
+ bl FUN_0201373C
+_02085942:
+ add r1, r4, #0x0
+ ldr r0, [r4, #0x8]
+ add r1, #0x14
+ bl FUN_020853BC
+ ldr r0, _0208599C ; =0x020FCAB8
+ ldr r1, [r4, #0x8]
+ ldr r2, [r4, #0x0]
+ bl FUN_02006234
+ str r0, [r4, #0xc]
+ mov r0, #0x4
+ str r0, [r5, #0x0]
+ b _02085990
+_0208595E:
+ add r0, r4, #0x0
+ add r0, #0xc
+ bl FUN_020857D4
+ cmp r0, #0x0
+ beq _02085990
+ ldr r0, [r4, #0x8]
+ bl FUN_020853E4
+ cmp r0, #0x0
+ bne _02085986
+ ldr r1, [r4, #0x10]
+ ldr r0, [r4, #0x8]
+ add r2, r1, #0x0
+ ldrb r1, [r1, #0x2]
+ add r2, #0x1a
+ lsl r1, r1, #0x3
+ add r1, r2, r1
+ bl FUN_020853FC
+_02085986:
+ ldr r0, [r4, #0x8]
+ bl FUN_020853A8
+ mov r0, #0x0
+ str r0, [r5, #0x0]
+_02085990:
+ mov r0, #0x0
+ pop {r4-r6, pc}
+ .balign 4
+_02085994: .word 0x020FCAA8
+_02085998: .word 0x0000FFFF
+_0208599C: .word 0x020FCAB8
+
+ thumb_func_start FUN_020859A0
+FUN_020859A0: ; 0x020859A0
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ bl FUN_02006278
+ add r4, r0, #0x0
+ ldr r0, [r4, #0x10]
+ bl FUN_0208578C
+ add r0, r5, #0x0
+ bl FUN_0200627C
+ ldr r0, [r4, #0x0]
+ bl FUN_020168D0
+ mov r0, #0x1
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_020859C0
+FUN_020859C0: ; 0x020859C0
+ push {r3-r7, lr}
+ mov r2, #0x2
+ add r5, r0, #0x0
+ mov r0, #0x3
+ mov r1, #0x35
+ lsl r2, r2, #0x12
+ bl FUN_0201681C
+ mov r0, #0x35
+ bl FUN_02230F3C
+ bl FUN_0222F7E0
+ ldr r1, _02085BA0 ; =0x0000042C
+ add r0, r5, #0x0
+ mov r2, #0x35
+ bl FUN_02006268
+ ldr r2, _02085BA0 ; =0x0000042C
+ mov r1, #0x0
+ add r4, r0, #0x0
+ blx Call_FillMemWithValue
+ bl FUN_0222E2BC
+ mov r1, #0x23
+ lsl r1, r1, #0x4
+ str r0, [r4, r1]
+ add r0, r5, #0x0
+ bl FUN_0200628C
+ str r0, [r4, #0x0]
+ mov r0, #0x35
+ bl FUN_020669C0
+ ldr r1, _02085BA4 ; =0x00000428
+ mov r2, #0xff
+ str r0, [r4, r1]
+ add r0, r4, #0x0
+ add r0, #0xd4
+ str r2, [r0, #0x0]
+ mov r0, #0x0
+ sub r1, #0x10
+ str r0, [r4, r1]
+ ldr r0, [r4, #0x0]
+ ldr r0, [r0, #0x20]
+ bl FUN_02029E0C
+ asr r1, r0, #0x2
+ lsr r1, r1, #0x1d
+ add r1, r0, r1
+ asr r0, r1, #0x3
+ add r1, r0, #0x1
+ ldr r0, _02085BA8 ; =0x0000041C
+ str r1, [r4, r0]
+ ldr r1, [r4, r0]
+ cmp r1, #0xa
+ ble _02085A38
+ mov r1, #0xa
+ str r1, [r4, r0]
+_02085A38:
+ ldr r0, [r4, #0x0]
+ bl FUN_02085D84
+ mov r1, #0xf1
+ lsl r1, r1, #0x2
+ str r0, [r4, r1]
+ ldr r0, [r4, #0x0]
+ bl FUN_02085D84
+ mov r1, #0xf2
+ lsl r1, r1, #0x2
+ str r0, [r4, r1]
+ ldr r0, [r4, #0x0]
+ ldr r0, [r0, #0x20]
+ bl FUN_02029CEC
+ str r0, [r4, #0x64]
+ mov r6, #0x0
+ add r5, r4, #0x0
+ mov r7, #0xff
+_02085A60:
+ ldr r0, [r4, #0x0]
+ add r1, r6, #0x0
+ ldr r0, [r0, #0x20]
+ bl FUN_02029C8C
+ str r7, [r5, #0x4]
+ str r0, [r5, #0x8]
+ add r6, r6, #0x1
+ add r5, #0x8
+ cmp r6, #0xc
+ blt _02085A60
+ mov r5, #0x0
+ add r6, r5, #0x0
+ mov r7, #0xa1
+_02085A7C:
+ ldr r0, [r4, #0x0]
+ add r0, r0, r6
+ ldr r0, [r0, #0x4]
+ cmp r0, #0x0
+ beq _02085A9A
+ add r1, r7, #0x0
+ mov r2, #0x0
+ bl FUN_020671BC
+ cmp r0, #0x0
+ beq _02085A9A
+ lsl r0, r0, #0x3
+ add r0, r4, r0
+ sub r0, r0, #0x4
+ str r5, [r0, #0x0]
+_02085A9A:
+ add r5, r5, #0x1
+ add r6, r6, #0x4
+ cmp r5, #0x6
+ blt _02085A7C
+ mov r0, #0x35
+ bl FUN_02016B94
+ add r1, r4, #0x0
+ add r1, #0xe4
+ str r0, [r1, #0x0]
+ mov r0, #0x40
+ mov r1, #0x35
+ bl FUN_0201C24C
+ mov r0, #0x35
+ bl FUN_02002FD0
+ add r1, r4, #0x0
+ add r1, #0xe8
+ str r0, [r1, #0x0]
+ add r0, r4, #0x0
+ add r0, #0xe8
+ ldr r0, [r0, #0x0]
+ mov r1, #0x1
+ bl FUN_020038F0
+ add r0, r4, #0x0
+ add r0, #0xe8
+ mov r2, #0x2
+ ldr r0, [r0, #0x0]
+ mov r1, #0x0
+ lsl r2, r2, #0x8
+ mov r3, #0x35
+ bl FUN_02003008
+ add r0, r4, #0x0
+ add r0, #0xe8
+ mov r1, #0x1
+ ldr r0, [r0, #0x0]
+ lsl r2, r1, #0x9
+ mov r3, #0x35
+ bl FUN_02003008
+ add r0, r4, #0x0
+ add r0, #0xe8
+ mov r1, #0x2
+ ldr r0, [r0, #0x0]
+ lsl r2, r1, #0x8
+ mov r3, #0x35
+ bl FUN_02003008
+ add r0, r4, #0x0
+ add r0, #0xe8
+ mov r2, #0x2
+ ldr r0, [r0, #0x0]
+ mov r1, #0x3
+ lsl r2, r2, #0x8
+ mov r3, #0x35
+ bl FUN_02003008
+ add r0, r4, #0x0
+ add r0, #0xe4
+ ldr r0, [r0, #0x0]
+ bl FUN_02230F80
+ bl FUN_0222E360
+ mov r0, #0x35
+ bl FUN_02006D98
+ mov r1, #0x69
+ lsl r1, r1, #0x2
+ str r0, [r4, r1]
+ mov r0, #0x35
+ mov r1, #0x1
+ mov r2, #0x0
+ bl FUN_02014BF4
+ mov r1, #0x97
+ lsl r1, r1, #0x2
+ str r0, [r4, r1]
+ ldr r0, [r4, #0x0]
+ ldr r0, [r0, #0x24]
+ bl FUN_02025084
+ add r5, r0, #0x0
+ add r0, r4, #0x0
+ add r1, r4, #0x0
+ add r0, #0xe4
+ add r1, #0xe8
+ ldr r0, [r0, #0x0]
+ ldr r1, [r1, #0x0]
+ add r2, r5, #0x0
+ bl FUN_0222ED34
+ add r0, r4, #0x0
+ add r1, r4, #0x0
+ add r0, #0xe4
+ add r1, #0xe8
+ ldr r0, [r0, #0x0]
+ ldr r1, [r1, #0x0]
+ add r2, r5, #0x0
+ bl FUN_0222EDBC
+ add r0, r4, #0x0
+ add r0, #0xd4
+ bl FUN_0222E7E8
+ bl FUN_0201CC08
+ mov r0, #0x4
+ bl FUN_0201CC24
+ add r0, r4, #0x0
+ bl FUN_022300E4
+ ldr r0, _02085BAC ; =0x022310CD
+ add r1, r4, #0x0
+ bl FUN_02015F10
+ add r0, r4, #0x0
+ bl FUN_0222DD1C
+ mov r1, #0x0
+ mov r0, #0x3b
+ add r2, r1, #0x0
+ bl FUN_0200433C
+ mov r0, #0x1
+ pop {r3-r7, pc}
+ nop
+_02085BA0: .word 0x0000042C
+_02085BA4: .word 0x00000428
+_02085BA8: .word 0x0000041C
+_02085BAC: .word 0x022310CD
+
+ thumb_func_start FUN_02085BB0
+FUN_02085BB0: ; 0x02085BB0
+ push {r3-r5, lr}
+ add r5, r1, #0x0
+ bl FUN_02006278
+ ldr r1, [r5, #0x0]
+ add r4, r0, #0x0
+ cmp r1, #0x0
+ beq _02085BCA
+ cmp r1, #0x1
+ beq _02085BD8
+ cmp r1, #0x2
+ beq _02085BF6
+ b _02085C02
+_02085BCA:
+ bl FUN_0200E308
+ cmp r0, #0x1
+ bne _02085C02
+ mov r0, #0x1
+ str r0, [r5, #0x0]
+ b _02085C02
+_02085BD8:
+ bl FUN_0222F990
+ cmp r0, #0x0
+ bne _02085BE6
+ mov r0, #0x2
+ str r0, [r5, #0x0]
+ b _02085C02
+_02085BE6:
+ mov r0, #0x69
+ lsl r0, r0, #0x2
+ ldr r0, [r4, r0]
+ bl FUN_02006ED4
+ bl FUN_0222E3A0
+ b _02085C02
+_02085BF6:
+ bl FUN_0200E308
+ cmp r0, #0x1
+ bne _02085C02
+ mov r0, #0x1
+ pop {r3-r5, pc}
+_02085C02:
+ mov r0, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_02085C08
+FUN_02085C08: ; 0x02085C08
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ bl FUN_02006278
+ add r4, r0, #0x0
+ mov r0, #0x1
+ mov r1, #0x0
+ bl FUN_0201E6E4
+ mov r0, #0x2
+ mov r1, #0x0
+ bl FUN_0201E6E4
+ mov r0, #0x4
+ mov r1, #0x0
+ bl FUN_0201E6E4
+ mov r0, #0x8
+ mov r1, #0x0
+ bl FUN_0201E6E4
+ mov r0, #0x1
+ mov r1, #0x0
+ bl FUN_0201E74C
+ mov r0, #0x2
+ mov r1, #0x0
+ bl FUN_0201E74C
+ mov r0, #0x4
+ mov r1, #0x0
+ bl FUN_0201E74C
+ mov r0, #0x8
+ mov r1, #0x0
+ bl FUN_0201E74C
+ add r0, r4, #0x0
+ add r0, #0xe4
+ ldr r0, [r0, #0x0]
+ mov r1, #0x1
+ bl FUN_020178A0
+ add r0, r4, #0x0
+ add r0, #0xe4
+ ldr r0, [r0, #0x0]
+ mov r1, #0x2
+ bl FUN_020178A0
+ add r0, r4, #0x0
+ add r0, #0xe4
+ ldr r0, [r0, #0x0]
+ mov r1, #0x3
+ bl FUN_020178A0
+ add r0, r4, #0x0
+ add r0, #0xe4
+ ldr r0, [r0, #0x0]
+ mov r1, #0x4
+ bl FUN_020178A0
+ add r0, r4, #0x0
+ add r0, #0xe4
+ ldr r0, [r0, #0x0]
+ mov r1, #0x5
+ bl FUN_020178A0
+ add r0, r4, #0x0
+ add r0, #0xe4
+ ldr r0, [r0, #0x0]
+ mov r1, #0x6
+ bl FUN_020178A0
+ add r0, r4, #0x0
+ add r0, #0xe4
+ ldr r0, [r0, #0x0]
+ mov r1, #0x7
+ bl FUN_020178A0
+ add r0, r4, #0x0
+ add r0, #0xe4
+ ldr r0, [r0, #0x0]
+ bl FUN_02016A18
+ add r0, r4, #0x0
+ add r0, #0xe8
+ ldr r0, [r0, #0x0]
+ mov r1, #0x0
+ bl FUN_02003038
+ add r0, r4, #0x0
+ add r0, #0xe8
+ ldr r0, [r0, #0x0]
+ mov r1, #0x1
+ bl FUN_02003038
+ add r0, r4, #0x0
+ add r0, #0xe8
+ ldr r0, [r0, #0x0]
+ mov r1, #0x2
+ bl FUN_02003038
+ add r0, r4, #0x0
+ add r0, #0xe8
+ ldr r0, [r0, #0x0]
+ mov r1, #0x3
+ bl FUN_02003038
+ add r0, r4, #0x0
+ add r0, #0xe8
+ ldr r0, [r0, #0x0]
+ bl FUN_02002FEC
+ mov r1, #0xf1
+ lsl r1, r1, #0x2
+ ldr r1, [r4, r1]
+ ldr r0, [r4, #0x0]
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ bl FUN_02085D8C
+ ldr r0, _02085D64 ; =0x00000428
+ ldr r0, [r4, r0]
+ bl FUN_02016A18
+ add r0, r4, #0x0
+ bl FUN_0222DAEC
+ mov r0, #0x73
+ lsl r0, r0, #0x2
+ ldr r0, [r4, r0]
+ bl FUN_0202212C
+ mov r0, #0x69
+ lsl r0, r0, #0x2
+ ldr r0, [r4, r0]
+ bl FUN_020072E8
+ mov r0, #0x97
+ lsl r0, r0, #0x2
+ ldr r0, [r4, r0]
+ bl FUN_02014C28
+ add r0, r4, #0x0
+ bl FUN_0222DD38
+ add r0, r4, #0x0
+ add r0, #0xd4
+ bl FUN_0222E874
+ bl FUN_0201C29C
+ mov r0, #0x23
+ lsl r0, r0, #0x4
+ ldr r0, [r4, r0]
+ bl FUN_020223BC
+ mov r0, #0x35
+ bl FUN_02230F70
+ add r0, r5, #0x0
+ bl FUN_0200627C
+ bl FUN_0201CD04
+ mov r0, #0x35
+ bl FUN_020168D0
+ ldr r0, _02085D68 ; =0x00000008
+ bl FUN_02005F60
+ mov r0, #0x1
+ pop {r3-r5, pc}
+ nop
+_02085D64: .word 0x00000428
+_02085D68: .word 0x00000008
+
+ thumb_func_start FUN_02085D6C
+FUN_02085D6C: ; 0x02085D6C
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r0, [r4, #0x0]
+ cmp r0, r1
+ bge _02085D7C
+ bl ErrorHandling
+ mov r1, #0x0
+_02085D7C:
+ lsl r0, r1, #0x2
+ add r0, r4, r0
+ ldr r0, [r0, #0x4]
+ pop {r4, pc}
+
+ thumb_func_start FUN_02085D84
+FUN_02085D84: ; 0x02085D84
+ add r0, #0x2c
+ ldrb r0, [r0, #0x0]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02085D8C
+FUN_02085D8C: ; 0x02085D8C
+ add r0, #0x2c
+ strb r1, [r0, #0x0]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02085D94
+FUN_02085D94: ; 0x02085D94
+ add r0, #0x2d
+ ldrb r0, [r0, #0x0]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02085D9C
+FUN_02085D9C: ; 0x02085D9C
+ add r0, #0x2d
+ strb r1, [r0, #0x0]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02085DA4
+FUN_02085DA4: ; 0x02085DA4
+ push {r4-r7, lr}
+ sub sp, #0xc
+ add r5, r0, #0x0
+ bl FUN_0204652C
+ add r6, r0, #0x0
+ add r0, r5, #0x0
+ ldr r7, [r6, #0x8]
+ bl FUN_02046528
+ str r0, [sp, #0x4]
+ ldr r0, [r6, #0x14]
+ cmp r0, #0x6
+ bls _02085DC2
+ b _02085F38
+_02085DC2:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02085DCE: ; jump table (using 16-bit offset)
+ .short _02085DDC - _02085DCE - 2; case 0
+ .short _02085E38 - _02085DCE - 2; case 1
+ .short _02085E48 - _02085DCE - 2; case 2
+ .short _02085E66 - _02085DCE - 2; case 3
+ .short _02085EA6 - _02085DCE - 2; case 4
+ .short _02085F14 - _02085DCE - 2; case 5
+ .short _02085F20 - _02085DCE - 2; case 6
+_02085DDC:
+ add r0, r5, #0x0
+ bl FUN_0204AF3C
+ ldr r0, [r6, #0x10]
+ bl FUN_02029C80
+ str r0, [r7, #0x20]
+ add r0, r7, #0x0
+ mov r1, #0x0
+ bl FUN_02085D8C
+ ldr r0, [r6, #0x10]
+ bl FUN_0206BB1C
+ str r0, [r7, #0x1c]
+ bl FUN_0206B9AC
+ mov r4, #0x0
+ str r0, [sp, #0x0]
+ str r0, [r7, #0x0]
+ cmp r0, #0x0
+ ble _02085E1E
+ add r5, r7, #0x0
+_02085E0A:
+ ldr r0, [r7, #0x1c]
+ add r1, r4, #0x0
+ bl FUN_0206B9B0
+ str r0, [r5, #0x4]
+ ldr r0, [sp, #0x0]
+ add r4, r4, #0x1
+ add r5, r5, #0x4
+ cmp r4, r0
+ blt _02085E0A
+_02085E1E:
+ cmp r4, #0x6
+ bge _02085E32
+ lsl r0, r4, #0x2
+ add r1, r7, r0
+ mov r0, #0x0
+_02085E28:
+ add r4, r4, #0x1
+ str r0, [r1, #0x4]
+ add r1, r1, #0x4
+ cmp r4, #0x6
+ blt _02085E28
+_02085E32:
+ mov r0, #0x1
+ str r0, [r6, #0x14]
+ b _02085F38
+_02085E38:
+ ldr r1, _02085F40 ; =0x020FCAD8
+ add r0, r5, #0x0
+ add r2, r7, #0x0
+ bl FUN_02046500
+ mov r0, #0x2
+ str r0, [r6, #0x14]
+ b _02085F38
+_02085E48:
+ ldr r0, [r6, #0x8]
+ bl FUN_02085D94
+ cmp r0, #0x0
+ beq _02085E5A
+ cmp r0, #0x1
+ beq _02085E60
+ bl ErrorHandling
+_02085E5A:
+ mov r0, #0x5
+ str r0, [r6, #0x14]
+ b _02085F38
+_02085E60:
+ mov r0, #0x3
+ str r0, [r6, #0x14]
+ b _02085F38
+_02085E66:
+ ldr r4, [r6, #0xc]
+ ldr r0, [r7, #0x1c]
+ str r0, [r4, #0x0]
+ ldr r0, [r6, #0x10]
+ bl FUN_0206F158
+ str r0, [r4, #0x4]
+ ldr r0, [r6, #0x10]
+ bl FUN_02025838
+ str r0, [r4, #0x8]
+ add r0, r4, #0x0
+ mov r1, #0x0
+ add r0, #0x22
+ strb r1, [r0, #0x0]
+ add r0, r4, #0x0
+ add r0, #0x21
+ strb r1, [r0, #0x0]
+ add r0, r4, #0x0
+ mov r1, #0xf
+ add r0, #0x20
+ strb r1, [r0, #0x0]
+ ldr r0, [r7, #0x24]
+ ldr r1, _02085F44 ; =0x020F96DC
+ str r0, [r4, #0xc]
+ add r0, r5, #0x0
+ add r2, r4, #0x0
+ bl FUN_02046500
+ mov r0, #0x4
+ str r0, [r6, #0x14]
+ b _02085F38
+_02085EA6:
+ ldr r0, [r6, #0x8]
+ ldr r4, [r6, #0xc]
+ bl FUN_02085D84
+ add r0, r0, #0x1
+ str r0, [sp, #0x8]
+ add r4, #0x22
+ ldrb r1, [r4, #0x0]
+ cmp r1, #0x7
+ beq _02085F0E
+ ldr r0, [r6, #0x8]
+ bl FUN_02085D6C
+ mov r1, #0xa1
+ add r2, sp, #0x8
+ add r5, r0, #0x0
+ bl FUN_02067830
+ ldr r1, [sp, #0x8]
+ ldr r0, [r7, #0x20]
+ sub r1, r1, #0x1
+ bl FUN_02029C8C
+ add r2, r0, #0x0
+ add r0, r5, #0x0
+ mov r1, #0xaa
+ bl FUN_02067830
+ ldr r1, [sp, #0x8]
+ ldr r0, [r7, #0x20]
+ sub r1, r1, #0x1
+ bl FUN_02029C8C
+ mov r1, #0x0
+ bl FUN_02029CC8
+ bl FUN_02029CE0
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_02085FD0
+ add r4, r0, #0x0
+ ldr r0, [sp, #0x4]
+ ldr r0, [r0, #0xc]
+ bl FUN_02022504
+ lsl r2, r4, #0x18
+ add r1, r5, #0x0
+ lsr r2, r2, #0x18
+ bl FUN_02061798
+_02085F0E:
+ mov r0, #0x1
+ str r0, [r6, #0x14]
+ b _02085F38
+_02085F14:
+ add r0, r5, #0x0
+ bl FUN_0204AF84
+ mov r0, #0x6
+ str r0, [r6, #0x14]
+ b _02085F38
+_02085F20:
+ ldr r0, [r6, #0xc]
+ bl FUN_02016A18
+ ldr r0, [r6, #0x8]
+ bl FUN_02016A18
+ add r0, r6, #0x0
+ bl FUN_02016A18
+ add sp, #0xc
+ mov r0, #0x1
+ pop {r4-r7, pc}
+_02085F38:
+ mov r0, #0x0
+ add sp, #0xc
+ pop {r4-r7, pc}
+ nop
+_02085F40: .word 0x020FCAD8
+_02085F44: .word 0x020F96DC
+
+ thumb_func_start FUN_02085F48
+FUN_02085F48: ; 0x02085F48
+ push {r4-r6, lr}
+ add r6, r0, #0x0
+ add r5, r1, #0x0
+ mov r0, #0xb
+ mov r1, #0x18
+ bl FUN_020169D8
+ add r4, r0, #0x0
+ add r2, r4, #0x0
+ mov r1, #0x18
+ mov r0, #0x0
+_02085F5E:
+ strb r0, [r2, #0x0]
+ add r2, r2, #0x1
+ sub r1, r1, #0x1
+ bne _02085F5E
+ mov r0, #0xb
+ mov r1, #0x30
+ str r5, [r4, #0x10]
+ bl FUN_02016998
+ mov r1, #0x0
+ mov r2, #0x30
+ str r0, [r4, #0x8]
+ blx Call_FillMemWithValue
+ add r0, r5, #0x0
+ bl LoadPlayerDataAddress
+ ldr r1, [r4, #0x8]
+ str r0, [r1, #0x24]
+ ldr r0, [r4, #0x8]
+ mov r1, #0x40
+ str r5, [r0, #0x28]
+ mov r0, #0xb
+ bl FUN_02016998
+ mov r1, #0x0
+ mov r2, #0x40
+ str r0, [r4, #0xc]
+ blx Call_FillMemWithValue
+ ldr r1, _02085FA8 ; =FUN_02085DA4
+ add r0, r6, #0x0
+ add r2, r4, #0x0
+ bl FUN_0204640C
+ pop {r4-r6, pc}
+ nop
+_02085FA8: .word FUN_02085DA4
+
+ thumb_func_start FUN_02085FAC
+FUN_02085FAC: ; 0x02085FAC
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r0, _02085FC8 ; =0x0000032A
+ cmp r4, r0
+ blo _02085FBA
+ bl ErrorHandling
+_02085FBA:
+ mov r0, #0xa
+ add r1, r4, #0x0
+ mul r1, r0
+ ldr r0, _02085FCC ; =0x020FCAE8
+ ldrh r0, [r0, r1]
+ pop {r4, pc}
+ nop
+_02085FC8: .word 0x0000032A
+_02085FCC: .word 0x020FCAE8
+
+ thumb_func_start FUN_02085FD0
+FUN_02085FD0: ; 0x02085FD0
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r0, _02085FEC ; =0x0000032A
+ cmp r4, r0
+ blo _02085FDE
+ bl ErrorHandling
+_02085FDE:
+ mov r0, #0xa
+ add r1, r4, #0x0
+ mul r1, r0
+ ldr r0, _02085FF0 ; =0x020FCAEA
+ ldrb r0, [r0, r1]
+ pop {r4, pc}
+ nop
+_02085FEC: .word 0x0000032A
+_02085FF0: .word 0x020FCAEA
+
+ thumb_func_start FUN_02085FF4
+FUN_02085FF4: ; 0x02085FF4
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r0, _02086010 ; =0x0000032A
+ cmp r4, r0
+ blo _02086002
+ bl ErrorHandling
+_02086002:
+ mov r0, #0xa
+ add r1, r4, #0x0
+ mul r1, r0
+ ldr r0, _02086014 ; =0x020FCAEC
+ ldrb r0, [r0, r1]
+ pop {r4, pc}
+ nop
+_02086010: .word 0x0000032A
+_02086014: .word 0x020FCAEC
+
+ thumb_func_start FUN_02086018
+FUN_02086018: ; 0x02086018
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r0, _02086034 ; =0x0000032A
+ cmp r4, r0
+ blo _02086026
+ bl ErrorHandling
+_02086026:
+ mov r0, #0xa
+ add r1, r4, #0x0
+ mul r1, r0
+ ldr r0, _02086038 ; =0x020FCAED
+ ldrb r0, [r0, r1]
+ pop {r4, pc}
+ nop
+_02086034: .word 0x0000032A
+_02086038: .word 0x020FCAED
+
+ thumb_func_start FUN_0208603C
+FUN_0208603C: ; 0x0208603C
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r0, _02086058 ; =0x0000032A
+ cmp r4, r0
+ blo _0208604A
+ bl ErrorHandling
+_0208604A:
+ mov r0, #0xa
+ add r1, r4, #0x0
+ mul r1, r0
+ ldr r0, _0208605C ; =0x020FCAEE
+ ldrh r0, [r0, r1]
+ pop {r4, pc}
+ nop
+_02086058: .word 0x0000032A
+_0208605C: .word 0x020FCAEE
+
+ thumb_func_start FUN_02086060
+FUN_02086060: ; 0x02086060
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r0, _0208607C ; =0x0000032A
+ cmp r4, r0
+ blo _0208606E
+ bl ErrorHandling
+_0208606E:
+ mov r0, #0xa
+ add r1, r4, #0x0
+ mul r1, r0
+ ldr r0, _02086080 ; =0x020FCAF0
+ ldrb r0, [r0, r1]
+ pop {r4, pc}
+ nop
+_0208607C: .word 0x0000032A
+_02086080: .word 0x020FCAF0
+
+ thumb_func_start FUN_02086084
+FUN_02086084: ; 0x02086084
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ mov r0, #0x0
+ add r1, r0, #0x0
+ bl FUN_02015F10
+ bl FUN_02015F1C
+ mov r2, #0x1
+ mov r0, #0x3
+ mov r1, #0x47
+ lsl r2, r2, #0x12
+ bl FUN_0201681C
+ add r0, r5, #0x0
+ mov r1, #0x80
+ mov r2, #0x47
+ bl FUN_02006268
+ mov r1, #0x0
+ mov r2, #0x80
+ add r4, r0, #0x0
+ blx Call_FillMemWithValue
+ add r0, r5, #0x0
+ bl FUN_0200628C
+ str r0, [r4, #0x0]
+ ldr r0, [r0, #0x10]
+ bl FUN_02024FF4
+ str r0, [r4, #0x10]
+ ldr r0, [r4, #0x0]
+ ldr r0, [r0, #0x10]
+ bl FUN_02025084
+ str r0, [r4, #0x14]
+ bl FUN_02086468
+ str r0, [r4, #0x38]
+ mov r0, #0x47
+ bl FUN_02006D98
+ str r0, [r4, #0x3c]
+ mov r0, #0x47
+ bl FUN_02016B94
+ str r0, [r4, #0x4]
+ mov r0, #0x40
+ mov r1, #0x47
+ bl FUN_0201C24C
+ mov r0, #0x47
+ mov r1, #0x1
+ mov r2, #0x0
+ bl FUN_02014BF4
+ str r0, [r4, #0x54]
+ mov r0, #0x47
+ bl FUN_02002FD0
+ str r0, [r4, #0x8]
+ mov r1, #0x1
+ bl FUN_020038F0
+ mov r2, #0x2
+ ldr r0, [r4, #0x8]
+ mov r1, #0x0
+ lsl r2, r2, #0x8
+ mov r3, #0x47
+ bl FUN_02003008
+ mov r1, #0x2
+ ldr r0, [r4, #0x8]
+ lsl r2, r1, #0x8
+ mov r3, #0x47
+ bl FUN_02003008
+ mov r1, #0x1
+ ldr r0, [r4, #0x8]
+ lsl r2, r1, #0x9
+ mov r3, #0x47
+ bl FUN_02003008
+ mov r2, #0x2
+ ldr r0, [r4, #0x8]
+ mov r1, #0x3
+ lsl r2, r2, #0x8
+ mov r3, #0x47
+ bl FUN_02003008
+ bl FUN_02086414
+ bl FUN_0208643C
+ bl FUN_0208650C
+ ldr r0, [r4, #0x4]
+ bl FUN_0208654C
+ add r0, r4, #0x4
+ bl FUN_02086E48
+ bl FUN_0200541C
+ ldr r0, _02086164 ; =FUN_02086664
+ add r1, r4, #0x0
+ bl FUN_02015F10
+ mov r0, #0x1
+ pop {r3-r5, pc}
+ nop
+_02086164: .word FUN_02086664
+
+ thumb_func_start FUN_02086168
+FUN_02086168: ; 0x02086168
+ push {r3-r5, lr}
+ add r5, r1, #0x0
+ bl FUN_02006278
+ ldr r1, [r5, #0x0]
+ add r4, r0, #0x0
+ cmp r1, #0x0
+ beq _0208617E
+ cmp r1, #0x1
+ beq _020861AA
+ b _020861C6
+_0208617E:
+ bl FUN_0200E308
+ cmp r0, #0x1
+ bne _0208618C
+ ldr r0, [r5, #0x0]
+ add r0, r0, #0x1
+ str r0, [r5, #0x0]
+_0208618C:
+ ldr r0, [r4, #0x0]
+ mov r1, #0x5
+ ldr r0, [r0, #0xc]
+ mov r2, #0x0
+ bl FUN_020671BC
+ ldr r1, _020861D8 ; =0x000001EA
+ cmp r0, r1
+ bne _020861A4
+ mov r0, #0x1
+ str r0, [r4, #0x58]
+ b _020861D2
+_020861A4:
+ mov r0, #0x0
+ str r0, [r4, #0x58]
+ b _020861D2
+_020861AA:
+ bl FUN_02086FA8
+ cmp r0, #0x0
+ bne _020861BA
+ ldr r0, [r5, #0x0]
+ add r0, r0, #0x1
+ str r0, [r5, #0x0]
+ b _020861D2
+_020861BA:
+ ldr r0, [r4, #0x3c]
+ bl FUN_02006ED4
+ bl FUN_02086698
+ b _020861D2
+_020861C6:
+ bl FUN_0200E308
+ cmp r0, #0x1
+ bne _020861D2
+ mov r0, #0x1
+ pop {r3-r5, pc}
+_020861D2:
+ mov r0, #0x0
+ pop {r3-r5, pc}
+ nop
+_020861D8: .word 0x000001EA
+
+ thumb_func_start FUN_020861DC
+FUN_020861DC: ; 0x020861DC
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ bl FUN_02006278
+ add r4, r0, #0x0
+ ldr r0, [r4, #0x38]
+ bl FUN_020223BC
+ mov r0, #0x1
+ mov r1, #0x0
+ bl FUN_0201E6E4
+ mov r0, #0x2
+ mov r1, #0x0
+ bl FUN_0201E6E4
+ mov r0, #0x3
+ mov r1, #0x0
+ bl FUN_0201E6E4
+ mov r0, #0x4
+ mov r1, #0x0
+ bl FUN_0201E74C
+ ldr r0, [r4, #0x8]
+ mov r1, #0x0
+ bl FUN_02003038
+ ldr r0, [r4, #0x8]
+ mov r1, #0x2
+ bl FUN_02003038
+ ldr r0, [r4, #0x8]
+ mov r1, #0x1
+ bl FUN_02003038
+ ldr r0, [r4, #0x8]
+ mov r1, #0x3
+ bl FUN_02003038
+ ldr r0, [r4, #0x8]
+ bl FUN_02002FEC
+ ldr r0, [r4, #0x4]
+ mov r1, #0x1
+ bl FUN_020178A0
+ ldr r0, [r4, #0x4]
+ mov r1, #0x2
+ bl FUN_020178A0
+ ldr r0, [r4, #0x4]
+ mov r1, #0x3
+ bl FUN_020178A0
+ ldr r0, [r4, #0x4]
+ mov r1, #0x4
+ bl FUN_020178A0
+ ldr r0, [r4, #0x4]
+ bl FUN_02016A18
+ bl FUN_0201C29C
+ ldr r0, [r4, #0x3c]
+ bl FUN_020072E8
+ ldr r0, [r4, #0x54]
+ bl FUN_02014C28
+ add r0, r4, #0x4
+ bl FUN_02086ED4
+ add r0, r5, #0x0
+ bl FUN_0200627C
+ mov r0, #0x47
+ bl FUN_020168D0
+ mov r0, #0x1
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_02086280
+FUN_02086280: ; 0x02086280
+ push {r4-r7, lr}
+ sub sp, #0xc
+ add r5, r0, #0x0
+ bl FUN_0204652C
+ add r4, r0, #0x0
+ ldr r1, [r4, #0x0]
+ cmp r1, #0x6
+ bls _02086294
+ b _020863CE
+_02086294:
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #0x6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_020862A0: ; jump table (using 16-bit offset)
+ .short _020862AE - _020862A0 - 2; case 0
+ .short _020862C4 - _020862A0 - 2; case 1
+ .short _020862D6 - _020862A0 - 2; case 2
+ .short _0208633A - _020862A0 - 2; case 3
+ .short _02086396 - _020862A0 - 2; case 4
+ .short _020863B6 - _020862A0 - 2; case 5
+ .short _020863C4 - _020862A0 - 2; case 6
+_020862AE:
+ ldr r0, [r4, #0xc]
+ mov r1, #0xb
+ bl FUN_021ED940
+ add r0, r5, #0x0
+ bl FUN_0204AF3C
+ ldr r0, [r4, #0x0]
+ add r0, r0, #0x1
+ str r0, [r4, #0x0]
+ b _020863CE
+_020862C4:
+ ldr r1, _020863D4 ; =0x020FCE14
+ add r0, r5, #0x0
+ add r2, r4, #0x0
+ bl FUN_02046500
+ ldr r0, [r4, #0x0]
+ add r0, r0, #0x1
+ str r0, [r4, #0x0]
+ b _020863CE
+_020862D6:
+ add r0, r5, #0x0
+ bl FUN_02046528
+ add r6, r0, #0x0
+ ldr r5, [r4, #0xc]
+ bl FUN_020377AC
+ bl FUN_020238F4
+ add r7, r0, #0x0
+ ldr r0, [r6, #0x1c]
+ ldr r0, [r0, #0x0]
+ bl FUN_02034824
+ str r0, [sp, #0x4]
+ mov r0, #0x0
+ str r0, [sp, #0x8]
+ add r0, r5, #0x0
+ mov r1, #0x4c
+ add r2, sp, #0x8
+ bl FUN_02067830
+ mov r0, #0xb
+ str r0, [sp, #0x0]
+ ldr r3, [sp, #0x4]
+ add r0, r5, #0x0
+ add r1, r7, #0x0
+ mov r2, #0x6
+ bl FUN_0208089C
+ add r0, r5, #0x0
+ mov r1, #0xb2
+ mov r2, #0x0
+ bl FUN_02067830
+ add r0, r6, #0x0
+ bl FUN_020377AC
+ ldr r1, [r4, #0xc]
+ bl FUN_0202C144
+ ldr r0, [r4, #0x4]
+ cmp r0, #0x1
+ bne _02086334
+ mov r0, #0x3
+ str r0, [r4, #0x0]
+ b _020863CE
+_02086334:
+ mov r0, #0x5
+ str r0, [r4, #0x0]
+ b _020863CE
+_0208633A:
+ add r0, r5, #0x0
+ bl FUN_02046528
+ add r6, r0, #0x0
+ ldr r0, [r4, #0xc]
+ mov r1, #0x5
+ mov r2, #0x0
+ bl FUN_020671BC
+ add r7, r0, #0x0
+ add r0, r6, #0x0
+ bl FUN_020377AC
+ bl LoadPlayerDataAddress
+ str r0, [sp, #0x0]
+ mov r0, #0xb
+ mov r1, #0x1
+ add r2, r7, #0x0
+ mov r3, #0xa
+ bl FUN_02077A84
+ str r0, [r4, #0x8]
+ ldr r0, [r4, #0xc]
+ mov r1, #0x6f
+ mov r2, #0x0
+ bl FUN_020671BC
+ ldr r1, [r4, #0x8]
+ mov r2, #0x0
+ str r0, [r1, #0x10]
+ ldr r0, [r4, #0xc]
+ mov r1, #0x70
+ bl FUN_020671BC
+ ldr r1, [r4, #0x8]
+ str r0, [r1, #0x8]
+ ldr r1, _020863D8 ; =0x020FA5FC
+ ldr r2, [r4, #0x8]
+ add r0, r5, #0x0
+ bl FUN_02046500
+ ldr r0, [r4, #0x0]
+ add r0, r0, #0x1
+ str r0, [r4, #0x0]
+ b _020863CE
+_02086396:
+ ldr r2, [r4, #0x8]
+ ldr r0, [r2, #0x14]
+ cmp r0, #0x0
+ bne _020863A8
+ ldr r0, [r4, #0xc]
+ ldr r2, [r2, #0x18]
+ mov r1, #0x77
+ bl FUN_02067830
+_020863A8:
+ ldr r0, [r4, #0x8]
+ bl FUN_02077AC4
+ ldr r0, [r4, #0x0]
+ add r0, r0, #0x1
+ str r0, [r4, #0x0]
+ b _020863CE
+_020863B6:
+ add r0, r5, #0x0
+ bl FUN_0204AF84
+ ldr r0, [r4, #0x0]
+ add r0, r0, #0x1
+ str r0, [r4, #0x0]
+ b _020863CE
+_020863C4:
+ bl FUN_02016A18
+ add sp, #0xc
+ mov r0, #0x1
+ pop {r4-r7, pc}
+_020863CE:
+ mov r0, #0x0
+ add sp, #0xc
+ pop {r4-r7, pc}
+ .balign 4
+_020863D4: .word 0x020FCE14
+_020863D8: .word 0x020FA5FC
+
+ thumb_func_start FUN_020863DC
+FUN_020863DC: ; 0x020863DC
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ mov r0, #0xb
+ mov r1, #0x1c
+ bl FUN_020169D8
+ add r2, r0, #0x0
+ add r3, r2, #0x0
+ mov r1, #0x1c
+ mov r0, #0x0
+_020863F2:
+ strb r0, [r3, #0x0]
+ add r3, r3, #0x1
+ sub r1, r1, #0x1
+ bne _020863F2
+ add r3, r2, #0x0
+ add r3, #0xc
+ ldmia r4!, {r0-r1}
+ stmia r3!, {r0-r1}
+ ldmia r4!, {r0-r1}
+ stmia r3!, {r0-r1}
+ ldr r1, _02086410 ; =FUN_02086280
+ add r0, r5, #0x0
+ bl FUN_0204640C
+ pop {r3-r5, pc}
+ .balign 4
+_02086410: .word FUN_02086280
+
+ thumb_func_start FUN_02086414
+FUN_02086414: ; 0x02086414
+ push {r3, lr}
+ bl FUN_0201E6D8
+ bl FUN_0201E740
+ mov r2, #0x1
+ lsl r2, r2, #0x1a
+ ldr r1, [r2, #0x0]
+ ldr r0, _02086434 ; =0xFFFFE0FF
+ and r1, r0
+ str r1, [r2, #0x0]
+ ldr r2, _02086438 ; =0x04001000
+ ldr r1, [r2, #0x0]
+ and r0, r1
+ str r0, [r2, #0x0]
+ pop {r3, pc}
+ .balign 4
+_02086434: .word 0xFFFFE0FF
+_02086438: .word 0x04001000
+
+ thumb_func_start FUN_0208643C
+FUN_0208643C: ; 0x0208643C
+ push {r3, lr}
+ mov r0, #0x7
+ str r0, [sp, #0x0]
+ ldr r0, _02086460 ; =0x04000050
+ mov r1, #0x0
+ mov r2, #0xe
+ mov r3, #0xb
+ blx 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_
+ pop {r3, pc}
+ .balign 4
+_02086460: .word 0x04000050
+_02086464: .word 0x04001050
+
+ thumb_func_start FUN_02086468
+FUN_02086468: ; 0x02086468
+ push {r3, lr}
+ sub sp, #0x8
+ mov r2, #0x2
+ mov r1, #0x0
+ ldr r0, _02086484 ; =FUN_02086488
+ str r2, [sp, #0x0]
+ str r0, [sp, #0x4]
+ mov r0, #0x47
+ add r3, r1, #0x0
+ bl FUN_02022318
+ add sp, #0x8
+ pop {r3, pc}
+ nop
+_02086484: .word FUN_02086488
+
+ thumb_func_start FUN_02086488
+FUN_02086488: ; 0x02086488
+ push {r3, lr}
+ mov r0, #0x1
+ add r1, r0, #0x0
+ bl FUN_0201E6E4
+ ldr r0, _020864F4 ; =0x04000008
+ mov r1, #0x3
+ ldrh r2, [r0, #0x0]
+ bic r2, r1
+ mov r1, #0x1
+ orr r1, r2
+ strh r1, [r0, #0x0]
+ add r0, #0x58
+ ldrh r2, [r0, #0x0]
+ ldr r1, _020864F8 ; =0xFFFFCFFD
+ and r2, r1
+ strh r2, [r0, #0x0]
+ add r2, r1, #0x2
+ ldrh r3, [r0, #0x0]
+ add r1, r1, #0x2
+ and r3, r2
+ mov r2, #0x10
+ orr r2, r3
+ strh r2, [r0, #0x0]
+ ldrh r3, [r0, #0x0]
+ ldr r2, _020864FC ; =0x0000CFFB
+ and r3, r2
+ strh r3, [r0, #0x0]
+ ldrh r3, [r0, #0x0]
+ sub r2, #0x1c
+ and r3, r1
+ mov r1, #0x8
+ orr r1, r3
+ strh r1, [r0, #0x0]
+ ldrh r1, [r0, #0x0]
+ and r1, r2
+ strh r1, [r0, #0x0]
+ mov r0, #0x0
+ add r1, r0, #0x0
+ add r2, r0, #0x0
+ add r3, r0, #0x0
+ blx G3X_SetFog
+ mov r0, #0x0
+ ldr r2, _02086500 ; =0x00007FFF
+ add r1, r0, #0x0
+ mov r3, #0x3f
+ str r0, [sp, #0x0]
+ blx G3X_SetClearColor
+ ldr r1, _02086504 ; =0xBFFF0000
+ ldr r0, _02086508 ; =0x04000580
+ str r1, [r0, #0x0]
+ pop {r3, pc}
+ .balign 4
+_020864F4: .word 0x04000008
+_020864F8: .word 0xFFFFCFFD
+_020864FC: .word 0x0000CFFB
+_02086500: .word 0x00007FFF
+_02086504: .word 0xBFFF0000
+_02086508: .word 0x04000580
+
+ thumb_func_start FUN_0208650C
+FUN_0208650C: ; 0x0208650C
+ push {r3-r5, lr}
+ ldr r3, _02086544 ; =0x021064B8
+ mov r0, #0x2
+ mov r1, #0x0
+ ldr r3, [r3, #0x0]
+ lsl r0, r0, #0xe
+ add r2, r1, #0x0
+ blx r3
+ ldr r3, _02086548 ; =0x021064C0
+ mov r1, #0x0
+ add r4, r0, #0x0
+ ldr r3, [r3, #0x0]
+ mov r0, #0x80
+ add r2, r1, #0x0
+ blx r3
+ add r5, r0, #0x0
+ cmp r4, #0x0
+ bne _02086534
+ bl ErrorHandling
+_02086534:
+ cmp r5, #0x0
+ bne _0208653C
+ bl ErrorHandling
+_0208653C:
+ bl FUN_02012CC8
+ pop {r3-r5, pc}
+ nop
+_02086544: .word 0x021064B8
+_02086548: .word 0x021064C0
+
+ thumb_func_start FUN_0208654C
+FUN_0208654C: ; 0x0208654C
+ push {r3-r5, lr}
+ sub sp, #0xa8
+ add r4, r0, #0x0
+ bl FUN_0201E6D8
+ ldr r5, _02086650 ; =0x020FCEBC
+ add r3, sp, #0x2c
+ mov r2, #0x5
+_0208655C:
+ ldmia r5!, {r0-r1}
+ stmia r3!, {r0-r1}
+ sub r2, r2, #0x1
+ bne _0208655C
+ add r0, sp, #0x2c
+ bl FUN_0201E66C
+ mov r1, #0x6
+ mov r2, #0x2
+ mov r0, #0x0
+ lsl r1, r1, #0x18
+ lsl r2, r2, #0x12
+ blx MIi_CpuClear32
+ mov r1, #0x62
+ mov r2, #0x2
+ mov r0, #0x0
+ lsl r1, r1, #0x14
+ lsl r2, r2, #0x10
+ blx MIi_CpuClear32
+ mov r1, #0x19
+ mov r2, #0x1
+ mov r0, #0x0
+ lsl r1, r1, #0x16
+ lsl r2, r2, #0x12
+ blx MIi_CpuClear32
+ mov r1, #0x66
+ mov r2, #0x2
+ mov r0, #0x0
+ lsl r1, r1, #0x14
+ lsl r2, r2, #0x10
+ blx MIi_CpuClear32
+ ldr r5, _02086654 ; =0x020FCE24
+ add r3, sp, #0x1c
+ add r2, r3, #0x0
+ ldmia r5!, {r0-r1}
+ stmia r3!, {r0-r1}
+ ldmia r5!, {r0-r1}
+ stmia r3!, {r0-r1}
+ add r0, r2, #0x0
+ bl FUN_02016BBC
+ ldr r5, _02086658 ; =0x020FCF84
+ add r3, sp, #0x54
+ mov r2, #0xa
+_020865BC:
+ ldmia r5!, {r0-r1}
+ stmia r3!, {r0-r1}
+ sub r2, r2, #0x1
+ bne _020865BC
+ ldr r0, [r5, #0x0]
+ mov r1, #0x1
+ str r0, [r3, #0x0]
+ add r0, r4, #0x0
+ add r2, sp, #0x54
+ mov r3, #0x0
+ bl FUN_02016C18
+ add r0, r4, #0x0
+ mov r1, #0x2
+ add r2, sp, #0x70
+ mov r3, #0x0
+ bl FUN_02016C18
+ add r0, r4, #0x0
+ mov r1, #0x3
+ add r2, sp, #0x8c
+ mov r3, #0x0
+ bl FUN_02016C18
+ add r0, r4, #0x0
+ mov r1, #0x1
+ bl FUN_02018744
+ add r0, r4, #0x0
+ mov r1, #0x2
+ bl FUN_02018744
+ add r0, r4, #0x0
+ mov r1, #0x3
+ bl FUN_02018744
+ ldr r1, _0208665C ; =0x04000008
+ mov r0, #0x3
+ ldrh r2, [r1, #0x0]
+ bic r2, r0
+ mov r0, #0x1
+ orr r2, r0
+ strh r2, [r1, #0x0]
+ add r1, r0, #0x0
+ bl FUN_0201E6E4
+ bl FUN_0201E788
+ mov r0, #0x10
+ mov r1, #0x1
+ bl FUN_0201E6E4
+ ldr r5, _02086660 ; =0x020FCE60
+ add r3, sp, #0x0
+ ldmia r5!, {r0-r1}
+ add r2, r3, #0x0
+ stmia r3!, {r0-r1}
+ ldmia r5!, {r0-r1}
+ stmia r3!, {r0-r1}
+ ldmia r5!, {r0-r1}
+ stmia r3!, {r0-r1}
+ ldr r0, [r5, #0x0]
+ mov r1, #0x4
+ str r0, [r3, #0x0]
+ add r0, r4, #0x0
+ mov r3, #0x0
+ bl FUN_02016C18
+ add r0, r4, #0x0
+ mov r1, #0x4
+ bl FUN_02018744
+ add sp, #0xa8
+ pop {r3-r5, pc}
+ .balign 4
+_02086650: .word 0x020FCEBC
+_02086654: .word 0x020FCE24
+_02086658: .word 0x020FCF84
+_0208665C: .word 0x04000008
+_02086660: .word 0x020FCE60
+
+ thumb_func_start FUN_02086664
+FUN_02086664: ; 0x02086664
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r0, [r4, #0x3c]
+ bl FUN_020081C4
+ bl FUN_0201C30C
+ bl FUN_0200BC30
+ ldr r0, [r4, #0x8]
+ bl FUN_0200372C
+ ldr r0, [r4, #0x4]
+ bl FUN_0201AB60
+ ldr r3, _02086690 ; =0x027E0000
+ ldr r1, _02086694 ; =0x00003FF8
+ mov r0, #0x1
+ ldr r2, [r3, r1]
+ orr r0, r2
+ str r0, [r3, r1]
+ pop {r4, pc}
+ .balign 4
+_02086690: .word 0x027E0000
+_02086694: .word 0x00003FF8
+
+ thumb_func_start FUN_02086698
+FUN_02086698: ; 0x02086698
+ push {r3, lr}
+ bl FUN_020222AC
+ bl FUN_02013364
+ cmp r0, #0x0
+ ble _020866AE
+ bl FUN_020222AC
+ blx FUN_020B02C8
+_020866AE:
+ bl FUN_02013388
+ mov r0, #0x1
+ mov r1, #0x0
+ bl FUN_020222B4
+ pop {r3, pc}
+
+ thumb_func_start FUN_020866BC
+FUN_020866BC: ; 0x020866BC
+ push {lr}
+ sub sp, #0xc
+ mov r0, #0x6
+ str r0, [sp, #0x0]
+ mov r1, #0x1
+ str r1, [sp, #0x4]
+ mov r0, #0x47
+ str r0, [sp, #0x8]
+ mov r0, #0x0
+ add r2, r1, #0x0
+ add r3, r0, #0x0
+ bl FUN_0200E1D0
+ add sp, #0xc
+ pop {pc}
+ .balign 4
+
+ thumb_func_start FUN_020866DC
+FUN_020866DC: ; 0x020866DC
+ push {lr}
+ sub sp, #0xc
+ mov r0, #0x6
+ str r0, [sp, #0x0]
+ mov r0, #0x1
+ str r0, [sp, #0x4]
+ mov r0, #0x47
+ str r0, [sp, #0x8]
+ mov r0, #0x0
+ add r1, r0, #0x0
+ add r2, r0, #0x0
+ add r3, r0, #0x0
+ bl FUN_0200E1D0
+ add sp, #0xc
+ pop {pc}
+
+ thumb_func_start FUN_020866FC
+FUN_020866FC: ; 0x020866FC
+ push {r3-r6, lr}
+ sub sp, #0xc
+ add r6, r2, #0x0
+ add r4, r1, #0x0
+ lsl r1, r6, #0x18
+ lsr r1, r1, #0x18
+ str r1, [sp, #0x0]
+ mov r1, #0x47
+ str r1, [sp, #0x4]
+ mov r1, #0x1
+ mov r2, #0x14
+ mov r3, #0xf
+ add r5, r0, #0x0
+ bl FUN_0200CD68
+ add r0, r6, #0x0
+ bl FUN_0200CD64
+ add r2, r0, #0x0
+ mov r0, #0x0
+ str r0, [sp, #0x0]
+ mov r0, #0x20
+ str r0, [sp, #0x4]
+ mov r0, #0xc0
+ str r0, [sp, #0x8]
+ add r0, r4, #0x0
+ mov r1, #0x26
+ mov r3, #0x47
+ bl FUN_020030E8
+ mov r0, #0x0
+ str r0, [sp, #0x0]
+ mov r0, #0x47
+ str r0, [sp, #0x4]
+ add r0, r5, #0x0
+ mov r1, #0x1
+ mov r2, #0x32
+ mov r3, #0xd
+ bl FUN_0200CB00
+ bl FUN_0200CAFC
+ add r2, r0, #0x0
+ mov r0, #0x0
+ str r0, [sp, #0x0]
+ mov r0, #0x20
+ str r0, [sp, #0x4]
+ mov r0, #0xd0
+ str r0, [sp, #0x8]
+ add r0, r4, #0x0
+ mov r1, #0x26
+ mov r3, #0x47
+ bl FUN_020030E8
+ mov r0, #0x0
+ str r0, [sp, #0x0]
+ mov r0, #0x20
+ str r0, [sp, #0x4]
+ mov r0, #0xe0
+ str r0, [sp, #0x8]
+ add r0, r4, #0x0
+ mov r1, #0xe
+ mov r2, #0x7
+ mov r3, #0x47
+ bl FUN_020030E8
+ add sp, #0xc
+ pop {r3-r6, pc}
+
+ thumb_func_start FUN_02086784
+FUN_02086784: ; 0x02086784
+ push {r4-r7, lr}
+ sub sp, #0x14
+ add r5, r1, #0x0
+ add r7, r0, #0x0
+ add r0, r5, #0x0
+ add r4, r2, #0x0
+ add r6, r3, #0x0
+ bl FUN_0201901C
+ ldr r0, [sp, #0x28]
+ lsl r2, r4, #0x18
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x0]
+ ldr r0, [sp, #0x2c]
+ lsl r3, r6, #0x18
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x4]
+ ldr r0, [sp, #0x30]
+ add r1, r5, #0x0
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x8]
+ 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, #0x0
+ bl FUN_02019064
+ add r0, r5, #0x0
+ mov r1, #0x1
+ mov r2, #0x14
+ mov r3, #0xc
+ bl FUN_0200D0BC
+ add r0, r5, #0x0
+ mov r1, #0xf
+ bl FUN_02019620
+ add r0, r5, #0x0
+ bl FUN_020191D0
+ add sp, #0x14
+ pop {r4-r7, pc}
+
+ thumb_func_start FUN_020867EC
+FUN_020867EC: ; 0x020867EC
+ push {r3-r7, lr}
+ sub sp, #0x18
+ add r4, r1, #0x0
+ mov r1, #0xf
+ str r0, [sp, #0xc]
+ str r2, [sp, #0x10]
+ add r6, r3, #0x0
+ bl FUN_02019620
+ ldr r2, _02086874 ; =0x0000013F
+ mov r0, #0x0
+ mov r1, #0x1a
+ mov r3, #0x47
+ bl FUN_0200A86C
+ add r7, r0, #0x0
+ mov r0, #0x47
+ bl FUN_0200AA80
+ add r5, r0, #0x0
+ add r0, r7, #0x0
+ add r1, r4, #0x0
+ bl FUN_0200A914
+ str r0, [sp, #0x14]
+ mov r0, #0xff
+ mov r1, #0x47
+ bl FUN_020219F4
+ add r4, r0, #0x0
+ ldr r0, [sp, #0x10]
+ bl FUN_020690E4
+ add r2, r0, #0x0
+ add r0, r5, #0x0
+ mov r1, #0x0
+ bl FUN_0200AC60
+ ldr r2, [sp, #0x14]
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_0200B7B8
+ mov r3, #0x0
+ str r3, [sp, #0x0]
+ str r6, [sp, #0x4]
+ ldr r0, [sp, #0xc]
+ mov r1, #0x1
+ add r2, r4, #0x0
+ str r3, [sp, #0x8]
+ bl FUN_0201BD84
+ add r6, r0, #0x0
+ add r0, r7, #0x0
+ bl FUN_0200A8B8
+ add r0, r4, #0x0
+ bl FUN_02021A20
+ ldr r0, [sp, #0x14]
+ bl FUN_02021A20
+ add r0, r5, #0x0
+ bl FUN_0200AB18
+ add r0, r6, #0x0
+ add sp, #0x18
+ pop {r3-r7, pc}
+ .balign 4
+_02086874: .word 0x0000013F
+
+ thumb_func_start FUN_02086878
+FUN_02086878: ; 0x02086878
+ push {r4-r7, lr}
+ sub sp, #0x24
+ add r5, r0, #0x0
+ add r0, r2, #0x0
+ add r6, r1, #0x0
+ str r2, [sp, #0x14]
+ add r4, r3, #0x0
+ bl FUN_0201901C
+ ldr r0, [sp, #0x3c]
+ ldr r3, [sp, #0x38]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x0]
+ ldr r0, [sp, #0x40]
+ lsl r2, r4, #0x18
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x4]
+ ldr r0, [sp, #0x44]
+ lsl r3, r3, #0x18
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x8]
+ ldr r0, [sp, #0x4c]
+ ldr r1, [sp, #0x14]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0xc]
+ ldr r0, [sp, #0x48]
+ lsr r2, r2, #0x18
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #0x10]
+ add r0, r6, #0x0
+ lsr r3, r3, #0x18
+ bl FUN_02019064
+ mov r0, #0x2
+ mov r1, #0x47
+ bl FUN_02012838
+ str r0, [r5, #0x44]
+ ldr r2, _0208695C ; =0x0000013F
+ mov r0, #0x0
+ mov r1, #0x1a
+ mov r3, #0x47
+ bl FUN_0200A86C
+ add r7, r0, #0x0
+ mov r4, #0x0
+_020868DE:
+ add r0, r7, #0x0
+ add r1, r4, #0x2
+ bl FUN_0200A914
+ add r6, r0, #0x0
+ ldr r0, [r5, #0x44]
+ add r1, r6, #0x0
+ add r2, r4, #0x0
+ bl FUN_020128A0
+ add r0, r6, #0x0
+ bl FUN_02021A20
+ add r4, r4, #0x1
+ cmp r4, #0x2
+ blt _020868DE
+ add r0, r7, #0x0
+ bl FUN_0200A8B8
+ ldr r0, [r5, #0x44]
+ mov r1, #0x0
+ str r0, [sp, #0x18]
+ add r0, sp, #0x18
+ strb r1, [r0, #0x8]
+ ldr r1, [sp, #0x14]
+ mov r2, #0x2
+ str r1, [sp, #0x1c]
+ mov r1, #0x1
+ strb r1, [r0, #0x9]
+ strb r2, [r0, #0xa]
+ ldrb r3, [r0, #0xb]
+ mov r2, #0xf
+ bic r3, r2
+ strb r3, [r0, #0xb]
+ ldrb r3, [r0, #0xb]
+ mov r2, #0x30
+ bic r3, r2
+ strb r3, [r0, #0xb]
+ ldrb r3, [r0, #0xb]
+ mov r2, #0xc0
+ bic r3, r2
+ mov r2, #0x40
+ orr r2, r3
+ strb r2, [r0, #0xb]
+ ldr r0, [sp, #0x14]
+ mov r2, #0x32
+ mov r3, #0xd
+ bl FUN_0200CCA4
+ mov r0, #0x47
+ str r0, [sp, #0x0]
+ mov r0, #0x2
+ mov r2, #0x0
+ str r0, [sp, #0x4]
+ add r0, sp, #0x18
+ mov r1, #0x8
+ add r3, r2, #0x0
+ bl FUN_02001C14
+ str r0, [r5, #0x48]
+ add sp, #0x24
+ pop {r4-r7, pc}
+ nop
+_0208695C: .word 0x0000013F
+
+ thumb_func_start FUN_02086960
+FUN_02086960: ; 0x02086960
+ push {r4, lr}
+ add r4, r0, #0x0
+ add r0, #0x28
+ mov r1, #0x1
+ bl FUN_0200CCF8
+ add r0, r4, #0x0
+ add r0, #0x28
+ bl FUN_02019570
+ add r0, r4, #0x0
+ add r0, #0x28
+ bl FUN_02019178
+ ldr r0, [r4, #0x48]
+ mov r1, #0x0
+ bl FUN_02001C5C
+ ldr r0, [r4, #0x44]
+ bl FUN_02012870
+ pop {r4, pc}
+
+ thumb_func_start FUN_0208698C
+FUN_0208698C: ; 0x0208698C
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl FUN_02019570
+ add r0, r4, #0x0
+ bl FUN_02019178
+ pop {r4, pc}
+
+ thumb_func_start FUN_0208699C
+FUN_0208699C: ; 0x0208699C
+ push {r3-r5, lr}
+ sub sp, #0x10
+ add r4, r1, #0x0
+ mov r1, #0x0
+ add r5, r0, #0x0
+ str r1, [sp, #0x0]
+ str r1, [sp, #0x4]
+ mov r0, #0x1
+ str r0, [sp, #0x8]
+ mov r0, #0x47
+ str r0, [sp, #0xc]
+ mov r0, #0x76
+ add r2, r5, #0x0
+ mov r3, #0x3
+ bl FUN_0200687C
+ mov r0, #0x0
+ str r0, [sp, #0x0]
+ str r0, [sp, #0x4]
+ mov r1, #0x1
+ str r1, [sp, #0x8]
+ mov r0, #0x47
+ str r0, [sp, #0xc]
+ mov r0, #0x76
+ add r2, r5, #0x0
+ mov r3, #0x3
+ bl FUN_020068C8
+ mov r1, #0x0
+ str r1, [sp, #0x0]
+ mov r0, #0x40
+ str r0, [sp, #0x4]
+ str r1, [sp, #0x8]
+ add r0, r4, #0x0
+ mov r1, #0x76
+ mov r2, #0x8
+ mov r3, #0x47
+ bl FUN_020030E8
+ add sp, #0x10
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_020869F0
+FUN_020869F0: ; 0x020869F0
+ push {r3-r5, lr}
+ sub sp, #0x10
+ add r5, r0, #0x0
+ mov r0, #0x0
+ str r0, [sp, #0x0]
+ str r0, [sp, #0x4]
+ mov r0, #0x1
+ str r0, [sp, #0x8]
+ mov r0, #0x47
+ add r4, r1, #0x0
+ str r0, [sp, #0xc]
+ mov r0, #0xc
+ mov r1, #0xa
+ add r2, r5, #0x0
+ mov r3, #0x4
+ bl FUN_0200687C
+ mov r0, #0x0
+ str r0, [sp, #0x0]
+ str r0, [sp, #0x4]
+ mov r0, #0x1
+ str r0, [sp, #0x8]
+ mov r0, #0x47
+ str r0, [sp, #0xc]
+ mov r0, #0xc
+ mov r1, #0xb
+ add r2, r5, #0x0
+ mov r3, #0x4
+ bl FUN_020068C8
+ mov r0, #0x1
+ str r0, [sp, #0x0]
+ mov r0, #0x20
+ str r0, [sp, #0x4]
+ mov r0, #0x0
+ mov r1, #0xc
+ str r0, [sp, #0x8]
+ add r0, r4, #0x0
+ add r2, r1, #0x0
+ mov r3, #0x47
+ bl FUN_020030E8
+ add sp, #0x10
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_02086A48
+FUN_02086A48: ; 0x02086A48
+ push {r4, lr}
+ ldr r3, _02086A60 ; =0x021064B8
+ mov r2, #0x0
+ ldr r3, [r3, #0x0]
+ blx r3
+ add r4, r0, #0x0
+ bl FUN_0201327C
+ lsl r0, r4, #0x10
+ lsr r0, r0, #0xd
+ pop {r4, pc}
+ nop
+_02086A60: .word 0x021064B8
+
+ thumb_func_start FUN_02086A64
+FUN_02086A64: ; 0x02086A64
+ push {r4, lr}
+ ldr r3, _02086A7C ; =0x021064C0
+ mov r2, #0x0
+ ldr r3, [r3, #0x0]
+ blx r3
+ add r4, r0, #0x0
+ bl FUN_020132BC
+ lsl r0, r4, #0x10
+ lsr r0, r0, #0xd
+ pop {r4, pc}
+ nop
+_02086A7C: .word 0x021064C0
+
+ thumb_func_start FUN_02086A80
+FUN_02086A80: ; 0x02086A80
+ push {r4, lr}
+ sub sp, #0x8
+ mov r1, #0x12
+ lsl r1, r1, #0xa
+ add r4, r0, #0x0
+ bl FUN_02016998
+ add r2, r0, #0x0
+ mov r0, #0x1
+ str r0, [sp, #0x0]
+ mov r3, #0x12
+ ldr r0, _02086AC0 ; =FUN_02086A48
+ ldr r1, _02086AC4 ; =FUN_02086A64
+ lsl r3, r3, #0xa
+ str r4, [sp, #0x4]
+ bl FUN_02012CDC
+ add r4, r0, #0x0
+ bl FUN_0201343C
+ add r2, r0, #0x0
+ beq _02086AB8
+ mov r0, #0x1
+ mov r1, #0xe1
+ lsl r0, r0, #0xc
+ lsl r1, r1, #0xe
+ bl FUN_0201EC94
+_02086AB8:
+ add r0, r4, #0x0
+ add sp, #0x8
+ pop {r4, pc}
+ nop
+_02086AC0: .word FUN_02086A48
+_02086AC4: .word FUN_02086A64
+
+ thumb_func_start FUN_02086AC8
+FUN_02086AC8: ; 0x02086AC8
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ add r6, r1, #0x0
+ add r7, r2, #0x0
+ bl FUN_02086A80
+ add r4, r0, #0x0
+ add r0, r6, #0x0
+ add r1, r7, #0x0
+ add r2, r5, #0x0
+ bl FUN_0201318C
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ mov r2, #0xa
+ mov r3, #0x1
+ bl FUN_02013194
+ add r0, r4, #0x0
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_02086AF0
+FUN_02086AF0: ; 0x02086AF0
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ bl FUN_020133E8
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_02012DE4
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_02086B08
+FUN_02086B08: ; 0x02086B08
+ push {r3}
+ sub sp, #0xc
+ add r2, sp, #0x0
+ mov r1, #0x0
+ str r1, [r2, #0x0]
+ str r1, [r2, #0x4]
+ str r1, [r2, #0x8]
+ ldr r1, [r0, #0x20]
+ ldr r2, [sp, #0x0]
+ ldr r1, [r1, #0x0]
+ ldr r1, [r1, #0x4]
+ add r1, r2, r1
+ str r1, [r0, #0x28]
+ ldr r1, [r0, #0x20]
+ ldr r2, [sp, #0x4]
+ ldr r1, [r1, #0x0]
+ ldr r1, [r1, #0x8]
+ add r1, r2, r1
+ str r1, [r0, #0x2c]
+ ldr r1, [r0, #0x20]
+ ldr r2, [sp, #0x8]
+ ldr r1, [r1, #0x0]
+ ldr r1, [r1, #0xc]
+ add r1, r2, r1
+ str r1, [r0, #0x30]
+ add sp, #0xc
+ pop {r3}
+ bx lr
+
+ thumb_func_start FUN_02086B40
+FUN_02086B40: ; 0x02086B40
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ ldr r0, [r5, #0x0]
+ mov r1, #0x10
+ bl FUN_02016998
+ add r4, r0, #0x0
+ bne _02086B54
+ bl ErrorHandling
+_02086B54:
+ ldr r0, [r5, #0x0]
+ ldr r2, [r5, #0x4]
+ mov r1, #0x77
+ str r0, [r4, #0x0]
+ str r2, [r4, #0x4]
+ ldr r0, [r4, #0x0]
+ bl FUN_02086AC8
+ mov r1, #0x1
+ str r0, [r4, #0xc]
+ bl FUN_02013440
+ add r0, r4, #0x0
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_02086B70
+FUN_02086B70: ; 0x02086B70
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r0, [r4, #0xc]
+ ldr r2, _02086B88 ; =FUN_02086B08
+ add r3, r4, #0x0
+ bl FUN_020133AC
+ ldr r0, [r4, #0xc]
+ mov r1, #0x1
+ bl FUN_02013440
+ pop {r4, pc}
+ .balign 4
+_02086B88: .word FUN_02086B08
+
+ thumb_func_start FUN_02086B8C
+FUN_02086B8C: ; 0x02086B8C
+ push {r3, lr}
+ ldr r0, [r0, #0xc]
+ bl FUN_020133C8
+ cmp r0, #0x0
+ beq _02086B9C
+ mov r0, #0x1
+ pop {r3, pc}
+_02086B9C:
+ mov r0, #0x0
+ pop {r3, pc}
+
+ thumb_func_start FUN_02086BA0
+FUN_02086BA0: ; 0x02086BA0
+ ldr r3, _02086BA4 ; =FUN_02016A18
+ bx r3
+ .balign 4
+_02086BA4: .word FUN_02016A18
+
+ thumb_func_start FUN_02086BA8
+FUN_02086BA8: ; 0x02086BA8
+ push {r4-r6, lr}
+ sub sp, #0x38
+ ldr r3, _02086C8C ; =0x020FCE9C
+ add r2, sp, #0x18
+ add r6, r0, #0x0
+ 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 r5, [r6, #0x4c]
+ ldr r4, [r6, #0x50]
+ ldr r6, [r6, #0x8]
+ mov r0, #0x1
+ str r0, [sp, #0x0]
+ str r0, [sp, #0x4]
+ ldr r0, _02086C90 ; =0x00004E20
+ add r1, r5, #0x0
+ str r0, [sp, #0x8]
+ ldr r3, [sp, #0x18]
+ add r0, r4, #0x0
+ mov r2, #0x76
+ bl FUN_0200C00C
+ mov r0, #0x76
+ str r0, [sp, #0x0]
+ ldr r0, [sp, #0x1c]
+ mov r1, #0x2
+ str r0, [sp, #0x4]
+ mov r0, #0x0
+ str r0, [sp, #0x8]
+ mov r0, #0x1
+ str r0, [sp, #0xc]
+ str r0, [sp, #0x10]
+ ldr r0, _02086C94 ; =0x00004E21
+ add r2, r4, #0x0
+ str r0, [sp, #0x14]
+ add r0, r6, #0x0
+ add r3, r5, #0x0
+ bl FUN_0200C0DC
+ mov r0, #0x1
+ str r0, [sp, #0x0]
+ ldr r0, _02086C98 ; =0x00004E22
+ add r1, r5, #0x0
+ str r0, [sp, #0x4]
+ ldr r3, [sp, #0x20]
+ add r0, r4, #0x0
+ mov r2, #0x76
+ bl FUN_0200C124
+ mov r0, #0x1
+ str r0, [sp, #0x0]
+ ldr r0, _02086C9C ; =0x00004E23
+ add r1, r5, #0x0
+ str r0, [sp, #0x4]
+ ldr r3, [sp, #0x24]
+ add r0, r4, #0x0
+ mov r2, #0x76
+ bl FUN_0200C13C
+ mov r0, #0x1
+ str r0, [sp, #0x0]
+ str r0, [sp, #0x4]
+ ldr r0, _02086CA0 ; =0x000061A8
+ add r1, r5, #0x0
+ str r0, [sp, #0x8]
+ add r0, r4, #0x0
+ mov r2, #0x76
+ mov r3, #0x7
+ bl FUN_0200C00C
+ mov r0, #0x76
+ str r0, [sp, #0x0]
+ mov r0, #0xa
+ str r0, [sp, #0x4]
+ mov r0, #0x0
+ str r0, [sp, #0x8]
+ mov r0, #0x1
+ str r0, [sp, #0xc]
+ str r0, [sp, #0x10]
+ ldr r0, _02086CA4 ; =0x000061A9
+ mov r1, #0x2
+ str r0, [sp, #0x14]
+ add r0, r6, #0x0
+ add r2, r4, #0x0
+ add r3, r5, #0x0
+ bl FUN_0200C0DC
+ mov r0, #0x1
+ str r0, [sp, #0x0]
+ ldr r0, _02086CA8 ; =0x000061AA
+ add r1, r5, #0x0
+ str r0, [sp, #0x4]
+ add r0, r4, #0x0
+ mov r2, #0x76
+ mov r3, #0x6
+ bl FUN_0200C124
+ mov r0, #0x1
+ str r0, [sp, #0x0]
+ ldr r0, _02086CAC ; =0x000061AB
+ add r1, r5, #0x0
+ str r0, [sp, #0x4]
+ add r0, r4, #0x0
+ mov r2, #0x76
+ mov r3, #0x5
+ bl FUN_0200C13C
+ add sp, #0x38
+ pop {r4-r6, pc}
+ .balign 4
+_02086C8C: .word 0x020FCE9C
+_02086C90: .word 0x00004E20
+_02086C94: .word 0x00004E21
+_02086C98: .word 0x00004E22
+_02086C9C: .word 0x00004E23
+_02086CA0: .word 0x000061A8
+_02086CA4: .word 0x000061A9
+_02086CA8: .word 0x000061AA
+_02086CAC: .word 0x000061AB
+
+ thumb_func_start FUN_02086CB0
+FUN_02086CB0: ; 0x02086CB0
+ push {r3-r4, lr}
+ sub sp, #0x34
+ add r4, r0, #0x0
+ mov r1, #0x80
+ add r0, sp, #0x0
+ strh r1, [r0, #0x0]
+ mov r1, #0x78
+ strh r1, [r0, #0x2]
+ mov r1, #0x0
+ strh r1, [r0, #0x4]
+ strh r1, [r0, #0x6]
+ mov r0, #0x1
+ mov r2, #0x2
+ str r1, [sp, #0x8]
+ str r1, [sp, #0xc]
+ str r1, [sp, #0x30]
+ ldr r1, _02086D4C ; =0x00004E20
+ str r0, [sp, #0x10]
+ add r0, r1, #0x1
+ str r0, [sp, #0x18]
+ add r0, r1, #0x2
+ str r0, [sp, #0x1c]
+ add r0, r1, #0x3
+ str r0, [sp, #0x20]
+ sub r0, r2, #0x3
+ str r2, [sp, #0x2c]
+ str r1, [sp, #0x14]
+ str r0, [sp, #0x24]
+ str r0, [sp, #0x28]
+ ldr r0, [r4, #0x50]
+ ldr r1, [r4, #0x4c]
+ add r2, sp, #0x0
+ bl FUN_0200C154
+ str r0, [r4, #0x6c]
+ bl FUN_0200C5A8
+ ldr r0, [r4, #0x6c]
+ mov r1, #0x2
+ bl FUN_0200C840
+ mov r2, #0x0
+ add r0, sp, #0x0
+ add r1, r2, #0x0
+ strh r2, [r0, #0x0]
+ sub r1, #0x10
+ strh r1, [r0, #0x2]
+ ldr r1, _02086D50 ; =0x000061A8
+ str r2, [sp, #0x2c]
+ add r0, r1, #0x1
+ str r0, [sp, #0x18]
+ add r0, r1, #0x2
+ str r0, [sp, #0x1c]
+ add r0, r1, #0x3
+ str r1, [sp, #0x14]
+ str r0, [sp, #0x20]
+ ldr r0, [r4, #0x50]
+ ldr r1, [r4, #0x4c]
+ add r2, sp, #0x0
+ bl FUN_0200C154
+ str r0, [r4, #0x70]
+ bl FUN_0200C5A8
+ mov r1, #0x90
+ add r0, sp, #0x0
+ strh r1, [r0, #0x2]
+ ldr r0, [r4, #0x50]
+ ldr r1, [r4, #0x4c]
+ add r2, sp, #0x0
+ bl FUN_0200C154
+ str r0, [r4, #0x74]
+ bl FUN_0200C5A8
+ add sp, #0x34
+ pop {r3-r4, pc}
+ nop
+_02086D4C: .word 0x00004E20
+_02086D50: .word 0x000061A8
+
+ thumb_func_start FUN_02086D54
+FUN_02086D54: ; 0x02086D54
+ push {r3-r7, lr}
+ add r6, r0, #0x0
+ add r7, r1, #0x0
+ add r4, r6, #0x0
+ ldr r1, [r6, #0x78]
+ add r4, #0x78
+ cmp r1, #0x0
+ bne _02086DE6
+ ldr r0, [r4, #0x4]
+ cmp r0, #0xa
+ blt _02086D74
+ add r0, r1, #0x1
+ str r0, [r4, #0x0]
+ mov r0, #0x0
+ str r0, [r4, #0x4]
+ b _02086DE6
+_02086D74:
+ mov r1, #0x14
+ add r3, r7, #0x0
+ mul r3, r1
+ ldr r1, _02086DF4 ; =0x020FCEE4
+ lsl r2, r0, #0x1
+ add r1, r1, r3
+ ldrsh r1, [r2, r1]
+ lsl r0, r0, #0x2
+ mov r5, #0x0
+ mov r12, r1
+ ldr r1, _02086DF8 ; =0x020FCF34
+ add r1, r1, r3
+ ldrsh r2, [r2, r1]
+ mov r1, #0x28
+ add r3, r7, #0x0
+ mul r3, r1
+ ldr r1, _02086DFC ; =0x020FCFD8
+ add r1, r1, r3
+ ldr r7, [r0, r1]
+ ldr r1, _02086E00 ; =0x020FD078
+ add r1, r1, r3
+ ldr r0, [r0, r1]
+ str r0, [sp, #0x0]
+ mov r0, r12
+ cmp r0, #0xff
+ bne _02086DAC
+ mov r12, r5
+ add r5, r5, #0x1
+_02086DAC:
+ cmp r2, #0xff
+ bne _02086DB4
+ mov r2, #0x0
+ add r5, r5, #0x1
+_02086DB4:
+ ldr r0, [r6, #0x6c]
+ mov r1, r12
+ bl FUN_0200C82C
+ mov r0, #0x0
+ add r1, r7, #0x0
+ blx _feq
+ beq _02086DD2
+ ldr r0, [r6, #0x6c]
+ ldr r2, [sp, #0x0]
+ add r1, r7, #0x0
+ bl FUN_0200C884
+ b _02086DD4
+_02086DD2:
+ add r5, r5, #0x1
+_02086DD4:
+ cmp r5, #0x3
+ beq _02086DE0
+ ldr r0, [r4, #0x4]
+ add r0, r0, #0x1
+ str r0, [r4, #0x4]
+ b _02086DEE
+_02086DE0:
+ ldr r0, [r4, #0x0]
+ add r0, r0, #0x1
+ str r0, [r4, #0x0]
+_02086DE6:
+ mov r0, #0x0
+ str r0, [r4, #0x0]
+ str r0, [r4, #0x4]
+ pop {r3-r7, pc}
+_02086DEE:
+ mov r0, #0x1
+ pop {r3-r7, pc}
+ nop
+_02086DF4: .word 0x020FCEE4
+_02086DF8: .word 0x020FCF34
+_02086DFC: .word 0x020FCFD8
+_02086E00: .word 0x020FD078
+
+ thumb_func_start FUN_02086E04
+FUN_02086E04: ; 0x02086E04
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ bl FUN_02086D54
+ cmp r0, #0x0
+ bne _02086E16
+ mov r0, #0x2
+ pop {r3-r5, pc}
+_02086E16:
+ cmp r4, #0x4
+ ldr r0, [r5, #0x7c]
+ bne _02086E24
+ cmp r0, #0x6
+ bne _02086E2C
+ mov r0, #0x1
+ pop {r3-r5, pc}
+_02086E24:
+ cmp r0, #0x6
+ bne _02086E2C
+ mov r0, #0x1
+ pop {r3-r5, pc}
+_02086E2C:
+ mov r0, #0x0
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_02086E30
+FUN_02086E30: ; 0x02086E30
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r0, [r4, #0x6c]
+ bl FUN_0200C3DC
+ ldr r0, [r4, #0x70]
+ bl FUN_0200C3DC
+ ldr r0, [r4, #0x74]
+ bl FUN_0200C3DC
+ pop {r4, pc}
+
+ thumb_func_start FUN_02086E48
+FUN_02086E48: ; 0x02086E48
+ push {r3-r6, lr}
+ sub sp, #0x4c
+ add r4, r0, #0x0
+ mov r0, #0x47
+ bl FUN_0200BB14
+ add r2, sp, #0x2c
+ ldr r5, _02086EC8 ; =0x020FCE7C
+ str r0, [r4, #0x4c]
+ ldmia r5!, {r0-r1}
+ add r3, r2, #0x0
+ 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, _02086ECC ; =0x020FCE34
+ stmia r2!, {r0-r1}
+ add r5, sp, #0x18
+ ldmia r6!, {r0-r1}
+ add r2, r5, #0x0
+ stmia r5!, {r0-r1}
+ ldmia r6!, {r0-r1}
+ stmia r5!, {r0-r1}
+ ldr r0, [r6, #0x0]
+ add r1, r3, #0x0
+ str r0, [r5, #0x0]
+ ldr r0, [r4, #0x4c]
+ mov r3, #0x20
+ bl FUN_0200BB6C
+ ldr r3, _02086ED0 ; =0x020FCE48
+ add r2, sp, #0x0
+ 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, #0x4c]
+ bl FUN_0200BB34
+ str r0, [r4, #0x48]
+ ldr r0, [r4, #0x4c]
+ ldr r1, [r4, #0x48]
+ mov r2, #0xff
+ bl FUN_0200BBF0
+ cmp r0, #0x0
+ bne _02086EB2
+ bl ErrorHandling
+_02086EB2:
+ ldr r0, [r4, #0x4c]
+ ldr r1, [r4, #0x48]
+ add r2, sp, #0x0
+ bl FUN_0200BF60
+ cmp r0, #0x0
+ bne _02086EC4
+ bl ErrorHandling
+_02086EC4:
+ add sp, #0x4c
+ pop {r3-r6, pc}
+ .balign 4
+_02086EC8: .word 0x020FCE7C
+_02086ECC: .word 0x020FCE34
+_02086ED0: .word 0x020FCE48
+
+ thumb_func_start FUN_02086ED4
+FUN_02086ED4: ; 0x02086ED4
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r0, [r4, #0x4c]
+ ldr r1, [r4, #0x48]
+ bl FUN_0200C398
+ ldr r0, [r4, #0x4c]
+ bl FUN_0200BD04
+ pop {r4, pc}
+
+ thumb_func_start FUN_02086EE8
+FUN_02086EE8: ; 0x02086EE8
+ push {r3-r7, lr}
+ sub sp, #0x38
+ add r5, r0, #0x0
+ ldr r0, [r5, #0x0]
+ mov r1, #0x5
+ ldr r4, [r0, #0xc]
+ mov r2, #0x0
+ add r0, r4, #0x0
+ bl FUN_020671BC
+ add r6, r0, #0x0
+ add r0, r4, #0x0
+ mov r1, #0x2
+ bl FUN_02068E14
+ add r7, r0, #0x0
+ mov r0, #0x0
+ str r0, [sp, #0x10]
+ add r0, r4, #0x0
+ mov r1, #0x4c
+ add r2, sp, #0x10
+ bl FUN_02067830
+ add r0, sp, #0x28
+ add r1, r4, #0x0
+ mov r2, #0x2
+ bl FUN_02068B68
+ lsl r1, r6, #0x10
+ add r0, sp, #0x14
+ lsr r1, r1, #0x10
+ bl FUN_02069010
+ mov r1, #0x0
+ str r1, [sp, #0x0]
+ add r7, #0x60
+ str r1, [sp, #0x4]
+ add r0, sp, #0x14
+ str r0, [sp, #0x8]
+ str r1, [sp, #0xc]
+ ldr r0, [r5, #0x3c]
+ add r1, sp, #0x28
+ mov r2, #0x80
+ add r3, r7, #0x0
+ bl FUN_020073A0
+ str r0, [r5, #0x68]
+ add sp, #0x38
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_02086F4C
+FUN_02086F4C: ; 0x02086F4C
+ push {r3-r6, lr}
+ sub sp, #0xc
+ add r5, r0, #0x0
+ ldr r0, [r5, #0x0]
+ mov r1, #0x5
+ ldr r0, [r0, #0xc]
+ mov r2, #0x0
+ bl FUN_020671BC
+ add r4, r0, #0x0
+ ldr r0, [r5, #0x0]
+ ldr r0, [r0, #0xc]
+ bl FUN_02068854
+ add r6, r0, #0x0
+ ldr r0, [r5, #0x68]
+ mov r1, #0x1
+ bl FUN_02007314
+ lsl r2, r4, #0x10
+ str r6, [sp, #0x0]
+ mov r0, #0x0
+ str r0, [sp, #0x4]
+ str r0, [sp, #0x8]
+ ldr r0, [r5, #0x54]
+ ldr r1, [r5, #0x68]
+ lsr r2, r2, #0x10
+ mov r3, #0x2
+ bl FUN_02069038
+ add sp, #0xc
+ pop {r3-r6, pc}
+
+ thumb_func_start FUN_02086F8C
+FUN_02086F8C: ; 0x02086F8C
+ ldr r3, _02086F94 ; =FUN_02007534
+ ldr r0, [r0, #0x68]
+ bx r3
+ nop
+_02086F94: .word FUN_02007534
+
+ thumb_func_start FUN_02086F98
+FUN_02086F98: ; 0x02086F98
+ ldr r3, _02086FA4 ; =FUN_02007558
+ add r2, r1, #0x0
+ ldr r0, [r0, #0x68]
+ mov r1, #0x6
+ bx r3
+ nop
+_02086FA4: .word FUN_02007558
+
+ thumb_func_start FUN_02086FA8
+FUN_02086FA8: ; 0x02086FA8
+ push {r3, lr}
+ ldr r1, [r0, #0x58]
+ lsl r2, r1, #0x2
+ ldr r1, _02086FB8 ; =0x020FD118
+ ldr r1, [r1, r2]
+ blx r1
+ pop {r3, pc}
+ nop
+_02086FB8: .word 0x020FD118
+
+ thumb_func_start FUN_02086FBC
+FUN_02086FBC: ; 0x02086FBC
+ push {r3-r5, lr}
+ sub sp, #0x20
+ add r4, r0, #0x0
+ ldr r1, [r4, #0x5c]
+ mov r5, #0x1
+ cmp r1, #0x11
+ bls _02086FCC
+ b _0208720E
+_02086FCC:
+ add r2, r1, r1
+ add r2, pc
+ ldrh r2, [r2, #0x6]
+ lsl r2, r2, #0x10
+ asr r2, r2, #0x10
+ add pc, r2
+_02086FD8: ; jump table (using 16-bit offset)
+ .short _02086FFC - _02086FD8 - 2; case 0
+ .short _0208706A - _02086FD8 - 2; case 1
+ .short _02087074 - _02086FD8 - 2; case 2
+ .short _02087092 - _02086FD8 - 2; case 3
+ .short _020870A2 - _02086FD8 - 2; case 4
+ .short _020870B2 - _02086FD8 - 2; case 5
+ .short _020870C2 - _02086FD8 - 2; case 6
+ .short _020870D2 - _02086FD8 - 2; case 7
+ .short _0208710E - _02086FD8 - 2; case 8
+ .short _02087122 - _02086FD8 - 2; case 9
+ .short _02087132 - _02086FD8 - 2; case 10
+ .short _02087158 - _02086FD8 - 2; case 11
+ .short _020871AA - _02086FD8 - 2; case 12
+ .short _020871E2 - _02086FD8 - 2; case 13
+ .short _020871EE - _02086FD8 - 2; case 14
+ .short _020871F4 - _02086FD8 - 2; case 15
+ .short _020871FE - _02086FD8 - 2; case 16
+ .short _0208720E - _02086FD8 - 2; case 17
+_02086FFC:
+ ldr r0, [r4, #0x4]
+ ldr r1, [r4, #0x8]
+ bl FUN_0208699C
+ ldr r0, [r4, #0x4]
+ ldr r1, [r4, #0x8]
+ bl FUN_020869F0
+ ldr r0, [r4, #0x4]
+ ldr r1, [r4, #0x8]
+ ldr r2, [r4, #0x14]
+ bl FUN_020866FC
+ mov r0, #0x13
+ str r0, [sp, #0x0]
+ mov r0, #0x1b
+ str r0, [sp, #0x4]
+ mov r0, #0x4
+ str r0, [sp, #0x8]
+ mov r0, #0x3b
+ str r0, [sp, #0xc]
+ mov r0, #0xe
+ str r0, [sp, #0x10]
+ add r1, r4, #0x0
+ ldr r0, [r4, #0x4]
+ add r1, #0x18
+ add r2, r5, #0x0
+ mov r3, #0x2
+ bl FUN_02086784
+ add r0, r4, #0x0
+ bl FUN_02086BA8
+ add r0, r4, #0x0
+ bl FUN_02086CB0
+ add r0, r4, #0x0
+ bl FUN_02086EE8
+ add r0, r4, #0x0
+ add r1, r5, #0x0
+ bl FUN_02086F98
+ mov r0, #0x47
+ str r0, [sp, #0x18]
+ mov r0, #0x0
+ str r0, [sp, #0x1c]
+ add r0, sp, #0x18
+ bl FUN_02086B40
+ str r0, [r4, #0x40]
+ ldr r0, [r4, #0x5c]
+ add r0, r0, #0x1
+ str r0, [r4, #0x5c]
+ b _02087232
+_0208706A:
+ bl FUN_020866BC
+ ldr r0, [r4, #0x5c]
+ add r0, r0, #0x1
+ str r0, [r4, #0x5c]
+_02087074:
+ bl FUN_0200E308
+ cmp r0, #0x1
+ bne _0208712A
+ bl FUN_0200541C
+ ldr r1, _02087240 ; =0x00000475
+ mov r0, #0xd
+ mov r2, #0x1
+ bl FUN_0200433C
+ ldr r0, [r4, #0x5c]
+ add r0, r0, #0x1
+ str r0, [r4, #0x5c]
+ b _02087232
+_02087092:
+ bl FUN_0208749C
+ cmp r0, #0x0
+ bne _0208712A
+ ldr r0, [r4, #0x5c]
+ add r0, r0, #0x1
+ str r0, [r4, #0x5c]
+ b _02087232
+_020870A2:
+ bl FUN_020874E4
+ cmp r0, #0x0
+ bne _0208712A
+ ldr r0, [r4, #0x5c]
+ add r0, r0, #0x1
+ str r0, [r4, #0x5c]
+ b _02087232
+_020870B2:
+ bl FUN_02087554
+ cmp r0, #0x0
+ bne _0208712A
+ ldr r0, [r4, #0x5c]
+ add r0, r0, #0x1
+ str r0, [r4, #0x5c]
+ b _02087232
+_020870C2:
+ bl FUN_020875AC
+ cmp r0, #0x0
+ bne _0208712A
+ ldr r0, [r4, #0x5c]
+ add r0, r0, #0x1
+ str r0, [r4, #0x5c]
+ b _02087232
+_020870D2:
+ bl FUN_02087610
+ cmp r0, #0x0
+ bne _0208712A
+ add r0, r4, #0x0
+ bl FUN_02086F4C
+ ldr r0, [r4, #0x0]
+ mov r1, #0x5
+ ldr r0, [r0, #0xc]
+ mov r2, #0x0
+ bl FUN_020671BC
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ bl FUN_02005578
+ ldr r2, [r4, #0x0]
+ add r0, r4, #0x0
+ ldr r2, [r2, #0xc]
+ ldr r3, [r4, #0x10]
+ add r0, #0x18
+ mov r1, #0x0
+ bl FUN_020867EC
+ str r0, [r4, #0xc]
+ ldr r0, [r4, #0x5c]
+ add r0, r0, #0x1
+ str r0, [r4, #0x5c]
+ b _02087232
+_0208710E:
+ bl FUN_02005670
+ cmp r0, #0x0
+ bne _0208712A
+ ldr r0, _02087244 ; =0x00000484
+ bl FUN_02005C28
+ ldr r0, [r4, #0x5c]
+ add r0, r0, #0x1
+ str r0, [r4, #0x5c]
+_02087122:
+ bl FUN_02005CBC
+ cmp r0, #0x0
+ beq _0208712C
+_0208712A:
+ b _02087232
+_0208712C:
+ ldr r0, [r4, #0x5c]
+ add r0, r0, #0x1
+ str r0, [r4, #0x5c]
+_02087132:
+ ldr r0, [r4, #0xc]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_0201BD70
+ cmp r0, #0x0
+ bne _02087232
+ ldr r2, [r4, #0x0]
+ add r0, r4, #0x0
+ ldr r2, [r2, #0xc]
+ ldr r3, [r4, #0x10]
+ add r0, #0x18
+ mov r1, #0x1
+ bl FUN_020867EC
+ str r0, [r4, #0xc]
+ ldr r0, [r4, #0x5c]
+ add r0, r0, #0x1
+ str r0, [r4, #0x5c]
+_02087158:
+ ldr r0, [r4, #0xc]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_0201BD70
+ cmp r0, #0x0
+ bne _02087232
+ ldr r0, [r4, #0x54]
+ mov r1, #0x0
+ bl FUN_02014D7C
+ cmp r0, #0x1
+ bne _02087232
+ ldr r0, [r4, #0x68]
+ bl FUN_02007390
+ cmp r0, #0x0
+ bne _02087232
+ mov r0, #0x19
+ str r0, [sp, #0x0]
+ mov r0, #0xd
+ str r0, [sp, #0x4]
+ mov r0, #0x6
+ str r0, [sp, #0x8]
+ mov r0, #0x4
+ str r0, [sp, #0xc]
+ mov r0, #0xa7
+ str r0, [sp, #0x10]
+ mov r0, #0xe
+ str r0, [sp, #0x14]
+ add r2, r4, #0x0
+ ldr r1, [r4, #0x4]
+ add r0, r4, #0x0
+ add r2, #0x28
+ mov r3, #0x1
+ bl FUN_02086878
+ ldr r0, [r4, #0x5c]
+ add r0, r0, #0x1
+ str r0, [r4, #0x5c]
+ b _02087232
+_020871AA:
+ ldr r0, [r4, #0x48]
+ bl FUN_02001C78
+ sub r1, r5, #0x3
+ cmp r0, r1
+ beq _020871BE
+ add r1, r1, #0x1
+ cmp r0, r1
+ beq _02087232
+ b _020871CC
+_020871BE:
+ ldr r0, [r4, #0x0]
+ mov r1, #0x0
+ str r1, [r0, #0x4]
+ ldr r0, [r4, #0x5c]
+ add r0, r0, #0x1
+ str r0, [r4, #0x5c]
+ b _02087232
+_020871CC:
+ cmp r0, #0x0
+ bne _020871D4
+ add r1, r5, #0x0
+ b _020871D6
+_020871D4:
+ mov r1, #0x0
+_020871D6:
+ ldr r0, [r4, #0x0]
+ str r1, [r0, #0x4]
+ ldr r0, [r4, #0x5c]
+ add r0, r0, #0x1
+ str r0, [r4, #0x5c]
+ b _02087232
+_020871E2:
+ bl FUN_02086960
+ ldr r0, [r4, #0x5c]
+ add r0, r0, #0x1
+ str r0, [r4, #0x5c]
+ b _02087232
+_020871EE:
+ add r0, r1, #0x1
+ str r0, [r4, #0x5c]
+ b _02087232
+_020871F4:
+ bl FUN_020866DC
+ ldr r0, [r4, #0x5c]
+ add r0, r0, #0x1
+ str r0, [r4, #0x5c]
+_020871FE:
+ bl FUN_0200E308
+ cmp r0, #0x1
+ bne _02087232
+ ldr r0, [r4, #0x5c]
+ add r0, r0, #0x1
+ str r0, [r4, #0x5c]
+ b _02087232
+_0208720E:
+ add r0, r4, #0x0
+ bl FUN_02086F8C
+ add r0, r4, #0x0
+ bl FUN_02086E30
+ add r0, r4, #0x0
+ add r0, #0x18
+ bl FUN_0208698C
+ ldr r0, [r4, #0x40]
+ ldr r0, [r0, #0xc]
+ bl FUN_02086AF0
+ ldr r0, [r4, #0x40]
+ bl FUN_02086BA0
+ mov r5, #0x0
+_02087232:
+ ldr r0, [r4, #0x4c]
+ bl FUN_0200BC1C
+ add r0, r5, #0x0
+ add sp, #0x20
+ pop {r3-r5, pc}
+ nop
+_02087240: .word 0x00000475
+_02087244: .word 0x00000484
+
+ thumb_func_start FUN_02087248
+FUN_02087248: ; 0x02087248
+ push {r3-r5, lr}
+ sub sp, #0x20
+ add r4, r0, #0x0
+ ldr r1, [r4, #0x5c]
+ mov r5, #0x1
+ cmp r1, #0x11
+ bls _02087258
+ b _02087462
+_02087258:
+ add r2, r1, r1
+ add r2, pc
+ ldrh r2, [r2, #0x6]
+ lsl r2, r2, #0x10
+ asr r2, r2, #0x10
+ add pc, r2
+_02087264: ; jump table (using 16-bit offset)
+ .short _02087288 - _02087264 - 2; case 0
+ .short _020872FE - _02087264 - 2; case 1
+ .short _02087308 - _02087264 - 2; case 2
+ .short _02087322 - _02087264 - 2; case 3
+ .short _0208735C - _02087264 - 2; case 4
+ .short _0208735C - _02087264 - 2; case 5
+ .short _0208735C - _02087264 - 2; case 6
+ .short _0208735C - _02087264 - 2; case 7
+ .short _02087362 - _02087264 - 2; case 8
+ .short _02087376 - _02087264 - 2; case 9
+ .short _02087386 - _02087264 - 2; case 10
+ .short _020873AC - _02087264 - 2; case 11
+ .short _020873FE - _02087264 - 2; case 12
+ .short _02087436 - _02087264 - 2; case 13
+ .short _02087442 - _02087264 - 2; case 14
+ .short _02087448 - _02087264 - 2; case 15
+ .short _02087452 - _02087264 - 2; case 16
+ .short _02087462 - _02087264 - 2; case 17
+_02087288:
+ ldr r0, [r4, #0x4]
+ ldr r1, [r4, #0x8]
+ bl FUN_0208699C
+ ldr r0, [r4, #0x4]
+ ldr r1, [r4, #0x8]
+ bl FUN_020869F0
+ ldr r0, [r4, #0x4]
+ ldr r1, [r4, #0x8]
+ ldr r2, [r4, #0x14]
+ bl FUN_020866FC
+ mov r0, #0x13
+ str r0, [sp, #0x0]
+ mov r0, #0x1b
+ str r0, [sp, #0x4]
+ mov r0, #0x4
+ str r0, [sp, #0x8]
+ mov r0, #0x3b
+ str r0, [sp, #0xc]
+ mov r0, #0xe
+ str r0, [sp, #0x10]
+ add r1, r4, #0x0
+ ldr r0, [r4, #0x4]
+ add r1, #0x18
+ add r2, r5, #0x0
+ mov r3, #0x2
+ bl FUN_02086784
+ add r0, r4, #0x0
+ bl FUN_02086BA8
+ add r0, r4, #0x0
+ bl FUN_02086CB0
+ ldr r0, [r4, #0x6c]
+ mov r1, #0x0
+ bl FUN_0200C644
+ add r0, r4, #0x0
+ bl FUN_02086EE8
+ add r0, r4, #0x0
+ add r1, r5, #0x0
+ bl FUN_02086F98
+ mov r0, #0x47
+ str r0, [sp, #0x18]
+ add r0, r5, #0x0
+ str r0, [sp, #0x1c]
+ add r0, sp, #0x18
+ bl FUN_02086B40
+ str r0, [r4, #0x40]
+ ldr r0, [r4, #0x5c]
+ add r0, r0, #0x1
+ str r0, [r4, #0x5c]
+ b _02087486
+_020872FE:
+ bl FUN_020866BC
+ ldr r0, [r4, #0x5c]
+ add r0, r0, #0x1
+ str r0, [r4, #0x5c]
+_02087308:
+ bl FUN_0200E308
+ cmp r0, #0x1
+ bne _0208737E
+ ldr r1, _02087494 ; =0x00000475
+ mov r0, #0xd
+ mov r2, #0x1
+ bl FUN_0200433C
+ ldr r0, [r4, #0x5c]
+ add r0, r0, #0x1
+ str r0, [r4, #0x5c]
+ b _02087486
+_02087322:
+ bl FUN_02087820
+ cmp r0, #0x0
+ bne _0208737E
+ add r0, r4, #0x0
+ bl FUN_02086F4C
+ ldr r0, [r4, #0x0]
+ mov r1, #0x5
+ ldr r0, [r0, #0xc]
+ mov r2, #0x0
+ bl FUN_020671BC
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ bl FUN_02005578
+ ldr r2, [r4, #0x0]
+ add r0, r4, #0x0
+ ldr r2, [r2, #0xc]
+ ldr r3, [r4, #0x10]
+ add r0, #0x18
+ mov r1, #0x0
+ bl FUN_020867EC
+ str r0, [r4, #0xc]
+ mov r0, #0x8
+ str r0, [r4, #0x5c]
+ b _02087486
+_0208735C:
+ bl ErrorHandling
+ b _02087486
+_02087362:
+ bl FUN_02005670
+ cmp r0, #0x0
+ bne _0208737E
+ ldr r0, _02087498 ; =0x00000484
+ bl FUN_02005C28
+ ldr r0, [r4, #0x5c]
+ add r0, r0, #0x1
+ str r0, [r4, #0x5c]
+_02087376:
+ bl FUN_02005CBC
+ cmp r0, #0x0
+ beq _02087380
+_0208737E:
+ b _02087486
+_02087380:
+ ldr r0, [r4, #0x5c]
+ add r0, r0, #0x1
+ str r0, [r4, #0x5c]
+_02087386:
+ ldr r0, [r4, #0xc]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_0201BD70
+ cmp r0, #0x0
+ bne _02087486
+ ldr r2, [r4, #0x0]
+ add r0, r4, #0x0
+ ldr r2, [r2, #0xc]
+ ldr r3, [r4, #0x10]
+ add r0, #0x18
+ mov r1, #0x1
+ bl FUN_020867EC
+ str r0, [r4, #0xc]
+ ldr r0, [r4, #0x5c]
+ add r0, r0, #0x1
+ str r0, [r4, #0x5c]
+_020873AC:
+ ldr r0, [r4, #0xc]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_0201BD70
+ cmp r0, #0x0
+ bne _02087486
+ ldr r0, [r4, #0x54]
+ mov r1, #0x0
+ bl FUN_02014D7C
+ cmp r0, #0x1
+ bne _02087486
+ ldr r0, [r4, #0x68]
+ bl FUN_02007390
+ cmp r0, #0x0
+ bne _02087486
+ mov r0, #0x19
+ str r0, [sp, #0x0]
+ mov r0, #0xd
+ str r0, [sp, #0x4]
+ mov r0, #0x6
+ str r0, [sp, #0x8]
+ mov r0, #0x4
+ str r0, [sp, #0xc]
+ mov r0, #0xa7
+ str r0, [sp, #0x10]
+ mov r0, #0xe
+ str r0, [sp, #0x14]
+ add r2, r4, #0x0
+ ldr r1, [r4, #0x4]
+ add r0, r4, #0x0
+ add r2, #0x28
+ mov r3, #0x1
+ bl FUN_02086878
+ ldr r0, [r4, #0x5c]
+ add r0, r0, #0x1
+ str r0, [r4, #0x5c]
+ b _02087486
+_020873FE:
+ ldr r0, [r4, #0x48]
+ bl FUN_02001C78
+ sub r1, r5, #0x3
+ cmp r0, r1
+ beq _02087412
+ add r1, r1, #0x1
+ cmp r0, r1
+ beq _02087486
+ b _02087420
+_02087412:
+ ldr r0, [r4, #0x0]
+ mov r1, #0x0
+ str r1, [r0, #0x4]
+ ldr r0, [r4, #0x5c]
+ add r0, r0, #0x1
+ str r0, [r4, #0x5c]
+ b _02087486
+_02087420:
+ cmp r0, #0x0
+ bne _02087428
+ add r1, r5, #0x0
+ b _0208742A
+_02087428:
+ mov r1, #0x0
+_0208742A:
+ ldr r0, [r4, #0x0]
+ str r1, [r0, #0x4]
+ ldr r0, [r4, #0x5c]
+ add r0, r0, #0x1
+ str r0, [r4, #0x5c]
+ b _02087486
+_02087436:
+ bl FUN_02086960
+ ldr r0, [r4, #0x5c]
+ add r0, r0, #0x1
+ str r0, [r4, #0x5c]
+ b _02087486
+_02087442:
+ add r0, r1, #0x1
+ str r0, [r4, #0x5c]
+ b _02087486
+_02087448:
+ bl FUN_020866DC
+ ldr r0, [r4, #0x5c]
+ add r0, r0, #0x1
+ str r0, [r4, #0x5c]
+_02087452:
+ bl FUN_0200E308
+ cmp r0, #0x1
+ bne _02087486
+ ldr r0, [r4, #0x5c]
+ add r0, r0, #0x1
+ str r0, [r4, #0x5c]
+ b _02087486
+_02087462:
+ add r0, r4, #0x0
+ bl FUN_02086F8C
+ add r0, r4, #0x0
+ bl FUN_02086E30
+ add r0, r4, #0x0
+ add r0, #0x18
+ bl FUN_0208698C
+ ldr r0, [r4, #0x40]
+ ldr r0, [r0, #0xc]
+ bl FUN_02086AF0
+ ldr r0, [r4, #0x40]
+ bl FUN_02086BA0
+ mov r5, #0x0
+_02087486:
+ ldr r0, [r4, #0x4c]
+ bl FUN_0200BC1C
+ add r0, r5, #0x0
+ add sp, #0x20
+ pop {r3-r5, pc}
+ nop
+_02087494: .word 0x00000475
+_02087498: .word 0x00000484
+
+ thumb_func_start FUN_0208749C
+FUN_0208749C: ; 0x0208749C
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r0, [r4, #0x64]
+ cmp r0, #0x0
+ beq _020874AC
+ cmp r0, #0x1
+ beq _020874BC
+ b _020874D4
+_020874AC:
+ ldr r0, [r4, #0x6c]
+ mov r1, #0x0
+ bl FUN_0200C61C
+ ldr r0, [r4, #0x64]
+ add r0, r0, #0x1
+ str r0, [r4, #0x64]
+ b _020874DC
+_020874BC:
+ ldr r0, [r4, #0x60]
+ add r0, r0, #0x1
+ str r0, [r4, #0x60]
+ cmp r0, #0x19
+ blt _020874DC
+ ldr r0, _020874E0 ; =0x00000714
+ bl FUN_020054C8
+ ldr r0, [r4, #0x64]
+ add r0, r0, #0x1
+ str r0, [r4, #0x64]
+ b _020874DC
+_020874D4:
+ mov r0, #0x0
+ str r0, [r4, #0x64]
+ str r0, [r4, #0x60]
+ pop {r4, pc}
+_020874DC:
+ mov r0, #0x1
+ pop {r4, pc}
+ .balign 4
+_020874E0: .word 0x00000714
+
+ thumb_func_start FUN_020874E4
+FUN_020874E4: ; 0x020874E4
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r1, [r4, #0x64]
+ cmp r1, #0x0
+ beq _020874F4
+ cmp r1, #0x1
+ beq _0208750E
+ b _02087532
+_020874F4:
+ ldr r0, [r4, #0x40]
+ bl FUN_02086B8C
+ cmp r0, #0x1
+ beq _0208754C
+ ldr r0, [r4, #0x6c]
+ mov r1, #0x1
+ bl FUN_0200C61C
+ ldr r0, [r4, #0x64]
+ add r0, r0, #0x1
+ str r0, [r4, #0x64]
+ b _0208754C
+_0208750E:
+ mov r1, #0x0
+ bl FUN_02086E04
+ cmp r0, #0x2
+ bne _0208754C
+ ldr r0, _02087550 ; =0x00000714
+ bl FUN_020054C8
+ ldr r0, [r4, #0x6c]
+ mov r1, #0x2
+ bl FUN_0200C61C
+ ldr r0, [r4, #0x64]
+ add r0, r0, #0x1
+ str r0, [r4, #0x64]
+ mov r0, #0x0
+ str r0, [r4, #0x60]
+ b _0208754C
+_02087532:
+ mov r1, #0x0
+ bl FUN_02086E04
+ cmp r0, #0x2
+ bne _0208754C
+ ldr r0, [r4, #0x6c]
+ mov r1, #0x2
+ bl FUN_0200C61C
+ mov r0, #0x0
+ str r0, [r4, #0x64]
+ str r0, [r4, #0x60]
+ pop {r4, pc}
+_0208754C:
+ mov r0, #0x1
+ pop {r4, pc}
+ .balign 4
+_02087550: .word 0x00000714
+
+ thumb_func_start FUN_02087554
+FUN_02087554: ; 0x02087554
+ push {r3-r5, lr}
+ add r4, r0, #0x0
+ ldr r1, [r4, #0x64]
+ cmp r1, #0x0
+ beq _02087564
+ cmp r1, #0x1
+ beq _0208756A
+ b _0208759C
+_02087564:
+ add r0, r1, #0x1
+ str r0, [r4, #0x64]
+ b _020875A4
+_0208756A:
+ mov r1, #0x1
+ bl FUN_02086E04
+ add r5, r0, #0x0
+ cmp r5, #0x1
+ bne _0208758C
+ ldr r0, _020875A8 ; =0x00000714
+ bl FUN_020054C8
+ ldr r0, [r4, #0x6c]
+ mov r1, #0x3
+ bl FUN_0200C61C
+ ldr r0, [r4, #0x40]
+ mov r1, #0x0
+ bl FUN_02086B70
+_0208758C:
+ cmp r5, #0x2
+ bne _020875A4
+ mov r0, #0x0
+ str r0, [r4, #0x60]
+ ldr r0, [r4, #0x64]
+ add r0, r0, #0x1
+ str r0, [r4, #0x64]
+ b _020875A4
+_0208759C:
+ mov r0, #0x0
+ str r0, [r4, #0x64]
+ str r0, [r4, #0x60]
+ pop {r3-r5, pc}
+_020875A4:
+ mov r0, #0x1
+ pop {r3-r5, pc}
+ .balign 4
+_020875A8: .word 0x00000714
+
+ thumb_func_start FUN_020875AC
+FUN_020875AC: ; 0x020875AC
+ push {r3-r5, lr}
+ add r4, r0, #0x0
+ ldr r1, [r4, #0x64]
+ cmp r1, #0x0
+ beq _020875BC
+ cmp r1, #0x1
+ beq _020875CE
+ b _02087600
+_020875BC:
+ ldr r0, [r4, #0x40]
+ bl FUN_02086B8C
+ cmp r0, #0x1
+ beq _02087608
+ ldr r0, [r4, #0x64]
+ add r0, r0, #0x1
+ str r0, [r4, #0x64]
+ b _02087608
+_020875CE:
+ mov r1, #0x2
+ bl FUN_02086E04
+ add r5, r0, #0x0
+ cmp r5, #0x1
+ bne _020875F0
+ ldr r0, _0208760C ; =0x00000714
+ bl FUN_020054C8
+ ldr r0, [r4, #0x6c]
+ mov r1, #0x4
+ bl FUN_0200C61C
+ ldr r0, [r4, #0x40]
+ mov r1, #0x1
+ bl FUN_02086B70
+_020875F0:
+ cmp r5, #0x2
+ bne _02087608
+ mov r0, #0x0
+ str r0, [r4, #0x60]
+ ldr r0, [r4, #0x64]
+ add r0, r0, #0x1
+ str r0, [r4, #0x64]
+ b _02087608
+_02087600:
+ mov r0, #0x0
+ str r0, [r4, #0x64]
+ str r0, [r4, #0x60]
+ pop {r3-r5, pc}
+_02087608:
+ mov r0, #0x1
+ pop {r3-r5, pc}
+ .balign 4
+_0208760C: .word 0x00000714
+
+ thumb_func_start FUN_02087610
+FUN_02087610: ; 0x02087610
+ push {r4-r6, lr}
+ sub sp, #0x10
+ add r4, r0, #0x0
+ ldr r1, [r4, #0x64]
+ cmp r1, #0x5
+ bls _0208761E
+ b _020877FC
+_0208761E:
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #0x6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_0208762A: ; jump table (using 16-bit offset)
+ .short _02087636 - _0208762A - 2; case 0
+ .short _02087658 - _0208762A - 2; case 1
+ .short _0208769A - _0208762A - 2; case 2
+ .short _02087702 - _0208762A - 2; case 3
+ .short _02087794 - _0208762A - 2; case 4
+ .short _020877E0 - _0208762A - 2; case 5
+_02087636:
+ ldr r0, [r4, #0x40]
+ bl FUN_02086B8C
+ cmp r0, #0x1
+ beq _020876A4
+ ldr r0, [r4, #0x6c]
+ mov r1, #0x4
+ bl FUN_0200C61C
+ mov r0, #0x2
+ mov r1, #0x0
+ bl FUN_0201E6E4
+ ldr r0, [r4, #0x64]
+ add r0, r0, #0x1
+ str r0, [r4, #0x64]
+ b _02087810
+_02087658:
+ mov r1, #0x3
+ bl FUN_02086E04
+ add r5, r0, #0x0
+ cmp r5, #0x1
+ bne _02087682
+ ldr r0, [r4, #0x6c]
+ mov r1, #0x5
+ bl FUN_0200C61C
+ ldr r0, _02087818 ; =0x00000707
+ bl FUN_020054C8
+ ldr r0, [r4, #0x40]
+ mov r1, #0x2
+ bl FUN_02086B70
+ ldr r0, [r4, #0x40]
+ mov r1, #0x3
+ bl FUN_02086B70
+_02087682:
+ cmp r5, #0x2
+ bne _020876A4
+ ldr r0, [r4, #0x6c]
+ mov r1, #0x0
+ bl FUN_0200C644
+ mov r0, #0x0
+ str r0, [r4, #0x60]
+ ldr r0, [r4, #0x64]
+ add r0, r0, #0x1
+ str r0, [r4, #0x64]
+ b _02087810
+_0208769A:
+ ldr r0, [r4, #0x60]
+ add r0, r0, #0x1
+ str r0, [r4, #0x60]
+ cmp r0, #0xa
+ bge _020876A6
+_020876A4:
+ b _02087810
+_020876A6:
+ mov r3, #0x0
+ str r3, [r4, #0x60]
+ str r3, [sp, #0x0]
+ mov r0, #0x10
+ ldr r2, _0208781C ; =0x0000FFFF
+ str r0, [sp, #0x4]
+ str r2, [sp, #0x8]
+ ldr r0, [r4, #0x8]
+ mov r1, #0x1
+ bl FUN_02003210
+ ldr r0, [r4, #0x70]
+ ldr r0, [r0, #0x0]
+ bl FUN_02020354
+ mov r1, #0x1
+ bl FUN_0201E28C
+ add r5, r0, #0x0
+ mov r3, #0x0
+ mov r6, #0x1
+ str r3, [sp, #0x0]
+ mov r0, #0x10
+ ldr r2, _0208781C ; =0x0000FFFF
+ str r0, [sp, #0x4]
+ str r2, [sp, #0x8]
+ lsl r6, r5
+ eor r2, r6
+ lsl r2, r2, #0x10
+ ldr r0, [r4, #0x8]
+ mov r1, #0x4
+ lsr r2, r2, #0x10
+ bl FUN_02003210
+ ldr r0, _0208781C ; =0x0000FFFF
+ mov r1, #0x0
+ str r0, [sp, #0x0]
+ ldr r0, [r4, #0x68]
+ mov r2, #0x10
+ add r3, r1, #0x0
+ bl FUN_02007E68
+ ldr r0, [r4, #0x64]
+ add r0, r0, #0x1
+ str r0, [r4, #0x64]
+ b _02087810
+_02087702:
+ add r1, sp, #0xc
+ ldr r0, [r4, #0x70]
+ mov r5, #0x0
+ add r1, #0x2
+ add r2, sp, #0xc
+ bl FUN_0200C7A0
+ add r0, sp, #0xc
+ add r1, r5, #0x0
+ ldrsh r2, [r0, r1]
+ add r0, r1, #0x0
+ sub r0, #0x30
+ cmp r2, r0
+ ble _02087728
+ ldr r0, [r4, #0x70]
+ sub r2, r1, #0x4
+ bl FUN_0200C82C
+ b _0208772A
+_02087728:
+ add r5, r5, #0x1
+_0208772A:
+ add r1, sp, #0xc
+ ldr r0, [r4, #0x74]
+ add r1, #0x2
+ add r2, sp, #0xc
+ bl FUN_0200C7A0
+ add r0, sp, #0xc
+ mov r1, #0x0
+ ldrsh r0, [r0, r1]
+ cmp r0, #0xc0
+ bge _0208774A
+ ldr r0, [r4, #0x74]
+ mov r2, #0x4
+ bl FUN_0200C82C
+ b _0208774C
+_0208774A:
+ add r5, r5, #0x1
+_0208774C:
+ ldr r0, [r4, #0x8]
+ bl FUN_020038E4
+ cmp r0, #0x0
+ bne _02087810
+ cmp r5, #0x2
+ bne _02087810
+ ldr r0, [r4, #0x68]
+ bl FUN_02007F20
+ cmp r0, #0x0
+ bne _02087810
+ mov r0, #0x2
+ mov r1, #0x1
+ bl FUN_0201E6E4
+ add r0, r4, #0x0
+ mov r1, #0x0
+ bl FUN_02086F98
+ ldr r0, [r4, #0x6c]
+ mov r1, #0x0
+ bl FUN_0200C644
+ ldr r0, [r4, #0x70]
+ mov r1, #0x0
+ bl FUN_0200C644
+ ldr r0, [r4, #0x74]
+ mov r1, #0x0
+ bl FUN_0200C644
+ ldr r0, [r4, #0x64]
+ add r0, r0, #0x1
+ str r0, [r4, #0x64]
+ b _02087810
+_02087794:
+ ldr r0, [r4, #0x60]
+ add r0, r0, #0x1
+ str r0, [r4, #0x60]
+ cmp r0, #0x19
+ blt _02087810
+ mov r2, #0x0
+ ldr r0, _0208781C ; =0x0000FFFF
+ str r2, [r4, #0x60]
+ str r0, [sp, #0x0]
+ ldr r0, [r4, #0x68]
+ mov r1, #0x10
+ add r3, r2, #0x0
+ bl FUN_02007E68
+ mov r0, #0x10
+ str r0, [sp, #0x0]
+ mov r3, #0x0
+ ldr r2, _0208781C ; =0x0000FFFF
+ str r3, [sp, #0x4]
+ str r2, [sp, #0x8]
+ ldr r0, [r4, #0x8]
+ mov r1, #0x1
+ bl FUN_02003210
+ mov r0, #0x10
+ str r0, [sp, #0x0]
+ mov r3, #0x0
+ ldr r2, _0208781C ; =0x0000FFFF
+ str r3, [sp, #0x4]
+ str r2, [sp, #0x8]
+ ldr r0, [r4, #0x8]
+ mov r1, #0x4
+ bl FUN_02003210
+ ldr r0, [r4, #0x64]
+ add r0, r0, #0x1
+ str r0, [r4, #0x64]
+ b _02087810
+_020877E0:
+ ldr r0, [r4, #0x8]
+ bl FUN_020038E4
+ cmp r0, #0x0
+ bne _02087810
+ ldr r0, [r4, #0x68]
+ bl FUN_02007F20
+ cmp r0, #0x0
+ bne _02087810
+ ldr r0, [r4, #0x64]
+ add r0, r0, #0x1
+ str r0, [r4, #0x64]
+ b _02087810
+_020877FC:
+ ldr r0, [r4, #0x40]
+ bl FUN_02086B8C
+ cmp r0, #0x1
+ beq _02087810
+ mov r0, #0x0
+ str r0, [r4, #0x64]
+ add sp, #0x10
+ str r0, [r4, #0x60]
+ pop {r4-r6, pc}
+_02087810:
+ mov r0, #0x1
+ add sp, #0x10
+ pop {r4-r6, pc}
+ nop
+_02087818: .word 0x00000707
+_0208781C: .word 0x0000FFFF
+
+ thumb_func_start FUN_02087820
+FUN_02087820: ; 0x02087820
+ push {r4-r6, lr}
+ sub sp, #0x10
+ add r4, r0, #0x0
+ ldr r0, [r4, #0x64]
+ cmp r0, #0x4
+ bls _0208782E
+ b _020879FC
+_0208782E:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0208783A: ; jump table (using 16-bit offset)
+ .short _02087844 - _0208783A - 2; case 0
+ .short _02087874 - _0208783A - 2; case 1
+ .short _02087902 - _0208783A - 2; case 2
+ .short _02087994 - _0208783A - 2; case 3
+ .short _020879E0 - _0208783A - 2; case 4
+_02087844:
+ ldr r0, [r4, #0x40]
+ mov r1, #0x0
+ bl FUN_02086B70
+ ldr r0, [r4, #0x40]
+ mov r1, #0x1
+ bl FUN_02086B70
+ ldr r0, [r4, #0x40]
+ mov r1, #0x2
+ bl FUN_02086B70
+ ldr r0, [r4, #0x40]
+ mov r1, #0x3
+ bl FUN_02086B70
+ mov r0, #0x2
+ mov r1, #0x0
+ bl FUN_0201E6E4
+ ldr r0, [r4, #0x64]
+ add r0, r0, #0x1
+ str r0, [r4, #0x64]
+ b _02087A06
+_02087874:
+ ldr r0, [r4, #0x60]
+ cmp r0, #0x19
+ beq _02087884
+ cmp r0, #0x50
+ beq _0208788C
+ cmp r0, #0x8e
+ beq _02087894
+ b _0208789A
+_02087884:
+ ldr r0, _02087A0C ; =0x00000806
+ bl FUN_020054C8
+ b _0208789A
+_0208788C:
+ ldr r0, _02087A10 ; =0x000007AA
+ bl FUN_020054C8
+ b _0208789A
+_02087894:
+ ldr r0, _02087A14 ; =0x00000815
+ bl FUN_020054C8
+_0208789A:
+ ldr r0, [r4, #0x60]
+ add r0, r0, #0x1
+ str r0, [r4, #0x60]
+ cmp r0, #0xa0
+ bge _020878A6
+ b _02087A06
+_020878A6:
+ mov r3, #0x0
+ str r3, [r4, #0x60]
+ str r3, [sp, #0x0]
+ mov r0, #0x10
+ ldr r2, _02087A18 ; =0x0000FFFF
+ str r0, [sp, #0x4]
+ str r2, [sp, #0x8]
+ ldr r0, [r4, #0x8]
+ mov r1, #0x1
+ bl FUN_02003210
+ ldr r0, [r4, #0x70]
+ ldr r0, [r0, #0x0]
+ bl FUN_02020354
+ mov r1, #0x1
+ bl FUN_0201E28C
+ add r5, r0, #0x0
+ mov r3, #0x0
+ mov r6, #0x1
+ str r3, [sp, #0x0]
+ mov r0, #0x10
+ ldr r2, _02087A18 ; =0x0000FFFF
+ str r0, [sp, #0x4]
+ str r2, [sp, #0x8]
+ lsl r6, r5
+ eor r2, r6
+ lsl r2, r2, #0x10
+ ldr r0, [r4, #0x8]
+ mov r1, #0x4
+ lsr r2, r2, #0x10
+ bl FUN_02003210
+ ldr r0, _02087A18 ; =0x0000FFFF
+ mov r1, #0x0
+ str r0, [sp, #0x0]
+ ldr r0, [r4, #0x68]
+ mov r2, #0x10
+ add r3, r1, #0x0
+ bl FUN_02007E68
+ ldr r0, [r4, #0x64]
+ add r0, r0, #0x1
+ str r0, [r4, #0x64]
+ b _02087A06
+_02087902:
+ add r1, sp, #0xc
+ ldr r0, [r4, #0x70]
+ mov r5, #0x0
+ add r1, #0x2
+ add r2, sp, #0xc
+ bl FUN_0200C7A0
+ add r0, sp, #0xc
+ add r1, r5, #0x0
+ ldrsh r2, [r0, r1]
+ add r0, r1, #0x0
+ sub r0, #0x30
+ cmp r2, r0
+ ble _02087928
+ ldr r0, [r4, #0x70]
+ sub r2, r1, #0x4
+ bl FUN_0200C82C
+ b _0208792A
+_02087928:
+ add r5, r5, #0x1
+_0208792A:
+ add r1, sp, #0xc
+ ldr r0, [r4, #0x74]
+ add r1, #0x2
+ add r2, sp, #0xc
+ bl FUN_0200C7A0
+ add r0, sp, #0xc
+ mov r1, #0x0
+ ldrsh r0, [r0, r1]
+ cmp r0, #0xc0
+ bge _0208794A
+ ldr r0, [r4, #0x74]
+ mov r2, #0x4
+ bl FUN_0200C82C
+ b _0208794C
+_0208794A:
+ add r5, r5, #0x1
+_0208794C:
+ ldr r0, [r4, #0x8]
+ bl FUN_020038E4
+ cmp r0, #0x0
+ bne _02087A06
+ cmp r5, #0x2
+ bne _02087A06
+ ldr r0, [r4, #0x68]
+ bl FUN_02007F20
+ cmp r0, #0x0
+ bne _02087A06
+ add r0, r4, #0x0
+ mov r1, #0x0
+ bl FUN_02086F98
+ mov r0, #0x2
+ mov r1, #0x1
+ bl FUN_0201E6E4
+ ldr r0, [r4, #0x6c]
+ mov r1, #0x0
+ bl FUN_0200C644
+ ldr r0, [r4, #0x70]
+ mov r1, #0x0
+ bl FUN_0200C644
+ ldr r0, [r4, #0x74]
+ mov r1, #0x0
+ bl FUN_0200C644
+ ldr r0, [r4, #0x64]
+ add r0, r0, #0x1
+ str r0, [r4, #0x64]
+ b _02087A06
+_02087994:
+ ldr r0, [r4, #0x60]
+ add r0, r0, #0x1
+ str r0, [r4, #0x60]
+ cmp r0, #0x19
+ blt _02087A06
+ mov r2, #0x0
+ ldr r0, _02087A18 ; =0x0000FFFF
+ str r2, [r4, #0x60]
+ str r0, [sp, #0x0]
+ ldr r0, [r4, #0x68]
+ mov r1, #0x10
+ add r3, r2, #0x0
+ bl FUN_02007E68
+ mov r0, #0x10
+ str r0, [sp, #0x0]
+ mov r3, #0x0
+ ldr r2, _02087A18 ; =0x0000FFFF
+ str r3, [sp, #0x4]
+ str r2, [sp, #0x8]
+ ldr r0, [r4, #0x8]
+ mov r1, #0x1
+ bl FUN_02003210
+ mov r0, #0x10
+ str r0, [sp, #0x0]
+ mov r3, #0x0
+ ldr r2, _02087A18 ; =0x0000FFFF
+ str r3, [sp, #0x4]
+ str r2, [sp, #0x8]
+ ldr r0, [r4, #0x8]
+ mov r1, #0x4
+ bl FUN_02003210
+ ldr r0, [r4, #0x64]
+ add r0, r0, #0x1
+ str r0, [r4, #0x64]
+ b _02087A06
+_020879E0:
+ ldr r0, [r4, #0x8]
+ bl FUN_020038E4
+ cmp r0, #0x0
+ bne _02087A06
+ ldr r0, [r4, #0x68]
+ bl FUN_02007F20
+ cmp r0, #0x0
+ bne _02087A06
+ ldr r0, [r4, #0x64]
+ add r0, r0, #0x1
+ str r0, [r4, #0x64]
+ b _02087A06
+_020879FC:
+ mov r0, #0x0
+ str r0, [r4, #0x64]
+ add sp, #0x10
+ str r0, [r4, #0x60]
+ pop {r4-r6, pc}
+_02087A06:
+ mov r0, #0x1
+ add sp, #0x10
+ pop {r4-r6, pc}
+ .balign 4
+_02087A0C: .word 0x00000806
+_02087A10: .word 0x000007AA
+_02087A14: .word 0x00000815
+_02087A18: .word 0x0000FFFF
+
+ thumb_func_start FUN_02087A1C
+FUN_02087A1C: ; 0x02087A1C
+ ldr r3, _02087A34 ; =0x020FD13C
+ mov r2, #0x0
+_02087A20:
+ ldrb r1, [r3, #0x0]
+ cmp r0, r1
+ beq _02087A2E
+ add r2, r2, #0x1
+ add r3, r3, #0x1
+ cmp r2, #0x6
+ blt _02087A20
+_02087A2E:
+ add r0, r2, #0x0
+ bx lr
+ nop
+_02087A34: .word 0x020FD13C
+
+ thumb_func_start FUN_02087A38
+FUN_02087A38: ; 0x02087A38
+ push {r4, lr}
+ add r4, r0, #0x0
+ cmp r4, #0x6
+ blt _02087A44
+ bl ErrorHandling
+_02087A44:
+ ldr r0, _02087A4C ; =0x020FD13C
+ ldrb r0, [r0, r4]
+ pop {r4, pc}
+ nop
+_02087A4C: .word 0x020FD13C
+
+ thumb_func_start FUN_02087A50
+FUN_02087A50: ; 0x02087A50
+ ldr r3, _02087A68 ; =0x020FD120
+ mov r2, #0x0
+_02087A54:
+ ldrh r1, [r3, #0x0]
+ cmp r0, r1
+ beq _02087A62
+ add r2, r2, #0x1
+ add r3, r3, #0x2
+ cmp r2, #0xe
+ blt _02087A54
+_02087A62:
+ add r0, r2, #0x0
+ bx lr
+ nop
+_02087A68: .word 0x020FD120
+
+ thumb_func_start FUN_02087A6C
+FUN_02087A6C: ; 0x02087A6C
+ push {r3, lr}
+ mov r1, #0x18
+ bl FUN_02016998
+ add r3, r0, #0x0
+ mov r2, #0x18
+ mov r1, #0x0
+_02087A7A:
+ strb r1, [r3, #0x0]
+ add r3, r3, #0x1
+ sub r2, r2, #0x1
+ bne _02087A7A
+ pop {r3, pc}
+
+ thumb_func_start FUN_02087A84
+FUN_02087A84: ; 0x02087A84
+ push {r4, lr}
+ add r4, r0, #0x0
+ bne _02087A8E
+ bl ErrorHandling
+_02087A8E:
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02087A98
+FUN_02087A98: ; 0x02087A98
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ add r6, r1, #0x0
+ add r4, r2, #0x0
+ cmp r5, #0x0
+ bne _02087AA8
+ bl ErrorHandling
+_02087AA8:
+ ldr r0, [r5, #0x0]
+ cmp r0, #0x0
+ beq _02087AB2
+ bl ErrorHandling
+_02087AB2:
+ ldr r0, [r5, #0x4]
+ cmp r0, #0x0
+ beq _02087ABC
+ bl ErrorHandling
+_02087ABC:
+ add r0, r4, #0x0
+ bl FUN_02087C18
+ str r0, [r5, #0x0]
+ add r0, r4, #0x0
+ bl FUN_02087C2C
+ str r0, [r5, #0x4]
+ cmp r6, #0x0
+ bne _02087AEE
+ add r0, r5, #0x0
+ add r1, r5, #0x0
+ add r0, #0x8
+ add r1, #0xc
+ add r2, r4, #0x0
+ bl FUN_02087C40
+ add r0, r5, #0x0
+ add r5, #0x14
+ add r0, #0x10
+ add r1, r5, #0x0
+ add r2, r4, #0x0
+ bl FUN_02087CA0
+ pop {r4-r6, pc}
+_02087AEE:
+ add r0, r5, #0x0
+ add r1, r5, #0x0
+ add r0, #0x8
+ add r1, #0xc
+ add r2, r4, #0x0
+ bl FUN_02087C70
+ add r0, r5, #0x0
+ add r5, #0x14
+ add r0, #0x10
+ add r1, r5, #0x0
+ add r2, r4, #0x0
+ bl FUN_02087CD0
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_02087B0C
+FUN_02087B0C: ; 0x02087B0C
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r0, [r4, #0x0]
+ cmp r0, #0x0
+ bne _02087B1A
+ bl ErrorHandling
+_02087B1A:
+ ldr r0, [r4, #0x4]
+ cmp r0, #0x0
+ bne _02087B24
+ bl ErrorHandling
+_02087B24:
+ ldr r0, [r4, #0x0]
+ bl FUN_02016A18
+ ldr r0, [r4, #0x4]
+ bl FUN_02016A18
+ ldr r0, [r4, #0x8]
+ bl FUN_02016A18
+ ldr r0, [r4, #0xc]
+ bl FUN_02016A18
+ ldr r0, [r4, #0x10]
+ bl FUN_02016A18
+ ldr r0, [r4, #0x14]
+ bl FUN_02016A18
+ mov r0, #0x0
+ str r0, [r4, #0x0]
+ str r0, [r4, #0x4]
+ str r0, [r4, #0x8]
+ str r0, [r4, #0xc]
+ str r0, [r4, #0x10]
+ str r0, [r4, #0x14]
+ pop {r4, pc}
+
+ thumb_func_start FUN_02087B58
+FUN_02087B58: ; 0x02087B58
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ cmp r5, #0x0
+ bne _02087B66
+ bl ErrorHandling
+_02087B66:
+ ldr r0, [r5, #0x0]
+ cmp r0, #0x0
+ bne _02087B70
+ bl ErrorHandling
+_02087B70:
+ ldr r1, [r5, #0x0]
+ lsl r0, r4, #0x2
+ ldr r0, [r1, r0]
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_02087B78
+FUN_02087B78: ; 0x02087B78
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ cmp r5, #0x0
+ bne _02087B86
+ bl ErrorHandling
+_02087B86:
+ ldr r0, [r5, #0x4]
+ cmp r0, #0x0
+ bne _02087B90
+ bl ErrorHandling
+_02087B90:
+ ldr r1, [r5, #0x4]
+ lsl r0, r4, #0x2
+ ldr r0, [r1, r0]
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_02087B98
+FUN_02087B98: ; 0x02087B98
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ cmp r5, #0x0
+ bne _02087BA6
+ bl ErrorHandling
+_02087BA6:
+ ldr r0, [r5, #0x8]
+ cmp r0, #0x0
+ bne _02087BB0
+ bl ErrorHandling
+_02087BB0:
+ ldr r1, [r5, #0x8]
+ lsl r0, r4, #0x1
+ ldrsh r0, [r1, r0]
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_02087BB8
+FUN_02087BB8: ; 0x02087BB8
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ cmp r5, #0x0
+ bne _02087BC6
+ bl ErrorHandling
+_02087BC6:
+ ldr r0, [r5, #0xc]
+ cmp r0, #0x0
+ bne _02087BD0
+ bl ErrorHandling
+_02087BD0:
+ ldr r1, [r5, #0xc]
+ lsl r0, r4, #0x1
+ ldrsh r0, [r1, r0]
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_02087BD8
+FUN_02087BD8: ; 0x02087BD8
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ cmp r5, #0x0
+ bne _02087BE6
+ bl ErrorHandling
+_02087BE6:
+ ldr r0, [r5, #0x10]
+ cmp r0, #0x0
+ bne _02087BF0
+ bl ErrorHandling
+_02087BF0:
+ ldr r1, [r5, #0x10]
+ lsl r0, r4, #0x1
+ ldrsh r0, [r1, r0]
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_02087BF8
+FUN_02087BF8: ; 0x02087BF8
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ cmp r5, #0x0
+ bne _02087C06
+ bl ErrorHandling
+_02087C06:
+ ldr r0, [r5, #0x14]
+ cmp r0, #0x0
+ bne _02087C10
+ bl ErrorHandling
+_02087C10:
+ ldr r1, [r5, #0x14]
+ lsl r0, r4, #0x1
+ ldrsh r0, [r1, r0]
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_02087C18
+FUN_02087C18: ; 0x02087C18
+ push {r3, lr}
+ mov r1, #0x0
+ add r3, r0, #0x0
+ mov r0, #0x4b
+ add r2, r1, #0x0
+ str r1, [sp, #0x0]
+ bl FUN_02006C98
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_02087C2C
+FUN_02087C2C: ; 0x02087C2C
+ push {r3, lr}
+ add r3, r0, #0x0
+ mov r2, #0x0
+ mov r0, #0x4b
+ mov r1, #0x1
+ str r2, [sp, #0x0]
+ bl FUN_02006C98
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_02087C40
+FUN_02087C40: ; 0x02087C40
+ push {r3-r6, lr}
+ sub sp, #0x4
+ add r6, r2, #0x0
+ mov r2, #0x0
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ str r2, [sp, #0x0]
+ mov r0, #0x4b
+ mov r1, #0x9
+ add r3, r6, #0x0
+ bl FUN_02006C98
+ str r0, [r5, #0x0]
+ mov r2, #0x0
+ mov r0, #0x4b
+ mov r1, #0xa
+ add r3, r6, #0x0
+ str r2, [sp, #0x0]
+ bl FUN_02006C98
+ str r0, [r4, #0x0]
+ add sp, #0x4
+ pop {r3-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_02087C70
+FUN_02087C70: ; 0x02087C70
+ push {r3-r6, lr}
+ sub sp, #0x4
+ add r6, r2, #0x0
+ mov r2, #0x0
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ str r2, [sp, #0x0]
+ mov r0, #0x4b
+ mov r1, #0x7
+ add r3, r6, #0x0
+ bl FUN_02006C98
+ str r0, [r5, #0x0]
+ mov r2, #0x0
+ mov r0, #0x4b
+ mov r1, #0x8
+ add r3, r6, #0x0
+ str r2, [sp, #0x0]
+ bl FUN_02006C98
+ str r0, [r4, #0x0]
+ add sp, #0x4
+ pop {r3-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_02087CA0
+FUN_02087CA0: ; 0x02087CA0
+ push {r3-r6, lr}
+ sub sp, #0x4
+ add r6, r2, #0x0
+ mov r2, #0x0
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ str r2, [sp, #0x0]
+ mov r0, #0x4b
+ mov r1, #0x5
+ add r3, r6, #0x0
+ bl FUN_02006C98
+ str r0, [r5, #0x0]
+ mov r2, #0x0
+ mov r0, #0x4b
+ mov r1, #0x6
+ add r3, r6, #0x0
+ str r2, [sp, #0x0]
+ bl FUN_02006C98
+ str r0, [r4, #0x0]
+ add sp, #0x4
+ pop {r3-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_02087CD0
+FUN_02087CD0: ; 0x02087CD0
+ push {r3-r6, lr}
+ sub sp, #0x4
+ add r6, r2, #0x0
+ mov r2, #0x0
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ str r2, [sp, #0x0]
+ mov r0, #0x4b
+ mov r1, #0x3
+ add r3, r6, #0x0
+ bl FUN_02006C98
+ str r0, [r5, #0x0]
+ mov r2, #0x0
+ mov r0, #0x4b
+ mov r1, #0x4
+ add r3, r6, #0x0
+ str r2, [sp, #0x0]
+ bl FUN_02006C98
+ str r0, [r4, #0x0]
+ add sp, #0x4
+ pop {r3-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_02087D00
+FUN_02087D00: ; 0x02087D00
+ push {r3-r7, lr}
+ sub sp, #0x10
+ add r4, r0, #0x0
+ add r5, r1, #0x0
+ mov r0, #0x0
+ mov r1, #0xcf
+ str r0, [sp, #0x0]
+ add r0, r5, #0x0
+ lsl r1, r1, #0x2
+ bl FUN_02016998
+ mov r2, #0xcf
+ mov r1, #0x0
+ lsl r2, r2, #0x2
+ add r7, r0, #0x0
+ blx MI_CpuFill8
+ add r0, r4, #0x0
+ bl FUN_02028048
+ str r0, [r7, #0x8]
+ add r0, r4, #0x0
+ bl FUN_020238F4
+ str r0, [r7, #0xc]
+ add r0, r4, #0x0
+ bl FUN_0206BB1C
+ str r0, [r7, #0x10]
+ add r0, r4, #0x0
+ bl FUN_0206F158
+ str r0, [r7, #0x14]
+ add r0, r4, #0x0
+ bl LoadPlayerDataAddress
+ str r0, [r7, #0x18]
+ add r0, r5, #0x0
+ bl FUN_02027E5C
+ add r4, r0, #0x0
+ mov r0, #0x1
+ mov r1, #0x20
+ add r2, r5, #0x0
+ bl FUN_0200AA90
+ str r0, [sp, #0x4]
+ mov r6, #0x0
+_02087D60:
+ ldr r0, [r7, #0x8]
+ add r1, r6, #0x0
+ add r2, r4, #0x0
+ bl FUN_02028174
+ add r0, r4, #0x0
+ bl FUN_02027E34
+ cmp r0, #0x0
+ beq _02087DEE
+ add r0, r4, #0x0
+ add r1, sp, #0x8
+ bl FUN_02027FBC
+ ldr r0, [sp, #0x0]
+ add r1, r7, #0x0
+ add r1, #0x1c
+ lsl r0, r0, #0x3
+ add r5, r1, r0
+ strb r6, [r1, r0]
+ add r0, r4, #0x0
+ bl FUN_02027FDC
+ strb r0, [r5, #0x1]
+ add r0, sp, #0x8
+ ldrb r1, [r0, #0x0]
+ mov r2, #0x1
+ strb r1, [r5, #0x2]
+ ldrb r0, [r0, #0x6]
+ mov r1, #0x0
+ strb r0, [r5, #0x3]
+ add r0, sp, #0x8
+_02087DA0:
+ add r3, r0, r1
+ ldrb r3, [r3, #0x1]
+ cmp r3, #0x0
+ beq _02087DAE
+ ldrb r3, [r5, #0x4]
+ orr r3, r2
+ strb r3, [r5, #0x4]
+_02087DAE:
+ add r1, r1, #0x1
+ lsl r1, r1, #0x18
+ lsl r2, r2, #0x19
+ lsr r1, r1, #0x18
+ lsr r2, r2, #0x18
+ cmp r1, #0x5
+ blo _02087DA0
+ ldrb r1, [r5, #0x4]
+ mov r0, #0x20
+ orr r0, r1
+ strb r0, [r5, #0x4]
+ ldrb r2, [r5, #0x4]
+ mov r1, #0x80
+ add r0, r2, #0x0
+ bic r0, r1
+ lsl r1, r2, #0x1a
+ lsr r1, r1, #0x1f
+ lsl r1, r1, #0x1f
+ lsr r1, r1, #0x18
+ orr r0, r1
+ strb r0, [r5, #0x4]
+ ldr r0, [sp, #0x0]
+ add r1, r0, #0x0
+ add r1, r1, #0x1
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ str r1, [sp, #0x0]
+ strb r0, [r5, #0x5]
+ mov r0, #0xff
+ strb r0, [r5, #0x6]
+ ldrb r0, [r5, #0x6]
+ strb r0, [r5, #0x7]
+_02087DEE:
+ add r0, r6, #0x1
+ lsl r0, r0, #0x18
+ lsr r6, r0, #0x18
+ cmp r6, #0x64
+ blo _02087D60
+ ldr r0, [sp, #0x4]
+ bl FUN_0200AB18
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ ldr r0, [sp, #0x0]
+ strb r0, [r7, #0x0]
+ mov r0, #0x5
+ strb r0, [r7, #0x3]
+ add r0, r7, #0x0
+ add sp, #0x10
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_02087E14
+FUN_02087E14: ; 0x02087E14
+ ldr r3, _02087E18 ; =FUN_02016A18
+ bx r3
+ .balign 4
+_02087E18: .word FUN_02016A18
+
+ thumb_func_start FUN_02087E1C
+FUN_02087E1C: ; 0x02087E1C
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r0, [r4, #0x0]
+ cmp r0, #0x0
+ beq _02087E3C
+ bl FUN_02006290
+ cmp r0, #0x0
+ beq _02087E3C
+ ldr r0, [r4, #0x0]
+ bl FUN_02006260
+ mov r0, #0x0
+ str r0, [r4, #0x0]
+ mov r0, #0x1
+ pop {r4, pc}
+_02087E3C:
+ mov r0, #0x0
+ pop {r4, pc}
+
+ thumb_func_start FUN_02087E40
+FUN_02087E40: ; 0x02087E40
+ push {r3-r5, lr}
+ add r4, r0, #0x0
+ bl FUN_0200628C
+ mov r2, #0x1
+ add r5, r0, #0x0
+ mov r0, #0x3
+ mov r1, #0x2c
+ lsl r2, r2, #0xc
+ bl FUN_0201681C
+ add r0, r4, #0x0
+ mov r1, #0x18
+ mov r2, #0x2c
+ bl FUN_02006268
+ mov r1, #0x0
+ mov r2, #0x18
+ add r4, r0, #0x0
+ blx MI_CpuFill8
+ mov r0, #0x2c
+ str r0, [r4, #0x0]
+ str r5, [r4, #0xc]
+ mov r0, #0x1
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_02087E74
+FUN_02087E74: ; 0x02087E74
+ push {r4, lr}
+ add r4, r1, #0x0
+ bl FUN_02006278
+ ldr r1, [r4, #0x0]
+ cmp r1, #0x8
+ bhi _02087EE4
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #0x6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_02087E8E: ; jump table (using 16-bit offset)
+ .short _02087EA0 - _02087E8E - 2; case 0
+ .short _02087EA8 - _02087E8E - 2; case 1
+ .short _02087EB0 - _02087E8E - 2; case 2
+ .short _02087EB8 - _02087E8E - 2; case 3
+ .short _02087EC0 - _02087E8E - 2; case 4
+ .short _02087EC8 - _02087E8E - 2; case 5
+ .short _02087ED0 - _02087E8E - 2; case 6
+ .short _02087ED8 - _02087E8E - 2; case 7
+ .short _02087EE0 - _02087E8E - 2; case 8
+_02087EA0:
+ bl FUN_02087F50
+ str r0, [r4, #0x0]
+ b _02087EE4
+_02087EA8:
+ bl FUN_02087F68
+ str r0, [r4, #0x0]
+ b _02087EE4
+_02087EB0:
+ bl FUN_02087FD4
+ str r0, [r4, #0x0]
+ b _02087EE4
+_02087EB8:
+ bl FUN_0208805C
+ str r0, [r4, #0x0]
+ b _02087EE4
+_02087EC0:
+ bl FUN_020880A0
+ str r0, [r4, #0x0]
+ b _02087EE4
+_02087EC8:
+ bl FUN_0208810C
+ str r0, [r4, #0x0]
+ b _02087EE4
+_02087ED0:
+ bl FUN_02088130
+ str r0, [r4, #0x0]
+ b _02087EE4
+_02087ED8:
+ bl FUN_020881AC
+ str r0, [r4, #0x0]
+ b _02087EE4
+_02087EE0:
+ mov r0, #0x1
+ pop {r4, pc}
+_02087EE4:
+ mov r0, #0x0
+ pop {r4, pc}
+
+ thumb_func_start FUN_02087EE8
+FUN_02087EE8: ; 0x02087EE8
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ bl FUN_02006278
+ add r4, r0, #0x0
+ bl FUN_02087F08
+ add r0, r5, #0x0
+ bl FUN_0200627C
+ ldr r0, [r4, #0x0]
+ bl FUN_020168D0
+ mov r0, #0x1
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_02087F08
+FUN_02087F08: ; 0x02087F08
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ ldr r2, [r5, #0xc]
+ mov r0, #0x0
+ ldrb r1, [r2, #0x0]
+ add r4, r0, #0x0
+ cmp r1, #0x0
+ bls _02087F42
+ mov r6, #0x1
+_02087F1A:
+ add r3, r2, #0x0
+ add r3, #0x1c
+ lsl r1, r4, #0x3
+ add r1, r3, r1
+ ldrb r3, [r1, #0x4]
+ lsl r3, r3, #0x19
+ lsr r3, r3, #0x1f
+ beq _02087F34
+ ldrb r1, [r1, #0x0]
+ ldr r0, [r2, #0x8]
+ bl FUN_020280B8
+ add r0, r6, #0x0
+_02087F34:
+ add r1, r4, #0x1
+ lsl r1, r1, #0x18
+ ldr r2, [r5, #0xc]
+ lsr r4, r1, #0x18
+ ldrb r1, [r2, #0x0]
+ cmp r4, r1
+ blo _02087F1A
+_02087F42:
+ cmp r0, #0x0
+ beq _02087F4C
+ ldr r0, [r2, #0x8]
+ bl FUN_020280F4
+_02087F4C:
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_02087F50
+FUN_02087F50: ; 0x02087F50
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r0, _02087F64 ; =0x020FD15C
+ ldr r1, [r4, #0xc]
+ ldr r2, [r4, #0x0]
+ bl FUN_02006234
+ str r0, [r4, #0x14]
+ mov r0, #0x1
+ pop {r4, pc}
+ .balign 4
+_02087F64: .word 0x020FD15C
+
+ thumb_func_start FUN_02087F68
+FUN_02087F68: ; 0x02087F68
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r0, #0x14
+ bl FUN_02087E1C
+ cmp r0, #0x0
+ bne _02087F7A
+ mov r0, #0x1
+ pop {r3-r5, pc}
+_02087F7A:
+ ldr r1, [r5, #0xc]
+ ldrb r0, [r1, #0x2]
+ cmp r0, #0x0
+ bne _02087F86
+ mov r0, #0x8
+ pop {r3-r5, pc}
+_02087F86:
+ mov r0, #0x0
+ strb r0, [r1, #0x2]
+ ldr r0, [r5, #0x0]
+ mov r1, #0x40
+ bl FUN_02016998
+ mov r1, #0x0
+ mov r2, #0x40
+ add r4, r0, #0x0
+ blx MI_CpuFill8
+ ldr r0, [r5, #0xc]
+ mov r1, #0x0
+ ldr r0, [r0, #0x10]
+ str r0, [r4, #0x0]
+ ldr r0, [r5, #0xc]
+ ldr r0, [r0, #0x14]
+ str r0, [r4, #0x4]
+ add r0, r4, #0x0
+ add r0, #0x21
+ strb r1, [r0, #0x0]
+ add r0, r4, #0x0
+ mov r1, #0x14
+ add r0, #0x20
+ strb r1, [r0, #0x0]
+ ldr r0, [r5, #0xc]
+ add r1, r4, #0x0
+ ldr r0, [r0, #0x18]
+ str r0, [r4, #0xc]
+ ldr r0, _02087FD0 ; =0x020F96DC
+ ldr r2, [r5, #0x0]
+ bl FUN_02006234
+ str r0, [r5, #0x14]
+ str r4, [r5, #0x10]
+ mov r0, #0x2
+ pop {r3-r5, pc}
+ .balign 4
+_02087FD0: .word 0x020F96DC
+
+ thumb_func_start FUN_02087FD4
+FUN_02087FD4: ; 0x02087FD4
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ add r0, #0x14
+ bl FUN_02087E1C
+ cmp r0, #0x0
+ bne _02087FE6
+ mov r0, #0x2
+ pop {r3-r7, pc}
+_02087FE6:
+ ldr r7, [r5, #0x10]
+ add r0, r7, #0x0
+ add r0, #0x22
+ ldrb r6, [r0, #0x0]
+ strb r6, [r5, #0x8]
+ ldr r0, [r5, #0x10]
+ bl FUN_02016A18
+ cmp r6, #0x7
+ bne _02087FFE
+ mov r0, #0x0
+ pop {r3-r7, pc}
+_02087FFE:
+ ldr r0, [r5, #0x0]
+ mov r1, #0x30
+ bl FUN_02016998
+ add r4, r0, #0x0
+ ldr r0, [r5, #0xc]
+ ldr r0, [r0, #0x10]
+ str r0, [r4, #0x0]
+ ldr r0, [r5, #0xc]
+ ldr r0, [r0, #0x18]
+ str r0, [r4, #0x4]
+ mov r0, #0x1
+ strb r0, [r4, #0x11]
+ strb r6, [r4, #0x14]
+ ldr r0, [r4, #0x0]
+ bl FUN_0206B9AC
+ strb r0, [r4, #0x13]
+ mov r1, #0x0
+ strh r1, [r4, #0x18]
+ mov r0, #0x3
+ strb r0, [r4, #0x12]
+ mov r0, #0x1
+ str r0, [r4, #0x2c]
+ str r1, [r4, #0x28]
+ ldr r1, _02088054 ; =0x020FD158
+ add r0, r4, #0x0
+ bl FUN_0207B000
+ ldr r1, [r5, #0xc]
+ add r0, r4, #0x0
+ ldr r1, [r1, #0xc]
+ bl FUN_0207C2A4
+ ldr r0, _02088058 ; =0x020FA6E8
+ ldr r2, [r5, #0x0]
+ add r1, r7, #0x0
+ bl FUN_02006234
+ str r0, [r5, #0x14]
+ str r4, [r5, #0x10]
+ mov r0, #0x3
+ pop {r3-r7, pc}
+ .balign 4
+_02088054: .word 0x020FD158
+_02088058: .word 0x020FA6E8
+
+ thumb_func_start FUN_0208805C
+FUN_0208805C: ; 0x0208805C
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r0, #0x14
+ bl FUN_02087E1C
+ cmp r0, #0x0
+ bne _0208806E
+ mov r0, #0x3
+ pop {r3-r5, pc}
+_0208806E:
+ ldr r0, [r5, #0x10]
+ ldrb r4, [r0, #0x17]
+ ldrb r0, [r0, #0x14]
+ strb r0, [r5, #0x8]
+ ldr r0, [r5, #0x10]
+ bl FUN_02016A18
+ cmp r4, #0x1
+ bne _02088084
+ mov r0, #0x0
+ pop {r3-r5, pc}
+_02088084:
+ ldr r0, [r5, #0xc]
+ add r3, r0, #0x0
+ ldrb r0, [r0, #0x1]
+ add r3, #0x20
+ lsl r2, r0, #0x3
+ ldrb r1, [r3, r2]
+ mov r0, #0x40
+ orr r0, r1
+ strb r0, [r3, r2]
+ ldr r0, [r5, #0xc]
+ mov r1, #0x1
+ strb r1, [r0, #0x2]
+ mov r0, #0x4
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_020880A0
+FUN_020880A0: ; 0x020880A0
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ ldr r0, [r5, #0x0]
+ mov r1, #0xc
+ bl FUN_02016998
+ mov r1, #0x0
+ mov r2, #0xc
+ add r4, r0, #0x0
+ blx MI_CpuFill8
+ ldr r1, [r5, #0xc]
+ ldrb r0, [r1, #0x1]
+ lsl r0, r0, #0x3
+ add r0, r1, r0
+ ldrb r0, [r0, #0x1e]
+ strh r0, [r4, #0x8]
+ ldr r2, [r5, #0xc]
+ ldrb r1, [r2, #0x1]
+ ldr r0, [r2, #0x8]
+ lsl r1, r1, #0x3
+ add r1, r2, r1
+ ldrb r1, [r1, #0x1c]
+ ldr r2, [r5, #0x0]
+ bl FUN_02028190
+ str r0, [r4, #0x4]
+ ldr r0, [r5, #0xc]
+ ldrb r1, [r5, #0x8]
+ ldr r0, [r0, #0x10]
+ bl FUN_0206B9B0
+ str r0, [r4, #0x0]
+ ldr r0, [r5, #0xc]
+ ldr r0, [r0, #0x18]
+ bl FUN_02024FF4
+ strb r0, [r4, #0xa]
+ ldr r0, [r5, #0xc]
+ ldr r0, [r0, #0x18]
+ bl FUN_02025084
+ strb r0, [r4, #0xb]
+ ldr r0, _02088108 ; =0x020FD16C
+ ldr r2, [r5, #0x0]
+ add r1, r4, #0x0
+ bl FUN_02006234
+ str r0, [r5, #0x14]
+ str r4, [r5, #0x10]
+ mov r0, #0x5
+ pop {r3-r5, pc}
+ .balign 4
+_02088108: .word 0x020FD16C
+
+ thumb_func_start FUN_0208810C
+FUN_0208810C: ; 0x0208810C
+ push {r4, lr}
+ add r4, r0, #0x0
+ add r0, #0x14
+ bl FUN_02087E1C
+ cmp r0, #0x0
+ bne _0208811E
+ mov r0, #0x5
+ pop {r4, pc}
+_0208811E:
+ ldr r4, [r4, #0x10]
+ ldr r0, [r4, #0x4]
+ bl FUN_02016A18
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ mov r0, #0x6
+ pop {r4, pc}
+
+ thumb_func_start FUN_02088130
+FUN_02088130: ; 0x02088130
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ ldr r0, [r5, #0x0]
+ mov r1, #0x30
+ bl FUN_02016998
+ ldr r2, [r5, #0xc]
+ add r4, r0, #0x0
+ ldrb r1, [r2, #0x1]
+ ldr r0, [r2, #0x8]
+ lsl r1, r1, #0x3
+ add r1, r2, r1
+ ldrb r1, [r1, #0x1c]
+ ldr r2, [r5, #0x0]
+ bl FUN_02028190
+ add r6, r0, #0x0
+ ldr r0, [r5, #0xc]
+ ldr r0, [r0, #0x10]
+ str r0, [r4, #0x0]
+ ldr r0, [r5, #0xc]
+ ldr r0, [r0, #0x18]
+ str r0, [r4, #0x4]
+ mov r0, #0x1
+ strb r0, [r4, #0x11]
+ ldrb r0, [r5, #0x8]
+ strb r0, [r4, #0x14]
+ ldr r0, [r4, #0x0]
+ bl FUN_0206B9AC
+ strb r0, [r4, #0x13]
+ mov r1, #0x0
+ strh r1, [r4, #0x18]
+ mov r0, #0x4
+ strb r0, [r4, #0x12]
+ str r6, [r4, #0x24]
+ mov r0, #0x1
+ str r0, [r4, #0x2c]
+ str r1, [r4, #0x28]
+ ldr r1, _020881A4 ; =0x020FD154
+ add r0, r4, #0x0
+ bl FUN_0207B000
+ ldr r1, [r5, #0xc]
+ add r0, r4, #0x0
+ ldr r1, [r1, #0xc]
+ bl FUN_0207C2A4
+ ldr r0, _020881A8 ; =0x020FA6E8
+ ldr r2, [r5, #0x0]
+ add r1, r4, #0x0
+ bl FUN_02006234
+ str r0, [r5, #0x14]
+ str r4, [r5, #0x10]
+ mov r0, #0x7
+ pop {r4-r6, pc}
+ nop
+_020881A4: .word 0x020FD154
+_020881A8: .word 0x020FA6E8
+
+ thumb_func_start FUN_020881AC
+FUN_020881AC: ; 0x020881AC
+ push {r4, lr}
+ add r4, r0, #0x0
+ add r0, #0x14
+ bl FUN_02087E1C
+ cmp r0, #0x0
+ bne _020881BE
+ mov r0, #0x7
+ pop {r4, pc}
+_020881BE:
+ ldr r0, [r4, #0x10]
+ ldr r0, [r0, #0x24]
+ bl FUN_02016A18
+ ldr r0, [r4, #0x10]
+ bl FUN_02016A18
+ mov r0, #0x0
+ pop {r4, pc}
+
+ thumb_func_start FUN_020881D0
+FUN_020881D0: ; 0x020881D0
+ push {r3-r5, lr}
+ sub sp, #0x8
+ lsl r2, r1, #0x1
+ ldr r1, _02088214 ; =0x020FD17C
+ ldrb r4, [r1, r2]
+ ldr r1, _02088218 ; =0x020FD17D
+ ldrb r5, [r1, r2]
+ cmp r4, #0x5
+ bne _020881E8
+ add sp, #0x8
+ mov r0, #0x2
+ pop {r3-r5, pc}
+_020881E8:
+ add r1, sp, #0x0
+ bl FUN_02027FBC
+ add r0, r4, #0x1
+ add r2, sp, #0x0
+ ldrb r1, [r2, r0]
+ add r0, r5, #0x1
+ ldrb r0, [r2, r0]
+ cmp r1, r0
+ bne _02088202
+ add sp, #0x8
+ mov r0, #0x2
+ pop {r3-r5, pc}
+_02088202:
+ cmp r1, r0
+ bls _0208820C
+ add sp, #0x8
+ mov r0, #0x0
+ pop {r3-r5, pc}
+_0208820C:
+ mov r0, #0x1
+ add sp, #0x8
+ pop {r3-r5, pc}
+ nop
+_02088214: .word 0x020FD17C
+_02088218: .word 0x020FD17D
+
+ thumb_func_start FUN_0208821C
+FUN_0208821C: ; 0x0208821C
+ push {r3-r7, lr}
+ sub sp, #0x30
+ add r6, r1, #0x0
+ add r4, r0, #0x0
+ add r0, r6, #0x0
+ bl FUN_02068854
+ lsl r1, r0, #0x1
+ ldr r0, _02088310 ; =0x020FD17C
+ ldrb r0, [r0, r1]
+ str r0, [sp, #0x4]
+ ldr r0, _02088314 ; =0x020FD17D
+ ldrb r0, [r0, r1]
+ add r1, sp, #0x10
+ str r0, [sp, #0x0]
+ add r0, r4, #0x0
+ bl FUN_02027FBC
+ mov r4, #0x0
+ add r7, r4, #0x0
+ add r5, sp, #0x18
+_02088246:
+ add r1, r4, #0x0
+ add r0, r6, #0x0
+ add r1, #0x13
+ add r2, r7, #0x0
+ bl FUN_020671BC
+ lsl r1, r4, #0x2
+ str r0, [r5, r1]
+ add r0, r4, #0x1
+ lsl r0, r0, #0x18
+ lsr r4, r0, #0x18
+ cmp r4, #0x6
+ blo _02088246
+ add r4, sp, #0x8
+ mov r1, #0x0
+ mov r3, #0x1
+ add r0, sp, #0x10
+ add r4, #0x1
+_0208826A:
+ ldrb r5, [r0, r3]
+ add r2, r1, #0x0
+ add r1, r1, #0x1
+ strb r5, [r4, r2]
+ add r2, r3, #0x1
+ lsl r2, r2, #0x18
+ lsl r1, r1, #0x18
+ lsr r3, r2, #0x18
+ lsr r1, r1, #0x18
+ cmp r3, #0x6
+ bls _0208826A
+ ldr r0, [sp, #0x4]
+ cmp r0, #0x5
+ beq _020882B8
+ ldrb r0, [r4, r0]
+ blx _ffltu
+ add r1, r0, #0x0
+ ldr r0, _02088318 ; =0x3F8CCCCD
+ blx _fmul
+ blx _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
+ add r1, r0, #0x0
+ ldr r0, _0208831C ; =0x3F666666
+ blx _fmul
+ blx _ffixu
+ ldr r1, [sp, #0x0]
+ strb r0, [r4, r1]
+_020882B8:
+ add r7, sp, #0x8
+ mov r5, #0x0
+ add r4, sp, #0x18
+ add r7, #0x1
+_020882C0:
+ lsl r2, r5, #0x2
+ ldrb r0, [r7, r5]
+ ldr r1, [r4, r2]
+ add r0, r1, r0
+ str r0, [r4, r2]
+ ldr r0, [r4, r2]
+ cmp r0, #0xff
+ ble _020882D4
+ mov r0, #0xff
+ str r0, [r4, r2]
+_020882D4:
+ add r1, r5, #0x0
+ add r0, r6, #0x0
+ add r1, #0x13
+ add r2, r4, r2
+ bl FUN_02067830
+ add r0, r5, #0x1
+ lsl r0, r0, #0x18
+ lsr r5, r0, #0x18
+ cmp r5, #0x6
+ blo _020882C0
+ add r0, r6, #0x0
+ mov r1, #0x9
+ mov r2, #0x0
+ bl FUN_020671BC
+ add r1, sp, #0x8
+ strb r0, [r1, #0x0]
+ ldrb r0, [r1, #0x0]
+ cmp r0, #0xff
+ bhs _0208830C
+ add r0, r0, #0x1
+ strb r0, [r1, #0x0]
+ add r0, r6, #0x0
+ mov r1, #0x9
+ add r2, sp, #0x8
+ bl FUN_02067830
+_0208830C:
+ add sp, #0x30
+ pop {r3-r7, pc}
+ .balign 4
+_02088310: .word 0x020FD17C
+_02088314: .word 0x020FD17D
+_02088318: .word 0x3F8CCCCD
+_0208831C: .word 0x3F666666
+
+ thumb_func_start FUN_02088320
+FUN_02088320: ; 0x02088320
+ push {r3-r7, lr}
+ add r5, r1, #0x0
+ mov r1, #0x59
+ lsl r1, r1, #0x2
+ add r6, r0, #0x0
+ add r7, r2, #0x0
+ str r3, [sp, #0x0]
+ bl FUN_02016998
+ mov r2, #0x59
+ mov r1, #0x0
+ lsl r2, r2, #0x2
+ add r4, r0, #0x0
+ blx MI_CpuFill8
+ str r6, [r4, #0x0]
+ cmp r5, #0x10
+ bls _0208834A
+ mov r0, #0x10
+ strh r0, [r4, #0xa]
+ b _0208834C
+_0208834A:
+ strh r7, [r4, #0xa]
+_0208834C:
+ strh r5, [r4, #0xc]
+ ldr r0, [sp, #0x0]
+ strh r0, [r4, #0xe]
+ ldr r0, [sp, #0x18]
+ str r0, [r4, #0x4]
+ add r0, r4, #0x0
+ bl FUN_0208837C
+ add r0, r4, #0x0
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_02088360
+FUN_02088360: ; 0x02088360
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl FUN_0208843C
+ mov r2, #0x59
+ add r0, r4, #0x0
+ mov r1, #0x0
+ lsl r2, r2, #0x2
+ blx MI_CpuFill8
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ pop {r4, pc}
+
+ thumb_func_start FUN_0208837C
+FUN_0208837C: ; 0x0208837C
+ push {r4-r7, lr}
+ sub sp, #0xc
+ ldr r1, _02088438 ; =0x020FD1C0
+ str r0, [sp, #0x0]
+ ldrb r2, [r1, #0x0]
+ add r0, sp, #0x8
+ strb r2, [r0, #0x0]
+ ldrb r2, [r1, #0x1]
+ strb r2, [r0, #0x1]
+ ldrb r2, [r1, #0x2]
+ ldrb r1, [r1, #0x3]
+ strb r2, [r0, #0x2]
+ strb r1, [r0, #0x3]
+ ldr r0, [sp, #0x0]
+ ldr r2, [sp, #0x0]
+ ldr r1, [sp, #0x0]
+ ldrh r0, [r0, #0xc]
+ ldr r2, [r2, #0x0]
+ add r1, #0x14
+ bl FUN_02008C9C
+ ldr r1, [sp, #0x0]
+ mov r6, #0x15
+ str r0, [r1, #0x10]
+ add r0, r1, #0x0
+ ldrh r1, [r0, #0xa]
+ add r0, sp, #0x8
+ ldr r5, [sp, #0x0]
+ strb r1, [r0, #0x1]
+ mov r0, #0x0
+ str r0, [sp, #0x4]
+ add r7, sp, #0x8
+ add r4, r0, #0x0
+ lsl r6, r6, #0x4
+_020883C0:
+ ldr r2, [sp, #0x0]
+ ldrb r0, [r7, #0x0]
+ ldr r1, [sp, #0x4]
+ ldr r2, [r2, #0x0]
+ bl FUN_02008DEC
+ mov r1, #0x5
+ lsl r1, r1, #0x6
+ str r0, [r5, r1]
+ ldr r1, [sp, #0x0]
+ ldrb r0, [r7, #0x0]
+ ldr r1, [r1, #0x0]
+ bl FUN_02009424
+ mov r1, #0x15
+ lsl r1, r1, #0x4
+ str r0, [r5, r1]
+ mov r0, #0x15
+ lsl r0, r0, #0x4
+ ldr r3, [r5, r0]
+ mov r1, #0x0
+ ldr r0, [r3, #0x4]
+ cmp r0, #0x0
+ bls _02088402
+ add r2, r1, #0x0
+_020883F2:
+ ldr r0, [r3, #0x0]
+ add r1, r1, #0x1
+ str r4, [r0, r2]
+ ldr r3, [r5, r6]
+ add r2, r2, #0x4
+ ldr r0, [r3, #0x4]
+ cmp r1, r0
+ blo _020883F2
+_02088402:
+ ldr r0, [sp, #0x4]
+ add r7, r7, #0x1
+ add r0, r0, #0x1
+ add r5, r5, #0x4
+ str r0, [sp, #0x4]
+ cmp r0, #0x4
+ blo _020883C0
+ ldr r0, [sp, #0x0]
+ bl FUN_020886CC
+ ldr r0, [sp, #0x0]
+ mov r1, #0x4
+ ldr r0, [r0, #0x0]
+ bl FUN_02016998
+ mov r2, #0x16
+ ldr r1, [sp, #0x0]
+ lsl r2, r2, #0x4
+ str r0, [r1, r2]
+ add r0, r1, #0x0
+ ldr r0, [r0, r2]
+ mov r1, #0x0
+ mov r2, #0x4
+ blx MI_CpuFill8
+ add sp, #0xc
+ pop {r4-r7, pc}
+ .balign 4
+_02088438: .word 0x020FD1C0
+
+ thumb_func_start FUN_0208843C
+FUN_0208843C: ; 0x0208843C
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ mov r0, #0x16
+ lsl r0, r0, #0x4
+ ldr r0, [r5, r0]
+ bl FUN_02016A18
+ ldr r0, [r5, #0x10]
+ bl FUN_0201FD58
+ mov r0, #0x15
+ lsl r0, r0, #0x4
+ ldr r0, [r5, r0]
+ bl FUN_02009C30
+ mov r0, #0x55
+ lsl r0, r0, #0x2
+ ldr r0, [r5, r0]
+ bl FUN_02009E28
+ mov r7, #0x15
+ lsl r7, r7, #0x4
+ add r6, r7, #0x0
+ mov r4, #0x0
+ sub r6, #0x10
+_0208846E:
+ ldr r0, [r5, r7]
+ bl FUN_02009448
+ ldr r0, [r5, r6]
+ bl FUN_02008E2C
+ add r4, r4, #0x1
+ add r5, r5, #0x4
+ cmp r4, #0x4
+ blo _0208846E
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_02088484
+FUN_02088484: ; 0x02088484
+ ldr r3, _0208848C ; =FUN_0201FDEC
+ ldr r0, [r0, #0x10]
+ bx r3
+ nop
+_0208848C: .word FUN_0201FDEC
+
+ thumb_func_start FUN_02088490
+FUN_02088490: ; 0x02088490
+ push {r3-r7, lr}
+ sub sp, #0x70
+ str r1, [sp, #0x2c]
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ add r5, r0, #0x0
+ add r7, r2, #0x0
+ str r3, [sp, #0x30]
+ bl FUN_020887CC
+ str r0, [sp, #0x3c]
+ cmp r0, #0x0
+ bge _020884B4
+ bl ErrorHandling
+ add sp, #0x70
+ mov r0, #0x0
+ pop {r3-r7, pc}
+_020884B4:
+ ldr r0, [r5, #0x0]
+ mov r1, #0x8
+ bl FUN_02016998
+ str r0, [sp, #0x38]
+ mov r1, #0x0
+ mov r2, #0x8
+ blx MI_CpuFill8
+ ldr r1, [sp, #0x3c]
+ ldr r0, [sp, #0x38]
+ strh r1, [r0, #0x0]
+ ldr r0, [sp, #0x94]
+ cmp r0, #0x0
+ bne _020884D6
+ mov r6, #0x1
+ b _020884D8
+_020884D6:
+ mov r6, #0x2
+_020884D8:
+ ldr r0, [sp, #0x3c]
+ mov r1, #0x55
+ lsl r1, r1, #0x2
+ lsl r4, r0, #0x2
+ ldr r0, [r5, r1]
+ ldr r3, [sp, #0x2c]
+ ldr r0, [r0, #0x0]
+ sub r1, #0x10
+ ldr r0, [r0, r4]
+ mov r2, #0x58
+ str r0, [sp, #0x34]
+ mov r0, #0x0
+ str r0, [sp, #0x0]
+ ldr r0, [r5, #0x0]
+ add r3, r3, #0x3
+ str r0, [sp, #0x4]
+ ldr r0, [r5, r1]
+ ldr r1, [sp, #0x34]
+ bl FUN_02009168
+ mov r0, #0x55
+ lsl r0, r0, #0x2
+ ldr r0, [r5, r0]
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, r4]
+ bl FUN_02009DE0
+ ldr r0, [r5, #0x0]
+ mov r1, #0x10
+ bl FUN_02016998
+ add r4, r0, #0x0
+ ldr r0, [r5, #0x0]
+ mov r1, #0x8
+ bl FUN_02016998
+ str r0, [r4, #0x8]
+ ldr r0, [r5, #0x0]
+ mov r1, #0x24
+ bl FUN_02016998
+ ldr r1, [r4, #0x8]
+ mov r3, #0xe
+ str r0, [r1, #0x0]
+ ldr r0, [r4, #0x8]
+ lsl r3, r3, #0xc
+ ldr r0, [r0, #0x0]
+ mov r1, #0x0
+ str r0, [r4, #0x4]
+ mov r0, #0x0
+ str r3, [sp, #0x0]
+ mvn r0, r0
+ str r0, [sp, #0x4]
+ str r0, [sp, #0x8]
+ str r1, [sp, #0xc]
+ add r0, sp, #0x78
+ ldrb r0, [r0, #0x14]
+ str r0, [sp, #0x10]
+ mov r0, #0x5
+ lsl r0, r0, #0x6
+ ldr r2, [r5, r0]
+ str r2, [sp, #0x14]
+ add r2, r0, #0x4
+ ldr r2, [r5, r2]
+ str r2, [sp, #0x18]
+ add r2, r0, #0x0
+ add r2, #0x8
+ ldr r2, [r5, r2]
+ add r0, #0xc
+ str r2, [sp, #0x1c]
+ ldr r0, [r5, r0]
+ str r0, [sp, #0x20]
+ str r1, [sp, #0x24]
+ str r1, [sp, #0x28]
+ ldr r2, [sp, #0x3c]
+ ldr r0, [r4, #0x4]
+ add r1, r3, #0x0
+ add r2, r2, r3
+ bl FUN_02008AA4
+ ldr r0, [r5, #0x10]
+ cmp r7, #0x0
+ str r0, [sp, #0x40]
+ ldr r0, [r4, #0x4]
+ str r0, [sp, #0x44]
+ beq _02088596
+ lsl r0, r7, #0xc
+ blx _fflt
+ add r1, r0, #0x0
+ mov r0, #0x3f
+ lsl r0, r0, #0x18
+ blx _fadd
+ b _020885A4
+_02088596:
+ lsl r0, r7, #0xc
+ blx _fflt
+ mov r1, #0x3f
+ lsl r1, r1, #0x18
+ blx _fsub
+_020885A4:
+ blx _ffix
+ str r0, [sp, #0x48]
+ ldr r0, [sp, #0x30]
+ cmp r0, #0x0
+ beq _020885C2
+ lsl r0, r0, #0xc
+ blx _fflt
+ add r1, r0, #0x0
+ mov r0, #0x3f
+ lsl r0, r0, #0x18
+ blx _fadd
+ b _020885D0
+_020885C2:
+ lsl r0, r0, #0xc
+ blx _fflt
+ mov r1, #0x3f
+ lsl r1, r1, #0x18
+ blx _fsub
+_020885D0:
+ blx _ffix
+ str r0, [sp, #0x4c]
+ add r0, sp, #0x78
+ ldrh r0, [r0, #0x10]
+ cmp r0, #0x0
+ beq _020885F0
+ lsl r0, r0, #0xc
+ blx _fflt
+ add r1, r0, #0x0
+ mov r0, #0x3f
+ lsl r0, r0, #0x18
+ blx _fadd
+ b _020885FE
+_020885F0:
+ lsl r0, r0, #0xc
+ blx _fflt
+ mov r1, #0x3f
+ lsl r1, r1, #0x18
+ blx _fsub
+_020885FE:
+ blx _ffix
+ str r0, [sp, #0x50]
+ cmp r6, #0x2
+ bne _02088612
+ mov r0, #0x3
+ ldr r1, [sp, #0x4c]
+ lsl r0, r0, #0x12
+ add r0, r1, r0
+ str r0, [sp, #0x4c]
+_02088612:
+ mov r0, #0x1
+ lsl r0, r0, #0xc
+ str r0, [sp, #0x54]
+ str r0, [sp, #0x58]
+ str r0, [sp, #0x5c]
+ mov r1, #0x0
+ add r0, sp, #0x40
+ strh r1, [r0, #0x20]
+ add r0, sp, #0x78
+ ldrb r0, [r0, #0x18]
+ str r6, [sp, #0x68]
+ str r0, [sp, #0x64]
+ ldr r0, [r5, #0x0]
+ str r0, [sp, #0x6c]
+ add r0, sp, #0x40
+ bl FUN_0201FE94
+ str r0, [r4, #0x0]
+ cmp r0, #0x0
+ beq _02088652
+ mov r1, #0x0
+ bl FUN_02020130
+ ldr r0, [sp, #0x34]
+ add r1, r6, #0x0
+ bl FUN_02009E88
+ add r1, r0, #0x0
+ ldr r0, [r4, #0x0]
+ bl FUN_02020248
+ b _02088656
+_02088652:
+ bl ErrorHandling
+_02088656:
+ ldr r0, [sp, #0x38]
+ str r4, [r0, #0x4]
+ add sp, #0x70
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_02088660
+FUN_02088660: ; 0x02088660
+ push {r4, lr}
+ sub sp, #0x8
+ add r3, r2, #0x0
+ mov r2, #0x55
+ lsl r2, r2, #0x2
+ ldr r4, [r0, r2]
+ ldrh r1, [r1, #0x0]
+ ldr r4, [r4, #0x0]
+ sub r2, #0x10
+ lsl r1, r1, #0x2
+ ldr r4, [r4, r1]
+ mov r1, #0x0
+ str r1, [sp, #0x0]
+ ldr r1, [r0, #0x0]
+ add r3, r3, #0x3
+ str r1, [sp, #0x4]
+ ldr r0, [r0, r2]
+ add r1, r4, #0x0
+ mov r2, #0x58
+ bl FUN_02009168
+ add r0, r4, #0x0
+ bl FUN_02009DE0
+ add sp, #0x8
+ pop {r4, pc}
+
+ thumb_func_start FUN_02088694
+FUN_02088694: ; 0x02088694
+ push {r3-r5, lr}
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ ldr r0, [r4, #0x4]
+ bl FUN_0200C3DC
+ mov r1, #0x16
+ ldrh r2, [r4, #0x0]
+ lsl r1, r1, #0x4
+ ldr r3, [r5, r1]
+ mov r0, #0x0
+ lsl r2, r2, #0x2
+ strb r0, [r3, r2]
+ ldrh r2, [r4, #0x0]
+ ldr r3, [r5, r1]
+ lsl r2, r2, #0x2
+ add r2, r3, r2
+ strh r0, [r2, #0x2]
+ ldr r2, [r5, r1]
+ ldrh r1, [r4, #0x0]
+ lsl r1, r1, #0x2
+ add r1, r2, r1
+ strb r0, [r1, #0x1]
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_020886CC
+FUN_020886CC: ; 0x020886CC
+ push {r3-r7, lr}
+ sub sp, #0x10
+ add r5, r0, #0x0
+ mov r0, #0x15
+ lsl r0, r0, #0x4
+ ldr r4, [r5, r0]
+ mov r1, #0xe
+ lsl r1, r1, #0xc
+ str r1, [sp, #0x0]
+ ldrh r1, [r5, #0xe]
+ mov r2, #0x0
+ sub r0, #0x10
+ str r1, [sp, #0x4]
+ ldr r1, [r5, #0x0]
+ add r3, r2, #0x0
+ str r1, [sp, #0x8]
+ ldr r0, [r5, r0]
+ mov r1, #0x58
+ bl FUN_02008F34
+ ldr r1, [r4, #0x0]
+ str r0, [r1, #0x0]
+ ldr r0, [r4, #0x0]
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ bne _02088704
+ bl ErrorHandling
+_02088704:
+ ldr r0, [r5, #0x4]
+ cmp r0, #0x0
+ beq _02088728
+ cmp r0, #0x1
+ beq _02088714
+ cmp r0, #0x2
+ beq _0208871E
+ b _02088728
+_02088714:
+ ldr r0, [r4, #0x0]
+ ldr r0, [r0, #0x0]
+ bl FUN_02009B04
+ b _02088730
+_0208871E:
+ ldr r0, [r4, #0x0]
+ ldr r0, [r0, #0x0]
+ bl FUN_02009B78
+ b _02088730
+_02088728:
+ ldr r0, [r4, #0x0]
+ ldr r0, [r0, #0x0]
+ bl FUN_02009A50
+_02088730:
+ mov r4, #0x0
+ add r6, r5, #0x0
+_02088734:
+ mov r0, #0x56
+ lsl r0, r0, #0x2
+ ldr r7, [r6, r0]
+ mov r0, #0xe
+ lsl r0, r0, #0xc
+ str r0, [sp, #0x0]
+ add r0, r4, #0x2
+ str r0, [sp, #0x4]
+ ldr r0, [r5, #0x0]
+ mov r1, #0x58
+ str r0, [sp, #0x8]
+ mov r0, #0x52
+ lsl r0, r0, #0x2
+ ldr r0, [r6, r0]
+ add r2, r4, #0x1
+ mov r3, #0x0
+ bl FUN_020090AC
+ ldr r1, [r7, #0x0]
+ str r0, [r1, #0x0]
+ ldr r0, [r7, #0x0]
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ bne _02088768
+ bl ErrorHandling
+_02088768:
+ add r4, r4, #0x1
+ add r6, r6, #0x4
+ cmp r4, #0x2
+ blt _02088734
+ mov r0, #0x55
+ lsl r0, r0, #0x2
+ ldr r6, [r5, r0]
+ ldrh r0, [r5, #0xa]
+ mov r7, #0x0
+ cmp r0, #0x0
+ ble _020887C6
+ add r4, r7, #0x0
+_02088780:
+ mov r0, #0xe
+ lsl r0, r0, #0xc
+ add r0, r7, r0
+ str r0, [sp, #0x0]
+ ldrh r0, [r5, #0xe]
+ mov r1, #0x58
+ mov r2, #0x4
+ str r0, [sp, #0x4]
+ mov r0, #0x1
+ str r0, [sp, #0x8]
+ ldr r0, [r5, #0x0]
+ mov r3, #0x0
+ str r0, [sp, #0xc]
+ mov r0, #0x51
+ lsl r0, r0, #0x2
+ ldr r0, [r5, r0]
+ bl FUN_02008FEC
+ ldr r1, [r6, #0x0]
+ str r0, [r1, r4]
+ ldr r0, [r6, #0x0]
+ ldr r0, [r0, r4]
+ cmp r0, #0x0
+ bne _020887B4
+ bl ErrorHandling
+_020887B4:
+ ldr r0, [r6, #0x0]
+ ldr r0, [r0, r4]
+ bl FUN_02009CF0
+ ldrh r0, [r5, #0xa]
+ add r7, r7, #0x1
+ add r4, r4, #0x4
+ cmp r7, r0
+ blt _02088780
+_020887C6:
+ add sp, #0x10
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_020887CC
+FUN_020887CC: ; 0x020887CC
+ push {r3-r6}
+ ldrh r5, [r0, #0xa]
+ mov r3, #0x0
+ cmp r5, #0x0
+ bls _0208880A
+ mov r2, #0x16
+ lsl r2, r2, #0x4
+ ldr r4, [r0, r2]
+_020887DC:
+ lsl r2, r3, #0x2
+ ldrb r6, [r4, r2]
+ cmp r6, #0x0
+ bne _02088800
+ add r4, r4, r2
+ strh r3, [r4, #0x2]
+ mov r4, #0x16
+ lsl r4, r4, #0x4
+ ldr r5, [r0, r4]
+ add r5, r5, r2
+ strb r1, [r5, #0x1]
+ ldr r0, [r0, r4]
+ mov r1, #0x1
+ strb r1, [r0, r2]
+ lsl r0, r3, #0x10
+ asr r0, r0, #0x10
+ pop {r3-r6}
+ bx lr
+_02088800:
+ add r2, r3, #0x1
+ lsl r2, r2, #0x10
+ lsr r3, r2, #0x10
+ cmp r3, r5
+ blo _020887DC
+_0208880A:
+ mov r0, #0x0
+ mvn r0, r0
+ pop {r3-r6}
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02088814
+FUN_02088814: ; 0x02088814
+ mov r0, #0x3
+ bx lr
+
+ thumb_func_start FUN_02088818
+FUN_02088818: ; 0x02088818
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_0208881C
+FUN_0208881C: ; 0x0208881C
+ ldr r3, _02088828 ; =FUN_0202D8D0
+ add r2, r0, #0x0
+ ldr r0, _0208882C ; =0x020FD1C4
+ mov r1, #0x6c
+ bx r3
+ nop
+_02088828: .word FUN_0202D8D0
+_0208882C: .word 0x020FD1C4
+
+ thumb_func_start FUN_02088830
+FUN_02088830: ; 0x02088830
+ ldr r0, _02088834 ; =0x0000066C
+ bx lr
+ .balign 4
+_02088834: .word 0x0000066C
+
+ thumb_func_start FUN_02088838
+FUN_02088838: ; 0x02088838
+ mov r0, #0x2f
+ lsl r0, r0, #0x6
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02088840
+FUN_02088840: ; 0x02088840
+ mov r0, #0x3f
+ lsl r0, r0, #0x4
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02088848
+FUN_02088848: ; 0x02088848
+ mov r0, #0xa
+ bx lr
+
+ thumb_func_start FUN_0208884C
+FUN_0208884C: ; 0x0208884C
+ mov r0, #0x32
+ bx lr
+
+ thumb_func_start FUN_02088850
+FUN_02088850: ; 0x02088850
+ mov r0, #0x4
+ bx lr
+
+ thumb_func_start FUN_02088854
+FUN_02088854: ; 0x02088854
+ mov r0, #0x4
+ bx lr
+
+ thumb_func_start FUN_02088858
+FUN_02088858: ; 0x02088858
+ ldr r3, _02088860 ; =FUN_02005FDC
+ ldr r0, _02088864 ; =0x00000004
+ mov r1, #0x2
+ bx r3
+ .balign 4
+_02088860: .word FUN_02005FDC
+_02088864: .word 0x00000004
+
+ thumb_func_start FUN_02088868
+FUN_02088868: ; 0x02088868
+ ldr r3, _02088870 ; =FUN_02005F60
+ ldr r0, _02088874 ; =0x00000004
+ bx r3
+ nop
+_02088870: .word FUN_02005F60
+_02088874: .word 0x00000004
+
+ thumb_func_start FUN_02088878
+FUN_02088878: ; 0x02088878
+ ldr r3, _02088880 ; =FUN_02005FDC
+ ldr r0, _02088884 ; =0x0000000D
+ mov r1, #0x2
+ bx r3
+ .balign 4
+_02088880: .word FUN_02005FDC
+_02088884: .word 0x0000000D
+
+ thumb_func_start FUN_02088888
+FUN_02088888: ; 0x02088888
+ ldr r3, _02088890 ; =FUN_02005F60
+ ldr r0, _02088894 ; =0x0000000D
+ bx r3
+ nop
+_02088890: .word FUN_02005F60
+_02088894: .word 0x0000000D
+
+ thumb_func_start FUN_02088898
+FUN_02088898: ; 0x02088898
+ push {r4, lr}
+ add r4, r1, #0x0
+ bl FUN_02088858
+ bl FUN_02088878
+ add r0, r4, #0x0
+ bl FUN_02211E60
+ bl FUN_02088888
+ bl FUN_02088868
+ mov r0, #0x0
+ blx OS_ResetSystem
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_020888BC
+FUN_020888BC: ; 0x020888BC
+ ldr r3, _020888C4 ; =FUN_02005FDC
+ ldr r0, _020888C8 ; =0x0000004F
+ mov r1, #0x2
+ bx r3
+ .balign 4
+_020888C4: .word FUN_02005FDC
+_020888C8: .word 0x0000004F
+
+ thumb_func_start FUN_020888CC
+FUN_020888CC: ; 0x020888CC
+ ldr r3, _020888D4 ; =FUN_02005F60
+ ldr r0, _020888D8 ; =0x0000004F
+ bx r3
+ nop
+_020888D4: .word FUN_02005F60
+_020888D8: .word 0x0000004F
+
+ thumb_func_start FUN_020888DC
+FUN_020888DC: ; 0x020888DC
+ push {r4, lr}
+ mov r2, #0x41
+ add r4, r0, #0x0
+ mov r0, #0x3
+ mov r1, #0x31
+ lsl r2, r2, #0xc
+ bl FUN_0201681C
+ add r0, r4, #0x0
+ bl FUN_0200628C
+ ldr r0, [r0, #0x8]
+ mov r1, #0x31
+ bl FUN_02088898
+ mov r0, #0x31
+ bl FUN_020168D0
+ mov r0, #0x0
+ blx OS_ResetSystem
+ mov r0, #0x1
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0208890C
+FUN_0208890C: ; 0x0208890C
+ push {r3-r7, lr}
+ add r6, r0, #0x0
+ add r5, r1, #0x0
+ add r0, r2, #0x0
+ mov r1, #0x20
+ add r7, r3, #0x0
+ bl FUN_02016998
+ add r4, r0, #0x0
+ mov r1, #0x0
+ mov r2, #0x20
+ blx MI_CpuFill8
+ str r5, [r4, #0xc]
+ add r0, r5, #0x0
+ bl FUN_02028048
+ str r0, [r4, #0x8]
+ add r0, r5, #0x0
+ bl FUN_020238F4
+ str r0, [r4, #0x10]
+ add r0, r5, #0x0
+ bl FUN_0206F158
+ str r0, [r4, #0x14]
+ add r0, r5, #0x0
+ bl LoadPlayerDataAddress
+ str r0, [r4, #0x18]
+ str r7, [r4, #0x1c]
+ str r6, [r4, #0x4]
+ add r0, r4, #0x0
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_02088950
+FUN_02088950: ; 0x02088950
+ ldr r3, _02088958 ; =FUN_020373D4
+ add r2, r1, #0x0
+ ldr r1, _0208895C ; =0x020FD6E4
+ bx r3
+ .balign 4
+_02088958: .word FUN_020373D4
+_0208895C: .word 0x020FD6E4
+
+ thumb_func_start FUN_02088960
+FUN_02088960: ; 0x02088960
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ add r6, r2, #0x0
+ bl FUN_020377AC
+ add r3, r5, #0x0
+ add r3, #0x98
+ add r1, r0, #0x0
+ ldr r3, [r3, #0x0]
+ add r0, r4, #0x0
+ add r2, r6, #0x0
+ bl FUN_0208890C
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_02088950
+ add r0, r4, #0x0
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_0208898C
+FUN_0208898C: ; 0x0208898C
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r0, [r4, #0x0]
+ cmp r0, #0x0
+ beq _020889AC
+ bl FUN_02006290
+ cmp r0, #0x0
+ beq _020889AC
+ ldr r0, [r4, #0x0]
+ bl FUN_02006260
+ mov r0, #0x0
+ str r0, [r4, #0x0]
+ mov r0, #0x1
+ pop {r4, pc}
+_020889AC:
+ mov r0, #0x0
+ pop {r4, pc}
+
+ thumb_func_start FUN_020889B0
+FUN_020889B0: ; 0x020889B0
+ push {r3-r5, lr}
+ add r4, r0, #0x0
+ bl FUN_0200628C
+ mov r2, #0x1
+ add r5, r0, #0x0
+ mov r0, #0x3
+ mov r1, #0x37
+ lsl r2, r2, #0xe
+ bl FUN_0201681C
+ add r0, r4, #0x0
+ mov r1, #0x24
+ mov r2, #0x37
+ bl FUN_02006268
+ mov r1, #0x0
+ mov r2, #0x24
+ add r4, r0, #0x0
+ blx MI_CpuFill8
+ mov r0, #0x37
+ str r0, [r4, #0x0]
+ str r5, [r4, #0x10]
+ ldr r0, [r4, #0x0]
+ bl FUN_0206F164
+ str r0, [r4, #0xc]
+ ldr r0, [r5, #0x4]
+ cmp r0, #0x1
+ bne _020889FA
+ ldrh r1, [r4, #0x6]
+ mov r0, #0xff
+ bic r1, r0
+ mov r0, #0x1
+ orr r0, r1
+ strh r0, [r4, #0x6]
+_020889FA:
+ mov r0, #0x1
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_02088A00
+FUN_02088A00: ; 0x02088A00
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ bl FUN_02006278
+ add r6, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_0200628C
+ ldr r5, [r4, #0x0]
+ cmp r5, #0x4
+ bhi _02088A6A
+ add r0, r5, r5
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02088A24: ; jump table (using 16-bit offset)
+ .short _02088A2E - _02088A24 - 2; case 0
+ .short _02088A3C - _02088A24 - 2; case 1
+ .short _02088A4A - _02088A24 - 2; case 2
+ .short _02088A58 - _02088A24 - 2; case 3
+ .short _02088A66 - _02088A24 - 2; case 4
+_02088A2E:
+ add r1, r6, #0x0
+ add r0, r6, #0x0
+ add r1, #0x14
+ bl FUN_02088AAC
+ str r0, [r4, #0x0]
+ b _02088A6A
+_02088A3C:
+ add r1, r6, #0x0
+ add r0, r6, #0x0
+ add r1, #0x14
+ bl FUN_02088AFC
+ str r0, [r4, #0x0]
+ b _02088A6A
+_02088A4A:
+ add r1, r6, #0x0
+ add r0, r6, #0x0
+ add r1, #0x14
+ bl FUN_02088B28
+ str r0, [r4, #0x0]
+ b _02088A6A
+_02088A58:
+ add r1, r6, #0x0
+ add r0, r6, #0x0
+ add r1, #0x14
+ bl FUN_02088B48
+ str r0, [r4, #0x0]
+ b _02088A6A
+_02088A66:
+ mov r0, #0x1
+ pop {r4-r6, pc}
+_02088A6A:
+ ldr r0, [r4, #0x0]
+ cmp r5, r0
+ beq _02088A74
+ mov r0, #0x0
+ str r0, [r6, #0x14]
+_02088A74:
+ mov r0, #0x0
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_02088A78
+FUN_02088A78: ; 0x02088A78
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ bl FUN_02006278
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_0200628C
+ ldr r0, [r4, #0xc]
+ ldr r6, [r4, #0x0]
+ bl FUN_02016A18
+ add r0, r4, #0x0
+ mov r1, #0x0
+ mov r2, #0x24
+ blx MI_CpuFill8
+ add r0, r5, #0x0
+ bl FUN_0200627C
+ add r0, r6, #0x0
+ bl FUN_020168D0
+ mov r0, #0x1
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_02088AAC
+FUN_02088AAC: ; 0x02088AAC
+ push {r4, lr}
+ add r4, r1, #0x0
+ ldr r1, [r4, #0x0]
+ cmp r1, #0x5
+ bhi _02088AF6
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #0x6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_02088AC2: ; jump table (using 16-bit offset)
+ .short _02088ACE - _02088AC2 - 2; case 0
+ .short _02088AD6 - _02088AC2 - 2; case 1
+ .short _02088ADE - _02088AC2 - 2; case 2
+ .short _02088AE6 - _02088AC2 - 2; case 3
+ .short _02088AEE - _02088AC2 - 2; case 4
+ .short _02088AF2 - _02088AC2 - 2; case 5
+_02088ACE:
+ bl FUN_02088B4C
+ str r0, [r4, #0x0]
+ b _02088AF6
+_02088AD6:
+ bl FUN_02088BA8
+ str r0, [r4, #0x0]
+ b _02088AF6
+_02088ADE:
+ bl FUN_02088C3C
+ str r0, [r4, #0x0]
+ b _02088AF6
+_02088AE6:
+ bl FUN_02088CDC
+ str r0, [r4, #0x0]
+ b _02088AF6
+_02088AEE:
+ mov r0, #0x1
+ pop {r4, pc}
+_02088AF2:
+ mov r0, #0x4
+ pop {r4, pc}
+_02088AF6:
+ mov r0, #0x0
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02088AFC
+FUN_02088AFC: ; 0x02088AFC
+ push {r3-r5, lr}
+ sub sp, #0x10
+ ldr r5, _02088B24 ; =0x020FD708
+ add r3, sp, #0x0
+ add r4, r0, #0x0
+ add r2, r3, #0x0
+ ldmia r5!, {r0-r1}
+ stmia r3!, {r0-r1}
+ ldmia r5!, {r0-r1}
+ stmia r3!, {r0-r1}
+ add r0, r2, #0x0
+ ldr r2, [r4, #0x0]
+ add r1, r4, #0x0
+ bl FUN_02006234
+ str r0, [r4, #0x1c]
+ mov r0, #0x2
+ add sp, #0x10
+ pop {r3-r5, pc}
+ nop
+_02088B24: .word 0x020FD708
+
+ thumb_func_start FUN_02088B28
+FUN_02088B28: ; 0x02088B28
+ push {r4, lr}
+ add r4, r0, #0x0
+ add r0, #0x1c
+ bl FUN_0208898C
+ cmp r0, #0x0
+ bne _02088B3A
+ mov r0, #0x2
+ pop {r4, pc}
+_02088B3A:
+ ldr r0, [r4, #0x20]
+ cmp r0, #0x1
+ bne _02088B44
+ mov r0, #0x0
+ pop {r4, pc}
+_02088B44:
+ mov r0, #0x3
+ pop {r4, pc}
+
+ thumb_func_start FUN_02088B48
+FUN_02088B48: ; 0x02088B48
+ mov r0, #0x4
+ bx lr
+
+ thumb_func_start FUN_02088B4C
+FUN_02088B4C: ; 0x02088B4C
+ push {r3-r5, lr}
+ sub sp, #0x10
+ ldr r3, _02088BA0 ; =0x020FD6F8
+ add r2, sp, #0x0
+ add r5, r0, #0x0
+ ldmia r3!, {r0-r1}
+ stmia r2!, {r0-r1}
+ ldmia r3!, {r0-r1}
+ stmia r2!, {r0-r1}
+ ldr r0, [r5, #0x10]
+ ldr r1, _02088BA4 ; =0x020FD6F4
+ ldr r0, [r0, #0x14]
+ ldr r2, [r5, #0x0]
+ bl FUN_0206EFEC
+ add r4, r0, #0x0
+ ldrh r0, [r5, #0x6]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ cmp r0, #0x1
+ bne _02088B7A
+ mov r2, #0x5
+ b _02088B7C
+_02088B7A:
+ mov r2, #0x4
+_02088B7C:
+ ldr r1, [r5, #0x10]
+ lsl r2, r2, #0x18
+ ldr r1, [r1, #0xc]
+ ldr r3, [r5, #0xc]
+ add r0, r4, #0x0
+ lsr r2, r2, #0x18
+ bl FUN_0206E314
+ ldr r2, [r5, #0x0]
+ add r0, sp, #0x0
+ add r1, r4, #0x0
+ bl FUN_02006234
+ str r0, [r5, #0x1c]
+ str r4, [r5, #0x18]
+ mov r0, #0x1
+ add sp, #0x10
+ pop {r3-r5, pc}
+ .balign 4
+_02088BA0: .word 0x020FD6F8
+_02088BA4: .word 0x020FD6F4
+
+ thumb_func_start FUN_02088BA8
+FUN_02088BA8: ; 0x02088BA8
+ push {r3-r5, lr}
+ add r4, r0, #0x0
+ add r0, #0x1c
+ bl FUN_0208898C
+ cmp r0, #0x0
+ bne _02088BBA
+ mov r0, #0x1
+ pop {r3-r5, pc}
+_02088BBA:
+ ldr r0, [r4, #0x0]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_0206E2F0
+ add r5, r0, #0x0
+ bl FUN_0206E308
+ add r2, r0, #0x0
+ ldr r1, [r4, #0x18]
+ add r0, r5, #0x0
+ blx memcpy
+ ldr r0, [r4, #0x18]
+ bl FUN_02016A18
+ mov r0, #0x0
+ str r0, [r4, #0x18]
+ add r0, r5, #0x0
+ bl FUN_0206E37C
+ str r0, [r4, #0x8]
+ add r0, r5, #0x0
+ bl FUN_02016A18
+ add r0, r5, #0x0
+ bl FUN_0206E384
+ cmp r0, #0x5
+ bhi _02088C16
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02088C02: ; jump table (using 16-bit offset)
+ .short _02088C1E - _02088C02 - 2; case 0
+ .short _02088C0E - _02088C02 - 2; case 1
+ .short _02088C1E - _02088C02 - 2; case 2
+ .short _02088C1E - _02088C02 - 2; case 3
+ .short _02088C1E - _02088C02 - 2; case 4
+ .short _02088C12 - _02088C02 - 2; case 5
+_02088C0E:
+ mov r0, #0x2
+ pop {r3-r5, pc}
+_02088C12:
+ mov r0, #0x5
+ pop {r3-r5, pc}
+_02088C16:
+ bl ErrorHandling
+ mov r0, #0x95
+ str r0, [r4, #0x8]
+_02088C1E:
+ ldr r0, [r4, #0x10]
+ ldr r1, [r4, #0x8]
+ ldr r0, [r0, #0x14]
+ lsl r1, r1, #0x10
+ ldr r3, [r4, #0x0]
+ lsr r1, r1, #0x10
+ mov r2, #0x1
+ bl FUN_0206EDD4
+ cmp r0, #0x0
+ bne _02088C38
+ bl ErrorHandling
+_02088C38:
+ mov r0, #0x4
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_02088C3C
+FUN_02088C3C: ; 0x02088C3C
+ push {r3-r7, lr}
+ sub sp, #0x18
+ add r5, r0, #0x0
+ ldr r0, [r5, #0x10]
+ ldr r3, _02088CD8 ; =0x020FD718
+ ldr r0, [r0, #0x14]
+ add r2, sp, #0x8
+ str r0, [sp, #0x0]
+ ldmia r3!, {r0-r1}
+ stmia r2!, {r0-r1}
+ ldmia r3!, {r0-r1}
+ stmia r2!, {r0-r1}
+ ldr r0, [r5, #0x0]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_020851B8
+ str r0, [r5, #0x18]
+ ldr r1, [r5, #0x8]
+ mov r2, #0x1
+ lsl r1, r1, #0x10
+ lsr r1, r1, #0x10
+ bl FUN_020851DC
+ mov r6, #0x0
+ add r4, r6, #0x0
+_02088C70:
+ add r0, r4, #0x0
+ bl FUN_0206EB1C
+ lsl r0, r0, #0x18
+ lsr r7, r0, #0x18
+ ldr r0, [sp, #0x0]
+ ldr r3, [r5, #0x0]
+ add r1, r7, #0x0
+ mov r2, #0x1
+ bl FUN_0206EE50
+ cmp r0, #0x1
+ bne _02088C9A
+ ldr r0, [r5, #0x18]
+ add r1, r7, #0x0
+ mov r2, #0x0
+ bl FUN_020851DC
+ add r0, r6, #0x1
+ lsl r0, r0, #0x18
+ lsr r6, r0, #0x18
+_02088C9A:
+ add r0, r4, #0x1
+ lsl r0, r0, #0x18
+ lsr r4, r0, #0x18
+ cmp r4, #0x40
+ blo _02088C70
+ add r3, sp, #0x4
+ ldr r0, [r5, #0xc]
+ mov r1, #0x4
+ add r2, sp, #0x4
+ add r3, #0x1
+ bl FUN_0206F17C
+ add r2, sp, #0x4
+ ldrb r1, [r2, #0x1]
+ add r3, r6, #0x2
+ lsl r3, r3, #0x18
+ ldrb r2, [r2, #0x0]
+ ldr r0, [r5, #0x18]
+ lsr r3, r3, #0x18
+ bl FUN_020851F8
+ ldr r1, [r5, #0x18]
+ ldr r2, [r5, #0x0]
+ add r0, sp, #0x8
+ bl FUN_02006234
+ str r0, [r5, #0x1c]
+ mov r0, #0x3
+ add sp, #0x18
+ pop {r3-r7, pc}
+ nop
+_02088CD8: .word 0x020FD718
+
+ thumb_func_start FUN_02088CDC
+FUN_02088CDC: ; 0x02088CDC
+ push {r3-r4, lr}
+ sub sp, #0x4
+ add r4, r0, #0x0
+ add r0, #0x1c
+ bl FUN_0208898C
+ cmp r0, #0x0
+ bne _02088CF2
+ add sp, #0x4
+ mov r0, #0x3
+ pop {r3-r4, pc}
+_02088CF2:
+ add r1, sp, #0x0
+ ldr r0, [r4, #0x18]
+ add r1, #0x1
+ add r2, sp, #0x0
+ bl FUN_0208524C
+ add r3, sp, #0x0
+ ldrb r2, [r3, #0x0]
+ ldrb r3, [r3, #0x1]
+ ldr r0, [r4, #0xc]
+ mov r1, #0x4
+ bl FUN_0206F190
+ ldr r0, [r4, #0x18]
+ bl FUN_02016A18
+ mov r0, #0x0
+ str r0, [r4, #0x18]
+ add sp, #0x4
+ pop {r3-r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02088D1C
+FUN_02088D1C: ; 0x02088D1C
+ mov r0, #0x13
+ bx lr
+
+ thumb_func_start FUN_02088D20
+FUN_02088D20: ; 0x02088D20
+ ldr r3, _02088D3C ; =0x020FD8C8
+ mov r2, #0x0
+_02088D24:
+ ldrb r1, [r3, #0x0]
+ cmp r0, r1
+ bne _02088D2E
+ add r0, r2, #0x0
+ bx lr
+_02088D2E:
+ add r2, r2, #0x1
+ add r3, #0xc
+ cmp r2, #0x13
+ blo _02088D24
+ mov r0, #0x0
+ bx lr
+ nop
+_02088D3C: .word 0x020FD8C8
+
+ thumb_func_start FUN_02088D40
+FUN_02088D40: ; 0x02088D40
+ push {r3, lr}
+ bl FUN_02088D20
+ bl FUN_02088D4C
+ pop {r3, pc}
+
+ thumb_func_start FUN_02088D4C
+FUN_02088D4C: ; 0x02088D4C
+ push {r4, lr}
+ add r4, r0, #0x0
+ cmp r4, #0x13
+ blo _02088D58
+ bl ErrorHandling
+_02088D58:
+ mov r0, #0xc
+ add r1, r4, #0x0
+ mul r1, r0
+ ldr r0, _02088D64 ; =0x020FD8CA
+ ldrh r0, [r0, r1]
+ pop {r4, pc}
+ .balign 4
+_02088D64: .word 0x020FD8CA
+
+ thumb_func_start FUN_02088D68
+FUN_02088D68: ; 0x02088D68
+ push {r4, lr}
+ add r4, r0, #0x0
+ cmp r4, #0x13
+ blo _02088D74
+ bl ErrorHandling
+_02088D74:
+ mov r0, #0xc
+ add r1, r4, #0x0
+ mul r1, r0
+ ldr r0, _02088D80 ; =0x020FD8C8
+ ldrb r0, [r0, r1]
+ pop {r4, pc}
+ .balign 4
+_02088D80: .word 0x020FD8C8
+
+ thumb_func_start FUN_02088D84
+FUN_02088D84: ; 0x02088D84
+ push {r4, lr}
+ add r4, r0, #0x0
+ cmp r4, #0x13
+ blo _02088D90
+ bl ErrorHandling
+_02088D90:
+ mov r0, #0xc
+ add r1, r4, #0x0
+ mul r1, r0
+ ldr r0, _02088D9C ; =0x020FD8C9
+ ldrb r0, [r0, r1]
+ pop {r4, pc}
+ .balign 4
+_02088D9C: .word 0x020FD8C9
+
+ thumb_func_start FUN_02088DA0
+FUN_02088DA0: ; 0x02088DA0
+ push {r4, lr}
+ add r4, r0, #0x0
+ cmp r4, #0x13
+ blo _02088DAC
+ bl ErrorHandling
+_02088DAC:
+ mov r0, #0xc
+ add r1, r4, #0x0
+ mul r1, r0
+ ldr r0, _02088DB8 ; =0x020FD8CC
+ ldr r0, [r0, r1]
+ pop {r4, pc}
+ .balign 4
+_02088DB8: .word 0x020FD8CC
+
+ thumb_func_start FUN_02088DBC
+FUN_02088DBC: ; 0x02088DBC
+ push {r4, lr}
+ add r4, r0, #0x0
+ cmp r4, #0x13
+ blo _02088DC8
+ bl ErrorHandling
+_02088DC8:
+ mov r0, #0xc
+ add r1, r4, #0x0
+ mul r1, r0
+ ldr r0, _02088DD4 ; =0x020FD8D0
+ ldr r0, [r0, r1]
+ pop {r4, pc}
+ .balign 4
+_02088DD4: .word 0x020FD8D0
+
+ thumb_func_start FUN_02088DD8
+FUN_02088DD8: ; 0x02088DD8
+ push {r3, lr}
+ mov r1, #0x18
+ bl FUN_02016998
+ add r3, r0, #0x0
+ mov r2, #0x18
+ mov r1, #0x0
+_02088DE6:
+ strb r1, [r3, #0x0]
+ add r3, r3, #0x1
+ sub r2, r2, #0x1
+ bne _02088DE6
+ pop {r3, pc}
+
+ thumb_func_start FUN_02088DF0
+FUN_02088DF0: ; 0x02088DF0
+ ldr r3, _02088DF4 ; =FUN_02016A18
+ bx r3
+ .balign 4
+_02088DF4: .word FUN_02016A18
+
+ thumb_func_start FUN_02088DF8
+FUN_02088DF8: ; 0x02088DF8
+ push {r3-r7, lr}
+ sub sp, #0x18
+ str r1, [sp, #0x0]
+ mov r1, #0x5
+ mov r2, #0x0
+ add r5, r0, #0x0
+ bl FUN_020671BC
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #0xc]
+ add r0, r5, #0x0
+ mov r1, #0x70
+ mov r2, #0x0
+ bl FUN_020671BC
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x8]
+ add r0, r5, #0x0
+ mov r1, #0xa0
+ mov r2, #0x0
+ bl FUN_020671BC
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ mov r4, #0x0
+ str r0, [sp, #0x4]
+ add r7, r4, #0x0
+ add r6, sp, #0x10
+_02088E34:
+ add r1, r4, #0x0
+ add r0, r5, #0x0
+ add r1, #0x36
+ add r2, r7, #0x0
+ bl FUN_020671BC
+ lsl r1, r4, #0x1
+ strh r0, [r6, r1]
+ add r0, r4, #0x1
+ lsl r0, r0, #0x18
+ lsr r4, r0, #0x18
+ cmp r4, #0x4
+ blo _02088E34
+ ldr r0, [sp, #0x0]
+ mov r1, #0x2c
+ bl FUN_02016998
+ add r7, r0, #0x0
+ ldr r0, [sp, #0x0]
+ mov r1, #0x2c
+ bl FUN_02016998
+ add r4, r0, #0x0
+ ldr r0, [sp, #0xc]
+ ldr r1, [sp, #0x8]
+ add r2, r7, #0x0
+ bl FUN_02069F9C
+ mov r2, #0x0
+ mov r12, r2
+_02088E70:
+ mov r0, r12
+ lsl r0, r0, #0x1
+ ldrh r5, [r7, r0]
+ ldr r6, _02088EF4 ; =0x0000FFFF
+ cmp r5, r6
+ bne _02088E82
+ lsl r0, r2, #0x1
+ strh r6, [r4, r0]
+ b _02088EE8
+_02088E82:
+ mov r1, #0xfe
+ lsl r1, r1, #0x8
+ and r1, r5
+ asr r3, r1, #0x9
+ ldr r1, [sp, #0x4]
+ cmp r3, r1
+ bgt _02088EDA
+ lsr r1, r6, #0x7
+ and r1, r5
+ strh r1, [r7, r0]
+ ldrh r3, [r7, r0]
+ mov r1, #0x0
+ add r6, sp, #0x10
+_02088E9C:
+ lsl r5, r1, #0x1
+ ldrh r5, [r6, r5]
+ cmp r3, r5
+ beq _02088EAE
+ add r1, r1, #0x1
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ cmp r1, #0x4
+ blo _02088E9C
+_02088EAE:
+ cmp r1, #0x4
+ bne _02088EDA
+ mov r1, #0x0
+ cmp r2, #0x0
+ bls _02088ECA
+_02088EB8:
+ lsl r5, r1, #0x1
+ ldrh r5, [r4, r5]
+ cmp r5, r3
+ beq _02088ECA
+ add r1, r1, #0x1
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ cmp r1, r2
+ blo _02088EB8
+_02088ECA:
+ cmp r1, r2
+ bne _02088EDA
+ ldrh r1, [r7, r0]
+ lsl r0, r2, #0x1
+ strh r1, [r4, r0]
+ add r0, r2, #0x1
+ lsl r0, r0, #0x18
+ lsr r2, r0, #0x18
+_02088EDA:
+ mov r0, r12
+ add r0, r0, #0x1
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ mov r12, r0
+ cmp r0, #0x16
+ blo _02088E70
+_02088EE8:
+ add r0, r7, #0x0
+ bl FUN_02016A18
+ add r0, r4, #0x0
+ add sp, #0x18
+ pop {r3-r7, pc}
+ .balign 4
+_02088EF4: .word 0x0000FFFF
+
+ thumb_func_start FUN_02088EF8
+FUN_02088EF8: ; 0x02088EF8
+ ldrh r1, [r0, #0x0]
+ ldr r0, _02088F08 ; =0x0000FFFF
+ cmp r1, r0
+ beq _02088F04
+ mov r0, #0x1
+ bx lr
+_02088F04:
+ mov r0, #0x0
+ bx lr
+ .balign 4
+_02088F08: .word 0x0000FFFF
+
+ thumb_func_start FUN_02088F0C
+FUN_02088F0C: ; 0x02088F0C
+ push {r4-r6, lr}
+ add r5, r1, #0x0
+ ldr r1, _02088F44 ; =0x0000195C
+ add r6, r0, #0x0
+ bl FUN_02016998
+ add r4, r0, #0x0
+ add r0, r6, #0x0
+ str r5, [r4, #0x0]
+ bl FUN_020139D8
+ str r0, [r4, #0x4]
+ mov r3, #0x0
+ ldr r0, _02088F48 ; =0x0000189E
+ add r2, r3, #0x0
+_02088F2A:
+ add r1, r4, r3
+ add r3, r3, #0x1
+ strb r2, [r1, r0]
+ cmp r3, #0xbb
+ blt _02088F2A
+ add r0, r4, #0x0
+ bl FUN_02088F60
+ add r0, r4, #0x0
+ bl FUN_020891D0
+ add r0, r4, #0x0
+ pop {r4-r6, pc}
+ .balign 4
+_02088F44: .word 0x0000195C
+_02088F48: .word 0x0000189E
+
+ thumb_func_start FUN_02088F4C
+FUN_02088F4C: ; 0x02088F4C
+ push {r4, lr}
+ add r4, r0, #0x0
+ beq _02088F5E
+ ldr r0, [r4, #0x4]
+ bl FUN_02013A10
+ add r0, r4, #0x0
+ bl FUN_02016A18
+_02088F5E:
+ pop {r4, pc}
+
+ thumb_func_start FUN_02088F60
+FUN_02088F60: ; 0x02088F60
+ push {r4-r7, lr}
+ sub sp, #0xc
+ mov r4, #0x0
+ str r0, [sp, #0x0]
+ add r7, r0, #0x0
+ str r0, [sp, #0x8]
+ add r0, #0x68
+ ldr r5, _02088F9C ; =0x020FE17C
+ str r4, [sp, #0x4]
+ str r0, [sp, #0x8]
+_02088F74:
+ ldr r3, [sp, #0x8]
+ str r4, [r7, #0x38]
+ lsl r6, r4, #0x1
+ add r3, r3, r6
+ ldr r0, [sp, #0x0]
+ ldr r1, [r5, #0x4]
+ ldr r2, [r5, #0x8]
+ ldr r6, [r5, #0x0]
+ blx r6
+ str r0, [r7, #0x8]
+ add r4, r4, r0
+ ldr r0, [sp, #0x4]
+ add r7, r7, #0x4
+ add r0, r0, #0x1
+ add r5, #0xc
+ str r0, [sp, #0x4]
+ cmp r0, #0xc
+ blt _02088F74
+ add sp, #0xc
+ pop {r4-r7, pc}
+ .balign 4
+_02088F9C: .word 0x020FE17C
+
+ thumb_func_start FUN_02088FA0
+FUN_02088FA0: ; 0x02088FA0
+ push {r4-r7, lr}
+ sub sp, #0xc
+ str r0, [sp, #0x0]
+ ldr r0, [r0, #0x0]
+ str r2, [sp, #0x4]
+ add r5, r1, #0x0
+ add r4, r3, #0x0
+ mov r6, #0x0
+ bl FUN_02085418
+ str r0, [sp, #0x8]
+ ldr r0, [sp, #0x4]
+ add r7, r6, #0x0
+ cmp r0, #0x0
+ bls _02088FF6
+_02088FBE:
+ ldrh r1, [r5, #0x0]
+ ldr r0, [sp, #0x8]
+ bl FUN_020245F0
+ cmp r0, #0x0
+ beq _02088FEC
+ ldrh r3, [r5, #0x0]
+ ldr r0, [sp, #0x0]
+ mov r2, #0x7
+ lsr r1, r3, #0x3
+ add r1, r0, r1
+ ldr r0, _02088FFC ; =0x0000189E
+ and r3, r2
+ mov r2, #0x1
+ ldrb r0, [r1, r0]
+ lsl r2, r3
+ orr r2, r0
+ ldr r0, _02088FFC ; =0x0000189E
+ add r6, r6, #0x1
+ strb r2, [r1, r0]
+ ldrh r0, [r5, #0x0]
+ strh r0, [r4, #0x0]
+ add r4, r4, #0x2
+_02088FEC:
+ ldr r0, [sp, #0x4]
+ add r7, r7, #0x1
+ add r5, r5, #0x2
+ cmp r7, r0
+ blo _02088FBE
+_02088FF6:
+ add r0, r6, #0x0
+ add sp, #0xc
+ pop {r4-r7, pc}
+ .balign 4
+_02088FFC: .word 0x0000189E
+
+ thumb_func_start FUN_02089000
+FUN_02089000: ; 0x02089000
+ push {r3-r7, lr}
+ str r0, [sp, #0x0]
+ ldr r0, [r0, #0x0]
+ add r5, r1, #0x0
+ add r7, r2, #0x0
+ add r4, r3, #0x0
+ bl FUN_02085420
+ cmp r0, #0x0
+ beq _02089046
+ mov r2, #0x0
+ cmp r7, #0x0
+ bls _02089042
+_0208901A:
+ ldrh r6, [r5, #0x0]
+ ldr r0, [sp, #0x0]
+ mov r3, #0x7
+ lsr r1, r6, #0x3
+ add r1, r0, r1
+ ldr r0, _0208904C ; =0x0000189E
+ and r6, r3
+ mov r3, #0x1
+ ldrb r0, [r1, r0]
+ lsl r3, r6
+ orr r3, r0
+ ldr r0, _0208904C ; =0x0000189E
+ add r2, r2, #0x1
+ strb r3, [r1, r0]
+ ldrh r0, [r5, #0x0]
+ add r5, r5, #0x2
+ strh r0, [r4, #0x0]
+ add r4, r4, #0x2
+ cmp r2, r7
+ blo _0208901A
+_02089042:
+ add r0, r7, #0x0
+ pop {r3-r7, pc}
+_02089046:
+ mov r0, #0x0
+ pop {r3-r7, pc}
+ nop
+_0208904C: .word 0x0000189E
+
+ thumb_func_start FUN_02089050
+FUN_02089050: ; 0x02089050
+ push {r3-r7, lr}
+ sub sp, #0x10
+ str r0, [sp, #0x0]
+ ldr r0, [r0, #0x0]
+ add r5, r1, #0x0
+ str r2, [sp, #0x4]
+ add r4, r3, #0x0
+ bl FUN_0208541C
+ str r0, [sp, #0xc]
+ ldr r0, _020890BC ; =0x00000189
+ mov r1, #0x0
+ bl FUN_02013A9C
+ str r0, [sp, #0x8]
+ mov r7, #0x0
+ ldr r0, [sp, #0x4]
+ add r6, r7, #0x0
+ cmp r0, #0x0
+ bls _020890B4
+_02089078:
+ ldrh r2, [r5, #0x0]
+ ldr r1, [sp, #0x8]
+ ldr r0, [sp, #0xc]
+ sub r1, r2, r1
+ bl FUN_02013B68
+ cmp r0, #0x0
+ beq _020890AA
+ ldrh r3, [r5, #0x0]
+ ldr r0, [sp, #0x0]
+ mov r2, #0x7
+ lsr r1, r3, #0x3
+ add r1, r0, r1
+ ldr r0, _020890C0 ; =0x0000189E
+ and r3, r2
+ mov r2, #0x1
+ ldrb r0, [r1, r0]
+ lsl r2, r3
+ orr r2, r0
+ ldr r0, _020890C0 ; =0x0000189E
+ add r6, r6, #0x1
+ strb r2, [r1, r0]
+ ldrh r0, [r5, #0x0]
+ strh r0, [r4, #0x0]
+ add r4, r4, #0x2
+_020890AA:
+ ldr r0, [sp, #0x4]
+ add r7, r7, #0x1
+ add r5, r5, #0x2
+ cmp r7, r0
+ blo _02089078
+_020890B4:
+ add r0, r6, #0x0
+ add sp, #0x10
+ pop {r3-r7, pc}
+ nop
+_020890BC: .word 0x00000189
+_020890C0: .word 0x0000189E
+
+ thumb_func_start FUN_020890C4
+FUN_020890C4: ; 0x020890C4
+ push {r4-r7, lr}
+ sub sp, #0x14
+ str r0, [sp, #0x0]
+ ldr r0, [r0, #0x0]
+ add r5, r1, #0x0
+ str r2, [sp, #0x4]
+ add r4, r3, #0x0
+ bl FUN_0208541C
+ str r0, [sp, #0x10]
+ ldr r0, _02089144 ; =0x00000186
+ mov r1, #0x0
+ bl FUN_02013A9C
+ add r6, r0, #0x0
+ add r0, r6, #0x5
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #0xc]
+ mov r7, #0x0
+ ldr r0, [sp, #0x4]
+ str r7, [sp, #0x8]
+ cmp r0, #0x0
+ bls _0208913C
+_020890F4:
+ ldrh r1, [r5, #0x0]
+ cmp r1, r6
+ blo _0208910C
+ ldr r0, [sp, #0xc]
+ cmp r1, r0
+ bhi _0208910C
+ ldr r0, [sp, #0x10]
+ sub r1, r1, r6
+ bl FUN_02013C0C
+ cmp r0, #0x0
+ beq _0208912E
+_0208910C:
+ ldrh r3, [r5, #0x0]
+ ldr r0, [sp, #0x0]
+ mov r2, #0x7
+ lsr r1, r3, #0x3
+ add r1, r0, r1
+ ldr r0, _02089148 ; =0x0000189E
+ and r3, r2
+ mov r2, #0x1
+ ldrb r0, [r1, r0]
+ lsl r2, r3
+ orr r2, r0
+ ldr r0, _02089148 ; =0x0000189E
+ add r7, r7, #0x1
+ strb r2, [r1, r0]
+ ldrh r0, [r5, #0x0]
+ strh r0, [r4, #0x0]
+ add r4, r4, #0x2
+_0208912E:
+ ldr r0, [sp, #0x8]
+ add r5, r5, #0x2
+ add r1, r0, #0x1
+ ldr r0, [sp, #0x4]
+ str r1, [sp, #0x8]
+ cmp r1, r0
+ blo _020890F4
+_0208913C:
+ add r0, r7, #0x0
+ add sp, #0x14
+ pop {r4-r7, pc}
+ nop
+_02089144: .word 0x00000186
+_02089148: .word 0x0000189E
+
+ thumb_func_start FUN_0208914C
+FUN_0208914C: ; 0x0208914C
+ push {r3-r7, lr}
+ add r6, r0, #0x0
+ mov r0, #0x0
+ mov lr, r2
+ mov r12, r0
+ mov r0, lr
+ add r4, r1, #0x0
+ add r7, r3, #0x0
+ cmp r0, #0x0
+ bls _020891C2
+_02089160:
+ ldrh r2, [r4, #0x0]
+ ldr r0, _020891C8 ; =0x0000FFFE
+ cmp r2, r0
+ bne _02089196
+ add r0, r4, #0x2
+ add r4, r4, #0x4
+ ldrh r2, [r0, #0x0]
+ ldrh r0, [r4, #0x0]
+ cmp r2, #0x0
+ strh r0, [r7, #0x0]
+ beq _020891B6
+_02089176:
+ ldrh r5, [r4, #0x0]
+ mov r3, #0x7
+ add r4, r4, #0x2
+ lsr r0, r5, #0x3
+ add r1, r6, r0
+ ldr r0, _020891CC ; =0x0000189E
+ and r5, r3
+ mov r3, #0x1
+ ldrb r0, [r1, r0]
+ lsl r3, r5
+ orr r3, r0
+ ldr r0, _020891CC ; =0x0000189E
+ sub r2, r2, #0x1
+ strb r3, [r1, r0]
+ bne _02089176
+ b _020891B6
+_02089196:
+ lsr r0, r2, #0x3
+ ldr r1, _020891CC ; =0x0000189E
+ add r0, r6, r0
+ ldrb r3, [r0, r1]
+ mov r1, #0x7
+ mov r5, #0x1
+ and r1, r2
+ add r2, r5, #0x0
+ lsl r2, r1
+ ldr r1, _020891CC ; =0x0000189E
+ orr r2, r3
+ strb r2, [r0, r1]
+ ldrh r0, [r4, #0x0]
+ add r4, r4, #0x2
+ strh r0, [r7, #0x0]
+ add r7, r7, #0x2
+_020891B6:
+ mov r0, r12
+ add r1, r0, #0x1
+ mov r0, lr
+ mov r12, r1
+ cmp r1, r0
+ blo _02089160
+_020891C2:
+ mov r0, lr
+ pop {r3-r7, pc}
+ nop
+_020891C8: .word 0x0000FFFE
+_020891CC: .word 0x0000189E
+
+ thumb_func_start FUN_020891D0
+FUN_020891D0: ; 0x020891D0
+ push {r3-r7, lr}
+ add r7, r0, #0x0
+ mov r4, #0x0
+ ldr r6, _0208920C ; =0x020FDDF0
+ str r4, [sp, #0x0]
+ add r5, r7, #0x0
+_020891DC:
+ ldr r0, _02089210 ; =0x00000C84
+ mov r2, #0xcf
+ str r4, [r5, r0]
+ lsl r2, r2, #0x4
+ ldr r1, [r6, #0x0]
+ add r0, r7, #0x0
+ add r2, r7, r2
+ add r3, r4, #0x0
+ bl FUN_02089218
+ ldr r1, _02089214 ; =0x00000C18
+ add r6, r6, #0x4
+ str r0, [r5, r1]
+ add r0, r1, #0x0
+ ldr r0, [r5, r0]
+ add r5, r5, #0x4
+ add r4, r4, r0
+ ldr r0, [sp, #0x0]
+ add r0, r0, #0x1
+ str r0, [sp, #0x0]
+ cmp r0, #0x1b
+ blo _020891DC
+ pop {r3-r7, pc}
+ nop
+_0208920C: .word 0x020FDDF0
+_02089210: .word 0x00000C84
+_02089214: .word 0x00000C18
+
+ thumb_func_start FUN_02089218
+FUN_02089218: ; 0x02089218
+ push {r3-r7, lr}
+ add r7, r1, #0x0
+ add r6, r0, #0x0
+ str r2, [sp, #0x0]
+ mov r0, #0x0
+ mov r12, r0
+ ldrh r2, [r7, #0x0]
+ ldr r0, _020892B8 ; =0x0000FFFF
+ mov lr, r3
+ cmp r2, r0
+ beq _020892B4
+_0208922E:
+ ldr r0, _020892BC ; =0x0000FFFE
+ cmp r2, r0
+ bne _02089280
+ add r0, r7, #0x2
+ ldrh r5, [r0, #0x0]
+ add r7, r7, #0x4
+ mov r3, #0x0
+ cmp r5, #0x0
+ bls _0208927A
+ add r4, r7, #0x0
+_02089242:
+ ldrh r2, [r4, #0x0]
+ mov r0, #0x7
+ mov r1, #0x1
+ and r0, r2
+ lsl r1, r0
+ lsr r0, r2, #0x3
+ add r2, r6, r0
+ ldr r0, _020892C0 ; =0x0000189E
+ ldrb r0, [r2, r0]
+ tst r0, r1
+ beq _02089272
+ lsl r0, r3, #0x1
+ ldrh r1, [r7, r0]
+ mov r0, lr
+ lsl r2, r0, #0x1
+ mov r0, lr
+ add r0, r0, #0x1
+ mov lr, r0
+ ldr r0, [sp, #0x0]
+ strh r1, [r0, r2]
+ mov r0, r12
+ add r0, r0, #0x1
+ mov r12, r0
+ b _0208927A
+_02089272:
+ add r3, r3, #0x1
+ add r4, r4, #0x2
+ cmp r3, r5
+ blo _02089242
+_0208927A:
+ lsl r0, r5, #0x1
+ add r7, r7, r0
+ b _020892AC
+_02089280:
+ mov r1, #0x1
+ mov r0, #0x7
+ and r0, r2
+ add r3, r1, #0x0
+ lsl r3, r0
+ lsr r0, r2, #0x3
+ add r1, r6, r0
+ ldr r0, _020892C0 ; =0x0000189E
+ ldrb r0, [r1, r0]
+ tst r0, r3
+ beq _020892AA
+ mov r1, lr
+ add r1, r1, #0x1
+ mov r0, lr
+ mov lr, r1
+ ldr r1, [sp, #0x0]
+ lsl r0, r0, #0x1
+ strh r2, [r1, r0]
+ mov r0, r12
+ add r0, r0, #0x1
+ mov r12, r0
+_020892AA:
+ add r7, r7, #0x2
+_020892AC:
+ ldrh r2, [r7, #0x0]
+ ldr r0, _020892B8 ; =0x0000FFFF
+ cmp r2, r0
+ bne _0208922E
+_020892B4:
+ mov r0, r12
+ pop {r3-r7, pc}
+ .balign 4
+_020892B8: .word 0x0000FFFF
+_020892BC: .word 0x0000FFFE
+_020892C0: .word 0x0000189E
+
+ thumb_func_start FUN_020892C4
+FUN_020892C4: ; 0x020892C4
+ lsl r1, r1, #0x2
+ add r0, r0, r1
+ ldr r0, [r0, #0x8]
+ bx lr
+
+ thumb_func_start FUN_020892CC
+FUN_020892CC: ; 0x020892CC
+ push {r4, lr}
+ add r4, r0, #0x0
+ lsl r1, r1, #0x2
+ add r1, r4, r1
+ ldr r1, [r1, #0x38]
+ ldr r0, [r4, #0x4]
+ add r1, r1, r2
+ lsl r1, r1, #0x1
+ add r1, r4, r1
+ add r1, #0x68
+ ldrh r1, [r1, #0x0]
+ add r2, r3, #0x0
+ bl FUN_02013A30
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_020892EC
+FUN_020892EC: ; 0x020892EC
+ lsl r1, r1, #0x2
+ add r1, r0, r1
+ ldr r1, [r1, #0x38]
+ add r1, r1, r2
+ lsl r1, r1, #0x1
+ add r0, r0, r1
+ add r0, #0x68
+ ldrh r0, [r0, #0x0]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02089300
+FUN_02089300: ; 0x02089300
+ lsl r1, r1, #0x2
+ add r1, r0, r1
+ ldr r0, _0208930C ; =0x00000C18
+ ldr r0, [r1, r0]
+ bx lr
+ nop
+_0208930C: .word 0x00000C18
+
+ thumb_func_start FUN_02089310
+FUN_02089310: ; 0x02089310
+ push {r4-r6, lr}
+ add r4, r3, #0x0
+ add r5, r0, #0x0
+ lsl r3, r1, #0x2
+ add r6, r5, r3
+ ldr r3, _02089334 ; =0x00000C18
+ ldr r3, [r6, r3]
+ cmp r3, #0x0
+ beq _02089330
+ bl FUN_02089338
+ add r1, r0, #0x0
+ ldr r0, [r5, #0x4]
+ add r2, r4, #0x0
+ bl FUN_02013A30
+_02089330:
+ pop {r4-r6, pc}
+ nop
+_02089334: .word 0x00000C18
+
+ thumb_func_start FUN_02089338
+FUN_02089338: ; 0x02089338
+ push {r3-r4}
+ lsl r1, r1, #0x2
+ ldr r3, _02089360 ; =0x00000C18
+ add r4, r0, r1
+ ldr r1, [r4, r3]
+ cmp r1, #0x0
+ beq _0208935A
+ add r1, r3, #0x0
+ add r1, #0x6c
+ ldr r1, [r4, r1]
+ add r3, #0xd8
+ add r1, r2, r1
+ lsl r1, r1, #0x1
+ add r0, r0, r1
+ ldrh r0, [r0, r3]
+ pop {r3-r4}
+ bx lr
+_0208935A:
+ ldr r0, _02089364 ; =0x0000FFFF
+ pop {r3-r4}
+ bx lr
+ .balign 4
+_02089360: .word 0x00000C18
+_02089364: .word 0x0000FFFF
+
+ thumb_func_start FUN_02089368
+FUN_02089368: ; 0x02089368
+ push {r3-r6}
+ mov r1, #0x0
+ ldr r2, _0208938C ; =0x020FF2FC
+ ldr r5, _02089390 ; =0x020FE17C
+ add r0, r1, #0x0
+ mov r3, #0xc
+_02089374:
+ ldrb r4, [r2, #0x0]
+ add r1, r1, #0x1
+ add r2, r2, #0x1
+ add r6, r4, #0x0
+ mul r6, r3
+ add r4, r5, r6
+ ldr r4, [r4, #0x8]
+ add r0, r0, r4
+ cmp r1, #0x5
+ blo _02089374
+ pop {r3-r6}
+ bx lr
+ .balign 4
+_0208938C: .word 0x020FF2FC
+_02089390: .word 0x020FE17C
+
+ thumb_func_start FUN_02089394
+FUN_02089394: ; 0x02089394
+ push {r4-r7}
+ mov r2, #0x0
+ ldr r3, _020893D8 ; =0x020FF2FC
+ add r1, r2, #0x0
+_0208939C:
+ ldrb r5, [r3, #0x0]
+ mov r4, #0xc
+ add r6, r5, #0x0
+ mul r6, r4
+ ldr r4, _020893DC ; =0x020FE17C
+ add r5, r4, r6
+ ldr r7, [r5, #0x8]
+ mov r6, #0x0
+ ldr r4, [r5, #0x4]
+ cmp r7, #0x0
+ ble _020893C8
+_020893B2:
+ ldrh r5, [r4, #0x0]
+ cmp r0, r5
+ bne _020893BE
+ add r0, r2, #0x0
+ pop {r4-r7}
+ bx lr
+_020893BE:
+ add r6, r6, #0x1
+ add r2, r2, #0x1
+ add r4, r4, #0x2
+ cmp r6, r7
+ blt _020893B2
+_020893C8:
+ add r1, r1, #0x1
+ add r3, r3, #0x1
+ cmp r1, #0x5
+ blo _0208939C
+ mov r0, #0x0
+ mvn r0, r0
+ pop {r4-r7}
+ bx lr
+ .balign 4
+_020893D8: .word 0x020FF2FC
+_020893DC: .word 0x020FE17C
+
+ thumb_func_start FUN_020893E0
+FUN_020893E0: ; 0x020893E0
+ mov r1, #0x0
+ ldr r0, _020893EC ; =0x02106154
+ mvn r1, r1
+ str r1, [r0, #0x0]
+ bx lr
+ nop
+_020893EC: .word 0x02106154
+
+ thumb_func_start FUN_020893F0
+FUN_020893F0: ; 0x020893F0
+ push {r4, lr}
+ add r4, r0, #0x0
+ mov r0, #0x3
+ lsl r0, r0, #0xc
+ cmp r2, r0
+ bhs _0208940A
+ add r0, r1, #0x0
+ ldr r1, _02089410 ; =0x021C5C58
+ blx MIi_CpuCopy32
+ ldr r0, _02089414 ; =0x02106154
+ str r4, [r0, #0x0]
+ pop {r4, pc}
+_0208940A:
+ bl ErrorHandling
+ pop {r4, pc}
+ .balign 4
+_02089410: .word 0x021C5C58
+_02089414: .word 0x02106154
+
+ thumb_func_start FUN_02089418
+FUN_02089418: ; 0x02089418
+ push {r3, lr}
+ mov r3, #0x3
+ lsl r3, r3, #0xc
+ cmp r2, r3
+ bhs _02089434
+ ldr r3, _0208943C ; =0x02106154
+ ldr r3, [r3, #0x0]
+ cmp r0, r3
+ bne _02089438
+ ldr r0, _02089440 ; =0x021C5C58
+ blx MIi_CpuCopy32
+ mov r0, #0x1
+ pop {r3, pc}
+_02089434:
+ bl ErrorHandling
+_02089438:
+ mov r0, #0x0
+ pop {r3, pc}
+ .balign 4
+_0208943C: .word 0x02106154
+_02089440: .word 0x021C5C58
+
+ thumb_func_start FUN_02089444
+FUN_02089444: ; 0x02089444
+ push {r4, lr}
+ add r4, r0, #0x0
+ mov r0, #0x3
+ lsl r0, r0, #0xc
+ cmp r2, r0
+ bhs _0208945E
+ add r0, r1, #0x0
+ ldr r1, _02089464 ; =0x021C5C58
+ blx MIi_CpuCopyFast
+ ldr r0, _02089468 ; =0x02106154
+ str r4, [r0, #0x0]
+ pop {r4, pc}
+_0208945E:
+ bl ErrorHandling
+ pop {r4, pc}
+ .balign 4
+_02089464: .word 0x021C5C58
+_02089468: .word 0x02106154
+
+ thumb_func_start FUN_0208946C
+FUN_0208946C: ; 0x0208946C
+ push {r3, lr}
+ mov r3, #0x3
+ lsl r3, r3, #0xc
+ cmp r2, r3
+ bhs _02089488
+ ldr r3, _02089490 ; =0x02106154
+ ldr r3, [r3, #0x0]
+ cmp r0, r3
+ bne _0208948C
+ ldr r0, _02089494 ; =0x021C5C58
+ blx MIi_CpuCopyFast
+ mov r0, #0x1
+ pop {r3, pc}
+_02089488:
+ bl ErrorHandling
+_0208948C:
+ mov r0, #0x0
+ pop {r3, pc}
+ .balign 4
+_02089490: .word 0x02106154
+_02089494: .word 0x021C5C58
+
+ thumb_func_start FUN_02089498
+FUN_02089498: ; 0x02089498
+ push {r3-r5, lr}
+ mov r2, #0x2
+ add r5, r0, #0x0
+ mov r0, #0x3
+ mov r1, #0x58
+ lsl r2, r2, #0x10
+ bl FUN_0201681C
+ add r0, r5, #0x0
+ mov r1, #0x38
+ mov r2, #0x58
+ bl FUN_02006268
+ mov r1, #0x0
+ mov r2, #0x38
+ add r4, r0, #0x0
+ blx Call_FillMemWithValue
+ mov r0, #0x58
+ str r0, [r4, #0x0]
+ mov r0, #0x0
+ str r0, [r4, #0x4]
+ add r0, r5, #0x0
+ bl FUN_0200628C
+ ldr r0, [r0, #0x8]
+ str r0, [r4, #0x30]
+ mov r0, #0x1
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_020894D4
+FUN_020894D4: ; 0x020894D4
+ push {r3-r6, lr}
+ sub sp, #0xc
+ add r5, r1, #0x0
+ bl FUN_02006278
+ ldr r1, [r5, #0x0]
+ add r4, r0, #0x0
+ mov r6, #0x0
+ cmp r1, #0x3
+ bhi _020895DA
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #0x6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_020894F4: ; jump table (using 16-bit offset)
+ .short _020894FC - _020894F4 - 2; case 0
+ .short _02089588 - _020894F4 - 2; case 1
+ .short _02089596 - _020894F4 - 2; case 2
+ .short _020895BC - _020894F4 - 2; case 3
+_020894FC:
+ ldr r0, _020895E0 ; =0x00000495
+ add r1, r6, #0x0
+ bl FUN_02005350
+ add r0, r6, #0x0
+ bl FUN_0200516C
+ add r0, r6, #0x0
+ bl FUN_0200415C
+ add r0, r6, #0x0
+ add r1, r0, #0x0
+ bl FUN_0200E3A0
+ mov r0, #0x1
+ add r1, r6, #0x0
+ bl FUN_0200E3A0
+ add r0, r6, #0x0
+ add r1, r0, #0x0
+ bl FUN_02015F10
+ add r0, r6, #0x0
+ add r1, r0, #0x0
+ bl FUN_02015F34
+ bl FUN_0201E6D8
+ bl FUN_0201E740
+ mov r2, #0x1
+ lsl r2, r2, #0x1a
+ ldr r1, [r2, #0x0]
+ ldr r0, _020895E4 ; =0xFFFFE0FF
+ and r1, r0
+ str r1, [r2, #0x0]
+ ldr r2, _020895E8 ; =0x04001000
+ ldr r1, [r2, #0x0]
+ and r0, r1
+ str r0, [r2, #0x0]
+ mov r0, #0x4
+ mov r1, #0x8
+ bl FUN_0201669C
+ add r0, r4, #0x0
+ bl FUN_0208961C
+ add r0, r4, #0x0
+ bl FUN_02089734
+ ldr r0, _020895EC ; =FUN_02089610
+ add r1, r4, #0x0
+ bl FUN_02015F10
+ bl FUN_0201E788
+ mov r0, #0x6
+ mov r1, #0x1
+ str r0, [sp, #0x0]
+ str r1, [sp, #0x4]
+ ldr r0, [r4, #0x0]
+ add r2, r1, #0x0
+ str r0, [sp, #0x8]
+ add r0, r6, #0x0
+ add r3, r0, #0x0
+ bl FUN_0200E1D0
+ mov r0, #0x1
+ str r0, [r5, #0x0]
+ b _020895DA
+_02089588:
+ bl FUN_0200E308
+ cmp r0, #0x1
+ bne _020895DA
+ mov r0, #0x2
+ str r0, [r5, #0x0]
+ b _020895DA
+_02089596:
+ bl FUN_02089790
+ cmp r0, #0x1
+ bne _020895DA
+ mov r0, #0x6
+ str r0, [sp, #0x0]
+ mov r0, #0x1
+ str r0, [sp, #0x4]
+ ldr r0, [r4, #0x0]
+ str r0, [sp, #0x8]
+ add r0, r6, #0x0
+ add r1, r0, #0x0
+ add r2, r0, #0x0
+ add r3, r0, #0x0
+ bl FUN_0200E1D0
+ mov r0, #0x3
+ str r0, [r5, #0x0]
+ b _020895DA
+_020895BC:
+ bl FUN_0200E308
+ cmp r0, #0x1
+ bne _020895DA
+ add r0, r4, #0x0
+ bl FUN_0208977C
+ add r0, r4, #0x0
+ bl FUN_020896E0
+ add r0, r6, #0x0
+ add r1, r0, #0x0
+ bl FUN_02015F10
+ mov r6, #0x1
+_020895DA:
+ add r0, r6, #0x0
+ add sp, #0xc
+ pop {r3-r6, pc}
+ .balign 4
+_020895E0: .word 0x00000495
+_020895E4: .word 0xFFFFE0FF
+_020895E8: .word 0x04001000
+_020895EC: .word FUN_02089610
+
+ thumb_func_start FUN_020895F0
+FUN_020895F0: ; 0x020895F0
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ bl FUN_02006278
+ ldr r4, [r0, #0x0]
+ add r0, r5, #0x0
+ bl FUN_0200627C
+ add r0, r4, #0x0
+ bl FUN_020168D0
+ mov r0, #0x0
+ blx OS_ResetSystem
+ mov r0, #0x1
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_02089610
+FUN_02089610: ; 0x02089610
+ ldr r3, _02089618 ; =FUN_0201AB60
+ ldr r0, [r0, #0x14]
+ bx r3
+ nop
+_02089618: .word FUN_0201AB60
+
+ thumb_func_start FUN_0208961C
+FUN_0208961C: ; 0x0208961C
+ push {r4-r5, lr}
+ sub sp, #0x5c
+ ldr r5, _020896C8 ; =0x020FF340
+ add r4, r0, #0x0
+ add r3, sp, #0x34
+ mov r2, #0x5
+_02089628:
+ ldmia r5!, {r0-r1}
+ stmia r3!, {r0-r1}
+ sub r2, r2, #0x1
+ bne _02089628
+ add r0, sp, #0x34
+ bl FUN_0201E66C
+ ldr r0, [r4, #0x0]
+ bl FUN_02016B94
+ add r3, sp, #0x24
+ ldr r5, _020896CC ; =0x020FF314
+ str r0, [r4, #0x14]
+ add r2, r3, #0x0
+ ldmia r5!, {r0-r1}
+ stmia r3!, {r0-r1}
+ ldmia r5!, {r0-r1}
+ stmia r3!, {r0-r1}
+ add r0, r2, #0x0
+ bl FUN_02016BBC
+ ldr r5, _020896D0 ; =0x020FF324
+ add r3, sp, #0x8
+ ldmia r5!, {r0-r1}
+ add r2, r3, #0x0
+ stmia r3!, {r0-r1}
+ ldmia r5!, {r0-r1}
+ stmia r3!, {r0-r1}
+ ldmia r5!, {r0-r1}
+ stmia r3!, {r0-r1}
+ ldr r0, [r5, #0x0]
+ mov r1, #0x0
+ str r0, [r3, #0x0]
+ ldr r0, [r4, #0x14]
+ add r3, r1, #0x0
+ bl FUN_02016C18
+ ldr r0, [r4, #0x14]
+ mov r1, #0x0
+ bl FUN_02018744
+ mov r1, #0x0
+ str r1, [sp, #0x0]
+ ldr r0, [r4, #0x0]
+ ldr r2, _020896D4 ; =0x000001E2
+ str r0, [sp, #0x4]
+ ldr r0, [r4, #0x14]
+ mov r3, #0x2
+ bl FUN_0200CD68
+ mov r1, #0x0
+ str r1, [sp, #0x0]
+ ldr r0, [r4, #0x0]
+ ldr r2, _020896D8 ; =0x000001D9
+ str r0, [sp, #0x4]
+ ldr r0, [r4, #0x14]
+ mov r3, #0x3
+ bl FUN_0200CB00
+ ldr r2, [r4, #0x0]
+ mov r0, #0x0
+ mov r1, #0x20
+ bl FUN_02002ED0
+ mov r0, #0x0
+ ldr r3, [r4, #0x0]
+ mov r1, #0x20
+ add r2, r0, #0x0
+ bl FUN_02017F18
+ ldr r1, _020896DC ; =0x00006C21
+ mov r0, #0x0
+ bl FUN_02017FE4
+ ldr r1, _020896DC ; =0x00006C21
+ mov r0, #0x4
+ bl FUN_02017FE4
+ add sp, #0x5c
+ pop {r4-r5, pc}
+ .balign 4
+_020896C8: .word 0x020FF340
+_020896CC: .word 0x020FF314
+_020896D0: .word 0x020FF324
+_020896D4: .word 0x000001E2
+_020896D8: .word 0x000001D9
+_020896DC: .word 0x00006C21
+
+ thumb_func_start FUN_020896E0
+FUN_020896E0: ; 0x020896E0
+ push {r4, lr}
+ add r4, r0, #0x0
+ mov r0, #0x0
+ add r1, r0, #0x0
+ bl FUN_0201797C
+ mov r0, #0x1
+ mov r1, #0x0
+ bl FUN_0201797C
+ mov r0, #0x2
+ mov r1, #0x0
+ bl FUN_0201797C
+ mov r0, #0x3
+ mov r1, #0x0
+ bl FUN_0201797C
+ mov r0, #0x4
+ mov r1, #0x0
+ bl FUN_0201797C
+ mov r0, #0x5
+ mov r1, #0x0
+ bl FUN_0201797C
+ mov r0, #0x6
+ mov r1, #0x0
+ bl FUN_0201797C
+ mov r0, #0x7
+ mov r1, #0x0
+ bl FUN_0201797C
+ ldr r0, [r4, #0x14]
+ mov r1, #0x0
+ bl FUN_020178A0
+ ldr r0, [r4, #0x14]
+ bl FUN_02016A18
+ pop {r4, pc}
+
+ thumb_func_start FUN_02089734
+FUN_02089734: ; 0x02089734
+ push {r4, lr}
+ sub sp, #0x8
+ add r4, r0, #0x0
+ ldr r3, [r4, #0x0]
+ mov r0, #0x1
+ mov r1, #0x1a
+ mov r2, #0x4
+ bl FUN_0200A86C
+ str r0, [r4, #0x18]
+ bl FUN_0201BD5C
+ mov r0, #0x0
+ str r0, [r4, #0x8]
+ add r1, r4, #0x0
+ ldr r0, [r4, #0x14]
+ ldr r2, _02089778 ; =0x020FF304
+ add r1, #0x1c
+ bl FUN_02019150
+ mov r0, #0xd8
+ str r0, [sp, #0x0]
+ mov r0, #0x20
+ mov r2, #0x0
+ add r4, #0x1c
+ str r0, [sp, #0x4]
+ add r0, r4, #0x0
+ mov r1, #0xf
+ add r3, r2, #0x0
+ bl FUN_020196F4
+ add sp, #0x8
+ pop {r4, pc}
+ nop
+_02089778: .word 0x020FF304
+
+ thumb_func_start FUN_0208977C
+FUN_0208977C: ; 0x0208977C
+ push {r4, lr}
+ add r4, r0, #0x0
+ add r0, #0x1c
+ bl FUN_02019178
+ ldr r0, [r4, #0x18]
+ bl FUN_0200A8B8
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02089790
+FUN_02089790: ; 0x02089790
+ push {r3-r5, lr}
+ sub sp, #0x8
+ add r4, r0, #0x0
+ ldr r1, [r4, #0x4]
+ mov r5, #0x0
+ cmp r1, #0x6
+ bhi _02089888
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #0x6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_020897AA: ; jump table (using 16-bit offset)
+ .short _020897B8 - _020897AA - 2; case 0
+ .short _020897E2 - _020897AA - 2; case 1
+ .short _02089802 - _020897AA - 2; case 2
+ .short _0208982C - _020897AA - 2; case 3
+ .short _0208984C - _020897AA - 2; case 4
+ .short _0208986C - _020897AA - 2; case 5
+ .short _0208987E - _020897AA - 2; case 6
+_020897B8:
+ add r1, r5, #0x0
+ mov r2, #0x1
+ mov r3, #0x4
+ bl FUN_0208989C
+ cmp r0, #0x1
+ bne _02089888
+ mov r0, #0x1
+ str r0, [sp, #0x0]
+ ldr r0, [r4, #0x0]
+ ldr r1, _02089890 ; =0x020FF30C
+ str r0, [sp, #0x4]
+ ldr r0, [r4, #0x14]
+ ldr r2, _02089894 ; =0x000001D9
+ mov r3, #0x3
+ bl FUN_020020EC
+ str r0, [r4, #0x2c]
+ mov r0, #0x1
+ str r0, [r4, #0x4]
+ b _02089888
+_020897E2:
+ ldr r0, [r4, #0x2c]
+ ldr r1, [r4, #0x0]
+ bl FUN_020021AC
+ cmp r0, #0x0
+ beq _020897F6
+ sub r1, r5, #0x2
+ cmp r0, r1
+ beq _020897FC
+ b _02089888
+_020897F6:
+ mov r0, #0x2
+ str r0, [r4, #0x4]
+ b _02089888
+_020897FC:
+ mov r0, #0x6
+ str r0, [r4, #0x4]
+ b _02089888
+_02089802:
+ mov r1, #0x1
+ add r2, r1, #0x0
+ mov r3, #0x4
+ bl FUN_0208989C
+ cmp r0, #0x1
+ bne _02089888
+ mov r0, #0x1
+ str r0, [sp, #0x0]
+ ldr r0, [r4, #0x0]
+ ldr r1, _02089890 ; =0x020FF30C
+ str r0, [sp, #0x4]
+ ldr r0, [r4, #0x14]
+ ldr r2, _02089894 ; =0x000001D9
+ mov r3, #0x3
+ bl FUN_020020EC
+ str r0, [r4, #0x2c]
+ mov r0, #0x3
+ str r0, [r4, #0x4]
+ b _02089888
+_0208982C:
+ ldr r0, [r4, #0x2c]
+ ldr r1, [r4, #0x0]
+ bl FUN_020021AC
+ cmp r0, #0x0
+ beq _02089840
+ sub r1, r5, #0x2
+ cmp r0, r1
+ beq _02089846
+ b _02089888
+_02089840:
+ mov r0, #0x4
+ str r0, [r4, #0x4]
+ b _02089888
+_02089846:
+ mov r0, #0x6
+ str r0, [r4, #0x4]
+ b _02089888
+_0208984C:
+ mov r1, #0x2
+ mov r2, #0x1
+ add r3, r5, #0x0
+ bl FUN_0208989C
+ cmp r0, #0x1
+ bne _02089888
+ add r0, r4, #0x0
+ ldr r1, _02089898 ; =0x000001E2
+ add r0, #0x1c
+ bl FUN_0200D858
+ str r0, [r4, #0x34]
+ mov r0, #0x5
+ str r0, [r4, #0x4]
+ b _02089888
+_0208986C:
+ ldr r0, [r4, #0x30]
+ bl FUN_0202263C
+ ldr r0, [r4, #0x34]
+ bl FUN_0200DBFC
+ mov r0, #0x6
+ str r0, [r4, #0x4]
+ b _02089888
+_0208987E:
+ ldr r0, [r4, #0x14]
+ add r1, r5, #0x0
+ bl FUN_02018744
+ mov r5, #0x1
+_02089888:
+ add r0, r5, #0x0
+ add sp, #0x8
+ pop {r3-r5, pc}
+ nop
+_02089890: .word 0x020FF30C
+_02089894: .word 0x000001D9
+_02089898: .word 0x000001E2
+
+ thumb_func_start FUN_0208989C
+FUN_0208989C: ; 0x0208989C
+ push {r4-r7, lr}
+ sub sp, #0xc
+ add r5, r0, #0x0
+ ldr r0, [r5, #0x8]
+ add r7, r1, #0x0
+ add r4, r3, #0x0
+ mov r6, #0x0
+ cmp r0, #0x0
+ beq _020898B8
+ cmp r0, #0x1
+ beq _02089920
+ cmp r0, #0x2
+ beq _0208993C
+ b _02089950
+_020898B8:
+ mov r0, #0xd8
+ str r0, [sp, #0x0]
+ mov r0, #0x20
+ str r0, [sp, #0x4]
+ add r0, r5, #0x0
+ add r0, #0x1c
+ mov r1, #0xf
+ add r2, r6, #0x0
+ add r3, r6, #0x0
+ bl FUN_020196F4
+ add r0, r5, #0x0
+ ldr r2, _02089958 ; =0x000001E2
+ add r0, #0x1c
+ add r1, r6, #0x0
+ mov r3, #0x2
+ bl FUN_0200D0BC
+ mov r0, #0x1
+ ldr r1, [r5, #0x0]
+ lsl r0, r0, #0xa
+ bl FUN_020219F4
+ str r0, [r5, #0x10]
+ ldr r0, [r5, #0x18]
+ ldr r2, [r5, #0x10]
+ add r1, r7, #0x0
+ bl FUN_0200A8E0
+ add r3, r6, #0x0
+ str r3, [sp, #0x0]
+ str r4, [sp, #0x4]
+ str r3, [sp, #0x8]
+ add r0, r5, #0x0
+ ldr r2, [r5, #0x10]
+ add r0, #0x1c
+ mov r1, #0x1
+ bl FUN_0201BD84
+ str r0, [r5, #0xc]
+ cmp r4, #0x0
+ bne _02089918
+ ldr r0, [r5, #0x10]
+ bl FUN_02021A20
+ ldr r0, [r5, #0x8]
+ add r0, r0, #0x1
+ str r0, [r5, #0x8]
+_02089918:
+ ldr r0, [r5, #0x8]
+ add r0, r0, #0x1
+ str r0, [r5, #0x8]
+ b _02089950
+_02089920:
+ ldr r0, [r5, #0xc]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_0201BD70
+ cmp r0, #0x0
+ bne _02089950
+ ldr r0, [r5, #0x10]
+ bl FUN_02021A20
+ ldr r0, [r5, #0x8]
+ add r0, r0, #0x1
+ str r0, [r5, #0x8]
+ b _02089950
+_0208993C:
+ cmp r2, #0x0
+ bne _0208994A
+ ldr r0, _0208995C ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #0x1
+ tst r0, r1
+ beq _02089950
+_0208994A:
+ mov r0, #0x0
+ str r0, [r5, #0x8]
+ mov r6, #0x1
+_02089950:
+ add r0, r6, #0x0
+ add sp, #0xc
+ pop {r4-r7, pc}
+ nop
+_02089958: .word 0x000001E2
+_0208995C: .word 0x021C48B8
+
+ thumb_func_start FUN_02089960
+FUN_02089960: ; 0x02089960
+ push {r3-r5, lr}
+ mov r2, #0x2
+ add r5, r0, #0x0
+ mov r0, #0x3
+ mov r1, #0x58
+ lsl r2, r2, #0x10
+ bl FUN_0201681C
+ add r0, r5, #0x0
+ mov r1, #0x3c
+ mov r2, #0x58
+ bl FUN_02006268
+ mov r1, #0x0
+ mov r2, #0x3c
+ add r4, r0, #0x0
+ blx Call_FillMemWithValue
+ mov r0, #0x58
+ str r0, [r4, #0x0]
+ mov r0, #0x0
+ str r0, [r4, #0x4]
+ add r0, r5, #0x0
+ bl FUN_0200628C
+ ldr r0, [r0, #0x8]
+ str r0, [r4, #0x34]
+ mov r0, #0x1
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_0208999C
+FUN_0208999C: ; 0x0208999C
+ push {r4-r6, lr}
+ add r5, r1, #0x0
+ bl FUN_02006278
+ ldr r1, [r5, #0x0]
+ add r6, r0, #0x0
+ mov r4, #0x0
+ cmp r1, #0x0
+ beq _020899B8
+ cmp r1, #0x1
+ beq _02089A12
+ cmp r1, #0x2
+ beq _02089A20
+ b _02089A34
+_020899B8:
+ add r0, r4, #0x0
+ add r1, r4, #0x0
+ bl FUN_0200E3A0
+ mov r0, #0x1
+ add r1, r4, #0x0
+ bl FUN_0200E3A0
+ add r0, r4, #0x0
+ add r1, r0, #0x0
+ bl FUN_02015F10
+ add r0, r4, #0x0
+ add r1, r0, #0x0
+ bl FUN_02015F34
+ bl FUN_0201E6D8
+ bl FUN_0201E740
+ mov r2, #0x1
+ lsl r2, r2, #0x1a
+ ldr r1, [r2, #0x0]
+ ldr r0, _02089A38 ; =0xFFFFE0FF
+ and r1, r0
+ str r1, [r2, #0x0]
+ ldr r2, _02089A3C ; =0x04001000
+ ldr r1, [r2, #0x0]
+ and r0, r1
+ str r0, [r2, #0x0]
+ mov r0, #0x4
+ mov r1, #0x8
+ bl FUN_0201669C
+ add r0, r6, #0x0
+ bl FUN_02089A6C
+ add r0, r6, #0x0
+ bl FUN_02089B80
+ bl FUN_0201E788
+ mov r0, #0x1
+ str r0, [r5, #0x0]
+ b _02089A34
+_02089A12:
+ bl FUN_02089BE0
+ cmp r0, #0x1
+ bne _02089A34
+ mov r0, #0x2
+ str r0, [r5, #0x0]
+ b _02089A34
+_02089A20:
+ bl FUN_02089BCC
+ add r0, r6, #0x0
+ bl FUN_02089B2C
+ add r0, r4, #0x0
+ add r1, r0, #0x0
+ bl FUN_02015F10
+ mov r4, #0x1
+_02089A34:
+ add r0, r4, #0x0
+ pop {r4-r6, pc}
+ .balign 4
+_02089A38: .word 0xFFFFE0FF
+_02089A3C: .word 0x04001000
+
+ thumb_func_start FUN_02089A40
+FUN_02089A40: ; 0x02089A40
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ bl FUN_02006278
+ ldr r4, [r0, #0x0]
+ add r0, r5, #0x0
+ bl FUN_0200627C
+ add r0, r4, #0x0
+ bl FUN_020168D0
+ ldr r0, _02089A64 ; =0x00000053
+ ldr r1, _02089A68 ; =0x0223A360
+ bl FUN_02000E7C
+ mov r0, #0x1
+ pop {r3-r5, pc}
+ nop
+_02089A64: .word 0x00000053
+_02089A68: .word 0x0223A360
+
+ thumb_func_start FUN_02089A6C
+FUN_02089A6C: ; 0x02089A6C
+ push {r4-r5, lr}
+ sub sp, #0x5c
+ ldr r5, _02089B18 ; =0x020FF3AC
+ add r4, r0, #0x0
+ add r3, sp, #0x34
+ mov r2, #0x5
+_02089A78:
+ ldmia r5!, {r0-r1}
+ stmia r3!, {r0-r1}
+ sub r2, r2, #0x1
+ bne _02089A78
+ add r0, sp, #0x34
+ bl FUN_0201E66C
+ ldr r0, [r4, #0x0]
+ bl FUN_02016B94
+ add r3, sp, #0x24
+ ldr r5, _02089B1C ; =0x020FF380
+ str r0, [r4, #0x18]
+ add r2, r3, #0x0
+ ldmia r5!, {r0-r1}
+ stmia r3!, {r0-r1}
+ ldmia r5!, {r0-r1}
+ stmia r3!, {r0-r1}
+ add r0, r2, #0x0
+ bl FUN_02016BBC
+ ldr r5, _02089B20 ; =0x020FF390
+ add r3, sp, #0x8
+ ldmia r5!, {r0-r1}
+ add r2, r3, #0x0
+ stmia r3!, {r0-r1}
+ ldmia r5!, {r0-r1}
+ stmia r3!, {r0-r1}
+ ldmia r5!, {r0-r1}
+ stmia r3!, {r0-r1}
+ ldr r0, [r5, #0x0]
+ mov r1, #0x0
+ str r0, [r3, #0x0]
+ ldr r0, [r4, #0x18]
+ add r3, r1, #0x0
+ bl FUN_02016C18
+ ldr r0, [r4, #0x18]
+ mov r1, #0x0
+ bl FUN_02018744
+ mov r1, #0x0
+ str r1, [sp, #0x0]
+ ldr r0, [r4, #0x0]
+ ldr r2, _02089B24 ; =0x000001E2
+ str r0, [sp, #0x4]
+ ldr r0, [r4, #0x18]
+ mov r3, #0x2
+ bl FUN_0200CD68
+ mov r1, #0x0
+ str r1, [sp, #0x0]
+ ldr r0, [r4, #0x0]
+ ldr r2, _02089B28 ; =0x000001D9
+ str r0, [sp, #0x4]
+ ldr r0, [r4, #0x18]
+ mov r3, #0x3
+ bl FUN_0200CB00
+ ldr r2, [r4, #0x0]
+ mov r0, #0x0
+ mov r1, #0x20
+ bl FUN_02002ED0
+ mov r0, #0x0
+ ldr r3, [r4, #0x0]
+ mov r1, #0x20
+ add r2, r0, #0x0
+ bl FUN_02017F18
+ mov r0, #0x0
+ add r1, r0, #0x0
+ bl FUN_02017FE4
+ mov r0, #0x4
+ mov r1, #0x0
+ bl FUN_02017FE4
+ add sp, #0x5c
+ pop {r4-r5, pc}
+ .balign 4
+_02089B18: .word 0x020FF3AC
+_02089B1C: .word 0x020FF380
+_02089B20: .word 0x020FF390
+_02089B24: .word 0x000001E2
+_02089B28: .word 0x000001D9
+
+ thumb_func_start FUN_02089B2C
+FUN_02089B2C: ; 0x02089B2C
+ push {r4, lr}
+ add r4, r0, #0x0
+ mov r0, #0x0
+ add r1, r0, #0x0
+ bl FUN_0201797C
+ mov r0, #0x1
+ mov r1, #0x0
+ bl FUN_0201797C
+ mov r0, #0x2
+ mov r1, #0x0
+ bl FUN_0201797C
+ mov r0, #0x3
+ mov r1, #0x0
+ bl FUN_0201797C
+ mov r0, #0x4
+ mov r1, #0x0
+ bl FUN_0201797C
+ mov r0, #0x5
+ mov r1, #0x0
+ bl FUN_0201797C
+ mov r0, #0x6
+ mov r1, #0x0
+ bl FUN_0201797C
+ mov r0, #0x7
+ mov r1, #0x0
+ bl FUN_0201797C
+ ldr r0, [r4, #0x18]
+ mov r1, #0x0
+ bl FUN_020178A0
+ ldr r0, [r4, #0x18]
+ bl FUN_02016A18
+ pop {r4, pc}
+
+ thumb_func_start FUN_02089B80
+FUN_02089B80: ; 0x02089B80
+ push {r4, lr}
+ sub sp, #0x8
+ add r4, r0, #0x0
+ ldr r2, _02089BC4 ; =0x00000167
+ ldr r3, [r4, #0x0]
+ mov r0, #0x1
+ mov r1, #0x1a
+ bl FUN_0200A86C
+ str r0, [r4, #0x1c]
+ bl FUN_0201BD5C
+ mov r0, #0x0
+ str r0, [r4, #0xc]
+ add r1, r4, #0x0
+ ldr r0, [r4, #0x18]
+ ldr r2, _02089BC8 ; =0x020FF378
+ add r1, #0x20
+ bl FUN_02019150
+ mov r0, #0xd8
+ str r0, [sp, #0x0]
+ mov r0, #0x20
+ mov r2, #0x0
+ add r4, #0x20
+ str r0, [sp, #0x4]
+ add r0, r4, #0x0
+ mov r1, #0xf
+ add r3, r2, #0x0
+ bl FUN_020196F4
+ add sp, #0x8
+ pop {r4, pc}
+ nop
+_02089BC4: .word 0x00000167
+_02089BC8: .word 0x020FF378
+
+ thumb_func_start FUN_02089BCC
+FUN_02089BCC: ; 0x02089BCC
+ push {r4, lr}
+ add r4, r0, #0x0
+ add r0, #0x20
+ bl FUN_02019178
+ ldr r0, [r4, #0x1c]
+ bl FUN_0200A8B8
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02089BE0
+FUN_02089BE0: ; 0x02089BE0
+ push {r4-r5, lr}
+ sub sp, #0xc
+ add r4, r0, #0x0
+ ldr r1, [r4, #0x4]
+ mov r5, #0x0
+ cmp r1, #0x5
+ bhi _02089CC2
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #0x6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_02089BFA: ; jump table (using 16-bit offset)
+ .short _02089C06 - _02089BFA - 2; case 0
+ .short _02089C3C - _02089BFA - 2; case 1
+ .short _02089C68 - _02089BFA - 2; case 2
+ .short _02089C76 - _02089BFA - 2; case 3
+ .short _02089CA2 - _02089BFA - 2; case 4
+ .short _02089CC0 - _02089BFA - 2; case 5
+_02089C06:
+ ldr r0, [r4, #0x34]
+ bl FUN_02022800
+ cmp r0, #0x3
+ bhi _02089CC2
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02089C1C: ; jump table (using 16-bit offset)
+ .short _02089C24 - _02089C1C - 2; case 0
+ .short _02089C24 - _02089C1C - 2; case 1
+ .short _02089C2A - _02089C1C - 2; case 2
+ .short _02089C34 - _02089C1C - 2; case 3
+_02089C24:
+ mov r0, #0x5
+ str r0, [r4, #0x4]
+ b _02089CC2
+_02089C2A:
+ add r0, r5, #0x0
+ str r0, [r4, #0x8]
+ mov r0, #0x1
+ str r0, [r4, #0x4]
+ b _02089CC2
+_02089C34:
+ mov r0, #0x1
+ str r0, [r4, #0x8]
+ str r0, [r4, #0x4]
+ b _02089CC2
+_02089C3C:
+ ldr r1, _02089CC8 ; =0x00006C21
+ add r0, r5, #0x0
+ bl FUN_02017FE4
+ ldr r1, _02089CC8 ; =0x00006C21
+ mov r0, #0x4
+ bl FUN_02017FE4
+ mov r0, #0x6
+ mov r1, #0x1
+ str r0, [sp, #0x0]
+ str r1, [sp, #0x4]
+ ldr r0, [r4, #0x0]
+ add r2, r1, #0x0
+ str r0, [sp, #0x8]
+ add r0, r5, #0x0
+ add r3, r0, #0x0
+ bl FUN_0200E1D0
+ mov r0, #0x2
+ str r0, [r4, #0x4]
+ b _02089CC2
+_02089C68:
+ bl FUN_0200E308
+ cmp r0, #0x1
+ bne _02089CC2
+ mov r0, #0x3
+ str r0, [r4, #0x4]
+ b _02089CC2
+_02089C76:
+ ldr r1, [r4, #0x8]
+ add r2, r5, #0x0
+ mov r3, #0x4
+ bl FUN_02089CCC
+ cmp r0, #0x1
+ bne _02089CC2
+ mov r0, #0x6
+ str r0, [sp, #0x0]
+ mov r0, #0x1
+ str r0, [sp, #0x4]
+ ldr r0, [r4, #0x0]
+ str r0, [sp, #0x8]
+ add r0, r5, #0x0
+ add r1, r0, #0x0
+ add r2, r0, #0x0
+ add r3, r0, #0x0
+ bl FUN_0200E1D0
+ mov r0, #0x4
+ str r0, [r4, #0x4]
+ b _02089CC2
+_02089CA2:
+ bl FUN_0200E308
+ cmp r0, #0x1
+ bne _02089CC2
+ add r0, r5, #0x0
+ add r1, r0, #0x0
+ bl FUN_02017FE4
+ mov r0, #0x4
+ add r1, r5, #0x0
+ bl FUN_02017FE4
+ mov r0, #0x5
+ str r0, [r4, #0x4]
+ b _02089CC2
+_02089CC0:
+ mov r5, #0x1
+_02089CC2:
+ add r0, r5, #0x0
+ add sp, #0xc
+ pop {r4-r5, pc}
+ .balign 4
+_02089CC8: .word 0x00006C21
+
+ thumb_func_start FUN_02089CCC
+FUN_02089CCC: ; 0x02089CCC
+ push {r4-r7, lr}
+ sub sp, #0xc
+ add r5, r0, #0x0
+ ldr r0, [r5, #0xc]
+ add r7, r1, #0x0
+ add r4, r3, #0x0
+ mov r6, #0x0
+ cmp r0, #0x0
+ beq _02089CE8
+ cmp r0, #0x1
+ beq _02089D50
+ cmp r0, #0x2
+ beq _02089D6C
+ b _02089D80
+_02089CE8:
+ mov r0, #0xd8
+ str r0, [sp, #0x0]
+ mov r0, #0x20
+ str r0, [sp, #0x4]
+ add r0, r5, #0x0
+ add r0, #0x20
+ mov r1, #0xf
+ add r2, r6, #0x0
+ add r3, r6, #0x0
+ bl FUN_020196F4
+ add r0, r5, #0x0
+ ldr r2, _02089D88 ; =0x000001E2
+ add r0, #0x20
+ add r1, r6, #0x0
+ mov r3, #0x2
+ bl FUN_0200D0BC
+ mov r0, #0x1
+ ldr r1, [r5, #0x0]
+ lsl r0, r0, #0xa
+ bl FUN_020219F4
+ str r0, [r5, #0x14]
+ ldr r0, [r5, #0x1c]
+ ldr r2, [r5, #0x14]
+ add r1, r7, #0x0
+ bl FUN_0200A8E0
+ add r3, r6, #0x0
+ str r3, [sp, #0x0]
+ str r4, [sp, #0x4]
+ str r3, [sp, #0x8]
+ add r0, r5, #0x0
+ ldr r2, [r5, #0x14]
+ add r0, #0x20
+ mov r1, #0x1
+ bl FUN_0201BD84
+ str r0, [r5, #0x10]
+ cmp r4, #0x0
+ bne _02089D48
+ ldr r0, [r5, #0x14]
+ bl FUN_02021A20
+ ldr r0, [r5, #0xc]
+ add r0, r0, #0x1
+ str r0, [r5, #0xc]
+_02089D48:
+ ldr r0, [r5, #0xc]
+ add r0, r0, #0x1
+ str r0, [r5, #0xc]
+ b _02089D80
+_02089D50:
+ ldr r0, [r5, #0x10]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_0201BD70
+ cmp r0, #0x0
+ bne _02089D80
+ ldr r0, [r5, #0x14]
+ bl FUN_02021A20
+ ldr r0, [r5, #0xc]
+ add r0, r0, #0x1
+ str r0, [r5, #0xc]
+ b _02089D80
+_02089D6C:
+ cmp r2, #0x0
+ bne _02089D7A
+ ldr r0, _02089D8C ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #0x1
+ tst r0, r1
+ beq _02089D80
+_02089D7A:
+ mov r0, #0x0
+ str r0, [r5, #0xc]
+ mov r6, #0x1
+_02089D80:
+ add r0, r6, #0x0
+ add sp, #0xc
+ pop {r4-r7, pc}
+ nop
+_02089D88: .word 0x000001E2
+_02089D8C: .word 0x021C48B8
+
+ thumb_func_start FUN_02089D90
+FUN_02089D90: ; 0x02089D90
+ push {r3-r6, lr}
+ sub sp, #0x1c
+ add r4, r0, #0x0
+ mov r0, #0x0
+ add r1, r0, #0x0
+ bl FUN_0200E3A0
+ mov r0, #0x1
+ mov r1, #0x0
+ bl FUN_0200E3A0
+ mov r0, #0x0
+ add r1, r0, #0x0
+ bl FUN_02015F10
+ mov r0, #0x0
+ add r1, r0, #0x0
+ bl FUN_02015F34
+ bl FUN_0201E6D8
+ bl FUN_0201E740
+ mov r2, #0x1
+ lsl r2, r2, #0x1a
+ ldr r1, [r2, #0x0]
+ ldr r0, _02089EF4 ; =0xFFFFE0FF
+ and r1, r0
+ str r1, [r2, #0x0]
+ ldr r2, _02089EF8 ; =0x04001000
+ ldr r1, [r2, #0x0]
+ and r0, r1
+ str r0, [r2, #0x0]
+ mov r0, #0x4
+ mov r1, #0x8
+ bl FUN_0201669C
+ ldr r0, _02089EFC ; =0x021C4918
+ mov r1, #0x0
+ strb r1, [r0, #0x5]
+ bl FUN_0201E7A0
+ ldr r3, _02089F00 ; =0x04000050
+ mov r0, #0x0
+ strh r0, [r3, #0x0]
+ ldr r2, _02089F04 ; =0x04001050
+ sub r3, #0x50
+ strh r0, [r2, #0x0]
+ ldr r1, [r3, #0x0]
+ ldr r0, _02089F08 ; =0xFFFF1FFF
+ sub r2, #0x50
+ and r1, r0
+ str r1, [r3, #0x0]
+ ldr r1, [r2, #0x0]
+ and r0, r1
+ str r0, [r2, #0x0]
+ ldr r0, _02089F0C ; =0x020FF418
+ bl FUN_0201E66C
+ add r0, r4, #0x0
+ bl FUN_02016B94
+ add r5, r0, #0x0
+ ldr r0, _02089F10 ; =0x020FF3EC
+ bl FUN_02016BBC
+ mov r1, #0x0
+ ldr r2, _02089F14 ; =0x020FF3FC
+ add r0, r5, #0x0
+ add r3, r1, #0x0
+ bl FUN_02016C18
+ add r0, r5, #0x0
+ mov r1, #0x0
+ bl FUN_02018744
+ mov r1, #0x0
+ str r1, [sp, #0x0]
+ ldr r2, _02089F18 ; =0x000001F7
+ add r0, r5, #0x0
+ mov r3, #0x2
+ str r4, [sp, #0x4]
+ bl FUN_0200CB00
+ mov r0, #0x0
+ mov r1, #0x20
+ add r2, r4, #0x0
+ bl FUN_02002ED0
+ mov r0, #0x0
+ mov r1, #0x20
+ add r2, r0, #0x0
+ add r3, r4, #0x0
+ bl FUN_02017F18
+ ldr r1, _02089F1C ; =0x00006C21
+ mov r0, #0x0
+ bl FUN_02017FE4
+ ldr r1, _02089F1C ; =0x00006C21
+ mov r0, #0x4
+ bl FUN_02017FE4
+ mov r0, #0x1
+ mov r1, #0x1a
+ mov r2, #0x5
+ add r3, r4, #0x0
+ bl FUN_0200A86C
+ add r6, r0, #0x0
+ mov r0, #0x6
+ lsl r0, r0, #0x6
+ add r1, r4, #0x0
+ bl FUN_020219F4
+ add r4, r0, #0x0
+ bl FUN_0201BD5C
+ ldr r2, _02089F20 ; =0x020FF3E4
+ add r0, r5, #0x0
+ add r1, sp, #0xc
+ bl FUN_02019150
+ mov r0, #0xd0
+ str r0, [sp, #0x0]
+ mov r0, #0x90
+ mov r2, #0x0
+ str r0, [sp, #0x4]
+ add r0, sp, #0xc
+ mov r1, #0xf
+ add r3, r2, #0x0
+ bl FUN_020196F4
+ ldr r2, _02089F18 ; =0x000001F7
+ add r0, sp, #0xc
+ mov r1, #0x0
+ mov r3, #0x2
+ bl FUN_0200CCA4
+ add r0, r6, #0x0
+ mov r1, #0x0
+ add r2, r4, #0x0
+ bl FUN_0200A8E0
+ mov r1, #0x0
+ str r1, [sp, #0x0]
+ str r1, [sp, #0x4]
+ add r0, sp, #0xc
+ add r2, r4, #0x0
+ add r3, r1, #0x0
+ str r1, [sp, #0x8]
+ bl FUN_0201BD84
+ add r0, r4, #0x0
+ bl FUN_02021A20
+ bl FUN_0201E788
+ mov r0, #0x0
+ bl FUN_0200E394
+ mov r0, #0x1
+ bl FUN_0200E394
+ mov r0, #0x0
+ mov r1, #0x3f
+ mov r2, #0x3
+ bl FUN_0200A274
+ mov r4, #0x1
+_02089EE4:
+ bl FUN_02000FE8
+ add r0, r4, #0x0
+ add r1, r4, #0x0
+ blx OS_WaitIrq
+ b _02089EE4
+ nop
+_02089EF4: .word 0xFFFFE0FF
+_02089EF8: .word 0x04001000
+_02089EFC: .word 0x021C4918
+_02089F00: .word 0x04000050
+_02089F04: .word 0x04001050
+_02089F08: .word 0xFFFF1FFF
+_02089F0C: .word 0x020FF418
+_02089F10: .word 0x020FF3EC
+_02089F14: .word 0x020FF3FC
+_02089F18: .word 0x000001F7
+_02089F1C: .word 0x00006C21
+_02089F20: .word 0x020FF3E4
+
+ thumb_func_start FUN_02089F24
+FUN_02089F24: ; 0x02089F24
+ push {r3-r6, lr}
+ sub sp, #0x1c
+ add r4, r0, #0x0
+ mov r0, #0x0
+ add r1, r0, #0x0
+ bl FUN_0200E3A0
+ mov r0, #0x1
+ mov r1, #0x0
+ bl FUN_0200E3A0
+ mov r0, #0x0
+ add r1, r0, #0x0
+ bl FUN_02015F10
+ mov r0, #0x0
+ add r1, r0, #0x0
+ bl FUN_02015F34
+ bl FUN_0201E6D8
+ bl FUN_0201E740
+ mov r2, #0x1
+ lsl r2, r2, #0x1a
+ ldr r1, [r2, #0x0]
+ ldr r0, _0208A088 ; =0xFFFFE0FF
+ and r1, r0
+ str r1, [r2, #0x0]
+ ldr r2, _0208A08C ; =0x04001000
+ ldr r1, [r2, #0x0]
+ and r0, r1
+ str r0, [r2, #0x0]
+ mov r0, #0x4
+ mov r1, #0x8
+ bl FUN_0201669C
+ ldr r0, _0208A090 ; =0x021C4918
+ mov r1, #0x0
+ strb r1, [r0, #0x5]
+ bl FUN_0201E7A0
+ ldr r3, _0208A094 ; =0x04000050
+ mov r0, #0x0
+ strh r0, [r3, #0x0]
+ ldr r2, _0208A098 ; =0x04001050
+ sub r3, #0x50
+ strh r0, [r2, #0x0]
+ ldr r1, [r3, #0x0]
+ ldr r0, _0208A09C ; =0xFFFF1FFF
+ sub r2, #0x50
+ and r1, r0
+ str r1, [r3, #0x0]
+ ldr r1, [r2, #0x0]
+ and r0, r1
+ str r0, [r2, #0x0]
+ ldr r0, _0208A0A0 ; =0x020FF418
+ bl FUN_0201E66C
+ add r0, r4, #0x0
+ bl FUN_02016B94
+ add r5, r0, #0x0
+ ldr r0, _0208A0A4 ; =0x020FF3EC
+ bl FUN_02016BBC
+ mov r1, #0x0
+ ldr r2, _0208A0A8 ; =0x020FF3FC
+ add r0, r5, #0x0
+ add r3, r1, #0x0
+ bl FUN_02016C18
+ add r0, r5, #0x0
+ mov r1, #0x0
+ bl FUN_02018744
+ mov r1, #0x0
+ str r1, [sp, #0x0]
+ ldr r2, _0208A0AC ; =0x000001F7
+ add r0, r5, #0x0
+ mov r3, #0x2
+ str r4, [sp, #0x4]
+ bl FUN_0200CB00
+ mov r0, #0x0
+ mov r1, #0x20
+ add r2, r4, #0x0
+ bl FUN_02002ED0
+ mov r0, #0x0
+ mov r1, #0x20
+ add r2, r0, #0x0
+ add r3, r4, #0x0
+ bl FUN_02017F18
+ ldr r1, _0208A0B0 ; =0x00006C21
+ mov r0, #0x0
+ bl FUN_02017FE4
+ ldr r1, _0208A0B0 ; =0x00006C21
+ mov r0, #0x4
+ bl FUN_02017FE4
+ mov r0, #0x1
+ mov r1, #0x1a
+ mov r2, #0x5
+ add r3, r4, #0x0
+ bl FUN_0200A86C
+ add r6, r0, #0x0
+ mov r0, #0x6
+ lsl r0, r0, #0x6
+ add r1, r4, #0x0
+ bl FUN_020219F4
+ add r4, r0, #0x0
+ bl FUN_0201BD5C
+ ldr r2, _0208A0B4 ; =0x020FF3E4
+ add r0, r5, #0x0
+ add r1, sp, #0xc
+ bl FUN_02019150
+ mov r0, #0xd0
+ str r0, [sp, #0x0]
+ mov r0, #0x90
+ mov r2, #0x0
+ str r0, [sp, #0x4]
+ add r0, sp, #0xc
+ mov r1, #0xf
+ add r3, r2, #0x0
+ bl FUN_020196F4
+ ldr r2, _0208A0AC ; =0x000001F7
+ add r0, sp, #0xc
+ mov r1, #0x0
+ mov r3, #0x2
+ bl FUN_0200CCA4
+ add r0, r6, #0x0
+ mov r1, #0x1
+ add r2, r4, #0x0
+ bl FUN_0200A8E0
+ mov r1, #0x0
+ str r1, [sp, #0x0]
+ str r1, [sp, #0x4]
+ add r0, sp, #0xc
+ add r2, r4, #0x0
+ add r3, r1, #0x0
+ str r1, [sp, #0x8]
+ bl FUN_0201BD84
+ add r0, r4, #0x0
+ bl FUN_02021A20
+ bl FUN_0201E788
+ mov r0, #0x0
+ bl FUN_0200E394
+ mov r0, #0x1
+ bl FUN_0200E394
+ mov r0, #0x0
+ mov r1, #0x3f
+ mov r2, #0x3
+ bl FUN_0200A274
+ mov r4, #0x1
+_0208A078:
+ bl FUN_02000FE8
+ add r0, r4, #0x0
+ add r1, r4, #0x0
+ blx OS_WaitIrq
+ b _0208A078
+ nop
+_0208A088: .word 0xFFFFE0FF
+_0208A08C: .word 0x04001000
+_0208A090: .word 0x021C4918
+_0208A094: .word 0x04000050
+_0208A098: .word 0x04001050
+_0208A09C: .word 0xFFFF1FFF
+_0208A0A0: .word 0x020FF418
+_0208A0A4: .word 0x020FF3EC
+_0208A0A8: .word 0x020FF3FC
+_0208A0AC: .word 0x000001F7
+_0208A0B0: .word 0x00006C21
+_0208A0B4: .word 0x020FF3E4
+
+ thumb_func_start FUN_0208A0B8
+FUN_0208A0B8: ; 0x0208A0B8
+ push {r4-r7, lr}
+ sub sp, #0x1c
+ add r4, r0, #0x0
+ cmp r1, #0x0
+ bne _0208A0C6
+ mov r6, #0x1
+ b _0208A0C8
+_0208A0C6:
+ mov r6, #0x0
+_0208A0C8:
+ mov r0, #0x0
+ add r1, r0, #0x0
+ bl FUN_0200E3A0
+ mov r0, #0x1
+ mov r1, #0x0
+ bl FUN_0200E3A0
+ bl FUN_02015EF4
+ mov r0, #0x0
+ add r1, r0, #0x0
+ bl FUN_02015F10
+ mov r0, #0x0
+ add r1, r0, #0x0
+ bl FUN_02015F34
+ bl FUN_0201E6D8
+ bl FUN_0201E740
+ mov r2, #0x1
+ lsl r2, r2, #0x1a
+ ldr r1, [r2, #0x0]
+ ldr r0, _0208A228 ; =0xFFFFE0FF
+ and r1, r0
+ str r1, [r2, #0x0]
+ ldr r2, _0208A22C ; =0x04001000
+ ldr r1, [r2, #0x0]
+ and r0, r1
+ str r0, [r2, #0x0]
+ mov r0, #0x4
+ mov r1, #0x8
+ bl FUN_0201669C
+ ldr r0, _0208A230 ; =0x021C4918
+ mov r1, #0x0
+ strb r1, [r0, #0x5]
+ bl FUN_0201E7A0
+ ldr r3, _0208A234 ; =0x04000050
+ mov r1, #0x0
+ strh r1, [r3, #0x0]
+ ldr r0, _0208A238 ; =0x04001050
+ sub r3, #0x50
+ strh r1, [r0, #0x0]
+ ldr r2, [r3, #0x0]
+ ldr r1, _0208A23C ; =0xFFFF1FFF
+ sub r0, #0x50
+ and r2, r1
+ str r2, [r3, #0x0]
+ ldr r2, [r0, #0x0]
+ and r1, r2
+ str r1, [r0, #0x0]
+ ldr r0, _0208A240 ; =0x020FF474
+ bl FUN_0201E66C
+ add r0, r4, #0x0
+ bl FUN_02016B94
+ add r5, r0, #0x0
+ ldr r0, _0208A244 ; =0x020FF448
+ bl FUN_02016BBC
+ mov r1, #0x0
+ ldr r2, _0208A248 ; =0x020FF458
+ add r0, r5, #0x0
+ add r3, r1, #0x0
+ bl FUN_02016C18
+ add r0, r5, #0x0
+ mov r1, #0x0
+ bl FUN_02018744
+ mov r1, #0x0
+ str r1, [sp, #0x0]
+ ldr r2, _0208A24C ; =0x000001F7
+ add r0, r5, #0x0
+ mov r3, #0x2
+ str r4, [sp, #0x4]
+ bl FUN_0200CB00
+ mov r0, #0x0
+ mov r1, #0x20
+ add r2, r4, #0x0
+ bl FUN_02002ED0
+ mov r0, #0x0
+ mov r1, #0x20
+ add r2, r0, #0x0
+ add r3, r4, #0x0
+ bl FUN_02017F18
+ ldr r1, _0208A250 ; =0x00006C21
+ mov r0, #0x0
+ bl FUN_02017FE4
+ ldr r1, _0208A250 ; =0x00006C21
+ mov r0, #0x4
+ bl FUN_02017FE4
+ mov r0, #0x1
+ mov r1, #0x1a
+ mov r2, #0x6
+ add r3, r4, #0x0
+ bl FUN_0200A86C
+ add r7, r0, #0x0
+ mov r0, #0x6
+ lsl r0, r0, #0x6
+ add r1, r4, #0x0
+ bl FUN_020219F4
+ add r4, r0, #0x0
+ bl FUN_0201BD5C
+ ldr r2, _0208A254 ; =0x020FF440
+ add r0, r5, #0x0
+ add r1, sp, #0xc
+ bl FUN_02019150
+ mov r0, #0xd0
+ str r0, [sp, #0x0]
+ mov r0, #0x90
+ mov r2, #0x0
+ str r0, [sp, #0x4]
+ add r0, sp, #0xc
+ mov r1, #0xf
+ add r3, r2, #0x0
+ bl FUN_020196F4
+ ldr r2, _0208A24C ; =0x000001F7
+ add r0, sp, #0xc
+ mov r1, #0x0
+ mov r3, #0x2
+ bl FUN_0200CCA4
+ add r0, r7, #0x0
+ add r1, r6, #0x0
+ add r2, r4, #0x0
+ bl FUN_0200A8E0
+ mov r1, #0x0
+ str r1, [sp, #0x0]
+ str r1, [sp, #0x4]
+ add r0, sp, #0xc
+ add r2, r4, #0x0
+ add r3, r1, #0x0
+ str r1, [sp, #0x8]
+ bl FUN_0201BD84
+ add r0, r4, #0x0
+ bl FUN_02021A20
+ bl FUN_0201E788
+ mov r0, #0x0
+ bl FUN_0200E394
+ mov r0, #0x1
+ bl FUN_0200E394
+ mov r0, #0x0
+ mov r1, #0x3f
+ mov r2, #0x3
+ bl FUN_0200A274
+ mov r4, #0x1
+_0208A21A:
+ bl FUN_02000FE8
+ add r0, r4, #0x0
+ add r1, r4, #0x0
+ blx OS_WaitIrq
+ b _0208A21A
+ .balign 4
+_0208A228: .word 0xFFFFE0FF
+_0208A22C: .word 0x04001000
+_0208A230: .word 0x021C4918
+_0208A234: .word 0x04000050
+_0208A238: .word 0x04001050
+_0208A23C: .word 0xFFFF1FFF
+_0208A240: .word 0x020FF474
+_0208A244: .word 0x020FF448
+_0208A248: .word 0x020FF458
+_0208A24C: .word 0x000001F7
+_0208A250: .word 0x00006C21
+_0208A254: .word 0x020FF440
+
+ thumb_func_start FUN_0208A258
+FUN_0208A258: ; 0x0208A258
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ bl FUN_02046528
+ add r6, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_0204652C
+ add r4, r0, #0x0
+ ldr r0, _0208A290 ; =0x0000022F
+ ldrb r0, [r4, r0]
+ cmp r0, #0x10
+ beq _0208A278
+ cmp r0, #0x11
+ beq _0208A286
+ b _0208A28C
+_0208A278:
+ add r0, r6, #0x0
+ add r1, r4, #0x0
+ bl FUN_0208A294
+ ldr r1, _0208A290 ; =0x0000022F
+ strb r0, [r4, r1]
+ b _0208A28C
+_0208A286:
+ add r0, r5, #0x0
+ bl FUN_0208A2C4
+_0208A28C:
+ mov r0, #0x0
+ pop {r4-r6, pc}
+ .balign 4
+_0208A290: .word 0x0000022F
+
+ thumb_func_start FUN_0208A294
+FUN_0208A294: ; 0x0208A294
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ bl FUN_0204647C
+ cmp r0, #0x0
+ beq _0208A2A6
+ mov r0, #0x10
+ pop {r3-r5, pc}
+_0208A2A6:
+ ldr r0, [r4, #0x4]
+ bl FUN_0206E394
+ mov r1, #0x9
+ lsl r1, r1, #0x6
+ strb r0, [r4, r1]
+ ldr r0, [r4, #0x4]
+ bl FUN_02016A18
+ add r0, r5, #0x0
+ bl FUN_0204649C
+ mov r0, #0x11
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_0208A2C4
+FUN_0208A2C4: ; 0x0208A2C4
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ bl FUN_02046528
+ add r6, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_0204652C
+ add r4, r0, #0x0
+ add r0, r6, #0x0
+ bl FUN_020464A4
+ cmp r0, #0x0
+ beq _0208A2F6
+ mov r0, #0x1
+ bl FUN_021D7CA4
+ ldr r1, _0208A2F8 ; =0x0223D4AD
+ add r0, r5, #0x0
+ add r2, r4, #0x0
+ bl FUN_020463EC
+ ldr r0, _0208A2FC ; =0x0000022F
+ mov r1, #0x12
+ strb r1, [r4, r0]
+_0208A2F6:
+ pop {r4-r6, pc}
+ .balign 4
+_0208A2F8: .word 0x0223D4AD
+_0208A2FC: .word 0x0000022F
+
+ thumb_func_start FUN_0208A300
+FUN_0208A300: ; 0x0208A300
+ push {r3, lr}
+ mov r1, #0x8
+ bl FUN_02016998
+ mov r1, #0x0
+ strb r1, [r0, #0x0]
+ strb r1, [r0, #0x1]
+ strb r1, [r0, #0x2]
+ strb r1, [r0, #0x3]
+ strb r1, [r0, #0x4]
+ strb r1, [r0, #0x5]
+ strb r1, [r0, #0x6]
+ strb r1, [r0, #0x7]
+ mov r1, #0x2
+ str r1, [r0, #0x4]
+ pop {r3, pc}
+
+ thumb_func_start FUN_0208A320
+FUN_0208A320: ; 0x0208A320
+ ldr r3, _0208A324 ; =FUN_02016A18
+ bx r3
+ .balign 4
+_0208A324: .word FUN_02016A18
+
+ thumb_func_start FUN_0208A328
+FUN_0208A328: ; 0x0208A328
+ ldr r0, [r0, #0x0]
+ bx lr
+
+ thumb_func_start FUN_0208A32C
+FUN_0208A32C: ; 0x0208A32C
+ str r1, [r0, #0x0]
+ bx lr
+
+ thumb_func_start FUN_0208A330
+FUN_0208A330: ; 0x0208A330
+ ldr r0, [r0, #0x4]
+ bx lr
+
+ thumb_func_start FUN_0208A334
+FUN_0208A334: ; 0x0208A334
+ str r1, [r0, #0x4]
+ bx lr
+
+ thumb_func_start FUN_0208A338
+FUN_0208A338: ; 0x0208A338
+ push {r4-r6, lr}
+ add r6, r0, #0x0
+ bl FUN_02046528
+ add r5, r0, #0x0
+ mov r0, #0x20
+ mov r1, #0x6c
+ bl FUN_02016998
+ add r4, r0, #0x0
+ mov r0, #0x19
+ str r5, [r4, #0x0]
+ lsl r0, r0, #0x4
+ mov r1, #0x20
+ bl FUN_020219F4
+ str r0, [r4, #0x4]
+ mov r0, #0x19
+ lsl r0, r0, #0x4
+ mov r1, #0x20
+ bl FUN_020219F4
+ str r0, [r4, #0x8]
+ mov r0, #0x20
+ bl FUN_0200AA80
+ str r0, [r4, #0xc]
+ ldr r2, _0208A3C0 ; =0x00000171
+ mov r0, #0x1
+ mov r1, #0x1a
+ mov r3, #0x20
+ bl FUN_0200A86C
+ str r0, [r4, #0x10]
+ mov r0, #0x20
+ bl FUN_02013690
+ str r0, [r4, #0x14]
+ ldr r2, [r4, #0x0]
+ mov r0, #0x2
+ ldr r2, [r2, #0xc]
+ mov r1, #0x0
+ mov r3, #0x20
+ bl FUN_02085338
+ str r0, [r4, #0x50]
+ bl FUN_020853DC
+ add r0, r4, #0x0
+ add r0, #0x18
+ bl FUN_0201901C
+ add r0, r4, #0x0
+ add r0, #0x28
+ bl FUN_0201901C
+ add r0, r4, #0x0
+ add r0, #0x38
+ bl FUN_0201901C
+ mov r0, #0x0
+ str r0, [r4, #0x54]
+ ldr r1, _0208A3C4 ; =FUN_0208A458
+ add r0, r6, #0x0
+ add r2, r4, #0x0
+ bl FUN_0204640C
+ pop {r4-r6, pc}
+ .balign 4
+_0208A3C0: .word 0x00000171
+_0208A3C4: .word FUN_0208A458
+
+ thumb_func_start FUN_0208A3C8
+FUN_0208A3C8: ; 0x0208A3C8
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r0, [r4, #0x50]
+ bl FUN_020853A8
+ ldr r0, [r4, #0x14]
+ bl FUN_020136C0
+ ldr r0, [r4, #0x4]
+ bl FUN_02021A20
+ ldr r0, [r4, #0x8]
+ bl FUN_02021A20
+ ldr r0, [r4, #0xc]
+ bl FUN_0200AB18
+ ldr r0, [r4, #0x10]
+ bl FUN_0200A8B8
+ add r0, r4, #0x0
+ bl FUN_0208A400
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0208A400
+FUN_0208A400: ; 0x0208A400
+ push {r4, lr}
+ add r4, r0, #0x0
+ add r0, #0x18
+ bl FUN_02019048
+ cmp r0, #0x0
+ beq _0208A41E
+ add r0, r4, #0x0
+ add r0, #0x18
+ bl FUN_02019178
+ add r0, r4, #0x0
+ add r0, #0x18
+ bl FUN_0201901C
+_0208A41E:
+ add r0, r4, #0x0
+ add r0, #0x28
+ bl FUN_02019048
+ cmp r0, #0x0
+ beq _0208A43A
+ add r0, r4, #0x0
+ add r0, #0x28
+ bl FUN_02019178
+ add r0, r4, #0x0
+ add r0, #0x28
+ bl FUN_0201901C
+_0208A43A:
+ add r0, r4, #0x0
+ add r0, #0x38
+ bl FUN_02019048
+ cmp r0, #0x0
+ beq _0208A456
+ add r0, r4, #0x0
+ add r0, #0x38
+ bl FUN_02019178
+ add r4, #0x38
+ add r0, r4, #0x0
+ bl FUN_0201901C
+_0208A456:
+ pop {r4, pc}
+
+ thumb_func_start FUN_0208A458
+FUN_0208A458: ; 0x0208A458
+ push {r3-r5, lr}
+ bl FUN_0204652C
+ add r4, r0, #0x0
+ ldr r1, [r4, #0x54]
+ cmp r1, #0xd
+ bhi _0208A4A4
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #0x6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_0208A472: ; jump table (using 16-bit offset)
+ .short _0208A48E - _0208A472 - 2; case 0
+ .short _0208A49C - _0208A472 - 2; case 1
+ .short _0208A4B8 - _0208A472 - 2; case 2
+ .short _0208A556 - _0208A472 - 2; case 3
+ .short _0208A566 - _0208A472 - 2; case 4
+ .short _0208A57A - _0208A472 - 2; case 5
+ .short _0208A5A6 - _0208A472 - 2; case 6
+ .short _0208A5BE - _0208A472 - 2; case 7
+ .short _0208A5D4 - _0208A472 - 2; case 8
+ .short _0208A614 - _0208A472 - 2; case 9
+ .short _0208A628 - _0208A472 - 2; case 10
+ .short _0208A694 - _0208A472 - 2; case 11
+ .short _0208A6A2 - _0208A472 - 2; case 12
+ .short _0208A6C0 - _0208A472 - 2; case 13
+_0208A48E:
+ mov r1, #0x0
+ add r2, r1, #0x0
+ bl FUN_0208A6D4
+ mov r0, #0x1
+ str r0, [r4, #0x54]
+ b _0208A6C8
+_0208A49C:
+ bl FUN_0208A750
+ cmp r0, #0x0
+ bne _0208A4A6
+_0208A4A4:
+ b _0208A6C8
+_0208A4A6:
+ add r0, r4, #0x0
+ bl FUN_0208A760
+ add r0, r4, #0x0
+ bl FUN_0208A77C
+ mov r0, #0x2
+ str r0, [r4, #0x54]
+ b _0208A6C8
+_0208A4B8:
+ bl FUN_0208A8DC
+ mov r1, #0x0
+ mvn r1, r1
+ str r0, [r4, #0x64]
+ cmp r0, r1
+ beq _0208A5B0
+ add r0, r4, #0x0
+ bl FUN_0208A820
+ ldr r0, [r4, #0x64]
+ cmp r0, #0x4
+ bhi _0208A5B0
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0208A4DE: ; jump table (using 16-bit offset)
+ .short _0208A4E8 - _0208A4DE - 2; case 0
+ .short _0208A502 - _0208A4DE - 2; case 1
+ .short _0208A51C - _0208A4DE - 2; case 2
+ .short _0208A536 - _0208A4DE - 2; case 3
+ .short _0208A550 - _0208A4DE - 2; case 4
+_0208A4E8:
+ ldr r0, [r4, #0x0]
+ mov r1, #0x0
+ ldr r0, [r0, #0xc]
+ bl FUN_0202A5F4
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ add r0, #0x48
+ bl FUN_02013960
+ mov r0, #0x3
+ str r0, [r4, #0x54]
+ b _0208A6C8
+_0208A502:
+ ldr r0, [r4, #0x0]
+ mov r1, #0x1
+ ldr r0, [r0, #0xc]
+ bl FUN_0202A5F4
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ add r0, #0x48
+ bl FUN_02013960
+ mov r0, #0x3
+ str r0, [r4, #0x54]
+ b _0208A6C8
+_0208A51C:
+ ldr r0, [r4, #0x0]
+ mov r1, #0x2
+ ldr r0, [r0, #0xc]
+ bl FUN_0202A5F4
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ add r0, #0x48
+ bl FUN_02013960
+ mov r0, #0x3
+ str r0, [r4, #0x54]
+ b _0208A6C8
+_0208A536:
+ ldr r0, [r4, #0x0]
+ mov r1, #0x3
+ ldr r0, [r0, #0xc]
+ bl FUN_0202A5F4
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ add r0, #0x48
+ bl FUN_02013960
+ mov r0, #0x3
+ str r0, [r4, #0x54]
+ b _0208A6C8
+_0208A550:
+ mov r0, #0xb
+ str r0, [r4, #0x54]
+ b _0208A6C8
+_0208A556:
+ ldr r1, [r4, #0x64]
+ mov r2, #0x0
+ add r1, r1, #0x1
+ bl FUN_0208A6D4
+ mov r0, #0x4
+ str r0, [r4, #0x54]
+ b _0208A6C8
+_0208A566:
+ bl FUN_0208A750
+ cmp r0, #0x0
+ beq _0208A5B0
+ mov r0, #0x0
+ bl FUN_021D7CA4
+ mov r0, #0x5
+ str r0, [r4, #0x54]
+ b _0208A6C8
+_0208A57A:
+ bl FUN_0200E308
+ cmp r0, #0x0
+ beq _0208A5B0
+ add r1, r4, #0x0
+ ldr r0, [r4, #0x50]
+ add r1, #0x48
+ bl FUN_020853BC
+ ldr r0, [r4, #0x50]
+ bl FUN_020853D0
+ add r0, r4, #0x0
+ bl FUN_0208A400
+ ldr r0, [r4, #0x0]
+ ldr r1, [r4, #0x50]
+ bl FUN_02037E80
+ mov r0, #0x6
+ str r0, [r4, #0x54]
+ b _0208A6C8
+_0208A5A6:
+ ldr r0, [r4, #0x0]
+ bl FUN_0204647C
+ cmp r0, #0x0
+ beq _0208A5B2
+_0208A5B0:
+ b _0208A6C8
+_0208A5B2:
+ ldr r0, [r4, #0x0]
+ bl FUN_0204649C
+ mov r0, #0x7
+ str r0, [r4, #0x54]
+ b _0208A6C8
+_0208A5BE:
+ ldr r0, [r4, #0x0]
+ bl FUN_020464A4
+ cmp r0, #0x0
+ beq _0208A6C8
+ mov r0, #0x1
+ bl FUN_021D7CA4
+ mov r0, #0x8
+ str r0, [r4, #0x54]
+ b _0208A6C8
+_0208A5D4:
+ bl FUN_0200E308
+ cmp r0, #0x0
+ beq _0208A6C8
+ ldr r0, [r4, #0x50]
+ bl FUN_020853E4
+ cmp r0, #0x0
+ beq _0208A5EC
+ mov r0, #0xb
+ str r0, [r4, #0x54]
+ b _0208A6C8
+_0208A5EC:
+ add r1, r4, #0x0
+ ldr r0, [r4, #0x50]
+ add r1, #0x48
+ bl FUN_020853FC
+ ldr r0, [r4, #0x0]
+ add r2, r4, #0x0
+ ldr r0, [r0, #0xc]
+ ldr r1, [r4, #0x64]
+ add r2, #0x48
+ bl FUN_0202A5D4
+ add r0, r4, #0x0
+ mov r1, #0x6
+ mov r2, #0x0
+ bl FUN_0208A6D4
+ mov r0, #0x9
+ str r0, [r4, #0x54]
+ b _0208A6C8
+_0208A614:
+ bl FUN_0208A750
+ cmp r0, #0x0
+ beq _0208A6C8
+ add r0, r4, #0x0
+ bl FUN_0208A82C
+ mov r0, #0xa
+ str r0, [r4, #0x54]
+ b _0208A6C8
+_0208A628:
+ bl FUN_0208A8DC
+ mov r1, #0x0
+ mvn r1, r1
+ str r0, [r4, #0x64]
+ cmp r0, r1
+ beq _0208A6C8
+ cmp r0, #0x0
+ beq _0208A63E
+ cmp r0, #0x1
+ b _0208A656
+_0208A63E:
+ add r0, r4, #0x0
+ bl FUN_0208A8D0
+ add r0, r4, #0x0
+ bl FUN_0208A760
+ add r0, r4, #0x0
+ bl FUN_0208A77C
+ mov r0, #0x2
+ str r0, [r4, #0x54]
+ b _0208A6C8
+_0208A656:
+ add r0, r4, #0x0
+ add r0, #0x48
+ mov r1, #0x0
+ bl FUN_02013918
+ add r5, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_0208A8D0
+ ldr r0, _0208A6CC ; =0x0000FFFF
+ cmp r5, r0
+ beq _0208A684
+ ldr r0, [r4, #0xc]
+ mov r1, #0x0
+ add r2, r5, #0x0
+ bl FUN_0200B518
+ add r0, r4, #0x0
+ mov r1, #0x8
+ mov r2, #0x1
+ bl FUN_0208A6D4
+ b _0208A68E
+_0208A684:
+ add r0, r4, #0x0
+ mov r1, #0x7
+ mov r2, #0x0
+ bl FUN_0208A6D4
+_0208A68E:
+ mov r0, #0xc
+ str r0, [r4, #0x54]
+ b _0208A6C8
+_0208A694:
+ mov r1, #0x5
+ mov r2, #0x0
+ bl FUN_0208A6D4
+ mov r0, #0xc
+ str r0, [r4, #0x54]
+ b _0208A6C8
+_0208A6A2:
+ bl FUN_0208A750
+ cmp r0, #0x0
+ beq _0208A6C8
+ ldr r0, _0208A6D0 ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #0xf3
+ tst r0, r1
+ beq _0208A6C8
+ add r0, r4, #0x0
+ bl FUN_0208A760
+ mov r0, #0xd
+ str r0, [r4, #0x54]
+ b _0208A6C8
+_0208A6C0:
+ bl FUN_0208A3C8
+ mov r0, #0x1
+ pop {r3-r5, pc}
+_0208A6C8:
+ mov r0, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+_0208A6CC: .word 0x0000FFFF
+_0208A6D0: .word 0x021C48B8
+
+ thumb_func_start FUN_0208A6D4
+FUN_0208A6D4: ; 0x0208A6D4
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r5, #0x0
+ add r4, #0x18
+ cmp r2, #0x0
+ ldr r0, [r5, #0x10]
+ beq _0208A6F4
+ ldr r2, [r5, #0x4]
+ bl FUN_0200A8E0
+ ldr r0, [r5, #0xc]
+ ldr r1, [r5, #0x8]
+ ldr r2, [r5, #0x4]
+ bl FUN_0200B7B8
+ b _0208A6FA
+_0208A6F4:
+ ldr r2, [r5, #0x8]
+ bl FUN_0200A8E0
+_0208A6FA:
+ add r0, r4, #0x0
+ bl FUN_02019048
+ cmp r0, #0x0
+ bne _0208A722
+ ldr r0, [r5, #0x0]
+ add r1, r4, #0x0
+ ldr r0, [r0, #0x8]
+ mov r2, #0x3
+ bl FUN_020545B8
+ ldr r0, [r5, #0x0]
+ ldr r0, [r0, #0xc]
+ bl LoadPlayerDataAddress
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_02054608
+ b _0208A734
+_0208A722:
+ add r0, r4, #0x0
+ bl FUN_0205464C
+ ldr r2, _0208A74C ; =0x000003E2
+ add r0, r4, #0x0
+ mov r1, #0x0
+ mov r3, #0xa
+ bl FUN_0200D0BC
+_0208A734:
+ ldr r0, [r5, #0x0]
+ ldr r0, [r0, #0xc]
+ bl LoadPlayerDataAddress
+ add r2, r0, #0x0
+ ldr r1, [r5, #0x8]
+ add r0, r4, #0x0
+ mov r3, #0x1
+ bl FUN_02054658
+ str r0, [r5, #0x58]
+ pop {r3-r5, pc}
+ .balign 4
+_0208A74C: .word 0x000003E2
+
+ thumb_func_start FUN_0208A750
+FUN_0208A750: ; 0x0208A750
+ ldr r0, [r0, #0x58]
+ ldr r3, _0208A75C ; =FUN_020546C8
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bx r3
+ nop
+_0208A75C: .word FUN_020546C8
+
+ thumb_func_start FUN_0208A760
+FUN_0208A760: ; 0x0208A760
+ push {r4, lr}
+ add r4, r0, #0x0
+ add r4, #0x18
+ add r0, r4, #0x0
+ bl FUN_02019048
+ cmp r0, #0x0
+ beq _0208A778
+ add r0, r4, #0x0
+ mov r1, #0x0
+ bl FUN_0200D0E0
+_0208A778:
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0208A77C
+FUN_0208A77C: ; 0x0208A77C
+ push {r4-r7, lr}
+ sub sp, #0x14
+ add r5, r0, #0x0
+ add r7, r5, #0x0
+ add r7, #0x28
+ add r0, r7, #0x0
+ bl FUN_02019048
+ cmp r0, #0x0
+ bne _0208A808
+ mov r0, #0x0
+ str r0, [sp, #0x0]
+ mov r0, #0x20
+ str r0, [sp, #0x4]
+ ldr r0, [r5, #0x0]
+ mov r1, #0x3
+ ldr r0, [r0, #0x8]
+ mov r2, #0xa5
+ mov r3, #0xb
+ bl FUN_0200CB00
+ mov r1, #0xd
+ str r1, [sp, #0x0]
+ mov r0, #0xe
+ str r0, [sp, #0x4]
+ mov r0, #0xa
+ str r0, [sp, #0x8]
+ str r1, [sp, #0xc]
+ mov r0, #0x1
+ str r0, [sp, #0x10]
+ ldr r0, [r5, #0x0]
+ add r1, r7, #0x0
+ ldr r0, [r0, #0x8]
+ mov r2, #0x3
+ mov r3, #0x11
+ bl FUN_02019064
+ add r0, r7, #0x0
+ mov r1, #0xf
+ bl FUN_02019620
+ mov r6, #0x0
+ add r4, r6, #0x0
+_0208A7D2:
+ add r1, r6, #0x0
+ ldr r0, [r5, #0x10]
+ ldr r2, [r5, #0x8]
+ add r1, #0x9
+ bl FUN_0200A8E0
+ str r4, [sp, #0x0]
+ mov r0, #0xff
+ str r0, [sp, #0x4]
+ mov r0, #0x0
+ str r0, [sp, #0x8]
+ ldr r2, [r5, #0x8]
+ add r0, r7, #0x0
+ mov r1, #0x0
+ mov r3, #0xc
+ bl FUN_0201BD84
+ add r6, r6, #0x1
+ add r4, #0x10
+ cmp r6, #0x5
+ blt _0208A7D2
+ mov r2, #0x0
+ ldr r0, [r5, #0x14]
+ add r1, r7, #0x0
+ add r3, r2, #0x0
+ bl FUN_020136F8
+_0208A808:
+ str r7, [r5, #0x68]
+ mov r1, #0x0
+ str r1, [r5, #0x5c]
+ mov r0, #0x5
+ str r0, [r5, #0x60]
+ add r0, r7, #0x0
+ mov r2, #0xa5
+ mov r3, #0xb
+ bl FUN_0200CCA4
+ add sp, #0x14
+ pop {r4-r7, pc}
+
+ thumb_func_start FUN_0208A820
+FUN_0208A820: ; 0x0208A820
+ ldr r3, _0208A828 ; =FUN_0200CCF8
+ add r0, #0x28
+ mov r1, #0x1
+ bx r3
+ .balign 4
+_0208A828: .word FUN_0200CCF8
+
+ thumb_func_start FUN_0208A82C
+FUN_0208A82C: ; 0x0208A82C
+ push {r4-r7, lr}
+ sub sp, #0x14
+ add r5, r0, #0x0
+ add r7, r5, #0x0
+ add r7, #0x38
+ add r0, r7, #0x0
+ bl FUN_02019048
+ cmp r0, #0x0
+ bne _0208A8B8
+ mov r0, #0x0
+ str r0, [sp, #0x0]
+ mov r0, #0x20
+ str r0, [sp, #0x4]
+ ldr r0, [r5, #0x0]
+ mov r1, #0x3
+ ldr r0, [r0, #0x8]
+ mov r2, #0xa5
+ mov r3, #0xb
+ bl FUN_0200CB00
+ mov r1, #0xd
+ str r1, [sp, #0x0]
+ mov r0, #0x6
+ str r0, [sp, #0x4]
+ mov r0, #0x4
+ str r0, [sp, #0x8]
+ str r1, [sp, #0xc]
+ mov r0, #0x8d
+ str r0, [sp, #0x10]
+ ldr r0, [r5, #0x0]
+ add r1, r7, #0x0
+ ldr r0, [r0, #0x8]
+ mov r2, #0x3
+ mov r3, #0x19
+ bl FUN_02019064
+ add r0, r7, #0x0
+ mov r1, #0xf
+ bl FUN_02019620
+ mov r6, #0x0
+ add r4, r6, #0x0
+_0208A882:
+ add r1, r6, #0x0
+ ldr r0, [r5, #0x10]
+ ldr r2, [r5, #0x8]
+ add r1, #0xe
+ bl FUN_0200A8E0
+ str r4, [sp, #0x0]
+ mov r0, #0xff
+ str r0, [sp, #0x4]
+ mov r0, #0x0
+ str r0, [sp, #0x8]
+ ldr r2, [r5, #0x8]
+ add r0, r7, #0x0
+ mov r1, #0x0
+ mov r3, #0xc
+ bl FUN_0201BD84
+ add r6, r6, #0x1
+ add r4, #0x10
+ cmp r6, #0x2
+ blt _0208A882
+ mov r2, #0x0
+ ldr r0, [r5, #0x14]
+ add r1, r7, #0x0
+ add r3, r2, #0x0
+ bl FUN_020136F8
+_0208A8B8:
+ str r7, [r5, #0x68]
+ mov r1, #0x0
+ str r1, [r5, #0x5c]
+ mov r0, #0x2
+ str r0, [r5, #0x60]
+ add r0, r7, #0x0
+ mov r2, #0xa5
+ mov r3, #0xb
+ bl FUN_0200CCA4
+ add sp, #0x14
+ pop {r4-r7, pc}
+
+ thumb_func_start FUN_0208A8D0
+FUN_0208A8D0: ; 0x0208A8D0
+ ldr r3, _0208A8D8 ; =FUN_0200CCF8
+ add r0, #0x38
+ mov r1, #0x1
+ bx r3
+ .balign 4
+_0208A8D8: .word FUN_0200CCF8
+
+ thumb_func_start FUN_0208A8DC
+FUN_0208A8DC: ; 0x0208A8DC
+ push {r4, lr}
+ sub sp, #0x8
+ add r4, r0, #0x0
+ ldr r0, _0208A990 ; =0x021C48B8
+ mov r1, #0x40
+ ldr r0, [r0, #0x48]
+ tst r1, r0
+ beq _0208A906
+ ldr r0, [r4, #0x5c]
+ sub r0, r0, #0x1
+ str r0, [r4, #0x5c]
+ bpl _0208A954
+ ldr r0, [r4, #0x60]
+ cmp r0, #0x2
+ ble _0208A900
+ sub r0, r0, #0x1
+ str r0, [r4, #0x5c]
+ b _0208A954
+_0208A900:
+ mov r0, #0x0
+ str r0, [r4, #0x5c]
+ b _0208A954
+_0208A906:
+ mov r1, #0x80
+ tst r1, r0
+ beq _0208A928
+ ldr r0, [r4, #0x5c]
+ add r1, r0, #0x1
+ str r1, [r4, #0x5c]
+ ldr r0, [r4, #0x60]
+ cmp r1, r0
+ blt _0208A954
+ cmp r0, #0x2
+ ble _0208A922
+ mov r0, #0x0
+ str r0, [r4, #0x5c]
+ b _0208A954
+_0208A922:
+ sub r0, r0, #0x1
+ str r0, [r4, #0x5c]
+ b _0208A954
+_0208A928:
+ mov r1, #0x1
+ tst r1, r0
+ beq _0208A93A
+ ldr r0, _0208A994 ; =0x000005DC
+ bl FUN_020054C8
+ add sp, #0x8
+ ldr r0, [r4, #0x5c]
+ pop {r4, pc}
+_0208A93A:
+ mov r1, #0x2
+ tst r0, r1
+ beq _0208A94E
+ ldr r0, _0208A994 ; =0x000005DC
+ bl FUN_020054C8
+ ldr r0, [r4, #0x60]
+ add sp, #0x8
+ sub r0, r0, #0x1
+ pop {r4, pc}
+_0208A94E:
+ add sp, #0x8
+ sub r0, r1, #0x3
+ pop {r4, pc}
+_0208A954:
+ ldr r0, [r4, #0x68]
+ mov r1, #0xc
+ str r1, [sp, #0x0]
+ ldrb r1, [r0, #0x8]
+ mov r2, #0x0
+ add r3, r2, #0x0
+ lsl r1, r1, #0x13
+ lsr r1, r1, #0x10
+ str r1, [sp, #0x4]
+ mov r1, #0xf
+ bl FUN_020196F4
+ ldr r3, [r4, #0x5c]
+ ldr r0, [r4, #0x14]
+ ldr r1, [r4, #0x68]
+ mov r2, #0x0
+ lsl r3, r3, #0x4
+ bl FUN_020136F8
+ ldr r0, [r4, #0x68]
+ bl FUN_02019548
+ ldr r0, _0208A994 ; =0x000005DC
+ bl FUN_020054C8
+ mov r0, #0x0
+ mvn r0, r0
+ add sp, #0x8
+ pop {r4, pc}
+ nop
+_0208A990: .word 0x021C48B8
+_0208A994: .word 0x000005DC
+
+ thumb_func_start FUN_0208A998
+FUN_0208A998: ; 0x0208A998
+ ldr r3, _0208A9AC ; =0x027E0000
+ ldr r1, _0208A9B0 ; =0x00003FF8
+ mov r0, #0x1
+ ldr r2, [r3, r1]
+ orr r0, r2
+ str r0, [r3, r1]
+ ldr r3, _0208A9B4 ; =MI_WaitDma
+ mov r0, #0x3
+ bx r3
+ nop
+_0208A9AC: .word 0x027E0000
+_0208A9B0: .word 0x00003FF8
+_0208A9B4: .word MI_WaitDma
+
+ thumb_func_start FUN_0208A9B8
+FUN_0208A9B8: ; 0x0208A9B8
+ push {r4-r7, lr}
+ sub sp, #0x24
+ ldr r0, _0208ABC8 ; =0x021C8C58
+ ldr r1, [r0, #0x0]
+ cmp r1, #0x1
+ bne _0208A9C6
+ b _0208ABC4
+_0208A9C6:
+ mov r1, #0x1
+ str r1, [r0, #0x0]
+ mov r0, #0x0
+ blx OS_GetInitArenaHi
+ add r1, r0, #0x0
+ mov r0, #0x0
+ blx OS_SetArenaHi
+ mov r0, #0x0
+ blx OS_GetInitArenaLo
+ add r1, r0, #0x0
+ mov r0, #0x0
+ blx OS_SetArenaLo
+ mov r1, #0x1
+ ldr r0, _0208ABCC ; =0x020FF4A4
+ add r2, r1, #0x0
+ mov r3, #0x0
+ bl FUN_020166C8
+ mov r0, #0x0
+ add r1, r0, #0x0
+ bl FUN_0200E3A0
+ mov r0, #0x1
+ mov r1, #0x0
+ bl FUN_0200E3A0
+ mov r0, #0x1
+ blx OS_DisableIrqMask
+ ldr r1, _0208ABD0 ; =FUN_0208A998
+ mov r0, #0x1
+ blx OS_SetIrqFunction
+ mov r0, #0x1
+ blx OS_EnableIrqMask
+ mov r0, #0x0
+ add r1, r0, #0x0
+ bl FUN_02015F10
+ mov r0, #0x0
+ add r1, r0, #0x0
+ bl FUN_02015F34
+ bl FUN_0201E6D8
+ bl FUN_0201E740
+ mov r2, #0x1
+ lsl r2, r2, #0x1a
+ ldr r1, [r2, #0x0]
+ ldr r0, _0208ABD4 ; =0xFFFFE0FF
+ and r1, r0
+ str r1, [r2, #0x0]
+ ldr r2, _0208ABD8 ; =0x04001000
+ ldr r1, [r2, #0x0]
+ and r0, r1
+ str r0, [r2, #0x0]
+ mov r0, #0x4
+ mov r1, #0x8
+ bl FUN_0201669C
+ ldr r0, _0208ABDC ; =0x021C4918
+ mov r1, #0x0
+ strb r1, [r0, #0x5]
+ bl FUN_0201E7A0
+ ldr r3, _0208ABE0 ; =0x04000050
+ mov r0, #0x0
+ strh r0, [r3, #0x0]
+ ldr r2, _0208ABE4 ; =0x04001050
+ sub r3, #0x50
+ strh r0, [r2, #0x0]
+ ldr r1, [r3, #0x0]
+ ldr r0, _0208ABE8 ; =0xFFFF1FFF
+ sub r2, #0x50
+ and r1, r0
+ str r1, [r3, #0x0]
+ ldr r1, [r2, #0x0]
+ and r0, r1
+ str r0, [r2, #0x0]
+ ldr r0, _0208ABEC ; =0x020FF4D8
+ bl FUN_0201E66C
+ mov r0, #0x0
+ bl FUN_02016B94
+ str r0, [sp, #0x10]
+ ldr r0, _0208ABF0 ; =0x020FF4AC
+ bl FUN_02016BBC
+ mov r1, #0x0
+ ldr r0, [sp, #0x10]
+ ldr r2, _0208ABF4 ; =0x020FF4BC
+ add r3, r1, #0x0
+ bl FUN_02016C18
+ ldr r0, [sp, #0x10]
+ mov r1, #0x0
+ bl FUN_02018744
+ mov r1, #0x0
+ str r1, [sp, #0x0]
+ ldr r0, [sp, #0x10]
+ ldr r2, _0208ABF8 ; =0x000001F7
+ mov r3, #0x2
+ str r1, [sp, #0x4]
+ bl FUN_0200CB00
+ mov r0, #0x0
+ mov r1, #0x20
+ add r2, r0, #0x0
+ bl FUN_02002ED0
+ mov r0, #0x0
+ mov r1, #0x20
+ add r2, r0, #0x0
+ add r3, r0, #0x0
+ bl FUN_02017F18
+ ldr r1, _0208ABFC ; =0x00006C21
+ mov r0, #0x0
+ bl FUN_02017FE4
+ ldr r1, _0208ABFC ; =0x00006C21
+ mov r0, #0x4
+ bl FUN_02017FE4
+ mov r0, #0x1
+ mov r1, #0x1a
+ mov r2, #0xc8
+ mov r3, #0x0
+ bl FUN_0200A86C
+ str r0, [sp, #0xc]
+ mov r0, #0x6
+ lsl r0, r0, #0x6
+ mov r1, #0x0
+ bl FUN_020219F4
+ add r4, r0, #0x0
+ bl FUN_0201BD5C
+ ldr r0, [sp, #0x10]
+ ldr r2, _0208AC00 ; =0x020FF49C
+ add r1, sp, #0x14
+ bl FUN_02019150
+ mov r0, #0xd0
+ str r0, [sp, #0x0]
+ mov r0, #0x90
+ mov r2, #0x0
+ str r0, [sp, #0x4]
+ add r0, sp, #0x14
+ mov r1, #0xf
+ add r3, r2, #0x0
+ bl FUN_020196F4
+ ldr r2, _0208ABF8 ; =0x000001F7
+ add r0, sp, #0x14
+ mov r1, #0x0
+ mov r3, #0x2
+ bl FUN_0200CCA4
+ ldr r0, [sp, #0xc]
+ mov r1, #0x3
+ add r2, r4, #0x0
+ bl FUN_0200A8E0
+ mov r1, #0x0
+ str r1, [sp, #0x0]
+ str r1, [sp, #0x4]
+ add r0, sp, #0x14
+ add r2, r4, #0x0
+ add r3, r1, #0x0
+ str r1, [sp, #0x8]
+ bl FUN_0201BD84
+ add r0, r4, #0x0
+ bl FUN_02021A20
+ bl FUN_0201E788
+ mov r0, #0x0
+ bl FUN_0200E394
+ mov r0, #0x1
+ bl FUN_0200E394
+ mov r0, #0x0
+ mov r1, #0x3f
+ mov r2, #0x3
+ bl FUN_0200A274
+ bl FUN_02032DAC
+ mov r4, #0x1
+_0208AB58:
+ bl FUN_02000FE8
+ bl FUN_0202FB80
+ bl FUN_02033678
+ cmp r0, #0x0
+ bne _0208AB72
+ add r0, r4, #0x0
+ add r1, r4, #0x0
+ blx OS_WaitIrq
+ b _0208AB58
+_0208AB72:
+ ldr r5, _0208AC04 ; =0x04000130
+ ldr r4, _0208AC08 ; =0x027FFFA8
+ ldr r7, _0208AC0C ; =0x00002FFF
+ mov r6, #0x1
+_0208AB7A:
+ bl FUN_02000FE8
+ ldrh r1, [r5, #0x0]
+ ldrh r0, [r4, #0x0]
+ orr r1, r0
+ ldr r0, _0208AC0C ; =0x00002FFF
+ eor r0, r1
+ and r0, r7
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ tst r0, r6
+ bne _0208AB9C
+ mov r0, #0x1
+ add r1, r0, #0x0
+ blx OS_WaitIrq
+ b _0208AB7A
+_0208AB9C:
+ ldr r1, _0208AC10 ; =0x00007FFF
+ mov r0, #0x0
+ bl FUN_0200E3A0
+ ldr r1, _0208AC10 ; =0x00007FFF
+ mov r0, #0x1
+ bl FUN_0200E3A0
+ add r0, sp, #0x14
+ bl FUN_02019178
+ ldr r0, [sp, #0xc]
+ bl FUN_0200A8B8
+ ldr r0, [sp, #0x10]
+ bl FUN_02016A18
+ mov r0, #0x0
+ blx OS_ResetSystem
+_0208ABC4:
+ add sp, #0x24
+ pop {r4-r7, pc}
+ .balign 4
+_0208ABC8: .word 0x021C8C58
+_0208ABCC: .word 0x020FF4A4
+_0208ABD0: .word FUN_0208A998
+_0208ABD4: .word 0xFFFFE0FF
+_0208ABD8: .word 0x04001000
+_0208ABDC: .word 0x021C4918
+_0208ABE0: .word 0x04000050
+_0208ABE4: .word 0x04001050
+_0208ABE8: .word 0xFFFF1FFF
+_0208ABEC: .word 0x020FF4D8
+_0208ABF0: .word 0x020FF4AC
+_0208ABF4: .word 0x020FF4BC
+_0208ABF8: .word 0x000001F7
+_0208ABFC: .word 0x00006C21
+_0208AC00: .word 0x020FF49C
+_0208AC04: .word 0x04000130
+_0208AC08: .word 0x027FFFA8
+_0208AC0C: .word 0x00002FFF
+_0208AC10: .word 0x00007FFF
diff --git a/arm9/asm/unk_0208AC14.s b/arm9/asm/unk_0208AC14.s
new file mode 100644
index 00000000..0adafb8b
--- /dev/null
+++ b/arm9/asm/unk_0208AC14.s
@@ -0,0 +1,42449 @@
+ .include "asm/macros.inc"
+ .include "global.inc"
+
+ .text
+
+ arm_func_start FUN_0208AC14
+FUN_0208AC14: ; 0x0208AC14
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ mov r5, r0
+ ldr r1, [r5, #0x4]
+ cmp r1, #0x0
+ addeq sp, sp, #0x4
+ ldmeqia sp!, {r4-r5,lr}
+ bxeq lr
+_0208AC34:
+ ldr r4, [r1, #0x0]
+ mov r0, r5
+ bl FUN_0208AC58
+ mov r1, r4
+ cmp r4, #0x0
+ bne _0208AC34
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,lr}
+ bx lr
+
+ arm_func_start FUN_0208AC58
+FUN_0208AC58: ; 0x0208AC58
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0x4
+ mov r6, r1
+ mov r7, r0
+ add r0, r6, #0x8
+ bl FUN_02090A58
+ movs r1, r0
+ beq _0208AC98
+ add r5, r7, #0x1c
+ add r4, r6, #0x8
+_0208AC80:
+ mov r0, r5
+ bl FUN_02090AA4
+ mov r0, r4
+ bl FUN_02090A58
+ movs r1, r0
+ bne _0208AC80
+_0208AC98:
+ add r0, r6, #0x14
+ bl FUN_02090A58
+ movs r1, r0
+ beq _0208ACC8
+ add r5, r7, #0x1c
+ add r4, r6, #0x14
+_0208ACB0:
+ mov r0, r5
+ bl FUN_02090AA4
+ mov r0, r4
+ bl FUN_02090A58
+ movs r1, r0
+ bne _0208ACB0
+_0208ACC8:
+ mov r1, r6
+ add r0, r7, #0x4
+ bl FUN_020909D8
+ mov r1, r6
+ add r0, r7, #0x10
+ bl FUN_02090AA4
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r7,lr}
+ bx lr
+
+ arm_func_start FUN_0208ACEC
+FUN_0208ACEC: ; 0x0208ACEC
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0xc
+ mov r7, r0
+ ldr r0, [r7, #0x10]
+ mov r6, r1
+ mov r5, r2
+ cmp r0, #0x0
+ mov r4, #0x0
+ beq _0208AD70
+ add r1, sp, #0x0
+ str r4, [r1, #0x0]
+ str r4, [r1, #0x4]
+ add r0, r7, #0x10
+ str r4, [r1, #0x8]
+ bl FUN_02090A58
+ ldr r1, [r7, #0x28]
+ add r2, sp, #0x0
+ add r1, r1, r6, lsl #0x5
+ mov r4, r0
+ bl FUN_0208C138
+_0208AD3C: ; 0x0208AD3C
+ cmp r5, #0x0
+ beq _0208AD4C
+ mov r0, r4
+ blx r5
+_0208AD4C:
+ mov r1, r4
+ add r0, r7, #0x4
+ bl FUN_02090AA4
+ ldr r0, [r4, #0x20]
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0x0]
+ mov r0, r0, lsl #0x11
+ movs r0, r0, lsr #0x1f
+ movne r4, #0x0
+_0208AD70:
+ mov r0, r4
+ add sp, sp, #0xc
+ ldmia sp!, {r4-r7,lr}
+ bx lr
+
+ arm_func_start FUN_0208AD80
+FUN_0208AD80: ; 0x0208AD80
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ ldr r2, _0208AE44 ; =0x04000060
+ mov r4, r0
+ ldrh r0, [r2, #0x0]
+ bic r0, r0, #0x3000
+ orr r0, r0, #0x8
+ strh r0, [r2, #0x0]
+ str r1, [r4, #0x44]
+ ldr r0, [r4, #0x38]
+ mov r0, r0, lsl #0x7
+ movs r0, r0, lsr #0x1f
+ bne _0208ADFC
+ ldr r5, [r4, #0x4]
+ cmp r5, #0x0
+ addeq sp, sp, #0x4
+ ldmeqia sp!, {r4-r5,lr}
+ bxeq lr
+_0208ADC8:
+ str r5, [r4, #0x40]
+ ldr r0, [r5, #0x24]
+ mov r0, r0, lsl #0x1c
+ movs r0, r0, lsr #0x1f
+ bne _0208ADE4
+ mov r0, r4
+ bl FUN_0208B6A0
+_0208ADE4:
+ ldr r5, [r5, #0x0]
+ cmp r5, #0x0
+ bne _0208ADC8
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,lr}
+ bx lr
+_0208ADFC:
+ ldr r5, [r4, #0xc]
+ cmp r5, #0x0
+ addeq sp, sp, #0x4
+ ldmeqia sp!, {r4-r5,lr}
+ bxeq lr
+_0208AE10:
+ str r5, [r4, #0x40]
+ ldr r0, [r5, #0x24]
+ mov r0, r0, lsl #0x1c
+ movs r0, r0, lsr #0x1f
+ bne _0208AE2C
+ mov r0, r4
+ bl FUN_0208B6A0
+_0208AE2C:
+ ldr r5, [r5, #0x4]
+ cmp r5, #0x0
+ bne _0208AE10
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,lr}
+ bx lr
+ .balign 4
+_0208AE44: .word 0x04000060
+
+ arm_func_start FUN_0208AE48
+FUN_0208AE48: ; 0x0208AE48
+ stmdb sp!, {r4-r10,lr}
+ mov r8, r0
+ ldr r7, [r8, #0x4]
+ cmp r7, #0x0
+ beq _0208AF5C
+ add r10, r8, #0x4
+ add r9, r8, #0x10
+ mov r4, #0x0
+_0208AE68:
+ ldr r2, [r7, #0x24]
+ ldr r1, [r7, #0x20]
+ mov r0, r2, lsl #0x1b
+ movs r0, r0, lsr #0x1f
+ ldr r5, [r1, #0x0]
+ ldr r6, [r7, #0x0]
+ bne _0208AE9C
+ ldrh r1, [r7, #0x4c]
+ ldrh r0, [r5, #0x32]
+ cmp r1, r0
+ orrcs r0, r2, #0x10
+ strcs r0, [r7, #0x24]
+ strcsh r4, [r7, #0x4c]
+_0208AE9C:
+ ldr r0, [r7, #0x24]
+ mov r0, r0, lsl #0x1d
+ movs r0, r0, lsr #0x1f
+ bne _0208AED8
+ ldr r0, [r7, #0x80]
+ mov r0, r0, lsl #0xd
+ movs r0, r0, lsr #0x1d
+ beq _0208AECC
+ ldrh r1, [r8, #0x48]
+ sub r0, r0, #0x1
+ cmp r1, r0
+ bne _0208AED8
+_0208AECC:
+ mov r0, r8
+ mov r1, r7
+ bl FUN_0208B8F0
+_0208AED8:
+ ldr r0, [r5, #0x0]
+ mov r0, r0, lsl #0x11
+ movs r0, r0, lsr #0x1f
+ beq _0208AF10
+ ldrh r1, [r5, #0x3c]
+ cmp r1, #0x0
+ beq _0208AF10
+ ldr r0, [r7, #0x24]
+ mov r0, r0, lsl #0x1b
+ movs r0, r0, lsr #0x1f
+ beq _0208AF10
+ ldrh r0, [r7, #0x4c]
+ cmp r0, r1
+ bhi _0208AF20
+_0208AF10:
+ ldr r0, [r7, #0x24]
+ mov r0, r0, lsl #0x1f
+ movs r0, r0, lsr #0x1f
+ beq _0208AF50
+_0208AF20:
+ ldr r0, [r7, #0xc]
+ cmp r0, #0x0
+ bne _0208AF50
+ ldr r0, [r7, #0x18]
+ cmp r0, #0x0
+ bne _0208AF50
+ mov r0, r10
+ mov r1, r7
+ bl FUN_020909D8
+ mov r1, r0
+ mov r0, r9
+ bl FUN_02090AA4
+_0208AF50:
+ mov r7, r6
+ cmp r6, #0x0
+ bne _0208AE68
+_0208AF5C:
+ ldrh r0, [r8, #0x48]
+ add r0, r0, #0x1
+ strh r0, [r8, #0x48]
+ ldrh r0, [r8, #0x48]
+ cmp r0, #0x1
+ movhi r0, #0x0
+ strhih r0, [r8, #0x48]
+ ldmia sp!, {r4-r10,lr}
+ bx lr
+
+ arm_func_start FUN_0208AF80
+FUN_0208AF80: ; 0x0208AF80
+ ldr ip, _0208AF8C ; =FUN_0208AFA8
+ ldr r1, _0208AF90 ; =FUN_0208B630
+ bx r12
+ .balign 4
+_0208AF8C: .word FUN_0208AFA8
+_0208AF90: .word FUN_0208B630
+
+ arm_func_start FUN_0208AF94
+FUN_0208AF94: ; 0x0208AF94
+ ldr ip, _0208AFA0 ; =FUN_0208B05C
+ ldr r1, _0208AFA4 ; =FUN_0208B668
+ bx r12
+ .balign 4
+_0208AFA0: .word FUN_0208B05C
+_0208AFA4: .word FUN_0208B668
+
+ arm_func_start FUN_0208AFA8
+FUN_0208AFA8: ; 0x0208AFA8
+ stmdb sp!, {r4-r11,lr}
+ sub sp, sp, #0x4
+ mov r10, r0
+ mov r11, r1
+ bl GX_BeginLoadTexPltt
+ ldrh r0, [r10, #0x32]
+ mov r9, #0x0
+ cmp r0, #0x0
+ ble _0208B048
+ mov r0, #0x1
+ mov r5, r9
+ mov r4, r9
+ str r0, [sp, #0x0]
+_0208AFDC:
+ ldr r0, [r10, #0x2c]
+ mov r6, r4
+ ldr r7, [r0, r5]
+ add r8, r0, r5
+ ldr r0, [r7, #0x10]
+ cmp r0, #0x0
+ beq _0208B030
+ ldr r1, [r7, #0x4]
+ mov r1, r1, lsl #0x1c
+ mov r1, r1, lsr #0x1c
+ cmp r1, #0x2
+ ldreq r1, [sp, #0x0]
+ movne r1, r4
+ blx r11
+ mov r6, r0
+ ldr r1, [r8, #0x0]
+ ldr r0, [r7, #0xc]
+ ldr r2, [r7, #0x10]
+ add r0, r1, r0
+ mov r1, r6
+ bl GX_LoadTexPltt
+_0208B030:
+ str r6, [r8, #0x8]
+ ldrh r0, [r10, #0x32]
+ add r9, r9, #0x1
+ add r5, r5, #0x14
+ cmp r9, r0
+ blt _0208AFDC
+_0208B048:
+ bl GX_EndLoadTexPltt
+ mov r0, #0x1
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r11,lr}
+ bx lr
+
+ arm_func_start FUN_0208B05C
+FUN_0208B05C: ; 0x0208B05C
+ stmdb sp!, {r4-r11,lr}
+ sub sp, sp, #0xc
+ mov r10, r0
+ mov r11, r1
+ bl GX_BeginLoadTex
+ ldrh r0, [r10, #0x32]
+ mov r9, #0x0
+ cmp r0, #0x0
+ ble _0208B114
+ mov r0, #0x1
+ mov r6, r9
+ str r9, [sp, #0x4]
+ str r0, [sp, #0x0]
+ mov r4, #0x14
+_0208B094:
+ ldr r2, [r10, #0x2c]
+ ldr r7, [r2, r6]
+ add r8, r2, r6
+ ldr r0, [r7, #0x4]
+ mov r1, r0, lsl #0xe
+ movs r1, r1, lsr #0x1f
+ beq _0208B0C8
+ mov r0, r0, lsl #0x6
+ mov r1, r0, lsr #0x18
+ mla r0, r1, r4, r2
+ ldr r0, [r0, #0x4]
+ str r0, [r8, #0x4]
+ b _0208B100
+_0208B0C8:
+ mov r0, r0, lsl #0x1c
+ mov r0, r0, lsr #0x1c
+ cmp r0, #0x5
+ ldreq r1, [sp, #0x0]
+ ldr r0, [r7, #0x8]
+ ldrne r1, [sp, #0x4]
+ blx r11
+ mov r5, r0
+ ldr r0, [r8, #0x0]
+ ldr r2, [r7, #0x8]
+ add r0, r0, #0x20
+ mov r1, r5
+ bl GX_LoadTex
+ str r5, [r8, #0x4]
+_0208B100:
+ ldrh r0, [r10, #0x32]
+ add r9, r9, #0x1
+ add r6, r6, #0x14
+ cmp r9, r0
+ blt _0208B094
+_0208B114:
+ bl GX_EndLoadTex
+ mov r0, #0x1
+ add sp, sp, #0xc
+ ldmia sp!, {r4-r11,lr}
+ bx lr
+
+ arm_func_start FUN_0208B128
+FUN_0208B128: ; 0x0208B128
+ stmdb sp!, {r4-r11,lr}
+ sub sp, sp, #0x2c
+ mov r9, r1
+ ldrh r1, [r9, #0x8]
+ mov r10, r0
+ mov r8, #0x20
+ strh r1, [r10, #0x30]
+ ldrh r0, [r9, #0xa]
+ strh r0, [r10, #0x32]
+ ldrh r0, [r10, #0x30]
+ ldr r1, [r10, #0x0]
+ mov r0, r0, lsl #0x5
+ blx r1
+ str r0, [r10, #0x28]
+ ldrh r2, [r10, #0x30]
+ ldr r0, [r10, #0x28]
+ mov r1, #0x0
+ mov r2, r2, lsl #0x5
+ bl MI_CpuFill8
+ ldrh r1, [r10, #0x30]
+ mov r0, #0x0
+ str r0, [sp, #0x0]
+ cmp r1, #0x0
+ ble _0208B3C8
+ mov r6, r0
+ str r0, [sp, #0x10]
+ str r0, [sp, #0x14]
+ str r0, [sp, #0x18]
+ str r0, [sp, #0x1c]
+ str r0, [sp, #0x20]
+ str r0, [sp, #0x24]
+_0208B1A4:
+ ldr r1, [r10, #0x28]
+ add r0, r9, r8
+ str r0, [r1, r6]
+ ldr r0, [r1, r6]
+ add r8, r8, #0x58
+ ldr r0, [r0, #0x0]
+ add r7, r1, r6
+ str r0, [sp, #0x28]
+ mov r0, r0, lsl #0x17
+ movs r0, r0, lsr #0x1f
+ addne r0, r9, r8
+ strne r0, [r7, #0x4]
+ ldreq r0, [sp, #0x10]
+ addne r8, r8, #0xc
+ streq r0, [r7, #0x4]
+ ldr r0, [sp, #0x28]
+ mov r0, r0, lsl #0x16
+ movs r0, r0, lsr #0x1f
+ addne r0, r9, r8
+ strne r0, [r7, #0x8]
+ ldreq r0, [sp, #0x14]
+ addne r8, r8, #0xc
+ streq r0, [r7, #0x8]
+ ldr r0, [sp, #0x28]
+ mov r0, r0, lsl #0x15
+ movs r0, r0, lsr #0x1f
+ addne r0, r9, r8
+ strne r0, [r7, #0xc]
+ ldreq r0, [sp, #0x18]
+ addne r8, r8, #0x8
+ streq r0, [r7, #0xc]
+ ldr r0, [sp, #0x28]
+ mov r0, r0, lsl #0x14
+ movs r0, r0, lsr #0x1f
+ addne r0, r9, r8
+ strne r0, [r7, #0x10]
+ ldreq r0, [sp, #0x1c]
+ addne r8, r8, #0xc
+ streq r0, [r7, #0x10]
+ ldr r0, [sp, #0x28]
+ mov r0, r0, lsl #0xf
+ movs r0, r0, lsr #0x1f
+ addne r0, r9, r8
+ strne r0, [r7, #0x14]
+ ldreq r0, [sp, #0x20]
+ addne r8, r8, #0x14
+ streq r0, [r7, #0x14]
+ ldr r0, [sp, #0x28]
+ mov r1, r0, lsl #0x7
+ mov r2, r0, lsl #0x6
+ mov r5, r1, lsr #0x1f
+ mov r4, r2, lsr #0x1f
+ add r1, r5, r2, lsr #0x1f
+ mov r2, r0, lsl #0x5
+ add r1, r1, r2, lsr #0x1f
+ mov r3, r0, lsl #0x4
+ mov r11, r2, lsr #0x1f
+ add r2, r1, r3, lsr #0x1f
+ mov r1, r3, lsr #0x1f
+ mov r12, r0, lsl #0x3
+ str r1, [sp, #0x4]
+ mov r3, r0, lsl #0x2
+ mov r0, r12, lsr #0x1f
+ add r1, r2, r12, lsr #0x1f
+ str r0, [sp, #0x8]
+ add r0, r1, r3, lsr #0x1f
+ strh r0, [r7, #0x1c]
+ mov r0, r3, lsr #0x1f
+ str r0, [sp, #0xc]
+ ldrh r0, [r7, #0x1c]
+ cmp r0, #0x0
+ beq _0208B3A4
+ mov r0, r0, lsl #0x3
+ ldr r1, [r10, #0x0]
+ blx r1
+ str r0, [r7, #0x18]
+ cmp r5, #0x0
+ ldr r0, [r7, #0x18]
+ beq _0208B2F8
+ add r1, r9, r8
+ str r1, [r0, #0x4]
+ ldr r1, _0208B488 ; =FUN_020909A4
+ add r8, r8, #0x8
+ str r1, [r0, #0x0]
+ add r0, r0, #0x8
+_0208B2F8:
+ cmp r4, #0x0
+ beq _0208B318
+ add r1, r9, r8
+ str r1, [r0, #0x4]
+ ldr r1, _0208B48C ; =FUN_020908DC
+ add r8, r8, #0x8
+ str r1, [r0, #0x0]
+ add r0, r0, #0x8
+_0208B318:
+ cmp r11, #0x0
+ beq _0208B338
+ add r1, r9, r8
+ str r1, [r0, #0x4]
+ ldr r1, _0208B490 ; =FUN_02090858
+ add r8, r8, #0x10
+ str r1, [r0, #0x0]
+ add r0, r0, #0x8
+_0208B338:
+ ldr r1, [sp, #0x4]
+ cmp r1, #0x0
+ beq _0208B35C
+ add r1, r9, r8
+ str r1, [r0, #0x4]
+ ldr r1, _0208B494 ; =FUN_02090780
+ add r8, r8, #0x4
+ str r1, [r0, #0x0]
+ add r0, r0, #0x8
+_0208B35C:
+ ldr r1, [sp, #0x8]
+ cmp r1, #0x0
+ beq _0208B380
+ add r1, r9, r8
+ str r1, [r0, #0x4]
+ ldr r1, _0208B498 ; =FUN_02090664
+ add r8, r8, #0x8
+ str r1, [r0, #0x0]
+ add r0, r0, #0x8
+_0208B380:
+ ldr r1, [sp, #0xc]
+ cmp r1, #0x0
+ beq _0208B3AC
+ add r1, r9, r8
+ str r1, [r0, #0x4]
+ ldr r1, _0208B49C ; =FUN_020905D0
+ add r8, r8, #0x10
+ str r1, [r0, #0x0]
+ b _0208B3AC
+_0208B3A4:
+ ldr r0, [sp, #0x24]
+ str r0, [r7, #0x18]
+_0208B3AC:
+ ldr r0, [sp, #0x0]
+ ldrh r1, [r10, #0x30]
+ add r0, r0, #0x1
+ add r6, r6, #0x20
+ str r0, [sp, #0x0]
+ cmp r0, r1
+ blt _0208B1A4
+_0208B3C8:
+ ldrh r2, [r10, #0x32]
+ mov r0, #0x14
+ ldr r1, [r10, #0x0]
+ mul r0, r2, r0
+ blx r1
+ str r0, [r10, #0x2c]
+ ldrh r3, [r10, #0x32]
+ mov r1, #0x14
+ ldr r0, [r10, #0x2c]
+ mul r2, r3, r1
+ mov r1, #0x0
+ bl MI_CpuFill8
+ ldrh r0, [r10, #0x32]
+ mov r3, #0x0
+ cmp r0, #0x0
+ addle sp, sp, #0x2c
+ ldmleia sp!, {r4-r11,lr}
+ bxle lr
+ mov r4, r3
+ mov r0, #0x1
+_0208B418:
+ ldr r2, [r10, #0x2c]
+ add r1, r9, r8
+ str r1, [r2, r4]
+ ldr r5, [r1, #0x4]
+ add r2, r2, r4
+ mov r5, r5, lsl #0x18
+ mov r5, r5, lsr #0x1c
+ add r5, r5, #0x3
+ mov r5, r0, lsl r5
+ strh r5, [r2, #0x10]
+ ldr r5, [r1, #0x4]
+ add r3, r3, #0x1
+ mov r5, r5, lsl #0x14
+ mov r5, r5, lsr #0x1c
+ add r5, r5, #0x3
+ mov r5, r0, lsl r5
+ strh r5, [r2, #0x12]
+ ldr r5, [r1, #0x4]
+ add r4, r4, #0x14
+ str r5, [r2, #0xc]
+ ldrh r2, [r10, #0x32]
+ ldr r1, [r1, #0x1c]
+ cmp r3, r2
+ add r8, r8, r1
+ blt _0208B418
+ add sp, sp, #0x2c
+ ldmia sp!, {r4-r11,lr}
+ bx lr
+ .balign 4
+_0208B488: .word FUN_020909A4
+_0208B48C: .word FUN_020908DC
+_0208B490: .word FUN_02090858
+_0208B494: .word FUN_02090780
+_0208B498: .word FUN_02090664
+_0208B49C: .word FUN_020905D0
+
+ arm_func_start FUN_0208B4A0
+FUN_0208B4A0: ; 0x0208B4A0
+ stmdb sp!, {r4-r10,lr}
+ mov r8, r0
+ mov r0, #0x4c
+ mov r7, r1
+ mov r6, r2
+ mov r4, r3
+ blx r8
+ mov r5, r0
+ mov r1, #0x0
+ mov r2, #0x4c
+ bl MI_CpuFill8
+ strh r7, [r5, #0x34]
+ strh r6, [r5, #0x36]
+ ldrh r0, [sp, #0x20]
+ and r2, r4, #0x3f
+ ldr r1, [r5, #0x38]
+ and r0, r0, #0x3f
+ bic r1, r1, #0x3f
+ orr r0, r1, r0
+ str r0, [r5, #0x38]
+ ldrh r0, [sp, #0x24]
+ ldr r3, [r5, #0x38]
+ mov r1, #0x0
+ bic r3, r3, #0xfc0
+ and r0, r0, #0x3f
+ orr r0, r3, r0, lsl #0x6
+ str r0, [r5, #0x38]
+ ldr r3, [r5, #0x38]
+ mov r0, #0x9c
+ mul r4, r7, r0
+ bic r12, r3, #0x3f000
+ mov r0, r3, lsl #0x1a
+ mov r0, r0, lsr #0x1a
+ and r0, r0, #0x3f
+ orr r0, r12, r0, lsl #0xc
+ str r0, [r5, #0x38]
+ ldr r3, [r5, #0x38]
+ mov r0, r4
+ bic r3, r3, #0xfc0000
+ orr r2, r3, r2, lsl #0x12
+ str r2, [r5, #0x38]
+ ldr r2, [r5, #0x38]
+ bic r2, r2, #0x1000000
+ str r2, [r5, #0x38]
+ ldr r2, [r5, #0x38]
+ bic r2, r2, #0xfe000000
+ str r2, [r5, #0x38]
+ str r8, [r5, #0x0]
+ str r1, [r5, #0x8]
+ str r1, [r5, #0x14]
+ str r1, [r5, #0x20]
+ str r1, [r5, #0x4]
+ str r1, [r5, #0x10]
+ str r1, [r5, #0x1c]
+ str r1, [r5, #0x3c]
+ strh r1, [r5, #0x48]
+ blx r8
+ mov r2, r4
+ mov r9, r0
+ mov r1, #0x0
+ bl MI_CpuFill8
+_0208B594: ; 0x0208B594
+ cmp r7, #0x0
+ mov r10, #0x0
+ ble _0208B5C0
+ add r4, r5, #0x10
+_0208B5A4:
+ mov r0, r4
+ mov r1, r9
+ bl FUN_02090AA4
+ add r10, r10, #0x1
+ cmp r10, r7
+ add r9, r9, #0x9c
+ blt _0208B5A4
+_0208B5C0:
+ mov r0, #0x44
+ mul r4, r6, r0
+ mov r0, r4
+ blx r8
+ mov r2, r4
+ mov r1, #0x0
+ mov r8, r0
+ bl MI_CpuFill8
+_0208B5E0: ; 0x0208B5E0
+ cmp r6, #0x0
+ mov r7, #0x0
+ ble _0208B60C
+ add r4, r5, #0x1c
+_0208B5F0:
+ mov r0, r4
+ mov r1, r8
+ bl FUN_02090AA4
+ add r7, r7, #0x1
+ cmp r7, r6
+ add r8, r8, #0x44
+ blt _0208B5F0
+_0208B60C:
+ mov r0, #0x0
+ str r0, [r5, #0x28]
+ str r0, [r5, #0x2c]
+ strh r0, [r5, #0x32]
+ ldrh r1, [r5, #0x32]
+ mov r0, r5
+ strh r1, [r5, #0x30]
+ ldmia sp!, {r4-r10,lr}
+ bx lr
+
+ arm_func_start FUN_0208B630
+FUN_0208B630: ; 0x0208B630
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldr r3, _0208B660 ; =0x021064C0
+ mov r2, #0x0
+ ldr r3, [r3, #0x0]
+ blx r3
+ ldr r1, _0208B664 ; =0x0000FFFF
+ and r0, r0, r1
+ mov r0, r0, lsl #0x3
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+ .balign 4
+_0208B660: .word 0x021064C0
+_0208B664: .word 0x0000FFFF
+
+ arm_func_start FUN_0208B668
+FUN_0208B668: ; 0x0208B668
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldr r3, _0208B698 ; =0x021064B8
+ mov r2, #0x0
+ ldr r3, [r3, #0x0]
+ blx r3
+ ldr r1, _0208B69C ; =0x0000FFFF
+ and r0, r0, r1
+ mov r0, r0, lsl #0x3
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+ .balign 4
+_0208B698: .word 0x021064B8
+_0208B69C: .word 0x0000FFFF
+
+ arm_func_start FUN_0208B6A0
+FUN_0208B6A0: ; 0x0208B6A0
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ mov r4, r0
+ ldr r1, [r4, #0x40]
+ ldr r1, [r1, #0x20]
+ ldr r5, [r1, #0x0]
+ ldr r1, [r5, #0x0]
+ mov r2, r1, lsl #0xa
+ movs r2, r2, lsr #0x1f
+ beq _0208B6F8
+ bl FUN_0208B71C
+_0208B6CC: ; 0x0208B6CC
+ ldr r0, [r5, #0x0]
+ mov r0, r0, lsl #0x9
+ movs r0, r0, lsr #0x1f
+ addne sp, sp, #0x4
+ ldmneia sp!, {r4-r5,lr}
+ bxne lr
+ mov r0, r4
+ bl FUN_0208B804
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,lr}
+ bx lr
+_0208B6F8:
+ mov r1, r1, lsl #0x9
+ movs r1, r1, lsr #0x1f
+ bne _0208B708
+ bl FUN_0208B804
+_0208B708:
+ mov r0, r4
+ bl FUN_0208B71C
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,lr}
+ bx lr
+
+ arm_func_start FUN_0208B71C
+FUN_0208B71C:
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0x4
+ mov r7, r0
+ ldr r6, [r7, #0x40]
+ mov r4, #0x0
+ ldr r5, [r6, #0x20]
+ ldr r0, [r5, #0x0]
+ ldr r0, [r0, #0x0]
+ mov r0, r0, lsl #0xf
+ movs r0, r0, lsr #0x1f
+ addeq sp, sp, #0x4
+ ldmeqia sp!, {r4-r7,lr}
+ bxeq lr
+ ldr r0, [r5, #0x14]
+ ldr r2, [r7, #0x2c]
+ ldrb r1, [r0, #0xf]
+ mov r0, #0x14
+ mla r0, r1, r0, r2
+ bl FUN_0208C408
+ ldr r0, [r5, #0x14]
+ ldrh r0, [r0, #0x0]
+ mov r0, r0, lsl #0x17
+ mov r0, r0, lsr #0x1e
+ cmp r0, #0x4
+ addls pc, pc, r0, lsl #0x2
+ b _0208B7BC
+_0208B784:
+ b _0208B798
+_0208B788:
+ b _0208B7A0
+_0208B78C:
+ b _0208B7A8
+_0208B790:
+ b _0208B7B0
+_0208B794:
+ b _0208B7B8
+_0208B798:
+ ldr r4, _0208B7F4 ; =FUN_0208E258
+ b _0208B7BC
+_0208B7A0:
+ ldr r4, _0208B7F8 ; =FUN_0208D490
+ b _0208B7BC
+_0208B7A8:
+ ldr r4, _0208B7FC ; =FUN_0208CDF0
+ b _0208B7BC
+_0208B7B0:
+ ldr r4, _0208B800 ; =FUN_0208C4F4
+ b _0208B7BC
+_0208B7B8:
+ ldr r4, _0208B800 ; =FUN_0208C4F4
+_0208B7BC:
+ ldr r5, [r6, #0x14]
+ cmp r5, #0x0
+ addeq sp, sp, #0x4
+ ldmeqia sp!, {r4-r7,lr}
+ bxeq lr
+_0208B7D0:
+ mov r0, r7
+ mov r1, r5
+ blx r4
+ ldr r5, [r5, #0x0]
+ cmp r5, #0x0
+ bne _0208B7D0
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r7,lr}
+ bx lr
+ .balign 4
+_0208B7F4: .word FUN_0208E258
+_0208B7F8: .word FUN_0208D490
+_0208B7FC: .word FUN_0208CDF0
+_0208B800: .word FUN_0208C4F4
+
+ arm_func_start FUN_0208B804
+FUN_0208B804: ; 0x0208B804
+ stmdb sp!, {r4-r8,lr}
+ mov r7, r0
+ ldr r6, [r7, #0x40]
+ ldr r2, [r7, #0x2c]
+ ldr r1, [r6, #0x20]
+ mov r0, #0x14
+ ldr r5, [r1, #0x0]
+ mov r4, #0x0
+ ldrb r1, [r5, #0x47]
+ mla r0, r1, r0, r2
+ bl FUN_0208C408
+_0208B830: ; 0x0208B830
+ ldr r0, [r5, #0x0]
+ mov r0, r0, lsl #0x1a
+ mov r0, r0, lsr #0x1e
+ cmp r0, #0x4
+ addls pc, pc, r0, lsl #0x2
+ b _0208B880
+_0208B848:
+ b _0208B85C
+_0208B84C:
+ b _0208B864
+_0208B850:
+ b _0208B86C
+_0208B854:
+ b _0208B874
+_0208B858:
+ b _0208B87C
+_0208B85C:
+ ldr r4, _0208B8D8 ; =FUN_0208E6AC
+ b _0208B880
+_0208B864:
+ ldr r4, _0208B8DC ; =FUN_0208DB70
+ b _0208B880
+_0208B86C:
+ ldr r4, _0208B8E0 ; =FUN_0208D140
+ b _0208B880
+_0208B874:
+ ldr r4, _0208B8E4 ; =FUN_0208C974
+ b _0208B880
+_0208B87C:
+ ldr r4, _0208B8E4 ; =FUN_0208C974
+_0208B880:
+ ldr r0, [r5, #0x0]
+ ldr r8, [r6, #0x8]
+ mov r0, r0, lsl #0x14
+ movs r0, r0, lsr #0x1f
+ ldrne r5, _0208B8E8 ; =FUN_0208C408
+ ldreq r5, _0208B8EC ; =FUN_0208C404
+ cmp r8, #0x0
+ ldmeqia sp!, {r4-r8,lr}
+ bxeq lr
+ mov r6, #0x14
+_0208B8A8:
+ ldrb r1, [r8, #0x2c]
+ ldr r0, [r7, #0x2c]
+ mla r0, r1, r6, r0
+ blx r5
+ mov r0, r7
+ mov r1, r8
+ blx r4
+ ldr r8, [r8, #0x0]
+ cmp r8, #0x0
+ bne _0208B8A8
+ ldmia sp!, {r4-r8,lr}
+ bx lr
+ .balign 4
+_0208B8D8: .word FUN_0208E6AC
+_0208B8DC: .word FUN_0208DB70
+_0208B8E0: .word FUN_0208D140
+_0208B8E4: .word FUN_0208C974
+_0208B8E8: .word FUN_0208C408
+_0208B8EC: .word FUN_0208C404
+
+ arm_func_start FUN_0208B8F0
+FUN_0208B8F0:
+ stmdb sp!, {r4-r11,lr}
+ sub sp, sp, #0x74
+ mov r9, r1
+ ldr r8, [r9, #0x20]
+ mov r10, r0
+ ldr r0, [r8, #0x14]
+ ldr r4, [r8, #0x0]
+ str r0, [sp, #0x4]
+ ldr r0, [r4, #0x0]
+ mov r6, #0x0
+ str r0, [sp, #0x24]
+ ldrb r0, [r4, #0x46]
+ ldr r2, [r9, #0x90]
+ ldrh r7, [r8, #0x1c]
+ add r0, r0, #0x180
+ cmp r2, #0x0
+ str r0, [sp, #0x8]
+ beq _0208B944
+ mov r0, r9
+ mov r1, r6
+ blx r2
+_0208B944:
+ ldrh r1, [r4, #0x3c]
+ cmp r1, #0x0
+ beq _0208B95C
+ ldrh r0, [r9, #0x4c]
+ cmp r0, r1
+ bhs _0208B9A4
+_0208B95C:
+ ldrh r0, [r9, #0x4c]
+ ldrb r1, [r9, #0x80]
+ bl _s32_div_f
+_0208B968: ; 0x0208B968
+ cmp r1, #0x0
+ bne _0208B9A4
+ ldr r1, [r9, #0x24]
+ mov r0, r1, lsl #0x1f
+ movs r0, r0, lsr #0x1f
+ bne _0208B9A4
+ mov r0, r1, lsl #0x1e
+ movs r0, r0, lsr #0x1f
+ bne _0208B9A4
+ mov r0, r1, lsl #0x1b
+ movs r0, r0, lsr #0x1f
+ beq _0208B9A4
+ mov r0, r9
+ add r1, r10, #0x1c
+ bl FUN_0208F07C
+_0208B9A4:
+ ldr r0, [sp, #0x24]
+ mov r0, r0, lsl #0x17
+ movs r0, r0, lsr #0x1f
+ beq _0208B9D4
+ ldr r0, _0208C120 ; =FUN_02090540
+ add r6, r6, #0x1
+ str r0, [sp, #0x28]
+ ldr r0, [r8, #0x4]
+ ldrh r0, [r0, #0x8]
+ mov r0, r0, lsl #0x1f
+ mov r0, r0, lsr #0x1f
+ str r0, [sp, #0x2c]
+_0208B9D4:
+ ldr r0, [sp, #0x24]
+ mov r0, r0, lsl #0x16
+ movs r0, r0, lsr #0x1f
+ beq _0208BA20
+ ldr r3, [r8, #0x8]
+ ldrh r0, [r3, #0x8]
+ mov r0, r0, lsl #0x1f
+ movs r0, r0, lsr #0x1f
+ bne _0208BA20
+ ldr r2, _0208C124 ; =FUN_02090374
+ add r1, sp, #0x28
+ str r2, [r1, r6, lsl #0x3]
+ ldrh r1, [r3, #0x8]
+ mov r2, r6, lsl #0x3
+ add r0, sp, #0x2c
+ mov r1, r1, lsl #0x1e
+ mov r1, r1, lsr #0x1f
+ add r6, r6, #0x1
+ str r1, [r0, r2]
+_0208BA20:
+ ldr r0, [sp, #0x24]
+ mov r0, r0, lsl #0x15
+ movs r0, r0, lsr #0x1f
+ beq _0208BA5C
+ ldr r2, _0208C128 ; =FUN_02090298
+ add r1, sp, #0x28
+ str r2, [r1, r6, lsl #0x3]
+ ldr r1, [r8, #0xc]
+ mov r2, r6, lsl #0x3
+ ldrh r1, [r1, #0x2]
+ add r0, sp, #0x2c
+ add r6, r6, #0x1
+ mov r1, r1, lsl #0x17
+ mov r1, r1, lsr #0x1f
+ str r1, [r0, r2]
+_0208BA5C:
+ ldr r0, [sp, #0x24]
+ mov r0, r0, lsl #0x14
+ movs r0, r0, lsr #0x1f
+ beq _0208BAA4
+ ldr r3, [r8, #0x10]
+ ldr r0, [r3, #0x8]
+ mov r0, r0, lsl #0xf
+ movs r0, r0, lsr #0x1f
+ bne _0208BAA4
+ ldr r2, _0208C12C ; =FUN_02090234
+ add r1, sp, #0x28
+ str r2, [r1, r6, lsl #0x3]
+ ldr r1, [r3, #0x8]
+ add r0, sp, #0x2c
+ mov r1, r1, lsl #0xe
+ mov r1, r1, lsr #0x1f
+ str r1, [r0, r6, lsl #0x3]
+ add r6, r6, #0x1
+_0208BAA4:
+ ldr r4, [r9, #0x8]
+ cmp r4, #0x0
+ beq _0208BDE0
+ ldr r0, [sp, #0x24]
+ add r11, sp, #0x28
+ mov r2, r0, lsl #0x10
+ mov r1, r0, lsl #0xf
+ mov r0, r2, lsr #0x1f
+ str r0, [sp, #0xc]
+ mov r0, r1, lsr #0x1f
+ str r0, [sp, #0x10]
+ mov r0, #0x0
+ str r0, [sp, #0x18]
+_0208BAD8:
+ ldr r0, [r4, #0x0]
+ ldrh r1, [r4, #0x2a]
+ str r0, [sp, #0x0]
+ ldrh r0, [r4, #0x26]
+ cmp r6, #0x0
+ ldr r5, [sp, #0x18]
+ mul r2, r1, r0
+ mov r1, r2, asr #0x8
+ strb r1, [sp, #0x20]
+ ldrh r1, [r4, #0x28]
+ ldrb r2, [r4, #0x2d]
+ mul r0, r1, r0
+ add r0, r2, r0, asr #0x8
+ strb r0, [sp, #0x21]
+ ble _0208BB40
+_0208BB14:
+ add r2, r11, r5, lsl #0x3
+ ldr r12, [r2, #0x4]
+ add r2, sp, #0x20
+ ldrb r2, [r2, r12]
+ ldr r3, [r11, r5, lsl #0x3]
+ mov r0, r4
+ mov r1, r8
+ blx r3
+ add r5, r5, #0x1
+ cmp r5, r6
+ blt _0208BB14
+_0208BB40:
+ ldr r0, [sp, #0x18]
+ ldr r5, [sp, #0x18]
+ str r0, [sp, #0x70]
+ str r0, [sp, #0x6c]
+ str r0, [sp, #0x68]
+ ldr r0, [sp, #0xc]
+ cmp r0, #0x0
+ addne r0, r9, #0x28
+ addne r3, r4, #0x38
+ ldmneia r0, {r0-r2}
+ stmneia r3, {r0-r2}
+ cmp r7, #0x0
+ ble _0208BBA0
+_0208BB74:
+ ldr r2, [r8, #0x18]
+ mov r1, r4
+ add r0, r2, r5, lsl #0x3
+ ldr r12, [r2, r5, lsl #0x3]
+ ldr r0, [r0, #0x4]
+ add r2, sp, #0x68
+ mov r3, r9
+ blx r12
+ add r5, r5, #0x1
+ cmp r5, r7
+ blt _0208BB74
+_0208BBA0:
+ ldr r0, [sp, #0x10]
+ ldrh r1, [r4, #0x20]
+ cmp r0, #0x0
+ ldrsh r0, [r4, #0x22]
+ add r0, r1, r0
+ strh r0, [r4, #0x20]
+ ldr r1, [r4, #0x14]
+ ldr r0, [sp, #0x8]
+ mul r0, r1, r0
+ mov r0, r0, asr #0x9
+ str r0, [r4, #0x14]
+ ldr r1, [r4, #0x18]
+ ldr r0, [sp, #0x8]
+ mul r0, r1, r0
+ mov r0, r0, asr #0x9
+ str r0, [r4, #0x18]
+ ldr r1, [r4, #0x1c]
+ ldr r0, [sp, #0x8]
+ mul r0, r1, r0
+ mov r0, r0, asr #0x9
+ str r0, [r4, #0x1c]
+ ldr r1, [r4, #0x14]
+ ldr r0, [sp, #0x68]
+ add r0, r1, r0
+ str r0, [r4, #0x14]
+ ldr r1, [r4, #0x18]
+ ldr r0, [sp, #0x6c]
+ add r0, r1, r0
+ str r0, [r4, #0x18]
+ ldr r1, [r4, #0x1c]
+ ldr r0, [sp, #0x70]
+ add r0, r1, r0
+ str r0, [r4, #0x1c]
+ ldr r1, [r4, #0x14]
+ ldr r0, [r9, #0x34]
+ ldr r2, [r4, #0x8]
+ add r0, r1, r0
+ add r0, r2, r0
+ str r0, [r4, #0x8]
+ ldr r1, [r4, #0x18]
+ ldr r0, [r9, #0x38]
+ ldr r2, [r4, #0xc]
+ add r0, r1, r0
+ add r0, r2, r0
+ str r0, [r4, #0xc]
+ ldr r1, [r4, #0x1c]
+ ldr r0, [r9, #0x3c]
+ ldr r2, [r4, #0x10]
+ add r0, r1, r0
+ add r0, r2, r0
+ str r0, [r4, #0x10]
+ beq _0208BCD8
+ ldr r0, [sp, #0x4]
+ ldrh r2, [r4, #0x24]
+ ldrb r1, [r0, #0xd]
+ ldrh r3, [r4, #0x26]
+ mov r2, r2, lsl #0xc
+ mov r1, r1, lsl #0xc
+ mov r0, r3, lsl #0xc
+ smull r5, r3, r2, r1
+ mov r1, #0x800
+ adds r2, r5, r1
+ adc r1, r3, #0x0
+ mov r2, r2, lsr #0xc
+ orr r2, r2, r1, lsl #0x14
+ mov r1, r2, asr #0x8
+ subs r0, r0, r1
+ bmi _0208BCD8
+ ldr r1, [sp, #0x4]
+ mov r0, r0, asr #0xc
+ ldrb r1, [r1, #0xe]
+ bl _s32_div_f
+_0208BCC0: ; 0x0208BCC0
+ cmp r1, #0x0
+ bne _0208BCD8
+ mov r0, r4
+ mov r1, r9
+ add r2, r10, #0x1c
+ bl FUN_0208ED5C
+_0208BCD8:
+ ldr r0, [r9, #0x20]
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0x0]
+ mov r0, r0, lsl #0x1
+ movs r0, r0, lsr #0x1f
+ beq _0208BD1C
+ ldrh r0, [r4, #0x2e]
+ ldr r1, [r10, #0x38]
+ bic r0, r0, #0xfc00
+ mov r1, r1, lsl #0x8
+ mov r1, r1, lsr #0x1a
+ mov r1, r1, lsl #0x10
+ mov r1, r1, lsr #0x10
+ and r1, r1, #0x3f
+ orr r0, r0, r1, lsl #0xa
+ strh r0, [r4, #0x2e]
+ b _0208BD9C
+_0208BD1C:
+ ldrh r0, [r4, #0x2e]
+ ldr r2, [r10, #0x38]
+ add r1, r10, #0x38
+ bic r0, r0, #0xfc00
+ mov r2, r2, lsl #0xe
+ mov r2, r2, lsr #0x1a
+ mov r2, r2, lsl #0x10
+ mov r2, r2, lsr #0x10
+ and r2, r2, #0x3f
+ orr r0, r0, r2, lsl #0xa
+ strh r0, [r4, #0x2e]
+ ldr r2, [r10, #0x38]
+ bic r0, r2, #0x3f000
+ mov r2, r2, lsl #0xe
+ mov r2, r2, lsr #0x1a
+ add r2, r2, #0x1
+ and r2, r2, #0x3f
+ orr r0, r0, r2, lsl #0xc
+ str r0, [r10, #0x38]
+ ldr r2, [r10, #0x38]
+ mov r0, r2, lsl #0xe
+ mov r3, r0, lsr #0x1a
+ mov r0, r2, lsl #0x14
+ cmp r3, r0, lsr #0x1a
+ bls _0208BD9C
+ mov r0, r2, lsl #0x1a
+ mov r0, r0, lsr #0x1a
+ and r0, r0, #0x3f
+ ldr r2, [r1, #0x0]
+ bic r2, r2, #0x3f000
+ orr r0, r2, r0, lsl #0xc
+ str r0, [r1, #0x0]
+_0208BD9C:
+ ldrh r0, [r4, #0x26]
+ add r0, r0, #0x1
+ strh r0, [r4, #0x26]
+ ldrh r1, [r4, #0x26]
+ ldrh r0, [r4, #0x24]
+ cmp r1, r0
+ bls _0208BDD0
+ mov r1, r4
+ add r0, r9, #0x8
+ bl FUN_020909D8
+ mov r1, r0
+ add r0, r10, #0x1c
+ bl FUN_02090AA4
+_0208BDD0:
+ ldr r0, [sp, #0x0]
+ cmp r0, #0x0
+ mov r4, r0
+ bne _0208BAD8
+_0208BDE0:
+ ldr r0, [sp, #0x24]
+ mov r0, r0, lsl #0xf
+ movs r0, r0, lsr #0x1f
+ beq _0208C0E8
+ ldr r0, [sp, #0x4]
+ mov r6, #0x0
+ ldrh r0, [r0, #0x0]
+ mov r0, r0, lsl #0x1e
+ movs r0, r0, lsr #0x1f
+ ldrne r0, _0208C130 ; =FUN_020901E8
+ strne r6, [sp, #0x4c]
+ strne r0, [sp, #0x48]
+ ldr r0, [sp, #0x4]
+ addne r6, r6, #0x1
+ ldrh r0, [r0, #0x0]
+ mov r0, r0, lsl #0x1d
+ movs r0, r0, lsr #0x1f
+ beq _0208BE44
+ ldr r2, _0208C134 ; =FUN_02090190
+ add r1, sp, #0x48
+ str r2, [r1, r6, lsl #0x3]
+ add r0, sp, #0x4c
+ mov r1, #0x0
+ str r1, [r0, r6, lsl #0x3]
+ add r6, r6, #0x1
+_0208BE44:
+ ldr r0, [sp, #0x4]
+ ldr r5, [r9, #0x14]
+ ldrh r0, [r0, #0x0]
+ mov r0, r0, lsl #0x1f
+ movs r0, r0, lsr #0x1f
+ moveq r7, #0x0
+ cmp r5, #0x0
+ beq _0208C0E8
+ mov r0, #0x0
+ str r0, [sp, #0x1c]
+_0208BE6C:
+ ldrh r2, [r5, #0x26]
+ ldr r0, [r5, #0x0]
+ ldrh r1, [r5, #0x24]
+ str r0, [sp, #0x14]
+ mov r0, r2, lsl #0x8
+ bl _s32_div_f
+ ldr r4, [sp, #0x1c]
+ strb r0, [sp, #0x20]
+ cmp r6, #0x0
+ ble _0208BEBC
+ ldrb r11, [sp, #0x20]
+_0208BE98:
+ add r3, sp, #0x48
+ ldr r3, [r3, r4, lsl #0x3]
+ mov r0, r5
+ mov r1, r8
+ mov r2, r11
+ blx r3
+ add r4, r4, #0x1
+ cmp r4, r6
+ blt _0208BE98
+_0208BEBC:
+ ldr r0, [sp, #0x1c]
+ ldr r4, [sp, #0x1c]
+ str r0, [sp, #0x70]
+ str r0, [sp, #0x6c]
+ str r0, [sp, #0x68]
+ ldr r0, [sp, #0x4]
+ ldrh r0, [r0, #0x0]
+ mov r0, r0, lsl #0x1a
+ movs r0, r0, lsr #0x1f
+ addne r0, r9, #0x28
+ addne r3, r5, #0x38
+ ldmneia r0, {r0-r2}
+ stmneia r3, {r0-r2}
+ cmp r7, #0x0
+ ble _0208BF24
+_0208BEF8:
+ ldr r2, [r8, #0x18]
+ mov r1, r5
+ add r0, r2, r4, lsl #0x3
+ ldr r11, [r2, r4, lsl #0x3]
+ ldr r0, [r0, #0x4]
+ add r2, sp, #0x68
+ mov r3, r9
+ blx r11
+ add r4, r4, #0x1
+ cmp r4, r7
+ blt _0208BEF8
+_0208BF24:
+ ldrh r1, [r5, #0x20]
+ ldrsh r0, [r5, #0x22]
+ add r0, r1, r0
+ strh r0, [r5, #0x20]
+ ldr r1, [r5, #0x14]
+ ldr r0, [sp, #0x8]
+ mul r0, r1, r0
+ mov r0, r0, asr #0x9
+ str r0, [r5, #0x14]
+ ldr r1, [r5, #0x18]
+ ldr r0, [sp, #0x8]
+ mul r0, r1, r0
+ mov r0, r0, asr #0x9
+ str r0, [r5, #0x18]
+ ldr r1, [r5, #0x1c]
+ ldr r0, [sp, #0x8]
+ mul r0, r1, r0
+ mov r0, r0, asr #0x9
+ str r0, [r5, #0x1c]
+ ldr r1, [r5, #0x14]
+ ldr r0, [sp, #0x68]
+ add r0, r1, r0
+ str r0, [r5, #0x14]
+ ldr r1, [r5, #0x18]
+ ldr r0, [sp, #0x6c]
+ add r0, r1, r0
+ str r0, [r5, #0x18]
+ ldr r1, [r5, #0x1c]
+ ldr r0, [sp, #0x70]
+ add r0, r1, r0
+ str r0, [r5, #0x1c]
+ ldr r1, [r5, #0x14]
+ ldr r0, [r9, #0x34]
+ ldr r2, [r5, #0x8]
+ add r0, r1, r0
+ add r0, r2, r0
+ str r0, [r5, #0x8]
+ ldr r1, [r5, #0x18]
+ ldr r0, [r9, #0x38]
+ ldr r2, [r5, #0xc]
+ add r0, r1, r0
+ add r0, r2, r0
+ str r0, [r5, #0xc]
+ ldr r1, [r5, #0x1c]
+ ldr r0, [r9, #0x3c]
+ ldr r2, [r5, #0x10]
+ add r0, r1, r0
+ add r0, r2, r0
+ str r0, [r5, #0x10]
+ ldr r0, [r9, #0x20]
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0x0]
+ movs r0, r0, lsr #0x1f
+ beq _0208C028
+ ldr r0, [r10, #0x38]
+ ldrh r1, [r5, #0x2e]
+ mov r0, r0, lsl #0x8
+ mov r0, r0, lsr #0x1a
+ bic r1, r1, #0xfc00
+ mov r0, r0, lsl #0x10
+ mov r0, r0, lsr #0x10
+ and r0, r0, #0x3f
+ orr r0, r1, r0, lsl #0xa
+ strh r0, [r5, #0x2e]
+ b _0208C0A8
+_0208C028:
+ ldr r0, [r10, #0x38]
+ ldrh r1, [r5, #0x2e]
+ mov r0, r0, lsl #0xe
+ mov r0, r0, lsr #0x1a
+ bic r1, r1, #0xfc00
+ mov r0, r0, lsl #0x10
+ mov r0, r0, lsr #0x10
+ and r0, r0, #0x3f
+ orr r0, r1, r0, lsl #0xa
+ strh r0, [r5, #0x2e]
+ ldr r1, [r10, #0x38]
+ add r0, r10, #0x38
+ bic r2, r1, #0x3f000
+ mov r1, r1, lsl #0xe
+ mov r1, r1, lsr #0x1a
+ add r1, r1, #0x1
+ and r1, r1, #0x3f
+ orr r1, r2, r1, lsl #0xc
+ str r1, [r10, #0x38]
+ ldr r2, [r10, #0x38]
+ mov r1, r2, lsl #0xe
+ mov r3, r1, lsr #0x1a
+ mov r1, r2, lsl #0x14
+ cmp r3, r1, lsr #0x1a
+ bls _0208C0A8
+ mov r1, r2, lsl #0x1a
+ mov r1, r1, lsr #0x1a
+ and r1, r1, #0x3f
+ ldr r2, [r0, #0x0]
+ bic r2, r2, #0x3f000
+ orr r1, r2, r1, lsl #0xc
+ str r1, [r0, #0x0]
+_0208C0A8:
+ ldrh r0, [r5, #0x26]
+ add r0, r0, #0x1
+ strh r0, [r5, #0x26]
+ ldrh r1, [r5, #0x26]
+ ldrh r0, [r5, #0x24]
+ cmp r1, r0
+ bls _0208C0DC
+ mov r1, r5
+ add r0, r9, #0x14
+ bl FUN_020909D8
+ mov r1, r0
+ add r0, r10, #0x1c
+ bl FUN_02090AA4
+_0208C0DC:
+ ldr r5, [sp, #0x14]
+ movs r0, r5
+ bne _0208BE6C
+_0208C0E8:
+ ldrh r0, [r9, #0x4c]
+ add r0, r0, #0x1
+ strh r0, [r9, #0x4c]
+ ldr r2, [r9, #0x90]
+ cmp r2, #0x0
+ addeq sp, sp, #0x74
+ ldmeqia sp!, {r4-r11,lr}
+ bxeq lr
+ mov r0, r9
+ mov r1, #0x1
+ blx r2
+ add sp, sp, #0x74
+ ldmia sp!, {r4-r11,lr}
+ bx lr
+ .balign 4
+_0208C120: .word FUN_02090540
+_0208C124: .word FUN_02090374
+_0208C128: .word FUN_02090298
+_0208C12C: .word FUN_02090234
+_0208C130: .word FUN_020901E8
+_0208C134: .word FUN_02090190
+
+ arm_func_start FUN_0208C138
+FUN_0208C138:
+ stmdb sp!, {r4-r6,lr}
+ str r1, [r0, #0x20]
+ mov r3, #0x0
+ str r3, [r0, #0x24]
+ ldr r1, [r0, #0x20]
+ ldr r5, [r2, #0x0]
+ ldr r1, [r1, #0x0]
+ ldr r4, _0208C3FC ; =0x00007FFF
+ ldr r1, [r1, #0x4]
+ ldr ip, _0208C400 ; =0x0007FFFF
+ add r1, r5, r1
+ str r1, [r0, #0x28]
+ ldr r1, [r0, #0x20]
+ ldr r6, [r2, #0x4]
+ ldr r1, [r1, #0x0]
+ mov lr, #0x80000000
+ ldr r5, [r1, #0x8]
+ mov r1, #0x1000
+ add r5, r6, r5
+ str r5, [r0, #0x2c]
+ ldr r5, [r0, #0x20]
+ ldr r6, [r2, #0x8]
+ ldr r2, [r5, #0x0]
+ ldr r2, [r2, #0xc]
+ add r2, r6, r2
+ str r2, [r0, #0x30]
+ str r3, [r0, #0x40]
+ str r3, [r0, #0x44]
+ str r3, [r0, #0x48]
+ str r3, [r0, #0x3c]
+ ldr r2, [r0, #0x3c]
+ str r2, [r0, #0x38]
+ ldr r2, [r0, #0x38]
+ str r2, [r0, #0x34]
+ strh r3, [r0, #0x4c]
+ strh r3, [r0, #0x4e]
+ ldr r2, [r0, #0x20]
+ ldr r5, [r2, #0x0]
+ ldrh r3, [r5, #0x1c]
+ ldrh r2, [r5, #0x1e]
+ strh r3, [r0, #0x50]
+ strh r2, [r0, #0x52]
+ ldrh r2, [r5, #0x20]
+ strh r2, [r0, #0x54]
+ ldr r2, [r0, #0x20]
+ ldr r2, [r2, #0x0]
+ ldrh r2, [r2, #0x38]
+ strh r2, [r0, #0x56]
+ ldr r2, [r0, #0x20]
+ ldr r2, [r2, #0x0]
+ ldr r2, [r2, #0x10]
+ str r2, [r0, #0x58]
+ ldr r2, [r0, #0x20]
+ ldr r2, [r2, #0x0]
+ ldr r2, [r2, #0x14]
+ str r2, [r0, #0x5c]
+ ldr r2, [r0, #0x20]
+ ldr r2, [r2, #0x0]
+ ldr r2, [r2, #0x18]
+ str r2, [r0, #0x60]
+ ldr r2, [r0, #0x20]
+ ldr r2, [r2, #0x0]
+ ldr r2, [r2, #0x24]
+ str r2, [r0, #0x64]
+ ldr r2, [r0, #0x20]
+ ldr r2, [r2, #0x0]
+ ldr r2, [r2, #0x28]
+ str r2, [r0, #0x68]
+ ldr r2, [r0, #0x20]
+ ldr r2, [r2, #0x0]
+ ldr r2, [r2, #0x2c]
+ str r2, [r0, #0x6c]
+ ldr r2, [r0, #0x20]
+ ldr r2, [r2, #0x0]
+ ldrh r2, [r2, #0x3e]
+ strh r2, [r0, #0x70]
+ strh r4, [r0, #0x72]
+ ldr r2, [r0, #0x20]
+ ldr r2, [r2, #0x0]
+ ldrb r2, [r2, #0x44]
+ strb r2, [r0, #0x80]
+ ldr r2, [r0, #0x20]
+ ldr r2, [r2, #0x0]
+ ldrb r2, [r2, #0x45]
+ strb r2, [r0, #0x81]
+ ldr r2, [r0, #0x80]
+ bic r2, r2, #0x70000
+ str r2, [r0, #0x80]
+ ldr r2, [r0, #0x80]
+ and r2, r2, r12
+ str r2, [r0, #0x80]
+ str lr, [r0, #0x74]
+ ldr r2, [r0, #0x20]
+ ldr r2, [r2, #0x0]
+ ldr r2, [r2, #0x48]
+ mov r2, r2, lsl #0x6
+ mov r2, r2, lsr #0x1e
+ mov r2, r1, lsl r2
+ strh r2, [r0, #0x78]
+ ldr r2, [r0, #0x20]
+ ldr r2, [r2, #0x0]
+ ldr r2, [r2, #0x48]
+ mov r2, r2, lsl #0x4
+ mov r2, r2, lsr #0x1e
+ mov r1, r1, lsl r2
+ strh r1, [r0, #0x7a]
+ ldr r1, [r0, #0x20]
+ ldr r1, [r1, #0x0]
+ ldr r1, [r1, #0x4c]
+ mov r1, r1, lsl #0x1f
+ movs r1, r1, lsr #0x1f
+ ldrnesh r2, [r0, #0x78]
+ mvnne r1, #0x0
+ smulbbne r1, r2, r1
+ strneh r1, [r0, #0x78]
+ ldr r1, [r0, #0x20]
+ ldr r1, [r1, #0x0]
+ ldr r1, [r1, #0x4c]
+ mov r1, r1, lsl #0x1e
+ movs r1, r1, lsr #0x1f
+ ldrnesh r2, [r0, #0x7a]
+ mvnne r1, #0x0
+ smulbbne r1, r2, r1
+ strneh r1, [r0, #0x7a]
+ ldr r2, [r0, #0x20]
+ ldr r1, [r2, #0x0]
+ ldr r1, [r1, #0x0]
+ mov r1, r1, lsl #0xf
+ movs r1, r1, lsr #0x1f
+ beq _0208C3C0
+ ldr r1, [r2, #0x14]
+ mov r2, #0x1000
+ ldr r1, [r1, #0x10]
+ mov r1, r1, lsl #0x1e
+ mov r1, r1, lsr #0x1e
+ mov r1, r2, lsl r1
+ strh r1, [r0, #0x7c]
+ ldr r1, [r0, #0x20]
+ ldr r1, [r1, #0x14]
+ ldr r1, [r1, #0x10]
+ mov r1, r1, lsl #0x1c
+ mov r1, r1, lsr #0x1e
+ mov r1, r2, lsl r1
+ strh r1, [r0, #0x7e]
+ ldr r1, [r0, #0x20]
+ ldr r1, [r1, #0x14]
+ ldr r1, [r1, #0x10]
+ mov r1, r1, lsl #0x1b
+ movs r1, r1, lsr #0x1f
+ ldrnesh r2, [r0, #0x7c]
+ mvnne r1, #0x0
+ smulbbne r1, r2, r1
+ strneh r1, [r0, #0x7c]
+ ldr r1, [r0, #0x20]
+ ldr r1, [r1, #0x14]
+ ldr r1, [r1, #0x10]
+ mov r1, r1, lsl #0x1a
+ movs r1, r1, lsr #0x1f
+ ldrnesh r2, [r0, #0x7e]
+ mvnne r1, #0x0
+ smulbbne r1, r2, r1
+ strneh r1, [r0, #0x7e]
+_0208C3C0:
+ mov r2, #0x0
+ str r2, [r0, #0x4]
+ ldr r1, [r0, #0x4]
+ str r1, [r0, #0x0]
+ str r2, [r0, #0x14]
+ ldr r1, [r0, #0x14]
+ str r1, [r0, #0x8]
+ str r2, [r0, #0x18]
+ ldr r1, [r0, #0x18]
+ str r1, [r0, #0xc]
+ str r2, [r0, #0x90]
+ str r2, [r0, #0x94]
+ str r2, [r0, #0x98]
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+ .balign 4
+_0208C3FC: .word 0x00007FFF
+_0208C400: .word 0x0007FFFF
+
+ arm_func_start FUN_0208C404
+FUN_0208C404: ; 0x0208C404
+ bx lr
+
+ arm_func_start FUN_0208C408
+FUN_0208C408:
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0x4
+ ldr r7, [r0, #0xc]
+ ldr r3, _0208C4E0 ; =0x040004A8
+ str r7, [sp, #0x0]
+ ldr r1, [r0, #0x4]
+ mov r2, r7, lsl #0x1c
+ mov lr, r2, lsr #0x1c
+ mov r1, r1, lsr #0x3
+ orr r12, r1, lr, lsl #0x1a
+ mov r4, r7, lsl #0x18
+ mov r5, r7, lsl #0x14
+ mov r2, r7, lsl #0xf
+ mov r4, r4, lsr #0x1c
+ orr r12, r12, #0x40000000
+ mov r6, r7, lsl #0x12
+ orr r12, r12, r4, lsl #0x14
+ mov r5, r5, lsr #0x1c
+ mov r1, r7, lsl #0x10
+ orr r12, r12, r5, lsl #0x17
+ mov r4, r6, lsr #0x1e
+ mov r5, r1, lsr #0x1e
+ orr r1, r12, r4, lsl #0x10
+ mov r2, r2, lsr #0x1f
+ orr r1, r1, r5, lsl #0x12
+ orr r1, r1, r2, lsl #0x1d
+ str r1, [r3, #0x0]
+ cmp lr, #0x2
+ moveq r1, #0x1
+ movne r1, #0x0
+ ldr r2, [r0, #0x8]
+ rsb r1, r1, #0x4
+ mov r2, r2, lsr r1
+ ldr r1, _0208C4E4 ; =0x040004AC
+ ldr ip, _0208C4E8 ; =0x04000440
+ str r2, [r1, #0x0]
+ mov r2, #0x3
+ ldr r1, _0208C4EC ; =0x04000454
+ str r2, [r12, #0x0]
+ mov r3, #0x0
+ str r3, [r1, #0x0]
+ ldrh r1, [r0, #0x10]
+ ldrh r2, [r0, #0x12]
+ ldr r0, _0208C4F0 ; =0x0400046C
+ mov r1, r1, lsl #0xc
+ str r1, [r0, #0x0]
+ mov r1, r2, lsl #0xc
+ str r1, [r0, #0x0]
+ str r3, [r0, #0x0]
+ mov r0, #0x1
+ str r0, [r12, #0x0]
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r7,lr}
+ bx lr
+ .balign 4
+_0208C4E0: .word 0x040004A8
+_0208C4E4: .word 0x040004AC
+_0208C4E8: .word 0x04000440
+_0208C4EC: .word 0x04000454
+_0208C4F0: .word 0x0400046C
+
+ arm_func_start FUN_0208C4F4
+FUN_0208C4F4: ; 0x0208C4F4
+ stmdb sp!, {r4-r8,lr}
+ sub sp, sp, #0xf0
+ mov r4, r1
+ ldrh r2, [r4, #0x2e]
+ mov r5, r0
+ ldr r0, [r5, #0x3c]
+ mov r1, r2, lsl #0x16
+ mov r3, r2, lsl #0x1b
+ mov r1, r1, lsr #0x1b
+ mov r3, r3, lsr #0x1b
+ add r1, r1, #0x1
+ mul r6, r3, r1
+ mov r1, r2, lsl #0x10
+ movs r2, r6, asr #0x5
+ mov r1, r1, lsr #0x1a
+ orr r0, r0, #0xc0
+ orr r1, r0, r1, lsl #0x18
+ ldr r0, _0208C950 ; =0x040004A4
+ orr r1, r1, r2, lsl #0x10
+ str r1, [r0, #0x0]
+ addeq sp, sp, #0xf0
+ ldr r0, [r0, #0x0]
+ ldmeqia sp!, {r4-r8,lr}
+ bxeq lr
+ ldr r0, [r5, #0x40]
+ ldrh r1, [r4, #0x20]
+ ldr r0, [r0, #0x20]
+ ldr r6, _0208C954 ; =0x020FFA38
+ ldr r0, [r0, #0x14]
+ mov r1, r1, asr #0x4
+ ldrh r0, [r0, #0x0]
+ mov r2, r1, lsl #0x1
+ add r1, r2, #0x1
+ mov r7, r2, lsl #0x1
+ mov r1, r1, lsl #0x1
+ mov r0, r0, lsl #0x15
+ mov r3, r0, lsr #0x1e
+ ldr r2, _0208C958 ; =0x02106160
+ ldrsh r0, [r6, r7]
+ ldr r3, [r2, r3, lsl #0x2]
+ ldrsh r1, [r6, r1]
+ add r2, sp, #0x30
+ blx r3
+ add r0, sp, #0xc0
+ bl MTX_Identity43_
+ ldr r0, [r5, #0x40]
+ ldr r0, [r0, #0x20]
+ ldr r0, [r0, #0x14]
+ ldr r0, [r0, #0x10]
+ mov r0, r0, lsl #0x19
+ movs r0, r0, lsr #0x1f
+ bne _0208C5D4
+ add r1, sp, #0x90
+ add r0, r4, #0x14
+ bl VEC_Normalize
+ b _0208C604
+_0208C5D4:
+ add r1, sp, #0x90
+ add r0, r4, #0x8
+ bl VEC_Normalize
+ ldr r2, [sp, #0x90]
+ ldr r1, [sp, #0x94]
+ ldr r0, [sp, #0x98]
+ rsb r2, r2, #0x0
+ rsb r1, r1, #0x0
+ rsb r0, r0, #0x0
+ str r2, [sp, #0x90]
+ str r1, [sp, #0x94]
+ str r0, [sp, #0x98]
+_0208C604:
+ mov r3, #0x0
+ mov r2, #0x1000
+ add r0, sp, #0x90
+ add r1, sp, #0xb4
+ str r3, [sp, #0xb4]
+ str r2, [sp, #0xb8]
+ str r3, [sp, #0xbc]
+ bl VEC_DotProduct
+ ldr r1, _0208C95C ; =0x00000CCD
+ cmp r0, r1
+ bgt _0208C63C
+ ldr r1, _0208C960 ; =0xFFFFF333
+ cmp r0, r1
+ bge _0208C650
+_0208C63C:
+ mov r0, #0x0
+ mov r1, #0x1000
+ str r1, [sp, #0xb4]
+ str r0, [sp, #0xb8]
+ str r0, [sp, #0xbc]
+_0208C650:
+ add r0, sp, #0x90
+ add r1, sp, #0xb4
+ add r2, sp, #0x9c
+ bl VEC_CrossProduct
+ add r0, sp, #0x90
+ add r1, sp, #0x9c
+ add r2, sp, #0xa8
+ bl VEC_CrossProduct
+ ldr r7, [sp, #0x9c]
+ ldr r6, [sp, #0xa0]
+ ldr r3, [sp, #0xa4]
+ ldr r0, [sp, #0x90]
+ ldr r1, [sp, #0x94]
+ ldr r2, [sp, #0x98]
+ str r7, [sp, #0xc0]
+ ldr r7, [sp, #0xa8]
+ str r6, [sp, #0xc4]
+ ldr r6, [sp, #0xac]
+ str r3, [sp, #0xc8]
+ ldr r3, [sp, #0xb0]
+ str r0, [sp, #0xcc]
+ str r1, [sp, #0xd0]
+ add r0, sp, #0x30
+ str r2, [sp, #0xd4]
+ add r1, sp, #0xc0
+ mov r2, r0
+ str r7, [sp, #0xd8]
+ str r6, [sp, #0xdc]
+ str r3, [sp, #0xe0]
+ bl MTX_Concat43
+ ldr r0, [r5, #0x40]
+ ldr r2, [r4, #0x30]
+ ldr r0, [r0, #0x20]
+ mov r12, #0x800
+ ldr r0, [r0, #0x0]
+ mov r3, r2, asr #0x1f
+ ldrsh r1, [r0, #0x30]
+ ldr r0, [r0, #0x48]
+ mov lr, #0x0
+ smull r6, r1, r2, r1
+ adds r7, r6, r12
+ adc r6, r1, #0x0
+ mov r0, r0, lsl #0x1
+ mov r1, r7, lsr #0xc
+ orr r1, r1, r6, lsl #0x14
+ movs r0, r0, lsr #0x1d
+ beq _0208C720
+ cmp r0, #0x1
+ beq _0208C75C
+ cmp r0, #0x2
+ beq _0208C778
+ b _0208C79C
+_0208C720:
+ ldrsh r0, [r4, #0x34]
+ mov r8, r0, asr #0x1f
+ umull r7, r6, r2, r0
+ mla r6, r2, r8, r6
+ smull r8, r2, r1, r0
+ adds r1, r8, r12
+ adc r8, r2, lr
+ adds r2, r7, r12
+ mla r6, r3, r0, r6
+ mov r1, r1, lsr #0xc
+ adc r0, r6, lr
+ mov r2, r2, lsr #0xc
+ orr r1, r1, r8, lsl #0x14
+ orr r2, r2, r0, lsl #0x14
+ b _0208C79C
+_0208C75C:
+ ldrsh r0, [r4, #0x34]
+ smull r3, r0, r1, r0
+ adds r1, r3, r12
+ adc r0, r0, lr
+ mov r1, r1, lsr #0xc
+ orr r1, r1, r0, lsl #0x14
+ b _0208C79C
+_0208C778:
+ ldrsh r6, [r4, #0x34]
+ mov r0, r6, asr #0x1f
+ umull r8, r7, r2, r6
+ mla r7, r2, r0, r7
+ adds r2, r8, r12
+ mla r7, r3, r6, r7
+ adc r0, r7, lr
+ mov r2, r2, lsr #0xc
+ orr r2, r2, r0, lsl #0x14
+_0208C79C:
+ add r0, sp, #0x60
+ mov r3, r2
+ blx MTX_Scale43_
+ add r0, sp, #0x30
+ add r1, sp, #0x60
+ add r2, sp, #0x0
+ bl MTX_Concat43
+ ldr r0, [r5, #0x40]
+ ldr r0, [r0, #0x20]
+ ldr r3, [r0, #0x0]
+ ldr r0, [r3, #0x0]
+ mov r0, r0, lsl #0x8
+ movs r0, r0, lsr #0x1f
+ bne _0208C818
+ ldr r1, [r4, #0x8]
+ ldr r0, [r4, #0x38]
+ add r0, r1, r0
+ str r0, [sp, #0x24]
+ ldr r1, [r4, #0xc]
+ ldr r0, [r4, #0x3c]
+ add r0, r1, r0
+ str r0, [sp, #0x28]
+ ldr r1, [r4, #0x10]
+ ldr r0, [r4, #0x40]
+ add r0, r1, r0
+ str r0, [sp, #0x2c]
+ ldr r0, [r5, #0x44]
+ bl G3_LoadMtx43
+_0208C80C: ; 0x0208C80C
+ add r0, sp, #0x0
+ bl G3_MultMtx43
+ b _0208C8BC
+_0208C818:
+ ldr r2, [r4, #0x8]
+ ldr r1, [r4, #0x38]
+ ldr r0, [r3, #0x4]
+ add r1, r2, r1
+ sub r0, r1, r0
+ str r0, [sp, #0x24]
+ ldr r0, [r5, #0x40]
+ ldr r2, [r4, #0xc]
+ ldr r0, [r0, #0x20]
+ ldr r1, [r4, #0x3c]
+ ldr r0, [r0, #0x0]
+ add r2, r2, r1
+ ldr r1, [r0, #0x8]
+ ldr r0, _0208C964 ; =0x04000454
+ sub r1, r2, r1
+ str r1, [sp, #0x28]
+ ldr r1, [r5, #0x40]
+ ldr r3, [r4, #0x10]
+ ldr r1, [r1, #0x20]
+ ldr r2, [r4, #0x40]
+ ldr r1, [r1, #0x0]
+ add r3, r3, r2
+ ldr r2, [r1, #0xc]
+ mov r1, #0x0
+ sub r2, r3, r2
+ str r2, [sp, #0x2c]
+ str r1, [r0, #0x0]
+ ldr r1, [r5, #0x40]
+ ldr r0, _0208C968 ; =0x04000470
+ ldr r1, [r1, #0x20]
+ ldr r1, [r1, #0x0]
+ ldr r3, [r1, #0xc]
+ ldr r2, [r1, #0x8]
+ ldr r1, [r1, #0x4]
+ str r1, [r0, #0x0]
+ str r2, [r0, #0x0]
+ str r3, [r0, #0x0]
+ ldr r0, [r5, #0x44]
+ bl G3_MultMtx43
+_0208C8B4: ; 0x0208C8B4
+ add r0, sp, #0x0
+ bl G3_MultMtx43
+_0208C8BC:
+ ldr r0, [r5, #0x40]
+ ldrh r4, [r4, #0x36]
+ ldrh r12, [r0, #0x72]
+ mov r2, #0x0
+ and r1, r4, #0x1f
+ and r0, r12, #0x1f
+ mul r3, r1, r0
+ and r1, r4, #0x3e0
+ and r0, r12, #0x3e0
+ mul r0, r1, r0
+ and r4, r4, #0x7c00
+ and r1, r12, #0x7c00
+ mul r12, r4, r1
+ mov r1, r3, asr #0x5
+ mov r0, r0, asr #0xf
+ mov r3, r12, asr #0x19
+ orr r0, r1, r0, lsl #0x5
+ orr r0, r0, r3, lsl #0xa
+ mov r0, r0, lsl #0x10
+ ldr r1, _0208C96C ; =0x04000480
+ mov r0, r0, lsr #0x10
+ str r0, [r1, #0x0]
+ ldr r5, [r5, #0x40]
+ ldr r4, _0208C970 ; =0x02106158
+ ldr r1, [r5, #0x20]
+ ldrsh r0, [r5, #0x7c]
+ ldr r3, [r1, #0x14]
+ ldrsh r1, [r5, #0x7e]
+ ldrh r5, [r3, #0x0]
+ mov r3, r2
+ mov r5, r5, lsl #0x14
+ mov r5, r5, lsr #0x1f
+ ldr r4, [r4, r5, lsl #0x2]
+ blx r4
+ add sp, sp, #0xf0
+ ldmia sp!, {r4-r8,lr}
+ bx lr
+ .balign 4
+_0208C950: .word 0x040004A4
+_0208C954: .word 0x020FFA38
+_0208C958: .word 0x02106160
+_0208C95C: .word 0x00000CCD
+_0208C960: .word 0xFFFFF333
+_0208C964: .word 0x04000454
+_0208C968: .word 0x04000470
+_0208C96C: .word 0x04000480
+_0208C970: .word 0x02106158
+
+ arm_func_start FUN_0208C974
+FUN_0208C974: ; 0x0208C974
+ stmdb sp!, {r4-r8,lr}
+ sub sp, sp, #0xf0
+ mov r4, r1
+ ldrh r2, [r4, #0x2e]
+ mov r5, r0
+ ldr r0, [r5, #0x3c]
+ mov r1, r2, lsl #0x16
+ mov r3, r2, lsl #0x1b
+ mov r1, r1, lsr #0x1b
+ mov r3, r3, lsr #0x1b
+ add r1, r1, #0x1
+ mul r6, r3, r1
+ mov r1, r2, lsl #0x10
+ movs r2, r6, asr #0x5
+ mov r1, r1, lsr #0x1a
+ orr r0, r0, #0xc0
+ orr r1, r0, r1, lsl #0x18
+ ldr r0, _0208CDCC ; =0x040004A4
+ orr r1, r1, r2, lsl #0x10
+ str r1, [r0, #0x0]
+ addeq sp, sp, #0xf0
+ ldr r0, [r0, #0x0]
+ ldmeqia sp!, {r4-r8,lr}
+ bxeq lr
+ ldr r0, [r5, #0x40]
+ ldrh r1, [r4, #0x20]
+ ldr r0, [r0, #0x20]
+ ldr r6, _0208CDD0 ; =0x020FFA38
+ ldr r0, [r0, #0x0]
+ mov r1, r1, asr #0x4
+ mov r2, r1, lsl #0x1
+ ldr r0, [r0, #0x0]
+ add r1, r2, #0x1
+ mov r7, r2, lsl #0x1
+ mov r1, r1, lsl #0x1
+ mov r0, r0, lsl #0xd
+ mov r3, r0, lsr #0x1e
+ ldr r2, _0208CDD4 ; =0x02106160
+ ldrsh r0, [r6, r7]
+ ldr r3, [r2, r3, lsl #0x2]
+ ldrsh r1, [r6, r1]
+ add r2, sp, #0x30
+ blx r3
+ add r0, sp, #0xc0
+ bl MTX_Identity43_
+ ldr r0, [r5, #0x40]
+ ldr r0, [r0, #0x20]
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0x48]
+ movs r0, r0, lsr #0x1f
+ bne _0208CA50
+ add r1, sp, #0x90
+ add r0, r4, #0x14
+ bl VEC_Normalize
+ b _0208CA80
+_0208CA50:
+ add r1, sp, #0x90
+ add r0, r4, #0x8
+ bl VEC_Normalize
+ ldr r2, [sp, #0x90]
+ ldr r1, [sp, #0x94]
+ ldr r0, [sp, #0x98]
+ rsb r2, r2, #0x0
+ rsb r1, r1, #0x0
+ rsb r0, r0, #0x0
+ str r2, [sp, #0x90]
+ str r1, [sp, #0x94]
+ str r0, [sp, #0x98]
+_0208CA80:
+ mov r3, #0x0
+ mov r2, #0x1000
+ add r0, sp, #0x90
+ add r1, sp, #0xb4
+ str r3, [sp, #0xb4]
+ str r2, [sp, #0xb8]
+ str r3, [sp, #0xbc]
+ bl VEC_DotProduct
+ ldr r1, _0208CDD8 ; =0x00000CCD
+ cmp r0, r1
+ bgt _0208CAB8
+ ldr r1, _0208CDDC ; =0xFFFFF333
+ cmp r0, r1
+ bge _0208CACC
+_0208CAB8:
+ mov r0, #0x0
+ mov r1, #0x1000
+ str r1, [sp, #0xb4]
+ str r0, [sp, #0xb8]
+ str r0, [sp, #0xbc]
+_0208CACC:
+ add r0, sp, #0x90
+ add r1, sp, #0xb4
+ add r2, sp, #0x9c
+ bl VEC_CrossProduct
+ add r0, sp, #0x90
+ add r1, sp, #0x9c
+ add r2, sp, #0xa8
+ bl VEC_CrossProduct
+ ldr r7, [sp, #0x9c]
+ ldr r6, [sp, #0xa0]
+ ldr r3, [sp, #0xa4]
+ ldr r0, [sp, #0x90]
+ ldr r1, [sp, #0x94]
+ ldr r2, [sp, #0x98]
+ str r7, [sp, #0xc0]
+ ldr r7, [sp, #0xa8]
+ str r6, [sp, #0xc4]
+ ldr r6, [sp, #0xac]
+ str r3, [sp, #0xc8]
+ ldr r3, [sp, #0xb0]
+ str r0, [sp, #0xcc]
+ str r1, [sp, #0xd0]
+ add r0, sp, #0x30
+ str r2, [sp, #0xd4]
+ add r1, sp, #0xc0
+ mov r2, r0
+ str r7, [sp, #0xd8]
+ str r6, [sp, #0xdc]
+ str r3, [sp, #0xe0]
+ bl MTX_Concat43
+ ldr r0, [r5, #0x40]
+ ldr r2, [r4, #0x30]
+ ldr r0, [r0, #0x20]
+ mov r12, #0x800
+ ldr r0, [r0, #0x0]
+ mov r3, r2, asr #0x1f
+ ldrsh r1, [r0, #0x30]
+ ldr r0, [r0, #0x48]
+ mov lr, #0x0
+ smull r6, r1, r2, r1
+ adds r7, r6, r12
+ adc r6, r1, #0x0
+ mov r0, r0, lsl #0x1
+ mov r1, r7, lsr #0xc
+ orr r1, r1, r6, lsl #0x14
+ movs r0, r0, lsr #0x1d
+ beq _0208CB9C
+ cmp r0, #0x1
+ beq _0208CBD8
+ cmp r0, #0x2
+ beq _0208CBF4
+ b _0208CC18
+_0208CB9C:
+ ldrsh r0, [r4, #0x34]
+ mov r8, r0, asr #0x1f
+ umull r7, r6, r2, r0
+ mla r6, r2, r8, r6
+ smull r8, r2, r1, r0
+ adds r1, r8, r12
+ adc r8, r2, lr
+ adds r2, r7, r12
+ mla r6, r3, r0, r6
+ mov r1, r1, lsr #0xc
+ adc r0, r6, lr
+ mov r2, r2, lsr #0xc
+ orr r1, r1, r8, lsl #0x14
+ orr r2, r2, r0, lsl #0x14
+ b _0208CC18
+_0208CBD8:
+ ldrsh r0, [r4, #0x34]
+ smull r3, r0, r1, r0
+ adds r1, r3, r12
+ adc r0, r0, lr
+ mov r1, r1, lsr #0xc
+ orr r1, r1, r0, lsl #0x14
+ b _0208CC18
+_0208CBF4:
+ ldrsh r6, [r4, #0x34]
+ mov r0, r6, asr #0x1f
+ umull r8, r7, r2, r6
+ mla r7, r2, r0, r7
+ adds r2, r8, r12
+ mla r7, r3, r6, r7
+ adc r0, r7, lr
+ mov r2, r2, lsr #0xc
+ orr r2, r2, r0, lsl #0x14
+_0208CC18:
+ add r0, sp, #0x60
+ mov r3, r2
+ blx MTX_Scale43_
+ add r0, sp, #0x60
+ add r1, sp, #0x30
+ add r2, sp, #0x0
+ bl MTX_Concat43
+ ldr r0, [r5, #0x40]
+ ldr r0, [r0, #0x20]
+ ldr r3, [r0, #0x0]
+ ldr r0, [r3, #0x0]
+ mov r0, r0, lsl #0x8
+ movs r0, r0, lsr #0x1f
+ bne _0208CC94
+ ldr r1, [r4, #0x8]
+ ldr r0, [r4, #0x38]
+ add r0, r1, r0
+ str r0, [sp, #0x24]
+ ldr r1, [r4, #0xc]
+ ldr r0, [r4, #0x3c]
+ add r0, r1, r0
+ str r0, [sp, #0x28]
+ ldr r1, [r4, #0x10]
+ ldr r0, [r4, #0x40]
+ add r0, r1, r0
+ str r0, [sp, #0x2c]
+ ldr r0, [r5, #0x44]
+ bl G3_LoadMtx43
+_0208CC88: ; 0x0208CC88
+ add r0, sp, #0x0
+ bl G3_MultMtx43
+ b _0208CD38
+_0208CC94:
+ ldr r2, [r4, #0x8]
+ ldr r1, [r4, #0x38]
+ ldr r0, [r3, #0x4]
+ add r1, r2, r1
+ sub r0, r1, r0
+ str r0, [sp, #0x24]
+ ldr r0, [r5, #0x40]
+ ldr r2, [r4, #0xc]
+ ldr r0, [r0, #0x20]
+ ldr r1, [r4, #0x3c]
+ ldr r0, [r0, #0x0]
+ add r2, r2, r1
+ ldr r1, [r0, #0x8]
+ ldr r0, _0208CDE0 ; =0x04000454
+ sub r1, r2, r1
+ str r1, [sp, #0x28]
+ ldr r1, [r5, #0x40]
+ ldr r3, [r4, #0x10]
+ ldr r1, [r1, #0x20]
+ ldr r2, [r4, #0x40]
+ ldr r1, [r1, #0x0]
+ add r3, r3, r2
+ ldr r2, [r1, #0xc]
+ mov r1, #0x0
+ sub r2, r3, r2
+ str r2, [sp, #0x2c]
+ str r1, [r0, #0x0]
+ ldr r1, [r5, #0x40]
+ ldr r0, _0208CDE4 ; =0x04000470
+ ldr r1, [r1, #0x20]
+ ldr r1, [r1, #0x0]
+ ldr r3, [r1, #0xc]
+ ldr r2, [r1, #0x8]
+ ldr r1, [r1, #0x4]
+ str r1, [r0, #0x0]
+ str r2, [r0, #0x0]
+ str r3, [r0, #0x0]
+ ldr r0, [r5, #0x44]
+ bl G3_MultMtx43
+_0208CD30: ; 0x0208CD30
+ add r0, sp, #0x0
+ bl G3_MultMtx43
+_0208CD38:
+ ldr r0, [r5, #0x40]
+ ldrh r4, [r4, #0x36]
+ ldrh r12, [r0, #0x72]
+ ldr r1, _0208CDE8 ; =0x04000480
+ and r2, r4, #0x1f
+ and r0, r12, #0x1f
+ mul r3, r2, r0
+ and r2, r4, #0x3e0
+ and r0, r12, #0x3e0
+ mul r0, r2, r0
+ and r4, r4, #0x7c00
+ and r2, r12, #0x7c00
+ mul r12, r4, r2
+ mov r2, r3, asr #0x5
+ mov r0, r0, asr #0xf
+ mov r3, r12, asr #0x19
+ orr r0, r2, r0, lsl #0x5
+ orr r0, r0, r3, lsl #0xa
+ mov r0, r0, lsl #0x10
+ mov r0, r0, lsr #0x10
+ str r0, [r1, #0x0]
+ ldr r2, [r5, #0x40]
+ ldr r4, _0208CDEC ; =0x02106158
+ ldr r1, [r2, #0x20]
+ ldrsh r0, [r2, #0x78]
+ ldr r12, [r1, #0x0]
+ ldrsh r1, [r2, #0x7a]
+ ldr r3, [r12, #0x0]
+ ldrsh r2, [r12, #0x50]
+ mov r3, r3, lsl #0xc
+ mov r5, r3, lsr #0x1f
+ ldrsh r3, [r12, #0x52]
+ ldr r4, [r4, r5, lsl #0x2]
+ blx r4
+ add sp, sp, #0xf0
+ ldmia sp!, {r4-r8,lr}
+ bx lr
+ .balign 4
+_0208CDCC: .word 0x040004A4
+_0208CDD0: .word 0x020FFA38
+_0208CDD4: .word 0x02106160
+_0208CDD8: .word 0x00000CCD
+_0208CDDC: .word 0xFFFFF333
+_0208CDE0: .word 0x04000454
+_0208CDE4: .word 0x04000470
+_0208CDE8: .word 0x04000480
+_0208CDEC: .word 0x02106158
+
+ arm_func_start FUN_0208CDF0
+FUN_0208CDF0: ; 0x0208CDF0
+ stmdb sp!, {r4-r8,lr}
+ sub sp, sp, #0x90
+ mov r4, r1
+ ldrh r2, [r4, #0x2e]
+ mov r5, r0
+ ldr r0, [r5, #0x3c]
+ mov r1, r2, lsl #0x16
+ mov r3, r2, lsl #0x1b
+ mov r1, r1, lsr #0x1b
+ mov r3, r3, lsr #0x1b
+ add r1, r1, #0x1
+ mul r6, r3, r1
+ mov r1, r2, lsl #0x10
+ movs r2, r6, asr #0x5
+ mov r1, r1, lsr #0x1a
+ orr r0, r0, #0xc0
+ orr r1, r0, r1, lsl #0x18
+ ldr r0, _0208D124 ; =0x040004A4
+ orr r1, r1, r2, lsl #0x10
+ str r1, [r0, #0x0]
+ addeq sp, sp, #0x90
+ ldr r0, [r0, #0x0]
+ ldmeqia sp!, {r4-r8,lr}
+ bxeq lr
+ ldr r0, [r5, #0x40]
+ ldrh r1, [r4, #0x20]
+ ldr r0, [r0, #0x20]
+ ldr r6, _0208D128 ; =0x020FFA38
+ ldr r0, [r0, #0x14]
+ mov r1, r1, asr #0x4
+ ldrh r0, [r0, #0x0]
+ mov r2, r1, lsl #0x1
+ add r1, r2, #0x1
+ mov r7, r2, lsl #0x1
+ mov r1, r1, lsl #0x1
+ mov r0, r0, lsl #0x15
+ mov r3, r0, lsr #0x1e
+ ldr r2, _0208D12C ; =0x02106160
+ ldrsh r0, [r6, r7]
+ ldr r3, [r2, r3, lsl #0x2]
+ ldrsh r1, [r6, r1]
+ add r2, sp, #0x30
+ blx r3
+ ldr r0, [r5, #0x40]
+ ldr r2, [r4, #0x30]
+ ldr r0, [r0, #0x20]
+ mov r12, #0x800
+ ldr r0, [r0, #0x0]
+ mov r3, r2, asr #0x1f
+ ldrsh r1, [r0, #0x30]
+ ldr r0, [r0, #0x48]
+ mov lr, #0x0
+ smull r6, r1, r2, r1
+ adds r7, r6, r12
+ adc r6, r1, #0x0
+ mov r1, r7, lsr #0xc
+ mov r0, r0, lsl #0x1
+ orr r1, r1, r6, lsl #0x14
+ movs r0, r0, lsr #0x1d
+ beq _0208CEF4
+ cmp r0, #0x1
+ beq _0208CF30
+ cmp r0, #0x2
+ beq _0208CF4C
+ b _0208CF70
+_0208CEF4:
+ ldrsh r0, [r4, #0x34]
+ mov r8, r0, asr #0x1f
+ umull r7, r6, r2, r0
+ mla r6, r2, r8, r6
+ smull r8, r2, r1, r0
+ adds r1, r8, r12
+ adc r8, r2, lr
+ adds r2, r7, r12
+ mla r6, r3, r0, r6
+ mov r1, r1, lsr #0xc
+ adc r0, r6, lr
+ mov r2, r2, lsr #0xc
+ orr r1, r1, r8, lsl #0x14
+ orr r2, r2, r0, lsl #0x14
+ b _0208CF70
+_0208CF30:
+ ldrsh r0, [r4, #0x34]
+ smull r3, r0, r1, r0
+ adds r1, r3, r12
+ adc r0, r0, lr
+ mov r1, r1, lsr #0xc
+ orr r1, r1, r0, lsl #0x14
+ b _0208CF70
+_0208CF4C:
+ ldrsh r6, [r4, #0x34]
+ mov r0, r6, asr #0x1f
+ umull r8, r7, r2, r6
+ mla r7, r2, r0, r7
+ adds r2, r8, r12
+ mla r7, r3, r6, r7
+ adc r0, r7, lr
+ mov r2, r2, lsr #0xc
+ orr r2, r2, r0, lsl #0x14
+_0208CF70:
+ add r0, sp, #0x60
+ mov r3, r2
+ blx MTX_Scale43_
+ add r0, sp, #0x30
+ add r1, sp, #0x60
+ add r2, sp, #0x0
+ bl MTX_Concat43
+ ldr r0, [r5, #0x40]
+ ldr r0, [r0, #0x20]
+ ldr r3, [r0, #0x0]
+ ldr r0, [r3, #0x0]
+ mov r0, r0, lsl #0x8
+ movs r0, r0, lsr #0x1f
+ bne _0208CFEC
+ ldr r1, [r4, #0x8]
+ ldr r0, [r4, #0x38]
+ add r0, r1, r0
+ str r0, [sp, #0x24]
+ ldr r1, [r4, #0xc]
+ ldr r0, [r4, #0x3c]
+ add r0, r1, r0
+ str r0, [sp, #0x28]
+ ldr r1, [r4, #0x10]
+ ldr r0, [r4, #0x40]
+ add r0, r1, r0
+ str r0, [sp, #0x2c]
+ ldr r0, [r5, #0x44]
+ bl G3_LoadMtx43
+_0208CFE0: ; 0x0208CFE0
+ add r0, sp, #0x0
+ bl G3_MultMtx43
+ b _0208D090
+_0208CFEC:
+ ldr r2, [r4, #0x8]
+ ldr r1, [r4, #0x38]
+ ldr r0, [r3, #0x4]
+ add r1, r2, r1
+ sub r0, r1, r0
+ str r0, [sp, #0x24]
+ ldr r0, [r5, #0x40]
+ ldr r2, [r4, #0xc]
+ ldr r0, [r0, #0x20]
+ ldr r1, [r4, #0x3c]
+ ldr r0, [r0, #0x0]
+ add r2, r2, r1
+ ldr r1, [r0, #0x8]
+ ldr r0, _0208D130 ; =0x04000454
+ sub r1, r2, r1
+ str r1, [sp, #0x28]
+ ldr r1, [r5, #0x40]
+ ldr r3, [r4, #0x10]
+ ldr r1, [r1, #0x20]
+ ldr r2, [r4, #0x40]
+ ldr r1, [r1, #0x0]
+ add r3, r3, r2
+ ldr r2, [r1, #0xc]
+ mov r1, #0x0
+ sub r2, r3, r2
+ str r2, [sp, #0x2c]
+ str r1, [r0, #0x0]
+ ldr r1, [r5, #0x40]
+ ldr r0, _0208D134 ; =0x04000470
+ ldr r1, [r1, #0x20]
+ ldr r1, [r1, #0x0]
+ ldr r3, [r1, #0xc]
+ ldr r2, [r1, #0x8]
+ ldr r1, [r1, #0x4]
+ str r1, [r0, #0x0]
+ str r2, [r0, #0x0]
+ str r3, [r0, #0x0]
+ ldr r0, [r5, #0x44]
+ bl G3_MultMtx43
+_0208D088: ; 0x0208D088
+ add r0, sp, #0x0
+ bl G3_MultMtx43
+_0208D090:
+ ldr r0, [r5, #0x40]
+ ldrh r4, [r4, #0x36]
+ ldrh r12, [r0, #0x72]
+ mov r2, #0x0
+ and r1, r4, #0x1f
+ and r0, r12, #0x1f
+ mul r3, r1, r0
+ and r1, r4, #0x3e0
+ and r0, r12, #0x3e0
+ mul r0, r1, r0
+ and r4, r4, #0x7c00
+ and r1, r12, #0x7c00
+ mul r12, r4, r1
+ mov r1, r3, asr #0x5
+ mov r0, r0, asr #0xf
+ mov r3, r12, asr #0x19
+ orr r0, r1, r0, lsl #0x5
+ orr r0, r0, r3, lsl #0xa
+ mov r0, r0, lsl #0x10
+ ldr r1, _0208D138 ; =0x04000480
+ mov r0, r0, lsr #0x10
+ str r0, [r1, #0x0]
+ ldr r5, [r5, #0x40]
+ ldr r4, _0208D13C ; =0x02106158
+ ldr r1, [r5, #0x20]
+ ldrsh r0, [r5, #0x7c]
+ ldr r3, [r1, #0x14]
+ ldrsh r1, [r5, #0x7e]
+ ldrh r5, [r3, #0x0]
+ mov r3, r2
+ mov r5, r5, lsl #0x14
+ mov r5, r5, lsr #0x1f
+ ldr r4, [r4, r5, lsl #0x2]
+ blx r4
+ add sp, sp, #0x90
+ ldmia sp!, {r4-r8,lr}
+ bx lr
+ .balign 4
+_0208D124: .word 0x040004A4
+_0208D128: .word 0x020FFA38
+_0208D12C: .word 0x02106160
+_0208D130: .word 0x04000454
+_0208D134: .word 0x04000470
+_0208D138: .word 0x04000480
+_0208D13C: .word 0x02106158
+
+ arm_func_start FUN_0208D140
+FUN_0208D140: ; 0x0208D140
+ stmdb sp!, {r4-r8,lr}
+ sub sp, sp, #0x90
+ mov r4, r1
+ ldrh r2, [r4, #0x2e]
+ mov r5, r0
+ ldr r0, [r5, #0x3c]
+ mov r1, r2, lsl #0x16
+ mov r3, r2, lsl #0x1b
+ mov r1, r1, lsr #0x1b
+ mov r3, r3, lsr #0x1b
+ add r1, r1, #0x1
+ mul r6, r3, r1
+ mov r1, r2, lsl #0x10
+ movs r2, r6, asr #0x5
+ mov r1, r1, lsr #0x1a
+ orr r0, r0, #0xc0
+ orr r1, r0, r1, lsl #0x18
+ ldr r0, _0208D474 ; =0x040004A4
+ orr r1, r1, r2, lsl #0x10
+ str r1, [r0, #0x0]
+ addeq sp, sp, #0x90
+ ldr r0, [r0, #0x0]
+ ldmeqia sp!, {r4-r8,lr}
+ bxeq lr
+ ldr r0, [r5, #0x40]
+ ldrh r1, [r4, #0x20]
+ ldr r0, [r0, #0x20]
+ ldr r6, _0208D478 ; =0x020FFA38
+ ldr r0, [r0, #0x0]
+ mov r1, r1, asr #0x4
+ mov r2, r1, lsl #0x1
+ ldr r0, [r0, #0x0]
+ add r1, r2, #0x1
+ mov r7, r2, lsl #0x1
+ mov r1, r1, lsl #0x1
+ mov r0, r0, lsl #0xd
+ mov r3, r0, lsr #0x1e
+ ldr r2, _0208D47C ; =0x02106160
+ ldrsh r0, [r6, r7]
+ ldr r3, [r2, r3, lsl #0x2]
+ ldrsh r1, [r6, r1]
+ add r2, sp, #0x30
+ blx r3
+ ldr r0, [r5, #0x40]
+ ldr r2, [r4, #0x30]
+ ldr r0, [r0, #0x20]
+ mov r12, #0x800
+ ldr r0, [r0, #0x0]
+ mov r3, r2, asr #0x1f
+ ldrsh r1, [r0, #0x30]
+ ldr r0, [r0, #0x48]
+ mov lr, #0x0
+ smull r6, r1, r2, r1
+ adds r7, r6, r12
+ adc r6, r1, #0x0
+ mov r1, r7, lsr #0xc
+ mov r0, r0, lsl #0x1
+ orr r1, r1, r6, lsl #0x14
+ movs r0, r0, lsr #0x1d
+ beq _0208D244
+ cmp r0, #0x1
+ beq _0208D280
+ cmp r0, #0x2
+ beq _0208D29C
+ b _0208D2C0
+_0208D244:
+ ldrsh r0, [r4, #0x34]
+ mov r8, r0, asr #0x1f
+ umull r7, r6, r2, r0
+ mla r6, r2, r8, r6
+ smull r8, r2, r1, r0
+ adds r1, r8, r12
+ adc r8, r2, lr
+ adds r2, r7, r12
+ mla r6, r3, r0, r6
+ mov r1, r1, lsr #0xc
+ adc r0, r6, lr
+ mov r2, r2, lsr #0xc
+ orr r1, r1, r8, lsl #0x14
+ orr r2, r2, r0, lsl #0x14
+ b _0208D2C0
+_0208D280:
+ ldrsh r0, [r4, #0x34]
+ smull r3, r0, r1, r0
+ adds r1, r3, r12
+ adc r0, r0, lr
+ mov r1, r1, lsr #0xc
+ orr r1, r1, r0, lsl #0x14
+ b _0208D2C0
+_0208D29C:
+ ldrsh r6, [r4, #0x34]
+ mov r0, r6, asr #0x1f
+ umull r8, r7, r2, r6
+ mla r7, r2, r0, r7
+ adds r2, r8, r12
+ mla r7, r3, r6, r7
+ adc r0, r7, lr
+ mov r2, r2, lsr #0xc
+ orr r2, r2, r0, lsl #0x14
+_0208D2C0:
+ add r0, sp, #0x60
+ mov r3, r2
+ blx MTX_Scale43_
+ add r0, sp, #0x60
+ add r1, sp, #0x30
+ add r2, sp, #0x0
+ bl MTX_Concat43
+ ldr r0, [r5, #0x40]
+ ldr r0, [r0, #0x20]
+ ldr r3, [r0, #0x0]
+ ldr r0, [r3, #0x0]
+ mov r0, r0, lsl #0x8
+ movs r0, r0, lsr #0x1f
+ bne _0208D33C
+ ldr r1, [r4, #0x8]
+ ldr r0, [r4, #0x38]
+ add r0, r1, r0
+ str r0, [sp, #0x24]
+ ldr r1, [r4, #0xc]
+ ldr r0, [r4, #0x3c]
+ add r0, r1, r0
+ str r0, [sp, #0x28]
+ ldr r1, [r4, #0x10]
+ ldr r0, [r4, #0x40]
+ add r0, r1, r0
+ str r0, [sp, #0x2c]
+ ldr r0, [r5, #0x44]
+ bl G3_LoadMtx43
+_0208D330: ; 0x0208D330
+ add r0, sp, #0x0
+ bl G3_MultMtx43
+ b _0208D3E0
+_0208D33C:
+ ldr r2, [r4, #0x8]
+ ldr r1, [r4, #0x38]
+ ldr r0, [r3, #0x4]
+ add r1, r2, r1
+ sub r0, r1, r0
+ str r0, [sp, #0x24]
+ ldr r0, [r5, #0x40]
+ ldr r2, [r4, #0xc]
+ ldr r0, [r0, #0x20]
+ ldr r1, [r4, #0x3c]
+ ldr r0, [r0, #0x0]
+ add r2, r2, r1
+ ldr r1, [r0, #0x8]
+ ldr r0, _0208D480 ; =0x04000454
+ sub r1, r2, r1
+ str r1, [sp, #0x28]
+ ldr r1, [r5, #0x40]
+ ldr r3, [r4, #0x10]
+ ldr r1, [r1, #0x20]
+ ldr r2, [r4, #0x40]
+ ldr r1, [r1, #0x0]
+ add r3, r3, r2
+ ldr r2, [r1, #0xc]
+ mov r1, #0x0
+ sub r2, r3, r2
+ str r2, [sp, #0x2c]
+ str r1, [r0, #0x0]
+ ldr r1, [r5, #0x40]
+ ldr r0, _0208D484 ; =0x04000470
+ ldr r1, [r1, #0x20]
+ ldr r1, [r1, #0x0]
+ ldr r3, [r1, #0xc]
+ ldr r2, [r1, #0x8]
+ ldr r1, [r1, #0x4]
+ str r1, [r0, #0x0]
+ str r2, [r0, #0x0]
+ str r3, [r0, #0x0]
+ ldr r0, [r5, #0x44]
+ bl G3_MultMtx43
+_0208D3D8: ; 0x0208D3D8
+ add r0, sp, #0x0
+ bl G3_MultMtx43
+_0208D3E0:
+ ldr r0, [r5, #0x40]
+ ldrh r4, [r4, #0x36]
+ ldrh r12, [r0, #0x72]
+ ldr r1, _0208D488 ; =0x04000480
+ and r2, r4, #0x1f
+ and r0, r12, #0x1f
+ mul r3, r2, r0
+ and r2, r4, #0x3e0
+ and r0, r12, #0x3e0
+ mul r0, r2, r0
+ and r4, r4, #0x7c00
+ and r2, r12, #0x7c00
+ mul r12, r4, r2
+ mov r2, r3, asr #0x5
+ mov r0, r0, asr #0xf
+ mov r3, r12, asr #0x19
+ orr r0, r2, r0, lsl #0x5
+ orr r0, r0, r3, lsl #0xa
+ mov r0, r0, lsl #0x10
+ mov r0, r0, lsr #0x10
+ str r0, [r1, #0x0]
+ ldr r2, [r5, #0x40]
+ ldr r4, _0208D48C ; =0x02106158
+ ldr r1, [r2, #0x20]
+ ldrsh r0, [r2, #0x78]
+ ldr r12, [r1, #0x0]
+ ldrsh r1, [r2, #0x7a]
+ ldr r3, [r12, #0x0]
+ ldrsh r2, [r12, #0x50]
+ mov r3, r3, lsl #0xc
+ mov r5, r3, lsr #0x1f
+ ldrsh r3, [r12, #0x52]
+ ldr r4, [r4, r5, lsl #0x2]
+ blx r4
+ add sp, sp, #0x90
+ ldmia sp!, {r4-r8,lr}
+ bx lr
+ .balign 4
+_0208D474: .word 0x040004A4
+_0208D478: .word 0x020FFA38
+_0208D47C: .word 0x02106160
+_0208D480: .word 0x04000454
+_0208D484: .word 0x04000470
+_0208D488: .word 0x04000480
+_0208D48C: .word 0x02106158
+
+ arm_func_start FUN_0208D490
+FUN_0208D490: ; 0x0208D490
+ stmdb sp!, {r4-r10,lr}
+ sub sp, sp, #0x88
+ mov r6, r1
+ ldrh r1, [r6, #0x2e]
+ mov r7, r0
+ ldr r4, [r7, #0x40]
+ mov r0, r1, lsl #0x16
+ mov r2, r1, lsl #0x1b
+ mov r0, r0, lsr #0x1b
+ mov r2, r2, lsr #0x1b
+ add r0, r0, #0x1
+ mul r3, r2, r0
+ ldr r2, [r4, #0x20]
+ movs r3, r3, asr #0x5
+ ldr r0, [r7, #0x3c]
+ ldr r4, [r2, #0x0]
+ mov r1, r1, lsl #0x10
+ mov r2, r1, lsr #0x1a
+ orr r1, r0, #0xc0
+ orr r2, r1, r2, lsl #0x18
+ ldrsh r0, [r4, #0x30]
+ ldr r8, [r7, #0x44]
+ ldr r1, _0208DB60 ; =0x040004A4
+ orr r2, r2, r3, lsl #0x10
+ str r2, [r1, #0x0]
+ addeq sp, sp, #0x88
+ ldr r1, [r1, #0x0]
+ ldmeqia sp!, {r4-r10,lr}
+ bxeq lr
+ ldr r4, [r6, #0x30]
+ ldr r1, [r7, #0x40]
+ smull r2, r5, r4, r0
+ ldr r0, [r1, #0x20]
+ mov r3, #0x800
+ adds r1, r2, r3
+ ldr r2, [r0, #0x0]
+ adc r9, r5, #0x0
+ ldr r0, [r2, #0x48]
+ mov r5, r1, lsr #0xc
+ mov r0, r0, lsl #0x1
+ mov r1, r4, asr #0x1f
+ orr r5, r5, r9, lsl #0x14
+ movs r0, r0, lsr #0x1d
+ mov r9, #0x0
+ beq _0208D558
+ cmp r0, #0x1
+ beq _0208D594
+ cmp r0, #0x2
+ beq _0208D5B0
+ b _0208D5D4
+_0208D558:
+ ldrsh r0, [r6, #0x34]
+ mov lr, r0, asr #0x1f
+ umull r12, r10, r4, r0
+ mla r10, r4, lr, r10
+ smull lr, r4, r5, r0
+ mla r10, r1, r0, r10
+ adds r0, lr, r3
+ adc lr, r4, r9
+ adds r1, r12, r3
+ mov r5, r0, lsr #0xc
+ adc r0, r10, r9
+ mov r4, r1, lsr #0xc
+ orr r5, r5, lr, lsl #0x14
+ orr r4, r4, r0, lsl #0x14
+ b _0208D5D4
+_0208D594:
+ ldrsh r0, [r6, #0x34]
+ smull r1, r0, r5, r0
+ adds r1, r1, r3
+ adc r0, r0, r9
+ mov r5, r1, lsr #0xc
+ orr r5, r5, r0, lsl #0x14
+ b _0208D5D4
+_0208D5B0:
+ ldrsh r10, [r6, #0x34]
+ mov r0, r10, asr #0x1f
+ umull lr, r12, r4, r10
+ mla r12, r4, r0, r12
+ adds r3, lr, r3
+ mla r12, r1, r10, r12
+ adc r0, r12, r9
+ mov r4, r3, lsr #0xc
+ orr r4, r4, r0, lsl #0x14
+_0208D5D4:
+ ldr r0, [r2, #0x0]
+ mov r0, r0, lsl #0x8
+ movs r0, r0, lsr #0x1f
+ bne _0208D83C
+ ldr r1, [r6, #0x8]
+ ldr r0, [r6, #0x38]
+ add r9, sp, #0x18
+ add r0, r1, r0
+ str r0, [sp, #0xc]
+ ldr r2, [r6, #0xc]
+ ldr r1, [r6, #0x3c]
+ add r0, r6, #0x14
+ add r1, r2, r1
+ str r1, [sp, #0x10]
+ ldr r2, [r6, #0x10]
+ ldr r1, [r6, #0x40]
+ add r1, r2, r1
+ str r1, [sp, #0x14]
+ ldmia r0, {r0-r2}
+ stmia r9, {r0-r2}
+ ldr r0, [r8, #0x8]
+ add r1, sp, #0x24
+ str r0, [sp, #0x24]
+ ldr r2, [r8, #0x14]
+ mov r0, r9
+ str r2, [sp, #0x28]
+ ldr r3, [r8, #0x20]
+ mov r2, r9
+ str r3, [sp, #0x2c]
+ bl VEC_CrossProduct
+ ldr r0, [sp, #0x18]
+ cmp r0, #0x0
+ bne _0208D678
+ ldr r0, [sp, #0x1c]
+ cmp r0, #0x0
+ bne _0208D678
+ ldr r0, [sp, #0x20]
+ cmp r0, #0x0
+ addeq sp, sp, #0x88
+ ldmeqia sp!, {r4-r10,lr}
+ bxeq lr
+_0208D678:
+ add r0, sp, #0x18
+ mov r1, r0
+ bl VEC_Normalize
+ add r1, sp, #0x30
+ mov r0, r8
+ bl MI_Copy36B
+ add r0, sp, #0x18
+ add r1, sp, #0x30
+ mov r2, r0
+ bl MTX_MultVec33
+ add r0, sp, #0xc
+ mov r1, r8
+ mov r2, r0
+ bl MTX_MultVec43
+ add r0, r6, #0x14
+ add r3, sp, #0x0
+ ldmia r0, {r0-r2}
+ stmia r3, {r0-r2}
+ mov r0, r3
+ mov r1, r3
+ bl VEC_Normalize
+ ldr r0, [r8, #0x20]
+ ldr r1, [sp, #0x8]
+ rsb r0, r0, #0x0
+ smull r3, r0, r1, r0
+ mov r2, #0x800
+ adds r1, r3, r2
+ ldr r3, [r8, #0x14]
+ adc r0, r0, #0x0
+ mov r1, r1, lsr #0xc
+ orr r1, r1, r0, lsl #0x14
+ ldr r0, [r8, #0x8]
+ ldr r9, [sp, #0x0]
+ rsb r0, r0, #0x0
+ smull r8, r0, r9, r0
+ adds r9, r8, r2
+ adc r8, r0, #0x0
+ mov r0, r9, lsr #0xc
+ orr r0, r0, r8, lsl #0x14
+ ldr r8, [sp, #0x4]
+ rsb r3, r3, #0x0
+ smull r9, r3, r8, r3
+ adds r8, r9, r2
+ adc r2, r3, #0x0
+ mov r3, r8, lsr #0xc
+ orr r3, r3, r2, lsl #0x14
+ add r0, r0, r3
+ adds r1, r1, r0
+ ldr r0, [r7, #0x40]
+ rsbmi r1, r1, #0x0
+ ldr r0, [r0, #0x20]
+ rsb r2, r1, #0x1000
+ ldr r0, [r0, #0x0]
+ mov r9, #0x800
+ ldr r0, [r0, #0x48]
+ ldr r12, [sp, #0x18]
+ mov r0, r0, lsl #0x8
+ mov r0, r0, lsr #0x10
+ smull r8, r0, r2, r0
+ adds r2, r8, r9
+ adc r0, r0, #0x0
+ mov r1, #0x0
+ mov r2, r2, lsr #0xc
+ orr r2, r2, r0, lsl #0x14
+ add r0, r2, #0x1000
+ smull r2, r0, r4, r0
+ adds r2, r2, r9
+ adc r0, r0, #0x0
+ mov lr, r2, lsr #0xc
+ orr lr, lr, r0, lsl #0x14
+ smull r0, r4, r12, r5
+ adds r8, r0, r9
+ ldr r3, [sp, #0x1c]
+ ldr r0, [sp, #0xc]
+ rsb r2, r3, #0x0
+ str r0, [sp, #0x78]
+ ldr r0, [sp, #0x10]
+ smull r10, r5, r3, r5
+ str r0, [sp, #0x7c]
+ smull r3, r0, r2, lr
+ adc r4, r4, #0x0
+ mov r8, r8, lsr #0xc
+ orr r8, r8, r4, lsl #0x14
+ adds r3, r3, r9
+ smull lr, r2, r12, lr
+ str r8, [sp, #0x54]
+ adc r0, r0, #0x0
+ adds r8, r10, r9
+ adc r4, r5, #0x0
+ adds r5, lr, r9
+ mov r9, r3, lsr #0xc
+ orr r9, r9, r0, lsl #0x14
+ mov r8, r8, lsr #0xc
+ orr r8, r8, r4, lsl #0x14
+ ldr r3, [sp, #0x14]
+ adc r0, r2, #0x0
+ mov r5, r5, lsr #0xc
+ orr r5, r5, r0, lsl #0x14
+ mov r4, #0x1000
+ ldr r2, _0208DB64 ; =0x04000454
+ str r9, [sp, #0x60]
+ str r8, [sp, #0x58]
+ add r0, sp, #0x54
+ str r5, [sp, #0x64]
+ str r1, [sp, #0x6c]
+ str r1, [sp, #0x70]
+ str r1, [sp, #0x5c]
+ str r1, [sp, #0x68]
+ str r4, [sp, #0x74]
+ str r3, [sp, #0x80]
+ str r1, [r2, #0x0]
+ bl G3_MultMtx43
+ b _0208DAE8
+_0208D83C:
+ ldr r3, [r6, #0x8]
+ ldr r1, [r6, #0x38]
+ ldr r0, [r2, #0x4]
+ add r1, r3, r1
+ sub r0, r1, r0
+ str r0, [sp, #0xc]
+ ldr r0, [r7, #0x40]
+ ldr r2, [r6, #0xc]
+ ldr r0, [r0, #0x20]
+ ldr r1, [r6, #0x3c]
+ ldr r0, [r0, #0x0]
+ add r1, r2, r1
+ ldr r0, [r0, #0x8]
+ add r9, sp, #0x18
+ sub r0, r1, r0
+ str r0, [sp, #0x10]
+ ldr r0, [r7, #0x40]
+ ldr r2, [r6, #0x10]
+ ldr r0, [r0, #0x20]
+ ldr r1, [r6, #0x40]
+ ldr r0, [r0, #0x0]
+ add r2, r2, r1
+ ldr r1, [r0, #0xc]
+ add r0, r6, #0x14
+ sub r1, r2, r1
+ str r1, [sp, #0x14]
+ ldmia r0, {r0-r2}
+ stmia r9, {r0-r2}
+ ldr r0, [r8, #0x8]
+ add r1, sp, #0x24
+ str r0, [sp, #0x24]
+ ldr r2, [r8, #0x14]
+ mov r0, r9
+ str r2, [sp, #0x28]
+ ldr r3, [r8, #0x20]
+ mov r2, r9
+ str r3, [sp, #0x2c]
+ bl VEC_CrossProduct
+ ldr r0, [sp, #0x18]
+ cmp r0, #0x0
+ bne _0208D900
+ ldr r0, [sp, #0x1c]
+ cmp r0, #0x0
+ bne _0208D900
+ ldr r0, [sp, #0x20]
+ cmp r0, #0x0
+ addeq sp, sp, #0x88
+ ldmeqia sp!, {r4-r10,lr}
+ bxeq lr
+_0208D900:
+ add r0, sp, #0x18
+ mov r1, r0
+ bl VEC_Normalize
+ add r1, sp, #0x30
+ mov r0, r8
+ bl MI_Copy36B
+ add r0, sp, #0x18
+ add r1, sp, #0x30
+ mov r2, r0
+ bl MTX_MultVec33
+ add r0, sp, #0xc
+ mov r1, r8
+ mov r2, r0
+ bl MTX_MultVec43
+ add r0, r6, #0x14
+ add r3, sp, #0x0
+ ldmia r0, {r0-r2}
+ stmia r3, {r0-r2}
+ mov r0, r3
+ mov r1, r3
+ bl VEC_Normalize
+ ldr r0, [r8, #0x20]
+ ldr r1, [sp, #0x8]
+ rsb r0, r0, #0x0
+ smull r3, r0, r1, r0
+ mov r2, #0x800
+ adds r1, r3, r2
+ ldr r3, [r8, #0x14]
+ adc r0, r0, #0x0
+ mov r1, r1, lsr #0xc
+ orr r1, r1, r0, lsl #0x14
+ ldr r0, [r8, #0x8]
+ ldr r9, [sp, #0x0]
+ rsb r0, r0, #0x0
+ smull r8, r0, r9, r0
+ adds r9, r8, r2
+ adc r8, r0, #0x0
+ mov r0, r9, lsr #0xc
+ orr r0, r0, r8, lsl #0x14
+ ldr r8, [sp, #0x4]
+ rsb r3, r3, #0x0
+ smull r9, r3, r8, r3
+ adds r8, r9, r2
+ adc r2, r3, #0x0
+ mov r3, r8, lsr #0xc
+ orr r3, r3, r2, lsl #0x14
+ add r0, r0, r3
+ adds r1, r1, r0
+ ldr r0, [r7, #0x40]
+ rsbmi r1, r1, #0x0
+ ldr r0, [r0, #0x20]
+ rsb r2, r1, #0x1000
+ ldr r0, [r0, #0x0]
+ mov r9, #0x800
+ ldr r0, [r0, #0x48]
+ ldr lr, [sp, #0x18]
+ mov r0, r0, lsl #0x8
+ mov r0, r0, lsr #0x10
+ smull r8, r0, r2, r0
+ adds r2, r8, r9
+ adc r0, r0, #0x0
+ mov r1, #0x0
+ mov r2, r2, lsr #0xc
+ orr r2, r2, r0, lsl #0x14
+ add r0, r2, #0x1000
+ smull r2, r0, r4, r0
+ adds r2, r2, r9
+ adc r0, r0, #0x0
+ mov r8, r2, lsr #0xc
+ orr r8, r8, r0, lsl #0x14
+ smull r0, r4, lr, r5
+ adds r12, r0, r9
+ ldr r3, [sp, #0x1c]
+ ldr r0, [sp, #0xc]
+ rsb r2, r3, #0x0
+ str r0, [sp, #0x78]
+ ldr r0, [sp, #0x10]
+ smull r10, r5, r3, r5
+ str r0, [sp, #0x7c]
+ smull r3, r0, r2, r8
+ adc r4, r4, #0x0
+ mov r12, r12, lsr #0xc
+ adds r3, r3, r9
+ orr r12, r12, r4, lsl #0x14
+ adc r0, r0, #0x0
+ adds r10, r10, r9
+ smull r8, r2, lr, r8
+ adc r4, r5, #0x0
+ adds r5, r8, r9
+ mov r9, r3, lsr #0xc
+ orr r9, r9, r0, lsl #0x14
+ mov r8, r10, lsr #0xc
+ orr r8, r8, r4, lsl #0x14
+ ldr r3, [sp, #0x14]
+ adc r0, r2, #0x0
+ mov r2, r5, lsr #0xc
+ orr r2, r2, r0, lsl #0x14
+ mov r4, #0x1000
+ ldr r0, _0208DB64 ; =0x04000454
+ str r12, [sp, #0x54]
+ str r9, [sp, #0x60]
+ str r8, [sp, #0x58]
+ str r1, [sp, #0x6c]
+ str r2, [sp, #0x64]
+ str r1, [sp, #0x70]
+ str r1, [sp, #0x5c]
+ str r1, [sp, #0x68]
+ str r4, [sp, #0x74]
+ str r3, [sp, #0x80]
+ str r1, [r0, #0x0]
+ ldr r0, [r7, #0x40]
+ ldr r1, _0208DB68 ; =0x04000470
+ ldr r2, [r0, #0x20]
+ add r0, sp, #0x54
+ ldr r2, [r2, #0x0]
+ ldr r4, [r2, #0xc]
+ ldr r3, [r2, #0x8]
+ ldr r2, [r2, #0x4]
+ str r2, [r1, #0x0]
+ str r3, [r1, #0x0]
+ str r4, [r1, #0x0]
+ bl G3_MultMtx43
+_0208DAE8:
+ ldr r0, [r7, #0x40]
+ ldrh r4, [r6, #0x36]
+ ldrh r5, [r0, #0x72]
+ mov r2, #0x0
+ and r1, r4, #0x1f
+ and r0, r5, #0x1f
+ mul r3, r1, r0
+ and r1, r4, #0x3e0
+ and r0, r5, #0x3e0
+ mul r0, r1, r0
+ and r4, r4, #0x7c00
+ and r1, r5, #0x7c00
+ mul r5, r4, r1
+ mov r1, r3, asr #0x5
+ mov r0, r0, asr #0xf
+ mov r3, r5, asr #0x19
+ orr r0, r1, r0, lsl #0x5
+ orr r0, r0, r3, lsl #0xa
+ mov r0, r0, lsl #0x10
+ ldr r1, _0208DB6C ; =0x04000480
+ mov r0, r0, lsr #0x10
+ str r0, [r1, #0x0]
+ ldr r1, [r7, #0x40]
+ mov r3, r2
+ ldrsh r0, [r1, #0x7c]
+ ldrsh r1, [r1, #0x7e]
+ bl FUN_0208ECA0
+ add sp, sp, #0x88
+ ldmia sp!, {r4-r10,lr}
+ bx lr
+ .balign 4
+_0208DB60: .word 0x040004A4
+_0208DB64: .word 0x04000454
+_0208DB68: .word 0x04000470
+_0208DB6C: .word 0x04000480
+
+ arm_func_start FUN_0208DB70
+FUN_0208DB70: ; 0x0208DB70
+ stmdb sp!, {r4-r10,lr}
+ sub sp, sp, #0x88
+ mov r6, r1
+ ldrh r1, [r6, #0x2e]
+ mov r7, r0
+ ldr r4, [r7, #0x40]
+ mov r0, r1, lsl #0x16
+ mov r2, r1, lsl #0x1b
+ mov r0, r0, lsr #0x1b
+ mov r2, r2, lsr #0x1b
+ add r0, r0, #0x1
+ mul r3, r2, r0
+ ldr r2, [r4, #0x20]
+ movs r3, r3, asr #0x5
+ ldr r0, [r7, #0x3c]
+ ldr r4, [r2, #0x0]
+ mov r1, r1, lsl #0x10
+ mov r2, r1, lsr #0x1a
+ orr r1, r0, #0xc0
+ orr r2, r1, r2, lsl #0x18
+ ldrsh r0, [r4, #0x30]
+ ldr r8, [r7, #0x44]
+ ldr r1, _0208E248 ; =0x040004A4
+ orr r2, r2, r3, lsl #0x10
+ str r2, [r1, #0x0]
+ addeq sp, sp, #0x88
+ ldr r1, [r1, #0x0]
+ ldmeqia sp!, {r4-r10,lr}
+ bxeq lr
+ ldr r4, [r6, #0x30]
+ ldr r1, [r7, #0x40]
+ smull r2, r5, r4, r0
+ ldr r0, [r1, #0x20]
+ mov r3, #0x800
+ adds r1, r2, r3
+ ldr r2, [r0, #0x0]
+ adc r9, r5, #0x0
+ ldr r0, [r2, #0x48]
+ mov r5, r1, lsr #0xc
+ mov r0, r0, lsl #0x1
+ mov r1, r4, asr #0x1f
+ orr r5, r5, r9, lsl #0x14
+ movs r0, r0, lsr #0x1d
+ mov r9, #0x0
+ beq _0208DC38
+ cmp r0, #0x1
+ beq _0208DC74
+ cmp r0, #0x2
+ beq _0208DC90
+ b _0208DCB4
+_0208DC38:
+ ldrsh r0, [r6, #0x34]
+ mov lr, r0, asr #0x1f
+ umull r12, r10, r4, r0
+ mla r10, r4, lr, r10
+ smull lr, r4, r5, r0
+ mla r10, r1, r0, r10
+ adds r0, lr, r3
+ adc lr, r4, r9
+ adds r1, r12, r3
+ mov r5, r0, lsr #0xc
+ adc r0, r10, r9
+ mov r4, r1, lsr #0xc
+ orr r5, r5, lr, lsl #0x14
+ orr r4, r4, r0, lsl #0x14
+ b _0208DCB4
+_0208DC74:
+ ldrsh r0, [r6, #0x34]
+ smull r1, r0, r5, r0
+ adds r1, r1, r3
+ adc r0, r0, r9
+ mov r5, r1, lsr #0xc
+ orr r5, r5, r0, lsl #0x14
+ b _0208DCB4
+_0208DC90:
+ ldrsh r10, [r6, #0x34]
+ mov r0, r10, asr #0x1f
+ umull lr, r12, r4, r10
+ mla r12, r4, r0, r12
+ adds r3, lr, r3
+ mla r12, r1, r10, r12
+ adc r0, r12, r9
+ mov r4, r3, lsr #0xc
+ orr r4, r4, r0, lsl #0x14
+_0208DCB4:
+ ldr r0, [r2, #0x0]
+ mov r0, r0, lsl #0x8
+ movs r0, r0, lsr #0x1f
+ bne _0208DF1C
+ ldr r1, [r6, #0x8]
+ ldr r0, [r6, #0x38]
+ add r9, sp, #0x18
+ add r0, r1, r0
+ str r0, [sp, #0xc]
+ ldr r2, [r6, #0xc]
+ ldr r1, [r6, #0x3c]
+ add r0, r6, #0x14
+ add r1, r2, r1
+ str r1, [sp, #0x10]
+ ldr r2, [r6, #0x10]
+ ldr r1, [r6, #0x40]
+ add r1, r2, r1
+ str r1, [sp, #0x14]
+ ldmia r0, {r0-r2}
+ stmia r9, {r0-r2}
+ ldr r0, [r8, #0x8]
+ add r1, sp, #0x24
+ str r0, [sp, #0x24]
+ ldr r2, [r8, #0x14]
+ mov r0, r9
+ str r2, [sp, #0x28]
+ ldr r3, [r8, #0x20]
+ mov r2, r9
+ str r3, [sp, #0x2c]
+ bl VEC_CrossProduct
+ ldr r0, [sp, #0x18]
+ cmp r0, #0x0
+ bne _0208DD58
+ ldr r0, [sp, #0x1c]
+ cmp r0, #0x0
+ bne _0208DD58
+ ldr r0, [sp, #0x20]
+ cmp r0, #0x0
+ addeq sp, sp, #0x88
+ ldmeqia sp!, {r4-r10,lr}
+ bxeq lr
+_0208DD58:
+ add r0, sp, #0x18
+ mov r1, r0
+ bl VEC_Normalize
+ add r1, sp, #0x30
+ mov r0, r8
+ bl MI_Copy36B
+ add r0, sp, #0x18
+ add r1, sp, #0x30
+ mov r2, r0
+ bl MTX_MultVec33
+ add r0, sp, #0xc
+ mov r1, r8
+ mov r2, r0
+ bl MTX_MultVec43
+ add r0, r6, #0x14
+ add r3, sp, #0x0
+ ldmia r0, {r0-r2}
+ stmia r3, {r0-r2}
+ mov r0, r3
+ mov r1, r3
+ bl VEC_Normalize
+ ldr r0, [r8, #0x20]
+ ldr r1, [sp, #0x8]
+ rsb r0, r0, #0x0
+ smull r3, r0, r1, r0
+ mov r2, #0x800
+ adds r1, r3, r2
+ ldr r3, [r8, #0x14]
+ adc r0, r0, #0x0
+ mov r1, r1, lsr #0xc
+ orr r1, r1, r0, lsl #0x14
+ ldr r0, [r8, #0x8]
+ ldr r9, [sp, #0x0]
+ rsb r0, r0, #0x0
+ smull r8, r0, r9, r0
+ adds r9, r8, r2
+ adc r8, r0, #0x0
+ mov r0, r9, lsr #0xc
+ orr r0, r0, r8, lsl #0x14
+ ldr r8, [sp, #0x4]
+ rsb r3, r3, #0x0
+ smull r9, r3, r8, r3
+ adds r8, r9, r2
+ adc r2, r3, #0x0
+ mov r3, r8, lsr #0xc
+ orr r3, r3, r2, lsl #0x14
+ add r0, r0, r3
+ adds r1, r1, r0
+ ldr r0, [r7, #0x40]
+ rsbmi r1, r1, #0x0
+ ldr r0, [r0, #0x20]
+ rsb r2, r1, #0x1000
+ ldr r0, [r0, #0x0]
+ mov r9, #0x800
+ ldr r0, [r0, #0x48]
+ ldr r12, [sp, #0x18]
+ mov r0, r0, lsl #0x8
+ mov r0, r0, lsr #0x10
+ smull r8, r0, r2, r0
+ adds r2, r8, r9
+ adc r0, r0, #0x0
+ mov r1, #0x0
+ mov r2, r2, lsr #0xc
+ orr r2, r2, r0, lsl #0x14
+ add r0, r2, #0x1000
+ smull r2, r0, r4, r0
+ adds r2, r2, r9
+ adc r0, r0, #0x0
+ mov lr, r2, lsr #0xc
+ orr lr, lr, r0, lsl #0x14
+ smull r0, r4, r12, r5
+ adds r8, r0, r9
+ ldr r3, [sp, #0x1c]
+ ldr r0, [sp, #0xc]
+ rsb r2, r3, #0x0
+ str r0, [sp, #0x78]
+ ldr r0, [sp, #0x10]
+ smull r10, r5, r3, r5
+ str r0, [sp, #0x7c]
+ smull r3, r0, r2, lr
+ adc r4, r4, #0x0
+ mov r8, r8, lsr #0xc
+ orr r8, r8, r4, lsl #0x14
+ adds r3, r3, r9
+ smull lr, r2, r12, lr
+ str r8, [sp, #0x54]
+ adc r0, r0, #0x0
+ adds r8, r10, r9
+ adc r4, r5, #0x0
+ adds r5, lr, r9
+ mov r9, r3, lsr #0xc
+ orr r9, r9, r0, lsl #0x14
+ mov r8, r8, lsr #0xc
+ orr r8, r8, r4, lsl #0x14
+ ldr r3, [sp, #0x14]
+ adc r0, r2, #0x0
+ mov r5, r5, lsr #0xc
+ orr r5, r5, r0, lsl #0x14
+ mov r4, #0x1000
+ ldr r2, _0208E24C ; =0x04000454
+ str r9, [sp, #0x60]
+ str r8, [sp, #0x58]
+ add r0, sp, #0x54
+ str r5, [sp, #0x64]
+ str r1, [sp, #0x6c]
+ str r1, [sp, #0x70]
+ str r1, [sp, #0x5c]
+ str r1, [sp, #0x68]
+ str r4, [sp, #0x74]
+ str r3, [sp, #0x80]
+ str r1, [r2, #0x0]
+ bl G3_MultMtx43
+ b _0208E1C8
+_0208DF1C:
+ ldr r3, [r6, #0x8]
+ ldr r1, [r6, #0x38]
+ ldr r0, [r2, #0x4]
+ add r1, r3, r1
+ sub r0, r1, r0
+ str r0, [sp, #0xc]
+ ldr r0, [r7, #0x40]
+ ldr r2, [r6, #0xc]
+ ldr r0, [r0, #0x20]
+ ldr r1, [r6, #0x3c]
+ ldr r0, [r0, #0x0]
+ add r1, r2, r1
+ ldr r0, [r0, #0x8]
+ add r9, sp, #0x18
+ sub r0, r1, r0
+ str r0, [sp, #0x10]
+ ldr r0, [r7, #0x40]
+ ldr r2, [r6, #0x10]
+ ldr r0, [r0, #0x20]
+ ldr r1, [r6, #0x40]
+ ldr r0, [r0, #0x0]
+ add r2, r2, r1
+ ldr r1, [r0, #0xc]
+ add r0, r6, #0x14
+ sub r1, r2, r1
+ str r1, [sp, #0x14]
+ ldmia r0, {r0-r2}
+ stmia r9, {r0-r2}
+ ldr r0, [r8, #0x8]
+ add r1, sp, #0x24
+ str r0, [sp, #0x24]
+ ldr r2, [r8, #0x14]
+ mov r0, r9
+ str r2, [sp, #0x28]
+ ldr r3, [r8, #0x20]
+ mov r2, r9
+ str r3, [sp, #0x2c]
+ bl VEC_CrossProduct
+ ldr r0, [sp, #0x18]
+ cmp r0, #0x0
+ bne _0208DFE0
+ ldr r0, [sp, #0x1c]
+ cmp r0, #0x0
+ bne _0208DFE0
+ ldr r0, [sp, #0x20]
+ cmp r0, #0x0
+ addeq sp, sp, #0x88
+ ldmeqia sp!, {r4-r10,lr}
+ bxeq lr
+_0208DFE0:
+ add r0, sp, #0x18
+ mov r1, r0
+ bl VEC_Normalize
+ add r1, sp, #0x30
+ mov r0, r8
+ bl MI_Copy36B
+ add r0, sp, #0x18
+ add r1, sp, #0x30
+ mov r2, r0
+ bl MTX_MultVec33
+ add r0, sp, #0xc
+ mov r1, r8
+ mov r2, r0
+ bl MTX_MultVec43
+ add r0, r6, #0x14
+ add r3, sp, #0x0
+ ldmia r0, {r0-r2}
+ stmia r3, {r0-r2}
+ mov r0, r3
+ mov r1, r3
+ bl VEC_Normalize
+ ldr r0, [r8, #0x20]
+ ldr r1, [sp, #0x8]
+ rsb r0, r0, #0x0
+ smull r3, r0, r1, r0
+ mov r2, #0x800
+ adds r1, r3, r2
+ ldr r3, [r8, #0x14]
+ adc r0, r0, #0x0
+ mov r1, r1, lsr #0xc
+ orr r1, r1, r0, lsl #0x14
+ ldr r0, [r8, #0x8]
+ ldr r9, [sp, #0x0]
+ rsb r0, r0, #0x0
+ smull r8, r0, r9, r0
+ adds r9, r8, r2
+ adc r8, r0, #0x0
+ mov r0, r9, lsr #0xc
+ orr r0, r0, r8, lsl #0x14
+ ldr r8, [sp, #0x4]
+ rsb r3, r3, #0x0
+ smull r9, r3, r8, r3
+ adds r8, r9, r2
+ adc r2, r3, #0x0
+ mov r3, r8, lsr #0xc
+ orr r3, r3, r2, lsl #0x14
+ add r0, r0, r3
+ adds r1, r1, r0
+ ldr r0, [r7, #0x40]
+ rsbmi r1, r1, #0x0
+ ldr r0, [r0, #0x20]
+ rsb r2, r1, #0x1000
+ ldr r0, [r0, #0x0]
+ mov r9, #0x800
+ ldr r0, [r0, #0x48]
+ ldr lr, [sp, #0x18]
+ mov r0, r0, lsl #0x8
+ mov r0, r0, lsr #0x10
+ smull r8, r0, r2, r0
+ adds r2, r8, r9
+ adc r0, r0, #0x0
+ mov r1, #0x0
+ mov r2, r2, lsr #0xc
+ orr r2, r2, r0, lsl #0x14
+ add r0, r2, #0x1000
+ smull r2, r0, r4, r0
+ adds r2, r2, r9
+ adc r0, r0, #0x0
+ mov r8, r2, lsr #0xc
+ orr r8, r8, r0, lsl #0x14
+ smull r0, r4, lr, r5
+ adds r12, r0, r9
+ ldr r3, [sp, #0x1c]
+ ldr r0, [sp, #0xc]
+ rsb r2, r3, #0x0
+ str r0, [sp, #0x78]
+ ldr r0, [sp, #0x10]
+ smull r10, r5, r3, r5
+ str r0, [sp, #0x7c]
+ smull r3, r0, r2, r8
+ adc r4, r4, #0x0
+ mov r12, r12, lsr #0xc
+ adds r3, r3, r9
+ orr r12, r12, r4, lsl #0x14
+ adc r0, r0, #0x0
+ adds r10, r10, r9
+ smull r8, r2, lr, r8
+ adc r4, r5, #0x0
+ adds r5, r8, r9
+ mov r9, r3, lsr #0xc
+ orr r9, r9, r0, lsl #0x14
+ mov r8, r10, lsr #0xc
+ orr r8, r8, r4, lsl #0x14
+ ldr r3, [sp, #0x14]
+ adc r0, r2, #0x0
+ mov r2, r5, lsr #0xc
+ orr r2, r2, r0, lsl #0x14
+ mov r4, #0x1000
+ ldr r0, _0208E24C ; =0x04000454
+ str r12, [sp, #0x54]
+ str r9, [sp, #0x60]
+ str r8, [sp, #0x58]
+ str r1, [sp, #0x6c]
+ str r2, [sp, #0x64]
+ str r1, [sp, #0x70]
+ str r1, [sp, #0x5c]
+ str r1, [sp, #0x68]
+ str r4, [sp, #0x74]
+ str r3, [sp, #0x80]
+ str r1, [r0, #0x0]
+ ldr r0, [r7, #0x40]
+ ldr r1, _0208E250 ; =0x04000470
+ ldr r2, [r0, #0x20]
+ add r0, sp, #0x54
+ ldr r2, [r2, #0x0]
+ ldr r4, [r2, #0xc]
+ ldr r3, [r2, #0x8]
+ ldr r2, [r2, #0x4]
+ str r2, [r1, #0x0]
+ str r3, [r1, #0x0]
+ str r4, [r1, #0x0]
+ bl G3_MultMtx43
+_0208E1C8:
+ ldr r0, [r7, #0x40]
+ ldrh r4, [r6, #0x36]
+ ldrh r5, [r0, #0x72]
+ ldr r1, _0208E254 ; =0x04000480
+ and r2, r4, #0x1f
+ and r0, r5, #0x1f
+ mul r3, r2, r0
+ and r2, r4, #0x3e0
+ and r0, r5, #0x3e0
+ mul r0, r2, r0
+ and r4, r4, #0x7c00
+ and r2, r5, #0x7c00
+ mul r5, r4, r2
+ mov r2, r3, asr #0x5
+ mov r0, r0, asr #0xf
+ mov r3, r5, asr #0x19
+ orr r0, r2, r0, lsl #0x5
+ orr r0, r0, r3, lsl #0xa
+ mov r0, r0, lsl #0x10
+ mov r0, r0, lsr #0x10
+ str r0, [r1, #0x0]
+ ldr r2, [r7, #0x40]
+ ldr r1, [r2, #0x20]
+ ldrsh r0, [r2, #0x78]
+ ldr r3, [r1, #0x0]
+ ldrsh r1, [r2, #0x7a]
+ ldrsh r2, [r3, #0x50]
+ ldrsh r3, [r3, #0x52]
+ bl FUN_0208ECA0
+ add sp, sp, #0x88
+ ldmia sp!, {r4-r10,lr}
+ bx lr
+ .balign 4
+_0208E248: .word 0x040004A4
+_0208E24C: .word 0x04000454
+_0208E250: .word 0x04000470
+_0208E254: .word 0x04000480
+
+ arm_func_start FUN_0208E258
+FUN_0208E258: ; 0x0208E258
+ stmdb sp!, {r4-r10,lr}
+ sub sp, sp, #0x40
+ mov r6, r1
+ ldrh r1, [r6, #0x2e]
+ mov r7, r0
+ ldr r4, [r7, #0x40]
+ mov r0, r1, lsl #0x16
+ mov r2, r1, lsl #0x1b
+ mov r0, r0, lsr #0x1b
+ mov r2, r2, lsr #0x1b
+ add r0, r0, #0x1
+ mul r3, r2, r0
+ ldr r2, [r4, #0x20]
+ ldr r0, [r7, #0x3c]
+ ldr r4, [r2, #0x0]
+ mov r1, r1, lsl #0x10
+ mov r2, r1, lsr #0x1a
+ orr r1, r0, #0xc0
+ ldrsh r0, [r4, #0x30]
+ movs r4, r3, asr #0x5
+ orr r3, r1, r2, lsl #0x18
+ ldr r1, [r7, #0x44]
+ ldr r2, _0208E698 ; =0x040004A4
+ orr r3, r3, r4, lsl #0x10
+ str r3, [r2, #0x0]
+ addeq sp, sp, #0x40
+ ldr r2, [r2, #0x0]
+ ldmeqia sp!, {r4-r10,lr}
+ bxeq lr
+ ldr r4, [r6, #0x30]
+ ldr r2, [r7, #0x40]
+ smull r3, r5, r4, r0
+ ldr r0, [r2, #0x20]
+ mov r8, #0x800
+ adds r2, r3, r8
+ ldr r3, [r0, #0x0]
+ adc r9, r5, #0x0
+ ldr r0, [r3, #0x48]
+ mov r5, r2, lsr #0xc
+ mov r0, r0, lsl #0x1
+ mov r2, r4, asr #0x1f
+ orr r5, r5, r9, lsl #0x14
+ movs r0, r0, lsr #0x1d
+ mov r9, #0x0
+ beq _0208E320
+ cmp r0, #0x1
+ beq _0208E35C
+ cmp r0, #0x2
+ beq _0208E378
+ b _0208E39C
+_0208E320:
+ ldrsh r0, [r6, #0x34]
+ mov lr, r0, asr #0x1f
+ umull r12, r10, r4, r0
+ mla r10, r4, lr, r10
+ smull lr, r4, r5, r0
+ mla r10, r2, r0, r10
+ adds r0, lr, r8
+ adc lr, r4, r9
+ adds r2, r12, r8
+ mov r5, r0, lsr #0xc
+ adc r0, r10, r9
+ mov r4, r2, lsr #0xc
+ orr r5, r5, lr, lsl #0x14
+ orr r4, r4, r0, lsl #0x14
+ b _0208E39C
+_0208E35C:
+ ldrsh r0, [r6, #0x34]
+ smull r2, r0, r5, r0
+ adds r2, r2, r8
+ adc r0, r0, r9
+ mov r5, r2, lsr #0xc
+ orr r5, r5, r0, lsl #0x14
+ b _0208E39C
+_0208E378:
+ ldrsh r10, [r6, #0x34]
+ mov r0, r10, asr #0x1f
+ umull lr, r12, r4, r10
+ mla r12, r4, r0, r12
+ adds r4, lr, r8
+ mla r12, r2, r10, r12
+ adc r0, r12, r9
+ mov r4, r4, lsr #0xc
+ orr r4, r4, r0, lsl #0x14
+_0208E39C:
+ ldr r0, [r3, #0x0]
+ mov r0, r0, lsl #0x8
+ movs r0, r0, lsr #0x1f
+ bne _0208E4BC
+ ldr r3, [r6, #0x8]
+ ldr r2, [r6, #0x38]
+ add r0, sp, #0x0
+ add r2, r3, r2
+ str r2, [sp, #0x0]
+ ldr r8, [r6, #0xc]
+ ldr r3, [r6, #0x3c]
+ mov r2, r0
+ add r3, r8, r3
+ str r3, [sp, #0x4]
+ ldr r8, [r6, #0x10]
+ ldr r3, [r6, #0x40]
+ add r3, r8, r3
+ str r3, [sp, #0x8]
+ bl MTX_MultVec43
+ ldrh r0, [r6, #0x20]
+ ldr r2, _0208E69C ; =0x020FFA38
+ mov r9, #0x0
+ mov r0, r0, asr #0x4
+ mov r3, r0, lsl #0x1
+ mov r0, r3, lsl #0x1
+ ldrsh r1, [r2, r0]
+ add r0, r3, #0x1
+ mov r0, r0, lsl #0x1
+ ldrsh r0, [r2, r0]
+ mov lr, #0x1000
+ ldr r3, [sp, #0x0]
+ ldr r2, [sp, #0x4]
+ str r3, [sp, #0x30]
+ smull r12, r10, r1, r5
+ str lr, [sp, #0x2c]
+ rsb r8, r1, #0x0
+ ldr r1, [sp, #0x8]
+ smull lr, r5, r0, r5
+ mov r3, #0x800
+ str r2, [sp, #0x34]
+ adds r2, lr, r3
+ adc r5, r5, #0x0
+ adds r12, r12, r3
+ mov lr, r2, lsr #0xc
+ orr lr, lr, r5, lsl #0x14
+ smull r5, r2, r8, r4
+ adc r10, r10, #0x0
+ mov r8, r12, lsr #0xc
+ orr r8, r8, r10, lsl #0x14
+ adds r5, r5, r3
+ smull r10, r4, r0, r4
+ adc r0, r2, #0x0
+ adds r2, r10, r3
+ mov r5, r5, lsr #0xc
+ orr r5, r5, r0, lsl #0x14
+ mov r3, r2, lsr #0xc
+ adc r0, r4, #0x0
+ orr r3, r3, r0, lsl #0x14
+ ldr r2, _0208E6A0 ; =0x04000454
+ str lr, [sp, #0xc]
+ add r0, sp, #0xc
+ str r8, [sp, #0x10]
+ str r9, [sp, #0x14]
+ str r5, [sp, #0x18]
+ str r3, [sp, #0x1c]
+ str r9, [sp, #0x20]
+ str r9, [sp, #0x24]
+ str r9, [sp, #0x28]
+ str r1, [sp, #0x38]
+ str r9, [r2, #0x0]
+ bl G3_MultMtx43
+ b _0208E620
+_0208E4BC:
+ ldr r8, [r6, #0x8]
+ ldr r2, [r6, #0x38]
+ ldr r0, [r3, #0x4]
+ add r2, r8, r2
+ sub r0, r2, r0
+ str r0, [sp, #0x0]
+ ldr r2, [r7, #0x40]
+ ldr r8, [r6, #0xc]
+ ldr r2, [r2, #0x20]
+ ldr r3, [r6, #0x3c]
+ ldr r2, [r2, #0x0]
+ add r3, r8, r3
+ ldr r2, [r2, #0x8]
+ add r0, sp, #0x0
+ sub r2, r3, r2
+ str r2, [sp, #0x4]
+ ldr r2, [r7, #0x40]
+ ldr r8, [r6, #0x10]
+ ldr r2, [r2, #0x20]
+ ldr r3, [r6, #0x40]
+ ldr r2, [r2, #0x0]
+ add r8, r8, r3
+ ldr r3, [r2, #0xc]
+ mov r2, r0
+ sub r3, r8, r3
+ str r3, [sp, #0x8]
+ bl MTX_MultVec43
+ ldrh r0, [r6, #0x20]
+ ldr r2, _0208E69C ; =0x020FFA38
+ mov lr, #0x0
+ mov r0, r0, asr #0x4
+ mov r3, r0, lsl #0x1
+ mov r0, r3, lsl #0x1
+ ldrsh r1, [r2, r0]
+ add r0, r3, #0x1
+ mov r0, r0, lsl #0x1
+ ldrsh r0, [r2, r0]
+ mov r10, #0x1000
+ ldr r3, [sp, #0x0]
+ ldr r2, [sp, #0x4]
+ str r3, [sp, #0x30]
+ smull r9, r8, r1, r5
+ str r10, [sp, #0x2c]
+ rsb r12, r1, #0x0
+ smull r10, r5, r0, r5
+ ldr r1, [sp, #0x8]
+ mov r3, #0x800
+ str r2, [sp, #0x34]
+ adds r2, r10, r3
+ adc r5, r5, #0x0
+ mov r10, r2, lsr #0xc
+ orr r10, r10, r5, lsl #0x14
+ str r1, [sp, #0x38]
+ adds r9, r9, r3
+ str r10, [sp, #0xc]
+ adc r10, r8, #0x0
+ smull r5, r2, r12, r4
+ mov r8, r9, lsr #0xc
+ orr r8, r8, r10, lsl #0x14
+ smull r9, r4, r0, r4
+ adds r5, r5, r3
+ adc r0, r2, #0x0
+ adds r2, r9, r3
+ mov r3, r5, lsr #0xc
+ orr r3, r3, r0, lsl #0x14
+ adc r0, r4, #0x0
+ mov r2, r2, lsr #0xc
+ orr r2, r2, r0, lsl #0x14
+ ldr r0, _0208E6A0 ; =0x04000454
+ str r8, [sp, #0x10]
+ str lr, [sp, #0x14]
+ str r3, [sp, #0x18]
+ str r2, [sp, #0x1c]
+ str lr, [sp, #0x20]
+ str lr, [sp, #0x24]
+ str lr, [sp, #0x28]
+ str lr, [r0, #0x0]
+ ldr r0, [r7, #0x40]
+ ldr r1, _0208E6A4 ; =0x04000470
+ ldr r2, [r0, #0x20]
+ add r0, sp, #0xc
+ ldr r2, [r2, #0x0]
+ ldr r4, [r2, #0xc]
+ ldr r3, [r2, #0x8]
+ ldr r2, [r2, #0x4]
+ str r2, [r1, #0x0]
+ str r3, [r1, #0x0]
+ str r4, [r1, #0x0]
+ bl G3_MultMtx43
+_0208E620:
+ ldr r0, [r7, #0x40]
+ ldrh r4, [r6, #0x36]
+ ldrh r5, [r0, #0x72]
+ mov r2, #0x0
+ and r1, r4, #0x1f
+ and r0, r5, #0x1f
+ mul r3, r1, r0
+ and r1, r4, #0x3e0
+ and r0, r5, #0x3e0
+ mul r0, r1, r0
+ and r4, r4, #0x7c00
+ and r1, r5, #0x7c00
+ mul r5, r4, r1
+ mov r1, r3, asr #0x5
+ mov r0, r0, asr #0xf
+ mov r3, r5, asr #0x19
+ orr r0, r1, r0, lsl #0x5
+ orr r0, r0, r3, lsl #0xa
+ mov r0, r0, lsl #0x10
+ ldr r1, _0208E6A8 ; =0x04000480
+ mov r0, r0, lsr #0x10
+ str r0, [r1, #0x0]
+ ldr r1, [r7, #0x40]
+ mov r3, r2
+ ldrsh r0, [r1, #0x7c]
+ ldrsh r1, [r1, #0x7e]
+ bl FUN_0208ECA0
+ add sp, sp, #0x40
+ ldmia sp!, {r4-r10,lr}
+ bx lr
+ .balign 4
+_0208E698: .word 0x040004A4
+_0208E69C: .word 0x020FFA38
+_0208E6A0: .word 0x04000454
+_0208E6A4: .word 0x04000470
+_0208E6A8: .word 0x04000480
+
+ arm_func_start FUN_0208E6AC
+FUN_0208E6AC: ; 0x0208E6AC
+ stmdb sp!, {r4-r11,lr}
+ sub sp, sp, #0x3c
+ mov r8, r1
+ ldrh r3, [r8, #0x2e]
+ mov r9, r0
+ ldr r1, [r9, #0x40]
+ mov r0, r3, lsl #0x16
+ mov r2, r3, lsl #0x1b
+ mov r0, r0, lsr #0x1b
+ ldr r4, [r1, #0x20]
+ mov r2, r2, lsr #0x1b
+ ldr r5, [r4, #0x0]
+ add r0, r0, #0x1
+ mul r0, r2, r0
+ movs r11, r0, asr #0x5
+ mov r3, r3, lsl #0x10
+ ldr r2, [r9, #0x3c]
+ mov r6, r3, lsr #0x1a
+ orr r3, r2, #0xc0
+ ldr r4, [r5, #0x48]
+ ldrsh r7, [r5, #0x30]
+ mov r2, r4, lsl #0x1
+ ldrh r4, [r1, #0x72]
+ orr r3, r3, r6, lsl #0x18
+ ldrsh r10, [r8, #0x34]
+ ldrh r5, [r8, #0x36]
+ ldr r1, [r9, #0x44]
+ ldr r0, _0208EAE4 ; =0x040004A4
+ orr r3, r3, r11, lsl #0x10
+ str r3, [r0, #0x0]
+ mov r2, r2, lsr #0x1d
+ addeq sp, sp, #0x3c
+ and r3, r2, #0xff
+ ldr r0, [r0, #0x0]
+ ldmeqia sp!, {r4-r11,lr}
+ bxeq lr
+ ldr r6, [r8, #0x30]
+ mov r0, #0x800
+ smull r7, r2, r6, r7
+ adds r7, r7, r0
+ adc r2, r2, #0x0
+ mov r7, r7, lsr #0xc
+ cmp r3, #0x0
+ mov lr, r6, asr #0x1f
+ orr r7, r7, r2, lsl #0x14
+ mov r2, #0x0
+ bne _0208E7A0
+ mov r12, r10, asr #0x1f
+ umull r11, r3, r6, r10
+ mla r3, r6, r12, r3
+ mla r3, lr, r10, r3
+ smull r6, r10, r7, r10
+ adds r6, r6, r0
+ adc r10, r10, r2
+ adds r11, r11, r0
+ adc r0, r3, r2
+ mov r7, r6, lsr #0xc
+ mov r6, r11, lsr #0xc
+ orr r7, r7, r10, lsl #0x14
+ orr r6, r6, r0, lsl #0x14
+ b _0208E7E0
+_0208E7A0:
+ cmp r3, #0x1
+ bne _0208E7C0
+ smull r10, r3, r7, r10
+ adds r7, r10, r0
+ adc r0, r3, r2
+ mov r7, r7, lsr #0xc
+ orr r7, r7, r0, lsl #0x14
+ b _0208E7E0
+_0208E7C0:
+ mov r12, r10, asr #0x1f
+ umull r11, r3, r6, r10
+ adds r0, r11, r0
+ mla r3, r6, r12, r3
+ mla r3, lr, r10, r3
+ adc r2, r3, r2
+ mov r6, r0, lsr #0xc
+ orr r6, r6, r2, lsl #0x14
+_0208E7E0:
+ ldr r0, [r9, #0x40]
+ ldr r0, [r0, #0x20]
+ ldr r10, [r0, #0x0]
+ ldr r0, [r10, #0x0]
+ mov r0, r0, lsl #0x8
+ movs r0, r0, lsr #0x1f
+ bne _0208E90C
+ ldr r3, [r8, #0x8]
+ ldr r2, [r8, #0x38]
+ add r0, sp, #0x0
+ add r2, r3, r2
+ str r2, [sp, #0x0]
+ ldr r10, [r8, #0xc]
+ ldr r3, [r8, #0x3c]
+ mov r2, r0
+ add r3, r10, r3
+ str r3, [sp, #0x4]
+ ldr r10, [r8, #0x10]
+ ldr r3, [r8, #0x40]
+ add r3, r10, r3
+ str r3, [sp, #0x8]
+ bl MTX_MultVec43
+ ldrh r0, [r8, #0x20]
+ ldr r2, _0208EAE8 ; =0x020FFA38
+ ldr r12, [sp, #0x0]
+ mov r0, r0, asr #0x4
+ mov r3, r0, lsl #0x1
+ mov r0, r3, lsl #0x1
+ ldrsh r1, [r2, r0]
+ add r0, r3, #0x1
+ mov r0, r0, lsl #0x1
+ ldrsh r0, [r2, r0]
+ str r12, [sp, #0x30]
+ mov r12, #0x1000
+ ldr r2, [sp, #0x4]
+ smull r11, r10, r1, r7
+ str r12, [sp, #0x2c]
+ rsb r3, r1, #0x0
+ ldr r1, [sp, #0x8]
+ str r2, [sp, #0x34]
+ mov r8, #0x0
+ smull r12, r7, r0, r7
+ mov r2, #0x800
+ str r1, [sp, #0x38]
+ adds r1, r12, r2
+ adc r12, r7, #0x0
+ adds r7, r11, r2
+ mov r11, r1, lsr #0xc
+ orr r11, r11, r12, lsl #0x14
+ smull r12, r1, r3, r6
+ adc r10, r10, #0x0
+ mov r7, r7, lsr #0xc
+ orr r7, r7, r10, lsl #0x14
+ adds r3, r12, r2
+ smull r10, r6, r0, r6
+ adc r0, r1, #0x0
+ adds r1, r10, r2
+ mov r3, r3, lsr #0xc
+ orr r3, r3, r0, lsl #0x14
+ mov r2, r1, lsr #0xc
+ adc r0, r6, #0x0
+ orr r2, r2, r0, lsl #0x14
+ ldr r1, _0208EAEC ; =0x04000454
+ str r11, [sp, #0xc]
+ add r0, sp, #0xc
+ str r7, [sp, #0x10]
+ str r8, [sp, #0x14]
+ str r3, [sp, #0x18]
+ str r2, [sp, #0x1c]
+ str r8, [sp, #0x20]
+ str r8, [sp, #0x24]
+ str r8, [sp, #0x28]
+ str r8, [r1, #0x0]
+ bl G3_MultMtx43
+ b _0208EA70
+_0208E90C:
+ ldr r3, [r8, #0x8]
+ ldr r2, [r8, #0x38]
+ ldr r0, [r10, #0x4]
+ add r2, r3, r2
+ sub r0, r2, r0
+ str r0, [sp, #0x0]
+ ldr r2, [r9, #0x40]
+ ldr r10, [r8, #0xc]
+ ldr r2, [r2, #0x20]
+ ldr r3, [r8, #0x3c]
+ ldr r2, [r2, #0x0]
+ add r3, r10, r3
+ ldr r2, [r2, #0x8]
+ add r0, sp, #0x0
+ sub r2, r3, r2
+ str r2, [sp, #0x4]
+ ldr r2, [r9, #0x40]
+ ldr r10, [r8, #0x10]
+ ldr r2, [r2, #0x20]
+ ldr r3, [r8, #0x40]
+ ldr r2, [r2, #0x0]
+ add r10, r10, r3
+ ldr r3, [r2, #0xc]
+ mov r2, r0
+ sub r3, r10, r3
+ str r3, [sp, #0x8]
+ bl MTX_MultVec43
+ ldrh r0, [r8, #0x20]
+ ldr r2, _0208EAE8 ; =0x020FFA38
+ mov r8, #0x0
+ mov r0, r0, asr #0x4
+ mov r3, r0, lsl #0x1
+ mov r0, r3, lsl #0x1
+ ldrsh r1, [r2, r0]
+ add r0, r3, #0x1
+ mov r0, r0, lsl #0x1
+ ldrsh r0, [r2, r0]
+ ldr r12, [sp, #0x0]
+ ldr r2, [sp, #0x4]
+ str r12, [sp, #0x30]
+ mov r12, #0x1000
+ str r2, [sp, #0x34]
+ smull r11, r10, r1, r7
+ str r12, [sp, #0x2c]
+ rsb r3, r1, #0x0
+ ldr r1, [sp, #0x8]
+ smull r12, r7, r0, r7
+ mov r2, #0x800
+ str r1, [sp, #0x38]
+ adds r1, r12, r2
+ adc r12, r7, #0x0
+ adds r7, r11, r2
+ mov r11, r1, lsr #0xc
+ orr r11, r11, r12, lsl #0x14
+ smull r12, r1, r3, r6
+ adc r10, r10, #0x0
+ mov r7, r7, lsr #0xc
+ orr r7, r7, r10, lsl #0x14
+ smull r10, r6, r0, r6
+ adds r3, r12, r2
+ adc r0, r1, #0x0
+ adds r1, r10, r2
+ mov r2, r3, lsr #0xc
+ orr r2, r2, r0, lsl #0x14
+ adc r0, r6, #0x0
+ mov r1, r1, lsr #0xc
+ orr r1, r1, r0, lsl #0x14
+ str r1, [sp, #0x1c]
+ ldr r0, _0208EAEC ; =0x04000454
+ str r11, [sp, #0xc]
+ str r7, [sp, #0x10]
+ str r8, [sp, #0x14]
+ str r2, [sp, #0x18]
+ str r8, [sp, #0x20]
+ str r8, [sp, #0x24]
+ str r8, [sp, #0x28]
+ str r8, [r0, #0x0]
+ ldr r0, [r9, #0x40]
+ ldr r1, _0208EAF0 ; =0x04000470
+ ldr r2, [r0, #0x20]
+ add r0, sp, #0xc
+ ldr r2, [r2, #0x0]
+ ldr r6, [r2, #0xc]
+ ldr r3, [r2, #0x8]
+ ldr r2, [r2, #0x4]
+ str r2, [r1, #0x0]
+ str r3, [r1, #0x0]
+ str r6, [r1, #0x0]
+ bl G3_MultMtx43
+_0208EA70:
+ and r1, r5, #0x1f
+ and r0, r4, #0x1f
+ mul r2, r1, r0
+ and r1, r5, #0x3e0
+ and r0, r4, #0x3e0
+ mul r0, r1, r0
+ and r3, r5, #0x7c00
+ and r1, r4, #0x7c00
+ mul r4, r3, r1
+ mov r1, r2, asr #0x5
+ mov r0, r0, asr #0xf
+ mov r2, r4, asr #0x19
+ orr r0, r1, r0, lsl #0x5
+ orr r0, r0, r2, lsl #0xa
+ mov r0, r0, lsl #0x10
+ ldr r1, _0208EAF4 ; =0x04000480
+ mov r0, r0, lsr #0x10
+ str r0, [r1, #0x0]
+ ldr r2, [r9, #0x40]
+ ldr r1, [r2, #0x20]
+ ldrsh r0, [r2, #0x78]
+ ldr r3, [r1, #0x0]
+ ldrsh r1, [r2, #0x7a]
+ ldrsh r2, [r3, #0x50]
+ ldrsh r3, [r3, #0x52]
+ bl FUN_0208ECA0
+ add sp, sp, #0x3c
+ ldmia sp!, {r4-r11,lr}
+ bx lr
+ .balign 4
+_0208EAE4: .word 0x040004A4
+_0208EAE8: .word 0x020FFA38
+_0208EAEC: .word 0x04000454
+_0208EAF0: .word 0x04000470
+_0208EAF4: .word 0x04000480
+
+ arm_func_start FUN_0208EAF8
+FUN_0208EAF8: ; 0x0208EAF8
+ str r1, [r2, #0x0]
+ mov r12, #0x0
+ str r12, [r2, #0xc]
+ str r0, [r2, #0x18]
+ str r12, [r2, #0x24]
+ str r12, [r2, #0x4]
+ mov r3, #0x1000
+ str r3, [r2, #0x10]
+ str r12, [r2, #0x1c]
+ str r12, [r2, #0x28]
+ rsb r0, r0, #0x0
+ str r0, [r2, #0x8]
+ str r12, [r2, #0x14]
+ str r1, [r2, #0x20]
+ str r12, [r2, #0x2c]
+ bx lr
+
+ arm_func_start FUN_0208EB38
+FUN_0208EB38: ; 0x0208EB38
+ stmdb sp!, {r4-r9,lr}
+ sub sp, sp, #0x4
+ ldr r3, _0208EBDC ; =0x00000555
+ rsb r7, r1, #0x1000
+ ldr ip, _0208EBE0 ; =0x0000093D
+ mov r4, #0x0
+ umull r9, r8, r7, r3
+ umull r6, r5, r0, r12
+ mov lr, #0x800
+ adds r9, r9, lr
+ mla r8, r7, r4, r8
+ mov r7, r7, asr #0x1f
+ mla r8, r7, r3, r8
+ adc r7, r8, #0x0
+ mov r3, r9, lsr #0xc
+ adds r6, r6, lr
+ orr r3, r3, r7, lsl #0x14
+ add r1, r3, r1
+ mla r5, r0, r4, r5
+ mov r0, r0, asr #0x1f
+ mla r5, r0, r12, r5
+ adc r0, r5, #0x0
+ mov r5, r6, lsr #0xc
+ orr r5, r5, r0, lsl #0x14
+ str r1, [r2, #0x0]
+ add r12, r3, r5
+ str r12, [r2, #0xc]
+ sub r0, r3, r5
+ str r0, [r2, #0x18]
+ str r4, [r2, #0x24]
+ str r0, [r2, #0x4]
+ str r1, [r2, #0x10]
+ str r12, [r2, #0x1c]
+ str r4, [r2, #0x28]
+ str r12, [r2, #0x8]
+ str r0, [r2, #0x14]
+ str r1, [r2, #0x20]
+ str r4, [r2, #0x2c]
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r9,lr}
+ bx lr
+ .balign 4
+_0208EBDC: .word 0x00000555
+_0208EBE0: .word 0x0000093D
+
+ arm_func_start FUN_0208EBE4
+FUN_0208EBE4: ; 0x0208EBE4
+ stmdb sp!, {r4-r8,lr}
+ sub r7, r2, #0x1000
+ add r5, r3, #0x1000
+ add r4, r2, #0x1000
+ mov r2, r0, lsl #0x8
+ mov r0, r1, lsl #0x8
+ sub r3, r3, #0x1000
+ mov r0, r0, lsr #0x10
+ mov r1, r2, lsr #0x10
+ ldr ip, _0208EC8C ; =0x04000500
+ mov r8, #0x1
+ ldr r6, _0208EC90 ; =0x000003FF
+ mov r2, r7, lsl #0x10
+ mov lr, r5, lsl #0x10
+ mov r4, r4, lsl #0x10
+ mov r5, r3, lsl #0x10
+ ldr r3, _0208EC94 ; =0x04000488
+ str r8, [r12, #0x0]
+ mov r12, #0x0
+ and r2, r6, r2, asr #0x16
+ and r7, r6, lr, asr #0x16
+ and lr, r6, r4, asr #0x16
+ and r4, r6, r5, asr #0x16
+ ldr r6, _0208EC98 ; =0x04000490
+ str r12, [r3, #0x0]
+ orr r5, r2, r7, lsl #0x14
+ str r5, [r6, #0x0]
+ str r1, [r3, #0x0]
+ orr r5, lr, r7, lsl #0x14
+ str r5, [r6, #0x0]
+ orr r1, r1, r0, lsl #0x10
+ str r1, [r3, #0x0]
+ orr r1, lr, r4, lsl #0x14
+ str r1, [r6, #0x0]
+ mov r0, r0, lsl #0x10
+ str r0, [r3, #0x0]
+ orr r1, r2, r4, lsl #0x14
+ ldr r0, _0208EC9C ; =0x04000504
+ str r1, [r6, #0x0]
+ str r12, [r0, #0x0]
+ ldmia sp!, {r4-r8,lr}
+ bx lr
+ .balign 4
+_0208EC8C: .word 0x04000500
+_0208EC90: .word 0x000003FF
+_0208EC94: .word 0x04000488
+_0208EC98: .word 0x04000490
+_0208EC9C: .word 0x04000504
+
+ arm_func_start FUN_0208ECA0
+FUN_0208ECA0: ; 0x0208ECA0
+ stmdb sp!, {r4-r8,lr}
+ add r12, r3, #0x1000
+ sub r5, r2, #0x1000
+ add r4, r2, #0x1000
+ mov r2, r0, lsl #0x8
+ mov r0, r1, lsl #0x8
+ sub r3, r3, #0x1000
+ mov r0, r0, lsr #0x10
+ mov r1, r2, lsr #0x10
+ ldr r7, _0208ED48 ; =0x04000500
+ mov r8, #0x1
+ ldr r6, _0208ED4C ; =0x000003FF
+ mov r2, r12, lsl #0x10
+ mov lr, r5, lsl #0x10
+ mov r4, r4, lsl #0x10
+ mov r5, r3, lsl #0x10
+ ldr r3, _0208ED50 ; =0x04000488
+ str r8, [r7, #0x0]
+ mov r12, #0x0
+ and r7, r6, r2, asr #0x16
+ and r2, r6, lr, asr #0x16
+ and lr, r6, r4, asr #0x16
+ and r4, r6, r5, asr #0x16
+ ldr r6, _0208ED54 ; =0x04000490
+ str r12, [r3, #0x0]
+ orr r5, r2, r7, lsl #0xa
+ str r5, [r6, #0x0]
+ str r1, [r3, #0x0]
+ orr r5, lr, r7, lsl #0xa
+ str r5, [r6, #0x0]
+ orr r1, r1, r0, lsl #0x10
+ str r1, [r3, #0x0]
+ orr r1, lr, r4, lsl #0xa
+ str r1, [r6, #0x0]
+ mov r0, r0, lsl #0x10
+ str r0, [r3, #0x0]
+ orr r1, r2, r4, lsl #0xa
+ ldr r0, _0208ED58 ; =0x04000504
+ str r1, [r6, #0x0]
+ str r12, [r0, #0x0]
+ ldmia sp!, {r4-r8,lr}
+ bx lr
+ .balign 4
+_0208ED48: .word 0x04000500
+_0208ED4C: .word 0x000003FF
+_0208ED50: .word 0x04000488
+_0208ED54: .word 0x04000490
+_0208ED58: .word 0x04000504
+
+ arm_func_start FUN_0208ED5C
+FUN_0208ED5C: ; 0x0208ED5C
+ stmdb sp!, {r4-r11,lr}
+ sub sp, sp, #0x24
+ ldr r3, [r1, #0x20]
+ str r1, [sp, #0x0]
+ ldr r6, [r3, #0x14]
+ mov r8, r0
+ ldrb r3, [r6, #0x8]
+ ldrb r0, [r6, #0xc]
+ str r2, [sp, #0x4]
+ mov r3, r3, lsl #0xc
+ mov r2, r3, asr #0x1f
+ mov r2, r2, lsl #0x4
+ mov r1, #0x800
+ mov r4, r3, lsl #0x4
+ adds r4, r4, r1
+ orr r2, r2, r3, lsr #0x1c
+ adc r1, r2, #0x0
+ mov r5, r4, lsr #0xc
+ cmp r0, #0x0
+ mov r0, #0x0
+ str r0, [sp, #0x8]
+ orr r5, r5, r1, lsl #0x14
+ addle sp, sp, #0x24
+ ldmleia sp!, {r4-r11,lr}
+ bxle lr
+ ldr sb, _0208F06C ; =0x021C8C5C
+ str r0, [sp, #0x18]
+ str r0, [sp, #0x14]
+ str r0, [sp, #0x1c]
+ str r0, [sp, #0x20]
+ mov r0, #0x1000
+ mov r4, r5, asr #0x1f
+ str r0, [sp, #0x10]
+_0208EDE0:
+ ldr r0, [sp, #0x4]
+ bl FUN_02090A58
+ movs r7, r0
+ addeq sp, sp, #0x24
+ ldmeqia sp!, {r4-r11,lr}
+ bxeq lr
+ ldr r0, [sp, #0x0]
+ mov r1, r7
+ add r0, r0, #0x14
+ bl FUN_02090AA4
+ add r0, r7, #0x38
+ add r1, r8, #0x8
+ str r0, [sp, #0xc]
+ add r10, r7, #0x8
+ ldmia r1, {r0-r2}
+ stmia r10, {r0-r2}
+ ldr r10, [r8, #0x14]
+ ldr r12, [r9, #0x0]
+ ldr r1, _0208F070 ; =0x5EEDF715
+ ldr r0, _0208F074 ; =0x1B0CB173
+ mov r2, r10, asr #0x1f
+ mla r0, r12, r1, r0
+ str r0, [r9, #0x0]
+ umull lr, r12, r10, r5
+ mla r12, r10, r4, r12
+ ldrsh r1, [r6, #0x2]
+ mov r0, r0, lsr #0x17
+ mla r12, r2, r5, r12
+ mul r0, r1, r0
+ mov r3, #0x800
+ adds r2, lr, r3
+ sub r0, r0, r1, lsl #0x8
+ adc r10, r12, #0x0
+ mov r2, r2, lsr #0xc
+ orr r2, r2, r10, lsl #0x14
+ add r0, r2, r0, asr #0x8
+ str r0, [r7, #0x14]
+ ldr r10, [r8, #0x18]
+ ldr r12, [r9, #0x0]
+ ldr r1, _0208F070 ; =0x5EEDF715
+ ldr r0, _0208F074 ; =0x1B0CB173
+ mov r2, r10, asr #0x1f
+ mla r0, r12, r1, r0
+ str r0, [r9, #0x0]
+ umull lr, r12, r10, r5
+ mla r12, r10, r4, r12
+ mla r12, r2, r5, r12
+ adds r2, lr, r3
+ ldrsh r1, [r6, #0x2]
+ mov r0, r0, lsr #0x17
+ adc r10, r12, #0x0
+ mul r0, r1, r0
+ mov r2, r2, lsr #0xc
+ sub r0, r0, r1, lsl #0x8
+ orr r2, r2, r10, lsl #0x14
+ add r0, r2, r0, asr #0x8
+ str r0, [r7, #0x18]
+ ldr r12, [r8, #0x1c]
+ ldr r10, [r9, #0x0]
+ ldr r1, _0208F070 ; =0x5EEDF715
+ ldr r0, _0208F074 ; =0x1B0CB173
+ mov r2, r12, asr #0x1f
+ mla r0, r10, r1, r0
+ umull r10, lr, r12, r5
+ str r0, [r9, #0x0]
+ mla lr, r12, r4, lr
+ adds r3, r10, r3
+ mla lr, r2, r5, lr
+ ldrsh r1, [r6, #0x2]
+ mov r0, r0, lsr #0x17
+ adc r2, lr, #0x0
+ mul r0, r1, r0
+ mov r3, r3, lsr #0xc
+ orr r3, r3, r2, lsl #0x14
+ sub r0, r0, r1, lsl #0x8
+ add r0, r3, r0, asr #0x8
+ ldr r3, [sp, #0xc]
+ add r11, r8, #0x38
+ str r0, [r7, #0x1c]
+ ldmia r11, {r0-r2}
+ stmia r3, {r0-r2}
+ ldrb r0, [r6, #0x9]
+ ldrsh r1, [r8, #0x34]
+ ldr r2, [r8, #0x30]
+ add r0, r0, #0x1
+ mul r1, r2, r1
+ mov r1, r1, asr #0xc
+ mul r0, r1, r0
+ mov r0, r0, asr #0x6
+ str r0, [r7, #0x30]
+ ldr r0, [sp, #0x10]
+ strh r0, [r7, #0x34]
+ ldrh r0, [r6, #0x0]
+ mov r0, r0, lsl #0x19
+ movs r0, r0, lsr #0x1f
+ ldrneh r0, [r6, #0xa]
+ strneh r0, [r7, #0x36]
+ ldreqh r0, [r8, #0x36]
+ streqh r0, [r7, #0x36]
+ ldrh r1, [r8, #0x2e]
+ ldrh r0, [r7, #0x2e]
+ mov r2, r1, lsl #0x1b
+ mov r1, r1, lsl #0x16
+ mov r1, r1, lsr #0x1b
+ mov r2, r2, lsr #0x1b
+ add r1, r1, #0x1
+ mul r1, r2, r1
+ mov r1, r1, lsl #0xb
+ mov r1, r1, lsr #0x10
+ bic r0, r0, #0x1f
+ and r1, r1, #0x1f
+ orr r0, r0, r1
+ strh r0, [r7, #0x2e]
+ ldrh r0, [r7, #0x2e]
+ bic r0, r0, #0x3e0
+ orr r0, r0, #0x3e0
+ strh r0, [r7, #0x2e]
+ ldrh r0, [r6, #0x0]
+ mov r0, r0, lsl #0x1b
+ movs r0, r0, lsr #0x1e
+ beq _0208EFE4
+ cmp r0, #0x1
+ beq _0208EFF4
+ cmp r0, #0x2
+ ldreqh r0, [r8, #0x20]
+ streqh r0, [r7, #0x20]
+ ldreqsh r0, [r8, #0x22]
+ streqh r0, [r7, #0x22]
+ b _0208F004
+_0208EFE4:
+ ldr r0, [sp, #0x14]
+ strh r0, [r7, #0x20]
+ strh r0, [r7, #0x22]
+ b _0208F004
+_0208EFF4:
+ ldrh r0, [r8, #0x20]
+ strh r0, [r7, #0x20]
+ ldr r0, [sp, #0x18]
+ strh r0, [r7, #0x22]
+_0208F004:
+ ldrh r1, [r6, #0x6]
+ ldr r0, _0208F078 ; =0x0000FFFF
+ strh r1, [r7, #0x24]
+ ldr r1, [sp, #0x1c]
+ strh r1, [r7, #0x26]
+ ldrb r1, [r6, #0xf]
+ strb r1, [r7, #0x2c]
+ ldrh r1, [r8, #0x24]
+ mov r1, r1, lsr #0x1
+ bl _s32_div_f
+ strh r0, [r7, #0x28]
+ ldrh r1, [r8, #0x24]
+ ldr r0, _0208F078 ; =0x0000FFFF
+ bl _s32_div_f
+ strh r0, [r7, #0x2a]
+ ldr r0, [sp, #0x20]
+ strb r0, [r7, #0x2d]
+ ldr r0, [sp, #0x8]
+ ldrb r1, [r6, #0xc]
+ add r0, r0, #0x1
+ str r0, [sp, #0x8]
+ cmp r0, r1
+ blt _0208EDE0
+ add sp, sp, #0x24
+ ldmia sp!, {r4-r11,lr}
+ bx lr
+ .balign 4
+_0208F06C: .word 0x021C8C5C
+_0208F070: .word 0x5EEDF715
+_0208F074: .word 0x1B0CB173
+_0208F078: .word 0x0000FFFF
+
+ arm_func_start FUN_0208F07C
+FUN_0208F07C: ; 0x0208F07C
+ stmdb sp!, {r4-r11,lr}
+ sub sp, sp, #0xc4
+ mov r9, r0
+ ldr r0, [r9, #0x20]
+ ldrsh r3, [r9, #0x4e]
+ str r0, [sp, #0x4]
+ ldr r0, [r9, #0x58]
+ ldr r2, _0208FD88 ; =0x00000FFF
+ add r3, r0, r3
+ ldr r0, [sp, #0x4]
+ str r1, [sp, #0x0]
+ ldr r8, [r0, #0x0]
+ and r0, r3, r2
+ strh r0, [r9, #0x4e]
+ ldr r0, [r8, #0x0]
+ mov r0, r0, lsl #0x1c
+ mov r1, r0, lsr #0x1c
+ mov r0, r3, asr #0xc
+ cmp r1, #0x2
+ str r0, [sp, #0xc]
+ beq _0208F0E4
+ cmp r1, #0x3
+ beq _0208F0E4
+ sub r0, r1, #0x5
+ cmp r0, #0x4
+ bhi _0208F0EC
+_0208F0E4:
+ mov r0, r9
+ bl FUN_0208FF08
+_0208F0EC:
+ ldr r0, [sp, #0xc]
+ cmp r0, #0x0
+ mov r0, #0x0
+ str r0, [sp, #0x8]
+ addle sp, sp, #0xc4
+ ldmleia sp!, {r4-r11,lr}
+ bxle lr
+ str r0, [sp, #0x18]
+ str r0, [sp, #0x24]
+ str r0, [sp, #0x20]
+ str r0, [sp, #0x1c]
+ mov r0, #0x1000
+ str r0, [sp, #0x34]
+ ldr r0, [sp, #0x8]
+ ldr r6, _0208FD8C ; =0x021C8C5C
+ ldr r4, _0208FD90 ; =0x5EEDF715
+ ldr r5, _0208FD94 ; =0x1B0CB173
+ str r0, [sp, #0x38]
+ str r0, [sp, #0x3c]
+ str r0, [sp, #0x40]
+_0208F13C:
+ ldr r0, [sp, #0x0]
+ bl FUN_02090A58
+ movs r7, r0
+ addeq sp, sp, #0xc4
+ ldmeqia sp!, {r4-r11,lr}
+ bxeq lr
+ add r0, r9, #0x8
+ mov r1, r7
+ bl FUN_02090AA4
+_0208F160: ; 0x0208F160
+ ldr r0, [r8, #0x0]
+ mov r0, r0, lsl #0x1c
+ mov r0, r0, lsr #0x1c
+ cmp r0, #0x9
+ addls pc, pc, r0, lsl #0x2
+ b _0208F87C
+_0208F178:
+ b _0208F1A0
+_0208F17C:
+ b _0208F1BC
+_0208F180:
+ b _0208F22C
+_0208F184:
+ b _0208F294
+_0208F188:
+ b _0208F328
+_0208F18C:
+ b _0208F428
+_0208F190:
+ b _0208F720
+_0208F194:
+ b _0208F7A4
+_0208F198:
+ b _0208F4E4
+_0208F19C:
+ b _0208F5B4
+_0208F1A0:
+ ldr r0, [sp, #0x1c]
+ str r0, [r7, #0x10]
+ ldr r0, [r7, #0x10]
+ str r0, [r7, #0xc]
+ ldr r0, [r7, #0xc]
+ str r0, [r7, #0x8]
+ b _0208F87C
+_0208F1BC:
+ add r0, r7, #0x8
+ bl FUN_02090B50
+ ldr r2, [r7, #0x8]
+ ldr r1, [r9, #0x5c]
+ mov r0, #0x800
+ smull r3, r1, r2, r1
+ adds r2, r3, r0
+ adc r1, r1, #0x0
+ mov r2, r2, lsr #0xc
+ orr r2, r2, r1, lsl #0x14
+ str r2, [r7, #0x8]
+ ldr r2, [r7, #0xc]
+ ldr r1, [r9, #0x5c]
+ smull r3, r1, r2, r1
+ adds r2, r3, r0
+ adc r1, r1, #0x0
+ mov r2, r2, lsr #0xc
+ orr r2, r2, r1, lsl #0x14
+ str r2, [r7, #0xc]
+ ldr r2, [r7, #0x10]
+ ldr r1, [r9, #0x5c]
+ smull r3, r1, r2, r1
+ adds r2, r3, r0
+ adc r0, r1, #0x0
+ mov r1, r2, lsr #0xc
+ orr r1, r1, r0, lsl #0x14
+ str r1, [r7, #0x10]
+ b _0208F87C
+_0208F22C:
+ add r0, sp, #0x58
+ bl FUN_02090AF4
+ ldr r2, [sp, #0x58]
+ ldr r0, [r9, #0x5c]
+ mov r1, #0x800
+ smull r3, r0, r2, r0
+ adds r2, r3, r1
+ adc r0, r0, #0x0
+ mov r2, r2, lsr #0xc
+ orr r2, r2, r0, lsl #0x14
+ str r2, [sp, #0x58]
+ ldr r3, [sp, #0x5c]
+ ldr r2, [r9, #0x5c]
+ add r0, r7, #0x8
+ smull r10, r2, r3, r2
+ adds r3, r10, r1
+ adc r1, r2, #0x0
+ mov r2, r3, lsr #0xc
+ orr r2, r2, r1, lsl #0x14
+ ldr r1, [sp, #0x20]
+ str r2, [sp, #0x5c]
+ str r1, [sp, #0x60]
+ add r1, sp, #0x58
+ mov r2, r9
+ bl FUN_0208FDA8
+ b _0208F87C
+_0208F294:
+ ldr r0, [sp, #0x18]
+ ldr r1, [sp, #0xc]
+ bl _s32_div_f
+ ldr r1, [sp, #0x18]
+ mov r0, r0, asr #0x4
+ add r1, r1, #0x10000
+ mov r2, r0, lsl #0x1
+ str r1, [sp, #0x18]
+ ldr r0, _0208FD98 ; =0x020FFA38
+ mov r1, r2, lsl #0x1
+ ldrsh r0, [r0, r1]
+ add r1, r2, #0x1
+ mov r2, r1, lsl #0x1
+ ldr r1, _0208FD98 ; =0x020FFA38
+ ldrsh r3, [r1, r2]
+ ldr r2, [r9, #0x5c]
+ mov r1, #0x800
+ smull r10, r2, r0, r2
+ adds r10, r10, r1
+ adc r0, r2, #0x0
+ mov r2, r10, lsr #0xc
+ orr r2, r2, r0, lsl #0x14
+ str r2, [sp, #0x64]
+ ldr r2, [r9, #0x5c]
+ add r0, r7, #0x8
+ smull r10, r2, r3, r2
+ adds r3, r10, r1
+ adc r1, r2, #0x0
+ mov r2, r3, lsr #0xc
+ orr r2, r2, r1, lsl #0x14
+ ldr r1, [sp, #0x24]
+ str r2, [sp, #0x68]
+ str r1, [sp, #0x6c]
+ add r1, sp, #0x64
+ mov r2, r9
+ bl FUN_0208FDA8
+ b _0208F87C
+_0208F328:
+ add r0, r7, #0x8
+ bl FUN_02090B50
+ ldr r1, [r6, #0x0]
+ mov r0, #0x800
+ mla r2, r1, r4, r5
+ str r2, [r6, #0x0]
+ mov r1, r2, lsr #0x17
+ mov r1, r1, lsl #0xc
+ sub r1, r1, #0x100000
+ mov r1, r1, asr #0x8
+ ldr r3, [r7, #0x8]
+ ldr r2, [r9, #0x5c]
+ smull r10, r2, r3, r2
+ adds r3, r10, r0
+ adc r2, r2, #0x0
+ mov r3, r3, lsr #0xc
+ orr r3, r3, r2, lsl #0x14
+ smull r2, r1, r3, r1
+ adds r2, r2, r0
+ adc r1, r1, #0x0
+ mov r2, r2, lsr #0xc
+ orr r2, r2, r1, lsl #0x14
+ str r2, [r7, #0x8]
+ ldr r1, [r6, #0x0]
+ mla r2, r1, r4, r5
+ str r2, [r6, #0x0]
+ mov r1, r2, lsr #0x17
+ mov r1, r1, lsl #0xc
+ sub r1, r1, #0x100000
+ mov r1, r1, asr #0x8
+ ldr r3, [r7, #0xc]
+ ldr r2, [r9, #0x5c]
+ smull r10, r2, r3, r2
+ adds r3, r10, r0
+ adc r2, r2, #0x0
+ mov r3, r3, lsr #0xc
+ orr r3, r3, r2, lsl #0x14
+ smull r2, r1, r3, r1
+ adds r2, r2, r0
+ adc r1, r1, #0x0
+ mov r2, r2, lsr #0xc
+ orr r2, r2, r1, lsl #0x14
+ str r2, [r7, #0xc]
+ ldr r1, [r6, #0x0]
+ mla r2, r1, r4, r5
+ str r2, [r6, #0x0]
+ mov r1, r2, lsr #0x17
+ mov r1, r1, lsl #0xc
+ sub r1, r1, #0x100000
+ mov r1, r1, asr #0x8
+ ldr r3, [r7, #0x10]
+ ldr r2, [r9, #0x5c]
+ smull r10, r2, r3, r2
+ adds r3, r10, r0
+ adc r2, r2, #0x0
+ mov r3, r3, lsr #0xc
+ orr r3, r3, r2, lsl #0x14
+ smull r2, r1, r3, r1
+ adds r2, r2, r0
+ adc r0, r1, #0x0
+ mov r1, r2, lsr #0xc
+ orr r1, r1, r0, lsl #0x14
+ str r1, [r7, #0x10]
+ b _0208F87C
+_0208F428:
+ add r0, sp, #0x70
+ bl FUN_02090AF4
+_0208F430: ; 0x0208F430
+ ldr r0, [r6, #0x0]
+ ldr r3, [sp, #0x70]
+ mla r1, r0, r4, r5
+ str r1, [r6, #0x0]
+ ldr r0, [r9, #0x5c]
+ mov r2, #0x800
+ smull r10, r0, r3, r0
+ adds r10, r10, r2
+ adc r3, r0, #0x0
+ mov r0, r10, lsr #0xc
+ orr r0, r0, r3, lsl #0x14
+ mov r3, r1, lsr #0x17
+ mov r3, r3, lsl #0xc
+ sub r3, r3, #0x100000
+ mov r3, r3, asr #0x8
+ smull r10, r3, r0, r3
+ adds r10, r10, r2
+ adc r0, r3, #0x0
+ mov r3, r10, lsr #0xc
+ orr r3, r3, r0, lsl #0x14
+ mla r0, r1, r4, r5
+ str r0, [r6, #0x0]
+ str r3, [sp, #0x70]
+ mov r0, r0, lsr #0x17
+ mov r0, r0, lsl #0xc
+ sub r0, r0, #0x100000
+ mov r1, r0, asr #0x8
+ ldr r10, [sp, #0x74]
+ ldr r3, [r9, #0x5c]
+ add r0, r7, #0x8
+ smull r11, r3, r10, r3
+ adds r10, r11, r2
+ adc r3, r3, #0x0
+ mov r10, r10, lsr #0xc
+ orr r10, r10, r3, lsl #0x14
+ smull r3, r1, r10, r1
+ adds r2, r3, r2
+ adc r1, r1, #0x0
+ mov r2, r2, lsr #0xc
+ orr r2, r2, r1, lsl #0x14
+ str r2, [sp, #0x74]
+ add r1, sp, #0x70
+ mov r2, r9
+ bl FUN_0208FDA8
+ b _0208F87C
+_0208F4E4:
+ add r0, r7, #0x8
+ bl FUN_02090B50
+ add r0, r9, #0x84
+ add r1, r9, #0x8a
+ add r2, sp, #0x44
+ bl VEC_Fx16CrossProduct
+ ldrsh r1, [sp, #0x46]
+ ldrsh r0, [sp, #0x48]
+ ldrsh r2, [sp, #0x44]
+ str r1, [sp, #0x80]
+ str r0, [sp, #0x84]
+ add r0, sp, #0x7c
+ add r1, r7, #0x8
+ str r2, [sp, #0x7c]
+ bl VEC_DotProduct
+_0208F520: ; 0x0208F520
+ cmp r0, #0x0
+ bgt _0208F54C
+ ldr r0, [r7, #0x8]
+ rsb r0, r0, #0x0
+ str r0, [r7, #0x8]
+ ldr r0, [r7, #0xc]
+ rsb r0, r0, #0x0
+ str r0, [r7, #0xc]
+ ldr r0, [r7, #0x10]
+ rsb r0, r0, #0x0
+ str r0, [r7, #0x10]
+_0208F54C:
+ ldr r2, [r7, #0x8]
+ ldr r1, [r9, #0x5c]
+ mov r0, #0x800
+ smull r3, r1, r2, r1
+ adds r2, r3, r0
+ adc r1, r1, #0x0
+ mov r2, r2, lsr #0xc
+ orr r2, r2, r1, lsl #0x14
+ str r2, [r7, #0x8]
+ ldr r2, [r7, #0xc]
+ ldr r1, [r9, #0x5c]
+ smull r3, r1, r2, r1
+ adds r2, r3, r0
+ adc r1, r1, #0x0
+ mov r2, r2, lsr #0xc
+ orr r2, r2, r1, lsl #0x14
+ str r2, [r7, #0xc]
+ ldr r2, [r7, #0x10]
+ ldr r1, [r9, #0x5c]
+ smull r3, r1, r2, r1
+ adds r2, r3, r0
+ adc r0, r1, #0x0
+ mov r1, r2, lsr #0xc
+ orr r1, r1, r0, lsl #0x14
+ str r1, [r7, #0x10]
+ b _0208F87C
+_0208F5B4:
+ add r0, r7, #0x8
+ bl FUN_02090B50
+ add r0, r9, #0x84
+ add r1, r9, #0x8a
+ add r2, sp, #0x4a
+ bl VEC_Fx16CrossProduct
+ ldrsh r1, [sp, #0x4c]
+ ldrsh r0, [sp, #0x4e]
+ ldrsh r2, [sp, #0x4a]
+ str r1, [sp, #0x8c]
+ str r0, [sp, #0x90]
+ add r0, sp, #0x88
+ add r1, r7, #0x8
+ str r2, [sp, #0x88]
+ bl VEC_DotProduct
+_0208F5F0: ; 0x0208F5F0
+ cmp r0, #0x0
+ bge _0208F61C
+ ldr r0, [r7, #0x8]
+ rsb r0, r0, #0x0
+ str r0, [r7, #0x8]
+ ldr r0, [r7, #0xc]
+ rsb r0, r0, #0x0
+ str r0, [r7, #0xc]
+ ldr r0, [r7, #0x10]
+ rsb r0, r0, #0x0
+ str r0, [r7, #0x10]
+_0208F61C:
+ ldr r1, [r6, #0x0]
+ mov r0, #0x800
+ mla r2, r1, r4, r5
+ str r2, [r6, #0x0]
+ mov r1, r2, lsr #0x17
+ mov r1, r1, lsl #0xc
+ sub r1, r1, #0x100000
+ mov r1, r1, asr #0x9
+ add r1, r1, #0x800
+ ldr r3, [r7, #0x8]
+ ldr r2, [r9, #0x5c]
+ smull r10, r2, r3, r2
+ adds r3, r10, r0
+ adc r2, r2, #0x0
+ mov r3, r3, lsr #0xc
+ orr r3, r3, r2, lsl #0x14
+ smull r2, r1, r3, r1
+ adds r2, r2, r0
+ adc r1, r1, #0x0
+ mov r2, r2, lsr #0xc
+ orr r2, r2, r1, lsl #0x14
+ str r2, [r7, #0x8]
+ ldr r1, [r6, #0x0]
+ mla r2, r1, r4, r5
+ str r2, [r6, #0x0]
+ mov r1, r2, lsr #0x17
+ mov r1, r1, lsl #0xc
+ sub r1, r1, #0x100000
+ mov r1, r1, asr #0x9
+ add r1, r1, #0x800
+ ldr r3, [r7, #0xc]
+ ldr r2, [r9, #0x5c]
+ smull r10, r2, r3, r2
+ adds r3, r10, r0
+ adc r2, r2, #0x0
+ mov r3, r3, lsr #0xc
+ orr r3, r3, r2, lsl #0x14
+ smull r2, r1, r3, r1
+ adds r2, r2, r0
+ adc r1, r1, #0x0
+ mov r2, r2, lsr #0xc
+ orr r2, r2, r1, lsl #0x14
+ str r2, [r7, #0xc]
+ ldr r1, [r6, #0x0]
+ mla r2, r1, r4, r5
+ str r2, [r6, #0x0]
+ mov r1, r2, lsr #0x17
+ mov r1, r1, lsl #0xc
+ sub r1, r1, #0x100000
+ mov r1, r1, asr #0x9
+ add r1, r1, #0x800
+ ldr r3, [r7, #0x10]
+ ldr r2, [r9, #0x5c]
+ smull r10, r2, r3, r2
+ adds r3, r10, r0
+ adc r2, r2, #0x0
+ mov r3, r3, lsr #0xc
+ orr r3, r3, r2, lsl #0x14
+ smull r2, r1, r3, r1
+ adds r2, r2, r0
+ adc r0, r1, #0x0
+ mov r1, r2, lsr #0xc
+ orr r1, r1, r0, lsl #0x14
+ str r1, [r7, #0x10]
+ b _0208F87C
+_0208F720:
+ add r0, r7, #0x14
+ bl FUN_02090AF4
+ ldr r2, [r7, #0x14]
+ ldr r1, [r9, #0x5c]
+ mov r0, #0x800
+ smull r3, r1, r2, r1
+ adds r2, r3, r0
+ adc r1, r1, #0x0
+ mov r2, r2, lsr #0xc
+ orr r2, r2, r1, lsl #0x14
+ str r2, [sp, #0x94]
+ ldr r3, [r7, #0x18]
+ ldr r2, [r9, #0x5c]
+ ldr r1, [r6, #0x0]
+ smull r10, r2, r3, r2
+ adds r3, r10, r0
+ adc r0, r2, #0x0
+ mov r2, r3, lsr #0xc
+ orr r2, r2, r0, lsl #0x14
+ mla r0, r1, r4, r5
+ str r0, [r6, #0x0]
+ str r2, [sp, #0x98]
+ mov r1, r0, lsr #0x17
+ ldr r2, [r9, #0x60]
+ add r0, r7, #0x8
+ mul r1, r2, r1
+ sub r1, r1, r2, lsl #0x8
+ mov r1, r1, asr #0x8
+ str r1, [sp, #0x9c]
+ add r1, sp, #0x94
+ mov r2, r9
+ bl FUN_0208FDA8
+ b _0208F87C
+_0208F7A4:
+ add r0, r7, #0x14
+ bl FUN_02090AF4
+_0208F7AC: ; 0x0208F7AC
+ ldr r0, [r6, #0x0]
+ mov r3, #0x800
+ mla r2, r0, r4, r5
+ str r2, [r6, #0x0]
+ ldr r10, [r7, #0x14]
+ ldr r0, [r9, #0x5c]
+ mov r1, r2, lsr #0x17
+ smull r11, r0, r10, r0
+ adds r11, r11, r3
+ mov r1, r1, lsl #0xc
+ adc r10, r0, #0x0
+ mov r0, r11, lsr #0xc
+ sub r1, r1, #0x100000
+ orr r0, r0, r10, lsl #0x14
+ mov r1, r1, asr #0x8
+ smull r10, r1, r0, r1
+ adds r10, r10, r3
+ adc r0, r1, #0x0
+ mov r1, r10, lsr #0xc
+ orr r1, r1, r0, lsl #0x14
+ str r1, [sp, #0xa0]
+ mla r1, r2, r4, r5
+ str r1, [r6, #0x0]
+ mov r2, r1, lsr #0x17
+ mov r2, r2, lsl #0xc
+ sub r2, r2, #0x100000
+ ldr r10, [r7, #0x18]
+ ldr r0, [r9, #0x5c]
+ mov r2, r2, asr #0x8
+ smull r11, r0, r10, r0
+ adds r11, r11, r3
+ adc r10, r0, #0x0
+ mov r0, r11, lsr #0xc
+ orr r0, r0, r10, lsl #0x14
+ smull r10, r2, r0, r2
+ adds r3, r10, r3
+ adc r0, r2, #0x0
+ mov r2, r3, lsr #0xc
+ orr r2, r2, r0, lsl #0x14
+ mla r0, r1, r4, r5
+ str r0, [r6, #0x0]
+ str r2, [sp, #0xa4]
+ mov r1, r0, lsr #0x17
+ ldr r2, [r9, #0x60]
+ add r0, r7, #0x8
+ mul r1, r2, r1
+ sub r1, r1, r2, lsl #0x8
+ mov r1, r1, asr #0x8
+ str r1, [sp, #0xa8]
+ add r1, sp, #0xa0
+ mov r2, r9
+ bl FUN_0208FDA8
+_0208F87C:
+ ldr r1, [r6, #0x0]
+ mla r0, r1, r4, r5
+ str r0, [r6, #0x0]
+ ldrb r2, [r8, #0x42]
+ mov r1, r0, lsr #0x18
+ ldr r3, [r9, #0x64]
+ mul r1, r2, r1
+ add r2, r2, #0xff
+ sub r1, r2, r1, asr #0x7
+ mul r1, r3, r1
+ mov r1, r1, asr #0x8
+ str r1, [sp, #0x10]
+ mla r1, r0, r4, r5
+ str r1, [r6, #0x0]
+ mov r0, r1, lsr #0x18
+ ldrb r2, [r8, #0x42]
+ ldr r3, [r9, #0x68]
+ ldr r1, [r8, #0x0]
+ mul r0, r2, r0
+ add r2, r2, #0xff
+ sub r0, r2, r0, asr #0x7
+ mul r0, r3, r0
+ mov r0, r0, asr #0x8
+ str r0, [sp, #0x14]
+ mov r0, r1, lsl #0x1c
+ mov r0, r0, lsr #0x1c
+ cmp r0, #0x6
+ bne _0208F9C8
+ ldrsh r0, [r9, #0x84]
+ ldr r1, [r7, #0x14]
+ mov r2, #0x800
+ smull r3, r0, r1, r0
+ adds r1, r3, r2
+ ldrsh r3, [r9, #0x8a]
+ ldr lr, [r7, #0x18]
+ mov r12, r1, lsr #0xc
+ smull r10, r3, lr, r3
+ adc r0, r0, #0x0
+ adds r10, r10, r2
+ orr r12, r12, r0, lsl #0x14
+ adc r3, r3, #0x0
+ mov r10, r10, lsr #0xc
+ orr r10, r10, r3, lsl #0x14
+ add r3, r12, r10
+ str r3, [sp, #0xb8]
+ ldrsh r10, [r9, #0x86]
+ ldr r3, [r7, #0x14]
+ ldrsh lr, [r9, #0x8c]
+ smull r12, r10, r3, r10
+ adds r12, r12, r2
+ ldr r11, [r7, #0x18]
+ adc r10, r10, #0x0
+ smull r3, lr, r11, lr
+ mov r12, r12, lsr #0xc
+ adds r3, r3, r2
+ orr r12, r12, r10, lsl #0x14
+ adc r10, lr, #0x0
+ mov r3, r3, lsr #0xc
+ orr r3, r3, r10, lsl #0x14
+ add r3, r12, r3
+ str r3, [sp, #0xbc]
+ ldr r10, [r7, #0x18]
+ ldrsh r11, [r9, #0x88]
+ ldr r3, [r7, #0x14]
+ str r10, [sp, #0x28]
+ smull r12, r11, r3, r11
+ ldrsh r10, [r9, #0x8e]
+ ldr r3, [sp, #0x28]
+ adds r12, r12, r2
+ smull r10, lr, r3, r10
+ adc r3, r11, #0x0
+ adds r2, r10, r2
+ mov r10, r12, lsr #0xc
+ orr r10, r10, r3, lsl #0x14
+ adc r3, lr, #0x0
+ mov r2, r2, lsr #0xc
+ orr r2, r2, r3, lsl #0x14
+ add r2, r10, r2
+ add r0, sp, #0xb8
+ add r1, sp, #0xac
+ str r2, [sp, #0xc0]
+ bl VEC_Normalize
+ b _0208FA04
+_0208F9C8:
+ ldr r0, [r7, #0x8]
+ cmp r0, #0x0
+ bne _0208F9F8
+ ldr r0, [r7, #0xc]
+ cmp r0, #0x0
+ bne _0208F9F8
+ ldr r0, [r7, #0x10]
+ cmp r0, #0x0
+ bne _0208F9F8
+ add r0, sp, #0xac
+ bl FUN_02090B50
+ b _0208FA04
+_0208F9F8:
+ add r0, r7, #0x8
+ add r1, sp, #0xac
+ bl VEC_Normalize
+_0208FA04:
+ ldr r2, [sp, #0xac]
+ ldr r1, [sp, #0x10]
+ mov r0, #0x800
+ smull r10, r1, r2, r1
+ adds r2, r10, r0
+ add r10, r9, #0x28
+ str r10, [sp, #0x2c]
+ add r10, r7, #0x38
+ str r10, [sp, #0x30]
+ adc r1, r1, #0x0
+ mov r2, r2, lsr #0xc
+ orr r2, r2, r1, lsl #0x14
+ ldrsh r1, [r9, #0x50]
+ ldr r10, [sp, #0x14]
+ ldr r3, [r9, #0x40]
+ smull r11, r10, r1, r10
+ adds r11, r11, r0
+ adc r1, r10, #0x0
+ mov r10, r11, lsr #0xc
+ orr r10, r10, r1, lsl #0x14
+ add r1, r2, r10
+ add r1, r3, r1
+ str r1, [r7, #0x14]
+ ldr r3, [sp, #0xb0]
+ ldr r1, [sp, #0x10]
+ ldrsh r10, [r9, #0x52]
+ smull r11, r1, r3, r1
+ adds r11, r11, r0
+ adc r3, r1, #0x0
+ mov r1, r11, lsr #0xc
+ orr r1, r1, r3, lsl #0x14
+ ldr r3, [sp, #0x14]
+ ldr r2, [r9, #0x44]
+ smull r11, r3, r10, r3
+ adds r10, r11, r0
+ adc r3, r3, #0x0
+ mov r10, r10, lsr #0xc
+ orr r10, r10, r3, lsl #0x14
+ add r1, r1, r10
+ add r1, r2, r1
+ str r1, [r7, #0x18]
+ ldr r1, [sp, #0xb4]
+ ldr r2, [sp, #0x10]
+ ldrsh lr, [r9, #0x54]
+ smull r10, r3, r1, r2
+ ldr r1, [sp, #0x14]
+ adds r10, r10, r0
+ smull r2, r1, lr, r1
+ adc r3, r3, #0x0
+ adds r0, r2, r0
+ mov r2, r10, lsr #0xc
+ orr r2, r2, r3, lsl #0x14
+ adc r1, r1, #0x0
+ mov r0, r0, lsr #0xc
+ orr r0, r0, r1, lsl #0x14
+ ldr r12, [r9, #0x48]
+ add r0, r2, r0
+ add r0, r12, r0
+ str r0, [r7, #0x1c]
+ ldr r0, [sp, #0x2c]
+ ldr r3, [sp, #0x30]
+ ldmia r0, {r0-r2}
+ stmia r3, {r0-r2}
+ ldr r0, [r6, #0x0]
+ mla r1, r0, r4, r5
+ str r1, [r6, #0x0]
+ mov r0, r1, lsr #0x18
+ ldrb r1, [r8, #0x40]
+ ldr r2, [r9, #0x6c]
+ mul r0, r1, r0
+ add r1, r1, #0xff
+ sub r0, r1, r0, asr #0x7
+ mul r0, r2, r0
+ mov r0, r0, asr #0x8
+ str r0, [r7, #0x30]
+ ldr r0, [sp, #0x34]
+ strh r0, [r7, #0x34]
+ ldr r0, [r8, #0x0]
+ mov r0, r0, lsl #0x16
+ movs r0, r0, lsr #0x1f
+ beq _0208FBBC
+ ldr r0, [sp, #0x4]
+ ldr r0, [r0, #0x8]
+ ldrh r0, [r0, #0x8]
+ mov r0, r0, lsl #0x1f
+ movs r0, r0, lsr #0x1f
+ beq _0208FBBC
+ ldr r0, [r6, #0x0]
+ ldr r3, _0208FD9C ; =0x00000003
+ mla r1, r0, r4, r5
+ str r1, [r6, #0x0]
+ mov r0, r1, lsr #0x14
+ ldr r1, [sp, #0x4]
+ ldr r2, [r1, #0x8]
+ ldr r1, _0208FDA0 ; =0xAAAAAAAB
+ umull r1, r10, r0, r1
+ mov r10, r10, lsr #0x1
+ umull r10, r11, r3, r10
+ ldrh r1, [r2, #0x0]
+ sub r10, r0, r10
+ strh r1, [sp, #0x50]
+ ldrh r0, [r8, #0x22]
+ mov r1, r10, lsl #0x1
+ strh r0, [sp, #0x52]
+ ldrh r0, [r2, #0x2]
+ strh r0, [sp, #0x54]
+ add r0, sp, #0x50
+ ldrh r0, [r0, r1]
+ strh r0, [r7, #0x36]
+ b _0208FBC4
+_0208FBBC:
+ ldrh r0, [r8, #0x22]
+ strh r0, [r7, #0x36]
+_0208FBC4:
+ ldrh r1, [r7, #0x2e]
+ ldrb r0, [r9, #0x81]
+ bic r1, r1, #0x1f
+ and r0, r0, #0x1f
+ orr r0, r1, r0
+ strh r0, [r7, #0x2e]
+ ldrh r0, [r7, #0x2e]
+ bic r0, r0, #0x3e0
+ orr r0, r0, #0x3e0
+ strh r0, [r7, #0x2e]
+ ldr r0, [r8, #0x0]
+ mov r0, r0, lsl #0x12
+ movs r0, r0, lsr #0x1f
+ ldrne r0, [r6, #0x0]
+ mlane r1, r0, r4, r5
+ strne r1, [r6, #0x0]
+ strneh r1, [r7, #0x20]
+ ldreqh r0, [r9, #0x56]
+ streqh r0, [r7, #0x20]
+ ldr r0, [r8, #0x0]
+ mov r0, r0, lsl #0x13
+ movs r0, r0, lsr #0x1f
+ ldreq r0, [sp, #0x38]
+ streqh r0, [r7, #0x22]
+ beq _0208FC54
+ ldr r0, [r6, #0x0]
+ mla r1, r0, r4, r5
+ str r1, [r6, #0x0]
+ mov r0, r1, lsr #0x14
+ ldrsh r2, [r8, #0x34]
+ ldrsh r1, [r8, #0x36]
+ sub r1, r1, r2
+ mul r0, r1, r0
+ add r0, r0, r2, lsl #0xc
+ mov r0, r0, lsr #0xc
+ strh r0, [r7, #0x22]
+_0208FC54:
+ ldr r0, [r6, #0x0]
+ mla r1, r0, r4, r5
+ str r1, [r6, #0x0]
+ mov r0, r1, lsr #0x18
+ ldrb r1, [r8, #0x41]
+ ldrh r2, [r9, #0x70]
+ mul r0, r1, r0
+ mov r0, r0, asr #0x8
+ rsb r0, r0, #0xff
+ mul r0, r2, r0
+ mov r0, r0, asr #0x8
+ add r0, r0, #0x1
+ strh r0, [r7, #0x24]
+ ldr r0, [sp, #0x3c]
+ strh r0, [r7, #0x26]
+ ldr r0, [r8, #0x0]
+ mov r0, r0, lsl #0x14
+ movs r1, r0, lsr #0x1f
+ beq _0208FCE4
+ ldr r0, [sp, #0x4]
+ ldr r0, [r0, #0x10]
+ ldr r0, [r0, #0x8]
+ mov r0, r0, lsl #0xf
+ movs r0, r0, lsr #0x1f
+ beq _0208FCE4
+ ldr r0, [r6, #0x0]
+ mla r1, r0, r4, r5
+ str r1, [r6, #0x0]
+ mov r0, r1, lsr #0x14
+ ldr r1, [sp, #0x4]
+ ldr r10, [r1, #0x10]
+ ldrb r1, [r10, #0x8]
+ bl _u32_div_f
+ ldrb r0, [r10, r1]
+ strb r0, [r7, #0x2c]
+ b _0208FD14
+_0208FCE4:
+ cmp r1, #0x0
+ beq _0208FD0C
+ ldr r0, [sp, #0x4]
+ ldr r1, [r0, #0x10]
+ ldr r0, [r1, #0x8]
+ mov r0, r0, lsl #0xf
+ movs r0, r0, lsr #0x1f
+ ldreqb r0, [r1, #0x0]
+ streqb r0, [r7, #0x2c]
+ beq _0208FD14
+_0208FD0C:
+ ldrb r0, [r8, #0x47]
+ strb r0, [r7, #0x2c]
+_0208FD14:
+ ldr r1, [sp, #0x4]
+ ldr r0, _0208FDA4 ; =0x0000FFFF
+ ldr r1, [r1, #0x0]
+ ldrb r1, [r1, #0x48]
+ bl _s32_div_f
+ strh r0, [r7, #0x28]
+ ldrh r1, [r7, #0x24]
+ ldr r0, _0208FDA4 ; =0x0000FFFF
+ bl _s32_div_f
+ strh r0, [r7, #0x2a]
+ ldr r0, [sp, #0x40]
+ strb r0, [r7, #0x2d]
+ ldr r0, [r8, #0x0]
+ mov r0, r0, lsl #0xb
+ movs r0, r0, lsr #0x1f
+ ldrne r0, [r6, #0x0]
+ mlane r1, r0, r4, r5
+ strne r1, [r6, #0x0]
+ movne r0, r1, lsr #0x18
+ strneb r0, [r7, #0x2d]
+ ldr r0, [sp, #0x8]
+ add r1, r0, #0x1
+ ldr r0, [sp, #0xc]
+ str r1, [sp, #0x8]
+ cmp r1, r0
+ blt _0208F13C
+ add sp, sp, #0xc4
+ ldmia sp!, {r4-r11,lr}
+ bx lr
+ .balign 4
+_0208FD88: .word 0x00000FFF
+_0208FD8C: .word 0x021C8C5C
+_0208FD90: .word 0x5EEDF715
+_0208FD94: .word 0x1B0CB173
+_0208FD98: .word 0x020FFA38
+_0208FD9C: .word 0x00000003
+_0208FDA0: .word 0xAAAAAAAB
+_0208FDA4: .word 0x0000FFFF
+
+ arm_func_start FUN_0208FDA8
+FUN_0208FDA8: ; 0x0208FDA8
+ stmdb sp!, {r4-r8,lr}
+ sub sp, sp, #0x8
+ mov r4, r2
+ mov r6, r0
+ mov r5, r1
+ add r2, sp, #0x0
+ add r0, r4, #0x84
+ add r1, r4, #0x8a
+ bl VEC_Fx16CrossProduct
+_0208FDCC: ; 0x0208FDCC
+ add r0, sp, #0x0
+ mov r1, r0
+ bl VEC_Fx16Normalize
+ ldrsh r1, [sp, #0x0]
+ ldr lr, [r5, #0x8]
+ ldrsh r0, [r4, #0x84]
+ ldr r12, [r5, #0x0]
+ smull r3, r2, lr, r1
+ smull r1, r0, r12, r0
+ ldrsh r7, [r4, #0x8a]
+ ldr r8, [r5, #0x4]
+ mov r12, #0x800
+ smull lr, r7, r8, r7
+ adds r8, r3, r12
+ adc r3, r2, #0x0
+ mov r2, r8, lsr #0xc
+ adds r1, r1, r12
+ orr r2, r2, r3, lsl #0x14
+ adc r0, r0, #0x0
+ mov r3, r1, lsr #0xc
+ adds r1, lr, r12
+ orr r3, r3, r0, lsl #0x14
+ adc r0, r7, #0x0
+ mov r1, r1, lsr #0xc
+ orr r1, r1, r0, lsl #0x14
+ add r0, r3, r1
+ add r0, r2, r0
+ str r0, [r6, #0x0]
+ ldrsh r0, [sp, #0x2]
+ ldr r1, [r5, #0x8]
+ ldrsh r3, [r4, #0x86]
+ smull r2, r0, r1, r0
+ adds r2, r2, r12
+ ldr lr, [r5, #0x0]
+ adc r1, r0, #0x0
+ mov r0, r2, lsr #0xc
+ orr r0, r0, r1, lsl #0x14
+ smull r8, r7, lr, r3
+ ldrsh r1, [r4, #0x8c]
+ ldr r2, [r5, #0x4]
+ adds r8, r8, r12
+ smull r3, r1, r2, r1
+ adc r2, r7, #0x0
+ mov r7, r8, lsr #0xc
+ orr r7, r7, r2, lsl #0x14
+ adds r2, r3, r12
+ adc r1, r1, #0x0
+ mov r2, r2, lsr #0xc
+ orr r2, r2, r1, lsl #0x14
+ add r1, r7, r2
+ add r0, r0, r1
+ str r0, [r6, #0x4]
+ ldrsh r0, [sp, #0x4]
+ ldr r1, [r5, #0x8]
+ ldr lr, [r5, #0x0]
+ smull r3, r0, r1, r0
+ adds r3, r3, r12
+ adc r1, r0, #0x0
+ mov r0, r3, lsr #0xc
+ orr r0, r0, r1, lsl #0x14
+ ldrsh r3, [r4, #0x88]
+ ldrsh r1, [r4, #0x8e]
+ ldr r2, [r5, #0x4]
+ smull r5, r4, lr, r3
+ adds r5, r5, r12
+ smull r3, r1, r2, r1
+ adc r4, r4, #0x0
+ adds r2, r3, r12
+ mov r3, r5, lsr #0xc
+ adc r1, r1, #0x0
+ mov r2, r2, lsr #0xc
+ orr r3, r3, r4, lsl #0x14
+ orr r2, r2, r1, lsl #0x14
+ add r1, r3, r2
+ add r0, r0, r1
+ str r0, [r6, #0x8]
+ add sp, sp, #0x8
+ ldmia sp!, {r4-r8,lr}
+ bx lr
+
+ arm_func_start FUN_0208FF08
+FUN_0208FF08: ; 0x0208FF08
+ stmdb sp!, {r4-r6,lr}
+ sub sp, sp, #0x10
+ ldr r1, _0209018C ; =0x02106168
+ mov r4, r0
+ ldrh r3, [r1, #0x0]
+ ldrh r2, [r1, #0x2]
+ ldrh r0, [r1, #0x4]
+ strh r3, [sp, #0x0]
+ strh r2, [sp, #0x2]
+ strh r0, [sp, #0x4]
+ ldr r0, [r4, #0x20]
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0x0]
+ mov r0, r0, lsl #0x18
+ movs r0, r0, lsr #0x1e
+ beq _0208FF88
+ cmp r0, #0x1
+ beq _0208FF70
+ cmp r0, #0x2
+ bne _0208FFA0
+ mov r0, #0x0
+ mov r1, #0x1000
+ strh r1, [sp, #0x6]
+ strh r0, [sp, #0x8]
+ strh r0, [sp, #0xa]
+ b _0208FFAC
+_0208FF70:
+ mov r1, #0x0
+ mov r0, #0x1000
+ strh r1, [sp, #0x6]
+ strh r0, [sp, #0x8]
+ strh r1, [sp, #0xa]
+ b _0208FFAC
+_0208FF88:
+ mov r1, #0x0
+ mov r0, #0x1000
+ strh r1, [sp, #0x6]
+ strh r1, [sp, #0x8]
+ strh r0, [sp, #0xa]
+ b _0208FFAC
+_0208FFA0:
+ add r1, sp, #0x6
+ add r0, r4, #0x50
+ bl VEC_Fx16Normalize
+_0208FFAC:
+ add r0, sp, #0x0
+ add r1, sp, #0x6
+ bl VEC_Fx16DotProduct
+ cmp r0, #0x1000
+ beq _0208FFD0
+ mov r1, #0x1000
+ rsb r1, r1, #0x0
+ cmp r0, r1
+ bne _0208FFE4
+_0208FFD0:
+ mov r0, #0x0
+ mov r1, #0x1000
+ strh r1, [sp, #0x0]
+ strh r0, [sp, #0x2]
+ strh r0, [sp, #0x4]
+_0208FFE4:
+ ldrsh r3, [sp, #0x8]
+ ldrsh r1, [sp, #0x4]
+ ldrsh r2, [sp, #0xa]
+ ldrsh r0, [sp, #0x2]
+ smull r6, r5, r3, r1
+ mov r1, #0x800
+ adds r6, r6, r1
+ smull r3, r0, r2, r0
+ adc r5, r5, #0x0
+ adds r2, r3, r1
+ mov r3, r6, lsr #0xc
+ adc r0, r0, #0x0
+ mov r2, r2, lsr #0xc
+ orr r3, r3, r5, lsl #0x14
+ orr r2, r2, r0, lsl #0x14
+ sub r0, r3, r2
+ strh r0, [r4, #0x84]
+ ldrsh r5, [sp, #0xa]
+ ldrsh r3, [sp, #0x0]
+ ldrsh r2, [sp, #0x6]
+ ldrsh r0, [sp, #0x4]
+ smull r3, r6, r5, r3
+ adds r12, r3, r1
+ smull r3, r0, r2, r0
+ adc r5, r6, #0x0
+ adds r2, r3, r1
+ mov r3, r12, lsr #0xc
+ adc r0, r0, #0x0
+ mov r2, r2, lsr #0xc
+ orr r3, r3, r5, lsl #0x14
+ orr r2, r2, r0, lsl #0x14
+ sub r0, r3, r2
+ strh r0, [r4, #0x86]
+ ldrsh r5, [sp, #0x6]
+ ldrsh r3, [sp, #0x2]
+ ldrsh r2, [sp, #0x8]
+ ldrsh r0, [sp, #0x0]
+ smull r3, r6, r5, r3
+ adds r12, r3, r1
+ smull r3, r0, r2, r0
+ adc r5, r6, #0x0
+ adds r2, r3, r1
+ mov r3, r12, lsr #0xc
+ adc r0, r0, #0x0
+ mov r2, r2, lsr #0xc
+ orr r3, r3, r5, lsl #0x14
+ orr r2, r2, r0, lsl #0x14
+ sub r0, r3, r2
+ strh r0, [r4, #0x88]
+ ldrsh r6, [sp, #0x8]
+ ldrsh r5, [r4, #0x88]
+ add r0, r4, #0x84
+ ldrsh r3, [sp, #0xa]
+ ldrsh r2, [r4, #0x86]
+ smull r5, r12, r6, r5
+ adds lr, r5, r1
+ smull r5, r2, r3, r2
+ adc r6, r12, #0x0
+ adds r3, r5, r1
+ mov r5, lr, lsr #0xc
+ adc r2, r2, #0x0
+ mov r3, r3, lsr #0xc
+ orr r5, r5, r6, lsl #0x14
+ orr r3, r3, r2, lsl #0x14
+ sub r2, r5, r3
+ strh r2, [r4, #0x8a]
+ ldrsh r6, [sp, #0xa]
+ ldrsh r5, [r4, #0x84]
+ ldrsh r3, [sp, #0x6]
+ ldrsh r2, [r4, #0x88]
+ smull lr, r12, r6, r5
+ smull r5, r2, r3, r2
+ adds r6, lr, r1
+ adc r3, r12, #0x0
+ mov r6, r6, lsr #0xc
+ orr r6, r6, r3, lsl #0x14
+ adds r3, r5, r1
+ adc r2, r2, #0x0
+ mov r3, r3, lsr #0xc
+ orr r3, r3, r2, lsl #0x14
+ sub r2, r6, r3
+ strh r2, [r4, #0x8c]
+ ldrsh lr, [sp, #0x6]
+ ldrsh r12, [r4, #0x86]
+ ldrsh r3, [sp, #0x8]
+ ldrsh r2, [r4, #0x84]
+ smull r6, r5, lr, r12
+ smull r12, r2, r3, r2
+ adds r6, r6, r1
+ adc r5, r5, #0x0
+ adds r3, r12, r1
+ mov r6, r6, lsr #0xc
+ orr r6, r6, r5, lsl #0x14
+ adc r1, r2, #0x0
+ mov r2, r3, lsr #0xc
+ orr r2, r2, r1, lsl #0x14
+ sub r1, r6, r2
+ strh r1, [r4, #0x8e]
+ mov r1, r0
+ bl VEC_Fx16Normalize
+ add r0, r4, #0x8a
+ mov r1, r0
+ bl VEC_Fx16Normalize
+ add sp, sp, #0x10
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+ .balign 4
+_0209018C: .word 0x02106168
+
+ arm_func_start FUN_02090190
+FUN_02090190: ; 0x02090190
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ rsb r2, r2, #0xff
+ mov r1, #0x1f
+ mul r3, r2, r1
+ ldr r2, _020901E4 ; =0x80808081
+ ldrh lr, [r0, #0x2e]
+ smull r1, r12, r2, r3
+ add r12, r3, r12
+ mov r12, r12, asr #0x7
+ mov r1, r3, lsr #0x1f
+ add r12, r1, r12
+ mov r1, r12, lsl #0x10
+ mov r1, r1, lsr #0x10
+ bic r2, lr, #0x3e0
+ and r1, r1, #0x1f
+ orr r1, r2, r1, lsl #0x5
+ strh r1, [r0, #0x2e]
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+ .balign 4
+_020901E4: .word 0x80808081
+
+ arm_func_start FUN_020901E8
+FUN_020901E8: ; 0x020901E8
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldr r3, [r1, #0x14]
+ sub r1, r2, #0xff
+ ldrsh lr, [r3, #0x4]
+ ldr r2, _02090230 ; =0x80808081
+ sub r3, lr, #0x1000
+ mul r12, r3, r1
+ smull r1, r3, r2, r12
+ add r3, r12, r3
+ mov r3, r3, asr #0x7
+ mov r1, r12, lsr #0x1f
+ add r3, r1, r3
+ add r1, lr, r3
+ strh r1, [r0, #0x34]
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+ .balign 4
+_02090230: .word 0x80808081
+
+ arm_func_start FUN_02090234
+FUN_02090234: ; 0x02090234
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ ldr r5, [r1, #0x10]
+ mov r4, #0x0
+ ldrb r3, [r5, #0x8]
+ cmp r3, #0x0
+ addle sp, sp, #0x4
+ ldmleia sp!, {r4-r5,lr}
+ bxle lr
+ ldrb r12, [r5, #0x9]
+ mov lr, r4
+_02090260:
+ add r1, lr, r12
+ cmp r2, r1
+ ldrltb r1, [r5, r4]
+ addlt sp, sp, #0x4
+ strltb r1, [r0, #0x2c]
+ ldmltia sp!, {r4-r5,lr}
+ bxlt lr
+ add r4, r4, #0x1
+ cmp r4, r3
+ add lr, lr, r12
+ blt _02090260
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,lr}
+ bx lr
+
+ arm_func_start FUN_02090298
+FUN_02090298: ; 0x02090298
+ stmdb sp!, {r4-r6,lr}
+ ldr r4, [r1, #0xc]
+ mov r5, r0
+ ldrb r1, [r4, #0x4]
+ ldrb r3, [r4, #0x5]
+ cmp r2, r1
+ bge _020902D8
+ ldrh r3, [r4, #0x0]
+ mov r0, r3, lsl #0x16
+ mov r6, r3, lsl #0x1b
+ mov r0, r0, lsr #0x1b
+ sub r0, r0, r6, lsr #0x1b
+ mul r0, r2, r0
+ bl _s32_div_f
+ add r0, r0, r6, lsr #0x1b
+ b _02090314
+_020902D8:
+ cmp r2, r3
+ ldrlth r0, [r4, #0x0]
+ movlt r0, r0, lsl #0x16
+ movlt r0, r0, lsr #0x1b
+ blt _02090314
+ ldrh r0, [r4, #0x0]
+ sub r2, r2, #0xff
+ rsb r1, r3, #0xff
+ mov r6, r0, lsl #0x11
+ mov r3, r6, lsr #0x1b
+ mov r0, r0, lsl #0x16
+ sub r0, r3, r0, lsr #0x1b
+ mul r0, r2, r0
+ bl _s32_div_f
+ add r0, r0, r6, lsr #0x1b
+_02090314:
+ ldr r3, _02090368 ; =0x021C8C5C
+ ldr r1, _0209036C ; =0x5EEDF715
+ ldr r12, [r3, #0x0]
+ ldr r2, _02090370 ; =0x1B0CB173
+ mla r1, r12, r1, r2
+ str r1, [r3, #0x0]
+ ldrb r2, [r4, #0x2]
+ mov r1, r1, lsr #0x18
+ ldrh r3, [r5, #0x2e]
+ mul r1, r2, r1
+ mov r1, r1, asr #0x8
+ rsb r1, r1, #0xff
+ mul r1, r0, r1
+ mov r0, r1, lsl #0x8
+ mov r0, r0, lsr #0x10
+ bic r1, r3, #0x3e0
+ and r0, r0, #0x1f
+ orr r0, r1, r0, lsl #0x5
+ strh r0, [r5, #0x2e]
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+ .balign 4
+_02090368: .word 0x021C8C5C
+_0209036C: .word 0x5EEDF715
+_02090370: .word 0x1B0CB173
+
+ arm_func_start FUN_02090374
+FUN_02090374: ; 0x02090374
+ stmdb sp!, {r4-r11,lr}
+ sub sp, sp, #0x4
+
+ arm_func_start FUN_0209037C
+FUN_0209037C: ; 0x0209037C
+ ldr r4, [r1, #0x8]
+ mov r10, r0
+ ldrb r3, [r4, #0x4]
+ ldr r0, [r1, #0x0]
+ ldrb r1, [r4, #0x5]
+ cmp r2, r3
+ ldrb r11, [r4, #0x6]
+ ldrlth r0, [r4, #0x0]
+ addlt sp, sp, #0x4
+ strlth r0, [r10, #0x36]
+ ldmltia sp!, {r4-r11,lr}
+ bxlt lr
+ cmp r2, r1
+ bge _0209046C
+ ldrh r9, [r0, #0x22]
+ ldrh r0, [r4, #0x8]
+ ldrh r8, [r4, #0x0]
+ mov r7, r9, asr #0x5
+ mov r11, r9, asr #0xa
+ mov r4, r0, lsl #0x1d
+ mov r6, r8, asr #0x5
+ mov r5, r8, asr #0xa
+ movs r4, r4, lsr #0x1f
+ and r9, r9, #0x1f
+ and r7, r7, #0x1f
+ and r0, r11, #0x1f
+ orreq r1, r9, r7, lsl #0x5
+ orreq r0, r1, r0, lsl #0xa
+ and r8, r8, #0x1f
+ and r6, r6, #0x1f
+ and r5, r5, #0x1f
+ addeq sp, sp, #0x4
+ streqh r0, [r10, #0x36]
+ ldmeqia sp!, {r4-r11,lr}
+ bxeq lr
+ sub r4, r2, r3
+ sub r0, r0, r5
+ mul r0, r4, r0
+ sub r11, r1, r3
+ mov r1, r11
+ bl _s32_div_f
+ sub r1, r9, r8
+ mov r9, r0
+ mul r0, r4, r1
+ mov r1, r11
+ bl _s32_div_f
+ sub r1, r7, r6
+ mov r7, r0
+ mul r0, r4, r1
+ mov r1, r11
+ bl _s32_div_f
+ add r1, r8, r7
+ add r0, r6, r0
+ add r2, r5, r9
+ orr r0, r1, r0, lsl #0x5
+ orr r0, r0, r2, lsl #0xa
+ add sp, sp, #0x4
+ strh r0, [r10, #0x36]
+ ldmia sp!, {r4-r11,lr}
+ bx lr
+_0209046C:
+ cmp r2, r11
+ bge _0209052C
+ ldrh r7, [r4, #0x2]
+ ldrh r8, [r0, #0x22]
+ ldrh r0, [r4, #0x8]
+ mov r5, r7, asr #0x5
+ mov r4, r7, asr #0xa
+ mov r3, r0, lsl #0x1d
+ mov r6, r8, asr #0x5
+ mov r9, r8, asr #0xa
+ movs r3, r3, lsr #0x1f
+ and r7, r7, #0x1f
+ and r5, r5, #0x1f
+ and r0, r4, #0x1f
+ orreq r1, r7, r5, lsl #0x5
+ orreq r0, r1, r0, lsl #0xa
+ and r8, r8, #0x1f
+ and r6, r6, #0x1f
+ and r9, r9, #0x1f
+ addeq sp, sp, #0x4
+ streqh r0, [r10, #0x36]
+ ldmeqia sp!, {r4-r11,lr}
+ bxeq lr
+ sub r4, r2, r1
+ sub r0, r0, r9
+ mul r0, r4, r0
+ sub r11, r11, r1
+ mov r1, r11
+ bl _s32_div_f
+ sub r1, r7, r8
+ mov r7, r0
+ mul r0, r4, r1
+ mov r1, r11
+ bl _s32_div_f
+ sub r1, r5, r6
+ mov r5, r0
+ mul r0, r4, r1
+ mov r1, r11
+ bl _s32_div_f
+ add r1, r8, r5
+ add r0, r6, r0
+ add r2, r9, r7
+ orr r0, r1, r0, lsl #0x5
+ orr r0, r0, r2, lsl #0xa
+ add sp, sp, #0x4
+ strh r0, [r10, #0x36]
+ ldmia sp!, {r4-r11,lr}
+ bx lr
+_0209052C:
+ ldrh r0, [r4, #0x2]
+ strh r0, [r10, #0x36]
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r11,lr}
+ bx lr
+
+ arm_func_start FUN_02090540
+FUN_02090540: ; 0x02090540
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ ldr r12, [r1, #0x4]
+ mov r4, r0
+ ldrb r1, [r12, #0x6]
+ ldrb r3, [r12, #0x7]
+ cmp r2, r1
+ bge _02090588
+ ldrsh r5, [r12, #0x0]
+ ldrsh r0, [r12, #0x2]
+ sub r0, r0, r5
+ mul r0, r2, r0
+ bl _s32_div_f
+_02090574: ; 0x02090574
+ add r0, r5, r0
+ add sp, sp, #0x4
+ strh r0, [r4, #0x34]
+ ldmia sp!, {r4-r5,lr}
+ bx lr
+_02090588:
+ cmp r2, r3
+ ldrltsh r0, [r12, #0x2]
+ addlt sp, sp, #0x4
+ strlth r0, [r4, #0x34]
+ ldmltia sp!, {r4-r5,lr}
+ bxlt lr
+ ldrsh r5, [r12, #0x4]
+ ldrsh r0, [r12, #0x2]
+ sub r2, r2, #0xff
+ rsb r1, r3, #0xff
+ sub r0, r5, r0
+ mul r0, r2, r0
+ bl _s32_div_f
+_020905BC: ; 0x020905BC
+ add r0, r5, r0
+ strh r0, [r4, #0x34]
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,lr}
+ bx lr
+
+ arm_func_start FUN_020905D0
+FUN_020905D0: ; 0x020905D0
+ stmdb sp!, {r4,lr}
+ ldr lr, [r1, #0x8]
+ ldr r2, [r0, #0x0]
+ ldrsh r4, [r0, #0xc]
+ sub r3, r2, lr
+ mov r2, #0x800
+ smull r12, r3, r4, r3
+ adds r4, r12, r2
+ adc r3, r3, #0x0
+ mov r4, r4, lsr #0xc
+ orr r4, r4, r3, lsl #0x14
+ add r3, lr, r4
+ str r3, [r1, #0x8]
+ ldr r4, [r1, #0xc]
+ ldr r3, [r0, #0x4]
+ ldrsh r12, [r0, #0xc]
+ sub r3, r3, r4
+ smull lr, r3, r12, r3
+ adds r12, lr, r2
+ adc r3, r3, #0x0
+ mov r12, r12, lsr #0xc
+ orr r12, r12, r3, lsl #0x14
+ add r3, r4, r12
+ str r3, [r1, #0xc]
+ ldr lr, [r1, #0x10]
+ ldr r3, [r0, #0x8]
+ ldrsh r12, [r0, #0xc]
+ sub r0, r3, lr
+ smull r3, r0, r12, r0
+ adds r2, r3, r2
+ adc r0, r0, #0x0
+ mov r2, r2, lsr #0xc
+ orr r2, r2, r0, lsl #0x14
+ add r0, lr, r2
+ str r0, [r1, #0x10]
+ ldmia sp!, {r4,lr}
+ bx lr
+
+ arm_func_start FUN_02090664
+FUN_02090664: ; 0x02090664
+ ldr r3, [r3, #0x74]
+ ldr r2, [r0, #0x0]
+ cmp r3, #0x80000000
+ movne r2, r3
+ ldrh r3, [r0, #0x6]
+ mov r3, r3, lsl #0x1e
+ movs r3, r3, lsr #0x1e
+ beq _02090690
+ cmp r3, #0x1
+ beq _020906E4
+ bx lr
+_02090690:
+ ldr r3, [r1, #0x3c]
+ cmp r3, r2
+ bge _020906BC
+ ldr r0, [r1, #0xc]
+ add r0, r3, r0
+ cmp r0, r2
+ subgt r0, r2, r3
+ strgt r0, [r1, #0xc]
+ ldrgth r0, [r1, #0x24]
+ strgth r0, [r1, #0x26]
+ bxgt lr
+_020906BC:
+ cmp r3, r2
+ bxlt lr
+ ldr r0, [r1, #0xc]
+ add r0, r3, r0
+ cmp r0, r2
+ sublt r0, r2, r3
+ strlt r0, [r1, #0xc]
+ ldrlth r0, [r1, #0x24]
+ strlth r0, [r1, #0x26]
+ bx lr
+_020906E4:
+ ldr r12, [r1, #0x3c]
+ cmp r12, r2
+ bge _02090734
+ ldr r3, [r1, #0xc]
+ add r3, r12, r3
+ cmp r3, r2
+ ble _02090734
+ sub r2, r2, r12
+ str r2, [r1, #0xc]
+ ldrsh r2, [r0, #0x4]
+ ldr r3, [r1, #0x18]
+ mov r0, #0x800
+ smull r12, r2, r3, r2
+ adds r3, r12, r0
+ adc r0, r2, #0x0
+ mov r2, r3, lsr #0xc
+ orr r2, r2, r0, lsl #0x14
+ rsb r0, r2, #0x0
+ str r0, [r1, #0x18]
+ bx lr
+_02090734:
+ cmp r12, r2
+ bxlt lr
+ ldr r3, [r1, #0xc]
+ add r3, r12, r3
+ cmp r3, r2
+ bxge lr
+ sub r2, r2, r12
+ str r2, [r1, #0xc]
+ ldrsh r2, [r0, #0x4]
+ ldr r3, [r1, #0x18]
+ mov r0, #0x800
+ smull r12, r2, r3, r2
+ adds r3, r12, r0
+ adc r0, r2, #0x0
+ mov r2, r3, lsr #0xc
+ orr r2, r2, r0, lsl #0x14
+ rsb r0, r2, #0x0
+ str r0, [r1, #0x18]
+ bx lr
+
+ arm_func_start FUN_02090780
+FUN_02090780: ; 0x02090780
+ stmdb sp!, {r4,lr}
+ sub sp, sp, #0x28
+ ldrh r2, [r0, #0x2]
+ mov r4, r1
+ cmp r2, #0x0
+ beq _020907AC
+ cmp r2, #0x1
+ beq _020907DC
+ cmp r2, #0x2
+ beq _0209080C
+ b _02090838
+_020907AC:
+ ldrh r1, [r0, #0x0]
+ ldr r3, _02090854 ; =0x020FFA38
+ add r0, sp, #0x0
+ mov r1, r1, asr #0x4
+ mov r2, r1, lsl #0x1
+ add r1, r2, #0x1
+ mov r12, r2, lsl #0x1
+ mov r2, r1, lsl #0x1
+ ldrsh r1, [r3, r12]
+ ldrsh r2, [r3, r2]
+ blx MTX_RotX33_
+ b _02090838
+_020907DC:
+ ldrh r1, [r0, #0x0]
+ ldr r3, _02090854 ; =0x020FFA38
+ add r0, sp, #0x0
+ mov r1, r1, asr #0x4
+ mov r2, r1, lsl #0x1
+ add r1, r2, #0x1
+ mov r12, r2, lsl #0x1
+ mov r2, r1, lsl #0x1
+ ldrsh r1, [r3, r12]
+ ldrsh r2, [r3, r2]
+ blx MTX_RotY33_
+ b _02090838
+_0209080C:
+ ldrh r1, [r0, #0x0]
+ ldr r3, _02090854 ; =0x020FFA38
+ add r0, sp, #0x0
+ mov r1, r1, asr #0x4
+ mov r2, r1, lsl #0x1
+ add r1, r2, #0x1
+ mov r12, r2, lsl #0x1
+ mov r2, r1, lsl #0x1
+ ldrsh r1, [r3, r12]
+ ldrsh r2, [r3, r2]
+ blx MTX_RotZ33_
+_02090838:
+ add r0, r4, #0x8
+ add r1, sp, #0x0
+ mov r2, r0
+ bl MTX_MultVec33
+ add sp, sp, #0x28
+ ldmia sp!, {r4,lr}
+ bx lr
+ .balign 4
+_02090854: .word 0x020FFA38
+
+ arm_func_start FUN_02090858
+FUN_02090858: ; 0x02090858
+ stmdb sp!, {r4,lr}
+ ldr r12, [r0, #0x0]
+ ldr r4, [r1, #0x8]
+ ldrsh lr, [r0, #0xc]
+ ldr r3, [r1, #0x14]
+ sub r4, r12, r4
+ sub r3, r4, r3
+ mul r3, lr, r3
+ ldr r4, [r2, #0x0]
+ add r3, r4, r3, asr #0xc
+ str r3, [r2, #0x0]
+ ldr lr, [r0, #0x4]
+ ldr r12, [r1, #0xc]
+ ldrsh r4, [r0, #0xc]
+ ldr r3, [r1, #0x18]
+ sub r12, lr, r12
+ sub r3, r12, r3
+ mul r3, r4, r3
+ ldr r4, [r2, #0x4]
+ add r3, r4, r3, asr #0xc
+ str r3, [r2, #0x4]
+ ldr r12, [r0, #0x8]
+ ldr r3, [r1, #0x10]
+ ldrsh lr, [r0, #0xc]
+ ldr r0, [r1, #0x1c]
+ sub r1, r12, r3
+ sub r0, r1, r0
+ mul r0, lr, r0
+ ldr r1, [r2, #0x8]
+ add r0, r1, r0, asr #0xc
+ str r0, [r2, #0x8]
+ ldmia sp!, {r4,lr}
+ bx lr
+
+ arm_func_start FUN_020908DC
+FUN_020908DC: ; 0x020908DC
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ mov r5, r0
+ ldrh r0, [r1, #0x26]
+ ldrh r1, [r5, #0x6]
+ mov r4, r2
+ bl _s32_div_f
+_020908F8: ; 0x020908F8
+ cmp r1, #0x0
+ addne sp, sp, #0x4
+ ldmneia sp!, {r4-r5,lr}
+ bxne lr
+ ldr r2, _02090998 ; =0x021C8C5C
+ ldr r0, _0209099C ; =0x5EEDF715
+ ldr r3, [r2, #0x0]
+ ldr r1, _020909A0 ; =0x1B0CB173
+ mla r12, r3, r0, r1
+ str r12, [r2, #0x0]
+ ldrsh lr, [r5, #0x0]
+ mov r3, r12, lsr #0x17
+ ldr r12, [r4, #0x0]
+ mul r3, lr, r3
+ sub r3, r3, lr, lsl #0x8
+ add r3, r12, r3, asr #0x8
+ str r3, [r4, #0x0]
+ ldr r3, [r2, #0x0]
+ mla r12, r3, r0, r1
+ str r12, [r2, #0x0]
+ ldrsh lr, [r5, #0x2]
+ mov r3, r12, lsr #0x17
+ ldr r12, [r4, #0x4]
+ mul r3, lr, r3
+ sub r3, r3, lr, lsl #0x8
+ add r3, r12, r3, asr #0x8
+ str r3, [r4, #0x4]
+ ldr r3, [r2, #0x0]
+ mla r0, r3, r0, r1
+ str r0, [r2, #0x0]
+ ldrsh r2, [r5, #0x4]
+ mov r0, r0, lsr #0x17
+ ldr r1, [r4, #0x8]
+ mul r0, r2, r0
+ sub r0, r0, r2, lsl #0x8
+ add r0, r1, r0, asr #0x8
+ str r0, [r4, #0x8]
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,lr}
+ bx lr
+ .balign 4
+_02090998: .word 0x021C8C5C
+_0209099C: .word 0x5EEDF715
+_020909A0: .word 0x1B0CB173
+
+ arm_func_start FUN_020909A4
+FUN_020909A4: ; 0x020909A4
+ ldrsh r1, [r0, #0x0]
+ ldr r3, [r2, #0x0]
+ add r1, r3, r1
+ str r1, [r2, #0x0]
+ ldrsh r1, [r0, #0x2]
+ ldr r3, [r2, #0x4]
+ add r1, r3, r1
+ str r1, [r2, #0x4]
+ ldrsh r0, [r0, #0x4]
+ ldr r1, [r2, #0x8]
+ add r0, r1, r0
+ str r0, [r2, #0x8]
+ bx lr
+
+ arm_func_start FUN_020909D8
+FUN_020909D8: ; 0x020909D8
+ ldr r3, [r1, #0x0]
+ cmp r3, #0x0
+ bne _02090A18
+ ldr r2, [r0, #0x0]
+ cmp r2, r1
+ moveq r2, #0x0
+ streq r2, [r0, #0x0]
+ streq r2, [r0, #0x8]
+ beq _02090A44
+ ldr r2, [r1, #0x4]
+ mov r3, #0x0
+ str r3, [r2, #0x0]
+ ldr r2, [r0, #0x8]
+ ldr r2, [r2, #0x4]
+ str r2, [r0, #0x8]
+ b _02090A44
+_02090A18:
+ ldr r2, [r0, #0x0]
+ cmp r2, r1
+ streq r3, [r0, #0x0]
+ ldreq r2, [r0, #0x0]
+ moveq r3, #0x0
+ streq r3, [r2, #0x4]
+ ldrne r2, [r1, #0x4]
+ strne r2, [r3, #0x4]
+ ldrne r3, [r1, #0x0]
+ ldrne r2, [r1, #0x4]
+ strne r3, [r2, #0x0]
+_02090A44:
+ ldr r2, [r0, #0x4]
+ sub r2, r2, #0x1
+ str r2, [r0, #0x4]
+ mov r0, r1
+ bx lr
+
+ arm_func_start FUN_02090A58
+FUN_02090A58: ; 0x02090A58
+ ldr r2, [r0, #0x0]
+ mov r3, #0x0
+ mov r12, r3
+ cmp r2, #0x0
+ beq _02090A9C
+ ldr r1, [r2, #0x0]
+ mov r12, r2
+ str r1, [r0, #0x0]
+ ldr r1, [r0, #0x0]
+ cmp r1, #0x0
+ ldrne r1, [r2, #0x0]
+ strne r3, [r1, #0x4]
+ streq r3, [r0, #0x0]
+ streq r3, [r0, #0x8]
+ ldr r1, [r0, #0x4]
+ sub r1, r1, #0x1
+ str r1, [r0, #0x4]
+_02090A9C:
+ mov r0, r12
+ bx lr
+
+ arm_func_start FUN_02090AA4
+FUN_02090AA4:
+ ldr r2, [r0, #0x0]
+ cmp r2, #0x0
+ bne _02090ACC
+ str r1, [r0, #0x0]
+ str r1, [r0, #0x8]
+ mov r2, #0x0
+ str r2, [r1, #0x0]
+ ldr r2, [r1, #0x0]
+ str r2, [r1, #0x4]
+ b _02090AE4
+_02090ACC:
+ str r2, [r1, #0x0]
+ mov r2, #0x0
+ str r2, [r1, #0x4]
+ ldr r2, [r0, #0x0]
+ str r1, [r2, #0x4]
+ str r1, [r0, #0x0]
+_02090AE4:
+ ldr r1, [r0, #0x4]
+ add r1, r1, #0x1
+ str r1, [r0, #0x4]
+ bx lr
+
+ arm_func_start FUN_02090AF4
+FUN_02090AF4:
+ stmdb sp!, {r4,lr}
+ ldr ip, _02090B44 ; =0x021C8C5C
+ ldr r2, _02090B48 ; =0x5EEDF715
+ ldr r4, [r12, #0x0]
+ ldr r3, _02090B4C ; =0x1B0CB173
+ mov r1, r0
+ mla lr, r4, r2, r3
+ str lr, [r12, #0x0]
+ mov r4, lr, asr #0x8
+ str r4, [r0, #0x0]
+ ldr r4, [r12, #0x0]
+ mov lr, #0x0
+ mla r2, r4, r2, r3
+ str r2, [r12, #0x0]
+ mov r2, r2, asr #0x8
+ str r2, [r0, #0x4]
+ str lr, [r0, #0x8]
+ bl VEC_Normalize
+ ldmia sp!, {r4,lr}
+ bx lr
+ .balign 4
+_02090B44: .word 0x021C8C5C
+_02090B48: .word 0x5EEDF715
+_02090B4C: .word 0x1B0CB173
+
+ arm_func_start FUN_02090B50
+FUN_02090B50: ; 0x02090B50
+ stmdb sp!, {r4,lr}
+ ldr ip, _02090BAC ; =0x021C8C5C
+ ldr r2, _02090BB0 ; =0x5EEDF715
+ ldr r4, [r12, #0x0]
+ ldr r3, _02090BB4 ; =0x1B0CB173
+ mov r1, r0
+ mla lr, r4, r2, r3
+ str lr, [r12, #0x0]
+ mov r4, lr, asr #0x8
+ str r4, [r0, #0x0]
+ ldr lr, [r12, #0x0]
+ mla r4, lr, r2, r3
+ str r4, [r12, #0x0]
+ mov lr, r4, asr #0x8
+ str lr, [r0, #0x4]
+ ldr lr, [r12, #0x0]
+ mla r2, lr, r2, r3
+ str r2, [r12, #0x0]
+ mov r2, r2, asr #0x8
+ str r2, [r0, #0x8]
+ bl VEC_Normalize
+ ldmia sp!, {r4,lr}
+ bx lr
+ .balign 4
+_02090BAC: .word 0x021C8C5C
+_02090BB0: .word 0x5EEDF715
+_02090BB4: .word 0x1B0CB173
+
+ arm_func_start FUN_02090BB8
+FUN_02090BB8: ; 0x02090BB8
+ bx lr
+
+ arm_func_start FUN_02090BBC
+FUN_02090BBC: ; 0x02090BBC
+ stmdb sp!, {r4-r6,lr}
+ mov r0, #0x10000
+ rsb r0, r0, #0x0
+ ldr r3, _02090CB8 ; =0x021C8C6C
+ ldr r2, _02090CBC ; =0x021C8C68
+ and r0, r1, r0
+ cmp r0, #0x10000
+ and r4, r1, #0xff
+ ldr r6, [r3, #0x0]
+ ldr r5, [r2, #0x0]
+ beq _02090BF4
+ cmp r0, #0x20000
+ beq _02090C38
+ b _02090C84
+_02090BF4:
+ cmp r4, #0x7
+ bne _02090C84
+ ldr r0, _02090CC0 ; =0x021C8C64
+ ldrh r1, [r0, #0x0]
+ cmp r1, #0x0
+ beq _02090C84
+ ldr r1, _02090CC4 ; =0x021C8C60
+ ldrh r2, [r1, #0x0]
+ cmp r2, #0x0
+ beq _02090C84
+ ldrh r0, [r0, #0x0]
+ ldrh r1, [r1, #0x0]
+ bl OSi_UnlockVram
+ ldr r0, _02090CC0 ; =0x021C8C64
+ mov r1, #0x0
+ strh r1, [r0, #0x0]
+ b _02090C84
+_02090C38:
+ cmp r4, #0x0
+ bne _02090C78
+ ldr r0, _02090CC0 ; =0x021C8C64
+ ldrh r1, [r0, #0x0]
+ cmp r1, #0x0
+ beq _02090C78
+ ldr r1, _02090CC4 ; =0x021C8C60
+ ldrh r2, [r1, #0x0]
+ cmp r2, #0x0
+ beq _02090C78
+ ldrh r0, [r0, #0x0]
+ ldrh r1, [r1, #0x0]
+ bl OSi_UnlockVram
+ ldr r0, _02090CC0 ; =0x021C8C64
+ mov r1, #0x0
+ strh r1, [r0, #0x0]
+_02090C78:
+ mov r0, #0xf
+ mov r1, #0x0
+ bl PXI_SetFifoRecvCallback
+_02090C84:
+ cmp r6, #0x0
+ ldmeqia sp!, {r4-r6,lr}
+ bxeq lr
+ ldr r3, _02090CB8 ; =0x021C8C6C
+ mov r12, #0x0
+ ldr r2, _02090CBC ; =0x021C8C68
+ mov r0, r5
+ mov r1, r4
+ str r12, [r3, #0x0]
+ str r12, [r2, #0x0]
+ blx r6
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+ .balign 4
+_02090CB8: .word 0x021C8C6C
+_02090CBC: .word 0x021C8C68
+_02090CC0: .word 0x021C8C64
+_02090CC4: .word 0x021C8C60
+
+ arm_func_start FUN_02090CC8
+FUN_02090CC8: ; 0x02090CC8
+ stmdb sp!, {r4-r6,lr}
+ mov r6, r0
+ mov r5, r1
+ bl PXI_Init
+ mov r0, #0xf
+ mov r1, #0x1
+ bl PXI_IsCallbackReady
+_02090CE4: ; 0x02090CE4
+ cmp r0, #0x0
+ moveq r0, #0x2
+ ldmeqia sp!, {r4-r6,lr}
+ bxeq lr
+ bl OS_DisableInterrupts
+ ldr r1, _02090DA8 ; =0x021C8C6C
+ mov r4, r0
+ ldr r1, [r1, #0x0]
+ cmp r1, #0x0
+ beq _02090D1C
+ bl OS_RestoreInterrupts
+ mov r0, #0x5
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+_02090D1C:
+ mov r0, #0xf
+ mov r1, #0x0
+ bl PXI_IsCallbackReady
+_02090D28: ; 0x02090D28
+ cmp r0, #0x0
+ bne _02090D3C
+ ldr r1, _02090DAC ; =FUN_02090BBC
+ mov r0, #0xf
+ bl PXI_SetFifoRecvCallback
+_02090D3C:
+ cmp r6, #0x0
+ ldreq r1, _02090DB0 ; =FUN_02090BB8
+ ldreq r0, _02090DA8 ; =0x021C8C6C
+ ldr r3, _02090DB4 ; =0x021C8C68
+ streq r1, [r0, #0x0]
+ ldrne r0, _02090DA8 ; =0x021C8C6C
+ mov r1, #0x20000
+ strne r6, [r0, #0x0]
+ mov r0, #0xf
+ mov r2, #0x0
+ str r5, [r3, #0x0]
+ bl PXI_SendWordByFifo
+_02090D6C: ; 0x02090D6C
+ cmp r0, #0x0
+ bge _02090D94
+ ldr r1, _02090DA8 ; =0x021C8C6C
+ mov r2, #0x0
+ mov r0, r4
+ str r2, [r1, #0x0]
+ bl OS_RestoreInterrupts
+ mov r0, #0x4
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+_02090D94:
+ mov r0, r4
+ bl OS_RestoreInterrupts
+ mov r0, #0x1
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+ .balign 4
+_02090DA8: .word 0x021C8C6C
+_02090DAC: .word FUN_02090BBC
+_02090DB0: .word FUN_02090BB8
+_02090DB4: .word 0x021C8C68
+
+ arm_func_start FUN_02090DB8
+FUN_02090DB8: ; 0x02090DB8
+ stmdb sp!, {r4-r8,lr}
+ mov r7, r0
+ mov r6, r1
+ mov r5, r2
+ bl PXI_Init
+ mov r0, #0xf
+ mov r1, #0x1
+ bl PXI_IsCallbackReady
+_02090DD8: ; 0x02090DD8
+ cmp r0, #0x0
+ moveq r0, #0x2
+ ldmeqia sp!, {r4-r8,lr}
+ bxeq lr
+ ldr r8, _02091020 ; =0x021C8C60
+ ldrh r0, [r8, #0x0]
+ cmp r0, #0x0
+ bne _02090E20
+ mvn r4, #0x2
+_02090DFC:
+ bl OS_GetLockID
+ cmp r0, r4
+ moveq r0, #0x7
+ ldmeqia sp!, {r4-r8,lr}
+ bxeq lr
+ strh r0, [r8, #0x0]
+ ldrh r0, [r8, #0x0]
+ cmp r0, #0x0
+ beq _02090DFC
+_02090E20:
+ bl OS_DisableInterrupts
+ ldr r1, _02091024 ; =0x021C8C6C
+ mov r4, r0
+ ldr r1, [r1, #0x0]
+ cmp r1, #0x0
+ beq _02090E48
+ bl OS_RestoreInterrupts
+ mov r0, #0x5
+ ldmia sp!, {r4-r8,lr}
+ bx lr
+_02090E48:
+ ldr r1, _02091028 ; =0x021C8C64
+ ldrh r1, [r1, #0x0]
+ cmp r1, #0x0
+ beq _02090E68
+ bl OS_RestoreInterrupts
+ mov r0, #0x5
+ ldmia sp!, {r4-r8,lr}
+ bx lr
+_02090E68:
+ cmp r7, #0x4
+ beq _02090E84
+ cmp r7, #0x8
+ beq _02090ECC
+ cmp r7, #0xc
+ beq _02090F14
+ b _02090F68
+_02090E84:
+ ldr r1, _02091020 ; =0x021C8C60
+ mov r0, #0x4
+ ldrh r1, [r1, #0x0]
+ bl OSi_TryLockVram
+_02090E94: ; 0x02090E94
+ cmp r0, #0x0
+ bne _02090EB0
+ mov r0, r4
+ bl OS_RestoreInterrupts
+ mov r0, #0x6
+ ldmia sp!, {r4-r8,lr}
+ bx lr
+_02090EB0:
+ ldr r0, _02091028 ; =0x021C8C64
+ mov r2, #0x4
+ ldr r1, _0209102C ; =0x04000242
+ strh r2, [r0, #0x0]
+ mov r0, #0x82
+ strb r0, [r1, #0x0]
+ b _02090F78
+_02090ECC:
+ ldr r1, _02091020 ; =0x021C8C60
+ mov r0, #0x8
+ ldrh r1, [r1, #0x0]
+ bl OSi_TryLockVram
+_02090EDC: ; 0x02090EDC
+ cmp r0, #0x0
+ bne _02090EF8
+ mov r0, r4
+ bl OS_RestoreInterrupts
+ mov r0, #0x6
+ ldmia sp!, {r4-r8,lr}
+ bx lr
+_02090EF8:
+ ldr r0, _02091028 ; =0x021C8C64
+ mov r2, #0x8
+ ldr r1, _02091030 ; =0x04000243
+ strh r2, [r0, #0x0]
+ mov r0, #0x82
+ strb r0, [r1, #0x0]
+ b _02090F78
+_02090F14:
+ ldr r1, _02091020 ; =0x021C8C60
+ mov r0, #0xc
+ ldrh r1, [r1, #0x0]
+ bl OSi_TryLockVram
+_02090F24: ; 0x02090F24
+ cmp r0, #0x0
+ bne _02090F40
+ mov r0, r4
+ bl OS_RestoreInterrupts
+ mov r0, #0x6
+ ldmia sp!, {r4-r8,lr}
+ bx lr
+_02090F40:
+ ldr r0, _02091028 ; =0x021C8C64
+ mov r2, #0xc
+ ldr r1, _0209102C ; =0x04000242
+ strh r2, [r0, #0x0]
+ mov r2, #0x82
+ ldr r0, _02091030 ; =0x04000243
+ strb r2, [r1, #0x0]
+ mov r1, #0x8a
+ strb r1, [r0, #0x0]
+ b _02090F78
+_02090F68:
+ bl OS_RestoreInterrupts
+ mov r0, #0x3
+ ldmia sp!, {r4-r8,lr}
+ bx lr
+_02090F78:
+ mov r0, #0xf
+ mov r1, #0x0
+ bl PXI_IsCallbackReady
+_02090F84: ; 0x02090F84
+ cmp r0, #0x0
+ bne _02090F98
+ ldr r1, _02091034 ; =FUN_02090BBC
+ mov r0, #0xf
+ bl PXI_SetFifoRecvCallback
+_02090F98:
+ cmp r6, #0x0
+ ldreq r1, _02091038 ; =FUN_02090BB8
+ ldreq r0, _02091024 ; =0x021C8C6C
+ ldr r3, _0209103C ; =0x021C8C68
+ streq r1, [r0, #0x0]
+ ldrne r0, _02091024 ; =0x021C8C6C
+ mov r1, #0x10000
+ strne r6, [r0, #0x0]
+ mov r0, #0xf
+ mov r2, #0x0
+ str r5, [r3, #0x0]
+ bl PXI_SendWordByFifo
+_02090FC8: ; 0x02090FC8
+ cmp r0, #0x0
+ bge _0209100C
+ ldr r0, _02091028 ; =0x021C8C64
+ ldr r1, _02091020 ; =0x021C8C60
+ ldrh r0, [r0, #0x0]
+ ldrh r1, [r1, #0x0]
+ bl OSi_UnlockVram
+ ldr r2, _02091028 ; =0x021C8C64
+ mov r3, #0x0
+ ldr r1, _02091024 ; =0x021C8C6C
+ mov r0, r4
+ strh r3, [r2, #0x0]
+ str r3, [r1, #0x0]
+ bl OS_RestoreInterrupts
+ mov r0, #0x4
+ ldmia sp!, {r4-r8,lr}
+ bx lr
+_0209100C:
+ mov r0, r4
+ bl OS_RestoreInterrupts
+ mov r0, #0x1
+ ldmia sp!, {r4-r8,lr}
+ bx lr
+ .balign 4
+_02091020: .word 0x021C8C60
+_02091024: .word 0x021C8C6C
+_02091028: .word 0x021C8C64
+_0209102C: .word 0x04000242
+_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
+
+ arm_func_start FUN_020910A4
+FUN_020910A4:
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldr r1, _020910E8 ; =0x021C8C70
+ mov r2, r0
+ ldr r1, [r1, #0x0]
+ cmp r1, #0x0
+ beq _020910D0
+ blx r1
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+_020910D0:
+ mov r0, #0x0
+ mvn r1, #0x0
+ bl OS_AllocFromHeap
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+ .balign 4
+_020910E8: .word 0x021C8C70
+
+ arm_func_start FUN_020910EC
+FUN_020910EC: ; 0x020910EC
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x14
+ mov r12, r0
+ mov r4, r1
+ mov r5, r2
+ mov r2, r4
+ add r0, sp, #0x0
+ mov r1, r12
+ mov r4, r3
+ bl MATH_CalcSHA1
+_02091114: ; 0x02091114
+ add r0, sp, #0x0
+ mov r1, r5
+ mov r2, r4
+ bl FUN_02091130
+ add sp, sp, #0x14
+ ldmia sp!, {r4-r5,lr}
+ bx lr
+
+ arm_func_start FUN_02091130
+FUN_02091130: ; 0x02091130
+ stmdb sp!, {r4,lr}
+ sub sp, sp, #0x120
+ mov r3, #0x0
+ str r3, [sp, #0x10]
+ str r3, [sp, #0x18]
+ str r2, [sp, #0x0]
+ mov r3, #0x80
+ mov r4, r0
+ mov r2, r1
+ ldr ip, _0209122C ; =0x00010001
+ str r3, [sp, #0x4]
+ add r0, sp, #0x1c
+ mov r1, #0x100
+ str r12, [sp, #0x8]
+ bl FUN_0209156C
+ mov r1, r0
+ add r0, sp, #0x1c
+ add r2, sp, #0xc
+ add r3, sp, #0x10
+ bl FUN_020913D4
+_02091180: ; 0x02091180
+ cmp r0, #0x0
+ addeq sp, sp, #0x120
+ moveq r0, #0x0
+ ldmeqia sp!, {r4,lr}
+ bxeq lr
+ add r1, sp, #0x14
+ add r0, sp, #0x18
+ str r1, [sp, #0x0]
+ str r0, [sp, #0x4]
+ mov r2, #0x0
+ ldr r0, [sp, #0xc]
+ ldr r1, [sp, #0x10]
+ mov r3, r2
+ bl FUN_02091230
+_020911B8: ; 0x020911B8
+ cmp r0, #0x0
+ addeq sp, sp, #0x120
+ moveq r0, #0x0
+ ldmeqia sp!, {r4,lr}
+ bxeq lr
+ ldr r0, [sp, #0x18]
+ cmp r0, #0x14
+ addne sp, sp, #0x120
+ movne r0, #0x0
+ ldmneia sp!, {r4,lr}
+ bxne lr
+ ldr r2, [sp, #0x14]
+ mov r3, #0x0
+_020911EC:
+ ldrb r1, [r2, #0x0]
+ ldrb r0, [r4, #0x0]
+ cmp r1, r0
+ addne sp, sp, #0x120
+ movne r0, #0x0
+ ldmneia sp!, {r4,lr}
+ bxne lr
+ add r3, r3, #0x1
+ cmp r3, #0x14
+ add r4, r4, #0x1
+ add r2, r2, #0x1
+ blt _020911EC
+ mov r0, #0x1
+ add sp, sp, #0x120
+ ldmia sp!, {r4,lr}
+ bx lr
+ .balign 4
+_0209122C: .word 0x00010001
+
+ arm_func_start FUN_02091230
+FUN_02091230:
+ stmdb sp!, {r0-r3}
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ mov r5, r2
+ mov r4, r3
+ add r0, sp, #0x10
+ add r1, sp, #0x14
+ mov r2, #0x30
+ mov r3, #0x0
+ bl FUN_02091498
+_02091258: ; 0x02091258
+ cmp r0, #0x0
+ addeq sp, sp, #0x4
+ moveq r0, #0x0
+ ldmeqia sp!, {r4-r5,lr}
+ addeq sp, sp, #0x10
+ bxeq lr
+ add r0, sp, #0x10
+ add r1, sp, #0x14
+ mov r2, #0x30
+ mov r3, #0x0
+ bl FUN_02091498
+_02091284: ; 0x02091284
+ cmp r0, #0x0
+ addeq sp, sp, #0x4
+ moveq r0, #0x0
+ ldmeqia sp!, {r4-r5,lr}
+ addeq sp, sp, #0x10
+ bxeq lr
+ add r0, sp, #0x10
+ add r1, sp, #0x14
+ add r3, sp, #0x0
+ mov r2, #0x6
+ bl FUN_02091498
+_020912B0: ; 0x020912B0
+ cmp r0, #0x0
+ addeq sp, sp, #0x4
+ moveq r0, #0x0
+ ldmeqia sp!, {r4-r5,lr}
+ addeq sp, sp, #0x10
+ bxeq lr
+ cmp r5, #0x0
+ ldrne r0, [sp, #0x10]
+ strne r0, [r5, #0x0]
+ cmp r4, #0x0
+ ldrne r0, [sp, #0x0]
+ strne r0, [r4, #0x0]
+ ldr r2, [sp, #0x0]
+ ldr r0, [sp, #0x10]
+ ldr r1, [sp, #0x14]
+ add r0, r0, r2
+ str r0, [sp, #0x10]
+ cmp r1, r2
+ addcc sp, sp, #0x4
+ movcc r0, #0x0
+ ldmccia sp!, {r4-r5,lr}
+ addcc sp, sp, #0x10
+ bxcc lr
+ sub r12, r1, r2
+ add r0, sp, #0x10
+ add r1, sp, #0x14
+ add r3, sp, #0x0
+ mov r2, #0x5
+ str r12, [sp, #0x14]
+ bl FUN_02091498
+_02091328: ; 0x02091328
+ cmp r0, #0x0
+ addeq sp, sp, #0x4
+ moveq r0, #0x0
+ ldmeqia sp!, {r4-r5,lr}
+ addeq sp, sp, #0x10
+ bxeq lr
+ ldr r2, [sp, #0x0]
+ ldr r0, [sp, #0x10]
+ ldr r1, [sp, #0x14]
+ add r0, r0, r2
+ str r0, [sp, #0x10]
+ cmp r1, r2
+ addcc sp, sp, #0x4
+ movcc r0, #0x0
+ ldmccia sp!, {r4-r5,lr}
+ addcc sp, sp, #0x10
+ bxcc lr
+ sub r12, r1, r2
+ add r0, sp, #0x10
+ add r1, sp, #0x14
+ add r3, sp, #0x0
+ mov r2, #0x4
+ str r12, [sp, #0x14]
+ bl FUN_02091498
+_02091388: ; 0x02091388
+ cmp r0, #0x0
+ addeq sp, sp, #0x4
+ moveq r0, #0x0
+ ldmeqia sp!, {r4-r5,lr}
+ addeq sp, sp, #0x10
+ bxeq lr
+ ldr r1, [sp, #0x20]
+ cmp r1, #0x0
+ ldrne r0, [sp, #0x10]
+ strne r0, [r1, #0x0]
+ ldr r1, [sp, #0x24]
+ cmp r1, #0x0
+ ldrne r0, [sp, #0x0]
+ strne r0, [r1, #0x0]
+ mov r0, #0x1
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,lr}
+ add sp, sp, #0x10
+ bx lr
+
+ arm_func_start FUN_020913D4
+FUN_020913D4:
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ cmp r1, #0xa
+ addcc sp, sp, #0x4
+ movcc r0, #0x0
+ ldmccia sp!, {lr}
+ bxcc lr
+ ldrb r12, [r0, #0x0]
+ add lr, r0, r1
+ cmp r12, #0x1
+ addne sp, sp, #0x4
+ movne r0, #0x0
+ ldmneia sp!, {lr}
+ bxne lr
+ add r12, r0, #0x1
+ mov r1, #0x0
+_02091414:
+ ldrb r0, [r12], #0x1
+ cmp r0, #0xff
+ addne sp, sp, #0x4
+ movne r0, #0x0
+ ldmneia sp!, {lr}
+ bxne lr
+ add r1, r1, #0x1
+ cmp r1, #0x8
+ blt _02091414
+ cmp r12, lr
+ beq _02091458
+_02091440:
+ ldrb r0, [r12, #0x0]
+ cmp r0, #0xff
+ bne _02091458
+ add r12, r12, #0x1
+ cmp r12, lr
+ bne _02091440
+_02091458:
+ cmp r12, lr
+ addeq sp, sp, #0x4
+ moveq r0, #0x0
+ ldmeqia sp!, {lr}
+ bxeq lr
+ ldrb r0, [r12, #0x0]
+ cmp r0, #0x0
+ movne r0, #0x0
+ addeq r0, r12, #0x1
+ subeq r1, lr, r0
+ streq r1, [r3, #0x0]
+ streq r0, [r2, #0x0]
+ moveq r0, #0x1
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+
+ arm_func_start FUN_02091498
+FUN_02091498:
+ stmdb sp!, {r4-r6,lr}
+ ldr r5, [r0, #0x0]
+ mov r6, #0x0
+ ldrb r4, [r5, #0x0]
+ add r5, r5, #0x1
+ mov r12, r6
+ cmp r4, r2
+ ldr r2, [r1, #0x0]
+ movne r0, r6
+ ldmneia sp!, {r4-r6,lr}
+ bxne lr
+ cmp r2, #0x1
+ movcc r0, r6
+ ldmccia sp!, {r4-r6,lr}
+ bxcc lr
+ ldrb lr, [r5, #0x0]
+ sub r4, r2, #0x1
+ ands r2, lr, #0x80
+ beq _02091534
+ and r2, lr, #0x7f
+ and lr, r2, #0xff
+ add r2, lr, #0x1
+ cmp r4, r2
+ movcc r0, r6
+ ldmccia sp!, {r4-r6,lr}
+ bxcc lr
+ cmp r3, #0x0
+ sub r6, r4, lr
+ beq _0209152C
+ ldrb r2, [r5, #0x1]
+ add r5, r5, #0x1
+ and r4, r2, #0x7f
+_02091518:
+ sub r2, lr, #0x1
+ add r12, r4, r12, lsl #0x7
+ ands lr, r2, #0xff
+ bne _02091518
+ b _02091550
+_0209152C:
+ add r5, r5, lr
+ b _02091550
+_02091534:
+ add r5, r5, #0x1
+ cmp r4, #0x1
+ mov r12, lr
+ movcc r0, r6
+ ldmccia sp!, {r4-r6,lr}
+ bxcc lr
+ sub r6, r4, #0x1
+_02091550:
+ str r5, [r0, #0x0]
+ str r6, [r1, #0x0]
+ cmp r3, #0x0
+ strne r12, [r3, #0x0]
+ mov r0, #0x1
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+
+ arm_func_start FUN_0209156C
+FUN_0209156C: ; 0x0209156C
+ stmdb sp!, {r4-r8,lr}
+ sub sp, sp, #0x58
+ movs r6, r0
+ mov r5, r1
+ mov r8, r2
+ mov r7, r3
+ beq _0209159C
+ cmp r8, #0x0
+ beq _0209159C
+ ldr r0, [sp, #0x70]
+ cmp r0, #0x0
+ bne _020915AC
+_0209159C:
+ add sp, sp, #0x58
+ mvn r0, #0x2
+ ldmia sp!, {r4-r8,lr}
+ bx lr
+_020915AC:
+ bl FUN_02094FAC
+ mov r4, r0
+ add r0, sp, #0x4
+ bl FUN_0209502C
+ add r0, sp, #0x18
+ bl FUN_0209502C
+ add r0, sp, #0x2c
+ bl FUN_0209502C
+ add r0, sp, #0x40
+ bl FUN_0209502C
+_020915D4: ; 0x020915D4
+ cmp r4, #0x0
+ mvneq r5, #0x1
+ beq _02091688
+ add r2, sp, #0x4
+ mov r0, r8
+ mov r1, r7
+ bl FUN_02094C68
+_020915F0: ; 0x020915F0
+ cmp r0, #0x0
+ mvneq r5, #0x1
+ beq _02091688
+ ldr r1, [sp, #0x78]
+ add r0, sp, #0x2c
+ bl FUN_02094D7C
+_02091608: ; 0x02091608
+ cmp r0, #0x0
+ mvneq r5, #0x1
+ beq _02091688
+ ldr r0, [sp, #0x70]
+ ldr r1, [sp, #0x74]
+ add r2, sp, #0x40
+ bl FUN_02094C68
+_02091624: ; 0x02091624
+ cmp r0, #0x0
+ mvneq r5, #0x1
+ beq _02091688
+ add r0, sp, #0x18
+ add r1, sp, #0x4
+ add r2, sp, #0x2c
+ add r3, sp, #0x40
+ str r4, [sp, #0x0]
+ bl FUN_020931B8
+_02091648: ; 0x02091648
+ cmp r0, #0x0
+ mvneq r5, #0x1
+ beq _02091688
+ add r0, sp, #0x18
+ bl FUN_02095188
+ add r1, r0, #0x7
+ mov r0, r1, asr #0x2
+ add r0, r1, r0, lsr #0x1d
+ mov r0, r0, asr #0x3
+ cmp r0, r5
+ mvngt r5, #0x0
+ bgt _02091688
+ add r0, sp, #0x18
+ mov r1, r6
+ bl FUN_02094BEC
+ mov r5, r0
+_02091688:
+ add r0, sp, #0x4
+ bl FUN_0209510C
+ add r0, sp, #0x18
+ bl FUN_0209510C
+ add r0, sp, #0x2c
+ bl FUN_0209510C
+ add r0, sp, #0x40
+ bl FUN_0209510C
+_020916A8: ; 0x020916A8
+ cmp r4, #0x0
+ beq _020916B8
+ mov r0, r4
+ bl FUN_02094F3C
+_020916B8:
+ mov r0, r5
+ add sp, sp, #0x58
+ ldmia sp!, {r4-r8,lr}
+ bx lr
+
+ arm_func_start FUN_020916C8
+FUN_020916C8: ; 0x020916C8
+ stmdb sp!, {r4-r11,lr}
+ sub sp, sp, #0x7c
+ mov r4, #0x0
+ mov r5, r3
+ mov r3, r4
+ str r3, [sp, #0x34]
+ ldr r3, [r5, #0x0]
+ str r0, [sp, #0x4]
+ mov r0, r4
+ ldr r3, [r3, #0x0]
+ str r0, [sp, #0x1c]
+ str r0, [sp, #0x20]
+ ands r0, r3, #0x1
+ ldr r0, [sp, #0xa0]
+ str r4, [sp, #0x8]
+ str r0, [sp, #0xa0]
+ mov r7, r1
+ mov r6, r2
+ addeq sp, sp, #0x7c
+ moveq r0, r4
+ ldmeqia sp!, {r4-r11,lr}
+ bxeq lr
+ ldr r1, [r7, #0x4]
+ ldr r0, [r0, #0x0]
+ cmp r1, #0x0
+ str r0, [sp, #0xc]
+ beq _0209174C
+ cmp r1, #0x1
+ bne _02091768
+ ldr r0, [r7, #0x0]
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ bne _02091768
+_0209174C:
+ ldr r0, [sp, #0x4]
+ mov r1, #0x0
+ bl FUN_02094D7C
+ add sp, sp, #0x7c
+ mov r0, #0x1
+ ldmia sp!, {r4-r11,lr}
+ bx lr
+_02091768:
+ ldr r1, [r6, #0x4]
+ cmp r1, #0x0
+ beq _0209178C
+ cmp r1, #0x1
+ bne _020917A8
+ ldr r0, [r6, #0x0]
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ bne _020917A8
+_0209178C:
+ ldr r0, [sp, #0x4]
+ mov r1, #0x1
+ bl FUN_02094D7C
+ add sp, sp, #0x7c
+ mov r0, #0x1
+ ldmia sp!, {r4-r11,lr}
+ bx lr
+_020917A8:
+ cmp r1, #0x1
+ bne _020917DC
+ ldr r0, [r6, #0x0]
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x1
+ bne _020917DC
+ ldr r0, [sp, #0x4]
+ mov r1, r7
+ bl FUN_02094E24
+ add sp, sp, #0x7c
+ mov r0, #0x1
+ ldmia sp!, {r4-r11,lr}
+ bx lr
+_020917DC:
+ ldr r0, [sp, #0xa4]
+ str r0, [sp, #0x18]
+ cmp r0, #0x0
+ bne _02091810
+ bl FUN_02092860
+ str r0, [sp, #0x18]
+ cmp r0, #0x0
+ beq _02091E6C
+ ldr r2, [sp, #0xa0]
+ mov r1, r5
+ bl FUN_02092894
+_02091808: ; 0x02091808
+ cmp r0, #0x0
+ beq _02091E6C
+_02091810:
+ ldr r3, [sp, #0xa0]
+ add r1, sp, #0x34
+ mov r4, r3
+ ldr r4, [r4, #0x10c]
+ mov r0, r6
+ mov r2, #0x0
+ str r4, [sp, #0x1c]
+ bl FUN_02092C28
+_02091830: ; 0x02091830
+ cmp r0, #0x0
+ beq _02091E6C
+ ldr r0, [sp, #0xa0]
+ ldr r0, [r0, #0x0]
+ add r1, r0, #0x1
+ ldr r0, [sp, #0xa0]
+ str r1, [r0, #0x0]
+ ldr r0, [sp, #0x34]
+ ldrb r1, [r0, #0x2]
+ ldrb r0, [r0, #0x3]
+ str r0, [sp, #0x10]
+ add r0, r1, #0x3f
+ bl _s32_div_f
+ ldr r1, [sp, #0x34]
+ mov r4, r0
+ add r0, r1, #0x4
+ str r0, [sp, #0x34]
+ ldr r0, [sp, #0x18]
+ ldr r3, [r7, #0x4]
+ ldr r10, [r0, #0x24]
+ cmp r3, r10
+ bne _020918A8
+ ldr r1, [r7, #0x0]
+ sub r2, r10, #0x1
+ ldr r0, [r5, #0x0]
+ ldr r1, [r1, r2, lsl #0x2]
+ ldr r0, [r0, r2, lsl #0x2]
+ cmp r1, r0
+ strcc r7, [sp, #0x14]
+ blo _02091960
+_020918A8:
+ cmp r3, r10
+ bge _0209191C
+ ldr r0, [sp, #0xa0]
+ ldr r3, [r0, #0x0]
+ add r1, r0, #0x4
+ add r2, r3, #0x1
+ str r2, [r0, #0x0]
+ mov r0, #0x14
+ mla r0, r3, r0, r1
+ ldr r2, [r7, #0x4]
+ mov r1, r0
+ str r2, [r1, #0x4]
+ mov r1, r10
+ str r0, [sp, #0x14]
+ bl FUN_0209508C
+ ldr r0, [r7, #0x4]
+ mov r2, #0x0
+ cmp r0, #0x0
+ ble _02091960
+_020918F4:
+ ldr r1, [r7, #0x0]
+ ldr r0, [sp, #0x14]
+ ldr r1, [r1, r2, lsl #0x2]
+ ldr r0, [r0, #0x0]
+ str r1, [r0, r2, lsl #0x2]
+ ldr r0, [r7, #0x4]
+ add r2, r2, #0x1
+ cmp r2, r0
+ blt _020918F4
+ b _02091960
+_0209191C:
+ ldr r0, [sp, #0xa0]
+ mov r2, r5
+ ldr r3, [r0, #0x0]
+ mov r1, r7
+ add r5, r3, #0x1
+ str r5, [r0, #0x0]
+ add r5, r0, #0x4
+ mov r0, #0x14
+ mla r0, r3, r0, r5
+ ldr r3, [sp, #0xa0]
+ str r0, [sp, #0x14]
+ bl FUN_02093214
+_0209194C: ; 0x0209194C
+ cmp r0, #0x0
+ beq _02091E6C
+ ldr r0, [sp, #0x14]
+ mov r1, r10
+ bl FUN_0209508C
+_02091960:
+ ldr r0, [sp, #0xa0]
+ ldr r3, [r0, #0x0]
+ ldr r0, [r6, #0x4]
+ add r1, r3, #0x1
+ mul r2, r0, r4
+ ldr r0, [sp, #0xa0]
+ mov r4, r2, lsl #0x1
+ str r1, [r0, #0x0]
+ ldr r1, [r0, #0x0]
+ add r4, r4, #0x7
+ add r2, r1, #0x1
+ str r2, [r0, #0x0]
+ ldr r2, [sp, #0x10]
+ ldr r0, [r0, #0x0]
+ mul r5, r2, r10
+ mov r2, r4, asr #0x1
+ add r2, r4, r2, lsr #0x1e
+ add r5, r5, r2, asr #0x2
+ ldr r2, [sp, #0xa0]
+ mov r6, #0x14
+ add r2, r2, #0x4
+ mla r8, r1, r6, r2
+ mla r4, r3, r6, r2
+ ldr r1, [sp, #0xa0]
+ add r3, r0, #0x1
+ mla r7, r0, r6, r2
+ str r3, [r1, #0x0]
+ mov r0, r1
+ ldr r0, [r0, #0x0]
+ mla r6, r0, r6, r2
+ add r1, r0, #0x1
+ ldr r0, [sp, #0xa0]
+ str r1, [r0, #0x0]
+ ldr r0, [sp, #0x4]
+ ldr r0, [r0, #0x8]
+ cmp r10, r0
+ ldrle r0, [sp, #0x4]
+ ble _02091A04
+ ldr r0, [sp, #0x4]
+ mov r1, r10
+ bl FUN_02094EBC
+_02091A04:
+ cmp r0, #0x0
+ beq _02091E6C
+ ldr r0, [r8, #0x8]
+ mov r1, r10, lsl #0x2
+ cmp r1, r0
+ movle r0, r8
+ ble _02091A28
+ mov r0, r8
+ bl FUN_02094EBC
+_02091A28:
+ cmp r0, #0x0
+ beq _02091E6C
+ ldr r1, [r7, #0x8]
+ mov r0, r10, lsl #0x1
+ str r0, [sp, #0x24]
+ cmp r0, r1
+ movle r0, r7
+ ble _02091A54
+ ldr r1, [sp, #0x24]
+ mov r0, r7
+ bl FUN_02094EBC
+_02091A54:
+ cmp r0, #0x0
+ beq _02091E6C
+ ldr r0, [r4, #0x8]
+ cmp r5, r0
+ movle r0, r4
+ ble _02091A78
+ mov r1, r5
+ mov r0, r4
+ bl FUN_02094EBC
+_02091A78:
+ cmp r0, #0x0
+ beq _02091E6C
+ ldr r1, [r6, #0x8]
+ ldr r0, [sp, #0x24]
+ cmp r0, r1
+ movle r0, r6
+ ble _02091AA0
+ ldr r1, [sp, #0x24]
+ mov r0, r6
+ bl FUN_02094EBC
+_02091AA0:
+ cmp r0, #0x0
+ beq _02091E6C
+ ldr r0, [sp, #0x18]
+ ldr r11, [r8, #0x0]
+ ldr r8, [r7, #0x0]
+ ldr r6, [r6, #0x0]
+ ldr r1, [r4, #0x0]
+ ldr r7, [r0, #0x48]
+ ldr r5, [r0, #0x20]
+ ldr r3, [sp, #0x18]
+ str r1, [sp, #0x38]
+ str r10, [sp, #0x0]
+ ldr r1, [sp, #0x14]
+ ldr r3, [r3, #0xc]
+ ldr r1, [r1, #0x0]
+ mov r0, r6
+ mov r2, r10
+ bl FUN_020937E8
+ str r7, [sp, #0x0]
+ ldr r0, [sp, #0x38]
+ mov r1, r6
+ mov r2, r5
+ mov r3, r10
+ bl FUN_02092E30
+ ldr r0, [sp, #0x10]
+ cmp r0, #0x1
+ ble _02091BA8
+ ldr r1, [sp, #0x38]
+ mov r0, r6
+ mov r2, r10
+ mov r3, r11
+ bl FUN_02092F70
+ mov r0, r11
+ mov r1, r6
+ mov r2, r5
+ mov r3, r10
+ str r7, [sp, #0x0]
+ bl FUN_02092E30
+ ldr r0, [sp, #0x10]
+ mov r4, #0x1
+ cmp r0, #0x1
+ ble _02091BA8
+ mov r0, r10, lsl #0x2
+ str r0, [sp, #0x28]
+ add r9, sp, #0x38
+_02091B54:
+ sub r3, r4, #0x1
+ ldr r2, [r9, r3, lsl #0x2]
+ ldr r1, [sp, #0x28]
+ mov r0, r6
+ add r1, r2, r1
+ str r1, [r9, r4, lsl #0x2]
+ str r10, [sp, #0x0]
+ ldr r1, [r9, r3, lsl #0x2]
+ mov r2, r10
+ mov r3, r11
+ bl FUN_020937E8
+ str r7, [sp, #0x0]
+ ldr r0, [r9, r4, lsl #0x2]
+ mov r1, r6
+ mov r2, r5
+ mov r3, r10
+ bl FUN_02092E30
+ ldr r0, [sp, #0x10]
+ add r4, r4, #0x1
+ cmp r4, r0
+ blt _02091B54
+_02091BA8:
+ ldr r3, [sp, #0x34]
+ add r0, r3, #0x1
+ str r0, [sp, #0x34]
+ add r2, r0, #0x1
+ ldrb r1, [r3, #0x0]
+ str r2, [sp, #0x34]
+ ldrb r9, [r3, #0x1]
+ cmp r9, #0xff
+ bne _02091C28
+ cmp r1, #0x0
+ bne _02091C28
+ add r0, r2, #0x1
+ str r0, [sp, #0x34]
+ ldrb r1, [r2, #0x0]
+ b _02091BF8
+_02091BE4:
+ add r9, r9, #0x100
+ ldr r1, [sp, #0x34]
+ add r1, r1, #0x2
+ str r1, [sp, #0x34]
+ ldrb r1, [r0, #0x1]
+_02091BF8:
+ ldr r0, [sp, #0x34]
+ ldrb r2, [r0, #0x0]
+ cmp r2, #0xff
+ bne _02091C10
+ cmp r1, #0x0
+ beq _02091BE4
+_02091C10:
+ ldr r2, [sp, #0x34]
+ add r2, r2, #0x1
+ str r2, [sp, #0x34]
+ ldrb r0, [r0, #0x0]
+ add r0, r0, #0x1
+ add r9, r9, r0
+_02091C28:
+ mov r2, r1, asr #0x1
+ add r0, sp, #0x38
+ ldr r0, [r0, r2, lsl #0x2]
+ mov r1, r8
+ mov r2, r10, lsl #0x2
+ bl MI_CpuCopy8
+_02091C40: ; 0x02091C40
+ cmp r9, #0x0
+ beq _02091E00
+ mov r0, #0xff
+ str r0, [sp, #0x2c]
+ mov r0, #0x0
+ str r0, [sp, #0x30]
+_02091C58:
+ ldr r0, [sp, #0x1c]
+ cmp r0, #0x0
+ beq _02091C8C
+ mov r3, r0
+ ldr r1, [sp, #0x2c]
+ ldr r2, [sp, #0x20]
+ ldr r3, [r3, #0x0]
+ blx r3
+ cmp r0, #0x0
+ ldr r0, [sp, #0x20]
+ add r0, r0, #0x1
+ str r0, [sp, #0x20]
+ bne _02091E6C
+_02091C8C:
+ ldr r0, [sp, #0xa0]
+ ldr r0, [r0, #0x108]
+ ands r0, r0, #0x4000
+ bne _02091E6C
+ cmp r9, #0x0
+ ldr r4, [sp, #0x30]
+ ble _02091CE0
+_02091CA8:
+ mov r0, r6
+ mov r1, r8
+ mov r2, r10
+ mov r3, r11
+ bl FUN_02092F70
+ str r7, [sp, #0x0]
+ mov r0, r8
+ mov r1, r6
+ mov r2, r5
+ mov r3, r10
+ bl FUN_02092E30
+ add r4, r4, #0x1
+ cmp r4, r9
+ blt _02091CA8
+_02091CE0:
+ ldr r2, [sp, #0x34]
+ add r0, r2, #0x1
+ str r0, [sp, #0x34]
+ add r1, r0, #0x1
+ ldrb r0, [r2, #0x0]
+ str r1, [sp, #0x34]
+ ldrb r9, [r2, #0x1]
+ cmp r9, #0xff
+ bne _02091D60
+ cmp r0, #0x0
+ bne _02091D60
+ add r0, r1, #0x1
+ str r0, [sp, #0x34]
+ ldrb r0, [r1, #0x0]
+ b _02091D30
+_02091D1C:
+ add r9, r9, #0x100
+ ldr r0, [sp, #0x34]
+ add r0, r0, #0x2
+ str r0, [sp, #0x34]
+ ldrb r0, [r1, #0x1]
+_02091D30:
+ ldr r1, [sp, #0x34]
+ ldrb r2, [r1, #0x0]
+ cmp r2, #0xff
+ bne _02091D48
+ cmp r0, #0x0
+ beq _02091D1C
+_02091D48:
+ ldr r2, [sp, #0x34]
+ add r2, r2, #0x1
+ str r2, [sp, #0x34]
+ ldrb r1, [r1, #0x0]
+ add r1, r1, #0x1
+ add r9, r9, r1
+_02091D60:
+ cmp r0, #0x0
+ bne _02091D70
+ cmp r9, #0x0
+ beq _02091E00
+_02091D70:
+ cmp r9, #0x0
+ bne _02091D80
+ cmp r0, #0x1
+ beq _02091DBC
+_02091D80:
+ mov r1, r0, asr #0x1
+ str r10, [sp, #0x0]
+ add r0, sp, #0x38
+ ldr r3, [r0, r1, lsl #0x2]
+ mov r0, r6
+ mov r1, r8
+ mov r2, r10
+ bl FUN_020937E8
+ mov r0, r8
+ mov r1, r6
+ mov r2, r5
+ mov r3, r10
+ str r7, [sp, #0x0]
+ bl FUN_02092E30
+ b _02091DF8
+_02091DBC:
+ ldr r0, [sp, #0x14]
+ str r10, [sp, #0x0]
+ ldr r3, [r0, #0x0]
+ mov r0, r6
+ mov r1, r8
+ mov r2, r10
+ bl FUN_020937E8
+ ldr r0, [sp, #0x4]
+ str r7, [sp, #0x0]
+ ldr r0, [r0, #0x0]
+ mov r1, r6
+ mov r2, r5
+ mov r3, r10
+ bl FUN_02092E30
+ b _02091E44
+_02091DF8:
+ cmp r9, #0x0
+ bne _02091C58
+_02091E00:
+ ldr r0, [sp, #0x24]
+ mov r2, r10
+ cmp r10, r0
+ bge _02091E28
+ mov r1, #0x0
+_02091E14:
+ ldr r0, [sp, #0x24]
+ str r1, [r8, r2, lsl #0x2]
+ add r2, r2, #0x1
+ cmp r2, r0
+ blt _02091E14
+_02091E28:
+ ldr r0, [sp, #0x4]
+ str r7, [sp, #0x0]
+ ldr r0, [r0, #0x0]
+ mov r1, r8
+ mov r2, r5
+ mov r3, r10
+ bl FUN_02092E30
+_02091E44:
+ ldr r0, [sp, #0xa0]
+ ldr r0, [r0, #0x108]
+ ands r0, r0, #0x4000
+ bne _02091E6C
+ ldr r0, [sp, #0x4]
+ mov r1, r0
+ str r10, [r1, #0x4]
+ bl FUN_02095040
+ mov r0, #0x1
+ str r0, [sp, #0x8]
+_02091E6C:
+ ldr r0, [sp, #0x1c]
+ cmp r0, #0x0
+ beq _02091E94
+ ldr r3, [r0, #0x0]
+ mov r1, #0xff
+ mvn r2, #0x0
+ blx r3
+ cmp r0, #0x0
+ movne r0, #0x0
+ strne r0, [sp, #0x8]
+_02091E94:
+ ldr r0, [sp, #0xa4]
+ cmp r0, #0x0
+ bne _02091EB0
+ ldr r0, [sp, #0x18]
+ cmp r0, #0x0
+ beq _02091EB0
+ bl FUN_020927E4
+_02091EB0:
+ ldr r2, [sp, #0xc]
+ ldr r1, [sp, #0xa0]
+ ldr r0, [sp, #0x8]
+ str r2, [r1, #0x0]
+ add sp, sp, #0x7c
+ ldmia sp!, {r4-r11,lr}
+ bx lr
+
+ arm_func_start FUN_02091ECC
+FUN_02091ECC: ; 0x02091ECC
+ stmdb sp!, {r4-r11,lr}
+ sub sp, sp, #0x18c
+ mov r10, r0
+ mov r0, #0x0
+ str r0, [sp, #0x8]
+ mov r5, r1
+ ldr r1, [sp, #0x8]
+ mov r0, r2
+ str r2, [sp, #0x4]
+ mov r4, r3
+ str r1, [sp, #0xc]
+ ldr r9, [sp, #0x1b0]
+ bl FUN_02095188
+ ldr r1, [r5, #0x4]
+ mov r8, r0
+ cmp r1, #0x0
+ beq _02091F28
+ cmp r1, #0x1
+ bne _02091F44
+ ldr r0, [r5, #0x0]
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ bne _02091F44
+_02091F28:
+ mov r0, r10
+ mov r1, #0x0
+ bl FUN_02094D7C
+ add sp, sp, #0x18c
+ mov r0, #0x1
+ ldmia sp!, {r4-r11,lr}
+ bx lr
+_02091F44:
+ ldr r0, [sp, #0x4]
+ ldr r1, [r0, #0x4]
+ cmp r1, #0x0
+ beq _02091F6C
+ cmp r1, #0x1
+ bne _02091F88
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ bne _02091F88
+_02091F6C:
+ mov r0, r10
+ mov r1, #0x1
+ bl FUN_02094D7C
+ add sp, sp, #0x18c
+ mov r0, #0x1
+ ldmia sp!, {r4-r11,lr}
+ bx lr
+_02091F88:
+ cmp r1, #0x1
+ bne _02091FC0
+ ldr r0, [sp, #0x4]
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x1
+ bne _02091FC0
+ mov r0, r10
+ mov r1, r5
+ bl FUN_02094E24
+ add sp, sp, #0x18c
+ mov r0, #0x1
+ ldmia sp!, {r4-r11,lr}
+ bx lr
+_02091FC0:
+ add r0, sp, #0x18
+ bl FUN_020927BC
+ add r0, sp, #0x18
+ mov r1, r4
+ mov r2, r9
+ bl FUN_02092744
+_02091FD8: ; 0x02091FD8
+ cmp r0, #0x0
+ ble _0209220C
+ add r0, sp, #0x4c
+ bl FUN_0209502C
+ ldr r2, [r9, #0x0]
+ add r1, r9, #0x4
+ mov r0, #0x14
+ mla r6, r2, r0, r1
+ add r1, r2, #0x1
+ str r1, [r9, #0x0]
+ mov r2, r4
+ mov r4, #0x1
+ add r0, sp, #0x4c
+ mov r1, r5
+ mov r3, r9
+ str r4, [sp, #0xc]
+ bl FUN_02093214
+_0209201C: ; 0x0209201C
+ cmp r0, #0x0
+ beq _0209220C
+ add r1, sp, #0x4c
+ add r3, sp, #0x18
+ mov r0, r6
+ mov r2, r1
+ str r9, [sp, #0x0]
+ bl FUN_02092698
+_0209203C: ; 0x0209203C
+ cmp r0, #0x0
+ beq _0209220C
+ cmp r8, #0x11
+ movle r11, r4
+ ble _02092068
+ cmp r8, #0x100
+ movge r11, #0x5
+ bge _02092068
+ cmp r8, #0x80
+ movge r11, #0x4
+ movlt r11, #0x3
+_02092068:
+ sub r0, r11, #0x1
+ mov r4, #0x1
+ mov r7, r4, lsl r0
+ cmp r7, #0x1
+ ble _020920C4
+ add r5, sp, #0x60
+_02092080:
+ mov r0, r5
+ bl FUN_0209502C
+ sub r3, r4, #0x1
+ mov r2, #0x14
+ add r1, sp, #0x4c
+ mla r1, r3, r2, r1
+ mov r0, r5
+ mov r2, r6
+ add r3, sp, #0x18
+ str r9, [sp, #0x0]
+ bl FUN_02092698
+_020920AC: ; 0x020920AC
+ cmp r0, #0x0
+ beq _0209220C
+ add r4, r4, #0x1
+ cmp r4, r7
+ add r5, r5, #0x14
+ blt _02092080
+_020920C4:
+ mov r5, #0x1
+ mov r0, r10
+ mov r1, r5
+ str r4, [sp, #0xc]
+ sub r8, r8, #0x1
+ bl FUN_02094D7C
+_020920DC: ; 0x020920DC
+ cmp r0, #0x0
+ beq _0209220C
+ mov r0, r5
+ str r0, [sp, #0x10]
+ mov r0, #0x0
+ str r0, [sp, #0x14]
+_020920F4:
+ ldr r0, [sp, #0x4]
+ mov r1, r8
+ bl FUN_02094A8C
+_02092100: ; 0x02092100
+ cmp r0, #0x0
+ bne _02092140
+ cmp r5, #0x0
+ bne _02092130
+ mov r0, r10
+ mov r1, r10
+ mov r2, r10
+ add r3, sp, #0x18
+ str r9, [sp, #0x0]
+ bl FUN_02092698
+_02092128: ; 0x02092128
+ cmp r0, #0x0
+ beq _0209220C
+_02092130:
+ cmp r8, #0x0
+ beq _02092204
+ sub r8, r8, #0x1
+ b _020920F4
+_02092140:
+ ldr r6, [sp, #0x10]
+ ldr r7, [sp, #0x14]
+ cmp r11, #0x1
+ mov r4, r6
+ ble _02092184
+_02092154:
+ subs r1, r8, r4
+ bmi _02092184
+ ldr r0, [sp, #0x4]
+ bl FUN_02094A8C
+_02092164: ; 0x02092164
+ cmp r0, #0x0
+ subne r0, r4, r7
+ movne r0, r6, lsl r0
+ movne r7, r4
+ add r4, r4, #0x1
+ orrne r6, r0, #0x1
+ cmp r4, r11
+ blt _02092154
+_02092184:
+ cmp r5, #0x0
+ add r5, r7, #0x1
+ bne _020921C8
+ cmp r5, #0x0
+ ldr r4, [sp, #0x14]
+ ble _020921C8
+_0209219C:
+ mov r0, r10
+ mov r1, r10
+ mov r2, r10
+ add r3, sp, #0x18
+ str r9, [sp, #0x0]
+ bl FUN_02092698
+_020921B4: ; 0x020921B4
+ cmp r0, #0x0
+ beq _0209220C
+ add r4, r4, #0x1
+ cmp r4, r5
+ blt _0209219C
+_020921C8:
+ mov r3, r6, asr #0x1
+ mov r1, #0x14
+ add r0, sp, #0x4c
+ mla r2, r3, r1, r0
+ mov r0, r10
+ mov r1, r10
+ add r3, sp, #0x18
+ str r9, [sp, #0x0]
+ bl FUN_02092698
+_020921EC: ; 0x020921EC
+ cmp r0, #0x0
+ beq _0209220C
+ add r0, r7, #0x1
+ ldr r5, [sp, #0x14]
+ subs r8, r8, r0
+ bpl _020920F4
+_02092204:
+ mov r0, #0x1
+ str r0, [sp, #0x8]
+_0209220C:
+ ldr r0, [sp, #0xc]
+ ldr r1, [r9, #0x0]
+ cmp r0, #0x0
+ sub r0, r1, #0x1
+ str r0, [r9, #0x0]
+ mov r4, #0x0
+ ble _02092248
+ add r5, sp, #0x4c
+_0209222C:
+ mov r0, r5
+ bl FUN_02095164
+ ldr r0, [sp, #0xc]
+ add r4, r4, #0x1
+ cmp r4, r0
+ add r5, r5, #0x14
+ blt _0209222C
+_02092248:
+ add r0, sp, #0x18
+ bl FUN_02092788
+ ldr r0, [sp, #0x8]
+ add sp, sp, #0x18c
+ ldmia sp!, {r4-r11,lr}
+ bx lr
+
+ arm_func_start FUN_02092260
+FUN_02092260: ; 0x02092260
+ stmdb sp!, {r4-r11,lr}
+ sub sp, sp, #0x4
+ movs r8, r2
+ mov r10, r0
+ mov r9, r1
+ mov r11, #0x0
+ mov r5, #0x2
+ addeq sp, sp, #0x4
+ mvneq r0, #0x0
+ ldmeqia sp!, {r4-r11,lr}
+ bxeq lr
+ mov r0, r8
+ bl FUN_020951BC
+ cmp r0, #0x20
+ beq _020922B4
+ mov r1, #0x1
+ cmp r10, r1, lsl r0
+ addhi sp, sp, #0x4
+ movhi r0, r11
+ ldmhiia sp!, {r4-r11,lr}
+ bxhi lr
+_020922B4:
+ cmp r10, r8
+ rsb r2, r0, #0x20
+ subcs r10, r10, r8
+ cmp r2, #0x0
+ movne r1, r10, lsl r2
+ rsbne r0, r2, #0x20
+ orrne r10, r1, r9, lsr r0
+ movne r8, r8, lsl r2
+ ldr r4, _0209239C ; =0x0000FFFF
+ movne r9, r9, lsl r2
+ and r7, r4, r8, lsr #0x10
+ and r6, r8, r4
+_020922E4:
+ mov r0, r10, lsr #0x10
+ cmp r0, r7
+ moveq r0, r4
+ beq _02092300
+ mov r0, r10
+ mov r1, r7
+ bl _u32_div_f
+_02092300:
+ mul r12, r0, r7
+ mul r3, r0, r6
+ and r2, r4, r9, lsr #0x10
+_0209230C:
+ mov lr, #0x10000
+ sub r1, r10, r12
+ rsb lr, lr, #0x0
+ ands lr, r1, lr
+ bne _02092338
+ add r1, r2, r1, lsl #0x10
+ cmp r3, r1
+ subhi r12, r12, r7
+ subhi r3, r3, r6
+ subhi r0, r0, #0x1
+ bhi _0209230C
+_02092338:
+ mul r2, r0, r6
+ and r1, r2, r4
+ mul r3, r0, r7
+ mov r1, r1, lsl #0x10
+ cmp r9, r1
+ add r2, r3, r2, lsr #0x10
+ addcc r2, r2, #0x1
+ cmp r10, r2
+ addcc r10, r10, r8
+ sub r9, r9, r1
+ subcc r0, r0, #0x1
+ sub r1, r10, r2
+ subs r5, r5, #0x1
+ beq _0209238C
+ and r2, r0, r4
+ mov r1, r1, lsl #0x10
+ and r0, r9, r4
+ orr r10, r1, r9, lsr #0x10
+ mov r11, r2, lsl #0x10
+ mov r9, r0, lsl #0x10
+ b _020922E4
+_0209238C:
+ orr r0, r11, r0
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r11,lr}
+ bx lr
+ .balign 4
+_0209239C: .word 0x0000FFFF
+
+ arm_func_start FUN_020923A0
+FUN_020923A0: ; 0x020923A0
+ stmdb sp!, {r4-r8,lr}
+ sub sp, sp, #0x18
+ mov r8, r0
+ add r0, sp, #0x4
+ mov r7, r1
+ mov r6, r2
+ mov r5, r3
+ mvn r4, #0x0
+ bl FUN_0209502C
+ add r0, sp, #0x4
+ mov r1, #0x0
+ bl FUN_02094D7C
+ add r0, sp, #0x4
+ mov r1, r6
+ bl FUN_02094AFC
+_020923DC: ; 0x020923DC
+ cmp r0, #0x0
+ beq _02092404
+ add r2, sp, #0x4
+ mov r0, r8
+ mov r3, r7
+ mov r1, #0x0
+ str r5, [sp, #0x0]
+ bl FUN_02093248
+_020923FC: ; 0x020923FC
+ cmp r0, #0x0
+ movne r4, r6
+_02092404:
+ add r0, sp, #0x4
+ bl FUN_0209510C
+ mov r0, r4
+ add sp, sp, #0x18
+ ldmia sp!, {r4-r8,lr}
+ bx lr
+
+ arm_func_start FUN_0209241C
+FUN_0209241C: ; 0x0209241C
+ stmdb sp!, {r4-r11,lr}
+ sub sp, sp, #0xc
+ ldr r6, [sp, #0x30]
+ mov r9, r1
+ ldr r11, [r6, #0x0]
+ movs r10, r0
+ add r0, r11, #0x1
+ str r0, [r6, #0x0]
+ ldr r7, [r6, #0x0]
+ add r4, r6, #0x4
+ mov r0, #0x14
+ mla r5, r11, r0, r4
+ add r12, r7, #0x1
+ mov r1, #0x0
+ str r5, [sp, #0x4]
+ mla r5, r7, r0, r4
+ str r12, [r6, #0x0]
+ str r1, [sp, #0x0]
+ ldreq r1, [r6, #0x0]
+ mov r8, r2
+ mlaeq r10, r1, r0, r4
+ addeq r0, r1, #0x1
+ streq r0, [r6, #0x0]
+ mov r7, r3
+ cmp r9, #0x0
+ bne _0209249C
+ ldr r2, [r6, #0x0]
+ add r1, r6, #0x4
+ mov r0, #0x14
+ mla r9, r2, r0, r1
+ add r0, r2, #0x1
+ str r0, [r6, #0x0]
+_0209249C:
+ mov r0, r8
+ mov r1, r7
+ bl FUN_02094B98
+_020924A8: ; 0x020924A8
+ cmp r0, #0x0
+ bge _020924DC
+ mov r0, r10
+ mov r1, #0x0
+ bl FUN_02094D7C
+ mov r0, r9
+ mov r1, r8
+ bl FUN_02094E24
+ add sp, sp, #0xc
+ str r11, [r6, #0x0]
+ mov r0, #0x1
+ ldmia sp!, {r4-r11,lr}
+ bx lr
+_020924DC:
+ mov r0, r8
+ bl FUN_02095188
+ ldr r1, [r7, #0x28]
+ mov r2, r0
+ mov r0, r1, lsl #0x1
+ cmp r0, r2
+ movgt r2, r0
+ suble r0, r2, r0
+ movgt r4, #0x0
+ addle r0, r0, r0, lsr #0x1f
+ movle r4, r0, asr #0x1
+ ldr r1, [r7, #0x2c]
+ add r0, r2, r2, lsr #0x1f
+ mov r0, r0, asr #0x1
+ cmp r2, r1
+ str r0, [sp, #0x8]
+ beq _02092534
+ mov r1, r7
+ mov r3, r6
+ add r0, r7, #0x14
+ bl FUN_020923A0
+ str r0, [r7, #0x2c]
+_02092534:
+ ldr r2, [sp, #0x8]
+ ldr r0, [sp, #0x4]
+ mov r1, r8
+ sub r2, r2, r4
+ bl FUN_02094134
+_02092548: ; 0x02092548
+ cmp r0, #0x0
+ beq _02092684
+ ldr r1, [sp, #0x4]
+ mov r0, r5
+ mov r3, r6
+ add r2, r7, #0x14
+ bl FUN_0209390C
+_02092564: ; 0x02092564
+ cmp r0, #0x0
+ beq _02092684
+ ldr r2, [sp, #0x8]
+ mov r0, r10
+ mov r1, r5
+ add r2, r2, r4
+ bl FUN_02094134
+_02092580: ; 0x02092580
+ cmp r0, #0x0
+ beq _02092684
+ mov r4, #0x0
+ mov r0, r5
+ mov r1, r7
+ mov r2, r10
+ mov r3, r6
+ str r4, [r10, #0xc]
+ bl FUN_0209390C
+_020925A4: ; 0x020925A4
+ cmp r0, #0x0
+ beq _02092684
+ mov r0, r9
+ mov r1, r8
+ mov r2, r5
+ bl FUN_02093B50
+_020925BC: ; 0x020925BC
+ cmp r0, #0x0
+ beq _02092684
+ mov r5, r4
+ mov r0, r9
+ mov r1, r7
+ str r5, [r9, #0xc]
+ bl FUN_02094B98
+_020925D8: ; 0x020925D8
+ cmp r0, #0x0
+ blt _02092630
+ mov r4, #0x1
+_020925E4:
+ cmp r5, #0x2
+ add r5, r5, #0x1
+ bgt _02092684
+ mov r0, r9
+ mov r1, r9
+ mov r2, r7
+ bl FUN_02093B50
+_02092600: ; 0x02092600
+ cmp r0, #0x0
+ beq _02092684
+ mov r0, r10
+ mov r1, r4
+ bl FUN_0209400C
+_02092614: ; 0x02092614
+ cmp r0, #0x0
+ beq _02092684
+ mov r0, r9
+ mov r1, r7
+ bl FUN_02094B98
+_02092628: ; 0x02092628
+ cmp r0, #0x0
+ bge _020925E4
+_02092630:
+ ldr r0, [r9, #0x4]
+ mov r1, #0x1
+ cmp r0, #0x0
+ beq _0209265C
+ cmp r0, #0x1
+ bne _02092658
+ ldr r0, [r9, #0x0]
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ beq _0209265C
+_02092658:
+ mov r1, #0x0
+_0209265C:
+ cmp r1, #0x0
+ movne r0, #0x0
+ ldreq r0, [r8, #0xc]
+ str r0, [r9, #0xc]
+ mov r0, #0x1
+ ldr r2, [r8, #0xc]
+ ldr r1, [r7, #0xc]
+ str r0, [sp, #0x0]
+ eor r0, r2, r1
+ str r0, [r10, #0xc]
+_02092684:
+ ldr r0, [sp, #0x0]
+ str r11, [r6, #0x0]
+ add sp, sp, #0xc
+ ldmia sp!, {r4-r11,lr}
+ bx lr
+
+ arm_func_start FUN_02092698
+FUN_02092698:
+ stmdb sp!, {r4-r8,lr}
+ sub sp, sp, #0x8
+ ldr r4, [sp, #0x20]
+ mov r12, #0x14
+ ldr r5, [r4, #0x0]
+ add lr, r4, #0x4
+ mla r6, r5, r12, lr
+ add r12, r5, #0x1
+ mov r8, r0
+ mov r7, r3
+ str r12, [r4, #0x0]
+ cmp r2, #0x0
+ mov r5, #0x0
+ beq _02092708
+ cmp r1, r2
+ bne _020926F0
+ mov r0, r6
+ mov r2, r4
+ bl FUN_0209305C
+_020926E4: ; 0x020926E4
+ cmp r0, #0x0
+ bne _0209270C
+ b _02092728
+_020926F0:
+ mov r0, r6
+ mov r3, r4
+ bl FUN_0209390C
+_020926FC: ; 0x020926FC
+ cmp r0, #0x0
+ bne _0209270C
+ b _02092728
+_02092708:
+ mov r6, r1
+_0209270C:
+ mov r1, r8
+ mov r2, r6
+ mov r3, r7
+ mov r0, #0x0
+ str r4, [sp, #0x0]
+ bl FUN_0209241C
+ mov r5, #0x1
+_02092728:
+ ldr r1, [r4, #0x0]
+ mov r0, r5
+ sub r1, r1, #0x1
+ str r1, [r4, #0x0]
+ add sp, sp, #0x8
+ ldmia sp!, {r4-r8,lr}
+ bx lr
+
+ arm_func_start FUN_02092744
+FUN_02092744:
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ mov r5, r0
+ mov r4, r1
+ bl FUN_02094E24
+ add r0, r5, #0x14
+ mov r1, #0x0
+ bl FUN_02094D7C
+ mov r0, r4
+ bl FUN_02095188
+ str r0, [r5, #0x28]
+ mov r0, #0x0
+ str r0, [r5, #0x2c]
+ mov r0, #0x1
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,lr}
+ bx lr
+
+ arm_func_start FUN_02092788
+FUN_02092788: ; 0x02092788
+ stmdb sp!, {r4,lr}
+ mov r4, r0
+ bl FUN_0209510C
+ add r0, r4, #0x14
+ bl FUN_0209510C
+ ldr r0, [r4, #0x30]
+ ands r0, r0, #0x1
+ ldmeqia sp!, {r4,lr}
+ bxeq lr
+ mov r0, r4
+ bl FUN_0209105C
+ ldmia sp!, {r4,lr}
+ bx lr
+
+ arm_func_start FUN_020927BC
+FUN_020927BC: ; 0x020927BC
+ stmdb sp!, {r4,lr}
+ mov r4, r0
+ bl FUN_0209502C
+ add r0, r4, #0x14
+ bl FUN_0209502C
+_020927D0: ; 0x020927D0
+ mov r0, #0x0
+ str r0, [r4, #0x28]
+ str r0, [r4, #0x30]
+ ldmia sp!, {r4,lr}
+ bx lr
+
+ arm_func_start FUN_020927E4
+FUN_020927E4: ; 0x020927E4
+ stmdb sp!, {r4,lr}
+ mov r4, r0
+ add r0, r4, #0xc
+ bl FUN_0209510C
+ add r0, r4, #0x20
+ bl FUN_0209510C
+ add r0, r4, #0x34
+ bl FUN_0209510C
+ ldr r0, [r4, #0x4c]
+ ands r0, r0, #0x1
+ ldmeqia sp!, {r4,lr}
+ bxeq lr
+ mov r0, r4
+ bl FUN_0209105C
+ ldmia sp!, {r4,lr}
+ bx lr
+
+ arm_func_start FUN_02092824
+FUN_02092824: ; 0x02092824
+ stmdb sp!, {r4,lr}
+ mov r4, r0
+ mov r1, #0x0
+ str r1, [r4, #0x0]
+ add r0, r4, #0xc
+ str r1, [r4, #0x8]
+ bl FUN_0209502C
+ add r0, r4, #0x20
+ bl FUN_0209502C
+ add r0, r4, #0x34
+ bl FUN_0209502C
+_02092850: ; 0x02092850
+ mov r0, #0x0
+ str r0, [r4, #0x4c]
+ ldmia sp!, {r4,lr}
+ bx lr
+
+ arm_func_start FUN_02092860
+FUN_02092860: ; 0x02092860
+ stmdb sp!, {r4,lr}
+ mov r0, #0x50
+ bl FUN_020910A4
+ movs r4, r0
+ moveq r0, #0x0
+ ldmeqia sp!, {r4,lr}
+ bxeq lr
+ bl FUN_02092824
+ mov r1, #0x1
+ mov r0, r4
+ str r1, [r4, #0x4c]
+ ldmia sp!, {r4,lr}
+ bx lr
+
+ arm_func_start FUN_02092894
+FUN_02092894:
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0x14
+ mov r6, r1
+ ldr r3, [r6, #0x4]
+ mov r7, r0
+ cmp r3, #0x0
+ mov r5, r2
+ addeq sp, sp, #0x14
+ moveq r0, #0x0
+ ldmeqia sp!, {r4-r7,lr}
+ bxeq lr
+ add r0, r7, #0x20
+ add r4, r7, #0xc
+ bl FUN_02094E24
+_020928CC: ; 0x020928CC
+ cmp r0, #0x0
+ addeq sp, sp, #0x14
+ moveq r0, #0x0
+ ldmeqia sp!, {r4-r7,lr}
+ bxeq lr
+ add r0, sp, #0x0
+ bl FUN_0209502C
+ mov r1, #0x1
+ mov r0, r6
+ str r1, [r7, #0x0]
+ bl FUN_02095188
+ add r1, r0, #0x1f
+ mov r0, r1, asr #0x4
+ add r0, r1, r0, lsr #0x1b
+ mov r2, r0, asr #0x5
+ mov r0, r4
+ mov r1, #0x0
+ str r2, [r7, #0x8]
+ bl FUN_02094D7C
+_02092918: ; 0x02092918
+ cmp r0, #0x0
+ addeq sp, sp, #0x14
+ moveq r0, #0x0
+ ldmeqia sp!, {r4-r7,lr}
+ bxeq lr
+ mov r0, r4
+ mov r1, #0x20
+ bl FUN_02094AFC
+_02092938: ; 0x02092938
+ cmp r0, #0x0
+ beq _02092A38
+ ldr r0, [r6, #0x0]
+ ldr r4, [r0, #0x0]
+ mov r0, r4
+ bl FUN_02092D9C
+ mov r1, r0
+ add r0, sp, #0x0
+ bl FUN_02094D7C
+_0209295C: ; 0x0209295C
+ cmp r0, #0x0
+ beq _02092A38
+ add r0, sp, #0x0
+ mov r2, #0x20
+ mov r1, r0
+ bl FUN_02094250
+_02092974: ; 0x02092974
+ cmp r0, #0x0
+ beq _02092A38
+ ldr r0, [sp, #0x4]
+ cmp r0, #0x0
+ beq _020929B0
+ cmp r0, #0x1
+ bne _020929A0
+ ldr r0, [sp, #0x0]
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ beq _020929B0
+_020929A0:
+ add r0, sp, #0x0
+ mov r1, #0x1
+ bl FUN_02093EAC
+ b _020929C4
+_020929B0:
+ add r0, sp, #0x0
+ mvn r1, #0x0
+ bl FUN_02094D7C
+_020929BC: ; 0x020929BC
+ cmp r0, #0x0
+ beq _02092A38
+_020929C4:
+ ldr r2, [sp, #0x4]
+ cmp r2, #0x1
+ ldrge r0, [sp, #0x0]
+ ldrge r1, [r0, #0x0]
+ movlt r1, #0x0
+ cmp r2, #0x2
+ ldrge r0, [sp, #0x0]
+ mov r2, r4
+ ldrge r0, [r0, #0x4]
+ movlt r0, #0x0
+ bl FUN_02092260
+ str r0, [r7, #0x48]
+ add r0, r7, #0xc
+ mov r1, #0x0
+ bl FUN_02094D7C
+ ldr r1, [r7, #0x8]
+ add r0, r7, #0xc
+ mov r1, r1, lsl #0x6
+ bl FUN_02094AFC
+_02092A10: ; 0x02092A10
+ cmp r0, #0x0
+ beq _02092A38
+ add r0, r7, #0xc
+ mov r1, r0
+ mov r3, r5
+ add r2, r7, #0x20
+ bl FUN_02093214
+ ldr r1, [r7, #0x8]
+ add r0, r7, #0xc
+ bl FUN_0209508C
+_02092A38:
+ add r0, sp, #0x0
+ bl FUN_0209510C
+ mov r0, #0x1
+ add sp, sp, #0x14
+ ldmia sp!, {r4-r7,lr}
+ bx lr
+
+ arm_func_start FUN_02092A50
+FUN_02092A50: ; 0x02092A50
+ stmdb sp!, {r4-r11,lr}
+ sub sp, sp, #0xc
+ mov r4, r2
+ mov r7, r1
+ cmp r4, #0x6
+ mov r5, r0
+ movgt r4, #0x6
+ mov r1, #0x1
+ mov r2, r1, lsl r4
+ ldr r0, [r7, #0x4]
+ sub r2, r2, #0x1
+ add r0, r4, r0, lsl #0x5
+ ldr r3, _02092C24 ; =0x02106170
+ str r2, [sp, #0x0]
+ ldr r2, [r3, r4, lsl #0x2]
+ mov r1, r4
+ sub r0, r0, #0x1
+ str r2, [sp, #0x4]
+ mov r6, #0x0
+ bl _s32_div_f
+ mov r12, #0x0
+ mov r0, r0, lsl #0x1
+ add r0, r0, #0x2
+ mov r8, r6
+ add r1, r5, r0
+ strb r8, [r5, r0]
+ strb r8, [r1, #-0x1]
+ ldr r0, [r7, #0x0]
+ ldr r2, [r7, #0x4]
+ ldr r7, [r0, #0x0]
+ add lr, r0, #0x4
+ cmp r2, #0x1
+ sub r9, r1, #0x2
+ ldrgt r8, [lr], #0x4
+ mov r10, r7
+ mov r0, r12
+ str r12, [sp, #0x8]
+ mov r1, #0xff
+ mov r11, r12
+_02092AEC:
+ ldr r3, [sp, #0x0]
+ and r3, r10, r3
+ ldr r10, [sp, #0x4]
+ ldrb r10, [r10, r3]
+ cmp r10, #0x0
+ beq _02092B4C
+ add r12, r12, r10
+ add r6, r6, r10
+ cmp r6, #0x20
+ blo _02092B34
+ cmp r2, #0x1
+ ble _02092B4C
+ sub r2, r2, #0x1
+ mov r7, r8
+ cmp r2, #0x1
+ movle r8, r11
+ ldrgt r8, [lr], #0x4
+ sub r6, r6, #0x20
+_02092B34:
+ cmp r6, #0x0
+ moveq r10, r7
+ movne r10, r7, lsr r6
+ rsbne r3, r6, #0x20
+ orrne r10, r10, r8, lsl r3
+ b _02092AEC
+_02092B4C:
+ cmp r3, #0x0
+ beq _02092BD0
+ strb r12, [r9, #0x0]
+ strb r3, [r9, #-0x1]
+ cmp r12, #0x100
+ sub r9, r9, #0x2
+ blo _02092B88
+ cmp r12, #0x100
+ blo _02092B88
+_02092B70:
+ strb r1, [r9, #0x0]
+ sub r12, r12, #0x100
+ strb r0, [r9, #-0x1]
+ sub r9, r9, #0x2
+ cmp r12, #0x100
+ bhs _02092B70
+_02092B88:
+ mov r12, r4
+ add r6, r6, r4
+ cmp r6, #0x20
+ blo _02092BB8
+ cmp r2, #0x1
+ ble _02092BD0
+ sub r2, r2, #0x1
+ mov r7, r8
+ cmp r2, #0x1
+ ldrle r8, [sp, #0x8]
+ sub r6, r6, #0x20
+ ldrgt r8, [lr], #0x4
+_02092BB8:
+ cmp r6, #0x0
+ moveq r10, r7
+ movne r10, r7, lsr r6
+ rsbne r3, r6, #0x20
+ orrne r10, r10, r8, lsl r3
+ b _02092AEC
+_02092BD0:
+ add r9, r9, #0x1
+ mov r0, #0x2
+ b _02092BF4
+_02092BDC:
+ strb r2, [r5, #0x0]
+ ldrb r1, [r9, #0x1]
+ add r9, r9, #0x2
+ add r0, r0, #0x2
+ strb r1, [r5, #0x1]
+ add r5, r5, #0x2
+_02092BF4:
+ ldrb r2, [r9, #0x0]
+ cmp r2, #0x0
+ bne _02092BDC
+ ldrb r1, [r9, #0x1]
+ cmp r1, #0x0
+ bne _02092BDC
+ mov r1, #0x0
+ strb r1, [r5, #0x0]
+ strb r1, [r5, #0x1]
+ add sp, sp, #0xc
+ ldmia sp!, {r4-r11,lr}
+ bx lr
+ .balign 4
+_02092C24: .word 0x02106170
+
+ arm_func_start FUN_02092C28
+FUN_02092C28:
+ stmdb sp!, {r4-r9,lr}
+ sub sp, sp, #0x4
+ ldr r5, [r3], #0x4
+ mov r2, #0x14
+ mla r4, r5, r2, r3
+ mov r9, r0
+ ldr r0, [r9, #0x4]
+ mov r8, r1
+ cmp r0, #0x0
+ mov r5, #0x0
+ mov r1, r0, lsl #0x5
+ addeq sp, sp, #0x4
+ moveq r0, r5
+ ldmeqia sp!, {r4-r9,lr}
+ bxeq lr
+ cmp r0, #0x1
+ bne _02092CC8
+ cmp r0, #0x1
+ bne _02092C8C
+ ldr r2, [r9, #0x0]
+ ldr r1, _02092D8C ; =0x00010001
+ ldr r2, [r2, #0x0]
+ cmp r2, r1
+ ldreq r5, _02092D90 ; =0x020FF500
+ beq _02092CB8
+_02092C8C:
+ ldr r1, [r9, #0x0]
+ ldr r1, [r1, #0x0]
+ cmp r1, #0x11
+ bne _02092CA8
+ cmp r0, #0x1
+ ldreq r5, _02092D94 ; =0x020FF518
+ beq _02092CB8
+_02092CA8:
+ cmp r1, #0x3
+ bne _02092CB8
+ cmp r0, #0x1
+ ldreq r5, _02092D98 ; =0x020FF50C
+_02092CB8:
+ mov r7, #0x1
+ mov r6, r7
+ mov r1, #0x20
+ b _02092CF8
+_02092CC8:
+ cmp r1, #0x100
+ movge r7, #0x5
+ movge r6, #0x10
+ movge r1, #0x7
+ bge _02092CF8
+ cmp r1, #0x80
+ movge r6, #0x8
+ movge r1, r6
+ movge r7, #0x4
+ movlt r7, #0x3
+ movlt r6, #0x4
+ movlt r1, #0xb
+_02092CF8:
+ mul r1, r0, r1
+ mov r0, r1, lsl #0x1
+ add r1, r0, #0x7
+ mov r0, r1, asr #0x1
+ add r0, r1, r0, lsr #0x1e
+ cmp r5, #0x0
+ mov r1, r0, asr #0x2
+ bne _02092D74
+ ldr r0, [r4, #0x8]
+ cmp r1, r0
+ movle r0, r4
+ ble _02092D30
+ mov r0, r4
+ bl FUN_02094EBC
+_02092D30:
+ cmp r0, #0x0
+ addeq sp, sp, #0x4
+ moveq r0, #0x0
+ ldmeqia sp!, {r4-r9,lr}
+ bxeq lr
+ ldr r5, [r4, #0x0]
+ mov r1, r9
+ mov r2, r7
+ add r0, r5, #0x4
+ bl FUN_02092A50
+ add r1, r0, #0x2
+ mov r0, r1, asr #0x8
+ strb r0, [r5, #0x0]
+ strb r1, [r5, #0x1]
+ strb r7, [r5, #0x2]
+ strb r6, [r5, #0x3]
+ b _02092D78
+_02092D74:
+ mov r1, #0x8
+_02092D78:
+ str r5, [r8, #0x0]
+ add r0, r1, #0x2
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r9,lr}
+ bx lr
+ .balign 4
+_02092D8C: .word 0x00010001
+_02092D90: .word 0x020FF500
+_02092D94: .word 0x020FF518
+_02092D98: .word 0x020FF50C
+
+ arm_func_start FUN_02092D9C
+FUN_02092D9C: ; 0x02092D9C
+ stmdb sp!, {r4-r10,lr}
+ mov r10, r0
+ mov r1, r10
+ rsb r0, r10, #0x0
+ bl _u32_div_f
+ movs r8, r1
+ mov r7, r10
+ mov r5, #0x0
+ mov r6, #0x1
+ mvn r4, #0x0
+ beq _02092E04
+_02092DC8:
+ mov r0, r7
+ mov r1, r8
+ bl _u32_div_f
+ mov r9, r1
+ mov r0, r7
+ mov r1, r8
+ bl _u32_div_f
+ mla r1, r0, r6, r5
+ mov r5, r6
+ mov r7, r8
+ mov r6, r1
+ mov r8, r9
+ cmp r9, #0x0
+ rsb r4, r4, #0x0
+ bne _02092DC8
+_02092E04:
+ cmp r4, #0x0
+ sublt r5, r10, r5
+ cmp r7, #0x1
+ movne r1, #0x0
+ bne _02092E24
+ mov r0, r5
+ mov r1, r10
+ bl _u32_div_f
+_02092E24:
+ mov r0, r1
+ ldmia sp!, {r4-r10,lr}
+ bx lr
+
+ arm_func_start FUN_02092E30
+FUN_02092E30: ; 0x02092E30
+ stmdb sp!, {r4-r11,lr}
+ sub sp, sp, #0xc
+ mov r7, r3
+ mov r9, r1
+ mov r6, #0x0
+ mov r10, r0
+ mov r8, r2
+ mov r4, r6
+ cmp r7, #0x0
+ add r5, r9, r7, lsl #0x2
+ ldr r11, [sp, #0x30]
+ ble _02092EC0
+ mov r0, #0x1
+ str r6, [sp, #0x4]
+ str r0, [sp, #0x0]
+_02092E6C:
+ ldr r1, [r9, #0x0]
+ mov r0, r9
+ mul r3, r1, r11
+ mov r1, r8
+ mov r2, r7
+ bl FUN_020948AC
+ add r1, r0, r6
+ ldr r0, [r5, #0x0]
+ cmp r1, r6
+ ldrcc r6, [sp, #0x0]
+ add r0, r0, r1
+ str r0, [r5, #0x0]
+ ldr r0, [r5, #0x0]
+ ldrcs r6, [sp, #0x4]
+ cmp r0, r1
+ add r4, r4, #0x1
+ addcc r6, r6, #0x1
+ cmp r4, r7
+ add r9, r9, #0x4
+ add r5, r5, #0x4
+ blt _02092E6C
+_02092EC0:
+ cmp r6, #0x0
+ sub r2, r7, #0x1
+ bne _02092F14
+ ldr r1, [r9, r2, lsl #0x2]
+ ldr r0, [r8, r2, lsl #0x2]
+ cmp r1, r0
+ bne _02092F00
+ cmp r2, #0x0
+ ble _02092F00
+_02092EE4:
+ ldr r1, [r9, r2, lsl #0x2]
+ ldr r0, [r8, r2, lsl #0x2]
+ cmp r1, r0
+ bne _02092F00
+ sub r2, r2, #0x1
+ cmp r2, #0x0
+ bgt _02092EE4
+_02092F00:
+ ldr r1, [r9, r2, lsl #0x2]
+ ldr r0, [r8, r2, lsl #0x2]
+ cmp r1, r0
+ movcs r6, #0x1
+ movcc r6, #0x0
+_02092F14:
+ cmp r6, #0x0
+ beq _02092F3C
+ mov r0, r10
+ mov r1, r9
+ mov r2, r8
+ mov r3, r7
+ bl FUN_02094354
+ add sp, sp, #0xc
+ ldmia sp!, {r4-r11,lr}
+ bx lr
+_02092F3C:
+ cmp r7, #0x0
+ addle sp, sp, #0xc
+ mov r1, #0x0
+ ldmleia sp!, {r4-r11,lr}
+ bxle lr
+_02092F50:
+ ldr r0, [r9, r1, lsl #0x2]
+ str r0, [r10, r1, lsl #0x2]
+ add r1, r1, #0x1
+ cmp r1, r7
+ blt _02092F50
+ add sp, sp, #0xc
+ ldmia sp!, {r4-r11,lr}
+ bx lr
+
+ arm_func_start FUN_02092F70
+FUN_02092F70:
+ stmdb sp!, {r4-r11,lr}
+ sub sp, sp, #0x4
+ mov r11, r2
+ mov r6, r11, lsl #0x1
+ mov r10, r0
+ mov r7, r11
+ mov r9, r1
+ sub r7, r7, #0x1
+ sub r2, r6, #0x1
+ mov r0, #0x0
+ str r0, [r10, r2, lsl #0x2]
+ ldr r0, [r10, r2, lsl #0x2]
+ str r3, [sp, #0x0]
+ mov r5, r9
+ str r0, [r10, #0x0]
+ cmp r7, #0x0
+ add r4, r10, #0x4
+ ble _02092FD8
+ add r5, r5, #0x4
+ ldr r3, [r9, #0x0]
+ mov r0, r4
+ mov r1, r5
+ mov r2, r7
+ bl FUN_0209470C
+ str r0, [r4, r7, lsl #0x2]
+ add r4, r4, #0x8
+_02092FD8:
+ sub r8, r11, #0x2
+ cmp r8, #0x0
+ ble _02093018
+_02092FE4:
+ mov r0, r5
+ sub r7, r7, #0x1
+ add r5, r5, #0x4
+ ldr r3, [r0, #0x0]
+ mov r0, r4
+ mov r1, r5
+ mov r2, r7
+ bl FUN_020948AC
+ sub r8, r8, #0x1
+ str r0, [r4, r7, lsl #0x2]
+ cmp r8, #0x0
+ add r4, r4, #0x8
+ bgt _02092FE4
+_02093018:
+ mov r0, r10
+ mov r1, r10
+ mov r2, r10
+ mov r3, r6
+ bl FUN_02094468
+_0209302C: ; 0x0209302C
+ ldr r0, [sp, #0x0]
+ mov r1, r9
+ mov r2, r11
+ bl FUN_020945B8
+ ldr r2, [sp, #0x0]
+ mov r0, r10
+ mov r1, r10
+ mov r3, r6
+ bl FUN_02094468
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r11,lr}
+ bx lr
+
+ arm_func_start FUN_0209305C
+FUN_0209305C:
+ stmdb sp!, {r4-r9,lr}
+ sub sp, sp, #0x64
+ ldr r5, [r2, #0x0]
+ mov r9, r0
+ mov r8, r1
+ cmp r8, r9
+ add r3, r2, #0x4
+ mov r2, #0x14
+ movne r7, r9
+ addeq r0, r5, #0x1
+ mla r4, r5, r2, r3
+ mlaeq r7, r0, r2, r3
+ ldr r5, [r8, #0x4]
+ cmp r5, #0x0
+ movle r0, #0x0
+ strle r0, [r9, #0x4]
+ addle sp, sp, #0x64
+ movle r0, #0x1
+ ldmleia sp!, {r4-r9,lr}
+ bxle lr
+ ldr r0, [r7, #0x8]
+ mov r6, r5, lsl #0x1
+ cmp r6, r0
+ movle r0, r7
+ ble _020930CC
+ mov r0, r7
+ mov r1, r6
+ bl FUN_02094EBC
+_020930CC:
+ cmp r0, #0x0
+ addeq sp, sp, #0x64
+ moveq r0, #0x0
+ ldmeqia sp!, {r4-r9,lr}
+ bxeq lr
+ str r6, [r7, #0x4]
+ mov r0, #0x0
+ str r0, [r7, #0xc]
+ cmp r5, #0x4
+ bne _0209310C
+ ldr r0, [r7, #0x0]
+ ldr r1, [r8, #0x0]
+ add r3, sp, #0x0
+ mov r2, #0x4
+ bl FUN_02092F70
+ b _02093170
+_0209310C:
+ cmp r5, #0x8
+ bne _0209312C
+ ldr r0, [r7, #0x0]
+ ldr r1, [r8, #0x0]
+ add r3, sp, #0x20
+ mov r2, #0x8
+ bl FUN_02092F70
+ b _02093170
+_0209312C:
+ ldr r0, [r4, #0x8]
+ cmp r6, r0
+ movle r0, r4
+ ble _02093148
+ mov r0, r4
+ mov r1, r6
+ bl FUN_02094EBC
+_02093148:
+ cmp r0, #0x0
+ addeq sp, sp, #0x64
+ moveq r0, #0x0
+ ldmeqia sp!, {r4-r9,lr}
+ bxeq lr
+ ldr r0, [r7, #0x0]
+ ldr r1, [r8, #0x0]
+ ldr r3, [r4, #0x0]
+ mov r2, r5
+ bl FUN_02092F70
+_02093170:
+ cmp r6, #0x0
+ ble _02093194
+ ldr r1, [r7, #0x0]
+ sub r0, r6, #0x1
+ ldr r0, [r1, r0, lsl #0x2]
+ cmp r0, #0x0
+ ldreq r0, [r7, #0x4]
+ subeq r0, r0, #0x1
+ streq r0, [r7, #0x4]
+_02093194:
+ cmp r7, r9
+ beq _020931A8
+ mov r0, r9
+ mov r1, r7
+ bl FUN_02094E24
+_020931A8:
+ mov r0, #0x1
+ add sp, sp, #0x64
+ ldmia sp!, {r4-r9,lr}
+ bx lr
+
+ arm_func_start FUN_020931B8
+FUN_020931B8:
+ stmdb sp!, {lr}
+ sub sp, sp, #0xc
+ ldr r12, [r3, #0x4]
+ cmp r12, #0x0
+ ble _020931FC
+ ldr r12, [r3, #0x0]
+ ldr r12, [r12, #0x0]
+ ands r12, r12, #0x1
+ beq _020931FC
+ ldr lr, [sp, #0x10]
+ mov r12, #0x0
+ str lr, [sp, #0x0]
+ str r12, [sp, #0x4]
+ bl FUN_020916C8
+ add sp, sp, #0xc
+ ldmia sp!, {lr}
+ bx lr
+_020931FC:
+ ldr r12, [sp, #0x10]
+ str r12, [sp, #0x0]
+ bl FUN_02091ECC
+ add sp, sp, #0xc
+ ldmia sp!, {lr}
+ bx lr
+
+ arm_func_start FUN_02093214
+FUN_02093214:
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ mov lr, r1
+ mov r12, r2
+ str r3, [sp, #0x0]
+ mov r1, r0
+ mov r2, lr
+ mov r3, r12
+ mov r0, #0x0
+ bl FUN_02093248
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+
+ arm_func_start FUN_02093248
+FUN_02093248:
+ stmdb sp!, {r4-r11,lr}
+ sub sp, sp, #0x4c
+ mov r6, r3
+ ldr r3, [r6, #0x4]
+ mov r8, r0
+ str r1, [sp, #0x0]
+ str r2, [sp, #0x4]
+ cmp r3, #0x0
+ ldr r4, [sp, #0x70]
+ beq _02093288
+ cmp r3, #0x1
+ bne _02093298
+ ldr r0, [r6, #0x0]
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ bne _02093298
+_02093288:
+ add sp, sp, #0x4c
+ mov r0, #0x0
+ ldmia sp!, {r4-r11,lr}
+ bx lr
+_02093298:
+ ldr r0, [sp, #0x4]
+ mov r1, r6
+ bl FUN_02094B98
+_020932A4: ; 0x020932A4
+ cmp r0, #0x0
+ bge _020932F8
+ ldr r0, [sp, #0x0]
+ cmp r0, #0x0
+ beq _020932D4
+ ldr r1, [sp, #0x4]
+ bl FUN_02094E24
+_020932C0: ; 0x020932C0
+ cmp r0, #0x0
+ addeq sp, sp, #0x4c
+ moveq r0, #0x0
+ ldmeqia sp!, {r4-r11,lr}
+ bxeq lr
+_020932D4:
+ cmp r8, #0x0
+ beq _020932E8
+ mov r0, r8
+ mov r1, #0x0
+ bl FUN_02094D7C
+_020932E8:
+ add sp, sp, #0x4c
+ mov r0, #0x1
+ ldmia sp!, {r4-r11,lr}
+ bx lr
+_020932F8:
+ ldr r3, [r4, #0x0]
+ add r0, r4, #0x4
+ mov r2, #0x14
+ mla r1, r3, r2, r0
+ mov r3, #0x0
+ str r3, [r1, #0xc]
+ ldr r5, [r4, #0x0]
+ str r1, [sp, #0x14]
+ add r4, r5, #0x1
+ mla r1, r4, r2, r0
+ add r3, r5, #0x2
+ str r1, [sp, #0x18]
+ mla r1, r3, r2, r0
+ cmp r8, #0x0
+ str r1, [sp, #0x1c]
+ addeq r1, r5, #0x3
+ mlaeq r8, r1, r2, r0
+ mov r0, r6
+ bl FUN_02095188
+ mov r1, r0, lsr #0x1f
+ rsb r0, r1, r0, lsl #0x1b
+ add r0, r1, r0, ror #0x1b
+ rsb r0, r0, #0x20
+ str r0, [sp, #0x8]
+ ldr r0, [sp, #0x1c]
+ ldr r2, [sp, #0x8]
+ mov r1, r6
+ bl FUN_02094250
+_02093368: ; 0x02093368
+ cmp r0, #0x0
+ addeq sp, sp, #0x4c
+ moveq r0, #0x0
+ ldmeqia sp!, {r4-r11,lr}
+ bxeq lr
+ ldr r2, [sp, #0x8]
+ ldr r0, [sp, #0x18]
+ ldr r1, [sp, #0x4]
+ ldr r3, [sp, #0x1c]
+ mov r4, #0x0
+ add r2, r2, #0x20
+ str r4, [r3, #0xc]
+ bl FUN_02094250
+_0209339C: ; 0x0209339C
+ cmp r0, #0x0
+ addeq sp, sp, #0x4c
+ moveq r0, r4
+ ldmeqia sp!, {r4-r11,lr}
+ bxeq lr
+ ldr r0, [sp, #0x18]
+ mov r1, r4
+ str r1, [r0, #0xc]
+ ldr r0, [sp, #0x1c]
+ ldr r0, [r0, #0x4]
+ str r0, [sp, #0x28]
+ ldr r0, [sp, #0x18]
+ ldr r1, [sp, #0x28]
+ ldr r4, [r0, #0x4]
+ add r0, sp, #0x38
+ sub r1, r4, r1
+ str r1, [sp, #0x10]
+ bl FUN_0209502C
+ ldr r0, [sp, #0x18]
+ ldr r2, [r0, #0x0]
+ ldr r0, [sp, #0x28]
+ sub r1, r0, #0x1
+ ldr r0, [sp, #0x10]
+ add r0, r2, r0, lsl #0x2
+ str r0, [sp, #0x38]
+ ldr r0, [sp, #0x28]
+ str r0, [sp, #0x3c]
+ ldr r0, [sp, #0x18]
+ ldr r2, [r0, #0x8]
+ ldr r0, [sp, #0x28]
+ cmp r0, #0x1
+ add r0, r2, #0x1
+ str r0, [sp, #0x40]
+ ldr r0, [sp, #0x1c]
+ moveq r5, #0x0
+ ldr r2, [r0, #0x0]
+ ldr r0, [r2, r1, lsl #0x2]
+ str r0, [sp, #0x24]
+ ldrne r0, [sp, #0x28]
+ subne r0, r0, #0x2
+ ldrne r5, [r2, r0, lsl #0x2]
+ ldr r0, [sp, #0x18]
+ ldr r2, [r8, #0x8]
+ ldr r1, [r0, #0x0]
+ sub r0, r4, #0x1
+ add r7, r1, r0, lsl #0x2
+ ldr r0, [sp, #0x10]
+ add r1, r0, #0x1
+ cmp r1, r2
+ movle r0, r8
+ ble _02093470
+ mov r0, r8
+ bl FUN_02094EBC
+_02093470:
+ cmp r0, #0x0
+ beq _020937D4
+ ldr r0, [sp, #0x4]
+ ldr r1, [r6, #0xc]
+ ldr r3, [r0, #0xc]
+ ldr r0, [sp, #0x10]
+ sub r2, r0, #0x1
+ eor r0, r3, r1
+ str r0, [r8, #0xc]
+ ldr r0, [sp, #0x10]
+ str r0, [r8, #0x4]
+ ldr r0, [sp, #0x28]
+ ldr r3, [r8, #0x0]
+ add r1, r0, #0x1
+ add r0, r3, r2, lsl #0x2
+ str r0, [sp, #0x20]
+ ldr r0, [sp, #0x14]
+ ldr r0, [r0, #0x8]
+ cmp r1, r0
+ ldrle r0, [sp, #0x14]
+ ble _020934CC
+ ldr r0, [sp, #0x14]
+ bl FUN_02094EBC
+_020934CC:
+ cmp r0, #0x0
+ beq _020937D4
+ ldr r1, [sp, #0x1c]
+ add r0, sp, #0x38
+ bl FUN_02094B98
+_020934E0: ; 0x020934E0
+ cmp r0, #0x0
+ blt _02093520
+ add r0, sp, #0x38
+ ldr r2, [sp, #0x1c]
+ mov r1, r0
+ bl FUN_02093B50
+_020934F8: ; 0x020934F8
+ cmp r0, #0x0
+ beq _020937D4
+ ldr r0, [sp, #0x20]
+ mov r2, #0x1
+ str r2, [r0, #0x0]
+ ldr r0, [r8, #0x4]
+ ldr r1, [r8, #0x0]
+ sub r0, r0, #0x1
+ str r2, [r1, r0, lsl #0x2]
+ b _0209352C
+_02093520:
+ ldr r0, [r8, #0x4]
+ sub r0, r0, #0x1
+ str r0, [r8, #0x4]
+_0209352C:
+ ldr r0, [sp, #0x10]
+ sub r1, r0, #0x1
+ ldr r0, [sp, #0x20]
+ cmp r1, #0x0
+ sub r0, r0, #0x4
+ str r0, [sp, #0x20]
+ mov r0, #0x0
+ str r0, [sp, #0xc]
+ ble _0209377C
+ ldr r8, _020937E4 ; =0x0000FFFF
+ cmp r1, #0x0
+ and r0, r5, r8
+ str r0, [sp, #0x2c]
+ and r0, r8, r5, lsr #0x10
+ str r0, [sp, #0x30]
+ ldr r0, [sp, #0x24]
+ and r4, r0, r8
+ ble _0209377C
+ and r9, r8, r0, lsr #0x10
+ mvn r0, #0x0
+ str r0, [sp, #0x34]
+_02093580:
+ ldr r1, [sp, #0x38]
+ ldr r0, [sp, #0x3c]
+ sub r1, r1, #0x4
+ add r0, r0, #0x1
+ str r0, [sp, #0x3c]
+ str r1, [sp, #0x38]
+ ldr r11, [r7, #0x0]
+ ldr r0, [sp, #0x24]
+ ldr r5, [r7, #-0x4]
+ cmp r11, r0
+ ldreq r6, [sp, #0x34]
+ beq _020935C4
+ ldr r2, [sp, #0x24]
+ mov r0, r11
+ mov r1, r5
+ bl FUN_02092260
+ mov r6, r0
+_020935C4:
+ ldr r0, [sp, #0x2c]
+ and r2, r6, r8
+ mul r12, r0, r2
+ ldr r0, [sp, #0x30]
+ and lr, r8, r6, lsr #0x10
+ ldr r1, [sp, #0x30]
+ mul r0, r2, r0
+ mul r3, r1, lr
+ ldr r1, [sp, #0x2c]
+ mul r10, r9, lr
+ mla r1, lr, r1, r0
+ cmp r1, r0
+ addcc r3, r3, #0x10000
+ and r0, r8, r1, lsr #0x10
+ add r3, r3, r0
+ and r0, r1, r8
+ add r12, r12, r0, lsl #0x10
+ cmp r12, r0, lsl #0x10
+ mul r0, r2, r9
+ mul r1, r4, r2
+ mla r2, lr, r4, r0
+ addcc r3, r3, #0x1
+ cmp r2, r0
+ addcc r10, r10, #0x10000
+ and r0, r8, r2, lsr #0x10
+ add r10, r10, r0
+ and r0, r2, r8
+ add r1, r1, r0, lsl #0x10
+ cmp r1, r0, lsl #0x10
+ addcc r10, r10, #0x1
+ sub r1, r5, r1
+ cmp r1, r5
+ addhi r10, r10, #0x1
+ subs r0, r11, r10
+ bne _02093674
+ cmp r3, r1
+ blo _02093674
+ cmp r3, r1
+ bne _0209366C
+ ldr r0, [r7, #-0x8]
+ cmp r12, r0
+ bls _02093674
+_0209366C:
+ sub r6, r6, #0x1
+ b _020935C4
+_02093674:
+ ldr r0, [sp, #0x14]
+ ldr r1, [sp, #0x1c]
+ ldr r0, [r0, #0x0]
+ ldr r1, [r1, #0x0]
+ ldr r2, [sp, #0x28]
+ mov r3, r6
+ bl FUN_0209470C
+ ldr r1, [sp, #0x14]
+ ldr r2, [sp, #0x28]
+ ldr r3, [r1, #0x0]
+ ldr r1, [sp, #0x28]
+ str r0, [r3, r2, lsl #0x2]
+ add r1, r1, #0x1
+ cmp r1, #0x0
+ ble _020936D4
+ ldr r0, [sp, #0x14]
+ ldr r2, [r0, #0x0]
+_020936B8:
+ sub r0, r1, #0x1
+ ldr r0, [r2, r0, lsl #0x2]
+ cmp r0, #0x0
+ bne _020936D4
+ sub r1, r1, #0x1
+ cmp r1, #0x0
+ bgt _020936B8
+_020936D4:
+ ldr r0, [sp, #0x14]
+ ldr r2, [sp, #0x14]
+ str r1, [r0, #0x4]
+ add r0, sp, #0x38
+ mov r1, r0
+ ldr r5, [sp, #0x3c]
+ bl FUN_02093A0C
+ ldr r0, [sp, #0x18]
+ ldr r1, [r0, #0x4]
+ ldr r0, [sp, #0x3c]
+ add r0, r1, r0
+ sub r1, r0, r5
+ ldr r0, [sp, #0x18]
+ str r1, [r0, #0x4]
+ ldr r0, [sp, #0x44]
+ cmp r0, #0x0
+ beq _0209374C
+ add r0, sp, #0x38
+ ldr r2, [sp, #0x1c]
+ mov r1, r0
+ sub r6, r6, #0x1
+ ldr r5, [sp, #0x3c]
+ bl FUN_02093DD0
+ ldr r0, [sp, #0x18]
+ ldr r1, [r0, #0x4]
+ ldr r0, [sp, #0x3c]
+ sub r0, r0, r5
+ add r1, r1, r0
+ ldr r0, [sp, #0x18]
+ str r1, [r0, #0x4]
+_0209374C:
+ ldr r0, [sp, #0x20]
+ sub r7, r7, #0x4
+ str r6, [r0], #-0x4
+ str r0, [sp, #0x20]
+ ldr r0, [sp, #0xc]
+ add r0, r0, #0x1
+ str r0, [sp, #0xc]
+ ldr r0, [sp, #0x10]
+ sub r1, r0, #0x1
+ ldr r0, [sp, #0xc]
+ cmp r0, r1
+ blt _02093580
+_0209377C:
+ ldr r0, [sp, #0x18]
+ bl FUN_02095040
+_02093784: ; 0x02093784
+ ldr r0, [sp, #0x0]
+ cmp r0, #0x0
+ beq _020937C4
+ ldr r2, [sp, #0x8]
+ ldr r3, [sp, #0x4]
+ ldr r1, [sp, #0x18]
+ add r2, r2, #0x20
+ ldr r4, [r3, #0xc]
+ bl FUN_02094134
+_020937A8: ; 0x020937A8
+ cmp r0, #0x0
+ addeq sp, sp, #0x4c
+ moveq r0, #0x0
+ ldmeqia sp!, {r4-r11,lr}
+ bxeq lr
+ ldr r0, [sp, #0x0]
+ str r4, [r0, #0xc]
+_020937C4:
+ add sp, sp, #0x4c
+ mov r0, #0x1
+ ldmia sp!, {r4-r11,lr}
+ bx lr
+_020937D4:
+ mov r0, #0x0
+ add sp, sp, #0x4c
+ ldmia sp!, {r4-r11,lr}
+ bx lr
+ .balign 4
+_020937E4: .word 0x0000FFFF
+
+ arm_func_start FUN_020937E8
+FUN_020937E8: ; 0x020937E8
+ stmdb sp!, {r4-r9,lr}
+ sub sp, sp, #0x4
+ ldr r5, [sp, #0x20]
+ mov r7, r2
+ mov r9, r0
+ mov r8, r1
+ mov r6, r3
+ cmp r7, r5
+ bge _02093824
+ mov r1, r7
+ mov r0, r8
+ mov r7, r5
+ mov r8, r6
+ mov r5, r1
+ mov r6, r0
+_02093824:
+ ldr r3, [r6, #0x0]
+ mov r0, r9
+ mov r1, r8
+ mov r2, r7
+ add r4, r9, r7, lsl #0x2
+ bl FUN_0209470C
+ str r0, [r9, r7, lsl #0x2]
+_02093840:
+ sub r0, r5, #0x1
+ cmp r0, #0x0
+ addle sp, sp, #0x4
+ ldmleia sp!, {r4-r9,lr}
+ bxle lr
+ ldr r3, [r6, #0x4]
+ mov r1, r8
+ mov r2, r7
+ add r0, r9, #0x4
+ bl FUN_020948AC
+ sub r1, r5, #0x2
+ cmp r1, #0x0
+ addle sp, sp, #0x4
+ str r0, [r4, #0x4]
+ ldmleia sp!, {r4-r9,lr}
+ bxle lr
+ ldr r3, [r6, #0x8]
+ mov r1, r8
+ mov r2, r7
+ add r0, r9, #0x8
+ bl FUN_020948AC
+ sub r1, r5, #0x3
+ cmp r1, #0x0
+ addle sp, sp, #0x4
+ str r0, [r4, #0x8]
+ ldmleia sp!, {r4-r9,lr}
+ bxle lr
+ ldr r3, [r6, #0xc]
+ mov r1, r8
+ mov r2, r7
+ add r0, r9, #0xc
+ bl FUN_020948AC
+ sub r5, r5, #0x4
+ cmp r5, #0x0
+ addle sp, sp, #0x4
+ str r0, [r4, #0xc]
+ ldmleia sp!, {r4-r9,lr}
+ bxle lr
+ ldr r3, [r6, #0x10]
+ mov r1, r8
+ mov r2, r7
+ add r0, r9, #0x10
+ bl FUN_020948AC
+ str r0, [r4, #0x10]
+ add r4, r4, #0x10
+ add r9, r9, #0x10
+ add r6, r6, #0x10
+ b _02093840
+_02093900: ; 0x02093900
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r9,lr}
+ bx lr
+
+ arm_func_start FUN_0209390C
+FUN_0209390C:
+ stmdb sp!, {r4-r11,lr}
+ sub sp, sp, #0x4
+ mov r9, r1
+ ldr r6, [r9, #0x4]
+ mov r8, r2
+ mov r10, r0
+ cmp r6, #0x0
+ ldr r5, [r8, #0x4]
+ beq _02093938
+ cmp r5, #0x0
+ bne _02093954
+_02093938:
+ mov r0, r10
+ mov r1, #0x0
+ bl FUN_02094D7C
+ add sp, sp, #0x4
+ mov r0, #0x1
+ ldmia sp!, {r4-r11,lr}
+ bx lr
+_02093954:
+ ldr r1, [r9, #0xc]
+ ldr r0, [r8, #0xc]
+ cmp r10, r9
+ add r7, r6, r5
+ eor r11, r1, r0
+ beq _02093974
+ cmp r10, r8
+ bne _0209398C
+_02093974:
+ ldr r0, [r3, #0x0]
+ add r2, r3, #0x4
+ add r1, r0, #0x1
+ mov r0, #0x14
+ mla r4, r1, r0, r2
+ b _02093990
+_0209398C:
+ mov r4, r10
+_02093990:
+ ldr r0, [r4, #0x8]
+ cmp r7, r0
+ movle r0, r4
+ ble _020939AC
+ mov r0, r4
+ mov r1, r7
+ bl FUN_02094EBC
+_020939AC:
+ cmp r0, #0x0
+ addeq sp, sp, #0x4
+ moveq r0, #0x0
+ ldmeqia sp!, {r4-r11,lr}
+ bxeq lr
+ str r7, [r4, #0x4]
+ str r5, [sp, #0x0]
+ ldr r0, [r4, #0x0]
+ ldr r1, [r9, #0x0]
+ ldr r3, [r8, #0x0]
+ mov r2, r6
+ bl FUN_020937E8
+ mov r0, r4
+ str r11, [r10, #0xc]
+ bl FUN_02095040
+ cmp r10, r4
+ beq _020939FC
+ mov r0, r10
+ mov r1, r4
+ bl FUN_02094E24
+_020939FC:
+ mov r0, #0x1
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r11,lr}
+ bx lr
+
+ arm_func_start FUN_02093A0C
+FUN_02093A0C: ; 0x02093A0C
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0x4
+ mov r6, r1
+ ldr r1, [r6, #0xc]
+ mov r3, #0x0
+ mov r7, r0
+ mov r5, r2
+ mov r4, r3
+ cmp r1, #0x0
+ beq _02093A54
+ ldr r0, [r5, #0xc]
+ cmp r0, #0x0
+ movne r0, r6
+ moveq r3, #0x1
+ movne r6, r5
+ movne r5, r0
+ moveq r4, r3
+ b _02093A60
+_02093A54:
+ ldr r0, [r5, #0xc]
+ cmp r0, #0x0
+ movne r3, #0x1
+_02093A60:
+ cmp r3, #0x0
+ beq _02093A94
+ mov r0, r7
+ mov r1, r6
+ mov r2, r5
+ bl FUN_02093CB4
+_02093A78: ; 0x02093A78
+ cmp r0, #0x0
+ moveq r0, #0x0
+ add sp, sp, #0x4
+ strne r4, [r7, #0xc]
+ movne r0, #0x1
+ ldmia sp!, {r4-r7,lr}
+ bx lr
+_02093A94:
+ ldr r0, [r5, #0x4]
+ ldr r1, [r6, #0x4]
+ cmp r1, r0
+ movle r1, r0
+ ldr r0, [r7, #0x8]
+ cmp r1, r0
+ movle r0, r7
+ ble _02093ABC
+ mov r0, r7
+ bl FUN_02094EBC
+_02093ABC:
+ cmp r0, #0x0
+ addeq sp, sp, #0x4
+ moveq r0, #0x0
+ ldmeqia sp!, {r4-r7,lr}
+ bxeq lr
+ mov r0, r6
+ mov r1, r5
+ bl FUN_02094B98
+_02093ADC: ; 0x02093ADC
+ cmp r0, #0x0
+ bge _02093B14
+ mov r0, r7
+ mov r1, r5
+ mov r2, r6
+ bl FUN_02093B50
+_02093AF4: ; 0x02093AF4
+ cmp r0, #0x0
+ addeq sp, sp, #0x4
+ moveq r0, #0x0
+ ldmeqia sp!, {r4-r7,lr}
+ bxeq lr
+ mov r0, #0x1
+ str r0, [r7, #0xc]
+ b _02093B40
+_02093B14:
+ mov r0, r7
+ mov r1, r6
+ mov r2, r5
+ bl FUN_02093B50
+_02093B24: ; 0x02093B24
+ cmp r0, #0x0
+ addeq sp, sp, #0x4
+ moveq r0, #0x0
+ ldmeqia sp!, {r4-r7,lr}
+ bxeq lr
+ mov r0, #0x0
+ str r0, [r7, #0xc]
+_02093B40:
+ mov r0, #0x1
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r7,lr}
+ bx lr
+
+ arm_func_start FUN_02093B50
+FUN_02093B50:
+ stmdb sp!, {r4-r10,lr}
+ mov r8, r1
+ mov r7, r2
+ ldr r5, [r7, #0x4]
+ ldr r6, [r8, #0x4]
+ mov r4, r0
+ cmp r6, r5
+ movlt r0, #0x0
+ ldmltia sp!, {r4-r10,lr}
+ bxlt lr
+ ldr r1, [r4, #0x8]
+ cmp r6, r1
+ ble _02093B8C
+ mov r1, r6
+ bl FUN_02094EBC
+_02093B8C:
+ cmp r0, #0x0
+ moveq r0, #0x0
+ ldmeqia sp!, {r4-r10,lr}
+ bxeq lr
+ mov r3, #0x0
+ mov r0, r3
+ cmp r5, #0x0
+ ldr r2, [r8, #0x0]
+ ldr r9, [r7, #0x0]
+ ldr r1, [r4, #0x0]
+ ble _02093C0C
+ mov r12, r3
+ mov r7, r3
+ mov lr, #0x1
+_02093BC4:
+ cmp r3, #0x0
+ ldr r10, [r2], #0x4
+ ldr r8, [r9], #0x4
+ beq _02093BEC
+ cmp r10, r8
+ movls r3, lr
+ sub r8, r10, r8
+ movhi r3, r12
+ sub r10, r8, #0x1
+ b _02093BFC
+_02093BEC:
+ cmp r10, r8
+ movcc r3, lr
+ movcs r3, r7
+ sub r10, r10, r8
+_02093BFC:
+ add r0, r0, #0x1
+ cmp r0, r5
+ str r10, [r1], #0x4
+ blt _02093BC4
+_02093C0C:
+ cmp r3, #0x0
+ beq _02093C3C
+ cmp r0, r6
+ bge _02093C3C
+_02093C1C:
+ ldr r5, [r2], #0x4
+ add r0, r0, #0x1
+ sub r3, r5, #0x1
+ cmp r5, r3
+ str r3, [r1], #0x4
+ bhi _02093C3C
+ cmp r0, r6
+ blt _02093C1C
+_02093C3C:
+ cmp r1, r2
+ beq _02093C9C
+_02093C44:
+ cmp r0, r6
+ bge _02093C9C
+ ldr r5, [r2, #0x0]
+ add r3, r0, #0x1
+ str r5, [r1, #0x0]
+ cmp r3, r6
+ bge _02093C9C
+ ldr r5, [r2, #0x4]
+ add r3, r0, #0x2
+ str r5, [r1, #0x4]
+ cmp r3, r6
+ bge _02093C9C
+ ldr r5, [r2, #0x8]
+ add r3, r0, #0x3
+ str r5, [r1, #0x8]
+ cmp r3, r6
+ ldrlt r3, [r2, #0xc]
+ add r0, r0, #0x4
+ strlt r3, [r1, #0xc]
+ addlt r2, r2, #0x10
+ addlt r1, r1, #0x10
+ blt _02093C44
+_02093C9C:
+ mov r0, r4
+ str r6, [r4, #0x4]
+ bl FUN_02095040
+ mov r0, #0x1
+ ldmia sp!, {r4-r10,lr}
+ bx lr
+
+ arm_func_start FUN_02093CB4
+FUN_02093CB4:
+ stmdb sp!, {r4-r9,lr}
+ sub sp, sp, #0x4
+ mov r4, r1
+ mov r8, r2
+ ldr r2, [r4, #0x4]
+ ldr r1, [r8, #0x4]
+ mov r9, r0
+ cmp r2, r1
+ movlt r0, r4
+ movlt r4, r8
+ movlt r8, r0
+ ldr r6, [r4, #0x4]
+ ldr r0, [r9, #0x8]
+ add r1, r6, #0x1
+ cmp r1, r0
+ ldr r7, [r8, #0x4]
+ movle r0, r9
+ ble _02093D04
+ mov r0, r9
+ bl FUN_02094EBC
+_02093D04:
+ cmp r0, #0x0
+ addeq sp, sp, #0x4
+ moveq r0, #0x0
+ ldmeqia sp!, {r4-r9,lr}
+ bxeq lr
+ str r6, [r9, #0x4]
+ ldr r5, [r4, #0x0]
+ ldr r4, [r9, #0x0]
+ ldr r2, [r8, #0x0]
+ mov r0, r4
+ mov r1, r5
+ mov r3, r7
+ bl FUN_02094468
+_02093D38: ; 0x02093D38
+ cmp r0, #0x0
+ add r4, r4, r7, lsl #0x2
+ add r5, r5, r7, lsl #0x2
+ beq _02093D9C
+ cmp r7, r6
+ bge _02093D7C
+_02093D50:
+ ldr r2, [r5], #0x4
+ mov r3, r4
+ add r1, r2, #0x1
+ str r1, [r4], #0x4
+ ldr r1, [r3, #0x0]
+ add r7, r7, #0x1
+ cmp r1, r2
+ movcs r0, #0x0
+ bhs _02093D7C
+ cmp r7, r6
+ blt _02093D50
+_02093D7C:
+ cmp r7, r6
+ blt _02093D9C
+ cmp r0, #0x0
+ movne r0, #0x1
+ strne r0, [r4], #0x4
+ ldrne r0, [r9, #0x4]
+ addne r0, r0, #0x1
+ strne r0, [r9, #0x4]
+_02093D9C:
+ cmp r4, r5
+ beq _02093DC0
+ cmp r7, r6
+ bge _02093DC0
+_02093DAC:
+ ldr r0, [r5], #0x4
+ add r7, r7, #0x1
+ cmp r7, r6
+ str r0, [r4], #0x4
+ blt _02093DAC
+_02093DC0:
+ mov r0, #0x1
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r9,lr}
+ bx lr
+
+ arm_func_start FUN_02093DD0
+FUN_02093DD0: ; 0x02093DD0
+ stmdb sp!, {r4-r6,lr}
+ mov r5, r1
+ mov r4, r2
+ ldr r2, [r5, #0xc]
+ ldr r1, [r4, #0xc]
+ mov r6, r0
+ eors r0, r2, r1
+ beq _02093E74
+ cmp r2, #0x0
+ movne r0, r5
+ movne r5, r4
+ movne r4, r0
+ mov r0, r5
+ mov r1, r4
+ bl FUN_02094B98
+_02093E0C: ; 0x02093E0C
+ cmp r0, #0x0
+ bge _02093E40
+ mov r0, r6
+ mov r1, r4
+ mov r2, r5
+ bl FUN_02093B50
+_02093E24: ; 0x02093E24
+ cmp r0, #0x0
+ moveq r0, #0x0
+ ldmeqia sp!, {r4-r6,lr}
+ bxeq lr
+ mov r0, #0x1
+ str r0, [r6, #0xc]
+ b _02093E68
+_02093E40:
+ mov r0, r6
+ mov r1, r5
+ mov r2, r4
+ bl FUN_02093B50
+_02093E50: ; 0x02093E50
+ cmp r0, #0x0
+ moveq r0, #0x0
+ ldmeqia sp!, {r4-r6,lr}
+ bxeq lr
+ mov r0, #0x0
+ str r0, [r6, #0xc]
+_02093E68:
+ mov r0, #0x1
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+_02093E74:
+ cmp r2, #0x0
+ movne r0, #0x1
+ strne r0, [r6, #0xc]
+ moveq r0, #0x0
+ streq r0, [r6, #0xc]
+ mov r0, r6
+ mov r1, r5
+ mov r2, r4
+ bl FUN_02093CB4
+_02093E98: ; 0x02093E98
+ cmp r0, #0x0
+ moveq r0, #0x0
+ movne r0, #0x1
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+
+ arm_func_start FUN_02093EAC
+FUN_02093EAC: ; 0x02093EAC
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ movs r4, r1
+ mov r5, r0
+ addeq sp, sp, #0x4
+ moveq r0, #0x1
+ ldmeqia sp!, {r4-r5,lr}
+ bxeq lr
+ ldr r2, [r5, #0xc]
+ cmp r2, #0x0
+ beq _02093EF8
+ mov r2, #0x0
+ str r2, [r5, #0xc]
+ bl FUN_0209400C
+ mov r1, #0x1
+ add sp, sp, #0x4
+ str r1, [r5, #0xc]
+ ldmia sp!, {r4-r5,lr}
+ bx lr
+_02093EF8:
+ ldr r1, [r5, #0x4]
+ cmp r1, #0x1
+ bgt _02093F9C
+ cmp r1, #0x0
+ bne _02093F54
+ ldr r1, [r5, #0x8]
+ cmp r1, #0x1
+ bge _02093F20
+ mov r1, #0x1
+ bl FUN_02094EBC
+_02093F20:
+ cmp r0, #0x0
+ addeq sp, sp, #0x4
+ moveq r0, #0x0
+ ldmeqia sp!, {r4-r5,lr}
+ bxeq lr
+ ldr r1, [r5, #0x0]
+ mov r0, #0x1
+ str r4, [r1, #0x0]
+ str r0, [r5, #0xc]
+ add sp, sp, #0x4
+ str r0, [r5, #0x4]
+ ldmia sp!, {r4-r5,lr}
+ bx lr
+_02093F54:
+ ldr r2, [r5, #0x0]
+ ldr r1, [r2, #0x0]
+ cmp r1, r4
+ moveq r0, #0x0
+ streq r0, [r5, #0x4]
+ beq _02093F8C
+ cmp r1, r4
+ subhi r0, r1, r4
+ strhi r0, [r2, #0x0]
+ movls r0, #0x1
+ strls r0, [r5, #0xc]
+ ldrls r0, [r5, #0x0]
+ subls r1, r4, r1
+ strls r1, [r0, #0x0]
+_02093F8C:
+ add sp, sp, #0x4
+ mov r0, #0x1
+ ldmia sp!, {r4-r5,lr}
+ bx lr
+_02093F9C:
+ mov r0, #0x0
+ mov r1, #0x1
+_02093FA4:
+ ldr r12, [r5, #0x0]
+ mov r3, r0, lsl #0x2
+ ldr r2, [r12, r0, lsl #0x2]
+ cmp r2, r4
+ ldrcs r1, [r12, r3]
+ subcs r1, r1, r4
+ strcs r1, [r12, r3]
+ bhs _02093FDC
+ ldr r2, [r12, r3]
+ add r0, r0, #0x1
+ sub r2, r2, r4
+ mov r4, r1
+ str r2, [r12, r3]
+ b _02093FA4
+_02093FDC:
+ ldr r1, [r5, #0x0]
+ ldr r1, [r1, r3]
+ cmp r1, #0x0
+ bne _02093FFC
+ ldr r1, [r5, #0x4]
+ sub r1, r1, #0x1
+ cmp r0, r1
+ streq r1, [r5, #0x4]
+_02093FFC:
+ mov r0, #0x1
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,lr}
+ bx lr
+
+ arm_func_start FUN_0209400C
+FUN_0209400C:
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ movs r4, r1
+ mov r5, r0
+ addeq sp, sp, #0x4
+ moveq r0, #0x1
+ ldmeqia sp!, {r4-r5,lr}
+ bxeq lr
+ ldr r2, [r5, #0xc]
+ cmp r2, #0x0
+ beq _020940B4
+ ldr r2, [r5, #0x4]
+ cmp r2, #0x1
+ ble _02094064
+ mov r2, #0x0
+ str r2, [r5, #0xc]
+ bl FUN_02093EAC
+ mov r1, #0x1
+ add sp, sp, #0x4
+ str r1, [r5, #0xc]
+ ldmia sp!, {r4-r5,lr}
+ bx lr
+_02094064:
+ ldr r2, [r5, #0x0]
+ ldr r1, [r2, #0x0]
+ cmp r1, r4
+ subhi r0, r1, r4
+ strhi r0, [r2, #0x0]
+ bhi _020940A4
+ cmp r1, r4
+ movcs r0, #0x0
+ strcs r0, [r5, #0xc]
+ strcs r0, [r5, #0x4]
+ bhs _020940A4
+ mov r0, #0x0
+ str r0, [r5, #0xc]
+ ldr r0, [r5, #0x0]
+ sub r1, r4, r1
+ str r1, [r0, #0x0]
+_020940A4:
+ add sp, sp, #0x4
+ mov r0, #0x1
+ ldmia sp!, {r4-r5,lr}
+ bx lr
+_020940B4:
+ ldr r1, [r5, #0x4]
+ ldr r2, [r5, #0x8]
+ add r1, r1, #0x1
+ cmp r1, r2
+ ble _020940CC
+ bl FUN_02094EBC
+_020940CC:
+ cmp r0, #0x0
+ addeq sp, sp, #0x4
+ moveq r0, #0x0
+ ldmeqia sp!, {r4-r5,lr}
+ bxeq lr
+ ldr r1, [r5, #0x0]
+ ldr r0, [r5, #0x4]
+ mov r3, #0x0
+ str r3, [r1, r0, lsl #0x2]
+ mov r0, #0x1
+_020940F4:
+ ldr r2, [r5, #0x0]
+ ldr r1, [r2, r3, lsl #0x2]
+ add r1, r4, r1
+ cmp r4, r1
+ str r1, [r2, r3, lsl #0x2]
+ movhi r4, r0
+ addhi r3, r3, #0x1
+ bhi _020940F4
+ ldr r0, [r5, #0x4]
+ cmp r3, r0
+ addge r0, r0, #0x1
+ strge r0, [r5, #0x4]
+ mov r0, #0x1
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,lr}
+ bx lr
+
+ arm_func_start FUN_02094134
+FUN_02094134:
+ stmdb sp!, {r4-r8,lr}
+ mov r7, r1
+ mov r1, r2, asr #0x4
+ mov r3, r2, lsr #0x1f
+ add r1, r2, r1, lsr #0x1b
+ rsb r2, r3, r2, lsl #0x1b
+ add r4, r3, r2, ror #0x1b
+ ldr r2, [r7, #0x4]
+ mov r6, r1, asr #0x5
+ mov r8, r0
+ cmp r6, r2
+ rsb r5, r4, #0x20
+ ble _0209417C
+ mov r1, #0x0
+ bl FUN_02094D7C
+ mov r0, #0x1
+ ldmia sp!, {r4-r8,lr}
+ bx lr
+_0209417C:
+ cmp r8, r7
+ beq _020941B4
+ sub r1, r2, r6
+ ldr r2, [r8, #0x8]
+ add r1, r1, #0x2
+ cmp r1, r2
+ ble _0209419C
+ bl FUN_02094EBC
+_0209419C:
+ cmp r0, #0x0
+ moveq r0, #0x0
+ ldmeqia sp!, {r4-r8,lr}
+ bxeq lr
+ ldr r0, [r7, #0xc]
+ str r0, [r8, #0xc]
+_020941B4:
+ ldr r0, [r7, #0x0]
+ ldr r1, [r7, #0x4]
+ add r2, r0, r6, lsl #0x2
+ ldr r0, [r8, #0x0]
+ sub r7, r1, r6
+ mov r6, r2
+ str r7, [r8, #0x4]
+ cmp r4, #0x0
+ bne _020941FC
+ add r2, r7, #0x1
+ cmp r2, #0x0
+ ble _0209423C
+_020941E4:
+ ldr r1, [r6], #0x4
+ sub r2, r2, #0x1
+ cmp r2, #0x0
+ str r1, [r0], #0x4
+ bgt _020941E4
+ b _0209423C
+_020941FC:
+ cmp r7, #0x1
+ add r6, r2, #0x4
+ ldr r3, [r2, #0x0]
+ mov r2, #0x1
+ ble _0209422C
+_02094210:
+ mov r1, r3, lsr r4
+ ldr r3, [r6], #0x4
+ add r2, r2, #0x1
+ orr r1, r1, r3, lsl r5
+ cmp r2, r7
+ str r1, [r0], #0x4
+ blt _02094210
+_0209422C:
+ mov r1, r3, lsr r4
+ str r1, [r0, #0x0]
+ mov r1, #0x0
+ str r1, [r0, #0x4]
+_0209423C:
+ mov r0, r8
+ bl FUN_02095040
+ mov r0, #0x1
+ ldmia sp!, {r4-r8,lr}
+ bx lr
+
+ arm_func_start FUN_02094250
+FUN_02094250:
+ stmdb sp!, {r4-r10,lr}
+ mov r4, r1
+ mov r7, r2
+ mov r1, r7, asr #0x4
+ mov r5, r0
+ add r2, r7, r1, lsr #0x1b
+ ldr r1, [r4, #0x4]
+ ldr r3, [r5, #0x8]
+ add r1, r1, r2, asr #0x5
+ add r1, r1, #0x1
+ cmp r1, r3
+ mov r6, r2, asr #0x5
+ ble _02094288
+ bl FUN_02094EBC
+_02094288:
+ cmp r0, #0x0
+ moveq r0, #0x0
+ ldmeqia sp!, {r4-r10,lr}
+ bxeq lr
+ ldr r0, [r4, #0xc]
+ mov r1, r7, lsr #0x1f
+ str r0, [r5, #0xc]
+ ldr r3, [r4, #0x4]
+ rsb r0, r1, r7, lsl #0x1b
+ adds r12, r1, r0, ror #0x1b
+ ldr r2, [r4, #0x0]
+ ldr r0, [r5, #0x0]
+ add r1, r3, r6
+ mov r3, #0x0
+ str r3, [r0, r1, lsl #0x2]
+ rsb r3, r12, #0x20
+ bne _020942F0
+ ldr r1, [r4, #0x4]
+ subs r7, r1, #0x1
+ bmi _02094324
+_020942D8:
+ ldr r3, [r2, r7, lsl #0x2]
+ add r1, r6, r7
+ str r3, [r0, r1, lsl #0x2]
+ subs r7, r7, #0x1
+ bpl _020942D8
+ b _02094324
+_020942F0:
+ ldr r1, [r4, #0x4]
+ subs r1, r1, #0x1
+ bmi _02094324
+_020942FC:
+ add r9, r6, r1
+ add r8, r9, #0x1
+ ldr r10, [r2, r1, lsl #0x2]
+ ldr lr, [r0, r8, lsl #0x2]
+ mov r7, r10, lsl r12
+ orr lr, lr, r10, lsr r3
+ str lr, [r0, r8, lsl #0x2]
+ str r7, [r0, r9, lsl #0x2]
+ subs r1, r1, #0x1
+ bpl _020942FC
+_02094324:
+ mov r2, r6, lsl #0x2
+ mov r1, #0x0
+ bl MI_CpuFill8
+ ldr r1, [r4, #0x4]
+ mov r0, r5
+ add r1, r1, r6
+ add r1, r1, #0x1
+ str r1, [r5, #0x4]
+ bl FUN_02095040
+ mov r0, #0x1
+ ldmia sp!, {r4-r10,lr}
+ bx lr
+
+ arm_func_start FUN_02094354
+FUN_02094354: ; 0x02094354
+ stmdb sp!, {r4-r10,lr}
+ cmp r3, #0x0
+ movle r0, #0x0
+ ldmleia sp!, {r4-r10,lr}
+ bxle lr
+ mov r6, #0x0
+ mov r4, r6
+ mov lr, r6
+ mov r12, r6
+ mov r7, r6
+ mov r5, #0x1
+_02094380:
+ ldr r10, [r1, #0x0]
+ ldr r9, [r2, #0x0]
+ sub r8, r10, r9
+ sub r8, r8, r6
+ str r8, [r0, #0x0]
+ cmp r10, r9
+ beq _020943A8
+ cmp r10, r9
+ movcc r6, r5
+ movcs r6, r4
+_020943A8:
+ sub r8, r3, #0x1
+ cmp r8, #0x0
+ ble _0209445C
+ ldr r10, [r1, #0x4]
+ ldr r9, [r2, #0x4]
+ sub r8, r10, r9
+ sub r8, r8, r6
+ str r8, [r0, #0x4]
+ cmp r10, r9
+ beq _020943DC
+ cmp r10, r9
+ movcc r6, r5
+ movcs r6, lr
+_020943DC:
+ sub r8, r3, #0x2
+ cmp r8, #0x0
+ ble _0209445C
+ ldr r10, [r1, #0x8]
+ ldr r9, [r2, #0x8]
+ sub r8, r10, r9
+ sub r8, r8, r6
+ str r8, [r0, #0x8]
+ cmp r10, r9
+ beq _02094410
+ cmp r10, r9
+ movcc r6, r5
+ movcs r6, r12
+_02094410:
+ sub r8, r3, #0x3
+ cmp r8, #0x0
+ ble _0209445C
+ ldr r10, [r1, #0xc]
+ ldr r9, [r2, #0xc]
+ sub r8, r10, r9
+ sub r8, r8, r6
+ str r8, [r0, #0xc]
+ cmp r10, r9
+ beq _02094444
+ cmp r10, r9
+ movcc r6, r5
+ movcs r6, r7
+_02094444:
+ sub r3, r3, #0x4
+ cmp r3, #0x0
+ addgt r1, r1, #0x10
+ addgt r2, r2, #0x10
+ addgt r0, r0, #0x10
+ bgt _02094380
+_0209445C:
+ mov r0, r6
+ ldmia sp!, {r4-r10,lr}
+ bx lr
+
+ arm_func_start FUN_02094468
+FUN_02094468:
+ stmdb sp!, {r4-r11,lr}
+ sub sp, sp, #0xc
+ cmp r3, #0x0
+ addle sp, sp, #0xc
+ movle r0, #0x0
+ ldmleia sp!, {r4-r11,lr}
+ bxle lr
+ mov r12, #0x0
+ mov r7, r12
+ mov r6, r12
+ mov r5, r12
+ mov r4, r12
+ mov lr, r12
+ mov r11, r12
+ str r12, [sp, #0x0]
+ str r12, [sp, #0x4]
+ mov r8, #0x1
+_020944AC:
+ ldr r9, [r1, #0x0]
+ add r10, r9, r12
+ ldr r9, [r2, #0x0]
+ cmp r10, r12
+ movcc r12, r8
+ add r9, r10, r9
+ movcs r12, r7
+ cmp r9, r10
+ movcc r10, r8
+ movcs r10, r6
+ str r9, [r0, #0x0]
+ sub r9, r3, #0x1
+ add r12, r12, r10
+ cmp r9, #0x0
+ ble _020945A8
+ ldr r9, [r1, #0x4]
+ ldr r10, [r2, #0x4]
+ add r9, r9, r12
+ cmp r9, r12
+ movcc r12, r8
+ add r10, r9, r10
+ movcs r12, r5
+ cmp r10, r9
+ movcc r9, r8
+ movcs r9, r4
+ add r12, r12, r9
+ sub r9, r3, #0x2
+ str r10, [r0, #0x4]
+ cmp r9, #0x0
+ ble _020945A8
+ ldr r9, [r1, #0x8]
+ ldr r10, [r2, #0x8]
+ add r9, r9, r12
+ cmp r9, r12
+ movcc r12, r8
+ add r10, r9, r10
+ movcs r12, lr
+ cmp r10, r9
+ movcc r9, r8
+ movcs r9, r11
+ add r12, r12, r9
+ sub r9, r3, #0x3
+ str r10, [r0, #0x8]
+ cmp r9, #0x0
+ ble _020945A8
+ ldr r9, [r1, #0xc]
+ ldr r10, [r2, #0xc]
+ add r9, r9, r12
+ cmp r9, r12
+ movcc r12, r8
+ add r10, r9, r10
+ ldrcs r12, [sp, #0x0]
+ cmp r10, r9
+ movcc r9, r8
+ ldrcs r9, [sp, #0x4]
+ sub r3, r3, #0x4
+ cmp r3, #0x0
+ str r10, [r0, #0xc]
+ add r12, r12, r9
+ addgt r1, r1, #0x10
+ addgt r2, r2, #0x10
+ addgt r0, r0, #0x10
+ bgt _020944AC
+_020945A8:
+ mov r0, r12
+ add sp, sp, #0xc
+ ldmia sp!, {r4-r11,lr}
+ bx lr
+
+ arm_func_start FUN_020945B8
+FUN_020945B8: ; 0x020945B8
+ stmdb sp!, {r4-r8,lr}
+ cmp r2, #0x0
+ ldmleia sp!, {r4-r8,lr}
+ bxle lr
+ mov r3, #0x8000
+ ldr lr, _02094708 ; =0x0000FFFF
+ rsb r12, r3, #0x0
+_020945D4:
+ ldr r5, [r1, #0x0]
+ mov r3, #0x8000
+ and r4, r5, lr
+ and r7, lr, r5, lsr #0x10
+ mul r6, r4, r7
+ mul r5, r4, r4
+ and r4, r6, lr
+ add r8, r5, r4, lsl #0x11
+ rsb r3, r3, #0x0
+ mul r5, r7, r7
+ and r3, r6, r3
+ add r3, r5, r3, lsr #0xf
+ cmp r8, r4, lsl #0x11
+ addcc r3, r3, #0x1
+ str r8, [r0, #0x0]
+ str r3, [r0, #0x4]
+ subs r3, r2, #0x1
+ ldmeqia sp!, {r4-r8,lr}
+ bxeq lr
+ ldr r4, [r1, #0x4]
+ and r7, lr, r4, lsr #0x10
+ and r3, r4, lr
+ mul r6, r3, r7
+ mul r4, r3, r3
+ and r3, r6, lr
+ add r8, r4, r3, lsl #0x11
+ mul r5, r7, r7
+ and r4, r6, r12
+ cmp r8, r3, lsl #0x11
+ add r3, r5, r4, lsr #0xf
+ addcc r3, r3, #0x1
+ str r8, [r0, #0x8]
+ str r3, [r0, #0xc]
+ subs r3, r2, #0x2
+ ldmeqia sp!, {r4-r8,lr}
+ bxeq lr
+ ldr r5, [r1, #0x8]
+ mov r3, #0x8000
+ and r4, r5, lr
+ and r7, lr, r5, lsr #0x10
+ mul r6, r4, r7
+ mul r5, r4, r4
+ and r4, r6, lr
+ add r8, r5, r4, lsl #0x11
+ rsb r3, r3, #0x0
+ mul r5, r7, r7
+ and r3, r6, r3
+ add r3, r5, r3, lsr #0xf
+ cmp r8, r4, lsl #0x11
+ addcc r3, r3, #0x1
+ str r8, [r0, #0x10]
+ str r3, [r0, #0x14]
+ subs r3, r2, #0x3
+ ldmeqia sp!, {r4-r8,lr}
+ bxeq lr
+ ldr r5, [r1, #0xc]
+ mov r3, #0x8000
+ and r4, r5, lr
+ and r7, lr, r5, lsr #0x10
+ mul r6, r4, r7
+ mul r5, r4, r4
+ and r4, r6, lr
+ add r8, r5, r4, lsl #0x11
+ rsb r3, r3, #0x0
+ mul r5, r7, r7
+ and r3, r6, r3
+ add r3, r5, r3, lsr #0xf
+ cmp r8, r4, lsl #0x11
+ addcc r3, r3, #0x1
+ str r8, [r0, #0x18]
+ subs r2, r2, #0x4
+ str r3, [r0, #0x1c]
+ addne r1, r1, #0x10
+ addne r0, r0, #0x20
+ bne _020945D4
+ ldmia sp!, {r4-r8,lr}
+ bx lr
+ .balign 4
+_02094708: .word 0x0000FFFF
+
+ arm_func_start FUN_0209470C
+FUN_0209470C: ; 0x0209470C
+ stmdb sp!, {r4-r9,lr}
+ sub sp, sp, #0x4
+ cmp r2, #0x0
+ mov r4, #0x0
+ addle sp, sp, #0x4
+ movle r0, r4
+ ldmleia sp!, {r4-r9,lr}
+ bxle lr
+ ldr r5, _020948A8 ; =0x0000FFFF
+ and lr, r3, r5
+ and r12, r5, r3, lsr #0x10
+_02094738:
+ ldr r3, [r1, #0x0]
+ and r7, r5, r3, lsr #0x10
+ mul r6, lr, r7
+ and r3, r3, r5
+ mla r9, r12, r3, r6
+ mul r8, r3, lr
+ mul r3, r7, r12
+ cmp r9, r6
+ and r6, r9, r5
+ addcc r3, r3, #0x10000
+ and r7, r5, r9, lsr #0x10
+ add r8, r8, r6, lsl #0x10
+ cmp r8, r6, lsl #0x10
+ add r3, r3, r7
+ add r6, r8, r4
+ addcc r3, r3, #0x1
+ cmp r6, r4
+ addcc r3, r3, #0x1
+ str r6, [r0, #0x0]
+ mov r4, r3
+ subs r6, r2, #0x1
+ beq _02094898
+ ldr r4, [r1, #0x4]
+ and r7, r5, r4, lsr #0x10
+ mul r6, lr, r7
+ and r4, r4, r5
+ mla r9, r12, r4, r6
+ mul r8, r4, lr
+ mul r4, r7, r12
+ cmp r9, r6
+ and r6, r9, r5
+ addcc r4, r4, #0x10000
+ and r7, r5, r9, lsr #0x10
+ add r8, r8, r6, lsl #0x10
+ cmp r8, r6, lsl #0x10
+ add r4, r4, r7
+ add r6, r8, r3
+ addcc r4, r4, #0x1
+ cmp r6, r3
+ addcc r4, r4, #0x1
+ str r6, [r0, #0x4]
+ subs r3, r2, #0x2
+ beq _02094898
+ ldr r3, [r1, #0x8]
+ and r7, r5, r3, lsr #0x10
+ mul r6, lr, r7
+ and r3, r3, r5
+ mla r9, r12, r3, r6
+ mul r8, r3, lr
+ mul r3, r7, r12
+ cmp r9, r6
+ and r6, r9, r5
+ addcc r3, r3, #0x10000
+ and r7, r5, r9, lsr #0x10
+ add r8, r8, r6, lsl #0x10
+ cmp r8, r6, lsl #0x10
+ add r3, r3, r7
+ add r6, r8, r4
+ addcc r3, r3, #0x1
+ cmp r6, r4
+ addcc r3, r3, #0x1
+ str r6, [r0, #0x8]
+ mov r4, r3
+ subs r6, r2, #0x3
+ beq _02094898
+ ldr r4, [r1, #0xc]
+ and r7, r5, r4, lsr #0x10
+ mul r6, lr, r7
+ and r4, r4, r5
+ mla r9, r12, r4, r6
+ mul r8, r4, lr
+ mul r4, r7, r12
+ cmp r9, r6
+ and r6, r9, r5
+ addcc r4, r4, #0x10000
+ and r7, r5, r9, lsr #0x10
+ add r8, r8, r6, lsl #0x10
+ cmp r8, r6, lsl #0x10
+ add r4, r4, r7
+ add r6, r8, r3
+ addcc r4, r4, #0x1
+ cmp r6, r3
+ addcc r4, r4, #0x1
+ subs r2, r2, #0x4
+ str r6, [r0, #0xc]
+ addne r1, r1, #0x10
+ addne r0, r0, #0x10
+ bne _02094738
+_02094898:
+ mov r0, r4
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r9,lr}
+ bx lr
+ .balign 4
+_020948A8: .word 0x0000FFFF
+
+ arm_func_start FUN_020948AC
+FUN_020948AC: ; 0x020948AC
+ stmdb sp!, {r4-r9,lr}
+ sub sp, sp, #0x4
+ cmp r2, #0x0
+ mov r12, #0x0
+ addle sp, sp, #0x4
+ movle r0, r12
+ ldmleia sp!, {r4-r9,lr}
+ bxle lr
+ ldr r5, _02094A88 ; =0x0000FFFF
+ and r4, r3, r5
+ and lr, r5, r3, lsr #0x10
+_020948D8:
+ ldr r3, [r1, #0x0]
+ and r7, r5, r3, lsr #0x10
+ mul r6, r4, r7
+ and r3, r3, r5
+ mla r9, lr, r3, r6
+ mul r8, r3, r4
+ mul r3, r7, lr
+ cmp r9, r6
+ and r6, r9, r5
+ addcc r3, r3, #0x10000
+ and r7, r5, r9, lsr #0x10
+ add r8, r8, r6, lsl #0x10
+ cmp r8, r6, lsl #0x10
+ add r3, r3, r7
+ ldr r6, [r0, #0x0]
+ addcc r3, r3, #0x1
+ add r7, r8, r12
+ cmp r7, r12
+ add r7, r7, r6
+ addcc r3, r3, #0x1
+ cmp r7, r6
+ addcc r3, r3, #0x1
+ mov r12, r3
+ str r7, [r0, #0x0]
+ subs r6, r2, #0x1
+ beq _02094A78
+ ldr r12, [r1, #0x4]
+ and r7, r5, r12, lsr #0x10
+ mul r6, r4, r7
+ and r12, r12, r5
+ mla r9, lr, r12, r6
+ mul r8, r12, r4
+ mul r12, r7, lr
+ cmp r9, r6
+ and r6, r9, r5
+ addcc r12, r12, #0x10000
+ and r7, r5, r9, lsr #0x10
+ add r8, r8, r6, lsl #0x10
+ cmp r8, r6, lsl #0x10
+ add r12, r12, r7
+ add r6, r8, r3
+ addcc r12, r12, #0x1
+ cmp r6, r3
+ ldr r3, [r0, #0x4]
+ addcc r12, r12, #0x1
+ add r6, r6, r3
+ cmp r6, r3
+ addcc r12, r12, #0x1
+ str r6, [r0, #0x4]
+ subs r3, r2, #0x2
+ beq _02094A78
+ ldr r3, [r1, #0x8]
+ and r7, r5, r3, lsr #0x10
+ mul r6, r4, r7
+ and r3, r3, r5
+ mla r9, lr, r3, r6
+ mul r8, r3, r4
+ mul r3, r7, lr
+ cmp r9, r6
+ and r6, r9, r5
+ addcc r3, r3, #0x10000
+ and r7, r5, r9, lsr #0x10
+ add r8, r8, r6, lsl #0x10
+ cmp r8, r6, lsl #0x10
+ add r3, r3, r7
+ ldr r6, [r0, #0x8]
+ addcc r3, r3, #0x1
+ add r7, r8, r12
+ cmp r7, r12
+ add r7, r7, r6
+ addcc r3, r3, #0x1
+ cmp r7, r6
+ addcc r3, r3, #0x1
+ mov r12, r3
+ str r7, [r0, #0x8]
+ subs r6, r2, #0x3
+ beq _02094A78
+ ldr r12, [r1, #0xc]
+ and r7, r5, r12, lsr #0x10
+ mul r6, r4, r7
+ and r12, r12, r5
+ mla r9, lr, r12, r6
+ mul r8, r12, r4
+ mul r12, r7, lr
+ cmp r9, r6
+ and r6, r9, r5
+ addcc r12, r12, #0x10000
+ and r7, r5, r9, lsr #0x10
+ add r8, r8, r6, lsl #0x10
+ cmp r8, r6, lsl #0x10
+ add r12, r12, r7
+ add r6, r8, r3
+ addcc r12, r12, #0x1
+ cmp r6, r3
+ ldr r3, [r0, #0xc]
+ addcc r12, r12, #0x1
+ add r6, r6, r3
+ cmp r6, r3
+ addcc r12, r12, #0x1
+ subs r2, r2, #0x4
+ str r6, [r0, #0xc]
+ addne r1, r1, #0x10
+ addne r0, r0, #0x10
+ bne _020948D8
+_02094A78:
+ mov r0, r12
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r9,lr}
+ bx lr
+ .balign 4
+_02094A88: .word 0x0000FFFF
+
+ arm_func_start FUN_02094A8C
+FUN_02094A8C:
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ cmp r1, #0x0
+ addlt sp, sp, #0x4
+ movlt r0, #0x0
+ ldmltia sp!, {lr}
+ bxlt lr
+ mov r2, r1, asr #0x4
+ add r2, r1, r2, lsr #0x1b
+ mov r3, r1, lsr #0x1f
+ ldr r12, [r0, #0x4]
+ mov lr, r2, asr #0x5
+ cmp r12, lr
+ rsb r1, r3, r1, lsl #0x1b
+ addle sp, sp, #0x4
+ add r2, r3, r1, ror #0x1b
+ movle r0, #0x0
+ ldmleia sp!, {lr}
+ bxle lr
+ ldr r1, [r0, #0x0]
+ mov r0, #0x1
+ mov r2, r0, lsl r2
+ ldr r1, [r1, lr, lsl #0x2]
+ ands r1, r2, r1
+ moveq r0, #0x0
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+
+ arm_func_start FUN_02094AFC
+FUN_02094AFC:
+ stmdb sp!, {r4-r6,lr}
+ mov r6, r0
+ mov r2, r1, asr #0x4
+ add r2, r1, r2, lsr #0x1b
+ mov r3, r1, lsr #0x1f
+ rsb r1, r3, r1, lsl #0x1b
+ ldr r4, [r6, #0x4]
+ mov r5, r2, asr #0x5
+ cmp r4, r5
+ add r4, r3, r1, ror #0x1b
+ bgt _02094B7C
+ ldr r2, [r6, #0x8]
+ add r1, r5, #0x1
+ cmp r1, r2
+ ble _02094B3C
+ bl FUN_02094EBC
+_02094B3C:
+ cmp r0, #0x0
+ moveq r0, #0x0
+ ldmeqia sp!, {r4-r6,lr}
+ bxeq lr
+ ldr r3, [r6, #0x4]
+ add r2, r5, #0x1
+ cmp r3, r2
+ bge _02094B74
+ mov r1, #0x0
+_02094B60:
+ ldr r0, [r6, #0x0]
+ str r1, [r0, r3, lsl #0x2]
+ add r3, r3, #0x1
+ cmp r3, r2
+ blt _02094B60
+_02094B74:
+ add r0, r5, #0x1
+ str r0, [r6, #0x4]
+_02094B7C:
+ ldr r2, [r6, #0x0]
+ mov r0, #0x1
+ ldr r1, [r2, r5, lsl #0x2]
+ orr r1, r1, r0, lsl r4
+ str r1, [r2, r5, lsl #0x2]
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+
+ arm_func_start FUN_02094B98
+FUN_02094B98:
+ ldr r3, [r0, #0x4]
+ ldr r2, [r1, #0x4]
+ subs r2, r3, r2
+ movne r0, r2
+ bxne lr
+ subs r2, r3, #0x1
+ ldr r12, [r0, #0x0]
+ ldr r3, [r1, #0x0]
+ bmi _02094BE4
+_02094BBC:
+ ldr r1, [r12, r2, lsl #0x2]
+ ldr r0, [r3, r2, lsl #0x2]
+ cmp r1, r0
+ beq _02094BDC
+ cmp r1, r0
+ movhi r0, #0x1
+ mvnls r0, #0x0
+ bx lr
+_02094BDC:
+ subs r2, r2, #0x1
+ bpl _02094BBC
+_02094BE4:
+ mov r0, #0x0
+ bx lr
+
+ arm_func_start FUN_02094BEC
+FUN_02094BEC: ; 0x02094BEC
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ mov r5, r0
+ mov r4, r1
+ bl FUN_02095188
+ add r1, r0, #0x7
+ mov r0, r1, asr #0x2
+ add r0, r1, r0, lsr #0x1d
+ mov r0, r0, asr #0x3
+ cmp r0, #0x0
+ addle sp, sp, #0x4
+ sub r12, r0, #0x1
+ ldmleia sp!, {r4-r5,lr}
+ bxle lr
+_02094C24:
+ mov r3, r12, lsr #0x1f
+ mov r1, r12, asr #0x1
+ rsb r2, r3, r12, lsl #0x1e
+ add r1, r12, r1, lsr #0x1e
+ add r2, r3, r2, ror #0x1e
+ ldr r3, [r5, #0x0]
+ mov r1, r1, asr #0x2
+ ldr r3, [r3, r1, lsl #0x2]
+ mov r1, r2, lsl #0x3
+ mov r1, r3, lsr r1
+ cmp r12, #0x0
+ strb r1, [r4], #0x1
+ sub r12, r12, #0x1
+ bgt _02094C24
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,lr}
+ bx lr
+
+ arm_func_start FUN_02094C68
+FUN_02094C68:
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0x4
+ movs r5, r2
+ mov r7, r0
+ mov r6, r1
+ bne _02094C88
+ bl FUN_02094FE0
+ mov r5, r0
+_02094C88:
+ cmp r5, #0x0
+ addeq sp, sp, #0x4
+ moveq r0, #0x0
+ ldmeqia sp!, {r4-r7,lr}
+ bxeq lr
+ cmp r6, #0x0
+ mov r4, #0x0
+ addeq sp, sp, #0x4
+ moveq r0, r5
+ streq r4, [r5, #0x4]
+ ldmeqia sp!, {r4-r7,lr}
+ bxeq lr
+ add r0, r6, #0x2
+ mov r2, r0, lsl #0x3
+ add r1, r2, #0x1f
+ mov r0, r1, asr #0x4
+ add r0, r1, r0, lsr #0x1b
+ ldr r1, [r5, #0x8]
+ mov r0, r0, asr #0x5
+ cmp r0, r1
+ movle r0, r5
+ ble _02094CF8
+ mov r0, r2, asr #0x4
+ add r0, r2, r0, lsr #0x1b
+ mov r1, r0, asr #0x5
+ mov r0, r5
+ add r1, r1, #0x1
+ bl FUN_02094EBC
+_02094CF8:
+ cmp r0, #0x0
+ addeq sp, sp, #0x4
+ moveq r0, #0x0
+ ldmeqia sp!, {r4-r7,lr}
+ bxeq lr
+ sub r0, r6, #0x1
+ mov r1, r0, lsr #0x2
+ add r12, r1, #0x1
+ cmp r6, #0x0
+ str r12, [r5, #0x4]
+ and r3, r0, #0x3
+ sub r6, r6, #0x1
+ beq _02094D64
+ mov r1, #0x0
+ mov r0, #0x3
+_02094D34:
+ ldrb r2, [r7], #0x1
+ cmp r3, #0x0
+ sub r3, r3, #0x1
+ orr r4, r2, r4, lsl #0x8
+ ldreq r2, [r5, #0x0]
+ subeq r12, r12, #0x1
+ streq r4, [r2, r12, lsl #0x2]
+ moveq r4, r1
+ moveq r3, r0
+ cmp r6, #0x0
+ sub r6, r6, #0x1
+ bne _02094D34
+_02094D64:
+ mov r0, r5
+ bl FUN_02095040
+ mov r0, r5
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r7,lr}
+ bx lr
+
+ arm_func_start FUN_02094D7C
+FUN_02094D7C:
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ mov r4, r0
+ ldr r2, [r4, #0x8]
+ mov r5, r1
+ cmp r2, #0x1
+ bge _02094DA0
+ mov r1, #0x2
+ bl FUN_02094EBC
+_02094DA0:
+ cmp r0, #0x0
+ addeq sp, sp, #0x4
+ moveq r0, #0x0
+ ldmeqia sp!, {r4-r5,lr}
+ bxeq lr
+ mov r0, #0x0
+ str r0, [r4, #0xc]
+ str r0, [r4, #0x4]
+ ldr r0, [r4, #0x0]
+ str r5, [r0, #0x0]
+ ldr r0, [r4, #0x0]
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ movne r0, #0x1
+ strne r0, [r4, #0x4]
+ mov r0, #0x1
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,lr}
+ bx lr
+
+ arm_func_start FUN_02094DEC
+FUN_02094DEC: ; 0x02094DEC
+ stmdb sp!, {r4,lr}
+ mov r4, r0
+ ldr r0, [r4, #0x0]
+ cmp r0, #0x0
+ beq _02094E10
+ ldr r2, [r4, #0x8]
+ mov r1, #0x0
+ mov r2, r2, lsl #0x2
+ bl MI_CpuFill8
+_02094E10:
+ mov r0, #0x0
+ str r0, [r4, #0x4]
+ str r0, [r4, #0xc]
+ ldmia sp!, {r4,lr}
+ bx lr
+
+ arm_func_start FUN_02094E24
+FUN_02094E24:
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ mov r5, r0
+ mov r4, r1
+ cmp r5, r4
+ addeq sp, sp, #0x4
+ ldmeqia sp!, {r4-r5,lr}
+ bxeq lr
+ ldr r1, [r4, #0x4]
+ ldr r2, [r5, #0x8]
+ cmp r1, r2
+ ble _02094E58
+ bl FUN_02094EBC
+_02094E58:
+ cmp r0, #0x0
+ addeq sp, sp, #0x4
+ moveq r0, #0x0
+ ldmeqia sp!, {r4-r5,lr}
+ bxeq lr
+ ldr r2, [r4, #0x4]
+ ldr r0, [r4, #0x0]
+ ldr r1, [r5, #0x0]
+ mov r2, r2, lsl #0x2
+ bl MI_CpuCopy8
+ ldr r0, [r4, #0x4]
+ str r0, [r5, #0x4]
+ ldr r0, [r5, #0x4]
+ cmp r0, #0x0
+ bne _02094EA4
+ ldr r1, [r5, #0x0]
+ cmp r1, #0x0
+ movne r0, #0x0
+ strne r0, [r1, #0x0]
+_02094EA4:
+ ldr r1, [r4, #0xc]
+ mov r0, r5
+ str r1, [r5, #0xc]
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,lr}
+ bx lr
+
+ arm_func_start FUN_02094EBC
+FUN_02094EBC:
+ stmdb sp!, {r4-r6,lr}
+ mov r5, r0
+ ldr r0, [r5, #0x8]
+ mov r4, r1
+ cmp r4, r0
+ ble _02094F30
+ ldr r0, [r5, #0x10]
+ ands r0, r0, #0x2
+ movne r0, #0x0
+ ldmneia sp!, {r4-r6,lr}
+ bxne lr
+ add r0, r4, #0x1
+ mov r0, r0, lsl #0x2
+ bl FUN_020910A4
+ movs r6, r0
+ moveq r0, #0x0
+ ldmeqia sp!, {r4-r6,lr}
+ bxeq lr
+ ldr r0, [r5, #0x0]
+ cmp r0, #0x0
+ beq _02094F28
+ ldr r2, [r5, #0x4]
+ mov r1, r6
+ mov r2, r2, lsl #0x2
+ bl MI_CpuCopy8
+_02094F20: ; 0x02094F20
+ ldr r0, [r5, #0x0]
+ bl FUN_0209105C
+_02094F28:
+ str r6, [r5, #0x0]
+ str r4, [r5, #0x8]
+_02094F30:
+ mov r0, r5
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+
+ arm_func_start FUN_02094F3C
+FUN_02094F3C: ; 0x02094F3C
+ stmdb sp!, {r4-r6,lr}
+ mov r6, r0
+ add r4, r6, #0x4
+ mov r5, #0x0
+_02094F4C:
+ mov r0, r4
+ bl FUN_02095164
+ add r5, r5, #0x1
+ cmp r5, #0xc
+ add r4, r4, #0x14
+ blt _02094F4C
+ ldr r0, [r6, #0x108]
+ ands r0, r0, #0x1
+ ldmeqia sp!, {r4-r6,lr}
+ bxeq lr
+ mov r0, r6
+ bl FUN_0209105C
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+
+ arm_func_start FUN_02094F84
+FUN_02094F84: ; 0x02094F84
+ stmdb sp!, {r4,lr}
+ mov r1, #0x0
+ mov r2, #0x110
+ mov r4, r0
+ bl MI_CpuFill8
+_02094F98: ; 0x02094F98
+ mov r0, #0x0
+ str r0, [r4, #0x0]
+ str r0, [r4, #0x108]
+ ldmia sp!, {r4,lr}
+ bx lr
+
+ arm_func_start FUN_02094FAC
+FUN_02094FAC: ; 0x02094FAC
+ stmdb sp!, {r4,lr}
+ mov r0, #0x110
+ bl FUN_020910A4
+ movs r4, r0
+ moveq r0, #0x0
+ ldmeqia sp!, {r4,lr}
+ bxeq lr
+ bl FUN_02094F84
+ mov r1, #0x1
+ mov r0, r4
+ str r1, [r4, #0x108]
+ ldmia sp!, {r4,lr}
+ bx lr
+
+ arm_func_start FUN_02094FE0
+FUN_02094FE0: ; 0x02094FE0
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ mov r0, #0x14
+ bl FUN_020910A4
+_02094FF0: ; 0x02094FF0
+ cmp r0, #0x0
+ addeq sp, sp, #0x4
+ moveq r0, #0x0
+ ldmeqia sp!, {lr}
+ bxeq lr
+ mov r1, #0x1
+ str r1, [r0, #0x10]
+ mov r1, #0x0
+ str r1, [r0, #0x4]
+ str r1, [r0, #0xc]
+ str r1, [r0, #0x8]
+ str r1, [r0, #0x0]
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+
+ arm_func_start FUN_0209502C
+FUN_0209502C:
+ ldr ip, _0209503C ; =MI_CpuFill8
+ mov r1, #0x0
+ mov r2, #0x14
+ bx r12
+ .balign 4
+_0209503C: .word MI_CpuFill8
+
+ arm_func_start FUN_02095040
+FUN_02095040:
+ ldr r3, [r0, #0x4]
+ cmp r3, #0x0
+ bxle lr
+ ldr r2, [r0, #0x0]
+ sub r1, r3, #0x1
+ cmp r3, #0x0
+ add r3, r2, r1, lsl #0x2
+ bxle lr
+ add r2, r0, #0x4
+_02095064:
+ ldr r1, [r3], #-0x4
+ cmp r1, #0x0
+ bxne lr
+ ldr r1, [r2, #0x0]
+ sub r1, r1, #0x1
+ str r1, [r2, #0x0]
+ ldr r1, [r0, #0x4]
+ cmp r1, #0x0
+ bgt _02095064
+ bx lr
+
+ arm_func_start FUN_0209508C
+FUN_0209508C:
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ mov r5, r0
+ ldr r2, [r5, #0x4]
+ mov r4, r1
+ cmp r2, r4
+ addge sp, sp, #0x4
+ ldmgeia sp!, {r4-r5,lr}
+ bxge lr
+ ldr r2, [r5, #0x8]
+ cmp r4, r2
+ ble _020950C0
+ bl FUN_02094EBC
+_020950C0:
+ ldr r0, [r5, #0x0]
+ cmp r0, #0x0
+ addeq sp, sp, #0x4
+ ldmeqia sp!, {r4-r5,lr}
+ bxeq lr
+ ldr r2, [r5, #0x4]
+ cmp r2, r4
+ addge sp, sp, #0x4
+ ldmgeia sp!, {r4-r5,lr}
+ bxge lr
+ mov r1, #0x0
+_020950EC:
+ ldr r0, [r5, #0x0]
+ str r1, [r0, r2, lsl #0x2]
+ add r2, r2, #0x1
+ cmp r2, r4
+ blt _020950EC
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,lr}
+ bx lr
+
+ arm_func_start FUN_0209510C
+FUN_0209510C:
+ stmdb sp!, {r4,lr}
+ movs r4, r0
+ ldmeqia sp!, {r4,lr}
+ bxeq lr
+ ldr r0, [r4, #0x0]
+ cmp r0, #0x0
+ beq _02095138
+ ldr r1, [r4, #0x10]
+ ands r1, r1, #0x2
+ bne _02095138
+ bl FUN_0209105C
+_02095138:
+ ldr r0, [r4, #0x10]
+ orr r0, r0, #0x8000
+ str r0, [r4, #0x10]
+ ldr r0, [r4, #0x10]
+ ands r0, r0, #0x1
+ ldmeqia sp!, {r4,lr}
+ bxeq lr
+ mov r0, r4
+ bl FUN_0209105C
+ ldmia sp!, {r4,lr}
+ bx lr
+
+ arm_func_start FUN_02095164
+FUN_02095164: ; 0x02095164
+ stmdb sp!, {r4,lr}
+ movs r4, r0
+ ldmeqia sp!, {r4,lr}
+ bxeq lr
+ bl FUN_02094DEC
+ mov r0, r4
+ bl FUN_0209510C
+ ldmia sp!, {r4,lr}
+ bx lr
+
+ arm_func_start FUN_02095188
+FUN_02095188: ; 0x02095188
+ stmdb sp!, {r4,lr}
+ ldr r1, [r0, #0x4]
+ cmp r1, #0x0
+ moveq r0, #0x0
+ ldmeqia sp!, {r4,lr}
+ bxeq lr
+ ldr r0, [r0, #0x0]
+ sub r4, r1, #0x1
+ ldr r0, [r0, r4, lsl #0x2]
+ bl FUN_020951BC
+ add r0, r0, r4, lsl #0x5
+ ldmia sp!, {r4,lr}
+ bx lr
+
+ arm_func_start FUN_020951BC
+FUN_020951BC: ; 0x020951BC
+ mov r1, #0x10000
+ rsb r1, r1, #0x0
+ ands r1, r0, r1
+ beq _020951DC
+ ands r1, r0, #0xff000000
+ movne r2, #0x18
+ moveq r2, #0x10
+ b _020951E8
+_020951DC:
+ ands r1, r0, #0xff00
+ movne r2, #0x8
+ moveq r2, #0x0
+_020951E8:
+ mov r1, r0, lsr r2
+ ands r0, r1, #0xf0
+ ldreq r0, _02095218 ; =0x020FF524
+ ldreqsb r0, [r0, r1]
+ addeq r0, r0, r2
+ bxeq lr
+ ldr r0, _02095218 ; =0x020FF524
+ mov r1, r1, lsr #0x4
+ ldrsb r0, [r0, r1]
+ add r0, r0, r2
+ add r0, r0, #0x4
+ bx lr
+ .balign 4
+_02095218: .word 0x020FF524
+
+ arm_func_start FUN_0209521C
+FUN_0209521C: ; 0x0209521C
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0x4
+ mov r3, #0x0
+ strb r3, [r0, #0x0]
+ cmp r2, #0x10
+ strb r3, [r0, #0x1]
+ movhi r2, #0x10
+ add r0, r0, #0x4
+_0209523C:
+ strb r3, [r0, r3]
+ add r3, r3, #0x1
+ cmp r3, #0x100
+ blt _0209523C
+ mov r6, #0x0
+ mov r7, r6
+ mov r4, r6
+ mov r3, r6
+ and r12, r2, #0xff
+_02095260:
+ ldrb r5, [r0, r4]
+ ldrb lr, [r1, r7]
+ add r2, r7, #0x1
+ and r7, r2, #0xff
+ add r2, r5, lr
+ add r2, r6, r2
+ and r6, r2, #0xff
+ ldrb r2, [r0, r6]
+ add lr, r0, r4
+ add r4, r4, #0x1
+ strb r2, [lr, #0x0]
+ cmp r7, r12
+ moveq r7, r3
+ cmp r4, #0x100
+ strb r5, [r0, r6]
+ blt _02095260
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r7,lr}
+ bx lr
+
+ arm_func_start FUN_020952AC
+FUN_020952AC: ; 0x020952AC
+ stmdb sp!, {r4-r9,lr}
+ ldrb r7, [r0, #0x0]
+ ldrb r6, [r0, #0x1]
+ add r0, r0, #0x4
+ mov lr, #0x1000000
+ add r7, lr, r7, lsl #0x18
+ mov r6, r6, lsl #0x18
+ ldrb r9, [r0, r7, lsr #0x18]
+ subs r2, r2, #0x1
+ bmi _0209530C
+_020952D4:
+ add r6, r6, r9, lsl #0x18
+ subs r2, r2, #0x1
+ ldrb r8, [r0, r6, lsr #0x18]
+ ldrb r5, [r1], #0x1
+ strb r8, [r0, r7, lsr #0x18]
+ strb r9, [r0, r6, lsr #0x18]
+ add r4, r9, r8
+ and r4, r4, #0xff
+ add r7, r7, lr
+ ldrb r4, [r0, r4]
+ ldrb r9, [r0, r7, lsr #0x18]
+ eor r5, r5, r4
+ strb r5, [r3], #0x1
+ bge _020952D4
+_0209530C:
+ sub r7, r7, lr
+ mov r7, r7, lsr #0x18
+ mov r6, r6, lsr #0x18
+ strb r7, [r0, #-0x4]
+ strb r6, [r0, #-0x3]
+ ldmia sp!, {r4-r9,pc}
+_02095324: ; 0x02095324
+ ldr r0, _0209532C ; =0x021C8C84
+ bx lr
+ .balign 4
+_0209532C: .word 0x021C8C84
+
+ arm_func_start FUN_02095330
+FUN_02095330: ; 0x02095330
+ stmdb sp!, {r4,lr}
+ sub sp, sp, #0x8
+ mov r4, r0
+ ldr r3, [r4, #0x8]
+ ldr r2, [r4, #0xc]
+ ldr r1, _020953E4 ; =0x021C8C84
+ str r2, [sp, #0x4]
+ str r3, [sp, #0x0]
+ mov r2, #0x5
+ bl MI_CpuCopy8
+ ldr r1, [sp, #0x0]
+ ldr r2, [r4, #0x4]
+ ldr r0, [sp, #0x4]
+ mov r2, r2, lsr #0x8
+ mov r12, r1, lsr #0x5
+ mov r3, r0, lsr #0x5
+ orr r12, r12, r0, lsl #0x1b
+ and lr, r2, #0x7
+ and r0, r1, #0x1f
+ orr lr, lr, r0, lsl #0x3
+ ldr r2, _020953E4 ; =0x021C8C84
+ ldr r1, _020953E8 ; =0x021C8C8A
+ strb lr, [r2, #0x5]
+ add r0, sp, #0x0
+ str r12, [sp, #0x0]
+ str r3, [sp, #0x4]
+ mov r2, #0x4
+ bl MI_CpuCopy8
+ ldrh r0, [r4, #0x10]
+ ldr r1, [sp, #0x4]
+ ldr r3, _020953E4 ; =0x021C8C84
+ and r1, r1, #0x3f
+ and r0, r0, #0x3
+ orr r0, r1, r0, lsl #0x6
+ strb r0, [r3, #0xa]
+ ldrh r2, [r4, #0x10]
+ add r0, r4, #0x12
+ ldr r1, _020953EC ; =0x021C8C90
+ mov r4, r2, asr #0x2
+ mov r2, #0x2
+ strb r4, [r3, #0xb]
+ bl MI_CpuCopy8
+ ldr r0, _020953E4 ; =0x021C8C84
+ add sp, sp, #0x8
+ ldmia sp!, {r4,pc}
+ .balign 4
+_020953E4: .word 0x021C8C84
+_020953E8: .word 0x021C8C8A
+_020953EC: .word 0x021C8C90
+
+ arm_func_start FUN_020953F0
+FUN_020953F0: ; 0x020953F0
+ ldr r3, _02095420 ; =0x021C8C78
+ and r12, r1, #0xff
+ ldr r0, _02095424 ; =0x021C8C7C
+ mov r1, #0x1
+ strh r12, [r3, #0x0]
+ str r1, [r0, #0x0]
+ cmp r2, #0x0
+ movne r0, #0xff
+ strneh r0, [r3, #0x0]
+ ldr r0, _02095420 ; =0x021C8C78
+ ldrh r0, [r0, #0x0]
+ bx lr
+ .balign 4
+_02095420: .word 0x021C8C78
+_02095424: .word 0x021C8C7C
+
+ arm_func_start FUN_02095428
+FUN_02095428:
+ stmdb sp!, {r4-r6,lr}
+ mov r5, #0x4
+ mov r4, #0x1
+_02095434:
+ mov r0, r5
+ mov r1, r4
+ bl PXI_IsCallbackReady
+_02095440: ; 0x02095440
+ cmp r0, #0x0
+ beq _02095434
+ ldr r1, _02095490 ; =FUN_020953F0
+ mov r0, #0x4
+ bl PXI_SetFifoRecvCallback
+ mov r4, #0x40000
+ mov r6, #0x7
+ mov r5, #0x0
+_02095460:
+ mov r0, r6
+ mov r1, r5
+ mov r2, r5
+ mov r3, r5
+ bl FUN_020955F4
+ cmp r0, #0x1
+ beq _02095488
+ mov r0, r4
+ blx SVC_WaitByLoop
+ b _02095460
+_02095488:
+ mov r0, #0x1
+ ldmia sp!, {r4-r6,pc}
+ .balign 4
+_02095490: .word FUN_020953F0
+
+ arm_func_start FUN_02095494
+FUN_02095494:
+ stmdb sp!, {r4-r6,lr}
+ mov r5, r2
+ mov r4, r3
+ mov r6, r0
+ mov r0, r1
+ mov r1, r5
+ mov r2, r4
+ bl FUN_0209555C
+_020954B4: ; 0x020954B4
+ cmp r0, #0x0
+ moveq r0, #0x0
+ ldmeqia sp!, {r4-r6,pc}
+_020954C0: ; 0x020954C0
+ mov r0, r6
+ mov r1, r4
+ mov r2, r5
+ bl memcmp
+_020954D0: ; 0x020954D0
+ cmp r0, #0x0
+ moveq r0, #0x1
+ movne r0, #0x0
+ ldmia sp!, {r4-r6,pc}
+
+ arm_func_start FUN_020954E0
+FUN_020954E0: ; 0x020954E0
+ stmdb sp!, {r4-r8,lr}
+ mov r8, r0
+ mov r7, r1
+ mov r6, r2
+ mov r5, #0x4
+ mov r4, #0x1
+_020954F8:
+ mov r0, r5
+ mov r1, r4
+ bl PXI_IsCallbackReady
+_02095504: ; 0x02095504
+ cmp r0, #0x0
+ beq _020954F8
+ ldr r1, _02095558 ; =FUN_020953F0
+ mov r0, #0x4
+ bl PXI_SetFifoRecvCallback
+ mov r0, r6
+ mov r1, r7
+ bl DC_StoreRange
+ mov r4, #0x40000
+ mov r5, #0x2
+_0209552C:
+ mov r0, r5
+ mov r1, r8
+ mov r2, r7
+ mov r3, r6
+ bl FUN_020955F4
+ cmp r0, #0x1
+ ldmeqia sp!, {r4-r8,pc}
+_02095548: ; 0x02095548
+ mov r0, r4
+ blx SVC_WaitByLoop
+ b _0209552C
+_02095554: ; 0x02095554
+ ldmia sp!, {r4-r8,pc}
+ .balign 4
+_02095558: .word FUN_020953F0
+
+ arm_func_start FUN_0209555C
+FUN_0209555C:
+ stmdb sp!, {r4-r9,lr}
+ sub sp, sp, #0x4
+ mov r4, r2
+ mov r6, r0
+ mov r0, r4
+ mov r5, r1
+ bl DC_InvalidateRange
+ mov r8, #0x4
+ mov r7, #0x1
+_02095580:
+ mov r0, r8
+ mov r1, r7
+ bl PXI_IsCallbackReady
+_0209558C: ; 0x0209558C
+ cmp r0, #0x0
+ beq _02095580
+ ldr r1, _020955F0 ; =FUN_020953F0
+ mov r0, #0x4
+ bl PXI_SetFifoRecvCallback
+ mov r0, r5, lsl #0x10
+ mov r8, r0, lsr #0x10
+ mov r7, #0x40000
+ mov r9, #0x1
+_020955B0:
+ mov r0, r9
+ mov r1, r6
+ mov r2, r8
+ mov r3, r4
+ bl FUN_020955F4
+ cmp r0, #0x1
+ beq _020955D8
+ mov r0, r7
+ blx SVC_WaitByLoop
+ b _020955B0
+_020955D8:
+ mov r0, r4
+ mov r1, r5
+ bl DC_InvalidateRange
+ mov r0, #0x1
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r9,pc}
+ .balign 4
+_020955F0: .word FUN_020953F0
+
+ arm_func_start FUN_020955F4
+FUN_020955F4: ; 0x020955F4
+ stmdb sp!, {r4-r11,lr}
+ sub sp, sp, #0xc4
+ ldr ip, _02095AAC ; =0x0000FFFF
+ ldr sl, _02095AB0 ; =0x021C8CA0
+ and r8, r2, r12
+ and r7, r1, r12
+ mov r5, r1, lsr #0x10
+ mov r4, r3, lsr #0x10
+ and r1, r3, r12
+ orr r3, r8, #0x30000
+ str r3, [sp, #0xc]
+ ldr r3, _02095AB4 ; =0x01050000
+ orr r2, r2, #0x20000
+ orr r3, r1, r3
+ str r3, [sp, #0x14]
+ orr r1, r1, #0x1040000
+ mov r9, r0
+ and r0, r5, #0xff
+ str r2, [sp, #0x1c]
+ str r1, [sp, #0x24]
+ ldr r1, _02095AB8 ; =0x02002200
+ mov r8, #0x0
+ orr r2, r4, #0x40000
+ orr r1, r1, r10, lsr #0x18
+ str r1, [sp, #0x28]
+ and r1, r12, r10, lsr #0x8
+ orr r1, r1, #0x10000
+ ldr r3, _02095ABC ; =0x02002300
+ str r2, [sp, #0x10]
+ orr r2, r0, r3
+ str r2, [sp, #0x8]
+ orr r2, r4, #0x30000
+ str r2, [sp, #0x20]
+ ldr r2, _02095AC0 ; =0x02002500
+ mov r6, r10, lsl #0x8
+ str r1, [sp, #0x2c]
+ and r1, r6, #0xff00
+ orr r0, r0, r2
+ ldr r3, _02095AC4 ; =0x01020000
+ str r0, [sp, #0x18]
+ orr r0, r1, r3
+ str r0, [sp, #0x30]
+ mov r0, #0x20000
+ str r0, [sp, #0x40]
+ mov r0, #0x5
+ str r0, [sp, #0xac]
+ mov r0, #0x3
+ str r0, [sp, #0xb0]
+ mov r0, #0x6
+ str r0, [sp, #0xb8]
+ mov r0, #0x4000
+ orr r7, r7, #0x10000
+ str r8, [sp, #0xb4]
+ mov r4, #0x1
+ str r8, [sp, #0xa8]
+ mov r5, #0x4
+ str r8, [sp, #0xa4]
+ str r8, [sp, #0xa0]
+ str r8, [sp, #0x90]
+ str r8, [sp, #0x98]
+ str r8, [sp, #0x9c]
+ str r8, [sp, #0x94]
+ str r8, [sp, #0x8c]
+ str r8, [sp, #0x6c]
+ str r8, [sp, #0x74]
+ str r8, [sp, #0x7c]
+ str r8, [sp, #0x84]
+ str r8, [sp, #0x88]
+ str r8, [sp, #0x80]
+ str r8, [sp, #0x78]
+ str r8, [sp, #0x70]
+ str r8, [sp, #0x68]
+ str r8, [sp, #0x64]
+ str r8, [sp, #0x38]
+ str r8, [sp, #0x44]
+ str r8, [sp, #0x4c]
+ str r8, [sp, #0x54]
+ str r8, [sp, #0x5c]
+ str r8, [sp, #0x60]
+ str r8, [sp, #0x58]
+ str r8, [sp, #0x50]
+ str r8, [sp, #0x48]
+ str r8, [sp, #0x3c]
+ str r8, [sp, #0x34]
+ mov r6, r8
+ str r0, [sp, #0xbc]
+_0209574C:
+ cmp r8, #0x0
+ bne _02095988
+ ldr r0, _02095AC8 ; =0x021C8C7C
+ cmp r9, #0x7
+ str r6, [r0, #0x0]
+ addls pc, pc, r9, lsl #0x2
+ b _0209574C
+_02095768:
+ b _0209574C
+_0209576C:
+ b _02095788
+_02095770:
+ b _02095834
+_02095774:
+ b _02095854
+_02095778:
+ b _020958F0
+_0209577C:
+ b _020958F0
+_02095780:
+ b _02095948
+_02095784:
+ b _02095968
+_02095788:
+ ldr r1, [sp, #0x8]
+ mov r0, r5
+ mov r2, r6
+ bl PXI_SendWordByFifo
+_02095798: ; 0x02095798
+ cmp r0, #0x0
+ ldrlt r8, [sp, #0x34]
+ blt _0209574C
+ ldr r2, [sp, #0x38]
+ mov r0, r5
+ mov r1, r7
+ bl PXI_SendWordByFifo
+_020957B4: ; 0x020957B4
+ cmp r0, #0x0
+ ldrlt r8, [sp, #0x3c]
+ blt _0209574C
+ ldr r1, [sp, #0x40]
+ ldr r2, [sp, #0x44]
+ mov r0, r5
+ bl PXI_SendWordByFifo
+_020957D0: ; 0x020957D0
+ cmp r0, #0x0
+ ldrlt r8, [sp, #0x48]
+ blt _0209574C
+ ldr r1, [sp, #0xc]
+ ldr r2, [sp, #0x4c]
+ mov r0, r5
+ bl PXI_SendWordByFifo
+_020957EC: ; 0x020957EC
+ cmp r0, #0x0
+ ldrlt r8, [sp, #0x50]
+ blt _0209574C
+ ldr r1, [sp, #0x10]
+ ldr r2, [sp, #0x54]
+ mov r0, r5
+ bl PXI_SendWordByFifo
+_02095808: ; 0x02095808
+ cmp r0, #0x0
+ ldrlt r8, [sp, #0x58]
+ blt _0209574C
+ ldr r1, [sp, #0x14]
+ ldr r2, [sp, #0x5c]
+ mov r0, r5
+ bl PXI_SendWordByFifo
+_02095824: ; 0x02095824
+ cmp r0, #0x0
+ ldrlt r8, [sp, #0x60]
+ movge r8, r4
+ b _0209574C
+_02095834:
+ ldr r1, _02095ACC ; =0x03002000
+ mov r0, r5
+ mov r2, r6
+ bl PXI_SendWordByFifo
+_02095844: ; 0x02095844
+ cmp r0, #0x0
+ movge r8, r4
+ ldrlt r8, [sp, #0x64]
+ b _0209574C
+_02095854:
+ ldr r1, [sp, #0x18]
+ mov r0, r5
+ mov r2, r6
+ bl PXI_SendWordByFifo
+_02095864: ; 0x02095864
+ cmp r0, #0x0
+ ldrlt r8, [sp, #0x68]
+ blt _020958E0
+ ldr r2, [sp, #0x6c]
+ mov r0, r5
+ mov r1, r7
+ bl PXI_SendWordByFifo
+_02095880: ; 0x02095880
+ cmp r0, #0x0
+ ldrlt r8, [sp, #0x70]
+ blt _020958E0
+ ldr r1, [sp, #0x1c]
+ ldr r2, [sp, #0x74]
+ mov r0, r5
+ bl PXI_SendWordByFifo
+_0209589C: ; 0x0209589C
+ cmp r0, #0x0
+ ldrlt r8, [sp, #0x78]
+ blt _020958E0
+ ldr r1, [sp, #0x20]
+ ldr r2, [sp, #0x7c]
+ mov r0, r5
+ bl PXI_SendWordByFifo
+_020958B8: ; 0x020958B8
+ cmp r0, #0x0
+ ldrlt r8, [sp, #0x80]
+ blt _020958E0
+ ldr r1, [sp, #0x24]
+ ldr r2, [sp, #0x84]
+ mov r0, r5
+ bl PXI_SendWordByFifo
+_020958D4: ; 0x020958D4
+ cmp r0, #0x0
+ ldrlt r8, [sp, #0x88]
+ movge r8, r4
+_020958E0:
+ bl OS_GetTick
+_020958E4: ; 0x020958E4
+ str r0, [sp, #0x0]
+ mov r11, r1
+ b _0209574C
+_020958F0:
+ ldr r1, [sp, #0x28]
+ mov r0, r5
+ mov r2, r6
+ bl PXI_SendWordByFifo
+_02095900: ; 0x02095900
+ cmp r0, #0x0
+ ldrlt r8, [sp, #0x8c]
+ blt _0209574C
+ ldr r1, [sp, #0x2c]
+ ldr r2, [sp, #0x90]
+ mov r0, r5
+ bl PXI_SendWordByFifo
+_0209591C: ; 0x0209591C
+ cmp r0, #0x0
+ ldrlt r8, [sp, #0x94]
+ blt _0209574C
+ ldr r1, [sp, #0x30]
+ ldr r2, [sp, #0x98]
+ mov r0, r5
+ bl PXI_SendWordByFifo
+_02095938: ; 0x02095938
+ cmp r0, #0x0
+ ldrlt r8, [sp, #0x9c]
+ movge r8, r4
+ b _0209574C
+_02095948:
+ ldr r1, _02095AD0 ; =0x03002D00
+ mov r0, r5
+ mov r2, r6
+ bl PXI_SendWordByFifo
+_02095958: ; 0x02095958
+ cmp r0, #0x0
+ movge r8, r4
+ ldrlt r8, [sp, #0xa0]
+ b _0209574C
+_02095968:
+ ldr r1, _02095AD4 ; =0x03002100
+ mov r0, r5
+ mov r2, r6
+ bl PXI_SendWordByFifo
+_02095978: ; 0x02095978
+ cmp r0, #0x0
+ movge r8, r4
+ ldrlt r8, [sp, #0xa4]
+ b _0209574C
+_02095988:
+ ldr r0, _02095AC8 ; =0x021C8C7C
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x1
+ bne _0209574C
+ ldr r0, _02095AD8 ; =0x021C8C78
+ ldr r8, [sp, #0xa8]
+ ldrh r0, [r0, #0x0]
+ cmp r0, #0x0
+ bne _02095AA0
+ cmp r9, #0x7
+ addls pc, pc, r9, lsl #0x2
+ b _0209574C
+_020959B8: ; 0x020959B8
+ b _0209574C
+_020959BC: ; 0x020959BC
+ b _020959D8
+_020959C0: ; 0x020959C0
+ b _020959E4
+_020959C4: ; 0x020959C4
+ b _020959EC
+_020959C8: ; 0x020959C8
+ b _020959F4
+_020959CC: ; 0x020959CC
+ b _020959F4
+_020959D0: ; 0x020959D0
+ b _02095A88
+_020959D4: ; 0x020959D4
+ b _02095A94
+_020959D8:
+ add sp, sp, #0xc4
+ mov r0, #0x1
+ ldmia sp!, {r4-r11,pc}
+_020959E4:
+ mov r9, r5
+ b _0209574C
+_020959EC:
+ ldr r9, [sp, #0xac]
+ b _0209574C
+_020959F4:
+ mov r0, r10
+ mov r1, r4
+ bl DC_InvalidateRange
+ cmp r9, #0x4
+ bne _02095A24
+ ldrb r0, [r10, #0x0]
+ ands r0, r0, #0x2
+ ldrne r9, [sp, #0xb0]
+ bne _0209574C
+ add sp, sp, #0xc4
+ mov r0, #0x0
+ ldmia sp!, {r4-r11,pc}
+_02095A24:
+ ldrb r1, [r10, #0x0]
+ ands r0, r1, #0x1
+ addeq sp, sp, #0xc4
+ moveq r0, #0x1
+ ldmeqia sp!, {r4-r11,pc}
+_02095A38: ; 0x02095A38
+ ands r0, r1, #0x20
+ bne _02095A74
+ bl OS_GetTick
+ ldr r2, [sp, #0x0]
+ ldr r3, [sp, #0xb4]
+ subs r2, r0, r2
+ sbc r0, r1, r11
+ mov r1, r0, lsl #0x6
+ orr r1, r1, r2, lsr #0x1a
+ mov r0, r2, lsl #0x6
+ ldr r2, _02095ADC ; =0x000082EA
+ bl _ll_udiv
+_02095A68: ; 0x02095A68
+ cmp r1, #0x0
+ cmpeq r0, #0xfa0
+ bls _02095A7C
+_02095A74:
+ ldr r9, [sp, #0xb8]
+ b _0209574C
+_02095A7C:
+ ldr r0, [sp, #0xbc]
+ blx SVC_WaitByLoop
+ b _0209574C
+_02095A88:
+ add sp, sp, #0xc4
+ mov r0, r8
+ ldmia sp!, {r4-r11,pc}
+_02095A94:
+ add sp, sp, #0xc4
+ mov r0, #0x1
+ ldmia sp!, {r4-r11,pc}
+_02095AA0:
+ mov r0, r8
+ add sp, sp, #0xc4
+ ldmia sp!, {r4-r11,pc}
+ .balign 4
+_02095AAC: .word 0x0000FFFF
+_02095AB0: .word 0x021C8CA0
+_02095AB4: .word 0x01050000
+_02095AB8: .word 0x02002200
+_02095ABC: .word 0x02002300
+_02095AC0: .word 0x02002500
+_02095AC4: .word 0x01020000
+_02095AC8: .word 0x021C8C7C
+_02095ACC: .word 0x03002000
+_02095AD0: .word 0x03002D00
+_02095AD4: .word 0x03002100
+_02095AD8: .word 0x021C8C78
+_02095ADC: .word 0x000082EA
+
+ arm_func_start FUN_02095AE0
+FUN_02095AE0:
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x7f
+ moveq r0, #0x0
+ bxeq lr
+ cmp r0, #0x1
+ movcc r0, #0x0
+ bxcc lr
+ cmp r0, #0xdf
+ movls r0, #0x1
+ movhi r0, #0x0
+ bx lr
+
+ arm_func_start FUN_02095B0C
+FUN_02095B0C:
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0xc
+ mov r5, r0
+ mov r4, r1
+ bl FUN_02095AE0
+_02095B20: ; 0x02095B20
+ cmp r0, #0x0
+ addeq sp, sp, #0xc
+ moveq r0, #0x0
+ ldmeqia sp!, {r4-r5,pc}
+_02095B30: ; 0x02095B30
+ add r1, sp, #0x0
+ mov r0, r5
+ mov r2, #0x4
+ bl MI_CpuCopy8
+ add r1, sp, #0x4
+ mov r0, r4
+ mov r2, #0x4
+ bl MI_CpuCopy8
+ ldr r3, [sp, #0x4]
+ ldr r2, [sp, #0x0]
+ mvn r0, #0x1
+ orr r1, r2, r3
+ cmp r1, r0
+ addeq sp, sp, #0xc
+ moveq r0, #0x0
+ ldmeqia sp!, {r4-r5,pc}
+_02095B70: ; 0x02095B70
+ mvn r0, r3
+ ands r0, r2, r0
+ movne r0, #0x1
+ moveq r0, #0x0
+ add sp, sp, #0xc
+ ldmia sp!, {r4-r5,pc}
+
+ arm_func_start FUN_02095B88
+FUN_02095B88:
+ mov r2, #0x0
+_02095B8C:
+ ldrb r1, [r0, r2]
+ cmp r1, #0x0
+ movne r0, #0x1
+ bxne lr
+ add r2, r2, #0x1
+ cmp r2, #0x20
+ blt _02095B8C
+ mov r0, #0x0
+ bx lr
+
+ arm_func_start FUN_02095BB0
+FUN_02095BB0: ; 0x02095BB0
+ mvn r2, #0x0
+ mov r12, #0x0
+ eor r3, r2, r2, lsr r0
+ mov r2, r12
+_02095BC0:
+ rsb r0, r2, #0x18
+ mov r0, r3, lsr r0
+ strb r0, [r1, r12]
+ add r12, r12, #0x1
+ cmp r12, #0x4
+ add r2, r2, #0x8
+ blt _02095BC0
+ bx lr
+
+ arm_func_start FUN_02095BE0
+FUN_02095BE0: ; 0x02095BE0
+ stmdb sp!, {r4,lr}
+ mov lr, #0x0
+ mov r4, lr
+ mov r2, lr
+_02095BF0:
+ ldrb r3, [r0, lr]
+ mov r12, r2
+_02095BF8:
+ mov r1, r3, asr r12
+ ands r1, r1, #0x1
+ add r12, r12, #0x1
+ addne r4, r4, #0x1
+ cmp r12, #0x8
+ blt _02095BF8
+ add lr, lr, #0x1
+ cmp lr, #0x4
+ blt _02095BF0
+ and r0, r4, #0xff
+ ldmia sp!, {r4,pc}
+
+ arm_func_start FUN_02095C24
+FUN_02095C24: ; 0x02095C24
+ ldr ip, _02095C34 ; =MI_CpuCopy8
+ ldr r1, _02095C38 ; =0x021C8C84
+ mov r2, #0xe
+ bx r12
+ .balign 4
+_02095C34: .word MI_CpuCopy8
+_02095C38: .word 0x021C8C84
+
+ arm_func_start FUN_02095C3C
+FUN_02095C3C:
+ stmdb sp!, {r4-r11,lr}
+ sub sp, sp, #0x4
+ ldr r1, _02095CD8 ; =0x021C8C80
+ mov r10, r0
+ ldr r8, [r1, #0x0]
+ mov r7, r10
+ mov r9, #0x0
+ add r4, r10, #0x400
+ add r6, r10, #0x500
+ mov r5, #0x100
+ mov r11, #0xfe
+_02095C68:
+ mov r0, r6
+ mov r1, r7
+ mov r2, r11
+ bl MATH_CalcCRC16
+ add r1, r10, r9, lsl #0x8
+ strh r0, [r1, #0xfe]
+_02095C80:
+ mov r0, r8
+ mov r1, r5
+ mov r2, r7
+ bl FUN_020954E0
+ mov r0, r7
+ mov r1, r8
+ mov r2, r5
+ mov r3, r4
+ bl FUN_02095494
+_02095CA4: ; 0x02095CA4
+ cmp r0, #0x0
+ beq _02095C80
+ add r9, r9, #0x1
+ cmp r9, #0x4
+ add r7, r7, #0x100
+ add r8, r8, #0x100
+ blt _02095C68
+ bl FUN_02095428
+_02095CC4: ; 0x02095CC4
+ cmp r0, #0x0
+ movne r0, #0x1
+ moveq r0, #0x0
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r11,pc}
+ .balign 4
+_02095CD8: .word 0x021C8C80
+
+ arm_func_start FUN_02095CDC
+FUN_02095CDC: ; 0x02095CDC
+ stmdb sp!, {r4-r9,lr}
+ sub sp, sp, #0x4
+ ldr r3, _02095D64 ; =0x021C8C80
+ mov r4, r0
+ ldr r6, [r3, #0x0]
+ mov r9, r1
+ mov r8, r2
+ mov r7, #0x0
+ mov r5, #0x100
+_02095D00:
+ ldr r0, [r9, r7, lsl #0x2]
+ cmp r0, #0x0
+ beq _02095D38
+_02095D0C:
+ mov r0, r6
+ mov r1, r5
+ mov r2, r4
+ bl FUN_020954E0
+ mov r0, r4
+ mov r1, r6
+ mov r2, r5
+ mov r3, r8
+ bl FUN_02095494
+_02095D30: ; 0x02095D30
+ cmp r0, #0x0
+ beq _02095D0C
+_02095D38:
+ add r7, r7, #0x1
+ cmp r7, #0x4
+ add r4, r4, #0x100
+ add r6, r6, #0x100
+ blt _02095D00
+ bl FUN_02095428
+_02095D50: ; 0x02095D50
+ cmp r0, #0x0
+ movne r0, #0x1
+ moveq r0, #0x0
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r9,pc}
+ .balign 4
+_02095D64: .word 0x021C8C80
+
+ arm_func_start FUN_02095D68
+FUN_02095D68:
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldr r1, _02095D98 ; =0x021C8C80
+ mov r2, r0
+ ldr r0, [r1, #0x0]
+ mov r1, #0x400
+ bl FUN_0209555C
+_02095D84: ; 0x02095D84
+ cmp r0, #0x0
+ movne r0, #0x1
+ moveq r0, #0x0
+ add sp, sp, #0x4
+ ldmia sp!, {pc}
+ .balign 4
+_02095D98: .word 0x021C8C80
+
+ arm_func_start FUN_02095D9C
+FUN_02095D9C:
+ stmdb sp!, {r4,lr}
+ mov r4, r0
+ mov r0, #0x20
+ mov r1, r0
+ mov r2, r4
+ bl FUN_0209555C
+_02095DB4: ; 0x02095DB4
+ cmp r0, #0x0
+ moveq r0, #0x0
+ ldmeqia sp!, {r4,pc}
+_02095DC0: ; 0x02095DC0
+ ldrh r2, [r4, #0x0]
+ ldr r1, _02095DDC ; =0x021C8C80
+ mov r0, #0x1
+ mov r2, r2, lsl #0x3
+ sub r2, r2, #0x400
+ str r2, [r1, #0x0]
+ ldmia sp!, {r4,pc}
+ .balign 4
+_02095DDC: .word 0x021C8C80
+
+ arm_func_start FUN_02095DE0
+FUN_02095DE0:
+ stmdb sp!, {r4-r11,lr}
+ sub sp, sp, #0x4
+ ldr r2, _02095EBC ; =0x021C8C80
+ mov r10, r1
+ ldr r8, [r2, #0x0]
+ bl FUN_02095330
+ ldr r1, _02095EC0 ; =0x0000A001
+ add r0, r10, #0x200
+ bl MATHi_CRC16InitTableRev
+ mov r9, #0x0
+ add r4, r10, #0x100
+ add r6, r10, #0xf0
+ mov r7, #0x100
+ mov r5, #0xe
+ mov r11, #0xfe
+_02095E1C:
+ mov r0, r8
+ mov r1, r7
+ mov r2, r10
+ bl FUN_0209555C
+_02095E2C: ; 0x02095E2C
+ cmp r0, #0x0
+ bne _02095E44
+ bl OS_Terminate
+ add sp, sp, #0x4
+ mov r0, #0x0
+ ldmia sp!, {r4-r11,pc}
+_02095E44:
+ ldr r0, _02095EC4 ; =0x021C8C84
+ mov r1, r6
+ mov r2, r5
+ bl MI_CpuCopy8
+ mov r1, r10
+ mov r2, r11
+ add r0, r10, #0x200
+ bl MATH_CalcCRC16
+ strh r0, [r10, #0xfe]
+_02095E68:
+ mov r0, r8
+ mov r1, r7
+ mov r2, r10
+ bl FUN_020954E0
+ mov r0, r10
+ mov r1, r8
+ mov r2, r7
+ mov r3, r4
+ bl FUN_02095494
+_02095E8C: ; 0x02095E8C
+ cmp r0, #0x0
+ beq _02095E68
+ add r9, r9, #0x1
+ cmp r9, #0x2
+ add r8, r8, #0x100
+ blt _02095E1C
+ bl FUN_02095428
+_02095EA8: ; 0x02095EA8
+ cmp r0, #0x0
+ movne r0, #0x1
+ moveq r0, #0x0
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r11,pc}
+ .balign 4
+_02095EBC: .word 0x021C8C80
+_02095EC0: .word 0x0000A001
+_02095EC4: .word 0x021C8C84
+
+ arm_func_start FUN_02095EC8
+FUN_02095EC8:
+ stmdb sp!, {r4,lr}
+ mov r4, r0
+ ldr r0, _02095F90 ; =0x021C8C84
+ mov r1, r4
+ mov r2, #0x6
+ bl MI_CpuCopy8
+ ldr r3, [r4, #0x0]
+ mvn r0, #0x0
+ ldr r2, [r4, #0x4]
+ ldr r1, _02095F94 ; =0x000007FF
+ and r0, r3, r0
+ str r0, [r4, #0x0]
+ and r1, r2, r1
+ ldr r0, _02095F98 ; =0x021C8C89
+ str r1, [r4, #0x4]
+ add r1, r4, #0x8
+ mov r2, #0x6
+ bl MI_CpuCopy8
+ add r12, r4, #0x8
+ ldr r1, [r4, #0x8]
+ ldr r0, [r12, #0x4]
+ mov r1, r1, lsr #0x3
+ orr r1, r1, r0, lsl #0x1d
+ str r1, [r4, #0x8]
+ mov r0, r0, lsr #0x3
+ str r0, [r12, #0x4]
+ ldr r3, [r4, #0x8]
+ mvn r0, #0x0
+ ldr r2, [r12, #0x4]
+ ldr r1, _02095F94 ; =0x000007FF
+ and r0, r3, r0
+ str r0, [r4, #0x8]
+ and r1, r2, r1
+ ldr r0, _02095F9C ; =0x021C8C8E
+ str r1, [r12, #0x4]
+ add r1, r4, #0x10
+ mov r2, #0x2
+ bl MI_CpuCopy8
+ ldrh r1, [r4, #0x10]
+ ldr r3, _02095FA0 ; =0x000003FF
+ ldr r0, _02095FA4 ; =0x021C8C90
+ mov r1, r1, asr #0x6
+ strh r1, [r4, #0x10]
+ ldrh r12, [r4, #0x10]
+ add r1, r4, #0x12
+ mov r2, #0x2
+ and r3, r12, r3
+ strh r3, [r4, #0x10]
+ bl MI_CpuCopy8
+ ldmia sp!, {r4,pc}
+ .balign 4
+_02095F90: .word 0x021C8C84
+_02095F94: .word 0x000007FF
+_02095F98: .word 0x021C8C89
+_02095F9C: .word 0x021C8C8E
+_02095FA0: .word 0x000003FF
+_02095FA4: .word 0x021C8C90
+
+ arm_func_start FUN_02095FA8
+FUN_02095FA8: ; 0x02095FA8
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldr r1, _02095FD8 ; =0x021C8C80
+ mov r2, r0
+ ldr r0, [r1, #0x0]
+ mov r1, #0x300
+ bl FUN_0209555C
+_02095FC4: ; 0x02095FC4
+ cmp r0, #0x0
+ movne r0, #0x1
+ moveq r0, #0x0
+ add sp, sp, #0x4
+ ldmia sp!, {pc}
+ .balign 4
+_02095FD8: .word 0x021C8C80
+
+ arm_func_start FUN_02095FDC
+FUN_02095FDC: ; 0x02095FDC
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ mov r5, r0
+ mov r4, r1
+ add r1, r5, r4, lsl #0x8
+ mov r0, #0x0
+ mov r2, #0x100
+ bl MIi_CpuClear16
+ add r0, r5, r4, lsl #0x8
+ mov r1, #0xff
+ strb r1, [r0, #0xe7]
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,pc}
+
+ arm_func_start FUN_02096010
+FUN_02096010: ; 0x02096010
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0x14
+ mov r7, r0
+ mov r1, r7
+ mov r0, #0x0
+ mov r2, #0x400
+ bl MIi_CpuClear16
+ mov r2, #0x0
+ mov r1, #0xff
+_02096034:
+ add r0, r7, r2, lsl #0x8
+ add r2, r2, #0x1
+ strb r1, [r0, #0xe7]
+ cmp r2, #0x3
+ blt _02096034
+ add r0, sp, #0x0
+ bl FUN_020967A4
+_02096050: ; 0x02096050
+ add r0, sp, #0x0
+ bl FUN_02095330
+ mov r6, r0
+ mov r5, #0x0
+ mov r4, #0xe
+_02096064:
+ mov r0, r6
+ mov r2, r4
+ add r1, r7, #0xf0
+ bl MI_CpuCopy8
+ add r5, r5, #0x1
+ cmp r5, #0x2
+ add r7, r7, #0x100
+ blt _02096064
+ mov r0, #0x0
+ add sp, sp, #0x14
+ ldmia sp!, {r4-r7,pc}
+
+ arm_func_start FUN_02096090
+FUN_02096090:
+ stmdb sp!, {r4,lr}
+ sub sp, sp, #0x8
+ mov r4, r0
+ ldrb r0, [r4, #0xe7]
+ cmp r0, #0xff
+ addeq sp, sp, #0x8
+ moveq r0, #0x1
+ ldmeqia sp!, {r4,pc}
+_020960B0: ; 0x020960B0
+ cmp r0, #0x2
+ addhi sp, sp, #0x8
+ movhi r0, #0x0
+ ldmhiia sp!, {r4,pc}
+_020960C0: ; 0x020960C0
+ add r0, r4, #0x40
+ bl FUN_02095B88
+_020960C8: ; 0x020960C8
+ cmp r0, #0x0
+ addeq sp, sp, #0x8
+ moveq r0, #0x0
+ ldmeqia sp!, {r4,pc}
+_020960D8: ; 0x020960D8
+ ldr r1, _0209618C ; =0x020FF574
+ add r0, r4, #0xc0
+ mov r2, #0x4
+ bl memcmp
+_020960E8: ; 0x020960E8
+ cmp r0, #0x0
+ beq _02096140
+ add r0, r4, #0xc4
+ bl FUN_02095AE0
+_020960F8: ; 0x020960F8
+ cmp r0, #0x0
+ addeq sp, sp, #0x8
+ moveq r0, #0x0
+ ldmeqia sp!, {r4,pc}
+_02096108: ; 0x02096108
+ ldrb r0, [r4, #0xd0]
+ cmp r0, #0x20
+ addhi sp, sp, #0x8
+ movhi r0, #0x0
+ ldmhiia sp!, {r4,pc}
+_0209611C: ; 0x0209611C
+ add r1, sp, #0x0
+ bl FUN_02095BB0
+ add r1, sp, #0x0
+ add r0, r4, #0xc0
+ bl FUN_02095B0C
+_02096130: ; 0x02096130
+ cmp r0, #0x0
+ addeq sp, sp, #0x8
+ moveq r0, #0x0
+ ldmeqia sp!, {r4,pc}
+_02096140:
+ ldr r1, _0209618C ; =0x020FF574
+ add r0, r4, #0xc8
+ mov r2, #0x4
+ bl memcmp
+_02096150: ; 0x02096150
+ cmp r0, #0x0
+ beq _02096180
+ add r0, r4, #0xc8
+ bl FUN_02095AE0
+_02096160: ; 0x02096160
+ cmp r0, #0x0
+ bne _02096180
+ add r0, r4, #0xcc
+ bl FUN_02095AE0
+_02096170: ; 0x02096170
+ cmp r0, #0x0
+ addeq sp, sp, #0x8
+ moveq r0, #0x0
+ ldmeqia sp!, {r4,pc}
+_02096180:
+ mov r0, #0x1
+ add sp, sp, #0x8
+ ldmia sp!, {r4,pc}
+ .balign 4
+_0209618C: .word 0x020FF574
+
+ arm_func_start FUN_02096190
+FUN_02096190: ; 0x02096190
+ stmdb sp!, {r4-r11,lr}
+ sub sp, sp, #0x14
+ mov r10, r0
+ mov r1, #0x0
+ mov r2, #0x700
+ bl MI_CpuFill8
+ mov r0, r10
+ bl FUN_02095D9C
+_020961B0: ; 0x020961B0
+ cmp r0, #0x0
+ addeq sp, sp, #0x14
+ ldreq r0, _020964B4 ; =0xFFFFD8EF
+ ldmeqia sp!, {r4-r11,pc}
+_020961C0: ; 0x020961C0
+ ldr r1, _020964B8 ; =0x0000A001
+ add r0, r10, #0x500
+ bl MATHi_CRC16InitTableRev
+ mov r0, r10
+ bl FUN_02095D68
+_020961D4: ; 0x020961D4
+ cmp r0, #0x0
+ addeq sp, sp, #0x14
+ ldreq r0, _020964B4 ; =0xFFFFD8EF
+ ldmeqia sp!, {r4-r11,pc}
+_020961E4: ; 0x020961E4
+ add r0, sp, #0x0
+ mov r1, #0x0
+ mov r2, #0x10
+ bl MI_CpuFill8
+ mov r8, r10
+ mov r7, r10
+ mov r9, #0x0
+ add r11, sp, #0x0
+ add r6, r10, #0x500
+ mov r4, #0x1
+ mov r5, #0xfe
+_02096210:
+ mov r0, r6
+ mov r1, r8
+ mov r2, r5
+ bl MATH_CalcCRC16
+ add r1, r10, r9, lsl #0x8
+ ldrh r1, [r1, #0xfe]
+ cmp r0, r1
+ bne _02096240
+ mov r0, r7
+ bl FUN_02096090
+_02096238: ; 0x02096238
+ cmp r0, #0x0
+ strne r4, [r11, r9, lsl #0x2]
+_02096240:
+ add r9, r9, #0x1
+ cmp r9, #0x3
+ add r8, r8, #0x100
+ add r7, r7, #0x100
+ blt _02096210
+ add r0, r10, #0x500
+ add r1, r10, #0x300
+ mov r2, #0xfe
+ bl MATH_CalcCRC16
+ add r1, r10, #0x300
+ ldrh r1, [r1, #0xfe]
+ cmp r0, r1
+ moveq r0, #0x1
+ ldr r1, [sp, #0x0]
+ streq r0, [sp, #0xc]
+ cmp r1, #0x0
+ beq _020962BC
+ ldr r0, [sp, #0x4]
+ cmp r0, #0x0
+ beq _020962BC
+ ldr r0, [sp, #0x8]
+ cmp r0, #0x0
+ beq _020962BC
+ ldr r0, [sp, #0xc]
+ cmp r0, #0x0
+ beq _020962BC
+ add r0, r10, #0xf0
+ bl FUN_02095C24
+ add sp, sp, #0x14
+ mov r0, #0x0
+ ldmia sp!, {r4-r11,pc}
+_020962BC:
+ cmp r1, #0x0
+ bne _0209630C
+ ldr r0, [sp, #0x4]
+ cmp r0, #0x0
+ bne _0209630C
+ ldr r0, [sp, #0x8]
+ cmp r0, #0x0
+ bne _0209630C
+ ldr r0, [sp, #0xc]
+ cmp r0, #0x0
+ bne _0209630C
+ mov r0, r10
+ bl FUN_02096010
+ mov r0, r10
+ bl FUN_02095C3C
+_020962F8: ; 0x020962F8
+ cmp r0, #0x0
+ movne r0, #0x0
+ add sp, sp, #0x14
+ ldreq r0, _020964BC ; =0xFFFFD8F0
+ ldmia sp!, {r4-r11,pc}
+_0209630C:
+ cmp r1, #0x0
+ beq _02096320
+ ldr r0, [sp, #0x4]
+ cmp r0, #0x0
+ bne _0209635C
+_02096320:
+ ldr r0, [sp, #0x8]
+ cmp r0, #0x0
+ beq _02096338
+ ldr r0, [sp, #0xc]
+ cmp r0, #0x0
+ bne _0209635C
+_02096338:
+ mov r0, r10
+ bl FUN_02096010
+ mov r0, r10
+ bl FUN_02095C3C
+_02096348: ; 0x02096348
+ cmp r0, #0x0
+ movne r0, #0x0
+ add sp, sp, #0x14
+ ldreq r0, _020964BC ; =0xFFFFD8F0
+ ldmia sp!, {r4-r11,pc}
+_0209635C:
+ cmp r1, #0x0
+ bne _02096394
+ ldr r0, [sp, #0x4]
+ cmp r0, #0x0
+ bne _02096394
+ mov r0, r10
+ bl FUN_02096010
+ mov r0, r10
+ bl FUN_02095C3C
+_02096380: ; 0x02096380
+ cmp r0, #0x0
+ ldrne r0, _020964C0 ; =0xFFFFD8ED
+ add sp, sp, #0x14
+ ldreq r0, _020964BC ; =0xFFFFD8F0
+ ldmia sp!, {r4-r11,pc}
+_02096394:
+ cmp r1, #0x0
+ bne _020963C4
+ mov r0, r10
+ mov r1, #0x0
+ bl FUN_02095FDC
+ add r0, r10, #0x1f0
+ add r1, r10, #0xf0
+ mov r2, #0xe
+ bl MI_CpuCopy8
+ ldrb r0, [r10, #0x1ef]
+ strb r0, [r10, #0xef]
+ b _020963F4
+_020963C4:
+ ldr r0, [sp, #0x4]
+ cmp r0, #0x0
+ bne _020963F4
+ mov r0, r10
+ mov r1, #0x1
+ bl FUN_02095FDC
+ add r0, r10, #0xf0
+ add r1, r10, #0x1f0
+ mov r2, #0xe
+ bl MI_CpuCopy8
+ ldrb r0, [r10, #0xef]
+ strb r0, [r10, #0x1ef]
+_020963F4:
+ add r0, r10, #0xf0
+ bl FUN_02095C24
+ ldr r0, [sp, #0x8]
+ cmp r0, #0x0
+ bne _02096414
+ mov r0, r10
+ mov r1, #0x2
+ bl FUN_02095FDC
+_02096414:
+ ldr r0, [sp, #0xc]
+ cmp r0, #0x0
+ bne _02096430
+ add r1, r10, #0x300
+ mov r0, #0x0
+ mov r2, #0x100
+ bl MIi_CpuClear16
+_02096430:
+ mov r4, #0x0
+ mov r1, r4
+ add r0, sp, #0x0
+ add r5, r10, #0xef
+ mov r6, #0x1
+_02096444:
+ ldr r2, [r0, r1, lsl #0x2]
+ cmp r2, #0x0
+ bne _0209647C
+ ldrb r2, [r10, #0xef]
+ mov r7, r6, lsl r1
+ ands r2, r2, r7
+ beq _0209647C
+ ldrb r3, [r5, #0x0]
+ mvn r2, r7
+ mov r4, r6
+ and r2, r3, r2
+ strb r2, [r5, #0x0]
+ ldrb r2, [r10, #0xef]
+ strb r2, [r10, #0x1ef]
+_0209647C:
+ add r1, r1, #0x1
+ cmp r1, #0x3
+ blt _02096444
+ mov r0, r10
+ bl FUN_02095C3C
+_02096490: ; 0x02096490
+ cmp r0, #0x0
+ addeq sp, sp, #0x14
+ ldreq r0, _020964BC ; =0xFFFFD8F0
+ ldmeqia sp!, {r4-r11,pc}
+_020964A0: ; 0x020964A0
+ cmp r4, #0x0
+ ldrne r0, _020964C4 ; =0xFFFFD8EE
+ moveq r0, #0x0
+ add sp, sp, #0x14
+ ldmia sp!, {r4-r11,pc}
+ .balign 4
+_020964B4: .word 0xFFFFD8EF
+_020964B8: .word 0x0000A001
+_020964BC: .word 0xFFFFD8F0
+_020964C0: .word 0xFFFFD8ED
+_020964C4: .word 0xFFFFD8EE
+
+ arm_func_start FUN_020964C8
+FUN_020964C8:
+ stmdb sp!, {lr}
+ sub sp, sp, #0x14
+ add r0, sp, #0x0
+ bl FUN_02095EC8
+ ldr r2, [sp, #0x8]
+ ldr r1, [sp, #0xc]
+ mov r0, #0x0
+ cmp r1, r0
+ cmpeq r2, r0
+ bne _0209650C
+ ldr r1, [sp, #0x4]
+ ldr r2, [sp, #0x0]
+ cmp r1, r0
+ cmpeq r2, r0
+ addeq sp, sp, #0x14
+ moveq r0, #0x1
+ ldmeqia sp!, {pc}
+_0209650C:
+ mov r0, #0x0
+ add sp, sp, #0x14
+ ldmia sp!, {pc}
+
+ arm_func_start FUN_02096518
+FUN_02096518: ; 0x02096518
+ stmdb sp!, {r4,lr}
+ sub sp, sp, #0x18
+ mov r4, r0
+ add r0, sp, #0x0
+ bl FUN_02095EC8
+_0209652C: ; 0x0209652C
+ add r0, sp, #0x0
+ ldmia r0, {r2-r3}
+ stmia r4, {r2-r3}
+ add r1, sp, #0x8
+ add r0, r4, #0x8
+ ldmia r1, {r2-r3}
+ stmia r0, {r2-r3}
+ ldr r2, [sp, #0x0]
+ ldr r1, [sp, #0x4]
+ mov r0, #0x0
+ cmp r1, r0
+ cmpeq r2, r0
+ streq r0, [r4, #0x10]
+ movne r0, #0x1
+ strne r0, [r4, #0x10]
+ add sp, sp, #0x18
+ ldmia sp!, {r4,pc}
+
+ arm_func_start FUN_02096570
+FUN_02096570: ; 0x02096570
+ stmdb sp!, {r4-r10,lr}
+ sub sp, sp, #0x28
+ add r2, sp, #0x0
+ mov r1, #0x0
+ strb r1, [r2, #0x0]
+ strb r1, [r2, #0x1]
+ strb r1, [r2, #0x2]
+ strb r1, [r2, #0x3]
+ strb r1, [r2, #0x4]
+ mov r5, r0
+ strb r1, [r2, #0x5]
+ bl FUN_02095EC8
+ bl RTC_Init
+ add r0, sp, #0x8
+ bl RTC_GetDate
+_020965AC: ; 0x020965AC
+ cmp r0, #0x0
+ addne sp, sp, #0x28
+ movne r0, #0x0
+ ldmneia sp!, {r4-r10,pc}
+_020965BC: ; 0x020965BC
+ add r0, sp, #0x18
+ bl RTC_GetTime
+_020965C4: ; 0x020965C4
+ cmp r0, #0x0
+ addne sp, sp, #0x28
+ movne r0, #0x0
+ ldmneia sp!, {r4-r10,pc}
+_020965D4: ; 0x020965D4
+ add r0, sp, #0x8
+ add r1, sp, #0x18
+ bl RTC_ConvertDateTimeToSecond
+ mov r4, r0
+ mov r0, #0x0
+ subs r2, r4, r0
+ sbcs r2, r1, r0
+ addlt sp, sp, #0x28
+ ldmltia sp!, {r4-r10,pc}
+_020965F8: ; 0x020965F8
+ bl OS_IsTickAvailable
+_020965FC: ; 0x020965FC
+ cmp r0, #0x0
+ beq _0209660C
+ ldr r0, _02096700 ; =OS_GetTick
+ adds r4, r4, r0
+_0209660C:
+ add r0, sp, #0x0
+ bl OS_GetMacAddress
+ ldrb r1, [sp, #0x0]
+ ldr r6, _02096704 ; =0x5D588B65
+ ldr r7, _02096708 ; =0x00269EC3
+ ldrb r0, [sp, #0x1]
+ mla r9, r4, r6, r7
+ mov r1, r1, lsl #0x10
+ orr r1, r1, r0, lsl #0x8
+ ldrb r2, [sp, #0x2]
+ ldr r0, _0209670C ; =0x000009BF
+ ldrb r8, [sp, #0x3]
+ orr r1, r2, r1
+ cmp r1, r0
+ movne r1, #0x1
+ mov r2, r9, lsr #0x10
+ mov r0, #0x3e8
+ mul r3, r2, r0
+ mov r2, r3, lsr #0x10
+ mov r3, r8, lsl #0x10
+ ldrb r4, [sp, #0x4]
+ ldrb r0, [sp, #0x5]
+ mov r8, #0x0
+ orr r10, r3, r4, lsl #0x8
+ strh r2, [r5, #0x10]
+ str r8, [r5, #0x8]
+ str r8, [r5, #0xc]
+ moveq r1, #0x0
+ ldr r2, [r5, #0xc]
+ ldr r3, [r5, #0x8]
+ cmp r2, r8
+ cmpeq r3, r8
+ and r4, r1, #0xff
+ orr r10, r0, r10
+ bne _020966F4
+_02096698:
+ mla r9, r6, r9, r7
+ b _020966A4
+_020966A0:
+ mla r9, r6, r9, r7
+_020966A4:
+ cmp r9, #0x0
+ beq _020966A0
+ ldrh r1, [r5, #0x12]
+ mov r0, r9, lsl #0x10
+ mov r0, r0, lsr #0x10
+ cmp r1, r0
+ beq _020966A0
+ strh r0, [r5, #0x12]
+ ldrh r0, [r5, #0x12]
+ mov r1, r10
+ mov r2, r4
+ mov r3, r8
+ bl FUN_02096988
+ str r0, [r5, #0x8]
+ str r1, [r5, #0xc]
+ ldr r0, [r5, #0xc]
+ ldr r1, [r5, #0x8]
+ cmp r0, r8
+ cmpeq r1, r8
+ beq _02096698
+_020966F4:
+ mov r0, #0x1
+ add sp, sp, #0x28
+ ldmia sp!, {r4-r10,pc}
+ .balign 4
+_02096700: .word OS_GetTick
+_02096704: .word 0x5D588B65
+_02096708: .word 0x00269EC3
+_0209670C: .word 0x000009BF
+
+ arm_func_start FUN_02096710
+FUN_02096710: ; 0x02096710
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x14
+ mov r5, r0
+ add r0, sp, #0x0
+ mov r4, r1
+ bl FUN_02095EC8
+ add r12, r5, #0x8
+ ldmia r12, {r2-r3}
+ stmia r5, {r2-r3}
+ add r1, sp, #0x8
+ ldmia r1, {r2-r3}
+ mov r0, r5
+ mov r1, r4
+ stmia r12, {r2-r3}
+ bl FUN_02095DE0
+_0209674C: ; 0x0209674C
+ cmp r0, #0x0
+ movne r0, #0x1
+ moveq r0, #0x0
+ add sp, sp, #0x14
+ ldmia sp!, {r4-r5,pc}
+
+ arm_func_start FUN_02096760
+FUN_02096760: ; 0x02096760
+ stmdb sp!, {r4,lr}
+ sub sp, sp, #0x18
+ mov r4, r0
+ add r0, sp, #0x0
+ bl FUN_020967A4
+_02096774: ; 0x02096774
+ cmp r0, #0x0
+ addeq sp, sp, #0x18
+ moveq r0, #0x0
+ ldmeqia sp!, {r4,pc}
+_02096784: ; 0x02096784
+ add r0, sp, #0x0
+ mov r1, r4
+ bl FUN_02095DE0
+_02096790: ; 0x02096790
+ cmp r0, #0x0
+ movne r0, #0x1
+ moveq r0, #0x0
+ add sp, sp, #0x18
+ ldmia sp!, {r4,pc}
+
+ arm_func_start FUN_020967A4
+FUN_020967A4:
+ stmdb sp!, {r4-r10,lr}
+ sub sp, sp, #0x28
+ mov r8, r0
+ bl FUN_02095EC8
+ bl RTC_Init
+ add r0, sp, #0x8
+ bl RTC_GetDate
+_020967C0: ; 0x020967C0
+ cmp r0, #0x0
+ addne sp, sp, #0x28
+ movne r0, #0x0
+ ldmneia sp!, {r4-r10,pc}
+_020967D0: ; 0x020967D0
+ add r0, sp, #0x18
+ bl RTC_GetTime
+_020967D8: ; 0x020967D8
+ cmp r0, #0x0
+ addne sp, sp, #0x28
+ movne r0, #0x0
+ ldmneia sp!, {r4-r10,pc}
+_020967E8: ; 0x020967E8
+ add r0, sp, #0x8
+ add r1, sp, #0x18
+ bl RTC_ConvertDateTimeToSecond
+ mov r4, r0
+ mov r0, #0x0
+ subs r2, r4, r0
+ sbcs r2, r1, r0
+ addlt sp, sp, #0x28
+ ldmltia sp!, {r4-r10,pc}
+_0209680C: ; 0x0209680C
+ bl OS_IsTickAvailable
+_02096810: ; 0x02096810
+ cmp r0, #0x0
+ beq _02096820
+ ldr r0, _02096978 ; =OS_GetTick
+ adds r4, r4, r0
+_02096820:
+ add r0, sp, #0x0
+ bl OS_GetMacAddress
+ ldrb r1, [sp, #0x0]
+ ldr sb, _0209697C ; =0x5D588B65
+ ldr sl, _02096980 ; =0x00269EC3
+ ldrb r0, [sp, #0x1]
+ mla r5, r4, r9, r10
+ mov r1, r1, lsl #0x10
+ orr r1, r1, r0, lsl #0x8
+ ldrb r2, [sp, #0x2]
+ ldr r0, _02096984 ; =0x000009BF
+ ldrb r6, [sp, #0x3]
+ orr r1, r2, r1
+ cmp r1, r0
+ movne r1, #0x1
+ moveq r1, #0x0
+ mov r2, r5, lsr #0x10
+ mov r0, #0x3e8
+ mul r3, r2, r0
+ mov r2, r3, lsr #0x10
+ ldrb r0, [sp, #0x5]
+ ldrb r4, [sp, #0x4]
+ mov r3, r6, lsl #0x10
+ and r7, r1, #0xff
+ orr r3, r3, r4, lsl #0x8
+ strh r2, [r8, #0x10]
+ mov r4, #0x0
+ str r4, [r8, #0x0]
+ str r4, [r8, #0x4]
+ ldrh r2, [r8, #0x12]
+ orr r6, r0, r3
+ cmp r2, #0x0
+ bne _02096910
+ str r4, [r8, #0x8]
+ str r4, [r8, #0xc]
+ ldr r0, [r8, #0xc]
+ ldr r1, [r8, #0x8]
+ cmp r0, r4
+ cmpeq r1, r4
+ bne _0209696C
+_020968C0:
+ mul r0, r5, r9
+ adds r5, r0, r10
+ bne _020968D8
+_020968CC:
+ mul r0, r5, r9
+ adds r5, r0, r10
+ beq _020968CC
+_020968D8:
+ strh r5, [r8, #0x12]
+ ldrh r0, [r8, #0x12]
+ mov r1, r6
+ mov r2, r7
+ mov r3, r4
+ bl FUN_02096988
+ str r0, [r8, #0x8]
+ str r1, [r8, #0xc]
+ ldr r0, [r8, #0xc]
+ ldr r1, [r8, #0x8]
+ cmp r0, r4
+ cmpeq r1, #0x0
+ beq _020968C0
+ b _0209696C
+_02096910:
+ str r4, [r8, #0x8]
+ str r4, [r8, #0xc]
+ ldr r0, [r8, #0xc]
+ ldr r1, [r8, #0x8]
+ cmp r0, r4
+ cmpeq r1, r4
+ bne _0209696C
+ add r5, r8, #0x12
+_02096930:
+ ldrh r0, [r5, #0x0]
+ mov r1, r6
+ mov r2, r7
+ add r0, r0, #0x1
+ strh r0, [r5, #0x0]
+ ldrh r0, [r8, #0x12]
+ mov r3, r4
+ bl FUN_02096988
+ str r0, [r8, #0x8]
+ str r1, [r8, #0xc]
+ ldr r0, [r8, #0xc]
+ ldr r1, [r8, #0x8]
+ cmp r0, r4
+ cmpeq r1, r4
+ beq _02096930
+_0209696C:
+ mov r0, #0x1
+ add sp, sp, #0x28
+ ldmia sp!, {r4-r10,pc}
+ .balign 4
+_02096978: .word OS_GetTick
+_0209697C: .word 0x5D588B65
+_02096980: .word 0x00269EC3
+_02096984: .word 0x000009BF
+
+ arm_func_start FUN_02096988
+FUN_02096988: ; 0x02096988
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0x14
+ mov lr, #0x0
+ and r12, lr, #0x0
+ mvn r5, #0xff000000
+ ldr r4, _02096B08 ; =0x0000FFFF
+ and r2, r2, #0x1
+ mov r6, r12, lsl #0x2
+ and r3, r3, #0x3
+ and r5, r1, r5
+ orr r1, r3, r2, lsl #0x2
+ orr r6, r6, r2, lsr #0x1e
+ mov r7, r12, lsl #0x3
+ and r2, r0, r4
+ orr r0, r1, r5, lsl #0x3
+ orr r1, r0, r2, lsl #0x1b
+ mov r3, r12, lsl #0x1b
+ orr r3, r3, r2, lsr #0x5
+ orr r7, r7, r5, lsr #0x1d
+ orr r0, r12, r6
+ orr r0, r7, r0
+ orr r0, r3, r0
+ add r2, sp, #0x0
+ str r1, [sp, #0x0]
+ str r0, [sp, #0x4]
+_020969EC:
+ ldrb r0, [r2, #0x0]
+ add lr, lr, #0x1
+ cmp lr, #0x6
+ eor r0, r0, #0xd6
+ strb r0, [r2], #0x1
+ blt _020969EC
+ ldr r2, _02096B0C ; =0x020FF580
+ add r5, sp, #0x0
+ mov r4, #0x0
+_02096A10:
+ ldrb r3, [r5, #0x0]
+ add r4, r4, #0x1
+ cmp r4, #0x5
+ mov r0, r3, asr #0x4
+ and r1, r0, #0xf
+ and r0, r3, #0xf
+ ldrb r1, [r2, r1]
+ ldrb r0, [r2, r0]
+ orr r0, r0, r1, lsl #0x4
+ strb r0, [r5], #0x1
+ blt _02096A10
+ add r0, sp, #0x0
+ add r1, sp, #0x8
+ mov r2, #0x8
+ bl MI_CpuCopy8
+ ldr r4, _02096B10 ; =0x020FF578
+ add r5, sp, #0x8
+ mov r3, #0x0
+ add r1, sp, #0x0
+_02096A5C:
+ ldrb r2, [r5, #0x0]
+ ldrb r0, [r4, #0x0]
+ add r3, r3, #0x1
+ cmp r3, #0x5
+ strb r2, [r1, r0]
+ add r5, r5, #0x1
+ add r4, r4, #0x1
+ blt _02096A5C
+ ldrb r2, [sp, #0x5]
+ mov r0, #0x0
+ ldr r3, [sp, #0x0]
+ and r2, r2, #0x7
+ strb r0, [sp, #0x7]
+ strb r0, [sp, #0x6]
+ strb r2, [sp, #0x5]
+ ldr r2, [sp, #0x4]
+ mov r4, r3, lsl #0x1
+ mov r2, r2, lsl #0x1
+ orr r2, r2, r3, lsr #0x1f
+ str r2, [sp, #0x4]
+ ldrb r2, [sp, #0x5]
+ str r4, [sp, #0x0]
+ ldrb r3, [sp, #0x0]
+ mov r2, r2, asr #0x3
+ and r2, r2, #0x1
+ orr r2, r3, r2
+ strb r2, [sp, #0x0]
+_02096AC8:
+ ldrb r2, [r1, #0x0]
+ add r0, r0, #0x1
+ cmp r0, #0x6
+ eor r2, r2, #0x67
+ strb r2, [r1], #0x1
+ blt _02096AC8
+ ldrb r0, [sp, #0x5]
+ mov r1, #0x0
+ strb r1, [sp, #0x7]
+ and r0, r0, #0x7
+ strb r1, [sp, #0x6]
+ strb r0, [sp, #0x5]
+ ldr r0, [sp, #0x0]
+ ldr r1, [sp, #0x4]
+ add sp, sp, #0x14
+ ldmia sp!, {r4-r7,pc}
+ .balign 4
+_02096B08: .word 0x0000FFFF
+_02096B0C: .word 0x020FF580
+_02096B10: .word 0x020FF578
+
+ arm_func_start FUN_02096B14
+FUN_02096B14: ; 0x02096B14
+ stmdb sp!, {r4-r6,lr}
+ mov r6, r0
+ ldr r0, _02096B74 ; =0x02000B8C
+ mov r4, #0x0
+ bl OSi_ReferSymbol
+ mov r0, r6
+ bl FUN_02096190
+ mov r5, r0
+ bl FUN_020964C8
+_02096B38: ; 0x02096B38
+ cmp r0, #0x0
+ beq _02096B4C
+ mov r0, r6
+ bl FUN_02096760
+ mov r4, #0x1
+_02096B4C:
+ cmp r5, #0x0
+ bge _02096B64
+ cmp r4, #0x0
+ movne r0, #0x2
+ moveq r0, #0x3
+ ldmia sp!, {r4-r6,pc}
+_02096B64:
+ cmp r4, #0x0
+ movne r0, #0x1
+ moveq r0, #0x0
+ ldmia sp!, {r4-r6,pc}
+ .balign 4
+_02096B74: .word 0x02000B8C
+
+ arm_func_start FUN_02096B78
+FUN_02096B78: ; 0x02096B78
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0x4
+ mov r4, r1
+ mov r7, r0
+ bl FUN_020974C8
+ mov r5, r0
+ mov r0, r4
+ bl FUN_020974C8
+_02096B98: ; 0x02096B98
+ cmp r5, r0
+ addne sp, sp, #0x4
+ movne r0, #0x0
+ ldmneia sp!, {r4-r7,pc}
+_02096BA8: ; 0x02096BA8
+ cmp r5, #0x3
+ bne _02096BD8
+ mov r0, r7
+ bl FUN_02097544
+ mov r5, r0
+ mov r0, r4
+ bl FUN_02097544
+_02096BC4: ; 0x02096BC4
+ cmp r5, r0
+ moveq r0, #0x1
+ add sp, sp, #0x4
+ movne r0, #0x0
+ ldmia sp!, {r4-r7,pc}
+_02096BD8:
+ cmp r5, #0x1
+ bne _02096C34
+ mov r0, r7
+ bl FUN_02097568
+ mov r5, r0
+ mov r6, r1
+ mov r0, r4
+ bl FUN_02097568
+ cmp r6, r1
+ cmpeq r5, r0
+ bne _02096C28
+ mov r0, r7
+ bl FUN_02097560
+ mov r5, r0
+ mov r0, r4
+ bl FUN_02097560
+_02096C18: ; 0x02096C18
+ cmp r5, r0
+ addeq sp, sp, #0x4
+ moveq r0, #0x1
+ ldmeqia sp!, {r4-r7,pc}
+_02096C28:
+ add sp, sp, #0x4
+ mov r0, #0x0
+ ldmia sp!, {r4-r7,pc}
+_02096C34:
+ cmp r5, #0x2
+ bne _02096C6C
+ mov r0, r7
+ bl FUN_0209754C
+ mov r5, r0
+ mov r6, r1
+ mov r0, r4
+ bl FUN_0209754C
+ cmp r6, r1
+ cmpeq r5, r0
+ moveq r0, #0x1
+ add sp, sp, #0x4
+ movne r0, #0x0
+ ldmia sp!, {r4-r7,pc}
+_02096C6C:
+ mov r0, #0x0
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r7,pc}
+_02096C78: ; 0x02096C78
+ ldr ip, _02096C8C ; =FUN_02097218
+ mov r3, r0
+ mov r0, r1
+ ldr r1, [r3, #0x24]
+ bx r12
+ .balign 4
+_02096C8C: .word FUN_02097218
+
+ arm_func_start FUN_02096C90
+FUN_02096C90: ; 0x02096C90
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ mov r4, r1
+ mov r5, r0
+ mov r1, #0x0
+ mov r2, #0xc
+ bl MI_CpuFill8
+ mov r0, r5
+ mov r1, r4
+ bl FUN_020974F4
+ mov r0, r5
+ mov r1, #0x3
+ bl FUN_02097440
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,pc}
+
+ arm_func_start FUN_02096CCC
+FUN_02096CCC: ; 0x02096CCC
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ mov r4, r1
+ mov r5, r0
+ mov r0, r4
+ mov r1, #0x0
+ mov r2, #0xc
+ bl MI_CpuFill8
+ mov r0, r5
+ bl FUN_0209702C
+_02096CF4: ; 0x02096CF4
+ cmp r0, #0x0
+ addeq r0, r5, #0x4
+ ldmeqia r0, {r0-r2}
+ addeq sp, sp, #0x4
+ stmeqia r4, {r0-r2}
+ ldmeqia sp!, {r4-r5,pc}
+_02096D0C: ; 0x02096D0C
+ ldr r1, [r5, #0x1c]
+ mov r0, r4
+ bl FUN_020974F4
+ mov r0, r4
+ mov r1, #0x3
+ bl FUN_02097440
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,pc}
+
+ arm_func_start FUN_02096D2C
+FUN_02096D2C: ; 0x02096D2C
+ stmdb sp!, {r4-r6,lr}
+ mov r5, r1
+ mov r4, r2
+ mov r6, r0
+ mov r1, #0x0
+ mov r2, #0xc
+ bl MI_CpuFill8
+ mov r0, r6
+ mov r1, r5
+ mov r2, r4
+ bl FUN_020974FC
+ mov r0, r6
+ mov r1, #0x2
+ bl FUN_02097440
+ ldmia sp!, {r4-r6,pc}
+
+ arm_func_start FUN_02096D68
+FUN_02096D68: ; 0x02096D68
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ mov r3, r0
+ ldr r0, [r3, #0x1c]
+ mov r2, #0x0
+ mov r1, r2
+ cmp r0, #0x0
+ beq _02096D94
+ ldr r1, [r3, #0x24]
+ bl FUN_020973D0
+ mov r2, r0
+_02096D94:
+ mov r0, r2
+ add sp, sp, #0x4
+ ldmia sp!, {pc}
+
+ arm_func_start FUN_02096DA0
+FUN_02096DA0: ; 0x02096DA0
+ stmdb sp!, {r4-r6,lr}
+ mov r4, r1
+ mov r6, r0
+ mov r0, r4
+ bl FUN_020974C8
+ cmp r0, #0x1
+ beq _02096E14
+ cmp r0, #0x2
+ beq _02096DD0
+ cmp r0, #0x3
+ beq _02096E08
+ b _02096E1C
+_02096DD0:
+ mov r0, r4
+ bl FUN_0209754C
+ ldr r2, [r6, #0x24]
+ mov r4, r0
+ mov r5, r1
+ bl FUN_02097344
+_02096DE8: ; 0x02096DE8
+ cmp r0, #0x0
+ moveq r0, #0x0
+ ldmeqia sp!, {r4-r6,pc}
+_02096DF4: ; 0x02096DF4
+ ldr r2, [r6, #0x24]
+ mov r0, r4
+ mov r1, r5
+ bl FUN_02097324
+ ldmia sp!, {r4-r6,pc}
+_02096E08:
+ mov r0, r4
+ bl FUN_02097544
+ ldmia sp!, {r4-r6,pc}
+_02096E14:
+ mvn r0, #0x0
+ ldmia sp!, {r4-r6,pc}
+_02096E1C:
+ mov r0, #0x0
+ ldmia sp!, {r4-r6,pc}
+
+ arm_func_start FUN_02096E24
+FUN_02096E24: ; 0x02096E24
+ stmdb sp!, {r4,lr}
+ mov r4, r0
+ bl FUN_020974C8
+ cmp r0, #0x2
+ movne r0, #0x0
+ movne r1, r0
+ ldmneia sp!, {r4,pc}
+_02096E40: ; 0x02096E40
+ mov r0, r4
+ bl FUN_0209754C
+ ldmia sp!, {r4,pc}
+
+ arm_func_start FUN_02096E4C
+FUN_02096E4C: ; 0x02096E4C
+ stmdb sp!, {r4,lr}
+ sub sp, sp, #0x400
+ mov r4, r0
+ ldr r1, [r4, #0x20]
+ add r0, sp, #0x0
+ bic r2, r1, #0x1
+ ldr r1, _02096E8C ; =0xEDB88320
+ str r2, [r4, #0x20]
+ bl MATHi_CRC32InitTableRev
+_02096E70: ; 0x02096E70
+ add r0, sp, #0x0
+ mov r1, r4
+ mov r2, #0x3c
+ bl MATH_CalcCRC32
+ str r0, [r4, #0x3c]
+ add sp, sp, #0x400
+ ldmia sp!, {r4,pc}
+ .balign 4
+_02096E8C: .word 0xEDB88320
+
+ arm_func_start thunk_FUN_02096e4c
+thunk_FUN_02096e4c: ; 0x02096E90
+ ldr ip, _02096E98 ; =FUN_02096E4C
+ bx r12
+ .balign 4
+_02096E98: .word FUN_02096E4C
+
+ arm_func_start FUN_02096E9C
+FUN_02096E9C: ; 0x02096E9C
+ ldr r0, [r0, #0x20]
+ and r0, r0, #0x1
+ cmp r0, #0x1
+ moveq r0, #0x1
+ movne r0, #0x0
+ bx lr
+
+ arm_func_start FUN_02096EB4
+FUN_02096EB4: ; 0x02096EB4
+ ldr ip, _02096EBC ; =FUN_02096E9C
+ bx r12
+ .balign 4
+_02096EBC: .word FUN_02096E9C
+
+ arm_func_start FUN_02096EC0
+FUN_02096EC0: ; 0x02096EC0
+ stmdb sp!, {r4,lr}
+ sub sp, sp, #0x400
+ mov r4, r0
+ add r3, r4, #0x10
+ mov r12, r2
+ ldmia r1, {r0-r2}
+ stmia r3, {r0-r2}
+ ldr r1, _02096F14 ; =0xEDB88320
+ add r0, sp, #0x0
+ str r12, [r4, #0x1c]
+ bl MATHi_CRC32InitTableRev
+_02096EEC: ; 0x02096EEC
+ add r0, sp, #0x0
+ mov r1, r4
+ mov r2, #0x3c
+ bl MATH_CalcCRC32
+ str r0, [r4, #0x3c]
+ ldr r0, [r4, #0x20]
+ orr r0, r0, #0x1
+ str r0, [r4, #0x20]
+ add sp, sp, #0x400
+ ldmia sp!, {r4,pc}
+ .balign 4
+_02096F14: .word 0xEDB88320
+
+ arm_func_start FUN_02096F18
+FUN_02096F18: ; 0x02096F18
+ stmdb sp!, {r4,lr}
+ sub sp, sp, #0x18
+ mov r4, r0
+ add r0, r4, #0x10
+ bl FUN_020974C8
+_02096F2C: ; 0x02096F2C
+ cmp r0, #0x0
+ addeq sp, sp, #0x18
+ moveq r0, #0x1
+ ldmeqia sp!, {r4,pc}
+_02096F3C: ; 0x02096F3C
+ add r0, sp, #0x0
+ bl FUN_02096518
+ ldr r0, [sp, #0x10]
+ cmp r0, #0x0
+ addeq sp, sp, #0x18
+ moveq r0, #0x0
+ ldmeqia sp!, {r4,pc}
+_02096F58: ; 0x02096F58
+ add r0, r4, #0x10
+ bl FUN_02097568
+ ldr r2, [sp, #0x4]
+ ldr r3, [sp, #0x0]
+ cmp r2, r1
+ cmpeq r3, r0
+ moveq r0, #0x1
+ movne r0, #0x0
+ add sp, sp, #0x18
+ ldmia sp!, {r4,pc}
+
+ arm_func_start FUN_02096F80
+FUN_02096F80: ; 0x02096F80
+ stmdb sp!, {r4,lr}
+ mov r4, r0
+ add r0, r4, #0x10
+ bl FUN_0209703C
+_02096F90: ; 0x02096F90
+ cmp r0, #0x0
+ beq _02096FA8
+ ldr r0, [r4, #0x1c]
+ cmp r0, #0x0
+ movgt r0, #0x1
+ ldmgtia sp!, {r4,pc}
+_02096FA8:
+ mov r0, #0x0
+ ldmia sp!, {r4,pc}
+
+ arm_func_start FUN_02096FB0
+FUN_02096FB0: ; 0x02096FB0
+ stmdb sp!, {r4,lr}
+ sub sp, sp, #0x400
+ ldr r1, _02096FF0 ; =0xEDB88320
+ mov r4, r0
+ add r0, sp, #0x0
+ bl MATHi_CRC32InitTableRev
+_02096FC8: ; 0x02096FC8
+ add r0, sp, #0x0
+ mov r1, r4
+ mov r2, #0x3c
+ bl MATH_CalcCRC32
+ ldr r1, [r4, #0x3c]
+ cmp r0, r1
+ moveq r0, #0x1
+ movne r0, #0x0
+ add sp, sp, #0x400
+ ldmia sp!, {r4,pc}
+ .balign 4
+_02096FF0: .word 0xEDB88320
+
+ arm_func_start thunk_FUN_02097190
+thunk_FUN_02097190: ; 0x02096FF4
+ ldr ip, _02096FFC ; =FUN_02097190
+ bx r12
+ .balign 4
+_02096FFC: .word FUN_02097190
+
+ arm_func_start FUN_02097000
+FUN_02097000: ; 0x02097000
+ ldr ip, _02097008 ; =FUN_0209700C
+ bx r12
+ .balign 4
+_02097008: .word FUN_0209700C
+
+ arm_func_start FUN_0209700C
+FUN_0209700C: ; 0x0209700C
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ bl FUN_020974C8
+_02097018: ; 0x02097018
+ cmp r0, #0x0
+ movne r0, #0x1
+ moveq r0, #0x0
+ add sp, sp, #0x4
+ ldmia sp!, {pc}
+
+ arm_func_start FUN_0209702C
+FUN_0209702C:
+ ldr ip, _02097038 ; =FUN_0209703C
+ add r0, r0, #0x10
+ bx r12
+ .balign 4
+_02097038: .word FUN_0209703C
+
+ arm_func_start FUN_0209703C
+FUN_0209703C:
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ bl FUN_020974C8
+ cmp r0, #0x1
+ moveq r0, #0x1
+ movne r0, #0x0
+ add sp, sp, #0x4
+ ldmia sp!, {pc}
+
+ arm_func_start FUN_0209705C
+FUN_0209705C: ; 0x0209705C
+ stmdb sp!, {r4,lr}
+ sub sp, sp, #0x18
+ mov r4, r0
+ add r0, sp, #0x0
+ bl FUN_02096518
+ ldr r0, [sp, #0x10]
+ cmp r0, #0x0
+ beq _020970A4
+ mov r0, r4
+ bl FUN_02097568
+ ldr r2, [sp, #0x4]
+ ldr r3, [sp, #0x0]
+ cmp r2, r1
+ cmpeq r3, r0
+ moveq r0, #0x1
+ add sp, sp, #0x18
+ movne r0, #0x0
+ ldmia sp!, {r4,pc}
+_020970A4:
+ mov r0, r4
+ bl FUN_02097568
+ ldr r2, [sp, #0xc]
+ ldr r3, [sp, #0x8]
+ cmp r2, r1
+ cmpeq r3, r0
+ moveq r0, #0x1
+ movne r0, #0x0
+ add sp, sp, #0x18
+ ldmia sp!, {r4,pc}
+
+ arm_func_start FUN_020970CC
+FUN_020970CC: ; 0x020970CC
+ stmdb sp!, {r4-r6,lr}
+ sub sp, sp, #0x38
+ mov r6, r0
+ add r0, sp, #0x14
+ bl OS_GetLowEntropyData
+ mov r3, #0x1
+ add r2, sp, #0x14
+_020970E8:
+ add r0, r2, r3, lsl #0x2
+ ldr r1, [r2, r3, lsl #0x2]
+ ldr r0, [r0, #-0x4]
+ eor r0, r1, r0
+ str r0, [r2, r3, lsl #0x2]
+ add r3, r3, #0x1
+ cmp r3, #0x8
+ blo _020970E8
+ add r0, sp, #0x0
+ ldr r5, [sp, #0x30]
+ mov r4, #0x0
+ bl FUN_02096518
+ ldr r0, [sp, #0x10]
+ cmp r0, #0x0
+ beq _02097138
+ ldr r1, [sp, #0x0]
+ ldr r2, [sp, #0x4]
+ mov r0, r6
+ bl FUN_02097510
+ b _02097148
+_02097138:
+ ldr r1, [sp, #0x8]
+ ldr r2, [sp, #0xc]
+ mov r0, r6
+ bl FUN_02097510
+_02097148:
+ ldr r0, _02097184 ; =0x6C078965
+ ldr r1, _02097188 ; =0x5D588B65
+ umull r3, r2, r5, r0
+ mla r2, r5, r1, r2
+ ldr r1, _0209718C ; =0x00269EC3
+ mla r2, r4, r0, r2
+ adds r0, r3, r1
+ mov r0, r6
+ adc r1, r2, #0x0
+ bl FUN_02097508
+ mov r0, r6
+ mov r1, #0x1
+ bl FUN_02097440
+ add sp, sp, #0x38
+ ldmia sp!, {r4-r6,pc}
+ .balign 4
+_02097184: .word 0x6C078965
+_02097188: .word 0x5D588B65
+_0209718C: .word 0x00269EC3
+
+ arm_func_start FUN_02097190
+FUN_02097190: ; 0x02097190
+ stmdb sp!, {r4-r5,lr}
+ ldr ip, _02097210 ; =0x00000404
+ sub sp, sp, r12
+ mov r4, r1
+ mov r1, #0x0
+ mov r2, #0x40
+ mov r5, r0
+ bl MI_CpuFill8
+ mov r0, #0x40
+ str r0, [r5, #0x0]
+ mov r0, #0x0
+ str r0, [r5, #0x1c]
+ add r0, r5, #0x4
+ str r4, [r5, #0x24]
+ bl FUN_020970CC
+ add r0, r5, #0x10
+ mov r1, #0x0
+ bl FUN_02097440
+ ldr r1, _02097214 ; =0xEDB88320
+ add r0, sp, #0x0
+ bl MATHi_CRC32InitTableRev
+_020971E4: ; 0x020971E4
+ add r0, sp, #0x0
+ mov r1, r5
+ mov r2, #0x3c
+ bl MATH_CalcCRC32
+ str r0, [r5, #0x3c]
+ ldr r0, [r5, #0x20]
+ orr r0, r0, #0x1
+ str r0, [r5, #0x20]
+ ldr ip, _02097210 ; =0x00000404
+ add sp, sp, r12
+ ldmia sp!, {r4-r5,pc}
+ .balign 4
+_02097210: .word 0x00000404
+_02097214: .word 0xEDB88320
+
+ arm_func_start FUN_02097218
+FUN_02097218: ; 0x02097218
+ stmdb sp!, {r4-r6,lr}
+ sub sp, sp, #0x40
+ mov r6, r0
+ mov r4, r1
+ mov r5, r2
+ bl FUN_02097568
+ add r3, sp, #0x14
+ mov r2, #0x2b
+ bl FUN_020972A8
+ mov r0, r6
+ bl FUN_02097560
+ mov r1, #0x0
+ mov r2, #0x20
+ add r3, sp, #0x29
+ bl FUN_020972A8
+ mov r1, r4, lsr #0x18
+ and r1, r1, #0xff
+ str r1, [sp, #0x0]
+ mov r1, r4, lsr #0x10
+ and r1, r1, #0xff
+ str r1, [sp, #0x4]
+ mov r1, r4, lsr #0x8
+ and r1, r1, #0xff
+ str r1, [sp, #0x8]
+ and r1, r4, #0xff
+ str r1, [sp, #0xc]
+ add r2, sp, #0x29
+ str r2, [sp, #0x10]
+ ldr r2, _020972A4 ; =0x0210618C
+ mov r0, r5
+ mov r1, #0x15
+ add r3, sp, #0x14
+ bl OS_SNPrintf
+ add sp, sp, #0x40
+ ldmia sp!, {r4-r6,pc}
+ .balign 4
+_020972A4: .word 0x0210618C
+
+ arm_func_start FUN_020972A8
+FUN_020972A8: ; 0x020972A8
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0x4
+ ldr lr, _0209731C ; =0x66666667
+ add r4, r2, #0x4
+ smull r12, r2, lr, r4
+ mov r2, r2, asr #0x1
+ mov r12, r4, lsr #0x1f
+ add r2, r12, r2
+ cmp r2, #0x0
+ ldr r6, _02097320 ; =0x0210619C
+ mov r7, #0x0
+ ble _0209730C
+ add r4, r3, r2
+ sub r4, r4, #0x1
+ mov r12, #0x1f
+_020972E4:
+ and r5, r0, r12
+ ldrsb r5, [r6, r5]
+ mov r0, r0, lsr #0x5
+ mov lr, r1, lsr #0x5
+ strb r5, [r4, -r7]
+ add r7, r7, #0x1
+ orr r0, r0, r1, lsl #0x1b
+ mov r1, lr
+ cmp r7, r2
+ blt _020972E4
+_0209730C:
+ mov r0, #0x0
+ strb r0, [r3, r2]
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r7,pc}
+ .balign 4
+_0209731C: .word 0x66666667
+_02097320: .word 0x0210619C
+
+ arm_func_start FUN_02097324
+FUN_02097324: ; 0x02097324
+ stmdb sp!, {r4,lr}
+ mov r4, r0
+ bl FUN_02097344
+_02097330: ; 0x02097330
+ cmp r0, #0x0
+ mvnne r0, #0x0
+ andne r0, r4, r0
+ moveq r0, #0x0
+ ldmia sp!, {r4,pc}
+
+ arm_func_start FUN_02097344
+FUN_02097344:
+ stmdb sp!, {r4,lr}
+ sub sp, sp, #0x108
+ mov r4, r1
+ and r3, r4, #0x0
+ mov r1, #0x0
+ and r12, r0, #0x80000000
+ cmp r3, r1
+ cmpeq r12, r1
+ addne sp, sp, #0x108
+ movne r0, r1
+ ldmneia sp!, {r4,pc}
+_02097370: ; 0x02097370
+ str r0, [sp, #0x0]
+ add r0, sp, #0x8
+ mov r1, #0x7
+ str r2, [sp, #0x4]
+ bl MATHi_CRC8InitTable
+ add r0, sp, #0x8
+ add r1, sp, #0x0
+ mov r2, #0x8
+ bl MATH_CalcCRC8
+ and r2, r0, #0x7f
+ mov r1, r2, asr #0x1f
+ mov r0, #0x0
+ cmp r1, r0
+ cmpeq r2, r4
+ moveq r0, #0x1
+ add sp, sp, #0x108
+ ldmia sp!, {r4,pc}
+
+ arm_func_start FUN_020973B4
+FUN_020973B4: ; 0x020973B4
+ ldr ip, _020973CC ; =FUN_02097344
+ mov r3, r0
+ mov r0, r1
+ mov r1, r2
+ ldr r2, [r3, #0x24]
+ bx r12
+ .balign 4
+_020973CC: .word FUN_02097344
+
+ arm_func_start FUN_020973D0
+FUN_020973D0: ; 0x020973D0
+ stmdb sp!, {r4,lr}
+ sub sp, sp, #0x108
+ mov r4, r0
+ str r1, [sp, #0x4]
+ add r0, sp, #0x8
+ mov r1, #0x7
+ str r4, [sp, #0x0]
+ bl MATHi_CRC8InitTable
+ add r0, sp, #0x8
+ add r1, sp, #0x0
+ mov r2, #0x8
+ bl MATH_CalcCRC8
+ and r0, r0, #0x7f
+ orr r1, r0, #0x0
+ orr r0, r4, #0x0
+ add sp, sp, #0x108
+ ldmia sp!, {r4,pc}
+
+ arm_func_start FUN_02097414
+FUN_02097414: ; 0x02097414
+ stmdb sp!, {r4,lr}
+ mov r4, r0
+ bl FUN_020974C8
+ cmp r0, #0x3
+ ldmneia sp!, {r4,pc}
+_02097428: ; 0x02097428
+ mov r0, r4
+ bl FUN_020974E0
+ orr r1, r0, #0x4
+ mov r0, r4
+ bl FUN_0209746C
+ ldmia sp!, {r4,pc}
+
+ arm_func_start FUN_02097440
+FUN_02097440: ; 0x02097440
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ mov r5, r0
+ mov r4, r1
+ bl FUN_020974E0
+ bic r1, r0, #0x3
+ mov r0, r5
+ orr r1, r1, r4
+ bl FUN_0209746C
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,pc}
+
+ arm_func_start FUN_0209746C
+FUN_0209746C: ; 0x0209746C
+ ldr ip, _0209747C ; =FUN_02097588
+ ldr r3, _02097480 ; =0x001FFFFF
+ mov r2, #0xb
+ bx r12
+ .balign 4
+_0209747C: .word FUN_02097588
+_02097480: .word 0x001FFFFF
+
+ arm_func_start FUN_02097484
+FUN_02097484: ; 0x02097484
+ ldr ip, _0209748C ; =FUN_020974C8
+ bx r12
+ .balign 4
+_0209748C: .word FUN_020974C8
+
+ arm_func_start FUN_02097490
+FUN_02097490: ; 0x02097490
+ stmdb sp!, {r4,lr}
+ mov r4, r0
+ bl FUN_020974C8
+ cmp r0, #0x3
+ bne _020974C0
+ mov r0, r4
+ bl FUN_020974E0
+ and r0, r0, #0x4
+ cmp r0, #0x4
+ moveq r0, #0x1
+ movne r0, #0x0
+ ldmia sp!, {r4,pc}
+_020974C0:
+ mov r0, #0x0
+ ldmia sp!, {r4,pc}
+
+ arm_func_start FUN_020974C8
+FUN_020974C8: ; 0x020974C8
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ bl FUN_020974E0
+ and r0, r0, #0x3
+ add sp, sp, #0x4
+ ldmia sp!, {pc}
+
+ arm_func_start FUN_020974E0
+FUN_020974E0: ; 0x020974E0
+ ldr r1, [r0, #0x0]
+ ldr r0, _020974F0 ; =0x001FFFFF
+ and r0, r0, r1, lsr #0xb
+ bx lr
+ .balign 4
+_020974F0: .word 0x001FFFFF
+
+ arm_func_start FUN_020974F4
+FUN_020974F4: ; 0x020974F4
+ str r1, [r0, #0x4]
+ bx lr
+
+ arm_func_start FUN_020974FC
+FUN_020974FC: ; 0x020974FC
+ str r1, [r0, #0x4]
+ str r2, [r0, #0x8]
+ bx lr
+
+ arm_func_start FUN_02097508
+FUN_02097508: ; 0x02097508
+ str r1, [r0, #0x8]
+ bx lr
+
+ arm_func_start FUN_02097510
+FUN_02097510: ; 0x02097510
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ mov r12, #0x0
+ mov r4, r1
+ mov r1, r2
+ ldr r3, _02097540 ; =0x000007FF
+ mov r2, r12
+ mov r5, r0
+ bl FUN_02097588
+ str r4, [r5, #0x4]
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,pc}
+ .balign 4
+_02097540: .word 0x000007FF
+
+ arm_func_start FUN_02097544
+FUN_02097544:
+ ldr r0, [r0, #0x4]
+ bx lr
+
+ arm_func_start FUN_0209754C
+FUN_0209754C: ; 0x0209754C
+ ldr r1, [r0, #0x8]
+ ldr r0, [r0, #0x4]
+ orr r1, r1, #0x0
+ orr r0, r0, #0x0
+ bx lr
+
+ arm_func_start FUN_02097560
+FUN_02097560:
+ ldr r0, [r0, #0x8]
+ bx lr
+
+ arm_func_start FUN_02097568
+FUN_02097568: ; 0x02097568
+ ldr r2, [r0, #0x0]
+ ldr r1, _02097584 ; =0x000007FF
+ ldr r0, [r0, #0x4]
+ and r1, r2, r1
+ orr r1, r1, #0x0
+ orr r0, r0, #0x0
+ bx lr
+ .balign 4
+_02097584: .word 0x000007FF
+
+ arm_func_start FUN_02097588
+FUN_02097588: ; 0x02097588
+ mvn r12, r3
+ ands r12, r1, r12
+ movne r0, #0x0
+ bxne lr
+ mvn r3, r3, lsl r2
+ ldr r12, [r0, #0x0]
+ and r3, r12, r3
+ orr r1, r3, r1, lsl r2
+ str r1, [r0, #0x0]
+ mov r0, #0x1
+ bx lr
+
+ arm_func_start FUN_020975B4
+FUN_020975B4: ; 0x020975B4
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ bl FUN_020A8850
+_020975C0: ; 0x020975C0
+ cmp r0, #0x0
+ movne r0, #0x1
+ moveq r0, #0x0
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+
+ arm_func_start FUN_020975D8
+FUN_020975D8: ; 0x020975D8
+ ldr r0, _020975EC ; =0x021C8CCC
+ ldr r1, [r0, #0x0]
+ orr r1, r1, #0x2
+ str r1, [r0, #0x0]
+ bx lr
+ .balign 4
+_020975EC: .word 0x021C8CCC
+
+ arm_func_start FUN_020975F0
+FUN_020975F0: ; 0x020975F0
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldr r1, _02097654 ; =0x021C8CC0
+ ldr r0, _02097658 ; =0x021C8CCC
+ ldr lr, [r1, #0x0]
+ ldr r3, [r0, #0x0]
+ ldr r12, [lr, #0x4]
+ ldr r2, _0209765C ; =0x021C8F04
+ ldr r1, _02097660 ; =0x021C8ED0
+ str r12, [r2, #0x0]
+ ldr r12, [lr, #0x8]
+ ldr r2, _02097664 ; =0x021C8EE0
+ str r12, [r1, #0x0]
+ ldr r12, [lr, #0xc]
+ ldr r1, _02097668 ; =0x021C8F1C
+ str r12, [r2, #0x0]
+ ldr r12, [lr, #0x10]
+ orr r2, r3, #0x2
+ str r12, [r1, #0x0]
+ ldr r3, [lr, #0x14]
+ str r3, [r1, #0x4]
+ str r2, [r0, #0x0]
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+ .balign 4
+_02097654: .word 0x021C8CC0
+_02097658: .word 0x021C8CCC
+_0209765C: .word 0x021C8F04
+_02097660: .word 0x021C8ED0
+_02097664: .word 0x021C8EE0
+_02097668: .word 0x021C8F1C
+
+ arm_func_start FUN_0209766C
+FUN_0209766C: ; 0x0209766C
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ ldr r0, _020977C0 ; =0x021C8CC0
+ ldr r5, _020977C4 ; =0x021C8CD4
+ ldr r4, [r0, #0x0]
+ mov r0, r5
+ mov r1, #0x0
+ mov r2, #0x30
+ bl MI_CpuFill8
+ ldr r0, _020977C8 ; =0x021C8CC4
+ ldr r2, [r4, #0x18]
+ mov r1, r5
+ str r2, [r1, #0x4]
+ ldr r12, [r4, #0x1c]
+ mov r2, #0x0
+ ldr r3, _020977CC ; =FUN_020975B4
+ ldr r0, [r0, #0x0]
+ str r12, [r1, #0x8]
+ str r3, [r1, #0x10]
+ str r2, [r1, #0x14]
+ str r2, [r1, #0x18]
+ str r0, [r1, #0x2c]
+ ldr r0, [r4, #0x24]
+ cmp r0, #0x0
+ strne r0, [r5, #0x20]
+ moveq r0, #0x4000
+ streq r0, [r5, #0x20]
+ ldr r0, [r4, #0x28]
+ cmp r0, #0x0
+ strne r0, [r5, #0x1c]
+ bne _02097700
+ ldr r1, _020977C0 ; =0x021C8CC0
+ ldr r0, [r5, #0x20]
+ ldr r1, [r1, #0x0]
+ ldr r1, [r1, #0x18]
+ blx r1
+ str r0, [r5, #0x1c]
+_02097700:
+ ldr r0, [r4, #0x30]
+ ldr r12, [r4, #0x34]
+ cmp r0, #0x0
+ moveq r0, #0x240
+ cmp r12, #0x0
+ sub r2, r0, #0x28
+ moveq r12, #0x10c0
+ add r0, r12, r12, lsr #0x1f
+ str r2, [r5, #0x24]
+ ldr r1, _020977D0 ; =0x021061DC
+ mov r3, r0, asr #0x1
+ ldr r0, _020977D4 ; =0x021C8F04
+ mov r2, #0x0
+ strh r12, [r1, #0x2]
+ strh r3, [r1, #0x4]
+ str r2, [r0, #0x0]
+ ldr r0, [r4, #0x0]
+ cmp r0, #0x0
+ beq _02097774
+ ldr r0, _020977D8 ; =0x021C8CCC
+ mov r1, #0x1
+ str r1, [r0, #0x0]
+ ldr r1, _020977DC ; =FUN_020975D8
+ str r2, [r5, #0x0]
+ ldr r0, _020977E0 ; =0x021C8CC8
+ str r1, [r5, #0xc]
+ ldr r0, [r0, #0x0]
+ str r0, [r5, #0x28]
+ b _0209778C
+_02097774:
+ ldr r0, _020977D8 ; =0x021C8CCC
+ mov r1, #0x1
+ str r2, [r0, #0x0]
+ ldr r0, _020977E4 ; =FUN_020975F0
+ str r1, [r5, #0x0]
+ str r0, [r5, #0xc]
+_0209778C:
+ ldr r0, [r4, #0x2c]
+ cmp r0, #0x0
+ moveq r0, #0xb
+ bl FUN_0209FC88
+ ldr r0, _020977E8 ; =FUN_0209F65C
+ bl FUN_020A87BC
+ ldr r0, _020977EC ; =FUN_020996C0
+ bl FUN_0209FD24
+ mov r0, r5
+ bl FUN_0209FD94
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,lr}
+ bx lr
+ .balign 4
+_020977C0: .word 0x021C8CC0
+_020977C4: .word 0x021C8CD4
+_020977C8: .word 0x021C8CC4
+_020977CC: .word FUN_020975B4
+_020977D0: .word 0x021061DC
+_020977D4: .word 0x021C8F04
+_020977D8: .word 0x021C8CCC
+_020977DC: .word FUN_020975D8
+_020977E0: .word 0x021C8CC8
+_020977E4: .word FUN_020975F0
+_020977E8: .word FUN_0209F65C
+_020977EC: .word FUN_020996C0
+
+ arm_func_start FUN_020977F0
+FUN_020977F0: ; 0x020977F0
+ stmdb sp!, {r4,lr}
+ ldr r0, _02097828 ; =0x021C8CC0
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0x20]
+ bl FUN_02097B78
+ movs r4, r0
+ bmi _0209781C
+ ldr r0, _0209782C ; =0x021061F4
+ bl FUN_02097F70
+ ldr r1, _02097830 ; =0x021C8CD0
+ str r0, [r1, #0x0]
+_0209781C:
+ mov r0, r4
+ ldmia sp!, {r4,lr}
+ bx lr
+ .balign 4
+_02097828: .word 0x021C8CC0
+_0209782C: .word 0x021061F4
+_02097830: .word 0x021C8CD0
+
+ arm_func_start FUN_02097834
+FUN_02097834: ; 0x02097834
+ stmdb sp!, {r4,lr}
+ mov r4, r0
+ ldr r0, _02097870 ; =0x02000BC4
+ bl OSi_ReferSymbol
+ ldr r0, _02097874 ; =0x021C8CC0
+ ldr r1, [r0, #0x0]
+ cmp r1, #0x0
+ movne r0, #0x0
+ ldmneia sp!, {r4,lr}
+ bxne lr
+ str r4, [r0, #0x0]
+ bl FUN_0209766C
+ bl FUN_020977F0
+ ldmia sp!, {r4,lr}
+ bx lr
+ .balign 4
+_02097870: .word 0x02000BC4
+_02097874: .word 0x021C8CC0
+
+ arm_func_start FUN_02097878
+FUN_02097878: ; 0x02097878
+ stmdb sp!, {r4-r9,lr}
+ sub sp, sp, #0x4
+ mov r9, r0
+ add r6, sp, #0x0
+ mov r4, #0x0
+ mov r5, #0x1
+_02097890:
+ mov r0, r9
+ mov r1, r6
+ mov r2, r5
+ bl OS_ReadMessage
+_020978A0: ; 0x020978A0
+ ldr r0, [sp, #0x0]
+ cmp r0, #0x0
+ addeq sp, sp, #0x4
+ ldmeqia sp!, {r4-r9,lr}
+ bxeq lr
+ ldr r1, [r0, #0x0]
+ blx r1
+ mov r7, r0
+ bl OS_DisableInterrupts
+ mov r8, r0
+ bl OS_DisableScheduler
+ mov r0, r9
+ mov r1, r4
+ mov r2, r4
+ bl OS_ReceiveMessage
+_020978DC: ; 0x020978DC
+ ldr r0, [sp, #0x0]
+ ldr r0, [r0, #0x4]
+ cmp r0, #0x0
+ strne r7, [r0, #0x6c]
+ ldr r0, [sp, #0x0]
+ ldr r0, [r0, #0x8]
+ cmp r0, #0x0
+ beq _02097908
+ mov r1, r7
+ mov r2, r4
+ bl OS_SendMessage
+_02097908:
+ ldr r0, [sp, #0x0]
+ bl FUN_02097A64
+ bl OS_EnableScheduler
+ mov r0, r8
+ bl OS_RestoreInterrupts
+ b _02097890
+_02097920: ; 0x02097920
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r9,lr}
+ bx lr
+
+ arm_func_start FUN_0209792C
+FUN_0209792C: ; 0x0209792C
+ stmdb sp!, {r4,lr}
+ mov r4, r1
+ bl FUN_02097A50
+ mov r1, r4
+ bl FUN_02097968
+ ldmia sp!, {r4,lr}
+ bx lr
+
+ arm_func_start FUN_02097948
+FUN_02097948:
+ ldr ip, _02097954 ; =FUN_02097968
+ ldr r0, [r0, #0x68]
+ bx r12
+ .balign 4
+_02097954: .word FUN_02097968
+
+ arm_func_start FUN_02097958
+FUN_02097958: ; 0x02097958
+ ldr ip, _02097964 ; =FUN_02097968
+ ldr r0, [r0, #0x64]
+ bx r12
+ .balign 4
+_02097964: .word FUN_02097968
+
+ arm_func_start FUN_02097968
+FUN_02097968: ; 0x02097968
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x2c
+ mov r4, r1
+ ldrsb r2, [r4, #0xd]
+ mov r5, r0
+ cmp r2, #0x1
+ bne _020979BC
+ add r0, sp, #0x8
+ add r1, sp, #0x4
+ mov r2, #0x1
+ bl OS_InitMessageQueue
+ add r2, sp, #0x8
+ mov r0, r5
+ mov r1, r4
+ str r2, [r4, #0x8]
+ bl FUN_020979F8
+ add r0, sp, #0x8
+ add r1, sp, #0x0
+ mov r2, #0x1
+ bl OS_ReceiveMessage
+ b _020979CC
+_020979BC:
+ mov r2, #0x0
+ str r2, [r4, #0x8]
+ bl FUN_020979F8
+_020979C8: ; 0x020979C8
+ str r0, [sp, #0x0]
+_020979CC:
+ ldr r0, [sp, #0x0]
+ add sp, sp, #0x2c
+ ldmia sp!, {r4-r5,lr}
+ bx lr
+
+ arm_func_start FUN_020979DC
+FUN_020979DC:
+ stmdb sp!, {r4,lr}
+ mov r4, r1
+ bl FUN_02097A50
+ mov r1, r4
+ bl FUN_020979F8
+ ldmia sp!, {r4,lr}
+ bx lr
+
+ arm_func_start FUN_020979F8
+FUN_020979F8:
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ movs r5, r1
+ beq _02097A14
+ ldrsb r1, [r5, #0xd]
+ ands r1, r1, #0x1
+ beq _02097A1C
+_02097A14:
+ mov r2, #0x1
+ b _02097A20
+_02097A1C:
+ mov r2, #0x0
+_02097A20:
+ mov r1, r5
+ bl OS_SendMessage
+ movs r4, r0
+ bne _02097A38
+ mov r0, r5
+ bl FUN_02097A64
+_02097A38:
+ cmp r4, #0x0
+ movne r0, #0x0
+ mvneq r0, #0x29
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,lr}
+ bx lr
+
+ arm_func_start FUN_02097A50
+FUN_02097A50: ; 0x02097A50
+ ldr r1, [r0, #0x64]
+ cmp r1, #0x0
+ ldreq r1, [r0, #0x68]
+ mov r0, r1
+ bx lr
+
+ arm_func_start FUN_02097A64
+FUN_02097A64:
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ movs r1, r0
+ addeq sp, sp, #0x4
+ ldmeqia sp!, {lr}
+ bxeq lr
+ ldr r0, _02097A94 ; =0x021C8D08
+ mov r2, #0x0
+ bl OS_SendMessage
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+ .balign 4
+_02097A94: .word 0x021C8D08
+
+ arm_func_start FUN_02097A98
+FUN_02097A98: ; 0x02097A98
+ stmdb sp!, {r4-r6,lr}
+ mov r4, r2
+ mov r6, r0
+ mov r0, r4
+ mov r5, r1
+ bl FUN_02097AE0
+_02097AB0: ; 0x02097AB0
+ cmp r0, #0x0
+ ldmeqia sp!, {r4-r6,lr}
+ bxeq lr
+ str r6, [r0, #0x0]
+ str r5, [r0, #0x4]
+ mov r1, #0x0
+ str r1, [r0, #0x8]
+ ldrsb r1, [r5, #0x73]
+ strb r1, [r0, #0xc]
+ strb r4, [r0, #0xd]
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+
+ arm_func_start FUN_02097AE0
+FUN_02097AE0:
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ mov r2, r0
+ ldr r0, _02097B10 ; =0x021C8D08
+ add r1, sp, #0x0
+ bl OS_ReceiveMessage
+_02097AF8: ; 0x02097AF8
+ cmp r0, #0x0
+ ldrne r0, [sp, #0x0]
+ moveq r0, #0x0
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+ .balign 4
+_02097B10: .word 0x021C8D08
+
+ arm_func_start FUN_02097B14
+FUN_02097B14: ; 0x02097B14
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldr r0, _02097B6C ; =0x021C8D08
+ ldr r1, [r0, #0x1c]
+ ldr r0, [r0, #0x14]
+ cmp r1, r0
+ addlt sp, sp, #0x4
+ mvnlt r0, #0x0
+ ldmltia sp!, {lr}
+ bxlt lr
+ ldr r0, _02097B70 ; =0x021C8CC0
+ ldr r1, _02097B74 ; =0x021C8D04
+ ldr r2, [r0, #0x0]
+ ldr r0, [r1, #0x0]
+ ldr r1, [r2, #0x1c]
+ blx r1
+ ldr r1, _02097B74 ; =0x021C8D04
+ mov r0, #0x0
+ str r0, [r1, #0x0]
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+ .balign 4
+_02097B6C: .word 0x021C8D08
+_02097B70: .word 0x021C8CC0
+_02097B74: .word 0x021C8D04
+
+ arm_func_start FUN_02097B78
+FUN_02097B78: ; 0x02097B78
+ stmdb sp!, {r4-r6,lr}
+ mov r4, r0
+ mov r0, #0x2c
+ mul r1, r4, r0
+ ldr r0, _02097C08 ; =0x021C8CC0
+ mov r2, r4, lsl #0x2
+ add r2, r2, #0x3
+ ldr r0, [r0, #0x0]
+ add r1, r1, #0x3
+ bic r5, r2, #0x3
+ bic r2, r1, #0x3
+ ldr r1, [r0, #0x18]
+ add r0, r2, r5
+ blx r1
+ movs r6, r0
+ mvneq r0, #0x0
+ ldmeqia sp!, {r4-r6,lr}
+ bxeq lr
+ ldr r0, _02097C0C ; =0x021C8D08
+ mov r1, r6
+ mov r2, r4
+ bl OS_InitMessageQueue
+_02097BD0: ; 0x02097BD0
+ cmp r4, #0x0
+ add r5, r6, r5
+ ble _02097BF4
+_02097BDC:
+ mov r0, r5
+ bl FUN_02097A64
+ sub r4, r4, #0x1
+ cmp r4, #0x0
+ add r5, r5, #0x2c
+ bgt _02097BDC
+_02097BF4:
+ ldr r1, _02097C10 ; =0x021C8D04
+ mov r0, #0x0
+ str r6, [r1, #0x0]
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+ .balign 4
+_02097C08: .word 0x021C8CC0
+_02097C0C: .word 0x021C8D08
+_02097C10: .word 0x021C8D04
+
+ arm_func_start FUN_02097C14
+FUN_02097C14: ; 0x02097C14
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0xc
+ mov r5, r2
+ mov r7, r0
+ mov r0, r5
+ mov r6, r1
+ bl FUN_02097DC4
+ add r4, r7, r0
+ ldrb r2, [r5, #0x3]
+ mov r0, r6
+ mov r1, r7
+ bl OS_InitMessageQueue
+ add r0, r6, #0xe0
+ bl OS_InitMutex
+ ldrh r2, [r5, #0x0]
+ add r0, r6, #0x20
+ ldr r1, _02097C88 ; =FUN_02097878
+ str r2, [sp, #0x0]
+ ldrb r12, [r5, #0x2]
+ mov r2, r6
+ mov r3, r4
+ str r12, [sp, #0x4]
+ bl OS_CreateThread
+ add r0, r6, #0x20
+ bl OS_WakeupThreadDirect
+ mov r0, r4
+ add sp, sp, #0xc
+ ldmia sp!, {r4-r7,lr}
+ bx lr
+ .balign 4
+_02097C88: .word FUN_02097878
+
+ arm_func_start FUN_02097C8C
+FUN_02097C8C: ; 0x02097C8C
+ stmdb sp!, {r4,lr}
+ mov r4, r0
+ cmp r2, #0x0
+ moveq r0, #0x0
+ str r0, [r1, #0x4]
+ mov r0, r2
+ str r2, [r1, #0x0]
+ bl FUN_02099F6C
+_02097CAC: ; 0x02097CAC
+ add r0, r4, r0
+ ldmia sp!, {r4,lr}
+ bx lr
+
+ arm_func_start FUN_02097CB8
+FUN_02097CB8: ; 0x02097CB8
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0x4
+ mov r6, r1
+ ldrsb r1, [r6, #0x0]
+ mov r7, r0
+ add r4, r7, #0x80
+ strb r1, [r7, #0x73]
+ ldrsb r0, [r6, #0x1]
+ strb r0, [r7, #0x72]
+ ldrh r0, [r6, #0x2]
+ cmp r0, #0x0
+ beq _02097D40
+ str r4, [r7, #0x64]
+ ldrh r2, [r6, #0x4]
+ mov r1, r4
+ add r0, r4, #0x114
+ strh r2, [r4, #0xfc]
+ add r2, r6, #0x10
+ mov r5, r4
+ bl FUN_02097C14
+ ldrh r2, [r6, #0x2]
+ add r1, r7, #0x3c
+ bl FUN_02097C8C
+ ldrh r2, [r6, #0x8]
+ add r1, r7, #0x50
+ bl FUN_02097C8C
+ ldrh r3, [r6, #0xe]
+ add r1, r5, #0x100
+ mov r2, #0x0
+ strh r3, [r1, #0xa]
+ str r2, [r5, #0x110]
+ ldr r1, [r5, #0x110]
+ mov r4, r0
+ str r1, [r5, #0x10c]
+_02097D40:
+ ldrh r0, [r6, #0x6]
+ cmp r0, #0x0
+ ldreq r0, _02097DC0 ; =0x021C8CD0
+ ldreq r0, [r0, #0x0]
+ ldreq r0, [r0, #0x68]
+ streq r0, [r7, #0x68]
+ beq _02097DB0
+ str r4, [r7, #0x68]
+ mov r1, r4
+ str r7, [r4, #0x10c]
+ add r0, r4, #0x110
+ add r2, r6, #0x14
+ mov r5, r4
+ bl FUN_02097C14
+ ldrh r2, [r6, #0x6]
+ add r1, r7, #0x48
+ bl FUN_02097C8C
+ ldrh r2, [r6, #0xa]
+ add r1, r7, #0x58
+ bl FUN_02097C8C
+ ldrh r2, [r6, #0xc]
+ add r1, r4, #0xf8
+ bl FUN_02097C8C
+ mov r1, #0x0
+ str r1, [r5, #0x108]
+ ldr r1, [r5, #0x108]
+ mov r4, r0
+ str r1, [r5, #0x104]
+_02097DB0:
+ mov r0, r4
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r7,lr}
+ bx lr
+ .balign 4
+_02097DC0: .word 0x021C8CD0
+
+ arm_func_start FUN_02097DC4
+FUN_02097DC4: ; 0x02097DC4
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ mov r5, r0
+ ldrb r0, [r5, #0x3]
+ mov r0, r0, lsl #0x2
+ bl FUN_02099F6C
+ mov r4, r0
+ ldrh r0, [r5, #0x0]
+ bl FUN_02099F6C
+_02097DE8: ; 0x02097DE8
+ add r0, r4, r0
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,lr}
+ bx lr
+
+ arm_func_start FUN_02097DF8
+FUN_02097DF8: ; 0x02097DF8
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ mov r5, r0
+ ldrh r0, [r5, #0x2]
+ mov r4, #0x80
+ cmp r0, #0x0
+ beq _02097E38
+ add r4, r4, #0x114
+ bl FUN_02099F6C
+ add r4, r4, r0
+ ldrh r0, [r5, #0x8]
+ bl FUN_02099F6C
+ add r4, r4, r0
+ add r0, r5, #0x10
+ bl FUN_02097DC4
+ add r4, r4, r0
+_02097E38:
+ ldrh r0, [r5, #0x6]
+ cmp r0, #0x0
+ beq _02097E74
+ add r4, r4, #0x110
+ bl FUN_02099F6C
+ add r4, r4, r0
+ ldrh r0, [r5, #0xa]
+ bl FUN_02099F6C
+ add r4, r4, r0
+ ldrh r0, [r5, #0xc]
+ bl FUN_02099F6C
+ add r4, r4, r0
+ add r0, r5, #0x14
+ bl FUN_02097DC4
+ add r4, r4, r0
+_02097E74:
+ mov r0, r4
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,lr}
+ bx lr
+
+ arm_func_start FUN_02097E84
+FUN_02097E84: ; 0x02097E84
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0x4
+ mov r7, r0
+ bl FUN_02097DF8
+ mov r4, r0
+ bl OS_DisableInterrupts
+ ldr r1, _02097EF4 ; =0x021C8CC0
+ mov r5, r0
+ ldr r1, [r1, #0x0]
+ mov r0, r4
+ ldr r1, [r1, #0x18]
+ blx r1
+ movs r6, r0
+ beq _02097EDC
+ mov r2, r4
+ mov r1, #0x0
+ bl MI_CpuFill8
+ mov r0, r6
+ mov r1, r7
+ bl FUN_02097CB8
+ mov r0, r6
+ bl FUN_0209A094
+_02097EDC:
+ mov r0, r5
+ bl OS_RestoreInterrupts
+ mov r0, r6
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r7,lr}
+ bx lr
+ .balign 4
+_02097EF4: .word 0x021C8CC0
+
+ arm_func_start FUN_02097EF8
+FUN_02097EF8: ; 0x02097EF8
+ stmdb sp!, {r4,lr}
+ ldr r4, [r0, #0x4]
+ mov r0, r4
+ bl FUN_0209CC28
+ ldrsb r0, [r4, #0x73]
+ ldr r1, [r4, #0x68]
+ cmp r0, #0x4
+ addls pc, pc, r0, lsl #0x2
+ b _02097F58
+_02097F1C:
+ b _02097F30
+_02097F20:
+ b _02097F40
+_02097F24:
+ b _02097F54
+_02097F28:
+ b _02097F58
+_02097F2C:
+ b _02097F30
+_02097F30:
+ add r0, r1, #0x20
+ bl FUN_0209CB0C
+ bl FUN_0209CB44
+ b _02097F58
+_02097F40:
+ bl FUN_0209CB44
+ bl FUN_0209CBE8
+ ldr r0, _02097F6C ; =FUN_02098550
+ bl FUN_0209CAA8
+_02097F50: ; 0x02097F50
+ b _02097F58
+_02097F54:
+ bl FUN_0209CBE8
+_02097F58:
+ mov r0, #0x1
+ strh r0, [r4, #0x70]
+ mov r0, #0x0
+ ldmia sp!, {r4,lr}
+ bx lr
+ .balign 4
+_02097F6C: .word FUN_02098550
+
+ arm_func_start FUN_02097F70
+FUN_02097F70: ; 0x02097F70
+ stmdb sp!, {r4,lr}
+ bl FUN_02097E84
+ movs r4, r0
+ mvneq r0, #0x30
+ ldmeqia sp!, {r4,lr}
+ bxeq lr
+ ldr r0, _02097FB0 ; =FUN_02097EF8
+ mov r1, r4
+ mov r2, #0x1
+ bl FUN_02097A98
+ mov r1, r0
+ mov r0, r4
+ bl FUN_0209792C
+ mov r0, r4
+ ldmia sp!, {r4,lr}
+ bx lr
+ .balign 4
+_02097FB0: .word FUN_02097EF8
+
+ arm_func_start FUN_02097FB4
+FUN_02097FB4: ; 0x02097FB4
+ stmdb sp!, {r4-r6,lr}
+ sub sp, sp, #0x8
+ mov r6, r0
+ ldr r4, [r6, #0x4]
+ ldr r5, [r4, #0x64]
+ add r0, r5, #0xe0
+ bl OS_LockMutex
+ mov r1, #0x0
+ ldrh r0, [r6, #0x10]
+ mov r2, r1
+ bl FUN_0209CB78
+ bl FUN_0209CA54
+ mov r2, #0x0
+ add r0, sp, #0x0
+ add r1, sp, #0x4
+ str r2, [r5, #0xf8]
+ bl FUN_0209C8E0
+ ldrh r2, [sp, #0x0]
+ ldr r1, [r6, #0x14]
+ strh r2, [r1, #0x0]
+ ldr r1, [r6, #0x18]
+ str r0, [r1, #0x0]
+ ldrsh r1, [r4, #0x70]
+ add r0, r5, #0xe0
+ orr r1, r1, #0x4
+ strh r1, [r4, #0x70]
+ bl OS_UnlockMutex
+_02098020: ; 0x02098020
+ mov r0, #0x0
+ add sp, sp, #0x8
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+
+ arm_func_start FUN_02098030
+FUN_02098030:
+ stmdb sp!, {r4-r6,lr}
+ mov r6, r0
+ mov r5, r1
+ mov r4, r2
+ bl FUN_02099FA8
+_02098044: ; 0x02098044
+ cmp r0, #0x0
+ mvnne r0, #0x1b
+ ldmneia sp!, {r4-r6,lr}
+ bxne lr
+ cmp r6, #0x0
+ mov r1, #0x0
+ beq _0209806C
+ ldrsh r0, [r6, #0x70]
+ ands r0, r0, #0x1
+ movne r1, #0x1
+_0209806C:
+ cmp r1, #0x0
+ mvneq r0, #0x26
+ ldmeqia sp!, {r4-r6,lr}
+ bxeq lr
+ ldrsh r0, [r6, #0x70]
+ ands r0, r0, #0x2
+ mvnne r0, #0x1b
+ ldmneia sp!, {r4-r6,lr}
+ bxne lr
+ ldrsb r0, [r6, #0x73]
+ mov r1, #0x1
+ cmp r0, #0x0
+ beq _020980A8
+ cmp r0, #0x4
+ movne r1, #0x0
+_020980A8:
+ cmp r1, #0x0
+ mvneq r0, #0x1b
+ ldmeqia sp!, {r4-r6,lr}
+ bxeq lr
+ ldrsb r2, [r6, #0x72]
+ cmp r2, #0x1
+ mvnne r0, #0x5
+ ldmneia sp!, {r4-r6,lr}
+ bxne lr
+ ldrh r0, [r6, #0x74]
+ cmp r0, #0x0
+ mvneq r0, #0x1b
+ ldmeqia sp!, {r4-r6,lr}
+ bxeq lr
+ ldr r0, _0209811C ; =FUN_02097FB4
+ mov r1, r6
+ bl FUN_02097A98
+ mov r1, r0
+ ldrh r2, [r6, #0x74]
+ mov r0, r6
+ strh r2, [r1, #0x10]
+ str r5, [r1, #0x14]
+ str r4, [r1, #0x18]
+ ldrsh r2, [r6, #0x70]
+ orr r2, r2, #0x2
+ strh r2, [r6, #0x70]
+ bl FUN_02097958
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+ .balign 4
+_0209811C: .word FUN_02097FB4
+
+ arm_func_start FUN_02098120
+FUN_02098120:
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0x4
+ mov r6, r0
+ mov r5, r1
+ mov r4, r2
+ bl FUN_02099FA8
+_02098138: ; 0x02098138
+ cmp r0, #0x0
+ addne sp, sp, #0x4
+ mvnne r0, #0x1b
+ ldmneia sp!, {r4-r7,lr}
+ bxne lr
+ cmp r6, #0x0
+ mov r1, #0x0
+ beq _02098164
+ ldrsh r0, [r6, #0x70]
+ ands r0, r0, #0x1
+ movne r1, #0x1
+_02098164:
+ cmp r1, #0x0
+ addeq sp, sp, #0x4
+ mvneq r0, #0x26
+ ldmeqia sp!, {r4-r7,lr}
+ bxeq lr
+ ldrsh r0, [r6, #0x70]
+ ands r0, r0, #0x2
+ addne sp, sp, #0x4
+ mvnne r0, #0x1b
+ ldmneia sp!, {r4-r7,lr}
+ bxne lr
+ ldrsb r0, [r6, #0x73]
+ mov r1, #0x1
+ cmp r0, #0x0
+ beq _020981A8
+ cmp r0, #0x4
+ movne r1, #0x0
+_020981A8:
+ cmp r1, #0x0
+ addeq sp, sp, #0x4
+ mvneq r0, #0x1b
+ ldmeqia sp!, {r4-r7,lr}
+ bxeq lr
+ ldrsb r0, [r6, #0x72]
+ cmp r0, #0x1
+ addne sp, sp, #0x4
+ mvnne r0, #0x5
+ ldmneia sp!, {r4-r7,lr}
+ bxne lr
+ ldr r0, _02098228 ; =0x021061DC
+ bl FUN_02097F70
+ movs r7, r0
+ addmi sp, sp, #0x4
+ ldmmiia sp!, {r4-r7,lr}
+ bxmi lr
+ ldrh r1, [r6, #0x74]
+ bl FUN_020984B4
+_020981F4: ; 0x020981F4
+ cmp r0, #0x0
+ addlt sp, sp, #0x4
+ ldmltia sp!, {r4-r7,lr}
+ bxlt lr
+ mov r0, r7
+ mov r1, r5
+ mov r2, r4
+ bl FUN_02098030
+_02098214: ; 0x02098214
+ cmp r0, #0x0
+ movge r0, r7
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r7,lr}
+ bx lr
+ .balign 4
+_02098228: .word 0x021061DC
+
+ arm_func_start FUN_0209822C
+FUN_0209822C: ; 0x0209822C
+ stmdb sp!, {r4,lr}
+ mov r4, r0
+ bl FUN_02099FA8
+_02098238: ; 0x02098238
+ cmp r0, #0x0
+ mvnne r0, #0x1b
+ ldmneia sp!, {r4,lr}
+ bxne lr
+ cmp r4, #0x0
+ mov r1, #0x0
+ beq _02098260
+ ldrsh r0, [r4, #0x70]
+ ands r0, r0, #0x1
+ movne r1, #0x1
+_02098260:
+ cmp r1, #0x0
+ mvneq r0, #0x26
+ ldmeqia sp!, {r4,lr}
+ bxeq lr
+ ldrsh r0, [r4, #0x70]
+ ands r0, r0, #0x2
+ mvnne r0, #0x1b
+ ldmneia sp!, {r4,lr}
+ bxne lr
+ ldrsb r0, [r4, #0x73]
+ mov r1, #0x1
+ cmp r0, #0x0
+ beq _0209829C
+ cmp r0, #0x4
+ movne r1, #0x0
+_0209829C:
+ cmp r1, #0x0
+ mvneq r0, #0x1b
+ ldmeqia sp!, {r4,lr}
+ bxeq lr
+ ldrsb r0, [r4, #0x72]
+ cmp r0, #0x1
+ moveq r0, #0x0
+ mvnne r0, #0x5
+ ldmia sp!, {r4,lr}
+ bx lr
+
+ arm_func_start FUN_020982C4
+FUN_020982C4: ; 0x020982C4
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0x4
+ mov r7, r0
+ ldr r4, [r7, #0x4]
+ mov r5, #0x0
+ ldr r6, [r4, #0x64]
+ add r0, r6, #0xe0
+ bl OS_LockMutex
+ ldrh r0, [r7, #0x10]
+ ldrh r1, [r7, #0x12]
+ ldr r2, [r7, #0x14]
+ bl FUN_0209CB78
+ mov r0, r5
+ str r0, [r6, #0xf8]
+ ldrsb r0, [r7, #0xc]
+ cmp r0, #0x0
+ beq _02098310
+ cmp r0, #0x4
+ bne _02098318
+_02098310:
+ bl FUN_0209C934
+ mov r5, r0
+_02098318:
+ add r0, r6, #0xe0
+ bl OS_UnlockMutex
+_02098320: ; 0x02098320
+ cmp r5, #0x0
+ ldrnesh r1, [r4, #0x70]
+ mvnne r0, #0x4b
+ moveq r0, #0x0
+ orrne r1, r1, #0x40
+ strneh r1, [r4, #0x70]
+ ldreqsh r1, [r4, #0x70]
+ orreq r1, r1, #0x4
+ streqh r1, [r4, #0x70]
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r7,lr}
+ bx lr
+
+ arm_func_start FUN_02098350
+FUN_02098350: ; 0x02098350
+ stmdb sp!, {r4,lr}
+ mov r4, r0
+ ldrsb r2, [r4, #0x72]
+ ldr r0, _020983AC ; =FUN_020982C4
+ mov r1, r4
+ bl FUN_02097A98
+ movs r1, r0
+ mvneq r0, #0x20
+ ldmeqia sp!, {r4,lr}
+ bxeq lr
+ ldrh r2, [r4, #0x74]
+ mov r0, r4
+ strh r2, [r1, #0x10]
+ ldrh r2, [r4, #0x76]
+ strh r2, [r1, #0x12]
+ ldr r2, [r4, #0x78]
+ str r2, [r1, #0x14]
+ ldrsh r2, [r4, #0x70]
+ orr r2, r2, #0x2
+ strh r2, [r4, #0x70]
+ bl FUN_02097958
+ ldmia sp!, {r4,lr}
+ bx lr
+ .balign 4
+_020983AC: .word FUN_020982C4
+
+ arm_func_start FUN_020983B0
+FUN_020983B0: ; 0x020983B0
+ stmdb sp!, {r4-r6,lr}
+ mov r6, r0
+ mov r5, r1
+ mov r4, r2
+ bl FUN_02099FA8
+_020983C4: ; 0x020983C4
+ cmp r0, #0x0
+ bne _020983D8
+ ldrsh r0, [r6, #0x70]
+ ands r0, r0, #0x8
+ beq _020983E4
+_020983D8:
+ mvn r0, #0x1b
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+_020983E4:
+ cmp r6, #0x0
+ mov r1, #0x0
+ beq _020983FC
+ ldrsh r0, [r6, #0x70]
+ ands r0, r0, #0x1
+ movne r1, #0x1
+_020983FC:
+ cmp r1, #0x0
+ mvneq r0, #0x26
+ ldmeqia sp!, {r4-r6,lr}
+ bxeq lr
+ ldrsb r0, [r6, #0x73]
+ mov r1, #0x1
+ cmp r0, #0x0
+ beq _02098424
+ cmp r0, #0x4
+ movne r1, #0x0
+_02098424:
+ cmp r1, #0x0
+ beq _0209849C
+ ldrsh r0, [r6, #0x70]
+ ands r0, r0, #0x4
+ beq _02098450
+ ldrsb r0, [r6, #0x72]
+ cmp r0, #0x1
+ mvneq r0, #0x1d
+ movne r0, #0x0
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+_02098450:
+ ldrsh r0, [r6, #0x70]
+ ands r0, r0, #0x2
+ beq _02098478
+ ldrsh r0, [r6, #0x70]
+ ands r0, r0, #0x40
+ ldrne r0, [r6, #0x6c]
+ ldreq r0, _020984B0 ; =0x021061C0
+ ldreq r0, [r0, #0x0]
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+_02098478:
+ strh r5, [r6, #0x76]
+ mov r0, r6
+ str r4, [r6, #0x78]
+ bl FUN_02098350
+ ldrsb r1, [r6, #0x72]
+ cmp r1, #0x1
+ mvnne r0, #0x19
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+_0209849C:
+ strh r5, [r6, #0x76]
+ str r4, [r6, #0x78]
+ mov r0, #0x0
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+ .balign 4
+_020984B0: .word 0x021061C0
+
+ arm_func_start FUN_020984B4
+FUN_020984B4:
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ mov r4, r0
+ mov r5, r1
+ bl FUN_02099FA8
+_020984C8: ; 0x020984C8
+ cmp r0, #0x0
+ addne sp, sp, #0x4
+ mvnne r0, #0x1b
+ ldmneia sp!, {r4-r5,lr}
+ bxne lr
+ cmp r4, #0x0
+ mov r1, #0x0
+ beq _020984F4
+ ldrsh r0, [r4, #0x70]
+ ands r0, r0, #0x1
+ movne r1, #0x1
+_020984F4:
+ cmp r1, #0x0
+ addeq sp, sp, #0x4
+ mvneq r0, #0x26
+ ldmeqia sp!, {r4-r5,lr}
+ bxeq lr
+ ldrsh r0, [r4, #0x70]
+ ands r0, r0, #0x2
+ addne sp, sp, #0x4
+ mvnne r0, #0x6
+ ldmneia sp!, {r4-r5,lr}
+ bxne lr
+ strh r5, [r4, #0x74]
+ ldrsb r0, [r4, #0x73]
+ cmp r0, #0x1
+ addne sp, sp, #0x4
+ movne r0, #0x0
+ ldmneia sp!, {r4-r5,lr}
+ bxne lr
+ mov r0, r4
+ bl FUN_02098350
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,lr}
+ bx lr
+
+ arm_func_start FUN_02098550
+FUN_02098550: ; 0x02098550
+ stmdb sp!, {r4-r9,lr}
+ sub sp, sp, #0x4
+ mov r7, r2
+ ldr r6, [r7, #0x64]
+ mov r9, r0
+ mov r8, r1
+ bl OS_DisableInterrupts
+ add r1, r6, #0x100
+ ldrh r2, [r1, #0x8]
+ ldrh r1, [r1, #0xa]
+ mov r4, r0
+ add r0, r2, r8
+ cmp r1, r0
+ blo _02098618
+ ldr r1, _02098668 ; =0x021C8CC0
+ add r0, r8, #0xc
+ ldr r1, [r1, #0x0]
+ ldr r1, [r1, #0x18]
+ blx r1
+ movs r5, r0
+ beq _02098604
+ add r1, r6, #0x100
+ ldrh r3, [r1, #0x8]
+ mov r2, #0x0
+ mov r0, r9
+ add r3, r3, r8
+ strh r3, [r1, #0x8]
+ str r2, [r5, #0x0]
+ strh r8, [r5, #0x4]
+ ldrh r3, [r7, #0x18]
+ mov r2, r8
+ add r1, r5, #0xc
+ strh r3, [r5, #0x6]
+ ldr r3, [r7, #0x1c]
+ str r3, [r5, #0x8]
+ bl MI_CpuCopy8
+ ldr r0, [r6, #0x100]
+ cmp r0, #0x0
+ ldrne r0, [r6, #0x100]
+ strne r5, [r0, #0x0]
+ str r5, [r6, #0x100]
+ ldr r0, [r6, #0x104]
+ cmp r0, #0x0
+ streq r5, [r6, #0x104]
+ b _02098628
+_02098604:
+ ldr r0, _0209866C ; =0x021C8D28
+ ldr r1, [r0, #0x0]
+ add r1, r1, #0x1
+ str r1, [r0, #0x0]
+ b _02098628
+_02098618:
+ ldr r0, _0209866C ; =0x021C8D28
+ ldr r1, [r0, #0x4]
+ add r1, r1, #0x1
+ str r1, [r0, #0x4]
+_02098628:
+ ldrh r0, [r7, #0x74]
+ cmp r0, #0x0
+ ldreqh r0, [r7, #0xa]
+ streqh r0, [r7, #0x74]
+ ldrh r1, [r7, #0x1a]
+ add r0, r6, #0x10c
+ strh r1, [r7, #0x18]
+ ldr r1, [r7, #0x20]
+ str r1, [r7, #0x1c]
+ bl OS_WakeupThread
+ mov r0, r4
+ bl OS_RestoreInterrupts
+ mov r0, #0x1
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r9,lr}
+ bx lr
+ .balign 4
+_02098668: .word 0x021C8CC0
+_0209866C: .word 0x021C8D28
+
+ arm_func_start FUN_02098670
+FUN_02098670: ; 0x02098670
+ stmdb sp!, {r4-r11,lr}
+ sub sp, sp, #0x14
+ mov r10, r0
+ ldr r9, [r10, #0x64]
+ str r1, [sp, #0x0]
+ ldr r0, [r9, #0x104]
+ str r2, [sp, #0x4]
+ str r3, [sp, #0x8]
+ bl OS_DisableInterrupts
+ ldr r8, [r9, #0x104]
+ str r0, [sp, #0xc]
+ cmp r8, #0x0
+ bne _02098710
+ ldr r0, [sp, #0x3c]
+ and r7, r0, #0x1
+ add r6, r9, #0x10c
+ mov r4, #0x1
+ mov r5, #0x0
+_020986B8:
+ cmp r7, #0x0
+ mvneq r11, #0x5
+ beq _02098710
+ mov r0, r6
+ bl OS_SleepThread
+ mov r0, r10
+ bl FUN_02099FA8
+_020986D4: ; 0x020986D4
+ cmp r0, #0x0
+ bne _020986FC
+ mov r1, r5
+ cmp r10, #0x0
+ beq _020986F4
+ ldrsh r0, [r10, #0x70]
+ ands r0, r0, #0x1
+ movne r1, r4
+_020986F4:
+ cmp r1, #0x0
+ bne _02098704
+_020986FC:
+ mvn r11, #0x37
+ b _02098710
+_02098704:
+ ldr r8, [r9, #0x104]
+ cmp r8, #0x0
+ beq _020986B8
+_02098710:
+ cmp r8, #0x0
+ beq _020987A4
+ ldrh r1, [r8, #0x4]
+ ldr r0, [sp, #0x4]
+ cmp r0, r1
+ strgt r1, [sp, #0x4]
+ ldr r1, [sp, #0x0]
+ ldr r2, [sp, #0x4]
+ add r0, r8, #0xc
+ bl MI_CpuCopy8
+ ldr r0, [sp, #0x8]
+ cmp r0, #0x0
+ ldrneh r1, [r8, #0x6]
+ strneh r1, [r0, #0x0]
+ ldr r1, [sp, #0x38]
+ cmp r1, #0x0
+ ldrne r0, [r8, #0x8]
+ strne r0, [r1, #0x0]
+ ldrsb r0, [r9, #0xfe]
+ ldrh r11, [r8, #0x4]
+ cmp r0, #0x0
+ bne _020987A4
+ ldr r0, [r8, #0x0]
+ ldr r1, _020987BC ; =0x021C8CC0
+ str r0, [r9, #0x104]
+ ldr r0, [r8, #0x0]
+ cmp r0, #0x0
+ moveq r0, #0x0
+ streq r0, [r9, #0x100]
+ ldr r1, [r1, #0x0]
+ mov r0, r8
+ ldr r1, [r1, #0x1c]
+ blx r1
+ add r0, r9, #0x100
+ ldrh r1, [r0, #0x8]
+ sub r1, r1, r11
+ strh r1, [r0, #0x8]
+_020987A4:
+ ldr r0, [sp, #0xc]
+ bl OS_RestoreInterrupts
+ mov r0, r11
+ add sp, sp, #0x14
+ ldmia sp!, {r4-r11,lr}
+ bx lr
+ .balign 4
+_020987BC: .word 0x021C8CC0
+
+ arm_func_start FUN_020987C0
+FUN_020987C0: ; 0x020987C0
+ stmdb sp!, {r4-r6,lr}
+ ldr r6, [r0, #0x64]
+ bl OS_DisableInterrupts
+ ldr r4, [r6, #0xf8]
+ mov r5, r0
+ cmp r4, #0x0
+ beq _020987EC
+ mov r1, #0x0
+ mov r0, r4
+ str r1, [r6, #0xf8]
+ bl FUN_0209C52C
+_020987EC:
+ mov r0, r5
+ bl OS_RestoreInterrupts
+ mov r0, r4
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+
+ arm_func_start FUN_02098800
+FUN_02098800: ; 0x02098800
+ ldr ip, _0209880C ; =FUN_020987C0
+ ldr r0, [r0, #0x4]
+ bx r12
+ .balign 4
+_0209880C: .word FUN_020987C0
+
+ arm_func_start FUN_02098810
+FUN_02098810:
+ stmdb sp!, {r4,lr}
+ mov r4, r0
+ ldr r1, [r4, #0x64]
+ ldrh r0, [r1, #0xfc]
+ ldr r1, [r1, #0xf8]
+ cmp r1, r0
+ movlt r0, #0x0
+ ldmltia sp!, {r4,lr}
+ bxlt lr
+ ldr r0, _02098864 ; =FUN_02098800
+ mov r1, r4
+ mov r2, #0x0
+ bl FUN_02097A98
+ movs r1, r0
+ mvneq r0, #0x20
+ ldmeqia sp!, {r4,lr}
+ bxeq lr
+ mov r0, r4
+ bl FUN_02097958
+ ldmia sp!, {r4,lr}
+ bx lr
+ .balign 4
+_02098864: .word FUN_02098800
+
+ arm_func_start FUN_02098868
+FUN_02098868: ; 0x02098868
+ stmdb sp!, {r4-r11,lr}
+ sub sp, sp, #0x14
+ ldr r9, [r0, #0x4]
+ ldr r1, [r0, #0x10]
+ ldr r8, [r9, #0x64]
+ str r1, [sp, #0x4]
+ ldr r1, [r0, #0x18]
+ ldr r10, [r0, #0x14]
+ ldr r0, [r0, #0x1c]
+ ldr r7, [r8, #0xf8]
+ str r1, [sp, #0x8]
+ str r0, [sp, #0xc]
+ add r11, sp, #0x10
+ mov r5, #0x0
+ mov r6, #0x1
+ mov r4, #0xa
+_020988A8:
+ mov r0, r11
+ bl FUN_0209C638
+_020988B0: ; 0x020988B0
+ cmp r0, #0x0
+ beq _02098904
+ ldr r1, [sp, #0x10]
+ sub r1, r1, r7
+ cmp r1, #0x0
+ bgt _02098904
+ ldrsb r0, [r9, #0x73]
+ mov r1, r6
+ cmp r0, #0x0
+ beq _020988E0
+ cmp r0, #0x4
+ movne r1, r5
+_020988E0:
+ cmp r1, #0x0
+ beq _020988F8
+ ldrb r0, [r9, #0x8]
+ cmp r0, #0x4
+ movne r0, #0x0
+ bne _02098904
+_020988F8:
+ mov r0, r4
+ bl OS_Sleep
+ b _020988A8
+_02098904:
+ ldrsb r1, [r9, #0x73]
+ cmp r1, #0x4
+ bne _02098954
+ cmp r0, #0x0
+ addeq sp, sp, #0x14
+ moveq r0, #0x0
+ ldmeqia sp!, {r4-r11,lr}
+ bxeq lr
+ ldr r1, [sp, #0x10]
+ cmp r10, r1
+ movhi r10, r1
+ ldr r1, [sp, #0x4]
+ mov r2, r10
+ bl MI_CpuCopy8
+ mov r0, r10
+ bl FUN_0209C52C
+ add sp, sp, #0x14
+ mov r0, r10
+ ldmia sp!, {r4-r11,lr}
+ bx lr
+_02098954:
+ cmp r0, #0x0
+ moveq r4, #0x0
+ beq _02098980
+ ldr r4, [sp, #0xc]
+ ldr r1, [sp, #0x4]
+ ldr r3, [sp, #0x8]
+ mov r0, r9
+ mov r2, r10
+ str r4, [sp, #0x0]
+ bl FUN_02098AA4
+ mov r4, r0
+_02098980:
+ cmp r4, #0x0
+ addle sp, sp, #0x14
+ movle r0, r4
+ ldmleia sp!, {r4-r11,lr}
+ bxle lr
+ ldrh r0, [r8, #0xfc]
+ ldr r1, [r8, #0xf8]
+ cmp r1, r0
+ blt _020989AC
+ mov r0, r9
+ bl FUN_020987C0
+_020989AC:
+ mov r0, r4
+ add sp, sp, #0x14
+ ldmia sp!, {r4-r11,lr}
+ bx lr
+
+ arm_func_start FUN_020989BC
+FUN_020989BC: ; 0x020989BC
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0x4
+ mov r7, r0
+ mov r6, r1
+ mov r5, r2
+ ldr r0, _02098A10 ; =FUN_02098868
+ mov r1, r7
+ mov r2, #0x1
+ mov r4, r3
+ bl FUN_02097A98
+ mov r1, r0
+ str r6, [r1, #0x10]
+ str r5, [r1, #0x14]
+ ldr r2, [sp, #0x18]
+ str r4, [r1, #0x18]
+ mov r0, r7
+ str r2, [r1, #0x1c]
+ bl FUN_02097958
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r7,lr}
+ bx lr
+ .balign 4
+_02098A10: .word FUN_02098868
+
+ arm_func_start FUN_02098A14
+FUN_02098A14:
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ ldr r0, [r0, #0x64]
+ ldr r5, [r0, #0xc4]
+ ldr r4, [r0, #0xf8]
+ ldr r0, [r5, #0x44]
+ subs lr, r0, r4
+ bmi _02098A78
+ ldrh r12, [r5, #0xa]
+ ldr r0, [sp, #0x10]
+ cmp lr, #0x0
+ strh r12, [r2, #0x0]
+ ldrh r2, [r5, #0x18]
+ strh r2, [r3, #0x0]
+ ldr r2, [r5, #0x1c]
+ str r2, [r0, #0x0]
+ str lr, [r1, #0x0]
+ bne _02098A90
+ ldrb r0, [r5, #0x8]
+ cmp r0, #0x4
+ beq _02098A90
+ add sp, sp, #0x4
+ mov r0, #0x0
+ ldmia sp!, {r4-r5,lr}
+ bx lr
+_02098A78:
+ mvn r0, #0x0
+ str r0, [r1, #0x0]
+ add sp, sp, #0x4
+ mov r0, #0x0
+ ldmia sp!, {r4-r5,lr}
+ bx lr
+_02098A90:
+ ldr r0, [r5, #0x40]
+ add r0, r0, r4
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,lr}
+ bx lr
+
+ arm_func_start FUN_02098AA4
+FUN_02098AA4: ; 0x02098AA4
+ stmdb sp!, {r4-r9,lr}
+ sub sp, sp, #0x14
+ mov r9, r0
+ mov r8, r1
+ mov r7, r2
+ mov r6, r3
+ bl OS_DisableInterrupts
+ add r1, sp, #0xc
+ mov r5, r0
+ str r1, [sp, #0x0]
+ add r1, sp, #0x8
+ mov r0, r9
+ add r2, sp, #0x4
+ add r3, sp, #0x6
+ bl FUN_02098A14
+_02098AE0: ; 0x02098AE0
+ cmp r0, #0x0
+ beq _02098B48
+ ldr r4, [sp, #0x8]
+ cmp r4, #0x0
+ mvneq r4, #0x5
+ beq _02098B64
+ ldrsb r1, [r9, #0x73]
+ cmp r7, r4
+ movgt r7, r4
+ mov r2, #0x1
+ cmp r1, #0x0
+ beq _02098B18
+ cmp r1, #0x4
+ movne r2, #0x0
+_02098B18:
+ cmp r2, #0x0
+ mov r1, r8
+ mov r2, r7
+ movne r4, r7
+ bl MI_CpuCopy8
+ ldr r1, [r9, #0x64]
+ ldrsb r0, [r1, #0xfe]
+ cmp r0, #0x0
+ ldreq r0, [r1, #0xf8]
+ addeq r0, r0, r4
+ streq r0, [r1, #0xf8]
+ b _02098B64
+_02098B48:
+ ldr r0, [sp, #0x8]
+ cmp r0, #0x0
+ ldrsh r0, [r9, #0x70]
+ moveq r4, #0x0
+ mvnne r4, #0x1b
+ bic r0, r0, #0x6
+ strh r0, [r9, #0x70]
+_02098B64:
+ cmp r4, #0x0
+ blt _02098B9C
+ cmp r6, #0x0
+ beq _02098B8C
+ ldr r1, [sp, #0x30]
+ cmp r1, #0x0
+ ldrneh r0, [sp, #0x6]
+ strneh r0, [r6, #0x0]
+ ldrne r0, [sp, #0xc]
+ strne r0, [r1, #0x0]
+_02098B8C:
+ ldrh r0, [r9, #0x74]
+ cmp r0, #0x0
+ ldreqh r0, [sp, #0x4]
+ streqh r0, [r9, #0x74]
+_02098B9C:
+ mov r0, r5
+ bl OS_RestoreInterrupts
+ mov r0, r4
+ add sp, sp, #0x14
+ ldmia sp!, {r4-r9,lr}
+ bx lr
+
+ arm_func_start FUN_02098BB4
+FUN_02098BB4: ; 0x02098BB4
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0x4
+ mov r7, r0
+ ldrsb r12, [r7, #0x73]
+ mov r6, r1
+ mov r5, r2
+ mov r4, r3
+ cmp r12, #0x4
+ bne _02098BF0
+ ldr r4, [sp, #0x18]
+ str r4, [sp, #0x0]
+ bl FUN_020989BC
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r7,lr}
+ bx lr
+_02098BF0:
+ ldr r12, [sp, #0x18]
+ str r12, [sp, #0x0]
+ bl FUN_02098AA4
+ mvn r1, #0x5
+ cmp r0, r1
+ addne sp, sp, #0x4
+ ldmneia sp!, {r4-r7,lr}
+ bxne lr
+ ldr r1, [sp, #0x1c]
+ ands r1, r1, #0x1
+ addeq sp, sp, #0x4
+ ldmeqia sp!, {r4-r7,lr}
+ bxeq lr
+ ldr r12, [sp, #0x18]
+ mov r0, r7
+ mov r1, r6
+ mov r2, r5
+ mov r3, r4
+ str r12, [sp, #0x0]
+ bl FUN_020989BC
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r7,lr}
+ bx lr
+
+ arm_func_start FUN_02098C4C
+FUN_02098C4C: ; 0x02098C4C
+ stmdb sp!, {r4-r8,lr}
+ sub sp, sp, #0x8
+ ldr r5, [sp, #0x28]
+ mov r7, r0
+ ands r0, r5, #0x2
+ ldr r5, [r7, #0x64]
+ beq _02098C74
+ cmp r5, #0x0
+ movne r6, #0x1
+ bne _02098C78
+_02098C74:
+ mov r6, #0x0
+_02098C78:
+ cmp r6, #0x0
+ ldrnesb r4, [r5, #0xfe]
+ movne r0, #0x1
+ strneb r0, [r5, #0xfe]
+ ldrsb r0, [r7, #0x73]
+ cmp r0, #0x1
+ bne _02098CB4
+ ldr r0, [sp, #0x20]
+ ldr r12, [sp, #0x24]
+ str r0, [sp, #0x0]
+ mov r0, r7
+ str r12, [sp, #0x4]
+ bl FUN_02098670
+ mov r8, r0
+ b _02098CDC
+_02098CB4:
+ ldr r0, [sp, #0x20]
+ ldr r12, [sp, #0x24]
+ str r0, [sp, #0x0]
+ mov r0, r7
+ str r12, [sp, #0x4]
+ bl FUN_02098BB4
+ movs r8, r0
+ bmi _02098CDC
+ mov r0, r7
+ bl FUN_02098810
+_02098CDC:
+ cmp r6, #0x0
+ strneb r4, [r5, #0xfe]
+ mov r0, r8
+ add sp, sp, #0x8
+ ldmia sp!, {r4-r8,lr}
+ bx lr
+
+ arm_func_start FUN_02098CF4
+FUN_02098CF4:
+ stmdb sp!, {r4-r9,lr}
+ sub sp, sp, #0xc
+ mov r9, r0
+ mov r8, r1
+ mov r7, r2
+ mov r6, r3
+ bl FUN_02099FA8
+_02098D10: ; 0x02098D10
+ cmp r0, #0x0
+ addne sp, sp, #0xc
+ mvnne r0, #0x1b
+ ldmneia sp!, {r4-r9,lr}
+ bxne lr
+ ldr r0, [sp, #0x2c]
+ ands r0, r0, #0x4
+ bne _02098D3C
+ ldrsb r0, [r9, #0x72]
+ cmp r0, #0x0
+ bne _02098D5C
+_02098D3C:
+ ldrsb r0, [r9, #0x73]
+ cmp r0, #0x4
+ addeq sp, sp, #0xc
+ mvneq r0, #0x1b
+ ldmeqia sp!, {r4-r9,lr}
+ bxeq lr
+ mov r4, #0x0
+ b _02098D78
+_02098D5C:
+ bl OS_GetProcMode
+ cmp r0, #0x12
+ addeq sp, sp, #0xc
+ mvneq r0, #0x1b
+ ldmeqia sp!, {r4-r9,lr}
+ bxeq lr
+ mov r4, #0x1
+_02098D78:
+ cmp r9, #0x0
+ mov r1, #0x0
+ beq _02098D90
+ ldrsh r0, [r9, #0x70]
+ ands r0, r0, #0x1
+ movne r1, #0x1
+_02098D90:
+ cmp r1, #0x0
+ addeq sp, sp, #0xc
+ mvneq r0, #0x26
+ ldmeqia sp!, {r4-r9,lr}
+ bxeq lr
+ ldrsb r0, [r9, #0x73]
+ mov r1, #0x1
+ cmp r0, #0x0
+ beq _02098DBC
+ cmp r0, #0x4
+ movne r1, #0x0
+_02098DBC:
+ cmp r1, #0x0
+ beq _02098DEC
+ ldrsh r0, [r9, #0x70]
+ ands r0, r0, #0x4
+ beq _02098DDC
+ ldrsh r0, [r9, #0x70]
+ ands r0, r0, #0x8
+ beq _02098DEC
+_02098DDC:
+ add sp, sp, #0xc
+ mvn r0, #0x37
+ ldmia sp!, {r4-r9,lr}
+ bx lr
+_02098DEC:
+ ands r0, r4, #0x1
+ ldr r5, [r9, #0x64]
+ bne _02098E18
+ add r0, r5, #0xe0
+ bl OS_TryLockMutex
+_02098E00: ; 0x02098E00
+ cmp r0, #0x0
+ bne _02098E20
+ add sp, sp, #0xc
+ mvn r0, #0x5
+ ldmia sp!, {r4-r9,lr}
+ bx lr
+_02098E18:
+ add r0, r5, #0xe0
+ bl OS_LockMutex
+_02098E20:
+ ldr r0, [sp, #0x28]
+ ldr r12, [sp, #0x2c]
+ str r0, [sp, #0x0]
+ str r4, [sp, #0x4]
+ mov r0, r9
+ mov r1, r8
+ mov r2, r7
+ mov r3, r6
+ str r12, [sp, #0x8]
+ bl FUN_02098C4C
+ mov r4, r0
+ add r0, r5, #0xe0
+ bl OS_UnlockMutex
+ mov r0, r4
+ add sp, sp, #0xc
+ ldmia sp!, {r4-r9,lr}
+ bx lr
+
+ arm_func_start FUN_02098E64
+FUN_02098E64: ; 0x02098E64
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0x4
+ mov r6, r2
+ ldr r5, [r6, #0x14]
+ ldr r4, [r6, #0x1c]
+ cmp r5, r1
+ mov r7, r0
+ movgt r5, r1
+ movgt r4, #0x0
+ bgt _02098E98
+ sub r0, r1, r5
+ cmp r4, r0
+ movgt r4, r0
+_02098E98:
+ cmp r5, #0x0
+ ble _02098EC8
+ ldr r0, [r6, #0x10]
+ mov r1, r7
+ mov r2, r5
+ bl MI_CpuCopy8
+ ldr r0, [r6, #0x10]
+ add r0, r0, r5
+ str r0, [r6, #0x10]
+ ldr r0, [r6, #0x14]
+ sub r0, r0, r5
+ str r0, [r6, #0x14]
+_02098EC8:
+ cmp r4, #0x0
+ ble _02098EF8
+ ldr r0, [r6, #0x18]
+ mov r2, r4
+ add r1, r7, r5
+ bl MI_CpuCopy8
+ ldr r0, [r6, #0x18]
+ add r0, r0, r4
+ str r0, [r6, #0x18]
+ ldr r0, [r6, #0x1c]
+ sub r0, r0, r4
+ str r0, [r6, #0x1c]
+_02098EF8:
+ add r0, r5, r4
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r7,lr}
+ bx lr
+
+ arm_func_start FUN_02098F08
+FUN_02098F08: ; 0x02098F08
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ ldr r1, _02098FBC ; =0x021D3498
+ mov r4, r0
+ ldr r0, [r1, #0x4]
+ ldr r5, [r0, #0xa4]
+ bl OS_DisableInterrupts
+_02098F24: ; 0x02098F24
+ cmp r5, #0x0
+ beq _02098F74
+ ldrh r3, [r5, #0x2e]
+ cmp r3, #0x0
+ beq _02098F64
+ ldrh r2, [r5, #0x2c]
+ cmp r2, #0x0
+ beq _02098F64
+ ldr r1, _02098FC0 ; =0x021C8CD4
+ cmp r3, r2
+ ldr r1, [r1, #0x24]
+ movgt r3, r2
+ cmp r3, r1
+ movgt r3, r1
+ mov r5, r3, lsl #0x1
+ b _02098F80
+_02098F64:
+ ldr r1, _02098FC0 ; =0x021C8CD4
+ ldr r1, [r1, #0x24]
+ mov r5, r1, lsl #0x1
+ b _02098F80
+_02098F74:
+ ldr r1, _02098FC0 ; =0x021C8CD4
+ ldr r1, [r1, #0x24]
+ mov r5, r1, lsl #0x1
+_02098F80:
+ bl OS_RestoreInterrupts
+_02098F84: ; 0x02098F84
+ cmp r5, #0x0
+ ble _02098FAC
+ mov r0, r4
+ mov r1, r5
+ bl _s32_div_f
+_02098F98: ; 0x02098F98
+ cmp r0, #0x0
+ mulgt r0, r5, r0
+ addgt sp, sp, #0x4
+ ldmgtia sp!, {r4-r5,lr}
+ bxgt lr
+_02098FAC:
+ mov r0, r4
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,lr}
+ bx lr
+ .balign 4
+_02098FBC: .word 0x021D3498
+_02098FC0: .word 0x021C8CD4
+
+ arm_func_start FUN_02098FC4
+FUN_02098FC4: ; 0x02098FC4
+ stmdb sp!, {r4-r9,lr}
+ sub sp, sp, #0x4
+ mov r8, r0
+ ldr r7, [r8, #0x4]
+ mov r4, #0x0
+ ldrsb r0, [r7, #0x73]
+ ldr r6, [r7, #0x68]
+ mov r1, #0x1
+ cmp r0, #0x0
+ beq _02098FF4
+ cmp r0, #0x4
+ movne r1, r4
+_02098FF4:
+ cmp r1, #0x0
+ beq _02099008
+ ldrsh r0, [r7, #0x70]
+ ands r0, r0, #0x4
+ beq _020990DC
+_02099008:
+ ldr r2, [r8, #0x28]
+ cmp r2, #0x0
+ beq _02099020
+ ldrh r0, [r8, #0x24]
+ ldrh r1, [r8, #0x26]
+ bl FUN_0209CB78
+_02099020:
+ ldrsb r1, [r7, #0x73]
+ mov r0, #0x1
+ cmp r1, #0x0
+ beq _02099038
+ cmp r1, #0x4
+ movne r0, #0x0
+_02099038:
+ cmp r0, #0x0
+ movne r2, #0x36
+ moveq r2, #0x2a
+ ldr r0, [r7, #0x4c]
+ cmp r1, #0x0
+ add r5, r0, r2
+ beq _0209905C
+ cmp r1, #0x4
+ bne _02099070
+_0209905C:
+ ldr r0, [r7, #0x48]
+ sub r0, r0, r2
+ bl FUN_02098F08
+ mov r9, r0
+ b _02099078
+_02099070:
+ ldr r0, [r7, #0x48]
+ sub r9, r0, r2
+_02099078:
+ mov r0, r5
+ mov r1, r9
+ mov r2, r8
+ bl FUN_02098E64
+ mov r1, r0
+ cmp r1, #0x0
+ ble _020990E0
+ mov r0, r5
+ bl FUN_0209C030
+_0209909C: ; 0x0209909C
+ cmp r0, #0x0
+ bgt _020990D4
+ ldrsb r0, [r7, #0x73]
+ mov r1, #0x1
+ cmp r0, #0x0
+ beq _020990BC
+ cmp r0, #0x4
+ movne r1, #0x0
+_020990BC:
+ cmp r1, #0x0
+ ldrnesh r0, [r7, #0x70]
+ mvn r4, #0x4b
+ bicne r0, r0, #0xe
+ strneh r0, [r7, #0x70]
+ b _020990E0
+_020990D4:
+ add r4, r4, r0
+ b _02099078
+_020990DC:
+ mvn r4, #0x4b
+_020990E0:
+ ldrh r2, [r8, #0x20]
+ add r1, r6, #0x100
+ add r0, r6, #0x104
+ strh r2, [r1, #0x2]
+ bl OS_WakeupThread
+ mov r0, r4
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r9,lr}
+ bx lr
+
+ arm_func_start FUN_02099104
+FUN_02099104:
+ stmdb sp!, {r4-r9,lr}
+ sub sp, sp, #0x4
+ mov r9, r0
+ ldr r6, [r9, #0x68]
+ mov r4, r1
+ mov r8, r2
+ ldr r1, [r6, #0x10c]
+ ldr r2, [sp, #0x28]
+ ldr r0, _0209929C ; =FUN_02098FC4
+ mov r7, r3
+ bl FUN_02097A98
+ movs r5, r0
+ addeq sp, sp, #0x4
+ mvneq r0, #0x20
+ ldmeqia sp!, {r4-r9,lr}
+ bxeq lr
+ ldr r0, [sp, #0x28]
+ ands r0, r0, #0x1
+ beq _02099164
+ ldrsb r0, [r9, #0x73]
+ cmp r0, #0x1
+ movne r0, #0x3
+ strneb r0, [r5, #0xd]
+ bne _0209916C
+_02099164:
+ mov r0, #0x0
+ strb r0, [r5, #0xd]
+_0209916C:
+ ldr r2, [r6, #0xf8]
+ add r1, r7, r8
+ cmp r1, r2
+ ldr r3, [r6, #0xfc]
+ bge _020991A0
+ add r0, r3, r7
+ str r0, [r5, #0x10]
+ str r8, [r5, #0x14]
+ mov r0, #0x0
+ str r0, [r5, #0x18]
+ mov r7, r1
+ str r0, [r5, #0x1c]
+ b _020991D8
+_020991A0:
+ add r0, r3, r7
+ str r0, [r5, #0x10]
+ sub r0, r2, r7
+ str r0, [r5, #0x14]
+ str r3, [r5, #0x18]
+ ldr r0, [r5, #0x14]
+ sub r0, r8, r0
+ str r0, [r5, #0x1c]
+ ldr r7, [r5, #0x1c]
+ ldr r0, [r5, #0x14]
+ ldr r1, [r5, #0x18]
+ mov r2, r7
+ add r0, r4, r0
+ bl MI_CpuCopy8
+_020991D8:
+ ldr r1, [r5, #0x10]
+ ldr r2, [r5, #0x14]
+ mov r0, r4
+ bl MI_CpuCopy8
+ add r0, r6, #0x100
+ ldrh r4, [r0, #0x0]
+ strh r7, [r5, #0x20]
+ ldrh r1, [r5, #0x20]
+ strh r1, [r0, #0x0]
+ ldrsb r0, [r9, #0x73]
+ cmp r0, #0x1
+ bne _02099268
+ ldrh r0, [r9, #0x74]
+ cmp r0, #0x0
+ bne _02099224
+ bl FUN_0209CC8C
+ strh r0, [r9, #0x74]
+ ldrh r0, [r9, #0x74]
+ strh r0, [r9, #0xa]
+_02099224:
+ ldrh r0, [r9, #0x74]
+ strh r0, [r5, #0x24]
+ ldr r1, [r9, #0x78]
+ cmp r1, #0x0
+ beq _02099244
+ ldr r0, [sp, #0x24]
+ cmp r0, #0x0
+ beq _02099258
+_02099244:
+ ldr r1, [sp, #0x24]
+ ldrh r0, [sp, #0x20]
+ str r1, [r5, #0x28]
+ strh r0, [r5, #0x26]
+ b _02099270
+_02099258:
+ str r1, [r5, #0x28]
+ ldrh r0, [r9, #0x76]
+ strh r0, [r5, #0x26]
+ b _02099270
+_02099268:
+ mov r0, #0x0
+ str r0, [r5, #0x28]
+_02099270:
+ ldr r0, [r6, #0x10c]
+ mov r1, r5
+ bl FUN_02097948
+_0209927C: ; 0x0209927C
+ cmp r0, #0x0
+ addne r0, r6, #0x100
+ movne r8, #0x0
+ strneh r4, [r0, #0x0]
+ mov r0, r8
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r9,lr}
+ bx lr
+ .balign 4
+_0209929C: .word FUN_02098FC4
+
+ arm_func_start FUN_020992A0
+FUN_020992A0:
+ ldr r2, [r0, #0x68]
+ add r0, r2, #0x100
+ ldrh r1, [r0, #0x0]
+ ldrh r0, [r0, #0x2]
+ ldr r2, [r2, #0xf8]
+ sub r0, r0, r1
+ subs r0, r0, #0x1
+ addmi r0, r0, r2
+ bx lr
+
+ arm_func_start FUN_020992C4
+FUN_020992C4: ; 0x020992C4
+ stmdb sp!, {r4-r11,lr}
+ sub sp, sp, #0x4
+ mov r10, r0
+ mov r9, r1
+ mov r8, r2
+ cmp r8, r9
+ mov r11, r3
+ ldr r7, [r10, #0x68]
+ movgt r8, r9
+ bl OS_DisableInterrupts
+ ldr r1, [sp, #0x28]
+ str r0, [sp, #0x0]
+ and r5, r1, #0x1
+ add r4, r7, #0x104
+_020992FC:
+ mov r0, r10
+ bl FUN_020992A0
+ mov r6, r0
+ cmp r6, r8
+ blt _02099328
+ add r0, r7, #0x100
+ ldrh r0, [r0, #0x0]
+ cmp r6, r9
+ movge r6, r9
+ str r0, [r11, #0x0]
+ b _02099340
+_02099328:
+ cmp r5, #0x0
+ moveq r6, #0x0
+ beq _02099340
+ mov r0, r4
+ bl OS_SleepThread
+ b _020992FC
+_02099340:
+ ldr r0, [sp, #0x0]
+ bl OS_RestoreInterrupts
+ mov r0, r6
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r11,lr}
+ bx lr
+
+ arm_func_start FUN_02099358
+FUN_02099358: ; 0x02099358
+ stmdb sp!, {r4-r11,lr}
+ sub sp, sp, #0x1c
+ mov r10, r0
+ ldr r4, [r10, #0x68]
+ ldrsb r0, [r10, #0x73]
+ ldr r4, [r4, #0x10c]
+ mov r9, r1
+ cmp r0, #0x1
+ ldr r0, [r4, #0x48]
+ mov r8, r2
+ str r3, [sp, #0xc]
+ ldr r7, [sp, #0x40]
+ ldr r6, [sp, #0x44]
+ mov r4, #0x0
+ bne _020993B4
+ sub r0, r0, #0x2a
+ cmp r8, r0
+ addgt sp, sp, #0x1c
+ mvngt r0, #0x22
+ ldmgtia sp!, {r4-r11,lr}
+ bxgt lr
+ str r8, [sp, #0x10]
+ b _020993C4
+_020993B4:
+ sub r0, r0, #0x36
+ str r0, [sp, #0x10]
+ cmp r8, r0
+ strle r8, [sp, #0x10]
+_020993C4:
+ cmp r8, #0x0
+ ble _02099460
+ and r11, r6, #0x1
+_020993D0:
+ ldr r2, [sp, #0x10]
+ mov r0, r10
+ mov r1, r8
+ add r3, sp, #0x14
+ str r6, [sp, #0x0]
+ bl FUN_020992C4
+ mov r5, r0
+ cmp r5, #0x0
+ ble _02099438
+ ldr r0, [sp, #0xc]
+ mov r1, r9
+ str r0, [sp, #0x0]
+ str r7, [sp, #0x4]
+ str r6, [sp, #0x8]
+ ldr r3, [sp, #0x14]
+ mov r0, r10
+ mov r2, r5
+ bl FUN_02099104
+_02099418: ; 0x02099418
+ cmp r0, #0x0
+ addle sp, sp, #0x1c
+ mvnle r0, #0x5
+ ldmleia sp!, {r4-r11,lr}
+ bxle lr
+ add r9, r9, r5
+ sub r8, r8, r5
+ add r4, r4, r5
+_02099438:
+ cmp r11, #0x0
+ bne _02099458
+ cmp r5, #0x0
+ bgt _02099460
+ add sp, sp, #0x1c
+ mvn r0, #0x5
+ ldmia sp!, {r4-r11,lr}
+ bx lr
+_02099458:
+ cmp r8, #0x0
+ bgt _020993D0
+_02099460:
+ mov r0, r4
+ add sp, sp, #0x1c
+ ldmia sp!, {r4-r11,lr}
+ bx lr
+
+ arm_func_start FUN_02099470
+FUN_02099470: ; 0x02099470
+ stmdb sp!, {r4-r8,lr}
+ sub sp, sp, #0x8
+ mov r8, r0
+ mov r7, r1
+ mov r6, r2
+ mov r5, r3
+ bl FUN_02099FA8
+_0209948C: ; 0x0209948C
+ cmp r0, #0x0
+ addne sp, sp, #0x8
+ mvnne r0, #0x1b
+ ldmneia sp!, {r4-r8,lr}
+ bxne lr
+ cmp r8, #0x0
+ mov r1, #0x0
+ beq _020994B8
+ ldrsh r0, [r8, #0x70]
+ ands r0, r0, #0x1
+ movne r1, #0x1
+_020994B8:
+ cmp r1, #0x0
+ addeq sp, sp, #0x8
+ mvneq r0, #0x26
+ ldmeqia sp!, {r4-r8,lr}
+ bxeq lr
+ ldrsb r0, [r8, #0x73]
+ mov r1, #0x1
+ cmp r0, #0x0
+ beq _020994E4
+ cmp r0, #0x4
+ movne r1, #0x0
+_020994E4:
+ cmp r1, #0x0
+ beq _02099514
+ ldrsh r0, [r8, #0x70]
+ ands r0, r0, #0x4
+ beq _02099504
+ ldrsh r0, [r8, #0x70]
+ ands r0, r0, #0x8
+ beq _02099514
+_02099504:
+ add sp, sp, #0x8
+ mvn r0, #0x37
+ ldmia sp!, {r4-r8,lr}
+ bx lr
+_02099514:
+ ldr r0, [sp, #0x24]
+ ldr r4, [r8, #0x68]
+ ands r0, r0, #0x4
+ bne _02099530
+ ldrsb r0, [r8, #0x72]
+ cmp r0, #0x0
+ bne _02099554
+_02099530:
+ add r0, r4, #0xe0
+ bl OS_TryLockMutex
+_02099538: ; 0x02099538
+ cmp r0, #0x0
+ addeq sp, sp, #0x8
+ mvneq r0, #0x5
+ ldmeqia sp!, {r4-r8,lr}
+ bxeq lr
+ mov r12, #0x0
+ b _02099560
+_02099554:
+ add r0, r4, #0xe0
+ bl OS_LockMutex
+ mov r12, #0x1
+_02099560:
+ ldr r1, [sp, #0x20]
+ mov r0, r8
+ str r1, [sp, #0x0]
+ mov r1, r7
+ mov r2, r6
+ mov r3, r5
+ str r12, [sp, #0x4]
+ bl FUN_02099358
+ mov r5, r0
+ add r0, r4, #0xe0
+ bl OS_UnlockMutex
+ mov r0, r5
+ add sp, sp, #0x8
+ ldmia sp!, {r4-r8,lr}
+ bx lr
+
+ arm_func_start FUN_0209959C
+FUN_0209959C: ; 0x0209959C
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldr r0, [r0, #0x4]
+ mov r1, #0x1
+ ldrsb r0, [r0, #0x73]
+ cmp r0, #0x0
+ beq _020995C0
+ cmp r0, #0x4
+ movne r1, #0x0
+_020995C0:
+ cmp r1, #0x0
+ beq _020995CC
+ bl FUN_0209C840
+_020995CC:
+ mov r0, #0x0
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+
+ arm_func_start FUN_020995DC
+FUN_020995DC: ; 0x020995DC
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ mov r4, r0
+ bl FUN_02099FA8
+_020995EC: ; 0x020995EC
+ cmp r0, #0x0
+ addne sp, sp, #0x4
+ mvnne r0, #0x1b
+ ldmneia sp!, {r4-r5,lr}
+ bxne lr
+ cmp r4, #0x0
+ mov r1, #0x0
+ beq _02099618
+ ldrsh r0, [r4, #0x70]
+ ands r0, r0, #0x1
+ movne r1, #0x1
+_02099618:
+ cmp r1, #0x0
+ addeq sp, sp, #0x4
+ mvneq r0, #0x26
+ ldmeqia sp!, {r4-r5,lr}
+ bxeq lr
+ ldrsh r0, [r4, #0x70]
+ ands r0, r0, #0x4
+ beq _02099644
+ ldrsh r0, [r4, #0x70]
+ ands r0, r0, #0x8
+ beq _02099654
+_02099644:
+ add sp, sp, #0x4
+ mvn r0, #0x37
+ ldmia sp!, {r4-r5,lr}
+ bx lr
+_02099654:
+ ldrsh r0, [r4, #0x70]
+ orr r0, r0, #0x8
+ strh r0, [r4, #0x70]
+ ldr r5, [r4, #0x68]
+ cmp r5, #0x0
+ beq _020996AC
+ ldr r1, [r5, #0x10c]
+ cmp r1, #0x0
+ beq _020996AC
+ ldrsb r2, [r4, #0x72]
+ ldr r0, _020996BC ; =FUN_0209959C
+ bl FUN_02097A98
+ movs r1, r0
+ addeq sp, sp, #0x4
+ mvneq r0, #0x20
+ ldmeqia sp!, {r4-r5,lr}
+ bxeq lr
+ ldr r0, [r5, #0x10c]
+ bl FUN_02097948
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,lr}
+ bx lr
+_020996AC:
+ mov r0, #0x0
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,lr}
+ bx lr
+ .balign 4
+_020996BC: .word FUN_0209959C
+
+ arm_func_start FUN_020996C0
+FUN_020996C0: ; 0x020996C0
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ bl OS_DisableInterrupts
+ ldr r4, _02099704 ; =0x021C8D34
+ mov r5, r0
+ ldr r0, [r4, #0x0]
+ cmp r0, #0x0
+ beq _020996F0
+_020996E0:
+ bl FUN_020997B8
+_020996E4: ; 0x020996E4
+ ldr r0, [r4, #0x0]
+ cmp r0, #0x0
+ bne _020996E0
+_020996F0:
+ mov r0, r5
+ bl OS_RestoreInterrupts
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,lr}
+ bx lr
+ .balign 4
+_02099704: .word 0x021C8D34
+
+ arm_func_start FUN_02099708
+FUN_02099708: ; 0x02099708
+ stmdb sp!, {r4-r8,lr}
+ sub sp, sp, #0x8
+ movs r8, r0
+ addeq sp, sp, #0x8
+ ldmeqia sp!, {r4-r8,lr}
+ bxeq lr
+ add r0, r8, #0x20
+ bl OS_JoinThread
+ bl OS_DisableInterrupts
+ mov r7, r0
+ bl OS_DisableScheduler
+ add r1, sp, #0x0
+ mov r0, r8
+ mov r2, #0x0
+ bl OS_ReceiveMessage
+_02099744: ; 0x02099744
+ cmp r0, #0x0
+ beq _0209979C
+ add r4, sp, #0x0
+ mvn r6, #0xa
+ mov r5, #0x0
+_02099758:
+ ldr r0, [sp, #0x0]
+ cmp r0, #0x0
+ beq _02099784
+ ldr r0, [r0, #0x8]
+ cmp r0, #0x0
+ beq _0209977C
+ mov r1, r6
+ mov r2, r5
+ bl OS_SendMessage
+_0209977C:
+ ldr r0, [sp, #0x0]
+ bl FUN_02097A64
+_02099784:
+ mov r0, r8
+ mov r1, r4
+ mov r2, r5
+ bl OS_ReceiveMessage
+_02099794: ; 0x02099794
+ cmp r0, #0x0
+ bne _02099758
+_0209979C:
+ bl OS_EnableScheduler
+ bl OS_RescheduleThread
+ mov r0, r7
+ bl OS_RestoreInterrupts
+ add sp, sp, #0x8
+ ldmia sp!, {r4-r8,lr}
+ bx lr
+
+ arm_func_start FUN_020997B8
+FUN_020997B8:
+ stmdb sp!, {r4-r6,lr}
+ movs r4, r0
+ ldmeqia sp!, {r4-r6,lr}
+ bxeq lr
+ mov r0, #0x0
+ strh r0, [r4, #0x70]
+ ldrsb r1, [r4, #0x73]
+ mov r2, #0x1
+ cmp r1, #0x0
+ beq _020997E8
+ cmp r1, #0x4
+ movne r2, r0
+_020997E8:
+ cmp r2, #0x0
+ beq _02099804
+ ldr r0, [r4, #0x68]
+ bl FUN_02099708
+ ldr r0, [r4, #0x64]
+ bl FUN_02099708
+ b _02099884
+_02099804:
+ cmp r1, #0x1
+ bne _02099874
+ ldr r0, [r4, #0x64]
+ ldr r0, [r0, #0x104]
+ cmp r0, #0x0
+ beq _0209983C
+ ldr r5, _020998C0 ; =0x021C8CC0
+_02099820:
+ ldr r1, [r5, #0x0]
+ ldr r6, [r0, #0x0]
+ ldr r1, [r1, #0x1c]
+ blx r1
+ mov r0, r6
+ cmp r6, #0x0
+ bne _02099820
+_0209983C:
+ ldr r0, [r4, #0x64]
+ mov r1, #0x0
+ add r0, r0, #0x100
+ strh r1, [r0, #0x8]
+ ldr r0, [r4, #0x64]
+ str r1, [r0, #0x100]
+ ldr r0, [r4, #0x64]
+ str r1, [r0, #0x104]
+ ldr r0, [r4, #0x64]
+ add r0, r0, #0x10c
+ bl OS_WakeupThread
+ ldr r0, [r4, #0x64]
+ bl FUN_02099708
+ b _02099884
+_02099874:
+ cmp r1, #0x2
+ bne _02099884
+ ldr r0, [r4, #0x68]
+ bl FUN_02099708
+_02099884:
+ bl OS_DisableInterrupts
+ mov r5, r0
+ mov r0, r4
+ bl FUN_0209A054
+ mov r0, r4
+ bl FUN_02099FF0
+ ldr r1, _020998C0 ; =0x021C8CC0
+ mov r0, r4
+ ldr r1, [r1, #0x0]
+ ldr r1, [r1, #0x1c]
+ blx r1
+ mov r0, r5
+ bl OS_RestoreInterrupts
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+ .balign 4
+_020998C0: .word 0x021C8CC0
+
+ arm_func_start FUN_020998C4
+FUN_020998C4: ; 0x020998C4
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ ldr r4, [r0, #0x4]
+ mov r1, #0x1
+ ldrsb r0, [r4, #0x73]
+ cmp r0, #0x0
+ beq _020998E8
+ cmp r0, #0x4
+ movne r1, #0x0
+_020998E8:
+ cmp r1, #0x0
+ beq _02099908
+ ldr r0, [r4, #0x68]
+ add r0, r0, #0x20
+ bl OS_JoinThread
+ bl FUN_0209C840
+ bl FUN_0209C7AC
+ bl FUN_0209CB24
+_02099908:
+ bl FUN_0209CC10
+ ldrsh r0, [r4, #0x70]
+ mov r1, #0x0
+ bic r0, r0, #0x6
+ strh r0, [r4, #0x70]
+ ldrsb r0, [r4, #0x73]
+ cmp r0, #0x2
+ ldreq r0, [r4, #0x68]
+ ldrne r0, [r4, #0x64]
+ bl FUN_020979F8
+ bl OS_DisableInterrupts
+ mov r5, r0
+ mov r0, r4
+ bl FUN_0209A054
+ mov r0, r4
+ bl FUN_0209A06C
+ mov r0, r5
+ bl OS_RestoreInterrupts
+ ldrsh r1, [r4, #0x70]
+ mov r0, #0x0
+ orr r1, r1, #0x20
+ strh r1, [r4, #0x70]
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,lr}
+ bx lr
+
+ arm_func_start FUN_0209996C
+FUN_0209996C: ; 0x0209996C
+ stmdb sp!, {r4,lr}
+ mov r4, r0
+ cmp r4, #0x0
+ mvnle r0, #0x1b
+ ldmleia sp!, {r4,lr}
+ bxle lr
+ bl FUN_02099F78
+_02099988: ; 0x02099988
+ cmp r0, #0x0
+ mvnne r0, #0x19
+ ldmneia sp!, {r4,lr}
+ bxne lr
+ mov r0, r4
+ bl FUN_02099FA8
+_020999A0: ; 0x020999A0
+ cmp r0, #0x0
+ movne r0, #0x0
+ ldmneia sp!, {r4,lr}
+ bxne lr
+ cmp r4, #0x0
+ mov r1, #0x0
+ beq _020999C8
+ ldrsh r0, [r4, #0x70]
+ ands r0, r0, #0x1
+ movne r1, #0x1
+_020999C8:
+ cmp r1, #0x0
+ mvneq r0, #0x26
+ ldmeqia sp!, {r4,lr}
+ bxeq lr
+ ldrsh r0, [r4, #0x70]
+ ands r0, r0, #0x10
+ mvnne r0, #0x19
+ ldmneia sp!, {r4,lr}
+ bxne lr
+ ldrsh r0, [r4, #0x70]
+ mov r1, #0x1
+ orr r0, r0, #0x18
+ strh r0, [r4, #0x70]
+ ldrsb r0, [r4, #0x73]
+ cmp r0, #0x0
+ beq _02099A10
+ cmp r0, #0x4
+ movne r1, #0x0
+_02099A10:
+ cmp r1, #0x0
+ beq _02099A24
+ ldr r0, [r4, #0x68]
+ mov r1, #0x0
+ bl FUN_020979F8
+_02099A24:
+ ldr r0, _02099A54 ; =FUN_020998C4
+ mov r1, r4
+ mov r2, #0x1
+ bl FUN_02097A98
+ mov r1, r0
+ mov r2, #0x0
+ mov r0, r4
+ str r2, [r1, #0x8]
+ bl FUN_020979DC
+_02099A48: ; 0x02099A48
+ mov r0, #0x0
+ ldmia sp!, {r4,lr}
+ bx lr
+ .balign 4
+_02099A54: .word FUN_020998C4
+
+ arm_func_start FUN_02099A58
+FUN_02099A58:
+ stmdb sp!, {r4,lr}
+ movs r4, r0
+ bmi _02099A88
+ bl FUN_02099FA8
+_02099A68: ; 0x02099A68
+ cmp r0, #0x0
+ beq _02099A88
+ mov r0, r4
+ bl FUN_02099F78
+_02099A78: ; 0x02099A78
+ cmp r0, #0x0
+ moveq r0, #0x1
+ ldmeqia sp!, {r4,lr}
+ bxeq lr
+_02099A88:
+ mov r0, #0x0
+ ldmia sp!, {r4,lr}
+ bx lr
+
+ arm_func_start FUN_02099A94
+FUN_02099A94: ; 0x02099A94
+ stmdb sp!, {r4,lr}
+ ldr r0, _02099B10 ; =0x021C8CD0
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ beq _02099AE8
+ bl FUN_02099B14
+ movs r4, r0
+ bne _02099AE0
+ ldr r0, _02099B10 ; =0x021C8CD0
+ ldr r0, [r0, #0x0]
+ bl FUN_0209996C
+ ldr r0, _02099B10 ; =0x021C8CD0
+ ldr r0, [r0, #0x0]
+ bl FUN_02099A58
+_02099ACC: ; 0x02099ACC
+ cmp r0, #0x0
+ ldrne r0, _02099B10 ; =0x021C8CD0
+ movne r1, #0x0
+ strne r1, [r0, #0x0]
+ mvn r4, #0x19
+_02099AE0:
+ bl FUN_020996C0
+ b _02099B04
+_02099AE8:
+ bl FUN_0209FD34
+_02099AEC: ; 0x02099AEC
+ cmp r0, #0x0
+ mvneq r4, #0x19
+ beq _02099B04
+ mov r0, #0x0
+ bl FUN_020A87BC
+ mov r4, #0x0
+_02099B04:
+ mov r0, r4
+ ldmia sp!, {r4,lr}
+ bx lr
+ .balign 4
+_02099B10: .word 0x021C8CD0
+
+ arm_func_start FUN_02099B14
+FUN_02099B14: ; 0x02099B14
+ stmdb sp!, {r4-r6,lr}
+ ldr r4, _02099BBC ; =0x021C8CD0
+ ldr r5, _02099BC0 ; =0x021C8D30
+_02099B20:
+ bl OS_DisableInterrupts
+ ldr r6, [r5, #0x0]
+ cmp r6, #0x0
+ beq _02099B54
+ ldr r2, [r4, #0x0]
+_02099B34:
+ cmp r6, r2
+ beq _02099B48
+ ldrsh r1, [r6, #0x70]
+ ands r1, r1, #0x10
+ beq _02099B54
+_02099B48:
+ ldr r6, [r6, #0x7c]
+ cmp r6, #0x0
+ bne _02099B34
+_02099B54:
+ bl OS_RestoreInterrupts
+_02099B58: ; 0x02099B58
+ cmp r6, #0x0
+ beq _02099B6C
+ mov r0, r6
+ bl FUN_0209996C
+ b _02099B20
+_02099B6C:
+ ldr r0, _02099BC0 ; =0x021C8D30
+ ldr r1, [r0, #0x0]
+ cmp r1, #0x0
+ beq _02099B98
+ ldr r0, _02099BBC ; =0x021C8CD0
+ ldr r0, [r0, #0x0]
+ cmp r1, r0
+ bne _02099BB0
+ ldr r0, [r1, #0x7c]
+ cmp r0, #0x0
+ bne _02099BB0
+_02099B98:
+ ldr r0, _02099BC4 ; =0x021C8D34
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ moveq r0, #0x0
+ ldmeqia sp!, {r4-r6,lr}
+ bxeq lr
+_02099BB0:
+ mvn r0, #0x19
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+ .balign 4
+_02099BBC: .word 0x021C8CD0
+_02099BC0: .word 0x021C8D30
+_02099BC4: .word 0x021C8D34
+
+ arm_func_start FUN_02099BC8
+FUN_02099BC8: ; 0x02099BC8
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ ldr r1, _02099C68 ; =0x021C8CC8
+ ldr r0, [r1, #0x0]
+ cmp r0, #0x0
+ ldreq r0, _02099C6C ; =0x021C8F04
+ ldreq r0, [r0, #0x0]
+ streq r0, [r1, #0x0]
+ bl FUN_02099A94
+ mvn r4, #0x19
+ cmp r0, r4
+ bne _02099C10
+ mov r5, #0x64
+_02099BFC:
+ mov r0, r5
+ bl OS_Sleep
+ bl FUN_02099A94
+ cmp r0, r4
+ beq _02099BFC
+_02099C10:
+ bl FUN_02097B14
+ movs r4, r0
+ bmi _02099C58
+ bl FUN_0209FCC4
+_02099C20: ; 0x02099C20
+ mov r0, #0x0
+ bl FUN_0209FD24
+ ldr r0, _02099C70 ; =0x021C8CC0
+ ldr r1, [r0, #0x0]
+ ldr r0, [r1, #0x28]
+ cmp r0, #0x0
+ bne _02099C4C
+ ldr r0, _02099C74 ; =0x021C8CD4
+ ldr r1, [r1, #0x1c]
+ ldr r0, [r0, #0x1c]
+ blx r1
+_02099C4C:
+ ldr r0, _02099C70 ; =0x021C8CC0
+ mov r1, #0x0
+ str r1, [r0, #0x0]
+_02099C58:
+ mov r0, r4
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,lr}
+ bx lr
+ .balign 4
+_02099C68: .word 0x021C8CC8
+_02099C6C: .word 0x021C8F04
+_02099C70: .word 0x021C8CC0
+_02099C74: .word 0x021C8CD4
+
+ arm_func_start FUN_02099C78
+FUN_02099C78:
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldr r0, _02099CE0 ; =0x021C8F04
+ ldr r2, [r0, #0x0]
+ cmp r2, #0x0
+ bne _02099CBC
+ ldr r0, _02099CE4 ; =0x021C8CCC
+ ldr r0, [r0, #0x0]
+ and r0, r0, #0x3
+ cmp r0, #0x1
+ bne _02099CCC
+ bl OS_GetProcMode
+ cmp r0, #0x12
+ beq _02099CCC
+ mov r0, #0xa
+ bl OS_Sleep
+ b _02099CCC
+_02099CBC:
+ ldr r0, _02099CE8 ; =0x021C8CC8
+ ldr r1, [r0, #0x0]
+ cmp r1, #0x0
+ streq r2, [r0, #0x0]
+_02099CCC:
+ ldr r0, _02099CE0 ; =0x021C8F04
+ ldr r0, [r0, #0x0]
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+ .balign 4
+_02099CE0: .word 0x021C8F04
+_02099CE4: .word 0x021C8CCC
+_02099CE8: .word 0x021C8CC8
+
+ arm_func_start FUN_02099CEC
+FUN_02099CEC: ; 0x02099CEC
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ mov r5, r0
+ mov r4, r1
+ bl FUN_02099C78
+_02099D00: ; 0x02099D00
+ cmp r0, #0x0
+ ldrne r1, _02099D24 ; =0x021C8F1C
+ mvneq r0, #0x26
+ movne r0, #0x0
+ strne r5, [r1, #0x0]
+ strne r4, [r1, #0x4]
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,lr}
+ bx lr
+ .balign 4
+_02099D24: .word 0x021C8F1C
+
+ arm_func_start FUN_02099D28
+FUN_02099D28:
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0x4
+ mov r4, r0
+ bl OS_DisableInterrupts
+ ldr r1, _02099D84 ; =0x021C8F1C
+ mov r5, r0
+ ldr r7, [r1, #0x0]
+ mov r2, #0x0
+ ldr r6, [r1, #0x4]
+ mov r0, r4
+ str r2, [r1, #0x0]
+ str r2, [r1, #0x4]
+ bl FUN_0209AB80
+ ldr r1, _02099D84 ; =0x021C8F1C
+ mov r4, r0
+ mov r0, r5
+ str r7, [r1, #0x0]
+ str r6, [r1, #0x4]
+ bl OS_RestoreInterrupts
+ mov r0, r4
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r7,lr}
+ bx lr
+ .balign 4
+_02099D84: .word 0x021C8F1C
+
+ arm_func_start FUN_02099D88
+FUN_02099D88: ; 0x02099D88
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x64
+ movs r4, r0
+ addeq sp, sp, #0x64
+ moveq r0, #0x0
+ ldmeqia sp!, {r4-r5,lr}
+ bxeq lr
+ ldr r1, _02099E34 ; =0x021C8CC0
+ mov r0, #0xfd0
+ ldr r1, [r1, #0x0]
+ ldr r1, [r1, #0x18]
+ blx r1
+ movs r5, r0
+ addeq sp, sp, #0x64
+ moveq r0, #0x0
+ ldmeqia sp!, {r4-r5,lr}
+ bxeq lr
+ add r0, sp, #0x0
+ mov r1, #0x0
+ mov r2, #0x64
+ bl MI_CpuFill8
+ ldr r3, _02099E38 ; =0x00000B68
+ ldr r1, _02099E3C ; =0x00000466
+ add r2, r5, r3
+ add r0, sp, #0x0
+ str r5, [sp, #0x40]
+ str r3, [sp, #0x3c]
+ str r2, [sp, #0x4c]
+ str r1, [sp, #0x48]
+ bl FUN_0209CC28
+ mov r0, r4
+ bl FUN_0209AB80
+ mov r4, r0
+ bl FUN_0209CC10
+ ldr r1, _02099E34 ; =0x021C8CC0
+ mov r0, r5
+ ldr r1, [r1, #0x0]
+ ldr r1, [r1, #0x1c]
+ blx r1
+ mov r0, r4
+ add sp, sp, #0x64
+ ldmia sp!, {r4-r5,lr}
+ bx lr
+ .balign 4
+_02099E34: .word 0x021C8CC0
+_02099E38: .word 0x00000B68
+_02099E3C: .word 0x00000466
+
+ arm_func_start FUN_02099E40
+FUN_02099E40:
+ ldr r2, [r0, #0x64]
+ mov r3, #0x0
+ cmp r2, #0x0
+ beq _02099E88
+ ldrsb r1, [r0, #0x73]
+ cmp r1, #0x1
+ bne _02099E6C
+ ldr r0, [r2, #0x104]
+ cmp r0, #0x0
+ ldrneh r3, [r0, #0x4]
+ b _02099E88
+_02099E6C:
+ cmp r1, #0x0
+ beq _02099E7C
+ cmp r1, #0x4
+ bne _02099E88
+_02099E7C:
+ ldr r1, [r0, #0x44]
+ ldr r0, [r2, #0xf8]
+ sub r3, r1, r0
+_02099E88:
+ mov r0, r3
+ bx lr
+
+ arm_func_start FUN_02099E90
+FUN_02099E90:
+ stmdb sp!, {r4-r6,lr}
+ mov r4, #0x0
+ mov r5, r0
+ bl FUN_02099FA8
+_02099EA0: ; 0x02099EA0
+ cmp r0, #0x0
+ orrne r4, r4, #0x80
+ bne _02099F60
+ ldrsh r0, [r5, #0x70]
+ ands r0, r0, #0x40
+ ldrsb r0, [r5, #0x73]
+ orrne r4, r4, #0x20
+ cmp r0, #0x1
+ beq _02099ED0
+ ldrsh r0, [r5, #0x70]
+ ands r0, r0, #0x4
+ beq _02099F00
+_02099ED0:
+ bl OS_DisableInterrupts
+ mov r6, r0
+ mov r0, r5
+ bl FUN_02099E40
+_02099EE0: ; 0x02099EE0
+ cmp r0, #0x0
+ mov r0, r5
+ orrgt r4, r4, #0x1
+ bl FUN_020992A0
+_02099EF0: ; 0x02099EF0
+ cmp r0, #0x0
+ mov r0, r6
+ orrgt r4, r4, #0x8
+ bl OS_RestoreInterrupts
+_02099F00:
+ ldrsb r0, [r5, #0x73]
+ mov r1, #0x1
+ cmp r0, #0x0
+ beq _02099F18
+ cmp r0, #0x4
+ movne r1, #0x0
+_02099F18:
+ cmp r1, #0x0
+ beq _02099F60
+ ldrsh r0, [r5, #0x70]
+ ands r0, r0, #0x4
+ beq _02099F48
+ ldrb r0, [r5, #0x8]
+ cmp r0, #0x4
+ beq _02099F48
+ ands r0, r4, #0x1
+ ldreqsh r0, [r5, #0x70]
+ biceq r0, r0, #0x6
+ streqh r0, [r5, #0x70]
+_02099F48:
+ ldrsh r0, [r5, #0x70]
+ ands r0, r0, #0x2
+ bne _02099F60
+ ldrsh r0, [r5, #0x70]
+ ands r0, r0, #0x4
+ orreq r4, r4, #0x40
+_02099F60:
+ mov r0, r4
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+
+ arm_func_start FUN_02099F6C
+FUN_02099F6C:
+ add r0, r0, #0x3
+ bic r0, r0, #0x3
+ bx lr
+
+ arm_func_start FUN_02099F78
+FUN_02099F78:
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ mov r1, r0
+ ldr r0, _02099FA4 ; =0x021C8D34
+ bl FUN_0209A008
+_02099F8C: ; 0x02099F8C
+ cmp r0, #0x0
+ movne r0, #0x1
+ moveq r0, #0x0
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+ .balign 4
+_02099FA4: .word 0x021C8D34
+
+ arm_func_start FUN_02099FA8
+FUN_02099FA8:
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ mov r1, r0
+ cmp r1, #0x0
+ ble _02099FCC
+ ldr r0, _02099FEC ; =0x021C8D30
+ bl FUN_0209A008
+_02099FC4: ; 0x02099FC4
+ cmp r0, #0x0
+ bne _02099FDC
+_02099FCC:
+ add sp, sp, #0x4
+ mov r0, #0x1
+ ldmia sp!, {lr}
+ bx lr
+_02099FDC:
+ mov r0, #0x0
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+ .balign 4
+_02099FEC: .word 0x021C8D30
+
+ arm_func_start FUN_02099FF0
+FUN_02099FF0: ; 0x02099FF0
+ ldr ip, _0209A000 ; =FUN_0209A034
+ mov r1, r0
+ ldr r0, _0209A004 ; =0x021C8D34
+ bx r12
+ .balign 4
+_0209A000: .word FUN_0209A034
+_0209A004: .word 0x021C8D34
+
+ arm_func_start FUN_0209A008
+FUN_0209A008:
+ ldr r2, [r0, #0x0]
+ cmp r2, #0x0
+ beq _0209A02C
+_0209A014:
+ cmp r2, r1
+ bxeq lr
+ add r0, r2, #0x7c
+ ldr r2, [r2, #0x7c]
+ cmp r2, #0x0
+ bne _0209A014
+_0209A02C:
+ mov r0, #0x0
+ bx lr
+
+ arm_func_start FUN_0209A034
+FUN_0209A034: ; 0x0209A034
+ stmdb sp!, {r4,lr}
+ mov r4, r1
+ bl FUN_0209A008
+_0209A040: ; 0x0209A040
+ cmp r0, #0x0
+ ldrne r1, [r4, #0x7c]
+ strne r1, [r0, #0x0]
+ ldmia sp!, {r4,lr}
+ bx lr
+
+ arm_func_start FUN_0209A054
+FUN_0209A054: ; 0x0209A054
+ ldr ip, _0209A064 ; =FUN_0209A034
+ mov r1, r0
+ ldr r0, _0209A068 ; =0x021C8D30
+ bx r12
+ .balign 4
+_0209A064: .word FUN_0209A034
+_0209A068: .word 0x021C8D30
+
+ arm_func_start FUN_0209A06C
+FUN_0209A06C: ; 0x0209A06C
+ ldr ip, _0209A07C ; =FUN_0209A084
+ mov r1, r0
+ ldr r0, _0209A080 ; =0x021C8D34
+ bx r12
+ .balign 4
+_0209A07C: .word FUN_0209A084
+_0209A080: .word 0x021C8D34
+
+ arm_func_start FUN_0209A084
+FUN_0209A084: ; 0x0209A084
+ ldr r2, [r0, #0x0]
+ str r2, [r1, #0x7c]
+ str r1, [r0, #0x0]
+ bx lr
+
+ arm_func_start FUN_0209A094
+FUN_0209A094: ; 0x0209A094
+ ldr ip, _0209A0A4 ; =FUN_0209A084
+ mov r1, r0
+ ldr r0, _0209A0A8 ; =0x021C8D30
+ bx r12
+ .balign 4
+_0209A0A4: .word FUN_0209A084
+_0209A0A8: .word 0x021C8D30
+
+ arm_func_start FUN_0209A0AC
+FUN_0209A0AC: ; 0x0209A0AC
+ stmdb sp!, {r4-r11,lr}
+ sub sp, sp, #0xc
+ mov r9, r2
+ str r0, [sp, #0x0]
+ mov r0, #0x1
+ str r0, [sp, #0x8]
+ mov r0, #0x0
+ mov r8, r3
+ mvn r2, #0x0
+ cmp r8, r2
+ cmpeq r9, r2
+ movne r11, #0x1
+ mov r10, r1
+ moveq r11, #0x0
+ str r0, [sp, #0x4]
+_0209A0E8:
+ ldr r5, [sp, #0x4]
+ ldr r7, [sp, #0x0]
+ mov r6, r5
+ cmp r10, #0x0
+ bls _0209A128
+_0209A0FC:
+ ldrsh r1, [r7, #0x4]
+ ldr r0, [r7, #0x0]
+ orr r4, r1, #0xe0
+ bl FUN_02099E90
+_0209A10C: ; 0x0209A10C
+ ands r0, r4, r0
+ strh r0, [r7, #0x6]
+ add r6, r6, #0x1
+ addne r5, r5, #0x1
+ cmp r6, r10
+ add r7, r7, #0x8
+ blo _0209A0FC
+_0209A128:
+ cmp r5, #0x0
+ bgt _0209A160
+ cmp r11, #0x0
+ beq _0209A148
+ mov r1, #0x0
+ subs r0, r1, r9
+ sbcs r0, r1, r8
+ bge _0209A160
+_0209A148:
+ ldr r0, [sp, #0x8]
+ bl OS_Sleep
+ ldr r0, _0209A170 ; =0x0000020B
+ subs r9, r9, r0
+ sbc r8, r8, #0x0
+ b _0209A0E8
+_0209A160:
+ mov r0, r5
+ add sp, sp, #0xc
+ ldmia sp!, {r4-r11,lr}
+ bx lr
+ .balign 4
+_0209A170: .word 0x0000020B
+
+ arm_func_start FUN_0209A174
+FUN_0209A174: ; 0x0209A174
+ mov r2, r0, lsr #0x18
+ strb r2, [r1, #0x0]
+ mov r2, r0, lsr #0x10
+ strb r2, [r1, #0x1]
+ mov r2, r0, lsr #0x8
+ strb r2, [r1, #0x2]
+ strb r0, [r1, #0x3]
+ bx lr
+
+ arm_func_start FUN_0209A194
+FUN_0209A194: ; 0x0209A194
+ stmdb sp!, {r4,lr}
+ sub sp, sp, #0x18
+ cmp r0, #0x2
+ mov r4, r2
+ addne sp, sp, #0x18
+ movne r0, #0x0
+ ldmneia sp!, {r4,lr}
+ bxne lr
+ cmp r3, #0x10
+ addcc sp, sp, #0x18
+ movcc r0, #0x0
+ ldmccia sp!, {r4,lr}
+ bxcc lr
+ mov r0, r1
+ add r1, sp, #0xc
+ mov r2, #0x4
+ bl MI_CpuCopy8
+ ldr r0, [sp, #0xc]
+ add r1, sp, #0x10
+ bl FUN_0209A174
+ ldrb r1, [sp, #0x12]
+ ldr r2, _0209A220 ; =0x0210620C
+ mov r0, r4
+ str r1, [sp, #0x0]
+ ldrb r3, [sp, #0x11]
+ mov r1, #0x10
+ str r3, [sp, #0x4]
+ ldrb r3, [sp, #0x10]
+ str r3, [sp, #0x8]
+ ldrb r3, [sp, #0x13]
+ bl OS_SNPrintf
+ mov r0, r4
+ add sp, sp, #0x18
+ ldmia sp!, {r4,lr}
+ bx lr
+ .balign 4
+_0209A220: .word 0x0210620C
+
+ arm_func_start FUN_0209A224
+FUN_0209A224: ; 0x0209A224
+ stmdb sp!, {r4,lr}
+ mov r4, r1
+ bl FUN_02099D28
+_0209A230: ; 0x0209A230
+ cmp r0, #0x0
+ moveq r0, #0x0
+ ldmeqia sp!, {r4,lr}
+ bxeq lr
+ mov r2, r0, lsr #0x18
+ mov r1, r0, lsr #0x8
+ mov r3, r0, lsl #0x8
+ mov r12, r0, lsl #0x18
+ and r2, r2, #0xff
+ and r0, r1, #0xff00
+ and r1, r3, #0xff0000
+ orr r0, r2, r0
+ and r2, r12, #0xff000000
+ orr r0, r1, r0
+ orr r0, r2, r0
+ str r0, [r4, #0x0]
+ mov r0, #0x1
+ ldmia sp!, {r4,lr}
+ bx lr
+
+ arm_func_start FUN_0209A27C
+FUN_0209A27C: ; 0x0209A27C
+ stmdb sp!, {r0-r3}
+
+ arm_func_start FUN_0209A280
+FUN_0209A280: ; 0x0209A280
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldr r2, _0209A2B0 ; =0x021C8D5C
+ add r1, sp, #0x8
+ mov r0, #0x2
+ mov r3, #0x10
+ bl FUN_0209A194
+ ldr r0, _0209A2B0 ; =0x021C8D5C
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ add sp, sp, #0x10
+ bx lr
+ .balign 4
+_0209A2B0: .word 0x021C8D5C
+
+ arm_func_start THUNK_FUN_02099BC8
+THUNK_FUN_02099BC8: ; 0x0209A2B4
+ ldr ip, _0209A2BC ; =FUN_02099BC8
+ bx r12
+ .balign 4
+_0209A2BC: .word FUN_02099BC8
+
+ arm_func_start FUN_0209A2C0
+FUN_0209A2C0: ; 0x0209A2C0
+ stmdb sp!, {r4-r8,lr}
+ ldr r1, [r0, #0xc]
+ ldr ip, _0209A430 ; =0x021C8D6C
+ cmp r1, #0x1
+ moveq r1, #0x1
+ movne r1, #0x0
+ str r1, [r12, #0x0]
+ ldr r6, [r0, #0x10]
+ ldr r5, _0209A434 ; =FUN_0209A484
+ mov r2, r6, lsr #0x18
+ mov r1, r6, lsr #0x8
+ mov r3, r6, lsl #0x8
+ and r2, r2, #0xff
+ and r1, r1, #0xff00
+ mov r6, r6, lsl #0x18
+ orr r1, r2, r1
+ and r3, r3, #0xff0000
+ orr r1, r3, r1
+ and r2, r6, #0xff000000
+ orr r1, r2, r1
+ str r1, [r12, #0x4]
+ ldr r7, [r0, #0x14]
+ ldr r4, _0209A438 ; =FUN_0209A444
+ mov r2, r7, lsr #0x18
+ mov r1, r7, lsr #0x8
+ mov r6, r7, lsl #0x8
+ and r2, r2, #0xff
+ and r1, r1, #0xff00
+ mov r7, r7, lsl #0x18
+ orr r1, r2, r1
+ and r6, r6, #0xff0000
+ and r2, r7, #0xff000000
+ orr r1, r6, r1
+ orr r1, r2, r1
+ str r1, [r12, #0x8]
+ ldr r1, [r0, #0x18]
+ ldr r3, _0209A43C ; =0x021C8D40
+ mov r7, r1, lsr #0x18
+ mov r6, r1, lsr #0x8
+ mov r8, r1, lsl #0x8
+ and r7, r7, #0xff
+ and r6, r6, #0xff00
+ mov r1, r1, lsl #0x18
+ orr r6, r7, r6
+ and r8, r8, #0xff0000
+ and r7, r1, #0xff000000
+ orr r1, r8, r6
+ orr r1, r7, r1
+ str r1, [r12, #0xc]
+ ldr r1, [r0, #0x1c]
+ ldr r2, _0209A440 ; =0x021C8D3C
+ mov r7, r1, lsr #0x18
+ mov r6, r1, lsr #0x8
+ mov r8, r1, lsl #0x8
+ and r7, r7, #0xff
+ and r6, r6, #0xff00
+ mov r1, r1, lsl #0x18
+ orr r6, r7, r6
+ and r8, r8, #0xff0000
+ and r7, r1, #0xff000000
+ orr r1, r8, r6
+ orr r1, r7, r1
+ str r1, [r12, #0x10]
+ ldr r1, [r0, #0x20]
+ mov lr, #0x40
+ mov r7, r1, lsr #0x18
+ mov r6, r1, lsr #0x8
+ mov r8, r1, lsl #0x8
+ and r7, r7, #0xff
+ and r6, r6, #0xff00
+ mov r1, r1, lsl #0x18
+ orr r6, r7, r6
+ and r8, r8, #0xff0000
+ and r7, r1, #0xff000000
+ orr r1, r8, r6
+ orr r1, r7, r1
+ str r5, [r12, #0x18]
+ str r4, [r12, #0x1c]
+ str r1, [r12, #0x14]
+ ldr r1, [r0, #0x4]
+ str r1, [r3, #0x0]
+ ldr r1, [r0, #0x8]
+ str lr, [r12, #0x20]
+ str r1, [r2, #0x0]
+ ldr r1, [r0, #0x2c]
+ str r1, [r12, #0x30]
+ ldr r1, [r0, #0x30]
+ mov r0, r12
+ str r1, [r12, #0x34]
+ bl FUN_02097834
+ ldmia sp!, {r4-r8,lr}
+ bx lr
+ .balign 4
+_0209A430: .word 0x021C8D6C
+_0209A434: .word FUN_0209A484
+_0209A438: .word FUN_0209A444
+_0209A43C: .word 0x021C8D40
+_0209A440: .word 0x021C8D3C
+
+ arm_func_start FUN_0209A444
+FUN_0209A444: ; 0x0209A444
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ cmp r0, #0x0
+ addeq sp, sp, #0x4
+ ldmeqia sp!, {lr}
+ bxeq lr
+ ldr r1, _0209A480 ; =0x021C8D3C
+ ldr r2, [r0, #-0x4]
+ ldr r3, [r1, #0x0]
+ sub r1, r0, #0x4
+ mov r0, #0x0
+ blx r3
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+ .balign 4
+_0209A480: .word 0x021C8D3C
+
+ arm_func_start FUN_0209A484
+FUN_0209A484: ; 0x0209A484
+ stmdb sp!, {r4,lr}
+ ldr r1, _0209A4B0 ; =0x021C8D40
+ add r4, r0, #0x4
+ ldr r2, [r1, #0x0]
+ mov r1, r4
+ mov r0, #0x0
+ blx r2
+ cmp r0, #0x0
+ strne r4, [r0], #0x4
+ ldmia sp!, {r4,lr}
+ bx lr
+ .balign 4
+_0209A4B0: .word 0x021C8D40
+
+ arm_func_start FUN_0209A4B4
+FUN_0209A4B4: ; 0x0209A4B4
+ cmp r0, #0x0
+ mvneq r0, #0x0
+ bxeq lr
+ cmp r1, #0x3
+ beq _0209A4D4
+ cmp r1, #0x4
+ beq _0209A4E8
+ b _0209A4FC
+_0209A4D4:
+ ldrsb r0, [r0, #0x72]
+ cmp r0, #0x1
+ moveq r0, #0x0
+ movne r0, #0x4
+ bx lr
+_0209A4E8:
+ ands r1, r2, #0x4
+ movne r1, #0x0
+ strneb r1, [r0, #0x72]
+ moveq r1, #0x1
+ streqb r1, [r0, #0x72]
+_0209A4FC:
+ mov r0, #0x0
+ bx lr
+
+ arm_func_start FUN_0209A504
+FUN_0209A504: ; 0x0209A504
+ stmdb sp!, {r4,lr}
+ sub sp, sp, #0x8
+ mov r4, r1
+ add r1, sp, #0x0
+ add r2, sp, #0x4
+ bl FUN_02098120
+_0209A51C: ; 0x0209A51C
+ cmp r0, #0x0
+ addlt sp, sp, #0x8
+ ldmltia sp!, {r4,lr}
+ bxlt lr
+ ldrh r1, [sp, #0x0]
+ mov r2, r1, asr #0x8
+ mov r1, r1, lsl #0x8
+ and r2, r2, #0xff
+ and r1, r1, #0xff00
+ orr r1, r2, r1
+ strh r1, [r4, #0x2]
+ ldr r12, [sp, #0x4]
+ mov r2, r12, lsr #0x18
+ mov r1, r12, lsr #0x8
+ mov r3, r12, lsl #0x8
+ mov r12, r12, lsl #0x18
+ and r2, r2, #0xff
+ and r1, r1, #0xff00
+ and r3, r3, #0xff0000
+ orr r1, r2, r1
+ and r2, r12, #0xff000000
+ orr r1, r3, r1
+ orr r1, r2, r1
+ str r1, [r4, #0x4]
+ add sp, sp, #0x8
+ ldmia sp!, {r4,lr}
+ bx lr
+
+ arm_func_start FUN_0209A588
+FUN_0209A588: ; 0x0209A588
+ ldr ip, _0209A590 ; =FUN_0209822C
+ bx r12
+ .balign 4
+_0209A590: .word FUN_0209822C
+
+ arm_func_start FUN_0209A594
+FUN_0209A594: ; 0x0209A594
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ ldr r12, [r1, #0x0]
+ ldr r0, [r0, #0x0]
+ mov r2, r12, lsr #0x18
+ mov r4, r0, lsr #0x18
+ mov lr, r0, lsr #0x8
+ mov r1, r12, lsr #0x8
+ mov r5, r0, lsl #0x8
+ mov r3, r12, lsl #0x8
+ mov r0, r0, lsl #0x18
+ mov r12, r12, lsl #0x18
+ and r4, r4, #0xff
+ and lr, lr, #0xff00
+ and r2, r2, #0xff
+ and r1, r1, #0xff00
+ and r5, r5, #0xff0000
+ orr r4, r4, lr
+ and r3, r3, #0xff0000
+ orr r1, r2, r1
+ and lr, r0, #0xff000000
+ orr r0, r5, r4
+ and r2, r12, #0xff000000
+ orr r1, r3, r1
+ orr r0, lr, r0
+ orr r1, r2, r1
+ bl FUN_02099CEC
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,lr}
+ bx lr
+
+ arm_func_start FUN_0209A60C
+FUN_0209A60C: ; 0x0209A60C
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ bl FUN_02099C78
+ mov r2, r0, lsr #0x18
+ mov r1, r0, lsr #0x8
+ mov r3, r0, lsl #0x8
+ mov r12, r0, lsl #0x18
+ and r2, r2, #0xff
+ and r0, r1, #0xff00
+ and r1, r3, #0xff0000
+ orr r0, r2, r0
+ and r2, r12, #0xff000000
+ orr r0, r1, r0
+ orr r0, r2, r0
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+
+ arm_func_start FUN_0209A650
+FUN_0209A650: ; 0x0209A650
+ stmdb sp!, {r4-r6,lr}
+ movs r5, r0
+ mov r4, r1
+ mvneq r0, #0x26
+ ldmeqia sp!, {r4-r6,lr}
+ bxeq lr
+ bl FUN_02099C78
+_0209A66C: ; 0x0209A66C
+ cmp r5, #0x0
+ ldrneh r1, [r5, #0x74]
+ mov r2, r0, lsr #0x18
+ mov r6, #0x8
+ moveq r1, #0x0
+ cmp r0, #0x0
+ moveq r1, #0x0
+ mov r1, r1, lsl #0x10
+ mov r3, r1, lsr #0x10
+ mov r5, r3, asr #0x8
+ mov lr, r3, lsl #0x8
+ strb r6, [r4, #0x0]
+ mov r6, #0x2
+ mov r1, r0, lsr #0x8
+ mov r3, r0, lsl #0x8
+ mov r12, r0, lsl #0x18
+ and r0, r1, #0xff00
+ and r2, r2, #0xff
+ orr r0, r2, r0
+ and r1, r3, #0xff0000
+ and r5, r5, #0xff
+ and lr, lr, #0xff00
+ strb r6, [r4, #0x1]
+ orr r3, r5, lr
+ and r2, r12, #0xff000000
+ orr r0, r1, r0
+ strh r3, [r4, #0x2]
+ orr r0, r2, r0
+ str r0, [r4, #0x4]
+ mov r0, #0x0
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+
+ arm_func_start FUN_0209A6EC
+FUN_0209A6EC: ; 0x0209A6EC
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ mov r5, r0
+ bl FUN_02099D88
+ movs r4, r0
+ addeq sp, sp, #0x4
+ moveq r0, #0x0
+ ldmeqia sp!, {r4-r5,lr}
+ bxeq lr
+ ldr r0, _0209A7A4 ; =0x021C8DA4
+ ldr r2, _0209A7A8 ; =0x00000101
+ mov r1, #0x0
+ bl MI_CpuFill8
+ ldr r0, _0209A7A4 ; =0x021C8DA4
+ ldr r2, _0209A7A8 ; =0x00000101
+ mov r1, r5
+ bl STD_CopyLString
+ mov r1, r4, lsr #0x18
+ mov r0, r4, lsr #0x8
+ mov r2, r4, lsl #0x8
+ mov r3, r4, lsl #0x18
+ and r1, r1, #0xff
+ and r0, r0, #0xff00
+ and r2, r2, #0xff0000
+ orr r0, r1, r0
+ and r3, r3, #0xff000000
+ orr r1, r2, r0
+ ldr r5, _0209A7A4 ; =0x021C8DA4
+ ldr r0, _0209A7AC ; =0x021C8D4C
+ ldr ip, _0209A7B0 ; =0x021C8D44
+ mov r4, #0x0
+ ldr r2, _0209A7B4 ; =0x021C8D38
+ orr r1, r3, r1
+ mov lr, #0x2
+ mov r3, #0x4
+ str r5, [r0, #0x0]
+ str r4, [r0, #0x4]
+ strh lr, [r0, #0x8]
+ strh r3, [r0, #0xa]
+ str r12, [r0, #0xc]
+ str r2, [r12, #0x0]
+ str r4, [r12, #0x4]
+ str r1, [r2, #0x0]
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,lr}
+ bx lr
+ .balign 4
+_0209A7A4: .word 0x021C8DA4
+_0209A7A8: .word 0x00000101
+_0209A7AC: .word 0x021C8D4C
+_0209A7B0: .word 0x021C8D44
+_0209A7B4: .word 0x021C8D38
+
+ arm_func_start thunk_FUN_0209996c
+thunk_FUN_0209996c: ; 0x0209A7B8
+ ldr ip, _0209A7C0 ; =FUN_0209996C
+ bx r12
+ .balign 4
+_0209A7C0: .word FUN_0209996C
+
+ arm_func_start thunk_FUN_020995dc
+thunk_FUN_020995dc: ; 0x0209A7C4
+ ldr ip, _0209A7CC ; =FUN_020995DC
+ bx r12
+ .balign 4
+_0209A7CC: .word FUN_020995DC
+
+ arm_func_start FUN_0209A7D0
+FUN_0209A7D0: ; 0x0209A7D0
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0xc
+ ldr r5, [sp, #0x20]
+ cmp r5, #0x0
+ moveq r5, #0x0
+ moveq r4, r5
+ beq _0209A83C
+ ldrh r4, [r5, #0x2]
+ ldr r6, [r5, #0x4]
+ mov r7, r4, asr #0x8
+ mov r12, r4, lsl #0x8
+ mov r4, r6, lsr #0x18
+ mov lr, r6, lsr #0x8
+ mov r5, r6, lsl #0x8
+ mov r6, r6, lsl #0x18
+ and r7, r7, #0xff
+ and r12, r12, #0xff00
+ orr r7, r7, r12
+ and r4, r4, #0xff
+ and lr, lr, #0xff00
+ and r5, r5, #0xff0000
+ orr r4, r4, lr
+ mov r12, r7, lsl #0x10
+ orr r4, r5, r4
+ and r6, r6, #0xff000000
+ mov r5, r12, lsr #0x10
+ orr r4, r6, r4
+_0209A83C:
+ str r4, [sp, #0x0]
+ str r3, [sp, #0x4]
+ mov r3, r5
+ bl FUN_02099470
+ add sp, sp, #0xc
+ ldmia sp!, {r4-r7,lr}
+ bx lr
+
+ arm_func_start FUN_0209A858
+FUN_0209A858: ; 0x0209A858
+ stmdb sp!, {lr}
+ sub sp, sp, #0xc
+ mov r12, #0x0
+ str r12, [sp, #0x0]
+ str r3, [sp, #0x4]
+ mov r3, r12
+ bl FUN_02099470
+ add sp, sp, #0xc
+ ldmia sp!, {lr}
+ bx lr
+
+ arm_func_start FUN_0209A880
+FUN_0209A880: ; 0x0209A880
+ stmdb sp!, {lr}
+ sub sp, sp, #0x14
+ add r12, sp, #0xc
+ str r12, [sp, #0x0]
+ str r3, [sp, #0x4]
+ add r3, sp, #0x8
+ bl FUN_02098CF4
+_0209A89C: ; 0x0209A89C
+ cmp r0, #0x0
+ addlt sp, sp, #0x14
+ ldmltia sp!, {lr}
+ bxlt lr
+ ldr r1, [sp, #0x18]
+ cmp r1, #0x0
+ addeq sp, sp, #0x14
+ ldmeqia sp!, {lr}
+ bxeq lr
+ ldrh r2, [sp, #0x8]
+ mov r3, r2, asr #0x8
+ mov r2, r2, lsl #0x8
+ and r3, r3, #0xff
+ and r2, r2, #0xff00
+ orr r2, r3, r2
+ strh r2, [r1, #0x2]
+ ldr lr, [sp, #0xc]
+ mov r3, lr, lsr #0x18
+ mov r2, lr, lsr #0x8
+ mov r12, lr, lsl #0x8
+ mov lr, lr, lsl #0x18
+ and r3, r3, #0xff
+ and r2, r2, #0xff00
+ and r12, r12, #0xff0000
+ orr r2, r3, r2
+ and r3, lr, #0xff000000
+ orr r2, r12, r2
+ orr r2, r3, r2
+ str r2, [r1, #0x4]
+ add sp, sp, #0x14
+ ldmia sp!, {lr}
+ bx lr
+
+ arm_func_start FUN_0209A91C
+FUN_0209A91C: ; 0x0209A91C
+ stmdb sp!, {lr}
+ sub sp, sp, #0xc
+ mov r12, #0x0
+ str r12, [sp, #0x0]
+ str r3, [sp, #0x4]
+ mov r3, r12
+ bl FUN_02098CF4
+ add sp, sp, #0xc
+ ldmia sp!, {lr}
+ bx lr
+
+ arm_func_start FUN_0209A944
+FUN_0209A944: ; 0x0209A944
+ stmdb sp!, {r4,lr}
+ ldrh r2, [r1, #0x2]
+ ldr lr, [r1, #0x4]
+ mov r4, r2, asr #0x8
+ mov r1, r2, lsl #0x8
+ mov r3, lr, lsr #0x18
+ mov r2, lr, lsr #0x8
+ mov r12, lr, lsl #0x8
+ mov lr, lr, lsl #0x18
+ and r4, r4, #0xff
+ and r1, r1, #0xff00
+ orr r1, r4, r1
+ mov r1, r1, lsl #0x10
+ and r3, r3, #0xff
+ and r2, r2, #0xff00
+ and r12, r12, #0xff0000
+ orr r2, r3, r2
+ and r3, lr, #0xff000000
+ orr r2, r12, r2
+ mov r1, r1, lsr #0x10
+ orr r2, r3, r2
+ bl FUN_020983B0
+ ldmia sp!, {r4,lr}
+ bx lr
+
+ arm_func_start FUN_0209A9A4
+FUN_0209A9A4: ; 0x0209A9A4
+ ldrh r1, [r1, #0x2]
+ ldr ip, _0209A9CC ; =FUN_020984B4
+ mov r2, r1, asr #0x8
+ mov r1, r1, lsl #0x8
+ and r2, r2, #0xff
+ and r1, r1, #0xff00
+ orr r1, r2, r1
+ mov r1, r1, lsl #0x10
+ mov r1, r1, lsr #0x10
+ bx r12
+ .balign 4
+_0209A9CC: .word FUN_020984B4
+
+ arm_func_start FUN_0209A9D0
+FUN_0209A9D0: ; 0x0209A9D0
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ cmp r1, #0x1
+ bne _0209A9F4
+ ldr r0, _0209AA08 ; =0x021061DC
+ bl FUN_02097F70
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+_0209A9F4:
+ ldr r0, _0209AA0C ; =0x021061C4
+ bl FUN_02097F70
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+ .balign 4
+_0209AA08: .word 0x021061DC
+_0209AA0C: .word 0x021061C4
+
+ arm_func_start FUN_0209AA10
+FUN_0209AA10: ; 0x0209AA10
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0x4
+ mov r7, r0
+ ldr r6, [r7, #0x4]
+ ldr r5, [r6, #0x64]
+ add r0, r5, #0xe0
+ ldr r4, [r5, #0xc4]
+ bl OS_LockMutex
+ ldr r1, [r7, #0x10]
+ cmp r1, #0x0
+ beq _0209AA54
+ mov r0, #0x1
+ str r1, [r4, #0xc]
+ bl FUN_020A02EC
+ mov r0, #0x4
+ strb r0, [r6, #0x73]
+ b _0209AA68
+_0209AA54:
+ mov r0, #0x0
+ strb r0, [r6, #0x73]
+ bl FUN_020A02EC
+_0209AA60: ; 0x0209AA60
+ mov r0, #0x0
+ str r0, [r4, #0xc]
+_0209AA68:
+ add r0, r5, #0xe0
+ bl OS_UnlockMutex
+_0209AA70: ; 0x0209AA70
+ mov r0, #0x0
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r7,lr}
+ bx lr
+
+ arm_func_start FUN_0209AA80
+FUN_0209AA80: ; 0x0209AA80
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ mov r5, r0
+ mov r4, r1
+ ldr r0, _0209AACC ; =FUN_0209AA10
+ mov r1, r5
+ mov r2, #0x1
+ bl FUN_02097A98
+ movs r1, r0
+ addeq sp, sp, #0x4
+ mvneq r0, #0x20
+ ldmeqia sp!, {r4-r5,lr}
+ bxeq lr
+ mov r0, r5
+ str r4, [r1, #0x10]
+ bl FUN_02097958
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,lr}
+ bx lr
+ .balign 4
+_0209AACC: .word FUN_0209AA10
+
+ arm_func_start FUN_0209AAD0
+FUN_0209AAD0: ; 0x0209AAD0
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ mov r5, r0
+ mov r4, r1
+ bl FUN_02099FA8
+_0209AAE4: ; 0x0209AAE4
+ cmp r0, #0x0
+ addne sp, sp, #0x4
+ mvnne r0, #0x1b
+ ldmneia sp!, {r4-r5,lr}
+ bxne lr
+ ldrsb r0, [r5, #0x73]
+ mov r1, #0x1
+ cmp r0, #0x0
+ beq _0209AB10
+ cmp r0, #0x4
+ movne r1, #0x0
+_0209AB10:
+ cmp r1, #0x0
+ addeq sp, sp, #0x4
+ mvneq r0, #0x1b
+ ldmeqia sp!, {r4-r5,lr}
+ bxeq lr
+ cmp r5, #0x0
+ mov r1, #0x0
+ beq _0209AB3C
+ ldrsh r0, [r5, #0x70]
+ ands r0, r0, #0x1
+ movne r1, #0x1
+_0209AB3C:
+ cmp r1, #0x0
+ addeq sp, sp, #0x4
+ mvneq r0, #0x26
+ ldmeqia sp!, {r4-r5,lr}
+ bxeq lr
+ ldrsh r0, [r5, #0x70]
+ ands r0, r0, #0x2
+ addne sp, sp, #0x4
+ mvnne r0, #0x1b
+ ldmneia sp!, {r4-r5,lr}
+ bxne lr
+ mov r0, r5
+ mov r1, r4
+ bl FUN_0209AA80
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,lr}
+ bx lr
+
+ arm_func_start FUN_0209AB80
+FUN_0209AB80: ; 0x0209AB80
+ stmdb sp!, {r4-r11,lr}
+ sub sp, sp, #0xc
+ ldr r6, _0209ACC0 ; =0x021C8F24
+ mov r9, #0x0
+ ldr r11, [r6, #0x8]
+ ldr r2, [r6, #0x0]
+ ldr r1, [r6, #0x4]
+ umull r5, r4, r11, r2
+ mla r4, r11, r1, r4
+ ldr r10, [r6, #0xc]
+ ldr r3, [r6, #0x10]
+ mla r4, r10, r2, r4
+ adds r5, r3, r5
+ ldr r1, [r6, #0x14]
+ umull r8, r7, r11, r5
+ adc r4, r1, r4
+ mla r7, r11, r4, r7
+ mla r7, r10, r5, r7
+ mov r2, r9, lsl #0x10
+ adds r8, r3, r8
+ str r5, [r6, #0x0]
+ adc r5, r1, r7
+ mov r3, r9, lsl #0x10
+ orr r2, r2, r4, lsr #0x10
+ str r4, [r6, #0x4]
+ orr r3, r3, r5, lsr #0x10
+ add r1, sp, #0x4
+ mov r10, r0
+ strh r2, [sp, #0x8]
+ str r8, [r6, #0x0]
+ str r5, [r6, #0x4]
+ strh r3, [sp, #0xa]
+ bl FUN_0209AD34
+_0209AC04: ; 0x0209AC04
+ cmp r0, #0x0
+ ldrne r0, [sp, #0x4]
+ addne sp, sp, #0xc
+ ldmneia sp!, {r4-r11,lr}
+ bxne lr
+ mov r0, #0x1
+ ldr r6, _0209ACC4 ; =0x021C8F1C
+ strb r0, [sp, #0x0]
+ strb r0, [sp, #0x1]
+ add r5, sp, #0x8
+ mov r4, r9
+ mov r11, r9
+_0209AC34:
+ mov r8, r11
+ add r7, sp, #0x0
+_0209AC3C:
+ ldrb r0, [r7, #0x0]
+ cmp r0, #0x0
+ beq _0209AC80
+ mov r0, r8, lsl #0x1
+ ldrh r2, [r5, r0]
+ ldr r1, [r6, r8, lsl #0x2]
+ mov r0, r10
+ bl FUN_0209ACC8
+ str r0, [sp, #0x4]
+ cmp r0, #0x0
+ beq _0209AC74
+ mvn r1, #0x0
+ cmp r0, r1
+ bne _0209AC9C
+_0209AC74:
+ mvn r1, #0x0
+ cmp r0, r1
+ streqb r4, [r7, #0x0]
+_0209AC80:
+ add r8, r8, #0x1
+ cmp r8, #0x2
+ add r7, r7, #0x1
+ blt _0209AC3C
+ add r9, r9, #0x1
+ cmp r9, #0x3
+ blt _0209AC34
+_0209AC9C:
+ ldr r1, [sp, #0x4]
+ mvn r0, #0x0
+ cmp r1, r0
+ moveq r0, #0x0
+ streq r0, [sp, #0x4]
+ ldr r0, [sp, #0x4]
+ add sp, sp, #0xc
+ ldmia sp!, {r4-r11,lr}
+ bx lr
+ .balign 4
+_0209ACC0: .word 0x021C8F24
+_0209ACC4: .word 0x021C8F1C
+
+ arm_func_start FUN_0209ACC8
+FUN_0209ACC8: ; 0x0209ACC8
+ stmdb sp!, {r4-r6,lr}
+ sub sp, sp, #0x8
+ movs r5, r1
+ mov r6, r0
+ mov r4, r2
+ addeq sp, sp, #0x8
+ mvneq r0, #0x0
+ ldmeqia sp!, {r4-r6,lr}
+ bxeq lr
+ bl FUN_0209CB44
+ bl FUN_0209CBE8
+ mov r2, r5
+ mov r0, #0x0
+ mov r1, #0x35
+ bl FUN_0209CB78
+ mov r0, r6
+ mov r2, r4
+ mov r3, #0x0
+ str r3, [sp, #0x0]
+ mov r1, #0x1
+ bl FUN_0209AE18
+ mov r4, r0
+ bl FUN_0209CB24
+ mov r0, r4
+ add sp, sp, #0x8
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+
+ arm_func_start FUN_0209AD34
+FUN_0209AD34:
+ stmdb sp!, {r4-r8,lr}
+ sub sp, sp, #0x8
+ mov r6, #0x0
+ mov r8, r0
+ mov r7, r1
+ mov r5, r6
+ add r4, sp, #0x0
+_0209AD50:
+ mov r0, r8
+ mov r1, r4
+ mov r6, r6, lsl #0x8
+ bl FUN_0209ADE4
+ ldr r2, [sp, #0x0]
+ cmp r8, r2
+ addeq sp, sp, #0x8
+ moveq r0, #0x0
+ ldmeqia sp!, {r4-r8,lr}
+ bxeq lr
+ mov r8, r2
+ cmp r0, #0xff
+ bhi _0209ADB0
+ cmp r5, #0x3
+ beq _0209AD9C
+ ldrb r1, [r2, #0x0]
+ add r8, r2, #0x1
+ cmp r1, #0x2e
+ bne _0209ADB0
+_0209AD9C:
+ cmp r5, #0x3
+ bne _0209ADC0
+ ldrb r1, [r8, #0x0]
+ cmp r1, #0x0
+ beq _0209ADC0
+_0209ADB0:
+ add sp, sp, #0x8
+ mov r0, #0x0
+ ldmia sp!, {r4-r8,lr}
+ bx lr
+_0209ADC0:
+ add r5, r5, #0x1
+ cmp r5, #0x4
+ orr r6, r6, r0
+ blt _0209AD50
+ str r6, [r7, #0x0]
+ mov r0, #0x1
+ add sp, sp, #0x8
+ ldmia sp!, {r4-r8,lr}
+ bx lr
+
+ arm_func_start FUN_0209ADE4
+FUN_0209ADE4: ; 0x0209ADE4
+ str r0, [r1, #0x0]
+ mov r12, #0x0
+ mov r2, #0xa
+_0209ADF0:
+ ldrb r3, [r0, #0x0]
+ sub r3, r3, #0x30
+ and r3, r3, #0xff
+ cmp r3, #0x9
+ mlals r12, r2, r12, r3
+ addls r0, r0, #0x1
+ strls r0, [r1, #0x0]
+ bls _0209ADF0
+ mov r0, r12
+ bx lr
+
+ arm_func_start FUN_0209AE18
+FUN_0209AE18: ; 0x0209AE18
+ stmdb sp!, {r4-r11,lr}
+ sub sp, sp, #0x4c
+ mov r9, r2
+ mov r2, r9, asr #0x8
+ mov r10, r1
+ orr r1, r2, r9, lsl #0x8
+ strh r1, [sp, #0x10]
+ cmp r10, #0x20
+ mov r5, #0x0
+ movne r1, #0x1
+ strneh r1, [sp, #0x12]
+ ldreq r1, _0209B0C8 ; =0x00001001
+ strh r5, [sp, #0x16]
+ streqh r1, [sp, #0x12]
+ mov r1, #0x100
+ strh r1, [sp, #0x14]
+ add r1, sp, #0x1c
+ strh r5, [sp, #0x18]
+ strh r5, [sp, #0x1a]
+ str r5, [sp, #0xc]
+ ldrb r6, [r0], #0x1
+ str r3, [sp, #0x0]
+ ldr r8, [sp, #0x70]
+ add r2, r1, #0x1
+ cmp r6, #0x0
+ beq _0209AED8
+ add r4, sp, #0x10
+_0209AE84:
+ cmp r6, #0x2e
+ beq _0209AEB8
+ sub r3, r2, r4
+ cmp r3, #0x3c
+ addge sp, sp, #0x4c
+ mvnge r0, #0x0
+ ldmgeia sp!, {r4-r11,lr}
+ bxge lr
+ strb r6, [r2], #0x1
+ ldr r3, [sp, #0xc]
+ add r3, r3, #0x1
+ str r3, [sp, #0xc]
+ b _0209AECC
+_0209AEB8:
+ ldr r3, [sp, #0xc]
+ strb r3, [r1, #0x0]
+ mov r1, r2
+ str r5, [sp, #0xc]
+ add r2, r2, #0x1
+_0209AECC:
+ ldrb r6, [r0], #0x1
+ cmp r6, #0x0
+ bne _0209AE84
+_0209AED8:
+ ldr r0, [sp, #0xc]
+ mov r3, #0x0
+ strb r0, [r1, #0x0]
+ strb r3, [r2, #0x0]
+ mov r0, r10, lsr #0x8
+ strb r0, [r2, #0x1]
+ strb r10, [r2, #0x2]
+ strb r3, [r2, #0x3]
+ mov r3, #0x1
+ add r0, sp, #0x10
+ add r1, r2, #0x5
+ sub r1, r1, r0
+ strb r3, [r2, #0x4]
+ bl FUN_0209C030
+ mov r6, #0x0
+ bl OS_GetTick
+ mov r5, r0, lsr #0x10
+ mov r0, #0x2
+ str r0, [sp, #0x8]
+ mov r0, #0x1
+ orr r5, r5, r1, lsl #0x10
+ str r0, [sp, #0x4]
+ mvn r11, #0x0
+ b _0209B084
+_0209AF38:
+ bl FUN_0209BF9C
+_0209AF3C: ; 0x0209AF3C
+ cmp r0, #0x0
+ bne _0209AF4C
+ bl FUN_020A005C
+ b _0209B084
+_0209AF4C:
+ add r0, sp, #0xc
+ bl FUN_0209C638
+ ldr r1, [sp, #0xc]
+ cmp r1, #0xc
+ bls _0209B07C
+ ldrh r3, [r0, #0x0]
+ mov r2, r3, asr #0x8
+ orr r2, r2, r3, lsl #0x8
+ mov r2, r2, lsl #0x10
+ cmp r9, r2, lsr #0x10
+ bne _0209B07C
+ ldrb r2, [r0, #0x3]
+ and r2, r2, #0xf
+ cmp r2, #0x3
+ moveq r6, r11
+ beq _0209B07C
+ cmp r2, #0x0
+ bne _0209B07C
+ ldrb r2, [r0, #0x4]
+ add r4, r0, r1
+ ldrb r1, [r0, #0x5]
+ add r0, r0, #0xc
+ orr r1, r1, r2, lsl #0x8
+ mov r1, r1, lsl #0x10
+ movs r1, r1, lsr #0x10
+ sub r7, r1, #0x1
+ beq _0209AFCC
+_0209AFB8:
+ bl FUN_0209B0D0
+_0209AFBC: ; 0x0209AFBC
+ cmp r7, #0x0
+ add r0, r0, #0x4
+ sub r7, r7, #0x1
+ bne _0209AFB8
+_0209AFCC:
+ cmp r0, r4
+ bhs _0209B07C
+_0209AFD4:
+ bl FUN_0209B0D0
+ ldrb r7, [r0, #0x8]
+ ldrb r1, [r0, #0x9]
+ ldrb r3, [r0, #0x0]
+ ldrb r2, [r0, #0x1]
+ orr r1, r1, r7, lsl #0x8
+ mov r1, r1, lsl #0x10
+ orr r3, r2, r3, lsl #0x8
+ mov r2, r1, lsr #0x10
+ mov r1, r3, lsl #0x10
+ cmp r10, r1, lsr #0x10
+ bne _0209B06C
+ cmp r10, #0xc
+ beq _0209B04C
+ add r1, r0, #0x6
+ add r3, r1, r2
+ add r4, r0, #0x8
+ ldrb r1, [r1, r2]
+ ldrb r0, [r3, #0x1]
+ add r3, r4, r2
+ ldrb r2, [r4, r2]
+ orr r0, r0, r1, lsl #0x8
+ ldrb r1, [r3, #0x1]
+ mov r0, r0, lsl #0x10
+ mov r3, r0, lsr #0x10
+ orr r0, r1, r2, lsl #0x8
+ mov r1, r3, lsl #0x10
+ mov r0, r0, lsl #0x10
+ orr r6, r1, r0, lsr #0x10
+ b _0209B07C
+_0209B04C:
+ cmp r2, r8
+ ldrhi r6, [sp, #0x8]
+ bhi _0209B07C
+ ldr r1, [sp, #0x0]
+ add r0, r0, #0xa
+ bl MI_CpuCopy8
+ ldr r6, [sp, #0x4]
+ b _0209B07C
+_0209B06C:
+ add r1, r2, #0xa
+ add r0, r0, r1
+ cmp r0, r4
+ blo _0209AFD4
+_0209B07C:
+ ldr r0, [sp, #0xc]
+ bl FUN_0209C52C
+_0209B084:
+ ldr r0, _0209B0CC ; =0x021C8EFC
+ ldr r0, [r0, #0x0]
+ blx r0
+ cmp r0, #0x0
+ beq _0209B0B8
+ cmp r6, #0x0
+ bne _0209B0B8
+ bl OS_GetTick
+ mov r0, r0, lsr #0x10
+ orr r0, r0, r1, lsl #0x10
+ sub r0, r0, r5
+ cmp r0, #0xf
+ blt _0209AF38
+_0209B0B8:
+ mov r0, r6
+ add sp, sp, #0x4c
+ ldmia sp!, {r4-r11,lr}
+ bx lr
+ .balign 4
+_0209B0C8: .word 0x00001001
+_0209B0CC: .word 0x021C8EFC
+
+ arm_func_start FUN_0209B0D0
+FUN_0209B0D0:
+ ldrb r2, [r0], #0x1
+ cmp r2, #0x0
+ bxeq lr
+_0209B0DC:
+ and r1, r2, #0xc0
+ cmp r1, #0xc0
+ addeq r0, r0, #0x1
+ bxeq lr
+ add r0, r0, r2
+ ldrb r2, [r0], #0x1
+ cmp r2, #0x0
+ bne _0209B0DC
+ bx lr
+
+ arm_func_start FUN_0209B100
+FUN_0209B100: ; 0x0209B100
+ stmdb sp!, {r4,lr}
+ bl FUN_0209CB44
+ bl FUN_0209CBE8
+ ldr r1, _0209B168 ; =0x021C8ED4
+ mov r0, #0x44
+ ldr r2, [r1, #0x0]
+ mov r1, #0x43
+ bl FUN_0209CB78
+ ldr r4, _0209B16C ; =0x021C924A
+ mov r1, #0x7
+ mov r0, r4
+ mov r2, #0x0
+ bl FUN_0209B8E0
+ mov r1, #0xff
+ add r2, r0, #0x1
+ strb r1, [r0, #0x0]
+ mov r0, #0x0
+ mov r1, #0x12c
+ sub r3, r2, r4
+ bl FUN_0209B8A0
+ sub r1, r0, r4
+ mov r0, r4
+ bl FUN_0209C030
+ bl FUN_0209CB24
+ ldmia sp!, {r4,lr}
+ bx lr
+ .balign 4
+_0209B168: .word 0x021C8ED4
+_0209B16C: .word 0x021C924A
+
+ arm_func_start FUN_0209B170
+FUN_0209B170:
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0x4
+ mov r4, r1
+ mov r5, r0
+ bl FUN_0209CB44
+ bl FUN_0209CBE8
+ cmp r4, #0x1
+ bne _0209B1A8
+ ldr r1, _0209B28C ; =0x021C8ED4
+ mov r0, #0x44
+ ldr r2, [r1, #0x0]
+ mov r1, #0x43
+ bl FUN_0209CB78
+ b _0209B1B8
+_0209B1A8:
+ mov r0, #0x44
+ mov r1, #0x43
+ mvn r2, #0x0
+ bl FUN_0209CB78
+_0209B1B8:
+ mov r6, #0x0
+_0209B1BC:
+ mov r0, r4
+ bl FUN_0209B6BC
+ mov r1, r6
+ bl FUN_0209B2FC
+ movs r7, r0
+ bne _0209B1E0
+ add r6, r6, #0x1
+ cmp r6, #0x4
+ blt _0209B1BC
+_0209B1E0:
+ bl FUN_0209CB24
+ cmp r7, #0x2
+ bne _0209B224
+ ldr r0, _0209B290 ; =0x021C8F00
+ mov r1, #0x3
+ ldr r3, [r0, #0x0]
+ ldr r2, _0209B294 ; =0x021C8EEC
+ mov r3, r3, lsr #0x1
+ str r3, [r5, #0x0]
+ ldr r3, [r0, #0x0]
+ add sp, sp, #0x4
+ mul r1, r3, r1
+ mov r1, r1, lsr #0x3
+ str r1, [r2, #0x0]
+ mov r0, #0x1
+ ldmia sp!, {r4-r7,lr}
+ bx lr
+_0209B224:
+ ldr r1, _0209B294 ; =0x021C8EEC
+ cmp r4, #0x1
+ ldr r0, [r1, #0x0]
+ mov r0, r0, lsr #0x1
+ str r0, [r1, #0x0]
+ str r0, [r5, #0x0]
+ beq _0209B24C
+ cmp r4, #0x2
+ beq _0209B270
+ b _0209B27C
+_0209B24C:
+ cmp r0, #0x3c
+ bhs _0209B27C
+ mov r2, #0x1
+ ldr r0, _0209B290 ; =0x021C8F00
+ str r2, [r5, #0x0]
+ ldr r0, [r0, #0x0]
+ mov r0, r0, lsr #0x3
+ str r0, [r1, #0x0]
+ b _0209B27C
+_0209B270:
+ cmp r0, #0x3c
+ movcc r0, #0x1
+ strcc r0, [r5, #0x0]
+_0209B27C:
+ mov r0, #0x0
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r7,lr}
+ bx lr
+ .balign 4
+_0209B28C: .word 0x021C8ED4
+_0209B290: .word 0x021C8F00
+_0209B294: .word 0x021C8EEC
+
+ arm_func_start FUN_0209B298
+FUN_0209B298:
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ bl FUN_0209CB44
+ bl FUN_0209CBE8
+ mov r0, #0x44
+ mov r1, #0x43
+ mvn r2, #0x0
+ bl FUN_0209CB78
+ mov r4, #0x0
+_0209B2BC:
+ bl FUN_0209B7D8
+ mov r1, r4
+ bl FUN_0209B2FC
+ mov r5, r0
+ cmp r5, #0x1
+ beq _0209B2E0
+ add r4, r4, #0x1
+ cmp r4, #0x4
+ blt _0209B2BC
+_0209B2E0:
+ bl FUN_0209CB24
+ cmp r5, #0x1
+ moveq r0, #0x1
+ movne r0, #0x0
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,lr}
+ bx lr
+
+ arm_func_start FUN_0209B2FC
+FUN_0209B2FC: ; 0x0209B2FC
+ stmdb sp!, {r4-r11,lr}
+ sub sp, sp, #0x14
+ add r2, r1, #0x1
+ mov r1, #0xf
+ mul r1, r2, r1
+ str r1, [sp, #0x8]
+ str r0, [sp, #0x0]
+ bl OS_GetTick
+ mov r0, r0, lsr #0x10
+ str r0, [sp, #0x4]
+ orr r0, r0, r1, lsl #0x10
+ mov r4, #0x0
+ str r0, [sp, #0x4]
+ mov r0, #0x3
+ mov r9, r4
+ ldr r5, _0209B698 ; =0x021C8F1C
+ mov r7, #0x2
+ mov r8, #0x1
+ ldr fp, _0209B69C ; =0x021C8EE0
+ ldr r6, _0209B6A0 ; =0x021C8ED0
+ str r0, [sp, #0xc]
+ b _0209B64C
+_0209B354:
+ bl FUN_0209BF9C
+_0209B358: ; 0x0209B358
+ cmp r0, #0x0
+ bne _0209B368
+ bl FUN_020A005C
+ b _0209B64C
+_0209B368:
+ add r0, sp, #0x10
+ bl FUN_0209C638
+ mov r10, r0
+ ldr r0, [sp, #0x10]
+ cmp r0, #0xf0
+ bls _0209B644
+ ldrb r0, [r10, #0x0]
+ cmp r0, #0x2
+ bne _0209B644
+ ldrh r1, [r10, #0x6]
+ ldrh r2, [r10, #0x4]
+ mov r0, r1, asr #0x8
+ orr r0, r0, r1, lsl #0x8
+ mov r1, r0, lsl #0x10
+ mov r0, r2, asr #0x8
+ orr r0, r0, r2, lsl #0x8
+ mov r0, r0, lsl #0x10
+ mov r0, r0, lsr #0x10
+ mov r0, r0, lsl #0x10
+ orr r1, r0, r1, lsr #0x10
+ ldr r0, [sp, #0x0]
+ cmp r0, r1
+ bne _0209B644
+ ldr r1, _0209B6A4 ; =0x021C8F14
+ add r0, r10, #0x1c
+ bl FUN_0209F9A0
+_0209B3D0: ; 0x0209B3D0
+ cmp r0, #0x0
+ bne _0209B644
+ ldrb r3, [r10, #0x10]
+ ldrb r0, [r10, #0x11]
+ ldrb r2, [r10, #0x12]
+ ldrb r1, [r10, #0x13]
+ orr r0, r0, r3, lsl #0x8
+ mov r0, r0, lsl #0x10
+ orr r1, r1, r2, lsl #0x8
+ mov r0, r0, lsr #0x10
+ mov r2, r0, lsl #0x10
+ mov r0, r1, lsl #0x10
+ orr r0, r2, r0, lsr #0x10
+ ldrb r2, [r10, #0xec]
+ ldr r1, [sp, #0x10]
+ ldr r4, [sp, #0xc]
+ add r1, r10, r1
+ cmp r2, #0x63
+ bne _0209B644
+ ldrb r2, [r10, #0xed]
+ cmp r2, #0x82
+ bne _0209B644
+ ldrb r2, [r10, #0xee]
+ cmp r2, #0x53
+ bne _0209B644
+ add r2, r10, #0xf0
+ ldrb r3, [r10, #0xef]
+ cmp r3, #0x63
+ bne _0209B644
+ b _0209B630
+_0209B448:
+ cmp r3, #0x0
+ beq _0209B630
+ cmp r3, #0x33
+ bgt _0209B48C
+ cmp r3, #0x33
+ bge _0209B588
+ cmp r3, #0x6
+ bgt _0209B624
+ cmp r3, #0x1
+ blt _0209B624
+ cmp r3, #0x1
+ beq _0209B4AC
+ cmp r3, #0x3
+ beq _0209B4E0
+ cmp r3, #0x6
+ beq _0209B514
+ b _0209B624
+_0209B48C:
+ cmp r3, #0x35
+ bgt _0209B4A0
+ cmp r3, #0x35
+ beq _0209B5C0
+ b _0209B624
+_0209B4A0:
+ cmp r3, #0x36
+ beq _0209B5F0
+ b _0209B624
+_0209B4AC:
+ ldrb lr, [r2, #0x1]
+ ldrb r12, [r2, #0x2]
+ ldrb r10, [r2, #0x3]
+ ldrb r3, [r2, #0x4]
+ orr r12, r12, lr, lsl #0x8
+ mov r12, r12, lsl #0x10
+ orr r3, r3, r10, lsl #0x8
+ mov r10, r12, lsr #0x10
+ mov r10, r10, lsl #0x10
+ mov r3, r3, lsl #0x10
+ orr r3, r10, r3, lsr #0x10
+ str r3, [r6, #0x0]
+ b _0209B624
+_0209B4E0:
+ ldrb lr, [r2, #0x1]
+ ldrb r12, [r2, #0x2]
+ ldrb r10, [r2, #0x3]
+ ldrb r3, [r2, #0x4]
+ orr r12, r12, lr, lsl #0x8
+ mov r12, r12, lsl #0x10
+ orr r3, r3, r10, lsl #0x8
+ mov r10, r12, lsr #0x10
+ mov r10, r10, lsl #0x10
+ mov r3, r3, lsl #0x10
+ orr r3, r10, r3, lsr #0x10
+ str r3, [r11, #0x0]
+ b _0209B624
+_0209B514:
+ ldrb r3, [r2, #0x0]
+ cmp r3, #0x8
+ strcc r9, [r5, #0x4]
+ blo _0209B554
+ ldrb lr, [r2, #0x5]
+ ldrb r12, [r2, #0x6]
+ ldrb r10, [r2, #0x7]
+ ldrb r3, [r2, #0x8]
+ orr r12, r12, lr, lsl #0x8
+ mov r12, r12, lsl #0x10
+ orr r3, r3, r10, lsl #0x8
+ mov r10, r12, lsr #0x10
+ mov r10, r10, lsl #0x10
+ mov r3, r3, lsl #0x10
+ orr r3, r10, r3, lsr #0x10
+ str r3, [r5, #0x4]
+_0209B554:
+ ldrb lr, [r2, #0x1]
+ ldrb r12, [r2, #0x2]
+ ldrb r10, [r2, #0x3]
+ ldrb r3, [r2, #0x4]
+ orr r12, r12, lr, lsl #0x8
+ mov r12, r12, lsl #0x10
+ orr r3, r3, r10, lsl #0x8
+ mov r10, r12, lsr #0x10
+ mov r10, r10, lsl #0x10
+ mov r3, r3, lsl #0x10
+ orr r3, r10, r3, lsr #0x10
+ str r3, [r5, #0x0]
+ b _0209B624
+_0209B588:
+ ldrb lr, [r2, #0x1]
+ ldrb r12, [r2, #0x2]
+ ldrb r10, [r2, #0x3]
+ ldrb r3, [r2, #0x4]
+ orr r12, r12, lr, lsl #0x8
+ mov r12, r12, lsl #0x10
+ orr r3, r3, r10, lsl #0x8
+ mov r10, r12, lsr #0x10
+ mov r10, r10, lsl #0x10
+ mov r3, r3, lsl #0x10
+ orr r10, r10, r3, lsr #0x10
+ ldr r3, _0209B6A8 ; =0x021C8F00
+ str r10, [r3, #0x0]
+ b _0209B624
+_0209B5C0:
+ ldrb r3, [r2, #0x1]
+ cmp r3, #0x2
+ beq _0209B5E0
+ cmp r3, #0x5
+ ldreq r3, _0209B6AC ; =0x021C8F04
+ moveq r4, r7
+ streq r0, [r3, #0x0]
+ b _0209B624
+_0209B5E0:
+ ldr r3, _0209B6B0 ; =0x021C8EE8
+ mov r4, r8
+ str r0, [r3, #0x0]
+ b _0209B624
+_0209B5F0:
+ ldrb lr, [r2, #0x1]
+ ldrb r12, [r2, #0x2]
+ ldrb r10, [r2, #0x3]
+ ldrb r3, [r2, #0x4]
+ orr r12, r12, lr, lsl #0x8
+ mov r12, r12, lsl #0x10
+ orr r3, r3, r10, lsl #0x8
+ mov r10, r12, lsr #0x10
+ mov r10, r10, lsl #0x10
+ mov r3, r3, lsl #0x10
+ orr r10, r10, r3, lsr #0x10
+ ldr r3, _0209B6B4 ; =0x021C8ED4
+ str r10, [r3, #0x0]
+_0209B624:
+ ldrb r3, [r2, #0x0]
+ add r3, r3, #0x1
+ add r2, r2, r3
+_0209B630:
+ cmp r2, r1
+ bhs _0209B644
+ ldrb r3, [r2], #0x1
+ cmp r3, #0xff
+ bne _0209B448
+_0209B644:
+ ldr r0, [sp, #0x10]
+ bl FUN_0209C52C
+_0209B64C:
+ ldr r0, _0209B6B8 ; =0x021C8EFC
+ ldr r0, [r0, #0x0]
+ blx r0
+ cmp r0, #0x0
+ beq _0209B688
+ cmp r4, #0x0
+ bne _0209B688
+ bl OS_GetTick
+ mov r2, r0, lsr #0x10
+ ldr r0, [sp, #0x4]
+ orr r2, r2, r1, lsl #0x10
+ sub r1, r2, r0
+ ldr r0, [sp, #0x8]
+ cmp r1, r0
+ blt _0209B354
+_0209B688:
+ mov r0, r4
+ add sp, sp, #0x14
+ ldmia sp!, {r4-r11,lr}
+ bx lr
+ .balign 4
+_0209B698: .word 0x021C8F1C
+_0209B69C: .word 0x021C8EE0
+_0209B6A0: .word 0x021C8ED0
+_0209B6A4: .word 0x021C8F14
+_0209B6A8: .word 0x021C8F00
+_0209B6AC: .word 0x021C8F04
+_0209B6B0: .word 0x021C8EE8
+_0209B6B4: .word 0x021C8ED4
+_0209B6B8: .word 0x021C8EFC
+
+ arm_func_start FUN_0209B6BC
+FUN_0209B6BC: ; 0x0209B6BC
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ ldr r4, _0209B7CC ; =0x021C924A
+ mov r5, r0
+ add r2, sp, #0x0
+ mov r0, r4
+ mov r1, #0x3
+ bl FUN_0209B8E0
+ mov r12, r0
+ cmp r5, #0x0
+ bne _0209B790
+ mov r0, #0x32
+ strb r0, [r12, #0x0]
+ mov r0, #0x4
+ ldr r3, _0209B7D0 ; =0x021C8EE8
+ strb r0, [r12, #0x1]
+ ldr r1, [r3, #0x0]
+ mov lr, #0x36
+ mov r1, r1, lsr #0x10
+ mov r1, r1, lsl #0x10
+ mov r1, r1, lsr #0x10
+ mov r1, r1, asr #0x8
+ strb r1, [r12, #0x2]
+ ldr r1, [r3, #0x0]
+ ldr r2, _0209B7D4 ; =0x021C8ED4
+ mov r1, r1, lsr #0x10
+ strb r1, [r12, #0x3]
+ ldr r1, [r3, #0x0]
+ mov r1, r1, lsl #0x10
+ mov r1, r1, lsr #0x10
+ mov r1, r1, asr #0x8
+ strb r1, [r12, #0x4]
+ ldr r1, [r3, #0x0]
+ strb r1, [r12, #0x5]
+ strb lr, [r12, #0x6]
+ strb r0, [r12, #0x7]
+ ldr r0, [r2, #0x0]
+ mov r0, r0, lsr #0x10
+ mov r0, r0, lsl #0x10
+ mov r0, r0, lsr #0x10
+ mov r0, r0, asr #0x8
+ strb r0, [r12, #0x8]
+ ldr r0, [r2, #0x0]
+ mov r0, r0, lsr #0x10
+ strb r0, [r12, #0x9]
+ ldr r0, [r2, #0x0]
+ mov r0, r0, lsl #0x10
+ mov r0, r0, lsr #0x10
+ mov r0, r0, asr #0x8
+ strb r0, [r12, #0xa]
+ ldr r0, [r2, #0x0]
+ strb r0, [r12, #0xb]
+ add r12, r12, #0xc
+_0209B790:
+ add r2, r12, #0x1
+ mov lr, #0xff
+ sub r3, r2, r4
+ mov r0, #0x0
+ mov r1, #0x12c
+ strb lr, [r12, #0x0]
+ bl FUN_0209B8A0
+ mov r1, r0
+ mov r0, r4
+ sub r1, r1, r4
+ bl FUN_0209C030
+_0209B7BC: ; 0x0209B7BC
+ ldr r0, [sp, #0x0]
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,lr}
+ bx lr
+ .balign 4
+_0209B7CC: .word 0x021C924A
+_0209B7D0: .word 0x021C8EE8
+_0209B7D4: .word 0x021C8ED4
+
+ arm_func_start FUN_0209B7D8
+FUN_0209B7D8: ; 0x0209B7D8
+ stmdb sp!, {r4,lr}
+ sub sp, sp, #0x8
+ ldr r4, _0209B898 ; =0x021C924A
+ add r2, sp, #0x0
+ mov r0, r4
+ mov r1, #0x1
+ bl FUN_0209B8E0
+ ldr r1, _0209B89C ; =0x021C8EE8
+ mov r12, r0
+ ldr r0, [r1, #0x0]
+ cmp r0, #0x0
+ beq _0209B85C
+ mov r0, #0x32
+ strb r0, [r12, #0x0]
+ mov r0, #0x4
+ strb r0, [r12, #0x1]
+ ldr r0, [r1, #0x0]
+ mov r0, r0, lsr #0x10
+ mov r0, r0, lsl #0x10
+ mov r0, r0, lsr #0x10
+ mov r0, r0, asr #0x8
+ strb r0, [r12, #0x2]
+ ldr r0, [r1, #0x0]
+ mov r0, r0, lsr #0x10
+ strb r0, [r12, #0x3]
+ ldr r0, [r1, #0x0]
+ mov r0, r0, lsl #0x10
+ mov r0, r0, lsr #0x10
+ mov r0, r0, asr #0x8
+ strb r0, [r12, #0x4]
+ ldr r0, [r1, #0x0]
+ strb r0, [r12, #0x5]
+ add r12, r12, #0x6
+_0209B85C:
+ add r2, r12, #0x1
+ mov lr, #0xff
+ sub r3, r2, r4
+ mov r0, #0x0
+ mov r1, #0x12c
+ strb lr, [r12, #0x0]
+ bl FUN_0209B8A0
+ mov r1, r0
+ mov r0, r4
+ sub r1, r1, r4
+ bl FUN_0209C030
+_0209B888: ; 0x0209B888
+ ldr r0, [sp, #0x0]
+ add sp, sp, #0x8
+ ldmia sp!, {r4,lr}
+ bx lr
+ .balign 4
+_0209B898: .word 0x021C924A
+_0209B89C: .word 0x021C8EE8
+
+ arm_func_start FUN_0209B8A0
+FUN_0209B8A0: ; 0x0209B8A0
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ mov r12, r0
+ mov r5, r2
+ cmp r3, r1
+ bhs _0209B8D0
+ sub r4, r1, r3
+ mov r0, r5
+ mov r1, r12
+ mov r2, r4
+ bl MI_CpuFill8
+ add r5, r5, r4
+_0209B8D0:
+ mov r0, r5
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,lr}
+ bx lr
+
+ arm_func_start FUN_0209B8E0
+FUN_0209B8E0: ; 0x0209B8E0
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0x4
+ mov r5, r1
+ mov r4, r2
+ mov r1, #0x0
+ mov r2, #0xec
+ mov r6, r0
+ bl MI_CpuFill8
+ ldr r0, _0209BA5C ; =0x00000101
+ mov r1, #0x6
+ strh r0, [r6, #0x0]
+ ldr r0, _0209BA60 ; =0x021C8F24
+ strb r1, [r6, #0x2]
+ ldr r3, [r0, #0x8]
+ ldr r2, [r0, #0x0]
+ ldr r1, [r0, #0x4]
+ umull lr, r12, r3, r2
+ mla r12, r3, r1, r12
+ ldr r1, [r0, #0xc]
+ ldr r7, [r0, #0x10]
+ mla r12, r1, r2, r12
+ adds r3, r7, lr
+ ldr r1, [r0, #0x14]
+ str r3, [r0, #0x0]
+ adc r1, r1, r12
+ str r1, [r0, #0x4]
+ mov r0, r1, lsr #0x10
+ mov r0, r0, lsl #0x10
+ mov r3, r0, lsr #0x10
+ cmp r4, #0x0
+ mov r2, r3, asr #0x8
+ mov r0, r1, lsl #0x10
+ strne r1, [r4, #0x0]
+ mov r1, r0, lsr #0x10
+ orr r2, r2, r3, lsl #0x8
+ mov r0, r1, asr #0x8
+ strh r2, [r6, #0x4]
+ orr r0, r0, r1, lsl #0x8
+ strh r0, [r6, #0x6]
+ ldr r2, _0209BA64 ; =0x021C8F04
+ ldr r0, _0209BA68 ; =0x021C8F14
+ ldr r1, [r2, #0x0]
+ mov r1, r1, lsr #0x10
+ mov r1, r1, lsl #0x10
+ mov r3, r1, lsr #0x10
+ mov r1, r3, asr #0x8
+ orr r1, r1, r3, lsl #0x8
+ strh r1, [r6, #0xc]
+ ldr r2, [r2, #0x0]
+ add r1, r6, #0x1c
+ mov r2, r2, lsl #0x10
+ mov r3, r2, lsr #0x10
+ mov r2, r3, asr #0x8
+ orr r3, r2, r3, lsl #0x8
+ mov r2, #0x6
+ strh r3, [r6, #0xe]
+ bl MI_CpuCopy8
+ ldr r0, _0209BA6C ; =0x00008263
+ ldr r1, _0209BA70 ; =0x00006353
+ strh r0, [r6, #0xec]
+ strh r1, [r6, #0xee]
+ ldr r0, _0209BA74 ; =0x00000135
+ mov r1, #0x7
+ strh r0, [r6, #0xf0]
+ strb r5, [r6, #0xf2]
+ mov r0, #0x3d
+ strb r0, [r6, #0xf3]
+ strb r1, [r6, #0xf4]
+ mov r3, #0x1
+ ldr r0, _0209BA68 ; =0x021C8F14
+ add r1, r6, #0xf6
+ mov r2, #0x6
+ strb r3, [r6, #0xf5]
+ bl MI_CpuCopy8
+ mov r1, #0xc
+ strb r1, [r6, #0xfc]
+ mov r2, #0xa
+ ldr r0, _0209BA78 ; =0x02106224
+ add r1, r6, #0xfe
+ strb r2, [r6, #0xfd]
+ bl MI_CpuCopy8
+ mov r1, #0x37
+ strb r1, [r6, #0x108]
+ mov r2, #0x3
+ ldr r0, _0209BA7C ; =0x0000010D
+ strb r2, [r6, #0x109]
+ mov r1, #0x1
+ strb r1, [r6, #0x10a]
+ strb r2, [r6, #0x10b]
+ mov r1, #0x6
+ strb r1, [r6, #0x10c]
+ add r0, r6, r0
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r7,lr}
+ bx lr
+ .balign 4
+_0209BA5C: .word 0x00000101
+_0209BA60: .word 0x021C8F24
+_0209BA64: .word 0x021C8F04
+_0209BA68: .word 0x021C8F14
+_0209BA6C: .word 0x00008263
+_0209BA70: .word 0x00006353
+_0209BA74: .word 0x00000135
+_0209BA78: .word 0x02106224
+_0209BA7C: .word 0x0000010D
+
+ arm_func_start FUN_0209BA80
+FUN_0209BA80: ; 0x0209BA80
+ stmdb sp!, {r4-r11,lr}
+ sub sp, sp, #0x54
+ ldr r3, _0209BE40 ; =0x021C8EF8
+ mov r1, #0x0
+ ldr r0, _0209BE44 ; =0x021C8FD8
+ mov r2, #0x64
+ str r1, [r3, #0x0]
+ bl MI_CpuFill8
+ ldr r0, _0209BE44 ; =0x021C8FD8
+ mov r3, #0x180
+ ldr r2, _0209BE48 ; =0x021C93A0
+ ldr r1, _0209BE4C ; =0x021C9220
+ str r3, [r0, #0x3c]
+ str r2, [r0, #0x40]
+ str r3, [r0, #0x48]
+ str r1, [r0, #0x4c]
+ bl FUN_0209CC28
+ mov r11, #0x0
+ mov r0, #0x1
+ str r0, [sp, #0x0]
+ str r0, [sp, #0x4]
+ str r0, [sp, #0x4c]
+ mov r1, r0
+ ldr r0, _0209BE50 ; =0x021C8EC0
+ ldr r5, [sp, #0x0]
+ str r1, [r0, #0x0]
+ mov r0, #0x2
+ str r0, [sp, #0x10]
+ mov r0, r5
+ str r0, [sp, #0x34]
+ str r0, [sp, #0x3c]
+ mov r0, #0x3
+ str r0, [sp, #0x1c]
+ mov r0, r5
+ str r0, [sp, #0x30]
+ str r0, [sp, #0x28]
+ str r0, [sp, #0x24]
+ str r0, [sp, #0x20]
+ str r0, [sp, #0xc]
+ mov r0, #0x69
+ str r0, [sp, #0x44]
+ mov r0, #0x3e8
+ mov r6, r11
+ mov r4, r11
+ mov r10, r11
+ str r11, [sp, #0x14]
+ str r11, [sp, #0x18]
+ str r11, [sp, #0x38]
+ str r11, [sp, #0x2c]
+ str r11, [sp, #0x40]
+ str r11, [sp, #0x48]
+ str r0, [sp, #0x8]
+_0209BB50:
+ ldr r0, [sp, #0x8]
+ bl OS_Sleep
+ ldr r0, _0209BE40 ; =0x021C8EF8
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ bne _0209BE14
+ bl OS_GetTick
+ mov r9, r0, lsr #0x10
+ ldr r0, _0209BE54 ; =0x021C8EFC
+ orr r9, r9, r1, lsl #0x10
+ ldr r0, [r0, #0x0]
+ blx r0
+ cmp r0, #0x0
+ beq _0209BC8C
+ ldr r0, [sp, #0x4c]
+ subs r0, r0, #0x1
+ str r0, [sp, #0x4c]
+ bne _0209BCA4
+ ldr r0, _0209BE58 ; =0x021C8EC4
+ ldr r0, [r0, #0x0]
+ ands r0, r0, #0x1
+ beq _0209BBBC
+ cmp r11, #0x0
+ bne _0209BCA4
+ bl FUN_0209BE78
+ ldr r11, [sp, #0xc]
+ b _0209BCA4
+_0209BBBC:
+ cmp r11, #0x3
+ addls pc, pc, r11, lsl #0x2
+ b _0209BCA4
+_0209BBC8:
+ b _0209BBD8
+_0209BBCC:
+ b _0209BC28
+_0209BBD0:
+ b _0209BC4C
+_0209BBD4:
+ b _0209BCA4
+_0209BBD8:
+ ldr r0, [sp, #0x4]
+ cmp r0, #0x0
+ ldrne r1, [sp, #0x10]
+ ldrne r0, _0209BE50 ; =0x021C8EC0
+ strne r1, [r0, #0x0]
+ ldrne r0, [sp, #0x14]
+ strne r0, [sp, #0x4]
+ bl FUN_0209B298
+_0209BBF8: ; 0x0209BBF8
+ cmp r0, #0x0
+ beq _0209BC14
+ ldr r1, [sp, #0x18]
+ add r0, sp, #0x4c
+ bl FUN_0209B170
+_0209BC0C: ; 0x0209BC0C
+ cmp r0, #0x0
+ bne _0209BC20
+_0209BC14:
+ bl FUN_0209BE78
+ ldr r11, [sp, #0x1c]
+ b _0209BCA4
+_0209BC20:
+ ldr r11, [sp, #0x20]
+ b _0209BCA4
+_0209BC28:
+ ldr r1, [sp, #0x24]
+ add r0, sp, #0x4c
+ bl FUN_0209B170
+_0209BC34: ; 0x0209BC34
+ cmp r0, #0x0
+ bne _0209BCA4
+ ldr r0, [sp, #0x4c]
+ cmp r0, #0x3c
+ ldrcc r11, [sp, #0x10]
+ b _0209BCA4
+_0209BC4C:
+ ldr r1, [sp, #0x10]
+ add r0, sp, #0x4c
+ bl FUN_0209B170
+_0209BC58: ; 0x0209BC58
+ cmp r0, #0x0
+ ldrne r11, [sp, #0x28]
+ bne _0209BCA4
+ ldr r0, [sp, #0x4c]
+ cmp r0, #0x3c
+ bhs _0209BCA4
+ ldr r0, [sp, #0x1c]
+ bl FUN_020A0098
+ ldr r0, [sp, #0x30]
+ ldr r11, [sp, #0x2c]
+ str r0, [sp, #0x4c]
+ str r0, [sp, #0x0]
+ b _0209BCA4
+_0209BC8C:
+ ldr r0, [sp, #0x34]
+ bl FUN_020A0098
+ ldr r0, [sp, #0x3c]
+ ldr r11, [sp, #0x38]
+ str r0, [sp, #0x4c]
+ str r0, [sp, #0x0]
+_0209BCA4:
+ ldr r1, [sp, #0x40]
+ ldr r0, _0209BE5C ; =0x021C8F78
+_0209BCAC:
+ ldr r2, [r0, #0x0]
+ cmp r2, #0x0
+ beq _0209BCD4
+ ldrh r2, [r0, #0xa]
+ sub r2, r9, r2
+ mov r2, r2, lsl #0x10
+ mov r3, r2, asr #0x10
+ ldr r2, _0209BE60 ; =0x000003BD
+ cmp r3, r2
+ strgt r6, [r0, #0x0]
+_0209BCD4:
+ add r0, r0, #0xc
+ add r1, r1, #0x1
+ cmp r1, #0x8
+ blt _0209BCAC
+ ldr r0, _0209BE64 ; =0x021C8EE0
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ beq _0209BD10
+ ldr r1, [sp, #0x0]
+ subs r1, r1, #0x1
+ str r1, [sp, #0x0]
+ bne _0209BD10
+ bl FUN_0209F338
+ ldr r0, [sp, #0x44]
+ str r0, [sp, #0x0]
+_0209BD10:
+ ldr r0, _0209BE68 ; =0x021D3498
+ ldr r7, [r0, #0x8]
+ cmp r7, #0x0
+ beq _0209BDAC
+_0209BD20:
+ ldr r0, [r7, #0xa4]
+ cmp r0, #0x0
+ beq _0209BDA0
+ ldr r1, [r0, #0x0]
+ cmp r1, #0x0
+ beq _0209BDA0
+ ldrb r2, [r0, #0x8]
+ cmp r2, #0x3
+ bne _0209BD6C
+ ldr r1, [r0, #0x10]
+ sub r1, r9, r1
+ cmp r1, #0x27
+ ble _0209BD6C
+ strb r5, [r0, #0x8]
+ ldrh r1, [r0, #0x1a]
+ strh r1, [r0, #0x18]
+ ldr r1, [r0, #0x20]
+ str r1, [r0, #0x1c]
+ b _0209BDA0
+_0209BD6C:
+ cmp r2, #0x2
+ bne _0209BDA0
+ ldr r1, [r0, #0x10]
+ sub r1, r9, r1
+ cmp r1, #0x27
+ ble _0209BDA0
+ ldr r1, [r0, #0x4]
+ cmp r1, #0x1
+ bne _0209BDA0
+ strb r4, [r0, #0x8]
+ str r4, [r0, #0x4]
+ ldr r0, [r0, #0x0]
+ bl OS_WakeupThreadDirect
+_0209BDA0:
+ ldr r7, [r7, #0x68]
+ cmp r7, #0x0
+ bne _0209BD20
+_0209BDAC:
+ ldr r7, [sp, #0x48]
+ ldr r8, _0209BE6C ; =0x021C9520
+_0209BDB4:
+ ldrh r0, [r8, #0x4]
+ cmp r0, #0x0
+ beq _0209BDE4
+ ldr r0, [r8, #0x2c]
+ sub r0, r9, r0
+ cmp r0, #0xef
+ ble _0209BDE4
+ ldr r1, _0209BE70 ; =0x021C8EF4
+ ldr r0, [r8, #0x34]
+ ldr r1, [r1, #0x0]
+ blx r1
+ strh r10, [r8, #0x4]
+_0209BDE4:
+ add r8, r8, #0x38
+ add r7, r7, #0x1
+ cmp r7, #0x8
+ blt _0209BDB4
+ mov r0, r9
+ bl FUN_020A01FC
+ ldr r0, _0209BE74 ; =0x021C8EF0
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ beq _0209BB50
+ blx r0
+ b _0209BB50
+_0209BE14:
+ ldr r0, _0209BE58 ; =0x021C8EC4
+ ldr r0, [r0, #0x0]
+ ands r0, r0, #0x1
+ bne _0209BE30
+ cmp r11, #0x3
+ beq _0209BE30
+ bl FUN_0209B100
+_0209BE30:
+ bl FUN_0209CC10
+ add sp, sp, #0x54
+ ldmia sp!, {r4-r11,lr}
+ bx lr
+ .balign 4
+_0209BE40: .word 0x021C8EF8
+_0209BE44: .word 0x021C8FD8
+_0209BE48: .word 0x021C93A0
+_0209BE4C: .word 0x021C9220
+_0209BE50: .word 0x021C8EC0
+_0209BE54: .word 0x021C8EFC
+_0209BE58: .word 0x021C8EC4
+_0209BE5C: .word 0x021C8F78
+_0209BE60: .word 0x000003BD
+_0209BE64: .word 0x021C8EE0
+_0209BE68: .word 0x021D3498
+_0209BE6C: .word 0x021C9520
+_0209BE70: .word 0x021C8EF4
+_0209BE74: .word 0x021C8EF0
+
+ arm_func_start FUN_0209BE78
+FUN_0209BE78: ; 0x0209BE78
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0x4
+ ldr r0, _0209BF3C ; =0x021C8ECC
+ ldr r0, [r0, #0x0]
+ blx r0
+ ldr r0, _0209BF40 ; =0x021C8F04
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ addeq sp, sp, #0x4
+ ldmeqia sp!, {r4-r7,lr}
+ bxeq lr
+ bl FUN_0209F338
+ mov r0, #0x64
+ bl OS_Sleep
+ ldr r0, _0209BF40 ; =0x021C8F04
+ ldr r0, [r0, #0x0]
+ bl FUN_0209F338
+ bl OS_GetTick
+ mov r4, r0, lsr #0x10
+ orr r4, r4, r1, lsl #0x10
+ ldr r6, _0209BF44 ; =0x021C8EAC
+ mov r7, #0x64
+ ldr r5, _0209BF48 ; =0x021C8EFC
+ b _0209BF00
+_0209BED8:
+ ldrb r0, [r6, #0x0]
+ cmp r0, #0x0
+ beq _0209BEF8
+ mov r0, #0x4
+ bl FUN_020A0098
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r7,lr}
+ bx lr
+_0209BEF8:
+ mov r0, r7
+ bl OS_Sleep
+_0209BF00:
+ ldr r0, [r5, #0x0]
+ blx r0
+ cmp r0, #0x0
+ addeq sp, sp, #0x4
+ ldmeqia sp!, {r4-r7,lr}
+ bxeq lr
+ bl OS_GetTick
+ mov r0, r0, lsr #0x10
+ orr r0, r0, r1, lsl #0x10
+ sub r0, r0, r4
+ cmp r0, #0x17
+ blt _0209BED8
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r7,lr}
+ bx lr
+ .balign 4
+_0209BF3C: .word 0x021C8ECC
+_0209BF40: .word 0x021C8F04
+_0209BF44: .word 0x021C8EAC
+_0209BF48: .word 0x021C8EFC
+
+ arm_func_start FUN_0209BF4C
+FUN_0209BF4C: ; 0x0209BF4C
+ stmdb sp!, {r4,lr}
+ ldr r0, _0209BF98 ; =0x021D3498
+ ldr r0, [r0, #0x4]
+ ldr r4, [r0, #0xa4]
+ cmp r4, #0x0
+ ldmeqia sp!, {r4,lr}
+ bxeq lr
+ ldr r1, [r4, #0x60]
+ cmp r1, #0x0
+ ldmeqia sp!, {r4,lr}
+ bxeq lr
+ mov r2, #0x0
+ ldr r0, [r4, #0x5c]
+ mov r3, r2
+ bl FUN_0209C0E8
+_0209BF88: ; 0x0209BF88
+ mov r0, #0x0
+ str r0, [r4, #0x60]
+ ldmia sp!, {r4,lr}
+ bx lr
+ .balign 4
+_0209BF98: .word 0x021D3498
+
+ arm_func_start FUN_0209BF9C
+FUN_0209BF9C:
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldr r0, _0209C02C ; =0x021D3498
+ ldr r0, [r0, #0x4]
+ ldr r0, [r0, #0xa4]
+ cmp r0, #0x0
+ beq _0209C01C
+ ldrb r1, [r0, #0x9]
+ cmp r1, #0x0
+ beq _0209BFD4
+ bl FUN_020A0538
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+_0209BFD4:
+ ldr r1, [r0, #0x44]
+ cmp r1, #0x0
+ bne _0209BFFC
+ ldrb r0, [r0, #0x8]
+ cmp r0, #0x4
+ beq _0209BFFC
+ add r0, r0, #0xf6
+ and r0, r0, #0xff
+ cmp r0, #0x1
+ bhi _0209C00C
+_0209BFFC:
+ add sp, sp, #0x4
+ mov r0, r1
+ ldmia sp!, {lr}
+ bx lr
+_0209C00C:
+ add sp, sp, #0x4
+ mvn r0, #0x0
+ ldmia sp!, {lr}
+ bx lr
+_0209C01C:
+ mov r0, #0x0
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+ .balign 4
+_0209C02C: .word 0x021D3498
+
+ arm_func_start FUN_0209C030
+FUN_0209C030:
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ ldr r3, _0209C0E4 ; =0x021D3498
+ mov r2, r0
+ ldr r4, [r3, #0x4]
+ mov r3, r1
+ ldr r5, [r4, #0xa4]
+ cmp r5, #0x0
+ beq _0209C0D4
+ ldr r4, [r5, #0x60]
+ cmp r4, #0x0
+ beq _0209C0BC
+ ldr r0, [r5, #0x5c]
+ mov r1, r4
+ bl FUN_0209C0E8
+ ldr r1, [r5, #0x60]
+ mov r4, r0
+ cmp r4, r1
+ movcs r0, #0x0
+ strcs r0, [r5, #0x60]
+ addcs sp, sp, #0x4
+ subcs r0, r4, r1
+ ldmcsia sp!, {r4-r5,lr}
+ bxcs lr
+ ldr r0, [r5, #0x5c]
+ sub r2, r1, r4
+ add r1, r0, r4
+ bl memmove
+ ldr r1, [r5, #0x60]
+ add sp, sp, #0x4
+ sub r1, r1, r4
+ mov r0, #0x0
+ str r1, [r5, #0x60]
+ ldmia sp!, {r4-r5,lr}
+ bx lr
+_0209C0BC:
+ mov r2, #0x0
+ mov r3, r2
+ bl FUN_0209C0E8
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,lr}
+ bx lr
+_0209C0D4:
+ mov r0, #0x0
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,lr}
+ bx lr
+ .balign 4
+_0209C0E4: .word 0x021D3498
+
+ arm_func_start FUN_0209C0E8
+FUN_0209C0E8:
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0x4
+ ldr ip, _0209C1CC ; =0x021D3498
+ mov r7, r1
+ ldr r12, [r12, #0x4]
+ mov r6, r2
+ ldr r4, [r12, #0xa4]
+ mov r5, r3
+ cmp r4, #0x0
+ beq _0209C1BC
+ ldrb r12, [r4, #0x8]
+ cmp r12, #0xa
+ bne _0209C14C
+ cmp r7, #0x0
+ beq _0209C12C
+ mov r2, r4
+ bl FUN_0209EB00
+_0209C12C:
+ cmp r5, #0x0
+ beq _0209C144
+ mov r0, r6
+ mov r1, r5
+ mov r2, r4
+ bl FUN_0209EB00
+_0209C144:
+ add r0, r7, r5
+ b _0209C1A4
+_0209C14C:
+ cmp r12, #0xb
+ bne _0209C184
+ cmp r7, #0x0
+ beq _0209C164
+ mov r2, r4
+ bl FUN_0209EC40
+_0209C164:
+ cmp r5, #0x0
+ beq _0209C17C
+ mov r0, r6
+ mov r1, r5
+ mov r2, r4
+ bl FUN_0209EC40
+_0209C17C:
+ add r0, r7, r5
+ b _0209C1A4
+_0209C184:
+ ldrb r12, [r4, #0x9]
+ cmp r12, #0x0
+ beq _0209C19C
+ str r4, [sp, #0x0]
+ bl FUN_020A03E0
+ b _0209C1A4
+_0209C19C:
+ str r4, [sp, #0x0]
+ bl FUN_0209C1D4
+_0209C1A4:
+ ldr r1, _0209C1D0 ; =0x021C8EA8
+ ldrb r1, [r1, #0x0]
+ cmp r1, #0x0
+ addeq sp, sp, #0x4
+ ldmeqia sp!, {r4-r7,lr}
+ bxeq lr
+_0209C1BC:
+ mov r0, #0x0
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r7,lr}
+ bx lr
+ .balign 4
+_0209C1CC: .word 0x021D3498
+_0209C1D0: .word 0x021C8EA8
+
+ arm_func_start FUN_0209C1D4
+FUN_0209C1D4:
+ stmdb sp!, {r4-r11,lr}
+ sub sp, sp, #0x1c
+ mov r4, #0x0
+ mov r10, r0
+ ldr r8, [sp, #0x40]
+ mov r0, r4
+ str r4, [sp, #0xc]
+ mov r9, r1
+ mov r11, r2
+ str r3, [sp, #0x8]
+ mov r6, r4
+ str r0, [r8, #0x34]
+ bl OS_GetTick
+ mov r0, r0, lsr #0x10
+ str r0, [sp, #0x10]
+ orr r0, r0, r1, lsl #0x10
+ str r0, [sp, #0x10]
+ mov r0, r6
+ str r0, [sp, #0x18]
+ mov r0, #0x1
+ ldr r4, _0209C3EC ; =0x021C8EFC
+ str r0, [sp, #0x14]
+ b _0209C39C
+_0209C230:
+ ldr r7, [r8, #0x28]
+ ldr r3, [sp, #0x8]
+ str r8, [sp, #0x0]
+ mov r0, r10
+ mov r1, r9
+ mov r2, r11
+ str r6, [sp, #0x4]
+ bl FUN_0209C3F0
+ bl OS_GetTick
+ mov r5, r0, lsr #0x10
+ orr r5, r5, r1, lsl #0x10
+_0209C25C:
+ bl FUN_020A005C
+_0209C260: ; 0x0209C260
+ ldr r0, [r4, #0x0]
+ blx r0
+ cmp r0, #0x0
+ beq _0209C2B8
+ ldrb r0, [r8, #0x8]
+ cmp r0, #0x4
+ bne _0209C2B8
+ ldr r1, [r8, #0x28]
+ ldr r0, [r8, #0x30]
+ cmp r1, r0
+ beq _0209C2B8
+ bl OS_GetTick
+ mov r0, r0, lsr #0x10
+ orr r0, r0, r1, lsl #0x10
+ sub r0, r0, r5
+ cmp r0, #0xf
+ bge _0209C2B8
+ cmp r6, #0x0
+ beq _0209C25C
+ ldrh r0, [r8, #0x2c]
+ cmp r0, #0x0
+ beq _0209C25C
+_0209C2B8:
+ ldr r0, [r8, #0x30]
+ subs r7, r0, r7
+ ldr r0, [sp, #0xc]
+ add r0, r0, r7
+ str r0, [sp, #0xc]
+ beq _0209C2E4
+ bl OS_GetTick
+ mov r0, r0, lsr #0x10
+ str r0, [sp, #0x10]
+ orr r0, r0, r1, lsl #0x10
+ str r0, [sp, #0x10]
+_0209C2E4:
+ ldr r0, [r8, #0x30]
+ str r0, [r8, #0x28]
+ ldrb r0, [r8, #0x8]
+ cmp r0, #0x4
+ bne _0209C36C
+ ldrh r0, [r8, #0x2c]
+ cmp r0, #0x0
+ bne _0209C36C
+ cmp r7, #0x0
+ bne _0209C36C
+ cmp r6, #0x0
+ bne _0209C370
+ bl OS_GetTick
+ mov r5, r0, lsr #0x10
+ orr r5, r5, r1, lsl #0x10
+ b _0209C334
+_0209C324:
+ bl FUN_020A005C
+ ldrh r0, [r8, #0x2c]
+ cmp r0, #0x0
+ bne _0209C35C
+_0209C334:
+ ldr r0, [r4, #0x0]
+ blx r0
+ cmp r0, #0x0
+ beq _0209C35C
+ bl OS_GetTick
+ mov r0, r0, lsr #0x10
+ orr r0, r0, r1, lsl #0x10
+ sub r0, r0, r5
+ cmp r0, #0xf
+ blt _0209C324
+_0209C35C:
+ ldrh r0, [r8, #0x2c]
+ cmp r0, #0x0
+ ldreq r6, [sp, #0x14]
+ b _0209C370
+_0209C36C:
+ ldr r6, [sp, #0x18]
+_0209C370:
+ cmp r7, r9
+ addcc r10, r10, r7
+ subcc r9, r9, r7
+ blo _0209C39C
+ sub r1, r7, r9
+ add r10, r11, r1
+ ldr r0, [sp, #0x8]
+ ldr r11, [sp, #0x18]
+ sub r9, r0, r1
+ mov r0, r11
+ str r0, [sp, #0x8]
+_0209C39C:
+ ldr r0, [r4, #0x0]
+ blx r0
+ cmp r0, #0x0
+ beq _0209C3DC
+ cmp r9, #0x0
+ beq _0209C3DC
+ ldrb r0, [r8, #0x8]
+ cmp r0, #0x4
+ bne _0209C3DC
+ bl OS_GetTick
+ mov r2, r0, lsr #0x10
+ ldr r0, [sp, #0x10]
+ orr r2, r2, r1, lsl #0x10
+ sub r0, r2, r0
+ cmp r0, #0x9f
+ blt _0209C230
+_0209C3DC:
+ ldr r0, [sp, #0xc]
+ add sp, sp, #0x1c
+ ldmia sp!, {r4-r11,lr}
+ bx lr
+ .balign 4
+_0209C3EC: .word 0x021C8EFC
+
+ arm_func_start FUN_0209C3F0
+FUN_0209C3F0: ; 0x0209C3F0
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ mov r5, r2
+ mov r4, r3
+ ldr r2, [sp, #0x10]
+ ldr r3, [sp, #0x14]
+ bl FUN_0209C44C
+_0209C40C: ; 0x0209C40C
+ cmp r0, #0x0
+ addeq sp, sp, #0x4
+ ldmeqia sp!, {r4-r5,lr}
+ bxeq lr
+ cmp r4, #0x0
+ addeq sp, sp, #0x4
+ ldmeqia sp!, {r4-r5,lr}
+ bxeq lr
+ ldr r2, [sp, #0x10]
+ mov r0, r5
+ mov r1, r4
+ mov r3, #0x0
+ bl FUN_0209C44C
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,lr}
+ bx lr
+
+ arm_func_start FUN_0209C44C
+FUN_0209C44C:
+ stmdb sp!, {r4-r11,lr}
+ sub sp, sp, #0xc
+ mov r8, r2
+ ldr r11, [r8, #0x34]
+ mov r10, r0
+ movs r0, r3
+ mov r0, r11, lsl #0x1
+ movne r6, #0x1
+ add r5, r0, #0x4
+ mov r0, #0x18
+ str r3, [sp, #0x4]
+ mov r9, r1
+ ldreqh r6, [r8, #0x2c]
+ mov r4, #0x0
+ str r0, [sp, #0x8]
+ b _0209C504
+_0209C48C:
+ ldr r0, _0209C528 ; =0x021C8EB0
+ ldrh r7, [r8, #0x2e]
+ ldrh r0, [r0, #0x0]
+ ldr r1, [r8, #0x34]
+ cmp r7, r6
+ movcs r7, r6
+ cmp r0, r7
+ movcc r7, r0
+ ldr r0, [sp, #0x4]
+ cmp r0, #0x0
+ biceq r7, r7, #0x1
+ cmp r9, r7
+ sub r0, r1, r11
+ movcc r7, r9
+ adds r0, r5, r0
+ moveq r7, r4
+ mov r11, r1
+ sub r5, r0, #0x1
+ cmp r7, #0x0
+ beq _0209C518
+ ldr r3, [sp, #0x8]
+ mov r0, r10
+ mov r1, r7
+ mov r2, r8
+ str r4, [sp, #0x0]
+ sub r6, r6, r7
+ bl FUN_0209E878
+ bl OS_YieldThread
+ add r10, r10, r7
+ sub r9, r9, r7
+_0209C504:
+ cmp r9, #0x0
+ beq _0209C518
+ ldrb r0, [r8, #0x8]
+ cmp r0, #0x4
+ beq _0209C48C
+_0209C518:
+ mov r0, r7
+ add sp, sp, #0xc
+ ldmia sp!, {r4-r11,lr}
+ bx lr
+ .balign 4
+_0209C528: .word 0x021C8EB0
+
+ arm_func_start FUN_0209C52C
+FUN_0209C52C: ; 0x0209C52C
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldr r1, _0209C57C ; =0x021D3498
+ ldr r1, [r1, #0x4]
+ ldr r1, [r1, #0xa4]
+ cmp r1, #0x0
+ addeq sp, sp, #0x4
+ ldmeqia sp!, {lr}
+ bxeq lr
+ ldrb r2, [r1, #0x9]
+ cmp r2, #0x0
+ beq _0209C56C
+ bl FUN_020A0738
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+_0209C56C:
+ bl FUN_0209C580
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+ .balign 4
+_0209C57C: .word 0x021D3498
+
+ arm_func_start FUN_0209C580
+FUN_0209C580:
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0x4
+ mov r4, r1
+ mov r7, r0
+ bl OS_DisableInterrupts
+ ldr r2, [r4, #0x44]
+ ldr r1, [r4, #0x3c]
+ mov r6, r0
+ cmp r2, r1
+ mov r5, #0x0
+ bne _0209C5B4
+ cmp r7, #0x0
+ movne r5, #0x1
+_0209C5B4:
+ cmp r7, r2
+ movcs r0, #0x0
+ strcs r0, [r4, #0x44]
+ bhs _0209C5D8
+ ldr r0, [r4, #0x40]
+ sub r2, r2, r7
+ add r1, r0, r7
+ str r2, [r4, #0x44]
+ bl memmove
+_0209C5D8:
+ mov r0, r6
+ bl OS_RestoreInterrupts
+ ldrb r0, [r4, #0x8]
+ cmp r0, #0xa
+ addeq sp, sp, #0x4
+ ldmeqia sp!, {r4-r7,lr}
+ bxeq lr
+ cmp r0, #0xb
+ addeq sp, sp, #0x4
+ ldmeqia sp!, {r4-r7,lr}
+ bxeq lr
+ ldr r0, [r4, #0x44]
+ cmp r0, #0x0
+ beq _0209C620
+ cmp r5, #0x0
+ addeq sp, sp, #0x4
+ ldmeqia sp!, {r4-r7,lr}
+ bxeq lr
+_0209C620:
+ mov r0, r4
+ mov r1, #0x1b
+ bl FUN_0209DF84
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r7,lr}
+ bx lr
+
+ arm_func_start FUN_0209C638
+FUN_0209C638:
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldr r1, _0209C6BC ; =0x021D3498
+ ldr r1, [r1, #0x4]
+ ldr r1, [r1, #0xa4]
+ cmp r1, #0x0
+ beq _0209C6A4
+ ldrb r2, [r1, #0x8]
+ add r2, r2, #0xf6
+ and r2, r2, #0xff
+ cmp r2, #0x1
+ bhi _0209C678
+ bl FUN_0209C74C
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+_0209C678:
+ ldrb r2, [r1, #0x9]
+ cmp r2, #0x0
+ beq _0209C694
+ bl FUN_020A0790
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+_0209C694:
+ bl FUN_0209C6C0
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+_0209C6A4:
+ mov r1, #0x0
+ str r1, [r0, #0x0]
+ mov r0, r1
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+ .balign 4
+_0209C6BC: .word 0x021D3498
+
+ arm_func_start FUN_0209C6C0
+FUN_0209C6C0: ; 0x0209C6C0
+ stmdb sp!, {r4-r8,lr}
+ mov r4, r1
+ ldr r1, [r4, #0x44]
+ mov r5, r0
+ cmp r1, #0x0
+ bne _0209C728
+ ldrb r0, [r4, #0x8]
+ cmp r0, #0x4
+ bne _0209C728
+ bl OS_DisableInterrupts
+ mov r8, r0
+ mov r7, #0x2
+ mov r6, #0x0
+ b _0209C704
+_0209C6F8:
+ mov r0, r6
+ str r7, [r4, #0x4]
+ bl OS_SleepThread
+_0209C704:
+ ldr r0, [r4, #0x44]
+ cmp r0, #0x0
+ bne _0209C71C
+ ldrb r0, [r4, #0x8]
+ cmp r0, #0x4
+ beq _0209C6F8
+_0209C71C:
+ mov r0, r8
+ bl OS_RestoreInterrupts
+_0209C724: ; 0x0209C724
+ b _0209C72C
+_0209C728:
+ bl OS_YieldThread
+_0209C72C:
+ ldr r0, [r4, #0x44]
+ str r0, [r5, #0x0]
+ ldr r0, [r5, #0x0]
+ cmp r0, #0x0
+ ldrne r0, [r4, #0x40]
+ moveq r0, #0x0
+ ldmia sp!, {r4-r8,lr}
+ bx lr
+
+ arm_func_start FUN_0209C74C
+FUN_0209C74C: ; 0x0209C74C
+ stmdb sp!, {r4-r9,lr}
+ sub sp, sp, #0x4
+ mov r8, r1
+ mov r9, r0
+ bl OS_DisableInterrupts
+ ldr r7, [r8, #0x44]
+ mov r6, r0
+ cmp r7, #0x0
+ bne _0209C790
+ mov r5, #0x3
+ mov r4, #0x0
+_0209C778:
+ mov r0, r4
+ str r5, [r8, #0x4]
+ bl OS_SleepThread
+ ldr r7, [r8, #0x44]
+ cmp r7, #0x0
+ beq _0209C778
+_0209C790:
+ mov r0, r6
+ bl OS_RestoreInterrupts
+ str r7, [r9, #0x0]
+ ldr r0, [r8, #0x40]
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r9,lr}
+ bx lr
+
+ arm_func_start FUN_0209C7AC
+FUN_0209C7AC: ; 0x0209C7AC
+ stmdb sp!, {r4-r6,lr}
+ ldr r0, _0209C838 ; =0x021D3498
+ ldr r0, [r0, #0x4]
+ ldr r4, [r0, #0xa4]
+ cmp r4, #0x0
+ ldmeqia sp!, {r4-r6,lr}
+ bxeq lr
+ ldrb r0, [r4, #0x9]
+ cmp r0, #0x0
+ beq _0209C7DC
+ mov r0, r4
+ bl FUN_020A0320
+_0209C7DC:
+ bl OS_GetTick
+ mov r6, r0, lsr #0x10
+ orr r6, r6, r1, lsl #0x10
+ ldr r5, _0209C83C ; =0x021C8EFC
+ b _0209C7F4
+_0209C7F0:
+ bl FUN_020A005C
+_0209C7F4:
+ ldr r0, [r5, #0x0]
+ blx r0
+ cmp r0, #0x0
+ beq _0209C828
+ ldrb r0, [r4, #0x8]
+ cmp r0, #0x0
+ beq _0209C828
+ bl OS_GetTick
+ mov r0, r0, lsr #0x10
+ orr r0, r0, r1, lsl #0x10
+ sub r0, r0, r6
+ cmp r0, #0x27
+ blt _0209C7F0
+_0209C828:
+ mov r0, #0x0
+ strb r0, [r4, #0x8]
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+ .balign 4
+_0209C838: .word 0x021D3498
+_0209C83C: .word 0x021C8EFC
+
+ arm_func_start FUN_0209C840
+FUN_0209C840:
+ stmdb sp!, {r4,lr}
+ ldr r0, _0209C880 ; =0x021D3498
+ ldr r0, [r0, #0x4]
+ ldr r4, [r0, #0xa4]
+ cmp r4, #0x0
+ ldmeqia sp!, {r4,lr}
+ bxeq lr
+ ldrb r0, [r4, #0x9]
+ cmp r0, #0x0
+ beq _0209C870
+ mov r0, r4
+ bl FUN_020A035C
+_0209C870:
+ mov r0, r4
+ bl FUN_0209C884
+ ldmia sp!, {r4,lr}
+ bx lr
+ .balign 4
+_0209C880: .word 0x021D3498
+
+ arm_func_start FUN_0209C884
+FUN_0209C884: ; 0x0209C884
+ stmdb sp!, {r4,lr}
+ mov r4, r0
+ bl OS_YieldThread
+ ldrb r1, [r4, #0x8]
+ add r0, r1, #0xfd
+ and r0, r0, #0xff
+ cmp r0, #0x1
+ bhi _0209C8C0
+ mov r0, r4
+ mov r1, #0x19
+ bl FUN_0209DF70
+ mov r0, #0x7
+ strb r0, [r4, #0x8]
+ ldmia sp!, {r4,lr}
+ bx lr
+_0209C8C0:
+ cmp r1, #0x0
+ ldmeqia sp!, {r4,lr}
+ bxeq lr
+ mov r0, r4
+ mov r1, #0x1a
+ bl FUN_0209DF84
+ ldmia sp!, {r4,lr}
+ bx lr
+
+ arm_func_start FUN_0209C8E0
+FUN_0209C8E0: ; 0x0209C8E0
+ ldr r2, _0209C930 ; =0x021D3498
+ ldr r2, [r2, #0x4]
+ ldr r3, [r2, #0xa4]
+ cmp r3, #0x0
+ beq _0209C928
+ ldrb r2, [r3, #0x8]
+ cmp r2, #0x4
+ beq _0209C908
+ cmp r2, #0xa
+ bne _0209C928
+_0209C908:
+ cmp r0, #0x0
+ ldrneh r2, [r3, #0x18]
+ strneh r2, [r0, #0x0]
+ cmp r1, #0x0
+ ldrne r0, [r3, #0x14]
+ strne r0, [r1, #0x0]
+ ldr r0, [r3, #0x1c]
+ bx lr
+_0209C928:
+ mov r0, #0x0
+ bx lr
+ .balign 4
+_0209C930: .word 0x021D3498
+
+ arm_func_start FUN_0209C934
+FUN_0209C934: ; 0x0209C934
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldr r0, _0209C98C ; =0x021D3498
+ ldr r0, [r0, #0x4]
+ ldr r0, [r0, #0xa4]
+ cmp r0, #0x0
+ beq _0209C97C
+ ldrb r1, [r0, #0x9]
+ cmp r1, #0x0
+ beq _0209C96C
+ bl FUN_020A0874
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+_0209C96C:
+ bl FUN_0209C990
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+_0209C97C:
+ mov r0, #0x1
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+ .balign 4
+_0209C98C: .word 0x021D3498
+
+ arm_func_start FUN_0209C990
+FUN_0209C990:
+ stmdb sp!, {r4-r11,lr}
+ sub sp, sp, #0x4
+ mov r10, r0
+ bl FUN_0209CC3C
+ mov r8, r0
+ mov r9, #0x0
+ mov r11, r9
+ mov r4, #0x1
+ mov r6, #0x2
+ mov r5, #0x18
+_0209C9B8:
+ str r8, [r10, #0x28]
+ strb r6, [r10, #0x8]
+ bl OS_GetTick
+ mov r2, r0, lsr #0x10
+ orr r2, r2, r1, lsl #0x10
+ str r2, [r10, #0x10]
+ mov r0, r10
+ mov r1, r6
+ mov r2, r5
+ bl FUN_0209DF98
+ bl OS_DisableInterrupts
+ mov r7, r0
+ ldr r0, _0209CA50 ; =0x021C8F04
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ beq _0209CA04
+ mov r0, r11
+ str r4, [r10, #0x4]
+ bl OS_SleepThread
+_0209CA04:
+ mov r0, r7
+ bl OS_RestoreInterrupts
+ ldrb r0, [r10, #0x8]
+ cmp r0, #0x4
+ addeq sp, sp, #0x4
+ moveq r0, #0x0
+ ldmeqia sp!, {r4-r11,lr}
+ bxeq lr
+ ldr r0, _0209CA50 ; =0x021C8F04
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ beq _0209CA40
+ add r9, r9, #0x1
+ cmp r9, #0x3
+ blo _0209C9B8
+_0209CA40:
+ mov r0, #0x1
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r11,lr}
+ bx lr
+ .balign 4
+_0209CA50: .word 0x021C8F04
+
+ arm_func_start FUN_0209CA54
+FUN_0209CA54: ; 0x0209CA54
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldr r0, _0209CAA4 ; =0x021D3498
+ ldr r0, [r0, #0x4]
+ ldr r0, [r0, #0xa4]
+ cmp r0, #0x0
+ addeq sp, sp, #0x4
+ ldmeqia sp!, {lr}
+ bxeq lr
+ ldrb r1, [r0, #0x9]
+ cmp r1, #0x0
+ beq _0209CA94
+ bl FUN_020A09CC
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+_0209CA94:
+ bl FUN_0209CAC4
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+ .balign 4
+_0209CAA4: .word 0x021D3498
+
+ arm_func_start FUN_0209CAA8
+FUN_0209CAA8:
+ ldr r1, _0209CAC0 ; =0x021D3498
+ ldr r1, [r1, #0x4]
+ ldr r1, [r1, #0xa4]
+ cmp r1, #0x0
+ strne r0, [r1, #0x38]
+ bx lr
+ .balign 4
+_0209CAC0: .word 0x021D3498
+
+ arm_func_start FUN_0209CAC4
+FUN_0209CAC4: ; 0x0209CAC4
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ mov r5, r0
+ bl FUN_0209CC3C
+ str r0, [r5, #0x28]
+ mov r0, #0x1
+ strb r0, [r5, #0x8]
+ bl OS_DisableInterrupts
+ mov r4, r0
+ mov r1, #0x1
+ mov r0, #0x0
+ str r1, [r5, #0x4]
+ bl OS_SleepThread
+ mov r0, r4
+ bl OS_RestoreInterrupts
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,lr}
+ bx lr
+
+ arm_func_start FUN_0209CB0C
+FUN_0209CB0C: ; 0x0209CB0C
+ ldr r1, _0209CB20 ; =0x021D3498
+ ldr r1, [r1, #0x4]
+ ldr r1, [r1, #0xa4]
+ str r1, [r0, #0xa4]
+ bx lr
+ .balign 4
+_0209CB20: .word 0x021D3498
+
+ arm_func_start FUN_0209CB24
+FUN_0209CB24: ; 0x0209CB24
+ ldr r0, _0209CB40 ; =0x021D3498
+ ldr r0, [r0, #0x4]
+ ldr r1, [r0, #0xa4]
+ cmp r1, #0x0
+ movne r0, #0x0
+ strne r0, [r1, #0x0]
+ bx lr
+ .balign 4
+_0209CB40: .word 0x021D3498
+
+ arm_func_start FUN_0209CB44
+FUN_0209CB44: ; 0x0209CB44
+ ldr r0, _0209CB74 ; =0x021D3498
+ ldr r0, [r0, #0x4]
+ ldr r1, [r0, #0xa4]
+ cmp r1, #0x0
+ bxeq lr
+ str r0, [r1, #0x0]
+ mov r0, #0x0
+ strb r0, [r1, #0x8]
+ str r0, [r1, #0x44]
+ str r0, [r1, #0x60]
+ str r0, [r1, #0x38]
+ bx lr
+ .balign 4
+_0209CB74: .word 0x021D3498
+
+ arm_func_start FUN_0209CB78
+FUN_0209CB78: ; 0x0209CB78
+ stmdb sp!, {r4,lr}
+ ldr r3, _0209CBDC ; =0x021D3498
+ ldr r3, [r3, #0x4]
+ ldr r4, [r3, #0xa4]
+ cmp r4, #0x0
+ ldmeqia sp!, {r4,lr}
+ bxeq lr
+ ldr r3, _0209CBE0 ; =0x7F000001
+ cmp r2, r3
+ ldreq r2, _0209CBE4 ; =0x021C8F04
+ ldreq r2, [r2, #0x0]
+ cmp r0, #0x0
+ strh r1, [r4, #0x1a]
+ ldrh r1, [r4, #0x1a]
+ strh r1, [r4, #0x18]
+ str r2, [r4, #0x20]
+ ldr r1, [r4, #0x20]
+ str r1, [r4, #0x1c]
+ strneh r0, [r4, #0xa]
+ ldmneia sp!, {r4,lr}
+ bxne lr
+ bl FUN_0209CC8C
+ strh r0, [r4, #0xa]
+ ldmia sp!, {r4,lr}
+ bx lr
+ .balign 4
+_0209CBDC: .word 0x021D3498
+_0209CBE0: .word 0x7F000001
+_0209CBE4: .word 0x021C8F04
+
+ arm_func_start FUN_0209CBE8
+FUN_0209CBE8: ; 0x0209CBE8
+ ldr r0, _0209CC0C ; =0x021D3498
+ ldr r0, [r0, #0x4]
+ ldr r1, [r0, #0xa4]
+ cmp r1, #0x0
+ movne r0, #0xa
+ strneb r0, [r1, #0x8]
+ movne r0, #0x0
+ strne r0, [r1, #0x44]
+ bx lr
+ .balign 4
+_0209CC0C: .word 0x021D3498
+
+ arm_func_start FUN_0209CC10
+FUN_0209CC10: ; 0x0209CC10
+ ldr r0, _0209CC24 ; =0x021D3498
+ mov r1, #0x0
+ ldr r0, [r0, #0x4]
+ str r1, [r0, #0xa4]
+ bx lr
+ .balign 4
+_0209CC24: .word 0x021D3498
+
+ arm_func_start FUN_0209CC28
+FUN_0209CC28: ; 0x0209CC28
+ ldr r1, _0209CC38 ; =0x021D3498
+ ldr r1, [r1, #0x4]
+ str r0, [r1, #0xa4]
+ bx lr
+ .balign 4
+_0209CC38: .word 0x021D3498
+
+ arm_func_start FUN_0209CC3C
+FUN_0209CC3C: ; 0x0209CC3C
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldr r1, _0209CC88 ; =0x021C8F24
+ ldr r3, [r1, #0x8]
+ ldr r2, [r1, #0x0]
+ ldr r0, [r1, #0x4]
+ umull lr, r12, r3, r2
+ mla r12, r3, r0, r12
+ ldr r0, [r1, #0xc]
+ ldr r3, [r1, #0x10]
+ mla r12, r0, r2, r12
+ adds r2, r3, lr
+ ldr r0, [r1, #0x14]
+ str r2, [r1, #0x0]
+ adc r0, r0, r12
+ str r0, [r1, #0x4]
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+ .balign 4
+_0209CC88: .word 0x021C8F24
+
+ arm_func_start FUN_0209CC8C
+FUN_0209CC8C: ; 0x0209CC8C
+ stmdb sp!, {r4-r8,lr}
+ ldr r0, _0209CD30 ; =0x021D3498
+ ldr r6, [r0, #0x8]
+ ldr r2, _0209CD34 ; =0x021C8EBC
+ mov r4, #0x400
+ mov r3, #0x1
+ mov r5, #0x0
+ ldr r1, _0209CD38 ; =0x00001388
+_0209CCAC:
+ ldrh r12, [r2, #0x0]
+ mov r0, r5
+ add r12, r12, #0x1
+ strh r12, [r2, #0x0]
+ ldrh r12, [r2, #0x0]
+ cmp r12, #0x400
+ blo _0209CCD0
+ cmp r12, r1
+ blo _0209CCD4
+_0209CCD0:
+ strh r4, [r2, #0x0]
+_0209CCD4:
+ mov r8, r6
+ cmp r6, #0x0
+ beq _0209CD18
+ ldrh r7, [r2, #0x0]
+_0209CCE4:
+ ldr lr, [r8, #0xa4]
+ cmp lr, #0x0
+ beq _0209CD0C
+ ldr r12, [lr, #0x0]
+ cmp r12, #0x0
+ beq _0209CD0C
+ ldrh r12, [lr, #0xa]
+ cmp r12, r7
+ moveq r0, r3
+ beq _0209CD18
+_0209CD0C:
+ ldr r8, [r8, #0x68]
+ cmp r8, #0x0
+ bne _0209CCE4
+_0209CD18:
+ cmp r0, #0x0
+ bne _0209CCAC
+ ldr r0, _0209CD34 ; =0x021C8EBC
+ ldrh r0, [r0, #0x0]
+ ldmia sp!, {r4-r8,lr}
+ bx lr
+ .balign 4
+_0209CD30: .word 0x021D3498
+_0209CD34: .word 0x021C8EBC
+_0209CD38: .word 0x00001388
+
+ arm_func_start FUN_0209CD3C
+FUN_0209CD3C: ; 0x0209CD3C
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ ldr r5, _0209CDAC ; =0x00000806
+ add r4, sp, #0x0
+_0209CD4C:
+ mov r0, r4
+ bl FUN_0209F57C
+ ldr r3, [sp, #0x0]
+ cmp r3, #0x22
+ bls _0209CDA4
+ ldrh r2, [r0, #0xc]
+ mov r1, r2, asr #0x8
+ orr r1, r1, r2, lsl #0x8
+ mov r1, r1, lsl #0x10
+ mov r1, r1, lsr #0x10
+ cmp r1, #0x800
+ beq _0209CD88
+ cmp r1, r5
+ beq _0209CD98
+ b _0209CDA4
+_0209CD88:
+ add r0, r0, #0xe
+ sub r1, r3, #0xe
+ bl FUN_0209CDB0
+ b _0209CDA4
+_0209CD98:
+ add r0, r0, #0xe
+ sub r1, r3, #0xe
+ bl FUN_0209E614
+_0209CDA4:
+ bl FUN_0209F51C
+ b _0209CD4C
+ .balign 4
+_0209CDAC: .word 0x00000806
+
+ arm_func_start FUN_0209CDB0
+FUN_0209CDB0: ; 0x0209CDB0
+ stmdb sp!, {r4-r6,lr}
+ sub sp, sp, #0x8
+ mov r4, r0
+ ldrh r12, [r4, #0xc]
+ ldrh r6, [r4, #0x10]
+ ldrh r2, [r4, #0xe]
+ ldrh r0, [r4, #0x12]
+ mov r5, r6, asr #0x8
+ mov r3, r12, asr #0x8
+ orr r5, r5, r6, lsl #0x8
+ orr r12, r3, r12, lsl #0x8
+ mov r3, r5, lsl #0x10
+ mov r5, r0, asr #0x8
+ mov r12, r12, lsl #0x10
+ mov lr, r2, asr #0x8
+ mov r6, r3, lsr #0x10
+ orr r0, r5, r0, lsl #0x8
+ mov r3, r12, lsr #0x10
+ orr r2, lr, r2, lsl #0x8
+ mov r5, r6, lsl #0x10
+ mov r0, r0, lsl #0x10
+ mov r3, r3, lsl #0x10
+ mov r2, r2, lsl #0x10
+ orr r0, r5, r0, lsr #0x10
+ orr r2, r3, r2, lsr #0x10
+ mov r5, r1
+ cmp r0, r2
+ beq _0209CEF0
+ bl FUN_0209F9CC
+_0209CE24: ; 0x0209CE24
+ cmp r0, #0x0
+ addeq sp, sp, #0x8
+ ldmeqia sp!, {r4-r6,lr}
+ bxeq lr
+ ldrh r1, [r4, #0x2]
+ mov r0, r1, asr #0x8
+ orr r0, r0, r1, lsl #0x8
+ mov r0, r0, lsl #0x10
+ cmp r5, r0, lsr #0x10
+ addcc sp, sp, #0x8
+ ldmccia sp!, {r4-r6,lr}
+ bxcc lr
+ ldrb r1, [r4, #0x0]
+ mov r0, r4
+ and r1, r1, #0xf
+ mov r1, r1, lsl #0x2
+ bl FUN_0209FB84
+ ldr r1, _0209CFA0 ; =0x0000FFFF
+ cmp r0, r1
+ addne sp, sp, #0x8
+ ldmneia sp!, {r4-r6,lr}
+ bxne lr
+ ldrh r2, [r4, #0x10]
+ ldrh r12, [r4, #0x12]
+ ldr r1, _0209CFA4 ; =0x021C8F04
+ mov r0, r2, asr #0x8
+ orr r0, r0, r2, lsl #0x8
+ mov r0, r0, lsl #0x10
+ mov r2, r12, asr #0x8
+ mov r3, r0, lsr #0x10
+ orr r0, r2, r12, lsl #0x8
+ mov r2, r3, lsl #0x10
+ mov r0, r0, lsl #0x10
+ ldr r1, [r1, #0x0]
+ orr r0, r2, r0, lsr #0x10
+ cmp r1, r0
+ bne _0209CEF0
+ ldrh r2, [r4, #0xc]
+ ldrh r12, [r4, #0xe]
+ sub r0, r4, #0x8
+ mov r1, r2, asr #0x8
+ orr r1, r1, r2, lsl #0x8
+ mov r1, r1, lsl #0x10
+ mov r2, r12, asr #0x8
+ mov r3, r1, lsr #0x10
+ orr r1, r2, r12, lsl #0x8
+ mov r2, r3, lsl #0x10
+ mov r1, r1, lsl #0x10
+ orr r1, r2, r1, lsr #0x10
+ mov r2, #0x1
+ bl FUN_0209F12C
+_0209CEF0:
+ add r1, sp, #0x0
+ mov r0, r4
+ bl FUN_0209CFAC
+ movs r4, r0
+ addeq sp, sp, #0x8
+ ldmeqia sp!, {r4-r6,lr}
+ bxeq lr
+ ldrh r2, [r4, #0x2]
+ ldrb r3, [r4, #0x0]
+ ldrb r12, [r4, #0x9]
+ mov r1, r2, asr #0x8
+ orr r1, r1, r2, lsl #0x8
+ mov r1, r1, lsl #0x10
+ and r3, r3, #0xf
+ mov r2, r1, lsr #0x10
+ cmp r12, #0x11
+ add r1, r4, r3, lsl #0x2
+ sub r2, r2, r3, lsl #0x2
+ bne _0209CF44
+ bl FUN_0209D2BC
+ b _0209CF70
+_0209CF44:
+ ldr r3, _0209CFA4 ; =0x021C8F04
+ ldr r3, [r3, #0x0]
+ cmp r3, #0x0
+ beq _0209CF70
+ cmp r12, #0x1
+ bne _0209CF64
+ bl FUN_0209E2E0
+ b _0209CF70
+_0209CF64:
+ cmp r12, #0x6
+ bne _0209CF70
+ bl FUN_0209D4D8
+_0209CF70:
+ ldr r0, [sp, #0x0]
+ cmp r0, #0x0
+ addeq sp, sp, #0x8
+ ldmeqia sp!, {r4-r6,lr}
+ bxeq lr
+ ldr r1, _0209CFA8 ; =0x021C8EF4
+ sub r0, r4, #0xe
+ ldr r1, [r1, #0x0]
+ blx r1
+ add sp, sp, #0x8
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+ .balign 4
+_0209CFA0: .word 0x0000FFFF
+_0209CFA4: .word 0x021C8F04
+_0209CFA8: .word 0x021C8EF4
+
+ arm_func_start FUN_0209CFAC
+FUN_0209CFAC: ; 0x0209CFAC
+ stmdb sp!, {r4-r11,lr}
+ sub sp, sp, #0x14
+ mov r6, #0x0
+ mov r10, r0
+ str r6, [r1, #0x0]
+ ldrh r3, [r10, #0x6]
+ str r1, [sp, #0x0]
+ ldr r2, _0209D2A4 ; =0x00003FFF
+ mov r1, r3, asr #0x8
+ orr r1, r1, r3, lsl #0x8
+ mov r1, r1, lsl #0x10
+ mov r1, r1, lsr #0x10
+ str r1, [sp, #0x4]
+ ands r1, r1, r2
+ addeq sp, sp, #0x14
+ ldmeqia sp!, {r4-r11,lr}
+ bxeq lr
+ ldrh r1, [r10, #0xc]
+ ldrh r3, [r10, #0xe]
+ ldrb r4, [r10, #0x0]
+ mov r0, r1, asr #0x8
+ orr r0, r0, r1, lsl #0x8
+ mov r0, r0, lsl #0x10
+ mov r1, r3, asr #0x8
+ mov r2, r0, lsr #0x10
+ orr r0, r1, r3, lsl #0x8
+ and r3, r4, #0xf
+ ldrh r9, [r10, #0x4]
+ mov r2, r2, lsl #0x10
+ mov r1, r0, lsl #0x10
+ ldr r5, _0209D2A8 ; =0x021C9520
+ mov r0, r6
+ mov r7, r3, lsl #0x2
+ orr r4, r2, r1, lsr #0x10
+_0209D034:
+ ldrh r2, [r5, #0x4]
+ cmp r2, #0x0
+ beq _0209D058
+ ldr r1, [r5, #0x0]
+ cmp r1, r4
+ bne _0209D058
+ ldrh r1, [r5, #0x6]
+ cmp r1, r9
+ beq _0209D078
+_0209D058:
+ cmp r2, #0x0
+ bne _0209D068
+ cmp r6, #0x0
+ moveq r6, r5
+_0209D068:
+ add r0, r0, #0x1
+ cmp r0, #0x8
+ add r5, r5, #0x38
+ blo _0209D034
+_0209D078:
+ ldrh r2, [r10, #0x2]
+ cmp r0, #0x8
+ ldr r1, _0209D2AC ; =0x00001FFF
+ mov r0, r2, asr #0x8
+ orr r0, r0, r2, lsl #0x8
+ mov r0, r0, lsl #0x10
+ mov r2, r0, lsr #0x10
+ ldr r0, [sp, #0x4]
+ and r8, r0, r1
+ sub r0, r2, r7
+ str r0, [sp, #0x8]
+ mov r0, r8, lsl #0x3
+ str r0, [sp, #0xc]
+ ldr r0, [sp, #0x8]
+ add r11, r0, r8, lsl #0x3
+ bne _0209D150
+ cmp r6, #0x0
+ beq _0209D0C8
+ cmp r11, #0x1000
+ bls _0209D0D8
+_0209D0C8:
+ add sp, sp, #0x14
+ mov r0, #0x0
+ ldmia sp!, {r4-r11,lr}
+ bx lr
+_0209D0D8:
+ ldr r1, _0209D2B0 ; =0x021C8EC8
+ ldr r0, _0209D2B4 ; =0x0000100E
+ ldr r1, [r1, #0x0]
+ add r0, r7, r0
+ mov r5, r6
+ blx r1
+ str r0, [r6, #0x34]
+ ldr r0, [r6, #0x34]
+ cmp r0, #0x0
+ addeq sp, sp, #0x14
+ moveq r0, #0x0
+ ldmeqia sp!, {r4-r11,lr}
+ bxeq lr
+ str r4, [r6, #0x0]
+ strh r9, [r6, #0x6]
+ mov r0, #0x0
+ strh r0, [r6, #0x8]
+ bl OS_GetTick
+ mov r0, r0, lsr #0x10
+ orr r0, r0, r1, lsl #0x10
+ str r0, [r6, #0x2c]
+ ldr r1, [r6, #0x34]
+ mov r0, r10
+ add r1, r1, #0xe
+ add r1, r1, r7
+ str r1, [r6, #0x30]
+ ldr r1, [r6, #0x34]
+ mov r2, r7
+ add r1, r1, #0xe
+ bl MI_CpuCopy8
+_0209D150:
+ ldrh r0, [r5, #0x4]
+ cmp r0, #0x8
+ beq _0209D164
+ cmp r11, #0x1000
+ bls _0209D18C
+_0209D164:
+ mov r0, #0x0
+ strh r0, [r5, #0x4]
+ ldr r1, _0209D2B8 ; =0x021C8EF4
+ ldr r0, [r5, #0x34]
+ ldr r1, [r1, #0x0]
+ blx r1
+ add sp, sp, #0x14
+ mov r0, #0x0
+ ldmia sp!, {r4-r11,lr}
+ bx lr
+_0209D18C:
+ ldr r0, [sp, #0x8]
+ ldr r2, [sp, #0x8]
+ add r0, r0, #0x7
+ add r1, r8, r0, lsr #0x3
+ ldr r0, [sp, #0x4]
+ ands r0, r0, #0x2000
+ streqh r11, [r5, #0xa]
+ streqh r1, [r5, #0x8]
+ ldrh r3, [r5, #0x4]
+ add r0, r10, r7
+ add r3, r5, r3, lsl #0x1
+ strh r8, [r3, #0xc]
+ ldrh r3, [r5, #0x4]
+ add r3, r5, r3, lsl #0x1
+ strh r1, [r3, #0x1c]
+ ldrh r1, [r5, #0x4]
+ add r1, r1, #0x1
+ strh r1, [r5, #0x4]
+ ldr r3, [r5, #0x30]
+ ldr r1, [sp, #0xc]
+ add r1, r3, r1
+ bl MI_CpuCopy8
+ ldrh r6, [r5, #0x8]
+ cmp r6, #0x0
+ addeq sp, sp, #0x14
+ moveq r0, #0x0
+ ldmeqia sp!, {r4-r11,lr}
+ bxeq lr
+ ldrh r7, [r5, #0x4]
+ mov r3, #0x0
+ mov r4, r3
+ cmp r7, #0x0
+ bls _0209D244
+ mov r0, r3
+_0209D214:
+ add r2, r5, r4, lsl #0x1
+ ldrh r1, [r2, #0xc]
+ cmp r1, r3
+ bhi _0209D238
+ ldrh r1, [r2, #0x1c]
+ cmp r3, r1
+ movcc r3, r1
+ movcc r4, r0
+ blo _0209D23C
+_0209D238:
+ add r4, r4, #0x1
+_0209D23C:
+ cmp r4, r7
+ blo _0209D214
+_0209D244:
+ cmp r3, r6
+ addcc sp, sp, #0x14
+ movcc r0, #0x0
+ ldmccia sp!, {r4-r11,lr}
+ bxcc lr
+ ldr r0, [r5, #0x34]
+ ldrh r3, [r5, #0xa]
+ ldrb r1, [r0, #0xe]
+ add r0, r0, #0xe
+ mov r2, #0x0
+ and r1, r1, #0xf
+ add r1, r3, r1, lsl #0x2
+ mov r1, r1, lsl #0x10
+ mov r3, r1, lsr #0x10
+ mov r1, r3, asr #0x8
+ orr r1, r1, r3, lsl #0x8
+ strh r1, [r0, #0x2]
+ strh r2, [r5, #0x4]
+ ldr r1, [sp, #0x0]
+ mov r2, #0x1
+ str r2, [r1, #0x0]
+ add sp, sp, #0x14
+ ldmia sp!, {r4-r11,lr}
+ bx lr
+ .balign 4
+_0209D2A4: .word 0x00003FFF
+_0209D2A8: .word 0x021C9520
+_0209D2AC: .word 0x00001FFF
+_0209D2B0: .word 0x021C8EC8
+_0209D2B4: .word 0x0000100E
+_0209D2B8: .word 0x021C8EF4
+
+ arm_func_start FUN_0209D2BC
+FUN_0209D2BC: ; 0x0209D2BC
+ stmdb sp!, {r4-r8,lr}
+ mov r6, r1
+ ldrh r1, [r6, #0x6]
+ mov r7, r0
+ mov r5, r2
+ cmp r1, #0x0
+ beq _0209D2F8
+ mov r0, r6
+ mov r1, r5
+ mov r2, r7
+ mov r3, #0x11
+ bl FUN_0209FB28
+_0209D2EC: ; 0x0209D2EC
+ cmp r0, #0x0
+ ldmneia sp!, {r4-r8,lr}
+ bxne lr
+_0209D2F8:
+ bl OS_DisableInterrupts
+ ldr r1, _0209D4D4 ; =0x021D3498
+ mov r8, r0
+ ldr r2, [r1, #0x8]
+ cmp r2, #0x0
+ beq _0209D4C4
+ mvn r12, #0x0
+_0209D314:
+ ldr r4, [r2, #0xa4]
+ cmp r4, #0x0
+ beq _0209D4B8
+ ldr r0, [r4, #0x0]
+ cmp r0, #0x0
+ beq _0209D4B8
+ ldrb r0, [r4, #0x8]
+ cmp r0, #0xa
+ bne _0209D4B8
+ ldrh r3, [r6, #0x2]
+ ldrh r1, [r4, #0xa]
+ mov r0, r3, asr #0x8
+ orr r0, r0, r3, lsl #0x8
+ mov r0, r0, lsl #0x10
+ cmp r1, r0, lsr #0x10
+ bne _0209D4B8
+ ldrh r3, [r4, #0x18]
+ cmp r3, #0x0
+ beq _0209D378
+ ldrh r1, [r6, #0x0]
+ mov r0, r1, asr #0x8
+ orr r0, r0, r1, lsl #0x8
+ mov r0, r0, lsl #0x10
+ cmp r3, r0, lsr #0x10
+ bne _0209D4B8
+_0209D378:
+ ldr r1, [r4, #0x1c]
+ cmp r1, #0x0
+ beq _0209D3C0
+ cmp r1, r12
+ beq _0209D3C0
+ ldrh lr, [r7, #0xc]
+ ldrh r0, [r7, #0xe]
+ mov r3, lr, asr #0x8
+ orr r3, r3, lr, lsl #0x8
+ mov r3, r3, lsl #0x10
+ mov lr, r0, asr #0x8
+ mov r3, r3, lsr #0x10
+ orr r0, lr, r0, lsl #0x8
+ mov r3, r3, lsl #0x10
+ mov r0, r0, lsl #0x10
+ orr r0, r3, r0, lsr #0x10
+ cmp r1, r0
+ bne _0209D4B8
+_0209D3C0:
+ ldrh r1, [r7, #0x10]
+ ldrh r3, [r7, #0x12]
+ mov r0, r1, asr #0x8
+ orr r0, r0, r1, lsl #0x8
+ mov r0, r0, lsl #0x10
+ mov r1, r3, asr #0x8
+ mov r2, r0, lsr #0x10
+ orr r0, r1, r3, lsl #0x8
+ mov r1, r2, lsl #0x10
+ mov r0, r0, lsl #0x10
+ orr r0, r1, r0, lsr #0x10
+ str r0, [r4, #0x14]
+ ldr r0, [r4, #0x1c]
+ cmp r0, #0x0
+ bne _0209D43C
+ ldrh r1, [r7, #0xc]
+ ldrh r3, [r7, #0xe]
+ mov r0, r1, asr #0x8
+ orr r0, r0, r1, lsl #0x8
+ mov r0, r0, lsl #0x10
+ mov r1, r3, asr #0x8
+ mov r2, r0, lsr #0x10
+ orr r0, r1, r3, lsl #0x8
+ mov r1, r2, lsl #0x10
+ mov r0, r0, lsl #0x10
+ orr r0, r1, r0, lsr #0x10
+ str r0, [r4, #0x1c]
+ ldrh r1, [r6, #0x0]
+ mov r0, r1, asr #0x8
+ orr r0, r0, r1, lsl #0x8
+ strh r0, [r4, #0x18]
+_0209D43C:
+ ldr r0, [r4, #0x44]
+ cmp r0, #0x0
+ bne _0209D4C4
+ ldr r1, [r4, #0x3c]
+ sub r0, r5, #0x8
+ cmp r0, r1
+ strhi r1, [r4, #0x44]
+ strls r0, [r4, #0x44]
+ ldr r1, [r4, #0x40]
+ ldr r2, [r4, #0x44]
+ add r0, r6, #0x8
+ bl MI_CpuCopy8
+ ldr r0, [r4, #0x4]
+ cmp r0, #0x3
+ bne _0209D48C
+ mov r0, #0x0
+ str r0, [r4, #0x4]
+ ldr r0, [r4, #0x0]
+ bl OS_WakeupThreadDirect
+ b _0209D4C4
+_0209D48C:
+ ldr r3, [r4, #0x38]
+ cmp r3, #0x0
+ beq _0209D4C4
+ ldr r0, [r4, #0x40]
+ ldr r1, [r4, #0x44]
+ mov r2, r4
+ blx r3
+ cmp r0, #0x0
+ movne r0, #0x0
+ strne r0, [r4, #0x44]
+ b _0209D4C4
+_0209D4B8:
+ ldr r2, [r2, #0x68]
+ cmp r2, #0x0
+ bne _0209D314
+_0209D4C4:
+ mov r0, r8
+ bl OS_RestoreInterrupts
+ ldmia sp!, {r4-r8,lr}
+ bx lr
+ .balign 4
+_0209D4D4: .word 0x021D3498
+
+ arm_func_start FUN_0209D4D8
+FUN_0209D4D8:
+ stmdb sp!, {r4-r6,lr}
+ mov r6, r0
+ mov r5, r1
+ mov r4, r2
+ mov r0, r5
+ mov r1, r4
+ mov r2, r6
+ mov r3, #0x6
+ bl FUN_0209FB28
+_0209D4FC: ; 0x0209D4FC
+ cmp r0, #0x0
+ ldmneia sp!, {r4-r6,lr}
+ bxne lr
+ ldrb r0, [r5, #0xc]
+ ldrb r2, [r5, #0xd]
+ and r1, r0, #0xf0
+ mov r0, r1, asr #0x1
+ add r0, r1, r0, lsr #0x1e
+ and r1, r2, #0x17
+ cmp r1, #0x10
+ sub r4, r4, r0, asr #0x2
+ bgt _0209D558
+ cmp r1, #0x10
+ bge _0209D5C4
+ cmp r1, #0x2
+ bgt _0209D5F4
+ cmp r1, #0x1
+ blt _0209D5F4
+ cmp r1, #0x1
+ beq _0209D5DC
+ cmp r1, #0x2
+ beq _0209D57C
+ b _0209D5F4
+_0209D558:
+ cmp r1, #0x12
+ bgt _0209D5F4
+ cmp r1, #0x11
+ blt _0209D5F4
+ cmp r1, #0x11
+ beq _0209D5C4
+ cmp r1, #0x12
+ beq _0209D5A0
+ b _0209D5F4
+_0209D57C:
+ ands r0, r2, #0x28
+ ldmneia sp!, {r4-r6,lr}
+ bxne lr
+ mov r0, r6
+ mov r1, r5
+ mov r2, r4
+ bl FUN_0209DBB0
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+_0209D5A0:
+ ands r0, r2, #0x28
+ ldmneia sp!, {r4-r6,lr}
+ bxne lr
+ mov r0, r6
+ mov r1, r5
+ mov r2, r4
+ bl FUN_0209DA9C
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+_0209D5C4:
+ mov r0, r6
+ mov r1, r5
+ mov r2, r4
+ bl FUN_0209D774
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+_0209D5DC:
+ mov r0, r6
+ mov r1, r5
+ mov r2, r4
+ bl FUN_0209D674
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+_0209D5F4:
+ ands r0, r2, #0x4
+ beq _0209D610
+ mov r0, r6
+ mov r1, r5
+ bl FUN_0209D62C
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+_0209D610:
+ mov r0, r6
+ mov r1, r5
+ mov r2, r4
+ mov r3, #0x0
+ bl FUN_0209DE34
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+
+ arm_func_start FUN_0209D62C
+FUN_0209D62C: ; 0x0209D62C
+ stmdb sp!, {r4,lr}
+ bl FUN_0209E0C8
+ movs r4, r0
+ ldmeqia sp!, {r4,lr}
+ bxeq lr
+ bl OS_YieldThread
+ mov r1, #0x0
+ strb r1, [r4, #0x8]
+ ldr r0, [r4, #0x4]
+ sub r0, r0, #0x1
+ cmp r0, #0x1
+ ldmhiia sp!, {r4,lr}
+ bxhi lr
+ str r1, [r4, #0x4]
+ ldr r0, [r4, #0x0]
+ bl OS_WakeupThreadDirect
+ ldmia sp!, {r4,lr}
+ bx lr
+
+ arm_func_start FUN_0209D674
+FUN_0209D674: ; 0x0209D674
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0x4
+ mov r7, r0
+ mov r6, r1
+ mov r5, r2
+ bl FUN_0209E0C8
+ movs r4, r0
+ addeq sp, sp, #0x4
+ ldmeqia sp!, {r4-r7,lr}
+ bxeq lr
+ ldrb r1, [r4, #0x8]
+ cmp r1, #0x4
+ beq _0209D72C
+ cmp r1, #0x7
+ beq _0209D6BC
+ cmp r1, #0x8
+ beq _0209D6E4
+ b _0209D754
+_0209D6BC:
+ ldr r2, [r4, #0x24]
+ mov r1, #0x0
+ add r2, r2, #0x1
+ str r2, [r4, #0x24]
+ bl FUN_0209DF84
+ mov r0, #0x9
+ add sp, sp, #0x4
+ strb r0, [r4, #0x8]
+ ldmia sp!, {r4-r7,lr}
+ bx lr
+_0209D6E4:
+ ldr r2, [r4, #0x24]
+ mov r1, #0x0
+ add r2, r2, #0x1
+ str r2, [r4, #0x24]
+ bl FUN_0209DF84
+ mov r1, #0x0
+ strb r1, [r4, #0x8]
+ ldr r0, [r4, #0x4]
+ cmp r0, #0x2
+ addne sp, sp, #0x4
+ ldmneia sp!, {r4-r7,lr}
+ bxne lr
+ str r1, [r4, #0x4]
+ ldr r0, [r4, #0x0]
+ bl OS_WakeupThreadDirect
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r7,lr}
+ bx lr
+_0209D72C:
+ ldr r2, [r4, #0x24]
+ mov r1, #0x0
+ add r2, r2, #0x1
+ str r2, [r4, #0x24]
+ bl FUN_0209DF70
+ mov r0, #0x6
+ add sp, sp, #0x4
+ strb r0, [r4, #0x8]
+ ldmia sp!, {r4-r7,lr}
+ bx lr
+_0209D754:
+ mov r0, r7
+ mov r1, r6
+ mov r2, r5
+ mov r3, #0x0
+ bl FUN_0209DE34
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r7,lr}
+ bx lr
+
+ arm_func_start FUN_0209D774
+FUN_0209D774: ; 0x0209D774
+ stmdb sp!, {r4-r9,lr}
+ sub sp, sp, #0x4
+ mov r8, r0
+ mov r7, r1
+ mov r6, r2
+ bl FUN_0209E0C8
+ movs r5, r0
+ bne _0209D7B4
+ mov r0, r8
+ mov r1, r7
+ mov r2, r6
+ mov r3, #0x0
+ bl FUN_0209DE34
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r9,lr}
+ bx lr
+_0209D7B4:
+ ldrh r3, [r7, #0x8]
+ ldrh r1, [r7, #0xa]
+ ldrb r4, [r7, #0xd]
+ mov r2, r3, asr #0x8
+ orr r2, r2, r3, lsl #0x8
+ mov r2, r2, lsl #0x10
+ mov r3, r1, asr #0x8
+ mov r2, r2, lsr #0x10
+ orr r1, r3, r1, lsl #0x8
+ mov r2, r2, lsl #0x10
+ mov r1, r1, lsl #0x10
+ orr r1, r2, r1, lsr #0x10
+ str r1, [r5, #0x30]
+ ldrh r9, [r7, #0x4]
+ ldrh r1, [r7, #0x6]
+ ldrb r3, [r5, #0x8]
+ mov r2, r9, asr #0x8
+ orr r2, r2, r9, lsl #0x8
+ mov r2, r2, lsl #0x10
+ mov r9, r1, asr #0x8
+ mov r2, r2, lsr #0x10
+ orr r1, r9, r1, lsl #0x8
+ mov r2, r2, lsl #0x10
+ mov r1, r1, lsl #0x10
+ cmp r3, #0x4
+ orr r2, r2, r1, lsr #0x10
+ bne _0209D840
+ ldr r1, [r5, #0x24]
+ cmp r1, r2
+ beq _0209D840
+ mov r1, #0x0
+ bl FUN_0209DF84
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r9,lr}
+ bx lr
+_0209D840:
+ ldrh r1, [r7, #0xe]
+ mov r0, r1, asr #0x8
+ orr r0, r0, r1, lsl #0x8
+ strh r0, [r5, #0x2c]
+ ldrb r0, [r5, #0x8]
+ cmp r0, #0x9
+ addls pc, pc, r0, lsl #0x2
+ b _0209DA70
+_0209D860:
+ b _0209D888
+_0209D864:
+ b _0209DA70
+_0209D868:
+ b _0209D888
+_0209D86C:
+ b _0209D8A0
+_0209D870:
+ b _0209D8CC
+_0209D874:
+ b _0209DA70
+_0209D878:
+ b _0209DA4C
+_0209D87C:
+ b _0209D9D8
+_0209D880:
+ b _0209D9D8
+_0209D884:
+ b _0209DA4C
+_0209D888:
+ mov r0, r8
+ mov r1, r7
+ mov r2, r6
+ mov r3, #0x0
+ bl FUN_0209DE34
+ b _0209DA8C
+_0209D8A0:
+ mov r0, #0x4
+ strb r0, [r5, #0x8]
+ ldr r0, [r5, #0x4]
+ cmp r0, #0x1
+ bne _0209D8C4
+ mov r0, #0x0
+ str r0, [r5, #0x4]
+ ldr r0, [r5, #0x0]
+ bl OS_WakeupThreadDirect
+_0209D8C4:
+ cmp r6, #0x0
+ beq _0209DA8C
+_0209D8CC:
+ ldr r0, [r5, #0x34]
+ add r0, r0, #0x1
+ str r0, [r5, #0x34]
+ ldr r1, [r5, #0x3c]
+ ldr r0, [r5, #0x44]
+ sub r0, r1, r0
+ cmp r6, r0
+ movhi r9, #0x0
+ movhi r6, r0
+ movls r9, #0x1
+ cmp r6, #0x0
+ beq _0209D968
+ bl OS_DisableInterrupts
+ ldrb r1, [r7, #0xc]
+ ldr r12, [r5, #0x40]
+ ldr r3, [r5, #0x44]
+ and r2, r1, #0xf0
+ mov r1, r2, asr #0x1
+ add r1, r2, r1, lsr #0x1e
+ mov r8, r0
+ mov r2, r6
+ add r0, r7, r1, asr #0x2
+ add r1, r12, r3
+ bl MI_CpuCopy8
+ ldr r1, [r5, #0x44]
+ mov r0, r8
+ add r1, r1, r6
+ str r1, [r5, #0x44]
+ ldr r1, [r5, #0x24]
+ add r1, r1, r6
+ str r1, [r5, #0x24]
+ bl OS_RestoreInterrupts
+ ldr r0, [r5, #0x4]
+ cmp r0, #0x2
+ bne _0209D968
+ mov r0, #0x0
+ str r0, [r5, #0x4]
+ ldr r0, [r5, #0x0]
+ bl OS_WakeupThreadDirect
+_0209D968:
+ cmp r9, #0x0
+ beq _0209D9C0
+ ands r0, r4, #0x1
+ beq _0209D9C0
+ mov r0, #0x6
+ strb r0, [r5, #0x8]
+ ldr r1, [r5, #0x24]
+ mov r0, r5
+ add r2, r1, #0x1
+ mov r1, #0x0
+ str r2, [r5, #0x24]
+ bl FUN_0209DF70
+_0209D998: ; 0x0209D998
+ cmp r6, #0x0
+ bne _0209DA8C
+ ldr r0, [r5, #0x4]
+ cmp r0, #0x2
+ bne _0209DA8C
+ mov r0, #0x0
+ str r0, [r5, #0x4]
+ ldr r0, [r5, #0x0]
+ bl OS_WakeupThreadDirect
+ b _0209DA8C
+_0209D9C0:
+ cmp r6, #0x0
+ beq _0209DA8C
+ mov r0, r5
+ mov r1, #0x0
+ bl FUN_0209DF84
+ b _0209DA8C
+_0209D9D8:
+ ands r0, r4, #0x1
+ beq _0209DA20
+ ldr r1, [r5, #0x24]
+ add r0, r6, #0x1
+ add r2, r1, r0
+ mov r0, r5
+ mov r1, #0x0
+ str r2, [r5, #0x24]
+ bl FUN_0209DF84
+ mov r1, #0x0
+ strb r1, [r5, #0x8]
+ ldr r0, [r5, #0x4]
+ cmp r0, #0x2
+ bne _0209DA8C
+ str r1, [r5, #0x4]
+ ldr r0, [r5, #0x0]
+ bl OS_WakeupThreadDirect
+ b _0209DA8C
+_0209DA20:
+ cmp r6, #0x0
+ beq _0209DA40
+ ldr r1, [r5, #0x24]
+ mov r0, r5
+ add r2, r1, r6
+ mov r1, #0x0
+ str r2, [r5, #0x24]
+ bl FUN_0209DF84
+_0209DA40:
+ mov r0, #0x8
+ strb r0, [r5, #0x8]
+ b _0209DA8C
+_0209DA4C:
+ mov r1, #0x0
+ strb r1, [r5, #0x8]
+ ldr r0, [r5, #0x4]
+ cmp r0, #0x2
+ bne _0209DA8C
+ str r1, [r5, #0x4]
+ ldr r0, [r5, #0x0]
+ bl OS_WakeupThreadDirect
+ b _0209DA8C
+_0209DA70:
+ ands r0, r4, #0x1
+ ldrne r0, [r5, #0x24]
+ mov r1, #0x0
+ addne r0, r0, #0x1
+ strne r0, [r5, #0x24]
+ mov r0, r5
+ bl FUN_0209DF84
+_0209DA8C:
+ bl OS_YieldThread
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r9,lr}
+ bx lr
+
+ arm_func_start FUN_0209DA9C
+FUN_0209DA9C: ; 0x0209DA9C
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0x4
+ mov r7, r0
+ mov r5, r1
+ mov r6, r2
+ bl FUN_0209E0C8
+ movs r4, r0
+ beq _0209DAC8
+ ldrb r0, [r4, #0x8]
+ cmp r0, #0x2
+ beq _0209DAE8
+_0209DAC8:
+ mov r0, r7
+ mov r1, r5
+ mov r2, r6
+ mov r3, #0x0
+ bl FUN_0209DE34
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r7,lr}
+ bx lr
+_0209DAE8:
+ bl OS_YieldThread
+ ldrh r2, [r5, #0x4]
+ ldrh r12, [r5, #0x6]
+ mov r0, r5
+ mov r1, r2, asr #0x8
+ orr r1, r1, r2, lsl #0x8
+ mov r1, r1, lsl #0x10
+ mov r2, r12, asr #0x8
+ mov r3, r1, lsr #0x10
+ orr r1, r2, r12, lsl #0x8
+ mov r2, r3, lsl #0x10
+ mov r1, r1, lsl #0x10
+ orr r1, r2, r1, lsr #0x10
+ add r1, r1, #0x1
+ str r1, [r4, #0x24]
+ ldrh r3, [r5, #0x8]
+ ldrh lr, [r5, #0xa]
+ mov r1, r4
+ mov r2, r3, asr #0x8
+ orr r2, r2, r3, lsl #0x8
+ mov r2, r2, lsl #0x10
+ mov r3, lr, asr #0x8
+ mov r12, r2, lsr #0x10
+ orr r2, r3, lr, lsl #0x8
+ mov r3, r12, lsl #0x10
+ mov r2, r2, lsl #0x10
+ orr r2, r3, r2, lsr #0x10
+ str r2, [r4, #0x30]
+ ldrh r3, [r5, #0xe]
+ mov r2, r3, asr #0x8
+ orr r2, r2, r3, lsl #0x8
+ strh r2, [r4, #0x2c]
+ bl FUN_0209E044
+ mov r0, r4
+ mov r1, #0x0
+ bl FUN_0209DF84
+ mov r0, #0x4
+ strb r0, [r4, #0x8]
+ ldr r0, [r4, #0x4]
+ cmp r0, #0x1
+ addne sp, sp, #0x4
+ ldmneia sp!, {r4-r7,lr}
+ bxne lr
+ mov r0, #0x0
+ str r0, [r4, #0x4]
+ ldr r0, [r4, #0x0]
+ bl OS_WakeupThreadDirect
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r7,lr}
+ bx lr
+
+ arm_func_start FUN_0209DBB0
+FUN_0209DBB0: ; 0x0209DBB0
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0x4
+ mov r4, r0
+ ldrh r12, [r4, #0x10]
+ ldrh r7, [r4, #0xc]
+ ldrh r3, [r4, #0x12]
+ mov r5, r12, asr #0x8
+ mov r6, r7, asr #0x8
+ orr r5, r5, r12, lsl #0x8
+ orr r6, r6, r7, lsl #0x8
+ mov r12, r6, lsl #0x10
+ ldrh r0, [r4, #0xe]
+ mov lr, r5, lsl #0x10
+ mov r5, r3, asr #0x8
+ mov r6, r0, asr #0x8
+ mov r7, r12, lsr #0x10
+ orr r0, r6, r0, lsl #0x8
+ orr r3, r5, r3, lsl #0x8
+ mov r12, lr, lsr #0x10
+ mov r6, r7, lsl #0x10
+ mov r0, r0, lsl #0x10
+ mov r5, r12, lsl #0x10
+ mov r3, r3, lsl #0x10
+ mov r7, r1
+ orr r1, r5, r3, lsr #0x10
+ orr r0, r6, r0, lsr #0x10
+ mov r5, r2
+ bl FUN_0209E3DC
+_0209DC20: ; 0x0209DC20
+ cmp r0, #0x0
+ addeq sp, sp, #0x4
+ ldmeqia sp!, {r4-r7,lr}
+ bxeq lr
+ mov r0, r4
+ mov r1, r7
+ mov r2, r5
+ bl FUN_0209DCB4
+_0209DC40: ; 0x0209DC40
+ cmp r0, #0x0
+ addne sp, sp, #0x4
+ ldmneia sp!, {r4-r7,lr}
+ bxne lr
+ mov r0, r4
+ mov r1, r7
+ bl FUN_0209E200
+ movs r2, r0
+ beq _0209DC7C
+ mov r0, r4
+ mov r1, r7
+ bl FUN_0209DD44
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r7,lr}
+ bx lr
+_0209DC7C:
+ bl OS_YieldThread
+ mov r0, r4
+ mov r1, r7
+ bl FUN_0209E200
+ movs r2, r0
+ addeq sp, sp, #0x4
+ ldmeqia sp!, {r4-r7,lr}
+ bxeq lr
+ mov r0, r4
+ mov r1, r7
+ bl FUN_0209DD44
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r7,lr}
+ bx lr
+
+ arm_func_start FUN_0209DCB4
+FUN_0209DCB4:
+ stmdb sp!, {r4-r6,lr}
+ mov r6, r0
+ mov r5, r1
+ mov r4, r2
+ bl FUN_0209E0C8
+ movs r2, r0
+ beq _0209DD38
+ ldrb r0, [r2, #0x8]
+ cmp r0, #0x1
+ bne _0209DCEC
+ mov r0, r6
+ mov r1, r5
+ bl FUN_0209DD44
+ b _0209DD2C
+_0209DCEC:
+ add r0, r0, #0xfd
+ and r0, r0, #0xff
+ cmp r0, #0x1
+ bhi _0209DD18
+ ldr r1, [r2, #0x28]
+ mov r0, r6
+ sub r3, r1, #0x1
+ mov r1, r5
+ str r3, [r2, #0x28]
+ bl FUN_0209DD44
+ b _0209DD2C
+_0209DD18:
+ mov r0, r6
+ mov r1, r5
+ mov r2, r4
+ mov r3, #0x0
+ bl FUN_0209DE34
+_0209DD2C:
+ mov r0, #0x1
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+_0209DD38:
+ mov r0, #0x0
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+
+ arm_func_start FUN_0209DD44
+FUN_0209DD44: ; 0x0209DD44
+ stmdb sp!, {r4-r6,lr}
+ mov r4, r2
+ mov r2, #0x3
+ mov r6, r0
+ mov r5, r1
+ strb r2, [r4, #0x8]
+ bl OS_GetTick
+ mov r0, r0, lsr #0x10
+ orr r0, r0, r1, lsl #0x10
+ str r0, [r4, #0x10]
+ ldrh r2, [r6, #0x10]
+ ldrh r3, [r6, #0x12]
+ mov r0, r5
+ mov r1, r2, asr #0x8
+ orr r1, r1, r2, lsl #0x8
+ mov r1, r1, lsl #0x10
+ mov r2, r3, asr #0x8
+ orr r2, r2, r3, lsl #0x8
+ mov r1, r1, lsr #0x10
+ mov r3, r1, lsl #0x10
+ mov r1, r2, lsl #0x10
+ orr r1, r3, r1, lsr #0x10
+ str r1, [r4, #0x14]
+ ldrh r3, [r5, #0x0]
+ mov r1, r4
+ mov r2, r3, asr #0x8
+ orr r2, r2, r3, lsl #0x8
+ strh r2, [r4, #0x18]
+ ldrh r3, [r6, #0xc]
+ ldrh r6, [r6, #0xe]
+ mov r2, r3, asr #0x8
+ orr r2, r2, r3, lsl #0x8
+ mov r2, r2, lsl #0x10
+ mov r3, r6, asr #0x8
+ orr r3, r3, r6, lsl #0x8
+ mov r2, r2, lsr #0x10
+ mov r6, r2, lsl #0x10
+ mov r2, r3, lsl #0x10
+ orr r2, r6, r2, lsr #0x10
+ str r2, [r4, #0x1c]
+ ldrh r3, [r5, #0x4]
+ ldrh r6, [r5, #0x6]
+ mov r2, r3, asr #0x8
+ orr r2, r2, r3, lsl #0x8
+ mov r2, r2, lsl #0x10
+ mov r3, r6, asr #0x8
+ mov r5, r2, lsr #0x10
+ orr r2, r3, r6, lsl #0x8
+ mov r3, r5, lsl #0x10
+ mov r2, r2, lsl #0x10
+ orr r2, r3, r2, lsr #0x10
+ add r2, r2, #0x1
+ str r2, [r4, #0x24]
+ bl FUN_0209E044
+ mov r0, r4
+ mov r1, #0x12
+ mov r2, #0x0
+ bl FUN_0209DF98
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+
+ arm_func_start FUN_0209DE34
+FUN_0209DE34: ; 0x0209DE34
+ stmdb sp!, {r4-r8,lr}
+ ldr r4, _0209DF6C ; =0x021C903C
+ mov r8, r0
+ mov r7, r1
+ mov r6, r2
+ mov r0, r4
+ mov r1, #0x0
+ mov r2, #0x64
+ mov r5, r3
+ bl MI_CpuFill8
+ ldrh r2, [r7, #0x2]
+ mov r1, r4
+ mov r0, r2, asr #0x8
+ orr r0, r0, r2, lsl #0x8
+ strh r0, [r1, #0xa]
+ ldrh r2, [r7, #0x0]
+ mov r0, r2, asr #0x8
+ orr r0, r0, r2, lsl #0x8
+ strh r0, [r1, #0x18]
+ ldrh r2, [r8, #0xc]
+ ldrh r8, [r8, #0xe]
+ mov r0, r2, asr #0x8
+ orr r0, r0, r2, lsl #0x8
+ mov r0, r0, lsl #0x10
+ mov r2, r8, asr #0x8
+ mov r3, r0, lsr #0x10
+ orr r0, r2, r8, lsl #0x8
+ mov r2, r3, lsl #0x10
+ mov r0, r0, lsl #0x10
+ orr r0, r2, r0, lsr #0x10
+ str r0, [r1, #0x1c]
+ ldrb r0, [r7, #0xd]
+ ands r0, r0, #0x10
+ beq _0209DF04
+ ldrh r2, [r7, #0x8]
+ ldrh r6, [r7, #0xa]
+ mov r0, r4
+ mov r1, r2, asr #0x8
+ orr r1, r1, r2, lsl #0x8
+ mov r1, r1, lsl #0x10
+ mov r2, r6, asr #0x8
+ mov r3, r1, lsr #0x10
+ orr r1, r2, r6, lsl #0x8
+ mov r2, r3, lsl #0x10
+ mov r1, r1, lsl #0x10
+ orr r3, r2, r1, lsr #0x10
+ mov r2, r5
+ mov r1, #0x4
+ str r3, [r4, #0x28]
+ bl FUN_0209DF98
+ ldmia sp!, {r4-r8,lr}
+ bx lr
+_0209DF04:
+ mov r0, #0x0
+ str r0, [r4, #0x28]
+ ldrh r1, [r7, #0x4]
+ ldrh r3, [r7, #0x6]
+ mov r0, r1, asr #0x8
+ orr r0, r0, r1, lsl #0x8
+ mov r0, r0, lsl #0x10
+ mov r1, r3, asr #0x8
+ mov r2, r0, lsr #0x10
+ orr r0, r1, r3, lsl #0x8
+ mov r1, r2, lsl #0x10
+ mov r0, r0, lsl #0x10
+ orr r0, r1, r0, lsr #0x10
+ add r0, r6, r0
+ str r0, [r4, #0x24]
+ ldrb r0, [r7, #0xd]
+ mov r2, r5
+ mov r1, #0x14
+ ands r0, r0, #0x3
+ ldrne r0, [r4, #0x24]
+ addne r0, r0, #0x1
+ strne r0, [r4, #0x24]
+ mov r0, r4
+ bl FUN_0209DF98
+ ldmia sp!, {r4-r8,lr}
+ bx lr
+ .balign 4
+_0209DF6C: .word 0x021C903C
+
+ arm_func_start FUN_0209DF70
+FUN_0209DF70:
+ ldr ip, _0209DF80 ; =FUN_0209DF98
+ mov r2, r1
+ mov r1, #0x11
+ bx r12
+ .balign 4
+_0209DF80: .word FUN_0209DF98
+
+ arm_func_start FUN_0209DF84
+FUN_0209DF84: ; 0x0209DF84
+ ldr ip, _0209DF94 ; =FUN_0209DF98
+ mov r2, r1
+ mov r1, #0x10
+ bx r12
+ .balign 4
+_0209DF94: .word FUN_0209DF98
+
+ arm_func_start FUN_0209DF98
+FUN_0209DF98: ; 0x0209DF98
+ stmdb sp!, {r4-r6,lr}
+ sub sp, sp, #0x8
+ mov r6, r0
+ ldr r0, [r6, #0x1c]
+ mov r5, r1
+ mov r4, r2
+ bl FUN_0209E014
+_0209DFB4: ; 0x0209DFB4
+ cmp r0, #0x0
+ bne _0209DFD0
+ ldr r0, _0209E00C ; =0x021D3498
+ ldr r1, _0209E010 ; =0x021C9160
+ ldr r0, [r0, #0x4]
+ cmp r0, r1
+ beq _0209DFF4
+_0209DFD0:
+ mov r0, #0x0
+ mov r1, r0
+ mov r2, r6
+ mov r3, r5
+ str r4, [sp, #0x0]
+ bl FUN_0209E878
+ add sp, sp, #0x8
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+_0209DFF4:
+ ldr r0, [r6, #0x1c]
+ bl FUN_0209FAB0
+ bl FUN_0209F338
+ add sp, sp, #0x8
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+ .balign 4
+_0209E00C: .word 0x021D3498
+_0209E010: .word 0x021C9160
+
+ arm_func_start FUN_0209E014
+FUN_0209E014:
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ bl FUN_0209FAB0
+_0209E020: ; 0x0209E020
+ cmp r0, #0x0
+ addeq sp, sp, #0x4
+ moveq r0, #0x1
+ ldmeqia sp!, {lr}
+ bxeq lr
+ bl FUN_0209F438
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+
+ arm_func_start FUN_0209E044
+FUN_0209E044: ; 0x0209E044
+ mov r2, #0x218
+ strh r2, [r1, #0x2e]
+ ldrb r2, [r0, #0xc]
+ add r3, r0, #0x14
+ and r2, r2, #0xf0
+ mov r0, r2, asr #0x1
+ add r0, r2, r0, lsr #0x1e
+ mov r0, r0, asr #0x2
+ subs r0, r0, #0x14
+ sub r12, r0, #0x1
+ bxeq lr
+_0209E070:
+ ldrb r0, [r3], #0x1
+ cmp r0, #0x0
+ bxeq lr
+ cmp r0, #0x1
+ beq _0209E0B8
+ cmp r0, #0x2
+ bne _0209E0A8
+ ldrb r2, [r3, #0x1]
+ ldrb r0, [r3, #0x2]
+ add r3, r3, #0x3
+ sub r12, r12, #0x3
+ orr r0, r0, r2, lsl #0x8
+ strh r0, [r1, #0x2e]
+ b _0209E0B8
+_0209E0A8:
+ ldrb r0, [r3, #0x0]
+ sub r0, r0, #0x1
+ sub r12, r12, r0
+ add r3, r3, r0
+_0209E0B8:
+ cmp r12, #0x0
+ sub r12, r12, #0x1
+ bne _0209E070
+ bx lr
+
+ arm_func_start FUN_0209E0C8
+FUN_0209E0C8: ; 0x0209E0C8
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0x4
+ ldr r2, _0209E140 ; =0x021D3498
+ mov r7, r0
+ ldr r4, [r2, #0x8]
+ mov r6, r1
+ cmp r4, #0x0
+ beq _0209E130
+_0209E0E8:
+ ldr r5, [r4, #0xa4]
+ cmp r5, #0x0
+ beq _0209E124
+ ldr r0, [r5, #0x0]
+ cmp r0, #0x0
+ beq _0209E124
+ mov r0, r7
+ mov r1, r6
+ mov r2, r5
+ bl FUN_0209E144
+_0209E110: ; 0x0209E110
+ cmp r0, #0x0
+ addne sp, sp, #0x4
+ movne r0, r5
+ ldmneia sp!, {r4-r7,lr}
+ bxne lr
+_0209E124:
+ ldr r4, [r4, #0x68]
+ cmp r4, #0x0
+ bne _0209E0E8
+_0209E130:
+ mov r0, #0x0
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r7,lr}
+ bx lr
+ .balign 4
+_0209E140: .word 0x021D3498
+
+ arm_func_start FUN_0209E144
+FUN_0209E144:
+ stmdb sp!, {r4-r6,lr}
+ ldrb r4, [r2, #0x8]
+ mov r12, #0x0
+ mov r3, r12
+ mov r6, r12
+ mov r5, r12
+ cmp r4, #0xa
+ beq _0209E16C
+ cmp r4, #0xb
+ movne r5, #0x1
+_0209E16C:
+ cmp r5, #0x0
+ beq _0209E190
+ ldrh lr, [r1, #0x2]
+ ldrh r5, [r2, #0xa]
+ mov r4, lr, asr #0x8
+ orr r4, r4, lr, lsl #0x8
+ mov lr, r4, lsl #0x10
+ cmp r5, lr, lsr #0x10
+ moveq r6, #0x1
+_0209E190:
+ cmp r6, #0x0
+ beq _0209E1B4
+ ldrh r4, [r1, #0x0]
+ ldrh lr, [r2, #0x18]
+ mov r1, r4, asr #0x8
+ orr r1, r1, r4, lsl #0x8
+ mov r1, r1, lsl #0x10
+ cmp lr, r1, lsr #0x10
+ moveq r3, #0x1
+_0209E1B4:
+ cmp r3, #0x0
+ beq _0209E1F4
+ ldrh r1, [r0, #0xc]
+ ldrh lr, [r0, #0xe]
+ ldr r3, [r2, #0x1c]
+ mov r0, r1, asr #0x8
+ orr r0, r0, r1, lsl #0x8
+ mov r0, r0, lsl #0x10
+ mov r1, lr, asr #0x8
+ mov r2, r0, lsr #0x10
+ orr r0, r1, lr, lsl #0x8
+ mov r1, r2, lsl #0x10
+ mov r0, r0, lsl #0x10
+ orr r0, r1, r0, lsr #0x10
+ cmp r3, r0
+ moveq r12, #0x1
+_0209E1F4:
+ mov r0, r12
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+
+ arm_func_start FUN_0209E200
+FUN_0209E200: ; 0x0209E200
+ stmdb sp!, {r4-r6,lr}
+ ldr r2, _0209E2DC ; =0x021D3498
+ ldr r3, [r2, #0x8]
+ cmp r3, #0x0
+ beq _0209E2D0
+_0209E214:
+ ldr r12, [r3, #0xa4]
+ cmp r12, #0x0
+ beq _0209E2C4
+ ldr r2, [r12, #0x0]
+ cmp r2, #0x0
+ beq _0209E2C4
+ ldrb r2, [r12, #0x8]
+ cmp r2, #0x1
+ bne _0209E2C4
+ ldrh r5, [r1, #0x2]
+ ldrh r4, [r12, #0xa]
+ mov r2, r5, asr #0x8
+ orr r2, r2, r5, lsl #0x8
+ mov r2, r2, lsl #0x10
+ cmp r4, r2, lsr #0x10
+ bne _0209E2C4
+ ldrh r5, [r12, #0x18]
+ cmp r5, #0x0
+ beq _0209E278
+ ldrh r4, [r1, #0x0]
+ mov r2, r4, asr #0x8
+ orr r2, r2, r4, lsl #0x8
+ mov r2, r2, lsl #0x10
+ cmp r5, r2, lsr #0x10
+ bne _0209E2C4
+_0209E278:
+ ldr r2, [r12, #0x1c]
+ cmp r2, #0x0
+ beq _0209E2B8
+ ldrh r5, [r0, #0xc]
+ ldrh r6, [r0, #0xe]
+ mov r4, r5, asr #0x8
+ orr r4, r4, r5, lsl #0x8
+ mov lr, r4, lsl #0x10
+ mov r4, r6, asr #0x8
+ mov lr, lr, lsr #0x10
+ orr r4, r4, r6, lsl #0x8
+ mov r5, lr, lsl #0x10
+ mov lr, r4, lsl #0x10
+ orr r4, r5, lr, lsr #0x10
+ cmp r2, r4
+ bne _0209E2C4
+_0209E2B8:
+ mov r0, r12
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+_0209E2C4:
+ ldr r3, [r3, #0x68]
+ cmp r3, #0x0
+ bne _0209E214
+_0209E2D0:
+ mov r0, #0x0
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+ .balign 4
+_0209E2DC: .word 0x021D3498
+
+ arm_func_start FUN_0209E2E0
+FUN_0209E2E0: ; 0x0209E2E0
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0x4
+ mov r5, r1
+ mov r4, r2
+ mov r6, r0
+ mov r0, r5
+ mov r1, r4
+ bl FUN_0209FB84
+ ldr r1, _0209E3D8 ; =0x0000FFFF
+ cmp r0, r1
+ addne sp, sp, #0x4
+ ldmneia sp!, {r4-r7,lr}
+ bxne lr
+ ldrh r12, [r6, #0x10]
+ ldrh r7, [r6, #0xc]
+ ldrh r0, [r6, #0xe]
+ ldrh r1, [r6, #0x12]
+ mov r3, r7, asr #0x8
+ mov lr, r0, asr #0x8
+ orr r0, lr, r0, lsl #0x8
+ mov r2, r12, asr #0x8
+ orr r7, r3, r7, lsl #0x8
+ orr r3, r2, r12, lsl #0x8
+ mov r2, r7, lsl #0x10
+ mov r12, r1, asr #0x8
+ orr r1, r12, r1, lsl #0x8
+ mov r3, r3, lsl #0x10
+ mov r7, r2, lsr #0x10
+ mov r2, r3, lsr #0x10
+ mov r3, r7, lsl #0x10
+ mov r0, r0, lsl #0x10
+ mov r2, r2, lsl #0x10
+ mov r1, r1, lsl #0x10
+ orr r0, r3, r0, lsr #0x10
+ orr r1, r2, r1, lsr #0x10
+ bl FUN_0209E3DC
+_0209E370: ; 0x0209E370
+ cmp r0, #0x0
+ addeq sp, sp, #0x4
+ ldmeqia sp!, {r4-r7,lr}
+ bxeq lr
+ ldrb r0, [r5, #0x0]
+ cmp r0, #0x0
+ beq _0209E3A0
+ cmp r0, #0x8
+ beq _0209E3BC
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r7,lr}
+ bx lr
+_0209E3A0:
+ mov r0, r6
+ mov r1, r5
+ mov r2, r4
+ bl FUN_0209E40C
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r7,lr}
+ bx lr
+_0209E3BC:
+ mov r0, r6
+ mov r1, r5
+ mov r2, r4
+ bl FUN_0209E524
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r7,lr}
+ bx lr
+ .balign 4
+_0209E3D8: .word 0x0000FFFF
+
+ arm_func_start FUN_0209E3DC
+FUN_0209E3DC:
+ cmp r0, #0x0
+ beq _0209E404
+ mvn r2, #0x0
+ cmp r0, r2
+ beq _0209E404
+ cmp r1, #0x0
+ beq _0209E404
+ cmp r1, r2
+ movne r0, #0x1
+ bxne lr
+_0209E404:
+ mov r0, #0x0
+ bx lr
+
+ arm_func_start FUN_0209E40C
+FUN_0209E40C: ; 0x0209E40C
+ stmdb sp!, {r4-r8,lr}
+ mov r7, r0
+ mov r6, r1
+ mov r5, r2
+ bl OS_DisableInterrupts
+ ldr r1, _0209E520 ; =0x021D3498
+ mov r8, r0
+ ldr r2, [r1, #0x8]
+ cmp r2, #0x0
+ beq _0209E510
+_0209E434:
+ ldr r4, [r2, #0xa4]
+ cmp r4, #0x0
+ beq _0209E504
+ ldr r3, [r4, #0x0]
+ cmp r3, #0x0
+ beq _0209E504
+ ldrb r0, [r4, #0x8]
+ cmp r0, #0xb
+ bne _0209E504
+ ldrh r1, [r6, #0x4]
+ mov r0, r3, lsl #0x10
+ mov r0, r0, lsr #0x10
+ cmp r0, r1
+ bne _0209E504
+ ldrh r1, [r4, #0xa]
+ ldrh r0, [r6, #0x6]
+ cmp r1, r0
+ bne _0209E504
+ ldr r0, [r4, #0x44]
+ cmp r0, #0x0
+ bne _0209E504
+ ldrh r12, [r7, #0xc]
+ ldrh r1, [r7, #0xe]
+ ldr r0, [r4, #0x1c]
+ mov r3, r12, asr #0x8
+ orr r3, r3, r12, lsl #0x8
+ mov r3, r3, lsl #0x10
+ mov r12, r1, asr #0x8
+ mov r3, r3, lsr #0x10
+ orr r1, r12, r1, lsl #0x8
+ mov r3, r3, lsl #0x10
+ mov r1, r1, lsl #0x10
+ orr r1, r3, r1, lsr #0x10
+ cmp r0, r1
+ bne _0209E504
+ ldr r1, [r4, #0x3c]
+ sub r0, r5, #0x8
+ cmp r0, r1
+ strhi r1, [r4, #0x44]
+ strls r0, [r4, #0x44]
+ ldr r1, [r4, #0x40]
+ ldr r2, [r4, #0x44]
+ add r0, r6, #0x8
+ bl MI_CpuCopy8
+ ldr r0, [r4, #0x4]
+ cmp r0, #0x3
+ bne _0209E510
+ mov r0, #0x0
+ str r0, [r4, #0x4]
+ ldr r0, [r4, #0x0]
+ bl OS_WakeupThreadDirect
+ b _0209E510
+_0209E504:
+ ldr r2, [r2, #0x68]
+ cmp r2, #0x0
+ bne _0209E434
+_0209E510:
+ mov r0, r8
+ bl OS_RestoreInterrupts
+ ldmia sp!, {r4-r8,lr}
+ bx lr
+ .balign 4
+_0209E520: .word 0x021D3498
+
+ arm_func_start FUN_0209E524
+FUN_0209E524: ; 0x0209E524
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0xc
+ mov r6, r0
+ ldrh r3, [r6, #0xc]
+ ldrh r4, [r6, #0xe]
+ mov r5, r1
+ mov r0, r3, asr #0x8
+ orr r0, r0, r3, lsl #0x8
+ mov r0, r0, lsl #0x10
+ mov r1, r4, asr #0x8
+ mov r3, r0, lsr #0x10
+ orr r0, r1, r4, lsl #0x8
+ mov r1, r3, lsl #0x10
+ mov r0, r0, lsl #0x10
+ orr r0, r1, r0, lsr #0x10
+ mov r4, r2
+ bl FUN_0209FAB0
+ movs r7, r0
+ addeq sp, sp, #0xc
+ ldmeqia sp!, {r4-r7,lr}
+ bxeq lr
+ bl FUN_0209F438
+_0209E57C: ; 0x0209E57C
+ cmp r0, #0x0
+ bne _0209E598
+ mov r0, r7
+ bl FUN_0209F338
+ add sp, sp, #0xc
+ ldmia sp!, {r4-r7,lr}
+ bx lr
+_0209E598:
+ mov r2, #0x0
+ strb r2, [r5, #0x0]
+ mov r0, r5
+ mov r1, r4
+ strh r2, [r5, #0x2]
+ bl FUN_0209FB84
+ mov r1, r0, asr #0x8
+ orr r0, r1, r0, lsl #0x8
+ strh r0, [r5, #0x2]
+ ldrh r1, [r6, #0xc]
+ ldrh r6, [r6, #0xe]
+ mov r2, #0x0
+ mov r0, r1, asr #0x8
+ orr r0, r0, r1, lsl #0x8
+ mov r0, r0, lsl #0x10
+ mov r1, r6, asr #0x8
+ mov r3, r0, lsr #0x10
+ orr r0, r1, r6, lsl #0x8
+ mov r1, r3, lsl #0x10
+ mov r0, r0, lsl #0x10
+ orr r6, r1, r0, lsr #0x10
+ mov r0, r5
+ mov r1, r4
+ mov r3, r2
+ str r6, [sp, #0x0]
+ mov r4, #0x1
+ str r4, [sp, #0x4]
+ bl FUN_0209ECFC
+ add sp, sp, #0xc
+ ldmia sp!, {r4-r7,lr}
+ bx lr
+
+ arm_func_start FUN_0209E614
+FUN_0209E614: ; 0x0209E614
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0x4
+ cmp r1, #0x1c
+ mov r6, r0
+ addcc sp, sp, #0x4
+ ldmccia sp!, {r4-r7,lr}
+ bxcc lr
+ ldr r1, _0209E7BC ; =0x021C8F14
+ add r0, r6, #0x8
+ bl FUN_0209F9A0
+_0209E63C: ; 0x0209E63C
+ cmp r0, #0x0
+ addeq sp, sp, #0x4
+ ldmeqia sp!, {r4-r7,lr}
+ bxeq lr
+ ldr r0, _0209E7C0 ; =0x021C8F04
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ addeq sp, sp, #0x4
+ ldmeqia sp!, {r4-r7,lr}
+ bxeq lr
+ ldrh r0, [r6, #0x0]
+ cmp r0, #0x100
+ addne sp, sp, #0x4
+ ldmneia sp!, {r4-r7,lr}
+ bxne lr
+ ldrh r0, [r6, #0x2]
+ cmp r0, #0x8
+ addne sp, sp, #0x4
+ ldmneia sp!, {r4-r7,lr}
+ bxne lr
+ ldrh r1, [r6, #0x4]
+ ldr r0, _0209E7C4 ; =0x00000406
+ cmp r1, r0
+ addne sp, sp, #0x4
+ ldmneia sp!, {r4-r7,lr}
+ bxne lr
+ ldrh r1, [r6, #0x6]
+ mov r0, r1, asr #0x8
+ orr r0, r0, r1, lsl #0x8
+ mov r0, r0, lsl #0x10
+ mov r4, r0, lsr #0x10
+ cmp r4, #0x1
+ beq _0209E6D0
+ cmp r4, #0x2
+ addne sp, sp, #0x4
+ ldmneia sp!, {r4-r7,lr}
+ bxne lr
+_0209E6D0:
+ ldrh r1, [r6, #0xe]
+ ldrh r5, [r6, #0x10]
+ ldr r2, _0209E7C0 ; =0x021C8F04
+ mov r0, r1, asr #0x8
+ orr r0, r0, r1, lsl #0x8
+ mov r0, r0, lsl #0x10
+ mov r3, r0, lsr #0x10
+ mov r1, r5, asr #0x8
+ orr r0, r1, r5, lsl #0x8
+ mov r1, r0, lsl #0x10
+ mov r3, r3, lsl #0x10
+ orr r1, r3, r1, lsr #0x10
+ ldr r0, [r2, #0x0]
+ ldrh r3, [r6, #0x18]
+ ldrh lr, [r6, #0x1a]
+ cmp r1, r0
+ mov r2, r3, asr #0x8
+ orr r2, r2, r3, lsl #0x8
+ mov r2, r2, lsl #0x10
+ moveq r5, #0x1
+ mov r3, lr, asr #0x8
+ mov r12, r2, lsr #0x10
+ orr r2, r3, lr, lsl #0x8
+ mov r3, r12, lsl #0x10
+ mov r2, r2, lsl #0x10
+ orr r2, r3, r2, lsr #0x10
+ movne r5, #0x0
+ cmp r0, r2
+ moveq r7, #0x1
+ movne r7, #0x0
+ cmp r5, #0x0
+ bne _0209E75C
+ mov r2, r7
+ add r0, r6, #0x8
+ bl FUN_0209F12C
+_0209E75C:
+ cmp r4, #0x1
+ bne _0209E780
+ cmp r7, #0x0
+ beq _0209E780
+ mov r0, r6
+ bl FUN_0209E7CC
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r7,lr}
+ bx lr
+_0209E780:
+ cmp r4, #0x2
+ addne sp, sp, #0x4
+ ldmneia sp!, {r4-r7,lr}
+ bxne lr
+ cmp r7, #0x0
+ addeq sp, sp, #0x4
+ ldmeqia sp!, {r4-r7,lr}
+ bxeq lr
+ cmp r5, #0x0
+ ldrne r0, _0209E7C8 ; =0x021C8EAC
+ movne r1, #0x1
+ strneb r1, [r0, #0x0]
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r7,lr}
+ bx lr
+ .balign 4
+_0209E7BC: .word 0x021C8F14
+_0209E7C0: .word 0x021C8F04
+_0209E7C4: .word 0x00000406
+_0209E7C8: .word 0x021C8EAC
+
+ arm_func_start FUN_0209E7CC
+FUN_0209E7CC: ; 0x0209E7CC
+ stmdb sp!, {r4,lr}
+ mov r4, r0
+ mov r3, #0x200
+ add r0, r4, #0x8
+ add r1, r4, #0x12
+ mov r2, #0xa
+ strh r3, [r4, #0x6]
+ bl MI_CpuCopy8
+ ldr r0, _0209E870 ; =0x021C8F14
+ add r1, r4, #0x8
+ mov r2, #0x6
+ bl MI_CpuCopy8
+ ldr r3, _0209E874 ; =0x021C8F04
+ add r0, r4, #0x12
+ ldr r2, [r3, #0x0]
+ sub r1, r4, #0xe
+ mov r2, r2, lsr #0x10
+ mov r2, r2, lsl #0x10
+ mov r12, r2, lsr #0x10
+ mov r2, r12, asr #0x8
+ orr r2, r2, r12, lsl #0x8
+ strh r2, [r4, #0xe]
+ ldr r3, [r3, #0x0]
+ mov r2, #0x6
+ mov r3, r3, lsl #0x10
+ mov r12, r3, lsr #0x10
+ mov r3, r12, asr #0x8
+ orr r3, r3, r12, lsl #0x8
+ strh r3, [r4, #0x10]
+ bl MI_CpuCopy8
+ ldr r0, _0209E870 ; =0x021C8F14
+ sub r1, r4, #0x8
+ mov r2, #0x6
+ bl MI_CpuCopy8
+ sub r0, r4, #0xe
+ mov r1, #0x2a
+ mov r2, #0x0
+ mov r3, r2
+ bl FUN_0209F930
+ ldmia sp!, {r4,lr}
+ bx lr
+ .balign 4
+_0209E870: .word 0x021C8F14
+_0209E874: .word 0x021C8F04
+
+ arm_func_start FUN_0209E878
+FUN_0209E878: ; 0x0209E878
+ stmdb sp!, {r4-r9,lr}
+ sub sp, sp, #0xc
+ mov r7, r2
+ ldrb r2, [r7, #0x8]
+ mov r9, r0
+ mov r8, r1
+ cmp r2, #0x0
+ mov r6, r3
+ addeq sp, sp, #0xc
+ ldmeqia sp!, {r4-r9,lr}
+ bxeq lr
+ ldr r0, _0209EAEC ; =0x021D3498
+ ldr r3, _0209EAF0 ; =0x021C8F04
+ ldr r1, _0209EAF4 ; =0x021C9160
+ ldr r0, [r0, #0x4]
+ ldr r12, [r3, #0x0]
+ cmp r0, r1
+ ldreq r4, _0209EAF8 ; =0x021C8F5E
+ ldrne r0, [r7, #0x4c]
+ addne r4, r0, #0x22
+ ands r0, r6, #0x2
+ movne r5, #0x18
+ moveq r5, #0x14
+ add r1, r5, r8
+ mov r2, r1, lsl #0x10
+ mov r1, r12, lsr #0x10
+ mov r1, r1, lsl #0x10
+ mov r12, r1, lsr #0x10
+ mov r1, r12, asr #0x8
+ orr r1, r1, r12, lsl #0x8
+ strh r1, [r4, #-0xc]
+ ldr r1, [r3, #0x0]
+ mov r12, r2, lsr #0x10
+ mov r1, r1, lsl #0x10
+ mov r2, r1, lsr #0x10
+ mov r1, r2, asr #0x8
+ orr r1, r1, r2, lsl #0x8
+ strh r1, [r4, #-0xa]
+ ldr r1, [r7, #0x1c]
+ mov r3, r12, asr #0x8
+ mov r1, r1, lsr #0x10
+ mov r1, r1, lsl #0x10
+ mov r2, r1, lsr #0x10
+ mov r1, r2, asr #0x8
+ orr r1, r1, r2, lsl #0x8
+ strh r1, [r4, #-0x8]
+ ldr r1, [r7, #0x1c]
+ mov r2, r5, lsr #0x2
+ mov r1, r1, lsl #0x10
+ mov lr, r1, lsr #0x10
+ mov r1, lr, asr #0x8
+ orr r1, r1, lr, lsl #0x8
+ strh r1, [r4, #-0x6]
+ mov r1, #0x600
+ strh r1, [r4, #-0x4]
+ orr r1, r3, r12, lsl #0x8
+ strh r1, [r4, #-0x2]
+ ldrh r12, [r7, #0xa]
+ cmp r0, #0x0
+ mov r2, r2, lsl #0x4
+ mov r3, r12, asr #0x8
+ orr r3, r3, r12, lsl #0x8
+ strh r3, [r4, #0x0]
+ ldrh r3, [r7, #0x18]
+ mov r1, #0x0
+ mov r0, r3, asr #0x8
+ orr r0, r0, r3, lsl #0x8
+ strh r0, [r4, #0x2]
+ ldr r0, [r7, #0x28]
+ mov r0, r0, lsr #0x10
+ mov r0, r0, lsl #0x10
+ mov r3, r0, lsr #0x10
+ mov r0, r3, asr #0x8
+ orr r0, r0, r3, lsl #0x8
+ strh r0, [r4, #0x4]
+ ldr r0, [r7, #0x28]
+ mov r0, r0, lsl #0x10
+ mov r3, r0, lsr #0x10
+ mov r0, r3, asr #0x8
+ orr r0, r0, r3, lsl #0x8
+ strh r0, [r4, #0x6]
+ ldr r0, [r7, #0x24]
+ mov r0, r0, lsr #0x10
+ mov r0, r0, lsl #0x10
+ mov r3, r0, lsr #0x10
+ mov r0, r3, asr #0x8
+ orr r0, r0, r3, lsl #0x8
+ strh r0, [r4, #0x8]
+ ldr r0, [r7, #0x24]
+ mov r0, r0, lsl #0x10
+ mov r3, r0, lsr #0x10
+ mov r0, r3, asr #0x8
+ orr r0, r0, r3, lsl #0x8
+ strh r0, [r4, #0xa]
+ strb r2, [r4, #0xc]
+ strb r6, [r4, #0xd]
+ ldr r2, [r7, #0x3c]
+ ldr r0, [r7, #0x44]
+ sub r0, r2, r0
+ mov r0, r0, lsl #0x10
+ mov r2, r0, lsr #0x10
+ mov r0, r2, asr #0x8
+ orr r0, r0, r2, lsl #0x8
+ strh r0, [r4, #0xe]
+ strh r1, [r4, #0x10]
+ strh r1, [r4, #0x12]
+ beq _0209EA64
+ ldr r1, _0209EAFC ; =0x021C8EB0
+ ldrh r0, [r1, #0x0]
+ add r0, r0, #0x2040000
+ mov r0, r0, lsr #0x10
+ mov r0, r0, lsl #0x10
+ mov r2, r0, lsr #0x10
+ mov r0, r2, asr #0x8
+ orr r0, r0, r2, lsl #0x8
+ strh r0, [r4, #0x14]
+ ldrh r0, [r1, #0x0]
+ add r0, r0, #0x2040000
+ mov r0, r0, lsl #0x10
+ mov r1, r0, lsr #0x10
+ mov r0, r1, asr #0x8
+ orr r0, r0, r1, lsl #0x8
+ strh r0, [r4, #0x16]
+_0209EA64:
+ sub r0, r4, #0xc
+ add r1, r5, #0xc
+ mov r2, #0x0
+ bl FUN_0209FBC8
+ mov r2, r0
+ mov r0, r9
+ mov r1, r8
+ bl FUN_0209FBC8
+ mov r0, r0, lsl #0x10
+ mov r0, r0, lsr #0x10
+ bl FUN_0209FBAC
+ mov r3, r0, asr #0x8
+ orr r0, r3, r0, lsl #0x8
+ strh r0, [r4, #0x10]
+ mov r0, r4
+ ldr r4, [r7, #0x1c]
+ mov r3, #0x6
+ str r4, [sp, #0x0]
+ str r3, [sp, #0x4]
+ mov r1, r5
+ mov r2, r9
+ mov r3, r8
+ bl FUN_0209ECFC
+ ands r0, r6, #0x3
+ ldr r0, [r7, #0x28]
+ add r1, r7, #0x28
+ add r0, r0, r8
+ str r0, [r7, #0x28]
+ ldrne r0, [r1, #0x0]
+ addne r0, r0, #0x1
+ strne r0, [r1, #0x0]
+ add sp, sp, #0xc
+ ldmia sp!, {r4-r9,lr}
+ bx lr
+ .balign 4
+_0209EAEC: .word 0x021D3498
+_0209EAF0: .word 0x021C8F04
+_0209EAF4: .word 0x021C9160
+_0209EAF8: .word 0x021C8F5E
+_0209EAFC: .word 0x021C8EB0
+
+ arm_func_start FUN_0209EB00
+FUN_0209EB00:
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0xc
+ ldr r7, _0209EC3C ; =0x021C8F04
+ mov r5, r2
+ ldr r2, [r7, #0x0]
+ mov r6, r1
+ mov r1, r2, lsr #0x10
+ mov r1, r1, lsl #0x10
+ mov r2, r1, lsr #0x10
+ ldr r3, [r5, #0x4c]
+ mov r1, r2, asr #0x8
+ add r4, r3, #0x22
+ orr r1, r1, r2, lsl #0x8
+ strh r1, [r4, #-0xc]
+ ldr r1, [r7, #0x0]
+ add r2, r6, #0x8
+ mov r1, r1, lsl #0x10
+ mov r7, r1, lsr #0x10
+ mov r1, r7, asr #0x8
+ orr r1, r1, r7, lsl #0x8
+ strh r1, [r4, #-0xa]
+ ldr r1, [r5, #0x1c]
+ mov r2, r2, lsl #0x10
+ mov r1, r1, lsr #0x10
+ mov r1, r1, lsl #0x10
+ mov r7, r1, lsr #0x10
+ mov r1, r7, asr #0x8
+ orr r1, r1, r7, lsl #0x8
+ strh r1, [r4, #-0x8]
+ ldr r1, [r5, #0x1c]
+ mov r2, r2, lsr #0x10
+ mov r1, r1, lsl #0x10
+ mov r7, r1, lsr #0x10
+ mov r1, r7, asr #0x8
+ orr r7, r1, r7, lsl #0x8
+ mov r1, r2, asr #0x8
+ strh r7, [r4, #-0x6]
+ mov r7, #0x1100
+ strh r7, [r4, #-0x4]
+ orr r1, r1, r2, lsl #0x8
+ strh r1, [r4, #0x4]
+ ldrh r1, [r4, #0x4]
+ mov r7, r0
+ sub r0, r4, #0xc
+ strh r1, [r4, #-0x2]
+ ldrh lr, [r5, #0x18]
+ mov r2, #0x0
+ mov r1, #0x14
+ mov r12, lr, asr #0x8
+ orr r12, r12, lr, lsl #0x8
+ strh r12, [r4, #0x2]
+ ldrh lr, [r5, #0xa]
+ mov r12, lr, asr #0x8
+ orr r12, r12, lr, lsl #0x8
+ strh r12, [r3, #0x22]
+ strh r2, [r4, #0x6]
+ bl FUN_0209FBC8
+ mov r2, r0
+ mov r0, r7
+ mov r1, r6
+ bl FUN_0209FBC8
+ mov r0, r0, lsl #0x10
+ mov r0, r0, lsr #0x10
+ bl FUN_0209FBAC
+ mov r2, r7
+ mov r3, r6
+ mov r1, r0, asr #0x8
+ orr r0, r1, r0, lsl #0x8
+ strh r0, [r4, #0x6]
+ ldr r1, [r5, #0x1c]
+ mov r0, r4
+ str r1, [sp, #0x0]
+ mov r1, #0x11
+ str r1, [sp, #0x4]
+ mov r1, #0x8
+ bl FUN_0209ECFC
+ add sp, sp, #0xc
+ ldmia sp!, {r4-r7,lr}
+ bx lr
+ .balign 4
+_0209EC3C: .word 0x021C8F04
+
+ arm_func_start FUN_0209EC40
+FUN_0209EC40:
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0xc
+ mov r5, r2
+ ldr r3, [r5, #0x4c]
+ mov r6, r1
+ mov r1, #0x8
+ ldr r2, _0209ECF4 ; =0x021D3498
+ strh r1, [r3, #0x22]
+ ldr r2, [r2, #0x4]
+ add r4, r3, #0x22
+ strh r2, [r4, #0x4]
+ mov r2, #0x0
+ ldr r3, _0209ECF8 ; =0x021C8EB4
+ strh r2, [r4, #0x2]
+ ldrh lr, [r3, #0x0]
+ mov r7, r0
+ mov r0, r4
+ strh lr, [r5, #0xa]
+ ldrh r12, [r3, #0x0]
+ add r12, r12, #0x1
+ strh r12, [r3, #0x0]
+ strh lr, [r4, #0x6]
+ bl FUN_0209FBC8
+ mov r2, r0
+ mov r0, r7
+ mov r1, r6
+ bl FUN_0209FBC8
+ mov r0, r0, lsl #0x10
+ mov r0, r0, lsr #0x10
+ bl FUN_0209FBAC
+ mov r2, r7
+ mov r3, r6
+ mov r1, r0, asr #0x8
+ orr r0, r1, r0, lsl #0x8
+ strh r0, [r4, #0x2]
+ ldr r1, [r5, #0x1c]
+ mov r0, r4
+ str r1, [sp, #0x0]
+ mov r1, #0x1
+ str r1, [sp, #0x4]
+ mov r1, #0x8
+ bl FUN_0209ECFC
+ add sp, sp, #0xc
+ ldmia sp!, {r4-r7,lr}
+ bx lr
+ .balign 4
+_0209ECF4: .word 0x021D3498
+_0209ECF8: .word 0x021C8EB4
+
+ arm_func_start FUN_0209ECFC
+FUN_0209ECFC: ; 0x0209ECFC
+ stmdb sp!, {r4-r11,lr}
+ sub sp, sp, #0xc
+ mov r10, r0
+ mov r0, #0x45
+ strb r0, [r10, #-0x14]
+ mov r5, #0x0
+ ldr r0, _0209EF0C ; =0x021C8EB8
+ strb r5, [r10, #-0x13]
+ ldrh r7, [r0, #0x0]
+ ldr r6, [sp, #0x30]
+ ldrb r4, [sp, #0x34]
+ add r7, r7, #0x1
+ strh r7, [r0, #0x0]
+ ldrh r9, [r0, #0x0]
+ mov r0, r6, lsr #0x10
+ mov r7, #0x80
+ mov r8, r9, asr #0x8
+ orr r8, r8, r9, lsl #0x8
+ strh r8, [r10, #-0x10]
+ strb r7, [r10, #-0xc]
+ ldr r7, _0209EF10 ; =0x021C8F04
+ strb r4, [r10, #-0xb]
+ ldr r8, [r7, #0x0]
+ mov r4, r0, lsl #0x10
+ mov r0, r8, lsr #0x10
+ mov r0, r0, lsl #0x10
+ mov r8, r0, lsr #0x10
+ mov r0, r8, asr #0x8
+ orr r0, r0, r8, lsl #0x8
+ strh r0, [r10, #-0x8]
+ ldr r0, [r7, #0x0]
+ mov r8, r4, lsr #0x10
+ mov r0, r0, lsl #0x10
+ mov r7, r0, lsr #0x10
+ mov r4, r7, asr #0x8
+ mov r0, r6, lsl #0x10
+ orr r9, r4, r7, lsl #0x8
+ mov r7, r8, asr #0x8
+ mov r4, r0, lsr #0x10
+ mov r0, r4, asr #0x8
+ strh r9, [r10, #-0x6]
+ orr r7, r7, r8, lsl #0x8
+ ldr fp, _0209EF14 ; =0x000005C8
+ mov r9, r1
+ strh r7, [r10, #-0x4]
+ orr r0, r0, r4, lsl #0x8
+ mov r8, r2
+ mov r7, r3
+ strh r0, [r10, #-0x2]
+ cmp r9, r11
+ bls _0209EE74
+ mov r4, r10
+ cmp r9, r11
+ bls _0209EE14
+ str r5, [sp, #0x8]
+_0209EDD8:
+ ldr r1, [sp, #0x8]
+ mov r0, r10
+ mov r2, r4
+ mov r3, r11
+ str r6, [sp, #0x0]
+ orr r12, r5, #0x2000
+ str r12, [sp, #0x4]
+ bl FUN_0209EF18
+ add r0, r5, #0xb9
+ sub r9, r9, r11
+ mov r0, r0, lsl #0x10
+ cmp r9, r11
+ add r4, r4, r11
+ mov r5, r0, lsr #0x10
+ bhi _0209EDD8
+_0209EE14:
+ cmp r9, #0x0
+ beq _0209EE74
+ cmp r7, #0x0
+ beq _0209EE48
+ mov r0, r10
+ mov r2, r4
+ mov r3, r9
+ str r6, [sp, #0x0]
+ orr r4, r5, #0x2000
+ mov r1, #0x0
+ str r4, [sp, #0x4]
+ bl FUN_0209EF18
+ b _0209EE64
+_0209EE48:
+ str r6, [sp, #0x0]
+ mov r0, r10
+ mov r2, r4
+ mov r3, r9
+ mov r1, #0x0
+ str r5, [sp, #0x4]
+ bl FUN_0209EF18
+_0209EE64:
+ add r0, r5, r9, lsr #0x3
+ mov r0, r0, lsl #0x10
+ mov r5, r0, lsr #0x10
+ mov r9, #0x0
+_0209EE74:
+ ldr r0, _0209EF14 ; =0x000005C8
+ add r1, r9, r7
+ cmp r1, r0
+ bls _0209EED4
+ mov r11, #0x0
+_0209EE88:
+ ldr r0, _0209EF14 ; =0x000005C8
+ mov r1, r9
+ sub r4, r0, r9
+ mov r0, r10
+ mov r2, r8
+ mov r3, r4
+ str r6, [sp, #0x0]
+ orr r9, r5, #0x2000
+ str r9, [sp, #0x4]
+ bl FUN_0209EF18
+ add r0, r5, #0xb9
+ mov r1, r0, lsl #0x10
+ ldr r0, _0209EF14 ; =0x000005C8
+ sub r7, r7, r4
+ mov r9, r11
+ cmp r7, r0
+ add r8, r8, r4
+ mov r5, r1, lsr #0x10
+ bhi _0209EE88
+_0209EED4:
+ adds r0, r9, r7
+ addeq sp, sp, #0xc
+ ldmeqia sp!, {r4-r11,lr}
+ bxeq lr
+ str r6, [sp, #0x0]
+ mov r0, r10
+ mov r1, r9
+ mov r2, r8
+ mov r3, r7
+ str r5, [sp, #0x4]
+ bl FUN_0209EF18
+ add sp, sp, #0xc
+ ldmia sp!, {r4-r11,lr}
+ bx lr
+ .balign 4
+_0209EF0C: .word 0x021C8EB8
+_0209EF10: .word 0x021C8F04
+_0209EF14: .word 0x000005C8
+
+ arm_func_start FUN_0209EF18
+FUN_0209EF18: ; 0x0209EF18
+ stmdb sp!, {r4-r8,lr}
+ sub sp, sp, #0x8
+ mov r7, r1
+ mov r5, r3
+ add r1, r7, #0x14
+ add r1, r1, r5
+ ldr r3, [sp, #0x24]
+ mov r1, r1, lsl #0x10
+ mov r4, r1, lsr #0x10
+ mov r1, r3, lsl #0x10
+ mov r3, r4, asr #0x8
+ mov r1, r1, lsr #0x10
+ mov r8, r0
+ orr r3, r3, r4, lsl #0x8
+ mov r0, r1, asr #0x8
+ strh r3, [r8, #-0x12]
+ orr r0, r0, r1, lsl #0x8
+ strh r0, [r8, #-0xe]
+ mov r3, #0x0
+ sub r0, r8, #0x14
+ mov r1, #0x14
+ mov r6, r2
+ strh r3, [r8, #-0xa]
+ ldr r4, [sp, #0x20]
+ bl FUN_0209FB84
+ mov r2, r0, asr #0x8
+ ldr r1, _0209F040 ; =0x7F000001
+ orr r0, r2, r0, lsl #0x8
+ strh r0, [r8, #-0xa]
+ cmp r4, r1
+ beq _0209EFC4
+ ldr r0, _0209F044 ; =0x021C8F04
+ ldr r0, [r0, #0x0]
+ cmp r4, r0
+ beq _0209EFC4
+ mov r2, r6
+ mov r3, r5
+ str r4, [sp, #0x0]
+ mov r12, #0x800
+ sub r0, r8, #0x14
+ add r1, r7, #0x14
+ str r12, [sp, #0x4]
+ bl FUN_0209F050
+_0209EFC4:
+ ldr r0, _0209F040 ; =0x7F000001
+ cmp r4, r0
+ beq _0209EFF8
+ ldr r0, _0209F044 ; =0x021C8F04
+ ldr r0, [r0, #0x0]
+ cmp r4, r0
+ beq _0209EFF8
+ mov r0, r4
+ bl FUN_0209FA54
+_0209EFE8: ; 0x0209EFE8
+ cmp r0, #0x0
+ addeq sp, sp, #0x8
+ ldmeqia sp!, {r4-r8,lr}
+ bxeq lr
+_0209EFF8:
+ ldr r0, _0209F048 ; =0x02106230
+ sub r1, r8, #0x1c
+ mov r2, #0x8
+ bl MI_CpuCopy8
+ bl OS_DisableInterrupts
+ mov r4, r0
+ ldr r0, _0209F04C ; =0x021C8F14
+ str r6, [sp, #0x0]
+ mov r1, r0
+ str r5, [sp, #0x4]
+ sub r2, r8, #0x1c
+ add r3, r7, #0x1c
+ bl FUN_0209F6C0
+ mov r0, r4
+ bl OS_RestoreInterrupts
+ add sp, sp, #0x8
+ ldmia sp!, {r4-r8,lr}
+ bx lr
+ .balign 4
+_0209F040: .word 0x7F000001
+_0209F044: .word 0x021C8F04
+_0209F048: .word 0x02106230
+_0209F04C: .word 0x021C8F14
+
+ arm_func_start FUN_0209F050
+FUN_0209F050: ; 0x0209F050
+ stmdb sp!, {r4-r8,lr}
+ ldrh r5, [sp, #0x1c]
+ ldr r4, [sp, #0x18]
+ mov r8, r0
+ mov r0, r5, asr #0x8
+ orr r12, r0, r5, lsl #0x8
+ mov r0, r4
+ mov r7, r1
+ mov r6, r2
+ mov r5, r3
+ strh r12, [r8, #-0x2]
+ bl FUN_0209FA54
+_0209F080: ; 0x0209F080
+ cmp r0, #0x0
+ bne _0209F0CC
+ mov r0, r4
+ bl FUN_0209FAB0
+ movs r4, r0
+ ldmeqia sp!, {r4-r8,lr}
+ bxeq lr
+ bl FUN_0209F438
+_0209F0A0: ; 0x0209F0A0
+ cmp r0, #0x0
+ bne _0209F0B0
+ mov r0, r4
+ bl FUN_0209F2AC
+_0209F0B0:
+ cmp r0, #0x0
+ ldmeqia sp!, {r4-r8,lr}
+ bxeq lr
+ sub r1, r8, #0xe
+ mov r2, #0x6
+ bl MI_CpuCopy8
+ b _0209F0FC
+_0209F0CC:
+ mov r0, #0x1
+ strb r0, [r8, #-0xe]
+ mov r1, #0x0
+ mov r0, r4, lsr #0x10
+ strb r1, [r8, #-0xd]
+ mov r1, #0x5e
+ strb r1, [r8, #-0xc]
+ and r0, r0, #0x7f
+ strb r0, [r8, #-0xb]
+ mov r0, r4, lsr #0x8
+ strb r0, [r8, #-0xa]
+ strb r4, [r8, #-0x9]
+_0209F0FC:
+ ldr r0, _0209F128 ; =0x021C8F14
+ sub r1, r8, #0x8
+ mov r2, #0x6
+ bl MI_CpuCopy8
+ mov r2, r6
+ mov r3, r5
+ sub r0, r8, #0xe
+ add r1, r7, #0xe
+ bl FUN_0209F930
+ ldmia sp!, {r4-r8,lr}
+ bx lr
+ .balign 4
+_0209F128: .word 0x021C8F14
+
+ arm_func_start FUN_0209F12C
+FUN_0209F12C: ; 0x0209F12C
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0x4
+ ldr r3, _0209F29C ; =0x7F000001
+ mov r6, r1
+ cmp r6, r3
+ mov r7, r0
+ mov r4, r2
+ addeq sp, sp, #0x4
+ ldmeqia sp!, {r4-r7,lr}
+ bxeq lr
+ ldr r0, _0209F2A0 ; =0x021C8F04
+ ldr r0, [r0, #0x0]
+ cmp r6, r0
+ addeq sp, sp, #0x4
+ ldmeqia sp!, {r4-r7,lr}
+ bxeq lr
+ mov r0, r6
+ bl FUN_0209FAD8
+_0209F174: ; 0x0209F174
+ cmp r0, #0x0
+ addeq sp, sp, #0x4
+ ldmeqia sp!, {r4-r7,lr}
+ bxeq lr
+ mov r0, r6
+ bl FUN_0209FA54
+_0209F18C: ; 0x0209F18C
+ cmp r0, #0x0
+ addne sp, sp, #0x4
+ ldmneia sp!, {r4-r7,lr}
+ bxne lr
+ bl OS_GetTick
+ mov r0, r0, lsr #0x10
+ orr r0, r0, r1, lsl #0x10
+ mov r0, r0, lsl #0x10
+ ldr r1, _0209F2A4 ; =0x021C8F78
+ mov r5, r0, lsr #0x10
+ mov r2, #0x0
+_0209F1B8:
+ ldr r0, [r1, #0x0]
+ cmp r6, r0
+ bne _0209F1F8
+ mov r0, #0xc
+ mul r4, r2, r0
+ ldr r0, _0209F2A4 ; =0x021C8F78
+ ldr r3, _0209F2A8 ; =0x021C8F82
+ add r1, r0, r4
+ mov r0, r7
+ add r1, r1, #0x4
+ mov r2, #0x6
+ strh r5, [r3, r4]
+ bl MI_CpuCopy8
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r7,lr}
+ bx lr
+_0209F1F8:
+ add r2, r2, #0x1
+ cmp r2, #0x8
+ add r1, r1, #0xc
+ blo _0209F1B8
+ cmp r4, #0x0
+ addeq sp, sp, #0x4
+ ldmeqia sp!, {r4-r7,lr}
+ bxeq lr
+ mov r12, #0x0
+ ldr r4, _0209F2A4 ; =0x021C8F78
+ mov r0, r12
+ mov r3, r12
+_0209F228:
+ ldr r1, [r4, #0x0]
+ cmp r1, #0x0
+ moveq r0, r3
+ beq _0209F264
+ ldrh r1, [r4, #0xa]
+ add r4, r4, #0xc
+ sub r1, r5, r1
+ mov r1, r1, lsl #0x10
+ mov r2, r1, asr #0x10
+ cmp r2, r12
+ movgt r0, r3
+ add r3, r3, #0x1
+ movgt r12, r1, lsr #0x10
+ cmp r3, #0x8
+ blo _0209F228
+_0209F264:
+ mov r1, #0xc
+ mul r4, r0, r1
+ ldr r3, _0209F2A4 ; =0x021C8F78
+ mov r0, r7
+ add r1, r3, r4
+ add r1, r1, #0x4
+ mov r2, #0x6
+ str r6, [r3, r4]
+ bl MI_CpuCopy8
+ ldr r0, _0209F2A8 ; =0x021C8F82
+ strh r5, [r0, r4]
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r7,lr}
+ bx lr
+ .balign 4
+_0209F29C: .word 0x7F000001
+_0209F2A0: .word 0x021C8F04
+_0209F2A4: .word 0x021C8F78
+_0209F2A8: .word 0x021C8F82
+
+ arm_func_start FUN_0209F2AC
+FUN_0209F2AC:
+ stmdb sp!, {r4-r9,lr}
+ sub sp, sp, #0x4
+ mov r9, r0
+ mov r8, #0x0
+ ldr r4, _0209F334 ; =0x021C8F04
+ mov r6, r8
+ mov r5, #0x64
+_0209F2C8:
+ mov r0, r9
+ bl FUN_0209F338
+ mov r7, r6
+_0209F2D4:
+ ldr r0, [r4, #0x0]
+ cmp r0, #0x0
+ addeq sp, sp, #0x4
+ moveq r0, #0x0
+ ldmeqia sp!, {r4-r9,lr}
+ bxeq lr
+ mov r0, r5
+ bl OS_Sleep
+ mov r0, r9
+ bl FUN_0209F438
+_0209F2FC: ; 0x0209F2FC
+ cmp r0, #0x0
+ addne sp, sp, #0x4
+ ldmneia sp!, {r4-r9,lr}
+ bxne lr
+ add r7, r7, #0x1
+ cmp r7, #0x14
+ blo _0209F2D4
+ add r8, r8, #0x1
+ cmp r8, #0x8
+ blo _0209F2C8
+ mov r0, #0x0
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r9,lr}
+ bx lr
+ .balign 4
+_0209F334: .word 0x021C8F04
+
+ arm_func_start FUN_0209F338
+FUN_0209F338: ; 0x0209F338
+ stmdb sp!, {r4,lr}
+ sub sp, sp, #0x30
+ mov r4, r0
+ add r0, sp, #0x0
+ mov r1, #0x0
+ mov r2, #0x2a
+ bl MI_CpuFill8
+_0209F354: ; 0x0209F354
+ add r0, sp, #0x0
+ mov r1, #0xff
+ mov r2, #0x6
+ bl MI_CpuFill8
+ ldr r0, _0209F428 ; =0x021C8F14
+ add r1, sp, #0x6
+ mov r2, #0x6
+ bl MI_CpuCopy8
+ mov r0, #0x1
+ ldr r1, _0209F42C ; =0x00000608
+ strb r0, [sp, #0xf]
+ strh r1, [sp, #0xc]
+ strb r0, [sp, #0x15]
+ mov r0, #0x8
+ ldr r1, _0209F430 ; =0x00000406
+ strb r0, [sp, #0x10]
+ strh r1, [sp, #0x12]
+ ldr r0, _0209F428 ; =0x021C8F14
+ add r1, sp, #0x16
+ mov r2, #0x6
+ bl MI_CpuCopy8
+ ldr r0, _0209F434 ; =0x021C8F04
+ mov r1, r4, lsr #0x10
+ ldr r3, [r0, #0x0]
+ mov r0, r1, lsl #0x10
+ mov r2, r0, lsr #0x10
+ mov r0, r4, lsl #0x10
+ mov r1, r0, lsr #0x10
+ mov r0, r3, lsr #0x10
+ mov r0, r0, lsl #0x10
+ mov r4, r0, lsr #0x10
+ mov r0, r3, lsl #0x10
+ mov r3, r0, lsr #0x10
+ mov r0, r4, asr #0x8
+ orr r0, r0, r4, lsl #0x8
+ strh r0, [sp, #0x1c]
+ mov r0, r3, asr #0x8
+ orr r0, r0, r3, lsl #0x8
+ strh r0, [sp, #0x1e]
+ mov r0, r2, asr #0x8
+ orr r0, r0, r2, lsl #0x8
+ strh r0, [sp, #0x26]
+ mov r0, r1, asr #0x8
+ orr r0, r0, r1, lsl #0x8
+ mov r2, #0x0
+ strh r0, [sp, #0x28]
+ add r0, sp, #0x0
+ mov r1, #0x2a
+ mov r3, r2
+ bl FUN_0209F930
+ add sp, sp, #0x30
+ ldmia sp!, {r4,lr}
+ bx lr
+ .balign 4
+_0209F428: .word 0x021C8F14
+_0209F42C: .word 0x00000608
+_0209F430: .word 0x00000406
+_0209F434: .word 0x021C8F04
+
+ arm_func_start FUN_0209F438
+FUN_0209F438:
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0x4
+ mov r7, r0
+ bl OS_DisableInterrupts
+ ldr r1, _0209F504 ; =0x7F000001
+ mov r4, r0
+ cmp r7, r1
+ mov r5, #0x0
+ beq _0209F46C
+ ldr r0, _0209F508 ; =0x021C8F04
+ ldr r0, [r0, #0x0]
+ cmp r7, r0
+ bne _0209F474
+_0209F46C:
+ ldr r5, _0209F50C ; =0x021C8F14
+ b _0209F4EC
+_0209F474:
+ mov r0, r7
+ bl FUN_0209FA68
+_0209F47C: ; 0x0209F47C
+ cmp r0, #0x0
+ bne _0209F494
+ mov r0, r7
+ bl FUN_0209FA54
+_0209F48C: ; 0x0209F48C
+ cmp r0, #0x0
+ beq _0209F49C
+_0209F494:
+ ldr r5, _0209F510 ; =0x0210621C
+ b _0209F4EC
+_0209F49C:
+ ldr r1, _0209F514 ; =0x021C8F78
+ mov r6, r5
+_0209F4A4:
+ ldr r0, [r1, #0x0]
+ cmp r7, r0
+ bne _0209F4DC
+ bl OS_GetTick
+ mov r2, #0xc
+ mul r3, r6, r2
+ ldr r2, _0209F514 ; =0x021C8F78
+ mov r5, r0, lsr #0x10
+ add r0, r2, r3
+ ldr r2, _0209F518 ; =0x021C8F82
+ orr r5, r5, r1, lsl #0x10
+ strh r5, [r2, r3]
+ add r5, r0, #0x4
+ b _0209F4EC
+_0209F4DC:
+ add r6, r6, #0x1
+ cmp r6, #0x8
+ add r1, r1, #0xc
+ blo _0209F4A4
+_0209F4EC:
+ mov r0, r4
+ bl OS_RestoreInterrupts
+ mov r0, r5
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r7,lr}
+ bx lr
+ .balign 4
+_0209F504: .word 0x7F000001
+_0209F508: .word 0x021C8F04
+_0209F50C: .word 0x021C8F14
+_0209F510: .word 0x0210621C
+_0209F514: .word 0x021C8F78
+_0209F518: .word 0x021C8F82
+
+ arm_func_start FUN_0209F51C
+FUN_0209F51C: ; 0x0209F51C
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ bl OS_DisableInterrupts
+ ldr r2, _0209F570 ; =0x021C8EE4
+ ldr r1, _0209F574 ; =0x021C8F0C
+ ldr lr, [r2, #0x0]
+ ldr r12, [r1, #0x0]
+ ldr r3, [r2, #0x0]
+ ldr r1, _0209F578 ; =0x021C8F10
+ ldrh r3, [r12, r3]
+ add r3, lr, r3
+ str r3, [r2, #0x0]
+ ldr r3, [r2, #0x0]
+ ldr r1, [r1, #0x0]
+ cmp r3, r1
+ movcs r1, #0x0
+ strcs r1, [r2, #0x0]
+ bl OS_RestoreInterrupts
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+ .balign 4
+_0209F570: .word 0x021C8EE4
+_0209F574: .word 0x021C8F0C
+_0209F578: .word 0x021C8F10
+
+ arm_func_start FUN_0209F57C
+FUN_0209F57C: ; 0x0209F57C
+ stmdb sp!, {r4-r10,lr}
+ mov r6, r0
+ bl OS_DisableInterrupts
+ ldr sl, _0209F644 ; =0x021C8EE4
+ ldr sb, _0209F648 ; =0x021C8EDC
+ ldr r2, [r10, #0x0]
+ ldr r1, [r9, #0x0]
+ mov r5, r0
+ cmp r2, r1
+ bne _0209F5D4
+ ldr r8, _0209F64C ; =0x021D3498
+ ldr r7, _0209F650 ; =0x021C8F08
+ mov r4, #0x0
+_0209F5B0:
+ ldr r1, [r8, #0x4]
+ mov r0, r4
+ str r1, [r7, #0x0]
+ bl OS_SleepThread
+ str r4, [r7, #0x0]
+ ldr r1, [r10, #0x0]
+ ldr r0, [r9, #0x0]
+ cmp r1, r0
+ beq _0209F5B0
+_0209F5D4:
+ mov r0, r5
+ bl OS_RestoreInterrupts
+ ldr r0, _0209F654 ; =0x021C8F0C
+ ldr r5, [r0, #0x0]
+ ldr r0, _0209F644 ; =0x021C8EE4
+ ldr r1, _0209F658 ; =0x021C8F10
+ mov r3, #0x0
+_0209F5F0:
+ ldr r4, [r1, #0x0]
+ ldr r2, [r0, #0x0]
+ sub r2, r4, r2
+ cmp r2, #0x2
+ strcc r3, [r0, #0x0]
+ ldr r2, [r0, #0x0]
+ ldrh r2, [r5, r2]
+ cmp r2, #0x0
+ streq r3, [r0, #0x0]
+ cmp r2, #0x0
+ beq _0209F5F0
+ sub r0, r2, #0x2
+ ldr r1, _0209F654 ; =0x021C8F0C
+ str r0, [r6, #0x0]
+ ldr r0, _0209F644 ; =0x021C8EE4
+ ldr r1, [r1, #0x0]
+ ldr r0, [r0, #0x0]
+ add r0, r1, r0
+ add r0, r0, #0x2
+ ldmia sp!, {r4-r10,lr}
+ bx lr
+ .balign 4
+_0209F644: .word 0x021C8EE4
+_0209F648: .word 0x021C8EDC
+_0209F64C: .word 0x021D3498
+_0209F650: .word 0x021C8F08
+_0209F654: .word 0x021C8F0C
+_0209F658: .word 0x021C8F10
+
+ arm_func_start FUN_0209F65C
+FUN_0209F65C: ; 0x0209F65C
+ stmdb sp!, {lr}
+ sub sp, sp, #0xc
+ mov r12, #0x0
+ str r12, [sp, #0x0]
+ str r12, [sp, #0x4]
+ bl FUN_0209F6C0
+ ldr r0, _0209F6BC ; =0x021C8F08
+ ldr r1, [r0, #0x0]
+ cmp r1, #0x0
+ addeq sp, sp, #0xc
+ ldmeqia sp!, {lr}
+ bxeq lr
+ ldr r0, [r0, #0x0]
+ bl OS_IsThreadTerminated
+_0209F694: ; 0x0209F694
+ cmp r0, #0x0
+ addne sp, sp, #0xc
+ ldmneia sp!, {lr}
+ bxne lr
+ ldr r0, _0209F6BC ; =0x021C8F08
+ ldr r0, [r0, #0x0]
+ bl OS_WakeupThreadDirect
+ add sp, sp, #0xc
+ ldmia sp!, {lr}
+ bx lr
+ .balign 4
+_0209F6BC: .word 0x021C8F08
+
+ arm_func_start FUN_0209F6C0
+FUN_0209F6C0: ; 0x0209F6C0
+ stmdb sp!, {r4-r8,lr}
+ ldr r4, _0209F918 ; =0x021C8F0C
+ mov r7, r0
+ ldr r0, [r4, #0x0]
+ mov r6, r2
+ mov r5, r3
+ cmp r0, #0x0
+ ldmeqia sp!, {r4-r8,lr}
+ bxeq lr
+ ldr r2, _0209F91C ; =0x021C8F10
+ ldr r2, [r2, #0x0]
+ cmp r2, #0x0
+ ldmeqia sp!, {r4-r8,lr}
+ bxeq lr
+ ldr r2, [sp, #0x1c]
+ add r2, r5, r2
+ cmp r2, #0x8
+ ldmccia sp!, {r4-r8,lr}
+ bxcc lr
+ ldr r3, _0209F920 ; =0x000005E4
+ cmp r2, r3
+ ldmhiia sp!, {r4-r8,lr}
+ bxhi lr
+ ldr r3, _0209F924 ; =0x02106230
+ ldrb r8, [r6, #0x0]
+ ldrb r4, [r3, #0x0]
+ cmp r8, r4
+ ldmneia sp!, {r4-r8,lr}
+ bxne lr
+ ldrb r8, [r6, #0x1]
+ ldrb r4, [r3, #0x1]
+ cmp r8, r4
+ ldmneia sp!, {r4-r8,lr}
+ bxne lr
+ ldrb r4, [r6, #0x2]
+ ldrb r3, [r3, #0x2]
+ cmp r4, r3
+ ldmneia sp!, {r4-r8,lr}
+ bxne lr
+ ldrb r3, [r6, #0x6]
+ cmp r3, #0x8
+ ldmneia sp!, {r4-r8,lr}
+ bxne lr
+ ldrb r3, [r6, #0x7]
+ cmp r3, #0x0
+ beq _0209F784
+ cmp r3, #0x6
+ ldmneia sp!, {r4-r8,lr}
+ bxne lr
+_0209F784:
+ ldr r4, _0209F928 ; =0x021C8EDC
+ add r2, r2, #0x9
+ bic r2, r2, #0x1
+ ldr lr, [r4, #0x0]
+ mov r3, r2, lsl #0x10
+ ldr ip, _0209F92C ; =0x021C8EE4
+ ldr r8, [r4, #0x0]
+ ldr r4, [r12, #0x0]
+ mov r2, r3, lsr #0x10
+ cmp r8, r4
+ add r4, lr, r3, lsr #0x10
+ bhs _0209F7C4
+ ldr r3, [r12, #0x0]
+ cmp r3, r4
+ ldmlsia sp!, {r4-r8,lr}
+ bxls lr
+_0209F7C4:
+ ldr r3, _0209F91C ; =0x021C8F10
+ ldr r8, [r3, #0x0]
+ cmp r4, r8
+ bne _0209F7F0
+ ldr r3, _0209F92C ; =0x021C8EE4
+ mov r4, #0x0
+ ldr r3, [r3, #0x0]
+ cmp r3, #0x0
+ bne _0209F814
+ ldmia sp!, {r4-r8,lr}
+ bx lr
+_0209F7F0:
+ ldr r3, [r3, #0x0]
+ cmp r4, r3
+ bls _0209F814
+ ldr r3, _0209F92C ; =0x021C8EE4
+ mov r4, r2
+ ldr r3, [r3, #0x0]
+ cmp r3, r2
+ ldmlsia sp!, {r4-r8,lr}
+ bxls lr
+_0209F814:
+ ldr ip, _0209F928 ; =0x021C8EDC
+ ldr r3, _0209F91C ; =0x021C8F10
+ ldr lr, [r12, #0x0]
+ ldr r8, [r3, #0x0]
+ add lr, lr, r2
+ cmp lr, r8
+ bls _0209F858
+ ldr r8, [r3, #0x0]
+ ldr r3, [r12, #0x0]
+ sub r3, r8, r3
+ cmp r3, #0x2
+ ldrcs r3, [r12, #0x0]
+ movcs r8, #0x0
+ strcsh r8, [r0, r3]
+ ldr r0, _0209F928 ; =0x021C8EDC
+ mov r3, #0x0
+ str r3, [r0, #0x0]
+_0209F858:
+ ldr ip, _0209F918 ; =0x021C8F0C
+ ldr r3, _0209F928 ; =0x021C8EDC
+ ldr r8, [r12, #0x0]
+ ldr lr, [r3, #0x0]
+ mov r0, r1
+ strh r2, [r8, lr]
+ ldr r12, [r12, #0x0]
+ ldr r1, [r3, #0x0]
+ mov r2, #0x6
+ add r1, r12, r1
+ add r1, r1, #0x2
+ bl MI_CpuCopy8
+ ldr r1, _0209F918 ; =0x021C8F0C
+ ldr r0, _0209F928 ; =0x021C8EDC
+ ldr r2, [r1, #0x0]
+ ldr r1, [r0, #0x0]
+ mov r0, r7
+ add r1, r2, r1
+ add r1, r1, #0x8
+ mov r2, #0x6
+ bl MI_CpuCopy8
+ ldr r1, _0209F918 ; =0x021C8F0C
+ ldr r0, _0209F928 ; =0x021C8EDC
+ ldr r2, [r1, #0x0]
+ ldr r1, [r0, #0x0]
+ add r0, r6, #0x6
+ add r1, r2, r1
+ add r1, r1, #0xe
+ sub r2, r5, #0x6
+ bl MI_CpuCopy8
+ ldr r0, [sp, #0x18]
+ cmp r0, #0x0
+ beq _0209F908
+ ldr r2, [sp, #0x1c]
+ cmp r2, #0x0
+ beq _0209F908
+ ldr r3, _0209F918 ; =0x021C8F0C
+ ldr r1, _0209F928 ; =0x021C8EDC
+ ldr r3, [r3, #0x0]
+ ldr r1, [r1, #0x0]
+ add r1, r3, r1
+ add r1, r1, #0x8
+ add r1, r1, r5
+ bl MI_CpuCopy8
+_0209F908:
+ ldr r0, _0209F928 ; =0x021C8EDC
+ str r4, [r0, #0x0]
+ ldmia sp!, {r4-r8,lr}
+ bx lr
+ .balign 4
+_0209F918: .word 0x021C8F0C
+_0209F91C: .word 0x021C8F10
+_0209F920: .word 0x000005E4
+_0209F924: .word 0x02106230
+_0209F928: .word 0x021C8EDC
+_0209F92C: .word 0x021C8EE4
+
+ arm_func_start FUN_0209F930
+FUN_0209F930: ; 0x0209F930
+ stmdb sp!, {r4-r6,lr}
+ mov r6, r0
+ mov r5, r1
+ add r1, r6, r5
+ mov r4, r3
+ cmp r1, r2
+ beq _0209F958
+ mov r0, r2
+ mov r2, r4
+ bl MI_CpuCopy8
+_0209F958:
+ ldr r0, _0209F998 ; =0x02106230
+ add r1, r6, #0x6
+ mov r2, #0x6
+ bl MI_CpuCopy8
+ add r2, r5, r4
+ mov r0, r6
+ add r1, r6, #0x6
+ sub r2, r2, #0x6
+ bl FUN_020A8644
+_0209F97C: ; 0x0209F97C
+ cmp r0, #0x0
+ movlt r1, #0x1
+ ldr r0, _0209F99C ; =0x021C8EA8
+ movge r1, #0x0
+ strb r1, [r0, #0x0]
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+ .balign 4
+_0209F998: .word 0x02106230
+_0209F99C: .word 0x021C8EA8
+
+ arm_func_start FUN_0209F9A0
+FUN_0209F9A0:
+ mov r12, #0x0
+_0209F9A4:
+ ldrh r3, [r0], #0x2
+ ldrh r2, [r1], #0x2
+ cmp r3, r2
+ movne r0, #0x1
+ bxne lr
+ add r12, r12, #0x1
+ cmp r12, #0x3
+ blt _0209F9A4
+ mov r0, #0x0
+ bx lr
+
+ arm_func_start FUN_0209F9CC
+FUN_0209F9CC:
+ stmdb sp!, {r4-r6,lr}
+ ldr r1, _0209FA4C ; =0x021C8F04
+ mov r5, #0x1
+ ldr r1, [r1, #0x0]
+ mov r6, r0
+ mov r4, r5
+ mov r2, r5
+ mov r0, r5
+ cmp r1, #0x0
+ beq _0209F9FC
+ cmp r6, r1
+ movne r0, #0x0
+_0209F9FC:
+ cmp r0, #0x0
+ bne _0209FA10
+ ldr r0, _0209FA50 ; =0x7F000001
+ cmp r6, r0
+ movne r2, #0x0
+_0209FA10:
+ cmp r2, #0x0
+ bne _0209FA28
+ mov r0, r6
+ bl FUN_0209FA68
+_0209FA20: ; 0x0209FA20
+ cmp r0, #0x0
+ moveq r4, #0x0
+_0209FA28:
+ cmp r4, #0x0
+ bne _0209FA40
+ mov r0, r6
+ bl FUN_0209FA54
+_0209FA38: ; 0x0209FA38
+ cmp r0, #0x0
+ moveq r5, #0x0
+_0209FA40:
+ mov r0, r5
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+ .balign 4
+_0209FA4C: .word 0x021C8F04
+_0209FA50: .word 0x7F000001
+
+ arm_func_start FUN_0209FA54
+FUN_0209FA54:
+ and r0, r0, #0xf0000000
+ cmp r0, #0xe0000000
+ moveq r0, #0x1
+ movne r0, #0x0
+ bx lr
+
+ arm_func_start FUN_0209FA68
+FUN_0209FA68:
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ mov r5, r0
+ mov r4, #0x0
+ bl FUN_0209FAD8
+_0209FA7C: ; 0x0209FA7C
+ cmp r0, #0x0
+ beq _0209FA9C
+ ldr r0, _0209FAAC ; =0x021C8ED0
+ ldr r0, [r0, #0x0]
+ mvn r1, r0
+ and r0, r1, r5
+ cmp r1, r0
+ moveq r4, #0x1
+_0209FA9C:
+ mov r0, r4
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,lr}
+ bx lr
+ .balign 4
+_0209FAAC: .word 0x021C8ED0
+
+ arm_func_start FUN_0209FAB0
+FUN_0209FAB0:
+ stmdb sp!, {r4,lr}
+ mov r4, r0
+ bl FUN_0209FAD8
+_0209FABC: ; 0x0209FABC
+ cmp r0, #0x0
+ ldreq r0, _0209FAD4 ; =0x021C8EE0
+ ldreq r4, [r0, #0x0]
+ mov r0, r4
+ ldmia sp!, {r4,lr}
+ bx lr
+ .balign 4
+_0209FAD4: .word 0x021C8EE0
+
+ arm_func_start FUN_0209FAD8
+FUN_0209FAD8:
+ mvn r1, #0x0
+ cmp r0, r1
+ mov r12, #0x1
+ beq _0209FB14
+ ldr r1, _0209FB1C ; =0x7F000001
+ cmp r0, r1
+ beq _0209FB14
+ ldr r2, _0209FB20 ; =0x021C8ED0
+ ldr r1, _0209FB24 ; =0x021C8F04
+ ldr r3, [r2, #0x0]
+ ldr r1, [r1, #0x0]
+ and r2, r0, r3
+ and r0, r1, r3
+ cmp r2, r0
+ movne r12, #0x0
+_0209FB14:
+ mov r0, r12
+ bx lr
+ .balign 4
+_0209FB1C: .word 0x7F000001
+_0209FB20: .word 0x021C8ED0
+_0209FB24: .word 0x021C8F04
+
+ arm_func_start FUN_0209FB28
+FUN_0209FB28:
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ mov r4, r2
+ mov r2, r3
+ mov r5, r1
+ bl FUN_0209FBC8
+ mov r2, r0
+ add r0, r4, #0xc
+ mov r1, #0x8
+ bl FUN_0209FBC8
+ add r1, r0, r5
+ ands r0, r1, #0x10000
+ ldrne r0, _0209FB80 ; =0x0000FFFF
+ addne r1, r1, #0x1
+ andne r1, r1, r0
+ ldr r0, _0209FB80 ; =0x0000FFFF
+ cmp r1, r0
+ movne r0, #0x1
+ moveq r0, #0x0
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,lr}
+ bx lr
+ .balign 4
+_0209FB80: .word 0x0000FFFF
+
+ arm_func_start FUN_0209FB84
+FUN_0209FB84: ; 0x0209FB84
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ mov r2, #0x0
+ bl FUN_0209FBC8
+ mov r0, r0, lsl #0x10
+ mov r0, r0, lsr #0x10
+ bl FUN_0209FBAC
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+
+ arm_func_start FUN_0209FBAC
+FUN_0209FBAC: ; 0x0209FBAC
+ ldr r1, _0209FBC4 ; =0x0000FFFF
+ eor r0, r0, r1
+ mov r0, r0, lsl #0x10
+ movs r0, r0, lsr #0x10
+ moveq r0, r1
+ bx lr
+ .balign 4
+_0209FBC4: .word 0x0000FFFF
+
+ arm_func_start FUN_0209FBC8
+FUN_0209FBC8: ; 0x0209FBC8
+ ands r3, r0, #0x1
+ beq _0209FC00
+ cmp r1, #0x1
+ bls _0209FC54
+_0209FBD8:
+ ldrb r12, [r0, #0x0]
+ ldrb r3, [r0, #0x1]
+ sub r1, r1, #0x2
+ cmp r1, #0x1
+ orr r3, r3, r12, lsl #0x8
+ mov r3, r3, lsl #0x10
+ add r2, r2, r3, lsr #0x10
+ add r0, r0, #0x2
+ bhi _0209FBD8
+ b _0209FC54
+_0209FC00:
+ mov r2, r2, lsl #0x10
+ mov r3, r2, lsr #0x10
+ mov r2, r3, asr #0x8
+ orr r2, r2, r3, lsl #0x8
+ mov r2, r2, lsl #0x10
+ cmp r1, #0x1
+ mov r2, r2, lsr #0x10
+ bls _0209FC38
+_0209FC20:
+ ldrh r3, [r0, #0x0]
+ sub r1, r1, #0x2
+ cmp r1, #0x1
+ add r2, r2, r3
+ add r0, r0, #0x2
+ bhi _0209FC20
+_0209FC38:
+ ldr r3, _0209FC7C ; =0x00FF00FF
+ ldr ip, _0209FC80 ; =0xFF00FF00
+ and r3, r3, r2, lsr #0x8
+ and r2, r12, r2, lsl #0x8
+ orr r3, r3, r2
+ mov r2, r3, lsr #0x10
+ orr r2, r2, r3, lsl #0x10
+_0209FC54:
+ cmp r1, #0x0
+ ldrneb r0, [r0, #0x0]
+ addne r2, r2, r0, lsl #0x8
+ ldr r0, _0209FC84 ; =0x0000FFFF
+ and r0, r2, r0
+ add r0, r0, r2, lsr #0x10
+ add r0, r0, r0, lsr #0x10
+ mov r0, r0, lsl #0x10
+ mov r0, r0, lsr #0x10
+ bx lr
+ .balign 4
+_0209FC7C: .word 0x00FF00FF
+_0209FC80: .word 0xFF00FF00
+_0209FC84: .word 0x0000FFFF
+
+ arm_func_start FUN_0209FC88
+FUN_0209FC88: ; 0x0209FC88
+ stmdb sp!, {r4,lr}
+ mov r4, r0
+ ldr r2, _0209FCB8 ; =0x02106218
+ ldr r0, _0209FCBC ; =0x021C9160
+ mov r1, r4
+ str r4, [r2, #0x0]
+ bl OS_SetThreadPriority
+ ldr r0, _0209FCC0 ; =0x021C90A0
+ mov r1, r4
+ bl OS_SetThreadPriority
+ ldmia sp!, {r4,lr}
+ bx lr
+ .balign 4
+_0209FCB8: .word 0x02106218
+_0209FCBC: .word 0x021C9160
+_0209FCC0: .word 0x021C90A0
+
+ arm_func_start FUN_0209FCC4
+FUN_0209FCC4:
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ bl FUN_0209FD34
+ ldr r0, _0209FD10 ; =0x021C90A0
+ bl OS_JoinThread
+ ldr r0, _0209FD14 ; =0x021C9160
+ bl OS_DestroyThread
+ ldr r1, _0209FD18 ; =0x021C8F08
+ mov r0, #0x0
+ str r0, [r1, #0x0]
+ bl FUN_020A0098
+ ldr r1, _0209FD1C ; =0x021C8F0C
+ mov r2, #0x0
+ ldr r0, _0209FD20 ; =0x021C8F10
+ str r2, [r1, #0x0]
+ str r2, [r0, #0x0]
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+ .balign 4
+_0209FD10: .word 0x021C90A0
+_0209FD14: .word 0x021C9160
+_0209FD18: .word 0x021C8F08
+_0209FD1C: .word 0x021C8F0C
+_0209FD20: .word 0x021C8F10
+
+ arm_func_start FUN_0209FD24
+FUN_0209FD24: ; 0x0209FD24
+ ldr r1, _0209FD30 ; =0x021C8EF0
+ str r0, [r1, #0x0]
+ bx lr
+ .balign 4
+_0209FD30: .word 0x021C8EF0
+
+ arm_func_start FUN_0209FD34
+FUN_0209FD34:
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ bl OS_DisableInterrupts
+ mov r5, r0
+ ldr r0, _0209FD8C ; =0x021C90A0
+ bl OS_IsThreadTerminated
+ movs r4, r0
+ bne _0209FD74
+ ldr r1, _0209FD90 ; =0x021C8EF8
+ ldr r0, [r1, #0x0]
+ cmp r0, #0x0
+ bne _0209FD74
+ ldr r0, _0209FD8C ; =0x021C90A0
+ mov r2, #0x1
+ str r2, [r1, #0x0]
+ bl OS_WakeupThreadDirect
+_0209FD74:
+ mov r0, r5
+ bl OS_RestoreInterrupts
+ mov r0, r4
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,lr}
+ bx lr
+ .balign 4
+_0209FD8C: .word 0x021C90A0
+_0209FD90: .word 0x021C8EF8
+
+ arm_func_start FUN_0209FD94
+FUN_0209FD94: ; 0x0209FD94
+ stmdb sp!, {r4-r6,lr}
+ sub sp, sp, #0x8
+ mov r4, r0
+ ldr r0, _0209FFD4 ; =0x02000BEC
+ bl OSi_ReferSymbol
+ ldr r12, [r4, #0x14]
+ ldr r6, [r4, #0x18]
+ mov r1, #0x0
+ cmp r6, r1
+ cmpeq r12, r1
+ beq _0209FDEC
+ ldr r0, _0209FFD8 ; =0x021C8F24
+ ldr r5, _0209FFDC ; =0x6C078965
+ ldr r3, _0209FFE0 ; =0x5D588B65
+ ldr r2, _0209FFE4 ; =0x00269EC3
+ str r12, [r0, #0x0]
+ str r6, [r0, #0x4]
+ str r5, [r0, #0x8]
+ str r3, [r0, #0xc]
+ str r2, [r0, #0x10]
+ str r1, [r0, #0x14]
+ b _0209FE1C
+_0209FDEC:
+ bl OS_GetTick
+ ldr r2, _0209FFD8 ; =0x021C8F24
+ ldr ip, _0209FFDC ; =0x6C078965
+ ldr r6, _0209FFE0 ; =0x5D588B65
+ ldr r5, _0209FFE4 ; =0x00269EC3
+ mov r3, #0x0
+ str r0, [r2, #0x0]
+ str r1, [r2, #0x4]
+ str r12, [r2, #0x8]
+ str r6, [r2, #0xc]
+ str r5, [r2, #0x10]
+ str r3, [r2, #0x14]
+_0209FE1C:
+ ldr r2, [r4, #0x4]
+ cmp r2, #0x0
+ beq _0209FE4C
+ ldr r0, [r4, #0x8]
+ cmp r0, #0x0
+ beq _0209FE4C
+ ldr r1, _0209FFE8 ; =0x021C8EC8
+ ldr r0, _0209FFEC ; =0x021C8EF4
+ str r2, [r1, #0x0]
+ ldr r1, [r4, #0x8]
+ str r1, [r0, #0x0]
+ b _0209FE60
+_0209FE4C:
+ ldr r2, _0209FFF0 ; =FUN_020A0058
+ ldr r1, _0209FFE8 ; =0x021C8EC8
+ ldr r0, _0209FFEC ; =0x021C8EF4
+ str r2, [r1, #0x0]
+ str r2, [r0, #0x0]
+_0209FE60:
+ ldr r1, [r4, #0x0]
+ ldr r0, _0209FFF4 ; =0x021C8EC4
+ ldr ip, _0209FFD8 ; =0x021C8F24
+ str r1, [r0, #0x0]
+ ldr r1, [r4, #0x24]
+ ldr r3, [r12, #0x8]
+ cmp r1, #0x0
+ ldrne r0, _0209FFF8 ; =0x021C8EB0
+ strneh r1, [r0, #0x0]
+ ldreq r1, _0209FFFC ; =0x000005B4
+ ldreq r0, _0209FFF8 ; =0x021C8EB0
+ streqh r1, [r0, #0x0]
+ ldr r2, [r4, #0x28]
+ ldr r1, _020A0000 ; =0x021C8EE8
+ ldr r0, _020A0004 ; =0x021C8ED8
+ str r2, [r1, #0x0]
+ ldr r1, [r4, #0x2c]
+ ldr r2, [r12, #0x0]
+ str r1, [r0, #0x0]
+ ldr r1, [r4, #0xc]
+ umull lr, r5, r3, r2
+ cmp r1, #0x0
+ ldrne r0, _020A0008 ; =0x021C8ECC
+ strne r1, [r0, #0x0]
+ ldreq r1, _0209FFF0 ; =FUN_020A0058
+ ldreq r0, _020A0008 ; =0x021C8ECC
+ streq r1, [r0, #0x0]
+ ldr r1, [r4, #0x10]
+ cmp r1, #0x0
+ ldrne r0, _020A000C ; =0x021C8EFC
+ strne r1, [r0, #0x0]
+ ldreq r1, _020A0010 ; =FUN_020A0050
+ ldreq r0, _020A000C ; =0x021C8EFC
+ streq r1, [r0, #0x0]
+ ldr r1, [r12, #0x4]
+ ldr r0, _020A0014 ; =0x00000F88
+ mla r5, r3, r1, r5
+ ldr r1, [r12, #0xc]
+ ldr r3, [r12, #0x10]
+ mla r5, r1, r2, r5
+ adds r2, r3, lr
+ ldr r1, [r12, #0x14]
+ mov r3, #0x0
+ adc r1, r1, r5
+ umull lr, r5, r1, r0
+ mla r5, r1, r3, r5
+ mla r5, r3, r0, r5
+ ldr r6, [r4, #0x1c]
+ ldr r0, _020A0018 ; =0x021C8F0C
+ ldr lr, _020A001C ; =0x021C8F10
+ str r6, [r0, #0x0]
+ ldr r4, [r4, #0x20]
+ ldr r0, _020A0020 ; =0x021C8EE4
+ str r4, [lr, #0x0]
+ str r3, [r0, #0x0]
+ ldr lr, _020A0024 ; =0x021C8EDC
+ ldr r4, _020A0028 ; =0x021C8EBC
+ add r5, r5, #0x400
+ ldr r0, _020A002C ; =0x021C8F14
+ str r3, [lr, #0x0]
+ str r2, [r12, #0x0]
+ str r1, [r12, #0x4]
+ strh r5, [r4, #0x0]
+ bl OS_GetMacAddress
+ ldr r0, _020A0030 ; =0x021C8EAC
+ mov r2, #0x0
+ strb r2, [r0, #0x0]
+ mov r1, #0x800
+ str r1, [sp, #0x0]
+ ldr r0, _020A0034 ; =0x02106218
+ ldr r1, _020A0038 ; =FUN_0209CD3C
+ ldr r4, [r0, #0x0]
+ ldr r0, _020A003C ; =0x021C9160
+ ldr r3, _020A0040 ; =0x021CA6E0
+ str r4, [sp, #0x4]
+ bl OS_CreateThread
+ mov r1, #0x800
+ ldr r0, _020A0034 ; =0x02106218
+ str r1, [sp, #0x0]
+ ldr r1, [r0, #0x0]
+ ldr r0, _020A0044 ; =0x021C90A0
+ str r1, [sp, #0x4]
+ ldr r1, _020A0048 ; =FUN_0209BA80
+ ldr r3, _020A004C ; =0x021C9EE0
+ mov r2, #0x0
+ bl OS_CreateThread
+ ldr r0, _020A003C ; =0x021C9160
+ bl OS_WakeupThreadDirect
+ ldr r0, _020A0044 ; =0x021C90A0
+ bl OS_WakeupThreadDirect
+ add sp, sp, #0x8
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+ .balign 4
+_0209FFD4: .word 0x02000BEC
+_0209FFD8: .word 0x021C8F24
+_0209FFDC: .word 0x6C078965
+_0209FFE0: .word 0x5D588B65
+_0209FFE4: .word 0x00269EC3
+_0209FFE8: .word 0x021C8EC8
+_0209FFEC: .word 0x021C8EF4
+_0209FFF0: .word FUN_020A0058
+_0209FFF4: .word 0x021C8EC4
+_0209FFF8: .word 0x021C8EB0
+_0209FFFC: .word 0x000005B4
+_020A0000: .word 0x021C8EE8
+_020A0004: .word 0x021C8ED8
+_020A0008: .word 0x021C8ECC
+_020A000C: .word 0x021C8EFC
+_020A0010: .word FUN_020A0050
+_020A0014: .word 0x00000F88
+_020A0018: .word 0x021C8F0C
+_020A001C: .word 0x021C8F10
+_020A0020: .word 0x021C8EE4
+_020A0024: .word 0x021C8EDC
+_020A0028: .word 0x021C8EBC
+_020A002C: .word 0x021C8F14
+_020A0030: .word 0x021C8EAC
+_020A0034: .word 0x02106218
+_020A0038: .word FUN_0209CD3C
+_020A003C: .word 0x021C9160
+_020A0040: .word 0x021CA6E0
+_020A0044: .word 0x021C90A0
+_020A0048: .word FUN_0209BA80
+_020A004C: .word 0x021C9EE0
+
+ arm_func_start FUN_020A0050
+FUN_020A0050: ; 0x020A0050
+ mov r0, #0x1
+ bx lr
+
+ arm_func_start FUN_020A0058
+FUN_020A0058: ; 0x020A0058
+ bx lr
+
+ arm_func_start FUN_020A005C
+FUN_020A005C:
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldr r0, _020A0094 ; =0x021C8ED8
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ bne _020A0084
+ bl OS_YieldThread
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+_020A0084:
+ bl OS_Sleep
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+ .balign 4
+_020A0094: .word 0x021C8ED8
+
+ arm_func_start FUN_020A0098
+FUN_020A0098: ; 0x020A0098
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0x4
+ ldr r1, _020A01B8 ; =0x021C8F04
+ ldr r5, _020A01BC ; =0x021C8EC0
+ ldr r1, [r1, #0x0]
+ ldr r3, _020A01C0 ; =0x021C8F1C
+ cmp r1, #0x0
+ mov r1, #0x0
+ movne r6, #0x1
+ ldr ip, _020A01C4 ; =0x021C8ED0
+ ldr r2, _020A01C8 ; =0x021C8ED4
+ moveq r6, #0x0
+ ldr lr, _020A01B8 ; =0x021C8F04
+ ldr r4, _020A01CC ; =0x021C8EE0
+ cmp r6, #0x0
+ str r1, [r12, #0x0]
+ str r1, [r3, #0x0]
+ str r1, [r3, #0x4]
+ str r1, [r2, #0x0]
+ addeq sp, sp, #0x4
+ str r0, [r5, #0x0]
+ str r1, [lr, #0x0]
+ str r1, [r4, #0x0]
+ ldmeqia sp!, {r4-r7,lr}
+ bxeq lr
+ ldr r0, _020A01D0 ; =0x021C8F78
+ mov r2, #0x60
+ bl MI_CpuFill8
+ ldr r0, _020A01D4 ; =0x021D3498
+ ldr r5, [r0, #0x8]
+ cmp r5, #0x0
+ beq _020A016C
+ mov r4, #0x0
+_020A011C:
+ ldr r1, [r5, #0xa4]
+ cmp r1, #0x0
+ beq _020A0160
+ ldr r0, [r1, #0x0]
+ cmp r0, #0x0
+ beq _020A0160
+ ldrb r0, [r1, #0x8]
+ cmp r0, #0xa
+ beq _020A0148
+ cmp r0, #0xb
+ strneb r4, [r1, #0x8]
+_020A0148:
+ ldr r0, [r1, #0x4]
+ cmp r0, #0x0
+ beq _020A0160
+ str r4, [r1, #0x4]
+ ldr r0, [r1, #0x0]
+ bl OS_WakeupThreadDirect
+_020A0160:
+ ldr r5, [r5, #0x68]
+ cmp r5, #0x0
+ bne _020A011C
+_020A016C:
+ ldr r6, _020A01D8 ; =0x021C9520
+ mov r7, #0x0
+ ldr r4, _020A01DC ; =0x021C8EF4
+ mov r5, r7
+_020A017C:
+ ldrh r0, [r6, #0x4]
+ cmp r0, #0x0
+ beq _020A0198
+ ldr r0, [r6, #0x34]
+ ldr r1, [r4, #0x0]
+ blx r1
+ strh r5, [r6, #0x4]
+_020A0198:
+ add r7, r7, #0x1
+ cmp r7, #0x8
+ add r6, r6, #0x38
+ blt _020A017C
+ bl FUN_020A01E0
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r7,lr}
+ bx lr
+ .balign 4
+_020A01B8: .word 0x021C8F04
+_020A01BC: .word 0x021C8EC0
+_020A01C0: .word 0x021C8F1C
+_020A01C4: .word 0x021C8ED0
+_020A01C8: .word 0x021C8ED4
+_020A01CC: .word 0x021C8EE0
+_020A01D0: .word 0x021C8F78
+_020A01D4: .word 0x021D3498
+_020A01D8: .word 0x021C9520
+_020A01DC: .word 0x021C8EF4
+
+ arm_func_start FUN_020A01E0
+FUN_020A01E0: ; 0x020A01E0
+ ldr ip, _020A01F4 ; =MI_CpuFill8
+ ldr r0, _020A01F8 ; =0x021CA6FC
+ mov r1, #0x0
+ mov r2, #0x170
+ bx r12
+ .balign 4
+_020A01F4: .word MI_CpuFill8
+_020A01F8: .word 0x021CA6FC
+
+ arm_func_start FUN_020A01FC
+FUN_020A01FC: ; 0x020A01FC
+ stmdb sp!, {r4-r6,lr}
+ mov r5, r0
+ bl OS_DisableInterrupts
+ ldr r4, _020A02E0 ; =0x021CA6FC
+ mov r6, #0x0
+ mov r2, r6
+ ldr r1, _020A02E4 ; =0x000003BD
+_020A0218:
+ ldrb r3, [r4, #0x5a]
+ cmp r3, #0x0
+ beq _020A0234
+ ldr r3, [r4, #0x50]
+ sub r3, r5, r3
+ cmp r3, r1
+ strgtb r2, [r4, #0x5a]
+_020A0234:
+ add r6, r6, #0x1
+ cmp r6, #0x4
+ add r4, r4, #0x5c
+ blt _020A0218
+ bl OS_RestoreInterrupts
+ ldr r0, _020A02E8 ; =0x021D3498
+ ldr r4, [r0, #0x8]
+ cmp r4, #0x0
+ ldmeqia sp!, {r4-r6,lr}
+ bxeq lr
+ mov r6, #0x0
+_020A0260:
+ ldr r1, [r4, #0xa4]
+ cmp r1, #0x0
+ beq _020A02CC
+ ldr r0, [r1, #0x0]
+ cmp r0, #0x0
+ beq _020A02CC
+ ldrb r0, [r1, #0x9]
+ cmp r0, #0x0
+ beq _020A02CC
+ ldrb r0, [r1, #0x8]
+ cmp r0, #0x4
+ bne _020A02CC
+ ldr r0, [r1, #0xc]
+ ldrb r0, [r0, #0x455]
+ cmp r0, #0x8
+ bhs _020A02CC
+ ldr r0, [r1, #0x10]
+ sub r0, r5, r0
+ cmp r0, #0xef
+ ble _020A02CC
+ ldr r0, [r1, #0x4]
+ cmp r0, #0x2
+ bne _020A02CC
+ strb r6, [r1, #0x8]
+ str r6, [r1, #0x4]
+ ldr r0, [r1, #0x0]
+ bl OS_WakeupThreadDirect
+_020A02CC:
+ ldr r4, [r4, #0x68]
+ cmp r4, #0x0
+ bne _020A0260
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+ .balign 4
+_020A02E0: .word 0x021CA6FC
+_020A02E4: .word 0x000003BD
+_020A02E8: .word 0x021D3498
+
+ arm_func_start FUN_020A02EC
+FUN_020A02EC:
+ stmdb sp!, {r4,lr}
+ mov r4, r0
+ ldr r0, _020A0318 ; =0x02000C04
+ bl OSi_ReferSymbol
+ ldr r0, _020A031C ; =0x021D3498
+ ldr r0, [r0, #0x4]
+ ldr r0, [r0, #0xa4]
+ cmp r0, #0x0
+ strneb r4, [r0, #0x9]
+ ldmia sp!, {r4,lr}
+ bx lr
+ .balign 4
+_020A0318: .word 0x02000C04
+_020A031C: .word 0x021D3498
+
+ arm_func_start FUN_020A0320
+FUN_020A0320: ; 0x020A0320
+ stmdb sp!, {r4,lr}
+ ldr r4, [r0, #0xc]
+ mov r0, #0x0
+ strb r0, [r4, #0x455]
+ ldr r0, [r4, #0x824]
+ cmp r0, #0x0
+ beq _020A0348
+ ldr r1, _020A0358 ; =0x021C8EF4
+ ldr r1, [r1, #0x0]
+ blx r1
+_020A0348:
+ mov r0, #0x0
+ str r0, [r4, #0x824]
+ ldmia sp!, {r4,lr}
+ bx lr
+ .balign 4
+_020A0358: .word 0x021C8EF4
+
+ arm_func_start FUN_020A035C
+FUN_020A035C: ; 0x020A035C
+ stmdb sp!, {r4-r6,lr}
+ sub sp, sp, #0x20
+ mov r5, r0
+ ldr r4, [r5, #0xc]
+ ldrb r0, [r4, #0x455]
+ cmp r0, #0x8
+ bne _020A03CC
+ mov r12, #0x0
+ mov r6, #0x15
+ mov lr, #0x3
+ mov r3, #0x2
+ mov r2, #0x1
+ add r1, sp, #0x4
+ mov r0, r4
+ strb r6, [sp, #0x4]
+ strb lr, [sp, #0x5]
+ strb r12, [sp, #0x6]
+ strb r12, [sp, #0x7]
+ strb r3, [sp, #0x8]
+ strb r2, [sp, #0x9]
+ strb r12, [sp, #0xa]
+ bl FUN_020A19F4
+ mov r2, #0x0
+ mov r1, r0
+ add r0, sp, #0x4
+ mov r3, r2
+ str r5, [sp, #0x0]
+ bl FUN_0209C1D4
+_020A03CC:
+ mov r0, #0x0
+ strb r0, [r4, #0x455]
+ add sp, sp, #0x20
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+
+ arm_func_start FUN_020A03E0
+FUN_020A03E0: ; 0x020A03E0
+ stmdb sp!, {r4-r11,lr}
+ sub sp, sp, #0x24
+ ldr r4, [sp, #0x48]
+ mov r9, r1
+ mov r1, r4
+ mov r10, r0
+ mov r0, #0x0
+ ldr r1, [r1, #0xc]
+ str r0, [sp, #0x8]
+ str r0, [sp, #0x1c]
+ str r0, [sp, #0x14]
+ str r0, [sp, #0x18]
+ mov r0, #0x17
+ str r0, [sp, #0xc]
+ mov r0, #0x3
+ str r4, [sp, #0x48]
+ str r1, [sp, #0x4]
+ mov r8, r2
+ add r6, r9, r3
+ str r0, [sp, #0x10]
+_020A0430:
+ ldr r0, _020A052C ; =0x00000B4F
+ ldr r1, _020A0530 ; =0x021C8EC8
+ cmp r6, r0
+ movgt r5, r0
+ movle r5, r6
+ ldr r1, [r1, #0x0]
+ add r0, r5, #0x19
+ blx r1
+ movs r7, r0
+ beq _020A051C
+ cmp r9, r5
+ movcs r4, r5
+ movcc r4, r9
+ mov r0, r10
+ add r1, r7, #0x5
+ mov r2, r4
+ sub r11, r5, r4
+ bl MI_CpuCopy8
+ add r1, r7, #0x5
+ mov r0, r8
+ add r1, r1, r4
+ mov r2, r11
+ add r10, r10, r4
+ sub r9, r9, r4
+ bl MI_CpuCopy8
+ ldr r0, [sp, #0xc]
+ mov r1, r7
+ strb r0, [r7, #0x0]
+ ldr r0, [sp, #0x10]
+ add r8, r8, r11
+ strb r0, [r7, #0x1]
+ ldr r0, [sp, #0x14]
+ strb r0, [r7, #0x2]
+ mov r0, r5, asr #0x8
+ strb r0, [r7, #0x3]
+ ldr r0, [sp, #0x4]
+ strb r5, [r7, #0x4]
+ bl FUN_020A19F4
+ ldr r1, [sp, #0x48]
+ ldr r2, [sp, #0x18]
+ mov r4, r0
+ str r1, [sp, #0x0]
+ mov r0, r7
+ mov r1, r4
+ mov r3, r2
+ bl FUN_0209C1D4
+ cmp r0, r4
+ ldr r1, _020A0534 ; =0x021C8EF4
+ mov r0, r7
+ ldr r1, [r1, #0x0]
+ ldrcc r5, [sp, #0x1c]
+ blx r1
+ ldr r0, [sp, #0x8]
+ subs r6, r6, r5
+ add r0, r0, r5
+ str r0, [sp, #0x8]
+ beq _020A051C
+ cmp r5, #0x0
+ bne _020A0430
+_020A051C:
+ ldr r0, [sp, #0x8]
+ add sp, sp, #0x24
+ ldmia sp!, {r4-r11,lr}
+ bx lr
+ .balign 4
+_020A052C: .word 0x00000B4F
+_020A0530: .word 0x021C8EC8
+_020A0534: .word 0x021C8EF4
+
+ arm_func_start FUN_020A0538
+FUN_020A0538: ; 0x020A0538
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ mov r5, r0
+ ldr r4, [r5, #0xc]
+ ldr r0, [r4, #0x824]
+ cmp r0, #0x0
+ beq _020A0560
+ ldrb r0, [r4, #0x456]
+ cmp r0, #0x0
+ bne _020A0568
+_020A0560:
+ mov r0, r5
+ bl FUN_020A05D4
+_020A0568:
+ ldr r1, [r4, #0x824]
+ cmp r1, #0x0
+ beq _020A0594
+ ldrb r0, [r4, #0x456]
+ cmp r0, #0x0
+ ldrne r1, [r4, #0x828]
+ ldrne r0, [r4, #0x82c]
+ addne sp, sp, #0x4
+ subne r0, r1, r0
+ ldmneia sp!, {r4-r5,lr}
+ bxne lr
+_020A0594:
+ cmp r1, #0x0
+ bne _020A05C4
+ ldrb r0, [r5, #0x8]
+ cmp r0, #0x4
+ bne _020A05B4
+ ldrb r0, [r4, #0x455]
+ cmp r0, #0x9
+ bne _020A05C4
+_020A05B4:
+ add sp, sp, #0x4
+ mvn r0, #0x0
+ ldmia sp!, {r4-r5,lr}
+ bx lr
+_020A05C4:
+ mov r0, #0x0
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,lr}
+ bx lr
+
+ arm_func_start FUN_020A05D4
+FUN_020A05D4: ; 0x020A05D4
+ stmdb sp!, {r4-r6,lr}
+ sub sp, sp, #0x8
+ mov r5, r0
+ ldr r4, [r5, #0xc]
+ ldr r0, [r4, #0x824]
+ cmp r0, #0x0
+ bne _020A0684
+ ldr r0, [r5, #0x44]
+ cmp r0, #0x5
+ addcc sp, sp, #0x8
+ ldmccia sp!, {r4-r6,lr}
+ bxcc lr
+ add r0, sp, #0x0
+ mov r1, r5
+ bl FUN_0209C6C0
+ ldrb r2, [r0, #0x3]
+ ldrb r0, [r0, #0x4]
+ ldr r1, _020A0730 ; =0x00004805
+ add r0, r0, r2, lsl #0x8
+ add r0, r0, #0x5
+ str r0, [sp, #0x0]
+ cmp r0, r1
+ movhi r0, #0x9
+ addhi sp, sp, #0x8
+ strhib r0, [r4, #0x455]
+ ldmhiia sp!, {r4-r6,lr}
+ bxhi lr
+ ldr r1, _020A0734 ; =0x021C8EC8
+ ldr r1, [r1, #0x0]
+ blx r1
+ str r0, [r4, #0x824]
+ ldr r0, [r4, #0x824]
+ cmp r0, #0x0
+ moveq r0, #0x9
+ addeq sp, sp, #0x8
+ streqb r0, [r4, #0x455]
+ ldmeqia sp!, {r4-r6,lr}
+ bxeq lr
+ ldr r1, [sp, #0x0]
+ mov r0, #0x0
+ str r1, [r4, #0x828]
+ str r0, [r4, #0x82c]
+ strb r0, [r4, #0x456]
+ b _020A0698
+_020A0684:
+ ldr r0, [r5, #0x44]
+ cmp r0, #0x0
+ addeq sp, sp, #0x8
+ ldmeqia sp!, {r4-r6,lr}
+ bxeq lr
+_020A0698:
+ add r0, sp, #0x0
+ mov r1, r5
+ bl FUN_0209C6C0
+ ldr r3, [r4, #0x828]
+ ldr r2, [r4, #0x82c]
+ ldr r1, [sp, #0x0]
+ sub r2, r3, r2
+ cmp r1, r2
+ strcs r2, [sp, #0x0]
+ movcs r6, #0x1
+ ldr r3, [r4, #0x824]
+ ldr r1, [r4, #0x82c]
+ ldr r2, [sp, #0x0]
+ add r1, r3, r1
+ movcc r6, #0x0
+ bl MI_CpuCopy8
+_020A06D8: ; 0x020A06D8
+ ldr r0, [sp, #0x0]
+ mov r1, r5
+ bl FUN_0209C580
+_020A06E4: ; 0x020A06E4
+ cmp r6, #0x0
+ beq _020A0714
+ ldr r1, [r4, #0x824]
+ mov r0, r4
+ bl FUN_020A16E8
+ ldrb r0, [r4, #0x456]
+ add sp, sp, #0x8
+ cmp r0, #0x0
+ moveq r0, #0x0
+ streq r0, [r4, #0x824]
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+_020A0714:
+ ldr r1, [r4, #0x82c]
+ ldr r0, [sp, #0x0]
+ add r0, r1, r0
+ str r0, [r4, #0x82c]
+ add sp, sp, #0x8
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+ .balign 4
+_020A0730: .word 0x00004805
+_020A0734: .word 0x021C8EC8
+
+ arm_func_start FUN_020A0738
+FUN_020A0738: ; 0x020A0738
+ stmdb sp!, {r4,lr}
+ ldr r4, [r1, #0xc]
+ ldr r2, [r4, #0x828]
+ ldr r1, [r4, #0x82c]
+ sub r2, r2, r1
+ cmp r0, r2
+ blo _020A077C
+ ldr r0, [r4, #0x824]
+ cmp r0, #0x0
+ beq _020A076C
+ ldr r1, _020A078C ; =0x021C8EF4
+ ldr r1, [r1, #0x0]
+ blx r1
+_020A076C:
+ mov r0, #0x0
+ str r0, [r4, #0x824]
+ ldmia sp!, {r4,lr}
+ bx lr
+_020A077C:
+ add r0, r1, r0
+ str r0, [r4, #0x82c]
+ ldmia sp!, {r4,lr}
+ bx lr
+ .balign 4
+_020A078C: .word 0x021C8EF4
+
+ arm_func_start FUN_020A0790
+FUN_020A0790: ; 0x020A0790
+ stmdb sp!, {r4-r6,lr}
+ mov r5, r1
+ ldr r4, [r5, #0xc]
+ mov r6, r0
+ ldr r12, [r4, #0x824]
+ cmp r12, #0x0
+ beq _020A0818
+ ldrb r0, [r4, #0x456]
+ cmp r0, #0x0
+ bne _020A0818
+ ldr r3, [r4, #0x82c]
+ ldr r1, [r4, #0x828]
+ mov r2, r5
+ add r0, r12, r3
+ sub r1, r1, r3
+ bl FUN_020A1974
+_020A07D0: ; 0x020A07D0
+ cmp r0, #0x0
+ beq _020A07FC
+ ldr r1, _020A0870 ; =0x021C8EF4
+ ldr r0, [r4, #0x824]
+ ldr r1, [r1, #0x0]
+ blx r1
+ mov r0, #0x0
+ str r0, [r4, #0x824]
+ str r0, [r6, #0x0]
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+_020A07FC:
+ ldr r1, [r4, #0x824]
+ mov r0, r4
+ bl FUN_020A16E8
+ ldrb r0, [r4, #0x456]
+ cmp r0, #0x0
+ moveq r0, #0x0
+ streq r0, [r4, #0x824]
+_020A0818:
+ ldr r0, [r4, #0x824]
+ cmp r0, #0x0
+ bne _020A084C
+_020A0824:
+ mov r0, r5
+ bl FUN_020A1528
+ cmp r0, #0x9
+ moveq r0, #0x0
+ streq r0, [r6, #0x0]
+ ldmeqia sp!, {r4-r6,lr}
+ bxeq lr
+ ldr r0, [r4, #0x824]
+ cmp r0, #0x0
+ beq _020A0824
+_020A084C:
+ ldr r1, [r4, #0x828]
+ ldr r0, [r4, #0x82c]
+ sub r0, r1, r0
+ str r0, [r6, #0x0]
+ ldr r1, [r4, #0x824]
+ ldr r0, [r4, #0x82c]
+ add r0, r1, r0
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+ .balign 4
+_020A0870: .word 0x021C8EF4
+
+ arm_func_start FUN_020A0874
+FUN_020A0874: ; 0x020A0874
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ mov r5, r0
+ ldrb r1, [r5, #0x8]
+ ldr r4, [r5, #0xc]
+ cmp r1, #0x4
+ beq _020A08A8
+ bl FUN_0209C990
+_020A0894: ; 0x020A0894
+ cmp r0, #0x0
+ addne sp, sp, #0x4
+ movne r0, #0x1
+ ldmneia sp!, {r4-r5,lr}
+ bxne lr
+_020A08A8:
+ mov r1, #0x0
+ strb r1, [r4, #0x455]
+ str r1, [r4, #0x1d4]
+ add r0, r4, #0x2ec
+ strb r1, [r4, #0x454]
+ bl FUN_020A41CC
+ add r0, r4, #0x3a4
+ bl FUN_020A3B8C
+ mov r0, r5
+ bl FUN_020A08DC
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,lr}
+ bx lr
+
+ arm_func_start FUN_020A08DC
+FUN_020A08DC: ; 0x020A08DC
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ mov r5, r0
+ ldr r4, [r5, #0xc]
+ bl FUN_020A0DE4
+_020A08F0:
+ mov r0, r5
+ bl FUN_020A1528
+ cmp r0, #0x9
+ addeq sp, sp, #0x4
+ moveq r0, #0x1
+ ldmeqia sp!, {r4-r5,lr}
+ bxeq lr
+ cmp r0, #0x4
+ beq _020A0920
+ ldrb r0, [r4, #0x31]
+ cmp r0, #0x0
+ beq _020A08F0
+_020A0920:
+ ldrb r0, [r4, #0x31]
+ cmp r0, #0x0
+ beq _020A095C
+ mov r0, r4
+ bl FUN_020A215C
+ mov r0, r5
+ bl FUN_020A0AF4
+_020A093C: ; 0x020A093C
+ cmp r0, #0x0
+ addne sp, sp, #0x4
+ movne r0, #0x1
+ ldmneia sp!, {r4-r5,lr}
+ bxne lr
+ mov r0, r5
+ bl FUN_020A0F94
+ b _020A09B4
+_020A095C:
+ mov r0, r5
+ bl FUN_020A0B2C
+ mov r0, r4
+ bl FUN_020A2364
+ ldrb r0, [r4, #0x30]
+ cmp r0, #0x0
+ beq _020A0988
+ ldrh r2, [r5, #0x18]
+ ldr r1, [r5, #0x1c]
+ mov r0, r4
+ bl FUN_020A3808
+_020A0988:
+ mov r0, r4
+ bl FUN_020A215C
+ mov r0, r5
+ bl FUN_020A0F94
+ mov r0, r5
+ bl FUN_020A0AF4
+_020A09A0: ; 0x020A09A0
+ cmp r0, #0x0
+ addne sp, sp, #0x4
+ movne r0, #0x1
+ ldmneia sp!, {r4-r5,lr}
+ bxne lr
+_020A09B4:
+ mov r0, #0x8
+ strb r0, [r4, #0x455]
+ mov r0, #0x0
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,lr}
+ bx lr
+
+ arm_func_start FUN_020A09CC
+FUN_020A09CC: ; 0x020A09CC
+ stmdb sp!, {r4-r9,lr}
+ sub sp, sp, #0x4
+ mov r9, r0
+ ldr r8, [r9, #0xc]
+ add r5, r8, #0x2ec
+ add r4, r8, #0x3a4
+ mov r7, #0x0
+ mov r6, #0x1
+_020A09EC:
+ mov r0, r9
+ bl FUN_0209CAC4
+ strb r7, [r8, #0x455]
+ str r7, [r8, #0x1d4]
+ mov r0, r5
+ strb r6, [r8, #0x454]
+ bl FUN_020A41CC
+ mov r0, r4
+ bl FUN_020A3B8C
+ mov r0, r9
+ bl FUN_020A0A58
+_020A0A18: ; 0x020A0A18
+ cmp r0, #0x0
+ moveq r0, #0x8
+ addeq sp, sp, #0x4
+ streqb r0, [r8, #0x455]
+ ldmeqia sp!, {r4-r9,lr}
+ bxeq lr
+ mov r0, r9
+ bl FUN_0209C884
+ ldrh r0, [r9, #0x1a]
+ strh r0, [r9, #0x18]
+ ldr r0, [r9, #0x20]
+ str r0, [r9, #0x1c]
+ b _020A09EC
+_020A0A4C: ; 0x020A0A4C
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r9,lr}
+ bx lr
+
+ arm_func_start FUN_020A0A58
+FUN_020A0A58:
+ stmdb sp!, {r4,lr}
+ mov r4, r0
+ bl FUN_020A1528
+ cmp r0, #0x1
+ movne r0, #0x1
+ ldmneia sp!, {r4,lr}
+ bxne lr
+ mov r0, r4
+ bl FUN_020A10F4
+_020A0A7C: ; 0x020A0A7C
+ cmp r0, #0x0
+ beq _020A0AB0
+ ldr r0, [r4, #0xc]
+ bl FUN_020A215C
+ mov r0, r4
+ bl FUN_020A0F94
+ mov r0, r4
+ bl FUN_020A0AF4
+_020A0A9C: ; 0x020A0A9C
+ cmp r0, #0x0
+ beq _020A0AE8
+ mov r0, #0x1
+ ldmia sp!, {r4,lr}
+ bx lr
+_020A0AB0:
+ mov r0, r4
+ bl FUN_020A1528
+ cmp r0, #0x5
+ movne r0, #0x1
+ ldmneia sp!, {r4,lr}
+ bxne lr
+ mov r0, r4
+ bl FUN_020A0AF4
+_020A0AD0: ; 0x020A0AD0
+ cmp r0, #0x0
+ movne r0, #0x1
+ ldmneia sp!, {r4,lr}
+ bxne lr
+ mov r0, r4
+ bl FUN_020A0F94
+_020A0AE8:
+ mov r0, #0x0
+ ldmia sp!, {r4,lr}
+ bx lr
+
+ arm_func_start FUN_020A0AF4
+FUN_020A0AF4:
+ stmdb sp!, {r4,lr}
+ mov r4, r0
+ bl FUN_020A1528
+ cmp r0, #0x7
+ movne r0, #0x1
+ ldmneia sp!, {r4,lr}
+ bxne lr
+ mov r0, r4
+ bl FUN_020A1528
+ cmp r0, #0x6
+ movne r0, #0x1
+ moveq r0, #0x0
+ ldmia sp!, {r4,lr}
+ bx lr
+
+ arm_func_start FUN_020A0B2C
+FUN_020A0B2C: ; 0x020A0B2C
+ stmdb sp!, {r4-r11,lr}
+ sub sp, sp, #0xc
+ mov r11, r0
+ ldr r10, [r11, #0xc]
+ mov r0, #0x3
+ strb r0, [r10, #0x0]
+ mov r0, #0x0
+ strb r0, [r10, #0x1]
+ add r0, r10, #0x2
+ mov r1, #0x2e
+ bl FUN_020A13E0
+ ldr r4, [r10, #0x594]
+ ldr r0, _020A0DD4 ; =0x021C8EC8
+ mov r1, r4, lsl #0x1
+ ldr r2, [r0, #0x0]
+ add r1, r1, r1, lsr #0x1f
+ mov r0, r4
+ mov r6, r1, asr #0x1
+ blx r2
+ movs r5, r0
+ moveq r0, #0x9
+ addeq sp, sp, #0xc
+ streqb r0, [r10, #0x455]
+ ldmeqia sp!, {r4-r11,lr}
+ bxeq lr
+ mov r0, #0x0
+ strb r0, [r5, #0x0]
+ mov r2, #0x2
+ add r0, r5, #0x2
+ sub r1, r4, #0x33
+ strb r2, [r5, #0x1]
+ bl FUN_020A13E0
+ add r1, r5, r4
+ mov r0, r10
+ sub r3, r4, #0x31
+ mov r7, #0x0
+ sub r1, r1, #0x30
+ mov r2, #0x30
+ strb r7, [r5, r3]
+ bl MI_CpuCopy8
+ ldr r1, _020A0DD4 ; =0x021C8EC8
+ mov r0, r6, lsl #0x3
+ ldr r1, [r1, #0x0]
+ blx r1
+ movs r9, r0
+ bne _020A0C08
+ ldr r1, _020A0DD8 ; =0x021C8EF4
+ mov r0, r5
+ ldr r1, [r1, #0x0]
+ blx r1
+ mov r0, #0x9
+ add sp, sp, #0xc
+ strb r0, [r10, #0x455]
+ ldmia sp!, {r4-r11,lr}
+ bx lr
+_020A0C08:
+ add r0, r9, r6, lsl #0x1
+ add r8, r0, r6, lsl #0x1
+ mov r1, r5
+ mov r2, r4
+ mov r3, r6
+ str r0, [sp, #0x4]
+ add r7, r8, r6, lsl #0x1
+ bl FUN_020A4B50
+ ldr r1, _020A0DDC ; =0x00000598
+ ldr r2, [r10, #0x5a0]
+ mov r0, r8
+ add r1, r10, r1
+ mov r3, r6
+ bl FUN_020A4B50
+ ldr r1, _020A0DE0 ; =0x00000494
+ mov r0, r7
+ mov r2, r4
+ add r1, r10, r1
+ mov r3, r6
+ bl FUN_020A4B50
+ bl FUN_020A36EC
+ mov r3, r6
+ mov r6, r0
+ ldr r1, [sp, #0x4]
+ mov r2, r8
+ mov r0, r9
+ str r7, [sp, #0x0]
+ bl FUN_020A507C
+ mov r0, r6
+ bl FUN_020A36B4
+ ldr r1, _020A0DD4 ; =0x021C8EC8
+ add r0, r4, #0x49
+ ldr r1, [r1, #0x0]
+ blx r1
+ movs r6, r0
+ bne _020A0CCC
+ ldr r1, _020A0DD8 ; =0x021C8EF4
+ mov r0, r5
+ ldr r1, [r1, #0x0]
+ blx r1
+ ldr r1, _020A0DD8 ; =0x021C8EF4
+ mov r0, r9
+ ldr r1, [r1, #0x0]
+ blx r1
+ mov r0, #0x9
+ add sp, sp, #0xc
+ strb r0, [r10, #0x455]
+ ldmia sp!, {r4-r11,lr}
+ bx lr
+_020A0CCC:
+ mov r0, #0x16
+ strb r0, [r6, #0x0]
+ mov r1, #0x3
+ add r0, r4, #0x4
+ strb r1, [r6, #0x1]
+ mov r1, #0x0
+ strb r1, [r6, #0x2]
+ mov r1, r0, asr #0x8
+ strb r1, [r6, #0x3]
+ add r2, r6, #0x9
+ strb r0, [r6, #0x4]
+ mov r0, #0x10
+ strb r0, [r6, #0x5]
+ mov r0, r4, asr #0x10
+ strb r0, [r6, #0x6]
+ mov r0, r4, asr #0x8
+ strb r0, [r6, #0x7]
+ mov r0, r2
+ strb r4, [r6, #0x8]
+ ands r1, r4, #0x1
+ beq _020A0D38
+ add r0, r4, r4, lsr #0x1f
+ mov r0, r0, asr #0x1
+ mov r0, r0, lsl #0x1
+ ldrh r1, [r9, r0]
+ add r0, r2, #0x1
+ strb r1, [r2, #0x0]
+_020A0D38:
+ add r1, r4, r4, lsr #0x1f
+ mov r1, r1, asr #0x1
+ subs r7, r1, #0x1
+ bmi _020A0D70
+_020A0D48:
+ mov r3, r7, lsl #0x1
+ ldrh r1, [r9, r3]
+ add r2, r0, #0x1
+ subs r7, r7, #0x1
+ mov r1, r1, asr #0x8
+ strb r1, [r0, #0x0]
+ ldrh r1, [r9, r3]
+ add r0, r0, #0x2
+ strb r1, [r2, #0x0]
+ bpl _020A0D48
+_020A0D70:
+ mov r2, #0x0
+ mov r0, r6
+ mov r3, r2
+ add r1, r4, #0x9
+ str r11, [sp, #0x0]
+ bl FUN_0209C1D4
+ mov r0, r10
+ add r1, r6, #0x5
+ add r2, r4, #0x4
+ bl FUN_020A1944
+ ldr r1, _020A0DD8 ; =0x021C8EF4
+ mov r0, r6
+ ldr r1, [r1, #0x0]
+ blx r1
+ ldr r1, _020A0DD8 ; =0x021C8EF4
+ mov r0, r9
+ ldr r1, [r1, #0x0]
+ blx r1
+ ldr r1, _020A0DD8 ; =0x021C8EF4
+ mov r0, r5
+ ldr r1, [r1, #0x0]
+ blx r1
+ add sp, sp, #0xc
+ ldmia sp!, {r4-r11,lr}
+ bx lr
+ .balign 4
+_020A0DD4: .word 0x021C8EC8
+_020A0DD8: .word 0x021C8EF4
+_020A0DDC: .word 0x00000598
+_020A0DE0: .word 0x00000494
+
+ arm_func_start FUN_020A0DE4
+FUN_020A0DE4: ; 0x020A0DE4
+ stmdb sp!, {r4-r8,lr}
+ sub sp, sp, #0x8
+ ldr r1, _020A0F88 ; =0x021C8EC8
+ mov r8, r0
+ ldr r1, [r1, #0x0]
+ mov r0, #0x98
+ ldr r7, [r8, #0xc]
+ blx r1
+ movs r6, r0
+ moveq r0, #0x9
+ addeq sp, sp, #0x8
+ streqb r0, [r7, #0x455]
+ ldmeqia sp!, {r4-r8,lr}
+ bxeq lr
+ mov r0, #0x3
+ strb r0, [r6, #0x9]
+ add r5, r6, #0x9
+ mov r0, #0x0
+ strb r0, [r5, #0x1]
+ bl FUN_020A375C
+ mov r1, r0, lsr #0x18
+ strb r1, [r7, #0x34]
+ mov r1, r0, lsr #0x10
+ strb r1, [r7, #0x35]
+ mov r1, r0, lsr #0x8
+ strb r1, [r7, #0x36]
+ strb r0, [r7, #0x37]
+ add r0, r7, #0x38
+ mov r1, #0x1c
+ bl FUN_020A13E0
+ add r0, r7, #0x34
+ add r1, r5, #0x2
+ mov r2, #0x20
+ bl MI_CpuCopy8
+ ldrh r2, [r8, #0x18]
+ ldr r1, [r8, #0x1c]
+ mov r0, r7
+ bl FUN_020A3908
+ ldrb r0, [r7, #0x30]
+ cmp r0, #0x0
+ moveq r0, #0x0
+ streqb r0, [r5, #0x22]
+ addeq r5, r5, #0x23
+ beq _020A0EAC
+ mov r2, #0x20
+ add r0, r7, #0x74
+ add r1, r5, #0x23
+ strb r2, [r5, #0x22]
+ bl MI_CpuCopy8
+ add r5, r5, #0x43
+_020A0EAC:
+ mov r4, #0x0
+ strb r4, [r5, #0x0]
+ mov r0, #0x4
+ strb r0, [r5, #0x1]
+ ldr r2, _020A0F8C ; =0x0210623C
+ add r5, r5, #0x2
+_020A0EC4:
+ mov r3, r4, lsl #0x1
+ ldrh r0, [r2, r3]
+ add r4, r4, #0x1
+ add r1, r5, #0x1
+ mov r0, r0, asr #0x8
+ strb r0, [r5, #0x0]
+ ldrh r0, [r2, r3]
+ cmp r4, #0x2
+ add r5, r5, #0x2
+ strb r0, [r1, #0x0]
+ blo _020A0EC4
+ mov r3, #0x1
+ mov r2, #0x0
+ strb r3, [r5, #0x0]
+ add r0, r5, #0x2
+ sub r0, r0, r6
+ sub r4, r0, #0x5
+ strb r2, [r5, #0x1]
+ sub r1, r4, #0x4
+ mov r0, #0x16
+ strb r0, [r6, #0x0]
+ mov r0, #0x3
+ strb r0, [r6, #0x1]
+ strb r2, [r6, #0x2]
+ mov r0, r4, asr #0x8
+ strb r0, [r6, #0x3]
+ strb r4, [r6, #0x4]
+ strb r3, [r6, #0x5]
+ mov r0, r1, asr #0x10
+ strb r0, [r6, #0x6]
+ mov r0, r1, asr #0x8
+ strb r0, [r6, #0x7]
+ strb r1, [r6, #0x8]
+ mov r0, r6
+ mov r3, r2
+ add r1, r4, #0x5
+ str r8, [sp, #0x0]
+ bl FUN_0209C1D4
+ mov r0, r7
+ mov r2, r4
+ add r1, r6, #0x5
+ bl FUN_020A1944
+ ldr r1, _020A0F90 ; =0x021C8EF4
+ mov r0, r6
+ ldr r1, [r1, #0x0]
+ blx r1
+ add sp, sp, #0x8
+ ldmia sp!, {r4-r8,lr}
+ bx lr
+ .balign 4
+_020A0F88: .word 0x021C8EC8
+_020A0F8C: .word 0x0210623C
+_020A0F90: .word 0x021C8EF4
+
+ arm_func_start FUN_020A0F94
+FUN_020A0F94:
+ stmdb sp!, {r4-r6,lr}
+ sub sp, sp, #0x8
+ ldr r1, _020A10EC ; =0x021C8EC8
+ mov r6, r0
+ ldr r1, [r1, #0x0]
+ mov r0, #0x83
+ ldr r5, [r6, #0xc]
+ blx r1
+ movs r4, r0
+ moveq r0, #0x9
+ addeq sp, sp, #0x8
+ streqb r0, [r5, #0x455]
+ ldmeqia sp!, {r4-r6,lr}
+ bxeq lr
+ mov r0, #0x14
+ strb r0, [r4, #0x0]
+ mov r0, #0x3
+ strb r0, [r4, #0x1]
+ mov r1, #0x0
+ strb r1, [r4, #0x2]
+ strb r1, [r4, #0x3]
+ mov r3, #0x1
+ strb r3, [r4, #0x4]
+ add r0, r5, #0x1cc
+ mov r2, #0x8
+ strb r3, [r4, #0x5]
+ bl MI_CpuFill8
+ mov r0, #0x16
+ strb r0, [r4, #0x6]
+ mov r0, #0x3
+ strb r0, [r4, #0x7]
+ mov r1, #0x0
+ strb r1, [r4, #0x8]
+ strb r1, [r4, #0x9]
+ mov r0, #0x28
+ strb r0, [r4, #0xa]
+ mov r0, #0x14
+ strb r0, [r4, #0xb]
+ strb r1, [r4, #0xc]
+ strb r1, [r4, #0xd]
+ mov r3, #0x24
+ add r0, r5, #0x3a4
+ add r1, r5, #0x3fc
+ mov r2, #0x58
+ strb r3, [r4, #0xe]
+ bl MI_CpuCopy8
+ mov r0, r5
+ add r1, r4, #0xf
+ mov r2, #0x0
+ bl FUN_020A2034
+ add r0, r5, #0x3fc
+ add r1, r5, #0x3a4
+ mov r2, #0x58
+ bl MI_CpuCopy8
+ add r0, r5, #0x2ec
+ add r1, r5, #0x348
+ mov r2, #0x5c
+ bl MI_CpuCopy8
+ mov r0, r5
+ add r1, r4, #0x1f
+ mov r2, #0x0
+ bl FUN_020A1F4C
+ add r0, r5, #0x348
+ add r1, r5, #0x2ec
+ mov r2, #0x5c
+ bl MI_CpuCopy8
+ mov r0, r5
+ add r1, r4, #0xb
+ mov r2, #0x28
+ bl FUN_020A1944
+ mov r0, r5
+ add r1, r4, #0x6
+ bl FUN_020A19F4
+ mov r2, #0x0
+ add r1, r0, #0x6
+ mov r0, r4
+ mov r3, r2
+ str r6, [sp, #0x0]
+ bl FUN_0209C1D4
+ ldr r1, _020A10F0 ; =0x021C8EF4
+ mov r0, r4
+ ldr r1, [r1, #0x0]
+ blx r1
+ add sp, sp, #0x8
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+ .balign 4
+_020A10EC: .word 0x021C8EC8
+_020A10F0: .word 0x021C8EF4
+
+ arm_func_start FUN_020A10F4
+FUN_020A10F4:
+ stmdb sp!, {r4-r9,lr}
+ sub sp, sp, #0x4
+ mov r9, r0
+ ldr r7, [r9, #0xc]
+ ldr r4, [r7, #0x820]
+ cmp r4, #0x0
+ ldrne r8, [r4, #0x0]
+ moveq r8, #0x0
+ bl FUN_020A375C
+ mov r1, r0, lsr #0x18
+ strb r1, [r7, #0x54]
+ mov r1, r0, lsr #0x10
+ strb r1, [r7, #0x55]
+ mov r1, r0, lsr #0x8
+ strb r1, [r7, #0x56]
+ strb r0, [r7, #0x57]
+ add r0, r7, #0x58
+ mov r1, #0x1c
+ bl FUN_020A13E0
+ ldr r1, _020A1360 ; =0x021C8EC8
+ add r0, r8, #0x9d
+ ldr r1, [r1, #0x0]
+ blx r1
+ movs r6, r0
+ moveq r0, #0x9
+ streqb r0, [r7, #0x455]
+ addeq sp, sp, #0x4
+ moveq r0, #0x1
+ ldmeqia sp!, {r4-r9,lr}
+ bxeq lr
+ mov r0, #0x2
+ add r5, r6, #0x5
+ strb r0, [r6, #0x5]
+ mov r3, #0x0
+ strb r3, [r5, #0x1]
+ strb r3, [r5, #0x2]
+ mov r0, #0x46
+ strb r0, [r5, #0x3]
+ mov r0, #0x3
+ strb r0, [r5, #0x4]
+ add r0, r7, #0x54
+ add r1, r5, #0x6
+ mov r2, #0x20
+ strb r3, [r5, #0x5]
+ bl MI_CpuCopy8
+ mov r2, #0x20
+ strb r2, [r5, #0x26]
+ ldrb r0, [r7, #0x30]
+ cmp r0, #0x0
+ beq _020A11D8
+ add r0, r7, #0x74
+ add r1, r5, #0x27
+ bl MI_CpuCopy8
+ mov r0, #0x1
+ strb r0, [r7, #0x31]
+ add r5, r5, #0x47
+ b _020A1238
+_020A11D8:
+ add r0, r5, #0x27
+ mov r1, #0x1c
+ bl FUN_020A13E0
+ ldr r0, _020A1364 ; =0x021CA6E4
+ add r2, r5, #0x46
+ ldr r3, [r0, #0x0]
+ add r1, r7, #0x74
+ mov r0, r3, lsr #0x18
+ strb r0, [r5, #0x43]
+ mov r0, r3, lsr #0x10
+ strb r0, [r5, #0x44]
+ mov r0, r3, lsr #0x8
+ strb r0, [r5, #0x45]
+ add r5, r5, #0x47
+ sub r0, r5, #0x20
+ strb r3, [r2, #0x0]
+ mov r2, #0x20
+ bl MI_CpuCopy8
+ ldr r0, _020A1364 ; =0x021CA6E4
+ mov r1, #0x0
+ ldr r2, [r0, #0x0]
+ add r2, r2, #0x1
+ str r2, [r0, #0x0]
+ strb r1, [r7, #0x31]
+_020A1238:
+ ldrh r2, [r7, #0x32]
+ mov r0, #0x0
+ mov r2, r2, asr #0x8
+ strb r2, [r5, #0x0]
+ ldrh r2, [r7, #0x32]
+ strb r2, [r5, #0x1]
+ strb r0, [r5, #0x2]
+ ldrb r0, [r7, #0x31]
+ add r5, r5, #0x3
+ cmp r0, #0x0
+ bne _020A12EC
+ cmp r8, #0x0
+ beq _020A12D0
+ mov r0, #0xb
+ add r2, r8, #0x6
+ strb r0, [r5, #0x0]
+ mov r0, r2, asr #0x10
+ strb r0, [r5, #0x1]
+ mov r0, r2, asr #0x8
+ strb r0, [r5, #0x2]
+ add r1, r8, #0x3
+ strb r2, [r5, #0x3]
+ mov r0, r1, asr #0x10
+ strb r0, [r5, #0x4]
+ mov r0, r1, asr #0x8
+ strb r0, [r5, #0x5]
+ strb r1, [r5, #0x6]
+ mov r0, r8, asr #0x10
+ strb r0, [r5, #0x7]
+ mov r0, r8, asr #0x8
+ strb r0, [r5, #0x8]
+ strb r8, [r5, #0x9]
+ add r5, r5, #0xa
+ ldr r0, [r4, #0x4]
+ mov r1, r5
+ mov r2, r8
+ bl MI_CpuCopy8
+ add r5, r5, r8
+_020A12D0:
+ mov r0, #0xe
+ strb r0, [r5, #0x0]
+ mov r1, #0x0
+ strb r1, [r5, #0x1]
+ strb r1, [r5, #0x2]
+ strb r1, [r5, #0x3]
+ add r5, r5, #0x4
+_020A12EC:
+ mov r0, #0x16
+ sub r1, r5, r6
+ sub r4, r1, #0x5
+ strb r0, [r6, #0x0]
+ mov r0, #0x3
+ strb r0, [r6, #0x1]
+ mov r0, #0x0
+ strb r0, [r6, #0x2]
+ mov r0, r4, asr #0x8
+ strb r0, [r6, #0x3]
+ mov r0, r7
+ mov r2, r4
+ add r1, r6, #0x5
+ strb r4, [r6, #0x4]
+ bl FUN_020A1944
+ mov r2, #0x0
+ mov r0, r6
+ mov r3, r2
+ add r1, r4, #0x5
+ str r9, [sp, #0x0]
+ bl FUN_0209C1D4
+ ldr r1, _020A1368 ; =0x021C8EF4
+ mov r0, r6
+ ldr r1, [r1, #0x0]
+ blx r1
+ ldrb r0, [r7, #0x31]
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r9,lr}
+ bx lr
+ .balign 4
+_020A1360: .word 0x021C8EC8
+_020A1364: .word 0x021CA6E4
+_020A1368: .word 0x021C8EF4
+
+ arm_func_start FUN_020A136C
+FUN_020A136C:
+ stmdb sp!, {r4-r6,lr}
+ sub sp, sp, #0x60
+ mov r6, r0
+ add r0, sp, #0x0
+ mov r5, r1
+ bl FUN_020A41CC
+ bl OS_DisableInterrupts
+ mov r4, r0
+ ldr r1, _020A13D8 ; =0x021CA6E8
+ add r0, sp, #0x0
+ mov r2, #0x14
+ bl FUN_020A410C
+ mov r1, r6
+ mov r2, r5
+ add r0, sp, #0x0
+ bl FUN_020A410C
+ ldr r1, _020A13D8 ; =0x021CA6E8
+ add r0, sp, #0x0
+ bl FUN_020A4098
+ mov r0, r4
+ bl OS_RestoreInterrupts
+ ldr r0, _020A13DC ; =0x021CA6E0
+ mov r1, #0x1
+ strb r1, [r0, #0x0]
+ add sp, sp, #0x60
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+ .balign 4
+_020A13D8: .word 0x021CA6E8
+_020A13DC: .word 0x021CA6E0
+
+ arm_func_start FUN_020A13E0
+FUN_020A13E0: ; 0x020A13E0
+ stmdb sp!, {r4-r11,lr}
+ sub sp, sp, #0x7c
+ ldr r2, _020A1518 ; =0x021CA6E0
+ mov r10, r0
+ ldrb r0, [r2, #0x0]
+ mov r9, r1
+ cmp r0, #0x0
+ bne _020A1448
+ ldr r2, _020A151C ; =0x021C8F24
+ add r0, sp, #0x4
+ ldr r4, [r2, #0x8]
+ ldr r3, [r2, #0x0]
+ ldr r1, [r2, #0x4]
+ umull r6, r5, r4, r3
+ mla r5, r4, r1, r5
+ ldr r1, [r2, #0xc]
+ ldr r4, [r2, #0x10]
+ mla r5, r1, r3, r5
+ adds r4, r4, r6
+ ldr r3, [r2, #0x14]
+ mov r1, #0x4
+ adc r3, r3, r5
+ str r4, [r2, #0x0]
+ str r3, [r2, #0x4]
+ str r3, [sp, #0x4]
+ bl FUN_020A136C
+_020A1448:
+ cmp r9, #0x0
+ mov r7, #0x0
+ addle sp, sp, #0x7c
+ mov r1, #0x14
+ ldmleia sp!, {r4-r11,lr}
+ bxle lr
+ add r6, sp, #0x1c
+ mov r11, r1
+ str r7, [sp, #0x0]
+ mov r5, #0x1
+ mov r4, #0x13
+_020A1474:
+ cmp r1, #0x14
+ bne _020A14EC
+ mov r0, r6
+ bl FUN_020A41CC
+ bl OS_DisableInterrupts
+ mov r8, r0
+ ldr r1, _020A1520 ; =0x021CA6E8
+ mov r0, r6
+ mov r2, r11
+ bl FUN_020A410C
+ mov r0, r6
+ add r1, sp, #0x8
+ bl FUN_020A405C
+ ldr r2, _020A1524 ; =0x021CA6FB
+ mov r12, r5
+ mov lr, r4
+ add r3, sp, #0x1b
+_020A14B8:
+ ldrb r1, [r2, #0x0]
+ ldrb r0, [r3], #-0x1
+ subs lr, lr, #0x1
+ add r0, r1, r0
+ add r0, r12, r0
+ strb r0, [r2, #0x0]
+ mov r12, r0, lsr #0x8
+ sub r2, r2, #0x1
+ bpl _020A14B8
+ str r0, [sp, #0x4]
+ mov r0, r8
+ bl OS_RestoreInterrupts
+ ldr r1, [sp, #0x0]
+_020A14EC:
+ add r0, sp, #0x8
+ ldrb r0, [r0, r1]
+ add r1, r1, #0x1
+ cmp r0, #0x0
+ strneb r0, [r10, r7]
+ addne r7, r7, #0x1
+ cmp r7, r9
+ blt _020A1474
+ add sp, sp, #0x7c
+ ldmia sp!, {r4-r11,lr}
+ bx lr
+ .balign 4
+_020A1518: .word 0x021CA6E0
+_020A151C: .word 0x021C8F24
+_020A1520: .word 0x021CA6E8
+_020A1524: .word 0x021CA6FB
+
+ arm_func_start FUN_020A1528
+FUN_020A1528: ; 0x020A1528
+ stmdb sp!, {r4-r6,lr}
+ sub sp, sp, #0x8
+ mov r5, r0
+ ldr r4, [r5, #0xc]
+ add r6, sp, #0x0
+_020A153C:
+ mov r0, r6
+ mov r1, r5
+ bl FUN_0209C6C0
+ ldr r1, [sp, #0x0]
+ cmp r1, #0x0
+ moveq r0, #0x9
+ addeq sp, sp, #0x8
+ streqb r0, [r4, #0x455]
+ ldmeqia sp!, {r4-r6,lr}
+ bxeq lr
+ cmp r1, #0x5
+ blo _020A153C
+ ldrb r1, [r0, #0x0]
+ cmp r1, #0x80
+ bne _020A1634
+ ldrb r1, [r4, #0x454]
+ cmp r1, #0x0
+ beq _020A1628
+ ldrb r1, [r4, #0x455]
+ cmp r1, #0x0
+ bne _020A1628
+ ldrb r2, [r0, #0x1]
+ mov r1, r5
+ mov r0, #0x2
+ str r2, [sp, #0x0]
+ bl FUN_0209C580
+ ldr r1, _020A16DC ; =0x021C8EC8
+ ldr r0, [sp, #0x0]
+ ldr r1, [r1, #0x0]
+ blx r1
+ movs r6, r0
+ moveq r0, #0x9
+ addeq sp, sp, #0x8
+ streqb r0, [r4, #0x455]
+ ldmeqia sp!, {r4-r6,lr}
+ bxeq lr
+ ldr r1, [sp, #0x0]
+ mov r2, r5
+ bl FUN_020A1974
+_020A15D8: ; 0x020A15D8
+ cmp r0, #0x0
+ bne _020A15FC
+ ldrb r0, [r6, #0x0]
+ cmp r0, #0x1
+ bne _020A15FC
+ mov r0, r4
+ add r1, r6, #0x1
+ bl FUN_020A2774
+ b _020A1604
+_020A15FC:
+ mov r0, #0x9
+ strb r0, [r4, #0x455]
+_020A1604:
+ ldr r2, [sp, #0x0]
+ mov r0, r4
+ mov r1, r6
+ bl FUN_020A1944
+ ldr r1, _020A16E0 ; =0x021C8EF4
+ mov r0, r6
+ ldr r1, [r1, #0x0]
+ blx r1
+ b _020A16CC
+_020A1628:
+ mov r0, #0x9
+ strb r0, [r4, #0x455]
+ b _020A16CC
+_020A1634:
+ ldrb r2, [r0, #0x3]
+ ldrb r0, [r0, #0x4]
+ ldr r1, _020A16E4 ; =0x00004805
+ add r0, r0, r2, lsl #0x8
+ add r0, r0, #0x5
+ str r0, [sp, #0x0]
+ cmp r0, r1
+ movhi r0, #0x9
+ addhi sp, sp, #0x8
+ strhib r0, [r4, #0x455]
+ ldmhiia sp!, {r4-r6,lr}
+ bxhi lr
+ ldr r1, _020A16DC ; =0x021C8EC8
+ ldr r1, [r1, #0x0]
+ blx r1
+ movs r6, r0
+ moveq r0, #0x9
+ addeq sp, sp, #0x8
+ streqb r0, [r4, #0x455]
+ ldmeqia sp!, {r4-r6,lr}
+ bxeq lr
+ ldr r1, [sp, #0x0]
+ mov r2, r5
+ bl FUN_020A1974
+_020A1694: ; 0x020A1694
+ cmp r0, #0x0
+ beq _020A16C0
+ ldr r1, _020A16E0 ; =0x021C8EF4
+ mov r0, r6
+ ldr r1, [r1, #0x0]
+ blx r1
+ mov r0, #0x9
+ add sp, sp, #0x8
+ strb r0, [r4, #0x455]
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+_020A16C0:
+ mov r0, r4
+ mov r1, r6
+ bl FUN_020A16E8
+_020A16CC:
+ ldrb r0, [r4, #0x455]
+ add sp, sp, #0x8
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+ .balign 4
+_020A16DC: .word 0x021C8EC8
+_020A16E0: .word 0x021C8EF4
+_020A16E4: .word 0x00004805
+
+ arm_func_start FUN_020A16E8
+FUN_020A16E8: ; 0x020A16E8
+ stmdb sp!, {r4-r8,lr}
+ mov r8, r0
+ ldrb r0, [r8, #0x455]
+ mov r7, r1
+ cmp r0, #0x9
+ bne _020A1718
+ ldr r1, _020A1940 ; =0x021C8EF4
+ mov r0, r7
+ ldr r1, [r1, #0x0]
+ blx r1
+ ldmia sp!, {r4-r8,lr}
+ bx lr
+_020A1718:
+ ldrb r2, [r7, #0x3]
+ ldrb r1, [r7, #0x4]
+ add r0, r0, #0xf9
+ and r0, r0, #0xff
+ add r1, r1, r2, lsl #0x8
+ cmp r0, #0x1
+ add r5, r1, #0x5
+ ldrb r4, [r7, #0x0]
+ bhi _020A1744
+ cmp r4, #0x15
+ bne _020A1754
+_020A1744:
+ cmp r4, #0x15
+ bne _020A1764
+ cmp r5, #0x7
+ bls _020A1764
+_020A1754:
+ mov r0, r8
+ mov r1, r7
+ bl FUN_020A1C08
+ mov r5, r0
+_020A1764:
+ sub r0, r4, #0x14
+ cmp r0, #0x3
+ add r6, r7, #0x5
+ sub r5, r5, #0x5
+ addls pc, pc, r0, lsl #0x2
+ b _020A1920
+_020A177C: ; 0x020A177C
+ b _020A178C
+_020A1780: ; 0x020A1780
+ b _020A17BC
+_020A1784: ; 0x020A1784
+ b _020A17D0
+_020A1788: ; 0x020A1788
+ b _020A18FC
+_020A178C:
+ ldr r0, [r8, #0x1d4]
+ cmp r0, #0x0
+ moveq r0, #0x9
+ streqb r0, [r8, #0x455]
+ beq _020A1928
+ add r0, r8, #0x2e4
+ mov r1, #0x0
+ mov r2, #0x8
+ bl MI_CpuFill8
+ mov r0, #0x7
+ strb r0, [r8, #0x455]
+ b _020A1928
+_020A17BC:
+ ldrb r0, [r6, #0x0]
+ cmp r0, #0x2
+ moveq r0, #0x9
+ streqb r0, [r8, #0x455]
+ b _020A1928
+_020A17D0:
+ ldrb r1, [r6, #0x1]
+ ldrb r0, [r6, #0x2]
+ ldrb r3, [r6, #0x0]
+ ldrb r2, [r6, #0x3]
+ mov r1, r1, lsl #0x10
+ add r0, r1, r0, lsl #0x8
+ cmp r3, #0xb
+ add r4, r2, r0
+ add r6, r6, #0x4
+ bgt _020A1824
+ cmp r3, #0xb
+ bge _020A1898
+ cmp r3, #0x2
+ bgt _020A18C4
+ cmp r3, #0x1
+ blt _020A18C4
+ cmp r3, #0x1
+ beq _020A1850
+ cmp r3, #0x2
+ beq _020A1888
+ b _020A18C4
+_020A1824:
+ cmp r3, #0x14
+ bgt _020A18C4
+ cmp r3, #0xe
+ blt _020A18C4
+ cmp r3, #0xe
+ beq _020A18A8
+ cmp r3, #0x10
+ beq _020A1878
+ cmp r3, #0x14
+ beq _020A18B4
+ b _020A18C4
+_020A1850:
+ ldrb r0, [r8, #0x454]
+ cmp r0, #0x0
+ beq _020A18CC
+ ldrb r0, [r8, #0x455]
+ cmp r0, #0x0
+ bne _020A18CC
+ mov r0, r8
+ mov r1, r6
+ bl FUN_020A26D0
+ b _020A18CC
+_020A1878:
+ mov r0, r8
+ mov r1, r6
+ bl FUN_020A211C
+ b _020A18CC
+_020A1888:
+ mov r0, r8
+ mov r1, r6
+ bl FUN_020A2914
+ b _020A18CC
+_020A1898:
+ mov r0, r8
+ mov r1, r6
+ bl FUN_020A29DC
+ b _020A18CC
+_020A18A8:
+ mov r0, #0x4
+ strb r0, [r8, #0x455]
+ b _020A18CC
+_020A18B4:
+ mov r0, r8
+ mov r1, r6
+ bl FUN_020A1E84
+ b _020A18CC
+_020A18C4:
+ mov r0, #0x9
+ strb r0, [r8, #0x455]
+_020A18CC:
+ mov r0, r8
+ sub r1, r6, #0x4
+ add r2, r4, #0x4
+ bl FUN_020A1944
+ add r0, r4, #0x4
+ add r6, r6, r4
+ subs r5, r5, r0
+ beq _020A1928
+ ldrb r0, [r8, #0x455]
+ cmp r0, #0x9
+ bne _020A17D0
+ b _020A1928
+_020A18FC:
+ str r7, [r8, #0x824]
+ mov r0, #0x5
+ str r0, [r8, #0x82c]
+ add r0, r5, #0x5
+ str r0, [r8, #0x828]
+ mov r0, #0x1
+ strb r0, [r8, #0x456]
+ ldmia sp!, {r4-r8,lr}
+ bx lr
+_020A1920:
+ mov r0, #0x9
+ strb r0, [r8, #0x455]
+_020A1928:
+ ldr r1, _020A1940 ; =0x021C8EF4
+ mov r0, r7
+ ldr r1, [r1, #0x0]
+ blx r1
+ ldmia sp!, {r4-r8,lr}
+ bx lr
+ .balign 4
+_020A1940: .word 0x021C8EF4
+
+ arm_func_start FUN_020A1944
+FUN_020A1944: ; 0x020A1944
+ stmdb sp!, {r4-r6,lr}
+ mov r6, r0
+ mov r5, r1
+ mov r4, r2
+ add r0, r6, #0x2ec
+ bl FUN_020A410C
+ mov r1, r5
+ mov r2, r4
+ add r0, r6, #0x3a4
+ bl FUN_020A3ACC
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+
+ arm_func_start FUN_020A1974
+FUN_020A1974:
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0x4
+ mov r7, r0
+ mov r6, r1
+ mov r5, r2
+ add r4, sp, #0x0
+_020A198C:
+ mov r0, r4
+ mov r1, r5
+ bl FUN_0209C6C0
+ ldr r1, [sp, #0x0]
+ cmp r1, #0x0
+ addeq sp, sp, #0x4
+ mvneq r0, #0x0
+ ldmeqia sp!, {r4-r7,lr}
+ bxeq lr
+ cmp r1, r6
+ strhi r6, [sp, #0x0]
+ ldr r2, [sp, #0x0]
+ mov r1, r7
+ bl MI_CpuCopy8
+_020A19C4: ; 0x020A19C4
+ ldr r0, [sp, #0x0]
+ mov r1, r5
+ bl FUN_0209C580
+_020A19D0: ; 0x020A19D0
+ ldr r0, [sp, #0x0]
+ sub r6, r6, r0
+ cmp r6, #0x0
+ add r7, r7, r0
+ bgt _020A198C
+ mov r0, #0x0
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r7,lr}
+ bx lr
+
+ arm_func_start FUN_020A19F4
+FUN_020A19F4: ; 0x020A19F4
+ stmdb sp!, {r4-r8,lr}
+ sub sp, sp, #0x30
+ mov r5, r1
+ mov r6, r0
+ ldrh r0, [r6, #0x32]
+ ldrb r3, [r5, #0x3]
+ ldrb r2, [r5, #0x4]
+ add r1, r5, #0x5
+ cmp r0, #0x4
+ add r4, r2, r3, lsl #0x8
+ add r8, r1, r4
+ beq _020A1A30
+ cmp r0, #0x5
+ beq _020A1B04
+ b _020A1BD4
+_020A1A30:
+ add r7, r6, #0x3fc
+ mov r0, r7
+ bl FUN_020A3B8C
+ ldr r1, [r6, #0xbc]
+ mov r0, r7
+ mov r2, #0x10
+ bl FUN_020A3ACC
+_020A1A4C: ; 0x020A1A4C
+ add r0, sp, #0x0
+ mov r1, #0x36
+ mov r2, #0x30
+ bl MI_CpuFill8
+ mov r0, r7
+ add r1, sp, #0x0
+ mov r2, #0x30
+ bl FUN_020A3ACC
+ mov r0, r7
+ add r1, r6, #0x1cc
+ mov r2, #0x8
+ bl FUN_020A3ACC
+ mov r0, r7
+ mov r1, r5
+ mov r2, #0x1
+ bl FUN_020A3ACC
+ mov r0, r7
+ add r1, r5, #0x3
+ add r2, r4, #0x2
+ bl FUN_020A3ACC
+ mov r0, r7
+ mov r1, r8
+ bl FUN_020A3A58
+ mov r0, r7
+ bl FUN_020A3B8C
+ ldr r1, [r6, #0xbc]
+ mov r0, r7
+ mov r2, #0x10
+ bl FUN_020A3ACC
+_020A1AC0: ; 0x020A1AC0
+ add r0, sp, #0x0
+ mov r1, #0x5c
+ mov r2, #0x30
+ bl MI_CpuFill8
+ mov r0, r7
+ add r1, sp, #0x0
+ mov r2, #0x30
+ bl FUN_020A3ACC
+ mov r0, r7
+ mov r1, r8
+ mov r2, #0x10
+ bl FUN_020A3ACC
+ mov r0, r7
+ mov r1, r8
+ bl FUN_020A3A58
+ add r4, r4, #0x10
+ b _020A1BD4
+_020A1B04:
+ add r7, r6, #0x348
+ mov r0, r7
+ bl FUN_020A41CC
+ ldr r1, [r6, #0xbc]
+ mov r0, r7
+ mov r2, #0x14
+ bl FUN_020A410C
+_020A1B20: ; 0x020A1B20
+ add r0, sp, #0x0
+ mov r1, #0x36
+ mov r2, #0x28
+ bl MI_CpuFill8
+ mov r0, r7
+ add r1, sp, #0x0
+ mov r2, #0x28
+ bl FUN_020A410C
+ mov r0, r7
+ add r1, r6, #0x1cc
+ mov r2, #0x8
+ bl FUN_020A410C
+ mov r0, r7
+ mov r1, r5
+ mov r2, #0x1
+ bl FUN_020A410C
+ mov r0, r7
+ add r1, r5, #0x3
+ add r2, r4, #0x2
+ bl FUN_020A410C
+ mov r0, r7
+ mov r1, r8
+ bl FUN_020A4098
+ mov r0, r7
+ bl FUN_020A41CC
+ ldr r1, [r6, #0xbc]
+ mov r0, r7
+ mov r2, #0x14
+ bl FUN_020A410C
+_020A1B94: ; 0x020A1B94
+ add r0, sp, #0x0
+ mov r1, #0x5c
+ mov r2, #0x28
+ bl MI_CpuFill8
+ mov r0, r7
+ add r1, sp, #0x0
+ mov r2, #0x28
+ bl FUN_020A410C
+ mov r0, r7
+ mov r1, r8
+ mov r2, #0x14
+ bl FUN_020A410C
+ mov r0, r7
+ mov r1, r8
+ bl FUN_020A4098
+ add r4, r4, #0x14
+_020A1BD4:
+ mov r0, r4, asr #0x8
+ strb r0, [r5, #0x3]
+ mov r2, r4
+ add r0, r6, #0xc8
+ add r1, r5, #0x5
+ strb r4, [r5, #0x4]
+ bl FUN_020A49CC
+ add r0, r6, #0x1d4
+ bl FUN_020A1E60
+ add r0, r4, #0x5
+ add sp, sp, #0x30
+ ldmia sp!, {r4-r8,lr}
+ bx lr
+
+ arm_func_start FUN_020A1C08
+FUN_020A1C08: ; 0x020A1C08
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0x44
+ mov r6, r1
+ ldrb r3, [r6, #0x3]
+ ldrb r2, [r6, #0x4]
+ mov r7, r0
+ add r1, r6, #0x5
+ add r2, r2, r3, lsl #0x8
+ bl FUN_020A1E44
+ ldrh r1, [r7, #0x32]
+ mov r5, r0
+ cmp r1, #0x4
+ beq _020A1C48
+ cmp r1, #0x5
+ beq _020A1D2C
+ b _020A1E0C
+_020A1C48:
+ sub r5, r5, #0x10
+ mov r0, r5, asr #0x8
+ strb r0, [r6, #0x3]
+ add r4, r7, #0x3fc
+ mov r0, r4
+ strb r5, [r6, #0x4]
+ bl FUN_020A3B8C
+ ldr r1, [r7, #0x1d4]
+ mov r0, r4
+ mov r2, #0x10
+ bl FUN_020A3ACC
+ add r0, sp, #0x14
+ mov r1, #0x36
+ mov r2, #0x30
+ bl MI_CpuFill8
+ mov r0, r4
+ add r1, sp, #0x14
+ mov r2, #0x30
+ bl FUN_020A3ACC
+ mov r0, r4
+ add r1, r7, #0x2e4
+ mov r2, #0x8
+ bl FUN_020A3ACC
+ mov r0, r4
+ mov r1, r6
+ mov r2, #0x1
+ bl FUN_020A3ACC
+ mov r0, r4
+ add r1, r6, #0x3
+ add r2, r5, #0x2
+ bl FUN_020A3ACC
+ mov r0, r4
+ add r1, sp, #0x0
+ bl FUN_020A3A58
+ mov r0, r4
+ bl FUN_020A3B8C
+ ldr r1, [r7, #0x1d4]
+ mov r0, r4
+ mov r2, #0x10
+ bl FUN_020A3ACC
+ add r0, sp, #0x14
+ mov r1, #0x5c
+ mov r2, #0x30
+ bl MI_CpuFill8
+ mov r0, r4
+ add r1, sp, #0x14
+ mov r2, #0x30
+ bl FUN_020A3ACC
+ mov r0, r4
+ add r1, sp, #0x0
+ mov r2, #0x10
+ bl FUN_020A3ACC
+ mov r0, r4
+ add r1, sp, #0x0
+ bl FUN_020A3A58
+ mov r4, #0x10
+ b _020A1E0C
+_020A1D2C:
+ sub r5, r5, #0x14
+ mov r0, r5, asr #0x8
+ strb r0, [r6, #0x3]
+ add r4, r7, #0x348
+ mov r0, r4
+ strb r5, [r6, #0x4]
+ bl FUN_020A41CC
+ ldr r1, [r7, #0x1d4]
+ mov r0, r4
+ mov r2, #0x14
+ bl FUN_020A410C
+ add r0, sp, #0x14
+ mov r1, #0x36
+ mov r2, #0x28
+ bl MI_CpuFill8
+ mov r0, r4
+ add r1, sp, #0x14
+ mov r2, #0x28
+ bl FUN_020A410C
+ mov r0, r4
+ add r1, r7, #0x2e4
+ mov r2, #0x8
+ bl FUN_020A410C
+ mov r0, r4
+ mov r1, r6
+ mov r2, #0x1
+ bl FUN_020A410C
+ mov r0, r4
+ add r1, r6, #0x3
+ add r2, r5, #0x2
+ bl FUN_020A410C
+ mov r0, r4
+ add r1, sp, #0x0
+ bl FUN_020A4098
+ mov r0, r4
+ bl FUN_020A41CC
+ ldr r1, [r7, #0x1d4]
+ mov r0, r4
+ mov r2, #0x14
+ bl FUN_020A410C
+ add r0, sp, #0x14
+ mov r1, #0x5c
+ mov r2, #0x28
+ bl MI_CpuFill8
+ mov r0, r4
+ add r1, sp, #0x14
+ mov r2, #0x28
+ bl FUN_020A410C
+ mov r0, r4
+ add r1, sp, #0x0
+ mov r2, #0x14
+ bl FUN_020A410C
+ mov r0, r4
+ add r1, sp, #0x0
+ bl FUN_020A4098
+ mov r4, #0x14
+_020A1E0C:
+ add r0, r6, #0x5
+ add r1, sp, #0x0
+ mov r2, r4
+ add r0, r0, r5
+ bl memcmp
+_020A1E20: ; 0x020A1E20
+ cmp r0, #0x0
+ movne r0, #0x9
+ strneb r0, [r7, #0x455]
+ add r0, r7, #0x2ec
+ bl FUN_020A1E60
+ add r0, r5, #0x5
+ add sp, sp, #0x44
+ ldmia sp!, {r4-r7,lr}
+ bx lr
+
+ arm_func_start FUN_020A1E44
+FUN_020A1E44: ; 0x020A1E44
+ stmdb sp!, {r4,lr}
+ add r0, r0, #0x1e0
+ mov r4, r2
+ bl FUN_020A49CC
+ mov r0, r4
+ ldmia sp!, {r4,lr}
+ bx lr
+
+ arm_func_start FUN_020A1E60
+FUN_020A1E60: ; 0x020A1E60
+ mov r2, #0x8
+_020A1E64:
+ ldrb r1, [r0, #-0x1]!
+ add r1, r1, #0x1
+ ands r1, r1, #0xff
+ strb r1, [r0, #0x0]
+ bxne lr
+ subs r2, r2, #0x1
+ bne _020A1E64
+ bx lr
+
+ arm_func_start FUN_020A1E84
+FUN_020A1E84: ; 0x020A1E84
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x14
+ mov r5, r0
+ mov r4, r1
+ add r0, r5, #0x3a4
+ add r1, r5, #0x3fc
+ mov r2, #0x58
+ bl MI_CpuCopy8
+ add r1, sp, #0x0
+ mov r0, r5
+ mov r2, #0x1
+ bl FUN_020A2034
+ add r0, r5, #0x3fc
+ add r1, r5, #0x3a4
+ mov r2, #0x58
+ bl MI_CpuCopy8
+ add r1, sp, #0x0
+ mov r0, r4
+ mov r2, #0x10
+ bl memcmp
+_020A1ED4: ; 0x020A1ED4
+ cmp r0, #0x0
+ movne r0, #0x9
+ addne sp, sp, #0x14
+ strneb r0, [r5, #0x455]
+ ldmneia sp!, {r4-r5,lr}
+ bxne lr
+ add r0, r5, #0x2ec
+ add r1, r5, #0x348
+ mov r2, #0x5c
+ bl MI_CpuCopy8
+ add r1, sp, #0x0
+ mov r0, r5
+ mov r2, #0x1
+ bl FUN_020A1F4C
+ add r0, r5, #0x348
+ add r1, r5, #0x2ec
+ mov r2, #0x5c
+ bl MI_CpuCopy8
+ add r1, sp, #0x0
+ add r0, r4, #0x10
+ mov r2, #0x14
+ bl memcmp
+_020A1F2C: ; 0x020A1F2C
+ cmp r0, #0x0
+ movne r0, #0x9
+ strneb r0, [r5, #0x455]
+ moveq r0, #0x6
+ streqb r0, [r5, #0x455]
+ add sp, sp, #0x14
+ ldmia sp!, {r4-r5,lr}
+ bx lr
+
+ arm_func_start FUN_020A1F4C
+FUN_020A1F4C: ; 0x020A1F4C
+ stmdb sp!, {r4-r6,lr}
+ sub sp, sp, #0x28
+ mov r6, r0
+ ldrb r0, [r6, #0x454]
+ mov r5, r1
+ add r4, r6, #0x2ec
+ eors r0, r0, r2
+ beq _020A1F80
+ ldr r1, _020A202C ; =0x02106290
+ mov r0, r4
+ mov r2, #0x4
+ bl FUN_020A410C
+ b _020A1F90
+_020A1F80:
+ ldr r1, _020A2030 ; =0x02106298
+ mov r0, r4
+ mov r2, #0x4
+ bl FUN_020A410C
+_020A1F90:
+ mov r0, r4
+ mov r1, r6
+ mov r2, #0x30
+ bl FUN_020A410C
+_020A1FA0: ; 0x020A1FA0
+ add r0, sp, #0x0
+ mov r1, #0x36
+ mov r2, #0x28
+ bl MI_CpuFill8
+ add r1, sp, #0x0
+ mov r0, r4
+ mov r2, #0x28
+ bl FUN_020A410C
+ mov r0, r4
+ mov r1, r5
+ bl FUN_020A4098
+ mov r0, r4
+ bl FUN_020A41CC
+ mov r1, r6
+ mov r0, r4
+ mov r2, #0x30
+ bl FUN_020A410C
+_020A1FE4: ; 0x020A1FE4
+ add r0, sp, #0x0
+ mov r1, #0x5c
+ mov r2, #0x28
+ bl MI_CpuFill8
+ mov r0, r4
+ add r1, sp, #0x0
+ mov r2, #0x28
+ bl FUN_020A410C
+ mov r0, r4
+ mov r1, r5
+ mov r2, #0x14
+ bl FUN_020A410C
+ mov r0, r4
+ mov r1, r5
+ bl FUN_020A4098
+ add sp, sp, #0x28
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+ .balign 4
+_020A202C: .word 0x02106290
+_020A2030: .word 0x02106298
+
+ arm_func_start FUN_020A2034
+FUN_020A2034: ; 0x020A2034
+ stmdb sp!, {r4-r6,lr}
+ sub sp, sp, #0x30
+ mov r6, r0
+ ldrb r0, [r6, #0x454]
+ mov r5, r1
+ add r4, r6, #0x3a4
+ eors r0, r0, r2
+ beq _020A2068
+ ldr r1, _020A2114 ; =0x02106290
+ mov r0, r4
+ mov r2, #0x4
+ bl FUN_020A3ACC
+ b _020A2078
+_020A2068:
+ ldr r1, _020A2118 ; =0x02106298
+ mov r0, r4
+ mov r2, #0x4
+ bl FUN_020A3ACC
+_020A2078:
+ mov r0, r4
+ mov r1, r6
+ mov r2, #0x30
+ bl FUN_020A3ACC
+_020A2088: ; 0x020A2088
+ add r0, sp, #0x0
+ mov r1, #0x36
+ mov r2, #0x30
+ bl MI_CpuFill8
+ add r1, sp, #0x0
+ mov r0, r4
+ mov r2, #0x30
+ bl FUN_020A3ACC
+ mov r0, r4
+ mov r1, r5
+ bl FUN_020A3A58
+ mov r0, r4
+ bl FUN_020A3B8C
+ mov r1, r6
+ mov r0, r4
+ mov r2, #0x30
+ bl FUN_020A3ACC
+_020A20CC: ; 0x020A20CC
+ add r0, sp, #0x0
+ mov r1, #0x5c
+ mov r2, #0x30
+ bl MI_CpuFill8
+ mov r0, r4
+ add r1, sp, #0x0
+ mov r2, #0x30
+ bl FUN_020A3ACC
+ mov r0, r4
+ mov r1, r5
+ mov r2, #0x10
+ bl FUN_020A3ACC
+ mov r0, r4
+ mov r1, r5
+ bl FUN_020A3A58
+ add sp, sp, #0x30
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+ .balign 4
+_020A2114: .word 0x02106290
+_020A2118: .word 0x02106298
+
+ arm_func_start FUN_020A211C
+FUN_020A211C: ; 0x020A211C
+ stmdb sp!, {r4,lr}
+ mov r4, r0
+ ldr r2, [r4, #0x81c]
+ bl FUN_020A2470
+ mov r0, r4
+ bl FUN_020A2364
+ mov r1, #0x0
+ mov r0, r4
+ mov r2, r1
+ bl FUN_020A3808
+ mov r0, r4
+ bl FUN_020A215C
+ mov r0, #0x5
+ strb r0, [r4, #0x455]
+ ldmia sp!, {r4,lr}
+ bx lr
+
+ arm_func_start FUN_020A215C
+FUN_020A215C: ; 0x020A215C
+ stmdb sp!, {r4-r11,lr}
+ sub sp, sp, #0x34
+ mov r10, r0
+ ldrh r0, [r10, #0x32]
+ cmp r0, #0x4
+ beq _020A2190
+ cmp r0, #0x5
+ moveq r0, #0x14
+ streq r0, [sp, #0x0]
+ moveq r0, #0x10
+ streq r0, [sp, #0x4]
+ moveq r2, #0x0
+ b _020A21A0
+_020A2190:
+ mov r0, #0x10
+ str r0, [sp, #0x0]
+ str r0, [sp, #0x4]
+ mov r2, #0x0
+_020A21A0:
+ ldr r1, [sp, #0x0]
+ ldr r0, [sp, #0x4]
+ mov r9, #0x0
+ add r0, r1, r0
+ add r0, r2, r0
+ mov r0, r0, lsl #0x1
+ str r0, [sp, #0x8]
+ cmp r0, #0x0
+ ble _020A22B8
+ mov r0, #0x20
+ str r0, [sp, #0x10]
+ mov r0, #0x14
+ mov r6, r9
+ add r5, sp, #0x18
+ str r9, [sp, #0xc]
+ mov r4, #0x1
+ mov r11, #0x30
+ str r0, [sp, #0x14]
+_020A21E8:
+ add r7, r10, #0x348
+ mov r0, r7
+ bl FUN_020A41CC
+ add r0, r9, #0x41
+ strb r0, [sp, #0x18]
+ add r0, r9, #0x1
+ ldr r8, [sp, #0xc]
+ cmp r0, #0x0
+ ble _020A222C
+_020A220C:
+ mov r0, r7
+ mov r1, r5
+ mov r2, r4
+ bl FUN_020A410C
+ add r8, r8, #0x1
+ add r0, r9, #0x1
+ cmp r8, r0
+ blt _020A220C
+_020A222C:
+ mov r0, r7
+ mov r1, r10
+ mov r2, r11
+ bl FUN_020A410C
+ ldr r2, [sp, #0x10]
+ mov r0, r7
+ add r1, r10, #0x54
+ bl FUN_020A410C
+ ldr r2, [sp, #0x10]
+ mov r0, r7
+ add r1, r10, #0x34
+ bl FUN_020A410C
+ mov r0, r7
+ add r1, sp, #0x19
+ bl FUN_020A4098
+ add r7, r10, #0x3fc
+ mov r0, r7
+ bl FUN_020A3B8C
+ mov r0, r7
+ mov r1, r10
+ mov r2, r11
+ bl FUN_020A3ACC
+ ldr r2, [sp, #0x14]
+ mov r0, r7
+ add r1, sp, #0x19
+ bl FUN_020A3ACC
+ add r1, r10, #0x74
+ mov r0, r7
+ add r1, r1, r6
+ bl FUN_020A3A58
+ ldr r0, [sp, #0x8]
+ add r6, r6, #0x10
+ cmp r6, r0
+ add r9, r9, #0x1
+ blt _020A21E8
+_020A22B8:
+ ldrb r0, [r10, #0x454]
+ cmp r0, #0x0
+ beq _020A2300
+ add r1, r10, #0x74
+ str r1, [r10, #0x1d4]
+ ldr r0, [sp, #0x0]
+ ldr r2, [r10, #0x1d4]
+ add r1, r1, r0
+ add r0, r2, r0, lsl #0x1
+ str r0, [r10, #0x1d8]
+ str r1, [r10, #0xbc]
+ ldr r1, [r10, #0xbc]
+ ldr r0, [sp, #0x0]
+ add r1, r1, r0
+ ldr r0, [sp, #0x4]
+ add r0, r1, r0
+ str r0, [r10, #0xc0]
+ b _020A2338
+_020A2300:
+ add r1, r10, #0x74
+ str r1, [r10, #0xbc]
+ ldr r0, [sp, #0x0]
+ ldr r2, [r10, #0xbc]
+ add r1, r1, r0
+ add r0, r2, r0, lsl #0x1
+ str r0, [r10, #0xc0]
+ str r1, [r10, #0x1d4]
+ ldr r1, [r10, #0x1d4]
+ ldr r0, [sp, #0x0]
+ add r1, r1, r0
+ ldr r0, [sp, #0x4]
+ add r0, r1, r0
+ str r0, [r10, #0x1d8]
+_020A2338:
+ ldr r1, [r10, #0x1d8]
+ add r0, r10, #0x1e0
+ mov r2, #0x10
+ bl FUN_020A4A3C
+ ldr r1, [r10, #0xc0]
+ add r0, r10, #0xc8
+ mov r2, #0x10
+ bl FUN_020A4A3C
+ add sp, sp, #0x34
+ ldmia sp!, {r4-r11,lr}
+ bx lr
+
+ arm_func_start FUN_020A2364
+FUN_020A2364: ; 0x020A2364
+ stmdb sp!, {r4,lr}
+ sub sp, sp, #0x30
+ mov r4, r0
+ ldr r1, _020A23BC ; =0x021062A0
+ add r0, sp, #0x0
+ mov r2, r4
+ bl FUN_020A23C8
+ ldr r1, _020A23C0 ; =0x021062A4
+ add r0, sp, #0x10
+ mov r2, r4
+ bl FUN_020A23C8
+ ldr r1, _020A23C4 ; =0x021062A8
+ add r0, sp, #0x20
+ mov r2, r4
+ bl FUN_020A23C8
+_020A23A0: ; 0x020A23A0
+ add r0, sp, #0x0
+ mov r1, r4
+ mov r2, #0x30
+ bl MI_CpuCopy8
+ add sp, sp, #0x30
+ ldmia sp!, {r4,lr}
+ bx lr
+ .balign 4
+_020A23BC: .word 0x021062A0
+_020A23C0: .word 0x021062A4
+_020A23C4: .word 0x021062A8
+
+ arm_func_start FUN_020A23C8
+FUN_020A23C8:
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0x14
+ mov r5, r2
+ add r4, r5, #0x348
+ mov r7, r0
+ mov r6, r1
+ mov r0, r4
+ bl FUN_020A41CC
+ mov r0, r6
+ bl strlen
+ mov r2, r0
+ mov r1, r6
+ mov r0, r4
+ bl FUN_020A410C
+ mov r0, r4
+ mov r1, r5
+ mov r2, #0x30
+ bl FUN_020A410C
+ mov r0, r4
+ add r1, r5, #0x34
+ mov r2, #0x40
+ bl FUN_020A410C
+ mov r0, r4
+ add r1, sp, #0x0
+ bl FUN_020A4098
+ add r4, r5, #0x3fc
+ mov r0, r4
+ bl FUN_020A3B8C
+ mov r1, r5
+ mov r0, r4
+ mov r2, #0x30
+ bl FUN_020A3ACC
+ mov r0, r4
+ add r1, sp, #0x0
+ mov r2, #0x14
+ bl FUN_020A3ACC
+ mov r0, r4
+ mov r1, r7
+ bl FUN_020A3A58
+ add sp, sp, #0x14
+ ldmia sp!, {r4-r7,lr}
+ bx lr
+
+ arm_func_start FUN_020A2470
+FUN_020A2470: ; 0x020A2470
+ stmdb sp!, {r4-r11,lr}
+ sub sp, sp, #0x1c
+ movs r10, r2
+ str r0, [sp, #0x8]
+ mov r11, r1
+ addeq sp, sp, #0x1c
+ ldmeqia sp!, {r4-r11,lr}
+ bxeq lr
+ ldr r0, [r10, #0x0]
+ cmp r0, #0x0
+ addeq sp, sp, #0x1c
+ ldmeqia sp!, {r4-r11,lr}
+ bxeq lr
+ mov r0, r0, lsl #0x1
+ add r0, r0, r0, lsr #0x1f
+ mov r0, r0, asr #0x1
+ add r9, r0, #0x1
+ mov r0, #0x14
+ mul r0, r9, r0
+ ldr r1, _020A26C8 ; =0x021C8EC8
+ ldr r1, [r1, #0x0]
+ blx r1
+ movs r8, r0
+ addeq sp, sp, #0x1c
+ ldmeqia sp!, {r4-r11,lr}
+ bxeq lr
+ add r7, r8, r9, lsl #0x1
+ add r6, r7, r9, lsl #0x1
+ add r1, r6, r9, lsl #0x1
+ str r1, [sp, #0xc]
+ add r1, r1, r9, lsl #0x1
+ add r5, r1, r9, lsl #0x1
+ str r1, [sp, #0x10]
+ ldr r2, [r10, #0x0]
+ add r4, r5, r9, lsl #0x1
+ mov r1, r11
+ mov r3, r9
+ add r11, r4, r9, lsl #0x1
+ bl FUN_020A4B50
+ ldr r1, [r10, #0x1c]
+ ldr r2, [r10, #0x18]
+ mov r0, r7
+ mov r3, r9
+ bl FUN_020A4B50
+ ldr r1, [r10, #0xc]
+ ldr r2, [r10, #0x8]
+ mov r0, r5
+ mov r3, r9
+ bl FUN_020A4B50
+ bl FUN_020A36EC
+ str r0, [sp, #0x14]
+ ldr r0, [sp, #0xc]
+ str r5, [sp, #0x0]
+ mov r1, r8
+ mov r2, r7
+ mov r3, r9
+ bl FUN_020A4BB0
+ ldr r1, [r10, #0x24]
+ ldr r2, [r10, #0x20]
+ mov r0, r7
+ mov r3, r9
+ bl FUN_020A4B50
+ ldr r1, [r10, #0x14]
+ ldr r2, [r10, #0x10]
+ mov r0, r5
+ mov r3, r9
+ bl FUN_020A4B50
+ ldr r0, [sp, #0x10]
+ mov r1, r8
+ mov r2, r7
+ mov r3, r9
+ str r5, [sp, #0x0]
+ bl FUN_020A4BB0
+ ldr r0, [sp, #0x14]
+ bl FUN_020A36B4
+ ldr r1, [sp, #0xc]
+ ldr r2, [sp, #0x10]
+ mov r0, r8
+ mov r3, r9
+ bl FUN_020A57BC
+ ldr r1, [r10, #0x2c]
+ ldr r2, [r10, #0x28]
+ mov r0, r7
+ mov r3, r9
+ bl FUN_020A4B50
+ mov r0, r6
+ mov r1, r8
+ mov r2, r7
+ mov r3, r9
+ bl FUN_020A5608
+ ldr r1, [r10, #0x14]
+ ldr r2, [r10, #0x10]
+ mov r0, r7
+ mov r3, r9
+ bl FUN_020A4B50
+ mov r0, r8
+ mov r1, r6
+ mov r2, r7
+ mov r3, r9
+ bl FUN_020A5608
+ ldr r2, [sp, #0x10]
+ mov r0, r6
+ mov r1, r8
+ mov r3, r9
+ bl FUN_020A5930
+ ldr r1, [r10, #0x4]
+ ldr r2, [r10, #0x0]
+ mov r0, r7
+ mov r3, r9
+ bl FUN_020A4B50
+ mov r0, r6
+ mov r1, r9
+ bl FUN_020A59DC
+_020A2634: ; 0x020A2634
+ cmp r0, #0x0
+ bge _020A267C
+ mov r0, r6
+ mov r1, r9
+ bl FUN_020A5874
+ str r9, [sp, #0x0]
+ mov r1, r6
+ mov r2, r7
+ mov r3, r4
+ mov r0, #0x0
+ str r11, [sp, #0x4]
+ bl FUN_020A5240
+ mov r0, r4
+ mov r1, r7
+ mov r2, r4
+ mov r3, r9
+ bl FUN_020A57BC
+ b _020A2698
+_020A267C:
+ str r9, [sp, #0x0]
+ mov r1, r6
+ mov r2, r7
+ mov r3, r4
+ mov r0, #0x0
+ str r11, [sp, #0x4]
+ bl FUN_020A5240
+_020A2698:
+ ldr r0, [sp, #0x8]
+ mov r1, r4
+ mov r3, r9
+ mov r2, #0x30
+ bl FUN_020A4B08
+ ldr r1, _020A26CC ; =0x021C8EF4
+ mov r0, r8
+ ldr r1, [r1, #0x0]
+ blx r1
+ add sp, sp, #0x1c
+ ldmia sp!, {r4-r11,lr}
+ bx lr
+ .balign 4
+_020A26C8: .word 0x021C8EC8
+_020A26CC: .word 0x021C8EF4
+
+ arm_func_start FUN_020A26D0
+FUN_020A26D0: ; 0x020A26D0
+ stmdb sp!, {r4-r6,lr}
+ mov r6, r1
+ mov r4, r0
+ ldrb r0, [r6, #0x0]
+ ldrb r1, [r6, #0x1]
+ bl FUN_020A284C
+_020A26E8: ; 0x020A26E8
+ cmp r0, #0x0
+ ldmeqia sp!, {r4-r6,lr}
+ bxeq lr
+ add r0, r6, #0x2
+ add r1, r4, #0x34
+ mov r2, #0x20
+ bl MI_CpuCopy8
+ ldrb r5, [r6, #0x22]
+ add r6, r6, #0x23
+ cmp r5, #0x20
+ movne r0, #0x0
+ strneb r0, [r4, #0x30]
+ bne _020A2734
+ mov r0, r6
+ add r1, r4, #0x74
+ mov r2, #0x20
+ bl MI_CpuCopy8
+ mov r0, r4
+ bl FUN_020A39B0
+_020A2734:
+ add r0, r6, r5
+ ldrb r1, [r0, #0x1]
+ ldrb r3, [r6, r5]
+ add r0, r0, #0x2
+ mov r2, #0x2
+ add r1, r1, r3, lsl #0x8
+ add r1, r1, r1, lsr #0x1f
+ mov r1, r1, asr #0x1
+ bl FUN_020A285C
+ mov r0, r0, lsl #0x10
+ movs r0, r0, lsr #0x10
+ strh r0, [r4, #0x32]
+ movne r0, #0x1
+ strneb r0, [r4, #0x455]
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+
+ arm_func_start FUN_020A2774
+FUN_020A2774: ; 0x020A2774
+ stmdb sp!, {r4-r6,lr}
+ mov r5, r1
+ mov r6, r0
+ ldrb r0, [r5, #0x0]
+ ldrb r1, [r5, #0x1]
+ bl FUN_020A284C
+_020A278C: ; 0x020A278C
+ cmp r0, #0x0
+ ldmeqia sp!, {r4-r6,lr}
+ bxeq lr
+ ldrb r2, [r5, #0x2]
+ ldrb r1, [r5, #0x3]
+ ldr r3, _020A2848 ; =0x55555556
+ add r0, r5, #0x8
+ add r4, r1, r2, lsl #0x8
+ smull r2, r1, r3, r4
+ add r1, r1, r4, lsr #0x1f
+ mov r2, #0x3
+ bl FUN_020A285C
+ mov r0, r0, lsl #0x10
+ movs r0, r0, lsr #0x10
+ ldmeqia sp!, {r4-r6,lr}
+ bxeq lr
+ strh r0, [r6, #0x32]
+ ldrb r12, [r5, #0x4]
+ ldrb r0, [r5, #0x5]
+ ldrb r3, [r5, #0x6]
+ ldrb r2, [r5, #0x7]
+ mov r1, #0x0
+ add r12, r0, r12, lsl #0x8
+ add r0, r4, #0x8
+ add r4, r2, r3, lsl #0x8
+ add r0, r0, r12
+ strb r1, [r6, #0x30]
+ cmp r4, #0x20
+ add r5, r5, r0
+ blt _020A2818
+ mov r0, r5
+ add r1, r6, #0x34
+ mov r2, #0x20
+ bl MI_CpuCopy8
+ b _020A2838
+_020A2818:
+ add r0, r6, #0x34
+ rsb r2, r4, #0x20
+ bl MI_CpuFill8
+ add r1, r6, #0x54
+ mov r0, r5
+ mov r2, r4
+ sub r1, r1, r4
+ bl MI_CpuCopy8
+_020A2838:
+ mov r0, #0x1
+ strb r0, [r6, #0x455]
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+ .balign 4
+_020A2848: .word 0x55555556
+
+ arm_func_start FUN_020A284C
+FUN_020A284C:
+ cmp r0, #0x3
+ moveq r0, #0x1
+ movne r0, #0x0
+ bx lr
+
+ arm_func_start FUN_020A285C
+FUN_020A285C: ; 0x020A285C
+ stmdb sp!, {r4-r8,lr}
+ mov r8, r0
+ mov r7, r1
+ mov r6, r2
+ mov r5, #0x0
+ ldr r4, _020A28BC ; =0x0210623C
+_020A2874:
+ mov r0, r5, lsl #0x1
+ ldrh r3, [r4, r0]
+ mov r0, r8
+ mov r1, r7
+ mov r2, r6
+ bl FUN_020A28C0
+_020A288C: ; 0x020A288C
+ cmp r0, #0x0
+ ldrne r0, _020A28BC ; =0x0210623C
+ movne r1, r5, lsl #0x1
+ ldrneh r0, [r0, r1]
+ ldmneia sp!, {r4-r8,lr}
+ bxne lr
+ add r5, r5, #0x1
+ cmp r5, #0x2
+ blo _020A2874
+ mov r0, #0x0
+ ldmia sp!, {r4-r8,lr}
+ bx lr
+ .balign 4
+_020A28BC: .word 0x0210623C
+
+ arm_func_start FUN_020A28C0
+FUN_020A28C0:
+ stmdb sp!, {r4,lr}
+ cmp r1, #0x0
+ mov r4, #0x0
+ ble _020A2908
+_020A28D0:
+ ldrb lr, [r0, #0x0]
+ ldrb r12, [r0, #0x1]
+ cmp r2, #0x3
+ add lr, r12, lr, lsl #0x8
+ ldreqb r12, [r0, #0x2]
+ addeq lr, r12, lr, lsl #0x8
+ cmp lr, r3
+ moveq r0, #0x1
+ ldmeqia sp!, {r4,lr}
+ bxeq lr
+ add r4, r4, #0x1
+ cmp r4, r1
+ add r0, r0, r2
+ blt _020A28D0
+_020A2908:
+ mov r0, #0x0
+ ldmia sp!, {r4,lr}
+ bx lr
+
+ arm_func_start FUN_020A2914
+FUN_020A2914: ; 0x020A2914
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0x4
+ mov r6, r0
+ mov r5, r1
+ add r0, r5, #0x2
+ add r1, r6, #0x54
+ mov r2, #0x20
+ bl MI_CpuCopy8
+ add r0, r5, #0x22
+ ldrb r7, [r6, #0x30]
+ add r5, r5, #0x23
+ ldrb r4, [r0, #0x0]
+ cmp r7, #0x0
+ beq _020A2974
+ cmp r4, #0x20
+ bne _020A2974
+ mov r1, r5
+ add r0, r6, #0x74
+ mov r2, #0x20
+ bl memcmp
+_020A2964: ; 0x020A2964
+ cmp r0, #0x0
+ moveq r0, #0x1
+ streqb r0, [r6, #0x31]
+ beq _020A29B4
+_020A2974:
+ cmp r7, #0x0
+ beq _020A2984
+ mov r0, r6
+ bl FUN_020A3798
+_020A2984:
+ cmp r4, #0x0
+ moveq r0, #0x0
+ streqb r0, [r6, #0x30]
+ beq _020A29AC
+ mov r0, r5
+ add r1, r6, #0x74
+ mov r2, #0x20
+ bl MI_CpuCopy8
+ mov r0, #0x1
+ strb r0, [r6, #0x30]
+_020A29AC:
+ mov r0, #0x0
+ strb r0, [r6, #0x31]
+_020A29B4:
+ add r0, r5, r4
+ ldrb r2, [r5, r4]
+ ldrb r1, [r0, #0x1]
+ mov r0, #0x2
+ add r1, r1, r2, lsl #0x8
+ strh r1, [r6, #0x32]
+ strb r0, [r6, #0x455]
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r7,lr}
+ bx lr
+
+ arm_func_start FUN_020A29DC
+FUN_020A29DC: ; 0x020A29DC
+ stmdb sp!, {r0-r3}
+ stmdb sp!, {r4-r11,lr}
+ sub sp, sp, #0x24
+ ldr r1, [sp, #0x4c]
+ mov r10, r0
+ ldrb r4, [r1, #0x2]
+ ldrb r3, [r1, #0x0]
+ ldrb r2, [r1, #0x1]
+ add r0, r1, #0x3
+ mvn r1, #0x0
+ str r0, [sp, #0x4c]
+ add r2, r2, r3, lsl #0x8
+ add r0, sp, #0x14
+ str r1, [r10, #0x45c]
+ add r7, r4, r2, lsl #0x8
+ bl RTC_GetDate
+ mov r8, #0x0
+ ldr r0, [sp, #0x14]
+ ldr r2, [sp, #0x1c]
+ add r1, r0, #0x7d0
+ ldr r0, [sp, #0x18]
+ mov r1, r1, lsl #0x10
+ add r0, r1, r0, lsl #0x8
+ add r0, r2, r0
+ str r0, [r10, #0x80c]
+ strb r8, [r10, #0x6b0]
+ str r8, [r10, #0x5a0]
+ ldr r0, [r10, #0x5a0]
+ mov r6, r8
+ str r0, [r10, #0x594]
+ add r0, r10, #0x7b0
+ str r0, [sp, #0x4]
+ mov r0, #0x1
+ str r8, [sp, #0x8]
+ mov r4, r8
+ mov r11, #0x2
+ str r0, [sp, #0xc]
+ mvn r5, #0x0
+_020A2A74:
+ ldr r1, [sp, #0x4c]
+ mov r0, r10
+ ldrb r2, [r1, #0x2]
+ ldrb r12, [r1, #0x0]
+ ldrb r3, [r1, #0x1]
+ add r9, r1, #0x3
+ add r1, sp, #0x4c
+ str r9, [sp, #0x4c]
+ str r5, [r10, #0x458]
+ strb r4, [r10, #0x5ad]
+ strb r4, [r10, #0x5ac]
+ strb r4, [r10, #0x5af]
+ strb r4, [r10, #0x6b0]
+ strb r4, [r10, #0x5b0]
+ strb r4, [r10, #0x7b0]
+ add r3, r3, r12, lsl #0x8
+ ldr r9, [sp, #0x4c]
+ add r3, r2, r3, lsl #0x8
+ add r2, r3, #0x3
+ str r9, [r10, #0x804]
+ str r3, [r10, #0x808]
+ sub r7, r7, r2
+ mov r2, r4
+ mov r3, r4
+ str r8, [sp, #0x0]
+ bl FUN_020A2F98
+_020A2ADC: ; 0x020A2ADC
+ cmp r0, #0x0
+ bne _020A2AFC
+ ldr r0, [r10, #0x594]
+ cmp r0, #0x33
+ blo _020A2AFC
+ ldr r0, [r10, #0x5a0]
+ cmp r0, #0x0
+ bne _020A2B14
+_020A2AFC:
+ mov r0, #0x9
+ add sp, sp, #0x24
+ strb r0, [r10, #0x455]
+ ldmia sp!, {r4-r11,lr}
+ add sp, sp, #0x10
+ bx lr
+_020A2B14:
+ mov r0, r10
+ bl FUN_020A2CBC
+ mov r8, r0
+ cmp r6, #0x0
+ bne _020A2B44
+ ldr r0, [r10, #0x800]
+ cmp r0, #0x0
+ beq _020A2B44
+ ldr r1, [sp, #0x4]
+ bl FUN_020A2C18
+_020A2B3C: ; 0x020A2B3C
+ cmp r0, #0x0
+ orrne r8, r8, #0x4000
+_020A2B44:
+ and r9, r8, #0xff
+ cmp r9, #0x1
+ bne _020A2BB4
+ cmp r7, #0x0
+ beq _020A2BB4
+ ldr r1, [sp, #0x4c]
+ ldr r2, [sp, #0x8]
+ add r1, r1, #0x3
+ str r1, [sp, #0x10]
+ ldr r1, [sp, #0x8]
+ mov r0, r10
+ strb r1, [r10, #0x5ad]
+ add r1, sp, #0x10
+ mov r3, r2
+ str r11, [sp, #0x0]
+ bl FUN_020A2F98
+_020A2B84: ; 0x020A2B84
+ cmp r0, #0x0
+ movne r0, #0x9
+ addne sp, sp, #0x24
+ strneb r0, [r10, #0x455]
+ ldmneia sp!, {r4-r11,lr}
+ addne sp, sp, #0x10
+ bxne lr
+ mov r0, r10
+ add r1, r10, #0x480
+ bl FUN_020A2DBC
+ bic r1, r8, #0xff
+ orr r8, r1, r0
+_020A2BB4:
+ ldr r3, [r10, #0x810]
+ cmp r3, #0x0
+ beq _020A2BD4
+ mov r0, r8
+ mov r1, r10
+ mov r2, r6
+ blx r3
+ mov r8, r0
+_020A2BD4:
+ cmp r9, #0x0
+ add r6, r6, #0x1
+ beq _020A2BF4
+ cmp r8, #0x0
+ bne _020A2BF4
+ cmp r7, #0x0
+ ldrne r8, [sp, #0xc]
+ bne _020A2A74
+_020A2BF4:
+ cmp r8, #0x0
+ moveq r0, #0x3
+ streqb r0, [r10, #0x455]
+ movne r0, #0x9
+ strneb r0, [r10, #0x455]
+ add sp, sp, #0x24
+ ldmia sp!, {r4-r11,lr}
+ add sp, sp, #0x10
+ bx lr
+
+ arm_func_start FUN_020A2C18
+FUN_020A2C18:
+ stmdb sp!, {r4-r6,lr}
+ mov r6, r0
+ mov r5, r1
+ b _020A2C38
+_020A2C28:
+ cmp r1, #0x0
+ moveq r0, #0x0
+ ldmeqia sp!, {r4-r6,lr}
+ bxeq lr
+_020A2C38:
+ ldrsb r0, [r5], #0x1
+ ldrsb r1, [r6], #0x1
+ cmp r1, r0
+ beq _020A2C28
+ cmp r0, #0x2a
+ movne r0, #0x1
+ ldmneia sp!, {r4-r6,lr}
+ bxne lr
+ sub r6, r6, #0x1
+ mov r0, r6
+ bl FUN_020A2C94
+ mov r4, r0
+ mov r0, r5
+ bl FUN_020A2C94
+ cmp r0, r4
+ movgt r0, #0x1
+ ldmgtia sp!, {r4-r6,lr}
+ bxgt lr
+ sub r0, r4, r0
+ add r6, r6, r0
+ b _020A2C38
+_020A2C8C: ; 0x020A2C8C
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+
+ arm_func_start FUN_020A2C94
+FUN_020A2C94: ; 0x020A2C94
+ mov r2, r0
+ b _020A2CA0
+_020A2C9C:
+ add r0, r0, #0x1
+_020A2CA0:
+ ldrsb r1, [r0, #0x0]
+ cmp r1, #0x2e
+ beq _020A2CB4
+ cmp r1, #0x0
+ bne _020A2C9C
+_020A2CB4:
+ sub r0, r0, r2
+ bx lr
+
+ arm_func_start FUN_020A2CBC
+FUN_020A2CBC: ; 0x020A2CBC
+ stmdb sp!, {r4-r6,lr}
+ mov r5, r0
+ ldrb r0, [r5, #0x5af]
+ ldr r1, [r5, #0x45c]
+ cmp r0, #0x0
+ movne r4, #0x0
+ moveq r4, #0x8000
+ mvn r0, #0x0
+ cmp r1, r0
+ orreq r0, r4, #0x4
+ ldmeqia sp!, {r4-r6,lr}
+ bxeq lr
+ ldr r0, [r5, #0x458]
+ cmp r0, #0x3
+ beq _020A2D04
+ cmp r0, #0x4
+ beq _020A2D40
+ b _020A2D7C
+_020A2D04:
+ add r6, r5, #0x3fc
+ mov r0, r6
+ bl FUN_020A3B8C
+ ldr r1, [r5, #0x460]
+ ldr r2, [r5, #0x464]
+ mov r0, r6
+ sub r2, r2, r1
+ bl FUN_020A3ACC
+ ldr r1, _020A2DB8 ; =0x00000468
+ mov r0, r6
+ add r1, r5, r1
+ bl FUN_020A3A58
+ mov r0, #0x10
+ str r0, [r5, #0x47c]
+ b _020A2D88
+_020A2D40:
+ add r6, r5, #0x348
+ mov r0, r6
+ bl FUN_020A41CC
+ ldr r1, [r5, #0x460]
+ ldr r2, [r5, #0x464]
+ mov r0, r6
+ sub r2, r2, r1
+ bl FUN_020A410C
+ ldr r1, _020A2DB8 ; =0x00000468
+ mov r0, r6
+ add r1, r5, r1
+ bl FUN_020A4098
+ mov r0, #0x14
+ str r0, [r5, #0x47c]
+ b _020A2D88
+_020A2D7C:
+ orr r0, r4, #0x3
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+_020A2D88:
+ mov r0, r5
+ add r1, r5, #0x5b0
+ bl FUN_020A3628
+ movs r1, r0
+ orreq r0, r4, #0x1
+ ldmeqia sp!, {r4-r6,lr}
+ bxeq lr
+ mov r0, r5
+ bl FUN_020A2DBC
+_020A2DAC: ; 0x020A2DAC
+ orr r0, r4, r0
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+ .balign 4
+_020A2DB8: .word 0x00000468
+
+ arm_func_start FUN_020A2DBC
+FUN_020A2DBC:
+ stmdb sp!, {r4-r10,lr}
+ sub sp, sp, #0x8
+ mov r8, r0
+ ldr r0, [r8, #0x5a4]
+ mov r7, r1
+ cmp r0, #0x0
+ beq _020A2E14
+ ldr r0, [r8, #0x5a8]
+ cmp r0, #0x0
+ beq _020A2E14
+ ldr r0, [r7, #0x10]
+ cmp r0, #0x0
+ beq _020A2E14
+ ldr r0, [r7, #0xc]
+ cmp r0, #0x0
+ beq _020A2E14
+ ldr r0, [r7, #0x8]
+ cmp r0, #0x0
+ beq _020A2E14
+ ldr r0, [r7, #0x4]
+ cmp r0, #0x0
+ bne _020A2E24
+_020A2E14:
+ add sp, sp, #0x8
+ mov r0, #0x2
+ ldmia sp!, {r4-r10,lr}
+ bx lr
+_020A2E24:
+ mov r0, r0, lsl #0x1
+ ldr r1, _020A2F8C ; =0x021C8EC8
+ add r0, r0, r0, lsr #0x1f
+ mov r4, r0, asr #0x1
+ ldr r1, [r1, #0x0]
+ mov r0, r4, lsl #0x3
+ blx r1
+ movs r6, r0
+ addeq sp, sp, #0x8
+ moveq r0, #0x2
+ ldmeqia sp!, {r4-r10,lr}
+ bxeq lr
+ add r5, r6, r4, lsl #0x1
+ add r10, r5, r4, lsl #0x1
+ ldr r1, [r8, #0x5a4]
+ ldr r2, [r8, #0x5a8]
+ mov r0, r5
+ mov r3, r4
+ add r9, r10, r4, lsl #0x1
+ bl FUN_020A4B50
+ ldr r1, [r7, #0x10]
+ ldr r2, [r7, #0xc]
+ mov r0, r10
+ mov r3, r4
+ bl FUN_020A4B50
+ mov r0, r9
+ ldr r1, [r7, #0x8]
+ ldr r2, [r7, #0x4]
+ mov r3, r4
+ bl FUN_020A4B50
+ bl FUN_020A36EC
+ str r9, [sp, #0x0]
+ mov r2, r10
+ mov r9, r0
+ mov r0, r6
+ mov r1, r5
+ mov r3, r4
+ bl FUN_020A507C
+ mov r0, r9
+ bl FUN_020A36B4
+ mov r0, r5
+ mov r1, r6
+ ldr r2, [r7, #0x4]
+ mov r3, r4
+ bl FUN_020A4B08
+ ldrb r0, [r6, r4, lsl #0x1]
+ mov r4, #0x0
+ cmp r0, #0x0
+ bne _020A2EF4
+ ldrb r0, [r5, #0x1]
+ cmp r0, #0x1
+ beq _020A2EFC
+_020A2EF4:
+ mov r4, #0x2
+ b _020A2F6C
+_020A2EFC:
+ ldr r3, [r7, #0x4]
+ mov r2, #0x2
+ cmp r3, #0x2
+ ble _020A2F24
+_020A2F0C:
+ ldrb r0, [r5, r2]
+ cmp r0, #0xff
+ bne _020A2F24
+ add r2, r2, #0x1
+ cmp r2, r3
+ blt _020A2F0C
+_020A2F24:
+ add r1, r2, #0x1
+ cmp r1, r3
+ bge _020A2F68
+ ldrb r0, [r5, r2]
+ cmp r0, #0x0
+ bne _020A2F68
+ ldrb r0, [r5, r1]
+ cmp r0, #0x30
+ bne _020A2F68
+ ldr r0, _020A2F90 ; =0x00000468
+ ldr r2, [r8, #0x47c]
+ add r1, r5, r3
+ add r0, r8, r0
+ sub r1, r1, r2
+ bl memcmp
+_020A2F60: ; 0x020A2F60
+ cmp r0, #0x0
+ beq _020A2F6C
+_020A2F68:
+ mov r4, #0x2
+_020A2F6C:
+ ldr r1, _020A2F94 ; =0x021C8EF4
+ mov r0, r6
+ ldr r1, [r1, #0x0]
+ blx r1
+ mov r0, r4
+ add sp, sp, #0x8
+ ldmia sp!, {r4-r10,lr}
+ bx lr
+ .balign 4
+_020A2F8C: .word 0x021C8EC8
+_020A2F90: .word 0x00000468
+_020A2F94: .word 0x021C8EF4
+
+ arm_func_start FUN_020A2F98
+FUN_020A2F98:
+ stmdb sp!, {r4-r11,lr}
+ sub sp, sp, #0xc
+ str r1, [sp, #0x4]
+ ldr r1, [r1, #0x0]
+ mov r9, r0
+ str r1, [sp, #0x8]
+ add r0, r1, #0x1
+ str r0, [sp, #0x8]
+ add r0, sp, #0x8
+ mov r5, r2
+ mov r4, r3
+ ldr r8, [sp, #0x30]
+ ldrb r6, [r1, #0x0]
+ bl FUN_020A35D8
+ movs r7, r0
+ bmi _020A2FE0
+ cmp r7, #0x7d0
+ ble _020A2FF0
+_020A2FE0:
+ add sp, sp, #0xc
+ mov r0, #0x1
+ ldmia sp!, {r4-r11,lr}
+ bx lr
+_020A2FF0:
+ and r1, r6, #0x1f
+ cmp r1, #0x18
+ addls pc, pc, r1, lsl #0x2
+ b _020A3430
+_020A3000:
+ b _020A3430
+_020A3004:
+ b _020A3430
+_020A3008:
+ b _020A3064
+_020A300C:
+ b _020A315C
+_020A3010:
+ b _020A3430
+_020A3014:
+ b _020A3430
+_020A3018:
+ b _020A31DC
+_020A301C:
+ b _020A3430
+_020A3020:
+ b _020A3430
+_020A3024:
+ b _020A3430
+_020A3028:
+ b _020A3430
+_020A302C:
+ b _020A3430
+_020A3030:
+ b _020A3274
+_020A3034:
+ b _020A3430
+_020A3038:
+ b _020A3430
+_020A303C:
+ b _020A3430
+_020A3040:
+ b _020A3348
+_020A3044:
+ b _020A33D8
+_020A3048:
+ b _020A3430
+_020A304C:
+ b _020A3274
+_020A3050:
+ b _020A3274
+_020A3054:
+ b _020A3430
+_020A3058:
+ b _020A3274
+_020A305C:
+ b _020A32F4
+_020A3060:
+ b _020A32F4
+_020A3064:
+ ldrb r0, [r9, #0x5ad]
+ cmp r0, #0x0
+ beq _020A314C
+ cmp r4, #0x0
+ bne _020A30E0
+ ldr r0, [sp, #0x8]
+ ldrb r1, [r0, #0x0]
+ cmp r1, #0x0
+ bne _020A30A4
+_020A3088:
+ ldr r1, [sp, #0x8]
+ sub r7, r7, #0x1
+ add r0, r1, #0x1
+ str r0, [sp, #0x8]
+ ldrb r1, [r1, #0x1]
+ cmp r1, #0x0
+ beq _020A3088
+_020A30A4:
+ cmp r8, #0x0
+ beq _020A30C0
+ cmp r8, #0x2
+ streq r7, [r9, #0x484]
+ ldreq r0, [sp, #0x8]
+ streq r0, [r9, #0x488]
+ b _020A314C
+_020A30C0:
+ cmp r7, #0x100
+ bgt _020A314C
+ ldr r1, _020A34B8 ; =0x00000494
+ mov r2, r7
+ add r1, r9, r1
+ bl MI_CpuCopy8
+ str r7, [r9, #0x594]
+ b _020A314C
+_020A30E0:
+ cmp r4, #0x1
+ bne _020A314C
+ ldr r0, [sp, #0x8]
+ ldrb r1, [r0, #0x0]
+ cmp r1, #0x0
+ bne _020A3114
+_020A30F8:
+ ldr r1, [sp, #0x8]
+ sub r7, r7, #0x1
+ add r0, r1, #0x1
+ str r0, [sp, #0x8]
+ ldrb r1, [r1, #0x1]
+ cmp r1, #0x0
+ beq _020A30F8
+_020A3114:
+ cmp r8, #0x0
+ beq _020A3130
+ cmp r8, #0x2
+ streq r7, [r9, #0x48c]
+ ldreq r0, [sp, #0x8]
+ streq r0, [r9, #0x490]
+ b _020A314C
+_020A3130:
+ cmp r7, #0x8
+ bgt _020A314C
+ ldr r1, _020A34BC ; =0x00000598
+ mov r2, r7
+ add r1, r9, r1
+ bl MI_CpuCopy8
+ str r7, [r9, #0x5a0]
+_020A314C:
+ ldr r0, [sp, #0x8]
+ add r0, r0, r7
+ str r0, [sp, #0x8]
+ b _020A349C
+_020A315C:
+ cmp r5, #0x1
+ bne _020A317C
+ cmp r8, #0x2
+ ldrne r1, [sp, #0x8]
+ subne r0, r7, #0x1
+ addne r1, r1, #0x1
+ strne r1, [r9, #0x5a4]
+ strne r0, [r9, #0x5a8]
+_020A317C:
+ ldrb r0, [r9, #0x5ad]
+ cmp r0, #0x0
+ beq _020A31CC
+ ldr r0, [sp, #0x8]
+ add r1, sp, #0x8
+ add r0, r0, #0x1
+ str r0, [sp, #0x8]
+ mov r0, r9
+ mov r2, r5
+ mov r3, #0x0
+ str r8, [sp, #0x0]
+ bl FUN_020A2F98
+_020A31AC: ; 0x020A31AC
+ cmp r0, #0x0
+ addne sp, sp, #0xc
+ movne r0, #0x1
+ ldmneia sp!, {r4-r11,lr}
+ bxne lr
+ mov r0, #0x0
+ strb r0, [r9, #0x5ad]
+ b _020A349C
+_020A31CC:
+ ldr r0, [sp, #0x8]
+ add r0, r0, r7
+ str r0, [sp, #0x8]
+ b _020A349C
+_020A31DC:
+ ldr r5, [sp, #0x8]
+ mov r6, #0x0
+ ldr sl, _020A34C0 ; =0x02106278
+_020A31E8:
+ ldr r4, [r10, r6, lsl #0x2]
+ mov r0, r4
+ bl strlen
+ mov r2, r0
+ mov r0, r5
+ mov r1, r4
+ bl memcmp
+_020A3204: ; 0x020A3204
+ cmp r0, #0x0
+ bne _020A3258
+ cmp r6, #0x5
+ addls pc, pc, r6, lsl #0x2
+ b _020A3264
+_020A3218: ; 0x020A3218
+ b _020A3264
+_020A321C: ; 0x020A321C
+ b _020A3230
+_020A3220: ; 0x020A3220
+ b _020A3230
+_020A3224: ; 0x020A3224
+ b _020A3240
+_020A3228: ; 0x020A3228
+ b _020A3240
+_020A322C: ; 0x020A322C
+ b _020A324C
+_020A3230:
+ cmp r8, #0x0
+ streq r6, [r9, #0x45c]
+ strb r6, [r9, #0x5ad]
+ b _020A3264
+_020A3240:
+ cmp r8, #0x2
+ strne r6, [r9, #0x458]
+ b _020A3264
+_020A324C:
+ cmp r8, #0x2
+ strneb r6, [r9, #0x5ae]
+ b _020A3264
+_020A3258:
+ add r6, r6, #0x1
+ cmp r6, #0x6
+ blt _020A31E8
+_020A3264:
+ ldr r0, [sp, #0x8]
+ add r0, r0, r7
+ str r0, [sp, #0x8]
+ b _020A349C
+_020A3274:
+ cmp r8, #0x2
+ beq _020A32DC
+ ldrb r0, [r9, #0x5ac]
+ cmp r0, #0x0
+ beq _020A32CC
+ ldr r1, [sp, #0x8]
+ mov r2, r7
+ add r0, r9, #0x6b0
+ bl FUN_020A3554
+ ldrb r0, [r9, #0x5ae]
+ cmp r0, #0x5
+ bne _020A32DC
+ cmp r7, #0x4f
+ bgt _020A32DC
+ ldr r0, [sp, #0x8]
+ mov r2, r7
+ add r1, r9, #0x7b0
+ bl MI_CpuCopy8
+ add r0, r9, r7
+ mov r1, #0x0
+ strb r1, [r0, #0x7b0]
+ b _020A32DC
+_020A32CC:
+ ldr r1, [sp, #0x8]
+ mov r2, r7
+ add r0, r9, #0x5b0
+ bl FUN_020A3554
+_020A32DC:
+ mov r0, #0x0
+ strb r0, [r9, #0x5ae]
+ ldr r0, [sp, #0x8]
+ add r0, r0, r7
+ str r0, [sp, #0x8]
+ b _020A349C
+_020A32F4:
+ cmp r8, #0x2
+ beq _020A3330
+ ldr r0, [sp, #0x8]
+ bl FUN_020A34C4
+_020A3304: ; 0x020A3304
+ cmp r4, #0x0
+ bne _020A3320
+ ldr r1, [r9, #0x80c]
+ cmp r1, r0
+ movcs r0, #0x1
+ strcsb r0, [r9, #0x5af]
+ b _020A3330
+_020A3320:
+ ldr r1, [r9, #0x80c]
+ cmp r1, r0
+ movhi r0, #0x0
+ strhib r0, [r9, #0x5af]
+_020A3330:
+ ldr r1, [sp, #0x8]
+ mov r0, #0x1
+ add r1, r1, r7
+ str r1, [sp, #0x8]
+ strb r0, [r9, #0x5ac]
+ b _020A349C
+_020A3348:
+ cmp r5, #0x0
+ bne _020A3364
+ cmp r4, #0x0
+ bne _020A3364
+ cmp r8, #0x2
+ ldrne r0, [sp, #0x8]
+ strne r0, [r9, #0x460]
+_020A3364:
+ ldr r0, [sp, #0x8]
+ mov r10, #0x0
+ add r7, r0, r7
+ cmp r0, r7
+ bhs _020A33BC
+ add r11, sp, #0x8
+ add r6, r5, #0x1
+_020A3380:
+ mov r0, r9
+ mov r1, r11
+ mov r2, r6
+ mov r3, r10
+ str r8, [sp, #0x0]
+ bl FUN_020A2F98
+_020A3398: ; 0x020A3398
+ cmp r0, #0x0
+ add r10, r10, #0x1
+ addne sp, sp, #0xc
+ movne r0, #0x1
+ ldmneia sp!, {r4-r11,lr}
+ bxne lr
+ ldr r0, [sp, #0x8]
+ cmp r0, r7
+ blo _020A3380
+_020A33BC:
+ cmp r5, #0x1
+ bne _020A349C
+ cmp r4, #0x0
+ bne _020A349C
+ cmp r8, #0x2
+ strne r0, [r9, #0x464]
+ b _020A349C
+_020A33D8:
+ ldr r0, [sp, #0x8]
+ add r6, r0, r7
+ cmp r0, r6
+ bhs _020A349C
+ add r7, r5, #0x1
+ add r4, sp, #0x8
+ mov r5, #0x0
+_020A33F4:
+ mov r0, r9
+ mov r1, r4
+ mov r2, r7
+ mov r3, r5
+ str r8, [sp, #0x0]
+ bl FUN_020A2F98
+_020A340C: ; 0x020A340C
+ cmp r0, #0x0
+ addne sp, sp, #0xc
+ movne r0, #0x1
+ ldmneia sp!, {r4-r11,lr}
+ bxne lr
+ ldr r0, [sp, #0x8]
+ cmp r0, r6
+ blo _020A33F4
+ b _020A349C
+_020A3430:
+ cmp r6, #0xa0
+ bne _020A3490
+ ldr r0, [sp, #0x8]
+ add r6, r0, r7
+ cmp r0, r6
+ bhs _020A349C
+ add r7, r5, #0x1
+ add r4, sp, #0x8
+ mov r5, #0x0
+_020A3454:
+ mov r0, r9
+ mov r1, r4
+ mov r2, r7
+ mov r3, r5
+ str r8, [sp, #0x0]
+ bl FUN_020A2F98
+_020A346C: ; 0x020A346C
+ cmp r0, #0x0
+ addne sp, sp, #0xc
+ movne r0, #0x1
+ ldmneia sp!, {r4-r11,lr}
+ bxne lr
+ ldr r0, [sp, #0x8]
+ cmp r0, r6
+ blo _020A3454
+ b _020A349C
+_020A3490:
+ ldr r0, [sp, #0x8]
+ add r0, r0, r7
+ str r0, [sp, #0x8]
+_020A349C:
+ ldr r2, [sp, #0x8]
+ ldr r1, [sp, #0x4]
+ mov r0, #0x0
+ str r2, [r1, #0x0]
+ add sp, sp, #0xc
+ ldmia sp!, {r4-r11,lr}
+ bx lr
+ .balign 4
+_020A34B8: .word 0x00000494
+_020A34BC: .word 0x00000598
+_020A34C0: .word 0x02106278
+
+ arm_func_start FUN_020A34C4
+FUN_020A34C4:
+ stmdb sp!, {r4,lr}
+ ldrb r12, [r0, #0x1]
+ ldrb r3, [r0, #0x0]
+ mov r2, #0xa
+ cmp r1, #0x17
+ mla r1, r3, r2, r12
+ sub lr, r1, #0x210
+ add r0, r0, #0x2
+ bne _020A34FC
+ cmp lr, #0x32
+ ldrhs r1, _020A3550 ; =0x0000076C
+ addcc r4, lr, #0x7d0
+ addcs r4, lr, r1
+ b _020A3518
+_020A34FC:
+ ldrb r12, [r0, #0x1]
+ ldrb r3, [r0, #0x0]
+ mov r1, #0x64
+ add r0, r0, #0x2
+ mla r2, r3, r2, r12
+ sub r2, r2, #0x210
+ mla r4, lr, r1, r2
+_020A3518:
+ ldrb r12, [r0, #0x1]
+ ldrb r3, [r0, #0x0]
+ mov r1, #0xa
+ ldrb r2, [r0, #0x3]
+ ldrb r0, [r0, #0x2]
+ mla r12, r3, r1, r12
+ mla r1, r0, r1, r2
+ mov r2, r4, lsl #0x10
+ sub r0, r12, #0x210
+ add r2, r2, r0, lsl #0x8
+ sub r0, r1, #0x210
+ add r0, r2, r0
+ ldmia sp!, {r4,lr}
+ bx lr
+ .balign 4
+_020A3550: .word 0x0000076C
+
+ arm_func_start FUN_020A3554
+FUN_020A3554:
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldrsb r3, [r0, #0x0]
+ mov lr, r0
+ cmp r3, #0x0
+ beq _020A35AC
+_020A356C:
+ ldrsb r3, [r0, #0x1]!
+ cmp r3, #0x0
+ bne _020A356C
+ sub r3, r0, lr
+ cmp r3, #0xff
+ addge sp, sp, #0x4
+ ldmgeia sp!, {lr}
+ bxge lr
+ mov r3, #0x2c
+ strb r3, [r0, #0x0]
+ mov r3, #0x20
+ strb r3, [r0, #0x1]
+ add r0, r0, #0x2
+ b _020A35AC
+_020A35A4:
+ ldrsb r3, [r1], #0x1
+ strb r3, [r0], #0x1
+_020A35AC:
+ cmp r2, #0x0
+ sub r2, r2, #0x1
+ beq _020A35C4
+ sub r3, r0, lr
+ cmp r3, #0xff
+ blt _020A35A4
+_020A35C4:
+ mov r1, #0x0
+ strb r1, [r0, #0x0]
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+
+ arm_func_start FUN_020A35D8
+FUN_020A35D8: ; 0x020A35D8
+ ldr r1, [r0, #0x0]
+ ldrb r3, [r1, #0x0]
+ add r12, r1, #0x1
+ ands r1, r3, #0x80
+ beq _020A361C
+ ands r1, r3, #0x7f
+ sub r2, r1, #0x1
+ mov r3, #0x0
+ beq _020A361C
+_020A35FC:
+ ands r1, r3, #0xff000000
+ mvnne r0, #0x0
+ bxne lr
+ ldrb r1, [r12], #0x1
+ cmp r2, #0x0
+ sub r2, r2, #0x1
+ add r3, r1, r3, lsl #0x8
+ bne _020A35FC
+_020A361C:
+ str r12, [r0, #0x0]
+ mov r0, r3
+ bx lr
+
+ arm_func_start FUN_020A3628
+FUN_020A3628: ; 0x020A3628
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0x4
+ ldr r4, [r0, #0x818]
+ mov r7, r1
+ cmp r4, #0x0
+ mov r6, #0x0
+ ble _020A3678
+ ldr r5, [r0, #0x814]
+_020A3648:
+ ldr r0, [r5, r6, lsl #0x2]
+ mov r1, r7
+ ldr r0, [r0, #0x0]
+ bl strcmp
+_020A3658: ; 0x020A3658
+ cmp r0, #0x0
+ addeq sp, sp, #0x4
+ ldreq r0, [r5, r6, lsl #0x2]
+ ldmeqia sp!, {r4-r7,lr}
+ bxeq lr
+ add r6, r6, #0x1
+ cmp r6, r4
+ blt _020A3648
+_020A3678:
+ mov r0, #0x0
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r7,lr}
+ bx lr
+
+ arm_func_start FUN_020A3688
+FUN_020A3688: ; 0x020A3688
+ ldr r2, _020A36B0 ; =0x021D3498
+ ldr r2, [r2, #0x4]
+ ldr r2, [r2, #0xa4]
+ cmp r2, #0x0
+ bxeq lr
+ ldr r2, [r2, #0xc]
+ cmp r2, #0x0
+ strne r0, [r2, #0x814]
+ strne r1, [r2, #0x818]
+ bx lr
+ .balign 4
+_020A36B0: .word 0x021D3498
+
+ arm_func_start FUN_020A36B4
+FUN_020A36B4: ; 0x020A36B4
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ mov r1, r0
+ cmp r1, #0x20
+ addcs sp, sp, #0x4
+ ldmcsia sp!, {lr}
+ bxcs lr
+ ldr r0, _020A36E8 ; =0x021D3498
+ ldr r0, [r0, #0x4]
+ bl OS_SetThreadPriority
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+ .balign 4
+_020A36E8: .word 0x021D3498
+
+ arm_func_start FUN_020A36EC
+FUN_020A36EC: ; 0x020A36EC
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ ldr r0, _020A3744 ; =0x02106244
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x20
+ addcs sp, sp, #0x4
+ mvncs r0, #0x0
+ ldmcsia sp!, {r4-r5,lr}
+ bxcs lr
+ ldr r0, _020A3748 ; =0x021D3498
+ ldr r5, [r0, #0x4]
+ mov r0, r5
+ bl OS_GetThreadPriority
+ ldr r1, _020A3744 ; =0x02106244
+ mov r4, r0
+ ldr r1, [r1, #0x0]
+ mov r0, r5
+ bl OS_SetThreadPriority
+ mov r0, r4
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,lr}
+ bx lr
+ .balign 4
+_020A3744: .word 0x02106244
+_020A3748: .word 0x021D3498
+
+ arm_func_start FUN_020A374C
+FUN_020A374C: ; 0x020A374C
+ ldr r1, _020A3758 ; =0x02106244
+ str r0, [r1, #0x0]
+ bx lr
+ .balign 4
+_020A3758: .word 0x02106244
+
+ arm_func_start FUN_020A375C
+FUN_020A375C: ; 0x020A375C
+ stmdb sp!, {lr}
+ sub sp, sp, #0x1c
+ add r0, sp, #0x0
+ bl RTC_GetDate
+ add r0, sp, #0x10
+ bl RTC_GetTime
+_020A3774: ; 0x020A3774
+ add r0, sp, #0x0
+ add r1, sp, #0x10
+ bl RTC_ConvertDateTimeToSecond
+ ldr r1, _020A3794 ; =0x386D4380
+ add r0, r0, r1
+ add sp, sp, #0x1c
+ ldmia sp!, {lr}
+ bx lr
+ .balign 4
+_020A3794: .word 0x386D4380
+
+ arm_func_start FUN_020A3798
+FUN_020A3798:
+ stmdb sp!, {r4-r8,lr}
+ mov r4, r0
+ bl OS_DisableInterrupts
+ ldr r6, _020A3804 ; =0x021CA6FC
+ mov r7, r0
+ mov r8, #0x0
+ add r5, r4, #0x74
+ mov r4, #0x20
+_020A37B8:
+ ldrb r0, [r6, #0x5a]
+ cmp r0, #0x0
+ beq _020A37E4
+ mov r0, r6
+ mov r1, r5
+ mov r2, r4
+ bl memcmp
+_020A37D4: ; 0x020A37D4
+ cmp r0, #0x0
+ moveq r0, #0x0
+ streqb r0, [r6, #0x5a]
+ beq _020A37F4
+_020A37E4:
+ add r8, r8, #0x1
+ cmp r8, #0x4
+ add r6, r6, #0x5c
+ blt _020A37B8
+_020A37F4:
+ mov r0, r7
+ bl OS_RestoreInterrupts
+ ldmia sp!, {r4-r8,lr}
+ bx lr
+ .balign 4
+_020A3804: .word 0x021CA6FC
+
+ arm_func_start FUN_020A3808
+FUN_020A3808: ; 0x020A3808
+ stmdb sp!, {r4-r9,lr}
+ sub sp, sp, #0x4
+ mov r9, r0
+ mov r8, r1
+ mov r7, r2
+ bl OS_DisableInterrupts
+ mov r5, r0
+ bl OS_GetTick
+ ldr r6, _020A3904 ; =0x021CA6FC
+ mov r4, r0, lsr #0x10
+ mov r3, #0x0
+ mov r12, r3
+ mov r2, r6
+ orr r4, r4, r1, lsl #0x10
+ mvn r0, #0x0
+_020A3844:
+ ldrb r1, [r2, #0x5a]
+ cmp r1, #0x0
+ beq _020A387C
+ cmp r8, #0x0
+ beq _020A387C
+ ldr lr, [r2, #0x54]
+ cmp r8, lr
+ bne _020A387C
+ cmp r7, #0x0
+ beq _020A387C
+ ldrh lr, [r2, #0x58]
+ cmp r7, lr
+ moveq r6, r2
+ beq _020A38BC
+_020A387C:
+ mvn lr, #0x0
+ cmp r3, lr
+ beq _020A38AC
+ cmp r1, #0x0
+ moveq r3, r0
+ moveq r6, r2
+ beq _020A38AC
+ ldr r1, [r2, #0x50]
+ sub r1, r4, r1
+ cmp r1, r3
+ movhi r3, r1
+ movhi r6, r2
+_020A38AC:
+ add r12, r12, #0x1
+ cmp r12, #0x4
+ add r2, r2, #0x5c
+ blt _020A3844
+_020A38BC:
+ mov r1, r6
+ add r0, r9, #0x74
+ mov r2, #0x20
+ bl MI_CpuCopy8
+ mov r0, r9
+ add r1, r6, #0x20
+ mov r2, #0x30
+ bl MI_CpuCopy8
+ str r4, [r6, #0x50]
+ mov r0, #0x1
+ strb r0, [r6, #0x5a]
+ str r8, [r6, #0x54]
+ mov r0, r5
+ strh r7, [r6, #0x58]
+ bl OS_RestoreInterrupts
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r9,lr}
+ bx lr
+ .balign 4
+_020A3904: .word 0x021CA6FC
+
+ arm_func_start FUN_020A3908
+FUN_020A3908: ; 0x020A3908
+ stmdb sp!, {r4-r8,lr}
+ mov r8, r0
+ mov r7, r1
+ mov r6, r2
+ bl OS_DisableInterrupts
+ mov r1, #0x0
+ ldr r4, _020A39AC ; =0x021CA6FC
+ mov r5, r0
+ strb r1, [r8, #0x30]
+_020A392C:
+ ldrb r0, [r4, #0x5a]
+ cmp r0, #0x0
+ beq _020A398C
+ ldr r0, [r4, #0x54]
+ cmp r0, r7
+ bne _020A398C
+ ldrh r0, [r4, #0x58]
+ cmp r0, r6
+ bne _020A398C
+ mov r0, r4
+ add r1, r8, #0x74
+ mov r2, #0x20
+ bl MI_CpuCopy8
+ mov r1, r8
+ add r0, r4, #0x20
+ mov r2, #0x30
+ bl MI_CpuCopy8
+ bl OS_GetTick
+ mov r0, r0, lsr #0x10
+ orr r0, r0, r1, lsl #0x10
+ str r0, [r4, #0x50]
+ mov r0, #0x1
+ strb r0, [r8, #0x30]
+ b _020A399C
+_020A398C:
+ add r1, r1, #0x1
+ cmp r1, #0x4
+ add r4, r4, #0x5c
+ blt _020A392C
+_020A399C:
+ mov r0, r5
+ bl OS_RestoreInterrupts
+ ldmia sp!, {r4-r8,lr}
+ bx lr
+ .balign 4
+_020A39AC: .word 0x021CA6FC
+
+ arm_func_start FUN_020A39B0
+FUN_020A39B0: ; 0x020A39B0
+ stmdb sp!, {r4-r9,lr}
+ sub sp, sp, #0x4
+ mov r7, r0
+ bl OS_DisableInterrupts
+ mov r6, #0x0
+ ldr r4, _020A3A54 ; =0x021CA6FC
+ mov r5, r0
+ strb r6, [r7, #0x30]
+ add r9, r7, #0x74
+ mov r8, #0x20
+_020A39D8:
+ ldrb r0, [r4, #0x5a]
+ cmp r0, #0x0
+ beq _020A3A30
+ ldr r0, [r4, #0x54]
+ cmp r0, #0x0
+ bne _020A3A30
+ ldrh r0, [r4, #0x58]
+ cmp r0, #0x0
+ bne _020A3A30
+ mov r0, r4
+ mov r1, r9
+ mov r2, r8
+ bl memcmp
+_020A3A0C: ; 0x020A3A0C
+ cmp r0, #0x0
+ bne _020A3A30
+ mov r1, r7
+ add r0, r4, #0x20
+ mov r2, #0x30
+ bl MI_CpuCopy8
+ mov r0, #0x1
+ strb r0, [r7, #0x30]
+ b _020A3A40
+_020A3A30:
+ add r6, r6, #0x1
+ cmp r6, #0x4
+ add r4, r4, #0x5c
+ blt _020A39D8
+_020A3A40:
+ mov r0, r5
+ bl OS_RestoreInterrupts
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r9,lr}
+ bx lr
+ .balign 4
+_020A3A54: .word 0x021CA6FC
+
+ arm_func_start FUN_020A3A58
+FUN_020A3A58: ; 0x020A3A58
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ mov r5, r0
+ mov r4, r1
+ mov r0, r4
+ add r1, r5, #0x10
+ mov r2, #0x8
+ bl FUN_020A4044
+ ldr r0, [r5, #0x10]
+ ldr r1, _020A3AC8 ; =0x021062EC
+ mov r0, r0, lsr #0x3
+ and r0, r0, #0x3f
+ cmp r0, #0x38
+ rsblt r2, r0, #0x38
+ rsbge r2, r0, #0x78
+ mov r0, r5
+ bl FUN_020A3ACC
+ mov r0, r5
+ mov r1, r4
+ mov r2, #0x8
+ bl FUN_020A3ACC
+ mov r0, r4
+ mov r1, r5
+ mov r2, #0x10
+ bl FUN_020A4044
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,lr}
+ bx lr
+ .balign 4
+_020A3AC8: .word 0x021062EC
+
+ arm_func_start FUN_020A3ACC
+FUN_020A3ACC:
+ stmdb sp!, {r4-r8,lr}
+ mov r8, r0
+ ldr r3, [r8, #0x10]
+ mov r6, r2
+ add r0, r3, r6, lsl #0x3
+ str r0, [r8, #0x10]
+ ldr r0, [r8, #0x10]
+ mov r2, r3, lsr #0x3
+ cmp r0, r6, lsl #0x3
+ ldrcc r0, [r8, #0x14]
+ and r4, r2, #0x3f
+ addcc r0, r0, #0x1
+ strcc r0, [r8, #0x14]
+ ldr r0, [r8, #0x14]
+ rsb r5, r4, #0x40
+ add r0, r0, r6, lsr #0x1d
+ mov r7, r1
+ str r0, [r8, #0x14]
+ cmp r6, r5
+ blo _020A3B6C
+ add r1, r8, #0x18
+ mov r0, r7
+ mov r2, r5
+ add r1, r1, r4
+ bl MI_CpuCopy8
+ mov r0, r8
+ add r1, r8, #0x18
+ mov r4, #0x0
+ bl FUN_020A3BD8
+ add r0, r5, #0x3f
+ cmp r0, r6
+ bhs _020A3B70
+_020A3B4C:
+ mov r0, r8
+ add r1, r7, r5
+ bl FUN_020A3BD8
+ add r5, r5, #0x40
+ add r0, r5, #0x3f
+ cmp r0, r6
+ blo _020A3B4C
+ b _020A3B70
+_020A3B6C:
+ mov r5, #0x0
+_020A3B70:
+ add r1, r8, #0x18
+ add r0, r7, r5
+ add r1, r1, r4
+ sub r2, r6, r5
+ bl MI_CpuCopy8
+ ldmia sp!, {r4-r8,lr}
+ bx lr
+
+ arm_func_start FUN_020A3B8C
+FUN_020A3B8C: ; 0x020A3B8C
+ stmdb sp!, {r4,lr}
+ mov r1, #0x0
+ mov r2, #0x58
+ mov r4, r0
+ bl MI_CpuFill8
+ ldr r1, _020A3BC8 ; =0x67452301
+ ldr r0, _020A3BCC ; =0xEFCDAB89
+ str r1, [r4, #0x0]
+ ldr r1, _020A3BD0 ; =0x98BADCFE
+ str r0, [r4, #0x4]
+ ldr r0, _020A3BD4 ; =0x10325476
+ str r1, [r4, #0x8]
+ str r0, [r4, #0xc]
+ ldmia sp!, {r4,lr}
+ bx lr
+ .balign 4
+_020A3BC8: .word 0x67452301
+_020A3BCC: .word 0xEFCDAB89
+_020A3BD0: .word 0x98BADCFE
+_020A3BD4: .word 0x10325476
+
+ arm_func_start FUN_020A3BD8
+FUN_020A3BD8: ; 0x020A3BD8
+ stmdb sp!, {r4-r11,lr}
+ sub sp, sp, #0x44
+ str r0, [sp, #0x0]
+ ldr r3, [sp, #0x0]
+ add r0, sp, #0x4
+ mov r2, #0x40
+ ldr r7, [r3, #0x0]
+ ldr r6, [r3, #0x4]
+ ldr r5, [r3, #0x8]
+ ldr r4, [r3, #0xc]
+ bl FUN_020A402C
+ ldr r2, _020A4024 ; =0x021062AC
+ mov r3, #0x0
+ ldr r1, _020A4028 ; =0x0210632C
+ mov r11, r3
+ add r0, sp, #0x4
+ mov r10, r2
+_020A3C1C:
+ ldrb r9, [r2, #0x0]
+ add r8, r3, #0x1
+ eor r12, r5, r4
+ and r12, r6, r12
+ eor r12, r4, r12
+ ldr r9, [r0, r9, lsl #0x2]
+ ldr lr, [r1, r3, lsl #0x2]
+ add r9, r12, r9
+ add r9, lr, r9
+ add r9, r7, r9
+ mov r7, r9, lsl #0x7
+ orr r7, r7, r9, lsr #0x19
+ ldrb r9, [r10, r8]
+ add r7, r6, r7
+ ldr r8, [r1, r8, lsl #0x2]
+ ldr r9, [r0, r9, lsl #0x2]
+ eor r12, r6, r5
+ and r12, r7, r12
+ eor r12, r5, r12
+ add r9, r12, r9
+ add r9, r8, r9
+ add r8, r3, #0x2
+ add r9, r4, r9
+ mov r4, r9, lsl #0xc
+ orr r4, r4, r9, lsr #0x14
+ add r4, r7, r4
+ ldr r9, [r1, r8, lsl #0x2]
+ ldrb r12, [r10, r8]
+ eor r8, r7, r6
+ and r8, r4, r8
+ eor r8, r6, r8
+ ldr lr, [r0, r12, lsl #0x2]
+ add r12, r3, #0x3
+ add r8, r8, lr
+ add r8, r9, r8
+ add r8, r5, r8
+ mov r5, r8, lsl #0x11
+ orr r5, r5, r8, lsr #0xf
+ add r5, r4, r5
+ ldr r9, [r1, r12, lsl #0x2]
+ ldrb r12, [r10, r12]
+ eor r8, r4, r7
+ and r8, r5, r8
+ eor r8, r7, r8
+ ldr r12, [r0, r12, lsl #0x2]
+ add r2, r2, #0x4
+ add r8, r8, r12
+ add r8, r9, r8
+ add r8, r6, r8
+ mov r6, r8, lsl #0x16
+ orr r6, r6, r8, lsr #0xa
+ add r6, r5, r6
+ add r3, r3, #0x4
+ add r11, r11, #0x1
+ cmp r11, #0x4
+ blt _020A3C1C
+ add r8, r10, r3
+ mov r2, #0x0
+ ldr r1, _020A4028 ; =0x0210632C
+ add r0, sp, #0x4
+ ldr lr, _020A4024 ; =0x021062AC
+_020A3D10:
+ ldrb r10, [r8, #0x0]
+ add r9, r3, #0x1
+ eor r11, r6, r5
+ and r11, r4, r11
+ eor r11, r5, r11
+ ldr r10, [r0, r10, lsl #0x2]
+ ldr r12, [r1, r3, lsl #0x2]
+ add r10, r11, r10
+ add r10, r12, r10
+ add r10, r7, r10
+ mov r7, r10, lsl #0x5
+ orr r7, r7, r10, lsr #0x1b
+ ldrb r10, [lr, r9]
+ add r7, r6, r7
+ ldr r9, [r1, r9, lsl #0x2]
+ ldr r10, [r0, r10, lsl #0x2]
+ eor r11, r7, r6
+ and r11, r5, r11
+ eor r11, r6, r11
+ add r10, r11, r10
+ add r10, r9, r10
+ add r9, r3, #0x2
+ add r10, r4, r10
+ mov r4, r10, lsl #0x9
+ orr r4, r4, r10, lsr #0x17
+ add r4, r7, r4
+ ldr r12, [r1, r9, lsl #0x2]
+ ldrb r9, [lr, r9]
+ eor r10, r4, r7
+ and r10, r6, r10
+ eor r11, r7, r10
+ ldr r10, [r0, r9, lsl #0x2]
+ add r9, r3, #0x3
+ add r10, r11, r10
+ add r10, r12, r10
+ add r10, r5, r10
+ mov r5, r10, lsl #0xe
+ orr r5, r5, r10, lsr #0x12
+ add r5, r4, r5
+ ldr r10, [r1, r9, lsl #0x2]
+ ldrb r11, [lr, r9]
+ eor r9, r5, r4
+ and r9, r7, r9
+ eor r9, r4, r9
+ ldr r11, [r0, r11, lsl #0x2]
+ add r8, r8, #0x4
+ add r9, r9, r11
+ add r9, r10, r9
+ add r9, r6, r9
+ mov r6, r9, lsl #0x14
+ orr r6, r6, r9, lsr #0xc
+ add r6, r5, r6
+ add r3, r3, #0x4
+ add r2, r2, #0x1
+ cmp r2, #0x4
+ blt _020A3D10
+ add r8, lr, r3
+ mov lr, #0x0
+ ldr r2, _020A4028 ; =0x0210632C
+ add r0, sp, #0x4
+_020A3E00:
+ ldrb r1, [r8, #0x0]
+ eor r12, r6, r5
+ add lr, lr, #0x1
+ ldr r11, [r0, r1, lsl #0x2]
+ eor r12, r4, r12
+ ldr r1, [r2, r3, lsl #0x2]
+ add r11, r12, r11
+ add r1, r1, r11
+ add r7, r7, r1
+ mov r1, r7, lsl #0x4
+ orr r1, r1, r7, lsr #0x1c
+ add r7, r6, r1
+ add r10, r3, #0x1
+ ldr r1, _020A4024 ; =0x021062AC
+ ldr r12, [r2, r10, lsl #0x2]
+ ldrb r1, [r1, r10]
+ eor r10, r7, r6
+ eor r11, r5, r10
+ ldr r10, [r0, r1, lsl #0x2]
+ add r9, r3, #0x2
+ add r10, r11, r10
+ add r10, r12, r10
+ add r4, r4, r10
+ ldr sl, _020A4024 ; =0x021062AC
+ ldr r1, [r2, r9, lsl #0x2]
+ ldrb r9, [r10, r9]
+ mov r10, r4, lsl #0xb
+ orr r4, r10, r4, lsr #0x15
+ add r4, r7, r4
+ eor r10, r4, r7
+ ldr r9, [r0, r9, lsl #0x2]
+ eor r10, r6, r10
+ add r9, r10, r9
+ add r1, r1, r9
+ add r5, r5, r1
+ add r10, r3, #0x3
+ ldr sb, _020A4024 ; =0x021062AC
+ mov r1, r5, lsl #0x10
+ ldrb r9, [r9, r10]
+ orr r1, r1, r5, lsr #0x10
+ add r5, r4, r1
+ ldr r1, [r2, r10, lsl #0x2]
+ eor r10, r5, r4
+ ldr r9, [r0, r9, lsl #0x2]
+ eor r10, r7, r10
+ add r9, r10, r9
+ add r1, r1, r9
+ add r6, r6, r1
+ mov r1, r6, lsl #0x17
+ orr r1, r1, r6, lsr #0x9
+ add r8, r8, #0x4
+ add r6, r5, r1
+ add r3, r3, #0x4
+ cmp lr, #0x4
+ blt _020A3E00
+ ldr r0, _020A4024 ; =0x021062AC
+ ldr r1, _020A4028 ; =0x0210632C
+ add r8, r0, r3
+ ldr lr, _020A4024 ; =0x021062AC
+ mov r2, #0x0
+ add r0, sp, #0x4
+_020A3EF4:
+ ldrb r10, [r8, #0x0]
+ add r9, r3, #0x1
+ mvn r11, r4
+ orr r11, r6, r11
+ eor r11, r5, r11
+ ldr r10, [r0, r10, lsl #0x2]
+ ldr r12, [r1, r3, lsl #0x2]
+ add r10, r11, r10
+ add r10, r12, r10
+ add r10, r7, r10
+ mov r7, r10, lsl #0x6
+ orr r7, r7, r10, lsr #0x1a
+ ldrb r10, [lr, r9]
+ add r7, r6, r7
+ ldr r9, [r1, r9, lsl #0x2]
+ ldr r10, [r0, r10, lsl #0x2]
+ mvn r11, r5
+ orr r11, r7, r11
+ eor r11, r6, r11
+ add r10, r11, r10
+ add r10, r9, r10
+ add r9, r3, #0x2
+ add r10, r4, r10
+ mov r4, r10, lsl #0xa
+ orr r4, r4, r10, lsr #0x16
+ add r4, r7, r4
+ ldr r12, [r1, r9, lsl #0x2]
+ ldrb r9, [lr, r9]
+ mvn r10, r6
+ orr r10, r4, r10
+ eor r11, r7, r10
+ ldr r10, [r0, r9, lsl #0x2]
+ add r9, r3, #0x3
+ add r10, r11, r10
+ add r10, r12, r10
+ add r10, r5, r10
+ mov r5, r10, lsl #0xf
+ orr r5, r5, r10, lsr #0x11
+ add r5, r4, r5
+ ldr r10, [r1, r9, lsl #0x2]
+ ldrb r11, [lr, r9]
+ mvn r9, r7
+ orr r9, r5, r9
+ eor r9, r4, r9
+ ldr r11, [r0, r11, lsl #0x2]
+ add r8, r8, #0x4
+ add r9, r9, r11
+ add r9, r10, r9
+ add r9, r6, r9
+ mov r6, r9, lsl #0x15
+ orr r6, r6, r9, lsr #0xb
+ add r6, r5, r6
+ add r3, r3, #0x4
+ add r2, r2, #0x1
+ cmp r2, #0x4
+ blt _020A3EF4
+ ldr r0, [sp, #0x0]
+ ldr r0, [r0, #0x0]
+ add r1, r0, r7
+ ldr r0, [sp, #0x0]
+ str r1, [r0, #0x0]
+ ldr r0, [r0, #0x4]
+ add r1, r0, r6
+ ldr r0, [sp, #0x0]
+ str r1, [r0, #0x4]
+ ldr r0, [r0, #0x8]
+ add r1, r0, r5
+ ldr r0, [sp, #0x0]
+ str r1, [r0, #0x8]
+ ldr r0, [r0, #0xc]
+ add r1, r0, r4
+ ldr r0, [sp, #0x0]
+ str r1, [r0, #0xc]
+ add sp, sp, #0x44
+ ldmia sp!, {r4-r11,lr}
+ bx lr
+ .balign 4
+_020A4024: .word 0x021062AC
+_020A4028: .word 0x0210632C
+
+ arm_func_start FUN_020A402C
+FUN_020A402C: ; 0x020A402C
+ ldr ip, _020A4040 ; =MI_CpuCopy8
+ mov r3, r0
+ mov r0, r1
+ mov r1, r3
+ bx r12
+ .balign 4
+_020A4040: .word MI_CpuCopy8
+
+ arm_func_start FUN_020A4044
+FUN_020A4044: ; 0x020A4044
+ ldr ip, _020A4058 ; =MI_CpuCopy8
+ mov r3, r0
+ mov r0, r1
+ mov r1, r3
+ bx r12
+ .balign 4
+_020A4058: .word MI_CpuCopy8
+
+ arm_func_start FUN_020A405C
+FUN_020A405C: ; 0x020A405C
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ mov r4, r1
+ ldr r1, _020A4094 ; =0x0210642D
+ mov r5, r0
+ mov r2, #0x2c
+ bl FUN_020A410C
+ mov r0, r4
+ mov r1, r5
+ mov r2, #0x14
+ bl FUN_020A4930
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,lr}
+ bx lr
+ .balign 4
+_020A4094: .word 0x0210642D
+
+ arm_func_start FUN_020A4098
+FUN_020A4098: ; 0x020A4098
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ mov r5, r0
+ mov r4, r1
+ mov r0, r4
+ add r1, r5, #0x14
+ mov r2, #0x8
+ bl FUN_020A4930
+ ldr r0, [r5, #0x18]
+ ldr r1, _020A4108 ; =0x0210642C
+ mov r0, r0, lsr #0x3
+ and r0, r0, #0x3f
+ cmp r0, #0x38
+ rsblt r2, r0, #0x38
+ rsbge r2, r0, #0x78
+ mov r0, r5
+ bl FUN_020A410C
+ mov r0, r5
+ mov r1, r4
+ mov r2, #0x8
+ bl FUN_020A410C
+ mov r0, r4
+ mov r1, r5
+ mov r2, #0x14
+ bl FUN_020A4930
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,lr}
+ bx lr
+ .balign 4
+_020A4108: .word 0x0210642C
+
+ arm_func_start FUN_020A410C
+FUN_020A410C:
+ stmdb sp!, {r4-r8,lr}
+ mov r8, r0
+ ldr r3, [r8, #0x18]
+ mov r6, r2
+ add r0, r3, r6, lsl #0x3
+ str r0, [r8, #0x18]
+ ldr r0, [r8, #0x18]
+ mov r2, r3, lsr #0x3
+ cmp r0, r6, lsl #0x3
+ ldrcc r0, [r8, #0x14]
+ and r4, r2, #0x3f
+ addcc r0, r0, #0x1
+ strcc r0, [r8, #0x14]
+ ldr r0, [r8, #0x14]
+ rsb r5, r4, #0x40
+ add r0, r0, r6, lsr #0x1d
+ mov r7, r1
+ str r0, [r8, #0x14]
+ cmp r6, r5
+ blo _020A41AC
+ add r1, r8, #0x1c
+ mov r0, r7
+ mov r2, r5
+ add r1, r1, r4
+ bl MI_CpuCopy8
+ mov r0, r8
+ add r1, r8, #0x1c
+ mov r4, #0x0
+ bl FUN_020A4224
+ add r0, r5, #0x3f
+ cmp r0, r6
+ bhs _020A41B0
+_020A418C:
+ mov r0, r8
+ add r1, r7, r5
+ bl FUN_020A4224
+ add r5, r5, #0x40
+ add r0, r5, #0x3f
+ cmp r0, r6
+ blo _020A418C
+ b _020A41B0
+_020A41AC:
+ mov r5, #0x0
+_020A41B0:
+ add r1, r8, #0x1c
+ add r0, r7, r5
+ add r1, r1, r4
+ sub r2, r6, r5
+ bl MI_CpuCopy8
+ ldmia sp!, {r4-r8,lr}
+ bx lr
+
+ arm_func_start FUN_020A41CC
+FUN_020A41CC: ; 0x020A41CC
+ stmdb sp!, {r4,lr}
+ mov r1, #0x0
+ mov r2, #0x5c
+ mov r4, r0
+ bl MI_CpuFill8
+ ldr r0, _020A4210 ; =0x67452301
+ ldr r1, _020A4214 ; =0xEFCDAB89
+ str r0, [r4, #0x0]
+ ldr r0, _020A4218 ; =0x98BADCFE
+ str r1, [r4, #0x4]
+ ldr r1, _020A421C ; =0x10325476
+ str r0, [r4, #0x8]
+ ldr r0, _020A4220 ; =0xC3D2E1F0
+ str r1, [r4, #0xc]
+ str r0, [r4, #0x10]
+ ldmia sp!, {r4,lr}
+ bx lr
+ .balign 4
+_020A4210: .word 0x67452301
+_020A4214: .word 0xEFCDAB89
+_020A4218: .word 0x98BADCFE
+_020A421C: .word 0x10325476
+_020A4220: .word 0xC3D2E1F0
+
+ arm_func_start FUN_020A4224
+FUN_020A4224: ; 0x020A4224
+ stmdb sp!, {r4-r11,lr}
+ sub sp, sp, #0x54
+ str r0, [sp, #0x0]
+ ldr r3, [sp, #0x0]
+ add r0, sp, #0x10
+ mov r2, #0x40
+ ldr r6, [r3, #0x0]
+ ldr r7, [r3, #0x4]
+ ldr r8, [r3, #0x8]
+ ldr r5, [r3, #0xc]
+ ldr r4, [r3, #0x10]
+ bl FUN_020A48CC
+ mov r2, #0x0
+ ldr r3, _020A48BC ; =0x5A827999
+ mov r0, r2
+ add r1, sp, #0x10
+_020A4264:
+ eor r9, r8, r5
+ mov r10, r6, lsl #0x5
+ and r9, r7, r9
+ orr r10, r10, r6, lsr #0x1b
+ eor r9, r5, r9
+ mov r11, r7, lsl #0x1e
+ orr r7, r11, r7, lsr #0x2
+ eor r11, r7, r8
+ add r9, r10, r9
+ ldr r12, [r1, r2, lsl #0x2]
+ and r10, r6, r11
+ add r9, r12, r9
+ add r9, r9, r3
+ add r4, r4, r9
+ add r9, r2, #0x1
+ ldr r9, [r1, r9, lsl #0x2]
+ eor r10, r8, r10
+ mov r11, r4, lsl #0x5
+ orr r11, r11, r4, lsr #0x1b
+ add r10, r11, r10
+ add r10, r9, r10
+ mov r9, r6, lsl #0x1e
+ add r10, r10, r3
+ add r5, r5, r10
+ orr r6, r9, r6, lsr #0x2
+ add r9, r2, #0x2
+ ldr r10, [r1, r9, lsl #0x2]
+ mov r9, r5, lsl #0x5
+ orr r9, r9, r5, lsr #0x1b
+ eor r11, r6, r7
+ and r11, r4, r11
+ eor r11, r7, r11
+ add r9, r9, r11
+ add r9, r10, r9
+ add r9, r9, r3
+ add r8, r8, r9
+ mov r9, r4, lsl #0x1e
+ orr r4, r9, r4, lsr #0x2
+ add r9, r2, #0x3
+ ldr r10, [r1, r9, lsl #0x2]
+ mov r9, r8, lsl #0x5
+ orr r9, r9, r8, lsr #0x1b
+ eor r11, r4, r6
+ and r11, r5, r11
+ eor r11, r6, r11
+ add r9, r9, r11
+ add r9, r10, r9
+ add r9, r9, r3
+ add r7, r7, r9
+ mov r9, r5, lsl #0x1e
+ orr r5, r9, r5, lsr #0x2
+ add r9, r2, #0x4
+ ldr r10, [r1, r9, lsl #0x2]
+ mov r9, r7, lsl #0x5
+ orr r9, r9, r7, lsr #0x1b
+ eor r11, r5, r4
+ and r11, r8, r11
+ eor r11, r4, r11
+ add r9, r9, r11
+ add r9, r10, r9
+ add r9, r9, r3
+ add r6, r6, r9
+ mov r9, r8, lsl #0x1e
+ orr r8, r9, r8, lsr #0x2
+ add r2, r2, #0x5
+ add r0, r0, #0x1
+ cmp r0, #0x3
+ blt _020A4264
+ eor r0, r8, r5
+ mov r2, r6, lsl #0x5
+ and r0, r7, r0
+ orr r3, r2, r6, lsr #0x1b
+ eor r0, r5, r0
+ add r3, r3, r0
+ ldr r9, [sp, #0x4c]
+ ldr r0, _020A48BC ; =0x5A827999
+ add r3, r9, r3
+ add r3, r3, r0
+ mov r2, r7, lsl #0x1e
+ orr r9, r2, r7, lsr #0x2
+ mov r0, #0x0
+ add r4, r4, r3
+ bl FUN_020A4988
+ eor r1, r9, r8
+ mov r3, r4, lsl #0x5
+ and r1, r6, r1
+ mov r2, r6, lsl #0x1e
+ orr r3, r3, r4, lsr #0x1b
+ eor r1, r8, r1
+ add r1, r3, r1
+ add r3, r1, r0
+ ldr r0, _020A48BC ; =0x5A827999
+ add r1, sp, #0x10
+ add r3, r3, r0
+ orr r10, r2, r6, lsr #0x2
+ mov r0, #0x1
+ add r5, r5, r3
+ bl FUN_020A4988
+ eor r1, r10, r9
+ mov r2, r5, lsl #0x5
+ and r1, r4, r1
+ orr r2, r2, r5, lsr #0x1b
+ eor r1, r9, r1
+ add r1, r2, r1
+ add r2, r1, r0
+ ldr r0, _020A48BC ; =0x5A827999
+ mov r1, r4, lsl #0x1e
+ add r0, r2, r0
+ orr r6, r1, r4, lsr #0x2
+ add r8, r8, r0
+ add r1, sp, #0x10
+ mov r0, #0x2
+ bl FUN_020A4988
+ mov r1, r8, lsl #0x5
+ orr r2, r1, r8, lsr #0x1b
+ eor r1, r6, r10
+ and r1, r5, r1
+ eor r1, r10, r1
+ add r1, r2, r1
+ add r2, r1, r0
+ ldr r0, _020A48BC ; =0x5A827999
+ mov r1, r5, lsl #0x1e
+ add r0, r2, r0
+ orr r7, r1, r5, lsr #0x2
+ add r9, r9, r0
+ mov r0, #0x3
+ add r1, sp, #0x10
+ bl FUN_020A4988
+ mov r1, r9, lsl #0x5
+ orr r2, r1, r9, lsr #0x1b
+ eor r1, r7, r6
+ and r1, r8, r1
+ eor r1, r6, r1
+ add r1, r2, r1
+ add r2, r1, r0
+ ldr r0, _020A48BC ; =0x5A827999
+ mov r1, r8, lsl #0x1e
+ add r0, r2, r0
+ add r10, r10, r0
+ mov r0, #0x0
+ ldr r4, _020A48C0 ; =0x6ED9EBA1
+ orr r8, r1, r8, lsr #0x2
+ mov r5, #0x4
+ str r0, [sp, #0xc]
+ add r11, sp, #0x10
+_020A44A8:
+ mov r0, r5
+ mov r1, r11
+ bl FUN_020A4988
+ mov r2, r10, lsl #0x5
+ eor r1, r9, r8
+ orr r2, r2, r10, lsr #0x1b
+ eor r1, r7, r1
+ add r1, r2, r1
+ add r0, r1, r0
+ add r1, r0, r4
+ mov r0, r9, lsl #0x1e
+ add r6, r6, r1
+ orr r9, r0, r9, lsr #0x2
+ add r0, r5, #0x1
+ mov r1, r11
+ bl FUN_020A4988
+ mov r1, r6, lsl #0x5
+ orr r2, r1, r6, lsr #0x1b
+ eor r1, r10, r9
+ eor r1, r8, r1
+ add r1, r2, r1
+ add r0, r1, r0
+ add r0, r0, r4
+ add r7, r7, r0
+ mov r0, r10, lsl #0x1e
+ orr r10, r0, r10, lsr #0x2
+ add r0, r5, #0x2
+ and r5, r0, #0xf
+ mov r0, r5
+ mov r1, r11
+ bl FUN_020A4988
+ mov r1, r7, lsl #0x5
+ orr r2, r1, r7, lsr #0x1b
+ eor r1, r6, r10
+ eor r1, r9, r1
+ add r1, r2, r1
+ add r0, r1, r0
+ add r0, r0, r4
+ add r8, r8, r0
+ mov r0, r6, lsl #0x1e
+ orr r6, r0, r6, lsr #0x2
+ add r0, r5, #0x1
+ mov r1, r11
+ bl FUN_020A4988
+ mov r1, r8, lsl #0x5
+ orr r2, r1, r8, lsr #0x1b
+ eor r1, r7, r6
+ eor r1, r10, r1
+ add r1, r2, r1
+ add r0, r1, r0
+ add r0, r0, r4
+ add r9, r9, r0
+ mov r0, r7, lsl #0x1e
+ orr r7, r0, r7, lsr #0x2
+ add r0, r5, #0x2
+ mov r1, r11
+ bl FUN_020A4988
+ mov r1, r9, lsl #0x5
+ orr r2, r1, r9, lsr #0x1b
+ eor r1, r8, r7
+ eor r1, r6, r1
+ add r1, r2, r1
+ add r0, r1, r0
+ add r0, r0, r4
+ add r10, r10, r0
+ mov r0, r8, lsl #0x1e
+ orr r8, r0, r8, lsr #0x2
+ ldr r0, [sp, #0xc]
+ add r5, r5, #0x3
+ add r0, r0, #0x1
+ str r0, [sp, #0xc]
+ cmp r0, #0x4
+ blt _020A44A8
+ mov r0, #0x0
+ ldr r4, _020A48C4 ; =0x8F1BBCDC
+ str r0, [sp, #0x8]
+ add r11, sp, #0x10
+_020A45DC:
+ mov r0, r5
+ mov r1, r11
+ bl FUN_020A4988
+ orr r2, r8, r7
+ mov r1, r10, lsl #0x5
+ and r3, r9, r2
+ and r2, r8, r7
+ orr r1, r1, r10, lsr #0x1b
+ orr r2, r3, r2
+ add r1, r1, r2
+ add r1, r1, r0
+ mov r0, r9, lsl #0x1e
+ add r1, r1, r4
+ add r6, r6, r1
+ orr r9, r0, r9, lsr #0x2
+ add r0, r5, #0x1
+ mov r1, r11
+ bl FUN_020A4988
+ orr r2, r9, r8
+ mov r1, r6, lsl #0x5
+ and r3, r10, r2
+ and r2, r9, r8
+ orr r1, r1, r6, lsr #0x1b
+ orr r2, r3, r2
+ add r1, r1, r2
+ add r0, r1, r0
+ add r0, r0, r4
+ add r7, r7, r0
+ mov r0, r10, lsl #0x1e
+ orr r10, r0, r10, lsr #0x2
+ add r0, r5, #0x2
+ mov r1, r11
+ bl FUN_020A4988
+ orr r2, r10, r9
+ mov r1, r7, lsl #0x5
+ and r3, r6, r2
+ and r2, r10, r9
+ orr r1, r1, r7, lsr #0x1b
+ orr r2, r3, r2
+ add r1, r1, r2
+ add r0, r1, r0
+ add r0, r0, r4
+ add r8, r8, r0
+ mov r0, r6, lsl #0x1e
+ orr r6, r0, r6, lsr #0x2
+ add r0, r5, #0x3
+ and r5, r0, #0xf
+ mov r0, r5
+ mov r1, r11
+ bl FUN_020A4988
+ orr r2, r6, r10
+ mov r1, r8, lsl #0x5
+ and r3, r7, r2
+ and r2, r6, r10
+ orr r1, r1, r8, lsr #0x1b
+ orr r2, r3, r2
+ add r1, r1, r2
+ add r0, r1, r0
+ add r0, r0, r4
+ add r9, r9, r0
+ mov r0, r7, lsl #0x1e
+ orr r7, r0, r7, lsr #0x2
+ add r0, r5, #0x1
+ mov r1, r11
+ bl FUN_020A4988
+ orr r2, r7, r6
+ mov r1, r9, lsl #0x5
+ and r3, r8, r2
+ and r2, r7, r6
+ orr r1, r1, r9, lsr #0x1b
+ orr r2, r3, r2
+ add r1, r1, r2
+ add r0, r1, r0
+ add r0, r0, r4
+ add r10, r10, r0
+ mov r0, r8, lsl #0x1e
+ orr r8, r0, r8, lsr #0x2
+ ldr r0, [sp, #0x8]
+ add r5, r5, #0x2
+ add r0, r0, #0x1
+ str r0, [sp, #0x8]
+ cmp r0, #0x4
+ blt _020A45DC
+ mov r0, #0x0
+ ldr r4, _020A48C8 ; =0xCA62C1D6
+ str r0, [sp, #0x4]
+ add r11, sp, #0x10
+_020A4738:
+ mov r0, r5
+ mov r1, r11
+ bl FUN_020A4988
+ mov r2, r10, lsl #0x5
+ eor r1, r9, r8
+ orr r2, r2, r10, lsr #0x1b
+ eor r1, r7, r1
+ add r1, r2, r1
+ add r0, r1, r0
+ add r1, r0, r4
+ mov r0, r9, lsl #0x1e
+ add r6, r6, r1
+ orr r9, r0, r9, lsr #0x2
+ add r0, r5, #0x1
+ mov r1, r11
+ bl FUN_020A4988
+ mov r1, r6, lsl #0x5
+ orr r2, r1, r6, lsr #0x1b
+ eor r1, r10, r9
+ eor r1, r8, r1
+ add r1, r2, r1
+ add r0, r1, r0
+ add r0, r0, r4
+ add r7, r7, r0
+ mov r0, r10, lsl #0x1e
+ orr r10, r0, r10, lsr #0x2
+ add r0, r5, #0x2
+ mov r1, r11
+ bl FUN_020A4988
+ mov r1, r7, lsl #0x5
+ orr r2, r1, r7, lsr #0x1b
+ eor r1, r6, r10
+ eor r1, r9, r1
+ add r1, r2, r1
+ add r0, r1, r0
+ add r0, r0, r4
+ add r8, r8, r0
+ mov r0, r6, lsl #0x1e
+ orr r6, r0, r6, lsr #0x2
+ add r0, r5, #0x3
+ mov r1, r11
+ bl FUN_020A4988
+ mov r1, r8, lsl #0x5
+ orr r2, r1, r8, lsr #0x1b
+ eor r1, r7, r6
+ eor r1, r10, r1
+ add r1, r2, r1
+ add r0, r1, r0
+ add r0, r0, r4
+ add r9, r9, r0
+ mov r0, r7, lsl #0x1e
+ orr r7, r0, r7, lsr #0x2
+ add r0, r5, #0x4
+ and r5, r0, #0xf
+ mov r0, r5
+ mov r1, r11
+ bl FUN_020A4988
+ mov r1, r9, lsl #0x5
+ orr r2, r1, r9, lsr #0x1b
+ eor r1, r8, r7
+ eor r1, r6, r1
+ add r1, r2, r1
+ add r0, r1, r0
+ add r0, r0, r4
+ add r10, r10, r0
+ mov r0, r8, lsl #0x1e
+ orr r8, r0, r8, lsr #0x2
+ ldr r0, [sp, #0x4]
+ add r5, r5, #0x1
+ add r0, r0, #0x1
+ str r0, [sp, #0x4]
+ cmp r0, #0x4
+ blt _020A4738
+ ldr r0, [sp, #0x0]
+ ldr r0, [r0, #0x0]
+ add r1, r0, r10
+ ldr r0, [sp, #0x0]
+ str r1, [r0, #0x0]
+ ldr r0, [r0, #0x4]
+ add r1, r0, r9
+ ldr r0, [sp, #0x0]
+ str r1, [r0, #0x4]
+ ldr r0, [r0, #0x8]
+ add r1, r0, r8
+ ldr r0, [sp, #0x0]
+ str r1, [r0, #0x8]
+ ldr r0, [r0, #0xc]
+ add r1, r0, r7
+ ldr r0, [sp, #0x0]
+ str r1, [r0, #0xc]
+ ldr r0, [r0, #0x10]
+ add r1, r0, r6
+ ldr r0, [sp, #0x0]
+ str r1, [r0, #0x10]
+ add sp, sp, #0x54
+ ldmia sp!, {r4-r11,lr}
+ bx lr
+ .balign 4
+_020A48BC: .word 0x5A827999
+_020A48C0: .word 0x6ED9EBA1
+_020A48C4: .word 0x8F1BBCDC
+_020A48C8: .word 0xCA62C1D6
+
+ arm_func_start FUN_020A48CC
+FUN_020A48CC: ; 0x020A48CC
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ cmp r2, #0x0
+ addls sp, sp, #0x4
+ mov r3, #0x0
+ ldmlsia sp!, {r4-r5,lr}
+ bxls lr
+_020A48E8:
+ add r12, r3, #0x1
+ ldrb lr, [r1, r3]
+ add r4, r3, #0x2
+ add r5, r3, #0x3
+ ldrb r12, [r1, r12]
+ mov lr, lr, lsl #0x18
+ add r3, r3, #0x4
+ ldrb r4, [r1, r4]
+ orr r12, lr, r12, lsl #0x10
+ ldrb lr, [r1, r5]
+ orr r4, r12, r4, lsl #0x8
+ cmp r3, r2
+ orr r4, lr, r4
+ str r4, [r0], #0x4
+ blo _020A48E8
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,lr}
+ bx lr
+
+ arm_func_start FUN_020A4930
+FUN_020A4930: ; 0x020A4930
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ movs r12, r2, lsr #0x2
+ mov lr, #0x0
+ addeq sp, sp, #0x4
+ ldmeqia sp!, {lr}
+ bxeq lr
+_020A494C:
+ ldr r3, [r1], #0x4
+ add lr, lr, #0x1
+ mov r2, r3, lsr #0x18
+ strb r2, [r0, #0x0]
+ mov r2, r3, lsr #0x10
+ strb r2, [r0, #0x1]
+ mov r2, r3, lsr #0x8
+ strb r2, [r0, #0x2]
+ strb r3, [r0, #0x3]
+ cmp lr, r12
+ add r0, r0, #0x4
+ blo _020A494C
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+
+ arm_func_start FUN_020A4988
+FUN_020A4988: ; 0x020A4988
+ add r2, r0, #0xd
+ add r12, r0, #0x2
+ and r3, r2, #0xf
+ eor r2, r0, #0x8
+ and r12, r12, #0xf
+ ldr r3, [r1, r3, lsl #0x2]
+ ldr r2, [r1, r2, lsl #0x2]
+ ldr r12, [r1, r12, lsl #0x2]
+ eor r2, r3, r2
+ ldr r3, [r1, r0, lsl #0x2]
+ eor r2, r12, r2
+ eor r3, r3, r2
+ mov r2, r3, lsl #0x1
+ orr r2, r2, r3, lsr #0x1f
+ str r2, [r1, r0, lsl #0x2]
+ ldr r0, [r1, r0, lsl #0x2]
+ bx lr
+
+ arm_func_start FUN_020A49CC
+FUN_020A49CC: ; 0x020A49CC
+ stmdb sp!, {r4-r6,lr}
+ cmp r2, #0x0
+ add r3, r0, #0x2
+ ldrb lr, [r0, #0x0]
+ ldrb r12, [r0, #0x1]
+ mov r4, #0x0
+ ble _020A4A2C
+_020A49E8:
+ add r5, lr, #0x1
+ and lr, r5, #0xff
+ ldrb r6, [r3, lr]
+ add r5, r12, r6
+ and r12, r5, #0xff
+ ldrb r5, [r3, r12]
+ strb r5, [r3, lr]
+ add r5, r6, r5
+ strb r6, [r3, r12]
+ and r5, r5, #0xff
+ ldrb r6, [r1, r4]
+ ldrb r5, [r3, r5]
+ eor r5, r6, r5
+ strb r5, [r1, r4]
+ add r4, r4, #0x1
+ cmp r4, r2
+ blt _020A49E8
+_020A4A2C:
+ strb lr, [r0, #0x0]
+ strb r12, [r0, #0x1]
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+
+ arm_func_start FUN_020A4A3C
+FUN_020A4A3C: ; 0x020A4A3C
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0x4
+ mov r3, #0x0
+ strb r3, [r0, #0x0]
+ strb r3, [r0, #0x1]
+ add r7, r0, #0x2
+_020A4A54:
+ strb r3, [r7, r3]
+ add r3, r3, #0x1
+ cmp r3, #0x100
+ blt _020A4A54
+ mov r5, #0x0
+ mov r6, r5
+ mov r4, r5
+ mov r0, r5
+_020A4A74:
+ ldrb lr, [r7, r4]
+ ldrb r12, [r1, r5]
+ add r3, r5, #0x1
+ and r5, r3, #0xff
+ add r3, lr, r12
+ add r3, r6, r3
+ and r6, r3, #0xff
+ ldrb r3, [r7, r6]
+ cmp r5, r2
+ movge r5, r0
+ strb r3, [r7, r4]
+ add r4, r4, #0x1
+ strb lr, [r7, r6]
+ cmp r4, #0x100
+ blt _020A4A74
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r7,lr}
+ bx lr
+
+ arm_func_start FUN_020A4ABC
+FUN_020A4ABC: ; 0x020A4ABC
+ ldrh r1, [r0, #0x0]
+ mov r0, #0x0
+ bx lr
+
+ arm_func_start FUN_020A4AC8
+FUN_020A4AC8: ; 0x020A4AC8
+ ldrh r1, [r0, #0x0]
+ ldrh r0, [r0, #-0x2]
+ mov r0, r0, lsl #0x10
+ bx lr
+
+ arm_func_start FUN_020A4AD8
+FUN_020A4AD8: ; 0x020A4AD8
+ ldrh r1, [r0, #0x0]
+ ldrh r2, [r0, #-0x2]
+ ldrh r3, [r0, #-0x4]
+ orr r0, r3, r2, lsl #0x10
+ bx lr
+
+ arm_func_start FUN_020A4AEC
+FUN_020A4AEC: ; 0x020A4AEC
+ ldrh r2, [r0, #0x0]
+ ldrh r3, [r0, #-0x2]
+ orr r1, r3, r2, lsl #0x10
+ ldrh r2, [r0, #-0x4]
+ ldrh r3, [r0, #-0x6]
+ orr r0, r3, r2, lsl #0x10
+ bx lr
+
+ arm_func_start FUN_020A4B08
+FUN_020A4B08: ; 0x020A4B08
+ sub r3, r2, #0x1
+ cmp r2, #0x1
+ add r0, r0, r3
+ ble _020A4B40
+_020A4B18:
+ ldrh r3, [r1, #0x0]
+ sub r2, r2, #0x2
+ sub r12, r0, #0x1
+ strb r3, [r0, #0x0]
+ ldrh r3, [r1], #0x2
+ cmp r2, #0x1
+ sub r0, r0, #0x2
+ mov r3, r3, asr #0x8
+ strb r3, [r12, #0x0]
+ bgt _020A4B18
+_020A4B40:
+ cmp r2, #0x0
+ ldrgth r1, [r1, #0x0]
+ strgtb r1, [r0, #0x0]
+ bx lr
+
+ arm_func_start FUN_020A4B50
+FUN_020A4B50: ; 0x020A4B50
+ stmdb sp!, {r4-r6,lr}
+ mov r6, r1
+ mov r5, r2
+ mov r2, r3, lsl #0x1
+ mov r1, #0x0
+ mov r4, r0
+ bl MI_CpuFill8
+ sub r0, r5, #0x1
+ cmp r5, #0x1
+ add r6, r6, r0
+ ble _020A4B9C
+_020A4B7C:
+ ldrb r1, [r6, #0x0]
+ ldrb r0, [r6, #-0x1]
+ sub r5, r5, #0x2
+ cmp r5, #0x1
+ add r0, r1, r0, lsl #0x8
+ strh r0, [r4], #0x2
+ sub r6, r6, #0x2
+ bgt _020A4B7C
+_020A4B9C:
+ cmp r5, #0x0
+ ldrgtb r0, [r6, #0x0]
+ strgth r0, [r4, #0x0]
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+
+ arm_func_start FUN_020A4BB0
+FUN_020A4BB0: ; 0x020A4BB0
+ stmdb sp!, {r4-r11,lr}
+ sub sp, sp, #0x34
+ mov r10, r3
+ mov r3, #0x16
+ mul r4, r10, r3
+ ldr r3, _020A4DE0 ; =0x021C8EC8
+ mov r11, r0
+ ldr r3, [r3, #0x0]
+ mov r0, r4
+ ldr r9, [sp, #0x58]
+ str r1, [sp, #0x14]
+ str r2, [sp, #0x18]
+ blx r3
+ str r0, [sp, #0x1c]
+ cmp r0, #0x0
+ addeq sp, sp, #0x34
+ ldmeqia sp!, {r4-r11,lr}
+ bxeq lr
+ mov r2, r4
+ mov r1, #0x0
+ bl MI_CpuFill8
+ ldr r0, [sp, #0x1c]
+ mov r1, r10
+ add r6, r0, r10, lsl #0x1
+ add r0, r6, r10, lsl #0x1
+ add r5, r0, r10, lsl #0x1
+ add r4, r5, r10, lsl #0x1
+ str r0, [sp, #0x20]
+ add r0, r4, r10, lsl #0x1
+ str r0, [sp, #0x24]
+ add r7, r0, r10, lsl #0x1
+ mov r0, r9
+ bl thunk_FUN_020a5a28
+ mov r8, r0
+ ldr r0, [sp, #0x1c]
+ mov r2, #0x1
+ mov r1, r8, lsl #0x1
+ strh r2, [r0, r1]
+ ldr r0, [sp, #0x20]
+ ldr r1, [sp, #0x1c]
+ str r0, [sp, #0x0]
+ mov r0, r6
+ mov r2, r9
+ mov r3, r10
+ bl FUN_020A4F2C
+ ldr r1, [sp, #0x1c]
+ mov r0, r5
+ mov r2, r6
+ mov r3, r10
+ bl FUN_020A5608
+ mov r0, r6
+ mov r1, r5
+ mov r2, #0x1
+ mov r3, r10
+ bl FUN_020A5748
+ str r10, [sp, #0x0]
+ mov r0, r6
+ mov r1, r6
+ mov r2, r9
+ mov r3, #0x0
+ str r7, [sp, #0x4]
+ bl FUN_020A5240
+ ldr r1, [sp, #0x14]
+ ldr r0, [sp, #0x20]
+ ldr r2, [sp, #0x1c]
+ mov r3, r10
+ bl FUN_020A5608
+ ldr r1, [sp, #0x20]
+ str r10, [sp, #0x0]
+ mov r0, #0x0
+ mov r2, r9
+ mov r3, r1
+ str r7, [sp, #0x4]
+ bl FUN_020A5240
+ str r10, [sp, #0x0]
+ ldr r1, [sp, #0x1c]
+ mov r0, #0x0
+ mov r2, r9
+ mov r3, r11
+ str r7, [sp, #0x4]
+ bl FUN_020A5240
+ movs r0, r8, lsl #0x4
+ mov r7, #0x0
+ str r0, [sp, #0x28]
+ beq _020A4D9C
+ mov r0, #0x1
+ str r0, [sp, #0x2c]
+ mov r0, #0x8000
+ str r0, [sp, #0x30]
+_020A4D14:
+ str r8, [sp, #0x0]
+ str r9, [sp, #0x4]
+ str r6, [sp, #0x8]
+ str r5, [sp, #0xc]
+ ldr r1, [sp, #0x24]
+ ldr r2, [sp, #0x2c]
+ mov r0, r11
+ mov r3, r10
+ str r4, [sp, #0x10]
+ bl FUN_020A4DE8
+ ldr r0, [sp, #0x30]
+ and r1, r7, #0xf
+ mov r0, r0, lsr r1
+ sub r1, r8, r7, asr #0x4
+ sub r1, r1, #0x1
+ mov r2, r1, lsl #0x1
+ ldr r1, [sp, #0x18]
+ ldrh r1, [r1, r2]
+ ands r0, r0, r1
+ beq _020A4D8C
+ str r8, [sp, #0x0]
+ str r9, [sp, #0x4]
+ str r6, [sp, #0x8]
+ str r5, [sp, #0xc]
+ ldr r1, [sp, #0x24]
+ ldr r2, [sp, #0x20]
+ mov r0, r11
+ mov r3, r10
+ str r4, [sp, #0x10]
+ bl FUN_020A4DE8
+_020A4D8C:
+ ldr r0, [sp, #0x28]
+ add r7, r7, #0x1
+ cmp r7, r0
+ blo _020A4D14
+_020A4D9C:
+ str r8, [sp, #0x0]
+ str r9, [sp, #0x4]
+ str r6, [sp, #0x8]
+ str r5, [sp, #0xc]
+ ldr r1, [sp, #0x24]
+ mov r0, r11
+ mov r3, r10
+ mov r2, #0x0
+ str r4, [sp, #0x10]
+ bl FUN_020A4DE8
+ ldr r1, _020A4DE4 ; =0x021C8EF4
+ ldr r0, [sp, #0x1c]
+ ldr r1, [r1, #0x0]
+ blx r1
+ add sp, sp, #0x34
+ ldmia sp!, {r4-r11,lr}
+ bx lr
+ .balign 4
+_020A4DE0: .word 0x021C8EC8
+_020A4DE4: .word 0x021C8EF4
+
+ arm_func_start FUN_020A4DE8
+FUN_020A4DE8: ; 0x020A4DE8
+ stmdb sp!, {r4-r9,lr}
+ sub sp, sp, #0x4
+ mov r5, r3
+ mov r7, r5, lsl #0x1
+ mov r8, r2
+ mov r2, r7
+ mov r6, r0
+ mov r9, r1
+ ldr r4, [sp, #0x20]
+ bl MI_CpuCopy8
+ cmp r8, #0x1
+ bne _020A4E2C
+ mov r0, r6
+ mov r1, r9
+ mov r2, r5
+ bl FUN_020A5438
+ b _020A4E48
+_020A4E2C:
+ cmp r8, #0x0
+ beq _020A4E48
+ mov r0, r6
+ mov r1, r9
+ mov r2, r8
+ mov r3, r5
+ bl FUN_020A5608
+_020A4E48:
+ ldr r0, [sp, #0x2c]
+ ldr r2, [sp, #0x28]
+ mov r1, r6
+ mov r3, r4
+ bl FUN_020A5608
+ sub r1, r5, r4
+ ldr r0, [sp, #0x2c]
+ mov r8, r1, lsl #0x1
+ mov r2, r8
+ add r0, r0, r4, lsl #0x1
+ mov r1, #0x0
+ bl MI_CpuFill8
+ ldr r0, [sp, #0x30]
+ ldr r1, [sp, #0x2c]
+ ldr r2, [sp, #0x24]
+ mov r3, r5
+ bl FUN_020A5608
+ mov r0, r6
+ mov r1, r6
+ ldr r2, [sp, #0x30]
+ mov r3, r5
+ bl FUN_020A5930
+ mov r2, r8
+ mov r0, r6
+ add r1, r6, r4, lsl #0x1
+ bl memmove
+ add r0, r6, r5, lsl #0x1
+ sub r0, r0, r4, lsl #0x1
+ mov r2, r4, lsl #0x1
+ mov r1, #0x0
+ bl MI_CpuFill8
+ mov r0, r6
+ ldr r1, [sp, #0x24]
+ mov r2, r5
+ bl FUN_020A570C
+_020A4ED4: ; 0x020A4ED4
+ cmp r0, #0x0
+ beq _020A4EF0
+ cmp r0, #0x1
+ beq _020A4F0C
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r9,lr}
+ bx lr
+_020A4EF0:
+ mov r0, r6
+ mov r2, r7
+ mov r1, #0x0
+ bl MI_CpuFill8
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r9,lr}
+ bx lr
+_020A4F0C:
+ ldr r2, [sp, #0x24]
+ mov r0, r6
+ mov r1, r6
+ mov r3, r5
+ bl FUN_020A57BC
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r9,lr}
+ bx lr
+
+ arm_func_start FUN_020A4F2C
+FUN_020A4F2C: ; 0x020A4F2C
+ stmdb sp!, {r4-r11,lr}
+ sub sp, sp, #0x14
+ ldr r9, [sp, #0x38]
+ mov r10, r3
+ add r11, r9, r10, lsl #0x1
+ add r8, r11, r10, lsl #0x1
+ add r7, r8, r10, lsl #0x1
+ add r6, r7, r10, lsl #0x1
+ add r5, r6, r10, lsl #0x1
+ str r0, [sp, #0x8]
+ mov r0, r1
+ add r1, r5, r10, lsl #0x1
+ str r1, [sp, #0x10]
+ mov r4, r10, lsl #0x1
+ str r2, [sp, #0xc]
+ mov r1, r9
+ mov r2, r4
+ bl MI_CpuCopy8
+ ldr r0, [sp, #0xc]
+ mov r1, r8
+ mov r2, r4
+ bl MI_CpuCopy8
+ mov r0, #0x1
+ strh r0, [r8, r4]
+ mov r0, r9
+ mov r1, r10
+ bl FUN_020A59DC
+_020A4F98: ; 0x020A4F98
+ cmp r0, #0x0
+ ble _020A503C
+_020A4FA0:
+ ldr r3, [sp, #0x10]
+ str r10, [sp, #0x0]
+ str r3, [sp, #0x4]
+ mov r0, r11
+ mov r1, r8
+ mov r2, r9
+ mov r3, r5
+ bl FUN_020A5240
+ mov r0, r9
+ mov r1, r8
+ mov r2, r4
+ bl MI_CpuCopy8
+ mov r0, r5
+ mov r1, r9
+ mov r2, r4
+ bl MI_CpuCopy8
+ mov r0, r5
+ mov r1, r11
+ mov r2, r7
+ mov r3, r10
+ bl FUN_020A5608
+ mov r0, r5
+ mov r1, r6
+ mov r2, r5
+ mov r3, r10
+ bl FUN_020A57BC
+ mov r0, r7
+ mov r1, r6
+ mov r2, r4
+ bl MI_CpuCopy8
+ mov r0, r5
+ mov r1, r7
+ mov r2, r4
+ bl MI_CpuCopy8
+ mov r0, r9
+ mov r1, r10
+ bl FUN_020A59DC
+_020A5034: ; 0x020A5034
+ cmp r0, #0x0
+ bgt _020A4FA0
+_020A503C:
+ ldr r2, [sp, #0xc]
+ mov r0, r6
+ mov r1, r6
+ mov r3, r10
+ bl FUN_020A5930
+ ldr r2, [sp, #0xc]
+ ldr r3, [sp, #0x8]
+ ldr r4, [sp, #0x10]
+ str r10, [sp, #0x0]
+ mov r1, r6
+ mov r0, #0x0
+ str r4, [sp, #0x4]
+ bl FUN_020A5240
+ add sp, sp, #0x14
+ ldmia sp!, {r4-r11,lr}
+ bx lr
+
+ arm_func_start FUN_020A507C
+FUN_020A507C: ; 0x020A507C
+ stmdb sp!, {r4-r11,lr}
+ sub sp, sp, #0x1c
+ ldr r4, _020A5238 ; =0x021C8EC8
+ mov r8, r3
+ ldr r3, [r4, #0x0]
+ mov r10, r0
+ mov r0, r8, lsl #0x3
+ ldr r7, [sp, #0x40]
+ str r1, [sp, #0x8]
+ mov r9, r2
+ blx r3
+ movs r6, r0
+ addeq sp, sp, #0x1c
+ ldmeqia sp!, {r4-r11,lr}
+ bxeq lr
+ sub r1, r8, #0x1
+ add r0, r10, #0x2
+ mov r2, r1, lsl #0x1
+ mov r1, #0x0
+ add r11, r6, r8, lsl #0x1
+ bl MI_CpuFill8
+ mov r2, #0x1
+ mov r0, r9
+ mov r1, r8
+ strh r2, [r10, #0x0]
+ bl thunk_FUN_020a5a28
+_020A50E4: ; 0x020A50E4
+ sub r0, r8, r0
+ mov r5, r0, lsl #0x4
+ mov r4, r8, lsl #0x4
+ cmp r5, r4
+ bhs _020A5140
+ mov r0, #0x8000
+_020A50FC:
+ sub r1, r8, r5, asr #0x4
+ sub r1, r1, #0x1
+ mov r1, r1, lsl #0x1
+ and r2, r5, #0xf
+ ldrh r1, [r9, r1]
+ mov r2, r0, lsr r2
+ ands r1, r2, r1
+ beq _020A5134
+ ldr r0, [sp, #0x8]
+ mov r1, r10
+ mov r2, r8, lsl #0x1
+ bl MI_CpuCopy8
+ add r5, r5, #0x1
+ b _020A5140
+_020A5134:
+ add r5, r5, #0x1
+ cmp r5, r4
+ blo _020A50FC
+_020A5140:
+ cmp r5, r4
+ bhs _020A521C
+ mov r0, r8, lsl #0x1
+ str r0, [sp, #0xc]
+ mov r0, #0x0
+ str r0, [sp, #0x10]
+ mov r0, #0x8000
+ str r0, [sp, #0x14]
+_020A5160:
+ mov r0, r6
+ mov r1, r10
+ mov r2, r8
+ bl FUN_020A5438
+ ldr r2, [sp, #0xc]
+ mov r0, r6
+ mov r1, r10
+ bl MI_CpuCopy8
+_020A5180: ; 0x020A5180
+ cmp r7, #0x0
+ beq _020A51A4
+ ldr r0, [sp, #0x10]
+ str r8, [sp, #0x0]
+ mov r1, r10
+ mov r2, r7
+ mov r3, r10
+ str r11, [sp, #0x4]
+ bl FUN_020A5240
+_020A51A4:
+ sub r0, r8, r5, asr #0x4
+ sub r0, r0, #0x1
+ mov r1, r0, lsl #0x1
+ ldr r0, [sp, #0x14]
+ and r2, r5, #0xf
+ mov r2, r0, lsr r2
+ ldrh r0, [r9, r1]
+ ands r0, r2, r0
+ beq _020A5210
+ ldr r2, [sp, #0x8]
+ mov r0, r6
+ mov r1, r10
+ mov r3, r8
+ bl FUN_020A5608
+ ldr r2, [sp, #0xc]
+ mov r0, r6
+ mov r1, r10
+ bl MI_CpuCopy8
+_020A51EC: ; 0x020A51EC
+ cmp r7, #0x0
+ beq _020A5210
+ ldr r0, [sp, #0x10]
+ str r8, [sp, #0x0]
+ mov r1, r10
+ mov r2, r7
+ mov r3, r10
+ str r11, [sp, #0x4]
+ bl FUN_020A5240
+_020A5210:
+ add r5, r5, #0x1
+ cmp r5, r4
+ blo _020A5160
+_020A521C:
+ ldr r1, _020A523C ; =0x021C8EF4
+ mov r0, r6
+ ldr r1, [r1, #0x0]
+ blx r1
+ add sp, sp, #0x1c
+ ldmia sp!, {r4-r11,lr}
+ bx lr
+ .balign 4
+_020A5238: .word 0x021C8EC8
+_020A523C: .word 0x021C8EF4
+
+ arm_func_start FUN_020A5240
+FUN_020A5240: ; 0x020A5240
+ stmdb sp!, {r4-r11,lr}
+ sub sp, sp, #0x24
+ ldr r9, [sp, #0x48]
+ ldr r6, [sp, #0x4c]
+ str r1, [sp, #0x4]
+ add r5, r6, r9, lsl #0x1
+ str r0, [sp, #0x0]
+ mov r10, r2
+ mov r0, r5
+ mov r2, r9, lsl #0x2
+ mov r1, #0x0
+ str r3, [sp, #0x8]
+ add r4, r5, r9, lsl #0x1
+ bl MI_CpuFill8
+ ldr r0, [sp, #0x4]
+ mov r1, r9
+ bl thunk_FUN_020a5a28
+ mov r11, r0
+ mov r0, r10
+ mov r1, r9
+ bl thunk_FUN_020a5a28
+ mov r7, r0
+ cmp r11, #0x0
+ ble _020A53E8
+ cmp r7, #0x0
+ ble _020A53E8
+ sub r0, r9, r11
+ add r0, r7, r0
+ sub r8, r0, #0x1
+ cmp r8, r9
+ blt _020A52D0
+ ldr r0, [sp, #0x4]
+ mov r1, r4
+ mov r2, r9, lsl #0x1
+ bl MI_CpuCopy8
+ b _020A53E8
+_020A52D0:
+ ldr r0, [sp, #0x4]
+ add r1, r5, r8, lsl #0x1
+ mov r2, r11, lsl #0x1
+ bl MI_CpuCopy8
+ cmp r7, #0x2
+ ble _020A5304
+ add r0, r10, r7, lsl #0x1
+ sub r0, r0, #0x2
+ mov r7, r7, lsl #0x1
+ bl FUN_020A4AD8
+ str r0, [sp, #0x14]
+ str r1, [sp, #0x10]
+ b _020A5340
+_020A5304:
+ cmp r7, #0x1
+ ble _020A5328
+ add r0, r10, r7, lsl #0x1
+ sub r0, r0, #0x2
+ mov r7, r7, lsl #0x1
+ bl FUN_020A4AC8
+ str r0, [sp, #0x14]
+ str r1, [sp, #0x10]
+ b _020A5340
+_020A5328:
+ add r0, r10, r7, lsl #0x1
+ sub r0, r0, #0x2
+ mov r7, r7, lsl #0x1
+ bl FUN_020A4ABC
+ str r0, [sp, #0x14]
+ str r1, [sp, #0x10]
+_020A5340:
+ cmp r8, r9
+ bge _020A53E8
+ mov r0, r9, lsl #0x1
+ sub r0, r0, #0x1
+ mov r11, r0, lsl #0x1
+ add r0, r4, r7
+ str r0, [sp, #0x1c]
+_020A535C:
+ mov r1, r5
+ add r0, r5, #0x2
+ mov r2, r11
+ bl memmove
+ ldr r0, [sp, #0x1c]
+ bl FUN_020A4AEC
+ ldr r2, [sp, #0x14]
+ ldr r3, [sp, #0x10]
+ bl _ll_udiv
+ mov r7, r0
+ ldr r0, _020A5434 ; =0x0000FFFF
+ cmp r7, r0
+ movhi r7, r0
+_020A5390:
+ mov r2, r7, lsl #0x10
+ mov r0, r6
+ mov r1, r10
+ mov r2, r2, lsr #0x10
+ mov r3, r9
+ bl FUN_020A5584
+ mov r0, r4
+ mov r1, r6
+ mov r2, r9
+ bl FUN_020A570C
+_020A53B8: ; 0x020A53B8
+ cmp r0, #0x0
+ sublt r7, r7, #0x1
+ blt _020A5390
+ mov r0, r4
+ mov r1, r4
+ mov r2, r6
+ mov r3, r9
+ bl FUN_020A57BC
+ strh r7, [r5, #0x0]
+ add r8, r8, #0x1
+ cmp r8, r9
+ blt _020A535C
+_020A53E8:
+ ldr r0, [sp, #0x0]
+ cmp r0, #0x0
+ beq _020A5404
+ ldr r1, [sp, #0x0]
+ mov r0, r5
+ mov r2, r9, lsl #0x1
+ bl MI_CpuCopy8
+_020A5404:
+ ldr r0, [sp, #0x8]
+ cmp r0, #0x0
+ addeq sp, sp, #0x24
+ ldmeqia sp!, {r4-r11,lr}
+ bxeq lr
+ ldr r1, [sp, #0x8]
+ mov r0, r4
+ mov r2, r9, lsl #0x1
+ bl MI_CpuCopy8
+ add sp, sp, #0x24
+ ldmia sp!, {r4-r11,lr}
+ bx lr
+ .balign 4
+_020A5434: .word 0x0000FFFF
+
+ arm_func_start FUN_020A5438
+FUN_020A5438: ; 0x020A5438
+ stmdb sp!, {r4-r11,lr}
+ sub sp, sp, #0x4
+ mov r9, r1
+ mov r8, r2
+ mov r10, r0
+ mov r0, r9
+ mov r1, r8
+ bl thunk_FUN_020a5a28
+ mov r11, r0
+ mov r0, r11, lsl #0x1
+ cmp r0, r8
+ bge _020A547C
+ sub r1, r8, r0
+ add r0, r10, r0, lsl #0x1
+ mov r2, r1, lsl #0x1
+ mov r1, #0x0
+ bl MI_CpuFill8
+_020A547C:
+ cmp r11, #0x0
+ mov r1, #0x0
+ ble _020A54D4
+ mov r0, r1
+ sub r4, r8, #0x1
+_020A5490:
+ cmp r0, r8
+ bge _020A54D4
+ mov r2, r1, lsl #0x1
+ ldrh r5, [r9, r2]
+ mov r2, r0, lsl #0x1
+ cmp r0, r4
+ mul r3, r5, r5
+ strh r3, [r10, r2]
+ beq _020A54D4
+ add r2, r0, #0x1
+ add r1, r1, #0x1
+ mov r3, r3, lsr #0x10
+ mov r2, r2, lsl #0x1
+ strh r3, [r10, r2]
+ cmp r1, r11
+ add r0, r0, #0x2
+ blt _020A5490
+_020A54D4:
+ cmp r11, #0x0
+ mov r6, #0x0
+ addle sp, sp, #0x4
+ ldmleia sp!, {r4-r11,lr}
+ bxle lr
+_020A54E8:
+ add r7, r6, #0x1
+ b _020A5554
+_020A54F0:
+ mov r1, r7, lsl #0x1
+ mov r0, r6, lsl #0x1
+ ldrh r1, [r9, r1]
+ ldrh r0, [r9, r0]
+ mul r4, r1, r0
+ ldr r0, _020A5580 ; =0x7FFF8000
+ cmp r4, r0
+ bhi _020A5528
+ mov r0, r10
+ mov r2, r5
+ mov r3, r8
+ mov r1, r4, lsl #0x1
+ bl FUN_020A56C4
+ b _020A5550
+_020A5528:
+ mov r0, r10
+ mov r1, r4
+ mov r2, r5
+ mov r3, r8
+ bl FUN_020A56C4
+ mov r0, r10
+ mov r1, r4
+ mov r2, r5
+ mov r3, r8
+ bl FUN_020A56C4
+_020A5550:
+ add r7, r7, #0x1
+_020A5554:
+ cmp r7, r11
+ bge _020A5568
+ add r5, r6, r7
+ cmp r5, r8
+ blt _020A54F0
+_020A5568:
+ add r6, r6, #0x1
+ cmp r6, r11
+ blt _020A54E8
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r11,lr}
+ bx lr
+ .balign 4
+_020A5580: .word 0x7FFF8000
+
+ arm_func_start FUN_020A5584
+FUN_020A5584: ; 0x020A5584
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0x4
+ mov r6, r1
+ mov r4, r3
+ mov r7, r0
+ mov r0, r6
+ mov r1, r4
+ mov r5, r2
+ bl thunk_FUN_020a5a28
+ mov r3, #0x0
+ mov r12, r3
+ cmp r0, #0x0
+ ble _020A55D8
+_020A55B8:
+ mov r2, r12, lsl #0x1
+ ldrh r1, [r6, r2]
+ add r12, r12, #0x1
+ cmp r12, r0
+ mla r1, r5, r1, r3
+ strh r1, [r7, r2]
+ mov r3, r1, lsr #0x10
+ blt _020A55B8
+_020A55D8:
+ cmp r12, r4
+ movlt r0, r12, lsl #0x1
+ addlt r12, r12, #0x1
+ sub r1, r4, r12
+ strlth r3, [r7, r0]
+ mov r2, r1, lsl #0x1
+ add r0, r7, r12, lsl #0x1
+ mov r1, #0x0
+ bl MI_CpuFill8
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r7,lr}
+ bx lr
+
+ arm_func_start FUN_020A5608
+FUN_020A5608: ; 0x020A5608
+ stmdb sp!, {r4-r11,lr}
+ sub sp, sp, #0xc
+ mov r8, r3
+ mov r10, r1
+ mov r9, r2
+ mov r2, r8, lsl #0x1
+ mov r1, #0x0
+ mov r11, r0
+ bl MI_CpuFill8
+ mov r0, r10
+ mov r1, r8
+ bl thunk_FUN_020a5a28
+ mov r5, r0
+ mov r0, r9
+ mov r1, r8
+ bl thunk_FUN_020a5a28
+_020A5648: ; 0x020A5648
+ str r0, [sp, #0x0]
+ cmp r0, #0x0
+ mov r7, #0x0
+ addle sp, sp, #0xc
+ ldmleia sp!, {r4-r11,lr}
+ bxle lr
+ str r7, [sp, #0x4]
+_020A5664:
+ ldr r6, [sp, #0x4]
+ sub r4, r8, r7
+ b _020A5698
+_020A5670:
+ mov r1, r6, lsl #0x1
+ mov r0, r7, lsl #0x1
+ ldrh r2, [r10, r1]
+ ldrh r1, [r9, r0]
+ mov r0, r11
+ mov r3, r8
+ mul r1, r2, r1
+ add r2, r7, r6
+ bl FUN_020A56C4
+ add r6, r6, #0x1
+_020A5698:
+ cmp r6, r5
+ bge _020A56A8
+ cmp r6, r4
+ blt _020A5670
+_020A56A8:
+ ldr r0, [sp, #0x0]
+ add r7, r7, #0x1
+ cmp r7, r0
+ blt _020A5664
+ add sp, sp, #0xc
+ ldmia sp!, {r4-r11,lr}
+ bx lr
+
+ arm_func_start FUN_020A56C4
+FUN_020A56C4: ; 0x020A56C4
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ b _020A56E8
+_020A56D0:
+ mov lr, r2, lsl #0x1
+ ldrh r12, [r0, lr]
+ add r2, r2, #0x1
+ add r1, r1, r12
+ strh r1, [r0, lr]
+ mov r1, r1, lsr #0x10
+_020A56E8:
+ cmp r1, #0x0
+ addeq sp, sp, #0x4
+ ldmeqia sp!, {lr}
+ bxeq lr
+ cmp r2, r3
+ blt _020A56D0
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+
+ arm_func_start FUN_020A570C
+FUN_020A570C:
+ subs r12, r2, #0x1
+ bmi _020A5740
+_020A5714:
+ mov r2, r12, lsl #0x1
+ ldrh r3, [r1, r2]
+ ldrh r2, [r0, r2]
+ cmp r2, r3
+ movhi r0, #0x1
+ bxhi lr
+ cmp r2, r3
+ mvncc r0, #0x0
+ bxcc lr
+ subs r12, r12, #0x1
+ bpl _020A5714
+_020A5740:
+ mov r0, #0x0
+ bx lr
+
+ arm_func_start FUN_020A5748
+FUN_020A5748: ; 0x020A5748
+ stmdb sp!, {r4,lr}
+ cmp r3, #0x0
+ mov r4, #0x0
+ ble _020A5780
+_020A5758:
+ mov lr, r4, lsl #0x1
+ ldrh r12, [r1, lr]
+ sub r12, r12, r2
+ mov r2, r12, lsr #0x10
+ strh r12, [r0, lr]
+ ands r2, r2, #0x1
+ beq _020A5780
+ add r4, r4, #0x1
+ cmp r4, r3
+ blt _020A5758
+_020A5780:
+ cmp r0, r1
+ ldmeqia sp!, {r4,lr}
+ bxeq lr
+ add r4, r4, #0x1
+ cmp r4, r3
+ ldmgeia sp!, {r4,lr}
+ bxge lr
+_020A579C:
+ mov r12, r4, lsl #0x1
+ ldrh r2, [r1, r12]
+ add r4, r4, #0x1
+ cmp r4, r3
+ strh r2, [r0, r12]
+ blt _020A579C
+ ldmia sp!, {r4,lr}
+ bx lr
+
+ arm_func_start FUN_020A57BC
+FUN_020A57BC: ; 0x020A57BC
+ stmdb sp!, {r4-r8,lr}
+ mov r7, r1
+ mov r5, r3
+ mov r8, r0
+ mov r6, r2
+ mov r0, r7
+ mov r1, r5
+ bl thunk_FUN_020a5a28
+ mov r4, r0
+ mov r0, r6
+ mov r1, r5
+ bl thunk_FUN_020a5a28
+_020A57EC: ; 0x020A57EC
+ cmp r4, r0
+ movlt r4, r0
+ mov r3, #0x0
+ cmp r4, r5
+ addne r4, r4, #0x1
+ mov r12, r3
+ b _020A5828
+_020A5808:
+ mov r2, r12, lsl #0x1
+ ldrh r1, [r7, r2]
+ ldrh r0, [r6, r2]
+ add r12, r12, #0x1
+ sub r0, r1, r0
+ add r0, r3, r0
+ strh r0, [r8, r2]
+ mov r3, r0, asr #0x10
+_020A5828:
+ cmp r12, r4
+ blt _020A5808
+ cmp r12, r5
+ bge _020A5840
+ cmp r3, #0x0
+ bne _020A5808
+_020A5840:
+ cmp r8, r7
+ ldmeqia sp!, {r4-r8,lr}
+ bxeq lr
+ cmp r8, r6
+ ldmeqia sp!, {r4-r8,lr}
+ bxeq lr
+ sub r1, r5, r12
+ add r0, r8, r12, lsl #0x1
+ mov r2, r1, lsl #0x1
+ mov r1, #0x0
+ bl MI_CpuFill8
+ ldmia sp!, {r4-r8,lr}
+ bx lr
+
+ arm_func_start FUN_020A5874
+FUN_020A5874: ; 0x020A5874
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ mov r3, r1
+ cmp r3, #0x0
+ mov r12, #0x0
+ ble _020A58A8
+_020A588C:
+ mov r2, r12, lsl #0x1
+ ldrh r1, [r0, r2]
+ add r12, r12, #0x1
+ cmp r12, r3
+ mvn r1, r1
+ strh r1, [r0, r2]
+ blt _020A588C
+_020A58A8:
+ mov r1, r0
+ mov r2, #0x1
+ bl FUN_020A58C0
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+
+ arm_func_start FUN_020A58C0
+FUN_020A58C0: ; 0x020A58C0
+ stmdb sp!, {r4,lr}
+ cmp r3, #0x0
+ mov r4, #0x0
+ ble _020A58F4
+_020A58D0:
+ mov lr, r4, lsl #0x1
+ ldrh r12, [r1, lr]
+ add r2, r2, r12
+ strh r2, [r0, lr]
+ movs r2, r2, lsr #0x10
+ beq _020A58F4
+ add r4, r4, #0x1
+ cmp r4, r3
+ blt _020A58D0
+_020A58F4:
+ cmp r0, r1
+ ldmeqia sp!, {r4,lr}
+ bxeq lr
+ add r4, r4, #0x1
+ cmp r4, r3
+ ldmgeia sp!, {r4,lr}
+ bxge lr
+_020A5910:
+ mov r12, r4, lsl #0x1
+ ldrh r2, [r1, r12]
+ add r4, r4, #0x1
+ cmp r4, r3
+ strh r2, [r0, r12]
+ blt _020A5910
+ ldmia sp!, {r4,lr}
+ bx lr
+
+ arm_func_start FUN_020A5930
+FUN_020A5930: ; 0x020A5930
+ stmdb sp!, {r4-r8,lr}
+ mov r7, r1
+ mov r5, r3
+ mov r8, r0
+ mov r6, r2
+ mov r0, r7
+ mov r1, r5
+ bl thunk_FUN_020a5a28
+ mov r4, r0
+ mov r0, r6
+ mov r1, r5
+ bl thunk_FUN_020a5a28
+_020A5960: ; 0x020A5960
+ cmp r4, r0
+ movlt r4, r0
+ cmp r4, r5
+ addne r4, r4, #0x1
+ mov r3, #0x0
+ mov r12, r3
+ cmp r4, #0x0
+ ble _020A59A8
+_020A5980:
+ mov r2, r12, lsl #0x1
+ ldrh r1, [r7, r2]
+ ldrh r0, [r6, r2]
+ add r12, r12, #0x1
+ cmp r12, r4
+ add r0, r1, r0
+ add r0, r3, r0
+ strh r0, [r8, r2]
+ mov r3, r0, lsr #0x10
+ blt _020A5980
+_020A59A8:
+ cmp r8, r7
+ ldmeqia sp!, {r4-r8,lr}
+ bxeq lr
+ cmp r8, r6
+ ldmeqia sp!, {r4-r8,lr}
+ bxeq lr
+ sub r1, r5, r12
+ add r0, r8, r12, lsl #0x1
+ mov r2, r1, lsl #0x1
+ mov r1, #0x0
+ bl MI_CpuFill8
+ ldmia sp!, {r4-r8,lr}
+ bx lr
+
+ arm_func_start FUN_020A59DC
+FUN_020A59DC:
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ sub r2, r1, #0x1
+ mov r2, r2, lsl #0x1
+ ldrh r2, [r0, r2]
+ ands r2, r2, #0x8000
+ addne sp, sp, #0x4
+ mvnne r0, #0x0
+ ldmneia sp!, {lr}
+ bxne lr
+ bl thunk_FUN_020a5a28
+_020A5A08: ; 0x020A5A08
+ cmp r0, #0x0
+ movne r0, #0x1
+ moveq r0, #0x0
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+
+ arm_func_start thunk_FUN_020a5a28
+thunk_FUN_020a5a28:
+ b _020A5A28
+_020A5A24:
+ sub r1, r1, #0x1
+_020A5A28:
+ cmp r1, #0x0
+ beq _020A5A44
+ sub r2, r1, #0x1
+ mov r2, r2, lsl #0x1
+ ldrh r2, [r0, r2]
+ cmp r2, #0x0
+ beq _020A5A24
+_020A5A44:
+ mov r0, r1
+ bx lr
+
+ arm_func_start FUN_020A5A4C
+FUN_020A5A4C: ; 0x020A5A4C
+ mov r1, r0
+ mov r0, #0x0
+ mov r3, #0x1
+_020A5A58:
+ clz r2, r1
+ rsbs r2, r2, #0x1f
+ bxcc lr
+ bic r1, r1, r3, lsl r2
+ add r0, r0, #0x1
+ b _020A5A58
+
+ arm_func_start FUN_020A5A70
+FUN_020A5A70: ; 0x020A5A70
+ clz r0, r0
+ bx lr
+
+ arm_func_start FUN_020A5A78
+FUN_020A5A78: ; 0x020A5A78
+ stmdb sp!, {r4,lr}
+ sub sp, sp, #0x8
+ ldrh r0, [r0, #0x2]
+ cmp r0, #0x0
+ bne _020A5D80
+ ldr r2, _020A5DA8 ; =0x021CA86C
+ mov r0, #0x0
+ ldr r1, [r2, #0x0]
+ add r1, r1, #0x2000
+ strb r0, [r1, #0x26b]
+ ldr r1, [r2, #0x0]
+ add r1, r1, #0x2200
+ strh r0, [r1, #0x82]
+ ldr r3, [r2, #0x0]
+ add r1, r3, #0x2000
+ ldr r1, [r1, #0x260]
+ cmp r1, #0xd
+ addls pc, pc, r1, lsl #0x2
+ b _020A5D4C
+_020A5AC4:
+ b _020A5D4C
+_020A5AC8:
+ b _020A5D4C
+_020A5ACC:
+ b _020A5D4C
+_020A5AD0:
+ b _020A5D4C
+_020A5AD4:
+ b _020A5D4C
+_020A5AD8:
+ b _020A5AFC
+_020A5ADC:
+ b _020A5AFC
+_020A5AE0:
+ b _020A5B24
+_020A5AE4:
+ b _020A5B4C
+_020A5AE8:
+ b _020A5C74
+_020A5AEC:
+ b _020A5CA4
+_020A5AF0:
+ b _020A5D4C
+_020A5AF4:
+ b _020A5C74
+_020A5AF8:
+ b _020A5CD4
+_020A5AFC:
+ mov r0, #0x3
+ bl FUN_020A6C38
+ mov r1, #0x0
+ ldr r3, _020A5DAC ; =0x000008F5
+ mov r2, r1
+ mov r0, #0x1
+ bl FUN_020A6D3C
+ add sp, sp, #0x8
+ ldmia sp!, {r4,lr}
+ bx lr
+_020A5B24:
+ mov r0, #0x3
+ bl FUN_020A6C38
+_020A5B2C: ; 0x020A5B2C
+ mov r0, #0x0
+ ldr r3, _020A5DB0 ; =0x000008FB
+ mov r1, r0
+ mov r2, r0
+ bl FUN_020A6D3C
+ add sp, sp, #0x8
+ ldmia sp!, {r4,lr}
+ bx lr
+_020A5B4C:
+ add r1, r3, #0x2200
+ ldrh r4, [r1, #0xf8]
+ strh r0, [r1, #0xf8]
+ cmp r4, #0x12
+ bne _020A5C44
+ ldr r1, [r2, #0x0]
+ add r1, r1, #0x2100
+ ldrh r3, [r1, #0x70]
+ and r12, r3, #0x24
+ cmp r12, #0x24
+ beq _020A5C44
+ orr r3, r3, #0x24
+ strh r3, [r1, #0x70]
+ ldr r2, [r2, #0x0]
+ add r1, r2, #0x2000
+ ldr r3, [r1, #0x264]
+ and r1, r3, #0xc0000
+ cmp r1, #0xc0000
+ moveq r0, #0x1
+ mov r0, r0, lsl #0x10
+ mov r12, r0, lsr #0x10
+ and r1, r3, #0x30000
+ cmp r1, #0x30000
+ movne r3, #0x1
+ add r1, r2, #0x2140
+ ldr r0, _020A5DB4 ; =FUN_020A6144
+ moveq r3, #0x0
+ mov r2, #0x0
+ str r12, [sp, #0x0]
+ bl WM_StartConnectEx
+ cmp r0, #0x2
+ addeq sp, sp, #0x8
+ ldmeqia sp!, {r4,lr}
+ bxeq lr
+ cmp r0, #0x3
+ beq _020A5C14
+ cmp r0, #0x8
+ bne _020A5C14
+ mov r0, #0xc
+ bl FUN_020A6C38
+ ldr r0, _020A5DA8 ; =0x021CA86C
+ ldr r3, _020A5DB8 ; =0x0000091C
+ ldr r0, [r0, #0x0]
+ mov r2, r4
+ add r1, r0, #0x2140
+ mov r0, #0x1
+ bl FUN_020A6D3C
+ add sp, sp, #0x8
+ ldmia sp!, {r4,lr}
+ bx lr
+_020A5C14:
+ mov r0, #0xb
+ bl FUN_020A6C38
+ ldr r0, _020A5DA8 ; =0x021CA86C
+ ldr r3, _020A5DBC ; =0x00000925
+ ldr r0, [r0, #0x0]
+ mov r2, r4
+ add r1, r0, #0x2140
+ mov r0, #0x7
+ bl FUN_020A6D3C
+ add sp, sp, #0x8
+ ldmia sp!, {r4,lr}
+ bx lr
+_020A5C44:
+ mov r0, #0x3
+ bl FUN_020A6C38
+ ldr r0, _020A5DA8 ; =0x021CA86C
+ ldr r3, _020A5DC0 ; =0x0000092D
+ ldr r0, [r0, #0x0]
+ mov r2, r4
+ add r1, r0, #0x2140
+ mov r0, #0x1
+ bl FUN_020A6D3C
+ add sp, sp, #0x8
+ ldmia sp!, {r4,lr}
+ bx lr
+_020A5C74:
+ mov r0, #0x3
+ bl FUN_020A6C38
+ ldr r0, _020A5DA8 ; =0x021CA86C
+ ldr r3, _020A5DC4 ; =0x00000935
+ ldr r1, [r0, #0x0]
+ mov r0, #0x0
+ add r1, r1, #0x2140
+ mov r2, #0x1
+ bl FUN_020A6D3C
+ add sp, sp, #0x8
+ ldmia sp!, {r4,lr}
+ bx lr
+_020A5CA4:
+ mov r0, #0x3
+ bl FUN_020A6C38
+ ldr r1, _020A5DA8 ; =0x021CA86C
+ mov r0, #0x0
+ ldr r1, [r1, #0x0]
+ ldr r3, _020A5DC8 ; =0x0000093C
+ mov r2, r0
+ add r1, r1, #0x2140
+ bl FUN_020A6D3C
+ add sp, sp, #0x8
+ ldmia sp!, {r4,lr}
+ bx lr
+_020A5CD4:
+ ldr r0, _020A5DCC ; =FUN_020A6768
+ bl WM_PowerOff
+ cmp r0, #0x2
+ addeq sp, sp, #0x8
+ ldmeqia sp!, {r4,lr}
+ bxeq lr
+ cmp r0, #0x3
+ beq _020A5D24
+ cmp r0, #0x8
+ bne _020A5D24
+ mov r0, #0xc
+ bl FUN_020A6C38
+ mov r1, #0x0
+ ldr r3, _020A5DD0 ; =0x0000094A
+ mov r2, r1
+ mov r0, #0x1
+ bl FUN_020A6D3C
+ add sp, sp, #0x8
+ ldmia sp!, {r4,lr}
+ bx lr
+_020A5D24:
+ mov r0, #0xb
+ bl FUN_020A6C38
+ mov r1, #0x0
+ ldr r3, _020A5DD4 ; =0x00000953
+ mov r2, r1
+ mov r0, #0x7
+ bl FUN_020A6D3C
+ add sp, sp, #0x8
+ ldmia sp!, {r4,lr}
+ bx lr
+_020A5D4C:
+ mov r0, #0xb
+ bl FUN_020A6C38
+ ldr r0, _020A5DA8 ; =0x021CA86C
+ ldr r3, _020A5DD8 ; =0x00000959
+ ldr r1, [r0, #0x0]
+ mov r0, #0x7
+ add r1, r1, #0x2000
+ ldr r2, [r1, #0x260]
+ mov r1, #0x0
+ bl FUN_020A6D3C
+ add sp, sp, #0x8
+ ldmia sp!, {r4,lr}
+ bx lr
+_020A5D80:
+ mov r0, #0xb
+ bl FUN_020A6C38
+ mov r1, #0x0
+ mov r2, r1
+ mov r0, #0x7
+ mov r3, #0x960
+ bl FUN_020A6D3C
+ add sp, sp, #0x8
+ ldmia sp!, {r4,lr}
+ bx lr
+ .balign 4
+_020A5DA8: .word 0x021CA86C
+_020A5DAC: .word 0x000008F5
+_020A5DB0: .word 0x000008FB
+_020A5DB4: .word FUN_020A6144
+_020A5DB8: .word 0x0000091C
+_020A5DBC: .word 0x00000925
+_020A5DC0: .word 0x0000092D
+_020A5DC4: .word 0x00000935
+_020A5DC8: .word 0x0000093C
+_020A5DCC: .word FUN_020A6768
+_020A5DD0: .word 0x0000094A
+_020A5DD4: .word 0x00000953
+_020A5DD8: .word 0x00000959
+
+ arm_func_start FUN_020A5DDC
+FUN_020A5DDC: ; 0x020A5DDC
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldrh r0, [r0, #0x2]
+ cmp r0, #0x4
+ addls pc, pc, r0, lsl #0x2
+ b _020A5EF4
+_020A5DF4:
+ b _020A5E08
+_020A5DF8:
+ b _020A5EDC
+_020A5DFC:
+ b _020A5EF4
+_020A5E00:
+ b _020A5EDC
+_020A5E04:
+ b _020A5EF4
+_020A5E08:
+ ldr r0, _020A5F24 ; =0x021CA86C
+ ldr r0, [r0, #0x0]
+ add r0, r0, #0x2000
+ ldr r0, [r0, #0x260]
+ cmp r0, #0xc
+ bne _020A5E38
+ mov r0, #0xa
+ bl FUN_020A6C38
+ bl FUN_020A6B28
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+_020A5E38:
+ ldr r0, _020A5F28 ; =FUN_020A6058
+ mov r1, #0x0
+ bl WM_Disconnect
+ cmp r0, #0x2
+ addeq sp, sp, #0x4
+ ldmeqia sp!, {lr}
+ bxeq lr
+ cmp r0, #0x3
+ beq _020A5E94
+ cmp r0, #0x8
+ bne _020A5EAC
+ mov r0, #0xc
+ bl FUN_020A6C38
+ ldr r0, _020A5F24 ; =0x021CA86C
+ ldr r3, _020A5F2C ; =0x000008B4
+ ldr r1, [r0, #0x0]
+ mov r0, #0x1
+ add r1, r1, #0x2140
+ mov r2, #0x0
+ bl FUN_020A6D3C
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+_020A5E94:
+ mov r0, #0xa
+ bl FUN_020A6C38
+ bl FUN_020A6B28
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+_020A5EAC:
+ mov r0, #0xb
+ bl FUN_020A6C38
+ ldr r1, _020A5F24 ; =0x021CA86C
+ mov r0, #0x7
+ ldr r1, [r1, #0x0]
+ mov r2, #0x0
+ add r1, r1, #0x2140
+ mov r3, #0x8c0
+ bl FUN_020A6D3C
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+_020A5EDC:
+ mov r0, #0xa
+ bl FUN_020A6C38
+ bl FUN_020A6B28
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+_020A5EF4:
+ mov r0, #0xb
+ bl FUN_020A6C38
+ ldr r0, _020A5F24 ; =0x021CA86C
+ ldr r3, _020A5F30 ; =0x000008D3
+ ldr r1, [r0, #0x0]
+ mov r0, #0x7
+ add r1, r1, #0x2140
+ mov r2, #0x0
+ bl FUN_020A6D3C
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+ .balign 4
+_020A5F24: .word 0x021CA86C
+_020A5F28: .word FUN_020A6058
+_020A5F2C: .word 0x000008B4
+_020A5F30: .word 0x000008D3
+
+ arm_func_start FUN_020A5F34
+FUN_020A5F34: ; 0x020A5F34
+ stmdb sp!, {r4,lr}
+ mov r4, r0
+ ldrh r0, [r4, #0x2]
+ cmp r0, #0x0
+ beq _020A5F50
+ cmp r0, #0x4
+ b _020A601C
+_020A5F50:
+ ldrh r0, [r4, #0x4]
+ cmp r0, #0xe
+ beq _020A5F68
+ cmp r0, #0xf
+ beq _020A5FC0
+ b _020A5FF0
+_020A5F68:
+ ldr r0, _020A6048 ; =0x021CA86C
+ ldr r0, [r0, #0x0]
+ add r0, r0, #0x2000
+ ldr r0, [r0, #0x260]
+ cmp r0, #0xc
+ bne _020A5F94
+ mov r0, #0x8
+ bl FUN_020A6C38
+ bl FUN_020A6B28
+ ldmia sp!, {r4,lr}
+ bx lr
+_020A5F94:
+ mov r0, #0x9
+ bl FUN_020A6C38
+ ldr r1, _020A6048 ; =0x021CA86C
+ mov r0, #0x0
+ ldr r1, [r1, #0x0]
+ ldr r3, _020A604C ; =0x00000872
+ mov r2, r0
+ add r1, r1, #0x2140
+ bl FUN_020A6D3C
+ ldmia sp!, {r4,lr}
+ bx lr
+_020A5FC0:
+ ldr r0, [r4, #0x8]
+ ldrh r0, [r0, #0xe]
+ mov r0, r0, asr #0x8
+ and r0, r0, #0xff
+ bl FUN_020A89D0
+ ldr r0, [r4, #0x8]
+ mov r1, #0x620
+ bl DC_InvalidateRange
+ ldr r0, [r4, #0x8]
+ bl FUN_020A8934
+ ldmia sp!, {r4,lr}
+ bx lr
+_020A5FF0:
+ mov r0, #0xb
+ bl FUN_020A6C38
+ ldr r0, _020A6048 ; =0x021CA86C
+ ldrh r2, [r4, #0x4]
+ ldr r0, [r0, #0x0]
+ ldr r3, _020A6050 ; =0x00000881
+ add r1, r0, #0x2140
+ mov r0, #0x7
+ bl FUN_020A6D3C
+ ldmia sp!, {r4,lr}
+ bx lr
+_020A601C:
+ mov r0, #0xb
+ bl FUN_020A6C38
+ ldr r0, _020A6048 ; =0x021CA86C
+ ldr r3, _020A6054 ; =0x0000088C
+ ldr r1, [r0, #0x0]
+ mov r0, #0x7
+ add r1, r1, #0x2140
+ mov r2, #0x0
+ bl FUN_020A6D3C
+ ldmia sp!, {r4,lr}
+ bx lr
+ .balign 4
+_020A6048: .word 0x021CA86C
+_020A604C: .word 0x00000872
+_020A6050: .word 0x00000881
+_020A6054: .word 0x0000088C
+
+ arm_func_start FUN_020A6058
+FUN_020A6058: ; 0x020A6058
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldrh r0, [r0, #0x2]
+ cmp r0, #0x4
+ addls pc, pc, r0, lsl #0x2
+ b _020A6108
+_020A6070:
+ b _020A6084
+_020A6074:
+ b _020A60F0
+_020A6078:
+ b _020A6108
+_020A607C:
+ b _020A60F0
+_020A6080:
+ b _020A6108
+_020A6084:
+ ldr r0, _020A6138 ; =0x021CA86C
+ ldr r1, [r0, #0x0]
+ add r0, r1, #0x2000
+ ldr r0, [r0, #0x260]
+ cmp r0, #0xc
+ bne _020A60B4
+ mov r0, #0xa
+ bl FUN_020A6C38
+ bl FUN_020A6B28
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+_020A60B4:
+ add r1, r1, #0x2200
+ mov r2, #0x0
+ mov r0, #0x3
+ strh r2, [r1, #0x82]
+ bl FUN_020A6C38
+ ldr r1, _020A6138 ; =0x021CA86C
+ mov r0, #0x0
+ ldr r1, [r1, #0x0]
+ ldr r3, _020A613C ; =0x0000083D
+ mov r2, r0
+ add r1, r1, #0x2140
+ bl FUN_020A6D3C
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+_020A60F0:
+ mov r0, #0xa
+ bl FUN_020A6C38
+ bl FUN_020A6B28
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+_020A6108:
+ mov r0, #0xb
+ bl FUN_020A6C38
+ ldr r0, _020A6138 ; =0x021CA86C
+ ldr r3, _020A6140 ; =0x0000084F
+ ldr r1, [r0, #0x0]
+ mov r0, #0x7
+ add r1, r1, #0x2140
+ mov r2, #0x0
+ bl FUN_020A6D3C
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+ .balign 4
+_020A6138: .word 0x021CA86C
+_020A613C: .word 0x0000083D
+_020A6140: .word 0x0000084F
+
+ arm_func_start FUN_020A6144
+FUN_020A6144: ; 0x020A6144
+ stmdb sp!, {r4,lr}
+ mov r4, r0
+ ldrh r0, [r4, #0x2]
+ cmp r0, #0xc
+ addls pc, pc, r0, lsl #0x2
+ b _020A638C
+_020A615C:
+ b _020A6190
+_020A6160:
+ b _020A6364
+_020A6164:
+ b _020A638C
+_020A6168:
+ b _020A638C
+_020A616C:
+ b _020A638C
+_020A6170:
+ b _020A638C
+_020A6174:
+ b _020A6378
+_020A6178:
+ b _020A638C
+_020A617C:
+ b _020A638C
+_020A6180:
+ b _020A638C
+_020A6184:
+ b _020A638C
+_020A6188:
+ b _020A6378
+_020A618C:
+ b _020A6378
+_020A6190:
+ ldrh r0, [r4, #0x8]
+ cmp r0, #0x9
+ bgt _020A61D0
+ cmp r0, #0x0
+ addge pc, pc, r0, lsl #0x2
+ b _020A6338
+_020A61A8: ; 0x020A61A8
+ b _020A6338
+_020A61AC: ; 0x020A61AC
+ b _020A6338
+_020A61B0: ; 0x020A61B0
+ b _020A6338
+_020A61B4: ; 0x020A61B4
+ b _020A6338
+_020A61B8: ; 0x020A61B8
+ b _020A6338
+_020A61BC: ; 0x020A61BC
+ b _020A6338
+_020A61C0: ; 0x020A61C0
+ b _020A63B0
+_020A61C4: ; 0x020A61C4
+ b _020A6258
+_020A61C8: ; 0x020A61C8
+ b _020A61E0
+_020A61CC: ; 0x020A61CC
+ b _020A61E0
+_020A61D0:
+ cmp r0, #0x1a
+ ldmeqia sp!, {r4,lr}
+ bxeq lr
+ b _020A6338
+_020A61E0:
+ ldr r1, _020A63B8 ; =0x021CA86C
+ ldr r2, [r1, #0x0]
+ add r0, r2, #0x2000
+ ldr r0, [r0, #0x260]
+ sub r0, r0, #0x8
+ cmp r0, #0x4
+ addls pc, pc, r0, lsl #0x2
+ b _020A63B0
+_020A6200:
+ b _020A6220
+_020A6204:
+ b _020A6230
+_020A6208:
+ b _020A6214
+_020A620C:
+ b _020A63B0
+_020A6210:
+ b _020A624C
+_020A6214:
+ add r0, r2, #0x2200
+ mov r1, #0x0
+ strh r1, [r0, #0x82]
+_020A6220:
+ mov r0, #0xc
+ bl FUN_020A6C38
+ ldmia sp!, {r4,lr}
+ bx lr
+_020A6230:
+ add r0, r2, #0x2200
+ mov r2, #0x0
+ strh r2, [r0, #0x82]
+ ldr r0, [r1, #0x0]
+ mov r1, #0x6
+ add r0, r0, #0x2200
+ strh r1, [r0, #0x80]
+_020A624C:
+ bl FUN_020A6B28
+ ldmia sp!, {r4,lr}
+ bx lr
+_020A6258:
+ ldr r1, _020A63B8 ; =0x021CA86C
+ ldr r3, [r1, #0x0]
+ add r0, r3, #0x2000
+ ldr r0, [r0, #0x260]
+ cmp r0, #0xc
+ bne _020A6284
+ mov r0, #0x8
+ bl FUN_020A6C38
+ bl FUN_020A6B28
+ ldmia sp!, {r4,lr}
+ bx lr
+_020A6284:
+ ldrh r2, [r4, #0xa]
+ cmp r2, #0x1
+ blo _020A632C
+ ldr r0, _020A63BC ; =0x000007D7
+ cmp r2, r0
+ bhi _020A632C
+ add r0, r3, #0x2200
+ strh r2, [r0, #0x82]
+ ldr r1, [r1, #0x0]
+ ldr r0, _020A63C0 ; =FUN_020A5F34
+ add r1, r1, #0x1500
+ mov r2, #0x620
+ bl WM_StartDCF
+ cmp r0, #0x2
+ ldmeqia sp!, {r4,lr}
+ bxeq lr
+ cmp r0, #0x3
+ beq _020A6300
+ cmp r0, #0x8
+ bne _020A6300
+ mov r0, #0xc
+ bl FUN_020A6C38
+ ldr r0, _020A63B8 ; =0x021CA86C
+ ldr r3, _020A63C4 ; =0x000007ED
+ ldr r1, [r0, #0x0]
+ mov r0, #0x1
+ add r1, r1, #0x2140
+ mov r2, #0x0
+ bl FUN_020A6D3C
+ ldmia sp!, {r4,lr}
+ bx lr
+_020A6300:
+ mov r0, #0xb
+ bl FUN_020A6C38
+ ldr r0, _020A63B8 ; =0x021CA86C
+ ldr r3, _020A63C8 ; =0x000007F6
+ ldr r1, [r0, #0x0]
+ mov r0, #0x7
+ add r1, r1, #0x2140
+ mov r2, #0x0
+ bl FUN_020A6D3C
+ ldmia sp!, {r4,lr}
+ bx lr
+_020A632C:
+ bl FUN_020A6B28
+ ldmia sp!, {r4,lr}
+ bx lr
+_020A6338:
+ mov r0, #0xb
+ bl FUN_020A6C38
+ ldr r0, _020A63B8 ; =0x021CA86C
+ ldrh r2, [r4, #0x8]
+ ldr r0, [r0, #0x0]
+ ldr r3, _020A63CC ; =0x00000804
+ add r1, r0, #0x2140
+ mov r0, #0x7
+ bl FUN_020A6D3C
+ ldmia sp!, {r4,lr}
+ bx lr
+_020A6364:
+ ldr r0, _020A63B8 ; =0x021CA86C
+ ldrh r1, [r4, #0xe]
+ ldr r0, [r0, #0x0]
+ add r0, r0, #0x2200
+ strh r1, [r0, #0xf8]
+_020A6378:
+ mov r0, #0x8
+ bl FUN_020A6C38
+ bl FUN_020A6B28
+ ldmia sp!, {r4,lr}
+ bx lr
+_020A638C:
+ mov r0, #0xb
+ bl FUN_020A6C38
+ ldr r0, _020A63B8 ; =0x021CA86C
+ ldr r3, _020A63D0 ; =0x0000081B
+ ldr r1, [r0, #0x0]
+ mov r0, #0x7
+ add r1, r1, #0x2140
+ mov r2, #0x0
+ bl FUN_020A6D3C
+_020A63B0:
+ ldmia sp!, {r4,lr}
+ bx lr
+ .balign 4
+_020A63B8: .word 0x021CA86C
+_020A63BC: .word 0x000007D7
+_020A63C0: .word FUN_020A5F34
+_020A63C4: .word 0x000007ED
+_020A63C8: .word 0x000007F6
+_020A63CC: .word 0x00000804
+_020A63D0: .word 0x0000081B
+
+ arm_func_start FUN_020A63D4
+FUN_020A63D4: ; 0x020A63D4
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldrh r0, [r0, #0x2]
+ cmp r0, #0x4
+ addls pc, pc, r0, lsl #0x2
+ b _020A6438
+_020A63EC:
+ b _020A6400
+_020A63F0:
+ b _020A6428
+_020A63F4:
+ b _020A6438
+_020A63F8:
+ b _020A6438
+_020A63FC:
+ b _020A6438
+_020A6400:
+ mov r0, #0x3
+ bl FUN_020A6C38
+_020A6408: ; 0x020A6408
+ mov r0, #0x0
+ ldr r3, _020A6460 ; =0x00000783
+ mov r1, r0
+ mov r2, r0
+ bl FUN_020A6D3C
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+_020A6428:
+ bl FUN_020A6B28
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+_020A6438:
+ mov r0, #0xb
+ bl FUN_020A6C38
+ mov r1, #0x0
+ ldr r3, _020A6464 ; =0x00000793
+ mov r2, r1
+ mov r0, #0x7
+ bl FUN_020A6D3C
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+ .balign 4
+_020A6460: .word 0x00000783
+_020A6464: .word 0x00000793
+
+ arm_func_start FUN_020A6468
+FUN_020A6468: ; 0x020A6468
+ stmdb sp!, {r4-r8,lr}
+ sub sp, sp, #0x8
+ mov r5, r0
+ ldrh r0, [r5, #0x2]
+ mov r4, #0x14
+ cmp r0, #0x4
+ addls pc, pc, r0, lsl #0x2
+ b _020A6714
+_020A6488:
+ b _020A649C
+_020A648C:
+ b _020A6704
+_020A6490:
+ b _020A6714
+_020A6494:
+ b _020A6714
+_020A6498:
+ b _020A6714
+_020A649C:
+ ldr r0, _020A673C ; =0x021CA86C
+ ldr r0, [r0, #0x0]
+ add r0, r0, #0x2000
+ ldr r0, [r0, #0x260]
+ cmp r0, #0x5
+ bne _020A64D0
+ mov r0, #0x6
+ bl FUN_020A6C38
+_020A64BC: ; 0x020A64BC
+ mov r0, #0x0
+ ldr r3, _020A6740 ; =0x00000704
+ mov r1, r0
+ mov r2, r0
+ bl FUN_020A6D3C
+_020A64D0:
+ ldr r1, _020A673C ; =0x021CA86C
+ ldr r2, [r1, #0x0]
+ add r0, r2, #0x2000
+ ldr r0, [r0, #0x260]
+ cmp r0, #0x6
+ beq _020A64FC
+ cmp r0, #0x7
+ beq _020A6674
+ cmp r0, #0xd
+ beq _020A6684
+ b _020A6694
+_020A64FC:
+ add r0, r2, #0x2200
+ mov r2, #0x7
+ strh r2, [r0, #0x80]
+ ldrh r0, [r5, #0x8]
+ cmp r0, #0x5
+ bne _020A6588
+ ldr r0, [r1, #0x0]
+ add r1, r0, #0x2200
+ add r0, r0, #0x2000
+ ldrh r1, [r1, #0x8c]
+ ldr r0, [r0, #0x288]
+ bl DC_InvalidateRange
+ ldrh r0, [r5, #0xe]
+ mov r4, #0x0
+ cmp r0, #0x0
+ ble _020A6588
+ ldr r8, _020A6744 ; =0x0000071A
+ mov r6, r4
+ mov r7, #0x7
+_020A6548:
+ add r0, r5, r4, lsl #0x1
+ add r2, r5, r4, lsl #0x2
+ ldrh r1, [r0, #0x50]
+ ldr r0, [r2, #0x10]
+ bl FUN_020A8298
+ str r8, [sp, #0x0]
+ add r0, r5, r4, lsl #0x2
+ ldr r2, [r0, #0x10]
+ mov r0, r7
+ mov r1, r6
+ mov r3, r5
+ bl FUN_020A6CE0
+ ldrh r0, [r5, #0xe]
+ add r4, r4, #0x1
+ cmp r4, r0
+ blt _020A6548
+_020A6588:
+ ldr r0, _020A673C ; =0x021CA86C
+ ldr r0, [r0, #0x0]
+ add r0, r0, #0x2000
+ ldr r1, [r0, #0x264]
+ and r0, r1, #0xc00000
+ cmp r0, #0xc00000
+ bne _020A65F4
+ ldr r0, _020A6748 ; =0x00003FFE
+ and r0, r1, r0
+ bl FUN_020A5A4C
+ movs r1, r0
+ beq _020A65F4
+ ldr r0, _020A673C ; =0x021CA86C
+ ldr r0, [r0, #0x0]
+ add r0, r0, #0x2000
+ ldr r6, [r0, #0x284]
+ mov r0, r6
+ bl _u32_div_f
+_020A65D0: ; 0x020A65D0
+ cmp r1, #0x0
+ bne _020A65F4
+ ldr r4, _020A674C ; =0x00000728
+ mov r1, #0x0
+ mov r2, r6
+ mov r3, r1
+ mov r0, #0x8
+ str r4, [sp, #0x0]
+ bl FUN_020A6CE0
+_020A65F4:
+ ldrh r0, [r5, #0xa]
+ bl FUN_020A5A70
+ rsb r0, r0, #0x20
+ mov r0, r0, lsl #0x10
+ mov r0, r0, lsr #0x10
+ bl FUN_020A6D8C
+ ldr r1, _020A673C ; =0x021CA86C
+ mov r2, #0x1
+ mov r2, r2, lsl r0
+ ldr r0, [r1, #0x0]
+ mov r2, r2, asr #0x1
+ add r0, r0, #0x2200
+ strh r2, [r0, #0x8e]
+ ldr r0, [r1, #0x0]
+ add r1, r0, #0x2200
+ add r0, r0, #0x2000
+ ldrh r1, [r1, #0x8c]
+ ldr r0, [r0, #0x288]
+ bl DC_InvalidateRange
+ ldr r3, _020A673C ; =0x021CA86C
+ ldr r2, _020A6750 ; =0x00002288
+ ldr r1, [r3, #0x0]
+ ldr r0, _020A6754 ; =FUN_020A6468
+ add r1, r1, #0x2000
+ ldr r4, [r1, #0x284]
+ add r4, r4, #0x1
+ str r4, [r1, #0x284]
+ ldr r1, [r3, #0x0]
+ add r1, r1, r2
+ bl WM_StartScanEx
+ mov r4, r0
+ b _020A6694
+_020A6674:
+ ldr r0, _020A6758 ; =FUN_020A63D4
+ bl WM_EndScan
+ mov r4, r0
+ b _020A6694
+_020A6684:
+ bl FUN_020A6B28
+ add sp, sp, #0x8
+ ldmia sp!, {r4-r8,lr}
+ bx lr
+_020A6694:
+ cmp r4, #0x2
+ addeq sp, sp, #0x8
+ ldmeqia sp!, {r4-r8,lr}
+ bxeq lr
+ cmp r4, #0x3
+ beq _020A66DC
+ cmp r4, #0x8
+ bne _020A66DC
+ mov r0, #0xc
+ bl FUN_020A6C38
+ mov r1, #0x0
+ ldr r3, _020A675C ; =0x00000753
+ mov r2, r1
+ mov r0, #0x1
+ bl FUN_020A6D3C
+ add sp, sp, #0x8
+ ldmia sp!, {r4-r8,lr}
+ bx lr
+_020A66DC:
+ mov r0, #0xb
+ bl FUN_020A6C38
+ mov r1, #0x0
+ ldr r3, _020A6760 ; =0x0000075C
+ mov r2, r1
+ mov r0, #0x7
+ bl FUN_020A6D3C
+ add sp, sp, #0x8
+ ldmia sp!, {r4-r8,lr}
+ bx lr
+_020A6704:
+ bl FUN_020A6B28
+ add sp, sp, #0x8
+ ldmia sp!, {r4-r8,lr}
+ bx lr
+_020A6714:
+ mov r0, #0xb
+ bl FUN_020A6C38
+ mov r1, #0x0
+ ldr r3, _020A6764 ; =0x0000076D
+ mov r2, r1
+ mov r0, #0x7
+ bl FUN_020A6D3C
+ add sp, sp, #0x8
+ ldmia sp!, {r4-r8,lr}
+ bx lr
+ .balign 4
+_020A673C: .word 0x021CA86C
+_020A6740: .word 0x00000704
+_020A6744: .word 0x0000071A
+_020A6748: .word 0x00003FFE
+_020A674C: .word 0x00000728
+_020A6750: .word 0x00002288
+_020A6754: .word FUN_020A6468
+_020A6758: .word FUN_020A63D4
+_020A675C: .word 0x00000753
+_020A6760: .word 0x0000075C
+_020A6764: .word 0x0000076D
+
+ arm_func_start FUN_020A6768
+FUN_020A6768: ; 0x020A6768
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldrh r1, [r0, #0x2]
+ mov r2, #0x14
+ cmp r1, #0x4
+ addls pc, pc, r1, lsl #0x2
+ b _020A6A0C
+_020A6784:
+ b _020A6798
+_020A6788:
+ b _020A69CC
+_020A678C:
+ b _020A6A0C
+_020A6790:
+ b _020A6A0C
+_020A6794:
+ b _020A6A0C
+_020A6798:
+ ldrh r0, [r0, #0x0]
+ cmp r0, #0x19
+ bgt _020A67D4
+ cmp r0, #0x19
+ bge _020A68B4
+ cmp r0, #0x6
+ addls pc, pc, r0, lsl #0x2
+ b _020A692C
+_020A67B8:
+ b _020A692C
+_020A67BC:
+ b _020A692C
+_020A67C0:
+ b _020A692C
+_020A67C4:
+ b _020A67F4
+_020A67C8:
+ b _020A6804
+_020A67CC:
+ b _020A6868
+_020A67D0:
+ b _020A6890
+_020A67D4:
+ cmp r0, #0x1d
+ bgt _020A67E8
+ cmp r0, #0x1d
+ beq _020A68A0
+ b _020A692C
+_020A67E8:
+ cmp r0, #0x27
+ beq _020A68DC
+ b _020A692C
+_020A67F4:
+ ldr r0, _020A6A4C ; =FUN_020A6768
+ bl WM_PowerOn
+ mov r2, r0
+ b _020A692C
+_020A6804:
+ bl WM_Finish
+_020A6808: ; 0x020A6808
+ cmp r0, #0x0
+ beq _020A6818
+ cmp r0, #0x4
+ b _020A6840
+_020A6818:
+ mov r0, #0x1
+ bl FUN_020A6C38
+_020A6820: ; 0x020A6820
+ mov r0, #0x0
+ ldr r3, _020A6A50 ; =0x00000663
+ mov r1, r0
+ mov r2, r0
+ bl FUN_020A6D3C
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+_020A6840:
+ mov r0, #0xb
+ bl FUN_020A6C38
+ mov r1, #0x0
+ ldr r3, _020A6A54 ; =0x0000066C
+ mov r2, r1
+ mov r0, #0x7
+ bl FUN_020A6D3C
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+_020A6868:
+ mov r0, #0x3
+ bl FUN_020A6C38
+_020A6870: ; 0x020A6870
+ mov r0, #0x0
+ ldr r3, _020A6A58 ; =0x00000673
+ mov r1, r0
+ mov r2, r0
+ bl FUN_020A6D3C
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+_020A6890:
+ ldr r0, _020A6A4C ; =FUN_020A6768
+ bl WM_Disable
+ mov r2, r0
+ b _020A692C
+_020A68A0:
+ ldr r0, _020A6A4C ; =FUN_020A6768
+ mov r1, #0x0
+ bl WM_SetBeaconIndication
+ mov r2, r0
+ b _020A692C
+_020A68B4:
+ ldr r1, _020A6A5C ; =0x021CA86C
+ ldr r0, _020A6A4C ; =FUN_020A6768
+ ldr r3, [r1, #0x0]
+ add r2, r3, #0x2000
+ ldrb r1, [r2, #0x250]
+ ldrb r2, [r2, #0x251]
+ add r3, r3, #0x2200
+ bl WM_SetWEPKeyEx
+ mov r2, r0
+ b _020A692C
+_020A68DC:
+ ldr r0, _020A6A5C ; =0x021CA86C
+ ldr r2, [r0, #0x0]
+ add r0, r2, #0x2000
+ ldr r1, [r0, #0x264]
+ and r0, r1, #0xc0000
+ cmp r0, #0xc0000
+ moveq r0, #0x1
+ movne r0, #0x0
+ mov r0, r0, lsl #0x10
+ mov r12, r0, lsr #0x10
+ and r1, r1, #0x30000
+ cmp r1, #0x30000
+ movne r3, #0x1
+ add r1, r2, #0x2140
+ ldr r0, _020A6A60 ; =FUN_020A6144
+ moveq r3, #0x0
+ mov r2, #0x0
+ str r12, [sp, #0x0]
+ bl WM_StartConnectEx
+ mov r2, r0
+_020A692C:
+ cmp r2, #0x2
+ addeq sp, sp, #0x4
+ ldmeqia sp!, {lr}
+ bxeq lr
+ cmp r2, #0x3
+ beq _020A698C
+ cmp r2, #0x8
+ bne _020A698C
+ mov r0, #0xc
+ bl FUN_020A6C38
+ ldr r0, _020A6A5C ; =0x021CA86C
+ ldr r3, _020A6A64 ; =0x000006AF
+ ldr r1, [r0, #0x0]
+ mov r2, #0x0
+ add r0, r1, #0x2200
+ ldrsh r0, [r0, #0x80]
+ cmp r0, #0x5
+ addeq r1, r1, #0x2140
+ movne r1, #0x0
+ mov r0, #0x1
+ bl FUN_020A6D3C
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+_020A698C:
+ mov r0, #0xb
+ bl FUN_020A6C38
+ ldr r0, _020A6A5C ; =0x021CA86C
+ ldr r3, _020A6A68 ; =0x000006B8
+ ldr r1, [r0, #0x0]
+ mov r2, #0x0
+ add r0, r1, #0x2200
+ ldrsh r0, [r0, #0x80]
+ cmp r0, #0x5
+ addeq r1, r1, #0x2140
+ movne r1, #0x0
+ mov r0, #0x7
+ bl FUN_020A6D3C
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+_020A69CC:
+ mov r0, #0xc
+ bl FUN_020A6C38
+ ldr r0, _020A6A5C ; =0x021CA86C
+ ldr r3, _020A6A6C ; =0x000006DE
+ ldr r1, [r0, #0x0]
+ mov r2, #0x0
+ add r0, r1, #0x2200
+ ldrsh r0, [r0, #0x80]
+ cmp r0, #0x5
+ addeq r1, r1, #0x2140
+ movne r1, #0x0
+ mov r0, #0x1
+ bl FUN_020A6D3C
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+_020A6A0C:
+ mov r0, #0xb
+ bl FUN_020A6C38
+ ldr r0, _020A6A5C ; =0x021CA86C
+ ldr r3, _020A6A70 ; =0x000006E8
+ ldr r1, [r0, #0x0]
+ mov r2, #0x0
+ add r0, r1, #0x2200
+ ldrsh r0, [r0, #0x80]
+ cmp r0, #0x5
+ addeq r1, r1, #0x2140
+ movne r1, #0x0
+ mov r0, #0x7
+ bl FUN_020A6D3C
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+ .balign 4
+_020A6A4C: .word FUN_020A6768
+_020A6A50: .word 0x00000663
+_020A6A54: .word 0x0000066C
+_020A6A58: .word 0x00000673
+_020A6A5C: .word 0x021CA86C
+_020A6A60: .word FUN_020A6144
+_020A6A64: .word 0x000006AF
+_020A6A68: .word 0x000006B8
+_020A6A6C: .word 0x000006DE
+_020A6A70: .word 0x000006E8
+
+ arm_func_start FUN_020A6A74
+FUN_020A6A74: ; 0x020A6A74
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldrh r1, [r0, #0x2]
+ cmp r1, #0x8
+ addne sp, sp, #0x4
+ ldmneia sp!, {lr}
+ bxne lr
+ ldrh r1, [r0, #0x4]
+ cmp r1, #0x16
+ addne sp, sp, #0x4
+ ldmneia sp!, {lr}
+ bxne lr
+ ldrh r0, [r0, #0x6]
+ cmp r0, #0x25
+ addne sp, sp, #0x4
+ ldmneia sp!, {lr}
+ bxne lr
+ ldr r0, _020A6B24 ; =0x021CA86C
+ ldr r0, [r0, #0x0]
+ add r0, r0, #0x2000
+ ldr r0, [r0, #0x260]
+ sub r0, r0, #0x8
+ cmp r0, #0x4
+ addls pc, pc, r0, lsl #0x2
+ b _020A6B18
+_020A6AD8:
+ b _020A6AEC
+_020A6ADC:
+ b _020A6B00
+_020A6AE0:
+ b _020A6B10
+_020A6AE4:
+ b _020A6B18
+_020A6AE8:
+ b _020A6B00
+_020A6AEC:
+ mov r0, #0xc
+ bl FUN_020A6C38
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+_020A6B00:
+ bl FUN_020A6B28
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+_020A6B10:
+ mov r0, #0xc
+ bl FUN_020A6C38
+_020A6B18:
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+ .balign 4
+_020A6B24: .word 0x021CA86C
+
+ arm_func_start FUN_020A6B28
+FUN_020A6B28: ; 0x020A6B28
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldr r0, _020A6B98 ; =0x021CA86C
+ ldr r0, [r0, #0x0]
+ add r1, r0, #0x2000
+ ldrb r0, [r1, #0x26b]
+ cmp r0, #0x0
+ addne sp, sp, #0x4
+ ldmneia sp!, {lr}
+ bxne lr
+ ldr r0, _020A6B9C ; =FUN_020A5A78
+ mov r2, #0x1
+ strb r2, [r1, #0x26b]
+ bl WM_Reset
+ cmp r0, #0x2
+ addeq sp, sp, #0x4
+ ldmeqia sp!, {lr}
+ bxeq lr
+ mov r0, #0xb
+ bl FUN_020A6C38
+ mov r1, #0x0
+ mov r2, r1
+ mov r0, #0x7
+ mov r3, #0x610
+ bl FUN_020A6D3C
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+ .balign 4
+_020A6B98: .word 0x021CA86C
+_020A6B9C: .word FUN_020A5A78
+
+ arm_func_start FUN_020A6BA0
+FUN_020A6BA0: ; 0x020A6BA0
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ bl FUN_020A88A8
+ bl FUN_020A6BBC
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+
+ arm_func_start FUN_020A6BBC
+FUN_020A6BBC: ; 0x020A6BBC
+ stmdb sp!, {r4,lr}
+ sub sp, sp, #0x8
+ bl OS_DisableInterrupts
+ ldr r2, _020A6C28 ; =0x021CA86C
+ ldr r1, _020A6C2C ; =0x000022CC
+ ldr r2, [r2, #0x0]
+ mov r4, r0
+ add r0, r2, r1
+ bl OS_CancelAlarm
+ ldr r0, _020A6C28 ; =0x021CA86C
+ ldr r12, [r0, #0x0]
+ add r0, r12, #0x2000
+ ldr r0, [r0, #0x260]
+ cmp r0, #0x9
+ bne _020A6C14
+ ldr r0, _020A6C2C ; =0x000022CC
+ ldr r1, _020A6C30 ; =0x022F5341
+ mov r2, #0x0
+ ldr r3, _020A6C34 ; =FUN_020A6BA0
+ add r0, r12, r0
+ str r2, [sp, #0x0]
+ bl OS_SetAlarm
+_020A6C14:
+ mov r0, r4
+ bl OS_RestoreInterrupts
+ add sp, sp, #0x8
+ ldmia sp!, {r4,lr}
+ bx lr
+ .balign 4
+_020A6C28: .word 0x021CA86C
+_020A6C2C: .word 0x000022CC
+_020A6C30: .word 0x022F5341
+_020A6C34: .word FUN_020A6BA0
+
+ arm_func_start FUN_020A6C38
+FUN_020A6C38:
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ mov r5, r0
+ bl OS_DisableInterrupts
+ ldr r1, _020A6CD0 ; =0x021CA86C
+ mov r4, r0
+ ldr r1, [r1, #0x0]
+ add r0, r1, #0x2000
+ ldr r0, [r0, #0x260]
+ cmp r0, #0x9
+ bne _020A6C78
+ cmp r5, #0x9
+ beq _020A6C78
+ ldr r0, _020A6CD4 ; =0x000022CC
+ add r0, r1, r0
+ bl OS_CancelAlarm
+_020A6C78:
+ ldr r0, _020A6CD0 ; =0x021CA86C
+ ldr r0, [r0, #0x0]
+ add r0, r0, #0x2000
+ ldr r1, [r0, #0x260]
+ cmp r1, #0xb
+ strne r5, [r0, #0x260]
+ cmp r5, #0x9
+ bne _020A6CBC
+ mov r2, #0x0
+ ldr r0, _020A6CD0 ; =0x021CA86C
+ str r2, [sp, #0x0]
+ ldr r5, [r0, #0x0]
+ ldr r0, _020A6CD4 ; =0x000022CC
+ ldr r1, _020A6CD8 ; =0x022F5341
+ ldr r3, _020A6CDC ; =FUN_020A6BA0
+ add r0, r5, r0
+ bl OS_SetAlarm
+_020A6CBC:
+ mov r0, r4
+ bl OS_RestoreInterrupts
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,lr}
+ bx lr
+ .balign 4
+_020A6CD0: .word 0x021CA86C
+_020A6CD4: .word 0x000022CC
+_020A6CD8: .word 0x022F5341
+_020A6CDC: .word FUN_020A6BA0
+
+ arm_func_start FUN_020A6CE0
+FUN_020A6CE0: ; 0x020A6CE0
+ stmdb sp!, {lr}
+ sub sp, sp, #0x14
+ ldr ip, _020A6D38 ; =0x021CA86C
+ ldr r12, [r12, #0x0]
+ add r12, r12, #0x2000
+ ldr lr, [r12, #0x27c]
+ cmp lr, #0x0
+ addeq sp, sp, #0x14
+ ldmeqia sp!, {lr}
+ bxeq lr
+ ldr lr, [sp, #0x18]
+ strh r0, [sp, #0x0]
+ str r2, [sp, #0x4]
+ str r3, [sp, #0x8]
+ str lr, [sp, #0xc]
+ strh r1, [sp, #0x2]
+ ldr r1, [r12, #0x27c]
+ add r0, sp, #0x0
+ blx r1
+ add sp, sp, #0x14
+ ldmia sp!, {lr}
+ bx lr
+ .balign 4
+_020A6D38: .word 0x021CA86C
+
+ arm_func_start FUN_020A6D3C
+FUN_020A6D3C: ; 0x020A6D3C
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ ldr ip, _020A6D88 ; =0x021CA86C
+ mov r5, r0
+ ldr r0, [r12, #0x0]
+ mov r4, r1
+ add r1, r0, #0x2200
+ ldrsh r0, [r1, #0x80]
+ mov r12, #0x0
+ mov lr, r2
+ strh r12, [r1, #0x80]
+ str r3, [sp, #0x0]
+ mov r1, r5
+ mov r2, r4
+ mov r3, lr
+ bl FUN_020A6CE0
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,lr}
+ bx lr
+ .balign 4
+_020A6D88: .word 0x021CA86C
+
+ arm_func_start FUN_020A6D8C
+FUN_020A6D8C: ; 0x020A6D8C
+ stmdb sp!, {r4-r6,lr}
+ ldr r1, _020A6E24 ; =0x021CA86C
+ mov r2, r0
+ ldr r1, [r1, #0x0]
+ mov r3, #0x0
+ add r1, r1, #0x2000
+ ldr r1, [r1, #0x264]
+ mov r6, #0x1
+ ldr r5, _020A6E28 ; =0x4EC4EC4F
+ ldr r4, _020A6E2C ; =0x0000000D
+_020A6DB4:
+ smull r12, lr, r5, r2
+ mov lr, lr, asr #0x2
+ mov r12, r2, lsr #0x1f
+ add lr, r12, lr
+ smull r12, lr, r4, lr
+ sub lr, r2, r12
+ add r12, lr, #0x1
+ mov r12, r6, lsl r12
+ ands r12, r1, r12
+ bne _020A6DEC
+ add r3, r3, #0x1
+ cmp r3, #0xd
+ add r2, r2, #0x1
+ blt _020A6DB4
+_020A6DEC:
+ ldr r1, _020A6E28 ; =0x4EC4EC4F
+ add r3, r0, r3
+ smull r0, r4, r1, r3
+ mov r4, r4, asr #0x2
+ mov r0, r3, lsr #0x1f
+ ldr r2, _020A6E2C ; =0x0000000D
+ add r4, r0, r4
+ smull r0, r1, r2, r4
+ sub r4, r3, r0
+ add r0, r4, #0x1
+ mov r0, r0, lsl #0x10
+ mov r0, r0, lsr #0x10
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+ .balign 4
+_020A6E24: .word 0x021CA86C
+_020A6E28: .word 0x4EC4EC4F
+_020A6E2C: .word 0x0000000D
+
+ arm_func_start FUN_020A6E30
+FUN_020A6E30: ; 0x020A6E30
+ ldr r0, _020A6E48 ; =0x021CA86C
+ ldr r1, _020A6E4C ; =0x00AAA082
+ ldr r0, [r0, #0x0]
+ add r0, r0, #0x2000
+ str r1, [r0, #0x264]
+ bx lr
+ .balign 4
+_020A6E48: .word 0x021CA86C
+_020A6E4C: .word 0x00AAA082
+
+ arm_func_start FUN_020A6E50
+FUN_020A6E50: ; 0x020A6E50
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ mov r5, r0
+ mov r0, r2
+ mov r4, r1
+ bl FUN_020A7148
+ ldr r2, _020A6FF4 ; =0x021CA86C
+ mov r3, #0x400
+ ldr r1, [r2, #0x0]
+ mov r0, #0x0
+ add r12, r1, #0x1500
+ add r1, r1, #0x2000
+ str r12, [r1, #0x288]
+ ldr r1, [r2, #0x0]
+ add r1, r1, #0x2200
+ strh r3, [r1, #0x8c]
+ bl FUN_020A6D8C
+ ldr r1, _020A6FF4 ; =0x021CA86C
+ mov r2, #0x1
+ mov r2, r2, lsl r0
+ ldr r0, [r1, #0x0]
+ mov r2, r2, asr #0x1
+ add r0, r0, #0x2200
+ strh r2, [r0, #0x8e]
+ ldr r0, [r1, #0x0]
+ add r0, r0, #0x2200
+ ldrh r0, [r0, #0x68]
+ cmp r0, #0x0
+ bne _020A6EC8
+ bl WM_GetDispersionScanPeriod
+_020A6EC8:
+ ldr r2, _020A6FF4 ; =0x021CA86C
+ ldr r1, [r2, #0x0]
+ add r1, r1, #0x2200
+ strh r0, [r1, #0x90]
+ ldr r1, [r2, #0x0]
+ add r0, r1, #0x2000
+ ldr r0, [r0, #0x264]
+ and r0, r0, #0x300000
+ cmp r0, #0x300000
+ movne r2, #0x1
+ moveq r2, #0x0
+ add r0, r1, #0x2200
+ strh r2, [r0, #0x98]
+ cmp r5, #0x0
+ bne _020A6F24
+ ldr r0, _020A6FF4 ; =0x021CA86C
+ ldr r1, _020A6FF8 ; =0x00002292
+ ldr r2, [r0, #0x0]
+ ldr r0, _020A6FFC ; =0x020FF590
+ add r1, r2, r1
+ mov r2, #0x6
+ bl MI_CpuCopy8
+ b _020A6F40
+_020A6F24:
+ ldr r0, _020A6FF4 ; =0x021CA86C
+ ldr r1, _020A6FF8 ; =0x00002292
+ ldr r2, [r0, #0x0]
+ mov r0, r5
+ add r1, r2, r1
+ mov r2, #0x6
+ bl MI_CpuCopy8
+_020A6F40:
+ cmp r4, #0x0
+ beq _020A6F54
+ ldr r0, _020A7000 ; =0x020FF598
+ cmp r4, r0
+ bne _020A6F88
+_020A6F54:
+ ldr r0, _020A6FF4 ; =0x021CA86C
+ ldr r1, _020A7004 ; =0x0000229C
+ ldr r2, [r0, #0x0]
+ ldr r0, _020A7000 ; =0x020FF598
+ add r1, r2, r1
+ mov r2, #0x20
+ bl MI_CpuCopy8
+ ldr r0, _020A6FF4 ; =0x021CA86C
+ mov r1, #0x0
+ ldr r0, [r0, #0x0]
+ add r0, r0, #0x2200
+ strh r1, [r0, #0x9a]
+ b _020A6FD4
+_020A6F88:
+ ldr r0, _020A6FF4 ; =0x021CA86C
+ ldr r1, _020A7004 ; =0x0000229C
+ ldr r2, [r0, #0x0]
+ mov r0, r4
+ add r1, r2, r1
+ mov r2, #0x20
+ bl MI_CpuCopy8
+ mov r1, #0x0
+_020A6FA8:
+ ldrb r0, [r4, #0x0]
+ cmp r0, #0x0
+ beq _020A6FC4
+ add r1, r1, #0x1
+ cmp r1, #0x20
+ add r4, r4, #0x1
+ blt _020A6FA8
+_020A6FC4:
+ ldr r0, _020A6FF4 ; =0x021CA86C
+ ldr r0, [r0, #0x0]
+ add r0, r0, #0x2200
+ strh r1, [r0, #0x9a]
+_020A6FD4:
+ ldr r0, _020A6FF4 ; =0x021CA86C
+ mov r1, #0x0
+ ldr r0, [r0, #0x0]
+ add r0, r0, #0x2000
+ str r1, [r0, #0x284]
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,lr}
+ bx lr
+ .balign 4
+_020A6FF4: .word 0x021CA86C
+_020A6FF8: .word 0x00002292
+_020A6FFC: .word 0x020FF590
+_020A7000: .word 0x020FF598
+_020A7004: .word 0x0000229C
+
+ arm_func_start FUN_020A7008
+FUN_020A7008: ; 0x020A7008
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ movs r5, r0
+ mov r4, r1
+ bne _020A705C
+ ldr r1, _020A7134 ; =0x021CA86C
+ mov r3, #0x3
+ ldr r0, [r1, #0x0]
+ mov r2, #0x0
+ add r0, r0, #0x2000
+ str r3, [r0, #0x26c]
+ ldr r0, [r1, #0x0]
+ add r0, r0, #0x2000
+ str r2, [r0, #0x270]
+ ldr r0, [r1, #0x0]
+ add r0, r0, #0x2000
+ str r2, [r0, #0x274]
+ ldr r0, [r1, #0x0]
+ add r0, r0, #0x2000
+ str r2, [r0, #0x278]
+ b _020A7118
+_020A705C:
+ ldr r1, _020A7134 ; =0x021CA86C
+ ldr r2, [r5, #0x0]
+ ldr r0, [r1, #0x0]
+ and r2, r2, #0x3
+ add r0, r0, #0x2000
+ str r2, [r0, #0x26c]
+ ldr r3, [r5, #0x4]
+ ldr r0, [r5, #0x8]
+ and r2, r3, #0x3
+ rsb r2, r2, #0x4
+ and r2, r2, #0x3
+ add r2, r2, #0xc
+ cmp r2, r0
+ bls _020A70B4
+ ldr r0, [r1, #0x0]
+ mov r2, #0x0
+ add r0, r0, #0x2000
+ str r2, [r0, #0x270]
+ ldr r0, [r1, #0x0]
+ add r0, r0, #0x2000
+ str r2, [r0, #0x274]
+ b _020A7104
+_020A70B4:
+ ldr r0, [r1, #0x0]
+ add r2, r3, #0x3
+ bic r2, r2, #0x3
+ add r0, r0, #0x2000
+ str r2, [r0, #0x270]
+ ldr r2, [r5, #0x4]
+ ldr r0, [r1, #0x0]
+ and r2, r2, #0x3
+ rsb r2, r2, #0x4
+ ldr r3, [r5, #0x8]
+ and r2, r2, #0x3
+ sub r2, r3, r2
+ add r0, r0, #0x2000
+ str r2, [r0, #0x274]
+ ldr r0, [r1, #0x0]
+ mov r1, #0x0
+ add r2, r0, #0x2000
+ ldr r0, [r2, #0x270]
+ ldr r2, [r2, #0x274]
+ bl MI_CpuFill8
+_020A7104:
+ ldr r0, _020A7134 ; =0x021CA86C
+ ldr r1, [r5, #0xc]
+ ldr r0, [r0, #0x0]
+ add r0, r0, #0x2000
+ str r1, [r0, #0x278]
+_020A7118:
+ ldr r0, _020A7134 ; =0x021CA86C
+ ldr r0, [r0, #0x0]
+ add r0, r0, #0x2000
+ str r4, [r0, #0x27c]
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,lr}
+ bx lr
+ .balign 4
+_020A7134: .word 0x021CA86C
+
+ arm_func_start FUN_020A7138
+FUN_020A7138:
+ ldr r0, _020A7144 ; =0x021CA86C
+ ldr r0, [r0, #0x0]
+ bx lr
+ .balign 4
+_020A7144: .word 0x021CA86C
+
+ arm_func_start FUN_020A7148
+FUN_020A7148: ; 0x020A7148
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ mov r5, r0
+ bl OS_DisableInterrupts
+ ldr r1, _020A71EC ; =0x021CA86C
+ mov r2, #0x0
+ ldr r1, [r1, #0x0]
+ add r3, r1, #0x2000
+ cmp r1, #0x0
+ ldr r4, [r3, #0x264]
+ bne _020A7188
+ bl OS_RestoreInterrupts
+ add sp, sp, #0x4
+ mov r0, #0x0
+ ldmia sp!, {r4-r5,lr}
+ bx lr
+_020A7188:
+ ands r3, r5, #0x8000
+ beq _020A71A4
+ ldr r3, _020A71F0 ; =0x00003FFE
+ orr r2, r2, r3
+ ands r3, r5, r3
+ ldreq r3, _020A71F4 ; =0x0000A082
+ orreq r5, r5, r3
+_020A71A4:
+ ands r3, r5, #0x20000
+ orrne r2, r2, #0x10000
+ ands r3, r5, #0x80000
+ orrne r2, r2, #0x40000
+ ands r3, r5, #0x200000
+ orrne r2, r2, #0x100000
+ ands r3, r5, #0x800000
+ orrne r2, r2, #0x400000
+ mvn r2, r2
+ and r2, r4, r2
+ orr r2, r5, r2
+ add r1, r1, #0x2000
+ str r2, [r1, #0x264]
+ bl OS_RestoreInterrupts
+ mov r0, r4
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,lr}
+ bx lr
+ .balign 4
+_020A71EC: .word 0x021CA86C
+_020A71F0: .word 0x00003FFE
+_020A71F4: .word 0x0000A082
+
+ arm_func_start FUN_020A71F8
+FUN_020A71F8: ; 0x020A71F8
+ stmdb sp!, {r4,lr}
+ bl OS_DisableInterrupts
+ ldr r1, _020A7228 ; =0x021CA86C
+ mov r4, #0x0
+ ldr r1, [r1, #0x0]
+ cmp r1, #0x0
+ addne r1, r1, #0x2000
+ ldrne r4, [r1, #0x260]
+ bl OS_RestoreInterrupts
+ mov r0, r4
+ ldmia sp!, {r4,lr}
+ bx lr
+ .balign 4
+_020A7228: .word 0x021CA86C
+
+ arm_func_start FUN_020A722C
+FUN_020A722C: ; 0x020A722C
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ bl OS_DisableInterrupts
+ ldr r1, _020A747C ; =0x021CA86C
+ mov r4, r0
+ ldr r1, [r1, #0x0]
+ cmp r1, #0x0
+ bne _020A7260
+ bl OS_RestoreInterrupts
+ add sp, sp, #0x4
+ mov r0, #0x1
+ ldmia sp!, {r4-r5,lr}
+ bx lr
+_020A7260:
+ add r1, r1, #0x2000
+ ldr r2, [r1, #0x260]
+ cmp r2, #0xd
+ addls pc, pc, r2, lsl #0x2
+ b _020A7308
+_020A7274:
+ b _020A7308
+_020A7278:
+ b _020A72C0
+_020A727C:
+ b _020A7308
+_020A7280:
+ b _020A7320
+_020A7284:
+ b _020A7308
+_020A7288:
+ b _020A7308
+_020A728C:
+ b _020A72D4
+_020A7290:
+ b _020A7308
+_020A7294:
+ b _020A7308
+_020A7298:
+ b _020A7320
+_020A729C:
+ b _020A7308
+_020A72A0:
+ b _020A7308
+_020A72A4:
+ b _020A7320
+_020A72A8:
+ b _020A72AC
+_020A72AC:
+ bl OS_RestoreInterrupts
+ add sp, sp, #0x4
+ mov r0, #0x2
+ ldmia sp!, {r4-r5,lr}
+ bx lr
+_020A72C0:
+ bl OS_RestoreInterrupts
+ add sp, sp, #0x4
+ mov r0, #0x0
+ ldmia sp!, {r4-r5,lr}
+ bx lr
+_020A72D4:
+ mov r0, #0xd
+ bl FUN_020A6C38
+ ldr r1, _020A747C ; =0x021CA86C
+ mov r0, r4
+ ldr r1, [r1, #0x0]
+ mov r2, #0x9
+ add r1, r1, #0x2200
+ strh r2, [r1, #0x80]
+ bl OS_RestoreInterrupts
+ add sp, sp, #0x4
+ mov r0, #0x3
+ ldmia sp!, {r4-r5,lr}
+ bx lr
+_020A7308:
+ mov r0, r4
+ bl OS_RestoreInterrupts
+ add sp, sp, #0x4
+ mov r0, #0x1
+ ldmia sp!, {r4-r5,lr}
+ bx lr
+_020A7320:
+ ldrb r0, [r1, #0x26b]
+ cmp r0, #0x1
+ bne _020A734C
+ mov r0, #0xd
+ bl FUN_020A6C38
+ ldr r0, _020A747C ; =0x021CA86C
+ mov r1, #0x9
+ ldr r0, [r0, #0x0]
+ add r0, r0, #0x2200
+ strh r1, [r0, #0x80]
+ b _020A7464
+_020A734C:
+ bl WMi_GetStatusAddress
+ mov r5, r0
+ mov r1, #0x2
+ bl DC_InvalidateRange
+ ldrh r0, [r5, #0x0]
+ cmp r0, #0x0
+ beq _020A737C
+ cmp r0, #0x1
+ beq _020A73BC
+ cmp r0, #0x2
+ beq _020A73C8
+ b _020A73D4
+_020A737C:
+ bl WM_Finish
+_020A7380: ; 0x020A7380
+ cmp r0, #0x0
+ bne _020A73F0
+ mov r0, #0x1
+ bl FUN_020A6C38
+ ldr r1, _020A747C ; =0x021CA86C
+ mov r0, r4
+ ldr r1, [r1, #0x0]
+ mov r2, #0x0
+ add r1, r1, #0x2200
+ strh r2, [r1, #0x80]
+ bl OS_RestoreInterrupts
+ add sp, sp, #0x4
+ mov r0, #0x0
+ ldmia sp!, {r4-r5,lr}
+ bx lr
+_020A73BC:
+ ldr r0, _020A7480 ; =FUN_020A6768
+ bl WM_Disable
+ b _020A73F0
+_020A73C8:
+ ldr r0, _020A7480 ; =FUN_020A6768
+ bl WM_PowerOff
+ b _020A73F0
+_020A73D4:
+ ldr r1, _020A747C ; =0x021CA86C
+ ldr r0, _020A7484 ; =FUN_020A5A78
+ ldr r1, [r1, #0x0]
+ mov r2, #0x1
+ add r1, r1, #0x2000
+ strb r2, [r1, #0x26b]
+ bl WM_Reset
+_020A73F0:
+ cmp r0, #0x2
+ beq _020A740C
+ cmp r0, #0x3
+ beq _020A7444
+ cmp r0, #0x8
+ beq _020A742C
+ b _020A7444
+_020A740C:
+ mov r0, #0xd
+ bl FUN_020A6C38
+ ldr r0, _020A747C ; =0x021CA86C
+ mov r1, #0x9
+ ldr r0, [r0, #0x0]
+ add r0, r0, #0x2200
+ strh r1, [r0, #0x80]
+ b _020A7464
+_020A742C:
+ mov r0, r4
+ bl OS_RestoreInterrupts
+ add sp, sp, #0x4
+ mov r0, #0x4
+ ldmia sp!, {r4-r5,lr}
+ bx lr
+_020A7444:
+ mov r0, #0xb
+ bl FUN_020A6C38
+ mov r0, r4
+ bl OS_RestoreInterrupts
+ add sp, sp, #0x4
+ mov r0, #0x7
+ ldmia sp!, {r4-r5,lr}
+ bx lr
+_020A7464:
+ mov r0, r4
+ bl OS_RestoreInterrupts
+ mov r0, #0x3
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,lr}
+ bx lr
+ .balign 4
+_020A747C: .word 0x021CA86C
+_020A7480: .word FUN_020A6768
+_020A7484: .word FUN_020A5A78
+
+ arm_func_start FUN_020A7488
+FUN_020A7488: ; 0x020A7488
+ stmdb sp!, {r4,lr}
+ bl OS_DisableInterrupts
+ ldr r1, _020A75B8 ; =0x021CA86C
+ mov r4, r0
+ ldr r1, [r1, #0x0]
+ cmp r1, #0x0
+ bne _020A74B4
+ bl OS_RestoreInterrupts
+ mov r0, #0x1
+ ldmia sp!, {r4,lr}
+ bx lr
+_020A74B4:
+ add r1, r1, #0x2000
+ ldr r2, [r1, #0x260]
+ cmp r2, #0x3
+ beq _020A74E4
+ cmp r2, #0x9
+ beq _020A7504
+ cmp r2, #0xa
+ bne _020A74F4
+ bl OS_RestoreInterrupts
+ mov r0, #0x2
+ ldmia sp!, {r4,lr}
+ bx lr
+_020A74E4:
+ bl OS_RestoreInterrupts
+_020A74E8: ; 0x020A74E8
+ mov r0, #0x0
+ ldmia sp!, {r4,lr}
+ bx lr
+_020A74F4:
+ bl OS_RestoreInterrupts
+ mov r0, #0x1
+ ldmia sp!, {r4,lr}
+ bx lr
+_020A7504:
+ ldrb r0, [r1, #0x26b]
+ cmp r0, #0x1
+ bne _020A7530
+ mov r0, #0xa
+ bl FUN_020A6C38
+ ldr r0, _020A75B8 ; =0x021CA86C
+ mov r1, #0x6
+ ldr r0, [r0, #0x0]
+ add r0, r0, #0x2200
+ strh r1, [r0, #0x80]
+ b _020A75A4
+_020A7530:
+ ldr r0, _020A75BC ; =FUN_020A5DDC
+ bl WM_EndDCF
+ cmp r0, #0x2
+ beq _020A7554
+ cmp r0, #0x3
+ beq _020A7588
+ cmp r0, #0x8
+ beq _020A7574
+ b _020A7588
+_020A7554:
+ mov r0, #0xa
+ bl FUN_020A6C38
+ ldr r0, _020A75B8 ; =0x021CA86C
+ mov r1, #0x6
+ ldr r0, [r0, #0x0]
+ add r0, r0, #0x2200
+ strh r1, [r0, #0x80]
+ b _020A75A4
+_020A7574:
+ mov r0, r4
+ bl OS_RestoreInterrupts
+ mov r0, #0x4
+ ldmia sp!, {r4,lr}
+ bx lr
+_020A7588:
+ mov r0, #0xb
+ bl FUN_020A6C38
+ mov r0, r4
+ bl OS_RestoreInterrupts
+ mov r0, #0x7
+ ldmia sp!, {r4,lr}
+ bx lr
+_020A75A4:
+ mov r0, r4
+ bl OS_RestoreInterrupts
+ mov r0, #0x3
+ ldmia sp!, {r4,lr}
+ bx lr
+ .balign 4
+_020A75B8: .word 0x021CA86C
+_020A75BC: .word FUN_020A5DDC
+
+ arm_func_start FUN_020A75C0
+FUN_020A75C0: ; 0x020A75C0
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0x4
+ mov r7, r0
+ mov r6, r1
+ mov r5, r2
+ bl OS_DisableInterrupts
+ ldr r2, _020A7814 ; =0x021CA86C
+ mov r4, r0
+ ldr r12, [r2, #0x0]
+ cmp r12, #0x0
+ bne _020A7600
+ bl OS_RestoreInterrupts
+ add sp, sp, #0x4
+ mov r0, #0x1
+ ldmia sp!, {r4-r7,lr}
+ bx lr
+_020A7600:
+ add r1, r12, #0x2000
+ ldr r3, [r1, #0x260]
+ cmp r3, #0x3
+ beq _020A7624
+ cmp r3, #0x8
+ beq _020A7734
+ cmp r3, #0x9
+ beq _020A7748
+ b _020A775C
+_020A7624:
+ cmp r7, #0x0
+ bne _020A7640
+ bl OS_RestoreInterrupts
+ add sp, sp, #0x4
+ mov r0, #0x1
+ ldmia sp!, {r4-r7,lr}
+ bx lr
+_020A7640:
+ ldrh r3, [r7, #0x3c]
+ cmp r3, #0x0
+ beq _020A7660
+ bl OS_RestoreInterrupts
+ add sp, sp, #0x4
+ mov r0, #0x1
+ ldmia sp!, {r4-r7,lr}
+ bx lr
+_020A7660:
+ cmp r6, #0x0
+ beq _020A76E8
+ ldrb r3, [r6, #0x0]
+ cmp r3, #0x4
+ bhs _020A7680
+ ldrb r0, [r6, #0x1]
+ cmp r0, #0x4
+ blo _020A7698
+_020A7680:
+ mov r0, r4
+ bl OS_RestoreInterrupts
+ add sp, sp, #0x4
+ mov r0, #0x1
+ ldmia sp!, {r4-r7,lr}
+ bx lr
+_020A7698:
+ strb r3, [r1, #0x250]
+ ldr r0, [r2, #0x0]
+ ldrb r1, [r6, #0x1]
+ add r0, r0, #0x2000
+ strb r1, [r0, #0x251]
+ ldr r1, [r2, #0x0]
+ add r0, r1, #0x2000
+ ldrb r0, [r0, #0x250]
+ cmp r0, #0x0
+ bne _020A76D4
+ add r0, r1, #0x2200
+ mov r1, #0x0
+ mov r2, #0x50
+ bl MI_CpuFill8
+ b _020A76F8
+_020A76D4:
+ add r0, r6, #0x2
+ add r1, r1, #0x2200
+ mov r2, #0x50
+ bl MI_CpuCopy8
+ b _020A76F8
+_020A76E8:
+ add r0, r12, #0x2200
+ mov r1, #0x0
+ mov r2, #0x52
+ bl MI_CpuFill8
+_020A76F8:
+ ldr r1, _020A7814 ; =0x021CA86C
+ mov r0, r7
+ ldr r1, [r1, #0x0]
+ mov r2, #0xc0
+ add r1, r1, #0x2140
+ bl MI_CpuCopy8
+ ldr r1, _020A7814 ; =0x021CA86C
+ mov r0, r5
+ ldr r1, [r1, #0x0]
+ add r1, r1, #0x2100
+ ldrh r2, [r1, #0x6e]
+ orr r2, r2, #0x3
+ strh r2, [r1, #0x70]
+ bl FUN_020A7148
+ b _020A7770
+_020A7734:
+ bl OS_RestoreInterrupts
+ add sp, sp, #0x4
+ mov r0, #0x2
+ ldmia sp!, {r4-r7,lr}
+ bx lr
+_020A7748:
+ bl OS_RestoreInterrupts
+ add sp, sp, #0x4
+ mov r0, #0x0
+ ldmia sp!, {r4-r7,lr}
+ bx lr
+_020A775C:
+ bl OS_RestoreInterrupts
+ add sp, sp, #0x4
+ mov r0, #0x1
+ ldmia sp!, {r4-r7,lr}
+ bx lr
+_020A7770:
+ ldr r1, _020A7818 ; =0x0000FFFF
+ ldr r0, _020A781C ; =FUN_020A6768
+ mov r3, r1
+ mov r2, #0x50
+ str r1, [sp, #0x0]
+ bl WM_SetLifeTime
+ cmp r0, #0x2
+ beq _020A77A4
+ cmp r0, #0x3
+ beq _020A77DC
+ cmp r0, #0x8
+ beq _020A77C4
+ b _020A77DC
+_020A77A4:
+ mov r0, #0x8
+ bl FUN_020A6C38
+ ldr r0, _020A7814 ; =0x021CA86C
+ mov r1, #0x5
+ ldr r0, [r0, #0x0]
+ add r0, r0, #0x2200
+ strh r1, [r0, #0x80]
+ b _020A77FC
+_020A77C4:
+ mov r0, r4
+ bl OS_RestoreInterrupts
+ add sp, sp, #0x4
+ mov r0, #0x4
+ ldmia sp!, {r4-r7,lr}
+ bx lr
+_020A77DC:
+ mov r0, #0xb
+ bl FUN_020A6C38
+ mov r0, r4
+ bl OS_RestoreInterrupts
+ add sp, sp, #0x4
+ mov r0, #0x7
+ ldmia sp!, {r4-r7,lr}
+ bx lr
+_020A77FC:
+ mov r0, r4
+ bl OS_RestoreInterrupts
+ mov r0, #0x3
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r7,lr}
+ bx lr
+ .balign 4
+_020A7814: .word 0x021CA86C
+_020A7818: .word 0x0000FFFF
+_020A781C: .word FUN_020A6768
+
+ arm_func_start FUN_020A7820
+FUN_020A7820: ; 0x020A7820
+ stmdb sp!, {r4,lr}
+ bl OS_DisableInterrupts
+ ldr r1, _020A78D4 ; =0x021CA86C
+ mov r4, r0
+ ldr r1, [r1, #0x0]
+ cmp r1, #0x0
+ bne _020A784C
+ bl OS_RestoreInterrupts
+ mov r0, #0x1
+ ldmia sp!, {r4,lr}
+ bx lr
+_020A784C:
+ add r1, r1, #0x2000
+ ldr r1, [r1, #0x260]
+ cmp r1, #0x3
+ beq _020A78A0
+ cmp r1, #0x6
+ beq _020A7870
+ cmp r1, #0x7
+ beq _020A7890
+ b _020A78B0
+_020A7870:
+ mov r0, #0x7
+ bl FUN_020A6C38
+ ldr r0, _020A78D4 ; =0x021CA86C
+ mov r1, #0x4
+ ldr r0, [r0, #0x0]
+ add r0, r0, #0x2200
+ strh r1, [r0, #0x80]
+ b _020A78C0
+_020A7890:
+ bl OS_RestoreInterrupts
+ mov r0, #0x2
+ ldmia sp!, {r4,lr}
+ bx lr
+_020A78A0:
+ bl OS_RestoreInterrupts
+_020A78A4: ; 0x020A78A4
+ mov r0, #0x0
+ ldmia sp!, {r4,lr}
+ bx lr
+_020A78B0:
+ bl OS_RestoreInterrupts
+ mov r0, #0x1
+ ldmia sp!, {r4,lr}
+ bx lr
+_020A78C0:
+ mov r0, r4
+ bl OS_RestoreInterrupts
+ mov r0, #0x3
+ ldmia sp!, {r4,lr}
+ bx lr
+ .balign 4
+_020A78D4: .word 0x021CA86C
+
+ arm_func_start FUN_020A78D8
+FUN_020A78D8: ; 0x020A78D8
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0x4
+ mov r7, r0
+ mov r6, r1
+ mov r5, r2
+ bl OS_DisableInterrupts
+ ldr r1, _020A7A84 ; =0x021CA86C
+ mov r4, r0
+ ldr r1, [r1, #0x0]
+ cmp r1, #0x0
+ bne _020A7918
+ bl OS_RestoreInterrupts
+ add sp, sp, #0x4
+ mov r0, #0x1
+ ldmia sp!, {r4-r7,lr}
+ bx lr
+_020A7918:
+ add r1, r1, #0x2000
+ ldr r1, [r1, #0x260]
+ cmp r1, #0x3
+ beq _020A79A0
+ cmp r1, #0x5
+ beq _020A793C
+ cmp r1, #0x6
+ beq _020A7964
+ b _020A798C
+_020A793C:
+ mov r0, r7
+ mov r1, r6
+ mov r2, r5
+ bl FUN_020A6E50
+ mov r0, r4
+ bl OS_RestoreInterrupts
+ add sp, sp, #0x4
+ mov r0, #0x2
+ ldmia sp!, {r4-r7,lr}
+ bx lr
+_020A7964:
+ mov r0, r7
+ mov r1, r6
+ mov r2, r5
+ bl FUN_020A6E50
+ mov r0, r4
+ bl OS_RestoreInterrupts
+ add sp, sp, #0x4
+ mov r0, #0x0
+ ldmia sp!, {r4-r7,lr}
+ bx lr
+_020A798C:
+ bl OS_RestoreInterrupts
+ add sp, sp, #0x4
+ mov r0, #0x1
+ ldmia sp!, {r4-r7,lr}
+ bx lr
+_020A79A0:
+ mov r0, r7
+ mov r1, r6
+ mov r2, r5
+ bl FUN_020A6E50
+ ldr r0, _020A7A84 ; =0x021CA86C
+ ldr r0, [r0, #0x0]
+ add r1, r0, #0x2200
+ add r0, r0, #0x2000
+ ldrh r1, [r1, #0x8c]
+ ldr r0, [r0, #0x288]
+ bl DC_InvalidateRange
+ ldr r3, _020A7A84 ; =0x021CA86C
+ ldr r2, _020A7A88 ; =0x00002288
+ ldr r1, [r3, #0x0]
+ ldr r0, _020A7A8C ; =FUN_020A6468
+ add r1, r1, #0x2000
+ ldr r5, [r1, #0x284]
+ add r5, r5, #0x1
+ str r5, [r1, #0x284]
+ ldr r1, [r3, #0x0]
+ add r1, r1, r2
+ bl WM_StartScanEx
+ cmp r0, #0x2
+ beq _020A7A14
+ cmp r0, #0x3
+ beq _020A7A4C
+ cmp r0, #0x8
+ beq _020A7A34
+ b _020A7A4C
+_020A7A14:
+ mov r0, #0x5
+ bl FUN_020A6C38
+ ldr r0, _020A7A84 ; =0x021CA86C
+ mov r1, #0x3
+ ldr r0, [r0, #0x0]
+ add r0, r0, #0x2200
+ strh r1, [r0, #0x80]
+ b _020A7A6C
+_020A7A34:
+ mov r0, r4
+ bl OS_RestoreInterrupts
+ add sp, sp, #0x4
+ mov r0, #0x4
+ ldmia sp!, {r4-r7,lr}
+ bx lr
+_020A7A4C:
+ mov r0, #0xb
+ bl FUN_020A6C38
+ mov r0, r4
+ bl OS_RestoreInterrupts
+ add sp, sp, #0x4
+ mov r0, #0x7
+ ldmia sp!, {r4-r7,lr}
+ bx lr
+_020A7A6C:
+ mov r0, r4
+ bl OS_RestoreInterrupts
+ mov r0, #0x3
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r7,lr}
+ bx lr
+ .balign 4
+_020A7A84: .word 0x021CA86C
+_020A7A88: .word 0x00002288
+_020A7A8C: .word FUN_020A6468
+
+ arm_func_start FUN_020A7A90
+FUN_020A7A90: ; 0x020A7A90
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ cmp r0, #0x0
+ beq _020A7AA8
+ cmp r1, #0x0
+ bne _020A7AB8
+_020A7AA8:
+ bl FUN_020A7820
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+_020A7AB8:
+ bl FUN_020A78D8
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+
+ arm_func_start FUN_020A7AC8
+FUN_020A7AC8: ; 0x020A7AC8
+ stmdb sp!, {r4,lr}
+ bl OS_DisableInterrupts
+ ldr r1, _020A7BCC ; =0x021CA86C
+ mov r4, r0
+ ldr r1, [r1, #0x0]
+ cmp r1, #0x0
+ bne _020A7AF4
+ bl OS_RestoreInterrupts
+ mov r0, #0x1
+ ldmia sp!, {r4,lr}
+ bx lr
+_020A7AF4:
+ add r1, r1, #0x2000
+ ldr r1, [r1, #0x260]
+ cmp r1, #0x1
+ beq _020A7B24
+ cmp r1, #0x3
+ beq _020A7B44
+ cmp r1, #0x4
+ bne _020A7B34
+ bl OS_RestoreInterrupts
+ mov r0, #0x2
+ ldmia sp!, {r4,lr}
+ bx lr
+_020A7B24:
+ bl OS_RestoreInterrupts
+_020A7B28: ; 0x020A7B28
+ mov r0, #0x0
+ ldmia sp!, {r4,lr}
+ bx lr
+_020A7B34:
+ bl OS_RestoreInterrupts
+ mov r0, #0x1
+ ldmia sp!, {r4,lr}
+ bx lr
+_020A7B44:
+ ldr r0, _020A7BD0 ; =FUN_020A6768
+ bl WM_PowerOff
+ cmp r0, #0x2
+ beq _020A7B68
+ cmp r0, #0x3
+ beq _020A7B9C
+ cmp r0, #0x8
+ beq _020A7B88
+ b _020A7B9C
+_020A7B68:
+ mov r0, #0x4
+ bl FUN_020A6C38
+ ldr r0, _020A7BCC ; =0x021CA86C
+ mov r1, #0x2
+ ldr r0, [r0, #0x0]
+ add r0, r0, #0x2200
+ strh r1, [r0, #0x80]
+ b _020A7BB8
+_020A7B88:
+ mov r0, r4
+ bl OS_RestoreInterrupts
+ mov r0, #0x4
+ ldmia sp!, {r4,lr}
+ bx lr
+_020A7B9C:
+ mov r0, #0xb
+ bl FUN_020A6C38
+ mov r0, r4
+ bl OS_RestoreInterrupts
+ mov r0, #0x7
+ ldmia sp!, {r4,lr}
+ bx lr
+_020A7BB8:
+ mov r0, r4
+ bl OS_RestoreInterrupts
+ mov r0, #0x3
+ ldmia sp!, {r4,lr}
+ bx lr
+ .balign 4
+_020A7BCC: .word 0x021CA86C
+_020A7BD0: .word FUN_020A6768
+
+ arm_func_start FUN_020A7BD4
+FUN_020A7BD4: ; 0x020A7BD4
+ stmdb sp!, {r4-r6,lr}
+ mov r6, r0
+ mov r5, r1
+ bl OS_DisableInterrupts
+ ldr r1, _020A7E00 ; =0x021CA86C
+ mov r4, r0
+ ldr r1, [r1, #0x0]
+ cmp r1, #0x0
+ bne _020A7C08
+ bl OS_RestoreInterrupts
+ mov r0, #0x1
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+_020A7C08:
+ add r1, r1, #0x2000
+ ldr r1, [r1, #0x260]
+ cmp r1, #0x1
+ beq _020A7C2C
+ cmp r1, #0x2
+ beq _020A7C3C
+ cmp r1, #0x3
+ beq _020A7C4C
+ b _020A7C5C
+_020A7C2C:
+ mov r0, r6
+ mov r1, r5
+ bl FUN_020A7008
+ b _020A7C6C
+_020A7C3C:
+ bl OS_RestoreInterrupts
+ mov r0, #0x2
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+_020A7C4C:
+ bl OS_RestoreInterrupts
+_020A7C50: ; 0x020A7C50
+ mov r0, #0x0
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+_020A7C5C:
+ bl OS_RestoreInterrupts
+ mov r0, #0x1
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+_020A7C6C:
+ ldr r0, _020A7E00 ; =0x021CA86C
+ ldr r0, [r0, #0x0]
+ add r1, r0, #0x2000
+ ldr r1, [r1, #0x26c]
+ mov r1, r1, lsl #0x10
+ mov r1, r1, lsr #0x10
+ bl WM_Init
+ cmp r0, #0x6
+ addls pc, pc, r0, lsl #0x2
+ b _020A7CE0
+_020A7C94:
+ b _020A7CFC
+_020A7C98:
+ b _020A7CE0
+_020A7C9C:
+ b _020A7CE0
+_020A7CA0:
+ b _020A7CB0
+_020A7CA4:
+ b _020A7CCC
+_020A7CA8:
+ b _020A7CE0
+_020A7CAC:
+ b _020A7CE0
+_020A7CB0:
+ mov r0, #0xb
+ bl FUN_020A6C38
+ mov r0, r4
+ bl OS_RestoreInterrupts
+ mov r0, #0x7
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+_020A7CCC:
+ mov r0, r4
+ bl OS_RestoreInterrupts
+ mov r0, #0x5
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+_020A7CE0:
+ mov r0, #0xb
+ bl FUN_020A6C38
+ mov r0, r4
+ bl OS_RestoreInterrupts
+ mov r0, #0x7
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+_020A7CFC:
+ bl WM_GetAllowedChannel
+_020A7D00: ; 0x020A7D00
+ cmp r0, #0x0
+ bne _020A7D44
+ bl WM_Finish
+_020A7D0C: ; 0x020A7D0C
+ cmp r0, #0x0
+ beq _020A7D30
+ mov r0, #0xb
+ bl FUN_020A6C38
+ mov r0, r4
+ bl OS_RestoreInterrupts
+ mov r0, #0x7
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+_020A7D30:
+ mov r0, r4
+ bl OS_RestoreInterrupts
+ mov r0, #0x5
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+_020A7D44:
+ ldr r0, _020A7E04 ; =FUN_020A6A74
+ bl WM_SetIndCallback
+_020A7D4C: ; 0x020A7D4C
+ cmp r0, #0x0
+ beq _020A7D70
+ mov r0, #0xb
+ bl FUN_020A6C38
+ mov r0, r4
+ bl OS_RestoreInterrupts
+ mov r0, #0x7
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+_020A7D70:
+ ldr r0, _020A7E08 ; =FUN_020A6768
+ bl WM_Enable
+ cmp r0, #0x2
+ beq _020A7D94
+ cmp r0, #0x3
+ beq _020A7DD0
+ cmp r0, #0x8
+ beq _020A7DB4
+ b _020A7DD0
+_020A7D94:
+ mov r0, #0x2
+ bl FUN_020A6C38
+ ldr r0, _020A7E00 ; =0x021CA86C
+ mov r1, #0x1
+ ldr r0, [r0, #0x0]
+ add r0, r0, #0x2200
+ strh r1, [r0, #0x80]
+ b _020A7DEC
+_020A7DB4:
+ mov r0, #0xc
+ bl FUN_020A6C38
+ mov r0, r4
+ bl OS_RestoreInterrupts
+ mov r0, #0x1
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+_020A7DD0:
+ mov r0, #0xb
+ bl FUN_020A6C38
+ mov r0, r4
+ bl OS_RestoreInterrupts
+ mov r0, #0x7
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+_020A7DEC:
+ mov r0, r4
+ bl OS_RestoreInterrupts
+ mov r0, #0x3
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+ .balign 4
+_020A7E00: .word 0x021CA86C
+_020A7E04: .word FUN_020A6A74
+_020A7E08: .word FUN_020A6768
+
+ arm_func_start FUN_020A7E0C
+FUN_020A7E0C: ; 0x020A7E0C
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ bl OS_DisableInterrupts
+ ldr r2, _020A7E7C ; =0x021CA86C
+ ldr r1, [r2, #0x0]
+ cmp r1, #0x0
+ bne _020A7E3C
+ bl OS_RestoreInterrupts
+ add sp, sp, #0x4
+ mov r0, #0x1
+ ldmia sp!, {lr}
+ bx lr
+_020A7E3C:
+ add r1, r1, #0x2000
+ ldr r1, [r1, #0x260]
+ cmp r1, #0x1
+ beq _020A7E60
+ bl OS_RestoreInterrupts
+ add sp, sp, #0x4
+ mov r0, #0x1
+ ldmia sp!, {lr}
+ bx lr
+_020A7E60:
+ mov r1, #0x0
+ str r1, [r2, #0x0]
+ bl OS_RestoreInterrupts
+_020A7E6C: ; 0x020A7E6C
+ mov r0, #0x0
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+ .balign 4
+_020A7E7C: .word 0x021CA86C
+
+ arm_func_start FUN_020A7E80
+FUN_020A7E80: ; 0x020A7E80
+ stmdb sp!, {r4-r6,lr}
+ mov r6, r0
+ mov r5, r1
+ bl OS_DisableInterrupts
+ ldr r2, _020A7FA8 ; =0x021CA86C
+ mov r4, r0
+ ldr r1, [r2, #0x0]
+ cmp r1, #0x0
+ beq _020A7EB4
+ bl OS_RestoreInterrupts
+ mov r0, #0x1
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+_020A7EB4:
+ cmp r6, #0x0
+ bne _020A7ECC
+ bl OS_RestoreInterrupts
+ mov r0, #0x1
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+_020A7ECC:
+ ands r1, r6, #0x1f
+ beq _020A7EE4
+ bl OS_RestoreInterrupts
+ mov r0, #0x1
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+_020A7EE4:
+ cmp r5, #0x2300
+ bhs _020A7EFC
+ bl OS_RestoreInterrupts
+ mov r0, #0x6
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+_020A7EFC:
+ str r6, [r2, #0x0]
+ add r0, r6, #0x2000
+ mov r1, #0x1
+ str r1, [r0, #0x260]
+ ldr r1, [r2, #0x0]
+ mov r0, #0x0
+ add r1, r1, #0x2200
+ strh r0, [r1, #0x80]
+ ldr r1, [r2, #0x0]
+ add r1, r1, #0x2200
+ strh r0, [r1, #0x68]
+ ldr r1, [r2, #0x0]
+ add r1, r1, #0x2000
+ strb r0, [r1, #0x26a]
+ ldr r1, [r2, #0x0]
+ add r1, r1, #0x2000
+ strb r0, [r1, #0x26b]
+ ldr r1, [r2, #0x0]
+ add r1, r1, #0x2200
+ strh r0, [r1, #0x82]
+ ldr r1, [r2, #0x0]
+ add r1, r1, #0x2200
+ strh r0, [r1, #0xf8]
+ bl FUN_020A6E30
+ bl FUN_020A897C
+ bl OS_IsTickAvailable
+_020A7F64: ; 0x020A7F64
+ cmp r0, #0x0
+ bne _020A7F70
+ bl OS_InitTick
+_020A7F70:
+ bl OS_IsAlarmAvailable
+_020A7F74: ; 0x020A7F74
+ cmp r0, #0x0
+ bne _020A7F80
+ bl OS_InitAlarm
+_020A7F80:
+ ldr r1, _020A7FA8 ; =0x021CA86C
+ ldr r0, _020A7FAC ; =0x000022CC
+ ldr r1, [r1, #0x0]
+ add r0, r1, r0
+ bl OS_CreateAlarm
+ mov r0, r4
+ bl OS_RestoreInterrupts
+_020A7F9C: ; 0x020A7F9C
+ mov r0, #0x0
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+ .balign 4
+_020A7FA8: .word 0x021CA86C
+_020A7FAC: .word 0x000022CC
+
+ arm_func_start FUN_020A7FB0
+FUN_020A7FB0: ; 0x020A7FB0
+ stmdb sp!, {r4,lr}
+ mov r4, r0
+ bl FUN_020A7138
+ add r1, r0, #0x2000
+ cmp r4, #0x0
+ ldr r0, [r1, #0x270]
+ ldmeqia sp!, {r4,lr}
+ bxeq lr
+ cmp r0, #0x0
+ ldmeqia sp!, {r4,lr}
+ bxeq lr
+ ldr r1, [r1, #0x274]
+ cmp r1, #0xc
+ ldmlsia sp!, {r4,lr}
+ bxls lr
+ ldr r3, [r0, #0x4]
+ cmp r3, #0x0
+ beq _020A8040
+_020A7FF8:
+ cmp r3, r4
+ bne _020A8034
+ ldr r2, [r3, #0x8]
+ cmp r2, #0x0
+ ldrne r1, [r3, #0xc]
+ strne r1, [r2, #0xc]
+ ldreq r1, [r3, #0xc]
+ streq r1, [r0, #0x4]
+ ldr r2, [r3, #0xc]
+ cmp r2, #0x0
+ ldrne r1, [r3, #0x8]
+ strne r1, [r2, #0x8]
+ ldreq r1, [r3, #0x8]
+ streq r1, [r0, #0x8]
+ b _020A8040
+_020A8034:
+ ldr r3, [r3, #0xc]
+ cmp r3, #0x0
+ bne _020A7FF8
+_020A8040:
+ mov r1, #0x0
+ str r1, [r4, #0xc]
+ ldr r1, [r0, #0x8]
+ str r1, [r4, #0x8]
+ str r4, [r0, #0x8]
+ ldr r1, [r4, #0x8]
+ cmp r1, #0x0
+ strne r4, [r1, #0xc]
+ streq r4, [r0, #0x4]
+ cmp r3, #0x0
+ ldreq r1, [r0, #0x0]
+ streq r1, [r4, #0x4]
+ ldreq r1, [r0, #0x0]
+ addeq r1, r1, #0x1
+ streq r1, [r0, #0x0]
+ ldmia sp!, {r4,lr}
+ bx lr
+
+ arm_func_start FUN_020A8084
+FUN_020A8084: ; 0x020A8084
+ stmdb sp!, {r4,lr}
+ mov r4, r0
+ bl FUN_020A7138
+ add r1, r0, #0x2000
+ ldr r2, [r1, #0x270]
+ mov r0, #0x0
+ cmp r2, #0x0
+ ldmeqia sp!, {r4,lr}
+ bxeq lr
+ ldr r1, [r1, #0x274]
+ cmp r1, #0xc
+ ldmlsia sp!, {r4,lr}
+ bxls lr
+ ldr r0, [r2, #0x4]
+ cmp r0, #0x0
+ ldmeqia sp!, {r4,lr}
+ bxeq lr
+_020A80C8:
+ ldr r1, [r0, #0x4]
+ cmp r1, r4
+ ldmeqia sp!, {r4,lr}
+ bxeq lr
+ ldr r0, [r0, #0xc]
+ cmp r0, #0x0
+ bne _020A80C8
+ ldmia sp!, {r4,lr}
+ bx lr
+
+ arm_func_start FUN_020A80EC
+FUN_020A80EC: ; 0x020A80EC
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ mov r5, r0
+ bl FUN_020A7138
+ add r0, r0, #0x2000
+ cmp r5, #0x0
+ mov r4, #0x0
+ ldr r1, [r0, #0x270]
+ addeq sp, sp, #0x4
+ moveq r0, r4
+ ldmeqia sp!, {r4-r5,lr}
+ bxeq lr
+ cmp r1, #0x0
+ beq _020A8160
+ ldr r0, [r0, #0x274]
+ cmp r0, #0xc
+ bls _020A8160
+ ldr r4, [r1, #0x4]
+ cmp r4, #0x0
+ beq _020A8160
+_020A813C:
+ add r0, r4, #0x10
+ mov r1, r5
+ add r0, r0, #0x4
+ bl FUN_020A8B78
+_020A814C: ; 0x020A814C
+ cmp r0, #0x0
+ bne _020A8160
+ ldr r4, [r4, #0xc]
+ cmp r4, #0x0
+ bne _020A813C
+_020A8160:
+ mov r0, r4
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,lr}
+ bx lr
+
+ arm_func_start FUN_020A8170
+FUN_020A8170: ; 0x020A8170
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ bl FUN_020A7138
+ add r0, r0, #0x2000
+ ldr r1, [r0, #0x270]
+ cmp r1, #0x0
+ beq _020A81A4
+ ldr r0, [r0, #0x274]
+ cmp r0, #0xc
+ addhi sp, sp, #0x4
+ ldrhi r0, [r1, #0x4]
+ ldmhiia sp!, {lr}
+ bxhi lr
+_020A81A4:
+ mov r0, #0x0
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+
+ arm_func_start FUN_020A81B4
+FUN_020A81B4: ; 0x020A81B4
+ stmdb sp!, {r4,lr}
+ bl FUN_020A7138
+ add r2, r0, #0x2000
+ ldr r1, [r2, #0x270]
+ mov r0, #0x0
+ cmp r1, #0x0
+ ldmeqia sp!, {r4,lr}
+ bxeq lr
+ ldr r3, [r2, #0x274]
+ cmp r3, #0xc
+ ldmlsia sp!, {r4,lr}
+ bxls lr
+ ldr r2, _020A8294 ; =0x4EC4EC4F
+ sub r3, r3, #0xc
+ umull r2, r4, r3, r2
+ movs r4, r4, lsr #0x6
+ ldmeqia sp!, {r4,lr}
+ bxeq lr
+ ldr r2, [r1, #0x0]
+ cmp r4, r2
+ ldmlsia sp!, {r4,lr}
+ bxls lr
+ mov lr, r0
+ cmp r4, #0x0
+ bls _020A8240
+ add r12, r1, #0xc
+ mov r2, #0xd0
+_020A8220:
+ mul r0, lr, r2
+ ldrb r3, [r12, r0]
+ add r0, r12, r0
+ cmp r3, #0x0
+ beq _020A8240
+ add lr, lr, #0x1
+ cmp lr, r4
+ blo _020A8220
+_020A8240:
+ cmp lr, r4
+ ldmcsia sp!, {r4,lr}
+ bxcs lr
+ mov r2, #0x1
+ strb r2, [r0, #0x0]
+ ldr r3, [r1, #0x0]
+ mov r2, #0x0
+ str r3, [r0, #0x4]
+ str r2, [r0, #0xc]
+ ldr r2, [r1, #0x8]
+ str r2, [r0, #0x8]
+ str r0, [r1, #0x8]
+ ldr r2, [r0, #0x8]
+ cmp r2, #0x0
+ strne r0, [r2, #0xc]
+ streq r0, [r1, #0x4]
+ ldr r2, [r1, #0x0]
+ add r2, r2, #0x1
+ str r2, [r1, #0x0]
+ ldmia sp!, {r4,lr}
+ bx lr
+ .balign 4
+_020A8294: .word 0x4EC4EC4F
+
+ arm_func_start FUN_020A8298
+FUN_020A8298: ; 0x020A8298
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0x4
+ mov r5, r0
+ mov r4, r1
+ bl FUN_020A7138
+ movs r7, r0
+ addeq sp, sp, #0x4
+ ldmeqia sp!, {r4-r7,lr}
+ bxeq lr
+ add r0, r7, #0x2000
+ ldrb r0, [r0, #0x26a]
+ cmp r0, #0x0
+ addne sp, sp, #0x4
+ ldmneia sp!, {r4-r7,lr}
+ bxne lr
+ ldrh r0, [r5, #0x3c]
+ cmp r0, #0x0
+ addne sp, sp, #0x4
+ ldmneia sp!, {r4-r7,lr}
+ bxne lr
+ add r0, r5, #0x4
+ bl FUN_020A80EC
+ movs r6, r0
+ bne _020A8300
+ bl FUN_020A81B4
+ mov r6, r0
+_020A8300:
+ cmp r6, #0x0
+ bne _020A8320
+ add r0, r7, #0x2000
+ ldr r0, [r0, #0x278]
+ cmp r0, #0x1
+ bne _020A8320
+ bl FUN_020A8170
+ mov r6, r0
+_020A8320:
+ cmp r6, #0x0
+ addeq sp, sp, #0x4
+ ldmeqia sp!, {r4-r7,lr}
+ bxeq lr
+ mov r0, r5
+ add r1, r6, #0x10
+ mov r2, #0xc0
+ strh r4, [r6, #0x2]
+ bl MIi_CpuCopyFast
+ mov r0, r6
+ bl FUN_020A7FB0
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r7,lr}
+ bx lr
+
+ arm_func_start FUN_020A8358
+FUN_020A8358: ; 0x020A8358
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ mov r4, r0
+ bl OS_DisableInterrupts
+ mov r5, r0
+ bl FUN_020A7138
+_020A8370: ; 0x020A8370
+ cmp r0, #0x0
+ bne _020A8390
+ mov r0, r5
+ bl OS_RestoreInterrupts
+ add sp, sp, #0x4
+ mov r0, #0x0
+ ldmia sp!, {r4-r5,lr}
+ bx lr
+_020A8390:
+ mov r0, r4
+ bl FUN_020A8084
+ movs r4, r0
+ bne _020A83B8
+ mov r0, r5
+ bl OS_RestoreInterrupts
+ add sp, sp, #0x4
+ mov r0, #0x0
+ ldmia sp!, {r4-r5,lr}
+ bx lr
+_020A83B8:
+ mov r0, r5
+ bl OS_RestoreInterrupts
+ add r0, r4, #0x10
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,lr}
+ bx lr
+
+ arm_func_start FUN_020A83D0
+FUN_020A83D0: ; 0x020A83D0
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ mov r5, r0
+ bl OS_DisableInterrupts
+ mov r4, r0
+ bl FUN_020A7138
+_020A83E8: ; 0x020A83E8
+ cmp r0, #0x0
+ bne _020A8408
+ mov r0, r4
+ bl OS_RestoreInterrupts
+ add sp, sp, #0x4
+ mov r0, #0x0
+ ldmia sp!, {r4-r5,lr}
+ bx lr
+_020A8408:
+ cmp r5, #0x0
+ beq _020A8434
+ add r1, r0, #0x2000
+ ldrb r1, [r1, #0x26a]
+ add r0, r0, #0x2000
+ cmp r1, #0x0
+ movne r5, #0x1
+ mov r1, #0x1
+ moveq r5, #0x0
+ strb r1, [r0, #0x26a]
+ b _020A8454
+_020A8434:
+ add r1, r0, #0x2000
+ ldrb r1, [r1, #0x26a]
+ add r0, r0, #0x2000
+ cmp r1, #0x0
+ movne r5, #0x1
+ mov r1, #0x0
+ moveq r5, #0x0
+ strb r1, [r0, #0x26a]
+_020A8454:
+ mov r0, r4
+ bl OS_RestoreInterrupts
+ mov r0, r5
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,lr}
+ bx lr
+
+ arm_func_start FUN_020A846C
+FUN_020A846C: ; 0x020A846C
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ bl OS_DisableInterrupts
+ mov r5, r0
+ bl FUN_020A7138
+_020A8480: ; 0x020A8480
+ cmp r0, #0x0
+ mov r4, #0x0
+ bne _020A84A4
+ mov r0, r5
+ bl OS_RestoreInterrupts
+ add sp, sp, #0x4
+ mov r0, r4
+ ldmia sp!, {r4-r5,lr}
+ bx lr
+_020A84A4:
+ add r0, r0, #0x2000
+ ldr r1, [r0, #0x270]
+ cmp r1, #0x0
+ beq _020A84C0
+ ldr r0, [r0, #0x274]
+ cmp r0, #0xc
+ ldrhi r4, [r1, #0x0]
+_020A84C0:
+ mov r0, r5
+ bl OS_RestoreInterrupts
+ mov r0, r4
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,lr}
+ bx lr
+
+ arm_func_start FUN_020A84D8
+FUN_020A84D8: ; 0x020A84D8
+ stmdb sp!, {r4,lr}
+ bl OS_DisableInterrupts
+ mov r4, r0
+ bl FUN_020A7138
+_020A84E8: ; 0x020A84E8
+ cmp r0, #0x0
+ bne _020A8500
+ mov r0, r4
+ bl OS_RestoreInterrupts
+ ldmia sp!, {r4,lr}
+ bx lr
+_020A8500:
+ add r1, r0, #0x2000
+ ldr r0, [r1, #0x270]
+ cmp r0, #0x0
+ beq _020A8524
+ ldr r2, [r1, #0x274]
+ cmp r2, #0x0
+ ble _020A8524
+ mov r1, #0x0
+ bl MI_CpuFill8
+_020A8524:
+ mov r0, r4
+ bl OS_RestoreInterrupts
+ ldmia sp!, {r4,lr}
+ bx lr
+
+ arm_func_start FUN_020A8534
+FUN_020A8534: ; 0x020A8534
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldr r2, [r0, #0x8]
+ ldr r1, _020A858C ; =0x01FF8000
+ cmp r2, r1
+ addne sp, sp, #0x4
+ ldmneia sp!, {lr}
+ bxne lr
+ ldr r1, [r0, #0xc]
+ sub r1, r1, #0x1
+ str r1, [r0, #0xc]
+ ldr r1, [r0, #0xc]
+ cmp r1, #0x0
+ addne sp, sp, #0x4
+ ldmneia sp!, {lr}
+ bxne lr
+ mov r1, #0x0
+ str r1, [r0, #0x8]
+ bl OS_WakeupThread
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+ .balign 4
+_020A858C: .word 0x01FF8000
+
+ arm_func_start FUN_020A8590
+FUN_020A8590:
+ ldr r2, [r0, #0x8]
+ cmp r2, #0x0
+ bne _020A85B8
+ ldr r1, _020A85D8 ; =0x01FF8000
+ str r1, [r0, #0x8]
+ ldr r1, [r0, #0xc]
+ add r1, r1, #0x1
+ str r1, [r0, #0xc]
+ mov r0, #0x1
+ bx lr
+_020A85B8:
+ ldr r1, _020A85D8 ; =0x01FF8000
+ cmp r2, r1
+ ldreq r1, [r0, #0xc]
+ addeq r1, r1, #0x1
+ streq r1, [r0, #0xc]
+ moveq r0, #0x1
+ movne r0, #0x0
+ bx lr
+ .balign 4
+_020A85D8: .word 0x01FF8000
+
+ arm_func_start FUN_020A85DC
+FUN_020A85DC: ; 0x020A85DC
+ ldr ip, _020A85E8 ; =FUN_020A8534
+ ldr r0, _020A85EC ; =0x021CA87C
+ bx r12
+ .balign 4
+_020A85E8: .word FUN_020A8534
+_020A85EC: .word 0x021CA87C
+
+ arm_func_start FUN_020A85F0
+FUN_020A85F0: ; 0x020A85F0
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldrh r1, [r0, #0x0]
+ cmp r1, #0x12
+ addne sp, sp, #0x4
+ ldmneia sp!, {lr}
+ bxne lr
+ ldrh r2, [r0, #0x2]
+ ldr r1, _020A863C ; =0x021CA870
+ str r2, [r1, #0x24]
+ ldrh r0, [r0, #0x2]
+ cmp r0, #0x0
+ bne _020A8628
+ bl FUN_020A6BBC
+_020A8628:
+ ldr r0, _020A8640 ; =0x021CA874
+ bl OS_WakeupThread
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+ .balign 4
+_020A863C: .word 0x021CA870
+_020A8640: .word 0x021CA874
+
+ arm_func_start FUN_020A8644
+FUN_020A8644:
+ stmdb sp!, {r4-r8,lr}
+ mov r8, r0
+ mov r7, r1
+ mov r6, r2
+ bl OS_DisableInterrupts
+ mov r5, r0
+ bl FUN_020A7138
+_020A8660: ; 0x020A8660
+ cmp r0, #0x0
+ bne _020A867C
+ mov r0, r5
+ bl OS_RestoreInterrupts
+_020A8670: ; 0x020A8670
+ mvn r0, #0x0
+ ldmia sp!, {r4-r8,lr}
+ bx lr
+_020A867C:
+ ldr r0, _020A87AC ; =0x021CA87C
+ bl OS_LockMutex
+ bl FUN_020A7138
+ movs r4, r0
+ bne _020A86AC
+ ldr r0, _020A87AC ; =0x021CA87C
+ bl OS_UnlockMutex
+ mov r0, r5
+ bl OS_RestoreInterrupts
+_020A86A0: ; 0x020A86A0
+ mvn r0, #0x0
+ ldmia sp!, {r4-r8,lr}
+ bx lr
+_020A86AC:
+ add r0, r4, #0x2000
+ ldr r1, [r0, #0x260]
+ cmp r1, #0x9
+ bne _020A86C8
+ ldrb r0, [r0, #0x26b]
+ cmp r0, #0x1
+ bne _020A86E4
+_020A86C8:
+ ldr r0, _020A87AC ; =0x021CA87C
+ bl OS_UnlockMutex
+ mov r0, r5
+ bl OS_RestoreInterrupts
+ mvn r0, #0x3
+ ldmia sp!, {r4-r8,lr}
+ bx lr
+_020A86E4:
+ mov r0, r7
+ mov r2, r6
+ add r1, r4, #0xf00
+ bl MI_CpuCopy8
+ mov r3, r6, lsl #0x10
+ ldr r0, _020A87B0 ; =FUN_020A85F0
+ mov r1, r8
+ add r2, r4, #0xf00
+ mov r3, r3, lsr #0x10
+ bl WM_SetDCFData
+ cmp r0, #0x8
+ addls pc, pc, r0, lsl #0x2
+ b _020A873C
+_020A8718:
+ b _020A873C
+_020A871C:
+ b _020A873C
+_020A8720:
+ b _020A8758
+_020A8724:
+ b _020A873C
+_020A8728:
+ b _020A873C
+_020A872C:
+ b _020A873C
+_020A8730:
+ b _020A873C
+_020A8734:
+ b _020A873C
+_020A8738:
+ b _020A873C
+_020A873C:
+ ldr r0, _020A87AC ; =0x021CA87C
+ bl OS_UnlockMutex
+ mov r0, r5
+ bl OS_RestoreInterrupts
+ mvn r0, #0x4
+ ldmia sp!, {r4-r8,lr}
+ bx lr
+_020A8758:
+ ldr r0, _020A87B4 ; =0x021CA874
+ bl OS_SleepThread
+ ldr r0, _020A87B8 ; =0x021CA870
+ ldr r0, [r0, #0x24]
+ cmp r0, #0x0
+ beq _020A8790
+ cmp r0, #0x1
+ ldr r0, _020A87AC ; =0x021CA87C
+ bl OS_UnlockMutex
+ mov r0, r5
+ bl OS_RestoreInterrupts
+ mvn r0, #0x4
+ ldmia sp!, {r4-r8,lr}
+ bx lr
+_020A8790:
+ ldr r0, _020A87AC ; =0x021CA87C
+ bl OS_UnlockMutex
+ mov r0, r5
+ bl OS_RestoreInterrupts
+ mov r0, r6
+ ldmia sp!, {r4-r8,lr}
+ bx lr
+ .balign 4
+_020A87AC: .word 0x021CA87C
+_020A87B0: .word FUN_020A85F0
+_020A87B4: .word 0x021CA874
+_020A87B8: .word 0x021CA870
+
+ arm_func_start FUN_020A87BC
+FUN_020A87BC: ; 0x020A87BC
+ stmdb sp!, {r4,lr}
+ mov r4, r0
+ bl OS_DisableInterrupts
+ ldr r1, _020A87DC ; =0x021CA870
+ str r4, [r1, #0x28]
+ bl OS_RestoreInterrupts
+ ldmia sp!, {r4,lr}
+ bx lr
+ .balign 4
+_020A87DC: .word 0x021CA870
+
+ arm_func_start FUN_020A87E0
+FUN_020A87E0: ; 0x020A87E0
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0x4
+ mov r7, #0x0
+ mov r4, r0
+ mov r6, r7
+ bl FUN_020A7138
+ mov r5, r0
+ bl OS_DisableInterrupts
+_020A8800: ; 0x020A8800
+ cmp r5, #0x0
+ beq _020A8830
+ add r1, r5, #0x2000
+ ldr r2, [r1, #0x260]
+ cmp r2, #0x9
+ bne _020A8830
+ ldrb r1, [r1, #0x26b]
+ cmp r1, #0x0
+ addeq r2, r5, #0x2100
+ ldreq r1, _020A884C ; =0x0000214C
+ ldreqh r6, [r2, #0x4a]
+ addeq r7, r5, r1
+_020A8830:
+ bl OS_RestoreInterrupts
+_020A8834: ; 0x020A8834
+ cmp r4, #0x0
+ strneh r6, [r4, #0x0]
+ mov r0, r7
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r7,lr}
+ bx lr
+ .balign 4
+_020A884C: .word 0x0000214C
+
+ arm_func_start FUN_020A8850
+FUN_020A8850:
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ mov r5, #0x0
+ bl FUN_020A7138
+ mov r4, r0
+ bl OS_DisableInterrupts
+_020A8868: ; 0x020A8868
+ cmp r4, #0x0
+ beq _020A8890
+ add r1, r4, #0x2000
+ ldr r2, [r1, #0x260]
+ cmp r2, #0x9
+ bne _020A8890
+ ldrb r1, [r1, #0x26b]
+ cmp r1, #0x0
+ ldreq r1, _020A88A4 ; =0x00002144
+ addeq r5, r4, r1
+_020A8890:
+ bl OS_RestoreInterrupts
+ mov r0, r5
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,lr}
+ bx lr
+ .balign 4
+_020A88A4: .word 0x00002144
+
+ arm_func_start FUN_020A88A8
+FUN_020A88A8: ; 0x020A88A8
+ stmdb sp!, {r4,lr}
+ bl FUN_020A7138
+ movs r4, r0
+ ldmeqia sp!, {r4,lr}
+ bxeq lr
+ add r0, r4, #0x2000
+ ldr r1, [r0, #0x260]
+ cmp r1, #0x9
+ ldmneia sp!, {r4,lr}
+ bxne lr
+ ldrb r0, [r0, #0x26b]
+ cmp r0, #0x1
+ ldmeqia sp!, {r4,lr}
+ bxeq lr
+ ldr r0, _020A8928 ; =0x021CA87C
+ bl FUN_020A8590
+_020A88E8: ; 0x020A88E8
+ cmp r0, #0x0
+ ldmeqia sp!, {r4,lr}
+ bxeq lr
+ ldr r1, _020A892C ; =0x00002144
+ ldr r0, _020A8930 ; =FUN_020A85DC
+ add r1, r4, r1
+ add r2, r4, #0xf00
+ mov r3, #0x0
+ bl WM_SetDCFData
+ cmp r0, #0x2
+ ldmeqia sp!, {r4,lr}
+ bxeq lr
+ ldr r0, _020A8928 ; =0x021CA87C
+ bl FUN_020A8534
+ ldmia sp!, {r4,lr}
+ bx lr
+ .balign 4
+_020A8928: .word 0x021CA87C
+_020A892C: .word 0x00002144
+_020A8930: .word FUN_020A85DC
+
+ arm_func_start FUN_020A8934
+FUN_020A8934: ; 0x020A8934
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldr r1, _020A8978 ; =0x021CA870
+ mov r2, r0
+ ldr r12, [r1, #0x28]
+ cmp r12, #0x0
+ addeq sp, sp, #0x4
+ ldmeqia sp!, {lr}
+ bxeq lr
+ ldrh r3, [r2, #0x6]
+ add r0, r2, #0x1e
+ add r1, r2, #0x18
+ add r2, r2, #0x2c
+ blx r12
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+ .balign 4
+_020A8978: .word 0x021CA870
+
+ arm_func_start FUN_020A897C
+FUN_020A897C: ; 0x020A897C
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldr r1, _020A89C8 ; =0x021CA870
+ ldrb r0, [r1, #0x0]
+ cmp r0, #0x0
+ addne sp, sp, #0x4
+ ldmneia sp!, {lr}
+ bxne lr
+ ldr r0, _020A89CC ; =0x021CA87C
+ mov r2, #0x0
+ mov r3, #0x1
+ strb r3, [r1, #0x0]
+ str r2, [r1, #0x24]
+ str r2, [r1, #0x8]
+ str r2, [r1, #0x4]
+ bl OS_InitMutex
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+ .balign 4
+_020A89C8: .word 0x021CA870
+_020A89CC: .word 0x021CA87C
+
+ arm_func_start FUN_020A89D0
+FUN_020A89D0: ; 0x020A89D0
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldr r2, _020A8A48 ; =0x021CA89C
+ ands r1, r0, #0x2
+ ldrb r12, [r2, #0x0]
+ movne r0, r0, asr #0x2
+ andne lr, r0, #0xff
+ moveq r0, r0, asr #0x2
+ addeq r0, r0, #0x19
+ andeq lr, r0, #0xff
+ mov r1, r12, lsr #0x1f
+ rsb r0, r1, r12, lsl #0x1c
+ cmp r12, #0x10
+ ldr r3, _020A8A4C ; =0x021CA8A0
+ add r0, r1, r0, ror #0x1c
+ strb lr, [r3, r0]
+ addcc r0, r12, #0x1
+ strccb r0, [r2, #0x0]
+ addcc sp, sp, #0x4
+ ldmccia sp!, {lr}
+ bxcc lr
+ add r0, r12, #0x1
+ mov r1, r0, lsr #0x1f
+ rsb r0, r1, r0, lsl #0x1c
+ add r0, r1, r0, ror #0x1c
+ add r0, r0, #0x10
+ strb r0, [r2, #0x0]
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+ .balign 4
+_020A8A48: .word 0x021CA89C
+_020A8A4C: .word 0x021CA8A0
+
+ arm_func_start FUN_020A8A50
+FUN_020A8A50: ; 0x020A8A50
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ bl FUN_020A8A90
+ mov r1, #0x0
+ cmp r0, #0x1c
+ movcs r1, #0x3
+ bhs _020A8A80
+ cmp r0, #0x16
+ movcs r1, #0x2
+ bhs _020A8A80
+ cmp r0, #0x10
+ movcs r1, #0x1
+_020A8A80:
+ mov r0, r1
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+
+ arm_func_start FUN_020A8A90
+FUN_020A8A90: ; 0x020A8A90
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldr r1, _020A8B20 ; =0x021CA89C
+ mov r0, #0x0
+ ldrb r1, [r1, #0x0]
+ cmp r1, #0x10
+ bls _020A8ADC
+ ldr r2, _020A8B24 ; =0x021CA8A0
+ mov r3, r0
+_020A8AB4:
+ ldrb r1, [r2, #0x0]
+ add r3, r3, #0x1
+ cmp r3, #0x10
+ add r0, r0, r1
+ add r2, r2, #0x1
+ blt _020A8AB4
+ mov r1, r0, asr #0x3
+ add r0, r0, r1, lsr #0x1c
+ mov r0, r0, asr #0x4
+ b _020A8B10
+_020A8ADC:
+ cmp r1, #0x0
+ beq _020A8B10
+ mov r3, r0
+ cmp r1, #0x0
+ ble _020A8B0C
+ ldr ip, _020A8B24 ; =0x021CA8A0
+_020A8AF4:
+ ldrb r2, [r12, #0x0]
+ add r3, r3, #0x1
+ cmp r3, r1
+ add r0, r0, r2
+ add r12, r12, #0x1
+ blt _020A8AF4
+_020A8B0C:
+ bl _s32_div_f
+_020A8B10:
+ and r0, r0, #0xff
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+ .balign 4
+_020A8B20: .word 0x021CA89C
+_020A8B24: .word 0x021CA8A0
+
+ arm_func_start FUN_020A8B28
+FUN_020A8B28: ; 0x020A8B28
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ bl OS_DisableInterrupts
+ mov r5, r0
+ bl FUN_020A7138
+_020A8B3C: ; 0x020A8B3C
+ cmp r0, #0x0
+ mov r4, #0x0
+ beq _020A8B60
+ add r0, r0, #0x2000
+ ldr r0, [r0, #0x260]
+ cmp r0, #0x9
+ bne _020A8B60
+ bl FUN_020A8A50
+ mov r4, r0
+_020A8B60:
+ mov r0, r5
+ bl OS_RestoreInterrupts
+ mov r0, r4
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,lr}
+ bx lr
+
+ arm_func_start FUN_020A8B78
+FUN_020A8B78:
+ mov r12, #0x0
+_020A8B7C:
+ ldrb r3, [r0, r12]
+ ldrb r2, [r1, r12]
+ cmp r3, r2
+ movne r0, #0x0
+ bxne lr
+ add r12, r12, #0x1
+ cmp r12, #0x6
+ blt _020A8B7C
+ mov r0, #0x1
+ bx lr
+
+ arm_func_start FUN_020A8BA4
+FUN_020A8BA4: ; 0x020A8BA4
+ ldr ip, _020A8BAC ; =DGT_Hash1GetDigest_R
+ bx r12
+ .balign 4
+_020A8BAC: .word DGT_Hash1GetDigest_R
+
+ arm_func_start FUN_020A8BB0
+FUN_020A8BB0: ; 0x020A8BB0
+ ldr ip, _020A8BB8 ; =DGT_Hash1SetSource
+ bx r12
+ .balign 4
+_020A8BB8: .word DGT_Hash1SetSource
+
+ arm_func_start FUN_020A8BBC
+FUN_020A8BBC: ; 0x020A8BBC
+ ldr ip, _020A8BC4 ; =DGT_Hash1Reset
+ bx r12
+ .balign 4
+_020A8BC4: .word DGT_Hash1Reset
+
+ arm_func_start FUN_020A8BC8
+FUN_020A8BC8: ; 0x020A8BC8
+ stmdb sp!, {r4,lr}
+ ldrsh r4, [r3, #0x0]
+ ldr r12, [sp, #0x8]
+ mov lr, #0x0
+ strh r4, [r0, #0x0]
+ ldrb r4, [r3, #0x2]
+ cmp r12, #0x2
+ strb r4, [r0, #0x2]
+ strb lr, [r0, #0x3]
+ beq _020A8C04
+ cmp r12, #0x3
+ beq _020A8C10
+ cmp r12, #0x4
+ beq _020A8C1C
+ ldmia sp!, {r4,pc}
+_020A8C04:
+ add r0, r0, #0x4
+ bl FUN_020A8CA8
+ ldmia sp!, {r4,pc}
+_020A8C10:
+ add r0, r0, #0x4
+ bl FUN_020A91D8
+ ldmia sp!, {r4,pc}
+_020A8C1C:
+ add r0, r0, #0x4
+ bl FUN_020A9D18
+ ldmia sp!, {r4,pc}
+
+ arm_func_start FUN_020A8C28
+FUN_020A8C28: ; 0x020A8C28
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldrsh r12, [r0, #0x0]
+ cmp r3, #0x2
+ strh r12, [sp, #0x0]
+ ldrb r12, [r0, #0x2]
+ strb r12, [sp, #0x2]
+ beq _020A8C60
+ cmp r3, #0x3
+ beq _020A8C78
+ cmp r3, #0x4
+ beq _020A8C90
+ add sp, sp, #0x4
+ ldmia sp!, {pc}
+_020A8C60:
+ add r3, sp, #0x0
+ add r0, r0, #0x4
+ sub r2, r2, #0x4
+ bl FUN_020A8F58
+ add sp, sp, #0x4
+ ldmia sp!, {pc}
+_020A8C78:
+ add r3, sp, #0x0
+ add r0, r0, #0x4
+ sub r2, r2, #0x4
+ bl FUN_020A97DC
+ add sp, sp, #0x4
+ ldmia sp!, {pc}
+_020A8C90:
+ add r3, sp, #0x0
+ add r0, r0, #0x4
+ sub r2, r2, #0x4
+ bl FUN_020A9F10
+ add sp, sp, #0x4
+ ldmia sp!, {pc}
+
+ arm_func_start FUN_020A8CA8
+FUN_020A8CA8: ; 0x020A8CA8
+ stmdb sp!, {r4-r11,lr}
+ sub sp, sp, #0x3c
+ movs r2, r2, lsr #0x2
+ str r2, [sp, #0x4]
+ mov r2, #0x0
+ str r2, [sp, #0x0]
+ addeq sp, sp, #0x3c
+ ldmeqia sp!, {r4-r11,pc}
+_020A8CC8: ; 0x020A8CC8
+ mov r5, #0x8000
+ ldr fp, _020A8F4C ; =0x020FF5D4
+ ldr r4, _020A8F50 ; =0x00007FFF
+ str r2, [sp, #0x8]
+ str r2, [sp, #0xc]
+ str r2, [sp, #0x10]
+ str r2, [sp, #0x14]
+ str r2, [sp, #0x18]
+ rsb r5, r5, #0x0
+ mov r6, #0x2
+ mov lr, #0x58
+ str r2, [sp, #0x1c]
+ str r2, [sp, #0x20]
+ str r2, [sp, #0x24]
+ str r2, [sp, #0x28]
+ str r2, [sp, #0x2c]
+ str r2, [sp, #0x30]
+ str r2, [sp, #0x34]
+_020A8D10:
+ ldrb r9, [r3, #0x2]
+ ldrsh r2, [r3, #0x0]
+ ldrsh r7, [r1, #0x0]
+ mov r10, r9, lsl #0x1
+ ldrsh r10, [r11, r10]
+ subs r8, r7, r2
+ movmi r7, r6
+ ldrpl r7, [sp, #0x8]
+ rsbmi r8, r8, #0x0
+ cmp r8, r10
+ orrge r7, r7, #0x1
+ ands r8, r7, #0x1
+ ldreq r10, [sp, #0xc]
+ ands r8, r7, #0x2
+ rsbne r10, r10, #0x0
+ mov r8, #0x8000
+ add r2, r2, r10
+ rsb r8, r8, #0x0
+ cmp r2, r8
+ ldr r8, _020A8F54 ; =0x020FF5B8
+ movlt r2, r5
+ cmp r2, r4
+ ldrsb r8, [r8, r7]
+ movgt r2, r4
+ adds r9, r9, r8
+ ldrmi r9, [sp, #0x10]
+ bmi _020A8D84
+ cmp r9, #0x58
+ movgt r9, lr
+_020A8D84:
+ strh r2, [r3, #0x0]
+ strb r9, [r3, #0x2]
+ ldrb r10, [r3, #0x2]
+ and r2, r7, #0xff
+ ldrsh r7, [r3, #0x0]
+ ldrsh r8, [r1, #0x2]
+ mov r12, r10, lsl #0x1
+ ldrsh r12, [r11, r12]
+ subs r9, r8, r7
+ movmi r8, r6
+ ldrpl r8, [sp, #0x14]
+ rsbmi r9, r9, #0x0
+ cmp r9, r12
+ orrge r8, r8, #0x1
+ ands r9, r8, #0x1
+ ldreq r12, [sp, #0x18]
+ ands r9, r8, #0x2
+ rsbne r12, r12, #0x0
+ mov r9, #0x8000
+ add r7, r7, r12
+ rsb r9, r9, #0x0
+ cmp r7, r9
+ ldr sb, _020A8F54 ; =0x020FF5B8
+ movlt r7, r5
+ cmp r7, r4
+ ldrsb r9, [r9, r8]
+ movgt r7, r4
+ adds r10, r10, r9
+ ldrmi r10, [sp, #0x1c]
+ bmi _020A8E04
+ cmp r10, #0x58
+ movgt r10, lr
+_020A8E04:
+ strh r7, [r3, #0x0]
+ strb r10, [r3, #0x2]
+ and r7, r8, #0xff
+ orr r2, r2, r7, lsl #0x2
+ ldrb r10, [r3, #0x2]
+ ldrsh r7, [r3, #0x0]
+ ldrsh r8, [r1, #0x4]
+ mov r12, r10, lsl #0x1
+ ldrsh r12, [r11, r12]
+ subs r9, r8, r7
+ movmi r8, r6
+ ldrpl r8, [sp, #0x20]
+ rsbmi r9, r9, #0x0
+ cmp r9, r12
+ orrge r8, r8, #0x1
+ ands r9, r8, #0x1
+ ldreq r12, [sp, #0x24]
+ ands r9, r8, #0x2
+ rsbne r12, r12, #0x0
+ mov r9, #0x8000
+ add r7, r7, r12
+ rsb r9, r9, #0x0
+ cmp r7, r9
+ ldr sb, _020A8F54 ; =0x020FF5B8
+ movlt r7, r5
+ cmp r7, r4
+ ldrsb r9, [r9, r8]
+ movgt r7, r4
+ and r2, r2, #0xff
+ adds r10, r10, r9
+ ldrmi r10, [sp, #0x28]
+ bmi _020A8E8C
+ cmp r10, #0x58
+ movgt r10, lr
+_020A8E8C:
+ strh r7, [r3, #0x0]
+ strb r10, [r3, #0x2]
+ and r7, r8, #0xff
+ orr r2, r2, r7, lsl #0x4
+ ldrb r10, [r3, #0x2]
+ ldrsh r8, [r1, #0x6]
+ ldrsh r7, [r3, #0x0]
+ mov r12, r10, lsl #0x1
+ ldrsh r12, [r11, r12]
+ subs r9, r8, r7
+ movmi r8, r6
+ ldrpl r8, [sp, #0x2c]
+ rsbmi r9, r9, #0x0
+ cmp r9, r12
+ orrge r8, r8, #0x1
+ ands r9, r8, #0x1
+ ldreq r12, [sp, #0x30]
+ ands r9, r8, #0x2
+ rsbne r12, r12, #0x0
+ mov r9, #0x8000
+ add r7, r7, r12
+ rsb r9, r9, #0x0
+ cmp r7, r9
+ ldr sb, _020A8F54 ; =0x020FF5B8
+ movlt r7, r5
+ cmp r7, r4
+ ldrsb r9, [r9, r8]
+ movgt r7, r4
+ and r2, r2, #0xff
+ adds r10, r10, r9
+ add r1, r1, #0x8
+ ldrmi r10, [sp, #0x34]
+ bmi _020A8F18
+ cmp r10, #0x58
+ movgt r10, lr
+_020A8F18:
+ strh r7, [r3, #0x0]
+ and r7, r8, #0xff
+ strb r10, [r3, #0x2]
+ orr r2, r2, r7, lsl #0x6
+ strb r2, [r0], #0x1
+ ldr r2, [sp, #0x0]
+ add r7, r2, #0x1
+ ldr r2, [sp, #0x4]
+ str r7, [sp, #0x0]
+ cmp r7, r2
+ blo _020A8D10
+ add sp, sp, #0x3c
+ ldmia sp!, {r4-r11,pc}
+ .balign 4
+_020A8F4C: .word 0x020FF5D4
+_020A8F50: .word 0x00007FFF
+_020A8F54: .word 0x020FF5B8
+
+ arm_func_start FUN_020A8F58
+FUN_020A8F58: ; 0x020A8F58
+ stmdb sp!, {r4-r11,lr}
+ sub sp, sp, #0x34
+ cmp r2, #0x0
+ addls sp, sp, #0x34
+ mov r12, #0x0
+ ldmlsia sp!, {r4-r11,pc}
+_020A8F70: ; 0x020A8F70
+ mov r4, #0x8000
+ rsb r6, r4, #0x0
+ ldr r5, _020A91CC ; =0x00007FFF
+ ldr fp, _020A91D0 ; =0x020FF5D4
+ str r12, [sp, #0x0]
+ str r12, [sp, #0x8]
+ str r12, [sp, #0xc]
+ str r12, [sp, #0x14]
+ str r12, [sp, #0x18]
+ mov r4, #0x58
+ str r12, [sp, #0x20]
+ str r12, [sp, #0x24]
+ str r12, [sp, #0x2c]
+_020A8FA4:
+ ldrb r7, [r0, #0x0]
+ ldrb r8, [r3, #0x2]
+ ldrsh r9, [r3, #0x0]
+ and r10, r7, #0x3
+ ands r7, r10, #0x1
+ mov r7, r8, lsl #0x1
+ ldrsh r7, [r11, r7]
+ ldreq r7, [sp, #0x0]
+ ands lr, r10, #0x2
+ str lr, [sp, #0x4]
+ beq _020A8FE8
+ sub r9, r9, r7
+ mov r7, #0x8000
+ rsb r7, r7, #0x0
+ cmp r9, r7
+ movlt r9, r6
+ b _020A8FF4
+_020A8FE8:
+ add r9, r9, r7
+ cmp r9, r5
+ movgt r9, r5
+_020A8FF4:
+ ldr r7, _020A91D4 ; =0x020FF5B8
+ ldrsb r7, [r7, r10]
+ adds r8, r8, r7
+ ldrmi r8, [sp, #0x8]
+ bmi _020A9010
+ cmp r8, #0x58
+ movgt r8, r4
+_020A9010:
+ mov r7, r9, lsl #0x10
+ mov r7, r7, asr #0x10
+ strh r7, [r3, #0x0]
+ strb r8, [r3, #0x2]
+ strh r7, [r1, #0x0]
+ ldrb r7, [r0, #0x0]
+ ldrb r8, [r3, #0x2]
+ ldrsh r9, [r3, #0x0]
+ mov r7, r7, asr #0x2
+ and r10, r7, #0x3
+ ands r7, r10, #0x1
+ mov r7, r8, lsl #0x1
+ ldrsh r7, [r11, r7]
+ ldreq r7, [sp, #0xc]
+ ands lr, r10, #0x2
+ str lr, [sp, #0x10]
+ beq _020A906C
+ sub r9, r9, r7
+ mov r7, #0x8000
+ rsb r7, r7, #0x0
+ cmp r9, r7
+ movlt r9, r6
+ b _020A9078
+_020A906C:
+ add r9, r9, r7
+ cmp r9, r5
+ movgt r9, r5
+_020A9078:
+ ldr r7, _020A91D4 ; =0x020FF5B8
+ ldrsb r7, [r7, r10]
+ adds r8, r8, r7
+ ldrmi r8, [sp, #0x14]
+ bmi _020A9094
+ cmp r8, #0x58
+ movgt r8, r4
+_020A9094:
+ mov r7, r9, lsl #0x10
+ mov r7, r7, asr #0x10
+ strh r7, [r3, #0x0]
+ strb r8, [r3, #0x2]
+ strh r7, [r1, #0x2]
+ ldrb r7, [r0, #0x0]
+ ldrb r8, [r3, #0x2]
+ ldrsh r9, [r3, #0x0]
+ mov r7, r7, asr #0x4
+ and r10, r7, #0x3
+ ands r7, r10, #0x1
+ mov r7, r8, lsl #0x1
+ ldrsh r7, [r11, r7]
+ ldreq r7, [sp, #0x18]
+ ands lr, r10, #0x2
+ str lr, [sp, #0x1c]
+ beq _020A90F0
+ sub r9, r9, r7
+ mov r7, #0x8000
+ rsb r7, r7, #0x0
+ cmp r9, r7
+ movlt r9, r6
+ b _020A90FC
+_020A90F0:
+ add r9, r9, r7
+ cmp r9, r5
+ movgt r9, r5
+_020A90FC:
+ ldr r7, _020A91D4 ; =0x020FF5B8
+ ldrsb r7, [r7, r10]
+ adds r8, r8, r7
+ ldrmi r8, [sp, #0x20]
+ bmi _020A9118
+ cmp r8, #0x58
+ movgt r8, r4
+_020A9118:
+ mov r7, r9, lsl #0x10
+ mov r7, r7, asr #0x10
+ strh r7, [r3, #0x0]
+ strb r8, [r3, #0x2]
+ strh r7, [r1, #0x4]
+ ldrb r7, [r0, #0x0]
+ ldrb r8, [r3, #0x2]
+ ldrsh r9, [r3, #0x0]
+ mov r7, r7, asr #0x6
+ and r10, r7, #0x3
+ ands r7, r10, #0x1
+ mov r7, r8, lsl #0x1
+ ldrsh r7, [r11, r7]
+ ldreq r7, [sp, #0x24]
+ ands lr, r10, #0x2
+ str lr, [sp, #0x28]
+ beq _020A9174
+ sub r9, r9, r7
+ mov r7, #0x8000
+ rsb r7, r7, #0x0
+ cmp r9, r7
+ movlt r9, r6
+ b _020A9180
+_020A9174:
+ add r9, r9, r7
+ cmp r9, r5
+ movgt r9, r5
+_020A9180:
+ ldr r7, _020A91D4 ; =0x020FF5B8
+ ldrsb r7, [r7, r10]
+ adds r8, r8, r7
+ ldrmi r8, [sp, #0x2c]
+ bmi _020A919C
+ cmp r8, #0x58
+ movgt r8, r4
+_020A919C:
+ mov r7, r9, lsl #0x10
+ mov r9, r7, asr #0x10
+ strh r9, [r3, #0x0]
+ strb r8, [r3, #0x2]
+ add r12, r12, #0x1
+ strh r9, [r1, #0x6]
+ add r1, r1, #0x8
+ add r0, r0, #0x1
+ cmp r12, r2
+ blo _020A8FA4
+ add sp, sp, #0x34
+ ldmia sp!, {r4-r11,pc}
+ .balign 4
+_020A91CC: .word 0x00007FFF
+_020A91D0: .word 0x020FF5D4
+_020A91D4: .word 0x020FF5B8
+
+ arm_func_start FUN_020A91D8
+FUN_020A91D8: ; 0x020A91D8
+ stmdb sp!, {r4-r11,lr}
+ sub sp, sp, #0x54
+ movs r2, r2, lsr #0x3
+ str r2, [sp, #0x4]
+ mov r2, #0x0
+ str r2, [sp, #0x0]
+ addeq sp, sp, #0x54
+ ldmeqia sp!, {r4-r11,pc}
+_020A91F8: ; 0x020A91F8
+ ldr r5, [sp, #0x0]
+ mov r4, #0x8000
+ rsb lr, r4, #0x0
+ ldr ip, _020A97D0 ; =0x00007FFF
+ str r2, [sp, #0x10]
+ str r2, [sp, #0x14]
+ str r2, [sp, #0x18]
+ str r2, [sp, #0x1c]
+ str r2, [sp, #0x20]
+ mov r4, #0x4
+ mov r2, #0x58
+ str r5, [sp, #0x24]
+ str r5, [sp, #0x28]
+ str r5, [sp, #0x2c]
+ str r5, [sp, #0x30]
+ str r5, [sp, #0x34]
+ str r5, [sp, #0x38]
+ str r5, [sp, #0x3c]
+ str r5, [sp, #0x40]
+ str r5, [sp, #0x44]
+ str r5, [sp, #0x48]
+ str r5, [sp, #0x4c]
+_020A9250:
+ ldrsh r8, [r3, #0x0]
+ ldrsh r6, [r1, #0x0]
+ ldrb r5, [r3, #0x2]
+ subs r7, r6, r8
+ movmi r10, r4
+ ldr r6, _020A97D4 ; =0x020FF5D4
+ mov r9, r5, lsl #0x1
+ ldrsh r6, [r6, r9]
+ ldrpl r10, [sp, #0x10]
+ rsbmi r7, r7, #0x0
+ cmp r7, r6
+ orrge r10, r10, #0x2
+ subge r7, r7, r6
+ mov r9, r6, asr #0x1
+ cmp r7, r9
+ orrge r10, r10, #0x1
+ ands r7, r10, #0x2
+ mov r7, r6, asr #0x2
+ addne r7, r7, r6
+ ands r6, r10, #0x1
+ addne r7, r7, r9
+ ands r6, r10, #0x4
+ rsbne r7, r7, #0x0
+ add r6, r8, r7
+ mov r7, #0x8000
+ rsb r7, r7, #0x0
+ cmp r6, r7
+ ldr r7, _020A97D8 ; =0x020FF5BC
+ movlt r6, lr
+ cmp r6, r12
+ ldrsb r7, [r7, r10]
+ movgt r6, r12
+ adds r5, r5, r7
+ ldrmi r5, [sp, #0x14]
+ bmi _020A92E4
+ cmp r5, #0x58
+ movgt r5, r2
+_020A92E4:
+ strh r6, [r3, #0x0]
+ strb r5, [r3, #0x2]
+ and r5, r10, #0xff
+ mov r5, r5, lsl #0x5
+ and r10, r5, #0xff
+ ldrb r8, [r3, #0x2]
+ ldrsh r11, [r3, #0x0]
+ ldrsh r5, [r1, #0x2]
+ mov r9, r8, lsl #0x1
+ subs r7, r5, r11
+ ldr r5, _020A97D4 ; =0x020FF5D4
+ movmi r6, r4
+ ldrsh r9, [r5, r9]
+ ldrpl r6, [sp, #0x18]
+ rsbmi r7, r7, #0x0
+ cmp r7, r9
+ orrge r6, r6, #0x2
+ subge r7, r7, r9
+ mov r5, r9, asr #0x1
+ cmp r7, r5
+ orrge r6, r6, #0x1
+ ands r7, r6, #0x2
+ mov r7, r9, asr #0x2
+ addne r7, r7, r9
+ ands r9, r6, #0x1
+ addne r7, r7, r5
+ ands r5, r6, #0x4
+ rsbne r7, r7, #0x0
+ add r5, r11, r7
+ mov r7, #0x8000
+ rsb r7, r7, #0x0
+ cmp r5, r7
+ ldr r7, _020A97D8 ; =0x020FF5BC
+ movlt r5, lr
+ cmp r5, r12
+ ldrsb r7, [r7, r6]
+ movgt r5, r12
+ adds r8, r8, r7
+ ldrmi r8, [sp, #0x1c]
+ bmi _020A938C
+ cmp r8, #0x58
+ movgt r8, r2
+_020A938C:
+ strh r5, [r3, #0x0]
+ strb r8, [r3, #0x2]
+ and r5, r6, #0xff
+ orr r5, r10, r5, lsl #0x2
+ and r10, r5, #0xff
+ ldrb r8, [r3, #0x2]
+ ldrsh r11, [r3, #0x0]
+ ldrsh r5, [r1, #0x4]
+ mov r9, r8, lsl #0x1
+ subs r7, r5, r11
+ ldr r5, _020A97D4 ; =0x020FF5D4
+ movmi r6, r4
+ ldrsh r9, [r5, r9]
+ ldrpl r6, [sp, #0x20]
+ rsbmi r7, r7, #0x0
+ cmp r7, r9
+ orrge r6, r6, #0x2
+ subge r7, r7, r9
+ mov r5, r9, asr #0x1
+ cmp r7, r5
+ orrge r6, r6, #0x1
+ ands r7, r6, #0x2
+ mov r7, r9, asr #0x2
+ addne r7, r7, r9
+ ands r9, r6, #0x1
+ addne r7, r7, r5
+ ands r5, r6, #0x4
+ rsbne r7, r7, #0x0
+ add r5, r11, r7
+ mov r7, #0x8000
+ rsb r7, r7, #0x0
+ cmp r5, r7
+ ldr r7, _020A97D8 ; =0x020FF5BC
+ movlt r5, lr
+ cmp r5, r12
+ ldrsb r7, [r7, r6]
+ movgt r5, r12
+ adds r8, r8, r7
+ ldrmi r8, [sp, #0x24]
+ bmi _020A9434
+ cmp r8, #0x58
+ movgt r8, r2
+_020A9434:
+ strh r5, [r3, #0x0]
+ and r5, r6, #0xff
+ str r5, [sp, #0x8]
+ strb r8, [r3, #0x2]
+ orr r5, r10, r5, asr #0x1
+ strb r5, [r0, #0x0]
+ ldrb r5, [r3, #0x2]
+ ldrsh r8, [r3, #0x0]
+ ldrsh r6, [r1, #0x6]
+ mov r9, r5, lsl #0x1
+ subs r7, r6, r8
+ ldr r6, _020A97D4 ; =0x020FF5D4
+ movmi r10, r4
+ ldrsh r6, [r6, r9]
+ ldrpl r10, [sp, #0x28]
+ rsbmi r7, r7, #0x0
+ cmp r7, r6
+ orrge r10, r10, #0x2
+ subge r7, r7, r6
+ mov r9, r6, asr #0x1
+ cmp r7, r9
+ orrge r10, r10, #0x1
+ ands r7, r10, #0x2
+ mov r7, r6, asr #0x2
+ addne r7, r7, r6
+ ands r6, r10, #0x1
+ addne r7, r7, r9
+ ands r6, r10, #0x4
+ rsbne r7, r7, #0x0
+ add r6, r8, r7
+ mov r7, #0x8000
+ rsb r7, r7, #0x0
+ cmp r6, r7
+ ldr r7, _020A97D8 ; =0x020FF5BC
+ movlt r6, lr
+ cmp r6, r12
+ ldrsb r7, [r7, r10]
+ movgt r6, r12
+ adds r5, r5, r7
+ ldrmi r5, [sp, #0x2c]
+ bmi _020A94E0
+ cmp r5, #0x58
+ movgt r5, r2
+_020A94E0:
+ strh r6, [r3, #0x0]
+ strb r5, [r3, #0x2]
+ ldrsh r11, [r3, #0x0]
+ ldrsh r6, [r1, #0x8]
+ ldrb r9, [r3, #0x2]
+ and r5, r10, #0xff
+ subs r8, r6, r11
+ movmi r7, r4
+ ldr r6, _020A97D4 ; =0x020FF5D4
+ mov r10, r9, lsl #0x1
+ ldrsh r10, [r6, r10]
+ ldrpl r7, [sp, #0x30]
+ rsbmi r8, r8, #0x0
+ cmp r8, r10
+ orrge r7, r7, #0x2
+ subge r8, r8, r10
+ mov r6, r10, asr #0x1
+ cmp r8, r6
+ orrge r7, r7, #0x1
+ ands r8, r7, #0x2
+ mov r8, r10, asr #0x2
+ addne r8, r8, r10
+ ands r10, r7, #0x1
+ addne r8, r8, r6
+ ands r6, r7, #0x4
+ rsbne r8, r8, #0x0
+ add r6, r11, r8
+ mov r8, #0x8000
+ rsb r8, r8, #0x0
+ cmp r6, r8
+ ldr r8, _020A97D8 ; =0x020FF5BC
+ movlt r6, lr
+ mov r5, r5, lsl #0x4
+ cmp r6, r12
+ ldrsb r8, [r8, r7]
+ movgt r6, r12
+ and r5, r5, #0xff
+ adds r9, r9, r8
+ ldrmi r9, [sp, #0x34]
+ bmi _020A9588
+ cmp r9, #0x58
+ movgt r9, r2
+_020A9588:
+ strh r6, [r3, #0x0]
+ strb r9, [r3, #0x2]
+ and r6, r7, #0xff
+ orr r5, r5, r6, lsl #0x1
+ ldrb r9, [r3, #0x2]
+ ldrsh r11, [r3, #0x0]
+ ldrsh r6, [r1, #0xa]
+ mov r10, r9, lsl #0x1
+ and r5, r5, #0xff
+ subs r8, r6, r11
+ ldr r6, _020A97D4 ; =0x020FF5D4
+ movmi r7, r4
+ ldrsh r10, [r6, r10]
+ ldrpl r7, [sp, #0x38]
+ rsbmi r8, r8, #0x0
+ cmp r8, r10
+ orrge r7, r7, #0x2
+ subge r8, r8, r10
+ mov r6, r10, asr #0x1
+ cmp r8, r6
+ orrge r7, r7, #0x1
+ ands r8, r7, #0x2
+ mov r8, r10, asr #0x2
+ addne r8, r8, r10
+ ands r10, r7, #0x1
+ addne r8, r8, r6
+ ands r6, r7, #0x4
+ rsbne r8, r8, #0x0
+ add r6, r11, r8
+ mov r8, #0x8000
+ rsb r8, r8, #0x0
+ cmp r6, r8
+ ldr r8, _020A97D8 ; =0x020FF5BC
+ movlt r6, lr
+ cmp r6, r12
+ ldrsb r8, [r8, r7]
+ movgt r6, r12
+ adds r9, r9, r8
+ ldrmi r9, [sp, #0x3c]
+ bmi _020A9630
+ cmp r9, #0x58
+ movgt r9, r2
+_020A9630:
+ ldr r8, [sp, #0x8]
+ strh r6, [r3, #0x0]
+ orr r8, r5, r8, lsl #0x7
+ and r5, r7, #0xff
+ str r5, [sp, #0xc]
+ strb r9, [r3, #0x2]
+ orr r5, r8, r5, asr #0x2
+ strb r5, [r0, #0x1]
+ ldrb r5, [r3, #0x2]
+ ldrsh r8, [r3, #0x0]
+ ldrsh r6, [r1, #0xc]
+ mov r9, r5, lsl #0x1
+ subs r7, r6, r8
+ ldr r6, _020A97D4 ; =0x020FF5D4
+ movmi r10, r4
+ ldrsh r6, [r6, r9]
+ ldrpl r10, [sp, #0x40]
+ rsbmi r7, r7, #0x0
+ cmp r7, r6
+ orrge r10, r10, #0x2
+ subge r7, r7, r6
+ mov r9, r6, asr #0x1
+ cmp r7, r9
+ orrge r10, r10, #0x1
+ ands r7, r10, #0x2
+ mov r7, r6, asr #0x2
+ addne r7, r7, r6
+ ands r6, r10, #0x1
+ addne r7, r7, r9
+ ands r6, r10, #0x4
+ rsbne r7, r7, #0x0
+ add r6, r8, r7
+ mov r7, #0x8000
+ rsb r7, r7, #0x0
+ cmp r6, r7
+ ldr r7, _020A97D8 ; =0x020FF5BC
+ movlt r6, lr
+ cmp r6, r12
+ ldrsb r7, [r7, r10]
+ movgt r6, r12
+ adds r5, r5, r7
+ ldrmi r5, [sp, #0x44]
+ bmi _020A96E4
+ cmp r5, #0x58
+ movgt r5, r2
+_020A96E4:
+ strh r6, [r3, #0x0]
+ strb r5, [r3, #0x2]
+ and r5, r10, #0xff
+ mov r5, r5, lsl #0x3
+ and r11, r5, #0xff
+ ldrsh r6, [r1, #0xe]
+ ldrsh r5, [r3, #0x0]
+ ldrb r9, [r3, #0x2]
+ add r1, r1, #0x10
+ subs r8, r6, r5
+ movmi r7, r4
+ ldr r6, _020A97D4 ; =0x020FF5D4
+ mov r10, r9, lsl #0x1
+ ldrsh r10, [r6, r10]
+ ldrpl r7, [sp, #0x48]
+ rsbmi r8, r8, #0x0
+ cmp r8, r10
+ orrge r7, r7, #0x2
+ subge r8, r8, r10
+ mov r6, r10, asr #0x1
+ cmp r8, r6
+ orrge r7, r7, #0x1
+ ands r8, r7, #0x2
+ mov r8, r10, asr #0x2
+ addne r8, r8, r10
+ ands r10, r7, #0x1
+ addne r8, r8, r6
+ ands r6, r7, #0x4
+ rsbne r8, r8, #0x0
+ mov r6, #0x8000
+ add r5, r5, r8
+ rsb r6, r6, #0x0
+ cmp r5, r6
+ ldr r6, _020A97D8 ; =0x020FF5BC
+ movlt r5, lr
+ cmp r5, r12
+ ldrsb r6, [r6, r7]
+ movgt r5, r12
+ adds r9, r9, r6
+ ldrmi r9, [sp, #0x4c]
+ bmi _020A9790
+ cmp r9, #0x58
+ movgt r9, r2
+_020A9790:
+ strh r5, [r3, #0x0]
+ and r5, r7, #0xff
+ orr r6, r11, r5
+ ldr r5, [sp, #0xc]
+ strb r9, [r3, #0x2]
+ orr r5, r6, r5, lsl #0x6
+ strb r5, [r0, #0x2]
+ ldr r5, [sp, #0x0]
+ add r0, r0, #0x3
+ add r6, r5, #0x1
+ ldr r5, [sp, #0x4]
+ str r6, [sp, #0x0]
+ cmp r6, r5
+ blo _020A9250
+ add sp, sp, #0x54
+ ldmia sp!, {r4-r11,pc}
+ .balign 4
+_020A97D0: .word 0x00007FFF
+_020A97D4: .word 0x020FF5D4
+_020A97D8: .word 0x020FF5BC
+
+ arm_func_start FUN_020A97DC
+FUN_020A97DC: ; 0x020A97DC
+ stmdb sp!, {r4-r11,lr}
+ sub sp, sp, #0x4c
+ ldr r5, _020A9D08 ; =0xAAAAAAAB
+ mov r4, #0x0
+ str r4, [sp, #0x0]
+ umull r5, r4, r2, r5
+ str r4, [sp, #0xc]
+ movs r2, r4, lsr #0x1
+ str r2, [sp, #0xc]
+ addeq sp, sp, #0x4c
+ ldmeqia sp!, {r4-r11,pc}
+_020A9808: ; 0x020A9808
+ ldr r2, [sp, #0x0]
+ mov r4, #0x8000
+ ldr lr, _020A9D0C ; =0x00007FFF
+ str r2, [sp, #0x18]
+ str r2, [sp, #0x24]
+ str r2, [sp, #0x2c]
+ str r2, [sp, #0x34]
+ str r2, [sp, #0x3c]
+ rsb r4, r4, #0x0
+ mov r12, #0x58
+ str r2, [sp, #0x40]
+ str r2, [sp, #0x44]
+ str r2, [sp, #0x48]
+_020A983C:
+ ldrb r8, [r3, #0x2]
+ ldr r5, _020A9D10 ; =0x020FF5D4
+ ldrb r6, [r0, #0x0]
+ mov r7, r8, lsl #0x1
+ ldrsh r5, [r5, r7]
+ ldrb r11, [r0, #0x1]
+ ldrb r2, [r0, #0x2]
+ str r5, [sp, #0x4]
+ mov r5, r6, asr #0x5
+ ands r7, r5, #0x2
+ ldr r7, [sp, #0x4]
+ ldrne r10, [sp, #0x4]
+ mov r7, r7, asr #0x2
+ addne r7, r7, r10
+ ands r10, r5, #0x1
+ str r10, [sp, #0x10]
+ ldrne r10, [sp, #0x4]
+ ldrsh r9, [r3, #0x0]
+ addne r7, r7, r10, asr #0x1
+ ands r10, r5, #0x4
+ str r10, [sp, #0x14]
+ beq _020A98AC
+ sub r9, r9, r7
+ mov r7, #0x8000
+ rsb r7, r7, #0x0
+ cmp r9, r7
+ movlt r9, r4
+ b _020A98B8
+_020A98AC:
+ add r9, r9, r7
+ cmp r9, lr
+ movgt r9, lr
+_020A98B8:
+ ldr r7, _020A9D14 ; =0x020FF5BC
+ ldrsb r5, [r7, r5]
+ adds r8, r8, r5
+ ldrmi r8, [sp, #0x18]
+ bmi _020A98D4
+ cmp r8, #0x58
+ movgt r8, r12
+_020A98D4:
+ mov r5, r9, lsl #0x10
+ mov r5, r5, asr #0x10
+ strh r5, [r3, #0x0]
+ strb r8, [r3, #0x2]
+ strh r5, [r1, #0x0]
+ ldrb r8, [r3, #0x2]
+ mov r5, r6, asr #0x2
+ ands r7, r5, #0x2
+ ldr r7, _020A9D10 ; =0x020FF5D4
+ mov r10, r8, lsl #0x1
+ ldrsh r7, [r7, r10]
+ ldrsh r9, [r3, #0x0]
+ str r7, [sp, #0x8]
+ ldrne r10, [sp, #0x8]
+ mov r7, r7, asr #0x2
+ addne r7, r7, r10
+ ands r10, r5, #0x1
+ str r10, [sp, #0x1c]
+ ldrne r10, [sp, #0x8]
+ addne r7, r7, r10, asr #0x1
+ ands r10, r5, #0x4
+ str r10, [sp, #0x20]
+ beq _020A9948
+ sub r9, r9, r7
+ mov r7, #0x8000
+ rsb r7, r7, #0x0
+ cmp r9, r7
+ movlt r9, r4
+ b _020A9954
+_020A9948:
+ add r9, r9, r7
+ cmp r9, lr
+ movgt r9, lr
+_020A9954:
+ and r7, r5, #0x7
+ ldr r5, _020A9D14 ; =0x020FF5BC
+ ldrsb r5, [r5, r7]
+ adds r8, r8, r5
+ ldrmi r8, [sp, #0x24]
+ bmi _020A9974
+ cmp r8, #0x58
+ movgt r8, r12
+_020A9974:
+ mov r5, r9, lsl #0x10
+ mov r5, r5, asr #0x10
+ strh r5, [r3, #0x0]
+ mov r6, r6, lsl #0x1
+ strb r8, [r3, #0x2]
+ strh r5, [r1, #0x2]
+ and r6, r6, #0x7
+ orr r6, r6, r11, asr #0x7
+ ldrb r8, [r3, #0x2]
+ ands r5, r6, #0x2
+ ldr r5, _020A9D10 ; =0x020FF5D4
+ mov r7, r8, lsl #0x1
+ ldrsh r10, [r5, r7]
+ ldrsh r9, [r3, #0x0]
+ mov r7, r10, asr #0x2
+ addne r7, r7, r10
+ ands r5, r6, #0x1
+ str r5, [sp, #0x28]
+ addne r7, r7, r10, asr #0x1
+ ands r5, r6, #0x4
+ beq _020A99E0
+ mov r5, #0x8000
+ sub r9, r9, r7
+ rsb r5, r5, #0x0
+ cmp r9, r5
+ movlt r9, r4
+ b _020A99EC
+_020A99E0:
+ add r9, r9, r7
+ cmp r9, lr
+ movgt r9, lr
+_020A99EC:
+ ldr r5, _020A9D14 ; =0x020FF5BC
+ ldrsb r5, [r5, r6]
+ adds r8, r8, r5
+ ldrmi r8, [sp, #0x2c]
+ bmi _020A9A08
+ cmp r8, #0x58
+ movgt r8, r12
+_020A9A08:
+ mov r5, r9, lsl #0x10
+ mov r5, r5, asr #0x10
+ strh r5, [r3, #0x0]
+ strb r8, [r3, #0x2]
+ strh r5, [r1, #0x4]
+ ldrb r8, [r3, #0x2]
+ mov r6, r11, asr #0x4
+ ands r5, r6, #0x2
+ ldr r5, _020A9D10 ; =0x020FF5D4
+ mov r7, r8, lsl #0x1
+ ldrsh r10, [r5, r7]
+ ldrsh r9, [r3, #0x0]
+ mov r7, r10, asr #0x2
+ addne r7, r7, r10
+ ands r5, r6, #0x1
+ str r5, [sp, #0x30]
+ addne r7, r7, r10, asr #0x1
+ ands r5, r6, #0x4
+ beq _020A9A6C
+ mov r5, #0x8000
+ sub r9, r9, r7
+ rsb r5, r5, #0x0
+ cmp r9, r5
+ movlt r9, r4
+ b _020A9A78
+_020A9A6C:
+ add r9, r9, r7
+ cmp r9, lr
+ movgt r9, lr
+_020A9A78:
+ ldr r5, _020A9D14 ; =0x020FF5BC
+ and r6, r6, #0x7
+ ldrsb r5, [r5, r6]
+ adds r8, r8, r5
+ ldrmi r8, [sp, #0x34]
+ bmi _020A9A98
+ cmp r8, #0x58
+ movgt r8, r12
+_020A9A98:
+ mov r5, r9, lsl #0x10
+ mov r5, r5, asr #0x10
+ strh r5, [r3, #0x0]
+ strb r8, [r3, #0x2]
+ strh r5, [r1, #0x6]
+ ldrb r8, [r3, #0x2]
+ mov r6, r11, asr #0x1
+ ands r5, r6, #0x2
+ ldr r5, _020A9D10 ; =0x020FF5D4
+ mov r7, r8, lsl #0x1
+ ldrsh r10, [r5, r7]
+ ldrsh r9, [r3, #0x0]
+ mov r7, r10, asr #0x2
+ addne r7, r7, r10
+ ands r5, r6, #0x1
+ str r5, [sp, #0x38]
+ addne r7, r7, r10, asr #0x1
+ ands r5, r6, #0x4
+ beq _020A9AFC
+ mov r5, #0x8000
+ sub r9, r9, r7
+ rsb r5, r5, #0x0
+ cmp r9, r5
+ movlt r9, r4
+ b _020A9B08
+_020A9AFC:
+ add r9, r9, r7
+ cmp r9, lr
+ movgt r9, lr
+_020A9B08:
+ ldr r5, _020A9D14 ; =0x020FF5BC
+ and r6, r6, #0x7
+ ldrsb r5, [r5, r6]
+ adds r8, r8, r5
+ ldrmi r8, [sp, #0x3c]
+ bmi _020A9B28
+ cmp r8, #0x58
+ movgt r8, r12
+_020A9B28:
+ mov r5, r9, lsl #0x10
+ mov r6, r5, asr #0x10
+ mov r5, r11, lsl #0x2
+ and r5, r5, #0x7
+ strh r6, [r3, #0x0]
+ strb r8, [r3, #0x2]
+ strh r6, [r1, #0x8]
+ orr r5, r5, r2, asr #0x6
+ ands r6, r5, #0x2
+ ldrb r6, [r3, #0x2]
+ ldr r8, _020A9D10 ; =0x020FF5D4
+ ldrsh r7, [r3, #0x0]
+ mov r9, r6, lsl #0x1
+ ldrsh r10, [r8, r9]
+ mov r9, r10, asr #0x2
+ addne r9, r9, r10
+ ands r8, r5, #0x1
+ addne r9, r9, r10, asr #0x1
+ ands r8, r5, #0x4
+ beq _020A9B90
+ mov r8, #0x8000
+ sub r7, r7, r9
+ rsb r8, r8, #0x0
+ cmp r7, r8
+ movlt r7, r4
+ b _020A9B9C
+_020A9B90:
+ add r7, r7, r9
+ cmp r7, lr
+ movgt r7, lr
+_020A9B9C:
+ ldr r8, _020A9D14 ; =0x020FF5BC
+ ldrsb r5, [r8, r5]
+ adds r6, r6, r5
+ ldrmi r6, [sp, #0x40]
+ bmi _020A9BB8
+ cmp r6, #0x58
+ movgt r6, r12
+_020A9BB8:
+ mov r5, r7, lsl #0x10
+ mov r5, r5, asr #0x10
+ strh r5, [r3, #0x0]
+ strb r6, [r3, #0x2]
+ strh r5, [r1, #0xa]
+ ldrb r6, [r3, #0x2]
+ mov r5, r2, asr #0x3
+ ands r8, r5, #0x2
+ ldr r8, _020A9D10 ; =0x020FF5D4
+ mov r9, r6, lsl #0x1
+ ldrsh r10, [r8, r9]
+ ldrsh r7, [r3, #0x0]
+ mov r9, r10, asr #0x2
+ addne r9, r9, r10
+ ands r8, r5, #0x1
+ addne r9, r9, r10, asr #0x1
+ ands r8, r5, #0x4
+ beq _020A9C18
+ mov r8, #0x8000
+ sub r7, r7, r9
+ rsb r8, r8, #0x0
+ cmp r7, r8
+ movlt r7, r4
+ b _020A9C24
+_020A9C18:
+ add r7, r7, r9
+ cmp r7, lr
+ movgt r7, lr
+_020A9C24:
+ and r8, r5, #0x7
+ ldr r5, _020A9D14 ; =0x020FF5BC
+ ldrsb r5, [r5, r8]
+ adds r6, r6, r5
+ ldrmi r6, [sp, #0x44]
+ bmi _020A9C44
+ cmp r6, #0x58
+ movgt r6, r12
+_020A9C44:
+ mov r5, r7, lsl #0x10
+ mov r5, r5, asr #0x10
+ strh r5, [r3, #0x0]
+ strb r6, [r3, #0x2]
+ strh r5, [r1, #0xc]
+ ands r5, r2, #0x2
+ ldrb r5, [r3, #0x2]
+ ldr r7, _020A9D10 ; =0x020FF5D4
+ ldrsh r6, [r3, #0x0]
+ mov r8, r5, lsl #0x1
+ ldrsh r9, [r7, r8]
+ mov r8, r9, asr #0x2
+ addne r8, r8, r9
+ ands r7, r2, #0x1
+ addne r8, r8, r9, asr #0x1
+ ands r7, r2, #0x4
+ beq _020A9CA0
+ mov r7, #0x8000
+ sub r6, r6, r8
+ rsb r7, r7, #0x0
+ cmp r6, r7
+ movlt r6, r4
+ b _020A9CAC
+_020A9CA0:
+ add r6, r6, r8
+ cmp r6, lr
+ movgt r6, lr
+_020A9CAC:
+ and r7, r2, #0x7
+ ldr r2, _020A9D14 ; =0x020FF5BC
+ ldrsb r2, [r2, r7]
+ adds r5, r5, r2
+ ldrmi r5, [sp, #0x48]
+ bmi _020A9CCC
+ cmp r5, #0x58
+ movgt r5, r12
+_020A9CCC:
+ mov r2, r6, lsl #0x10
+ mov r2, r2, asr #0x10
+ strh r2, [r3, #0x0]
+ strb r5, [r3, #0x2]
+ strh r2, [r1, #0xe]
+ ldr r2, [sp, #0x0]
+ add r0, r0, #0x3
+ add r5, r2, #0x1
+ ldr r2, [sp, #0xc]
+ add r1, r1, #0x10
+ str r5, [sp, #0x0]
+ cmp r5, r2
+ blo _020A983C
+ add sp, sp, #0x4c
+ ldmia sp!, {r4-r11,pc}
+ .balign 4
+_020A9D08: .word 0xAAAAAAAB
+_020A9D0C: .word 0x00007FFF
+_020A9D10: .word 0x020FF5D4
+_020A9D14: .word 0x020FF5BC
+
+ arm_func_start FUN_020A9D18
+FUN_020A9D18: ; 0x020A9D18
+ stmdb sp!, {r4-r11,lr}
+ sub sp, sp, #0x1c
+ movs r2, r2, lsr #0x1
+ str r2, [sp, #0x4]
+ mov r2, #0x0
+ str r2, [sp, #0x0]
+ addeq sp, sp, #0x1c
+ ldmeqia sp!, {r4-r11,pc}
+_020A9D38: ; 0x020A9D38
+ mov r4, #0x8000
+ rsb r5, r4, #0x0
+ ldr fp, _020A9F04 ; =0x00007FFF
+ str r2, [sp, #0xc]
+ str r2, [sp, #0x10]
+ str r2, [sp, #0x14]
+ str r2, [sp, #0x18]
+ mov r6, #0x8
+ mov r4, #0x58
+_020A9D5C:
+ ldrb r2, [r3, #0x2]
+ ldrsh r8, [r3, #0x0]
+ ldrsh r7, [r1, #0x0]
+ ldr sb, _020A9F08 ; =0x020FF5D4
+ mov r12, r2, lsl #0x1
+ subs r7, r7, r8
+ ldrsh r12, [r9, r12]
+ movmi r10, r6
+ ldrpl r10, [sp, #0xc]
+ rsbmi r7, r7, #0x0
+ cmp r7, r12
+ orrge r10, r10, #0x4
+ subge r7, r7, r12
+ mov lr, r12, asr #0x1
+ cmp r7, lr
+ orrge r10, r10, #0x2
+ subge r7, r7, lr
+ mov r9, r12, asr #0x2
+ cmp r7, r9
+ orrge r10, r10, #0x1
+ ands r7, r10, #0x4
+ mov r7, r12, asr #0x3
+ addne r7, r7, r12
+ ands r12, r10, #0x2
+ addne r7, r7, lr
+ ands r12, r10, #0x1
+ addne r7, r7, r9
+ ands r9, r10, #0x8
+ rsbne r7, r7, #0x0
+ add r7, r8, r7
+ mov r8, #0x8000
+ rsb r8, r8, #0x0
+ cmp r7, r8
+ ldr r8, _020A9F0C ; =0x020FF5C4
+ movlt r7, r5
+ cmp r7, r11
+ ldrsb r8, [r8, r10]
+ movgt r7, r11
+ adds r2, r2, r8
+ ldrmi r2, [sp, #0x10]
+ bmi _020A9E08
+ cmp r2, #0x58
+ movgt r2, r4
+_020A9E08:
+ strh r7, [r3, #0x0]
+ strb r2, [r3, #0x2]
+ ldrsh r2, [r3, #0x0]
+ ldrsh r8, [r1, #0x2]
+ and lr, r10, #0xff
+ str r2, [sp, #0x8]
+ ldrb r2, [r3, #0x2]
+ ldr r7, [sp, #0x8]
+ add r1, r1, #0x4
+ subs r7, r8, r7
+ movmi r10, r6
+ ldr r8, _020A9F08 ; =0x020FF5D4
+ mov r9, r2, lsl #0x1
+ ldrsh r12, [r8, r9]
+ ldrpl r10, [sp, #0x14]
+ rsbmi r7, r7, #0x0
+ cmp r7, r12
+ orrge r10, r10, #0x4
+ subge r7, r7, r12
+ mov r9, r12, asr #0x1
+ cmp r7, r9
+ orrge r10, r10, #0x2
+ subge r7, r7, r9
+ mov r8, r12, asr #0x2
+ cmp r7, r8
+ orrge r10, r10, #0x1
+ ands r7, r10, #0x4
+ mov r7, r12, asr #0x3
+ addne r7, r7, r12
+ ands r12, r10, #0x2
+ addne r7, r7, r9
+ ands r9, r10, #0x1
+ addne r7, r7, r8
+ ands r8, r10, #0x8
+ ldr r8, [sp, #0x8]
+ rsbne r7, r7, #0x0
+ add r7, r8, r7
+ mov r8, #0x8000
+ rsb r8, r8, #0x0
+ cmp r7, r8
+ ldr r8, _020A9F0C ; =0x020FF5C4
+ movlt r7, r5
+ cmp r7, r11
+ ldrsb r8, [r8, r10]
+ movgt r7, r11
+ adds r2, r2, r8
+ ldrmi r2, [sp, #0x18]
+ bmi _020A9ED0
+ cmp r2, #0x58
+ movgt r2, r4
+_020A9ED0:
+ strh r7, [r3, #0x0]
+ strb r2, [r3, #0x2]
+ and r2, r10, #0xff
+ orr r2, lr, r2, lsl #0x4
+ strb r2, [r0], #0x1
+ ldr r2, [sp, #0x0]
+ add r7, r2, #0x1
+ ldr r2, [sp, #0x4]
+ str r7, [sp, #0x0]
+ cmp r7, r2
+ blo _020A9D5C
+ add sp, sp, #0x1c
+ ldmia sp!, {r4-r11,pc}
+ .balign 4
+_020A9F04: .word 0x00007FFF
+_020A9F08: .word 0x020FF5D4
+_020A9F0C: .word 0x020FF5C4
+
+ arm_func_start FUN_020A9F10
+FUN_020A9F10: ; 0x020A9F10
+ stmdb sp!, {r4-r11,lr}
+ sub sp, sp, #0x1c
+ cmp r2, #0x0
+ addls sp, sp, #0x1c
+ mov r12, #0x0
+ ldmlsia sp!, {r4-r11,pc}
+_020A9F28: ; 0x020A9F28
+ mov r4, #0x8000
+ ldr fp, _020AA098 ; =0x00007FFF
+ str r12, [sp, #0x8]
+ str r12, [sp, #0x14]
+ rsb r4, r4, #0x0
+ mov lr, #0x58
+_020A9F40:
+ ldrb r5, [r0, #0x0]
+ ldrb r6, [r3, #0x2]
+ ldrsh r7, [r3, #0x0]
+ and r9, r5, #0xf
+ ldr r5, _020AA09C ; =0x020FF5D4
+ mov r8, r6, lsl #0x1
+ ldrsh r8, [r5, r8]
+ ands r5, r9, #0x4
+ mov r5, r8, asr #0x3
+ addne r5, r5, r8
+ ands r10, r9, #0x2
+ str r10, [sp, #0x0]
+ addne r5, r5, r8, asr #0x1
+ ands r10, r9, #0x1
+ addne r5, r5, r8, asr #0x2
+ str r10, [sp, #0x4]
+ ands r8, r9, #0x8
+ beq _020A9FA0
+ sub r7, r7, r5
+ mov r5, #0x8000
+ rsb r5, r5, #0x0
+ cmp r7, r5
+ movlt r7, r4
+ b _020A9FAC
+_020A9FA0:
+ add r7, r7, r5
+ cmp r7, r11
+ movgt r7, r11
+_020A9FAC:
+ ldr r5, _020AA0A0 ; =0x020FF5C4
+ ldrsb r5, [r5, r9]
+ adds r6, r6, r5
+ ldrmi r6, [sp, #0x8]
+ bmi _020A9FC8
+ cmp r6, #0x58
+ movgt r6, lr
+_020A9FC8:
+ mov r5, r7, lsl #0x10
+ mov r5, r5, asr #0x10
+ strh r5, [r3, #0x0]
+ strb r6, [r3, #0x2]
+ strh r5, [r1, #0x0]
+ ldrb r5, [r0, #0x0]
+ ldrb r6, [r3, #0x2]
+ ldrsh r7, [r3, #0x0]
+ mov r5, r5, asr #0x4
+ and r9, r5, #0xf
+ ldr r5, _020AA09C ; =0x020FF5D4
+ mov r8, r6, lsl #0x1
+ ldrsh r8, [r5, r8]
+ ands r5, r9, #0x4
+ mov r5, r8, asr #0x3
+ addne r5, r5, r8
+ ands r10, r9, #0x2
+ str r10, [sp, #0xc]
+ addne r5, r5, r8, asr #0x1
+ ands r10, r9, #0x1
+ addne r5, r5, r8, asr #0x2
+ str r10, [sp, #0x10]
+ ands r8, r9, #0x8
+ beq _020AA040
+ sub r7, r7, r5
+ mov r5, #0x8000
+ rsb r5, r5, #0x0
+ cmp r7, r5
+ movlt r7, r4
+ b _020AA04C
+_020AA040:
+ add r7, r7, r5
+ cmp r7, r11
+ movgt r7, r11
+_020AA04C:
+ ldr r5, _020AA0A0 ; =0x020FF5C4
+ ldrsb r5, [r5, r9]
+ adds r6, r6, r5
+ ldrmi r6, [sp, #0x14]
+ bmi _020AA068
+ cmp r6, #0x58
+ movgt r6, lr
+_020AA068:
+ mov r5, r7, lsl #0x10
+ mov r7, r5, asr #0x10
+ strh r7, [r3, #0x0]
+ strb r6, [r3, #0x2]
+ add r12, r12, #0x1
+ strh r7, [r1, #0x2]
+ cmp r12, r2
+ add r1, r1, #0x4
+ add r0, r0, #0x1
+ blo _020A9F40
+ add sp, sp, #0x1c
+ ldmia sp!, {r4-r11,pc}
+ .balign 4
+_020AA098: .word 0x00007FFF
+_020AA09C: .word 0x020FF5D4
+_020AA0A0: .word 0x020FF5C4
+
+ arm_func_start FUN_020AA0A4
+FUN_020AA0A4:
+ stmdb sp!, {r4-r8,lr}
+ ldr r0, _020AA1B4 ; =0x021CA8D0
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ moveq r0, #0x1
+ ldmeqia sp!, {r4-r8,pc}
+_020AA0BC: ; 0x020AA0BC
+ ldr r1, _020AA1B8 ; =0x021CAF00
+ ldr r0, [r1, #0x8c8]
+ cmp r0, #0x0
+ bne _020AA0FC
+ bl FUN_020AA4C0
+ ldr r1, _020AA1B8 ; =0x021CAF00
+ cmp r0, #0x0
+ str r0, [r1, #0x8c8]
+ beq _020AA0F4
+ ldr r0, _020AA1BC ; =0x021CA8C8
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ movne r0, #0x0
+ ldmneia sp!, {r4-r8,pc}
+_020AA0F4:
+ mov r0, #0x1
+ ldmia sp!, {r4-r8,pc}
+_020AA0FC:
+ ldr r0, _020AA1C0 ; =0x021CCD20
+ mov r5, #0x1
+ ldr r0, [r0, #0x10]
+ cmp r0, #0x2
+ bne _020AA130
+ ldr r3, [r1, #0x8d4]
+ ldr r2, _020AA1C4 ; =0x020FF694
+ mov r0, #0x3
+ mla r0, r3, r0, r2
+ ldr r3, [r1, #0x8d0]
+ add r2, r3, #0x1
+ ldrb r5, [r3, r0]
+ str r2, [r1, #0x8d0]
+_020AA130:
+ mov r4, #0x0
+ ldr r7, _020AA1B8 ; =0x021CAF00
+ mov r8, #0x80000000
+ ldr r6, _020AA1C8 ; =0x021CA8BC
+ b _020AA1A4
+_020AA144:
+ ldr r1, [r7, #0x8cc]
+ mov r2, r1
+ clz r2, r2
+ cmp r2, #0x20
+ beq _020AA1AC
+ mvn r0, r8, lsr r2
+ and r3, r1, r0
+ rsb r0, r2, #0x1f
+ ldr r1, [r7, #0x8c8]
+ ldr r2, [r6, #0x0]
+ str r3, [r7, #0x8cc]
+ and r0, r0, #0xff
+ bl FUN_021EAE90
+ ldr r0, [r7, #0x8cc]
+ cmp r0, #0x0
+ bne _020AA1A0
+ ldr r1, [r7, #0x8c0]
+ mov r0, #0x0
+ add r1, r1, #0x1
+ str r1, [r7, #0x8c0]
+ str r0, [r7, #0x8c8]
+ str r0, [r7, #0x8cc]
+ b _020AA1AC
+_020AA1A0:
+ add r4, r4, #0x1
+_020AA1A4:
+ cmp r4, r5
+ blt _020AA144
+_020AA1AC:
+ mov r0, #0x1
+ ldmia sp!, {r4-r8,pc}
+ .balign 4
+_020AA1B4: .word 0x021CA8D0
+_020AA1B8: .word 0x021CAF00
+_020AA1BC: .word 0x021CA8C8
+_020AA1C0: .word 0x021CCD20
+_020AA1C4: .word 0x020FF694
+_020AA1C8: .word 0x021CA8BC
+
+ arm_func_start FUN_020AA1CC
+FUN_020AA1CC: ; 0x020AA1CC
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0x4
+ bl FUN_020AB154
+_020AA1D8: ; 0x020AA1D8
+ cmp r0, #0x0
+ addeq sp, sp, #0x4
+ moveq r0, #0x0
+ ldmeqia sp!, {r4-r7,pc}
+_020AA1E8: ; 0x020AA1E8
+ ldrb r5, [r0, #0x11]
+ mov r0, r5
+ bl FUN_020AB144
+ mov r6, r0
+ cmp r6, #0x0
+ mov r7, #0x0
+ ble _020AA294
+_020AA204:
+ mov r0, r5
+ bl FUN_020AB10C
+ mov r4, r0
+ ldr r3, [r4, #0xc]
+ cmp r3, #0x2
+ blt _020AA230
+ ldr r0, [r4, #0x474]
+ ldr r2, [r4, #0x14]
+ add r1, r4, #0x1c
+ bl FUN_020A8C28
+ b _020AA25C
+_020AA230:
+ cmp r3, #0x1
+ bne _020AA24C
+ ldr r0, [r4, #0x474]
+ ldr r2, [r4, #0x14]
+ add r1, r4, #0x1c
+ bl FUN_020AB328
+ b _020AA25C
+_020AA24C:
+ ldr r0, [r4, #0x474]
+ ldr r2, [r4, #0x14]
+ add r1, r4, #0x1c
+ bl FUN_020AB2C0
+_020AA25C:
+ add r1, r4, #0x1c
+ mov r0, r4
+ str r1, [r4, #0x474]
+ bl FUN_020AB088
+ ldrb r1, [r4, #0x11]
+ mov r0, r4
+ bl FUN_020AB500
+_020AA278: ; 0x020AA278
+ cmp r0, #0x0
+ bge _020AA288
+ mov r0, r4
+ bl FUN_020ACD90
+_020AA288:
+ add r7, r7, #0x1
+ cmp r7, r6
+ blt _020AA204
+_020AA294:
+ mov r0, r6
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r7,pc}
+
+ arm_func_start FUN_020AA2A0
+FUN_020AA2A0: ; 0x020AA2A0
+ stmdb sp!, {r4-r11,lr}
+ sub sp, sp, #0x4
+ ldr r4, _020AA4A8 ; =0x021CA8D0
+ mov r10, r0
+ ldr r0, [r4, #0x0]
+ ldr r7, [sp, #0x28]
+ cmp r0, #0x0
+ mov r5, #0x0
+ mov r9, r1
+ mov r8, r2
+ mov r11, r3
+ addeq sp, sp, #0x4
+ moveq r0, r5
+ ldmeqia sp!, {r4-r11,pc}
+_020AA2D8: ; 0x020AA2D8
+ ldr r1, _020AA4AC ; =0x021CA8E8
+ mov r2, r5
+_020AA2E0:
+ ldr r0, [r1, #0x38]
+ cmp r10, r0
+ ldreq r1, _020AA4AC ; =0x021CA8E8
+ moveq r0, #0x94
+ mlaeq r5, r2, r0, r1
+ beq _020AA308
+ add r2, r2, #0x1
+ cmp r2, #0x3
+ add r1, r1, #0x94
+ blo _020AA2E0
+_020AA308:
+ cmp r5, #0x0
+ addeq sp, sp, #0x4
+ moveq r0, #0x0
+ ldmeqia sp!, {r4-r11,pc}
+_020AA318: ; 0x020AA318
+ ldrb r0, [r9, #0x4]
+ cmp r0, #0x41
+ bne _020AA344
+ ldrh r2, [r9, #0x6]
+ mov r0, #0x0
+ mov r1, #0x1
+ str r2, [r5, #0x30]
+ str r0, [r5, #0x4c]
+ add sp, sp, #0x4
+ str r1, [r5, #0x6c]
+ ldmia sp!, {r4-r11,pc}
+_020AA344:
+ cmp r0, #0x40
+ addne sp, sp, #0x4
+ movne r0, #0x0
+ ldmneia sp!, {r4-r11,pc}
+_020AA354: ; 0x020AA354
+ ldrb r0, [r9, #0x5]
+ and r4, r0, #0x7f
+ cmp r4, #0x5
+ addge sp, sp, #0x4
+ str r4, [r5, #0x24]
+ movge r0, #0x0
+ ldmgeia sp!, {r4-r11,pc}
+_020AA370: ; 0x020AA370
+ ldr r1, _020AA4B0 ; =0x020FF689
+ ldr r0, _020AA4B4 ; =0x020FF688
+ ldrb r2, [r1, r4, lsl #0x1]
+ ldrb r1, [r0, r4, lsl #0x1]
+ mov r0, #0x44
+ mla r0, r1, r0, r2
+ add r0, r0, #0xc
+ cmp r8, r0
+ addne sp, sp, #0x4
+ movne r0, #0x0
+ ldmneia sp!, {r4-r11,pc}
+_020AA39C: ; 0x020AA39C
+ cmp r10, #0x0
+ movne r0, #0x1
+ movne r1, r0, lsl r10
+ ldr r0, _020AA4B8 ; =0x021CA8B4
+ moveq r1, #0x1
+ ldr r0, [r0, #0x0]
+ ands r0, r0, r1
+ addeq sp, sp, #0x4
+ moveq r0, #0x0
+ ldmeqia sp!, {r4-r11,pc}
+_020AA3C4: ; 0x020AA3C4
+ bl FUN_020ACDC8
+ movs r6, r0
+ bne _020AA40C
+ ldr r0, [r5, #0x34]
+ bl FUN_020AB6C4
+ ldr r0, [r5, #0x34]
+ bl FUN_020AB234
+ bl FUN_020ACDC8
+ movs r6, r0
+ bne _020AA3FC
+ bl FUN_020AB630
+ bl FUN_020AB1E4
+ bl FUN_020ACDC8
+ mov r6, r0
+_020AA3FC:
+ cmp r6, #0x0
+ addeq sp, sp, #0x4
+ moveq r0, #0x0
+ ldmeqia sp!, {r4-r11,pc}
+_020AA40C:
+ ldr r0, _020AA4BC ; =0x0000045C
+ sub r2, r8, #0xc
+ add r0, r6, r0
+ sub r1, r0, r2
+ add r0, r9, #0xc
+ str r1, [sp, #0x0]
+ bl MI_CpuCopy8
+ ldr r0, [r5, #0x34]
+ sub r1, r8, #0xc
+ strb r0, [r6, #0x11]
+ ldr r0, [sp, #0x0]
+ str r4, [r6, #0xc]
+ str r0, [r6, #0x474]
+ str r1, [r6, #0x14]
+ str r11, [r6, #0x464]
+ str r7, [r6, #0x468]
+ strb r10, [r6, #0x10]
+ ldrb r2, [r9, #0x5]
+ mov r0, r5
+ mov r1, r6
+ and r2, r2, #0x80
+ str r2, [r6, #0x45c]
+ ldr r2, [r9, #0x8]
+ str r2, [r6, #0x460]
+ ldrh r2, [r9, #0x6]
+ str r2, [r6, #0x18]
+ bl FUN_020AB760
+_020AA478: ; 0x020AA478
+ cmp r0, #0x0
+ bne _020AA494
+ mov r0, r6
+ bl FUN_020ACD90
+ add sp, sp, #0x4
+ mov r0, #0x0
+ ldmia sp!, {r4-r11,pc}
+_020AA494:
+ mov r0, r6
+ bl FUN_020AB164
+ mov r0, #0x1
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r11,pc}
+ .balign 4
+_020AA4A8: .word 0x021CA8D0
+_020AA4AC: .word 0x021CA8E8
+_020AA4B0: .word 0x020FF689
+_020AA4B4: .word 0x020FF688
+_020AA4B8: .word 0x021CA8B4
+_020AA4BC: .word 0x0000045C
+
+ arm_func_start FUN_020AA4C0
+FUN_020AA4C0: ; 0x020AA4C0
+ stmdb sp!, {r4-r8,lr}
+ sub sp, sp, #0x8
+ ldr r0, _020AA728 ; =0x021CAF00
+ ldr r1, _020AA72C ; =0x021CA8CC
+ ldr r3, [r0, #0x8c4]
+ ldr r2, [r0, #0x8c0]
+ ldr r5, [r1, #0x0]
+ sub r1, r3, r2
+ cmp r1, #0x1
+ subhi r1, r3, #0x1
+ strhi r1, [r0, #0x8c0]
+ movhi r1, #0x1
+ cmp r1, #0x0
+ addeq sp, sp, #0x8
+ moveq r0, #0x0
+ ldmeqia sp!, {r4-r8,pc}
+_020AA500: ; 0x020AA500
+ ldr r0, _020AA728 ; =0x021CAF00
+ ldr r0, [r0, #0x8c0]
+ ands r0, r0, #0x1
+ movne r1, #0x0
+ moveq r1, #0x460
+ ldr r0, _020AA728 ; =0x021CAF00
+ cmp r5, #0x2
+ add r8, r0, r1
+ ldr r1, _020AA730 ; =0x021CA8D4
+ add r7, r8, #0xc
+ addge r7, r7, #0x4
+ ldr r1, [r1, #0x0]
+ mov r0, r7
+ bl FUN_020AD500
+ ldr r2, _020AA734 ; =0x040002B0
+ mov r3, #0x0
+ ldr r1, _020AA738 ; =0x040002B8
+ mov r6, r0
+ strh r3, [r2, #0x0]
+ str r6, [r1, #0x0]
+_020AA550:
+ ldrh r0, [r2, #0x0]
+ ands r0, r0, #0x8000
+ bne _020AA550
+ ldr r0, _020AA73C ; =0x021CA8C8
+ ldr r1, _020AA740 ; =0x040002B4
+ ldr r0, [r0, #0x0]
+ ldr r4, [r1, #0x0]
+ cmp r0, #0x0
+ beq _020AA588
+ ldr r1, _020AA730 ; =0x021CA8D4
+ mov r0, r7
+ ldr r1, [r1, #0x0]
+ mov r2, r4
+ bl FUN_020AD1CC
+_020AA588:
+ ldr r0, _020AA744 ; =0x0210646C
+ strb r5, [r8, #0x5]
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ beq _020AA5FC
+ mov r0, r6
+ mov r1, r4
+ mov r2, #0x0
+ bl FUN_020ACF38
+ ldr r1, _020AA748 ; =0x021CA8D8
+ cmp r0, #0x0
+ str r0, [r1, #0x0]
+ beq _020AA5D4
+ cmp r0, #0x1
+ beq _020AA5F0
+ cmp r0, #0x3
+ moveq r0, #0x41
+ streqb r0, [r8, #0x4]
+ b _020AA5FC
+_020AA5D4:
+ ldr r1, _020AA728 ; =0x021CAF00
+ add sp, sp, #0x8
+ ldr r2, [r1, #0x8c0]
+ mov r0, #0x0
+ add r2, r2, #0x1
+ str r2, [r1, #0x8c0]
+ ldmia sp!, {r4-r8,pc}
+_020AA5F0:
+ ldrb r0, [r8, #0x5]
+ orr r0, r0, #0x80
+ strb r0, [r8, #0x5]
+_020AA5FC:
+ ldr r0, _020AA744 ; =0x0210646C
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ bne _020AA62C
+ ldr r0, _020AA74C ; =0x021CA8B8
+ ldr r1, [r0, #0x0]
+ cmp r1, #0x0
+ ldrneb r2, [r8, #0x5]
+ movne r1, #0x0
+ orrne r2, r2, #0x80
+ strneb r2, [r8, #0x5]
+ strne r1, [r0, #0x0]
+_020AA62C:
+ ldr r0, _020AA750 ; =0x021CA8C4
+ ldr r1, [r0, #0x0]
+ cmp r1, #0x0
+ ldrneb r2, [r8, #0x5]
+ movne r1, #0x0
+ orrne r2, r2, #0x80
+ strneb r2, [r8, #0x5]
+ strne r1, [r0, #0x0]
+ cmp r5, #0x2
+ blt _020AA690
+ ldrb r0, [r8, #0x5]
+ ldr r3, _020AA754 ; =0x021CA8C0
+ ands r0, r0, #0x80
+ ldrne r0, _020AA754 ; =0x021CA8C0
+ movne r1, #0x0
+ strneh r1, [r0, #0x0]
+ strneb r1, [r0, #0x2]
+ ldr r0, _020AA730 ; =0x021CA8D4
+ str r5, [sp, #0x0]
+ ldr r2, [r0, #0x0]
+ mov r1, r7
+ sub r0, r7, #0x4
+ mov r2, r2, lsr #0x1
+ bl FUN_020A8BC8
+ b _020AA6D4
+_020AA690:
+ cmp r5, #0x1
+ bne _020AA6B4
+ ldr r1, _020AA730 ; =0x021CA8D4
+ mov r0, r7
+ ldr r2, [r1, #0x0]
+ mov r1, r7
+ mov r2, r2, lsr #0x1
+ bl FUN_020AB37C
+ b _020AA6D4
+_020AA6B4:
+ cmp r5, #0x0
+ bne _020AA6D4
+ ldr r1, _020AA730 ; =0x021CA8D4
+ mov r0, r7
+ ldr r2, [r1, #0x0]
+ mov r1, r7
+ mov r2, r2, lsr #0x1
+ bl FUN_020AB2FC
+_020AA6D4:
+ ldr r0, _020AA758 ; =0x021CCD20
+ ldr r1, _020AA75C ; =0x021CA8B4
+ ldrb r0, [r0, #0x0]
+ mov r2, #0x1
+ ldr r3, [r1, #0x0]
+ mvn r0, r2, lsl r0
+ ldr r1, _020AA728 ; =0x021CAF00
+ and r0, r3, r0
+ str r3, [r1, #0x8cc]
+ str r0, [r1, #0x8cc]
+ bl MATH_CountPopulation
+ sub r0, r0, #0x1
+ ldr r1, _020AA728 ; =0x021CAF00
+ cmp r0, #0x7
+ str r0, [r1, #0x8d4]
+ movgt r0, #0x0
+ movle r2, #0x0
+ movle r0, r8
+ strle r2, [r1, #0x8d0]
+ add sp, sp, #0x8
+ ldmia sp!, {r4-r8,pc}
+ .balign 4
+_020AA728: .word 0x021CAF00
+_020AA72C: .word 0x021CA8CC
+_020AA730: .word 0x021CA8D4
+_020AA734: .word 0x040002B0
+_020AA738: .word 0x040002B8
+_020AA73C: .word 0x021CA8C8
+_020AA740: .word 0x040002B4
+_020AA744: .word 0x0210646C
+_020AA748: .word 0x021CA8D8
+_020AA74C: .word 0x021CA8B8
+_020AA750: .word 0x021CA8C4
+_020AA754: .word 0x021CA8C0
+_020AA758: .word 0x021CCD20
+_020AA75C: .word 0x021CA8B4
+
+ arm_func_start FUN_020AA760
+FUN_020AA760: ; 0x020AA760
+ ldr r1, _020AA76C ; =0x021CA8C8
+ str r0, [r1, #0x0]
+ bx lr
+ .balign 4
+_020AA76C: .word 0x021CA8C8
+
+ arm_func_start FUN_020AA770
+FUN_020AA770: ; 0x020AA770
+ stmdb sp!, {r4,lr}
+ ldr r1, _020AA798 ; =0x0210646C
+ mov r4, r0
+ str r4, [r1, #0x0]
+ bl FUN_020AD170
+_020AA784: ; 0x020AA784
+ cmp r4, #0x0
+ ldreq r0, _020AA79C ; =0x021CA8B8
+ moveq r1, #0x1
+ streq r1, [r0, #0x0]
+ ldmia sp!, {r4,pc}
+ .balign 4
+_020AA798: .word 0x0210646C
+_020AA79C: .word 0x021CA8B8
+
+ arm_func_start FUN_020AA7A0
+FUN_020AA7A0: ; 0x020AA7A0
+ cmp r0, #0x5
+ movge r0, #0x0
+ bxge lr
+ ldr r1, _020AA80C ; =0x021CCD20
+ ldr r1, [r1, #0x10]
+ cmp r1, #0x1
+ beq _020AA7C8
+ cmp r0, #0x1
+ movls r0, #0x0
+ bxls lr
+_020AA7C8:
+ ldr r2, _020AA810 ; =0x020FF689
+ ldr r1, _020AA814 ; =0x020FF688
+ ldrb r12, [r2, r0, lsl #0x1]
+ ldrb r3, [r1, r0, lsl #0x1]
+ mov r1, #0x44
+ ldr r2, _020AA818 ; =0x021CA8CC
+ mla r12, r3, r1, r12
+ str r0, [r2, #0x0]
+ ldr r1, _020AA81C ; =0x021CA8BC
+ add r3, r12, #0xc
+ ldr r0, _020AA820 ; =0x021CA8C0
+ mov r2, #0x0
+ str r3, [r1, #0x0]
+ strh r2, [r0, #0x0]
+ strb r2, [r0, #0x2]
+ mov r0, #0x1
+ bx lr
+ .balign 4
+_020AA80C: .word 0x021CCD20
+_020AA810: .word 0x020FF689
+_020AA814: .word 0x020FF688
+_020AA818: .word 0x021CA8CC
+_020AA81C: .word 0x021CA8BC
+_020AA820: .word 0x021CA8C0
+
+ arm_func_start FUN_020AA824
+FUN_020AA824: ; 0x020AA824
+ stmdb sp!, {r4-r10,lr}
+ movs r5, r2
+ mov r7, r0
+ movne r0, #0x0
+ strne r0, [r5, #0x0]
+ ldr r0, _020AA958 ; =0x021CA8D4
+ mov r6, r1
+ ldr r0, [r0, #0x0]
+ mov r4, #0x0
+ cmp r6, r0
+ bne _020AA920
+ ldr r8, _020AA95C ; =0x021CA8D0
+ ldr r0, [r8, #0x0]
+ cmp r0, #0x0
+ beq _020AA920
+ mov r9, r4
+ cmp r0, #0x0
+ bls _020AA89C
+_020AA86C:
+ mov r0, r7
+ mov r1, r6
+ mov r2, r9
+ mov r3, r5
+ bl FUN_020AA968
+ cmp r0, #0x1
+ moveq r4, #0x1
+ beq _020AA89C
+ ldr r0, [r8, #0x0]
+ add r9, r9, #0x1
+ cmp r9, r0
+ blo _020AA86C
+_020AA89C:
+ cmp r4, #0x0
+ beq _020AA90C
+ ldr r8, _020AA95C ; =0x021CA8D0
+ add r10, r9, #0x1
+ ldr r0, [r8, #0x0]
+ cmp r10, r0
+ moveq r4, #0x1
+ beq _020AA934
+ cmp r10, r0
+ bhs _020AA934
+ ldr sb, _020AA960 ; =0x021CAAA4
+_020AA8C8:
+ mov r0, r9
+ mov r1, r6
+ mov r2, r10
+ mov r3, r5
+ bl FUN_020AA968
+ cmp r0, #0x1
+ bne _020AA8F8
+ mov r0, r7
+ mov r1, r9
+ mov r2, r7
+ mov r3, r6
+ bl FUN_020AD61C
+_020AA8F8:
+ ldr r0, [r8, #0x0]
+ add r10, r10, #0x1
+ cmp r10, r0
+ blo _020AA8C8
+ b _020AA934
+_020AA90C:
+ mov r1, r7
+ mov r2, r6
+ mov r0, #0x0
+ bl MIi_CpuClearFast
+ b _020AA934
+_020AA920:
+ mov r1, r7
+ mov r2, r6
+ mov r0, #0x0
+ bl MIi_CpuClearFast
+ mov r4, #0x0
+_020AA934:
+ ldr r0, _020AA964 ; =0x021CA8C8
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ beq _020AA950
+ mov r0, r7
+ mov r1, r6
+ bl FUN_020AD45C
+_020AA950:
+ mov r0, r4
+ ldmia sp!, {r4-r10,pc}
+ .balign 4
+_020AA958: .word 0x021CA8D4
+_020AA95C: .word 0x021CA8D0
+_020AA960: .word 0x021CAAA4
+_020AA964: .word 0x021CA8C8
+
+ arm_func_start FUN_020AA968
+FUN_020AA968: ; 0x020AA968
+ stmdb sp!, {r4-r11,lr}
+ sub sp, sp, #0xc
+ ldr r4, _020AABD4 ; =0x021CA8E8
+ mov r10, r2
+ mov r2, #0x94
+ mla r6, r10, r2, r4
+ str r0, [sp, #0x0]
+ mov r0, r10
+ str r1, [sp, #0x4]
+ str r3, [sp, #0x8]
+ mov r5, #0x1
+ bl FUN_020AB434
+ movs r8, r0
+ beq _020AABB0
+ mov r11, #0x0
+_020AA9A4:
+ bl OS_GetTick
+ mov r4, r0
+ mov r0, r10
+ mov r9, r1
+ bl FUN_020AB4B8
+ movs r7, r0
+ beq _020AAB98
+ mov r0, #0x34
+ adds r2, r4, r0
+ ldr r8, [r7, #0x46c]
+ ldr r3, [r7, #0x470]
+ mov r1, #0x0
+ adc r0, r9, #0x0
+ cmp r3, r0
+ cmpeq r8, r2
+ bls _020AAA68
+ ldr r0, [r7, #0x45c]
+ cmp r0, #0x0
+ bne _020AAA5C
+ ldr r0, [r6, #0x3c]
+ cmp r0, #0x0
+ beq _020AAA5C
+ ldr r0, [r6, #0x20]
+ ldr r1, [sp, #0x0]
+ add r0, r0, #0x1
+ str r0, [r6, #0x20]
+ ldr r0, [r6, #0x3c]
+ ldr r2, [sp, #0x4]
+ ldr r0, [r0, #0x474]
+ bl MIi_CpuCopyFast
+ ldr r0, [r6, #0x3c]
+ bl FUN_020ACD90
+_020AAA24: ; 0x020AAA24
+ mov r0, #0x0
+ str r0, [r6, #0x3c]
+ ldr r0, [sp, #0x8]
+ cmp r0, #0x0
+ beq _020AAA50
+ ldrb r1, [r7, #0x10]
+ ldr r2, [r0, #0x0]
+ mov r0, #0x1
+ orr r1, r2, r0, lsl r1
+ ldr r0, [sp, #0x8]
+ str r1, [r0, #0x0]
+_020AAA50:
+ add sp, sp, #0xc
+ mov r0, #0x1
+ ldmia sp!, {r4-r11,pc}
+_020AAA5C:
+ add sp, sp, #0xc
+ mov r0, #0x0
+ ldmia sp!, {r4-r11,pc}
+_020AAA68:
+ ldr r0, _020AABD8 ; =0x00008B4C
+ adds r2, r8, r0
+ adc r0, r3, r1
+ cmp r9, r0
+ cmpeq r4, r2
+ bls _020AAAA8
+ ldr r2, [r7, #0x18]
+ mov r0, r6
+ mov r1, r7
+ str r2, [r6, #0x58]
+ bl FUN_020ABC0C
+ mov r8, r0
+ mov r0, r10
+ bl FUN_020AB4B8
+ mov r5, r11
+ b _020AABA8
+_020AAAA8:
+ ldr r1, [r6, #0x58]
+ ldr r2, [r7, #0x18]
+ add r0, r1, #0x1
+ cmp r0, r2
+ beq _020AAAE0
+ cmp r1, #0x0
+ beq _020AAAE0
+ cmp r1, r2
+ bhi _020AAAE0
+ ldr r0, [r7, #0x45c]
+ cmp r0, #0x0
+ ldreq r0, [r6, #0x14]
+ addeq r0, r0, #0x1
+ streq r0, [r6, #0x14]
+_020AAAE0:
+ ldr r0, [r7, #0x18]
+ cmp r5, #0x0
+ str r0, [r6, #0x58]
+ beq _020AAB24
+ ldr r0, [r6, #0x70]
+ cmp r0, #0x0
+ beq _020AAB24
+ mov r0, r6
+ mov r1, r7
+ bl FUN_020ABC0C
+ mov r8, r0
+ mov r0, r10
+ bl FUN_020AB4B8
+ ldr r0, [r6, #0x70]
+ sub r0, r0, #0x1
+ str r0, [r6, #0x70]
+ b _020AABA8
+_020AAB24:
+ ldr r1, [r7, #0x464]
+ ldr r0, [r6, #0x28]
+ subs r2, r4, r1
+ str r2, [r6, #0x28]
+ ldr r1, [r6, #0x28]
+ sub r0, r2, r0
+ sub r0, r0, r1
+ add r0, r1, r0, lsr #0x4
+ str r0, [r6, #0x2c]
+ str r0, [r6, #0x0]
+ ldr r0, [r7, #0x474]
+ ldr r1, [sp, #0x0]
+ ldr r2, [sp, #0x4]
+ bl MIi_CpuCopyFast
+ mov r0, r6
+ mov r1, r7
+ bl FUN_020ABC0C
+ ldr r0, [sp, #0x8]
+ cmp r0, #0x0
+ beq _020AAB8C
+ ldrb r1, [r7, #0x10]
+ ldr r2, [r0, #0x0]
+ mov r0, #0x1
+ orr r1, r2, r0, lsl r1
+ ldr r0, [sp, #0x8]
+ str r1, [r0, #0x0]
+_020AAB8C:
+ add sp, sp, #0xc
+ mov r0, #0x1
+ ldmia sp!, {r4-r11,pc}
+_020AAB98:
+ add sp, sp, #0xc
+ str r8, [r6, #0x8]
+ mov r0, #0x0
+ ldmia sp!, {r4-r11,pc}
+_020AABA8:
+ cmp r8, #0x0
+ bne _020AA9A4
+_020AABB0:
+ ldr r0, [r6, #0x3c]
+ cmp r0, #0x0
+ beq _020AABC8
+ bl FUN_020ACD90
+_020AABC0: ; 0x020AABC0
+ mov r0, #0x0
+ str r0, [r6, #0x3c]
+_020AABC8:
+ mov r0, #0x0
+ add sp, sp, #0xc
+ ldmia sp!, {r4-r11,pc}
+ .balign 4
+_020AABD4: .word 0x021CA8E8
+_020AABD8: .word 0x00008B4C
+
+ arm_func_start FUN_020AABDC
+FUN_020AABDC: ; 0x020AABDC
+ stmdb sp!, {r4,lr}
+ ldr r3, _020AACE0 ; =0x021CA8D4
+ mov r2, r1
+ ldr r1, [r3, #0x0]
+ mov r12, #0x0
+ cmp r2, r1
+ movne r0, r12
+ ldmneia sp!, {r4,pc}
+_020AABFC: ; 0x020AABFC
+ ldr r1, _020AACE4 ; =0x021CA8D0
+ ldr r4, [r1, #0x0]
+ cmp r4, #0x0
+ moveq r0, r12
+ ldmeqia sp!, {r4,pc}
+_020AAC10: ; 0x020AAC10
+ mov lr, r12
+ cmp r4, #0x0
+ bls _020AAC48
+ ldr r3, _020AACE8 ; =0x021CA8DC
+_020AAC20:
+ ldr r1, [r3, lr, lsl #0x2]
+ cmp r1, #0x0
+ beq _020AAC3C
+ ldr r1, [r1, #0xc]
+ cmp r1, #0x2
+ moveq r12, #0x1
+ beq _020AAC48
+_020AAC3C:
+ add lr, lr, #0x1
+ cmp lr, r4
+ blo _020AAC20
+_020AAC48:
+ cmp r12, #0x0
+ moveq r0, #0x0
+ ldmeqia sp!, {r4,pc}
+_020AAC54: ; 0x020AAC54
+ ldr r1, _020AACEC ; =0x021CAF00
+ ldr r4, _020AACEC ; =0x021CAF00
+ ldr r1, [r1, #0x8c4]
+ ldr r3, _020AACF0 ; =0x5F564354
+ ands r1, r1, #0x1
+ movne r12, #0x0
+ moveq r12, #0x460
+ str r3, [r4, r12]
+ ldr r1, _020AACF4 ; =0x021CA8CC
+ add r4, r4, r12
+ ldr r1, [r1, #0x0]
+ cmp r1, #0x2
+ blt _020AAC94
+ add r1, r4, #0x10
+ bl MIi_CpuCopyFast
+ b _020AAC9C
+_020AAC94:
+ add r1, r4, #0xc
+ bl MIi_CpuCopyFast
+_020AAC9C:
+ mov r1, #0x40
+ ldr r0, _020AACF8 ; =0x021CA8B0
+ strb r1, [r4, #0x4]
+ ldrh r2, [r0, #0x0]
+ add r1, r2, #0x1
+ strh r1, [r0, #0x0]
+ strh r2, [r4, #0x6]
+ bl OS_GetTick
+ mov r0, r0, lsr #0x6
+ orr r0, r0, r1, lsl #0x1a
+ ldr r1, _020AACEC ; =0x021CAF00
+ str r0, [r4, #0x8]
+ ldr r2, [r1, #0x8c4]
+ mov r0, #0x1
+ add r2, r2, #0x1
+ str r2, [r1, #0x8c4]
+ ldmia sp!, {r4,pc}
+ .balign 4
+_020AACE0: .word 0x021CA8D4
+_020AACE4: .word 0x021CA8D0
+_020AACE8: .word 0x021CA8DC
+_020AACEC: .word 0x021CAF00
+_020AACF0: .word 0x5F564354
+_020AACF4: .word 0x021CA8CC
+_020AACF8: .word 0x021CA8B0
+
+ arm_func_start FUN_020AACFC
+FUN_020AACFC: ; 0x020AACFC
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ mov r5, r0
+ mov r4, #0x0
+ ldr ip, _020AADB8 ; =0x021CA8DC
+_020AAD10:
+ ldr r0, [r12, r4, lsl #0x2]
+ mov lr, r4, lsl #0x2
+ cmp r0, r5
+ bne _020AAD74
+ ldr r1, _020AADBC ; =0x021CA8E8
+ mov r0, #0x94
+ mla r0, r4, r0, r1
+ ldr r1, _020AADC0 ; =0x021CA8D0
+ mov r3, #0x0
+ ldr r2, [r1, #0x0]
+ str r3, [r12, lr]
+ sub r2, r2, #0x1
+ str r2, [r1, #0x0]
+ bl FUN_020ABC40
+ mov r0, r4
+ bl FUN_020AB6C4
+ mov r0, r4
+ bl FUN_020AB234
+ ldr r0, _020AADC4 ; =0x021CA8B4
+ ldr r1, [r5, #0x8]
+ ldr r2, [r0, #0x0]
+ mvn r1, r1
+ and r1, r2, r1
+ str r1, [r0, #0x0]
+ b _020AAD80
+_020AAD74:
+ add r4, r4, #0x1
+ cmp r4, #0x3
+ blo _020AAD10
+_020AAD80:
+ ldr r0, _020AADC0 ; =0x021CA8D0
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ addne sp, sp, #0x4
+ ldmneia sp!, {r4-r5,pc}
+_020AAD94: ; 0x020AAD94
+ ldr r0, _020AADC8 ; =0x021CA8C4
+ mov r1, #0x1
+ str r1, [r0, #0x0]
+ bl FUN_020AD170
+ ldr r0, _020AADC4 ; =0x021CA8B4
+ mov r1, #0x0
+ str r1, [r0, #0x0]
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,pc}
+ .balign 4
+_020AADB8: .word 0x021CA8DC
+_020AADBC: .word 0x021CA8E8
+_020AADC0: .word 0x021CA8D0
+_020AADC4: .word 0x021CA8B4
+_020AADC8: .word 0x021CA8C4
+
+ arm_func_start FUN_020AADCC
+FUN_020AADCC: ; 0x020AADCC
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ movs r5, r0
+ addeq sp, sp, #0x4
+ moveq r0, #0x0
+ ldmeqia sp!, {r4-r5,pc}
+_020AADE4: ; 0x020AADE4
+ ldr r0, _020AAF24 ; =0x021CA8D0
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x3
+ addeq sp, sp, #0x4
+ moveq r0, #0x0
+ ldmeqia sp!, {r4-r5,pc}
+_020AADFC: ; 0x020AADFC
+ ldr r0, [r5, #0xc]
+ cmp r0, #0x2
+ beq _020AAE18
+ cmp r0, #0x3
+ addne sp, sp, #0x4
+ movne r0, #0x0
+ ldmneia sp!, {r4-r5,pc}
+_020AAE18:
+ ldr r1, _020AAF28 ; =0x021CA8DC
+ mov r2, #0x0
+_020AAE20:
+ ldr r0, [r1, r2, lsl #0x2]
+ cmp r0, r5
+ addeq sp, sp, #0x4
+ moveq r0, #0x1
+ ldmeqia sp!, {r4-r5,pc}
+_020AAE34: ; 0x020AAE34
+ add r2, r2, #0x1
+ cmp r2, #0x3
+ blo _020AAE20
+ ldr r1, _020AAF28 ; =0x021CA8DC
+ mov r4, #0x0
+_020AAE48:
+ ldr r0, [r1, r4, lsl #0x2]
+ mov r2, r4, lsl #0x2
+ cmp r0, #0x0
+ streq r5, [r1, r2]
+ beq _020AAE68
+ add r4, r4, #0x1
+ cmp r4, #0x3
+ blo _020AAE48
+_020AAE68:
+ ldr r0, _020AAF24 ; =0x021CA8D0
+ ldr r1, _020AAF2C ; =0x021CA8B4
+ ldr r3, [r0, #0x0]
+ ldr r2, _020AAF30 ; =0x021CA8E8
+ add r3, r3, #0x1
+ str r3, [r0, #0x0]
+ mov r0, #0x94
+ ldr r12, [r1, #0x0]
+ ldr r3, [r5, #0x8]
+ mla r0, r4, r0, r2
+ orr r2, r12, r3
+ str r2, [r1, #0x0]
+ ldrb r2, [r5, #0x5]
+ mov r1, r4
+ bl FUN_020ABC6C
+ mov r0, r4
+ bl FUN_020AB714
+ ldr r0, [r5, #0xc]
+ cmp r0, #0x2
+ addne sp, sp, #0x4
+ movne r0, #0x1
+ ldmneia sp!, {r4-r5,pc}
+_020AAEC0: ; 0x020AAEC0
+ ldr r0, _020AAF24 ; =0x021CA8D0
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x1
+ bne _020AAF18
+ bl FUN_020AD170
+ bl OS_GetTickLo
+ ldr r4, _020AAF34 ; =0x021CA8B0
+ ldr r3, _020AAF38 ; =0x021CA8C0
+ mov r12, #0x0
+ ldr r1, _020AAF3C ; =0x021CAF00
+ ldr r2, _020AAF40 ; =0x021CA8C4
+ mov r5, #0x1
+ strh r0, [r4, #0x0]
+ strh r12, [r3, #0x0]
+ strb r12, [r3, #0x2]
+ str r5, [r2, #0x0]
+ str r12, [r1, #0x8c0]
+ str r12, [r1, #0x8c4]
+ str r12, [r1, #0x8cc]
+ str r12, [r1, #0x8c8]
+ str r12, [r1, #0x8d0]
+ str r12, [r1, #0x8d4]
+_020AAF18:
+ mov r0, #0x1
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,pc}
+ .balign 4
+_020AAF24: .word 0x021CA8D0
+_020AAF28: .word 0x021CA8DC
+_020AAF2C: .word 0x021CA8B4
+_020AAF30: .word 0x021CA8E8
+_020AAF34: .word 0x021CA8B0
+_020AAF38: .word 0x021CA8C0
+_020AAF3C: .word 0x021CAF00
+_020AAF40: .word 0x021CA8C4
+
+ arm_func_start FUN_020AAF44
+FUN_020AAF44: ; 0x020AAF44
+ ldr r0, _020AAF54 ; =0x021CA8D0
+ mov r1, #0x0
+ str r1, [r0, #0x0]
+ bx lr
+ .balign 4
+_020AAF54: .word 0x021CA8D0
+
+ arm_func_start FUN_020AAF58
+FUN_020AAF58:
+ stmdb sp!, {r4-r8,lr}
+ bl OS_GetTickLo
+ ldr r1, _020AB054 ; =0x021CCD20
+ ldr ip, _020AB058 ; =0x021CA8B0
+ ldr r4, [r1, #0x10]
+ strh r0, [r12, #0x0]
+ cmp r4, #0x1
+ ldreq r0, _020AB05C ; =0x021CA8CC
+ mov r5, #0x0
+ ldr r1, _020AB060 ; =0x021CA8B4
+ streq r5, [r0, #0x0]
+ str r5, [r1, #0x0]
+ ldr r2, _020AB064 ; =0x021CA8D0
+ ldrne r0, _020AB05C ; =0x021CA8CC
+ movne r1, #0x4
+ strne r1, [r0, #0x0]
+ str r5, [r2, #0x0]
+ ldr r0, _020AB05C ; =0x021CA8CC
+ ldr r3, _020AB068 ; =0x0210646C
+ ldr r2, [r0, #0x0]
+ mov r6, #0x1
+ ldr r1, _020AB06C ; =0x020FF689
+ str r6, [r3, #0x0]
+ ldr r0, _020AB070 ; =0x020FF688
+ ldrb r3, [r1, r2, lsl #0x1]
+ ldrb r1, [r0, r2, lsl #0x1]
+ mov r0, #0x44
+ ldr r2, _020AB074 ; =0x021CA8D4
+ mla r0, r1, r0, r3
+ add r4, r0, #0xc
+ ldr r1, _020AB078 ; =0x021CA8BC
+ mov r5, #0x440
+ ldr r0, _020AB07C ; =0x021CAF00
+ mov r3, #0x0
+ str r5, [r2, #0x0]
+ str r4, [r1, #0x0]
+ str r3, [r0, #0x8c0]
+ str r3, [r0, #0x8c4]
+ str r3, [r0, #0x8cc]
+ str r3, [r0, #0x8c8]
+ str r3, [r0, #0x8d0]
+ str r3, [r0, #0x8d4]
+ bl FUN_020ACF10
+ mov r8, #0x0
+ ldr r7, _020AB080 ; =0x021CA8E8
+ ldr r5, _020AB084 ; =0x021CA8DC
+ mov r6, r8
+ mvn r4, #0x0
+_020AB018:
+ mov r0, r8
+ str r6, [r5, r8, lsl #0x2]
+ bl FUN_020AB714
+ mov r0, r7
+ mov r1, r8
+ mov r2, r4
+ bl FUN_020ABC6C
+ add r8, r8, #0x1
+ cmp r8, #0x3
+ add r7, r7, #0x94
+ blo _020AB018
+ bl FUN_020AB284
+ bl FUN_020AD474
+ mov r0, #0x1
+ ldmia sp!, {r4-r8,pc}
+ .balign 4
+_020AB054: .word 0x021CCD20
+_020AB058: .word 0x021CA8B0
+_020AB05C: .word 0x021CA8CC
+_020AB060: .word 0x021CA8B4
+_020AB064: .word 0x021CA8D0
+_020AB068: .word 0x0210646C
+_020AB06C: .word 0x020FF689
+_020AB070: .word 0x020FF688
+_020AB074: .word 0x021CA8D4
+_020AB078: .word 0x021CA8BC
+_020AB07C: .word 0x021CAF00
+_020AB080: .word 0x021CA8E8
+_020AB084: .word 0x021CA8DC
+
+ arm_func_start FUN_020AB088
+FUN_020AB088: ; 0x020AB088
+ ldr r2, [r0, #0x4]
+ cmp r2, #0x0
+ ldrne r1, [r0, #0x8]
+ strne r1, [r2, #0x8]
+ bne _020AB0B4
+ ldr r2, [r0, #0x8]
+ ldr r1, _020AB100 ; =0x021CB7D8
+ cmp r2, #0x0
+ str r2, [r1, #0x0]
+ movne r1, #0x0
+ strne r1, [r2, #0x4]
+_020AB0B4:
+ ldr r2, [r0, #0x8]
+ cmp r2, #0x0
+ ldrne r1, [r0, #0x4]
+ strne r1, [r2, #0x4]
+ bne _020AB0E0
+ ldr r2, [r0, #0x4]
+ ldr r1, _020AB104 ; =0x021CB7DC
+ cmp r2, #0x0
+ str r2, [r1, #0x0]
+ movne r1, #0x0
+ strne r1, [r2, #0x8]
+_020AB0E0:
+ ldrb r2, [r0, #0x11]
+ ldr r3, _020AB108 ; =0x021CB7E0
+ ldr r1, [r3, r2, lsl #0x2]
+ sub r1, r1, #0x1
+ str r1, [r3, r2, lsl #0x2]
+ ldrb r0, [r0, #0x11]
+ ldr r0, [r3, r0, lsl #0x2]
+ bx lr
+ .balign 4
+_020AB100: .word 0x021CB7D8
+_020AB104: .word 0x021CB7DC
+_020AB108: .word 0x021CB7E0
+
+ arm_func_start FUN_020AB10C
+FUN_020AB10C: ; 0x020AB10C
+ ldr r1, _020AB140 ; =0x021CB7D8
+ ldr r2, [r1, #0x0]
+ cmp r2, #0x0
+ beq _020AB138
+_020AB11C:
+ ldrb r1, [r2, #0x11]
+ cmp r1, r0
+ moveq r0, r2
+ bxeq lr
+ ldr r2, [r2, #0x8]
+ cmp r2, #0x0
+ bne _020AB11C
+_020AB138:
+ mov r0, #0x0
+ bx lr
+ .balign 4
+_020AB140: .word 0x021CB7D8
+
+ arm_func_start FUN_020AB144
+FUN_020AB144: ; 0x020AB144
+ ldr r1, _020AB150 ; =0x021CB7E0
+ ldr r0, [r1, r0, lsl #0x2]
+ bx lr
+ .balign 4
+_020AB150: .word 0x021CB7E0
+
+ arm_func_start FUN_020AB154
+FUN_020AB154:
+ ldr r0, _020AB160 ; =0x021CB7D8
+ ldr r0, [r0, #0x0]
+ bx lr
+ .balign 4
+_020AB160: .word 0x021CB7D8
+
+ arm_func_start FUN_020AB164
+FUN_020AB164: ; 0x020AB164
+ ldr r2, _020AB1D8 ; =0x021CB7D8
+ ldr r1, [r2, #0x0]
+ cmp r1, #0x0
+ bne _020AB198
+ str r0, [r2, #0x0]
+ mov r12, #0x0
+ str r12, [r0, #0x4]
+ ldr r3, [r2, #0x0]
+ ldr r1, _020AB1DC ; =0x021CB7DC
+ str r12, [r3, #0x8]
+ ldr r2, [r2, #0x0]
+ str r2, [r1, #0x0]
+ b _020AB1B8
+_020AB198:
+ ldr r1, _020AB1DC ; =0x021CB7DC
+ mov r2, #0x0
+ ldr r3, [r1, #0x0]
+ str r3, [r0, #0x4]
+ str r2, [r0, #0x8]
+ ldr r2, [r1, #0x0]
+ str r0, [r2, #0x8]
+ str r0, [r1, #0x0]
+_020AB1B8:
+ ldrb r2, [r0, #0x11]
+ ldr r3, _020AB1E0 ; =0x021CB7E0
+ ldr r1, [r3, r2, lsl #0x2]
+ add r1, r1, #0x1
+ str r1, [r3, r2, lsl #0x2]
+ ldrb r0, [r0, #0x11]
+ ldr r0, [r3, r0, lsl #0x2]
+ bx lr
+ .balign 4
+_020AB1D8: .word 0x021CB7D8
+_020AB1DC: .word 0x021CB7DC
+_020AB1E0: .word 0x021CB7E0
+
+ arm_func_start FUN_020AB1E4
+FUN_020AB1E4: ; 0x020AB1E4
+ stmdb sp!, {r4,lr}
+ ldr r0, _020AB22C ; =0x021CB7D8
+ ldr r4, [r0, #0x0]
+ cmp r4, #0x0
+ beq _020AB20C
+_020AB1F8:
+ mov r0, r4
+ ldr r4, [r4, #0x8]
+ bl FUN_020ACD90
+_020AB204: ; 0x020AB204
+ cmp r4, #0x0
+ bne _020AB1F8
+_020AB20C:
+ mov r2, #0x0
+ ldr r0, _020AB230 ; =0x021CB7E0
+ mov r1, r2
+_020AB218:
+ str r1, [r0, r2, lsl #0x2]
+ add r2, r2, #0x1
+ cmp r2, #0x3
+ blt _020AB218
+ ldmia sp!, {r4,pc}
+ .balign 4
+_020AB22C: .word 0x021CB7D8
+_020AB230: .word 0x021CB7E0
+
+ arm_func_start FUN_020AB234
+FUN_020AB234: ; 0x020AB234
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ mov r5, r0
+ bl FUN_020AB10C
+ movs r4, r0
+ beq _020AB26C
+_020AB24C:
+ mov r0, r4
+ bl FUN_020AB088
+ mov r0, r4
+ bl FUN_020ACD90
+ mov r0, r5
+ bl FUN_020AB10C
+ movs r4, r0
+ bne _020AB24C
+_020AB26C:
+ ldr r0, _020AB280 ; =0x021CB7E0
+ mov r1, #0x0
+ str r1, [r0, r5, lsl #0x2]
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,pc}
+ .balign 4
+_020AB280: .word 0x021CB7E0
+
+ arm_func_start FUN_020AB284
+FUN_020AB284: ; 0x020AB284
+ ldr r1, _020AB2B4 ; =0x021CB7DC
+ mov r2, #0x0
+ ldr r0, _020AB2B8 ; =0x021CB7D8
+ str r2, [r1, #0x0]
+ str r2, [r0, #0x0]
+ ldr r0, _020AB2BC ; =0x021CB7E0
+ mov r1, r2
+_020AB2A0:
+ str r1, [r0, r2, lsl #0x2]
+ add r2, r2, #0x1
+ cmp r2, #0x3
+ blt _020AB2A0
+ bx lr
+ .balign 4
+_020AB2B4: .word 0x021CB7DC
+_020AB2B8: .word 0x021CB7D8
+_020AB2BC: .word 0x021CB7E0
+
+ arm_func_start FUN_020AB2C0
+FUN_020AB2C0: ; 0x020AB2C0
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ cmp r2, #0x0
+ addls sp, sp, #0x4
+ mov lr, #0x0
+ ldmlsia sp!, {pc}
+_020AB2D8:
+ ldrsb r12, [r0, lr]
+ mov r3, lr, lsl #0x1
+ add lr, lr, #0x1
+ mov r12, r12, lsl #0x8
+ strh r12, [r1, r3]
+ cmp lr, r2
+ blo _020AB2D8
+ add sp, sp, #0x4
+ ldmia sp!, {pc}
+
+ arm_func_start FUN_020AB2FC
+FUN_020AB2FC: ; 0x020AB2FC
+ cmp r2, #0x0
+ mov r12, #0x0
+ bxls lr
+_020AB308:
+ mov r3, r12, lsl #0x1
+ ldrsh r3, [r1, r3]
+ mov r3, r3, asr #0x8
+ strb r3, [r0, r12]
+ add r12, r12, #0x1
+ cmp r12, r2
+ blo _020AB308
+ bx lr
+
+ arm_func_start FUN_020AB328
+FUN_020AB328: ; 0x020AB328
+ stmdb sp!, {r4,lr}
+ mov r4, #0x0
+ cmp r2, #0x0
+ ldmlsia sp!, {r4,pc}
+_020AB338:
+ ldrb r3, [r0, r4]
+ mvn lr, r3
+ and r3, lr, #0xf
+ mov r12, r3, lsl #0x3
+ and r3, lr, #0x70
+ add r12, r12, #0x84
+ mov r3, r3, asr #0x4
+ mov r12, r12, lsl r3
+ ands r3, lr, #0x80
+ rsbne r12, r12, #0x84
+ mov r3, r4, lsl #0x1
+ subeq r12, r12, #0x84
+ add r4, r4, #0x1
+ strh r12, [r1, r3]
+ cmp r4, r2
+ blo _020AB338
+ ldmia sp!, {r4,pc}
+
+ arm_func_start FUN_020AB37C
+FUN_020AB37C: ; 0x020AB37C
+ stmdb sp!, {r4-r11,lr}
+ sub sp, sp, #0x4
+ cmp r2, #0x0
+ mov r8, #0x0
+ addls sp, sp, #0x4
+ ldmlsia sp!, {r4-r11,pc}
+_020AB394: ; 0x020AB394
+ mov r12, r8
+ mov lr, #0xff
+ mov r4, #0x7f
+ mov r3, #0x8
+_020AB3A4:
+ mov r5, r8, lsl #0x1
+ ldrsh r5, [r1, r5]
+ ldr fp, _020AB42C ; =0x02106470
+ movs r7, r5, asr #0x2
+ movmi r6, r4
+ ldr r5, _020AB430 ; =0x00001FDF
+ rsbmi r7, r7, #0x0
+ movpl r6, lr
+ cmp r7, r5
+ movgt r7, r5
+ mov r5, r12
+ add r10, r7, #0x21
+_020AB3D4:
+ ldr r9, [r11], #0x4
+ cmp r10, r9
+ ble _020AB3F0
+ add r5, r5, #0x1
+ cmp r5, #0x8
+ blt _020AB3D4
+ mov r5, r3
+_020AB3F0:
+ cmp r5, #0x8
+ eorge r5, r6, #0x7f
+ bge _020AB414
+ add r9, r7, #0x21
+ add r7, r5, #0x1
+ mov r7, r9, asr r7
+ and r7, r7, #0xf
+ orr r5, r7, r5, lsl #0x4
+ eor r5, r5, r6
+_020AB414:
+ strb r5, [r0, r8]
+ add r8, r8, #0x1
+ cmp r8, r2
+ blo _020AB3A4
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r11,pc}
+ .balign 4
+_020AB42C: .word 0x02106470
+_020AB430: .word 0x00001FDF
+
+ arm_func_start FUN_020AB434
+FUN_020AB434: ; 0x020AB434
+ ldr r1, _020AB440 ; =0x021CB7FC
+ ldr r0, [r1, r0, lsl #0x2]
+ bx lr
+ .balign 4
+_020AB440: .word 0x021CB7FC
+
+ arm_func_start FUN_020AB444
+FUN_020AB444: ; 0x020AB444
+ stmdb sp!, {r4,lr}
+ mov r4, r0
+ bl OS_DisableInterrupts
+ ldr r3, _020AB4AC ; =0x021CB7F0
+ ldr r1, _020AB4B0 ; =0x021CB7EC
+ ldr r2, [r3, r4, lsl #0x2]
+ str r0, [r1, #0x0]
+ cmp r2, #0x0
+ mov r12, r4, lsl #0x2
+ beq _020AB494
+ ldr r1, _020AB4B4 ; =0x021CB7FC
+ ldr r2, [r2, #0x8]
+ ldr r0, [r1, r12]
+ sub r0, r0, #0x1
+ str r0, [r1, r12]
+ str r2, [r3, r12]
+ ldr r1, [r3, r12]
+ cmp r1, #0x0
+ movne r0, #0x0
+ strne r0, [r1, #0x4]
+_020AB494:
+ ldr r0, _020AB4B0 ; =0x021CB7EC
+ ldr r0, [r0, #0x0]
+ bl OS_RestoreInterrupts
+ ldr r0, _020AB4B4 ; =0x021CB7FC
+ ldr r0, [r0, r4, lsl #0x2]
+ ldmia sp!, {r4,pc}
+ .balign 4
+_020AB4AC: .word 0x021CB7F0
+_020AB4B0: .word 0x021CB7EC
+_020AB4B4: .word 0x021CB7FC
+
+ arm_func_start FUN_020AB4B8
+FUN_020AB4B8: ; 0x020AB4B8
+ stmdb sp!, {r4,lr}
+ mov r4, r0
+ bl OS_DisableInterrupts
+ ldr r2, _020AB4F8 ; =0x021CB7F0
+ ldr r1, _020AB4FC ; =0x021CB7EC
+ ldr r2, [r2, r4, lsl #0x2]
+ str r0, [r1, #0x0]
+ cmp r2, #0x0
+ beq _020AB4EC
+ bl OS_RestoreInterrupts
+ ldr r0, _020AB4F8 ; =0x021CB7F0
+ ldr r0, [r0, r4, lsl #0x2]
+ ldmia sp!, {r4,pc}
+_020AB4EC:
+ bl OS_RestoreInterrupts
+_020AB4F0: ; 0x020AB4F0
+ mov r0, #0x0
+ ldmia sp!, {r4,pc}
+ .balign 4
+_020AB4F8: .word 0x021CB7F0
+_020AB4FC: .word 0x021CB7EC
+
+ arm_func_start FUN_020AB500
+FUN_020AB500:
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ movs r5, r0
+ mov r4, r1
+ addeq sp, sp, #0x4
+ mvneq r0, #0x0
+ ldmeqia sp!, {r4-r5,pc}
+_020AB51C: ; 0x020AB51C
+ cmp r4, #0x3
+ addcs sp, sp, #0x4
+ mvncs r0, #0x0
+ ldmcsia sp!, {r4-r5,pc}
+_020AB52C: ; 0x020AB52C
+ bl OS_DisableInterrupts
+ ldr r3, _020AB620 ; =0x021CB7F0
+ ldr r1, _020AB624 ; =0x021CB7EC
+ ldr r2, [r3, r4, lsl #0x2]
+ str r0, [r1, #0x0]
+ cmp r2, #0x0
+ mov r12, r4, lsl #0x2
+ bne _020AB574
+ str r5, [r3, r12]
+ ldr r0, [r3, r12]
+ mov r2, #0x0
+ str r2, [r0, #0x4]
+ ldr r1, [r3, r12]
+ ldr r0, _020AB628 ; =0x021CB808
+ str r2, [r1, #0x8]
+ ldr r1, [r3, r12]
+ str r1, [r0, r12]
+ b _020AB5F4
+_020AB574:
+ ldr r0, _020AB628 ; =0x021CB808
+ ldr r3, [r0, r12]
+ cmp r3, #0x0
+ beq _020AB5D4
+ ldr r1, [r5, #0x18]
+_020AB588:
+ ldr r0, [r3, #0x18]
+ cmp r0, r1
+ bhs _020AB5C8
+ str r3, [r5, #0x4]
+ ldr r0, [r3, #0x8]
+ ldr r1, _020AB628 ; =0x021CB808
+ str r0, [r5, #0x8]
+ str r5, [r3, #0x8]
+ ldr r0, [r5, #0x8]
+ mov r2, r4, lsl #0x2
+ cmp r0, #0x0
+ strne r5, [r0, #0x4]
+ ldr r0, [r1, r4, lsl #0x2]
+ cmp r3, r0
+ streq r5, [r1, r2]
+ b _020AB5F4
+_020AB5C8:
+ ldr r3, [r3, #0x4]
+ cmp r3, #0x0
+ bne _020AB588
+_020AB5D4:
+ mov r0, #0x0
+ ldr r1, _020AB620 ; =0x021CB7F0
+ str r0, [r5, #0x4]
+ ldr r0, [r1, r4, lsl #0x2]
+ str r0, [r5, #0x8]
+ ldr r0, [r1, r4, lsl #0x2]
+ str r5, [r0, #0x4]
+ str r5, [r1, r4, lsl #0x2]
+_020AB5F4:
+ ldr r2, _020AB62C ; =0x021CB7FC
+ ldr r0, _020AB624 ; =0x021CB7EC
+ ldr r1, [r2, r4, lsl #0x2]
+ add r1, r1, #0x1
+ str r1, [r2, r4, lsl #0x2]
+ ldr r0, [r0, #0x0]
+ bl OS_RestoreInterrupts
+ ldr r0, _020AB62C ; =0x021CB7FC
+ ldr r0, [r0, r4, lsl #0x2]
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,pc}
+ .balign 4
+_020AB620: .word 0x021CB7F0
+_020AB624: .word 0x021CB7EC
+_020AB628: .word 0x021CB808
+_020AB62C: .word 0x021CB7FC
+
+ arm_func_start FUN_020AB630
+FUN_020AB630: ; 0x020AB630
+ stmdb sp!, {r4-r9,lr}
+ sub sp, sp, #0x4
+ bl OS_DisableInterrupts
+ mov r7, #0x0
+ ldr r1, _020AB6B8 ; =0x021CB7EC
+ mov r4, r7
+ mov r9, r7
+ str r0, [r1, #0x0]
+ ldr r5, _020AB6BC ; =0x021CB7F0
+ ldr r8, _020AB6C0 ; =0x021CB7FC
+ b _020AB69C
+_020AB65C:
+ ldr r0, [r5, r7, lsl #0x2]
+ mov r6, r7, lsl #0x2
+ cmp r0, #0x0
+ beq _020AB694
+_020AB66C:
+ ldr r0, [r5, r6]
+ ldr r1, [r0, #0x8]
+ str r1, [r5, r6]
+ ldr r1, [r5, r6]
+ cmp r1, #0x0
+ strne r4, [r1, #0x4]
+ bl FUN_020ACD90
+ ldr r0, [r5, r6]
+ cmp r0, #0x0
+ bne _020AB66C
+_020AB694:
+ str r9, [r8, r7, lsl #0x2]
+ add r7, r7, #0x1
+_020AB69C:
+ cmp r7, #0x3
+ blt _020AB65C
+ ldr r0, _020AB6B8 ; =0x021CB7EC
+ ldr r0, [r0, #0x0]
+ bl OS_RestoreInterrupts
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r9,pc}
+ .balign 4
+_020AB6B8: .word 0x021CB7EC
+_020AB6BC: .word 0x021CB7F0
+_020AB6C0: .word 0x021CB7FC
+
+ arm_func_start FUN_020AB6C4
+FUN_020AB6C4: ; 0x020AB6C4
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ mov r5, r0
+ bl FUN_020AB4B8
+ movs r4, r0
+ beq _020AB6FC
+_020AB6DC:
+ mov r0, r5
+ bl FUN_020AB444
+ mov r0, r4
+ bl FUN_020ACD90
+ mov r0, r5
+ bl FUN_020AB4B8
+ movs r4, r0
+ bne _020AB6DC
+_020AB6FC:
+ ldr r0, _020AB710 ; =0x021CB7FC
+ mov r1, #0x0
+ str r1, [r0, r5, lsl #0x2]
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,pc}
+ .balign 4
+_020AB710: .word 0x021CB7FC
+
+ arm_func_start FUN_020AB714
+FUN_020AB714: ; 0x020AB714
+ stmdb sp!, {r4,lr}
+ mov r4, r0
+ bl OS_DisableInterrupts
+ ldr r1, _020AB750 ; =0x021CB7EC
+ ldr r3, _020AB754 ; =0x021CB808
+ mov lr, #0x0
+ str lr, [r3, r4, lsl #0x2]
+ ldr r2, _020AB758 ; =0x021CB7FC
+ ldr r12, [r3, r4, lsl #0x2]
+ ldr r3, _020AB75C ; =0x021CB7F0
+ str r0, [r1, #0x0]
+ str r12, [r3, r4, lsl #0x2]
+ str lr, [r2, r4, lsl #0x2]
+ bl OS_RestoreInterrupts
+ ldmia sp!, {r4,pc}
+ .balign 4
+_020AB750: .word 0x021CB7EC
+_020AB754: .word 0x021CB808
+_020AB758: .word 0x021CB7FC
+_020AB75C: .word 0x021CB7F0
+
+ arm_func_start FUN_020AB760
+FUN_020AB760:
+ stmdb sp!, {r4-r8,lr}
+ mov r7, r0
+ ldr r2, [r7, #0x5c]
+ mov r6, r1
+ cmp r2, #0x0
+ mov r4, #0x0
+ beq _020AB790
+ ldr r1, [r6, #0x18]
+ mov r1, r1, lsl #0x10
+ mov r1, r1, lsr #0x10
+ bl FUN_020ABBEC
+ b _020AB820
+_020AB790:
+ ldr r2, [r6, #0x18]
+ mov r2, r2, lsl #0x10
+ mov r2, r2, lsr #0x10
+ bl FUN_020ABB1C
+_020AB7A0: ; 0x020AB7A0
+ cmp r0, #0x0
+ ldreq r1, [r7, #0x14]
+ moveq r0, r4
+ addeq r1, r1, #0x1
+ streq r1, [r7, #0x14]
+ ldmeqia sp!, {r4-r8,pc}
+_020AB7B8: ; 0x020AB7B8
+ ldr r0, [r6, #0x18]
+ str r0, [r7, #0x10]
+ ldr r2, [r6, #0x18]
+ ldr r1, [r7, #0x54]
+ cmp r1, r2
+ ldreq r1, [r7, #0x14]
+ moveq r0, r4
+ addeq r1, r1, #0x1
+ streq r1, [r7, #0x14]
+ ldmeqia sp!, {r4-r8,pc}
+_020AB7E0: ; 0x020AB7E0
+ add r0, r1, #0x1
+ cmp r0, r2
+ beq _020AB820
+ ldr r0, [r6, #0x45c]
+ cmp r0, #0x0
+ bne _020AB820
+ subs r0, r2, r1
+ rsbmi r0, r0, #0x0
+ cmp r0, #0x64
+ strgt r2, [r7, #0x54]
+ movgt r0, #0x0
+ ldmgtia sp!, {r4-r8,pc}
+_020AB810: ; 0x020AB810
+ cmp r1, r2
+ ldrhi r0, [r7, #0x1c]
+ addhi r0, r0, #0x1
+ strhi r0, [r7, #0x1c]
+_020AB820:
+ ldr r0, [r6, #0x18]
+ str r0, [r7, #0x54]
+ ldr r0, [r7, #0x4c]
+ cmp r0, #0x0
+ bne _020AB858
+ ldr r1, [r6, #0x460]
+ ldr r0, _020ABAF4 ; =0x00000464
+ str r1, [r7, #0x4c]
+ add r1, r6, r0
+ add r0, r7, #0x44
+ ldmia r1, {r2-r3}
+ stmia r0, {r2-r3}
+ mov r0, #0x0
+ str r0, [r7, #0x6c]
+_020AB858:
+ ldr r3, [r6, #0x460]
+ ldr r1, [r7, #0x4c]
+ ldr r2, [r6, #0x464]
+ ldr r0, [r7, #0x44]
+ sub r1, r3, r1
+ ldr r3, [r7, #0x80]
+ mov r1, r1, lsl #0x6
+ subs r0, r2, r0
+ subs r5, r1, r0
+ cmp r3, #0x0
+ mov r0, #0x0
+ beq _020AB894
+ ldr r2, [r6, #0x45c]
+ cmp r2, #0x0
+ beq _020AB89C
+_020AB894:
+ str r5, [r7, #0x80]
+ b _020AB918
+_020AB89C:
+ str r5, [r7, #0x80]
+ subs r2, r5, r3
+ ldr r8, [r7, #0x7c]
+ ldr r3, _020ABAF8 ; =0x00008B18
+ ldr ip, _020ABAFC ; =0x0000CC8D
+ add r3, r8, r3
+ mov r8, r3, lsl #0x1
+ rsbmi r2, r2, #0x0
+ mov r3, r8, asr #0x1f
+ adds r8, r8, r12
+ mov r12, r2, asr #0x1f
+ adc r3, r3, #0x0
+ cmp r12, r3
+ cmpeq r2, r8
+ bls _020AB8F4
+ ldr lr, _020ABB00 ; =0x75CA82CB
+ mov r3, r2, lsr #0x1f
+ smull r12, r8, lr, r2
+ mov r8, r8, asr #0xe
+ add r8, r3, r8
+ add r3, r8, #0x2
+ str r3, [r7, #0x84]
+_020AB8F4:
+ ldr r3, [r7, #0x84]
+ cmp r3, #0x0
+ bgt _020AB918
+ ldr r3, [r7, #0x7c]
+ sub r2, r2, r3
+ add r2, r3, r2, asr #0x4
+ str r2, [r7, #0x7c]
+ ldr r2, [r7, #0x7c]
+ str r2, [r7, #0x18]
+_020AB918:
+ ldr r3, [r7, #0x44]
+ ldr r12, [r7, #0x4]
+ ldr r2, [r7, #0x48]
+ adds r1, r1, r3
+ adc r0, r0, r2
+ adds r1, r12, r1
+ str r1, [r6, #0x46c]
+ adc r0, r0, #0x0
+ str r0, [r6, #0x470]
+ bl OS_GetTick
+ ldr r12, [r6, #0x46c]
+ ldr r2, _020ABAF8 ; =0x00008B18
+ ldr lr, [r6, #0x470]
+ adds r6, r12, r2
+ adc r3, lr, #0x0
+ cmp r3, r1
+ mov r3, #0x0
+ cmpeq r6, r0
+ movcc r0, r3
+ ldmccia sp!, {r4-r8,pc}
+_020AB968: ; 0x020AB968
+ ldr r6, _020ABB04 ; =0x0007FD88
+ adds r6, r0, r6
+ adc r0, r1, r3
+ cmp lr, r0
+ cmpeq r12, r6
+ movhi r0, r3
+ ldmhiia sp!, {r4-r8,pc}
+_020AB984: ; 0x020AB984
+ ldr r0, [r7, #0x84]
+ cmp r0, #0x0
+ bgt _020ABAE0
+ ldr r1, [r7, #0x7c]
+ mov r0, #0x3
+ mul lr, r1, r0
+ ldr r6, _020ABB00 ; =0x75CA82CB
+ ldr r12, [r7, #0x8c]
+ smull r1, r0, r6, lr
+ mov r0, r0, asr #0xe
+ mov r1, lr, lsr #0x1f
+ cmp lr, r12
+ add r0, r1, r0
+ bls _020AB9EC
+ ldr r1, _020ABB08 ; =0x000134DF
+ add r6, r0, #0x1
+ mla r12, r6, r2, r1
+ str r12, [r7, #0x8c]
+ mla r1, r0, r2, r1
+ ldr r2, [r7, #0x8c]
+ ldr r0, _020ABB0C ; =0xFFFF2F5C
+ add r0, r2, r0
+ str r0, [r7, #0x88]
+ str r1, [r7, #0x4]
+ str r3, [r7, #0x90]
+ b _020ABA50
+_020AB9EC:
+ ldr r1, [r7, #0x88]
+ cmp lr, r1
+ bge _020ABA50
+ ldr r1, [r7, #0x90]
+ add r1, r1, #0x1
+ str r1, [r7, #0x90]
+ ldr r1, [r7, #0x90]
+ cmp r1, #0x46
+ bls _020ABA50
+ ldr r1, _020ABB08 ; =0x000134DF
+ add r12, r0, #0x1
+ mla lr, r12, r2, r1
+ ldr r6, _020ABB10 ; =0xFFFFBA74
+ str lr, [r7, #0x8c]
+ mla r1, r0, r2, r6
+ str r1, [r7, #0x88]
+ ldr r1, [r7, #0x88]
+ ldr r2, _020ABB08 ; =0x000134DF
+ cmp r1, #0x0
+ ldr r1, _020ABAF8 ; =0x00008B18
+ strlt r3, [r7, #0x88]
+ mla r1, r0, r1, r2
+ mov r3, #0x0
+ str r1, [r7, #0x4]
+ str r3, [r7, #0x90]
+_020ABA50:
+ ldr r1, [r7, #0x4]
+ ldr r0, _020ABB14 ; =0x00068520
+ cmp r1, r0
+ strhi r0, [r7, #0x4]
+ ldr r0, [r7, #0x6c]
+ cmp r0, #0x10
+ addcc r0, r0, #0x1
+ strcc r0, [r7, #0x6c]
+ strcc r5, [r7, #0x74]
+ strcc r5, [r7, #0x78]
+ blo _020ABA98
+ ldr r1, [r7, #0x74]
+ mov r0, #0x1f
+ mla r2, r1, r0, r5
+ mov r0, r2, asr #0x4
+ add r0, r2, r0, lsr #0x1b
+ mov r0, r0, asr #0x5
+ str r0, [r7, #0x74]
+_020ABA98:
+ ldr r2, [r7, #0x78]
+ ldr r1, [r7, #0x74]
+ ldr r0, _020ABB18 ; =0x00008701
+ sub r1, r2, r1
+ str r1, [r7, #0xc]
+ ldr r1, [r7, #0xc]
+ cmp r1, r0
+ mvn r0, #0x8700
+ movgt r4, #0x1
+ cmp r1, r0
+ ldrlt r0, [r7, #0x70]
+ mvnlt r4, #0x0
+ addlt r0, r0, #0x1
+ strlt r0, [r7, #0x70]
+ cmp r4, #0x0
+ movne r0, #0x0
+ strne r0, [r7, #0x6c]
+ strne r0, [r7, #0x4c]
+_020ABAE0:
+ ldr r1, [r7, #0x84]
+ mov r0, #0x1
+ sub r1, r1, #0x1
+ str r1, [r7, #0x84]
+ ldmia sp!, {r4-r8,pc}
+ .balign 4
+_020ABAF4: .word 0x00000464
+_020ABAF8: .word 0x00008B18
+_020ABAFC: .word 0x0000CC8D
+_020ABB00: .word 0x75CA82CB
+_020ABB04: .word 0x0007FD88
+_020ABB08: .word 0x000134DF
+_020ABB0C: .word 0xFFFF2F5C
+_020ABB10: .word 0xFFFFBA74
+_020ABB14: .word 0x00068520
+_020ABB18: .word 0x00008701
+
+ arm_func_start FUN_020ABB1C
+FUN_020ABB1C:
+ stmdb sp!, {r4-r6,lr}
+ mov r6, r0
+ ldrh r12, [r6, #0x68]
+ mov r4, r2
+ ldr r3, _020ABBE4 ; =0x00000BB8
+ sub r2, r4, r12
+ mov r2, r2, lsl #0x10
+ mov r2, r2, lsr #0x10
+ mov r5, r1
+ cmp r2, r3
+ bhs _020ABB60
+ cmp r4, r12
+ ldrcc r0, [r6, #0x60]
+ addcc r0, r0, #0x10000
+ strcc r0, [r6, #0x60]
+ strh r4, [r6, #0x68]
+ b _020ABBD0
+_020ABB60:
+ ldr r1, _020ABBE8 ; =0x0000FF9C
+ cmp r2, r1
+ bhi _020ABBAC
+ ldr r1, [r6, #0x64]
+ cmp r4, r1
+ bne _020ABB94
+ mov r1, r4
+ bl FUN_020ABBEC
+ sub r0, r4, #0x1
+ mov r0, r0, lsl #0x10
+ mov r0, r0, lsr #0x10
+ str r0, [r6, #0x54]
+ b _020ABBD0
+_020ABB94:
+ add r0, r4, #0x1
+ mov r0, r0, lsl #0x10
+ mov r0, r0, lsr #0x10
+ str r0, [r6, #0x64]
+ mov r0, #0x0
+ ldmia sp!, {r4-r6,pc}
+_020ABBAC:
+ ldr r2, [r6, #0x60]
+ ldr r0, [r6, #0x54]
+ add r2, r4, r2
+ add r0, r0, r1
+ cmp r2, r0
+ subhi r0, r2, #0x10000
+ strhi r0, [r5, #0x18]
+ movhi r0, #0x1
+ ldmhiia sp!, {r4-r6,pc}
+_020ABBD0:
+ ldr r1, [r6, #0x60]
+ mov r0, #0x1
+ add r1, r4, r1
+ str r1, [r5, #0x18]
+ ldmia sp!, {r4-r6,pc}
+ .balign 4
+_020ABBE4: .word 0x00000BB8
+_020ABBE8: .word 0x0000FF9C
+
+ arm_func_start FUN_020ABBEC
+FUN_020ABBEC: ; 0x020ABBEC
+ ldr r2, _020ABC08 ; =0x00010001
+ strh r1, [r0, #0x68]
+ str r2, [r0, #0x64]
+ mov r1, #0x0
+ str r1, [r0, #0x60]
+ str r1, [r0, #0x5c]
+ bx lr
+ .balign 4
+_020ABC08: .word 0x00010001
+
+ arm_func_start FUN_020ABC0C
+FUN_020ABC0C: ; 0x020ABC0C
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ mov r5, r0
+ ldr r0, [r5, #0x3c]
+ mov r4, r1
+ cmp r0, #0x0
+ beq _020ABC2C
+ bl FUN_020ACD90
+_020ABC2C:
+ str r4, [r5, #0x3c]
+ ldr r0, [r5, #0x34]
+ bl FUN_020AB444
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,pc}
+
+ arm_func_start FUN_020ABC40
+FUN_020ABC40: ; 0x020ABC40
+ stmdb sp!, {r4,lr}
+ mov r4, r0
+ ldr r0, [r4, #0x3c]
+ cmp r0, #0x0
+ beq _020ABC60
+ bl FUN_020ACD90
+_020ABC58: ; 0x020ABC58
+ mov r0, #0x0
+ str r0, [r4, #0x3c]
+_020ABC60:
+ mvn r0, #0x0
+ str r0, [r4, #0x38]
+ ldmia sp!, {r4,pc}
+
+ arm_func_start FUN_020ABC6C
+FUN_020ABC6C: ; 0x020ABC6C
+ stmdb sp!, {r4-r6,lr}
+ mov r5, r1
+ mov r4, r2
+ mov r1, #0x0
+ mov r2, #0x28
+ mov r6, r0
+ bl MI_CpuFill8
+ ldr r0, _020ABCF4 ; =0x000134DF
+ mov r1, #0x0
+ str r0, [r6, #0x4]
+ str r1, [r6, #0x28]
+ str r1, [r6, #0x2c]
+ str r5, [r6, #0x34]
+ str r4, [r6, #0x38]
+ str r1, [r6, #0x7c]
+ str r1, [r6, #0x80]
+ str r1, [r6, #0x84]
+ str r1, [r6, #0x88]
+ str r0, [r6, #0x8c]
+ str r1, [r6, #0x90]
+ str r1, [r6, #0x4c]
+ str r1, [r6, #0x44]
+ str r1, [r6, #0x48]
+ str r1, [r6, #0x6c]
+ str r1, [r6, #0x70]
+ str r1, [r6, #0x50]
+ str r1, [r6, #0x54]
+ str r1, [r6, #0x58]
+ mov r0, #0x1
+ str r0, [r6, #0x5c]
+ str r1, [r6, #0x3c]
+ str r1, [r6, #0x40]
+ str r1, [r6, #0x30]
+ ldmia sp!, {r4-r6,pc}
+ .balign 4
+_020ABCF4: .word 0x000134DF
+
+ arm_func_start FUN_020ABCF8
+FUN_020ABCF8: ; 0x020ABCF8
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldr r3, _020ABE34 ; =0x021CCD20
+ ldr r2, [r3, #0x10]
+ cmp r2, #0x2
+ addne sp, sp, #0x4
+ movne r0, #0x0
+ ldmneia sp!, {pc}
+ ldrb r12, [r3, #0x1]
+ ldrb r2, [r0, #0x8]
+ cmp r12, r2
+ addne sp, sp, #0x4
+ movne r0, #0x0
+ ldmneia sp!, {pc}
+ ldrb r2, [r0, #0xa]
+ cmp r2, #0x0
+ beq _020ABD48
+ cmp r2, #0x1
+ beq _020ABDA4
+ b _020ABE1C
+_020ABD48:
+ ldr r0, _020ABE38 ; =0x021CB824
+ ldr r2, [r0, #0x2c]
+ cmp r2, #0x0
+ addeq sp, sp, #0x4
+ moveq r0, #0x0
+ ldmeqia sp!, {pc}
+ ldr r0, [r0, #0x38]
+ cmp r0, #0x5
+ beq _020ABD74
+ cmp r0, #0x2
+ bne _020ABD80
+_020ABD74:
+ mov r0, #0x9
+ str r0, [r1, #0x0]
+ b _020ABD88
+_020ABD80:
+ mov r0, #0x5
+ str r0, [r1, #0x0]
+_020ABD88:
+ ldr r0, _020ABE38 ; =0x021CB824
+ mov r3, #0x0
+ ldr r2, _020ABE3C ; =0x021CB850
+ str r3, [r0, #0x2c]
+ str r3, [r0, #0x38]
+ str r2, [r1, #0x4]
+ b _020ABE28
+_020ABDA4:
+ ldr r2, _020ABE38 ; =0x021CB824
+ mov lr, #0x2
+ str lr, [r2, #0x2c]
+ ldrb r12, [r0, #0xb]
+ ldrb r3, [r3, #0x0]
+ cmp r12, r3
+ bne _020ABDD8
+ str lr, [r2, #0x38]
+ mov r3, #0x7
+ str r3, [r1, #0x0]
+ ldr r3, [r0, #0xc]
+ str r3, [r2, #0x34]
+ b _020ABE04
+_020ABDD8:
+ mov r3, #0x3
+ str r3, [r2, #0x38]
+ mov r2, #0x6
+ str r2, [r1, #0x0]
+ ldrb r3, [r0, #0xb]
+ cmp r3, #0x0
+ movne r2, #0x1
+ movne r3, r2, lsl r3
+ ldr r2, _020ABE38 ; =0x021CB824
+ moveq r3, #0x1
+ str r3, [r2, #0x34]
+_020ABE04:
+ ldrb r3, [r0, #0xb]
+ ldr r0, _020ABE38 ; =0x021CB824
+ ldr r2, _020ABE3C ; =0x021CB850
+ strb r3, [r0, #0x31]
+ str r2, [r1, #0x4]
+ b _020ABE28
+_020ABE1C:
+ add sp, sp, #0x4
+ mov r0, #0x0
+ ldmia sp!, {pc}
+_020ABE28:
+ mov r0, #0x1
+ add sp, sp, #0x4
+ ldmia sp!, {pc}
+ .balign 4
+_020ABE34: .word 0x021CCD20
+_020ABE38: .word 0x021CB824
+_020ABE3C: .word 0x021CB850
+
+ arm_func_start FUN_020ABE40
+FUN_020ABE40: ; 0x020ABE40
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ mov r5, r0
+ ldrb r0, [r5, #0x4]
+ mov r4, r1
+ cmp r0, #0xff
+ bne _020ABE70
+ ldrb r0, [r5, #0x6]
+ cmp r0, #0x4
+ addeq sp, sp, #0x4
+ moveq r0, #0x0
+ ldmeqia sp!, {r4-r5,pc}
+_020ABE70:
+ ldrb r0, [r5, #0x8]
+ bl FUN_020AC1E8
+_020ABE78: ; 0x020ABE78
+ cmp r0, #0x0
+ beq _020ABEA4
+ mov r1, #0x2
+ str r1, [r4, #0x0]
+ str r0, [r4, #0x4]
+ mov r2, #0x0
+ str r2, [r0, #0x0]
+ bl FUN_020AC708
+ add sp, sp, #0x4
+ mov r0, #0x1
+ ldmia sp!, {r4-r5,pc}
+_020ABEA4:
+ ldrb r1, [r5, #0x8]
+ ldr r0, _020ABEC8 ; =0x021CB838
+ bl FUN_020AC5A4
+ ldr r0, _020ABEC8 ; =0x021CB838
+ mov r1, #0x2
+ bl FUN_020AC708
+_020ABEBC: ; 0x020ABEBC
+ mov r0, #0x0
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,pc}
+ .balign 4
+_020ABEC8: .word 0x021CB838
+
+ arm_func_start FUN_020ABECC
+FUN_020ABECC: ; 0x020ABECC
+ stmdb sp!, {r4-r6,lr}
+ ldr r2, _020AC070 ; =0x021CB824
+ mov r6, r0
+ ldr r0, [r2, #0x2c]
+ mov r5, r1
+ cmp r0, #0x2
+ bne _020ABF84
+ ldrb r1, [r2, #0x30]
+ ldrb r0, [r6, #0x8]
+ cmp r1, r0
+ bne _020ABF74
+ ldr r0, _020AC074 ; =0x021CB850
+ mov r1, r6
+ bl FUN_020AC350
+ mov r4, r0
+ mvn r0, #0x2
+ cmp r4, r0
+ beq _020ABF48
+ mvn r0, #0x1
+ cmp r4, r0
+ beq _020ABF30
+ mvn r0, #0x0
+ cmp r4, r0
+ beq _020ABF48
+ b _020ABF50
+_020ABF30:
+ mov r0, #0xc
+ str r0, [r5, #0x0]
+ mov r0, #0x0
+ str r0, [r5, #0x4]
+ mov r0, #0x1
+ ldmia sp!, {r4-r6,pc}
+_020ABF48:
+ mov r0, #0x0
+ ldmia sp!, {r4-r6,pc}
+_020ABF50:
+ ldr r1, _020AC074 ; =0x021CB850
+ mov r0, r6
+ bl FUN_020AC4A0
+ ldr r1, _020AC074 ; =0x021CB850
+ str r0, [r5, #0x0]
+ str r1, [r5, #0x4]
+ ldr r0, [r5, #0x4]
+ str r4, [r0, #0xc]
+ b _020AC028
+_020ABF74:
+ mov r0, #0x1
+ bl FUN_020AC5E8
+_020ABF7C: ; 0x020ABF7C
+ mov r0, #0x0
+ ldmia sp!, {r4-r6,pc}
+_020ABF84:
+ ldrb r12, [r6, #0x8]
+ cmp r12, #0x0
+ movne r0, #0x1
+ movne r1, r0, lsl r12
+ ldr r0, _020AC078 ; =0x021CB818
+ moveq r1, #0x1
+ ldr r0, [r0, #0x0]
+ ands r0, r0, r1
+ moveq r0, #0x0
+ ldmeqia sp!, {r4-r6,pc}
+_020ABFAC: ; 0x020ABFAC
+ ldr r2, _020AC070 ; =0x021CB824
+ mov r4, #0x2
+ mov r3, #0x0
+ ldr r0, _020AC074 ; =0x021CB850
+ mov r1, r6
+ strb r12, [r2, #0x30]
+ str r4, [r2, #0x2c]
+ str r3, [r2, #0x38]
+ bl FUN_020AC350
+ mov r4, r0
+ mvn r0, #0x2
+ cmp r4, r0
+ beq _020ABFF8
+ mvn r0, #0x1
+ cmp r4, r0
+ beq _020ABFF8
+ mvn r0, #0x0
+ cmp r4, r0
+ bne _020AC008
+_020ABFF8:
+ ldr r1, _020AC070 ; =0x021CB824
+ mov r0, #0x0
+ str r0, [r1, #0x2c]
+ ldmia sp!, {r4-r6,pc}
+_020AC008:
+ ldr r1, _020AC074 ; =0x021CB850
+ mov r0, r6
+ bl FUN_020AC4A0
+ ldr r1, _020AC074 ; =0x021CB850
+ str r0, [r5, #0x0]
+ str r1, [r5, #0x4]
+ ldr r0, [r5, #0x4]
+ str r4, [r0, #0xc]
+_020AC028:
+ ldr r0, [r5, #0x0]
+ cmp r0, #0xa
+ bne _020AC050
+ mov r0, #0x1
+ bl FUN_020AC5E8
+ bl OS_GetTick
+ ldr r2, _020AC07C ; =0x021CB81C
+ str r0, [r2, #0x0]
+ str r1, [r2, #0x4]
+ b _020AC068
+_020AC050:
+ mov r0, #0x0
+ bl FUN_020AC5E8
+ ldr r0, _020AC07C ; =0x021CB81C
+ mov r1, #0x0
+ str r1, [r0, #0x0]
+ str r1, [r0, #0x4]
+_020AC068:
+ mov r0, #0x1
+ ldmia sp!, {r4-r6,pc}
+ .balign 4
+_020AC070: .word 0x021CB824
+_020AC074: .word 0x021CB850
+_020AC078: .word 0x021CB818
+_020AC07C: .word 0x021CB81C
+
+ arm_func_start FUN_020AC080
+FUN_020AC080: ; 0x020AC080
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0x4
+ mov r6, r0
+ ldrb r2, [r6, #0x4]
+ mov r5, r1
+ cmp r2, #0xff
+ bne _020AC0C4
+ ldrb r2, [r6, #0x6]
+ cmp r2, #0x4
+ bne _020AC0B4
+ bl FUN_020ABCF8
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r7,pc}
+_020AC0B4:
+ cmp r2, #0x3
+ addeq sp, sp, #0x4
+ moveq r0, #0x0
+ ldmeqia sp!, {r4-r7,pc}
+_020AC0C4:
+ ldrb r0, [r6, #0x8]
+ bl FUN_020AC1E8
+ movs r4, r0
+ beq _020AC154
+ mov r1, r6
+ bl FUN_020AC350
+ mov r7, r0
+ mvn r0, #0x1
+ cmp r7, r0
+ beq _020AC104
+ mvn r0, #0x0
+ cmp r7, r0
+ bne _020AC124
+ add sp, sp, #0x4
+ mov r0, #0x0
+ ldmia sp!, {r4-r7,pc}
+_020AC104:
+ mov r0, #0xc
+ str r0, [r5, #0x0]
+ mov r0, #0x0
+ str r0, [r4, #0x0]
+ add sp, sp, #0x4
+ str r4, [r5, #0x4]
+ mov r0, #0x1
+ ldmia sp!, {r4-r7,pc}
+_020AC124:
+ mov r0, r6
+ mov r1, r4
+ bl FUN_020AC4A0
+_020AC130: ; 0x020AC130
+ str r0, [r5, #0x0]
+ str r4, [r5, #0x4]
+ str r7, [r4, #0xc]
+ ldr r0, [r5, #0x0]
+ add sp, sp, #0x4
+ cmp r0, #0x0
+ movne r0, #0x1
+ moveq r0, #0x0
+ ldmia sp!, {r4-r7,pc}
+_020AC154:
+ ldrb r0, [r6, #0x8]
+ bl FUN_020AC790
+ movs r7, r0
+ bne _020AC188
+ ldrb r1, [r6, #0x8]
+ ldr r0, _020AC1E4 ; =0x021CB838
+ bl FUN_020AC5A4
+ ldr r0, _020AC1E4 ; =0x021CB838
+ mov r1, #0x3
+ bl FUN_020AC708
+ add sp, sp, #0x4
+ mov r0, #0x0
+ ldmia sp!, {r4-r7,pc}
+_020AC188:
+ mov r1, r6
+ bl FUN_020AC350
+ mov r4, r0
+ add r0, r4, #0x2
+ cmp r0, #0x1
+ bhi _020AC1B4
+ mov r0, r7
+ bl FUN_020ACC84
+ add sp, sp, #0x4
+ mov r0, #0x0
+ ldmia sp!, {r4-r7,pc}
+_020AC1B4:
+ mov r0, r6
+ mov r1, r7
+ bl FUN_020AC4A0
+_020AC1C0: ; 0x020AC1C0
+ str r0, [r5, #0x0]
+ str r7, [r5, #0x4]
+ str r4, [r7, #0xc]
+ ldr r0, [r5, #0x0]
+ cmp r0, #0x0
+ movne r0, #0x1
+ moveq r0, #0x0
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r7,pc}
+ .balign 4
+_020AC1E4: .word 0x021CB838
+
+ arm_func_start FUN_020AC1E8
+FUN_020AC1E8:
+ ldr r1, _020AC25C ; =0x021CCD20
+ ldr r2, _020AC260 ; =0x021CB824
+ ldr r1, [r1, #0x10]
+ ldr r3, [r2, #0x4]
+ cmp r1, #0x2
+ bne _020AC224
+ ldr r1, [r2, #0x2c]
+ cmp r1, #0x0
+ beq _020AC21C
+ ldrb r1, [r2, #0x30]
+ cmp r1, r0
+ ldreq r0, _020AC264 ; =0x021CB850
+ bxeq lr
+_020AC21C:
+ mov r0, #0x0
+ bx lr
+_020AC224:
+ cmp r3, #0x0
+ beq _020AC254
+_020AC22C:
+ ldr r1, [r3, #0x0]
+ cmp r1, #0x0
+ beq _020AC248
+ ldrb r1, [r3, #0x4]
+ cmp r1, r0
+ moveq r0, r3
+ bxeq lr
+_020AC248:
+ ldr r3, [r3, #0x14]
+ cmp r3, #0x0
+ bne _020AC22C
+_020AC254:
+ mov r0, #0x0
+ bx lr
+ .balign 4
+_020AC25C: .word 0x021CCD20
+_020AC260: .word 0x021CB824
+_020AC264: .word 0x021CB850
+
+ arm_func_start FUN_020AC268
+FUN_020AC268:
+ ldrb r2, [r1, #0x4]
+ ldrb r12, [r1, #0x6]
+ cmp r2, #0x0
+ addeq r12, r12, #0x5
+ cmp r12, #0x0
+ blt _020AC288
+ cmp r12, #0xb
+ blt _020AC28C
+_020AC288:
+ mvn r12, #0x0
+_020AC28C:
+ cmp r12, #0x0
+ mvnlt r0, #0x0
+ bxlt lr
+ ldr r1, _020AC2F8 ; =0x021CCD20
+ ldr r1, [r1, #0x10]
+ cmp r1, #0x1
+ ldrne r3, [r0, #0xc]
+ ldrne r2, _020AC2FC ; =0x020FF788
+ movne r1, #0xb
+ mlane r1, r3, r1, r2
+ ldrnesb r2, [r12, r1]
+ bne _020AC2D0
+ ldr r3, [r0, #0xc]
+ ldr r2, _020AC300 ; =0x020FF744
+ mov r1, #0xb
+ mla r1, r3, r1, r2
+ ldrsb r2, [r12, r1]
+_020AC2D0:
+ mvn r1, #0x0
+ cmp r2, r1
+ moveq r0, #0x1
+ bxeq lr
+ mvn r1, #0x1
+ cmp r2, r1
+ moveq r0, #0x0
+ strne r2, [r0, #0xc]
+ movne r0, #0x1
+ bx lr
+ .balign 4
+_020AC2F8: .word 0x021CCD20
+_020AC2FC: .word 0x020FF788
+_020AC300: .word 0x020FF744
+
+ arm_func_start FUN_020AC304
+FUN_020AC304:
+ ldr r1, _020AC34C ; =0x021CB824
+ ldr r2, [r1, #0x4]
+ cmp r2, #0x0
+ beq _020AC344
+_020AC314:
+ ldr r1, [r2, #0x0]
+ cmp r1, #0x0
+ beq _020AC338
+ ldr r1, [r2, #0xc]
+ cmp r1, #0x2
+ bne _020AC338
+ cmp r0, r2
+ movne r0, #0x0
+ bxne lr
+_020AC338:
+ ldr r2, [r2, #0x14]
+ cmp r2, #0x0
+ bne _020AC314
+_020AC344:
+ mov r0, #0x1
+ bx lr
+ .balign 4
+_020AC34C: .word 0x021CB824
+
+ arm_func_start FUN_020AC350
+FUN_020AC350: ; 0x020AC350
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ ldrb r2, [r1, #0x4]
+ ldrb r3, [r1, #0x6]
+ mov r4, r0
+ cmp r2, #0x0
+ addeq r3, r3, #0x5
+ cmp r3, #0x0
+ blt _020AC37C
+ cmp r3, #0xb
+ blt _020AC380
+_020AC37C:
+ mvn r3, #0x0
+_020AC380:
+ cmp r3, #0x0
+ addlt sp, sp, #0x4
+ mvnlt r0, #0x0
+ ldmltia sp!, {r4-r5,pc}
+_020AC390: ; 0x020AC390
+ ldr r0, _020AC44C ; =0x021CCD20
+ ldr r0, [r0, #0x10]
+ cmp r0, #0x1
+ ldrne r2, [r4, #0xc]
+ ldrne r1, _020AC450 ; =0x020FF700
+ movne r0, #0xb
+ mlane r0, r2, r0, r1
+ ldrnesb r5, [r3, r0]
+ bne _020AC3C8
+ ldr r2, [r4, #0xc]
+ ldr r1, _020AC454 ; =0x020FF6BC
+ mov r0, #0xb
+ mla r0, r2, r0, r1
+ ldrsb r5, [r3, r0]
+_020AC3C8:
+ mvn r0, #0x2
+ cmp r5, r0
+ beq _020AC41C
+ mvn r0, #0x1
+ cmp r5, r0
+ beq _020AC3F8
+ mvn r0, #0x0
+ cmp r5, r0
+ bne _020AC440
+ add sp, sp, #0x4
+ mov r0, r5
+ ldmia sp!, {r4-r5,pc}
+_020AC3F8:
+ mov r0, r4
+ mov r1, #0x1
+ bl FUN_020AC708
+ mov r1, #0x0
+ str r1, [r4, #0xc]
+ add sp, sp, #0x4
+ mov r0, r5
+ str r1, [r4, #0x0]
+ ldmia sp!, {r4-r5,pc}
+_020AC41C:
+ mov r0, r4
+ mov r1, #0x3
+ bl FUN_020AC708
+ mov r1, #0x0
+ str r1, [r4, #0xc]
+ add sp, sp, #0x4
+ mov r0, r5
+ str r1, [r4, #0x0]
+ ldmia sp!, {r4-r5,pc}
+_020AC440:
+ mov r0, r5
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,pc}
+ .balign 4
+_020AC44C: .word 0x021CCD20
+_020AC450: .word 0x020FF700
+_020AC454: .word 0x020FF6BC
+
+ arm_func_start FUN_020AC458
+FUN_020AC458:
+ ldr ip, _020AC498 ; =0x5F564354
+ mov r3, #0x10
+ str r12, [r1, #0x0]
+ strb r3, [r1, #0x5]
+ ldr r3, _020AC49C ; =0x021CCD20
+ strb r2, [r1, #0x6]
+ ldrb r2, [r3, #0x0]
+ strb r2, [r1, #0x8]
+ ldrb r2, [r0, #0x4]
+ mov r0, #0x0
+ strb r2, [r1, #0x9]
+ strb r0, [r1, #0xa]
+ ldrb r2, [r3, #0x0]
+ strb r2, [r1, #0xb]
+ str r0, [r1, #0xc]
+ bx lr
+ .balign 4
+_020AC498: .word 0x5F564354
+_020AC49C: .word 0x021CCD20
+
+ arm_func_start FUN_020AC4A0
+FUN_020AC4A0:
+ ldrb r2, [r0, #0xb]
+ strb r2, [r1, #0x5]
+ ldrb r2, [r0, #0x4]
+ cmp r2, #0xff
+ bne _020AC4E8
+ ldrb r2, [r0, #0x6]
+ cmp r2, #0x0
+ bne _020AC4D8
+ ldrb r3, [r1, #0x4]
+ cmp r3, #0x0
+ movne r2, #0x1
+ movne r2, r2, lsl r3
+ moveq r2, #0x1
+ str r2, [r1, #0x8]
+_020AC4D8:
+ ldrb r1, [r0, #0x6]
+ ldr r0, _020AC54C ; =0x020FF6AC
+ ldrb r0, [r0, r1]
+ bx lr
+_020AC4E8:
+ cmp r2, #0x0
+ bne _020AC544
+ ldrb r2, [r0, #0x6]
+ cmp r2, #0x0
+ bne _020AC538
+ ldr r0, [r1, #0xc]
+ cmp r0, #0x1
+ bne _020AC528
+ ldrb r2, [r1, #0x4]
+ cmp r2, #0x0
+ movne r0, #0x1
+ movne r0, r0, lsl r2
+ moveq r0, #0x1
+ str r0, [r1, #0x8]
+ mov r0, #0x7
+ bx lr
+_020AC528:
+ cmp r0, #0x5
+ moveq r0, #0x9
+ movne r0, #0xc
+ bx lr
+_020AC538:
+ ldr r0, _020AC550 ; =0x020FF6B4
+ ldrb r0, [r0, r2]
+ bx lr
+_020AC544:
+ mov r0, #0xc
+ bx lr
+ .balign 4
+_020AC54C: .word 0x020FF6AC
+_020AC550: .word 0x020FF6B4
+
+ arm_func_start FUN_020AC554
+FUN_020AC554:
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldrb r2, [r1, #0x4]
+ cmp r2, #0xff
+ bne _020AC57C
+ ldrb r2, [r1, #0x6]
+ cmp r2, #0x4
+ bne _020AC57C
+ bl FUN_020AC628
+ b _020AC598
+_020AC57C:
+ ldrb r0, [r0, #0x4]
+ mov r2, #0x10
+ bl FUN_021EB044
+_020AC588: ; 0x020AC588
+ cmp r0, #0x0
+ addeq sp, sp, #0x4
+ moveq r0, #0x0
+ ldmeqia sp!, {pc}
+_020AC598:
+ mov r0, #0x1
+ add sp, sp, #0x4
+ ldmia sp!, {pc}
+
+ arm_func_start FUN_020AC5A4
+FUN_020AC5A4: ; 0x020AC5A4
+ mov r12, r0
+ mov r3, #0x6
+ mov r2, #0x0
+_020AC5B0:
+ strb r2, [r12], #0x1
+ strb r2, [r12], #0x1
+ strb r2, [r12], #0x1
+ strb r2, [r12], #0x1
+ subs r3, r3, #0x1
+ bne _020AC5B0
+ ldr r2, _020AC5E4 ; =0x021CCD20
+ mov r3, #0x0
+ ldr r2, [r2, #0x10]
+ str r2, [r0, #0x0]
+ str r3, [r0, #0xc]
+ strb r1, [r0, #0x4]
+ bx lr
+ .balign 4
+_020AC5E4: .word 0x021CCD20
+
+ arm_func_start FUN_020AC5E8
+FUN_020AC5E8:
+ stmdb sp!, {r4,lr}
+ sub sp, sp, #0x10
+ mov r4, r0
+ mov r3, #0xff
+ ldr r0, _020AC624 ; =0x021CB850
+ add r1, sp, #0x0
+ mov r2, #0x4
+ strb r3, [sp, #0x4]
+ bl FUN_020AC458
+ ldr r0, _020AC624 ; =0x021CB850
+ add r1, sp, #0x0
+ strb r4, [sp, #0xa]
+ bl FUN_020AC628
+ add sp, sp, #0x10
+ ldmia sp!, {r4,pc}
+ .balign 4
+_020AC624: .word 0x021CB850
+
+ arm_func_start FUN_020AC628
+FUN_020AC628: ; 0x020AC628
+ stmdb sp!, {r4-r11,lr}
+ sub sp, sp, #0x4
+ mov r11, r0
+ mov r10, r1
+ mov r9, #0x0
+ bl FUN_020AC6E4
+ ldr r4, _020AC6DC ; =0x021CCD20
+ ldr r5, _020AC6E0 ; =0x021CB818
+ mov r8, r9
+ mov r7, #0x1
+ mov r6, #0x10
+_020AC654:
+ cmp r8, #0x0
+ movne r1, r7, lsl r8
+ ldr r0, [r5, #0x0]
+ moveq r1, r7
+ ands r0, r0, r1
+ beq _020AC694
+ ldrb r0, [r4, #0x0]
+ cmp r8, r0
+ beq _020AC694
+ mov r0, r8
+ mov r1, r10
+ mov r2, r6
+ strb r8, [r10, #0x9]
+ bl FUN_021EB044
+_020AC68C: ; 0x020AC68C
+ cmp r0, #0x0
+ addne r9, r9, #0x1
+_020AC694:
+ add r0, r8, #0x1
+ and r8, r0, #0xff
+ cmp r8, #0x20
+ blo _020AC654
+ ldrb r0, [r10, #0xa]
+ cmp r0, #0x1
+ ldreq r0, _020AC6E0 ; =0x021CB818
+ ldreq r0, [r0, #0x0]
+ streq r0, [r11, #0x8]
+ beq _020AC6C8
+ cmp r0, #0x0
+ moveq r0, #0x0
+ streq r0, [r11, #0x8]
+_020AC6C8:
+ cmp r9, #0x0
+ mvneq r0, #0x3
+ movne r0, #0x0
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r11,pc}
+ .balign 4
+_020AC6DC: .word 0x021CCD20
+_020AC6E0: .word 0x021CB818
+
+ arm_func_start FUN_020AC6E4
+FUN_020AC6E4: ; 0x020AC6E4
+ ldrb r2, [r1, #0xa]
+ cmp r2, #0x1
+ ldreqb r2, [r0, #0x4]
+ ldreq r0, _020AC704 ; =0x021CB818
+ streqb r2, [r1, #0xb]
+ ldreq r0, [r0, #0x0]
+ streq r0, [r1, #0xc]
+ bx lr
+ .balign 4
+_020AC704: .word 0x021CB818
+
+ arm_func_start FUN_020AC708
+FUN_020AC708:
+ stmdb sp!, {r4,lr}
+ sub sp, sp, #0x10
+ add r2, sp, #0x0
+ mov r3, #0x10
+ mov r4, r0
+ bl FUN_020ACAE0
+_020AC720: ; 0x020AC720
+ cmp r0, #0x0
+ addne sp, sp, #0x10
+ ldmneia sp!, {r4,pc}
+_020AC72C: ; 0x020AC72C
+ add r1, sp, #0x0
+ mov r0, r4
+ bl FUN_020AC554
+_020AC738: ; 0x020AC738
+ cmp r0, #0x0
+ movne r0, #0x0
+ mvneq r0, #0x3
+ add sp, sp, #0x10
+ ldmia sp!, {r4,pc}
+
+ arm_func_start FUN_020AC74C
+FUN_020AC74C: ; 0x020AC74C
+ stmdb sp!, {r4,lr}
+ sub sp, sp, #0x10
+ add r2, sp, #0x0
+ mov r3, #0x10
+ mov r4, r0
+ bl FUN_020ACBD0
+_020AC764: ; 0x020AC764
+ cmp r0, #0x0
+ addne sp, sp, #0x10
+ ldmneia sp!, {r4,pc}
+_020AC770: ; 0x020AC770
+ add r1, sp, #0x0
+ mov r0, r4
+ bl FUN_020AC554
+_020AC77C: ; 0x020AC77C
+ cmp r0, #0x0
+ movne r0, #0x0
+ mvneq r0, #0x3
+ add sp, sp, #0x10
+ ldmia sp!, {r4,pc}
+
+ arm_func_start FUN_020AC790
+FUN_020AC790: ; 0x020AC790
+ stmdb sp!, {r4,lr}
+ mov r1, r0
+ cmp r1, #0x20
+ movcs r0, #0x0
+ ldmcsia sp!, {r4,pc}
+_020AC7A4: ; 0x020AC7A4
+ ldr r0, _020AC7F4 ; =0x021CCD20
+ ldrb r0, [r0, #0x0]
+ cmp r1, r0
+ moveq r0, #0x0
+ ldmeqia sp!, {r4,pc}
+_020AC7B8: ; 0x020AC7B8
+ ldr r2, _020AC7F8 ; =0x021CB824
+ ldr r4, [r2, #0x0]
+ cmp r4, #0x0
+ moveq r0, #0x0
+ ldmeqia sp!, {r4,pc}
+_020AC7CC: ; 0x020AC7CC
+ ldr r3, [r4, #0x14]
+ mov r0, r4
+ str r3, [r2, #0x0]
+ bl FUN_020AC5A4
+ ldr r1, _020AC7F8 ; =0x021CB824
+ mov r0, r4
+ ldr r2, [r1, #0x4]
+ str r2, [r4, #0x14]
+ str r4, [r1, #0x4]
+ ldmia sp!, {r4,pc}
+ .balign 4
+_020AC7F4: .word 0x021CCD20
+_020AC7F8: .word 0x021CB824
+
+ arm_func_start FUN_020AC7FC
+FUN_020AC7FC:
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ cmp r2, #0x10
+ addne sp, sp, #0x4
+ movne r0, #0x0
+ ldmneia sp!, {pc}
+ ldrb r2, [r1, #0x8]
+ cmp r2, r0
+ bne _020AC834
+ ldr r0, _020AC894 ; =0x021CCD20
+ ldrb r12, [r1, #0x9]
+ ldrb r2, [r0, #0x0]
+ cmp r12, r2
+ beq _020AC840
+_020AC834:
+ add sp, sp, #0x4
+ mov r0, #0x0
+ ldmia sp!, {pc}
+_020AC840:
+ ldrb r2, [r1, #0x5]
+ cmp r2, #0x10
+ beq _020AC860
+ mov r0, r1
+ mov r1, r3
+ bl FUN_020ABE40
+ add sp, sp, #0x4
+ ldmia sp!, {pc}
+_020AC860:
+ ldr r0, [r0, #0xc]
+ cmp r0, #0x0
+ bne _020AC880
+ mov r0, r1
+ mov r1, r3
+ bl FUN_020AC080
+ add sp, sp, #0x4
+ ldmia sp!, {pc}
+_020AC880:
+ mov r0, r1
+ mov r1, r3
+ bl FUN_020ABECC
+ add sp, sp, #0x4
+ ldmia sp!, {pc}
+ .balign 4
+_020AC894: .word 0x021CCD20
+
+ arm_func_start FUN_020AC898
+FUN_020AC898: ; 0x020AC898
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ bl OS_GetTick
+ ldr r2, _020AC950 ; =0x021CCD20
+ ldr r3, [r2, #0x10]
+ cmp r3, #0x2
+ addne sp, sp, #0x4
+ ldmneia sp!, {r4-r5,pc}
+_020AC8B8: ; 0x020AC8B8
+ ldr r2, [r2, #0xc]
+ cmp r2, #0x0
+ addeq sp, sp, #0x4
+ ldmeqia sp!, {r4-r5,pc}
+_020AC8C8: ; 0x020AC8C8
+ ldr r3, _020AC954 ; =0x021CB81C
+ mov r12, #0x0
+ ldr r5, [r3, #0x4]
+ ldr r4, [r3, #0x0]
+ cmp r5, r12
+ cmpeq r4, r12
+ addeq sp, sp, #0x4
+ ldmeqia sp!, {r4-r5,pc}
+_020AC8E8: ; 0x020AC8E8
+ ldr r2, _020AC958 ; =0x02106490
+ subs r4, r0, r4
+ ldr lr, [r2, #0x0]
+ ldr r0, [r2, #0x4]
+ sbc r1, r1, r5
+ cmp r1, r0
+ cmpeq r4, lr
+ addls sp, sp, #0x4
+ ldmlsia sp!, {r4-r5,pc}
+_020AC90C: ; 0x020AC90C
+ ldr r1, _020AC95C ; =0x021CB824
+ mov r0, r12
+ str r12, [r3, #0x0]
+ str r12, [r3, #0x4]
+ str r12, [r1, #0x2c]
+ str r12, [r1, #0x38]
+ bl FUN_020AC5E8
+ ldr r1, _020AC950 ; =0x021CCD20
+ ldr r0, _020AC95C ; =0x021CB824
+ ldr r3, [r1, #0x8]
+ ldrb r0, [r0, #0x30]
+ ldr r12, [r1, #0x4]
+ ldr r2, _020AC960 ; =0x021CB850
+ mov r1, #0x9
+ blx r12
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,pc}
+ .balign 4
+_020AC950: .word 0x021CCD20
+_020AC954: .word 0x021CB81C
+_020AC958: .word 0x02106490
+_020AC95C: .word 0x021CB824
+_020AC960: .word 0x021CB850
+
+ arm_func_start FUN_020AC964
+FUN_020AC964: ; 0x020AC964
+ ldr r0, _020AC978 ; =0x021CB824
+ mov r1, #0x0
+ str r1, [r0, #0x4]
+ str r1, [r0, #0x0]
+ bx lr
+ .balign 4
+_020AC978: .word 0x021CB824
+
+ arm_func_start FUN_020AC97C
+FUN_020AC97C:
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ mov r4, r0
+ ldr r0, [r4, #0x0]
+ cmp r0, #0x0
+ beq _020AC9A8
+ ldr r1, [r4, #0x4]
+ cmp r1, #0x0
+ beq _020AC9A8
+ cmp r1, #0x8
+ bls _020AC9B4
+_020AC9A8:
+ add sp, sp, #0x4
+ mov r0, #0x0
+ ldmia sp!, {r4-r5,pc}
+_020AC9B4:
+ ldr r1, _020ACA8C ; =0x021CB824
+ mov r2, #0x18
+ str r0, [r1, #0x0]
+ ldr r3, [r4, #0x4]
+ mov r1, #0x0
+ mul r2, r3, r2
+ bl MI_CpuFill8
+ ldr r0, _020ACA90 ; =0x021CB850
+ mov r1, #0x0
+ mov r2, #0x18
+ bl MI_CpuFill8
+ ldr r0, _020ACA94 ; =0x021CB838
+ mov r1, #0x0
+ mov r2, #0x18
+ bl MI_CpuFill8
+ ldr r12, [r4, #0x4]
+ mov lr, #0x0
+ subs r0, r12, #0x1
+ beq _020ACA34
+ ldr r1, _020ACA8C ; =0x021CB824
+ mov r5, lr
+ mov r0, #0x18
+_020ACA0C:
+ ldr r2, [r1, #0x0]
+ add lr, lr, #0x1
+ mla r3, lr, r0, r2
+ add r2, r2, r5
+ str r3, [r2, #0x14]
+ ldr r12, [r4, #0x4]
+ add r5, r5, #0x18
+ sub r2, r12, #0x1
+ cmp lr, r2
+ blo _020ACA0C
+_020ACA34:
+ ldr r3, _020ACA8C ; =0x021CB824
+ mov r0, #0x18
+ ldr r1, [r3, #0x0]
+ mov r5, #0x0
+ mla r0, r12, r0, r1
+ str r5, [r0, #-0x4]
+ ldr r2, _020ACA98 ; =0x021CB818
+ ldr r1, _020ACA9C ; =0x021CB814
+ ldr r0, _020ACAA0 ; =0x021CCD20
+ ldr lr, _020ACAA4 ; =OS_GetTick
+ ldr ip, _020ACAA8 ; =0x5D588B65
+ ldr r4, _020ACAAC ; =0x00269EC3
+ str r5, [r3, #0x4]
+ str r5, [r2, #0x0]
+ str r5, [r1, #0x0]
+ str r5, [r0, #0x14]
+ str lr, [r3, #0x8]
+ str r12, [r3, #0xc]
+ str r4, [r3, #0x10]
+ mov r0, #0x1
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,pc}
+ .balign 4
+_020ACA8C: .word 0x021CB824
+_020ACA90: .word 0x021CB850
+_020ACA94: .word 0x021CB838
+_020ACA98: .word 0x021CB818
+_020ACA9C: .word 0x021CB814
+_020ACAA0: .word 0x021CCD20
+_020ACAA4: .word OS_GetTick
+_020ACAA8: .word 0x5D588B65
+_020ACAAC: .word 0x00269EC3
+
+ arm_func_start FUN_020ACAB0
+FUN_020ACAB0: ; 0x020ACAB0
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldr r2, _020ACADC ; =0x021CCD20
+ ldr r2, [r2, #0x10]
+ cmp r2, #0x2
+ addeq sp, sp, #0x4
+ mvneq r0, #0x2
+ ldmeqia sp!, {pc}
+ bl FUN_020AC708
+ add sp, sp, #0x4
+ ldmia sp!, {pc}
+ .balign 4
+_020ACADC: .word 0x021CCD20
+
+ arm_func_start FUN_020ACAE0
+FUN_020ACAE0:
+ stmdb sp!, {r4-r6,lr}
+ movs r5, r0
+ mov r6, r1
+ mov r4, r2
+ mvneq r0, #0x0
+ ldmeqia sp!, {r4-r6,pc}
+_020ACAF8: ; 0x020ACAF8
+ cmp r3, #0x10
+ mvncc r0, #0x0
+ ldmccia sp!, {r4-r6,pc}
+_020ACB04: ; 0x020ACB04
+ cmp r6, #0x0
+ blt _020ACB14
+ cmp r6, #0x6
+ blt _020ACB1C
+_020ACB14:
+ mvn r0, #0x2
+ ldmia sp!, {r4-r6,pc}
+_020ACB1C:
+ mov r3, #0x0
+ mov r1, r4
+ and r2, r6, #0xff
+ strb r3, [r4, #0x4]
+ bl FUN_020AC458
+_020ACB30: ; 0x020ACB30
+ cmp r6, #0x0
+ bne _020ACB80
+ ldr r0, _020ACB9C ; =0x021CCD20
+ ldr r0, [r0, #0x10]
+ cmp r0, #0x1
+ bne _020ACB68
+ ldr r0, [r5, #0xc]
+ cmp r0, #0x4
+ bne _020ACB68
+ mov r0, r5
+ bl FUN_020AC304
+_020ACB5C: ; 0x020ACB5C
+ cmp r0, #0x0
+ mvneq r0, #0x2
+ ldmeqia sp!, {r4-r6,pc}
+_020ACB68:
+ ldrb r1, [r5, #0x4]
+ cmp r1, #0x0
+ movne r0, #0x1
+ movne r0, r0, lsl r1
+ moveq r0, #0x1
+ str r0, [r5, #0x8]
+_020ACB80:
+ mov r0, r5
+ mov r1, r4
+ bl FUN_020AC268
+_020ACB8C: ; 0x020ACB8C
+ cmp r0, #0x0
+ mvneq r0, #0x2
+ movne r0, #0x0
+ ldmia sp!, {r4-r6,pc}
+ .balign 4
+_020ACB9C: .word 0x021CCD20
+
+ arm_func_start FUN_020ACBA0
+FUN_020ACBA0: ; 0x020ACBA0
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldr r2, _020ACBCC ; =0x021CCD20
+ ldr r2, [r2, #0x10]
+ cmp r2, #0x2
+ addeq sp, sp, #0x4
+ mvneq r0, #0x2
+ ldmeqia sp!, {pc}
+ bl FUN_020AC74C
+ add sp, sp, #0x4
+ ldmia sp!, {pc}
+ .balign 4
+_020ACBCC: .word 0x021CCD20
+
+ arm_func_start FUN_020ACBD0
+FUN_020ACBD0:
+ stmdb sp!, {r4-r6,lr}
+ movs r5, r0
+ mov r4, r1
+ mov r6, r2
+ mvneq r0, #0x0
+ ldmeqia sp!, {r4-r6,pc}
+_020ACBE8: ; 0x020ACBE8
+ cmp r3, #0x10
+ mvncc r0, #0x0
+ ldmccia sp!, {r4-r6,pc}
+_020ACBF4: ; 0x020ACBF4
+ ldr r1, _020ACC80 ; =0x021CCD20
+ ldr r1, [r1, #0xc]
+ cmp r1, #0x1
+ mvneq r0, #0x2
+ ldmeqia sp!, {r4-r6,pc}
+_020ACC08: ; 0x020ACC08
+ cmp r4, #0x0
+ blt _020ACC18
+ cmp r4, #0x5
+ blt _020ACC20
+_020ACC18:
+ mvn r0, #0x2
+ ldmia sp!, {r4-r6,pc}
+_020ACC20:
+ mov r3, #0xff
+ mov r1, r6
+ and r2, r4, #0xff
+ strb r3, [r6, #0x4]
+ bl FUN_020AC458
+ mov r0, r5
+ mov r1, r6
+ bl FUN_020AC268
+_020ACC40: ; 0x020ACC40
+ cmp r0, #0x0
+ mvneq r0, #0x2
+ ldmeqia sp!, {r4-r6,pc}
+_020ACC4C: ; 0x020ACC4C
+ ldr r0, _020ACC80 ; =0x021CCD20
+ ldr r0, [r0, #0x10]
+ cmp r0, #0x1
+ bne _020ACC78
+ cmp r4, #0x0
+ bne _020ACC78
+ mov r0, r5
+ bl FUN_020AC304
+_020ACC6C: ; 0x020ACC6C
+ cmp r0, #0x0
+ mvneq r0, #0x2
+ ldmeqia sp!, {r4-r6,pc}
+_020ACC78:
+ mov r0, #0x0
+ ldmia sp!, {r4-r6,pc}
+ .balign 4
+_020ACC80: .word 0x021CCD20
+
+ arm_func_start FUN_020ACC84
+FUN_020ACC84: ; 0x020ACC84
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldr r2, _020ACD48 ; =0x021CB824
+ cmp r0, #0x0
+ mov lr, #0x0
+ addeq sp, sp, #0x4
+ ldr r12, [r2, #0x4]
+ moveq r0, lr
+ ldmeqia sp!, {pc}
+ ldr r1, _020ACD4C ; =0x021CCD20
+ ldr r1, [r1, #0x10]
+ cmp r1, #0x2
+ bne _020ACCD0
+ ldr r1, _020ACD50 ; =0x021CB850
+ add sp, sp, #0x4
+ cmp r0, r1
+ streq lr, [r2, #0x2c]
+ mov r0, #0x1
+ ldmia sp!, {pc}
+_020ACCD0:
+ cmp r12, #0x0
+ beq _020ACD3C
+_020ACCD8:
+ cmp r12, r0
+ bne _020ACD2C
+ mov r3, #0x0
+ str r3, [r0, #0x0]
+ cmp lr, #0x0
+ ldrne r1, [r0, #0x14]
+ strne r1, [lr, #0x14]
+ bne _020ACD10
+ ldr r2, [r12, #0x14]
+ cmp r2, #0x0
+ ldrne r1, _020ACD48 ; =0x021CB824
+ strne r2, [r1, #0x4]
+ ldreq r1, _020ACD48 ; =0x021CB824
+ streq r3, [r1, #0x4]
+_020ACD10:
+ ldr r1, _020ACD48 ; =0x021CB824
+ add sp, sp, #0x4
+ ldr r2, [r1, #0x0]
+ str r2, [r0, #0x14]
+ str r0, [r1, #0x0]
+ mov r0, #0x1
+ ldmia sp!, {pc}
+_020ACD2C:
+ mov lr, r12
+ ldr r12, [r12, #0x14]
+ cmp r12, #0x0
+ bne _020ACCD8
+_020ACD3C:
+ mov r0, #0x0
+ add sp, sp, #0x4
+ ldmia sp!, {pc}
+ .balign 4
+_020ACD48: .word 0x021CB824
+_020ACD4C: .word 0x021CCD20
+_020ACD50: .word 0x021CB850
+
+ arm_func_start FUN_020ACD54
+FUN_020ACD54: ; 0x020ACD54
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldr r1, _020ACD8C ; =0x021CCD20
+ ldr r1, [r1, #0x10]
+ cmp r1, #0x0
+ beq _020ACD74
+ cmp r1, #0x2
+ bne _020ACD80
+_020ACD74:
+ add sp, sp, #0x4
+ mov r0, #0x0
+ ldmia sp!, {pc}
+_020ACD80:
+ bl FUN_020AC790
+ add sp, sp, #0x4
+ ldmia sp!, {pc}
+ .balign 4
+_020ACD8C: .word 0x021CCD20
+
+ arm_func_start FUN_020ACD90
+FUN_020ACD90:
+ stmdb sp!, {r4,lr}
+ mov r4, r0
+ bl OS_DisableInterrupts
+ ldr r1, _020ACDC0 ; =0x021CB86C
+ ldr r2, _020ACDC4 ; =0x021CB868
+ ldr r3, [r1, #0x0]
+ str r0, [r2, #0x0]
+ str r3, [r4, #0x0]
+ ldr r0, [r2, #0x0]
+ str r4, [r1, #0x0]
+ bl OS_RestoreInterrupts
+ ldmia sp!, {r4,pc}
+ .balign 4
+_020ACDC0: .word 0x021CB86C
+_020ACDC4: .word 0x021CB868
+
+ arm_func_start FUN_020ACDC8
+FUN_020ACDC8: ; 0x020ACDC8
+ stmdb sp!, {r4,lr}
+ mov r4, #0x0
+ bl OS_DisableInterrupts
+ ldr r1, _020ACE08 ; =0x021CB86C
+ ldr r2, _020ACE0C ; =0x021CB868
+ ldr r3, [r1, #0x0]
+ str r0, [r2, #0x0]
+ cmp r3, #0x0
+ ldrne r0, [r3, #0x0]
+ movne r4, r3
+ strne r0, [r1, #0x0]
+ ldr r0, _020ACE0C ; =0x021CB868
+ ldr r0, [r0, #0x0]
+ bl OS_RestoreInterrupts
+ mov r0, r4
+ ldmia sp!, {r4,pc}
+ .balign 4
+_020ACE08: .word 0x021CB86C
+_020ACE0C: .word 0x021CB868
+
+ arm_func_start FUN_020ACE10
+FUN_020ACE10:
+ ldr r1, _020ACE28 ; =0x021CB86C
+ mov r2, #0x0
+ ldr r0, _020ACE2C ; =0x021CB870
+ str r2, [r1, #0x0]
+ str r2, [r0, #0x0]
+ bx lr
+ .balign 4
+_020ACE28: .word 0x021CB86C
+_020ACE2C: .word 0x021CB870
+
+ arm_func_start FUN_020ACE30
+FUN_020ACE30:
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ ldr r3, _020ACF00 ; =0xE525982B
+ mov r2, r1
+ umull r1, r4, r2, r3
+ ldr r1, _020ACF04 ; =0x021CB870
+ mov r4, r4, lsr #0xa
+ str r0, [r1, #0x0]
+ cmp r4, #0x4
+ blo _020ACE60
+ cmp r4, #0x48
+ bls _020ACE6C
+_020ACE60:
+ add sp, sp, #0x4
+ mov r0, #0x0
+ ldmia sp!, {r4-r5,pc}
+_020ACE6C:
+ cmp r0, #0x0
+ addeq sp, sp, #0x4
+ moveq r0, #0x0
+ ldmeqia sp!, {r4-r5,pc}
+_020ACE7C: ; 0x020ACE7C
+ ands r3, r0, #0x1f
+ movne r0, #0x0
+ strne r0, [r1, #0x0]
+ addne sp, sp, #0x4
+ ldmneia sp!, {r4-r5,pc}
+_020ACE90: ; 0x020ACE90
+ mov r1, r0
+ mov r0, #0x0
+ bl MIi_CpuClearFast
+ subs r12, r4, #0x1
+ mov r5, #0x0
+ beq _020ACED0
+ ldr r1, _020ACF04 ; =0x021CB870
+ ldr r0, _020ACF08 ; =0x00000478
+ mov lr, r5
+_020ACEB4:
+ ldr r3, [r1, #0x0]
+ add r5, r5, #0x1
+ mla r2, r5, r0, r3
+ str r2, [r3, lr]
+ cmp r5, r12
+ add lr, lr, r0
+ blo _020ACEB4
+_020ACED0:
+ ldr r1, _020ACF04 ; =0x021CB870
+ ldr r0, _020ACF08 ; =0x00000478
+ ldr r2, [r1, #0x0]
+ mov r3, #0x0
+ mla r0, r4, r0, r2
+ str r3, [r0, #-0x478]
+ ldr r2, [r1, #0x0]
+ ldr r1, _020ACF0C ; =0x021CB86C
+ mov r0, #0x1
+ str r2, [r1, #0x0]
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,pc}
+ .balign 4
+_020ACF00: .word 0xE525982B
+_020ACF04: .word 0x021CB870
+_020ACF08: .word 0x00000478
+_020ACF0C: .word 0x021CB86C
+
+ arm_func_start FUN_020ACF10
+FUN_020ACF10: ; 0x020ACF10
+ mov r2, #0xf
+ mov r0, #0x44
+ mul r1, r2, r0
+ ldr r0, _020ACF30 ; =0x02106498
+ ldr ip, _020ACF34 ; =FUN_020AD170
+ str r2, [r0, #0x8]
+ str r1, [r0, #0xc]
+ bx r12
+ .balign 4
+_020ACF30: .word 0x02106498
+_020ACF34: .word FUN_020AD170
+
+ arm_func_start FUN_020ACF38
+FUN_020ACF38: ; 0x020ACF38
+ stmdb sp!, {r4,lr}
+ ldr r3, _020AD124 ; =0x02106498
+ mov r12, r1, lsr #0x8
+ str r12, [r3, #0x4]
+ cmp r2, #0x0
+ strneb r12, [r2, #0x0]
+ ldr r2, _020AD124 ; =0x02106498
+ ldr r2, [r2, #0x0]
+ cmp r2, #0x0
+ bne _020AD05C
+ mov r4, #0x0
+ mov r12, r4
+ ldr r3, _020AD128 ; =0x021CB880
+_020ACF6C:
+ ldr r2, [r3, r12, lsl #0x2]
+ add r12, r12, #0x1
+ cmp r12, #0x4
+ add r4, r4, r2
+ blt _020ACF6C
+ ldr ip, _020AD12C ; =0x040002B0
+ mov r3, #0x0
+ ldr r2, _020AD130 ; =0x040002B8
+ strh r3, [r12, #0x0]
+ mov r3, r4, lsr #0x2
+ str r3, [r2, #0x0]
+_020ACF98:
+ ldrh r2, [r12, #0x0]
+ ands r2, r2, #0x8000
+ bne _020ACF98
+ ldr r2, _020AD134 ; =0x040002B4
+ cmp r1, #0x0
+ ldr r2, [r2, #0x0]
+ beq _020AD038
+ cmp r1, r2, lsl #0x1
+ blo _020AD038
+ mov r4, #0x0
+ mov r3, r4
+ ldr r2, _020AD128 ; =0x021CB880
+_020ACFC8:
+ ldr r1, [r2, r3, lsl #0x2]
+ add r3, r3, #0x1
+ cmp r3, #0x4
+ add r4, r4, r1
+ blo _020ACFC8
+ ldr r3, _020AD12C ; =0x040002B0
+ mov r2, #0x0
+ ldr r1, _020AD130 ; =0x040002B8
+ strh r2, [r3, #0x0]
+ mov r2, r4, lsr #0x2
+ str r2, [r1, #0x0]
+_020ACFF4:
+ ldrh r1, [r3, #0x0]
+ ands r1, r1, #0x8000
+ bne _020ACFF4
+ ldr r2, _020AD134 ; =0x040002B4
+ mov r1, #0x3
+ ldr r2, [r2, #0x0]
+ ldr r3, _020AD138 ; =0x021CB874
+ mul r1, r2, r1
+ mov lr, r1, lsr #0x1
+ ldr r2, _020AD13C ; =0x021CB878
+ mov r12, #0x0
+ ldr r1, _020AD124 ; =0x02106498
+ mov r4, #0x1
+ str lr, [r3, #0x0]
+ str r12, [r2, #0x0]
+ str r4, [r1, #0x0]
+ b _020AD03C
+_020AD038:
+ mov r4, #0x0
+_020AD03C:
+ ldr r1, _020AD13C ; =0x021CB878
+ ldr r3, _020AD128 ; =0x021CB880
+ ldr r12, [r1, #0x0]
+ add r2, r12, #0x1
+ and r2, r2, #0x3
+ str r0, [r3, r12, lsl #0x2]
+ str r2, [r1, #0x0]
+ b _020AD11C
+_020AD05C:
+ ldr r1, _020AD13C ; =0x021CB878
+ mov lr, #0x0
+ ldr r12, [r1, #0x0]
+ ldr r3, _020AD128 ; =0x021CB880
+ add r2, r12, #0x1
+ and r2, r2, #0x3
+ mov r4, lr
+ str r0, [r3, r12, lsl #0x2]
+ str r2, [r1, #0x0]
+_020AD080:
+ ldr r0, [r3, r4, lsl #0x2]
+ add r4, r4, #0x1
+ cmp r4, #0x4
+ add lr, lr, r0
+ blt _020AD080
+ ldr r2, _020AD12C ; =0x040002B0
+ mov r1, #0x0
+ ldr r0, _020AD130 ; =0x040002B8
+ strh r1, [r2, #0x0]
+ mov r1, lr, lsr #0x2
+ str r1, [r0, #0x0]
+_020AD0AC:
+ ldrh r0, [r2, #0x0]
+ ands r0, r0, #0x8000
+ bne _020AD0AC
+ ldr r1, _020AD134 ; =0x040002B4
+ ldr r0, _020AD138 ; =0x021CB874
+ ldr r1, [r1, #0x0]
+ ldr r0, [r0, #0x0]
+ cmp r1, r0
+ bhi _020AD10C
+ ldr r2, _020AD140 ; =0x021CB87C
+ ldr r1, _020AD124 ; =0x02106498
+ ldr r3, [r2, #0x0]
+ ldr r0, [r1, #0x8]
+ add r3, r3, #0x1
+ str r3, [r2, #0x0]
+ cmp r3, r0
+ ble _020AD118
+ ldr r0, _020AD13C ; =0x021CB878
+ mov r3, #0x0
+ str r3, [r0, #0x0]
+ str r3, [r1, #0x0]
+ str r3, [r2, #0x0]
+ mov r0, #0x3
+ ldmia sp!, {r4,pc}
+_020AD10C:
+ ldr r0, _020AD140 ; =0x021CB87C
+ mov r1, #0x0
+ str r1, [r0, #0x0]
+_020AD118:
+ mov r4, #0x2
+_020AD11C:
+ mov r0, r4
+ ldmia sp!, {r4,pc}
+ .balign 4
+_020AD124: .word 0x02106498
+_020AD128: .word 0x021CB880
+_020AD12C: .word 0x040002B0
+_020AD130: .word 0x040002B8
+_020AD134: .word 0x040002B4
+_020AD138: .word 0x021CB874
+_020AD13C: .word 0x021CB878
+_020AD140: .word 0x021CB87C
+
+ arm_func_start FUN_020AD144
+FUN_020AD144: ; 0x020AD144
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ movs r1, r0
+ addeq sp, sp, #0x4
+ ldmeqia sp!, {pc}
+ ldr r0, _020AD16C ; =0x02106498
+ mov r2, #0x10
+ bl MI_CpuCopy8
+ add sp, sp, #0x4
+ ldmia sp!, {pc}
+ .balign 4
+_020AD16C: .word 0x02106498
+
+ arm_func_start FUN_020AD170
+FUN_020AD170:
+ ldr r0, _020AD1B8 ; =0x021CB880
+ mov r2, #0x0
+ mov r1, #0x1000000
+_020AD17C:
+ str r1, [r0, r2, lsl #0x2]
+ add r2, r2, #0x1
+ cmp r2, #0x4
+ blt _020AD17C
+ ldr r3, _020AD1BC ; =0x021CB878
+ mov r12, #0x0
+ ldr r1, _020AD1C0 ; =0x02106498
+ ldr r2, _020AD1C4 ; =0x021CB874
+ ldr r0, _020AD1C8 ; =0x021CB87C
+ str r12, [r3, #0x0]
+ str r12, [r2, #0x0]
+ str r12, [r1, #0x0]
+ str r12, [r1, #0x4]
+ str r12, [r0, #0x0]
+ bx lr
+ .balign 4
+_020AD1B8: .word 0x021CB880
+_020AD1BC: .word 0x021CB878
+_020AD1C0: .word 0x02106498
+_020AD1C4: .word 0x021CB874
+_020AD1C8: .word 0x021CB87C
+
+ arm_func_start FUN_020AD1CC
+FUN_020AD1CC: ; 0x020AD1CC
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ mov r12, r1
+ mov r3, r2
+ ldr r1, _020AD1F0 ; =0x021CB8D4
+ mov r2, r12
+ bl FUN_020AD1F4
+ add sp, sp, #0x4
+ ldmia sp!, {pc}
+ .balign 4
+_020AD1F0: .word 0x021CB8D4
+
+ arm_func_start FUN_020AD1F4
+FUN_020AD1F4: ; 0x020AD1F4
+ stmdb sp!, {r4-r11,lr}
+ sub sp, sp, #0x14
+ mov r4, #0x0
+ str r4, [sp, #0x0]
+ str r4, [sp, #0x4]
+ mov r9, r4
+ movs r8, r2, lsr #0x1
+ beq _020AD330
+ mov r4, #0xc0000000
+ ldr ip, _020AD420 ; =0x021CB8BC
+ ldr r2, _020AD424 ; =0x021CB8A4
+ str r4, [sp, #0xc]
+_020AD224:
+ ldr r4, _020AD428 ; =0x021CB894
+ ldr lr, [r2, #0x10]
+ ldr r7, [r4, #0x0]
+ mov r4, r9, lsl #0x1
+ ldrsh r10, [r1, r4]
+ ldr r4, _020AD42C ; =0x021CB898
+ mov r5, r7, lsl #0x1
+ ldr r6, [r4, #0x0]
+ ldr r4, _020AD430 ; =0x021CBD14
+ ldr r11, [r2, #0x14]
+ strh r10, [r4, r5]
+ ldr r10, [r12, #0x10]
+ mov r5, r6, lsl #0x1
+ ldrsh r5, [r4, r5]
+ ldr r4, [r12, #0x14]
+ mul lr, r10, lr
+ str r10, [sp, #0x8]
+ str r10, [r12, #0x14]
+ mla r10, r4, r11, lr
+ ldr r4, [r12, #0xc]
+ ldr r11, [r2, #0xc]
+ str r4, [r12, #0x10]
+ mla r10, r4, r11, r10
+ ldr r4, [r12, #0x8]
+ ldr r11, [r2, #0x8]
+ str r4, [r12, #0xc]
+ mla r10, r4, r11, r10
+ ldr r4, [r12, #0x4]
+ ldr r11, [r2, #0x4]
+ str r4, [r12, #0x8]
+ mla r10, r4, r11, r10
+ ldr r4, [r2, #0x0]
+ str r5, [r12, #0x0]
+ mla r4, r5, r4, r10
+ str r5, [r12, #0x4]
+ ldr r5, _020AD434 ; =0x3FFF8000
+ cmp r4, r5
+ movgt r4, r5
+ bgt _020AD2C8
+ cmp r4, #0xc0000000
+ ldrlt r4, [sp, #0xc]
+_020AD2C8:
+ ldr r5, _020AD438 ; =0x000007FF
+ add r7, r7, #0x1
+ and r7, r7, r5
+ ldr r5, _020AD428 ; =0x021CB894
+ add r6, r6, #0x1
+ str r7, [r5, #0x0]
+ ldr r5, _020AD438 ; =0x000007FF
+ mov r7, r9, lsl #0x1
+ and r6, r6, r5
+ ldr r5, _020AD42C ; =0x021CB898
+ mov r4, r4, asr #0xf
+ str r6, [r5, #0x0]
+ strh r4, [r1, r7]
+ ldrsh r6, [r1, r7]
+ ldrsh r4, [r0, r7]
+ add r9, r9, #0x1
+ mul r5, r6, r6
+ strh r4, [r1, r7]
+ ldr r4, [sp, #0x0]
+ adds r4, r4, r5
+ str r4, [sp, #0x0]
+ ldr r4, [sp, #0x4]
+ adc r4, r4, r5, asr #0x1f
+ str r4, [sp, #0x4]
+ cmp r9, r8
+ blo _020AD224
+_020AD330:
+ ldr r5, _020AD43C ; =0x04000280
+ mov r1, #0x1
+ strh r1, [r5, #0x0]
+ ldr r4, _020AD440 ; =0x04000290
+ ldr r1, [sp, #0x0]
+ ldr r2, _020AD444 ; =0x04000298
+ str r1, [r4, #0x0]
+ ldr r1, [sp, #0x4]
+ str r1, [r4, #0x4]
+ str r8, [r2, #0x0]
+ mov r1, #0x0
+ str r1, [r2, #0x4]
+_020AD360:
+ ldrh r1, [r5, #0x0]
+ ands r1, r1, #0x8000
+ bne _020AD360
+ ldr r1, _020AD448 ; =0x040002A0
+ ldr r2, _020AD44C ; =0x040002B0
+ ldr r5, [r1, #0x0]
+ mov r4, #0x0
+ ldr r1, _020AD450 ; =0x040002B8
+ strh r4, [r2, #0x0]
+ str r5, [r1, #0x0]
+_020AD388:
+ ldrh r1, [r2, #0x0]
+ ands r1, r1, #0x8000
+ bne _020AD388
+ ldr r2, _020AD454 ; =0x040002B4
+ mov r1, #0x3
+ ldr r4, [r2, #0x0]
+ mov r2, r3, lsl #0x1
+ mul r1, r4, r1
+ cmp r2, r1
+ ldrhi r0, _020AD458 ; =0x021CB890
+ movhi r1, #0x0
+ strhih r1, [r0, #0x0]
+ addhi sp, sp, #0x14
+ ldmhiia sp!, {r4-r11,pc}
+_020AD3C0: ; 0x020AD3C0
+ cmp r3, r4
+ ldrlo r1, _020AD458 ; =0x021CB890
+ movcc r2, #0x4
+ strcch r2, [r1, #0x0]
+ ldr r1, _020AD458 ; =0x021CB890
+ mov r3, #0x0
+ ldrsh r2, [r1, #0x0]
+ cmp r2, #0x4
+ addlt r2, r2, #0x1
+ strlth r2, [r1, #0x0]
+ cmp r8, #0x0
+ addls sp, sp, #0x14
+ ldmlsia sp!, {r4-r11,pc}
+_020AD3F4: ; 0x020AD3F4
+ ldr r1, _020AD458 ; =0x021CB890
+ ldrsh r4, [r1, #0x0]
+_020AD3FC:
+ mov r2, r3, lsl #0x1
+ ldrsh r1, [r0, r2]
+ add r3, r3, #0x1
+ cmp r3, r8
+ mov r1, r1, asr r4
+ strh r1, [r0, r2]
+ blo _020AD3FC
+ add sp, sp, #0x14
+ ldmia sp!, {r4-r11,pc}
+ .balign 4
+_020AD420: .word 0x021CB8BC
+_020AD424: .word 0x021CB8A4
+_020AD428: .word 0x021CB894
+_020AD42C: .word 0x021CB898
+_020AD430: .word 0x021CBD14
+_020AD434: .word 0x3FFF8000
+_020AD438: .word 0x000007FF
+_020AD43C: .word 0x04000280
+_020AD440: .word 0x04000290
+_020AD444: .word 0x04000298
+_020AD448: .word 0x040002A0
+_020AD44C: .word 0x040002B0
+_020AD450: .word 0x040002B8
+_020AD454: .word 0x040002B4
+_020AD458: .word 0x021CB890
+
+ arm_func_start FUN_020AD45C
+FUN_020AD45C: ; 0x020AD45C
+ ldr ip, _020AD46C ; =MIi_CpuCopyFast
+ mov r2, r1
+ ldr r1, _020AD470 ; =0x021CB8D4
+ bx r12
+ .balign 4
+_020AD46C: .word MIi_CpuCopyFast
+_020AD470: .word 0x021CB8D4
+
+ arm_func_start FUN_020AD474
+FUN_020AD474: ; 0x020AD474
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldr r1, _020AD4E4 ; =0x021CB894
+ mov r3, #0x0
+ ldr r2, _020AD4E8 ; =0x0000019D
+ ldr r0, _020AD4EC ; =0x021CB898
+ ldr lr, _020AD4F0 ; =0x021064A8
+ str r3, [r1, #0x0]
+ str r2, [r0, #0x0]
+ ldr r0, _020AD4F4 ; =0x021CBD14
+ mov r12, r3
+_020AD4A0:
+ mov r1, r3, lsl #0x1
+ add r3, r3, #0x1
+ strh r12, [r0, r1]
+ cmp r3, #0x800
+ blt _020AD4A0
+ ldr r2, _020AD4F8 ; =0x021CB8BC
+ ldr r0, _020AD4FC ; =0x021CB8A4
+ mov r3, #0x0
+_020AD4C0:
+ str r3, [r2, r12, lsl #0x2]
+ mov r1, r12, lsl #0x1
+ ldrsh r1, [lr, r1]
+ str r1, [r0, r12, lsl #0x2]
+ add r12, r12, #0x1
+ cmp r12, #0x6
+ blt _020AD4C0
+ add sp, sp, #0x4
+ ldmia sp!, {pc}
+ .balign 4
+_020AD4E4: .word 0x021CB894
+_020AD4E8: .word 0x0000019D
+_020AD4EC: .word 0x021CB898
+_020AD4F0: .word 0x021064A8
+_020AD4F4: .word 0x021CBD14
+_020AD4F8: .word 0x021CB8BC
+_020AD4FC: .word 0x021CB8A4
+
+ arm_func_start FUN_020AD500
+FUN_020AD500: ; 0x020AD500
+ stmdb sp!, {r4-r11,lr}
+ sub sp, sp, #0x4
+ ldrsh r2, [r0, #0x0]
+ ldr r6, _020AD5FC ; =0x00000E9F
+ ldr sb, _020AD600 ; =0x021CB89C
+ ldr r8, _020AD604 ; =0x021CB8A0
+ smulbb r10, r2, r6
+ ldr r3, [r9, #0x0]
+ ldr r2, [r8, #0x0]
+ ldr r7, _020AD608 ; =0x00000D3E
+ add r3, r10, r3
+ mla r5, r2, r7, r3
+ mov r3, r5, asr #0xc
+ mul r4, r3, r3
+ str r5, [r8, #0x0]
+ rsb r2, r10, #0x0
+ mov r12, r1, lsr #0x1
+ str r3, [r8, #0x0]
+ str r2, [r9, #0x0]
+ cmp r12, #0x1
+ mov lr, r4, asr #0x1f
+ mov r5, #0x1
+ bls _020AD5AC
+_020AD55C:
+ mov r2, r5, lsl #0x1
+ ldrsh r10, [r0, r2]
+ ldr r3, [r8, #0x0]
+ add r2, r0, r5, lsl #0x1
+ strh r3, [r2, #-0x2]
+ smulbb r11, r10, r6
+ ldr r2, [r9, #0x0]
+ rsb r10, r11, #0x0
+ add r2, r11, r2
+ mla r2, r3, r7, r2
+ mov r3, r2, asr #0xc
+ mul r11, r3, r3
+ str r2, [r8, #0x0]
+ adds r4, r4, r11
+ str r10, [r9, #0x0]
+ add r5, r5, #0x1
+ adc lr, lr, r11, asr #0x1f
+ str r3, [r8, #0x0]
+ cmp r5, r12
+ blo _020AD55C
+_020AD5AC:
+ bic r1, r1, #0x1
+ add r0, r0, r1
+ ldr r2, _020AD60C ; =0x04000280
+ strh r3, [r0, #-0x2]
+ mov r0, #0x1
+ ldr r1, _020AD610 ; =0x04000290
+ strh r0, [r2, #0x0]
+ str r4, [r1, #0x0]
+ ldr r0, _020AD614 ; =0x04000298
+ str lr, [r1, #0x4]
+ str r12, [r0, #0x0]
+ mov r1, #0x0
+ str r1, [r0, #0x4]
+_020AD5E0:
+ ldrh r0, [r2, #0x0]
+ ands r0, r0, #0x8000
+ bne _020AD5E0
+ ldr r0, _020AD618 ; =0x040002A0
+ ldr r0, [r0, #0x0]
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r11,pc}
+ .balign 4
+_020AD5FC: .word 0x00000E9F
+_020AD600: .word 0x021CB89C
+_020AD604: .word 0x021CB8A0
+_020AD608: .word 0x00000D3E
+_020AD60C: .word 0x04000280
+_020AD610: .word 0x04000290
+_020AD614: .word 0x04000298
+_020AD618: .word 0x040002A0
+
+ arm_func_start FUN_020AD61C
+FUN_020AD61C:
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0x4
+ movs lr, r3, lsr #0x1
+ mov r4, #0x0
+ addeq sp, sp, #0x4
+ ldmeqia sp!, {r4-r7,pc}
+_020AD634: ; 0x020AD634
+ mov r3, #0x8000
+ ldr ip, _020AD720 ; =0x00007FFF
+ rsb r3, r3, #0x0
+_020AD640:
+ mov r5, r4, lsl #0x1
+ ldrsh r6, [r0, r5]
+ ldrsh r5, [r1, r5]
+ add r6, r6, r5
+ cmp r6, r12
+ movgt r6, r12
+ bgt _020AD664
+ cmp r6, r3
+ movlt r6, r3
+_020AD664:
+ mov r5, r4, lsl #0x1
+ add r7, r4, #0x1
+ strh r6, [r2, r5]
+ mov r5, r7, lsl #0x1
+ ldrsh r6, [r0, r5]
+ ldrsh r5, [r1, r5]
+ add r6, r6, r5
+ cmp r6, r12
+ movgt r6, r12
+ bgt _020AD694
+ cmp r6, r3
+ movlt r6, r3
+_020AD694:
+ mov r5, r7, lsl #0x1
+ add r7, r4, #0x2
+ strh r6, [r2, r5]
+ mov r5, r7, lsl #0x1
+ ldrsh r6, [r0, r5]
+ ldrsh r5, [r1, r5]
+ add r6, r6, r5
+ cmp r6, r12
+ movgt r6, r12
+ bgt _020AD6CC
+ mov r5, #0x8000
+ rsb r5, r5, #0x0
+ cmp r6, r5
+ movlt r6, r3
+_020AD6CC:
+ mov r5, r7, lsl #0x1
+ add r7, r4, #0x3
+ strh r6, [r2, r5]
+ mov r5, r7, lsl #0x1
+ ldrsh r6, [r0, r5]
+ ldrsh r5, [r1, r5]
+ add r6, r6, r5
+ cmp r6, r12
+ movgt r6, r12
+ bgt _020AD704
+ mov r5, #0x8000
+ rsb r5, r5, #0x0
+ cmp r6, r5
+ movlt r6, r3
+_020AD704:
+ mov r5, r7, lsl #0x1
+ add r4, r4, #0x4
+ strh r6, [r2, r5]
+ cmp r4, lr
+ blo _020AD640
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r7,pc}
+ .balign 4
+_020AD720: .word 0x00007FFF
+
+ arm_func_start FUN_020AD724
+FUN_020AD724:
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0x4
+ movs r6, r1
+ mov r7, r0
+ mov r5, r2
+ mov r4, r3
+ addeq sp, sp, #0x4
+ moveq r0, #0x0
+ ldmeqia sp!, {r4-r7,pc}
+_020AD748: ; 0x020AD748
+ ldr r1, [r6, #0x0]
+ ldr r0, _020AD824 ; =0x5F564354
+ cmp r1, r0
+ addne sp, sp, #0x4
+ movne r0, #0x2
+ ldmneia sp!, {r4-r7,pc}
+_020AD760: ; 0x020AD760
+ ldr r0, _020AD828 ; =0x021CCD20
+ ldr r0, [r0, #0x10]
+ cmp r0, #0x0
+ beq _020AD780
+ ldr r0, _020AD82C ; =0x021CCD1C
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ bne _020AD78C
+_020AD780:
+ add sp, sp, #0x4
+ mov r0, #0x0
+ ldmia sp!, {r4-r7,pc}
+_020AD78C:
+ mov r0, #0x0
+ str r0, [r4, #0x0]
+ str r0, [r4, #0x4]
+ bl OS_GetTick
+ ldrb r3, [r6, #0x4]
+ and r2, r3, #0xf0
+ cmp r2, #0x40
+ bne _020AD7E0
+ ldr r2, _020AD830 ; =0x021CCD18
+ mov r3, r0
+ ldr r4, [r2, #0x0]
+ mov r0, r7
+ add r4, r4, #0x1
+ str r4, [r2, #0x0]
+ str r1, [sp, #0x0]
+ mov r1, r6
+ mov r2, r5
+ bl FUN_020AA2A0
+ add sp, sp, #0x4
+ mov r0, #0x0
+ ldmia sp!, {r4-r7,pc}
+_020AD7E0:
+ cmp r3, #0x0
+ beq _020AD7F0
+ cmp r3, #0xff
+ bne _020AD818
+_020AD7F0:
+ mov r0, r7
+ mov r1, r6
+ mov r2, r5
+ mov r3, r4
+ bl FUN_020AC7FC
+_020AD804: ; 0x020AD804
+ cmp r0, #0x0
+ movne r0, #0x1
+ add sp, sp, #0x4
+ moveq r0, #0x0
+ ldmia sp!, {r4-r7,pc}
+_020AD818:
+ mov r0, #0x0
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r7,pc}
+ .balign 4
+_020AD824: .word 0x5F564354
+_020AD828: .word 0x021CCD20
+_020AD82C: .word 0x021CCD1C
+_020AD830: .word 0x021CCD18
+
+ arm_func_start FUN_020AD834
+FUN_020AD834: ; 0x020AD834
+ stmdb sp!, {r4,lr}
+ sub sp, sp, #0x8
+ add r3, sp, #0x0
+ mov r4, r0
+ bl FUN_020AD724
+_020AD848: ; 0x020AD848
+ cmp r0, #0x0
+ beq _020AD898
+ cmp r0, #0x1
+ beq _020AD864
+ cmp r0, #0x2
+ beq _020AD88C
+ b _020AD898
+_020AD864:
+ ldr r0, _020AD8A4 ; =0x021CCD20
+ ldr r1, [sp, #0x0]
+ ldr r2, [sp, #0x4]
+ ldr r3, [r0, #0x8]
+ ldr r12, [r0, #0x4]
+ mov r0, r4
+ blx r12
+ add sp, sp, #0x8
+ mov r0, #0x1
+ ldmia sp!, {r4,pc}
+_020AD88C:
+ add sp, sp, #0x8
+ mov r0, #0x0
+ ldmia sp!, {r4,pc}
+_020AD898:
+ mov r0, #0x1
+ add sp, sp, #0x8
+ ldmia sp!, {r4,pc}
+ .balign 4
+_020AD8A4: .word 0x021CCD20
+
+ arm_func_start FUN_020AD8A8
+FUN_020AD8A8: ; 0x020AD8A8
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldr r0, _020AD8FC ; =0x021CCD1C
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ addeq sp, sp, #0x4
+ ldmeqia sp!, {pc}
+ ldr r0, _020AD900 ; =0x021CCD14
+ ldr r1, [r0, #0x0]
+ add r1, r1, #0x1
+ str r1, [r0, #0x0]
+ ands r0, r1, #0xf
+ bne _020AD8E0
+ bl FUN_020AC898
+_020AD8E0:
+ bl FUN_020AA0A4
+_020AD8E4: ; 0x020AD8E4
+ cmp r0, #0x0
+ addeq sp, sp, #0x4
+ ldmeqia sp!, {pc}
+ bl FUN_020AA1CC
+ add sp, sp, #0x4
+ ldmia sp!, {pc}
+ .balign 4
+_020AD8FC: .word 0x021CCD1C
+_020AD900: .word 0x021CCD14
+
+ arm_func_start FUN_020AD904
+FUN_020AD904: ; 0x020AD904
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ bl FUN_020AAF44
+ bl FUN_020AC964
+ bl FUN_020ACE10
+ ldr r1, _020AD934 ; =0x021CCD20
+ mov r2, #0x0
+ ldr r0, _020AD938 ; =0x021CCD1C
+ str r2, [r1, #0x10]
+ str r2, [r0, #0x0]
+ add sp, sp, #0x4
+ ldmia sp!, {pc}
+ .balign 4
+_020AD934: .word 0x021CCD20
+_020AD938: .word 0x021CCD1C
+
+ arm_func_start FUN_020AD93C
+FUN_020AD93C: ; 0x020AD93C
+ stmdb sp!, {r4,lr}
+ mov r4, r0
+ ldr r0, _020ADA78 ; =0x02000C1C
+ bl OSi_ReferSymbol
+_020AD94C: ; 0x020AD94C
+ cmp r4, #0x0
+ moveq r0, #0x0
+ ldmeqia sp!, {r4,pc}
+_020AD958: ; 0x020AD958
+ ldr r0, _020ADA7C ; =0x021CCD1C
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ movne r0, #0x1
+ ldmneia sp!, {r4,pc}
+_020AD96C: ; 0x020AD96C
+ ldr r0, [r4, #0x8]
+ cmp r0, #0x1
+ beq _020AD98C
+ cmp r0, #0x2
+ beq _020AD98C
+ cmp r0, #0x3
+ movne r0, #0x0
+ ldmneia sp!, {r4,pc}
+_020AD98C:
+ ldr r0, [r4, #0x18]
+ cmp r0, #0x0
+ moveq r0, #0x0
+ ldmeqia sp!, {r4,pc}
+_020AD99C: ; 0x020AD99C
+ ldr r2, [r4, #0x10]
+ cmp r2, #0x0
+ beq _020AD9B4
+ ldr r0, [r4, #0x14]
+ cmp r0, #0x0
+ bne _020AD9BC
+_020AD9B4:
+ mov r0, #0x0
+ ldmia sp!, {r4,pc}
+_020AD9BC:
+ mov r1, r2, lsr #0x1f
+ rsb r0, r1, r2, lsl #0x1b
+ adds r0, r1, r0, ror #0x1b
+ movne r0, #0x0
+ ldmneia sp!, {r4,pc}
+_020AD9D0: ; 0x020AD9D0
+ ldr r0, _020ADA80 ; =0x021CCD20
+ mov r1, #0x0
+ mov r2, #0x18
+ bl MI_CpuFill8
+ ldr r2, [r4, #0x18]
+ ldr r1, _020ADA80 ; =0x021CCD20
+ mov r0, #0x0
+ str r2, [r1, #0x4]
+ ldr r2, [r4, #0x1c]
+ str r2, [r1, #0x8]
+ ldr r2, [r4, #0x8]
+ str r0, [r1, #0xc]
+ str r2, [r1, #0x10]
+ ldrb r2, [r4, #0xc]
+ cmp r2, #0x20
+ ldmcsia sp!, {r4,pc}
+_020ADA10: ; 0x020ADA10
+ strb r2, [r1, #0x0]
+ ldr r0, [r4, #0x10]
+ ldr r1, [r4, #0x14]
+ bl FUN_020ACE30
+_020ADA20: ; 0x020ADA20
+ cmp r0, #0x0
+ bne _020ADA34
+ bl FUN_020ACE10
+_020ADA2C: ; 0x020ADA2C
+ mov r0, #0x0
+ ldmia sp!, {r4,pc}
+_020ADA34:
+ mov r0, r4
+ bl FUN_020AC97C
+_020ADA3C: ; 0x020ADA3C
+ cmp r0, #0x0
+ bne _020ADA50
+ bl FUN_020ACE10
+_020ADA48: ; 0x020ADA48
+ mov r0, #0x0
+ ldmia sp!, {r4,pc}
+_020ADA50:
+ bl FUN_020AAF58
+_020ADA54: ; 0x020ADA54
+ cmp r0, #0x0
+ ldrne r1, _020ADA7C ; =0x021CCD1C
+ movne r0, #0x1
+ strne r0, [r1, #0x0]
+ ldmneia sp!, {r4,pc}
+_020ADA68: ; 0x020ADA68
+ bl FUN_020AC964
+ bl FUN_020ACE10
+_020ADA70: ; 0x020ADA70
+ mov r0, #0x0
+ ldmia sp!, {r4,pc}
+ .balign 4
+_020ADA78: .word 0x02000C1C
+_020ADA7C: .word 0x021CCD1C
+_020ADA80: .word 0x021CCD20
+
+ arm_func_start FUN_020ADA84
+FUN_020ADA84: ; 0x020ADA84
+ cmp r1, #0x0
+ ldreq r0, [r0, #0x4]
+ ldrneh r0, [r0, #0xa]
+ ldrne r0, [r1, r0]
+ bx lr
+
+ arm_func_start FUN_020ADA98
+FUN_020ADA98: ; 0x020ADA98
+ cmp r1, #0x0
+ ldreq r0, [r0, #0x0]
+ ldrneh r0, [r0, #0xa]
+ addne r0, r1, r0
+ ldrne r0, [r0, #0x4]
+ bx lr
+
+ arm_func_start FUN_020ADAB0
+FUN_020ADAB0: ; 0x020ADAB0
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldrh r12, [r0, #0xa]
+ ldr r3, [r1, r12]
+ add lr, r1, r12
+ cmp r3, #0x0
+ ldreq r1, [lr, #0x4]
+ streq r1, [r0, #0x0]
+ ldrne r2, [lr, #0x4]
+ addne r1, r3, r12
+ strne r2, [r1, #0x4]
+ ldr r3, [lr, #0x4]
+ cmp r3, #0x0
+ ldreq r1, [lr, #0x0]
+ streq r1, [r0, #0x4]
+ ldrneh r1, [r0, #0xa]
+ ldrne r2, [lr, #0x0]
+ strne r2, [r3, r1]
+ mov r1, #0x0
+ str r1, [lr, #0x0]
+ str r1, [lr, #0x4]
+ ldrh r1, [r0, #0x8]
+ sub r1, r1, #0x1
+ strh r1, [r0, #0x8]
+ add sp, sp, #0x4
+ ldmia sp!, {pc}
+
+ arm_func_start FUN_020ADB18
+FUN_020ADB18: ; 0x020ADB18
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ cmp r1, #0x0
+ bne _020ADB38
+ mov r1, r2
+ bl FUN_020ADBE8
+ add sp, sp, #0x4
+ ldmia sp!, {pc}
+_020ADB38:
+ ldr r3, [r0, #0x0]
+ cmp r1, r3
+ bne _020ADB54
+ mov r1, r2
+ bl FUN_020ADB8C
+ add sp, sp, #0x4
+ ldmia sp!, {pc}
+_020ADB54:
+ ldrh lr, [r0, #0xa]
+ ldr r3, [r1, lr]
+ add r12, r2, lr
+ str r3, [r2, lr]
+ str r1, [r12, #0x4]
+ add r3, r3, lr
+ str r2, [r3, #0x4]
+ ldrh r3, [r0, #0xa]
+ str r2, [r1, r3]
+ ldrh r1, [r0, #0x8]
+ add r1, r1, #0x1
+ strh r1, [r0, #0x8]
+ add sp, sp, #0x4
+ ldmia sp!, {pc}
+
+ arm_func_start FUN_020ADB8C
+FUN_020ADB8C: ; 0x020ADB8C
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldr r2, [r0, #0x0]
+ cmp r2, #0x0
+ bne _020ADBAC
+ bl FUN_020ADC48
+ add sp, sp, #0x4
+ ldmia sp!, {pc}
+_020ADBAC:
+ ldrh r3, [r0, #0xa]
+ mov r2, #0x0
+ str r2, [r1, r3]
+ ldr r2, [r0, #0x0]
+ add r3, r1, r3
+ str r2, [r3, #0x4]
+ ldrh r2, [r0, #0xa]
+ ldr r3, [r0, #0x0]
+ str r1, [r3, r2]
+ str r1, [r0, #0x0]
+ ldrh r1, [r0, #0x8]
+ add r1, r1, #0x1
+ strh r1, [r0, #0x8]
+ add sp, sp, #0x4
+ ldmia sp!, {pc}
+
+ arm_func_start FUN_020ADBE8
+FUN_020ADBE8: ; 0x020ADBE8
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldr r2, [r0, #0x0]
+ cmp r2, #0x0
+ bne _020ADC08
+ bl FUN_020ADC48
+ add sp, sp, #0x4
+ ldmia sp!, {pc}
+_020ADC08:
+ ldrh r12, [r0, #0xa]
+ ldr r3, [r0, #0x4]
+ mov r2, #0x0
+ str r3, [r1, r12]
+ add r3, r1, r12
+ str r2, [r3, #0x4]
+ ldrh r2, [r0, #0xa]
+ ldr r3, [r0, #0x4]
+ add r2, r3, r2
+ str r1, [r2, #0x4]
+ str r1, [r0, #0x4]
+ ldrh r1, [r0, #0x8]
+ add r1, r1, #0x1
+ strh r1, [r0, #0x8]
+ add sp, sp, #0x4
+ ldmia sp!, {pc}
+
+ arm_func_start FUN_020ADC48
+FUN_020ADC48: ; 0x020ADC48
+ ldrh r3, [r0, #0xa]
+ mov r2, #0x0
+ add r12, r1, r3
+ str r2, [r12, #0x4]
+ str r2, [r1, r3]
+ str r1, [r0, #0x0]
+ str r1, [r0, #0x4]
+ ldrh r1, [r0, #0x8]
+ add r1, r1, #0x1
+ strh r1, [r0, #0x8]
+ bx lr
+
+ arm_func_start FUN_020ADC74
+FUN_020ADC74: ; 0x020ADC74
+ mov r2, #0x0
+ str r2, [r0, #0x0]
+ str r2, [r0, #0x4]
+ strh r2, [r0, #0x8]
+ strh r1, [r0, #0xa]
+ bx lr
+
+ arm_func_start FUN_020ADC8C
+FUN_020ADC8C: ; 0x020ADC8C
+ stmdb sp!, {r4,lr}
+ mov r4, r0
+ bl FUN_020ADD30
+ mov r1, r4
+ bl FUN_020ADAB0
+ ldmia sp!, {r4,pc}
+
+ arm_func_start FUN_020ADCA4
+FUN_020ADCA4:
+ stmdb sp!, {r4,lr}
+ mov r4, r0
+ str r1, [r4, #0x0]
+ str r2, [r4, #0x18]
+ str r3, [r4, #0x1c]
+ mov r0, #0x0
+ str r0, [r4, #0x20]
+ ldr r1, [r4, #0x20]
+ ldrh r0, [sp, #0x8]
+ bic r1, r1, #0xff
+ str r1, [r4, #0x20]
+ ldr r1, [r4, #0x20]
+ and r0, r0, #0xff
+ orr r2, r1, r0
+ add r0, r4, #0xc
+ mov r1, #0x4
+ str r2, [r4, #0x20]
+ bl FUN_020ADC74
+ ldr r0, _020ADD28 ; =0x021CCD38
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ bne _020ADD14
+ ldr r0, _020ADD2C ; =0x021CCD3C
+ mov r1, #0x4
+ bl FUN_020ADC74
+ ldr r0, _020ADD28 ; =0x021CCD38
+ mov r1, #0x1
+ str r1, [r0, #0x0]
+_020ADD14:
+ mov r0, r4
+ bl FUN_020ADD30
+ mov r1, r4
+ bl FUN_020ADBE8
+ ldmia sp!, {r4,pc}
+ .balign 4
+_020ADD28: .word 0x021CCD38
+_020ADD2C: .word 0x021CCD3C
+
+ arm_func_start FUN_020ADD30
+FUN_020ADD30: ; 0x020ADD30
+ stmdb sp!, {r4,lr}
+ ldr r4, _020ADD54 ; =0x021CCD3C
+ mov r1, r0
+ mov r0, r4
+ bl FUN_020ADD58
+_020ADD44: ; 0x020ADD44
+ cmp r0, #0x0
+ addne r4, r0, #0xc
+ mov r0, r4
+ ldmia sp!, {r4,pc}
+ .balign 4
+_020ADD54: .word 0x021CCD3C
+
+ arm_func_start FUN_020ADD58
+FUN_020ADD58:
+ stmdb sp!, {r4-r6,lr}
+ mov r5, r1
+ mov r1, #0x0
+ mov r6, r0
+ bl FUN_020ADA98
+ movs r4, r0
+ beq _020ADDB8
+_020ADD74:
+ ldr r0, [r4, #0x18]
+ cmp r0, r5
+ bhi _020ADDA4
+ ldr r0, [r4, #0x1c]
+ cmp r5, r0
+ bhs _020ADDA4
+ mov r1, r5
+ add r0, r4, #0xc
+ bl FUN_020ADD58
+_020ADD98: ; 0x020ADD98
+ cmp r0, #0x0
+ moveq r0, r4
+ ldmia sp!, {r4-r6,pc}
+_020ADDA4:
+ mov r0, r6
+ mov r1, r4
+ bl FUN_020ADA98
+ movs r4, r0
+ bne _020ADD74
+_020ADDB8:
+ mov r0, #0x0
+ ldmia sp!, {r4-r6,pc}
+
+ arm_func_start FUN_020ADDC0
+FUN_020ADDC0: ; 0x020ADDC0
+ ldr r0, [r0, #-0xc]
+ bx lr
+
+ arm_func_start FUN_020ADDC8
+FUN_020ADDC8: ; 0x020ADDC8
+ ldr r2, [r0, #0x24]
+ mov r0, #0x0
+ cmp r2, #0x0
+ bxeq lr
+_020ADDD8:
+ ldr r1, [r2, #0x4]
+ ldr r2, [r2, #0xc]
+ add r0, r0, r1
+ cmp r2, #0x0
+ bne _020ADDD8
+ bx lr
+
+ arm_func_start FUN_020ADDF0
+FUN_020ADDF0: ; 0x020ADDF0
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0xc
+ sub r4, r1, #0x10
+ add r5, r0, #0x24
+ add r0, sp, #0x0
+ mov r1, r4
+ bl FUN_020AE528
+ mov r1, r4
+ add r0, r5, #0x8
+ bl FUN_020AE500
+ add r1, sp, #0x0
+ mov r0, r5
+ bl FUN_020AE02C
+ add sp, sp, #0xc
+ ldmia sp!, {r4-r5,pc}
+
+ arm_func_start FUN_020ADE2C
+FUN_020ADE2C: ; 0x020ADE2C
+ stmdb sp!, {r4-r10,lr}
+ sub sp, sp, #0x10
+ mov r4, r1
+ mov r10, r2
+ sub r6, r4, #0x10
+ add r1, r10, #0x3
+ mov r5, r0
+ ldr r8, [r6, #0x4]
+ bic r10, r1, #0x3
+ cmp r10, r8
+ add r7, r5, #0x24
+ addeq sp, sp, #0x10
+ moveq r0, r10
+ ldmeqia sp!, {r4-r10,pc}
+_020ADE64: ; 0x020ADE64
+ cmp r10, r8
+ bls _020ADF60
+ ldr r9, [r7, #0x0]
+ add r0, r6, #0x10
+ cmp r9, #0x0
+ add r0, r8, r0
+ beq _020ADE94
+_020ADE80:
+ cmp r9, r0
+ beq _020ADE94
+ ldr r9, [r9, #0xc]
+ cmp r9, #0x0
+ bne _020ADE80
+_020ADE94:
+ cmp r9, #0x0
+ beq _020ADEB0
+ ldr r0, [r9, #0x4]
+ add r1, r8, #0x10
+ add r0, r1, r0
+ cmp r10, r0
+ bls _020ADEBC
+_020ADEB0:
+ add sp, sp, #0x10
+ mov r0, #0x0
+ ldmia sp!, {r4-r10,pc}
+_020ADEBC:
+ add r0, sp, #0x0
+ mov r1, r9
+ bl FUN_020AE528
+ mov r0, r7
+ mov r1, r9
+ bl FUN_020AE500
+ ldr r2, [sp, #0x4]
+ add r3, r10, r4
+ ldr r9, [sp, #0x0]
+ sub r1, r2, r3
+ str r3, [sp, #0x0]
+ cmp r1, #0x10
+ strcc r2, [sp, #0x0]
+ mov r8, r0
+ ldr r0, [sp, #0x0]
+ sub r0, r0, r4
+ str r0, [r6, #0x4]
+ ldr r1, [sp, #0x4]
+ ldr r0, [sp, #0x0]
+ sub r0, r1, r0
+ cmp r0, #0x10
+ blo _020ADF30
+ ldr r1, _020ADF9C ; =0x00004652
+ add r0, sp, #0x0
+ bl FUN_020AE4A0
+ mov r1, r0
+ mov r0, r7
+ mov r2, r8
+ bl FUN_020AE4D0
+_020ADF30:
+ ldr r0, [r5, #0x20]
+ ldr r1, [sp, #0x0]
+ and r0, r0, #0xff
+ mov r0, r0, lsl #0x10
+ mov r0, r0, lsr #0x10
+ sub r2, r1, r9
+ ands r0, r0, #0x1
+ beq _020ADF90
+ mov r1, r9
+ mov r0, #0x0
+ bl MIi_CpuClear32
+ b _020ADF90
+_020ADF60:
+ add r0, r10, r4
+ str r0, [sp, #0x8]
+ ldr r1, [r6, #0x4]
+ add r0, r6, #0x10
+ add r0, r1, r0
+ str r0, [sp, #0xc]
+ add r1, sp, #0x8
+ mov r0, r7
+ str r10, [r6, #0x4]
+ bl FUN_020AE02C
+_020ADF88: ; 0x020ADF88
+ cmp r0, #0x0
+ streq r8, [r6, #0x4]
+_020ADF90:
+ ldr r0, [r6, #0x4]
+ add sp, sp, #0x10
+ ldmia sp!, {r4-r10,pc}
+ .balign 4
+_020ADF9C: .word 0x00004652
+
+ arm_func_start tempName_NNS_FndAllocFromExpHeapEx
+tempName_NNS_FndAllocFromExpHeapEx: ; 0x020ADFA0
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ cmp r1, #0x0
+ moveq r1, #0x1
+ add r1, r1, #0x3
+ cmp r2, #0x0
+ bic r1, r1, #0x3
+ blt _020ADFCC
+ bl FUN_020AE1D8
+ add sp, sp, #0x4
+ ldmia sp!, {pc}
+_020ADFCC:
+ rsb r2, r2, #0x0
+ bl FUN_020AE11C
+ add sp, sp, #0x4
+ ldmia sp!, {pc}
+
+ arm_func_start thunk_FUN_020adc8c
+thunk_FUN_020adc8c: ; 0x020ADFDC
+ ldr ip, _020ADFE4 ; =FUN_020ADC8C
+ bx r12
+ .balign 4
+_020ADFE4: .word FUN_020ADC8C
+
+ arm_func_start tempName_NNS_FndCreateExpHeapEx
+tempName_NNS_FndCreateExpHeapEx: ; 0x020ADFE8
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ add r1, r1, r0
+ add r0, r0, #0x3
+ bic r1, r1, #0x3
+ bic r0, r0, #0x3
+ cmp r0, r1
+ bhi _020AE014
+ sub r3, r1, r0
+ cmp r3, #0x4c
+ bhs _020AE020
+_020AE014:
+ add sp, sp, #0x4
+ mov r0, #0x0
+ ldmia sp!, {pc}
+_020AE020:
+ bl FUN_020AE420
+ add sp, sp, #0x4
+ ldmia sp!, {pc}
+
+ arm_func_start FUN_020AE02C
+FUN_020AE02C:
+ stmdb sp!, {r4-r6,lr}
+ sub sp, sp, #0x8
+ mov r5, r1
+ ldr r2, [r5, #0x0]
+ ldr r1, [r5, #0x4]
+ mov r6, r0
+ str r2, [sp, #0x0]
+ str r1, [sp, #0x4]
+ ldr r1, [r6, #0x0]
+ mov r4, #0x0
+ cmp r1, #0x0
+ beq _020AE0A0
+ ldr r0, [r5, #0x0]
+_020AE060:
+ cmp r1, r0
+ movcc r4, r1
+ blo _020AE094
+ ldr r0, [r5, #0x4]
+ cmp r1, r0
+ bne _020AE0A0
+ ldr r2, [r1, #0x4]
+ add r0, r1, #0x10
+ add r2, r2, r0
+ mov r0, r6
+ str r2, [sp, #0x4]
+ bl FUN_020AE500
+ b _020AE0A0
+_020AE094:
+ ldr r1, [r1, #0xc]
+ cmp r1, #0x0
+ bne _020AE060
+_020AE0A0:
+ cmp r4, #0x0
+ beq _020AE0D4
+ ldr r2, [r4, #0x4]
+ add r1, r4, #0x10
+ ldr r0, [r5, #0x0]
+ add r1, r2, r1
+ cmp r1, r0
+ bne _020AE0D4
+ mov r0, r6
+ mov r1, r4
+ str r4, [sp, #0x0]
+ bl FUN_020AE500
+ mov r4, r0
+_020AE0D4:
+ ldr r1, [sp, #0x4]
+ ldr r0, [sp, #0x0]
+ sub r0, r1, r0
+ cmp r0, #0x10
+ addcc sp, sp, #0x8
+ movcc r0, #0x0
+ ldmccia sp!, {r4-r6,pc}
+_020AE0F0: ; 0x020AE0F0
+ ldr r1, _020AE118 ; =0x00004652
+ add r0, sp, #0x0
+ bl FUN_020AE4A0
+ mov r1, r0
+ mov r0, r6
+ mov r2, r4
+ bl FUN_020AE4D0
+ mov r0, #0x1
+ add sp, sp, #0x8
+ ldmia sp!, {r4-r6,pc}
+ .balign 4
+_020AE118: .word 0x00004652
+
+ arm_func_start FUN_020AE11C
+FUN_020AE11C: ; 0x020AE11C
+ stmdb sp!, {r4-r9,lr}
+ sub sp, sp, #0x4
+ add r0, r0, #0x24
+ ldrh r4, [r0, #0x12]
+ mov r3, r1
+ mvn lr, #0x0
+ and r1, r4, #0x1
+ mov r1, r1, lsl #0x10
+ movs r1, r1, lsr #0x10
+ moveq r5, #0x1
+ mov r1, #0x0
+ ldr r4, [r0, #0x4]
+ movne r5, #0x0
+ mov r12, r1
+ cmp r4, #0x0
+ beq _020AE1B0
+ sub r2, r2, #0x1
+ mvn r2, r2
+_020AE164:
+ ldr r8, [r4, #0x4]
+ add r9, r4, #0x10
+ add r6, r8, r9
+ sub r6, r6, r3
+ and r7, r2, r6
+ subs r6, r7, r9
+ bmi _020AE1A4
+ cmp lr, r8
+ bls _020AE1A4
+ mov r1, r4
+ mov lr, r8
+ mov r12, r7
+ cmp r5, #0x0
+ bne _020AE1B0
+ cmp r8, r3
+ beq _020AE1B0
+_020AE1A4:
+ ldr r4, [r4, #0x8]
+ cmp r4, #0x0
+ bne _020AE164
+_020AE1B0:
+ cmp r1, #0x0
+ addeq sp, sp, #0x4
+ moveq r0, #0x0
+ ldmeqia sp!, {r4-r9,pc}
+_020AE1C0: ; 0x020AE1C0
+ mov r4, #0x1
+ mov r2, r12
+ str r4, [sp, #0x0]
+ bl FUN_020AE298
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r9,pc}
+
+ arm_func_start FUN_020AE1D8
+FUN_020AE1D8: ; 0x020AE1D8
+ stmdb sp!, {r4-r9,lr}
+ sub sp, sp, #0x4
+ add r0, r0, #0x24
+ ldrh r4, [r0, #0x12]
+ mov r3, r1
+ ldr r5, [r0, #0x0]
+ and r1, r4, #0x1
+ mov r1, r1, lsl #0x10
+ movs r1, r1, lsr #0x10
+ moveq r6, #0x1
+ mov r1, #0x0
+ movne r6, #0x0
+ mov lr, r1
+ cmp r5, #0x0
+ mvn r4, #0x0
+ beq _020AE270
+ sub r12, r2, #0x1
+ mvn r2, r12
+_020AE220:
+ add r8, r5, #0x10
+ add r7, r12, r8
+ and r9, r2, r7
+ sub r7, r9, r8
+ ldr r8, [r5, #0x4]
+ add r7, r3, r7
+ cmp r8, r7
+ blo _020AE264
+ cmp r4, r8
+ bls _020AE264
+ mov r1, r5
+ mov r4, r8
+ mov lr, r9
+ cmp r6, #0x0
+ bne _020AE270
+ cmp r8, r3
+ beq _020AE270
+_020AE264:
+ ldr r5, [r5, #0xc]
+ cmp r5, #0x0
+ bne _020AE220
+_020AE270:
+ cmp r1, #0x0
+ addeq sp, sp, #0x4
+ moveq r0, #0x0
+ ldmeqia sp!, {r4-r9,pc}
+_020AE280: ; 0x020AE280
+ mov r4, #0x0
+ mov r2, lr
+ str r4, [sp, #0x0]
+ bl FUN_020AE298
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r9,pc}
+
+ arm_func_start FUN_020AE298
+FUN_020AE298: ; 0x020AE298
+ stmdb sp!, {r4-r8,lr}
+ sub sp, sp, #0x18
+ mov r7, r0
+ add r0, sp, #0x0
+ mov r8, r1
+ mov r6, r2
+ mov r5, r3
+ bl FUN_020AE528
+ ldr r3, [sp, #0x4]
+ sub r4, r6, #0x10
+ add r2, r5, r6
+ mov r0, r7
+ mov r1, r8
+ str r4, [sp, #0x4]
+ str r3, [sp, #0xc]
+ str r2, [sp, #0x8]
+ bl FUN_020AE500
+ ldr r2, [sp, #0x0]
+ ldr r1, [sp, #0x4]
+ mov r5, r0
+ sub r0, r1, r2
+ cmp r0, #0x10
+ strcc r2, [sp, #0x4]
+ blo _020AE318
+ ldr r1, _020AE418 ; =0x00004652
+ add r0, sp, #0x0
+ bl FUN_020AE4A0
+ mov r1, r0
+ mov r0, r7
+ mov r2, r5
+ bl FUN_020AE4D0
+ mov r5, r0
+_020AE318:
+ ldr r1, [sp, #0xc]
+ ldr r0, [sp, #0x8]
+ sub r0, r1, r0
+ cmp r0, #0x10
+ strcc r1, [sp, #0x8]
+ blo _020AE34C
+ ldr r1, _020AE418 ; =0x00004652
+ add r0, sp, #0x8
+ bl FUN_020AE4A0
+ mov r1, r0
+ mov r0, r7
+ mov r2, r5
+ bl FUN_020AE4D0
+_020AE34C:
+ ldr r0, [r7, #-0x4]
+ ldr r1, [sp, #0x4]
+ and r0, r0, #0xff
+ mov r0, r0, lsl #0x10
+ ldr r2, [sp, #0x8]
+ mov r0, r0, lsr #0x10
+ sub r2, r2, r1
+ ands r0, r0, #0x1
+ beq _020AE378
+ mov r0, #0x0
+ bl MIi_CpuClear32
+_020AE378:
+ ldr r2, [sp, #0x8]
+ ldr r1, _020AE41C ; =0x00005544
+ add r0, sp, #0x10
+ str r4, [sp, #0x10]
+ str r2, [sp, #0x14]
+ bl FUN_020AE4A0
+ mov r1, r0
+ ldrh r3, [r1, #0x2]
+ ldrh r2, [sp, #0x30]
+ add r0, r7, #0x8
+ bic r3, r3, #0x8000
+ strh r3, [r1, #0x2]
+ ldrh r3, [r1, #0x2]
+ and r2, r2, #0x1
+ orr r2, r3, r2, lsl #0xf
+ strh r2, [r1, #0x2]
+ ldrh r2, [r1, #0x2]
+ ldr r3, [sp, #0x4]
+ bic r2, r2, #0x7f00
+ strh r2, [r1, #0x2]
+ sub r2, r1, r3
+ mov r2, r2, lsl #0x10
+ mov r2, r2, lsr #0x10
+ ldrh r3, [r1, #0x2]
+ and r2, r2, #0x7f
+ orr r2, r3, r2, lsl #0x8
+ strh r2, [r1, #0x2]
+ ldrh r2, [r1, #0x2]
+ ldrh r3, [r7, #0x10]
+ bic r2, r2, #0xff
+ strh r2, [r1, #0x2]
+ ldrh r2, [r1, #0x2]
+ and r3, r3, #0xff
+ orr r2, r2, r3
+ strh r2, [r1, #0x2]
+ ldr r2, [r7, #0xc]
+ bl FUN_020AE4D0
+ mov r0, r6
+ add sp, sp, #0x18
+ ldmia sp!, {r4-r8,pc}
+ .balign 4
+_020AE418: .word 0x00004652
+_020AE41C: .word 0x00005544
+
+ arm_func_start FUN_020AE420
+FUN_020AE420: ; 0x020AE420
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0xc
+ mov r5, r0
+ mov r3, r1
+ add r4, r5, #0x24
+ str r2, [sp, #0x0]
+ ldr r1, _020AE498 ; =0x45585048
+ add r2, r4, #0x14
+ bl FUN_020ADCA4
+_020AE444: ; 0x020AE444
+ mov r0, #0x0
+ strh r0, [r4, #0x10]
+ strh r0, [r4, #0x12]
+ ldrh r2, [r4, #0x12]
+ ldr r1, _020AE49C ; =0x00004652
+ add r0, sp, #0x4
+ bic r2, r2, #0x1
+ strh r2, [r4, #0x12]
+ ldr r2, [r5, #0x18]
+ str r2, [sp, #0x4]
+ ldr r2, [r5, #0x1c]
+ str r2, [sp, #0x8]
+ bl FUN_020AE4A0
+ str r0, [r5, #0x24]
+ str r0, [r4, #0x4]
+ mov r1, #0x0
+ str r1, [r4, #0x8]
+ mov r0, r5
+ str r1, [r4, #0xc]
+ add sp, sp, #0xc
+ ldmia sp!, {r4-r5,pc}
+ .balign 4
+_020AE498: .word 0x45585048
+_020AE49C: .word 0x00004652
+
+ arm_func_start FUN_020AE4A0
+FUN_020AE4A0: ; 0x020AE4A0
+ ldr r3, [r0, #0x0]
+ mov r2, #0x0
+ strh r1, [r3, #0x0]
+ strh r2, [r3, #0x2]
+ ldr r1, [r0, #0x4]
+ add r0, r3, #0x10
+ sub r0, r1, r0
+ str r0, [r3, #0x4]
+ str r2, [r3, #0x8]
+ mov r0, r3
+ str r2, [r3, #0xc]
+ bx lr
+
+ arm_func_start FUN_020AE4D0
+FUN_020AE4D0: ; 0x020AE4D0
+ str r2, [r1, #0x8]
+ cmp r2, #0x0
+ ldrne r3, [r2, #0xc]
+ strne r1, [r2, #0xc]
+ ldreq r3, [r0, #0x0]
+ streq r1, [r0, #0x0]
+ str r3, [r1, #0xc]
+ cmp r3, #0x0
+ strne r1, [r3, #0x8]
+ streq r1, [r0, #0x4]
+ mov r0, r1
+ bx lr
+
+ arm_func_start FUN_020AE500
+FUN_020AE500: ; 0x020AE500
+ ldr r2, [r1, #0x8]
+ ldr r1, [r1, #0xc]
+ cmp r2, #0x0
+ strne r1, [r2, #0xc]
+ streq r1, [r0, #0x0]
+ cmp r1, #0x0
+ strne r2, [r1, #0x8]
+ streq r2, [r0, #0x4]
+ mov r0, r2
+ bx lr
+
+ arm_func_start FUN_020AE528
+FUN_020AE528: ; 0x020AE528
+ ldrh r2, [r1, #0x2]
+ add r3, r1, #0x10
+ mov r2, r2, asr #0x8
+ and r2, r2, #0x7f
+ mov r2, r2, lsl #0x10
+ sub r2, r1, r2, lsr #0x10
+ str r2, [r0, #0x0]
+ ldr r1, [r1, #0x4]
+ add r1, r1, r3
+ str r1, [r0, #0x4]
+ bx lr
+
+ arm_func_start FUN_020AE554
+FUN_020AE554: ; 0x020AE554
+ add r2, r0, #0x24
+ cmp r1, #0x0
+ ldr r3, [r2, #0x8]
+ beq _020AE584
+ cmp r3, #0x0
+ beq _020AE584
+_020AE56C:
+ ldr r0, [r3, #0x0]
+ cmp r0, r1
+ beq _020AE584
+ ldr r3, [r3, #0xc]
+ cmp r3, #0x0
+ bne _020AE56C
+_020AE584:
+ cmp r3, #0x0
+ moveq r0, #0x0
+ bxeq lr
+ ldr r1, [r3, #0x4]
+ mov r0, #0x1
+ str r1, [r2, #0x0]
+ ldr r1, [r3, #0x8]
+ str r1, [r2, #0x4]
+ ldr r1, [r3, #0xc]
+ str r1, [r2, #0x8]
+ bx lr
+
+ arm_func_start FUN_020AE5B0
+FUN_020AE5B0: ; 0x020AE5B0
+ stmdb sp!, {r4-r6,lr}
+ add r4, r0, #0x24
+ ldr r5, [r0, #0x24]
+ mov r6, r1
+ mov r0, r4
+ mov r1, #0x10
+ mov r2, #0x4
+ bl FUN_020AE77C
+_020AE5D0: ; 0x020AE5D0
+ cmp r0, #0x0
+ moveq r0, #0x0
+ ldmeqia sp!, {r4-r6,pc}
+_020AE5DC: ; 0x020AE5DC
+ str r6, [r0, #0x0]
+ str r5, [r0, #0x4]
+ ldr r1, [r4, #0x4]
+ str r1, [r0, #0x8]
+ ldr r1, [r4, #0x8]
+ str r1, [r0, #0xc]
+ str r0, [r4, #0x8]
+ mov r0, #0x1
+ ldmia sp!, {r4-r6,pc}
+
+ arm_func_start FUN_020AE600
+FUN_020AE600: ; 0x020AE600
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ mov r4, r1
+ mov r5, r0
+ ands r1, r4, #0x1
+ beq _020AE61C
+ bl FUN_020AE6F8
+_020AE61C:
+ ands r0, r4, #0x2
+ addeq sp, sp, #0x4
+ ldmeqia sp!, {r4-r5,pc}
+_020AE628: ; 0x020AE628
+ mov r0, r5
+ bl FUN_020AE6C8
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,pc}
+
+ arm_func_start FUN_020AE638
+FUN_020AE638: ; 0x020AE638
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ cmp r1, #0x0
+ moveq r1, #0x1
+ add r1, r1, #0x3
+ add r0, r0, #0x24
+ cmp r2, #0x0
+ bic r1, r1, #0x3
+ blt _020AE668
+ bl FUN_020AE77C
+ add sp, sp, #0x4
+ ldmia sp!, {pc}
+_020AE668:
+ rsb r2, r2, #0x0
+ bl FUN_020AE710
+ add sp, sp, #0x4
+ ldmia sp!, {pc}
+
+ arm_func_start thunk_FUN_020adc8c_2
+thunk_FUN_020adc8c_2: ; 0x020AE678
+ ldr ip, _020AE680 ; =FUN_020ADC8C
+ bx r12
+ .balign 4
+_020AE680: .word FUN_020ADC8C
+
+ arm_func_start FUN_020AE684
+FUN_020AE684: ; 0x020AE684
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ add r1, r1, r0
+ add r0, r0, #0x3
+ bic r1, r1, #0x3
+ bic r0, r0, #0x3
+ cmp r0, r1
+ bhi _020AE6B0
+ sub r3, r1, r0
+ cmp r3, #0x30
+ bhs _020AE6BC
+_020AE6B0:
+ add sp, sp, #0x4
+ mov r0, #0x0
+ ldmia sp!, {pc}
+_020AE6BC:
+ bl FUN_020AE7E0
+ add sp, sp, #0x4
+ ldmia sp!, {pc}
+
+ arm_func_start FUN_020AE6C8
+FUN_020AE6C8: ; 0x020AE6C8
+ add r2, r0, #0x24
+ ldr r3, [r2, #0x8]
+ cmp r3, #0x0
+ beq _020AE6EC
+_020AE6D8:
+ ldr r1, [r0, #0x1c]
+ str r1, [r3, #0x8]
+ ldr r3, [r3, #0xc]
+ cmp r3, #0x0
+ bne _020AE6D8
+_020AE6EC:
+ ldr r0, [r0, #0x1c]
+ str r0, [r2, #0x4]
+ bx lr
+
+ arm_func_start FUN_020AE6F8
+FUN_020AE6F8: ; 0x020AE6F8
+ ldr r1, [r0, #0x18]
+ add r2, r0, #0x24
+ str r1, [r0, #0x24]
+ mov r0, #0x0
+ str r0, [r2, #0x8]
+ bx lr
+
+ arm_func_start FUN_020AE710
+FUN_020AE710: ; 0x020AE710
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ mov r5, r0
+ ldr r3, [r5, #0x4]
+ sub r0, r2, #0x1
+ mvn r2, r0
+ sub r1, r3, r1
+ ldr r0, [r5, #0x0]
+ and r4, r2, r1
+ cmp r4, r0
+ addcc sp, sp, #0x4
+ movcc r0, #0x0
+ ldmccia sp!, {r4-r5,pc}
+_020AE744: ; 0x020AE744
+ ldr r0, [r5, #-0x4]
+ sub r2, r3, r4
+ and r0, r0, #0xff
+ mov r0, r0, lsl #0x10
+ mov r0, r0, lsr #0x10
+ ands r0, r0, #0x1
+ beq _020AE76C
+ mov r1, r4
+ mov r0, #0x0
+ bl MIi_CpuClear32
+_020AE76C:
+ mov r0, r4
+ str r4, [r5, #0x4]
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,pc}
+
+ arm_func_start FUN_020AE77C
+FUN_020AE77C:
+ stmdb sp!, {r4-r6,lr}
+ mov r6, r0
+ ldr r0, [r6, #0x0]
+ sub r2, r2, #0x1
+ mvn r3, r2
+ add r2, r2, r0
+ and r5, r3, r2
+ ldr r2, [r6, #0x4]
+ add r4, r1, r5
+ cmp r4, r2
+ movhi r0, #0x0
+ ldmhiia sp!, {r4-r6,pc}
+_020AE7AC: ; 0x020AE7AC
+ ldr r1, [r6, #-0x4]
+ sub r2, r4, r0
+ and r1, r1, #0xff
+ mov r1, r1, lsl #0x10
+ mov r1, r1, lsr #0x10
+ ands r1, r1, #0x1
+ beq _020AE7D4
+ mov r1, r0
+ mov r0, #0x0
+ bl MIi_CpuClear32
+_020AE7D4:
+ mov r0, r5
+ str r4, [r6, #0x0]
+ ldmia sp!, {r4-r6,pc}
+
+ arm_func_start FUN_020AE7E0
+FUN_020AE7E0: ; 0x020AE7E0
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ mov r5, r0
+ mov r3, r1
+ add r4, r5, #0x24
+ str r2, [sp, #0x0]
+ ldr r1, _020AE828 ; =0x46524D48
+ add r2, r4, #0xc
+ bl FUN_020ADCA4
+ ldr r0, [r5, #0x18]
+ mov r1, #0x0
+ str r0, [r5, #0x24]
+ ldr r2, [r5, #0x1c]
+ mov r0, r5
+ str r2, [r4, #0x4]
+ str r1, [r4, #0x8]
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,pc}
+ .balign 4
+_020AE828: .word 0x46524D48
+
+ arm_func_start FUN_020AE82C
+FUN_020AE82C: ; 0x020AE82C
+ ldr ip, _020AE848 ; =0x020FF7CC
+ mov r3, #0x0
+ str r12, [r0, #0x0]
+ str r1, [r0, #0x4]
+ str r2, [r0, #0x8]
+ str r3, [r0, #0xc]
+ bx lr
+ .balign 4
+_020AE848: .word 0x020FF7CC
+
+ arm_func_start FUN_020AE84C
+FUN_020AE84C: ; 0x020AE84C
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldr r2, [r0, #0x0]
+ ldr r2, [r2, #0x4]
+ blx r2
+ add sp, sp, #0x4
+ ldmia sp!, {pc}
+
+ arm_func_start FUN_020AE868
+FUN_020AE868: ; 0x020AE868
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldr r2, [r0, #0x0]
+ ldr r2, [r2, #0x0]
+ blx r2
+ add sp, sp, #0x4
+ ldmia sp!, {pc}
+
+ arm_func_start FUN_020AE884
+FUN_020AE884: ; 0x020AE884
+ ldr ip, _020AE890 ; =FUN_020ADDF0
+ ldr r0, [r0, #0x4]
+ bx r12
+ .balign 4
+_020AE890: .word FUN_020ADDF0
+
+ arm_func_start FUN_020AE894
+FUN_020AE894: ; 0x020AE894
+ ldr ip, _020AE8A8 ; =tempName_NNS_FndAllocFromExpHeapEx
+ mov r2, r0
+ ldr r0, [r2, #0x4]
+ ldr r2, [r2, #0x8]
+ bx r12
+ .balign 4
+_020AE8A8: .word tempName_NNS_FndAllocFromExpHeapEx
+
+ arm_func_start FUN_020AE8AC
+FUN_020AE8AC: ; 0x020AE8AC
+ mvn r0, #0x0
+ bx lr
+
+ arm_func_start FUN_020AE8B4
+FUN_020AE8B4: ; 0x020AE8B4
+ mov r0, #0x0
+ bx lr
+
+ arm_func_start FUN_020AE8BC
+FUN_020AE8BC: ; 0x020AE8BC
+ mvn r0, #0x0
+ bx lr
+
+ arm_func_start FUN_020AE8C4
+FUN_020AE8C4: ; 0x020AE8C4
+ mov r0, #0x0
+ bx lr
+
+ arm_func_start FUN_020AE8CC
+FUN_020AE8CC: ; 0x020AE8CC
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ mov lr, #0x0
+ ldr r3, _020AE914 ; =0x021064E4
+ mov r12, lr
+ mov r2, #0x1
+_020AE8E4:
+ ldr r1, [r0, r12, lsl #0x2]
+ add lr, lr, #0x1
+ str r1, [r3, #0x0]
+ ldr r1, [r0, r2, lsl #0x2]
+ cmp lr, #0x5
+ str r1, [r3, #0x4]
+ add r12, r12, #0x2
+ add r3, r3, #0x18
+ add r2, r2, #0x2
+ blt _020AE8E4
+ add sp, sp, #0x4
+ ldmia sp!, {pc}
+ .balign 4
+_020AE914: .word 0x021064E4
+
+ arm_func_start FUN_020AE918
+FUN_020AE918: ; 0x020AE918
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ mov lr, #0x0
+ ldr ip, _020AE960 ; =0x021064E4
+ mov r3, lr
+ mov r2, #0x1
+_020AE930:
+ ldr r1, [r12, #0x0]
+ add lr, lr, #0x1
+ str r1, [r0, r3, lsl #0x2]
+ ldr r1, [r12, #0x4]
+ cmp lr, #0x5
+ str r1, [r0, r2, lsl #0x2]
+ add r12, r12, #0x18
+ add r3, r3, #0x2
+ add r2, r2, #0x2
+ blt _020AE930
+ add sp, sp, #0x4
+ ldmia sp!, {pc}
+ .balign 4
+_020AE960: .word 0x021064E4
+
+ arm_func_start FUN_020AE964
+FUN_020AE964: ; 0x020AE964
+ mov r0, #0x0
+ bx lr
+
+ arm_func_start FUN_020AE96C
+FUN_020AE96C: ; 0x020AE96C
+ stmdb sp!, {r4-r10,lr}
+ cmp r0, #0x0
+ moveq r7, #0x10
+ addne r0, r0, #0xf
+ bicne r7, r0, #0xf
+ ldr r0, _020AEADC ; =0x0007FFF0
+ cmp r7, r0
+ movcs r0, #0x0
+ ldmcsia sp!, {r4-r10,pc}
+_020AE990: ; 0x020AE990
+ cmp r1, #0x0
+ beq _020AEA5C
+ mov lr, r7, lsr #0x1
+ mov r6, #0x0
+ ldr r2, _020AEAE0 ; =0x02106514
+ ldr r3, _020AEAE4 ; =0x021064FC
+ ldr ip, _020AEAE8 ; =0x021064C8
+ mov r0, r6
+_020AE9B0:
+ ldr r5, [r12, r6, lsl #0x2]
+ ldr r4, [r5, #0x8]
+ cmp r4, #0x0
+ beq _020AEA48
+ ldr r9, [r5, #0x4]
+ ldr r4, [r5, #0x0]
+ sub r4, r9, r4
+ cmp r4, r7
+ blo _020AEA48
+ ldrh r4, [r5, #0x10]
+ cmp r4, #0x0
+ beq _020AE9EC
+ cmp r4, #0x3
+ beq _020AE9F4
+ b _020AE9FC
+_020AE9EC:
+ mov r4, r3
+ b _020AEA00
+_020AE9F4:
+ mov r4, r2
+ b _020AEA00
+_020AE9FC:
+ mov r4, r0
+_020AEA00:
+ ldr r9, [r4, #0x8]
+ cmp r9, #0x0
+ beq _020AEA48
+ ldr r10, [r4, #0x4]
+ ldr r9, [r4, #0x0]
+ sub r9, r10, r9
+ cmp r9, lr
+ blo _020AEA48
+ ldr r3, [r5, #0x0]
+ mov r0, #0x1
+ add r2, r3, r7
+ str r2, [r5, #0x0]
+ ldr r2, [r4, #0x0]
+ add r2, r2, lr
+ str r2, [r4, #0x0]
+ ldr r2, [r5, #0x14]
+ add r8, r3, r2
+ b _020AEAB8
+_020AEA48:
+ add r6, r6, #0x1
+ cmp r6, #0x2
+ blt _020AE9B0
+ mov r0, #0x0
+ b _020AEAB8
+_020AEA5C:
+ ldr r3, _020AEAEC ; =0x021064D0
+ mov r5, #0x0
+_020AEA64:
+ ldr r4, [r3, r5, lsl #0x2]
+ ldr r0, [r4, #0x8]
+ cmp r0, #0x0
+ beq _020AEAA8
+ ldr r2, [r4, #0x4]
+ ldr r0, [r4, #0x0]
+ sub r0, r2, r0
+ cmp r0, r7
+ blo _020AEAA8
+ ldr r2, [r4, #0x4]
+ mov r0, #0x1
+ sub r2, r2, r7
+ str r2, [r4, #0x4]
+ ldr r3, [r4, #0x4]
+ ldr r2, [r4, #0x14]
+ add r8, r3, r2
+ b _020AEAB8
+_020AEAA8:
+ add r5, r5, #0x1
+ cmp r5, #0x5
+ blt _020AEA64
+ mov r0, #0x0
+_020AEAB8:
+ cmp r0, #0x0
+ moveq r0, #0x0
+ ldmeqia sp!, {r4-r10,pc}
+_020AEAC4: ; 0x020AEAC4
+ ldr r0, _020AEAF0 ; =0x0000FFFF
+ mov r2, r7, lsr #0x4
+ and r0, r0, r8, lsr #0x3
+ orr r0, r0, r2, lsl #0x10
+ orr r0, r0, r1, lsl #0x1f
+ ldmia sp!, {r4-r10,pc}
+ .balign 4
+_020AEADC: .word 0x0007FFF0
+_020AEAE0: .word 0x02106514
+_020AEAE4: .word 0x021064FC
+_020AEAE8: .word 0x021064C8
+_020AEAEC: .word 0x021064D0
+_020AEAF0: .word 0x0000FFFF
+
+ arm_func_start FUN_020AEAF4
+FUN_020AEAF4:
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0x4
+ ldr r0, _020AEB68 ; =0x021CCD48
+ mov r6, #0x0
+ ldrh r7, [r0, #0x0]
+ ldr r5, _020AEB6C ; =0x021064E4
+ mov lr, r6
+ cmp r7, #0x1
+ addhi r7, r7, #0x1
+ mov r1, r6
+ mov r3, r6
+ mov r4, #0x1
+ mov r0, #0x20000
+ mov r2, #0x10000
+_020AEB2C:
+ cmp r6, r7
+ strlt r4, [r5, #0x8]
+ strge lr, [r5, #0x8]
+ ldr r12, [r5, #0xc]
+ add r6, r6, #0x1
+ cmp r12, #0x0
+ strne r3, [r5, #0x0]
+ strne r2, [r5, #0x4]
+ streq r1, [r5, #0x0]
+ streq r0, [r5, #0x4]
+ cmp r6, #0x5
+ add r5, r5, #0x18
+ blt _020AEB2C
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r7,pc}
+ .balign 4
+_020AEB68: .word 0x021CCD48
+_020AEB6C: .word 0x021064E4
+
+ arm_func_start FUN_020AEB70
+FUN_020AEB70: ; 0x020AEB70
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ mov r5, r0
+ mov r4, r1
+ cmp r5, #0x2
+ bhi _020AEBA8
+ mov r12, #0x1
+ mov r0, #0x4
+ mov r1, #0x3
+ mov r2, #0x2
+ mov r3, #0x0
+ str r12, [sp, #0x0]
+ bl FUN_020AEC10
+ b _020AEBC4
+_020AEBA8:
+ mov r12, #0x1
+ mov r0, #0x4
+ mov r1, #0x3
+ mov r2, #0x0
+ mov r3, #0x2
+ str r12, [sp, #0x0]
+ bl FUN_020AEC10
+_020AEBC4:
+ ldr r0, _020AEBFC ; =0x021CCD48
+ strh r5, [r0, #0x0]
+ bl FUN_020AEAF4
+_020AEBD0: ; 0x020AEBD0
+ cmp r4, #0x0
+ addeq sp, sp, #0x4
+ ldmeqia sp!, {r4-r5,pc}
+_020AEBDC: ; 0x020AEBDC
+ ldr r3, _020AEC00 ; =FUN_020AE96C
+ ldr r1, _020AEC04 ; =0x021064B8
+ ldr r2, _020AEC08 ; =FUN_020AE964
+ ldr r0, _020AEC0C ; =0x021064BC
+ str r3, [r1, #0x0]
+ str r2, [r0, #0x0]
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,pc}
+ .balign 4
+_020AEBFC: .word 0x021CCD48
+_020AEC00: .word FUN_020AE96C
+_020AEC04: .word 0x021064B8
+_020AEC08: .word FUN_020AE964
+_020AEC0C: .word 0x021064BC
+
+ arm_func_start FUN_020AEC10
+FUN_020AEC10: ; 0x020AEC10
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0x4
+ ldr lr, [sp, #0x18]
+ ldr r6, _020AEC58 ; =0x021064E4
+ mov r12, #0x18
+ mla r7, r0, r12, r6
+ ldr r0, _020AEC5C ; =0x021064D0
+ mla r5, r1, r12, r6
+ mla r4, r2, r12, r6
+ mla r2, r3, r12, r6
+ mla r1, lr, r12, r6
+ str r7, [r0, #0x0]
+ str r5, [r0, #0x4]
+ str r4, [r0, #0x8]
+ str r2, [r0, #0xc]
+ str r1, [r0, #0x10]
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r7,pc}
+ .balign 4
+_020AEC58: .word 0x021064E4
+_020AEC5C: .word 0x021064D0
+
+ arm_func_start FUN_020AEC60
+FUN_020AEC60:
+ ldr r0, _020AEC78 ; =0x021CCD4C
+ mov r2, #0x0
+ ldr r1, [r0, #0x8]
+ str r2, [r0, #0x0]
+ str r1, [r0, #0x4]
+ bx lr
+ .balign 4
+_020AEC78: .word 0x021CCD4C
+
+ arm_func_start FUN_020AEC7C
+FUN_020AEC7C: ; 0x020AEC7C
+ ldr r2, [r0, #0x0]
+ ldr r1, _020AEC94 ; =0x021CCD4C
+ str r2, [r1, #0x0]
+ ldr r0, [r0, #0x4]
+ str r0, [r1, #0x4]
+ bx lr
+ .balign 4
+_020AEC94: .word 0x021CCD4C
+
+ arm_func_start FUN_020AEC98
+FUN_020AEC98: ; 0x020AEC98
+ ldr r1, _020AECB0 ; =0x021CCD4C
+ ldr r2, [r1, #0x0]
+ str r2, [r0, #0x0]
+ ldr r1, [r1, #0x4]
+ str r1, [r0, #0x4]
+ bx lr
+ .balign 4
+_020AECB0: .word 0x021CCD4C
+
+ arm_func_start FUN_020AECB4
+FUN_020AECB4: ; 0x020AECB4
+ mov r0, #0x0
+ bx lr
+
+ arm_func_start FUN_020AECBC
+FUN_020AECBC: ; 0x020AECBC
+ stmdb sp!, {r4,lr}
+ cmp r0, #0x0
+ moveq r0, #0x8
+ addne r0, r0, #0x7
+ ldr ip, _020AEDE8 ; =0x0007FFF8
+ bicne r0, r0, #0x7
+ cmp r0, r12
+ mov r3, #0x0
+ movcs r0, #0x0
+ ldmcsia sp!, {r4,pc}
+_020AECE4: ; 0x020AECE4
+ cmp r2, #0x1
+ bne _020AED64
+ ldr r2, _020AEDEC ; =0x021CCD4C
+ cmp r1, #0x0
+ ldr r12, [r2, #0x0]
+ andne r2, r12, #0x7
+ rsbne r2, r2, #0x8
+ andne r4, r2, #0x7
+ andeq r2, r12, #0xf
+ rsbeq r2, r2, #0x10
+ andeq r4, r2, #0xf
+ ldr r2, _020AEDEC ; =0x021CCD4C
+ add lr, r0, r4
+ ldr r2, [r2, #0x4]
+ sub r2, r2, r12
+ cmp r2, lr
+ blo _020AED5C
+ cmp r1, #0x0
+ add r1, r12, lr
+ beq _020AED40
+ cmp r1, #0x10000
+ movhi r12, #0x0
+ bhi _020AEDCC
+_020AED40:
+ ldr r1, _020AEDEC ; =0x021CCD4C
+ add r3, r12, r4
+ ldr r2, [r1, #0x0]
+ mov r12, #0x1
+ add r2, r2, lr
+ str r2, [r1, #0x0]
+ b _020AEDCC
+_020AED5C:
+ mov r12, #0x0
+ b _020AEDCC
+_020AED64:
+ ldr r2, _020AEDEC ; =0x021CCD4C
+ ldr r12, [r2, #0x4]
+ cmp r12, r0
+ blo _020AEDC8
+ sub r2, r12, r0
+ cmp r1, #0x0
+ andne r4, r2, #0x7
+ andeq r4, r2, #0xf
+ ldr r2, _020AEDEC ; =0x021CCD4C
+ add lr, r0, r4
+ ldr r2, [r2, #0x0]
+ sub r2, r12, r2
+ cmp r2, lr
+ blo _020AEDC8
+ cmp r1, #0x0
+ beq _020AEDB0
+ cmp r12, #0x10000
+ movhi r12, #0x0
+ bhi _020AEDCC
+_020AEDB0:
+ ldr r1, _020AEDEC ; =0x021CCD4C
+ mov r12, #0x1
+ ldr r2, [r1, #0x4]
+ sub r3, r2, lr
+ str r3, [r1, #0x4]
+ b _020AEDCC
+_020AEDC8:
+ mov r12, #0x0
+_020AEDCC:
+ cmp r12, #0x0
+ ldrne r1, _020AEDF0 ; =0x0000FFFF
+ movne r2, r0, lsr #0x3
+ andne r0, r1, r3, lsr #0x3
+ orrne r0, r0, r2, lsl #0x10
+ moveq r0, #0x0
+ ldmia sp!, {r4,pc}
+ .balign 4
+_020AEDE8: .word 0x0007FFF8
+_020AEDEC: .word 0x021CCD4C
+_020AEDF0: .word 0x0000FFFF
+
+ arm_func_start FUN_020AEDF4
+FUN_020AEDF4: ; 0x020AEDF4
+ stmdb sp!, {r4,lr}
+ ldr r2, _020AEE2C ; =0x021CCD4C
+ mov r4, r1
+ str r0, [r2, #0x8]
+ bl FUN_020AEC60
+_020AEE08: ; 0x020AEE08
+ cmp r4, #0x0
+ ldmeqia sp!, {r4,pc}
+_020AEE10: ; 0x020AEE10
+ ldr r3, _020AEE30 ; =FUN_020AECBC
+ ldr r1, _020AEE34 ; =0x021064C0
+ ldr r2, _020AEE38 ; =FUN_020AECB4
+ ldr r0, _020AEE3C ; =0x021064C4
+ str r3, [r1, #0x0]
+ str r2, [r0, #0x0]
+ ldmia sp!, {r4,pc}
+ .balign 4
+_020AEE2C: .word 0x021CCD4C
+_020AEE30: .word FUN_020AECBC
+_020AEE34: .word 0x021064C0
+_020AEE38: .word FUN_020AECB4
+_020AEE3C: .word 0x021064C4
+
+ arm_func_start FUN_020AEE40
+FUN_020AEE40: ; 0x020AEE40
+ stmdb sp!, {r4-r9,lr}
+ sub sp, sp, #0x4
+ ldr r5, _020AEEB4 ; =0x021CCD58
+ mov r9, r0
+ mov r0, r5
+ mov r8, r1
+ mov r7, r2
+ mov r6, r3
+ bl FUN_020AF2F4
+_020AEE64: ; 0x020AEE64
+ cmp r0, #0x0
+ addne sp, sp, #0x4
+ movne r0, #0x0
+ ldmneia sp!, {r4-r9,pc}
+_020AEE74: ; 0x020AEE74
+ mov r0, r5
+ bl FUN_020AEF78
+ mov r4, r0
+ str r9, [r4, #0x0]
+ str r7, [r4, #0x4]
+ str r8, [r4, #0x8]
+ mov r0, r5
+ str r6, [r4, #0xc]
+ bl FUN_020AEF98
+ ldr r2, [r5, #0x10]
+ ldr r1, [r4, #0xc]
+ mov r0, #0x1
+ add r1, r2, r1
+ str r1, [r5, #0x10]
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r9,pc}
+ .balign 4
+_020AEEB4: .word 0x021CCD58
+
+ arm_func_start FUN_020AEEB8
+FUN_020AEEB8: ; 0x020AEEB8
+ stmdb sp!, {r4-r6,lr}
+ ldr r6, _020AEF18 ; =0x021CCD58
+ mov r0, r6
+ bl FUN_020AEF88
+ mov r5, r0
+ mov r0, r6
+ bl FUN_020AEF3C
+_020AEED4: ; 0x020AEED4
+ cmp r0, #0x0
+ ldmeqia sp!, {r4-r6,pc}
+_020AEEDC: ; 0x020AEEDC
+ add r4, r6, #0x10
+_020AEEE0:
+ mov r0, r5
+ bl FUN_020AEFF0
+ ldr r2, [r4, #0x0]
+ ldr r1, [r5, #0xc]
+ mov r0, r6
+ sub r1, r2, r1
+ str r1, [r4, #0x0]
+ bl FUN_020AEF88
+ mov r5, r0
+ mov r0, r6
+ bl FUN_020AEF3C
+_020AEF0C: ; 0x020AEF0C
+ cmp r0, #0x0
+ bne _020AEEE0
+ ldmia sp!, {r4-r6,pc}
+ .balign 4
+_020AEF18: .word 0x021CCD58
+
+ arm_func_start FUN_020AEF1C
+FUN_020AEF1C: ; 0x020AEF1C
+ ldr r2, _020AEF34 ; =0x021CCD58
+ ldr ip, _020AEF38 ; =FUN_020AEFD4
+ str r0, [r2, #0x0]
+ mov r0, r2
+ str r1, [r2, #0x4]
+ bx r12
+ .balign 4
+_020AEF34: .word 0x021CCD58
+_020AEF38: .word FUN_020AEFD4
+
+ arm_func_start FUN_020AEF3C
+FUN_020AEF3C:
+ stmdb sp!, {r4,lr}
+ mov r4, r0
+ bl FUN_020AF2E0
+_020AEF48: ; 0x020AEF48
+ cmp r0, #0x0
+ movne r0, #0x0
+ ldmneia sp!, {r4,pc}
+_020AEF54: ; 0x020AEF54
+ ldrh r1, [r4, #0x8]
+ mov r0, r4
+ bl FUN_020AF30C
+ strh r0, [r4, #0x8]
+ ldrh r1, [r4, #0xc]
+ mov r0, #0x1
+ sub r1, r1, #0x1
+ strh r1, [r4, #0xc]
+ ldmia sp!, {r4,pc}
+
+ arm_func_start FUN_020AEF78
+FUN_020AEF78: ; 0x020AEF78
+ ldrh r1, [r0, #0xa]
+ ldr r0, [r0, #0x0]
+ add r0, r0, r1, lsl #0x4
+ bx lr
+
+ arm_func_start FUN_020AEF88
+FUN_020AEF88: ; 0x020AEF88
+ ldrh r1, [r0, #0x8]
+ ldr r0, [r0, #0x0]
+ add r0, r0, r1, lsl #0x4
+ bx lr
+
+ arm_func_start FUN_020AEF98
+FUN_020AEF98: ; 0x020AEF98
+ stmdb sp!, {r4,lr}
+ mov r4, r0
+ bl FUN_020AF2F4
+_020AEFA4: ; 0x020AEFA4
+ cmp r0, #0x0
+ movne r0, #0x0
+ ldmneia sp!, {r4,pc}
+_020AEFB0: ; 0x020AEFB0
+ ldrh r1, [r4, #0xa]
+ mov r0, r4
+ bl FUN_020AF30C
+ strh r0, [r4, #0xa]
+ ldrh r1, [r4, #0xc]
+ mov r0, #0x1
+ add r1, r1, #0x1
+ strh r1, [r4, #0xc]
+ ldmia sp!, {r4,pc}
+
+ arm_func_start FUN_020AEFD4
+FUN_020AEFD4: ; 0x020AEFD4
+ mov r2, #0x0
+ strh r2, [r0, #0xa]
+ ldrh r1, [r0, #0xa]
+ strh r1, [r0, #0x8]
+ strh r2, [r0, #0xc]
+ str r2, [r0, #0x10]
+ bx lr
+
+ arm_func_start FUN_020AEFF0
+FUN_020AEFF0: ; 0x020AEFF0
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ mov r5, r0
+ ldr r3, [r5, #0x0]
+ ldr r2, _020AF02C ; =0x020FF7D4
+ ldr r0, [r5, #0x4]
+ ldr r1, [r5, #0xc]
+ ldr r4, [r2, r3, lsl #0x2]
+ bl DC_FlushRange
+ ldr r0, [r5, #0x4]
+ ldr r1, [r5, #0x8]
+ ldr r2, [r5, #0xc]
+ blx r4
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,pc}
+ .balign 4
+_020AF02C: .word 0x020FF7D4
diff --git a/arm9/asm/unk_020AF030.s b/arm9/asm/unk_020AF030.s
new file mode 100644
index 00000000..33faec27
--- /dev/null
+++ b/arm9/asm/unk_020AF030.s
@@ -0,0 +1,26835 @@
+ .include "asm/macros.inc"
+ .include "global.inc"
+
+ .text
+
+ arm_func_start GXS_LoadOBJ_2
+GXS_LoadOBJ_2:
+ ldr ip, _020AF038 ; =GXS_LoadOBJ
+ bx r12
+ .balign 4
+_020AF038: .word GXS_LoadOBJ
+
+ arm_func_start GXS_LoadOAM_2
+GXS_LoadOAM_2: ; 0x020AF03C
+ ldr ip, _020AF044 ; =GXS_LoadOAM
+ bx r12
+ .balign 4
+_020AF044: .word GXS_LoadOAM
+
+ arm_func_start FUN_020AF048
+FUN_020AF048: ; 0x020AF048
+ stmdb sp!, {r4-r6,lr}
+ mov r6, r0
+ mov r5, r1
+ mov r4, r2
+ bl GXS_BeginLoadBGExtPltt
+ mov r0, r6
+ mov r1, r5
+ mov r2, r4
+ bl GXS_LoadBGExtPltt
+ bl GXS_EndLoadBGExtPltt
+ ldmia sp!, {r4-r6,pc}
+
+ arm_func_start FUN_020AF074
+FUN_020AF074: ; 0x020AF074
+ stmdb sp!, {r4-r6,lr}
+ mov r6, r0
+ mov r5, r1
+ mov r4, r2
+ bl GXS_BeginLoadOBJExtPltt
+ mov r0, r6
+ mov r1, r5
+ mov r2, r4
+ bl GXS_LoadOBJExtPltt
+ bl GXS_EndLoadOBJExtPltt
+ ldmia sp!, {r4-r6,pc}
+
+ arm_func_start GXS_LoadBGPltt_2
+GXS_LoadBGPltt_2: ; 0x020AF0A0
+ ldr ip, _020AF0A8 ; =GXS_LoadBGPltt
+ bx r12
+ .balign 4
+_020AF0A8: .word GXS_LoadBGPltt
+
+ arm_func_start GXS_LoadOBJPltt_2
+GXS_LoadOBJPltt_2: ; 0x020AF0AC
+ ldr ip, _020AF0B4 ; =GXS_LoadOBJPltt
+ bx r12
+ .balign 4
+_020AF0B4: .word GXS_LoadOBJPltt
+
+ arm_func_start GXS_LoadBG3Scr_3
+GXS_LoadBG3Scr_3: ; 0x020AF0B8
+ ldr ip, _020AF0C0 ; =GXS_LoadBG3Scr
+ bx r12
+ .balign 4
+_020AF0C0: .word GXS_LoadBG3Scr
+
+ arm_func_start GXS_LoadBG2Scr_3
+GXS_LoadBG2Scr_3: ; 0x020AF0C4
+ ldr ip, _020AF0CC ; =GXS_LoadBG2Scr
+ bx r12
+ .balign 4
+_020AF0CC: .word GXS_LoadBG2Scr
+
+ arm_func_start GXS_LoadBG3Scr_2
+GXS_LoadBG3Scr_2: ; 0x020AF0D0
+ ldr ip, _020AF0D8 ; =GXS_LoadBG3Scr
+ bx r12
+ .balign 4
+_020AF0D8: .word GXS_LoadBG3Scr
+
+ arm_func_start GXS_LoadBG2Scr_2
+GXS_LoadBG2Scr_2: ; 0x020AF0DC
+ ldr ip, _020AF0E4 ; =GXS_LoadBG2Scr
+ bx r12
+ .balign 4
+_020AF0E4: .word GXS_LoadBG2Scr
+
+ arm_func_start GXS_LoadBG1Scr_2
+GXS_LoadBG1Scr_2: ; 0x020AF0E8
+ ldr ip, _020AF0F0 ; =GXS_LoadBG1Scr
+ bx r12
+ .balign 4
+_020AF0F0: .word GXS_LoadBG1Scr
+
+ arm_func_start GXS_LoadBG0Scr_2
+GXS_LoadBG0Scr_2: ; 0x020AF0F4
+ ldr ip, _020AF0FC ; =GXS_LoadBG0Scr
+ bx r12
+ .balign 4
+_020AF0FC: .word GXS_LoadBG0Scr
+
+ arm_func_start GXS_LoadBG3Char_2
+GXS_LoadBG3Char_2: ; 0x020AF100
+ ldr ip, _020AF108 ; =GXS_LoadBG3Char
+ bx r12
+ .balign 4
+_020AF108: .word GXS_LoadBG3Char
+
+ arm_func_start GXS_LoadBG2Char_2
+GXS_LoadBG2Char_2: ; 0x020AF10C
+ ldr ip, _020AF114 ; =GXS_LoadBG2Char
+ bx r12
+ .balign 4
+_020AF114: .word GXS_LoadBG2Char
+
+ arm_func_start GXS_LoadBG1Char_2
+GXS_LoadBG1Char_2: ; 0x020AF118
+ ldr ip, _020AF120 ; =GXS_LoadBG1Char
+ bx r12
+ .balign 4
+_020AF120: .word GXS_LoadBG1Char
+
+ arm_func_start GXS_LoadBG0Char_2
+GXS_LoadBG0Char_2: ; 0x020AF124
+ ldr ip, _020AF12C ; =GXS_LoadBG0Char
+ bx r12
+ .balign 4
+_020AF12C: .word GXS_LoadBG0Char
+
+ arm_func_start GX_LoadOBJ_2
+GX_LoadOBJ_2: ; 0x020AF130
+ ldr ip, _020AF138 ; =GX_LoadOBJ
+ bx r12
+ .balign 4
+_020AF138: .word GX_LoadOBJ
+
+ arm_func_start GX_LoadOAM_2
+GX_LoadOAM_2: ; 0x020AF13C
+ ldr ip, _020AF144 ; =GX_LoadOAM
+ bx r12
+ .balign 4
+_020AF144: .word GX_LoadOAM
+
+ arm_func_start FUN_020AF148
+FUN_020AF148: ; 0x020AF148
+ stmdb sp!, {r4-r6,lr}
+ mov r6, r0
+ mov r5, r1
+ mov r4, r2
+ bl GX_BeginLoadBGExtPltt
+ mov r0, r6
+ mov r1, r5
+ mov r2, r4
+ bl GX_LoadBGExtPltt
+ bl GX_EndLoadBGExtPltt
+ ldmia sp!, {r4-r6,pc}
+
+ arm_func_start FUN_020AF174
+FUN_020AF174: ; 0x020AF174
+ stmdb sp!, {r4-r6,lr}
+ mov r6, r0
+ mov r5, r1
+ mov r4, r2
+ bl GX_BeginLoadOBJExtPltt
+ mov r0, r6
+ mov r1, r5
+ mov r2, r4
+ bl GX_LoadOBJExtPltt
+ bl GX_EndLoadOBJExtPltt
+ ldmia sp!, {r4-r6,pc}
+
+ arm_func_start GX_LoadBGPltt_2
+GX_LoadBGPltt_2: ; 0x020AF1A0
+ ldr ip, _020AF1A8 ; =GX_LoadBGPltt
+ bx r12
+ .balign 4
+_020AF1A8: .word GX_LoadBGPltt
+
+ arm_func_start GX_LoadOBJPltt_2
+GX_LoadOBJPltt_2: ; 0x020AF1AC
+ ldr ip, _020AF1B4 ; =GX_LoadOBJPltt
+ bx r12
+ .balign 4
+_020AF1B4: .word GX_LoadOBJPltt
+
+ arm_func_start GX_LoadBG3Scr_3
+GX_LoadBG3Scr_3: ; 0x020AF1B8
+ ldr ip, _020AF1C0 ; =GX_LoadBG3Scr
+ bx r12
+ .balign 4
+_020AF1C0: .word GX_LoadBG3Scr
+
+ arm_func_start GX_LoadBG2Scr_3
+GX_LoadBG2Scr_3: ; 0x020AF1C4
+ ldr ip, _020AF1CC ; =GX_LoadBG2Scr
+ bx r12
+ .balign 4
+_020AF1CC: .word GX_LoadBG2Scr
+
+ arm_func_start GX_LoadBG3Scr_2
+GX_LoadBG3Scr_2: ; 0x020AF1D0
+ ldr ip, _020AF1D8 ; =GX_LoadBG3Scr
+ bx r12
+ .balign 4
+_020AF1D8: .word GX_LoadBG3Scr
+
+ arm_func_start GX_LoadBG2Scr_2
+GX_LoadBG2Scr_2: ; 0x020AF1DC
+ ldr ip, _020AF1E4 ; =GX_LoadBG2Scr
+ bx r12
+ .balign 4
+_020AF1E4: .word GX_LoadBG2Scr
+
+ arm_func_start GX_LoadBG1Scr_2
+GX_LoadBG1Scr_2: ; 0x020AF1E8
+ ldr ip, _020AF1F0 ; =GX_LoadBG1Scr
+ bx r12
+ .balign 4
+_020AF1F0: .word GX_LoadBG1Scr
+
+ arm_func_start GX_LoadBG0Scr_2
+GX_LoadBG0Scr_2: ; 0x020AF1F4
+ ldr ip, _020AF1FC ; =GX_LoadBG0Scr
+ bx r12
+ .balign 4
+_020AF1FC: .word GX_LoadBG0Scr
+
+ arm_func_start GX_LoadBG3Char_2
+GX_LoadBG3Char_2: ; 0x020AF200
+ ldr ip, _020AF208 ; =GX_LoadBG3Char
+ bx r12
+ .balign 4
+_020AF208: .word GX_LoadBG3Char
+
+ arm_func_start GX_LoadBG2Char_2
+GX_LoadBG2Char_2: ; 0x020AF20C
+ ldr ip, _020AF214 ; =GX_LoadBG2Char
+ bx r12
+ .balign 4
+_020AF214: .word GX_LoadBG2Char
+
+ arm_func_start GX_LoadBG1Char_2
+GX_LoadBG1Char_2: ; 0x020AF218
+ ldr ip, _020AF220 ; =GX_LoadBG1Char
+ bx r12
+ .balign 4
+_020AF220: .word GX_LoadBG1Char
+
+ arm_func_start GX_LoadBG0Char_2
+GX_LoadBG0Char_2: ; 0x020AF224
+ ldr ip, _020AF22C ; =GX_LoadBG0Char
+ bx r12
+ .balign 4
+_020AF22C: .word GX_LoadBG0Char
+
+ arm_func_start FUN_020AF230
+FUN_020AF230: ; 0x020AF230
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ mov r5, r0
+ mov r4, r2
+ bl GX_BeginLoadClearImage
+ mov r0, r5
+ mov r1, r4
+ bl GX_LoadClearImageDepth
+ bl GX_EndLoadClearImage
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,pc}
+
+ arm_func_start FUN_020AF25C
+FUN_020AF25C: ; 0x020AF25C
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ mov r5, r0
+ mov r4, r2
+ bl GX_BeginLoadClearImage
+ mov r0, r5
+ mov r1, r4
+ bl GX_LoadClearImageColor
+ bl GX_EndLoadClearImage
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,pc}
+
+ arm_func_start FUN_020AF288
+FUN_020AF288: ; 0x020AF288
+ stmdb sp!, {r4-r6,lr}
+ mov r6, r0
+ mov r5, r1
+ mov r4, r2
+ bl GX_BeginLoadTexPltt
+ mov r0, r6
+ mov r1, r5
+ mov r2, r4
+ bl GX_LoadTexPltt
+ bl GX_EndLoadTexPltt
+ ldmia sp!, {r4-r6,pc}
+
+ arm_func_start FUN_020AF2B4
+FUN_020AF2B4: ; 0x020AF2B4
+ stmdb sp!, {r4-r6,lr}
+ mov r6, r0
+ mov r5, r1
+ mov r4, r2
+ bl GX_BeginLoadTex
+ mov r0, r6
+ mov r1, r5
+ mov r2, r4
+ bl GX_LoadTex
+ bl GX_EndLoadTex
+ ldmia sp!, {r4-r6,pc}
+
+ arm_func_start FUN_020AF2E0
+FUN_020AF2E0: ; 0x020AF2E0
+ ldrh r0, [r0, #0xc]
+ cmp r0, #0x0
+ moveq r0, #0x1
+ movne r0, #0x0
+ bx lr
+
+ arm_func_start FUN_020AF2F4
+FUN_020AF2F4: ; 0x020AF2F4
+ ldrh r1, [r0, #0xc]
+ ldr r0, [r0, #0x4]
+ cmp r1, r0
+ moveq r0, #0x1
+ movne r0, #0x0
+ bx lr
+
+ arm_func_start FUN_020AF30C
+FUN_020AF30C: ; 0x020AF30C
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ mov r2, r0
+ add r0, r1, #0x1
+ ldr r1, [r2, #0x4]
+ bl _u32_div_f
+ mov r0, r1, lsl #0x10
+ mov r0, r0, lsr #0x10
+ add sp, sp, #0x4
+ ldmia sp!, {pc}
+
+ arm_func_start FUN_020AF334
+FUN_020AF334:
+ stmdb sp!, {r4-r6,lr}
+ sub sp, sp, #0x10
+ add r3, r2, r3
+ str r2, [sp, #0x0]
+ str r2, [sp, #0x8]
+ str r3, [sp, #0x4]
+ str r3, [sp, #0xc]
+ ldr r3, [r0, #0x0]
+ add r12, sp, #0x0
+ cmp r3, #0x0
+ beq _020AF418
+ mov r6, #0x0
+_020AF364:
+ ldr r5, [r3, #0x0]
+ ldr r4, [r12, #0x4]
+ ldr r2, [r3, #0xc]
+ cmp r5, r4
+ bne _020AF3B8
+ ldr r4, [r3, #0x4]
+ add r4, r5, r4
+ str r4, [sp, #0xc]
+ ldr r4, [r3, #0x8]
+ cmp r4, #0x0
+ strne r2, [r4, #0xc]
+ streq r2, [r0, #0x0]
+ cmp r2, #0x0
+ strne r4, [r2, #0x8]
+ ldr r4, [r1, #0x0]
+ cmp r4, #0x0
+ strne r3, [r4, #0x8]
+ ldr r4, [r1, #0x0]
+ str r4, [r3, #0xc]
+ str r6, [r3, #0x8]
+ str r3, [r1, #0x0]
+_020AF3B8:
+ ldr r5, [r3, #0x0]
+ ldr lr, [r3, #0x4]
+ ldr r4, [r12, #0x0]
+ add lr, r5, lr
+ cmp r4, lr
+ bne _020AF40C
+ str r5, [sp, #0x8]
+ ldr r5, [r3, #0x8]
+ ldr r4, [r3, #0xc]
+ cmp r5, #0x0
+ strne r4, [r5, #0xc]
+ streq r4, [r0, #0x0]
+ cmp r4, #0x0
+ strne r5, [r4, #0x8]
+ ldr lr, [r1, #0x0]
+ cmp lr, #0x0
+ strne r3, [lr, #0x8]
+ ldr lr, [r1, #0x0]
+ str lr, [r3, #0xc]
+ str r6, [r3, #0x8]
+ str r3, [r1, #0x0]
+_020AF40C:
+ mov r3, r2
+ cmp r2, #0x0
+ bne _020AF364
+_020AF418:
+ ldr r4, [r1, #0x0]
+ cmp r4, #0x0
+ ldrne r2, [r4, #0xc]
+ strne r2, [r1, #0x0]
+ cmp r4, #0x0
+ addeq sp, sp, #0x10
+ moveq r0, #0x0
+ ldmeqia sp!, {r4-r6,pc}
+_020AF438: ; 0x020AF438
+ ldr r2, [sp, #0x8]
+ mov r1, #0x0
+ str r2, [r4, #0x0]
+ ldr r3, [sp, #0xc]
+ ldr r2, [sp, #0x8]
+ sub r2, r3, r2
+ str r2, [r4, #0x4]
+ str r1, [r4, #0x8]
+ str r1, [r4, #0xc]
+ ldr r1, [r0, #0x0]
+ cmp r1, #0x0
+ strne r4, [r1, #0x8]
+ ldr r2, [r0, #0x0]
+ mov r1, #0x0
+ str r2, [r4, #0xc]
+ str r1, [r4, #0x8]
+ str r4, [r0, #0x0]
+ mov r0, #0x1
+ add sp, sp, #0x10
+ ldmia sp!, {r4-r6,pc}
+
+ arm_func_start FUN_020AF488
+FUN_020AF488:
+ stmdb sp!, {r4-r10,lr}
+ ldr r4, [r0, #0x0]
+ ldr r9, [sp, #0x20]
+ cmp r4, #0x0
+ mov r5, #0x0
+ beq _020AF4EC
+ sub r12, r9, #0x1
+ mvn lr, r12
+_020AF4A8:
+ cmp r9, #0x1
+ ldrls r8, [r4, #0x0]
+ movls r6, r5
+ movls r7, r3
+ bls _020AF4D0
+ ldr r7, [r4, #0x0]
+ add r6, r7, r12
+ and r8, lr, r6
+ sub r6, r8, r7
+ add r7, r3, r6
+_020AF4D0:
+ ldr r10, [r4, #0x4]
+ cmp r10, r7
+ movcs r5, r4
+ bhs _020AF4EC
+ ldr r4, [r4, #0xc]
+ cmp r4, #0x0
+ bne _020AF4A8
+_020AF4EC:
+ cmp r5, #0x0
+ beq _020AF5B8
+ cmp r6, #0x0
+ beq _020AF54C
+ ldr r9, [r1, #0x0]
+ cmp r9, #0x0
+ ldrne r3, [r9, #0xc]
+ strne r3, [r1, #0x0]
+ cmp r9, #0x0
+ beq _020AF5B8
+ ldr r4, [r5, #0x0]
+ mov r3, #0x0
+ str r4, [r9, #0x0]
+ str r6, [r9, #0x4]
+ str r3, [r9, #0x8]
+ str r3, [r9, #0xc]
+ ldr r3, [r0, #0x0]
+ cmp r3, #0x0
+ strne r9, [r3, #0x8]
+ ldr r4, [r0, #0x0]
+ mov r3, #0x0
+ str r4, [r9, #0xc]
+ str r3, [r9, #0x8]
+ str r9, [r0, #0x0]
+_020AF54C:
+ ldr r3, [r5, #0x4]
+ sub r3, r3, r7
+ str r3, [r5, #0x4]
+ ldr r3, [r5, #0x0]
+ add r3, r3, r7
+ str r3, [r5, #0x0]
+ ldr r3, [r5, #0x4]
+ cmp r3, #0x0
+ bne _020AF5AC
+ ldr r4, [r5, #0x8]
+ ldr r3, [r5, #0xc]
+ cmp r4, #0x0
+ strne r3, [r4, #0xc]
+ streq r3, [r0, #0x0]
+ cmp r3, #0x0
+ strne r4, [r3, #0x8]
+ ldr r0, [r1, #0x0]
+ cmp r0, #0x0
+ strne r5, [r0, #0x8]
+ ldr r3, [r1, #0x0]
+ mov r0, #0x0
+ str r3, [r5, #0xc]
+ str r0, [r5, #0x8]
+ str r5, [r1, #0x0]
+_020AF5AC:
+ str r8, [r2, #0x0]
+ mov r0, #0x1
+ ldmia sp!, {r4-r10,pc}
+_020AF5B8:
+ mov r0, #0x0
+ str r0, [r2, #0x0]
+ ldmia sp!, {r4-r10,pc}
+
+ arm_func_start FUN_020AF5C4
+FUN_020AF5C4:
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ mov r12, #0x0
+ str r12, [sp, #0x0]
+ bl FUN_020AF488
+ add sp, sp, #0x4
+ ldmia sp!, {pc}
+
+ arm_func_start FUN_020AF5E0
+FUN_020AF5E0: ; 0x020AF5E0
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldr lr, [r1, #0x0]
+ cmp lr, #0x0
+ ldrne r12, [lr, #0xc]
+ strne r12, [r1, #0x0]
+ cmp lr, #0x0
+ beq _020AF640
+ str r2, [lr, #0x0]
+ str r3, [lr, #0x4]
+ mov r1, #0x0
+ str r1, [lr, #0x8]
+ str r1, [lr, #0xc]
+ ldr r1, [r0, #0x0]
+ add sp, sp, #0x4
+ cmp r1, #0x0
+ strne lr, [r1, #0x8]
+ ldr r2, [r0, #0x0]
+ mov r1, #0x0
+ str r2, [lr, #0xc]
+ str r1, [lr, #0x8]
+ str lr, [r0, #0x0]
+ mov r0, #0x1
+ ldmia sp!, {pc}
+_020AF640:
+ mov r0, #0x0
+ add sp, sp, #0x4
+ ldmia sp!, {pc}
+
+ arm_func_start FUN_020AF64C
+FUN_020AF64C: ; 0x020AF64C
+ stmdb sp!, {r4,lr}
+ subs lr, r1, #0x1
+ mov r2, #0x0
+ beq _020AF684
+ mov r4, r0
+_020AF660:
+ add r12, r2, #0x1
+ add r2, r0, r2, lsl #0x4
+ add r3, r0, r12, lsl #0x4
+ str r3, [r2, #0xc]
+ str r4, [r3, #0x8]
+ mov r2, r12
+ cmp r12, lr
+ add r4, r4, #0x10
+ blo _020AF660
+_020AF684:
+ mov r2, #0x0
+ str r2, [r0, #0x8]
+ add r1, r0, r1, lsl #0x4
+ str r2, [r1, #-0x4]
+ ldmia sp!, {r4,pc}
+
+ arm_func_start FUN_020AF698
+FUN_020AF698: ; 0x020AF698
+ mov r1, #0x0
+ str r1, [r0, #0x0]
+ bx lr
+
+ arm_func_start FUN_020AF6A4
+FUN_020AF6A4: ; 0x020AF6A4
+ stmdb sp!, {r4-r6,lr}
+ sub sp, sp, #0x30
+ ldr r6, _020AF884 ; =0x020FF864
+ add r5, sp, #0x0
+ ldmia r6!, {r0-r3}
+ mov r12, r5
+ stmia r5!, {r0-r3}
+ ldmia r6!, {r0-r3}
+ stmia r5!, {r0-r3}
+ ldr r4, _020AF888 ; =0x021CCD6C
+ ldmia r6, {r0-r3}
+ stmia r5, {r0-r3}
+ ldr lr, [r4, #0x10]
+ ldr r1, [r4, #0xc]
+ add r0, lr, lr, lsr #0x1
+ mov r4, lr, lsr #0x1
+ sub r0, r1, r0
+ mov r3, #0x0
+_020AF6EC:
+ cmp r3, #0x0
+ beq _020AF6FC
+ cmp r3, #0x2
+ bne _020AF734
+_020AF6FC:
+ ldr r2, [r12, #0x0]
+ cmp r2, #0x0
+ beq _020AF734
+ cmp lr, #0x0
+ beq _020AF734
+ ldr r1, [r12, #0x8]
+ cmp r2, lr
+ movhi r2, lr
+ add r1, r1, r2
+ str r1, [r12, #0x8]
+ ldr r1, [r12, #0x0]
+ sub lr, lr, r2
+ sub r1, r1, r2
+ str r1, [r12, #0x0]
+_020AF734:
+ add r3, r3, #0x1
+ cmp r3, #0x4
+ add r12, r12, #0xc
+ blo _020AF6EC
+ ldr r1, [sp, #0xc]
+ add r5, sp, #0x0
+ sub r1, r1, r4
+ str r1, [sp, #0xc]
+ mov r3, #0x0
+_020AF758:
+ ldr r2, [r5, #0x0]
+ cmp r2, #0x0
+ beq _020AF790
+ cmp r0, #0x0
+ beq _020AF790
+ ldr r1, [r5, #0x4]
+ cmp r2, r0
+ movhi r2, r0
+ add r1, r1, r2
+ str r1, [r5, #0x4]
+ ldr r1, [r5, #0x0]
+ sub r0, r0, r2
+ sub r1, r1, r2
+ str r1, [r5, #0x0]
+_020AF790:
+ add r3, r3, #0x1
+ cmp r3, #0x4
+ add r5, r5, #0xc
+ blo _020AF758
+ ldr r0, _020AF888 ; =0x021CCD6C
+ bl FUN_020AF698
+ ldr r0, _020AF88C ; =0x021CCD70
+ bl FUN_020AF698
+ ldr r0, _020AF888 ; =0x021CCD6C
+ ldr r1, [r0, #0x18]
+ ldr r0, [r0, #0x14]
+ mov r1, r1, lsr #0x4
+ bl FUN_020AF64C
+ ldr r3, [sp, #0x8]
+ ldr r1, _020AF888 ; =0x021CCD6C
+ cmp r3, #0x0
+ str r0, [r1, #0x8]
+ beq _020AF7E8
+ ldr r0, _020AF88C ; =0x021CCD70
+ ldr r1, _020AF890 ; =0x021CCD74
+ mov r2, #0x0
+ bl FUN_020AF5E0
+_020AF7E8:
+ ldr r3, [sp, #0x4]
+ ldr r2, [sp, #0x8]
+ cmp r3, #0x0
+ beq _020AF804
+ ldr r0, _020AF888 ; =0x021CCD6C
+ ldr r1, _020AF890 ; =0x021CCD74
+ bl FUN_020AF5E0
+_020AF804:
+ ldr r3, [sp, #0x20]
+ cmp r3, #0x0
+ beq _020AF820
+ ldr r0, _020AF88C ; =0x021CCD70
+ ldr r1, _020AF890 ; =0x021CCD74
+ mov r2, #0x40000
+ bl FUN_020AF5E0
+_020AF820:
+ ldr r3, [sp, #0x1c]
+ ldr r0, [sp, #0x20]
+ cmp r3, #0x0
+ add r2, r0, #0x40000
+ beq _020AF840
+ ldr r0, _020AF888 ; =0x021CCD6C
+ ldr r1, _020AF890 ; =0x021CCD74
+ bl FUN_020AF5E0
+_020AF840:
+ ldr r3, [sp, #0x28]
+ cmp r3, #0x0
+ beq _020AF85C
+ ldr r0, _020AF888 ; =0x021CCD6C
+ ldr r1, _020AF890 ; =0x021CCD74
+ mov r2, #0x60000
+ bl FUN_020AF5E0
+_020AF85C:
+ ldr r3, [sp, #0x10]
+ cmp r3, #0x0
+ addeq sp, sp, #0x30
+ ldmeqia sp!, {r4-r6,pc}
+_020AF86C: ; 0x020AF86C
+ ldr r0, _020AF888 ; =0x021CCD6C
+ ldr r1, _020AF890 ; =0x021CCD74
+ add r2, r4, #0x20000
+ bl FUN_020AF5E0
+ add sp, sp, #0x30
+ ldmia sp!, {r4-r6,pc}
+ .balign 4
+_020AF884: .word 0x020FF864
+_020AF888: .word 0x021CCD6C
+_020AF88C: .word 0x021CCD70
+_020AF890: .word 0x021CCD74
+
+ arm_func_start FUN_020AF894
+FUN_020AF894: ; 0x020AF894
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldr r2, _020AF908 ; =0x7FFF0000
+ ldr r1, _020AF90C ; =0x0000FFFF
+ and r2, r0, r2
+ and r3, r0, r1
+ mov r1, r2, lsr #0x10
+ and r0, r0, #0x80000000
+ mov r2, r3, lsl #0x3
+ movs r3, r1, lsl #0x4
+ mov r0, r0, lsr #0x1f
+ beq _020AF8FC
+ cmp r0, #0x0
+ beq _020AF8DC
+ ldr r0, _020AF910 ; =0x021CCD70
+ ldr r1, _020AF914 ; =0x021CCD74
+ bl FUN_020AF334
+ b _020AF8E8
+_020AF8DC:
+ ldr r0, _020AF918 ; =0x021CCD6C
+ ldr r1, _020AF914 ; =0x021CCD74
+ bl FUN_020AF334
+_020AF8E8:
+ cmp r0, #0x0
+ movne r0, #0x0
+ add sp, sp, #0x4
+ moveq r0, #0x1
+ ldmia sp!, {pc}
+_020AF8FC:
+ mov r0, #0x2
+ add sp, sp, #0x4
+ ldmia sp!, {pc}
+ .balign 4
+_020AF908: .word 0x7FFF0000
+_020AF90C: .word 0x0000FFFF
+_020AF910: .word 0x021CCD70
+_020AF914: .word 0x021CCD74
+_020AF918: .word 0x021CCD6C
+
+ arm_func_start FUN_020AF91C
+FUN_020AF91C: ; 0x020AF91C
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ cmp r0, #0x0
+ moveq r5, #0x10
+ addne r0, r0, #0xf
+ bicne r5, r0, #0xf
+ ldr r0, _020AF9B0 ; =0x0007FFF0
+ mov r4, r1
+ cmp r5, r0
+ addcs sp, sp, #0x4
+ movcs r0, #0x0
+ ldmcsia sp!, {r4-r5,pc}
+_020AF94C: ; 0x020AF94C
+ cmp r4, #0x0
+ beq _020AF96C
+ ldr r0, _020AF9B4 ; =0x021CCD70
+ ldr r1, _020AF9B8 ; =0x021CCD74
+ add r2, sp, #0x0
+ mov r3, r5
+ bl FUN_020AF5C4
+ b _020AF980
+_020AF96C:
+ ldr r0, _020AF9BC ; =0x021CCD6C
+ ldr r1, _020AF9B8 ; =0x021CCD74
+ add r2, sp, #0x0
+ mov r3, r5
+ bl FUN_020AF5C4
+_020AF980:
+ cmp r0, #0x0
+ addeq sp, sp, #0x4
+ moveq r0, #0x0
+ ldmeqia sp!, {r4-r5,pc}
+_020AF990: ; 0x020AF990
+ ldr r1, [sp, #0x0]
+ ldr r0, _020AF9C0 ; =0x0000FFFF
+ mov r2, r5, lsr #0x4
+ and r0, r0, r1, lsr #0x3
+ orr r0, r0, r2, lsl #0x10
+ orr r0, r0, r4, lsl #0x1f
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,pc}
+ .balign 4
+_020AF9B0: .word 0x0007FFF0
+_020AF9B4: .word 0x021CCD70
+_020AF9B8: .word 0x021CCD74
+_020AF9BC: .word 0x021CCD6C
+_020AF9C0: .word 0x0000FFFF
+
+ arm_func_start FUN_020AF9C4
+FUN_020AF9C4: ; 0x020AF9C4
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldr ip, _020AFA14 ; =0x021CCD6C
+ str r0, [r12, #0xc]
+ str r1, [r12, #0x10]
+ str r2, [r12, #0x14]
+ str r3, [r12, #0x18]
+ bl FUN_020AF6A4
+ ldr r0, [sp, #0x8]
+ cmp r0, #0x0
+ addeq sp, sp, #0x4
+ ldmeqia sp!, {pc}
+ ldr r3, _020AFA18 ; =FUN_020AF91C
+ ldr r1, _020AFA1C ; =0x021064B8
+ ldr r2, _020AFA20 ; =FUN_020AF894
+ ldr r0, _020AFA24 ; =0x021064BC
+ str r3, [r1, #0x0]
+ str r2, [r0, #0x0]
+ add sp, sp, #0x4
+ ldmia sp!, {pc}
+ .balign 4
+_020AFA14: .word 0x021CCD6C
+_020AFA18: .word FUN_020AF91C
+_020AFA1C: .word 0x021064B8
+_020AFA20: .word FUN_020AF894
+_020AFA24: .word 0x021064BC
+
+ arm_func_start FUN_020AFA28
+FUN_020AFA28: ; 0x020AFA28
+ mov r0, r0, lsl #0x4
+ bx lr
+
+ arm_func_start FUN_020AFA30
+FUN_020AFA30:
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldr r0, _020AFA78 ; =0x021CCD88
+ ldr r1, [r0, #0x10]
+ ldr r0, [r0, #0xc]
+ mov r1, r1, lsr #0x4
+ bl FUN_020AF64C
+ ldr r1, _020AFA78 ; =0x021CCD88
+ str r0, [r1, #0x4]
+ mov r0, r1
+ bl FUN_020AF698
+ ldr r0, _020AFA78 ; =0x021CCD88
+ ldr r1, _020AFA7C ; =0x021CCD8C
+ ldr r3, [r0, #0x8]
+ mov r2, #0x0
+ bl FUN_020AF5E0
+ add sp, sp, #0x4
+ ldmia sp!, {pc}
+ .balign 4
+_020AFA78: .word 0x021CCD88
+_020AFA7C: .word 0x021CCD8C
+
+ arm_func_start FUN_020AFA80
+FUN_020AFA80: ; 0x020AFA80
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ mov r1, #0x10000
+ rsb r2, r1, #0x0
+ ldr r1, _020AFAC8 ; =0x0000FFFF
+ and r2, r0, r2
+ and r12, r0, r1
+ mov r3, r2, lsr #0x10
+ ldr r0, _020AFACC ; =0x021CCD88
+ ldr r1, _020AFAD0 ; =0x021CCD8C
+ mov r2, r12, lsl #0x3
+ mov r3, r3, lsl #0x3
+ bl FUN_020AF334
+_020AFAB4: ; 0x020AFAB4
+ cmp r0, #0x0
+ moveq r0, #0x1
+ movne r0, #0x0
+ add sp, sp, #0x4
+ ldmia sp!, {pc}
+ .balign 4
+_020AFAC8: .word 0x0000FFFF
+_020AFACC: .word 0x021CCD88
+_020AFAD0: .word 0x021CCD8C
+
+ arm_func_start FUN_020AFAD4
+FUN_020AFAD4: ; 0x020AFAD4
+ stmdb sp!, {r4,lr}
+ sub sp, sp, #0x8
+ cmp r0, #0x0
+ moveq r4, #0x8
+ addne r0, r0, #0x7
+ bicne r4, r0, #0x7
+ ldr r0, _020AFB98 ; =0x0007FFF8
+ cmp r4, r0
+ addcs sp, sp, #0x8
+ movcs r0, #0x0
+ ldmcsia sp!, {r4,pc}
+_020AFB00: ; 0x020AFB00
+ cmp r1, #0x0
+ beq _020AFB50
+ mov r12, #0x8
+ ldr r0, _020AFB9C ; =0x021CCD88
+ ldr r1, _020AFBA0 ; =0x021CCD8C
+ add r2, sp, #0x4
+ mov r3, r4
+ str r12, [sp, #0x0]
+ bl FUN_020AF488
+ ldr r2, [sp, #0x4]
+ add r1, r2, r4
+ cmp r1, #0x10000
+ bls _020AFB6C
+ ldr r0, _020AFB9C ; =0x021CCD88
+ ldr r1, _020AFBA0 ; =0x021CCD8C
+ mov r3, r4
+ bl FUN_020AF334
+ add sp, sp, #0x8
+ mov r0, #0x0
+ ldmia sp!, {r4,pc}
+_020AFB50:
+ ldr r0, _020AFB9C ; =0x021CCD88
+ mov r12, #0x10
+ ldr r1, _020AFBA0 ; =0x021CCD8C
+ add r2, sp, #0x4
+ mov r3, r4
+ str r12, [sp, #0x0]
+ bl FUN_020AF488
+_020AFB6C:
+ cmp r0, #0x0
+ addeq sp, sp, #0x8
+ moveq r0, #0x0
+ ldmeqia sp!, {r4,pc}
+_020AFB7C: ; 0x020AFB7C
+ ldr r1, [sp, #0x4]
+ ldr r0, _020AFBA4 ; =0x0000FFFF
+ mov r2, r4, lsr #0x3
+ and r0, r0, r1, lsr #0x3
+ orr r0, r0, r2, lsl #0x10
+ add sp, sp, #0x8
+ ldmia sp!, {r4,pc}
+ .balign 4
+_020AFB98: .word 0x0007FFF8
+_020AFB9C: .word 0x021CCD88
+_020AFBA0: .word 0x021CCD8C
+_020AFBA4: .word 0x0000FFFF
+
+ arm_func_start FUN_020AFBA8
+FUN_020AFBA8: ; 0x020AFBA8
+ stmdb sp!, {r4,lr}
+ ldr ip, _020AFBE8 ; =0x021CCD88
+ mov r4, r3
+ str r0, [r12, #0x8]
+ str r1, [r12, #0xc]
+ str r2, [r12, #0x10]
+ bl FUN_020AFA30
+_020AFBC4: ; 0x020AFBC4
+ cmp r4, #0x0
+ ldmeqia sp!, {r4,pc}
+_020AFBCC: ; 0x020AFBCC
+ ldr r3, _020AFBEC ; =FUN_020AFAD4
+ ldr r1, _020AFBF0 ; =0x021064C0
+ ldr r2, _020AFBF4 ; =FUN_020AFA80
+ ldr r0, _020AFBF8 ; =0x021064C4
+ str r3, [r1, #0x0]
+ str r2, [r0, #0x0]
+ ldmia sp!, {r4,pc}
+ .balign 4
+_020AFBE8: .word 0x021CCD88
+_020AFBEC: .word FUN_020AFAD4
+_020AFBF0: .word 0x021064C0
+_020AFBF4: .word FUN_020AFA80
+_020AFBF8: .word 0x021064C4
+
+ arm_func_start FUN_020AFBFC
+FUN_020AFBFC: ; 0x020AFBFC
+ mov r0, r0, lsl #0x4
+ bx lr
+
+ arm_func_start FUN_020AFC04
+FUN_020AFC04: ; 0x020AFC04
+ ldrh r2, [r0, #0x0]
+ cmp r2, r1
+ ldrhi r0, [r0, #0x4]
+ addhi r0, r0, r1, lsl #0x4
+ movls r0, #0x0
+ bx lr
+
+ arm_func_start FUN_020AFC1C
+FUN_020AFC1C: ; 0x020AFC1C
+ stmdb sp!, {r4-r9,lr}
+ sub sp, sp, #0x4
+ ldr r1, [r0, #0x4]
+ mov r6, #0x0
+ add r1, r1, r0
+ str r1, [r0, #0x4]
+ ldr r1, [r0, #0x8]
+ add r1, r1, r0
+ str r1, [r0, #0x8]
+ ldr r1, [r0, #0xc]
+ add r1, r1, r0
+ str r1, [r0, #0xc]
+ ldrh r1, [r0, #0x0]
+ ldr r4, [r0, #0x4]
+ ldr lr, [r0, #0x8]
+ cmp r1, #0x0
+ ldr r12, [r0, #0xc]
+ bls _020AFCCC
+ mov r1, r6
+_020AFC68:
+ add r2, r4, r6, lsl #0x4
+ ldr r5, [r2, #0xc]
+ mov r3, r6, lsl #0x4
+ add r5, lr, r5
+ str r5, [r2, #0xc]
+ ldrh r7, [r4, r3]
+ mov r5, r1
+ cmp r7, #0x0
+ bls _020AFCB4
+_020AFC8C:
+ ldr r9, [r2, #0xc]
+ add r7, r5, #0x1
+ ldr r8, [r9, r5, lsl #0x3]
+ mov r7, r7, lsl #0x10
+ add r8, r12, r8
+ str r8, [r9, r5, lsl #0x3]
+ ldrh r8, [r4, r3]
+ mov r5, r7, lsr #0x10
+ cmp r5, r8
+ blo _020AFC8C
+_020AFCB4:
+ add r2, r6, #0x1
+ mov r2, r2, lsl #0x10
+ ldrh r3, [r0, #0x0]
+ mov r6, r2, lsr #0x10
+ cmp r6, r3
+ blo _020AFC68
+_020AFCCC:
+ ldr r1, [r0, #0x14]
+ cmp r1, #0x0
+ addeq sp, sp, #0x4
+ ldmeqia sp!, {r4-r9,pc}
+_020AFCDC: ; 0x020AFCDC
+ add r1, r1, r0
+ str r1, [r0, #0x14]
+ ldr r1, [r0, #0x14]
+ mov r12, #0x0
+ add r2, r1, #0x8
+ ldr r0, [r2, #0x4]
+ add r0, r0, r2
+ str r0, [r2, #0x4]
+ ldrh r0, [r1, #0x8]
+ cmp r0, #0x0
+ addls sp, sp, #0x4
+ ldmlsia sp!, {r4-r9,pc}
+_020AFD0C: ; 0x020AFD0C
+ mov r0, r12
+ mov r6, r12
+_020AFD14:
+ ldr r5, [r2, #0x4]
+ mov r3, r6
+ add r1, r5, r0
+ ldr r4, [r1, #0x4]
+ add r4, r4, r2
+ str r4, [r1, #0x4]
+ ldr r4, [r1, #0x8]
+ add r4, r4, r2
+ str r4, [r1, #0x8]
+ ldrh r4, [r5, r0]
+ cmp r4, #0x0
+ bls _020AFD6C
+ mov r7, r6
+_020AFD48:
+ ldr r5, [r1, #0x8]
+ add r3, r3, #0x1
+ ldr r4, [r5, r7]
+ add r4, r4, r2
+ str r4, [r5, r7]
+ ldrh r4, [r1, #0x0]
+ add r7, r7, #0x4
+ cmp r3, r4
+ blo _020AFD48
+_020AFD6C:
+ ldrh r1, [r2, #0x0]
+ add r12, r12, #0x1
+ add r0, r0, #0xc
+ cmp r12, r1
+ blo _020AFD14
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r9,pc}
+
+ arm_func_start thunk_FUN_020afda0
+thunk_FUN_020afda0: ; 0x020AFD88
+ ldr ip, _020AFD90 ; =FUN_020AFDA0
+ bx r12
+ .balign 4
+_020AFD90: .word FUN_020AFDA0
+
+ arm_func_start thunk_FUN_020afda0_2
+thunk_FUN_020afda0_2: ; 0x020AFD94
+ ldr ip, _020AFD9C ; =FUN_020AFDA0
+ bx r12
+ .balign 4
+_020AFD9C: .word FUN_020AFDA0
+
+ arm_func_start FUN_020AFDA0
+FUN_020AFDA0: ; 0x020AFDA0
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ mov r5, r1
+ ldr r1, _020AFDE4 ; =0x41424E4B
+ bl FUN_020B01F8
+ movs r4, r0
+ moveq r0, #0x0
+ addeq sp, sp, #0x4
+ streq r0, [r5, #0x0]
+ ldmeqia sp!, {r4-r5,pc}
+_020AFDC8: ; 0x020AFDC8
+ add r0, r4, #0x8
+ bl FUN_020AFC1C
+ add r0, r4, #0x8
+ str r0, [r5, #0x0]
+ mov r0, #0x1
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,pc}
+ .balign 4
+_020AFDE4: .word 0x41424E4B
+
+ arm_func_start FUN_020AFDE8
+FUN_020AFDE8: ; 0x020AFDE8
+ stmdb sp!, {r4-r6,lr}
+ mov r5, r0
+ ldr r1, [r5, #0x4]
+ add r1, r1, r5
+ str r1, [r5, #0x4]
+ bl FUN_020AFF10
+ ldrh r1, [r5, #0x0]
+ mov r4, r0
+ mov r6, #0x0
+ cmp r1, #0x0
+ bls _020AFE44
+_020AFE14:
+ mov r0, r5
+ mov r1, r6
+ bl FUN_020AFE8C
+ ldr r2, [r0, #0x4]
+ add r1, r6, #0x1
+ add r2, r2, r4
+ str r2, [r0, #0x4]
+ mov r0, r1, lsl #0x10
+ ldrh r1, [r5, #0x0]
+ mov r6, r0, lsr #0x10
+ cmp r6, r1
+ blo _020AFE14
+_020AFE44:
+ ldr r0, [r5, #0xc]
+ cmp r0, #0x0
+ beq _020AFE6C
+ add r0, r0, r5
+ str r0, [r5, #0xc]
+ ldr r1, [r5, #0xc]
+ ldr r0, [r1, #0x4]
+ add r0, r0, r1
+ str r0, [r1, #0x4]
+ str r1, [r5, #0xc]
+_020AFE6C:
+ ldr r0, [r5, #0x14]
+ cmp r0, #0x0
+ ldmeqia sp!, {r4-r6,pc}
+_020AFE78: ; 0x020AFE78
+ add r0, r0, r5
+ str r0, [r5, #0x14]
+ ldr r0, [r5, #0x14]
+ bl FUN_020AFF00
+ ldmia sp!, {r4-r6,pc}
+
+ arm_func_start FUN_020AFE8C
+FUN_020AFE8C: ; 0x020AFE8C
+ ldrh r2, [r0, #0x0]
+ cmp r1, r2
+ movcs r0, #0x0
+ bxcs lr
+ ldrh r2, [r0, #0x2]
+ ands r2, r2, #0x1
+ ldrne r0, [r0, #0x4]
+ addne r0, r0, r1, lsl #0x4
+ ldreq r0, [r0, #0x4]
+ addeq r0, r0, r1, lsl #0x3
+ bx lr
+
+ arm_func_start FUN_020AFEB8
+FUN_020AFEB8: ; 0x020AFEB8
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ mov r5, r1
+ ldr r1, _020AFEFC ; =0x4345424B
+ bl FUN_020B01F8
+ movs r4, r0
+ moveq r0, #0x0
+ addeq sp, sp, #0x4
+ streq r0, [r5, #0x0]
+ ldmeqia sp!, {r4-r5,pc}
+_020AFEE0: ; 0x020AFEE0
+ add r0, r4, #0x8
+ bl FUN_020AFDE8
+ add r0, r4, #0x8
+ str r0, [r5, #0x0]
+ mov r0, #0x1
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,pc}
+ .balign 4
+_020AFEFC: .word 0x4345424B
+
+ arm_func_start FUN_020AFF00
+FUN_020AFF00: ; 0x020AFF00
+ ldr ip, _020AFF0C ; =FUN_020B01B0
+ add r0, r0, #0x8
+ bx r12
+ .balign 4
+_020AFF0C: .word FUN_020B01B0
+
+ arm_func_start FUN_020AFF10
+FUN_020AFF10: ; 0x020AFF10
+ ldrh r1, [r0, #0x2]
+ ands r1, r1, #0x1
+ ldrneh r1, [r0, #0x0]
+ ldrne r0, [r0, #0x4]
+ addne r0, r0, r1, lsl #0x4
+ ldreqh r1, [r0, #0x0]
+ ldreq r0, [r0, #0x4]
+ addeq r0, r0, r1, lsl #0x3
+ bx lr
+
+ arm_func_start FUN_020AFF34
+FUN_020AFF34: ; 0x020AFF34
+ ldrh r2, [r0, #0x0]
+ cmp r1, r2
+ ldrcc r0, [r0, #0x4]
+ addcc r0, r0, r1, lsl #0x3
+ movcs r0, #0x0
+ bx lr
+
+ arm_func_start FUN_020AFF4C
+FUN_020AFF4C: ; 0x020AFF4C
+ stmdb sp!, {r4,lr}
+ ldr r1, [r0, #0x4]
+ mov r4, #0x0
+ add r1, r1, r0
+ str r1, [r0, #0x4]
+ ldr r1, [r0, #0x8]
+ add r1, r1, r0
+ str r1, [r0, #0x8]
+ ldrh r1, [r0, #0x0]
+ ldr lr, [r0, #0x4]
+ cmp r1, #0x0
+ bls _020AFFA8
+_020AFF7C:
+ add r3, lr, r4, lsl #0x3
+ ldr r12, [r0, #0x8]
+ ldr r2, [r3, #0x4]
+ add r1, r4, #0x1
+ add r2, r12, r2
+ str r2, [r3, #0x4]
+ mov r1, r1, lsl #0x10
+ ldrh r2, [r0, #0x0]
+ mov r4, r1, lsr #0x10
+ cmp r4, r2
+ blo _020AFF7C
+_020AFFA8:
+ ldr r1, [r0, #0x10]
+ cmp r1, #0x0
+ ldmeqia sp!, {r4,pc}
+_020AFFB4: ; 0x020AFFB4
+ add r1, r1, r0
+ str r1, [r0, #0x10]
+ ldr r0, [r0, #0x10]
+ bl FUN_020AFFC8
+ ldmia sp!, {r4,pc}
+
+ arm_func_start FUN_020AFFC8
+FUN_020AFFC8: ; 0x020AFFC8
+ ldr ip, _020AFFD4 ; =FUN_020B01B0
+ add r0, r0, #0x8
+ bx r12
+ .balign 4
+_020AFFD4: .word FUN_020B01B0
+
+ arm_func_start FUN_020AFFD8
+FUN_020AFFD8: ; 0x020AFFD8
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ mov r5, r1
+ ldr r1, _020B001C ; =0x4D43424B
+ bl FUN_020B01F8
+ movs r4, r0
+ moveq r0, #0x0
+ addeq sp, sp, #0x4
+ streq r0, [r5, #0x0]
+ ldmeqia sp!, {r4-r5,pc}
+_020B0000: ; 0x020B0000
+ add r0, r4, #0x8
+ bl FUN_020AFF4C
+ add r0, r4, #0x8
+ str r0, [r5, #0x0]
+ mov r0, #0x1
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,pc}
+ .balign 4
+_020B001C: .word 0x4D43424B
+
+ arm_func_start FUN_020B0020
+FUN_020B0020: ; 0x020B0020
+ ldr r1, [r0, #0x14]
+ add r1, r1, r0
+ str r1, [r0, #0x14]
+ bx lr
+
+ arm_func_start FUN_020B0030
+FUN_020B0030: ; 0x020B0030
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ mov r5, r1
+ ldr r1, _020B0074 ; =0x43484152
+ bl FUN_020B01F8
+ movs r4, r0
+ moveq r0, #0x0
+ addeq sp, sp, #0x4
+ streq r0, [r5, #0x0]
+ ldmeqia sp!, {r4-r5,pc}
+_020B0058: ; 0x020B0058
+ add r0, r4, #0x8
+ bl FUN_020B0020
+ add r0, r4, #0x8
+ str r0, [r5, #0x0]
+ mov r0, #0x1
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,pc}
+ .balign 4
+_020B0074: .word 0x43484152
+
+ arm_func_start FUN_020B0078
+FUN_020B0078: ; 0x020B0078
+ ldr r1, [r0, #0x14]
+ add r1, r1, r0
+ str r1, [r0, #0x14]
+ bx lr
+
+ arm_func_start FUN_020B0088
+FUN_020B0088: ; 0x020B0088
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ mov r5, r1
+ ldr r1, _020B00CC ; =0x43484152
+ bl FUN_020B01F8
+ movs r4, r0
+ moveq r0, #0x0
+ addeq sp, sp, #0x4
+ streq r0, [r5, #0x0]
+ ldmeqia sp!, {r4-r5,pc}
+_020B00B0: ; 0x020B00B0
+ add r0, r4, #0x8
+ bl FUN_020B0078
+ add r0, r4, #0x8
+ str r0, [r5, #0x0]
+ mov r0, #0x1
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,pc}
+ .balign 4
+_020B00CC: .word 0x43484152
+
+ arm_func_start FUN_020B00D0
+FUN_020B00D0: ; 0x020B00D0
+ ldr r1, [r0, #0xc]
+ add r1, r1, r0
+ str r1, [r0, #0xc]
+ bx lr
+
+ arm_func_start FUN_020B00E0
+FUN_020B00E0: ; 0x020B00E0
+ ldr r1, [r0, #0x4]
+ add r1, r1, r0
+ str r1, [r0, #0x4]
+ bx lr
+
+ arm_func_start FUN_020B00F0
+FUN_020B00F0: ; 0x020B00F0
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ mov r5, r1
+ ldr r1, _020B0134 ; =0x50434D50
+ bl FUN_020B01F8
+ movs r4, r0
+ moveq r0, #0x0
+ addeq sp, sp, #0x4
+ streq r0, [r5, #0x0]
+ ldmeqia sp!, {r4-r5,pc}
+_020B0118: ; 0x020B0118
+ add r0, r4, #0x8
+ bl FUN_020B00E0
+ add r0, r4, #0x8
+ str r0, [r5, #0x0]
+ mov r0, #0x1
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,pc}
+ .balign 4
+_020B0134: .word 0x50434D50
+
+ arm_func_start FUN_020B0138
+FUN_020B0138: ; 0x020B0138
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ mov r5, r1
+ ldr r1, _020B017C ; =0x504C5454
+ bl FUN_020B01F8
+ movs r4, r0
+ moveq r0, #0x0
+ addeq sp, sp, #0x4
+ streq r0, [r5, #0x0]
+ ldmeqia sp!, {r4-r5,pc}
+_020B0160: ; 0x020B0160
+ add r0, r4, #0x8
+ bl FUN_020B00D0
+ add r0, r4, #0x8
+ str r0, [r5, #0x0]
+ mov r0, #0x1
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,pc}
+ .balign 4
+_020B017C: .word 0x504C5454
+
+ arm_func_start FUN_020B0180
+FUN_020B0180: ; 0x020B0180
+ stmdb sp!, {r4,lr}
+ mov r4, r1
+ ldr r1, _020B01AC ; =0x5343524E
+ bl FUN_020B01F8
+_020B0190: ; 0x020B0190
+ cmp r0, #0x0
+ addne r0, r0, #0x8
+ strne r0, [r4, #0x0]
+ movne r0, #0x1
+ moveq r0, #0x0
+ streq r0, [r4, #0x0]
+ ldmia sp!, {r4,pc}
+ .balign 4
+_020B01AC: .word 0x5343524E
+
+ arm_func_start FUN_020B01B0
+FUN_020B01B0: ; 0x020B01B0
+ ldr r1, [r0, #0x4]
+ mov r12, #0x0
+ add r1, r1, r0
+ str r1, [r0, #0x4]
+ ldrh r1, [r0, #0x0]
+ cmp r1, #0x0
+ bxls lr
+_020B01CC:
+ ldr r3, [r0, #0x4]
+ add r1, r12, #0x1
+ ldr r2, [r3, r12, lsl #0x2]
+ mov r1, r1, lsl #0x10
+ add r2, r0, r2
+ str r2, [r3, r12, lsl #0x2]
+ ldrh r2, [r0, #0x0]
+ mov r12, r1, lsr #0x10
+ cmp r12, r2
+ blo _020B01CC
+ bx lr
+
+ arm_func_start FUN_020B01F8
+FUN_020B01F8:
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldrh r2, [r0, #0xc]
+ ldrh r12, [r0, #0xe]
+ mov lr, #0x0
+ add r0, r0, r2
+ cmp r12, #0x0
+ bls _020B0244
+_020B0218:
+ ldr r2, [r0, #0x0]
+ cmp r2, r1
+ addeq sp, sp, #0x4
+ ldmeqia sp!, {pc}
+ add r2, lr, #0x1
+ mov r2, r2, lsl #0x10
+ ldr r3, [r0, #0x4]
+ mov lr, r2, lsr #0x10
+ cmp lr, r12
+ add r0, r0, r3
+ blo _020B0218
+_020B0244:
+ mov r0, #0x0
+ add sp, sp, #0x4
+ ldmia sp!, {pc}
+
+ arm_func_start FUN_020B0250
+FUN_020B0250: ; 0x020B0250
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ ldr r5, _020B02C0 ; =0x04000470
+ mov r0, r0, lsl #0xc
+ str r0, [r5, #0x0]
+ mov r4, r1, lsl #0xc
+ ldr r12, [sp, #0x10]
+ ldr r0, [sp, #0x14]
+ ldr r1, [sp, #0x1c]
+ str r4, [r5, #0x0]
+ mov r4, r2, lsl #0xc
+ ldr r2, [sp, #0x18]
+ ldr lr, _020B02C4 ; =0x0400046C
+ str r4, [r5, #0x0]
+ mov r4, r3, lsl #0xc
+ ldr r3, [sp, #0x20]
+ str r4, [lr, #0x0]
+ mov r12, r12, lsl #0xc
+ str r12, [lr, #0x0]
+ mov r12, #0x1000
+ mov r0, r0, lsl #0xc
+ mov r1, r1, lsl #0xc
+ mov r2, r2, lsl #0xc
+ mov r3, r3, lsl #0xc
+ str r12, [lr, #0x0]
+ bl FUN_020B0340
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,pc}
+ .balign 4
+_020B02C0: .word 0x04000470
+_020B02C4: .word 0x0400046C
+
+ arm_func_start FUN_020B02C8
+FUN_020B02C8: ; 0x020B02C8
+ stmdb sp!, {lr}
+ sub sp, sp, #0x14
+ ldr r2, _020B0330 ; =0xBFFF0000
+ ldr r0, _020B0334 ; =0x04000580
+ mov r1, #0x400000
+ str r2, [r0, #0x0]
+ rsb r0, r1, #0x0
+ str r0, [sp, #0x0]
+ str r1, [sp, #0x4]
+ mov r0, #0x0
+ str r1, [sp, #0x8]
+ mov r1, #0x1
+ str r1, [sp, #0xc]
+ mov r2, r0
+ mov r1, #0xc0000
+ mov r3, #0x100000
+ str r0, [sp, #0x10]
+ bl G3i_OrthoW_
+ ldr r1, _020B0338 ; =0x0400044C
+ mov r2, #0x0
+ ldr r0, _020B033C ; =0x04000440
+ str r2, [r1, #0x0]
+ mov r1, #0x1
+ str r1, [r0, #0x0]
+ add sp, sp, #0x14
+ ldmia sp!, {pc}
+ .balign 4
+_020B0330: .word 0xBFFF0000
+_020B0334: .word 0x04000580
+_020B0338: .word 0x0400044C
+_020B033C: .word 0x04000440
+
+ arm_func_start FUN_020B0340
+FUN_020B0340: ; 0x020B0340
+ stmdb sp!, {r4-r6,lr}
+ mov r3, r3, lsl #0x8
+ mov r0, r0, lsl #0x8
+ mov r4, r3, asr #0x10
+ mov r3, r0, asr #0x10
+ mov r0, r4, lsl #0x10
+ mov r3, r3, lsl #0x10
+ mov r1, r1, lsl #0x8
+ mov r1, r1, asr #0x10
+ mov r1, r1, lsl #0x10
+ mov r2, r2, lsl #0x8
+ mov r2, r2, asr #0x10
+ mov r2, r2, lsl #0x10
+ ldr ip, _020B03F4 ; =0x04000500
+ mov lr, #0x1
+ mov r6, r0, lsr #0x10
+ mov r5, r3, lsr #0x10
+ mov r3, r1, lsr #0x10
+ mov r1, r2, lsr #0x10
+ ldr r4, _020B03F8 ; =0x04000488
+ str lr, [r12, #0x0]
+ orr r0, r5, r6, lsl #0x10
+ ldr lr, _020B03FC ; =0x0400048C
+ str r0, [r4, #0x0]
+ mov r0, #0x10000000
+ str r0, [lr, #0x0]
+ mov r12, #0x0
+ str r12, [lr, #0x0]
+ orr r2, r3, r6, lsl #0x10
+ ldr r0, _020B0400 ; =0x10001000
+ str r2, [r4, #0x0]
+ str r0, [lr, #0x0]
+ str r12, [lr, #0x0]
+ orr r0, r3, r1, lsl #0x10
+ str r0, [r4, #0x0]
+ mov r0, #0x1000
+ str r0, [lr, #0x0]
+ str r12, [lr, #0x0]
+ orr r0, r5, r1, lsl #0x10
+ str r0, [r4, #0x0]
+ str r12, [lr, #0x0]
+ ldr r0, _020B0404 ; =0x04000504
+ str r12, [lr, #0x0]
+ str r12, [r0, #0x0]
+ ldmia sp!, {r4-r6,pc}
+ .balign 4
+_020B03F4: .word 0x04000500
+_020B03F8: .word 0x04000488
+_020B03FC: .word 0x0400048C
+_020B0400: .word 0x10001000
+_020B0404: .word 0x04000504
+
+ arm_func_start FUN_020B0408
+FUN_020B0408:
+ ldr r1, [r0, #0x14]
+ cmp r1, #0x0
+ ldreq r0, [r0, #0x18]
+ ldreq r1, [r0, #0x8]
+ cmp r1, #0x2
+ beq _020B0428
+ cmp r1, #0x4
+ bne _020B0430
+_020B0428:
+ mov r0, #0x1
+ bx lr
+_020B0430:
+ mov r0, #0x0
+ bx lr
+
+ arm_func_start FUN_020B0438
+FUN_020B0438: ; 0x020B0438
+ ldr ip, _020B0444 ; =FUN_020B0448
+ str r1, [r0, #0x18]
+ bx r12
+ .balign 4
+_020B0444: .word FUN_020B0448
+
+ arm_func_start FUN_020B0448
+FUN_020B0448: ; 0x020B0448
+ ldr r1, [r0, #0x10]
+ cmp r1, #0x0
+ movgt r2, #0x1
+ ldr r1, [r0, #0x4]
+ movle r2, #0x0
+ eors r1, r2, r1
+ beq _020B047C
+ ldr r2, [r0, #0x18]
+ ldrh r1, [r2, #0x2]
+ ldr r2, [r2, #0xc]
+ add r1, r2, r1, lsl #0x3
+ str r1, [r0, #0x0]
+ b _020B0494
+_020B047C:
+ ldr r2, [r0, #0x18]
+ ldrh r1, [r2, #0x0]
+ ldr r2, [r2, #0xc]
+ add r1, r2, r1, lsl #0x3
+ sub r1, r1, #0x8
+ str r1, [r0, #0x0]
+_020B0494:
+ ldr ip, _020B04A4 ; =FUN_020B0534
+ mov r1, #0x0
+ str r1, [r0, #0xc]
+ bx r12
+ .balign 4
+_020B04A4: .word FUN_020B0534
+
+ arm_func_start FUN_020B04A8
+FUN_020B04A8: ; 0x020B04A8
+ mov r1, #0x0
+ str r1, [r0, #0x0]
+ str r1, [r0, #0x4]
+ str r1, [r0, #0x8]
+ strh r1, [r0, #0xc]
+ bx lr
+
+ arm_func_start FUN_020B04C0
+FUN_020B04C0:
+ stmdb sp!, {r4,lr}
+ mov r4, r0
+ add r0, r4, #0x1c
+ bl FUN_020B04A8
+ mov r1, #0x0
+ str r1, [r4, #0x0]
+ str r1, [r4, #0x4]
+ mov r0, #0x1
+ str r0, [r4, #0x8]
+ str r1, [r4, #0xc]
+ mov r0, #0x1000
+ str r0, [r4, #0x10]
+ str r1, [r4, #0x14]
+ str r1, [r4, #0x18]
+ ldmia sp!, {r4,pc}
+_020B04FC: ; 0x020B04FC
+ ldr r1, [r0, #0x18]
+ ldr r2, [r0, #0x0]
+ ldr r0, [r1, #0xc]
+ sub r0, r2, r0
+ mov r0, r0, lsl #0xd
+ mov r0, r0, lsr #0x10
+ bx lr
+
+ arm_func_start FUN_020B0518
+FUN_020B0518:
+ stmdb sp!, {r4,lr}
+ mov r4, r0
+ bl FUN_020B06EC
+_020B0524: ; 0x020B0524
+ cmp r0, #0x0
+ movne r1, #0x0
+ strne r1, [r4, #0xc]
+ ldmia sp!, {r4,pc}
+
+ arm_func_start FUN_020B0534
+FUN_020B0534:
+ stmdb sp!, {r4-r8,lr}
+ mov r8, r0
+ ldr r0, [r8, #0x8]
+ mov r7, #0x0
+ cmp r0, #0x1
+ movne r0, r7
+ ldmneia sp!, {r4-r8,pc}
+_020B0550: ; 0x020B0550
+ ldr r2, [r8, #0x10]
+ mov r0, #0x800
+ smull r3, r1, r2, r1
+ adds r0, r3, r0
+ adc r1, r1, r7
+ mov r0, r0, lsr #0xc
+ orr r0, r0, r1, lsl #0x14
+ bl abs
+ ldr r1, [r8, #0xc]
+ add r6, r8, #0xc
+ add r0, r1, r0
+ str r0, [r8, #0xc]
+ mov r4, r7
+ mov r5, #0x1
+ b _020B06A8
+_020B058C:
+ ldr r0, [r8, #0x0]
+ ldr r1, [r6, #0x0]
+ ldrh r0, [r0, #0x4]
+ mov r7, r5
+ sub r0, r1, r0, lsl #0xc
+ str r0, [r6, #0x0]
+ ldr r0, [r8, #0x10]
+ cmp r0, #0x0
+ movgt r1, r5
+ ldr r0, [r8, #0x4]
+ movle r1, r4
+ eors r0, r1, r0
+ ldrne r0, [r8, #0x0]
+ addne r0, r0, #0x8
+ strne r0, [r8, #0x0]
+ ldreq r0, [r8, #0x0]
+ subeq r0, r0, #0x8
+ streq r0, [r8, #0x0]
+ ldr r1, [r8, #0x10]
+ ldr r0, [r8, #0x0]
+ cmp r1, #0x0
+ movgt r2, r5
+ ldr r1, [r8, #0x4]
+ movle r2, r4
+ eors r1, r2, r1
+ beq _020B0614
+ ldr r2, [r8, #0x18]
+ ldrh r1, [r2, #0x0]
+ ldr r2, [r2, #0xc]
+ add r1, r2, r1, lsl #0x3
+ cmp r0, r1
+ movcs r0, r5
+ movcc r0, r4
+ b _020B0634
+_020B0614:
+ ldr r2, [r8, #0x18]
+ ldrh r1, [r2, #0x2]
+ ldr r2, [r2, #0xc]
+ add r1, r2, r1, lsl #0x3
+ sub r1, r1, #0x8
+ cmp r0, r1
+ movls r0, r5
+ movhi r0, r4
+_020B0634:
+ cmp r0, #0x0
+ beq _020B0644
+ mov r0, r8
+ bl FUN_020B0710
+_020B0644:
+ ldr r0, [r8, #0x1c]
+ cmp r0, #0x0
+ beq _020B06A8
+ ldr r0, [r8, #0x18]
+ ldr r2, [r8, #0x1c]
+ ldr r1, [r8, #0x0]
+ ldr r0, [r0, #0xc]
+ cmp r2, #0x2
+ sub r0, r1, r0
+ mov r0, r0, lsl #0xd
+ mov r1, r0, lsr #0x10
+ beq _020B0680
+ cmp r2, #0x3
+ beq _020B069C
+ b _020B06A8
+_020B0680:
+ ldrh r0, [r8, #0x28]
+ cmp r1, r0
+ bne _020B06A8
+ ldr r0, [r8, #0x20]
+ ldr r2, [r8, #0x24]
+ blx r2
+ b _020B06A8
+_020B069C:
+ ldr r0, [r8, #0x20]
+ ldr r2, [r8, #0x24]
+ blx r2
+_020B06A8:
+ ldr r0, [r8, #0x8]
+ cmp r0, #0x0
+ beq _020B06CC
+ ldr r0, [r8, #0x0]
+ ldr r1, [r8, #0xc]
+ ldrh r0, [r0, #0x4]
+ cmp r1, r0, lsl #0xc
+ movge r0, r5
+ bge _020B06D0
+_020B06CC:
+ mov r0, r4
+_020B06D0:
+ cmp r0, #0x0
+ bne _020B058C
+ mov r0, r7
+ ldmia sp!, {r4-r8,pc}
+
+ arm_func_start FUN_020B06E0
+FUN_020B06E0: ; 0x020B06E0
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0x0]
+ bx lr
+
+ arm_func_start FUN_020B06EC
+FUN_020B06EC:
+ ldr r3, [r0, #0x18]
+ ldrh r2, [r3, #0x0]
+ cmp r1, r2
+ ldrcc r2, [r3, #0xc]
+ addcc r1, r2, r1, lsl #0x3
+ strcc r1, [r0, #0x0]
+ movcc r0, #0x1
+ movcs r0, #0x0
+ bx lr
+
+ arm_func_start FUN_020B0710
+FUN_020B0710: ; 0x020B0710
+ stmdb sp!, {r4,lr}
+ mov r4, r0
+ ldr r0, [r4, #0x14]
+ cmp r0, #0x0
+ ldreq r0, [r4, #0x18]
+ ldreq r0, [r0, #0x8]
+ cmp r0, #0x3
+ beq _020B0738
+ cmp r0, #0x4
+ bne _020B07B4
+_020B0738:
+ ldr r0, [r4, #0x4]
+ eor r0, r0, #0x1
+ str r0, [r4, #0x4]
+ ldr r1, [r4, #0x18]
+ ldr r2, [r4, #0x0]
+ ldrh r0, [r1, #0x2]
+ ldr r1, [r1, #0xc]
+ add r0, r1, r0, lsl #0x3
+ sub r0, r0, #0x8
+ cmp r2, r0
+ bhi _020B0800
+ ldr r0, [r4, #0x1c]
+ cmp r0, #0x1
+ bne _020B0780
+ ldr r0, [r4, #0x20]
+ ldr r1, [r4, #0xc]
+ ldr r2, [r4, #0x24]
+ blx r2
+_020B0780:
+ ldr r0, [r4, #0x14]
+ cmp r0, #0x0
+ ldreq r0, [r4, #0x18]
+ ldreq r0, [r0, #0x8]
+ cmp r0, #0x2
+ beq _020B07A8
+ cmp r0, #0x4
+ movne r0, #0x0
+ strne r0, [r4, #0x8]
+ bne _020B0800
+_020B07A8:
+ mov r0, r4
+ bl FUN_020B0448
+ b _020B0800
+_020B07B4:
+ ldr r0, [r4, #0x1c]
+ cmp r0, #0x1
+ bne _020B07D0
+ ldr r0, [r4, #0x20]
+ ldr r1, [r4, #0xc]
+ ldr r2, [r4, #0x24]
+ blx r2
+_020B07D0:
+ ldr r0, [r4, #0x14]
+ cmp r0, #0x0
+ ldreq r0, [r4, #0x18]
+ ldreq r0, [r0, #0x8]
+ cmp r0, #0x2
+ beq _020B07F8
+ cmp r0, #0x4
+ movne r0, #0x0
+ strne r0, [r4, #0x8]
+ bne _020B0800
+_020B07F8:
+ mov r0, r4
+ bl FUN_020B0448
+_020B0800:
+ ldr r1, [r4, #0x18]
+ ldr r2, [r4, #0x0]
+ ldrh r0, [r1, #0x0]
+ ldr r1, [r1, #0xc]
+ add r0, r1, r0, lsl #0x3
+ sub r0, r0, #0x8
+ cmp r2, r0
+ strhi r0, [r4, #0x0]
+ ldmhiia sp!, {r4,pc}
+_020B0824: ; 0x020B0824
+ cmp r2, r1
+ strcc r1, [r4, #0x0]
+ ldmia sp!, {r4,pc}
+_020B0830: ; 0x020B0830
+ ldrh r3, [r0, #0x6]
+ ldrh r2, [r0, #0x8]
+ mov r12, #0x0
+ add r1, r3, #0x1
+ cmp r2, r1
+ bgt _020B0854
+ ldrh r0, [r0, #0x4]
+ cmp r0, r3
+ movls r12, #0x1
+_020B0854:
+ cmp r12, #0x0
+ subne r0, r3, r2
+ addne r0, r0, #0x1
+ movne r0, r0, lsl #0x10
+ movne r0, r0, lsr #0x10
+ moveq r0, #0x0
+ bx lr
+
+ arm_func_start FUN_020B0870
+FUN_020B0870: ; 0x020B0870
+ stmdb sp!, {r4,lr}
+ mov r4, r0
+ bl FUN_020B09B4
+ mov r0, r4
+ bl FUN_020B0888
+ ldmia sp!, {r4,pc}
+
+ arm_func_start FUN_020B0888
+FUN_020B0888: ; 0x020B0888
+ stmdb sp!, {r4-r6,lr}
+ mov r5, r0
+ ldr r0, [r5, #0x14]
+ cmp r0, #0x0
+ beq _020B0944
+ ldrh r2, [r5, #0x6]
+ ldrh r1, [r5, #0x8]
+ mov r3, #0x0
+ add r0, r2, #0x1
+ cmp r1, r0
+ bgt _020B08C0
+ ldrh r0, [r5, #0x4]
+ cmp r0, r2
+ movls r3, #0x1
+_020B08C0:
+ cmp r3, #0x0
+ moveq r4, #0x0
+ beq _020B08E0
+ ldrh r0, [r5, #0x4]
+ sub r0, r2, r0
+ add r0, r0, #0x1
+ mov r0, r0, lsl #0x10
+ mov r4, r0, lsr #0xd
+_020B08E0:
+ ldr r2, [r5, #0x0]
+ ldr r1, _020B09AC ; =0x021CCDA0
+ mov r0, #0x540
+ mla r1, r2, r0, r1
+ ldrh r0, [r5, #0x4]
+ add r2, r1, #0x100
+ mov r1, r4
+ add r6, r2, r0, lsl #0x3
+ mov r0, r6
+ bl DC_InvalidateRange
+ ldr r0, _020B09B0 ; =0x02106814
+ mvn r1, #0x0
+ ldr r0, [r0, #0x0]
+ cmp r0, r1
+ beq _020B0930
+ mov r1, r6
+ mov r3, r4
+ mov r2, #0xc0
+ bl MI_DmaFill32
+ b _020B0998
+_020B0930:
+ mov r1, r6
+ mov r2, r4
+ mov r0, #0xc0
+ bl MIi_CpuClear32
+ b _020B0998
+_020B0944:
+ ldr r2, [r5, #0x0]
+ ldr r1, _020B09AC ; =0x021CCDA0
+ mov r0, #0x540
+ mla r1, r2, r0, r1
+ ldrh r2, [r5, #0x4]
+ ldrh r0, [r5, #0x6]
+ add r1, r1, #0x100
+ add r3, r1, r2, lsl #0x3
+ sub r0, r0, r2
+ add r0, r0, #0x1
+ mov r0, r0, lsl #0x10
+ movs r2, r0, lsr #0x10
+ mov r0, #0x0
+ beq _020B0998
+ mov r1, #0xc0
+_020B0980:
+ add r0, r0, #0x1
+ mov r0, r0, lsl #0x10
+ mov r0, r0, lsr #0x10
+ cmp r0, r2
+ strh r1, [r3], #0x8
+ blo _020B0980
+_020B0998:
+ ldrh r0, [r5, #0x4]
+ strh r0, [r5, #0x8]
+ ldrh r0, [r5, #0xa]
+ strh r0, [r5, #0xe]
+ ldmia sp!, {r4-r6,pc}
+ .balign 4
+_020B09AC: .word 0x021CCDA0
+_020B09B0: .word 0x02106814
+
+ arm_func_start FUN_020B09B4
+FUN_020B09B4: ; 0x020B09B4
+ stmdb sp!, {r4-r10,lr}
+ mov r7, r0
+ ldr r0, [r7, #0x14]
+ cmp r0, #0x0
+ beq _020B0A48
+ ldr r5, [r7, #0x0]
+ ldr r1, _020B0BA8 ; =0x021CCDA0
+ mov r0, #0x540
+ mla r1, r5, r0, r1
+ ldrh r2, [r7, #0x4]
+ ldrh r0, [r7, #0x6]
+ add r1, r1, #0x100
+ add r4, r1, r2, lsl #0x3
+ sub r0, r0, r2
+ add r0, r0, #0x1
+ mov r0, r0, lsl #0x13
+ mov r6, r0, lsr #0x10
+ mov r2, r2, lsl #0x13
+ mov r0, r4
+ mov r1, r6
+ mov r7, r2, lsr #0x10
+ bl DC_FlushRange
+_020B0A0C: ; 0x020B0A0C
+ cmp r5, #0x0
+ beq _020B0A20
+ cmp r5, #0x1
+ beq _020B0A34
+ ldmia sp!, {r4-r10,pc}
+_020B0A20:
+ mov r0, r4
+ mov r1, r7
+ mov r2, r6
+ bl GX_LoadOAM
+ ldmia sp!, {r4-r10,pc}
+_020B0A34:
+ mov r0, r4
+ mov r1, r7
+ mov r2, r6
+ bl GXS_LoadOAM
+ ldmia sp!, {r4-r10,pc}
+_020B0A48:
+ ldr r0, [r7, #0x0]
+ ldr r2, _020B0BA8 ; =0x021CCDA0
+ mov r1, #0x540
+ mla r2, r0, r1, r2
+ ldrh r5, [r7, #0x4]
+ ldrh r1, [r7, #0x6]
+ ldr r3, _020B0BAC ; =0x0210655C
+ add r4, r2, #0x100
+ sub r1, r1, r5
+ add r1, r1, #0x1
+ mov r1, r1, lsl #0x10
+ mov r2, r5, lsl #0x13
+ add r6, r4, r5, lsl #0x3
+ movs r5, r1, lsr #0x10
+ mov r4, r2, lsr #0x10
+ ldr r9, [r3, r0, lsl #0x2]
+ mov r10, #0x0
+ beq _020B0AC8
+ mov r8, #0x6
+_020B0A94:
+ mov r0, r6
+ mov r1, r4
+ mov r2, r8
+ blx r9
+ add r0, r10, #0x1
+ add r2, r4, #0x8
+ mov r1, r0, lsl #0x10
+ mov r0, r2, lsl #0x10
+ mov r10, r1, lsr #0x10
+ cmp r10, r5
+ mov r4, r0, lsr #0x10
+ add r6, r6, #0x8
+ blo _020B0A94
+_020B0AC8:
+ ldrh r2, [r7, #0xc]
+ ldrh r1, [r7, #0xe]
+ mov r3, #0x0
+ add r0, r2, #0x1
+ cmp r1, r0
+ bgt _020B0AEC
+ ldrh r0, [r7, #0xa]
+ cmp r0, r2
+ movls r3, #0x1
+_020B0AEC:
+ cmp r3, #0x0
+ ldmeqia sp!, {r4-r10,pc}
+_020B0AF4: ; 0x020B0AF4
+ ldr r0, [r7, #0x0]
+ ldr r2, _020B0BA8 ; =0x021CCDA0
+ mov r1, #0x540
+ mla r2, r0, r1, r2
+ ldrh r5, [r7, #0xa]
+ add r4, r2, #0x100
+ ldrh r1, [r7, #0xc]
+ mov r2, r5, lsl #0x15
+ ldr r3, _020B0BAC ; =0x0210655C
+ sub r1, r1, r5
+ add r1, r1, #0x1
+ mov r1, r1, lsl #0x10
+ add r9, r4, r5, lsl #0x5
+ ldr r5, [r3, r0, lsl #0x2]
+ movs r8, r1, lsr #0x10
+ mov r7, r2, lsr #0x10
+ mov r6, #0x0
+ ldmeqia sp!, {r4-r10,pc}
+_020B0B3C: ; 0x020B0B3C
+ mov r4, #0x2
+_020B0B40:
+ mov r2, r4
+ add r0, r9, #0x6
+ add r1, r7, #0x6
+ blx r5
+ mov r2, r4
+ add r0, r9, #0xe
+ add r1, r7, #0xe
+ blx r5
+ mov r2, r4
+ add r0, r9, #0x16
+ add r1, r7, #0x16
+ blx r5
+ add r0, r9, #0x1e
+ add r1, r7, #0x1e
+ mov r2, r4
+ blx r5
+ add r0, r7, #0x20
+ mov r0, r0, lsl #0x10
+ mov r7, r0, lsr #0x10
+ add r9, r9, #0x20
+ add r0, r6, #0x1
+ mov r0, r0, lsl #0x10
+ mov r6, r0, lsr #0x10
+ cmp r6, r8
+ blo _020B0B40
+ ldmia sp!, {r4-r10,pc}
+ .balign 4
+_020B0BA8: .word 0x021CCDA0
+_020B0BAC: .word 0x0210655C
+
+ arm_func_start FUN_020B0BB0
+FUN_020B0BB0: ; 0x020B0BB0
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldrh r12, [r0, #0xc]
+ ldrh r3, [r0, #0xe]
+ mov lr, #0x0
+ add r2, r12, #0x1
+ cmp r3, r2
+ bgt _020B0BDC
+ ldrh r2, [r0, #0xa]
+ cmp r2, r12
+ movls lr, #0x1
+_020B0BDC:
+ cmp lr, #0x0
+ subne r2, r12, r3
+ addne r2, r2, #0x1
+ movne r2, r2, lsl #0x10
+ movne r2, r2, lsr #0x10
+ moveq r2, #0x0
+ cmp r2, #0x1
+ movcs r2, #0x1
+ movcc r2, #0x0
+ cmp r2, #0x0
+ addeq sp, sp, #0x4
+ ldreq r0, _020B0C74 ; =0x0000FFFE
+ ldmeqia sp!, {pc}
+ ldr lr, [r0, #0x0]
+ ldr r3, _020B0C78 ; =0x021CCDA0
+ mov r2, #0x540
+ mla r12, lr, r2, r3
+ ldr r3, [r1, #0x0]
+ ldrh r2, [r0, #0xe]
+ add r12, r12, #0x100
+ mov r3, r3, asr #0x4
+ add r12, r12, r2, lsl #0x5
+ strh r3, [r12, #0x6]
+ ldr r3, [r1, #0x4]
+ mov r3, r3, asr #0x4
+ strh r3, [r12, #0xe]
+ ldr r3, [r1, #0x8]
+ mov r3, r3, asr #0x4
+ strh r3, [r12, #0x16]
+ ldr r1, [r1, #0xc]
+ mov r1, r1, asr #0x4
+ strh r1, [r12, #0x1e]
+ ldrh r1, [r0, #0xe]
+ add r1, r1, #0x1
+ strh r1, [r0, #0xe]
+ mov r0, r2
+ add sp, sp, #0x4
+ ldmia sp!, {pc}
+ .balign 4
+_020B0C74: .word 0x0000FFFE
+_020B0C78: .word 0x021CCDA0
+
+ arm_func_start FUN_020B0C7C
+FUN_020B0C7C: ; 0x020B0C7C
+ stmdb sp!, {r4,lr}
+ ldrh r12, [r0, #0x6]
+ ldrh r4, [r0, #0x8]
+ mov lr, #0x0
+ add r3, r12, #0x1
+ cmp r4, r3
+ bgt _020B0CA4
+ ldrh r3, [r0, #0x4]
+ cmp r3, r12
+ movls lr, #0x1
+_020B0CA4:
+ cmp lr, #0x0
+ subne r3, r12, r4
+ addne r3, r3, #0x1
+ movne r3, r3, lsl #0x10
+ movne r3, r3, lsr #0x10
+ moveq r3, #0x0
+ cmp r3, #0x1
+ movcs r3, #0x1
+ movcc r3, #0x0
+ cmp r3, #0x0
+ beq _020B0D48
+ ldr r4, [r0, #0x0]
+ ldr ip, _020B0D50 ; =0x021CCDA0
+ mov r3, #0x540
+ mla r12, r4, r3, r12
+ ldrh r3, [r0, #0x8]
+ add r4, r12, #0x100
+ ldrh r12, [r1, #0x0]
+ mov lr, r3, lsl #0x3
+ add r3, r4, r3, lsl #0x3
+ strh r12, [r4, lr]
+ ldrh lr, [r1, #0x2]
+ ldr ip, _020B0D54 ; =0x0000FFFE
+ strh lr, [r3, #0x2]
+ ldrh r1, [r1, #0x4]
+ cmp r2, r12
+ strh r1, [r3, #0x4]
+ beq _020B0D34
+ ldr r1, [r3, #0x0]
+ mov r12, r1, lsl #0x16
+ mov r12, r12, lsr #0x1e
+ ands r12, r12, #0x1
+ bicne r12, r1, #0x3e000000
+ andne r1, r2, #0x1f
+ orrne r1, r12, r1, lsl #0x19
+ strne r1, [r3, #0x0]
+_020B0D34:
+ ldrh r1, [r0, #0x8]
+ add r1, r1, #0x1
+ strh r1, [r0, #0x8]
+ mov r0, #0x1
+ ldmia sp!, {r4,pc}
+_020B0D48:
+ mov r0, #0x0
+ ldmia sp!, {r4,pc}
+ .balign 4
+_020B0D50: .word 0x021CCDA0
+_020B0D54: .word 0x0000FFFE
+
+ arm_func_start FUN_020B0D58
+FUN_020B0D58: ; 0x020B0D58
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ ldrh lr, [r0, #0x6]
+ ldrh r12, [r0, #0x8]
+ mov r4, #0x0
+ add r3, lr, #0x1
+ cmp r12, r3
+ bgt _020B0D84
+ ldrh r3, [r0, #0x4]
+ cmp r3, lr
+ movls r4, #0x1
+_020B0D84:
+ cmp r4, #0x0
+ subne r3, lr, r12
+ addne r3, r3, #0x1
+ movne r3, r3, lsl #0x10
+ movne r3, r3, lsr #0x10
+ moveq r3, #0x0
+ cmp r3, r2
+ movcs r3, #0x1
+ movcc r3, #0x0
+ cmp r3, #0x0
+ beq _020B0E24
+ ldr lr, [r0, #0x0]
+ ldr ip, _020B0E30 ; =0x021CCDA0
+ mov r3, #0x540
+ mla r12, lr, r3, r12
+ ldrh r3, [r0, #0x8]
+ add r12, r12, #0x100
+ cmp r2, #0x0
+ add r4, r12, r3, lsl #0x3
+ mov r5, #0x0
+ ble _020B0E18
+ add r3, r0, #0x8
+_020B0DDC:
+ ldrh lr, [r1, #0x0]
+ mov r0, r5, lsl #0x3
+ add r12, r4, r5, lsl #0x3
+ strh lr, [r4, r0]
+ ldrh r0, [r1, #0x2]
+ add r5, r5, #0x1
+ cmp r5, r2
+ strh r0, [r12, #0x2]
+ ldrh r0, [r1, #0x4]
+ add r1, r1, #0x8
+ strh r0, [r12, #0x4]
+ ldrh r0, [r3, #0x0]
+ add r0, r0, #0x1
+ strh r0, [r3, #0x0]
+ blt _020B0DDC
+_020B0E18:
+ add sp, sp, #0x4
+ mov r0, #0x1
+ ldmia sp!, {r4-r5,pc}
+_020B0E24:
+ mov r0, #0x0
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,pc}
+ .balign 4
+_020B0E30: .word 0x021CCDA0
+
+ arm_func_start FUN_020B0E34
+FUN_020B0E34: ; 0x020B0E34
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0x4
+ ldr r5, [sp, #0x1c]
+ ldr r6, _020B0FB4 ; =0x021CCDA0
+ mov r4, #0x540
+ mla r4, r5, r4, r6
+ mov lr, r1
+ sub r1, r2, #0x1
+ add r1, lr, r1
+ mov r1, r1, lsl #0x10
+ mov r12, r1, lsr #0x10
+ add r7, r4, lr, lsl #0x1
+ add r2, r4, r12, lsl #0x1
+ mov r6, r0
+ mov r5, r3
+ cmp r7, r2
+ mov r3, lr, lsl #0x1
+ bhi _020B0E9C
+ ldr r0, _020B0FB8 ; =0x0000FFFF
+_020B0E80:
+ ldrh r1, [r7, #0x0]
+ cmp r1, r0
+ movne r0, #0x0
+ bne _020B0EA0
+ add r7, r7, #0x2
+ cmp r7, r2
+ bls _020B0E80
+_020B0E9C:
+ mov r0, #0x1
+_020B0EA0:
+ cmp r0, #0x0
+ beq _020B0EE0
+ ldr r0, _020B0FBC ; =0x021CCD9C
+ sub r2, r12, lr
+ ldrh r7, [r0, #0x0]
+ add r1, r4, r3
+ mov r2, r2, lsl #0x1
+ add r3, r7, #0x1
+ strh r3, [r0, #0x0]
+ strh r7, [r6, #0x10]
+ strh lr, [r6, #0x4]
+ strh r12, [r6, #0x6]
+ strh lr, [r6, #0x8]
+ ldrh r0, [r6, #0x10]
+ bl MIi_CpuClear16
+ b _020B0EEC
+_020B0EE0:
+ add sp, sp, #0x4
+ mov r0, #0x0
+ ldmia sp!, {r4-r7,pc}
+_020B0EEC:
+ ldrh r0, [sp, #0x18]
+ add r4, r4, #0x500
+ cmp r0, #0x0
+ bne _020B0F18
+ mov r0, #0x20
+ strh r0, [r6, #0xa]
+ mov r0, #0x0
+ strh r0, [r6, #0xc]
+ ldrh r0, [r6, #0xa]
+ strh r0, [r6, #0xe]
+ b _020B0F98
+_020B0F18:
+ sub r0, r0, #0x1
+ add r0, r5, r0
+ mov r0, r0, lsl #0x10
+ mov r12, r0, lsr #0x10
+ add r7, r4, r5, lsl #0x1
+ add r2, r4, r12, lsl #0x1
+ cmp r7, r2
+ mov r3, r5, lsl #0x1
+ bhi _020B0F5C
+ ldr r0, _020B0FB8 ; =0x0000FFFF
+_020B0F40:
+ ldrh r1, [r7, #0x0]
+ cmp r1, r0
+ movne r0, #0x0
+ bne _020B0F60
+ add r7, r7, #0x2
+ cmp r7, r2
+ bls _020B0F40
+_020B0F5C:
+ mov r0, #0x1
+_020B0F60:
+ cmp r0, #0x0
+ beq _020B0F8C
+ strh r5, [r6, #0xa]
+ strh r12, [r6, #0xc]
+ strh r5, [r6, #0xe]
+ ldrh r0, [r6, #0x10]
+ sub r2, r12, r5
+ add r1, r4, r3
+ mov r2, r2, lsl #0x1
+ bl MIi_CpuClear16
+ b _020B0F98
+_020B0F8C:
+ add sp, sp, #0x4
+ mov r0, #0x0
+ ldmia sp!, {r4-r7,pc}
+_020B0F98:
+ mov r1, #0x0
+ ldr r0, [sp, #0x1c]
+ str r1, [r6, #0x14]
+ str r0, [r6, #0x0]
+ mov r0, #0x1
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r7,pc}
+ .balign 4
+_020B0FB4: .word 0x021CCDA0
+_020B0FB8: .word 0x0000FFFF
+_020B0FBC: .word 0x021CCD9C
+
+ arm_func_start FUN_020B0FC0
+FUN_020B0FC0: ; 0x020B0FC0
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldr r1, _020B1060 ; =0x021CCEA0
+ mov r0, #0xc0
+ mov r2, #0x400
+ bl MIi_CpuClear16
+ ldr r1, _020B1064 ; =0x021CD3E0
+ mov r0, #0xc0
+ mov r2, #0x400
+ bl MIi_CpuClear16
+ ldr r1, _020B1068 ; =0x021CD920
+ mov r0, #0xc0
+ mov r2, #0x400
+ bl MIi_CpuClear16
+ ldr r0, _020B106C ; =0x0000FFFF
+ ldr r1, _020B1070 ; =0x021CCDA0
+ mov r2, #0x100
+ bl MIi_CpuClear16
+ ldr r0, _020B106C ; =0x0000FFFF
+ ldr r1, _020B1074 ; =0x021CD2E0
+ mov r2, #0x100
+ bl MIi_CpuClear16
+ ldr r0, _020B106C ; =0x0000FFFF
+ ldr r1, _020B1078 ; =0x021CD820
+ mov r2, #0x100
+ bl MIi_CpuClear16
+ ldr r0, _020B106C ; =0x0000FFFF
+ ldr r1, _020B107C ; =0x021CD2A0
+ mov r2, #0x40
+ bl MIi_CpuClear16
+ ldr r0, _020B106C ; =0x0000FFFF
+ ldr r1, _020B1080 ; =0x021CD7E0
+ mov r2, #0x40
+ bl MIi_CpuClear16
+ ldr r0, _020B106C ; =0x0000FFFF
+ ldr r1, _020B1084 ; =0x021CDD20
+ mov r2, #0x40
+ bl MIi_CpuClear16
+ add sp, sp, #0x4
+ ldmia sp!, {pc}
+ .balign 4
+_020B1060: .word 0x021CCEA0
+_020B1064: .word 0x021CD3E0
+_020B1068: .word 0x021CD920
+_020B106C: .word 0x0000FFFF
+_020B1070: .word 0x021CCDA0
+_020B1074: .word 0x021CD2E0
+_020B1078: .word 0x021CD820
+_020B107C: .word 0x021CD2A0
+_020B1080: .word 0x021CD7E0
+_020B1084: .word 0x021CDD20
+
+ arm_func_start FUN_020B1088
+FUN_020B1088: ; 0x020B1088
+ ldr ip, _020B1094 ; =MIi_CpuCopy16
+ add r1, r1, #0x7000000
+ bx r12
+ .balign 4
+_020B1094: .word MIi_CpuCopy16
+
+ arm_func_start FUN_020B1098
+FUN_020B1098: ; 0x020B1098
+ ldr r3, _020B10A8 ; =0x07000400
+ ldr ip, _020B10AC ; =MIi_CpuCopy16
+ add r1, r1, r3
+ bx r12
+ .balign 4
+_020B10A8: .word 0x07000400
+_020B10AC: .word MIi_CpuCopy16
+
+ arm_func_start FUN_020B10B0
+FUN_020B10B0: ; 0x020B10B0
+ mov r1, r1, lsl #0x1
+ ldrh r0, [r0, r1]
+ bx lr
+
+ arm_func_start FUN_020B10BC
+FUN_020B10BC: ; 0x020B10BC
+ ldr r0, [r0, r1, lsl #0x2]
+ bx lr
+
+ arm_func_start FUN_020B10C4
+FUN_020B10C4:
+ str r2, [r0, r1, lsl #0x2]
+ bx lr
+
+ arm_func_start FUN_020B10CC
+FUN_020B10CC:
+ mov r2, #0x0
+ mvn r1, #0x0
+_020B10D4:
+ str r1, [r0, r2, lsl #0x2]
+ add r2, r2, #0x1
+ cmp r2, #0x3
+ blt _020B10D4
+ bx lr
+
+ arm_func_start FUN_020B10E8
+FUN_020B10E8: ; 0x020B10E8
+ stmdb sp!, {r4-r11,lr}
+ sub sp, sp, #0x4
+ mov r10, r0
+ ldr r0, [r10, #0x0]
+ mov r9, r1
+ cmp r0, #0x3
+ ldr r0, [sp, #0x28]
+ moveq r7, #0x20
+ str r0, [sp, #0x28]
+ ldrh r0, [r9, #0x0]
+ movne r7, #0x200
+ mov r11, r2
+ mov r8, r3
+ str r0, [sp, #0x0]
+ mov r6, #0x0
+ cmp r0, #0x0
+ bls _020B1210
+_020B112C:
+ ldr r1, [r9, #0x4]
+ mov r0, r6, lsl #0x1
+ ldrh r2, [r1, r0]
+ ldr r0, [r10, #0xc]
+ ldr r1, [r10, #0x8]
+ mla r5, r7, r2, r11
+ mla r4, r7, r6, r0
+ bl DC_FlushRange
+_020B114C: ; 0x020B114C
+ cmp r8, #0x0
+ beq _020B11E0
+ cmp r8, #0x1
+ beq _020B1168
+ cmp r8, #0x2
+ beq _020B11A4
+ b _020B11F8
+_020B1168:
+ ldr r0, [r10, #0x4]
+ cmp r0, #0x0
+ beq _020B1190
+ bl GX_BeginLoadOBJExtPltt
+ mov r0, r4
+ mov r1, r5
+ mov r2, r7
+ bl GX_LoadOBJExtPltt
+ bl GX_EndLoadOBJExtPltt
+ b _020B11F8
+_020B1190:
+ mov r0, r4
+ mov r1, r5
+ mov r2, r7
+ bl GX_LoadOBJPltt
+ b _020B11F8
+_020B11A4:
+ ldr r0, [r10, #0x4]
+ cmp r0, #0x0
+ beq _020B11CC
+ bl GXS_BeginLoadOBJExtPltt
+ mov r0, r4
+ mov r1, r5
+ mov r2, r7
+ bl GXS_LoadOBJExtPltt
+ bl GXS_EndLoadOBJExtPltt
+ b _020B11F8
+_020B11CC:
+ mov r0, r4
+ mov r1, r5
+ mov r2, r7
+ bl GXS_LoadOBJPltt
+ b _020B11F8
+_020B11E0:
+ bl GX_BeginLoadTexPltt
+ mov r0, r4
+ mov r1, r5
+ mov r2, r7
+ bl GX_LoadTexPltt
+ bl GX_EndLoadTexPltt
+_020B11F8:
+ add r0, r6, #0x1
+ mov r0, r0, lsl #0x10
+ mov r6, r0, lsr #0x10
+ ldr r0, [sp, #0x0]
+ cmp r6, r0
+ blo _020B112C
+_020B1210:
+ ldr r0, [sp, #0x28]
+ ldr r2, [r10, #0x0]
+ mov r1, r0
+ str r2, [r1, #0x0]
+ ldr r4, [r10, #0x4]
+ mov r3, r0
+ mov r1, r8
+ mov r2, r11
+ str r4, [r3, #0x4]
+ bl FUN_020B19D0
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r11,pc}
+
+ arm_func_start FUN_020B1240
+FUN_020B1240: ; 0x020B1240
+ stmdb sp!, {r4-r9,lr}
+ sub sp, sp, #0x4
+ mov r9, r0
+ ldr r5, [r9, #0xc]
+ ldr r4, [r9, #0x8]
+ mov r8, r1
+ mov r7, r2
+ mov r0, r5
+ mov r1, r4
+ mov r6, r3
+ bl DC_FlushRange
+_020B126C: ; 0x020B126C
+ cmp r7, #0x0
+ beq _020B1300
+ cmp r7, #0x1
+ beq _020B1288
+ cmp r7, #0x2
+ beq _020B12C4
+ b _020B1318
+_020B1288:
+ ldr r0, [r9, #0x4]
+ cmp r0, #0x0
+ beq _020B12B0
+ bl GX_BeginLoadOBJExtPltt
+ mov r0, r5
+ mov r1, r8
+ mov r2, r4
+ bl GX_LoadOBJExtPltt
+ bl GX_EndLoadOBJExtPltt
+ b _020B1318
+_020B12B0:
+ mov r0, r5
+ mov r1, r8
+ mov r2, r4
+ bl GX_LoadOBJPltt
+ b _020B1318
+_020B12C4:
+ ldr r0, [r9, #0x4]
+ cmp r0, #0x0
+ beq _020B12EC
+ bl GXS_BeginLoadOBJExtPltt
+ mov r0, r5
+ mov r1, r8
+ mov r2, r4
+ bl GXS_LoadOBJExtPltt
+ bl GXS_EndLoadOBJExtPltt
+ b _020B1318
+_020B12EC:
+ mov r0, r5
+ mov r1, r8
+ mov r2, r4
+ bl GXS_LoadOBJPltt
+ b _020B1318
+_020B1300:
+ bl GX_BeginLoadTexPltt
+ mov r0, r5
+ mov r1, r8
+ mov r2, r4
+ bl GX_LoadTexPltt
+ bl GX_EndLoadTexPltt
+_020B1318:
+ ldr r1, [r9, #0x0]
+ mov r0, r6
+ str r1, [r6, #0x0]
+ ldr r3, [r9, #0x4]
+ mov r1, r7
+ mov r2, r8
+ str r3, [r6, #0x4]
+ bl FUN_020B19D0
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r9,pc}
+
+ arm_func_start FUN_020B1340
+FUN_020B1340: ; 0x020B1340
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0x4
+ mov r7, r0
+ mov r6, r1
+ ldr r0, [r7, #0x14]
+ ldr r1, [r7, #0x10]
+ mov r5, r2
+ mov r4, r3
+ bl DC_FlushRange
+_020B1364: ; 0x020B1364
+ cmp r5, #0x0
+ ldr r0, [r7, #0x8]
+ beq _020B13B8
+ cmp r5, #0x1
+ beq _020B1384
+ cmp r5, #0x2
+ beq _020B13A0
+ b _020B13B8
+_020B1384:
+ mov r3, #0x4000000
+ ldr r2, [r3, #0x0]
+ ldr r1, _020B1520 ; =0xFFCFFFEF
+ and r1, r2, r1
+ orr r0, r1, r0
+ str r0, [r3, #0x0]
+ b _020B13B8
+_020B13A0:
+ ldr r3, _020B1524 ; =0x04001000
+ ldr r1, _020B1520 ; =0xFFCFFFEF
+ ldr r2, [r3, #0x0]
+ and r1, r2, r1
+ orr r0, r1, r0
+ str r0, [r3, #0x0]
+_020B13B8:
+ ldr r0, [r7, #0x8]
+ cmp r0, #0x0
+ bne _020B14D8
+ ldrh r0, [r7, #0x2]
+ cmp r0, #0x10
+ bgt _020B1408
+ cmp r0, #0x10
+ bge _020B1434
+ cmp r0, #0x8
+ addls pc, pc, r0, lsl #0x2
+ b _020B1444
+_020B13E4:
+ b _020B1444
+_020B13E8:
+ b _020B1414
+_020B13EC:
+ b _020B141C
+_020B13F0:
+ b _020B1444
+_020B13F4:
+ b _020B1424
+_020B13F8:
+ b _020B1444
+_020B13FC:
+ b _020B1444
+_020B1400:
+ b _020B1444
+_020B1404:
+ b _020B142C
+_020B1408:
+ cmp r0, #0x20
+ beq _020B143C
+ b _020B1444
+_020B1414:
+ mov r0, #0x0
+ b _020B1448
+_020B141C:
+ mov r0, #0x1
+ b _020B1448
+_020B1424:
+ mov r0, #0x2
+ b _020B1448
+_020B142C:
+ mov r0, #0x3
+ b _020B1448
+_020B1434:
+ mov r0, #0x4
+ b _020B1448
+_020B143C:
+ mov r0, #0x5
+ b _020B1448
+_020B1444:
+ mov r0, #0x0
+_020B1448:
+ str r0, [r4, #0xc]
+ ldrh r0, [r7, #0x0]
+ cmp r0, #0x10
+ bgt _020B1490
+ cmp r0, #0x10
+ bge _020B14BC
+ cmp r0, #0x8
+ addls pc, pc, r0, lsl #0x2
+ b _020B14CC
+_020B146C:
+ b _020B14CC
+_020B1470:
+ b _020B149C
+_020B1474:
+ b _020B14A4
+_020B1478:
+ b _020B14CC
+_020B147C:
+ b _020B14AC
+_020B1480:
+ b _020B14CC
+_020B1484:
+ b _020B14CC
+_020B1488:
+ b _020B14CC
+_020B148C:
+ b _020B14B4
+_020B1490:
+ cmp r0, #0x20
+ beq _020B14C4
+ b _020B14CC
+_020B149C:
+ mov r0, #0x0
+ b _020B14D0
+_020B14A4:
+ mov r0, #0x1
+ b _020B14D0
+_020B14AC:
+ mov r0, #0x2
+ b _020B14D0
+_020B14B4:
+ mov r0, #0x3
+ b _020B14D0
+_020B14BC:
+ mov r0, #0x4
+ b _020B14D0
+_020B14C4:
+ mov r0, #0x5
+ b _020B14D0
+_020B14CC:
+ mov r0, #0x0
+_020B14D0:
+ str r0, [r4, #0x10]
+ b _020B14E8
+_020B14D8:
+ ldrh r0, [r7, #0x2]
+ str r0, [r4, #0xc]
+ ldrh r0, [r7, #0x0]
+ str r0, [r4, #0x10]
+_020B14E8:
+ ldr r1, [r7, #0x4]
+ mov r0, #0x0
+ str r1, [r4, #0x14]
+ str r0, [r4, #0x18]
+ mov r0, #0x1
+ str r0, [r4, #0x1c]
+ ldr r3, [r7, #0x8]
+ mov r0, r4
+ mov r1, r5
+ mov r2, r6
+ str r3, [r4, #0x20]
+ bl FUN_020B1A1C
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r7,pc}
+ .balign 4
+_020B1520: .word 0xFFCFFFEF
+_020B1524: .word 0x04001000
+
+ arm_func_start FUN_020B1528
+FUN_020B1528: ; 0x020B1528
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0x4
+ mov r7, r0
+ movs r5, r2
+ mov r6, r1
+ mov r4, r3
+ ldr r0, [r7, #0x8]
+ beq _020B1590
+ cmp r5, #0x1
+ beq _020B155C
+ cmp r5, #0x2
+ beq _020B1578
+ b _020B1590
+_020B155C:
+ mov r3, #0x4000000
+ ldr r2, [r3, #0x0]
+ ldr r1, _020B1760 ; =0xFFCFFFEF
+ and r1, r2, r1
+ orr r0, r1, r0
+ str r0, [r3, #0x0]
+ b _020B1590
+_020B1578:
+ ldr r3, _020B1764 ; =0x04001000
+ ldr r1, _020B1760 ; =0xFFCFFFEF
+ ldr r2, [r3, #0x0]
+ and r1, r2, r1
+ orr r0, r1, r0
+ str r0, [r3, #0x0]
+_020B1590:
+ ldr r0, [r7, #0x14]
+ ldr r1, [r7, #0x10]
+ bl DC_FlushRange
+_020B159C: ; 0x020B159C
+ cmp r5, #0x0
+ beq _020B15B8
+ cmp r5, #0x1
+ beq _020B15D4
+ cmp r5, #0x2
+ beq _020B15E8
+ b _020B15F8
+_020B15B8:
+ bl GX_BeginLoadTex
+ ldr r0, [r7, #0x14]
+ ldr r2, [r7, #0x10]
+ mov r1, r6
+ bl GX_LoadTex
+ bl GX_EndLoadTex
+ b _020B15F8
+_020B15D4:
+ ldr r0, [r7, #0x14]
+ ldr r2, [r7, #0x10]
+ mov r1, r6
+ bl GX_LoadOBJ
+ b _020B15F8
+_020B15E8:
+ ldr r0, [r7, #0x14]
+ ldr r2, [r7, #0x10]
+ mov r1, r6
+ bl GXS_LoadOBJ
+_020B15F8:
+ ldr r0, [r7, #0x8]
+ cmp r0, #0x0
+ bne _020B1718
+ ldrh r0, [r7, #0x2]
+ cmp r0, #0x10
+ bgt _020B1648
+ cmp r0, #0x10
+ bge _020B1674
+ cmp r0, #0x8
+ addls pc, pc, r0, lsl #0x2
+ b _020B1684
+_020B1624:
+ b _020B1684
+_020B1628:
+ b _020B1654
+_020B162C:
+ b _020B165C
+_020B1630:
+ b _020B1684
+_020B1634:
+ b _020B1664
+_020B1638:
+ b _020B1684
+_020B163C:
+ b _020B1684
+_020B1640:
+ b _020B1684
+_020B1644:
+ b _020B166C
+_020B1648:
+ cmp r0, #0x20
+ beq _020B167C
+ b _020B1684
+_020B1654:
+ mov r0, #0x0
+ b _020B1688
+_020B165C:
+ mov r0, #0x1
+ b _020B1688
+_020B1664:
+ mov r0, #0x2
+ b _020B1688
+_020B166C:
+ mov r0, #0x3
+ b _020B1688
+_020B1674:
+ mov r0, #0x4
+ b _020B1688
+_020B167C:
+ mov r0, #0x5
+ b _020B1688
+_020B1684:
+ mov r0, #0x0
+_020B1688:
+ str r0, [r4, #0xc]
+ ldrh r0, [r7, #0x0]
+ cmp r0, #0x10
+ bgt _020B16D0
+ cmp r0, #0x10
+ bge _020B16FC
+ cmp r0, #0x8
+ addls pc, pc, r0, lsl #0x2
+ b _020B170C
+_020B16AC:
+ b _020B170C
+_020B16B0:
+ b _020B16DC
+_020B16B4:
+ b _020B16E4
+_020B16B8:
+ b _020B170C
+_020B16BC:
+ b _020B16EC
+_020B16C0:
+ b _020B170C
+_020B16C4:
+ b _020B170C
+_020B16C8:
+ b _020B170C
+_020B16CC:
+ b _020B16F4
+_020B16D0:
+ cmp r0, #0x20
+ beq _020B1704
+ b _020B170C
+_020B16DC:
+ mov r0, #0x0
+ b _020B1710
+_020B16E4:
+ mov r0, #0x1
+ b _020B1710
+_020B16EC:
+ mov r0, #0x2
+ b _020B1710
+_020B16F4:
+ mov r0, #0x3
+ b _020B1710
+_020B16FC:
+ mov r0, #0x4
+ b _020B1710
+_020B1704:
+ mov r0, #0x5
+ b _020B1710
+_020B170C:
+ mov r0, #0x0
+_020B1710:
+ str r0, [r4, #0x10]
+ b _020B1728
+_020B1718:
+ ldrh r0, [r7, #0x2]
+ str r0, [r4, #0xc]
+ ldrh r0, [r7, #0x0]
+ str r0, [r4, #0x10]
+_020B1728:
+ ldr r1, [r7, #0x4]
+ mov r0, #0x0
+ str r1, [r4, #0x14]
+ str r0, [r4, #0x18]
+ mov r0, #0x1
+ str r0, [r4, #0x1c]
+ ldr r3, [r7, #0x8]
+ mov r0, r4
+ mov r1, r5
+ mov r2, r6
+ str r3, [r4, #0x20]
+ bl FUN_020B1A1C
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r7,pc}
+ .balign 4
+_020B1760: .word 0xFFCFFFEF
+_020B1764: .word 0x04001000
+
+ arm_func_start FUN_020B1768
+FUN_020B1768: ; 0x020B1768
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0x4
+ mov r7, r0
+ movs r5, r2
+ mov r6, r1
+ mov r4, r3
+ ldr r0, [r7, #0x8]
+ beq _020B17D0
+ cmp r5, #0x1
+ beq _020B179C
+ cmp r5, #0x2
+ beq _020B17B8
+ b _020B17D0
+_020B179C:
+ mov r3, #0x4000000
+ ldr r2, [r3, #0x0]
+ ldr r1, _020B19A0 ; =0xFFCFFFEF
+ and r1, r2, r1
+ orr r0, r1, r0
+ str r0, [r3, #0x0]
+ b _020B17D0
+_020B17B8:
+ ldr r3, _020B19A4 ; =0x04001000
+ ldr r1, _020B19A0 ; =0xFFCFFFEF
+ ldr r2, [r3, #0x0]
+ and r1, r2, r1
+ orr r0, r1, r0
+ str r0, [r3, #0x0]
+_020B17D0:
+ ldr r0, [r7, #0x14]
+ ldr r1, [r7, #0x10]
+ bl DC_FlushRange
+_020B17DC: ; 0x020B17DC
+ cmp r5, #0x0
+ beq _020B17F8
+ cmp r5, #0x1
+ beq _020B1814
+ cmp r5, #0x2
+ beq _020B1828
+ b _020B1838
+_020B17F8:
+ bl GX_BeginLoadTex
+ ldr r0, [r7, #0x14]
+ ldr r2, [r7, #0x10]
+ mov r1, r6
+ bl GX_LoadTex
+ bl GX_EndLoadTex
+ b _020B1838
+_020B1814:
+ ldr r0, [r7, #0x14]
+ ldr r2, [r7, #0x10]
+ mov r1, r6
+ bl GX_LoadOBJ
+ b _020B1838
+_020B1828:
+ ldr r0, [r7, #0x14]
+ ldr r2, [r7, #0x10]
+ mov r1, r6
+ bl GXS_LoadOBJ
+_020B1838:
+ ldr r0, [r7, #0x8]
+ cmp r0, #0x0
+ bne _020B1958
+ ldrh r0, [r7, #0x2]
+ cmp r0, #0x10
+ bgt _020B1888
+ cmp r0, #0x10
+ bge _020B18B4
+ cmp r0, #0x8
+ addls pc, pc, r0, lsl #0x2
+ b _020B18C4
+_020B1864:
+ b _020B18C4
+_020B1868:
+ b _020B1894
+_020B186C:
+ b _020B189C
+_020B1870:
+ b _020B18C4
+_020B1874:
+ b _020B18A4
+_020B1878:
+ b _020B18C4
+_020B187C:
+ b _020B18C4
+_020B1880:
+ b _020B18C4
+_020B1884:
+ b _020B18AC
+_020B1888:
+ cmp r0, #0x20
+ beq _020B18BC
+ b _020B18C4
+_020B1894:
+ mov r0, #0x0
+ b _020B18C8
+_020B189C:
+ mov r0, #0x1
+ b _020B18C8
+_020B18A4:
+ mov r0, #0x2
+ b _020B18C8
+_020B18AC:
+ mov r0, #0x3
+ b _020B18C8
+_020B18B4:
+ mov r0, #0x4
+ b _020B18C8
+_020B18BC:
+ mov r0, #0x5
+ b _020B18C8
+_020B18C4:
+ mov r0, #0x0
+_020B18C8:
+ str r0, [r4, #0xc]
+ ldrh r0, [r7, #0x0]
+ cmp r0, #0x10
+ bgt _020B1910
+ cmp r0, #0x10
+ bge _020B193C
+ cmp r0, #0x8
+ addls pc, pc, r0, lsl #0x2
+ b _020B194C
+_020B18EC:
+ b _020B194C
+_020B18F0:
+ b _020B191C
+_020B18F4:
+ b _020B1924
+_020B18F8:
+ b _020B194C
+_020B18FC:
+ b _020B192C
+_020B1900:
+ b _020B194C
+_020B1904:
+ b _020B194C
+_020B1908:
+ b _020B194C
+_020B190C:
+ b _020B1934
+_020B1910:
+ cmp r0, #0x20
+ beq _020B1944
+ b _020B194C
+_020B191C:
+ mov r0, #0x0
+ b _020B1950
+_020B1924:
+ mov r0, #0x1
+ b _020B1950
+_020B192C:
+ mov r0, #0x2
+ b _020B1950
+_020B1934:
+ mov r0, #0x3
+ b _020B1950
+_020B193C:
+ mov r0, #0x4
+ b _020B1950
+_020B1944:
+ mov r0, #0x5
+ b _020B1950
+_020B194C:
+ mov r0, #0x0
+_020B1950:
+ str r0, [r4, #0x10]
+ b _020B1968
+_020B1958:
+ ldrh r0, [r7, #0x2]
+ str r0, [r4, #0xc]
+ ldrh r0, [r7, #0x0]
+ str r0, [r4, #0x10]
+_020B1968:
+ ldr r1, [r7, #0x4]
+ mov r0, #0x0
+ str r1, [r4, #0x14]
+ str r0, [r4, #0x18]
+ mov r0, #0x1
+ str r0, [r4, #0x1c]
+ ldr r3, [r7, #0x8]
+ mov r0, r4
+ mov r1, r5
+ mov r2, r6
+ str r3, [r4, #0x20]
+ bl FUN_020B1A1C
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r7,pc}
+ .balign 4
+_020B19A0: .word 0xFFCFFFEF
+_020B19A4: .word 0x04001000
+
+ arm_func_start FUN_020B19A8
+FUN_020B19A8:
+ add r0, r0, r1, lsl #0x2
+ ldr r1, [r0, #0x8]
+ mvn r0, #0x0
+ cmp r1, r0
+ movne r0, #0x1
+ moveq r0, #0x0
+ bx lr
+
+ arm_func_start FUN_020B19C4
+FUN_020B19C4: ; 0x020B19C4
+ add r0, r0, r1, lsl #0x2
+ ldr r0, [r0, #0x8]
+ bx lr
+
+ arm_func_start FUN_020B19D0
+FUN_020B19D0: ; 0x020B19D0
+ add r0, r0, r1, lsl #0x2
+ str r2, [r0, #0x8]
+ bx lr
+
+ arm_func_start FUN_020B19DC
+FUN_020B19DC: ; 0x020B19DC
+ mov r3, #0x0
+ mvn r2, #0x0
+_020B19E4:
+ add r1, r0, r3, lsl #0x2
+ add r3, r3, #0x1
+ str r2, [r1, #0x8]
+ cmp r3, #0x3
+ blt _020B19E4
+ bx lr
+
+ arm_func_start FUN_020B19FC
+FUN_020B19FC:
+ ldr r1, [r0, r1, lsl #0x2]
+ mvn r0, #0x0
+ cmp r1, r0
+ movne r0, #0x1
+ moveq r0, #0x0
+ bx lr
+
+ arm_func_start FUN_020B1A14
+FUN_020B1A14: ; 0x020B1A14
+ ldr r0, [r0, r1, lsl #0x2]
+ bx lr
+
+ arm_func_start FUN_020B1A1C
+FUN_020B1A1C: ; 0x020B1A1C
+ str r2, [r0, r1, lsl #0x2]
+ bx lr
+
+ arm_func_start FUN_020B1A24
+FUN_020B1A24: ; 0x020B1A24
+ mov r2, #0x0
+ mvn r1, #0x0
+_020B1A2C:
+ str r1, [r0, r2, lsl #0x2]
+ add r2, r2, #0x1
+ cmp r2, #0x3
+ blt _020B1A2C
+ bx lr
+
+ arm_func_start FUN_020B1A40
+FUN_020B1A40: ; 0x020B1A40
+ stmdb sp!, {r4,lr}
+ mov r4, r0
+ add r1, r4, #0x4
+ mov r0, #0x0
+ mov r2, #0x18
+ bl MIi_CpuClear16
+ mov r0, #0x1000
+ str r0, [r4, #0x4]
+ str r0, [r4, #0x8]
+ ldmia sp!, {r4,pc}
+
+ arm_func_start FUN_020B1A68
+FUN_020B1A68:
+ ldr ip, _020B1A74 ; =FUN_020B1A40
+ str r1, [r0, #0x0]
+ bx r12
+ .balign 4
+_020B1A74: .word FUN_020B1A40
+
+ arm_func_start FUN_020B1A78
+FUN_020B1A78: ; 0x020B1A78
+ ldr r3, [r0, #0x0]
+ cmp r3, #0x1
+ ldreqh r3, [r0, #0x12]
+ orreq r3, r3, #0x2
+ streqh r3, [r0, #0x12]
+ streq r1, [r0, #0x4]
+ streq r2, [r0, #0x8]
+ bx lr
+
+ arm_func_start FUN_020B1A98
+FUN_020B1A98: ; 0x020B1A98
+ ldr r2, [r0, #0x0]
+ cmp r2, #0x1
+ ldreqh r2, [r0, #0x12]
+ orreq r2, r2, #0x4
+ streqh r2, [r0, #0x12]
+ streqh r1, [r0, #0x10]
+ bx lr
+
+ arm_func_start FUN_020B1AB4
+FUN_020B1AB4: ; 0x020B1AB4
+ ldr r3, [r0, #0x0]
+ cmp r3, #0x1
+ ldreqh r3, [r0, #0x12]
+ orreq r3, r3, #0x8
+ streqh r3, [r0, #0x12]
+ streqh r1, [r0, #0xc]
+ streqh r2, [r0, #0xe]
+ bx lr
+
+ arm_func_start FUN_020B1AD4
+FUN_020B1AD4: ; 0x020B1AD4
+ mov r2, #0x0
+ str r2, [r0, #0x0]
+ str r1, [r0, #0x4]
+ mov r1, #0x1
+ str r1, [r0, #0x8]
+ ldr ip, _020B1AF4 ; =FUN_020B1A68
+ add r0, r0, #0xc
+ bx r12
+ .balign 4
+_020B1AF4: .word FUN_020B1A68
+
+ arm_func_start FUN_020B1AF8
+FUN_020B1AF8: ; 0x020B1AF8
+ stmdb sp!, {r4-r11,lr}
+ sub sp, sp, #0x34
+ ldrh r5, [r2, #0x0]
+ ldr r4, [sp, #0x60]
+ ldr r10, [sp, #0x58]
+ str r4, [sp, #0x60]
+ cmp r1, r5
+ movcs r1, r5
+ mov r4, #0x0
+ cmp r1, #0x0
+ str r4, [sp, #0x0]
+ bls _020B1E7C
+ ldrh r4, [sp, #0x5c]
+ mov r4, r4, lsl #0x19
+ str r4, [sp, #0x4]
+ ldr r4, [sp, #0x0]
+ str r4, [sp, #0x14]
+ mov r4, #0x100
+ str r4, [sp, #0xc]
+ mov r4, #0x300
+ str r4, [sp, #0x8]
+ mov r4, #0x1
+ str r4, [sp, #0x10]
+_020B1B54:
+ ldr r5, [sp, #0x0]
+ mov r6, #0x6
+ mul r6, r5, r6
+ ldr r8, [r2, #0x4]
+ ldr r4, [sp, #0x0]
+ add r7, r0, r5, lsl #0x3
+ ldrh r5, [r8, r6]
+ mov r4, r4, lsl #0x3
+ add r9, r8, r6
+ strh r5, [r0, r4]
+ ldrh r4, [r9, #0x2]
+ cmp r3, #0x0
+ strh r4, [r7, #0x2]
+ ldrh r4, [r9, #0x4]
+ strh r4, [r7, #0x4]
+ bne _020B1B9C
+ cmp r10, #0x0
+ beq _020B1E60
+_020B1B9C:
+ ldr r5, [r7, #0x0]
+ ldr r4, _020B1E88 ; =0x01FF0000
+ and r4, r5, r4
+ mov r4, r4, lsr #0x10
+ mov r4, r4, lsl #0x10
+ mov r4, r4, asr #0x10
+ cmp r4, #0xff
+ orrgt r4, r4, #0xff00
+ movgt r4, r4, lsl #0x10
+ movgt r4, r4, asr #0x10
+ mov r4, r4, lsl #0xc
+ str r4, [sp, #0x20]
+ ldr r4, [r7, #0x0]
+ and r4, r4, #0xff
+ mov r4, r4, lsl #0x10
+ mov r4, r4, asr #0x10
+ cmp r4, #0x7f
+ orrgt r4, r4, #0xff00
+ movgt r4, r4, lsl #0x10
+ movgt r4, r4, asr #0x10
+ mov r4, r4, lsl #0xc
+ str r4, [sp, #0x24]
+ cmp r3, #0x0
+ beq _020B1E00
+ ldr r5, [r7, #0x0]
+ and r6, r5, #0x300
+ cmp r6, #0x100
+ beq _020B1C1C
+ cmp r6, #0x300
+ beq _020B1C1C
+ and r4, r5, #0x30000000
+ orr r6, r6, r4
+_020B1C1C:
+ cmp r6, #0x300
+ bne _020B1C70
+ ldr r4, _020B1E8C ; =0xC000C000
+ ldr r8, _020B1E90 ; =0x020FF8AC
+ and r5, r5, r4
+ and r4, r5, #0xc000
+ mov r6, r4, asr #0xe
+ and r4, r5, #0xc0000000
+ mov r4, r4, lsr #0x1e
+ mov r4, r4, lsl #0x1
+ add r8, r8, r6, lsl #0x3
+ ldrh r9, [r4, r8]
+ ldr r8, _020B1E94 ; =0x020FF894
+ ldr r5, [sp, #0x20]
+ add r6, r8, r6, lsl #0x3
+ add r5, r5, r9, lsl #0xb
+ str r5, [sp, #0x20]
+ ldrh r4, [r4, r6]
+ ldr r5, [sp, #0x24]
+ add r4, r5, r4, lsl #0xb
+ str r4, [sp, #0x24]
+_020B1C70:
+ ldr r4, [sp, #0x60]
+ ldr r5, [r3, #0x8]
+ cmp r4, #0x0
+ ldrne r8, [sp, #0x8]
+ add r4, sp, #0x20
+ ldreq r8, [sp, #0xc]
+ mov r6, r4
+ cmp r8, #0x300
+ ldreq r9, [sp, #0x10]
+ mov r12, #0x1000
+ ldrne r9, [sp, #0x14]
+ cmp r4, r4
+ ldr r4, [sp, #0x24]
+ addeq r6, sp, #0x28
+ smull r11, r4, r5, r4
+ adds r5, r11, r12
+ adc r11, r4, #0x0
+ ldr r4, [r3, #0x0]
+ ldr lr, [sp, #0x20]
+ smlal r5, r11, r4, lr
+ mov r4, r5, lsr #0xc
+ orr r4, r4, r11, lsl #0x14
+ str r4, [r6, #0x0]
+ ldr r4, [r3, #0xc]
+ ldr r5, [sp, #0x24]
+ ldr lr, [r3, #0x4]
+ smull r11, r5, r4, r5
+ adds r11, r11, r12
+ adc r4, r5, #0x0
+ add r5, sp, #0x28
+ cmp r6, r5
+ ldr r5, [sp, #0x20]
+ smlal r11, r4, lr, r5
+ mov r5, r11, lsr #0xc
+ orr r5, r5, r4, lsl #0x14
+ str r5, [r6, #0x4]
+ ldreq r5, [sp, #0x28]
+ ldreq r4, [sp, #0x2c]
+ streq r5, [sp, #0x20]
+ streq r4, [sp, #0x24]
+ cmp r8, #0x100
+ beq _020B1D38
+ cmp r8, #0x300
+ beq _020B1D38
+ ldr r5, [r7, #0x0]
+ ldr r4, _020B1E98 ; =0xC1FFFCFF
+ and r4, r5, r4
+ orr r4, r4, r8
+ str r4, [r7, #0x0]
+ b _020B1D54
+_020B1D38:
+ ldr r5, [r7, #0x0]
+ ldr r4, _020B1E98 ; =0xC1FFFCFF
+ and r4, r5, r4
+ orr r5, r4, r8
+ ldr r4, [sp, #0x4]
+ orr r4, r4, r5
+ str r4, [r7, #0x0]
+_020B1D54:
+ ldr r6, [r7, #0x0]
+ ldr r5, _020B1E8C ; =0xC000C000
+ cmp r9, #0x0
+ and r8, r6, r5
+ and r5, r8, #0xc000
+ mov r6, r5, asr #0xe
+ and r5, r8, #0xc0000000
+ ldr r8, _020B1E90 ; =0x020FF8AC
+ mov r5, r5, lsr #0x1e
+ mov r5, r5, lsl #0x1
+ add r8, r8, r6, lsl #0x3
+ ldrh r9, [r5, r8]
+ ldr r8, _020B1E94 ; =0x020FF894
+ ldr r4, [sp, #0x20]
+ add r6, r8, r6, lsl #0x3
+ mov r11, r9, asr #0x1
+ ldrh r5, [r5, r6]
+ mov r8, r11, lsl #0xc
+ ldr r6, [r3, #0x0]
+ rsb r12, r8, #0x0
+ mov r9, r5, asr #0x1
+ mla r12, r6, r11, r12
+ ldr r5, [r3, #0x8]
+ mla r6, r5, r9, r12
+ add r6, r4, r6
+ str r6, [sp, #0x20]
+ ldr r12, [r3, #0x4]
+ mov r5, r9, lsl #0xc
+ str r12, [sp, #0x1c]
+ ldr r12, [r3, #0xc]
+ rsb lr, r5, #0x0
+ str r12, [sp, #0x18]
+ ldr r12, [sp, #0x1c]
+ ldr r4, [sp, #0x24]
+ mla r11, r12, r11, lr
+ ldr r12, [sp, #0x18]
+ subne r6, r6, r8
+ mla r9, r12, r9, r11
+ add r4, r4, r9
+ str r4, [sp, #0x24]
+ subne r4, r4, r5
+ strne r6, [sp, #0x20]
+ strne r4, [sp, #0x24]
+_020B1E00:
+ cmp r10, #0x0
+ beq _020B1E28
+ ldr r6, [sp, #0x20]
+ ldr r4, [r10, #0x0]
+ ldr r5, [sp, #0x24]
+ add r4, r6, r4
+ str r4, [sp, #0x20]
+ ldr r4, [r10, #0x4]
+ add r4, r5, r4
+ str r4, [sp, #0x24]
+_020B1E28:
+ ldr r4, [sp, #0x20]
+ ldr r6, [r7, #0x0]
+ add r5, r4, #0x800
+ ldr r4, _020B1E9C ; =0x000001FF
+ and r4, r4, r5, asr #0xc
+ ldr r5, _020B1EA0 ; =0xFE00FF00
+ and r6, r6, r5
+ ldr r5, [sp, #0x24]
+ add r5, r5, #0x800
+ mov r5, r5, asr #0xc
+ and r5, r5, #0xff
+ orr r5, r6, r5
+ orr r4, r5, r4, lsl #0x10
+ str r4, [r7, #0x0]
+_020B1E60:
+ ldr r4, [sp, #0x0]
+ add r4, r4, #0x1
+ mov r4, r4, lsl #0x10
+ mov r4, r4, lsr #0x10
+ str r4, [sp, #0x0]
+ cmp r4, r1
+ blo _020B1B54
+_020B1E7C:
+ mov r0, r1
+ add sp, sp, #0x34
+ ldmia sp!, {r4-r11,pc}
+ .balign 4
+_020B1E88: .word 0x01FF0000
+_020B1E8C: .word 0xC000C000
+_020B1E90: .word 0x020FF8AC
+_020B1E94: .word 0x020FF894
+_020B1E98: .word 0xC1FFFCFF
+_020B1E9C: .word 0x000001FF
+_020B1EA0: .word 0xFE00FF00
+
+ arm_func_start FUN_020B1EA4
+FUN_020B1EA4: ; 0x020B1EA4
+ stmdb sp!, {r4,lr}
+ mov r4, r0
+ bl FUN_020B0518
+_020B1EB0: ; 0x020B1EB0
+ cmp r0, #0x0
+ ldmeqia sp!, {r4,pc}
+_020B1EB8: ; 0x020B1EB8
+ mov r0, r4
+ bl FUN_020B1FC4
+ ldmia sp!, {r4,pc}
+
+ arm_func_start FUN_020B1EC4
+FUN_020B1EC4: ; 0x020B1EC4
+ stmdb sp!, {r4,lr}
+ mov r4, r0
+ bl FUN_020B0534
+_020B1ED0: ; 0x020B1ED0
+ cmp r0, #0x0
+ ldmeqia sp!, {r4,pc}
+_020B1ED8: ; 0x020B1ED8
+ mov r0, r4
+ bl FUN_020B1FC4
+ ldmia sp!, {r4,pc}
+
+ arm_func_start FUN_020B1EE4
+FUN_020B1EE4: ; 0x020B1EE4
+ stmdb sp!, {r4,lr}
+ mov r4, r0
+ bl FUN_020B0438
+ mov r0, r4
+ bl FUN_020B1FC4
+ ldmia sp!, {r4,pc}
+
+ arm_func_start FUN_020B1EFC
+FUN_020B1EFC: ; 0x020B1EFC
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0x14
+ mov r4, r2
+ ldr r2, [r4, #0xc]
+ mov r5, r1
+ ldr r1, [r2, #0x0]
+ ldr r2, [sp, #0x34]
+ str r1, [sp, #0x0]
+ ldr r1, [sp, #0x38]
+ str r2, [sp, #0x4]
+ mov r6, r3
+ mov r7, r0
+ ldr r12, [sp, #0x3c]
+ str r1, [sp, #0x8]
+ ldr r1, [sp, #0x28]
+ ldr r2, [sp, #0x2c]
+ ldr r3, [sp, #0x30]
+ mov r0, r6
+ str r12, [sp, #0xc]
+ bl FUN_020B45F0
+ str r6, [r7, #0x34]
+ str r4, [r7, #0x30]
+ add r0, r7, #0x38
+ mov r1, #0x1
+ str r6, [r7, #0x34]
+ bl FUN_020B1A68
+ mov r0, r7
+ bl FUN_020B04C0
+ mov r0, r7
+ mov r1, r5
+ bl FUN_020B1EE4
+ add sp, sp, #0x14
+ ldmia sp!, {r4-r7,pc}
+
+ arm_func_start FUN_020B1F80
+FUN_020B1F80: ; 0x020B1F80
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ mov r5, r0
+ mov r4, r1
+ str r2, [r5, #0x30]
+ mvn r2, #0x0
+ add r0, r5, #0x38
+ mov r1, #0x1
+ str r2, [r5, #0x34]
+ bl FUN_020B1A68
+ mov r0, r5
+ bl FUN_020B04C0
+ mov r0, r5
+ mov r1, r4
+ bl FUN_020B1EE4
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,pc}
+
+ arm_func_start FUN_020B1FC4
+FUN_020B1FC4: ; 0x020B1FC4
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0x4
+ mov r5, r0
+ ldr r1, [r5, #0x0]
+ ldrh r1, [r1, #0x4]
+ cmp r1, #0x0
+ addeq sp, sp, #0x4
+ ldmeqia sp!, {r4-r7,pc}
+_020B1FE4: ; 0x020B1FE4
+ bl FUN_020B06E0
+ mov r4, r0
+ ldr r7, [r5, #0x30]
+ ldrh r1, [r4, #0x0]
+ mov r0, r7
+ bl FUN_020AFE8C
+ str r0, [r5, #0x2c]
+ ldr r1, [r5, #0x18]
+ add r0, r5, #0x38
+ ldr r2, [r1, #0x4]
+ mov r1, #0x1
+ and r6, r2, #0xff
+ bl FUN_020B1A68
+_020B2018: ; 0x020B2018
+ cmp r6, #0x0
+ beq _020B2068
+ cmp r6, #0x2
+ bne _020B203C
+ ldrsh r1, [r4, #0x4]
+ ldrsh r2, [r4, #0x6]
+ add r0, r5, #0x38
+ bl FUN_020B1AB4
+ b _020B2068
+_020B203C:
+ ldr r1, [r4, #0x4]
+ ldr r2, [r4, #0x8]
+ add r0, r5, #0x38
+ bl FUN_020B1A78
+ ldrh r1, [r4, #0x2]
+ add r0, r5, #0x38
+ bl FUN_020B1A98
+ ldrsh r1, [r4, #0xc]
+ ldrsh r2, [r4, #0xe]
+ add r0, r5, #0x38
+ bl FUN_020B1AB4
+_020B2068:
+ ldr r2, [r7, #0xc]
+ cmp r2, #0x0
+ movne r0, #0x1
+ moveq r0, #0x0
+ cmp r0, #0x0
+ addeq sp, sp, #0x4
+ ldmeqia sp!, {r4-r7,pc}
+_020B2084: ; 0x020B2084
+ ldr r1, [r5, #0x34]
+ mvn r0, #0x0
+ cmp r1, r0
+ movne r0, #0x1
+ moveq r0, #0x0
+ cmp r0, #0x0
+ addeq sp, sp, #0x4
+ ldmeqia sp!, {r4-r7,pc}
+_020B20A4: ; 0x020B20A4
+ ldrh r1, [r4, #0x0]
+ ldr r2, [r2, #0x4]
+ ldr r0, [r5, #0x34]
+ add r3, r2, r1, lsl #0x3
+ ldr r1, [r2, r1, lsl #0x3]
+ ldr r2, [r3, #0x4]
+ bl FUN_020B4400
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r7,pc}
+
+ arm_func_start FUN_020B20C8
+FUN_020B20C8: ; 0x020B20C8
+ stmdb sp!, {r4-r11,lr}
+ sub sp, sp, #0xc
+ mov r6, #0x0
+ str r6, [r0, #0x38]
+ ldr r7, [sp, #0x30]
+ str r6, [r0, #0x30]
+ mov r10, r1
+ str r7, [r0, #0x34]
+ str r0, [sp, #0x0]
+ movs r8, r3
+ mov r9, r2
+ str r10, [r0, #0x3c]
+ ldr r11, [sp, #0x34]
+ beq _020B215C
+ mov r0, #0x1
+ str r6, [sp, #0x8]
+ str r0, [sp, #0x4]
+_020B210C:
+ mov r0, #0x28
+ mul r4, r6, r0
+ ldr r1, [sp, #0x4]
+ add r0, r10, r4
+ bl FUN_020B1AD4
+ mov r0, #0x54
+ mla r5, r6, r0, r9
+ ldr r1, [sp, #0x8]
+ mov r0, r7
+ str r5, [r10, r4]
+ bl FUN_020AFC04
+ mov r1, r0
+ mov r0, r5
+ mov r2, r11
+ bl FUN_020B1F80
+ add r0, r6, #0x1
+ mov r0, r0, lsl #0x10
+ mov r6, r0, lsr #0x10
+ cmp r6, r8
+ blo _020B210C
+_020B215C:
+ ldr r0, [sp, #0x0]
+ bl FUN_020B04C0
+_020B2164: ; 0x020B2164
+ ldr r0, [sp, #0x0]
+ ldr r3, [sp, #0x38]
+ ldr r2, [sp, #0x0]
+ add r0, r0, #0x44
+ mov r1, #0x1
+ str r3, [r2, #0x40]
+ bl FUN_020B1A68
+_020B2180: ; 0x020B2180
+ ldr r0, [sp, #0x0]
+ mov r1, #0x0
+ strh r1, [r0, #0x2c]
+ add sp, sp, #0xc
+ ldmia sp!, {r4-r11,pc}
+
+ arm_func_start FUN_020B2194
+FUN_020B2194: ; 0x020B2194
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0x4
+ mov r7, r0
+ bl FUN_020B0518
+_020B21A4: ; 0x020B21A4
+ cmp r0, #0x0
+ addeq sp, sp, #0x4
+ ldmeqia sp!, {r4-r7,pc}
+_020B21B0: ; 0x020B21B0
+ mov r0, r7
+ bl FUN_020B06E0
+ mov r4, r0
+ ldrh r1, [r4, #0x0]
+ ldr r0, [r7, #0x40]
+ bl FUN_020AFF34
+ ldr r1, [r7, #0x18]
+ mov r6, r0
+ ldr r1, [r1, #0x4]
+ add r0, r7, #0x44
+ and r5, r1, #0xff
+ mov r1, #0x1
+ bl FUN_020B1A68
+_020B21E4: ; 0x020B21E4
+ cmp r5, #0x0
+ beq _020B2234
+ cmp r5, #0x2
+ bne _020B2208
+ ldrsh r1, [r4, #0x4]
+ ldrsh r2, [r4, #0x6]
+ add r0, r7, #0x44
+ bl FUN_020B1AB4
+ b _020B2234
+_020B2208:
+ ldr r1, [r4, #0x4]
+ ldr r2, [r4, #0x8]
+ add r0, r7, #0x44
+ bl FUN_020B1A78
+ ldrh r1, [r4, #0x2]
+ add r0, r7, #0x44
+ bl FUN_020B1A98
+ ldrsh r1, [r4, #0xc]
+ ldrsh r2, [r4, #0xe]
+ add r0, r7, #0x44
+ bl FUN_020B1AB4
+_020B2234:
+ ldrh r2, [r7, #0x2c]
+ mov r1, r6
+ add r0, r7, #0x30
+ bl FUN_020B24E0
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r7,pc}
+
+ arm_func_start FUN_020B224C
+FUN_020B224C: ; 0x020B224C
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0x4
+ mov r4, r0
+ ldr r2, [r4, #0x0]
+ mov r6, r1
+ ldrh r5, [r2, #0x4]
+ bl FUN_020B0534
+_020B2268: ; 0x020B2268
+ cmp r0, #0x0
+ beq _020B2318
+ ldrh r1, [r4, #0x2c]
+ mov r0, r4
+ add r1, r1, r5
+ strh r1, [r4, #0x2c]
+ bl FUN_020B06E0
+ mov r5, r0
+ ldrh r1, [r5, #0x0]
+ ldr r0, [r4, #0x40]
+ bl FUN_020AFF34
+ ldr r1, [r4, #0x18]
+ mov r7, r0
+ ldr r1, [r1, #0x4]
+ add r0, r4, #0x44
+ and r6, r1, #0xff
+ mov r1, #0x1
+ bl FUN_020B1A68
+_020B22B0: ; 0x020B22B0
+ cmp r6, #0x0
+ beq _020B2300
+ cmp r6, #0x2
+ bne _020B22D4
+ ldrsh r1, [r5, #0x4]
+ ldrsh r2, [r5, #0x6]
+ add r0, r4, #0x44
+ bl FUN_020B1AB4
+ b _020B2300
+_020B22D4:
+ ldr r1, [r5, #0x4]
+ ldr r2, [r5, #0x8]
+ add r0, r4, #0x44
+ bl FUN_020B1A78
+ ldrh r1, [r5, #0x2]
+ add r0, r4, #0x44
+ bl FUN_020B1A98
+ ldrsh r1, [r5, #0xc]
+ ldrsh r2, [r5, #0xe]
+ add r0, r4, #0x44
+ bl FUN_020B1AB4
+_020B2300:
+ ldrh r2, [r4, #0x2c]
+ mov r1, r7
+ add r0, r4, #0x30
+ bl FUN_020B24E0
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r7,pc}
+_020B2318:
+ mov r1, r6
+ add r0, r4, #0x30
+ bl FUN_020B232C
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r7,pc}
+
+ arm_func_start FUN_020B232C
+FUN_020B232C: ; 0x020B232C
+ stmdb sp!, {r4-r8,lr}
+ mov r7, r0
+ ldr r0, [r7, #0x8]
+ mov r6, r1
+ cmp r0, #0x1
+ bne _020B238C
+ ldr r0, [r7, #0x0]
+ ldr r4, [r7, #0xc]
+ ldrh r0, [r0, #0x2]
+ mov r5, #0x0
+ cmp r0, #0x0
+ ldmlsia sp!, {r4-r8,pc}
+_020B235C: ; 0x020B235C
+ mov r8, #0x58
+_020B2360:
+ mla r0, r5, r8, r4
+ mov r1, r6
+ bl FUN_020B1EC4
+ ldr r1, [r7, #0x0]
+ add r0, r5, #0x1
+ mov r0, r0, lsl #0x10
+ ldrh r1, [r1, #0x2]
+ mov r5, r0, lsr #0x10
+ cmp r5, r1
+ blo _020B2360
+ ldmia sp!, {r4-r8,pc}
+_020B238C:
+ ldr r0, [r7, #0x0]
+ ldr r4, [r7, #0xc]
+ ldrh r0, [r0, #0x0]
+ mov r5, #0x0
+ cmp r0, #0x0
+ ldmlsia sp!, {r4-r8,pc}
+_020B23A4: ; 0x020B23A4
+ mov r8, #0x28
+_020B23A8:
+ mul r0, r5, r8
+ ldr r0, [r4, r0]
+ mov r1, r6
+ bl FUN_020B1EC4
+ ldr r1, [r7, #0x0]
+ add r0, r5, #0x1
+ mov r0, r0, lsl #0x10
+ ldrh r1, [r1, #0x0]
+ mov r5, r0, lsr #0x10
+ cmp r5, r1
+ blo _020B23A8
+ ldmia sp!, {r4-r8,pc}
+
+ arm_func_start FUN_020B23D8
+FUN_020B23D8: ; 0x020B23D8
+ stmdb sp!, {r4-r6,lr}
+ mov r5, r0
+ ldrh r0, [r5, #0x0]
+ mov r4, #0x0
+ mov r6, r4
+ cmp r0, #0x0
+ bls _020B2424
+_020B23F4:
+ mov r0, r5
+ mov r1, r6
+ bl FUN_020AFF34
+ ldrh r0, [r0, #0x0]
+ ldrh r1, [r5, #0x0]
+ cmp r0, r4
+ movhi r4, r0
+ add r0, r6, #0x1
+ mov r0, r0, lsl #0x10
+ mov r6, r0, lsr #0x10
+ cmp r6, r1
+ blo _020B23F4
+_020B2424:
+ mov r0, r4
+ ldmia sp!, {r4-r6,pc}
+
+ arm_func_start FUN_020B242C
+FUN_020B242C: ; 0x020B242C
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0x4
+ mov r7, r0
+ bl FUN_020B0438
+ mov r1, #0x0
+ mov r0, r7
+ strh r1, [r7, #0x2c]
+ bl FUN_020B06E0
+ mov r4, r0
+ ldrh r1, [r4, #0x0]
+ ldr r0, [r7, #0x40]
+ bl FUN_020AFF34
+ ldr r1, [r7, #0x18]
+ mov r6, r0
+ ldr r1, [r1, #0x4]
+ add r0, r7, #0x44
+ and r5, r1, #0xff
+ mov r1, #0x1
+ bl FUN_020B1A68
+_020B2478: ; 0x020B2478
+ cmp r5, #0x0
+ beq _020B24C8
+ cmp r5, #0x2
+ bne _020B249C
+ ldrsh r1, [r4, #0x4]
+ ldrsh r2, [r4, #0x6]
+ add r0, r7, #0x44
+ bl FUN_020B1AB4
+ b _020B24C8
+_020B249C:
+ ldr r1, [r4, #0x4]
+ ldr r2, [r4, #0x8]
+ add r0, r7, #0x44
+ bl FUN_020B1A78
+ ldrh r1, [r4, #0x2]
+ add r0, r7, #0x44
+ bl FUN_020B1A98
+ ldrsh r1, [r4, #0xc]
+ ldrsh r2, [r4, #0xe]
+ add r0, r7, #0x44
+ bl FUN_020B1AB4
+_020B24C8:
+ ldrh r2, [r7, #0x2c]
+ mov r1, r6
+ add r0, r7, #0x30
+ bl FUN_020B24E0
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r7,pc}
+
+ arm_func_start FUN_020B24E0
+FUN_020B24E0: ; 0x020B24E0
+ stmdb sp!, {r4-r11,lr}
+ sub sp, sp, #0x14
+ mov r10, r1
+ str r0, [sp, #0x0]
+ str r10, [r0, #0x0]
+ ldr r0, [r0, #0x8]
+ mov r9, r2
+ cmp r0, #0x1
+ bne _020B2654
+ ldrh r1, [r10, #0x2]
+ ldr r0, [sp, #0x0]
+ mov r4, #0x0
+ ldr r8, [r0, #0xc]
+ cmp r1, #0x0
+ bls _020B2544
+ mov r3, r4
+ mov r0, #0x58
+_020B2524:
+ mla r1, r4, r0, r8
+ str r3, [r1, #0x54]
+ add r1, r4, #0x1
+ mov r1, r1, lsl #0x10
+ ldrh r2, [r10, #0x2]
+ mov r4, r1, lsr #0x10
+ cmp r4, r2
+ blo _020B2524
+_020B2544:
+ ldrh r0, [r10, #0x0]
+ mov r5, #0x0
+ cmp r0, #0x0
+ addls sp, sp, #0x14
+ ldmlsia sp!, {r4-r11,pc}
+_020B2558: ; 0x020B2558
+ str r5, [sp, #0x4]
+ mov r11, #0x1
+_020B2560:
+ ldr r0, [r10, #0x4]
+ mov r1, #0x58
+ add r7, r0, r5, lsl #0x3
+ ldrh r0, [r7, #0x6]
+ and r0, r0, #0xff00
+ mov r0, r0, lsl #0x8
+ mov r0, r0, lsr #0x10
+ mla r6, r0, r1, r8
+ ldr r0, [r6, #0x54]
+ cmp r0, #0x0
+ bne _020B2634
+ ldr r0, [sp, #0x0]
+ ldrh r1, [r7, #0x0]
+ ldr r0, [r0, #0x4]
+ bl FUN_020AFC04
+ mov r4, r0
+ mov r0, r6
+ mov r1, r4
+ bl FUN_020B1EE4
+ str r11, [r6, #0x8]
+ ldrh r0, [r7, #0x6]
+ and r0, r0, #0xf
+ cmp r0, #0x1
+ bne _020B2630
+ ldrh r1, [r4, #0x0]
+ ldr r7, [sp, #0x4]
+ mov r3, r7
+ cmp r1, #0x0
+ bls _020B25F0
+ ldr r2, [r4, #0xc]
+_020B25D8:
+ add r0, r2, r3, lsl #0x3
+ ldrh r0, [r0, #0x4]
+ add r3, r3, #0x1
+ cmp r3, r1
+ add r7, r7, r0
+ blo _020B25D8
+_020B25F0:
+ mov r0, r6
+ bl FUN_020B0408
+_020B25F8: ; 0x020B25F8
+ cmp r0, #0x0
+ beq _020B261C
+ mov r0, r9
+ mov r1, r7
+ bl _u32_div_f
+ mov r0, r6
+ mov r1, r1, lsl #0xc
+ bl FUN_020B1EC4
+ b _020B2630
+_020B261C:
+ cmp r9, r7
+ movcc r7, r9
+ mov r0, r6
+ mov r1, r7, lsl #0xc
+ bl FUN_020B1EC4
+_020B2630:
+ str r11, [r6, #0x54]
+_020B2634:
+ add r0, r5, #0x1
+ mov r0, r0, lsl #0x10
+ ldrh r1, [r10, #0x0]
+ mov r5, r0, lsr #0x10
+ cmp r5, r1
+ blo _020B2560
+ add sp, sp, #0x14
+ ldmia sp!, {r4-r11,pc}
+_020B2654:
+ ldrh r1, [r10, #0x0]
+ ldr r0, [sp, #0x0]
+ mov r4, #0x0
+ cmp r1, #0x0
+ ldr r11, [r0, #0xc]
+ addls sp, sp, #0x14
+ ldmlsia sp!, {r4-r11,pc}
+_020B2670: ; 0x020B2670
+ mov r0, #0x1
+ str r4, [sp, #0xc]
+ str r0, [sp, #0x8]
+_020B267C:
+ mov r0, #0x28
+ mul r2, r4, r0
+ ldr r3, [r10, #0x4]
+ mov r0, r4, lsl #0x3
+ ldrh r1, [r3, r0]
+ ldr r0, [sp, #0x0]
+ ldr r6, [r11, r2]
+ ldr r0, [r0, #0x4]
+ add r7, r3, r4, lsl #0x3
+ bl FUN_020AFC04
+ mov r5, r0
+ mov r0, r6
+ mov r1, r5
+ bl FUN_020B1EE4
+ ldr r0, [sp, #0x8]
+ str r0, [r6, #0x8]
+ ldrh r0, [r7, #0x6]
+ and r0, r0, #0xf
+ cmp r0, #0x1
+ bne _020B2740
+ ldrh r1, [r5, #0x0]
+ ldr r8, [sp, #0xc]
+ mov r0, r8
+ cmp r1, #0x0
+ bls _020B2700
+ ldr r3, [r5, #0xc]
+_020B26E4:
+ add r1, r3, r0, lsl #0x3
+ ldrh r2, [r1, #0x4]
+ add r0, r0, #0x1
+ ldrh r1, [r5, #0x0]
+ add r8, r8, r2
+ cmp r0, r1
+ blo _020B26E4
+_020B2700:
+ mov r0, r6
+ bl FUN_020B0408
+_020B2708: ; 0x020B2708
+ cmp r0, #0x0
+ beq _020B272C
+ mov r0, r9
+ mov r1, r8
+ bl _u32_div_f
+ mov r0, r6
+ mov r1, r1, lsl #0xc
+ bl FUN_020B1EC4
+ b _020B2740
+_020B272C:
+ cmp r9, r8
+ movcc r8, r9
+ mov r0, r6
+ mov r1, r8, lsl #0xc
+ bl FUN_020B1EC4
+_020B2740:
+ mov r0, #0x28
+ mla r3, r4, r0, r11
+ ldr r0, [sp, #0x8]
+ str r0, [r3, #0x8]
+ ldrsh r1, [r7, #0x2]
+ ldrsh r2, [r7, #0x4]
+ add r0, r3, #0xc
+ bl FUN_020B1AB4
+ add r0, r4, #0x1
+ mov r0, r0, lsl #0x10
+ ldrh r1, [r10, #0x0]
+ mov r4, r0, lsr #0x10
+ cmp r4, r1
+ blo _020B267C
+ add sp, sp, #0x14
+ ldmia sp!, {r4-r11,pc}
+
+ arm_func_start thunk_FUN_020b5040
+thunk_FUN_020b5040: ; 0x020B2780
+ ldr ip, _020B2788 ; =FUN_020B5040
+ bx r12
+ .balign 4
+_020B2788: .word FUN_020B5040
+
+ arm_func_start FUN_020B278C
+FUN_020B278C:
+ ldr r0, [r0, #0x78]
+ bx lr
+
+ arm_func_start FUN_020B2794
+FUN_020B2794: ; 0x020B2794
+ stmdb sp!, {lr}
+ sub sp, sp, #0x1c
+ ldr r2, _020B2894 ; =0x021CDD70
+ mov lr, #0x0
+ ldr r12, [r2, #0x0]
+ ldr r3, _020B2898 ; =0x021CDEF4
+ mov r2, #0x18
+ str r1, [sp, #0x0]
+ str r1, [sp, #0xc]
+ mla r1, r12, r2, r3
+ rsb r3, r0, #0x0
+ str r0, [sp, #0x4]
+ add r0, sp, #0x0
+ mov r2, r1
+ str r3, [sp, #0x8]
+ str lr, [sp, #0x10]
+ str lr, [sp, #0x14]
+ bl FUN_020B423C
+ ldr r0, _020B2894 ; =0x021CDD70
+ ldr r1, _020B289C ; =0x021CE1F4
+ ldr r2, [r0, #0x0]
+ mov r0, #0x18
+ mla r1, r2, r0, r1
+ add r0, sp, #0x0
+ mov r2, r1
+ bl FUN_020B423C
+ ldr r0, _020B28A0 ; =0x021CDD68
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ bne _020B2824
+ ldr r1, _020B28A4 ; =0x02106570
+ ldr r0, _020B28A8 ; =0x0000FFFE
+ ldrh r1, [r1, #0x0]
+ cmp r1, r0
+ movne r0, #0x1
+ bne _020B2828
+_020B2824:
+ mov r0, #0x0
+_020B2828:
+ cmp r0, #0x0
+ ldreq r1, _020B2894 ; =0x021CDD70
+ ldreq r0, _020B28A4 ; =0x02106570
+ ldreq r1, [r1, #0x0]
+ streqh r1, [r0, #0x0]
+ ldr r0, _020B2894 ; =0x021CDD70
+ ldr r1, _020B28AC ; =0x021CDDF4
+ ldr r0, [r0, #0x0]
+ mov r0, r0, lsl #0x10
+ add r12, r1, r0, lsr #0xd
+ ldrh r0, [r12, #0x4]
+ cmp r0, #0x3
+ addls pc, pc, r0, lsl #0x2
+ b _020B288C
+_020B2860:
+ b _020B2870
+_020B2864:
+ b _020B288C
+_020B2868:
+ b _020B2870
+_020B286C:
+ b _020B2870
+_020B2870:
+ ldr r0, _020B28B0 ; =0x021CDD64
+ mov r1, #0x1
+ ldrh r3, [r0, #0x0]
+ add r2, r3, #0x1
+ strh r2, [r0, #0x0]
+ strh r3, [r12, #0x2]
+ strh r1, [r12, #0x4]
+_020B288C:
+ add sp, sp, #0x1c
+ ldmia sp!, {pc}
+ .balign 4
+_020B2894: .word 0x021CDD70
+_020B2898: .word 0x021CDEF4
+_020B289C: .word 0x021CE1F4
+_020B28A0: .word 0x021CDD68
+_020B28A4: .word 0x02106570
+_020B28A8: .word 0x0000FFFE
+_020B28AC: .word 0x021CDDF4
+_020B28B0: .word 0x021CDD64
+
+ arm_func_start FUN_020B28B4
+FUN_020B28B4: ; 0x020B28B4
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x1c
+ ldr r2, _020B29E8 ; =0x021CDD70
+ mov r12, #0x0
+ ldr r3, [r2, #0x0]
+ mov r4, r1
+ ldr r2, _020B29EC ; =0x021CDEF4
+ mov r1, #0x18
+ mla r1, r3, r1, r2
+ mov r5, r0
+ add r0, sp, #0x0
+ mov r2, r1
+ str r5, [sp, #0x0]
+ str r12, [sp, #0x4]
+ str r12, [sp, #0x8]
+ str r4, [sp, #0xc]
+ str r12, [sp, #0x10]
+ str r12, [sp, #0x14]
+ bl FUN_020B423C
+ mov r0, r5
+ bl FX_Inv
+ mov r1, #0x0
+ str r0, [sp, #0x0]
+ mov r0, r4
+ str r1, [sp, #0x4]
+ str r1, [sp, #0x8]
+ bl FX_Inv
+ mov r3, #0x0
+ ldr r1, _020B29E8 ; =0x021CDD70
+ str r0, [sp, #0xc]
+ ldr r2, [r1, #0x0]
+ ldr r1, _020B29F0 ; =0x021CE1F4
+ mov r0, #0x18
+ mla r1, r2, r0, r1
+ add r0, sp, #0x0
+ mov r2, r1
+ str r3, [sp, #0x10]
+ str r3, [sp, #0x14]
+ bl FUN_020B423C
+ ldr r0, _020B29F4 ; =0x021CDD68
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ bne _020B2978
+ ldr r1, _020B29F8 ; =0x02106570
+ ldr r0, _020B29FC ; =0x0000FFFE
+ ldrh r1, [r1, #0x0]
+ cmp r1, r0
+ movne r0, #0x1
+ bne _020B297C
+_020B2978:
+ mov r0, #0x0
+_020B297C:
+ cmp r0, #0x0
+ ldreq r1, _020B29E8 ; =0x021CDD70
+ ldreq r0, _020B29F8 ; =0x02106570
+ ldreq r1, [r1, #0x0]
+ streqh r1, [r0, #0x0]
+ ldr r0, _020B29E8 ; =0x021CDD70
+ ldr r1, _020B2A00 ; =0x021CDDF4
+ ldr r0, [r0, #0x0]
+ mov r0, r0, lsl #0x10
+ add r12, r1, r0, lsr #0xd
+ ldrh r0, [r12, #0x4]
+ cmp r0, #0x3
+ addls pc, pc, r0, lsl #0x2
+ b _020B29E0
+_020B29B4:
+ b _020B29C4
+_020B29B8:
+ b _020B29E0
+_020B29BC:
+ b _020B29C4
+_020B29C0:
+ b _020B29C4
+_020B29C4:
+ ldr r0, _020B2A04 ; =0x021CDD64
+ mov r1, #0x1
+ ldrh r3, [r0, #0x0]
+ add r2, r3, #0x1
+ strh r2, [r0, #0x0]
+ strh r3, [r12, #0x2]
+ strh r1, [r12, #0x4]
+_020B29E0:
+ add sp, sp, #0x1c
+ ldmia sp!, {r4-r5,pc}
+ .balign 4
+_020B29E8: .word 0x021CDD70
+_020B29EC: .word 0x021CDEF4
+_020B29F0: .word 0x021CE1F4
+_020B29F4: .word 0x021CDD68
+_020B29F8: .word 0x02106570
+_020B29FC: .word 0x0000FFFE
+_020B2A00: .word 0x021CDDF4
+_020B2A04: .word 0x021CDD64
+
+ arm_func_start FUN_020B2A08
+FUN_020B2A08: ; 0x020B2A08
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x1c
+ ldr r3, _020B2AEC ; =0x021CDD68
+ mov r4, r2
+ ldr r2, [r3, #0x0]
+ cmp r2, #0x0
+ beq _020B2A6C
+ ldr r2, _020B2AF0 ; =0x021CDD70
+ mov r3, #0x18
+ ldr r2, [r2, #0x0]
+ ldr lr, _020B2AF4 ; =0x021CDF04
+ mul r5, r2, r3
+ ldr r3, [lr, r5]
+ ldr ip, _020B2AF8 ; =0x021CDF08
+ add r0, r3, r0
+ str r0, [lr, r5]
+ ldr r0, [r12, r5]
+ ldr r3, _020B2AFC ; =0x021CDD74
+ add r0, r0, r1
+ str r0, [r12, r5]
+ ldr r0, [r3, r2, lsl #0x2]
+ add sp, sp, #0x1c
+ add r0, r0, r4
+ str r0, [r3, r2, lsl #0x2]
+ ldmia sp!, {r4-r5,pc}
+_020B2A6C:
+ ldr r2, _020B2AF0 ; =0x021CDD70
+ mov lr, #0x1000
+ ldr r12, [r2, #0x0]
+ ldr r3, _020B2B00 ; =0x021CDEF4
+ mov r2, #0x18
+ str r1, [sp, #0x14]
+ mla r1, r12, r2, r3
+ mov r3, #0x0
+ str r0, [sp, #0x10]
+ add r0, sp, #0x0
+ mov r2, r1
+ str lr, [sp, #0x0]
+ str r3, [sp, #0x4]
+ str r3, [sp, #0x8]
+ str lr, [sp, #0xc]
+ bl FUN_020B423C
+ ldr r0, _020B2AF0 ; =0x021CDD70
+ ldr r1, _020B2B04 ; =0x021CE1F4
+ ldr r2, [r0, #0x0]
+ mov r0, #0x18
+ mla r1, r2, r0, r1
+ add r0, sp, #0x0
+ mov r2, r1
+ bl FUN_020B423C
+ ldr r0, _020B2AF0 ; =0x021CDD70
+ ldr r2, _020B2AFC ; =0x021CDD74
+ ldr r1, [r0, #0x0]
+ ldr r0, [r2, r1, lsl #0x2]
+ add r0, r0, r4
+ str r0, [r2, r1, lsl #0x2]
+ add sp, sp, #0x1c
+ ldmia sp!, {r4-r5,pc}
+ .balign 4
+_020B2AEC: .word 0x021CDD68
+_020B2AF0: .word 0x021CDD70
+_020B2AF4: .word 0x021CDF04
+_020B2AF8: .word 0x021CDF08
+_020B2AFC: .word 0x021CDD74
+_020B2B00: .word 0x021CDEF4
+_020B2B04: .word 0x021CE1F4
+
+ arm_func_start FUN_020B2B08
+FUN_020B2B08: ; 0x020B2B08
+ ldr r0, _020B2B4C ; =0x021CDD70
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ movle r0, #0x1
+ movgt r0, #0x0
+ cmp r0, #0x0
+ bxne lr
+ ldr r1, _020B2B4C ; =0x021CDD70
+ ldr r0, _020B2B50 ; =0x02106570
+ ldr r3, [r1, #0x0]
+ ldrh r2, [r0, #0x0]
+ sub r3, r3, #0x1
+ str r3, [r1, #0x0]
+ cmp r2, r3
+ ldrgt r1, _020B2B54 ; =0x0000FFFE
+ strgth r1, [r0, #0x0]
+ bx lr
+ .balign 4
+_020B2B4C: .word 0x021CDD70
+_020B2B50: .word 0x02106570
+_020B2B54: .word 0x0000FFFE
+
+ arm_func_start FUN_020B2B58
+FUN_020B2B58: ; 0x020B2B58
+ stmdb sp!, {r4-r10,lr}
+ ldr r0, _020B2D74 ; =0x021CDD6C
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0x7c]
+ ands r0, r0, #0x1
+ bne _020B2CA4
+ ldr r0, _020B2D78 ; =0x021CDD70
+ ldr r1, [r0, #0x0]
+ mov r0, r1, lsl #0x10
+ add r5, r1, #0x1
+ cmp r5, #0x20
+ mov r4, r0, lsr #0x10
+ movlt r0, #0x1
+ movge r0, #0x0
+ cmp r0, #0x0
+ beq _020B2C44
+ ldr r0, _020B2D7C ; =0x021CDD68
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ beq _020B2BE4
+ ldr r1, _020B2D78 ; =0x021CDD70
+ mov r0, #0x18
+ ldr r3, [r1, #0x0]
+ ldr r1, _020B2D80 ; =0x021CDD74
+ mul r8, r3, r0
+ ldr r6, _020B2D84 ; =0x021CDF04
+ mul r7, r5, r0
+ ldr r2, [r6, r8]
+ ldr r0, [r1, r3, lsl #0x2]
+ ldr r3, _020B2D88 ; =0x021CDF08
+ str r2, [r6, r7]
+ ldr r2, [r3, r8]
+ str r0, [r1, r5, lsl #0x2]
+ str r2, [r3, r7]
+ b _020B2C3C
+_020B2BE4:
+ ldr r1, _020B2D78 ; =0x021CDD70
+ mov r0, #0x18
+ ldr r2, [r1, #0x0]
+ ldr r7, _020B2D80 ; =0x021CDD74
+ mul lr, r2, r0
+ ldr r1, _020B2D8C ; =0x021CDEF4
+ mul r12, r5, r0
+ ldr r8, _020B2D90 ; =0x021CE1F4
+ add r10, r1, lr
+ ldr r6, [r7, r2, lsl #0x2]
+ add r9, r1, r12
+ ldmia r10!, {r0-r3}
+ stmia r9!, {r0-r3}
+ ldmia r10, {r0-r1}
+ str r6, [r7, r5, lsl #0x2]
+ add r7, r8, lr
+ stmia r9, {r0-r1}
+ add r6, r8, r12
+ ldmia r7!, {r0-r3}
+ stmia r6!, {r0-r3}
+ ldmia r7, {r0-r1}
+ stmia r6, {r0-r1}
+_020B2C3C:
+ ldr r0, _020B2D78 ; =0x021CDD70
+ str r5, [r0, #0x0]
+_020B2C44:
+ ldr r0, _020B2D78 ; =0x021CDD70
+ ldr r2, _020B2D94 ; =0x021CDDF4
+ ldr r0, [r0, #0x0]
+ mov r5, r4, lsl #0x3
+ mov r0, r0, lsl #0x10
+ mov r3, r0, lsr #0x10
+ add r4, r2, r4, lsl #0x3
+ mov r6, r3, lsl #0x3
+ ldrh r1, [r2, r5]
+ ldrh r0, [r4, #0x2]
+ add r3, r2, r3, lsl #0x3
+ strh r1, [r2, r6]
+ strh r0, [r3, #0x2]
+ ldrh r2, [r4, #0x4]
+ ldrh r0, [r4, #0x6]
+ ldr r1, _020B2D98 ; =0x021CDDF8
+ strh r2, [r3, #0x4]
+ strh r0, [r3, #0x6]
+ ldrh r0, [r1, r5]
+ cmp r0, #0x1
+ moveq r0, #0x2
+ streqh r0, [r1, r6]
+ strneh r0, [r1, r6]
+ ldmia sp!, {r4-r10,pc}
+_020B2CA4:
+ ldr r0, _020B2D78 ; =0x021CDD70
+ ldr r0, [r0, #0x0]
+ add r4, r0, #0x1
+ cmp r4, #0x20
+ movlt r0, #0x1
+ movge r0, #0x0
+ cmp r0, #0x0
+ ldmeqia sp!, {r4-r10,pc}
+_020B2CC4: ; 0x020B2CC4
+ ldr r0, _020B2D7C ; =0x021CDD68
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ beq _020B2D10
+ ldr r1, _020B2D78 ; =0x021CDD70
+ mov r0, #0x18
+ ldr r3, [r1, #0x0]
+ ldr r1, _020B2D80 ; =0x021CDD74
+ mul r7, r3, r0
+ ldr r5, _020B2D84 ; =0x021CDF04
+ mul r6, r4, r0
+ ldr r2, [r5, r7]
+ ldr r0, [r1, r3, lsl #0x2]
+ ldr r3, _020B2D88 ; =0x021CDF08
+ str r2, [r5, r6]
+ ldr r2, [r3, r7]
+ str r0, [r1, r4, lsl #0x2]
+ str r2, [r3, r6]
+ b _020B2D68
+_020B2D10:
+ ldr r1, _020B2D78 ; =0x021CDD70
+ mov r0, #0x18
+ ldr r2, [r1, #0x0]
+ ldr ip, _020B2D80 ; =0x021CDD74
+ mul r9, r2, r0
+ ldr r1, _020B2D8C ; =0x021CDEF4
+ mul r8, r4, r0
+ ldr lr, _020B2D90 ; =0x021CE1F4
+ add r6, r1, r9
+ ldr r5, [r12, r2, lsl #0x2]
+ add r7, r1, r8
+ ldmia r6!, {r0-r3}
+ stmia r7!, {r0-r3}
+ ldmia r6, {r0-r1}
+ add r6, lr, r9
+ stmia r7, {r0-r1}
+ add lr, lr, r8
+ ldmia r6!, {r0-r3}
+ stmia lr!, {r0-r3}
+ ldmia r6, {r0-r1}
+ stmia lr, {r0-r1}
+ str r5, [r12, r4, lsl #0x2]
+_020B2D68:
+ ldr r0, _020B2D78 ; =0x021CDD70
+ str r4, [r0, #0x0]
+ ldmia sp!, {r4-r10,pc}
+ .balign 4
+_020B2D74: .word 0x021CDD6C
+_020B2D78: .word 0x021CDD70
+_020B2D7C: .word 0x021CDD68
+_020B2D80: .word 0x021CDD74
+_020B2D84: .word 0x021CDF04
+_020B2D88: .word 0x021CDF08
+_020B2D8C: .word 0x021CDEF4
+_020B2D90: .word 0x021CE1F4
+_020B2D94: .word 0x021CDDF4
+_020B2D98: .word 0x021CDDF8
+
+ arm_func_start FUN_020B2D9C
+FUN_020B2D9C: ; 0x020B2D9C
+ stmdb sp!, {r4-r6,lr}
+ mov r4, r0
+ ldrh r0, [r4, #0x56]
+ cmp r0, #0x0
+ bne _020B2DBC
+ add r0, r4, #0x30
+ bl FUN_020B2E78
+ ldmia sp!, {r4-r6,pc}
+_020B2DBC:
+ bl FUN_020B2B58
+ ldrh r0, [r4, #0x56]
+ ands r0, r0, #0x8
+ beq _020B2E0C
+ ldr r0, _020B2E70 ; =0x021CDD6C
+ ldrsh r6, [r4, #0x52]
+ ldr r0, [r0, #0x0]
+ ldrsh r5, [r4, #0x50]
+ bl FUN_020B4F88
+_020B2DE0: ; 0x020B2DE0
+ cmp r0, #0x0
+ ldr r0, _020B2E70 ; =0x021CDD6C
+ rsbne r5, r5, #0x0
+ ldr r0, [r0, #0x0]
+ bl FUN_020B4F74
+_020B2DF4: ; 0x020B2DF4
+ cmp r0, #0x0
+ rsbne r6, r6, #0x0
+ mov r0, r5, lsl #0xc
+ mov r1, r6, lsl #0xc
+ mov r2, #0x0
+ bl FUN_020B2A08
+_020B2E0C:
+ ldrh r0, [r4, #0x56]
+ ands r0, r0, #0x4
+ beq _020B2E40
+ ldrh r0, [r4, #0x54]
+ ldr r2, _020B2E74 ; =0x020FFA38
+ mov r0, r0, asr #0x4
+ mov r1, r0, lsl #0x1
+ add r0, r1, #0x1
+ mov r3, r1, lsl #0x1
+ mov r1, r0, lsl #0x1
+ ldrsh r0, [r2, r3]
+ ldrsh r1, [r2, r1]
+ bl FUN_020B2794
+_020B2E40:
+ ldrh r0, [r4, #0x56]
+ ands r0, r0, #0x2
+ beq _020B2E5C
+ ldr r0, [r4, #0x48]
+ ldr r1, [r4, #0x4c]
+ mov r2, #0x1000
+ bl FUN_020B28B4
+_020B2E5C:
+ add r0, r4, #0x30
+ bl FUN_020B2E78
+ mov r0, #0x1
+ bl FUN_020B2B08
+ ldmia sp!, {r4-r6,pc}
+ .balign 4
+_020B2E70: .word 0x021CDD6C
+_020B2E74: .word 0x020FFA38
+
+ arm_func_start FUN_020B2E78
+FUN_020B2E78: ; 0x020B2E78
+ stmdb sp!, {r4-r11,lr}
+ sub sp, sp, #0xc
+ mov r5, r0
+ ldr r0, [r5, #0x8]
+ cmp r0, #0x1
+ bne _020B309C
+ ldr r0, [r5, #0x0]
+ mov r2, #0x0
+ ldrh r0, [r0, #0x2]
+ cmp r0, #0x0
+ bls _020B2ED0
+ ldr r3, _020B3174 ; =0x021CE8F4
+ mov r4, r2
+_020B2EAC:
+ add r0, r3, r2, lsl #0x2
+ str r4, [r0, #0x4]
+ ldr r0, [r5, #0x0]
+ add r2, r2, #0x1
+ ldrh r1, [r0, #0x2]
+ mov r0, r2, lsl #0x10
+ mov r2, r0, lsr #0x10
+ cmp r2, r1
+ blo _020B2EAC
+_020B2ED0:
+ ldr r0, _020B3178 ; =0x021CDD6C
+ mov r6, #0x1
+ ldr r1, [r0, #0x0]
+ ldr r0, _020B3174 ; =0x021CE8F4
+ str r6, [r0, #0x404]
+ ldr r0, [r1, #0x80]
+ cmp r0, #0x0
+ beq _020B2FD8
+ bl FUN_020B4948
+_020B2EF4: ; 0x020B2EF4
+ str r0, [sp, #0x0]
+ mov r0, r6
+ bl FUN_020B497C
+ ldr r0, _020B3178 ; =0x021CDD6C
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0x80]
+ bl FUN_020B4958
+ ldr r2, [r5, #0x0]
+ mov r7, #0x0
+ ldrh r0, [r2, #0x0]
+ cmp r0, #0x0
+ bls _020B2FC0
+ mov r11, r7
+_020B2F28:
+ ldr r0, [r2, #0x4]
+ ldr r9, [r5, #0xc]
+ add r10, r0, r7, lsl #0x3
+ ldrh r0, [r10, #0x6]
+ and r0, r0, #0xff00
+ mov r0, r0, lsl #0x8
+ mov r8, r0, lsr #0x10
+ ldr r0, _020B3174 ; =0x021CE8F4
+ strh r8, [r0, #0x0]
+ bl FUN_020B2B58
+ ldr r0, _020B3178 ; =0x021CDD6C
+ ldrsh r4, [r10, #0x4]
+ ldr r0, [r0, #0x0]
+ ldrsh r10, [r10, #0x2]
+ bl FUN_020B4F88
+_020B2F64: ; 0x020B2F64
+ cmp r0, #0x0
+ ldr r0, _020B3178 ; =0x021CDD6C
+ rsbne r10, r10, #0x0
+ ldr r0, [r0, #0x0]
+ bl FUN_020B4F74
+_020B2F78: ; 0x020B2F78
+ cmp r0, #0x0
+ rsbne r4, r4, #0x0
+ mov r2, r11
+ mov r0, r10, lsl #0xc
+ mov r1, r4, lsl #0xc
+ bl FUN_020B2A08
+ mov r0, #0x58
+ mla r0, r8, r0, r9
+ bl FUN_020B3554
+ mov r0, r6
+ bl FUN_020B2B08
+ ldr r2, [r5, #0x0]
+ add r0, r7, #0x1
+ mov r0, r0, lsl #0x10
+ ldrh r1, [r2, #0x0]
+ mov r7, r0, lsr #0x10
+ cmp r7, r1
+ blo _020B2F28
+_020B2FC0:
+ mov r0, #0x0
+ bl FUN_020B497C
+_020B2FC8: ; 0x020B2FC8
+ ldr r0, [sp, #0x0]
+ bl FUN_020B4958
+ bl FUN_020B4968
+ b _020B3088
+_020B2FD8:
+ ldr r2, [r5, #0x0]
+ mov r7, #0x0
+ ldrh r0, [r2, #0x0]
+ cmp r0, #0x0
+ bls _020B3088
+ str r7, [sp, #0x4]
+ mov r11, #0x58
+_020B2FF4:
+ ldr r0, [r2, #0x4]
+ ldr r9, [r5, #0xc]
+ add r10, r0, r7, lsl #0x3
+ ldrh r0, [r10, #0x6]
+ and r0, r0, #0xff00
+ mov r0, r0, lsl #0x8
+ mov r8, r0, lsr #0x10
+ ldr r0, _020B3174 ; =0x021CE8F4
+ strh r8, [r0, #0x0]
+ bl FUN_020B2B58
+ ldr r0, _020B3178 ; =0x021CDD6C
+ ldrsh r4, [r10, #0x4]
+ ldr r0, [r0, #0x0]
+ ldrsh r10, [r10, #0x2]
+ bl FUN_020B4F88
+_020B3030: ; 0x020B3030
+ cmp r0, #0x0
+ ldr r0, _020B3178 ; =0x021CDD6C
+ rsbne r10, r10, #0x0
+ ldr r0, [r0, #0x0]
+ bl FUN_020B4F74
+_020B3044: ; 0x020B3044
+ cmp r0, #0x0
+ rsbne r4, r4, #0x0
+ ldr r2, [sp, #0x4]
+ mov r0, r10, lsl #0xc
+ mov r1, r4, lsl #0xc
+ bl FUN_020B2A08
+ mla r0, r8, r11, r9
+ bl FUN_020B3554
+ mov r0, r6
+ bl FUN_020B2B08
+ ldr r2, [r5, #0x0]
+ add r0, r7, #0x1
+ mov r0, r0, lsl #0x10
+ ldrh r1, [r2, #0x0]
+ mov r7, r0, lsr #0x10
+ cmp r7, r1
+ blo _020B2FF4
+_020B3088:
+ ldr r0, _020B3174 ; =0x021CE8F4
+ mov r1, #0x0
+ str r1, [r0, #0x404]
+ add sp, sp, #0xc
+ ldmia sp!, {r4-r11,pc}
+_020B309C:
+ ldr r0, _020B3178 ; =0x021CDD6C
+ ldr r7, [r5, #0xc]
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0x80]
+ cmp r0, #0x0
+ beq _020B312C
+ bl FUN_020B4948
+ mov r6, r0
+ mov r0, #0x1
+ bl FUN_020B497C
+ ldr r0, _020B3178 ; =0x021CDD6C
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0x80]
+ bl FUN_020B4958
+_020B30D4: ; 0x020B30D4
+ ldr r0, [r5, #0x0]
+ mov r4, #0x0
+ ldrh r0, [r0, #0x0]
+ cmp r0, #0x0
+ bls _020B3110
+ mov r8, #0x28
+_020B30EC:
+ mla r0, r4, r8, r7
+ bl FUN_020B3474
+ ldr r1, [r5, #0x0]
+ add r0, r4, #0x1
+ mov r0, r0, lsl #0x10
+ ldrh r1, [r1, #0x0]
+ mov r4, r0, lsr #0x10
+ cmp r4, r1
+ blo _020B30EC
+_020B3110:
+ mov r0, #0x0
+ bl FUN_020B497C
+ mov r0, r6
+ bl FUN_020B4958
+ bl FUN_020B4968
+ add sp, sp, #0xc
+ ldmia sp!, {r4-r11,pc}
+_020B312C:
+ ldr r0, [r5, #0x0]
+ mov r4, #0x0
+ ldrh r0, [r0, #0x0]
+ cmp r0, #0x0
+ addls sp, sp, #0xc
+ ldmlsia sp!, {r4-r11,pc}
+_020B3144: ; 0x020B3144
+ mov r6, #0x28
+_020B3148:
+ mla r0, r4, r6, r7
+ bl FUN_020B3474
+ ldr r1, [r5, #0x0]
+ add r0, r4, #0x1
+ mov r0, r0, lsl #0x10
+ ldrh r1, [r1, #0x0]
+ mov r4, r0, lsr #0x10
+ cmp r4, r1
+ blo _020B3148
+ add sp, sp, #0xc
+ ldmia sp!, {r4-r11,pc}
+ .balign 4
+_020B3174: .word 0x021CE8F4
+_020B3178: .word 0x021CDD6C
+
+ arm_func_start FUN_020B317C
+FUN_020B317C: ; 0x020B317C
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ ldr r1, _020B31EC ; =0x021CDD6C
+ mov r5, r0
+ ldr r1, [r1, #0x0]
+ ldr r1, [r1, #0x80]
+ cmp r1, #0x0
+ beq _020B31E0
+ bl FUN_020B4948
+ mov r4, r0
+ mov r0, #0x1
+ bl FUN_020B497C
+ ldr r0, _020B31EC ; =0x021CDD6C
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0x80]
+ bl FUN_020B4958
+ mov r0, r5
+ bl FUN_020B3554
+_020B31C4: ; 0x020B31C4
+ mov r0, #0x0
+ bl FUN_020B497C
+ mov r0, r4
+ bl FUN_020B4958
+ bl FUN_020B4968
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,pc}
+_020B31E0:
+ bl FUN_020B3554
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,pc}
+ .balign 4
+_020B31EC: .word 0x021CDD6C
+
+ arm_func_start FUN_020B31F0
+FUN_020B31F0: ; 0x020B31F0
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldr r1, _020B3260 ; =0x04000448
+ mov r2, #0x1
+ ldr r0, _020B3264 ; =0x021CDD6C
+ str r2, [r1, #0x0]
+ ldr r2, [r0, #0x0]
+ ldr r3, [r2, #0x7c]
+ cmp r3, #0x0
+ beq _020B324C
+ ands r0, r3, #0x1
+ ldrne r0, _020B3268 ; =0x021CDD68
+ movne r1, #0x0
+ strne r1, [r0, #0x0]
+ ands r0, r3, #0x2
+ beq _020B323C
+ mov r0, #0x0
+ str r0, [r2, #0x74]
+ bl FUN_020B4DA0
+_020B323C:
+ ldr r0, _020B3264 ; =0x021CDD6C
+ mov r1, #0x0
+ ldr r0, [r0, #0x0]
+ str r1, [r0, #0x7c]
+_020B324C:
+ ldr r0, _020B3264 ; =0x021CDD6C
+ mov r1, #0x0
+ str r1, [r0, #0x0]
+ add sp, sp, #0x4
+ ldmia sp!, {pc}
+ .balign 4
+_020B3260: .word 0x04000448
+_020B3264: .word 0x021CDD6C
+_020B3268: .word 0x021CDD68
+
+ arm_func_start FUN_020B326C
+FUN_020B326C: ; 0x020B326C
+ stmdb sp!, {r4-r8,lr}
+ ldr r5, _020B330C ; =0x021CDD60
+ ldr r3, _020B3310 ; =0x021CDD6C
+ ldrh r6, [r5, #0x0]
+ ldr r2, _020B3314 ; =0x021CDD70
+ mov r4, #0x0
+ ldr r7, _020B3318 ; =0x0000FFFE
+ ldr r1, _020B331C ; =0x02106570
+ str r0, [r3, #0x0]
+ str r4, [r2, #0x0]
+ strh r7, [r1, #0x0]
+ cmp r6, #0x0
+ ble _020B32D0
+ ldr r8, _020B3320 ; =0x021CE4F4
+ mvn r7, #0x0
+ mov r6, #0x10
+_020B32AC:
+ mov r0, r7
+ mov r2, r6
+ add r1, r8, #0x10
+ bl MIi_CpuClearFast
+ ldrh r0, [r5, #0x0]
+ add r4, r4, #0x1
+ add r8, r8, #0x20
+ cmp r4, r0
+ blt _020B32AC
+_020B32D0:
+ ldr r4, _020B330C ; =0x021CDD60
+ mov r0, #0x0
+ ldr r3, _020B3324 ; =0x021CDD64
+ ldr r1, _020B3328 ; =0x021CDDF4
+ mov r2, #0x100
+ strh r0, [r4, #0x0]
+ strh r0, [r3, #0x0]
+ bl MIi_CpuClearFast
+ ldr r1, _020B332C ; =0x04000444
+ mov r2, #0x0
+ ldr r0, _020B3330 ; =0x04000454
+ str r2, [r1, #0x0]
+ str r2, [r0, #0x0]
+ bl FUN_020B4178
+ ldmia sp!, {r4-r8,pc}
+ .balign 4
+_020B330C: .word 0x021CDD60
+_020B3310: .word 0x021CDD6C
+_020B3314: .word 0x021CDD70
+_020B3318: .word 0x0000FFFE
+_020B331C: .word 0x02106570
+_020B3320: .word 0x021CE4F4
+_020B3324: .word 0x021CDD64
+_020B3328: .word 0x021CDDF4
+_020B332C: .word 0x04000444
+_020B3330: .word 0x04000454
+
+ arm_func_start FUN_020B3334
+FUN_020B3334: ; 0x020B3334
+ stmdb sp!, {r4,lr}
+ mov r4, r0
+ mov r1, r4
+ mov r0, #0x0
+ mov r2, #0x48
+ bl MIi_CpuClear16
+ mov r0, #0x1
+ str r0, [r4, #0x10]
+ mov r0, #0x3
+ ldr r1, _020B3380 ; =FUN_020B3EE0
+ str r0, [r4, #0x14]
+ ldr r0, _020B3384 ; =FUN_020B3E48
+ str r1, [r4, #0x18]
+ ldr r1, _020B3388 ; =FUN_020B3C40
+ str r0, [r4, #0x1c]
+ ldr r0, _020B338C ; =FUN_020B3B90
+ str r1, [r4, #0x20]
+ str r0, [r4, #0x24]
+ ldmia sp!, {r4,pc}
+ .balign 4
+_020B3380: .word FUN_020B3EE0
+_020B3384: .word FUN_020B3E48
+_020B3388: .word FUN_020B3C40
+_020B338C: .word FUN_020B3B90
+
+ arm_func_start FUN_020B3390
+FUN_020B3390: ; 0x020B3390
+ ldr r2, [r0, #0x70]
+ str r2, [r1, #0x30]
+ str r1, [r0, #0x70]
+ bx lr
+
+ arm_func_start FUN_020B33A0
+FUN_020B33A0: ; 0x020B33A0
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0x4
+ mov r4, r0
+ bl FUN_020B504C
+ mov r7, #0x0
+ str r7, [r4, #0x70]
+ str r7, [r4, #0x74]
+ str r7, [r4, #0x78]
+ str r7, [r4, #0x7c]
+ str r7, [r4, #0x80]
+ str r7, [r4, #0x84]
+ strh r7, [r4, #0x88]
+ strh r7, [r4, #0x8a]
+ str r7, [r4, #0x8c]
+ str r7, [r4, #0x90]
+ ldr r1, _020B3454 ; =0x021CDD70
+ strh r7, [r4, #0x94]
+ ldr r2, _020B3458 ; =0x0000FFFE
+ ldr r0, _020B345C ; =0x02106570
+ ldr r6, _020B3460 ; =0x021CE4F4
+ str r7, [r1, #0x0]
+ strh r2, [r0, #0x0]
+ mvn r5, #0x0
+ mov r4, #0x10
+_020B3400:
+ mov r0, r5
+ mov r2, r4
+ add r1, r6, #0x10
+ bl MIi_CpuClearFast
+ add r7, r7, #0x1
+ cmp r7, #0x20
+ add r6, r6, #0x20
+ blt _020B3400
+ ldr ip, _020B3464 ; =0x021CDD60
+ mov r0, #0x0
+ ldr r3, _020B3468 ; =0x021CDD64
+ ldr r1, _020B346C ; =0x021CDDF4
+ mov r2, #0x100
+ strh r0, [r12, #0x0]
+ strh r0, [r3, #0x0]
+ bl MIi_CpuClearFast
+ ldr r0, _020B3470 ; =0x021CDD68
+ mov r1, #0x0
+ str r1, [r0, #0x0]
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r7,pc}
+ .balign 4
+_020B3454: .word 0x021CDD70
+_020B3458: .word 0x0000FFFE
+_020B345C: .word 0x02106570
+_020B3460: .word 0x021CE4F4
+_020B3464: .word 0x021CDD60
+_020B3468: .word 0x021CDD64
+_020B346C: .word 0x021CDDF4
+_020B3470: .word 0x021CDD68
+
+ arm_func_start FUN_020B3474
+FUN_020B3474: ; 0x020B3474
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0x4
+ mov r5, r0
+ ldr r0, [r5, #0x8]
+ cmp r0, #0x0
+ addeq sp, sp, #0x4
+ ldmeqia sp!, {r4-r7,pc}
+_020B3490: ; 0x020B3490
+ ldr r4, [r5, #0x0]
+ bl FUN_020B2B58
+ ldrh r0, [r5, #0x1e]
+ ands r0, r0, #0x8
+ beq _020B34E4
+ ldr r0, _020B354C ; =0x021CDD6C
+ ldrsh r7, [r5, #0x1a]
+ ldr r0, [r0, #0x0]
+ ldrsh r6, [r5, #0x18]
+ bl FUN_020B4F88
+_020B34B8: ; 0x020B34B8
+ cmp r0, #0x0
+ ldr r0, _020B354C ; =0x021CDD6C
+ rsbne r6, r6, #0x0
+ ldr r0, [r0, #0x0]
+ bl FUN_020B4F74
+_020B34CC: ; 0x020B34CC
+ cmp r0, #0x0
+ rsbne r7, r7, #0x0
+ mov r0, r6, lsl #0xc
+ mov r1, r7, lsl #0xc
+ mov r2, #0x0
+ bl FUN_020B2A08
+_020B34E4:
+ ldrh r0, [r5, #0x1e]
+ ands r0, r0, #0x4
+ beq _020B3518
+ ldrh r0, [r5, #0x1c]
+ ldr r2, _020B3550 ; =0x020FFA38
+ mov r0, r0, asr #0x4
+ mov r1, r0, lsl #0x1
+ add r0, r1, #0x1
+ mov r3, r1, lsl #0x1
+ mov r1, r0, lsl #0x1
+ ldrsh r0, [r2, r3]
+ ldrsh r1, [r2, r1]
+ bl FUN_020B2794
+_020B3518:
+ ldrh r0, [r5, #0x1e]
+ ands r0, r0, #0x2
+ beq _020B3534
+ ldr r0, [r5, #0x10]
+ ldr r1, [r5, #0x14]
+ mov r2, #0x1000
+ bl FUN_020B28B4
+_020B3534:
+ mov r0, r4
+ bl FUN_020B3554
+ mov r0, #0x1
+ bl FUN_020B2B08
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r7,pc}
+ .balign 4
+_020B354C: .word 0x021CDD6C
+_020B3550: .word 0x020FFA38
+
+ arm_func_start FUN_020B3554
+FUN_020B3554:
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0x4
+ mov r5, r0
+ ldrh r0, [r5, #0x4a]
+ ldr r4, [r5, #0x2c]
+ cmp r0, #0x0
+ bne _020B35C0
+ ldr r2, [r5, #0x34]
+ mvn r0, #0x0
+ cmp r2, r0
+ movne r0, #0x1
+ moveq r0, #0x0
+ cmp r0, #0x0
+ beq _020B35B0
+ ldr r1, _020B36B4 ; =0x02106574
+ mov r0, r4
+ str r2, [r1, #0x0]
+ bl FUN_020B36C0
+ ldr r0, _020B36B4 ; =0x02106574
+ mvn r1, #0x0
+ str r1, [r0, #0x0]
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r7,pc}
+_020B35B0:
+ mov r0, r4
+ bl FUN_020B36C0
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r7,pc}
+_020B35C0:
+ bl FUN_020B2B58
+ ldrh r0, [r5, #0x4a]
+ ands r0, r0, #0x8
+ beq _020B3610
+ ldr r0, _020B36B8 ; =0x021CDD6C
+ ldrsh r7, [r5, #0x46]
+ ldr r0, [r0, #0x0]
+ ldrsh r6, [r5, #0x44]
+ bl FUN_020B4F88
+_020B35E4: ; 0x020B35E4
+ cmp r0, #0x0
+ ldr r0, _020B36B8 ; =0x021CDD6C
+ rsbne r6, r6, #0x0
+ ldr r0, [r0, #0x0]
+ bl FUN_020B4F74
+_020B35F8: ; 0x020B35F8
+ cmp r0, #0x0
+ rsbne r7, r7, #0x0
+ mov r0, r6, lsl #0xc
+ mov r1, r7, lsl #0xc
+ mov r2, #0x0
+ bl FUN_020B2A08
+_020B3610:
+ ldrh r0, [r5, #0x4a]
+ ands r0, r0, #0x4
+ beq _020B3644
+ ldrh r0, [r5, #0x48]
+ ldr r2, _020B36BC ; =0x020FFA38
+ mov r0, r0, asr #0x4
+ mov r1, r0, lsl #0x1
+ add r0, r1, #0x1
+ mov r3, r1, lsl #0x1
+ mov r1, r0, lsl #0x1
+ ldrsh r0, [r2, r3]
+ ldrsh r1, [r2, r1]
+ bl FUN_020B2794
+_020B3644:
+ ldrh r0, [r5, #0x4a]
+ ands r0, r0, #0x2
+ beq _020B3660
+ ldr r0, [r5, #0x3c]
+ ldr r1, [r5, #0x40]
+ mov r2, #0x1000
+ bl FUN_020B28B4
+_020B3660:
+ ldr r2, [r5, #0x34]
+ mvn r0, #0x0
+ cmp r2, r0
+ movne r0, #0x1
+ moveq r0, #0x0
+ cmp r0, #0x0
+ beq _020B369C
+ ldr r1, _020B36B4 ; =0x02106574
+ mov r0, r4
+ str r2, [r1, #0x0]
+ bl FUN_020B36C0
+ ldr r0, _020B36B4 ; =0x02106574
+ mvn r1, #0x0
+ str r1, [r0, #0x0]
+ b _020B36A4
+_020B369C:
+ mov r0, r4
+ bl FUN_020B36C0
+_020B36A4:
+ mov r0, #0x1
+ bl FUN_020B2B08
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r7,pc}
+ .balign 4
+_020B36B4: .word 0x02106574
+_020B36B8: .word 0x021CDD6C
+_020B36BC: .word 0x020FFA38
+
+ arm_func_start FUN_020B36C0
+FUN_020B36C0: ; 0x020B36C0
+ stmdb sp!, {r4-r11,lr}
+ sub sp, sp, #0x4
+ ldr r5, _020B3B54 ; =0x021CDD6C
+ mov r10, r0
+ ldr r0, [r5, #0x0]
+ ldr r1, [r0, #0x7c]
+ str r0, [sp, #0x0]
+ ldr r9, [r0, #0x70]
+ ands r0, r1, #0x2
+ beq _020B38EC
+ ldr r0, [r9, #0x14]
+ cmp r0, #0x0
+ beq _020B3840
+ ldr r0, _020B3B58 ; =0x021CDD68
+ mov r1, #0x0
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ bne _020B3720
+ ldr r2, _020B3B5C ; =0x02106570
+ ldr r0, _020B3B60 ; =0x0000FFFE
+ ldrh r2, [r2, #0x0]
+ cmp r2, r0
+ movne r0, #0x1
+ bne _020B3724
+_020B3720:
+ mov r0, #0x0
+_020B3724:
+ cmp r0, #0x0
+ beq _020B37AC
+ ldr r0, _020B3B64 ; =0x021CE8F4
+ ldr r1, [r0, #0x404]
+ cmp r1, #0x0
+ beq _020B3788
+ ldrh r1, [r0, #0x0]
+ ldr r0, _020B3B68 ; =0x021CE8F8
+ ldr r1, [r0, r1, lsl #0x2]
+ cmp r1, #0x0
+ bne _020B37AC
+ bl FUN_020B4010
+ ldr r0, _020B3B6C ; =0x021CDD70
+ ldr r2, _020B3B70 ; =0x021CDDF4
+ ldr r0, [r0, #0x0]
+ ldr r1, _020B3B64 ; =0x021CE8F4
+ mov r0, r0, lsl #0x10
+ mov r0, r0, lsr #0xd
+ ldrh r3, [r2, r0]
+ ldr r4, _020B3B74 ; =0x021CE4F4
+ ldrh r2, [r1, #0x0]
+ ldr r0, _020B3B68 ; =0x021CE8F8
+ add r1, r4, r3, lsl #0x5
+ str r1, [r0, r2, lsl #0x2]
+ b _020B37AC
+_020B3788:
+ bl FUN_020B4010
+ ldr r0, _020B3B6C ; =0x021CDD70
+ ldr r1, _020B3B70 ; =0x021CDDF4
+ ldr r0, [r0, #0x0]
+ ldr r2, _020B3B74 ; =0x021CE4F4
+ mov r0, r0, lsl #0x10
+ mov r0, r0, lsr #0xd
+ ldrh r0, [r1, r0]
+ add r1, r2, r0, lsl #0x5
+_020B37AC:
+ ldr r0, _020B3B58 ; =0x021CDD68
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ ldreq r0, _020B3B6C ; =0x021CDD70
+ ldreq r3, _020B3B78 ; =0x021CDEF4
+ ldreq r2, [r0, #0x0]
+ moveq r0, #0x18
+ mlaeq r0, r2, r0, r3
+ beq _020B37FC
+ ldr r2, _020B3B6C ; =0x021CDD70
+ mov r0, #0x18
+ ldr r2, [r2, #0x0]
+ ldr r3, _020B3B7C ; =0x021CDF04
+ mul r4, r2, r0
+ ldr r2, _020B3B80 ; =0x021CDF08
+ ldr r3, [r3, r4]
+ ldr r0, _020B3B84 ; =0x02106578
+ ldr r2, [r2, r4]
+ str r3, [r0, #0x10]
+ str r2, [r0, #0x14]
+_020B37FC:
+ bl FUN_020B4FAC
+ ldr r1, _020B3B88 ; =0x02106574
+ mvn r0, #0x0
+ ldr r1, [r1, #0x0]
+ cmp r1, r0
+ movne r0, #0x1
+ moveq r0, #0x0
+ cmp r0, #0x0
+ beq _020B3830
+ mov r0, r10
+ bl FUN_020B4BF4
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r11,pc}
+_020B3830:
+ mov r0, r10
+ bl FUN_020B4CDC
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r11,pc}
+_020B3840:
+ ldr r0, _020B3B6C ; =0x021CDD70
+ ldr r1, _020B3B8C ; =0x021CDD74
+ ldr r2, [r0, #0x0]
+ ldr r0, [sp, #0x0]
+ ldr r1, [r1, r2, lsl #0x2]
+ bl FUN_020B4FA4
+ ldr r0, _020B3B58 ; =0x021CDD68
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ ldreq r0, _020B3B6C ; =0x021CDD70
+ ldreq r2, _020B3B78 ; =0x021CDEF4
+ ldreq r1, [r0, #0x0]
+ moveq r0, #0x18
+ mlaeq r0, r1, r0, r2
+ beq _020B38A8
+ ldr r1, _020B3B6C ; =0x021CDD70
+ mov r0, #0x18
+ ldr r1, [r1, #0x0]
+ ldr r2, _020B3B7C ; =0x021CDF04
+ mul r3, r1, r0
+ ldr r1, _020B3B80 ; =0x021CDF08
+ ldr r2, [r2, r3]
+ ldr r0, _020B3B84 ; =0x02106578
+ ldr r1, [r1, r3]
+ str r2, [r0, #0x10]
+ str r1, [r0, #0x14]
+_020B38A8:
+ bl FUN_020B4FC4
+ ldr r1, _020B3B88 ; =0x02106574
+ mvn r0, #0x0
+ ldr r1, [r1, #0x0]
+ cmp r1, r0
+ movne r0, #0x1
+ moveq r0, #0x0
+ cmp r0, #0x0
+ beq _020B38DC
+ mov r0, r10
+ bl FUN_020B4BF4
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r11,pc}
+_020B38DC:
+ mov r0, r10
+ bl FUN_020B4CDC
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r11,pc}
+_020B38EC:
+ cmp r9, #0x0
+ addeq sp, sp, #0x4
+ ldmeqia sp!, {r4-r11,pc}
+_020B38F8: ; 0x020B38F8
+ ldr r4, _020B3B6C ; =0x021CDD70
+ ldr fp, _020B3B78 ; =0x021CDEF4
+ mov r7, #0x0
+ mov r6, #0x1
+_020B3908:
+ ldr r0, [r9, #0x10]
+ cmp r0, #0x0
+ beq _020B3B40
+ ldr r0, [r9, #0x14]
+ cmp r0, #0x0
+ beq _020B3A8C
+ ldr r8, [r5, #0x0]
+ mov r1, r9
+ str r9, [r8, #0x74]
+ mov r0, r8
+ bl FUN_020B4F9C
+ ldr r1, [r9, #0x28]
+ ldr r2, [r9, #0x2c]
+ mov r0, r8
+ bl FUN_020B5034
+ mov r0, r8
+ bl FUN_020B4E0C
+ ldr r0, _020B3B58 ; =0x021CDD68
+ mov r1, r7
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ bne _020B3978
+ ldr r0, _020B3B5C ; =0x02106570
+ ldrh r2, [r0, #0x0]
+ ldr r0, _020B3B60 ; =0x0000FFFE
+ cmp r2, r0
+ movne r0, r6
+ bne _020B397C
+_020B3978:
+ mov r0, r7
+_020B397C:
+ cmp r0, #0x0
+ beq _020B3A04
+ ldr r0, _020B3B64 ; =0x021CE8F4
+ ldr r0, [r0, #0x404]
+ cmp r0, #0x0
+ beq _020B39E4
+ ldr r0, _020B3B64 ; =0x021CE8F4
+ ldrh r1, [r0, #0x0]
+ add r0, r0, r1, lsl #0x2
+ ldr r1, [r0, #0x4]
+ cmp r1, #0x0
+ bne _020B3A04
+ bl FUN_020B4010
+ ldr r0, _020B3B64 ; =0x021CE8F4
+ ldr r2, [r4, #0x0]
+ ldrh r1, [r0, #0x0]
+ mov r0, r2, lsl #0x10
+ mov r2, r0, lsr #0xd
+ ldr r0, _020B3B70 ; =0x021CDDF4
+ ldrh r3, [r0, r2]
+ ldr r0, _020B3B64 ; =0x021CE8F4
+ add r2, r0, r1, lsl #0x2
+ ldr r0, _020B3B74 ; =0x021CE4F4
+ add r1, r0, r3, lsl #0x5
+ str r1, [r2, #0x4]
+ b _020B3A04
+_020B39E4:
+ bl FUN_020B4010
+_020B39E8: ; 0x020B39E8
+ ldr r0, [r4, #0x0]
+ mov r0, r0, lsl #0x10
+ mov r1, r0, lsr #0xd
+ ldr r0, _020B3B70 ; =0x021CDDF4
+ ldrh r1, [r0, r1]
+ ldr r0, _020B3B74 ; =0x021CE4F4
+ add r1, r0, r1, lsl #0x5
+_020B3A04:
+ ldr r0, _020B3B58 ; =0x021CDD68
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ ldreq r2, [r4, #0x0]
+ moveq r0, #0x18
+ mlaeq r0, r2, r0, r11
+ beq _020B3A44
+ ldr r2, [r4, #0x0]
+ mov r0, #0x18
+ mla r8, r2, r0, r11
+ ldr r0, _020B3B84 ; =0x02106578
+ ldr r3, [r8, #0x10]
+ mov r2, r0
+ str r3, [r2, #0x10]
+ ldr r3, [r8, #0x14]
+ str r3, [r2, #0x14]
+_020B3A44:
+ bl FUN_020B4FAC
+ ldr r0, _020B3B88 ; =0x02106574
+ ldr r1, [r0, #0x0]
+ mvn r0, #0x0
+ cmp r1, r0
+ movne r0, r6
+ moveq r0, r7
+ cmp r0, #0x0
+ beq _020B3A74
+ mov r0, r10
+ bl FUN_020B4BF4
+ b _020B3A7C
+_020B3A74:
+ mov r0, r10
+ bl FUN_020B4CDC
+_020B3A7C:
+ ldr r0, [r5, #0x0]
+ str r7, [r0, #0x74]
+ bl FUN_020B4DA0
+ b _020B3B40
+_020B3A8C:
+ ldr r8, [r5, #0x0]
+ mov r1, r9
+ mov r0, r8
+ str r9, [r8, #0x74]
+ bl FUN_020B4F9C
+ mov r0, r8
+ bl FUN_020B4E0C
+ ldr r2, [r4, #0x0]
+ ldr r1, _020B3B8C ; =0x021CDD74
+ ldr r0, [sp, #0x0]
+ ldr r1, [r1, r2, lsl #0x2]
+ bl FUN_020B4FA4
+ ldr r0, _020B3B58 ; =0x021CDD68
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ ldreq r1, [r4, #0x0]
+ moveq r0, #0x18
+ mlaeq r0, r1, r0, r11
+ beq _020B3AFC
+ ldr r1, [r4, #0x0]
+ mov r0, #0x18
+ mla r3, r1, r0, r11
+ ldr r0, _020B3B84 ; =0x02106578
+ ldr r2, [r3, #0x10]
+ mov r1, r0
+ str r2, [r1, #0x10]
+ ldr r2, [r3, #0x14]
+ str r2, [r1, #0x14]
+_020B3AFC:
+ bl FUN_020B4FC4
+ ldr r0, _020B3B88 ; =0x02106574
+ ldr r1, [r0, #0x0]
+ mvn r0, #0x0
+ cmp r1, r0
+ movne r0, r6
+ moveq r0, r7
+ cmp r0, #0x0
+ beq _020B3B2C
+ mov r0, r10
+ bl FUN_020B4BF4
+ b _020B3B34
+_020B3B2C:
+ mov r0, r10
+ bl FUN_020B4CDC
+_020B3B34:
+ ldr r0, [r5, #0x0]
+ str r7, [r0, #0x74]
+ bl FUN_020B4DA0
+_020B3B40:
+ ldr r9, [r9, #0x30]
+ cmp r9, #0x0
+ bne _020B3908
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r11,pc}
+ .balign 4
+_020B3B54: .word 0x021CDD6C
+_020B3B58: .word 0x021CDD68
+_020B3B5C: .word 0x02106570
+_020B3B60: .word 0x0000FFFE
+_020B3B64: .word 0x021CE8F4
+_020B3B68: .word 0x021CE8F8
+_020B3B6C: .word 0x021CDD70
+_020B3B70: .word 0x021CDDF4
+_020B3B74: .word 0x021CE4F4
+_020B3B78: .word 0x021CDEF4
+_020B3B7C: .word 0x021CDF04
+_020B3B80: .word 0x021CDF08
+_020B3B84: .word 0x02106578
+_020B3B88: .word 0x02106574
+_020B3B8C: .word 0x021CDD74
+
+ arm_func_start FUN_020B3B90
+FUN_020B3B90: ; 0x020B3B90
+ stmdb sp!, {r4-r6,lr}
+ sub sp, sp, #0x8
+ ldr r0, _020B3C24 ; =0x021CDD6C
+ mov r12, r1
+ ldr r0, [r0, #0x0]
+ mov r3, r2
+ ldr r1, [r0, #0x74]
+ ldr r2, [r1, #0x44]
+ cmp r2, #0x0
+ addeq sp, sp, #0x8
+ ldmeqia sp!, {r4-r6,pc}
+_020B3BBC: ; 0x020B3BBC
+ ldr r2, _020B3C28 ; =0x021CDD68
+ ldr r2, [r2, #0x0]
+ cmp r2, #0x0
+ ldreq r2, _020B3C2C ; =0x021CDD70
+ ldreq r4, _020B3C30 ; =0x021CDEF4
+ ldreq lr, [r2, #0x0]
+ moveq r2, #0x18
+ mlaeq r6, lr, r2, r4
+ beq _020B3C0C
+ ldr lr, _020B3C2C ; =0x021CDD70
+ mov r2, #0x18
+ ldr lr, [lr, #0x0]
+ ldr r4, _020B3C34 ; =0x021CDF04
+ mul r5, lr, r2
+ ldr r2, _020B3C38 ; =0x021CDF08
+ ldr r4, [r4, r5]
+ ldr r6, _020B3C3C ; =0x02106578
+ ldr r2, [r2, r5]
+ str r4, [r6, #0x10]
+ str r2, [r6, #0x14]
+_020B3C0C:
+ str r6, [sp, #0x0]
+ ldr lr, [r1, #0x44]
+ mov r2, r12
+ blx lr
+ add sp, sp, #0x8
+ ldmia sp!, {r4-r6,pc}
+ .balign 4
+_020B3C24: .word 0x021CDD6C
+_020B3C28: .word 0x021CDD68
+_020B3C2C: .word 0x021CDD70
+_020B3C30: .word 0x021CDEF4
+_020B3C34: .word 0x021CDF04
+_020B3C38: .word 0x021CDF08
+_020B3C3C: .word 0x02106578
+
+ arm_func_start FUN_020B3C40
+FUN_020B3C40: ; 0x020B3C40
+ stmdb sp!, {r4-r6,lr}
+ sub sp, sp, #0x8
+ ldr r3, _020B3E2C ; =0x021CDD6C
+ add r4, r0, #0x38
+ ldr r0, [r3, #0x0]
+ mov r6, r1
+ mov r5, r2
+ bl FUN_020B278C
+_020B3C60: ; 0x020B3C60
+ cmp r0, #0x0
+ beq _020B3C90
+ ldrh r1, [r4, #0x4]
+ and r1, r1, #0xf000
+ mov r1, r1, lsl #0x4
+ mov r1, r1, lsr #0x10
+ bl FUN_020B10B0
+ ldr r1, [r4, #0x4]
+ and r0, r0, #0xf
+ bic r1, r1, #0xf000
+ orr r0, r1, r0, lsl #0xc
+ str r0, [r4, #0x4]
+_020B3C90:
+ ldr r0, _020B3E2C ; =0x021CDD6C
+ ldr r1, [r0, #0x0]
+ ldr r0, [r1, #0x84]
+ cmp r0, #0x0
+ beq _020B3DA4
+ ldr r0, [r1, #0x84]
+ ands r0, r0, #0x1
+ beq _020B3CC8
+ ldrh r0, [r1, #0x88]
+ ldr r1, [r4, #0x4]
+ bic r1, r1, #0xc00
+ and r0, r0, #0x3
+ orr r0, r1, r0, lsl #0xa
+ str r0, [r4, #0x4]
+_020B3CC8:
+ ldr r0, _020B3E2C ; =0x021CDD6C
+ ldr r1, [r0, #0x0]
+ ldr r0, [r1, #0x84]
+ ands r0, r0, #0x2
+ beq _020B3CF4
+ ldrh r0, [r1, #0x8a]
+ ldr r1, [r4, #0x4]
+ bic r1, r1, #0xf000
+ and r0, r0, #0xf
+ orr r0, r1, r0, lsl #0xc
+ str r0, [r4, #0x4]
+_020B3CF4:
+ ldr r0, _020B3E2C ; =0x021CDD6C
+ ldr r1, [r0, #0x0]
+ ldr r0, [r1, #0x84]
+ ands r0, r0, #0x10
+ beq _020B3D2C
+ ldr r2, [r4, #0x4]
+ ldrh r0, [r1, #0x94]
+ mov r1, r2, lsl #0x10
+ bic r2, r2, #0xf000
+ add r0, r0, r1, lsr #0x1c
+ and r0, r0, #0xf
+ and r0, r0, #0xf
+ orr r0, r2, r0, lsl #0xc
+ str r0, [r4, #0x4]
+_020B3D2C:
+ ldr r0, _020B3E2C ; =0x021CDD6C
+ ldr r1, [r0, #0x0]
+ ldr r0, [r1, #0x84]
+ ands r0, r0, #0x4
+ beq _020B3D60
+ ldr r0, [r1, #0x90]
+ cmp r0, #0x0
+ ldrne r0, [r4, #0x0]
+ orrne r0, r0, #0x1000
+ strne r0, [r4, #0x0]
+ ldreq r0, [r4, #0x0]
+ biceq r0, r0, #0x1000
+ streq r0, [r4, #0x0]
+_020B3D60:
+ ldr r0, _020B3E2C ; =0x021CDD6C
+ ldr r1, [r0, #0x0]
+ ldr r0, [r1, #0x84]
+ ands r0, r0, #0x8
+ beq _020B3DA4
+ ldr r0, [r4, #0x0]
+ ldrh r2, [r4, #0x4]
+ ldr r1, [r1, #0x8c]
+ bic r0, r0, #0xc00
+ orr r0, r0, r1, lsl #0xa
+ str r0, [r4, #0x0]
+ ldrh r0, [r4, #0x4]
+ and r1, r2, #0xf000
+ mov r1, r1, asr #0xc
+ bic r0, r0, #0xf000
+ orr r0, r0, r1, lsl #0xc
+ strh r0, [r4, #0x4]
+_020B3DA4:
+ ldr r0, _020B3E2C ; =0x021CDD6C
+ ldr r0, [r0, #0x0]
+ ldr r1, [r0, #0x74]
+ ldr r2, [r1, #0x40]
+ cmp r2, #0x0
+ addeq sp, sp, #0x8
+ ldmeqia sp!, {r4-r6,pc}
+_020B3DC0: ; 0x020B3DC0
+ ldr r2, _020B3E30 ; =0x021CDD68
+ ldr r2, [r2, #0x0]
+ cmp r2, #0x0
+ ldreq r2, _020B3E34 ; =0x021CDD70
+ ldreq r4, _020B3E38 ; =0x021CDEF4
+ ldreq r3, [r2, #0x0]
+ moveq r2, #0x18
+ mlaeq r4, r3, r2, r4
+ beq _020B3E10
+ ldr r3, _020B3E34 ; =0x021CDD70
+ mov r2, #0x18
+ ldr r4, [r3, #0x0]
+ ldr r3, _020B3E3C ; =0x021CDF04
+ mul r12, r4, r2
+ ldr r2, _020B3E40 ; =0x021CDF08
+ ldr r3, [r3, r12]
+ ldr r4, _020B3E44 ; =0x02106578
+ ldr r2, [r2, r12]
+ str r3, [r4, #0x10]
+ str r2, [r4, #0x14]
+_020B3E10:
+ str r4, [sp, #0x0]
+ ldr r4, [r1, #0x40]
+ mov r2, r6
+ mov r3, r5
+ blx r4
+ add sp, sp, #0x8
+ ldmia sp!, {r4-r6,pc}
+ .balign 4
+_020B3E2C: .word 0x021CDD6C
+_020B3E30: .word 0x021CDD68
+_020B3E34: .word 0x021CDD70
+_020B3E38: .word 0x021CDEF4
+_020B3E3C: .word 0x021CDF04
+_020B3E40: .word 0x021CDF08
+_020B3E44: .word 0x02106578
+
+ arm_func_start FUN_020B3E48
+FUN_020B3E48: ; 0x020B3E48
+ stmdb sp!, {r4,lr}
+ ldr r0, _020B3EC4 ; =0x021CDD6C
+ mov r2, r1
+ ldr r0, [r0, #0x0]
+ ldr r1, [r0, #0x74]
+ ldr r3, [r1, #0x3c]
+ cmp r3, #0x0
+ ldmeqia sp!, {r4,pc}
+_020B3E68: ; 0x020B3E68
+ ldr r3, _020B3EC8 ; =0x021CDD68
+ ldr r3, [r3, #0x0]
+ cmp r3, #0x0
+ ldreq r3, _020B3ECC ; =0x021CDD70
+ ldreq lr, _020B3ED0 ; =0x021CDEF4
+ ldreq r12, [r3, #0x0]
+ moveq r3, #0x18
+ mlaeq r3, r12, r3, lr
+ beq _020B3EB8
+ ldr ip, _020B3ECC ; =0x021CDD70
+ mov r3, #0x18
+ ldr r12, [r12, #0x0]
+ ldr lr, _020B3ED4 ; =0x021CDF04
+ mul r4, r12, r3
+ ldr ip, _020B3ED8 ; =0x021CDF08
+ ldr lr, [lr, r4]
+ ldr r3, _020B3EDC ; =0x02106578
+ ldr r12, [r12, r4]
+ str lr, [r3, #0x10]
+ str r12, [r3, #0x14]
+_020B3EB8:
+ ldr r12, [r1, #0x3c]
+ blx r12
+ ldmia sp!, {r4,pc}
+ .balign 4
+_020B3EC4: .word 0x021CDD6C
+_020B3EC8: .word 0x021CDD68
+_020B3ECC: .word 0x021CDD70
+_020B3ED0: .word 0x021CDEF4
+_020B3ED4: .word 0x021CDF04
+_020B3ED8: .word 0x021CDF08
+_020B3EDC: .word 0x02106578
+
+ arm_func_start FUN_020B3EE0
+FUN_020B3EE0: ; 0x020B3EE0
+ stmdb sp!, {r4-r6,lr}
+ ldr r2, _020B3FF4 ; =0x021CDD6C
+ mov r6, r0
+ ldr r0, [r2, #0x0]
+ mov r5, r1
+ ldr r4, [r0, #0x74]
+ ldr r0, [r4, #0x34]
+ cmp r0, #0x0
+ beq _020B3F7C
+ ldr r0, _020B3FF8 ; =0x021CDD68
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ ldreq r0, _020B3FFC ; =0x021CDD70
+ ldreq r1, _020B4000 ; =0x021CDEF4
+ ldreq r2, [r0, #0x0]
+ moveq r0, #0x18
+ mlaeq r1, r2, r0, r1
+ beq _020B3F54
+ ldr r1, _020B3FFC ; =0x021CDD70
+ mov r0, #0x18
+ ldr r2, [r1, #0x0]
+ ldr r1, _020B4004 ; =0x021CDF04
+ mul r3, r2, r0
+ ldr r0, _020B4008 ; =0x021CDF08
+ ldr r2, [r1, r3]
+ ldr r1, _020B400C ; =0x02106578
+ ldr r0, [r0, r3]
+ str r2, [r1, #0x10]
+ str r0, [r1, #0x14]
+_020B3F54:
+ ldr r3, [r4, #0x34]
+ mov r0, r5
+ mov r2, r4
+ blx r3
+ cmp r0, #0x0
+ moveq r0, #0x0
+ streq r0, [r6, #0x30]
+ ldmeqia sp!, {r4-r6,pc}
+_020B3F74: ; 0x020B3F74
+ mov r0, #0x1
+ str r0, [r6, #0x30]
+_020B3F7C:
+ ldr r0, [r4, #0x38]
+ cmp r0, #0x0
+ ldmeqia sp!, {r4-r6,pc}
+_020B3F88: ; 0x020B3F88
+ ldr r0, _020B3FF8 ; =0x021CDD68
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ ldreq r0, _020B3FFC ; =0x021CDD70
+ ldreq r2, _020B4000 ; =0x021CDEF4
+ ldreq r1, [r0, #0x0]
+ moveq r0, #0x18
+ mlaeq r3, r1, r0, r2
+ beq _020B3FD8
+ ldr r1, _020B3FFC ; =0x021CDD70
+ mov r0, #0x18
+ ldr r2, [r1, #0x0]
+ ldr r1, _020B4004 ; =0x021CDF04
+ mul r6, r2, r0
+ ldr r0, _020B4008 ; =0x021CDF08
+ ldr r1, [r1, r6]
+ ldr r3, _020B400C ; =0x02106578
+ ldr r0, [r0, r6]
+ str r1, [r3, #0x10]
+ str r0, [r3, #0x14]
+_020B3FD8:
+ ldr r0, _020B3FF4 ; =0x021CDD6C
+ ldr r6, [r4, #0x38]
+ ldr r0, [r0, #0x0]
+ mov r1, r4
+ mov r2, r5
+ blx r6
+ ldmia sp!, {r4-r6,pc}
+ .balign 4
+_020B3FF4: .word 0x021CDD6C
+_020B3FF8: .word 0x021CDD68
+_020B3FFC: .word 0x021CDD70
+_020B4000: .word 0x021CDEF4
+_020B4004: .word 0x021CDF04
+_020B4008: .word 0x021CDF08
+_020B400C: .word 0x02106578
+
+ arm_func_start FUN_020B4010
+FUN_020B4010:
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ ldr r0, _020B4154 ; =0x021CDD70
+ ldr r1, _020B4158 ; =0x021CDDF4
+ ldr r0, [r0, #0x0]
+ mov r2, #0x1
+ mov r0, r0, lsl #0x10
+ add r3, r1, r0, lsr #0xd
+ ldrh r0, [r3, #0x4]
+ cmp r0, #0x1
+ beq _020B4044
+ cmp r0, #0x2
+ movne r2, #0x0
+_020B4044:
+ cmp r2, #0x0
+ addeq sp, sp, #0x4
+ ldmeqia sp!, {r4-r5,pc}
+_020B4050: ; 0x020B4050
+ ldr r0, _020B415C ; =0x021CDD60
+ mov r2, #0x10
+ ldrh r4, [r0, #0x0]
+ cmp r4, #0x1f
+ addcc r1, r4, #0x1
+ strcch r1, [r0, #0x0]
+ ldr r0, _020B4160 ; =0x021CE4F4
+ ldrh r5, [r3, #0x2]
+ add r0, r0, r4, lsl #0x5
+ add r1, r0, #0x10
+ mvn r0, #0x0
+ strh r4, [r3, #0x0]
+ bl MIi_CpuClearFast
+ ldr r0, _020B4154 ; =0x021CDD70
+ ldr r1, _020B4164 ; =0x021CDD68
+ ldr r0, [r0, #0x0]
+ ldr r2, [r1, #0x0]
+ mov r1, r0, lsl #0x10
+ cmp r2, #0x0
+ ldr r3, _020B4158 ; =0x021CDDF4
+ mov r1, r1, lsr #0xd
+ ldrh r1, [r3, r1]
+ ldr r3, _020B4160 ; =0x021CE4F4
+ moveq r2, #0x18
+ add r1, r3, r1, lsl #0x5
+ ldreq r3, _020B4168 ; =0x021CE1F4
+ mlaeq r12, r0, r2, r3
+ beq _020B40E4
+ mov r2, #0x18
+ mul r3, r0, r2
+ ldr r2, _020B416C ; =0x021CDF04
+ ldr r0, _020B4170 ; =0x021CDF08
+ ldr r2, [r2, r3]
+ ldr ip, _020B4174 ; =0x02106578
+ ldr r0, [r0, r3]
+ str r2, [r12, #0x10]
+ str r0, [r12, #0x14]
+_020B40E4:
+ ldr r2, [r12, #0x0]
+ ldr r0, _020B4154 ; =0x021CDD70
+ str r2, [r1, #0x0]
+ ldr r2, [r12, #0x4]
+ str r2, [r1, #0x4]
+ ldr r2, [r12, #0x8]
+ str r2, [r1, #0x8]
+ ldr r2, [r12, #0xc]
+ str r2, [r1, #0xc]
+ ldr r0, [r0, #0x0]
+ mov r0, r0, lsl #0x10
+ movs lr, r0, lsr #0x10
+ addmi sp, sp, #0x4
+ ldmmiia sp!, {r4-r5,pc}
+_020B411C: ; 0x020B411C
+ ldr r3, _020B4158 ; =0x021CDDF4
+ mov r0, #0x3
+_020B4124:
+ add r2, r3, lr, lsl #0x3
+ ldrh r1, [r2, #0x2]
+ mov r12, lr, lsl #0x3
+ cmp r5, r1
+ addne sp, sp, #0x4
+ ldmneia sp!, {r4-r5,pc}
+_020B413C: ; 0x020B413C
+ strh r0, [r2, #0x4]
+ strh r4, [r3, r12]
+ subs lr, lr, #0x1
+ bpl _020B4124
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,pc}
+ .balign 4
+_020B4154: .word 0x021CDD70
+_020B4158: .word 0x021CDDF4
+_020B415C: .word 0x021CDD60
+_020B4160: .word 0x021CE4F4
+_020B4164: .word 0x021CDD68
+_020B4168: .word 0x021CE1F4
+_020B416C: .word 0x021CDF04
+_020B4170: .word 0x021CDF08
+_020B4174: .word 0x02106578
+
+ arm_func_start FUN_020B4178
+FUN_020B4178: ; 0x020B4178
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ ldr r0, _020B4220 ; =0x021CDD68
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ beq _020B41B8
+ ldr r1, _020B4224 ; =0x021CDD70
+ mov r0, #0x18
+ ldr r12, [r1, #0x0]
+ ldr r1, _020B4228 ; =0x021CDF04
+ mul r3, r12, r0
+ mov r2, #0x0
+ ldr r0, _020B422C ; =0x021CDF08
+ str r2, [r1, r3]
+ str r2, [r0, r3]
+ b _020B420C
+_020B41B8:
+ ldr r0, _020B4224 ; =0x021CDD70
+ mov lr, #0x18
+ ldr r1, [r0, #0x0]
+ ldr r4, _020B4230 ; =0x021CDEF4
+ mul r3, r1, lr
+ mov r2, #0x1000
+ str r2, [r4, r3]
+ add r5, r4, r3
+ mov r1, #0x0
+ str r1, [r5, #0x4]
+ str r1, [r5, #0x8]
+ str r2, [r5, #0xc]
+ str r1, [r5, #0x10]
+ str r1, [r5, #0x14]
+ ldr r12, [r0, #0x0]
+ ldr r4, _020B4234 ; =0x021CE1F4
+ ldmia r5!, {r0-r3}
+ mla lr, r12, lr, r4
+ stmia lr!, {r0-r3}
+ ldmia r5, {r0-r1}
+ stmia lr, {r0-r1}
+_020B420C:
+ ldr r0, _020B4238 ; =0x021CDD74
+ mov r1, #0x0
+ str r1, [r0, r12, lsl #0x2]
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,pc}
+ .balign 4
+_020B4220: .word 0x021CDD68
+_020B4224: .word 0x021CDD70
+_020B4228: .word 0x021CDF04
+_020B422C: .word 0x021CDF08
+_020B4230: .word 0x021CDEF4
+_020B4234: .word 0x021CE1F4
+_020B4238: .word 0x021CDD74
+
+ arm_func_start FUN_020B423C
+FUN_020B423C: ; 0x020B423C
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0x1c
+ ldr r4, [r0, #0x4]
+ ldr r3, [r1, #0x8]
+ mov r12, r2
+ smull r6, r5, r4, r3
+ ldr r4, [r0, #0x0]
+ ldr r3, [r1, #0x0]
+ cmp r12, r1
+ smlal r6, r5, r4, r3
+ mov r3, r6, lsr #0xc
+ addeq r2, sp, #0x0
+ orr r3, r3, r5, lsl #0x14
+ str r3, [r2, #0x0]
+ ldr r4, [r0, #0x4]
+ ldr r3, [r1, #0xc]
+ ldr r5, [r0, #0x0]
+ smull r7, r6, r4, r3
+ ldr r3, [r1, #0x4]
+ add lr, sp, #0x0
+ smlal r7, r6, r5, r3
+ mov r3, r7, lsr #0xc
+ orr r3, r3, r6, lsl #0x14
+ str r3, [r2, #0x4]
+ ldr r4, [r0, #0xc]
+ ldr r3, [r1, #0x8]
+ ldr r5, [r0, #0x8]
+ smull r7, r6, r4, r3
+ ldr r3, [r1, #0x0]
+ cmp r2, lr
+ smlal r7, r6, r5, r3
+ mov r3, r7, lsr #0xc
+ orr r3, r3, r6, lsl #0x14
+ str r3, [r2, #0x8]
+ ldr r4, [r0, #0xc]
+ ldr r3, [r1, #0xc]
+ ldr r5, [r0, #0x8]
+ smull r7, r6, r4, r3
+ ldr r3, [r1, #0x4]
+ smlal r7, r6, r5, r3
+ mov r3, r7, lsr #0xc
+ orr r3, r3, r6, lsl #0x14
+ str r3, [r2, #0xc]
+ ldr r4, [r0, #0x14]
+ ldr r3, [r1, #0x8]
+ ldr r5, [r0, #0x10]
+ smull r7, r6, r4, r3
+ ldr r3, [r1, #0x0]
+ ldr r4, [r1, #0x10]
+ smlal r7, r6, r5, r3
+ mov r3, r7, lsr #0xc
+ orr r3, r3, r6, lsl #0x14
+ add r3, r4, r3
+ str r3, [r2, #0x10]
+ ldr r4, [r0, #0x14]
+ ldr r3, [r1, #0xc]
+ ldr r5, [r0, #0x10]
+ ldr r0, [r1, #0x4]
+ smull r6, r3, r4, r3
+ smlal r6, r3, r5, r0
+ mov r0, r6, lsr #0xc
+ ldr r1, [r1, #0x14]
+ orr r0, r0, r3, lsl #0x14
+ add r0, r1, r0
+ str r0, [r2, #0x14]
+ ldmeqia lr!, {r0-r3}
+ stmeqia r12!, {r0-r3}
+ ldmeqia lr, {r0-r1}
+ stmeqia r12, {r0-r1}
+ add sp, sp, #0x1c
+ ldmia sp!, {r4-r7,pc}
+
+ arm_func_start FUN_020B4358
+FUN_020B4358: ; 0x020B4358
+ stmdb sp!, {r4,lr}
+ ldr r2, _020B43A0 ; =0x021CED04
+ mov r1, #0x30
+ ldr r2, [r2, #0x0]
+ mla r4, r0, r1, r2
+ mov r0, r4
+ bl FUN_020B10CC
+_020B4374: ; 0x020B4374
+ mov r0, #0x0
+ str r0, [r4, #0xc]
+ str r0, [r4, #0x10]
+ str r0, [r4, #0x14]
+ str r0, [r4, #0x18]
+ str r0, [r4, #0x1c]
+ str r0, [r4, #0x20]
+ str r0, [r4, #0x24]
+ str r0, [r4, #0x28]
+ str r0, [r4, #0x2c]
+ ldmia sp!, {r4,pc}
+ .balign 4
+_020B43A0: .word 0x021CED04
+
+ arm_func_start FUN_020B43A4
+FUN_020B43A4: ; 0x020B43A4
+ ldr r1, _020B43F8 ; =0x021CED00
+ mov r0, #0x0
+ ldr r3, [r1, #0x0]
+ cmp r3, #0x0
+ bls _020B43F0
+ ldr r1, _020B43FC ; =0x021CED04
+ ldr r2, [r1, #0x0]
+ mov r12, r2
+_020B43C4:
+ ldr r1, [r12, #0x1c]
+ cmp r1, #0x1
+ movne r1, #0x30
+ mlane r1, r0, r1, r2
+ movne r2, #0x1
+ strne r2, [r1, #0x1c]
+ bxne lr
+ add r0, r0, #0x1
+ cmp r0, r3
+ add r12, r12, #0x30
+ blo _020B43C4
+_020B43F0:
+ mvn r0, #0x0
+ bx lr
+ .balign 4
+_020B43F8: .word 0x021CED00
+_020B43FC: .word 0x021CED04
+
+ arm_func_start FUN_020B4400
+FUN_020B4400: ; 0x020B4400
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ mov r5, r1
+ mov r4, r2
+ bl FUN_020B469C
+ mvn r1, #0x0
+ str r1, [r0, #0x24]
+ str r5, [r0, #0x28]
+ str r4, [r0, #0x2c]
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,pc}
+
+ arm_func_start FUN_020B442C
+FUN_020B442C: ; 0x020B442C
+ stmdb sp!, {r4-r11,lr}
+ sub sp, sp, #0x14
+ mov r0, #0x0
+ str r0, [sp, #0x0]
+ ldr r0, _020B4558 ; =0x021CED00
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ addls sp, sp, #0x14
+ ldmlsia sp!, {r4-r11,pc}
+_020B4450: ; 0x020B4450
+ ldr r0, [sp, #0x0]
+ mov r5, #0x1
+ str r0, [sp, #0x4]
+ mov r11, r0
+ str r0, [sp, #0x8]
+ str r0, [sp, #0xc]
+_020B4468:
+ ldr r0, _020B455C ; =0x021CED04
+ ldr r1, [r0, #0x0]
+ ldr r0, [sp, #0x4]
+ add r8, r1, r0
+ ldr r0, [r8, #0x1c]
+ cmp r0, #0x0
+ beq _020B4528
+ ldr r9, [sp, #0x8]
+ mov r0, r9
+ cmp r0, #0x3
+ bge _020B4520
+ add r4, r8, #0x24
+_020B4498:
+ mov r6, r5, lsl r9
+ mov r1, r11
+ ldr r0, [r8, #0x24]
+ ands r0, r0, r6
+ beq _020B44B8
+ ldr r0, [r8, #0x20]
+ ands r0, r0, r6
+ movne r1, r5
+_020B44B8:
+ cmp r1, #0x0
+ beq _020B4514
+ ldr r0, _020B4560 ; =0x020FF8C4
+ cmp r9, #0x0
+ ldr r7, [r0, r9, lsl #0x2]
+ ldreq r10, [r8, #0x14]
+ mov r0, r8
+ mov r1, r9
+ ldrne r10, [r8, #0x10]
+ bl FUN_020B10BC
+ mov r1, r0
+ mov r0, r7
+ ldr r7, _020B4564 ; =0x021CECFC
+ ldr r2, [r8, #0x28]
+ ldr r3, [r8, #0x2c]
+ ldr r7, [r7, #0x0]
+ add r2, r10, r2
+ blx r7
+ cmp r0, #0x0
+ ldrne r1, [r4, #0x0]
+ mvnne r0, r6
+ andne r0, r1, r0
+ strne r0, [r4, #0x0]
+_020B4514:
+ add r9, r9, #0x1
+ cmp r9, #0x3
+ blt _020B4498
+_020B4520:
+ ldr r0, [sp, #0xc]
+ str r0, [r8, #0x20]
+_020B4528:
+ ldr r0, _020B4558 ; =0x021CED00
+ ldr r1, [r0, #0x0]
+ ldr r0, [sp, #0x0]
+ add r0, r0, #0x1
+ str r0, [sp, #0x0]
+ cmp r0, r1
+ ldr r0, [sp, #0x4]
+ add r0, r0, #0x30
+ str r0, [sp, #0x4]
+ blo _020B4468
+ add sp, sp, #0x14
+ ldmia sp!, {r4-r11,pc}
+ .balign 4
+_020B4558: .word 0x021CED00
+_020B455C: .word 0x021CED04
+_020B4560: .word 0x020FF8C4
+_020B4564: .word 0x021CECFC
+
+ arm_func_start FUN_020B4568
+FUN_020B4568: ; 0x020B4568
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0x4
+ ldr ip, _020B45E4 ; =0x021CECFC
+ movs r6, r1
+ ldr r1, _020B45E8 ; =0x021CED00
+ ldr r3, _020B45EC ; =0x021CED04
+ mov r7, r0
+ str r2, [r12, #0x0]
+ mov r5, #0x0
+ addeq sp, sp, #0x4
+ str r7, [r3, #0x0]
+ str r6, [r1, #0x0]
+ ldmeqia sp!, {r4-r7,pc}
+_020B459C: ; 0x020B459C
+ mov r4, r5
+_020B45A0:
+ mov r0, r7
+ bl FUN_020B10CC
+ str r4, [r7, #0xc]
+ str r4, [r7, #0x10]
+ str r4, [r7, #0x14]
+ str r4, [r7, #0x18]
+ str r4, [r7, #0x1c]
+ str r4, [r7, #0x20]
+ str r4, [r7, #0x24]
+ str r4, [r7, #0x28]
+ add r5, r5, #0x1
+ str r4, [r7, #0x2c]
+ cmp r5, r6
+ add r7, r7, #0x30
+ blo _020B45A0
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r7,pc}
+ .balign 4
+_020B45E4: .word 0x021CECFC
+_020B45E8: .word 0x021CED00
+_020B45EC: .word 0x021CED04
+
+ arm_func_start FUN_020B45F0
+FUN_020B45F0: ; 0x020B45F0
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0x4
+ ldr ip, _020B4698 ; =0x021CED04
+ mov r4, #0x30
+ ldr r12, [r12, #0x0]
+ mov r7, r1
+ mla r4, r0, r4, r12
+ mov r0, r4
+ mov r6, r2
+ mov r5, r3
+ bl FUN_020B10CC
+_020B461C: ; 0x020B461C
+ mvn r0, #0x0
+ cmp r7, r0
+ beq _020B4638
+ mov r0, r4
+ mov r2, r7
+ mov r1, #0x0
+ bl FUN_020B10C4
+_020B4638:
+ mvn r0, #0x0
+ cmp r6, r0
+ beq _020B4654
+ mov r0, r4
+ mov r2, r6
+ mov r1, #0x1
+ bl FUN_020B10C4
+_020B4654:
+ mvn r0, #0x0
+ cmp r5, r0
+ beq _020B4670
+ mov r0, r4
+ mov r2, r5
+ mov r1, #0x2
+ bl FUN_020B10C4
+_020B4670:
+ ldr r1, [sp, #0x18]
+ ldr r0, [sp, #0x1c]
+ str r1, [r4, #0xc]
+ ldr r1, [sp, #0x20]
+ str r0, [r4, #0x10]
+ ldr r0, [sp, #0x24]
+ str r1, [r4, #0x14]
+ str r0, [r4, #0x18]
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r7,pc}
+ .balign 4
+_020B4698: .word 0x021CED04
+
+ arm_func_start FUN_020B469C
+FUN_020B469C: ; 0x020B469C
+ ldr r2, _020B46B0 ; =0x021CED04
+ mov r1, #0x30
+ ldr r2, [r2, #0x0]
+ mla r0, r1, r0, r2
+ bx lr
+ .balign 4
+_020B46B0: .word 0x021CED04
+
+ arm_func_start FUN_020B46B4
+FUN_020B46B4: ; 0x020B46B4
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0x1c
+ add r12, sp, #0x4
+ mov r5, r1
+ mov r4, r2
+ mov r7, r3
+ mov r6, r0
+ ldr r1, [sp, #0x30]
+ ldr r2, [sp, #0x34]
+ ldr r3, [sp, #0x38]
+ mov r0, r7
+ str r12, [sp, #0x0]
+ bl FUN_020B498C
+ ldr r2, [r7, #0x0]
+ and r1, r2, #0x300
+ cmp r1, #0x100
+ beq _020B4708
+ cmp r1, #0x300
+ beq _020B4708
+ and r0, r2, #0x30000000
+ orr r1, r1, r0
+_020B4708:
+ cmp r1, #0x300
+ bne _020B478C
+ ldr r0, _020B4914 ; =0xC000C000
+ ldr r1, _020B4918 ; =0x021CED08
+ and r0, r2, r0
+ and r2, r0, #0xc0000000
+ mov r12, r2, lsr #0x1e
+ and r0, r0, #0xc000
+ mov lr, r0, asr #0xe
+ ldr r3, _020B491C ; =0x020FF8AC
+ ldr r0, [r1, #0x0]
+ ldr r2, _020B4920 ; =0x020FF894
+ cmp r0, #0x0
+ ldrne r0, _020B4924 ; =0x021CED10
+ mov r12, r12, lsl #0x1
+ add r1, r2, lr, lsl #0x3
+ add r3, r3, lr, lsl #0x3
+ ldrh r2, [r12, r3]
+ ldrh r1, [r12, r1]
+ ldrne r0, [r0, #0x0]
+ mov r2, r2, asr #0x1
+ addne r3, r0, r4, lsl #0xc
+ mov r1, r1, asr #0x1
+ add r0, r5, r1
+ add r2, r6, r2
+ ldr r1, _020B4928 ; =0x04000470
+ mov r2, r2, lsl #0xc
+ str r2, [r1, #0x0]
+ mov r0, r0, lsl #0xc
+ moveq r3, r4, lsl #0xc
+ str r0, [r1, #0x0]
+ str r3, [r1, #0x0]
+ b _020B47C0
+_020B478C:
+ ldr r0, _020B4918 ; =0x021CED08
+ ldr r1, _020B4928 ; =0x04000470
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ ldrne r0, _020B4924 ; =0x021CED10
+ ldrne r0, [r0, #0x0]
+ addne r2, r0, r4, lsl #0xc
+ mov r0, r6, lsl #0xc
+ str r0, [r1, #0x0]
+ mov r0, r5, lsl #0xc
+ moveq r2, r4, lsl #0xc
+ str r0, [r1, #0x0]
+ str r2, [r1, #0x0]
+_020B47C0:
+ ldr r0, [sp, #0x14]
+ ldr r1, [sp, #0x18]
+ ldr r2, _020B492C ; =0x0400046C
+ mov r0, r0, lsl #0xc
+ str r0, [r2, #0x0]
+ mov r0, r1, lsl #0xc
+ str r0, [r2, #0x0]
+ mov r1, #0x1000
+ str r1, [r2, #0x0]
+ ldr r0, _020B4930 ; =0x04000500
+ mov r1, #0x1
+ str r1, [r0, #0x0]
+ ldr r0, [sp, #0x4]
+ ldr r1, [sp, #0x10]
+ mov r0, r0, lsl #0x8
+ mov r1, r1, lsl #0x8
+ mov r0, r0, asr #0x10
+ mov r1, r1, asr #0x10
+ mov r0, r0, lsl #0x10
+ mov r1, r1, lsl #0x10
+ mov r2, r0, lsr #0x10
+ mov r0, r1, lsr #0x10
+ orr r2, r2, r0, lsl #0x10
+ ldr r1, _020B4934 ; =0x04000488
+ ldr r0, _020B4938 ; =0x04000490
+ str r2, [r1, #0x0]
+ mov r2, #0x10000
+ str r2, [r0, #0x0]
+ ldr r2, [sp, #0xc]
+ ldr r3, [sp, #0x10]
+ mov r2, r2, lsl #0x8
+ mov r3, r3, lsl #0x8
+ mov r2, r2, asr #0x10
+ mov r3, r3, asr #0x10
+ mov r2, r2, lsl #0x10
+ mov r3, r3, lsl #0x10
+ mov r4, r2, lsr #0x10
+ mov r2, r3, lsr #0x10
+ orr r3, r4, r2, lsl #0x10
+ ldr r2, _020B493C ; =0x00010040
+ str r3, [r1, #0x0]
+ str r2, [r0, #0x0]
+ ldr r2, [sp, #0xc]
+ ldr r3, [sp, #0x8]
+ mov r2, r2, lsl #0x8
+ mov r3, r3, lsl #0x8
+ mov r2, r2, asr #0x10
+ mov r3, r3, asr #0x10
+ mov r2, r2, lsl #0x10
+ mov r3, r3, lsl #0x10
+ mov r4, r2, lsr #0x10
+ mov r2, r3, lsr #0x10
+ orr r2, r4, r2, lsl #0x10
+ str r2, [r1, #0x0]
+ mov r2, #0x40
+ str r2, [r0, #0x0]
+ ldr r2, [sp, #0x4]
+ ldr r3, [sp, #0x8]
+ mov r2, r2, lsl #0x8
+ mov r3, r3, lsl #0x8
+ mov r2, r2, asr #0x10
+ mov r3, r3, asr #0x10
+ mov r2, r2, lsl #0x10
+ mov r3, r3, lsl #0x10
+ mov r4, r2, lsr #0x10
+ mov r2, r3, lsr #0x10
+ orr r2, r4, r2, lsl #0x10
+ str r2, [r1, #0x0]
+ mov r2, #0x0
+ str r2, [r0, #0x0]
+ ldr r1, _020B4940 ; =0x04000504
+ ldr r0, _020B4918 ; =0x021CED08
+ str r2, [r1, #0x0]
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ addeq sp, sp, #0x1c
+ ldmeqia sp!, {r4-r7,pc}
+_020B48F4: ; 0x020B48F4
+ ldr r1, _020B4924 ; =0x021CED10
+ ldr r0, _020B4944 ; =0x02106590
+ ldr r2, [r1, #0x0]
+ ldr r0, [r0, #0x0]
+ add r0, r2, r0
+ str r0, [r1, #0x0]
+ add sp, sp, #0x1c
+ ldmia sp!, {r4-r7,pc}
+ .balign 4
+_020B4914: .word 0xC000C000
+_020B4918: .word 0x021CED08
+_020B491C: .word 0x020FF8AC
+_020B4920: .word 0x020FF894
+_020B4924: .word 0x021CED10
+_020B4928: .word 0x04000470
+_020B492C: .word 0x0400046C
+_020B4930: .word 0x04000500
+_020B4934: .word 0x04000488
+_020B4938: .word 0x04000490
+_020B493C: .word 0x00010040
+_020B4940: .word 0x04000504
+_020B4944: .word 0x02106590
+
+ arm_func_start FUN_020B4948
+FUN_020B4948:
+ ldr r0, _020B4954 ; =0x02106590
+ ldr r0, [r0, #0x0]
+ bx lr
+ .balign 4
+_020B4954: .word 0x02106590
+
+ arm_func_start FUN_020B4958
+FUN_020B4958:
+ ldr r1, _020B4964 ; =0x02106590
+ str r0, [r1, #0x0]
+ bx lr
+ .balign 4
+_020B4964: .word 0x02106590
+
+ arm_func_start FUN_020B4968
+FUN_020B4968: ; 0x020B4968
+ ldr r0, _020B4978 ; =0x021CED10
+ mov r1, #0x0
+ str r1, [r0, #0x0]
+ bx lr
+ .balign 4
+_020B4978: .word 0x021CED10
+
+ arm_func_start FUN_020B497C
+FUN_020B497C:
+ ldr r1, _020B4988 ; =0x021CED08
+ str r0, [r1, #0x0]
+ bx lr
+ .balign 4
+_020B4988: .word 0x021CED08
+
+ arm_func_start FUN_020B498C
+FUN_020B498C: ; 0x020B498C
+ stmdb sp!, {r4-r9,lr}
+ sub sp, sp, #0xc
+ mov r6, r0
+ ldr r4, [r6, #0x0]
+ ldr r0, _020B4BCC ; =0xC000C000
+ ldr r5, [r6, #0x4]
+ and r4, r4, r0
+ and r0, r4, #0xc0000000
+ and r4, r4, #0xc000
+ mov lr, r0, lsr #0x1e
+ ldr r0, _020B4BD0 ; =0x020FF8AC
+ mov r12, r4, asr #0xe
+ ldr r8, _020B4BD4 ; =0x020FF894
+ mov r4, lr, lsl #0x1
+ add r0, r0, r12, lsl #0x3
+ ldrh r9, [r4, r0]
+ ldr r0, [sp, #0x28]
+ mov r5, r5, lsl #0x16
+ mov r5, r5, lsr #0x16
+ mov r7, r5, lsl #0x10
+ str r9, [r0, #0x10]
+ add r5, r8, r12, lsl #0x3
+ ldrh r8, [r4, r5]
+ mov r5, r1
+ mov r4, r3
+ str r8, [r0, #0x14]
+ ldr r1, [r5, #0x14]
+ mov r7, r7, lsr #0x10
+ cmp r1, #0x0
+ bne _020B4A74
+ ldr r1, [r5, #0x8]
+ mov r2, r2, lsr #0x3
+ orr r1, r2, r1, lsl #0x1a
+ ldr r2, [r5, #0x0]
+ orr r1, r1, #0x40000000
+ ldr r3, [r5, #0x4]
+ orr r1, r1, r2, lsl #0x14
+ orr r2, r1, r3, lsl #0x17
+ ldr r8, [r5, #0x10]
+ ldr r1, _020B4BD8 ; =0x040004A8
+ orr r2, r2, r8, lsl #0x1d
+ str r2, [r1, #0x0]
+ ldr r1, [r5, #0x8]
+ ldr r2, [r5, #0x0]
+ cmp r1, #0x4
+ moveq r1, r7, lsl #0xf
+ moveq r7, r1, lsr #0x10
+ ldr r1, _020B4BDC ; =0x020FF8D8
+ ldr r1, [r1, r2, lsl #0x2]
+ sub r1, r1, #0x1
+ and r1, r7, r1
+ mov r1, r1, lsl #0xf
+ str r1, [r0, #0x0]
+ ldr r1, [r5, #0x0]
+ mov r1, r7, asr r1
+ mov r1, r1, lsl #0xf
+ str r1, [r0, #0x4]
+ b _020B4AE0
+_020B4A74:
+ and r1, r1, #0x700000
+ mov r1, r1, asr #0x14
+ mov r12, r12, lsl #0x10
+ add r1, r1, #0x5
+ ldr r3, [r5, #0x8]
+ mov lr, lr, lsl #0x10
+ ldr sb, _020B4BE0 ; =0x020FF8F8
+ mov r12, r12, lsr #0x10
+ ldr r8, _020B4BE4 ; =0x020FF928
+ add r1, r2, r7, lsl r1
+ mov r2, r3, lsl #0x1a
+ orr r3, r2, r1, lsr #0x3
+ mov r7, lr, lsr #0x10
+ add r2, r9, r12, lsl #0x4
+ add r1, r8, r12, lsl #0x4
+ ldr r2, [r2, r7, lsl #0x2]
+ orr r3, r3, #0x40000000
+ ldr r1, [r1, r7, lsl #0x2]
+ orr r2, r3, r2, lsl #0x14
+ ldr r3, [r5, #0x10]
+ orr r2, r2, r1, lsl #0x17
+ ldr r1, _020B4BD8 ; =0x040004A8
+ orr r2, r2, r3, lsl #0x1d
+ str r2, [r1, #0x0]
+ mov r1, #0x0
+ str r1, [r0, #0x0]
+ str r1, [r0, #0x4]
+_020B4AE0:
+ ldr r2, [r0, #0x0]
+ ldr r1, [r0, #0x10]
+ add r1, r2, r1, lsl #0xc
+ str r1, [r0, #0x8]
+ ldr r2, [r0, #0x4]
+ ldr r1, [r0, #0x14]
+ add r1, r2, r1, lsl #0xc
+ str r1, [r0, #0xc]
+ ldr r1, [r6, #0x0]
+ mov r2, r1, lsl #0x2
+ mov r1, r1, lsl #0x3
+ movs r3, r1, lsr #0x1f
+ mov r12, r2, lsr #0x1f
+ ldrne r2, [r0, #0x0]
+ ldrne r1, [r0, #0x8]
+ strne r1, [r0, #0x0]
+ strne r2, [r0, #0x8]
+ cmp r12, #0x0
+ ldrne r2, [r0, #0x4]
+ ldrne r1, [r0, #0xc]
+ strne r1, [r0, #0x4]
+ ldr r1, _020B4BE8 ; =0x021CED0C
+ strne r2, [r0, #0xc]
+ ldr r7, [r1, #0x0]
+ cmp r7, #0x0
+ beq _020B4B60
+ str r3, [sp, #0x0]
+ add r1, r0, #0x4
+ add r2, r0, #0x8
+ add r3, r0, #0xc
+ str r12, [sp, #0x4]
+ blx r7
+_020B4B60:
+ ldr r0, [r6, #0x4]
+ ldr r1, [r6, #0x0]
+ mov r0, r0, lsl #0x10
+ mov r0, r0, lsr #0x1c
+ mov r3, r1, lsl #0x12
+ ldr r1, [r5, #0xc]
+ mov r0, r0, lsl #0x10
+ ldr r2, _020B4BEC ; =0x020FF8D0
+ mov r3, r3, lsr #0x1f
+ cmp r1, #0x0
+ mov r0, r0, lsr #0x10
+ ldr r1, [r2, r3, lsl #0x2]
+ movne r0, r0, lsl #0x9
+ bne _020B4BA4
+ cmp r1, #0x4
+ moveq r0, #0x0
+ movne r0, r0, lsl #0x5
+_020B4BA4:
+ cmp r1, #0x2
+ moveq r2, #0x1
+ movne r2, #0x0
+ add r1, r4, r0
+ rsb r0, r2, #0x4
+ mov r1, r1, lsr r0
+ ldr r0, _020B4BF0 ; =0x040004AC
+ str r1, [r0, #0x0]
+ add sp, sp, #0xc
+ ldmia sp!, {r4-r9,pc}
+ .balign 4
+_020B4BCC: .word 0xC000C000
+_020B4BD0: .word 0x020FF8AC
+_020B4BD4: .word 0x020FF894
+_020B4BD8: .word 0x040004A8
+_020B4BDC: .word 0x020FF8D8
+_020B4BE0: .word 0x020FF8F8
+_020B4BE4: .word 0x020FF928
+_020B4BE8: .word 0x021CED0C
+_020B4BEC: .word 0x020FF8D0
+_020B4BF0: .word 0x040004AC
+
+ arm_func_start FUN_020B4BF4
+FUN_020B4BF4: ; 0x020B4BF4
+ stmdb sp!, {r4-r6,lr}
+ ldr r2, _020B4CD8 ; =0x021CED14
+ mov r6, r0
+ ldr r3, [r2, #0x0]
+ mov r4, r1
+ ldr r5, [r3, #0x0]
+ ldr r0, [r5, #0x10]
+ cmp r0, #0x0
+ ldmeqia sp!, {r4-r6,pc}
+_020B4C18: ; 0x020B4C18
+ mov r0, #0x1
+ str r0, [r3, #0x30]
+ ldr r3, [r5, #0x18]
+ cmp r3, #0x0
+ beq _020B4C38
+ ldr r0, [r2, #0x0]
+ mov r1, r6
+ blx r3
+_020B4C38:
+ ldr r0, _020B4CD8 ; =0x021CED14
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0x30]
+ cmp r0, #0x0
+ beq _020B4CB8
+ mvn r0, #0x0
+ cmp r4, r0
+ beq _020B4C7C
+ mov r0, r4
+ ldr r4, [r5, #0x14]
+ bl FUN_020B469C
+ mov r3, #0x1
+ mvn r1, r3, lsl r4
+ ldr r2, [r0, #0x20]
+ and r1, r2, r1
+ orr r1, r1, r3, lsl r4
+ str r1, [r0, #0x20]
+_020B4C7C:
+ ldr r0, [r5, #0x14]
+ cmp r0, #0x3
+ addls pc, pc, r0, lsl #0x2
+ b _020B4CB8
+_020B4C8C:
+ b _020B4C9C
+_020B4C90:
+ b _020B4CAC
+_020B4C94:
+ b _020B4CAC
+_020B4C98:
+ b _020B4CB8
+_020B4C9C:
+ mov r0, r5
+ mov r1, r6
+ bl FUN_020B5090
+ b _020B4CB8
+_020B4CAC:
+ mov r0, r5
+ mov r1, r6
+ bl FUN_020B53B4
+_020B4CB8:
+ ldr r2, [r5, #0x1c]
+ cmp r2, #0x0
+ ldmeqia sp!, {r4-r6,pc}
+_020B4CC4: ; 0x020B4CC4
+ ldr r0, _020B4CD8 ; =0x021CED14
+ mov r1, r6
+ ldr r0, [r0, #0x0]
+ blx r2
+ ldmia sp!, {r4-r6,pc}
+ .balign 4
+_020B4CD8: .word 0x021CED14
+
+ arm_func_start FUN_020B4CDC
+FUN_020B4CDC:
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ ldr r1, _020B4D9C ; =0x021CED14
+ mov r5, r0
+ ldr r2, [r1, #0x0]
+ ldr r4, [r2, #0x0]
+ ldr r0, [r4, #0x10]
+ cmp r0, #0x0
+ addeq sp, sp, #0x4
+ ldmeqia sp!, {r4-r5,pc}
+_020B4D04: ; 0x020B4D04
+ mov r0, #0x1
+ str r0, [r2, #0x30]
+ ldr r2, [r4, #0x18]
+ cmp r2, #0x0
+ beq _020B4D24
+ ldr r0, [r1, #0x0]
+ mov r1, r5
+ blx r2
+_020B4D24:
+ ldr r0, _020B4D9C ; =0x021CED14
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0x30]
+ cmp r0, #0x0
+ beq _020B4D74
+ ldr r0, [r4, #0x14]
+ cmp r0, #0x3
+ addls pc, pc, r0, lsl #0x2
+ b _020B4D74
+_020B4D48:
+ b _020B4D58
+_020B4D4C:
+ b _020B4D68
+_020B4D50:
+ b _020B4D68
+_020B4D54:
+ b _020B4D74
+_020B4D58:
+ mov r0, r4
+ mov r1, r5
+ bl FUN_020B5090
+ b _020B4D74
+_020B4D68:
+ mov r0, r4
+ mov r1, r5
+ bl FUN_020B53B4
+_020B4D74:
+ ldr r2, [r4, #0x1c]
+ cmp r2, #0x0
+ addeq sp, sp, #0x4
+ ldmeqia sp!, {r4-r5,pc}
+_020B4D84: ; 0x020B4D84
+ ldr r0, _020B4D9C ; =0x021CED14
+ mov r1, r5
+ ldr r0, [r0, #0x0]
+ blx r2
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,pc}
+ .balign 4
+_020B4D9C: .word 0x021CED14
+
+ arm_func_start FUN_020B4DA0
+FUN_020B4DA0: ; 0x020B4DA0
+ ldr r0, _020B4E00 ; =0x021CED14
+ ldr r3, [r0, #0x0]
+ ldr r1, [r3, #0x0]
+ ldr r1, [r1, #0x14]
+ cmp r1, #0x0
+ bne _020B4DD8
+ ldr r2, _020B4E04 ; =0x04000440
+ mov r1, #0x0
+ ldr r0, _020B4E08 ; =0x04000448
+ str r1, [r2, #0x0]
+ mov r1, #0x1
+ str r1, [r0, #0x0]
+ str r1, [r2, #0x0]
+ b _020B4DF0
+_020B4DD8:
+ mov r2, #0x0
+ str r2, [r3, #0x10]
+ ldr r1, [r0, #0x0]
+ str r2, [r1, #0x2c]
+ ldr r0, [r0, #0x0]
+ str r2, [r0, #0x28]
+_020B4DF0:
+ ldr r0, _020B4E00 ; =0x021CED14
+ mov r1, #0x0
+ str r1, [r0, #0x0]
+ bx lr
+ .balign 4
+_020B4E00: .word 0x021CED14
+_020B4E04: .word 0x04000440
+_020B4E08: .word 0x04000448
+
+ arm_func_start FUN_020B4E0C
+FUN_020B4E0C: ; 0x020B4E0C
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ ldr r2, _020B4F28 ; =0x021CED14
+ mov r4, r0
+ str r4, [r2, #0x0]
+ ldr r0, [r4, #0x0]
+ ldr r5, [r0, #0x14]
+ cmp r5, #0x0
+ bne _020B4ED8
+ ldr lr, _020B4F2C ; =0x04000440
+ mov r1, #0x0
+ ldr r0, _020B4F30 ; =0x04000444
+ str r1, [lr, #0x0]
+ str r1, [r0, #0x0]
+ ldr r12, [r4, #0x0]
+ ldr r0, _020B4F34 ; =0x04000470
+ ldr r3, [r12, #0x0]
+ ldr r12, [r12, #0x4]
+ rsb r3, r3, #0x0
+ str r3, [r0, #0x0]
+ rsb r3, r12, #0x0
+ str r3, [r0, #0x0]
+ str r1, [r0, #0x0]
+ mov r0, #0x1
+ str r0, [lr, #0x0]
+ ldr r0, [r2, #0x0]
+ ldr r5, [r0, #0x8]
+ mov r0, r5
+ bl FUN_020B19FC
+_020B4E80: ; 0x020B4E80
+ cmp r0, #0x0
+ moveq r0, #0x0
+ beq _020B4E98
+ mov r0, r5
+ mov r1, #0x0
+ bl FUN_020B1A14
+_020B4E98:
+ ldr r1, _020B4F28 ; =0x021CED14
+ str r0, [r4, #0x14]
+ ldr r0, [r1, #0x0]
+ mov r1, #0x0
+ ldr r5, [r0, #0xc]
+ mov r0, r5
+ bl FUN_020B19A8
+_020B4EB4: ; 0x020B4EB4
+ cmp r0, #0x0
+ moveq r0, #0x0
+ beq _020B4ECC
+ mov r0, r5
+ mov r1, #0x0
+ bl FUN_020B19C4
+_020B4ECC:
+ add sp, sp, #0x4
+ str r0, [r4, #0x18]
+ ldmia sp!, {r4-r5,pc}
+_020B4ED8:
+ ldr r4, [r4, #0x8]
+ mov r1, r5
+ mov r0, r4
+ bl FUN_020B19FC
+_020B4EE8: ; 0x020B4EE8
+ cmp r0, #0x0
+ moveq r1, #0x0
+ beq _020B4F14
+ mov r0, r4
+ mov r1, r5
+ bl FUN_020B1A14
+ ldr r1, [r4, #0x20]
+ and r1, r1, #0x700000
+ mov r1, r1, asr #0x14
+ add r1, r1, #0x5
+ mov r1, r0, lsr r1
+_020B4F14:
+ ldr r0, _020B4F28 ; =0x021CED14
+ ldr r0, [r0, #0x0]
+ str r1, [r0, #0x10]
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,pc}
+ .balign 4
+_020B4F28: .word 0x021CED14
+_020B4F2C: .word 0x04000440
+_020B4F30: .word 0x04000444
+_020B4F34: .word 0x04000470
+
+ arm_func_start FUN_020B4F38
+FUN_020B4F38: ; 0x020B4F38
+ cmp r1, #0x0
+ ldrne r1, [r0, #0x24]
+ orrne r1, r1, #0x1
+ strne r1, [r0, #0x24]
+ ldreq r1, [r0, #0x24]
+ biceq r1, r1, #0x1
+ streq r1, [r0, #0x24]
+ cmp r2, #0x0
+ ldrne r1, [r0, #0x24]
+ orrne r1, r1, #0x2
+ strne r1, [r0, #0x24]
+ ldreq r1, [r0, #0x24]
+ biceq r1, r1, #0x2
+ streq r1, [r0, #0x24]
+ bx lr
+
+ arm_func_start FUN_020B4F74
+FUN_020B4F74:
+ ldr r0, [r0, #0x24]
+ ands r0, r0, #0x2
+ movne r0, #0x1
+ moveq r0, #0x0
+ bx lr
+
+ arm_func_start FUN_020B4F88
+FUN_020B4F88:
+ ldr r0, [r0, #0x24]
+ ands r0, r0, #0x1
+ movne r0, #0x1
+ moveq r0, #0x0
+ bx lr
+
+ arm_func_start FUN_020B4F9C
+FUN_020B4F9C: ; 0x020B4F9C
+ str r1, [r0, #0x0]
+ bx lr
+
+ arm_func_start FUN_020B4FA4
+FUN_020B4FA4: ; 0x020B4FA4
+ str r1, [r0, #0x34]
+ bx lr
+
+ arm_func_start FUN_020B4FAC
+FUN_020B4FAC: ; 0x020B4FAC
+ ldr r2, _020B4FC0 ; =0x021CED14
+ ldr r2, [r2, #0x0]
+ str r0, [r2, #0x2c]
+ str r1, [r2, #0x28]
+ bx lr
+ .balign 4
+_020B4FC0: .word 0x021CED14
+
+ arm_func_start FUN_020B4FC4
+FUN_020B4FC4: ; 0x020B4FC4
+ ldr r1, _020B5028 ; =0x021CED14
+ mov r3, #0x0
+ ldr r12, [r1, #0x0]
+ mov r1, #0x1000
+ str r0, [r12, #0x2c]
+ ldr r2, [r0, #0x0]
+ str r2, [r12, #0x40]
+ ldr r2, [r0, #0x4]
+ str r2, [r12, #0x44]
+ str r3, [r12, #0x48]
+ ldr r2, [r0, #0x8]
+ str r2, [r12, #0x4c]
+ ldr r2, [r0, #0xc]
+ str r2, [r12, #0x50]
+ str r3, [r12, #0x54]
+ str r3, [r12, #0x58]
+ str r3, [r12, #0x5c]
+ str r1, [r12, #0x60]
+ ldr r1, [r0, #0x10]
+ str r1, [r12, #0x64]
+ ldr r0, [r0, #0x14]
+ str r0, [r12, #0x68]
+ ldr r0, [r12, #0x34]
+ str r0, [r12, #0x6c]
+ bx lr
+ .balign 4
+_020B5028: .word 0x021CED14
+
+ arm_func_start FUN_020B502C
+FUN_020B502C: ; 0x020B502C
+ str r1, [r0, #0x4]
+ bx lr
+
+ arm_func_start FUN_020B5034
+FUN_020B5034: ; 0x020B5034
+ str r1, [r0, #0x1c]
+ str r2, [r0, #0x20]
+ bx lr
+
+ arm_func_start FUN_020B5040
+FUN_020B5040: ; 0x020B5040
+ str r1, [r0, #0x8]
+ str r2, [r0, #0xc]
+ bx lr
+
+ arm_func_start FUN_020B504C
+FUN_020B504C: ; 0x020B504C
+ stmdb sp!, {r4,lr}
+ mov r4, r0
+ mov r1, r4
+ mov r0, #0x0
+ mov r2, #0x70
+ bl MIi_CpuClear16
+ mov r1, #0x0
+ str r1, [r4, #0x0]
+ mov r0, #0x2
+ str r0, [r4, #0x4]
+ str r1, [r4, #0x8]
+ str r1, [r4, #0xc]
+ str r1, [r4, #0x24]
+ mov r0, #0x1
+ str r0, [r4, #0x30]
+ str r1, [r4, #0x28]
+ ldmia sp!, {r4,pc}
+
+ arm_func_start FUN_020B5090
+FUN_020B5090: ; 0x020B5090
+ stmdb sp!, {r4-r10,lr}
+ ldr r5, _020B5158 ; =0x021CED14
+ mov r9, r1
+ ldrh r1, [r9, #0x0]
+ ldr r2, [r5, #0x0]
+ mov r10, r0
+ add r7, r2, #0x38
+ mov r8, #0x0
+ cmp r1, #0x0
+ ldmlsia sp!, {r4-r10,pc}
+_020B50B8: ; 0x020B50B8
+ mov r6, #0x1
+ mov r4, #0x6
+_020B50C0:
+ mul r1, r8, r4
+ ldr r0, [r5, #0x0]
+ str r6, [r0, #0x30]
+ ldr r2, [r9, #0x4]
+ ldrh r0, [r2, r1]
+ add r1, r2, r1
+ strh r0, [r7, #0x0]
+ ldrh r0, [r1, #0x2]
+ strh r0, [r7, #0x2]
+ ldrh r0, [r1, #0x4]
+ strh r0, [r7, #0x4]
+ ldr r3, [r10, #0x20]
+ cmp r3, #0x0
+ beq _020B5108
+ ldr r0, [r5, #0x0]
+ mov r1, r9
+ mov r2, r8
+ blx r3
+_020B5108:
+ ldr r0, [r5, #0x0]
+ ldr r0, [r0, #0x30]
+ cmp r0, #0x0
+ beq _020B5120
+ mov r0, r7
+ bl FUN_020B515C
+_020B5120:
+ ldr r3, [r10, #0x24]
+ cmp r3, #0x0
+ beq _020B513C
+ ldr r0, [r5, #0x0]
+ mov r1, r9
+ mov r2, r8
+ blx r3
+_020B513C:
+ add r0, r8, #0x1
+ mov r0, r0, lsl #0x10
+ ldrh r1, [r9, #0x0]
+ mov r8, r0, lsr #0x10
+ cmp r8, r1
+ blo _020B50C0
+ ldmia sp!, {r4-r10,pc}
+ .balign 4
+_020B5158: .word 0x021CED14
+
+ arm_func_start FUN_020B515C
+FUN_020B515C: ; 0x020B515C
+ stmdb sp!, {r4-r8,lr}
+ sub sp, sp, #0x10
+ ldr r1, _020B53A4 ; =0x021CED14
+ mov r7, r0
+ ldr r0, [r1, #0x0]
+ add r0, r0, #0x40
+ bl G3_LoadMtx43
+ ldr r0, _020B53A4 ; =0x021CED14
+ ldr r0, [r0, #0x0]
+ ldr r1, [r0, #0x24]
+ cmp r1, #0x0
+ beq _020B533C
+ ldr r2, [r7, #0x0]
+ ldr r1, _020B53A8 ; =0xC000C000
+ and r4, r2, r1
+ bl FUN_020B4F88
+_020B519C: ; 0x020B519C
+ cmp r0, #0x0
+ beq _020B51F4
+ ldr r0, [r7, #0x0]
+ and r2, r4, #0xc000
+ mov r0, r0, lsl #0x7
+ mov r3, r0, lsr #0x17
+ and r1, r4, #0xc0000000
+ mov r1, r1, lsr #0x1e
+ ldr r0, _020B53AC ; =0x020FF8AC
+ mov r2, r2, asr #0xe
+ mov r1, r1, lsl #0x1
+ add r0, r0, r2, lsl #0x3
+ cmp r3, #0xff
+ ldrh r1, [r1, r0]
+ orrgt r0, r3, #0xff00
+ movgt r0, r0, lsl #0x10
+ movgt r3, r0, asr #0x10
+ add r0, r3, r1
+ rsb r0, r0, #0x0
+ mov r0, r0, lsl #0x10
+ mov r1, r0, lsr #0x10
+ b _020B5218
+_020B51F4:
+ ldr r0, [r7, #0x0]
+ mov r0, r0, lsl #0x7
+ mov r0, r0, lsr #0x17
+ cmp r0, #0xff
+ orrgt r0, r0, #0xff00
+ movgt r0, r0, lsl #0x10
+ movgt r0, r0, asr #0x10
+ mov r0, r0, lsl #0x10
+ mov r1, r0, lsr #0x10
+_020B5218:
+ ldr r0, _020B53A4 ; =0x021CED14
+ mov r1, r1, lsl #0x10
+ ldr r0, [r0, #0x0]
+ mov r6, r1, asr #0x10
+ bl FUN_020B4F74
+_020B522C: ; 0x020B522C
+ cmp r0, #0x0
+ beq _020B527C
+ and r1, r4, #0xc000
+ and r0, r4, #0xc0000000
+ ldrb r4, [r7, #0x0]
+ ldr r2, _020B53B0 ; =0x020FF894
+ mov r0, r0, lsr #0x1e
+ mov r3, r1, asr #0xe
+ mov r1, r0, lsl #0x1
+ add r0, r2, r3, lsl #0x3
+ cmp r4, #0x7f
+ ldrh r1, [r1, r0]
+ orrgt r0, r4, #0xff00
+ movgt r0, r0, lsl #0x10
+ movgt r4, r0, asr #0x10
+ add r0, r4, r1
+ rsb r0, r0, #0x0
+ mov r0, r0, lsl #0x10
+ mov r4, r0, lsr #0x10
+ b _020B5298
+_020B527C:
+ ldrb r0, [r7, #0x0]
+ cmp r0, #0x7f
+ orrgt r0, r0, #0xff00
+ movgt r0, r0, lsl #0x10
+ movgt r0, r0, asr #0x10
+ mov r0, r0, lsl #0x10
+ mov r4, r0, lsr #0x10
+_020B5298:
+ ldr r0, _020B53A4 ; =0x021CED14
+ ldr r1, [r7, #0x0]
+ ldr r0, [r0, #0x0]
+ mov r5, r1, lsl #0x3
+ bl FUN_020B4F88
+ ldr r2, [r7, #0x0]
+ ldr r1, _020B53A4 ; =0x021CED14
+ eor r5, r0, r5, lsr #0x1f
+ ldr r0, [r1, #0x0]
+ mov r8, r2, lsl #0x2
+ bl FUN_020B4F74
+ ldr r2, [r7, #0x0]
+ eor r1, r0, r8, lsr #0x1f
+ bic r0, r2, #0x10000000
+ str r0, [r7, #0x0]
+ ldr r2, [r7, #0x0]
+ ldr r3, _020B53A4 ; =0x021CED14
+ orr r2, r2, r5, lsl #0x1c
+ str r2, [r7, #0x0]
+ ldr r2, [r7, #0x0]
+ mov r0, r6
+ bic r2, r2, #0x20000000
+ str r2, [r7, #0x0]
+ ldr r5, [r7, #0x0]
+ mov r2, r4, lsl #0x10
+ orr r1, r5, r1, lsl #0x1d
+ str r1, [r7, #0x0]
+ ldr r5, [r3, #0x0]
+ mov r1, r2, asr #0x10
+ ldr r4, [r5, #0x8]
+ mov r3, r7
+ add r2, r4, #0xc
+ str r2, [sp, #0x0]
+ ldr r4, [r5, #0x14]
+ mvn r2, #0x0
+ str r4, [sp, #0x4]
+ ldr r4, [r5, #0x18]
+ str r4, [sp, #0x8]
+ bl FUN_020B46B4
+ add sp, sp, #0x10
+ ldmia sp!, {r4-r8,pc}
+_020B533C:
+ ldr r2, _020B53A4 ; =0x021CED14
+ ldr r0, [r7, #0x0]
+ ldr r5, [r2, #0x0]
+ mov r0, r0, lsl #0x7
+ ldr r4, [r5, #0x8]
+ mov r0, r0, lsr #0x17
+ cmp r0, #0xff
+ orrgt r0, r0, #0xff00
+ movgt r0, r0, lsl #0x10
+ ldrb r1, [r7, #0x0]
+ add r4, r4, #0xc
+ movgt r0, r0, asr #0x10
+ str r4, [sp, #0x0]
+ ldr r4, [r5, #0x14]
+ cmp r1, #0x7f
+ orrgt r1, r1, #0xff00
+ movgt r1, r1, lsl #0x10
+ str r4, [sp, #0x4]
+ ldr r4, [r5, #0x18]
+ movgt r1, r1, asr #0x10
+ mov r3, r7
+ mvn r2, #0x0
+ str r4, [sp, #0x8]
+ bl FUN_020B46B4
+ add sp, sp, #0x10
+ ldmia sp!, {r4-r8,pc}
+ .balign 4
+_020B53A4: .word 0x021CED14
+_020B53A8: .word 0xC000C000
+_020B53AC: .word 0x020FF8AC
+_020B53B0: .word 0x020FF894
+
+ arm_func_start FUN_020B53B4
+FUN_020B53B4: ; 0x020B53B4
+ stmdb sp!, {r4-r11,lr}
+ sub sp, sp, #0x44
+ ldr r2, _020B57B0 ; =0x021CED14
+ mov r10, r0
+ ldr r0, [r2, #0x0]
+ mov r11, r1
+ ldr r9, [r0, #0x2c]
+ ldr r1, _020B57B0 ; =0x021CED14
+ cmp r9, #0x0
+ ldreq sb, _020B57B4 ; =0x020FF958
+ ldr r3, [r1, #0x0]
+ ldr r4, [r9, #0x10]
+ str r4, [sp, #0x18]
+ ldr r2, [r9, #0x14]
+ str r2, [sp, #0x1c]
+ ldr r1, [r10, #0x0]
+ sub r1, r4, r1
+ str r1, [sp, #0x18]
+ ldr r1, [r10, #0x4]
+ sub r1, r2, r1
+ str r1, [sp, #0x1c]
+ ldr r2, [r3, #0x24]
+ ldr r1, [r3, #0x10]
+ cmp r2, #0x0
+ str r1, [sp, #0x4]
+ bne _020B5430
+ ldr r1, [r3, #0x28]
+ cmp r1, #0x0
+ movne r1, #0x1
+ strne r1, [sp, #0x0]
+ bne _020B5438
+_020B5430:
+ mov r1, #0x0
+ str r1, [sp, #0x0]
+_020B5438:
+ ldrh r1, [r11, #0x0]
+ add r7, r0, #0x38
+ mov r8, #0x0
+ cmp r1, #0x0
+ addls sp, sp, #0x44
+ ldmlsia sp!, {r4-r11,pc}
+_020B5450: ; 0x020B5450
+ mov r0, #0x1
+ ldr r4, _020B57B0 ; =0x021CED14
+ str r8, [sp, #0x14]
+ str r0, [sp, #0xc]
+_020B5460:
+ ldr r2, [r4, #0x0]
+ ldr r0, [sp, #0xc]
+ mov r1, #0x6
+ str r0, [r2, #0x30]
+ mul r0, r8, r1
+ ldr r1, [r11, #0x4]
+ add r2, r1, r0
+ ldrh r0, [r1, r0]
+ strh r0, [r7, #0x0]
+ ldrh r0, [r2, #0x2]
+ strh r0, [r7, #0x2]
+ ldrh r0, [r2, #0x4]
+ strh r0, [r7, #0x4]
+ ldr r3, [r10, #0x20]
+ cmp r3, #0x0
+ beq _020B54B0
+ ldr r0, [r4, #0x0]
+ mov r1, r11
+ mov r2, r8
+ blx r3
+_020B54B0:
+ ldr r0, [r4, #0x0]
+ ldr r0, [r0, #0x30]
+ cmp r0, #0x0
+ beq _020B5790
+ ldr r0, [sp, #0x0]
+ ldr r1, [r7, #0x4]
+ cmp r0, #0x0
+ mov r0, #0x400
+ rsb r0, r0, #0x0
+ and r2, r1, r0
+ ldr r0, [sp, #0x4]
+ mov r1, r1, lsl #0x16
+ add r1, r0, r1, lsr #0x16
+ ldr r0, _020B57B8 ; =0x000003FF
+ and r0, r1, r0
+ orr r0, r2, r0
+ str r0, [r7, #0x4]
+ beq _020B5600
+ ldr r0, [r10, #0x14]
+ ldr lr, [r4, #0x0]
+ sub r1, r0, #0x1
+ ldr r0, [r7, #0x0]
+ ldr r6, [lr, #0x28]
+ mov r2, r0, lsl #0x2
+ mov r2, r2, lsr #0x1f
+ mov r2, r2, lsl #0x1
+ mov r0, r0, lsl #0x3
+ orr r5, r2, r0, lsr #0x1f
+ add r0, r6, r5, lsl #0x2
+ add r0, r0, r1, lsl #0x1
+ ldrh r1, [r0, #0x10]
+ ldr r0, _020B57BC ; =0x0000FFFF
+ str r1, [sp, #0x8]
+ cmp r1, r0
+ bne _020B55CC
+ cmp r5, #0x0
+ bne _020B5558
+ ldr r1, [lr, #0x20]
+ mov r0, r6
+ blx r1
+ str r0, [sp, #0x8]
+ b _020B55B4
+_020B5558:
+ ands r0, r5, #0x1
+ add r12, sp, #0x30
+ ldmia r6, {r0-r3}
+ stmia r12, {r0-r3}
+ beq _020B5584
+ ldr r1, [sp, #0x30]
+ ldr r0, [sp, #0x34]
+ rsb r1, r1, #0x0
+ str r1, [sp, #0x30]
+ rsb r0, r0, #0x0
+ str r0, [sp, #0x34]
+_020B5584:
+ ands r0, r5, #0x2
+ beq _020B55A4
+ ldr r1, [sp, #0x38]
+ ldr r0, [sp, #0x3c]
+ rsb r1, r1, #0x0
+ str r1, [sp, #0x38]
+ rsb r0, r0, #0x0
+ str r0, [sp, #0x3c]
+_020B55A4:
+ ldr r1, [lr, #0x20]
+ add r0, sp, #0x30
+ blx r1
+ str r0, [sp, #0x8]
+_020B55B4:
+ ldr r1, [r10, #0x14]
+ add r0, r6, r5, lsl #0x2
+ sub r1, r1, #0x1
+ add r1, r0, r1, lsl #0x1
+ ldr r0, [sp, #0x8]
+ strh r0, [r1, #0x10]
+_020B55CC:
+ ldr r1, [r9, #0x0]
+ add r0, sp, #0x20
+ str r1, [sp, #0x20]
+ ldr r2, [r9, #0x4]
+ mov r1, r7
+ str r2, [sp, #0x24]
+ ldr r3, [r9, #0x8]
+ add r2, sp, #0x18
+ str r3, [sp, #0x28]
+ ldr r3, [r9, #0xc]
+ str r3, [sp, #0x2c]
+ bl FUN_020B57D8
+ b _020B5750
+_020B5600:
+ ldr r0, _020B57C0 ; =0x0000FFFE
+ str r0, [sp, #0x8]
+ ldr r0, [r4, #0x0]
+ ldr r1, [r0, #0x24]
+ cmp r1, #0x0
+ beq _020B5714
+ ldr r2, [r7, #0x0]
+ ldr r1, _020B57C4 ; =0xC000C000
+ mov r6, r2, lsl #0x3
+ and r5, r2, r1
+ bl FUN_020B4F88
+ ldr r1, [r7, #0x0]
+ eor r6, r0, r6, lsr #0x1f
+ mov r1, r1, lsl #0x2
+ ldr r0, [r4, #0x0]
+ str r1, [sp, #0x10]
+ bl FUN_020B4F74
+ ldr r1, [sp, #0x10]
+ eor r0, r0, r1, lsr #0x1f
+ ldr r1, [r7, #0x0]
+ bic r1, r1, #0x10000000
+ str r1, [r7, #0x0]
+ ldr r1, [r7, #0x0]
+ orr r1, r1, r6, lsl #0x1c
+ str r1, [r7, #0x0]
+ ldr r1, [r7, #0x0]
+ bic r1, r1, #0x20000000
+ str r1, [r7, #0x0]
+ ldr r1, [r7, #0x0]
+ orr r0, r1, r0, lsl #0x1d
+ str r0, [r7, #0x0]
+ ldr r0, [r4, #0x0]
+ bl FUN_020B4F88
+_020B5684: ; 0x020B5684
+ cmp r0, #0x0
+ beq _020B56D4
+ and r1, r5, #0xc000
+ mov r2, r1, asr #0xe
+ ldr r1, _020B57C8 ; =0x020FF8AC
+ and r3, r5, #0xc0000000
+ mov r3, r3, lsr #0x1e
+ add r2, r1, r2, lsl #0x3
+ mov r3, r3, lsl #0x1
+ ldr r0, [r7, #0x0]
+ ldr r1, _020B57CC ; =0xFE00FFFF
+ ldrh r2, [r3, r2]
+ and r1, r0, r1
+ mov r0, r0, lsl #0x7
+ add r0, r2, r0, lsr #0x17
+ rsb r2, r0, #0x0
+ ldr r0, _020B57D0 ; =0x000001FF
+ and r0, r2, r0
+ orr r0, r1, r0, lsl #0x10
+ str r0, [r7, #0x0]
+_020B56D4:
+ ldr r0, [r4, #0x0]
+ bl FUN_020B4F74
+_020B56DC: ; 0x020B56DC
+ cmp r0, #0x0
+ beq _020B5714
+ and r1, r5, #0xc000
+ mov r3, r1, asr #0xe
+ and r1, r5, #0xc0000000
+ mov r1, r1, lsr #0x1e
+ mov r2, r1, lsl #0x1
+ ldr r1, _020B57D4 ; =0x020FF894
+ ldrb r0, [r7, #0x0]
+ add r1, r1, r3, lsl #0x3
+ ldrh r1, [r2, r1]
+ add r0, r0, r1
+ rsb r0, r0, #0x0
+ strb r0, [r7, #0x0]
+_020B5714:
+ ldr r2, [r7, #0x0]
+ ldr r0, _020B57CC ; =0xFE00FFFF
+ ldr r1, [sp, #0x18]
+ and r0, r2, r0
+ mov r2, r2, lsl #0x7
+ mov r2, r2, lsr #0x17
+ add r2, r2, r1, asr #0xc
+ ldr r1, _020B57D0 ; =0x000001FF
+ and r1, r2, r1
+ orr r0, r0, r1, lsl #0x10
+ str r0, [r7, #0x0]
+ ldrb r1, [r7, #0x0]
+ ldr r0, [sp, #0x1c]
+ add r0, r1, r0, asr #0xc
+ strb r0, [r7, #0x0]
+_020B5750:
+ ldr r3, [r4, #0x0]
+ ldr r1, [sp, #0x8]
+ ldr r2, [sp, #0x14]
+ ldr r3, [r3, #0x1c]
+ mov r0, r7
+ blx r3
+ cmp r0, #0x1
+ addne sp, sp, #0x44
+ ldmneia sp!, {r4-r11,pc}
+_020B5774: ; 0x020B5774
+ ldr r3, [r10, #0x24]
+ cmp r3, #0x0
+ beq _020B5790
+ ldr r0, [r4, #0x0]
+ mov r1, r11
+ mov r2, r8
+ blx r3
+_020B5790:
+ add r0, r8, #0x1
+ mov r0, r0, lsl #0x10
+ mov r8, r0, lsr #0x10
+ ldrh r0, [r11, #0x0]
+ cmp r8, r0
+ blo _020B5460
+ add sp, sp, #0x44
+ ldmia sp!, {r4-r11,pc}
+ .balign 4
+_020B57B0: .word 0x021CED14
+_020B57B4: .word 0x020FF958
+_020B57B8: .word 0x000003FF
+_020B57BC: .word 0x0000FFFF
+_020B57C0: .word 0x0000FFFE
+_020B57C4: .word 0xC000C000
+_020B57C8: .word 0x020FF8AC
+_020B57CC: .word 0xFE00FFFF
+_020B57D0: .word 0x000001FF
+_020B57D4: .word 0x020FF894
+
+ arm_func_start FUN_020B57D8
+FUN_020B57D8: ; 0x020B57D8
+ stmdb sp!, {r4-r8,lr}
+ sub sp, sp, #0x10
+ ldr r4, [r1, #0x0]
+ ldr r3, _020B5A9C ; =0x01FF0000
+ and r3, r4, r3
+ mov r3, r3, lsr #0x10
+ mov r3, r3, lsl #0x10
+ mov r3, r3, asr #0x10
+ cmp r3, #0xff
+ orrgt r3, r3, #0xff00
+ movgt r3, r3, lsl #0x10
+ movgt r3, r3, asr #0x10
+ mov r3, r3, lsl #0xc
+ str r3, [sp, #0x0]
+ ldr r3, [r1, #0x0]
+ and r3, r3, #0xff
+ mov r3, r3, lsl #0x10
+ mov r3, r3, asr #0x10
+ cmp r3, #0x7f
+ orrgt r3, r3, #0xff00
+ movgt r3, r3, lsl #0x10
+ movgt r3, r3, asr #0x10
+ mov r3, r3, lsl #0xc
+ str r3, [sp, #0x4]
+ ldr r5, [r1, #0x0]
+ and r4, r5, #0x300
+ cmp r4, #0x100
+ beq _020B5858
+ cmp r4, #0x300
+ beq _020B5858
+ and r3, r5, #0x30000000
+ orr r4, r4, r3
+_020B5858:
+ cmp r4, #0x300
+ bne _020B58AC
+ ldr r3, _020B5AA0 ; =0xC000C000
+ ldr r4, _020B5AA4 ; =0x020FF8AC
+ and r3, r5, r3
+ and r5, r3, #0xc0000000
+ and r3, r3, #0xc000
+ mov r6, r5, lsr #0x1e
+ mov r5, r3, asr #0xe
+ ldr r3, _020B5AA8 ; =0x020FF894
+ mov r6, r6, lsl #0x1
+ add r4, r4, r5, lsl #0x3
+ add r3, r3, r5, lsl #0x3
+ ldrh r5, [r6, r4]
+ ldr r7, [sp, #0x0]
+ ldrh r3, [r6, r3]
+ ldr r4, [sp, #0x4]
+ add r5, r7, r5, lsl #0xb
+ add r3, r4, r3, lsl #0xb
+ str r5, [sp, #0x0]
+ str r3, [sp, #0x4]
+_020B58AC:
+ ldr r5, [r0, #0x8]
+ ldr r4, [sp, #0x4]
+ add r3, sp, #0x0
+ smull r8, r7, r5, r4
+ cmp r3, r3
+ ldr r6, [r0, #0x0]
+ mov r4, #0x1000
+ addeq r3, sp, #0x8
+ adds r8, r8, r4
+ ldr r5, [sp, #0x0]
+ adc r7, r7, #0x0
+ smlal r8, r7, r6, r5
+ mov r5, r8, lsr #0xc
+ orr r5, r5, r7, lsl #0x14
+ str r5, [r3, #0x0]
+ ldr r7, [r0, #0xc]
+ ldr r6, [sp, #0x4]
+ ldr r5, [r0, #0x4]
+ smull r8, r6, r7, r6
+ adds r7, r8, r4
+ ldr r4, [sp, #0x0]
+ adc r6, r6, #0x0
+ smlal r7, r6, r5, r4
+ mov r5, r7, lsr #0xc
+ add r4, sp, #0x8
+ orr r5, r5, r6, lsl #0x14
+ str r5, [r3, #0x4]
+ cmp r3, r4
+ ldreq r3, [sp, #0xc]
+ ldreq r4, [sp, #0x8]
+ streq r3, [sp, #0x4]
+ ldr r3, _020B5AAC ; =0x021CED14
+ streq r4, [sp, #0x0]
+ ldr r3, [r3, #0x0]
+ ldr r3, [r3, #0x4]
+ cmp r3, #0x0
+ beq _020B597C
+ cmp r3, #0x2
+ moveq r5, #0x300
+ movne r5, #0x100
+ cmp r5, #0x100
+ ldreq r4, [r1, #0x0]
+ ldreq r3, _020B5AB0 ; =0xC1FFFCFF
+ andeq r3, r4, r3
+ orreq r3, r3, r5
+ streq r3, [r1, #0x0]
+ beq _020B597C
+ ldr r4, [r1, #0x0]
+ ldr r3, _020B5AB0 ; =0xC1FFFCFF
+ and r3, r4, r3
+ orr r3, r3, r5
+ str r3, [r1, #0x0]
+_020B597C:
+ ldr r6, [r1, #0x0]
+ and r5, r6, #0x300
+ cmp r5, #0x100
+ beq _020B599C
+ cmp r5, #0x300
+ beq _020B599C
+ and r3, r6, #0x30000000
+ orr r5, r5, r3
+_020B599C:
+ ldr r3, _020B5AA0 ; =0xC000C000
+ ldr r4, _020B5AA4 ; =0x020FF8AC
+ and r3, r6, r3
+ and r6, r3, #0xc0000000
+ and r3, r3, #0xc000
+ mov lr, r3, asr #0xe
+ mov r6, r6, lsr #0x1e
+ mov r3, r6, lsl #0x1
+ add r4, r4, lr, lsl #0x3
+ ldrh r4, [r3, r4]
+ ldr r6, [r0, #0x0]
+ ldr r8, _020B5AA8 ; =0x020FF894
+ mov r12, r4, asr #0x1
+ mov r4, r12, lsl #0xc
+ rsb r7, r4, #0x0
+ mla r7, r6, r12, r7
+ add lr, r8, lr, lsl #0x3
+ ldrh r3, [r3, lr]
+ ldr r6, [r0, #0x8]
+ ldr lr, [sp, #0x0]
+ mov r3, r3, asr #0x1
+ mla r7, r6, r3, r7
+ add r6, lr, r7
+ str r6, [sp, #0x0]
+ mov lr, r3, lsl #0xc
+ ldr r6, [r0, #0x4]
+ rsb r7, lr, #0x0
+ mla r7, r6, r12, r7
+ ldr r0, [r0, #0xc]
+ ldr r6, [sp, #0x4]
+ mla r3, r0, r3, r7
+ add r0, r6, r3
+ str r0, [sp, #0x4]
+ cmp r5, #0x300
+ moveq r0, #0x1
+ movne r0, #0x0
+ cmp r0, #0x0
+ beq _020B5A4C
+ ldr r3, [sp, #0x0]
+ ldr r0, [sp, #0x4]
+ sub r3, r3, r4
+ sub r0, r0, lr
+ str r3, [sp, #0x0]
+ str r0, [sp, #0x4]
+_020B5A4C:
+ ldr r4, [sp, #0x0]
+ ldr r0, [r2, #0x0]
+ ldr r3, [sp, #0x4]
+ add r5, r4, r0
+ str r5, [sp, #0x0]
+ ldr r2, [r2, #0x4]
+ ldr r0, _020B5AB4 ; =0x000001FF
+ add r2, r3, r2
+ str r2, [sp, #0x4]
+ mov r3, r2, asr #0xc
+ ldr r4, [r1, #0x0]
+ ldr r2, _020B5AB8 ; =0xFE00FF00
+ and r3, r3, #0xff
+ and r2, r4, r2
+ and r4, r0, r5, asr #0xc
+ orr r0, r2, r3
+ orr r0, r0, r4, lsl #0x10
+ str r0, [r1, #0x0]
+ add sp, sp, #0x10
+ ldmia sp!, {r4-r8,pc}
+ .balign 4
+_020B5A9C: .word 0x01FF0000
+_020B5AA0: .word 0xC000C000
+_020B5AA4: .word 0x020FF8AC
+_020B5AA8: .word 0x020FF894
+_020B5AAC: .word 0x021CED14
+_020B5AB0: .word 0xC1FFFCFF
+_020B5AB4: .word 0x000001FF
+_020B5AB8: .word 0xFE00FF00
+
+ arm_func_start FUN_020B5ABC
+FUN_020B5ABC: ; 0x020B5ABC
+ stmdb sp!, {r4-r9,lr}
+ sub sp, sp, #0xc
+ add r5, sp, #0x0
+ mov r4, #0x0
+ str r4, [r5, #0x0]
+ str r4, [r5, #0x4]
+ mov r8, r2
+ ldr r2, [sp, #0x28]
+ mov r5, r0
+ mov r9, r1
+ mov r4, r3
+ cmp r2, #0x0
+ mov r7, #0x1
+ beq _020B5B24
+ add r6, sp, #0x28
+_020B5AF8:
+ mov r0, r9
+ mov r1, r8
+ mov r3, r6
+ bl FUN_020B5BC8
+ ldr r1, [sp, #0x0]
+ ldr r2, [sp, #0x28]
+ cmp r0, r1
+ strgt r0, [sp, #0x0]
+ add r7, r7, #0x1
+ cmp r2, #0x0
+ bne _020B5AF8
+_020B5B24:
+ ldr r0, [r9, #0x0]
+ sub r2, r7, #0x1
+ ldrsb r1, [r0, #0x1]
+ ldr r0, [sp, #0x0]
+ add r1, r4, r1
+ mul r1, r2, r1
+ sub r1, r1, r4
+ str r1, [sp, #0x4]
+ str r0, [r5, #0x0]
+ str r1, [r5, #0x4]
+ add sp, sp, #0xc
+ ldmia sp!, {r4-r9,pc}
+
+ arm_func_start FUN_020B5B54
+FUN_020B5B54: ; 0x020B5B54
+ stmdb sp!, {r4-r8,lr}
+ sub sp, sp, #0x10
+ str r2, [sp, #0x0]
+ add r3, sp, #0x4
+ mov r2, #0x0
+ str r2, [r3, #0x0]
+ mov r8, r0
+ str r2, [r3, #0x4]
+ ldr r7, [r8, #0x4]
+ add r0, sp, #0x0
+ mov r5, r1
+ mov r4, #0x1
+ blx r7
+ cmp r0, #0x0
+ beq _020B5BAC
+ add r6, sp, #0x0
+_020B5B94:
+ cmp r0, #0xa
+ mov r0, r6
+ addeq r4, r4, #0x1
+ blx r7
+ cmp r0, #0x0
+ bne _020B5B94
+_020B5BAC:
+ ldr r0, [r8, #0x0]
+ ldrsb r0, [r0, #0x1]
+ add r0, r5, r0
+ mul r0, r4, r0
+ sub r0, r0, r5
+ add sp, sp, #0x10
+ ldmia sp!, {r4-r8,pc}
+
+ arm_func_start FUN_020B5BC8
+FUN_020B5BC8:
+ stmdb sp!, {r4-r10,lr}
+ sub sp, sp, #0x8
+ mov r8, r0
+ str r2, [sp, #0x0]
+ ldr r4, [r8, #0x4]
+ add r0, sp, #0x0
+ mov r7, r1
+ mov r6, r3
+ mov r5, #0x0
+ blx r4
+ movs r1, r0
+ beq _020B5C58
+ ldr sb, _020B5C84 ; =0x0000FFFF
+ add r10, sp, #0x0
+_020B5C00:
+ cmp r1, #0xa
+ beq _020B5C58
+ mov r0, r8
+ bl FUN_020B5CE4
+ mov r1, r0
+ cmp r1, r9
+ ldreq r0, [r8, #0x0]
+ ldreqh r1, [r0, #0x2]
+ mov r0, r8
+ bl FUN_020B5C88
+ ldrh r1, [r8, #0x8]
+ cmp r1, #0x0
+ ldrnesb r1, [r0, #0x0]
+ ldrneb r0, [r0, #0x1]
+ addne r0, r1, r0
+ ldreqsb r0, [r0, #0x2]
+ add r1, r7, r0
+ mov r0, r10
+ add r5, r5, r1
+ blx r4
+ movs r1, r0
+ bne _020B5C00
+_020B5C58:
+ cmp r6, #0x0
+ beq _020B5C70
+ cmp r1, #0xa
+ ldreq r0, [sp, #0x0]
+ movne r0, #0x0
+ str r0, [r6, #0x0]
+_020B5C70:
+ cmp r5, #0x0
+ subgt r5, r5, r7
+ mov r0, r5
+ add sp, sp, #0x8
+ ldmia sp!, {r4-r10,pc}
+ .balign 4
+_020B5C84: .word 0x0000FFFF
+
+ arm_func_start FUN_020B5C88
+FUN_020B5C88: ; 0x020B5C88
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldr r3, [r0, #0x0]
+ ldr lr, [r3, #0xc]
+ cmp lr, #0x0
+ beq _020B5CD8
+_020B5CA0:
+ ldrh r12, [lr, #0x0]
+ cmp r12, r1
+ bhi _020B5CCC
+ ldrh r2, [lr, #0x2]
+ cmp r1, r2
+ ldrlsh r2, [r0, #0xa]
+ addls r3, lr, #0x8
+ subls r0, r1, r12
+ mlals r0, r2, r0, r3
+ addls sp, sp, #0x4
+ ldmlsia sp!, {pc}
+_020B5CCC:
+ ldr lr, [lr, #0x4]
+ cmp lr, #0x0
+ bne _020B5CA0
+_020B5CD8:
+ add r0, r3, #0x4
+ add sp, sp, #0x4
+ ldmia sp!, {pc}
+
+ arm_func_start FUN_020B5CE4
+FUN_020B5CE4: ; 0x020B5CE4
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0x10]
+ cmp r0, #0x0
+ beq _020B5D2C
+_020B5CFC:
+ ldrh r2, [r0, #0x0]
+ cmp r2, r1
+ bhi _020B5D20
+ ldrh r2, [r0, #0x2]
+ cmp r1, r2
+ bhi _020B5D20
+ bl FUN_020B5D7C
+ add sp, sp, #0x4
+ ldmia sp!, {pc}
+_020B5D20:
+ ldr r0, [r0, #0x8]
+ cmp r0, #0x0
+ bne _020B5CFC
+_020B5D2C:
+ ldr r0, _020B5D38 ; =0x0000FFFF
+ add sp, sp, #0x4
+ ldmia sp!, {pc}
+ .balign 4
+_020B5D38: .word 0x0000FFFF
+
+ arm_func_start FUN_020B5D3C
+FUN_020B5D3C: ; 0x020B5D3C
+ stmdb sp!, {r4,lr}
+ mov r4, r0
+ mov r0, r1
+ mov r1, r4
+ bl FUN_020B7558
+ sub r0, r0, #0x1
+ strh r0, [r4, #0x8]
+ ldrh r0, [r4, #0x8]
+ cmp r0, #0x0
+ movne r1, #0x2
+ moveq r1, #0x3
+ ldr r0, _020B5D78 ; =FUN_020B7718
+ strh r1, [r4, #0xa]
+ str r0, [r4, #0x4]
+ ldmia sp!, {r4,pc}
+ .balign 4
+_020B5D78: .word FUN_020B7718
+
+ arm_func_start FUN_020B5D7C
+FUN_020B5D7C: ; 0x020B5D7C
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldrh r3, [r0, #0x4]
+ ldr r2, _020B5E4C ; =0x0000FFFF
+ cmp r3, #0x0
+ beq _020B5DA8
+ cmp r3, #0x1
+ beq _020B5DC4
+ cmp r3, #0x2
+ beq _020B5DD8
+ b _020B5E40
+_020B5DA8:
+ ldrh r2, [r0, #0x0]
+ ldrh r3, [r0, #0xc]
+ sub r0, r1, r2
+ add r0, r3, r0
+ mov r0, r0, lsl #0x10
+ mov r2, r0, lsr #0x10
+ b _020B5E40
+_020B5DC4:
+ ldrh r2, [r0, #0x0]
+ sub r1, r1, r2
+ add r0, r0, r1, lsl #0x1
+ ldrh r2, [r0, #0xc]
+ b _020B5E40
+_020B5DD8:
+ ldrh r3, [r0, #0xc]
+ add r0, r0, #0xc
+ add r0, r0, #0x2
+ sub r3, r3, #0x1
+ add lr, r0, r3, lsl #0x2
+ cmp r0, lr
+ bhi _020B5E40
+_020B5DF4:
+ sub r12, lr, r0
+ mov r3, r12, asr #0x1
+ add r3, r12, r3, lsr #0x1e
+ mov r3, r3, asr #0x2
+ add r3, r3, r3, lsr #0x1f
+ mov r12, r3, asr #0x1
+ mov r3, r12, lsl #0x2
+ ldrh r3, [r0, r3]
+ add r12, r0, r12, lsl #0x2
+ cmp r3, r1
+ addcc r0, r12, #0x4
+ blo _020B5E38
+ cmp r1, r3
+ subcc lr, r12, #0x4
+ blo _020B5E38
+ ldrh r2, [r12, #0x2]
+ b _020B5E40
+_020B5E38:
+ cmp r0, lr
+ bls _020B5DF4
+_020B5E40:
+ mov r0, r2
+ add sp, sp, #0x4
+ ldmia sp!, {pc}
+ .balign 4
+_020B5E4C: .word 0x0000FFFF
+
+ arm_func_start FUN_020B5E50
+FUN_020B5E50: ; 0x020B5E50
+ stmdb sp!, {r4-r11,lr}
+ sub sp, sp, #0x3c
+ mov r7, r0
+ mov r0, r1
+ cmp r0, #0x8
+ ldr r0, [sp, #0x60]
+ str r1, [sp, #0x10]
+ str r0, [sp, #0x60]
+ ldr r0, [sp, #0x6c]
+ str r2, [sp, #0x14]
+ str r0, [sp, #0x6c]
+ ldrlt r0, [sp, #0x10]
+ mov r11, r3
+ ldr r6, [sp, #0x64]
+ ldr r5, [sp, #0x68]
+ movge r2, #0x3
+ clzlt r0, r0
+ rsblt r2, r0, #0x1f
+ ldr r0, [sp, #0x14]
+ cmp r0, #0x8
+ ldrlt r0, [sp, #0x14]
+ movge r1, #0x3
+ clzlt r0, r0
+ rsblt r1, r0, #0x1f
+ ldr r0, _020B6170 ; =0x020FF970
+ mvn r3, #0x0
+ add r1, r0, r1, lsl #0x3
+ add r0, r1, r2, lsl #0x1
+ ldrb r4, [r1, r2, lsl #0x1]
+ ldrb r1, [r0, #0x1]
+ ldr r2, [sp, #0x14]
+ cmp r6, #0x0
+ str r1, [sp, #0x18]
+ ldr r1, [sp, #0x10]
+ and r1, r1, r3, lsl r4
+ str r1, [sp, #0x1c]
+ ldr r1, [sp, #0x18]
+ and r1, r2, r3, lsl r1
+ str r1, [sp, #0x20]
+ moveq r1, #0x1
+ streq r1, [sp, #0x24]
+ movne r1, #0x2
+ strne r1, [sp, #0x24]
+ mov r1, #0x0
+ str r1, [sp, #0x28]
+ bl FUN_020B704C
+ ldr r1, [sp, #0x10]
+ ldr r2, [sp, #0x14]
+ mov r10, r1, asr r4
+ ldr r1, [sp, #0x18]
+ mov r1, r2, asr r1
+ str r1, [sp, #0x2c]
+ ldr r1, [sp, #0x24]
+ mov r2, r1, lsl r4
+ ldr r1, [sp, #0x18]
+ mov r2, r2, lsl r1
+ ldr r1, [sp, #0x6c]
+ mov r9, r2, asr r1
+ mov r1, #0x0
+ str r1, [sp, #0x30]
+ str r1, [sp, #0x34]
+ b _020B5FE8
+_020B5F48:
+ ldr r2, [sp, #0x30]
+ ldr r1, [sp, #0x18]
+ ldr r8, [sp, #0x34]
+ mov r2, r2, lsl r1
+ ldr r1, [sp, #0x60]
+ add lr, r1, r2, lsl #0x3
+ b _020B5FD4
+_020B5F64:
+ mov r1, r8, lsl r4
+ add r2, r11, r1, lsl #0x3
+ ldr r1, _020B6174 ; =0x000001FF
+ ldr r3, [r7, #0x0]
+ and r12, r2, r1
+ ldr r1, _020B6178 ; =0xFE00FF00
+ and r2, lr, #0xff
+ and r1, r3, r1
+ orr r1, r1, r2
+ orr r1, r1, r12, lsl #0x10
+ str r1, [r7, #0x0]
+ ldr r3, [r7, #0x0]
+ ldr r1, _020B617C ; =0x3FFF3FFF
+ mov r2, #0x400
+ and r1, r3, r1
+ orr r1, r1, r0
+ str r1, [r7, #0x0]
+ rsb r1, r2, #0x0
+ ldrh r2, [r7, #0x4]
+ add r8, r8, #0x1
+ and r1, r2, r1
+ orr r1, r1, r5
+ strh r1, [r7, #0x4]
+ ldr r1, [r7, #0x0]
+ add r5, r5, r9
+ bic r1, r1, #0x2000
+ orr r1, r1, r6, lsl #0xd
+ str r1, [r7], #0x8
+_020B5FD4:
+ cmp r8, r10
+ blt _020B5F64
+ ldr r1, [sp, #0x30]
+ add r1, r1, #0x1
+ str r1, [sp, #0x30]
+_020B5FE8:
+ ldr r2, [sp, #0x30]
+ ldr r1, [sp, #0x2c]
+ cmp r2, r1
+ blt _020B5F48
+ ldr r0, [sp, #0x28]
+ mla r0, r10, r1, r0
+ str r0, [sp, #0x28]
+ ldr r1, [sp, #0x1c]
+ ldr r0, [sp, #0x10]
+ cmp r1, r0
+ bhs _020B6078
+ ldr r0, [sp, #0x60]
+ ldr r1, [sp, #0x10]
+ str r0, [sp, #0x0]
+ ldr r0, [sp, #0x1c]
+ str r6, [sp, #0x4]
+ sub r4, r1, r0
+ ldr r1, [sp, #0x6c]
+ str r5, [sp, #0x8]
+ str r1, [sp, #0xc]
+ ldr r1, [sp, #0x1c]
+ ldr r2, [sp, #0x20]
+ add r3, r11, r1, lsl #0x3
+ mov r0, r7
+ mov r1, r4
+ bl FUN_020B5E50
+ ldr r1, [sp, #0x24]
+ add r7, r7, r0, lsl #0x3
+ mul r2, r1, r4
+ ldr r1, [sp, #0x20]
+ mul r2, r1, r2
+ ldr r1, [sp, #0x6c]
+ add r5, r5, r2, lsr r1
+ ldr r1, [sp, #0x28]
+ add r0, r1, r0
+ str r0, [sp, #0x28]
+_020B6078:
+ ldr r1, [sp, #0x20]
+ ldr r0, [sp, #0x14]
+ cmp r1, r0
+ bhs _020B60F0
+ ldr r1, [sp, #0x60]
+ ldr r0, [sp, #0x20]
+ mov r3, r11
+ add r0, r1, r0, lsl #0x3
+ str r0, [sp, #0x0]
+ str r6, [sp, #0x4]
+ ldr r1, [sp, #0x14]
+ ldr r0, [sp, #0x20]
+ str r5, [sp, #0x8]
+ sub r4, r1, r0
+ ldr r1, [sp, #0x6c]
+ mov r0, r7
+ str r1, [sp, #0xc]
+ ldr r1, [sp, #0x1c]
+ mov r2, r4
+ bl FUN_020B5E50
+ ldr r2, [sp, #0x24]
+ ldr r1, [sp, #0x1c]
+ add r7, r7, r0, lsl #0x3
+ mul r1, r2, r1
+ mul r2, r4, r1
+ ldr r1, [sp, #0x6c]
+ add r5, r5, r2, lsr r1
+ ldr r1, [sp, #0x28]
+ add r0, r1, r0
+ str r0, [sp, #0x28]
+_020B60F0:
+ ldr r1, [sp, #0x1c]
+ ldr r0, [sp, #0x10]
+ cmp r1, r0
+ bhs _020B6164
+ ldr r1, [sp, #0x20]
+ ldr r0, [sp, #0x14]
+ cmp r1, r0
+ bhs _020B6164
+ ldr r1, [sp, #0x60]
+ ldr r0, [sp, #0x20]
+ ldr r2, [sp, #0x10]
+ add r0, r1, r0, lsl #0x3
+ ldr r1, [sp, #0x1c]
+ ldr r3, [sp, #0x14]
+ str r0, [sp, #0x0]
+ sub r1, r2, r1
+ ldr r2, [sp, #0x20]
+ str r6, [sp, #0x4]
+ sub r2, r3, r2
+ ldr r3, [sp, #0x1c]
+ ldr r4, [sp, #0x6c]
+ str r5, [sp, #0x8]
+ mov r0, r7
+ add r3, r11, r3, lsl #0x3
+ str r4, [sp, #0xc]
+ bl FUN_020B5E50
+ ldr r1, [sp, #0x28]
+ add r0, r1, r0
+ str r0, [sp, #0x28]
+_020B6164:
+ ldr r0, [sp, #0x28]
+ add sp, sp, #0x3c
+ ldmia sp!, {r4-r11,pc}
+ .balign 4
+_020B6170: .word 0x020FF970
+_020B6174: .word 0x000001FF
+_020B6178: .word 0xFE00FF00
+_020B617C: .word 0x3FFF3FFF
+
+ arm_func_start FUN_020B6180
+FUN_020B6180: ; 0x020B6180
+ stmdb sp!, {r4-r6,lr}
+ mov r3, r0, lsr #0x3
+ mov r6, r1, lsr #0x3
+ mul r12, r3, r6
+ and r2, r0, #0x4
+ and lr, r0, #0x2
+ and r0, r0, #0x1
+ add r4, r0, lr, lsr #0x1
+ mov r5, r2, lsr #0x2
+ and r0, r1, #0x4
+ add lr, r12, #0x0
+ add r12, r5, r4, lsl #0x1
+ mla r12, r6, r12, lr
+ and lr, r1, #0x2
+ and r1, r1, #0x1
+ add lr, r1, lr, lsr #0x1
+ mov r1, r0, lsr #0x2
+ add r1, r1, lr, lsl #0x1
+ mla r12, r3, r1, r12
+ add r1, r4, r2, lsr #0x2
+ add r0, lr, r0, lsr #0x2
+ mla r0, r1, r0, r12
+ ldmia sp!, {r4-r6,pc}
+
+ arm_func_start FUN_020B61DC
+FUN_020B61DC: ; 0x020B61DC
+ stmdb sp!, {r4-r8,lr}
+ ldr r12, [sp, #0x1c]
+ ldr r8, [sp, #0x18]
+ mov r12, r12, lsl #0x1c
+ mov r4, r12, lsr #0x10
+ mov r6, #0x0
+ cmp r2, #0x0
+ ldmleia sp!, {r4-r8,pc}
+_020B61FC: ; 0x020B61FC
+ mov lr, r3, lsl #0x1
+ mov r12, r6
+_020B6204:
+ mov r5, r0
+ mov r7, r12
+ cmp r1, #0x0
+ ble _020B622C
+_020B6214:
+ orr r3, r4, r8
+ add r7, r7, #0x1
+ cmp r7, r1
+ add r8, r8, #0x1
+ strh r3, [r5], #0x2
+ blt _020B6214
+_020B622C:
+ add r6, r6, #0x1
+ cmp r6, r2
+ add r0, r0, lr
+ blt _020B6204
+ ldmia sp!, {r4-r8,pc}
+
+ arm_func_start FUN_020B6240
+FUN_020B6240: ; 0x020B6240
+ stmdb sp!, {r4-r8,lr}
+ sub sp, sp, #0x8
+ ldr r5, [sp, #0x24]
+ ldr lr, [sp, #0x20]
+ cmp r5, #0x20
+ ldr r12, [sp, #0x28]
+ bgt _020B6280
+ mla r4, r5, lr, r3
+ ldr lr, [sp, #0x2c]
+ str r12, [sp, #0x0]
+ mov r3, r5
+ add r0, r0, r4, lsl #0x1
+ str lr, [sp, #0x4]
+ bl FUN_020B61DC
+ add sp, sp, #0x8
+ ldmia sp!, {r4-r8,pc}
+_020B6280:
+ ldr r4, [sp, #0x2c]
+ add r7, lr, r2
+ mov r2, r4, lsl #0x1c
+ cmp lr, r7
+ add r8, r3, r1
+ mov r4, r2, lsr #0x10
+ addge sp, sp, #0x8
+ ldmgeia sp!, {r4-r8,pc}
+_020B62A0:
+ cmp lr, #0x20
+ movlt r1, lr
+ addge r1, lr, #0x20
+ mov r6, r3
+ cmp r3, r8
+ add r5, r0, r1, lsl #0x6
+ bge _020B62E4
+_020B62BC:
+ cmp r6, #0x20
+ movlt r1, r6
+ addge r1, r6, #0x3e0
+ orr r2, r4, r12
+ mov r1, r1, lsl #0x1
+ add r6, r6, #0x1
+ strh r2, [r5, r1]
+ cmp r6, r8
+ add r12, r12, #0x1
+ blt _020B62BC
+_020B62E4:
+ add lr, lr, #0x1
+ cmp lr, r7
+ blt _020B62A0
+ add sp, sp, #0x8
+ ldmia sp!, {r4-r8,pc}
+
+ arm_func_start FUN_020B62F8
+FUN_020B62F8: ; 0x020B62F8
+ stmdb sp!, {r4-r6,lr}
+ sub sp, sp, #0x18
+ cmp r2, #0x8
+ movlt r4, r2
+ movge r12, #0x3
+ clzlt r4, r4
+ rsblt r12, r4, #0x1f
+ cmp r3, #0x8
+ movlt r4, r3
+ movge r6, #0x3
+ clzlt r4, r4
+ rsblt r6, r4, #0x1f
+ ldr r4, _020B6378 ; =0x020FF970
+ ldr r5, [sp, #0x28]
+ add r4, r4, r6, lsl #0x3
+ ldrb r6, [r4, r12, lsl #0x1]
+ add r12, r4, r12, lsl #0x1
+ ldr r4, _020B637C ; =FUN_020B6908
+ strb r6, [sp, #0x14]
+ ldrb r6, [r12, #0x1]
+ ldr lr, _020B6380 ; =FUN_020B68AC
+ ldr ip, _020B6384 ; =FUN_020B64C0
+ strb r6, [sp, #0x15]
+ str r5, [sp, #0x0]
+ str r4, [sp, #0x4]
+ str lr, [sp, #0x8]
+ str r12, [sp, #0xc]
+ ldr r12, [sp, #0x14]
+ str r12, [sp, #0x10]
+ bl FUN_020B6488
+ add sp, sp, #0x18
+ ldmia sp!, {r4-r6,pc}
+ .balign 4
+_020B6378: .word 0x020FF970
+_020B637C: .word FUN_020B6908
+_020B6380: .word FUN_020B68AC
+_020B6384: .word FUN_020B64C0
+
+ arm_func_start FUN_020B6388
+FUN_020B6388: ; 0x020B6388
+ stmdb sp!, {lr}
+ sub sp, sp, #0x14
+ ldr lr, [sp, #0x18]
+ ldr ip, _020B63C0 ; =FUN_020B6B10
+ str lr, [sp, #0x0]
+ ldr lr, _020B63C4 ; =FUN_020B68AC
+ str r12, [sp, #0x4]
+ ldr ip, _020B63C8 ; =FUN_020B66D4
+ str lr, [sp, #0x8]
+ str r12, [sp, #0xc]
+ str r2, [sp, #0x10]
+ bl FUN_020B6488
+ add sp, sp, #0x14
+ ldmia sp!, {pc}
+ .balign 4
+_020B63C0: .word FUN_020B6B10
+_020B63C4: .word FUN_020B68AC
+_020B63C8: .word FUN_020B66D4
+
+ arm_func_start FUN_020B63CC
+FUN_020B63CC: ; 0x020B63CC
+ stmdb sp!, {r4-r8,lr}
+ sub sp, sp, #0x10
+ mov r7, r1
+ ldrh r1, [sp, #0x2c]
+ mov r8, r0
+ mov r0, r7
+ mov r6, r2
+ mov r5, r3
+ bl FUN_020B5CE4
+ ldr r1, _020B6484 ; =0x0000FFFF
+ mov r4, r0
+ cmp r4, r1
+ ldreq r0, [r7, #0x0]
+ ldreqh r4, [r0, #0x2]
+ mov r0, r7
+ mov r1, r4
+ bl FUN_020B5C88
+ str r0, [sp, #0x8]
+ ldr r0, [r7, #0x0]
+ ldr r2, [sp, #0x28]
+ ldr r0, [r0, #0x8]
+ add r1, sp, #0x8
+ ldrh r3, [r0, #0x2]
+ add r12, r0, #0x8
+ mov r0, r8
+ mla r3, r4, r3, r12
+ str r3, [sp, #0xc]
+ str r2, [sp, #0x0]
+ str r1, [sp, #0x4]
+ ldr r1, [sp, #0x8]
+ ldr r4, [r8, #0x14]
+ ldrsb r2, [r1, #0x0]
+ mov r1, r7
+ mov r3, r5
+ add r2, r6, r2
+ blx r4
+ ldrh r0, [r7, #0x8]
+ cmp r0, #0x0
+ ldrne r0, [sp, #0x8]
+ ldrnesb r1, [r0, #0x0]
+ ldrneb r0, [r0, #0x1]
+ addne r0, r1, r0
+ ldreq r0, [sp, #0x8]
+ ldreqsb r0, [r0, #0x2]
+ add sp, sp, #0x10
+ ldmia sp!, {r4-r8,pc}
+ .balign 4
+_020B6484: .word 0x0000FFFF
+
+ arm_func_start FUN_020B6488
+FUN_020B6488: ; 0x020B6488
+ str r2, [r0, #0x4]
+ ldr r2, [sp, #0x0]
+ str r3, [r0, #0x8]
+ strb r2, [r0, #0xc]
+ ldr r2, [sp, #0x4]
+ str r1, [r0, #0x0]
+ ldr r1, [sp, #0x8]
+ str r2, [r0, #0x14]
+ ldr r2, [sp, #0xc]
+ str r1, [r0, #0x18]
+ ldr r1, [sp, #0x10]
+ str r2, [r0, #0x1c]
+ str r1, [r0, #0x10]
+ bx lr
+
+ arm_func_start FUN_020B64C0
+FUN_020B64C0: ; 0x020B64C0
+ stmdb sp!, {r4-r11,lr}
+ sub sp, sp, #0x54
+ ldrb r4, [r0, #0xc]
+ mov r10, r2
+ str r1, [sp, #0xc]
+ str r4, [sp, #0x44]
+ ldr r1, [sp, #0x44]
+ ldr r4, [sp, #0x78]
+ cmp r1, #0x4
+ add r1, r10, r4
+ str r1, [sp, #0x1c]
+ ldr r2, [sp, #0x7c]
+ mov r1, r3
+ add r1, r1, r2
+ str r1, [sp, #0x20]
+ ldrne r1, [sp, #0xc]
+ str r3, [sp, #0x10]
+ orrne r1, r1, r1, lsl #0x8
+ orrne r1, r1, r1, lsl #0x10
+ strne r1, [sp, #0xc]
+ bne _020B6528
+ ldr r1, [sp, #0xc]
+ orr r1, r1, r1, lsl #0x4
+ orr r1, r1, r1, lsl #0x8
+ orr r1, r1, r1, lsl #0x10
+ str r1, [sp, #0xc]
+_020B6528:
+ bic r1, r10, #0x7
+ str r1, [sp, #0x30]
+ ldr r1, [sp, #0x10]
+ ldr r2, [r0, #0x10]
+ bic r1, r1, #0x7
+ str r1, [sp, #0x14]
+ ldr r1, [sp, #0x44]
+ str r2, [sp, #0x4c]
+ mov r3, r1, lsl #0x6
+ mov r2, r3, asr #0x2
+ ldr r1, [sp, #0x20]
+ add r3, r3, r2, lsr #0x1d
+ ldr r2, [sp, #0x1c]
+ add r6, r1, #0x7
+ add r2, r2, #0x7
+ bic r5, r2, #0x7
+ bic r2, r6, #0x7
+ ldr r1, [sp, #0x30]
+ str r2, [sp, #0x24]
+ mov r2, r3, asr #0x3
+ str r2, [sp, #0x48]
+ mov r4, r1, asr #0x2
+ ldr r2, [sp, #0x30]
+ ldr r1, [sp, #0x14]
+ add r2, r2, r4, lsr #0x1d
+ mov r2, r2, asr #0x3
+ str r2, [sp, #0x2c]
+ ldr r2, [sp, #0x14]
+ mov r1, r1, asr #0x2
+ add r1, r2, r1, lsr #0x1d
+ mov r6, r1, asr #0x3
+ ldr r1, [sp, #0x24]
+ cmp r2, r1
+ ldr r1, [r0, #0x4]
+ str r1, [sp, #0x40]
+ ldr r1, [r0, #0x8]
+ ldr r0, [r0, #0x0]
+ str r1, [sp, #0x3c]
+ str r0, [sp, #0x28]
+ ldrb r0, [sp, #0x4c]
+ str r0, [sp, #0x38]
+ ldrb r0, [sp, #0x4d]
+ str r0, [sp, #0x34]
+ addge sp, sp, #0x54
+ ldmgeia sp!, {r4-r11,pc}
+_020B65DC: ; 0x020B65DC
+ mov r4, #0x0
+ mov r11, #0x8
+_020B65E4:
+ ldr r1, [sp, #0x14]
+ ldr r0, [sp, #0x10]
+ ldr r7, [sp, #0x2c]
+ cmp r1, r0
+ movlt r1, r0
+ ldrlt r0, [sp, #0x14]
+ sublt r9, r1, r0
+ ldr r1, [sp, #0x20]
+ ldr r0, [sp, #0x14]
+ movge r9, r4
+ sub r0, r1, r0
+ cmp r0, #0x8
+ movgt r0, r11
+ sub r0, r0, r9
+ str r0, [sp, #0x18]
+ ldr r0, [sp, #0x30]
+ cmp r0, r5
+ mov r8, r0
+ bge _020B66B0
+_020B6630:
+ ldr r0, [sp, #0x38]
+ ldr r2, [sp, #0x40]
+ str r0, [sp, #0x0]
+ ldr r0, [sp, #0x34]
+ ldr r3, [sp, #0x3c]
+ str r0, [sp, #0x4]
+ mov r0, r7
+ mov r1, r6
+ bl FUN_020B7068
+ ldr r2, [sp, #0x1c]
+ cmp r8, r10
+ sublt r1, r10, r8
+ sub r2, r2, r8
+ movge r1, r4
+ cmp r2, #0x8
+ movgt r2, r11
+ sub r3, r2, r1
+ ldr r2, [sp, #0x18]
+ ldr r12, [sp, #0x48]
+ str r2, [sp, #0x0]
+ ldr r2, [sp, #0xc]
+ str r2, [sp, #0x4]
+ ldr r2, [sp, #0x44]
+ str r2, [sp, #0x8]
+ ldr r2, [sp, #0x28]
+ mla r0, r12, r0, r2
+ mov r2, r9
+ bl FUN_020B6F18
+ add r8, r8, #0x8
+ add r7, r7, #0x1
+ cmp r8, r5
+ blt _020B6630
+_020B66B0:
+ ldr r0, [sp, #0x14]
+ add r6, r6, #0x1
+ add r1, r0, #0x8
+ ldr r0, [sp, #0x24]
+ str r1, [sp, #0x14]
+ cmp r1, r0
+ blt _020B65E4
+ add sp, sp, #0x54
+ ldmia sp!, {r4-r11,pc}
+
+ arm_func_start FUN_020B66D4
+FUN_020B66D4: ; 0x020B66D4
+ stmdb sp!, {r4-r11,lr}
+ sub sp, sp, #0x3c
+ ldrb r4, [r0, #0xc]
+ mov r10, r2
+ str r1, [sp, #0xc]
+ str r4, [sp, #0x2c]
+ ldr r1, [sp, #0x2c]
+ ldr r4, [sp, #0x60]
+ cmp r1, #0x4
+ add r1, r10, r4
+ str r1, [sp, #0x18]
+ ldr r2, [sp, #0x64]
+ mov r1, r3
+ add r1, r1, r2
+ str r1, [sp, #0x1c]
+ ldrne r1, [sp, #0xc]
+ str r3, [sp, #0x10]
+ orrne r1, r1, r1, lsl #0x8
+ orrne r1, r1, r1, lsl #0x10
+ strne r1, [sp, #0xc]
+ bne _020B673C
+ ldr r1, [sp, #0xc]
+ orr r1, r1, r1, lsl #0x4
+ orr r1, r1, r1, lsl #0x8
+ orr r1, r1, r1, lsl #0x10
+ str r1, [sp, #0xc]
+_020B673C:
+ ldr r1, [sp, #0x10]
+ bic r1, r1, #0x7
+ mov r2, r1, asr #0x2
+ str r1, [sp, #0x14]
+ add r1, r1, r2, lsr #0x1d
+ ldr r2, [r0, #0x10]
+ mov r3, r1, asr #0x3
+ mul r1, r3, r2
+ bic r3, r10, #0x7
+ str r3, [sp, #0x28]
+ ldr r3, [sp, #0x2c]
+ mov r6, r3, lsl #0x6
+ ldr r3, [sp, #0x28]
+ mov r4, r6, asr #0x2
+ mov r5, r3, asr #0x2
+ add r5, r3, r5, lsr #0x1d
+ add r4, r6, r4, lsr #0x1d
+ mov r3, r4, asr #0x3
+ str r3, [sp, #0x30]
+ ldr r3, [sp, #0x1c]
+ add r1, r1, r5, asr #0x3
+ add r4, r3, #0x7
+ ldr r3, [r0, #0x0]
+ ldr r0, [sp, #0x18]
+ add r5, r0, #0x7
+ ldr r0, [sp, #0x30]
+ bic r7, r5, #0x7
+ mla r1, r0, r1, r3
+ bic r0, r4, #0x7
+ str r0, [sp, #0x20]
+ ldr r0, [sp, #0x30]
+ str r1, [sp, #0x24]
+ mul r0, r2, r0
+ str r0, [sp, #0x34]
+ ldr r1, [sp, #0x14]
+ ldr r0, [sp, #0x20]
+ cmp r1, r0
+ addge sp, sp, #0x3c
+ ldmgeia sp!, {r4-r11,pc}
+_020B67D8: ; 0x020B67D8
+ mov r5, #0x0
+ mov r4, #0x8
+_020B67E0:
+ ldr r1, [sp, #0x14]
+ ldr r0, [sp, #0x10]
+ ldr r6, [sp, #0x24]
+ cmp r1, r0
+ movlt r1, r0
+ ldrlt r0, [sp, #0x14]
+ sublt r9, r1, r0
+ ldr r1, [sp, #0x1c]
+ ldr r0, [sp, #0x14]
+ movge r9, r5
+ sub r0, r1, r0
+ cmp r0, #0x8
+ movgt r0, r4
+ sub r11, r0, r9
+ ldr r0, [sp, #0x28]
+ cmp r0, r7
+ mov r8, r0
+ bge _020B687C
+_020B6828:
+ ldr r0, [sp, #0x18]
+ cmp r8, r10
+ sublt r1, r10, r8
+ sub r0, r0, r8
+ movge r1, r5
+ cmp r0, #0x8
+ movgt r0, r4
+ sub r3, r0, r1
+ ldr r0, [sp, #0xc]
+ str r11, [sp, #0x0]
+ str r0, [sp, #0x4]
+ ldr r0, [sp, #0x2c]
+ mov r2, r9
+ str r0, [sp, #0x8]
+ mov r0, r6
+ bl FUN_020B6F18
+ ldr r0, [sp, #0x30]
+ add r8, r8, #0x8
+ add r6, r6, r0
+ cmp r8, r7
+ blt _020B6828
+_020B687C:
+ ldr r1, [sp, #0x24]
+ ldr r0, [sp, #0x34]
+ add r0, r1, r0
+ str r0, [sp, #0x24]
+ ldr r0, [sp, #0x14]
+ add r1, r0, #0x8
+ ldr r0, [sp, #0x20]
+ str r1, [sp, #0x14]
+ cmp r1, r0
+ blt _020B67E0
+ add sp, sp, #0x3c
+ ldmia sp!, {r4-r11,pc}
+
+ arm_func_start FUN_020B68AC
+FUN_020B68AC: ; 0x020B68AC
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ mov r3, r0
+ ldrb r2, [r3, #0xc]
+ ldr r12, [r3, #0x4]
+ cmp r2, #0x4
+ orreq r0, r1, r1, lsl #0x4
+ orreq r0, r0, r0, lsl #0x8
+ orreq r1, r0, r0, lsl #0x10
+ orrne r0, r1, r1, lsl #0x8
+ orrne r1, r0, r0, lsl #0x10
+ ldr r0, [r3, #0x8]
+ mov r2, r2, lsl #0x6
+ mul lr, r12, r0
+ mov r0, r2, asr #0x2
+ add r0, r2, r0, lsr #0x1d
+ mov r2, r0, asr #0x3
+ mov r0, r1
+ mul r2, lr, r2
+ ldr r1, [r3, #0x0]
+ bl MIi_CpuClearFast
+ add sp, sp, #0x4
+ ldmia sp!, {pc}
+
+ arm_func_start FUN_020B6908
+FUN_020B6908: ; 0x020B6908
+ stmdb sp!, {r4-r11,lr}
+ sub sp, sp, #0x4c
+ ldr r7, [sp, #0x74]
+ ldrb r5, [r0, #0xc]
+ ldr r6, [r1, #0x0]
+ ldr r4, [r7, #0x0]
+ ldr r9, [r6, #0x8]
+ mov r8, r5, lsl #0x6
+ ldrb r4, [r4, #0x1]
+ mov r5, r8, asr #0x2
+ add r5, r8, r5, lsr #0x1d
+ ldrb r9, [r9, #0x1]
+ ldr r8, [r0, #0x4]
+ ldr r6, [r0, #0x8]
+ str r2, [sp, #0x8]
+ str r3, [sp, #0xc]
+ cmp r4, #0x0
+ mov r5, r5, asr #0x3
+ addeq sp, sp, #0x4c
+ ldmeqia sp!, {r4-r11,pc}
+_020B6958: ; 0x020B6958
+ adds r3, r2, r4
+ addmi sp, sp, #0x4c
+ ldmmiia sp!, {r4-r11,pc}
+_020B6964: ; 0x020B6964
+ ldr r2, [sp, #0xc]
+ adds r2, r2, r9
+ addmi sp, sp, #0x4c
+ ldmmiia sp!, {r4-r11,pc}
+_020B6974: ; 0x020B6974
+ ldr r10, [sp, #0x8]
+ add r3, r3, #0x7
+ cmp r10, #0x0
+ movle r10, #0x0
+ strle r10, [sp, #0x10]
+ movgt r10, r10, lsr #0x3
+ strgt r10, [sp, #0x10]
+ ldr r10, [sp, #0xc]
+ add r2, r2, #0x7
+ cmp r10, #0x0
+ movle r10, #0x0
+ mov r11, r2, lsr #0x3
+ mov r3, r3, lsr #0x3
+ movgt r10, r10, lsr #0x3
+ cmp r3, r8
+ movcs r3, r8
+ cmp r11, r6
+ ldr r2, [sp, #0x10]
+ movcs r11, r6
+ subs r8, r3, r2
+ addmi sp, sp, #0x4c
+ sub r3, r11, r10
+ ldmmiia sp!, {r4-r11,pc}
+_020B69D0: ; 0x020B69D0
+ cmp r3, #0x0
+ addlt sp, sp, #0x4c
+ ldmltia sp!, {r4-r11,pc}
+_020B69DC: ; 0x020B69DC
+ ldr r2, [sp, #0x8]
+ ldr r6, [r0, #0x0]
+ cmp r2, #0x0
+ andge r2, r2, #0x7
+ strge r2, [sp, #0x8]
+ ldr r2, [sp, #0xc]
+ ldr r11, [sp, #0x8]
+ cmp r2, #0x0
+ andge r2, r2, #0x7
+ strge r2, [sp, #0xc]
+ sub r8, r11, r8, lsl #0x3
+ ldr r11, [sp, #0xc]
+ ldr r2, [sp, #0x70]
+ sub r3, r11, r3, lsl #0x3
+ str r3, [sp, #0x14]
+ ldr r3, [r7, #0x4]
+ sub r2, r2, #0x1
+ str r3, [sp, #0x28]
+ str r2, [sp, #0x48]
+ str r9, [sp, #0x38]
+ str r4, [sp, #0x34]
+ ldr r4, [r1, #0x0]
+ ldr r2, [sp, #0x14]
+ mov r3, r11
+ cmp r3, r2
+ ldr r2, [r4, #0x8]
+ ldrb r3, [r2, #0x6]
+ str r3, [sp, #0x40]
+ ldrb r2, [r0, #0xc]
+ str r2, [sp, #0x44]
+ ldr r1, [r1, #0x0]
+ ldr r1, [r1, #0x8]
+ ldrb r1, [r1, #0x0]
+ mul r1, r3, r1
+ str r1, [sp, #0x3c]
+ ldr r1, [r0, #0x10]
+ str r1, [sp, #0x20]
+ ldr r1, [r0, #0x4]
+ ldr r0, [r0, #0x8]
+ ldrb r11, [sp, #0x20]
+ ldrb r4, [sp, #0x21]
+ str r1, [sp, #0x1c]
+ str r0, [sp, #0x18]
+ addle sp, sp, #0x4c
+ ldmleia sp!, {r4-r11,pc}
+_020B6A90:
+ ldr r0, [sp, #0xc]
+ ldr r7, [sp, #0x10]
+ str r0, [sp, #0x30]
+ ldr r0, [sp, #0x8]
+ cmp r0, r8
+ mov r9, r0
+ ble _020B6AEC
+_020B6AAC:
+ ldr r2, [sp, #0x1c]
+ str r11, [sp, #0x0]
+ ldr r3, [sp, #0x18]
+ mov r0, r7
+ mov r1, r10
+ str r4, [sp, #0x4]
+ bl FUN_020B7068
+ mla r1, r0, r5, r6
+ add r0, sp, #0x24
+ str r9, [sp, #0x2c]
+ str r1, [sp, #0x24]
+ bl FUN_020B6CAC
+ sub r9, r9, #0x8
+ add r7, r7, #0x1
+ cmp r9, r8
+ bgt _020B6AAC
+_020B6AEC:
+ ldr r0, [sp, #0xc]
+ add r10, r10, #0x1
+ sub r1, r0, #0x8
+ ldr r0, [sp, #0x14]
+ str r1, [sp, #0xc]
+ cmp r1, r0
+ bgt _020B6A90
+ add sp, sp, #0x4c
+ ldmia sp!, {r4-r11,pc}
+
+ arm_func_start FUN_020B6B10
+FUN_020B6B10: ; 0x020B6B10
+ stmdb sp!, {r4-r11,lr}
+ sub sp, sp, #0x2c
+ ldr r4, [sp, #0x54]
+ ldrb r5, [r0, #0xc]
+ str r4, [sp, #0x54]
+ ldr r4, [r4, #0x0]
+ ldr r6, [r1, #0x0]
+ mov r7, r5, lsl #0x6
+ ldrb r4, [r4, #0x1]
+ mov r5, r7, asr #0x2
+ add r5, r7, r5, lsr #0x1d
+ cmp r4, #0x0
+ ldr r6, [r6, #0x8]
+ mov r9, r3
+ ldr r8, [r0, #0x4]
+ ldr r7, [r0, #0x8]
+ mov r10, r2
+ mov r5, r5, asr #0x3
+ addeq sp, sp, #0x2c
+ ldr lr, [r0, #0x0]
+ ldrb r3, [r6, #0x1]
+ ldmeqia sp!, {r4-r11,pc}
+_020B6B68: ; 0x020B6B68
+ adds r6, r10, r4
+ addmi sp, sp, #0x2c
+ ldmmiia sp!, {r4-r11,pc}
+_020B6B74: ; 0x020B6B74
+ adds r2, r9, r3
+ addmi sp, sp, #0x2c
+ ldmmiia sp!, {r4-r11,pc}
+_020B6B80: ; 0x020B6B80
+ cmp r10, #0x0
+ movle r11, #0x0
+ add r6, r6, #0x7
+ movgt r11, r10, lsr #0x3
+ cmp r9, #0x0
+ movle r12, #0x0
+ add r2, r2, #0x7
+ mov r6, r6, lsr #0x3
+ movgt r12, r9, lsr #0x3
+ cmp r6, r8
+ movcs r6, r8
+ mov r2, r2, lsr #0x3
+ cmp r2, r7
+ movcs r2, r7
+ subs r7, r6, r11
+ addmi sp, sp, #0x2c
+ sub r2, r2, r12
+ ldmmiia sp!, {r4-r11,pc}
+_020B6BC8: ; 0x020B6BC8
+ cmp r2, #0x0
+ addlt sp, sp, #0x2c
+ ldmltia sp!, {r4-r11,pc}
+_020B6BD4: ; 0x020B6BD4
+ ldr r6, [r0, #0x10]
+ cmp r10, #0x0
+ sub r8, r6, r7
+ mul r8, r5, r8
+ mla r11, r6, r12, r11
+ andge r10, r10, #0x7
+ str r8, [sp, #0x0]
+ ldr r8, [sp, #0x54]
+ mla r6, r5, r11, lr
+ ldr r12, [r8, #0x4]
+ ldr r11, [sp, #0x50]
+ cmp r9, #0x0
+ sub r8, r11, #0x1
+ andge r9, r9, #0x7
+ sub r11, r9, r2, lsl #0x3
+ str r12, [sp, #0x8]
+ str r4, [sp, #0x14]
+ str r8, [sp, #0x28]
+ str r3, [sp, #0x18]
+ ldr r3, [r1, #0x0]
+ cmp r9, r11
+ ldr r2, [r3, #0x8]
+ sub r7, r10, r7, lsl #0x3
+ ldrb r2, [r2, #0x6]
+ str r2, [sp, #0x20]
+ ldrb r0, [r0, #0xc]
+ str r0, [sp, #0x24]
+ ldr r0, [r1, #0x0]
+ ldr r0, [r0, #0x8]
+ ldrb r0, [r0, #0x0]
+ mul r0, r2, r0
+ str r0, [sp, #0x1c]
+ addle sp, sp, #0x2c
+ ldmleia sp!, {r4-r11,pc}
+_020B6C5C: ; 0x020B6C5C
+ add r4, sp, #0x4
+_020B6C60:
+ mov r8, r10
+ str r9, [sp, #0x10]
+ cmp r10, r7
+ ble _020B6C90
+_020B6C70:
+ mov r0, r4
+ str r6, [sp, #0x4]
+ str r8, [sp, #0xc]
+ bl FUN_020B6CAC
+ sub r8, r8, #0x8
+ cmp r8, r7
+ add r6, r6, r5
+ bgt _020B6C70
+_020B6C90:
+ ldr r0, [sp, #0x0]
+ sub r9, r9, #0x8
+ cmp r9, r11
+ add r6, r6, r0
+ bgt _020B6C60
+ add sp, sp, #0x2c
+ ldmia sp!, {r4-r11,pc}
+
+ arm_func_start FUN_020B6CAC
+FUN_020B6CAC: ; 0x020B6CAC
+ stmdb sp!, {r4-r11,lr}
+ sub sp, sp, #0x34
+ ldr r5, [r0, #0x8]
+ ldr r4, [r0, #0xc]
+ cmp r5, #0x0
+ strge r5, [sp, #0x0]
+ movlt r1, #0x0
+ strlt r1, [sp, #0x0]
+ ldr r1, [r0, #0x10]
+ cmp r4, #0x0
+ add r10, r5, r1
+ ldr r1, [r0, #0x14]
+ movge r2, r4
+ movlt r2, #0x0
+ cmp r10, #0x8
+ add r3, r4, r1
+ movge r10, #0x8
+ cmp r3, #0x8
+ movge r3, #0x8
+ cmp r4, #0x0
+ movgt r4, #0x0
+ cmp r5, #0x0
+ ldr r8, [r0, #0x20]
+ movgt r5, #0x0
+ rsb r1, r4, #0x0
+ mul r7, r10, r8
+ ldr r6, [r0, #0x1c]
+ rsb r4, r5, #0x0
+ mul r9, r6, r4
+ ldr r4, [r0, #0x18]
+ mov r10, r7
+ str r4, [sp, #0x8]
+ ldr r4, [sp, #0x0]
+ cmp r8, #0x4
+ mul r5, r4, r8
+ ldr r4, [sp, #0x8]
+ str r5, [sp, #0x0]
+ mla r11, r1, r4, r9
+ ldr r1, [r0, #0x4]
+ str r1, [sp, #0x4]
+ bne _020B6E24
+ ldr r1, [r0, #0x0]
+ ldr r7, [r0, #0x24]
+ add r0, r1, r2, lsl #0x2
+ str r0, [sp, #0xc]
+ add r0, r1, r3, lsl #0x2
+ ldr r1, [sp, #0xc]
+ str r0, [sp, #0x10]
+ cmp r1, r0
+ addcs sp, sp, #0x34
+ ldmcsia sp!, {r4-r11,pc}
+_020B6D78: ; 0x020B6D78
+ mov r0, #0x0
+ add r9, sp, #0x24
+ mov r4, #0xf
+ str r0, [sp, #0x1c]
+_020B6D88:
+ ldr r0, [sp, #0xc]
+ mov r1, r11, lsr #0x1f
+ ldr r5, [r0, #0x0]
+ ldr r0, [sp, #0x4]
+ rsb r2, r1, r11, lsl #0x1d
+ add r0, r0, r11, lsr #0x3
+ str r0, [sp, #0x24]
+ ldr r0, [sp, #0x1c]
+ add r1, r1, r2, ror #0x1d
+ strb r0, [sp, #0x28]
+ strb r0, [sp, #0x29]
+ mov r0, r9
+ bl FUN_020B76B0
+ ldr r8, [sp, #0x0]
+ mov r0, r8
+ cmp r0, r10
+ bhs _020B6DF8
+_020B6DCC:
+ mov r0, r9
+ mov r1, r6
+ bl FUN_020B76B0
+_020B6DD8: ; 0x020B6DD8
+ cmp r0, #0x0
+ mvnne r1, r4, lsl r8
+ addne r0, r7, r0
+ andne r1, r5, r1
+ orrne r5, r1, r0, lsl r8
+ add r8, r8, #0x4
+ cmp r8, r10
+ blo _020B6DCC
+_020B6DF8:
+ ldr r0, [sp, #0xc]
+ add r1, r0, #0x4
+ str r5, [r0, #0x0]
+ ldr r0, [sp, #0x10]
+ str r1, [sp, #0xc]
+ cmp r1, r0
+ ldr r0, [sp, #0x8]
+ add r11, r11, r0
+ blo _020B6D88
+ add sp, sp, #0x34
+ ldmia sp!, {r4-r11,pc}
+_020B6E24:
+ ldr r1, [r0, #0x0]
+ ldr r9, [r0, #0x24]
+ add r0, r1, r2, lsl #0x3
+ str r0, [sp, #0x14]
+ add r0, r1, r3, lsl #0x3
+ ldr r1, [sp, #0x14]
+ str r0, [sp, #0x18]
+ cmp r1, r0
+ addcs sp, sp, #0x34
+ ldmcsia sp!, {r4-r11,pc}
+_020B6E4C: ; 0x020B6E4C
+ mov r0, #0x0
+ mov r4, #0xff
+ str r0, [sp, #0x20]
+_020B6E58:
+ mov r1, r11, lsr #0x1f
+ rsb r0, r1, r11, lsl #0x1d
+ add r1, r1, r0, ror #0x1d
+ ldr r0, [sp, #0x14]
+ ldr r8, [r0, #0x0]
+ ldr r7, [r0, #0x4]
+ ldr r0, [sp, #0x4]
+ add r0, r0, r11, lsr #0x3
+ str r0, [sp, #0x2c]
+ ldr r0, [sp, #0x20]
+ strb r0, [sp, #0x30]
+ strb r0, [sp, #0x31]
+ add r0, sp, #0x2c
+ bl FUN_020B76B0
+_020B6E90: ; 0x020B6E90
+ ldr r0, [sp, #0x0]
+ cmp r0, r10
+ mov r5, r0
+ bhs _020B6EE8
+_020B6EA0:
+ add r0, sp, #0x2c
+ mov r1, r6
+ bl FUN_020B76B0
+_020B6EAC: ; 0x020B6EAC
+ cmp r0, #0x0
+ beq _020B6EDC
+ cmp r5, #0x20
+ mvncc r1, r4, lsl r5
+ addcc r0, r9, r0
+ andcc r1, r8, r1
+ orrcc r8, r1, r0, lsl r5
+ subcs r2, r5, #0x20
+ mvncs r1, r4, lsl r2
+ addcs r0, r9, r0
+ andcs r1, r7, r1
+ orrcs r7, r1, r0, lsl r2
+_020B6EDC:
+ add r5, r5, #0x8
+ cmp r5, r10
+ blo _020B6EA0
+_020B6EE8:
+ ldr r0, [sp, #0x14]
+ str r8, [r0, #0x0]
+ add r1, r0, #0x8
+ str r7, [r0, #0x4]
+ ldr r0, [sp, #0x18]
+ str r1, [sp, #0x14]
+ cmp r1, r0
+ ldr r0, [sp, #0x8]
+ add r11, r11, r0
+ blo _020B6E58
+ add sp, sp, #0x34
+ ldmia sp!, {r4-r11,pc}
+
+ arm_func_start FUN_020B6F18
+FUN_020B6F18: ; 0x020B6F18
+ stmdb sp!, {r4-r6,lr}
+ mov lr, r0
+ cmp r3, #0x8
+ ldr r0, [sp, #0x14]
+ bne _020B6F4C
+ ldr r4, [sp, #0x10]
+ cmp r4, #0x8
+ bne _020B6F4C
+ ldr r2, [sp, #0x18]
+ mov r1, lr
+ mov r2, r2, lsl #0x3
+ bl MIi_CpuClearFast
+ ldmia sp!, {r4-r6,pc}
+_020B6F4C:
+ ldr r4, [sp, #0x18]
+ cmp r4, #0x4
+ bne _020B6FAC
+ mov r5, r1, lsl #0x2
+ add r4, r5, r3, lsl #0x2
+ mvn r3, #0x0
+ rsb r4, r4, #0x20
+ mov r3, r3, lsr r5
+ add r1, r4, r1, lsl #0x2
+ mov r3, r3, lsl r1
+ ldr r1, [sp, #0x10]
+ add r5, lr, r2, lsl #0x2
+ add r2, r5, r1, lsl #0x2
+ and r6, r0, r3, lsr r4
+ cmp r5, r2
+ mvn r1, r3, lsr r4
+ ldmcsia sp!, {r4-r6,pc}
+_020B6F90:
+ ldr r0, [r5, #0x0]
+ and r0, r0, r1
+ orr r0, r6, r0
+ str r0, [r5], #0x4
+ cmp r5, r2
+ blo _020B6F90
+ ldmia sp!, {r4-r6,pc}
+_020B6FAC:
+ mov r12, r1, lsl #0x3
+ add r1, r12, r3, lsl #0x3
+ rsb r1, r1, #0x40
+ mvn r3, #0x0
+ cmp r1, #0x20
+ mov r5, r3, lsr r12
+ subcs r4, r1, #0x20
+ addcs r3, r12, r4
+ movcs r3, r5, lsl r3
+ movcs r3, r3, lsr r4
+ movcc r3, r5, lsl r12
+ mvn r4, #0x0
+ add r5, lr, r2, lsl #0x3
+ cmp r12, #0x20
+ mov r4, r4, lsl r1
+ subcs r12, r12, #0x20
+ addcs r1, r12, r1
+ movcs r1, r4, lsr r1
+ movcs r6, r1, lsl r12
+ movcc r6, r4, lsr r1
+ ldr r1, [sp, #0x10]
+ and lr, r0, r3
+ add r4, r5, r1, lsl #0x3
+ cmp r5, r4
+ and r12, r0, r6
+ mvn r2, r3
+ mvn r1, r6
+ ldmcsia sp!, {r4-r6,pc}
+_020B701C:
+ ldr r0, [r5, #0x0]
+ and r0, r0, r2
+ orr r0, lr, r0
+ str r0, [r5, #0x0]
+ ldr r0, [r5, #0x4]
+ and r0, r0, r1
+ orr r0, r12, r0
+ str r0, [r5, #0x4]
+ add r5, r5, #0x8
+ cmp r5, r4
+ blo _020B701C
+ ldmia sp!, {r4-r6,pc}
+
+ arm_func_start FUN_020B704C
+FUN_020B704C: ; 0x020B704C
+ ldrb r3, [r0, #0x1]
+ ldr r2, _020B7064 ; =0x020FF990
+ ldrb r1, [r0, #0x0]
+ add r0, r2, r3, lsl #0x4
+ ldr r0, [r0, r1, lsl #0x2]
+ bx lr
+ .balign 4
+_020B7064: .word 0x020FF990
+
+ arm_func_start FUN_020B7068
+FUN_020B7068: ; 0x020B7068
+ stmdb sp!, {r4-r11,lr}
+ sub sp, sp, #0x4
+ ldr fp, _020B7164 ; =0x020FF970
+ mov r9, #0x0
+ mov r10, #0x3
+ mvn r7, #0x0
+_020B7080:
+ ldr r4, [sp, #0x2c]
+ ldr r6, [sp, #0x28]
+ and r12, r3, r7, lsl r4
+ cmp r12, r1
+ mov r8, r7, lsl r6
+ mov r5, r7, lsl r4
+ and lr, r2, r7, lsl r6
+ bhi _020B70D0
+ mla r9, r2, r12, r9
+ cmp lr, r0
+ movhi r2, lr
+ subhi r1, r1, r12
+ subhi r3, r3, r12
+ bhi _020B7118
+ sub r3, r3, r12
+ mla r9, lr, r3, r9
+ sub r0, r0, lr
+ sub r1, r1, r12
+ sub r2, r2, lr
+ b _020B7118
+_020B70D0:
+ cmp lr, r0
+ mlals r9, lr, r12, r9
+ mvn r3, r5
+ movls r3, r12
+ subls r0, r0, lr
+ subls r2, r2, lr
+ bls _020B7118
+ and r2, r1, r5
+ mla r5, lr, r2, r9
+ and r2, r0, r8
+ and r1, r1, r3
+ add r2, r5, r2, lsl r4
+ mvn r3, r8
+ add r1, r2, r1, lsl r6
+ and r0, r0, r3
+ add sp, sp, #0x4
+ add r0, r1, r0
+ ldmia sp!, {r4-r11,pc}
+_020B7118:
+ cmp r2, #0x8
+ movlt r4, r2
+ movge r5, r10
+ clzlt r4, r4
+ rsblt r5, r4, #0x1f
+ cmp r3, #0x8
+ movge r4, r10
+ movlt r4, r3
+ clzlt r4, r4
+ rsblt r4, r4, #0x1f
+ add r4, r11, r4, lsl #0x3
+ add r6, r4, r5, lsl #0x1
+ ldrb r5, [r4, r5, lsl #0x1]
+ ldrb r4, [r6, #0x1]
+ str r5, [sp, #0x28]
+ str r4, [sp, #0x2c]
+ b _020B7080
+_020B715C: ; 0x020B715C
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r11,pc}
+ .balign 4
+_020B7164: .word 0x020FF970
+
+ arm_func_start FUN_020B7168
+FUN_020B7168: ; 0x020B7168
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0xc
+ ldr r12, [sp, #0x28]
+ mov r7, r0
+ mov r6, r1
+ mov r5, r2
+ mov r4, r3
+ ands r0, r12, #0x100
+ beq _020B71AC
+ ldr r0, [r7, #0x4]
+ ldr r1, [r7, #0xc]
+ ldr r2, [sp, #0x2c]
+ bl FUN_020B5B54
+ ldr r1, [sp, #0x20]
+ sub r0, r1, r0
+ add r5, r5, r0
+ b _020B71E4
+_020B71AC:
+ ands r0, r12, #0x80
+ beq _020B71E4
+ ldr r0, [r7, #0x4]
+ ldr r1, [r7, #0xc]
+ ldr r2, [sp, #0x2c]
+ bl FUN_020B5B54
+ ldr r2, [sp, #0x20]
+ add r1, r0, #0x1
+ add r0, r2, #0x1
+ add r0, r0, r0, lsr #0x1f
+ mov r2, r0, asr #0x1
+ add r0, r1, r1, lsr #0x1f
+ sub r0, r2, r0, asr #0x1
+ add r5, r5, r0
+_020B71E4:
+ ldr r1, [sp, #0x24]
+ ldr r0, [sp, #0x28]
+ str r1, [sp, #0x0]
+ ldr r12, [sp, #0x2c]
+ str r0, [sp, #0x4]
+ mov r0, r7
+ mov r1, r6
+ mov r2, r5
+ mov r3, r4
+ str r12, [sp, #0x8]
+ bl FUN_020B72C4
+ add sp, sp, #0xc
+ ldmia sp!, {r4-r7,pc}
+
+ arm_func_start FUN_020B7218
+FUN_020B7218: ; 0x020B7218
+ stmdb sp!, {r4-r8,lr}
+ sub sp, sp, #0x18
+ ldr r4, [sp, #0x34]
+ mov r8, r0
+ str r4, [sp, #0x0]
+ mov r7, r1
+ mov r6, r2
+ mov r5, r3
+ ldr r4, [sp, #0x30]
+ ldr r1, [r8, #0x4]
+ ldr r2, [r8, #0x8]
+ ldr r3, [r8, #0xc]
+ add r0, sp, #0xc
+ bl FUN_020B5ABC
+ ands r0, r4, #0x10
+ ldrne r0, [sp, #0xc]
+ addne r0, r0, #0x1
+ addne r0, r0, r0, lsr #0x1f
+ subne r7, r7, r0, asr #0x1
+ bne _020B7274
+ ands r0, r4, #0x20
+ ldrne r0, [sp, #0xc]
+ subne r7, r7, r0
+_020B7274:
+ ands r0, r4, #0x2
+ ldrne r0, [sp, #0x10]
+ addne r0, r0, #0x1
+ addne r0, r0, r0, lsr #0x1f
+ subne r6, r6, r0, asr #0x1
+ bne _020B7298
+ ands r0, r4, #0x4
+ ldrne r0, [sp, #0x10]
+ subne r6, r6, r0
+_020B7298:
+ str r5, [sp, #0x0]
+ ldr r0, [sp, #0x34]
+ str r4, [sp, #0x4]
+ str r0, [sp, #0x8]
+ ldr r3, [sp, #0xc]
+ mov r0, r8
+ mov r1, r7
+ mov r2, r6
+ bl FUN_020B72C4
+ add sp, sp, #0x18
+ ldmia sp!, {r4-r8,pc}
+
+ arm_func_start FUN_020B72C4
+FUN_020B72C4: ; 0x020B72C4
+ stmdb sp!, {r4-r11,lr}
+ sub sp, sp, #0x14
+ mov r10, r0
+ ldr r4, [r10, #0x4]
+ ldr r0, [sp, #0x40]
+ ldr r4, [r4, #0x0]
+ ldr r5, [r10, #0xc]
+ ldrsb r4, [r4, #0x1]
+ cmp r0, #0x0
+ mov r9, r1
+ str r0, [sp, #0xc]
+ ldr r0, [sp, #0x38]
+ mov r8, r2
+ str r0, [sp, #0x38]
+ mov r7, r3
+ add r6, r5, r4
+ addeq sp, sp, #0x14
+ ldmeqia sp!, {r4-r11,pc}
+_020B730C: ; 0x020B730C
+ add r0, r7, #0x1
+ ldr r1, [sp, #0x3c]
+ add r0, r0, r0, lsr #0x1f
+ mov r0, r0, asr #0x1
+ and r5, r1, #0x800
+ and r11, r1, #0x400
+ str r0, [sp, #0x8]
+ mov r4, #0x0
+_020B732C:
+ mov r1, r9
+ cmp r5, #0x0
+ beq _020B7358
+ ldr r0, [r10, #0x4]
+ ldr r1, [r10, #0x8]
+ ldr r2, [sp, #0xc]
+ mov r3, r4
+ bl FUN_020B5BC8
+_020B734C: ; 0x020B734C
+ sub r0, r7, r0
+ add r1, r9, r0
+ b _020B7388
+_020B7358:
+ cmp r11, #0x0
+ beq _020B7388
+ ldr r0, [r10, #0x4]
+ ldr r1, [r10, #0x8]
+ ldr r2, [sp, #0xc]
+ mov r3, r4
+ bl FUN_020B5BC8
+ add r0, r0, #0x1
+ add r1, r0, r0, lsr #0x1f
+ ldr r0, [sp, #0x8]
+ sub r0, r0, r1, asr #0x1
+ add r1, r9, r0
+_020B7388:
+ ldr r2, [sp, #0xc]
+ add r3, sp, #0xc
+ str r2, [sp, #0x0]
+ str r3, [sp, #0x4]
+ ldr r3, [sp, #0x38]
+ mov r0, r10
+ mov r2, r8
+ bl FUN_020B73C0
+ ldr r0, [sp, #0xc]
+ add r8, r8, r6
+ cmp r0, #0x0
+ bne _020B732C
+ add sp, sp, #0x14
+ ldmia sp!, {r4-r11,pc}
+
+ arm_func_start FUN_020B73C0
+FUN_020B73C0: ; 0x020B73C0
+ stmdb sp!, {r4-r11,lr}
+ sub sp, sp, #0xc
+ mov r10, r0
+ ldr r6, [r10, #0x8]
+ ldr r5, [r10, #0x4]
+ ldr r4, [sp, #0x30]
+ add r0, sp, #0x8
+ str r4, [sp, #0x8]
+ ldr r4, [r5, #0x4]
+ mov r9, r1
+ mov r8, r2
+ mov r7, r3
+ blx r4
+ cmp r0, #0x0
+ beq _020B743C
+ add r11, sp, #0x8
+_020B7400:
+ cmp r0, #0xa
+ beq _020B743C
+ str r7, [sp, #0x0]
+ str r0, [sp, #0x4]
+ ldr r0, [r10, #0x0]
+ mov r1, r5
+ mov r2, r9
+ mov r3, r8
+ bl FUN_020B63CC
+ add r1, r9, r0
+ mov r0, r11
+ add r9, r1, r6
+ blx r4
+ cmp r0, #0x0
+ bne _020B7400
+_020B743C:
+ ldr r1, [sp, #0x34]
+ cmp r1, #0x0
+ addeq sp, sp, #0xc
+ ldmeqia sp!, {r4-r11,pc}
+_020B744C: ; 0x020B744C
+ cmp r0, #0xa
+ ldreq r1, [sp, #0x8]
+ ldr r0, [sp, #0x34]
+ movne r1, #0x0
+ str r1, [r0, #0x0]
+ add sp, sp, #0xc
+ ldmia sp!, {r4-r11,pc}
+
+ arm_func_start FUN_020B7468
+FUN_020B7468: ; 0x020B7468
+ stmdb sp!, {r4-r6,lr}
+ ldrh r2, [r0, #0xc]
+ ldrh r3, [r0, #0xe]
+ mov r1, #0x0
+ add r2, r0, r2
+ cmp r3, #0x0
+ ldmleia sp!, {r4-r6,pc}
+_020B7484: ; 0x020B7484
+ ldr r3, _020B7548 ; =0x46494E46
+ ldr ip, _020B754C ; =0x43574448
+ ldr r4, _020B7550 ; =0x434D4150
+ ldr lr, _020B7554 ; =0x43474C50
+_020B7494:
+ ldr r5, [r2, #0x0]
+ cmp r5, r4
+ bhi _020B74B0
+ cmp r5, r4
+ bhs _020B7518
+ cmp r5, lr
+ b _020B752C
+_020B74B0:
+ cmp r5, r12
+ bhi _020B74C4
+ cmp r5, r12
+ beq _020B7500
+ b _020B752C
+_020B74C4:
+ cmp r5, r3
+ bne _020B752C
+ add r6, r2, #0x8
+ ldr r5, [r6, #0x8]
+ add r5, r5, r0
+ str r5, [r6, #0x8]
+ ldr r5, [r6, #0xc]
+ cmp r5, #0x0
+ addne r5, r5, r0
+ strne r5, [r6, #0xc]
+ ldr r5, [r6, #0x10]
+ cmp r5, #0x0
+ addne r5, r5, r0
+ strne r5, [r6, #0x10]
+ b _020B752C
+_020B7500:
+ add r6, r2, #0x8
+ ldr r5, [r6, #0x4]
+ cmp r5, #0x0
+ addne r5, r5, r0
+ strne r5, [r6, #0x4]
+ b _020B752C
+_020B7518:
+ add r6, r2, #0x8
+ ldr r5, [r6, #0x8]
+ cmp r5, #0x0
+ addne r5, r5, r0
+ strne r5, [r6, #0x8]
+_020B752C:
+ ldrh r5, [r0, #0xe]
+ ldr r6, [r2, #0x4]
+ add r1, r1, #0x1
+ cmp r1, r5
+ add r2, r2, r6
+ blt _020B7494
+ ldmia sp!, {r4-r6,pc}
+ .balign 4
+_020B7548: .word 0x46494E46
+_020B754C: .word 0x43574448
+_020B7550: .word 0x434D4150
+_020B7554: .word 0x43474C50
+
+ arm_func_start FUN_020B7558
+FUN_020B7558: ; 0x020B7558
+ stmdb sp!, {r4-r6,lr}
+ movs r6, r0
+ mov r5, r1
+ beq _020B75C8
+ cmp r6, #0x0
+ beq _020B7584
+ ldr r1, [r6, #0x0]
+ ldr r0, _020B76A8 ; =0x4E465452
+ cmp r1, r0
+ moveq r0, #0x1
+ beq _020B7588
+_020B7584:
+ mov r0, #0x0
+_020B7588:
+ cmp r0, #0x0
+ movne r0, #0x1
+ moveq r0, #0x0
+ cmp r0, #0x0
+ beq _020B75CC
+ cmp r6, #0x0
+ beq _020B75B4
+ ldrh r0, [r6, #0x6]
+ cmp r0, #0x100
+ movcs r0, #0x1
+ bhs _020B75B8
+_020B75B4:
+ mov r0, #0x0
+_020B75B8:
+ cmp r0, #0x0
+ movne r0, #0x1
+ moveq r0, #0x0
+ b _020B75CC
+_020B75C8:
+ mov r0, #0x0
+_020B75CC:
+ cmp r0, #0x0
+ movne r4, #0x0
+ bne _020B7654
+ cmp r6, #0x0
+ beq _020B7640
+ cmp r6, #0x0
+ beq _020B75FC
+ ldr r1, [r6, #0x0]
+ ldr r0, _020B76A8 ; =0x4E465452
+ cmp r1, r0
+ moveq r0, #0x1
+ beq _020B7600
+_020B75FC:
+ mov r0, #0x0
+_020B7600:
+ cmp r0, #0x0
+ movne r0, #0x1
+ moveq r0, #0x0
+ cmp r0, #0x0
+ beq _020B7644
+ cmp r6, #0x0
+ beq _020B762C
+ ldrh r0, [r6, #0x6]
+ cmp r0, #0x1
+ movcs r0, #0x1
+ bhs _020B7630
+_020B762C:
+ mov r0, #0x0
+_020B7630:
+ cmp r0, #0x0
+ movne r0, #0x1
+ moveq r0, #0x0
+ b _020B7644
+_020B7640:
+ mov r0, #0x0
+_020B7644:
+ cmp r0, #0x0
+ movne r4, #0x1
+ bne _020B7654
+ bl OS_Terminate
+_020B7654:
+ mov r0, r6
+ bl FUN_020B7468
+ ldr r1, _020B76AC ; =0x46494E46
+ mov r0, r6
+ bl FUN_020B01F8
+_020B7668: ; 0x020B7668
+ cmp r0, #0x0
+ moveq r0, #0x0
+ streq r0, [r5, #0x0]
+ ldmeqia sp!, {r4-r6,pc}
+_020B7678: ; 0x020B7678
+ add r0, r0, #0x8
+ str r0, [r5, #0x0]
+ cmp r4, #0x0
+ beq _020B76A0
+ ldr r2, [r5, #0x0]
+ mov r1, #0x0
+ ldrsb r0, [r2, #0x6]
+ strb r0, [r2, #0x7]
+ ldr r0, [r5, #0x0]
+ strb r1, [r0, #0x6]
+_020B76A0:
+ add r0, r4, #0x1
+ ldmia sp!, {r4-r6,pc}
+ .balign 4
+_020B76A8: .word 0x4E465452
+_020B76AC: .word 0x46494E46
+
+ arm_func_start FUN_020B76B0
+FUN_020B76B0:
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ ldrsb r2, [r0, #0x4]
+ ldrb r12, [r0, #0x5]
+ mov r4, r1
+ cmp r2, r4
+ subge r1, r2, r4
+ movge r5, r12, lsr r1
+ strgeb r1, [r0, #0x4]
+ bge _020B7704
+ ldr r3, [r0, #0x0]
+ sub r1, r4, r2
+ add r2, r3, #0x1
+ str r2, [r0, #0x0]
+ ldrb r2, [r3, #0x0]
+ mov r5, r12, lsl r1
+ strb r2, [r0, #0x5]
+ mov r2, #0x8
+ strb r2, [r0, #0x4]
+ bl FUN_020B76B0
+ orr r5, r0, r5
+_020B7704:
+ rsb r0, r4, #0x8
+ mov r1, #0xff
+ and r0, r5, r1, asr r0
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,pc}
+
+ arm_func_start FUN_020B7718
+FUN_020B7718: ; 0x020B7718
+ ldr r1, [r0, #0x0]
+ ldrh r2, [r1], #0x2
+ str r1, [r0, #0x0]
+ mov r0, r2
+ bx lr
+
+ arm_func_start FUN_020B772C
+FUN_020B772C: ; 0x020B772C
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0x4
+ mov r6, r0
+ ldrb r0, [r6, #0x9]
+ mov r5, #0x0
+ cmp r0, #0x0
+ addls sp, sp, #0x4
+ ldmlsia sp!, {r4-r7,pc}
+_020B774C: ; 0x020B774C
+ add r4, r6, #0x8
+_020B7750:
+ ldrh r0, [r6, #0xe]
+ ldrh r1, [r4, r0]
+ add r0, r4, r0
+ mla r0, r1, r5, r0
+ ldr r0, [r0, #0x4]
+ add r7, r6, r0
+ mov r0, r7
+ bl FUN_020B79A4
+ mov r0, r7
+ bl FUN_020B780C
+ ldrb r0, [r6, #0x9]
+ add r5, r5, #0x1
+ cmp r5, r0
+ blo _020B7750
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r7,pc}
+
+ arm_func_start FUN_020B7790
+FUN_020B7790: ; 0x020B7790
+ stmdb sp!, {r4-r9,lr}
+ sub sp, sp, #0x4
+ mov r8, r0
+ ldrb r0, [r8, #0x9]
+ mov r7, r1
+ mov r5, #0x1
+ cmp r0, #0x0
+ mov r6, #0x0
+ bls _020B7800
+ add r4, r8, #0x8
+_020B77B8:
+ ldrh r0, [r8, #0xe]
+ mov r1, r7
+ ldrh r2, [r4, r0]
+ add r0, r4, r0
+ mla r0, r2, r6, r0
+ ldr r0, [r0, #0x4]
+ add r9, r8, r0
+ mov r0, r9
+ bl FUN_020B7A04
+ and r5, r5, r0
+ mov r0, r9
+ mov r1, r7
+ bl FUN_020B7864
+ ldrb r1, [r8, #0x9]
+ add r6, r6, #0x1
+ and r5, r5, r0
+ cmp r6, r1
+ blo _020B77B8
+_020B7800:
+ mov r0, r5
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r9,pc}
+
+ arm_func_start FUN_020B780C
+FUN_020B780C: ; 0x020B780C
+ ldr r2, [r0, #0x8]
+ mov r1, #0x0
+ add r2, r0, r2
+ ldrh r0, [r2, #0x2]
+ add r12, r2, r0
+ ldrb r0, [r12, #0x1]
+ cmp r0, #0x0
+ bxls lr
+_020B782C:
+ ldrh r2, [r12, #0x6]
+ ldrh r0, [r12, r2]
+ add r2, r12, r2
+ add r2, r2, #0x4
+ mla r3, r0, r1, r2
+ ldrb r0, [r3, #0x3]
+ add r1, r1, #0x1
+ ands r2, r0, #0x1
+ bicne r0, r0, #0x1
+ strneb r0, [r3, #0x3]
+ ldrb r0, [r12, #0x1]
+ cmp r1, r0
+ blo _020B782C
+ bx lr
+
+ arm_func_start FUN_020B7864
+FUN_020B7864: ; 0x020B7864
+ stmdb sp!, {r4-r10,lr}
+ ldr r2, [r0, #0x8]
+ mov r10, r1
+ add r9, r0, r2
+ ldrh r0, [r9, #0x2]
+ mov r6, #0x1
+ mov r7, #0x0
+ add r8, r9, r0
+ ldrb r0, [r8, #0x1]
+ cmp r0, #0x0
+ bls _020B7908
+ mov r5, r7
+ mov r4, r7
+_020B7898:
+ ldrh r1, [r8, #0x6]
+ ldrh r0, [r10, #0x34]
+ add r2, r8, r1
+ ldrh r1, [r2, #0x2]
+ add r0, r10, r0
+ add r1, r2, r1
+ add r1, r1, r5
+ bl FUN_020BC2A0
+ movs r3, r0
+ beq _020B78F0
+ ldrh r1, [r8, #0x6]
+ ldrh r0, [r8, r1]
+ add r1, r8, r1
+ add r1, r1, #0x4
+ mla r1, r0, r7, r1
+ ldrb r0, [r1, #0x3]
+ ands r0, r0, #0x1
+ bne _020B78F4
+ mov r0, r9
+ mov r2, r10
+ bl FUN_020B7910
+_020B78EC: ; 0x020B78EC
+ b _020B78F4
+_020B78F0:
+ mov r6, r4
+_020B78F4:
+ ldrb r0, [r8, #0x1]
+ add r7, r7, #0x1
+ add r5, r5, #0x10
+ cmp r7, r0
+ blo _020B7898
+_020B7908:
+ mov r0, r6
+ ldmia sp!, {r4-r10,pc}
+
+ arm_func_start FUN_020B7910
+FUN_020B7910:
+ stmdb sp!, {r4-r6,lr}
+ ldrh r5, [r1, #0x0]
+ ldr r2, [r2, #0x2c]
+ ldrh r4, [r3, #0x2]
+ mov r2, r2, lsl #0x10
+ add r12, r0, r5
+ mov r5, r2, lsr #0x10
+ ands r2, r4, #0x1
+ ldrh r4, [r3, #0x0]
+ moveq r3, r5, lsl #0xf
+ moveq r5, r3, lsr #0x10
+ moveq r2, r4, lsl #0xf
+ moveq r4, r2, lsr #0x10
+ ldrb r3, [r1, #0x2]
+ mov r2, #0x0
+ cmp r3, #0x0
+ bls _020B7994
+ add r3, r4, r5
+ mov r3, r3, lsl #0x10
+ add r6, r0, #0x4
+ mov r4, r3, lsr #0x10
+_020B7964:
+ ldrh r5, [r0, #0xa]
+ ldrb r3, [r12, r2]
+ add r2, r2, #0x1
+ ldrh lr, [r6, r5]
+ add r5, r6, r5
+ mla r3, lr, r3, r5
+ ldr r3, [r3, #0x4]
+ add r3, r0, r3
+ strh r4, [r3, #0x1c]
+ ldrb r3, [r1, #0x2]
+ cmp r2, r3
+ blo _020B7964
+_020B7994:
+ ldrb r0, [r1, #0x3]
+ orr r0, r0, #0x1
+ strb r0, [r1, #0x3]
+ ldmia sp!, {r4-r6,pc}
+
+ arm_func_start FUN_020B79A4
+FUN_020B79A4: ; 0x020B79A4
+ stmdb sp!, {r4-r6,lr}
+ ldr r2, [r0, #0x8]
+ mov r4, #0x0
+ ldrh r1, [r0, r2]
+ add r6, r0, r2
+ add r5, r6, r1
+ ldrb r0, [r5, #0x1]
+ cmp r0, #0x0
+ ldmlsia sp!, {r4-r6,pc}
+_020B79C8:
+ ldrh r1, [r5, #0x6]
+ ldrh r0, [r5, r1]
+ add r1, r5, r1
+ add r1, r1, #0x4
+ mla r1, r0, r4, r1
+ ldrb r0, [r1, #0x3]
+ ands r0, r0, #0x1
+ beq _020B79F0
+ mov r0, r6
+ bl FUN_020B7AB8
+_020B79F0:
+ ldrb r0, [r5, #0x1]
+ add r4, r4, #0x1
+ cmp r4, r0
+ blo _020B79C8
+ ldmia sp!, {r4-r6,pc}
+
+ arm_func_start FUN_020B7A04
+FUN_020B7A04: ; 0x020B7A04
+ stmdb sp!, {r4-r11,lr}
+ sub sp, sp, #0x4
+ ldr r2, [r0, #0x8]
+ mov r10, r1
+ ldrh r1, [r0, r2]
+ add r9, r0, r2
+ mov r11, #0x1
+ add r8, r9, r1
+ ldrb r0, [r8, #0x1]
+ mov r7, #0x0
+ cmp r0, #0x0
+ bls _020B7AAC
+ mov r6, r7
+ mov r4, r7
+ add r5, r10, #0x3c
+_020B7A40:
+ ldrh r1, [r8, #0x6]
+ mov r0, r5
+ add r2, r8, r1
+ ldrh r1, [r2, #0x2]
+ add r1, r2, r1
+ add r1, r1, r6
+ bl FUN_020BC2A0
+ movs r3, r0
+ beq _020B7A94
+ ldrh r1, [r8, #0x6]
+ ldrh r0, [r8, r1]
+ add r1, r8, r1
+ add r1, r1, #0x4
+ mla r1, r0, r7, r1
+ ldrb r0, [r1, #0x3]
+ ands r0, r0, #0x1
+ bne _020B7A98
+ mov r0, r9
+ mov r2, r10
+ bl FUN_020B7B40
+_020B7A90: ; 0x020B7A90
+ b _020B7A98
+_020B7A94:
+ mov r11, r4
+_020B7A98:
+ ldrb r0, [r8, #0x1]
+ add r7, r7, #0x1
+ add r6, r6, #0x10
+ cmp r7, r0
+ blo _020B7A40
+_020B7AAC:
+ mov r0, r11
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r11,pc}
+
+ arm_func_start FUN_020B7AB8
+FUN_020B7AB8: ; 0x020B7AB8
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0x4
+ ldrh r4, [r1, #0x0]
+ ldrb r2, [r1, #0x2]
+ mov r3, #0x0
+ add r12, r0, r4
+ cmp r2, #0x0
+ bls _020B7B28
+ add r2, r0, #0x4
+ mov r5, #0x1000
+ ldr lr, _020B7B3C ; =0xC00F0000
+_020B7AE4:
+ ldrh r7, [r0, #0xa]
+ ldrb r4, [r12, r3]
+ add r3, r3, #0x1
+ ldrh r6, [r2, r7]
+ add r7, r2, r7
+ mla r4, r6, r4, r7
+ ldr r4, [r4, #0x4]
+ add r6, r0, r4
+ ldr r4, [r6, #0x14]
+ and r4, r4, lr
+ str r4, [r6, #0x14]
+ str r5, [r6, #0x24]
+ ldr r4, [r6, #0x24]
+ str r4, [r6, #0x28]
+ ldrb r4, [r1, #0x2]
+ cmp r3, r4
+ blo _020B7AE4
+_020B7B28:
+ ldrb r0, [r1, #0x3]
+ bic r0, r0, #0x1
+ strb r0, [r1, #0x3]
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r7,pc}
+ .balign 4
+_020B7B3C: .word 0xC00F0000
+
+ arm_func_start FUN_020B7B40
+FUN_020B7B40:
+ stmdb sp!, {r4-r11,lr}
+ sub sp, sp, #0xc
+ mov r11, r1
+ mov r9, r3
+ ldr r1, [r9, #0x0]
+ mov r10, r0
+ and r0, r1, #0x1c000000
+ cmp r0, #0x14000000
+ ldrh r3, [r11, #0x0]
+ ldrne r1, [r2, #0x8]
+ mov r8, #0x0
+ add r0, r10, r3
+ str r0, [sp, #0x4]
+ ldrne r0, _020B7C50 ; =0x0000FFFF
+ andne r0, r1, r0
+ strne r0, [sp, #0x0]
+ ldreq r1, [r2, #0x18]
+ ldreq r0, _020B7C50 ; =0x0000FFFF
+ andeq r0, r1, r0
+ streq r0, [sp, #0x0]
+ ldrb r0, [r11, #0x2]
+ cmp r0, #0x0
+ bls _020B7C3C
+ mov r4, #0x1000
+ add r5, r10, #0x4
+_020B7BA4:
+ ldrh r6, [r10, #0xa]
+ ldr r0, [sp, #0x4]
+ ldr r1, [r9, #0x0]
+ ldrb r2, [r0, r8]
+ ldrh r3, [r5, r6]
+ ldr r0, [sp, #0x0]
+ add r6, r5, r6
+ add r0, r1, r0
+ mla r1, r3, r2, r6
+ ldr r1, [r1, #0x4]
+ add r6, r10, r1
+ ldr r1, [r6, #0x14]
+ orr r0, r1, r0
+ str r0, [r6, #0x14]
+ ldr r3, [r9, #0x4]
+ ldr r0, _020B7C54 ; =0x000007FF
+ ldrh r1, [r6, #0x20]
+ and r2, r3, r0
+ and r7, r0, r3, lsr #0xb
+ cmp r2, r1
+ moveq r0, r4
+ beq _020B7C08
+ mov r0, r2, lsl #0xc
+ mov r1, r1, lsl #0xc
+ bl FX_Div
+_020B7C08:
+ str r0, [r6, #0x24]
+ ldrh r1, [r6, #0x22]
+ cmp r7, r1
+ moveq r0, r4
+ beq _020B7C28
+ mov r0, r7, lsl #0xc
+ mov r1, r1, lsl #0xc
+ bl FX_Div
+_020B7C28:
+ str r0, [r6, #0x28]
+ ldrb r0, [r11, #0x2]
+ add r8, r8, #0x1
+ cmp r8, r0
+ blo _020B7BA4
+_020B7C3C:
+ ldrb r0, [r11, #0x3]
+ orr r0, r0, #0x1
+ strb r0, [r11, #0x3]
+ add sp, sp, #0xc
+ ldmia sp!, {r4-r11,pc}
+ .balign 4
+_020B7C50: .word 0x0000FFFF
+_020B7C54: .word 0x000007FF
+
+ arm_func_start FUN_020B7C58
+FUN_020B7C58: ; 0x020B7C58
+ ldrh r2, [r0, #0x32]
+ mov r1, #0x0
+ bic r2, r2, #0x1
+ strh r2, [r0, #0x32]
+ ldr r2, [r0, #0x2c]
+ str r1, [r0, #0x2c]
+ mov r0, r2
+ bx lr
+
+ arm_func_start FUN_020B7C78
+FUN_020B7C78: ; 0x020B7C78
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ movs r4, r1
+ mov r5, r0
+ beq _020B7C90
+ bl GX_BeginLoadTexPltt
+_020B7C90:
+ ldrh r2, [r5, #0x30]
+ ldr r0, [r5, #0x38]
+ ldr r3, [r5, #0x2c]
+ ldr r1, _020B7CD8 ; =0x0000FFFF
+ add r0, r5, r0
+ and r1, r3, r1
+ mov r1, r1, lsl #0x3
+ mov r2, r2, lsl #0x3
+ bl GX_LoadTexPltt
+ ldrh r0, [r5, #0x32]
+ cmp r4, #0x0
+ addeq sp, sp, #0x4
+ orr r0, r0, #0x1
+ strh r0, [r5, #0x32]
+ ldmeqia sp!, {r4-r5,pc}
+_020B7CCC: ; 0x020B7CCC
+ bl GX_EndLoadTexPltt
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,pc}
+ .balign 4
+_020B7CD8: .word 0x0000FFFF
+
+ arm_func_start FUN_020B7CDC
+FUN_020B7CDC: ; 0x020B7CDC
+ str r1, [r0, #0x2c]
+ bx lr
+
+ arm_func_start FUN_020B7CE4
+FUN_020B7CE4: ; 0x020B7CE4
+ ldrh r0, [r0, #0x30]
+ mov r0, r0, lsl #0x3
+ bx lr
+
+ arm_func_start FUN_020B7CF0
+FUN_020B7CF0: ; 0x020B7CF0
+ ldrh r12, [r0, #0x10]
+ mov r3, #0x0
+ bic r12, r12, #0x1
+ strh r12, [r0, #0x10]
+ ldrh r12, [r0, #0x20]
+ bic r12, r12, #0x1
+ strh r12, [r0, #0x20]
+ ldr r12, [r0, #0x8]
+ str r12, [r1, #0x0]
+ str r3, [r0, #0x8]
+ ldr r1, [r0, #0x18]
+ str r1, [r2, #0x0]
+ str r3, [r0, #0x18]
+ bx lr
+
+ arm_func_start FUN_020B7D28
+FUN_020B7D28: ; 0x020B7D28
+ stmdb sp!, {r4-r9,lr}
+ sub sp, sp, #0x4
+ movs r8, r1
+ mov r9, r0
+ beq _020B7D40
+ bl GX_BeginLoadTex
+_020B7D40:
+ ldrh r0, [r9, #0xc]
+ movs r2, r0, lsl #0x3
+ beq _020B7D74
+ ldr r1, [r9, #0x8]
+ ldr r0, _020B7DF4 ; =0x0000FFFF
+ ldr r3, [r9, #0x14]
+ and r1, r1, r0
+ add r0, r9, r3
+ mov r1, r1, lsl #0x3
+ bl GX_LoadTex
+ ldrh r0, [r9, #0x10]
+ orr r0, r0, #0x1
+ strh r0, [r9, #0x10]
+_020B7D74:
+ ldrh r0, [r9, #0x1c]
+ movs r7, r0, lsl #0x3
+ beq _020B7DDC
+ ldr r1, [r9, #0x18]
+ ldr r0, _020B7DF4 ; =0x0000FFFF
+ ldr r3, [r9, #0x24]
+ and r4, r1, r0
+ mov r5, r4, lsl #0x3
+ ldr r6, [r9, #0x28]
+ mov r1, r5
+ mov r2, r7
+ add r0, r9, r3
+ add r6, r9, r6
+ bl GX_LoadTex
+ ldr r0, _020B7DF8 ; =0x0001FFFF
+ and r1, r5, #0x40000
+ and r0, r0, r4, lsl #0x3
+ mov r0, r0, lsr #0x1
+ add r2, r0, #0x20000
+ mov r0, r6
+ add r1, r2, r1, lsr #0x2
+ mov r2, r7, lsr #0x1
+ bl GX_LoadTex
+ ldrh r0, [r9, #0x20]
+ orr r0, r0, #0x1
+ strh r0, [r9, #0x20]
+_020B7DDC:
+ cmp r8, #0x0
+ addeq sp, sp, #0x4
+ ldmeqia sp!, {r4-r9,pc}
+_020B7DE8: ; 0x020B7DE8
+ bl GX_EndLoadTex
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r9,pc}
+ .balign 4
+_020B7DF4: .word 0x0000FFFF
+_020B7DF8: .word 0x0001FFFF
+
+ arm_func_start FUN_020B7DFC
+FUN_020B7DFC: ; 0x020B7DFC
+ cmp r1, #0x0
+ strne r1, [r0, #0x8]
+ cmp r2, #0x0
+ strne r2, [r0, #0x18]
+ bx lr
+
+ arm_func_start FUN_020B7E10
+FUN_020B7E10: ; 0x020B7E10
+ ldrh r0, [r0, #0x1c]
+ mov r0, r0, lsl #0x3
+ bx lr
+
+ arm_func_start FUN_020B7E1C
+FUN_020B7E1C: ; 0x020B7E1C
+ ldrh r0, [r0, #0xc]
+ mov r0, r0, lsl #0x3
+ bx lr
+
+ arm_func_start FUN_020B7E28
+FUN_020B7E28: ; 0x020B7E28
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ mov r5, r0
+ add r0, r5, #0x8
+ mov r4, r1
+ bl FUN_020B7E88
+_020B7E40: ; 0x020B7E40
+ cmp r0, #0x0
+ bne _020B7E74
+ mov r1, r4
+ add r0, r5, #0x10
+ bl FUN_020B7E88
+_020B7E54: ; 0x020B7E54
+ cmp r0, #0x0
+ bne _020B7E74
+ mov r1, r4
+ add r0, r5, #0x18
+ bl FUN_020B7E88
+_020B7E68: ; 0x020B7E68
+ cmp r0, #0x0
+ addeq sp, sp, #0x4
+ ldmeqia sp!, {r4-r5,pc}
+_020B7E74:
+ ldr r0, [r5, #0x0]
+ orr r0, r0, #0x10
+ str r0, [r5, #0x0]
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,pc}
+
+ arm_func_start FUN_020B7E88
+FUN_020B7E88:
+ ldr r2, [r0, #0x0]
+ cmp r2, #0x0
+ moveq r0, #0x0
+ bxeq lr
+ cmp r2, r1
+ bne _020B7EB8
+ ldr r3, [r2, #0x10]
+ mov r2, #0x0
+ str r3, [r0, #0x0]
+ str r2, [r1, #0x10]
+ mov r0, #0x1
+ bx lr
+_020B7EB8:
+ ldr r3, [r2, #0x10]
+ cmp r3, #0x0
+ beq _020B7EF4
+_020B7EC4:
+ cmp r3, r1
+ bne _020B7EE4
+ ldr r1, [r3, #0x10]
+ mov r0, #0x0
+ str r1, [r2, #0x10]
+ str r0, [r3, #0x10]
+ mov r0, #0x1
+ bx lr
+_020B7EE4:
+ mov r2, r3
+ ldr r3, [r3, #0x10]
+ cmp r3, #0x0
+ bne _020B7EC4
+_020B7EF4:
+ mov r0, #0x0
+ bx lr
+
+ arm_func_start FUN_020B7EFC
+FUN_020B7EFC: ; 0x020B7EFC
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ mov r4, r1
+ ldr r2, [r4, #0x8]
+ mov r5, r0
+ ldrb r0, [r2, #0x0]
+ cmp r0, #0x4a
+ beq _020B7F50
+ cmp r0, #0x4d
+ beq _020B7F34
+ cmp r0, #0x56
+ beq _020B7F6C
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,pc}
+_020B7F34:
+ add r0, r5, #0x3c
+ bl FUN_020B7F88
+ mov r1, r4
+ add r0, r5, #0x8
+ bl FUN_020B7FF8
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,pc}
+_020B7F50:
+ add r0, r5, #0x44
+ bl FUN_020B7F88
+ mov r1, r4
+ add r0, r5, #0x10
+ bl FUN_020B7FF8
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,pc}
+_020B7F6C:
+ add r0, r5, #0x4c
+ bl FUN_020B7F88
+ mov r1, r4
+ add r0, r5, #0x18
+ bl FUN_020B7FF8
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,pc}
+
+ arm_func_start FUN_020B7F88
+FUN_020B7F88: ; 0x020B7F88
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ cmp r1, #0x0
+ addeq sp, sp, #0x4
+ ldmeqia sp!, {r4-r5,pc}
+_020B7F9C: ; 0x020B7F9C
+ mov r3, #0x1
+ mov r4, #0x0
+_020B7FA4:
+ ldrb r2, [r1, #0x19]
+ mov r5, r4
+ cmp r2, #0x0
+ ble _020B7FE4
+_020B7FB4:
+ add r2, r1, r5, lsl #0x1
+ ldrh r2, [r2, #0x1a]
+ ands r2, r2, #0x100
+ movne lr, r5, asr #0x5
+ andne r2, r5, #0x1f
+ ldrne r12, [r0, lr, lsl #0x2]
+ add r5, r5, #0x1
+ orrne r2, r12, r3, lsl r2
+ strne r2, [r0, lr, lsl #0x2]
+ ldrb r2, [r1, #0x19]
+ cmp r5, r2
+ blt _020B7FB4
+_020B7FE4:
+ ldr r1, [r1, #0x10]
+ cmp r1, #0x0
+ bne _020B7FA4
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,pc}
+
+ arm_func_start FUN_020B7FF8
+FUN_020B7FF8: ; 0x020B7FF8
+ ldr r12, [r0, #0x0]
+ cmp r12, #0x0
+ streq r1, [r0, #0x0]
+ bxeq lr
+ ldr r3, [r12, #0x10]
+ cmp r3, #0x0
+ bne _020B8058
+ ldrb r3, [r12, #0x18]
+ ldrb r2, [r1, #0x18]
+ cmp r3, r2
+ bls _020B8050
+ ldr r2, [r1, #0x10]
+ mov r3, r1
+ cmp r2, #0x0
+ beq _020B8044
+_020B8034:
+ ldr r3, [r3, #0x10]
+ ldr r2, [r3, #0x10]
+ cmp r2, #0x0
+ bne _020B8034
+_020B8044:
+ str r12, [r3, #0x10]
+ str r1, [r0, #0x0]
+ bx lr
+_020B8050:
+ str r1, [r12, #0x10]
+ bx lr
+_020B8058:
+ cmp r3, #0x0
+ beq _020B80AC
+ ldrb r2, [r1, #0x18]
+_020B8064:
+ ldrb r0, [r3, #0x18]
+ cmp r0, r2
+ blo _020B809C
+ ldr r0, [r1, #0x10]
+ mov r2, r1
+ cmp r0, #0x0
+ beq _020B8090
+_020B8080:
+ ldr r2, [r2, #0x10]
+ ldr r0, [r2, #0x10]
+ cmp r0, #0x0
+ bne _020B8080
+_020B8090:
+ str r1, [r12, #0x10]
+ str r3, [r2, #0x10]
+ bx lr
+_020B809C:
+ mov r12, r3
+ ldr r3, [r3, #0x10]
+ cmp r3, #0x0
+ bne _020B8064
+_020B80AC:
+ str r1, [r12, #0x10]
+ bx lr
+
+ arm_func_start FUN_020B80B4
+FUN_020B80B4: ; 0x020B80B4
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ mov r5, r0
+ mov r4, r1
+ mov r1, r5
+ mov r0, #0x0
+ mov r2, #0x54
+ bl MIi_CpuClear32
+ ldr r0, _020B8104 ; =0x021065B4
+ ldr r1, _020B8108 ; =0x021065B0
+ ldr r2, [r0, #0x0]
+ ldr r0, _020B810C ; =0x021065AC
+ str r2, [r5, #0xc]
+ ldr r1, [r1, #0x0]
+ str r1, [r5, #0x14]
+ ldr r0, [r0, #0x0]
+ str r0, [r5, #0x1c]
+ str r4, [r5, #0x4]
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,pc}
+ .balign 4
+_020B8104: .word 0x021065B4
+_020B8108: .word 0x021065B0
+_020B810C: .word 0x021065AC
+
+ arm_func_start FUN_020B8110
+FUN_020B8110: ; 0x020B8110
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0x4
+ mov r12, #0x0
+ str r12, [r0, #0x0]
+ str r1, [r0, #0x8]
+ str r12, [r0, #0x10]
+ mov r4, #0x7f
+ strb r4, [r0, #0x18]
+ mov r4, #0x1000
+ str r4, [r0, #0x4]
+ ldr lr, _020B81A4 ; =0x02106594
+ str r3, [r0, #0x14]
+ ldr r6, [lr, #0x0]
+ cmp r6, #0x0
+ addls sp, sp, #0x4
+ ldmlsia sp!, {r4-r7,pc}
+_020B8150: ; 0x020B8150
+ ldrb r7, [r1, #0x0]
+ ldr r4, _020B81A8 ; =0x021065B8
+_020B8158:
+ ldrb r3, [r4, r12, lsl #0x3]
+ mov r5, r12, lsl #0x3
+ cmp r7, r3
+ bne _020B8190
+ add r3, r4, r5
+ ldrh lr, [r1, #0x2]
+ ldrh r3, [r3, #0x2]
+ cmp lr, r3
+ bne _020B8190
+ ldr r3, _020B81AC ; =0x021065BC
+ ldr r3, [r3, r5]
+ blx r3
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r7,pc}
+_020B8190:
+ add r12, r12, #0x1
+ cmp r12, r6
+ blo _020B8158
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r7,pc}
+ .balign 4
+_020B81A4: .word 0x02106594
+_020B81A8: .word 0x021065B8
+_020B81AC: .word 0x021065BC
+
+ arm_func_start FUN_020B81B0
+FUN_020B81B0: ; 0x020B81B0
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x4a
+ beq _020B81E4
+ cmp r0, #0x4d
+ beq _020B81D0
+ cmp r0, #0x56
+ beq _020B81E4
+ b _020B81F8
+_020B81D0:
+ ldrb r0, [r1, #0x18]
+ mov r0, r0, lsl #0x1
+ add r0, r0, #0x1c
+ bic r0, r0, #0x3
+ bx lr
+_020B81E4:
+ ldrb r0, [r1, #0x17]
+ mov r0, r0, lsl #0x1
+ add r0, r0, #0x1c
+ bic r0, r0, #0x3
+ bx lr
+_020B81F8:
+ mov r0, #0x0
+ bx lr
+
+ arm_func_start FUN_020B8200
+FUN_020B8200: ; 0x020B8200
+ cmp r0, #0x0
+ ldrne ip, _020B8260 ; =0x021CED18
+ ldrne r12, [r12, #0xa0]
+ andne r12, r12, #0xff
+ strne r12, [r0, #0x0]
+ cmp r1, #0x0
+ ldrne r0, _020B8260 ; =0x021CED18
+ ldrne r0, [r0, #0xa0]
+ movne r0, r0, lsr #0x8
+ andne r0, r0, #0xff
+ strne r0, [r1, #0x0]
+ cmp r2, #0x0
+ ldrne r0, _020B8260 ; =0x021CED18
+ ldrne r0, [r0, #0xa0]
+ movne r0, r0, lsr #0x10
+ andne r0, r0, #0xff
+ strne r0, [r2, #0x0]
+ cmp r3, #0x0
+ ldrne r0, _020B8260 ; =0x021CED18
+ ldrne r0, [r0, #0xa0]
+ movne r0, r0, lsr #0x18
+ andne r0, r0, #0xff
+ strne r0, [r3, #0x0]
+ bx lr
+ .balign 4
+_020B8260: .word 0x021CED18
+
+ arm_func_start FUN_020B8264
+FUN_020B8264: ; 0x020B8264
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldr r0, _020B829C ; =0x021CED18
+ ldr r0, [r0, #0xfc]
+ ands r0, r0, #0x80
+ bne _020B8290
+ bl FUN_020B82E4
+ ldr r0, _020B829C ; =0x021CED18
+ ldr r1, [r0, #0xfc]
+ orr r1, r1, #0x80
+ str r1, [r0, #0xfc]
+_020B8290:
+ ldr r0, _020B82A0 ; =0x021CEE78
+ add sp, sp, #0x4
+ ldmia sp!, {pc}
+ .balign 4
+_020B829C: .word 0x021CED18
+_020B82A0: .word 0x021CEE78
+
+ arm_func_start FUN_020B82A4
+FUN_020B82A4: ; 0x020B82A4
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldr r0, _020B82DC ; =0x021CED18
+ ldr r0, [r0, #0xfc]
+ ands r0, r0, #0x80
+ bne _020B82D0
+ bl FUN_020B82E4
+ ldr r0, _020B82DC ; =0x021CED18
+ ldr r1, [r0, #0xfc]
+ orr r1, r1, #0x80
+ str r1, [r0, #0xfc]
+_020B82D0:
+ ldr r0, _020B82E0 ; =0x021CEE48
+ add sp, sp, #0x4
+ ldmia sp!, {pc}
+ .balign 4
+_020B82DC: .word 0x021CED18
+_020B82E0: .word 0x021CEE48
+
+ arm_func_start FUN_020B82E4
+FUN_020B82E4: ; 0x020B82E4
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldr r0, _020B8330 ; =0x021CEDD4
+ ldr r1, _020B8334 ; =0x021CED64
+ ldr r2, _020B8338 ; =0x021CEE48
+ bl MTX_Concat43
+ ldr r3, _020B833C ; =0x021CED18
+ ldr r0, _020B8338 ; =0x021CEE48
+ ldr r2, [r3, #0xf4]
+ mov r1, r0
+ str r2, [sp, #0x0]
+ ldr r2, [r3, #0xec]
+ ldr r3, [r3, #0xf0]
+ bl MTX_ScaleApply43
+ ldr r0, _020B8338 ; =0x021CEE48
+ ldr r1, _020B8340 ; =0x021CEE78
+ bl MTX_Inverse43
+ add sp, sp, #0x4
+ ldmia sp!, {pc}
+ .balign 4
+_020B8330: .word 0x021CEDD4
+_020B8334: .word 0x021CED64
+_020B8338: .word 0x021CEE48
+_020B833C: .word 0x021CED18
+_020B8340: .word 0x021CEE78
+
+ arm_func_start FUN_020B8344
+FUN_020B8344: ; 0x020B8344
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldr r0, _020B8384 ; =0x021CED18
+ ldr r0, [r0, #0xfc]
+ ands r0, r0, #0x8
+ bne _020B8378
+ ldr r0, _020B8388 ; =0x021CED64
+ ldr r1, _020B838C ; =0x021CEE18
+ bl MTX_Inverse43
+ ldr r0, _020B8384 ; =0x021CED18
+ ldr r1, [r0, #0xfc]
+ orr r1, r1, #0x8
+ str r1, [r0, #0xfc]
+_020B8378:
+ ldr r0, _020B838C ; =0x021CEE18
+ add sp, sp, #0x4
+ ldmia sp!, {pc}
+ .balign 4
+_020B8384: .word 0x021CED18
+_020B8388: .word 0x021CED64
+_020B838C: .word 0x021CEE18
+
+ arm_func_start FUN_020B8390
+FUN_020B8390: ; 0x020B8390
+ orr r0, r0, r1, lsl #0x4
+
+ arm_func_start FUN_020B8394
+FUN_020B8394: ; 0x020B8394
+ ldr r1, [sp, #0x4]
+ orr r0, r0, r2, lsl #0x6
+ orr r0, r1, r0
+ ldr r2, [sp, #0x0]
+ orr r1, r0, r3, lsl #0x18
+ ldr r0, _020B83B8 ; =0x021CED18
+ orr r1, r1, r2, lsl #0x10
+ str r1, [r0, #0x9c]
+ bx lr
+ .balign 4
+_020B83B8: .word 0x021CED18
+
+ arm_func_start FUN_020B83BC
+FUN_020B83BC: ; 0x020B83BC
+ cmp r2, #0x0
+ movne r2, #0x1
+ orr r1, r0, r1, lsl #0x10
+ moveq r2, #0x0
+ ldr r0, _020B83DC ; =0x021CED18
+ orr r1, r1, r2, lsl #0xf
+ str r1, [r0, #0x98]
+ bx lr
+ .balign 4
+_020B83DC: .word 0x021CED18
+
+ arm_func_start FUN_020B83E0
+FUN_020B83E0: ; 0x020B83E0
+ cmp r2, #0x0
+ movne r2, #0x1
+ orr r1, r0, r1, lsl #0x10
+ moveq r2, #0x0
+ ldr r0, _020B8400 ; =0x021CED18
+ orr r1, r1, r2, lsl #0xf
+ str r1, [r0, #0x94]
+ bx lr
+ .balign 4
+_020B8400: .word 0x021CED18
+
+ arm_func_start FUN_020B8404
+FUN_020B8404: ; 0x020B8404
+ ldr r2, _020B8414 ; =0x021CEDC0
+ orr r1, r1, r0, lsl #0x1e
+ str r1, [r2, r0, lsl #0x2]
+ bx lr
+ .balign 4
+_020B8414: .word 0x021CEDC0
+
+ arm_func_start FUN_020B8418
+FUN_020B8418: ; 0x020B8418
+ stmdb sp!, {r4,lr}
+ ldr ip, _020B8444 ; =0x000003FF
+ ldr lr, _020B8448 ; =0x021CED98
+ and r4, r12, r1, asr #0x3
+ and r1, r12, r2, asr #0x3
+ and r2, r12, r3, asr #0x3
+ orr r1, r4, r1, lsl #0xa
+ orr r1, r1, r2, lsl #0x14
+ orr r1, r1, r0, lsl #0x1e
+ str r1, [lr, r0, lsl #0x2]
+ ldmia sp!, {r4,pc}
+ .balign 4
+_020B8444: .word 0x000003FF
+_020B8448: .word 0x021CED98
+
+ arm_func_start FUN_020B844C
+FUN_020B844C: ; 0x020B844C
+ ldr r3, _020B846C ; =0x021CEE04
+ ldmia r0, {r0-r2}
+ stmia r3, {r0-r2}
+ ldr r0, _020B8470 ; =0x021CED18
+ ldr r1, [r0, #0xfc]
+ bic r1, r1, #0xa4
+ str r1, [r0, #0xfc]
+ bx lr
+ .balign 4
+_020B846C: .word 0x021CEE04
+_020B8470: .word 0x021CED18
+
+ arm_func_start FUN_020B8474
+FUN_020B8474: ; 0x020B8474
+ ldr r3, _020B8494 ; =0x021CEDF8
+ ldmia r0, {r0-r2}
+ stmia r3, {r0-r2}
+ ldr r0, _020B8498 ; =0x021CED18
+ ldr r1, [r0, #0xfc]
+ bic r1, r1, #0xa4
+ str r1, [r0, #0xfc]
+ bx lr
+ .balign 4
+_020B8494: .word 0x021CEDF8
+_020B8498: .word 0x021CED18
+
+ arm_func_start FUN_020B849C
+FUN_020B849C: ; 0x020B849C
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldr r1, _020B84D4 ; =0x021CED18
+ mov r2, #0x3e
+ ldr r0, [r1], #0x4
+ bl FUN_020BB1C0
+ ldr r0, _020B84D4 ; =0x021CED18
+ ldr r1, [r0, #0xfc]
+ bic r1, r1, #0x1
+ str r1, [r0, #0xfc]
+ bic r1, r1, #0x2
+ str r1, [r0, #0xfc]
+ add sp, sp, #0x4
+ ldmia sp!, {pc}
+ .balign 4
+_020B84D4: .word 0x021CED18
+
+ arm_func_start FUN_020B84D8
+FUN_020B84D8: ; 0x020B84D8
+ stmdb sp!, {r4-r9,lr}
+ sub sp, sp, #0x4
+ ldr r8, _020B85F4 ; =0x17101610
+ ldr r1, _020B85F8 ; =0x021CED18
+ ldr r5, _020B85FC ; =0x32323232
+ ldr r4, _020B8600 ; =0x60293130
+ ldr r3, _020B8604 ; =0x33333333
+ ldr r2, _020B8608 ; =0x002A1B19
+ mov r7, #0x0
+ mov r6, #0x2
+ ldr r0, _020B860C ; =0x021CED64
+ str r8, [r1, #0x0]
+ str r7, [r1, #0x4]
+ str r6, [r1, #0x48]
+ str r5, [r1, #0x7c]
+ str r4, [r1, #0x90]
+ str r3, [r1, #0xa4]
+ str r2, [r1, #0xb8]
+ bl MTX_Identity43_
+ ldr r0, _020B8610 ; =0x021CED20
+ bl MTX_Identity44_
+ mov r2, r7
+ ldr r1, _020B85F8 ; =0x021CED18
+ ldr r7, _020B8614 ; =0x4210C210
+ ldr r0, _020B8618 ; =0x40000200
+ ldr lr, _020B861C ; =0x2D8B62D8
+ ldr sb, _020B8620 ; =0x800001FF
+ ldr r8, _020B8624 ; =0xC0080000
+ ldr r6, _020B8628 ; =0x001F008F
+ ldr r5, _020B862C ; =0xBFFF0000
+ ldr r4, _020B8630 ; =0x00007FFF
+ ldr ip, _020B8634 ; =0x800003E0
+ ldr r3, _020B8638 ; =0xC0007C00
+ str r0, [r1, #0x84]
+ str lr, [r1, #0x80]
+ mov lr, #0x4000001f
+ ldr r0, _020B863C ; =0x021CEDD4
+ str r9, [r1, #0x88]
+ str r8, [r1, #0x8c]
+ str r7, [r1, #0x94]
+ str r7, [r1, #0x98]
+ str r6, [r1, #0x9c]
+ str r5, [r1, #0xa0]
+ str r4, [r1, #0xa8]
+ str lr, [r1, #0xac]
+ str r12, [r1, #0xb0]
+ str r3, [r1, #0xb4]
+ str r2, [r1, #0xe0]
+ str r2, [r1, #0xe4]
+ str r2, [r1, #0xe8]
+ bl MTX_Identity33_
+ mov r3, #0x1000
+ ldr r0, _020B85F8 ; =0x021CED18
+ mov r2, #0x0
+ rsb r1, r3, #0x0
+ str r3, [r0, #0xec]
+ str r3, [r0, #0xf0]
+ str r3, [r0, #0xf4]
+ str r2, [r0, #0xf8]
+ str r2, [r0, #0xfc]
+ str r2, [r0, #0x248]
+ str r2, [r0, #0x244]
+ str r2, [r0, #0x240]
+ str r2, [r0, #0x254]
+ str r2, [r0, #0x24c]
+ str r3, [r0, #0x250]
+ str r2, [r0, #0x25c]
+ str r2, [r0, #0x258]
+ str r1, [r0, #0x260]
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r9,pc}
+ .balign 4
+_020B85F4: .word 0x17101610
+_020B85F8: .word 0x021CED18
+_020B85FC: .word 0x32323232
+_020B8600: .word 0x60293130
+_020B8604: .word 0x33333333
+_020B8608: .word 0x002A1B19
+_020B860C: .word 0x021CED64
+_020B8610: .word 0x021CED20
+_020B8614: .word 0x4210C210
+_020B8618: .word 0x40000200
+_020B861C: .word 0x2D8B62D8
+_020B8620: .word 0x800001FF
+_020B8624: .word 0xC0080000
+_020B8628: .word 0x001F008F
+_020B862C: .word 0xBFFF0000
+_020B8630: .word 0x00007FFF
+_020B8634: .word 0x800003E0
+_020B8638: .word 0xC0007C00
+_020B863C: .word 0x021CEDD4
+
+ arm_func_start FUN_020B8640
+FUN_020B8640: ; 0x020B8640
+ stmdb sp!, {r4-r8,lr}
+ sub sp, sp, #0x8
+ mov r7, r0
+ mov r0, #0x0
+ mov r6, r1
+ str r0, [r7, #0x0]
+ add r4, sp, #0x0
+ mov r5, r2, lsl #0x1
+ mov r8, #0x1
+_020B8664:
+ add r1, r5, r6
+ ldrh r2, [r1, #0x1a]
+ ands r1, r2, #0x100
+ beq _020B869C
+ ldr r3, [r6, #0xc]
+ mov r0, r4
+ mov r1, r6
+ and r2, r2, #0xff
+ blx r3
+ ldr r2, [r7, #0x0]
+ ldr r1, [sp, #0x0]
+ mov r0, r8
+ orr r1, r2, r1
+ str r1, [r7, #0x0]
+_020B869C:
+ ldr r6, [r6, #0x10]
+ cmp r6, #0x0
+ bne _020B8664
+ add sp, sp, #0x8
+ ldmia sp!, {r4-r8,pc}
+
+ arm_func_start FUN_020B86B0
+FUN_020B86B0: ; 0x020B86B0
+ stmdb sp!, {r4-r11,lr}
+ sub sp, sp, #0x5c
+ mov r9, r1
+ ldr r3, [r9, #0x10]
+ mov r10, r0
+ mov r8, r2
+ cmp r3, #0x0
+ bne _020B8704
+ add r2, r9, r8, lsl #0x1
+ ldrh r4, [r2, #0x1a]
+ and r2, r4, #0x300
+ cmp r2, #0x100
+ addne sp, sp, #0x5c
+ movne r0, #0x0
+ ldmneia sp!, {r4-r11,pc}
+_020B86EC: ; 0x020B86EC
+ ldr r3, [r9, #0xc]
+ and r2, r4, #0xff
+ blx r3
+ add sp, sp, #0x5c
+ mov r0, #0x1
+ ldmia sp!, {r4-r11,pc}
+_020B8704:
+ mov r7, #0x0
+ mov r3, r7
+ mov r4, r9
+ mov r2, r8, lsl #0x1
+_020B8714:
+ add r0, r2, r4
+ ldrh r0, [r0, #0x1a]
+ and r0, r0, #0x300
+ cmp r0, #0x100
+ ldreq r0, [r4, #0x4]
+ moveq r1, r4
+ ldr r4, [r4, #0x10]
+ addeq r7, r7, r0
+ addeq r3, r3, #0x1
+ cmp r4, #0x0
+ bne _020B8714
+ cmp r7, #0x0
+ addeq sp, sp, #0x5c
+ moveq r0, #0x0
+ ldmeqia sp!, {r4-r11,pc}
+_020B8750: ; 0x020B8750
+ cmp r3, #0x1
+ bne _020B877C
+ add r0, r1, r8, lsl #0x1
+ ldrh r2, [r0, #0x1a]
+ ldr r3, [r1, #0xc]
+ mov r0, r10
+ and r2, r2, #0xff
+ blx r3
+ add sp, sp, #0x5c
+ mov r0, #0x1
+ ldmia sp!, {r4-r11,pc}
+_020B877C:
+ mov r1, r10
+ mov r0, #0x0
+ mov r2, #0x58
+ bl MIi_CpuClearFast
+_020B878C: ; 0x020B878C
+ mvn r0, #0x0
+ str r0, [r10, #0x0]
+ add r5, sp, #0x0
+ add r4, sp, #0x4
+ add r11, sp, #0x10
+_020B87A0:
+ add r0, r9, r8, lsl #0x1
+ ldrh r2, [r0, #0x1a]
+ and r0, r2, #0x300
+ cmp r0, #0x100
+ bne _020B8948
+ ldr r0, [r9, #0x4]
+ cmp r0, #0x0
+ ble _020B8948
+ ldr r3, [r9, #0xc]
+ mov r0, r5
+ mov r1, r9
+ and r2, r2, #0xff
+ blx r3
+ cmp r7, #0x1000
+ ldreq r6, [r9, #0x4]
+ beq _020B87F0
+ ldr r0, [r9, #0x4]
+ mov r1, r7
+ bl FX_Div
+ mov r6, r0
+_020B87F0:
+ ldr r3, [sp, #0x0]
+ mov r1, r4
+ mov r2, r6
+ add r0, r10, #0x4
+ and r3, r3, #0x1
+ bl FUN_020B8998
+ ldr r1, [sp, #0x0]
+ add r0, r10, #0x10
+ and r3, r1, #0x8
+ mov r1, r11
+ mov r2, r6
+ bl FUN_020B8998
+ ldr r3, [sp, #0x0]
+ add r0, r10, #0x1c
+ add r1, sp, #0x1c
+ mov r2, r6
+ and r3, r3, #0x10
+ bl FUN_020B8998
+_020B8838: ; 0x020B8838
+ ldr r0, [sp, #0x0]
+ ands r0, r0, #0x4
+ bne _020B8898
+ ldr r0, [sp, #0x4c]
+ ldr r2, [r10, #0x4c]
+ smull r1, r0, r6, r0
+ mov r1, r1, lsr #0xc
+ orr r1, r1, r0, lsl #0x14
+ add r0, r2, r1
+ str r0, [r10, #0x4c]
+ ldr r0, [sp, #0x50]
+ ldr r2, [r10, #0x50]
+ smull r1, r0, r6, r0
+ mov r1, r1, lsr #0xc
+ orr r1, r1, r0, lsl #0x14
+ add r0, r2, r1
+ str r0, [r10, #0x50]
+ ldr r0, [sp, #0x54]
+ ldr r2, [r10, #0x54]
+ smull r1, r0, r6, r0
+ mov r1, r1, lsr #0xc
+ orr r1, r1, r0, lsl #0x14
+ add r0, r2, r1
+ str r0, [r10, #0x54]
+_020B8898:
+ ldr r0, [sp, #0x0]
+ ands r0, r0, #0x2
+ bne _020B8920
+ ldr r0, [sp, #0x28]
+ ldr r1, [r10, #0x28]
+ mul r0, r6, r0
+ add r0, r1, r0, asr #0xc
+ str r0, [r10, #0x28]
+ ldr r0, [sp, #0x2c]
+ ldr r1, [r10, #0x2c]
+ mul r0, r6, r0
+ add r0, r1, r0, asr #0xc
+ str r0, [r10, #0x2c]
+ ldr r0, [sp, #0x30]
+ ldr r1, [r10, #0x30]
+ mul r0, r6, r0
+ add r0, r1, r0, asr #0xc
+ str r0, [r10, #0x30]
+ ldr r0, [sp, #0x34]
+ ldr r1, [r10, #0x34]
+ mul r0, r6, r0
+ add r0, r1, r0, asr #0xc
+ str r0, [r10, #0x34]
+ ldr r0, [sp, #0x38]
+ ldr r1, [r10, #0x38]
+ mul r0, r6, r0
+ add r0, r1, r0, asr #0xc
+ str r0, [r10, #0x38]
+ ldr r0, [sp, #0x3c]
+ ldr r1, [r10, #0x3c]
+ mul r0, r6, r0
+ add r0, r1, r0, asr #0xc
+ str r0, [r10, #0x3c]
+ b _020B8938
+_020B8920:
+ ldr r0, [r10, #0x28]
+ add r0, r0, r6
+ str r0, [r10, #0x28]
+ ldr r0, [r10, #0x38]
+ add r0, r0, r6
+ str r0, [r10, #0x38]
+_020B8938:
+ ldr r1, [r10, #0x0]
+ ldr r0, [sp, #0x0]
+ and r0, r1, r0
+ str r0, [r10, #0x0]
+_020B8948:
+ ldr r9, [r9, #0x10]
+ cmp r9, #0x0
+ bne _020B87A0
+ add r0, r10, #0x28
+ add r1, r10, #0x34
+ add r2, r10, #0x40
+ bl VEC_CrossProduct
+ add r0, r10, #0x28
+ mov r1, r0
+ bl VEC_Normalize
+ add r0, r10, #0x40
+ mov r1, r0
+ bl VEC_Normalize
+ add r0, r10, #0x40
+ add r1, r10, #0x28
+ add r2, r10, #0x34
+ bl VEC_CrossProduct
+ mov r0, #0x1
+ add sp, sp, #0x5c
+ ldmia sp!, {r4-r11,pc}
+
+ arm_func_start FUN_020B8998
+FUN_020B8998:
+ cmp r3, #0x0
+ beq _020B89C8
+ ldr r1, [r0, #0x0]
+ add r1, r1, r2
+ str r1, [r0, #0x0]
+ ldr r1, [r0, #0x4]
+ add r1, r1, r2
+ str r1, [r0, #0x4]
+ ldr r1, [r0, #0x8]
+ add r1, r1, r2
+ str r1, [r0, #0x8]
+ bx lr
+_020B89C8:
+ ldr r3, [r1, #0x0]
+ ldr r12, [r0, #0x0]
+ mul r3, r2, r3
+ add r3, r12, r3, asr #0xc
+ str r3, [r0, #0x0]
+ ldr r3, [r1, #0x4]
+ ldr r12, [r0, #0x4]
+ mul r3, r2, r3
+ add r3, r12, r3, asr #0xc
+ str r3, [r0, #0x4]
+ ldr r1, [r1, #0x8]
+ ldr r3, [r0, #0x8]
+ mul r1, r2, r1
+ add r1, r3, r1, asr #0xc
+ str r1, [r0, #0x8]
+ bx lr
+
+ arm_func_start FUN_020B8A08
+FUN_020B8A08: ; 0x020B8A08
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0x4
+ mov r6, r0
+ mov r5, r1
+ mov r0, #0x0
+ mov r4, r2, lsl #0x1
+ mov r7, #0x1
+_020B8A24:
+ add r1, r4, r5
+ ldrh r2, [r1, #0x1a]
+ ands r1, r2, #0x100
+ beq _020B8A4C
+ ldr r3, [r5, #0xc]
+ mov r0, r6
+ mov r1, r5
+ and r2, r2, #0xff
+ blx r3
+ mov r0, r7
+_020B8A4C:
+ ldr r5, [r5, #0x10]
+ cmp r5, #0x0
+ bne _020B8A24
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r7,pc}
+
+ arm_func_start FUN_020B8A60
+FUN_020B8A60: ; 0x020B8A60
+ stmdb sp!, {r4-r6,lr}
+ sub sp, sp, #0x80
+ mov r5, r0
+ ldr r1, [r5, #0x8]
+ ands r0, r1, #0x200
+ bne _020B8DB4
+ ands r0, r1, #0x1
+ beq _020B8DB4
+ add r0, sp, #0x10
+ mov r1, #0x0
+ bl FUN_020BB824
+ mov r0, #0x1e
+ str r0, [sp, #0x0]
+ add r1, sp, #0x0
+ mov r0, #0x13
+ mov r2, #0x1
+ bl FUN_020BB1C0
+ ldr r2, [r5, #0xb0]
+ ldr r0, [r2, #0x10]
+ and r1, r0, #0xc0000000
+ cmp r1, #0xc0000000
+ beq _020B8AF0
+ bic r0, r0, #0xc0000000
+ str r0, [r2, #0x10]
+ ldr r2, [r5, #0xb0]
+ ldr r3, _020B8DC8 ; =0x02106630
+ ldr r0, [r2, #0x10]
+ ldr r1, _020B8DCC ; =0x02106634
+ orr r0, r0, #0xc0000000
+ str r0, [r2, #0x10]
+ ldr r2, [r5, #0xb0]
+ ldr r0, [r3, #0x0]
+ ldr r4, [r2, #0x10]
+ mov r2, #0x1
+ str r4, [r3, #0x4]
+ bl FUN_020BB1C0
+_020B8AF0:
+ ldr r0, [r5, #0x40]
+ cmp r0, #0x0
+ ldrneb r4, [r5, #0x99]
+ moveq r4, #0x0
+ cmp r4, #0x1
+ bne _020B8B3C
+ ldr r1, [r5, #0x8]
+ mov r0, r5
+ bic r1, r1, #0x40
+ str r1, [r5, #0x8]
+ ldr r1, [r5, #0x40]
+ blx r1
+ ldr r0, [r5, #0x40]
+ cmp r0, #0x0
+ ldrneb r4, [r5, #0x99]
+ ldr r0, [r5, #0x8]
+ moveq r4, #0x0
+ and r0, r0, #0x40
+ b _020B8B40
+_020B8B3C:
+ mov r0, #0x0
+_020B8B40:
+ cmp r0, #0x0
+ bne _020B8B84
+ ldr r0, [r5, #0xb0]
+ ldr r1, _020B8DD0 ; =0x02106660
+ ldrh r6, [r0, #0x2e]
+ ldrh r3, [r0, #0x2c]
+ mov r0, #0x16
+ rsb r2, r6, #0x0
+ mov lr, r3, lsl #0xf
+ mov r12, r2, lsl #0xf
+ mov r3, r6, lsl #0xf
+ mov r2, #0x10
+ str lr, [r1, #0x0]
+ str r12, [r1, #0x14]
+ str lr, [r1, #0x30]
+ str r3, [r1, #0x34]
+ bl FUN_020BB1C0
+_020B8B84:
+ cmp r4, #0x2
+ bne _020B8BC0
+ ldr r1, [r5, #0x8]
+ mov r0, r5
+ bic r1, r1, #0x40
+ str r1, [r5, #0x8]
+ ldr r1, [r5, #0x40]
+ blx r1
+ ldr r0, [r5, #0x40]
+ cmp r0, #0x0
+ ldrneb r4, [r5, #0x99]
+ ldr r0, [r5, #0x8]
+ moveq r4, #0x0
+ and r0, r0, #0x40
+ b _020B8BC4
+_020B8BC0:
+ mov r0, #0x0
+_020B8BC4:
+ cmp r0, #0x0
+ bne _020B8C28
+ ldr r12, [r5, #0xd8]
+ ldr r0, [r5, #0x0]
+ ldrh r2, [r12, #0xa]
+ add r3, r12, #0x4
+ ldrb r0, [r0, #0x1]
+ ldrh r1, [r3, r2]
+ add r2, r3, r2
+ mla r0, r1, r0, r2
+ ldr r0, [r0, #0x4]
+ add r1, r12, r0
+ ldrh r2, [r1, #0x1e]
+ ands r0, r2, #0x2000
+ beq _020B8C28
+ add r1, r1, #0x2c
+ ands r0, r2, #0x2
+ addeq r1, r1, #0x8
+ ands r0, r2, #0x4
+ addeq r1, r1, #0x4
+ ands r0, r2, #0x8
+ addeq r1, r1, #0x8
+ mov r0, #0x18
+ mov r2, #0x10
+ bl FUN_020BB1C0
+_020B8C28:
+ cmp r4, #0x3
+ movne r0, #0x0
+ bne _020B8C54
+ ldr r1, [r5, #0x8]
+ mov r0, r5
+ bic r1, r1, #0x40
+ str r1, [r5, #0x8]
+ ldr r1, [r5, #0x40]
+ blx r1
+ ldr r0, [r5, #0x8]
+ and r0, r0, #0x40
+_020B8C54:
+ cmp r0, #0x0
+ bne _020B8D84
+ ldr r0, _020B8DD4 ; =0x021CED18
+ ldr r1, [r0, #0xfc]
+ ands r0, r1, #0x1
+ beq _020B8CA0
+ ldr r1, _020B8DD8 ; =0x021CEDF8
+ mov r0, #0x1c
+ mov r2, #0x3
+ bl FUN_020BB1C0
+ ldr r1, _020B8DDC ; =0x021CEDD4
+ mov r0, #0x1a
+ mov r2, #0x9
+ bl FUN_020BB1C0
+ add r1, sp, #0x10
+ mov r0, #0x19
+ mov r2, #0xc
+ bl FUN_020BB1C0
+ b _020B8CE0
+_020B8CA0:
+ ands r0, r1, #0x2
+ beq _020B8CBC
+ add r1, sp, #0x10
+ mov r0, #0x19
+ mov r2, #0xc
+ bl FUN_020BB1C0
+ b _020B8CE0
+_020B8CBC:
+ bl FUN_020B8344
+ mov r1, r0
+ mov r0, #0x19
+ mov r2, #0xc
+ bl FUN_020BB1C0
+ add r1, sp, #0x10
+ mov r0, #0x19
+ mov r2, #0xc
+ bl FUN_020BB1C0
+_020B8CE0:
+ bl FUN_020BB394
+ ldr r0, _020B8DE0 ; =0x04000440
+ mov r2, #0x0
+ ldr r1, _020B8DE4 ; =0x04000444
+ str r2, [r0, #0x0]
+ ldr r0, _020B8DE8 ; =0x04000454
+ str r2, [r1, #0x0]
+ str r2, [r0, #0x0]
+ add r4, sp, #0x40
+_020B8D04:
+ mov r0, r4
+ bl G3X_GetClipMtx
+_020B8D0C: ; 0x020B8D0C
+ cmp r0, #0x0
+ bne _020B8D04
+ ldr r1, _020B8DEC ; =0x04000448
+ mov r2, #0x1
+ str r2, [r1, #0x0]
+ ldr r0, _020B8DE0 ; =0x04000440
+ mov r2, #0x3
+ str r2, [r0, #0x0]
+ add r1, sp, #0x40
+ mov r0, #0x16
+ mov r2, #0x10
+ bl FUN_020BB1C0
+ ldr r1, [sp, #0x70]
+ ldr r0, [sp, #0x74]
+ mov r2, r1, asr #0x4
+ mov r1, r0, asr #0x4
+ mov r0, r2, lsl #0x8
+ mov r1, r1, lsl #0x8
+ mov r0, r0, asr #0x10
+ mov r1, r1, asr #0x10
+ mov r0, r0, lsl #0x10
+ mov r1, r1, lsl #0x10
+ mov r2, r0, lsr #0x10
+ mov r0, r1, lsr #0x10
+ orr r3, r2, r0, lsl #0x10
+ add r1, sp, #0x4
+ mov r0, #0x22
+ mov r2, #0x1
+ str r3, [sp, #0x4]
+ bl FUN_020BB1C0
+_020B8D84:
+ mov r3, #0x2
+ add r1, sp, #0x8
+ mov r0, #0x10
+ mov r2, #0x1
+ str r3, [sp, #0x8]
+ bl FUN_020BB1C0
+ mov r3, #0x1e
+ add r1, sp, #0xc
+ mov r0, #0x14
+ mov r2, #0x1
+ str r3, [sp, #0xc]
+ bl FUN_020BB1C0
+_020B8DB4:
+ ldr r0, [r5, #0x0]
+ add r0, r0, #0x3
+ str r0, [r5, #0x0]
+ add sp, sp, #0x80
+ ldmia sp!, {r4-r6,pc}
+ .balign 4
+_020B8DC8: .word 0x02106630
+_020B8DCC: .word 0x02106634
+_020B8DD0: .word 0x02106660
+_020B8DD4: .word 0x021CED18
+_020B8DD8: .word 0x021CEDF8
+_020B8DDC: .word 0x021CEDD4
+_020B8DE0: .word 0x04000440
+_020B8DE4: .word 0x04000444
+_020B8DE8: .word 0x04000454
+_020B8DEC: .word 0x04000448
+
+ arm_func_start FUN_020B8DF0
+FUN_020B8DF0: ; 0x020B8DF0
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0x44
+ mov r7, r0
+ ldr r1, [r7, #0x8]
+ ands r0, r1, #0x200
+ bne _020B90E8
+ ands r0, r1, #0x1
+ beq _020B90E8
+ ldr r2, [r7, #0xb0]
+ ldr r0, [r2, #0x10]
+ and r1, r0, #0xc0000000
+ cmp r1, #0x80000000
+ beq _020B8E5C
+ bic r0, r0, #0xc0000000
+ str r0, [r2, #0x10]
+ ldr r2, [r7, #0xb0]
+ ldr r3, _020B90FC ; =0x02106638
+ ldr r0, [r2, #0x10]
+ ldr r1, _020B9100 ; =0x0210663C
+ orr r0, r0, #0x80000000
+ str r0, [r2, #0x10]
+ ldr r2, [r7, #0xb0]
+ ldr r0, [r3, #0x0]
+ ldr r4, [r2, #0x10]
+ mov r2, #0x1
+ str r4, [r3, #0x4]
+ bl FUN_020BB1C0
+_020B8E5C:
+ mov r0, #0x3
+ str r0, [sp, #0x0]
+ add r1, sp, #0x0
+ mov r0, #0x10
+ mov r2, #0x1
+ bl FUN_020BB1C0
+ ldr r0, [r7, #0x3c]
+ cmp r0, #0x0
+ ldrneb r6, [r7, #0x98]
+ moveq r6, #0x0
+ cmp r6, #0x1
+ bne _020B8EC0
+ ldr r1, [r7, #0x8]
+ mov r0, r7
+ bic r1, r1, #0x40
+ str r1, [r7, #0x8]
+ ldr r1, [r7, #0x3c]
+ blx r1
+ ldr r0, [r7, #0x3c]
+ cmp r0, #0x0
+ ldrneb r6, [r7, #0x98]
+ ldr r0, [r7, #0x8]
+ moveq r6, #0x0
+ and r0, r0, #0x40
+ b _020B8EC4
+_020B8EC0:
+ mov r0, #0x0
+_020B8EC4:
+ cmp r0, #0x0
+ bne _020B8F3C
+ ldr r0, [r7, #0xb0]
+ add r1, sp, #0x38
+ ldrh r4, [r0, #0x2e]
+ ldrh r5, [r0, #0x2c]
+ mov r3, #0x10000
+ rsb r0, r4, #0x0
+ mov r12, r0, lsl #0xf
+ mov lr, r5, lsl #0xf
+ mov r0, #0x1b
+ mov r2, #0x3
+ str lr, [sp, #0x38]
+ str r12, [sp, #0x3c]
+ str r3, [sp, #0x40]
+ bl FUN_020BB1C0
+ mov r0, r5, lsl #0x13
+ mov r1, r4, lsl #0x13
+ mov r0, r0, asr #0x10
+ mov r1, r1, asr #0x10
+ mov r0, r0, lsl #0x10
+ mov r1, r1, lsl #0x10
+ mov r2, r0, lsr #0x10
+ mov r0, r1, lsr #0x10
+ orr r3, r2, r0, lsl #0x10
+ add r1, sp, #0x4
+ mov r0, #0x22
+ mov r2, #0x1
+ str r3, [sp, #0x4]
+ bl FUN_020BB1C0
+_020B8F3C:
+ cmp r6, #0x2
+ bne _020B8F78
+ ldr r1, [r7, #0x8]
+ mov r0, r7
+ bic r1, r1, #0x40
+ str r1, [r7, #0x8]
+ ldr r1, [r7, #0x3c]
+ blx r1
+ ldr r0, [r7, #0x3c]
+ cmp r0, #0x0
+ ldrneb r6, [r7, #0x98]
+ ldr r0, [r7, #0x8]
+ moveq r6, #0x0
+ and r0, r0, #0x40
+ b _020B8F7C
+_020B8F78:
+ mov r0, #0x0
+_020B8F7C:
+ cmp r0, #0x0
+ bne _020B8FE0
+ ldr r4, [r7, #0xd8]
+ ldr r0, [r7, #0x0]
+ ldrh r2, [r4, #0xa]
+ add r3, r4, #0x4
+ ldrb r0, [r0, #0x1]
+ ldrh r1, [r3, r2]
+ add r2, r3, r2
+ mla r0, r1, r0, r2
+ ldr r0, [r0, #0x4]
+ add r1, r4, r0
+ ldrh r2, [r1, #0x1e]
+ ands r0, r2, #0x2000
+ beq _020B8FE0
+ add r1, r1, #0x2c
+ ands r0, r2, #0x2
+ addeq r1, r1, #0x8
+ ands r0, r2, #0x4
+ addeq r1, r1, #0x4
+ ands r0, r2, #0x8
+ addeq r1, r1, #0x8
+ mov r0, #0x18
+ mov r2, #0x10
+ bl FUN_020BB1C0
+_020B8FE0:
+ cmp r6, #0x3
+ movne r0, #0x0
+ bne _020B900C
+ ldr r1, [r7, #0x8]
+ mov r0, r7
+ bic r1, r1, #0x40
+ str r1, [r7, #0x8]
+ ldr r1, [r7, #0x3c]
+ blx r1
+ ldr r0, [r7, #0x8]
+ and r0, r0, #0x40
+_020B900C:
+ cmp r0, #0x0
+ bne _020B90D0
+ mov r3, #0x2
+ add r1, sp, #0x8
+ mov r0, #0x10
+ mov r2, #0x1
+ str r3, [sp, #0x8]
+ bl FUN_020BB1C0
+ add r1, sp, #0x14
+ mov r0, #0x0
+ bl FUN_020BB824
+ mov r3, #0x3
+ add r1, sp, #0xc
+ mov r0, #0x10
+ mov r2, #0x1
+ str r3, [sp, #0xc]
+ bl FUN_020BB1C0
+ ldr r0, _020B9104 ; =0x021CED18
+ ldr r1, [r0, #0xfc]
+ ands r0, r1, #0x1
+ beq _020B9094
+ ldr r1, _020B9108 ; =0x021CED64
+ mov r0, #0x1a
+ mov r2, #0x9
+ bl FUN_020BB1C0
+ ldr r1, _020B910C ; =0x021CEDD4
+ mov r0, #0x1a
+ mov r2, #0x9
+ bl FUN_020BB1C0
+ add r1, sp, #0x14
+ mov r0, #0x1a
+ mov r2, #0x9
+ bl FUN_020BB1C0
+ b _020B90D0
+_020B9094:
+ ands r0, r1, #0x2
+ beq _020B90C0
+ ldr r1, _020B9108 ; =0x021CED64
+ mov r0, #0x1a
+ mov r2, #0x9
+ bl FUN_020BB1C0
+ add r1, sp, #0x14
+ mov r0, #0x1a
+ mov r2, #0x9
+ bl FUN_020BB1C0
+ b _020B90D0
+_020B90C0:
+ add r1, sp, #0x14
+ mov r0, #0x1a
+ mov r2, #0x9
+ bl FUN_020BB1C0
+_020B90D0:
+ mov r3, #0x2
+ add r1, sp, #0x10
+ mov r0, #0x10
+ mov r2, #0x1
+ str r3, [sp, #0x10]
+ bl FUN_020BB1C0
+_020B90E8:
+ ldr r0, [r7, #0x0]
+ add r0, r0, #0x3
+ str r0, [r7, #0x0]
+ add sp, sp, #0x44
+ ldmia sp!, {r4-r7,pc}
+ .balign 4
+_020B90FC: .word 0x02106638
+_020B9100: .word 0x0210663C
+_020B9104: .word 0x021CED18
+_020B9108: .word 0x021CED64
+_020B910C: .word 0x021CEDD4
+
+ arm_func_start FUN_020B9110
+FUN_020B9110: ; 0x020B9110
+ stmdb sp!, {r4,lr}
+ sub sp, sp, #0x10
+ mov r4, r0
+ ldr r2, [r4, #0x8]
+ ands r0, r2, #0x100
+ bne _020B9164
+ ands r0, r2, #0x200
+ bne _020B9164
+ cmp r1, #0x0
+ ldreq r0, [r4, #0xe0]
+ add r1, sp, #0x0
+ streq r0, [sp, #0x8]
+ streq r0, [sp, #0x4]
+ streq r0, [sp, #0x0]
+ ldrne r0, [r4, #0xe4]
+ mov r2, #0x3
+ strne r0, [sp, #0x8]
+ strne r0, [sp, #0x4]
+ strne r0, [sp, #0x0]
+ mov r0, #0x1b
+ bl FUN_020BB1C0
+_020B9164:
+ ldr r0, [r4, #0x0]
+ add r0, r0, #0x1
+ str r0, [r4, #0x0]
+ add sp, sp, #0x10
+ ldmia sp!, {r4,pc}
+
+ arm_func_start FUN_020B9178
+FUN_020B9178: ; 0x020B9178
+ stmdb sp!, {r4-r6,lr}
+ mov r5, r0
+ ldr r0, [r5, #0x34]
+ cmp r0, #0x0
+ ldrneb r4, [r5, #0x96]
+ moveq r4, #0x0
+ cmp r4, #0x1
+ bne _020B91CC
+ ldr r1, [r5, #0x8]
+ mov r0, r5
+ bic r1, r1, #0x40
+ str r1, [r5, #0x8]
+ ldr r1, [r5, #0x34]
+ blx r1
+ ldr r0, [r5, #0x34]
+ cmp r0, #0x0
+ ldrneb r4, [r5, #0x96]
+ ldr r0, [r5, #0x8]
+ moveq r4, #0x0
+ and r1, r0, #0x40
+ b _020B91D0
+_020B91CC:
+ mov r1, #0x0
+_020B91D0:
+ ldr r0, [r5, #0x8]
+ ands r0, r0, #0x100
+ bne _020B9228
+ cmp r1, #0x0
+ bne _020B9228
+ ldr r0, [r5, #0x0]
+ ldrb r12, [r0, #0x1]
+ ldrb r3, [r0, #0x2]
+ ldrb lr, [r0, #0x3]
+ ldrb r2, [r0, #0x5]
+ ldrb r1, [r0, #0x6]
+ orr r3, r12, r3, lsl #0x8
+ ldrb r6, [r0, #0x4]
+ orr r12, r3, lr, lsl #0x10
+ ldrb r3, [r0, #0x7]
+ orr r1, r2, r1, lsl #0x8
+ orr r6, r12, r6, lsl #0x18
+ ldrb r2, [r0, #0x8]
+ orr r1, r1, r3, lsl #0x10
+ add r0, r0, r6
+ orr r1, r1, r2, lsl #0x18
+ bl FUN_020BB2B0
+_020B9228:
+ cmp r4, #0x3
+ bne _020B9248
+ ldr r1, [r5, #0x8]
+ mov r0, r5
+ bic r1, r1, #0x40
+ str r1, [r5, #0x8]
+ ldr r1, [r5, #0x34]
+ blx r1
+_020B9248:
+ ldr r0, [r5, #0x0]
+ add r0, r0, #0x9
+ str r0, [r5, #0x0]
+ ldmia sp!, {r4-r6,pc}
+
+ arm_func_start FUN_020B9258
+FUN_020B9258: ; 0x020B9258
+ stmdb sp!, {r4-r11,lr}
+ sub sp, sp, #0x8c
+ ldr r1, [r0, #0x4]
+ ldr r4, [r0, #0x0]
+ ldr r6, [r1, #0x4]
+ ldrb r2, [r4, #0x2]
+ ldr r3, [r6, #0x10]
+ mov r10, #0x0
+ str r0, [sp, #0x0]
+ str r2, [sp, #0x8]
+ add r3, r6, r3
+ add r1, sp, #0x34
+ mov r0, r10
+ mov r2, #0x54
+ mov r9, r10
+ str r3, [sp, #0x4]
+ add r8, r4, #0x3
+ bl MIi_CpuClearFast
+ bl FUN_020BB394
+ ldr r0, _020B98AC ; =0x04000440
+ mov r7, r10
+ str r7, [r0, #0x0]
+ mov r0, #0x1
+ ldr r2, _020B98B0 ; =0x0400044C
+ ldr r1, _020B98B4 ; =0x04000454
+ str r0, [r2, #0x0]
+ str r0, [sp, #0x10]
+ str r7, [r1, #0x0]
+ mov r1, #0x2
+ ldr r0, _020B98AC ; =0x04000440
+ str r1, [sp, #0x14]
+ str r1, [r0, #0x0]
+ ldr r0, [sp, #0x8]
+ cmp r0, #0x0
+ bls _020B96CC
+_020B92E4:
+ ldrb r4, [r8, #0x1]
+ mov r0, #0x64
+ ldr r3, _020B98B8 ; =0x021D0380
+ mul r0, r4, r0
+ str r0, [sp, #0xc]
+ ldr r0, [sp, #0x0]
+ mov r1, r4, lsr #0x5
+ add r0, r0, r1, lsl #0x2
+ ldr r1, [sp, #0x10]
+ and r2, r4, #0x1f
+ mov r1, r1, lsl r2
+ ldr r11, [r0, #0xcc]
+ ldr r2, [sp, #0xc]
+ ands r11, r1, r11
+ add r6, r3, r2
+ bne _020B9358
+ ldr r3, [r0, #0xcc]
+ mov r2, #0x54
+ orr r1, r3, r1
+ str r1, [r0, #0xcc]
+ ldr r0, [sp, #0x4]
+ ldr r1, _020B98BC ; =0x04000450
+ mla r0, r4, r2, r0
+ ldrb r2, [r8, #0x0]
+ str r2, [r1, #0x0]
+ ldr r2, [sp, #0x10]
+ ldr r1, _020B98AC ; =0x04000440
+ str r2, [r1, #0x0]
+ bl G3_MultMtx43
+_020B9358:
+ cmp r7, #0x0
+ beq _020B9500
+ ldr r2, [sp, #0x6c]
+ ldr r1, [r5, #0x0]
+ str r2, [sp, #0x18]
+ ldr r2, [sp, #0x70]
+ mov r0, r1, asr #0x1f
+ str r2, [sp, #0x1c]
+ ldr r2, [sp, #0x74]
+ ldr r12, [sp, #0x64]
+ str r2, [sp, #0x20]
+ ldr r2, [sp, #0x78]
+ ldr lr, [sp, #0x68]
+ str r2, [sp, #0x24]
+ ldr r2, [sp, #0x7c]
+ str r2, [sp, #0x28]
+ ldr r2, [sp, #0x80]
+ str r2, [sp, #0x2c]
+ ldr r2, [sp, #0x84]
+ str r2, [sp, #0x30]
+ umull r3, r2, r10, r1
+ mla r2, r10, r0, r2
+ mla r2, r9, r1, r2
+ mov r0, r3, lsr #0xc
+ orr r0, r0, r2, lsl #0x14
+ adds r0, r12, r0
+ str r0, [sp, #0x64]
+ ldr r1, [r5, #0x4]
+ mov r0, r1, asr #0x1f
+ umull r3, r2, r10, r1
+ mla r2, r10, r0, r2
+ mla r2, r9, r1, r2
+ mov r0, r3, lsr #0xc
+ orr r0, r0, r2, lsl #0x14
+ adds r0, lr, r0
+ str r0, [sp, #0x68]
+ ldr r1, [r5, #0x8]
+ mov r0, r1, asr #0x1f
+ umull r3, r2, r10, r1
+ mla r2, r10, r0, r2
+ mla r2, r9, r1, r2
+ mov r1, r3, lsr #0xc
+ ldr r0, [sp, #0x18]
+ orr r1, r1, r2, lsl #0x14
+ adds r0, r0, r1
+ str r0, [sp, #0x6c]
+ ldr r1, [r5, #0xc]
+ mov r0, r1, asr #0x1f
+ umull r3, r2, r10, r1
+ mla r2, r10, r0, r2
+ mla r2, r9, r1, r2
+ mov r1, r3, lsr #0xc
+ ldr r0, [sp, #0x1c]
+ orr r1, r1, r2, lsl #0x14
+ adds r0, r0, r1
+ str r0, [sp, #0x70]
+ ldr r1, [r5, #0x10]
+ mov r0, r1, asr #0x1f
+ umull r3, r2, r10, r1
+ mla r2, r10, r0, r2
+ mla r2, r9, r1, r2
+ mov r1, r3, lsr #0xc
+ ldr r0, [sp, #0x20]
+ orr r1, r1, r2, lsl #0x14
+ adds r0, r0, r1
+ str r0, [sp, #0x74]
+ ldr r1, [r5, #0x14]
+ mov r0, r1, asr #0x1f
+ umull r3, r2, r10, r1
+ mla r2, r10, r0, r2
+ mla r2, r9, r1, r2
+ mov r1, r3, lsr #0xc
+ ldr r0, [sp, #0x24]
+ orr r1, r1, r2, lsl #0x14
+ adds r0, r0, r1
+ str r0, [sp, #0x78]
+ ldr r1, [r5, #0x18]
+ mov r0, r1, asr #0x1f
+ umull r3, r2, r10, r1
+ mla r2, r10, r0, r2
+ mla r2, r9, r1, r2
+ mov r1, r3, lsr #0xc
+ ldr r0, [sp, #0x28]
+ orr r1, r1, r2, lsl #0x14
+ adds r0, r0, r1
+ str r0, [sp, #0x7c]
+ ldr r1, [r5, #0x1c]
+ mov r0, r1, asr #0x1f
+ umull r3, r2, r10, r1
+ mla r2, r10, r0, r2
+ mla r2, r9, r1, r2
+ mov r1, r3, lsr #0xc
+ ldr r0, [sp, #0x2c]
+ orr r1, r1, r2, lsl #0x14
+ adds r0, r0, r1
+ str r0, [sp, #0x80]
+ ldr r1, [r5, #0x20]
+ mov r0, r1, asr #0x1f
+ umull r3, r2, r10, r1
+ mla r2, r10, r0, r2
+ mla r2, r9, r1, r2
+ mov r1, r3, lsr #0xc
+ ldr r0, [sp, #0x30]
+ orr r1, r1, r2, lsl #0x14
+ adds r0, r0, r1
+ str r0, [sp, #0x84]
+_020B9500:
+ cmp r11, #0x0
+ bne _020B9538
+_020B9508:
+ mov r0, r6
+ bl G3X_GetClipMtx
+_020B9510: ; 0x020B9510
+ cmp r0, #0x0
+ bne _020B9508
+ ldr r1, [sp, #0x14]
+ ldr r0, _020B98AC ; =0x04000440
+ str r1, [r0, #0x0]
+ ldr r0, [sp, #0x4]
+ mov r1, #0x54
+ mla r0, r4, r1, r0
+ add r0, r0, #0x30
+ bl G3_MultMtx33
+_020B9538:
+ ldrb r1, [r8, #0x2]
+ ldr r2, [sp, #0x34]
+ ldr r0, [r6, #0x0]
+ mov r10, r1, lsl #0x4
+ smull r1, r0, r10, r0
+ mov r1, r1, lsr #0xc
+ orr r1, r1, r0, lsl #0x14
+ adds r0, r2, r1
+ str r0, [sp, #0x34]
+ mov r9, r10, asr #0x1f
+ ldr r2, [sp, #0x38]
+ ldr r0, [r6, #0x4]
+ ldr r3, [sp, #0x3c]
+ smull r1, r0, r10, r0
+ mov r1, r1, lsr #0xc
+ orr r1, r1, r0, lsl #0x14
+ adds r0, r2, r1
+ str r0, [sp, #0x38]
+ ldr r0, [r6, #0x8]
+ ldr r2, [sp, #0x40]
+ smull r1, r0, r10, r0
+ mov r1, r1, lsr #0xc
+ orr r1, r1, r0, lsl #0x14
+ adds r0, r3, r1
+ str r0, [sp, #0x3c]
+ ldr r0, [r6, #0x10]
+ ldr r3, [sp, #0x44]
+ smull r1, r0, r10, r0
+ mov r1, r1, lsr #0xc
+ orr r1, r1, r0, lsl #0x14
+ adds r0, r2, r1
+ str r0, [sp, #0x40]
+ ldr r0, [r6, #0x14]
+ ldr r2, [sp, #0x48]
+ smull r1, r0, r10, r0
+ mov r1, r1, lsr #0xc
+ orr r1, r1, r0, lsl #0x14
+ adds r0, r3, r1
+ str r0, [sp, #0x44]
+ ldr r0, [r6, #0x18]
+ ldr r3, [sp, #0x4c]
+ smull r1, r0, r10, r0
+ mov r1, r1, lsr #0xc
+ orr r1, r1, r0, lsl #0x14
+ adds r0, r2, r1
+ str r0, [sp, #0x48]
+ ldr r0, [r6, #0x20]
+ ldr r2, [sp, #0x50]
+ smull r1, r0, r10, r0
+ mov r1, r1, lsr #0xc
+ orr r1, r1, r0, lsl #0x14
+ adds r0, r3, r1
+ str r0, [sp, #0x4c]
+ ldr r0, [r6, #0x24]
+ ldr r3, [sp, #0x54]
+ smull r1, r0, r10, r0
+ mov r1, r1, lsr #0xc
+ orr r1, r1, r0, lsl #0x14
+ adds r0, r2, r1
+ str r0, [sp, #0x50]
+ ldr r0, [r6, #0x28]
+ ldr r2, [sp, #0x58]
+ smull r1, r0, r10, r0
+ mov r1, r1, lsr #0xc
+ orr r1, r1, r0, lsl #0x14
+ adds r0, r3, r1
+ str r0, [sp, #0x54]
+ ldr r0, [r6, #0x30]
+ ldr r3, [sp, #0x5c]
+ smull r1, r0, r10, r0
+ mov r1, r1, lsr #0xc
+ orr r1, r1, r0, lsl #0x14
+ adds r0, r2, r1
+ str r0, [sp, #0x58]
+ ldr r0, [r6, #0x34]
+ ldr r2, [sp, #0x60]
+ smull r1, r0, r10, r0
+ mov r1, r1, lsr #0xc
+ orr r1, r1, r0, lsl #0x14
+ adds r0, r3, r1
+ str r0, [sp, #0x5c]
+ ldr r0, [r6, #0x38]
+ smull r1, r0, r10, r0
+ mov r1, r1, lsr #0xc
+ orr r1, r1, r0, lsl #0x14
+ adds r0, r2, r1
+ str r0, [sp, #0x60]
+ cmp r11, #0x0
+ ldr r1, _020B98C0 ; =0x021D03C0
+ ldr r0, [sp, #0xc]
+ add r5, r1, r0
+ add r8, r8, #0x3
+ bne _020B96BC
+_020B96AC:
+ mov r0, r5
+ bl G3X_GetVectorMtx
+_020B96B4: ; 0x020B96B4
+ cmp r0, #0x0
+ bne _020B96AC
+_020B96BC:
+ ldr r0, [sp, #0x8]
+ add r7, r7, #0x1
+ cmp r7, r0
+ blo _020B92E4
+_020B96CC:
+ ldr r1, [r5, #0x0]
+ ldr r4, [sp, #0x64]
+ mov r0, r1, asr #0x1f
+ umull r3, r2, r10, r1
+ mla r2, r10, r0, r2
+ mla r2, r9, r1, r2
+ mov r0, r3, lsr #0xc
+ orr r0, r0, r2, lsl #0x14
+ adds r0, r4, r0
+ str r0, [sp, #0x64]
+ ldr r1, [r5, #0x4]
+ ldr r4, [sp, #0x68]
+ mov r0, r1, asr #0x1f
+ umull r3, r2, r10, r1
+ mla r2, r10, r0, r2
+ mla r2, r9, r1, r2
+ mov r0, r3, lsr #0xc
+ orr r0, r0, r2, lsl #0x14
+ adds r0, r4, r0
+ str r0, [sp, #0x68]
+ ldr r1, [r5, #0x8]
+ ldr r4, [sp, #0x6c]
+ umull r0, r2, r10, r1
+ mov r3, r0, lsr #0xc
+ mov r0, r1, asr #0x1f
+ mla r2, r10, r0, r2
+ mla r2, r9, r1, r2
+ orr r3, r3, r2, lsl #0x14
+ adds r0, r4, r3
+ str r0, [sp, #0x6c]
+ ldr r7, [r5, #0xc]
+ ldr r12, [sp, #0x70]
+ mov r6, r7, asr #0x1f
+ umull r11, r8, r10, r7
+ mla r8, r10, r6, r8
+ mla r8, r9, r7, r8
+ mov r6, r11, lsr #0xc
+ orr r6, r6, r8, lsl #0x14
+ adds r6, r12, r6
+ str r6, [sp, #0x70]
+ ldr r7, [r5, #0x10]
+ ldr r4, [sp, #0x74]
+ mov r6, r7, asr #0x1f
+ umull r11, r8, r10, r7
+ mla r8, r10, r6, r8
+ mla r8, r9, r7, r8
+ mov r6, r11, lsr #0xc
+ orr r6, r6, r8, lsl #0x14
+ adds r4, r4, r6
+ str r4, [sp, #0x74]
+ ldr r6, [r5, #0x14]
+ ldr r3, [sp, #0x78]
+ mov r4, r6, asr #0x1f
+ umull r8, r7, r10, r6
+ mla r7, r10, r4, r7
+ mla r7, r9, r6, r7
+ mov r4, r8, lsr #0xc
+ orr r4, r4, r7, lsl #0x14
+ adds r3, r3, r4
+ str r3, [sp, #0x78]
+ ldr r4, [r5, #0x18]
+ ldr r2, [sp, #0x7c]
+ mov r3, r4, asr #0x1f
+ umull r7, r6, r10, r4
+ mla r6, r10, r3, r6
+ mla r6, r9, r4, r6
+ mov r3, r7, lsr #0xc
+ orr r3, r3, r6, lsl #0x14
+ adds r2, r2, r3
+ str r2, [sp, #0x7c]
+ ldr r3, [r5, #0x1c]
+ ldr r1, [sp, #0x80]
+ mov r2, r3, asr #0x1f
+ umull r6, r4, r10, r3
+ mla r4, r10, r2, r4
+ mla r4, r9, r3, r4
+ mov r2, r6, lsr #0xc
+ orr r2, r2, r4, lsl #0x14
+ adds r1, r1, r2
+ str r1, [sp, #0x80]
+ ldr r2, [r5, #0x20]
+ ldr lr, [sp, #0x84]
+ mov r1, r2, asr #0x1f
+ umull r4, r3, r10, r2
+ mla r3, r10, r1, r3
+ mla r3, r9, r2, r3
+ mov r1, r4, lsr #0xc
+ orr r1, r1, r3, lsl #0x14
+ adds r1, lr, r1
+ add r0, sp, #0x64
+ str r1, [sp, #0x84]
+ bl G3_LoadMtx43
+ ldr r1, _020B98AC ; =0x04000440
+ mov r2, #0x1
+ add r0, sp, #0x34
+ str r2, [r1, #0x0]
+ bl G3_LoadMtx43
+ ldr r3, _020B98AC ; =0x04000440
+ mov r0, #0x0
+ str r0, [r3, #0x0]
+ ldr r1, _020B98BC ; =0x04000450
+ mov r2, #0x1
+ mov r0, #0x2
+ str r2, [r1, #0x0]
+ str r0, [r3, #0x0]
+ ldr r0, [sp, #0x0]
+ ldr r1, [r0, #0x0]
+ ldr r0, _020B98B0 ; =0x0400044C
+ ldrb r2, [r1, #0x1]
+ mov r1, #0x3
+ str r2, [r0, #0x0]
+ ldr r0, [sp, #0x0]
+ ldr r2, [r0, #0x0]
+ ldrb r0, [r2, #0x2]
+ add r0, r0, #0x1
+ mla r1, r0, r1, r2
+ ldr r0, [sp, #0x0]
+ str r1, [r0, #0x0]
+ add sp, sp, #0x8c
+ ldmia sp!, {r4-r11,pc}
+ .balign 4
+_020B98AC: .word 0x04000440
+_020B98B0: .word 0x0400044C
+_020B98B4: .word 0x04000454
+_020B98B8: .word 0x021D0380
+_020B98BC: .word 0x04000450
+_020B98C0: .word 0x021D03C0
+
+ arm_func_start FUN_020B98C4
+FUN_020B98C4: ; 0x020B98C4
+ stmdb sp!, {r4-r11,lr}
+ sub sp, sp, #0xcc
+ mov r10, r0
+ ldr r2, [r10, #0x8]
+ mov r9, r1
+ ands r0, r2, #0x200
+ mov r7, #0x2
+ ldr r6, _020B9C28 ; =0x02106718
+ ldr fp, _020B9C2C ; =0x02106724
+ ldr r5, _020B9C30 ; =0x021066F4
+ beq _020B992C
+ cmp r9, #0x40
+ beq _020B9900
+ cmp r9, #0x60
+ bne _020B9904
+_020B9900:
+ add r7, r7, #0x1
+_020B9904:
+ cmp r9, #0x20
+ beq _020B9914
+ cmp r9, #0x60
+ bne _020B9918
+_020B9914:
+ add r7, r7, #0x1
+_020B9918:
+ ldr r0, [r10, #0x0]
+ add sp, sp, #0xcc
+ add r0, r0, r7
+ str r0, [r10, #0x0]
+ ldmia sp!, {r4-r11,pc}
+_020B992C:
+ cmp r9, #0x40
+ beq _020B993C
+ cmp r9, #0x60
+ bne _020B9974
+_020B993C:
+ add r7, r7, #0x1
+ ands r0, r2, #0x100
+ bne _020B9974
+ cmp r9, #0x40
+ ldreq r0, [r10, #0x0]
+ add r1, sp, #0x0
+ ldreqb r0, [r0, #0x2]
+ mov r2, #0x1
+ streq r0, [sp, #0x0]
+ ldrne r0, [r10, #0x0]
+ ldrneb r0, [r0, #0x3]
+ strne r0, [sp, #0x0]
+ mov r0, #0x14
+ bl FUN_020BB1C0
+_020B9974:
+ ldr r0, [r10, #0x2c]
+ cmp r0, #0x0
+ ldrneb r8, [r10, #0x94]
+ moveq r8, #0x0
+ cmp r8, #0x1
+ bne _020B99C0
+ ldr r1, [r10, #0x8]
+ mov r0, r10
+ bic r1, r1, #0x40
+ str r1, [r10, #0x8]
+ ldr r1, [r10, #0x2c]
+ blx r1
+ ldr r0, [r10, #0x2c]
+ cmp r0, #0x0
+ ldrneb r8, [r10, #0x94]
+ ldr r0, [r10, #0x8]
+ moveq r8, #0x0
+ and r1, r0, #0x40
+ b _020B99C4
+_020B99C0:
+ mov r1, #0x0
+_020B99C4:
+ ldr r0, [r10, #0x8]
+ ands r0, r0, #0x100
+ bne _020B9BA4
+ cmp r1, #0x0
+ bne _020B9BA4
+ bl FUN_020BB394
+ ldr r2, _020B9C34 ; =0x00151110
+ ldr r1, _020B9C38 ; =0x04000400
+ mov r0, #0x0
+ str r2, [r1, #0x0]
+ str r0, [r1, #0x0]
+ str r0, [r1, #0x0]
+ add r4, sp, #0x8
+_020B99F8:
+ mov r0, r4
+ bl G3X_GetClipMtx
+_020B9A00: ; 0x020B9A00
+ cmp r0, #0x0
+ bne _020B99F8
+ ldr r0, _020B9C3C ; =0x021CED18
+ ldr r1, [r0, #0xfc]
+ ands r0, r1, #0x1
+ beq _020B9A38
+ bl FUN_020B82A4
+ add r1, sp, #0x48
+ bl MTX_Copy43To44_
+ add r0, sp, #0x8
+ add r1, sp, #0x48
+ mov r2, r0
+ bl MTX_Concat44
+ b _020B9A5C
+_020B9A38:
+ ands r0, r1, #0x2
+ beq _020B9A5C
+ ldr r0, _020B9C40 ; =0x021CED64
+ add r1, sp, #0x88
+ bl MTX_Copy43To44_
+ add r0, sp, #0x8
+ add r1, sp, #0x88
+ mov r2, r0
+ bl MTX_Concat44
+_020B9A5C:
+ ldr r1, [sp, #0x38]
+ add r0, sp, #0x8
+ str r1, [r6, #0x0]
+ ldr r1, [sp, #0x3c]
+ str r1, [r6, #0x4]
+ ldr r1, [sp, #0x40]
+ str r1, [r6, #0x8]
+ bl VEC_Mag
+_020B9A7C: ; 0x020B9A7C
+ str r0, [r11, #0x0]
+ add r0, sp, #0x18
+ bl VEC_Mag
+ str r0, [r11, #0x4]
+ add r0, sp, #0x28
+ bl VEC_Mag
+ str r0, [r11, #0x8]
+ ldr r0, [sp, #0x1c]
+ cmp r0, #0x0
+ bne _020B9AB0
+ ldr r0, [sp, #0x20]
+ cmp r0, #0x0
+ beq _020B9AD4
+_020B9AB0:
+ add r0, sp, #0x18
+ add r1, r5, #0xc
+ bl VEC_Normalize
+ ldr r0, [r5, #0x14]
+ rsb r0, r0, #0x0
+ str r0, [r5, #0x1c]
+ ldr r0, [r5, #0x10]
+ str r0, [r5, #0x20]
+ b _020B9AF4
+_020B9AD4:
+ add r0, sp, #0x28
+ add r1, r5, #0x18
+ bl VEC_Normalize
+ ldr r0, [r5, #0x1c]
+ rsb r0, r0, #0x0
+ str r0, [r5, #0x14]
+ ldr r0, [r5, #0x20]
+ str r0, [r5, #0x10]
+_020B9AF4:
+ ldr r0, _020B9C3C ; =0x021CED18
+ ldr r1, [r0, #0xfc]
+ ands r0, r1, #0x1
+ beq _020B9B48
+ ldr r3, _020B9C44 ; =0x00171012
+ ldr r1, _020B9C38 ; =0x04000400
+ ldr r0, _020B9C48 ; =0x021066EC
+ mov r2, #0x8
+ str r3, [r1, #0x0]
+ bl MIi_CpuSend32
+ bl FUN_020B8264
+ ldr r1, _020B9C38 ; =0x04000400
+ mov r2, #0x30
+ bl MIi_CpuSend32
+ ldr r2, _020B9C4C ; =0x00001B19
+ ldr r1, _020B9C38 ; =0x04000400
+ ldr r0, _020B9C30 ; =0x021066F4
+ str r2, [r1, #0x0]
+ mov r2, #0x3c
+ bl MIi_CpuSend32
+ b _020B9BA4
+_020B9B48:
+ ands r0, r1, #0x2
+ beq _020B9B94
+ ldr r3, _020B9C44 ; =0x00171012
+ ldr r1, _020B9C38 ; =0x04000400
+ ldr r0, _020B9C48 ; =0x021066EC
+ mov r2, #0x8
+ str r3, [r1, #0x0]
+ bl MIi_CpuSend32
+ bl FUN_020B8344
+ ldr r1, _020B9C38 ; =0x04000400
+ mov r2, #0x30
+ bl MIi_CpuSend32
+ ldr r2, _020B9C4C ; =0x00001B19
+ ldr r1, _020B9C38 ; =0x04000400
+ ldr r0, _020B9C30 ; =0x021066F4
+ str r2, [r1, #0x0]
+ mov r2, #0x3c
+ bl MIi_CpuSend32
+ b _020B9BA4
+_020B9B94:
+ ldr r0, _020B9C50 ; =0x021066E8
+ ldr r1, _020B9C38 ; =0x04000400
+ mov r2, #0x48
+ bl MIi_CpuSend32
+_020B9BA4:
+ cmp r8, #0x3
+ movne r0, #0x0
+ bne _020B9BD0
+ ldr r1, [r10, #0x8]
+ mov r0, r10
+ bic r1, r1, #0x40
+ str r1, [r10, #0x8]
+ ldr r1, [r10, #0x2c]
+ blx r1
+ ldr r0, [r10, #0x8]
+ and r0, r0, #0x40
+_020B9BD0:
+ cmp r9, #0x20
+ beq _020B9BE0
+ cmp r9, #0x60
+ bne _020B9C14
+_020B9BE0:
+ cmp r0, #0x0
+ add r7, r7, #0x1
+ bne _020B9C14
+ ldr r0, [r10, #0x8]
+ ands r0, r0, #0x100
+ bne _020B9C14
+ ldr r0, [r10, #0x0]
+ add r1, sp, #0x4
+ ldrb r3, [r0, #0x2]
+ mov r0, #0x13
+ mov r2, #0x1
+ str r3, [sp, #0x4]
+ bl FUN_020BB1C0
+_020B9C14:
+ ldr r0, [r10, #0x0]
+ add r0, r0, r7
+ str r0, [r10, #0x0]
+ add sp, sp, #0xcc
+ ldmia sp!, {r4-r11,pc}
+ .balign 4
+_020B9C28: .word 0x02106718
+_020B9C2C: .word 0x02106724
+_020B9C30: .word 0x021066F4
+_020B9C34: .word 0x00151110
+_020B9C38: .word 0x04000400
+_020B9C3C: .word 0x021CED18
+_020B9C40: .word 0x021CED64
+_020B9C44: .word 0x00171012
+_020B9C48: .word 0x021066EC
+_020B9C4C: .word 0x00001B19
+_020B9C50: .word 0x021066E8
+
+ arm_func_start FUN_020B9C54
+FUN_020B9C54: ; 0x020B9C54
+ stmdb sp!, {r4-r10,lr}
+ sub sp, sp, #0xc8
+ mov r9, r0
+ ldr r2, [r9, #0x8]
+ mov r8, r1
+ ands r0, r2, #0x200
+ mov r6, #0x2
+ ldr r5, _020B9F58 ; =0x021066D0
+ ldr r4, _020B9F5C ; =0x021066DC
+ beq _020B9CB8
+ cmp r8, #0x40
+ beq _020B9C8C
+ cmp r8, #0x60
+ bne _020B9C90
+_020B9C8C:
+ add r6, r6, #0x1
+_020B9C90:
+ cmp r8, #0x20
+ beq _020B9CA0
+ cmp r8, #0x60
+ bne _020B9CA4
+_020B9CA0:
+ add r6, r6, #0x1
+_020B9CA4:
+ ldr r0, [r9, #0x0]
+ add sp, sp, #0xc8
+ add r0, r0, r6
+ str r0, [r9, #0x0]
+ ldmia sp!, {r4-r10,pc}
+_020B9CB8:
+ cmp r8, #0x40
+ beq _020B9CC8
+ cmp r8, #0x60
+ bne _020B9D00
+_020B9CC8:
+ add r6, r6, #0x1
+ ands r0, r2, #0x100
+ bne _020B9D00
+ cmp r8, #0x40
+ ldreq r0, [r9, #0x0]
+ add r1, sp, #0x0
+ ldreqb r0, [r0, #0x2]
+ mov r2, #0x1
+ streq r0, [sp, #0x0]
+ ldrne r0, [r9, #0x0]
+ ldrneb r0, [r0, #0x3]
+ strne r0, [sp, #0x0]
+ mov r0, #0x14
+ bl FUN_020BB1C0
+_020B9D00:
+ ldr r0, [r9, #0x28]
+ cmp r0, #0x0
+ ldrneb r7, [r9, #0x93]
+ moveq r7, #0x0
+ cmp r7, #0x1
+ bne _020B9D4C
+ ldr r1, [r9, #0x8]
+ mov r0, r9
+ bic r1, r1, #0x40
+ str r1, [r9, #0x8]
+ ldr r1, [r9, #0x28]
+ blx r1
+ ldr r0, [r9, #0x28]
+ cmp r0, #0x0
+ ldrneb r7, [r9, #0x93]
+ ldr r0, [r9, #0x8]
+ moveq r7, #0x0
+ and r1, r0, #0x40
+ b _020B9D50
+_020B9D4C:
+ mov r1, #0x0
+_020B9D50:
+ ldr r0, [r9, #0x8]
+ ands r0, r0, #0x100
+ bne _020B9ED4
+ cmp r1, #0x0
+ bne _020B9ED4
+ bl FUN_020BB394
+ ldr r2, _020B9F60 ; =0x00151110
+ ldr r1, _020B9F64 ; =0x04000400
+ mov r0, #0x0
+ str r2, [r1, #0x0]
+ str r0, [r1, #0x0]
+ str r0, [r1, #0x0]
+ add r10, sp, #0x8
+_020B9D84:
+ mov r0, r10
+ bl G3X_GetClipMtx
+_020B9D8C: ; 0x020B9D8C
+ cmp r0, #0x0
+ bne _020B9D84
+ ldr r0, _020B9F68 ; =0x021CED18
+ ldr r1, [r0, #0xfc]
+ ands r0, r1, #0x1
+ beq _020B9DC4
+ bl FUN_020B82A4
+ add r1, sp, #0x48
+ bl MTX_Copy43To44_
+ add r0, sp, #0x8
+ add r1, sp, #0x48
+ mov r2, r0
+ bl MTX_Concat44
+ b _020B9DE8
+_020B9DC4:
+ ands r0, r1, #0x2
+ beq _020B9DE8
+ ldr r0, _020B9F6C ; =0x021CED64
+ add r1, sp, #0x88
+ bl MTX_Copy43To44_
+ add r0, sp, #0x8
+ add r1, sp, #0x88
+ mov r2, r0
+ bl MTX_Concat44
+_020B9DE8:
+ ldr r1, [sp, #0x38]
+ add r0, sp, #0x8
+ str r1, [r5, #0x0]
+ ldr r1, [sp, #0x3c]
+ str r1, [r5, #0x4]
+ ldr r1, [sp, #0x40]
+ str r1, [r5, #0x8]
+ bl VEC_Mag
+_020B9E08: ; 0x020B9E08
+ str r0, [r4, #0x0]
+ add r0, sp, #0x18
+ bl VEC_Mag
+ str r0, [r4, #0x4]
+ add r0, sp, #0x28
+ bl VEC_Mag
+ ldr r1, _020B9F68 ; =0x021CED18
+ str r0, [r4, #0x8]
+ ldr r1, [r1, #0xfc]
+ ands r0, r1, #0x1
+ beq _020B9E78
+ ldr r3, _020B9F70 ; =0x00171012
+ ldr r1, _020B9F64 ; =0x04000400
+ ldr r0, _020B9F74 ; =0x021066A4
+ mov r2, #0x8
+ str r3, [r1, #0x0]
+ bl MIi_CpuSend32
+ bl FUN_020B8264
+ ldr r1, _020B9F64 ; =0x04000400
+ mov r2, #0x30
+ bl MIi_CpuSend32
+ ldr r2, _020B9F78 ; =0x00001B19
+ ldr r1, _020B9F64 ; =0x04000400
+ ldr r0, _020B9F7C ; =0x021066AC
+ str r2, [r1, #0x0]
+ mov r2, #0x3c
+ bl MIi_CpuSend32
+ b _020B9ED4
+_020B9E78:
+ ands r0, r1, #0x2
+ beq _020B9EC4
+ ldr r3, _020B9F70 ; =0x00171012
+ ldr r1, _020B9F64 ; =0x04000400
+ ldr r0, _020B9F74 ; =0x021066A4
+ mov r2, #0x8
+ str r3, [r1, #0x0]
+ bl MIi_CpuSend32
+ bl FUN_020B8344
+ ldr r1, _020B9F64 ; =0x04000400
+ mov r2, #0x30
+ bl MIi_CpuSend32
+ ldr r2, _020B9F78 ; =0x00001B19
+ ldr r1, _020B9F64 ; =0x04000400
+ ldr r0, _020B9F7C ; =0x021066AC
+ str r2, [r1, #0x0]
+ mov r2, #0x3c
+ bl MIi_CpuSend32
+ b _020B9ED4
+_020B9EC4:
+ ldr r0, _020B9F80 ; =0x021066A0
+ ldr r1, _020B9F64 ; =0x04000400
+ mov r2, #0x48
+ bl MIi_CpuSend32
+_020B9ED4:
+ cmp r7, #0x3
+ movne r0, #0x0
+ bne _020B9F00
+ ldr r1, [r9, #0x8]
+ mov r0, r9
+ bic r1, r1, #0x40
+ str r1, [r9, #0x8]
+ ldr r1, [r9, #0x28]
+ blx r1
+ ldr r0, [r9, #0x8]
+ and r0, r0, #0x40
+_020B9F00:
+ cmp r8, #0x20
+ beq _020B9F10
+ cmp r8, #0x60
+ bne _020B9F44
+_020B9F10:
+ cmp r0, #0x0
+ add r6, r6, #0x1
+ bne _020B9F44
+ ldr r0, [r9, #0x8]
+ ands r0, r0, #0x100
+ bne _020B9F44
+ ldr r0, [r9, #0x0]
+ add r1, sp, #0x4
+ ldrb r3, [r0, #0x2]
+ mov r0, #0x13
+ mov r2, #0x1
+ str r3, [sp, #0x4]
+ bl FUN_020BB1C0
+_020B9F44:
+ ldr r0, [r9, #0x0]
+ add r0, r0, r6
+ str r0, [r9, #0x0]
+ add sp, sp, #0xc8
+ ldmia sp!, {r4-r10,pc}
+ .balign 4
+_020B9F58: .word 0x021066D0
+_020B9F5C: .word 0x021066DC
+_020B9F60: .word 0x00151110
+_020B9F64: .word 0x04000400
+_020B9F68: .word 0x021CED18
+_020B9F6C: .word 0x021CED64
+_020B9F70: .word 0x00171012
+_020B9F74: .word 0x021066A4
+_020B9F78: .word 0x00001B19
+_020B9F7C: .word 0x021066AC
+_020B9F80: .word 0x021066A0
+
+ arm_func_start FUN_020B9F84
+FUN_020B9F84: ; 0x020B9F84
+ stmdb sp!, {r4-r11,lr}
+ sub sp, sp, #0x14
+ mov r10, r0
+ ldr r0, [r10, #0x0]
+ mov r9, r1
+ ldrb r4, [r0, #0x1]
+ mov r7, #0x4
+ strb r4, [r10, #0xae]
+ ldr r0, [r10, #0x8]
+ orr r0, r0, #0x10
+ str r0, [r10, #0x8]
+ ldr r1, [r10, #0x8]
+ ands r0, r1, #0x400
+ beq _020BA01C
+ cmp r9, #0x40
+ beq _020B9FCC
+ cmp r9, #0x60
+ bne _020B9FD0
+_020B9FCC:
+ add r7, r7, #0x1
+_020B9FD0:
+ cmp r9, #0x20
+ beq _020B9FE0
+ cmp r9, #0x60
+ bne _020BA008
+_020B9FE0:
+ add r7, r7, #0x1
+ ands r0, r1, #0x100
+ bne _020BA008
+ ldr r0, [r10, #0x0]
+ add r1, sp, #0x8
+ ldrb r3, [r0, #0x4]
+ mov r0, #0x14
+ mov r2, #0x1
+ str r3, [sp, #0x8]
+ bl FUN_020BB1C0
+_020BA008:
+ ldr r0, [r10, #0x0]
+ add sp, sp, #0x14
+ add r0, r0, r7
+ str r0, [r10, #0x0]
+ ldmia sp!, {r4-r11,pc}
+_020BA01C:
+ cmp r9, #0x40
+ beq _020BA02C
+ cmp r9, #0x60
+ bne _020BA068
+_020BA02C:
+ cmp r9, #0x40
+ ldreq r0, [r10, #0x0]
+ add r7, r7, #0x1
+ ldreqb r0, [r0, #0x4]
+ streq r0, [sp, #0xc]
+ ldrne r0, [r10, #0x0]
+ ldrneb r0, [r0, #0x5]
+ strne r0, [sp, #0xc]
+ ldr r0, [r10, #0x8]
+ ands r0, r0, #0x100
+ bne _020BA068
+ add r1, sp, #0xc
+ mov r0, #0x14
+ mov r2, #0x1
+ bl FUN_020BB1C0
+_020BA068:
+ add r0, r10, #0x12c
+ str r0, [r10, #0xb4]
+ ldr r0, [r10, #0x24]
+ cmp r0, #0x0
+ ldrneb r8, [r10, #0x92]
+ moveq r8, #0x0
+ cmp r8, #0x1
+ bne _020BA0BC
+ ldr r1, [r10, #0x8]
+ mov r0, r10
+ bic r1, r1, #0x40
+ str r1, [r10, #0x8]
+ ldr r1, [r10, #0x24]
+ blx r1
+ ldr r0, [r10, #0x24]
+ cmp r0, #0x0
+ ldrneb r8, [r10, #0x92]
+ ldr r0, [r10, #0x8]
+ moveq r8, #0x0
+ and r0, r0, #0x40
+ b _020BA0C0
+_020BA0BC:
+ mov r0, #0x0
+_020BA0C0:
+ cmp r0, #0x0
+ bne _020BA2CC
+ ldr r0, [r10, #0x4]
+ ldr r1, [r0, #0x34]
+ cmp r1, #0x0
+ beq _020BA0F4
+ mov r0, #0x58
+ mla r6, r4, r0, r1
+ ldr r0, [r10, #0x8]
+ ands r0, r0, #0x80
+ moveq r0, #0x1
+ movne r0, #0x0
+ b _020BA0FC
+_020BA0F4:
+ add r6, r10, #0x12c
+ mov r0, #0x0
+_020BA0FC:
+ cmp r0, #0x0
+ bne _020BA2C8
+ mov r0, #0x0
+ str r0, [r6, #0x0]
+ ldr r0, [r10, #0x4]
+ ldr r1, [r0, #0x10]
+ cmp r1, #0x0
+ beq _020BA134
+ ldr r3, [r0, #0x14]
+ mov r0, r6
+ mov r2, r4
+ blx r3
+ cmp r0, #0x0
+ bne _020BA2C8
+_020BA134:
+ ldr r2, [r10, #0xd4]
+ ldrh r0, [r2, #0x6]
+ ldrh r1, [r2, r0]
+ add r0, r2, r0
+ mla r0, r1, r4, r0
+ ldr r1, [r0, #0x4]
+ ldrh r0, [r2, r1]
+ add r4, r2, r1
+ add r5, r4, #0x4
+ ands r0, r0, #0x1
+ ldrne r0, [r6, #0x0]
+ orrne r0, r0, #0x4
+ strne r0, [r6, #0x0]
+ bne _020BA188
+ ldr r0, [r5, #0x0]
+ str r0, [r6, #0x4c]
+ ldr r0, [r5, #0x4]
+ str r0, [r6, #0x50]
+ ldr r0, [r5, #0x8]
+ add r5, r5, #0xc
+ str r0, [r6, #0x54]
+_020BA188:
+ ldrh r1, [r4, #0x0]
+ ands r0, r1, #0x2
+ ldrne r0, [r6, #0x0]
+ orrne r0, r0, #0x2
+ strne r0, [r6, #0x0]
+ bne _020BA2B0
+ ands r0, r1, #0x8
+ beq _020BA264
+ and r1, r1, #0xf0
+ mov r11, r1, asr #0x4
+ ldrsh r1, [r5, #0x0]
+ add r0, r6, #0x28
+ str r1, [sp, #0x0]
+ ldrsh r1, [r5, #0x2]
+ str r1, [sp, #0x4]
+ blx MI_Zero36B
+ ldrh r0, [r4, #0x0]
+ add r1, r6, r11, lsl #0x2
+ add r5, r5, #0x4
+ ands r0, r0, #0x100
+ movne r0, #0x1000
+ rsbne r2, r0, #0x0
+ moveq r2, #0x1000
+ str r2, [r1, #0x28]
+ ldr r0, _020BA3B4 ; =0x020FF9F0
+ ldr r1, _020BA3B8 ; =0x020FF9F1
+ ldrb r0, [r0, r11, lsl #0x2]
+ add r2, r6, r0, lsl #0x2
+ ldr r0, [sp, #0x0]
+ str r0, [r2, #0x28]
+ ldrb r0, [r1, r11, lsl #0x2]
+ add r1, r6, r0, lsl #0x2
+ ldr r0, [sp, #0x4]
+ str r0, [r1, #0x28]
+ ldrh r0, [r4, #0x0]
+ ands r0, r0, #0x200
+ ldrne r0, [sp, #0x4]
+ rsbne r0, r0, #0x0
+ strne r0, [sp, #0x4]
+ ldr r0, _020BA3BC ; =0x020FF9F2
+ ldrb r0, [r0, r11, lsl #0x2]
+ add r1, r6, r0, lsl #0x2
+ ldr r0, [sp, #0x4]
+ str r0, [r1, #0x28]
+ ldrh r0, [r4, #0x0]
+ ands r0, r0, #0x400
+ ldrne r0, [sp, #0x0]
+ rsbne r0, r0, #0x0
+ strne r0, [sp, #0x0]
+ ldr r0, _020BA3C0 ; =0x020FF9F3
+ ldrb r0, [r0, r11, lsl #0x2]
+ add r1, r6, r0, lsl #0x2
+ ldr r0, [sp, #0x0]
+ str r0, [r1, #0x28]
+ b _020BA2B0
+_020BA264:
+ ldrsh r0, [r4, #0x2]
+ str r0, [r6, #0x28]
+ ldrsh r0, [r5, #0x0]
+ str r0, [r6, #0x2c]
+ ldrsh r0, [r5, #0x2]
+ str r0, [r6, #0x30]
+ ldrsh r0, [r5, #0x4]
+ str r0, [r6, #0x34]
+ ldrsh r0, [r5, #0x6]
+ str r0, [r6, #0x38]
+ ldrsh r0, [r5, #0x8]
+ str r0, [r6, #0x3c]
+ ldrsh r0, [r5, #0xa]
+ str r0, [r6, #0x40]
+ ldrsh r0, [r5, #0xc]
+ str r0, [r6, #0x44]
+ ldrsh r0, [r5, #0xe]
+ add r5, r5, #0x10
+ str r0, [r6, #0x48]
+_020BA2B0:
+ ldrh r3, [r4, #0x0]
+ ldr r2, [r10, #0x0]
+ ldr r4, [r10, #0xe8]
+ mov r0, r6
+ mov r1, r5
+ blx r4
+_020BA2C8:
+ str r6, [r10, #0xb4]
+_020BA2CC:
+ cmp r8, #0x2
+ bne _020BA308
+ ldr r1, [r10, #0x8]
+ mov r0, r10
+ bic r1, r1, #0x40
+ str r1, [r10, #0x8]
+ ldr r1, [r10, #0x24]
+ blx r1
+ ldr r0, [r10, #0x24]
+ cmp r0, #0x0
+ ldrneb r8, [r10, #0x92]
+ ldr r0, [r10, #0x8]
+ moveq r8, #0x0
+ and r0, r0, #0x40
+ b _020BA30C
+_020BA308:
+ mov r0, #0x0
+_020BA30C:
+ cmp r0, #0x0
+ bne _020BA32C
+ ldr r0, [r10, #0x8]
+ ands r0, r0, #0x100
+ bne _020BA32C
+ ldr r0, [r10, #0xb4]
+ ldr r1, [r10, #0xec]
+ blx r1
+_020BA32C:
+ mov r0, #0x0
+ str r0, [r10, #0xb4]
+ cmp r8, #0x3
+ bne _020BA35C
+ ldr r1, [r10, #0x8]
+ mov r0, r10
+ bic r1, r1, #0x40
+ str r1, [r10, #0x8]
+ ldr r1, [r10, #0x24]
+ blx r1
+ ldr r0, [r10, #0x8]
+ and r0, r0, #0x40
+_020BA35C:
+ cmp r9, #0x20
+ beq _020BA36C
+ cmp r9, #0x60
+ bne _020BA3A0
+_020BA36C:
+ cmp r0, #0x0
+ add r7, r7, #0x1
+ bne _020BA3A0
+ ldr r0, [r10, #0x8]
+ ands r0, r0, #0x100
+ bne _020BA3A0
+ ldr r0, [r10, #0x0]
+ add r1, sp, #0x10
+ ldrb r3, [r0, #0x4]
+ mov r0, #0x13
+ mov r2, #0x1
+ str r3, [sp, #0x10]
+ bl FUN_020BB1C0
+_020BA3A0:
+ ldr r0, [r10, #0x0]
+ add r0, r0, r7
+ str r0, [r10, #0x0]
+ add sp, sp, #0x14
+ ldmia sp!, {r4-r11,pc}
+ .balign 4
+_020BA3B4: .word 0x020FF9F0
+_020BA3B8: .word 0x020FF9F1
+_020BA3BC: .word 0x020FF9F2
+_020BA3C0: .word 0x020FF9F3
+
+ arm_func_start FUN_020BA3C4
+FUN_020BA3C4: ; 0x020BA3C4
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ mov r4, r0
+ ldr r3, [r4, #0x8]
+ ands r2, r3, #0x200
+ bne _020BA420
+ ands r2, r3, #0x1
+ beq _020BA420
+ ands r2, r3, #0x2
+ bne _020BA420
+ ldr r5, [r4, #0xdc]
+ ldr r3, [r4, #0x0]
+ ldrh r2, [r5, #0x6]
+ ldrb r3, [r3, #0x1]
+ ldr ip, _020BA434 ; =0x02106650
+ ldrh lr, [r5, r2]
+ add r2, r5, r2
+ mla r2, lr, r3, r2
+ ldr r2, [r2, #0x4]
+ ldrh lr, [r5, r2]
+ add r2, r5, r2
+ ldr r12, [r12, lr, lsl #0x2]
+ blx r12
+_020BA420:
+ ldr r0, [r4, #0x0]
+ add r0, r0, #0x2
+ str r0, [r4, #0x0]
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,pc}
+ .balign 4
+_020BA434: .word 0x02106650
+
+ arm_func_start FUN_020BA438
+FUN_020BA438: ; 0x020BA438
+ stmdb sp!, {r4-r6,lr}
+ mov r6, r0
+ ldr r0, [r6, #0x20]
+ mov r5, r2
+ cmp r0, #0x0
+ ldrneb r4, [r6, #0x91]
+ moveq r4, #0x0
+ cmp r4, #0x1
+ bne _020BA490
+ ldr r1, [r6, #0x8]
+ mov r0, r6
+ bic r1, r1, #0x40
+ str r1, [r6, #0x8]
+ ldr r1, [r6, #0x20]
+ blx r1
+ ldr r0, [r6, #0x20]
+ cmp r0, #0x0
+ ldrneb r4, [r6, #0x91]
+ ldr r0, [r6, #0x8]
+ moveq r4, #0x0
+ and r0, r0, #0x40
+ b _020BA494
+_020BA490:
+ mov r0, #0x0
+_020BA494:
+ cmp r0, #0x0
+ bne _020BA4B8
+ ldr r0, [r6, #0x8]
+ ands r0, r0, #0x100
+ bne _020BA4B8
+ ldr r0, [r5, #0x8]
+ ldr r1, [r5, #0xc]
+ add r0, r5, r0
+ bl FUN_020BB2B0
+_020BA4B8:
+ cmp r4, #0x2
+ bne _020BA4E8
+ ldr r1, [r6, #0x8]
+ mov r0, r6
+ bic r1, r1, #0x40
+ str r1, [r6, #0x8]
+ ldr r1, [r6, #0x20]
+ blx r1
+ ldr r0, [r6, #0x20]
+ cmp r0, #0x0
+ ldrneb r4, [r6, #0x91]
+ moveq r4, #0x0
+_020BA4E8:
+ cmp r4, #0x3
+ ldmneia sp!, {r4-r6,pc}
+_020BA4F0: ; 0x020BA4F0
+ ldr r1, [r6, #0x8]
+ mov r0, r6
+ bic r1, r1, #0x40
+ str r1, [r6, #0x8]
+ ldr r1, [r6, #0x20]
+ blx r1
+ ldmia sp!, {r4-r6,pc}
+
+ arm_func_start FUN_020BA50C
+FUN_020BA50C: ; 0x020BA50C
+ stmdb sp!, {r4-r6,lr}
+ mov r4, r0
+ ldr r5, [r4, #0x8]
+ ands r0, r5, #0x200
+ bne _020BA578
+ ldr r2, [r4, #0x0]
+ ands r0, r5, #0x1
+ ldrb r3, [r2, #0x1]
+ bne _020BA544
+ ands r0, r5, #0x8
+ beq _020BA544
+ ldrb r0, [r4, #0xad]
+ cmp r3, r0
+ beq _020BA578
+_020BA544:
+ ldr r6, [r4, #0xd8]
+ ldr ip, _020BA588 ; =0x02106640
+ ldrh r2, [r6, #0xa]
+ add r5, r6, #0x4
+ mov r0, r4
+ ldrh lr, [r5, r2]
+ add r2, r5, r2
+ mla r2, lr, r3, r2
+ ldr r2, [r2, #0x4]
+ ldrh lr, [r6, r2]
+ add r2, r6, r2
+ ldr r12, [r12, lr, lsl #0x2]
+ blx r12
+_020BA578:
+ ldr r0, [r4, #0x0]
+ add r0, r0, #0x2
+ str r0, [r4, #0x0]
+ ldmia sp!, {r4-r6,pc}
+ .balign 4
+_020BA588: .word 0x02106640
+
+ arm_func_start FUN_020BA58C
+FUN_020BA58C: ; 0x020BA58C
+ stmdb sp!, {r4-r8,lr}
+ sub sp, sp, #0x20
+ mov r8, r0
+ mov r6, r3
+ strb r6, [r8, #0xad]
+ ldr r3, [r8, #0x8]
+ add r0, r8, #0xf4
+ orr r3, r3, #0x8
+ str r3, [r8, #0x8]
+ str r0, [r8, #0xb0]
+ ldr r0, [r8, #0x1c]
+ mov r4, r1
+ cmp r0, #0x0
+ ldrneb r5, [r8, #0x90]
+ mov r7, r2
+ moveq r5, #0x0
+ cmp r5, #0x1
+ bne _020BA608
+ ldr r1, [r8, #0x8]
+ mov r0, r8
+ bic r1, r1, #0x40
+ str r1, [r8, #0x8]
+ ldr r1, [r8, #0x1c]
+ blx r1
+ ldr r0, [r8, #0x1c]
+ cmp r0, #0x0
+ ldrneb r5, [r8, #0x90]
+ ldr r0, [r8, #0x8]
+ moveq r5, #0x0
+ and r0, r0, #0x40
+ b _020BA60C
+_020BA608:
+ mov r0, #0x0
+_020BA60C:
+ cmp r0, #0x0
+ bne _020BA8C0
+ ldr r0, [r8, #0x4]
+ ldr r0, [r0, #0x38]
+ cmp r0, #0x0
+ beq _020BA638
+ ldr r1, [r8, #0x8]
+ ands r1, r1, #0x80
+ moveq r1, #0x38
+ mlaeq r4, r6, r1, r0
+ beq _020BA8BC
+_020BA638:
+ cmp r4, #0x20
+ beq _020BA648
+ cmp r4, #0x40
+ bne _020BA684
+_020BA648:
+ mov r1, r6, lsr #0x5
+ add r1, r8, r1, lsl #0x2
+ and r2, r6, #0x1f
+ mov r3, #0x1
+ mov r2, r3, lsl r2
+ ldr r1, [r1, #0xbc]
+ ands r1, r2, r1
+ beq _020BA684
+ cmp r0, #0x0
+ movne r1, #0x38
+ mlane r4, r6, r1, r0
+ ldreq r1, _020BA9D8 ; =0x021CEF80
+ moveq r0, #0x38
+ mlaeq r4, r6, r0, r1
+ b _020BA8BC
+_020BA684:
+ cmp r0, #0x0
+ beq _020BA6BC
+ add r4, r8, #0xbc
+ mov r3, r6, lsr #0x5
+ ldr r2, [r4, r3, lsl #0x2]
+ and r0, r6, #0x1f
+ mov r1, #0x1
+ orr r0, r2, r1, lsl r0
+ str r0, [r4, r3, lsl #0x2]
+ ldr r1, [r8, #0x4]
+ mov r0, #0x38
+ ldr r1, [r1, #0x38]
+ mla r4, r6, r0, r1
+ b _020BA6F0
+_020BA6BC:
+ cmp r4, #0x40
+ addne r4, r8, #0xf4
+ bne _020BA6F0
+ add lr, r8, #0xbc
+ mov r12, r6, lsr #0x5
+ ldr r1, _020BA9D8 ; =0x021CEF80
+ ldr r4, [lr, r12, lsl #0x2]
+ mov r0, #0x38
+ and r2, r6, #0x1f
+ mov r3, #0x1
+ orr r2, r4, r3, lsl r2
+ mla r4, r6, r0, r1
+ str r2, [lr, r12, lsl #0x2]
+_020BA6F0:
+ mov r0, #0x0
+ str r0, [r4, #0x0]
+ ldr r3, [r8, #0xd8]
+ ldrh r0, [r3, #0xa]
+ add r2, r3, #0x4
+ ldrh r1, [r2, r0]
+ add r0, r2, r0
+ mla r0, r1, r6, r0
+ ldr r0, [r0, #0x4]
+ ldr r1, _020BA9DC ; =0x021CED18
+ add r0, r3, r0
+ ldrh r0, [r0, #0x1e]
+ ands r0, r0, #0x20
+ ldrne r0, [r4, #0x0]
+ orrne r0, r0, #0x20
+ strne r0, [r4, #0x0]
+ ldrh r2, [r7, #0x1e]
+ ldr r0, _020BA9E0 ; =0x020FF9D0
+ ldr r12, [r1, #0x94]
+ mov r2, r2, asr #0x6
+ and r2, r2, #0x7
+ ldr lr, [r0, r2, lsl #0x2]
+ ldr r2, [r7, #0x4]
+ mvn r3, lr
+ and r3, r12, r3
+ and r2, r2, lr
+ orr r2, r3, r2
+ str r2, [r4, #0x4]
+ ldrh r12, [r7, #0x1e]
+ ldr r3, [r1, #0x98]
+ ldr r2, [r7, #0x8]
+ mov r12, r12, asr #0x9
+ and r12, r12, #0x7
+ ldr r12, [r0, r12, lsl #0x2]
+ mvn r0, r12
+ and r3, r3, r0
+ and r0, r2, r12
+ orr r0, r3, r0
+ str r0, [r4, #0x8]
+ ldr r3, [r7, #0x10]
+ ldr r0, [r7, #0xc]
+ ldr r2, [r1, #0x9c]
+ mvn r1, r3
+ and r1, r2, r1
+ and r0, r0, r3
+ orr r0, r1, r0
+ str r0, [r4, #0xc]
+ ldr r0, [r7, #0x14]
+ str r0, [r4, #0x10]
+ ldrh r0, [r7, #0x1c]
+ str r0, [r4, #0x14]
+ ldrh r1, [r7, #0x1e]
+ ands r0, r1, #0x1
+ beq _020BA850
+ ands r1, r1, #0x2
+ ldrne r1, [r4, #0x0]
+ add r0, r7, #0x2c
+ orrne r1, r1, #0x1
+ strne r1, [r4, #0x0]
+ bne _020BA7F4
+ ldr r1, [r0, #0x0]
+ str r1, [r4, #0x18]
+ ldr r1, [r0, #0x4]
+ add r0, r0, #0x8
+ str r1, [r4, #0x1c]
+_020BA7F4:
+ ldrh r1, [r7, #0x1e]
+ ands r1, r1, #0x4
+ ldrne r1, [r4, #0x0]
+ orrne r1, r1, #0x2
+ strne r1, [r4, #0x0]
+ bne _020BA820
+ ldrsh r1, [r0, #0x0]
+ strh r1, [r4, #0x20]
+ ldrsh r1, [r0, #0x2]
+ add r0, r0, #0x4
+ strh r1, [r4, #0x22]
+_020BA820:
+ ldrh r1, [r7, #0x1e]
+ ands r1, r1, #0x8
+ ldreq r1, [r0, #0x0]
+ streq r1, [r4, #0x24]
+ ldreq r0, [r0, #0x4]
+ streq r0, [r4, #0x28]
+ ldrne r0, [r4, #0x0]
+ orrne r0, r0, #0x4
+ strne r0, [r4, #0x0]
+ ldr r0, [r4, #0x0]
+ orr r0, r0, #0x8
+ str r0, [r4, #0x0]
+_020BA850:
+ ldr r0, [r8, #0x4]
+ ldr r1, [r0, #0x8]
+ cmp r1, #0x0
+ beq _020BA890
+ mov r2, r6, lsr #0x5
+ add r2, r0, r2, lsl #0x2
+ and r3, r6, #0x1f
+ mov r12, #0x1
+ mov r3, r12, lsl r3
+ ldr r2, [r2, #0x3c]
+ ands r2, r3, r2
+ beq _020BA890
+ ldr r3, [r0, #0xc]
+ mov r0, r4
+ mov r2, r6
+ blx r3
+_020BA890:
+ ldr r0, [r4, #0x0]
+ ands r0, r0, #0x18
+ beq _020BA8BC
+ ldrh r0, [r7, #0x20]
+ strh r0, [r4, #0x2c]
+ ldrh r0, [r7, #0x22]
+ strh r0, [r4, #0x2e]
+ ldr r0, [r7, #0x24]
+ str r0, [r4, #0x30]
+ ldr r0, [r7, #0x28]
+ str r0, [r4, #0x34]
+_020BA8BC:
+ str r4, [r8, #0xb0]
+_020BA8C0:
+ cmp r5, #0x2
+ bne _020BA8FC
+ ldr r1, [r8, #0x8]
+ mov r0, r8
+ bic r1, r1, #0x40
+ str r1, [r8, #0x8]
+ ldr r1, [r8, #0x1c]
+ blx r1
+ ldr r0, [r8, #0x1c]
+ cmp r0, #0x0
+ ldrneb r5, [r8, #0x90]
+ ldr r0, [r8, #0x8]
+ moveq r5, #0x0
+ and r0, r0, #0x40
+ b _020BA900
+_020BA8FC:
+ mov r0, #0x0
+_020BA900:
+ cmp r0, #0x0
+ bne _020BA9AC
+ ldr r4, [r8, #0xb0]
+ ldr r1, [r4, #0xc]
+ ands r0, r1, #0x1f0000
+ beq _020BA9A0
+ ldr r0, [r4, #0x0]
+ ands r0, r0, #0x20
+ bicne r0, r1, #0x1f0000
+ strne r0, [r4, #0xc]
+ ldr r0, [r8, #0x8]
+ bic r0, r0, #0x2
+ str r0, [r8, #0x8]
+ ldr r0, [r8, #0x8]
+ ands r0, r0, #0x100
+ bne _020BA9AC
+ ldr r0, _020BA9E4 ; =0x00293130
+ ldr r3, _020BA9E8 ; =0x00002B2A
+ str r0, [sp, #0x0]
+ ldr r2, [r4, #0x4]
+ add r1, sp, #0x4
+ str r2, [sp, #0x4]
+ ldr r6, [r4, #0x8]
+ mov r2, #0x6
+ str r6, [sp, #0x8]
+ ldr r6, [r4, #0xc]
+ str r6, [sp, #0xc]
+ str r3, [sp, #0x10]
+ ldr r3, [r4, #0x10]
+ str r3, [sp, #0x14]
+ ldr r3, [r4, #0x14]
+ str r3, [sp, #0x18]
+ bl FUN_020BB1C0
+_020BA984: ; 0x020BA984
+ ldr r0, [r4, #0x0]
+ ands r0, r0, #0x18
+ beq _020BA9AC
+ ldr r1, [r8, #0xf0]
+ mov r0, r4
+ blx r1
+ b _020BA9AC
+_020BA9A0:
+ ldr r0, [r8, #0x8]
+ orr r0, r0, #0x2
+ str r0, [r8, #0x8]
+_020BA9AC:
+ cmp r5, #0x3
+ addne sp, sp, #0x20
+ ldmneia sp!, {r4-r8,pc}
+_020BA9B8: ; 0x020BA9B8
+ ldr r1, [r8, #0x8]
+ mov r0, r8
+ bic r1, r1, #0x40
+ str r1, [r8, #0x8]
+ ldr r1, [r8, #0x1c]
+ blx r1
+ add sp, sp, #0x20
+ ldmia sp!, {r4-r8,pc}
+ .balign 4
+_020BA9D8: .word 0x021CEF80
+_020BA9DC: .word 0x021CED18
+_020BA9E0: .word 0x020FF9D0
+_020BA9E4: .word 0x00293130
+_020BA9E8: .word 0x00002B2A
+
+ arm_func_start FUN_020BA9EC
+FUN_020BA9EC: ; 0x020BA9EC
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ mov r5, r0
+ ldr r1, [r5, #0x8]
+ ands r0, r1, #0x200
+ bne _020BAAAC
+ ands r0, r1, #0x1
+ beq _020BAAAC
+ ldr r0, [r5, #0x18]
+ cmp r0, #0x0
+ ldrneb r4, [r5, #0x8f]
+ moveq r4, #0x0
+ cmp r4, #0x1
+ bne _020BAA58
+ ldr r1, [r5, #0x8]
+ mov r0, r5
+ bic r1, r1, #0x40
+ str r1, [r5, #0x8]
+ ldr r1, [r5, #0x18]
+ blx r1
+ ldr r0, [r5, #0x18]
+ cmp r0, #0x0
+ ldrneb r4, [r5, #0x8f]
+ ldr r0, [r5, #0x8]
+ moveq r4, #0x0
+ and r0, r0, #0x40
+ b _020BAA5C
+_020BAA58:
+ mov r0, #0x0
+_020BAA5C:
+ cmp r0, #0x0
+ bne _020BAA8C
+ ldr r0, [r5, #0x0]
+ ldrb r0, [r0, #0x1]
+ str r0, [sp, #0x0]
+ ldr r0, [r5, #0x8]
+ ands r0, r0, #0x100
+ bne _020BAA8C
+ add r1, sp, #0x0
+ mov r0, #0x14
+ mov r2, #0x1
+ bl FUN_020BB1C0
+_020BAA8C:
+ cmp r4, #0x3
+ bne _020BAAAC
+ ldr r1, [r5, #0x8]
+ mov r0, r5
+ bic r1, r1, #0x40
+ str r1, [r5, #0x8]
+ ldr r1, [r5, #0x18]
+ blx r1
+_020BAAAC:
+ ldr r0, [r5, #0x0]
+ add r0, r0, #0x2
+ str r0, [r5, #0x0]
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,pc}
+
+ arm_func_start FUN_020BAAC0
+FUN_020BAAC0: ; 0x020BAAC0
+ stmdb sp!, {r4-r6,lr}
+ mov r6, r0
+ ldr r0, [r6, #0x8]
+ ands r0, r0, #0x200
+ bne _020BAC38
+ ldr r1, [r6, #0x0]
+ add r0, r6, #0x184
+ ldrb r1, [r1, #0x1]
+ strb r1, [r6, #0xac]
+ ldr r1, [r6, #0x8]
+ ldrb r4, [r6, #0xac]
+ orr r1, r1, #0x4
+ str r1, [r6, #0x8]
+ str r0, [r6, #0xb8]
+ ldr r0, [r6, #0x14]
+ cmp r0, #0x0
+ ldrneb r5, [r6, #0x8e]
+ moveq r5, #0x0
+ cmp r5, #0x1
+ bne _020BAB44
+ ldr r1, [r6, #0x8]
+ mov r0, r6
+ bic r1, r1, #0x40
+ str r1, [r6, #0x8]
+ ldr r1, [r6, #0x14]
+ blx r1
+ ldr r0, [r6, #0x14]
+ cmp r0, #0x0
+ ldrneb r5, [r6, #0x8e]
+ ldr r0, [r6, #0x8]
+ moveq r5, #0x0
+ and r0, r0, #0x40
+ b _020BAB48
+_020BAB44:
+ mov r0, #0x0
+_020BAB48:
+ cmp r0, #0x0
+ bne _020BABAC
+ ldr r12, [r6, #0x4]
+ ldr r1, [r12, #0x18]
+ cmp r1, #0x0
+ beq _020BAB98
+ mov r0, r4, lsr #0x5
+ add r0, r12, r0, lsl #0x2
+ and r2, r4, #0x1f
+ mov r3, #0x1
+ mov r2, r3, lsl r2
+ ldr r0, [r0, #0x4c]
+ ands r0, r2, r0
+ beq _020BAB98
+ ldr r0, [r6, #0xb8]
+ ldr r3, [r12, #0x1c]
+ mov r2, r4
+ blx r3
+ cmp r0, #0x0
+ bne _020BABAC
+_020BAB98:
+ ldr r1, [r6, #0x0]
+ ldr r0, [r6, #0xb8]
+ ldrb r1, [r1, #0x2]
+ and r1, r1, #0x1
+ str r1, [r0, #0x0]
+_020BABAC:
+ cmp r5, #0x2
+ bne _020BABE8
+ ldr r1, [r6, #0x8]
+ mov r0, r6
+ bic r1, r1, #0x40
+ str r1, [r6, #0x8]
+ ldr r1, [r6, #0x14]
+ blx r1
+ ldr r0, [r6, #0x14]
+ cmp r0, #0x0
+ ldrneb r5, [r6, #0x8e]
+ ldr r0, [r6, #0x8]
+ moveq r5, #0x0
+ and r0, r0, #0x40
+ b _020BABEC
+_020BABE8:
+ mov r0, #0x0
+_020BABEC:
+ cmp r0, #0x0
+ bne _020BAC18
+ ldr r0, [r6, #0xb8]
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ ldrne r0, [r6, #0x8]
+ orrne r0, r0, #0x1
+ strne r0, [r6, #0x8]
+ ldreq r0, [r6, #0x8]
+ biceq r0, r0, #0x1
+ streq r0, [r6, #0x8]
+_020BAC18:
+ cmp r5, #0x3
+ bne _020BAC38
+ ldr r1, [r6, #0x8]
+ mov r0, r6
+ bic r1, r1, #0x40
+ str r1, [r6, #0x8]
+ ldr r1, [r6, #0x14]
+ blx r1
+_020BAC38:
+ ldr r0, [r6, #0x0]
+ add r0, r0, #0x3
+ str r0, [r6, #0x0]
+ ldmia sp!, {r4-r6,pc}
+
+ arm_func_start FUN_020BAC48
+FUN_020BAC48: ; 0x020BAC48
+ stmdb sp!, {r4,lr}
+ mov r4, r0
+ ldr r1, [r4, #0x10]
+ cmp r1, #0x0
+ beq _020BAC60
+ blx r1
+_020BAC60:
+ ldr r0, [r4, #0x8]
+ orr r0, r0, #0x20
+ str r0, [r4, #0x8]
+ ldmia sp!, {r4,pc}
+
+ arm_func_start FUN_020BAC70
+FUN_020BAC70: ; 0x020BAC70
+ stmdb sp!, {r4,lr}
+ mov r4, r0
+ ldr r1, [r4, #0xc]
+ cmp r1, #0x0
+ beq _020BAC88
+ blx r1
+_020BAC88:
+ ldr r0, [r4, #0x0]
+ add r0, r0, #0x1
+ str r0, [r4, #0x0]
+ ldmia sp!, {r4,pc}
+
+ arm_func_start FUN_020BAC98
+FUN_020BAC98: ; 0x020BAC98
+ stmdb sp!, {r4,lr}
+ sub sp, sp, #0x188
+ mov r4, r0
+ ldr r0, [r4, #0x0]
+ and r0, r0, #0x10
+ cmp r0, #0x10
+ bne _020BAD2C
+ add r1, r4, #0x3c
+ mov r0, #0x0
+ mov r2, #0x8
+ bl MIi_CpuClear32
+ add r1, r4, #0x44
+ mov r0, #0x0
+ mov r2, #0x8
+ bl MIi_CpuClear32
+ add r1, r4, #0x4c
+ mov r0, #0x0
+ mov r2, #0x8
+ bl MIi_CpuClear32
+ ldr r1, [r4, #0x8]
+ cmp r1, #0x0
+ beq _020BACF8
+ add r0, r4, #0x3c
+ bl FUN_020BAD74
+_020BACF8:
+ ldr r1, [r4, #0x10]
+ cmp r1, #0x0
+ beq _020BAD0C
+ add r0, r4, #0x44
+ bl FUN_020BAD74
+_020BAD0C:
+ ldr r1, [r4, #0x18]
+ cmp r1, #0x0
+ beq _020BAD20
+ add r0, r4, #0x4c
+ bl FUN_020BAD74
+_020BAD20:
+ ldr r0, [r4, #0x0]
+ bic r0, r0, #0x10
+ str r0, [r4, #0x0]
+_020BAD2C:
+ ldr r2, _020BAD70 ; =0x021CEF7C
+ ldr r0, [r2, #0x0]
+ cmp r0, #0x0
+ beq _020BAD4C
+ mov r1, r4
+ bl FUN_020BADE4
+ add sp, sp, #0x188
+ ldmia sp!, {r4,pc}
+_020BAD4C:
+ add r0, sp, #0x0
+ mov r1, r4
+ str r0, [r2, #0x0]
+ bl FUN_020BADE4
+ ldr r0, _020BAD70 ; =0x021CEF7C
+ mov r1, #0x0
+ str r1, [r0, #0x0]
+ add sp, sp, #0x188
+ ldmia sp!, {r4,pc}
+ .balign 4
+_020BAD70: .word 0x021CEF7C
+
+ arm_func_start FUN_020BAD74
+FUN_020BAD74:
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ cmp r1, #0x0
+ addeq sp, sp, #0x4
+ ldmeqia sp!, {r4-r5,pc}
+_020BAD88: ; 0x020BAD88
+ mov r3, #0x1
+ mov r4, #0x0
+_020BAD90:
+ ldrb r2, [r1, #0x19]
+ mov r5, r4
+ cmp r2, #0x0
+ ble _020BADD0
+_020BADA0:
+ add r2, r1, r5, lsl #0x1
+ ldrh r2, [r2, #0x1a]
+ ands r2, r2, #0x100
+ movne lr, r5, asr #0x5
+ andne r2, r5, #0x1f
+ ldrne r12, [r0, lr, lsl #0x2]
+ add r5, r5, #0x1
+ orrne r2, r12, r3, lsl r2
+ strne r2, [r0, lr, lsl #0x2]
+ ldrb r2, [r1, #0x19]
+ cmp r5, r2
+ blt _020BADA0
+_020BADD0:
+ ldr r1, [r1, #0x10]
+ cmp r1, #0x0
+ bne _020BAD90
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,pc}
+
+ arm_func_start FUN_020BADE4
+FUN_020BADE4: ; 0x020BADE4
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ mov r5, r0
+ mov r4, r1
+ mov r1, r5
+ mov r0, #0x0
+ mov r2, #0x188
+ bl MIi_CpuClearFast
+ mov r0, #0x1
+ str r0, [r5, #0xc4]
+ str r0, [r5, #0x8]
+ ldr r0, [r4, #0x30]
+ ldr r2, _020BAF60 ; =0x02106614
+ cmp r0, #0x0
+ strne r0, [r5, #0x0]
+ ldreq r1, [r4, #0x4]
+ ldreq r0, [r1, #0x4]
+ addeq r0, r1, r0
+ streq r0, [r5, #0x0]
+ str r4, [r5, #0x4]
+ ldr r0, [r4, #0x4]
+ ldr r1, _020BAF64 ; =0x02106608
+ add r0, r0, #0x40
+ str r0, [r5, #0xd4]
+ ldr r12, [r4, #0x4]
+ ldr r0, _020BAF68 ; =0x02106620
+ ldr r3, [r12, #0x8]
+ add r3, r12, r3
+ str r3, [r5, #0xd8]
+ ldr r12, [r4, #0x4]
+ ldr r3, [r12, #0xc]
+ add r3, r12, r3
+ str r3, [r5, #0xdc]
+ ldr r3, [r4, #0x4]
+ ldrb r3, [r3, #0x15]
+ ldr r2, [r2, r3, lsl #0x2]
+ str r2, [r5, #0xe8]
+ ldr r2, [r4, #0x4]
+ ldrb r2, [r2, #0x15]
+ ldr r1, [r1, r2, lsl #0x2]
+ str r1, [r5, #0xec]
+ ldr r1, [r4, #0x4]
+ ldrb r1, [r1, #0x16]
+ ldr r0, [r0, r1, lsl #0x2]
+ str r0, [r5, #0xf0]
+ ldr r0, [r4, #0x4]
+ ldr r0, [r0, #0x1c]
+ str r0, [r5, #0xe0]
+ ldr r0, [r4, #0x4]
+ ldr r0, [r0, #0x20]
+ str r0, [r5, #0xe4]
+ ldr r1, [r4, #0x20]
+ cmp r1, #0x0
+ beq _020BAEE0
+ ldrb r0, [r4, #0x24]
+ cmp r0, #0x20
+ bhs _020BAEE0
+ add r0, r5, r0, lsl #0x2
+ str r1, [r0, #0xc]
+ ldrb r0, [r4, #0x24]
+ ldrb r1, [r4, #0x25]
+ add r0, r5, r0
+ strb r1, [r0, #0x8c]
+_020BAEE0:
+ ldr r0, [r4, #0x0]
+ ands r0, r0, #0x1
+ ldrne r0, [r5, #0x8]
+ orrne r0, r0, #0x80
+ strne r0, [r5, #0x8]
+ ldr r0, [r4, #0x0]
+ ands r0, r0, #0x2
+ ldrne r0, [r5, #0x8]
+ orrne r0, r0, #0x100
+ strne r0, [r5, #0x8]
+ ldr r0, [r4, #0x0]
+ ands r0, r0, #0x4
+ ldrne r0, [r5, #0x8]
+ orrne r0, r0, #0x200
+ strne r0, [r5, #0x8]
+ ldr r0, [r4, #0x0]
+ ands r0, r0, #0x8
+ ldrne r0, [r5, #0x8]
+ orrne r0, r0, #0x400
+ strne r0, [r5, #0x8]
+ ldr r1, [r4, #0x28]
+ cmp r1, #0x0
+ beq _020BAF44
+ mov r0, r5
+ blx r1
+_020BAF44:
+ mov r0, r5
+ bl FUN_020BAF6C
+_020BAF4C: ; 0x020BAF4C
+ ldr r0, [r4, #0x0]
+ bic r0, r0, #0x1
+ str r0, [r4, #0x0]
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,pc}
+ .balign 4
+_020BAF60: .word 0x02106614
+_020BAF64: .word 0x02106608
+_020BAF68: .word 0x02106620
+
+ arm_func_start FUN_020BAF6C
+FUN_020BAF6C:
+ stmdb sp!, {r4-r6,lr}
+ mov r5, r0
+ ldr r6, _020BAFB4 ; =0x02106730
+ add r4, r5, #0x8
+_020BAF7C:
+ ldr r1, [r4, #0x0]
+ mov r0, r5
+ bic r1, r1, #0x40
+ str r1, [r4, #0x0]
+ ldr r1, [r5, #0x0]
+ ldrb r3, [r1, #0x0]
+ and r1, r3, #0x1f
+ ldr r2, [r6, r1, lsl #0x2]
+ and r1, r3, #0xe0
+ blx r2
+ ldr r0, [r5, #0x8]
+ ands r0, r0, #0x20
+ beq _020BAF7C
+ ldmia sp!, {r4-r6,pc}
+ .balign 4
+_020BAFB4: .word 0x02106730
+
+ arm_func_start FUN_020BAFB8
+FUN_020BAFB8: ; 0x020BAFB8
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0x6c
+ mov r6, r0
+ ldr r12, [r6, #0x1c]
+ mov r4, r1
+ mov r5, r2
+ mov r7, r3
+ cmp r12, #0x1000
+ beq _020BAFF8
+ add r1, sp, #0x54
+ mov r0, #0x1b
+ mov r2, #0x3
+ str r12, [sp, #0x54]
+ str r12, [sp, #0x58]
+ str r12, [sp, #0x5c]
+ bl FUN_020BB1C0
+_020BAFF8:
+ cmp r7, #0x0
+ beq _020BB150
+ ldr r0, [r6, #0x8]
+ add r3, r6, r0
+ ldrh r0, [r3, #0xa]
+ add r2, r3, #0x4
+ ldrh r1, [r2, r0]
+ add r0, r2, r0
+ mla r0, r1, r4, r0
+ ldr r0, [r0, #0x4]
+ add r4, r3, r0
+ ldr r0, [r4, #0xc]
+ ands r0, r0, #0x1f0000
+ addeq sp, sp, #0x6c
+ ldmeqia sp!, {r4-r7,pc}
+_020BB034: ; 0x020BB034
+ ldr r0, _020BB1B4 ; =0x00293130
+ str r0, [sp, #0x0]
+ ldr r0, [r4, #0x4]
+ str r0, [sp, #0x4]
+ ldr r0, [r4, #0x8]
+ str r0, [sp, #0x8]
+ ldr r1, [r4, #0xc]
+ str r1, [sp, #0xc]
+ ldrh r0, [r4, #0x1e]
+ ands r0, r0, #0x20
+ bicne r0, r1, #0x1f0000
+ ldr r1, _020BB1B8 ; =0x00002B2A
+ strne r0, [sp, #0xc]
+ str r1, [sp, #0x10]
+ ldr r2, [r4, #0x14]
+ ldr r0, [sp, #0x0]
+ str r2, [sp, #0x14]
+ ldrh r3, [r4, #0x1c]
+ add r1, sp, #0x4
+ mov r2, #0x6
+ str r3, [sp, #0x18]
+ bl FUN_020BB1C0
+ ldrh r0, [r4, #0x1e]
+ ands r0, r0, #0x1
+ beq _020BB150
+ ldrb r12, [r6, #0x16]
+ mov r3, #0x8
+ ldr r1, _020BB1BC ; =0x02106620
+ str r3, [sp, #0x1c]
+ ldrh r2, [r4, #0x20]
+ add r0, r4, #0x2c
+ ldr r1, [r1, r12, lsl #0x2]
+ strh r2, [sp, #0x48]
+ ldrh r2, [r4, #0x22]
+ strh r2, [sp, #0x4a]
+ ldr r2, [r4, #0x24]
+ str r2, [sp, #0x4c]
+ ldr r2, [r4, #0x28]
+ str r2, [sp, #0x50]
+ ldrh r2, [r4, #0x1e]
+ ands r2, r2, #0x2
+ orrne r2, r3, #0x1
+ strne r2, [sp, #0x1c]
+ bne _020BB0F8
+ ldr r2, [r0, #0x0]
+ str r2, [sp, #0x34]
+ ldr r2, [r0, #0x4]
+ add r0, r0, #0x8
+ str r2, [sp, #0x38]
+_020BB0F8:
+ ldrh r2, [r4, #0x1e]
+ ands r2, r2, #0x4
+ ldrne r2, [sp, #0x1c]
+ orrne r2, r2, #0x2
+ strne r2, [sp, #0x1c]
+ bne _020BB124
+ ldrsh r2, [r0, #0x0]
+ strh r2, [sp, #0x3c]
+ ldrsh r2, [r0, #0x2]
+ add r0, r0, #0x4
+ strh r2, [sp, #0x3e]
+_020BB124:
+ ldrh r2, [r4, #0x1e]
+ ands r2, r2, #0x8
+ ldreq r2, [r0, #0x0]
+ streq r2, [sp, #0x40]
+ ldreq r0, [r0, #0x4]
+ streq r0, [sp, #0x44]
+ ldrne r0, [sp, #0x1c]
+ orrne r0, r0, #0x4
+ strne r0, [sp, #0x1c]
+ add r0, sp, #0x1c
+ blx r1
+_020BB150:
+ ldr r0, [r6, #0xc]
+ add r2, r6, r0
+ ldrh r0, [r2, #0x6]
+ ldrh r1, [r2, r0]
+ add r0, r2, r0
+ mla r0, r1, r5, r0
+ ldr r0, [r0, #0x4]
+ add r2, r2, r0
+ ldr r0, [r2, #0x8]
+ ldr r1, [r2, #0xc]
+ add r0, r2, r0
+ bl FUN_020BB2B0
+ ldr r3, [r6, #0x20]
+ cmp r3, #0x1000
+ addeq sp, sp, #0x6c
+ ldmeqia sp!, {r4-r7,pc}
+_020BB190: ; 0x020BB190
+ add r1, sp, #0x60
+ mov r0, #0x1b
+ mov r2, #0x3
+ str r3, [sp, #0x60]
+ str r3, [sp, #0x64]
+ str r3, [sp, #0x68]
+ bl FUN_020BB1C0
+ add sp, sp, #0x6c
+ ldmia sp!, {r4-r7,pc}
+ .balign 4
+_020BB1B4: .word 0x00293130
+_020BB1B8: .word 0x00002B2A
+_020BB1BC: .word 0x02106620
+
+ arm_func_start FUN_020BB1C0
+FUN_020BB1C0:
+ stmdb sp!, {r4-r6,lr}
+ ldr r3, _020BB2A4 ; =0x021D1C80
+ mov r6, r0
+ ldr r12, [r3, #0x0]
+ mov r5, r1
+ mov r4, r2
+ cmp r12, #0x0
+ beq _020BB278
+ ldr r0, _020BB2A8 ; =0x021D1C84
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ beq _020BB24C
+ ldr r2, [r12, #0x0]
+ add r0, r2, #0x1
+ add r1, r0, r4
+ cmp r1, #0xc0
+ bhi _020BB24C
+ str r0, [r12, #0x0]
+ ldr r0, [r3, #0x0]
+ cmp r4, #0x0
+ add r0, r0, r2, lsl #0x2
+ str r6, [r0, #0x4]
+ ldmeqia sp!, {r4-r6,pc}
+_020BB21C: ; 0x020BB21C
+ ldr r2, [r3, #0x0]
+ mov r0, r5
+ ldr r1, [r2], #0x4
+ add r1, r2, r1, lsl #0x2
+ mov r2, r4, lsl #0x2
+ bl MIi_CpuCopyFast
+ ldr r0, _020BB2A4 ; =0x021D1C80
+ ldr r1, [r0, #0x0]
+ ldr r0, [r1, #0x0]
+ add r0, r0, r4
+ str r0, [r1, #0x0]
+ ldmia sp!, {r4-r6,pc}
+_020BB24C:
+ ldr r0, [r12, #0x0]
+ cmp r0, #0x0
+ beq _020BB260
+ bl FUN_020BB394
+ b _020BB28C
+_020BB260:
+ ldr r0, _020BB2A8 ; =0x021D1C84
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ beq _020BB28C
+ bl FUN_020BB37C
+ b _020BB28C
+_020BB278:
+ ldr r0, _020BB2A8 ; =0x021D1C84
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ beq _020BB28C
+ bl FUN_020BB37C
+_020BB28C:
+ ldr r1, _020BB2AC ; =0x04000400
+ mov r0, r5
+ mov r2, r4, lsl #0x2
+ str r6, [r1, #0x0]
+ bl MIi_CpuSend32
+ ldmia sp!, {r4-r6,pc}
+ .balign 4
+_020BB2A4: .word 0x021D1C80
+_020BB2A8: .word 0x021D1C84
+_020BB2AC: .word 0x04000400
+
+ arm_func_start FUN_020BB2B0
+FUN_020BB2B0: ; 0x020BB2B0
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ mov r4, r1
+ mov r5, r0
+ cmp r4, #0x100
+ blo _020BB2DC
+ ldr r1, _020BB360 ; =0x02106814
+ mvn r0, #0x0
+ ldr r1, [r1, #0x0]
+ cmp r1, r0
+ bne _020BB2F8
+_020BB2DC:
+ mov r2, r4, lsr #0x2
+ ldr r0, [r5, #0x0]
+ add r1, r5, #0x4
+ sub r2, r2, #0x1
+ bl FUN_020BB1C0
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,pc}
+_020BB2F8:
+ bl FUN_020BB394
+ ldr r0, _020BB364 ; =0x021D1C88
+ ldr r1, _020BB368 ; =0x021D1C84
+ ldr r0, [r0, #0x0]
+ mov r2, #0x1
+ str r2, [r1, #0x0]
+ cmp r0, #0x0
+ beq _020BB33C
+ ldr r0, _020BB360 ; =0x02106814
+ str r1, [sp, #0x0]
+ ldr r0, [r0, #0x0]
+ ldr r3, _020BB36C ; =FUN_020BB370
+ mov r1, r5
+ mov r2, r4
+ bl MI_SendGXCommandAsyncFast
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,pc}
+_020BB33C:
+ ldr r0, _020BB360 ; =0x02106814
+ str r1, [sp, #0x0]
+ ldr r0, [r0, #0x0]
+ ldr r3, _020BB36C ; =FUN_020BB370
+ mov r1, r5
+ mov r2, r4
+ bl MI_SendGXCommandAsync
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,pc}
+ .balign 4
+_020BB360: .word 0x02106814
+_020BB364: .word 0x021D1C88
+_020BB368: .word 0x021D1C84
+_020BB36C: .word FUN_020BB370
+
+ arm_func_start FUN_020BB370
+FUN_020BB370: ; 0x020BB370
+ mov r1, #0x0
+ str r1, [r0, #0x0]
+ bx lr
+
+ arm_func_start FUN_020BB37C
+FUN_020BB37C: ; 0x020BB37C
+ ldr r0, _020BB390 ; =0x021D1C84
+_020BB380:
+ ldr r1, [r0, #0x0]
+ cmp r1, #0x0
+ bne _020BB380
+ bx lr
+ .balign 4
+_020BB390: .word 0x021D1C84
+
+ arm_func_start FUN_020BB394
+FUN_020BB394: ; 0x020BB394
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldr r0, _020BB3FC ; =0x021D1C84
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ beq _020BB3B0
+ bl FUN_020BB37C
+_020BB3B0:
+ ldr r0, _020BB400 ; =0x021D1C80
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ addeq sp, sp, #0x4
+ ldmeqia sp!, {pc}
+ ldr r2, [r0, #0x0]
+ cmp r2, #0x0
+ addeq sp, sp, #0x4
+ ldmeqia sp!, {pc}
+ ldr r1, _020BB404 ; =0x04000400
+ add r0, r0, #0x4
+ mov r2, r2, lsl #0x2
+ bl MIi_CpuSend32
+ ldr r0, _020BB400 ; =0x021D1C80
+ mov r1, #0x0
+ ldr r0, [r0, #0x0]
+ str r1, [r0, #0x0]
+ add sp, sp, #0x4
+ ldmia sp!, {pc}
+ .balign 4
+_020BB3FC: .word 0x021D1C84
+_020BB400: .word 0x021D1C80
+_020BB404: .word 0x04000400
+
+ arm_func_start FUN_020BB408
+FUN_020BB408: ; 0x020BB408
+ stmdb sp!, {r4-r9,lr}
+ sub sp, sp, #0x1c
+ mov r5, r1
+ mov r4, r2
+ ldr r6, _020BB594 ; =0x021CED20
+ ldr r1, _020BB598 ; =0x021CED64
+ add r2, sp, #0x10
+ bl MTX_MultVec43
+ ldr r1, [sp, #0x14]
+ ldr r0, [r6, #0x1c]
+ ldr r2, [sp, #0x10]
+ smull r8, r7, r1, r0
+ ldr r0, [r6, #0xc]
+ ldr r3, [sp, #0x18]
+ smlal r8, r7, r2, r0
+ ldr r1, [r6, #0x2c]
+ ldr r0, [r6, #0x3c]
+ smlal r8, r7, r3, r1
+ mov r1, r8, lsr #0xc
+ orr r1, r1, r7, lsl #0x14
+ add r0, r1, r0
+ bl FX_InvAsync
+ ldr r2, [sp, #0x14]
+ ldr r1, [r6, #0x10]
+ ldr r0, [r6, #0x14]
+ smull lr, r8, r2, r1
+ smull r12, r9, r2, r0
+ ldr r1, [sp, #0x10]
+ ldr r3, [r6, #0x0]
+ ldr r0, [sp, #0x18]
+ smlal lr, r8, r1, r3
+ ldr r7, [r6, #0x20]
+ ldr r2, [r6, #0x30]
+ smlal lr, r8, r0, r7
+ mov r3, lr, lsr #0xc
+ orr r3, r3, r8, lsl #0x14
+ add r7, r3, r2
+ ldr r3, [r6, #0x4]
+ ldr r8, [r6, #0x24]
+ smlal r12, r9, r1, r3
+ smlal r12, r9, r0, r8
+ mov r0, r12, lsr #0xc
+ ldr r2, [r6, #0x34]
+ orr r0, r0, r9, lsl #0x14
+ add r6, r0, r2
+ bl FX_GetDivResultFx64c
+ mov r2, r7, asr #0x1f
+ umull r9, lr, r0, r7
+ mla lr, r0, r2, lr
+ mov r3, #0x80000000
+ mla lr, r1, r7, lr
+ adds r9, r9, r3
+ adc r2, lr, #0x0
+ add r2, r2, #0x1000
+ add r2, r2, r2, lsr #0x1f
+ mov r7, r2, asr #0x1
+ umull lr, r2, r0, r6
+ mov r12, r6, asr #0x1f
+ mla r2, r0, r12, r2
+ mla r2, r1, r6, r2
+ adds r3, lr, r3
+ adc r0, r2, #0x0
+ add r0, r0, #0x1000
+ add r0, r0, r0, lsr #0x1f
+ mov r8, #0x0
+ mov r6, r0, asr #0x1
+ cmp r7, #0x0
+ blt _020BB530
+ cmp r6, #0x0
+ blt _020BB530
+ cmp r7, #0x1000
+ bgt _020BB530
+ cmp r6, #0x1000
+ ble _020BB534
+_020BB530:
+ mvn r8, #0x0
+_020BB534:
+ add r0, sp, #0x0
+ add r1, sp, #0x4
+ add r2, sp, #0x8
+ add r3, sp, #0xc
+ bl FUN_020B8200
+ ldr r2, [sp, #0x0]
+ ldr r0, [sp, #0x8]
+ ldr r12, [sp, #0xc]
+ sub r0, r0, r2
+ mul r0, r7, r0
+ add r1, r0, #0x800
+ ldr r3, [sp, #0x4]
+ add r1, r2, r1, asr #0xc
+ sub r0, r12, r3
+ mul r0, r6, r0
+ str r1, [r5, #0x0]
+ ldr r1, [sp, #0x4]
+ add r0, r0, #0x800
+ rsb r1, r1, #0xbf
+ sub r1, r1, r0, asr #0xc
+ mov r0, r8
+ str r1, [r4, #0x0]
+ add sp, sp, #0x1c
+ ldmia sp!, {r4-r9,pc}
+ .balign 4
+_020BB594: .word 0x021CED20
+_020BB598: .word 0x021CED64
+
+ arm_func_start FUN_020BB59C
+FUN_020BB59C: ; 0x020BB59C
+ stmdb sp!, {r4-r11,lr}
+ sub sp, sp, #0x4
+ mov r5, r0
+ ldr r1, [r5, #0x0]
+ ldr r0, _020BB7C8 ; =0x30415642
+ cmp r1, r0
+ bhi _020BB5F4
+ cmp r1, r0
+ bhs _020BB7B0
+ ldr r0, _020BB7CC ; =0x30414D42
+ cmp r1, r0
+ bhi _020BB5E4
+ cmp r1, r0
+ bhs _020BB7B0
+ ldr r0, _020BB7D0 ; =0x30414342
+ cmp r1, r0
+ beq _020BB7B0
+ b _020BB7BC
+_020BB5E4:
+ ldr r0, _020BB7D4 ; =0x30415442
+ cmp r1, r0
+ beq _020BB7B0
+ b _020BB7BC
+_020BB5F4:
+ ldr r0, _020BB7D8 ; =0x30505442
+ cmp r1, r0
+ bhi _020BB618
+ cmp r1, r0
+ bhs _020BB7B0
+ ldr r0, _020BB7DC ; =0x30444D42
+ cmp r1, r0
+ beq _020BB624
+ b _020BB7BC
+_020BB618:
+ ldr r0, _020BB7E0 ; =0x30585442
+ cmp r1, r0
+ bne _020BB7BC
+_020BB624:
+ mov r11, #0x1
+ mov r0, r5
+ mov r9, r11
+ mov r8, r11
+ bl FUN_020BC0FC
+ movs r4, r0
+ beq _020BB77C
+ bl FUN_020B7E1C
+ mov r7, r0
+ mov r0, r4
+ bl FUN_020B7E10
+ mov r6, r0
+ mov r0, r4
+ bl FUN_020B7CE4
+ mov r10, r0
+ cmp r7, #0x0
+ beq _020BB68C
+ ldr r0, _020BB7E4 ; =0x021064B8
+ mov r1, #0x0
+ ldr r3, [r0, #0x0]
+ mov r0, r7
+ mov r2, r1
+ blx r3
+ movs r7, r0
+ moveq r11, #0x0
+ b _020BB690
+_020BB68C:
+ mov r7, #0x0
+_020BB690:
+ cmp r6, #0x0
+ beq _020BB6BC
+ ldr r1, _020BB7E4 ; =0x021064B8
+ mov r0, r6
+ ldr r3, [r1, #0x0]
+ mov r1, #0x1
+ mov r2, #0x0
+ blx r3
+ movs r6, r0
+ moveq r9, #0x0
+ b _020BB6C0
+_020BB6BC:
+ mov r6, #0x0
+_020BB6C0:
+ cmp r10, #0x0
+ beq _020BB6F0
+ ldr r1, _020BB7E8 ; =0x021064C0
+ ldrh r2, [r4, #0x20]
+ ldr r3, [r1, #0x0]
+ mov r0, r10
+ and r1, r2, #0x8000
+ mov r2, #0x0
+ blx r3
+ movs r10, r0
+ moveq r8, #0x0
+ b _020BB6F4
+_020BB6F0:
+ mov r10, #0x0
+_020BB6F4:
+ cmp r11, #0x0
+ beq _020BB70C
+ cmp r9, #0x0
+ beq _020BB70C
+ cmp r8, #0x0
+ bne _020BB748
+_020BB70C:
+ ldr r1, _020BB7EC ; =0x021064C4
+ mov r0, r10
+ ldr r1, [r1, #0x0]
+ blx r1
+ ldr r1, _020BB7F0 ; =0x021064BC
+ mov r0, r6
+ ldr r1, [r1, #0x0]
+ blx r1
+ ldr r1, _020BB7F0 ; =0x021064BC
+ mov r0, r7
+ ldr r1, [r1, #0x0]
+ blx r1
+ add sp, sp, #0x4
+ mov r0, #0x0
+ ldmia sp!, {r4-r11,pc}
+_020BB748:
+ mov r0, r4
+ mov r1, r7
+ mov r2, r6
+ bl FUN_020B7DFC
+ mov r0, r4
+ mov r1, r10
+ bl FUN_020B7CDC
+ mov r0, r4
+ mov r1, #0x1
+ bl FUN_020B7D28
+ mov r0, r4
+ mov r1, #0x1
+ bl FUN_020B7C78
+_020BB77C:
+ ldr r1, [r5, #0x0]
+ ldr r0, _020BB7DC ; =0x30444D42
+ cmp r1, r0
+ bne _020BB7A4
+ mov r0, r5
+ bl FUN_020BC13C
+_020BB794: ; 0x020BB794
+ cmp r4, #0x0
+ beq _020BB7A4
+ mov r1, r4
+ bl FUN_020B7790
+_020BB7A4:
+ add sp, sp, #0x4
+ mov r0, #0x1
+ ldmia sp!, {r4-r11,pc}
+_020BB7B0:
+ add sp, sp, #0x4
+ mov r0, #0x1
+ ldmia sp!, {r4-r11,pc}
+_020BB7BC:
+ mov r0, #0x0
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r11,pc}
+ .balign 4
+_020BB7C8: .word 0x30415642
+_020BB7CC: .word 0x30414D42
+_020BB7D0: .word 0x30414342
+_020BB7D4: .word 0x30415442
+_020BB7D8: .word 0x30505442
+_020BB7DC: .word 0x30444D42
+_020BB7E0: .word 0x30585442
+_020BB7E4: .word 0x021064B8
+_020BB7E8: .word 0x021064C0
+_020BB7EC: .word 0x021064C4
+_020BB7F0: .word 0x021064BC
+
+ arm_func_start FUN_020BB7F4
+FUN_020BB7F4: ; 0x020BB7F4
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ bl G3X_Init
+ bl FUN_020B84D8
+ ldr r1, _020BB820 ; =0x04000600
+ ldr r0, [r1, #0x0]
+ bic r0, r0, #0xc0000000
+ orr r0, r0, #0x80000000
+ str r0, [r1, #0x0]
+ add sp, sp, #0x4
+ ldmia sp!, {pc}
+ .balign 4
+_020BB820: .word 0x04000600
+
+ arm_func_start FUN_020BB824
+FUN_020BB824: ; 0x020BB824
+ stmdb sp!, {r4-r6,lr}
+ sub sp, sp, #0x40
+ mov r6, r0
+ mov r5, r1
+ bl FUN_020BB394
+ ldr r0, _020BB8B4 ; =0x04000440
+ mov r2, #0x0
+ ldr r1, _020BB8B8 ; =0x04000444
+ str r2, [r0, #0x0]
+ ldr r0, _020BB8BC ; =0x04000454
+ str r2, [r1, #0x0]
+ str r2, [r0, #0x0]
+ cmp r6, #0x0
+ beq _020BB87C
+ add r4, sp, #0x0
+_020BB860:
+ mov r0, r4
+ bl G3X_GetClipMtx
+_020BB868: ; 0x020BB868
+ cmp r0, #0x0
+ bne _020BB860
+ add r0, sp, #0x0
+ mov r1, r6
+ bl MTX_Copy44To43_
+_020BB87C:
+ cmp r5, #0x0
+ beq _020BB894
+_020BB884:
+ mov r0, r5
+ bl G3X_GetVectorMtx
+_020BB88C: ; 0x020BB88C
+ cmp r0, #0x0
+ bne _020BB884
+_020BB894:
+ ldr r1, _020BB8C0 ; =0x04000448
+ mov r2, #0x1
+ ldr r0, _020BB8B4 ; =0x04000440
+ str r2, [r1, #0x0]
+ mov r1, #0x2
+ str r1, [r0, #0x0]
+ add sp, sp, #0x40
+ ldmia sp!, {r4-r6,pc}
+ .balign 4
+_020BB8B4: .word 0x04000440
+_020BB8B8: .word 0x04000444
+_020BB8BC: .word 0x04000454
+_020BB8C0: .word 0x04000448
+
+ arm_func_start thunk_FUN_020ae84c
+thunk_FUN_020ae84c: ; 0x020BB8C4
+ ldr ip, _020BB8CC ; =FUN_020AE84C
+ bx r12
+ .balign 4
+_020BB8CC: .word FUN_020AE84C
+
+ arm_func_start FUN_020BB8D0
+FUN_020BB8D0: ; 0x020BB8D0
+ stmdb sp!, {r4,lr}
+ mov r4, r0
+ mov r0, r1
+ mov r1, r2
+ bl FUN_020B81B0
+ mov r1, r0
+ mov r0, r4
+ bl FUN_020AE868
+ ldmia sp!, {r4,pc}
+
+ arm_func_start FUN_020BB8F4
+FUN_020BB8F4: ; 0x020BB8F4
+ stmdb sp!, {r4-r6,lr}
+ mov r6, r0
+ ldrb r0, [r6, #0x18]
+ mov r5, r1
+ mov r4, #0x0
+ cmp r0, #0x0
+ ldmlsia sp!, {r4-r6,pc}
+_020BB910:
+ mov r0, r6
+ mov r1, r4
+ mov r2, r5
+ bl FUN_020BBC74
+ ldrb r0, [r6, #0x18]
+ add r4, r4, #0x1
+ cmp r4, r0
+ blo _020BB910
+ ldmia sp!, {r4-r6,pc}
+
+ arm_func_start FUN_020BB934
+FUN_020BB934: ; 0x020BB934
+ stmdb sp!, {r4-r6,lr}
+ mov r6, r0
+ ldrb r0, [r6, #0x18]
+ mov r5, r1
+ mov r4, #0x0
+ cmp r0, #0x0
+ ldmlsia sp!, {r4-r6,pc}
+_020BB950:
+ mov r0, r6
+ mov r1, r4
+ mov r2, r5
+ bl FUN_020BBCB8
+ ldrb r0, [r6, #0x18]
+ add r4, r4, #0x1
+ cmp r4, r0
+ blo _020BB950
+ ldmia sp!, {r4-r6,pc}
+
+ arm_func_start FUN_020BB974
+FUN_020BB974: ; 0x020BB974
+ stmdb sp!, {r4-r6,lr}
+ mov r6, r0
+ ldrb r0, [r6, #0x18]
+ mov r5, r1
+ mov r4, #0x0
+ cmp r0, #0x0
+ ldmlsia sp!, {r4-r6,pc}
+_020BB990:
+ mov r0, r6
+ mov r1, r4
+ mov r2, r5
+ bl FUN_020BBCFC
+ ldrb r0, [r6, #0x18]
+ add r4, r4, #0x1
+ cmp r4, r0
+ blo _020BB990
+ ldmia sp!, {r4-r6,pc}
+
+ arm_func_start FUN_020BB9B4
+FUN_020BB9B4: ; 0x020BB9B4
+ stmdb sp!, {r4-r6,lr}
+ mov r6, r0
+ ldrb r0, [r6, #0x18]
+ mov r5, r1
+ mov r4, #0x0
+ cmp r0, #0x0
+ ldmlsia sp!, {r4-r6,pc}
+_020BB9D0:
+ mov r0, r6
+ mov r1, r4
+ mov r2, r5
+ bl FUN_020BBD40
+ ldrb r0, [r6, #0x18]
+ add r4, r4, #0x1
+ cmp r4, r0
+ blo _020BB9D0
+ ldmia sp!, {r4-r6,pc}
+
+ arm_func_start FUN_020BB9F4
+FUN_020BB9F4: ; 0x020BB9F4
+ stmdb sp!, {r4-r6,lr}
+ mov r6, r0
+ ldrb r0, [r6, #0x18]
+ mov r5, r1
+ mov r4, #0x0
+ cmp r0, #0x0
+ ldmlsia sp!, {r4-r6,pc}
+_020BBA10:
+ mov r0, r6
+ mov r1, r4
+ mov r2, r5
+ bl FUN_020BBD84
+ ldrb r0, [r6, #0x18]
+ add r4, r4, #0x1
+ cmp r4, r0
+ blo _020BBA10
+ ldmia sp!, {r4-r6,pc}
+
+ arm_func_start FUN_020BBA34
+FUN_020BBA34: ; 0x020BBA34
+ stmdb sp!, {r4-r6,lr}
+ mov r6, r0
+ ldrb r0, [r6, #0x18]
+ mov r5, r1
+ mov r4, #0x0
+ cmp r0, #0x0
+ ldmlsia sp!, {r4-r6,pc}
+_020BBA50:
+ mov r0, r6
+ mov r1, r4
+ mov r2, r5
+ bl FUN_020BBDC8
+ ldrb r0, [r6, #0x18]
+ add r4, r4, #0x1
+ cmp r4, r0
+ blo _020BBA50
+ ldmia sp!, {r4-r6,pc}
+
+ arm_func_start FUN_020BBA74
+FUN_020BBA74: ; 0x020BBA74
+ stmdb sp!, {r4-r6,lr}
+ mov r6, r0
+ ldrb r0, [r6, #0x18]
+ mov r5, r1
+ mov r4, #0x0
+ cmp r0, #0x0
+ ldmlsia sp!, {r4-r6,pc}
+_020BBA90:
+ mov r0, r6
+ mov r1, r4
+ mov r2, r5
+ bl FUN_020BBE0C
+ ldrb r0, [r6, #0x18]
+ add r4, r4, #0x1
+ cmp r4, r0
+ blo _020BBA90
+ ldmia sp!, {r4-r6,pc}
+
+ arm_func_start FUN_020BBAB4
+FUN_020BBAB4: ; 0x020BBAB4
+ stmdb sp!, {r4-r6,lr}
+ mov r6, r0
+ ldrb r0, [r6, #0x18]
+ mov r5, r1
+ mov r4, #0x0
+ cmp r0, #0x0
+ ldmlsia sp!, {r4-r6,pc}
+_020BBAD0:
+ mov r0, r6
+ mov r1, r4
+ mov r2, r5
+ bl FUN_020BBE50
+ ldrb r0, [r6, #0x18]
+ add r4, r4, #0x1
+ cmp r4, r0
+ blo _020BBAD0
+ ldmia sp!, {r4-r6,pc}
+
+ arm_func_start FUN_020BBAF4
+FUN_020BBAF4: ; 0x020BBAF4
+ stmdb sp!, {r4-r6,lr}
+ mov r6, r0
+ ldrb r0, [r6, #0x18]
+ mov r5, r1
+ mov r4, #0x0
+ cmp r0, #0x0
+ ldmlsia sp!, {r4-r6,pc}
+_020BBB10:
+ mov r0, r6
+ mov r1, r4
+ mov r2, r5
+ bl FUN_020BBE94
+ ldrb r0, [r6, #0x18]
+ add r4, r4, #0x1
+ cmp r4, r0
+ blo _020BBB10
+ ldmia sp!, {r4-r6,pc}
+
+ arm_func_start FUN_020BBB34
+FUN_020BBB34: ; 0x020BBB34
+ stmdb sp!, {r4-r6,lr}
+ mov r6, r0
+ ldrb r0, [r6, #0x18]
+ mov r5, r1
+ mov r4, #0x0
+ cmp r0, #0x0
+ ldmlsia sp!, {r4-r6,pc}
+_020BBB50:
+ mov r0, r6
+ mov r1, r4
+ mov r2, r5
+ bl FUN_020BBED8
+ ldrb r0, [r6, #0x18]
+ add r4, r4, #0x1
+ cmp r4, r0
+ blo _020BBB50
+ ldmia sp!, {r4-r6,pc}
+
+ arm_func_start FUN_020BBB74
+FUN_020BBB74: ; 0x020BBB74
+ stmdb sp!, {r4-r6,lr}
+ mov r6, r0
+ ldrb r0, [r6, #0x18]
+ mov r5, r1
+ mov r4, #0x0
+ cmp r0, #0x0
+ ldmlsia sp!, {r4-r6,pc}
+_020BBB90:
+ mov r0, r6
+ mov r1, r4
+ mov r2, r5
+ bl FUN_020BBF1C
+ ldrb r0, [r6, #0x18]
+ add r4, r4, #0x1
+ cmp r4, r0
+ blo _020BBB90
+ ldmia sp!, {r4-r6,pc}
+
+ arm_func_start FUN_020BBBB4
+FUN_020BBBB4: ; 0x020BBBB4
+ stmdb sp!, {r4-r6,lr}
+ mov r6, r0
+ ldrb r0, [r6, #0x18]
+ mov r5, r1
+ mov r4, #0x0
+ cmp r0, #0x0
+ ldmlsia sp!, {r4-r6,pc}
+_020BBBD0:
+ mov r0, r6
+ mov r1, r4
+ mov r2, r5
+ bl FUN_020BBF60
+ ldrb r0, [r6, #0x18]
+ add r4, r4, #0x1
+ cmp r4, r0
+ blo _020BBBD0
+ ldmia sp!, {r4-r6,pc}
+
+ arm_func_start FUN_020BBBF4
+FUN_020BBBF4: ; 0x020BBBF4
+ stmdb sp!, {r4-r6,lr}
+ mov r6, r0
+ ldrb r0, [r6, #0x18]
+ mov r5, r1
+ mov r4, #0x0
+ cmp r0, #0x0
+ ldmlsia sp!, {r4-r6,pc}
+_020BBC10:
+ mov r0, r6
+ mov r1, r4
+ mov r2, r5
+ bl FUN_020BBFA4
+ ldrb r0, [r6, #0x18]
+ add r4, r4, #0x1
+ cmp r4, r0
+ blo _020BBC10
+ ldmia sp!, {r4-r6,pc}
+
+ arm_func_start FUN_020BBC34
+FUN_020BBC34: ; 0x020BBC34
+ stmdb sp!, {r4-r6,lr}
+ mov r6, r0
+ ldrb r0, [r6, #0x18]
+ mov r5, r1
+ mov r4, #0x0
+ cmp r0, #0x0
+ ldmlsia sp!, {r4-r6,pc}
+_020BBC50:
+ mov r0, r6
+ mov r1, r4
+ mov r2, r5
+ bl FUN_020BBFE8
+ ldrb r0, [r6, #0x18]
+ add r4, r4, #0x1
+ cmp r4, r0
+ blo _020BBC50
+ ldmia sp!, {r4-r6,pc}
+
+ arm_func_start FUN_020BBC74
+FUN_020BBC74: ; 0x020BBC74
+ ldr r3, [r0, #0x8]
+ cmp r2, #0x0
+ add r12, r0, r3
+ ldrh r0, [r12, #0xa]
+ add r3, r12, #0x4
+ ldrh r2, [r3, r0]
+ add r0, r3, r0
+ mla r0, r2, r1, r0
+ ldr r0, [r0, #0x4]
+ add r1, r12, r0
+ ldrne r0, [r1, #0xc]
+ orrne r0, r0, #0x800
+ strne r0, [r1, #0xc]
+ ldreq r0, [r1, #0xc]
+ biceq r0, r0, #0x800
+ streq r0, [r1, #0xc]
+ bx lr
+
+ arm_func_start FUN_020BBCB8
+FUN_020BBCB8: ; 0x020BBCB8
+ ldr r3, [r0, #0x8]
+ cmp r2, #0x0
+ add r12, r0, r3
+ ldrh r0, [r12, #0xa]
+ add r3, r12, #0x4
+ ldrh r2, [r3, r0]
+ add r0, r3, r0
+ mla r0, r2, r1, r0
+ ldr r0, [r0, #0x4]
+ add r1, r12, r0
+ ldrne r0, [r1, #0xc]
+ orrne r0, r0, #0x1000
+ strne r0, [r1, #0xc]
+ ldreq r0, [r1, #0xc]
+ biceq r0, r0, #0x1000
+ streq r0, [r1, #0xc]
+ bx lr
+
+ arm_func_start FUN_020BBCFC
+FUN_020BBCFC: ; 0x020BBCFC
+ ldr r3, [r0, #0x8]
+ cmp r2, #0x0
+ add r12, r0, r3
+ ldrh r0, [r12, #0xa]
+ add r3, r12, #0x4
+ ldrh r2, [r3, r0]
+ add r0, r3, r0
+ mla r0, r2, r1, r0
+ ldr r0, [r0, #0x4]
+ add r1, r12, r0
+ ldrne r0, [r1, #0xc]
+ orrne r0, r0, #0x2000
+ strne r0, [r1, #0xc]
+ ldreq r0, [r1, #0xc]
+ biceq r0, r0, #0x2000
+ streq r0, [r1, #0xc]
+ bx lr
+
+ arm_func_start FUN_020BBD40
+FUN_020BBD40: ; 0x020BBD40
+ ldr r3, [r0, #0x8]
+ cmp r2, #0x0
+ add r12, r0, r3
+ ldrh r0, [r12, #0xa]
+ add r3, r12, #0x4
+ ldrh r2, [r3, r0]
+ add r0, r3, r0
+ mla r0, r2, r1, r0
+ ldr r0, [r0, #0x4]
+ add r1, r12, r0
+ ldrne r0, [r1, #0xc]
+ orrne r0, r0, #0x4000
+ strne r0, [r1, #0xc]
+ ldreq r0, [r1, #0xc]
+ biceq r0, r0, #0x4000
+ streq r0, [r1, #0xc]
+ bx lr
+
+ arm_func_start FUN_020BBD84
+FUN_020BBD84: ; 0x020BBD84
+ ldr r3, [r0, #0x8]
+ cmp r2, #0x0
+ add r12, r0, r3
+ ldrh r0, [r12, #0xa]
+ add r3, r12, #0x4
+ ldrh r2, [r3, r0]
+ add r0, r3, r0
+ mla r0, r2, r1, r0
+ ldr r0, [r0, #0x4]
+ add r1, r12, r0
+ ldrne r0, [r1, #0xc]
+ orrne r0, r0, #0x8000
+ strne r0, [r1, #0xc]
+ ldreq r0, [r1, #0xc]
+ biceq r0, r0, #0x8000
+ streq r0, [r1, #0xc]
+ bx lr
+
+ arm_func_start FUN_020BBDC8
+FUN_020BBDC8: ; 0x020BBDC8
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldr r3, [r0, #0x8]
+ add lr, r0, r3
+ ldrh r0, [lr, #0xa]
+ add r12, lr, #0x4
+ ldrh r3, [r12, r0]
+ add r0, r12, r0
+ mla r0, r3, r1, r0
+ ldr r0, [r0, #0x4]
+ add r1, lr, r0
+ ldr r0, [r1, #0xc]
+ bic r0, r0, #0x1f0000
+ orr r0, r0, r2, lsl #0x10
+ str r0, [r1, #0xc]
+ add sp, sp, #0x4
+ ldmia sp!, {pc}
+
+ arm_func_start FUN_020BBE0C
+FUN_020BBE0C: ; 0x020BBE0C
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldr r3, [r0, #0x8]
+ add lr, r0, r3
+ ldrh r0, [lr, #0xa]
+ add r12, lr, #0x4
+ ldrh r3, [r12, r0]
+ add r0, r12, r0
+ mla r0, r3, r1, r0
+ ldr r0, [r0, #0x4]
+ add r1, lr, r0
+ ldr r0, [r1, #0xc]
+ bic r0, r0, #0x3f000000
+ orr r0, r0, r2, lsl #0x18
+ str r0, [r1, #0xc]
+ add sp, sp, #0x4
+ ldmia sp!, {pc}
+
+ arm_func_start FUN_020BBE50
+FUN_020BBE50: ; 0x020BBE50
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldr r3, [r0, #0x8]
+ add lr, r0, r3
+ ldrh r0, [lr, #0xa]
+ add r12, lr, #0x4
+ ldrh r3, [r12, r0]
+ add r0, r12, r0
+ mla r0, r3, r1, r0
+ ldr r0, [r0, #0x4]
+ add r1, lr, r0
+ ldr r0, [r1, #0xc]
+ bic r0, r0, #0xc0
+ orr r0, r0, r2, lsl #0x6
+ str r0, [r1, #0xc]
+ add sp, sp, #0x4
+ ldmia sp!, {pc}
+
+ arm_func_start FUN_020BBE94
+FUN_020BBE94: ; 0x020BBE94
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldr r3, [r0, #0x8]
+ add lr, r0, r3
+ ldrh r0, [lr, #0xa]
+ add r12, lr, #0x4
+ ldrh r3, [r12, r0]
+ add r0, r12, r0
+ mla r0, r3, r1, r0
+ ldr r0, [r0, #0x4]
+ add r1, lr, r0
+ ldr r0, [r1, #0xc]
+ bic r0, r0, #0x30
+ orr r0, r0, r2, lsl #0x4
+ str r0, [r1, #0xc]
+ add sp, sp, #0x4
+ ldmia sp!, {pc}
+
+ arm_func_start FUN_020BBED8
+FUN_020BBED8: ; 0x020BBED8
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldr r3, [r0, #0x8]
+ add lr, r0, r3
+ ldrh r0, [lr, #0xa]
+ add r12, lr, #0x4
+ ldrh r3, [r12, r0]
+ add r0, r12, r0
+ mla r0, r3, r1, r0
+ ldr r0, [r0, #0x4]
+ add r1, lr, r0
+ ldr r0, [r1, #0xc]
+ bic r0, r0, #0xf
+ orr r0, r0, r2
+ str r0, [r1, #0xc]
+ add sp, sp, #0x4
+ ldmia sp!, {pc}
+
+ arm_func_start FUN_020BBF1C
+FUN_020BBF1C: ; 0x020BBF1C
+ stmdb sp!, {r4,lr}
+ ldr r12, [r0, #0x8]
+ ldr r3, _020BBF5C ; =0x8000FFFF
+ add r4, r0, r12
+ ldrh r0, [r4, #0xa]
+ add lr, r4, #0x4
+ ldrh r12, [lr, r0]
+ add r0, lr, r0
+ mla r0, r12, r1, r0
+ ldr r0, [r0, #0x4]
+ add r1, r4, r0
+ ldr r0, [r1, #0x8]
+ and r0, r0, r3
+ orr r0, r0, r2, lsl #0x10
+ str r0, [r1, #0x8]
+ ldmia sp!, {r4,pc}
+ .balign 4
+_020BBF5C: .word 0x8000FFFF
+
+ arm_func_start FUN_020BBF60
+FUN_020BBF60: ; 0x020BBF60
+ stmdb sp!, {r4,lr}
+ ldr r12, [r0, #0x8]
+ mov r3, #0x8000
+ add r4, r0, r12
+ ldrh r12, [r4, #0xa]
+ add lr, r4, #0x4
+ rsb r0, r3, #0x0
+ ldrh r3, [lr, r12]
+ add r12, lr, r12
+ mla r1, r3, r1, r12
+ ldr r1, [r1, #0x4]
+ add r3, r4, r1
+ ldr r1, [r3, #0x8]
+ and r0, r1, r0
+ orr r0, r0, r2
+ str r0, [r3, #0x8]
+ ldmia sp!, {r4,pc}
+
+ arm_func_start FUN_020BBFA4
+FUN_020BBFA4: ; 0x020BBFA4
+ stmdb sp!, {r4,lr}
+ ldr r12, [r0, #0x8]
+ ldr r3, _020BBFE4 ; =0x8000FFFF
+ add r4, r0, r12
+ ldrh r0, [r4, #0xa]
+ add lr, r4, #0x4
+ ldrh r12, [lr, r0]
+ add r0, lr, r0
+ mla r0, r12, r1, r0
+ ldr r0, [r0, #0x4]
+ add r1, r4, r0
+ ldr r0, [r1, #0x4]
+ and r0, r0, r3
+ orr r0, r0, r2, lsl #0x10
+ str r0, [r1, #0x4]
+ ldmia sp!, {r4,pc}
+ .balign 4
+_020BBFE4: .word 0x8000FFFF
+
+ arm_func_start FUN_020BBFE8
+FUN_020BBFE8: ; 0x020BBFE8
+ stmdb sp!, {r4,lr}
+ ldr r12, [r0, #0x8]
+ mov r3, #0x8000
+ add r4, r0, r12
+ ldrh r12, [r4, #0xa]
+ add lr, r4, #0x4
+ rsb r0, r3, #0x0
+ ldrh r3, [lr, r12]
+ add r12, lr, r12
+ mla r1, r3, r1, r12
+ ldr r1, [r1, #0x4]
+ add r3, r4, r1
+ ldr r1, [r3, #0x4]
+ and r0, r1, r0
+ orr r0, r0, r2
+ str r0, [r3, #0x4]
+ ldmia sp!, {r4,pc}
+
+ arm_func_start FUN_020BC02C
+FUN_020BC02C: ; 0x020BC02C
+ stmdb sp!, {r4-r6,lr}
+ ldrb r4, [r0, #0x18]
+ ldr r3, [r0, #0x8]
+ mov lr, #0x0
+ cmp r4, #0x0
+ add r12, r0, r3
+ ldmlsia sp!, {r4-r6,pc}
+_020BC048: ; 0x020BC048
+ mvn r3, r2
+ add r0, r12, #0x4
+_020BC050:
+ ldrh r5, [r12, #0xa]
+ cmp r1, #0x0
+ ldrh r6, [r0, r5]
+ add r5, r0, r5
+ mla r5, r6, lr, r5
+ ldr r5, [r5, #0x4]
+ add lr, lr, #0x1
+ add r6, r12, r5
+ ldrne r5, [r6, #0x10]
+ orrne r5, r5, r2
+ strne r5, [r6, #0x10]
+ ldreq r5, [r6, #0x10]
+ andeq r5, r5, r3
+ streq r5, [r6, #0x10]
+ cmp lr, r4
+ blo _020BC050
+ ldmia sp!, {r4-r6,pc}
+
+ arm_func_start FUN_020BC094
+FUN_020BC094: ; 0x020BC094
+ stmdb sp!, {r4-r6,lr}
+ ldrb r4, [r0, #0x18]
+ ldr r3, [r0, #0x8]
+ mov lr, #0x0
+ cmp r4, #0x0
+ add r12, r0, r3
+ ldmlsia sp!, {r4-r6,pc}
+_020BC0B0: ; 0x020BC0B0
+ mvn r3, r2
+ add r0, r12, #0x4
+_020BC0B8:
+ ldrh r5, [r12, #0xa]
+ cmp r1, #0x0
+ ldrh r6, [r0, r5]
+ add r5, r0, r5
+ mla r5, r6, lr, r5
+ ldr r5, [r5, #0x4]
+ add lr, lr, #0x1
+ add r6, r12, r5
+ ldrneh r5, [r6, #0x1e]
+ orrne r5, r5, r2
+ strneh r5, [r6, #0x1e]
+ ldreqh r5, [r6, #0x1e]
+ andeq r5, r5, r3
+ streqh r5, [r6, #0x1e]
+ cmp lr, r4
+ blo _020BC0B8
+ ldmia sp!, {r4-r6,pc}
+
+ arm_func_start FUN_020BC0FC
+FUN_020BC0FC: ; 0x020BC0FC
+ ldrh r2, [r0, #0xc]
+ ldrh r1, [r0, #0xe]
+ add r3, r0, r2
+ cmp r1, #0x1
+ bne _020BC12C
+ ldr r2, [r0, #0x0]
+ ldr r1, _020BC138 ; =0x30585442
+ cmp r2, r1
+ ldreq r1, [r3, #0x0]
+ addeq r0, r0, r1
+ movne r0, #0x0
+ bx lr
+_020BC12C:
+ ldr r1, [r3, #0x4]
+ add r0, r0, r1
+ bx lr
+ .balign 4
+_020BC138: .word 0x30585442
+
+ arm_func_start FUN_020BC13C
+FUN_020BC13C:
+ ldrh r1, [r0, #0xc]
+ ldr r1, [r0, r1]
+ add r0, r0, r1
+ bx lr
+
+ arm_func_start FUN_020BC14C
+FUN_020BC14C:
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0x4
+ ldrb r2, [r0, #0x1]
+ cmp r2, #0x10
+ bhs _020BC1E4
+ cmp r2, #0x0
+ ldr lr, [r1, #0x0]
+ ldr r12, [r1, #0x4]
+ ldr r3, [r1, #0x8]
+ ldr r2, [r1, #0xc]
+ mov r4, #0x0
+ bls _020BC294
+ ldrh r5, [r0, #0x6]
+ mov r1, r4
+ add r6, r0, r5
+ ldrh r5, [r6, #0x2]
+ add r6, r6, r5
+_020BC190:
+ ldr r5, [r6, r1]
+ add r7, r6, r1
+ cmp r5, lr
+ bne _020BC1CC
+ ldr r5, [r7, #0x4]
+ cmp r5, r12
+ bne _020BC1CC
+ ldr r5, [r7, #0x8]
+ cmp r5, r3
+ bne _020BC1CC
+ ldr r5, [r7, #0xc]
+ cmp r5, r2
+ addeq sp, sp, #0x4
+ moveq r0, r4
+ ldmeqia sp!, {r4-r7,pc}
+_020BC1CC:
+ ldrb r5, [r0, #0x1]
+ add r4, r4, #0x1
+ add r1, r1, #0x10
+ cmp r4, r5
+ blo _020BC190
+ b _020BC294
+_020BC1E4:
+ add r3, r0, #0x8
+ ldrb r2, [r3, #0x1]
+ cmp r2, #0x0
+ beq _020BC294
+ ldrb r5, [r3, r2, lsl #0x2]
+ ldrb r4, [r3, #0x0]
+ add r2, r3, r2, lsl #0x2
+ cmp r4, r5
+ bls _020BC238
+_020BC208:
+ mov r4, r5, asr #0x5
+ ldr r12, [r1, r4, lsl #0x2]
+ and r4, r5, #0x1f
+ mov r4, r12, lsr r4
+ and r4, r4, #0x1
+ add r4, r2, r4
+ ldrb r12, [r4, #0x1]
+ ldrb r4, [r2, #0x0]
+ ldrb r5, [r3, r12, lsl #0x2]
+ add r2, r3, r12, lsl #0x2
+ cmp r4, r5
+ bhi _020BC208
+_020BC238:
+ ldrh r4, [r0, #0x6]
+ ldr r3, [r1, #0x0]
+ add r12, r0, r4
+ ldrh r4, [r12, #0x2]
+ ldrb r0, [r2, #0x3]
+ add r4, r12, r4
+ ldr r2, [r4, r0, lsl #0x4]
+ add r4, r4, r0, lsl #0x4
+ cmp r2, r3
+ bne _020BC294
+ ldr r3, [r4, #0x4]
+ ldr r2, [r1, #0x4]
+ cmp r3, r2
+ bne _020BC294
+ ldr r3, [r4, #0x8]
+ ldr r2, [r1, #0x8]
+ cmp r3, r2
+ bne _020BC294
+ ldr r2, [r4, #0xc]
+ ldr r1, [r1, #0xc]
+ cmp r2, r1
+ addeq sp, sp, #0x4
+ ldmeqia sp!, {r4-r7,pc}
+_020BC294:
+ mvn r0, #0x0
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r7,pc}
+
+ arm_func_start FUN_020BC2A0
+FUN_020BC2A0: ; 0x020BC2A0
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0x4
+ ldrb r2, [r0, #0x1]
+ cmp r2, #0x10
+ bhs _020BC34C
+ cmp r2, #0x0
+ ldr lr, [r1, #0x0]
+ ldr r12, [r1, #0x4]
+ ldr r3, [r1, #0x8]
+ ldr r2, [r1, #0xc]
+ mov r4, #0x0
+ bls _020BC404
+ ldrh r5, [r0, #0x6]
+ mov r1, r4
+ add r6, r0, r5
+ ldrh r5, [r6, #0x2]
+ add r6, r6, r5
+_020BC2E4:
+ ldr r5, [r6, r1]
+ add r7, r6, r1
+ cmp r5, lr
+ bne _020BC334
+ ldr r5, [r7, #0x4]
+ cmp r5, r12
+ bne _020BC334
+ ldr r5, [r7, #0x8]
+ cmp r5, r3
+ bne _020BC334
+ ldr r5, [r7, #0xc]
+ cmp r5, r2
+ bne _020BC334
+ ldrh r2, [r0, #0x6]
+ add sp, sp, #0x4
+ ldrh r1, [r0, r2]
+ add r0, r0, r2
+ add r0, r0, #0x4
+ mla r0, r1, r4, r0
+ ldmia sp!, {r4-r7,pc}
+_020BC334:
+ ldrb r5, [r0, #0x1]
+ add r4, r4, #0x1
+ add r1, r1, #0x10
+ cmp r4, r5
+ blo _020BC2E4
+ b _020BC404
+_020BC34C:
+ add r3, r0, #0x8
+ ldrb r2, [r3, #0x1]
+ cmp r2, #0x0
+ beq _020BC404
+ ldrb r5, [r3, r2, lsl #0x2]
+ ldrb r4, [r3, #0x0]
+ add r2, r3, r2, lsl #0x2
+ cmp r4, r5
+ bls _020BC3A0
+_020BC370:
+ mov r4, r5, asr #0x5
+ ldr r12, [r1, r4, lsl #0x2]
+ and r4, r5, #0x1f
+ mov r4, r12, lsr r4
+ and r4, r4, #0x1
+ add r4, r2, r4
+ ldrb r12, [r4, #0x1]
+ ldrb r4, [r2, #0x0]
+ ldrb r5, [r3, r12, lsl #0x2]
+ add r2, r3, r12, lsl #0x2
+ cmp r4, r5
+ bhi _020BC370
+_020BC3A0:
+ ldrh r4, [r0, #0x6]
+ ldrb r2, [r2, #0x3]
+ ldr r3, [r1, #0x0]
+ add r0, r0, r4
+ ldrh r4, [r0, #0x2]
+ add r12, r0, r4
+ ldr r4, [r12, r2, lsl #0x4]
+ add r12, r12, r2, lsl #0x4
+ cmp r4, r3
+ bne _020BC404
+ ldr r4, [r12, #0x4]
+ ldr r3, [r1, #0x4]
+ cmp r4, r3
+ bne _020BC404
+ ldr r4, [r12, #0x8]
+ ldr r3, [r1, #0x8]
+ cmp r4, r3
+ bne _020BC404
+ ldr r3, [r12, #0xc]
+ ldr r1, [r1, #0xc]
+ cmp r3, r1
+ ldreqh r1, [r0], #0x4
+ addeq sp, sp, #0x4
+ mlaeq r0, r1, r2, r0
+ ldmeqia sp!, {r4-r7,pc}
+_020BC404:
+ mov r0, #0x0
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r7,pc}
+
+ arm_func_start FUN_020BC410
+FUN_020BC410: ; 0x020BC410
+ ldrh r3, [r0, #0x12]
+ add r0, r0, #0xc
+ ldrh r2, [r0, r3]
+ add r0, r0, r3
+ add r0, r0, #0x4
+ mla r0, r2, r1, r0
+ bx lr
+
+ arm_func_start FUN_020BC42C
+FUN_020BC42C: ; 0x020BC42C
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ mov r5, r0
+ mov r4, r2
+ bl FUN_020BC410
+ ldrsh r1, [r0, #0x4]
+ ldrh r3, [r0, #0x6]
+ mul r2, r1, r4
+ add r3, r5, r3
+ mov r2, r2, lsr #0xc
+ b _020BC45C
+_020BC458:
+ sub r2, r2, #0x1
+_020BC45C:
+ cmp r2, #0x0
+ beq _020BC474
+ mov r1, r2, lsl #0x2
+ ldrh r1, [r3, r1]
+ cmp r1, r4
+ bhs _020BC458
+_020BC474:
+ ldrh r1, [r0, #0x0]
+ b _020BC480
+_020BC47C:
+ add r2, r2, #0x1
+_020BC480:
+ add r0, r2, #0x1
+ cmp r0, r1
+ bhs _020BC49C
+ add r0, r3, r2, lsl #0x2
+ ldrh r0, [r0, #0x4]
+ cmp r0, r4
+ bls _020BC47C
+_020BC49C:
+ add r0, r3, r2, lsl #0x2
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,pc}
+
+ arm_func_start FUN_020BC4A8
+FUN_020BC4A8: ; 0x020BC4A8
+ ldrh r2, [r0, #0xa]
+ add r0, r0, r2
+ add r0, r0, r1, lsl #0x4
+ bx lr
+
+ arm_func_start FUN_020BC4B8
+FUN_020BC4B8: ; 0x020BC4B8
+ ldrh r2, [r0, #0x8]
+ add r0, r0, r2
+ add r0, r0, r1, lsl #0x4
+ bx lr
+
+ arm_func_start FUN_020BC4C8
+FUN_020BC4C8: ; 0x020BC4C8
+ ldrh r2, [r0, #0xc]
+ ldr r2, [r0, r2]
+ add r12, r0, r2
+ ldrh r2, [r12, #0xe]
+ add r3, r12, #0x8
+ ldrh r0, [r3, r2]
+ add r2, r3, r2
+ add r2, r2, #0x4
+ mul r1, r0, r1
+ adds r0, r2, r1
+ ldrne r0, [r0, #0x0]
+ addne r0, r12, r0
+ moveq r0, #0x0
+ bx lr
+
+ arm_func_start FUN_020BC500
+FUN_020BC500:
+ stmdb sp!, {r4,lr}
+ ands r4, r3, #0x8000
+ beq _020BC5E0
+ mov r2, #0x0
+ str r2, [r0, #0x20]
+ ldr r4, [r0, #0x20]
+ ldr r2, _020BC684 ; =0x00007FFF
+ str r4, [r0, #0x1c]
+ ldr r4, [r0, #0x1c]
+ and r3, r3, r2
+ str r4, [r0, #0x18]
+ ldr r4, [r0, #0x18]
+ mov r2, #0x3
+ str r4, [r0, #0x14]
+ ldr r4, [r0, #0x14]
+ mul r2, r3, r2
+ str r4, [r0, #0x10]
+ ldr r4, [r0, #0x10]
+ mov r3, r2, lsl #0x1
+ str r4, [r0, #0xc]
+ ldr r4, [r0, #0xc]
+ add r2, r1, r2, lsl #0x1
+ str r4, [r0, #0x8]
+ ldr r4, [r0, #0x8]
+ str r4, [r0, #0x4]
+ ldr r4, [r0, #0x4]
+ str r4, [r0, #0x0]
+ ldrsh r4, [r1, r3]
+ ldrsh r12, [r2, #0x2]
+ ldrsh r3, [r2, #0x4]
+ and r1, r4, #0xf
+ ands r4, r4, #0x10
+ movne lr, #0x1000
+ rsbne lr, lr, #0x0
+ moveq lr, #0x1000
+ str lr, [r0, r1, lsl #0x2]
+ ldr r4, _020BC688 ; =0x020FFA14
+ ldr lr, _020BC68C ; =0x020FFA15
+ ldrb r4, [r4, r1, lsl #0x2]
+ str r12, [r0, r4, lsl #0x2]
+ ldrb lr, [lr, r1, lsl #0x2]
+ str r3, [r0, lr, lsl #0x2]
+ ldrsh lr, [r2, #0x0]
+ ands lr, lr, #0x20
+ ldr lr, _020BC690 ; =0x020FFA16
+ rsbne r3, r3, #0x0
+ ldrb lr, [lr, r1, lsl #0x2]
+ str r3, [r0, lr, lsl #0x2]
+ ldrsh r2, [r2, #0x0]
+ ands r2, r2, #0x40
+ ldr r2, _020BC694 ; =0x020FFA17
+ rsbne r12, r12, #0x0
+ ldrb r1, [r2, r1, lsl #0x2]
+ str r12, [r0, r1, lsl #0x2]
+ mov r0, #0x0
+ ldmia sp!, {r4,pc}
+_020BC5E0:
+ ldr r1, _020BC684 ; =0x00007FFF
+ mov r12, #0x5
+ and r1, r3, r1
+ mul r3, r1, r12
+ add r1, r2, r3, lsl #0x1
+ ldrsh lr, [r1, #0x8]
+ mov r12, r3, lsl #0x1
+ mov r3, lr, asr #0x3
+ str r3, [r0, #0x10]
+ ldrsh r12, [r2, r12]
+ and r2, lr, #0x7
+ mov r2, r2, lsl #0x10
+ mov r3, r12, asr #0x3
+ str r3, [r0, #0x0]
+ ldrsh r3, [r1, #0x2]
+ and r12, r12, #0x7
+ orr lr, r12, r2, asr #0xd
+ mov r2, r3, asr #0x3
+ str r2, [r0, #0x4]
+ ldrsh r12, [r1, #0x4]
+ mov r2, lr, lsl #0x10
+ and lr, r3, #0x7
+ mov r3, r12, asr #0x3
+ str r3, [r0, #0x8]
+ ldrsh r3, [r1, #0x6]
+ orr r1, lr, r2, asr #0xd
+ mov r1, r1, lsl #0x10
+ and r2, r12, #0x7
+ orr r1, r2, r1, asr #0xd
+ mov r1, r1, lsl #0x10
+ and r2, r3, #0x7
+ orr r1, r2, r1, asr #0xd
+ mov r1, r1, lsl #0x10
+ mov r1, r1, asr #0x10
+ mov r2, r3, asr #0x3
+ mov r1, r1, lsl #0x13
+ str r2, [r0, #0xc]
+ mov r1, r1, asr #0x13
+ str r1, [r0, #0x14]
+ mov r0, #0x1
+ ldmia sp!, {r4,pc}
+ .balign 4
+_020BC684: .word 0x00007FFF
+_020BC688: .word 0x020FFA14
+_020BC68C: .word 0x020FFA15
+_020BC690: .word 0x020FFA16
+_020BC694: .word 0x020FFA17
+
+ arm_func_start FUN_020BC698
+FUN_020BC698: ; 0x020BC698
+ stmdb sp!, {r4-r10,lr}
+ sub sp, sp, #0x48
+ ldrh r4, [r3, #0x4]
+ ldr r5, [r3, #0xc]
+ ldr r8, [r3, #0x10]
+ ldr r7, [r2, #0x4]
+ mov r12, r1, asr #0xc
+ sub r4, r4, #0x1
+ mov r6, r0
+ cmp r12, r4
+ add r5, r3, r5
+ add r4, r3, r8
+ add r8, r3, r7
+ ldr r7, [r2, #0x0]
+ bne _020BC780
+ ands r0, r7, #0xc0000000
+ beq _020BC6F0
+ ands r0, r7, #0x40000000
+ andne r0, r12, #0x1
+ addne r12, r0, r12, lsr #0x1
+ andeq r0, r12, #0x3
+ addeq r12, r0, r12, lsr #0x2
+_020BC6F0:
+ ldr r0, [r3, #0x8]
+ ands r0, r0, #0x2
+ movne r7, #0x0
+ bne _020BC7F4
+ mov r0, r12, lsl #0x1
+ ldrh r3, [r8, r0]
+ mov r0, r6
+ mov r1, r5
+ mov r2, r4
+ bl FUN_020BC500
+_020BC718: ; 0x020BC718
+ cmp r0, #0x0
+ addeq sp, sp, #0x48
+ ldmeqia sp!, {r4-r10,pc}
+_020BC724: ; 0x020BC724
+ ldr r9, [r6, #0x14]
+ ldr r5, [r6, #0x4]
+ ldr r4, [r6, #0x10]
+ ldr r2, [r6, #0x8]
+ mul r1, r5, r9
+ mul r0, r2, r4
+ sub r0, r1, r0
+ ldr r7, [r6, #0xc]
+ ldr r8, [r6, #0x0]
+ mov r3, r0, asr #0xc
+ mul r1, r2, r7
+ mul r0, r8, r9
+ sub r2, r1, r0
+ mul r1, r8, r4
+ mul r0, r5, r7
+ sub r0, r1, r0
+ str r3, [r6, #0x18]
+ mov r1, r2, asr #0xc
+ str r1, [r6, #0x1c]
+ mov r0, r0, asr #0xc
+ add sp, sp, #0x48
+ str r0, [r6, #0x20]
+ ldmia sp!, {r4-r10,pc}
+_020BC780:
+ ands r0, r7, #0xc0000000
+ beq _020BC7F0
+ ldr r0, _020BC9C4 ; =0x1FFF0000
+ ands r2, r7, #0x40000000
+ and r0, r7, r0
+ mov r0, r0, lsr #0x10
+ beq _020BC7C4
+ cmp r12, r0
+ movcs r12, r0, lsr #0x1
+ addcs r7, r12, #0x1
+ bhs _020BC7F4
+ ldr r0, _020BC9C8 ; =0x00001FFF
+ mov r12, r12, lsr #0x1
+ add r7, r12, #0x1
+ and r10, r1, r0
+ mov r9, #0x2
+ b _020BC800
+_020BC7C4:
+ cmp r12, r0
+ andcs r0, r12, #0x3
+ addcs r12, r0, r12, lsr #0x2
+ addcs r7, r12, #0x1
+ bhs _020BC7F4
+ ldr r0, _020BC9CC ; =0x00003FFF
+ mov r12, r12, lsr #0x2
+ add r7, r12, #0x1
+ and r10, r1, r0
+ mov r9, #0x4
+ b _020BC800
+_020BC7F0:
+ add r7, r12, #0x1
+_020BC7F4:
+ ldr r0, _020BC9D0 ; =0x00000FFF
+ mov r9, #0x1
+ and r10, r1, r0
+_020BC800:
+ mov r0, r12, lsl #0x1
+ ldrh r3, [r8, r0]
+ add r0, sp, #0x0
+ mov r1, r5
+ mov r2, r4
+ bl FUN_020BC500
+ mov r1, r7, lsl #0x1
+ ldrh r3, [r8, r1]
+ orr r7, r0, #0x0
+ add r0, sp, #0x24
+ mov r1, r5
+ mov r2, r4
+ bl FUN_020BC500
+ ldr r3, [sp, #0x0]
+ ldr r1, [sp, #0x24]
+ mul r2, r3, r9
+ sub r1, r1, r3
+ mul r1, r10, r1
+ add r1, r2, r1, asr #0xc
+ str r1, [r6, #0x0]
+ ldr r3, [sp, #0x4]
+ ldr r1, [sp, #0x28]
+ mul r2, r3, r9
+ sub r1, r1, r3
+ mul r1, r10, r1
+ add r1, r2, r1, asr #0xc
+ str r1, [r6, #0x4]
+ ldr r3, [sp, #0x8]
+ ldr r1, [sp, #0x2c]
+ mul r2, r3, r9
+ sub r1, r1, r3
+ mul r1, r10, r1
+ add r1, r2, r1, asr #0xc
+ str r1, [r6, #0x8]
+ ldr r3, [sp, #0xc]
+ ldr r1, [sp, #0x30]
+ mul r2, r3, r9
+ sub r1, r1, r3
+ mul r1, r10, r1
+ add r1, r2, r1, asr #0xc
+ str r1, [r6, #0xc]
+ ldr r2, [sp, #0x10]
+ ldr r1, [sp, #0x34]
+ orr r7, r7, r0
+ sub r0, r1, r2
+ mul r1, r2, r9
+ mul r0, r10, r0
+ add r0, r1, r0, asr #0xc
+ str r0, [r6, #0x10]
+ ldr r2, [sp, #0x14]
+ ldr r0, [sp, #0x38]
+ mul r1, r2, r9
+ sub r0, r0, r2
+ mul r0, r10, r0
+ add r2, r1, r0, asr #0xc
+ mov r0, r6
+ mov r1, r6
+ str r2, [r6, #0x14]
+ bl VEC_Normalize
+ add r0, r6, #0xc
+ mov r1, r0
+ bl VEC_Normalize
+_020BC8F8: ; 0x020BC8F8
+ cmp r7, #0x0
+ bne _020BC968
+ ldr r3, [sp, #0x18]
+ ldr r1, [sp, #0x3c]
+ mul r2, r3, r9
+ sub r1, r1, r3
+ mul r1, r10, r1
+ add r1, r2, r1, asr #0xc
+ str r1, [r6, #0x18]
+ ldr r3, [sp, #0x1c]
+ ldr r1, [sp, #0x40]
+ mul r2, r3, r9
+ sub r1, r1, r3
+ mul r1, r10, r1
+ add r1, r2, r1, asr #0xc
+ str r1, [r6, #0x1c]
+ ldr r3, [sp, #0x20]
+ ldr r1, [sp, #0x44]
+ mul r2, r3, r9
+ sub r1, r1, r3
+ mul r1, r10, r1
+ add r2, r2, r1, asr #0xc
+ add r0, r6, #0x18
+ mov r1, r0
+ str r2, [r6, #0x20]
+ bl VEC_Normalize
+ add sp, sp, #0x48
+ ldmia sp!, {r4-r10,pc}
+_020BC968:
+ ldr r9, [r6, #0x14]
+ ldr r5, [r6, #0x4]
+ ldr r8, [r6, #0x0]
+ ldr r4, [r6, #0x10]
+ ldr r2, [r6, #0x8]
+ ldr r7, [r6, #0xc]
+ mul r1, r5, r9
+ mul r0, r2, r4
+ sub r0, r1, r0
+ mov r3, r0, asr #0xc
+ mul r1, r2, r7
+ mul r0, r8, r9
+ sub r2, r1, r0
+ mul r1, r8, r4
+ mul r0, r5, r7
+ sub r0, r1, r0
+ str r3, [r6, #0x18]
+ mov r1, r2, asr #0xc
+ str r1, [r6, #0x1c]
+ mov r0, r0, asr #0xc
+ str r0, [r6, #0x20]
+ add sp, sp, #0x48
+ ldmia sp!, {r4-r10,pc}
+ .balign 4
+_020BC9C4: .word 0x1FFF0000
+_020BC9C8: .word 0x00001FFF
+_020BC9CC: .word 0x00003FFF
+_020BC9D0: .word 0x00000FFF
+
+ arm_func_start FUN_020BC9D4
+FUN_020BC9D4: ; 0x020BC9D4
+ stmdb sp!, {r4-r9,lr}
+ sub sp, sp, #0x4c
+ ldr r5, [r3, #0xc]
+ ldr r4, [r3, #0x10]
+ ldr r12, [r2, #0x0]
+ ldr r2, [r2, #0x4]
+ mov r6, r0
+ mov r0, r1, asr #0xc
+ add r5, r3, r5
+ add r4, r3, r4
+ add r8, r3, r2
+ ands r1, r12, #0xc0000000
+ beq _020BCD40
+ ldr r1, _020BCDC0 ; =0x1FFF0000
+ ands r2, r12, #0x40000000
+ and r1, r12, r1
+ mov r2, r1, lsr #0x10
+ beq _020BCA44
+ ands r1, r0, #0x1
+ beq _020BCA3C
+ cmp r0, r2
+ movhi r0, r2, lsr #0x1
+ addhi r0, r0, #0x1
+ bhi _020BCD40
+ mov r7, r0, lsr #0x1
+ b _020BCBE8
+_020BCA3C:
+ mov r0, r0, lsr #0x1
+ b _020BCD40
+_020BCA44:
+ ands r1, r0, #0x3
+ beq _020BCBE0
+ cmp r0, r2
+ addhi r0, r1, r2, lsr #0x2
+ bhi _020BCD40
+ ands r1, r0, #0x1
+ beq _020BCBD8
+ ands r1, r0, #0x2
+ movne r9, r0, lsr #0x2
+ addne r0, r9, #0x1
+ moveq r0, r0, lsr #0x2
+ addeq r9, r0, #0x1
+ mov r0, r0, lsl #0x1
+ ldrh r3, [r8, r0]
+ mov r0, r6
+ mov r1, r5
+ mov r2, r4
+ mov r7, #0x0
+ bl FUN_020BC500
+ mov r1, r9, lsl #0x1
+ ldrh r3, [r8, r1]
+ orr r7, r7, r0
+ add r0, sp, #0x0
+ mov r1, r5
+ mov r2, r4
+ bl FUN_020BC500
+ ldr r3, [sp, #0x0]
+ ldr r1, [r6, #0x0]
+ mov r2, #0x3
+ mla r3, r1, r2, r3
+ str r3, [r6, #0x0]
+ ldr r3, [sp, #0x4]
+ ldr r1, [r6, #0x4]
+ orr r7, r7, r0
+ mla r0, r1, r2, r3
+ str r0, [r6, #0x4]
+ ldr r3, [sp, #0x8]
+ ldr r1, [r6, #0x8]
+ mov r0, r6
+ mla r3, r1, r2, r3
+ str r3, [r6, #0x8]
+ ldr r4, [sp, #0xc]
+ ldr r3, [r6, #0xc]
+ mov r1, r6
+ mla r4, r3, r2, r4
+ str r4, [r6, #0xc]
+ ldr r4, [sp, #0x10]
+ ldr r3, [r6, #0x10]
+ mla r4, r3, r2, r4
+ str r4, [r6, #0x10]
+ ldr r4, [sp, #0x14]
+ ldr r3, [r6, #0x14]
+ mla r2, r3, r2, r4
+ str r2, [r6, #0x14]
+ bl VEC_Normalize
+ add r0, r6, #0xc
+ mov r1, r0
+ bl VEC_Normalize
+_020BCB2C: ; 0x020BCB2C
+ cmp r7, #0x0
+ bne _020BCB7C
+ ldr r1, [sp, #0x18]
+ ldr r0, [r6, #0x18]
+ mov r2, #0x3
+ mla r1, r0, r2, r1
+ str r1, [r6, #0x18]
+ ldr r3, [sp, #0x1c]
+ ldr r1, [r6, #0x1c]
+ add r0, r6, #0x18
+ mla r3, r1, r2, r3
+ str r3, [r6, #0x1c]
+ ldr r4, [sp, #0x20]
+ ldr r3, [r6, #0x20]
+ mov r1, r0
+ mla r2, r3, r2, r4
+ str r2, [r6, #0x20]
+ bl VEC_Normalize
+ add sp, sp, #0x4c
+ ldmia sp!, {r4-r9,pc}
+_020BCB7C:
+ ldr r12, [r6, #0x14]
+ ldr r5, [r6, #0x4]
+ ldr r4, [r6, #0x10]
+ ldr r2, [r6, #0x8]
+ mul r1, r5, r12
+ mul r0, r2, r4
+ sub r0, r1, r0
+ ldr r7, [r6, #0xc]
+ ldr r8, [r6, #0x0]
+ mov r3, r0, asr #0xc
+ mul r1, r2, r7
+ mul r0, r8, r12
+ sub r2, r1, r0
+ mul r1, r8, r4
+ mul r0, r5, r7
+ sub r0, r1, r0
+ str r3, [r6, #0x18]
+ mov r1, r2, asr #0xc
+ str r1, [r6, #0x1c]
+ mov r0, r0, asr #0xc
+ add sp, sp, #0x4c
+ str r0, [r6, #0x20]
+ ldmia sp!, {r4-r9,pc}
+_020BCBD8:
+ mov r7, r0, lsr #0x2
+ b _020BCBE8
+_020BCBE0:
+ mov r0, r0, lsr #0x2
+ b _020BCD40
+_020BCBE8:
+ mov r0, r7, lsl #0x1
+ ldrh r3, [r8, r0]
+ mov r0, r6
+ mov r1, r5
+ mov r2, r4
+ bl FUN_020BC500
+ add r1, r8, r7, lsl #0x1
+ ldrh r3, [r1, #0x2]
+ orr r7, r0, #0x0
+ add r0, sp, #0x24
+ mov r1, r5
+ mov r2, r4
+ bl FUN_020BC500
+ ldr r2, [r6, #0x0]
+ ldr r1, [sp, #0x24]
+ orr r7, r7, r0
+ add r0, r2, r1
+ str r0, [r6, #0x0]
+ ldr r2, [r6, #0x4]
+ ldr r1, [sp, #0x28]
+ mov r0, r6
+ add r1, r2, r1
+ str r1, [r6, #0x4]
+ ldr r3, [r6, #0x8]
+ ldr r2, [sp, #0x2c]
+ mov r1, r6
+ add r2, r3, r2
+ str r2, [r6, #0x8]
+ ldr r3, [r6, #0xc]
+ ldr r2, [sp, #0x30]
+ add r2, r3, r2
+ str r2, [r6, #0xc]
+ ldr r3, [r6, #0x10]
+ ldr r2, [sp, #0x34]
+ add r2, r3, r2
+ str r2, [r6, #0x10]
+ ldr r3, [r6, #0x14]
+ ldr r2, [sp, #0x38]
+ add r2, r3, r2
+ str r2, [r6, #0x14]
+ bl VEC_Normalize
+ add r0, r6, #0xc
+ mov r1, r0
+ bl VEC_Normalize
+_020BCC98: ; 0x020BCC98
+ cmp r7, #0x0
+ bne _020BCCE4
+ ldr r2, [r6, #0x18]
+ ldr r1, [sp, #0x3c]
+ add r0, r6, #0x18
+ add r1, r2, r1
+ str r1, [r6, #0x18]
+ ldr r3, [r6, #0x1c]
+ ldr r2, [sp, #0x40]
+ mov r1, r0
+ add r2, r3, r2
+ str r2, [r6, #0x1c]
+ ldr r3, [r6, #0x20]
+ ldr r2, [sp, #0x44]
+ add r2, r3, r2
+ str r2, [r6, #0x20]
+ bl VEC_Normalize
+ add sp, sp, #0x4c
+ ldmia sp!, {r4-r9,pc}
+_020BCCE4:
+ ldr r12, [r6, #0x14]
+ ldr r5, [r6, #0x4]
+ ldr r4, [r6, #0x10]
+ ldr r2, [r6, #0x8]
+ mul r1, r5, r12
+ mul r0, r2, r4
+ sub r0, r1, r0
+ ldr r7, [r6, #0xc]
+ ldr r8, [r6, #0x0]
+ mov r3, r0, asr #0xc
+ mul r1, r2, r7
+ mul r0, r8, r12
+ sub r2, r1, r0
+ mul r1, r8, r4
+ mul r0, r5, r7
+ sub r0, r1, r0
+ str r3, [r6, #0x18]
+ mov r1, r2, asr #0xc
+ str r1, [r6, #0x1c]
+ mov r0, r0, asr #0xc
+ add sp, sp, #0x4c
+ str r0, [r6, #0x20]
+ ldmia sp!, {r4-r9,pc}
+_020BCD40:
+ mov r0, r0, lsl #0x1
+ ldrh r3, [r8, r0]
+ mov r0, r6
+ mov r1, r5
+ mov r2, r4
+ bl FUN_020BC500
+_020BCD58: ; 0x020BCD58
+ cmp r0, #0x0
+ addeq sp, sp, #0x4c
+ ldmeqia sp!, {r4-r9,pc}
+_020BCD64: ; 0x020BCD64
+ ldr r12, [r6, #0x14]
+ ldr r5, [r6, #0x4]
+ ldr r8, [r6, #0x0]
+ ldr r4, [r6, #0x10]
+ ldr r2, [r6, #0x8]
+ ldr r7, [r6, #0xc]
+ mul r1, r5, r12
+ mul r0, r2, r4
+ sub r0, r1, r0
+ mov r3, r0, asr #0xc
+ mul r1, r2, r7
+ mul r0, r8, r12
+ sub r2, r1, r0
+ mul r1, r8, r4
+ mul r0, r5, r7
+ sub r0, r1, r0
+ str r3, [r6, #0x18]
+ mov r1, r2, asr #0xc
+ str r1, [r6, #0x1c]
+ mov r0, r0, asr #0xc
+ str r0, [r6, #0x20]
+ add sp, sp, #0x4c
+ ldmia sp!, {r4-r9,pc}
+ .balign 4
+_020BCDC0: .word 0x1FFF0000
+
+ arm_func_start FUN_020BCDC4
+FUN_020BCDC4: ; 0x020BCDC4
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0x4
+ ldrh r4, [r3, #0x4]
+ ldr r6, [r2, #0x4]
+ mov r5, r1, asr #0xc
+ sub r4, r4, #0x1
+ cmp r5, r4
+ add r6, r3, r6
+ ldr r2, [r2, #0x0]
+ bne _020BCE58
+ ands r4, r2, #0xc0000000
+ beq _020BCE08
+ ands r4, r2, #0x40000000
+ andne r4, r5, #0x1
+ addne r5, r4, r5, lsr #0x1
+ andeq r4, r5, #0x3
+ addeq r5, r4, r5, lsr #0x2
+_020BCE08:
+ ldr r3, [r3, #0x8]
+ ands r3, r3, #0x2
+ movne r4, #0x0
+ bne _020BCED4
+ ands r1, r2, #0x20000000
+ ldreq r2, [r6, r5, lsl #0x3]
+ addeq r1, r6, r5, lsl #0x3
+ streq r2, [r0, #0x0]
+ ldreq r1, [r1, #0x4]
+ addeq sp, sp, #0x4
+ streq r1, [r0, #0x4]
+ ldmeqia sp!, {r4-r7,pc}
+_020BCE38: ; 0x020BCE38
+ mov r1, r5, lsl #0x2
+ ldrsh r2, [r6, r1]
+ add r1, r6, r5, lsl #0x2
+ add sp, sp, #0x4
+ str r2, [r0, #0x0]
+ ldrsh r1, [r1, #0x2]
+ str r1, [r0, #0x4]
+ ldmia sp!, {r4-r7,pc}
+_020BCE58:
+ ands r3, r2, #0xc0000000
+ beq _020BCED0
+ ldr r3, _020BCF60 ; =0x1FFF0000
+ ands r4, r2, #0x40000000
+ and r3, r2, r3
+ mov r3, r3, lsr #0x10
+ beq _020BCEA0
+ cmp r5, r3
+ movcs r5, r3, lsr #0x1
+ addcs r4, r5, #0x1
+ bhs _020BCED4
+ ldr r3, _020BCF64 ; =0x00001FFF
+ mov r5, r5, lsr #0x1
+ add r4, r5, #0x1
+ and lr, r1, r3
+ mov r12, #0x2
+ mov r3, #0x1
+ b _020BCEE4
+_020BCEA0:
+ cmp r5, r3
+ andcs r3, r5, #0x3
+ addcs r5, r3, r5, lsr #0x2
+ addcs r4, r5, #0x1
+ bhs _020BCED4
+ ldr r3, _020BCF68 ; =0x00003FFF
+ mov r5, r5, lsr #0x2
+ add r4, r5, #0x1
+ and lr, r1, r3
+ mov r12, #0x4
+ mov r3, #0x2
+ b _020BCEE4
+_020BCED0:
+ add r4, r5, #0x1
+_020BCED4:
+ ldr r3, _020BCF6C ; =0x00000FFF
+ mov r12, #0x1
+ and lr, r1, r3
+ mov r3, #0x0
+_020BCEE4:
+ ands r1, r2, #0x20000000
+ beq _020BCF10
+ mov r2, r5, lsl #0x2
+ add r1, r6, r5, lsl #0x2
+ mov r5, r4, lsl #0x2
+ add r4, r6, r4, lsl #0x2
+ ldrsh r2, [r6, r2]
+ ldrsh r1, [r1, #0x2]
+ ldrsh r5, [r6, r5]
+ ldrsh r4, [r4, #0x2]
+ b _020BCF28
+_020BCF10:
+ add r1, r6, r5, lsl #0x3
+ add r7, r6, r4, lsl #0x3
+ ldr r2, [r6, r5, lsl #0x3]
+ ldr r1, [r1, #0x4]
+ ldr r5, [r6, r4, lsl #0x3]
+ ldr r4, [r7, #0x4]
+_020BCF28:
+ sub r5, r5, r2
+ sub r4, r4, r1
+ mul r6, r2, r12
+ mul r2, lr, r5
+ add r2, r6, r2, asr #0xc
+ mov r5, r2, asr r3
+ mul r2, r1, r12
+ mul r1, lr, r4
+ add r1, r2, r1, asr #0xc
+ mov r1, r1, asr r3
+ str r5, [r0, #0x0]
+ str r1, [r0, #0x4]
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r7,pc}
+ .balign 4
+_020BCF60: .word 0x1FFF0000
+_020BCF64: .word 0x00001FFF
+_020BCF68: .word 0x00003FFF
+_020BCF6C: .word 0x00000FFF
+
+ arm_func_start FUN_020BCF70
+FUN_020BCF70: ; 0x020BCF70
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ ldr r4, [r2, #0x4]
+ ldr r12, [r2, #0x0]
+ mov r1, r1, asr #0xc
+ add r3, r3, r4
+ ands r2, r12, #0xc0000000
+ beq _020BD0D0
+ ldr r2, _020BD184 ; =0x1FFF0000
+ ands r4, r12, #0x40000000
+ and r2, r12, r2
+ mov r4, r2, lsr #0x10
+ beq _020BCFCC
+ ands r2, r1, #0x1
+ beq _020BCFC4
+ cmp r1, r4
+ movhi r1, r4, lsr #0x1
+ addhi r1, r1, #0x1
+ bhi _020BD0D0
+ mov r2, r1, lsr #0x1
+ b _020BD110
+_020BCFC4:
+ mov r1, r1, lsr #0x1
+ b _020BD0D0
+_020BCFCC:
+ ands r2, r1, #0x3
+ beq _020BD0CC
+ cmp r1, r4
+ addhi r1, r2, r4, lsr #0x2
+ bhi _020BD0D0
+ ands r2, r1, #0x1
+ beq _020BD0C4
+ ands r2, r1, #0x2
+ movne r1, r1, lsr #0x2
+ addne r2, r1, #0x1
+ moveq r2, r1, lsr #0x2
+ addeq r1, r2, #0x1
+ ands r4, r12, #0x20000000
+ beq _020BD04C
+ mov r5, r2, lsl #0x2
+ mov r4, r1, lsl #0x2
+ ldrsh r12, [r3, r5]
+ ldrsh r5, [r3, r4]
+ add r2, r3, r2, lsl #0x2
+ add r4, r12, r12, lsl #0x1
+ add r4, r5, r4
+ mov r4, r4, asr #0x2
+ str r4, [r0, #0x0]
+ add r1, r3, r1, lsl #0x2
+ ldrsh r3, [r2, #0x2]
+ ldrsh r2, [r1, #0x2]
+ add sp, sp, #0x4
+ add r1, r3, r3, lsl #0x1
+ add r1, r2, r1
+ mov r1, r1, asr #0x2
+ str r1, [r0, #0x4]
+ ldmia sp!, {r4-r5,pc}
+_020BD04C:
+ ldr r5, [r3, r2, lsl #0x3]
+ ldr r4, [r3, r1, lsl #0x3]
+ mov r12, r5, asr #0x1f
+ mov r12, r12, lsl #0x1
+ mov lr, r5, lsl #0x1
+ orr r12, r12, r5, lsr #0x1f
+ adds lr, lr, r5
+ adc r12, r12, r5, asr #0x1f
+ adds lr, lr, r4
+ adc r12, r12, r4, asr #0x1f
+ mov lr, lr, lsr #0x2
+ orr lr, lr, r12, lsl #0x1e
+ str lr, [r0, #0x0]
+ add r2, r3, r2, lsl #0x3
+ ldr r12, [r2, #0x4]
+ add r1, r3, r1, lsl #0x3
+ mov r2, r12, asr #0x1f
+ mov r2, r2, lsl #0x1
+ mov r3, r12, lsl #0x1
+ ldr r1, [r1, #0x4]
+ orr r2, r2, r12, lsr #0x1f
+ adds r3, r3, r12
+ adc r2, r2, r12, asr #0x1f
+ adds r3, r3, r1
+ adc r1, r2, r1, asr #0x1f
+ mov r2, r3, lsr #0x2
+ orr r2, r2, r1, lsl #0x1e
+ str r2, [r0, #0x4]
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,pc}
+_020BD0C4:
+ mov r2, r1, lsr #0x2
+ b _020BD110
+_020BD0CC:
+ mov r1, r1, lsr #0x2
+_020BD0D0:
+ ands r2, r12, #0x20000000
+ ldreq r2, [r3, r1, lsl #0x3]
+ addeq r1, r3, r1, lsl #0x3
+ streq r2, [r0, #0x0]
+ ldreq r1, [r1, #0x4]
+ addeq sp, sp, #0x4
+ streq r1, [r0, #0x4]
+ ldmeqia sp!, {r4-r5,pc}
+_020BD0F0: ; 0x020BD0F0
+ mov r2, r1, lsl #0x2
+ ldrsh r2, [r3, r2]
+ add r1, r3, r1, lsl #0x2
+ add sp, sp, #0x4
+ str r2, [r0, #0x0]
+ ldrsh r1, [r1, #0x2]
+ str r1, [r0, #0x4]
+ ldmia sp!, {r4-r5,pc}
+_020BD110:
+ ands r1, r12, #0x20000000
+ beq _020BD150
+ mov r1, r2, lsl #0x2
+ add r12, r3, r2, lsl #0x2
+ ldrsh r2, [r3, r1]
+ ldrsh r1, [r12, #0x4]
+ add sp, sp, #0x4
+ add r1, r2, r1
+ mov r1, r1, asr #0x1
+ str r1, [r0, #0x0]
+ ldrsh r2, [r12, #0x2]
+ ldrsh r1, [r12, #0x6]
+ add r1, r2, r1
+ mov r1, r1, asr #0x1
+ str r1, [r0, #0x4]
+ ldmia sp!, {r4-r5,pc}
+_020BD150:
+ add r12, r3, r2, lsl #0x3
+ ldr r2, [r3, r2, lsl #0x3]
+ ldr r1, [r12, #0x8]
+ add r1, r2, r1
+ mov r1, r1, asr #0x1
+ str r1, [r0, #0x0]
+ ldr r2, [r12, #0x4]
+ ldr r1, [r12, #0xc]
+ add r1, r2, r1
+ mov r1, r1, asr #0x1
+ str r1, [r0, #0x4]
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,pc}
+ .balign 4
+_020BD184: .word 0x1FFF0000
+
+ arm_func_start FUN_020BD188
+FUN_020BD188: ; 0x020BD188
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ ldrh r4, [r3, #0x4]
+ ldr lr, [r2, #0x4]
+ mov r12, r1, asr #0xc
+ sub r4, r4, #0x1
+ cmp r12, r4
+ add r4, r3, lr
+ ldr lr, [r2, #0x0]
+ bne _020BD230
+ ands r2, lr, #0xc0000000
+ beq _020BD1CC
+ ands r2, lr, #0x40000000
+ andne r2, r12, #0x1
+ addne r12, r2, r12, lsr #0x1
+ andeq r2, r12, #0x3
+ addeq r12, r2, r12, lsr #0x2
+_020BD1CC:
+ ldr r2, [r3, #0x8]
+ ands r2, r2, #0x2
+ beq _020BD210
+ ldr r2, _020BD2E8 ; =0x00000FFF
+ ands r3, lr, #0x20000000
+ and r3, r1, r2
+ movne r1, r12, lsl #0x1
+ ldrnesh r2, [r4, r1]
+ ldrnesh r1, [r4, #0x0]
+ add sp, sp, #0x4
+ ldreq r2, [r4, r12, lsl #0x2]
+ ldreq r1, [r4, #0x0]
+ sub r1, r1, r2
+ mul r1, r3, r1
+ add r1, r2, r1, asr #0xc
+ str r1, [r0, #0x0]
+ ldmia sp!, {r4-r5,pc}
+_020BD210:
+ ands r1, lr, #0x20000000
+ movne r1, r12, lsl #0x1
+ ldrnesh r1, [r4, r1]
+ add sp, sp, #0x4
+ strne r1, [r0, #0x0]
+ ldreq r1, [r4, r12, lsl #0x2]
+ streq r1, [r0, #0x0]
+ ldmia sp!, {r4-r5,pc}
+_020BD230:
+ ands r2, lr, #0xc0000000
+ beq _020BD298
+ ldr r2, _020BD2EC ; =0x1FFF0000
+ ands r3, lr, #0x40000000
+ and r2, lr, r2
+ mov r2, r2, lsr #0x10
+ beq _020BD270
+ cmp r12, r2
+ movcs r12, r2, lsr #0x1
+ bhs _020BD298
+ ldr r2, _020BD2F0 ; =0x00001FFF
+ mov r12, r12, lsr #0x1
+ and r5, r1, r2
+ mov r2, #0x2
+ mov r1, #0x1
+ b _020BD2A8
+_020BD270:
+ cmp r12, r2
+ andcs r2, r12, #0x3
+ addcs r12, r2, r12, lsr #0x2
+ bhs _020BD298
+ ldr r2, _020BD2F4 ; =0x00003FFF
+ mov r12, r12, lsr #0x2
+ and r5, r1, r2
+ mov r2, #0x4
+ mov r1, #0x2
+ b _020BD2A8
+_020BD298:
+ ldr r3, _020BD2E8 ; =0x00000FFF
+ mov r2, #0x1
+ and r5, r1, r3
+ mov r1, #0x0
+_020BD2A8:
+ ands r3, lr, #0x20000000
+ addne r3, r4, r12, lsl #0x1
+ movne lr, r12, lsl #0x1
+ ldrnesh r12, [r4, lr]
+ ldrnesh r3, [r3, #0x2]
+ addeq r3, r4, r12, lsl #0x2
+ ldreq r12, [r4, r12, lsl #0x2]
+ ldreq r3, [r3, #0x4]
+ mul r4, r12, r2
+ sub r3, r3, r12
+ mul r2, r5, r3
+ add r2, r4, r2, asr #0xc
+ mov r1, r2, asr r1
+ str r1, [r0, #0x0]
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,pc}
+ .balign 4
+_020BD2E8: .word 0x00000FFF
+_020BD2EC: .word 0x1FFF0000
+_020BD2F0: .word 0x00001FFF
+_020BD2F4: .word 0x00003FFF
+
+ arm_func_start FUN_020BD2F8
+FUN_020BD2F8: ; 0x020BD2F8
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldr r12, [r2, #0x4]
+ ldr r2, [r2, #0x0]
+ mov r1, r1, asr #0xc
+ add r3, r3, r12
+ ands r12, r2, #0xc0000000
+ beq _020BD44C
+ ldr ip, _020BD46C ; =0x1FFF0000
+ ands lr, r2, #0x40000000
+ and r12, r2, r12
+ mov lr, r12, lsr #0x10
+ beq _020BD354
+ ands r12, r1, #0x1
+ beq _020BD34C
+ cmp r1, lr
+ movhi r1, lr, lsr #0x1
+ addhi r1, r1, #0x1
+ bhi _020BD44C
+ mov r12, r1, lsr #0x1
+ b _020BD400
+_020BD34C:
+ mov r1, r1, lsr #0x1
+ b _020BD44C
+_020BD354:
+ ands r12, r1, #0x3
+ beq _020BD3F8
+ cmp r1, lr
+ addhi r1, r12, lr, lsr #0x2
+ bhi _020BD44C
+ ands r12, r1, #0x1
+ beq _020BD3F0
+ ands r12, r1, #0x2
+ movne lr, r1, lsr #0x2
+ addne r12, lr, #0x1
+ moveq r12, r1, lsr #0x2
+ addeq lr, r12, #0x1
+ ands r1, r2, #0x20000000
+ beq _020BD3B4
+ mov r2, r12, lsl #0x1
+ mov r1, lr, lsl #0x1
+ ldrsh r12, [r3, r2]
+ ldrsh r2, [r3, r1]
+ mov r1, #0x3
+ add sp, sp, #0x4
+ smlabb r1, r12, r1, r2
+ mov r1, r1, asr #0x2
+ str r1, [r0, #0x0]
+ ldmia sp!, {pc}
+_020BD3B4:
+ ldr r12, [r3, r12, lsl #0x2]
+ ldr r1, [r3, lr, lsl #0x2]
+ mov r2, r12, asr #0x1f
+ mov r2, r2, lsl #0x1
+ mov r3, r12, lsl #0x1
+ orr r2, r2, r12, lsr #0x1f
+ adds r3, r3, r12
+ adc r2, r2, r12, asr #0x1f
+ adds r3, r3, r1
+ adc r1, r2, r1, asr #0x1f
+ mov r2, r3, lsr #0x2
+ orr r2, r2, r1, lsl #0x1e
+ str r2, [r0, #0x0]
+ add sp, sp, #0x4
+ ldmia sp!, {pc}
+_020BD3F0:
+ mov r12, r1, lsr #0x2
+ b _020BD400
+_020BD3F8:
+ mov r1, r1, lsr #0x2
+ b _020BD44C
+_020BD400:
+ ands r1, r2, #0x20000000
+ beq _020BD42C
+ mov r2, r12, lsl #0x1
+ add r1, r3, r12, lsl #0x1
+ ldrsh r2, [r3, r2]
+ ldrsh r1, [r1, #0x2]
+ add sp, sp, #0x4
+ add r1, r2, r1
+ mov r1, r1, asr #0x1
+ str r1, [r0, #0x0]
+ ldmia sp!, {pc}
+_020BD42C:
+ add r1, r3, r12, lsl #0x2
+ ldr r2, [r3, r12, lsl #0x2]
+ ldr r1, [r1, #0x4]
+ mov r2, r2, asr #0x1
+ add r1, r2, r1, asr #0x1
+ str r1, [r0, #0x0]
+ add sp, sp, #0x4
+ ldmia sp!, {pc}
+_020BD44C:
+ ands r2, r2, #0x20000000
+ movne r1, r1, lsl #0x1
+ ldrnesh r1, [r3, r1]
+ strne r1, [r0, #0x0]
+ ldreq r1, [r3, r1, lsl #0x2]
+ streq r1, [r0, #0x0]
+ add sp, sp, #0x4
+ ldmia sp!, {pc}
+ .balign 4
+_020BD46C: .word 0x1FFF0000
+
+ arm_func_start FUN_020BD470
+FUN_020BD470: ; 0x020BD470
+ stmdb sp!, {r4-r11,lr}
+ sub sp, sp, #0x34
+ mov r9, r0
+ add r0, r9, r1, lsl #0x1
+ ldrh r0, [r0, #0x14]
+ mov r7, r3
+ mov r8, r2
+ ldr r5, [r9, r0]
+ add r1, r9, r0
+ ands r0, r5, #0x1
+ movne r0, #0x7
+ strne r0, [r7, #0x0]
+ bne _020BD814
+ ldr r0, _020BD848 ; =0x00000FFF
+ add r4, r1, #0x4
+ ands r0, r8, r0
+ beq _020BD4C4
+ ldr r0, [r9, #0x8]
+ ands r0, r0, #0x1
+ movne r6, #0x1
+ bne _020BD4C8
+_020BD4C4:
+ mov r6, #0x0
+_020BD4C8:
+ mov r0, #0x0
+ str r0, [r7, #0x0]
+ ands r0, r5, #0x6
+ bne _020BD5C0
+ ands r0, r5, #0x8
+ bne _020BD51C
+ cmp r6, #0x0
+ beq _020BD500
+ mov r1, r8
+ mov r2, r4
+ mov r3, r9
+ add r0, r7, #0x4c
+ bl FUN_020BD188
+ b _020BD514
+_020BD500:
+ mov r1, r8
+ mov r2, r4
+ mov r3, r9
+ add r0, r7, #0x4c
+ bl FUN_020BD2F8
+_020BD514:
+ add r4, r4, #0x8
+ b _020BD524
+_020BD51C:
+ ldr r0, [r4], #0x4
+ str r0, [r7, #0x4c]
+_020BD524:
+ ands r0, r5, #0x10
+ bne _020BD568
+ cmp r6, #0x0
+ beq _020BD54C
+ mov r1, r8
+ mov r2, r4
+ mov r3, r9
+ add r0, r7, #0x50
+ bl FUN_020BD188
+ b _020BD560
+_020BD54C:
+ mov r1, r8
+ mov r2, r4
+ mov r3, r9
+ add r0, r7, #0x50
+ bl FUN_020BD2F8
+_020BD560:
+ add r4, r4, #0x8
+ b _020BD570
+_020BD568:
+ ldr r0, [r4], #0x4
+ str r0, [r7, #0x50]
+_020BD570:
+ ands r0, r5, #0x20
+ bne _020BD5B4
+ cmp r6, #0x0
+ beq _020BD598
+ mov r1, r8
+ mov r2, r4
+ mov r3, r9
+ add r0, r7, #0x54
+ bl FUN_020BD188
+ b _020BD5AC
+_020BD598:
+ mov r1, r8
+ mov r2, r4
+ mov r3, r9
+ add r0, r7, #0x54
+ bl FUN_020BD2F8
+_020BD5AC:
+ add r4, r4, #0x8
+ b _020BD5DC
+_020BD5B4:
+ ldr r0, [r4], #0x4
+ str r0, [r7, #0x54]
+ b _020BD5DC
+_020BD5C0:
+ ands r0, r5, #0x2
+ ldrne r0, [r7, #0x0]
+ orrne r0, r0, #0x4
+ strne r0, [r7, #0x0]
+ bne _020BD5DC
+ mov r0, r7
+ bl FUN_020BDA08
+_020BD5DC:
+ ands r0, r5, #0xc0
+ bne _020BD6A8
+ ands r0, r5, #0x100
+ bne _020BD628
+ cmp r6, #0x0
+ beq _020BD60C
+ mov r1, r8
+ mov r2, r4
+ mov r3, r9
+ add r0, r7, #0x28
+ bl FUN_020BC698
+ b _020BD620
+_020BD60C:
+ mov r1, r8
+ mov r2, r4
+ mov r3, r9
+ add r0, r7, #0x28
+ bl FUN_020BC9D4
+_020BD620:
+ add r4, r4, #0x8
+ b _020BD6C4
+_020BD628:
+ ldr r1, [r9, #0xc]
+ ldr r2, [r9, #0x10]
+ ldr r3, [r4, #0x0]
+ add r0, r7, #0x28
+ add r1, r9, r1
+ add r2, r9, r2
+ bl FUN_020BC500
+_020BD644: ; 0x020BD644
+ cmp r0, #0x0
+ beq _020BD6A0
+ ldr r12, [r7, #0x3c]
+ ldr r0, [r7, #0x2c]
+ ldr r3, [r7, #0x28]
+ ldr r11, [r7, #0x38]
+ ldr r1, [r7, #0x30]
+ ldr r2, [r7, #0x34]
+ mul r10, r0, r12
+ mul lr, r1, r11
+ sub r10, r10, lr
+ mov r10, r10, asr #0xc
+ mul lr, r1, r2
+ mul r1, r3, r12
+ sub r1, lr, r1
+ mul r11, r3, r11
+ mul r2, r0, r2
+ sub r0, r11, r2
+ str r10, [r7, #0x40]
+ mov r1, r1, asr #0xc
+ str r1, [r7, #0x44]
+ mov r0, r0, asr #0xc
+ str r0, [r7, #0x48]
+_020BD6A0:
+ add r4, r4, #0x4
+ b _020BD6C4
+_020BD6A8:
+ ands r0, r5, #0x40
+ ldrne r0, [r7, #0x0]
+ orrne r0, r0, #0x2
+ strne r0, [r7, #0x0]
+ bne _020BD6C4
+ mov r0, r7
+ bl FUN_020BD850
+_020BD6C4:
+ ands r0, r5, #0x600
+ bne _020BD7F0
+ ands r0, r5, #0x800
+ bne _020BD71C
+ cmp r6, #0x0
+ beq _020BD6F4
+ add r0, sp, #0x0
+ mov r1, r8
+ mov r2, r4
+ mov r3, r9
+ bl FUN_020BCDC4
+ b _020BD708
+_020BD6F4:
+ add r0, sp, #0x0
+ mov r1, r8
+ mov r2, r4
+ mov r3, r9
+ bl FUN_020BCF70
+_020BD708:
+ ldr r1, [sp, #0x0]
+ ldr r0, [sp, #0x4]
+ str r1, [sp, #0x18]
+ str r0, [sp, #0x24]
+ b _020BD72C
+_020BD71C:
+ ldr r0, [r4, #0x0]
+ str r0, [sp, #0x18]
+ ldr r0, [r4, #0x4]
+ str r0, [sp, #0x24]
+_020BD72C:
+ ands r0, r5, #0x1000
+ bne _020BD77C
+ cmp r6, #0x0
+ beq _020BD754
+ add r0, sp, #0x8
+ mov r1, r8
+ mov r3, r9
+ add r2, r4, #0x8
+ bl FUN_020BCDC4
+ b _020BD768
+_020BD754:
+ add r0, sp, #0x8
+ mov r1, r8
+ mov r3, r9
+ add r2, r4, #0x8
+ bl FUN_020BCF70
+_020BD768:
+ ldr r1, [sp, #0x8]
+ ldr r0, [sp, #0xc]
+ str r1, [sp, #0x1c]
+ str r0, [sp, #0x28]
+ b _020BD78C
+_020BD77C:
+ ldr r0, [r4, #0x8]
+ str r0, [sp, #0x1c]
+ ldr r0, [r4, #0xc]
+ str r0, [sp, #0x28]
+_020BD78C:
+ ands r0, r5, #0x2000
+ bne _020BD7DC
+ cmp r6, #0x0
+ beq _020BD7B4
+ add r0, sp, #0x10
+ mov r1, r8
+ mov r3, r9
+ add r2, r4, #0x10
+ bl FUN_020BCDC4
+ b _020BD7C8
+_020BD7B4:
+ add r0, sp, #0x10
+ mov r1, r8
+ mov r3, r9
+ add r2, r4, #0x10
+ bl FUN_020BCF70
+_020BD7C8:
+ ldr r1, [sp, #0x10]
+ ldr r0, [sp, #0x14]
+ str r1, [sp, #0x20]
+ str r0, [sp, #0x2c]
+ b _020BD814
+_020BD7DC:
+ ldr r0, [r4, #0x10]
+ str r0, [sp, #0x20]
+ ldr r0, [r4, #0x14]
+ str r0, [sp, #0x2c]
+ b _020BD814
+_020BD7F0:
+ ands r0, r5, #0x200
+ ldrne r0, [r7, #0x0]
+ orrne r0, r0, #0x1
+ strne r0, [r7, #0x0]
+ bne _020BD814
+ mov r0, r7
+ bl FUN_020BD9A4
+ add sp, sp, #0x34
+ ldmia sp!, {r4-r11,pc}
+_020BD814:
+ ldr r0, [r7, #0x0]
+ add r1, sp, #0x18
+ ands r0, r0, #0x1
+ ldr r0, _020BD84C ; =0x021CEF7C
+ movne r3, #0x4
+ ldr r4, [r0, #0x0]
+ moveq r3, #0x0
+ ldr r2, [r4, #0x0]
+ ldr r4, [r4, #0xe8]
+ mov r0, r7
+ blx r4
+ add sp, sp, #0x34
+ ldmia sp!, {r4-r11,pc}
+ .balign 4
+_020BD848: .word 0x00000FFF
+_020BD84C: .word 0x021CEF7C
+
+ arm_func_start FUN_020BD850
+FUN_020BD850: ; 0x020BD850
+ stmdb sp!, {r4-r8,lr}
+ ldr r1, _020BD990 ; =0x021CEF7C
+ mov r8, r0
+ ldr r0, [r1, #0x0]
+ ldr r3, [r0, #0xd4]
+ ldr r0, [r0, #0x0]
+ ldrh r2, [r3, #0x6]
+ ldrb r0, [r0, #0x1]
+ ldrh r1, [r3, r2]
+ add r2, r3, r2
+ mla r0, r1, r0, r2
+ ldr r0, [r0, #0x4]
+ ldrh r2, [r3, r0]
+ add r4, r3, r0
+ add r1, r4, #0x4
+ ands r0, r2, #0x1
+ addeq r1, r1, #0xc
+ ands r0, r2, #0x2
+ bne _020BD980
+ ands r0, r2, #0x8
+ beq _020BD934
+ and r2, r2, #0xf0
+ add r0, r8, #0x28
+ mov r5, r2, asr #0x4
+ ldrsh r7, [r1, #0x0]
+ ldrsh r6, [r1, #0x2]
+ blx MI_Zero36B
+ ldrh r0, [r4, #0x0]
+ add r1, r8, r5, lsl #0x2
+ ands r0, r0, #0x100
+ movne r0, #0x1000
+ rsbne r2, r0, #0x0
+ moveq r2, #0x1000
+ ldr r0, _020BD994 ; =0x020FFA14
+ str r2, [r1, #0x28]
+ ldrb r1, [r0, r5, lsl #0x2]
+ ldr r0, _020BD998 ; =0x020FFA15
+ add r1, r8, r1, lsl #0x2
+ str r7, [r1, #0x28]
+ ldrb r0, [r0, r5, lsl #0x2]
+ add r0, r8, r0, lsl #0x2
+ str r6, [r0, #0x28]
+ ldrh r0, [r4, #0x0]
+ ands r0, r0, #0x200
+ ldr r0, _020BD99C ; =0x020FFA16
+ rsbne r6, r6, #0x0
+ ldrb r0, [r0, r5, lsl #0x2]
+ add r0, r8, r0, lsl #0x2
+ str r6, [r0, #0x28]
+ ldrh r0, [r4, #0x0]
+ ands r0, r0, #0x400
+ ldr r0, _020BD9A0 ; =0x020FFA17
+ rsbne r7, r7, #0x0
+ ldrb r0, [r0, r5, lsl #0x2]
+ add r0, r8, r0, lsl #0x2
+ str r7, [r0, #0x28]
+ ldmia sp!, {r4-r8,pc}
+_020BD934:
+ ldrsh r0, [r4, #0x2]
+ str r0, [r8, #0x28]
+ ldrsh r0, [r1, #0x0]
+ str r0, [r8, #0x2c]
+ ldrsh r0, [r1, #0x2]
+ str r0, [r8, #0x30]
+ ldrsh r0, [r1, #0x4]
+ str r0, [r8, #0x34]
+ ldrsh r0, [r1, #0x6]
+ str r0, [r8, #0x38]
+ ldrsh r0, [r1, #0x8]
+ str r0, [r8, #0x3c]
+ ldrsh r0, [r1, #0xa]
+ str r0, [r8, #0x40]
+ ldrsh r0, [r1, #0xc]
+ str r0, [r8, #0x44]
+ ldrsh r0, [r1, #0xe]
+ str r0, [r8, #0x48]
+ ldmia sp!, {r4-r8,pc}
+_020BD980:
+ ldr r0, [r8, #0x0]
+ orr r0, r0, #0x2
+ str r0, [r8, #0x0]
+ ldmia sp!, {r4-r8,pc}
+ .balign 4
+_020BD990: .word 0x021CEF7C
+_020BD994: .word 0x020FFA14
+_020BD998: .word 0x020FFA15
+_020BD99C: .word 0x020FFA16
+_020BD9A0: .word 0x020FFA17
+
+ arm_func_start FUN_020BD9A4
+FUN_020BD9A4: ; 0x020BD9A4
+ stmdb sp!, {r4,lr}
+ ldr r1, _020BDA04 ; =0x021CEF7C
+ ldr r12, [r1, #0x0]
+ ldr r4, [r12, #0xd4]
+ ldr r2, [r12, #0x0]
+ ldrh lr, [r4, #0x6]
+ ldrb r1, [r2, #0x1]
+ ldrh r3, [r4, lr]
+ add lr, r4, lr
+ mla r1, r3, r1, lr
+ ldr r1, [r1, #0x4]
+ ldrh r3, [r4, r1]
+ add r1, r4, r1
+ add r1, r1, #0x4
+ ands lr, r3, #0x1
+ addeq r1, r1, #0xc
+ ands lr, r3, #0x2
+ bne _020BD9F8
+ ands lr, r3, #0x8
+ addne r1, r1, #0x4
+ addeq r1, r1, #0x10
+_020BD9F8:
+ ldr r12, [r12, #0xe8]
+ blx r12
+ ldmia sp!, {r4,pc}
+ .balign 4
+_020BDA04: .word 0x021CEF7C
+
+ arm_func_start FUN_020BDA08
+FUN_020BDA08: ; 0x020BDA08
+ ldr r1, _020BDA6C ; =0x021CEF7C
+ ldr r1, [r1, #0x0]
+ ldr r12, [r1, #0xd4]
+ ldr r1, [r1, #0x0]
+ ldrh r3, [r12, #0x6]
+ ldrb r1, [r1, #0x1]
+ ldrh r2, [r12, r3]
+ add r3, r12, r3
+ mla r1, r2, r1, r3
+ ldr r2, [r1, #0x4]
+ ldrh r1, [r12, r2]
+ add r2, r12, r2
+ ands r1, r1, #0x1
+ ldrne r1, [r0, #0x0]
+ orrne r1, r1, #0x4
+ strne r1, [r0, #0x0]
+ bxne lr
+ ldr r1, [r2, #0x4]
+ add r2, r2, #0x4
+ str r1, [r0, #0x4c]
+ ldr r1, [r2, #0x4]
+ str r1, [r0, #0x50]
+ ldr r1, [r2, #0x8]
+ str r1, [r0, #0x54]
+ bx lr
+ .balign 4
+_020BDA6C: .word 0x021CEF7C
+
+ arm_func_start FUN_020BDA70
+FUN_020BDA70: ; 0x020BDA70
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ mov r3, r0
+ ldr r0, [r1, #0x8]
+ ldr r12, [r1, #0x0]
+ ldrh r1, [r0, #0x4]
+ mov r1, r1, lsl #0xc
+ cmp r12, r1
+ subge r12, r1, #0x1
+ bge _020BDAA0
+ cmp r12, #0x0
+ movlt r12, #0x0
+_020BDAA0:
+ mov r1, r2
+ mov r2, r12
+ bl FUN_020BD470
+ add sp, sp, #0x4
+ ldmia sp!, {pc}
+
+ arm_func_start FUN_020BDAB4
+FUN_020BDAB4: ; 0x020BDAB4
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ mov r5, r0
+ mov r4, r1
+ ldr r0, _020BDB3C ; =0x0210659C
+ str r4, [r5, #0x8]
+ ldr r0, [r0, #0x0]
+ add r1, r5, #0x1a
+ str r0, [r5, #0xc]
+ ldrb r2, [r2, #0x17]
+ mov r0, #0x0
+ strb r2, [r5, #0x19]
+ ldrb r2, [r5, #0x19]
+ mov r2, r2, lsl #0x1
+ bl MIi_CpuClear16
+ ldrh r0, [r4, #0x6]
+ add r2, r4, #0x14
+ mov r3, #0x0
+ cmp r0, #0x0
+ addls sp, sp, #0x4
+ ldmlsia sp!, {r4-r5,pc}
+_020BDB08:
+ mov r0, r3, lsl #0x1
+ ldrh r1, [r2, r0]
+ add r0, r5, r3, lsl #0x1
+ add r3, r3, #0x1
+ ldr r1, [r4, r1]
+ mov r1, r1, lsr #0x18
+ orr r1, r1, #0x100
+ strh r1, [r0, #0x1a]
+ ldrh r0, [r4, #0x6]
+ cmp r3, r0
+ blo _020BDB08
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,pc}
+ .balign 4
+_020BDB3C: .word 0x0210659C
+
+ arm_func_start FUN_020BDB40
+FUN_020BDB40: ; 0x020BDB40
+ stmdb sp!, {r4-r8,lr}
+ ldr r7, [r1, #0x8]
+ mov r2, r2, lsl #0x10
+ ldrh r4, [r7, #0xe]
+ add r5, r7, #0x8
+ ldr r6, [r1, #0x0]
+ ldrh r3, [r5, r4]
+ mov r1, r2, lsr #0x10
+ add r2, r5, r4
+ mul r4, r3, r1
+ add r3, r2, #0x4
+ mov r6, r6, asr #0xc
+ mov r8, r0
+ ldr r1, [r3, r4]
+ mov r0, r7
+ mov r2, r6
+ add r5, r3, r4
+ bl FUN_020BDDAC
+ mov r4, r0
+ ldr r1, [r5, #0x4]
+ mov r0, r7
+ mov r2, r6
+ bl FUN_020BDDAC
+ ldr r1, [r8, #0x4]
+ mov r2, r6
+ and r1, r1, #0x8000
+ orr r1, r1, r4
+ orr r0, r1, r0, lsl #0x10
+ str r0, [r8, #0x4]
+ mov r0, r7
+ ldr r1, [r5, #0xc]
+ bl FUN_020BDDAC
+ mov r4, r0
+ mov r0, r7
+ ldr r1, [r5, #0x8]
+ mov r2, r6
+ bl FUN_020BDDAC
+ mov r2, r6
+ ldr r1, [r8, #0x8]
+ and r1, r1, #0x8000
+ orr r0, r1, r0
+ orr r0, r0, r4, lsl #0x10
+ str r0, [r8, #0x8]
+ mov r0, r7
+ ldr r1, [r5, #0x10]
+ bl FUN_020BDCB8
+ ldr r1, [r8, #0xc]
+ bic r1, r1, #0x1f0000
+ orr r0, r1, r0, lsl #0x10
+ str r0, [r8, #0xc]
+ ldmia sp!, {r4-r8,pc}
+
+ arm_func_start FUN_020BDC0C
+FUN_020BDC0C: ; 0x020BDC0C
+ stmdb sp!, {r4-r9,lr}
+ sub sp, sp, #0x4
+ ldr r3, _020BDCB4 ; =0x021065A8
+ ldr r4, [r2, #0x8]
+ ldr r3, [r3, #0x0]
+ mov r9, r0
+ str r3, [r9, #0xc]
+ ldrb r0, [r2, #0x18]
+ mov r8, r1
+ add r4, r2, r4
+ strb r0, [r9, #0x19]
+ ldrb r2, [r9, #0x19]
+ add r1, r9, #0x1a
+ mov r0, #0x0
+ mov r2, r2, lsl #0x1
+ bl MIi_CpuClear16
+ ldrb r0, [r8, #0x9]
+ mov r7, #0x0
+ cmp r0, #0x0
+ addls sp, sp, #0x4
+ ldmlsia sp!, {r4-r9,pc}
+_020BDC60: ; 0x020BDC60
+ mov r6, r7
+ add r5, r8, #0x8
+ add r4, r4, #0x4
+_020BDC6C:
+ ldrh r1, [r8, #0xe]
+ mov r0, r4
+ add r2, r5, r1
+ ldrh r1, [r2, #0x2]
+ add r1, r2, r1
+ add r1, r1, r6
+ bl FUN_020BC14C
+_020BDC88: ; 0x020BDC88
+ cmp r0, #0x0
+ orrge r1, r7, #0x100
+ addge r0, r9, r0, lsl #0x1
+ strgeh r1, [r0, #0x1a]
+ ldrb r0, [r8, #0x9]
+ add r7, r7, #0x1
+ add r6, r6, #0x10
+ cmp r7, r0
+ blo _020BDC6C
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r9,pc}
+ .balign 4
+_020BDCB4: .word 0x021065A8
+
+ arm_func_start FUN_020BDCB8
+FUN_020BDCB8: ; 0x020BDCB8
+ ands r3, r1, #0x20000000
+ movne r0, r1, lsl #0x10
+ movne r0, r0, lsr #0x10
+ bxne lr
+ ldr r3, _020BDDA4 ; =0x0000FFFF
+ ands r12, r1, #0xc0000000
+ and r3, r1, r3
+ add r0, r0, r3
+ ldreqb r0, [r0, r2]
+ bxeq lr
+ ldr r3, _020BDDA8 ; =0x1FFF0000
+ ands r12, r1, #0x40000000
+ and r1, r1, r3
+ mov r3, r1, lsr #0x10
+ beq _020BDD30
+ ands r1, r2, #0x1
+ beq _020BDD28
+ cmp r2, r3
+ addhi r0, r0, r3, lsr #0x1
+ ldrhib r0, [r0, #0x1]
+ bxhi lr
+ add r1, r0, r2, lsr #0x1
+ ldrb r2, [r0, r2, lsr #0x1]
+ ldrb r0, [r1, #0x1]
+ add r0, r2, r0
+ mov r0, r0, lsl #0xf
+ mov r0, r0, lsr #0x10
+ bx lr
+_020BDD28:
+ ldrb r0, [r0, r2, lsr #0x1]
+ bx lr
+_020BDD30:
+ ands r1, r2, #0x3
+ beq _020BDD9C
+ cmp r2, r3
+ addhi r0, r0, r3, lsr #0x2
+ ldrhib r0, [r1, r0]
+ bxhi lr
+ ands r1, r2, #0x1
+ beq _020BDD80
+ ands r1, r2, #0x2
+ movne r1, r2, lsr #0x2
+ addne r2, r1, #0x1
+ moveq r2, r2, lsr #0x2
+ addeq r1, r2, #0x1
+ ldrb r2, [r0, r2]
+ ldrb r1, [r0, r1]
+ mov r0, #0x3
+ mla r0, r2, r0, r1
+ mov r0, r0, lsl #0xe
+ mov r0, r0, lsr #0x10
+ bx lr
+_020BDD80:
+ add r1, r0, r2, lsr #0x2
+ ldrb r2, [r0, r2, lsr #0x2]
+ ldrb r0, [r1, #0x1]
+ add r0, r2, r0
+ mov r0, r0, lsl #0xf
+ mov r0, r0, lsr #0x10
+ bx lr
+_020BDD9C:
+ ldrb r0, [r0, r2, lsr #0x2]
+ bx lr
+ .balign 4
+_020BDDA4: .word 0x0000FFFF
+_020BDDA8: .word 0x1FFF0000
+
+ arm_func_start FUN_020BDDAC
+FUN_020BDDAC: ; 0x020BDDAC
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ands r3, r1, #0x20000000
+ movne r0, r1, lsl #0x10
+ addne sp, sp, #0x4
+ movne r0, r0, lsr #0x10
+ ldmneia sp!, {pc}
+ ldr r3, _020BDF2C ; =0x0000FFFF
+ ands r12, r1, #0xc0000000
+ and r3, r1, r3
+ add r0, r0, r3
+ moveq r1, r2, lsl #0x1
+ addeq sp, sp, #0x4
+ ldreqh r0, [r0, r1]
+ ldmeqia sp!, {pc}
+ ldr r3, _020BDF30 ; =0x1FFF0000
+ ands r12, r1, #0x40000000
+ and r1, r1, r3
+ mov r3, r1, lsr #0x10
+ beq _020BDE34
+ ands r1, r2, #0x1
+ beq _020BDE24
+ cmp r2, r3
+ bichi r1, r3, #0x1
+ addhi r0, r0, r1
+ addhi sp, sp, #0x4
+ ldrhih r0, [r0, #0x2]
+ ldmhiia sp!, {pc}
+ mov r1, r2, lsr #0x1
+ b _020BDEE0
+_020BDE24:
+ bic r1, r2, #0x1
+ add sp, sp, #0x4
+ ldrh r0, [r0, r1]
+ ldmia sp!, {pc}
+_020BDE34:
+ ands r1, r2, #0x3
+ beq _020BDECC
+ cmp r2, r3
+ movhi r2, r3, lsr #0x2
+ movhi r1, r1, lsl #0x1
+ addhi r0, r0, r2, lsl #0x1
+ addhi sp, sp, #0x4
+ ldrhih r0, [r1, r0]
+ ldmhiia sp!, {pc}
+ ands r1, r2, #0x1
+ beq _020BDEC4
+ ands r1, r2, #0x2
+ movne r1, r2, lsr #0x2
+ addne r2, r1, #0x1
+ moveq r2, r2, lsr #0x2
+ addeq r1, r2, #0x1
+ mov r2, r2, lsl #0x1
+ mov r1, r1, lsl #0x1
+ ldrh r12, [r0, r2]
+ ldrh lr, [r0, r1]
+ ldr r0, _020BDF34 ; =0x00007C1F
+ and r3, r12, #0x3e0
+ and r2, lr, #0x3e0
+ mov r1, #0x3
+ mla r2, r3, r1, r2
+ and r12, r12, r0
+ and r3, lr, r0
+ mla r1, r12, r1, r3
+ mov r2, r2, lsr #0x2
+ and r1, r0, r1, lsr #0x2
+ and r0, r2, #0x3e0
+ orr r0, r1, r0
+ mov r0, r0, lsl #0x10
+ add sp, sp, #0x4
+ mov r0, r0, lsr #0x10
+ ldmia sp!, {pc}
+_020BDEC4:
+ mov r1, r2, lsr #0x2
+ b _020BDEE0
+_020BDECC:
+ mov r1, r2, lsr #0x2
+ mov r1, r1, lsl #0x1
+ add sp, sp, #0x4
+ ldrh r0, [r0, r1]
+ ldmia sp!, {pc}
+_020BDEE0:
+ mov r2, r1, lsl #0x1
+ add r1, r0, r1, lsl #0x1
+ ldrh r3, [r0, r2]
+ ldrh r12, [r1, #0x2]
+ ldr r0, _020BDF34 ; =0x00007C1F
+ and r2, r3, #0x3e0
+ and r1, r12, #0x3e0
+ add r1, r2, r1
+ mov r1, r1, lsr #0x1
+ and r3, r3, r0
+ and r2, r12, r0
+ add r2, r3, r2
+ and r2, r0, r2, lsr #0x1
+ and r0, r1, #0x3e0
+ orr r0, r2, r0
+ mov r0, r0, lsl #0x10
+ mov r0, r0, lsr #0x10
+ add sp, sp, #0x4
+ ldmia sp!, {pc}
+ .balign 4
+_020BDF2C: .word 0x0000FFFF
+_020BDF30: .word 0x1FFF0000
+_020BDF34: .word 0x00007C1F
+
+ arm_func_start FUN_020BDF38
+FUN_020BDF38: ; 0x020BDF38
+ stmdb sp!, {r4,lr}
+ ldr r12, [r1, #0x0]
+ mov r4, r0
+ mov r2, r2, lsl #0x10
+ ldr r0, [r1, #0x8]
+ mov r1, r2, lsr #0x10
+ mov r3, r4
+ mov r2, r12, asr #0xc
+ bl FUN_020BE030
+ ldr r0, [r4, #0x10]
+ bic r0, r0, #0xc0000000
+ str r0, [r4, #0x10]
+ ldr r0, [r4, #0x10]
+ orr r0, r0, #0x40000000
+ str r0, [r4, #0x10]
+ ldr r0, [r4, #0x0]
+ orr r0, r0, #0x8
+ str r0, [r4, #0x0]
+ ldmia sp!, {r4,pc}
+
+ arm_func_start FUN_020BDF84
+FUN_020BDF84: ; 0x020BDF84
+ stmdb sp!, {r4-r9,lr}
+ sub sp, sp, #0x4
+ ldr r3, _020BE02C ; =0x021065A0
+ ldr r4, [r2, #0x8]
+ ldr r3, [r3, #0x0]
+ mov r9, r0
+ str r3, [r9, #0xc]
+ ldrb r0, [r2, #0x18]
+ mov r8, r1
+ add r4, r2, r4
+ strb r0, [r9, #0x19]
+ ldrb r2, [r9, #0x19]
+ add r1, r9, #0x1a
+ mov r0, #0x0
+ mov r2, r2, lsl #0x1
+ bl MIi_CpuClear16
+ ldrb r0, [r8, #0x9]
+ mov r7, #0x0
+ cmp r0, #0x0
+ addls sp, sp, #0x4
+ ldmlsia sp!, {r4-r9,pc}
+_020BDFD8: ; 0x020BDFD8
+ mov r6, r7
+ add r5, r8, #0x8
+ add r4, r4, #0x4
+_020BDFE4:
+ ldrh r1, [r8, #0xe]
+ mov r0, r4
+ add r2, r5, r1
+ ldrh r1, [r2, #0x2]
+ add r1, r2, r1
+ add r1, r1, r6
+ bl FUN_020BC14C
+_020BE000: ; 0x020BE000
+ cmp r0, #0x0
+ orrge r1, r7, #0x100
+ addge r0, r9, r0, lsl #0x1
+ strgeh r1, [r0, #0x1a]
+ ldrb r0, [r8, #0x9]
+ add r7, r7, #0x1
+ add r6, r6, #0x10
+ cmp r7, r0
+ blo _020BDFE4
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r9,pc}
+ .balign 4
+_020BE02C: .word 0x021065A0
+
+ arm_func_start FUN_020BE030
+FUN_020BE030: ; 0x020BE030
+ stmdb sp!, {r4-r9,lr}
+ sub sp, sp, #0x4
+ mov r8, r0
+ ldrh r4, [r8, #0xe]
+ add r5, r8, #0x8
+ mov r6, r3
+ ldrh r3, [r5, r4]
+ add r4, r5, r4
+ add r4, r4, #0x4
+ mla r5, r3, r1, r4
+ mov r7, r2
+ ldr r1, [r5, #0x18]
+ ldr r2, [r5, #0x1c]
+ mov r3, r7
+ ldr r4, [r6, #0x0]
+ bl FUN_020BE238
+ mov r9, r0
+ ldr r1, [r5, #0x20]
+ mov r0, r8
+ ldr r2, [r5, #0x24]
+ mov r3, r7
+ bl FUN_020BE238
+_020BE088: ; 0x020BE088
+ cmp r9, #0x0
+ bne _020BE09C
+ cmp r0, #0x0
+ orreq r4, r4, #0x4
+ beq _020BE0A8
+_020BE09C:
+ str r9, [r6, #0x24]
+ str r0, [r6, #0x28]
+ bic r4, r4, #0x4
+_020BE0A8:
+ ldr r1, [r5, #0x10]
+ ldr r2, [r5, #0x14]
+ mov r0, r8
+ mov r3, r7
+ bl FUN_020BE12C
+ cmp r0, #0x10000000
+ strneh r0, [r6, #0x20]
+ movne r0, r0, lsr #0x10
+ strneh r0, [r6, #0x22]
+ orreq r4, r4, #0x2
+ ldr r1, [r5, #0x0]
+ ldr r2, [r5, #0x4]
+ mov r0, r8
+ mov r3, r7
+ bicne r4, r4, #0x2
+ bl FUN_020BE238
+ mov r9, r0
+ ldr r1, [r5, #0x8]
+ ldr r2, [r5, #0xc]
+ mov r0, r8
+ mov r3, r7
+ bl FUN_020BE238
+ cmp r9, #0x1000
+ bne _020BE114
+ cmp r0, #0x1000
+ orreq r4, r4, #0x1
+ beq _020BE120
+_020BE114:
+ str r9, [r6, #0x18]
+ str r0, [r6, #0x1c]
+ bic r4, r4, #0x1
+_020BE120:
+ str r4, [r6, #0x0]
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r9,pc}
+
+ arm_func_start FUN_020BE12C
+FUN_020BE12C: ; 0x020BE12C
+ ands r12, r1, #0x20000000
+ movne r0, r2
+ bxne lr
+ add r0, r0, r2
+ ands r2, r1, #0xc0000000
+ beq _020BE1F8
+ ldr r2, _020BE234 ; =0x0000FFFF
+ ands r12, r1, #0x40000000
+ and r2, r1, r2
+ beq _020BE17C
+ ands r1, r3, #0x1
+ beq _020BE174
+ cmp r3, r2
+ movhi r1, r2, lsr #0x1
+ addhi r3, r1, #0x1
+ bhi _020BE1F8
+ mov r2, r3, lsr #0x1
+ b _020BE200
+_020BE174:
+ mov r3, r3, lsr #0x1
+ b _020BE1F8
+_020BE17C:
+ ands r1, r3, #0x3
+ beq _020BE1F4
+ cmp r3, r2
+ addhi r3, r1, r2, lsr #0x2
+ bhi _020BE1F8
+ ands r1, r3, #0x1
+ beq _020BE1EC
+ ands r1, r3, #0x2
+ movne r1, r3, lsr #0x2
+ addne r2, r1, #0x1
+ moveq r2, r3, lsr #0x2
+ addeq r1, r2, #0x1
+ mov r12, r2, lsl #0x2
+ add r3, r0, r2, lsl #0x2
+ mov r2, r1, lsl #0x2
+ add r1, r0, r1, lsl #0x2
+ ldrsh r12, [r0, r12]
+ ldrsh r2, [r0, r2]
+ mov r0, #0x3
+ ldrsh r3, [r3, #0x2]
+ ldrsh r1, [r1, #0x2]
+ mla r2, r12, r0, r2
+ mla r1, r3, r0, r1
+ ldr r0, _020BE234 ; =0x0000FFFF
+ mov r1, r1, asr #0x2
+ and r0, r0, r2, asr #0x2
+ orr r0, r0, r1, lsl #0x10
+ bx lr
+_020BE1EC:
+ mov r2, r3, lsr #0x2
+ b _020BE200
+_020BE1F4:
+ mov r3, r3, lsr #0x2
+_020BE1F8:
+ ldr r0, [r0, r3, lsl #0x2]
+ bx lr
+_020BE200:
+ add r1, r0, r2, lsl #0x2
+ mov r2, r2, lsl #0x2
+ ldrsh r12, [r0, r2]
+ ldrsh r3, [r1, #0x4]
+ ldrsh r2, [r1, #0x2]
+ ldrsh r1, [r1, #0x6]
+ ldr r0, _020BE234 ; =0x0000FFFF
+ add r3, r12, r3
+ add r1, r2, r1
+ and r2, r0, r3, asr #0x1
+ mov r0, r1, asr #0x1
+ orr r0, r2, r0, lsl #0x10
+ bx lr
+ .balign 4
+_020BE234: .word 0x0000FFFF
+
+ arm_func_start FUN_020BE238
+FUN_020BE238:
+ ands r12, r1, #0x20000000
+ movne r0, r2
+ bxne lr
+ add r0, r0, r2
+ ands r2, r1, #0xc0000000
+ beq _020BE2F0
+ ldr r2, _020BE330 ; =0x0000FFFF
+ ands r12, r1, #0x40000000
+ and r12, r1, r2
+ beq _020BE288
+ ands r2, r3, #0x1
+ beq _020BE280
+ cmp r3, r12
+ movhi r2, r12, lsr #0x1
+ addhi r3, r2, #0x1
+ bhi _020BE2F0
+ mov r3, r3, lsr #0x1
+ b _020BE304
+_020BE280:
+ mov r3, r3, lsr #0x1
+ b _020BE2F0
+_020BE288:
+ ands r2, r3, #0x3
+ beq _020BE2EC
+ cmp r3, r12
+ addhi r3, r2, r12, lsr #0x2
+ bhi _020BE2F0
+ ands r2, r3, #0x1
+ beq _020BE2E4
+ ands r2, r3, #0x2
+ movne r3, r3, lsr #0x2
+ addne r2, r3, #0x1
+ moveq r2, r3, lsr #0x2
+ addeq r3, r2, #0x1
+ ands r1, r1, #0x10000000
+ movne r2, r2, lsl #0x1
+ movne r1, r3, lsl #0x1
+ ldrnesh r2, [r0, r2]
+ ldrnesh r1, [r0, r1]
+ ldreq r2, [r0, r2, lsl #0x2]
+ ldreq r1, [r0, r3, lsl #0x2]
+ mov r0, #0x3
+ mla r0, r2, r0, r1
+ mov r0, r0, asr #0x2
+ bx lr
+_020BE2E4:
+ mov r3, r3, lsr #0x2
+ b _020BE304
+_020BE2EC:
+ mov r3, r3, lsr #0x2
+_020BE2F0:
+ ands r1, r1, #0x10000000
+ movne r1, r3, lsl #0x1
+ ldrnesh r0, [r0, r1]
+ ldreq r0, [r0, r3, lsl #0x2]
+ bx lr
+_020BE304:
+ ands r1, r1, #0x10000000
+ movne r2, r3, lsl #0x1
+ addne r1, r0, r3, lsl #0x1
+ ldrnesh r2, [r0, r2]
+ ldrnesh r0, [r1, #0x2]
+ addeq r1, r0, r3, lsl #0x2
+ ldreq r2, [r0, r3, lsl #0x2]
+ ldreq r0, [r1, #0x4]
+ add r0, r2, r0
+ mov r0, r0, asr #0x1
+ bx lr
+ .balign 4
+_020BE330: .word 0x0000FFFF
+
+ arm_func_start FUN_020BE334
+FUN_020BE334: ; 0x020BE334
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0x4
+ mov r6, r1
+ ldr r3, [r6, #0x0]
+ ldr r5, [r6, #0x8]
+ mov r1, r2, lsl #0x10
+ mov r2, r3, lsl #0x4
+ mov r7, r0
+ mov r0, r5
+ mov r1, r1, lsr #0x10
+ mov r2, r2, lsr #0x10
+ bl FUN_020BC42C
+ mov r4, r0
+ ldrb r1, [r4, #0x2]
+ mov r0, r5
+ bl FUN_020BC4B8
+ mov r1, r0
+ ldr r0, [r6, #0x14]
+ mov r2, r7
+ bl FUN_020BE408
+ ldrb r1, [r4, #0x3]
+ cmp r1, #0xff
+ addeq sp, sp, #0x4
+ ldmeqia sp!, {r4-r7,pc}
+_020BE394: ; 0x020BE394
+ mov r0, r5
+ bl FUN_020BC4A8
+ mov r1, r0
+ ldr r0, [r6, #0x14]
+ mov r2, r7
+ bl FUN_020BE3B4
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r7,pc}
+
+ arm_func_start FUN_020BE3B4
+FUN_020BE3B4: ; 0x020BE3B4
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ mov r5, r0
+ ldrh r0, [r5, #0x34]
+ mov r4, r2
+ add r0, r5, r0
+ bl FUN_020BC2A0
+ ldr r1, [r5, #0x2c]
+ ldrh r2, [r0, #0x2]
+ mov r1, r1, lsl #0x10
+ mov r3, r1, lsr #0x10
+ ands r1, r2, #0x1
+ ldrh r0, [r0, #0x0]
+ moveq r1, r3, lsl #0xf
+ moveq r3, r1, lsr #0x10
+ moveq r0, r0, lsl #0xf
+ moveq r0, r0, lsr #0x10
+ add r0, r0, r3
+ str r0, [r4, #0x14]
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,pc}
+
+ arm_func_start FUN_020BE408
+FUN_020BE408: ; 0x020BE408
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ mov r5, r0
+ add r0, r5, #0x3c
+ mov r4, r2
+ bl FUN_020BC2A0
+ ldr r1, [r0, #0x0]
+ ldr r3, [r4, #0x10]
+ and r1, r1, #0x1c000000
+ cmp r1, #0x14000000
+ ldrne r2, [r5, #0x8]
+ ldrne r1, _020BE4E0 ; =0x0000FFFF
+ andne r5, r2, r1
+ ldreq r2, [r5, #0x18]
+ ldreq r1, _020BE4E0 ; =0x0000FFFF
+ andeq r5, r2, r1
+ ldr r1, _020BE4E4 ; =0xC00F0000
+ ldr r2, _020BE4E8 ; =0x000007FF
+ and r1, r3, r1
+ str r1, [r4, #0x10]
+ ldr r1, [r0, #0x0]
+ ldr r3, [r4, #0x10]
+ add r1, r1, r5
+ orr r1, r3, r1
+ str r1, [r4, #0x10]
+ ldr r3, [r0, #0x4]
+ ldr r1, _020BE4EC ; =0x003FF800
+ and r3, r3, r2
+ strh r3, [r4, #0x2c]
+ ldr r3, [r0, #0x4]
+ and r1, r3, r1
+ mov r1, r1, lsr #0xb
+ strh r1, [r4, #0x2e]
+ ldr r3, [r0, #0x4]
+ ldrh r1, [r4, #0x2c]
+ and r0, r3, r2
+ and r5, r2, r3, lsr #0xb
+ cmp r0, r1
+ moveq r0, #0x1000
+ beq _020BE4B4
+ mov r0, r0, lsl #0xc
+ mov r1, r1, lsl #0xc
+ bl FX_Div
+_020BE4B4:
+ str r0, [r4, #0x30]
+ ldrh r1, [r4, #0x2e]
+ cmp r5, r1
+ moveq r0, #0x1000
+ beq _020BE4D4
+ mov r0, r5, lsl #0xc
+ mov r1, r1, lsl #0xc
+ bl FX_Div
+_020BE4D4:
+ str r0, [r4, #0x34]
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,pc}
+ .balign 4
+_020BE4E0: .word 0x0000FFFF
+_020BE4E4: .word 0xC00F0000
+_020BE4E8: .word 0x000007FF
+_020BE4EC: .word 0x003FF800
+
+ arm_func_start FUN_020BE4F0
+FUN_020BE4F0: ; 0x020BE4F0
+ stmdb sp!, {r4-r9,lr}
+ sub sp, sp, #0x4
+ ldr r3, _020BE59C ; =0x021065A4
+ ldr r4, [r2, #0x8]
+ ldr r3, [r3, #0x0]
+ mov r9, r0
+ str r3, [r9, #0xc]
+ ldrb r0, [r2, #0x18]
+ mov r8, r1
+ add r4, r2, r4
+ strb r0, [r9, #0x19]
+ str r8, [r9, #0x8]
+ ldrb r2, [r9, #0x19]
+ add r1, r9, #0x1a
+ mov r0, #0x0
+ mov r2, r2, lsl #0x1
+ bl MIi_CpuClear16
+ ldrb r0, [r8, #0xd]
+ mov r7, #0x0
+ cmp r0, #0x0
+ addls sp, sp, #0x4
+ ldmlsia sp!, {r4-r9,pc}
+_020BE548: ; 0x020BE548
+ mov r6, r7
+ add r5, r8, #0xc
+ add r4, r4, #0x4
+_020BE554:
+ ldrh r1, [r8, #0x12]
+ mov r0, r4
+ add r2, r5, r1
+ ldrh r1, [r2, #0x2]
+ add r1, r2, r1
+ add r1, r1, r6
+ bl FUN_020BC14C
+_020BE570: ; 0x020BE570
+ cmp r0, #0x0
+ orrge r1, r7, #0x100
+ addge r0, r9, r0, lsl #0x1
+ strgeh r1, [r0, #0x1a]
+ ldrb r0, [r8, #0xd]
+ add r7, r7, #0x1
+ add r6, r6, #0x10
+ cmp r7, r0
+ blo _020BE554
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r9,pc}
+ .balign 4
+_020BE59C: .word 0x021065A4
+
+ arm_func_start FUN_020BE5A0
+FUN_020BE5A0: ; 0x020BE5A0
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldr lr, [r1, #0x8]
+ ldr r3, [r1, #0x0]
+ ldrh r1, [lr, #0x6]
+ mov r12, r3, asr #0xc
+ mov r3, #0x1
+ mla r2, r12, r1, r2
+ mov r1, r2, lsr #0x5
+ add r1, lr, r1, lsl #0x2
+ ldr r1, [r1, #0xc]
+ and r2, r2, #0x1f
+ and r1, r1, r3, lsl r2
+ str r1, [r0, #0x0]
+ add sp, sp, #0x4
+ ldmia sp!, {pc}
+
+ arm_func_start FUN_020BE5E0
+FUN_020BE5E0: ; 0x020BE5E0
+ ldr r3, _020BE628 ; =0x02106598
+ mov r12, #0x0
+ ldr r3, [r3, #0x0]
+ str r3, [r0, #0xc]
+ ldrb r2, [r2, #0x17]
+ strb r2, [r0, #0x19]
+ str r1, [r0, #0x8]
+ ldrb r1, [r0, #0x19]
+ cmp r1, #0x0
+ bxls lr
+_020BE608:
+ orr r2, r12, #0x100
+ add r1, r0, r12, lsl #0x1
+ strh r2, [r1, #0x1a]
+ ldrb r1, [r0, #0x19]
+ add r12, r12, #0x1
+ cmp r12, r1
+ blo _020BE608
+ bx lr
+ .balign 4
+_020BE628: .word 0x02106598
+
+ arm_func_start FUN_020BE62C
+FUN_020BE62C: ; 0x020BE62C
+ ands r2, r3, #0x4
+ ldrne r1, [r0, #0x0]
+ orrne r1, r1, #0x1
+ strne r1, [r0, #0x0]
+ bne _020BE658
+
+ arm_func_start FUN_020BE640
+FUN_020BE640: ; 0x020BE640
+ ldr r2, [r1, #0x0]
+ str r2, [r0, #0x4]
+ ldr r2, [r1, #0x4]
+ str r2, [r0, #0x8]
+ ldr r1, [r1, #0x8]
+ str r1, [r0, #0xc]
+_020BE658:
+ ldr r1, [r0, #0x0]
+ orr r1, r1, #0x18
+ str r1, [r0, #0x0]
+ bx lr
+
+ arm_func_start FUN_020BE668
+FUN_020BE668: ; 0x020BE668
+ stmdb sp!, {r4,lr}
+ mov r4, r0
+ ldr r1, [r4, #0x0]
+ ands r0, r1, #0x4
+ bne _020BE6AC
+ ands r0, r1, #0x2
+ bne _020BE698
+ add r1, r4, #0x28
+ mov r0, #0x19
+ mov r2, #0xc
+ bl FUN_020BB1C0
+ b _020BE6C4
+_020BE698:
+ add r1, r4, #0x4c
+ mov r0, #0x1c
+ mov r2, #0x3
+ bl FUN_020BB1C0
+ b _020BE6C4
+_020BE6AC:
+ ands r0, r1, #0x2
+ bne _020BE6C4
+ add r1, r4, #0x28
+ mov r0, #0x1a
+ mov r2, #0x9
+ bl FUN_020BB1C0
+_020BE6C4:
+ ldr r0, [r4, #0x0]
+ ands r0, r0, #0x1
+ ldmneia sp!, {r4,pc}
+_020BE6D0: ; 0x020BE6D0
+ add r1, r4, #0x4
+ mov r0, #0x1b
+ mov r2, #0x3
+ bl FUN_020BB1C0
+ ldmia sp!, {r4,pc}
+
+ arm_func_start FUN_020BE6E4
+FUN_020BE6E4: ; 0x020BE6E4
+ stmdb sp!, {r4,lr}
+ sub sp, sp, #0x50
+ mov r4, r0
+ ldr r0, [r4, #0x0]
+ mov r1, #0x0
+ ands r0, r0, #0x8
+ ldrne r0, _020BE820 ; =0x00101610
+ mov r3, #0x3
+ strne r0, [sp, #0x0]
+ ldreq r0, _020BE824 ; =0x00101810
+ mov r2, #0x2
+ streq r0, [sp, #0x0]
+ mov r0, #0x1000
+ str r0, [sp, #0x44]
+ str r3, [sp, #0x4]
+ str r2, [sp, #0x48]
+ str r1, [sp, #0x40]
+ str r1, [sp, #0x34]
+ str r1, [sp, #0x30]
+ str r1, [sp, #0x2c]
+ str r1, [sp, #0x28]
+ str r1, [sp, #0x24]
+ str r1, [sp, #0x20]
+ str r1, [sp, #0x14]
+ str r1, [sp, #0x10]
+ ldr r1, [r4, #0x0]
+ ldr r0, _020BE828 ; =0x021067B0
+ and r1, r1, #0x7
+ ldr r2, [r0, r1, lsl #0x2]
+ add r0, sp, #0x8
+ mov r1, r4
+ blx r2
+ ldr r3, [r4, #0x30]
+ cmp r3, #0x1000
+ beq _020BE7B4
+ ldr r0, [sp, #0x8]
+ ldr r1, [sp, #0xc]
+ smull r2, r0, r3, r0
+ mov r2, r2, lsr #0xc
+ orr r2, r2, r0, lsl #0x14
+ str r2, [sp, #0x8]
+ ldr r2, [r4, #0x30]
+ ldr r0, [sp, #0x38]
+ smull r3, r1, r2, r1
+ mov r2, r3, lsr #0xc
+ orr r2, r2, r1, lsl #0x14
+ str r2, [sp, #0xc]
+ ldr r1, [r4, #0x30]
+ smull r2, r0, r1, r0
+ mov r1, r2, lsr #0xc
+ orr r1, r1, r0, lsl #0x14
+ str r1, [sp, #0x38]
+_020BE7B4:
+ ldr r3, [r4, #0x34]
+ cmp r3, #0x1000
+ beq _020BE804
+ ldr r0, [sp, #0x18]
+ ldr r1, [sp, #0x1c]
+ smull r2, r0, r3, r0
+ mov r2, r2, lsr #0xc
+ orr r2, r2, r0, lsl #0x14
+ str r2, [sp, #0x18]
+ ldr r2, [r4, #0x34]
+ ldr r0, [sp, #0x3c]
+ smull r3, r1, r2, r1
+ mov r2, r3, lsr #0xc
+ orr r2, r2, r1, lsl #0x14
+ str r2, [sp, #0x1c]
+ ldr r1, [r4, #0x34]
+ smull r2, r0, r1, r0
+ mov r1, r2, lsr #0xc
+ orr r1, r1, r0, lsl #0x14
+ str r1, [sp, #0x3c]
+_020BE804:
+ add r1, sp, #0x0
+ ldr r0, [sp, #0x0]
+ add r1, r1, #0x4
+ mov r2, #0x12
+ bl FUN_020BB1C0
+ add sp, sp, #0x50
+ ldmia sp!, {r4,pc}
+ .balign 4
+_020BE820: .word 0x00101610
+_020BE824: .word 0x00101810
+_020BE828: .word 0x021067B0
+
+ arm_func_start FUN_020BE82C
+FUN_020BE82C: ; 0x020BE82C
+ mov r2, #0x1000
+ str r2, [r0, #0x0]
+ mov r1, #0x0
+ str r1, [r0, #0x4]
+ str r1, [r0, #0x10]
+ str r2, [r0, #0x14]
+ str r1, [r0, #0x30]
+ str r1, [r0, #0x34]
+ bx lr
+
+ arm_func_start FUN_020BE850
+FUN_020BE850: ; 0x020BE850
+ ldr r2, [r1, #0x18]
+ mov r12, #0x0
+ str r2, [r0, #0x0]
+ ldr r2, [r1, #0x1c]
+ str r2, [r0, #0x14]
+ str r12, [r0, #0x4]
+ str r12, [r0, #0x30]
+ ldr r2, [r1, #0x1c]
+ ldrh r3, [r1, #0x2e]
+ mov r1, r2, lsl #0x1
+ rsb r1, r1, #0x0
+ add r1, r1, #0x2000
+ mul r1, r3, r1
+ mov r1, r1, lsl #0x3
+ str r1, [r0, #0x34]
+ str r12, [r0, #0x10]
+ bx lr
+
+ arm_func_start FUN_020BE894
+FUN_020BE894: ; 0x020BE894
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0x4
+ mov r5, r1
+ ldrh r2, [r5, #0x2c]
+ ldrh r1, [r5, #0x2e]
+ mov r6, r0
+ mov r4, r2, lsl #0xc
+ mov r7, r1, lsl #0xc
+ mov r0, r7
+ mov r1, r4
+ bl FX_DivAsync
+ ldrsh r0, [r5, #0x22]
+ str r0, [r6, #0x0]
+ ldrsh r0, [r5, #0x22]
+ str r0, [r6, #0x14]
+ bl FX_GetDivResult
+ ldrsh r2, [r5, #0x20]
+ mov r1, r7
+ rsb r2, r2, #0x0
+ mul r0, r2, r0
+ mov r2, r0, asr #0xc
+ mov r0, r4
+ str r2, [r6, #0x4]
+ bl FX_DivAsync
+ ldrsh r1, [r5, #0x20]
+ ldrsh r0, [r5, #0x22]
+ ldrh r2, [r5, #0x2c]
+ add r0, r1, r0
+ rsb r0, r0, #0x0
+ add r0, r0, #0x1000
+ mul r0, r2, r0
+ mov r0, r0, lsl #0x3
+ str r0, [r6, #0x30]
+ ldrsh r1, [r5, #0x20]
+ ldrsh r0, [r5, #0x22]
+ ldrh r2, [r5, #0x2e]
+ sub r0, r1, r0
+ add r0, r0, #0x1000
+ mul r0, r2, r0
+ mov r0, r0, lsl #0x3
+ str r0, [r6, #0x34]
+ bl FX_GetDivResult
+ ldrsh r1, [r5, #0x20]
+ mul r0, r1, r0
+ mov r0, r0, asr #0xc
+ str r0, [r6, #0x10]
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r7,pc}
+
+ arm_func_start FUN_020BE954
+FUN_020BE954: ; 0x020BE954
+ stmdb sp!, {r4-r11,lr}
+ sub sp, sp, #0x4
+ mov r9, r1
+ ldrh r2, [r9, #0x2c]
+ ldrh r1, [r9, #0x2e]
+ mov r10, r0
+ mov r8, r2, lsl #0xc
+ mov r11, r1, lsl #0xc
+ mov r0, r11
+ mov r1, r8
+ bl FX_DivAsync
+ ldrsh r5, [r9, #0x22]
+ ldr r3, [r9, #0x18]
+ ldrsh r0, [r9, #0x20]
+ ldr r4, [r9, #0x1c]
+ smull r2, r1, r3, r5
+ mov r6, r2, lsr #0xc
+ orr r6, r6, r1, lsl #0x14
+ smull r2, r1, r3, r0
+ mov r7, r2, lsr #0xc
+ orr r7, r7, r1, lsl #0x14
+ smull r3, r2, r4, r0
+ smull r1, r0, r4, r5
+ mov r5, r3, lsr #0xc
+ orr r5, r5, r2, lsl #0x14
+ mov r4, r1, lsr #0xc
+ orr r4, r4, r0, lsl #0x14
+ str r6, [r10, #0x0]
+ str r4, [r10, #0x14]
+ bl FX_GetDivResult
+ mov r1, r11
+ rsb r2, r5, #0x0
+ mul r0, r2, r0
+ mov r0, r0, asr #0xc
+ str r0, [r10, #0x4]
+ mov r0, r8
+ bl FX_DivAsync
+ sub r1, r5, r4
+ add r0, r7, r6
+ ldrh r3, [r9, #0x2c]
+ ldr r2, [r9, #0x18]
+ sub r0, r2, r0
+ mul r0, r3, r0
+ mov r0, r0, lsl #0x3
+ str r0, [r10, #0x30]
+ ldrh r2, [r9, #0x2e]
+ ldr r0, [r9, #0x1c]
+ sub r0, r1, r0
+ add r0, r0, #0x2000
+ mul r0, r2, r0
+ mov r0, r0, lsl #0x3
+ str r0, [r10, #0x34]
+ bl FX_GetDivResult
+ mul r0, r7, r0
+ mov r0, r0, asr #0xc
+ str r0, [r10, #0x10]
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r11,pc}
+
+ arm_func_start FUN_020BEA3C
+FUN_020BEA3C: ; 0x020BEA3C
+ mov r2, #0x1000
+ str r2, [r0, #0x0]
+ str r2, [r0, #0x14]
+ mov r12, #0x0
+ str r12, [r0, #0x4]
+ ldrh r2, [r1, #0x2c]
+ ldr r3, [r1, #0x24]
+ mul r2, r3, r2
+ rsb r2, r2, #0x0
+ mov r2, r2, lsl #0x4
+ str r2, [r0, #0x30]
+ ldrh r2, [r1, #0x2e]
+ ldr r1, [r1, #0x28]
+ mul r2, r1, r2
+ mov r1, r2, lsl #0x4
+ str r1, [r0, #0x34]
+ str r12, [r0, #0x10]
+ bx lr
+
+ arm_func_start FUN_020BEA84
+FUN_020BEA84: ; 0x020BEA84
+ stmdb sp!, {r4,lr}
+ ldr r3, [r1, #0x18]
+ mov r2, #0x0
+ str r3, [r0, #0x0]
+ ldr r3, [r1, #0x1c]
+ str r3, [r0, #0x14]
+ str r2, [r0, #0x4]
+ ldr r4, [r1, #0x18]
+ ldr r3, [r1, #0x24]
+ ldrh lr, [r1, #0x2c]
+ smull r12, r3, r4, r3
+ mov r4, r12, lsr #0x8
+ orr r4, r4, r3, lsl #0x18
+ rsb r3, r4, #0x0
+ mul r3, lr, r3
+ str r3, [r0, #0x30]
+ ldr r4, [r1, #0x1c]
+ ldr r12, [r1, #0x28]
+ mov r3, r4, lsl #0x1
+ smull lr, r12, r4, r12
+ rsb r4, r3, #0x0
+ mov r3, lr, lsr #0x8
+ ldrh lr, [r1, #0x2e]
+ add r1, r4, #0x2000
+ orr r3, r3, r12, lsl #0x18
+ mul r4, lr, r1
+ mul r1, lr, r3
+ add r1, r1, r4, lsl #0x3
+ str r1, [r0, #0x34]
+ str r2, [r0, #0x10]
+ ldmia sp!, {r4,pc}
+
+ arm_func_start FUN_020BEB00
+FUN_020BEB00: ; 0x020BEB00
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0x4
+ mov r5, r1
+ ldrh r2, [r5, #0x2c]
+ ldrh r1, [r5, #0x2e]
+ mov r6, r0
+ mov r4, r2, lsl #0xc
+ mov r7, r1, lsl #0xc
+ mov r0, r7
+ mov r1, r4
+ bl FX_DivAsync
+ ldrsh r0, [r5, #0x22]
+ str r0, [r6, #0x0]
+ ldrsh r0, [r5, #0x22]
+ str r0, [r6, #0x14]
+ bl FX_GetDivResult
+ ldrsh r2, [r5, #0x20]
+ mov r1, r7
+ rsb r2, r2, #0x0
+ mul r0, r2, r0
+ mov r2, r0, asr #0xc
+ mov r0, r4
+ str r2, [r6, #0x4]
+ bl FX_DivAsync
+ ldrsh r2, [r5, #0x20]
+ ldrsh r1, [r5, #0x22]
+ ldrh r3, [r5, #0x2c]
+ ldr r0, [r5, #0x24]
+ add r1, r2, r1
+ rsb r1, r1, #0x0
+ add r1, r1, #0x1000
+ mul r2, r3, r1
+ mul r1, r0, r3
+ mov r0, r2, lsl #0x3
+ sub r0, r0, r1, lsl #0x4
+ str r0, [r6, #0x30]
+ ldrsh r2, [r5, #0x20]
+ ldrsh r1, [r5, #0x22]
+ ldrh r3, [r5, #0x2e]
+ ldr r0, [r5, #0x28]
+ sub r1, r2, r1
+ add r1, r1, #0x1000
+ mul r2, r3, r1
+ mul r1, r0, r3
+ mov r0, r2, lsl #0x3
+ add r0, r0, r1, lsl #0x4
+ str r0, [r6, #0x34]
+ bl FX_GetDivResult
+ ldrsh r1, [r5, #0x20]
+ mul r0, r1, r0
+ mov r0, r0, asr #0xc
+ str r0, [r6, #0x10]
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r7,pc}
+
+ arm_func_start FUN_020BEBD8
+FUN_020BEBD8: ; 0x020BEBD8
+ stmdb sp!, {r4-r11,lr}
+ sub sp, sp, #0x4
+ mov r9, r1
+ ldrh r2, [r9, #0x2c]
+ ldrh r1, [r9, #0x2e]
+ mov r10, r0
+ mov r8, r2, lsl #0xc
+ mov r11, r1, lsl #0xc
+ mov r0, r11
+ mov r1, r8
+ bl FX_DivAsync
+ ldrsh r5, [r9, #0x22]
+ ldr r3, [r9, #0x18]
+ ldrsh r0, [r9, #0x20]
+ ldr r4, [r9, #0x1c]
+ smull r2, r1, r3, r5
+ mov r6, r2, lsr #0xc
+ orr r6, r6, r1, lsl #0x14
+ smull r2, r1, r3, r0
+ mov r7, r2, lsr #0xc
+ orr r7, r7, r1, lsl #0x14
+ smull r3, r2, r4, r0
+ smull r1, r0, r4, r5
+ mov r5, r3, lsr #0xc
+ orr r5, r5, r2, lsl #0x14
+ mov r4, r1, lsr #0xc
+ orr r4, r4, r0, lsl #0x14
+ str r6, [r10, #0x0]
+ str r4, [r10, #0x14]
+ bl FX_GetDivResult
+ mov r1, r11
+ rsb r2, r5, #0x0
+ mul r0, r2, r0
+ mov r0, r0, asr #0xc
+ str r0, [r10, #0x4]
+ mov r0, r8
+ bl FX_DivAsync
+ sub r1, r5, r4
+ add r2, r7, r6
+ ldr r5, [r9, #0x18]
+ ldrh r0, [r9, #0x2c]
+ sub r3, r5, r2
+ ldr r2, [r9, #0x24]
+ mul r4, r0, r3
+ smull r3, r2, r5, r2
+ mov r4, r4, lsl #0x3
+ mov r3, r3, lsr #0x8
+ orr r3, r3, r2, lsl #0x18
+ mul r2, r0, r3
+ sub r0, r4, r2
+ str r0, [r10, #0x30]
+ ldr r4, [r9, #0x1c]
+ ldrh r3, [r9, #0x2e]
+ sub r0, r1, r4
+ add r0, r0, #0x2000
+ mul r2, r3, r0
+ ldr r0, [r9, #0x28]
+ smull r1, r0, r4, r0
+ mov r1, r1, lsr #0x8
+ orr r1, r1, r0, lsl #0x18
+ mul r0, r3, r1
+ add r0, r0, r2, lsl #0x3
+ str r0, [r10, #0x34]
+ bl FX_GetDivResult
+ mul r0, r7, r0
+ mov r0, r0, asr #0xc
+ str r0, [r10, #0x10]
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r11,pc}
+
+ arm_func_start FUN_020BECEC
+FUN_020BECEC: ; 0x020BECEC
+ stmdb sp!, {r4-r8,lr}
+ mov r12, r0
+ ands r0, r3, #0x4
+ ldrb r3, [r2, #0x3]
+ beq _020BED40
+ ldr r1, [r12, #0x0]
+ ands r0, r3, #0x2
+ orr r0, r1, #0x1
+ str r0, [r12, #0x0]
+ beq _020BEDB8
+ ldr r0, _020BEE2C ; =0x021CEF7C
+ ldrb r7, [r2, #0x1]
+ ldr r0, [r0, #0x0]
+ mov r1, #0x1
+ add r6, r0, #0xc4
+ mov r5, r7, lsr #0x5
+ ldr r4, [r6, r5, lsl #0x2]
+ and r0, r7, #0x1f
+ orr r0, r4, r1, lsl r0
+ str r0, [r6, r5, lsl #0x2]
+ b _020BEDB8
+_020BED40:
+ ldr r4, [r1, #0x0]
+ ands r0, r3, #0x2
+ str r4, [r12, #0x4]
+ ldr r0, [r1, #0x4]
+ str r0, [r12, #0x8]
+ ldr r0, [r1, #0x8]
+ str r0, [r12, #0xc]
+ beq _020BEDB8
+ ldr lr, _020BEE2C ; =0x021CEF7C
+ ldrb r0, [r2, #0x1]
+ ldr r4, [lr, #0x0]
+ mov lr, #0x18
+ add r8, r4, #0xc4
+ mov r7, r0, lsr #0x5
+ and r4, r0, #0x1f
+ mov r5, #0x1
+ mvn r4, r5, lsl r4
+ ldr r6, [r8, r7, lsl #0x2]
+ mul r5, r0, lr
+ and r0, r6, r4
+ str r0, [r8, r7, lsl #0x2]
+ ldr r4, [r1, #0xc]
+ ldr r0, _020BEE30 ; =0x021CFD8C
+ ldr lr, _020BEE34 ; =0x021CFD90
+ str r4, [r0, r5]
+ ldr r4, [r1, #0x10]
+ ldr r0, _020BEE38 ; =0x021CFD94
+ str r4, [lr, r5]
+ ldr r1, [r1, #0x14]
+ str r1, [r0, r5]
+_020BEDB8:
+ ands r0, r3, #0x1
+ beq _020BEE1C
+ ldrb r0, [r2, #0x2]
+ ldr r2, [r12, #0x0]
+ ldr r1, _020BEE2C ; =0x021CEF7C
+ orr r2, r2, #0x20
+ str r2, [r12, #0x0]
+ ldr r2, [r1, #0x0]
+ mov r1, r0, lsr #0x5
+ add r1, r2, r1, lsl #0x2
+ and r2, r0, #0x1f
+ mov r3, #0x1
+ mov r2, r3, lsl r2
+ ldr r1, [r1, #0xc4]
+ ands r1, r2, r1
+ ldrne r0, [r12, #0x0]
+ orrne r0, r0, #0x8
+ strne r0, [r12, #0x0]
+ bne _020BEE1C
+ ldr r2, _020BEE30 ; =0x021CFD8C
+ mov r1, #0x18
+ mla r1, r0, r1, r2
+ add r3, r12, #0x10
+ ldmia r1, {r0-r2}
+ stmia r3, {r0-r2}
+_020BEE1C:
+ ldr r0, [r12, #0x0]
+ orr r0, r0, #0x10
+ str r0, [r12, #0x0]
+ ldmia sp!, {r4-r8,pc}
+ .balign 4
+_020BEE2C: .word 0x021CEF7C
+_020BEE30: .word 0x021CFD8C
+_020BEE34: .word 0x021CFD90
+_020BEE38: .word 0x021CFD94
+
+ arm_func_start FUN_020BEE3C
+FUN_020BEE3C: ; 0x020BEE3C
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ mov r5, r0
+ ldr r1, [r5, #0x0]
+ mov r4, #0x0
+ ands r0, r1, #0x4
+ moveq r4, #0x1
+ ands r0, r1, #0x20
+ beq _020BEE94
+ ands r0, r1, #0x8
+ bne _020BEE94
+ cmp r4, #0x0
+ beq _020BEE84
+ add r1, r5, #0x4c
+ mov r0, #0x1c
+ mov r2, #0x3
+ bl FUN_020BB1C0
+ mov r4, #0x0
+_020BEE84:
+ add r1, r5, #0x10
+ mov r0, #0x1b
+ mov r2, #0x3
+ bl FUN_020BB1C0
+_020BEE94:
+ ldr r0, [r5, #0x0]
+ ands r0, r0, #0x2
+ bne _020BEED0
+ cmp r4, #0x0
+ beq _020BEEBC
+ add r1, r5, #0x28
+ mov r0, #0x19
+ mov r2, #0xc
+ bl FUN_020BB1C0
+ b _020BEEE8
+_020BEEBC:
+ add r1, r5, #0x28
+ mov r0, #0x1a
+ mov r2, #0x9
+ bl FUN_020BB1C0
+ b _020BEEE8
+_020BEED0:
+ cmp r4, #0x0
+ beq _020BEEE8
+ add r1, r5, #0x4c
+ mov r0, #0x1c
+ mov r2, #0x3
+ bl FUN_020BB1C0
+_020BEEE8:
+ ldr r0, [r5, #0x0]
+ ands r0, r0, #0x1
+ addne sp, sp, #0x4
+ ldmneia sp!, {r4-r5,pc}
+_020BEEF8: ; 0x020BEEF8
+ add r1, r5, #0x4
+ mov r0, #0x1b
+ mov r2, #0x3
+ bl FUN_020BB1C0
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,pc}
+
+ arm_func_start FUN_020BEF10
+FUN_020BEF10: ; 0x020BEF10
+ stmdb sp!, {lr}
+ sub sp, sp, #0x3c
+ ldr r1, [r0, #0x0]
+ mov r3, #0x0
+ ands r1, r1, #0x8
+ ldrne r1, _020BF0CC ; =0x00101710
+ mov r2, #0x3
+ strne r1, [sp, #0x0]
+ ldreq r1, _020BF0D0 ; =0x00101910
+ str r3, [sp, #0x34]
+ streq r1, [sp, #0x0]
+ mov r1, #0x2
+ str r1, [sp, #0x38]
+ str r3, [sp, #0x28]
+ str r3, [sp, #0x24]
+ str r3, [sp, #0x20]
+ str r3, [sp, #0x1c]
+ str r3, [sp, #0x14]
+ str r3, [sp, #0x10]
+ str r3, [sp, #0xc]
+ str r2, [sp, #0x4]
+ ldr r2, [r0, #0x0]
+ ands r1, r2, #0x4
+ beq _020BEFA0
+ str r3, [sp, #0x2c]
+ str r3, [sp, #0x30]
+ ldr r1, [r0, #0x0]
+ ands r1, r1, #0x1
+ movne r1, #0x1000
+ strne r1, [sp, #0x8]
+ strne r1, [sp, #0x18]
+ ldreq r1, [r0, #0x18]
+ streq r1, [sp, #0x8]
+ ldreq r1, [r0, #0x1c]
+ streq r1, [sp, #0x18]
+ b _020BF040
+_020BEFA0:
+ ands r1, r2, #0x1
+ beq _020BEFE8
+ ldr r2, [r0, #0x24]
+ ldrh r1, [r0, #0x2c]
+ mov r2, r2, lsl #0x4
+ rsb r2, r2, #0x0
+ mul r1, r2, r1
+ str r1, [sp, #0x2c]
+ ldr r2, [r0, #0x28]
+ ldrh r1, [r0, #0x2e]
+ mov r2, r2, lsl #0x4
+ rsb r2, r2, #0x0
+ mul r3, r2, r1
+ mov r1, #0x1000
+ str r3, [sp, #0x30]
+ str r1, [sp, #0x8]
+ str r1, [sp, #0x18]
+ b _020BF040
+_020BEFE8:
+ ldr r2, [r0, #0x18]
+ ldr r1, [r0, #0x24]
+ ldrh r12, [r0, #0x2c]
+ smull r3, r1, r2, r1
+ mov r2, r3, lsr #0x8
+ orr r2, r2, r1, lsl #0x18
+ rsb r1, r2, #0x0
+ mul r1, r12, r1
+ str r1, [sp, #0x2c]
+ ldr r2, [r0, #0x1c]
+ ldr r1, [r0, #0x28]
+ ldrh r12, [r0, #0x2e]
+ smull r3, r1, r2, r1
+ mov r2, r3, lsr #0x8
+ orr r2, r2, r1, lsl #0x18
+ rsb r1, r2, #0x0
+ mul r1, r12, r1
+ str r1, [sp, #0x30]
+ ldr r1, [r0, #0x18]
+ str r1, [sp, #0x8]
+ ldr r1, [r0, #0x1c]
+ str r1, [sp, #0x18]
+_020BF040:
+ ldr r12, [r0, #0x30]
+ cmp r12, #0x1000
+ beq _020BF078
+ ldr r2, [sp, #0x8]
+ ldr r1, [sp, #0x2c]
+ smull r3, r2, r12, r2
+ mov r3, r3, lsr #0xc
+ orr r3, r3, r2, lsl #0x14
+ str r3, [sp, #0x8]
+ ldr r2, [r0, #0x30]
+ smull r3, r1, r2, r1
+ mov r2, r3, lsr #0xc
+ orr r2, r2, r1, lsl #0x14
+ str r2, [sp, #0x2c]
+_020BF078:
+ ldr r12, [r0, #0x34]
+ cmp r12, #0x1000
+ beq _020BF0B0
+ ldr r2, [sp, #0x18]
+ ldr r1, [sp, #0x30]
+ smull r3, r2, r12, r2
+ mov r3, r3, lsr #0xc
+ orr r3, r3, r2, lsl #0x14
+ str r3, [sp, #0x18]
+ ldr r0, [r0, #0x34]
+ smull r2, r1, r0, r1
+ mov r0, r2, lsr #0xc
+ orr r0, r0, r1, lsl #0x14
+ str r0, [sp, #0x30]
+_020BF0B0:
+ add r1, sp, #0x0
+ ldr r0, [sp, #0x0]
+ add r1, r1, #0x4
+ mov r2, #0xe
+ bl FUN_020BB1C0
+ add sp, sp, #0x3c
+ ldmia sp!, {pc}
+ .balign 4
+_020BF0CC: .word 0x00101710
+_020BF0D0: .word 0x00101910
+
+ arm_func_start FUN_020BF0D4
+FUN_020BF0D4: ; 0x020BF0D4
+ stmdb sp!, {r4-r8,lr}
+ mov r5, r0
+ ands r0, r3, #0x4
+ ldrb r4, [r2, #0x1]
+ ldrb r0, [r2, #0x2]
+ beq _020BF174
+ ldr r2, [r5, #0x0]
+ ldr r1, _020BF2E0 ; =0x021CEF7C
+ orr r2, r2, #0x1
+ str r2, [r5, #0x0]
+ ldr r3, [r1, #0x0]
+ mov r1, r0, lsr #0x5
+ add r1, r3, r1, lsl #0x2
+ and r2, r0, #0x1f
+ mov r6, #0x1
+ mov r2, r6, lsl r2
+ ldr r1, [r1, #0xc4]
+ ands r1, r2, r1
+ beq _020BF148
+ add r3, r3, #0xc4
+ mov r2, r4, lsr #0x5
+ ldr r1, [r3, r2, lsl #0x2]
+ and r0, r4, #0x1f
+ orr r0, r1, r6, lsl r0
+ str r0, [r3, r2, lsl #0x2]
+ ldr r0, [r5, #0x0]
+ orr r0, r0, #0x18
+ str r0, [r5, #0x0]
+ ldmia sp!, {r4-r8,pc}
+_020BF148:
+ ldr r1, _020BF2E4 ; =0x021CFD80
+ mov r2, #0x18
+ mla r6, r0, r2, r1
+ mla r1, r4, r2, r1
+ mov r0, r6
+ bl MIi_CpuCopy32
+ mov r0, r6
+ add r1, r5, #0x10
+ mov r2, #0x18
+ bl MIi_CpuCopy32
+ ldmia sp!, {r4-r8,pc}
+_020BF174:
+ ldr r3, [r1, #0x0]
+ ldr r2, _020BF2E0 ; =0x021CEF7C
+ str r3, [r5, #0x4]
+ ldr r3, [r1, #0x4]
+ mov r7, r0, lsr #0x5
+ str r3, [r5, #0x8]
+ ldr r3, [r1, #0x8]
+ and r8, r0, #0x1f
+ str r3, [r5, #0xc]
+ ldr r6, [r2, #0x0]
+ mov r3, #0x1
+ add r2, r6, r7, lsl #0x2
+ mov r7, r3, lsl r8
+ ldr r2, [r2, #0xc4]
+ ands r2, r7, r2
+ beq _020BF200
+ ldr r3, _020BF2E4 ; =0x021CFD80
+ mov r2, #0x18
+ mov r0, r1
+ mla r1, r4, r2, r3
+ bl MIi_CpuCopy32
+ ldr r0, _020BF2E0 ; =0x021CEF7C
+ mov r2, r4, lsr #0x5
+ ldr r1, [r0, #0x0]
+ and r0, r4, #0x1f
+ add r3, r1, #0xc4
+ mov r1, #0x1
+ mvn r0, r1, lsl r0
+ ldr r1, [r3, r2, lsl #0x2]
+ and r0, r1, r0
+ str r0, [r3, r2, lsl #0x2]
+ ldr r0, [r5, #0x0]
+ orr r0, r0, #0x18
+ str r0, [r5, #0x0]
+ ldmia sp!, {r4-r8,pc}
+_020BF200:
+ mov r2, #0x18
+ mul r12, r0, r2
+ and r7, r4, #0x1f
+ ldr r0, _020BF2E4 ; =0x021CFD80
+ add r6, r6, #0xc4
+ mov lr, r4, lsr #0x5
+ mvn r7, r3, lsl r7
+ ldr r8, [r6, lr, lsl #0x2]
+ mul r3, r4, r2
+ and r4, r8, r7
+ str r4, [r6, lr, lsl #0x2]
+ ldr r7, [r1, #0x0]
+ ldr r4, [r0, r12]
+ ldr r6, _020BF2E8 ; =0x021CFD84
+ smull r8, r4, r7, r4
+ mov r7, r8, lsr #0xc
+ orr r7, r7, r4, lsl #0x14
+ str r7, [r0, r3]
+ ldr r8, [r1, #0x4]
+ ldr r4, [r6, r12]
+ ldr r7, _020BF2EC ; =0x021CFD88
+ smull lr, r4, r8, r4
+ mov r8, lr, lsr #0xc
+ orr r8, r8, r4, lsl #0x14
+ str r8, [r6, r3]
+ ldr r8, [r1, #0x8]
+ ldr r4, [r7, r12]
+ ldr r6, _020BF2F0 ; =0x021CFD8C
+ smull lr, r4, r8, r4
+ mov r8, lr, lsr #0xc
+ orr r8, r8, r4, lsl #0x14
+ str r8, [r7, r3]
+ ldr r7, [r1, #0xc]
+ ldr r4, [r6, r12]
+ ldr lr, _020BF2F4 ; =0x021CFD90
+ smull r8, r4, r7, r4
+ mov r7, r8, lsr #0xc
+ orr r7, r7, r4, lsl #0x14
+ str r7, [r6, r3]
+ ldr r7, [r1, #0x10]
+ ldr r4, [lr, r12]
+ ldr r6, _020BF2F8 ; =0x021CFD94
+ smull r8, r4, r7, r4
+ add r0, r0, r12
+ mov r7, r8, lsr #0xc
+ orr r7, r7, r4, lsl #0x14
+ str r7, [lr, r3]
+ ldr lr, [r1, #0x14]
+ ldr r4, [r6, r12]
+ add r1, r5, #0x10
+ smull r5, r4, lr, r4
+ mov r5, r5, lsr #0xc
+ orr r5, r5, r4, lsl #0x14
+ str r5, [r6, r3]
+ bl MIi_CpuCopy32
+ ldmia sp!, {r4-r8,pc}
+ .balign 4
+_020BF2E0: .word 0x021CEF7C
+_020BF2E4: .word 0x021CFD80
+_020BF2E8: .word 0x021CFD84
+_020BF2EC: .word 0x021CFD88
+_020BF2F0: .word 0x021CFD8C
+_020BF2F4: .word 0x021CFD90
+_020BF2F8: .word 0x021CFD94
+
+ arm_func_start FUN_020BF2FC
+FUN_020BF2FC: ; 0x020BF2FC
+ stmdb sp!, {r4-r6,lr}
+ sub sp, sp, #0x10
+ mov r6, r0
+ ldr r0, [r6, #0x0]
+ mov r5, #0x0
+ ands r4, r0, #0x18
+ bne _020BF328
+ add r1, r6, #0x1c
+ mov r0, #0x1b
+ mov r2, #0x3
+ bl FUN_020BB1C0
+_020BF328:
+ ldr r0, [r6, #0x0]
+ ands r0, r0, #0x4
+ bne _020BF398
+ cmp r4, #0x0
+ movne r5, #0x1
+ bne _020BF398
+ ldr r2, [r6, #0x4c]
+ ldr r0, [r6, #0x10]
+ add r1, sp, #0x0
+ smull r3, r0, r2, r0
+ mov r2, r3, lsr #0xc
+ orr r2, r2, r0, lsl #0x14
+ str r2, [sp, #0x0]
+ ldr r3, [r6, #0x50]
+ ldr r2, [r6, #0x14]
+ mov r0, #0x1c
+ smull r12, r2, r3, r2
+ mov r3, r12, lsr #0xc
+ orr r3, r3, r2, lsl #0x14
+ str r3, [sp, #0x4]
+ ldr r12, [r6, #0x54]
+ ldr r3, [r6, #0x18]
+ mov r2, #0x3
+ smull lr, r3, r12, r3
+ mov r12, lr, lsr #0xc
+ orr r12, r12, r3, lsl #0x14
+ str r12, [sp, #0x8]
+ bl FUN_020BB1C0
+_020BF398:
+ ldr r0, [r6, #0x0]
+ ands r0, r0, #0x2
+ bne _020BF3D4
+ cmp r5, #0x0
+ beq _020BF3C0
+ add r1, r6, #0x28
+ mov r0, #0x19
+ mov r2, #0xc
+ bl FUN_020BB1C0
+ b _020BF3EC
+_020BF3C0:
+ add r1, r6, #0x28
+ mov r0, #0x1a
+ mov r2, #0x9
+ bl FUN_020BB1C0
+ b _020BF3EC
+_020BF3D4:
+ cmp r5, #0x0
+ beq _020BF3EC
+ add r1, r6, #0x4c
+ mov r0, #0x1c
+ mov r2, #0x3
+ bl FUN_020BB1C0
+_020BF3EC:
+ cmp r4, #0x0
+ bne _020BF404
+ add r1, r6, #0x10
+ mov r0, #0x1b
+ mov r2, #0x3
+ bl FUN_020BB1C0
+_020BF404:
+ ldr r0, [r6, #0x0]
+ ands r0, r0, #0x1
+ addne sp, sp, #0x10
+ ldmneia sp!, {r4-r6,pc}
+_020BF414: ; 0x020BF414
+ add r1, r6, #0x4
+ mov r0, #0x1b
+ mov r2, #0x3
+ bl FUN_020BB1C0
+ add sp, sp, #0x10
+ ldmia sp!, {r4-r6,pc}
+
+ arm_func_start FUN_020BF42C
+FUN_020BF42C: ; 0x020BF42C
+ stmdb sp!, {r4,lr}
+ sub sp, sp, #0x50
+ mov r4, r0
+ ldr r0, [r4, #0x0]
+ mov r1, #0x0
+ ands r0, r0, #0x8
+ ldrne r0, _020BF568 ; =0x00101610
+ mov r3, #0x3
+ strne r0, [sp, #0x0]
+ ldreq r0, _020BF56C ; =0x00101810
+ mov r2, #0x2
+ streq r0, [sp, #0x0]
+ mov r0, #0x1000
+ str r0, [sp, #0x44]
+ str r3, [sp, #0x4]
+ str r2, [sp, #0x48]
+ str r1, [sp, #0x40]
+ str r1, [sp, #0x34]
+ str r1, [sp, #0x30]
+ str r1, [sp, #0x2c]
+ str r1, [sp, #0x28]
+ str r1, [sp, #0x24]
+ str r1, [sp, #0x20]
+ str r1, [sp, #0x14]
+ str r1, [sp, #0x10]
+ ldr r1, [r4, #0x0]
+ ldr r0, _020BF570 ; =0x021067D0
+ and r1, r1, #0x7
+ ldr r2, [r0, r1, lsl #0x2]
+ add r0, sp, #0x8
+ mov r1, r4
+ blx r2
+ ldr r3, [r4, #0x30]
+ cmp r3, #0x1000
+ beq _020BF4FC
+ ldr r0, [sp, #0x8]
+ ldr r1, [sp, #0xc]
+ smull r2, r0, r3, r0
+ mov r2, r2, lsr #0xc
+ orr r2, r2, r0, lsl #0x14
+ str r2, [sp, #0x8]
+ ldr r2, [r4, #0x30]
+ ldr r0, [sp, #0x38]
+ smull r3, r1, r2, r1
+ mov r2, r3, lsr #0xc
+ orr r2, r2, r1, lsl #0x14
+ str r2, [sp, #0xc]
+ ldr r1, [r4, #0x30]
+ smull r2, r0, r1, r0
+ mov r1, r2, lsr #0xc
+ orr r1, r1, r0, lsl #0x14
+ str r1, [sp, #0x38]
+_020BF4FC:
+ ldr r3, [r4, #0x34]
+ cmp r3, #0x1000
+ beq _020BF54C
+ ldr r0, [sp, #0x18]
+ ldr r1, [sp, #0x1c]
+ smull r2, r0, r3, r0
+ mov r2, r2, lsr #0xc
+ orr r2, r2, r0, lsl #0x14
+ str r2, [sp, #0x18]
+ ldr r2, [r4, #0x34]
+ ldr r0, [sp, #0x3c]
+ smull r3, r1, r2, r1
+ mov r2, r3, lsr #0xc
+ orr r2, r2, r1, lsl #0x14
+ str r2, [sp, #0x1c]
+ ldr r1, [r4, #0x34]
+ smull r2, r0, r1, r0
+ mov r1, r2, lsr #0xc
+ orr r1, r1, r0, lsl #0x14
+ str r1, [sp, #0x3c]
+_020BF54C:
+ add r1, sp, #0x0
+ ldr r0, [sp, #0x0]
+ add r1, r1, #0x4
+ mov r2, #0x12
+ bl FUN_020BB1C0
+ add sp, sp, #0x50
+ ldmia sp!, {r4,pc}
+ .balign 4
+_020BF568: .word 0x00101610
+_020BF56C: .word 0x00101810
+_020BF570: .word 0x021067D0
+
+ arm_func_start FUN_020BF574
+FUN_020BF574: ; 0x020BF574
+ mov r2, #0x1000
+ str r2, [r0, #0x0]
+ mov r1, #0x0
+ str r1, [r0, #0x4]
+ str r1, [r0, #0x10]
+ str r2, [r0, #0x14]
+ str r1, [r0, #0x30]
+ str r1, [r0, #0x34]
+ bx lr
+
+ arm_func_start FUN_020BF598
+FUN_020BF598: ; 0x020BF598
+ ldr r2, [r1, #0x18]
+ mov r12, #0x0
+ str r2, [r0, #0x0]
+ ldr r2, [r1, #0x1c]
+ str r2, [r0, #0x14]
+ str r12, [r0, #0x4]
+ ldr r3, [r1, #0x18]
+ ldrh r2, [r1, #0x2c]
+ rsb r3, r3, #0x1000
+ mul r2, r3, r2
+ mov r2, r2, lsl #0x3
+ str r2, [r0, #0x30]
+ ldr r2, [r1, #0x1c]
+ ldrh r1, [r1, #0x2e]
+ rsb r2, r2, #0x1000
+ mul r1, r2, r1
+ mov r1, r1, lsl #0x3
+ str r1, [r0, #0x34]
+ str r12, [r0, #0x10]
+ bx lr
+
+ arm_func_start FUN_020BF5E8
+FUN_020BF5E8: ; 0x020BF5E8
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0x4
+ mov r5, r1
+ ldrh r2, [r5, #0x2c]
+ ldrh r1, [r5, #0x2e]
+ mov r6, r0
+ mov r4, r2, lsl #0xc
+ mov r7, r1, lsl #0xc
+ mov r0, r7
+ mov r1, r4
+ bl FX_DivAsync
+ ldrsh r0, [r5, #0x22]
+ str r0, [r6, #0x0]
+ ldrsh r0, [r5, #0x22]
+ str r0, [r6, #0x14]
+ bl FX_GetDivResult
+ ldrsh r2, [r5, #0x20]
+ mov r1, r7
+ mul r0, r2, r0
+ mov r2, r0, asr #0xc
+ mov r0, r4
+ str r2, [r6, #0x4]
+ bl FX_DivAsync
+ ldrh r2, [r5, #0x2c]
+ ldrh r1, [r5, #0x2e]
+ ldrsh r4, [r5, #0x22]
+ rsb r0, r2, #0x0
+ rsb r1, r1, #0x0
+ mov r0, r0, lsl #0xb
+ ldrsh r3, [r5, #0x20]
+ mov r1, r1, lsl #0xb
+ smull r7, lr, r4, r0
+ smull r12, r4, r3, r1
+ subs r7, r7, r12
+ sbc r3, lr, r4
+ mov r4, r7, lsr #0x8
+ orr r4, r4, r3, lsl #0x18
+ add r2, r4, r2, lsl #0xf
+ str r2, [r6, #0x30]
+ ldrsh r2, [r5, #0x22]
+ ldrsh r3, [r5, #0x20]
+ ldrh r12, [r5, #0x2e]
+ smull r4, r1, r2, r1
+ smlal r4, r1, r3, r0
+ mov r0, r4, lsr #0x8
+ orr r0, r0, r1, lsl #0x18
+ add r0, r0, r12, lsl #0xf
+ str r0, [r6, #0x34]
+ bl FX_GetDivResult
+ ldrsh r1, [r5, #0x20]
+ rsb r1, r1, #0x0
+ mul r0, r1, r0
+ mov r0, r0, asr #0xc
+ str r0, [r6, #0x10]
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r7,pc}
+
+ arm_func_start FUN_020BF6C8
+FUN_020BF6C8: ; 0x020BF6C8
+ stmdb sp!, {r4-r11,lr}
+ sub sp, sp, #0x4
+ mov r9, r1
+ ldrh r2, [r9, #0x2c]
+ ldrh r1, [r9, #0x2e]
+ mov r10, r0
+ mov r8, r2, lsl #0xc
+ mov r11, r1, lsl #0xc
+ mov r0, r11
+ mov r1, r8
+ bl FX_DivAsync
+ ldrsh r0, [r9, #0x22]
+ ldr r3, [r9, #0x18]
+ ldrsh r5, [r9, #0x20]
+ ldr r4, [r9, #0x1c]
+ smull r2, r1, r3, r0
+ mov r7, r2, lsr #0xc
+ orr r7, r7, r1, lsl #0x14
+ smull r2, r1, r3, r5
+ mov r6, r2, lsr #0xc
+ orr r6, r6, r1, lsl #0x14
+ smull r3, r2, r4, r0
+ smull r1, r0, r4, r5
+ mov r5, r3, lsr #0xc
+ orr r5, r5, r2, lsl #0x14
+ mov r4, r1, lsr #0xc
+ orr r4, r4, r0, lsl #0x14
+ str r7, [r10, #0x0]
+ str r5, [r10, #0x14]
+ bl FX_GetDivResult
+ mov r1, r11
+ mul r0, r4, r0
+ mov r0, r0, asr #0xc
+ str r0, [r10, #0x4]
+ mov r0, r8
+ bl FX_DivAsync
+ ldrh r3, [r9, #0x2c]
+ ldrh r1, [r9, #0x2e]
+ rsb r0, r3, #0x0
+ rsb r1, r1, #0x0
+ mov r2, r1, lsl #0xb
+ mov r11, r0, lsl #0xb
+ smull r1, r0, r7, r11
+ smull r8, r7, r5, r2
+ smlal r8, r7, r4, r11
+ mov r4, r8, lsr #0x8
+ orr r4, r4, r7, lsl #0x18
+ smull r5, r2, r6, r2
+ subs r1, r1, r5
+ sbc r0, r0, r2
+ mov r1, r1, lsr #0x8
+ orr r1, r1, r0, lsl #0x18
+ add r0, r1, r3, lsl #0xf
+ str r0, [r10, #0x30]
+ ldrh r0, [r9, #0x2e]
+ add r0, r4, r0, lsl #0xf
+ str r0, [r10, #0x34]
+ bl FX_GetDivResult
+ rsb r1, r6, #0x0
+ mul r0, r1, r0
+ mov r0, r0, asr #0xc
+ str r0, [r10, #0x10]
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r11,pc}
+
+ arm_func_start FUN_020BF7C8
+FUN_020BF7C8: ; 0x020BF7C8
+ mov r2, #0x1000
+ str r2, [r0, #0x0]
+ str r2, [r0, #0x14]
+ mov r12, #0x0
+ str r12, [r0, #0x4]
+ ldr r3, [r1, #0x24]
+ ldrh r2, [r1, #0x2c]
+ rsb r3, r3, #0x0
+ mul r2, r3, r2
+ mov r2, r2, lsl #0x4
+ str r2, [r0, #0x30]
+ ldrh r2, [r1, #0x2e]
+ ldr r1, [r1, #0x28]
+ mul r2, r1, r2
+ mov r1, r2, lsl #0x4
+ str r1, [r0, #0x34]
+ str r12, [r0, #0x10]
+ bx lr
+
+ arm_func_start FUN_020BF810
+FUN_020BF810: ; 0x020BF810
+ stmdb sp!, {r4-r6,lr}
+ ldr r2, [r1, #0x18]
+ mov r3, #0x0
+ str r2, [r0, #0x0]
+ ldr r2, [r1, #0x1c]
+ str r2, [r0, #0x14]
+ str r3, [r0, #0x4]
+ ldrh r5, [r1, #0x2c]
+ ldr r12, [r1, #0x24]
+ ldrh r2, [r1, #0x2e]
+ mul lr, r12, r5
+ rsb r12, r5, #0x0
+ mov r12, r12, lsl #0xb
+ ldr r4, [r1, #0x18]
+ sub r12, r12, lr
+ smull lr, r12, r4, r12
+ ldr r6, [r1, #0x28]
+ mov r4, lr, lsr #0x8
+ orr r4, r4, r12, lsl #0x18
+ add r4, r4, r5, lsl #0xf
+ str r4, [r0, #0x30]
+ mul r4, r6, r2
+ rsb r5, r2, #0x0
+ ldr r2, [r1, #0x1c]
+ add r4, r4, r5, lsl #0xb
+ smull lr, r12, r2, r4
+ mov r2, lr, lsr #0x8
+ ldrh r1, [r1, #0x2e]
+ orr r2, r2, r12, lsl #0x18
+ add r1, r2, r1, lsl #0xf
+ str r1, [r0, #0x34]
+ str r3, [r0, #0x10]
+ ldmia sp!, {r4-r6,pc}
+
+ arm_func_start FUN_020BF894
+FUN_020BF894: ; 0x020BF894
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0x4
+ mov r5, r1
+ ldrh r2, [r5, #0x2c]
+ ldrh r1, [r5, #0x2e]
+ mov r6, r0
+ mov r4, r2, lsl #0xc
+ mov r7, r1, lsl #0xc
+ mov r0, r7
+ mov r1, r4
+ bl FX_DivAsync
+ ldrsh r0, [r5, #0x22]
+ str r0, [r6, #0x0]
+ ldrsh r0, [r5, #0x22]
+ str r0, [r6, #0x14]
+ bl FX_GetDivResult
+ ldrsh r2, [r5, #0x20]
+ mov r1, r7
+ mul r0, r2, r0
+ mov r2, r0, asr #0xc
+ mov r0, r4
+ str r2, [r6, #0x4]
+ bl FX_DivAsync
+ ldrh r2, [r5, #0x2c]
+ ldrh r7, [r5, #0x2e]
+ ldr r1, [r5, #0x28]
+ ldr r0, [r5, #0x24]
+ rsb r4, r2, #0x0
+ mul r3, r1, r7
+ rsb r1, r7, #0x0
+ add r1, r3, r1, lsl #0xb
+ ldrsh r3, [r5, #0x20]
+ mov r7, r4, lsl #0xb
+ mul r4, r0, r2
+ sub r0, r7, r4
+ ldrsh lr, [r5, #0x22]
+ smull r12, r4, r3, r1
+ smull r7, r3, lr, r0
+ subs r7, r7, r12
+ sbc r3, r3, r4
+ mov r4, r7, lsr #0x8
+ orr r4, r4, r3, lsl #0x18
+ add r2, r4, r2, lsl #0xf
+ str r2, [r6, #0x30]
+ ldrsh r2, [r5, #0x22]
+ ldrsh r3, [r5, #0x20]
+ ldrh r12, [r5, #0x2e]
+ smull r4, r1, r2, r1
+ smlal r4, r1, r3, r0
+ mov r0, r4, lsr #0x8
+ orr r0, r0, r1, lsl #0x18
+ add r0, r0, r12, lsl #0xf
+ str r0, [r6, #0x34]
+ bl FX_GetDivResult
+ ldrsh r1, [r5, #0x20]
+ rsb r1, r1, #0x0
+ mul r0, r1, r0
+ mov r0, r0, asr #0xc
+ str r0, [r6, #0x10]
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r7,pc}
+
+ arm_func_start FUN_020BF988
+FUN_020BF988: ; 0x020BF988
+ stmdb sp!, {r4-r11,lr}
+ sub sp, sp, #0x4
+ mov r9, r1
+ ldrh r2, [r9, #0x2c]
+ ldrh r1, [r9, #0x2e]
+ mov r10, r0
+ mov r8, r2, lsl #0xc
+ mov r11, r1, lsl #0xc
+ mov r0, r11
+ mov r1, r8
+ bl FX_DivAsync
+ ldrsh r0, [r9, #0x22]
+ ldr r3, [r9, #0x18]
+ ldrsh r5, [r9, #0x20]
+ ldr r4, [r9, #0x1c]
+ smull r2, r1, r3, r0
+ mov r7, r2, lsr #0xc
+ orr r7, r7, r1, lsl #0x14
+ smull r2, r1, r3, r5
+ mov r6, r2, lsr #0xc
+ orr r6, r6, r1, lsl #0x14
+ smull r3, r2, r4, r0
+ smull r1, r0, r4, r5
+ mov r5, r3, lsr #0xc
+ orr r5, r5, r2, lsl #0x14
+ mov r4, r1, lsr #0xc
+ orr r4, r4, r0, lsl #0x14
+ str r7, [r10, #0x0]
+ str r5, [r10, #0x14]
+ bl FX_GetDivResult
+ mov r1, r11
+ mul r0, r4, r0
+ mov r0, r0, asr #0xc
+ str r0, [r10, #0x4]
+ mov r0, r8
+ bl FX_DivAsync
+ ldrh r1, [r9, #0x2c]
+ ldrh r8, [r9, #0x2e]
+ ldr r2, [r9, #0x28]
+ rsb r0, r1, #0x0
+ mul r3, r2, r8
+ rsb r2, r8, #0x0
+ add r8, r3, r2, lsl #0xb
+ mov r0, r0, lsl #0xb
+ smull r3, r2, r5, r8
+ smull r8, r5, r6, r8
+ ldr r11, [r9, #0x24]
+ mul r12, r11, r1
+ sub r0, r0, r12
+ smlal r3, r2, r4, r0
+ smull r4, r0, r7, r0
+ subs r4, r4, r8
+ sbc r0, r0, r5
+ mov r4, r4, lsr #0x8
+ orr r4, r4, r0, lsl #0x18
+ add r0, r4, r1, lsl #0xf
+ str r0, [r10, #0x30]
+ ldrh r1, [r9, #0x2e]
+ mov r0, r3, lsr #0x8
+ orr r0, r0, r2, lsl #0x18
+ add r0, r0, r1, lsl #0xf
+ str r0, [r10, #0x34]
+ bl FX_GetDivResult
+ rsb r1, r6, #0x0
+ mul r0, r1, r0
+ mov r0, r0, asr #0xc
+ str r0, [r10, #0x10]
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r11,pc}
+
+ arm_func_start FUN_020BFA9C
+FUN_020BFA9C: ; 0x020BFA9C
+ stmdb sp!, {r4,lr}
+ sub sp, sp, #0x50
+ mov r4, r0
+ ldr r0, [r4, #0x0]
+ mov r3, #0x3
+ ands r0, r0, #0x8
+ ldrne r0, _020BFC1C ; =0x00101610
+ mov r2, #0x2
+ strne r0, [sp, #0x0]
+ ldreq r0, _020BFC20 ; =0x00101810
+ mov r1, #0x1000
+ streq r0, [sp, #0x0]
+ mov r0, #0x0
+ str r3, [sp, #0x4]
+ str r2, [sp, #0x48]
+ str r1, [sp, #0x44]
+ str r0, [sp, #0x40]
+ str r0, [sp, #0x34]
+ str r0, [sp, #0x30]
+ str r0, [sp, #0x2c]
+ str r0, [sp, #0x28]
+ str r0, [sp, #0x24]
+ str r0, [sp, #0x20]
+ str r0, [sp, #0x14]
+ str r0, [sp, #0x10]
+ ldr r0, [r4, #0x0]
+ ands r0, r0, #0x1
+ strne r1, [r4, #0x1c]
+ ldrne r0, [r4, #0x1c]
+ strne r0, [r4, #0x18]
+ ldr r0, [r4, #0x0]
+ ands r0, r0, #0x2
+ movne r0, #0x1000
+ strneh r0, [r4, #0x22]
+ movne r0, #0x0
+ strneh r0, [r4, #0x20]
+ ldr r0, [r4, #0x0]
+ ands r0, r0, #0x4
+ movne r0, #0x0
+ strne r0, [r4, #0x28]
+ ldrne r0, [r4, #0x28]
+ strne r0, [r4, #0x24]
+ ldr r1, [r4, #0x0]
+ ldr r0, _020BFC24 ; =0x021067F0
+ and r1, r1, #0x7
+ ldr r2, [r0, r1, lsl #0x2]
+ add r0, sp, #0x8
+ mov r1, r4
+ blx r2
+ ldr r3, [r4, #0x30]
+ cmp r3, #0x1000
+ beq _020BFBB0
+ ldr r0, [sp, #0x8]
+ ldr r1, [sp, #0xc]
+ smull r2, r0, r3, r0
+ mov r2, r2, lsr #0xc
+ orr r2, r2, r0, lsl #0x14
+ str r2, [sp, #0x8]
+ ldr r2, [r4, #0x30]
+ ldr r0, [sp, #0x38]
+ smull r3, r1, r2, r1
+ mov r2, r3, lsr #0xc
+ orr r2, r2, r1, lsl #0x14
+ str r2, [sp, #0xc]
+ ldr r1, [r4, #0x30]
+ smull r2, r0, r1, r0
+ mov r1, r2, lsr #0xc
+ orr r1, r1, r0, lsl #0x14
+ str r1, [sp, #0x38]
+_020BFBB0:
+ ldr r3, [r4, #0x34]
+ cmp r3, #0x1000
+ beq _020BFC00
+ ldr r0, [sp, #0x18]
+ ldr r1, [sp, #0x1c]
+ smull r2, r0, r3, r0
+ mov r2, r2, lsr #0xc
+ orr r2, r2, r0, lsl #0x14
+ str r2, [sp, #0x18]
+ ldr r2, [r4, #0x34]
+ ldr r0, [sp, #0x3c]
+ smull r3, r1, r2, r1
+ mov r2, r3, lsr #0xc
+ orr r2, r2, r1, lsl #0x14
+ str r2, [sp, #0x1c]
+ ldr r1, [r4, #0x34]
+ smull r2, r0, r1, r0
+ mov r1, r2, lsr #0xc
+ orr r1, r1, r0, lsl #0x14
+ str r1, [sp, #0x3c]
+_020BFC00:
+ add r1, sp, #0x0
+ ldr r0, [sp, #0x0]
+ add r1, r1, #0x4
+ mov r2, #0x12
+ bl FUN_020BB1C0
+ add sp, sp, #0x50
+ ldmia sp!, {r4,pc}
+ .balign 4
+_020BFC1C: .word 0x00101610
+_020BFC20: .word 0x00101810
+_020BFC24: .word 0x021067F0
+
+ arm_func_start FUN_020BFC28
+FUN_020BFC28: ; 0x020BFC28
+ mov r2, #0x1000
+ str r2, [r0, #0x0]
+ mov r1, #0x0
+ str r1, [r0, #0x4]
+ str r1, [r0, #0x10]
+ str r2, [r0, #0x14]
+ str r1, [r0, #0x30]
+ str r1, [r0, #0x34]
+ bx lr
+
+ arm_func_start FUN_020BFC4C
+FUN_020BFC4C: ; 0x020BFC4C
+ ldr r2, [r1, #0x18]
+ mov r3, #0x0
+ str r2, [r0, #0x0]
+ ldr r2, [r1, #0x1c]
+ str r2, [r0, #0x14]
+ str r3, [r0, #0x4]
+ str r3, [r0, #0x30]
+ ldrh r2, [r1, #0x2e]
+ ldr r1, [r1, #0x1c]
+ rsb r2, r2, #0x0
+ sub r1, r1, #0x1000
+ mul r1, r2, r1
+ mov r1, r1, lsl #0x4
+ str r1, [r0, #0x34]
+ str r3, [r0, #0x10]
+ bx lr
+
+ arm_func_start FUN_020BFC8C
+FUN_020BFC8C: ; 0x020BFC8C
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0x4
+ mov r5, r1
+ ldrh r2, [r5, #0x2c]
+ ldrh r1, [r5, #0x2e]
+ mov r6, r0
+ mov r4, r2, lsl #0xc
+ mov r7, r1, lsl #0xc
+ mov r0, r7
+ mov r1, r4
+ bl FX_DivAsync
+ ldrsh r0, [r5, #0x22]
+ str r0, [r6, #0x0]
+ ldrsh r0, [r5, #0x22]
+ str r0, [r6, #0x14]
+ bl FX_GetDivResult
+ ldrsh r2, [r5, #0x20]
+ mov r1, r7
+ mul r0, r2, r0
+ mov r2, r0, asr #0xc
+ mov r0, r4
+ str r2, [r6, #0x4]
+ bl FX_DivAsync
+ ldrh r1, [r5, #0x2c]
+ ldrsh r0, [r5, #0x20]
+ mul r0, r1, r0
+ mov r0, r0, lsl #0x4
+ str r0, [r6, #0x30]
+ ldrh r1, [r5, #0x2e]
+ ldrsh r0, [r5, #0x22]
+ rsb r1, r1, #0x0
+ sub r0, r0, #0x1000
+ mul r0, r1, r0
+ mov r0, r0, lsl #0x4
+ str r0, [r6, #0x34]
+ bl FX_GetDivResult
+ ldrsh r1, [r5, #0x20]
+ rsb r1, r1, #0x0
+ mul r0, r1, r0
+ mov r0, r0, asr #0xc
+ str r0, [r6, #0x10]
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r7,pc}
+
+ arm_func_start FUN_020BFD38
+FUN_020BFD38: ; 0x020BFD38
+ stmdb sp!, {r4-r11,lr}
+ sub sp, sp, #0x4
+ mov r9, r1
+ ldrh r2, [r9, #0x2c]
+ ldrh r1, [r9, #0x2e]
+ mov r10, r0
+ mov r8, r2, lsl #0xc
+ mov r11, r1, lsl #0xc
+ mov r0, r11
+ mov r1, r8
+ bl FX_DivAsync
+ ldrsh r3, [r9, #0x22]
+ ldr r0, [r9, #0x18]
+ ldrsh r7, [r9, #0x20]
+ ldr r5, [r9, #0x1c]
+ smull r2, r1, r0, r3
+ mov r2, r2, lsr #0xc
+ orr r2, r2, r1, lsl #0x14
+ str r2, [r10, #0x0]
+ smull r2, r1, r5, r3
+ mov r4, r2, lsr #0xc
+ orr r4, r4, r1, lsl #0x14
+ smull r2, r1, r0, r7
+ mov r6, r2, lsr #0xc
+ orr r6, r6, r1, lsl #0x14
+ str r4, [r10, #0x14]
+ bl FX_GetDivResult
+ smull r2, r1, r5, r7
+ mov r2, r2, lsr #0xc
+ orr r2, r2, r1, lsl #0x14
+ mul r0, r2, r0
+ mov r0, r0, asr #0xc
+ str r0, [r10, #0x4]
+ mov r0, r8
+ mov r1, r11
+ bl FX_DivAsync
+ sub r0, r4, #0x1000
+ ldrh r1, [r9, #0x2c]
+ mul r2, r1, r6
+ mov r1, r2, lsl #0x4
+ str r1, [r10, #0x30]
+ ldrh r1, [r9, #0x2e]
+ rsb r1, r1, #0x0
+ mul r0, r1, r0
+ mov r0, r0, lsl #0x4
+ str r0, [r10, #0x34]
+ bl FX_GetDivResult
+ rsb r1, r6, #0x0
+ mul r0, r1, r0
+ mov r0, r0, asr #0xc
+ str r0, [r10, #0x10]
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r11,pc}
+
+ arm_func_start FUN_020BFE0C
+FUN_020BFE0C: ; 0x020BFE0C
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ mov r2, #0x1000
+ str r2, [r0, #0x0]
+ str r2, [r0, #0x14]
+ mov lr, #0x0
+ str lr, [r0, #0x4]
+ ldr r2, [r1, #0x24]
+ ldrh r3, [r1, #0x2c]
+ rsb r2, r2, #0x0
+ ldr r12, [r1, #0x28]
+ mul r2, r3, r2
+ mov r2, r2, lsl #0x4
+ str r2, [r0, #0x30]
+ ldrh r1, [r1, #0x2e]
+ rsb r2, r12, #0x0
+ rsb r1, r1, #0x0
+ mul r2, r1, r2
+ mov r1, r2, lsl #0x4
+ str r1, [r0, #0x34]
+ str lr, [r0, #0x10]
+ add sp, sp, #0x4
+ ldmia sp!, {pc}
+
+ arm_func_start FUN_020BFE68
+FUN_020BFE68: ; 0x020BFE68
+ stmdb sp!, {r4,lr}
+ ldr r3, [r1, #0x18]
+ mov r2, #0x0
+ str r3, [r0, #0x0]
+ ldr r3, [r1, #0x1c]
+ str r3, [r0, #0x14]
+ str r2, [r0, #0x4]
+ ldr r12, [r1, #0x24]
+ ldr r3, [r1, #0x18]
+ ldr r4, [r1, #0x28]
+ smull lr, r3, r12, r3
+ mov r12, lr, lsr #0xc
+ orr r12, r12, r3, lsl #0x14
+ ldrh lr, [r1, #0x2c]
+ rsb r3, r12, #0x0
+ ldr r12, [r1, #0x1c]
+ rsb r4, r4, #0x0
+ mul r3, lr, r3
+ smull lr, r12, r4, r12
+ mov r3, r3, lsl #0x4
+ str r3, [r0, #0x30]
+ mov r4, lr, lsr #0xc
+ ldrh r3, [r1, #0x2e]
+ ldr r1, [r1, #0x1c]
+ orr r4, r4, r12, lsl #0x14
+ add r1, r1, r4
+ rsb r3, r3, #0x0
+ sub r1, r1, #0x1000
+ mul r1, r3, r1
+ mov r1, r1, lsl #0x4
+ str r1, [r0, #0x34]
+ str r2, [r0, #0x10]
+ ldmia sp!, {r4,pc}
+
+ arm_func_start FUN_020BFEEC
+FUN_020BFEEC: ; 0x020BFEEC
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0x4
+ mov r5, r1
+ ldrh r2, [r5, #0x2c]
+ ldrh r1, [r5, #0x2e]
+ mov r6, r0
+ mov r4, r2, lsl #0xc
+ mov r7, r1, lsl #0xc
+ mov r0, r7
+ mov r1, r4
+ bl FX_DivAsync
+ ldrsh r0, [r5, #0x22]
+ str r0, [r6, #0x0]
+ ldrsh r0, [r5, #0x22]
+ str r0, [r6, #0x14]
+ bl FX_GetDivResult
+ ldrsh r2, [r5, #0x20]
+ mov r1, r7
+ mul r0, r2, r0
+ mov r2, r0, asr #0xc
+ mov r0, r4
+ str r2, [r6, #0x4]
+ bl FX_DivAsync
+ ldrsh lr, [r5, #0x20]
+ ldr r4, [r5, #0x28]
+ ldrsh r0, [r5, #0x22]
+ ldr r12, [r5, #0x24]
+ smull r3, r2, r4, lr
+ smlal r3, r2, r12, r0
+ smull r1, r0, r4, r0
+ mov r3, r3, lsr #0xc
+ orr r3, r3, r2, lsl #0x14
+ sub r4, lr, r3
+ smull r3, r2, r12, lr
+ subs r1, r3, r1
+ sbc r0, r2, r0
+ ldrh r2, [r5, #0x2c]
+ mov r1, r1, lsr #0xc
+ orr r1, r1, r0, lsl #0x14
+ mul r0, r2, r4
+ mov r0, r0, lsl #0x4
+ str r0, [r6, #0x30]
+ ldrsh r0, [r5, #0x22]
+ ldrh r2, [r5, #0x2e]
+ add r0, r0, r1
+ rsb r1, r2, #0x0
+ sub r0, r0, #0x1000
+ mul r0, r1, r0
+ mov r0, r0, lsl #0x4
+ str r0, [r6, #0x34]
+ bl FX_GetDivResult
+ ldrsh r1, [r5, #0x20]
+ rsb r1, r1, #0x0
+ mul r0, r1, r0
+ mov r0, r0, asr #0xc
+ str r0, [r6, #0x10]
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r7,pc}
+
+ arm_func_start FUN_020BFFD4
+FUN_020BFFD4: ; 0x020BFFD4
+ stmdb sp!, {r4-r11,lr}
+ sub sp, sp, #0x4
+ mov r6, r1
+ ldrh r2, [r6, #0x2c]
+ ldrh r1, [r6, #0x2e]
+ mov r7, r0
+ mov r10, r2, lsl #0xc
+ mov r11, r1, lsl #0xc
+ mov r0, r11
+ mov r1, r10
+ bl FX_DivAsync
+ ldrsh r3, [r6, #0x22]
+ ldr r0, [r6, #0x18]
+ ldrsh r9, [r6, #0x20]
+ smull r2, r1, r0, r3
+ mov r2, r2, lsr #0xc
+ ldr r8, [r6, #0x1c]
+ orr r2, r2, r1, lsl #0x14
+ str r2, [r7, #0x0]
+ smull r2, r1, r8, r3
+ mov r4, r2, lsr #0xc
+ orr r4, r4, r1, lsl #0x14
+ smull r2, r1, r0, r9
+ mov r5, r2, lsr #0xc
+ orr r5, r5, r1, lsl #0x14
+ str r4, [r7, #0x14]
+ bl FX_GetDivResult
+ smull r2, r1, r8, r9
+ mov r2, r2, lsr #0xc
+ orr r2, r2, r1, lsl #0x14
+ mul r0, r2, r0
+ mov r0, r0, asr #0xc
+ str r0, [r7, #0x4]
+ mov r0, r10
+ mov r1, r11
+ bl FX_DivAsync
+ ldr lr, [r6, #0x1c]
+ ldrsh r2, [r6, #0x20]
+ ldr r8, [r6, #0x24]
+ ldr r0, [r6, #0x28]
+ smull r10, r9, r8, r2
+ ldrh r1, [r6, #0x2c]
+ smull r3, r2, r0, r2
+ ldrsh r12, [r6, #0x22]
+ str r1, [sp, #0x0]
+ mov r11, lr, asr #0x1f
+ smlal r3, r2, r8, r12
+ smull r8, r12, r0, r12
+ subs r8, r10, r8
+ sbc r0, r9, r12
+ mov r9, r8, lsr #0xc
+ mov r12, r3, lsr #0xc
+ orr r9, r9, r0, lsl #0x14
+ mov r3, r2, asr #0xc
+ orr r12, r12, r2, lsl #0x14
+ umull r10, r2, r9, lr
+ mla r2, r9, r11, r2
+ mov r8, r0, asr #0xc
+ mla r2, r8, lr, r2
+ ldr r1, [r6, #0x18]
+ mov r8, r10, lsr #0xc
+ orr r8, r8, r2, lsl #0x14
+ add r2, r4, r8
+ mov r0, r1, asr #0x1f
+ umull r8, r4, r12, r1
+ mla r4, r12, r0, r4
+ mla r4, r3, r1, r4
+ mov r0, r8, lsr #0xc
+ orr r0, r0, r4, lsl #0x14
+ sub r1, r5, r0
+ ldr r0, [sp, #0x0]
+ sub r2, r2, #0x1000
+ mul r1, r0, r1
+ mov r0, r1, lsl #0x4
+ str r0, [r7, #0x30]
+ ldrh r0, [r6, #0x2e]
+ rsb r0, r0, #0x0
+ mul r1, r0, r2
+ mov r0, r1, lsl #0x4
+ str r0, [r7, #0x34]
+ bl FX_GetDivResult
+ rsb r1, r5, #0x0
+ mul r0, r1, r0
+ mov r0, r0, asr #0xc
+ str r0, [r7, #0x10]
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r11,pc}
+
+ arm_func_start FUN_020C0130
+FUN_020C0130: ; 0x020C0130
+ ldr ip, _020C0138 ; =FUN_020C187C
+ bx r12
+ .balign 4
+_020C0138: .word FUN_020C187C
+
+ arm_func_start FUN_020C013C
+FUN_020C013C: ; 0x020C013C
+ stmdb sp!, {r4,lr}
+ bl FUN_020C18F8
+_020C0144: ; 0x020C0144
+ mov r0, #0x0
+ mov r1, r0
+ mov r2, r0
+ mov r3, r0
+ bl SND_StopTimer
+ bl SND_GetCurrentCommandTag
+ mov r4, r0
+ mov r0, #0x1
+ bl SND_FlushCommand
+ mov r0, r4
+ bl SND_WaitForCommandProc
+ ldmia sp!, {r4,pc}
+
+ arm_func_start FUN_020C0174
+FUN_020C0174: ; 0x020C0174
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ cmp r0, #0x0
+ beq _020C0194
+ mov r0, #0x40
+ bl SND_SetMasterPan
+ add sp, sp, #0x4
+ ldmia sp!, {pc}
+_020C0194:
+ bl SND_ResetMasterPan
+ add sp, sp, #0x4
+ ldmia sp!, {pc}
+
+ arm_func_start FUN_020C01A0
+FUN_020C01A0: ; 0x020C01A0
+ stmdb sp!, {r4,lr}
+ mov r4, #0x0
+_020C01A8:
+ mov r0, r4
+ bl SND_RecvCommandReply
+_020C01B0: ; 0x020C01B0
+ cmp r0, #0x0
+ bne _020C01A8
+ bl FUN_020C0BA0
+ bl FUN_020C1D9C
+ bl FUN_020C3C88
+_020C01C4: ; 0x020C01C4
+ mov r0, #0x0
+ bl SND_FlushCommand
+ ldmia sp!, {r4,pc}
+
+ arm_func_start FUN_020C01D0
+FUN_020C01D0: ; 0x020C01D0
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldr r0, _020C0254 ; =0x021D1C94
+ ldr r1, [r0, #0x0]
+ cmp r1, #0x0
+ addne sp, sp, #0x4
+ ldmneia sp!, {pc}
+ mov r1, #0x1
+ str r1, [r0, #0x0]
+ bl SND_Init
+ ldr ip, _020C0258 ; =FUN_020C013C
+ ldr r0, _020C025C ; =0x021D1C98
+ mov r3, #0x0
+ ldr r1, _020C0260 ; =0x021D1CA4
+ ldr r2, _020C0264 ; =FUN_020C0130
+ str r12, [r0, #0x0]
+ str r3, [r0, #0x4]
+ str r2, [r1, #0x0]
+ str r3, [r1, #0x4]
+ bl PM_PrependPreSleepCallback
+ ldr r0, _020C0260 ; =0x021D1CA4
+ bl PM_AppendPostSleepCallback
+ bl FUN_020C0270
+ bl FUN_020C1E38
+ bl FUN_020C0D20
+ ldr r1, _020C0268 ; =0x021D1C8C
+ mvn r3, #0x0
+ ldr r0, _020C026C ; =0x021D1C90
+ mov r2, #0x1
+ strb r3, [r1, #0x0]
+ str r2, [r0, #0x0]
+ add sp, sp, #0x4
+ ldmia sp!, {pc}
+ .balign 4
+_020C0254: .word 0x021D1C94
+_020C0258: .word FUN_020C013C
+_020C025C: .word 0x021D1C98
+_020C0260: .word 0x021D1CA4
+_020C0264: .word FUN_020C0130
+_020C0268: .word 0x021D1C8C
+_020C026C: .word 0x021D1C90
+
+ arm_func_start FUN_020C0270
+FUN_020C0270: ; 0x020C0270
+ ldr r2, _020C0290 ; =0x021D1CB8
+ mov r3, #0x0
+ ldr r1, _020C0294 ; =0x021D1CB0
+ ldr r0, _020C0298 ; =0x021D1CB4
+ str r3, [r2, #0x0]
+ str r3, [r1, #0x0]
+ str r3, [r0, #0x0]
+ bx lr
+ .balign 4
+_020C0290: .word 0x021D1CB8
+_020C0294: .word 0x021D1CB0
+_020C0298: .word 0x021D1CB4
+
+ arm_func_start FUN_020C029C
+FUN_020C029C: ; 0x020C029C
+ ldr r1, _020C02B8 ; =0x021D1CB4
+ mov r2, #0x1
+ mvn r0, r2, lsl r0
+ ldr r2, [r1, #0x0]
+ and r0, r2, r0
+ str r0, [r1, #0x0]
+ bx lr
+ .balign 4
+_020C02B8: .word 0x021D1CB4
+
+ arm_func_start FUN_020C02BC
+FUN_020C02BC: ; 0x020C02BC
+ ldr r0, _020C02FC ; =0x021D1CB4
+ mov r3, #0x1
+ ldr r2, [r0, #0x0]
+ mov r0, #0x0
+_020C02CC:
+ ands r1, r2, r3
+ ldreq r1, _020C02FC ; =0x021D1CB4
+ ldreq r2, [r1, #0x0]
+ orreq r2, r2, r3
+ streq r2, [r1, #0x0]
+ bxeq lr
+ add r0, r0, #0x1
+ cmp r0, #0x8
+ mov r3, r3, lsl #0x1
+ blt _020C02CC
+ mvn r0, #0x0
+ bx lr
+ .balign 4
+_020C02FC: .word 0x021D1CB4
+
+ arm_func_start FUN_020C0300
+FUN_020C0300: ; 0x020C0300
+ ldr r1, _020C0318 ; =0x021D1CB0
+ mvn r0, r0
+ ldr r2, [r1, #0x0]
+ and r0, r2, r0
+ str r0, [r1, #0x0]
+ bx lr
+ .balign 4
+_020C0318: .word 0x021D1CB0
+
+ arm_func_start FUN_020C031C
+FUN_020C031C:
+ ldr r1, _020C033C ; =0x021D1CB0
+ ldr r2, [r1, #0x0]
+ ands r3, r0, r2
+ movne r0, #0x0
+ orreq r0, r2, r0
+ streq r0, [r1, #0x0]
+ moveq r0, #0x1
+ bx lr
+ .balign 4
+_020C033C: .word 0x021D1CB0
+
+ arm_func_start FUN_020C0340
+FUN_020C0340:
+ stmdb sp!, {r4,lr}
+ movs r4, r0
+ ldmeqia sp!, {r4,pc}
+_020C034C: ; 0x020C034C
+ mov r1, #0x0
+ bl SND_UnlockChannel
+ ldr r0, _020C036C ; =0x021D1CB8
+ mvn r1, r4
+ ldr r2, [r0, #0x0]
+ and r1, r2, r1
+ str r1, [r0, #0x0]
+ ldmia sp!, {r4,pc}
+ .balign 4
+_020C036C: .word 0x021D1CB8
+
+ arm_func_start FUN_020C0370
+FUN_020C0370:
+ stmdb sp!, {r4,lr}
+ movs r4, r0
+ moveq r0, #0x1
+ ldmeqia sp!, {r4,pc}
+_020C0380: ; 0x020C0380
+ ldr r1, _020C03B4 ; =0x021D1CB8
+ ldr r1, [r1, #0x0]
+ ands r1, r4, r1
+ movne r0, #0x0
+ ldmneia sp!, {r4,pc}
+_020C0394: ; 0x020C0394
+ mov r1, #0x0
+ bl SND_LockChannel
+ ldr r1, _020C03B4 ; =0x021D1CB8
+ mov r0, #0x1
+ ldr r2, [r1, #0x0]
+ orr r2, r2, r4
+ str r2, [r1, #0x0]
+ ldmia sp!, {r4,pc}
+ .balign 4
+_020C03B4: .word 0x021D1CB8
+
+ arm_func_start FUN_020C03B8
+FUN_020C03B8: ; 0x020C03B8
+ stmdb sp!, {r4,lr}
+ mov r4, r0
+ ldr r0, [r4, #0x8]
+ cmp r0, #0x0
+ moveq r0, #0x0
+ ldmeqia sp!, {r4,pc}
+_020C03D0: ; 0x020C03D0
+ ldr r0, [r4, #0xc]
+ cmp r0, #0x0
+ bne _020C03F8
+ ldr r0, [r4, #0x10]
+ bl SND_IsFinishedCommandTag
+_020C03E4: ; 0x020C03E4
+ cmp r0, #0x0
+ moveq r0, #0x1
+ ldmeqia sp!, {r4,pc}
+_020C03F0: ; 0x020C03F0
+ mov r0, #0x1
+ str r0, [r4, #0xc]
+_020C03F8:
+ bl SND_GetChannelStatus
+ ldr r1, [r4, #0x0]
+ mov r2, #0x1
+ mov r1, r2, lsl r1
+ ands r0, r1, r0
+ movne r0, r2
+ moveq r0, #0x0
+ streq r0, [r4, #0x8]
+ ldmia sp!, {r4,pc}
+
+ arm_func_start FUN_020C041C
+FUN_020C041C: ; 0x020C041C
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldr r2, [r0, #0x8]
+ cmp r2, #0x0
+ addeq sp, sp, #0x4
+ ldmeqia sp!, {pc}
+ ldr r0, [r0, #0x0]
+ mov r2, #0x1
+ mov r0, r2, lsl r0
+ bl SND_SetChannelPan
+ add sp, sp, #0x4
+ ldmia sp!, {pc}
+
+ arm_func_start FUN_020C044C
+FUN_020C044C: ; 0x020C044C
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ mov r5, r0
+ ldr r0, [r5, #0x8]
+ mov r4, r1
+ cmp r0, #0x0
+ addeq sp, sp, #0x4
+ ldmeqia sp!, {r4-r5,pc}
+_020C046C: ; 0x020C046C
+ ldr r2, [r5, #0x4]
+ ldr r0, _020C04D4 ; =0xD87F8000
+ mov r3, r2, asr #0x1f
+ mov r1, #0x7f
+ bl _ll_udiv
+ mov r2, r4
+ mov r3, r4, asr #0x1f
+ bl _ll_udiv
+ mov r2, #0x0
+ mov r3, r0
+ mov r0, #0x10
+ cmp r1, r2
+ cmpeq r3, r0
+ movcc r3, r0
+ blo _020C04B8
+ ldr r0, _020C04D8 ; =0x0000FFFF
+ cmp r1, r2
+ cmpeq r3, r0
+ movhi r3, r0
+_020C04B8:
+ ldr r0, [r5, #0x0]
+ mov r1, #0x1
+ mov r0, r1, lsl r0
+ mov r1, r3
+ bl SND_SetChannelTimer
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,pc}
+ .balign 4
+_020C04D4: .word 0xD87F8000
+_020C04D8: .word 0x0000FFFF
+
+ arm_func_start FUN_020C04DC
+FUN_020C04DC: ; 0x020C04DC
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldr r2, [r0, #0x8]
+ cmp r2, #0x0
+ addeq sp, sp, #0x4
+ ldmeqia sp!, {pc}
+ ldr r0, [r0, #0x0]
+ mov r2, #0x1
+ mov r0, r2, lsl r0
+ mov r2, #0x0
+ bl SND_SetChannelVolume
+ add sp, sp, #0x4
+ ldmia sp!, {pc}
+
+ arm_func_start FUN_020C0510
+FUN_020C0510: ; 0x020C0510
+ stmdb sp!, {r4,lr}
+ mov r4, r0
+ ldr r0, [r4, #0x8]
+ cmp r0, #0x0
+ ldmeqia sp!, {r4,pc}
+_020C0524: ; 0x020C0524
+ ldr r0, [r4, #0x0]
+ mov r2, #0x1
+ mov r1, #0x0
+ mov r0, r2, lsl r0
+ mov r2, r1
+ mov r3, r1
+ bl SND_StopTimer
+_020C0540: ; 0x020C0540
+ mov r0, #0x0
+ str r0, [r4, #0x8]
+ ldmia sp!, {r4,pc}
+
+ arm_func_start FUN_020C054C
+FUN_020C054C: ; 0x020C054C
+ stmdb sp!, {r4-r9,lr}
+ sub sp, sp, #0x1c
+ movs r8, r1
+ mov r9, r0
+ mov r7, r2
+ mov r6, r3
+ beq _020C0584
+ cmp r8, #0x1
+ ldreq r0, [sp, #0x3c]
+ ldreq r1, [sp, #0x38]
+ moveq r0, r0, asr #0x1
+ moveq r5, r1, asr #0x1
+ subeq r4, r0, r1, asr #0x1
+ b _020C0598
+_020C0584:
+ ldr r0, [sp, #0x3c]
+ ldr r1, [sp, #0x38]
+ mov r0, r0, asr #0x2
+ mov r5, r1, asr #0x2
+ sub r4, r0, r1, asr #0x2
+_020C0598:
+ ldr r2, [sp, #0x40]
+ ldr r0, _020C0668 ; =0xD87F8000
+ mov r3, r2, asr #0x1f
+ mov r1, #0x7f
+ bl _ll_udiv
+ ldr r2, [sp, #0x48]
+ mov r3, r2, asr #0x1f
+ bl _ll_udiv
+ mov r3, #0x0
+ mov r2, #0x10
+ cmp r1, r3
+ cmpeq r0, r2
+ movcc r0, r2
+ blo _020C05E0
+ ldr r2, _020C066C ; =0x0000FFFF
+ cmp r1, r3
+ cmpeq r0, r2
+ movhi r0, r2
+_020C05E0:
+ str r5, [sp, #0x0]
+ ldr r1, [sp, #0x44]
+ str r4, [sp, #0x4]
+ str r1, [sp, #0x8]
+ mov r1, #0x0
+ str r1, [sp, #0xc]
+ cmp r6, #0x0
+ movne r3, #0x1
+ ldr r1, [sp, #0x4c]
+ str r0, [sp, #0x10]
+ str r1, [sp, #0x14]
+ ldr r0, [r9, #0x0]
+ moveq r3, #0x2
+ mov r1, r8
+ mov r2, r7
+ bl SND_SetupChannelPcm
+ mov r1, #0x0
+ ldr r0, [r9, #0x0]
+ mov r2, #0x1
+ mov r0, r2, lsl r0
+ mov r2, r1
+ mov r3, r1
+ bl SND_StartTimer
+ mov r0, #0x1
+ str r0, [r9, #0x8]
+ mov r0, #0x0
+ str r0, [r9, #0xc]
+ bl SND_GetCurrentCommandTag
+ str r0, [r9, #0x10]
+ ldr r1, [sp, #0x40]
+ mov r0, #0x1
+ str r1, [r9, #0x4]
+ add sp, sp, #0x1c
+ ldmia sp!, {r4-r9,pc}
+ .balign 4
+_020C0668: .word 0xD87F8000
+_020C066C: .word 0x0000FFFF
+
+ arm_func_start FUN_020C0670
+FUN_020C0670: ; 0x020C0670
+ ldr r0, [r0, #0x0]
+ mov r1, #0x1
+ ldr ip, _020C0684 ; =FUN_020C0340
+ mov r0, r1, lsl r0
+ bx r12
+ .balign 4
+_020C0684: .word FUN_020C0340
+
+ arm_func_start FUN_020C0688
+FUN_020C0688: ; 0x020C0688
+ stmdb sp!, {r4,lr}
+ mov r4, r0
+ mov r0, #0x1
+ mov r0, r0, lsl r4
+ bl FUN_020C0370
+_020C069C: ; 0x020C069C
+ cmp r0, #0x0
+ moveq r0, #0x0
+ ldmeqia sp!, {r4,pc}
+_020C06A8: ; 0x020C06A8
+ mov r0, #0x14
+ mul r0, r4, r0
+ ldr r2, _020C06C8 ; =0x021D1CBC
+ mov r1, #0x0
+ str r4, [r2, r0]
+ add r0, r2, r0
+ str r1, [r0, #0x8]
+ ldmia sp!, {r4,pc}
+ .balign 4
+_020C06C8: .word 0x021D1CBC
+
+ arm_func_start FUN_020C06CC
+FUN_020C06CC: ; 0x020C06CC
+ stmdb sp!, {r4-r6,lr}
+ mov r6, r0
+ ldr r4, [r6, #0x4]
+ mov r5, r1
+ cmp r4, #0x0
+ beq _020C06F8
+ mov r0, r4
+ mov r1, r6
+ bl FUN_020ADAB0
+_020C06F0: ; 0x020C06F0
+ mov r0, #0x0
+ str r0, [r6, #0x4]
+_020C06F8:
+ ldr r0, _020C0728 ; =0x021D1E08
+ mov r1, r6
+ bl FUN_020ADAB0
+ strb r5, [r6, #0x3d]
+ cmp r4, #0x0
+ beq _020C071C
+ mov r0, r4
+ mov r1, r6
+ bl FUN_020C0910
+_020C071C:
+ mov r0, r6
+ bl FUN_020C08B4
+ ldmia sp!, {r4-r6,pc}
+ .balign 4
+_020C0728: .word 0x021D1E08
+
+ arm_func_start FUN_020C072C
+FUN_020C072C: ; 0x020C072C
+ stmdb sp!, {r4,lr}
+ mov r4, r0
+ ldr r0, [r4, #0x8]
+ cmp r0, #0x0
+ ldmeqia sp!, {r4,pc}
+_020C0740: ; 0x020C0740
+ bl FUN_020C2A7C
+ ldr r1, [r4, #0xc]
+ cmp r1, #0x0
+ movne r0, #0x0
+ strne r0, [r1, #0x8]
+ ldmneia sp!, {r4,pc}
+_020C0758: ; 0x020C0758
+ ldr r1, [r4, #0x10]
+ ldr r2, _020C0778 ; =0x021D2254
+ mov r0, #0x24
+ mla r0, r1, r0, r2
+ mov r1, r4
+ add r0, r0, #0xc
+ bl FUN_020ADAB0
+ ldmia sp!, {r4,pc}
+ .balign 4
+_020C0778: .word 0x021D2254
+
+ arm_func_start FUN_020C077C
+FUN_020C077C: ; 0x020C077C
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ mov r4, r0
+ ldr r1, [r4, #0x0]
+ cmp r1, #0x0
+ movne r0, #0x0
+ strne r0, [r1, #0x0]
+ strne r0, [r4, #0x0]
+ ldr r5, [r4, #0x4]
+ mov r1, r4
+ mov r0, r5
+ bl FUN_020ADAB0
+_020C07AC: ; 0x020C07AC
+ mov r0, #0x0
+ str r0, [r4, #0x4]
+ ldr r1, [r4, #0x8]
+ cmp r1, #0x0
+ beq _020C07D8
+ add r0, r5, #0xc
+ bl FUN_020ADBE8
+ ldr r0, [r4, #0x8]
+ mov r1, #0x0
+ str r1, [r0, #0xc]
+ str r1, [r4, #0x8]
+_020C07D8:
+ ldr r0, _020C0800 ; =0x021D1E08
+ mov r1, r4
+ bl FUN_020ADAB0
+ ldr r0, _020C0804 ; =0x021D1DFC
+ mov r1, r4
+ bl FUN_020ADBE8
+_020C07F0: ; 0x020C07F0
+ mov r0, #0x0
+ strb r0, [r4, #0x2c]
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,pc}
+ .balign 4
+_020C0800: .word 0x021D1E08
+_020C0804: .word 0x021D1DFC
+
+ arm_func_start FUN_020C0808
+FUN_020C0808: ; 0x020C0808
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ mov r5, r0
+ ldr r0, _020C0874 ; =0x021D1DFC
+ mov r1, #0x0
+ bl FUN_020ADA98
+ movs r4, r0
+ bne _020C0850
+ ldr r0, _020C0878 ; =0x021D1E08
+ mov r1, #0x0
+ bl FUN_020ADA98
+ mov r4, r0
+ ldrb r1, [r4, #0x3d]
+ cmp r5, r1
+ addlt sp, sp, #0x4
+ movlt r0, #0x0
+ ldmltia sp!, {r4-r5,pc}
+_020C084C: ; 0x020C084C
+ bl FUN_020C087C
+_020C0850:
+ ldr r0, _020C0874 ; =0x021D1DFC
+ mov r1, r4
+ bl FUN_020ADAB0
+ mov r0, r4
+ strb r5, [r4, #0x3d]
+ bl FUN_020C08B4
+ mov r0, r4
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,pc}
+ .balign 4
+_020C0874: .word 0x021D1DFC
+_020C0878: .word 0x021D1E08
+
+ arm_func_start FUN_020C087C
+FUN_020C087C: ; 0x020C087C
+ stmdb sp!, {r4,lr}
+ mov r4, r0
+ ldrb r0, [r4, #0x2c]
+ cmp r0, #0x2
+ bne _020C089C
+ ldrb r0, [r4, #0x3c]
+ ldr r1, _020C08B0 ; =0xFFFFFD2D
+ bl SND_SetPlayerVolume
+_020C089C:
+ ldrb r0, [r4, #0x3c]
+ bl SND_StopSeq
+ mov r0, r4
+ bl FUN_020C077C
+ ldmia sp!, {r4,pc}
+ .balign 4
+_020C08B0: .word 0xFFFFFD2D
+
+ arm_func_start FUN_020C08B4
+FUN_020C08B4: ; 0x020C08B4
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ mov r5, r0
+ ldr r0, _020C090C ; =0x021D1E08
+ mov r1, #0x0
+ bl FUN_020ADA98
+ movs r1, r0
+ beq _020C08F8
+ ldr r4, _020C090C ; =0x021D1E08
+_020C08D8:
+ ldrb r2, [r5, #0x3d]
+ ldrb r0, [r1, #0x3d]
+ cmp r2, r0
+ blo _020C08F8
+ mov r0, r4
+ bl FUN_020ADA98
+ movs r1, r0
+ bne _020C08D8
+_020C08F8:
+ ldr r0, _020C090C ; =0x021D1E08
+ mov r2, r5
+ bl FUN_020ADB18
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,pc}
+ .balign 4
+_020C090C: .word 0x021D1E08
+
+ arm_func_start FUN_020C0910
+FUN_020C0910: ; 0x020C0910
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ mov r4, r1
+ mov r1, #0x0
+ mov r5, r0
+ bl FUN_020ADA98
+ movs r1, r0
+ beq _020C0950
+_020C0930:
+ ldrb r2, [r4, #0x3d]
+ ldrb r0, [r1, #0x3d]
+ cmp r2, r0
+ blo _020C0950
+ mov r0, r5
+ bl FUN_020ADA98
+ movs r1, r0
+ bne _020C0930
+_020C0950:
+ mov r0, r5
+ mov r2, r4
+ bl FUN_020ADB18
+ str r5, [r4, #0x4]
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,pc}
+
+ arm_func_start FUN_020C0968
+FUN_020C0968: ; 0x020C0968
+ stmdb sp!, {r4,lr}
+ mov r4, r0
+ mov r0, #0x0
+ strb r0, [r4, #0x2e]
+ strb r0, [r4, #0x2d]
+ strb r0, [r4, #0x2f]
+ strh r0, [r4, #0x34]
+ strh r0, [r4, #0x3e]
+ mov r1, #0x7f
+ strb r1, [r4, #0x40]
+ add r0, r4, #0x1c
+ strb r1, [r4, #0x41]
+ bl FUN_020C3E6C
+ add r0, r4, #0x1c
+ mov r1, #0x7f00
+ mov r2, #0x1
+ bl FUN_020C3E40
+ ldmia sp!, {r4,pc}
+
+ arm_func_start FUN_020C09B0
+FUN_020C09B0: ; 0x020C09B0
+ stmdb sp!, {r4-r6,lr}
+ ldr r3, _020C0A00 ; =0x021D2254
+ mov r2, #0x24
+ mla r5, r0, r2, r3
+ mov r6, r1
+ add r0, r5, #0xc
+ mov r1, #0x0
+ bl FUN_020ADA98
+ movs r4, r0
+ moveq r0, #0x0
+ ldmeqia sp!, {r4-r6,pc}
+_020C09DC: ; 0x020C09DC
+ mov r1, r4
+ add r0, r5, #0xc
+ bl FUN_020ADAB0
+ str r6, [r4, #0xc]
+ str r4, [r6, #0x8]
+ ldr r0, [r4, #0x8]
+ bl FUN_020C29C0
+ ldr r0, [r4, #0x8]
+ ldmia sp!, {r4-r6,pc}
+ .balign 4
+_020C0A00: .word 0x021D2254
+
+ arm_func_start FUN_020C0A04
+FUN_020C0A04: ; 0x020C0A04
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ movs r5, r0
+ mov r4, r1
+ addeq sp, sp, #0x4
+ ldmeqia sp!, {r4-r5,pc}
+_020C0A1C: ; 0x020C0A1C
+ ldrb r0, [r5, #0x2e]
+ cmp r4, r0
+ addeq sp, sp, #0x4
+ ldmeqia sp!, {r4-r5,pc}
+_020C0A2C: ; 0x020C0A2C
+ ldrb r0, [r5, #0x3c]
+ bl SND_PauseSeq
+ strb r4, [r5, #0x2e]
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,pc}
+
+ arm_func_start FUN_020C0A40
+FUN_020C0A40: ; 0x020C0A40
+ stmdb sp!, {r4,lr}
+ movs r4, r0
+ mov r2, r1
+ ldmeqia sp!, {r4,pc}
+_020C0A50: ; 0x020C0A50
+ ldrb r1, [r4, #0x2c]
+ cmp r1, #0x0
+ ldmeqia sp!, {r4,pc}
+_020C0A5C: ; 0x020C0A5C
+ cmp r2, #0x0
+ bne _020C0A6C
+ bl FUN_020C087C
+ ldmia sp!, {r4,pc}
+_020C0A6C:
+ add r0, r4, #0x1c
+ mov r1, #0x0
+ bl FUN_020C3E40
+ mov r0, r4
+ mov r1, #0x0
+ bl FUN_020C06CC
+ mov r0, #0x2
+ strb r0, [r4, #0x2c]
+ ldmia sp!, {r4,pc}
+
+ arm_func_start FUN_020C0A90
+FUN_020C0A90: ; 0x020C0A90
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ mov r5, r0
+ ldrb r0, [r5, #0x3c]
+ ldr r4, [r5, #0x4]
+ bl SND_PrepareSeq
+ ldr r2, [r4, #0x1c]
+ cmp r2, #0x0
+ beq _020C0AC0
+ ldrb r0, [r5, #0x3c]
+ ldr r1, _020C0AE4 ; =0x0000FFFF
+ bl SND_SetTrackAllocatableChannel
+_020C0AC0:
+ mov r0, r5
+ bl FUN_020C0968
+ bl SND_GetCurrentCommandTag
+ str r0, [r5, #0x30]
+ mov r0, #0x1
+ strb r0, [r5, #0x2f]
+ strb r0, [r5, #0x2c]
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,pc}
+ .balign 4
+_020C0AE4: .word 0x0000FFFF
+
+ arm_func_start thunk_FUN_020c077c
+thunk_FUN_020c077c: ; 0x020C0AE8
+ ldr ip, _020C0AF0 ; =FUN_020C077C
+ bx r12
+ .balign 4
+_020C0AF0: .word FUN_020C077C
+
+ arm_func_start FUN_020C0AF4
+FUN_020C0AF4: ; 0x020C0AF4
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0x4
+ ldr ip, _020C0B9C ; =0x021D2254
+ mov r3, #0x24
+ mov r4, r0
+ ldr r5, [r4, #0x0]
+ mla r6, r1, r3, r12
+ mov r7, r2
+ cmp r5, #0x0
+ beq _020C0B20
+ bl FUN_020C0F68
+_020C0B20:
+ ldrh r1, [r6, #0x8]
+ ldr r0, [r6, #0x18]
+ cmp r1, r0
+ blo _020C0B64
+ mov r0, r6
+ mov r1, #0x0
+ bl FUN_020ADA98
+_020C0B3C: ; 0x020C0B3C
+ cmp r0, #0x0
+ addeq sp, sp, #0x4
+ moveq r0, #0x0
+ ldmeqia sp!, {r4-r7,pc}
+_020C0B4C: ; 0x020C0B4C
+ ldrb r1, [r0, #0x3d]
+ cmp r7, r1
+ addlt sp, sp, #0x4
+ movlt r0, #0x0
+ ldmltia sp!, {r4-r7,pc}
+_020C0B60: ; 0x020C0B60
+ bl FUN_020C087C
+_020C0B64:
+ mov r0, r7
+ bl FUN_020C0808
+ movs r5, r0
+ addeq sp, sp, #0x4
+ moveq r0, #0x0
+ ldmeqia sp!, {r4-r7,pc}
+_020C0B7C: ; 0x020C0B7C
+ mov r0, r6
+ mov r1, r5
+ bl FUN_020C0910
+ str r4, [r5, #0x0]
+ mov r0, r5
+ str r5, [r4, #0x0]
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r7,pc}
+ .balign 4
+_020C0B9C: .word 0x021D2254
+
+ arm_func_start FUN_020C0BA0
+FUN_020C0BA0: ; 0x020C0BA0
+ stmdb sp!, {r4-r11,lr}
+ sub sp, sp, #0xc
+ bl SND_GetPlayerStatus
+_020C0BAC: ; 0x020C0BAC
+ str r0, [sp, #0x0]
+ ldr r0, _020C0D14 ; =0x021D1E08
+ mov r1, #0x0
+ bl FUN_020ADA98
+ movs r10, r0
+ addeq sp, sp, #0xc
+ ldmeqia sp!, {r4-r11,pc}
+_020C0BC8: ; 0x020C0BC8
+ mov r0, #0x8000
+ rsb r0, r0, #0x0
+ ldr r4, _020C0D18 ; =0x02103BAC
+ str r0, [sp, #0x4]
+ mov r5, #0x1
+ mov r11, #0x0
+_020C0BE0:
+ ldr r0, _020C0D14 ; =0x021D1E08
+ mov r1, r10
+ bl FUN_020ADA98
+ ldrb r1, [r10, #0x2d]
+ mov r9, r0
+ cmp r1, #0x0
+ bne _020C0C0C
+ ldr r0, [r10, #0x30]
+ bl SND_IsFinishedCommandTag
+_020C0C04: ; 0x020C0C04
+ cmp r0, #0x0
+ strneb r5, [r10, #0x2d]
+_020C0C0C:
+ ldrb r0, [r10, #0x2d]
+ cmp r0, #0x0
+ beq _020C0C38
+ ldrb r0, [r10, #0x3c]
+ mov r1, r5, lsl r0
+ ldr r0, [sp, #0x0]
+ ands r0, r0, r1
+ bne _020C0C38
+ mov r0, r10
+ bl FUN_020C077C
+ b _020C0D00
+_020C0C38:
+ add r0, r10, #0x1c
+ bl FUN_020C3DF4
+ ldr r0, [r10, #0x4]
+ ldrb r2, [r10, #0x41]
+ ldrb r1, [r10, #0x40]
+ ldrb r0, [r0, #0x20]
+ mov r3, r2, lsl #0x1
+ mov r2, r1, lsl #0x1
+ mov r1, r0, lsl #0x1
+ add r0, r10, #0x1c
+ ldrsh r8, [r4, r3]
+ ldrsh r7, [r4, r2]
+ ldrsh r6, [r4, r1]
+ bl FUN_020C3E0C
+ mov r0, r0, asr #0x8
+ mov r2, r0, lsl #0x1
+ add r1, r7, r8
+ mov r0, #0x8000
+ ldrsh r2, [r4, r2]
+ add r1, r6, r1
+ rsb r0, r0, #0x0
+ add r6, r2, r1
+ cmp r6, r0
+ ldrlt r6, [sp, #0x4]
+ blt _020C0CA8
+ ldr r0, _020C0D1C ; =0x00007FFF
+ cmp r6, r0
+ movgt r6, r0
+_020C0CA8:
+ ldrsh r0, [r10, #0x3e]
+ cmp r6, r0
+ beq _020C0CC4
+ ldrb r0, [r10, #0x3c]
+ mov r1, r6
+ bl SND_SetPlayerVolume
+ strh r6, [r10, #0x3e]
+_020C0CC4:
+ ldrb r0, [r10, #0x2c]
+ cmp r0, #0x2
+ bne _020C0CE8
+ add r0, r10, #0x1c
+ bl FUN_020C3DDC
+_020C0CD8: ; 0x020C0CD8
+ cmp r0, #0x0
+ beq _020C0CE8
+ mov r0, r10
+ bl FUN_020C087C
+_020C0CE8:
+ ldrb r0, [r10, #0x2f]
+ cmp r0, #0x0
+ beq _020C0D00
+ ldrb r0, [r10, #0x3c]
+ bl SND_StartPreparedSeq
+ strb r11, [r10, #0x2f]
+_020C0D00:
+ mov r10, r9
+ cmp r9, #0x0
+ bne _020C0BE0
+ add sp, sp, #0xc
+ ldmia sp!, {r4-r11,pc}
+ .balign 4
+_020C0D14: .word 0x021D1E08
+_020C0D18: .word 0x02103BAC
+_020C0D1C: .word 0x00007FFF
+
+ arm_func_start FUN_020C0D20
+FUN_020C0D20: ; 0x020C0D20
+ stmdb sp!, {r4-r10,lr}
+ ldr r0, _020C0DC4 ; =0x021D1E08
+ mov r1, #0x14
+ bl FUN_020ADC74
+ ldr r0, _020C0DC8 ; =0x021D1DFC
+ mov r1, #0x14
+ bl FUN_020ADC74
+ ldr r6, _020C0DCC ; =0x021D1E14
+ mov r7, #0x0
+ ldr r4, _020C0DC8 ; =0x021D1DFC
+ mov r5, r7
+_020C0D4C:
+ strb r5, [r6, #0x2c]
+ mov r0, r4
+ mov r1, r6
+ strb r7, [r6, #0x3c]
+ bl FUN_020ADBE8
+ add r7, r7, #0x1
+ cmp r7, #0x10
+ add r6, r6, #0x44
+ blt _020C0D4C
+ ldr sl, _020C0DD0 ; =0x021D2254
+ mov r9, #0x0
+ mov r7, r9
+ mov r4, r9
+ mov r8, #0xc
+ mov r6, #0x7f
+ mov r5, #0x1
+_020C0D8C:
+ mov r0, r10
+ mov r1, r8
+ bl FUN_020ADC74
+ mov r1, r7
+ add r0, r10, #0xc
+ bl FUN_020ADC74
+ strb r6, [r10, #0x20]
+ str r5, [r10, #0x18]
+ add r9, r9, #0x1
+ str r4, [r10, #0x1c]
+ cmp r9, #0x20
+ add r10, r10, #0x24
+ blt _020C0D8C
+ ldmia sp!, {r4-r10,pc}
+ .balign 4
+_020C0DC4: .word 0x021D1E08
+_020C0DC8: .word 0x021D1DFC
+_020C0DCC: .word 0x021D1E14
+_020C0DD0: .word 0x021D2254
+
+ arm_func_start FUN_020C0DD4
+FUN_020C0DD4: ; 0x020C0DD4
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldr r1, [r0, #0x0]
+ cmp r1, #0x0
+ addeq sp, sp, #0x4
+ moveq r0, #0x0
+ ldmeqia sp!, {pc}
+ ldrb r0, [r1, #0x2d]
+ cmp r0, #0x0
+ addeq sp, sp, #0x4
+ moveq r0, #0x0
+ ldmeqia sp!, {pc}
+ ldrb r0, [r1, #0x3c]
+ bl SND_GetPlayerTickCounter
+ add sp, sp, #0x4
+ ldmia sp!, {pc}
+
+ arm_func_start FUN_020C0E14
+FUN_020C0E14: ; 0x020C0E14
+ ldr r1, [r0, #0x0]
+ cmp r1, #0x0
+ mvneq r0, #0x0
+ bxeq lr
+ ldrh r0, [r1, #0x34]
+ cmp r0, #0x1
+ mvnne r0, #0x0
+ ldreqh r0, [r1, #0x38]
+ bx lr
+
+ arm_func_start FUN_020C0E38
+FUN_020C0E38: ; 0x020C0E38
+ ldr r12, [r0, #0x0]
+ cmp r12, #0x0
+ bxeq lr
+ mov r3, #0x2
+ strh r3, [r12, #0x34]
+ ldr r3, [r0, #0x0]
+ strh r1, [r3, #0x38]
+ ldr r0, [r0, #0x0]
+ strh r2, [r0, #0x3a]
+ bx lr
+
+ arm_func_start FUN_020C0E60
+FUN_020C0E60: ; 0x020C0E60
+ ldr r3, [r0, #0x0]
+ cmp r3, #0x0
+ movne r2, #0x1
+ strneh r2, [r3, #0x34]
+ ldrne r0, [r0, #0x0]
+ strneh r1, [r0, #0x38]
+ bx lr
+
+ arm_func_start FUN_020C0E7C
+FUN_020C0E7C: ; 0x020C0E7C
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ addeq sp, sp, #0x4
+ ldmeqia sp!, {pc}
+ ldrb r0, [r0, #0x3c]
+ bl SND_SetTrackPan
+ add sp, sp, #0x4
+ ldmia sp!, {pc}
+
+ arm_func_start FUN_020C0EA4
+FUN_020C0EA4: ; 0x020C0EA4
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ addeq sp, sp, #0x4
+ ldmeqia sp!, {pc}
+ ldrb r0, [r0, #0x3c]
+ bl SND_SetTrackPitch
+ add sp, sp, #0x4
+ ldmia sp!, {pc}
+
+ arm_func_start FUN_020C0ECC
+FUN_020C0ECC: ; 0x020C0ECC
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ addeq sp, sp, #0x4
+ ldmeqia sp!, {pc}
+ ldrb r0, [r0, #0x3c]
+ bl SND_SetPlayerChannelPriority
+ add sp, sp, #0x4
+ ldmia sp!, {pc}
+
+ arm_func_start FUN_020C0EF4
+FUN_020C0EF4: ; 0x020C0EF4
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldr r3, [r0, #0x0]
+ cmp r3, #0x0
+ addeq sp, sp, #0x4
+ ldmeqia sp!, {pc}
+ ldrb r0, [r3, #0x2c]
+ cmp r0, #0x2
+ addeq sp, sp, #0x4
+ ldmeqia sp!, {pc}
+ add r0, r3, #0x1c
+ mov r1, r1, lsl #0x8
+ bl FUN_020C3E40
+ add sp, sp, #0x4
+ ldmia sp!, {pc}
+
+ arm_func_start FUN_020C0F30
+FUN_020C0F30: ; 0x020C0F30
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ strneb r1, [r0, #0x40]
+ bx lr
+
+ arm_func_start FUN_020C0F40
+FUN_020C0F40: ; 0x020C0F40
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ strneb r1, [r0, #0x41]
+ bx lr
+
+ arm_func_start FUN_020C0F50
+FUN_020C0F50: ; 0x020C0F50
+ mov r1, #0x24
+ mul r1, r0, r1
+ ldr r0, _020C0F64 ; =0x021D225C
+ ldrh r0, [r0, r1]
+ bx lr
+ .balign 4
+_020C0F64: .word 0x021D225C
+
+ arm_func_start FUN_020C0F68
+FUN_020C0F68: ; 0x020C0F68
+ ldr r2, [r0, #0x0]
+ cmp r2, #0x0
+ movne r1, #0x0
+ strne r1, [r2, #0x0]
+ strne r1, [r0, #0x0]
+ bx lr
+
+ arm_func_start FUN_020C0F80
+FUN_020C0F80: ; 0x020C0F80
+ mov r1, #0x0
+ str r1, [r0, #0x0]
+ bx lr
+
+ arm_func_start FUN_020C0F8C
+FUN_020C0F8C: ; 0x020C0F8C
+ ldr ip, _020C0F98 ; =FUN_020C0A04
+ ldr r0, [r0, #0x0]
+ bx r12
+ .balign 4
+_020C0F98: .word FUN_020C0A04
+
+ arm_func_start FUN_020C0F9C
+FUN_020C0F9C: ; 0x020C0F9C
+ stmdb sp!, {r4-r6,lr}
+ ldr r4, _020C0FD8 ; =0x021D1E14
+ mov r6, r0
+ mov r5, #0x0
+_020C0FAC:
+ ldrb r0, [r4, #0x2c]
+ cmp r0, #0x0
+ beq _020C0FC4
+ mov r0, r4
+ mov r1, r6
+ bl FUN_020C0A40
+_020C0FC4:
+ add r5, r5, #0x1
+ cmp r5, #0x10
+ add r4, r4, #0x44
+ blt _020C0FAC
+ ldmia sp!, {r4-r6,pc}
+ .balign 4
+_020C0FD8: .word 0x021D1E14
+
+ arm_func_start FUN_020C0FDC
+FUN_020C0FDC: ; 0x020C0FDC
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0x4
+ ldr r4, _020C103C ; =0x021D1E14
+ mov r7, r0
+ mov r6, r1
+ mov r5, #0x0
+_020C0FF4:
+ ldrb r0, [r4, #0x2c]
+ cmp r0, #0x0
+ beq _020C1024
+ ldrh r0, [r4, #0x34]
+ cmp r0, #0x1
+ bne _020C1024
+ ldrh r0, [r4, #0x38]
+ cmp r0, r7
+ bne _020C1024
+ mov r0, r4
+ mov r1, r6
+ bl FUN_020C0A40
+_020C1024:
+ add r5, r5, #0x1
+ cmp r5, #0x10
+ add r4, r4, #0x44
+ blt _020C0FF4
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r7,pc}
+ .balign 4
+_020C103C: .word 0x021D1E14
+
+ arm_func_start FUN_020C1040
+FUN_020C1040: ; 0x020C1040
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0x4
+ ldr r3, _020C109C ; =0x021D2254
+ mov r2, #0x24
+ mla r4, r0, r2, r3
+ ldr r5, _020C10A0 ; =0x021D1E14
+ mov r7, r1
+ mov r6, #0x0
+_020C1060:
+ ldrb r0, [r5, #0x2c]
+ cmp r0, #0x0
+ beq _020C1084
+ ldr r0, [r5, #0x4]
+ cmp r0, r4
+ bne _020C1084
+ mov r0, r5
+ mov r1, r7
+ bl FUN_020C0A40
+_020C1084:
+ add r6, r6, #0x1
+ cmp r6, #0x10
+ add r5, r5, #0x44
+ blt _020C1060
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r7,pc}
+ .balign 4
+_020C109C: .word 0x021D2254
+_020C10A0: .word 0x021D1E14
+
+ arm_func_start FUN_020C10A4
+FUN_020C10A4: ; 0x020C10A4
+ ldr ip, _020C10B0 ; =FUN_020C0A40
+ ldr r0, [r0, #0x0]
+ bx r12
+ .balign 4
+_020C10B0: .word FUN_020C0A40
+
+ arm_func_start FUN_020C10B4
+FUN_020C10B4:
+ stmdb sp!, {r4-r6,lr}
+ sub sp, sp, #0x8
+ mov r5, r2
+ mov r6, r0
+ mov r0, r1
+ mov r3, #0x0
+ ldr r2, _020C1140 ; =FUN_020C072C
+ add r1, r5, #0x14
+ str r3, [sp, #0x0]
+ bl FUN_020C2958
+ movs r4, r0
+ addeq sp, sp, #0x8
+ moveq r0, #0x0
+ ldmeqia sp!, {r4-r6,pc}
+_020C10EC: ; 0x020C10EC
+ mov r2, #0x0
+ str r2, [r4, #0xc]
+ str r6, [r4, #0x10]
+ mov r1, r5
+ add r0, r4, #0x14
+ str r2, [r4, #0x8]
+ bl FUN_020C2A94
+_020C1108: ; 0x020C1108
+ cmp r0, #0x0
+ addeq sp, sp, #0x8
+ moveq r0, #0x0
+ ldmeqia sp!, {r4-r6,pc}
+_020C1118: ; 0x020C1118
+ ldr r2, _020C1144 ; =0x021D2254
+ mov r1, #0x24
+ mla r2, r6, r1, r2
+ str r0, [r4, #0x8]
+ mov r1, r4
+ add r0, r2, #0xc
+ bl FUN_020ADBE8
+ mov r0, #0x1
+ add sp, sp, #0x8
+ ldmia sp!, {r4-r6,pc}
+ .balign 4
+_020C1140: .word FUN_020C072C
+_020C1144: .word 0x021D2254
+
+ arm_func_start FUN_020C1148
+FUN_020C1148: ; 0x020C1148
+ mov r2, #0x24
+ mul r2, r0, r2
+ ldr r0, _020C115C ; =0x021D2270
+ str r1, [r0, r2]
+ bx lr
+ .balign 4
+_020C115C: .word 0x021D2270
+
+ arm_func_start FUN_020C1160
+FUN_020C1160: ; 0x020C1160
+ mov r2, #0x24
+ mul r2, r0, r2
+ mov r0, r1, lsl #0x10
+ ldr r1, _020C117C ; =0x021D226C
+ mov r0, r0, lsr #0x10
+ str r0, [r1, r2]
+ bx lr
+ .balign 4
+_020C117C: .word 0x021D226C
+
+ arm_func_start FUN_020C1180
+FUN_020C1180: ; 0x020C1180
+ mov r2, #0x24
+ mul r2, r0, r2
+ ldr r0, _020C1194 ; =0x021D2274
+ strb r1, [r0, r2]
+ bx lr
+ .balign 4
+_020C1194: .word 0x021D2274
+
+ arm_func_start FUN_020C1198
+FUN_020C1198: ; 0x020C1198
+ stmdb sp!, {r4-r6,lr}
+ mov r4, r0
+ ldr r0, [r4, #0x24]
+ mov r0, r0, lsl #0x1e
+ movs r0, r0, asr #0x1f
+ ldmeqia sp!, {r4-r6,pc}
+_020C11B0: ; 0x020C11B0
+ ldr r0, [r4, #0x38]
+ cmp r0, #0x0
+ beq _020C11E8
+ mov r5, #0x1
+_020C11C0:
+ bl OS_DisableInterrupts
+ mov r6, r0
+ mov r0, r4
+ mov r1, r5
+ bl FUN_020C1254
+ mov r0, r6
+ bl OS_RestoreInterrupts
+ ldr r0, [r4, #0x38]
+ cmp r0, #0x0
+ bne _020C11C0
+_020C11E8:
+ ldr r0, [r4, #0x40]
+ mov r2, #0x1
+ mov r1, #0x0
+ mov r2, r2, lsl r0
+ ldr r0, [r4, #0x44]
+ mov r3, r1
+ bl SND_StartTimer
+ ldmia sp!, {r4-r6,pc}
+
+ arm_func_start FUN_020C1208
+FUN_020C1208: ; 0x020C1208
+ stmdb sp!, {r4,lr}
+ ldr r1, [r0, #0x24]
+ mov r1, r1, lsl #0x1e
+ movs r1, r1, asr #0x1f
+ ldmeqia sp!, {r4,pc}
+_020C121C: ; 0x020C121C
+ ldr r2, [r0, #0x40]
+ mov r3, #0x1
+ mov r1, #0x0
+ mov r2, r3, lsl r2
+ ldr r0, [r0, #0x44]
+ mov r3, r1
+ bl SND_StopTimer
+ bl SND_GetCurrentCommandTag
+ mov r4, r0
+ mov r0, #0x1
+ bl SND_FlushCommand
+ mov r0, r4
+ bl SND_WaitForCommandProc
+ ldmia sp!, {r4,pc}
+
+ arm_func_start FUN_020C1254
+FUN_020C1254: ; 0x020C1254
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0xc
+ mov r5, r0
+ mov r4, r1
+ ldr r0, [r5, #0x28]
+ ldr r1, [r5, #0x2c]
+ bl _u32_div_f
+ ldr r1, [r5, #0x48]
+ ldr r2, [r5, #0x38]
+ mov r3, r0
+ mul lr, r3, r2
+ cmp r1, #0x0
+ mov r12, #0x0
+ ble _020C12B8
+ ldr r2, _020C1300 ; =0x021D2724
+ ldr r0, _020C1304 ; =0x021D26E4
+_020C1294:
+ add r1, r5, r12
+ ldrb r1, [r1, #0x4c]
+ ldr r1, [r2, r1, lsl #0x3]
+ add r1, r1, lr
+ str r1, [r0, r12, lsl #0x2]
+ ldr r1, [r5, #0x48]
+ add r12, r12, #0x1
+ cmp r12, r1
+ blt _020C1294
+_020C12B8:
+ ldr r0, [r5, #0x20]
+ ldr r2, _020C1304 ; =0x021D26E4
+ str r0, [sp, #0x0]
+ ldr r12, [r5, #0x34]
+ mov r0, r4
+ str r12, [sp, #0x4]
+ ldr r4, [r5, #0x30]
+ blx r4
+ ldr r0, [r5, #0x38]
+ add r0, r0, #0x1
+ str r0, [r5, #0x38]
+ ldr r1, [r5, #0x38]
+ ldr r0, [r5, #0x2c]
+ cmp r1, r0
+ movge r0, #0x0
+ strge r0, [r5, #0x38]
+ add sp, sp, #0xc
+ ldmia sp!, {r4-r5,pc}
+ .balign 4
+_020C1300: .word 0x021D2724
+_020C1304: .word 0x021D26E4
+
+ arm_func_start FUN_020C1308
+FUN_020C1308: ; 0x020C1308
+ ldr ip, _020C1314 ; =FUN_020C1254
+ mov r1, #0x1
+ bx r12
+ .balign 4
+_020C1314: .word FUN_020C1254
+
+ arm_func_start FUN_020C1318
+FUN_020C1318: ; 0x020C1318
+ stmdb sp!, {r4,lr}
+ mov r4, r0
+ ldr r0, [r4, #0x40]
+ bl FUN_020C029C
+ ldr r0, _020C1344 ; =0x021D26D8
+ mov r1, r4
+ bl FUN_020ADAB0
+ ldr r0, [r4, #0x24]
+ bic r0, r0, #0x1
+ str r0, [r4, #0x24]
+ ldmia sp!, {r4,pc}
+ .balign 4
+_020C1344: .word 0x021D26D8
+
+ arm_func_start FUN_020C1348
+FUN_020C1348: ; 0x020C1348
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ mov r4, r0
+ ldr r0, [r4, #0x24]
+ mov r0, r0, lsl #0x1e
+ movs r0, r0, asr #0x1f
+ beq _020C13B4
+ ldr r0, [r4, #0x40]
+ mov r2, #0x1
+ mov r1, #0x0
+ mov r2, r2, lsl r0
+ ldr r0, [r4, #0x44]
+ mov r3, r1
+ bl SND_StopTimer
+ add r0, r4, #0x8
+ bl PM_DeletePreSleepCallback
+ add r0, r4, #0x14
+ bl PM_DeletePostSleepCallback
+ ldr r0, [r4, #0x24]
+ bic r0, r0, #0x2
+ str r0, [r4, #0x24]
+ bl SND_GetCurrentCommandTag
+ mov r5, r0
+ mov r0, #0x1
+ bl SND_FlushCommand
+ mov r0, r5
+ bl SND_WaitForCommandProc
+_020C13B4:
+ mov r0, r4
+ bl FUN_020C1318
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,pc}
+
+ arm_func_start FUN_020C13C4
+FUN_020C13C4: ; 0x020C13C4
+ stmdb sp!, {r4-r8,lr}
+ mov r7, r0
+ str r1, [r7, #0x3c]
+ ldr r0, [r7, #0x48]
+ mov r5, #0x0
+ cmp r0, #0x0
+ ldmleia sp!, {r4-r8,pc}
+_020C13E0: ; 0x020C13E0
+ ldr r4, _020C142C ; =0x021D2724
+ mov r8, #0x1
+_020C13E8:
+ add r0, r7, r5
+ ldrb r6, [r0, #0x4c]
+ ldr r1, [r7, #0x3c]
+ add r0, r4, r6, lsl #0x3
+ ldr r0, [r0, #0x4]
+ add r0, r1, r0
+ bl SND_CalcChannelVolume
+ mov r2, r0
+ mov r0, r8, lsl r6
+ and r1, r2, #0xff
+ mov r2, r2, asr #0x8
+ bl SND_SetChannelVolume
+ ldr r0, [r7, #0x48]
+ add r5, r5, #0x1
+ cmp r5, r0
+ blt _020C13E8
+ ldmia sp!, {r4-r8,pc}
+ .balign 4
+_020C142C: .word 0x021D2724
+
+ arm_func_start FUN_020C1430
+FUN_020C1430: ; 0x020C1430
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldr r1, [r0, #0x24]
+ mov r1, r1, lsl #0x1f
+ movs r1, r1, asr #0x1f
+ addeq sp, sp, #0x4
+ ldmeqia sp!, {pc}
+ bl FUN_020C1348
+ add sp, sp, #0x4
+ ldmia sp!, {pc}
+
+ arm_func_start FUN_020C1458
+FUN_020C1458: ; 0x020C1458
+ stmdb sp!, {r4,lr}
+ mov r4, r0
+ ldr r0, [r4, #0x40]
+ mov r2, #0x1
+ mov r1, #0x0
+ mov r2, r2, lsl r0
+ ldr r0, [r4, #0x44]
+ mov r3, r1
+ bl SND_StartTimer
+ ldr r0, [r4, #0x24]
+ mov r0, r0, lsl #0x1e
+ movs r0, r0, asr #0x1f
+ ldmneia sp!, {r4,pc}
+_020C148C: ; 0x020C148C
+ add r0, r4, #0x8
+ bl PM_PrependPreSleepCallback
+ add r0, r4, #0x14
+ bl PM_AppendPostSleepCallback
+ ldr r0, [r4, #0x24]
+ orr r0, r0, #0x2
+ str r0, [r4, #0x24]
+ ldmia sp!, {r4,pc}
+
+ arm_func_start FUN_020C14AC
+FUN_020C14AC: ; 0x020C14AC
+ stmdb sp!, {r4-r11,lr}
+ sub sp, sp, #0x24
+ mov r10, r0
+ ldr r4, [r10, #0x24]
+ mov r9, r1
+ mov r1, r4, lsl #0x1f
+ movs r1, r1, asr #0x1f
+ ldr r1, [sp, #0x4c]
+ str r2, [sp, #0x18]
+ mov r4, r3
+ str r1, [sp, #0x4c]
+ beq _020C14E0
+ bl FUN_020C1430
+_020C14E0:
+ ldr r0, [sp, #0x4c]
+ ldr r2, [r10, #0x48]
+ mov r0, r0, lsl #0x5
+ mul r1, r2, r0
+ mov r0, r4
+ bl _u32_div_f
+ ldr r1, [sp, #0x4c]
+ ldr r2, [sp, #0x48]
+ mul r1, r0, r1
+ mov r0, r1, lsl #0x5
+ str r0, [r10, #0x28]
+ ldr r0, [r10, #0x28]
+ cmp r9, #0x1
+ moveq r0, r0, lsr #0x1
+ mul r0, r2, r0
+ ldr r1, [sp, #0x4c]
+ bl _u32_div_f
+ str r0, [sp, #0x1c]
+ bl FUN_020C02BC
+ str r0, [r10, #0x40]
+ ldr r0, [r10, #0x40]
+ cmp r0, #0x0
+ addlt sp, sp, #0x24
+ movlt r0, #0x0
+ ldmltia sp!, {r4-r11,pc}
+_020C1544: ; 0x020C1544
+ ldr r0, [r10, #0x48]
+ mov r8, #0x0
+ cmp r0, #0x0
+ ble _020C15D4
+ ldr r0, [sp, #0x48]
+ mov r7, r0, lsl #0x5
+ ldr r6, _020C1668 ; =0x021D2724
+ mov r5, r8
+ mov r4, #0x7f
+ mov r11, #0x40
+ mov r0, #0x1
+ str r0, [sp, #0x20]
+_020C1574:
+ ldr r2, [r10, #0x28]
+ ldr r1, [sp, #0x18]
+ add r0, r10, r8
+ mla r1, r2, r8, r1
+ ldrb r0, [r0, #0x4c]
+ ldr r3, [sp, #0x20]
+ str r1, [r6, r0, lsl #0x3]
+ add r1, r6, r0, lsl #0x3
+ str r5, [r1, #0x4]
+ str r5, [sp, #0x0]
+ ldr r2, [r10, #0x28]
+ mov r1, r9
+ mov r2, r2, lsr #0x2
+ str r2, [sp, #0x4]
+ str r4, [sp, #0x8]
+ str r5, [sp, #0xc]
+ str r7, [sp, #0x10]
+ str r11, [sp, #0x14]
+ ldr r2, [r6, r0, lsl #0x3]
+ bl SND_SetupChannelPcm
+ ldr r0, [r10, #0x48]
+ add r8, r8, #0x1
+ cmp r8, r0
+ blt _020C1574
+_020C15D4:
+ str r10, [sp, #0x0]
+ ldr r1, [sp, #0x1c]
+ ldr r0, [r10, #0x40]
+ ldr r3, _020C166C ; =FUN_020C1308
+ mov r2, r1
+ bl SND_SetupAlarm
+ ldr r0, _020C1670 ; =0x021D26D8
+ mov r1, r10
+ bl FUN_020ADBE8
+ ldr r0, [sp, #0x4c]
+ str r9, [r10, #0x20]
+ str r0, [r10, #0x2c]
+ ldr r1, [sp, #0x50]
+ ldr r0, [sp, #0x54]
+ str r1, [r10, #0x30]
+ str r0, [r10, #0x34]
+ mov r0, #0x0
+ str r0, [r10, #0x38]
+ str r0, [r10, #0x3c]
+ ldr r0, [r10, #0x24]
+ bic r0, r0, #0x1
+ orr r0, r0, #0x1
+ str r0, [r10, #0x24]
+ bl OS_DisableInterrupts
+ mov r4, r0
+ mov r2, #0x1
+ mov r0, r10
+ mov r1, #0x0
+ str r2, [r10, #0x2c]
+ bl FUN_020C1254
+ ldr r1, [sp, #0x4c]
+ mov r0, r4
+ str r1, [r10, #0x2c]
+ bl OS_RestoreInterrupts
+ mov r0, #0x1
+ add sp, sp, #0x24
+ ldmia sp!, {r4-r11,pc}
+ .balign 4
+_020C1668: .word 0x021D2724
+_020C166C: .word FUN_020C1308
+_020C1670: .word 0x021D26D8
+
+ arm_func_start FUN_020C1674
+FUN_020C1674: ; 0x020C1674
+ stmdb sp!, {r4,lr}
+ mov r4, r0
+ ldr r0, [r4, #0x44]
+ cmp r0, #0x0
+ ldmeqia sp!, {r4,pc}
+_020C1688: ; 0x020C1688
+ bl FUN_020C0340
+_020C168C: ; 0x020C168C
+ mov r0, #0x0
+ str r0, [r4, #0x44]
+ str r0, [r4, #0x48]
+ ldmia sp!, {r4,pc}
+
+ arm_func_start FUN_020C169C
+FUN_020C169C: ; 0x020C169C
+ stmdb sp!, {r4-r6,lr}
+ mov r5, r1
+ mov r4, #0x0
+ mov r6, r0
+ mov r12, r4
+ cmp r5, #0x0
+ ble _020C16DC
+ mov r1, #0x1
+_020C16BC:
+ ldrb r3, [r2, r12]
+ add r0, r6, r12
+ strb r3, [r0, #0x4c]
+ ldrb r0, [r2, r12]
+ add r12, r12, #0x1
+ cmp r12, r5
+ orr r4, r4, r1, lsl r0
+ blt _020C16BC
+_020C16DC:
+ mov r0, r4
+ bl FUN_020C0370
+_020C16E4: ; 0x020C16E4
+ cmp r0, #0x0
+ moveq r0, #0x0
+ strne r5, [r6, #0x48]
+ strne r4, [r6, #0x44]
+ movne r0, #0x1
+ ldmia sp!, {r4-r6,pc}
+
+ arm_func_start FUN_020C16FC
+FUN_020C16FC: ; 0x020C16FC
+ stmdb sp!, {r4,lr}
+ ldr r1, _020C176C ; =0x021D26D4
+ mov r4, r0
+ ldr r0, [r1, #0x0]
+ cmp r0, #0x0
+ bne _020C172C
+ ldr r0, _020C1770 ; =0x021D26D8
+ mov r1, #0x0
+ bl FUN_020ADC74
+ ldr r0, _020C176C ; =0x021D26D4
+ mov r1, #0x1
+ str r1, [r0, #0x0]
+_020C172C:
+ ldr r1, _020C1774 ; =FUN_020C1208
+ ldr r0, _020C1778 ; =FUN_020C1198
+ str r1, [r4, #0x8]
+ str r4, [r4, #0xc]
+ str r0, [r4, #0x14]
+ str r4, [r4, #0x18]
+ mov r0, #0x0
+ str r0, [r4, #0x44]
+ str r0, [r4, #0x48]
+ ldr r0, [r4, #0x24]
+ bic r0, r0, #0x1
+ str r0, [r4, #0x24]
+ ldr r0, [r4, #0x24]
+ bic r0, r0, #0x2
+ str r0, [r4, #0x24]
+ ldmia sp!, {r4,pc}
+ .balign 4
+_020C176C: .word 0x021D26D4
+_020C1770: .word 0x021D26D8
+_020C1774: .word FUN_020C1208
+_020C1778: .word FUN_020C1198
+
+ arm_func_start FUN_020C177C
+FUN_020C177C: ; 0x020C177C
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0x4
+ mov r7, r0
+ ldr r4, [r7, #0x18]
+ ldr r0, [r7, #0x1c]
+ ldr r1, _020C186C ; =0x021D27A4
+ mul r0, r4, r0
+ ldr r3, [r7, #0xc]
+ ldr r2, [r7, #0x10]
+ ldr r1, [r1, #0x0]
+ add r6, r3, r0
+ cmp r1, #0x0
+ add r5, r2, r0
+ beq _020C180C
+ ldr r2, _020C1870 ; =0x021D27A8
+ mov r1, #0x14
+ ldr r2, [r2, #0x0]
+ ldr r3, _020C1874 ; =0x021D2820
+ mul r1, r2, r1
+ str r7, [r3, r1]
+ add r1, r3, r1
+ str r4, [r1, #0x4]
+ str r0, [r1, #0x8]
+ str r6, [r1, #0xc]
+ ldr r0, _020C1878 ; =0x021D27AC
+ mov r2, #0x0
+ str r5, [r1, #0x10]
+ bl OS_SendMessage
+ ldr r0, _020C1870 ; =0x021D27A8
+ ldr r1, [r0, #0x0]
+ add r1, r1, #0x1
+ str r1, [r0, #0x0]
+ cmp r1, #0x8
+ movge r1, #0x0
+ strge r1, [r0, #0x0]
+ b _020C1844
+_020C180C:
+ mov r0, r6
+ mov r1, r4
+ bl DC_InvalidateRange
+ mov r0, r5
+ mov r1, r4
+ bl DC_InvalidateRange
+ ldr r1, [r7, #0x38]
+ mov r0, r6
+ str r1, [sp, #0x0]
+ ldr r3, [r7, #0x8]
+ ldr r6, [r7, #0x34]
+ mov r1, r5
+ mov r2, r4
+ blx r6
+_020C1844:
+ ldr r0, [r7, #0x1c]
+ add r0, r0, #0x1
+ str r0, [r7, #0x1c]
+ ldr r1, [r7, #0x1c]
+ ldr r0, [r7, #0x30]
+ cmp r1, r0
+ movge r0, #0x0
+ strge r0, [r7, #0x1c]
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r7,pc}
+ .balign 4
+_020C186C: .word 0x021D27A4
+_020C1870: .word 0x021D27A8
+_020C1874: .word 0x021D2820
+_020C1878: .word 0x021D27AC
+
+ arm_func_start FUN_020C187C
+FUN_020C187C: ; 0x020C187C
+ stmdb sp!, {r4,lr}
+ ldr r4, _020C18F4 ; =0x021D27CC
+ ldr r0, [r4, #0x0]
+ cmp r0, #0x0
+ ldmeqia sp!, {r4,pc}
+_020C1890: ; 0x020C1890
+ mov r0, #0x0
+ str r0, [r4, #0x1c]
+ ldr r1, [r4, #0xc]
+ ldr r2, [r4, #0x14]
+ bl MIi_CpuClear32
+ ldr r1, [r4, #0x10]
+ ldr r2, [r4, #0x14]
+ mov r0, #0x0
+ bl MIi_CpuClear32
+ ldr r0, [r4, #0xc]
+ ldr r1, [r4, #0x14]
+ bl DC_FlushRange
+ ldr r0, [r4, #0x10]
+ ldr r1, [r4, #0x14]
+ bl DC_FlushRange
+ ldr r1, [r4, #0x2c]
+ mov r3, #0x0
+ cmp r1, #0x0
+ movge r0, #0x1
+ movge r2, r0, lsl r1
+ ldr r0, [r4, #0x24]
+ ldr r1, [r4, #0x28]
+ movlt r2, #0x0
+ bl SND_StartTimer
+ ldmia sp!, {r4,pc}
+ .balign 4
+_020C18F4: .word 0x021D27CC
+
+ arm_func_start FUN_020C18F8
+FUN_020C18F8:
+ stmdb sp!, {r4,lr}
+ ldr r3, _020C194C ; =0x021D27CC
+ ldr r0, [r3, #0x0]
+ cmp r0, #0x0
+ ldmeqia sp!, {r4,pc}
+_020C190C: ; 0x020C190C
+ ldr r1, [r3, #0x2c]
+ cmp r1, #0x0
+ movge r0, #0x1
+ movge r2, r0, lsl r1
+ ldr r0, [r3, #0x24]
+ ldr r1, [r3, #0x28]
+ movlt r2, #0x0
+ mov r3, #0x0
+ bl SND_StopTimer
+ bl SND_GetCurrentCommandTag
+ mov r4, r0
+ mov r0, #0x1
+ bl SND_FlushCommand
+ mov r0, r4
+ bl SND_WaitForCommandProc
+ ldmia sp!, {r4,pc}
+ .balign 4
+_020C194C: .word 0x021D27CC
+
+ arm_func_start FUN_020C1950
+FUN_020C1950: ; 0x020C1950
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0x4
+ ldr r4, _020C1A3C ; =0x021D27CC
+ ldr r0, [r4, #0x0]
+ cmp r0, #0x0
+ addeq sp, sp, #0x4
+ ldmeqia sp!, {r4-r7,pc}
+_020C196C: ; 0x020C196C
+ ldr r1, [r4, #0x2c]
+ mov r3, #0x0
+ cmp r1, #0x0
+ movge r7, #0x1
+ movlt r7, #0x0
+ cmp r7, #0x0
+ movne r0, #0x1
+ movne r2, r0, lsl r1
+ ldr r0, [r4, #0x24]
+ ldr r1, [r4, #0x28]
+ moveq r2, #0x0
+ bl SND_StopTimer
+_020C199C: ; 0x020C199C
+ cmp r7, #0x0
+ beq _020C19DC
+ bl SND_GetCurrentCommandTag
+ mov r5, r0
+ mov r0, #0x1
+ bl SND_FlushCommand
+ mov r0, r5
+ bl SND_WaitForCommandProc
+ ldr r6, _020C1A40 ; =0x021D27AC
+ mov r5, #0x0
+_020C19C4:
+ mov r0, r6
+ mov r1, r5
+ mov r2, r5
+ bl OS_ReceiveMessage
+_020C19D4: ; 0x020C19D4
+ cmp r0, #0x0
+ bne _020C19C4
+_020C19DC:
+ ldr r0, [r4, #0x28]
+ cmp r0, #0x0
+ beq _020C19EC
+ bl FUN_020C0300
+_020C19EC:
+ ldr r0, [r4, #0x20]
+ cmp r0, #0x0
+ beq _020C19FC
+ bl FUN_020C0340
+_020C19FC:
+ cmp r7, #0x0
+ beq _020C1A0C
+ ldr r0, [r4, #0x2c]
+ bl FUN_020C029C
+_020C1A0C:
+ ldr r0, [r4, #0x4]
+ cmp r0, #0x1
+ bne _020C1A2C
+ mov r0, #0x0
+ mov r1, r0
+ mov r2, r0
+ mov r3, r0
+ bl SND_SetOutputSelector
+_020C1A2C:
+ mov r0, #0x0
+ str r0, [r4, #0x0]
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r7,pc}
+ .balign 4
+_020C1A3C: .word 0x021D27CC
+_020C1A40: .word 0x021D27AC
+
+ arm_func_start FUN_020C1A44
+FUN_020C1A44: ; 0x020C1A44
+ stmdb sp!, {r4-r11,lr}
+ sub sp, sp, #0x3c
+ mov r10, r3
+ str r0, [sp, #0x18]
+ str r2, [sp, #0x20]
+ mov r2, #0x0
+ str r1, [sp, #0x1c]
+ mov r0, r1
+ mov r1, r10
+ ldr r9, [sp, #0x6c]
+ ldr r8, [sp, #0x74]
+ str r2, [sp, #0x2c]
+ mvn r6, #0x0
+ ldr r4, _020C1D90 ; =0x021D27CC
+ bl DC_FlushRange
+ ldr r0, [sp, #0x20]
+ mov r1, r10
+ bl DC_FlushRange
+ ldr r0, [sp, #0x60]
+ ldr r1, [sp, #0x70]
+ cmp r0, #0x1
+ moveq r7, #0x1
+ ldr r0, _020C1D94 ; =0x00FFB0FF
+ movne r7, #0x0
+ bl _s32_div_f
+ ldr r1, [sp, #0x84]
+ mov r11, r0
+ cmp r1, #0x0
+ beq _020C1B00
+ add r1, r11, #0x10
+ bic r11, r1, #0x1f
+ mov r2, r11, asr #0x5
+ mov r0, r10
+ cmp r7, #0x0
+ ldr r1, [sp, #0x80]
+ moveq r0, r10, lsr #0x1
+ str r2, [sp, #0x34]
+ bl _u32_div_f
+ ldr r1, [sp, #0x34]
+ mov r5, #0x20
+ mul r0, r1, r0
+ str r0, [sp, #0x30]
+ cmp r7, #0x0
+ ldr r0, [sp, #0x34]
+ moveq r5, r5, lsr #0x1
+ mul r0, r5, r0
+ mov r5, r0
+_020C1B00:
+ cmp r7, #0x0
+ movne r0, #0x0
+ strne r0, [sp, #0x28]
+ moveq r0, #0x1
+ streq r0, [sp, #0x28]
+ cmp r7, #0x0
+ movne r0, #0x1
+ strne r0, [sp, #0x24]
+ moveq r0, #0x0
+ streq r0, [sp, #0x24]
+ ldr r0, [sp, #0x18]
+ cmp r0, #0x2
+ movne r0, #0xa
+ strne r0, [sp, #0x2c]
+ ldr r0, [sp, #0x84]
+ cmp r0, #0x0
+ beq _020C1B58
+ bl FUN_020C02BC
+ movs r6, r0
+ addmi sp, sp, #0x3c
+ movmi r0, #0x0
+ ldmmiia sp!, {r4-r11,pc}
+_020C1B58:
+ mov r0, #0x3
+ bl FUN_020C031C
+_020C1B60: ; 0x020C1B60
+ cmp r0, #0x0
+ bne _020C1B84
+ cmp r6, #0x0
+ blt _020C1B78
+ mov r0, r6
+ bl FUN_020C029C
+_020C1B78:
+ add sp, sp, #0x3c
+ mov r0, #0x0
+ ldmia sp!, {r4-r11,pc}
+_020C1B84:
+ mov r0, #0xa
+ bl FUN_020C0370
+_020C1B8C: ; 0x020C1B8C
+ cmp r0, #0x0
+ bne _020C1BB8
+ cmp r6, #0x0
+ blt _020C1BA4
+ mov r0, r6
+ bl FUN_020C029C
+_020C1BA4:
+ mov r0, #0x3
+ bl FUN_020C0300
+ add sp, sp, #0x3c
+ mov r0, #0x0
+ ldmia sp!, {r4-r11,pc}
+_020C1BB8:
+ mov r0, #0x0
+ mov r7, r10, lsr #0x2
+ str r0, [sp, #0x0]
+ str r7, [sp, #0x4]
+ str r8, [sp, #0x8]
+ str r0, [sp, #0xc]
+ cmp r9, #0x0
+ movne r3, #0x1
+ ldr r1, [sp, #0x78]
+ str r11, [sp, #0x10]
+ str r1, [sp, #0x14]
+ ldr r1, [sp, #0x28]
+ ldr r2, [sp, #0x1c]
+ moveq r3, #0x2
+ mov r0, #0x1
+ bl SND_SetupChannelPcm
+ ldr r1, [sp, #0x64]
+ str r9, [sp, #0x0]
+ str r1, [sp, #0x4]
+ ldr r0, [sp, #0x68]
+ ldr r1, [sp, #0x24]
+ str r0, [sp, #0x8]
+ ldr r2, [sp, #0x1c]
+ mov r0, #0x0
+ mov r3, r7
+ bl SND_SetupCapture
+_020C1C20: ; 0x020C1C20
+ mov r0, #0x0
+ str r0, [sp, #0x0]
+ str r7, [sp, #0x4]
+ str r8, [sp, #0x8]
+ str r0, [sp, #0xc]
+ cmp r9, #0x0
+ movne r3, #0x1
+ ldr r2, [sp, #0x7c]
+ str r11, [sp, #0x10]
+ str r2, [sp, #0x14]
+ ldr r1, [sp, #0x28]
+ ldr r2, [sp, #0x20]
+ moveq r3, #0x2
+ mov r0, #0x3
+ bl SND_SetupChannelPcm
+ ldr r2, [sp, #0x64]
+ str r9, [sp, #0x0]
+ str r2, [sp, #0x4]
+ ldr r0, [sp, #0x68]
+ ldr r1, [sp, #0x24]
+ str r0, [sp, #0x8]
+ ldr r2, [sp, #0x20]
+ mov r3, r7
+ mov r0, #0x1
+ bl SND_SetupCapture
+_020C1C84: ; 0x020C1C84
+ cmp r6, #0x0
+ blt _020C1CA8
+ ldr r2, [sp, #0x30]
+ ldr r3, _020C1D98 ; =FUN_020C177C
+ mov r1, r2
+ mov r0, r6
+ add r1, r1, r5
+ str r4, [sp, #0x0]
+ bl SND_SetupAlarm
+_020C1CA8:
+ ldr r0, [sp, #0x18]
+ cmp r0, #0x1
+ bne _020C1CC8
+ mov r0, #0x1
+ mov r2, r0
+ mov r3, r0
+ mov r1, #0x2
+ bl SND_SetOutputSelector
+_020C1CC8:
+ cmp r6, #0x0
+ movge r0, #0x1
+ movge r2, r0, lsl r6
+ ldr r0, [sp, #0x2c]
+ movlt r2, #0x0
+ mov r1, #0x3
+ mov r3, #0x0
+ bl SND_StartTimer
+ mov r0, #0x1
+ str r0, [r4, #0x0]
+ ldr r0, [sp, #0x18]
+ ldr r1, [sp, #0x80]
+ str r0, [r4, #0x4]
+ mov r0, #0xa
+ str r0, [r4, #0x20]
+ ldr r0, [sp, #0x2c]
+ str r0, [r4, #0x24]
+ mov r0, #0x3
+ str r0, [r4, #0x28]
+ ldr r0, [sp, #0x60]
+ str r6, [r4, #0x2c]
+ str r0, [r4, #0x8]
+ ldr r0, [sp, #0x1c]
+ str r0, [r4, #0xc]
+ ldr r0, [sp, #0x20]
+ str r0, [r4, #0x10]
+ mov r0, r10
+ str r10, [r4, #0x14]
+ bl _u32_div_f
+ str r0, [r4, #0x18]
+ mov r1, #0x0
+ str r1, [r4, #0x1c]
+ ldr r0, [sp, #0x80]
+ ldr r1, [sp, #0x84]
+ str r0, [r4, #0x30]
+ ldr r0, [sp, #0x88]
+ str r1, [r4, #0x34]
+ str r0, [r4, #0x38]
+ add r0, r4, #0x3c
+ str r8, [r4, #0x50]
+ bl FUN_020C3E6C
+ add r0, r4, #0x3c
+ mov r1, r8, lsl #0x8
+ mov r2, #0x1
+ bl FUN_020C3E40
+_020C1D7C: ; 0x020C1D7C
+ mov r0, #0x0
+ str r0, [r4, #0x4c]
+ mov r0, #0x1
+ add sp, sp, #0x3c
+ ldmia sp!, {r4-r11,pc}
+ .balign 4
+_020C1D90: .word 0x021D27CC
+_020C1D94: .word 0x00FFB0FF
+_020C1D98: .word FUN_020C177C
+
+ arm_func_start FUN_020C1D9C
+FUN_020C1D9C: ; 0x020C1D9C
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ ldr r5, _020C1E34 ; =0x021D27CC
+ ldr r0, [r5, #0x0]
+ cmp r0, #0x0
+ addeq sp, sp, #0x4
+ ldmeqia sp!, {r4-r5,pc}
+_020C1DB8: ; 0x020C1DB8
+ ldr r0, [r5, #0x4]
+ cmp r0, #0x0
+ addne sp, sp, #0x4
+ ldmneia sp!, {r4-r5,pc}
+_020C1DC8: ; 0x020C1DC8
+ add r4, r5, #0x3c
+ mov r0, r4
+ bl FUN_020C3DF4
+ ldr r0, [r5, #0x4c]
+ cmp r0, #0x0
+ beq _020C1DFC
+ mov r0, r4
+ bl FUN_020C3DDC
+_020C1DE8: ; 0x020C1DE8
+ cmp r0, #0x0
+ beq _020C1DFC
+ bl FUN_020C1950
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,pc}
+_020C1DFC:
+ mov r0, r4
+ bl FUN_020C3E0C
+ ldr r1, [r5, #0x50]
+ mov r4, r0, asr #0x8
+ cmp r4, r1
+ addeq sp, sp, #0x4
+ ldmeqia sp!, {r4-r5,pc}
+_020C1E18: ; 0x020C1E18
+ ldr r0, [r5, #0x24]
+ mov r1, r4
+ mov r2, #0x0
+ bl SND_SetChannelVolume
+ str r4, [r5, #0x50]
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,pc}
+ .balign 4
+_020C1E34: .word 0x021D27CC
+
+ arm_func_start FUN_020C1E38
+FUN_020C1E38: ; 0x020C1E38
+ ldr r1, _020C1E50 ; =0x021D27A4
+ mov r2, #0x0
+ ldr r0, _020C1E54 ; =0x021D27CC
+ str r2, [r1, #0x0]
+ str r2, [r0, #0x0]
+ bx lr
+ .balign 4
+_020C1E50: .word 0x021D27A4
+_020C1E54: .word 0x021D27CC
+
+ arm_func_start FUN_020C1E58
+FUN_020C1E58: ; 0x020C1E58
+ ldr r0, _020C1E64 ; =0x021D27CC
+ ldr r0, [r0, #0x0]
+ bx lr
+ .balign 4
+_020C1E64: .word 0x021D27CC
+
+ arm_func_start FUN_020C1E68
+FUN_020C1E68: ; 0x020C1E68
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldr r0, _020C1EA0 ; =0x021D27CC
+ ldr r1, [r0, #0x0]
+ cmp r1, #0x0
+ addeq sp, sp, #0x4
+ ldmeqia sp!, {pc}
+ ldr r0, [r0, #0x4]
+ cmp r0, #0x1
+ addne sp, sp, #0x4
+ ldmneia sp!, {pc}
+ bl FUN_020C1950
+ add sp, sp, #0x4
+ ldmia sp!, {pc}
+ .balign 4
+_020C1EA0: .word 0x021D27CC
+
+ arm_func_start FUN_020C1EA4
+FUN_020C1EA4: ; 0x020C1EA4
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0x2c
+ mov r5, r0
+ mov r4, r1
+ mov r7, r2
+ mov r6, r3
+ bl FUN_020C1E68
+ ldr r0, _020C1F50 ; =0x021D27CC
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ addne sp, sp, #0x2c
+ movne r0, #0x0
+ ldmneia sp!, {r4-r7,pc}
+_020C1ED8: ; 0x020C1ED8
+ mov r1, r5
+ mov r2, r4
+ mov r0, #0x0
+ bl MIi_CpuClear32
+ mov r0, r5
+ mov r1, r4
+ bl DC_FlushRange
+ str r7, [sp, #0x0]
+ mov r2, #0x0
+ str r2, [sp, #0x4]
+ str r2, [sp, #0x8]
+ mov r0, #0x1
+ str r0, [sp, #0xc]
+ str r6, [sp, #0x10]
+ mov r1, #0x7f
+ str r1, [sp, #0x14]
+ str r2, [sp, #0x18]
+ ldr r2, [sp, #0x40]
+ str r1, [sp, #0x1c]
+ ldr r1, [sp, #0x44]
+ str r2, [sp, #0x20]
+ ldr r12, [sp, #0x48]
+ str r1, [sp, #0x24]
+ mov r1, r5
+ mov r3, r4, lsr #0x1
+ add r2, r5, r4, lsr #0x1
+ str r12, [sp, #0x28]
+ bl FUN_020C1A44
+ add sp, sp, #0x2c
+ ldmia sp!, {r4-r7,pc}
+ .balign 4
+_020C1F50: .word 0x021D27CC
+
+ arm_func_start FUN_020C1F54
+FUN_020C1F54: ; 0x020C1F54
+ stmdb sp!, {r4,lr}
+ ldr r4, _020C1FA0 ; =0x021D27CC
+ mov r2, r0
+ ldr r0, [r4, #0x0]
+ cmp r0, #0x0
+ ldmeqia sp!, {r4,pc}
+_020C1F6C: ; 0x020C1F6C
+ ldr r0, [r4, #0x4]
+ cmp r0, #0x0
+ ldmneia sp!, {r4,pc}
+_020C1F78: ; 0x020C1F78
+ cmp r2, #0x0
+ bne _020C1F88
+ bl FUN_020C1950
+ ldmia sp!, {r4,pc}
+_020C1F88:
+ add r0, r4, #0x3c
+ mov r1, #0x0
+ bl FUN_020C3E40
+ mov r0, #0x1
+ str r0, [r4, #0x4c]
+ ldmia sp!, {r4,pc}
+ .balign 4
+_020C1FA0: .word 0x021D27CC
+
+ arm_func_start FUN_020C1FA4
+FUN_020C1FA4: ; 0x020C1FA4
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldr r3, _020C1FEC ; =0x021D27CC
+ mov r12, r0
+ ldr r0, [r3, #0x0]
+ mov r2, r1
+ cmp r0, #0x0
+ addeq sp, sp, #0x4
+ ldmeqia sp!, {pc}
+ ldr r0, [r3, #0x4]
+ cmp r0, #0x0
+ addne sp, sp, #0x4
+ ldmneia sp!, {pc}
+ add r0, r3, #0x3c
+ mov r1, r12, lsl #0x8
+ bl FUN_020C3E40
+ add sp, sp, #0x4
+ ldmia sp!, {pc}
+ .balign 4
+_020C1FEC: .word 0x021D27CC
+
+ arm_func_start FUN_020C1FF0
+FUN_020C1FF0: ; 0x020C1FF0
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0x2c
+ mov r5, r0
+ mov r0, #0x0
+ mov r4, r1
+ mov r7, r2
+ mov r6, r3
+ bl FUN_020C1F54
+ ldr r0, _020C2098 ; =0x021D27CC
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ addne sp, sp, #0x2c
+ movne r0, #0x0
+ ldmneia sp!, {r4-r7,pc}
+_020C2028: ; 0x020C2028
+ mov r1, r5
+ mov r2, r4
+ mov r0, #0x0
+ bl MIi_CpuClear32
+ mov r0, r5
+ mov r1, r4
+ bl DC_FlushRange
+ str r7, [sp, #0x0]
+ mov r0, #0x0
+ str r0, [sp, #0x4]
+ str r0, [sp, #0x8]
+ mov r1, #0x1
+ str r1, [sp, #0xc]
+ ldr r1, [sp, #0x40]
+ str r6, [sp, #0x10]
+ str r1, [sp, #0x14]
+ str r0, [sp, #0x18]
+ mov r1, #0x7f
+ str r1, [sp, #0x1c]
+ str r0, [sp, #0x20]
+ str r0, [sp, #0x24]
+ mov r1, r5
+ mov r3, r4, lsr #0x1
+ add r2, r5, r4, lsr #0x1
+ str r0, [sp, #0x28]
+ bl FUN_020C1A44
+ add sp, sp, #0x2c
+ ldmia sp!, {r4-r7,pc}
+ .balign 4
+_020C2098: .word 0x021D27CC
+
+ arm_func_start FUN_020C209C
+FUN_020C209C: ; 0x020C209C
+ mov r0, #0x0
+ str r0, [r2, #0x88]
+ bx lr
+
+ arm_func_start FUN_020C20A8
+FUN_020C20A8: ; 0x020C20A8
+ mov r0, #0x0
+ str r0, [r2, #0x84]
+ bx lr
+
+ arm_func_start FUN_020C20B4
+FUN_020C20B4: ; 0x020C20B4
+ mov r0, #0x0
+ str r0, [r2, #0x8c]
+ bx lr
+
+ arm_func_start FUN_020C20C0
+FUN_020C20C0: ; 0x020C20C0
+ ldr r2, _020C20D8 ; =0x021D28C0
+ ldr r2, [r2, #0x0]
+ ldr r2, [r2, #0x84]
+ add r0, r2, r0, lsl #0x4
+ str r1, [r0, #0x14]
+ bx lr
+ .balign 4
+_020C20D8: .word 0x021D28C0
+
+ arm_func_start FUN_020C20DC
+FUN_020C20DC:
+ ldr r1, _020C2100 ; =0x021D28C0
+ ldr r1, [r1, #0x0]
+ ldr r2, [r1, #0x84]
+ ldr r1, [r2, #0x8]
+ cmp r0, r1
+ movcs r0, #0x0
+ addcc r0, r2, r0, lsl #0x4
+ ldrcc r0, [r0, #0x14]
+ bx lr
+ .balign 4
+_020C2100: .word 0x021D28C0
+
+ arm_func_start FUN_020C2104
+FUN_020C2104:
+ stmdb sp!, {r4-r6,lr}
+ ldr r4, _020C2178 ; =0x021D28C0
+ mov r5, r2
+ ldr r4, [r4, #0x0]
+ mov r6, r1
+ ldr r2, [r4, #0x84]
+ ldr r1, [r2, #0x8]
+ cmp r0, r1
+ mvncs r0, #0x0
+ ldmcsia sp!, {r4-r6,pc}
+_020C212C: ; 0x020C212C
+ add r1, r2, #0xc
+ add r1, r1, r0, lsl #0x4
+ ldr r0, [r1, #0x4]
+ ldr r1, [r1, #0x0]
+ sub r0, r0, r3
+ cmp r5, r0
+ movhi r5, r0
+ add r0, r4, #0x34
+ add r1, r1, r3
+ mov r2, #0x0
+ bl FS_SeekFile
+_020C2158: ; 0x020C2158
+ cmp r0, #0x0
+ mvneq r0, #0x0
+ ldmeqia sp!, {r4-r6,pc}
+_020C2164: ; 0x020C2164
+ mov r1, r6
+ mov r2, r5
+ add r0, r4, #0x34
+ bl FS_ReadFile
+ ldmia sp!, {r4-r6,pc}
+ .balign 4
+_020C2178: .word 0x021D28C0
+
+ arm_func_start FUN_020C217C
+FUN_020C217C: ; 0x020C217C
+ ldr r1, _020C21A0 ; =0x021D28C0
+ ldr r1, [r1, #0x0]
+ ldr r2, [r1, #0x84]
+ ldr r1, [r2, #0x8]
+ cmp r0, r1
+ movcs r0, #0x0
+ addcc r0, r2, r0, lsl #0x4
+ ldrcc r0, [r0, #0x10]
+ bx lr
+ .balign 4
+_020C21A0: .word 0x021D28C0
+
+ arm_func_start FUN_020C21A4
+FUN_020C21A4: ; 0x020C21A4
+ ldr r1, _020C2204 ; =0x021D28C0
+ ldr r3, [r1, #0x0]
+ ldr r2, [r3, #0x8c]
+ ldr r1, [r2, #0x1c]
+ cmp r1, #0x0
+ moveq r2, #0x0
+ addne r2, r2, r1
+ cmp r2, #0x0
+ moveq r0, #0x0
+ bxeq lr
+ cmp r0, #0x0
+ movlt r0, #0x0
+ bxlt lr
+ ldr r1, [r2, #0x0]
+ cmp r0, r1
+ movcs r0, #0x0
+ bxcs lr
+ add r0, r2, r0, lsl #0x2
+ ldr r1, [r0, #0x4]
+ ldr r0, [r3, #0x8c]
+ cmp r1, #0x0
+ moveq r0, #0x0
+ addne r0, r0, r1
+ bx lr
+ .balign 4
+_020C2204: .word 0x021D28C0
+
+ arm_func_start FUN_020C2208
+FUN_020C2208: ; 0x020C2208
+ ldr r1, _020C2268 ; =0x021D28C0
+ ldr r3, [r1, #0x0]
+ ldr r2, [r3, #0x8c]
+ ldr r1, [r2, #0x18]
+ cmp r1, #0x0
+ moveq r2, #0x0
+ addne r2, r2, r1
+ cmp r2, #0x0
+ moveq r0, #0x0
+ bxeq lr
+ cmp r0, #0x0
+ movlt r0, #0x0
+ bxlt lr
+ ldr r1, [r2, #0x0]
+ cmp r0, r1
+ movcs r0, #0x0
+ bxcs lr
+ add r0, r2, r0, lsl #0x2
+ ldr r1, [r0, #0x4]
+ ldr r0, [r3, #0x8c]
+ cmp r1, #0x0
+ moveq r0, #0x0
+ addne r0, r0, r1
+ bx lr
+ .balign 4
+_020C2268: .word 0x021D28C0
+
+ arm_func_start FUN_020C226C
+FUN_020C226C:
+ ldr r1, _020C22CC ; =0x021D28C0
+ ldr r3, [r1, #0x0]
+ ldr r2, [r3, #0x8c]
+ ldr r1, [r2, #0x14]
+ cmp r1, #0x0
+ moveq r2, #0x0
+ addne r2, r2, r1
+ cmp r2, #0x0
+ moveq r0, #0x0
+ bxeq lr
+ cmp r0, #0x0
+ movlt r0, #0x0
+ bxlt lr
+ ldr r1, [r2, #0x0]
+ cmp r0, r1
+ movcs r0, #0x0
+ bxcs lr
+ add r0, r2, r0, lsl #0x2
+ ldr r1, [r0, #0x4]
+ ldr r0, [r3, #0x8c]
+ cmp r1, #0x0
+ moveq r0, #0x0
+ addne r0, r0, r1
+ bx lr
+ .balign 4
+_020C22CC: .word 0x021D28C0
+
+ arm_func_start FUN_020C22D0
+FUN_020C22D0: ; 0x020C22D0
+ ldr r1, _020C2330 ; =0x021D28C0
+ ldr r3, [r1, #0x0]
+ ldr r2, [r3, #0x8c]
+ ldr r1, [r2, #0x10]
+ cmp r1, #0x0
+ moveq r2, #0x0
+ addne r2, r2, r1
+ cmp r2, #0x0
+ moveq r0, #0x0
+ bxeq lr
+ cmp r0, #0x0
+ movlt r0, #0x0
+ bxlt lr
+ ldr r1, [r2, #0x0]
+ cmp r0, r1
+ movcs r0, #0x0
+ bxcs lr
+ add r0, r2, r0, lsl #0x2
+ ldr r1, [r0, #0x4]
+ ldr r0, [r3, #0x8c]
+ cmp r1, #0x0
+ moveq r0, #0x0
+ addne r0, r0, r1
+ bx lr
+ .balign 4
+_020C2330: .word 0x021D28C0
+
+ arm_func_start FUN_020C2334
+FUN_020C2334:
+ ldr r1, _020C2394 ; =0x021D28C0
+ ldr r3, [r1, #0x0]
+ ldr r2, [r3, #0x8c]
+ ldr r1, [r2, #0xc]
+ cmp r1, #0x0
+ moveq r2, #0x0
+ addne r2, r2, r1
+ cmp r2, #0x0
+ moveq r0, #0x0
+ bxeq lr
+ cmp r0, #0x0
+ movlt r0, #0x0
+ bxlt lr
+ ldr r1, [r2, #0x0]
+ cmp r0, r1
+ movcs r0, #0x0
+ bxcs lr
+ add r0, r2, r0, lsl #0x2
+ ldr r1, [r0, #0x4]
+ ldr r0, [r3, #0x8c]
+ cmp r1, #0x0
+ moveq r0, #0x0
+ addne r0, r0, r1
+ bx lr
+ .balign 4
+_020C2394: .word 0x021D28C0
+
+ arm_func_start FUN_020C2398
+FUN_020C2398:
+ ldr r1, _020C23F8 ; =0x021D28C0
+ ldr r3, [r1, #0x0]
+ ldr r2, [r3, #0x8c]
+ ldr r1, [r2, #0x8]
+ cmp r1, #0x0
+ moveq r2, #0x0
+ addne r2, r2, r1
+ cmp r2, #0x0
+ moveq r0, #0x0
+ bxeq lr
+ cmp r0, #0x0
+ movlt r0, #0x0
+ bxlt lr
+ ldr r1, [r2, #0x0]
+ cmp r0, r1
+ movcs r0, #0x0
+ bxcs lr
+ add r0, r2, r0, lsl #0x2
+ ldr r1, [r0, #0x4]
+ ldr r0, [r3, #0x8c]
+ cmp r1, #0x0
+ moveq r0, #0x0
+ addne r0, r0, r1
+ bx lr
+ .balign 4
+_020C23F8: .word 0x021D28C0
+
+ arm_func_start FUN_020C23FC
+FUN_020C23FC: ; 0x020C23FC
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ bl FUN_020C2398
+_020C2408: ; 0x020C2408
+ cmp r0, #0x0
+ moveq r0, #0x0
+ addne r0, r0, #0x4
+ add sp, sp, #0x4
+ ldmia sp!, {pc}
+
+ arm_func_start FUN_020C241C
+FUN_020C241C: ; 0x020C241C
+ ldr r0, _020C2428 ; =0x021D28C0
+ ldr r0, [r0, #0x0]
+ bx lr
+ .balign 4
+_020C2428: .word 0x021D28C0
+
+ arm_func_start FUN_020C242C
+FUN_020C242C: ; 0x020C242C
+ ldr r1, _020C2440 ; =0x021D28C0
+ ldr r2, [r1, #0x0]
+ str r0, [r1, #0x0]
+ mov r0, r2
+ bx lr
+ .balign 4
+_020C2440: .word 0x021D28C0
+
+ arm_func_start FUN_020C2444
+FUN_020C2444: ; 0x020C2444
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ mov r5, r0
+ mov r4, r1
+ mov r0, r4
+ mov r1, r5
+ mov r2, #0x30
+ bl MIi_CpuCopy32
+ ldr r0, [r5, #0x18]
+ mov r12, #0x0
+ cmp r0, #0x0
+ moveq r0, #0x0
+ addne r0, r4, r0
+ str r0, [r5, #0x8c]
+ ldr r0, [r5, #0x20]
+ cmp r0, #0x0
+ moveq r0, #0x0
+ addne r0, r4, r0
+ str r0, [r5, #0x84]
+ ldr r0, [r5, #0x10]
+ cmp r0, #0x0
+ moveq r0, #0x0
+ addne r0, r4, r0
+ str r0, [r5, #0x88]
+ ldr r2, [r5, #0x84]
+ ldr r0, [r2, #0x8]
+ cmp r0, #0x0
+ bls _020C24F0
+ mov r3, r12
+ mov r1, r12
+_020C24BC:
+ add r2, r2, #0xc
+ ldr r0, [r2, r3]
+ add r2, r2, r3
+ cmp r0, #0x0
+ moveq r0, r1
+ addne r0, r4, r0
+ str r0, [r2, #0x8]
+ ldr r2, [r5, #0x84]
+ add r12, r12, #0x1
+ ldr r0, [r2, #0x8]
+ add r3, r3, #0x10
+ cmp r12, r0
+ blo _020C24BC
+_020C24F0:
+ mov r1, #0x0
+ ldr r0, _020C2508 ; =0x021D28C0
+ str r1, [r5, #0x30]
+ str r5, [r0, #0x0]
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,pc}
+ .balign 4
+_020C2508: .word 0x021D28C0
+
+ arm_func_start FUN_020C250C
+FUN_020C250C:
+ stmdb sp!, {r4-r6,lr}
+ sub sp, sp, #0x8
+ mov r6, r0
+ mov r5, r1
+ mov r1, #0x0
+ mov r4, r2
+ mov r2, r1
+ add r0, r6, #0x34
+ bl FS_SeekFile
+_020C2530: ; 0x020C2530
+ cmp r0, #0x0
+ addeq sp, sp, #0x8
+ moveq r0, #0x0
+ ldmeqia sp!, {r4-r6,pc}
+_020C2540: ; 0x020C2540
+ mov r1, r6
+ add r0, r6, #0x34
+ mov r2, #0x30
+ bl FS_ReadFile
+ cmp r0, #0x30
+ addne sp, sp, #0x8
+ movne r0, #0x0
+ ldmneia sp!, {r4-r6,pc}
+_020C2560: ; 0x020C2560
+ cmp r5, #0x0
+ beq _020C26E0
+ mov r0, #0x0
+ str r0, [sp, #0x0]
+ ldr r1, [r6, #0x1c]
+ ldr r2, _020C26EC ; =FUN_020C20B4
+ mov r0, r5
+ mov r3, r6
+ bl FUN_020C2958
+ str r0, [r6, #0x8c]
+ ldr r0, [r6, #0x8c]
+ cmp r0, #0x0
+ addeq sp, sp, #0x8
+ moveq r0, #0x0
+ ldmeqia sp!, {r4-r6,pc}
+_020C259C: ; 0x020C259C
+ ldr r1, [r6, #0x18]
+ add r0, r6, #0x34
+ mov r2, #0x0
+ bl FS_SeekFile
+_020C25AC: ; 0x020C25AC
+ cmp r0, #0x0
+ addeq sp, sp, #0x8
+ moveq r0, #0x0
+ ldmeqia sp!, {r4-r6,pc}
+_020C25BC: ; 0x020C25BC
+ ldr r1, [r6, #0x8c]
+ ldr r2, [r6, #0x1c]
+ add r0, r6, #0x34
+ bl FS_ReadFile
+ ldr r1, [r6, #0x1c]
+ cmp r0, r1
+ addne sp, sp, #0x8
+ movne r0, #0x0
+ ldmneia sp!, {r4-r6,pc}
+_020C25E0: ; 0x020C25E0
+ mov r0, #0x0
+ str r0, [sp, #0x0]
+ ldr r1, [r6, #0x24]
+ ldr r2, _020C26F0 ; =FUN_020C20A8
+ mov r0, r5
+ mov r3, r6
+ bl FUN_020C2958
+ str r0, [r6, #0x84]
+ ldr r0, [r6, #0x84]
+ cmp r0, #0x0
+ addeq sp, sp, #0x8
+ moveq r0, #0x0
+ ldmeqia sp!, {r4-r6,pc}
+_020C2614: ; 0x020C2614
+ ldr r1, [r6, #0x20]
+ add r0, r6, #0x34
+ mov r2, #0x0
+ bl FS_SeekFile
+_020C2624: ; 0x020C2624
+ cmp r0, #0x0
+ addeq sp, sp, #0x8
+ moveq r0, #0x0
+ ldmeqia sp!, {r4-r6,pc}
+_020C2634: ; 0x020C2634
+ ldr r1, [r6, #0x84]
+ ldr r2, [r6, #0x24]
+ add r0, r6, #0x34
+ bl FS_ReadFile
+ ldr r1, [r6, #0x24]
+ cmp r0, r1
+ addne sp, sp, #0x8
+ movne r0, #0x0
+ ldmneia sp!, {r4-r6,pc}
+_020C2658: ; 0x020C2658
+ cmp r4, #0x0
+ beq _020C26E0
+ ldr r1, [r6, #0x14]
+ cmp r1, #0x0
+ beq _020C26E0
+ mov r4, #0x0
+ ldr r2, _020C26F4 ; =FUN_020C209C
+ mov r0, r5
+ mov r3, r6
+ str r4, [sp, #0x0]
+ bl FUN_020C2958
+ str r0, [r6, #0x88]
+ ldr r0, [r6, #0x88]
+ cmp r0, #0x0
+ addeq sp, sp, #0x8
+ moveq r0, r4
+ ldmeqia sp!, {r4-r6,pc}
+_020C269C: ; 0x020C269C
+ ldr r1, [r6, #0x10]
+ add r0, r6, #0x34
+ mov r2, r4
+ bl FS_SeekFile
+_020C26AC: ; 0x020C26AC
+ cmp r0, #0x0
+ addeq sp, sp, #0x8
+ moveq r0, r4
+ ldmeqia sp!, {r4-r6,pc}
+_020C26BC: ; 0x020C26BC
+ ldr r1, [r6, #0x88]
+ ldr r2, [r6, #0x14]
+ add r0, r6, #0x34
+ bl FS_ReadFile
+ ldr r1, [r6, #0x14]
+ cmp r0, r1
+ addne sp, sp, #0x8
+ movne r0, r4
+ ldmneia sp!, {r4-r6,pc}
+_020C26E0:
+ mov r0, #0x1
+ add sp, sp, #0x8
+ ldmia sp!, {r4-r6,pc}
+ .balign 4
+_020C26EC: .word FUN_020C20B4
+_020C26F0: .word FUN_020C20A8
+_020C26F4: .word FUN_020C209C
+
+ arm_func_start FUN_020C26F8
+FUN_020C26F8: ; 0x020C26F8
+ stmdb sp!, {r4-r6,lr}
+ mov r6, r0
+ mov r12, #0x0
+ str r12, [r6, #0x8c]
+ str r12, [r6, #0x84]
+ add r0, r6, #0x7c
+ mov r5, r2
+ mov r4, r3
+ str r12, [r6, #0x88]
+ bl FS_ConvertPathToFileID
+_020C2720: ; 0x020C2720
+ cmp r0, #0x0
+ ldmeqia sp!, {r4-r6,pc}
+_020C2728: ; 0x020C2728
+ add r0, r6, #0x34
+ bl FS_InitFile
+ add r1, r6, #0x7c
+ add r0, r6, #0x34
+ ldmia r1, {r1-r2}
+ bl FS_OpenFileFast
+_020C2740: ; 0x020C2740
+ cmp r0, #0x0
+ ldmeqia sp!, {r4-r6,pc}
+_020C2748: ; 0x020C2748
+ mov r3, #0x1
+ mov r0, r6
+ mov r1, r5
+ mov r2, r4
+ str r3, [r6, #0x30]
+ bl FUN_020C250C
+_020C2760: ; 0x020C2760
+ cmp r0, #0x0
+ ldrne r0, _020C2770 ; =0x021D28C0
+ strne r6, [r0, #0x0]
+ ldmia sp!, {r4-r6,pc}
+ .balign 4
+_020C2770: .word 0x021D28C0
+
+ arm_func_start FUN_020C2774
+FUN_020C2774: ; 0x020C2774
+ stmdb sp!, {r4,lr}
+ bl SND_GetCurrentCommandTag
+ mov r4, r0
+ mov r0, #0x1
+ bl SND_FlushCommand
+ mov r0, r4
+ bl SND_WaitForCommandProc
+ ldmia sp!, {r4,pc}
+
+ arm_func_start FUN_020C2794
+FUN_020C2794:
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ mov r5, r0
+ ldr r0, [r5, #0x0]
+ mov r1, #0x14
+ mov r2, #0x4
+ bl FUN_020AE638
+ movs r4, r0
+ addeq sp, sp, #0x4
+ moveq r0, #0x0
+ ldmeqia sp!, {r4-r5,pc}
+_020C27C0: ; 0x020C27C0
+ bl FUN_020C2818
+ mov r1, r4
+ add r0, r5, #0x4
+ bl FUN_020ADBE8
+ mov r0, #0x1
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,pc}
+
+ arm_func_start FUN_020C27DC
+FUN_020C27DC:
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ mov r5, r0
+ mov r4, r1
+ add r0, r5, #0x4
+ mov r1, #0xc
+ bl FUN_020ADC74
+ mov r0, r5
+ str r4, [r5, #0x0]
+ bl FUN_020C2794
+_020C2804: ; 0x020C2804
+ cmp r0, #0x0
+ movne r0, #0x1
+ moveq r0, #0x0
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,pc}
+
+ arm_func_start FUN_020C2818
+FUN_020C2818: ; 0x020C2818
+ ldr ip, _020C2824 ; =FUN_020ADC74
+ mov r1, #0x0
+ bx r12
+ .balign 4
+_020C2824: .word FUN_020ADC74
+
+ arm_func_start FUN_020C2828
+FUN_020C2828: ; 0x020C2828
+ stmdb sp!, {r4-r11,lr}
+ sub sp, sp, #0x4
+ mov r7, #0x0
+ movs r9, r1
+ mov r10, r0
+ mov r6, r7
+ bne _020C2850
+ bl FUN_020C29C0
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r11,pc}
+_020C2850:
+ ldrh r0, [r10, #0xc]
+ cmp r9, r0
+ bge _020C28D8
+ mov r11, r7
+ add r5, r10, #0x4
+ mov r4, #0x1
+_020C2868:
+ mov r0, r5
+ mov r1, r11
+ bl FUN_020ADA84
+ mov r1, r7
+ mov r8, r0
+ bl FUN_020ADA84
+ movs r7, r0
+ beq _020C28C0
+_020C2888:
+ ldr r12, [r7, #0xc]
+ cmp r12, #0x0
+ beq _020C28AC
+ ldr r1, [r7, #0x8]
+ ldr r2, [r7, #0x10]
+ ldr r3, [r7, #0x14]
+ add r0, r7, #0x20
+ blx r12
+ mov r6, r4
+_020C28AC:
+ mov r0, r8
+ mov r1, r7
+ bl FUN_020ADA84
+ movs r7, r0
+ bne _020C2888
+_020C28C0:
+ mov r0, r5
+ mov r1, r8
+ bl FUN_020ADAB0
+ ldrh r0, [r10, #0xc]
+ cmp r9, r0
+ blt _020C2868
+_020C28D8:
+ ldr r0, [r10, #0x0]
+ mov r1, r9
+ bl FUN_020AE554
+_020C28E4: ; 0x020C28E4
+ cmp r6, #0x0
+ beq _020C28F0
+ bl FUN_020C2774
+_020C28F0:
+ ldrh r1, [r10, #0xc]
+ ldr r0, [r10, #0x0]
+ bl FUN_020AE5B0
+ mov r0, r10
+ bl FUN_020C2794
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r11,pc}
+
+ arm_func_start FUN_020C290C
+FUN_020C290C: ; 0x020C290C
+ stmdb sp!, {r4,lr}
+ mov r4, r0
+ ldrh r1, [r4, #0xc]
+ ldr r0, [r4, #0x0]
+ bl FUN_020AE5B0
+_020C2920: ; 0x020C2920
+ cmp r0, #0x0
+ mvneq r0, #0x0
+ ldmeqia sp!, {r4,pc}
+_020C292C: ; 0x020C292C
+ mov r0, r4
+ bl FUN_020C2794
+_020C2934: ; 0x020C2934
+ cmp r0, #0x0
+ ldrneh r0, [r4, #0xc]
+ subne r0, r0, #0x1
+ ldmneia sp!, {r4,pc}
+_020C2944: ; 0x020C2944
+ ldr r0, [r4, #0x0]
+ mov r1, #0x0
+ bl FUN_020AE554
+_020C2950: ; 0x020C2950
+ mvn r0, #0x0
+ ldmia sp!, {r4,pc}
+
+ arm_func_start FUN_020C2958
+FUN_020C2958: ; 0x020C2958
+ stmdb sp!, {r4-r8,lr}
+ mov r7, r1
+ mov r8, r0
+ add r0, r7, #0x1f
+ bic r1, r0, #0x1f
+ mov r6, r2
+ ldr r0, [r8, #0x0]
+ add r1, r1, #0x20
+ mov r2, #0x20
+ mov r5, r3
+ bl FUN_020AE638
+ movs r4, r0
+ moveq r0, #0x0
+ ldmeqia sp!, {r4-r8,pc}
+_020C2990: ; 0x020C2990
+ add r0, r8, #0x4
+ mov r1, #0x0
+ bl FUN_020ADA84
+ str r7, [r4, #0x8]
+ str r6, [r4, #0xc]
+ ldr r2, [sp, #0x18]
+ str r5, [r4, #0x10]
+ mov r1, r4
+ str r2, [r4, #0x14]
+ bl FUN_020ADBE8
+ add r0, r4, #0x20
+ ldmia sp!, {r4-r8,pc}
+
+ arm_func_start FUN_020C29C0
+FUN_020C29C0:
+ stmdb sp!, {r4-r10,lr}
+ mov r8, r0
+ mov r5, #0x0
+ mov r1, r5
+ add r0, r8, #0x4
+ bl FUN_020ADA84
+ movs r7, r0
+ beq _020C2A58
+ add r9, r8, #0x4
+ mov r10, #0x1
+ mov r4, r5
+_020C29EC:
+ mov r0, r7
+ mov r1, r4
+ bl FUN_020ADA84
+ movs r6, r0
+ beq _020C2A38
+_020C2A00:
+ ldr r12, [r6, #0xc]
+ cmp r12, #0x0
+ beq _020C2A24
+ ldr r1, [r6, #0x8]
+ ldr r2, [r6, #0x10]
+ ldr r3, [r6, #0x14]
+ add r0, r6, #0x20
+ blx r12
+ mov r5, r10
+_020C2A24:
+ mov r0, r7
+ mov r1, r6
+ bl FUN_020ADA84
+ movs r6, r0
+ bne _020C2A00
+_020C2A38:
+ mov r0, r9
+ mov r1, r7
+ bl FUN_020ADAB0
+ mov r0, r9
+ mov r1, r4
+ bl FUN_020ADA84
+ movs r7, r0
+ bne _020C29EC
+_020C2A58:
+ ldr r0, [r8, #0x0]
+ mov r1, #0x3
+ bl FUN_020AE600
+_020C2A64: ; 0x020C2A64
+ cmp r5, #0x0
+ beq _020C2A70
+ bl FUN_020C2774
+_020C2A70:
+ mov r0, r8
+ bl FUN_020C2794
+ ldmia sp!, {r4-r10,pc}
+
+ arm_func_start FUN_020C2A7C
+FUN_020C2A7C: ; 0x020C2A7C
+ stmdb sp!, {r4,lr}
+ mov r4, r0
+ bl FUN_020C29C0
+_020C2A88: ; 0x020C2A88
+ ldr r0, [r4, #0x0]
+ bl thunk_FUN_020adc8c_2
+ ldmia sp!, {r4,pc}
+
+ arm_func_start FUN_020C2A94
+FUN_020C2A94:
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ add r2, r0, #0x3
+ add r0, r0, r1
+ bic r5, r2, #0x3
+ cmp r5, r0
+ addhi sp, sp, #0x4
+ movhi r0, #0x0
+ ldmhiia sp!, {r4-r5,pc}
+_020C2AB8: ; 0x020C2AB8
+ sub r1, r0, r5
+ cmp r1, #0x10
+ addcc sp, sp, #0x4
+ movcc r0, #0x0
+ ldmccia sp!, {r4-r5,pc}
+_020C2ACC: ; 0x020C2ACC
+ add r0, r5, #0x10
+ sub r1, r1, #0x10
+ mov r2, #0x0
+ bl FUN_020AE684
+ movs r4, r0
+ addeq sp, sp, #0x4
+ moveq r0, #0x0
+ ldmeqia sp!, {r4-r5,pc}
+_020C2AEC: ; 0x020C2AEC
+ mov r0, r5
+ mov r1, r4
+ bl FUN_020C27DC
+_020C2AF8: ; 0x020C2AF8
+ cmp r0, #0x0
+ addne sp, sp, #0x4
+ movne r0, r5
+ ldmneia sp!, {r4-r5,pc}
+_020C2B08: ; 0x020C2B08
+ mov r0, r4
+ bl thunk_FUN_020adc8c_2
+_020C2B10: ; 0x020C2B10
+ mov r0, #0x0
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,pc}
+
+ arm_func_start FUN_020C2B1C
+FUN_020C2B1C:
+ stmdb sp!, {r4-r10,lr}
+ sub sp, sp, #0x20
+ mov r8, r0
+ add r0, sp, #0x8
+ mov r7, r1
+ mov r6, r2
+ mov r5, r3
+ ldr r4, [sp, #0x40]
+ bl SND_GetFirstInstDataPos
+ ldr r1, [sp, #0x8]
+ ldr r0, [sp, #0xc]
+ str r1, [sp, #0x0]
+ str r0, [sp, #0x4]
+ cmp r7, #0x0
+ add r2, sp, #0x0
+ addeq sp, sp, #0x20
+ moveq r0, #0x0
+ ldmeqia sp!, {r4-r10,pc}
+_020C2B64: ; 0x020C2B64
+ add r1, sp, #0x10
+ mov r0, r7
+ bl SND_GetNextInstData
+_020C2B70: ; 0x020C2B70
+ cmp r0, #0x0
+ beq _020C2BD4
+ add r10, sp, #0x10
+ add r9, sp, #0x0
+_020C2B80:
+ ldrb r0, [sp, #0x10]
+ cmp r0, #0x1
+ bne _020C2BBC
+ ldrh r0, [sp, #0x14]
+ cmp r6, r0
+ bne _020C2BBC
+ ldrh r1, [sp, #0x12]
+ mov r0, r8
+ mov r2, r5
+ mov r3, r4
+ bl FUN_020C2BE0
+_020C2BAC: ; 0x020C2BAC
+ cmp r0, #0x0
+ addeq sp, sp, #0x20
+ moveq r0, #0x0
+ ldmeqia sp!, {r4-r10,pc}
+_020C2BBC:
+ mov r0, r7
+ mov r1, r10
+ mov r2, r9
+ bl SND_GetNextInstData
+_020C2BCC: ; 0x020C2BCC
+ cmp r0, #0x0
+ bne _020C2B80
+_020C2BD4:
+ mov r0, #0x1
+ add sp, sp, #0x20
+ ldmia sp!, {r4-r10,pc}
+
+ arm_func_start FUN_020C2BE0
+FUN_020C2BE0:
+ stmdb sp!, {r4-r9,lr}
+ sub sp, sp, #0x4
+ mov r7, r0
+ mov r6, r1
+ mov r5, r2
+ mov r4, r3
+ bl SND_GetWaveDataAddress
+_020C2BFC: ; 0x020C2BFC
+ cmp r0, #0x0
+ addne sp, sp, #0x4
+ movne r0, #0x1
+ ldmneia sp!, {r4-r9,pc}
+_020C2C0C: ; 0x020C2C0C
+ mov r0, r7
+ bl SND_GetWaveDataCount
+ ldr r1, [r7, #0x38]
+ sub r0, r0, #0x1
+ add r1, r1, r6
+ add r1, r7, r1, lsl #0x2
+ cmp r6, r0
+ ldrcc r0, [r1, #0x40]
+ ldr r8, [r1, #0x3c]
+ ldrcs r0, [r7, #0x8]
+ cmp r4, #0x0
+ sub r9, r0, r8
+ addeq sp, sp, #0x4
+ moveq r0, #0x0
+ ldmeqia sp!, {r4-r9,pc}
+_020C2C48: ; 0x020C2C48
+ ldr r2, _020C2CBC ; =FUN_020C2CC0
+ mov r0, r4
+ mov r3, r7
+ add r1, r9, #0x20
+ str r6, [sp, #0x0]
+ bl FUN_020C2958
+ movs r4, r0
+ addeq sp, sp, #0x4
+ moveq r0, #0x0
+ ldmeqia sp!, {r4-r9,pc}
+_020C2C70: ; 0x020C2C70
+ mov r0, r5
+ mov r1, r4
+ mov r2, r9
+ mov r3, r8
+ bl FUN_020C2104
+_020C2C84: ; 0x020C2C84
+ cmp r9, r0
+ addne sp, sp, #0x4
+ movne r0, #0x0
+ ldmneia sp!, {r4-r9,pc}
+_020C2C94: ; 0x020C2C94
+ mov r0, r4
+ mov r1, r9
+ bl DC_StoreRange
+ mov r0, r7
+ mov r1, r6
+ mov r2, r4
+ bl SND_SetWaveDataAddress
+ mov r0, #0x1
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r9,pc}
+ .balign 4
+_020C2CBC: .word FUN_020C2CC0
+
+ arm_func_start FUN_020C2CC0
+FUN_020C2CC0: ; 0x020C2CC0
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0x4
+ mov r5, r2
+ mov r7, r0
+ mov r4, r3
+ mov r6, r1
+ mov r0, r5
+ mov r1, r4
+ bl SND_GetWaveDataAddress
+_020C2CE4: ; 0x020C2CE4
+ cmp r7, r0
+ bne _020C2CFC
+ mov r0, r5
+ mov r1, r4
+ mov r2, #0x0
+ bl SND_SetWaveDataAddress
+_020C2CFC:
+ mov r0, r7
+ add r1, r7, r6
+ bl SND_InvalidateWaveData
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r7,pc}
+
+ arm_func_start FUN_020C2D10
+FUN_020C2D10: ; 0x020C2D10
+ stmdb sp!, {r4,lr}
+ mov r1, r2
+ mov r4, r0
+ mov r2, r3
+ bl FUN_020C2DD0
+ mov r0, r4
+ bl SND_DestroyWaveArc
+ ldmia sp!, {r4,pc}
+
+ arm_func_start FUN_020C2D30
+FUN_020C2D30: ; 0x020C2D30
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ mov r4, r1
+ mov r1, r2
+ mov r5, r0
+ mov r2, r3
+ bl FUN_020C2DD0
+ mov r0, r5
+ add r1, r5, r4
+ bl SND_InvalidateWaveData
+ mov r0, r5
+ bl SND_DestroyWaveArc
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,pc}
+
+ arm_func_start FUN_020C2D68
+FUN_020C2D68: ; 0x020C2D68
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ mov r4, r1
+ mov r1, r2
+ mov r5, r0
+ mov r2, r3
+ bl FUN_020C2DD0
+ mov r0, r5
+ add r1, r5, r4
+ bl SND_InvalidateBankData
+ mov r0, r5
+ bl SND_DestroyBank
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,pc}
+
+ arm_func_start FUN_020C2DA0
+FUN_020C2DA0: ; 0x020C2DA0
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ mov r4, r1
+ mov r1, r2
+ mov r5, r0
+ mov r2, r3
+ bl FUN_020C2DD0
+ mov r0, r5
+ add r1, r5, r4
+ bl SND_InvalidateSeqData
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,pc}
+
+ arm_func_start FUN_020C2DD0
+FUN_020C2DD0: ; 0x020C2DD0
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0x4
+ movs r5, r1
+ mov r7, r0
+ mov r6, r2
+ addeq sp, sp, #0x4
+ ldmeqia sp!, {r4-r7,pc}
+_020C2DEC: ; 0x020C2DEC
+ bl OS_DisableInterrupts
+ mov r4, r0
+ mov r0, r5
+ bl FUN_020C242C
+ mov r5, r0
+ mov r0, r6
+ bl FUN_020C20DC
+_020C2E08: ; 0x020C2E08
+ cmp r7, r0
+ bne _020C2E1C
+ mov r0, r6
+ mov r1, #0x0
+ bl FUN_020C20C0
+_020C2E1C:
+ mov r0, r5
+ bl FUN_020C242C
+ mov r0, r4
+ bl OS_RestoreInterrupts
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r7,pc}
+
+ arm_func_start FUN_020C2E34
+FUN_020C2E34: ; 0x020C2E34
+ stmdb sp!, {r4-r9,lr}
+ sub sp, sp, #0x4
+ mov r9, r0
+ mov r8, r1
+ mov r7, r2
+ bl FUN_020C20DC
+ movs r6, r0
+ bne _020C2F40
+ ldr r1, _020C2F4C ; =0x021D28C4
+ mov r0, r9
+ mov r2, #0x3c
+ mov r3, #0x0
+ bl FUN_020C2104
+ cmp r0, #0x3c
+ addne sp, sp, #0x4
+ movne r0, #0x0
+ ldmneia sp!, {r4-r9,pc}
+_020C2E78: ; 0x020C2E78
+ ldr r0, _020C2F4C ; =0x021D28C4
+ cmp r8, #0x0
+ ldr r0, [r0, #0x38]
+ addeq sp, sp, #0x4
+ mov r4, r0, lsl #0x2
+ mov r0, r4, lsl #0x1
+ add r5, r0, #0x3c
+ moveq r0, #0x0
+ ldmeqia sp!, {r4-r9,pc}
+_020C2E9C: ; 0x020C2E9C
+ cmp r7, #0x0
+ moveq r3, #0x0
+ beq _020C2EB0
+ bl FUN_020C241C
+ mov r3, r0
+_020C2EB0:
+ ldr r2, _020C2F50 ; =FUN_020C2D10
+ mov r0, r8
+ add r1, r5, #0x20
+ str r9, [sp, #0x0]
+ bl FUN_020C2958
+ movs r6, r0
+ addeq sp, sp, #0x4
+ moveq r0, #0x0
+ ldmeqia sp!, {r4-r9,pc}
+_020C2ED4: ; 0x020C2ED4
+ mov r0, r9
+ mov r1, r6
+ add r2, r4, #0x3c
+ mov r3, #0x0
+ bl FUN_020C2104
+ add r1, r4, #0x3c
+ cmp r0, r1
+ addne sp, sp, #0x4
+ movne r0, #0x0
+ ldmneia sp!, {r4-r9,pc}
+_020C2EFC: ; 0x020C2EFC
+ ldr r1, [r6, #0x38]
+ add r0, r6, #0x3c
+ mov r2, r4
+ add r1, r0, r1, lsl #0x2
+ bl MI_CpuCopy8
+ mov r2, r4
+ add r0, r6, #0x3c
+ mov r1, #0x0
+ bl MI_CpuFill8
+ mov r0, r6
+ mov r1, r5
+ bl DC_StoreRange
+_020C2F2C: ; 0x020C2F2C
+ cmp r7, #0x0
+ beq _020C2F40
+ mov r0, r9
+ mov r1, r6
+ bl FUN_020C20C0
+_020C2F40:
+ mov r0, r6
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r9,pc}
+ .balign 4
+_020C2F4C: .word 0x021D28C4
+_020C2F50: .word FUN_020C2D10
+
+ arm_func_start FUN_020C2F54
+FUN_020C2F54:
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0x4
+ mov r7, r0
+ mov r6, r1
+ mov r5, r2
+ bl FUN_020C20DC
+ movs r4, r0
+ bne _020C2FBC
+ cmp r5, #0x0
+ moveq r2, #0x0
+ beq _020C2F88
+ bl FUN_020C241C
+ mov r2, r0
+_020C2F88:
+ ldr r1, _020C2FC8 ; =FUN_020C2D30
+ mov r0, r7
+ mov r3, r7
+ str r6, [sp, #0x0]
+ bl FUN_020C3134
+ mov r4, r0
+ cmp r5, #0x0
+ beq _020C2FBC
+ cmp r4, #0x0
+ beq _020C2FBC
+ mov r0, r7
+ mov r1, r4
+ bl FUN_020C20C0
+_020C2FBC:
+ mov r0, r4
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r7,pc}
+ .balign 4
+_020C2FC8: .word FUN_020C2D30
+
+ arm_func_start FUN_020C2FCC
+FUN_020C2FCC: ; 0x020C2FCC
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0x4
+ mov r7, r0
+ mov r6, r1
+ mov r5, r2
+ bl FUN_020C20DC
+ movs r4, r0
+ bne _020C3034
+ cmp r5, #0x0
+ moveq r2, #0x0
+ beq _020C3000
+ bl FUN_020C241C
+ mov r2, r0
+_020C3000:
+ ldr r1, _020C3040 ; =FUN_020C2D68
+ mov r0, r7
+ mov r3, r7
+ str r6, [sp, #0x0]
+ bl FUN_020C3134
+ mov r4, r0
+ cmp r5, #0x0
+ beq _020C3034
+ cmp r4, #0x0
+ beq _020C3034
+ mov r0, r7
+ mov r1, r4
+ bl FUN_020C20C0
+_020C3034:
+ mov r0, r4
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r7,pc}
+ .balign 4
+_020C3040: .word FUN_020C2D68
+
+ arm_func_start FUN_020C3044
+FUN_020C3044:
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0x4
+ mov r7, r0
+ mov r6, r1
+ mov r5, r2
+ bl FUN_020C20DC
+ movs r4, r0
+ bne _020C30AC
+ cmp r5, #0x0
+ moveq r2, #0x0
+ beq _020C3078
+ bl FUN_020C241C
+ mov r2, r0
+_020C3078:
+ ldr r1, _020C30B8 ; =FUN_020C2DA0
+ mov r0, r7
+ mov r3, r7
+ str r6, [sp, #0x0]
+ bl FUN_020C3134
+ mov r4, r0
+ cmp r5, #0x0
+ beq _020C30AC
+ cmp r4, #0x0
+ beq _020C30AC
+ mov r0, r7
+ mov r1, r4
+ bl FUN_020C20C0
+_020C30AC:
+ mov r0, r4
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r7,pc}
+ .balign 4
+_020C30B8: .word FUN_020C2DA0
+
+ arm_func_start FUN_020C30BC
+FUN_020C30BC:
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0x4
+ mov r7, r0
+ mov r6, r1
+ mov r5, r2
+ bl FUN_020C20DC
+ movs r4, r0
+ bne _020C3124
+ cmp r5, #0x0
+ moveq r2, #0x0
+ beq _020C30F0
+ bl FUN_020C241C
+ mov r2, r0
+_020C30F0:
+ ldr r1, _020C3130 ; =FUN_020C2DA0
+ mov r0, r7
+ mov r3, r7
+ str r6, [sp, #0x0]
+ bl FUN_020C3134
+ mov r4, r0
+ cmp r5, #0x0
+ beq _020C3124
+ cmp r4, #0x0
+ beq _020C3124
+ mov r0, r7
+ mov r1, r4
+ bl FUN_020C20C0
+_020C3124:
+ mov r0, r4
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r7,pc}
+ .balign 4
+_020C3130: .word FUN_020C2DA0
+
+ arm_func_start FUN_020C3134
+FUN_020C3134: ; 0x020C3134
+ stmdb sp!, {r4-r8,lr}
+ sub sp, sp, #0x8
+ mov r8, r0
+ mov r7, r1
+ mov r6, r2
+ mov r4, r3
+ bl FUN_020C217C
+ movs r5, r0
+ addeq sp, sp, #0x8
+ moveq r0, #0x0
+ ldmeqia sp!, {r4-r8,pc}
+_020C3160: ; 0x020C3160
+ ldr r0, [sp, #0x20]
+ cmp r0, #0x0
+ addeq sp, sp, #0x8
+ moveq r0, #0x0
+ ldmeqia sp!, {r4-r8,pc}
+_020C3174: ; 0x020C3174
+ mov r2, r7
+ mov r3, r6
+ add r1, r5, #0x20
+ str r4, [sp, #0x0]
+ bl FUN_020C2958
+ movs r4, r0
+ addeq sp, sp, #0x8
+ moveq r0, #0x0
+ ldmeqia sp!, {r4-r8,pc}
+_020C3198: ; 0x020C3198
+ mov r0, r8
+ mov r1, r4
+ mov r2, r5
+ mov r3, #0x0
+ bl FUN_020C2104
+_020C31AC: ; 0x020C31AC
+ cmp r5, r0
+ addne sp, sp, #0x8
+ movne r0, #0x0
+ ldmneia sp!, {r4-r8,pc}
+_020C31BC: ; 0x020C31BC
+ mov r0, r4
+ mov r1, r5
+ bl DC_StoreRange
+ mov r0, r4
+ add sp, sp, #0x8
+ ldmia sp!, {r4-r8,pc}
+
+ arm_func_start FUN_020C31D4
+FUN_020C31D4:
+ stmdb sp!, {r4-r6,lr}
+ mov r6, r1
+ mov r5, r2
+ mov r4, r3
+ bl FUN_020C226C
+_020C31E8: ; 0x020C31E8
+ cmp r0, #0x0
+ moveq r0, #0x5
+ ldmeqia sp!, {r4-r6,pc}
+_020C31F4: ; 0x020C31F4
+ ands r1, r6, #0x4
+ beq _020C324C
+ ldrb r1, [r0, #0x3]
+ ands r1, r1, #0x1
+ beq _020C3224
+ ldr r0, [r0, #0x0]
+ mov r1, r5
+ mov r0, r0, lsl #0x8
+ mov r2, r4
+ mov r0, r0, lsr #0x8
+ bl FUN_020C2E34
+ b _020C323C
+_020C3224:
+ ldr r0, [r0, #0x0]
+ mov r1, r5
+ mov r0, r0, lsl #0x8
+ mov r2, r4
+ mov r0, r0, lsr #0x8
+ bl FUN_020C2F54
+_020C323C:
+ cmp r0, #0x0
+ bne _020C325C
+ mov r0, #0x9
+ ldmia sp!, {r4-r6,pc}
+_020C324C:
+ ldr r0, [r0, #0x0]
+ mov r0, r0, lsl #0x8
+ mov r0, r0, lsr #0x8
+ bl FUN_020C20DC
+_020C325C:
+ ldr r1, [sp, #0x10]
+ cmp r1, #0x0
+ strne r0, [r1, #0x0]
+ mov r0, #0x0
+ ldmia sp!, {r4-r6,pc}
+
+ arm_func_start FUN_020C3270
+FUN_020C3270:
+ stmdb sp!, {r4-r11,lr}
+ sub sp, sp, #0xc
+ mov r10, r1
+ mov r9, r2
+ mov r11, r3
+ bl FUN_020C22D0
+ movs r8, r0
+ addeq sp, sp, #0xc
+ moveq r0, #0x4
+ ldmeqia sp!, {r4-r11,pc}
+_020C3298: ; 0x020C3298
+ ands r0, r10, #0x2
+ beq _020C32C4
+ ldr r0, [r8, #0x0]
+ mov r1, r9
+ mov r2, r11
+ bl FUN_020C2FCC
+ movs r7, r0
+ bne _020C32D0
+ add sp, sp, #0xc
+ mov r0, #0x8
+ ldmia sp!, {r4-r11,pc}
+_020C32C4:
+ ldr r0, [r8, #0x0]
+ bl FUN_020C20DC
+ mov r7, r0
+_020C32D0:
+ and r5, r10, #0x4
+ mov r6, #0x0
+_020C32D8:
+ add r0, r8, r6, lsl #0x1
+ ldrh r0, [r0, #0x4]
+ ldr r1, _020C33B4 ; =0x0000FFFF
+ cmp r0, r1
+ beq _020C3390
+ bl FUN_020C226C
+ movs r4, r0
+ addeq sp, sp, #0xc
+ moveq r0, #0x5
+ ldmeqia sp!, {r4-r11,pc}
+_020C3300: ; 0x020C3300
+ add r0, sp, #0x4
+ str r0, [sp, #0x0]
+ add r0, r8, r6, lsl #0x1
+ ldrh r0, [r0, #0x4]
+ mov r1, r10
+ mov r2, r9
+ mov r3, r11
+ bl FUN_020C31D4
+_020C3320: ; 0x020C3320
+ cmp r0, #0x0
+ addne sp, sp, #0xc
+ ldmneia sp!, {r4-r11,pc}
+_020C332C: ; 0x020C332C
+ ldrb r0, [r4, #0x3]
+ ands r0, r0, #0x1
+ beq _020C3370
+ cmp r5, #0x0
+ beq _020C3370
+ str r9, [sp, #0x0]
+ ldr r1, [r4, #0x0]
+ ldr r0, [sp, #0x4]
+ mov r3, r1, lsl #0x8
+ mov r1, r7
+ mov r2, r6
+ mov r3, r3, lsr #0x8
+ bl FUN_020C2B1C
+_020C3360: ; 0x020C3360
+ cmp r0, #0x0
+ addeq sp, sp, #0xc
+ moveq r0, #0x9
+ ldmeqia sp!, {r4-r11,pc}
+_020C3370:
+ cmp r7, #0x0
+ beq _020C3390
+ ldr r2, [sp, #0x4]
+ cmp r2, #0x0
+ beq _020C3390
+ mov r0, r7
+ mov r1, r6
+ bl SND_AssignWaveArc
+_020C3390:
+ add r6, r6, #0x1
+ cmp r6, #0x4
+ blt _020C32D8
+ ldr r0, [sp, #0x30]
+ cmp r0, #0x0
+ strne r7, [r0, #0x0]
+ mov r0, #0x0
+ add sp, sp, #0xc
+ ldmia sp!, {r4-r11,pc}
+ .balign 4
+_020C33B4: .word 0x0000FFFF
+
+ arm_func_start FUN_020C33B8
+FUN_020C33B8:
+ stmdb sp!, {r4-r6,lr}
+ mov r6, r1
+ mov r5, r2
+ mov r4, r3
+ bl FUN_020C2334
+_020C33CC: ; 0x020C33CC
+ cmp r0, #0x0
+ moveq r0, #0x3
+ ldmeqia sp!, {r4-r6,pc}
+_020C33D8: ; 0x020C33D8
+ ands r1, r6, #0x8
+ beq _020C3400
+ ldr r0, [r0, #0x0]
+ mov r1, r5
+ mov r2, r4
+ bl FUN_020C3044
+_020C33F0: ; 0x020C33F0
+ cmp r0, #0x0
+ bne _020C3408
+ mov r0, #0x7
+ ldmia sp!, {r4-r6,pc}
+_020C3400:
+ ldr r0, [r0, #0x0]
+ bl FUN_020C20DC
+_020C3408:
+ ldr r1, [sp, #0x10]
+ cmp r1, #0x0
+ strne r0, [r1, #0x0]
+ mov r0, #0x0
+ ldmia sp!, {r4-r6,pc}
+
+ arm_func_start FUN_020C341C
+FUN_020C341C:
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0x4
+ mov r7, r1
+ mov r6, r2
+ mov r5, r3
+ bl FUN_020C2398
+ movs r4, r0
+ addeq sp, sp, #0x4
+ moveq r0, #0x2
+ ldmeqia sp!, {r4-r7,pc}
+_020C3444: ; 0x020C3444
+ mov r0, #0x0
+ str r0, [sp, #0x0]
+ ldrh r0, [r4, #0x4]
+ mov r1, r7
+ mov r2, r6
+ mov r3, r5
+ bl FUN_020C3270
+_020C3460: ; 0x020C3460
+ cmp r0, #0x0
+ addne sp, sp, #0x4
+ ldmneia sp!, {r4-r7,pc}
+_020C346C: ; 0x020C346C
+ ands r0, r7, #0x1
+ beq _020C3498
+ ldr r0, [r4, #0x0]
+ mov r1, r6
+ mov r2, r5
+ bl FUN_020C30BC
+_020C3484: ; 0x020C3484
+ cmp r0, #0x0
+ bne _020C34A0
+ add sp, sp, #0x4
+ mov r0, #0x6
+ ldmia sp!, {r4-r7,pc}
+_020C3498:
+ ldr r0, [r4, #0x0]
+ bl FUN_020C20DC
+_020C34A0:
+ ldr r1, [sp, #0x18]
+ cmp r1, #0x0
+ strne r0, [r1, #0x0]
+ mov r0, #0x0
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r7,pc}
+
+ arm_func_start FUN_020C34B8
+FUN_020C34B8:
+ stmdb sp!, {r4-r11,lr}
+ sub sp, sp, #0xc
+ mov r9, r1
+ bl FUN_020C21A4
+ movs r8, r0
+ addeq sp, sp, #0xc
+ moveq r0, #0x1
+ ldmeqia sp!, {r4-r11,pc}
+_020C34D8: ; 0x020C34D8
+ ldr r0, [r8, #0x0]
+ mov r7, #0x0
+ cmp r0, #0x0
+ bls _020C35D4
+ add r6, r8, #0x4
+ str r7, [sp, #0x4]
+ mov r11, r7
+ mov r10, r7
+ mov r5, r7
+ mov r4, #0x1
+_020C3500:
+ ldrb r0, [r6, #0x0]
+ cmp r0, #0x3
+ addls pc, pc, r0, lsl #0x2
+ b _020C35C0
+_020C3510:
+ b _020C3520
+_020C3514:
+ b _020C3570
+_020C3518:
+ b _020C3598
+_020C351C:
+ b _020C3548
+_020C3520:
+ str r5, [sp, #0x0]
+ ldrb r1, [r6, #0x1]
+ ldr r0, [r6, #0x4]
+ mov r2, r9
+ mov r3, r4
+ bl FUN_020C341C
+_020C3538: ; 0x020C3538
+ cmp r0, #0x0
+ beq _020C35C0
+ add sp, sp, #0xc
+ ldmia sp!, {r4-r11,pc}
+_020C3548:
+ str r10, [sp, #0x0]
+ ldrb r1, [r6, #0x1]
+ ldr r0, [r6, #0x4]
+ mov r2, r9
+ mov r3, r4
+ bl FUN_020C33B8
+_020C3560: ; 0x020C3560
+ cmp r0, #0x0
+ beq _020C35C0
+ add sp, sp, #0xc
+ ldmia sp!, {r4-r11,pc}
+_020C3570:
+ str r11, [sp, #0x0]
+ ldrb r1, [r6, #0x1]
+ ldr r0, [r6, #0x4]
+ mov r2, r9
+ mov r3, r4
+ bl FUN_020C3270
+_020C3588: ; 0x020C3588
+ cmp r0, #0x0
+ beq _020C35C0
+ add sp, sp, #0xc
+ ldmia sp!, {r4-r11,pc}
+_020C3598:
+ ldr r0, [sp, #0x4]
+ mov r2, r9
+ str r0, [sp, #0x0]
+ ldrb r1, [r6, #0x1]
+ ldr r0, [r6, #0x4]
+ mov r3, r4
+ bl FUN_020C31D4
+_020C35B4: ; 0x020C35B4
+ cmp r0, #0x0
+ addne sp, sp, #0xc
+ ldmneia sp!, {r4-r11,pc}
+_020C35C0:
+ ldr r0, [r8, #0x0]
+ add r7, r7, #0x1
+ cmp r7, r0
+ add r6, r6, #0x8
+ blo _020C3500
+_020C35D4:
+ mov r0, #0x0
+ add sp, sp, #0xc
+ ldmia sp!, {r4-r11,pc}
+
+ arm_func_start FUN_020C35E0
+FUN_020C35E0: ; 0x020C35E0
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ mov r12, #0x0
+ mov r3, #0x1
+ str r12, [sp, #0x0]
+ bl FUN_020C341C
+_020C35F8: ; 0x020C35F8
+ cmp r0, #0x0
+ moveq r0, #0x1
+ movne r0, #0x0
+ add sp, sp, #0x4
+ ldmia sp!, {pc}
+
+ arm_func_start FUN_020C360C
+FUN_020C360C: ; 0x020C360C
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ mov r2, r1
+ mov r12, #0x0
+ mov r1, #0xff
+ mov r3, #0x1
+ str r12, [sp, #0x0]
+ bl FUN_020C31D4
+_020C362C: ; 0x020C362C
+ cmp r0, #0x0
+ moveq r0, #0x1
+ movne r0, #0x0
+ add sp, sp, #0x4
+ ldmia sp!, {pc}
+
+ arm_func_start FUN_020C3640
+FUN_020C3640: ; 0x020C3640
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ mov r2, r1
+ mov r12, #0x0
+ mov r1, #0xff
+ mov r3, #0x1
+ str r12, [sp, #0x0]
+ bl FUN_020C3270
+_020C3660: ; 0x020C3660
+ cmp r0, #0x0
+ moveq r0, #0x1
+ movne r0, #0x0
+ add sp, sp, #0x4
+ ldmia sp!, {pc}
+
+ arm_func_start FUN_020C3674
+FUN_020C3674: ; 0x020C3674
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ mov r2, r1
+ mov r12, #0x0
+ mov r1, #0xff
+ mov r3, #0x1
+ str r12, [sp, #0x0]
+ bl FUN_020C341C
+_020C3694: ; 0x020C3694
+ cmp r0, #0x0
+ moveq r0, #0x1
+ movne r0, #0x0
+ add sp, sp, #0x4
+ ldmia sp!, {pc}
+
+ arm_func_start FUN_020C36A8
+FUN_020C36A8: ; 0x020C36A8
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ bl FUN_020C34B8
+_020C36B4: ; 0x020C36B4
+ cmp r0, #0x0
+ moveq r0, #0x1
+ movne r0, #0x0
+ add sp, sp, #0x4
+ ldmia sp!, {pc}
+
+ arm_func_start FUN_020C36C8
+FUN_020C36C8: ; 0x020C36C8
+ stmdb sp!, {r4-r8,lr}
+ sub sp, sp, #0x8
+ mov r7, r2
+ mov r2, r3
+ ldr r6, [sp, #0x20]
+ mov r4, r0
+ mov r8, r1
+ bl FUN_020C0AF4
+ movs r5, r0
+ addeq sp, sp, #0x8
+ moveq r0, #0x0
+ ldmeqia sp!, {r4-r8,pc}
+_020C36F8: ; 0x020C36F8
+ mov r0, r8
+ mov r1, r5
+ bl FUN_020C09B0
+ add r12, sp, #0x4
+ mov r2, r0
+ mov r0, r7
+ mov r1, #0x6
+ mov r3, #0x0
+ str r12, [sp, #0x0]
+ bl FUN_020C3270
+_020C3720: ; 0x020C3720
+ cmp r0, #0x0
+ beq _020C373C
+ mov r0, r5
+ bl thunk_FUN_020c077c
+ add sp, sp, #0x8
+ mov r0, #0x0
+ ldmia sp!, {r4-r8,pc}
+_020C373C:
+ ldr r12, [sp, #0x24]
+ ldr r2, [r6, #0x0]
+ ldr r1, [r12, #0x18]
+ ldr r3, [sp, #0x4]
+ mov r0, r5
+ add r1, r12, r1
+ bl FUN_020C0A90
+ ldrb r1, [r6, #0x6]
+ mov r0, r4
+ bl FUN_020C0F30
+ ldrb r1, [r6, #0x7]
+ mov r0, r4
+ bl FUN_020C0ECC
+ ldr r1, [sp, #0x28]
+ ldr r2, [sp, #0x2c]
+ mov r0, r4
+ bl FUN_020C0E38
+ mov r0, #0x1
+ add sp, sp, #0x8
+ ldmia sp!, {r4-r8,pc}
+
+ arm_func_start FUN_020C378C
+FUN_020C378C: ; 0x020C378C
+ stmdb sp!, {r4-r8,lr}
+ sub sp, sp, #0x10
+ mov r8, r2
+ mov r2, r3
+ ldr r5, [sp, #0x28]
+ mov r6, r0
+ mov r7, r1
+ bl FUN_020C0AF4
+ movs r4, r0
+ addeq sp, sp, #0x10
+ moveq r0, #0x0
+ ldmeqia sp!, {r4-r8,pc}
+_020C37BC: ; 0x020C37BC
+ mov r0, r7
+ mov r1, r4
+ bl FUN_020C09B0
+ mov r7, r0
+ add r12, sp, #0x8
+ mov r0, r8
+ mov r2, r7
+ mov r1, #0x6
+ mov r3, #0x0
+ str r12, [sp, #0x0]
+ bl FUN_020C3270
+_020C37E8: ; 0x020C37E8
+ cmp r0, #0x0
+ beq _020C3804
+ mov r0, r4
+ bl thunk_FUN_020c077c
+ add sp, sp, #0x10
+ mov r0, #0x0
+ ldmia sp!, {r4-r8,pc}
+_020C3804:
+ ldr r0, [sp, #0x2c]
+ add r12, sp, #0x4
+ mov r2, r7
+ mov r1, #0x1
+ mov r3, #0x0
+ str r12, [sp, #0x0]
+ bl FUN_020C341C
+_020C3820: ; 0x020C3820
+ cmp r0, #0x0
+ beq _020C383C
+ mov r0, r4
+ bl thunk_FUN_020c077c
+ add sp, sp, #0x10
+ mov r0, #0x0
+ ldmia sp!, {r4-r8,pc}
+_020C383C:
+ ldr r2, [sp, #0x4]
+ ldr r3, [sp, #0x8]
+ ldr r1, [r2, #0x18]
+ mov r0, r4
+ add r1, r2, r1
+ mov r2, #0x0
+ bl FUN_020C0A90
+ ldrb r1, [r5, #0x6]
+ mov r0, r6
+ bl FUN_020C0F30
+ ldrb r1, [r5, #0x7]
+ mov r0, r6
+ bl FUN_020C0ECC
+ ldr r1, [sp, #0x2c]
+ mov r0, r6
+ bl FUN_020C0E60
+ mov r0, #0x1
+ add sp, sp, #0x10
+ ldmia sp!, {r4-r8,pc}
+
+ arm_func_start FUN_020C3888
+FUN_020C3888: ; 0x020C3888
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0x14
+ mov r6, r1
+ mov r7, r0
+ mov r0, r6
+ mov r5, r2
+ bl FUN_020C2334
+_020C38A4: ; 0x020C38A4
+ cmp r0, #0x0
+ addeq sp, sp, #0x14
+ moveq r0, #0x0
+ ldmeqia sp!, {r4-r7,pc}
+_020C38B4: ; 0x020C38B4
+ ldr r0, [r0, #0x0]
+ bl FUN_020C20DC
+ movs r4, r0
+ addeq sp, sp, #0x14
+ moveq r0, #0x0
+ ldmeqia sp!, {r4-r7,pc}
+_020C38CC: ; 0x020C38CC
+ mov r1, r5
+ bl FUN_020C3D9C
+_020C38D4: ; 0x020C38D4
+ cmp r0, #0x0
+ addeq sp, sp, #0x14
+ moveq r0, #0x0
+ ldmeqia sp!, {r4-r7,pc}
+_020C38E4: ; 0x020C38E4
+ str r0, [sp, #0x0]
+ str r4, [sp, #0x4]
+ str r6, [sp, #0x8]
+ str r5, [sp, #0xc]
+ ldrb r1, [r0, #0x9]
+ ldrh r2, [r0, #0x4]
+ ldrb r3, [r0, #0x8]
+ mov r0, r7
+ bl FUN_020C36C8
+ add sp, sp, #0x14
+ ldmia sp!, {r4-r7,pc}
+
+ arm_func_start FUN_020C3910
+FUN_020C3910: ; 0x020C3910
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0xc
+ mov r7, r0
+ ldr r0, [sp, #0x20]
+ mov r6, r1
+ mov r5, r2
+ mov r4, r3
+ bl FUN_020C2398
+_020C3930: ; 0x020C3930
+ cmp r0, #0x0
+ addeq sp, sp, #0xc
+ moveq r0, #0x0
+ ldmeqia sp!, {r4-r7,pc}
+_020C3940: ; 0x020C3940
+ cmp r4, #0x0
+ ldrltb r4, [r0, #0x8]
+ cmp r5, #0x0
+ ldrlth r5, [r0, #0x4]
+ cmp r6, #0x0
+ ldrltb r6, [r0, #0x9]
+ ldr r12, [sp, #0x20]
+ mov r2, r5
+ str r0, [sp, #0x0]
+ mov r0, r7
+ mov r1, r6
+ mov r3, r4
+ str r12, [sp, #0x4]
+ bl FUN_020C378C
+ add sp, sp, #0xc
+ ldmia sp!, {r4-r7,pc}
+
+ arm_func_start FUN_020C3980
+FUN_020C3980: ; 0x020C3980
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0xc
+ mov r4, r1
+ mov r5, r0
+ mov r0, r4
+ bl FUN_020C2398
+_020C3998: ; 0x020C3998
+ cmp r0, #0x0
+ addeq sp, sp, #0xc
+ moveq r0, #0x0
+ ldmeqia sp!, {r4-r5,pc}
+_020C39A8: ; 0x020C39A8
+ str r0, [sp, #0x0]
+ str r4, [sp, #0x4]
+ ldrb r1, [r0, #0x9]
+ ldrh r2, [r0, #0x4]
+ ldrb r3, [r0, #0x8]
+ mov r0, r5
+ bl FUN_020C378C
+ add sp, sp, #0xc
+ ldmia sp!, {r4-r5,pc}
+
+ arm_func_start FUN_020C39CC
+FUN_020C39CC: ; 0x020C39CC
+ stmdb sp!, {r4-r8,lr}
+ mov r6, r0
+ bl FUN_020C241C
+ mov r5, #0x0
+ mov r7, r5
+_020C39E0:
+ mov r0, r5
+ bl FUN_020C2208
+ movs r4, r0
+ beq _020C3A58
+ ldrb r1, [r4, #0x0]
+ mov r0, r5
+ bl FUN_020C1160
+ ldrh r1, [r4, #0x2]
+ mov r0, r5
+ bl FUN_020C1148
+ ldr r0, [r4, #0x4]
+ cmp r0, #0x0
+ beq _020C3A58
+ cmp r6, #0x0
+ beq _020C3A58
+ ldrb r0, [r4, #0x0]
+ mov r8, r7
+ cmp r0, #0x0
+ ble _020C3A58
+_020C3A2C:
+ ldr r2, [r4, #0x4]
+ mov r0, r5
+ mov r1, r6
+ bl FUN_020C10B4
+_020C3A3C: ; 0x020C3A3C
+ cmp r0, #0x0
+ moveq r0, #0x0
+ ldmeqia sp!, {r4-r8,pc}
+_020C3A48: ; 0x020C3A48
+ ldrb r0, [r4, #0x0]
+ add r8, r8, #0x1
+ cmp r8, r0
+ blt _020C3A2C
+_020C3A58:
+ add r5, r5, #0x1
+ cmp r5, #0x20
+ blt _020C39E0
+ mov r0, #0x1
+ ldmia sp!, {r4-r8,pc}
+
+ arm_func_start FUN_020C3A6C
+FUN_020C3A6C: ; 0x020C3A6C
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ mov r5, r0
+ bl OS_DisableInterrupts
+ mov r4, r0
+ ldr r0, _020C3A9C ; =0x021D2904
+ mov r1, r5
+ bl FUN_020ADBE8
+ mov r0, r4
+ bl OS_RestoreInterrupts
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,pc}
+ .balign 4
+_020C3A9C: .word 0x021D2904
+
+ arm_func_start FUN_020C3AA0
+FUN_020C3AA0: ; 0x020C3AA0
+ stmdb sp!, {r4-r8,lr}
+ mov r8, r0
+ mov r7, r1
+ bl OS_DisableInterrupts
+ mov r6, r0
+ mov r0, r8
+ mov r1, #0x0
+ bl FUN_020ADA98
+ movs r5, r0
+ beq _020C3B04
+_020C3AC8:
+ mov r0, r8
+ mov r1, r5
+ bl FUN_020ADA98
+ ldr r1, [r5, #0x8]
+ mov r4, r0
+ cmp r1, r7
+ bne _020C3AF8
+ mov r0, r8
+ mov r1, r5
+ bl FUN_020ADAB0
+ mov r0, r5
+ bl FUN_020C3A6C
+_020C3AF8:
+ mov r5, r4
+ cmp r4, #0x0
+ bne _020C3AC8
+_020C3B04:
+ mov r0, r6
+ bl OS_RestoreInterrupts
+ ldmia sp!, {r4-r8,pc}
+
+ arm_func_start FUN_020C3B10
+FUN_020C3B10: ; 0x020C3B10
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldr r1, [r0, #0x120]
+ cmp r1, #0x0
+ addeq sp, sp, #0x4
+ ldmeqia sp!, {pc}
+ sub r1, r1, #0x1
+ str r1, [r0, #0x120]
+ ldr r1, [r0, #0x120]
+ cmp r1, #0x0
+ addne sp, sp, #0x4
+ ldmneia sp!, {pc}
+ bl FUN_020C1674
+ add sp, sp, #0x4
+ ldmia sp!, {pc}
+
+ arm_func_start FUN_020C3B4C
+FUN_020C3B4C: ; 0x020C3B4C
+ stmdb sp!, {r4,lr}
+ mov r4, r0
+ ldr r1, [r4, #0x110]
+ mov r1, r1, lsl #0x1f
+ movs r1, r1, asr #0x1f
+ ldmeqia sp!, {r4,pc}
+_020C3B64: ; 0x020C3B64
+ bl FUN_020C3B10
+ ldr r1, [r4, #0x164]
+ mov r0, r4
+ blx r1
+ ldr r0, _020C3BA8 ; =0x021D2DF0
+ mov r1, r4
+ bl FUN_020C3AA0
+ ldr r0, _020C3BAC ; =0x021D2900
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ beq _020C3B9C
+ mov r1, r4
+ add r0, r0, #0x4e0
+ bl FUN_020C3AA0
+_020C3B9C:
+ mov r0, r4
+ bl FUN_020C3C4C
+ ldmia sp!, {r4,pc}
+ .balign 4
+_020C3BA8: .word 0x021D2DF0
+_020C3BAC: .word 0x021D2900
+
+ arm_func_start FUN_020C3BB0
+FUN_020C3BB0: ; 0x020C3BB0
+ stmdb sp!, {r4,lr}
+ mov r4, r0
+ ldr r0, _020C3C40 ; =0x021D2DD8
+ bl OS_LockMutex
+ ldr r0, _020C3C44 ; =0x021D2900
+ ldr r1, [r0, #0x0]
+ cmp r1, #0x0
+ beq _020C3BDC
+ ldr r0, _020C3C48 ; =0x000004C8
+ add r0, r1, r0
+ bl OS_LockMutex
+_020C3BDC:
+ ldr r0, [r4, #0x110]
+ mov r0, r0, lsl #0x1e
+ movs r0, r0, asr #0x1f
+ beq _020C3BF4
+ mov r0, r4
+ bl FUN_020C1430
+_020C3BF4:
+ ldr r0, [r4, #0x110]
+ mov r0, r0, lsl #0x1f
+ movs r0, r0, asr #0x1f
+ beq _020C3C10
+ ldr r1, [r4, #0x16c]
+ mov r0, r4
+ blx r1
+_020C3C10:
+ mov r0, r4
+ bl FUN_020C3B4C
+ ldr r0, _020C3C40 ; =0x021D2DD8
+ bl OS_UnlockMutex
+ ldr r0, _020C3C44 ; =0x021D2900
+ ldr r1, [r0, #0x0]
+ cmp r1, #0x0
+ ldmeqia sp!, {r4,pc}
+_020C3C30: ; 0x020C3C30
+ ldr r0, _020C3C48 ; =0x000004C8
+ add r0, r1, r0
+ bl OS_UnlockMutex
+ ldmia sp!, {r4,pc}
+ .balign 4
+_020C3C40: .word 0x021D2DD8
+_020C3C44: .word 0x021D2900
+_020C3C48: .word 0x000004C8
+
+ arm_func_start FUN_020C3C4C
+FUN_020C3C4C: ; 0x020C3C4C
+ ldr r2, [r0, #0x14c]
+ cmp r2, #0x0
+ movne r1, #0x0
+ strne r1, [r2, #0x0]
+ strne r1, [r0, #0x14c]
+ ldr r1, [r0, #0x110]
+ bic r1, r1, #0x1
+ str r1, [r0, #0x110]
+ ldr r1, [r0, #0x110]
+ bic r1, r1, #0x4
+ str r1, [r0, #0x110]
+ ldr r1, [r0, #0x110]
+ bic r1, r1, #0x2
+ str r1, [r0, #0x110]
+ bx lr
+
+ arm_func_start FUN_020C3C88
+FUN_020C3C88:
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0x4
+ ldr r5, _020C3D94 ; =0x021D2DFC
+ mov r7, #0x0
+ ldr r4, _020C3D98 ; =0x02103BAC
+_020C3C9C:
+ ldr r1, [r5, #0x110]
+ mov r0, r1, lsl #0x1f
+ movs r0, r0, asr #0x1f
+ beq _020C3D7C
+ ldr r0, [r5, #0x114]
+ cmp r0, #0x0
+ bne _020C3CC4
+ mov r0, r5
+ bl FUN_020C3BB0
+ b _020C3D7C
+_020C3CC4:
+ mov r0, r1, lsl #0x1d
+ movs r0, r0, asr #0x1f
+ beq _020C3CFC
+ ldr r0, [r5, #0x118]
+ cmp r0, #0x0
+ beq _020C3CFC
+ mov r0, r5
+ bl FUN_020C1458
+ ldr r0, [r5, #0x110]
+ orr r0, r0, #0x2
+ str r0, [r5, #0x110]
+ ldr r0, [r5, #0x110]
+ bic r0, r0, #0x4
+ str r0, [r5, #0x110]
+_020C3CFC:
+ ldr r0, [r5, #0x110]
+ mov r0, r0, lsl #0x1e
+ movs r0, r0, asr #0x1f
+ beq _020C3D7C
+ add r0, r5, #0xe8
+ bl FUN_020C3DF4
+ ldr r1, [r5, #0x154]
+ add r0, r5, #0xe8
+ mov r1, r1, lsl #0x1
+ ldrsh r6, [r4, r1]
+ bl FUN_020C3E0C
+ mov r0, r0, asr #0x8
+ mov r0, r0, lsl #0x1
+ ldrsh r1, [r4, r0]
+ ldr r0, [r5, #0x158]
+ add r6, r1, r6
+ cmp r6, r0
+ beq _020C3D54
+ mov r0, r5
+ mov r1, r6
+ bl FUN_020C13C4
+ str r6, [r5, #0x158]
+_020C3D54:
+ ldr r0, [r5, #0x110]
+ mov r0, r0, lsl #0x1c
+ movs r0, r0, asr #0x1f
+ beq _020C3D7C
+ add r0, r5, #0xe8
+ bl FUN_020C3DDC
+_020C3D6C: ; 0x020C3D6C
+ cmp r0, #0x0
+ beq _020C3D7C
+ mov r0, r5
+ bl FUN_020C3BB0
+_020C3D7C:
+ add r7, r7, #0x1
+ cmp r7, #0x4
+ add r5, r5, #0x170
+ blt _020C3C9C
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r7,pc}
+ .balign 4
+_020C3D94: .word 0x021D2DFC
+_020C3D98: .word 0x02103BAC
+
+ arm_func_start FUN_020C3D9C
+FUN_020C3D9C:
+ cmp r1, #0x0
+ movlt r0, #0x0
+ bxlt lr
+ ldr r2, [r0, #0x1c]
+ cmp r1, r2
+ movcs r0, #0x0
+ bxcs lr
+ mov r2, #0xc
+ mul r2, r1, r2
+ add r3, r0, #0x20
+ ldr r1, [r3, r2]
+ mvn r0, #0x0
+ cmp r1, r0
+ add r0, r3, r2
+ moveq r0, #0x0
+ bx lr
+
+ arm_func_start FUN_020C3DDC
+FUN_020C3DDC:
+ ldr r1, [r0, #0x8]
+ ldr r0, [r0, #0xc]
+ cmp r1, r0
+ movge r0, #0x1
+ movlt r0, #0x0
+ bx lr
+
+ arm_func_start FUN_020C3DF4
+FUN_020C3DF4: ; 0x020C3DF4
+ ldr r2, [r0, #0x8]
+ ldr r1, [r0, #0xc]
+ cmp r2, r1
+ addlt r1, r2, #0x1
+ strlt r1, [r0, #0x8]
+ bx lr
+
+ arm_func_start FUN_020C3E0C
+FUN_020C3E0C:
+ stmdb sp!, {r4,lr}
+ ldr r1, [r0, #0xc]
+ ldr r2, [r0, #0x8]
+ cmp r2, r1
+ ldrge r0, [r0, #0x4]
+ ldmgeia sp!, {r4,pc}
+_020C3E24: ; 0x020C3E24
+ ldr r4, [r0, #0x0]
+ ldr r0, [r0, #0x4]
+ sub r0, r0, r4
+ mul r0, r2, r0
+ bl _s32_div_f
+_020C3E38: ; 0x020C3E38
+ add r0, r4, r0
+ ldmia sp!, {r4,pc}
+
+ arm_func_start FUN_020C3E40
+FUN_020C3E40:
+ stmdb sp!, {r4-r6,lr}
+ mov r6, r0
+ mov r5, r1
+ mov r4, r2
+ bl FUN_020C3E0C
+_020C3E54: ; 0x020C3E54
+ str r0, [r6, #0x0]
+ str r5, [r6, #0x4]
+ str r4, [r6, #0xc]
+ mov r0, #0x0
+ str r0, [r6, #0x8]
+ ldmia sp!, {r4-r6,pc}
+
+ arm_func_start FUN_020C3E6C
+FUN_020C3E6C: ; 0x020C3E6C
+ mov r2, #0x0
+ str r2, [r0, #0x4]
+ ldr r1, [r0, #0x4]
+ str r1, [r0, #0x0]
+ str r2, [r0, #0xc]
+ ldr r1, [r0, #0xc]
+ str r1, [r0, #0x8]
+ bx lr
+
+ arm_func_start FUN_020C3E8C
+FUN_020C3E8C: ; 0x020C3E8C
+ mov r1, #0x0
+ mov r2, #0x1000
+ mov r3, #0x0
+ stmia r0!, {r2-r3}
+ stmia r0!, {r1-r2}
+ bx lr
+
+ thumb_func_start FUN_020C3EA4
+FUN_020C3EA4: ; 0x020C3EA4
+ str r2, [r0, #0x0]
+ str r1, [r0, #0x4]
+ neg r1, r1
+ str r1, [r0, #0x8]
+ str r2, [r0, #0xc]
+ bx lr
+
+ arm_func_start FUN_020C3EB0
+FUN_020C3EB0: ; 0x020C3EB0
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldr r12, [r0, #0x0]
+ smull lr, r12, r2, r12
+ mov lr, lr, lsr #0xc
+ orr lr, lr, r12, lsl #0x14
+ str lr, [r1, #0x0]
+ ldr r12, [r0, #0x4]
+ smull lr, r12, r2, r12
+ mov r2, lr, lsr #0xc
+ orr r2, r2, r12, lsl #0x14
+ str r2, [r1, #0x4]
+ ldr r2, [r0, #0x8]
+ smull r12, r2, r3, r2
+ mov r12, r12, lsr #0xc
+ orr r12, r12, r2, lsl #0x14
+ str r12, [r1, #0x8]
+ ldr r0, [r0, #0xc]
+ smull r2, r0, r3, r0
+ mov r2, r2, lsr #0xc
+ orr r2, r2, r0, lsl #0x14
+ str r2, [r1, #0xc]
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+
+ arm_func_start MTX_Identity33_
+MTX_Identity33_: ; 0x020C3F14
+ mov r2, #0x1000
+ str r2, [r0, #0x20]
+ mov r3, #0x0
+ stmia r0!, {r2-r3}
+ mov r1, #0x0
+ stmia r0!, {r1,r3}
+ stmia r0!, {r2-r3}
+ stmia r0!, {r1,r3}
+ bx lr
+
+ thumb_func_start MTX_RotX33_
+MTX_RotX33_: ; 0x020C3F38
+ mov r3, #0x1
+ lsl r3, r3, #0xc
+ str r3, [r0, #0x0]
+ mov r3, #0x0
+ str r3, [r0, #0x4]
+ str r3, [r0, #0x8]
+ str r3, [r0, #0xc]
+ str r2, [r0, #0x10]
+ str r1, [r0, #0x14]
+ str r3, [r0, #0x18]
+ neg r1, r1
+ str r1, [r0, #0x1c]
+ str r2, [r0, #0x20]
+ bx lr
+
+ thumb_func_start MTX_RotY33_
+MTX_RotY33_: ; 0x020C3F54
+ str r2, [r0, #0x0]
+ str r2, [r0, #0x20]
+ mov r3, #0x0
+ str r3, [r0, #0x4]
+ str r3, [r0, #0xc]
+ str r3, [r0, #0x14]
+ str r3, [r0, #0x1c]
+ neg r2, r1
+ mov r3, #0x1
+ lsl r3, r3, #0xc
+ str r1, [r0, #0x18]
+ str r2, [r0, #0x8]
+ str r3, [r0, #0x10]
+ bx lr
+
+ thumb_func_start MTX_RotZ33_
+MTX_RotZ33_: ; 0x020C3F70
+ stmia r0!, {r2}
+ mov r3, #0x0
+ stmia r0!, {r1,r3}
+ neg r1, r1
+ stmia r0!, {r1-r2}
+ mov r1, #0x1
+ lsl r1, r1, #0xc
+ str r3, [r0, #0x0]
+ str r3, [r0, #0x4]
+ str r3, [r0, #0x8]
+ str r1, [r0, #0xc]
+ bx lr
+
+ arm_func_start MTX_MultVec33
+MTX_MultVec33: ; 0x020C3F88
+ stmdb sp!, {r4-r6,lr}
+ ldr r12, [r0, #0x4]
+ ldr r4, [r1, #0xc]
+ ldr r3, [r0, #0x0]
+ smull r6, r5, r12, r4
+ ldr r4, [r1, #0x0]
+ ldr r0, [r0, #0x8]
+ smlal r6, r5, r3, r4
+ ldr r4, [r1, #0x18]
+ smlal r6, r5, r0, r4
+ mov r4, r6, lsr #0xc
+ orr r4, r4, r5, lsl #0x14
+ str r4, [r2, #0x0]
+ ldr r4, [r1, #0x10]
+ ldr r5, [r1, #0x4]
+ smull r6, lr, r12, r4
+ smlal r6, lr, r3, r5
+ ldr r4, [r1, #0x1c]
+ smlal r6, lr, r0, r4
+ mov r4, r6, lsr #0xc
+ orr r4, r4, lr, lsl #0x14
+ str r4, [r2, #0x4]
+ ldr lr, [r1, #0x14]
+ ldr r4, [r1, #0x8]
+ smull r5, lr, r12, lr
+ smlal r5, lr, r3, r4
+ ldr r1, [r1, #0x20]
+ smlal r5, lr, r0, r1
+ mov r0, r5, lsr #0xc
+ orr r0, r0, lr, lsl #0x14
+ str r0, [r2, #0x8]
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+
+ arm_func_start MTX_Concat33
+MTX_Concat33: ; 0x020C400C
+ stmdb sp!, {r4-r9,lr}
+ sub sp, sp, #0x24
+ ldr r5, [r0, #0x4]
+ ldr r3, [r1, #0xc]
+ mov r12, r2
+ smull r8, r7, r5, r3
+ ldr r6, [r0, #0x0]
+ ldr r3, [r1, #0x0]
+ cmp r12, r1
+ smlal r8, r7, r6, r3
+ ldr r4, [r0, #0x8]
+ ldr r3, [r1, #0x18]
+ addeq r2, sp, #0x0
+ smlal r8, r7, r4, r3
+ mov r3, r8, lsr #0xc
+ orr r3, r3, r7, lsl #0x14
+ str r3, [r2, #0x0]
+ ldr r3, [r1, #0x10]
+ ldr r7, [r1, #0x4]
+ smull r9, r8, r5, r3
+ smlal r9, r8, r6, r7
+ ldr r3, [r1, #0x1c]
+ add lr, sp, #0x0
+ smlal r9, r8, r4, r3
+ mov r3, r9, lsr #0xc
+ orr r3, r3, r8, lsl #0x14
+ str r3, [r2, #0x4]
+ ldr r3, [r1, #0x14]
+ ldr r7, [r1, #0x8]
+ smull r9, r8, r5, r3
+ smlal r9, r8, r6, r7
+ ldr r6, [r1, #0x20]
+ cmp r2, lr
+ smlal r9, r8, r4, r6
+ mov r4, r9, lsr #0xc
+ orr r4, r4, r8, lsl #0x14
+ str r4, [r2, #0x8]
+ ldr r4, [r0, #0x10]
+ ldr r5, [r0, #0xc]
+ smull r9, r8, r4, r3
+ smlal r9, r8, r5, r7
+ ldr r3, [r0, #0x14]
+ addne sp, sp, #0x24
+ smlal r9, r8, r3, r6
+ mov r6, r9, lsr #0xc
+ orr r6, r6, r8, lsl #0x14
+ str r6, [r2, #0x14]
+ ldr r6, [r1, #0x10]
+ ldr r7, [r1, #0x4]
+ smull r9, r8, r4, r6
+ smlal r9, r8, r5, r7
+ ldr r6, [r1, #0x1c]
+ smlal r9, r8, r3, r6
+ mov r6, r9, lsr #0xc
+ orr r6, r6, r8, lsl #0x14
+ str r6, [r2, #0x10]
+ ldr r7, [r1, #0xc]
+ ldr r6, [r1, #0x0]
+ smull r9, r8, r4, r7
+ smlal r9, r8, r5, r6
+ ldr r5, [r1, #0x18]
+ smlal r9, r8, r3, r5
+ mov r3, r9, lsr #0xc
+ orr r3, r3, r8, lsl #0x14
+ str r3, [r2, #0xc]
+ ldr r4, [r0, #0x1c]
+ ldr r3, [r0, #0x18]
+ smull r8, r7, r4, r7
+ smlal r8, r7, r3, r6
+ ldr r0, [r0, #0x20]
+ smlal r8, r7, r0, r5
+ mov r5, r8, lsr #0xc
+ orr r5, r5, r7, lsl #0x14
+ str r5, [r2, #0x18]
+ ldr r5, [r1, #0x10]
+ ldr r6, [r1, #0x4]
+ smull r8, r5, r4, r5
+ smlal r8, r5, r3, r6
+ ldr r7, [r1, #0x1c]
+ smlal r8, r5, r0, r7
+ mov r6, r8, lsr #0xc
+ orr r6, r6, r5, lsl #0x14
+ str r6, [r2, #0x1c]
+ ldr r6, [r1, #0x20]
+ ldr r5, [r1, #0x8]
+ ldr r1, [r1, #0x14]
+ smull r7, r1, r4, r1
+ smlal r7, r1, r3, r5
+ smlal r7, r1, r0, r6
+ mov r0, r7, lsr #0xc
+ orr r0, r0, r1, lsl #0x14
+ str r0, [r2, #0x20]
+ ldmneia sp!, {r4-r9,lr}
+ bxne lr
+ ldmia lr!, {r0-r3}
+ stmia r12!, {r0-r3}
+ ldmia lr!, {r0-r3}
+ stmia r12!, {r0-r3}
+ ldr r0, [lr, #0x0]
+ str r0, [r12, #0x0]
+ add sp, sp, #0x24
+ ldmia sp!, {r4-r9,lr}
+ bx lr
+
+ arm_func_start MTX_ScaleApply33
+MTX_ScaleApply33: ; 0x020C41A8
+ stmdb sp!, {r4,lr}
+ ldr r4, [r0, #0x0]
+ ldr r12, [sp, #0x8]
+ smull lr, r4, r2, r4
+ mov lr, lr, lsr #0xc
+ orr lr, lr, r4, lsl #0x14
+ str lr, [r1, #0x0]
+ ldr r4, [r0, #0x4]
+ smull lr, r4, r2, r4
+ mov lr, lr, lsr #0xc
+ orr lr, lr, r4, lsl #0x14
+ str lr, [r1, #0x4]
+ ldr lr, [r0, #0x8]
+ smull r4, lr, r2, lr
+ mov r2, r4, lsr #0xc
+ orr r2, r2, lr, lsl #0x14
+ str r2, [r1, #0x8]
+ ldr r2, [r0, #0xc]
+ smull lr, r2, r3, r2
+ mov lr, lr, lsr #0xc
+ orr lr, lr, r2, lsl #0x14
+ str lr, [r1, #0xc]
+ ldr r2, [r0, #0x10]
+ smull lr, r2, r3, r2
+ mov lr, lr, lsr #0xc
+ orr lr, lr, r2, lsl #0x14
+ str lr, [r1, #0x10]
+ ldr r2, [r0, #0x14]
+ smull lr, r2, r3, r2
+ mov r3, lr, lsr #0xc
+ orr r3, r3, r2, lsl #0x14
+ str r3, [r1, #0x14]
+ ldr r2, [r0, #0x18]
+ smull r3, r2, r12, r2
+ mov r3, r3, lsr #0xc
+ orr r3, r3, r2, lsl #0x14
+ str r3, [r1, #0x18]
+ ldr r2, [r0, #0x1c]
+ smull r3, r2, r12, r2
+ mov r3, r3, lsr #0xc
+ orr r3, r3, r2, lsl #0x14
+ str r3, [r1, #0x1c]
+ ldr r0, [r0, #0x20]
+ smull r2, r0, r12, r0
+ mov r2, r2, lsr #0xc
+ orr r2, r2, r0, lsl #0x14
+ str r2, [r1, #0x20]
+ ldmia sp!, {r4,lr}
+ bx lr
+
+ arm_func_start MTX_Identity43_
+MTX_Identity43_: ; 0x020C426C
+ mov r2, #0x1000
+ mov r3, #0x0
+ stmia r0!, {r2-r3}
+ mov r1, #0x0
+ stmia r0!, {r1,r3}
+ stmia r0!, {r2-r3}
+ stmia r0!, {r1,r3}
+ stmia r0!, {r2-r3}
+ stmia r0!, {r1,r3}
+ bx lr
+
+ arm_func_start MTX_Copy43To44_
+MTX_Copy43To44_: ; 0x020C4294
+ stmdb sp!, {r4}
+ mov r12, #0x0
+ ldmia r0!, {r2-r4}
+ stmia r1!, {r2-r4,r12}
+ ldmia r0!, {r2-r4}
+ stmia r1!, {r2-r4,r12}
+ ldmia r0!, {r2-r4}
+ stmia r1!, {r2-r4,r12}
+ mov r12, #0x1000
+ ldmia r0!, {r2-r4}
+ stmia r1!, {r2-r4,r12}
+ ldmia sp!, {r4}
+ bx lr
+
+ thumb_func_start MTX_Scale43_
+MTX_Scale43_: ; 0x020C42C8
+ stmia r0!, {r1}
+ mov r1, #0x0
+ str r3, [r0, #0x1c]
+ mov r3, #0x0
+ stmia r0!, {r1,r3}
+ stmia r0!, {r1-r3}
+ mov r2, #0x0
+ stmia r0!, {r1,r3}
+ add r0, #0x4
+ stmia r0!, {r1-r3}
+ bx lr
+ .balign 4
+
+ thumb_func_start MTX_RotX43_
+MTX_RotX43_: ; 0x020C42E0
+ str r1, [r0, #0x14]
+ neg r1, r1
+ str r1, [r0, #0x1c]
+ mov r1, #0x1
+ lsl r1, r1, #0xc
+ stmia r0!, {r1}
+ mov r3, #0x0
+ mov r1, #0x0
+ stmia r0!, {r1,r3}
+ stmia r0!, {r1-r2}
+ str r1, [r0, #0x4]
+ add r0, #0xc
+ stmia r0!, {r2-r3}
+ stmia r0!, {r1,r3}
+ bx lr
+ .balign 4
+
+ thumb_func_start MTX_RotY43_
+MTX_RotY43_: ; 0x020C4300
+ str r1, [r0, #0x18]
+ mov r3, #0x0
+ stmia r0!, {r2-r3}
+ neg r1, r1
+ stmia r0!, {r1,r3}
+ mov r1, #0x1
+ lsl r1, r1, #0xc
+ stmia r0!, {r1,r3}
+ add r0, #0x4
+ mov r1, #0x0
+ stmia r0!, {r1-r3}
+ stmia r0!, {r1,r3}
+ bx lr
+ .balign 4
+
+ arm_func_start MTX_MultVec43
+MTX_MultVec43: ; 0x020C431C
+ stmdb sp!, {r4-r6,lr}
+ ldr r12, [r0, #0x4]
+ ldr r4, [r1, #0xc]
+ ldr r3, [r0, #0x0]
+ smull r6, r5, r12, r4
+ ldr r4, [r1, #0x0]
+ ldr r0, [r0, #0x8]
+ smlal r6, r5, r3, r4
+ ldr r4, [r1, #0x18]
+ smlal r6, r5, r0, r4
+ mov r4, r6, lsr #0xc
+ orr r4, r4, r5, lsl #0x14
+ str r4, [r2, #0x0]
+ ldr r5, [r2, #0x0]
+ ldr r4, [r1, #0x24]
+ add r4, r5, r4
+ str r4, [r2, #0x0]
+ ldr r4, [r1, #0x10]
+ ldr r5, [r1, #0x4]
+ smull r6, lr, r12, r4
+ smlal r6, lr, r3, r5
+ ldr r4, [r1, #0x1c]
+ smlal r6, lr, r0, r4
+ mov r4, r6, lsr #0xc
+ orr r4, r4, lr, lsl #0x14
+ str r4, [r2, #0x4]
+ ldr r5, [r2, #0x4]
+ ldr r4, [r1, #0x28]
+ add r4, r5, r4
+ str r4, [r2, #0x4]
+ ldr lr, [r1, #0x14]
+ ldr r4, [r1, #0x8]
+ smull r5, lr, r12, lr
+ smlal r5, lr, r3, r4
+ ldr r3, [r1, #0x20]
+ smlal r5, lr, r0, r3
+ mov r0, r5, lsr #0xc
+ orr r0, r0, lr, lsl #0x14
+ str r0, [r2, #0x8]
+ ldr r3, [r2, #0x8]
+ ldr r0, [r1, #0x2c]
+ add r0, r3, r0
+ str r0, [r2, #0x8]
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+
+ arm_func_start MTX_Concat43
+MTX_Concat43: ; 0x020C43D0
+ stmdb sp!, {r4-r10,lr}
+ sub sp, sp, #0x30
+ ldr r5, [r0, #0x4]
+ ldr r3, [r1, #0xc]
+ mov r12, r2
+ smull r8, r7, r5, r3
+ ldr r6, [r0, #0x0]
+ ldr r3, [r1, #0x0]
+ cmp r12, r1
+ smlal r8, r7, r6, r3
+ ldr r4, [r0, #0x8]
+ ldr r3, [r1, #0x18]
+ addeq r2, sp, #0x0
+ smlal r8, r7, r4, r3
+ mov r3, r8, lsr #0xc
+ orr r3, r3, r7, lsl #0x14
+ str r3, [r2, #0x0]
+ ldr r3, [r1, #0x10]
+ ldr r7, [r1, #0x4]
+ smull r9, r8, r5, r3
+ smlal r9, r8, r6, r7
+ ldr r3, [r1, #0x1c]
+ add lr, sp, #0x0
+ smlal r9, r8, r4, r3
+ mov r3, r9, lsr #0xc
+ orr r3, r3, r8, lsl #0x14
+ str r3, [r2, #0x4]
+ ldr r3, [r1, #0x14]
+ ldr r7, [r1, #0x8]
+ smull r9, r8, r5, r3
+ smlal r9, r8, r6, r7
+ ldr r6, [r1, #0x20]
+ smlal r9, r8, r4, r6
+ mov r4, r9, lsr #0xc
+ orr r4, r4, r8, lsl #0x14
+ str r4, [r2, #0x8]
+ ldr r4, [r0, #0x10]
+ ldr r5, [r0, #0xc]
+ smull r9, r8, r4, r3
+ smlal r9, r8, r5, r7
+ ldr r3, [r0, #0x14]
+ smlal r9, r8, r3, r6
+ mov r6, r9, lsr #0xc
+ orr r6, r6, r8, lsl #0x14
+ str r6, [r2, #0x14]
+ ldr r6, [r1, #0x10]
+ ldr r7, [r1, #0x4]
+ smull r9, r8, r4, r6
+ smlal r9, r8, r5, r7
+ ldr r6, [r1, #0x1c]
+ smlal r9, r8, r3, r6
+ mov r6, r9, lsr #0xc
+ orr r6, r6, r8, lsl #0x14
+ str r6, [r2, #0x10]
+ ldr r7, [r1, #0xc]
+ ldr r8, [r1, #0x0]
+ smull r10, r9, r4, r7
+ smlal r10, r9, r5, r8
+ ldr r6, [r1, #0x18]
+ smlal r10, r9, r3, r6
+ mov r3, r10, lsr #0xc
+ orr r3, r3, r9, lsl #0x14
+ str r3, [r2, #0xc]
+ ldr r4, [r0, #0x1c]
+ ldr r5, [r0, #0x18]
+ smull r9, r7, r4, r7
+ smlal r9, r7, r5, r8
+ ldr r3, [r0, #0x20]
+ smlal r9, r7, r3, r6
+ mov r6, r9, lsr #0xc
+ orr r6, r6, r7, lsl #0x14
+ str r6, [r2, #0x18]
+ ldr r6, [r1, #0x10]
+ ldr r7, [r1, #0x4]
+ smull r9, r6, r4, r6
+ smlal r9, r6, r5, r7
+ ldr r8, [r1, #0x1c]
+ smlal r9, r6, r3, r8
+ mov r7, r9, lsr #0xc
+ orr r7, r7, r6, lsl #0x14
+ str r7, [r2, #0x1c]
+ ldr r7, [r1, #0x14]
+ ldr r6, [r1, #0x8]
+ smull r9, r8, r4, r7
+ smlal r9, r8, r5, r6
+ ldr r5, [r1, #0x20]
+ smlal r9, r8, r3, r5
+ mov r3, r9, lsr #0xc
+ orr r3, r3, r8, lsl #0x14
+ str r3, [r2, #0x20]
+ ldr r4, [r0, #0x28]
+ ldr r3, [r0, #0x24]
+ smull r8, r7, r4, r7
+ smlal r8, r7, r3, r6
+ ldr r0, [r0, #0x2c]
+ ldr r6, [r1, #0x2c]
+ smlal r8, r7, r0, r5
+ mov r5, r8, lsr #0xc
+ orr r5, r5, r7, lsl #0x14
+ adds r5, r6, r5
+ str r5, [r2, #0x2c]
+ ldr r5, [r1, #0x10]
+ ldr r6, [r1, #0x4]
+ smull r8, r5, r4, r5
+ smlal r8, r5, r3, r6
+ ldr r7, [r1, #0x1c]
+ ldr r9, [r1, #0x28]
+ smlal r8, r5, r0, r7
+ mov r6, r8, lsr #0xc
+ orr r6, r6, r5, lsl #0x14
+ adds r5, r9, r6
+ str r5, [r2, #0x28]
+ ldr r8, [r1, #0x24]
+ ldr r6, [r1, #0x18]
+ ldr r5, [r1, #0x0]
+ ldr r1, [r1, #0xc]
+ smull r7, r1, r4, r1
+ smlal r7, r1, r3, r5
+ smlal r7, r1, r0, r6
+ mov r0, r7, lsr #0xc
+ orr r0, r0, r1, lsl #0x14
+ adds r0, r8, r0
+ cmp r2, lr
+ str r0, [r2, #0x24]
+ addne sp, sp, #0x30
+ ldmneia sp!, {r4-r10,lr}
+ bxne lr
+ ldmia lr!, {r0-r3}
+ stmia r12!, {r0-r3}
+ ldmia lr!, {r0-r3}
+ stmia r12!, {r0-r3}
+ ldmia lr, {r0-r3}
+ stmia r12, {r0-r3}
+ add sp, sp, #0x30
+ ldmia sp!, {r4-r10,lr}
+ bx lr
+
+ arm_func_start MTX_Inverse43
+MTX_Inverse43: ; 0x020C45F0
+ stmdb sp!, {r4-r11,lr}
+ sub sp, sp, #0x5c
+ mov r10, r0
+ ldr r11, [r10, #0x14]
+ cmp r10, r1
+ addeq r9, sp, #0x2c
+ ldr r3, [r10, #0x18]
+ ldr r2, [r10, #0xc]
+ ldr r8, [r10, #0x20]
+ str r1, [sp, #0x0]
+ movne r9, r1
+ smull r7, r5, r2, r8
+ smull r6, r1, r11, r3
+ ldr r4, [r10, #0x1c]
+ subs r12, r7, r6
+ ldr r0, [r10, #0x10]
+ smull r6, lr, r11, r4
+ sbc r11, r5, r1
+ smull r5, r4, r2, r4
+ mov r1, #0x800
+ smull r8, r7, r0, r8
+ smull r3, r2, r0, r3
+ adds r12, r12, r1
+ adc r0, r11, #0x0
+ subs r8, r8, r6
+ sbc r6, r7, lr
+ adds r7, r8, r1
+ adc r11, r6, #0x0
+ mov r7, r7, lsr #0xc
+ mov r8, r12, lsr #0xc
+ orr r7, r7, r11, lsl #0x14
+ orr r8, r8, r0, lsl #0x14
+ subs r0, r5, r3
+ sbc r12, r4, r2
+ ldr r6, [r10, #0x4]
+ ldr r11, [r10, #0x0]
+ smull r3, r2, r6, r8
+ adds r0, r0, r1
+ smull r5, r4, r11, r7
+ adc r11, r12, #0x0
+ mov r6, r0, lsr #0xc
+ subs r3, r5, r3
+ ldr r0, [r10, #0x8]
+ orr r6, r6, r11, lsl #0x14
+ sbc r2, r4, r2
+ smlal r3, r2, r0, r6
+ adds r0, r3, r1
+ mov r1, r8, asr #0x1f
+ str r1, [sp, #0x4]
+ mov r1, r7, asr #0x1f
+ str r1, [sp, #0x8]
+ mov r1, r6, asr #0x1f
+ adc r2, r2, #0x0
+ mov r0, r0, lsr #0xc
+ orrs r0, r0, r2, lsl #0x14
+ str r1, [sp, #0xc]
+ addeq sp, sp, #0x5c
+ mvneq r0, #0x0
+ ldmeqia sp!, {r4-r11,lr}
+ bxeq lr
+ bl FX_InvAsync
+ ldr r1, [r10, #0x8]
+ ldr r2, [r10, #0x1c]
+ ldr r11, [r10, #0x10]
+ smull r0, r4, r2, r1
+ smull r3, r2, r11, r1
+ ldr r5, [r10, #0x18]
+ str r2, [sp, #0x18]
+ str r3, [sp, #0x14]
+ smull r3, r2, r5, r1
+ str r2, [sp, #0x20]
+ ldr r2, [r10, #0x20]
+ ldr lr, [r10, #0x4]
+ str r2, [sp, #0x10]
+ ldr r5, [sp, #0x10]
+ str r3, [sp, #0x1c]
+ smull r12, r5, lr, r5
+ subs r0, r12, r0
+ ldr r2, [r10, #0xc]
+ sbc r4, r5, r4
+ smull r1, r5, r2, r1
+ str r5, [sp, #0x28]
+ mov r5, r0, lsr #0xc
+ ldr r11, [r10, #0x14]
+ orr r5, r5, r4, lsl #0x14
+ smull r4, r2, lr, r11
+ ldr r0, [sp, #0x14]
+ ldr r3, [r10, #0x0]
+ subs r4, r4, r0
+ ldr r0, [sp, #0x18]
+ mov r4, r4, lsr #0xc
+ sbc r0, r2, r0
+ orr r4, r4, r0, lsl #0x14
+ ldr r0, [sp, #0x10]
+ ldr r2, [sp, #0x1c]
+ smull r12, r0, r3, r0
+ subs r2, r12, r2
+ ldr r12, [sp, #0x20]
+ sbc r0, r0, r12
+ smull r12, r11, r3, r11
+ ldr r3, [sp, #0x28]
+ subs r1, r12, r1
+ sbc r3, r11, r3
+ mov r11, r2, lsr #0xc
+ orr r11, r11, r0, lsl #0x14
+ mov r0, r1, lsr #0xc
+ str r0, [sp, #0x24]
+ orr r0, r0, r3, lsl #0x14
+ str r0, [sp, #0x24]
+ bl FX_GetDivResult
+ smull r2, r1, r0, r5
+ mov r2, r2, lsr #0xc
+ orr r2, r2, r1, lsl #0x14
+ rsb lr, r2, #0x0
+ smull r2, r1, r0, r4
+ mov r4, r2, lsr #0xc
+ orr r4, r4, r1, lsl #0x14
+ smull r2, r1, r0, r11
+ mov r3, r2, lsr #0xc
+ orr r3, r3, r1, lsl #0x14
+ ldr r1, [sp, #0x24]
+ umull r11, r5, r0, r7
+ smull r2, r1, r0, r1
+ mov r2, r2, lsr #0xc
+ orr r2, r2, r1, lsl #0x14
+ ldr r1, [sp, #0x8]
+ mov r12, r0, asr #0x1f
+ mla r5, r0, r1, r5
+ mla r5, r12, r7, r5
+ mov r1, r11, lsr #0xc
+ orr r1, r1, r5, lsl #0x14
+ str r1, [r9, #0x0]
+ str lr, [r9, #0x4]
+ str r4, [r9, #0x8]
+ ldr r1, [sp, #0x4]
+ umull r5, r4, r0, r8
+ mla r4, r0, r1, r4
+ mla r4, r12, r8, r4
+ mov r1, r5, lsr #0xc
+ orr r1, r1, r4, lsl #0x14
+ rsb r1, r1, #0x0
+ str r1, [r9, #0xc]
+ ldr r1, [sp, #0xc]
+ rsb r2, r2, #0x0
+ str r3, [r9, #0x10]
+ str r2, [r9, #0x14]
+ umull r3, r2, r0, r6
+ mla r2, r0, r1, r2
+ mla r2, r12, r6, r2
+ mov r1, r3, lsr #0xc
+ orr r1, r1, r2, lsl #0x14
+ str r1, [r9, #0x18]
+ ldr r3, [r10, #0x0]
+ ldr r1, [r10, #0x1c]
+ ldr r2, [r10, #0x18]
+ smull r5, r4, r3, r1
+ ldr r1, [r10, #0x4]
+ smull r3, r1, r2, r1
+ subs r2, r5, r3
+ sbc r1, r4, r1
+ mov r2, r2, lsr #0xc
+ orr r2, r2, r1, lsl #0x14
+ smull r2, r1, r0, r2
+ mov r2, r2, lsr #0xc
+ orr r2, r2, r1, lsl #0x14
+ rsb r1, r2, #0x0
+ str r1, [r9, #0x1c]
+ ldr r3, [r10, #0x0]
+ ldr r1, [r10, #0x10]
+ ldr r2, [r10, #0xc]
+ smull r5, r4, r3, r1
+ ldr r1, [r10, #0x4]
+ smull r3, r1, r2, r1
+ subs r2, r5, r3
+ sbc r1, r4, r1
+ mov r2, r2, lsr #0xc
+ orr r2, r2, r1, lsl #0x14
+ smull r2, r1, r0, r2
+ mov r0, r2, lsr #0xc
+ orr r0, r0, r1, lsl #0x14
+ str r0, [r9, #0x20]
+ add r0, sp, #0x2c
+ ldr r2, [r9, #0xc]
+ ldr r1, [r10, #0x28]
+ ldr r4, [r9, #0x0]
+ smull r7, r1, r2, r1
+ ldr r3, [r10, #0x24]
+ ldr r6, [r9, #0x18]
+ smlal r7, r1, r4, r3
+ ldr r5, [r10, #0x2c]
+ cmp r9, r0
+ smlal r7, r1, r6, r5
+ mov r2, r7, lsr #0xc
+ orr r2, r2, r1, lsl #0x14
+ rsb r1, r2, #0x0
+ str r1, [r9, #0x24]
+ ldr r2, [r9, #0x10]
+ ldr r1, [r10, #0x28]
+ ldr r4, [r9, #0x4]
+ smull r7, r1, r2, r1
+ ldr r3, [r10, #0x24]
+ ldr r6, [r9, #0x1c]
+ smlal r7, r1, r4, r3
+ ldr r5, [r10, #0x2c]
+ smlal r7, r1, r6, r5
+ mov r2, r7, lsr #0xc
+ orr r2, r2, r1, lsl #0x14
+ rsb r1, r2, #0x0
+ str r1, [r9, #0x28]
+ ldr r1, [r10, #0x28]
+ ldr r2, [r9, #0x14]
+ ldr r4, [r9, #0x8]
+ smull r7, r1, r2, r1
+ ldr r3, [r10, #0x24]
+ ldr r6, [r9, #0x20]
+ smlal r7, r1, r4, r3
+ ldr r5, [r10, #0x2c]
+ smlal r7, r1, r6, r5
+ mov r2, r7, lsr #0xc
+ orr r2, r2, r1, lsl #0x14
+ rsb r1, r2, #0x0
+ str r1, [r9, #0x2c]
+ bne _020C4974
+ ldr r1, [sp, #0x0]
+ bl MI_Copy48B
+_020C4974:
+ mov r0, #0x0
+ add sp, sp, #0x5c
+ ldmia sp!, {r4-r11,lr}
+ bx lr
+
+ arm_func_start MTX_ScaleApply43
+MTX_ScaleApply43: ; 0x020C4984
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ ldr r12, [sp, #0x10]
+ mov r5, r0
+ str r12, [sp, #0x0]
+ mov r4, r1
+ bl MTX_ScaleApply33
+ ldr r0, [r5, #0x24]
+ str r0, [r4, #0x24]
+ ldr r0, [r5, #0x28]
+ str r0, [r4, #0x28]
+ ldr r0, [r5, #0x2c]
+ str r0, [r4, #0x2c]
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,lr}
+ bx lr
+
+ arm_func_start MTX_Identity44_
+MTX_Identity44_: ; 0x020C49C4
+ mov r2, #0x1000
+ mov r3, #0x0
+ stmia r0!, {r2-r3}
+ mov r1, #0x0
+ stmia r0!, {r1,r3}
+ stmia r0!, {r1-r3}
+ stmia r0!, {r1,r3}
+ stmia r0!, {r1-r3}
+ stmia r0!, {r1,r3}
+ stmia r0!, {r1-r2}
+ bx lr
+
+ arm_func_start MTX_Copy44To43_
+MTX_Copy44To43_:
+ ldmia r0!, {r2-r3,r12}
+ add r0, r0, #0x4
+ stmia r1!, {r2-r3,r12}
+ ldmia r0!, {r2-r3,r12}
+ add r0, r0, #0x4
+ stmia r1!, {r2-r3,r12}
+ ldmia r0!, {r2-r3,r12}
+ add r0, r0, #0x4
+ stmia r1!, {r2-r3,r12}
+ ldmia r0!, {r2-r3,r12}
+ add r0, r0, #0x4
+ stmia r1!, {r2-r3,r12}
+ bx lr
+
+ thumb_func_start MTX_RotX44_
+MTX_RotX44_: ; 0x020C4A24
+ str r2, [r0, #0x14]
+ str r2, [r0, #0x28]
+ str r1, [r0, #0x18]
+ neg r1, r1
+ str r1, [r0, #0x24]
+ mov r1, #0x1
+ mov r2, #0x0
+ lsl r1, r1, #0xc
+ mov r3, #0x0
+ stmia r0!, {r1-r3}
+ stmia r0!, {r2-r3}
+ add r0, #0x8
+ stmia r0!, {r2-r3}
+ add r0, #0x8
+ stmia r0!, {r2-r3}
+ stmia r0!, {r2-r3}
+ str r1, [r0, #0x0]
+ bx lr
+
+ thumb_func_start MTX_RotY44_
+MTX_RotY44_: ; 0x020C4A48
+ str r2, [r0, #0x0]
+ str r2, [r0, #0x28]
+ str r1, [r0, #0x20]
+ neg r1, r1
+ str r1, [r0, #0x8]
+ mov r3, #0x1
+ mov r1, #0x0
+ lsl r3, r3, #0xc
+ mov r2, #0x0
+ str r2, [r0, #0x4]
+ add r0, #0xc
+ stmia r0!, {r1-r3}
+ stmia r0!, {r1-r2}
+ str r2, [r0, #0x4]
+ add r0, #0xc
+ stmia r0!, {r1-r2}
+ stmia r0!, {r1-r3}
+ bx lr
+
+ thumb_func_start MTX_RotZ44_
+MTX_RotZ44_: ; 0x020C4A6C
+ str r2, [r0, #0x0]
+ str r2, [r0, #0x14]
+ str r1, [r0, #0x4]
+ neg r1, r1
+ str r1, [r0, #0x10]
+ mov r3, #0x1
+ mov r1, #0x0
+ lsl r3, r3, #0xc
+ mov r2, #0x0
+ add r0, #0x8
+ stmia r0!, {r1-r2}
+ add r0, #0x8
+ stmia r0!, {r1-r2}
+ stmia r0!, {r1-r3}
+ stmia r0!, {r1-r2}
+ stmia r0!, {r1-r3}
+ bx lr
+ .balign 4
+
+ arm_func_start MTX_Concat44
+MTX_Concat44: ; 0x020C4A90
+ stmdb sp!, {r4-r11,lr}
+ sub sp, sp, #0x44
+ ldr r5, [r0, #0x4]
+ ldr r3, [r1, #0x10]
+ mov r12, r2
+ smull r6, r4, r5, r3
+ ldr r9, [r0, #0x0]
+ ldr r3, [r1, #0x0]
+ cmp r12, r1
+ smlal r6, r4, r9, r3
+ ldr r10, [r0, #0x8]
+ ldr r3, [r1, #0x20]
+ ldr r8, [r0, #0xc]
+ smlal r6, r4, r10, r3
+ ldr r3, [r1, #0x30]
+ addeq r2, sp, #0x0
+ smlal r6, r4, r8, r3
+ mov r3, r6, lsr #0xc
+ orr r3, r3, r4, lsl #0x14
+ str r3, [r2, #0x0]
+ ldr r3, [r1, #0x14]
+ ldr r4, [r1, #0x4]
+ smull r7, r6, r5, r3
+ smlal r7, r6, r9, r4
+ ldr r3, [r1, #0x24]
+ ldr r4, [r1, #0x34]
+ smlal r7, r6, r10, r3
+ smlal r7, r6, r8, r4
+ mov r3, r7, lsr #0xc
+ orr r3, r3, r6, lsl #0x14
+ str r3, [r2, #0x4]
+ ldr r3, [r1, #0x1c]
+ ldr r4, [r1, #0xc]
+ smull r7, r6, r5, r3
+ smlal r7, r6, r9, r4
+ ldr r3, [r1, #0x2c]
+ ldr r4, [r1, #0x3c]
+ smlal r7, r6, r10, r3
+ smlal r7, r6, r8, r4
+ mov r3, r7, lsr #0xc
+ orr r3, r3, r6, lsl #0x14
+ str r3, [r2, #0xc]
+ ldr r6, [r1, #0x18]
+ ldr r7, [r1, #0x8]
+ smull r4, r3, r5, r6
+ smlal r4, r3, r9, r7
+ ldr r9, [r1, #0x28]
+ ldr r5, [r1, #0x38]
+ smlal r4, r3, r10, r9
+ smlal r4, r3, r8, r5
+ mov r4, r4, lsr #0xc
+ orr r4, r4, r3, lsl #0x14
+ str r4, [r2, #0x8]
+ ldr r8, [r0, #0x14]
+ ldr r10, [r0, #0x10]
+ smull r4, r3, r8, r6
+ smlal r4, r3, r10, r7
+ ldr r7, [r0, #0x18]
+ ldr r6, [r0, #0x1c]
+ smlal r4, r3, r7, r9
+ smlal r4, r3, r6, r5
+ mov r4, r4, lsr #0xc
+ orr r4, r4, r3, lsl #0x14
+ str r4, [r2, #0x18]
+ ldr r3, [r1, #0x14]
+ ldr r4, [r1, #0x4]
+ smull r11, r3, r8, r3
+ smlal r11, r3, r10, r4
+ ldr r5, [r1, #0x24]
+ ldr r9, [r1, #0x34]
+ smlal r11, r3, r7, r5
+ smlal r11, r3, r6, r9
+ mov r4, r11, lsr #0xc
+ orr r4, r4, r3, lsl #0x14
+ str r4, [r2, #0x14]
+ ldr r3, [r1, #0x1c]
+ ldr r4, [r1, #0xc]
+ smull r11, r3, r8, r3
+ smlal r11, r3, r10, r4
+ ldr r5, [r1, #0x2c]
+ ldr r9, [r1, #0x3c]
+ smlal r11, r3, r7, r5
+ smlal r11, r3, r6, r9
+ mov r4, r11, lsr #0xc
+ orr r4, r4, r3, lsl #0x14
+ str r4, [r2, #0x1c]
+ ldr r9, [r1, #0x10]
+ ldr r11, [r1, #0x0]
+ smull r4, r3, r8, r9
+ smlal r4, r3, r10, r11
+ ldr r5, [r1, #0x20]
+ ldr r8, [r1, #0x30]
+ smlal r4, r3, r7, r5
+ smlal r4, r3, r6, r8
+ mov r4, r4, lsr #0xc
+ orr r4, r4, r3, lsl #0x14
+ str r4, [r2, #0x10]
+ ldr r6, [r0, #0x24]
+ ldr r7, [r0, #0x20]
+ smull r4, r3, r6, r9
+ smlal r4, r3, r7, r11
+ ldr r10, [r0, #0x28]
+ add lr, sp, #0x0
+ smlal r4, r3, r10, r5
+ ldr r5, [r0, #0x2c]
+ cmp r2, lr
+ smlal r4, r3, r5, r8
+ mov r4, r4, lsr #0xc
+ orr r4, r4, r3, lsl #0x14
+ str r4, [r2, #0x20]
+ ldr r3, [r1, #0x14]
+ ldr r4, [r1, #0x4]
+ smull r11, r3, r6, r3
+ smlal r11, r3, r7, r4
+ ldr r8, [r1, #0x24]
+ ldr r9, [r1, #0x34]
+ smlal r11, r3, r10, r8
+ smlal r11, r3, r5, r9
+ mov r4, r11, lsr #0xc
+ orr r4, r4, r3, lsl #0x14
+ str r4, [r2, #0x24]
+ ldr r3, [r1, #0x1c]
+ ldr r4, [r1, #0xc]
+ smull r11, r3, r6, r3
+ smlal r11, r3, r7, r4
+ ldr r8, [r1, #0x2c]
+ ldr r9, [r1, #0x3c]
+ smlal r11, r3, r10, r8
+ smlal r11, r3, r5, r9
+ mov r4, r11, lsr #0xc
+ orr r4, r4, r3, lsl #0x14
+ str r4, [r2, #0x2c]
+ ldr r9, [r1, #0x18]
+ ldr r8, [r1, #0x8]
+ smull r4, r3, r6, r9
+ smlal r4, r3, r7, r8
+ ldr r7, [r1, #0x28]
+ ldr r6, [r1, #0x38]
+ smlal r4, r3, r10, r7
+ smlal r4, r3, r5, r6
+ mov r4, r4, lsr #0xc
+ orr r4, r4, r3, lsl #0x14
+ str r4, [r2, #0x28]
+ ldr r5, [r0, #0x34]
+ ldr r4, [r0, #0x30]
+ smull r10, r9, r5, r9
+ ldr r3, [r0, #0x38]
+ smlal r10, r9, r4, r8
+ smlal r10, r9, r3, r7
+ ldr r0, [r0, #0x3c]
+ addne sp, sp, #0x44
+ smlal r10, r9, r0, r6
+ mov r6, r10, lsr #0xc
+ orr r6, r6, r9, lsl #0x14
+ str r6, [r2, #0x38]
+ ldr r6, [r1, #0x14]
+ ldr r7, [r1, #0x4]
+ smull r10, r6, r5, r6
+ smlal r10, r6, r4, r7
+ ldr r8, [r1, #0x24]
+ ldr r9, [r1, #0x34]
+ smlal r10, r6, r3, r8
+ smlal r10, r6, r0, r9
+ mov r7, r10, lsr #0xc
+ orr r7, r7, r6, lsl #0x14
+ str r7, [r2, #0x34]
+ ldr r6, [r1, #0x10]
+ ldr r7, [r1, #0x0]
+ smull r10, r6, r5, r6
+ smlal r10, r6, r4, r7
+ ldr r8, [r1, #0x20]
+ ldr r9, [r1, #0x30]
+ smlal r10, r6, r3, r8
+ smlal r10, r6, r0, r9
+ mov r7, r10, lsr #0xc
+ orr r7, r7, r6, lsl #0x14
+ str r7, [r2, #0x30]
+ ldr r8, [r1, #0x3c]
+ ldr r7, [r1, #0x2c]
+ ldr r6, [r1, #0xc]
+ ldr r1, [r1, #0x1c]
+ smull r9, r1, r5, r1
+ smlal r9, r1, r4, r6
+ smlal r9, r1, r3, r7
+ smlal r9, r1, r0, r8
+ mov r0, r9, lsr #0xc
+ orr r0, r0, r1, lsl #0x14
+ str r0, [r2, #0x3c]
+ ldmneia sp!, {r4-r11,lr}
+ bxne lr
+ ldmia lr!, {r0-r3}
+ stmia r12!, {r0-r3}
+ ldmia lr!, {r0-r3}
+ stmia r12!, {r0-r3}
+ ldmia lr!, {r0-r3}
+ stmia r12!, {r0-r3}
+ ldmia lr, {r0-r3}
+ stmia r12, {r0-r3}
+ add sp, sp, #0x44
+ ldmia sp!, {r4-r11,lr}
+ bx lr
+
+ arm_func_start MTX_TransApply44
+MTX_TransApply44: ; 0x020C4DB4
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0x4
+ mov r7, r0
+ mov r6, r1
+ mov r5, r2
+ mov r4, r3
+ cmp r7, r6
+ beq _020C4DD8
+ bl MI_Copy48B
+_020C4DD8:
+ ldr r0, [r7, #0x10]
+ ldr r1, [r7, #0x0]
+ smull r3, r2, r4, r0
+ smlal r3, r2, r5, r1
+ ldr r0, [sp, #0x18]
+ ldr r1, [r7, #0x20]
+ ldr r12, [r7, #0x30]
+ smlal r3, r2, r0, r1
+ mov r1, r3, lsr #0xc
+ orr r1, r1, r2, lsl #0x14
+ add r1, r12, r1
+ str r1, [r6, #0x30]
+ ldr r1, [r7, #0x14]
+ ldr r2, [r7, #0x4]
+ smull r12, r3, r4, r1
+ smlal r12, r3, r5, r2
+ ldr r1, [r7, #0x24]
+ ldr r2, [r7, #0x34]
+ smlal r12, r3, r0, r1
+ mov r1, r12, lsr #0xc
+ orr r1, r1, r3, lsl #0x14
+ add r1, r2, r1
+ str r1, [r6, #0x34]
+ ldr r1, [r7, #0x18]
+ ldr r2, [r7, #0x8]
+ smull r12, r3, r4, r1
+ smlal r12, r3, r5, r2
+ ldr r1, [r7, #0x28]
+ ldr r2, [r7, #0x38]
+ smlal r12, r3, r0, r1
+ mov r1, r12, lsr #0xc
+ orr r1, r1, r3, lsl #0x14
+ add r1, r2, r1
+ str r1, [r6, #0x38]
+ ldr r1, [r7, #0x1c]
+ ldr r2, [r7, #0xc]
+ smull r12, r3, r4, r1
+ smlal r12, r3, r5, r2
+ ldr r1, [r7, #0x2c]
+ ldr r2, [r7, #0x3c]
+ smlal r12, r3, r0, r1
+ mov r0, r12, lsr #0xc
+ orr r0, r0, r3, lsl #0x14
+ add r0, r2, r0
+ str r0, [r6, #0x3c]
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r7,lr}
+ bx lr
+
+ arm_func_start FX_ModS32
+FX_ModS32: ; 0x020C4E98
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldr ip, _020C4EE0 ; =0x04000280
+ mov lr, #0x0
+ ldr r3, _020C4EE4 ; =0x04000290
+ strh lr, [r12, #0x0]
+ ldr r2, _020C4EE8 ; =0x04000298
+ str r0, [r3, #0x0]
+ str r1, [r2, #0x0]
+ str lr, [r2, #0x4]
+_020C4EC0:
+ ldrh r0, [r12, #0x0]
+ ands r0, r0, #0x8000
+ bne _020C4EC0
+ ldr r0, _020C4EEC ; =0x040002A8
+ ldr r0, [r0, #0x0]
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+ .balign 4
+_020C4EE0: .word 0x04000280
+_020C4EE4: .word 0x04000290
+_020C4EE8: .word 0x04000298
+_020C4EEC: .word 0x040002A8
+
+ arm_func_start FX_DivS32
+FX_DivS32: ; 0x020C4EF0
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldr ip, _020C4F38 ; =0x04000280
+ mov lr, #0x0
+ ldr r3, _020C4F3C ; =0x04000290
+ strh lr, [r12, #0x0]
+ ldr r2, _020C4F40 ; =0x04000298
+ str r0, [r3, #0x0]
+ str r1, [r2, #0x0]
+ str lr, [r2, #0x4]
+_020C4F18:
+ ldrh r0, [r12, #0x0]
+ ands r0, r0, #0x8000
+ bne _020C4F18
+ ldr r0, _020C4F44 ; =0x040002A0
+ ldr r0, [r0, #0x0]
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+ .balign 4
+_020C4F38: .word 0x04000280
+_020C4F3C: .word 0x04000290
+_020C4F40: .word 0x04000298
+_020C4F44: .word 0x040002A0
+
+ arm_func_start FX_DivAsync
+FX_DivAsync: ; 0x020C4F48
+ ldr r2, _020C4F74 ; =0x04000280
+ mov r12, #0x1
+ ldr r3, _020C4F78 ; =0x04000290
+ strh r12, [r2, #0x0]
+ mov r12, #0x0
+ str r12, [r3, #0x0]
+ ldr r2, _020C4F7C ; =0x04000298
+ str r0, [r3, #0x4]
+ str r1, [r2, #0x0]
+ str r12, [r2, #0x4]
+ bx lr
+ .balign 4
+_020C4F74: .word 0x04000280
+_020C4F78: .word 0x04000290
+_020C4F7C: .word 0x04000298
+
+ arm_func_start FX_GetSqerResult
+FX_GetSqerResult: ; 0x020C4F80
+ ldr r1, _020C4FA4 ; =0x040002B0
+_020C4F84:
+ ldrh r0, [r1, #0x0]
+ ands r0, r0, #0x8000
+ bne _020C4F84
+ ldr r0, _020C4FA8 ; =0x040002B4
+ ldr r0, [r0, #0x0]
+ add r0, r0, #0x200
+ mov r0, r0, lsr #0xa
+ bx lr
+ .balign 4
+_020C4FA4: .word 0x040002B0
+_020C4FA8: .word 0x040002B4
+
+ arm_func_start FX_InvAsync
+FX_InvAsync:
+ ldr r1, _020C4FDC ; =0x04000280
+ mov r3, #0x1
+ ldr r2, _020C4FE0 ; =0x04000290
+ strh r3, [r1, #0x0]
+ mov r12, #0x0
+ str r12, [r2, #0x0]
+ mov r3, #0x1000
+ ldr r1, _020C4FE4 ; =0x04000298
+ str r3, [r2, #0x4]
+ str r0, [r1, #0x0]
+ str r12, [r1, #0x4]
+ bx lr
+ .balign 4
+_020C4FDC: .word 0x04000280
+_020C4FE0: .word 0x04000290
+_020C4FE4: .word 0x04000298
+
+ arm_func_start FX_GetDivResult
+FX_GetDivResult: ; 0x020C4FE8
+ ldr r1, _020C501C ; =0x04000280
+_020C4FEC:
+ ldrh r0, [r1, #0x0]
+ ands r0, r0, #0x8000
+ bne _020C4FEC
+ ldr r1, _020C5020 ; =0x040002A0
+ mov r0, #0x80000
+ ldr r2, [r1, #0x0]
+ ldr r1, [r1, #0x4]
+ adds r0, r2, r0
+ adc r1, r1, #0x0
+ mov r0, r0, lsr #0x14
+ orr r0, r0, r1, lsl #0xc
+ bx lr
+ .balign 4
+_020C501C: .word 0x04000280
+_020C5020: .word 0x040002A0
+
+ arm_func_start FX_GetDivResultFx64c
+FX_GetDivResultFx64c: ; 0x020C5024
+ ldr r1, _020C5044 ; =0x04000280
+_020C5028:
+ ldrh r0, [r1, #0x0]
+ ands r0, r0, #0x8000
+ bne _020C5028
+ ldr r1, _020C5048 ; =0x040002A0
+ ldr r0, [r1, #0x0]
+ ldr r1, [r1, #0x4]
+ bx lr
+ .balign 4
+_020C5044: .word 0x04000280
+_020C5048: .word 0x040002A0
+
+ arm_func_start FX_Sqrt
+FX_Sqrt: ; 0x020C504C
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ cmp r0, #0x0
+ addle sp, sp, #0x4
+ movle r0, #0x0
+ ldmleia sp!, {lr}
+ bxle lr
+ ldr r2, _020C5094 ; =0x040002B0
+ mov r3, #0x1
+ strh r3, [r2, #0x0]
+ ldr r1, _020C5098 ; =0x040002B8
+ mov r2, #0x0
+ str r2, [r1, #0x0]
+ str r0, [r1, #0x4]
+ bl FX_GetSqerResult
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+ .balign 4
+_020C5094: .word 0x040002B0
+_020C5098: .word 0x040002B8
+
+ arm_func_start FX_Inv
+FX_Inv: ; 0x020C509C
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ bl FX_InvAsync
+ bl FX_GetDivResult
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+
+ arm_func_start FX_Div
+FX_Div: ; 0x020C50B8
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ bl FX_DivAsync
+ bl FX_GetDivResult
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+
+ arm_func_start VEC_MultAdd
+VEC_MultAdd: ; 0x020C50D4
+ stmdb sp!, {r4,lr}
+ ldr r4, [r1, #0x0]
+ ldr lr, [r2, #0x0]
+ smull r12, r4, r0, r4
+ mov r12, r12, lsr #0xc
+ orr r12, r12, r4, lsl #0x14
+ add r4, lr, r12
+ str r4, [r3, #0x0]
+ ldr r12, [r1, #0x4]
+ ldr r4, [r2, #0x4]
+ smull lr, r12, r0, r12
+ mov lr, lr, lsr #0xc
+ orr lr, lr, r12, lsl #0x14
+ add r4, r4, lr
+ str r4, [r3, #0x4]
+ ldr r1, [r1, #0x8]
+ ldr r12, [r2, #0x8]
+ smull r2, r1, r0, r1
+ mov r0, r2, lsr #0xc
+ orr r0, r0, r1, lsl #0x14
+ add r0, r12, r0
+ str r0, [r3, #0x8]
+ ldmia sp!, {r4,lr}
+ bx lr
+
+ arm_func_start VEC_Fx16Normalize
+VEC_Fx16Normalize: ; 0x020C5134
+ stmdb sp!, {r4-r8,lr}
+ ldrsh r4, [r0, #0x0]
+ ldrsh r3, [r0, #0x2]
+ ldrsh r2, [r0, #0x4]
+ mul r8, r4, r4
+ mul r7, r3, r3
+ mul r6, r2, r2
+ ldr r2, _020C526C ; =0x04000280
+ mov r3, #0x2
+ ldr r4, _020C5270 ; =0x04000290
+ strh r3, [r2, #0x0]
+ mov r2, #0x0
+ str r2, [r4, #0x0]
+ mov r5, #0x1000000
+ mov r2, r8, asr #0x1f
+ adds r3, r8, r7
+ adc r2, r2, r7, asr #0x1f
+ adds r7, r3, r6
+ adc r6, r2, r6, asr #0x1f
+ mov r3, r6, lsl #0x2
+ ldr r2, _020C5274 ; =0x04000298
+ str r5, [r4, #0x4]
+ str r7, [r2, #0x0]
+ ldr r5, _020C5278 ; =0x040002B0
+ str r6, [r2, #0x4]
+ mov r4, #0x1
+ ldr r2, _020C527C ; =0x040002B8
+ strh r4, [r5, #0x0]
+ mov r4, r7, lsl #0x2
+ str r4, [r2, #0x0]
+ orr r3, r3, r7, lsr #0x1e
+ str r3, [r2, #0x4]
+_020C51B4:
+ ldrh r2, [r5, #0x0]
+ ands r2, r2, #0x8000
+ bne _020C51B4
+ ldr r2, _020C5280 ; =0x040002B4
+ ldr r12, [r2, #0x0]
+ ldr r3, _020C526C ; =0x04000280
+_020C51CC:
+ ldrh r2, [r3, #0x0]
+ ands r2, r2, #0x8000
+ bne _020C51CC
+ ldr r7, _020C5284 ; =0x040002A0
+ ldrsh r5, [r0, #0x0]
+ ldr r6, [r7, #0x0]
+ mov r4, r12, asr #0x1f
+ umull r3, r2, r6, r12
+ mla r2, r6, r4, r2
+ ldr r8, [r7, #0x4]
+ mov r4, r5, asr #0x1f
+ umull r7, r6, r3, r5
+ mov lr, #0x0
+ mla r2, r8, r12, r2
+ mla r6, r3, r4, r6
+ mla r6, r2, r5, r6
+ adds r4, r7, lr
+ adc r4, r6, #0x1000
+ mov r4, r4, asr #0xd
+ strh r4, [r1, #0x0]
+ ldrsh r5, [r0, #0x2]
+ umull r6, r12, r3, r5
+ mov r4, r5, asr #0x1f
+ mla r12, r3, r4, r12
+ mla r12, r2, r5, r12
+ adds r4, r6, lr
+ adc r4, r12, #0x1000
+ mov r4, r4, asr #0xd
+ strh r4, [r1, #0x2]
+ ldrsh r12, [r0, #0x4]
+ umull r5, r4, r3, r12
+ mov r0, r12, asr #0x1f
+ adds r5, r5, lr
+ mla r4, r3, r0, r4
+ mla r4, r2, r12, r4
+ adc r0, r4, #0x1000
+ mov r0, r0, asr #0xd
+ strh r0, [r1, #0x4]
+ ldmia sp!, {r4-r8,lr}
+ bx lr
+ .balign 4
+_020C526C: .word 0x04000280
+_020C5270: .word 0x04000290
+_020C5274: .word 0x04000298
+_020C5278: .word 0x040002B0
+_020C527C: .word 0x040002B8
+_020C5280: .word 0x040002B4
+_020C5284: .word 0x040002A0
+
+ arm_func_start VEC_Normalize
+VEC_Normalize:
+ stmdb sp!, {r4-r8,lr}
+ ldr r3, [r0, #0x4]
+ ldr r4, [r0, #0x0]
+ smull r2, r7, r3, r3
+ smlal r2, r7, r4, r4
+ ldr r4, [r0, #0x8]
+ ldr r3, _020C53AC ; =0x04000280
+ smlal r2, r7, r4, r4
+ mov r6, #0x2
+ mov r4, r7, lsl #0x2
+ ldr r5, _020C53B0 ; =0x04000290
+ strh r6, [r3, #0x0]
+ mov r3, #0x0
+ str r3, [r5, #0x0]
+ mov r6, #0x1000000
+ ldr r3, _020C53B4 ; =0x04000298
+ str r6, [r5, #0x4]
+ str r2, [r3, #0x0]
+ ldr r6, _020C53B8 ; =0x040002B0
+ str r7, [r3, #0x4]
+ mov r5, #0x1
+ ldr r3, _020C53BC ; =0x040002B8
+ strh r5, [r6, #0x0]
+ mov r5, r2, lsl #0x2
+ str r5, [r3, #0x0]
+ orr r4, r4, r2, lsr #0x1e
+ str r4, [r3, #0x4]
+_020C52F4:
+ ldrh r2, [r6, #0x0]
+ ands r2, r2, #0x8000
+ bne _020C52F4
+ ldr r2, _020C53C0 ; =0x040002B4
+ ldr r12, [r2, #0x0]
+ ldr r3, _020C53AC ; =0x04000280
+_020C530C:
+ ldrh r2, [r3, #0x0]
+ ands r2, r2, #0x8000
+ bne _020C530C
+ ldr r7, _020C53C4 ; =0x040002A0
+ ldr r5, [r0, #0x0]
+ ldr r6, [r7, #0x0]
+ mov r4, r12, asr #0x1f
+ umull r3, r2, r6, r12
+ mla r2, r6, r4, r2
+ ldr r8, [r7, #0x4]
+ mov r4, r5, asr #0x1f
+ umull r7, r6, r3, r5
+ mov lr, #0x0
+ mla r2, r8, r12, r2
+ mla r6, r3, r4, r6
+ mla r6, r2, r5, r6
+ adds r4, r7, lr
+ adc r4, r6, #0x1000
+ mov r4, r4, asr #0xd
+ str r4, [r1, #0x0]
+ ldr r5, [r0, #0x4]
+ umull r6, r12, r3, r5
+ mov r4, r5, asr #0x1f
+ mla r12, r3, r4, r12
+ mla r12, r2, r5, r12
+ adds r4, r6, lr
+ adc r4, r12, #0x1000
+ mov r4, r4, asr #0xd
+ str r4, [r1, #0x4]
+ ldr r12, [r0, #0x8]
+ umull r5, r4, r3, r12
+ mov r0, r12, asr #0x1f
+ adds r5, r5, lr
+ mla r4, r3, r0, r4
+ mla r4, r2, r12, r4
+ adc r0, r4, #0x1000
+ mov r0, r0, asr #0xd
+ str r0, [r1, #0x8]
+ ldmia sp!, {r4-r8,lr}
+ bx lr
+ .balign 4
+_020C53AC: .word 0x04000280
+_020C53B0: .word 0x04000290
+_020C53B4: .word 0x04000298
+_020C53B8: .word 0x040002B0
+_020C53BC: .word 0x040002B8
+_020C53C0: .word 0x040002B4
+_020C53C4: .word 0x040002A0
+
+ arm_func_start VEC_Mag
+VEC_Mag:
+ ldr r2, [r0, #0x4]
+ ldr r3, [r0, #0x0]
+ smull r12, r1, r2, r2
+ smlal r12, r1, r3, r3
+ ldr r0, [r0, #0x8]
+ ldr r3, _020C5424 ; =0x040002B0
+ smlal r12, r1, r0, r0
+ mov r2, #0x1
+ mov r1, r1, lsl #0x2
+ ldr r0, _020C5428 ; =0x040002B8
+ strh r2, [r3, #0x0]
+ mov r2, r12, lsl #0x2
+ str r2, [r0, #0x0]
+ orr r1, r1, r12, lsr #0x1e
+ str r1, [r0, #0x4]
+_020C5404:
+ ldrh r0, [r3, #0x0]
+ ands r0, r0, #0x8000
+ bne _020C5404
+ ldr r0, _020C542C ; =0x040002B4
+ ldr r0, [r0, #0x0]
+ add r0, r0, #0x1
+ mov r0, r0, asr #0x1
+ bx lr
+ .balign 4
+_020C5424: .word 0x040002B0
+_020C5428: .word 0x040002B8
+_020C542C: .word 0x040002B4
+
+ arm_func_start VEC_Fx16CrossProduct
+VEC_Fx16CrossProduct: ; 0x020C5430
+ stmdb sp!, {r4-r6,lr}
+ ldrsh r4, [r1, #0x4]
+ ldrsh r12, [r0, #0x2]
+ ldrsh lr, [r0, #0x0]
+ ldrsh r3, [r1, #0x2]
+ ldrsh r6, [r0, #0x4]
+ ldrsh r1, [r1, #0x0]
+ mul r5, r12, r4
+ mul r0, r6, r3
+ sub r0, r5, r0
+ add r0, r0, #0x800
+ mov r0, r0, asr #0xc
+ mul r5, r6, r1
+ mul r4, lr, r4
+ sub r4, r5, r4
+ add r4, r4, #0x800
+ mul r3, lr, r3
+ mul r1, r12, r1
+ sub r1, r3, r1
+ add r1, r1, #0x800
+ strh r0, [r2, #0x0]
+ mov r0, r4, asr #0xc
+ strh r0, [r2, #0x2]
+ mov r0, r1, asr #0xc
+ strh r0, [r2, #0x4]
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+
+ arm_func_start VEC_CrossProduct
+VEC_CrossProduct:
+ stmdb sp!, {r4-r11,lr}
+ sub sp, sp, #0x4
+ ldr r12, [r1, #0x8]
+ ldr r9, [r0, #0x4]
+ ldr r3, [r0, #0x0]
+ ldr r11, [r1, #0x4]
+ ldr r0, [r0, #0x8]
+ ldr r10, [r1, #0x0]
+ smull r4, r7, r9, r12
+ smull r1, r6, r0, r11
+ subs r8, r4, r1
+ smull r5, r4, r0, r10
+ smull lr, r12, r3, r12
+ smull r1, r0, r3, r11
+ smull r10, r3, r9, r10
+ sbc r6, r7, r6
+ mov r9, #0x800
+ adds r7, r8, r9
+ adc r6, r6, #0x0
+ subs r8, r5, lr
+ sbc r5, r4, r12
+ adds r8, r8, r9
+ mov r4, r7, lsr #0xc
+ adc r5, r5, #0x0
+ subs r1, r1, r10
+ orr r4, r4, r6, lsl #0x14
+ mov r6, r8, lsr #0xc
+ sbc r0, r0, r3
+ adds r1, r1, r9
+ str r4, [r2, #0x0]
+ orr r6, r6, r5, lsl #0x14
+ adc r0, r0, #0x0
+ mov r1, r1, lsr #0xc
+ str r6, [r2, #0x4]
+ orr r1, r1, r0, lsl #0x14
+ str r1, [r2, #0x8]
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r11,lr}
+ bx lr
+
+ arm_func_start VEC_Fx16DotProduct
+VEC_Fx16DotProduct: ; 0x020C5538
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ ldrsh lr, [r0, #0x2]
+ ldrsh r12, [r1, #0x2]
+ ldrsh r3, [r0, #0x4]
+ ldrsh r2, [r1, #0x4]
+ ldrsh r5, [r0, #0x0]
+ ldrsh r4, [r1, #0x0]
+ smulbb r1, lr, r12
+ smulbb r0, r3, r2
+ smlabb r1, r5, r4, r1
+ add r0, r0, #0x800
+ adds r2, r1, r0
+ mov r1, r1, asr #0x1f
+ adc r1, r1, r0, asr #0x1f
+ mov r0, r2, lsr #0xc
+ orr r0, r0, r1, lsl #0x14
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,lr}
+ bx lr
+
+ arm_func_start VEC_DotProduct
+VEC_DotProduct:
+ stmdb sp!, {r4,lr}
+ ldr r3, [r0, #0x4]
+ ldr r2, [r1, #0x4]
+ ldr r12, [r0, #0x0]
+ smull r4, lr, r3, r2
+ ldr r2, [r1, #0x0]
+ ldr r3, [r0, #0x8]
+ smlal r4, lr, r12, r2
+ ldr r1, [r1, #0x8]
+ mov r0, #0x800
+ smlal r4, lr, r3, r1
+ adds r0, r4, r0
+ adc r1, lr, #0x0
+ mov r0, r0, lsr #0xc
+ orr r0, r0, r1, lsl #0x14
+ ldmia sp!, {r4,lr}
+ bx lr
+
+ arm_func_start VEC_Fx16Add
+VEC_Fx16Add: ; 0x020C55CC
+ ldrsh r12, [r0, #0x0]
+ ldrsh r3, [r1, #0x0]
+ add r3, r12, r3
+ strh r3, [r2, #0x0]
+ ldrsh r12, [r0, #0x2]
+ ldrsh r3, [r1, #0x2]
+ add r3, r12, r3
+ strh r3, [r2, #0x2]
+ ldrsh r3, [r0, #0x4]
+ ldrsh r0, [r1, #0x4]
+ add r0, r3, r0
+ strh r0, [r2, #0x4]
+ bx lr
+
+ arm_func_start VEC_Subtract
+VEC_Subtract: ; 0x020C5600
+ ldr r12, [r0, #0x0]
+ ldr r3, [r1, #0x0]
+ sub r3, r12, r3
+ str r3, [r2, #0x0]
+ ldr r12, [r0, #0x4]
+ ldr r3, [r1, #0x4]
+ sub r3, r12, r3
+ str r3, [r2, #0x4]
+ ldr r3, [r0, #0x8]
+ ldr r0, [r1, #0x8]
+ sub r0, r3, r0
+ str r0, [r2, #0x8]
+ bx lr
+
+ arm_func_start VEC_Add
+VEC_Add: ; 0x020C5634
+ ldr r12, [r0, #0x0]
+ ldr r3, [r1, #0x0]
+ add r3, r12, r3
+ str r3, [r2, #0x0]
+ ldr r12, [r0, #0x4]
+ ldr r3, [r1, #0x4]
+ add r3, r12, r3
+ str r3, [r2, #0x4]
+ ldr r3, [r0, #0x8]
+ ldr r0, [r1, #0x8]
+ add r0, r3, r0
+ str r0, [r2, #0x8]
+ bx lr
+
+ arm_func_start FX_Modf
+FX_Modf: ; 0x020C5668
+ stmdb sp!, {r4,lr}
+ cmp r0, #0x0
+ ble _020C5704
+ cmp r1, #0x0
+ ble _020C56B4
+ cmp r1, r0
+ movgt r3, r0
+ movgt r4, #0x0
+ movgt r0, #0x1
+ bgt _020C57C8
+ cmp r1, r0
+ movlt r3, r1
+ movlt r1, r0
+ movlt r4, #0x4000
+ movlt r0, #0x0
+ blt _020C57C8
+ mov r0, #0x2000
+ ldmia sp!, {r4,lr}
+ bx lr
+_020C56B4:
+ cmp r1, #0x0
+ bge _020C56F8
+ rsb r1, r1, #0x0
+ cmp r1, r0
+ movlt r3, r1
+ movlt r1, r0
+ movlt r4, #0x4000
+ movlt r0, #0x1
+ blt _020C57C8
+ cmp r1, r0
+ movgt r3, r0
+ movgt r4, #0x8000
+ movgt r0, #0x0
+ bgt _020C57C8
+ mov r0, #0x6000
+ ldmia sp!, {r4,lr}
+ bx lr
+_020C56F8:
+ mov r0, #0x4000
+ ldmia sp!, {r4,lr}
+ bx lr
+_020C5704:
+ cmp r0, #0x0
+ bge _020C57B4
+ cmp r1, #0x0
+ rsb r2, r0, #0x0
+ bge _020C5760
+ rsb r1, r1, #0x0
+ cmp r1, r2
+ movgt r0, #0x8000
+ rsbgt r4, r0, #0x0
+ movgt r3, r2
+ movgt r0, #0x1
+ bgt _020C57C8
+ cmp r1, r2
+ bge _020C5754
+ mov r0, #0x4000
+ mov r3, r1
+ mov r1, r2
+ rsb r4, r0, #0x0
+ mov r0, #0x0
+ b _020C57C8
+_020C5754:
+ mov r0, #0xa000
+ ldmia sp!, {r4,lr}
+ bx lr
+_020C5760:
+ cmp r1, #0x0
+ ble _020C57A8
+ cmp r1, r2
+ bge _020C5788
+ mov r0, #0x4000
+ mov r3, r1
+ mov r1, r2
+ rsb r4, r0, #0x0
+ mov r0, #0x1
+ b _020C57C8
+_020C5788:
+ cmp r1, r2
+ movgt r4, #0x0
+ movgt r3, r2
+ movgt r0, r4
+ bgt _020C57C8
+ mov r0, #0xe000
+ ldmia sp!, {r4,lr}
+ bx lr
+_020C57A8:
+ mov r0, #0xc000
+ ldmia sp!, {r4,lr}
+ bx lr
+_020C57B4:
+ cmp r1, #0x0
+ movge r0, #0x0
+ movlt r0, #0x8000
+ ldmia sp!, {r4,lr}
+ bx lr
+_020C57C8:
+ cmp r1, #0x0
+ moveq r0, #0x0
+ ldmeqia sp!, {r4,lr}
+ bxeq lr
+ cmp r0, #0x0
+ beq _020C580C
+ mov r0, r3
+ bl FX_Div
+ mov r1, r0, asr #0x5
+ ldr r0, _020C5838 ; =0x02103A38
+ mov r1, r1, lsl #0x1
+ ldrsh r0, [r0, r1]
+ add r0, r4, r0
+ mov r0, r0, lsl #0x10
+ mov r0, r0, lsr #0x10
+ ldmia sp!, {r4,lr}
+ bx lr
+_020C580C:
+ mov r0, r3
+ bl FX_Div
+ mov r1, r0, asr #0x5
+ ldr r0, _020C5838 ; =0x02103A38
+ mov r1, r1, lsl #0x1
+ ldrsh r0, [r0, r1]
+ sub r0, r4, r0
+ mov r0, r0, lsl #0x10
+ mov r0, r0, lsr #0x10
+ ldmia sp!, {r4,lr}
+ bx lr
+ .balign 4
+_020C5838: .word 0x02103A38
+
+ arm_func_start FUN_020C583C
+FUN_020C583C: ; 0x020C583C
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ cmp r0, #0x0
+ blt _020C58A4
+ cmp r0, #0x1000
+ ble _020C5880
+ bl FX_Inv
+ mov r1, r0, asr #0x5
+ ldr r0, _020C5924 ; =0x02103A38
+ mov r1, r1, lsl #0x1
+ ldrsh r0, [r0, r1]
+ add sp, sp, #0x4
+ rsb r0, r0, #0x4000
+ mov r0, r0, lsl #0x10
+ mov r0, r0, lsr #0x10
+ ldmia sp!, {lr}
+ bx lr
+_020C5880:
+ cmp r0, #0x1000
+ movlt r1, r0, asr #0x5
+ ldrlt r0, _020C5924 ; =0x02103A38
+ movlt r1, r1, lsl #0x1
+ ldrlth r0, [r0, r1]
+ add sp, sp, #0x4
+ movge r0, #0x2000
+ ldmia sp!, {lr}
+ bx lr
+_020C58A4:
+ mov r1, #0x1000
+ rsb r1, r1, #0x0
+ cmp r0, r1
+ bge _020C58E4
+ rsb r0, r0, #0x0
+ bl FX_Inv
+ mov r1, r0, asr #0x5
+ ldr r0, _020C5924 ; =0x02103A38
+
+ arm_func_start FUN_020C58C4
+FUN_020C58C4: ; 0x020C58C4
+ mov r1, r1, lsl #0x1
+ ldrsh r0, [r0, r1]
+ add sp, sp, #0x4
+ sub r0, r0, #0x4000
+ mov r0, r0, lsl #0x10
+ mov r0, r0, lsr #0x10
+ ldmia sp!, {lr}
+ bx lr
+_020C58E4:
+ cmp r0, r1
+ addle sp, sp, #0x4
+ movle r0, #0xe000
+ ldmleia sp!, {lr}
+ bxle lr
+ rsb r0, r0, #0x0
+ mov r1, r0, asr #0x5
+ ldr r0, _020C5924 ; =0x02103A38
+ mov r1, r1, lsl #0x1
+ ldrsh r0, [r0, r1]
+ rsb r0, r0, #0x0
+ mov r0, r0, lsl #0x10
+ mov r0, r0, lsr #0x10
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+ .balign 4
+_020C5924: .word 0x02103A38
+
+ arm_func_start FUN_020C5928
+FUN_020C5928: ; 0x020C5928
+ cmp r0, #0x0
+ blt _020C5948
+ ldr r2, _020C596C ; =0x7FFFF000
+ ldr r3, _020C5970 ; =0x00000FFF
+ and r2, r0, r2
+ str r2, [r1, #0x0]
+ and r0, r0, r3
+ bx lr
+_020C5948:
+ ldr r2, _020C596C ; =0x7FFFF000
+ rsb r3, r0, #0x0
+ ldr r0, _020C5970 ; =0x00000FFF
+ and r2, r3, r2
+ rsb r2, r2, #0x0
+ and r0, r3, r0
+ str r2, [r1, #0x0]
+ rsb r0, r0, #0x0
+ bx lr
+ .balign 4
+_020C596C: .word 0x7FFFF000
+_020C5970: .word 0x00000FFF
+
+ arm_func_start FX_Init
+FX_Init: ; 0x020C5974
+ bx lr
diff --git a/arm9/asm/unk_10b724.s b/arm9/asm/unk_10b724.s
new file mode 100644
index 00000000..cfa5f27a
--- /dev/null
+++ b/arm9/asm/unk_10b724.s
@@ -0,0 +1,4 @@
+ .text
+ .word 0xdec00621
+ .word 0x00000b68
+ .word 0x00000000
diff --git a/arm9/global.inc b/arm9/global.inc
new file mode 100644
index 00000000..d25362f3
--- /dev/null
+++ b/arm9/global.inc
@@ -0,0 +1,3521 @@
+.extern CARD_CancelBackupAsync
+.extern CARD_GetResultCode
+.extern CARD_IdentifyBackup
+.extern CARD_Init
+.extern CARD_IsPulledOut
+.extern CARD_LockBackup
+.extern CARD_LockRom
+.extern CARD_TryWaitBackupAsync
+.extern CARD_UnlockBackup
+.extern CARD_UnlockRom
+.extern CARD_WaitBackupAsync
+.extern CARDi_ReadRom
+.extern CARDi_RequestStreamCommand
+.extern CP_RestoreContext
+.extern CP_SaveContext
+.extern CTRDG_Init
+.extern CTRDG_IsExisting
+.extern CTRDG_IsPulledOut
+.extern Call_FillMemWithValue
+.extern ConvertUIntToDecimalString
+.extern DC_FlushAll
+.extern DC_FlushRange
+.extern DC_InvalidateAll
+.extern DC_InvalidateRange
+.extern DC_StoreAll
+.extern DC_StoreRange
+.extern DC_WaitWriteBufferEmpty
+.extern DGT_Hash1GetDigest_R
+.extern DGT_Hash1Reset
+.extern DGT_Hash1SetSource
+.extern DGTi_hash2_arm4_small
+.extern ErrorHandling
+.extern FS_CloseFile
+.extern FS_ConvertPathToFileID
+.extern FS_FindArchive
+.extern FS_Init
+.extern FS_InitFile
+.extern FS_IsAvailable
+.extern FS_LoadOverlay
+.extern FS_LoadOverlayImage
+.extern FS_LoadOverlayImageAsync
+.extern FS_LoadOverlayInfo
+.extern FS_OpenFile
+.extern FS_OpenFileFast
+.extern FS_ReadFile
+.extern FS_SeekFile
+.extern FS_SetDefaultDMA
+.extern FS_StartOverlay
+.extern FS_TryLoadTable
+.extern FS_UnloadOverlay
+.extern FS_WaitAsync
+.extern FUNRTC_Init
+.extern FUN_0200019E
+.extern FUN_020002FE
+.extern SVC_WaitByLoop
+.extern OSi_ReferSymbol
+.extern FUN_02000DF4
+.extern FUN_02000E7C
+.extern FUN_02000EE8
+.extern FUN_02000F18
+.extern FUN_02000FA4
+.extern FUN_02000FE8
+.extern FUN_020010A8
+.extern FUN_02001204
+.extern FUN_02001300
+.extern FUN_020013E8
+.extern FUN_02001448
+.extern FUN_02001470
+.extern FUN_02001B8C
+.extern FUN_02001C14
+.extern FUN_02001C5C
+.extern FUN_02001C78
+.extern FUN_02001D2C
+.extern FUN_02001E5C
+.extern FUN_020020EC
+.extern FUN_02002198
+.extern FUN_020021AC
+.extern FUN_02002840
+.extern FUN_02002B60
+.extern FUN_02002B7C
+.extern FUN_02002BB8
+.extern FUN_02002C14
+.extern FUN_02002C50
+.extern FUN_02002C84
+.extern FUN_02002CC0
+.extern FUN_02002CF8
+.extern FUN_02002DB0
+.extern FUN_02002DE0
+.extern FUN_02002E14
+.extern FUN_02002E4C
+.extern FUN_02002ED0
+.extern FUN_02002EEC
+.extern FUN_02002F08
+.extern FUN_02002FD0
+.extern FUN_02002FEC
+.extern FUN_02003008
+.extern FUN_02003038
+.extern FUN_02003054
+.extern FUN_020030E8
+.extern FUN_02003108
+.extern FUN_020031FC
+.extern FUN_02003210
+.extern FUN_0200372C
+.extern FUN_020038E4
+.extern FUN_020038F0
+.extern FUN_02003974
+.extern FUN_02003B98
+.extern FUN_02003C10
+.extern FUN_020040F4
+.extern FUN_02004104
+.extern FUN_02004124
+.extern FUN_0200414C
+.extern FUN_0200415C
+.extern FUN_0200433C
+.extern FUN_02004724
+.extern FUN_020047C8
+.extern FUN_02004810
+.extern FUN_0200488C
+.extern FUN_02004DCC
+.extern FUN_02004E08
+.extern FUN_0200516C
+.extern FUN_020051F4
+.extern FUN_0200521C
+.extern FUN_02005308
+.extern FUN_02005350
+.extern FUN_0200538C
+.extern FUN_020053CC
+.extern FUN_02005404
+.extern FUN_02005410
+.extern FUN_0200541C
+.extern FUN_020054C8
+.extern FUN_020054F0
+.extern FUN_02005508
+.extern FUN_02005514
+.extern FUN_02005578
+.extern FUN_02005670
+.extern FUN_020056AC
+.extern FUN_02005C28
+.extern FUN_02005CBC
+.extern FUN_02005D20
+.extern FUN_02005E28
+.extern FUN_02005E64
+.extern FUN_02005E6C
+.extern FUN_02005E80
+.extern FUN_02005E90
+.extern FUN_02005F14
+.extern FUN_02005F60
+.extern FUN_02005FDC
+.extern FUN_020061E8
+.extern FUN_0200621C
+.extern FUN_02006234
+.extern FUN_02006260
+.extern FUN_02006268
+.extern FUN_02006278
+.extern FUN_0200627C
+.extern FUN_0200628C
+.extern FUN_02006290
+.extern FUN_02006528
+.extern FUN_02006548
+.extern FUN_02006564
+.extern FUN_02006670
+.extern FUN_020066F4
+.extern FUN_02006704
+.extern FUN_02006774
+.extern FUN_02006814
+.extern FUN_0200687C
+.extern FUN_020068C8
+.extern FUN_02006930
+.extern FUN_02006BB0
+.extern FUN_02006C08
+.extern FUN_02006C98
+.extern FUN_02006D98
+.extern FUN_02006ED4
+.extern FUN_020072E8
+.extern FUN_02007314
+.extern FUN_0200737C
+.extern FUN_02007390
+.extern FUN_020073A0
+.extern FUN_02007534
+.extern FUN_02007558
+.extern FUN_0200782C
+.extern FUN_020079E0
+.extern FUN_02007E68
+.extern FUN_02007E98
+.extern FUN_02007F20
+.extern FUN_020080D0
+.extern FUN_020081C4
+.extern FUN_02008AA4
+.extern FUN_02008BE0
+.extern FUN_02008C80
+.extern FUN_02008C9C
+.extern FUN_02008D24
+.extern FUN_02008DEC
+.extern FUN_02008E2C
+.extern FUN_02008F34
+.extern FUN_02008FEC
+.extern FUN_020090AC
+.extern FUN_02009168
+.extern FUN_020093A8
+.extern FUN_02009424
+.extern FUN_02009448
+.extern FUN_02009630
+.extern FUN_0200965C
+.extern FUN_02009668
+.extern FUN_020096B4
+.extern FUN_020096CC
+.extern FUN_02009A50
+.extern FUN_02009B04
+.extern FUN_02009B44
+.extern FUN_02009B78
+.extern FUN_02009C0C
+.extern FUN_02009C30
+.extern FUN_02009CF0
+.extern FUN_02009DAC
+.extern FUN_02009DE0
+.extern FUN_02009E04
+.extern FUN_02009E28
+.extern FUN_02009E88
+.extern FUN_02009EAC
+.extern FUN_02009F80
+.extern FUN_02009FA0
+.extern FUN_0200A208
+.extern FUN_0200A274
+.extern FUN_0200A2AC
+.extern FUN_0200A318
+.extern FUN_0200A344
+.extern FUN_0200A648
+.extern FUN_0200A738
+.extern FUN_0200A86C
+.extern FUN_0200A8B8
+.extern FUN_0200A8E0
+.extern FUN_0200A914
+.extern FUN_0200A968
+.extern FUN_0200A99C
+.extern FUN_0200A9C4
+.extern FUN_0200AA50
+.extern FUN_0200AA80
+.extern FUN_0200AA90
+.extern FUN_0200AB18
+.extern FUN_0200ABB4
+.extern FUN_0200ABC0
+.extern FUN_0200ABE4
+.extern FUN_0200AC0C
+.extern FUN_0200AC60
+.extern FUN_0200ACA4
+.extern FUN_0200ACC0
+.extern FUN_0200ACF8
+.extern FUN_0200AD18
+.extern FUN_0200AD38
+.extern FUN_0200AD5C
+.extern FUN_0200AD94
+.extern FUN_0200ADCC
+.extern FUN_0200AE04
+.extern FUN_0200AE38
+.extern FUN_0200AE70
+.extern FUN_0200AEA8
+.extern FUN_0200AEE0
+.extern FUN_0200AF18
+.extern FUN_0200AF50
+.extern FUN_0200AFF4
+.extern FUN_0200B02C
+.extern FUN_0200B064
+.extern FUN_0200B09C
+.extern FUN_0200B164
+.extern FUN_0200B19C
+.extern FUN_0200B1D4
+.extern FUN_0200B20C
+.extern FUN_0200B244
+.extern FUN_0200B278
+.extern FUN_0200B2AC
+.extern FUN_0200B350
+.extern FUN_0200B388
+.extern FUN_0200B410
+.extern FUN_0200B4A0
+.extern FUN_0200B4D8
+.extern FUN_0200B518
+.extern FUN_0200B534
+.extern FUN_0200B568
+.extern FUN_0200B59C
+.extern FUN_0200B628
+.extern FUN_0200B660
+.extern FUN_0200B698
+.extern FUN_0200B6D0
+.extern FUN_0200B708
+.extern FUN_0200B764
+.extern FUN_0200B7A8
+.extern FUN_0200B7B8
+.extern FUN_0200B870
+.extern FUN_0200B990
+.extern FUN_0200B9A8
+.extern FUN_0200B9EC
+.extern FUN_0200BA78
+.extern FUN_0200BB14
+.extern FUN_0200BB34
+.extern FUN_0200BB68
+.extern FUN_0200BB6C
+.extern FUN_0200BBF0
+.extern FUN_0200BC1C
+.extern FUN_0200BC30
+.extern FUN_0200BCE0
+.extern FUN_0200BD04
+.extern FUN_0200BD20
+.extern FUN_0200BE38
+.extern FUN_0200BF60
+.extern FUN_0200C00C
+.extern FUN_0200C06C
+.extern FUN_0200C0DC
+.extern FUN_0200C124
+.extern FUN_0200C13C
+.extern FUN_0200C154
+.extern FUN_0200C358
+.extern FUN_0200C368
+.extern FUN_0200C378
+.extern FUN_0200C388
+.extern FUN_0200C398
+.extern FUN_0200C3DC
+.extern FUN_0200C5A8
+.extern FUN_0200C61C
+.extern FUN_0200C63C
+.extern FUN_0200C644
+.extern FUN_0200C664
+.extern FUN_0200C66C
+.extern FUN_0200C6E4
+.extern FUN_0200C714
+.extern FUN_0200C75C
+.extern FUN_0200C7A0
+.extern FUN_0200C82C
+.extern FUN_0200C840
+.extern FUN_0200C884
+.extern FUN_0200C9D8
+.extern FUN_0200CA0C
+.extern FUN_0200CA44
+.extern FUN_0200CAB4
+.extern FUN_0200CABC
+.extern FUN_0200CAFC
+.extern FUN_0200CB00
+.extern FUN_0200CCA4
+.extern FUN_0200CCF8
+.extern FUN_0200CD64
+.extern FUN_0200CD68
+.extern FUN_0200D0BC
+.extern FUN_0200D0E0
+.extern FUN_0200D274
+.extern FUN_0200D300
+.extern FUN_0200D6F8
+.extern FUN_0200D858
+.extern FUN_0200DBFC
+.extern FUN_0200DC4C
+.extern FUN_0200DCA4
+.extern FUN_0200E1D0
+.extern FUN_0200E2D8
+.extern FUN_0200E308
+.extern FUN_0200E388
+.extern FUN_0200E394
+.extern FUN_0200E3A0
+.extern FUN_0200E3BC
+.extern FUN_02011B20
+.extern FUN_02012420
+.extern FUN_0201259C
+.extern FUN_020125D4
+.extern FUN_0201265C
+.extern FUN_020126B4
+.extern FUN_020126D8
+.extern FUN_020126FC
+.extern FUN_0201277C
+.extern FUN_020127A8
+.extern FUN_020127C0
+.extern FUN_02012838
+.extern FUN_02012870
+.extern FUN_02012880
+.extern FUN_020128A0
+.extern FUN_02012CC8
+.extern FUN_02012CDC
+.extern FUN_02012DE4
+.extern FUN_0201318C
+.extern FUN_02013194
+.extern FUN_0201327C
+.extern FUN_020132BC
+.extern FUN_02013364
+.extern FUN_02013388
+.extern FUN_020133AC
+.extern FUN_020133C8
+.extern FUN_020133E8
+.extern FUN_0201343C
+.extern FUN_02013440
+.extern FUN_02013690
+.extern FUN_020136C0
+.extern FUN_020136E0
+.extern FUN_020136F8
+.extern FUN_0201373C
+.extern FUN_02013754
+.extern FUN_0201385C
+.extern FUN_02013918
+.extern FUN_02013920
+.extern FUN_02013924
+.extern FUN_02013928
+.extern FUN_02013960
+.extern FUN_020139D8
+.extern FUN_02013A10
+.extern FUN_02013A30
+.extern FUN_02013A9C
+.extern FUN_02013B5C
+.extern FUN_02013B68
+.extern FUN_02013B74
+.extern FUN_02013BC8
+.extern FUN_02013BE4
+.extern FUN_02013C0C
+.extern FUN_02013C18
+.extern FUN_020142EC
+.extern FUN_020143A8
+.extern FUN_020143D0
+.extern FUN_02014BF4
+.extern FUN_02014C28
+.extern FUN_02014C3C
+.extern FUN_02014C54
+.extern FUN_02014D7C
+.extern FUN_02014D9C
+.extern FUN_02015CF8
+.extern FUN_02015E30
+.extern FUN_02015E60
+.extern FUN_02015EF4
+.extern FUN_02015F10
+.extern FUN_02015F1C
+.extern FUN_02015F34
+.extern FUN_020161A4
+.extern FUN_020163BC
+.extern FUN_02016438
+.extern FUN_02016464
+.extern FUN_0201669C
+.extern FUN_020166C8
+.extern FUN_0201681C
+.extern FUN_02016828
+.extern FUN_020168D0
+.extern FUN_02016998
+.extern FUN_020169D8
+.extern FUN_02016A18
+.extern FUN_02016A8C
+.extern FUN_02016AF8
+.extern FUN_02016B94
+.extern FUN_02016BBC
+.extern FUN_02016C18
+.extern FUN_020178A0
+.extern FUN_020178BC
+.extern FUN_0201797C
+.extern FUN_020179E0
+.extern FUN_02017B48
+.extern FUN_02017B54
+.extern FUN_02017CD0
+.extern FUN_02017CE8
+.extern FUN_02017DFC
+.extern FUN_02017E14
+.extern FUN_02017F18
+.extern FUN_02017FB4
+.extern FUN_02017FE4
+.extern FUN_02018148
+.extern FUN_02018170
+.extern FUN_02018540
+.extern FUN_020186B4
+.extern FUN_02018744
+.extern FUN_0201886C
+.extern FUN_02018884
+.extern FUN_02018FF4
+.extern FUN_0201901C
+.extern FUN_02019048
+.extern FUN_02019064
+.extern FUN_02019150
+.extern FUN_02019178
+.extern FUN_020191A4
+.extern FUN_020191D0
+.extern FUN_02019220
+.extern FUN_02019548
+.extern FUN_02019570
+.extern FUN_0201958C
+.extern FUN_02019620
+.extern FUN_02019658
+.extern FUN_020196F4
+.extern FUN_0201974C
+.extern FUN_0201A8C8
+.extern FUN_0201AB08
+.extern FUN_0201AB0C
+.extern FUN_0201AB10
+.extern FUN_0201AB14
+.extern FUN_0201AB18
+.extern FUN_0201AB60
+.extern FUN_0201AC68
+.extern FUN_0201AEE4
+.extern FUN_0201AFBC
+.extern FUN_0201B234
+.extern FUN_0201B5CC
+.extern FUN_0201B6C4
+.extern FUN_0201B6C8
+.extern FUN_0201B6D0
+.extern FUN_0201B76C
+.extern FUN_0201B7DC
+.extern FUN_0201B8B8
+.extern FUN_0201B8E0
+.extern FUN_0201B914
+.extern FUN_0201B93C
+.extern FUN_0201B970
+.extern FUN_0201B9D4
+.extern FUN_0201B9E0
+.extern FUN_0201B9EC
+.extern FUN_0201BA10
+.extern FUN_0201BA1C
+.extern FUN_0201BA60
+.extern FUN_0201BCBC
+.extern FUN_0201BD5C
+.extern FUN_0201BD70
+.extern FUN_0201BD7C
+.extern FUN_0201BD84
+.extern FUN_0201BDE0
+.extern FUN_0201BE3C
+.extern FUN_0201C05C
+.extern FUN_0201C1EC
+.extern FUN_0201C24C
+.extern FUN_0201C29C
+.extern FUN_0201C30C
+.extern FUN_0201C620
+.extern FUN_0201C638
+.extern FUN_0201CC08
+.extern FUN_0201CC24
+.extern FUN_0201CD04
+.extern FUN_0201CDD0
+.extern FUN_0201CE04
+.extern FUN_0201D040
+.extern FUN_0201D12C
+.extern FUN_0201D168
+.extern FUN_0201E00C
+.extern FUN_0201E08C
+.extern FUN_0201E0BC
+.extern FUN_0201E28C
+.extern FUN_0201E66C
+.extern FUN_0201E6D8
+.extern FUN_0201E6E4
+.extern FUN_0201E740
+.extern FUN_0201E74C
+.extern FUN_0201E788
+.extern FUN_0201E7A0
+.extern FUN_0201EB64
+.extern FUN_0201EB70
+.extern FUN_0201EB8C
+.extern FUN_0201EBA4
+.extern FUN_0201EC68
+.extern FUN_0201EC88
+.extern FUN_0201EC94
+.extern FUN_0201ED10
+.extern FUN_0201EEF0
+.extern FUN_0201EF70
+.extern FUN_0201EF90
+.extern FUN_0201EFE0
+.extern FUN_0201EFEC
+.extern FUN_0201F04C
+.extern FUN_0201F854
+.extern FUN_0201FD58
+.extern FUN_0201FDEC
+.extern FUN_0201FE94
+.extern FUN_0201FFC8
+.extern FUN_02020044
+.extern FUN_020200A0
+.extern FUN_020200BC
+.extern FUN_02020100
+.extern FUN_0202011C
+.extern FUN_02020128
+.extern FUN_02020130
+.extern FUN_020201DC
+.extern FUN_020201E4
+.extern FUN_02020208
+.extern FUN_0202022C
+.extern FUN_02020248
+.extern FUN_02020310
+.extern FUN_02020354
+.extern FUN_02020388
+.extern FUN_02020398
+.extern FUN_02020968
+.extern FUN_02020988
+.extern FUN_02020AFC
+.extern FUN_02021590
+.extern FUN_020215C8
+.extern FUN_020215E0
+.extern FUN_02021750
+.extern FUN_020218D8
+.extern FUN_02021934
+.extern FUN_0202199C
+.extern FUN_020219F4
+.extern FUN_02021A20
+.extern FUN_02021A4C
+.extern FUN_02021A74
+.extern FUN_02021CE0
+.extern FUN_02021D3C
+.extern FUN_02021E28
+.extern FUN_02021EF0
+.extern FUN_02021F2C
+.extern FUN_0202212C
+.extern FUN_02022294
+.extern FUN_020222AC
+.extern FUN_020222B4
+.extern FUN_020222C4
+.extern FUN_020222E8
+.extern FUN_020222F0
+.extern FUN_020222F8
+.extern FUN_02022300
+.extern FUN_02022308
+.extern FUN_02022310
+.extern FUN_02022318
+.extern FUN_020223BC
+.extern FUN_02022504
+.extern FUN_02022510
+.extern FUN_02022528
+.extern FUN_02022534
+.extern FUN_02022540
+.extern FUN_0202254C
+.extern FUN_020225F8
+.extern FUN_02022610
+.extern FUN_0202263C
+.extern FUN_02022720
+.extern FUN_020227FC
+.extern FUN_02022800
+.extern FUN_02022804
+.extern FUN_0202280C
+.extern FUN_0202282C
+.extern FUN_02022830
+.extern FUN_0202287C
+.extern FUN_02023788
+.extern FUN_02023794
+.extern FUN_02023818
+.extern FUN_0202381C
+.extern FUN_02023828
+.extern FUN_02023874
+.extern FUN_02023884
+.extern FUN_020238F4
+.extern FUN_0202390C
+.extern FUN_02023918
+.extern FUN_02023924
+.extern FUN_02023928
+.extern FUN_0202393C
+.extern FUN_0202395C
+.extern FUN_0202397C
+.extern FUN_0202398C
+.extern FUN_02023990
+.extern FUN_020239A0
+.extern FUN_020239BC
+.extern FUN_020239C0
+.extern FUN_020239C8
+.extern FUN_020239CC
+.extern FUN_020239D0
+.extern FUN_020239E4
+.extern FUN_02023A10
+.extern FUN_02023A28
+.extern FUN_02023A2C
+.extern FUN_02023A30
+.extern FUN_02023A54
+.extern FUN_02023A68
+.extern FUN_02023A70
+.extern FUN_02023A78
+.extern FUN_02023A88
+.extern FUN_02023A90
+.extern FUN_02023A9C
+.extern FUN_02023AA4
+.extern FUN_02023AF4
+.extern FUN_02023B0C
+.extern FUN_02023BD4
+.extern FUN_02023C90
+.extern FUN_02023D58
+.extern FUN_02023D6C
+.extern FUN_02023D80
+.extern FUN_020243C8
+.extern FUN_02024404
+.extern FUN_02024440
+.extern FUN_0202445C
+.extern FUN_020244A4
+.extern FUN_020244EC
+.extern FUN_02024504
+.extern FUN_02024518
+.extern FUN_02024550
+.extern FUN_020245F0
+.extern FUN_0202471C
+.extern FUN_0202498C
+.extern FUN_02024AF0
+.extern FUN_02024C84
+.extern FUN_02024CA4
+.extern FUN_02024CE0
+.extern FUN_02024D4C
+.extern FUN_02024D64
+.extern FUN_02024D80
+.extern FUN_02024DA0
+.extern FUN_02024EB4
+.extern FUN_02024EC0
+.extern FUN_02024ECC
+.extern FUN_02024ED8
+.extern FUN_02024EE8
+.extern FUN_02024F0C
+.extern FUN_02024F30
+.extern FUN_02024F44
+.extern FUN_02024FF4
+.extern FUN_02025084
+.extern FUN_02025128
+.extern FUN_02025238
+.extern FUN_02025244
+.extern FUN_0202524C
+.extern FUN_02025268
+.extern FUN_02025274
+.extern FUN_020252AC
+.extern FUN_020252C4
+.extern FUN_020252D0
+.extern FUN_020252DC
+.extern FUN_020252E8
+.extern FUN_020252F4
+.extern FUN_020253E0
+.extern FUN_02025484
+.extern FUN_02025490
+.extern FUN_020254A0
+.extern FUN_020254B4
+.extern FUN_020254C0
+.extern FUN_02025520
+.extern FUN_02025614
+.extern FUN_02025658
+.extern FUN_020256AC
+.extern FUN_020256BC
+.extern FUN_020256D0
+.extern FUN_020256DC
+.extern FUN_020257C0
+.extern FUN_020257C4
+.extern FUN_020257C8
+.extern FUN_020257CC
+.extern FUN_020257D0
+.extern FUN_020257D8
+.extern FUN_020257DC
+.extern FUN_020257E0
+.extern FUN_02025814
+.extern FUN_02025824
+.extern FUN_02025838
+.extern FUN_02025864
+.extern FUN_02025878
+.extern FUN_02025888
+.extern FUN_0202589C
+.extern FUN_020258B0
+.extern FUN_020258D4
+.extern FUN_02025A60
+.extern FUN_02025B60
+.extern FUN_02025B94
+.extern FUN_02025BE8
+.extern FUN_02025C30
+.extern FUN_02025C40
+.extern FUN_02025D6C
+.extern FUN_02025D94
+.extern FUN_02025DB0
+.extern FUN_020260C4
+.extern FUN_02026298
+.extern FUN_020266B0
+.extern FUN_020266C8
+.extern FUN_020268D4
+.extern FUN_02026908
+.extern FUN_02026970
+.extern FUN_020269A0
+.extern FUN_020269CC
+.extern FUN_020269D4
+.extern FUN_02026BC8
+.extern FUN_02026C00
+.extern FUN_02026CB4
+.extern FUN_02026CC4
+.extern FUN_02026FE4
+.extern FUN_02026FE8
+.extern FUN_02027008
+.extern FUN_02027044
+.extern FUN_0202708C
+.extern FUN_02027098
+.extern FUN_020270B4
+.extern FUN_020270D8
+.extern FUN_02027100
+.extern FUN_02027114
+.extern FUN_02027168
+.extern FUN_02027184
+.extern FUN_020271A4
+.extern FUN_02027210
+.extern FUN_02027264
+.extern FUN_02027478
+.extern FUN_020275D8
+.extern FUN_02027608
+.extern FUN_0202763C
+.extern FUN_0202769C
+.extern FUN_020276A8
+.extern FUN_02027710
+.extern FUN_02027740
+.extern FUN_0202787C
+.extern FUN_020278AC
+.extern FUN_020278DC
+.extern FUN_02027914
+.extern FUN_02027964
+.extern FUN_02027E24
+.extern FUN_02027E34
+.extern FUN_02027E5C
+.extern FUN_02027F04
+.extern FUN_02027FBC
+.extern FUN_02027FDC
+.extern FUN_02028048
+.extern FUN_02028074
+.extern FUN_02028094
+.extern FUN_020280B8
+.extern FUN_020280F4
+.extern FUN_02028174
+.extern FUN_02028190
+.extern FUN_020281B8
+.extern FUN_02028448
+.extern FUN_020286EC
+.extern FUN_02028700
+.extern FUN_02028754
+.extern FUN_02028788
+.extern FUN_020287A4
+.extern FUN_020287A8
+.extern FUN_020287C0
+.extern FUN_020287EC
+.extern FUN_02028810
+.extern FUN_0202881C
+.extern FUN_02028828
+.extern FUN_02028840
+.extern FUN_02028930
+.extern FUN_02028934
+.extern FUN_02028954
+.extern FUN_0202896C
+.extern FUN_020289A4
+.extern FUN_020289B0
+.extern FUN_02028A20
+.extern FUN_02028AD4
+.extern FUN_02028FA4
+.extern FUN_02029048
+.extern FUN_02029120
+.extern FUN_0202912C
+.extern FUN_02029138
+.extern FUN_0202914C
+.extern FUN_0202918C
+.extern FUN_0202920C
+.extern FUN_0202942C
+.extern FUN_02029500
+.extern FUN_02029880
+.extern FUN_020299C0
+.extern FUN_020299DC
+.extern FUN_02029ABC
+.extern FUN_02029AC8
+.extern FUN_02029ACC
+.extern FUN_02029AD0
+.extern FUN_02029AD8
+.extern FUN_02029AFC
+.extern FUN_02029B38
+.extern FUN_02029B3C
+.extern FUN_02029C08
+.extern FUN_02029C74
+.extern FUN_02029C80
+.extern FUN_02029C8C
+.extern FUN_02029CC8
+.extern FUN_02029CE0
+.extern FUN_02029CEC
+.extern FUN_02029D44
+.extern FUN_02029DD4
+.extern FUN_02029E0C
+.extern FUN_02029E2C
+.extern FUN_02029EBC
+.extern FUN_02029EC0
+.extern FUN_02029EC4
+.extern FUN_02029EE4
+.extern FUN_02029EF8
+.extern FUN_02029F04
+.extern FUN_02029F10
+.extern FUN_02029F14
+.extern FUN_02029F4C
+.extern FUN_02029F9C
+.extern FUN_02029FC8
+.extern FUN_0202A07C
+.extern FUN_0202A0A8
+.extern FUN_0202A0E8
+.extern FUN_0202A11C
+.extern FUN_0202A150
+.extern FUN_0202A170
+.extern FUN_0202A1B8
+.extern FUN_0202A240
+.extern FUN_0202A2C4
+.extern FUN_0202A3B4
+.extern FUN_0202A498
+.extern FUN_0202A520
+.extern FUN_0202A538
+.extern FUN_0202A578
+.extern FUN_0202A5CC
+.extern FUN_0202A5D0
+.extern FUN_0202A5D4
+.extern FUN_0202A5F4
+.extern FUN_0202A74C
+.extern FUN_0202A864
+.extern FUN_0202A8CC
+.extern FUN_0202A8D8
+.extern FUN_0202A8E4
+.extern FUN_0202A918
+.extern FUN_0202A988
+.extern FUN_0202A990
+.extern FUN_0202A9AC
+.extern FUN_0202A9B0
+.extern FUN_0202A9D0
+.extern FUN_0202AA00
+.extern FUN_0202AA14
+.extern FUN_0202AA20
+.extern FUN_0202AA38
+.extern FUN_0202AA40
+.extern FUN_0202AA58
+.extern FUN_0202AA74
+.extern FUN_0202AAA0
+.extern FUN_0202AAFC
+.extern FUN_0202AB40
+.extern FUN_0202AB68
+.extern FUN_0202AF70
+.extern FUN_0202AF88
+.extern FUN_0202AF9C
+.extern FUN_0202AFC0
+.extern FUN_0202AFFC
+.extern FUN_0202B020
+.extern FUN_0202B03C
+.extern FUN_0202B050
+.extern FUN_0202B21C
+.extern FUN_0202B3C4
+.extern FUN_0202B4B0
+.extern FUN_0202B710
+.extern FUN_0202B838
+.extern FUN_0202B844
+.extern FUN_0202B850
+.extern FUN_0202B85C
+.extern FUN_0202B868
+.extern FUN_0202B870
+.extern FUN_0202B87C
+.extern FUN_0202B8E4
+.extern FUN_0202B8F0
+.extern FUN_0202BD6C
+.extern FUN_0202BDF0
+.extern FUN_0202BE6C
+.extern FUN_0202BEDC
+.extern FUN_0202BFD8
+.extern FUN_0202C000
+.extern FUN_0202C108
+.extern FUN_0202C144
+.extern FUN_0202CB8C
+.extern FUN_0202D8B0
+.extern FUN_0202D8D0
+.extern FUN_0202DBE0
+.extern FUN_0202DCF8
+.extern FUN_0202DDE8
+.extern FUN_0202DE78
+.extern FUN_0202DFA4
+.extern FUN_0202E020
+.extern FUN_0202E044
+.extern FUN_0202E25C
+.extern FUN_0202E4C8
+.extern FUN_0202EDD8
+.extern FUN_0202EDF8
+.extern FUN_0202EE0C
+.extern FUN_0202EE24
+.extern FUN_0202EE44
+.extern FUN_0202EF18
+.extern FUN_0202EF84
+.extern FUN_0202F078
+.extern FUN_0202F094
+.extern FUN_0202F0B8
+.extern FUN_0202FA10
+.extern FUN_0202FA1C
+.extern FUN_0202FA48
+.extern FUN_0202FB80
+.extern FUN_02030A78
+.extern FUN_02030ADC
+.extern FUN_02030B3C
+.extern FUN_02030BC4
+.extern FUN_02030C4C
+.extern FUN_02030C58
+.extern FUN_02030E7C
+.extern FUN_02030F20
+.extern FUN_02030F40
+.extern FUN_02030F60
+.extern FUN_02030F74
+.extern FUN_02030F88
+.extern FUN_02030FA8
+.extern FUN_02030FC8
+.extern FUN_02030FE0
+.extern FUN_02031190
+.extern FUN_020311D0
+.extern FUN_020311DC
+.extern FUN_020311E8
+.extern FUN_020311F0
+.extern FUN_02031248
+.extern FUN_02031280
+.extern FUN_020312BC
+.extern FUN_020313B4
+.extern FUN_020313EC
+.extern FUN_02031400
+.extern FUN_02031438
+.extern FUN_02031588
+.extern FUN_020315D8
+.extern FUN_020315FC
+.extern FUN_0203168C
+.extern FUN_020316AC
+.extern FUN_020316E0
+.extern FUN_02031810
+.extern FUN_02031824
+.extern FUN_02031860
+.extern FUN_02031880
+.extern FUN_020318B4
+.extern FUN_020318C4
+.extern FUN_02031914
+.extern FUN_02031924
+.extern FUN_02031934
+.extern FUN_02031948
+.extern FUN_02031990
+.extern FUN_020319D8
+.extern FUN_020319F4
+.extern FUN_02031A08
+.extern FUN_02031A2C
+.extern FUN_02031A7C
+.extern FUN_02031AC8
+.extern FUN_02031AF4
+.extern FUN_02031B2C
+.extern FUN_02031B50
+.extern FUN_02031BD0
+.extern FUN_02031BF4
+.extern FUN_02031C2C
+.extern FUN_02031C54
+.extern FUN_02031C64
+.extern FUN_02032888
+.extern FUN_020328C0
+.extern FUN_020328F4
+.extern FUN_02032B6C
+.extern FUN_02032DAC
+.extern FUN_020334E8
+.extern FUN_02033534
+.extern FUN_02033564
+.extern FUN_02033578
+.extern FUN_020335B8
+.extern FUN_020335F0
+.extern FUN_02033678
+.extern FUN_020337E8
+.extern FUN_0203384C
+.extern FUN_02033E74
+.extern FUN_02033ED0
+.extern FUN_02033F20
+.extern FUN_02033F70
+.extern FUN_02034188
+.extern FUN_020344AC
+.extern FUN_020344D8
+.extern FUN_020344FC
+.extern FUN_0203450C
+.extern FUN_0203451C
+.extern FUN_02034678
+.extern FUN_020346CC
+.extern FUN_02034774
+.extern FUN_02034788
+.extern FUN_020347B0
+.extern FUN_020347C4
+.extern FUN_02034824
+.extern FUN_0203484C
+.extern FUN_02034860
+.extern FUN_0203487C
+.extern FUN_02034898
+.extern FUN_020348B4
+.extern FUN_020348E4
+.extern FUN_02034908
+.extern FUN_02034930
+.extern FUN_02034944
+.extern FUN_02034964
+.extern FUN_02034998
+.extern FUN_020349D8
+.extern FUN_020349E4
+.extern FUN_02034A04
+.extern FUN_02034A60
+.extern FUN_02034AC8
+.extern FUN_02034AF0
+.extern FUN_02034AF8
+.extern FUN_02034B00
+.extern FUN_02034B64
+.extern FUN_02034B6C
+.extern FUN_02034B74
+.extern FUN_02034BAC
+.extern FUN_02034BDC
+.extern FUN_02034C0C
+.extern FUN_02034C24
+.extern FUN_02034C34
+.extern FUN_02034D2C
+.extern FUN_02034D44
+.extern FUN_02034DC4
+.extern FUN_02034DC8
+.extern FUN_02034DCC
+.extern FUN_02034DD0
+.extern FUN_02034DD4
+.extern FUN_02034DE8
+.extern FUN_02034DEC
+.extern FUN_02034DF4
+.extern FUN_02034DFC
+.extern FUN_02034E04
+.extern FUN_02034E0C
+.extern FUN_02034E10
+.extern FUN_02034E18
+.extern FUN_02034E20
+.extern FUN_02034E24
+.extern FUN_02034E28
+.extern FUN_02034E30
+.extern FUN_02034E48
+.extern FUN_02034E60
+.extern FUN_02034E8C
+.extern FUN_02034E90
+.extern FUN_02034EC4
+.extern FUN_02034EF8
+.extern FUN_02034F1C
+.extern FUN_02034F40
+.extern FUN_02034F88
+.extern FUN_02034FC0
+.extern FUN_02034FE4
+.extern FUN_02035068
+.extern FUN_020351A0
+.extern FUN_02035D04
+.extern FUN_02035E50
+.extern FUN_02036A78
+.extern FUN_02036AB8
+.extern FUN_02036B90
+.extern FUN_02036BC4
+.extern FUN_02036BDC
+.extern FUN_02036D94
+.extern FUN_02036DD4
+.extern FUN_02037024
+.extern FUN_02037350
+.extern FUN_02037394
+.extern FUN_0203739C
+.extern FUN_020373AC
+.extern FUN_020373C4
+.extern FUN_020373D4
+.extern FUN_02037760
+.extern FUN_02037778
+.extern FUN_020377A8
+.extern FUN_020377AC
+.extern FUN_020377B0
+.extern FUN_020377C8
+.extern FUN_0203780C
+.extern FUN_0203789C
+.extern FUN_020378FC
+.extern FUN_02037944
+.extern FUN_020379F8
+.extern FUN_02037A1C
+.extern FUN_02037A40
+.extern FUN_02037A48
+.extern FUN_02037A70
+.extern FUN_02037A78
+.extern FUN_02037B44
+.extern FUN_02037BB0
+.extern FUN_02037C00
+.extern FUN_02037CF0
+.extern FUN_02037D5C
+.extern FUN_02037D60
+.extern FUN_02037E18
+.extern FUN_02037E80
+.extern FUN_02037E90
+.extern FUN_02037EB8
+.extern FUN_02037F2C
+.extern FUN_02037F58
+.extern FUN_02037FC4
+.extern FUN_02037FE4
+.extern FUN_020380CC
+.extern FUN_02038130
+.extern FUN_020383D8
+.extern FUN_020383F8
+.extern FUN_0203842C
+.extern FUN_0203846C
+.extern FUN_020385CC
+.extern FUN_02038680
+.extern FUN_020386A4
+.extern FUN_020386B4
+.extern FUN_020386E0
+.extern FUN_02038790
+.extern FUN_02038804
+.extern FUN_02038814
+.extern FUN_02038824
+.extern FUN_02038854
+.extern FUN_02038864
+.extern FUN_0203888C
+.extern FUN_020388B4
+.extern FUN_020389CC
+.extern FUN_02038AD0
+.extern FUN_02038AF4
+.extern FUN_02038B6C
+.extern FUN_02038C78
+.extern FUN_02038CA8
+.extern FUN_02038CD8
+.extern FUN_02038D10
+.extern FUN_02038EB0
+.extern FUN_02039438
+.extern FUN_02039460
+.extern FUN_020394B8
+.extern FUN_020394F0
+.extern FUN_02039504
+.extern FUN_02039528
+.extern FUN_0203953C
+.extern FUN_02039550
+.extern FUN_02039564
+.extern FUN_0203959C
+.extern FUN_020395BC
+.extern FUN_020395F4
+.extern FUN_02039618
+.extern FUN_0203962C
+.extern FUN_02039640
+.extern FUN_0203965C
+.extern FUN_02039678
+.extern FUN_02039694
+.extern FUN_02039874
+.extern FUN_0203989C
+.extern FUN_020399A0
+.extern FUN_020399A4
+.extern FUN_020399A8
+.extern FUN_020399B4
+.extern FUN_02039A10
+.extern FUN_02039A28
+.extern FUN_02039A40
+.extern FUN_02039A5C
+.extern FUN_02039A78
+.extern FUN_02039A90
+.extern FUN_02039AAC
+.extern FUN_02039ACC
+.extern FUN_02039AF8
+.extern FUN_02039B28
+.extern FUN_02039B50
+.extern FUN_02039B78
+.extern FUN_02039BA0
+.extern FUN_02039BBC
+.extern FUN_02039BDC
+.extern FUN_02039C08
+.extern FUN_02039C40
+.extern FUN_02039C78
+.extern FUN_02039CE4
+.extern FUN_02039CF8
+.extern FUN_02039D10
+.extern FUN_02039D48
+.extern FUN_02039D78
+.extern FUN_02039DAC
+.extern FUN_02039DC4
+.extern FUN_02039DD0
+.extern FUN_02039E04
+.extern FUN_02039E38
+.extern FUN_02039E50
+.extern FUN_02039E68
+.extern FUN_02039E84
+.extern FUN_02039EC0
+.extern FUN_02039EE8
+.extern FUN_02039F0C
+.extern FUN_02039F30
+.extern FUN_02039F58
+.extern FUN_02039F88
+.extern FUN_02039FB8
+.extern FUN_02039FDC
+.extern FUN_0203A00C
+.extern FUN_0203A038
+.extern FUN_0203A04C
+.extern FUN_0203A098
+.extern FUN_0203A0FC
+.extern FUN_0203A13C
+.extern FUN_0203A188
+.extern FUN_0203A210
+.extern FUN_0203A288
+.extern FUN_0203A2C4
+.extern FUN_0203A304
+.extern FUN_0203A340
+.extern FUN_0203A388
+.extern FUN_0203A3C4
+.extern FUN_0203A400
+.extern FUN_0203A45C
+.extern FUN_0203A484
+.extern FUN_0203A4D0
+.extern FUN_0203A560
+.extern FUN_0203A590
+.extern FUN_0203A5D8
+.extern FUN_0203A608
+.extern FUN_0203A630
+.extern FUN_0203A780
+.extern FUN_0203A830
+.extern FUN_0203A85C
+.extern FUN_0203A878
+.extern FUN_0203A8B8
+.extern FUN_0203A9F0
+.extern FUN_0203AA90
+.extern FUN_0203AAA0
+.extern FUN_0203AB44
+.extern FUN_0203AB74
+.extern FUN_0203AB8C
+.extern FUN_0203AC14
+.extern FUN_0203AC9C
+.extern FUN_0203ACC4
+.extern FUN_0203AD08
+.extern FUN_0203AD54
+.extern FUN_0203ADC4
+.extern FUN_0203AE4C
+.extern FUN_0203AED4
+.extern FUN_0203AF34
+.extern FUN_0203AF58
+.extern FUN_0203AF84
+.extern FUN_0203AFA4
+.extern FUN_0203AFC4
+.extern FUN_0203B024
+.extern FUN_0203B148
+.extern FUN_0203B1F0
+.extern FUN_0203B2E0
+.extern FUN_0203B3B0
+.extern FUN_0203B3C0
+.extern FUN_0203B3DC
+.extern FUN_0203B3F8
+.extern FUN_0203B440
+.extern FUN_0203B468
+.extern FUN_0203B500
+.extern FUN_0203B544
+.extern FUN_0203B574
+.extern FUN_0203B5B8
+.extern FUN_0203B618
+.extern FUN_0203B640
+.extern FUN_0203B724
+.extern FUN_0203B758
+.extern FUN_0203B790
+.extern FUN_0203B7D8
+.extern FUN_0203B7F0
+.extern FUN_0203B81C
+.extern FUN_0203B85C
+.extern FUN_0203B8A0
+.extern FUN_0203B8E4
+.extern FUN_0203B914
+.extern FUN_0203B944
+.extern FUN_0203B968
+.extern FUN_0203B9B4
+.extern FUN_0203BA3C
+.extern FUN_0203BAB0
+.extern FUN_0203BAF4
+.extern FUN_0203BB34
+.extern FUN_0203BB80
+.extern FUN_0203BB84
+.extern FUN_0203BB88
+.extern FUN_0203BB8C
+.extern FUN_0203BC1C
+.extern FUN_0203BC2C
+.extern FUN_0203BCBC
+.extern FUN_0203BCCC
+.extern FUN_0203BCD8
+.extern FUN_0203BD08
+.extern FUN_0203BD28
+.extern FUN_0203BDB8
+.extern FUN_0203BE50
+.extern FUN_0203BE68
+.extern FUN_0203BE80
+.extern FUN_0203BECC
+.extern FUN_0203BF00
+.extern FUN_0203BF20
+.extern FUN_0203BF2C
+.extern FUN_0203BF84
+.extern FUN_0203BFEC
+.extern FUN_0203C054
+.extern FUN_0203C090
+.extern FUN_0203C0CC
+.extern FUN_0203C0FC
+.extern FUN_0203C118
+.extern FUN_0203C12C
+.extern FUN_0203C174
+.extern FUN_0203C1AC
+.extern FUN_0203C200
+.extern FUN_0203C278
+.extern FUN_0203C2C4
+.extern FUN_0203C2E0
+.extern FUN_0203C2F0
+.extern FUN_0203C300
+.extern FUN_0203C32C
+.extern FUN_0203C33C
+.extern FUN_0203C368
+.extern FUN_0203C3C8
+.extern FUN_0203C3E8
+.extern FUN_0203C430
+.extern FUN_0203C460
+.extern FUN_0203C4B0
+.extern FUN_0203C4F0
+.extern FUN_0203C520
+.extern FUN_0203C58C
+.extern FUN_0203C5BC
+.extern FUN_0203C614
+.extern FUN_0203C680
+.extern FUN_0203C6C4
+.extern FUN_0203C70C
+.extern FUN_0203C730
+.extern FUN_0203C788
+.extern FUN_0203C7E4
+.extern FUN_0203C7F4
+.extern FUN_0203C820
+.extern FUN_0203C844
+.extern FUN_0203C874
+.extern FUN_0203C8B4
+.extern FUN_0203C8E4
+.extern FUN_0203C930
+.extern FUN_0203C960
+.extern FUN_0203C990
+.extern FUN_0203CA20
+.extern FUN_0203CA2C
+.extern FUN_0203CA5C
+.extern FUN_0203CAE8
+.extern FUN_0203CB08
+.extern FUN_0203CB20
+.extern FUN_0203CB48
+.extern FUN_0203CB60
+.extern FUN_0203CB70
+.extern FUN_0203CBBC
+.extern FUN_0203CBE8
+.extern FUN_0203CC88
+.extern FUN_0203CD20
+.extern FUN_0203CDB8
+.extern FUN_0203CDC4
+.extern FUN_0203CDD0
+.extern FUN_0203CE00
+.extern FUN_0203CE0C
+.extern FUN_0203CE8C
+.extern FUN_0203CEBC
+.extern FUN_0203CF04
+.extern FUN_0203CF34
+.extern FUN_0203CF64
+.extern FUN_0203CF94
+.extern FUN_0203CFC4
+.extern FUN_0203CFC8
+.extern FUN_0203D050
+.extern FUN_0203D0A4
+.extern FUN_0203D0F8
+.extern FUN_0203D134
+.extern FUN_0203D140
+.extern FUN_0203D150
+.extern FUN_0203D178
+.extern FUN_0203D194
+.extern FUN_0203D1A4
+.extern FUN_0203D1C0
+.extern FUN_0203D214
+.extern FUN_0203D23C
+.extern FUN_0203D248
+.extern FUN_0203D278
+.extern FUN_0203D2A4
+.extern FUN_0203D2E4
+.extern FUN_0203D330
+.extern FUN_0203D33C
+.extern FUN_0203D36C
+.extern FUN_0203D3A4
+.extern FUN_0203D3DC
+.extern FUN_0203D448
+.extern FUN_0203D458
+.extern FUN_0203D490
+.extern FUN_0203D4E8
+.extern FUN_0203D528
+.extern FUN_0203D560
+.extern FUN_0203D5B0
+.extern FUN_0203D5F8
+.extern FUN_0203D60C
+.extern FUN_0203D61C
+.extern FUN_0203D630
+.extern FUN_0203D66C
+.extern FUN_0203D6C4
+.extern FUN_0203D728
+.extern FUN_0203D738
+.extern FUN_0203D774
+.extern FUN_0203D7DC
+.extern FUN_0203D834
+.extern FUN_0203D868
+.extern FUN_0203D874
+.extern FUN_0203D8A0
+.extern FUN_0203D8D0
+.extern FUN_0203D8E8
+.extern FUN_0203D8EC
+.extern FUN_0203D920
+.extern FUN_0203D938
+.extern FUN_0203D948
+.extern FUN_0203D958
+.extern FUN_0203D998
+.extern FUN_0203D9E8
+.extern FUN_0203DA78
+.extern FUN_0203DAB0
+.extern FUN_0203DAE8
+.extern FUN_0203DB38
+.extern FUN_0203DB88
+.extern FUN_0203DBD4
+.extern FUN_0203DC00
+.extern FUN_0203DC58
+.extern FUN_0203DC70
+.extern FUN_0203DC88
+.extern FUN_0203DCA0
+.extern FUN_0203DCB8
+.extern FUN_0203DCC8
+.extern FUN_0203DCD8
+.extern FUN_0203DCE8
+.extern FUN_0203DCF8
+.extern FUN_0203DD08
+.extern FUN_0203DD18
+.extern FUN_0203DD34
+.extern FUN_0203DD50
+.extern FUN_0203DD60
+.extern FUN_0203DE00
+.extern FUN_0203DE4C
+.extern FUN_0203DE58
+.extern FUN_0203DE80
+.extern FUN_0203DEA8
+.extern FUN_0203DEC4
+.extern FUN_0203DEF8
+.extern FUN_0203DF2C
+.extern FUN_0203DF38
+.extern FUN_0203DF64
+.extern FUN_0203DF84
+.extern FUN_0203DFA8
+.extern FUN_0203DFE0
+.extern FUN_0203E018
+.extern FUN_0203E054
+.extern FUN_0203E078
+.extern FUN_0203E0CC
+.extern FUN_0203E120
+.extern FUN_0203E138
+.extern FUN_0203E168
+.extern FUN_0203E254
+.extern FUN_0203E258
+.extern FUN_0203E29C
+.extern FUN_0203E2F8
+.extern FUN_0203E35C
+.extern FUN_0203E38C
+.extern FUN_0203E3D0
+.extern FUN_0203E408
+.extern FUN_0203E440
+.extern FUN_0203E470
+.extern FUN_0203E4A0
+.extern FUN_0203E4B0
+.extern FUN_0203E4D8
+.extern FUN_0203E4F0
+.extern FUN_0203E510
+.extern FUN_0203E568
+.extern FUN_0203E5DC
+.extern FUN_0203E674
+.extern FUN_0203E684
+.extern FUN_0203E6B4
+.extern FUN_0203E6C4
+.extern FUN_0203E6FC
+.extern FUN_0203E72C
+.extern FUN_0203E744
+.extern FUN_0203E774
+.extern FUN_0203E7F0
+.extern FUN_0203E81C
+.extern FUN_0203E848
+.extern FUN_0203E858
+.extern FUN_0203E870
+.extern FUN_0203E894
+.extern FUN_0203E8C4
+.extern FUN_0203E8F4
+.extern FUN_0203E928
+.extern FUN_0203E940
+.extern FUN_0203E954
+.extern FUN_0203E968
+.extern FUN_0203E9CC
+.extern FUN_0203EA68
+.extern FUN_0203EA90
+.extern FUN_0203EAB0
+.extern FUN_0203EB20
+.extern FUN_0203EB48
+.extern FUN_0203EB88
+.extern FUN_0203EBC8
+.extern FUN_0203EBE4
+.extern FUN_0203ECAC
+.extern FUN_0203ECD8
+.extern FUN_0203ECF4
+.extern FUN_0203ED10
+.extern FUN_0203ED70
+.extern FUN_0203EDA4
+.extern FUN_0203EDC8
+.extern FUN_0203EDE0
+.extern FUN_0203EE08
+.extern FUN_0203EE18
+.extern FUN_0203EE28
+.extern FUN_0203EE58
+.extern FUN_0203EE68
+.extern FUN_0203EE78
+.extern FUN_0203EE98
+.extern FUN_0203EED8
+.extern FUN_0203EF58
+.extern FUN_0203F00C
+.extern FUN_0203F020
+.extern FUN_0203F034
+.extern FUN_0203F058
+.extern FUN_0203F07C
+.extern FUN_0203F110
+.extern FUN_0203F174
+.extern FUN_0203F19C
+.extern FUN_0203F234
+.extern FUN_0203F254
+.extern FUN_0203F26C
+.extern FUN_0203F2AC
+.extern FUN_0203F2E4
+.extern FUN_0203F31C
+.extern FUN_0203F348
+.extern FUN_0203F38C
+.extern FUN_0203F39C
+.extern FUN_0203F3AC
+.extern FUN_0203F418
+.extern FUN_0203F44C
+.extern FUN_0203F484
+.extern FUN_0203F4D8
+.extern FUN_0203F508
+.extern FUN_0203F5D4
+.extern FUN_0203F604
+.extern FUN_0203F634
+.extern FUN_0203F664
+.extern FUN_0203F6E4
+.extern FUN_0203F720
+.extern FUN_0203F760
+.extern FUN_0203F7C8
+.extern FUN_0203F80C
+.extern FUN_0203F880
+.extern FUN_0203F8C0
+.extern FUN_0203F924
+.extern FUN_0203F954
+.extern FUN_0203F988
+.extern FUN_0203F9B0
+.extern FUN_0203F9DC
+.extern FUN_0203FA14
+.extern FUN_0203FA58
+.extern FUN_0203FB4C
+.extern FUN_0203FB64
+.extern FUN_0203FB94
+.extern FUN_0203FBA0
+.extern FUN_0203FBAC
+.extern FUN_0203FBBC
+.extern FUN_0203FC1C
+.extern FUN_0203FC58
+.extern FUN_0203FC80
+.extern FUN_0203FCB0
+.extern FUN_0203FCDC
+.extern FUN_0203FCF4
+.extern FUN_0203FDBC
+.extern FUN_0203FE08
+.extern FUN_0203FE48
+.extern FUN_0203FE80
+.extern FUN_0203FE90
+.extern FUN_0203FEC0
+.extern FUN_0203FF10
+.extern FUN_02040028
+.extern FUN_02040074
+.extern FUN_020400C8
+.extern FUN_0204011C
+.extern FUN_02040170
+.extern FUN_020401CC
+.extern FUN_02040204
+.extern FUN_02040220
+.extern FUN_0204025C
+.extern FUN_02040298
+.extern FUN_020402D4
+.extern FUN_02040304
+.extern FUN_02040340
+.extern FUN_02040370
+.extern FUN_020403A0
+.extern FUN_020403D0
+.extern FUN_02040414
+.extern FUN_02040458
+.extern FUN_02040488
+.extern FUN_020404FC
+.extern FUN_0204052C
+.extern FUN_0204056C
+.extern FUN_0204059C
+.extern FUN_020405B4
+.extern FUN_020405CC
+.extern FUN_020405F8
+.extern FUN_02040638
+.extern FUN_0204064C
+.extern FUN_02040660
+.extern FUN_020406C0
+.extern FUN_020406CC
+.extern FUN_02040700
+.extern FUN_02040724
+.extern FUN_02040748
+.extern FUN_02040790
+.extern FUN_020407C8
+.extern FUN_02040800
+.extern FUN_0204083C
+.extern FUN_02040874
+.extern FUN_020408BC
+.extern FUN_0204091C
+.extern FUN_02040964
+.extern FUN_020409C0
+.extern FUN_020409F8
+.extern FUN_02040A30
+.extern FUN_02040A7C
+.extern FUN_02040B0C
+.extern FUN_02040B5C
+.extern FUN_02040BAC
+.extern FUN_02040BFC
+.extern FUN_02040C34
+.extern FUN_02040C6C
+.extern FUN_02040CA4
+.extern FUN_02040D04
+.extern FUN_02040D7C
+.extern FUN_02040DB4
+.extern FUN_02040DEC
+.extern FUN_02040E4C
+.extern FUN_02040EB4
+.extern FUN_02040EF8
+.extern FUN_02040F34
+.extern FUN_02040F6C
+.extern FUN_02040FA4
+.extern FUN_02040FDC
+.extern FUN_02041014
+.extern FUN_0204104C
+.extern FUN_02041094
+.extern FUN_020410C8
+.extern FUN_02041100
+.extern FUN_02041138
+.extern FUN_02041174
+.extern FUN_02041194
+.extern FUN_020411C4
+.extern FUN_02041340
+.extern FUN_020413C0
+.extern FUN_020413E8
+.extern FUN_020413F8
+.extern FUN_0204140C
+.extern FUN_02041424
+.extern FUN_0204143C
+.extern FUN_02041478
+.extern FUN_0204149C
+.extern FUN_020414B8
+.extern FUN_020414CC
+.extern FUN_020414E0
+.extern FUN_020414FC
+.extern FUN_02041518
+.extern FUN_02041558
+.extern FUN_02041588
+.extern FUN_020415AC
+.extern FUN_020415BC
+.extern FUN_020415E0
+.extern FUN_02041618
+.extern FUN_02041644
+.extern FUN_02041650
+.extern FUN_02041664
+.extern FUN_02041674
+.extern FUN_020416A8
+.extern FUN_02041770
+.extern FUN_020417E0
+.extern FUN_02041808
+.extern FUN_0204185C
+.extern FUN_0204188C
+.extern FUN_0204190C
+.extern FUN_02041970
+.extern FUN_020419F8
+.extern FUN_02041A80
+.extern FUN_02041AB4
+.extern FUN_02041AD4
+.extern FUN_02041AE0
+.extern FUN_02041B10
+.extern FUN_02041B40
+.extern FUN_02041B70
+.extern FUN_02041B9C
+.extern FUN_02041BC4
+.extern FUN_02041BF0
+.extern FUN_02041C38
+.extern FUN_02041E40
+.extern FUN_02041FDC
+.extern FUN_02042000
+.extern FUN_02042038
+.extern FUN_02042110
+.extern FUN_0204214C
+.extern FUN_02042354
+.extern FUN_02042364
+.extern FUN_02042394
+.extern FUN_020423B0
+.extern FUN_02042700
+.extern FUN_02042780
+.extern FUN_020427A8
+.extern FUN_020427D0
+.extern FUN_02042864
+.extern FUN_02042894
+.extern FUN_020428E0
+.extern FUN_02042950
+.extern FUN_02042980
+.extern FUN_02042998
+.extern FUN_020429B8
+.extern FUN_020429E8
+.extern FUN_02042A18
+.extern FUN_02042A48
+.extern FUN_02042A98
+.extern FUN_02042B0C
+.extern FUN_02042B40
+.extern FUN_02042B74
+.extern FUN_02042BA8
+.extern FUN_02042BDC
+.extern FUN_02042C10
+.extern FUN_02042C44
+.extern FUN_02042C8C
+.extern FUN_02042CBC
+.extern FUN_02042D1C
+.extern FUN_0204387C
+.extern FUN_020438D0
+.extern FUN_02043918
+.extern FUN_020439B4
+.extern FUN_02043A44
+.extern FUN_02043A94
+.extern FUN_02043AAC
+.extern FUN_02043ACC
+.extern FUN_02043AFC
+.extern FUN_02043B28
+.extern FUN_02043B54
+.extern FUN_02043B84
+.extern FUN_02043BD0
+.extern FUN_02043C28
+.extern FUN_02043C6C
+.extern FUN_02043C90
+.extern FUN_02043CB4
+.extern FUN_02043CE4
+.extern FUN_02043D28
+.extern FUN_02043D78
+.extern FUN_02043DC8
+.extern FUN_02043DE0
+.extern FUN_02043E00
+.extern FUN_02043E20
+.extern FUN_02043E50
+.extern FUN_02043E68
+.extern FUN_02043E9C
+.extern FUN_02043EFC
+.extern FUN_02043F50
+.extern FUN_02043FA0
+.extern FUN_02043FF4
+.extern FUN_02044034
+.extern FUN_020440C0
+.extern FUN_020440F0
+.extern FUN_02044120
+.extern FUN_02044138
+.extern FUN_0204413C
+.extern FUN_02044140
+.extern FUN_02044158
+.extern FUN_0204416C
+.extern FUN_02044198
+.extern FUN_020442BC
+.extern FUN_0204434C
+.extern FUN_020443A8
+.extern FUN_02044414
+.extern FUN_0204449C
+.extern FUN_020444F4
+.extern FUN_02044598
+.extern FUN_02044658
+.extern FUN_0204469C
+.extern FUN_02044730
+.extern FUN_0204478C
+.extern FUN_02044800
+.extern FUN_0204488C
+.extern FUN_020448D4
+.extern FUN_020449A4
+.extern FUN_02044A0C
+.extern FUN_02044A6C
+.extern FUN_02044A94
+.extern FUN_02044B00
+.extern FUN_02044B2C
+.extern FUN_02044B84
+.extern FUN_02044C0C
+.extern FUN_02044C88
+.extern FUN_02044CE0
+.extern FUN_02044D44
+.extern FUN_02044D8C
+.extern FUN_02044E34
+.extern FUN_02044E78
+.extern FUN_02044ED8
+.extern FUN_02044F20
+.extern FUN_02044F58
+.extern FUN_02044FE8
+.extern FUN_0204505C
+.extern FUN_02045104
+.extern FUN_02045170
+.extern FUN_020451D0
+.extern FUN_02045264
+.extern FUN_02045268
+.extern FUN_020452B4
+.extern FUN_02045308
+.extern FUN_02045398
+.extern FUN_0204539C
+.extern FUN_020453A0
+.extern FUN_020453F4
+.extern FUN_02045424
+.extern FUN_02045438
+.extern FUN_02045468
+.extern FUN_02045484
+.extern FUN_020454CC
+.extern FUN_02045500
+.extern FUN_0204552C
+.extern FUN_0204557C
+.extern FUN_02045590
+.extern FUN_020455BC
+.extern FUN_020455D0
+.extern FUN_020455E4
+.extern FUN_02045610
+.extern FUN_02045624
+.extern FUN_02045638
+.extern FUN_02045664
+.extern FUN_02045678
+.extern FUN_020456D4
+.extern FUN_0204572C
+.extern FUN_02045784
+.extern FUN_020457DC
+.extern FUN_02045834
+.extern FUN_0204588C
+.extern FUN_020458E4
+.extern FUN_02045918
+.extern FUN_02045950
+.extern FUN_02045954
+.extern FUN_02045958
+.extern FUN_020459AC
+.extern FUN_020459E8
+.extern FUN_02045A3C
+.extern FUN_02045A78
+.extern FUN_02045ACC
+.extern FUN_02045B08
+.extern FUN_02045B44
+.extern FUN_02045B80
+.extern FUN_02045BC8
+.extern FUN_02045C04
+.extern FUN_02045C40
+.extern FUN_02045C7C
+.extern FUN_02045CD4
+.extern FUN_02045D10
+.extern FUN_02045D4C
+.extern FUN_02045D88
+.extern FUN_02045DD0
+.extern FUN_02045E1C
+.extern FUN_02045E20
+.extern FUN_02045EE0
+.extern FUN_02045EE4
+.extern FUN_02045F24
+.extern FUN_02045F84
+.extern FUN_02045F88
+.extern FUN_02045FCC
+.extern FUN_02046010
+.extern FUN_0204601C
+.extern FUN_02046028
+.extern FUN_0204602C
+.extern FUN_02046030
+.extern FUN_020462AC
+.extern FUN_020462B8
+.extern FUN_020462E4
+.extern FUN_0204630C
+.extern FUN_02046338
+.extern FUN_02046380
+.extern FUN_020463CC
+.extern FUN_020463EC
+.extern FUN_0204640C
+.extern FUN_02046420
+.extern FUN_0204646C
+.extern FUN_0204647C
+.extern FUN_0204649C
+.extern FUN_020464A4
+.extern FUN_02046500
+.extern FUN_02046528
+.extern FUN_0204652C
+.extern FUN_02046530
+.extern FUN_02046534
+.extern FUN_02046DB4
+.extern FUN_02046E18
+.extern FUN_02046FA0
+.extern FUN_020470AC
+.extern FUN_020470E8
+.extern FUN_02047174
+.extern FUN_020480B8
+.extern FUN_020480C8
+.extern FUN_020480D8
+.extern FUN_02048498
+.extern FUN_02048694
+.extern FUN_02048C58
+.extern FUN_02048D90
+.extern FUN_02048EC8
+.extern FUN_02048FC8
+.extern FUN_02049240
+.extern FUN_02049274
+.extern FUN_02049EA4
+.extern FUN_02049F98
+.extern FUN_02049FFC
+.extern FUN_0204A048
+.extern FUN_0204A0C8
+.extern FUN_0204A120
+.extern FUN_0204A20C
+.extern FUN_0204A248
+.extern FUN_0204A32C
+.extern FUN_0204A6E0
+.extern FUN_0204AB20
+.extern FUN_0204AB58
+.extern FUN_0204ABA8
+.extern FUN_0204ABDC
+.extern FUN_0204AD0C
+.extern FUN_0204ADBC
+.extern FUN_0204ADE0
+.extern FUN_0204AF3C
+.extern FUN_0204AF84
+.extern FUN_0204B2A4
+.extern FUN_0204B2B4
+.extern FUN_0204B2C0
+.extern FUN_0204B2D8
+.extern FUN_0204B33C
+.extern FUN_0204B4FC
+.extern FUN_0204B57C
+.extern FUN_0204B5A8
+.extern FUN_0204B5FC
+.extern FUN_0204B63C
+.extern FUN_0204B660
+.extern FUN_0204B684
+.extern FUN_0204B6A4
+.extern FUN_0204B9A0
+.extern FUN_0204B9CC
+.extern FUN_0204B9EC
+.extern FUN_0204BA1C
+.extern FUN_0204BAB0
+.extern FUN_0204BAC4
+.extern FUN_0204BAD4
+.extern FUN_0204BAE4
+.extern FUN_0204BEC8
+.extern FUN_0204BED0
+.extern FUN_0204BED8
+.extern FUN_0204C104
+.extern FUN_0204C1A8
+.extern FUN_0204D6C0
+.extern FUN_0204E2FC
+.extern FUN_0204F6DC
+.extern FUN_0204FF5C
+.extern FUN_02050024
+.extern FUN_02050048
+.extern FUN_020524CC
+.extern FUN_02052544
+.extern FUN_02052604
+.extern FUN_02052608
+.extern FUN_02052648
+.extern FUN_0205265C
+.extern FUN_02052714
+.extern FUN_02052718
+.extern FUN_020527A8
+.extern FUN_020527D8
+.extern FUN_0205296C
+.extern FUN_02052A10
+.extern FUN_02052B74
+.extern FUN_02052C0C
+.extern FUN_02052CD8
+.extern FUN_02052D08
+.extern FUN_02052DE8
+.extern FUN_02052E10
+.extern FUN_02052F74
+.extern FUN_020534DC
+.extern FUN_0205363C
+.extern FUN_02053678
+.extern FUN_020536D0
+.extern FUN_020545B8
+.extern FUN_02054608
+.extern FUN_02054658
+.extern FUN_020546C8
+.extern FUN_020547A4
+.extern FUN_02054C14
+.extern FUN_02054CB0
+.extern FUN_02054CC8
+.extern FUN_02054D1C
+.extern FUN_02054DEC
+.extern FUN_02054E30
+.extern FUN_02054F50
+.extern FUN_0205502C
+.extern FUN_020552F8
+.extern FUN_02055304
+.extern FUN_02055320
+.extern FUN_0205532C
+.extern FUN_020553A0
+.extern FUN_020553C4
+.extern FUN_020553D4
+.extern FUN_020553E8
+.extern FUN_02055468
+.extern FUN_02055474
+.extern FUN_02055488
+.extern FUN_02055560
+.extern FUN_02055720
+.extern FUN_020557F4
+.extern FUN_02055A38
+.extern FUN_02055B14
+.extern FUN_02055B30
+.extern FUN_02055B8C
+.extern FUN_0205753C
+.extern FUN_020575D4
+.extern FUN_02057654
+.extern FUN_02057688
+.extern FUN_02057800
+.extern FUN_0205785C
+.extern FUN_02057BAC
+.extern FUN_02058060
+.extern FUN_020580B4
+.extern FUN_02058448
+.extern FUN_02058458
+.extern FUN_02058480
+.extern FUN_02058488
+.extern FUN_02058510
+.extern FUN_02058738
+.extern FUN_02058780
+.extern FUN_020587B0
+.extern FUN_02058854
+.extern FUN_0205889C
+.extern FUN_020588B8
+.extern FUN_020588D4
+.extern FUN_02058908
+.extern FUN_02058914
+.extern FUN_02058994
+.extern FUN_02058B2C
+.extern FUN_02058B4C
+.extern FUN_02058B7C
+.extern FUN_02058BB4
+.extern FUN_02058BE4
+.extern FUN_02058D74
+.extern FUN_02058E28
+.extern FUN_02058E90
+.extern FUN_02058EB0
+.extern FUN_02059D1C
+.extern FUN_02059E74
+.extern FUN_0205AE28
+.extern FUN_0205AEA4
+.extern FUN_0205AEF0
+.extern FUN_0205AEFC
+.extern FUN_0205CA4C
+.extern FUN_0205CA64
+.extern FUN_0205CA78
+.extern FUN_0205CE48
+.extern FUN_0205CE80
+.extern FUN_0205DD18
+.extern FUN_0205DD38
+.extern FUN_0205DD40
+.extern FUN_0205E7C4
+.extern FUN_0205ECD4
+.extern FUN_0205ECE0
+.extern FUN_0205ECFC
+.extern FUN_0205ED0C
+.extern FUN_0205ED1C
+.extern FUN_0205ED2C
+.extern FUN_0205ED3C
+.extern FUN_0205ED4C
+.extern FUN_0205ED5C
+.extern FUN_0205ED6C
+.extern FUN_0205F1C4
+.extern FUN_0205F1D4
+.extern FUN_0205F1F4
+.extern FUN_0205F204
+.extern FUN_0205F214
+.extern FUN_0205F224
+.extern FUN_0205F234
+.extern FUN_0205F244
+.extern FUN_0205F264
+.extern FUN_0205F274
+.extern FUN_0205F284
+.extern FUN_0205F294
+.extern FUN_0205F2A4
+.extern FUN_0205F2B4
+.extern FUN_0205F2C4
+.extern FUN_0205F2D4
+.extern FUN_0205F2E4
+.extern FUN_0205F368
+.extern FUN_0205F378
+.extern FUN_0205F388
+.extern FUN_0205F398
+.extern FUN_0205F3C0
+.extern FUN_0205F3F8
+.extern FUN_0205F478
+.extern FUN_0205F4A0
+.extern FUN_0205F4E4
+.extern FUN_0205F50C
+.extern FUN_0205F524
+.extern FUN_0205F54C
+.extern FUN_0205F55C
+.extern FUN_0205F594
+.extern FUN_0205F5A4
+.extern FUN_0205F5D8
+.extern FUN_0205F5FC
+.extern FUN_0205F648
+.extern FUN_0205F668
+.extern FUN_0205F688
+.extern FUN_0205F698
+.extern FUN_0205F6A8
+.extern FUN_0205F6C8
+.extern FUN_0205F6D8
+.extern FUN_0205F710
+.extern FUN_0205F720
+.extern FUN_0205F740
+.extern FUN_0205F760
+.extern FUN_0205F7A0
+.extern FUN_0205FD38
+.extern FUN_0205FDDC
+.extern FUN_0205FE10
+.extern FUN_0205FF5C
+.extern FUN_02060144
+.extern FUN_0206015C
+.extern FUN_02060490
+.extern FUN_02060790
+.extern FUN_020607D4
+.extern FUN_02060F3C
+.extern FUN_02060F88
+.extern FUN_02060F9C
+.extern FUN_02060FD0
+.extern FUN_020612EC
+.extern FUN_020612F8
+.extern FUN_02061374
+.extern FUN_020613CC
+.extern FUN_02061460
+.extern FUN_02061574
+.extern FUN_02061A8C
+.extern FUN_02063650
+.extern FUN_0206367C
+.extern FUN_02063888
+.extern FUN_020638BC
+.extern FUN_02063948
+.extern FUN_02063964
+.extern FUN_0206486C
+.extern FUN_020649B0
+.extern FUN_020649D4
+.extern FUN_02064CA8
+.extern FUN_02064CC8
+.extern FUN_02064D10
+.extern FUN_02064D4C
+.extern FUN_02064D88
+.extern FUN_02064E20
+.extern FUN_02064E60
+.extern FUN_02064E90
+.extern FUN_02065054
+.extern FUN_02065070
+.extern FUN_02065078
+.extern FUN_02065314
+.extern FUN_02065344
+.extern FUN_02066818
+.extern FUN_02066978
+.extern FUN_020669A0
+.extern FUN_020669C0
+.extern FUN_020669D4
+.extern FUN_02066A20
+.extern FUN_02066ACC
+.extern FUN_02066ED8
+.extern FUN_020671BC
+.extern FUN_020672BC
+.extern FUN_02067830
+.extern FUN_02068678
+.extern FUN_02068854
+.extern FUN_020689E0
+.extern FUN_02068AAC
+.extern FUN_02068B68
+.extern FUN_02068C00
+.extern FUN_02068E14
+.extern FUN_020690C4
+.extern FUN_020690CC
+.extern FUN_020690E4
+.extern FUN_02069168
+.extern FUN_020699A4
+.extern FUN_02069A64
+.extern FUN_02069B40
+.extern FUN_02069B88
+.extern FUN_0206A23C
+.extern FUN_0206AC74
+.extern FUN_0206AD4C
+.extern FUN_0206B20C
+.extern FUN_0206B3E4
+.extern FUN_0206B484
+.extern FUN_0206B57C
+.extern FUN_0206B5E4
+.extern FUN_0206B620
+.extern FUN_0206B644
+.extern FUN_0206B6C8
+.extern FUN_0206B7BC
+.extern FUN_0206B900
+.extern FUN_0206B9AC
+.extern FUN_0206B9B0
+.extern FUN_0206BAE4
+.extern FUN_0206BB1C
+.extern FUN_0206BB28
+.extern FUN_0206C700
+.extern FUN_0206C91C
+.extern FUN_0206C92C
+.extern FUN_0206E2F0
+.extern FUN_0206E308
+.extern FUN_0206E314
+.extern FUN_0206E340
+.extern FUN_0206E354
+.extern FUN_0206E358
+.extern FUN_0206E360
+.extern FUN_0206E37C
+.extern FUN_0206E384
+.extern FUN_0206E38C
+.extern FUN_0206E7B8
+.extern FUN_0206EA30
+.extern FUN_0206EA98
+.extern FUN_0206EAB8
+.extern FUN_0206EB1C
+.extern FUN_0206ED24
+.extern FUN_0206ED38
+.extern FUN_0206EDD4
+.extern FUN_0206EE50
+.extern FUN_0206EE64
+.extern FUN_0206EEF8
+.extern FUN_0206EFEC
+.extern FUN_0206F158
+.extern FUN_0206F164
+.extern FUN_0206F17C
+.extern FUN_0206F190
+.extern FUN_0206F3B8
+.extern FUN_0206F3D8
+.extern FUN_02077A84
+.extern FUN_02077AC4
+.extern FUN_02079C70
+.extern FUN_0207B000
+.extern FUN_0207C2A4
+.extern FUN_0207FC5C
+.extern FUN_0207FCE0
+.extern FUN_0208089C
+.extern FUN_02080C38
+.extern FUN_02080E0C
+.extern FUN_02081214
+.extern FUN_020814E8
+.extern FUN_02081DC4
+.extern FUN_02081EB8
+.extern FUN_0208201C
+.extern FUN_02082034
+.extern FUN_0208206C
+.extern FUN_02082090
+.extern FUN_020820B8
+.extern FUN_020820DC
+.extern FUN_0208210C
+.extern FUN_0208213C
+.extern FUN_02082140
+.extern FUN_02082158
+.extern FUN_0208217C
+.extern FUN_02082190
+.extern FUN_020821B4
+.extern FUN_020821C4
+.extern FUN_020821DC
+.extern FUN_020821F0
+.extern FUN_02082214
+.extern FUN_0208223C
+.extern FUN_0208224C
+.extern FUN_02082254
+.extern FUN_02082284
+.extern FUN_020822F0
+.extern FUN_02082444
+.extern FUN_02082508
+.extern FUN_020825A0
+.extern FUN_02082630
+.extern FUN_02085140
+.extern FUN_020851B8
+.extern FUN_020851DC
+.extern FUN_020851F8
+.extern FUN_0208524C
+.extern FUN_02085258
+.extern FUN_02085264
+.extern FUN_0208526C
+.extern FUN_02085290
+.extern FUN_020852E8
+.extern FUN_02085338
+.extern FUN_020853A8
+.extern FUN_020853B0
+.extern FUN_020853B4
+.extern FUN_020853BC
+.extern FUN_020853E4
+.extern FUN_020853E8
+.extern FUN_020853EC
+.extern FUN_020853F0
+.extern FUN_020853FC
+.extern FUN_020854E0
+.extern FUN_02085538
+.extern FUN_02085578
+.extern FUN_020855B0
+.extern FUN_020855E4
+.extern FUN_0208560C
+.extern FUN_0208562C
+.extern FUN_02085F48
+.extern FUN_020863DC
+.extern FUN_02087A1C
+.extern FUN_02087A50
+.extern FUN_02087D00
+.extern FUN_02087E14
+.extern FUN_0208881C
+.extern FUN_02088960
+.extern FUN_02088D40
+.extern FUN_02088DD8
+.extern FUN_02088DF0
+.extern FUN_02088DF8
+.extern FUN_02088EF8
+.extern FUN_02089D90
+.extern FUN_0208A0B8
+.extern FUN_0208A300
+.extern FUN_0208A320
+.extern FUN_0208A338
+.extern FUN_0208A9B8
+.extern FUN_0208ACEC
+.extern FUN_0208AD80
+.extern FUN_0208AF80
+.extern FUN_0208AF94
+.extern FUN_0208AFA8
+.extern FUN_0208B05C
+.extern FUN_0208B128
+.extern FUN_0208B4A0
+.extern FUN_02090CC8
+.extern FUN_02090DB8
+.extern FUN_02096B14
+.extern FUN_02096B78
+.extern FUN_02096CCC
+.extern FUN_02096D2C
+.extern FUN_02096DA0
+.extern FUN_02096F18
+.extern FUN_02096F80
+.extern FUN_02096FB0
+.extern FUN_0209700C
+.extern FUN_020973B4
+.extern FUN_020ADA84
+.extern FUN_020ADA98
+.extern FUN_020ADAB0
+.extern FUN_020ADB18
+.extern FUN_020ADBE8
+.extern FUN_020ADC74
+.extern FUN_020ADDC0
+.extern FUN_020ADDC8
+.extern FUN_020ADDF0
+.extern FUN_020ADE2C
+.extern FUN_020AE554
+.extern FUN_020AE5B0
+.extern FUN_020AE600
+.extern FUN_020AE638
+.extern FUN_020AE684
+.extern FUN_020AE82C
+.extern FUN_020AE84C
+.extern FUN_020AE868
+.extern FUN_020AE8CC
+.extern FUN_020AE918
+.extern FUN_020AEB70
+.extern FUN_020AEC7C
+.extern FUN_020AEC98
+.extern FUN_020AEE40
+.extern FUN_020AEEB8
+.extern FUN_020AEF1C
+.extern FUN_020AF2E0
+.extern FUN_020AF2F4
+.extern FUN_020AF30C
+.extern FUN_020AF894
+.extern FUN_020AF9C4
+.extern FUN_020AFA28
+.extern FUN_020AFA80
+.extern FUN_020AFBA8
+.extern FUN_020AFBFC
+.extern FUN_020AFC04
+.extern FUN_020AFEB8
+.extern FUN_020AFFD8
+.extern FUN_020B0030
+.extern FUN_020B0088
+.extern FUN_020B00F0
+.extern FUN_020B0138
+.extern FUN_020B0180
+.extern FUN_020B0250
+.extern FUN_020B02C8
+.extern FUN_020B0448
+.extern FUN_020B0870
+.extern FUN_020B0BB0
+.extern FUN_020B0C7C
+.extern FUN_020B0E34
+.extern FUN_020B0FC0
+.extern FUN_020B10E8
+.extern FUN_020B1240
+.extern FUN_020B1340
+.extern FUN_020B1528
+.extern FUN_020B1768
+.extern FUN_020B19C4
+.extern FUN_020B19DC
+.extern FUN_020B1A14
+.extern FUN_020B1A24
+.extern FUN_020B1EA4
+.extern FUN_020B1EC4
+.extern FUN_020B1EE4
+.extern FUN_020B1EFC
+.extern FUN_020B1F80
+.extern FUN_020B20C8
+.extern FUN_020B2194
+.extern FUN_020B224C
+.extern FUN_020B23D8
+.extern FUN_020B242C
+.extern FUN_020B2794
+.extern FUN_020B28B4
+.extern FUN_020B2A08
+.extern FUN_020B2B08
+.extern FUN_020B2B58
+.extern FUN_020B2D9C
+.extern FUN_020B317C
+.extern FUN_020B31F0
+.extern FUN_020B326C
+.extern FUN_020B3334
+.extern FUN_020B3390
+.extern FUN_020B33A0
+.extern FUN_020B4358
+.extern FUN_020B43A4
+.extern FUN_020B442C
+.extern FUN_020B4568
+.extern FUN_020B4F38
+.extern FUN_020B502C
+.extern FUN_020B772C
+.extern FUN_020B7790
+.extern FUN_020B7C58
+.extern FUN_020B7C78
+.extern FUN_020B7CDC
+.extern FUN_020B7CE4
+.extern FUN_020B7CF0
+.extern FUN_020B7D28
+.extern FUN_020B7DFC
+.extern FUN_020B7E10
+.extern FUN_020B7E1C
+.extern FUN_020B80B4
+.extern FUN_020B844C
+.extern FUN_020B8474
+.extern FUN_020B849C
+.extern FUN_020BAC98
+.extern FUN_020BAFB8
+.extern FUN_020BB1C0
+.extern FUN_020BB394
+.extern FUN_020BB59C
+.extern FUN_020BB7F4
+.extern FUN_020BC0FC
+.extern FUN_020BC13C
+.extern FUN_020BC2A0
+.extern FUN_020C0174
+.extern FUN_020C01A0
+.extern FUN_020C01D0
+.extern FUN_020C03B8
+.extern FUN_020C041C
+.extern FUN_020C044C
+.extern FUN_020C04DC
+.extern FUN_020C0510
+.extern FUN_020C054C
+.extern FUN_020C0670
+.extern FUN_020C0688
+.extern FUN_020C0DD4
+.extern FUN_020C0E14
+.extern FUN_020C0E7C
+.extern FUN_020C0EA4
+.extern FUN_020C0EF4
+.extern FUN_020C0F30
+.extern FUN_020C0F50
+.extern FUN_020C0F68
+.extern FUN_020C0F80
+.extern FUN_020C0F8C
+.extern FUN_020C0F9C
+.extern FUN_020C0FDC
+.extern FUN_020C1040
+.extern FUN_020C10A4
+.extern FUN_020C1148
+.extern FUN_020C1180
+.extern FUN_020C1E58
+.extern FUN_020C1E68
+.extern FUN_020C1EA4
+.extern FUN_020C1F54
+.extern FUN_020C1FA4
+.extern FUN_020C1FF0
+.extern FUN_020C20DC
+.extern FUN_020C2104
+.extern FUN_020C217C
+.extern FUN_020C226C
+.extern FUN_020C22D0
+.extern FUN_020C23FC
+.extern FUN_020C26F8
+.extern FUN_020C2828
+.extern FUN_020C290C
+.extern FUN_020C2A94
+.extern FUN_020C35E0
+.extern FUN_020C360C
+.extern FUN_020C3640
+.extern FUN_020C3674
+.extern FUN_020C36A8
+.extern FUN_020C3910
+.extern FUN_020C3980
+.extern FUN_020C39CC
+.extern FUN_020C3EA4
+.extern FUN_020C3EB0
+.extern FUN_020C6034
+.extern FUN_020C605C
+.extern FUN_021D74E0
+.extern FUN_021D76AC
+.extern FUN_021D77C4
+.extern FUN_021D7800
+.extern FUN_021D78FC
+.extern FUN_021D79B4
+.extern FUN_021D7CA4
+.extern FUN_021D7F8C
+.extern FUN_021D8018
+.extern FUN_021D8164
+.extern FUN_021D82BC
+.extern FUN_021D8320
+.extern FUN_021D836C
+.extern FUN_021D83A8
+.extern FUN_021D83C0
+.extern FUN_021D844C
+.extern FUN_021D8494
+.extern FUN_021D85FC
+.extern FUN_021D8624
+.extern FUN_021D865C
+.extern FUN_021D8758
+.extern FUN_021D8820
+.extern FUN_021D88E4
+.extern FUN_021D89CC
+.extern FUN_021D8B64
+.extern FUN_021D8C24
+.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_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_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_021DD6F0
+.extern FUN_021DD718
+.extern FUN_021DDB08
+.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_021E2464
+.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_021EAE90
+.extern FUN_021EB044
+.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_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 FX_Div
+.extern FX_GetDivResult
+.extern FX_GetDivResultFx64c
+.extern FX_Init
+.extern FX_InvAsync
+.extern FX_Modf
+.extern FX_Sqrt
+.extern G2S_GetBG0CharPtr
+.extern G2S_GetBG1CharPtr
+.extern G2S_GetBG2CharPtr
+.extern G2S_GetBG3CharPtr
+.extern G2_GetBG0CharPtr
+.extern G2_GetBG1CharPtr
+.extern G2_GetBG2CharPtr
+.extern G2_GetBG3CharPtr
+.extern G2x_SetBGyAffine_
+.extern G2x_SetBlendAlpha_
+.extern G2x_SetBlendBrightness_
+.extern G3X_GetBoxTestResult
+.extern G3X_GetClipMtx
+.extern G3X_GetVectorMtx
+.extern G3X_Init
+.extern G3X_InitMtxStack
+.extern G3X_ResetMtxStack
+.extern G3X_SetClearColor
+.extern G3X_SetFog
+.extern G3_LoadMtx43
+.extern G3_MultMtx33
+.extern G3_MultMtx43
+.extern G3_RotX
+.extern G3_RotY
+.extern G3_RotZ
+.extern G3i_LookAt_
+.extern G3i_OrthoW_
+.extern G3i_PerspectiveW_
+.extern GXS_BeginLoadBGExtPltt
+.extern GXS_BeginLoadOBJExtPltt
+.extern GXS_EndLoadBGExtPltt
+.extern GXS_EndLoadOBJExtPltt
+.extern GXS_LoadBG0Char
+.extern GXS_LoadBG0Scr
+.extern GXS_LoadBG1Char
+.extern GXS_LoadBG1Scr
+.extern GXS_LoadBG2Char
+.extern GXS_LoadBG2Scr
+.extern GXS_LoadBG3Char
+.extern GXS_LoadBG3Scr
+.extern GXS_LoadBGExtPltt
+.extern GXS_LoadBGPltt
+.extern GXS_LoadOAM
+.extern GXS_LoadOBJ
+.extern GXS_LoadOBJExtPltt
+.extern GXS_LoadOBJPltt
+.extern GXS_SetGraphicsMode
+.extern GX_BeginLoadBGExtPltt
+.extern GX_BeginLoadClearImage
+.extern GX_BeginLoadOBJExtPltt
+.extern GX_BeginLoadTex
+.extern GX_BeginLoadTexPltt
+.extern GX_DisableBankForLCDC
+.extern GX_DispOff
+.extern GX_DispOn
+.extern GX_EndLoadBGExtPltt
+.extern GX_EndLoadClearImage
+.extern GX_EndLoadOBJExtPltt
+.extern GX_EndLoadTex
+.extern GX_EndLoadTexPltt
+.extern GX_GetBankForOBJ
+.extern GX_GetBankForOBJExtPltt
+.extern GX_GetBankForSubOBJ
+.extern GX_GetBankForSubOBJExtPltt
+.extern GX_HBlankIntr
+.extern GX_Init
+.extern GX_LoadBG0Char
+.extern GX_LoadBG0Scr
+.extern GX_LoadBG1Char
+.extern GX_LoadBG1Scr
+.extern GX_LoadBG2Char
+.extern GX_LoadBG2Scr
+.extern GX_LoadBG3Char
+.extern GX_LoadBG3Scr
+.extern GX_LoadBGExtPltt
+.extern GX_LoadBGPltt
+.extern GX_LoadClearImageColor
+.extern GX_LoadClearImageDepth
+.extern GX_LoadOAM
+.extern GX_LoadOBJ
+.extern GX_LoadOBJExtPltt
+.extern GX_LoadOBJPltt
+.extern GX_LoadTex
+.extern GX_LoadTexPltt
+.extern GX_ResetBankForBG
+.extern GX_ResetBankForBGExtPltt
+.extern GX_ResetBankForOBJ
+.extern GX_ResetBankForOBJExtPltt
+.extern GX_ResetBankForSubBG
+.extern GX_ResetBankForSubOBJ
+.extern GX_ResetBankForTex
+.extern GX_ResetBankForTexPltt
+.extern GX_SetBankForBG
+.extern GX_SetBankForBGExtPltt
+.extern GX_SetBankForLCDC
+.extern GX_SetBankForOBJ
+.extern GX_SetBankForOBJExtPltt
+.extern GX_SetBankForSubBG
+.extern GX_SetBankForSubBGExtPltt
+.extern GX_SetBankForSubOBJ
+.extern GX_SetBankForSubOBJExtPltt
+.extern GX_SetBankForTex
+.extern GX_SetBankForTexPltt
+.extern GX_SetGraphicsMode
+.extern GX_VBlankIntr
+.extern GXx_SetMasterBrightness_
+.extern IC_InvalidateAll
+.extern IC_InvalidateRange
+.extern InitGraphicMemory
+.extern InitScriptContext
+.extern InitSystemForTheGame
+.extern LoadFromNARC
+.extern LoadFromNARC_7
+.extern LoadFromNarc_2
+.extern LoadPlayerDataAddress
+.extern MATH_CalcCRC16
+.extern MATH_CalcCRC16CCITT
+.extern MATH_CalcCRC32
+.extern MATH_CalcCRC8
+.extern MATH_CalcHMACSHA1
+.extern MATH_CalcMD5
+.extern MATH_CalcSHA1
+.extern MATH_CountPopulation
+.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 MIC_DoSamplingAsync
+.extern MIC_Init
+.extern MIC_StartAutoSampling
+.extern MIC_StopAutoSampling
+.extern MI_Copy36B
+.extern MI_Copy48B
+.extern MI_Copy64B
+.extern MI_CpuCopy8
+.extern MI_CpuFill8
+.extern MI_DmaCopy16
+.extern MI_DmaCopy32
+.extern MI_DmaCopy32Async
+.extern MI_DmaFill32
+.extern MI_DmaFill32Async
+.extern MI_HBlankDmaCopy16
+.extern MI_HBlankDmaCopy32
+.extern MI_Init
+.extern MI_SendGXCommandAsync
+.extern MI_SendGXCommandAsyncFast
+.extern MI_StopDma
+.extern MI_SwapWord
+.extern MI_UncompressLZ8
+.extern MI_WaitDma
+.extern MI_Zero36B
+.extern MIi_CardDmaCopy32
+.extern MIi_CheckDma0SourceAddress
+.extern MIi_CpuClear16
+.extern MIi_CpuClear32
+.extern MIi_CpuClearFast
+.extern MIi_CpuCopy16
+.extern MIi_CpuCopy32
+.extern MIi_CpuCopyFast
+.extern MIi_CpuSend32
+.extern MIi_DmaSetParams
+.extern MIi_DmaSetParams_noInt
+.extern MIi_DmaSetParams_wait
+.extern MIi_DmaSetParams_wait_noInt
+.extern MIi_UncompressBackward
+.extern MTX_Concat33
+.extern MTX_Concat43
+.extern MTX_Identity33_
+.extern MTX_Identity43_
+.extern MTX_MultVec33
+.extern MTX_MultVec43
+.extern MTX_RotX33_
+.extern MTX_RotY33_
+.extern MTX_RotZ33_
+.extern MTX_Scale43_
+.extern NitroMain
+.extern OS_AllocFromArenaHi
+.extern OS_AllocFromArenaLo
+.extern OS_AllocFromHeap
+.extern OS_CancelAlarm
+.extern OS_CreateAlarm
+.extern OS_CreateThread
+.extern OS_DestroyThread
+.extern OS_DisableInterrupts
+.extern OS_DisableIrqMask
+.extern OS_DisableScheduler
+.extern OS_EnableIrqMask
+.extern OS_EnableScheduler
+.extern OS_ExitThread
+.extern OS_FreeToHeap
+.extern OS_GetCpsrIrq
+.extern OS_GetDTCMAddress
+.extern OS_GetInitArenaHi
+.extern OS_GetInitArenaLo
+.extern OS_GetIrqFunction
+.extern OS_GetLockID
+.extern OS_GetLowEntropyData
+.extern OS_GetMacAddress
+.extern OS_GetOwnerInfo
+.extern OS_GetOwnerRtcOffset
+.extern OS_GetProcMode
+.extern OS_GetThreadPriority
+.extern OS_GetTick
+.extern OS_GetTickLo
+.extern OS_Halt
+.extern OS_IRQTable
+.extern OS_Init
+.extern OS_InitAlarm
+.extern OS_InitMessageQueue
+.extern OS_InitMutex
+.extern OS_InitTick
+.extern OS_IrqDummy
+.extern OS_IrqHandler
+.extern OS_IsAlarmAvailable
+.extern OS_IsRunOnEmulator
+.extern OS_IsThreadTerminated
+.extern OS_IsTickAvailable
+.extern OS_JamMessage
+.extern OS_JoinThread
+.extern OS_LockCartridge
+.extern OS_LockMutex
+.extern OS_ReadMessage
+.extern OS_ReadOwnerOfLockWord
+.extern OS_ReceiveMessage
+.extern OS_ReleaseLockID
+.extern OS_RescheduleThread
+.extern OS_ResetRequestIrqMask
+.extern OS_ResetSystem
+.extern OS_RestoreInterrupts
+.extern OS_SNPrintf
+.extern OS_SendMessage
+.extern OS_SetAlarm
+.extern OS_SetArenaHi
+.extern OS_SetArenaLo
+.extern OS_SetDPermissionsForProtectionRegion
+.extern OS_SetIrqFunction
+.extern OS_SetIrqMask
+.extern OS_SetThreadPriority
+.extern OS_Sleep
+.extern OS_SleepThread
+.extern OS_SpinWait
+.extern OS_Terminate
+.extern OS_TryLockCard
+.extern OS_TryLockCartridge
+.extern OS_TryLockMutex
+.extern OS_UnlockCard
+.extern OS_UnlockCartridge
+.extern OS_UnlockCartridge2
+.extern OS_UnlockMutex
+.extern OS_WaitIrq
+.extern OS_WakeupThread
+.extern OS_WakeupThreadDirect
+.extern OS_YieldThread
+.extern OSi_DoResetSystem
+.extern OSi_EnterDmaCallback
+.extern OSi_IrqDma0
+.extern OSi_IrqDma1
+.extern OSi_IrqDma2
+.extern OSi_IrqDma3
+.extern OSi_IrqThreadQueue
+.extern OSi_IrqTimer0
+.extern OSi_IrqTimer1
+.extern OSi_IrqTimer2
+.extern OSi_IrqTimer3
+.extern OSi_IsResetOccurred
+.extern OSi_MainExArenaEnabled
+.extern OSi_ThreadInfo
+.extern OSi_TryLockVram
+.extern OSi_UnlockVram
+.extern PM_AppendPostSleepCallback
+.extern PM_DeletePostSleepCallback
+.extern PM_DeletePreSleepCallback
+.extern PM_ForceToPowerOff
+.extern PM_GetBackLight
+.extern PM_GetLCDPower
+.extern PM_GoSleepMode
+.extern PM_Init
+.extern PM_PrependPreSleepCallback
+.extern PM_SetAmp
+.extern PM_SetAmpGain
+.extern PM_SetBackLight
+.extern PM_SetLCDPower
+.extern PMi_Lock
+.extern PMi_ReadRegister
+.extern PMi_SendPxiData
+.extern PMi_SendSleepStart
+.extern PMi_SetLED
+.extern PMi_SetLEDAsync
+.extern PMi_WaitBusy
+.extern PXI_Init
+.extern PXI_IsCallbackReady
+.extern PXI_SendWordByFifo
+.extern PXI_SetFifoRecvCallback
+.extern PXIi_HandlerRecvFifoNotEmpty
+.extern ProcessBlock
+.extern RTC_ConvertDateTimeToSecond
+.extern RTC_ConvertDateToDay
+.extern RTC_ConvertSecondToDateTime
+.extern RTC_GetDate
+.extern RTC_GetDateTimeAsync
+.extern RTC_GetTime
+.extern RTC_Init
+.extern RunScriptCommand
+.extern SDK_AUTOLOAD_DTCM_START
+.extern SDK_AUTOLOAD_LIST
+.extern SDK_AUTOLOAD_LIST_END
+.extern SDK_AUTOLOAD_START
+.extern SDK_MAIN_ARENA_LO
+.extern SDK_SECTION_ARENA_DTCM_START
+.extern SDK_SECTION_ARENA_EX_START
+.extern SDK_SECTION_ARENA_ITCM_START
+.extern SDK_STATIC_BSS_END
+.extern SDK_STATIC_BSS_START
+.extern SND_AssignWaveArc
+.extern SND_CalcChannelVolume
+.extern SND_DestroyBank
+.extern SND_DestroyWaveArc
+.extern SND_FlushCommand
+.extern SND_GetChannelStatus
+.extern SND_GetCurrentCommandTag
+.extern SND_GetFirstInstDataPos
+.extern SND_GetNextInstData
+.extern SND_GetPlayerStatus
+.extern SND_GetPlayerTickCounter
+.extern SND_GetWaveDataAddress
+.extern SND_GetWaveDataCount
+.extern SND_Init
+.extern SND_InvalidateBankData
+.extern SND_InvalidateSeqData
+.extern SND_InvalidateWaveData
+.extern SND_IsFinishedCommandTag
+.extern SND_LockChannel
+.extern SND_PauseSeq
+.extern SND_PrepareSeq
+.extern SND_RecvCommandReply
+.extern SND_ResetMasterPan
+.extern SND_SetChannelPan
+.extern SND_SetChannelTimer
+.extern SND_SetChannelVolume
+.extern SND_SetMasterPan
+.extern SND_SetOutputSelector
+.extern SND_SetPlayerChannelPriority
+.extern SND_SetPlayerVolume
+.extern SND_SetTrackAllocatableChannel
+.extern SND_SetTrackPan
+.extern SND_SetTrackPitch
+.extern SND_SetWaveDataAddress
+.extern SND_SetupAlarm
+.extern SND_SetupCapture
+.extern SND_SetupChannelPcm
+.extern SND_StartPreparedSeq
+.extern SND_StartTimer
+.extern SND_StopSeq
+.extern SND_StopTimer
+.extern SND_UnlockChannel
+.extern SND_WaitForCommandProc
+.extern STD_CopyLString
+.extern ScriptCall
+.extern ScriptJump
+.extern ScriptReadHalfword
+.extern ScriptReadWord
+.extern ScriptReturn
+.extern SetupBytecodeScript
+.extern SetupNativeScript
+.extern StopScript
+.extern StringCopy
+.extern StringCopyN
+.extern StringFillEOS
+.extern StringLength
+.extern StringNotEqual
+.extern StringNotEqualN
+.extern TP_CheckError
+.extern TP_GetCalibratedPoint
+.extern TP_GetLatestIndexInAuto
+.extern TP_GetLatestRawPointInAuto
+.extern TP_GetUserInfo
+.extern TP_Init
+.extern TP_RequestAutoSamplingStartAsync
+.extern TP_RequestAutoSamplingStopAsync
+.extern TP_RequestSamplingAsync
+.extern TP_SetCalibrateParam
+.extern TP_WaitBusy
+.extern TP_WaitRawResult
+.extern VEC_Add
+.extern VEC_CrossProduct
+.extern VEC_DotProduct
+.extern VEC_Fx16CrossProduct
+.extern VEC_Fx16DotProduct
+.extern VEC_Fx16Normalize
+.extern VEC_Mag
+.extern VEC_Normalize
+.extern VEC_Subtract
+.extern WM_Disable
+.extern WM_Disconnect
+.extern WM_Enable
+.extern WM_End
+.extern WM_EndDCF
+.extern WM_EndMP
+.extern WM_EndParent
+.extern WM_EndScan
+.extern WM_Finish
+.extern WM_GetAllowedChannel
+.extern WM_GetDispersionBeaconPeriod
+.extern WM_GetDispersionScanPeriod
+.extern WM_GetLinkLevel
+.extern WM_Init
+.extern WM_Initialize
+.extern WM_MeasureChannel
+.extern WM_PowerOff
+.extern WM_PowerOn
+.extern WM_Reset
+.extern WM_SetBeaconIndication
+.extern WM_SetDCFData
+.extern WM_SetEntry
+.extern WM_SetGameInfo
+.extern WM_SetIndCallback
+.extern WM_SetLifeTime
+.extern WM_SetMPDataToPortEx
+.extern WM_SetParentParameter
+.extern WM_SetPortCallback
+.extern WM_SetWEPKeyEx
+.extern WM_StartConnectEx
+.extern WM_StartDCF
+.extern WM_StartMP
+.extern WM_StartParent
+.extern WM_StartScan
+.extern WM_StartScanEx
+.extern WMi_GetStatusAddress
+.extern __call_static_initializers
+.extern __destroy_global_chain
+.extern _ddiv
+.extern _fadd
+.extern _fdiv
+.extern _feq
+.extern _ffix
+.extern _ffixu
+.extern _fflt
+.extern _ffltu
+.extern _fgr
+.extern _fmul
+.extern _fp_init
+.extern _fsub
+.extern _ll_mod
+.extern _ll_mul
+.extern _ll_sdiv
+.extern _ll_shl
+.extern _ll_udiv
+.extern _s32_div_f
+.extern _u32_div_f
+.extern _u32_div_not_0_f
+.extern abs
+.extern cardi_common
+.extern gScriptCmdTable
+.extern memcmp
+.extern memcpy
+.extern memmove
+.extern strcmp
+.extern strcpy
+.extern strlen
+.extern tempName_NNS_FndAllocFromExpHeapEx
+.extern tempName_NNS_FndCreateExpHeapEx
+.extern thunk_FUN_02096e4c
+.extern thunk_FUN_02097190
+.extern thunk_FUN_020adc8c
+.extern thunk_FUN_020adc8c_2
+.extern thunk_FUN_020afda0
+.extern thunk_FUN_020afda0_2
+.extern thunk_FUN_020b5040
+.extern Unk_0210683C
+.extern Unk_02106840
+.extern Unk_02106900
+.extern Unk_02106A00
+.extern Unk_02106A04
+.extern OSi_IrqCallbackInfo
+.extern OSi_IrqCallbackInfoIndex
+.extern SDK_SYS_STACKSIZE
+.extern SDK_IRQ_STACKSIZE
+.extern OSi_IsThreadInitialized
+.extern OSi_LauncherThread
+.extern OSi_CurrentThreadPtr
+.extern OSi_IdleThread
+.extern OSi_IdleThreadStack
+.extern OSi_RescheduleCount
+.extern OSi_SystemCallbackInSwitchThread
+.extern OSi_Initialized
+.extern OSi_HeapInfo
+.extern OSi_DebuggerHandler
+.extern OSi_ExContext
+.extern OSi_UserExceptionHandler
+.extern OSi_UserExceptionHandlerArg
+.extern OSi_TimerReserved
+.extern OSi_UseTick
+.extern OSi_NeedResetTimer
+.extern OSi_TickCounter
+.extern OSi_UseAlarm
+.extern OSi_AlarmQueue
+.extern OSi_UseVAlarm
+.extern OSi_PreviousVCount
+.extern OSi_VFrameCount
+.extern OSi_VAlarmQueue
+.extern OSi_IsInitReset
+.extern OSi_vramExclusive
+.extern OSi_vramLockId
+.extern OSi_ThreadIdCount
+.extern OSi_StackForDestructor
+.extern SDK_AUTOLOAD_ITCM_START
+.extern SDK_AUTOLOAD_ITCM_END
+.extern SDK_AUTOLOAD_DTCM_START
+.extern SDK_AUTOLOAD_DTCM_END
diff --git a/arm9/src/FUN_02000DF4.c b/arm9/src/FUN_02000DF4.c
new file mode 100644
index 00000000..0099480c
--- /dev/null
+++ b/arm9/src/FUN_02000DF4.c
@@ -0,0 +1,12 @@
+#include "global.h"
+#include "main.h"
+
+extern struct Unk2106FA0 gBacklightTop;
+
+void FUN_02000DF4(void)
+{
+ gBacklightTop.unk8 = -1;
+ gBacklightTop.unkC = 0;
+ gBacklightTop.unk10 = -1;
+ gBacklightTop.unk14 = 0;
+}
diff --git a/arm9/src/main.c b/arm9/src/main.c
new file mode 100644
index 00000000..bfd6c82e
--- /dev/null
+++ b/arm9/src/main.c
@@ -0,0 +1,110 @@
+#include "global.h"
+#include "main.h"
+
+extern struct Unk2106FA0 gBacklightTop;
+extern struct Unk2106FA0 gBacklightTop_2; // same as the first one, it's referenced twice in the constant pool...
+extern struct Unk2106FA0 gUnknown2106FB8;
+extern struct Unk21C48B8 gUnknown21C48B8;
+
+extern s32 gUnk027FFC20;
+extern struct {
+ s32 unk0;
+ s32 unk4;
+ u8 unk8;
+} gUnk021C4918;
+
+extern void PM_GetBackLight();
+extern void OS_WaitIrq();
+extern void FUN_02016438(s32);
+
+extern const s32 CONST_3F; // 0x0000003F
+extern const s32 CONST_34; // 0x00000034
+
+extern struct Unk21DBE18 gUnk021DBE18;
+extern struct Unk21DBE18 gUnk021D76C8;
+
+
+void NitroMain(void)
+{
+ InitSystemForTheGame();
+ InitGraphicMemory();
+ FUN_020163BC();
+ FUN_02016438(0);
+
+ PM_GetBackLight(&gBacklightTop_2, 0);
+
+ FUN_02022294();
+ FUN_0201259C();
+ FUN_02000DF4();
+ FUN_02002C14();
+ FUN_02002C50(0, 3);
+ FUN_02002C50(1, 3);
+ FUN_02002C50(3, 3);
+ gBacklightTop.unk18 = -1;
+ gBacklightTop.unk20 = FUN_0202254C();
+ FUN_02003B98(FUN_02029EF8(gBacklightTop.unk20), LoadPlayerDataAddress(gBacklightTop.unk20));
+ FUN_02020AFC();
+ if (FUN_020337E8(3) == 3)
+ FUN_02034188(3, 0);
+ if (FUN_020227FC(gBacklightTop.unk20) == 0)
+ {
+ FUN_02089D90(0);
+ }
+ else
+ {
+ switch (gUnk027FFC20)
+ {
+ case 0:
+ gBacklightTop.unk1C = 0;
+ FUN_02000E7C(&CONST_3F, &gUnk021DBE18);
+ break;
+ case 1:
+ gBacklightTop.unk1C = 1;
+ FUN_02000E7C(&CONST_34, &gUnk021D76C8);
+ break;
+ default:
+ ErrorHandling();
+ break;
+ }
+ }
+ gUnknown21C48B8.unk6C = 1;
+ gUnknown21C48B8.unk30 = 0;
+ FUN_02000FA4();
+ FUN_0200A2AC();
+ FUN_02015E30();
+ gBacklightTop.unk4 = 0;
+ for (;;)
+ {
+ FUN_02000EE8();
+ FUN_02000FE8();
+ FUN_02016464();
+ if ((gUnknown21C48B8.unk38 & 0x30C) == 0x30C && !gUnk021C4918.unk8) // soft reset?
+ {
+ FUN_02000F18(0); // soft reset?
+ }
+ if (FUN_0202FB80())
+ {
+ FUN_02000E0C();
+ FUN_0201B5CC(gUnknown21C48B8.unk18);
+ FUN_0201B5CC(gUnknown21C48B8.unk24);
+ if (!gUnknown21C48B8.unk30)
+ {
+ OS_WaitIrq(1, 1);
+ gUnknown21C48B8.unk2C++;
+ }
+ }
+ FUN_020125D4();
+ FUN_02015E60();
+ FUN_020222C4();
+ FUN_0201B5CC(gUnknown21C48B8.unk24);
+ OS_WaitIrq(1, 1);
+ gUnknown21C48B8.unk2C++;
+ gUnknown21C48B8.unk30 = 0;
+ FUN_0200A318();
+ FUN_0200E2D8();
+ if (gUnknown21C48B8.unk0)
+ gUnknown21C48B8.unk0(gUnknown21C48B8.unk4);
+ FUN_02003C10();
+ FUN_0201B5CC(gUnknown21C48B8.unk20);
+ }
+} \ No newline at end of file
diff --git a/arm9/src/script.c b/arm9/src/script.c
new file mode 100644
index 00000000..7a7ae894
--- /dev/null
+++ b/arm9/src/script.c
@@ -0,0 +1,163 @@
+#include "global.h"
+#include "script.h"
+
+u16 ScriptReadHalfword(struct ScriptContext *ctx);
+
+void InitScriptContext(struct ScriptContext *ctx, void *cmdTable, void *cmdTableEnd)
+{
+ u32 i;
+
+ ctx->mode = 0;
+ ctx->scriptPtr = 0;
+ ctx->stackDepth = 0;
+ ctx->nativePtr = 0;
+ ctx->cmdTable = cmdTable;
+ ctx->cmdTableEnd = cmdTableEnd;
+
+ for (i = 0; i < 4; i++)
+ ctx->data[i] = 0;
+
+ for (i = 0; i < 20; i++)
+ ctx->stack[i] = 0;
+
+ ctx->unk74 = 0;
+}
+
+u8 SetupBytecodeScript(struct ScriptContext *ctx, const u8 *ptr)
+{
+ ctx->scriptPtr = ptr;
+ ctx->mode = 1;
+ return 1;
+}
+
+void SetupNativeScript(struct ScriptContext *ctx, u8 (*ptr)(struct ScriptContext *))
+{
+ ctx->mode = 2;
+ ctx->nativePtr = ptr;
+}
+
+void StopScript(struct ScriptContext *ctx)
+{
+ ctx->mode = 0;
+ ctx->scriptPtr = 0;
+}
+
+void FUN_02038B6C(struct ScriptContext *ctx, int r1)
+{
+ ctx->unk74 = r1;
+}
+
+extern void ErrorHandling(void);
+
+u8 RunScriptCommand(struct ScriptContext *ctx)
+{
+ if (ctx->mode == 0)
+ return FALSE;
+
+ switch (ctx->mode)
+ {
+ case 0:
+ return FALSE;
+ case 2:
+ if (ctx->nativePtr)
+ {
+ if (ctx->nativePtr(ctx) == TRUE)
+ ctx->mode = 1;
+ return TRUE;
+ }
+ ctx->mode = 1;
+ case 1:
+ while (1)
+ {
+ u16 cmdCode;
+ ScrCmdFunc *func;
+
+ if (!ctx->scriptPtr)
+ {
+ ctx->mode = 0;
+ return FALSE;
+ }
+
+ cmdCode = ScriptReadHalfword(ctx);
+ u32 cmdTableEnd = (u32)ctx->cmdTableEnd;
+ if (cmdCode >= cmdTableEnd)
+ {
+ ErrorHandling();
+ ctx->mode = 0;
+ return FALSE;
+ }
+
+ func = &ctx->cmdTable[cmdCode];
+
+ if ((*func)(ctx) == 1)
+ break;
+ }
+ }
+
+ return TRUE;
+}
+
+u8 ScriptPush(struct ScriptContext *ctx, const u8 *ptr)
+{
+ if (ctx->stackDepth + 1 >= 20)
+ {
+ return 1;
+ }
+ else
+ {
+ ctx->stack[ctx->stackDepth] = ptr;
+ ctx->stackDepth++;
+ return 0;
+ }
+}
+
+const u8 *ScriptPop(struct ScriptContext *ctx)
+{
+ if (ctx->stackDepth == 0)
+ return NULL;
+
+ ctx->stackDepth--;
+ return ctx->stack[ctx->stackDepth];
+}
+
+void ScriptJump(struct ScriptContext *ctx, const u8 *ptr)
+{
+ ctx->scriptPtr = ptr;
+}
+
+u8 ScriptCall(struct ScriptContext *ctx, const u8 *ptr)
+{
+ u8 ret = ScriptPush(ctx, ctx->scriptPtr);
+ ctx->scriptPtr = ptr;
+ return ret;
+}
+
+void ScriptReturn(struct ScriptContext *ctx)
+{
+ ctx->scriptPtr = ScriptPop(ctx);
+}
+
+u16 ScriptReadHalfword(struct ScriptContext *ctx)
+{
+ u16 value = *(ctx->scriptPtr++);
+ value += *(ctx->scriptPtr++) << 8;
+ return value;
+}
+
+u32 ScriptReadWord(struct ScriptContext *ctx)
+{
+ u32 value0 = *(ctx->scriptPtr++);
+ u32 value1 = *(ctx->scriptPtr++);
+ u32 value2 = *(ctx->scriptPtr++);
+ u32 value3 = *(ctx->scriptPtr++);
+ u32 retVal = 0;
+
+ retVal += value3;
+ retVal <<= 8;
+ retVal += value2;
+ retVal <<= 8;
+ retVal += value1;
+ retVal <<= 8;
+ retVal += value0;
+ return retVal;
+}
diff --git a/arm9/src/string_util.c b/arm9/src/string_util.c
new file mode 100644
index 00000000..8f9c96ff
--- /dev/null
+++ b/arm9/src/string_util.c
@@ -0,0 +1,153 @@
+#include "global.h"
+
+u16 gDigitTable[] = {
+ 0xA2,
+ 0xA3,
+ 0xA4,
+ 0xA5,
+ 0xA6,
+ 0xA7,
+ 0xA8,
+ 0xA9,
+ 0xAA,
+ 0xAB,
+ 0xAC,
+ 0xAD,
+ 0xAE,
+ 0xAF,
+ 0xB0,
+ 0xB1
+};
+
+s32 gPowersOfTen[] = {
+ 1,
+ 10,
+ 100,
+ 1000,
+ 10000,
+ 100000,
+ 1000000,
+ 10000000,
+ 100000000,
+ 1000000000,
+};
+
+static const u16 EOS = 0xFFFF;
+
+void StringCopy(u16 *dest, const u16 *src)
+{
+ u16 c = *src;
+ while (c != EOS) {
+ src++;
+ *dest = c;
+ c = *src;
+ dest++;
+ }
+ *dest = EOS;
+}
+
+u16 *StringCopyN(u16 *dest, const u16 *src, u32 num)
+{
+ u32 copied = 0;
+ if (num > copied) {
+ u16 *p = dest;
+ do {
+ u16 c = *src;
+ copied++;
+ src++;
+ *p = c;
+ p++;
+ } while (num > copied);
+ }
+ return dest + num;
+}
+
+u32 StringLength(const u16 *s)
+{
+ u16 c = *s;
+ u32 len = 0;
+ while (c != EOS) {
+ s++;
+ c = *s;
+ len++;
+ }
+ return len;
+}
+
+BOOL StringNotEqual(const u16 *s1, const u16 *s2)
+{
+ for (; *s1 == *s2; s1++, s2++) {
+ if (*s1 == EOS)
+ return FALSE;
+ }
+ return TRUE;
+}
+
+BOOL StringNotEqualN(const u16 *s1, const u16 *s2, u32 num)
+{
+ u16 c1, c2;
+ c2 = *s2;
+ c1 = *s1;
+ while (c1 == c2) {
+ if (num == 0) {
+ return FALSE;
+ }
+ if (*s1 == EOS && *s2 == EOS) {
+ return FALSE;
+ }
+ s1++;
+ s2++;
+ c2 = *s2;
+ c1 = *s1;
+ num--;
+ }
+ return TRUE;
+}
+
+u16 *StringFill(u16 *dest, u16 value, u32 num)
+{
+ u32 copied = 0;
+ if (num > copied) {
+ u16 *p = dest;
+ do {
+ copied++;
+ *p = value;
+ p++;
+ } while (copied < num);
+ }
+ return dest + copied;
+}
+
+u16 *StringFillEOS(u16 *dest, u32 num)
+{
+ return StringFill(dest, EOS, num);
+}
+
+enum PrintingMode {
+ NORMAL,
+ PAD_SPACE,
+ PAD_ZEROES
+};
+
+const u16 NON_DIGIT = 0xE2;
+
+u16 *ConvertUIntToDecimalString(u16 *dest, u32 value, enum PrintingMode mode, u32 n)
+{
+ for (u32 x = gPowersOfTen[n - 1]; x != 0; x = x / 10) {
+ u16 res = value / x;
+ value = value - x * res;
+ if (mode == PAD_ZEROES) {
+ *dest = res >= 10 ? NON_DIGIT : gDigitTable[res];
+ dest++;
+ } else if (res != 0 || x == 1) {
+ mode = PAD_ZEROES;
+ *dest = res >= 10 ? NON_DIGIT : gDigitTable[res];
+ dest++;
+ } else if (mode == PAD_SPACE) {
+ *dest = 1;
+ dest++;
+ }
+ }
+ *dest = EOS;
+ return dest;
+}
diff --git a/arm9/undefined_syms.txt b/arm9/undefined_syms.txt
new file mode 100644
index 00000000..075d22a9
--- /dev/null
+++ b/arm9/undefined_syms.txt
@@ -0,0 +1,506 @@
+SDK_SYS_STACKSIZE = 0x00000000;
+CONST_34 = 0x00000034;
+CONST_3F = 0x0000003F;
+SDK_IRQ_STACKSIZE = 0x00000400;
+
+// .data
+// OS
+OSi_IrqCallbackInfoIndex = 0x02106818;
+// DGT
+Unk_0210683C = 0x0210683C;
+Unk_02106840 = 0x02106840;
+Unk_02106900 = 0x02106900;
+Unk_02106A00 = 0x02106A00;
+Unk_02106A04 = 0x02106A04;
+
+// .bss
+gBacklightTop = 0x02106FA0;
+gBacklightTop_2 = 0x02106FA0;
+gUnknown2106FB8 = 0x02106FB8;
+gUnknown21C48B8 = 0x021C48B8;
+gUnk021C4918 = 0x021C4918;
+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;
+OSi_HeapInfo = 0x021D36F8;
+OSi_UserExceptionHandler = 0x021D371C;
+OSi_UserExceptionHandlerArg = 0x21D3720;
+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;
+
+// Overlay
+FUN_021D74E0 = 0x021D74E0;
+FUN_021D76AC = 0x021D76AC;
+gUnk021D76C8 = 0x021D76C8;
+FUN_021D77C4 = 0x021D77C4;
+FUN_021D7800 = 0x021D7800;
+FUN_021D78FC = 0x021D78FC;
+FUN_021D79B4 = 0x021D79B4;
+FUN_021D7CA4 = 0x021D7CA4;
+FUN_021D7F8C = 0x021D7F8C;
+FUN_021D8018 = 0x021D8018;
+FUN_021D8164 = 0x021D8164;
+FUN_021D82BC = 0x021D82BC;
+FUN_021D8320 = 0x021D8320;
+FUN_021D836C = 0x021D836C;
+FUN_021D83A8 = 0x021D83A8;
+FUN_021D83C0 = 0x021D83C0;
+FUN_021D844C = 0x021D844C;
+FUN_021D8494 = 0x021D8494;
+FUN_021D85FC = 0x021D85FC;
+FUN_021D8624 = 0x021D8624;
+FUN_021D865C = 0x021D865C;
+FUN_021D8758 = 0x021D8758;
+FUN_021D8820 = 0x021D8820;
+FUN_021D88E4 = 0x021D88E4;
+FUN_021D89CC = 0x021D89CC;
+FUN_021D8B64 = 0x021D8B64;
+FUN_021D8C24 = 0x021D8C24;
+FUN_021D917C = 0x021D917C;
+FUN_021D959C = 0x021D959C;
+FUN_021D967C = 0x021D967C;
+FUN_021D96F4 = 0x021D96F4;
+FUN_021D9708 = 0x021D9708;
+FUN_021D971C = 0x021D971C;
+FUN_021D9820 = 0x021D9820;
+FUN_021D99F8 = 0x021D99F8;
+FUN_021DA464 = 0x021DA464;
+FUN_021DA4EC = 0x021DA4EC;
+FUN_021DA54C = 0x021DA54C;
+FUN_021DA58C = 0x021DA58C;
+FUN_021DA5B8 = 0x021DA5B8;
+FUN_021DA5C8 = 0x021DA5C8;
+FUN_021DA5D0 = 0x021DA5D0;
+FUN_021DA5D8 = 0x021DA5D8;
+FUN_021DA7B4 = 0x021DA7B4;
+FUN_021DAAA4 = 0x021DAAA4;
+FUN_021DAC70 = 0x021DAC70;
+FUN_021DAE40 = 0x021DAE40;
+FUN_021DAED4 = 0x021DAED4;
+FUN_021DAF28 = 0x021DAF28;
+FUN_021DAF78 = 0x021DAF78;
+FUN_021DAF98 = 0x021DAF98;
+FUN_021DB030 = 0x021DB030;
+FUN_021DB7E8 = 0x021DB7E8;
+FUN_021DB858 = 0x021DB858;
+gUnk021DBE18 = 0x021DBE18;
+FUN_021DC174 = 0x021DC174;
+FUN_021DD6F0 = 0x021DD6F0;
+FUN_021DD718 = 0x021DD718;
+FUN_021DDB08 = 0x021DDB08;
+FUN_021E1374 = 0x021E1374;
+FUN_021E1858 = 0x021E1858;
+FUN_021E1994 = 0x021E1994;
+FUN_021E1BF8 = 0x021E1BF8;
+FUN_021E1C4C = 0x021E1C4C;
+FUN_021E1C54 = 0x021E1C54;
+FUN_021E1ECC = 0x021E1ECC;
+FUN_021E1F34 = 0x021E1F34;
+FUN_021E1F58 = 0x021E1F58;
+FUN_021E1F60 = 0x021E1F60;
+FUN_021E2464 = 0x021E2464;
+FUN_021E2608 = 0x021E2608;
+FUN_021E26CC = 0x021E26CC;
+FUN_021E27E8 = 0x021E27E8;
+FUN_021E288C = 0x021E288C;
+FUN_021E28A0 = 0x021E28A0;
+FUN_021E2950 = 0x021E2950;
+FUN_021E29B4 = 0x021E29B4;
+FUN_021E29C8 = 0x021E29C8;
+FUN_021E2A70 = 0x021E2A70;
+FUN_021E2AD4 = 0x021E2AD4;
+FUN_021E2B80 = 0x021E2B80;
+FUN_021E2B9C = 0x021E2B9C;
+FUN_021E2BB8 = 0x021E2BB8;
+FUN_021E2BD0 = 0x021E2BD0;
+FUN_021E2C24 = 0x021E2C24;
+FUN_021E2C58 = 0x021E2C58;
+FUN_021E2CBC = 0x021E2CBC;
+FUN_021E32F0 = 0x021E32F0;
+FUN_021E331C = 0x021E331C;
+FUN_021E3424 = 0x021E3424;
+FUN_021E3444 = 0x021E3444;
+FUN_021E495C = 0x021E495C;
+FUN_021E4C54 = 0x021E4C54;
+FUN_021E4C60 = 0x021E4C60;
+FUN_021E4DE4 = 0x021E4DE4;
+FUN_021E5614 = 0x021E5614;
+FUN_021E57D4 = 0x021E57D4;
+FUN_021E5970 = 0x021E5970;
+FUN_021E5B30 = 0x021E5B30;
+FUN_021E5FD8 = 0x021E5FD8;
+FUN_021E5FE0 = 0x021E5FE0;
+FUN_021E6410 = 0x021E6410;
+FUN_021E643C = 0x021E643C;
+FUN_021E6990 = 0x021E6990;
+FUN_021E69BC = 0x021E69BC;
+FUN_021E6BF4 = 0x021E6BF4;
+FUN_021E7030 = 0x021E7030;
+FUN_021E70F0 = 0x021E70F0;
+FUN_021E7138 = 0x021E7138;
+FUN_021E7184 = 0x021E7184;
+FUN_021E71E8 = 0x021E71E8;
+FUN_021E7750 = 0x021E7750;
+FUN_021E799C = 0x021E799C;
+FUN_021E7AC0 = 0x021E7AC0;
+FUN_021E7EA0 = 0x021E7EA0;
+FUN_021E7EB0 = 0x021E7EB0;
+FUN_021E7EC4 = 0x021E7EC4;
+FUN_021E7EC8 = 0x021E7EC8;
+FUN_021E7ED0 = 0x021E7ED0;
+FUN_021E7ED8 = 0x021E7ED8;
+FUN_021E7FBC = 0x021E7FBC;
+FUN_021E8128 = 0x021E8128;
+FUN_021E8130 = 0x021E8130;
+FUN_021E8140 = 0x021E8140;
+FUN_021E8144 = 0x021E8144;
+FUN_021E8148 = 0x021E8148;
+FUN_021E8158 = 0x021E8158;
+FUN_021E81BC = 0x021E81BC;
+FUN_021E84F4 = 0x021E84F4;
+FUN_021E856C = 0x021E856C;
+FUN_021E8588 = 0x021E8588;
+FUN_021E85E4 = 0x021E85E4;
+FUN_021E85FC = 0x021E85FC;
+FUN_021EAE90 = 0x021EAE90;
+FUN_021EB044 = 0x021EB044;
+FUN_021EC57C = 0x021EC57C;
+FUN_021EC71C = 0x021EC71C;
+FUN_021EC854 = 0x021EC854;
+FUN_021EC864 = 0x021EC864;
+FUN_021ECD64 = 0x021ECD64;
+FUN_021ECF14 = 0x021ECF14;
+FUN_021ED0CC = 0x021ED0CC;
+FUN_021ED49C = 0x021ED49C;
+FUN_021ED4E0 = 0x021ED4E0;
+FUN_021ED52C = 0x021ED52C;
+FUN_021ED5C4 = 0x021ED5C4;
+FUN_021ED5EC = 0x021ED5EC;
+FUN_021ED644 = 0x021ED644;
+FUN_021ED940 = 0x021ED940;
+FUN_021EDA48 = 0x021EDA48;
+FUN_021EDBC8 = 0x021EDBC8;
+FUN_021EF5E0 = 0x021EF5E0;
+FUN_021EF604 = 0x021EF604;
+FUN_021EF620 = 0x021EF620;
+FUN_021EF654 = 0x021EF654;
+FUN_021EF824 = 0x021EF824;
+FUN_021EF844 = 0x021EF844;
+FUN_021EF8C8 = 0x021EF8C8;
+FUN_021EF8DC = 0x021EF8DC;
+FUN_021EFA9C = 0x021EFA9C;
+FUN_021F02C4 = 0x021F02C4;
+FUN_021F1D8C = 0x021F1D8C;
+FUN_021F1DC8 = 0x021F1DC8;
+FUN_021F1DFC = 0x021F1DFC;
+FUN_021F1EC0 = 0x021F1EC0;
+FUN_021F1F78 = 0x021F1F78;
+FUN_021F2094 = 0x021F2094;
+FUN_021F20D8 = 0x021F20D8;
+FUN_021F20F8 = 0x021F20F8;
+FUN_021F2AF4 = 0x021F2AF4;
+FUN_021F2E0C = 0x021F2E0C;
+FUN_021F2E28 = 0x021F2E28;
+FUN_021F2F48 = 0x021F2F48;
+FUN_021F2F6C = 0x021F2F6C;
+FUN_021F3A18 = 0x021F3A18;
+FUN_021F3AB4 = 0x021F3AB4;
+FUN_021F3B4C = 0x021F3B4C;
+FUN_021F3B7C = 0x021F3B7C;
+FUN_021F3DA4 = 0x021F3DA4;
+FUN_021F44D8 = 0x021F44D8;
+FUN_021F4520 = 0x021F4520;
+FUN_021F4568 = 0x021F4568;
+FUN_021F4594 = 0x021F4594;
+FUN_021F45E8 = 0x021F45E8;
+FUN_021F4608 = 0x021F4608;
+FUN_021F4BD0 = 0x021F4BD0;
+FUN_021F4C88 = 0x021F4C88;
+FUN_021F4D80 = 0x021F4D80;
+FUN_021F4DC8 = 0x021F4DC8;
+FUN_021F4E7C = 0x021F4E7C;
+FUN_021F57EC = 0x021F57EC;
+FUN_021F5C44 = 0x021F5C44;
+FUN_021F61DC = 0x021F61DC;
+FUN_021F61E8 = 0x021F61E8;
+FUN_02211E60 = 0x02211E60;
+FUN_0222D5C0 = 0x0222D5C0;
+FUN_0222DAEC = 0x0222DAEC;
+FUN_0222DD1C = 0x0222DD1C;
+FUN_0222DD38 = 0x0222DD38;
+FUN_0222E2BC = 0x0222E2BC;
+FUN_0222E360 = 0x0222E360;
+FUN_0222E3A0 = 0x0222E3A0;
+FUN_0222E7E8 = 0x0222E7E8;
+FUN_0222E874 = 0x0222E874;
+FUN_0222ED34 = 0x0222ED34;
+FUN_0222EDBC = 0x0222EDBC;
+FUN_0222F440 = 0x0222F440;
+FUN_0222F480 = 0x0222F480;
+FUN_0222F7E0 = 0x0222F7E0;
+FUN_0222F990 = 0x0222F990;
+FUN_022300D4 = 0x022300D4;
+FUN_022300DC = 0x022300DC;
+FUN_022300E4 = 0x022300E4;
+FUN_022300E8 = 0x022300E8;
+FUN_022300F4 = 0x022300F4;
+FUN_02230100 = 0x02230100;
+FUN_0223010C = 0x0223010C;
+FUN_02230118 = 0x02230118;
+FUN_02230124 = 0x02230124;
+FUN_02230F3C = 0x02230F3C;
+FUN_02230F70 = 0x02230F70;
+FUN_02230F80 = 0x02230F80;
+FUN_02231344 = 0x02231344;
+FUN_02231350 = 0x02231350;
+FUN_0223135C = 0x0223135C;
+FUN_02231368 = 0x02231368;
+FUN_02231374 = 0x02231374;
+FUN_02239944 = 0x02239944;
+FUN_02239AAC = 0x02239AAC;
+FUN_0223CACC = 0x0223CACC;
+FUN_0223CB08 = 0x0223CB08;
+FUN_0223CCDC = 0x0223CCDC;
+FUN_0223CD7C = 0x0223CD7C;
+FUN_0223D3D0 = 0x0223D3D0;
+FUN_0223D638 = 0x0223D638;
+FUN_0223D648 = 0x0223D648;
+FUN_0223DFB4 = 0x0223DFB4;
+FUN_0223E060 = 0x0223E060;
+FUN_0223E118 = 0x0223E118;
+FUN_0223E154 = 0x0223E154;
+FUN_0223E1A4 = 0x0223E1A4;
+FUN_0223E1E0 = 0x0223E1E0;
+FUN_0223E2AC = 0x0223E2AC;
+FUN_0223E4A8 = 0x0223E4A8;
+FUN_0223E4D4 = 0x0223E4D4;
+FUN_0223E554 = 0x0223E554;
+FUN_0223E6B8 = 0x0223E6B8;
+FUN_0223E734 = 0x0223E734;
+FUN_0223E7FC = 0x0223E7FC;
+FUN_0223EB8C = 0x0223EB8C;
+FUN_0223EF7C = 0x0223EF7C;
+FUN_0223F4D8 = 0x0223F4D8;
+FUN_0223F4F4 = 0x0223F4F4;
+FUN_0223F8D8 = 0x0223F8D8;
+FUN_0223FCE8 = 0x0223FCE8;
+FUN_02240790 = 0x02240790;
+FUN_022407CC = 0x022407CC;
+FUN_022407DC = 0x022407DC;
+FUN_022407F8 = 0x022407F8;
+FUN_02240834 = 0x02240834;
+FUN_02240844 = 0x02240844;
+FUN_0224089C = 0x0224089C;
+FUN_022408FC = 0x022408FC;
+FUN_022411F4 = 0x022411F4;
+FUN_02241230 = 0x02241230;
+FUN_02241914 = 0x02241914;
+FUN_02242A38 = 0x02242A38;
+FUN_02242BE0 = 0x02242BE0;
+FUN_0224312C = 0x0224312C;
+FUN_022432E4 = 0x022432E4;
+FUN_0224339C = 0x0224339C;
+FUN_022433A8 = 0x022433A8;
+FUN_022433B0 = 0x022433B0;
+FUN_022433B8 = 0x022433B8;
+FUN_022433F8 = 0x022433F8;
+FUN_02243408 = 0x02243408;
+FUN_02243428 = 0x02243428;
+FUN_02243448 = 0x02243448;
+FUN_0224345C = 0x0224345C;
+FUN_022434AC = 0x022434AC;
+FUN_022434BC = 0x022434BC;
+FUN_022434D0 = 0x022434D0;
+FUN_02243694 = 0x02243694;
+FUN_022436C8 = 0x022436C8;
+FUN_022436E8 = 0x022436E8;
+FUN_02243780 = 0x02243780;
+FUN_02243838 = 0x02243838;
+FUN_022438DC = 0x022438DC;
+FUN_022438E0 = 0x022438E0;
+FUN_022438FC = 0x022438FC;
+FUN_02243920 = 0x02243920;
+FUN_022439F8 = 0x022439F8;
+FUN_02243AD8 = 0x02243AD8;
+FUN_02243BA8 = 0x02243BA8;
+FUN_02243C5C = 0x02243C5C;
+FUN_02243D3C = 0x02243D3C;
+FUN_02243DA0 = 0x02243DA0;
+FUN_02243DB8 = 0x02243DB8;
+FUN_02243DC0 = 0x02243DC0;
+FUN_02243DC4 = 0x02243DC4;
+FUN_02243DD8 = 0x02243DD8;
+FUN_02243DE0 = 0x02243DE0;
+FUN_02243E34 = 0x02243E34;
+FUN_02243E74 = 0x02243E74;
+FUN_02243F18 = 0x02243F18;
+FUN_02243F50 = 0x02243F50;
+FUN_02243F9C = 0x02243F9C;
+FUN_02244210 = 0x02244210;
+FUN_02244558 = 0x02244558;
+FUN_02244660 = 0x02244660;
+FUN_022446BC = 0x022446BC;
+FUN_022446E0 = 0x022446E0;
+FUN_022446FC = 0x022446FC;
+FUN_02244758 = 0x02244758;
+FUN_02244770 = 0x02244770;
+FUN_02244824 = 0x02244824;
+FUN_0224484C = 0x0224484C;
+FUN_02244D1C = 0x02244D1C;
+FUN_02244D20 = 0x02244D20;
+FUN_02244D3C = 0x02244D3C;
+FUN_02244D40 = 0x02244D40;
+FUN_02244D58 = 0x02244D58;
+FUN_02244D98 = 0x02244D98;
+FUN_02244DA0 = 0x02244DA0;
+FUN_02244DB0 = 0x02244DB0;
+FUN_02244DBC = 0x02244DBC;
+FUN_02244DC4 = 0x02244DC4;
+FUN_02244EF8 = 0x02244EF8;
+FUN_02244F18 = 0x02244F18;
+FUN_02244F24 = 0x02244F24;
+FUN_02244F2C = 0x02244F2C;
+FUN_02245088 = 0x02245088;
+FUN_02245114 = 0x02245114;
+FUN_02245190 = 0x02245190;
+FUN_02245198 = 0x02245198;
+FUN_022451F0 = 0x022451F0;
+FUN_0224525C = 0x0224525C;
+FUN_022452A4 = 0x022452A4;
+FUN_02245324 = 0x02245324;
+FUN_02245340 = 0x02245340;
+FUN_02245358 = 0x02245358;
+FUN_0224566C = 0x0224566C;
+FUN_022456E8 = 0x022456E8;
+FUN_02245844 = 0x02245844;
+FUN_02245910 = 0x02245910;
+FUN_02245F1C = 0x02245F1C;
+FUN_02245F4C = 0x02245F4C;
+FUN_02245FA0 = 0x02245FA0;
+FUN_022461A4 = 0x022461A4;
+FUN_022461B8 = 0x022461B8;
+FUN_0224666C = 0x0224666C;
+FUN_022466A0 = 0x022466A0;
+FUN_022466AC = 0x022466AC;
+FUN_02246F1C = 0x02246F1C;
+FUN_02247294 = 0x02247294;
+FUN_022472AC = 0x022472AC;
+FUN_02247544 = 0x02247544;
+FUN_02247614 = 0x02247614;
+FUN_02247728 = 0x02247728;
+FUN_02247808 = 0x02247808;
+FUN_02247970 = 0x02247970;
+FUN_02247A34 = 0x02247A34;
+FUN_022483BC = 0x022483BC;
+FUN_022483E0 = 0x022483E0;
+FUN_022483EC = 0x022483EC;
+FUN_02248724 = 0x02248724;
+FUN_0224884C = 0x0224884C;
+FUN_022488CC = 0x022488CC;
+FUN_022488EC = 0x022488EC;
+FUN_022488F4 = 0x022488F4;
+FUN_022488FC = 0x022488FC;
+FUN_0224891C = 0x0224891C;
+FUN_02248B54 = 0x02248B54;
+FUN_02248B58 = 0x02248B58;
+FUN_02248B5C = 0x02248B5C;
+FUN_02248B60 = 0x02248B60;
+FUN_02248B6C = 0x02248B6C;
+FUN_02248CC0 = 0x02248CC0;
+FUN_02248CD0 = 0x02248CD0;
+FUN_02248DF8 = 0x02248DF8;
+FUN_02248F70 = 0x02248F70;
+FUN_02248FE0 = 0x02248FE0;
+FUN_02249038 = 0x02249038;
+FUN_022490A0 = 0x022490A0;
+FUN_022491FC = 0x022491FC;
+FUN_022494C8 = 0x022494C8;
+FUN_02249508 = 0x02249508;
+FUN_02249668 = 0x02249668;
+FUN_022497E8 = 0x022497E8;
+FUN_02249E6C = 0x02249E6C;
+FUN_02249E78 = 0x02249E78;
+FUN_02249E84 = 0x02249E84;
+FUN_02249E90 = 0x02249E90;
+FUN_0224A310 = 0x0224A310;
+FUN_0224A528 = 0x0224A528;
+FUN_0224A7C8 = 0x0224A7C8;
+FUN_0224ABAC = 0x0224ABAC;
+FUN_0224B124 = 0x0224B124;
+FUN_0224B2C4 = 0x0224B2C4;
+FUN_0224B568 = 0x0224B568;
+FUN_0224B818 = 0x0224B818;
+FUN_0224B86C = 0x0224B86C;
+FUN_0224B9E0 = 0x0224B9E0;
+FUN_0224BBEC = 0x0224BBEC;
+FUN_0224BD90 = 0x0224BD90;
+FUN_0224C038 = 0x0224C038;
+FUN_0224C27C = 0x0224C27C;
+FUN_0224C520 = 0x0224C520;
+FUN_0224C678 = 0x0224C678;
+FUN_0224C6E8 = 0x0224C6E8;
+FUN_0224C6F4 = 0x0224C6F4;
+FUN_0224C700 = 0x0224C700;
+FUN_0224C8C8 = 0x0224C8C8;
+FUN_0224CA2C = 0x0224CA2C;
+FUN_0224CA54 = 0x0224CA54;
+FUN_0224CA58 = 0x0224CA58;
+FUN_0224CA88 = 0x0224CA88;
+FUN_0224CA94 = 0x0224CA94;
+FUN_0224CAA0 = 0x0224CAA0;
+FUN_0224CAB4 = 0x0224CAB4;
+FUN_0224CB30 = 0x0224CB30;
+FUN_0224CBB0 = 0x0224CBB0;
+FUN_0224CC24 = 0x0224CC24;
+FUN_0224CECC = 0x0224CECC;
+FUN_0224D14C = 0x0224D14C;
+FUN_0224D2E0 = 0x0224D2E0;
+FUN_0224D3E8 = 0x0224D3E8;
+FUN_0224D70C = 0x0224D70C;
+FUN_0224D76C = 0x0224D76C;
+FUN_0224D79C = 0x0224D79C;
+FUN_0224DCB8 = 0x0224DCB8;
+FUN_0224DD94 = 0x0224DD94;
+FUN_0224DDB8 = 0x0224DDB8;
+FUN_0224E554 = 0x0224E554;
+FUN_0224E764 = 0x0224E764;
+FUN_0224E7C4 = 0x0224E7C4;
+FUN_0224F12C = 0x0224F12C;
+FUN_02252534 = 0x02252534;
+FUN_02252538 = 0x02252538;
+FUN_022567E0 = 0x022567E0;
+
+// ???
+SDK_MAIN_ARENA_LO = 0x0225FFA0;
+
+// EWRAM
+SDK_SECTION_ARENA_EX_START = 0x023E0000;
+
+// DTCM
+gUnk027FFC20 = 0x027FFC20;